Для чего используется устройство арбитража шины
Что такое арбитраж шины
Разделение и арбитраж двунаправленной последовательной шины
Введение в двунаправленные шины
Двунаправленные шины, такие, например, как I 2 C, SMBus и LIN, получили повсеместное распространение в современной электронике, отчасти благодаря их простоте. С помощью всего двух проводов – для передачи сигналов данных и синхронизации – они позволяют общаться друг с другом множеству устройств. Согласно спецификации шины I 2 C, к каждой линии данных и синхронизации допускается подключение до 128 устройств, что обеспечивается внешними подтягивающими резисторами и драйверами с открытыми стоками в каждом устройстве. Если не одно из устройств не передает «0», подтягивающий резистор удерживает шину в состоянии «1». Однако любое устройство может опустить шину в «0».
Ведущие устройства (задатчики) могут управлять шиной в любой момент, а ведомые должны ответить на запросы ведущего в течение определенного периода времени после приема запроса. В конфигурации с несколькими ведущими каждое устройство, выступающее задатчиком, само должно выполнять арбитраж шины. Задатчик, желающий получить контроль над шиной, должен проверить ее, выставив на шину «0». Это информирует остальных ведущих о том, что шина будет занята.
Зачем разделять двунаправленную шину?
Спецификация шины I 2 C [1] содержит пример эталонной схемы, позволяющей разделять ее на входную и выходную пары. Такая конфигурация может потребоваться по нескольким причинам. Прежде всего, разделение шины используется для оптической изоляции ведущего устройства от ведомых при повышенных требованиях к безопасности, в случае зашумленности линий передачи или при невозможности обеспечить надежное заземление (Рисунок 1). Кроме того, сигналы разделенной шины можно усиливать (Рисунок 2), а, заменив усилитель схемой преобразователя интерфейсов, можно сменить среду передачи информации. Это позволяет увеличить рабочую длину шины и улучшить ее характеристики за счет снижения емкости. По мере снижения емкости линий доминирующее влияние на постоянную времени шины начинают оказывать подтягивающие резисторы.
Рисунок 1. | Изоляция двунаправленной шины. |
Для разработчиков контроллеров двунаправленных шин разделение шины может использоваться в целях отладки. Обычно отладка двунаправленных протоколов представляет собой непростую задачу, поскольку вполне вероятна ситуация, при которой работающий неправильно контроллер выставляет на шине «0» в то же время, когда другой контроллер пытается установить контроль над шиной. Это сделает идентификацию передающего устройства на шине невозможной без информации о внутренних состояниях контроллеров всех устройств. Однако контроль линий /gateB1 и /gateA2 (Рисунок 2) позволяет идентифицировать оба передающих устройства и выявлять любые одновременные обращения с использованием лишь стандартного лабораторного оборудования и обычных технологий отладки.
Рисунок 2. | Повторитель двунаправленной шины. |
Наконец, возможно использование технологии разделения шины для подключения устройства, поддерживающего интерфейс I 2 C, к другому устройству, не имеющему контроллера I 2 C. В этом случае разделенная шина может быть подключена к портам вывода/вывода общего назначения другого устройства (Рисунок 3).
Рисунок 3. | Разделенная шина, подключенная к порту ввода/вывода общего назначения. |
Опубликовано немало схем, позволяющих разделять двунаправленные шины. К сожалению, примеры решений, демонстрирующих разделение шин, требуют разработки специальных схем для каждого приложения (как следует из публикаций) или внешней управляющей логики (как показано в описании стандарта I 2 C), использующей проходные логические вентили для того, чтобы в процессе обмена не образовывались замкнутые контуры, приводящие к «защелкиванию». Условия для защелкивания, очевидным образом, существуют в схеме на Рисунке 2, где узел IOA, выставив на шине «0», через /gateB1 открывает транзистор Q1, в результате чего потенциал узла IOB опускается в «0», что, в свою очередь, открывает Q2 высоким уровнем на /gateA2, опуская вниз потенциал IOA.
Рисунок 4. | Схема двухстороннего арбитража. |
Представленный в этой статье двухсторонний арбитр может разделять шину на передающую и приемную пары, и сконструирован универсальным, что позволяет использовать его в любых приложениях с разделенной шиной. Кроме того, он не требует внешней управляющей логики – управление осуществляется исключительно на основании состояния шины данных (Рисунок 4).
Двухсторонний арбитраж
Рисунок 5. | Двухсторонний арбитраж двунаправленной шины. |
Изображенный на Рисунке 5 арбитр, образованный двумя перекрестными схемами разрешения из Рисунка 4, будет работать всегда, так как двунаправленные шины, по определению, поддерживают только полудуплексный обмен. В неактивном режиме линии данных подтягиваются к шине питания резисторами R1 и R2, вследствие чего выходы OUT1 и OUT2 находятся в состоянии «0». В этих условиях оба N-канальных MOSFET выключены. Когда микросхема IC1 выставляет на линии данных «0», на выходе OUT1 устанавливается уровень «1», открывающий транзистор Q2 и опускающий вниз потенциал шины данных микросхемы IC2. Одновременно сигнал OUT1 поступает на вход вентиля «ИЛИ-НЕ» U2, разрывая петлю обратной связи между OUT2 и Q1. Этот разрыв исключает возможность защелкивания, делая ненужной какую-либо другую управляющую логику, поскольку схема, первой претендующая на линию данных, выигрывает гонку и блокирует остальную схему через вентиль «ИЛИ-НЕ».
Рисунок 6. | Двухсторонний арбитраж с усилением сигналов шины. |
Универсальный характер схемы позволяет использовать ее для двухстороннего арбитража в любых приложениях с разделенной шиной. На Рисунке 6 приведен пример разделения шины в целях усиления сигналов. Эту схему легко расширить на случаи преобразования среды передачи и изоляции шины, заменив усилители, соответственно, преобразователями интерфейсов или оптоизоляторами. Для отладки шинных контроллеров можно отслеживать состояние линий между усилителями, что поможет идентифицировать неисправности контроллеров шины. На Рисунке 7 показано включение двухстороннего арбитра между шиной I 2 C и портом ввода/вывода общего назначения.
Рисунок 7. | Подключение линии интерфейса I 2 C к порту ввода/вывода. |
Заключение
Есть ряд причин, по которым возникает необходимость разделения двунаправленной шины на приемные и передающие пары. От увеличения пропускной способности и длины линии передачи до возможности отладки – многие разработчики оценят эти преимущества разделения шины и сочтут их полезным в тот или иной момент своей деятельности.
Двухсторонний арбитраж – это метод арбитража, применимый к большинству приложений с разделенной шиной. Опираясь на специфику обмена по двунаправленной шине, он не требует внешних компонентов и достаточно универсален, чтобы, не внося ненужных усложнений, использоваться во многих приложениях.
Ссылки
Перевод: AlexAAN по заказу РадиоЛоцман
Арбитраж шин
В реальных системах на роль ведущего вправе одновременно претендовать сразу несколько из подключенных к шине устройств, однако управлять шиной в каждый момент времени может только одно из них. Чтобы исключить конфликты, шина должна предусматривать определенные механизмы арбитража запросов и правила предоставления шины одному из запросивших устройств. Решение обычно принимается на основе приоритетов претендентов.
Схемы приоритетов
В реальных системах на роль ведущего вправе одновременно претендовать сразу несколько из подключенных к шине устройств, однако управлять шиной в каждый момент времени может только одно из них. Чтобы исключить конфликты, шина должна предусматривать определенные механизмы арбитража запросов и правила предоставления шины одному из запросивших устройств. Решение обычно принимается на основе приоритетов претендентов.
Каждому потенциальному ведущему присваивается определенный уровень приоритета, который может оставаться неизменным (статический или фиксированный приоритет) либо изменяться по какому-либо алгоритму (динамический приоритет).
Основной недостаток статических приоритетов в том, что устройства, имеющие высокий приоритет, в состоянии полностью блокировать доступ к шине устройств с низким уровнем приоритета. Системы с динамическими приоритетами дают шанс каждому из запросивших устройств рано или поздно получить право на управление шиной, то есть в таких системах реализуется принцип равнодоступности.
Наибольшее распространение получили следующие алгоритмы динамического изменения приоритетов:
простая циклическая смена приоритетов;
циклическая смена приоритетов с учетом последнего запроса;
смена приоритетов по случайному закону;
алгоритм наиболее давнего использования.
В алгоритме простой циклической смены приоритетов после каждого цикла арбитража все приоритеты понижаются на один уровень, при этом устройство, имевшее ранее низший уровень приоритета, получает наивысший приоритет.
В схеме циклической смены приоритетов с учетом последнего запроса все возможные запросы упорядочиваются в виде циклического списка. После обработки очередного запроса обслуженному ведущему назначается низший уровень приоритета. Следующее в списке устройство получает наивысший приоритет, а остальным устройствам приоритеты назначаются в убывающем порядке, согласно их следованию в циклическом списке.
В обеих схемах циклической смены приоритетов каждому ведущему обеспечивается шанс получить шину в свое распоряжение, однако большее распространение получил второй алгоритм.
При смене приоритетов по случайному закону после очередного цикла арбитража с помощью генератора псевдослучайных чисел каждому ведущему присваивается случайное значение уровня приоритета.
В схеме равных приоритетов при поступлении к арбитру нескольких запросов каждый из них имеет равные шансы на обслуживание. Возможный конфликт разрешается арбитром. Такая схема принята в асинхронных системах.
В алгоритме наиболее давнего использования (LRU, Least Recently Used) после каждого цикла арбитража наивысший приоритет присваивается ведущему, который дольше чем другие не использовал шину.
Помимо рассмотренных существует несколько алгоритмов смены приоритетов, которые не являются чисто динамическими, поскольку смена приоритетов происходит не после каждого цикла арбитража. К таким алгоритмам относятся:
алгоритм очереди (первым пришел — первым обслужен);
алгоритм фиксированного кванта времени.
В алгоритме очереди запросы обслуживаются в порядке очереди, образовавшейся к моменту начала цикла арбитража. Сначала обслуживается первый запрос в очереди, то есть запрос, поступивший раньше остальных. Аппаратурная реализация алгоритма связана с определенными сложностями, поэтому используется он редко.
В алгоритме фиксированного кванта времени каждому ведущему для захвата шины в течение цикла арбитража выделяется определенный квант времени. Если ведущий в этот момент не нуждается в шине, выделенный ему квант остается не использованным. Такой метод наиболее подходит для шин с синхронным протоколом.
арбитраж шины
арбитраж шины
Процедура арбитража необходима для разрешения ситуаций, когда несколько узлов пытаются получить одновременный доступ к шине. После ее выполнения доступом к шине обладает лишь один узел. В CAN протоколе используется алгоритм арбитража CMSA/CD (множественный доступ с обнаружением несущей / детектирование коллизий) совместно с AMP (арбитраж по приоритету сообщения). Этот протокол позволяет проводить арбитраж без разрушения сообщений.
[http://can-cia.com/fileadmin/cia/pdfs/CANdictionary-v2_ru.pdf]
Тематики
Смотреть что такое «арбитраж шины» в других словарях:
арбитраж на основе состязания — Процедура арбитража на основе множественного доступа с обнаружением несущей (CMSA), при которой попытка захвата шины осуществляется многими узлами одновременно и для получения доступа проводится их состязание. [http://can… … Справочник технического переводчика
P-NET — P NET это промышленная сеть, которая была создана для объединения отдельных компонент вычислительного процесса, а именно: компьютера, датчиков, исполнительных устройств, устройств ввода/вывода, центрального и периферийного контроллеров… … Википедия
Список чипсетов Intel — … Википедия
ГОСТ Р 50304-92: Системы для сопряжения радиоэлектронных средств интерфейсные. Термины и определения — Терминология ГОСТ Р 50304 92: Системы для сопряжения радиоэлектронных средств интерфейсные. Термины и определения оригинал документа: 75 абонент интерфейса: Радиоэлектронное средство, подключенное к интерфейсу для выдачи или приема информации… … Словарь-справочник терминов нормативно-технической документации
PCI — У этого термина существуют и другие значения, см. PCI (значения) … Википедия
Шина PCI — Разъём 32 разрядной PCI на материнской плате Разъём 64 разрядной PCI в Power Macintosh G4 PCI (англ. Peripheral component interconnect, дословно взаимосвязь периферийных компонентов) шина ввода/вывода для подключения периферийных устройств к… … Википедия
Controller Area Network — CAN (англ. Controller Area Network сеть контроллеров) стандарт промышленной сети, ориентированный прежде всего на объединение в единую сеть различных исполнительных устройств и датчиков. Режим передачи последовательный,… … Википедия
КАМАК — (англ. CAMAC) стандарт, определяющий организацию магистрально модульной шины, предназначенной для связи измерительных устройств с цифровой аппаратурой обработки данных в системах сбора данных. Содержание 1 Появление КАМАК … Википедия
Магистральный параллельный интерфейс — (МПИ) стандарт, определяющий набор контактов и процедуры обмена по 16 разрядной шине с совмещением (мультиплексированием) адреса и данных. Стандарт не определяет физической реализации интерфейса. Содержание 1 Принцип работы 2 Реализации … Википедия
Арбитр — (oт лат. arbiter), в общем значении судья, посредник: Судья в третейском суде Судья в арбитражном суде Суперарбитр Спортивный судья в некоторых видах спортивных состязаний (например, футбольный судья). Арбитр системной шины часть … Википедия
4.10. Память данных и арбитраж шины
Рисунок 4.3. Доступ к шине
4.10.1. Шинный приоритет
Если несколько мастеров запрашивают доступ к одной шине, то доступ будет предоставляться с учетом шинного приоритета в следующем порядке (от старшего приоритета к младшему)
4.11. Временные характеристики доступа к памяти
4.12. Идентификация микроконтроллера
У каждого МК имеется трехбайтный идентификационный код, с помощью которого можно удостовериться, что производителем является Atmel, и определить тип МК. Идентификационный код хранится в специальных регистрах. В одном из таких регистров можно узнать номер версии МК.
4.13. Отключение порта JTAG
У МК предусмотрена возможность отключения порта JTAG из программы. Этим можно предотвратить какие-либо попытки доступа к памяти со стороны внешнего порта JTAG. Такая блокировка будет действовать до следующего сброса МК или до возобновления работы порта JTAG программой. После отключения порта JTAG, все его линии можно использовать как обычные линии ввода-вывода.
4.14. Защита памяти ввода-вывода
У МК реализованы несколько возможностей, позволяющих повысить безопасность их использования в некоторых применениях. К их числу относится блокировка регистров ввода-вывода, связанных с системой событий и блоком расширения возможностей генерации импульсов. После активизации этой блокировки программа теряет возможность выполнять запись во все связанные регистры ввода-вывода. У регистров также предусмотрен механизм защиты от изменений (см. 3.12. «Защита от изменения конфигурации»).
Организация шин (стр. 2 )
| Из за большого объема этот материал размещен на нескольких страницах: 1 2 3 4 |
Третья группа — линии арбитража. Вопросы арбитража рассматриваются несколько позже. Пока отметим лишь, что арбитраж необходим для выбора одного из нескольких ведущих, одновременно претендующих на доступ к шине. Число линий арбитража в разных шинах варьируется от 3 до 11.
Четвертую группу образуют линии прерывания. По этим линиям передаются запросы на обслуживание, посылаемые от ведомых устройств к ведущему. Под собственно запросы обычно отводятся одна или две линии, однако при одновременном возникновении запросов от нескольких ведомых возникает проблема арбитража, для чего могут понадобиться дополнительные линии, если только с этой целью не используются линии третьей группы.
Пятая группа — линии для организации последовательных локальных сетей. Наличие от 1 до 4 таких линий стало общепринятой практикой в современных шинах. Обусловлено это тем, что последовательная передача данных протекает значительно медленнее, чем параллельная, и сети значительно выгоднее строить, не загружая быстрые линии основных шин адреса и данных. Кроме того, шины этой группы могут быть использованы как полноценный, хотя и медленный, избыточный тракт для замены ША и ШД в случае их отказа. Иногда шины пятой группы назначаются для реализации специальных функций, таких, например, как обработка прерываний или сортировка приоритетов задач.
Некоторых ШУ имеется шестая группа сигнальных линий — от 4 до 5 линий позиционного кода, подсоединяемых к специальным выводам разъема. С помощью перемычек на этих выводах можно задать уникальный позиционный код разъем на материнской плате или вставленной в этот разъем дочерней платы. Такой код может быть использован для индивидуальной инициализации каждой отдельной платы при включении или перезапуске системы.
Наконец, в каждой шине обязательно присутствуют линии, которые в нашей классификации входят в седьмую группу, которая, по сути, является одной из важнейших. Это группа линий тактирования и синхронизации. При проектировав шины таким линиям уделяется особое внимание. В состав группы, в зависимости от протокола шины (синхронный или асинхронный), входят от двух до шести линий.
В довершение необходимо упомянуть линии для подвода питающего напряжения и линии заземления.
Большое количество линий в шине предполагает использование разъемов со значительным числом контактов. В некоторых шинах разъемы имеют сотни контактов, где предусмотрены подключение вспомогательных шин специального назначения, свободные линии для локального обмена между дочерними платами, множественные параллельно расположенные контакты для «размножения» питания и «земли». Значительно чаще число контактов разъема ограничивают. В табл. 4.1 показано возможное распределение линий 32-разрядной шины в 64-контактном разъеме.
Таблица 4.1. Распределение линий 32-разрядной шины в 64-контактном разъеме
Типовое число выводов
Могут быть объединены в мультиплексируемую шину
Тактирование и синхронизация
Выделенные и мультиплексируемые линии
В некоторых ВМ линии адреса и данных объединены в единую мультиплексируемую шину адреса/данных. Такая шина функционирует в режиме разделения времени, поскольку цикл шины разбит на временной интервал для передачи адреса и времени интервал для передачи данных. Структура такой шины показана на рис. 4.10.
Мультиплексирование адресов и данных предполагает наличие мультиплексора на одном конце тракта пересылки информации и демультиплексора на его другом конце. Мультиплексоры и демультиплексоры играют роль коммутирующих устройств.
Мультиплексирование позволяет сократить общее число линий, но требует усложнения логики связи с шиной. Кроме того, оно ведет к потенциальному снижению производительности, поскольку исключает возможность параллельной передачи адресов и данных, что можно было бы использовать в транзакциях записи, одновременно выставляя на ША адрес, а на ШД — записываемое слово. Примером применения мультиплексируемой шины адреса/данных может служить шина Futurebus+.
Рис. 4.10. Мультиплексирование адреса и данных
В реальных системах на роль ведущего вправе одновременно претендовать сразу сколько из подключенных к шине устройств, однако управлять шиной в каждый момент времени может только одно из них. Чтобы исключить конфликты, шина должна предусматривать определенные механизмы арбитража запросов и правила предоставления шины одному из запросивших устройств. Решение обычно принимается на основе приоритетов претендентов.
Каждому потенциальному ведущему присваивается определенный уровень приоритета, который может оставаться неизменным (статический или фиксированный приоритет) либо изменяться по какому-либо алгоритму (динамический приоритет).
Основной недостаток статических приоритетов в том, что устройства, имеющие высокий приоритет, в состоянии полностью блокировать доступ к шине устройств с низким уровнем приоритета. Системы с динамическими приоритетом дают шанс каждому из запросивших устройств рано или поздно получить право на управление шиной, то есть в таких системах реализуется принцип равнодоступности.
Наибольшее распространение получили следующие алгоритмы динамические изменения приоритетов:
простая циклическая смена приоритетов; циклическая смена приоритетов с учетом последнего запроса; смена приоритетов по случайному закону; схема равных приоритетов; алгоритм наиболее давнего использования.
В алгоритме простой циклической смены приоритетов после каждого цикла арбитража все приоритеты понижаются на один уровень, при этом устройство, имевшее ранее низший уровень приоритета, получает наивысший приоритет.
В схеме циклической смены, приоритетов с учетом последнего запроса все возможные запросы упорядочиваются в виде циклического списка. После обработки очередного запроса обслуженному ведущему назначается низший уровень приоритета. Следующее в списке устройство получает наивысший приоритет, а остальным устройствам приоритеты назначаются в убывающем порядке, согласно их следованию в циклическом списке.
В обеих схемах циклической смены приоритетов каждому ведущему обеспечивается шанс получить шину в свое распоряжение, однако большее распространение получил второй алгоритм.
При смене приоритетов по случайному закону после очередного цикла арбитража с помощью генератора псевдослучайных чисел каждому ведущему присваивается случайное значение уровня приоритета.
В схеме равных приоритетов при поступлении к арбитру нескольких запросов каждый из них имеет равные шансы на обслуживание. Возможный конфликт разрешается арбитром. Такая схема принята в асинхронных системах.
В алгоритме наиболее давнего использования (LRU, Least Recently Used) после каждого цикла арбитража наивысший приоритет присваивается ведущему, который дольше чем другие не использовал шину.
Помимо рассмотренных существует несколько алгоритмов смены приоритетов, которые не являются чисто динамическими, поскольку смена приоритетов происходит не после каждого цикла арбитража. К таким алгоритмам относятся: алгоритм очереди (первым пришел — первым обслужен); алгоритм фиксированного кванта времени.
В алгоритме очереди запросы обслуживаются в порядке очереди, образов шейся к моменту начала цикла арбитража. Сначала обслуживается первый запрос в очереди, то есть запрос, поступивший раньше остальных. Аппаратурная реализация алгоритма связана с определенными сложностями, поэтому используется редко.
В алгоритме фиксированного кванта времени каждому ведущему для захвата шины в течение цикла арбитража выделяется определенный квант времени. Если ведущий в этот момент не нуждается в шине, выделенный ему квант остается не использованным. Такой метод наиболее подходит для шин с синхронным протоколом
Арбитраж запросов на управление шиной может быть организован по централизованной или децентрализованной схеме. Выбор конкретной схемы зависит от требований к производительности и стоимостных ограничений.
При централизованном арбитраже в системе имеется специальное устройство — центральный арбитр, — ответственное за предоставление доступа к шине только одному из запросивших ведущих. Это устройство, называемое иногда центральным контроллером шины, может быть самостоятельным модулем или частью ЦП. Наличие на шине только одного арбитра означает, что в централизованной схеме имеется единственная точка отказа. В зависимости от того, каким образом ведущие устройства подключены к центральному арбитру, возможные схемы централизованного арбитража можно подразделить на параллельные и последовательные.
В параллельном варианте центральный арбитр связан с каждым потенциальным ведущим индивидуальными двухпроводными трактами. Поскольку запросы к центральному арбитру могут поступать независимо и параллельно, данный вид арбитража называют централизованным параллельным арбитражем или централизованным арбитражем независимых запросов.
Идею централизованного параллельного арбитража на примере восьми ведущих устройств иллюстрирует рис, 4.11, а.
Здесь и далее под «текущим ведущим» будем понимать ведущее устройство, Управляющее шиной в момент поступления нового запроса. Устройство, выставившее запрос на управление шиной, будем называть «запросившим ведущим», сигналы запроса шины (ЗШ) поступают на вход центрального арбитра по индивидуальным линиям. Ведущему с номером /, который был выбран арбитром, также по индивидуальной линии возвращается сигнал предоставления шины (ПШ1). Реально же занять шину новый ведущий сможет лишь после того, как текущий ведущий (пусть он имеет номер j) снимет сигнал занятия шины (ШЗ). Текущий ведущий должен сохранять сигналы ШЗ и 3Шj активными в течение всего времени, пока использует шину. Получив запрос от ведущего, приоритет которого выше, чем у текущего ведущего, арбитр снимает сигнал ПШ на входе текущего ведущего и выдает сигнал предоставления шины ПШ, запросившему ведущему. В свою очередь текущий ведущий, обнаружив, что центральный арбитр убрал с его входа ПШj, снимает свои сигналы ШЗ и ЗШj, после чего запросивший ведущий может перенять управление шиной. Если в момент пропадания сигнала ПШ на шине происходит передача информации, текущий ведущий сначала завершает передачу и лишь после этого снимает свои сигналы.
Рис. 4.11. Централизованный параллельный арбитраж: а — общая схема; б — возможная реализация
Логика выбора одного из запрашивающих ведущих обычно реализуется аппаратными средствами. В качестве примера рассмотрим реализацию системы централизованного параллельного арбитража для статических приоритетов (рис. 4.11,6). Пусть имеется восемь потенциальных ведущих 7-0, восемь сигналов запроса шины ЗШ7-ЗШ0 и восемь соответствующих им сигналов предоставления шины ПШ7-ПШ0. Положим, что приоритеты ведущих последовательно убывают с уменьшением их номера. Если текущим является ведущий 3, то шину у него могут перехватить ведущие с номерами от 4 до 7, а ведущие 0-2 этого сделать не могут. Ведущий О вправе использовать шину лишь тогда, когда она свободна, и должен освободить ее по запросу любого другого ведущего. Схема статических приоритетов может быть относительно просто реализована на основе логических выражений, которые применительно к рассматриваемому примеру имеют вид:
Устройства арбитража, реализующие систему статических приоритетов, обычно выполняются в виде отдельных микросхем (например, SN74278 фирмы Texas Instruments), которые, с целью увеличения числа входов и выходов, могут объединяться по каскадной схеме, что, однако, ведет к увеличению времени арбитража.
При наличии большого числа источников запроса центральный арбитр может строиться по схеме двухуровневого параллельного арбитража. Все возможные запросы разбиваются на группы, и каждая группа анализируется своим арбитром первого уровня. Каждый арбитр первого уровня выбирает запрос, имеющий в данной группе наивысший приоритет. Арбитр второго уровня отдает предпочтение среди арбитров первого уровня, обнаруживших запросы на шину, тому, который имеет более высокий приоритет. Если количество возможных запросов очень велико, могут вводиться дополнительные уровни арбитража.
Схема централизованного параллельного арбитража очень гибка — вместо статических приоритетов допускается использовать любые варианты динамической смены приоритетов. Благодаря наличию прямых связей между центральным арбитром и ведущими схема обладает высоким быстродействием, однако именно непосредственные связи становятся причиной повышенной стоимости реализации. В параллельных схемах затруднено подключение дополнительных устройств. Обычно максимальное число ведущих при параллельном арбитраже не превышает восьми. У схемы есть еще один существенный недостаток — сигналы запроса и подтверждения присутствуют только на индивидуальных линиях и не появляются на общих линиях шины, что затрудняет диагностику.
Второй вид централизованного арбитража известен как централизованный последовательный арбитраж. В последовательных схемах для выделения запроса с наивысшим приоритетом используется один из сигналов, поочередно проходящий через цепочку ведущих, чем и объясняется другое название — цепочечный или гирляндный арбитраж. В дальнейшем будем полагать, что уровни приоритета ведущих устройств в цепочке понижаются слева направо.
В зависимости от того, какой из сигналов используется для целей арбитража, различают три основных типа схем цепочечного арбитража: с цепочкой для сигнала предоставления шины, с цепочкой для сигнала запроса шины (ЗШ) и с цепочкой для дополнительного сигнала разрешения (РШ). Наиболее распространена схема цепочки для сигнала ПШ (рис. 4.12).
Рис. 4.12. Централизованный последовательный арбитраже цепочкой для сигнала
Запросы от ведущих объединяются на линии запроса шины по схеме «монтажного ИЛИ». Аналогично организована и линия, сигнализирующая о том, что шина в данный момент занята одним из ведущих. Когда один или несколько ведущих выставляют запросы, эти запросы транслируются на вход центрального арбитра. Получив сигнал ЗШ, арбитр анализирует состояние линии занятия шины, и если шина свободна, формирует сигнал ПШ. Сигнал предоставления шины последовательно переходит по цепочке от одного ведущего к другому. Если устройство, на которое поступил сигнал ПШ, не запрашивало шину, оно просто пропускает сигнал дальше по цепочке. Когда ПШ достигнет самого левого из запросивших ведущих, последний блокирует дальнейшее распространение сигнала ПШ по цепочке и берет на себя управление шиной.
Еще раз отметим, что очередной ведущий не может приступить к управлению шиной до момента ее освобождения. Центральный арбитр не должен формировать сигнал ПШ вплоть до этого момента.
Цепочечная реализация предполагает статическое распределение приоритетов Наивысший приоритет имеет ближайшее к арбитру ведущее устройство (устройство, на которое арбитр выдает сигнал ПШ). Далее приоритеты ведущих в цепочке последовательно понижаются.
Основное достоинство цепочечного арбитража заключается в простоте реализации и в малом количестве используемых линий. Последовательные схемы арбитража позволяют легко наращивать число устройств, подключаемых к шине.
Схеме тем не менее присущи существенные недостатки. Прежде всего, последовательное прохождение сигнала по цепочке замедляет арбитраж, причем время арбитража растет пропорционально длине цепочки. Статическое распределение приоритетов может привести к полному блокированию устройств с низким уровнем приоритета (расположенных в конце цепочки). Наконец, как и параллельный вариант, централизованный последовательный арбитраж не очень удобен в плане диагностики работы шины.
При децентрализованном или распределенном арбитраже единый арбитр отсутствует. Вместо этого каждый ведущий содержит блок управления доступом к шине, и при совместном использовании шины такие блоки взаимодействуют друг с другом, разделяя между собой ответственность за доступ к шине. По сравнению с централизованной схемой децентрализованный арбитраж менее чувствителен к отказам претендующих на шину устройств.
Рис. 4.13. Схема децентрализованного параллельного арбитража
Одна из возможных схем, которую можно условно назвать схемой децентрализованного параллельного арбитража, показана на рис. 4.13. Каждый ведущий имеет уникальный уровень приоритета и обладает собственным контроллером шины, способным формировать сигналы предоставления и занятия шины. Сигналы за любого ведущего поступают на входы всех остальных ведущих. Логика арбитража реализуется в контроллере шины каждого ведущего, Под децентрализованный арбитраж может быть модифицирована также схема, показанная на рис. 4.12. Подобный вариант, называемый кольцевой схемой, показан на рис. 4.14.
Рис. 4.14. Кольцевая схема
Здесь сигнал может возникать в различных точках цепочки, замкнутой в кольцо. Переход к новому ведущему сопровождается циклической сменой приоритетов. В следующем цикле арбитража текущий ведущий будет иметь самый низкий уровень приоритета. Соседний ведущий справа получает наивысший приоритет, а далее каждому устройству в кольце присваивается уровень приоритета на единицу меньше, чем у соседа слева. Иными словами, реализуется циклическая смена приоритетов с учетом последнего запроса.
Текущий ведущий, управляющий шиной, генерирует сигнал ПШ, который проходит через все ведущие устройства, не запросившие шину. Ведущий, сформировавший запрос и имеющий на входе активный сигнал ПШ, запрещает прохождение этого сигнала далее по цепочке, но не может взять на себя управление шиной до момента ее освобождения текущим ведущим. Когда текущий ведущий обнаруживает, что «потерял» сигнал ПШ на своем входе, он обязан при первой возможности освободить шину и снять сигнал занятия шины.
Для большинства шин все-таки более характерна другая организация децентрализованного арбитража. Такие схемы предполагают наличие в составе шины группы арбитражных линий, организованных по схеме «монтажного ИЛИ». Это позволяет любому ведущему видеть сигналы, выставленные остальными устройствами. Каждому ведущему присваивается уникальный номер, совпадающий с кодом уровня приоритета данного ведущего. Запрашивающие шину устройства выдают на арбитражные линии свой номер. Каждый из запросивших ведущих, обнаружив на арбитражных линиях номер устройства с более высоким приоритетом, снимает с этих линий младшие биты своего номера. В конце концов, на арбитражных линиях остается только номер устройства, обладающего наиболее высоким приоритетом. Победителем в процедуре арбитража становится ведущий, опознавший на арбитражных линиях свой номер. Подобная схема известна также как распределенный арбитраж с самостоятельным выбором, поскольку ведущий сам определяет, стал ли он победителем в арбитраже, то есть выбирает себя самостоятельно.
Идея подобного арбитража была предложена М. Таубом (Matthew Та К) в 1975 году. В алгоритме Тауба под арбитраж выделяются две группы сигнальных линий, доступные всем устройствам на шине. Устройства подключаются к этим линиям по схеме «монтажного ИЛИ». Первая группа служит для передачи сигналов синхронизации и управления. Вторую группу линий условно назовем шиной приоритета и обозначим В. В зависимости от принятого числа уровней приоритет эта группа может содержать от 4 до 7 линий. Каждому потенциальному ведущему назначается уникальный уровень приоритета. Приоритет Р представлен k-разрядным двоичным кодом. Каждому разряду кода приоритета соответствует линия в шине В. Ведущие, претендующие на управление шиной, выдают на шину В свои коды приоритета Р. Дальнейшее поведение ведущих определяется следующим правилом: если i-й разряд кода приоритета равен О (Рi = 0), а на i-й линии шины В в данный момент присутствует единица (Вi = 1), то ведущий обнуляет в выставляемом коде все младшие разряды, от 0-го до i-го. В результате такой процедуры на шине В остается код наивысшего из выставленных приоритетов. Устройство, распознавшее на шине свой код приоритета, считается выигравшим арбитраж. После завершения своей транзакции выигравшее устройство снимает с шины В свой код приоритета, при этом ситуация на линиях В меняется. Ведущие, претендовавшие на шину, восстанавливают ранее обнуленные разряды, и начинается новый цикл арбитража.
Поясним алгоритм примером. Пусть в некоторый момент времени запрос на шину выставили три ведущих с номерами 10,8 и 5. Положим, что уровни приоритета ведущих совпадают с их номерами, то есть на четырехразрядную шину В будут выданы соответственно коды 1010, (1010), 10и 01Так как над одноименными разрядами кодов выполняется операция логического сложения (устройства подключены к линиям по схеме «монтажного ИЛИ»), на шине В установится код 11112. Согласно рассмотренному выше правилу первое и второе устройства обязаны обнулить разряды с 2-го по 0-й (0-й разряд — младший), а третье — все разряды. В итоге на шине В установится новый код 10002, и первое устройство сможет немедленно восстановить ранее обнуленные разряды. Таким образом, на шине В будет код 10102, то есть код приоритета устройства с номером w-Схема арбитража этого устройства опознает на шине свой уровень приоритета и захватит шину. После завершения транзакции устройство с номером 10 снимет свой код приоритета, а остальные два устройства восстановят свои. Далее начнет ся новая процедура арбитража.
Описанная процедура связана с определенными затратами времени на стабилизацию на арбитражных линиях номера устройства-победителя. Это время должна быть учтено в протоколе шины.
Чтобы исключить постоянное блокирование ведущих, обладающих низким приоритетом, Тауб впоследствии модернизировал свою схему, дополнив ее модулем равнодоступности (fairness module). Модуль запрещает выигравшему ведущему выдавать новые запросы до завершения обслуживания всех ожидающих запро
сов. Следует отметить, что это не гарантирует, а только помогает каждому ведущему получить право на управление шиной. Вариации рассмотренной схемы широко используются в таких шинах, как Futurebus, NuBus, MultiBus II, Fastbus.
В целом схемы децентрализованного арбитража потенциально более надежны, поскольку отказ контроллера шины в одном из ведущих не нарушает работу с шиной на общем уровне. Тем не менее должны быть предусмотрены средства для обнаружения неисправных контроллеров, например на основе тайм-аута. Основной недостаток децентрализованных схем — в относительной сложности логики арбитража, которая должна быть реализована в аппаратуре каждого ведущего.
В некоторых ВМ применяют комбинированные последовательно-параллельные схемы арбитража, в какой-то мере сочетающие достоинства обоих методов. Здесь все ведущие разбиваются на группы. Арбитраж внутри группы ведется по последовательной схеме, а между группами — по параллельной.
Ограничение времени управления шиной
Вне зависимости от принятой модели арбитража должна быть также продумана стратегия ограничения времени контроля над шиной. Одним из вариантов может быть разрешение ведущему занимать шину в течение одного цикла шины, с предоставлением ему возможности конкуренции за шину в последующих циклах. Другим вариантом является принудительный захват контроля над шиной устройством с более высоким уровнем приоритета, при сохранении восприимчивости текущего ведущего к запросам на освобождение шины от устройств с меньшим уровнем приоритета.
В опросных методах запросы только фиксируются, и контроллер шины способен узнать о них, лишь опросив ведущих. Опрос может быть как централизованным — с одним контроллером, производящим опрос, так и децентрализованным — с несколькими контроллерами шины.
Данный механизм использует специальные линии опроса между контроллером (контроллерами) шины и ведущими — по одной линии для каждого ведущего. Целью уменьшения числа таких линий может формироваться номер запрашивающего ведущего, для чего вместо 2п достаточно п линий. Кроме того, используются также линии запроса шины и линия сигнала занятия шины.
Централизованный опрос иллюстрирует рис. 4.15.
Контроллер шины последовательно опрашивает каждое ведущее устройство на предмет, находится ли оно в ожидании предоставления шины. Для этого контролер выставляет на линии опроса адрес соответствующего ведущего. Если в момент выставления адреса ведущий ожидает разрешения на управление шиной, то он, распознав свой адрес, сигнализирует об этом, делая активной шину (ЗШ). Обнаружив сигнал, контроллер разрешает ведущему использовать шину. Последовательность опроса ведущих может быть организована в порядке убывания адресов, либо меняться в соответствии с алгоритмом динамического приоритета.
Рис. 4.15. Организация централизованного опроса ведущих
Организация децентрализованного опроса показана на рис. 4.16.
Каждый ведущий содержит контроллер шины, состоящий из дешифратора адреса и генератора адреса. В начале опросной последовательности формируется адрес, который распознается контроллером. Если соответствующий ведущий ожидает доступа к шине, он вправе теперь ее занять. По завершении работы с шиной контроллер текущего ведущего генерирует адрес следующего ведущего, и процесс повторяется. При такой схеме обычно требуется применять систему с квитированием, использующую сигнал ЗШ, формируемый генератором адреса, и сигнал ПШ, генерируемый дешифратором адреса.
Рис. 4.16. Организация децентрализованного опроса ведущих
При децентрализованном опросе отказ в одной из точек приводит к отказу всей системы арбитража. Такая ситуация, впрочем, может быть предотвращена с помощью механизма тайм-аута: по истечении заданного времени функции отказавшего контроллера берет на себя следующий контроллер.
Ситуация с передачей данных еще сложнее, так как данные могут пересылаться в обоих направлениях. В транзакции чтения имеет место задержка на время, пока мое устройство ищет затребованные данные, и ведомый должен каким-то образом известить о моменте, когда данные можно считать достоверными. Система должна предусматривать возможный перекос данных.
Метод, выбираемый проектировщиками шин для информирования о достоверности адреса, данных, управляющей информации и информации состояния, называется протоколом шины. Используются два основных класса протоколов — синхронный и асинхронный. В синхронном протоколе все сигналы «привязаны» к импульсам единого генератора тактовых импульсов (ГТИ). В асинхронном протоколе для каждой группы линий шины формируется свой сигнал подтверждения достоверности. Хотя в каждом из протоколов можно найти как синхронные, так и асинхронные аспекты, различия все же весьма существенны.