PCIe 6.0入门之事务层

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异常)

领跑行业的坚果投影的品牌影响力源于何处?
苹果拟开设“材料回收”实验室 利用机器人技术和机器学习来拆解设备
微处理器温度控制模拟初始化和整体参数设定
布线技巧六:光纤电缆
为什么智慧城市的发展需要强大的5G网络支持
PCIe 6.0入门之事务层
MediaTek 构建 Wi-Fi 7 全球生态系统,迎接规模化量产
GPT-4发布!多领域超越“人类水平”,专家:国内落后2-3年
安科瑞精密配电监控解决方案
图像尺寸测量仪维护保养
雷柏VT200游戏鼠标评测 兼具设计感与功能性的实用性游戏鼠标
腾讯推出首款自研硬件产品“腾讯叮当智能屏”
盘点华为麒麟SoC芯片功能和参数
什么是变频器通讯
车载以太网挑战CAN总线
如何在WEBENCH工具中创建解决方案
led拼接大屏的应用广泛,该如何选择创意led大屏
工业机器人的控制方式的功能要点
三星电子也开始自研智能传感器?将用于无人驾驶
高通针对苹果的诉讼,已经成功在中国取得了阶段性胜利