PCIE知识点:non-posted事务和posted事务

Non-posted(非转发)事务和-posted(转发)事务都是PCIE TLP(事务层包)类型。Non-posted TLP有返回TLP,而posted事务没有返回。记忆技巧:非转发事务非要返回。本文中说的事务指的是PCIE事务层TLP。

1、两者有什么区别?

Non-posted事务分为两个部分,首先是发送端向接收端发送TLP请求,接收端接收到请求完成后向发送端发送完成(Completion)TLP。包含:发送--接收--反馈三个过程。Non-posted事务必须等待接收到完成TLP,PCIE总线才能结束当前的TLP。

Posted TLP不需要完成TLP返回,此种方式中,TLP还没达到最终目的地之前,PCIE总线就可以结束当前的事务。

2、两种方式有哪些应用?


存储器读事务、IO读写事务和配置事务属于非转发事务。非转发事务按照分割事务的方法处理,请求者发情TLP请求给接受者,然后,接受者返回完成TLP给请求者,通知请求者说明自己已经接受到了请求TLP。例如存取读和IO读,在返回TLP中都包含所读数据。

存储器写事务和消息事务[2]属于转发事务。转发事务不需要返回TLP来确定事务是否完成。那么凭什么保证转发TLP正确传输呢,其实是通过数据链路层的Nak DLLP的和ACK DLLP来保证转发TLP正确的从发送到传输到接收端的。

参考文献
[1]PCI、PCI-X和PCIExpress的原理及体系结构-马鸣锦
[2]PCI Express Base Specification Revision 4.0 Version 1.0 P104

版权声明:本文为CSDN博主「IC小鸽」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/icxiaoge/article/details/80456837

推荐阅读