用于 PCIe* 解决方案的 Intel® Stratix® 10 Avalon® -ST和Single Root I/O Virtualization (SR-IOV)接口用户指南

ID 683111
日期 12/06/2017
Public
文档目录

A.2. 数据链路层(Data Link Layer)

Data Link Layer位于Transaction Layer与Physical Layer之间。它保持了数据包的完整性,并在PCI Express链路层进行通信(通过DLL数据包传输)。

DLL实现以下功能:

  • 通过接收和发送DLL数据包(DLLP)进行链路管理,链路管理用于以下功能:
    • DLLP接收和发送的电源管理
    • 发送和接收ACK/NAK数据包
    • 通过生成和检查TLP和DLLP的CRC的数据完整性
    • NAK DLLP接收或重播超时情况下的TLP重新传输,使用重试(重播)缓存
    • 重试缓存的管理
    • 通过Physical Layer的Link Training and Status State Machine (LTSSM)发生错误时的链路重新培训请求
图 82. 数据链路层(Data Link Layer)

DLL包含以下子模块:

  • Data Link Control and Management State Machine—此状态机连接到Physical Layer的LTSSM状态机以及Transaction Layer。它初始化链路和流程控制信用,并对Transaction Layer报告状态。
  • Power Management—此功能用于处理握手(handshake)以进入低功耗模式。这种转换基于Configuration Space和接收到的Power Management (PM) DLLP中的寄存器值。所有的 Intel® Stratix® 10 Hard IP for PCIe IP core variants都不支持低功耗模式。
  • Data Link Layer Packet Generator and Checker—此模块与DLLP的16-bit CRC相关联,并保持已传输数据包的完整性。
  • Transaction Layer Packet Generator—此模块生成传输数据包,包括一个序列号和32-bit Link CRC (LCRC)。数据包被发送到retry buffer以供内部存储。在retry模式下,TLP generator接收来自retry buffer的数据包,并对传输数据包生成CRC。
  • Retry Buffer—retry buffer存储TLP,并在NAK DLLP接收情况下重新发送所有未确认的数据包。在ACK DLLP接收的情况下,retry buffer丢弃所有确认的数据包。
  • ACK/NAK Packets—ACK/NAK模块处理ACK/NAK DLLP,并生成已发送数据包的序列号。
  • Transaction Layer Packet Checker—此模块检查已接收的TLP的完整性,并生成一个ACK/NAK DLLP传输的请求。
  • TX Arbitration—此模块对传输进行仲裁,按以下顺序进行优先级排序:
    • Initialize FC Data Link Layer packet
    • ACK/NAK DLLP (高优先级)
    • Update FC DLLP (高优先级)
    • PM DLLP
    • Retry buffer TLP
    • TLP
    • Update FC DLLP (低优先级)
    • ACK/NAK FC DLLP (低优先级)