0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PCI-E TLP学习笔记(3)

FPGA技术江湖 来源:FPGA技术江湖 2024-11-06 09:19 次阅读

大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。

今天给大侠带来PCI-Express transaction Layer specification(处理层协议),本次PCIE TLP 学习经验分享分为三篇,今天带来第三篇,也就是最后一篇,请求和应答处理机制(Request Handling Rules、Completion Handling)、virtual channel(vc)Mechanism虚拟通道机制(TC/VC映射、Flow Control)、Data Integrity数据完整性等内容,话不多说,上货。

四、 请求和应答处理机制

处理机制就是对接收到的经Data Link Layer进行数据完整性验证的Tlp进行处理。无效的包将被抛弃,保留字(reserved)将被忽略。以下是处理流程:

d35931aa-9098-11ef-a511-92fbcf53809c.png

对所有的包分request handling和completion handling,按不同的规范处理。

1. Request Handling Rules

d36f45bc-9098-11ef-a511-92fbcf53809c.png

如果请求是一个不支持的请求包,并且需要响应,则Completion Status=UR,即不支持的请求。如果请求包是一个Message 包则按Message包处理规则处理,否则对这个request进行处理。如果请求违反器件编程定义则给出ca响应,即响应器件放弃该请求,否则做出正确应答。

2.Completion Handling

如果接收到一个completion包的Transaction ID和requester的Transaction ID不一致则这个应答包是非预期包。合法的应答包将按Compl.Status域处理并提取有效数据负荷。

五、virtual channel(vc)Mechanism虚拟通道机制

虚拟信道(virtual channel)在总线中提供用TC域来区分的虚拟信息通路,即某一传输通路,有不同的流程控制机制(Flow Control)。当某流程控制出现拥塞时,其他通路依然畅通。VC有自己的独立流控制,是实现Qos的秘诀。VC通道是解决拥塞的基础。

d389b1ea-9098-11ef-a511-92fbcf53809c.png

在Switch内部,VC通道机制如下:

d3a6ffa2-9098-11ef-a511-92fbcf53809c.png

1. TC/VC映射

每个TLP包并不包含具体的VC信息,VC是由TC映射得到的。每个器件的TC/VC映射是不同的,TC0/VC0是固定的。具体TC、VC映射如下:

一个或多个TC映射到一个VC,同一个TC不能映射到不同的VC上,连接双方的映射机制一致。除了TC0外,其他的可以软件设置。链路两端的映射方案要一致,如图是一种映射方案。

d3bb3198-9098-11ef-a511-92fbcf53809c.png

d3d06342-9098-11ef-a511-92fbcf53809c.jpg

具体的虚拟通道是由VC ID决定和识别的。

2. Flow Control

每个虚拟通道有独立的流程控制的缓冲空间。在收发双方,流程控制信息是用数据链路包(DLLP)打包发送的,其中的“VC ID“就是用来载送虚拟通道的识别。总的来说,流程控制是由数据交易层(Transaction Layer)搭配了数据链路层(Data Link Layer)来处理的,只是,处理层通常是针对接收到的TLP打包,生成TC,再由TC映射到VC。流程控制信息是FCP(Flow Control Package),即DLLP打包的一种。流程控制的信用单位是Credit,也就是接收器的缓冲空间是4DW。信用单位:就是接收端缓冲空间大小的基本单位。

流程控制能分辨三种包:posted requests(p)、non-posted requests(Np)、completions(cpl)。还可以分辨三种包的包头Header和数据Data,可以这样说,每个虚拟通道(VC)对应的特定流程控制包含6种不同的流程控制信息:

1、PH=posted Request Header;

2、PD=posted request Data Payload;

3、NPH=non-posted request Header;

4、NPD=non-posted request Data Payload;

5、CPLH=completion Header;

6、CPLD=completion Data Payload。

各种包对应的流程控制如下表:

d3e7d4dc-9098-11ef-a511-92fbcf53809c.jpg

六、Data Integrity数据完整性

主要的数据完整性保证之一是Data Link Layer中的crc(lcrc)。为了确保数据端对端的可靠性在Transaction层的TLp Digest域还选择性的做一ECRC校验,ECRC的初值是FFFF FFFF,算法实现如下:

d41f0542-9098-11ef-a511-92fbcf53809c.jpg

Transaction Layer specifications只是pcie总线规范的一层规范,主要处理数据包的传送管理,此外还有Data Link Layer规范和physical Layer规范。

