Системные шины и слоты расширения
← 8.2. Центральный процессор | 8.4. Контрольные вопросы и задания → |
Навигация по разделу
8.3.1. Шина расширения ISA
8.3.2. Шина расширения PCI
8.3.3. Шина расширения AGP
8.3.4. Шина расширения PCI Express
Шина – это канал пересылки данных, используемый совместно различными блоками системы. Шина может представлять собой набор проводящих линий, вытравленных на печатной плате, провода, припаянные к выводам разъемов, в которые вставляются печатные платы, либо плоский кабель. Компоненты компьютерной системы физически расположены на одной или нескольких печатных платах, причем их число и функции зависят от конфигурации системы, ее изготовителя, а часто и от поколения микропроцессора. Основными характеристиками шин являются разрядность передаваемых данных и скорость передачи данных. Наибольший интерес вызывают два типа шин – системный и локальный. Системная шина предназначена для обеспечения передачи данных между периферийными устройствами и центральным процессором, а также оперативной памятью. Локальной шиной, как правило, называется шина, непосредственно подключенная к контактам микропроцессора, т.е. шина процессора. Существует несколько стандартов организации системной шины для ПК.
Шина расширения ISA
↑ Наверх
Рис. 8.4. Шина расширения ISA
Шина ISA (Industry Standart Architecture) – шина, применявшаяся с первых моделей PC и ставшая промышленным стандартом (рис. 8.4). В PC моделей XT применялась шина с разрядностью данных 8 бит и адреса – 20 бит. В моделях AT шина была расширена до 16 бит данных и 24 бита адреса, какой она остается до сих пор. Конструктивно шина выполнена в виде двух слотов. Подмножество ISA-8 использует только первый 62-контактный слот, в ISA-16 применяется дополнительный 36-контактный слот. Тактовая частота – 8 МГц. Скорость передачи данных – до 16 Мбайт\с. Обладает хорошей помехоустойчивостью. Шина обеспечивает своим абонентам возможность отображения 8- или 16-битных регистров на пространство ввода-вывода и памяти. Диапазон доступных адресов памяти ограничен областью UMA (Unified Memory Architecture – унифицированная архитектура памяти), но для шины ISA-16 специальными опциями BIOS Setup может быть разрешено и пространство в области между15-м и 16-м мегабайтом памяти (правда при этом компьютер не сможет использовать более 15 Мбайт ОЗУ). Диапазон адресов ввода-вывода сверху ограничен количеством используемых для дешифрации бит адреса, нижняя граница ограничена областью адресов 0-FFh, зарезервированных под устройства системной платы. В PC была принята 10-битная адресация ввода-вывода, при которой линии адреса A[15:10] устройствами игнорировались. Таким образом, диапазон адресов устройств шины ISA ограничивается областью 100h-3FFh, т. е. всего 758 адресов 8-битных регистров. На некоторые области этих адресов претендуют и системные устройства. Впоследствии стали применять и 12-битную адресацию (диапазон 100h-FFFh), но при ее использовании всегда необходимо учитывать возможность присутствия на шине и старых 10-битных адаптеров, которые «отзовутся» на адрес с подходящими ему битами A[9:0] во всей допустимой области 4 раза. В распоряжении абонентов шины ISA-8 может быть до шести линий запросов прерываний IRQ (Interrupt Request), для ISA-16 их число достигает 11. Заметим, что при конфигурировании BIOS Setup часть из этих запросов могут отобрать устройства системной платы или шина PCI. Абоненты шины могут использовать до трех 8-битных каналов DMA (Direct Memory Access – прямой доступ к памяти), а на 16-битной шине могут быть доступными еще три 16-битных канала. Сигналы 16-битных каналов используются и для получения прямого управления шиной устройством Bus-Master. При этом канал DMA используется для обеспечения арбитража управления шиной, а адаптер Bus-Master формирует все адресные и управляющие сигналы шины, не забывая «отдать» управление шиной процессору не более чем через 15 мкс (чтобы не нарушить регенерацию памяти). Все перечисленные ресурсы системной шины должны быть бесконфликтно распределены между абонентами. Бесконфликтность подразумевает следующее:
- каждый абонент должен при операциях чтения управлять шиной данных (выдавать информацию) только по своим адресам или по обращению к используемому им каналу DMA. Области адресов для чтения не должны пересекаться. «Подсматривать» не ему адресованные операции записи не возбраняется;
- назначенную линию запроса прерывания IRQx абонент должен держать на низком уровне в пассивном состоянии и переводить в высокий уровень для активации запроса. Неиспользуемыми линиями запросов абонент управлять не имеет права, они должны быть электрически откоммутированы или подключаться к буферу, находящемуся в третьем состоянии. Одной линией запроса может пользоваться только одно устройство. Такая нелепость (с точки зрения схемотехники ТТЛ) была допущена в первых PC и в жертву совместимости старательно тиражируется уже много лет.
Задача распределения ресурсов в старых адаптерах решалась с помощью джамперов, затем появились программно-конфигурируемые устройства, которые практически вытеснены автоматически конфигурируемыми платами PnP. Для шин ISA ряд фирм выпускает карты-прототипы (Protitype Card), представляющие собой печатные платы полного или уменьшенного формата с крепежной скобой. На платах установлены обязательные интерфейсные цепи – буфер данных, дешифратор адреса и некоторые другие. Остальное поле платы представляет собой «слепыш», на котором разработчик может разместить макетный вариант своего устройства. Эти платы удобны для макетной проверки нового изделия, а также для монтажа единичных экземпляров устройства, когда разработка и изготовление печатной платы нерентабельно. С появлением 32-битных процессоров делались попытки расширения разрядности шины, но все 32-битные шины ISA не стандартизованы, кроме шины EISA.
С появлением 32-разрядных микропроцессоров 80386 (версия DX) фирмами Compaq, NEC и рядом других фирм была создана 32-разрядная шина EISA, полностью совместимая с ISA. Шина EISA (Extended ISA) – жестко стандартизованное расширение ISA до 32 бит. Конструктивное исполнение обеспечивает совместимость с ней и обычных ISA-адаптеров. Узкие дополнительные контакты расширения расположены между ламелями разъема ISA и ниже таким образом, что адаптер ISA, не имеющий дополнительных ключевых прорезей в краевом разъеме, не достает до них. Установка карт EISA в слоты ISA недопустима, поскольку ее специфические цепи попадут на контакты цепей ISA, в результате чего системная плата окажется неработоспособной. Расширение шины касается не только увеличения разрядности данных и адреса: для режимов EISA используются дополнительные управляющие сигналы, обеспечивающие возможность применения более эффективных режимов передачи. В обычном (не пакетном) режиме передачи за каждую пару тактов может быть передано до 32 бит данных (один такт на фазу адреса, один – на фазу данных). Максимальную производительность шины реализует пакетный режим (Burst Mode) – скоростной режим пересылки пакетов данных без указания текущего адреса внутри пакета. Внутри пакета очередные данные могут передаваться в каждом такте шины, длина пакета может достигать 1024 байт. Шина предусматривает и более производительные режимы DMA, при которых скорость обмена может достигать 33 Мбайт/с. Линии запросов прерываний допускают разделяемое использование, причем сохраняется и совместимость с ISA-картами: каждая линия запроса может программироваться на чувствительность как по перепаду, как в ISA, так и по низкому уровню. Шина допускает потребление каждой картой расширения мощности до 45 Вт, но полную мощность, как правило, не потребляет ни один адаптер. Каждый слот (максимум – 8) и системная плата могут иметь селективное разрешение адресации ввода-вывода и отдельные линии запроса и подтверждения управления шиной. Арбитраж запросов выполняет устройство ISP (Integrated System Peripheral). Обязательной принадлежностью системной платы с шиной EISA является энергонезависимая память конфигурации NVRAM, в которой хранится информация об устройствах EISA для каждого слота. Формат записей стандартизован, для модификации конфигурационной информации применяется специальная утилита ECU (EISA Configuration Utility). Архитектура позволяет при использовании программно-конфигурируемых адаптеров автоматически разрешать конфликты использования системных ресурсов программным путем, но в отличие от спецификации PnP, шина EISA не допускает динамического реконфигурирования. Все изменения конфигурации возможны только в режиме конфигурирования, после выхода из которого необходима перезагрузка компьютера. Изолированный доступ к портам ввода-вывода каждой карты во время конфигурирования обеспечивается просто: сигнал AEN, разрешающий декодирование адреса в цикле ввода-вывода, на каждый слот приходит по отдельной линии AENx. На некоторых идеях конфигурирования шины EISA выросла спецификация PnP для шины ISA. Формат конфигурационных записей ESCD во многом напоминает формат NVRAM EISA. Таким образом, EISA – дорогая, но оправдывающая себя архитектура, применяющаяся в многозадачных системах, на файл-серверах и везде, где требуется высокоэффективное расширение шины ввода-вывода.
Шина расширения PCI
↑ Наверх
Рис. 8.5. Шина расширения PCI
Шина PCI (Peripheral Component Interconnect bus – взаимосвязь периферийных компонентов) – шина соединения периферийных компонентов. Была анонсирована компанией Intel в июне 1992 года на выставке PC Expo. Эта шина занимает особое место в современной PC-архитектуре (mezzanine bus), являясь мостом между локальной шиной процессора и шиной ввода-вывода ISA/EISA или MCA. Шина разрабатывалась в расчете на Pentium-системы, но хорошо сочетается и с 486 процессорами, а также с не-Intel’овскими процессорами. Шина PCI является четко стандартизованной высокопроизводительной шиной расширения ввода-вывода. Это мультиплексная 32-разрядная шина, но существует и 64-разрядная версия. Частота шины 20...33 МГц. Стандарт PCI 2.1 допускает и частоту 66 МГц. Теоретическая максимальная скорость 132/264 Mбайт/с для 32/64 бит при 33 МГц и 528 Мбайт/с при 66 МГц. Слот PCI достаточен для подключения адаптера (в отличие от VLB), на системной плате он может сосуществовать с любой из шин ввода-вывода и даже с VLB (хотя в этом и нет необходимости). На одной шине PCI может быть не более четырех устройств (слотов). Мост шины PCI (PCI Bridge) – это аппаратные средства подключения шины PCI к другим шинам. Host Bridge – главный мост – используется для подключения PCI к системной шине (шине процессора или процессоров). Peer-to-Peer Bridge – одноранговый мост – используется для соединения двух шин PCI. Две и более шины PCI применяются в мощных серверных платформах – дополнительные шины PCI позволяют увеличить число подключаемых устройств. Автоконфигурирование устройств (выбор адресов, запросов прерывания) поддерживается средствами BIOS и ориентировано на технологию Plug and Play. Стандарт PCI определяет для каждого слота конфигурационное пространство размером до 256 8-битных регистров, не приписанных ни к пространству памяти, ни к пространству ввода-вывода. Доступ к ним осуществляется по специальным циклам шины Configuration Read и Configuration Write, вырабатываемым контроллером при обращении процессора к регистрам контроллера шины PCI, расположенным в его пространстве ввода-вывода. В состав шины PCI введены сигналы для тестирования адаптеров по интерфейсу JTAG. На системной плате эти сигналы не всегда задействованы, но могут организовывать логическую цепочку тестируемых адаптеров. Шина PCI трактует все обмены как пакетные: каждый кадр начинается фазой адреса, за которой может следовать одна или несколько фаз данных. Количество фаз данных в пакете неопределенно, но ограничено таймером, определяющим максимальное время, в течение которого устройство может пользоваться шиной. Каждое устройство имеет собственный таймер, значение для которого задается при конфигурировании устройств шины. В каждом обмене участвуют два устройства – инициатор обмена (Initiator) и целевое уст-ройство (Target). Арбитражем запросов на использование шины занимается специальный функциональный узел, входящий в состав чипсета системной платы. Для согласования быстродействия устройств-участников обмена предусмотрены два сигнала готовности IRDY# и TRDY#. Для адреса и данных на шине используются общие мультиплексированные линии AD. Четыре мультиплексированных линии C/BE[3:0] используются для кодирования команд в фазе адреса и разрешения байт в фазе данных. Шина имеет версии с питанием 5 В и 3,3 В. Также существует универсальная версия (с переключением линий +V I/O c 5 В на 3,3 В). Ключами являются пропущенные ряды контактов 12, 13 и 50, 51. Для 5-вольтного слота ключ расположен на месте контактов 50, 51; для 3-вольтного – 12, 13; для универсального – два ключа: 12, 13 и 50, 51. Ключи не позволяют установить карту в слот с неподходящим напряжением питания. Слот 32-битный заканчивается контактами A62/B62, 64-битный – A94/B94. В отличие от адаптеров остальных шин, компоненты карт PCI расположены на левой поверхности плат. По этой причине крайний PCI-слот обычно разделяет использование посадочного места адаптера с соседним ISA-слотом (Shared slot). Шина PCI являлась до последнего времени второй (после ISA) по популярности применения. В современных системах происходит отказ от шин ISA, и шина PCI выходит на главные позиции. Некоторые фирмы для этой шины выпускают карты-прототипы, но, конечно же, доукомплектовать их периферийным адаптером или устройством собственной разработки гораздо сложнее, чем карту ISA. Здесь сказываются и более сложные протоколы, и более высокие частоты (8 МГц у шины ISA против 33 или 66 МГц у шины PCI). Также шина PCI обладает плохой помехоустойчивостью, поэтому для построения измерительных систем и промышленных компьютеров используется все еще относительно редко. На некоторых системных (материнских) платах имеется небольшой разъем, который называется Media Bus. Он расположен позади разъема шины PCI одного из слотов. На этот разъем выводятся сигналы обычной шины ISA, и предназначен он для того, чтобы на графическом адаптере с шиной PCI можно было разместить и недорогой чипсет звуковой карты, предназначенный для шины ISA. Этот разъем, а тем более и такие комбинированные аудио-видеокарты, широкого распространения не получили.
Шина расширения AGP
↑ Наверх
Рис. 8.6. Шина расширения AGP
Стандарт на AGP (Accelerated Graphics Port – ускоренный графический порт) был разработан фирмой Intel, чтобы, не меняя сложившийся стандарт на шину PCI, ускорить ввод-вывод данных в видеокарту и, кроме этого, увеличить производительность компьютера при обработке трехмерных изображений без установки дорогостоящих двухпроцессорных видеокарт с большими объемами как видеопамяти, так и памяти под текстуры, z-буфер и т.п. Этот стандарт был поддержан большим количеством фирм, входящих в AGP Implementors Forum, организацию, созданную на добровольной основе для внедрения этого стандарта. Поэтому развитие AGP было довольно стремительным. Стартовая версия стандарта – AGP 1.0. Конструктивное исполнение представляет собой отдельный слот с питанием 3,3 В, напоминающий слот PCI, но на самом деле никак с ним не совместимом. Обычная видеокарта не может быть установлена в этот слот и наоборот. Скорость передачи данных до 532 Мбайт/с обусловлена частотой шины AGP до 132 МГц, отсутствием мультиплексирования шины адреса и данных (на PCI по одним и тем же физическим линиям сначала выдается адрес, а потом данные). AGP имеет частоту шины 66 МГц и ту же разрядность и в стандартном режиме (точнее – режим «1x») может пропустить 266 Мбайт/с. Для повышения пропускной способности шины AGP в стандарт заложена возможность передавать данные, используя как передний, так и задний фронт синхросигнала – режим 2x. В режиме 2x пропускная способность шины 532 Мбайт/с. При достижении частоты шины в 100 МГц скорость обмена возрастет до 800 Мбайт/с. Кроме «классического» способа адресации, как на PCI, в AGP может использоваться режим sideband addressing, называемый «адресацией по боковой полосе». При этом используются специальные, отсутствующие в PCI, сигналы SBA (SideBand Addressing). В отличие от шины PCI на AGP присутствует конвеерная обработка данных. Основная обработка трехмерных изображений выполняется в основной памяти компьютера как центральным процессором, так и процессором видеокарты. Механизм доступа процессора видеокарты к памяти получил название DIrect Memory Execute (DIME – непосредственное выполнение в памяти). Следует упомянуть, что сейчас не все видеокарты стандарта AGP поддерживают этот механизм. Некоторые карты пока имеют только механизм, аналогичный bus master на шине PCI. Не следует путать этот принцип с UMA, который используется в недорогих видеокартах, размещенных, как правило, на материнской плате.