PCIE 6.0 (三)
事务层
⊙transaction layer
作为协议的最高层,事务层的主要功能是:
• 流水线式完整拆分交易协议
• 区分事务层数据包 (TLP) 的排序和处理要求的机制
• 基于credit的流量控制
• 可选支持数据中毒和端到端数据完整性检测。
0****1
**###
Transaction Layer Overview
**
PCIe 6.0 增加了一种新的传输模式 flit mode,而传统的传输模式就变成了non-flit mode。在传统模式中,TLP是不定长的,物理层中需要start end标志来标记数据包的头和尾。而且TLP和DLLP是工作在不同的层中,相互之间是独立的。
PCIe 6.0的flit mode借用了NoC中flit的概念(也可能不是借用,因为笔者是做NoC的,所以可能会有先入为主的影响),将多个TLP和一个DLLP的信息打包成一个大的数据帧,称为flit,数据的传输以flit为单位,每个flit固定为256Byte。需要注意的是,flit既不在事务层也不在数据链路层,而是在物理层,就好比NoC的flit是直接定义在物理总线上的,PCIe的flit是直接定义在物理层的lane中的.
事务层是请求者和完成者之间信息传输的基础。 在这层协议中定义了四个地址空间,并定义了不同的事务类型,每个都有自己独特的预期用途,如下所示
Memory Transactions
内存事务包括以下类型:
• 读取请求/完成
• 写请求
• 可延迟内存写入请求/完成
• 原子操作的请求/完成
I/O Transactions
PCI Express 支持 I/O 空间,以便与需要使用它们的旧设备兼容。 I/O 事务包括以下类型:
• 读取请求/完成
• 写请求/完成
Message Transactions
message事务,或简称为消息,用于支持设备之间事件的带内通信。除了协议中定义的特定消息外,PCI Express 还支持供应商定义的消息使用指定的消息代码。
事务层数据包格式
事务由请求和完成组成,它们使用数据包进行通信。数据包的域断可见下图,(一个数据包的大小如果为512Bit,则每个预断的值就是将512Bit的值按顺序填在下图的格式表中)。
0****2
事务层协议 - 数据包定义
前面给大家介绍了TL的数据包格式由TLP Prefix、header,data组成。下面为大家介绍在每个小部分里不同域断的含义。
Header Fields For Non-Flit Mode
Fmt 字段指示一个或多个 TLP 前缀的存在,Type 字段指示相关的 TLP前缀类型。
- TLP Header 的 Fmt 和 Type 字段提供了确定剩余部分大小所需的信息。同时TLP 报头的 Fmt、Type、TD 和 Length 字段包含确定 TLP 非前缀部分的总体大小所需的所有信息。 Type 字段除了定义 TLP 的类型外,还决定了交换机如何路由 TLP。 以下各节将不同类型的 TLP。
- TC[2:0]:流量类别 (TC) 是一个 3 位字段,允许将事务区分为八个流量类别。 与 PCI Express 虚拟通道支持一起,TC 机制是实现差异化流量服务的基本要素。(TC0是表示此次传输的数据包优先级最高要优先通过) 每个 PCI Express 事务层数据包都使用 TC 信息作为在 PCI Express 结构中端到端携带的不变标签。 当数据包穿过结构时,此信息将在每个链路和每个交换机元素内使用,以做出有关正确处理流量的决策。 服务的一个关键方面是根据 TC 标签通过相应的虚拟通道路由数据包。
- R:保留;
- TLP Hints (TH):TLP Hints,用以指示 TLP Header 中是否含有 TPH 及 TPH TLP Prefix。(具体参考PCIE协议介绍)
- Attr:Attributes,通过该字段提供附加信息给接收端,告知接收端采用非默认方式来处理当前 TLP,常用于 TLP 排序、Snoop 硬件一致性管理等方面。
- TD:TLP Digest,用以指示 TLP 末尾的 Digest 字段是否含有 ECRC。仅用于 NFM。FM 的 ECRC 相关指示放在了 TS。
- Error Poisoned:Error Poisoned,PCIe E2E 数据完整性相关,用以指示当前 TLP 的 Data Payload 被污染。
- Length[9:0]:Length,用以指示当前 TLP 的 Data Payload 长度,仅对带有 Data Payload 的 TLP 有效, 单位为 DW。
Data Payloads For Non-Flit Mode
ARI : Alternative Routing-ID,用于Requester IDs,Completer IDs以及Routing ID。
ARI Device : 与Upstream Port关联的设备,其Functions均包含 ARI Extended
ARI Downstream Port : 支持 ARI 转发的Switch Downstream Port或Root Port。
( ARI(Alternative Routing-ID),备选路由ID。在PCIE中,往往数据包传输通过TLP的形式。这些TLP大致分为Memory Read/Write TLP , Configuration Read/Write TLP ,Completion TLP, Message TLP以及IO TLP。这些TLP从Request端到Completion端的过程叫做路由,而路由又大致分为两类地址路由和ID路由。
所有的ID路由中的ID包括Request端的bus number,device number以及function number。其中ID有16 bits,bus number 8 bits,device number 5 bits,function number 3 bits意味着支持8个function。
对于有些device功能比较复杂或者支持FBP技术的root port或者device,往往8个function不足以满足要求,这个时候就出现了ARI技术。将device number的5 bits也用作function,这样便可以由原来的8个function扩展到256个function。 )
- Length表示DW的数目,为整数
- 除了那些明确引用数据长度的消息,Length[9:0] 为所有Message保留
(请参阅协议第 2.2.8 节中的Message Code表。) - 有 data payload的 TLP 发送器不允许TLP Length字段给出的data payload长度超过发送器Device Control寄存器 Max_Payload_Size 字段中的值指定的DW长度。
- 对于ARI 设备,Max_Payload_Size 仅由Function 0 中的设置决定,忽略其他Function中的 Max_Payload_Size 设置。
- 如果一个非ARI Multi-Function Device(MFD)中的所有Functions 的Max_Payload_Size完全相同,如果有个Upstream Port与这个MFD相关联,它传输的 TLP data payload不得超过通用 Max_Payload_Size 设置。
- 如果一个非ARI Multi-Function Device(MFD)中的所有Functions 的Max_Payload_Size不完全相同,如果有个Upstream Port与这个MFD相关联,它传输的 TLP data payload不得超过我们自定义的 Max_Payload_Size 设置。
- 由 TLP 的 Length 字段给出的已接收 TLP 的data payload大小不得超过接收器设备Controller 寄存器的 Max_Payload_Size 字段中的值指定的长度。接收者必须检查是否违反此规则。 如果接收器确定 TLP 违反此规则,则该 TLP 是格式错误的 TLP,这是一个与接收端口相关的报告错误。
- 对于 ARI 设备,Max_Payload_Size 仅由Function 0 中的设置确定。其他Function中的 Max_Payload_Size 设置将被忽略。
- 如果一个非ARI Multi-Function Device(MFD)中的所有Functions 的Max_Payload_Size完全相同,如果有个Upstream Port与这个MFD相关联,接收器需要根据通用 Max_Payload_Size 的设置检查 TLP data payload大小。
- 如果一个非ARI Multi-Function Device(MFD)中的所有Functions 的Max_Payload_Size不完全相同,如果有个Upstream Port与这个MFD相关联,接收器需要根据自定义的Max_Payload_Size 设置检查 TLP 的data payload。
对于包含数据的 TLP,Length字段中的值与 TLP 中包含的实际数据量必须匹配。同时,接收者必须检查是否违反此规则。 如果接收器确定 TLP 违反此规则,则该 TLP 是Malformed TLP,这是一个跟Receiving Port相关的Reported Error。(RTL实现中要实现的ERROR异常)
-
PCIe
+关注
关注
15文章
1184浏览量
82311 -
数据包
+关注
关注
0文章
247浏览量
24334 -
TLP
+关注
关注
0文章
30浏览量
15590
发布评论请先 登录
相关推荐
评论