今天很忙,但既然开始了,或多或少得写点。
该图为PCIe层次结构示意图。
事务层
事务层的主要职责是tlp的组装和拆卸。tlp用于通信事务,例如读写,以及某些类型的事件。事务层还负责管理tlp的基于信用的流量控制。
每个需要响应包的请求包都被实现为拆分事务。每个数据包都有一个唯一的标识符,使响应数据包能够定向到正确的发起者。数据包格式根据事务的类型(内存、I/O、配置和消息)支持不同形式的寻址(地址路由、IO路由以及隐式路由)。数据包也可能具有诸如No Snoop、relax Ordering和基于id的排序(IDO)等属性。
事务层支持四个地址空间:它包括三个PCI地址空间(内存、I/O和配置),并增加了消息空间。使用消息空间来支持所有先前的边带信号,如中断、电源管理请求等。
事务层还负责支持软件和硬件启动的电源管理。
事务层的数据包生成和处理服务要求:
•从设备核心请求生成TLP
•将接收到的请求TLP转换为设备核心的请求
•将接收到的完成数据包转换为可交付给核心的有效载荷或状态信息
•检测不支持的TLP并调用适当的机制来处理它们
•如果支持端到端数据完整性,则生成端到端数据完整性CRC并相应地更新TLP报头。
事务层包括以下内容:(主要工作)
•TLP构建和处理
•事务级机制与设备资源的关联,包括:
◦流量控制
◦虚通道管理
•TLPs的排序和管理规则
◦PCI/PCI- x兼容排序
◦包括流量类区分
该图为TLP的数据构成以及分别在事务层、数据链路层以及物理层的添加部分。
注意:TLP在事务层生成后,不管是在数据链路层添加Sequence Number和LCRC字段,还是在物理层添加字段,都不会将其改变为其他数据,仍为TLP,只是TLP在不同层次的表现形式。以数据链路层为例,需要区分在该层的TLP数据和DLLP数据。
数据链路层
数据链路层的主要职责为链路管理和数据完整性,包括错误检测和纠错。
数据链路层的传输端接收事务层组装的TLP,计算并应用数据保护码和TLP序列号(Seq Num、LCRC),提交给物理层进行链路传输。
接收数据链路层负责检查接收到的tlp的完整性,并将其提交给事务层进行进一步处理。当检测到TLP错误时,该层负责请求重传TLP,直到信息被正确接收,或者链路被确定为故障。
数据链路层还生成和发送用于链路管理功能的数据包,即数据链路层包(DLLP)。
- 初始化和电源管理服务:
•接受来自事务层的电源状态请求并传递给物理层
•将启动/复位/断开/电源管理状态传递给事务层
- 数据保护、错误检查和重试服务:
•CRC生成
•TLP存储用于数据链路级重试
•错误检查
•TLP确认和重试消息
•错误指示 用于错误报告和日志记录
物理层
物理层包括接口操作的所有电路,包括驱动器和输入缓冲器、串并转换、锁相环和阻抗匹配电路。它还包括与接口初始化和维护相关的逻辑功能。物理层以特定于实现的格式与数据链路层交换信息。该层负责将从数据链路层接收到的信息转换成适当的序列化格式,并以与连接到链路另一端的设备兼容的频率和宽度在PCI快速链路上传输。(PLP)
PCI Express架构通过速度升级和高级编码技术来支持未来的性能增强。未来的速度、编码技术或媒体可能只会影响物理层的定义
- 接口初始化、维护控制和状态跟踪:
•复位/热插拔控制/状态
•互连电源管理
•宽度和Lane映射协商
•Lane极性反转
- 符号和特殊有序集生成:
•8b/10b编码/解码
•嵌入式时钟调谐和校准
- 符号传输和对齐:
•发送电路
•接收电路
•接收侧弹性缓冲
•接收侧多车道倾斜(Multi-Lane de-skew) (宽度> x1)
可测试性系统设计(DFT)支持特性:
地址空间、事务类型(待补充)