Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

INTERFACES

.pdf
Скачиваний:
18
Добавлен:
27.05.2015
Размер:
1.32 Mб
Скачать

слово), но в командах обращения к памяти порядок может быть иным (см. ниже). Байты шины AD, несущие действительную информацию, выбираются сигналами С/ВЕ[3:0]# в фазах данных. Внутри пакета эти сигналы могут менять состояние от фазы к фазе произвольным образом. Разрешенные байты могут быть разрозненными; возможны фазы данных, в которых не разрешено ни одного байта. В отличие от шины ISA, на PCI нет динамического изменения разрядности — все устройства должны подключаться к шине 32­разрядным способом. Если в устройстве PCI применяются функциональные схемы иной разрядности (к примеру, нужно подключить микросхему 8255, имеющую 8­битную шину данных и четыре регистра), то приходится принимать схемотехнические методы преобразования, отображающие все регистры на 32­разрядную шину AD.

Адресация памяти, портов и конфигурационных регистров различна.

*В циклах обращения к памяти адрес, выровненный по границе двойного слова, передается по линиям AD[31:2]; линии AD[1:0] задают порядок адресов в пакете:

00 — линейное инкрементирование; адрес последующей фазы отличается от предыдущего на число байтов шины (4 для 32­битной и 8 для 64­битной шины).

10 — Cacheline Wrap mode, сворачивание адресов с учетом длины строки кэш­памяти. В транзакции адрес для очередной фазы увеличивается до достижения границы строки кэша, после чего переходит на начало этой строки и увеличивается до адреса, предшествующего начальному. Если транзакция длиннее строки кэша, то она продолжится в следующей строке с того же смещения, что и началась. Так, при длине строки 16 байт и 32­битной шине транзакция, начавшаяся с адреса xxxxxx0Sh, будет иметь последующие фазы данных, относящиеся к адресам xxxxxx0Ch, xxxxxx00h, xxxxxx04h; и далее к xxxxxx18h, xxxxxx1Ch, xxxxxx10h, xxxxxx14h. Длина строки кэша прописывается в конфигурационном пространстве устройства (см. п.6.2.12). Если устройства не имеет регистра Cache Line Size, то оно должно прекратить транзакцию после первой фазы данных;

01 и 11 — зарезервировано, может использоваться как указание на отключение (Disconnect) после первой фазы данных.

*В циклах обращения к портам ввода­вывода для адресации любого байта используются все линии AD[31:0]. При этом биты адреса AD[31:2] указывают на адрес двойного слова, к которому принадлежат передаваемые данные, а младшие биты адреса AD[1:0] должны соответствовать байтам, которые могут быть разрешены сигналами С/ВЕ[3:0]#.

При AD[1:0]=00допустимо С/ВЕ[3:0]# = ххх0 или 1111, при АD[1:0]=01 ­ С/ВЕ[3:0]# = хх01 или 1111, при АD[1:0]=10 ­ С/ВЕ[3:0]# = х01 или 1111, при AD[1:0]=11 ­ C/BE[3:0]# = 0111 (передается лишь байт 3) или 1111(ни один байт не разрешен). Эти циклы тоже могут быть пакетными, хотя на практике эта возможность используется редко.

*В циклах конфигурационной записи/считывания устройство (карта расширения) выбирается индивидуальным сигналом IDSEL; функция адресуется битами AD[10:8], а конфигурационные регистры (только двойные слова) адресуются битами AD[7:2], при этом AD[1:0]=00.

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

*Команда подтверждения прерывания предназначена для чтения вектора npepываний. По протоколу она выглядит как команда чтения, неявно адресованная системному контроллеру прерываний. Здесь в фазе адреса по шине AD полезная информация не передается

