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

         

Конфигурирование устройств


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

¦     Идентификатор устройства (SCSI ID) — адрес 0-7 (для Wide SCSI 0-15),

уникальный для каждого устройства на шине. Обычно хост-адаптеру, который

должен иметь высший приоритет, назначается адрес 7 (15 для Wide SCSI, если

все устройства 16-битные). Позиционный код, используемый для адресации,

обеспечивает совместимость адресации 8- и 16-битных устройств на одной шине.

Ряд версий BIOS считает загрузочным только устройство с SCSI ID=0.

¦     Контроль паритета (SCSI Parity). Если хотя бы одно устройство не поддер­

живает контроль паритета, он должен быть отключен для всех устройств на

шине. Контроль паритета, особенно для дисковых устройств, является необхо­

димым средством защиты от искажения данных при передаче по шине.

¦     Включение терминаторов (Termination). В современных устройствах приме­

няются активные терминаторы, которые могут включаться одним джампером

или программно-управляемым сигналом. Терминаторы должны включаться

только на крайних устройствах в цепочке. Современные хост-адаптеры позво­

ляют автоматически включать свой терминатор, если они являются крайними,

и отключать, если используются внутренний и внешний разъем канала. Это

позволяет подключать и отключать внешние устройства, не заботясь о пере­

ключении терминаторов. Ранее приходилось открывать корпус и переставлять

джампер, а пассивные терминаторы устанавливать в специальные гнезда (и

извлекать их оттуда). При отсутствии внутренних терминаторов пользователь

был вынужден применять внешние, устанавливаемые на кабель.

ВНИМАНИЕ

Правильная установка терминаторов крайне существенна — отсутствие/избыток терминато­ров может привести к неустойчивости или неработоспособности интерфейса.

Питание терминаторов (Terminator power) должно быть включено (джампе­ром или программно) хотя бы на одном устройстве.


Согласование скорости синхронного обмена (SCSI synchronous negotiation). Режим синхронного обмена, обеспечивающий высокую производительность, включается по взаимному согласию устройств. Если хотя бы одно устройство на шине его не поддерживает, рекомендуют запретить согласование на хост-адаптере. Если обмен будет инициирован целевым устройством, поддержива-

5.1. Параллельные интерфейсы SCSI                                                                             135

ющим синхронный режим, «нормальный» хост-адаптер поддержит этот режим. Целевому устройству можно запретить запрос синхронного режима специальным джампером, который может называться «Enable TI-SDTR» (Target Initiated Synchronous Data Transfer Request Negotiation).

¦     Разрешение отключения (Enable disconnection). Позволяет устройствам отклю­чаться от шины при неготовности данных во время длительных операций с носителем, что весьма эффективно в многозадачном режиме при нескольких ПУ на шине. В случае одного устройства отключение приводит только к до­полнительным затратам времени на повторное соединение.

¦     Согласование ширины шины данных тоже выполняется по протоколу шины,

исходя из возможностей обоих участников обмена. Целевому устройству

можно запретить запрос 16-битного режима специальным джампером, кото­

рый может называться «Enable TI-WDTR» (Target Initiated Wide Data Transfer

Request Negotiation).

¦     Запрет 16-разрядного режима (Disable wide). Позволяет подключить «широ­

кое» устройство к «узкой» шине.

¦     Принудительное переключение в линейный режим (Force SE). Позволяет пере­вести устройство LVD в режим SE, независимо от состояния линии DIFFSENS.

¦     Запрет синхронизации по обоим фронтам (Disable U160). Позволяет принуди­тельно перевести устройство UltraS SCSI в режим Ultra2.

¦     Старт по команде (Start on command), или запрет автоматического запуска

шпиндельного двигателя (Disable Auto Spin up). При установке этого парамет­ра запуск двигателя устройства выполняется только по команде от хост-адап­тера, что позволяет снизить пик нагрузки блока питания в момент включения. Хост будет запускать устройства последовательно.

¦     Задержанный старт (Delayed Start) в сочетании с джамперами выбора за­

держки позволяет автоматически запускать двигатель через указанный интер­

вал после подачи питания (разным устройствам задают различные значения

задержки).



Рис. 6.10. Формат заголовка конфигурационного пространства устройства PCI

