PCIe 总线采用了串行连接方式,并使用数据包(Packet)进行数据传输
采用这种结构有效去除了在PCI总线中存在的一些边带信号,如INTx和PME#等信号
在PCIe总线中,数据报文在接收和发送过程中,需要通过多个层次,包括事务层、数据链路层和物理层
PCIe 总线的层次组成结构与网络中的层次结构有类似之处,但是PCIe总线的各个层次都是使用硬件逻辑实现的。
transaction layer
事务层接收来自PCIe设备核心层的数据,并将其封装为TLP(Transaction Layer Packet)后,发向数据链路层
此外事务层还可以从数据链路层中接收数据报文,然后转发至PCIe设备的核心层
事务层的一个重要工作是处理PCIe总线的“order”。
在 PCIe总线中,“序”的概念非常重要,也较难理解。
在PCIe 总线中,事务层传递报文时可以乱序,这为PCIe设备的设计制造了不小的麻烦。
事务层还使用流量控制机制保证PCIe链路的使用效率。
数据链路层
数据链路层保证来自发送端事务层的报文可以可靠、完整地发送到接收端的数据链路层
来自事务层的报文在通过数据链路层时,将被添加Sequence Number前缀和CRC后缀。
数据链路层使用ACK/NAK协议保证报文的可靠传递
PCIe 总线的数据链路层还定义了多种 DLLP(Data Link Layer Packet),DLLP 产生于数据链路层,终止于数据链路层
物理层
物理层是PCIe总线的最底层,将PCIe设备连接在一起。PCIe总线的物理电气特性决定了PCIe链路只能使用端到端的连接方式。
PCIe总线的物理层为PCIe设备间的数据通信提供传送介质,为数据传送提供可靠的物理环境。
物理层是PCIe体系结构最重要,也是最难以实现的组成部分。
PCIe总线的物理层定义了LTSSM(Link Tr aining and Status State Machine)状态机,PCIe 链路使用该状态机管理链路状态,并进行链路训练、链 路恢复和电源管理
系统中上述层级的位置
在PCIe体系结构中,事务层,数据链路层和物理层存在于每一个端口(Port)中,也就是说Switch中必然存在一个以上的这样的结构(包括事务层,数据链路层和物理层的)。
各个layer详细功能描述