L-tile和H-tile Avalon® 存储器映射 Intel® FPGA IP PCI Express* 用户指南

ID 683667
日期 11/11/2021
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维护数据完整性
    • 使用重试(重播)缓冲器进行TLP重发以避免NAKDLLP接收或重播超时。
    • 重试缓冲器的管理
    • 链路再训练请求以避免因物理层链路训练和状态机(LTSSM)出现的错误。
图 81. Data Link Layer

DLL包含如下子块:

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