Arria 10 Avalon-MM DMA接口PCIe解决方案用户指南

ID 683425
日期 10/31/2016
Public
文档目录

7.2. 数据链路层

数据链路层位于事务层和物理层之间。它维护数据包的完整性和在PCI Express链路级进行通信(通过DLL数据包的发送)。

DLL实现以下功能:

  • 通过接收和发送DLL数据包(DLLP)进行链路管理,并用于下列功能:
    • – DLLP接收和发送的电源管理
    • – 发送和接收ACK/NAK
    • – 通过生成和检查TLP和DLLP的CRC来维护数据完整性
    • – 使用重试(重播)缓冲器的TLP重发以防止NAKDLLP接收或重播超时。
    • – 重试缓冲器的管理
    • – 链路重培训请求以防因物理层链路训练和状态机(LTSSM)出现的错误。
图 36. 数据链路层

DLL具有以下子块(sub-block):

  • 数据链路控制和管理状态机—该状态机与物理层LTSSM状态机和事务层连接。它初始化链路和流程管理信用并向事务层报告状态。
  • 电源管理—该功能处理握手(handshake)以进入低电源模式。例如基于配置空间寄存器值和已接收电源管理(PM)DLLP的过度。所有Arria 10Hard IP for PCIe IP内核variant都不支持低电源模式。
  • 数据链路层数据包生成器和检查器—此块与DLLP的16-bit CRC相对应并维护已发送数据包的完整性。
  • 事务层数据包生成器—此块生成发送数据包,包括序列号和32-bit Link CRC(LCRC)。该数据包也被发送到重试缓冲器用于内部储存。重试模式中,TLP生成器接收来自于重试缓冲器的数据包并生成发送数据包的CRC。
  • 重试缓冲器—重试缓冲器储存TLP和重发所有的未确认数据包,以防止NAK DLLP接收。重试缓冲器丢弃所有的已应答数据包,以防止ACK DLLP接收。
  • ACK/NAK数据包—ACK/NAK块处理ACK/NAK DLLP和生成已发数据包的序列号。
  • 事务层数据包检查器—此块检查已接收TLP的完整性并生成ACK/NAK DLLP传输请求。
  • TX仲裁 — 此块仲裁交易,并按一下优先顺序:
    • – 初始化FC数据链路层数据包
    • – ACK/NAK DLLP(高优先性)
    • – 更新FC DLLP(高优先性)
    • – PM DLLP
    • – 重试缓冲TLP
    • – TLP
    • – 更新FC DLLP(低优先性)
    • – ACK/NAK FC DLLP(低优先性)