Завершение в фазе передачи данных

IDрегистра и Тег, скопированные из оригинального запроса чтения памяти, тип транзакции, количество требуемых данных с полем длины данных, класс трафика, если он отличен от TC0, атрибуты, чтобы указать, если ‘relaxedordering‘ и ‘nosnoop‘ биты должны быть установлены или очищены (эти биты копируются из первоначального запроса). Наконец посылается статус удачного завершения (SC).

Transactionlayer использует эту информацию, чтобы построить CplDTLP. Точный формат TLP пакета описывается в более поздней главе. Создается 3 DW заголовок. Кроме того, TransactionLayer добавляет собственный IDкомплитера в заголовок. TD (transactiondigestpresent) бит устанавливается в заголовке TLP, если 32-bitEndtoEndCRC добавляется в хвостовую часть пакета. TLP включает полезную нагрузку данных. Логика управления потоком данных подтверждает достаточные «credits» доступные для виртуального канала, связанного с используемым классом трафика.

Только тогда CplDTLP посылается в DataLinkLayer. DataLinkLayer добавляет 12 битный порядковый ID и 32 битный LCRC, который составляется, основываясь на полном пакете. Копия TLP с порядковым ID и LCRC храниться в буфере повтора.

Пакет направляется в PhysicalLayer, который прикрепляет Начальный и Конечный символы в пакет. Пакет разделяется по байтам, зашифровывается и кодируется в 10 битовый код. Наконец пакет конвертируется в последовательный битовый проток на всех Линиях и передается через канал в соседний комплитер.

Комплитер конвертирует входящий последовательный битовый потов обратно в 10 битовые символы, помещая пакет в буфер регулируемой емкости. 10 битовые символы конвертируются обратно в байты, а байты со всех линий дешифрируются и объединяются. Начальный и Конечный символы определяются и удаляются. Итоговый TLP посылается в DataLinkLayer.

DataLinkLayer комплитера проверяет LCRC ошибки в принятом TLP и проверяет порядковый ID на пропущенные TLPили TLP без ID. Допустим ошибок нет. DataLinkLayer создает ACKDLLP, который содержит такой же порядковый ID, который содержится в CplDTLP. 16 битное CRC добавляется к ACKDLLP. DLLP посылается обратно в PhysicalLayer, который передает ACKDLLP запросчику.

PhysicalLayerкомплитера переформулирует ACKDLLP и посылает выше в DataLinkLayer, который определяет порядковый ID и сравнивает его с TLP, хранящемся в буфере повтора. Соответствующий CplDTLPстирается из буфера повтора. Если получен NAKDLLP, то комплитер перешлет копию TLP, хранящуюся в буфере повтора.

В это время TransactionLayer запросчика получает CplDTLP в соответствующий VC буфер, обозначенный TLPTC. TransactionLayer использует Тег в заголовке, чтобы связать пакет завершения с пакетом запроса. Transactionlayer проверяет ECRC ошибку. Он направляет содержимое заголовка и полезную нагрузку данных, включая Статус Завершения, в DeviceCore/SoftwareLayer запросчика. Транзакция чтения памяти ЗАВЕРШЕНА.

Hot Plug

PCIExpress поддерживает собственное горячее включение, хотя поддержка горячего включения в устройстве не обязательно. Некоторые основные элементы в системе горячего включения PCIExpress:

  • Индикаторы, которые показывают состояние питания слота.
  • Управляемая вручную RetentionLatch (Защелка удержания, MRL), которая удерживает встроенные карты взамен.
  • MRLсенсор, который позволяет программному обеспечению порта и системы определить открытие MRL.
  • ElectromechanicalInterlock (электромеханическая блокировка), которая предотвращает удаление встроенных карт, пока слот под питанием.
  • Кнопка внимания, которая позволяет пользователю запрашивать операции горячего включения.
  • Программный пользовательский интерфейс, который позволяет пользователю запрашивать операции горячего включения.

Нумерация Слотов для визуального обозначения слотов.

Ссылка на основную публикацию
Adblock detector