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

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

3天内不再提示

Flow Control机制可以显著地提高总线的传输效率

SwM2_ChinaAET 来源:未知 作者:李倩 2018-05-24 09:26 次阅读

Flow ControlFlow Control即流量控制,这一概念起源于网络通信中。PCIe总线采用Flow Control的目的是,保证发送端的PCIe设备永远不会发送接收端的PCIe设备不能接收的TLP(事务层包)。也就是说,发送端在发送前可以通过Flow Control机制知道接收端能否接收即将发送的TLP。

在PCI总线中,并没有Flow Control这样的机制,因此发送端并不知道当前时刻,接收端能够接收对应的TLP。因此,发送端只能先尝试发送,期间可能会被插入多个等待周期(接收设备尚未就绪等原因),甚至是重发(Retries)等。

PCIe Spec规定,PCIe设备的每一个端口(Ports)都必须支持Flow Control机制,在发送TLP之前,Flow Control必须先检查接收端口是否有足够的Buffer空间来接收这个TLP。当PCIe设备支持多个VC(Virtual Channel)时,Flow Control机制可以显著地提高总线的传输效率。

PCIe Spec规定,每个PCIe设备最多支持8个VC,并且每个VC的Flow Control Buffer是完全独立的。也就是说,某一个VC的Flow Control Buffer满了,并不会影响其他的VC的通信

前面的文章中介绍过,Flow Control机制是通过相邻两个端口(Ports)的数据链路层之间发送DLLP(Flow Control DLLPs)来实现的。在进行初始化的时候,接收端需要向发送端报告(reports)其Buffer的大小,在正常运行状态(Run-time)时,会周期性地通过Flow Control DLLPs来告知发送端,接收端的各个Buffer的大小。

需要注意的是,虽然Flow Control DLLP只在相邻的数据链路层之间传输,但是相关的Buffer和计数器(FC Counter)确实存在于事务层(Transaction Layer)的。如下图所示:

前面的文章中多次介绍过,TLP一共有三大类:

Posted Transactions(包括Memory Writes和Messages)、Non-Posted Transactions(包括Memory Reads、Configuration Reads and Writes、IO Reads and Writes)以及Completions(包括Read and Write Completion)。并且知道,TLP可以分为两个部分,Header和Data部分。Flow Control为了获得更高的数据传输效率,将这三类TLP分开存放,同时将Header与Data部分也分开存放。因此,一共存在六种不同的Flow Control Buffer类型,如下图所示:

Flow Control Buffer的存储单元(Unit)被称作Flow Control Credits。对于Header来说,Requests TLP每个unit等于5DW,而Completions TLP每个unit等于4DW。对于Data来说,每个unit等于4DW,即Data Buffer是按照16个字节对齐的。对于各种类型的Buffer的最小值如下表所示:

最大值如下表所示:

注:0 unit表示无限(Infinite)。

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

    关注

    10

    文章

    2864

    浏览量

    87972
  • PCIe
    +关注

    关注

    15

    文章

    1217

    浏览量

    82424

原文标题:【博文连载】PCIe扫盲——Flow Control基础(一)

