Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Протокол, команды и транзакции шин PCI и PCI-X



Обмен информацией по шинам PCI и PCI-X организован в виде транзакций — логически завершенных операций обмена. В каждой транзакции выполняется одна команда — как правило, чтение или запись данных по указанному адресу. Транзакция начинается с фазы адреса, в которой инициатор задает команду и целевой адрес. Далее могут следовать фазы данных, в которых одно устройство (источник данных) помещает данные на шину, а другое (приемник) их считы­вает. Транзакции, в которых присутствует множество фаз данных, называются пакетными. Есть и одиночные транзакции (с одной фазой данных). Транзакция может завершиться и без фаз данных, если целевое устройство (или инициатор) не готово к обмену. В шине PCI-X добавлена фаза атрибутов, в которой передается дополнительная информация о транзакции.

Состав и назначение интерфейсных сигналов шины раскрывает табл. 14.2. Со­стояния всех сигнальных линий воспринимаются по положительному перепаду CLK. В разные моменты времени одними и теми же сигнальными линиями управляют разные устройства шины.

В каждый момент времени шиной может управлять только одно ведущее уст­ройство, получившее на это право от арбитра. Каждое ведущее устройство имеет пару сигналов — REQ# для запроса на управление шиной и GNT# для подтвер­ждения предоставления управления шиной. Устройство может начинать тран­закцию (устанавливать сигнал FRAMES) только при полученном активном сиг­нале GNT# и дождавшись отсутствия активности шины. Заметим, что за время ожидания покоя арбитр может «передумать» и отдать управление шиной друго­му устройству с более высоким приоритетом. Снятие сигнала GNT# не позволя­ет устройству начать следующую транзакцию и даже может заставить прекра­тить начатую транзакцию.

Для адреса и данных используются общие мультиплексированные линии AD. Линии С/ВЕ[3:О] обеспечивают кодирование команд в фазе адреса и разрешение байтов в фазе данных. В фазе адреса (начало транзакции) ведущее устройство активирует сигнал FRAMES, передает целевой адрес по шине AD, а по линиям С/ВЕ# — информацию о типе транзакции (команду). Адресованное целевое уст­ройство отзывается сигналом DEVSEU. Ведущее устройство указывает на свою готовность к обмену данными сигналом IRDY#, эта готовность может быть вы­ставлена и до получения сигнала DEVSEL#. Когда и целевое устройство оказыва­ется готово к обмену данными, оно устанавливает сигнал TRDY#. Данные по шине AD передаются только при одновременном наличии сигналов IRDY# и TRDY#. С помощью этих сигналов ведущее, и целевое устройства согласуют свои скорости, вводя такты ожидания (wait states). На рис. 14.1 приведена вре­менная диаграмма обмена, в которой и ведущее и целевое устройства вводят такты ожидания. Если бы они оба ввели сигналы готовности в конце фазы ад­реса и не снимали бы их до конца обмена, то в каждом такте после фазы адреса передавалось бы по 32 бита данных, что обеспечило бы выход на предельную производительность обмена.

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

Инициатор может начать следующую транзакцию и без такта покоя, такие бы­стрые смежные транзакции (fast back-to-back transactions) могут быть обращены как к одному, так и к разным целевым устройствам. При обмене данными в режиме PCI-X быстрые смежные транзакции недопустимы.

Протокол шины обеспечивает надежность обмена — ведущее устройство всегда получает информацию об отработке транзакции целевым устройством. Для по­вышения достоверности обмена применяется механизм контроля четности: ли­нии AD[31:0] и С/ВЕ[3:0]# в фазах адреса и данных защищены битом четности PAR. При обнаружении ошибки устройство вырабатывает сигнал PERR#.

Каждая транзакция на шине должна быть завершена планово или прекращена по инициативе ведущего или целевого устройства.

Ведущее устройство может завершить транзакцию одним из следующих спосо­бов.

Comletion — нормальное завершение по окончании обмена данными;

Time-out — завершение по тайм-ауту, если целевое устройство оказалось не­
предвиденно медленным или запланирована слишком длинная транзакция;

Master-Abort прекращение транзакции из-за отсутствия ответа от целевого
устройства.

