前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PCI-E TLP(处理层协议)学习经验分享 II

PCI-E TLP(处理层协议)学习经验分享 II

作者头像
FPGA技术江湖
发布2020-12-29 17:31:39
1.3K0
发布2020-12-29 17:31:39
举报
文章被收录于专栏:FPGA技术江湖FPGA技术江湖

大侠好,欢迎来到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 000b
  • Attr[1:0] must be 00b
  • AT[1:0] must be 00b
  • Length[9:0] must be 00 0000 0001b
  • Last DW BE[3:0] must be 0000b

格式如下:

可见每次只传送一个DW数据。

3. Configuration Request包

configuration request包采用ID寻址方式,包头(Tlp Header长度是3DW)。有如下规定:

  • TC[2:0] must be 000b
  • Attr[1:0] must be 00b
  • AT[1:0] must be 00b
  • [9:0] must be 00 0000 0001b
  • Last 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 below
  • Completion Status[2:0] – Indicates the status for a Completion
  • BCM – Byte Count Modified
  • Byte Count[11:0] – The remaining byte count for Request
  • Tag[7:0] – in combination with the Requester ID field, corresponds to the Transaction ID
  • Lower 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数据完整性等详解,愿大侠持续关注,一切安好,告辞。

END

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA技术江湖 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档