Интерфейсы ПК

       

в пакете заранее не опре-


Рисунок 4.9. Цикл обмена на шине РС1


Количество фаз (циклов) данных в пакете заранее не опре- делено, но перед последним циклом ИУ при введенном сиг- нале IRDY# снимает сигнал FRAMED. После последней фазы данных ИУ снимает сигнал IRDY#, и шина переходит в со- стояние покоя (PCI Idle) - оба. сигнала FRAME# и IRDY# на- ходятся в пассивном состоянии. Максимальное количество

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

Нормальное завершение выполняется по окончании об- мена данными.

Завершение по тайм-ауту (Time-out) происходит, когда во время транзакции у ИУотбирают право на управле- ние шиной (снятием сигнала GNT#) или когда истекает время, указанное в его таймере MLT (медленное ЦУ или слишком длинная транзакция).

Транзакция отвергается (Abort), когда в течение заданно- го времени ИУ не получает ответа ЦУ (DEVSEL#).

Транзакция может быть прекращена и по инициативе ЦУ, для этого оно может ввести сигнал STOP#. Возможны три типа прекращения:

Отключение (Disconnect) - сигнал STOP# вводится во время активности TRDY#. В этом случае транзакция за- вершается после фазы данных.

Отключение с повтором (Disconnect/Retry) - сигнал STOP# вводится при пассивном состоянии TRDY#, и по- следняя фаза данных отсутствует. Является указанием ИУ на необходимость повтора транзакции.

Отказ (Abort) - сигнал STOP# вводится одновременно со снятием DEVSEL# (в предыдущих случаях во время по- явления сигнала STOP# сигнал DEVSEL был активен). В этом случае последняя фаза данных тоже отсутствует, но повтор не запрашивается.

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



том на такт вырабатывается сигнал PERFW. В подсчете пари- тета при передаче данных учитываются все байты, включая и недействительные (отмеченные высоким уровнем сигнала C/BE#i). Состояние бит и недействительных байт данных во время фазы данных должно оставаться стабильным.

Арбитражем запросов на использование шины занимается специальный узел, входящий в чипсет системной платы. Каж- дое ИУ имеет пару сигналов - REQft для запроса на управ- ление шиной и GNT# для подтверждения предоставления управления шиной. Схема приоритетов (фиксированный, циклический, комбинированный) определяется программи- рованием арбитра.

Каждое устройство - потенциальное ИУ (PCIMaster) - име- ет собственный программируемый таймер MLT (Master Latency Timer), определяющий максимальное количество так- тов шины, допустимое для одной транзакции. Его конфигу- рированием осуществляется распределение полосы пропус- кания шины между устройствами.

Каждое ЦУ имеет инкрементный механизм слежения за дли- тельностью циклов (Incremental Latency Mechanism), который не позволяет интервалу между соседними фазами данных в пакете превышать 8 тактов шины. Если ЦУ не успевает ра- ботать в таком темпе, оно обязано остановить транзакцию.

Адресация памяти, портов и конфигурационных регистров различна. Байты шины AD, несущие действительную инфор- мацию, выбираются сигналами С/ВЕ[3:0] в фазах данных (внутри пакета эти сигналы могут менять состояние). В цик- лах обращения к памяти адрес, выровненный по границе двойного слова, передается по линиям AD[31:2], линии AD[1:0] задают порядок чередования адресов в пакете:

00 - линейное инкрементирование;

01 - чередование адресов с учетом длины строки кэш- памяти;

1х -зарезервировано.

В циклах обращения к портам ввода/вывода для адресации любого байта используются все линии AD[31:0]. В циклах конфигурационной записи/считывания устройство выбира-



ется индивидуальным сигналом IDSEL#, конфигурационные регистры выбираются двойными словами по линиям AD[7:2], при этом AD[1:0]=00. Сигнал выборки IDSEL# воспринима- ется устройством только в фазе адреса, поэтому обычно в качестве него используют старшие биты адреса с позицион- ным кодированием адреса устройства.

Команды шины PCI определяются значениями бит С/ВЕ# в фазе адреса в соответствии с табл. 4.5.

С/ВЕ[3:0]

Тип команды

0000

Interrupt Acknowledge - подтверждение прерывания

0001

Special Cycle - специальный цикл

0010

I/O Read - чтение порта ввода/вывода

0011

I/O Write - запись в порт ввода/вывода

0100

Зарезервировано

0101

Зарезервировано

0110

Memory Read - чтение памяти

0111

Memory Write - запись в память

1000

Зарезервировано

1001

Зарезервировано

1010

Configuration Read - конфигурационное считывание

1011

Configuration Write - конфигурационная запись

1100

Multiple Memory Read - множественное чтение памяти

1101

Dual Address Cycle - двухадресный цикл

1110

Memory Read Line - чтение строк памяти

1111

Memory Write and Invalidate - запись с инвалидацией

В команде подтверждение прерывания контроллер прерыва- ний передает вектор прерывания по шине AD.

Специальный цикл декодируется содержимым линий AD[15:0] и используется для указания на отключение (Shutdown), ос- танов (Halt) процессора или специфические функции процес- сора, связанные с кэшем и трассировкой. Этим состояниям соответствуют коды 0000, 0001 и 0002; коды 0003-FFFFh за- резервированы.

В командах чтения и записи ввода/вывода линии AD содер- жат адрес байта, причем декодированию подлежат и биты ADO и AD1 (несмотря на то, что имеются сигналы ВЕх#). Порты PCI могут быть 8-, 16- или 32-битными. Для адреса- ции портов на шине PCI доступны все 32 бита адреса, но процессоры х86 могут использовать только младшие 16 бит. Порты с адресами OCF8 и OCFC зарезервированы под реги- стры адреса и данных для доступа к конфигурационному пространству.


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

В командах чтения и записи памяти шина AD содержит ад- реса двойных слов, и линии ADO, AD1 не должны декодиро- ваться - на конкретные байты указывают сигналы С/ ВЕ[3:0]#.

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

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

Двухадресный цикл применяется, когда физическая шина имеет 32 бита адреса, а требуется передача с 64-битной ад- ресацией. В этом случае младшие 32 бита адреса передают- ся в цикле данного типа, а за ним следует обычный цикл, определяющий тип обмена и несущий старшие 32 бита ад- реса. Шина PCI допускает 64-битную адресацию даже для портов ввода/вывода (для х86 это бесполезно, но PCI суще- ствует и на других платформах).

Чтение строк памяти применяется, когда в транзакции пла- нируется более двух 32-битных передач (обычно это чтение до конца строки кэша).

Запись с инвалидацией применяется к целым строкам кэша и позволяет оптимизировать циклы обратной записи "гряз- ных" строк кэша.

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

Слоты PCI с шагом 0,05 дюйма расположены несколько даль- ше от задней панели, чем ISA/EISA или МСА. Компоненты карт PCI расположены на левой поверхности плат. По этой причине крайний PCI-слот обычно разделяет использование посадочного места адаптера с соседним ISA-слотом (Shared slot). Шина имеет версии с питанием 5 В, 33 В и универ- сальную (с переключением линий +V I/O с 5 В на 3,3 В).Клю- чами являются пропущенные ряды контактов 12, 13 и 50, 51. Для слота на 5 В ключ расположен на месте контактов 50, 51;

для 3 В - 12, 13; для универсального - два ключа: 12, 13 и 50, 51. Ключи не позволяют установить карту в слот с не- подходящим напряжением питания, 32-битный слот закан- чивается контактами А62/В62, 64-битный - А94/В94. На Рисунок 4.10 изображена 32-битная плата максимального размера (Long Card), длина короткой платы (Short Card) - 6,875". Плата может иметь обрамление (скобки), стандартное для конструктива ISA или МСА. Назначение выводов универ- сального разъема приведено в табл. 4.6, назначение сигна- лов - в табл. 4.7.


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