转发事务和非转发事务
在PCIe(Peripheral Component Interconnect Express)总线中,存在两种类型的事务:转发事务和非转发事务。
1、转发事务(Forwarded Transactions):转发事务是指从一个PCIe设备传输到另一个PCIe设备的事务。当一个设备发起一个事务并且目标设备不是直接连接在同一个根端点上时,该事务被认为是转发事务。转发事务需要通过PCIe交换机或桥接器来路由和转发,以达到目标设备。
2、非转发事务(Non-Forwarded Transactions):非转发事务是指从一个PCIe设备传输到直接连接在同一个根端点上的另一个PCIe设备的事务。当一个设备发起一个事务并且目标设备是直接连接在相同的根端点上时,该事务被认为是非转发事务。非转发事务可以直接在根端点上进行处理,无需经过PCIe交换机或桥接器的转发。
PCIE的分割事务
在PCIe(Peripheral Component Interconnect Express)总线中,分割事务(Split Transactions)是一种特殊的事务模式。它可以在一个PCIe事务中进行多次数据传输,以提高总线的效率和带宽利用率。
在分割事务中,一个PCIe设备(称为Split Completer)可以将一个事务分成多个片段进行处理。每个片段都会经过PCIe交换机或桥接器进行转发,直到最终到达目标设备。这种分割的方式可以允许多个片段同时在总线上传输,从而提高数据传输的效率。
分割事务通常在以下情况下被使用:
当目标设备的接收缓冲区较小,无法一次性接收整个事务时,可以使用分割事务将事务拆分成多个片段进行传输。
当总线带宽有限,无法一次性传输整个事务时,可以使用分割事务将事务分割为多个片段,并同时在总线上进行传输。
需要注意的是,分割事务在逻辑上看起来像是一个完整的事务,但在物理上却是由多个片段组成的。PCIe总线会根据需要进行适当的转发和路由,确保每个片段正确地传输到目标设备,并在接收端将它们重新组合成完整的事务。
通过使用分割事务,PCIe总线可以更有效地利用带宽,并提高数据传输的效率。这对于需要大量数据传输的应用场景非常有益,如高速网络接口卡、图形显卡等。