PCIe 6.0入门之事务层报文格式

电子说

1.3w人已加入

描述

PCIE 6.0 (四)

事务层报文格式

⊙transaction layer

作为协议的最高层,事务层的主要功能是:

• 流水线式完整拆分交易协议

• 区分事务层数据包 (TLP) 的排序和处理要求的机制

• 基于credit的流量控制

• 可选支持数据中毒和端到端数据完整性检测。

0****1

**###

Transaction Descriptor

**

事务描述符是一种在请求方和完成方之间携带事务信息的机制。通过事务描述符TL层才知道要如何处理这些报文。在整个事务描述符由三个字段组成:

• Transaction ID—识别未完成的交易

• Attributes field — 指定事务的特征

• Traffic Class (TC) field — 将交易与所需服务类型相关联

Transaction ID

下图显示事务描述符的字段。 这些字段在数据包标头中不连续。

PCIe

在架构上,Tag[13:0] 是由每个请求者生成的 14 位字段,表示一次pcie的通信TLP 的序号。对于所有需要完成该请求者 ID 的未完成请求,它必须是唯一的。TAG的大小决定了事务层传输事务的数量的大小,相比于PCIE 5.0支持10bit tag,PCIE 6.0可以支持14bit tag,事务的数量扩大了16倍, PCIE 6.0 的协议中有具体的规定,哪些情况下可以支持14bit TAG,小编在此就不详细列出了。

Requester ID 字段包含“生成这个 TLP 报文”的 PCIe 设备的总线号(Bus Number)、设备号(Device Number)和功能号(Function Number),对于存储器写请求 TLP,Requester ID 字段并不是必须的。但是 PCIe 总线规范并没有明确说明存储器写请求 TLP 究竟需不需要 Requester ID 字段,为此 IC 设计者依然需要将存储器写 TLP 的 Requester ID 字段置为有效。

对于 Non-Posted 数据请求,目标设备需要使用完成报文做为回应。在这个完成报文中,需要使用源设备的 Requester ID 字段。因此在 Non-Posted 数据请求 TLP 中,如存储器读请求、I/O 和配置读写请求 TLP,必须使用 Requester ID 字段。

Attributes field

Attributes 字段用于提供附加信息,允许修改 Transactions 的默认处理。 例如:

• 排序 (ordering)

(PCIE中报文是有优先级的,不同的报文有不同的优先级,order功能就是用来计算如何让优先级高的报文先进行传输,并且不打乱在链路中其他报文的顺序,后面会和大家介绍order的功能)

• 硬件一致性管理 (snoop)

Attributes是允许但不需要优化流量处理的提示。 优化支持的级别取决于特定 PCI Express 外设和平台构建块的目标应用。 在Flit Mode中,Attributes在 TLP 报头中是连续的。 在 Non-Flit Mode 中,Attributes bit 2 有时标记为 A2,并且与bit 1 和 0 不相邻。

PCIe

Traffic Class (TC) field

流量类别 (TC) 是一个 3 位字段,允许将事务区分为八个流量类别。

与 PCI Express 虚拟通道支持一起,TC 机制是实现差异化流量服务的基本要素。 每个 PCI Express 事务层数据包都使用 TC 信息作为在 PCI Express 结构中端到端携带的不变标签。 当数据包穿过结构时,此信息将在每个链路和每个交换机元素内使用,以做出有关正确提供流量服务的决策。 服务的一个关键方面是根据 TC 标签通过相应的虚拟通道路由数据包。

0****2

**## Completion Rules

**

PCIe

在TL层传输中报文可以根据类型分为P(post), np(non-post), cpl报文。P报文指的是报文发出去需要等待接收方发回已经接收到的响应,才能进行下一步处理的报文(eg:所有的Read报文, Non-Posted Write, DMWR, and AtomicOp )。CPL报文就是响应报文。NP则是不需要等待响应回来就可继续向下发送。

Completion Rules for Non-Flit Mode

PCIe

CPL按照ID进行路由,并使用 3 DW 标头。

◦ 请注意,路由 ID 字段直接对应于随相应请求提供的请求者 ID。 因此,对于完成,这些字段将统称为请求者 ID,而不是通常用于 ID 路由的不同字段。

• 除了包含在所有 TLP 中的报头字段和 ID 路由字段外,Completions 还包含以下附加字段(参见§ 图 2-73):

◦ Completer ID[15:0] - 标识完成者

◦ Completion Status[2:0] - 指示完成状态

PCIe

◦ BCM - 已修改的字节数 - 该位不得由 PCI Express 完成者设置,只能由 PCI-X 完成者设置

◦ Byte Count[11:0] - 请求的剩余字节数

◦Tag[9:0] - 结合 Requester ID 字段,对应于 Transaction ID。 在 Non-Flit Mode 中,Tag 字段为 10 位。

◦ Lower Address[6:0] - 完成起始字节的低字节地址

Completion Rules for Flit Mode

PCIe

在 Flit 模式中,CPL 的规则与 Non-Flit 模式中的相同,但域断定义有一些不一样。 在 Flit Mode 中,Completions 必须使用 Completion Header Base。在 Flit Mode 中,Tag 字段为 14 位。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分