– А чего еще ждать от этих бездельников иностранцев?»
Агата Кристи, «Восточный Экспресс».
Итак, господа, пришло время сменить шину, в течение 10 лет бывшую общепринятым индустриальным стандартом. PCI, первая версия стандарта которой была разработана еще в 1991 году, прожила долгую и счастливую жизнь, в различных своих ипостасях являясь основой для малых и крупных серверов, промышленных компьютеров, ноутбуков и графических решений (напомним, что AGP также ведет свою родословную от PCI и является специализированным и расширенным вариантом последней). Но, прежде чем рассказывать о новинке, подобьем исторических бабок, вспомнив как происходило развитие PCI. Ибо, не однократно было замечено, что, говоря о будущих перспективах, всегда полезно найти исторические аналогии: История PCI
В 1991 году Intel предлагает базовую версию (1.0) проекта стандарта шины PCI (Peripheral Component Interconnect Соединение Периферийных Компонент). PCI призвана заменить ISA (а позже и ее не очень удачную и дорогую серверную расширенную модификацию EISA). Кроме значительно возросшей пропускной способности, новую шину характеризует возможность динамической конфигурации выделяемых присоединенным устройствам ресурсов (прерываний).
В 1993 году PCI Special Interest Group (PCISIG, Специальная Группа Интересов PCI, http://www.pcisig.com/ организация, взявшая на себя заботу о разработке и принятии различных стандартов имеющих отношение к PCI) публикует обновленную 2.0 ревизию стандарта ставшую основой для широкой экспансии PCI (и различных ее модификаций) в индустрии информационных технологий. В деятельности PCISIG принимают участие многие известные компании, включая родоначальника PCI корпорацию Intel, подарившую индустрии множество долгоиграющих, исторически успешных стандартов. Итак, базовая версия PCI (IEEE P1386.1):
- Тактовая частота шины 33 МГц, используется синхронная передача данных;
- Пиковая пропускная способность 133 МБ в секунду;
- Параллельная шина данных шириною 32-бита;
- Адресное пространство 32-бита (4 ГБ);
- Сигнальный уровень 3,3 или 5 вольт.
Позже появляются следующие ключевые модификации шины:
- PCI 2.2 допускается 64-бит ширина шины и/или тактовая частота 66 МГц, т.е. пиковая пропускная способность до 533 МБ/сек.;
- PCI-X, 64-бит версия PCI 2.2 с увеличенной до 133 МГц частотой (пиковая пропускная полоса 1066 МБ/сек.);
- PCI-X 266 (PCI-X DDR), DDR версия PCI-X (эффективная частота 266 МГц, реальная 133 МГц с передачей по обоим фронтам тактового сигнала, пиковая пропускная полоса 2.1 ГБ/сек);
- PCI-X 533 (PCI-X QDR), QDR версия PCI-X (эффективная частота 533 МГц, пиковая пропускная полоса 4,3 ГБ/сек.);
- Mini PCI PCI с разъемом в стиле SO-DIMM, применяется преимущественно для миниатюрных сетевых, модемных и прочих карточек в ноутбуках;
- Compact PCI стандарт на форм фактор (модули вставляются с торца в шкаф с общей шиной на задней плоскости) и разъем, предназначенные в первую очередь для промышленных компьютеров и других критических применений;
- Accelerated Graphics Port (AGP) высокоскоростная версия PCI оптимизированная для графических ускорителей. Отсутствует арбитраж шины (т.е. допустимо только одно устройство, за исключением последней, 3.0 версии стандарта AGP, где устройств и слотов может быть два). Передачи в сторону ускорителя оптимизированы, есть набор специальных дополнительных возможностей специфических для графики. Впервые данная шина появилась вместе с первыми системными наборами для процессора Pentium II. Существует три базовых версии протокола AGP, дополнительная спецификация на питание (AGP Pro) и 4 скорости передачи данных от 1х (266 МБ/сек) до 8х (2ГБ/сек), в том числе допустим сигнальные уровни 1,5, 1,0 и 0,8 вольт.
Упомянем также CARDBUS 32 разрядную версию шины для PCMCIA карт, с горячим подключением и некоторыми дополнительными возможностями, тем не менее, имеющую много общего с базовой версией PCI.
Как мы видим, основное развитие шины идет по следующим направлениям:
- Создание специализированных модификаций (AGP);
- Создание специализированных форм факторов (Mini PCI, Compact PCI, CARDBUS);
- Увеличение разрядности;
- Увеличение тактовой частоты и применение DDR/QDR схем передачи данных.
Все это вполне логично, учитывая огромный срок жизни подобного всеобщего стандарта. Причем, пункты 1 и 2 не ставят своей целью сохранение совместимости с базовыми PCI картами, а вот пункты 3 и 4 выполняются за счет увеличения оригинального PCI разъема, и допускают установку обычных 32х разрядных PCI карт. Справедливости ради, отметим, что в ходе эволюции шины случались и сознательные потери совместимости со старыми картами, даже для базового варианта разъема PCI например, в спецификации 2.3 исчезло упоминание о поддержке 5 вольт сигнального уровня и питающего напряжения. В результате, серверные платы снабженные этой модификацией шины могут пострадать при установке в них старых, пятивольтовых карт, хотя, с точки зрения геометрии разъема, эти карты к ним подходят.
Однако, как и любая другая технология (например, архитектуры процессорных ядер), шинная технология имеет свои разумные границы масштабирования, при приближении к которым увеличение пропускной полосы дается все большей и большей ценою. Возросшая тактовая частота требует более дорогостоящей разводки и накладывает существенные ограничения на длину сигнальных линий, увеличение разрядности или использование DDR решений также влечет за собою множество проблем, которые в итоге банально выливаются в рост стоимости. И если в серверном сегменте, решения подобные PCI-X 266/533 еще будут некоторое время экономически оправданными, то в потребительских PC мы их не увидели, и не увидим. Почему? Очевидно, что в идеале пропускная способность шин должна расти синхронно с ростом производительности процессора, при этом цена реализации должна не только сохраняться прежней, но и в идеале снижаться. На данный момент это возможно только при использовании новой шинной технологии. О них мы сегодня и поговорим: Эпоха последовательных шин
Итак, ни для кого не секрет что в наше время, идеальный внешний интерфейс, так или иначе, является последовательным. Прошли времена многожильных центрониксов, и толстенных (обухом не перешибешь) SCSI шлангов фактически, наследия еще до PC-шных времен. Переход происходил медленно, но верно: сначала клавиатура и мышь, затем модем, затем, через годы и годы сканеры и принтеры, видеокамеры, цифровые фотоаппараты. USB, IEE1394, USB 2. На данный момент, вся потребительская внешняя периферия перебралась на последовательные соединения. Не за горами и беспроводные решения. Механизм очевиден в наше время выгоднее заложить максимум функциональности в чип (горячее подключение, последовательное кодирование, передача и прием, декодирование данных, протоколы маршрутизации и защиты от ошибок и пр. необходимые для выжимания необходимой топологической гибкости и существенной полосы пропускания из пары проводов вещи), нежели иметь дело с избыточными объемами контактов, шлангами с сотней проводов внутри, недешевыми пайкой, экранированием, разводкой и медью. В наше время последовательные шины становятся более удобны не только с точки зрения конечного потребителя, но и с точки зрения банальной выгоды пропускная полоса умножить на расстояние делить на баксы. Разумеется, со временем эта тенденция не могла не распространиться на внутренности компьютера мы уже во всю наблюдаем первый плод подобного подхода Serial ATA. Более того, можно экстраполировать эту тенденцию не только на системные шины (основная тема данной статьи) но и на шину памяти (справедливо отметить, что подобный пример уже был Rambus, но индустрия справедливо сочла его преждевременным) и даже на процессорную шину (потенциально более удачный пример HT). Кто знает, сколько контактов будет у Pentium Х возможно менее сотни, при условии, что половина из них земля и питание. Время притормозить и четко сформулировать преимущества последовательных шин и интерфейсов:
- Выгодный перенос все большей части практической реализации шины на кремний, что облегчает отладку, повышает гибкость и сокращает время разработки;
- Перспектива органично использовать в будущем иные носители сигнала, например оптические;
- Экономия пространства (не бьющая по карману миниатюризация) и снижение сложности монтажа;
- Проще реализовывать горячие подключения и динамическую конфигурацию в любом смысле;
- Возможность выделять гарантированные и изохронные каналы;
- Переход от разделяемых шин с арбитражем и непредсказуемыми прерываниями, неудобными для надежных/критических систем к более предсказуемым соединениям точка-точка;
- Лучшая с точки зрения затрат и более гибкая с точки зрения топологии масштабируемость;
- Этого еще не достаточно??? ;-).
В будущем же следует ожидать перехода на беспроводные шины, технологии подобные UWB (Ultra Wide Band) однако, это дело не ближайшего года и даже не пяти лет.
А теперь, самое время обсудить все преимущества на конкретном примере новой стандартной системной шине PCI Express, массовое распространение которой на сегмент PC и средних/малых серверов ожидается уже в середине следующего года. PCI Express только факты
- Последовательная системная шина общего назначения;
- Имя PCI Express, на стадии проектирования была также известна как 3GIO (Ввод-вывод третьего поколения) или по кодовому имени рабочей группы и проекта «Arapahoe», причем оба названия (3GIO и PCI Express) являются зарегистрированными торговыми марками PCISIG;
- Дата рождения 22 июля 2002 года опубликована базовая спецификация протокола и сигнального уровня, а также базовая спецификация на форм-фактор и энергопотребление карт и разъемы;
- Фактически совокупность независимых самостоятельных последовательных каналов передачи данных;
- Сигнальный уровень 0.8 вольт. Каждый канал состоит из двух дифференциальных сигнальных пар (необходимо только 4 контакта):
- Используется избыточное защищенное от помех кодирование каждый байт при передаче представляется десятью битами;
- Пропускная способность 2.5 Гигабита (250 МБ) в секунду для одного канала в каждом направлении одновременно (полный дуплекс), однако, следует учесть, что эффективная скорость передачи данных за вычетом избыточного кодирования составляет 2 Гигабита (200 МБ) ровно;
- Стандартизированы 1, 2, 4, 8, 16 и 32 канальные варианты (до 6.4 эффективных Гигабайт в секунду соответственно, при передаче в одну сторону и вдвое больше при передаче в обоих направлениях). При передаче данных они передаются параллельно (но не синхронно) по всем доступным каналам:
- Вся контрольная информация передается по тем же линиям что и данные, используется стек протоколов, из нескольких уровней, включая маршрутизацию данных:
- Стандарт предусматривает и альтернативные носители сигнала, такие как оптические волноводы;
- Возможность динамического подключения и конфигурации устройств;
- Возможность распознавания и использования альтернативных (улучшенных) протоколов обмена.
Подробнее остановимся на ключевых отличиях PCI Express от PCI:
- Как уже неоднократно упоминалось новая шина последовательна, а не параллельна. Основные преимущества снижение стоимости, миниатюризация, лучшее масштабирование, более выгодные электрические и частотные параметры (нет необходимости синхронизировать все сигнальные линии);
- Спецификация разделена на целый стек протоколов, каждый уровень которого может быть усовершенствован, упрощен или заменен не сказываясь на остальных. Например может быть использован иной носитель сигнала или может быть упразднена маршрутизация в случае выделенного канала только для одного устройства. Могут быть добавлены дополнительные контрольные возможности. Развитие такой шины будет происходить гораздо менее болезненно увеличение пропускной способности не потребует изменять контрольный протокол и наоборот. Быстро и удобно разрабатывать адаптированные варианты специального назначения;
- В изначальной спецификации заложены возможности горячей замены карт;
- В изначальной спецификации заложены возможности создания виртуальных каналов, гарантирования пропускной полосы и времени отклика, сбора статистики QoS (Quality of Service Качество Обслуживания);
- В изначальной спецификации заложены возможности контроля целостности передаваемых данных (CRC);
- В изначальной спецификации заложены возможности управления питанием.
Итак, более широкие диапазоны применимости, более удобное масштабирование и адаптация, богатый набор изначально заложенных возможностей. Все так хорошо, что просто не верится. Впрочем, в отношении этой шины, даже заядлые пессимисты высказываются скорее положительно, чем отрицательно. И это не удивительно кандидат на десятилетний трон общего стандарта для большого числа различных применений (начиная с мобильных и встраиваемых и заканчивая серверами «Энтерпрайз» класса или критическими применениями) просто обязан выглядеть безупречным со всех сторон, хотя бы на бумаге :-). Как оно будет в деле мы скоро увидим сами. PCI Express как это будет выглядеть
Самый простой вариант перехода на PCI-Express для стандартных по архитектуре настольных систем выглядит так:

