Intel QuickPath Interconnect

редактировать

Intel QuickPath Interconnect (QPI ) является двухточечным процессор межсоединение, разработанный Intel, который заменил фронтальную шину (FSB) в Xeon, Itanium и некоторые настольные платформы, начиная с 2008 года. Это увеличило масштабируемость и доступную пропускную способность. До объявления названия компания Intel называла его Common System Interface (CSI ). Более ранние версии были известны как еще один протокол (YAP) и YAP +.

QPI 1.1 - это значительно переработанная версия, представленная в Sandy Bridge-EP (Romley платформа).

QPI был заменен на Intel Ultra Path Interconnect (UPI) в процессорах Skylake -SP Xeon на базе разъема LGA 3647.

Содержание
  • 1 Предпосылки
  • 2 Реализация
  • 3 Частотные характеристики
  • 4 Уровни протокола
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки
Предпосылки

Хотя иногда его называют «шиной», QPI - это точка-точка -точка межсоединения. Он был разработан, чтобы конкурировать с HyperTransport, который использовался Advanced Micro Devices (AMD) примерно с 2003 года. Intel разработала QPI в своем Массачусетском Центре проектирования микропроцессоров (MMDC) членами того, что была Alpha Development Group, которую Intel приобрела у Compaq и HP и, в свою очередь, изначально была создана Digital Equipment Corporation (DEC). О его разработке было сообщено еще в 2004 году.

Intel впервые поставила его для настольных процессоров в ноябре 2008 года на Intel Core i7-9xx и X58 набор микросхем. Он был выпущен в процессорах Xeon под кодовым названием Nehalem в марте 2009 года и в процессорах Itanium в феврале 2010 года (кодовое имя Tukwila).

Реализация
QPI - это uncore в микроархитектуре Intel Nehalem

QPI - это элемент системной архитектуры, которую Intel называет архитектурой QuickPath, которая реализует то, что Intel называет технологией QuickPath. В простейшей форме на однопроцессорной материнской плате один QPI используется для подключения процессора к концентратору ввода-вывода (например, для подключения Intel Core i7 к X58 ). В более сложных экземплярах архитектуры отдельные пары каналов QPI соединяют один или несколько процессоров и один или несколько концентраторов ввода-вывода или концентраторов маршрутизации в сети на материнской плате, позволяя всем компонентам получать доступ к другим компонентам через сеть. Как и в случае с HyperTransport, архитектура QuickPath предполагает, что в процессоры будут интегрированы контроллеры памяти, и обеспечивает архитектуру неравномерного доступа к памяти (NUMA).

Каждый QPI состоит из двух 20-полосных двухточечных каналов передачи данных, по одному в каждом направлении (полнодуплексный ), с отдельной парой тактовых импульсов в каждом направлении, всего 42 сигналы. Каждый сигнал представляет собой дифференциальную пару , поэтому общее количество выводов равно 84. 20 дорожек данных разделены на четыре «квадранта» по 5 дорожек в каждом. Базовая единица передачи - это 80-битный flit, который передается за два тактовых цикла (четыре 20-битных передачи, две за такт). 80-битный flit имеет 8 бит для обнаружения ошибок, 8 бит для «заголовка канального уровня» и 64 бита для данных. Пропускная способность QPI объявляется путем вычисления передачи 64 битов (8 байтов) данных каждые два тактовых цикла в каждом направлении.

Хотя первоначальные реализации используют одиночные четырехквадрантные ссылки, спецификация QPI допускает другие реализации. Каждый квадрант можно использовать независимо. На высоконадежных серверах канал QPI может работать в ухудшенном режиме. Если один или несколько из 20 + 1 сигналов выйдут из строя, интерфейс будет работать с оставшимися сигналами 10 + 1 или даже 5 + 1, даже переназначая часы на сигнал данных, если часы не работают. Первоначальная реализация Nehalem использовала полный четырехквадрантный интерфейс для достижения 25,6 ГБ / с, что обеспечивает вдвое большую теоретическую пропускную способность, чем у Intel 1600 МГц FSB, используемой в чипсете X48.

Хотя некоторые высокопроизводительные процессоры Core i7 имеют QPI, другие «массовые» настольные и мобильные процессоры Nehalem, предназначенные для однопроцессорных плат (например, LGA 1156 Core i3, Core i5 и другие Процессоры Core i7 из семейств Lynnfield / Clarksfield и последующих) не предоставляют QPI извне, поскольку эти процессоры не предназначены для участия в многопроцессорных системах. Однако QPI используется внутри этих микросхем для связи с «uncore », который является частью микросхемы, содержащей контроллеры памяти, PCI Express на стороне ЦП и графический процессор, если таковой имеется; ядро может находиться или не находиться на том же кристалле, что и ядро ​​ЦП, например, оно находится на отдельном кристалле в Westmere -based Clarkdale / Arrandale. Эти однопроцессорные микросхемы, выпущенные после 2009 г., взаимодействуют извне через более медленные интерфейсы DMI и PCI Express, поскольку функции традиционного северного моста фактически интегрированы в эти процессоры, начиная с Lynnfield, Clarksfield., Кларкдейл и Аррандейл; таким образом, нет необходимости нести расходы на доступ к (бывшему) интерфейсу передней шины через сокет процессора. Хотя связь QPI между ядром и ядром отсутствует в настольных и мобильных процессорах Sandy Bridge (как, например, в Clarkdale), внутреннее кольцевое соединение между ядрами на кристалле также основано на принципах, лежащих в основе QPI, по крайней мере, что касается когерентности кэша.

