Арбитры (электроника)

редактировать

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

Содержание
  • 1 Арбитр шины
  • 2 Асинхронные арбитры
    • 2.1 Асинхронные арбитры и метастабильность
  • 3 Синхронные арбитры
  • 4 Ссылки
  • 5 Внешние ссылки
Арбитр шины

Арбитр шины - это устройство, используемое в системе с несколькими мастерами шина, чтобы решать, какому мастеру шины будет разрешено управлять шиной для каждого цикла шины. Самый распространенный вид арбитра шины - это арбитр памяти в системе системной шины.

Арбитр памяти - это устройство, используемое в системе совместно используемой памяти для решения для каждого цикла памяти, какому ЦП будет разрешен доступ к этой разделяемой памяти.

Некоторые атомарные инструкции зависят от арбитра, чтобы предотвратить чтение памяти другими процессорами "на полпути" атомарных команд чтения-изменения-записи.

Арбитр памяти обычно интегрирован в контроллер памяти / контроллер DMA.

Некоторые системы, такие как обычный PCI, имеют одну централизованную шину арбитражное устройство, на которое можно указать как на «арбитра шины». Другие системы используют децентрализованный арбитраж шины, когда все устройства взаимодействуют, чтобы решить, кто будет следующим.

Когда каждый ЦП, подключенный к арбитру памяти, имеет синхронизированные циклы доступа к памяти, арбитр памяти может быть спроектирован как синхронный арбитр. В противном случае арбитр памяти должен быть спроектирован как асинхронный арбитр.

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

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

Иван Сазерленд и в своей статье «Компьютеры без часов» описывают арбитров следующим образом:

«Арбитр подобен дорожный инспектор на перекрестке, который решает, какая машина может проехать следующей. Получив только один запрос, арбитр сразу же разрешает соответствующее действие, откладывая любой второй запрос до завершения первого действия. Когда арбитр получает два запроса одновременно, он должен решить, какой запрос предоставить первым. Например, когда два процессора запрашивают доступ к общей памяти примерно в одно и то же время, Арбитр помещает запросы в последовательность, предоставляя доступ только одному процессору за раз. Арбитр гарантирует, что есть никогда не выполняются два действия одновременно, точно так же, как инспектор дорожного движения предотвращает аварии, следя за тем, чтобы два автомобиля никогда не проезжали перекресток на встречных курсах. "
" Хотя трассы Арбитра никогда не предоставляют более одного требования Если за один раз, невозможно создать арбитра, который всегда будет принимать решение в течение фиксированного срока. Современные арбитры принимают решения в среднем очень быстро, обычно в течение нескольких сотен пикосекунд. [...] Однако, столкнувшись с закрытыми вызовами, схемы могут иногда занимать в два раза больше времени, а в очень редких случаях время, необходимое для принятия решения, может быть в 10 раз больше обычного ».

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

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

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

Этот результат имеет большое практическое значение, так как многопроцессорные компьютеры без него не работали бы надежно. Первые многопроцессорные компьютеры появились в конце 1960-х годов, еще до появления надежных арбитров. Некоторые ранние мультипроцессоры с независимыми часами для каждого процессора страдали от условий гонки арбитра и, следовательно, ненадежности. Сегодня это больше не проблема.

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

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

Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-11 23:41:23
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте