PCIe学习笔记2:PCIe体系架构——PCIe设备层次

目录

二、PCIe设备层次

2.1 概览

2.2 层次详解

2.2.1 设备核心层(Device Core/Software Layer)

2.2.2 事务层(Transaction Layer)

2.2.2.1 事务层数据包(Transaction Layer Packet,TLP)

2.2.2.2 TLP的组包与拆包

2.2.3 数据链路层(Data Link Layer)

2.2.3.1 链路层数据包(Data Link Layer Packet,DLLP)

2.2.3.2 Ack/Nak协议(Ack/Nak Protocol)

2.2.4 物理层

2.2.4.1 逻辑部分

2.2.4.2 电气部分


二、PCIe设备层次

2.1 概览

PCIe 定义了一种分层的体系结构,这些层在逻辑上是相互独立的,且各层仅负责相同层内的通信(例如,发送端和接收端的事务层都只处理数据包的事务层信息),各层都有一个用于发出信息流的发送端和一个接收信息流的接收端。

根据上图,由上至下对各层进行说明:

  • 设备核心层以及它与事务层的接口(PCIe Core Hardware/Software Interface)。设备核心层实现设备的主要功能——如果设备是一个endpoint,那么它最多可以包含 8 个功能(function),每个功能实现自己的配置空间;如果设备是一个swtich,那么其核心由数据包路由逻辑和内部总线构成;如果设备是一个 RC,那么其核心会实现一个虚拟的 PCI 总线 0,在这个虚拟的 PCI 总线 0中存在着所有的芯片组嵌入式端点以及虚拟桥。
  • 事务层(Transcation Layer)。事务层负责TLP(Transaction Layer Packet,事务层包)的产生(发送端)和解析(接收端),同时也负责 QoS(Quality of Service,服务质量)、流量控制以及事务排序。
  • 数据链路层(Data Link Layer)。数据链路层负责DLLP(Data Link Layer Packet,数据链路层包)的产生和解析,同时负责链路错误检测以及修正(也称为Ack/Nak 协议)。
  • 物理层(Physical Layer)。物理层负责字符序列包的产生和解析。具体而言,物理层实现TLP、DLLP和字符序列包在物理链路上的发送与接收。在发送端,数据包将经过字节条带化逻辑、扰码器、编码器(8b/10b编码或128b/130b编码)和并-串转换模块的处理;在传输链路上,数据包将以训练后的链路速率以差分形式传输;在接收端,物理层须从数据流中恢复出时钟(Clock and Data Recovery,CDR,时钟数据恢复),数据包将经过串-并转换模块、缓存、解码器、解扰器和字节交换恢复逻辑(对应在发送端的逆操作)。此外,物理层中包含LTSSM(Link Training and Status State Machine,链路训练状态机),负责进行链路初始化以及训练。

注意:区别TLP、DLLP和字符序列包,三者之间并非包含关系。

每个 PCIe 接口都支持以上各层的功能,包括switch端口,因为路由信息是需要通过数据包的内部查看的。

各层的递进:

发送端——设备所发出的请求包或者完成包是在事务层进行组包的,组包所用到的信息由设备核心层所提供,通常包括命令类型、目标设备的地址、请求的属性特征等等。组好的数据包会被存入一个被称为虚拟通道缓存(VCs),发往下一个层级。当这个包被发给数据链路层后,数据链路层会在数据包中加入额外的信息以供接收方进行错误检查,而且这个数据包会在本地储存下来,以便在对端检测到传输错误时重新发送该数据包。当数据包到达物理层处理后将进行传输。

接收端——数据包在物理层进行处理(例如错误检查)后将发往数据链路层,在数据链路层,数据包进行该层的错误检查,若未错误便发往事务层。在事务层数据包被缓存、错误检测,并解析原始信息(命令、属性等),以便将这些数据传输到设备核心层。

2.2 层次详解

2.2.1 设备核心层(Device Core/Software Layer)

设备核心层并不是 PCIe 协议规范中所定义的一个层级,但其位于事务层的上方,是所有请求的源头或是目的地。设备核心层为事务层提供了需要发送的请求信息,其中的信息包括事务类型、地址、需要传输的数据量等等。

2.2.2 事务层(Transaction Layer)

为了响应来自软件层的请求,事务层生成出站数据包(outbound packet);事务层也会检查入站数据包(inbound packet),并将入站数据包内包含的信息向上转发给软件层。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值