您的位置 首页 > 德语词汇

flow control是什么意思、读音 「博文连载」PCIe扫盲——Flow Control基础(一)

大家好,感谢邀请,今天来为大家分享一下flow control是什么意思、读音的问题,以及和「博文连载」PCIe扫盲——Flow Control基础(一)的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

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

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

flow control是什么意思、读音 「博文连载」PCIe扫盲——Flow Control基础(一)

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

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

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

6、需要注意的是,虽然FlowControlDLLP只在相邻的数据链路层之间传输,但是相关的Buffer和计数器(FCCounter)确实存在于事务层(TransactionLayer)的。如下图所示:

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

8、PostedTransactions(包括MemoryWrites和Messages)、Non-PostedTransactions(包括MemoryReads、ConfigurationReadsandWrites、IOReadsandWrites)以及Completions(包括ReadandWriteCompletion)。并且知道,TLP可以分为两个部分,Header和Data部分。FlowControl为了获得更高的数据传输效率,将这三类TLP分开存放,同时将Header与Data部分也分开存放。因此,一共存在六种不同的FlowControlBuffer类型,如下图所示:

9、FlowControlBuffer的存储单元(Unit)被称作FlowControlCredits。对于Header来说,RequestsTLP每个unit等于5DW,而CompletionsTLP每个unit等于4DW。对于Data来说,每个unit等于4DW,即DataBuffer是按照16个字节对齐的。对于各种类型的Buffer的最小值如下表所示:

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

OK,本文到此结束,希望对大家有所帮助。

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023