Переход от параллельных интерфейсов данных к последовательным интерфейсам данных

Интерфейс PCI Express заменил интерфейс PCI (Peripheral Components Interconnect), исправно работавший в компьютерной технике более десяти лет. Интерфейс PCI в свое время пришел на смену «первому поколению» — интерфейсу Industrial Standard Architecture (ISA). Однако изменения при переходе от интерфейса PCI к интерфейсу PCI Express были куда большие, чем при переходе от интерфейса ISA к интерфейсу PCI. Изменения в интерфейсе PCI Express носили не столько количественный, сколько качественный характер. В целом их можно охарактеризовать как «переход от параллельных интерфейсов к последовательным» интерфейсам, что является общей тенденцией развития современных интерфейсов передачи данных.

В то время, как процессоры вполне успешно перешли к параллельным структурам (SIMD-команды, суперскалярность, конвейеризация, многоядерность), интерфейсы передачи данных не менее успешно перешли на последовательные решения. Причины обоих явлений схожи и довольно просты — необходимо сбалансировано наращивать производительность всех компонентов компьютеров, однако не всякие существующие структурные решения способны эффективно масштабироваться.

По процессу перехода на последовательные интерфейсы несложно проследить основные вехи развития полупроводниковой промышленности.

Первыми на последовательную передачу перешли интерфейсы подключения мыши и клавиатуры — высоких скоростей там все равно не требовалось, а схемотехника заметно упростилась.

Следующий виток эволюции можно связать с сетевыми решениями — провести параллельную линию данных высокого качества на большое расстояние невозможно, и все технологии передачи данных на большое расстояние были последовательными с самого начала.

Интерфейс PCI был очевидным кандидатом на звание «очередной жертвы прогресса». Кстати, помимо интерфейса PCI в современной компьютерной системе остался, по большому счету, лишь один параллельный интерфейс — интерфейс оперативной памяти.

С параллельными интерфейсами передачи данных проще работать. Они обеспечивают лучшую производительность при меньшей частоте, но, к сожалению, тяжело увеличивать частоты работы. При увеличении частоты очень сильно повышаются требования к физической разводке проводников, заметно возрастают задержки (чтобы согласовать по времени «одновременные» сигналы во всех проводниках интерфейса), да и работать с ними неудобно, поскольку они занимают много места. Поскольку себестоимость производства микросхемы сегодня все равно выходит примерно одинаковой (если не считать экономию на «ножках микросхемы»), то порой дешевле делать более сложный кристалл контроллера интерфейса, чем плодить золотые контакты и многочисленные проводники на печатной плате.

Поэтому стремление разработчиков перейти на последовательные интерфейсы довольно естественно даже хотя бы с точки зрения экономии средств (экономия контактов и места на разводку проводников интерфейса).

С другой стороны — последовательный интерфейс гораздо проще заставить работать на повышенных частотах, поэтому удается не только скомпенсировать падение, но даже значительно поднять производительность. Более того, отличная масштабируемость последовательных интерфейсов типа PCI Express, Hyper Transport, QPI относительно легко достигается путем как повышения частоты работы, так и добавлением нескольких последовательных линий в интерфейс.

Интерфейс PCI Express помимо низкой латентности (задержки) обладает очень высокой скоростью передачи данных в расчете на один сигнальный контакт — около 500 Мбайт/с – в версии 3.0. Это позволило, во-первых, экономить за счет контактов (на корпусах микросхем и позолоченных разъемах), а во-вторых — за счет более компактной разводки проводников

Электрические улучшения (пониженное затухание в линиях передачи и повышенная чувствительность приемников данных) позволили снизить требования к импедансу входных цепей и увеличить длину проводников интерфейса на платах. Например, в 2006 г. она ограничивалась 30,5 см для системных плат (от микросхемы до разъема), 9 см - для плат контроллеров (и видеокарт) и 38 см для соединений между микросхемами на одной плате. Причем разводка могла быть как четырехслойной, так и шестислойной без каких-то особо критичных требований.

Интерфейс PCI Express это открытый стандарт и разработан был с расчетом на разнообразные применения — от полной замены интерфейсов PCI и PCI-X внутри настольных и серверных компьютеров, до использования в мобильных, встроенных и коммуникационных устройствах. Первоначально номинальной рабочей частотой интерфейса PCI Express 1.0 являлась частота 2,5 ГГц. При этом теоретическая пиковая производительность интерфейса (на один канал передачи данных) была примерно вдвое больше, чем производительность «обычного» 33-мегагерцового интерфейса PCI — 250М байт/с против 133М байт/с (или 200М байт/с против 100М байт/с для реальной эффективной полосы пропускания данных). То есть, для перехода на последовательный интерфейс с сопоставимой производительностью понадобилось 75-кратное увеличение частоты. Неудивительно, что интерфейс PCI Express 1.0 появился только в середине 2000-х годов — раньше для него просто не было достаточных технических предпосылок

Чем выше частота, тем выше требования к линии передачи данных — требуется обеспечить ее максимальную однородность на всем протяжении (проходящий по ней сигнал будет переотражаться от неоднородностей и искажаться), и в том числе — обеспечить как можно меньшее число «поворотов». Линию необходимо тщательно согласовать (иначе сигнал будет отражаться еще и от источника или приемников сигнала), а в случае классического параллельного интерфейса — еще и обеспечить «одинаковость длин» (точнее — волнового сопротивления) входящих в него линий. Естественно, что выдержать эти требования к двум линиям передачи данных намного проще, нежели к 32, а то и к 64 линиям.