用于 PCI Express* 的 Intel® FPGA R-tile Avalon® Streaming IP用户指南

ID 683501
日期 3/28/2022
Public

本文档可提供新的版本。客户应 单击此处 前往查看最新版本。

文档目录

2.3.3.2. 数据链路层概述

Data Link Layer (DLL) 位于Transaction Layer(事务层)和Physical Layer(物理层)之间。它保证数据包的完整性,并在PCI Express链路级进行通信(通过DLL数据包传输)。

DLL执行以下功能:

  • 通过接收和发送DLL数据包(DLLP)进行链路管理,并用于下列功能:
    • DLLP接收和发送的电源管理
    • 发送和接收ACK/NAK数据包
    • 通过生成和检查TLP和DLLP的CRC维护数据完整性
    • 使用重试(replay)缓冲器进行TLP重发以避免NAK DLLP接收或replay超时。
    • 重试缓冲器的管理
    • 链路再训练请求,以避免因Physical Layer的Link Training和Status State Machine (LTSSM)造成的错误。
图 6. 数据链路层

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中的寄存器值。有关R-Tile Avalon® -ST IP for PCIe支持的电源状态的更多详细信息,请参阅章节电源管理接口
  • Data Link Layer Packet Generator and Checker—此块与DLLP的16-bit CRC相关联,并保持已发送数据包的完整性。
  • Transaction Layer Packet Generator—此块生成发送数据包,包括一个序列号和32位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—此块对事务进行仲裁,按顺序排列优先级:
    • 初始化FC Data Link Layer数据包
    • ACK/NAK DLLP(高优先级)
    • 更新FC DLLP(高优先级)
    • PM DLLP
    • Retry buffer TLP
    • TLP
    • 更新FC DLLP(低优先级)
    • ACK/NAK FC DLLP(低优先级)