CN105955920A - 一种片上网络中基于Credit的流控机制的设计方法 - Google Patents
一种片上网络中基于Credit的流控机制的设计方法 Download PDFInfo
- Publication number
- CN105955920A CN105955920A CN201610258969.8A CN201610258969A CN105955920A CN 105955920 A CN105955920 A CN 105955920A CN 201610258969 A CN201610258969 A CN 201610258969A CN 105955920 A CN105955920 A CN 105955920A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- control mechanism
- buffer queue
- credit
- 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.)
- Pending
Links
- 230000007246 mechanism Effects 0.000 title claims abstract description 41
- 238000000034 method Methods 0.000 title claims abstract description 22
- 230000005540 biological transmission Effects 0.000 claims abstract description 18
- 239000011159 matrix material Substances 0.000 claims abstract description 11
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 5
- 230000008901 benefit Effects 0.000 description 2
- 208000018721 fetal lung interstitial tumor Diseases 0.000 description 2
- 230000002045 lasting effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 235000016496 Panda oleosa Nutrition 0.000 description 1
- 240000000220 Panda oleosa Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17312—Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种片上网络中基于Credit的流控机制的设计方法,所述方法通过在上游模块的输出端口处添加一个计数器counter,为片上网络高阶矩阵开关设计一个精确的流控机制,其中counter值表示下游模块输入端口中空闲的缓存队列数目,通过判断模块内的counter值是否为0,判断出下游模块的缓存队列是否已满,从而决定是否向下游模块发送数据。本发明方法是一种精确的流控机制,同时也可以避免因下游模块缓存队列已满而继续发送报文造成报文丢失的现象,同时该机制可以实现缓存队列资源的充分利用和降低报文传输时延的目标。该机制在确保数据传输正确的情况下,还可以充分的利用缓存队列资源,且可以降低上下游模块间的数据传输时延。
Description
技术领域
本发明涉及高端服务器芯片设计领域,针对片上网络高阶矩阵开关在转发报文时不支持报文重传和不允许出现报文丢失的特点,具体涉及一种片上网络中基于Credit的流控机制的设计方法。
背景技术
片上网络高阶矩阵开关在转发报文时有一个重要的特点:不支持报文重传,意味着矩阵开关在转发数据时不允许出现报文丢失的情况,因此片上网络高阶矩阵开关需要设计一个精确的流控机制,来防止出现当下游路由器缓存空间已满时,上游路由器仍在持续的向它发送报文数据而出现报文数据丢失的现象。
片上网络高阶矩阵开关的流控机制,传统上有两种常用的实现方法:
(1)基于握手响应的流控机制;
(2)基于on/off开关的流控机制。从数据传输时延和缓存资源利用率角度考虑,这两种方法都存在一些不足,因此本专利提出了一种更高效的流控机制设计方法:基于Credit的流控机制。
基于握手响应的流控机制的工作过程是,当上游模块有报文数据要发送给下游模块时,首先向下游发送一个request信号,下游模块收到request信号后,判断自己的缓存队列是否已满,并返回一个ack应答信号给上游模块,上游模块收到ack应答信号后,根据ack信号值最终判断是否发送数据。该机制逻辑实现简单,但是不足的地方是数据传输时延比较大。
基于on/off开关的流控机制的工作过程是,在模块内设置on和off两个门限值,当下游模块中空闲缓存队列的数目小于off值时,发送1 bit信息通知上游模块处于“off”状态,停止发送报文数据;当下游模块的空闲缓存队列的数目大于on值时,发送1 bit信息通知上游模块处于“on”状态,继续发送报文数据。该机制的优点是上下游模块之间仅需要用1 bit信息来通知上游模块是否停止或继续发送数据,但它的不足之处是,设定的on/off值会导致缓存队列资源不能充分利用。
发明内容
本发明要解决的技术问题是:针对片上网络高阶矩阵开关在转发报文时不支持报文重传和不允许出现报文丢失的特点,为了提高缓存队列资源的利用率和降低上下游模块间的数据传输时延,本发明提出一种片上网络中基于Credit的流控机制的设计方法,为片上网络高阶矩阵开关设计一个精确的流控机制,实现上下游模块之间数据传输的正确性和高效性,同时防止出现当下游路由器缓存空间已满时,上游路由器仍在持续的向它发送报文数据而出现报文数据丢失的现象。
基于credit的流控机制只需要通过判断counter值是否为0就能确定下游模块是否已满,因此,相比前两种流控机制,该机制只增加了一个counter,但可以充分的利用缓存队列资源,且可以降低数据的传输时延。
本发明所采用的技术方案为:
一种片上网络中基于Credit的流控机制的设计方法,所述方法通过在上游模块的输出端口处添加一个计数器counter,为片上网络高阶矩阵开关设计一个精确的流控机制,其中counter值表示下游模块输入端口中空闲的缓存队列数目,通过判断模块内的counter值是否为0,判断出下游模块的缓存队列是否已满,从而决定是否向下游模块发送数据。
所述流控机制工作过程如下:每当上游模块发送一个微片,计数器counter的counter值减1,当counter值减到0时就意味着下游模块输入端口的缓存队列已满,不能再继续向它发送报文数据,此时数据在上游模块中阻塞;每当下游模块发送出一个报文数据时,表示缓存队列被释放了一个,向上游模块反馈一个credit信号,上游模块接收到credit信号后,counter值加1。
所述流控机制的片上网络的内部结构包括:上游模块XBAR0、下游模块XBAR1,两个模块的结构相同,XBAR0设置有数据的输出端口和一个计数器counter,XBAR1接收到XBAR0的数据后,通过3个虚通道之一把数据写入到对应的缓存队列中;
XBAR0在发送报文给XBAR1之前,先判断输出端口处的计数器counter值是否为0,如果为0,说明XBAR1中的缓存队列处于已满状态,不允许发送;如果不为0,则发送数据,同时发送一个credit_used信号给counter,此时counter值减1;XBAR1接收到数据后,根据虚信道(VC)仲裁的结果,数据经过仲裁出的虚信道写入对应的FIFO缓存队列中,如果缓存队列中的数据出现读操作时,数据被读出的同时反馈一个credit_free信号给上游模块XBAR0,counter收到credit_free信号后,counter值加1。
本发明的有益效果为:
本发明方法是一种精确的流控机制,同时也可以避免因下游模块缓存队列已满而继续发送报文造成报文丢失的现象,同时该机制可以实现缓存队列资源的充分利用和降低报文传输时延的目标。该机制在确保数据传输正确的情况下,还可以充分的利用缓存队列资源,且可以降低上下游模块间的数据传输时延。应用于Kanas的K1,该芯片集成了片上路由功能,片上路由负责各协议引擎和NI端口之间的报文转发和广播。引入基于credit的流控机制可以有效提高片上路由转发报文数据的性能和吞吐量。
附图说明
图1为本发明基于credit流控机制的片上网络内部结构示意图。
具体实施方式
下面结合说明书附图,根据具体实施方式对本发明进一步说明:
实施例1:
一种片上网络中基于Credit的流控机制的设计方法,所述方法通过在上游模块的输出端口处添加一个计数器counter,为片上网络高阶矩阵开关设计一个精确的流控机制,其中counter值表示下游模块输入端口中空闲的缓存队列数目,通过判断模块内的counter值是否为0,判断出下游模块的缓存队列是否已满,从而决定是否向下游模块发送数据。
实施例2
在实施例1的基础上,本实施例所述流控机制工作过程如下:每当上游模块发送一个微片,计数器counter的counter值减1,当counter值减到0时就意味着下游模块输入端口的缓存队列已满,不能再继续向它发送报文数据,此时数据在上游模块中阻塞;每当下游模块发送出一个报文数据时,表示缓存队列被释放了一个,向上游模块反馈一个credit信号,上游模块接收到credit信号后,counter值加1。
实施例3
如图1所示,在实施例2的基础上,本实施例所述流控机制的片上网络的内部结构包括:上游模块XBAR0、下游模块XBAR1,两个模块的结构相同,XBAR0设置有数据的输出端口和一个计数器counter,XBAR1接收到XBAR0的数据后,通过3个虚通道之一把数据写入到对应的缓存队列中;
其中:Credit_used信号的默认值是下游模块缓存队列的最大深度,每当上游模块向下游模块发送了一个报文FLIT后,counter-1;credit_free信号的默认值是0,每当下游模块缓存队列中的一个报文FLIT被读出时,counter+1;
XBAR0在发送报文给XBAR1之前,先判断输出端口处的计数器counter值是否为0,如果为0,说明XBAR1中的缓存队列处于已满状态,不允许发送;如果不为0,则发送数据,同时发送一个credit_used信号给counter,此时counter值减1;XBAR1接收到数据后,根据虚信道(VC)仲裁的结果,数据经过仲裁出的虚信道写入对应的FIFO缓存队列中,如果缓存队列中的数据出现读操作时,数据被读出的同时反馈一个credit_free信号给上游模块XBAR0,counter收到credit_free信号后,counter值加1。
上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (3)
1.一种片上网络中基于Credit的流控机制的设计方法,其特征在于:所述方法通过在上游模块的输出端口处添加一个计数器counter,为片上网络高阶矩阵开关设置一个精确的流控机制,其中counter值表示下游模块输入端口中空闲的缓存队列数目,通过判断模块内的counter值是否为0,判断出下游模块的缓存队列是否已满,从而决定是否向下游模块发送数据。
2.根据权利要求1所述的一种片上网络中基于Credit的流控机制的设计方法,其特征在于,所述流控机制工作过程如下:每当上游模块发送一个微片,计数器counter的counter值减1,当counter值减到0时就意味着下游模块输入端口的缓存队列已满,不能再继续向它发送报文数据,此时数据在上游模块中阻塞;每当下游模块发送出一个报文数据时,表示缓存队列被释放了一个,向上游模块反馈一个credit信号,上游模块接收到credit信号后,counter值加1。
3.根据权利要求2所述的一种片上网络中基于Credit的流控机制的设计方法,其特征在于,所述流控机制的片上网络的内部结构包括:上游模块XBAR0、下游模块XBAR1,两个模块的结构相同,XBAR0设置有数据的输出端口和一个计数器counter,XBAR1接收到XBAR0的数据后,通过3个虚通道之一把数据写入到对应的缓存队列中;
XBAR0在发送报文给XBAR1之前,先判断输出端口处的计数器counter值是否为0,如果为0,说明XBAR1中的缓存队列处于已满状态,不允许发送;
如果不为0,则发送数据,同时发送一个credit_used信号给counter,此时counter值减1;
XBAR1接收到数据后,根据虚信道仲裁的结果,数据经过仲裁出的虚信道写入对应的FIFO缓存队列中,如果缓存队列中的数据出现读操作时,数据被读出的同时反馈一个credit_free信号给上游模块XBAR0,counter收到credit_free信号后,counter值加1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610258969.8A CN105955920A (zh) | 2016-04-25 | 2016-04-25 | 一种片上网络中基于Credit的流控机制的设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610258969.8A CN105955920A (zh) | 2016-04-25 | 2016-04-25 | 一种片上网络中基于Credit的流控机制的设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105955920A true CN105955920A (zh) | 2016-09-21 |
Family
ID=56915092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610258969.8A Pending CN105955920A (zh) | 2016-04-25 | 2016-04-25 | 一种片上网络中基于Credit的流控机制的设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105955920A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107786471A (zh) * | 2017-10-23 | 2018-03-09 | 深圳市风云实业有限公司 | 多fpga芯片间数据处理方法及转换装置 |
CN107864099A (zh) * | 2017-10-23 | 2018-03-30 | 中国科学院空间应用工程与技术中心 | 一种异构fc网络的流量控制方法及系统 |
CN108768898A (zh) * | 2018-04-03 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种片上网络传输报文的方法及其装置 |
CN112398921A (zh) * | 2020-11-02 | 2021-02-23 | 北京左江科技股份有限公司 | 一种带内流控的设计方法 |
CN112994943A (zh) * | 2021-02-28 | 2021-06-18 | 新华三信息安全技术有限公司 | 一种报文统计方法及装置 |
CN114064562A (zh) * | 2022-01-17 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 一种片上网络的esl建模的方法、装置、设备及介质 |
CN114124841A (zh) * | 2021-11-19 | 2022-03-01 | 青岛信大云谷信息科技有限公司 | 一种高速转发数据轻量级流量控制的方法 |
CN114338530A (zh) * | 2021-12-21 | 2022-04-12 | 浙江华锐捷技术有限公司 | 设备状态的调整方法、装置、存储介质及电子装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1681263A (zh) * | 2004-04-09 | 2005-10-12 | 国际商业机器公司 | 使用背压机制主动管理中心队列缓冲区分配的方法和系统 |
CN101115053A (zh) * | 2007-08-24 | 2008-01-30 | 中国科学院计算技术研究所 | 一种信誉流量控制方法 |
CN101534173A (zh) * | 2009-04-20 | 2009-09-16 | 福建星网锐捷网络有限公司 | 一种数据流量控制方法和系统 |
CN103841046A (zh) * | 2012-11-19 | 2014-06-04 | 美国博通公司 | 基于信誉的链路级流控制的系统和方法 |
CN104054065A (zh) * | 2011-10-28 | 2014-09-17 | 卡尔雷公司 | 片上网络中的流管理 |
CN105721355A (zh) * | 2016-01-29 | 2016-06-29 | 浪潮(北京)电子信息产业有限公司 | 一种片上网络路由传输报文的方法及片上网络路由 |
-
2016
- 2016-04-25 CN CN201610258969.8A patent/CN105955920A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1681263A (zh) * | 2004-04-09 | 2005-10-12 | 国际商业机器公司 | 使用背压机制主动管理中心队列缓冲区分配的方法和系统 |
CN101115053A (zh) * | 2007-08-24 | 2008-01-30 | 中国科学院计算技术研究所 | 一种信誉流量控制方法 |
CN101534173A (zh) * | 2009-04-20 | 2009-09-16 | 福建星网锐捷网络有限公司 | 一种数据流量控制方法和系统 |
CN104054065A (zh) * | 2011-10-28 | 2014-09-17 | 卡尔雷公司 | 片上网络中的流管理 |
CN103841046A (zh) * | 2012-11-19 | 2014-06-04 | 美国博通公司 | 基于信誉的链路级流控制的系统和方法 |
CN105721355A (zh) * | 2016-01-29 | 2016-06-29 | 浪潮(北京)电子信息产业有限公司 | 一种片上网络路由传输报文的方法及片上网络路由 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107786471A (zh) * | 2017-10-23 | 2018-03-09 | 深圳市风云实业有限公司 | 多fpga芯片间数据处理方法及转换装置 |
CN107864099A (zh) * | 2017-10-23 | 2018-03-30 | 中国科学院空间应用工程与技术中心 | 一种异构fc网络的流量控制方法及系统 |
CN107786471B (zh) * | 2017-10-23 | 2021-03-16 | 深圳市风云实业有限公司 | 多fpga芯片间数据处理方法及转换装置 |
CN108768898A (zh) * | 2018-04-03 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种片上网络传输报文的方法及其装置 |
CN112398921A (zh) * | 2020-11-02 | 2021-02-23 | 北京左江科技股份有限公司 | 一种带内流控的设计方法 |
CN112994943A (zh) * | 2021-02-28 | 2021-06-18 | 新华三信息安全技术有限公司 | 一种报文统计方法及装置 |
CN112994943B (zh) * | 2021-02-28 | 2022-05-27 | 新华三信息安全技术有限公司 | 一种报文统计方法及装置 |
CN114124841A (zh) * | 2021-11-19 | 2022-03-01 | 青岛信大云谷信息科技有限公司 | 一种高速转发数据轻量级流量控制的方法 |
CN114338530A (zh) * | 2021-12-21 | 2022-04-12 | 浙江华锐捷技术有限公司 | 设备状态的调整方法、装置、存储介质及电子装置 |
CN114338530B (zh) * | 2021-12-21 | 2023-09-29 | 浙江华锐捷技术有限公司 | 设备状态的调整方法、装置、存储介质及电子装置 |
CN114064562A (zh) * | 2022-01-17 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 一种片上网络的esl建模的方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105955920A (zh) | 一种片上网络中基于Credit的流控机制的设计方法 | |
CN110278157B (zh) | 拥塞控制方法及网络设备 | |
Lu et al. | {Multi-Path} transport for {RDMA} in datacenters | |
US20160380895A1 (en) | Traffic Management Implementation Method and Apparatus, and Network Device | |
CN105721355A (zh) | 一种片上网络路由传输报文的方法及片上网络路由 | |
WO2018113426A1 (zh) | 一种流量控制方法及交换设备 | |
US8310934B2 (en) | Method and device for controlling information channel flow | |
WO2020192358A1 (zh) | 一种转发报文的方法和网络设备 | |
Huang et al. | Adjusting packet size to mitigate TCP incast in data center networks with COTS switches | |
CN110505156B (zh) | 一种高速互连网络中低开销的拥塞控制方法 | |
Zhang et al. | Congestion detection in lossless networks | |
CN103338157A (zh) | 一种多核系统核间数据报文缓存方法及设备 | |
Shan et al. | Analyzing and enhancing dynamic threshold policy of data center switches | |
CN113285935B (zh) | 一种通信系统和一种片上网络路由器 | |
CN108768898A (zh) | 一种片上网络传输报文的方法及其装置 | |
CN111683017A (zh) | 高速互连网络中的多等级拥塞控制方法、装置、系统及介质 | |
CN102594669A (zh) | 数据报文的处理方法、装置及设备 | |
CN104104617B (zh) | 一种报文仲裁方法及装置 | |
US20210029060A1 (en) | Data Communication Method And Apparatus | |
WO2023130835A1 (zh) | 一种数据交换方法及装置 | |
CN101539871B (zh) | 均衡处理负荷的装置、数据处理系统和方法、主控板 | |
Zhang et al. | Revisiting congestion detection in lossless networks | |
Ferrer et al. | Congestion management in mins through marked and validated packets | |
WO2018082655A1 (zh) | 一种确定数据传输路径的方法、装置 | |
CN115967687A (zh) | 快转发报文方法、网络设备、存储介质及计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160921 |
|
RJ01 | Rejection of invention patent application after publication |