Транзакция может быть прекращена по инициативе целевого устройства (по сигналу STOP#) по разным причинам:

retry повтор, целевое устройство из-за внутренней занятости не успевает
выдать первые данные в положенный срок (это указание ведущему устрой­
ству на необходимость повторного запуска той же транзакции);

disconnect — отключение, целевое устройство не способно своевременно вы­
дать или принять очередную порцию данных пакета (это указание ведущему
устройству на необходимость повторного запуска транзакции, но с модифи­
цированным стартовым адресом);

target-abort отказ, целевое устройство не может обслужить данный запрос
(неподдерживаемая команда, фатальная ошибка).

Прекращение типа retry служит для организации отложенных транзакций (delayed transactions). Отложенные транзакции используются только медлен­ными целевыми устройствами, а также мостами PCI при трансляции транзак­ций на другую шину. Прекращая (для инициатора) транзакцию условием retry, целевое устройство внутренне выполняет данную транзакцию. Когда инициа­тор повторит эту транзакцию, у целевого устройства (или моста) уже будет го­тов результат (данные чтения или состояние выполнения записи), который оно быстро вернет инициатору.

Команды шины PCI

Команды PCI определяют направление и тип транзакций, а также адресное пространство, к которому они относятся. Набор команд шины PCI включает следующие:

♦____________________________________________ команды чтения и записи портов ввода-вывода (обращения к пространству
портов);

команды обращения к памяти нескольких типов, в том числе к отображен­
ным на память устройствам ввода-вывода и «настоящей» памяти, допускаю­
щей предвыборки (чтение строк, множественное чтение, запись с инвалида-
цией);

команды конфигурационных чтения и записи (обращения к конфигурацион­
ному пространству устройств);

специальный цикл (передача широковещательных сообщений);

команда подтверждения прерывания (чтение вектора прерываний).

Для каждого из трех пространств — памяти, портов ввода-вывода и конфигура­ционных регистров — адресация различна; в специальных циклах адрес игнори­руется.

Особенности PCI-X

Протокол шины PCI-X во многом совпадает с PCI, изменения протокола наце­лены на повышение эффективности использования тактов шины. В обычной шине PCI все транзакции начинаются одинаково (с фазы адреса) как пакетные с заранее неизвестной длиной. При этом реально транзакции ввода-вывода все­гда имеют лишь одну фазу данных; длинные пакеты эффективны только для обращений к памяти (и применяются они именно для этого). В PCI-X транзак­ции по длине разделены на два типа:

пакетные (burst) транзакции — все команды, обращенные к памяти (кроме
команд чтения двойного слова);

одиночные транзакции размером в двойное слово — остальные команды.

В каждой транзакции после фазы адреса присутствует новая фаза передачи ат­рибутов транзакции, в которой инициатор сообщает свой идентификатор (но­мера шины, устройства и функции), тег, счетчик байтов и характеристики об­ласти памяти, к которой относится транзакция. Идентификатор инициатора вместе с тегом определяют последовательность (sequence) — одну или несколь­ко транзакций, обеспечивающих одну логическую передачу данных, запланиро­ванную инициатором. Каждый инициатор может одновременно выполнять до 32 логических передач. Логическая передача (последовательность) может иметь длину до 4096 байт; в атрибутах каждой транзакции указывается количе­ство байтов, которые должны быть переданы до конца данной последовательно­сти. Общее количество байтов, передаваемых в данной транзакции, заранее не определено.

Характеристики памяти включают флаги R0 и NS:

♦ RO {Relaxed Ordering) — возможность изменения порядка выполнения от­
дельных операций записи и чтения;

♦ NS (No Snoop) — область памяти, к которой относится данная транзакция, ни­
где не кэшируется.

В PCI-X отложенные транзакции заменены расщепленными транзакциями (split transactions). Любую транзакцию, кроме всех транзакций записи в память, целе­вое устройство может завершать либо немедленно (обычным для PCI способом), либо с использованием протокола расщепленных транзакций. В послед­нем случае целевое устройство подает сигнал Split Response (расщепление), внутренне исполняет команду, а потом инициирует собственную транзакцию (команда Split Completion) для пересылки данных или сообщения о завершении инициатору исходной (расщепленной) транзакции. Устройство, вызвавшее расщепленную транзакцию, называется запросчиком (Requester), устройство, завершающее расщепленную транзакцию, — исполнителем (Completer). Для за­вершения транзакции исполнитель должен запросить управление шиной у ар­битра; запросчик на этапе завершения выступает в роли целевого устройства. Транзакция завершения (команда Split Completion) во многом напоминает пакет­ную транзакцию записи, но вместо полного адреса пространства памяти или ввода-вывода по шине AD передаются идентификатор последовательности (с номерами шины, устройства и функции запросчика), к которой относится это завершение, и только младшие 6 бит адреса. По этому идентификатору (но­меру шины запросчика) мосты доводят транзакцию завершения до устройст-ва-запросчика. Последовательность может отрабатываться и не одной транзак­цией завершения, а серией транзакций.

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

В PCI-X 2.0 вдобавок к вышеописанным изменениям протокола появился но­вый режим Mode 2, отличающийся ускорением блочной записи в память и при­менением ЕСС-контроля. Этот режим возможен только при низком (1,5 В) на­пряжении питания интерфейсных схем. В данном режиме имеет место ЕСС-контроль адреса и данных (что требует дополнительных тактов). В транзакци­ях пакетной записи в память используется удвоенная или учетверенная ско­рость передачи данных по отношению к тактовой частоте (режимы PCI-X266 и PCI-X533). В Mode 2 есть возможность применения 16-битной шины (с 32-или 64-битной адресацией памяти).

В PCI-X 2.0 введена возможность передачи информации (сообщений) устрой­ству, адресуясь с помощью идентификатора (номеров шины, устройства и функции). Сообщения передаются последовательностями, в которых исполь­зуются команды DIM (Device ID Message), отличающиеся специфичностью ад­реса и атрибутов. Тело сообщения может иметь длину до 4096 байт. Содержимое тела определяется классом сообщения; класс 0 определяется производителем.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.