大侠好,欢迎来到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位地址寻址。有如下限制:
- TC[2:0] must be 000bAttr[1:0] must be 00bAT[1:0] must be 00bLength[9:0] must be 00 0000 0001bLast DW BE[3:0] must be 0000b
格式如下:
可见每次只传送一个DW数据。
3. Configuration Request包
configuration request包采用ID寻址方式,包头(Tlp Header长度是3DW)。有如下规定:
- TC[2:0] must be 000bAttr[1:0] must be 00bAT[1:0] must be 00b[9:0] must be 00 0000 0001bLast DW BE[3:0] must be 0000b
包格式:
4. Message 包
Message包分为:
- INTx Interrupt Signaling INTx中断信息包Power Management 电源管理机能。Error Signaling错误信息包Locked Transaction Support 锁住交易的支持Slot Power Limit Support插槽电源限制的支持Vendor-Defined Messages制造商自行定义信息
所有的Message包都用Msg编码,即不包括数据负荷的Message包,除了Vendor_Defined Messages和Set_Slot_Power_Limit Message包,Message包有以下限制:
- The Message Code field must be fully decoded (Message aliasing is not permitted).Except as noted, the Attr[1:0] field is reserved.保留Attr域。AT[1:0] must be 00b.Except as noted, bytes 8 through 15 are reserved.保留包头部分的bytes8到byte15.Message Requests are posted and do not require Completion。Message包不需要返回响应包。Message Requests follow the same ordering rules as Memory Write Requests。
寻址方式:隐含寻址,由Type域中的r[2:0]决定,即Type域的最后三位。具体寻址映射如下:
r[2:0]是010时,寻址方式就是ID寻址。
5. Completion Rules(应答机制)
completion包用ID寻址方式,寻址使用的ID就是request提供的requester ID。除了那些正常的域以外,还包括:
- Completer ID[15:0] – Identifies the Completer – described in detail belowCompletion Status[2:0] – Indicates the status for a CompletionBCM – Byte Count ModifiedByte Count[11:0] – The remaining byte count for RequestTag[7:0] – in combination with the Requester ID field, corresponds to the Transaction IDLower Address[6:0] – lower byte address for starting byte of Completion
compl.Status位有如下含义:
第二篇就到这里,明天开启第三篇,将会带来请求和应答处理机制(Request Handling Rules、Completion Handling)、virtual channel(vc)Mechanism虚拟通道机制(TC/VC映射、Flow Control)、Data Integrity数据完整性等详解,愿大侠持续关注,一切安好,告辞。