仅对英特尔可见 — GUID: nik1410564962858
Ixiasoft
10.5.1. ebfm_barwr规程
10.5.2. ebfm_barwr_imm处理过程
10.5.3. ebfm_barrd_wait处理过程
10.5.4. ebfm_barrd_nowt处理过程
10.5.5. ebfm_cfgwr_imm_wait处理过程
10.5.6. ebfm_cfgwr_imm_nowt处理过程
10.5.7. ebfm_cfgrd_wait处理过程
10.5.8. ebfm_cfgrd_nowt处理过程
10.5.9. BFM配置处理过程
10.5.10. BFM共享存储器访问处理过程
10.5.11. BFM日志和消息处理过程
10.5.12. Verilog HDL格式化函数
仅对英特尔可见 — GUID: nik1410564962858
Ixiasoft
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(低优先级)