大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
今天给大侠带来PCI-Express transaction Layer specification(处理层协议),本次PCIE TLP 学习经验分享分为三篇,今天带来第二篇,i/o,memory,configuration,message request、completetion(Memory Request Package、I/O Request 包、Configuration Request包、Message、Completion Rules(应答机制)),话不多说,上货。
三、I/O,Memory,Configuration,Message Request、Completetion
memory、i/o、configuration request包头除了基本的域之外还包括:Transaction ID即requester ID、Tag、Last DW BE、1st DW BE,放在第二个DW中。以下分别介绍这三种不同的请求包。
1. Memory Request Package
采用直接地址寻址,有64bit地址和32bit地址两种,其中读请求包的Length域不应大于Max_Read_Request_Size寄存器设置的值。请求器件不会示例一个所访问的memory空间超过4KB的read request包。以下是两种不同地址长度的memory request 包。
64位地址的包格式
32位地址的包格式
2. I/O Request 包
I/O request 包只有32位地址寻址。有如下限制:
格式如下:
可见每次只传送一个DW数据。
3. Configuration Request包
configuration request包采用ID寻址方式,包头(Tlp Header长度是3DW)。有如下规定:
包格式:
4. Message 包
Message包分为:
所有的Message包都用Msg编码,即不包括数据负荷的Message包,除了Vendor_Defined Messages和Set_Slot_Power_Limit Message包,Message包有以下限制:
寻址方式:隐含寻址,由Type域中的r[2:0]决定,即Type域的最后三位。具体寻址映射如下:
r[2:0]是010时,寻址方式就是ID寻址。
5. Completion Rules(应答机制)
completion包用ID寻址方式,寻址使用的ID就是request提供的requester ID。除了那些正常的域以外,还包括:
compl.Status位有如下含义:
第二篇就到这里,明天开启第三篇,将会带来请求和应答处理机制(Request Handling Rules、Completion Handling)、virtual channel(vc)Mechanism虚拟通道机制(TC/VC映射、Flow Control)、Data Integrity数据完整性等详解,愿大侠持续关注,一切安好,告辞。
END
后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。
大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!