Остальные поля заголовка являются регистрами устройств, допускающими как запись, так и чтение.

¦ Command (RW) — регистр команд, управляющий поведением устройства на шине PCI. Регистр допускает как запись, так и чтение. После аппаратного сбро­са все биты регистра (кроме специально оговоренных исключений) обнулены. Назначение бит регистра команд:

•       бит 0—10 Space — разрешение ответа на обращения к пространству вво­

да-вывода;

•       бит 1 — Memory Space — разрешение ответа на обращения к пространству памяти;

•       бит 2 — Bus Master — разрешение работы инициатором (в режиме управ­ления шиной);

•       бит 3— Special Cycles — разрешение реакции на специальные циклы;

•       бит4 —Memory Write& and Invalidate enable— разрешениеиспользовать

команды «запись с инвалидацией» при работе инициатором (если бит обну­

лен, то вместо этих команд должна использоваться обычная запись в память);

•       бит 5 — VGA palette snoop — разрешение слежения за записью в регистр палитр;

6.2. Шина PCI_______________________________________________________ 207

•       бит 6 — Pari ty Error Response — разрешение нормальной реакции (выра­

батывать сигнал PERR#) на обнаруженную ошибку паритета (если бит обну­лен, то устройство должно только фиксировать ошибку в регистре состояния, в то время как генерация бита паритета устройством выполняется всегда);

•       бит7 — Stepping Control —возможность пошагового переключения (address/data stepping) линий (если устройство никогда этого не делает, бит регист­ра «запаян» в «О», если делает всегда — в «1», устройство с такой возможно­стью по сбросу устанавливает этот бит в «1»);

•       бит 8 — SERR#  Enable — разрешение генерации сигнала ошибки SERR# (ошибка паритета адреса сообщается, когда этот бит и бит 6=1);



•       бит 9— Fast Back-to-Back Enable (необязательный) — разрешение ве­

дущему устройству использовать быстрые смежные обращения к разным

устройствам (если бит обнулен, быстрые обращения допустимы лишь для

транзакций с одним агентом);

•       биты 10-15 — резерв.

¦ Status — регистр состояния, допускающий кроме чтения еще и запись. Одна­ко запись выполняется специфично — с ее помощью можно только обнулять биты, но не устанавливать. Биты, помеченные как RO, допускают только счи­тывание. При записи в позиции обнуляемых бит устанавливаются единичные значения. Назначение бит регистра состояния:

•       биты" 0-3 — резерв;

•       бит 4 — Capabili ty List (RO, необязательный) — указание на наличие

указателя новых возможностей (смещение 34h в заголовке);

•       бит5 —66 MHz Capable (RO,необязательный)—поддержкачастоты66 МГц;

•       бит 6 — резерв;

•       бит 7—Fast Back-to-Back Capable (RO, необязательный) — поддержка

быстрых смежных транзакций (fast back-to-back) с разными устройствами;

•       бит 8 — Master  Data  Parity  Error (только для устройств с прямым

управлением) — устанавливается, когда устройство с установленным битом 6 в регистре команд, являясь инициатором, само ввело (при чтении) или обнаружило (при записи) сигнал PERR#;

•       биты 10:9 — DEVSEL Timi ng — скорость выборки: 00 — быстрая, 01 — сред­няя, 10 — низкая (определяет самую медленную реакцию DEVSEL* на все ко­манды, кроме Configuration Read и Configuration Write); бит 11 — Signaled Target Abort—устанавливается целевым устройством, когда оно отвергает транзакцию;

•       бит 12 — Received Target Abort— устанавливается инициатором, когда

он обнаруживает отвергнутую транзакцию;



•       бит 13— Received Master Abort— устанавливается ведущим устройством, когда оно отвергает транзакцию (кроме специального цикла);

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

•       бит 14 — Si gnaled System Error — устанавливается устройством, подав­

шим сигнал SERR#;

•       бит 15 — Detected Parity Error—устанавливаетсяустройством,обнару­

жившим ошибку паритета.

¦     Cache Line Size (RW) — размер строки кэша (0-128, допустимые значения

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

¦     Latency Timer (RW) —значение таймера задержки (см. п. 6.2.4) в тактах шины. Часть битов может не допускать изменения (обычно младшие три бита неиз­менны, так что таймер программируется с дискретностью в 8 тактов).

¦     BIST (RW) — регистр управления встроенным самотестированием. Назначе­ние бит регистра:

•       бит 7 — возможность BIST;

•       бит 6 — запуск теста: запись единицы инициирует тест, по окончании устрой­ство сбрасывает бит (тест должен быть завершен не более чем за 2 с);

•       биты 5:4 — резерв (0);

•       биты 3:0 — код завершения теста: 0 — тест прошел успешно.

¦     Card Bus CIS Pointer (необязательный) —указательнаструктуруописателя

Card Bus для комбинированного устройства PCI+Card Bus.

¦     Interrupt Line( RW) — номер входа контроллера прерывания для использу­

емой линии запроса (0-15 — IRQO-IRQ15,255 — неизвестный или не используется).



¦     Interrupt Pin (RO) — контакт, используемый для запроса прерывания: 0 —

не используется, 1 - INTA#, 2 - INTB#, 3 - INTC#, 4 - INTD#, 5-FFh - резерв.

¦     Mi n_GNT (RO) — минимальное время, на которое ведущему устройству долж­но предоставляться управление шиной из расчета на частоту 33 МГц, в интер­валах по 0,25 мкс.

¦     Max_Lat (RO) — максимально допустимая задержка предоставления ведущему устройству доступа к шине, в интервалах по 0,25 мкс (0 — нет специальных требований).

¦     Subsystem ID (задается производителем) и Subsystem Vendor ID (произво­

дитель получает в PCI SIG) — идентификаторы, позволяющие точно иденти­фицировать карты и устройства (в системе могут быть установлены несколько карт с совпадающими идентификаторами устройства и производителя Devi се ID и Vendor ID). В поле 2Ch ставится идентификатор производителя карты PCI (может совпадать со значением в поле 0, если фирма выпускает и микро­схемы, и карты).

6.2. Шина PCI_______________________________________________________ 209

¦     Capability Poi nte г (CAP_PTR)—указатель на список возможностей (свойств), описанных в конфигурационном пространстве (биты 1:0=00). Каждый элемент списка начинается с байта идентификатора типа элемента (CAP_I D, определен­ного PCI SIG), за которым следует указатель на следующий элемент списка (нулевой указатель является признаком конца списка), после чего расположе­ны байты описаний самих свойств. Все элементы выравниваются по границе двойного слова.

¦     Base Address Registers -^ базовые адреса областей памяти и портов ввода-

вывода. Для областей памяти бит 0=0. Биты 2:1 — тип: 00 — располагаются в 32-битном адресном пространстве, 10 — в 64-битном (в этом случае регистр расширяется следующим за ним 4-байтным словом), 01 и 11 — резерв (01 в преж­них версиях предназначались для памяти в пределах первого мегабайта).


Бит 3 (Prefetchable) устанавливается, если чтение памяти не приводит к побоч­ным эффектам, все байты считываются независимо от сигналов ВЕ[3:0]# и от­дельные записи мостом могут быть объединены (то есть это память в чистом виде); в иных случаях бит обнулен. Биты 31:4 — базовый адрес памяти. Для портов бит 0=1; бит 1 -0 (резерв); биты 31:2— базовый адрес блока портов. Кон­фигурирующая программа может определить размеры требуемых областей.

Для этого после аппаратного сброса она должна считать и сохранить значения

базовых адресов (это будут адреса по умолчанию), записать в каждый регистр

FFFFFFFFh и снова считать их значение. В полученных словах нужно обну­

лить биты декодирования типа (биты 3:0 для памяти и биты 1:0 для ввода-вы­вода), инвертировать и инкрементировать полученное 32-битное слово — ре­зультатом будет длина области (для портов биты 31:16 игнорировать). Метод подразумевает, что длина области выражается числом 2" и область выров­нена естественным образом.

¦     Expansion ROM Base Address—базовый адрес ПЗУ программной поддержки карты. Бит 0 — разрешение использования ПЗУ; биты 1-10 — резерв; биты 11-31 — базовый адрес. Размер ПЗУ определяется так же, как и в регистрах базо­вых адресов (см. выше). Обращение к ПЗУ возможно лишь при разрешенном использовании памяти (бит 1 в регистре команд).


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