4. Шины расширения

Шины расширения (Expansion Bus) предназначены для подключения различных адаптеров ПУ. Интерфейсы шин расширения PC ведут историю с 8-битной шины ISA. Ее открытость обеспечила появление широкого спектра платрасширений, позволивших использовать PC в различных сферах. С появлением АТ-286 шина была расширена по разрядности и возможностям. Шина EISA была призвана сделать обмен еще более производительным и надежным. Онасодержала прогрессивные идеи автоматизации конфигурирования (прототип РnР), позволяя устанавливать и ISA-адаптеры. Шина МСА, предложенная IBM, не была поддержана производителями PC, так как ее спецификация была закрытой. С появлением процессора 486 родилась высокоскоростная локальная шина VLB. Однако она являлась дополнением к слоту шины ISA/EISA и использовалась в основном лишь для графических карт и дисковых контроллеров. Принципиальная привязка к шине процессора 486 не обеспечила ей долголетия. Современная скоростная шина PCI является стандартной для компьютеров с процессорами х86 всех поколений старше четвертого, она используется в Power PC и других платформах. Развитием шины PCI, нацеленным на дальнейшее ускорение обмена, явился порт AGP, предназначенный для подключения графических адаптеров. Для блокнотных компьютеров, поначалу имевших закрытую архитектуру, потребность в подключении периферии привела к появлению стандартизованной шины PCMCIA, впоследствии переименованной в PC Card.

Шины расширения системного уровня позволяют адаптерам максимально использовать системные ресурсы PC: пространства памяти и ввода/вывода, прерывания, каналы прямого доступа к памяти. Как следствие, изготовителям модулей расширения приходится точно следовать протоколам шины,выдерживая жесткие частотные и нагрузочные параметры, а также временные диаграммы. Отклонения приводят к несовместимости с некоторыми системными платами. Если при подключении к внешним интерфейсам это приведет к неработоспособности только самого устройства, то некорректное подключение к системной шине может блокировать работу всего компьютера. Следует также учитывать ограниченность ресурсов PC. Самые дефицитные из них — линии запросов прерываний (каналы прямого доступа можно заменить на активное управление шиной PCI). Проблемы распределения ресурсов на шинах решаются по-разному, но чаще всего применяется технология РnР.

В табл. 4.1 даны характеристики стандартных шин расширения PC.

Шина Пропускная способность, Мбайт/с* DMA Bus-Master ACFG** Разрядность данных Разрядность адреса Частота, МГц
БД-8 4 3 - - 8 (1 Мбайт) 8
БД-16 8 (16) 8 + - 16 24 (16 Мбайт) 8/(16)
ЕБД 33,3 8 + + 32 32 (4 Гбайт) 8.33
МСД-16 16 - + + 16 24 (16 Мбайт) 10
МСД-32 20 - + + 32 32 (4 Гбайт) 10
VLB 132 - (+) - 32/64 32 (4 Гбайт) 33-50(66)
pa 132/264 - - + 32/64 32 (4 Гбайт) 33(66)
гсмад - - - + 16 26 (64 Мбайт) 33

* Указана максимальная пропускная способность. Реальная примерно в 2 раза ниже за счет прерываний, регенерации и протокольных процедур.

** Поддержка автоматического конфигурирования. Для ISA PnP является позднейшей надстройкой, реализуемой адаптерами и ПО.

Шины расширения конструктивно оформляются в виде щелевых разъемов (слотов) на системной плате для установки плат адаптеров. Унификация системных плат, корпусов и плат расширения обеспечивается:

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

Размеры карт расширения для самой популярной шины — ISA приведены на рисунке 1.

Карта расширения для шины ISA
Рисунок 1. Карта расширения для шины ISA
Вид и положение слотов шин расширения
Рисунок 2. Вид и положение слотов шин расширения

Типы слотов легко определить визуально (рисунок 2). На этом рисунке присутствие всех типов шин условно. Реально на системных платах находится не более двух-трех типов слотов. Распространенные сочетания: ISA+PCI, ISA+VLB, EISA+PCI, EISA+VLB. Фирмой ASUSTek применяется слот "Media BUS", дополняющий слот PCI сигналами шины ISA.

У адаптеров для шины PCI, в отличие от ISA/EISA и VLB, компоненты расположены на левой стороне печатной платы. Для экономии места на системной плате используют так называемый разделяемый слот (Shared Slot). На самом деле это разделяемое окно на задней стенке корпуса, которое может использоваться либо картой ISA, либо картой PCI. Таким образом, максимальное суммарное количество доступных слотов оказывается на единицу меньшим, чем видимое количество.

Для низкопрофильных корпусов системные платы имеют всего один слот расширения, в который устанавливается специальная плата-переходник Riser Card. Этот переходник специфичен для модели системной платы (корпуса), поскольку на его краевой разъем заводятся линии нескольких системных шин. Если Riser Card имеет слоты только шины ISA, он обычно вставляется в стандартный слот ISA-16. С точки зрения уменьшения наводок и паразитных емкостей лучше использовать специальные платы с одним разъемом, чтобы не перегружать шину неиспользуемыми проводниками и разъемами.

Шины расширения допускают конфигурирование, которое предполагает в основном настройку их временных параметров:

  • Для шины VLB применяется перемычка, управляющая делителем частоты сигнала синхронизации в зависимости от того, превышает ли системная частота 33,3 МГц.
  • Для шины PCI частота синхронизации определяется частотой системной шины процессора. Кроме того, режимы могут определяться в BIOS Setup.
  • Для шины ISA кроме частоты (которая должна быть порядка 8 МГц) задают время восстановления для 8- и 16-битных обращений к памяти и вводу/выводу. Неустойчивая работа адаптеров может потребовать замедления шины ISA. Понижение ее производительности не отражается на общей производительности современных компьютеров.
  • Иногда для шин ISA и PCI опциями BIOS Setup приходится распределять системные ресурсы (линии запросов прерываний)(см. приложение А).

4.1. Шины ISA, EISA и PC-104

ISA Bus (Industry Standard Architecture) — шина расширения, применявшаяся с первых моделей PC и ставшая промышленным стандартом. В компьютере XT использовалась шина с разрядностью данных 8 бит и адреса — 20 бит. В компьютерах AT ее расширили до 16 бит данных и 24 бит адреса. В таком виде она существует и поныне. Конструктивно шина выполнена в виде двух щелевых разъемов с шагом выводов 2,54 мм (0,1 дюйма) (см. рисунок 3). Подмножество ISA-8 использует только 62-контактный слот (ряды А,В), в ISA-16 применяется дополнительный 36-контактный слот (ряды С, D).

Шина обеспечивает возможность отображения 8- или 16-битных регистров на пространство ввода/вывода и памяти. Диапазон адресов памяти ограничен областью UMA (выше A0000h). Для шины ISA-16 опциями BIOS Setup может быть разрешено пространство между 15-м и 16-м мегабайтами памяти (при этом компьютер не сможет использовать более 15 Мбайт ОЗУ). Диапазон адресов ввода/вывода сверху ограничен количеством используемьк для дешифрации бит адреса, нижняя граница ограничена областью адресов 0-FFh, зарезервированных под устройства системной платы. В PC была принята 10-битная адресация ввода/вывода, при которой линии адреса А[15:10] устройствами игнорировались. Таким образом, диапазон адресов устройств шины ISA ограничивается областью 100h-3FFh, то есть всего 758 адресов 8-битных регистров. На некоторые из адресов претендуют системные устройства (см. табл. А.1). Впоследствии стали применять 12-битную адресацию (диапазон l00h-FFFh). При ее использовании необходимо учитывать возможность присутствия на шине старых 10-битных адаптеров, которые "отзовутся" на адрес с подходящими ему битами А[9:0] во всей допустимой области 12-битного адреса четыре раза (у каждого 10-битного адреса будет еще по три 12-битных псевдонима).

Слот ISA
Рисунок 3. Слот ISA

Шина ISA-8 может предоставить до 6 линий запросов прерываний, ISA-16 — 11. Часть их могут "отобрать" устройства системной платы или шина PCI.

