Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Интерфейсы.docx
Скачиваний:
2
Добавлен:
30.08.2019
Размер:
1.73 Mб
Скачать

Вопрос 9

Транзакции конфигурации

Интерфейс PCI обеспечивает полную программно управляемую инициализацию и конфигурациючерез отдельное адресное пространство конфигурации.

У устройств одно магистральнойPCI-системы, рис 2.1.1., пространство конфигурации типа 0, содержащее до 64 32-разрядных регистров, доступных и по чтению и по записи со стороны корневого устройства. Они выполняют рольрегистров идентификаторов устройства, регистров команд и состояния, шесть базовых регистров адреса и др.

У мостов многомагистральной PCI-системы, рис 2.1.1., пространство конфигурации типа 1, содержащее до 64 32-разрядных регистров, доступных и по чтению и по записи со стороны корневого устройства. Они выполняют рольрегистров идентификаторов устройства, регистров команд и состояния, двух базовых регистров адреса и др.

Механизм адресации к пространству конфигурации типа 0 и типа 1 различны.

31 11 10 8 7 2 1 0

Адрес IDSEL

Номер

функции

Номер

регистра

0

0

Type 0

31 24 23 16 15 11 10 8 7 2 1 0

Резерв

Номер

шины

Номер устройства

Номер

функции

Номер

регистра

0

1

Type 1

Тип 1 и тип 0 доступа конфигурации различаются значениями на AD[1::0]. Тип 0 транзакции конфигурации (когда AD[1::0] = "00") используется, чтобы выбрать устройство на PCI шине, где транзакция выполняется. Тип 1 транзакции конфигурации (когда AD[1::0] = "01") используется, чтобы передать запрос конфигурации на другую PCI магистраль.

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

Транзакция конфигурационного чтения

Вопрос 10

Мост PCI-PCI при первом рассмотрении представляет собой двух портовое устройство, содержащее:- буферную двух портовую память, - совокупность регистров конфигурации, - два контроллера интерфейса PCI, - устройство управления,- арбитр

Один контроллер PCI обслуживает первичную магистраль, другой контроллер PCI обслуживает вторичную магистраль. Контроллер первичной магистрали со стороны первичной магистрали работает как устройство-цель, со стороны вторичной магистрали как устройство-инициатор. Контроллер вторичной магистрали со стороны первичной шины работает как устройство-инициатор, со стороны вторичной магистрали как устройство-цель.

Применение мостов PCI-PCIв много магистральных PCI-системах. предоставляет такие возможности, как:

- увеличение возможного числа подключенных устройств, что служит преодолению ограничения электрических спецификаций одно магистральнойPCI- системы;

- разделение устройств PCI на группы с различными характеристиками разрядности (32/64 бит), тактовой частотой (33/66/100/133 МГц), протокола (PCI, PCI-X, PCI- Express).Так как на каждой магистрали все абоненты равняются на самого слабого участника, правильная расстановка устройств по шинам позволяет с максимальной эффективностью использовать возможности устройств и системы в целом;

- организация сегментов с «горячим» подключением/отключением устройств;

- организация одновременного параллельного выполнения транзакций от инициаторов, расположенных на разных магистралях.

Допускается только древовидная конфигурация, то есть две шины соединяются друг с другом лишь одним мостом и нет «петель», образуемых мостами.

Мост должен выполнять ряд обязательных функций.

  1. Обслуживать в качестве устройства-инициатора вторичную магистраль, а именно:

    1. Выполнять арбитраж – прием сигналов запроса REQx# от устройств-инициаторов вторичной магистрали и предоставление им права на управление шиной сигналами GNTx#;

    2. Парковать шину – подавать сигнал GNTx# какому-то устройству, когда управление шиной не требуется ни одному из устройств;

    3. Генерировать конфигурационные циклы типа 0 с формированием индивидуальных сигналов IDSEL к адресуемому устройству PCI;

    4. «Подтягивать» управляющие сигналы к высокому уровню;

    5. Определять возможности подключенных устройств и выбирать удовлетворяющий их режим работы шины (частота, разрядность, протокол);

    6. Формировать аппаратный сброс (RST#) по сбросу от первичного интерфейса и по команде, сообщая о выбранном режиме сигнализацией.

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

  3. Отвечать под видом целевого устройства на транзакции, инициированные мастером на одном интерфейсе и адресованные к ресурсу, находящемся со стороны другого интерфейса; транслировать эти транзакции на другой интерфейс, выступая в роли ведущего устройства (мастера), и передавать их результаты истинному инициатору.

Маршрутизирующие функции моста.Основная задача маршрутизации – определение, где по отношению к мосту находится ресурс, адресованный каждой транзакцией, - является первоочередной задачей при обработке каждой транзакции, «увиденной» мостом на любом из своих интерфейсов. Эта задача решается двояко, поскольку в фазе адреса может передаваться как иерархический адрес PCI (шинаустройствофункция), так и «плоский» адрес памяти или порта ввода-вывода.

  • Маршрутизация по иерархическому адресу. Через номер шины и номер устройства адресуются транзакции конфигурационной записи и чтения, генерации специального цикла. Для этих транзакций маршрутизация основана на системе нумерации шин. Номера присваиваются магистралям (шинам) PCI при конфигурировании системы строго последовательно. Номера мостов соответствуют номерам их вторичных шин.

  • Маршрутизация по «плоскому» адресу. Для манипулирования с транзакциями обращения к памяти и портам ввода-вывода мосту нужны карты адресов, на которых отмечены области, принадлежащие устройствам вторичной и подчиненных шин. В системе с плоской уникальной адресацией этого достаточно. Для отмеченных областей мост должен отвечать в качестве целевого устройства на транзакции, «увиденные» им на первичном интерфейсе, и инициировать их в роли устройства-инициатора на вторичном интерфейсе; остальные транзакции на первичном интерфейсе он игнорирует.

Отложенные транзакции.

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

Отложенные транзакции выполняются в три фазы:

- запрос транзакции устройством-инициатором (обмена данными с целевым устройством еще нет);

- завершение транзакции целевым устройством(мостом);

- завершение транзакции устройством-инициатором.

Для того чтобы отложить транзакцию, мост должен поставить в очередь отложенный запрос (delayedrequest) и сигналом STOP# ввести условие Retry. На этом первая фаза отложенной транзакции завершается.В запросе содержаться зафиксированные значения адреса, команды, разрешенных байт, линий четности (и линии REQ64# для 64-битных шин); для отложенных транзакций записи нужно сохранить еще и данные. Этой информации мосту достаточно, чтобы инициировать транзакцию на противоположной магистрали, - вторую фазу отложенной транзакции. Ее результатом будет преобразование в очереди отложенного запроса в отложенное завершение (delayedcompletion) – запрос вместе с ответом в виде состояния (и запрошенных данных чтения). Изначальное устройство-инициатор транзакции, получив условие Retry, должно через некоторое время повторить транзакцию-запрос, причем в точности совпадающий с первоначальным (иначе он мостом будет воспринят как новый). Если к этому моменту мост успел отработать данную транзакцию, то этот повторный запрос будет завершен нормальным образом (или отвергнут, если так ответило целевое устройство), а мост удалит отложенное завершение из своей очереди. Если транзакция еще не отработана, то мост снова запросит повтор, и инициатор должен будет повторять свой запрос до тех пор, пока мост не обеспечит нормального завершения. Это будет третьей, заключительной фазой отложенной транзакции.