Шины персональных компьютеров ЭВМ серии PC/AT
(ISA, EISA, MCA, PCI)
Шина ISA (Industrial Standard Architecture)
Шина, как известно, представляет из себя, собственно, набор проводов (линий), соединяющий различные компоненты компьютера для подвода к ним питания и обмена данными. В "минимальной комплектации" шина имеет три типа линий:
l линии управления;
l линии адресации;
l линии данных.
Устройства, подключенные к шине, делятся на две основных категории – bus masters и bus slaves. Bus masters – это устройства, способные управлять работой шины, т.е инициировать запись/чтение и т.д. Bus slaves – соответственно, устройства, которые могут только отвечать на запросы.
Рис. 15.5.1. Архитектура компьютера с шиной ISA
Компания IBM в 1981 представила новую шину для использования в компьютерах серии PC/XT (рис. 15.5.1) Шина была крайне проста по дизайну, содержала 53 сигнальных линии и 8 линий питания и представляла собой синхронную 8-битную шину с контролем четности и двухуровневыми прерываниями (trigger-edge interrupts), при использовании которых устройства запрашивают прерывания, изменяя состояние линии соответствующего IRQ с 0 на 1 или обратно. Такая организация запросов прерываний позволяет использовать каждое прерывание только одному устройству. Кроме того, шина не поддерживала дополнительных bus masters, и единственными устройствами, управляющими шиной, были процессор и контроллер DMA на материнской плате.
62-контактный слот включал 8 линий данных, 20 линий адреса (А0-А19), 6 линий запроса прерываний (IRQ2-IRQ7). Таким образом, объем адресуемой памяти составлял 1 Мбайт, и при частоте шины 4.77 МГц пропускная способность достигала 1.2 Мбайта/сек.
Недостатки шины, вытекающие из простоты конструкции, очевидны. Поэтому для использования в компьютерах IBM-AT («Advanced Technology») в 1984 году была представлена новая версия шины, впоследствии названной ISA. Сохраняя совместимость со старыми 8-битными платами расширения, новая версия шины обладала рядом существенных преимуществ, как то:
l добавление 8 линий данных позволило вести 16-битный обмен данными;
l добавление 4 линий адреса позволило увеличить максимальный размер адресуемой памяти до 16 МВ;
l были добавлены 5 дополнительных trigger-edged линий IRQ;
l была реализована частичная поддержка дополнительных bus masters;
l частота шины была увеличена до 8 MHz;
l пропускная способность достигла 5.3 МВ/сек.
Реализация bus mastering не была особенно удачной, поскольку, например, запрос на освобождение шины («Bus hang-off») к текущему bus master обрабатывался в несколько тактов, к тому же каждый master должен был периодически освобождать шину, чтобы дать возможность провести обновление памяти (memory refresh), или сам проводить обновление. Для обеспечения обратной совместимости с 8-битными платами большинстиво новых возможностей было реализовано путем добавления новых линий. Так как АТ был построен на основе процессора Intel 80286, который был существенно быстрее, чем 8088, пришлось добавить генератор состояний ожидания (wait-state generator). Для обхода этого генератора используется свободная линия (контакт В8 NOWS-«No Wait State») исходной 8-битной шины. При установке этой линии в 0 такты ожидания пропускаются. Использование в качестве NOWS линии исходной шины позволяло разработчикам делать как 16-битные, так и 8-битные «быстрые» платы.
Новый слот содержал 4 новых адресных линии (LA20-LA23) и копии трех младших адресных линий (LA17-LA19). Необходимость в таком дублировании возникла из-за того, что адресные линии ХТ были линиями с задержкой (latched lines), и эти задержки приводили к снижению быстродействия периферийных устройств. Использование дублирующего набора адресных линий позволяло 16-битной карте в начале цикла определить, что к ней обращаются, и послать сигнал о том, что она может осуществлять 16-битный обмен. На самом деле, это ключевой момент в обеспечении обратной совместимости. Если процессор пытается осуществить 16-битный доступ к плате, он сможет это сделать только в том случае, если получит от нее соответствующий отклик IO16. В противном случае чипсет инициирует вместо одного 16-битного цикла два 8-битных. Однако адресных линий без задержки было всего 7, поэтому платы, использующие диапазон адресов меньший, чем 128 Кбайт, не могли определить, находится ли переданный адрес в их диапазоне адресов, и, соответственно, послать отклик IO16. Таким образом, многие платы, в том числе платы EMS, не могли использовать 16-битный обмен.
Несмотря на отсутствие официального стандарта и технических «изюминок» шина ISA превосходила потребности среднего пользователя образца 1984 года, а «засилье» IBM AT на рынке массовых компьютеров привело к тому, что производители плат расширения и клонов AT приняли ISA за стандарт. Такая популярность шины привела к тому, что слоты ISA до сих пор присутствуют на всех системных платах, и платы ISA до сих производятся.
Шина EISA (Extended Industry Standard Architecture)
Шина EISA явилась «асимметричным ответом» производителей клонов РС на попытку IBM поставить рынок под свой контроль. В сентябре 1988 года Compaq, Hewlett-Packard, Zenith, Olivetti, NEC и Epson представили 32-разрядное расширение шины ISA с полной обратной совместимостью. Основные характеристики новой шины были следующими:
l 32-разрядная передача данных;
l максимальная пропускная способность – 33 МВ/сек;
l 32-разрядная адресация памяти позволяла адресовать до 4 GB (как и в расширении ISA, новые адресные линии были без задержки);
l поддержка multiply bus master;
l возможность задания уровня двухуровневого (edge-triggered) прерывания (что позволяло нескольким устройствам использовать одно прерывание, как и в случае многоуровневого (level-triggered) прерывания);
l автонастройка плат расширения.
Как и в случае 16-разрядного расширения, новые возможности обеспечивались путем добавления новых линий. Поскольку дальше удлинять разъем ISA было некуда, разработчики нашли оригинальное решение: новые контакты были размещены между контактами шины ISA и не были доведены до края разъема. Специальная система выступов на разъеме и щелей в EISA-картах позволяла им глубже заходить в разъем и подсоединяться к новым контактам. Поскольку на данный момент шина EISA практически вымерла, приводить значения контактов разъема не имеет смысла. Стоит отметить лишь две новых сигнальных линии – EX32 и EX16, которые определяли, что bus slave поддерживает соответственно 32- и 16-разрядный цикл EISA. Если ни один из этих сигналов не был получен в начале цикла шины, выполнялся цикл ISA.
Важной особенностью шины являлась возможность для любого bus master обращаться к любому устройству памяти или периферийному устройству, даже если они имели разные разряды шины. Говоря о полной обратной совместимости с ISA, следует отметить, что ISA-карты, естественно, не поддерживали разделение прерываний, даже будучи вставленными в EISA-коннектор. Что касается поддержки multiply bus master, то она представляла собой улучшенную и дополненную версию таковой для ISA. Также присутствовали четыре уровня приоритета: схемы обновления памяти, DMA, процессор, адаптеры шины и арбитр шины EISA – периферийный контроллер (ISP – Integrated System Peripheral). Кроме этого, наличествовало еще одно устройство – Intel's Bus Master Interface Chip (BMIC), которое следило за тем, чтобы master "не засиживался" на шине. Через определенное количество тактов master «снимался» с шины и генерировалось немаскируемое прерывание.
Шина MCA (Micro Channel Architecture)
В 1987 году компания IBM прекратила выпуск серии РС/АТ и начала производство линии PS/2. Одним из главных отличий нового поколения персональных компьютеров была новая системная шина – Micro Channel Architecture (MCA) (рис. 15.5.2).
Рис. 15.5.2 Архитектура компьютера с шиной MCA
Эта шина не обладала обратной совместимостью с ISA, но зато содержала ряд передовых для своего времени решений:
l 8/16/32-разрядная передача данных;
l 20 МВ/сек пропускная способность при частоте шины 10 MHz (в 4 раза больше,чем у ISA) при максимально возможной пропускной способности шины 160 МВ/сек (больше, чем у PCI, правда, не все карты способны работать с такой скоростью);
l Поддержка нескольких bus master. Любое устройство, подключенное к шине, может получить право на ее исключительное использование для передачи или приема данных с другого соединенного с ней устройства. Такое устройство, по сути, представляет собой специализированный процессор, который может осуществлять обмен данными по шине независимо от основного процессора. Работу устройств координирует устройство, называемое арбитром шины (CACP – Central Arbitration Control Point). При распределении функций управления шиной арбитр исходит из уровня приоритета, которым обладает то или иное устройство или операция. Всего таких уровней четыре (в порядке убывания):
– регенерация системной памяти;
– прямой доступ к памяти (DMA);
– платы адаптеров.
– процессор.
l Если устройству необходим контроль над шиной, оно сообщает об этом арбитру. При первой возможности (после обработки запросов с более высокими приоритетами) арбитр передает ему управление шиной. Вне системы приоритетов обслуживаются только немаскируемые прерывания (NMI – non-maskable interrupts), при возникновении которых управление немедленно передается процессору;
l 11-уровневые прерывания (11-level triggered interrupts) вместо двухуровневых (trigger-edged) у ISA позволяли делить (share) прерывания между устройствами, что позволило излечить одну из болезней первых PC – нехватку линий IRQ;
l 24 или 32 адресных линии позволяли адресовать до 4 GB памяти;
l автоматическое конфигурирование устройств существенно упростило установку новых плат. У компьютеров с шиной MCA нет никаких перемычек или переключателей – ни на системной плате, ни на платах расширения. Вместо использования адресов портов ввода-вывода, центральный процессор назначает их при старте системы, базируюсь на информации, считанной из ROM карты;
l асинхронный протокол передачи данных снижал вероятность возникновения конфликтов и помех между устройствами, подключенными к шине.
Для шины MCA было разработано 6 типов слотов:
l 16-разрядные (основные слоты, которые устанавливается во все компьютеры с шиной МСА);
l 32-разрядные (устанавливаются на компьютерах с шиной МСА и процессором 386DX и выше. Так же, как и в ISA, являются только расширением основного слота, но, поскольку разрабатывались одновременно с шиной, конструкция получилась более логичной);
l 16 и 32-разрядные с дополнениями для плат памяти (устанавливаются в некоторых компьютерах с шиной МСА, например, PS/2 моделей 70 и 80, имеют 8 дополнительных контактов для работы с платами расширения памяти, расположенных в самом начале разъема, обращенном к задней стенке компьютера, перед основными контактами);
l 16 и 32-разрядные с дополнениями для видеоадаптеров (предназначены для увеличения быстродействия видеосистемы. Обычно в компьютере с шиной МСА установлен один такой слот. 10 дополнительных контактов также расположены в начале разъема и позволяют плате видеоадаптера получить доступ к встроенной в системную плату схеме VGA).
На данный момент шина практически не используется и ссылки на архитектуру МСА практически не встречаются даже на сайте IBM (в настоящее время архитектура МСА используется IBM только в RISC-системах, например, сервер RS/6000 построен на базе шины МСА с пропускной способностью 160 МВ/сек).
Шина PCI (Peripheral Component Interconnect bus)
Разработка шины PCI началась весной 1991 года как внутренний проект корпорации Intel (Release 0.1). Специалисты компании поставили перед собой цель разработать недорогое решение, которое бы позволило полностью реализовать возможности нового поколения процессоров 486/Pentium/P6. Особенно подчеркивалось, что разработка проводилась «с нуля», а не была попыткой установки новых «заплат» на существующие решения. В результате шина PCI появилась в июне 1992 года (R1.0). Разработчики Intel отказались от использования шины процессора и ввели еще одну «антресольную» (mezzanine) шину (рис. 15.5.3).
Рис. 15.5.3. Архитектура компьютера с шиной PCI
Благодаря такому решению шина получилась, во-первых, процессоро-независимой (в отличие от VLbus), а во-вторых, могла работать параллельно с шиной процессора, не обращаясь к ней за запросами (рис.15.5.3). Например, процессор работает с кэшем или системной памятью, в то время как по сети на винчестер пишется информация. Кроме того, стандарт шины был объявлен открытым и передан PCI Special Interest Group, которая продолжила работу по совершенствованию шины.
Основные возможности шины следующие:
l Синхронный 32-х или 64-х разрядный обмен данными (64-разрядная шина в настоящее время используется только в Alpha-системах и серверах на базе процессоров Intel Xeon, но, в принципе, за ней будущее). При этом для уменьшения числа контактов (и стоимости) используется мультиплексирование, то есть адрес и данные передаются по одним и тем же линиям;
l Поддержка 5В и 3.3В логики. Разъемы для 5В и 3.3В плат различаются расположением ключей (рис. 15.5.4);
Рис. 15.5.4. Разъемы для 5В и 3.3В плат
Существуют и универсальные платы, поддерживающие оба напряжения. Заметим, что частота 66MHz поддерживается только 3.3В логикой.
Частота работы шины 33MHz или 66MHz (в версии 2.1) позволяет обеспечить широкий диапазон пропускных способностей (с использованием пакетного режима):
132 МВ/сек при 32-bit/33MHz;
264 MB/сек при 32-bit/66MHz;
264 MB/сек при 64-bit/33MHz;
528 МВ/сек при 64-bit/66MHz.
При этом для работы шины на частоте 66MHz необходимо, чтобы все периферийные устройства работали на этой частоте.
l Полная поддержка multiply bus master (например, несколько контроллеров жестких дисков могут одновременно работать на шине);
l Поддержка write-back и write-through кэша;
l Автоматическое конфигурирование карт расширения при включении питания;
l Спецификация шины позволяет комбинировать до восьми функций на одной карте;
l Шина позволяет устанавливать до 4 слотов расширения, однако возможно использование моста PCI-PCI для увеличения количества карт расширения;
l PCI-устройства оборудованы таймером, который используется для определения максимального промежутка времени, в течении которого устройство может занимать шину;
При разработке шины в ее архитектуру были заложены передовые технические решения, позволившие повысить пропускную способность.
Шина поддерживает метод передачи данных, называемый «linear burst» (метод линейных пакетов). Этот метод предполагает, что пакет информации считывается (или записывается) "одним куском", то есть адрес автоматически увеличивается для следующего байта. Естественным образом при этом увеличивается скорость передачи собственно данных за счет уменьшения числа передаваемых адресов.
Спецификация шины PCI определяет три типа ресурсов: два обычных (диапазон памяти и диапазон ввода/вывода, как их называет компания Microsoft) и configuration space – «конфигурационное пространство».
|
|
|
Рис. 15.5.5. Конфигурационное пространство шины PCI
Конфигурационное пространство состоит из трех регионов (рис. 15.5.5):
l заголовка, независимого от устройства (device-independent header region);
l региона, определяемого типом устройства (header-type region);
l региона, определяемого пользователем (user-defined region).
В заголовке содержится информация о производителе и типе устройства – поле Class Code (сетевой адаптер, контроллер диска, мультимедиа и т.д.) и прочая служебная информация. Следующий регион содержит регистры диапазонов памяти и ввода/вывода, которые позволяют динамически выделять устройству область системной памяти и адресного пространства. В зависимости от реализации системы конфигурация устройств производится либо BIOS (при выполнении POST – power-on self test), либо программно. Базовый регистр expansion ROM аналогично позволяет отображать ROM устройства.