本章主要介绍了 PCI Express 事务的 顺序规则(Transaction Ordering Rules),即在不同类型的请求和完成之间,如何确保它们按照一定的顺序传输和处理,避免发生死锁或资源竞争等问题。
1. 事务类型和分类
文中提到的不同类型的事务有:
• Posted Request(已发布请求):包括内存写请求、消息请求等,通常不需要收到响应。
• Read Request(读取请求):包括配置读取请求、I/O 读取请求、内存读取请求等,需要返回数据。
• Non-Posted Request with Data(带数据的非发布请求):例如配置写请求、I/O 写请求或原子操作请求。
• Completion(完成包):表示请求的处理结果,可能是成功的或失败的。
这些事务都可能涉及不同的 Traffic Class(TC),即数据流的分类。文中明确表示,不同的 Traffic Class 之间 没有顺序要求,即它们可以并行执行。而同一个 Traffic Class 中的事务,则必须遵循一定的顺序规则。
2. 表格说明:事务间的顺序规则
在spec的表格 2-40 中,不同类型的事务之间的顺序关系被详细列出。表格中的行和列分别代表了 发起的事务 和 随后的事务,每个单元格中的值指示了这两个事务之间的顺序要求。
• Yes:表示第二个事务必须允许通过第一个事务,以避免死锁(死锁是指两者互相等待对方完成,导致系统无法继续执行)。例如,第二个事务应该允许通过第一个事务进行处理。
• Y/N:表示没有强制要求,第二个事务可以选
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



