PCIE系统标准体系结构解读(二):体系结构概述之PCIe的设备层

PCIE系统标准体系结构解读(⼆):体系结构概述之PCIe的设备层1.2.1 概述
张武力
PCIe 规范定义了⼀种分层的设备设计体系结构。这些层分为处理层(Transaction Layer)、数据链路层(Data Link Layer)和物理层(Physical Layer),在垂直⽅向上⼜可以进⼀步分成两部分:处理出站流量的发送部分和处理⼊站流量的接收部分。
1.2.2 设备层及相关的数据包
1.2.2.1 处理层事务包(TLP)
TLP 数据包的装配
软件层/设备核⼼层将装配 TLP 核⼼部分所需要的信息发送到处理层,这部分信息是 TLP 数据包的头和数据部分。某些 TLP 不包含数据部分。接下来要计算可选的端到端的 CRC(ECRC) 字段并将其附加到数据包中,因为该数据包的最终⽬标设备要使⽤ ECRC 字段来检查 TLP 头和数据部分中的 CRC 错误。
TLP 的核⼼部分被转发⾄数据链路层,然后由数据链路层为其附加序列 ID 和 LCRC 字段。链路另⼀端的相邻接收器设备使⽤该 LCRC 字段检查 TLP 的核⼼部分和序列 ID 中的 CRC 错误。装配后的 TLP 被转发⾄物理层,由物理层再附加各⼀字节的开始和结束成帧字符。然后,对数据进⾏编码,并使⽤链路上可⽤的通道差动发送数据包。
TLP数据包的拆解
数据包的拆解
FINALDATA ENTERPRISE 2.0
TLP
临近的接收器设备接受进⼊的 TLP ⽐特流。物理层解码接收到的 TLP ,剥去开始和结束帧字段。得到的 TLP 被发送⾄数据链路层,由数据链路层检查该 TLP 中的任何错误,并剥去序列 ID 和LCRC 字段。没有 LCRC 错误,则该 TLP 将被向上转发⾄物理层。如果接收设备是交换器,那么交换器将根据 TLP 头中包含的地址信息将该数据包由交换器的⼀个端⼝路由⾄⼀个出端⼝。允许交换器检查 EC
EC 错误,甚⾄报告它发现的错误。但不允许交换器修改 ECRC,如果存在这样的错误,该 TLP 的⽬标设备将检测到⼀个 ECRC 错误。
该 TLP 的最终⽬标设备负责检查其头和数据部分中的 ECRC 错误。在剥去 ECRC 字段后,留下该数据包的头和数据部分,⽽正是这些信息将最终被转发⾄设备核⼼/软件层。
数据链路层数据包(DLLP)
DLLP 数据包源于发送器设备的数据链路层,终⽌于接收器设备的数据链路层。当 DLLP 通过 PCIe 链路从⼀台设备传送到另⼀台设备时,物理层对 DLLP 的装配和拆解也起作⽤。
DLLP 可⽤于链路管理功能,包括与 ACK/NAK 协议相关的 TLP 确认,电源管理和流控制信息的交换。
DLLP 在链路上两个直连组件的数据链路层之间传输。与通过 PCIe 结构传输的 TLP 不同,DLLP 不通过交换器。DLLP 也不包含路由信息。与TLP 相⽐,这些数据包较⼩,为 8 个字节。
DLLP 的装配
DLLP 有多种类型,包括流控制 DLLP,确认 TLP 接收的确认/否认 DLLP(ACK 和 NAK)、电源管理 DLLP(PMx)。DLLP 的类型字段会标识出各种 DLLP 的类型。数据链路层在 DLLP 上附加 16bits 的 CRC ,DLLP 接收器⽤来检查 DLLP 中的 CRC 错误。
动力学与控制学报DLLP 的内容和 16bits CRC ⼀起被转发⾄物理层,物理层在该数据包中附加各 1 字节的开始和结束成帧字符。然后对数据包进⾏编码,并利⽤可⽤通道在链路上差动发送数据包。
DLLP 的拆解
由接收设备的物理层接收  DLLP ,解码接收的⽐特流并剥去其开始和结束帧字段。再将得到的数据包发送⾄数据链路层,由该层检查 CRC 错误并剥去 CRC 字段。数据链路层时 DLLP 的⽬的地,不再向上⾯的处理层转发。
1.2.2.3 物理层数据包(PLP)
虾球转PLP 源于发送器设备的物理层,终⽌与接收器设备的物理层。PLP 是⼀种⾮常简单的数据包,开始是 1 字节的 COM 字符,后⾯是定义 PLP 类型以及含有其它信息的 3 个或多个字符。PLP 的⼤⼩是 4 字节的整数倍。规范将这种数据包成为有序集(Ordered Set)。PLP 不包含任何路由信息,不会被路由通过结构,也不会通过交换器进⾏传播。在链路定向过程中会使⽤⼀些 PLP,⼀些 PLP 可以⽤于时钟容差补偿,还可以⽤PLP 将链路置于电⽓空闲低功率状态,或者从这种低功率状态唤醒链路。
1.2.4 各 PCIe 设备层的功能
下图是⼀个更详细的 PCIe 设备层模块图。该模块图可⽤来解释每层的主要功能,以及⽣成出站流量和相应⼊站流量时每⼀层的功能。这些层包括设备核⼼/软件层、处理层、数据链路层和物理层。
中草药大典1.2.4.1 设备核⼼/软件层
设备核⼼由根联合体核⼼逻辑或注⼊以太⽹控制器、SCSI 控制器、USB 控制器等端点核⼼逻辑组成。
低碳世界发送部分:设备核⼼逻辑与本地软件⼀起提供PCIe 设备⽣成 TLP 所需的必要信息。这些信息通过发送接⼝发送⾄设备的处理层。发送⾄处理层的信息包括:事务类型、地址、发送的数据量、数据、流量类别、消息索引等。
接收部分:设备核⼼逻辑负责通过接收接⼝来接收处理层发送的信息。这些信息包括:处理层接收的 TLP 的类型、地址、接收的数据量、数据、接收的 TLP 的流量类别、消息索引以及错误情况等。
1.2.4.2 处理层
处理层负责⽣成出站 TLP 流量和接收⼊站 TLP 流量。处理层⽀持⽤于⾮报告事务的分离事务协议。处理层会将给定标记值的⼊站完成 TLP 与早先发送的相同标记值的出站⾮报告请求 TLP 联系起来。
处理层含有虚拟信道缓冲区(VC 缓冲区),⽤来存储等待发送的出站 TLP 以及从链路上接收的⼊站 TLP。与这些虚拟信道缓冲区相关的流控制协议能保证远程发送器不会发送太多的 TLP,因⽽不会引起接收器接收器虚拟信道缓冲区溢出。发送前,处理层还能根据顺序规则对 TLP 排序。⽀持服务质量
(QoS)协议的正是该层。
处理层⽀持 4 种地址空间:存储器地址空间、IO 地址空间、配置地址空间和消息空间。消息数据包内包含信息。
发送部分:处理层从设备核⼼接收信息并⽣成出站请求和保存在虚拟信道缓冲区中的完成 TLP,同时负责装配处理层数据包(TLP)。TLP 的主发送部分:
要组成部分是:头、数据有效载荷和⼀个可选的 ECRC (规范中也是⽤摘要(Digest)这⼀术语)字段。
头的⼤⼩为 3 或 4 个双字,并且可以包含诸如地址、TLP 类型、传送⼤⼩、请求者ID/完成者ID、标记、流量类别、字节允许、完成代码和属性(包括“不侦测(no snoop)”和“灵活的顺序”⽐特)等字段。

本文发布于:2024-09-22 03:45:05,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/330027.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设备   数据   处理   数据包   发送   信息   接收   链路层
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议