pcie 处理层协议中文详解(28 页)Good is good, but better carries it.精益求精,善益求善。pcie(PCI-Express)处理层协议中文详解 处理层协议(transaction Layer specification)◆TLP 概况。◆寻址定位和路由导向。◆i/o,memory,configuration,message request、completion 详解。◆请求和响应处理机制。◆virtual channel(vc)Mechanism 虚拟通道机制。◆data integrity 数据完整性。 一.TLP 概况 处理层(transaction Layer specification)是请求和响应信息形成的基础。包括四种地址空间,三种处理类型,从下图可以看出在 transaction Layer 中形成的包的基本概括。一类是对 i/o 口和 memory 的读写包(TLPS:transaction Layers packages),另一类是对配置寄存器的读写设置包,还有一类是信息包,描述通信状态,作为事件的信号告知用户。对 memory 的读写包分为读请求包和响应包、写请求包(不需要存储器的响应包)。而 i/o 类型的读写请求都需要返回 I/O 口的响应包,configuration 包对配置寄存器的读写请求也有响应包。这些请求包还可以按属性来分就是:NP-non posted ,即请求需要返回completion 的响应包;还有一种就是;poste,即不需要 completion 返回响应包。例如上面的存储器写入请求包和 Message 包都隶属于 posted 包。包的主要格式结构如下: 每种类型的包都有一定格式的包头(Tlp Header),根据不同的包的特性,还包括有效数据负荷(Data Payload)和 tlp 开销块(Tlp Digest)。包头中的数据用于对包的管理和控制。有效数据负荷域存放有效数据信息。具有数据的 TLP 传递是有一定规则的:以 DW 为长度单位,发送端数据承载量不得超过“Device Control Register”中的“Max_Payload_Size”数值,接收端中,所接收到的数据量也不能超过接收端“Device Control Register”中的“Max_Payload_Size”数值。TLp Digest 域是 32 位的 ECRC 校验。具体的包结构图如下:由此图可看出数据从低字节的高位先发送,从左到右。以下详细介绍 TLPS 的每个成分。R 为保留信息位,应设为 0,路由器switch 对此位不做修改,接收器应该忽略此位。▲ Fmt[1:0]:Format of TLP (see Table 2-2) – bits 6:5 of byte0▲ Type[4:0]:Type of TLP – bits 4:0 of byte 0▲ TC[2:0]: Traffic Class – bits [6:4] of byte1,关于 TC 的作用...