Аппаратные интерфейсы ПК

Мосты PCI


Для соединения шины PCI с другими шинами и между собой применяются спе­циальные аппаратные средства—мосты PCI (PCIBridge). Главный мост (Host Bridge) используется для подключения PCI к системной шине (системной памяти и про­цессору), одноранговый мост (Peer-to-PeerBridge) — для соединения двух шин PCI.

Соединения нескольких шин PCI характерно для серверов — таким образом уве­личивают число подключаемых устройств. Мосты образуют иерархию шин, на вершине которой находится главная шина с нулевым номером. Главный мост чип­сета системной платы может соединять центр (процессор и память) с нескольки­ми равноранговыми шинами PCI, из которых условно главной будет шина с нуле­вым номером. Для подключения шин PCMCIA, CardBus, MCA, ISA/EISA, X-Bus и LPC используются специальные мосты, входящие в чипсеты системных плат или же являющиеся отдельными устройствами PCI (микросхемами). Мосты выполня­ют преобразование интерфейсов соединяемых ими шин, синхронизацию и буфе­ризацию обменов данных. Мосты (включая и мосты PCI-PCI) допускают различие частот синхронизации на соединяемых ими шинах.

Каждый мост программируется — ему указываются диапазоны адресов в простран­ствах памяти и ввода-вывода, отведенные устройствам его шин. Если адрес ЦУ текущей транзакции на одной шине (стороне) моста относится к шине противо­положной стороны, мост перенаправляет транзакцию на соответствующую шину и обеспечивает согласование протоколов шин. Таким образом, совокупность мостов PCI выполняет маршрутизацию (routing) обращений по связанным шинам. Счи­тается, что устройство с конкретным адресом может присутствовать только на одной из шин, а на какой именно, «знают» запрограммированные мосты. Решать задачу маршрутизации призван также сигнал DEVSEL*. Обращения, не востребован­ные абонентами PCI, могут быть перенаправлены, например, на шину ISA/EISA.

С мостами связаны понятия позитивного и субтрактивного декодирования адре­сов. Рядовые агенты PCI (устройства и мосты) отзываются только на обращения по адресам, принадлежащим областям, описанным в их конфигурационном про­странстве (через базовые адреса и диапазоны памяти или ввода-вывода).
Такой способ декодирования называется позитивным. Мост с позитивным декодирова­нием (positive decoding) пропускает через себя только обращения, принадлежащие определенному списку, заданному в его конфигурационных регистрах. Мост с суб-трактивным декодированием (subtractive decoding) пропускает через себя обраще­ния, не относящиеся к другим устройствам. Его области прозрачности формируют­ся вычитанием (откуда и название) из общего пространства областей, описанных списком. Возможность субтрактивного декодирования имеется только у мостов определенного типа, и она является дополнением к позитивному декодированию.

6.2. Шина PCI_______________________________________________________ 199

Позитивное и субтрактивное декодирование относится только к обращениям, направленным в пространства памяти и ввода-вывода. Конфигурационные обраще­ния маршрутизируются с помощью номера шины, передаваемого в циклах типа 1 (см. п. 6.2.11): каждый мост «знает» номера всех шин, его окружающих. На каждой шине PCI должно присутствовать центральное устройство, выполня­ющее следующие функции:

¦ централизованный арбитраж — прием сигналов запроса REQx# от ведущих

устройств шины и предоставление им права на управление шиной сигналами

GNTx#;

¦     «подтягивание» управляющих сигналов к высокому уровню;

¦     субтрактивное декодирование адресов;



¦     генерация конфигурационных и специальных циклов по командам процессора

(с формированием индивидуальных сигналов IDSEL к адресуемому устройству PCI);

¦     формирование сигнала REQ64* в момент окончания сброса в качестве призна­

ка 64-битной шины (если она таковая).

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



Одной из особенностей применения шины PCI с ее мостовыми соединениями является возможность действительно одновременного выполнения более одного обмена данными по непересекающимся путям — Concurrent PCI Transferring или PCI Concurrency. Например, во время взаимодействия процессора с памятью ве­дущее устройство шины PCI может обмениваться данными с другим устройством PCI. Этот пример одновременности обмена скорее теоретический, поскольку ве­дущее устройство шины PCI, как правило, обменивается данными с системной памятью. Более интересный случай — обмен графического адаптера, подключен­ного к порту AGP (родственнику PCI, см. п. 6.3), с памятью одновременно с обме­ном процессора с устройством PCI или, наоборот, загрузка данных процессором в графический адаптер одновременно с обменом между ведущим устройством шины PCI и системной памятью. Одновременность требует довольно сложной логики централизованного арбитража запросов всех агентов системы и различных ухищрений в буферизации данных. Одновременность реализуется не всеми чип­сетами (в описаниях она всегда специально подчеркивается) и может быть запре­щена настройками CMOS Setup.

