数据链路层协议 数据链路层作为处理层和物理层的中间层,为处理层TLP在链路中传递提供可靠机制。数据链路层主要负责TLP 的可靠传输。所以数据链路层完成的主要任务是:1、数据交换。接收发送方处理层的TLP 包,并送到物理层。另外从物理层接收 TLP包并送到接收端的处理层。2、出错检测和裁决。LCRC 和序列号(TLP Sequ ence Nu mber)的生成;存储发送端的TLP 用于再试重发;为TLP 和DLLP 做数据完成性检测(crc 校验);DLLP的ack 和nack 响应;错误指示;链接确认超时重试机制。3、初始化和电源管理。跟踪链路状态并传送链路活动、链路复位、链路失去连连等状态给处理层;4、生成DLLP。用于链路管理功能包括 TLP 确认、电源管理、流程控制信息(VC 通道初始化)交流。在链接两端的数据链路层点对点传输. 数据完整性检测就是为DLLP 和TLP 做 crc 校验 DLLP 使用crc-16,TLP 使用 32bit 的LCRC,此外,TLP 还有一个序列号(sequ ence Nu mber),用于检测 TLP 丢失与否。LCRC 和sequ ence Nu mber 检测有误的TLP 或者在发送过程中丢失的TLP,将被发送端重新发送。发送端存放 TLP 的备份,在需要的时候将备份发送或者在收到接收端的正确接收确认后清除备份。 数据链路层跟踪链路连接的状态,并和处理层和物理层交流链路状态,通过物理层来完成对链路的管理。链路层中包含状态机DLCMSM(Data Link Control and Management State Machine)来完成这些任务,以下详细介绍。 ● DL_Inactive – Physical Layer reporting Link is non-operational or nothing is connected to the Port ● DL_Init – Physical Layer reporting Link is operational, initialize Flow Control for the default Virtual Channel ● DL_Active – Normal operation mode Status output: ● DL_Down – The Data Link Layer is not communicating with the component on the other side of the Link. ● DL_Up – The Data Link Layer is communicating with the component on the other side of the Link. Dl_Inactive状态随PCIE复位之后,将所有数据链路状态信息恢复到默认值,并放弃数据层重试缓冲器中的内容。当数据链路处于DL_Inactive状态时,将通知处理层链路处于非连接状态(DL_Down),处理层将停止发送TLP。数据链路层将不...