文章出处:【微信号:ChinaAET,微信公众号:电子技术应用ChinaAET】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    软件仿真为什么可以提高PCB的设计效率

    有哪位大神可以解释一下软件仿真为什么可以提高PCB的设计效率吗?
    发表于 04-23 06:30

    1553b总线的特点和消息传输机制,有什么应用?

    本文介绍了1553b总线的特点和消息传输机制,并对其在武器通信中的应用情况进行了探讨。
    发表于 06-03 06:41

    关于AHB总线 Master的回复机制解析

    1、AHB Master的回复机制描述上文提到,AHB 协议传输的最小单位是Transfer,但是为了传输效率,一般都会把多个相邻地址和相同类型的Transfer组合成一个Burst
    发表于 06-08 17:05

    STM32总线CPU和DMA可以同时工作吗?有仲裁机制吗?

    使用 AHB 外设总线 1,两个 Master 最终也会使用相同的总线 APB1。据我了解,没有任何仲裁机制,因为总线矩阵上没有重叠。在这种情况下,CPU和DMA
    发表于 12-27 06:34

    采用Flow Control机制的PCIe总线

    PCIe总线为了解决这一问题,提出了Flow Control的概念,如下图所示。PCIe总线中要求接收方必须经常(在特定时间)向发送方报告其VC Buffer的使用情况。而报告的方式是
    的头像 发表于 04-26 08:54 5815次阅读
    采用<b class='flag-5'>Flow</b> <b class='flag-5'>Control</b><b class='flag-5'>机制</b>的PCIe<b class='flag-5'>总线</b>

    PCIe总线必须要先完成Flow Control初始化

    由于VC0是默认使能的,所以当Flow Control初始化开始时,其会被自动的初始化。其他的Virtual Channel是可选的,只有当被配置为使能的时候才会被初始化。
    的头像 发表于 05-24 09:18 7886次阅读
    PCIe<b class='flag-5'>总线</b>必须要先完成<b class='flag-5'>Flow</b> <b class='flag-5'>Control</b>初始化

    区块链机制设计,可以解决可信性以及效率问题

    机制可以提高隐私;中心化的身份验证可以防止出现单个参与者拥有多个账户的不公平现象;多方计算可以解决贿赂问题。
    发表于 09-12 10:31 1719次阅读

    CET为何而生?CET安全防御机制解析

    CET(Control-flow Enforcement Technology)机制是 Intel提出基于硬件的⽤于缓解 ROP/JOP/COP的新技术。特别强调下,他是基于硬件⽀持的解决⽅案。
    的头像 发表于 11-25 09:09 1412次阅读

    W-CDMA电源显著提高传输效率

    MAX1820开关模式电源经过优化,可提高WCDMA手机的传输效率。通过动态降低Vcc裕量 在功率放大器(PA)中,电池电流在低于最大发射功率的所有功率水平下都会显著降低。MAX182
    的头像 发表于 03-09 15:29 765次阅读
    W-CDMA电源<b class='flag-5'>显著</b><b class='flag-5'>提高</b><b class='flag-5'>传输</b><b class='flag-5'>效率</b>

    扒一扒PCIe中的Flow Control

    在处理TLP报文时,根据Fmt字段以及Type字段可以将TLP报文分为二十多种,当TLP报文送至数据链路层时,数据链路层在进行流量控制处理时则不会考虑这么多种情况。数据链路层里面的Flow Control,则会将报文分为三类:
    的头像 发表于 07-03 09:20 2269次阅读
    扒一扒PCIe中的<b class='flag-5'>Flow</b> <b class='flag-5'>Control</b>

    高性能整流器显著提高服务器供电效率

    电子发烧友网站提供《高性能整流器显著提高服务器供电效率.pdf》资料免费下载
    发表于 07-26 09:46 0次下载
    高性能整流器<b class='flag-5'>显著</b><b class='flag-5'>提高</b>服务器供电<b class='flag-5'>效率</b>

    雷达传感器如何显著提高智能家居的能源效率

    雷达传感器如何显著提高智能家居的能源效率
    的头像 发表于 12-06 15:25 415次阅读
    雷达传感器如何<b class='flag-5'>显著</b><b class='flag-5'>提高</b>智能家居的能源<b class='flag-5'>效率</b>

    can总线传输距离

    、高速性和优秀的网络管理能力。 在CAN总线中,数据通过两根线进行传输,即CAN-H线和CAN-L线。CAN-H线为高电平,CAN-L线为低电平。这两根线同时传输数据,其中高优先级的消息可以
    的头像 发表于 12-07 18:09 3477次阅读

    异步总线中传送操作的控制机制

    异步总线是一种在计算机系统中用于数据传输的通信方式,其特点是在数据传输过程中,发送方和接收方的时钟信号是独立的。这种通信方式在一定程度上可以提高
    的头像 发表于 07-23 09:17 544次阅读

    如何提高CAN总线传输可靠性

    提高CAN总线传输可靠性可以从多个方面入手,以下是一些具体的方法: 一、优化CAN总线设计 选择合适的
    的头像 发表于 11-21 10:26 104次阅读