Арбитраж шины PCI

Чтобы самостоятельно произвести обмен по шине устройство должно сначала получить доступ к ней. В шине PCI для этого используется централизованный арбитраж (рис. 2.26). Устройство, организующее арбитраж, называемое арбитром, обычно встраивается в одну из микросхем системной логики. От каждого устройства PCI к арбитру проложены две специальные линии. Одна из них (REQ#) используется для запроса шины, а вторая (GNT#) – для получения разрешения на доступ к шине.



Рис. 2.26



Чтобы произвести обмен по шине, устройство PCI (в том числе и процессор) устанавливает сигнал REQ# на своей линии и ждет, пока арбитр не выдаст разрешающий сигнал GNT#. После поступления этого сигнала устройство может использовать шину в следующем цикле. Алгоритм арбитража запросов не зависит от технических характеристик шины PCI. Он может быть настроен на циклическое обслуживание устройств, FIFO, LIFO или по другой приоритетной схеме. При этом важно лишь, чтобы запросы не оставались во очереди на неопределенно долгое время.

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

Если задающее устройство осуществляет очень длительную передачу, во время которой другое устройство подало свой сигнал REQ#, то арбитр может сбросить сигнал на линии GNT# задатчика. При этом он должен освободить шину. В такой системе при отсутствии конкуренции отдельное устройство может владеть шиной длительное время.

Сайт управляется системой uCoz