2.8PCIE事务层的两种传输方式
内容简介
2024-01-21
这篇文章很短,只有全文共557字,主要是介绍PCIE不同事务类型的传输方式,也是第二章节的最后一篇,明天就是第三章了,开始介绍PCIE的配置和路由相关内容。
正如前文所述,数据交换是基于请求与完成(响应)的机制,分为Non-Posted和Posted两种模式。
Posted有邮寄、传递的意思,我理解就好像送信一般,就是一站一站的中转。Posted的概念要早于PCIE,最初规定Posted总线事务的源设备向目标设备传递数据时,仅需把数据送到PCI桥就不用管了,由PCI桥接管往下传递。这样做的目的是缓解PCI总线的拥塞问题。Non-Posted模式则与之相反,当数据传递到目标设备后,目标设备需要返回完成信号。
总的来说,Non-Posted模式即请求端(requester transmits)发送完一包数据到目标设备(completer),目标设备要返回一包数据到请求设备,告知其接收情况。Posted模式则不需要目标设备返回TLP数据包,但在链路层有相关的应答机制用于维护链路传输,如下是不同事物类型的传输机制。如下图是不同事务的传输方式的汇总。
下面这张图是所有的细分数据类型的汇总,已经多次出场了。作为第二章的最后一节内容,还是叨叨一句,PCIE的传输方式就是根据需要组成不同的帧类型,然后发送出去,再根据需要判断是不是需要完成数据包。只不过人家做通用,要兼容PCI,优势基于X86架构,所以复杂了。
1
Non-Posted事物类型
如上表,Non-Posted模式有可分为两类,第一类是读事物,即MRd、MRdLk、IORd、CfgRd0/1,第二类是写事物,即IOWr、CfgWr01。首先看第一类读事物,如下图所示。这些图片均来自《pci express system architecture_200page》,有感兴趣的朋友可以点击公众号的【资料下载】获取。
第二类写事物,如下图所示。
2
Posted事物类型
post事物类型包括MWr、Msg和MsgD。
3
一个案例
如下图是一个案例,MRd数据包经过RC、SwitchA、SwitchB到达Endpoint,Endpoint沿这这条路径返回CplD数据包表示完成。
欢迎关注公众号领取PCIE相关资料
快来扫描下方二维码关注公众号,领取站内所有相关资料,所有哦~
有建议、有需求、有疑问、联系我