Шина позволяет использовать до трех 8-битных каналов DMA.На 16-битной шине доступны еще три 16-битных канала. Сигналы 16-битных каналов могут использоваться для прямого управления шиной устройством Bus-Master. При этом канал DMA применяется для арбитража шины, а адаптер Bus-Master формирует все адресные и управляющие сигналы шины, не забывая передать управление шиной процессору не позднее, чем через 15 мкс (чтобы не нарушить регенерацию памяти).

Все перечисленные ресурсы системной шины должны быть бесконфликтно распределены. Бесконфликтность подразумевает следующее:

  • Каждое устройство должно управлять шиной данных только при чтении по своим адресам или по используемому им каналу DMA. Области адресов для чтения не должны пересекаться. "Подсматривать" операции записи, "адресованные не ему", не возбраняется.
  • Назначенную линию IRQx или DRQx устройство должно держать на низком уровне в пассивном состоянии и переводить в высокий уровень для активации запроса. Неиспользуемыми линиями запросов устройство управлять не имеет права, они должны быть электрически откоммутированы или подключаться к буферу, находящемуся в третьем состоянии. Одной линией запроса может пользоваться только одно устройство. Такая нелепость (с точки зрения схемотехники ТТЛ) была допущена в первых PC и из требований совместимости тиражируется до сих пор.

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

С появлением 32-битных процессоров делались попытки расширения разрядности шины, но все 32-битные шины ISA не являются стандартизованными, кроме EISA.

EISA Bus (Extended ISA) — стандартизованное расширение ISA до 32 бит. Конструктивное исполнение обеспечивает совместимость с ней ISA-адаптеров (рисунок 4). Узкие дополнительные контакты расширения (ряды Е, F, G, Н) расположены между ламелями (контактными площадками) разъема ISA и ниже ламелей А, В, С, D таким образом, что адаптер ISA, не имеющий дополнительных ключевых прорезей в краевом разъеме, не достает до них. Установка карт EISA в слоты ISA недопустима, поскольку ее цепи попадут на контакты ISA, в результате чего системная плата окажется неработоспособной (к счастью, "без дыма").

Разъем шины EISA
Рисунок 4. Разъем шины EISA

Для режимов EISA используются дополнительные управляющие сигналы, обеспечивающие более эффективные режимы передачи. В обычном (не пакетном) режиме передачи за каждую пару тактов может быть передано до 32 бит (один такт на фазу адреса, один — на фазу данных). В пакетном режиме (Burst Mode) пакеты данных пересылаются без указания текущего адреса внутри пакета. В пакете очередныеданные передаются в каждом такте шины, длина пакета достигает 1024 байт. Шина предусматривает более производительные режимы DMA (см. прил. А4), при которых скорость обмена может достигать 33 Мбайт/с. Линии запросов прерываний допускают разделяемое использование, причем сохраняется совместимость с ISA-картами: каждая линия запроса может программироваться на чувствительность как по высокому (как в ISA), так и по низкому уровню. Шина допускает потребление каждой картой расширения мощности до 45 Вт, но это не означает, что мощность блока питания для 8 слотов должна быть более 360 Вт — полную мощность не потребляет ни один из адаптеров.

Многие решения EISA напоминают МСА. Каждый слот (максимум — 8) и системная плата имеют селективное разрешение адресации ввода/вывода и отдельные линии запроса и подтверждения управления шиной. Арбитраж запросов выполняет устройство ISP (Integrated System Peripheral). Приоритеты (в порядке убывания): регенерация, DMA, CPU, Bus-Master. Обязательной принадлежностью системной платы с шиной EISA является энергонезависимая память конфигурации NVRAM, в которой хранится информация об устройствах EISA для каждого слота. Формат записей стандартизован, для модификации информации применяется специальная утилита ECU (EISA Configuration Utility). Архитектура позволяет при использовании программно конфигурируемых адаптеров автоматически разрешать конфликты, но в отличие от РпР не допускает динамического конфигурирования — после выхода из режима конфигурирования необходима перезагрузка. Изолированный доступ к портам ввода/вывода каждой карты во время конфигурирования обеспечивается просто: сигнал AEN, разрешающий декодирование адреса в цикле ввода/вывода, на каждый слот приходит по отдельной линии AENx, в это время программно-управляемой. Так можно обращаться и к картам ISA, но из этого нельзя извлечь выгоды, поскольку они не поддерживают обмена конфигурационной информацией. Идеи конфигурирования EISA были использованы в спецификации РnР для шины ISA (формат конфигурационных записей ESCD напоминает NVRAM EISA).

EISA — дорогая, но оправдывающая себя архитектура, применяющаяся в многозадачных системах и на серверах, где требуется высокоэффективное расширение шины ввода/вывода. Перед шиной PCI у нее есть преимущество в количестве слотов (8 против 4).

Назначение контактов слотов шин ISA и EISA приведено в табл. 4.2 и 4.3.

Ряд F Ряд В N Ряд А Ряд Е
GND GND 1 IOСНК CMD#
+5 В Reset 2 Data 7 START#
+5 В +5 В 3 Data 6 EXRDY
Unused IRQ 2/91 4 Data 5 EX32#
Unused -5В 5 Data 4 GND
Key DRQ2 6 Data3 Key
Unused -12В 7 Data 2 EX16#
Unused OWS#2 8 Data1 SLBURST#
+12 В +12 В 9 Data 0 MSBURST#
M/-IO GND 10 IOCHDRY W/R#
-LOCK SmemWR# 11 AENx GND
Reserved SmemRD# 12 Addr19 EMB66#3
GND IOWR# 13 Addr18 EMB133#3
Reserved IORD# 14 Addr17 Reserved
ВЕЗ# DACK3# 15 Addr16 GND
Key DRQ3 16 Addr15 Key
BE2# DACK1# 17 Addr14 BE1#
BE0# DRQ1 18 Addr13 LA31#
GND Refr# 19 Addr12 GND
+5 В Bclock 20 Addr11 LA30#
LA29# IRQ7 21 Addr10 LA28#
GND IRQ 6 22 Addr9 LA27#
LA26# IRQ5 23 Addr8 LA25#
LA24# IRQ4 24 Addr7 GND
Key IRQ3 25 Addr6 Key
LA16 DACK2# 26 Addr5 LA15
LA14 TC 27 Addr4 LA13
+5 В BALE 28 Addr3 LA12
+5 В +5 В 29 Addr2 LA11
GND Osc. 30 Addr1 GND
LA10 GND 31 Addr0 LA9

1B4: XT=IRQ2, AT-IRQ9.
2B8: XT-Card Selected.
3E12, E13 - только для Fast EISA.

Ряд Н Ряд D N# Ряд С Ряд G
LA8 MCS16# 1 SBHE# LA7
LA6 IOCS16# 2 LA23 GND
LA5 IRQ10 3 LA22 LA4
+5 В IRQ11 4 LA21 LA3
LA2 IRQ12 5 LA20 GND
Key IRQ15 6 LA19 Key
Data16 IRQ14 7 LA18 Data17
Data18 DACK0# 8 LA17 Data19
GND DRQ0 9 MemRD# Data20
Data21 DACK5# 10 MemWR# Data22
Data23 DRQ5 11 Data8 GND
Data24 DACK6# 12 Data9 Data25
GND DRQ6 13 Data10 Data26
Data27 DACK7# 14 Data11 Data28
Key DRQ7 15 Data12 Key
Data29 +5 В 16 Data13 GND
+5 В Master# 17 Data14 Data30
+5 В GND 18 Data15 Data31
МАКх# - 19 - MREQx

Сигналы шины ISA восходят к шинам Microbus и Multibus, они естественны для периферийных микросхем фирмы Intel для процессоров 8080 и 80х86/88. Набор сигналов ISA-8 предельно прост. Программное обращение к ячейкам памяти и пространства ввода/вывода обеспечивают следующие сигналы:

  • Data[7:0] - шина данных.
  • Addr[19:0] - шина адреса.
  • AEN - разрешение адресации портов (запрещает ложную дешифрацию адреса в цикле DMA).
  • IOWR# - запись в порт.
  • IORD# - чтение порта.
  • SMemWR# - запись в память (в диапазоне адресов 0-FFFFFh).
  • SMemRD# - чтение памяти (в диапазоне адресов 0-FFFFFh).

