CN103532807B - 一种用于pcie数据服务质量管理的方法 - Google Patents
一种用于pcie数据服务质量管理的方法 Download PDFInfo
- Publication number
- CN103532807B CN103532807B CN201310473309.8A CN201310473309A CN103532807B CN 103532807 B CN103532807 B CN 103532807B CN 201310473309 A CN201310473309 A CN 201310473309A CN 103532807 B CN103532807 B CN 103532807B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- pcie
- sent
- packet header
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种用于PCIE数据服务质量管理的技术,发送端数据通路完成PCIE规定的基本事务的同时,也完成PCIE事务层数据服务质量的要求,主要是在共用buffer的前提下,让待发送的数据和包头按照协议规定的方式发送,同时满足数据服务质量的需求,信用量得到控制,仲裁算法可供选择,对数据进行有效控制,防止数据丢失或阻塞发生。
Description
技术领域
本发明涉及一种用于PCIE数据服务质量管理的技术。
背景技术
半导体技术的发展日新月异,芯片集成度显著提高,计算机处理器和网卡等性能已得到很大提高,但是连接处理器和外围组件之间的总线速度却没有提高。因特尔(intel)从1992年创立外围互联组件(PCI)总线后,PCI总线就成为总线的标准,一直使用至今。 PCI总线的最大带宽是133MB/s,但是这有限的带宽需要提供给网卡、显卡等设备共享使用。对于现在已经出现的万兆网卡来说,PCI总线带宽显然是杯水车薪,总线带宽已经成为影响计算机发展的瓶颈。所以, PCIE就在这样的背景下应运而生了。
Intel于2001年提出了第三代总线(3GIO,Third Generation I/O)的概念。命名为3GIO总线,后改名为PCIE总线。此次提出的总线协议在总线结构上采取了根本性的变革。首先,PCIE将先前总线使用的并行结构改成串行结构。即对原来总线结构进行修改,把原来并行结构中下挂的一条总线变成了一个链路,一个链路中又包含多个通道,传输的数据都按照新的协议组装成标准的格式来收发。然后PCIE采用了点到点的互联方式,每个设备都有独自的链路连接,独享带宽,不同于传统总线的共享带宽结构。PCIE的结构提高了传输效率,提升了带宽。现在的PCIE协议已更新到PCIE3.0版本。第一代PCIE的每条通道上单方向的数据传输速度已达到2.5Gbps,PCIE2.0速度翻番到5.0 Gbps。现在处于研发阶段的PCIE3.0速度则是到达8Gbps。PCIE总线向下兼容传统的PCI总线,所以在地址空间、配置空间上都和PCI总线保持兼容。现行处于研发阶段的PCIE3.0支持(数据服务质量)QoS、热插拔、电源管理等功能。 PCIE的QoS功能是第三代总线中的一个技术优势,相比于传统的PCI总线,QoS解决了差异性服务问题,通道阻塞问题也就迎刃而解。同时,链路传输效率得到改善,有助于解决总线带宽问题。
现有的PCIE产品中关于QoS的实现主要是通过对虚通道的管理和通道的流量控制。其中对虚通道的管理成为事务层服务质量实现的主要点。PCIE最多可以有八个虚拟通道,发送端和接收端成对称结构,各有八个虚拟通道。通过每这些虚通道进行配置,仲裁算法选择以及每个虚拟通道的流量控制来实现服务质量。虚拟通道在一般PCIE设备的事务层中的位置和结构图1所示。
现有技术方案,在功能上实现了QoS的作用。但是耗用资源太过,收发端口的buffer过多耗费了芯片优先的面积,主要表现为每个虚拟通道使用各自的缓存,造成芯片面积大,功耗高,芯片速度不易提高;QoS机制主要通过严格优先算法实现仲裁,仲裁机制简单不够优化,效率不高,容易造成低优先级的事务一直阻塞。
发明内容
本发明的目的在于克服上述不足,提供一种用于PCIE数据服务质量管理的技术,在功能和更改结构之前保持一致的情况下,减小占用面积,提高芯片速度和降低功耗,同时优化仲裁机制,提高仲裁效率,避免事务阻塞。
本发明的目的是这样实现的:一种用于PCIE数据服务质量管理的方法,发送端数据通路完成PCIE规定的基本事务的同时,也完成PCIE事务层数据服务质量的要求,主要是在共用buffer的前提下,让待发送的数据和包头按照协议规定的方式发送,同时满足数据服务质量的需求,信用量得到控制,仲裁算法可供选择,对数据进行有效控制,防止数据丢失或阻塞发生。
其进一步技术方案的具体步骤如下:
1)接收端和发送端的buffer都共用一个buffer,其中数据和包头的分开存放;
2)发送端数据通路完成PCIE规定的基本事务的同时,也完成PCIE事务层数据服务质量的要求;
3)在共用buffer的前提下,让待发送的数据和包头按照协议规定的方式发送,同时满足数据服务质量的需求,信用量得到控制,仲裁算法可供选择,对数据进行有效控制,防止数据丢失或阻塞发生;
4)来自应用层的三个接口进行分类,每一个接口只发送一类事务,比如接口1发送非转发(NP),接口2发送转发(P)事务,接口3发送返回数据的完成包;
5)分类结束后,三个接口的发送优先级完全按照一个软件配置的仲裁表发送。根据仲裁表中的元素值依次发送;
6)通过软件配置仲裁表的值来完成三个接口优先级的调节。比如接口1发送的NP事务优先级高一点,那么将表中的接口1选项的数量多于其他接口,同时仲裁表中其他接口也必须都有,这样可以避免某一个端口永远得不到仲裁权不能发送事务。
所述发送模块包括六个下属子模块:
1)仲裁模块:它负责仲裁的不同发送请求;
2)信用量检查模块:该模块负责信用值计算和检查;
3)选择模块:该模块从仲裁模块接收控制信息,用来控制不同事务类型的输入,并提供反压信号,在适当时候阻止事务继续发送;
4)包头组装模块:事务层包头组装模块,该模块接收来自选择模块和查找表模块的事务信息,用此信息组装成符合PCIE协议格式的包头;
5)输出驱动模块:数据输出功能,该模块将输入的128bit TLP转换成适合数据路径传输的位宽数据;
6)查找表模块:完成包的查找表。
与现有技术相比,本实用新型的有益效果是:
本发明可以减小芯片面积,提高速度,较小功耗。因为本发明使用了共享buffer结构的同时功能仍然实现。与原结构相比,buffer占用面积大大减小,节省下的面积可以使得芯片速度提高,功耗降低;提出改进型的多通道仲裁机制;基于接口的仲裁策略,软件配置。简单方便,效率高,灵活度高,可以控制每个接口的优先级。
附图说明
图1是本发明涉及的PCIE事物层中虚拟通道的位置和结构。
图2是本发明中虚拟通道共享buffer结构。
图3是本发明中共享buffer下的PCIE事物层发送端结构。
图4是本发明中改进的仲裁策略示意图。
具体实施方式
如图2所示,一种用于PCIE数据服务质量管理的方法,接收端和发送端的buffer都共用一个buffer,其中数据和包头的分开存放的。这样比原来的两端共16个buffer的占用面积大大减小。
PCIE协议规定了数据和包头的各自处理方式,数据必须以双字为单位,包头需要按照规定的格式进行组合。
如图3所示,在新的结构下,发送端数据通路完成PCIE规定的基本事务的同时,也完成PCIE事务层QoS的要求。主要是在共用buffer的前提下,让待发送的数据和包头按照协议规定的方式发送,同时满足QoS的需求,信用量得到控制,仲裁算法可供选择,对数据进行有效控制,防止数据丢失或阻塞发生。
PCIE协议规定设备设计采用分层结构,由事务层、数据链路层、物理层构成,各层又分为发送和接收两个功能模块。在设备的发送部分,首先根据来自设备核和应用程序(可以统称为软件层)的消息。在事务层形成事务包(TLP),传统的结构将形成的数据和包头放在缓冲器中,等待推向下一层。但是在本提案的结构中,将buffer放在发送模块之外,可以完成传统结构的同样功能,优点是节省面积,提高速度。
事务层发送该模块主要用于完成事物层包(TLP)的发送以及PCIE特有的控制逻辑。该模块主要采用的直通转发结构,只对存放在缓冲器(fifo)中的包头进行处理,将包头信息读进来后,根据包头的信息进行信用量检查,仲裁算法选择,同时将这些信息按照不同的事务类型包格式组装。同时在处理包头的过程中,buffer中的数据一直没有读入到发送模块中,一直被反压信号阻塞住,只有在发送模块包头准备好,信用量检查通过后,才将反压信号拉低。这时数据从buffer中读出,跟在包头后面直接发送到数据链路层。至此,发送模块完成发送任务,在整个处理过程中,数据一直存放在数据缓冲器(data_buffer)中,并没有在发送模块中缓存过,在包头信息分析处理后和包头一起按照双字为单位发送出去。这样通过共享发送模块外的两个buffer完成发送任务和QoS功能。
详细的各模块工作原理如下所述,该发送模块包含 6个下属子模块:
1)仲裁模块: 它负责仲裁不同请求的发送。该模块面向的有三类请求包的发送,他们分别是来自应用层的请求、PCIE内部的消息事务、完成包事务。仲裁的主要依据是信用值是否足够和各请求的优先级大小。其中协议要求固定的优先级是内部的消息事务优先级最高,完成包(CPL)优先级次之,来自应用层的请求事务优先级最低。由仲裁算法决定的优先级是:当来自应用层的请求不止一个时,会存在选择优先级问题。这里的优先级算法有仲裁算法决定。
2)信用量检查模块: 该模块负责信用值计算和检查,属于流控制机制的一部分。该模块用来确定待发送的事务包是否有足够的信用量。即待发送的事务只有在信用值足够的情况下才继续按照优先级决定谁先发送。这个是QoS功能的重要组成部分,如果只有一个用户接口来发送事务请求(例如转发、非转发)。会出现如下问题,当正在请求的事务是转发(P)类型的,但是由于信用值不够,他会阻塞模块发送其他事务,即使后面的非转发(NP)事务有足够的信用值。通过流量控制可以调节信用量通过检查的事务优先发送。
3)选择(MUX)模块: 多通道用户接口选择模块。该模块从仲裁模块接收控制信息,用来控制不同事务类型的输入,并提供反压信号,在适当时候阻止事务继续发送。这里在接收到可以发送事务后,撤销反压信号,buffer中的数据被读出和后面组装好的包头一起发送出去。
4)包头组装模块: 事务层包头组装模块。该模块接收来自MUX和查找表(LUT)模块的的事务信息,用此信息组装成符合PCIE协议格式的包头。此包头一般是4双字(DW),即128bit的位宽数据。该模块主要完成包头的组装。对于不同的事务类型,包头格式不同,所以该模块要能完成不同类型的包头组装。将输入的156bit的包头信息拆分开来重新组装成按照协议格式要求的标准包头。不同的事务类型的包头不同,一共有五种类型的包头格式(组包格式解释见PCIE协议)。
5)输出驱动模块 :数据输出功能,该模块将输入的128bit TLP转换成适合数据路径传输的位宽数据。
6)完成包LUT模块:完成包的查找表。该模块主要有两个功能:1.存储待发送的cpl包的某些包头信息,再发送时就不需要提供这些包头信息了。这些信息包括:请求号(remote_req_id)、 完成包字节计数(cpl_byte_cnt)、 事务包属性(tlp_attr)、 事务包地址(tlp_addr)、 事务包标签号(tlp_tag)。 2. 延时机制,当发送的cpl包超时了,该功能会清除对应的响应。该模块和AHB/AXI桥的同时配置。
综上,事务层发送的新结构完成了基本的事物层发送功能和QoS功能,在共享buffer的结构下不会影响原来的功能实现。这样本提案完成多通道QoS共享单一缓存,以减小面积、提高速度。其中事务层接收端的共享buffer结构和发送端成对称关系,基本的实现方法和发送端基本一致,不再重复描述。
如图4所示,本提案中采用了共享buffer的结构,仲裁策略也相应的改进,提出了改进型的多通道仲裁机制。原始PCIE的仲裁机制是基于虚通道的仲裁,任何支持两个以上的设备都会涉及到虚通道(VC)仲裁。一般使用的仲裁策略是分组优先序仲裁,将支持的虚通道数进行分组,分成低优先级组和高优先级组。其中,低优先级组的虚通道按照轮转优先序算法仲裁,即低优先级组的事务根据不同的虚通道轮流发送。高优先级组的虚通道按照严格优先序发送,即虚通道ID高的虚通道必须先发送,ID号最低的优先级最低。
,改进型的仲裁策略是基于应用层的接口来进行判断的,而不是以往的基于虚通道的仲裁。但是从效果上看,都完成了请求事务的仲裁,使得优先级得以满足。但是改进型的仲裁方案更简单,效率很高。
具体的仲裁方法是:来自应用层的三个接口进行分类,每一个接口只发送一类事务,比如接口1发送非转发(NP),接口2发送转发(P)事务,接口3发送返回数据的完成包。分类结束后,三个接口的发送优先级完全按照一个软件配置的仲裁表发送。根据仲裁表中的元素值一次发送。通过软件配置仲裁表的值来完成三个接口优先级的调节。比如接口1发送的NP事务优先级高一点,那么将表中的接口1选项的数量多于其他接口,同时仲裁表中其他接口也必须都有,这样可以避免某一个端口永远得不到仲裁权不能发送事务。
以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。
Claims (2)
1.一种用于PCIE数据服务质量管理的方法,其特征在于:
PCIE中虚拟通道的缓存结构依次执行以下步骤:
1)接收端和发送端的缓存分别共用一个缓存,缓存与发送模块相互分开,其中数据存放在缓存中,包头存放在发送模块中;
2)发送端数据通路完成PCIE规定的基本事务的同时,也完成PCIE事务层服务质量的要求,主要是在共用buffer的前提下,让待发送的数据和包头按照协议规定的方式发送,同时满足QoS的需求,信用量得到控制,仲裁算法可供选择,对数据进行有效控制,防止数据丢失或阻塞发生;
3)在共用缓存的前提下,让待发送的数据和包头按照PCIE协议规定的方式发送,数据和包头的发送满足相应的仲裁机制,所述仲裁机制包括以下内容:
a)对来自应用层的三个接口进行分类,每一个接口只发送一类事务;
b)分类结束后,三个接口的发送优先级完全按照一个软件配置的仲裁表发送,根据仲裁表中的元素值依次发送;
c)通过软件配置仲裁表的值来完成三个接口优先级的调节。
2.根据权利要求1所述的一种用于PCIE数据服务质量管理的方法,其特征在于:所述发送模块包括六个下属子模块:
1)仲裁模块:它负责仲裁不同请求的发送;
2)信用量检查模块:该模块负责信用值计算和检查;
3)选择模块:该模块从仲裁模块接收控制信息,用来控制不同事务类型的输入,并提供反压信号,在适当时候阻止事务继续发送;
4)包头组装模块:事务层包头组装模块,该模块接收来自选择模块和查找表模块的事务信息,用此信息组装成符合PCIE协议格式的包头;
5)输出驱动模块:数据输出功能,该模块将输入的128bit TLP转换成适合数据路径传输的位宽数据;
6)查找表模块:完成包的查找表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310473309.8A CN103532807B (zh) | 2013-10-12 | 2013-10-12 | 一种用于pcie数据服务质量管理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310473309.8A CN103532807B (zh) | 2013-10-12 | 2013-10-12 | 一种用于pcie数据服务质量管理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103532807A CN103532807A (zh) | 2014-01-22 |
CN103532807B true CN103532807B (zh) | 2017-10-03 |
Family
ID=49934505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310473309.8A Active CN103532807B (zh) | 2013-10-12 | 2013-10-12 | 一种用于pcie数据服务质量管理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103532807B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109428771B (zh) * | 2017-08-21 | 2021-02-09 | 深圳市中兴微电子技术有限公司 | 一种高速外围组件互联报文性能检测方法和装置 |
CN108228510A (zh) * | 2018-01-17 | 2018-06-29 | 广东工业大学 | 一种总线的仲裁方法、设备、存储介质及总线仲裁器 |
CN109634900B (zh) * | 2018-11-13 | 2020-12-08 | 北京时代民芯科技有限公司 | 一种基于axi协议的多层次低延迟互连结构 |
CN109684269B (zh) * | 2018-12-26 | 2020-06-02 | 成都九芯微科技有限公司 | 一种pcie交换芯片内核及工作方法 |
CN110688332B (zh) * | 2019-09-12 | 2021-01-15 | 无锡江南计算技术研究所 | 一种面向高速消息传输的pcie数据传输系统及计算机 |
EP4080845A4 (en) * | 2020-01-22 | 2023-01-11 | Huawei Technologies Co., Ltd. | METHOD AND DEVICE FOR DATA TRANSMISSION ON PCIE BASE |
CN113498597B (zh) * | 2020-01-22 | 2022-10-28 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
CN113498600B (zh) * | 2020-01-22 | 2022-11-25 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
CN112131155B (zh) * | 2020-09-29 | 2024-04-26 | 中国船舶集团有限公司第七二四研究所 | 一种高扩展性的基于fpga的pcie事务层传输方法 |
CN114579490A (zh) * | 2020-11-30 | 2022-06-03 | 深圳市中兴微电子技术有限公司 | 一种数据传输方法、装置、电子设备和存储介质 |
CN113297022B (zh) * | 2021-06-09 | 2023-03-24 | 海光信息技术股份有限公司 | 高速串行计算机扩展总线测试方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043510A (zh) * | 2007-04-29 | 2007-09-26 | 中兴通讯股份有限公司 | Pci-e总线分布式系统单板内及单板间数据通讯方法 |
US7281077B2 (en) * | 2005-04-06 | 2007-10-09 | Qlogic, Corporation | Elastic buffer module for PCI express devices |
CN101930479A (zh) * | 2010-08-27 | 2010-12-29 | 中国科学院上海微系统与信息技术研究所 | 一种基于pcie协议的多通道数据采集装置 |
CN102819517A (zh) * | 2011-06-08 | 2012-12-12 | 鸿富锦精密工业(深圳)有限公司 | Pcie接口卡 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7949794B2 (en) * | 2006-11-02 | 2011-05-24 | Intel Corporation | PCI express enhancements and extensions |
-
2013
- 2013-10-12 CN CN201310473309.8A patent/CN103532807B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7281077B2 (en) * | 2005-04-06 | 2007-10-09 | Qlogic, Corporation | Elastic buffer module for PCI express devices |
CN101043510A (zh) * | 2007-04-29 | 2007-09-26 | 中兴通讯股份有限公司 | Pci-e总线分布式系统单板内及单板间数据通讯方法 |
CN101930479A (zh) * | 2010-08-27 | 2010-12-29 | 中国科学院上海微系统与信息技术研究所 | 一种基于pcie协议的多通道数据采集装置 |
CN102819517A (zh) * | 2011-06-08 | 2012-12-12 | 鸿富锦精密工业(深圳)有限公司 | Pcie接口卡 |
Non-Patent Citations (1)
Title |
---|
"基于PCI-E接口数据采集系统FPGA设计与实现";汤奥;《中国优秀硕士学位论文全文数据库信息科技辑》;20120731;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103532807A (zh) | 2014-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103532807B (zh) | 一种用于pcie数据服务质量管理的方法 | |
US7769893B2 (en) | Integrated circuit and method for establishing transactions | |
CN101227402B (zh) | 聚合链路流量分担方法及装置 | |
US20080043742A1 (en) | Transmission using multiple physical interface | |
US9900090B1 (en) | Inter-packet interval prediction learning algorithm | |
US7406041B2 (en) | System and method for late-dropping packets in a network switch | |
US20030026205A1 (en) | Packet input thresholding for resource distribution in a network switch | |
US7277975B2 (en) | Methods and apparatuses for decoupling a request from one or more solicited responses | |
CN109861931B (zh) | 一种高速以太网交换芯片的存储冗余系统 | |
CN102185833A (zh) | 一种基于fpga的fc i/o并行处理方法 | |
US20090083500A1 (en) | Memory controller and method for coupling a network and a memory | |
CN104598430B (zh) | 一种cpu互联扩展系统的网络接口互联设计与控制系统 | |
CN105765484B (zh) | 输入输出数据对齐 | |
US9344384B2 (en) | Inter-packet interval prediction operating algorithm | |
CN101309194A (zh) | Spi4.2总线桥接实现方法及spi4.2总线桥接器件 | |
US9304706B2 (en) | Efficient complex network traffic management in a non-uniform memory system | |
WO2023030195A1 (zh) | 缓存管理方法和装置、控制程序及控制器 | |
CN103384225B (zh) | 基于输入交叉点缓存快速分组交换网络的流量控制方法 | |
US20080126620A1 (en) | Coupling data buffers with memory interfaces | |
CN102291314B (zh) | 用于片上网络的有中心流控方法和装置 | |
CN101334763B (zh) | 主机与设备之间的数据传送方法 | |
CN107453781A (zh) | 一种高速信号转换电路 | |
CN103902249B (zh) | 集约式数据帧队列控制器及控制方法 | |
CN116074273A (zh) | 一种数据传输方法以及装置 | |
Xincan | Web caching system research and implementation of cluster |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170727 Address after: 214400 Wuxi City, Jiangyin, Shoushan Road, No. 117 sunshine golden home, room 2, building 401, room Applicant after: Ding Xiangen Address before: 214433 Jiangyin, Wuxi, Chengjiang street, new road, No., No. 9 Applicant before: Jiangsu Huali Network Engineering Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |