Шины PCI, USB и FireWire
Шрифт:
Конфигурирование выполняется для каждой функции; полный идентификатор функции состоит из трех частей: номера шины, номера устройства и номера функции. Короткая форма идентификатора вида PCI0:1:2 (например, в сообщениях ОС Unix) означает функцию 2 устройства 1, подключенного к главной (0) шине PCI. Диспетчер устройств (конфигурационное ПО) должен оперировать списком всех функций всех устройств, обнаруженных на всех шинах PCI данной системы (компьютера).
В шине PCI принята географическая нумерация – номер устройства определяется местом его подключения. Номер устройства (device number или dev) определяется той линией шины AD, к которой подключена его линия сигнала IDSEL. В соседних слотах PCI,
Одна карта PCI может содержать только одно устройство шины, к которой она подключается, поскольку ей в слоте выделяется только одна линия IDSEL. Если на карте размещают несколько устройств (например, 4-портовая карта Ethernet), то на ней приходится устанавливать мост – устройство PCI, к которому и обращаются по линии IDSEL, выделенной данной карте. Этот мост организует на карте дополнительную шину PCI, к которой можно подключить множество устройств. Каждое из этих устройств получит свою линию IDSEL, но относящуюся уже к дополнительной шине PCI данной карты.
С точки зрения обращения к пространствам памяти и ввода/вывода географический адрес (номер шины и номер устройства) в пределах одной шины безразличен. Однако номер устройства определяет номер линии запроса прерывания, которой может пользоваться устройство. Подробнее об этом рассказывается в главе 3, здесь же отметим, что на одной шине устройства с номерами, отличающимися друг от друга на 4, будут использовать одну и ту же линию прерывания. В системах с несколькими шинами PCI перестановка устройства в слоты разных шин может влиять на производительность, что связано с характеристиками данной шины и ее удаленностью от главного моста.
Разобраться с нумерацией устройств и полученных ими линий прерываний на конкретной плате можно, если устанавливать карту PCI поочередно в каждый из слотов (отключая питание) и смотреть на сообщения об обнаруженных устройствах PCI, выводимых на дисплей в конце теста POST. В этих сообщениях будут фигурировать и устройства PCI, установленные непосредственно на системной плате (не отключенные параметрами CMOS Setup). Но чтобы не возникло иллюзии простоты, отметим, что «особо умные» операционные системы (например, Windows) не довольствуются полученными назначениями номеров прерываний и изменяют их по своему усмотрению.
Спецификации PCI и PCI–X
PCI (Peripheral Component Interconnect) local bus – шина соединения периферийных компонентов – является основной шиной расширения современных компьютеров. Как уже говорилось ранее, она разрабатывалась в расчете на процессоры Pentium, но хорошо сочеталась и с процессорами 486. Сейчас PCI является жестко стандартизованной высокопроизводительной и надежной шиной расширения, поддерживаемой рядом компьютерных платформ, включая PC-совместимые компьютеры, PowerPC и другие. Спецификации шины PCI периодически обновляются. Настоящее описание охватывает все стандарты шины PCI вплоть до версии 2.3 и PCI–X до версии 2.0. Рассмотрим основные этапы развития этой технологии:
• PCI 1.0 (1992 год) – определена общая концепция, описаны сигналы и протокол 32-разрядной параллельной синхронной шины с тактовой частотой до 33,3… МГц и пиковой пропускной способностью 132 Мбайт/с;
• в PCI 2.0 (1993 год) – введена спецификация коннекторов и карт расширения с возможным расширением разрядности до 64 бит (пропускная способность до 264 Мбайт/с), предусмотрены варианты питания интерфейсных схем напряжением 5 В и 3,3В;
• в версии 2.1 (1995 год) – введена частота 66 МГц (только для устройств с напряжением питания 3,3 В), что позволило обеспечить пиковую пропускную способность до 264 Мбайт/с в 32-битном варианте и 528 Мбайт/с в 64-битном;
• спецификация PCI 2.2 («PCI Local Bus Specification. Revision 2.2» от 18.12.1998) уточняет и разъясняет некоторые положения предшествующей версии 2.1; здесь появился новый механизм сигнализации прерываний MSI;
• в версии PCI 2.3 (2002 год) определены биты для прерываний, облегчающие идентификацию источника; отменены карты расширения с питанием 5 В (остались только универсальные и 3,3 В); введен низкопрофильный (low profile) конструктив карт расширения; добавлены сигналы дополнительной шины SMBus. Эта версия, описанная в документе PCI Local Bus Specification, Revision 2.3, является базой для современных расширений;
• в версии PCI 3.0 (2004 год) отменены системные платы на 5 В (остались только универсальные и 3,3 В).
На базе PCI 2.3 в 1999 году появилось расширение PCI–X, призванное существенно повысить пиковую пропускную способность шины за счет увеличения частоты передачи, а также повысить эффективность работы за счет оптимизации протокола. В протокол введены расщепленные транзакции и атрибуты, позволяющие участникам транзакции планировать свои действия. Расширение обеспечивают совместимость (механическую, электрическую и программную) устройств и системных плат PCI–X и обычной PCI, но, естественно, все устройства шины подстраиваются под самого слабого участника.
• В версии PCI–X 1.0 повышена тактовая частота до 133 МГц (для 3,3 В интерфейса), что дает варианты, называемые PCI–X66, PCI–X100, PCI–X133. Пиковая пропускная способность достигает 528 Мбайт/с в 32-битном варианте и более 1 Гбайт/с в 64-битном. Версия описана в документе PCI–X Addendum to the PCI Local Bus Specification, Revision 1.0b (2002 г.).
• В версии PCI–X 2.0 введены новые режимы синхронизации с удвоенной (PCI–X266) и учетверенной (PCI–X533) частотами передачи данных относительно тактовой частоты 133 МГц. Столь высокая частота требует низковольтного интерфейса (1,5 В), режима коррекции ошибок (ECC). Кроме 32– и 64-битных вариантов появился и 16-битный (для встроенных компьютеров). Добавлен новый тип транзакций – сообщения, адресуемые устройству по его идентификатору (DIM). Конфигурационное пространство функции расширено до 4096 байт. Версия PCI–X 2.0 описывается парой документов: PCI–X Protocol Addendum to the PCI Local Bus Specification, Revision 2.0 (PCI–X PT 2.0) – дополнения к протоколу и PCI–X Electrical and Mechanical Addendum to the PCI Local Bus Specification, Revision 2.0 (PCI–X EM 2.0) – дополнения к электрическим и механическим спецификациям.
В дополнение к спецификациям шины имеется ряд дополнительных спецификаций:
• спецификация на мосты, связывающие шины PCI друг с другом (и иными шинами), – PCI to PCI Bridge Architecture Specification, Revision 1.1 (PCI Brid-ge1.1);
• спецификация PCI BIOS – конфигурирование устройств PCI и контроллера прерываний;
• обеспечение «горячего» подключения/отключения устройств – PCI Hot-Plug Specification, Revision 1.1 (PCI HP 1.1);
• управление энергопотреблением – PCI Power Management Interface Specification, Revision 1.1 (PCI PM 1.1).