К сигналам запросов прерывания и каналам прямого доступа к памяти относятся следующие:

  • IRQ 2/9, IRQ[3:7] - запросы прерываний. Положительный перепад сигнала вызывает запрос аппаратного прерывания. Для идентификации источника высокий уровень должен сохраняться до подтверждения прерывания процессором, что затрудняет разделяемое использование линий запроса. Линия IRQ 2/9 в шинах XT вызывает аппаратное прерывание с номером 2, а в AT - с номером 9.
  • DRQ[1:3] - запросы8-битных каналов DMA (положительным перепадом).
  • DACK[1:3]# - подтверждение запросов 8-битных каналов DMA.
  • TC - признак завершения счетчика циклов DMA.

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

  • IOCHRDY - готовность устройства, низкий уровень удлиняет текущий цикл (не более 15 мкс).
  • BALE - разрешение защелки адреса. После его спада в каждом цикле процессора линии Addr 0 - 19 гарантированно содержат действительный адрес.
  • Refr# - цикл регенерации памяти (в XT он называется DACK0#). Сигнал появляется каждые 15 мкс, при этом шина адреса указывает на очередную регенерируемую строку памяти.
  • IOCHK - контроль канала, низкий уровень вызывает NMI CPU (разрешение и индикация в системных портах 061h, 062h).
  • Reset - сигнал аппаратного сброса (активный уровень - высокий).
  • BClock - синхронизация шины с частотой около 8 МГц. Периферийные устройства могут и не использовать этот сигнал, работая только по управляющим сигналам записи и чтения.
  • OSC - несинхронизированная с шиной частота 14,431818 МГц (использовалась старыми дисплейными адаптерами).

Кроме логических сигналов шина имеет контакты для разводки питания +5, -5, +12 и -12В.

Дополнительный разъем, расширяющий шину до 16-битной, содержит линии данных, адреса, запросов прерываний и каналов прямого доступа:

  • Data[15:8] - шина данных.
  • SBHE - признак наличия данных на линиях Data[15:8].
  • LA[23:17] - нефиксированные сигналы адреса, требующие защелкивания по спаду сигнала BALE. Такой способ подачи адреса позволяет сократить задержку и схемам дешифратора адреса памяти плат расширения начинать декодирование несколько раньше спада BALE.
  • IRQ[10:12], IRQ[14:15] - дополнительные запросы прерываний.
  • DRQ[5:7] - запросы 16-битных каналов DMA (положительным перепадом).
  • DACK[5:7]# - подтверждение запросов 16-битных каналов DMA.

С переключением разрядности данных связаны сигналы:

  • MCS16# - адресуемое устройство поддерживает 16-битные обращения к памяти.
  • IOCS16# - адресуемое устройство поддерживает 16-битные обращения к портам.

К новым управляющим сигналам относятся следующие:

  • MemWR# - запись в память в любой области до 16 Мбайт.
  • MemRD# - чтение памяти в любой области до 16 Мбайт.
  • 0WS# - сигнал от устройства, разрешающий системной плате укоротить текущий цикл (устранить такты ожидания).
  • MASTER# - запрос от устройства, использующего 16-битный канал DMA на управление шиной. При получении подтверждения DACK [5:7] Bus-Master может захватить шину (не более чем на 15 мкс).

Обобщенные временные диаграммы циклов чтения или записи памяти или ввода/вывода приведены на рисунке 5. Здесь условный сигнал CMD* изображает один из сигналов:

  • SMEMRD#, MEMRD# - в цикле чтения памяти;
  • SMEMWR#, MEMWR# - в цикле записи памяти;
  • IORD# - в цикле чтения порта ввода/вывода;
  • IOWR# - в цикле записи порта ввода/вывода.
Временные диаграммы циклов чтения или записи на шине ISA
Рисунок 5. Временные диаграммы циклов чтения или записи на шине ISA

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

По адресованному ему спаду сигнала чтения устройство должно выдать на шину данных содержимое адресуемой ячейки и удерживать его, пока не произойдет подъем сигнала. Во время циклов записи процессор выставляет действительные данные несколько позже начала (спада) сигнала записи. Устройство должно фиксировать для себя эти данные в конце цикла по подъему сигнала. Обращение к портам ввода/вывода отличается тем, что сигналы LA[32:17] не используются.

Минимальная длительность цикла определяется чипсетом и может программироваться опциями BIOS Setup заданием тактов ожидания. При этом циклы обращения к памяти короче циклов обращения к портам ввода/вывода. В шине AT для управления минимальной длительностью цикла используются также сигналы управления разрядностью передачи: если устройство поддерживает 16-битные передачи, предполагается, что оно может работать с меньшим количеством тактов ожидания. Этим объясняется, что в Setup длительности циклов ISA задаются раздельно как для памяти и ввода/вывода, так и для 8- и 16-битных операций.

Если устройство не работает с заданными циклами, оно может вводить дополнительные такты ожидания, используя сигнал IOCHRDY, но при этом недопустимо удлинять цикл более чем на 15 мкс.

Шина EISA позволяет устройствам работать как в режиме ISA, так и в новых режимах EISA. Из сигналов ISA используются линии адреса/данных с расширением их до 32 бит, сигналы прерываний и прямого доступа к памяти и синхронизации. Для своих циклов обмена EISA использует собственный набор управляющих сигналов с обязательной синхронизацией по сигналу BCLK. Сигналы IORD# и IOWR# при обращении к EISA-портам не используются. Вместо них применяются сигналы обращения М/10# и W/R#. В EISA-циклах не используется сигнал SBHE; он заменен сигналами разрешения байт ВЕ[3:0]. Вместо общего сигнала AEN каждый слот имеет собственный сигнал AENx. К сигналам расширения шины EISA относятся следующие:

  • LA[23:16] - опережающие сигналы адреса, требующие защелкивания по спаду сигнала BALE.
  • LA[31:24]# - аналогично LA [2:23], но с инверсией.
  • BE[3:0]# - индикаторы действительности данных в байтах 0 - 3 при EISA-цикле.
  • M/IO# - обращение к памяти (1) или портам (0) EISA.
  • W/R# - запись (1) или чтение (0) EISA.
  • EX16#, EX32# - индикаторы разрядности ресурсов.
  • SLBURST# - адресуемое устройство поддерживает пакетный режим обмена.
  • MSBURST# - уведомление устройства, подавшего сигнал SLBURST, о намерении инициировать пакетный обмен.
  • LOCK# - обеспечение исключительного права доступа активного EISA Bus-Master к памяти или портам.
  • EXRDY - готовность EISA-устройства, аналогично сигналу IOCHRDCY.
  • START# - отмечает начало цикла EISA-доступа. Во время действия этого сигнала фиксируется адрес и определяется тип обращения.
  • CMD# - задает временные параметры цикла, действует после сигнала START#.
  • MREQx# - EISA Bus-Master слота "x" запрашивает управление шиной.
  • MAKx# - EISA Bus-Master слота "x" получает управление шиной от арбитра.
Временные диаграммы одиночных циклов на шине EISA
Рисунок 6. Временные диаграммы одиночных циклов на шине EISA
Временные диаграммы пакетных циклов на шине EISA
Рисунок 7. Временные диаграммы пакетных циклов на шине EISA

Временные диаграммы одиночных и пакетных циклов обмена по шине EISA приведены на рисунках 6 и 7. Обратим внимание на то, что действительные значения сигналов должны фиксироваться по положительному перепаду BCLK#, a готовность проверяется по отрицательному.

Для шин ISA ряд фирм выпускают карты-прототипы(Prototype Card), представляющие собой печатные платы полного или уменьшенного формата с крепежной скобой. На платах установлены обязательные интерфейсные цепи - буфер данных, дешифратор адреса и некоторые другие. Остальная часть платы свободна, и здесь разработчик может разместить макетный вариант своего устройства. Эти платы удобны для проверки нового изделия, а также для монтажа единичных экземпляров устройства, когда разработка и изготовление печатной платы нерентабельно.

На некоторых системных платах (ASUSTek) имеется небольшой разъем с загадочным названием Media Bus, расположенный позади разъема шины PCI одного из слотов. На этот разъем выводятся сигналы шины ISA. Он предназначен для того, чтобы на графическом адаптере с шиной PCI можно было разместить недорогой чипсет звуковой карты, предназначенный для шины ISA. Этот разъем и такие комбинированные аудиовидеокарты широкого распространения не получили.