Однако в будущем логично ожидать появление некоего разветвителя PCI Express. Тогда вполне оправданным станет и объединение северного южного мостов. Приведем примеры возможных системных топологий. Классический PC с двумя мостами:

Более обобщенная (серверная) архитектура с одним мостом:

Мощный сервер:

Производительный сетевой раутер:

Гибкость решения позволяет создавать различные топологические схемы, оптимально балансируя пропускную способность. А теперь ответим на вопрос «как это будет выглядеть» дословно. Карта:

(мысленно отломайте верхнюю и заднюю части, и вы увидите так называемый низкопрофильный вариант). А вот типичная для PC сектора системная плата с тремя х1 и одним х8 (в том числе, для графических карт) разъемами:

Те же разъемы вблизи:

Как уже упоминалось, предусмотрен и стандартизирован Mini PCI Express слот:

И новый слот для внешних заменяемых карт, на подобии CARDBUS, на который вынесена не только PCI Express но и USB 2.0:

Интересно, что предусмотрено два форм фактора карт, но отличаются они не толщиной как ранее, а шириной:

Решение очень удобное во-первых делать двухэтажный монтаж внутри карты гораздо дороже и неудобнее нежели сделать карту с платой большей площади внутри, во-вторых, карта полной ширины получит в итоге вдвое большую пропускную полосу, т.е. второй разъем не будет простаивать без дела. С электрической или протокольной точки зрения шина NewCard не несет ничего нового, все необходимые для горячей замены или энергосбережения функции уже заложены в базовой спецификации PCI Express.PCI Express переход
Для облегчения перехода предусмотрен механизм совместимости с программным обеспечением, написанным для PCI (драйверы устройств, OS). Кроме того, разъемы PCI Express в отличие от PCI расположены на другой стороне отведенной для карты расширения секции, т.е. могут сосуществовать на одном месте с PCI разъемами. Пользователю останется только выбирать какую карту он хочет вставить. В первую очередь появление PCI Express ожидается в начальных серверных (двупроцессорных) платформах Intel в первой половине 2004 года, затем в настольных платформах класса «Энтузиаст» и рабочих станциях (в том же году). Насколько быстро PCI Express будет поддержана другими производителями чипсетов не ясно, однако и NVIDIA и SIS отвечают на вопрос утвердительно, хотя и не называют конкретные сроки. Уже давно запланированы и готовятся к выходу в первой половине 2004 года графические решения (ускорители) от NVIDIA и ATI, снабженные встроенной поддержкой PCI Express х16. Множество других производителей являются активными участниками разработки и тестирования PCI Express и также намерены представить свои продукты до конца 2004 года.
Посмотрим! Есть подозрение, что ребеночек вышел удачный.
В добрый путь, PCI Express: отправление 2004, прибытие 2014.