stringtranslate.com

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

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

Автобусный арбитр

Существует несколько способов выполнения арбитража компьютерной шины , наиболее популярными из которых являются: [1] [2]

  1. динамическая централизованная параллельная система , в которой для всех мастеров используется один центральный арбитр, как обсуждается в этой статье;
  2. централизованный последовательный (или "цепочка последовательных соединений"), где при доступе к шине активный мастер передает возможность следующему. По сути, каждый подключенный мастер содержит своего собственного арбитра;
  3. распределенный арбитраж путем самовыбора (распределенный арбитраж шины), при котором доступ предоставляется самостоятельно на основе решения, принятого локально с использованием информации от других ведущих устройств;
  4. распределенный арбитраж путем обнаружения коллизий , когда каждый мастер пытается получить доступ к шине самостоятельно, но обнаруживает конфликты и повторяет неудачные операции.

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

Арбитр памяти — это устройство, используемое в системе общей памяти для принятия решения о том, какому процессору будет разрешено получить доступ к этой общей памяти для каждого цикла памяти. [3] [4] [5]

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

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

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

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

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

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

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

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

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

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

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

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

Ссылки

  1. ^ Норгаард 2012, стр. 297.
  2. ^ Готлиб 1999.
  3. ^ Майкл Фингерофф. «High-Level Synthesis Blue Book». 2010. стр. 270. цитата: «Арбитр шины или памяти обрабатывает запросы от разных процессов и решает, кто получит доступ к шине/памяти».
  4. ^ Артен Эса, Брайан Майерс. «Проект арбитра для памяти DDR3». 2013.
  5. ^ Кирни, ДА; Вельдман, Г. «Параллельный многобанковый арбитр памяти для динамических IP-ядер с использованием цикла пропуска бездействия». 2003. DOI: 10.1109/FPT.2003.1275789.
  6. ^ docs.oracle.com https://docs.oracle.com/cd/E19620-01/805-4447/auto2/index.html . Получено 2024-07-26 . {{cite web}}: Отсутствует или пусто |title=( помощь )
  7. ^ Тим Дауни. «Автобусный арбитраж»
  8. ^ Шун Ян Чунг. «Автобусный арбитраж»

Источники

Внешние ссылки