此次分享到此结束,后面有时间还会给各位大侠分享关于PCIE的相关其他内容,愿大侠持续关注,一切安好,告辞。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1624

    文章

    21613

    浏览量

    601093
  • 总线
    +关注

    关注

    10

    文章

    2857

    浏览量

    87889
  • TLP
    TLP
    +关注

    关注

    0

    文章

    32

    浏览量

    15590
  • 数据完整性
    +关注

    关注

    0

    文章

    14

    浏览量

    5092

原文标题:PCI-E TLP(处理层协议)学习经验分享 III

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PCI-E 的PADS封转

    PCI-E封装
    发表于 03-30 11:30

    在FPGA上设计PCI-e Gen2.0和PCI-e Gen3.0有什么不同

    请教各位大大,在FPGA上进行设计PCI-e的接口通信,2代和3代的设计有什么不同吗?如果学习了2代改到开发3代是在原工程上做小改变还是要推倒重做?
    发表于 03-03 09:55

    pci-e布线规范

    pci-e布线规范
    发表于 07-14 14:49

    解决台式机PCI-E 1X不够难题 :乐扩PCI-E 1X转2口PCI-E 1X扩展卡

    。用户可以通过PCIE 1x扩展出两个PCIE X1插槽,PCI-E 1x适配器主卡可以插入到主机的任何PCI-E插槽:1X、4X,8X或16X,扩展出的PCIE X1插槽可以接一些其他设备。3.在信号
    发表于 10-19 16:25

    PCI PCI-X PCI-E介绍 精选资料分享

    PCI PCI-X PCI-E介绍1.PCI外设互联标准(或称个人电脑接口,Personal Computer Interface),实际应用中简称
    发表于 07-29 06:40

    什么是PCI PCI-X PCI-E

    什么是PCI PCI-X PCI-E
    发表于 10-25 07:37

    PCI-E接口定义 引脚定义图 PCI-E针脚定义图

    说明:PCI-E
    发表于 04-27 18:09 7.8w次阅读
    <b class='flag-5'>PCI-E</b>接口定义 引脚定义图 <b class='flag-5'>PCI-E</b>针脚定义图

    南桥PCI-E通道数

    南桥PCI-E通道数              南桥PCI-E通道数是指芯片组中
    发表于 12-26 16:10 578次阅读

    PCI-e总线FPGA开发板资料说明

    自从2004年pci-e1.0a规范之后,主板上就开始有了最新的串行高速PCI-E总线,相比原来的PCIV2.3,PCI-E总线有很大的优势,首先,PCI-E降低了芯片连接的管脚数量,
    发表于 04-14 00:56 171次下载

    浅谈显卡PCI/AGP/PCI-E接口的区别

    PCI-E 1.0标准提供了2.5GT/s(Giga Transmissionper second ,千兆传输/秒,即每一秒内传输的次数,不同于Gbps)的传输速度,常用的PCI-E X16提供16
    发表于 11-03 16:13 7573次阅读

    Intel的核显真的占用了CPU的4根PCI-E通道吗

    在讨论到CPU的PCI-E通道问题时,我发现很多人都以为Intel的核显占用了CPU的4根PCI-E通道,包括很多可以找到的“科普贴”中都写了核显会占用4条PCI-E通道。其实这是一种常见的误区,从
    发表于 11-23 10:20 5291次阅读
    Intel的核显真的占用了CPU的4根<b class='flag-5'>PCI-E</b>通道吗

    连欣PCI模块连接器PCI-E 52PIN原理图

    连欣PCI模块连接器PCI-E 52PIN原理图
    发表于 07-08 09:20 49次下载

    pci-e插槽的规格有哪些 各个版本的pci-e的规范区别

    PCI-E的接口根据总线位宽不同而有所差异,包括X1、X4、X8以及X16,而X2模式将用于内部接口而非插槽模式。PCI-E规格从1条 通道连接到32条通道连接,有非常强的伸缩性,以满足不同系统设备对数据传输带宽不同的需求。
    发表于 08-05 10:16 8249次阅读
    <b class='flag-5'>pci-e</b>插槽的规格有哪些 各个版本的<b class='flag-5'>pci-e</b>的规范区别

    PCI-E TLP学习笔记(1)

    今天给大侠带来PCI-Express transaction Layer specification(处理层协议),本次PCIE TLP 学习经验分享分为三篇,今天带来第一篇TLP概况
    的头像 发表于 11-06 09:14 63次阅读
    <b class='flag-5'>PCI-E</b> <b class='flag-5'>TLP</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>(1)

    PCI-E TLP学习笔记(2)

    今天给大侠带来PCI-Express transaction Layer specification(处理层协议),本次PCIE TLP 学习经验分享分为三篇,今天带来第二篇,i/o,memory
    的头像 发表于 11-06 09:16 57次阅读
    <b class='flag-5'>PCI-E</b> <b class='flag-5'>TLP</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>(2)