Частотные характеристики

QPI работает с тактовой частотой 2,4 ГГц, 2,93 ГГц, 3,2 ГГц, 3,6 ГГц, 4,0 ГГц или 4,8 ГГц (частоты 3,6 ГГц и 4,0 ГГц были введены с платформой Sandy Bridge-E / EP и 4,8 ГГц с платформой Haswell-E / EP). Тактовая частота для конкретного канала зависит от возможностей компонентов на каждом конце канала и характеристик сигнала пути прохождения сигнала на печатной плате. Неэкстремальные процессоры Core i7 9xx ограничены частотой 2,4 ГГц при штатных эталонных тактовых частотах. Передача битов происходит как по нарастающему, так и по спадающему фронту тактовой частоты, поэтому скорость передачи вдвое превышает тактовую частоту.

Intel описывает пропускную способность данных (в ГБ / с), считая только 64-битные полезные данные в каждом 80-битном флите. Однако затем Intel удваивает результат, потому что пара однонаправленных каналов передачи и приема может быть активна одновременно. Таким образом, Intel описывает пару каналов QPI с 20 полосами (отправка и получение) с тактовой частотой 3,2 ГГц как имеющую скорость передачи данных 25,6 ГБ / с. Тактовая частота 2,4 ГГц обеспечивает скорость передачи данных 19,2 ГБ / с. В более общем плане, по этому определению двухканальный 20-полосный QPI передает восемь байтов за такт, по четыре в каждом направлении.

Скорость вычисляется следующим образом:

3,2 ГГц
× 2 бит / Гц (удвоенная скорость передачи данных)
× 16 (20) (бит данных / QPI ширина канала)
× 2 (однонаправленные отправка и прием работают одновременно)
÷ 8 (бит / байт)
= 25,6 ГБ / с
Уровни протокола

QPI определяется как пятиуровневая архитектура с отдельными физическим, канальным, маршрутизационным, транспортным и протокольным уровнями. В устройствах, предназначенных только для использования QPI точка-точка без пересылки, таких как процессоры Core i7-9xx и Xeon DP, транспортный уровень отсутствует, а уровень маршрутизации минимален.

Физический уровень
Физический уровень включает в себя фактическую проводку и дифференциальные передатчики и приемники, а также логику самого низкого уровня, которая передает и принимает модуль физического уровня. Единицей физического уровня является 20-битный «phit». Физический уровень передает 20-битный «фит» с использованием одного фронта тактового сигнала на 20 дорожках, когда все 20 дорожек доступны, или на 10 или 5 дорожках, когда QPI перенастраивается из-за сбоя. Обратите внимание, что в дополнение к сигналам данных от передатчика к приемнику пересылается тактовый сигнал (что упрощает восстановление тактовой частоты за счет дополнительных выводов).
Канальный уровень
Канальный уровень является отвечает за отправку и прием 80-битных флит. Каждый флит отправляется на физический уровень как четыре 20-битных фита. Каждый flit содержит 8-битный CRC, сгенерированный передатчиком канального уровня, и 72-битную полезную нагрузку. Если приемник канального уровня обнаруживает ошибку CRC, приемник уведомляет передатчик посредством flit на обратном канале пары, и передатчик повторно отправляет flit. Канальный уровень реализует управление потоком с использованием схемы кредита / дебета, чтобы предотвратить переполнение буфера получателя. Канальный уровень поддерживает шесть различных классов сообщений, чтобы позволить более высоким уровням отличать мигание данных от сообщений, не относящихся к данным, в первую очередь для поддержания согласованности кэша. В сложных реализациях архитектуры QuickPath канальный уровень может быть настроен для поддержки отдельных потоков и управления потоками для разных классов. Неясно, требуется ли это или реализовано ли это для однопроцессорных или двухпроцессорных реализаций.
Уровень маршрутизации
Уровень маршрутизации отправляет 72-битный блок, состоящий из 8-битного заголовка и 64-битная полезная нагрузка. Заголовок содержит пункт назначения и тип сообщения. Когда уровень маршрутизации получает объект, он проверяет свои таблицы маршрутизации, чтобы определить, достиг ли объект своего пункта назначения. Если это так, он передается на следующий, более высокий уровень. Если нет, он отправляется по правильному исходящему QPI. На устройстве только с одним QPI уровень маршрутизации минимален. Для более сложных реализаций таблицы маршрутизации уровня маршрутизации более сложны и динамически модифицируются, чтобы избежать сбоев в каналах QPI.
Транспортный уровень
Транспортный уровень не требуется и отсутствует в устройствах которые предназначены только для соединений точка-точка. Это включает в себя Core i7. Транспортный уровень отправляет и принимает данные через сеть QPI от своих одноранговых узлов на других устройствах, которые не могут быть напрямую подключены (т. Е. Данные могли быть маршрутизированы через промежуточное устройство). Транспортный уровень проверяет полноту данных, и если нет, он запрашивает повторную передачу от своего партнера.
Уровень протокола
Уровень протокола отправляет и принимает пакеты от имени устройства. Типичный пакет - это строка кэша памяти. Уровень протокола также участвует в поддержании когерентности кеша, отправляя и получая сообщения о согласованности кеша.
См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-24 03:58:21
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте