- создание нового поколения процессоров типа Intel 80486, работающих на частотах до 66 MHz;
- увеличение емкости жестких дисков и создание более быстрых контроллеров;
- разработка и активное продвижение на рынок графических интерфейсов пользователя (типа Windows или OS/2) привели к созданию новых графических адаптеров, поддерживающих более высокое разрешение и большее количество цветов (VGA и SVGA).
Очевидным выходом из создавшегося положения является следующий: осуществлять часть операций обмена данными, требующих высоких скоростей, не через шину ввода/вывода, а через шину процессора, примерно так же, как подключается внешний кэш. Такая конструкция получила название локальной шины (Local Bus). Рисунки 1 и 2наглядно демонстрируют различие между обычной архитектурой и архитектурой с локальной шиной.
Локальная шина не заменяла собой прежние стандарты, а дополняла их. Основными шинами в компьютере по-прежнему оставались ISA или EISA, но к ним добавлялись один или несколько слотов локальной шины. Первоначально эти слоты использовались почти исключительно для установки видеоадаптеров, при этом к 1992 году было разработано несколько несовместимых между собой вариантов локальных шин, исключи-тельные права на которые принадлежа-ли фирмам-изготови-телям. Естественно, такая неразбериха сдерживала распро-странение локальных шин, поэтому VESA (Video Electronic Standard Association) - ассоциация, представ-ляющая более 100 компаний – предло-жила в августе 1992 года свою спецификацию локальной шины.
Локальная шина VESA (VL-bus)
Основные характеристики VL-bus таковы.
- Поддержка процессоров серий 80386 и 80486. Шина разработана для использования в однопроцессорных системах, при этом в спецификации предусмотрена возможность поддержки х86-несовместимых процессоров с помощью моста (bridge chip).
- Максимально число bus master - 3 (не включая контроллер шины). При необходимости возможна установка нескольких подсистем для поддержки большего числа masterов.
- Несмотря на то, что изначально шина была разработана для поддержки видеоконтроллеров, возможна поддержка и других устройств (например, контроллеров жесткого диска).
- Стандарт допускает работу шины на частоте до 66 MHz, однако электрические характеристики разъема VL-bus ограничивают ее до 50 MHz (это ограничение, естественно, не относится к интегрированным в материнскую плату устройствам).
- Двунаправленная (bi-directional) 32-разрядная шина данных поддерживает и 16-разрядный обмен. В спецификацию заложена возможность 64-разрядного обмена.
- Поддержка DMA обеспечивается только для bus masters. Шина не поддерживает специальных "инициаторов" DMA.
- Максимальная теоретическая пропускная способность шины - 160 МВ/сек (при частоте шины 50 MHz), стандартная - 107 МВ/сек при частоте 33 MHz.
- Поддерживается пакетный режим обмена (для материнских плат 80486, поддерживающих этот режим). 5 линий используется для идентификации типа и скорости процессора, сигнал Burst Last (BLAST#) используется для активизации этого режима. Для систем, не поддерживающих этот режим, линия устанавливается в 0.
- Шина использует 58-контактный разъем МСА. Максимально поддерживается 3 слота (на некоторых 50-мегагерцовых шинах возможна установка только 1 слота).
- Слот VL-bus устанавливается в линию за слотами ISA/EISA/MCA, поэтому VL-платам доступны все линии этих шин.
- Поддерживается как интегрированный кэш процессора, так и кэш на материнской плате.
- Напряжение питания - 5 В. Устройства с уровнем выходного сигнала 3.3 В поддерживаются при условии, что они могут работать с уровнем входного сигнала 5 В.
Шина VL-bus явилась огромным шагом вперед по сравнению с ISA как по производительности, так и по дизайну. Одним из преимуществ шины являлось то, что она позволяла создавать карты, работающие с существующими чипсетами и не содержащие большого количества схем дорогостоящей управляющей логики. В результате VL-карты получались дешевле аналогичных EISA-карт. Однако и эта шина не была лишена недостатков, главными из которых являлись следующие.
- Ориентация на 486-ой процессор. VL-bus жестко привязана к шине процессора 80486, которая отличается от шин Pentium и Pentium Pro/Pentium II.
- Ограниченное быстродействие. Как уже было сказано, реальная частота VL-bus - не больше 50 MHz. Причем при использовании процессоров с множителем частоты шина использует основную частоту (так, для 486DX2-66 частота шины будет 33 MHz).
- Схемотехнические ограничения. К качеству сигналов, передаваемых по шине процессора, предъявляются очень жесткие требования, соблюсти которые можно только при определенных параметрах нагрузки каждой линии шины. По мнению Intel, установка недостаточно аккуратно разработанных VL-плат может привести не только к потерям данных и нарушениям синхронизации, но и к повреждению системы.
- Ограничение количества плат. Это ограничение вытекает также из необходимости соблюдения ограничений на нагрузку каждой линии.
Несмотря на существующие недостатки, VL-bus была несомненным лидером на рынке, так как позволяла устранить узкое место сразу в двух подсистемах - видеоподсистеме и подсистеме обмена с жестким диском. Однако лидерство было недолгим, поскольку корпорация Intel разработала свою новинку - шину PCI. По мнению компании, VL-bus базировалась на технологиях 11-летней давности и являлась всего лишь "заплаткой", компромиссом между производителями. Правда, VESA заявляла, что обе шины могут "уживаться" совместно в одной системе. Intel соглашалась, что такое соседство возможно, но задавала встречный убийственный вопрос: "А зачем?". Справедливости ради, надо сказать, что PCI действительно была избавлена от большинства недостатков, присущих VL-bus.
Шина PCI
(Peripheral Component Interconnect bus)
Итак, переходим к самому интересному. Что же находится на сегодняшний день внутри большинства наших компьютеров? Естественно, шина PCI. Другой вопрос, почему именно эта шина. Попробуем разобраться.
Итак, разработка шины PCI началась весной 1991 года как внутренний проект корпорации Intel (Release 0.1). Специалисты компании поставили перед собой цель разработать недорогое решение, которое бы позволило полностью реализовать возможности нового поколения процессоров 486/Pentium/P6 (вот уже половина ответа). Особенно подчеркивалось, что разработка проводилась "с нуля", а не была попыткой установки новых "заплат" на существующие решения. В результате шина PCI появилась в июне 1992 года (R1.0). Разработчики Intel отказались от использования шины процессора и ввели еще одну "антресольную" (mezzanine) шину.
Благодаря такому решению шина получилась, во-первых, процессоро-независимой (в отличие от VLbus), а во-вторых, могла работать параллельно с шиной процессора, не обращаясь к ней за запросами. Например, процессор работает себе с кэшем или системной памятью, а в это время по сети на винчестер пишется информация. Просто здорово! На самом деле идиллии, конечно, не получается, но загрузка шины процессора снижается здорово. Кроме того, стандарт шины был объявлен открытым и передан PCI Special Interest Group, которая продолжила работу по совершенствованию шины (в настоящее время доступен R2.1), и в этом, пожалуй, вторая половина ответа на вопрос "почему PCI?"
Основные возможности шины следующие.
- Синхронный 32-х или 64-х разрядный обмен данными (правда, насколько мне известно, 64-разрядная шина в настоящее время используется только в Alpha-системах и серверах на базе процессоров Intel Xeon, но, в принципе, за ней будущее). При этом для уменьшения числа контактов (и стоимости) используется мультиплексирование, то есть адрес и данные передаются по одним и тем же линиям.
- Поддержка 5V и 3.3V логики. Разъемы для 5 и 3.3V плат различаются расположением ключей
- Частота работы шины 33MHz или 66MHz (в версии 2.1) позволяет обеспечить широкий диапазон пропускных способностей (с использованием пакетного режима):
· 132 МВ/сек при 32-bit/33MHz;
· 264 MB/сек при 32-bit/66MHz;
· 264 MB/сек при 64-bit/33MHz;
· 528 МВ/сек при 64-bit/66MHz.
При этом для работы шины на частоте 66MHz необходимо, чтобы все периферийные устройства работали на этой частоте.
- Полная поддержка multiply bus master (например, несколько контроллеров жестких дисков могут одновременно работать на шине).
- Поддержка write-back и write-through кэша.
- Автоматическое конфигурирование карт расширения при включении питания.
- Спецификация шины позволяет комбинировать до восьми функций на одной карте (например, видео + звук и т.д.).
- Шина позволяет устанавливать до 4 слотов расширения, однако возможно использование моста PCI-PCI для увеличения количества карт расширения.
- PCI-устройства оборудованы таймером, который используется для определения максимального промежутка времени, в течении которого устройство может занимать шину.
При разработке шины в ее архитектуру были заложены передовые технические решения, позволяющие повысить пропускную способность.
Шина поддерживает метод передачи данных, называемый "linear burst" (метод линейных пакетов). Этот метод предполагает, что пакет информации считывается (или записывается) "одним куском", то есть адрес автоматически увеличивается для следующего байта. Естественным образом при этом увеличивается скорость передачи собственно данных за счет уменьшения числа передаваемых адресов.
Шина PCI является той черепахой, на которой стоят слоны, поддерживающие "Землю" - архитектуру Microsoft/Intel Plug and Play (PnP) PC architecture. Спецификация шины PCI определяет три типа ресурсов: два обычных (диапазон памяти и диапазон ввода/вывода, как их называет компания Microsoft) и configuration space - "конфигурационное пространство".