stringtranslate.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рекомендации

  1. ^ Ноэргаард 2012, с. 297.
  2. ^ Готлиб 1999.
  3. ^ Майкл Фингерофф. «Синяя книга синтеза высокого уровня». 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 . Проверено 26 июля 2024 г. {{cite web}}: Отсутствует или пусто |title=( помощь )
  7. ^ Тим Дауни. «Автобусный арбитраж»
  8. ^ Шун Ян Чунг. «Автобусный арбитраж»

Источники

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