首页 理论教育LOCK、Delayed、Posted总线事务关系

LOCK、Delayed、Posted总线事务关系

【摘要】:PCI桥将下游传递到上游的LOCK总线事务转换为普通的总线事务,即去掉这个LOCK标志。如果该LOCK总线事务是Non-Posted总线事务,此时PCI桥并不能立即完成这个LOCK总线事务,因为PCI桥还需要将“Non-Posted总线请求”对应的总线完成信息传递给发起者之后,LOCK总线事务才能最终完成。该PCI桥不会使用Delayed总线事务接收其他Non-Posted总线事务,也不会暂存这些总线事务。丢弃所有暂存在PCI桥中的De-layed总线事务;允许LOCK总线事务超越任何读写请求。

PCI桥可以将一个LOCK总线事务从上游传递到下游,但是不能将一个LOCK总线事务从下游传递到上游。PCI桥将下游传递到上游的LOCK总线事务转换为普通的总线事务,即去掉这个LOCK标志。

当PCI桥从一个主设备接收一个LOCK总线事务之后,将这个总线事务发送到下游总线的目标设备。如果该LOCK总线事务是Non-Posted总线事务,此时PCI桥并不能立即完成这个LOCK总线事务,因为PCI桥还需要将“Non-Posted总线请求”对应的总线完成信息传递给发起者之后,LOCK总线事务才能最终完成。

在PCI桥没有将LOCK总线完成传递给发起者之前这段时间里,PCI桥仅接收这个发起LOCK总线事务的主设备的总线请求,而重试其他主设备发出的总线事务。该PCI桥不会使用Delayed总线事务接收其他Non-Posted总线事务,也不会暂存这些总线事务。

一个LOCK总线事务从PCI桥的上游到达PCI桥,并在PCI桥将这个LOCK总线事务传递到下游总线这段时间里,PCI桥需要进行以下处理。

(1)将所有同方向的PMW总线事务刷新到下游总线。(www.chuimin.cn)

(2)对于Delayed总线事务,PCI桥需要进行特别处理。丢弃所有暂存在PCI桥中的De-layed总线事务;允许LOCK总线事务超越任何读写请求。或者完成所有Delayed读写请求,再将LOCK总线事务发送给下游总线。

在PCI桥的下游总线接收LOCK总线请求之前,PCI桥仍然可以暂存来自下游总线的数据请求;而在下游总线接收LOCK总线请求之后,PCI桥不能接收任何来自下游总线的数据请求,直到发起LOCK总线请求的主设备解锁。

在一个最简单的PCI桥的实现中,一个LOCK总线事务在PCI桥的下游总线建立完毕后,PCI桥不能接收上/下游总线的数据请求,除了来自发起LOCK总线事务的PCI主设备的数据请求。而且PCI桥必须完成发向上游总线的PMW,DRC和DWC总线请求。采用这个规则可以保证使用LOCK总线事务时不会引发死锁。但是使用这些规则将极大影响PCI总线的传送性能,为此在处理器系统的设计中,最好不使用LOCK总线事务。