了解PCI Express的Posted传输与Non-Posted传输
2023-09-05 09:38:18
正文
了解PCI Express的Posted传输与Non-Posted传输
目前PCI Express总线取代PCI总线成为PC局部总线的主流,且PCIe在很大程度上继承了PCI的设计思想,可以说PCI是PCIe的基础,本文所重点讲解的Posted和Non-Posted传输也是基于PCI总线讲解,但在PCIe总线中绝大部分是相同的,PCI中的HOST主桥(又称CPU桥)、Target从桥(又称设备桥)、PCI配置空间、PCI总线带宽等也同样适用于PCIe总线。
在PCI系统中,传输数据由Host主桥(又称CPU桥)发出请求,发送一个处于总线地址范围内的地址,该地址可能是Memory address或者I/O address,同时还需要设定若干控制信号,如RW(读/写)、IRDY(允许接收数据)、TRDY(允许发送数据)等,当Target从桥(又称设备桥)检测到这些控制信号后,经过一定时间延迟(系统延迟、总线延迟、设备延迟等因素影响)即回应发出数据(假设为写操作)或准备接收数据(假设为读操作),因此整个过程分为三个阶段:1、请求阶段(Host主桥发出一个传输请求);2、等待阶段(Host主桥等待设备的反馈);3、响应阶段(设备对Host主桥的请求做出回应,发送或接收数据)。
PCI总线的传输模式主要有以下两种:
Posted传输
Posted(缓存)传输模式中,Host 主桥发出请求后,不需要等待从设备的反馈信号,而是继续工作,由设备直接将数据读入或写出缓存,这样可以提高数据传输的效率,具体过程如下:1、Host 主桥发出传输请求;2、Target 从桥检测到请求后,开始将数据读入或写出缓存,并向 Host 主桥发送回应信号;3、Host 主桥收到回应信号后,知道数据已经传输完毕,就可以继续工作。
Non-Posted传输
Non-Posted(非缓存)传输模式中,Host 主桥发出请求后,必须等待Target从桥的反馈信号,才能继续工作,具体过程如下:1、Host 主桥发出传输请求;2、Target 从桥检测到请求后,开始将数据读入或写出缓存,并向 Host 主桥发送回应信号;3、Host 主桥收到回应信号后,知道数据已经传输完毕,就可以继续工作。
Posted传输模式的优点是能够提高数据传输的效率,但缺点是需要额外的缓存空间。Non-Posted传输模式的优点是不需要额外的缓存空间,但缺点是数据传输的效率较低。在实际应用中,通常使用Posted传输模式来传输大块数据,而使用Non-Posted传输模式来传输小块数据。
PCI Express总线传输模式
PCIe总线传输的数据分为两种类型:数据包和控制包。数据包承载的数据主要包括内存和I/O访问、DMA数据传输等,PCIe总线传输数据都是数据包格式的。而控制包用于配置和管理PCIe总线,比如配置地址空间、设置中断、调整流量控制参数,包含有PCI总线传输模式和相关设备设置的信息。在PCI总线中,设备提供其具体传输模式支持情况,PCI总线按此情况进行传输。在PCIe总线中,从设备支持和不支持Posted传输模式根据其实际情况,Host桥都会采用Posted传输模式,而若设备不支持Posted传输模式,那么传输和非传输地址对应的两个传输通道是分开的,在非传输通道上使用Non-Posted传输模式。若设备支持Posted传输模式,那么传输和非传输地址对应的两个传输通道是合并的,在合并的传输通道上使用Posted传输模式。