Обычно в PC разъемы шины расширения устанавливают на системную плату. Для компьютеров инструментального и промышленного назначения по ряду причин удобнее использовать модули, соединяемые пассивной объединяющей платой. Самый простой соответствующий конструктив заключается в использовании стандартной шины и карты ISA. Все компоненты с традиционной системной платы перенесли на карту ISA, получив одноплатный компьютер, называемый микроРС (mPC - microPC). На такой карте содержатся процессор, память, графический адаптер, контроллеры портов и дисковые интерфейсы, иногда дополнительные контроллеры цифрового и аналогового ввода/вывода. Для подключения к модулям расширения используют пассивную кросс-плату с обычными разъемами ISA. Если требуется более высокопроизводительный канал, применяют шину PCI. При этом на плате системного контроллера присутствуют два краевых разъема - ISA на обычном месте и PCI примерно на том месте, где располагался разъем VLB. Кросс-плата для таких систем становится неоднородной - часть ее слотов имеет разъемы PCI, другая часть - ISA, место для системного контроллера оборудовано обоими разъемами.

Логически эквивалентной ISA является шина PC-104, предназначенная для построения встраиваемых контроллеров. 104 - число контактов коннектора, на который выводятся сигналы шины ISA. От ISA шина PC-104 отличается только типом коннектора и нагрузочными характеристиками линий. Основой контроллера является mPC с разъемом PC-104 (розетка). Если требуется подключение платы расширения, она своей вилкой PC-104 вставляется в плату контроллера. Кроме вилки на плате расширения имеется розетка PC-104 (коннектор двухсторонний), так что можно собрать "бутерброд" из нескольких плат. Если плат более трех, то сверху "бутерброда" устанавливают терминатор. Для фиксации плат стандартизовано расположение крепежных отверстий. Платы скрепляются несущими стойками (длинными винтами со втулками).

4.2. Шина МСА

MCA (MicroChannel Architecture) - микроканальная архитектура - была введена в пику конкурентам фирмой IBM для своих компьютеров PS/2, начиная с модели 50. Шина MCA абсолютно несовместима с ISA/EISA и другими адаптерами. Состав управляющих сигналов, протокол и архитектура ориентированы на асинхронное функционирование шины и процессора, что снимает проблемы согласования скоростей процессора и периферийных устройств. Адаптеры MCA широко используют Bus-Mastering, все запросы идут через устройство CACP (Central Arbitration Control Point). Приоритеты (в порядке убывания): регенерация, DMA, Bus-Master, CPU (только по NMI он получает управление немедленно). Архитектура позволяет эффективно и автоматически конфигурировать все устройства программным путем (в MCAPS/2 нет ни одного переключателя).

Слоты MCA имеют контакты с шагом 0,05 дюйма, их состав на системной плате зависит от модели компьютера.

Слоты МСА
Рисунок 8. Слоты МСА: а - 16-битный, б - 32-битный, в - 16-битный с расширением

16-битный слот (рис. 4.8а) использует контакты А1/В1 ... А45/В45 для 8-битных операций и А48/В48 ... А58/В58 для 16-битных. Пропущенные номера 46, 47 - ключ для всех слотов.

32-битный слот (рис. 4.86) имеет удлиненную вторую секцию с контактами А48/В48 ... А89/В89.

Перед контактами А1/В1 возможно одно из двух расширений за счет удлинения первой секции (рисунок 8в):

  • АМ1/ВМ1-АМ4/ВМ4 - для плат расширения памяти;
  • AV1/BV1-AV10/BV10 - для плат видеоадаптеров. Позволяет использовать общие цепи встроенного в системную плату VGA-адаптера, теоретически удешевляя расширение видеосистемы. По составу сигналов видеорасширение близко к разъему VGA Auxiliary Video Connector или VESA Feature Connector.

При всей прогрессивности архитектуры МСА не пользуется популярностью, в частности, из-за полной несовместимости с ISA. МСА находит применение в мощных файл-серверах, где требуется высоконадежный производительный ввод/вывод.

4.3. Локальная шина VLB

Шины ввода/вывода ISA, MCA, EISA имеют низкую производительность, обусловленную их местом в структуре PC. Современные приложения (особенно графические) требуют существенного повышения пропускной способности, которое могут обеспечить современные процессоры. Одним из решений проблемы повышения пропускной способности было применение в качестве шины подключения периферийных устройств локальной шины процессора486. Шину процессора использовали как место подключения встроенной периферии системной платы (контроллер дисков, графического адаптера).

VLB (VESA Local Bus) - стандартизованная 32-битная локальная шина, практически представляющая собой сигналы системной шины процессора 486, выведенные на дополнительные разъемы системной платы. Шина сильно ориентирована на 486 процессор, хотя возможно ее использование и с процессорами класса 386. Для процессоров Pentium была принята спецификация2.0, в которой разрядность шины данных увеличена до 64, но распространения не получила. Аппаратные преобразователи шины новых процессоров в шину VLB, будучи искусственными "наростами" на шинной архитектуре, не прижились, и VLB дальнейшего развития не получила.

Конструктивно VLB-слот аналогичен 16-битному обычному MCA-слоту, но является расширением системного слота шины ISA-16, EISA или MCA, располагаясь позади него вблизи от процессора. Из-за ограниченной нагрузочной способности шины процессора больше трех слотов VLB на системной плате не устанавливают. Максимальная тактовая частота шины - 66 МГц, хотя надежнее шина работает на частоте 33 МГц. При этом декларируется пиковая пропускная способность 132Мбайт/с (33МГц x 4байта), но она достигается только внутри пакетного цикла во время передач данных. Реально в пакетном цикле передача 4 x 4=16 байт данных требует 5 тактов шины (см. п. 4.2.3), так что даже в пакетном режиме пропускная способность составляет 105,6 Мбайт/с, а в обычном режиме (такт на фазу адреса и такт на фазу данных) - всего 66 Мбайт/с, хотя это и значительно больше, чем у ISA. Жесткие требования к временным характеристикам процессорной шины при большой нагрузке (втомчисле, и микросхемами внешнего кэша) могут привести к неустойчивой работе: все три VLB-слота могут использоваться только на частоте 40 МГц, при нагруженной системной плате на 50 МГц может работать только один слот. Шина в принципе допускает и применение активных (Bus-Master) адаптеров, но арбитраж запросов возлагается на сами адаптеры. Обычно шина допускает установку не более двух Bus-Master адаптеров, один из которых устанавливается в "Master"-слот.

Шину VLB обычно использовали для подключения графического адаптера и контроллера дисков. Иногда встречаются системные платы, у которых в описании указано, что они имеют встроенный графический и дисковый адаптер с шиной VLB, но самих слотов VLB нет. Это означает, что на плате установлены микросхемы указанных адаптеров, предназначенные для подключения к шине VLB. Такая неявная шина по производительности, естественно, не уступает шине с явными слотами. С точки зрения надежности и совместимости это даже лучше, поскольку проблемы совместимости карт и системных плат для шины VLB стоят особенно остро.

Назначение контактов шины VLB представлено в табл. 4.4. В названиях сигналов нетрудно узнать сигналы процессора 486, подробно описанного в главе 4.

