Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 26. Интерфейс PCI Express.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
929.79 Кб
Скачать

Глава 26. Интерфейс pci Express

26.1.Транзакции на интерфейсе

Транзакция (операция обмена какими либо данными) на интерфейсе включает в себя две части: посылку запроса и прием (или посылку) данных. Транзакции обычно определяются характером взаимодействия. Например, транзакция с оперативной памятью типа "Чтение" передает данные из оперативной памяти (либо в процессор, либо в устройство ввода-вывода), транзакция типа "Запись" записывает данные в оперативную память.

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

Различают два типа транзакций, а именно: транзакции с расщеплением и транзакции без расщепления.

Например, операция «Чтение» в транзакциях с расщеплением (split transaction) разбивается на транзакцию запроса чтения, которая содержит адрес, и транзакцию ответа оперативной памяти, которая содержит данные. Каждая транзакция теперь должна быть помечена (тегирована) соответствующим образом, чтобы источник транзакции и оперативная память могли сообщить - что есть что.

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

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

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

Интерфейс 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 линиям.