Введение
Стандарт PCI X, сокращенный от Peripheral Component Interconnect eXtended, представляет собой стандарт компьютерной шины и расширительной карты, который расширяет возможности 32-битной локальной шины PCI для обеспечения большей пропускной способности, необходимой главным образом серверам и рабочим станциям. Он использует модифицированный протокол для поддержки более высоких тактовых частот (до 133 МГц), но в остальном схож в плане электрической реализации. PCI X 2.0 увеличил скорости до 533 МГц, при этом снизив уровни электрического сигнала. Физически слот представляет собой 3,3-вольтовый PCI-слот, имеющий точно такие же размеры, расположение и назначение контактов. Электрические характеристики совместимы, но более строгие. Однако, в то время как большинство стандартных PCI-слотов имеют длину 85 мм и являются 32-битными, большинство устройств PCI X используют 64-битный слот длиной 130 мм, настолько, что 64-битные PCI-разъемы и поддержка PCI X стали рассматриваться как синонимы. Фактически, PCI X полностью специфицирован как для 32-битных, так и для 64-битных PCI-разъемов, а PCI X 2.0 добавил 16-битный вариант для встраиваемых приложений. В современных разработках он был заменен на PCI Express (официально сокращенно PCIe) со схожим названием, но совершенно другим физическим разъемом и существенно отличающейся электрической схемой, использующей одну или несколько узких, но быстрых последовательных линий связи вместо множества медленных параллельных соединений.
PCI X, short for Peripheral Component Interconnect eXtended, is a computer bus and expansion card standard that enhances the 32 bit PCI local bus for higher bandwidth demanded mostly by servers and workstations. It uses a modified protocol to support higher clock speeds (up to 133 MHz), but is otherwise similar in electrical implementation. PCI X 2.0 added speeds up to 533 MHz, with a reduction in electrical signal levels. The slot is physically a 3.3 V PCI slot, with exactly the same size, location and pin assignments. The electrical specifications are compatible, but stricter. However, while most conventional PCI slots are the 85 mm long 32 bit version, most PCI X devices use the 130 mm long 64 bit slot, to the point that 64 bit PCI connectors and PCI X support are seen as synonymous. PCI X is in fact fully specified for both 32 and 64 bit PCI connectors, and PCI X 2.0 added a 16 bit variant for embedded applications. It has been replaced in modern designs by the similar sounding PCI Express (officially abbreviated as PCIe), with a completely different physical connector and a very different electrical design, having one or more narrow but fast serial connection lanes instead of a number of slower connections in parallel.
История и мотивация
В PCI транзакция, которая не может быть завершена немедленно, откладывается либо целью, либо инициатором путем выдачи циклов повторных попыток, в течение которых другие агенты не могут использовать шину PCI. Поскольку в PCI отсутствует механизм раздельного ответа, позволяющий цели возвращать данные позднее, шина остается занятой циклами повторных попыток, выдаваемыми целью, до тех пор, пока запрашиваемые данные не будут готовы. В PCI X после выдачи запроса мастером он отключается от шины PCI, предоставляя возможность другим агентам использовать шину. Раздельный ответ, содержащий запрошенные данные, генерируется только тогда, когда цель готова вернуть все запрошенные данные. Раздельные ответы повышают эффективность шины, устраняя циклы повторных попыток, в течение которых передача данных по шине невозможна. PCI также страдала от относительно небольшого количества уникальных линий прерываний. При наличии всего 4 линий прерываний (INT A/B/C/D) в системах с большим количеством устройств PCI требовалось совместное использование одной линии прерывания несколькими функциями, что усложняло обработку прерываний на стороне хоста. PCI X добавила прерывания с сигнализацией сообщениями (Message Signaled Interrupts) – систему прерываний, использующую запись в память хоста. В режиме MSI прерывание функции не сигнализируется активацией линии INTx. Вместо этого функция выполняет запись в память в сконфигурированную область памяти хоста. Поскольку содержимое и адрес конфигурируются для каждой функции, прерывания в режиме MSI являются выделенными, а не общими. Система PCI X позволяет одновременно использовать прерывания в режиме MSI и устаревшие прерывания INTx (хотя и не одной и той же функцией). Отсутствие зарегистрированных входов/выходов ограничивало максимальную частоту PCI до 66 МГц. В PCI X входы/выходы регистрируются по тактовому сигналу PCI, обычно с использованием ФАПЧ (PLL) для активного управления задержкой контактов шины. Улучшение времени установки позволяет увеличить частоту до 133 МГц. Некоторые устройства, в частности гигабитные сетевые карты, контроллеры SCSI (Fibre Channel и Ultra320) и межсоединения кластеров, могли сами по себе насытить пропускную способность шины PCI в 133 МБ/с. Были реализованы порты, использующие удвоенную скорость шины до 66 МГц и удвоенную ширину шины до 64 бит (с увеличением количества контактов с 124 до 184) как по отдельности, так и в комбинации. Эти расширения слабо поддерживались как необязательные части стандартов PCI 2.x, но обеспечение совместимости устройств за пределами базовых 133 МБ/с оставалось сложной задачей. Разработчики в конечном итоге использовали комбинированное 64-битное и 66-МГц расширение в качестве основы и, предвидя будущие потребности, создали варианты с частотой 66 МГц и 133 МГц с максимальной пропускной способностью 532 МБ/с и 1064 МБ/с соответственно. Совместный результат был представлен как PCI X в Специальную группу по интересам PCI (Special Interest Group of the Association for Computing Machinery). Последующее одобрение сделало его открытым стандартом, доступным для всех разработчиков компьютеров. PCI SIG контролирует техническую поддержку, обучение и тестирование на соответствие стандартам PCI X. IBM, Intel, Microelectronics и Mylex должны были разработать поддерживающие чипсеты. 3Com и Adaptec должны были разработать совместимые периферийные устройства. Чтобы ускорить внедрение PCI X в отрасли, Compaq предложила инструменты разработки PCI X на своем веб-сайте.
PCI-X 1.0
Стандарт PCI X был разработан совместно компаниями IBM, HP и Compaq и представлен на утверждение в 1998 году. Это была попытка кодифицировать проприетарные серверные расширения для локальной шины PCI с целью устранения ряда недостатков PCI, повышения производительности устройств с высокой пропускной способностью, таких как карты Gigabit Ethernet, Fibre Channel и Ultra3 SCSI, а также обеспечения возможности объединения процессоров в кластеры. Intel отнеслась к PCI X сдержанно, подчеркнув, что шина следующего поколения должна представлять собой «фундаментально новую архитектуру». Без поддержки Intel PCI X не получил распространения в персональных компьютерах. По словам Рика Меррита из EE Times, «разногласия между PCI SIG и ключевым разработчиком межсоединений Intel, возглавлявшим разработку Accelerated Graphics Port, привели к тому, что Intel вышла из первоначальной разработки PCI X». Однако интерфейс PCI X был ненадолго принят компанией Apple для первых нескольких поколений Power Macintosh G5. Первые продукты PCI X были выпущены в 1998 году, например, двухканальный контроллер Adaptec AHA 3950U2B Ultra2 Wide SCSI, но в то время разъем PCI X на упаковке просто обозначался как «64-битный PCI», что указывало на будущую совместимость. Официальное обозначение PCI X стало стандартным позже, вероятно, с широким распространением материнских плат, оснащенных PCI X. Когда в августе 2001 года были опубликованы более подробные сведения о PCI Express, председатель PCI SIG Роджер Типли выразил уверенность, что «PCI X останется в серверах навсегда, поскольку он обеспечивает определенный уровень функциональности, и переход на 3GIO [PCI Express] для этой функциональности может оказаться нецелесообразным. Мы усвоили этот урок, пытаясь избавиться от ISA. ISA просуществовал долго из-за множества систем, не относящихся к массовому производству». Типли также объявил, что (на тот момент) PCI SIG планировала объединить PCI Express и PCI X 2.0 в единую разработку под предварительным названием PCI 3.0, но это название в конечном итоге было использовано для относительно незначительной ревизии стандартного PCI.
PCI-X 2.0
В 2003 году PCI-SIG ратифицировал PCI X 2.0. Он добавляет варианты с частотой 266 МГц и 533 МГц, обеспечивая пропускную способность примерно 2132 МБ/с и 4266 МБ/с соответственно. PCI X 2.0 вносит дополнительные изменения в протокол, предназначенные для повышения надежности системы и добавления кодов коррекции ошибок в шину для предотвращения повторных передач. Для решения одной из наиболее распространенных проблем форм-фактора PCI X – 184-контактного разъема – были разработаны 16-битные порты, позволяющие использовать PCI X в устройствах с ограниченным пространством. Аналогично PCI Express, были добавлены функции PtP, чтобы устройства в шине могли взаимодействовать друг с другом, не перегружая процессор или контроллер шины. Несмотря на различные теоретические преимущества PCI X 2.0 и обратную совместимость с PCI X и устройствами PCI, он не получил широкого распространения (по состоянию на 2008 год). Основной причиной этого отсутствия внедрения стало то, что производители оборудования предпочли интегрировать PCI Express. IBM была одним из немногих производителей, предоставивших поддержку PCI X 2.0 (266 МГц) в своих System i5 Model 515, 520 и 525; IBM рекламировала эти слоты как подходящие для адаптеров 10 Gigabit Ethernet, которые также поставлялись компанией. HP предлагала PCI X 2.0 в некоторых серверах ProLiant и Integrity, а также адаптеры Fibre Channel с двумя портами 4 Гбит/с, работающие на частоте 266 МГц. AMD поддерживала PCI X 2.0 (266 МГц) через свой чип 8132 Hypertransport to PCI X 2.0 tunnel chip. ServerWorks активно поддерживала PCI X 2.0 (в ущерб первому поколению PCI Express), особенно благодаря своему руководителю Раджу Вегесне, который, однако, вскоре после этого был уволен из-за разногласий с руководством Broadcom относительно дальнейших планов развития. В 2003 году Dell объявила, что откажется от PCI X 2.0 в пользу более быстрого внедрения решений PCI Express. Как сообщает PC Magazine, Intel начала отказываться от PCI X в своей дорожной карте на 2004 год в пользу PCI Express, утверждая, что последний имеет значительные преимущества с точки зрения задержки системы и энергопотребления, что было более драматично сформулировано как избежание "апокалипсиса 1000 контактов" для их чипсета Tumwater.
Сравнение с PCI-Express
PCI X часто путают с PCI Express, обычно сокращенным как PCI E или PCIe, хотя сами карты полностью несовместимы и имеют разный внешний вид. Оба являются высокоскоростными компьютерными шинами для внутренних периферийных устройств, но отличаются во многих аспектах. Во-первых, PCI X – это 64-битный параллельный интерфейс, обратно совместимый с 32-битными устройствами PCI. PCIe – это последовательное соединение типа «точка-точка» с другим физическим интерфейсом, разработанное для замены как PCI, так и PCI X.
Шины PCI X и стандартные шины PCI могут работать через мост PCIe, подобно тому, как шины ISA работали на стандартных шинах PCI в некоторых компьютерах. PCIe также обеспечивает максимальную пропускную способность, сравнимую с PCI X и даже PCI X 2.0. PCIe 1.0 x1 обеспечивает скорость 250 МБ/с в каждом направлении (на линию), и в настоящее время поддерживается до 16 линий (x16) в каждом направлении в режиме полного дуплекса, что дает максимальную пропускную способность 4 ГБ/с в каждом направлении. PCI X 2.0 обеспечивает (в максимальной конфигурации 64 бита, 533 МГц) максимальную пропускную способность 4266 МБ/с (≈4,3 ГБ/с), но только в режиме полудуплекса. PCI X имеет технологические и экономические недостатки по сравнению с PCI Express. 64-битный параллельный интерфейс требует сложной трассировки, поскольку, как и в случае со всеми параллельными интерфейсами, сигналы шины должны поступать одновременно или в пределах очень узкого временного окна, а шум от соседних слотов может вызывать помехи. Последовательный интерфейс PCIe в меньшей степени подвержен этим проблемам и, следовательно, не требует столь сложных и дорогостоящих конструкций. Шины PCI X, как и стандартные PCI, являются двунаправленными полудуплексными, в то время как шины PCIe – двунаправленными полными дуплексами. Шины PCI X работают только со скоростью самого медленного устройства, в то время как устройства PCIe могут самостоятельно согласовывать скорость шины. Кроме того, слоты PCI X длиннее, чем PCIe 1x–PCIe 16x, что делает невозможным создание коротких карт для PCI X. Слот PCI X занимает значительное место на материнских платах, что может быть проблемой для ATX и форм-факторов меньшего размера.