Receiver Elements of the ACK/NAK Protocol
ACK/NAK协议中的接收端的一些关键元素介绍。
ACK/NAK协议中的接收端的一些关键元素介绍。
学习协议是蛮枯燥的一个事情。而学习ACK/NAK就更枯燥,整个ACK/NAK流程比较复杂,发送接收都有较晦涩的逻辑流程。
TLP报文在链路上传输的可靠性,是由ACK/NAK机制来保证的。事实上很多其他协议也有类似的机制
TL层的TLP报文有个ECRC,而DLL层对TLP会加上序列号和LCRC。两个CRC有何不同呢?
数据链路层的报文(DLLP)是由发送端的数据链路层生产,并在接收端被接收端的数据链路层接收,生活的范畴仅在一条链路上。DLLP包括用于Ack/Nak机制、电源管理、流控(Flow Control)以及一些设备厂商自定义的功能。
数据链路层位于事务层和物理层之间,是整个PCIe链路的数据传输的可靠性非常重要的一层,主要功能如下:
阶段性总结
今天我们来看一看Transaction Layer的TLP报文的具体组成。回顾一下前面我们讲到的Transaction Layer的报文。分为三个部分:Header、Data和ECRC。
在Linux下,AER(Advanced ErrorReport)驱动都是注册给通用的Port Bus Driver,称之为service driver。除了AER,还有热插拔等驱动也是采用类似的注册方式。
昨天我们讲了PCIe系统里的报文顺序规则,其实在整条报文的传递路径上,对于报文顺序影响最大的就是PCIe Switch(再回忆一下,PCIe Switch内部可以看作是多个PCI-PCI的桥组成的)。事实上,PCI系统里的顺序规则主要就是针对PCI桥的。