Ряд В РЯД А
32/64-битный обмен 64-битный обмен 32/64-битный обмен 64-битный обмен
Data0 - 1 Data1 -
Data2 - 2 Data3 -
Data4 - 3 GND -
Data6 - 4 Data5 -
Data8 - 5 Data7 -
GND - 6 Data9 -
Data10 - 7 Data11 -
Data12 - 8 Data13 -
VCC - 9 Data15 -
Data14 - 10 GND -
Data16 - 11 Data17 -
Data18 - 12 VCC -
Data20 - 13 Data19 -
GND - 14 Data21 -
Data22 - 15 Data23 -
Data24 - 16 Data25 -
Data26 - 17 GND -
Data28 - 18 Data27 -
Data30 - 19 Data29 -
VCC - 20 Data31 -
Addr31 Data63 21 Addr30 Data62
GND - 22 Addr28 Data60
Addr29 Data61 23 Addr26 Data58
Addr27 Data59 24 GND -
Addr25 Data57 25 Addr24 Data56
Addr23 Data55 26 Addr22 Data54
Addr21 Data53 27 VCC -
Addr19 Data51 28 Addr20 Data52
GND - 29 Addr18 Data50
Addr17 Data49 30 Addr16 Data48
Addr15 Data47 31 Addr14 Data46
VCC - 32 Addr12 Data44
Addr13 Data45 33 Addr10 Data42
Addr11 Data43 34 Addr8 Data40
Addr9 Data41 35 GND -
Addr 7 Data 39 36 Addr 6 Data 38
Addr 5 Data 37 37 Addr 4 Data 36
GND - 38 Write Back -
Addr3 Data 35 39 Byte Enable 0 Byte Enable 4
Addr 2 Data 34 40 VCC -
Unused LBS64* 41 Byte Enable 1 Byte Enable 5
Reset - 42 Byte Enable 2 Byte Enable 6
Data-Code Status - 43 GND -
Mem-l/0 Status Data 33 44 Byte Enable 3 Byte Enable 7
Wr-Rd Status Data 32 45 Address Data Strobe -
ключ - 46 ключ -
ключ - 47 ключ -
Ready Return - 48 Local Ready -
GND - 49 Local Device -
IRQ 9 - 50 Local Request -
Burst Ready - 51 GND -
Burst Last - 52 Local Bus Grant -
ID 0 - 53 VCC -
ID1 - 54 ID 2 -
GND - 55 IDS -
Local Clock - 56 ID 4 ACK64#
VCC - 57 Unused -
Local Bus Size 16 ^~ 58 Loc/Ext Address Data Strobe "~

4.4. Шина PCI

PCI (Peripheral Component Interconnect) local bus - шина соединения периферийных компонентов. Будучи локальной, эта шина занимает особое место в современной архитектуре PC, являясь мостом (mezzanine bus) между системной шиной процессора и шиной ввода/вывода ISA/EISA или МСА. Шина PCI разрабатывалась в расчете на Pentium-системы, но хорошо сочетается и с процессорами 486. Является четко стандартизованной высокопроизводительной и надежной шиной расширения. В настоящее время действует спецификация PCI 2.1. При частоте шины 33 МГц скорость теоретически достигает 132/264 Мбайт/с для 32/64 бит; при частоте синхронизации 66 МГц - в два раза выше (версия 2.1 допускает частоту до 66 МГц при согласии всех устройств на шине).

Шина является синхронной - фиксация всех сигналов выполняется по положительному перепаду (фронту) сигнала CLK. В каждой транзакции (обмене по шине) участвуют два устройства - инициатор обмена (Initiator или Master, инициирующее устройство, ИУ) и целевое устройство (Target или Slave, ЦУ).