Для экономии полосы пропускания шины (уменьшения числа бесполезно заня­тых тактов) при обращениях к устройствам медленных шин (например, ISA) мост может выполнять отложенные транзакции (delayed transaction). Работает этот ме­ханизм следующим образом. Инициатор, расположенный на «быстрой» шине (это может быть и главный мост), обращается к ЦУ на медленной шине, выставляя адрес и команду, а в командах записи еще и данные. Мост сохраняет эту информа-

200_____________________________________ Глава 6. Шины и карты расширения

цию в своих внутренних регистрах и «от имени ЦУ» вводит сигнал STOP* (пре­кращение типа «повтор»), что вынуждает инициатор быстро освободить шину. Тем временем мост выполняет транзакцию с настоящим ЦУ и сохраняет у себя результат ее выполнения (для команд чтения это будут данные). Инициатор, полу­чивший ответ «повтор», вынужден снова начать точно ту же транзакцию, и теперь на нее мост быстро ответит истинным результатом, полученным от ЦУ.


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

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

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


Порядок и количество байт, переданных получателем, обязательно должны совпадать с соот­ветствующими данными инициатора обмена. Кроме того, сохраняется очередность операций записи и чтения. Обращение по чтению через мост вызывает принуди­тельное освобождение буферов отложенной записи. Таким образом, инициатор имеет возможность принудительно вызвать доставку задержанных данных записи, выполняя операцию чтения «из-за моста». Записи в порты ввода-вывода отклады­вать имеет право только главный мост, но только для транзакций, инициирован­ных центральным процессором. Операции чтения, естественно, выполняются сра­зу, поскольку без получения данных они бессмысленны.

6.2. Шина PCI_______________________________________________________ 201

Мосты могут преобразовывать транслируемые ими транзакции записи в память с целью оптимизации пропускной способности шины. Так, несколько последова­тельных транзакций записи могут объединяться в одну пакетную, в которой лиш­ние записи могут блокироваться с помощью сигналов разрешения байтов. Напри­мер, последовательность одиночных записей двойных слов по адресам 0, 4, Ch может быть скомбинирована (write combining) в один пакет с начальным адресом О, а во время третьей фазы данных (когда предполагается не требуемый адрес 8) все сигналы С/ВЕ[3:0]# пассивны. Записи отдельных байтов в определенных случаях могут быть объединены (byte merging) в одну транзакцию. Так, например, последо­вательность записей байтов по адресам 3, 1, 0 и 2 может быть объединена в одну запись двойного слова, поскольку эти байты принадлежат одному адресуемому двойному слову. Комбинирование и объединение могут работать независимо (объединенные транзакции могут комбинироваться), однако эти преобразования не изменяют порядок следования физических записей в устройства. Наличие этих возможностей не обязательно — оно зависит от «ловкости» мостов. Цель преоб­разований — сократить число отдельных транзакций (каждая имеет по крайней мере одну «лишнюю» фазу адреса) и, по возможности, фаз данных.


Устройства PCI должны нормально отрабатывать комбинирование записей — если устройство не допускает комбинирования, оно неправильно спроектировано. Если устройство не допускает объединения байтов, то оно в описании своей памяти должно иметь обнуленным бит Prefetchable.

С мостами PCI связано понятие VGA Palette Snooping — слежение за записью в палитры VGA, являющееся исключением из правила однозначной маршрутиза­ции обращений к памяти и вводу-выводу. Графическая карта в компьютере с ши­ной PCI обычно устанавливается в эту шину или в порт AGP, что логически экви­валентно установке в шину PCI. На VGA-карте имеются регистры палитр (Palette Registers), традиционно приписанные к пространству ввода-вывода. Если графи­ческая система содержит еще и карту смешения сигналов графического адаптера с сигналом «живого видео», перехватывая двоичную информацию о цвете теку­щего пиксела по шине VESA Feature Connector (снимаемую до регистра палитр), цветовая гамма будет определяться регистром палитр, размещенным на этой до­полнительной карте. Возникает ситуация, когда операция записи в регистр палитр должна отрабатываться одновременно и в графическом адаптере (на шине PCI или AGP), и в карте видеорасширения, которая может размещаться даже на другой шине (в том числе и ISA). В CMOS Setup может присутствовать параметр PCI VGA Palette Snoop. При его включении запись в порты ввода-вывода по адресу регистра палитр будет вызывать транзакцию не только на той шине, на которой установлен графический адаптер, но и на других шинах. Чтение же по этим адресам будет выполняться только с самим графическим адаптером. Реализация может возла­гаться на графическую карту PCI. Для этого она во время записи в регистр палитр фиксирует данные, но сигналы квитирования DEVSEL* и TRDY* не вырабатывает, в результате мост распространяет этот неопознанный запрос на шину ISA. В других реализациях мосту явно указывают на данное исключение, и он сам распростра­няет запись в регистры палитр на другие шины.

202_____________________________________ Глава 6. Шины и карты расширения


Содержание раздела