接前一篇文章:《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层(1)
7.1 数据链路层的组成结构
数据链路层使用ACK/NAK协议发送和接收TLP,由发送部件和接收部件组成。其中,发送部件由Replay Buffer、ACK/NAK DLLP接收逻辑和TLP发送逻辑组成;而接收部件由“Error Check”逻辑、ACK/NAK发送逻辑和TLP接收逻辑组成。数据链路层的拓扑结构如图7-1所示:
图7-1 数据链路层的拓扑结构
实际上,每个PCIe设备的数据链路层都含有发送部件和接收部件。而上图为简化起见,仅含有Device A的发送部件和Device B的接收部件,即Device A发送链路两端使用的两个部件。Device A也具有接收部件,Device B也具有发送部件,这两个部件由Device B的发送链路使用,Device B发送链路的工作原理与Device A类似,本节对此不做详细介绍。
当PCIe设备进行数据传递时:
1)首先在事务层中产生TLP;
2)然后通过事务层将这个TLP发送给数据链路层;
3)数据链路层将这个TLP加上sequence前缀和LCRC后缀后,首先将这个TLP放入到Replay Buffer中,然后再发送到物理层。
目标设备(Device B)从物理层接收TLP时,将首先获得带前后缀的TLP,该TLP经过数据链路层传递给传递给事务层时,将被去掉Sequence前缀和LCRC后缀。在数据链路层中,TLP的格式如下图所示:
更多内容请看下回。