(ВЕ[3:0]# задают размер вектора), но ее инициатор (главный мост) должен обеспечить стабильность сигналов и корректность паритета. В PC 8­битный вектор передается в байте 0 по готовности контроллера прерываний (по сигналу TRDY#). Подтверждение прерываний выполняется за один цикл (первый холостой цикл, который процессоры х86 делают в дань совместимости со стариной, мостом подавляется).

*Специальный цикл отличается от всех других тем, что является широковещательным. Однако ни один агент на него не отвечает, а главный мост или иное устройство, вводящее этот цикл, всегда завершает его способом Master Abort (на него требуется 6 тактов шины). Специальный цикл предназначен для генерации широковещательных сообщений — их могут читать любые «заинтересованные» агенты шины. Тип сообщения декодируется содержимым линий AD[15:0], на линиях AD[31:16] могут помещаться данные, передаваемые в сообщении. Фаза

адреса в этом цикле для обычных устройств отсутствует, но мосты используют ее информацию для управления распространением сообщения. Сообщения с кодами 0000h, 0001h и 0002h требуются для указания на отключение (Shutdown), остановку (Halt) процессора или специфические функции процессора х86, связанные с кэшем и трассировкой. Коды 0003­FFFFh зарезервированы. Специальный цикл может генерироваться тем же аппаратно­программным механизмом, что и конфигурационные циклы (см. п.6.2.11), но со специфическим значением адреса.

*Команды чтения и записи ввода-вывода служат для обращения к пространству портов. Линии AD содержат адрес байта, причем декодированию подлежат и биты AD0 и AD1(несмотря на то, что имеются сигналы ВЕх#). Порты РСI могут быть 16­ или 32­битными. Для адресации портов на шине PCI доступны вcе 32 бита адреса, но процессоры х86 могут использовать только младшие 16­бит.

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

*Команды конфигурационного чтения и записи адресуются к конфигурационному пространству устройств (см. п.6.2.12). Обращение производится только двойными словами. Структура содержит идентификатор устройства и производителя, состояние и команду, информацию о занимаемых ресурсах и ограничения на использование шины. Для генерации данных команд требуется специальный аппаратно­программный механизм (см. п.6.2.11).

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

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

Запись с инвалидацией применяется к целым строкам кэша и позволяет оптимизировать циклы обратной записи «грязных» строк кэша. Все байты должны быть разрешены — строка кэша очищается без выгрузки в ОЗУ.

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

ина других платформах).

Таблица 6.12. Декодирование команд шины PCI

C/BE[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 — множественное чтение

 

памяти

 

 

Таблица 6.12. Декодирование команд шины PCI

C/BE[3:0]

 

Тип команды

 

 

 

1101

 

Dual Address Cycle (DAC) — двухадресный цикл

 

 

 

1110

 

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

 

 

 

1111

 

Memory Write and Invalidate — запись с

 

инвалидацией

 

 

47. Пропускная способность шины PCI. Система прерываний.

Шина PCI является самой высокоскоростной шиной расширения современных ПК, однако и ее реальная пропускная способность, увы, не так уж и высока. Рассмотрим наиболее распространенный вариант; разрядность 32 бита, частота 33 МГц. Как указывалось выше, пиковая скорость передачи данных внутри пакетного цикла составляет 132 Мбайт/с, то есть за каждый такт шины передаются 4 байта данных (33x4=132). Однако пакетные циклы выполняются далеко не всегда. Процессор общается с устройствами PCI инструкциями обращения к памяти или вводу­ выводу через главный мост, который шинные транзакции процессора транслирует в транзакции шины PCI. Поскольку у процессоров х86 основные регистры 32­разрядные, то одна инструкция порождает транзакцию с устройством PCI, в которой передается не более 4 байт данных, что соответствует одиночной передаче. Если же адрес передаваемого (двойного) слова не выровнен по соответствующей границе, то будут порождены два одиночных цикла или один пакетный с двумя фазами данных, но в любом случае это обращение будет выполняться дольше, чем при выровненном адресе.

Однако при записи массива данных в устройство PCI (передача с последовательно нарастающим адресом) мост может пытаться организовать пакетные циклы. У современных процессоров (начиная с Pentium) шина данных 64­битная и применяется буферизация записи, так что два последовательных 32­битных запроса записи объединятся в один 64­битный. Этот запрос, если он адресован к 32­битному устройству, мост попытается передать пакетом с двумя фазами данных. «Продвинутый» мост может пытаться собирать в пакет и последовательные запросы, что может породить пакет существенной длины. Пакегные циклы записи можно наблюдать, например, передавая массив данных из ОЗУ в устройство PCI строковой инструкцией MOVSD, используя префикс повтора REP. Тот же эффект даст и цикл последовательных операций LODSW, STOSW (и иных инструкциях обращения к памяти). Поскольку у современных процессоров ядро исполняет инструкции гораздо быстрее, чем шина способна вывести их результаты, между инструкциями, порождающими объединяемые записи, процессор может успеть выполнить еще несколько операций. Однако если пересылка данных организуется директивой языка высокого уровня, которая ради универсальности работает гораздо сложнее вышеприведенных ассемблерных примитивов, транзакции, скорее всего, будут уже одиночными (у буферов записи процессора не хватит «терпения» придержать один 32­битный запрос до появления следующего, или же произойдет принудительная выгрузка буферов записи процессора или моста по запросу чтения,

см. п. 6. 2.10).

Что касается чтения из устройства PCI, то здесь пакетный режим организовать сложнее. Буферизации чтения у процессора, естественно, нет (операцию чтения можно считать выполненной лишь по получению реальных данных), и даже строковые инструкции будут порождать одиночные циклы. Однако у современных процессоров имеются возможности генерации запросов чтения более 4 байт. Для этого можно использовать инструкции загрузки данных в регистры ММХ (8 байт) или ХММ (16 байт), а из них уже выгружать данные в ОЗУ (которое работает много быстрее устройств PCI).

Строковые инструкции ввода­вывода (INSW, OUTSW с префиксом повторения REP), используемые для программированного ввода­вывода блоков данных (РIO), порождают серии одиночных транзакций, поскольку все данные блока относятся к одному адресу PCI.

Прерывания:

В PC­совместимых компьютерах прерывания от устройств PCI обслуживаются с помощью традиционной связки пары контроллеров 8259А, расположенных на системной плате (см. п.12.4), к которым обращается команда «подтверждение прерывания». Прерывания на шине PCI свободны от одной из нелепостей системы прерываний ISA. Устройство PCI вводит сигнал прерывания низким уровнем (выходом с открытым коллектором или стоком) на выбранную линию INTA#, INTB#, INTC# или INTD#. Этот сигнал должен удерживаться до тех пор, пока программный драйвер, вызванный по прерыванию, не сбросит запрос прерывания, обратившись по шине к данному устройству. Если после этого контроллер прерываний снова обнаруживает низкий уровень на линии запроса, это означает, что запрос на ту же линию ввело другое устройство, разделяющее данную линию с первым, и оно тоже требует обслуживания. Линии запросов от слотов PCI и PCI­устройств системной платы коммутируются на входы контроллеров прерываний относительно произвольно. Конфигурационное ПО может определить и указать занятые линии запросов и номер входа контроллера прерываний обращением к конфигурационному пространству устройства (см. п. 6.2.12). Программный драйвер, прочитав конфигурационные регистры, тоже может определить эти параметры для того, чтобы установить обработчик прерываний на нужный вектор и при обслуживании сбрасывать запрос с требуемой линии. К сожалению, в конфигурационных регистрах не нашлось стандартного места для бита, индицирующего введение запроса прерывания данным устройством, — тогда бы в прерываниях для PCI не было бы проблем с унификацией поддержки разделяемых прерываний.

Каждая функция устройства PCI может задействовать свою линию запроса прерывания, но должно быть готовым к ее разделению (совместному использованию) с другими устройствами. Если устройству требуется только одна линия запроса, то оно должно занимать линию INTA#, если две — INTA# и INTB#, и так далее. С учетом циклического сдвига линий запроса это правило позволяет установить в 4 соседних слота 4 простых устройства, и каждое из них будет занимать отдельную линию запроса прерывания. Если какой­то карте требуется две линии, то для монопольного использования прерываний нужно оставить соседний слот свободным. PCI­ устройства системной платы тоже задействуют прерывания с той же закономерностью (кроме контроллера IDE, который, к счастью, держится особняком).

Назначение прерываний устройствам (функциям) выполняет процедура POST, и этот процесс управляем лишь частично. Параметрами CMOS Setup (PCI/PNP Configuration) пользователь определяет номера запросов прерываний, доступных шине PCL В зависимости от версии BIOS это может выглядеть по­разному: либо каждой линии INTA#... INTD# явно назначается свой номер, либо ряд номеров отдается «на откуп» устройствам PCI вместе с устройствами ISA PnP (в противоположность устройствам «Legacy ISA»), В итоге POST определяет соответствие линийINTA#... INTD# номерам запросов контроллера и соответствующим образом программирует коммутатор запросов. По воле пользователя может оказаться так, что не каждой линии запроса шины PCI достается отдельный вход контроллера прерываний. Тогда коммутатор организует объединение нескольких линий запросов PCI на один вход контроллера, то есть разделяемые прерывания, В самом худшем случае устройствам PCI не достанется ни одного входа контроллера прерываний. Заметим, что BIOS вряд ли отдаст шине PCI прерывания 14 и 15 (их забирает контроллер IDE, если он не отключен), а также 3 и 4 (СОМ­порты).

Драйвер (или иное ПО), работающий с устройством PCI, определяет вектор прерывания, доставшийся устройству (точнее, функции), чтением конфигурационного регистра Interrupt Line. В этом регистре указывается номер входа контроллера прерывания (255 — номер не назначен), и по нему определяется вектор (см. п. 12.4). Номер входа каждому устройству заносит тест POST. Для этого он считывает регистр Interrupt Pin каждой обнаруженной функции и по адресу устройства (!) определяет, какая из линий (РСI_I1... РСI_4) используется. Заметим, что правила, по которым на системной плате определяется соответствие между Interrupt Pin и входными линиями коммутатора запросов в зависимости от номера устройства, строго не регламентированы (деление номера устройства на 4 — это всего лишь рекомендация), но их твердо знает версия BIOS данной системной платы. К этому моменту тест POST уже определил таблицу соответствия этих линий номерам входов; пользуясь этой таблицей, он записывает нужное значение в конфигурационный регистр Interrupt Line. Определить, есть ли еще претенденты на тот же номер прерывания, можно, лишь просмотрев конфигурационные регистры функций всех устройств,

обнаруженных на шине (это не так уж сложно сделать, пользуясь функциями PCI BIOS). «Прелести» разделяемых прерываний обсуждаются в п. 12.4.1.

Спасением от бед «разделяемости» может быть перестановка карт в подходящий слот. Однако попадаются «подарки разработчиков» интегрированных плат, у которых из нескольких слотов PCI неразделяемая линия прерывания есть только у одного (а то и нет вообще). Такие недуги без скальпеля и паяльника, как правило, не лечатся.

На шине PCI имеется и иной механизм оповещения об асинхронных событиях, основанный на передаче сообщений (PCI Message­Based Interrupts). Для сигнализации запроса прерывания устройство запрашивает управление шиной и, получив его, выполняет запись номера прерывания по заранее оговоренному адресу.

Этот механизм может использоваться на системных платах, имеющих «продвинутый» контроллер прерываний APIC. Запись номера запроса производится в соответствующий регистр APIC. Для системных плат на чипсете с хабом ICH2 82801 этот регистр находится по адресу памяти FEC00020h, а номер прерывания может быть в диапазоне 0­23L Однако одновременно оба механизма работать не могут; если разрешена работа APIC, то логика контроллеров 8259 не используется, и наоборот.

48.Электрический интерфейс, слоты и карты PCI. Мосты PCI.

Для работы на шине PCI используются микросхемы КМОП (CMOS), причем имеются две спецификации: с напряжениями питания интерфейсных схем 5 и 3,3 В. Для них применимы параметры сигналов на постоянном токе, приведенные в табл. 6.13. Однако мощность интерфейсных элементов (транзисторов для вентилей) выбрана меньшей, чем требовалось бы для переключения сигналов на высокой частоте (33 или 66 МГц). Здесь используется эффект отражения сигналов, формируемых микросхемами на проводниках шины, от неcогласованных концов этих проводников, являющихся для таких высоких частот длинными линиями. На концах проводников шины нет терминаторов, поэтому от них приходящая волна сигнала отражается с тем же знаком и с той же амплитудой. Складываясь с прямым сигналом, обратная волна и обеспечивает нужный приемнику уровень сигнала. Таким образом, передатчик генерирует сигнал, который до прихода отраженного находится между уровнями переключения. Линии управляющих сигналов FRAME#, TRDY#, IRDY#, DEVSEL#, STOP#, SERR#, PERR#, LOCK#, JNTA#, INTB#, INTC#, INTD#, REQ64# и ACK64# на системной плате подтягиваются к шине питания резисторами (типично 2,7 кОм для версии 5В и 8,2 кОм для 3,3В), чтобы не было ложных срабатываний при пассивности всех агентов шины.

Таблица 6.13. Параметры интерфейсных сигналов на постоянном токе.

Параметр

 

 

3,3В

 

 

 

 

 

Входное напряжение низкого уровня,B

 

0,5≤UIL≤0,8

 

­0,5≤VIL≤0,3xVCC

 

 

 

 

 

Входное напряжение высокого уровня,В

 

2≤UIH≤VCC+0,5

 

VCC/2≤UIH≤VCC+0,5

 

 

 

 

 

Выходное напряжение низкого уровня,В

 

UOL≤0.55

 

UOL≤0,1xVCC

 

 

 

Выходное напряжение высокого уровня,В

 

UOH≥0,8

 

UOH≥0,9xVCC

 

 

 

 

 

Напряжение питания VCC,E

 

4,75≤UCC≤5,25

 

3,3<uCC≤3,6</u

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

Слоты PCI представляют собой щелевые разъемы, имеющие контакты с шагом 0,05 дюйма. Слоты расположены несколько дальше от задней панели, чем ISA/ EISA или MCA. Компоненты карт PCI расположены на левой поверхности плат. По зтой причине крайний РСI­слот обычно совместно использует посадочное место адаптера (прорезь на задней стенке корпуса) с соседним ISA­слотом. Такой слот называют разделяемым (shared slot), в него может устанавливаться либо

карта ISA, либо PCI. Карты и слоты различаются лишь питанием буферных схем, которое поступает

слиний +VI/O:

*на слоте «5 В» на линии +VI/O подается +5 В;

*на слоте «3,3 В» ­ на линии +VI/O подается +(3,3­3,6) В;

*на карте «5 B»буферные микросхемы рассчитаны только на питание +5 В;

*на карте «3,3 B» буферные микросхемы рассчитаны только на питание +(3,3 ­ 3,6) В;

*на универсальной карте буферные микросхемы допускают оба варианта питания и будут нормально формировать и воспринимать сигналы по спецификациям 5 или 3,3 В, в зависимости от типа слота, в который установлена карта.

На слотах обоих типов присутствуют питающие напряжения +3,3, +5, +12 и ­12В на одноименных линиях. В PCI 2.2 определена дополнительная линия З.З Vaux ­ «дежурное» питание +3,3 В для устройств, формирующих сигнал РМЕ# при отключенном основном питании. На системных платах чаще всею встречаются 5­вольтовые 32­битные слоты, заканчивающиеся контактами AG2/B62; 64­битные слоты встречаются реже, они длиннее и заканчиваются контактами А94/В94. Конструкция разъемов и протокол позволяют устанавливать 64­битные карты и в 32­битные разъемы, и наоборот, но при этом, естественно, обмен будет в 32­битном режиме.

Тактовая частота шины определяется по возможностям чипсета и всех абонентов шины. Высокая частота 66 МГц может устанавливаться тактовым генератором только при высоком уровне на линии M66EN. Таким образом, установка любой карты, не поддерживающей 66 МГц (с заземленным контактом В49), приведет к понижению частоты, шины до 33 МГц. Серверные системные платы, на которых имеется несколько шин PCI, позволяют использовать на разных шинах разные частоты (66 и 33 МГц). Так, например, можно на 64­битных слотах использовать частоту 66 МГц, а на 32­битных ­ 33. Разгон нормальной частоты 33 МГц до 40­50 МГц аппаратно не контролируется, но может приводить к ошибкам работы карт расширения. На рис. 6.8 изображена 32­битная карта максимального размера (Long Card), длина короткой платы (Short Card) — 175 мм, но многие карты имеют и меньшие размеры. Карта имеет обрамление (скобку), стандартное для конструктива ISA (раньше встречались карты и с обрамлением в стиле MCA IBM PS/2). Назначение выводов универсального разъема приведено в табл. 6.14.

Рис. 6.8. Конфигурационные регистры РnР (* — определяется разработчиком)

Таблица 6.14. Разъёмы шины PCI

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ряд B

 

Ряд А

 

Ряд В

 

Ряд А

 

Ряд B

Ряд А

 

Ряд В

 

 

Ряд А

 

 

 

 

 

 

 

 

 

 

 

 

24

 

 

 

 

 

 

 

­12B

1

 

TRST#

 

GND/M66EN

49

 

AD9

 

AD25

GND

 

AD59

 

71

 

AD58

 

 

 

 

 

 

 

 

 

 

 

 

 

25

 

 

 

 

 

 

 

TCK

 

2

 

+12B

 

GND/ключ

 

50

 

GND/ключ

 

+3,3B

AD24

 

AD57

 

72

 

GND

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C/BE3#

26

IDSEL

 

GND

 

73

 

AD56

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GND

 

3

 

TMS

 

GND/ключ

 

51

 

GND/ключ

 

 

 

 

 

 

 

 

 

 

 

 

 

TDO

 

4

 

TDI

 

AD8/ключ 5В

 

52

 

C/BEO#

 

 

 

 

 

 

 

 

 

+5B

 

5

 

+5B

 

AD7

 

53

 

+3,3B

 

 

 

 

 

 

 

 

 

+5B

 

6

 

INTA#

 

+3,3B

 

54

 

AD8

 

 

 

 

 

 

 

 

 

INTB#

 

7

 

INTC#

 

AD5

 

55

 

AD4

 

 

 

 

 

 

 

 

 

INTD#

 

8

 

+5B

 

AD3

 

56

 

GND

 

 

 

 

 

 

 

 

 

PRSNT1#

 

9

 

Резерв

 

GND

 

57

 

AD8

 

 

 

 

 

 

 

 

 

Резерв

 

10

 

+VI/O

 

AD1

 

58

 

AD0

 

 

 

 

 

 

 

 

 

PRSNT2#

 

11

 

Резерв

 

+VI/O

 

59

 

+VI/O

 

 

 

 

 

 

 

 

 

 

 

GND/Ключ

 

12

 

GND/Ключ

 

ACK64#

 

60

 

REQ64#

3,3B

 

 

3,3B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GND/Ключ

 

13

 

GND/Ключ

 

+5B

 

61

 

+5B

3,3B

 

 

3,3B

 

 

 

 

 

 

 

 

 

 

 

 

Резерв

 

14

 

3.3Vaux

 

+5B

 

62

 

+5B

 

 

 

 

 

 

GND

 

15

 

RST#

 

Конец 32­битного разряда

 

 

 

 

 

 

 

 

 

CLK

 

16

 

+VI/O

 

Резерв

 

63

 

GND

 

 

 

 

 

 

 

 

 

GND

 

17

 

GNT#

 

GND

 

64

 

C/BE7#

 

 

 

 

 

 

 

 

 

REQ#

 

18

 

GND

 

C/BE6#

 

65

 

C/BE5#

 

 

 

 

 

 

 

 

 

+VI/O

 

19

 

PME#

 

C/BE4#

 

66

 

+VI/O

 

 

 

 

 

 

 

 

 

AD31

 

20

 

AD30

 

GND

 

67

 

PAR54

 

 

 

 

 

 

 

 

 

AD29

 

21

 

+3,3B

 

AD63

 

68

 

AD62

 

 

 

 

 

 

 

 

 

GND

 

22

 

AD28

 

AD61

 

69

 

GND

 

 

 

 

 

 

 

 

 

AD27

 

23

 

AD26

 

+VI/O

 

70

 

AD60

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AD23

27

 

+3,3B

 

AD55

 

74

 

AD54

 

GND

28

 

 

 

 

 

 

 

 

 

AD22

 

AD53

 

75

 

+VI/0

 

AD21

29

 

 

 

 

 

 

 

 

 

AD20

 

GND

 

76

 

AD52

 

AD19

30

 

 

 

 

 

 

 

 

 

GND

 

AD51

 

77

 

AD50

 

+3,3B

31

 

 

 

 

 

 

 

 

 

AD18

 

AD49

 

78

 

GND

 

AD17

32

 

 

 

 

 

 

 

 

 

AD16

 

+VI/0

 

79

 

AD48

 

C/BE2#

33

 

 

 

 

 

 

 

 

 

+3,3B

 

AD47

 

80

 

AD46

 

GND

34

 

 

 

 

 

 

 

 

 

FRAME#

 

AD45

 

81

 

GND

 

IRDY#

35

 

 

 

 

 

 

 

 

 

GND

 

GND

 

82

 

AD44

 

+3,3B

36

 

 

 

 

 

 

 

 

 

TRDY#

 

AD43

 

83

 

AD42

 

DEVSEL# 37

 

 

 

 

 

 

 

GND

 

AD41

 

84

 

+VI/0

 

GND

38

 

 

 

 

 

 

 

 

 

STOP#

 

GND

 

85

 

AD40

 

LOCK#

39

 

 

 

 

 

 

 

 

 

+3,3B

 

AD39

 

86

 

AD38

 

PERR#

40

 

 

 

 

 

 

 

(SDONE#)

 

AD37

 

87

 

GND

 

+3,3B

41

 

 

 

 

 

 

 

 

 

(SBOFF)

 

+VI/0

 

88

 

AD36

 

+3,3B

43

 

 

 

 

 

 

 

 

 

PAR

 

AD33

 

90

 

GND

 

C/BE1#

44

 

 

 

 

 

 

 

 

 

AD15

 

GND

 

91

 

AD32

 

AD14

45

 

 

 

 

 

 

 

 

 

+3,3B

 

Резерв

 

92

 

Резерв

 

GND

46

 

 

 

 

 

 

 

 

 

AD13

 

Резерв

 

93

 

GND

 

AD12

47

 

 

 

 

 

 

 

 

 

AD11

 

GND

 

94

 

Резерв

 

 

 

 

 

 

 

 

 

AD10

 

48

 

GND

 

Конец 64­битного

 

 

 

 

разъёма

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1Сигнал М66EN определен в PCI 2.1 только для слотов на 3,3В.

2Сигнал введен в PCI 2.2 (прежде был резерв).

3Сигналы упразднены в PCI 2.2 (для совместимости на системной плате подтягиваются к высокому уровню резисторами 5 кОм).

На слотах PCI имеются контакты для тестирования адаптеров по интерфейсу JTAG

(сигналы ТСК, TDI, TDO, TMS и TRST#). На системной плате эти сигналы задействованы не всегда, но они могут и организовывать логическую цепочку тестируемых адаптеров, к которой можно подключить внешнее тестовое оборудование. Для непрерывности цепочки на карте, не использующей JTAG, должна быть связь TDI­TDO. На некоторых старых системных платах позади одного из слотов PCI имеется разъем Media Bus, на который выводятся сигналы ISA. Он предназначен для размещения на графическом адаптере PCI звукового чипсета, предназначенного для шины ISA.

Мосты:

Для соединения шины PCI с другими шинами и между собой применяются специальные аппаратные средства — мосты PCI (PCI Bridge). Главный мост (Host Bridge) используется для подключения PCI к системной шине (системной памяти и процессору), одноранговый мост (Peer- to-Peer Bridge) ­ для соединения двух шин 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.11): каждый мост «знает» номера всех шин, его окружающих. На каждой шине PCI должно присутствовать центральное устройство, вынолняющее следующие функции:

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

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

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

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

*формирование сигнала REQ64# в момент окончания сброса в качестве признака 64­битной шины (если она таковая).

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

49 Программный доступ к конфигурационному пространству, генерация специальных циклов, Конфигурирование устройств. PCI BIOS. Параллельный интерфейс SCSI. Протокол шины. Хостадаптер SCSI.

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

Поскольку конфигурационное пространство PCI обособлено, в главный мост приходится вводить специальный механизм доступа к нему командами процессора, который «умеет» обращаться только к памяти или вводу­выводу. Этот же механизм используется и для генерации специальных циклов. Для PC­совместимых компьютеров предусмотрено два механизма, из которых в спецификации 2.2 оставлен только первый (Configuration Mechanism #1). Номер механизма, которым пользуется конкретная системная плата, можно узнать путем вызова PCI BIOS.

Конфигурационные циклы адресуются к конкретному устройству (микросхеме PCI), для которого должен быть сформирован сигнал выборки IDSEL(единичное значение). Номер функции и адрес регистра декодируется самим устройством. Поскольку сигнал IDSEL воспринимается устройством только в фазе адреса, для него используют позиционное кодирование в линиях старших битов шины AD (конфигурационное пространство всех устройств занимает лишь малую часть пространства с 32­битной адресацией). На этих линиях в фазе адреса конфигурационного обращения может быть лишь один единичный бит, остальные — нулевые. Таким образом, только одно устройство будет выбрано сигналом IDSEL.

Для работы механизма № 1 в пространстве ввода­вывода зарезервированы 32­битные порты с адресами 0CF8H и 0CFCh, входящие в главный мост. Для обращения к конфигурационному пространству в порт CONFIG_ADDRESS (RW, адрес CF8h) заносят 32­разрядный адрес, декодируемый в соответствии с рис. 6.9, а. После занесения адреса обращением к

порту CONFIG_DATA (RW, адрес CFCh) можно прочитать или записать содержимое требуемого конфигурационного регистра. В регистре CONFIG_ADDRESS бит 31 является разрешением формирования конфигурационных и специальных циклов. В зависимости от номера шины, указанного в этом регистре, главный мост генерирует конфигурационные циклы одного из двух типов.

Для обращения к устройству, находящемуся на нулевой шине (подключенной к главному мосту), используется цикл типа 0 (биты 1:0=00). Главный мост декодирует поле номера устройства в позиционный код, помещаемый на линии AD[31:11]; номер адресуемой функции, адрес регистра и биты 1:0=00 передаются на шину прозрачно (рис. 6.9, б). Устройству 0 соответствует бит AD11, устройству 1 — AD12, устройству 20 — AD31. Поскольку нулевым устройством является главный мост, который и осуществляет декодирование, на шину единичное значение AD11 в цикле типа 0 не выводится. Устройства PCI, расположенные в микросхеме главного моста, могут использовать номера 21–31, для которых линий AD уже не хватает. На системной плате вход IDSEL каждого слота или микросхемы PCI­устройства соединяется со своей линией адреса. Как правило, слоты подключаются, начиная с линии AD31 (и «вниз»), микросхемы устройств PCI, расположенные на системной плате, подключаются, начиная с AD12 (и «вверх»), но может быть и иной порядок. Цикл типа 0 игнорируется всеми другими мостами, подключенными к нулевой шине.

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

Параметры конфигурирования SCSI-устройств

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

Идентификатор устройства ­ SCSI ID ­ адрес 0­7 (или 0­15), уникальный для каждого устройства на шине. Обычно хост­адаптеру, который должен иметь высший приоритет, назначается ID 7. Заводское назначение идентификаторов устройств приведено в таблице, хотя оно и не является обязательным. Устройства адресуются позиционным кодом (хотя ID задается 3­4­битовым кодом), что обеспечивает совместимость адресации 8­ и 16­битовых устройств на одной шине. Номер SCSI ID обычно устанавливается с помощью перемычек (хотя в SCSI существуют и новые стандарты, аналогичные Plug­and­Play, не требующие перемычек).

Таблица заводских установов идентификаторов устройств SCSI ID Устройство

7 Хост­адаптер

6 Накопитель на магнитных дисках

5 ­

4 Ленточный или R/W­оптический накопитель

3 CD­ROM

2 Сканер, принтер

1 НЖМД, поддерживаемый BIOS хост­адаптера

0 НЖМД, поддерживаемый BIOS хост­адаптера

Контроль паритета ­ SCSI Parity. Если хотя бы одно устройство на шине не поддерживает контроль паритета, он должен быть отключен на всех устройствах данной шины. Контроль паритета, особенно для дисковых устройств, является средством защиты от искажения данных при передаче.

Включение терминаторов ­ Termination. Активные терминаторы могут включаться одним джампером или даже управляться программным сигналом. Терминаторы должны быть включены только на крайних устройствах в цепочке.

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

Согласование скорости синхронного обмена ­ SCSI Synchronous Negotiation. Режим синхронного обмена, обеспечивающий высокую производительность, включается по взаимному согласованию устройств. Однако, если хоть одно устройство на Шине его не поддерживает, согласование на хост­адаптере необходимо запретить. При этом, если обмен будет инициирован синхронным устройством, хост поддержит этот режим.

Старт по команде ­ Start on Command, или задержанный старт ­ Delayed Start. При включении этой опции запуск двигателя Устройства выполняется только по команде от хост­адаптера, что Позволяет снизить пик нагрузки блока питания в момент включения. Хост будет запускать устройства последовательно.

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

Хост-адаптер

Хост­адаптер SCSI является важнейшим узлом интерфейса, определяющим производительность подсистемы SCSI­устройств. Существует широкий спектр адаптеров, начиная от простейших, к которым можно подключать только устройства, не критичные к производительности. Конфигурирование SCSI хост­адаптеров с точки зрения шины SCSI не отличается от конфигурирования других устройств (смотри ранее). Для современных адаптеров вместо джамперов используется программное конфигурирование. Утилита конфигурирования обычно входит в расширение BIOS (на плате адаптера), и приглашение к ее исполнению выводится на экран при инициализации во время POST.

Протокол шины

Стандарт SCSI определяет два способа передачи сигналов ­ синфазный и дифференциальный. В первом случае сигналы на линиях имеют ТТЛ­уровни, при этом длина кабеля ограничена 6 м. Версии шины SCSI с дифференциальной передачей сигнала ("токовой петлей") дают возможность увеличить длину шины до 25 м.

Чтобы гарантировать качество сигналов на магистрали SCSI, линии шины должны быть с обеих сторон согласованы при помощи набора согласующих резисторов, или терминаторов. Терминаторы должны быть установлены на хост­адаптере и на последнем устройстве магистрали. Обычно используют один из трех методов согласования:

пассивное согласование при помощи резисторов;

FPT (Force Perfect Termination) ­ улучшенное согласование с исключением перегрузок при помощи ограничительных диодов;

активное согласование при помощи регуляторов напряжения.

Обмен данными между устройствами на шине SCSI происходит в соответствии с протоколом высокого уровня на основе стандартного списка команд ­ CCS (Common Command Set). Этот универсальный набор команд обеспечивает доступ к данным с помощью адресации логических, а не физических блоков. С внедрением в спецификацию CSS команд, поддерживающих приводы CD­ROM, коммуникационные устройства, сканеры и др. (стандарт SCSI­2), стала осуществимой работа практически с любыми блочными устройствами.

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

Параллельный интерфейс SCSI является исторически первым и самым известным. Существует три стандарта электрической организации параллельного интерфейса SCSI:

SE (англ. single-ended) — асимметричный SCSI, для передачи каждого сигнала используется отдельный проводник.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]