Введение

Электронное устройство, выделяющее доступ к общим ресурсам. Арбитры — это электронные устройства, выделяющие доступ к общим ресурсам.

Асинхронные арбитражи

Важная форма арбитра используется в асинхронных схемах для определения порядка доступа к общему ресурсу при поступлении асинхронных запросов. Его функция заключается в предотвращении одновременного выполнения двух операций, которые не должны происходить одновременно. Например, в компьютере с несколькими процессорами или другими устройствами, обращающимися к компьютерной памяти, и имеющем более одного тактового сигнала, существует вероятность того, что запросы от двух несинхронизированных источников могут поступить практически одновременно. "Практически" может означать очень близкое во времени совпадение, вплоть до субфемтосекунд. Арбитр памяти должен определить, какой запрос обработать первым. К сожалению, сделать это за фиксированное время невозможно [Anderson 1991].

Асинхронные арбитра и метастабильность

Арбитры разрешают конфликты. Подобно триггерной схеме, арбитр имеет два устойчивых состояния, соответствующих двум вариантам выбора. Если два запроса поступают к арбитру с разницей в несколько пикосекунд (в настоящее время, фемтосекунд), схема может стать метастабильной, прежде чем достигнет одного из своих устойчивых состояний, разрешая конфликт. Классические арбитры специально разработаны таким образом, чтобы не генерировать сильные колебания в метастабильном состоянии и как можно быстрее выходить из него, как правило, за счет дополнительного энергопотребления. Вероятность того, что устойчивое состояние не будет достигнуто, экспоненциально уменьшается со временем после подачи входных сигналов. Надежное решение этой проблемы было найдено в середине 1970-х годов. Хотя арбитр, принимающий решение за фиксированное время, невозможен, арбитр, которому иногда требуется немного больше времени в сложных случаях (при близких значениях), может быть реализован. Необходимо использовать многокаскадную схему синхронизации, которая определяет, что арбитр еще не перешел в устойчивое состояние. Арбитр затем задерживает обработку до достижения устойчивого состояния. Теоретически, арбитру может потребоваться произвольно долгое время для установления устойчивого состояния (см. принцип Буридана), но на практике это редко занимает больше нескольких задержек распространения сигнала. Классическая работа – [Kinniment and Woods 1976], в которой описывается, как построить триггер с тремя состояниями для решения этой проблемы, и [Ginosar 2003] – предупреждение для инженеров об распространенных ошибках при проектировании арбитров. Этот результат имеет большое практическое значение, поскольку без него многопроцессорные компьютеры не могли бы работать надежно. Первые многопроцессорные компьютеры появились в конце 1960-х годов, до разработки надежных арбитров. Некоторые ранние многопроцессорные системы с независимыми тактовыми генераторами для каждого процессора страдали от гонок арбитража и, следовательно, от ненадежности. Сегодня эта проблема больше не актуальна.

Синхронные арбитра

Арбитры используются как в синхронных средах, так и для выделения доступа к общему ресурсу. Волнофронтовый арбитр — это пример синхронного арбитра, который применяется в одном из типов больших сетевых коммутаторов.