Шина PCI все транзакции трактует как пакетные: каждая транзакция начинается фазой адреса, за которой может следовать одна или несколько фаз данных. Для адреса и данных используются общие мультиплексированные линии AD. Четыре мультиплексированные линии С/ВЕ[3:0] используются для кодирования команд в фазе адреса и разрешения байт в фазе данных. В начале транзакции инициатор активизирует сигнал FRAME#, по шине AD передает целевой адрес, а по линиям С/ВЕ# - информацию о типе транзакции (команде). Адресованное ЦУ отзывается сигналом DEVSEL#, после чего И У может указать на свою готовность к обмену данными сигналом IRDY#. Когда к обмену данными будет готово и ЦУ, оно установит сигнал TRDY#. Данные по шине AD могут передаваться только при одновременном наличии сигналов IRDY# и TRDY#. С помощью этих сигналов ИУ и ЦУ согласуют свои скорости, вводя такты ожидания. На рисунке 9 приведена временная диаграмма обмена, в которой и ИУ, и ЦУ вводят такты ожидания. Если бы они оба ввели сигналы готовности в конце фазы адреса и не снимали их до конца обмена, то в каждом такте после фазы адреса передавались бы по 32 бита данных, что обеспечило бы выход на предельную производительность обмена.

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

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

  • Нормальное завершение выполняется по окончании обмена данными.
  • Завершение по тайм-ауту (Time-out) происходит, когда во время транзакции у инициатора отбирают право на управление шиной (снятием сигнала GNT#) или когда истекает время, указанное в его таймере MLT (целевое устройство слишком медленное или начатая транзакция слишком длинная).
  • Транзакция отвергается (Abort), когда в течение заданного времени инициатор не получает ответа целевого устройства (DEVSEL#).

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

  1. Отключение (Disconnect) - сигнал STOP# вводится во время активности TRDY#. В этом случае транзакция завершается после фазы данных.
  2. Отключение с повтором (Disconnect/Retry) - сигнал STOP# вводится при пассивном состоянии TRDY#, и последняя фаза данных отсутствует. Такое завершение является указанием инициатору на необходимость повтора транзакции.
  3. Отказ (Abort) - сигнал STOP# вводится одновременно со снятием DEVSEL# (в предыдущих случаях во время появление сигнала STOP# сигнал DEVSEL# был активен). В этом случае последняя фаза данных тоже отсутствует, но повтор не запрашивается. Количество фаз (циклов) данных в пакете заранее не определено

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

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

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

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

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

  • 00 - линейное инкрементирование;
  • 01 - чередование адресов с учетом длины строки кэш-памяти (см. п. 4.2.3);
  • 1x - зарезервировано.

В циклах обращения к портам ввода/вывода для адресации любого байта используются все линии 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. На рисунке 10 изображена 32-битная плата максимального размера (Long Card), длина короткой платы (Short Card) - 6,875". Плата может иметь обрамление (скобки), стандартное для конструктива ISA или МСА. Назначение выводов универсального разъема приведено в таблице 4.6, назначение сигналов - в табл. 4.7.

49.jpg
Рисунок 10. Карта расширения для шины PCI

На одной шине PCI может быть не более четырех устройств (следовательно, и слотов). Для подключения к другим шинам применяются специальные аппаратные средства - мосты PCI (PCI Bridge). Главный мост (Host Bridge) используется для подключения PCI к системной шине. Одноранговый мост (Peer-to-Peer Bridge) используется для соединения двух шин PCI. Несколько шин PCI применяются в серверах - это позволяет увеличить число подключаемых устройств. Для подключения шин ISA/EISA используются специальные мосты, входящие в чипсеты системных плат. Каждый мост программируется - ему указываются диапазоны адресов пространств памяти и ввода/вывода, отведенные устройствам его шин. Если адрес ЦУ текущей транзакции на одной шине (стороне) моста относится к шине противоположной стороны, мост перенаправляет транзакцию на соответствующую шину и выполняет действия по согласованию протоколов шин. Таким образом, совокупность мостов PCI выполняет маршрутизацию (routing) обращений по связанным шинам. Считается, что устройство с конкретным адресом может присутствовать только на одной из шин, а на какой именно, "знают" запрограммированные мосты. Решать задачу маршрутизации призван также сигнал DEVSEL#. Обращения, не востребованные абонентами PCI, обычно перенаправляются на шину ISA/EISA.

Ряд В N# РЯД А Ряд В N# РЯД А
-12 В 1 TRST# PRSNT2# 11 Reserved
тек 2 +12 В GND/Ключ
3,3В
12 GND/Ключ
3,3В
GND 3 TMS GND/Ключ
3,3В
13 GND/Ключ
3,3В
TDO 4 TDI Reserved 14 Reserved
+5 В 5 +5 В GND 15 RST#
+5 В 6 INTRA# Clock 16 +VI/0
INTRB# 7 INTRC# GND 17 GNT#
INTRD# 8 +5 В REQ# 18 GND
PRSNT1# 9 Reserved +VI/0 19 Reserved
Reserved 10 +VI/0 AD 31 20 AD 30
AD 29 21 +3,3 В GND/Ключ
50 GND/Ключ
GND 22 AD 28 GND/Ключ
51 GND/Ключ
AD 27 23 AD 26 AD8 52 С/ВЕО#
AD 25 24 GND AD7 53 +3,3 В
+3,3 В 25 AD 24 +3,3 В 54 AD 6
С/ВЕЗ# 26 IDSEL AD5 55 AD 4
AD 23 27 +3,3 В AD3 56 GND
GND 28 AD 22 GND 57 AD 2
AD 21 29 AD 20 AD 1 58 ADO
AD 19 30 GND +VI/0 59 +VI/0
+3.3 В 31 AD 18 АСК64# 60 REQ64#
AD 17 32 AD 16 +5 В 61 +5 В
С/ВЕ2# 33 +3,3 В +5 В 62 +5 В
GND 34 FRAMED Конец 32-битного разъема
IRDY# 35 GND Reserved 63 GND
+3,3 В 36 TRDY# GND 64 C/BE7#
DEVSEL# 37 GND С/ВЕ6# 65 С/ВЕ5#
GND 38 STOP* С/ВЕ4# 66 +VI/0
LOCK* 39 +3,3 В GND 67 PAR64
PERR# 40 SDONE# AD63 68 AD 62
+3,3 В 41 SDOFF^ AD61 69 GND
SERR# 42 GND +VI/0 70 AD 60
+3,3 В 43 PAR AD59 71 AD 58
С/ВЕ1# 44 AD 15 AD57 72 GND
AD 14 45 +3,3 В GND 73 AD 56
GND 46 AD 13 AD55 74 AD 54
AD 12 47 AD 11 AD53 75 +VI/0
AD 10 48 GND GND 76 AD 52
GND/M66EN1 49 AD 9 AD51 77 AD 50
AD 49 78 GND AD 37 87 GND
+VI/0 79 AD 48 +VI/0 88 AD 36
AD 47 80 AD 46 AD 35 89 AD 34
AD 45 81 GND AD 33 90 GND
GND 82

AD 44

GND 91 AD 32
AD 43 83 AD 42 Reserved 92 Reserved
AD 41 84 +VI/0 Reserved 93 GND
GND 85 AD 40 GND 94 Reserved
AD 39 86 AD 38 Конец 64-битного разъема

1 - Сигнал M66EN определен в PCI 2.1.

Сигнал Назначение
AD[31:0] Address/Data - мультиплексированная шина адреса/данных. В начале транзакции передается адрес, в последующих тактах - данные
C/BE[3:0]# Command/Byte Enable - команда/разрешение обращения к байтам. Команда, определяющая тип очередного цикла шины, задается четырехбитным кодом в фазе адреса
FRAME* Кадр. Введением сигнала отмечается начало транзакции (фаза адреса), снятие сигнала указывает на то, что последующий цикл передачи данных является последним в транзакции
DEVSEL# Device Select - устройство выбрано (ответ ЦУ на адресованную ему транзакцию)
IRDY# Initiator Ready - готовность И У к обмену данными
TRDY# Target Ready - готовность ЦУ к обмену данными
STOP# Запрос ЦУ к ИУ на останов текущей транзакции
LOCK# Используется для установки, обслуживания и освобождения захвата ресурса PCI
REQ# Request - запрос от PCI-мастера на захват шины
GNT# Grant - предоставление мастеру управления шиной
PAR Parity - общий бит паритета для линий AD[31:0] и С/ВЕ[3:0]
PERR# ParityError - сигнал об ошибке паритета (от устройства, ее обнаружившего)
PRSNT[1,2]# Present - индикаторы присутствия платы, кодирующие запрос потребляемой мощности
RST# Reset - сброс всех регистров в начальное состояние
IDSEL# Initialization Device Select - выбор устройства в циклах конфигурационного считывания и записи
SERR System Error - системная ошибка. Активизируется любым устройством PCI и вызывает NMI
REQ64# Request 64 bit - запрос на 64-битный обмен
ACK64# Подтверждение 64-битного обмена
INTRA#
INTRB#
INTRC#
INTRD#
Interrupt А, В, С, D - линии запросов прерывания. Циклически сдвигаются в слотах и направляются на доступные линии IRQ. Запрос по низкому уровню допускает разделяемое использование линий
CLK Clock - тактовая частота шины. Должна быть в пределах 20-33 МГц, в PCI 2.1 - до 66 МГц
M66EN 66MHzEriable - разрешение частоты синхронизации до 66 МГц
SDONE Snoop Done - сигнал завершенности цикла слежения для текущей транзакции. Низкий уровень указывает на незавершенность цикла слежения за когерентностью памяти и кэша. Необязательный сигнал, используется только устройствами шины с кэшируемой памятью
SBO# Snoop Backoff - попадание текущего обращения к памяти абонента шины в модифицированную строку кэша. Необязательный сигнал, используется только абонентами шины с кэшируемой памятью при алгоритме обратной записи
TCK Test Clock - синхронизация тестового интерфейса JTAG
TDI Test Data Input - входные данные тестового интерфейса JTAG
TDO Test Data Output - выходные данные тестового интерфейса JTAG
TMS Test Mode Select - выбор режима для тестового интерфейса JTAG
TRST Test Logic Reset - сброс тестовой логики

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

С мостами PCI/ISA связано понятие VGA Palette Snooping, которое обеспечивает исключение из правила однозначной маршрутизации обращений. Графическая карта в компьютере с шиной PCI обычно устанавливается на шину PCI. На VGA-карте имеются регистры палитр (Palette Registers), приписанные к пространству ввода/вывода. Если графическая система содержит еще и карту смешивания сигналов графического адаптера с сигналом "живого видео", перехватывая двоичную информацию о цвете текущего пиксела по шине VESA Feature Connector (снимаемую до регистра палитр), цветовая гамма будет определяться регистром палитр, размещенным на этой дополнительной карте. Возникает ситуация, когда операция записи в регистр палитр должна отрабатываться одновременно и в графическом адаптере (на шине PCI), и в карте видеорасширения, которая часто размещается на шине ISA. В BIOS Setup может присутствовать опция PCI VGA Palette Snoop. При ее разрешении запись в порты ввода/вывода по адресу регистра палитр будет вызывать транзакцию как на шине PCI, так и на шине ISA, чтение же по этим адресам будет выполняться только PCI. Реализация может возлагаться на графическую карту PCI. Для этого она во время записи в регистр палитр фиксирует данные, но сигналы квитирования DEVSEL# и TRDY# не вырабатывает, в результате чего мост распространяет этот неопознанный запрос на шину ISA. В других реализациях мосту явно указывают на данное исключение, и он сам распространяет запись в регистры палитр на шину ISA.

Автоконфигурирование устройств (выбор адресов и прерываний) поддерживается средствами BIOS и ориентировано на технологию Plug and Play. Стандарт PCI определяет для каждого слота конфигурационное пространство размером до 256 8-битных регистров, не приписанных ни к пространству памяти, ни к пространству ввода/вывода. Доступ к ним осуществляется по специальным циклам шины Configuration Read и Configuration Write, вырабатываемым контроллером при обращении процессора к регистрам контроллера шины PCI, расположенным в его пространстве ввода/вывода. После аппаратного сброса (или по включении питания) устройства PCI не отвечают на обращения к пространству памяти и ввода/вывода, они доступны только для операций конфигурационного считывания и записи. В этих операциях устройства выбираются по индивидуальным сигналам IDSEL# и сообщают о потребностях в ресурсах и возможных диапазонах памяти. После распределения ресурсов, выполняемого программой конфигурирования (во время POST), в устройства записываются параметры конфигурирования. Только после этого к устройствам становится возможным доступ по командам обращения к памяти и портам ввода/вывода.

Для ПЗУ расширения BIOS, установленных на картах PCI, принят стандарт, несколько отличающийся от традиционных дополнительных модулей ROM BIOS. Поскольку шина PCI используется не только в PC, в ПЗУ карты может храниться несколько модулей. Тип платформы (процессора) указывается в заголовке модуля, и при инициализации BIOS активизируется нужный. Такой механизм позволяет, например, один и тот же графический адаптер устанавливать и в IBM PC, и в Power PC.

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

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

Слот PCI достаточен для подключения адаптера (в отличие от VLB), на системной плате он может сосуществовать с любой из шин ввода/вывода и даже с VLB. На некоторых системных платах позади одного из слотов PCI имеется разъем Media Bus, на который выводятся сигналы ISA. Он используется для размещения на графическом адаптере PCI звукового чипсета, предназначенного для шины ISA.

Для устройств промышленного назначения в начале 1995 г. был принят стандарт Compact PCI. Шина Compact PCI (cРCI) разрабатывалась на основе спецификации PCI 2.1. Эта шина отличается большим количеством поддерживаемых слотов: 8 против 4. Появились новые 4 пары сигналов запросов и предоставления управления шиной. Шина поддерживает 32-битный и 64-битный обмен (с индивидуальным разрешением байт). При частоте шины 33 МГц максимальная пропускная способность составляет 133 Мбайт/с для 32 бит и 266 Мбайт/с для 64 бит (в середине пакетного цикла). Возможна работа на частоте 66 МГц.

Шина поддерживает спецификацию РnР. Кроме того, в шине возможно применение географической адресации, при этом адрес модуля (на который он отзывается при программном обращении) определяется его положением в каркасе. Для этого на коннекторе J1 имеются контакты GAO...GA4, коммутацией которых на "землю" для каждого слота задается его двоичный адрес. Географическая адресация позволяет переставлять однотипные модули, не заботясь о конфигурировании их адресов (хорошая альтернатива системе РnР - модуль "встанет" всегда в одни и те же адреса, которые без физического вмешательства больше не изменятся).

Конструктивно платы Compact PCI представляют собой еврокарты высотой 3U (100х160 мм) с одним коннектором (J1) или 6U (233х160 мм) с двумя коннекторами (J1 nJ2). Коннекторы - 7-рядные штырьковые разъемы с шагом 2 мм между контактами, на кросс-плате - вилка, на модулях - розетки. Контакты коннекторов имеют разную длину: более длинные контакты цепей питания при установке модуля соединяются раньше, а при вынимании разъединяются позже, чем сигнальные. Такое решение позволяет производить "горячую" замену модулей. Собственно шина использует только один коннектор (J1), причем в 32-битном варианте не полностью - часть контактов может задействовать пользователь, 64-битная шина использует коннектор полностью. Одно посадочное место на кросс-плате резервируется под контроллер шины, на который возлагаются функции арбитража и синхронизации. На его коннекторе шиной используется большее число контактов, чем на остальных. У больших плат коннектор J2 предоставляется пользователю, а между коннекторами J 1 и J2 может устанавливаться 95-контактный коннектор J3. Конструкция коннекторов позволяет для J2 применять специфические модификации (например, с разделяющим экраном и механическими ключами). В шине предусматривается наличие независимых источников питания +5 В, +3,3 В и ±12 В.

На базе шины Compact PCI фирмой National Instruments разработана спецификация PXI (PCI extensions for Instrumentation - расширение PCI для инструментальных систем) в тех же конструктивах. В шине PXI часть контактов, определенных в Compact PCI как свободно используемые, предназначается для дополнительных шин. Шина Trigger Bus (8 линий) звездообразно соединяет слот своего контроллера (первый после системного контроллера PCI) с остальными слотами. Шина позволяет осуществлять синхронизацию разных модулей, что зачастую требуется в измерительных системах. Для прецизионной синхронизации имеется сигнал опорной частоты 10 МГц PXI_CLK, который звездообразно (с одинаковыми задержками распространения сигнала) разводится по слотам. В PXI определены локальные шины, предназначенные для связи соседних пар слотов. Каждая локальная шина имеет 13 линий, которые могут использоваться как для цифровых, так и для аналоговых (до 48 В) сигналов. Локальные шины объединяют смежные слоты попарно (исключая слот системного контроллера), образуя цепочку. Кроме механических и электрических характеристик PXI определяет ПО модулей: основной ОС считается Windows NT/95, и модули должны поставляться с соответствующими драйверами. Это экономит время, необходимое для системной интеграции. Модули PXI совместимы с шиной Compact PCI, и модули Compact PCI - с шиной PXI. Однако все преимущества спецификации реализуются только при установке модулей PXI в шину PXI.

4.5. Магистральный интерфейс AGP

В настоящее время самой быстрой универсальной шиной расширения является PCI, имеющая при тактовой частоте 66 МГц и разрядности 32 бит пиковую пропускную способность 264 Мбайт/с. Одним из главных потребителей пропускной способности шины является графический адаптер. По мере увеличения разрешения и глубины цвета требования к пропускной способности шины, связывающей дисплейный адаптер с памятью и центральным процессором компьютера, повышаются. Одно из решений состоит в уменьшении потока графических данных, передаваемых по шине. Для этого графические платы снабжают акселераторами и увеличивают объем видеопамяти, которой пользуется акселератор при выполнении построений. В результате поток данных в основном циркулирует внутри графической карты, слабо нагружая внешнюю шину. Однако при трехмерных построениях акселератору становится тесно в ограниченном объеме видеопамяти, и его поток данных снова выплескивается на внешнюю шину.

Фирма Intel на базе шины PCI 2.1 разработала новый стандарт подключения графических адаптеров - AGP (Accelerated Graphic Port - ускоренный графический порт). Этот порт представляет собой 32-разрядную шину с тактовой частотой 66 МГц, по составу сигналов (табл. 4.8) напоминающую шину PCI. Чипсет системной платы связывает AGP с памятью и системной шиной процессора, не пересекаясь с "узким местом" - шиной PCI. "Ускоренность" порта обеспечивается следующими факторами:

  • конвейеризацией обращений к памяти;
  • сдвоенной передачей данных;
  • демультиплексированием шин адреса и данных.

Конвейеризацию обращений к памяти иллюстрирует рис. 4.11, где сравниваются обращения к памяти PCI и AGP. В PCI во время реакции памяти на запрос шина простаивает. Конвейерный доступ AGP позволяет в это время передавать следующие запросы, а потом получить поток ответов. AGP предусматривает постановку в очередь до 256 запросов, но при конфигурировании по РnР реальные возможности конкретной системы уточняются (возможности контроллера памяти ограничены). AGP поддерживает две пары очередей для операций записи и чтения из памяти с высоким и низким приоритетами. В передачу данных любого запроса может вмешаться следующий запрос, в том числе запрос в режиме PCI.

РЯД А Ряд В РЯД А Ряд В
Spare 1 12V Vdd 3.3 34 Vdd 3.3
5.0V 2 Spare AD21 35 AD22
5.0V

3

Reserved

AD19

36

AD20

USB+

4

USB-

GND

37

GND

GND

5

GND

AD17

38

AD18

INTB#

6

INTA#

C/BE2#

39

AD16

CLK

7

RST#

Vddq3.3

40

Vddq3.3

RECW

8

GNT#

IRDY#

41

FRAME#

VCC3.3

9

VCC3.3

42

STO

10

ST1

GND

43

GND

ST2

11

Reserved

44

RBF#

12

PIPE#

VCC3.3

45

VCC3.3

GND

13

GND

DEVSEL#

46

TRDY#

Spare

14

Spare

Vddq3.3

47

STOP#

SBAO

15

SBA1

PERR#

48

Spare

VCC3.3

16

VCC3.3

GND

49

GND

SBA2

17

SBA3

SERR#

50

PAR

SBSTB

18

Reserved

C/BE1#

51

AD15

GND

19

GND

Vddq3.3

52

Vddq3.3

SBA4

20

SBA5

AD14

53

AD13

SBA6

21

SBA7

AD12

54

AD11

KEY

22

KEY

GND

55

GND

KEY

23

KEY

AD10

56

AD9

KEY

24

KEY

AD8

57

C/BEO#

KEY

25

KEY

Vddq3.3

58

Vddq3.3

AD31

26

AD30

ADSTBO

59

Reserved

AD29

27

AD28

AD7

60

AD6

VCC3.3

28

VCC3.3

GND

61

GND

AD27

29

AD26

ADS

62

AD4

AD25

30

AD24

AD3

63

AD2

GND

31

GND

Vddq3.3

64

Vddq3.3

ADSTB1

32

Reserved

AD1

65

ADO

AD23

33

C/BE3#

SMBO

66

SMB1

4.5. Магистральный интерфейс AGP 171

410.jpg
Рис. 4.11. Циклы обращения к памяти РС1 и AGP

Сдвоенная передача данных обеспечивает при частоте 66 МГц пропускную способность до 532 Мбайт/с, что для 32-битной шины неожиданно. В AGP кроме "классического" режима, называемого теперь "х1", в котором за один такт синхронизации передается один 4-байтный блок данных, есть режим ".г2", когда блоки данных передаются как по фронту, так и по спаду сигнала синхронизации (как в АТА Ultra DMA). Управление передачей в таком режиме названо Sideband Control (приставка SB к имени сигнала). Заказать режим х2может только графическая карта, если она его поддерживает. При переходе на тактовую частоту 100 МГц пропускная способность повышается до 800 Мбайт/с.

Демультиплексирование (разделение) шины адреса и данныхсделано несколько необычным образом. Демультиплексирование подразумевает наличие двух полноразрядных шин - адреса и данных. Однако такой вариант дорог. Поэтому шину адреса в демультиплексированием режиме AGP представляют 8 линий SBA (Sideband Address), по которым за три такта синхронизации передаются четыре байта адреса, длина запроса (1 байт) и команда (1 байт). За каждый такт передаются по два байта - один по фронту, другой по спаду тактового сигнала. Поддержка демультиплексированной адресации не является обязательной для карты AGP. Требуется также поддержка хост-контроллера. Альтернативным способом подачи адреса является обычный - по мультиплексированной шине AD.

AGP может реализовать всю пропускную способность 64-битной системы памяти компьютера на процессорах Pentium и выше. При этом возможны конкурирующие обращения к памяти как со стороны процессора, так и со стороны мостов шин PCI.

Порт AGP может работать как в своем "естественном" режиме с конвейеризацией и сдвоенными передачами, так и в режиме шины PCI. В конвейеризированном режиме, в котором начало цикла отмечается сигналом Р1РЕ#, возможны только обращения к памяти. В режиме PCI циклы начинаются с сигнала FRAME#, и обращения возможны как к пространству памяти, так и к пространству ввода/вывода и конфигурационному пространству. Кроме собственно AGP, в порте AGP заложены сигналы шины USB, которую предполагается заводить в монитор. Внешне карты с портом AGP похожи на PCI, но у них используется разъем повышенной плотности с "двухэтажным" (как у EISA) расположением ламелей. Сам разъем располагается дальше от задней кромки платы, чем разъем PCI.

Фирма Intel ввела поддержку AGP в чипсеты для процессоров Pentium Pro и Pentium II. Однако нет "противопоказаний" для применения AGP с Pentium.

AGP строился исключительно для графического акселератора. Порт позволяет работать в двух режимах - DMA и исполнения (Executive Mode). В режиме DMA акселератор при вычислениях рассматривает видеопамять как первичную, а когда ее недостаточно, подкачивает данные из основной памяти. При этом для трафика порта характерны длительные блочные передачи. В режиме DIME (Direct Memory Execute) видеопамять и основная память для акселератора равнозначны и располагаются в едином адресном пространстве. Трафик порта при этом будет насыщен короткими произвольными запросами.

Отметим, что многие преимущества AGP носят потенциальный характер и могут быть реализованы лишь при поддержке аппаратных средств графического адаптера и ПО. Что касается большой пропускной способности AGP, то следует напомнить, что в графических адаптерах с памятью WRAM или RDRAM внутренняя скорость обмена данными акселератора с видеопамятью достигает 1,6 Гбайт/с, так что DIME выигрывает только за счет объема доступной памяти.

4.6. Шины PCMCIA (PC Card)

Организация PCMCIA (Personal Computer Memory Card International Association - международная ассоциация производителей карт памяти для персональных компьютеров) ввела ряд стандартов на шины расширения блокнотных компьютеров. Первый из них назывался PCIMCIA. Впоследствии он был переименован в PC Card. Шина PC Card позволяет подключать расширители памяти, модемы, контроллеры дисков и стриммеров, SCSI-адаптеры, сетевые адаптеры и т. д. Недостаточно строгое следование производителей этому стандарту приводит к проблемам совместимости. Назначение контактов разъема шины приведено в табл. 4.9. Шина адресует 64 Мбайт памяти, разрядность данных 16 бит, частота до 33 МГц, DMA и Bus-Mastering не поддерживаются. Теоретически допускается до 4080 слотов PC Card. Шина ориентирована на программное конфигурирование адаптеров. Большинство адаптеров выпускаются с поддержкой РпР и предусматривают "горячее" подключение - интерфейсные карты могут вставляться и выниматься без выключения компьютера. Для этого контакты шин питания имеют большую длину, чем сигнальные, чем обеспечивается их упреждающее подключение и запаздывающее отключение. Два контакта обнаружения карты (Card Detect) короче остальных. Все устройства имеют свою поддержку BIOS. Несмотря на возможность динамического конфигурирования, в некоторых случаях при изменении конфигурации требуется перезагрузка системы.

Различают 4 типа PC Card. Электрически идентичные, они варьируются по габаритам при совместимости снизу вверх (меньшие адаптеры встают в большие гнезда). Адаптер типа 1 имеет размеры 54х85 мм и толщину не более 3,3 мм, типа 2 - 48х75 мм и толщину 5 мм, типа 3 толщину 10,5 мм (однако HDD типа 3 имеет толщину 13 мм!).

Все устройства PC Card имеют минимальное энергопотребление. Существуют предпосылки для введения этой шины как дополнительной в настольные PC.

Шина CardBus с тем же 68-контактным разъемом обеспечивает расширение разрядности данных до 32 бит за счет мультиплексирования шины адреса и данных, обеспечивая обратную совместимость с PC Card.

Контакт Сигнал Контакт Сигнал
1 GND 35 GND
2 Data 3 36 Card Detect 1#
3 Data 4 37 Data 11
4 Data 5 38 Data 12
5 Data 6 39 Data 13
6 Data 7 40 Data 14
7 Card Enable 1# 41 Data 15
8 Addr 10 42 Card Enable 2#
9 Out Enable* 43 Refresh
10 Addr 11 44 RFU (IOR#)
11 Addr 9 45 RFU (IOW#)
12 Addr 8 46 Addr17
13 Addr13 47 Addr 18
14 Addr14 48 Addr 19
15 WrEnable#/Prog# 49 Addr 20
16 Ready/Busyft (IREQ) 50 Addr 21
17 +5 В 51 +5 В
18 Vpp1 52 Vpp2
19 Addr16 53 Addr 22
20 Addr 15 54 Addr 23
21 Addr12 55 Addr 24
22 Addr 7 56 Addr 25
23 Addr 6 57 RFU
24 Addr 5 58 Reset
25 Addr 4 59 WAIT#
26 Addr3 60 RFU (INPACK#)
27 Addr2 61 Register Select*
28 Addr 1 62 BatVDet2 (SPKR#)
29 AddrO 63 BatVDetl (STSCHG#)
30 Data 0 64 Data 8
31 Data 1 65 Data 9
32 Data 2 66 Data 10
33 WRProt/(IOCS16#) 67 Card Detect 2#
34 GND 68 GND

Для карт памяти (динамической, статической, постоянной и флэш-памяти) существует стандарт Miniature Card, представляющий подмножество шины PC Card. Миниатюрная карта размером 33х38х3,5 мм с 60-контактным разъемом через переходный адаптер может устанавливаться и в слот PC Card типа 2.

Дата последнего обновления файла 21.12.2008


Автор Микушин А. В. All rights reserved. 2001 ... 2023

Предыдущие версии сайта:
http://neic.nsk.su/~mavr
http://digital.sibsutis.ru/

Поиск по сайту сервисом Яндекс
Поиск по сайту сервисом ГУГЛ
Об авторе:
к.т.н., доц., Александр Владимирович Микушин

Кандидат технических наук, доцент кафедры САПР СибГУТИ. Выпускник факультета радиосвязи и радиовещания (1982) Новосибирского электротехнического института связи (НЭИС).

А.В.Микушин длительное время проработал ведущим инженером в научно исследовательском секторе НЭИС, конструкторско технологическом центре "Сигнал", Научно производственной фирме "Булат". В процессе этой деятельности он внёс вклад в разработку систем радионавигации, радиосвязи и транкинговой связи.

Научные исследования внедрены в аппаратуре радинавигационной системы Loran-C, комплексов мобильной и транкинговой связи "Сигнал-201", авиационной системы передачи данных "Орлан-СТД", отечественном развитии системы SmarTrunkII и радиостанций специального назначения.

А.В.Микушин является автором 130 научных и научно-методических работ, в том числе 21 монография и 26 учебников и учебных пособий.

Top.Mail.Ru

Яндекс.Метрика