CN110691043A - 一种支持多源多虚通道非连续传输的插花整理方法 - Google Patents
一种支持多源多虚通道非连续传输的插花整理方法 Download PDFInfo
- Publication number
- CN110691043A CN110691043A CN201910857257.1A CN201910857257A CN110691043A CN 110691043 A CN110691043 A CN 110691043A CN 201910857257 A CN201910857257 A CN 201910857257A CN 110691043 A CN110691043 A CN 110691043A
- Authority
- CN
- China
- Prior art keywords
- queue
- message
- entry
- receiving
- virtual
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6245—Modifications to standard FIFO or LIFO
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种支持多源多虚通道非连续传输的插花整理方法,涉及计算机设计技术领域,方法包括以下步骤:S1:目标节点对接收的微片进行解析,将不同微片发送到相应虚通道的接收队列;S2:每个虚通道的接收队列设置一组正在接收包的标记存储器,标记内容;S3:每个虚通道的接收队列中的每个条目均进行接收队列处理;S4:设置一个提交条目地址辅助队列,将各虚通道的报文各个微片的地址依次存入,根据辅助队列的输出依次读取相应的虚通道中的队列条目。本发明一种支持多源多虚通道非连续传输的插花整理方法支持多源多虚通道非连续传输的插花报文的接收和整理,提高了片上网络有效带宽,减少阻塞,减少片上网络死锁和负载不均衡现象。
Description
技术领域
本发明涉及计算机设计技术领域,
尤其是,本发明涉及一种支持多源多虚通道非连续传输的插花整理方法。
背景技术
现阶段,片上网络技术,NoC(Networks on Chip)在微处理器中广泛应用。相比总线和交叉开关,片上网络的带宽大幅提升,可实现性大幅增强。片上网络在芯片内部引入了报文交换的交换方式,甚至采用虫孔路由等流控方式,使得片内信息传输的连续性极大减弱,对目标节点的数据整理能力提出了很高的要求。然而,片内资源极其有限,无法实现类似互联网中的多层传输协议,只能使用少量逻辑和存储资源来实现数据整理功能。
片上网络的接收队列普遍采用常规先进先出队列,FIFO(First In First Out),这种方法对于多个来源、多个虚通道发来的多拍报文同时到达的情况只能采取较为消极的应对方式。例如,报文A的第一个微片被目标节点接收后,报文A的第二个微片迟迟未能到达目标节点,而此时与报文A具有相同虚通道号和相同目标节点的报文B的第一个微片也已经到达该目标节点,报文B只能等待报文A接收完成才能被接收。这会造成几个问题难以解决。第一个问题在于,当网络注入率较高时,每个报文的微片之间的延迟会被拉大,目标节点的接收率将极大下降,片上网络的带宽难以有效发挥。第二个问题在于,片上网络路由器中到达目标节点却因为等待先到达报文的后续微片而无法被接收的报文,将停留在路由器中难以下网,造成路由器和链路的拥塞,链路的拥塞将使虚通道机制的效率也大打折扣。第三个问题在于,如果路由器或接收队列的资源不够,出现多个报文互相等待资源释放的情况,则造成了死锁,死锁的避免、检测和恢复等都将消耗大量硬件资源。第四个问题在于,如果先到达的报文长度很大,后到达的短报文也无法插空接收,造成网络负载不均衡。
综上所述,常规方法实现的片上网络下网队列,难以高效、无死锁解决多源多虚通道非连续传输情况下的数据接收整理。
所以,如何设计一种合理的支持多源多虚通道非连续传输的插花整理方法,成为我们当前急需要解决的问题。
发明内容
本发明的目的在于提供一种支持插花方式接收多源多虚通道非连续传输报文并完成报文整理的片上网络接收队列设计,以便提高片上网络有效带宽,减少片上网络阻塞,减少片上网络死锁和负载不均衡现象的支持多源多虚通道非连续传输的插花整理方法。
为达到上述目的,本发明采用如下技术方案得以实现的:
一种支持多源多虚通道非连续传输的插花整理方法,该方法包括以下步骤:
S1:目标节点对接收的微片进行解析,将不同虚通道的微片发送到相应虚通道的接收队列中;
S2:每个虚通道的接收队列中设置一组正在接收包的标记存储器,每个源对应一个条目,标记存储器内容;
S3:每个虚通道的接收队列中的每个条目增加队列参数,进行接收队列处理;
S4:设置一个提交条目地址辅助队列,将各虚通道已经收齐但尚未提交的报文各个微片的地址计算出后依次存入,然后根据该辅助队列的输出依次读取相应的虚通道中的队列条目。
作为本发明的优选,执行步骤S1时,对接收的微片进行解析,判断微片是否是报文头,若是则获取路由信息,反之则需要提取源节点号和虚通道号。
作为本发明的优选,执行步骤S2时,标记存储器条目包括:
有效位,指示是否正在接收对应源节点的报文;
队列条目号,指示正在接收对应源节点的报文所使用的队列条目;
偏移量,指示正在接收对应源节点的报文已经接收了多少个微片;
报文长度,指示正在接收对应源节点的报文的微片数量。
作为本发明的优选,执行步骤S2时,标记存储器内容具体包括:
S21:每接收一个微片时,判断对应源节点的标记条目是否无效,若是则置为有效,从队列的空闲条目中找出一个放置该微片,将对应条目号填入队列条目号域,将偏移量置0,并记录报文长度;反之同样从队列的空闲条目中找出一个放置该微片,将对应条目号追加到“队列条目号”域,将偏移量加1;
S22:判断偏移量是否等于报文长度,若是,则表示该报文接收完毕,此时需要通知存储了该报文的微片的队列条目,已经处于收齐状态;反之继续执行步骤S21。
作为本发明的优选,执行步骤S3时,队列参数包括:
有效位值,指示该条目是否存储了微片;
偏移量值,指示本微片是所在包的第几个微片;
年龄域,用于判断该条目的微片能否发出,只有最早收齐的条目才能发出;
收齐位,用于记录对应的报文是否收齐,只有当一个报文的尾被接收时才算收齐。
作为本发明的优选,执行步骤S3之前,虚通道的接收队列中设置“入口年龄计数器”和“出口年龄计数器”:“入口年龄计数器”记录最晚收齐的报文的年龄,“出口年龄计数器”记录最晚向目标提交的报文的年龄
作为本发明的优选,执行步骤S3时,接收队列处理的主要流程为:
当一个报文收齐时,根据标记存储器中记录的队列条目号,将该报文所有微片所在的条目的年龄域填入入口年龄计数器值,同时该计数器加1;当一个报文向目标提交完毕时,出口年龄计数器加1。对于队列中的每个有效条目,当收齐位为1,且年龄值等于出口年龄计数器值,则说明自身为可以提交的报文的一个微片,可根据自身的偏移量依次提交。
本发明一种支持多源多虚通道非连续传输的插花整理方法有益效果在于:实现支持多源多虚通道非连续传输的插花报文的接收和整理,大幅提高了片上网络有效带宽,减少片上网络阻塞,减少片上网络死锁和负载不均衡现象。
附图说明
图1为本发明一种支持多源多虚通道非连续传输的插花整理方法的流程示意图。
具体实施方式
以下是本发明的具体实施例,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的模块和步骤的相对布置和步骤不限制本发明的范围。
同时,应当明白,为了便于描述,附图中的流程并不仅仅是单独进行,而是多个步骤相互交叉进行。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法及系统可能不作详细讨论,但在适当情况下,技术、方法及系统应当被视为授权说明书的一部分。
片上网络的接收队列普遍采用常规先进先出队列,FIFO(First In First Out),这种方法对于多个来源、多个虚通道发来的多拍报文同时到达的情况只能采取较为消极的应对方式,常规方法实现的片上网络下网队列,难以高效、无死锁解决多源多虚通道非连续传输情况下的数据接收整理。
实施例,如图1所示,仅为本发明的其中一个实施例,本发明提供一种支持多源多虚通道非连续传输的插花整理方法,该方法包括以下步骤:
一种支持多源多虚通道非连续传输的插花整理方法,该方法包括以下步骤:
S1:目标节点对接收的微片进行解析,将不同虚通道的微片发送到相应虚通道的接收队列中;
当然,对接收的微片进行解析时,需要判断微片是否是报文头,若是报文头则获取报文长度、报文类型、报文版本以及报文实体等路由信息,反之,若不是报文头的其他微片,则需要提取源节点号和虚通道号。
S2:每个虚通道的接收队列中设置一组正在接收包的标记存储器,每个源对应一个条目,标记存储器内容;
在这里,标记存储器条目包括:
有效位,指示是否正在接收对应源节点的报文;
队列条目号,指示正在接收对应源节点的报文所使用的队列条目;
偏移量,指示正在接收对应源节点的报文已经接收了多少个微片;
报文长度,指示正在接收对应源节点的报文的微片数量。
而且,标记存储器内容具体包括:
S21:每接收一个微片时,判断对应源节点的标记条目是否无效,若是则置为有效,从队列的空闲条目中找出一个放置该微片,将对应条目号填入队列条目号域,将偏移量置0,并记录报文长度;反之同样从队列的空闲条目中找出一个放置该微片,将对应条目号追加到“队列条目号”域,将偏移量加1;
S22:判断偏移量是否等于报文长度,若是,则表示该报文接收完毕,此时需要通知存储了该报文的微片的队列条目,已经处于收齐状态;反之继续执行步骤S21。
S3:每个虚通道的接收队列中的每个条目增加队列参数,进行接收队列处理;
而且,每个条目增加的队列参数包括:
有效位值,指示该条目是否存储了微片;
偏移量值,指示本微片是所在包的第几个微片;
年龄域,用于判断该条目的微片能否发出,只有最早收齐的条目才能发出;
收齐位,用于记录对应的报文是否收齐,只有当一个报文的尾被接收时才算收齐。
需要注意的是,执行步骤S3之前,虚通道的接收队列中设置“入口年龄计数器”和“出口年龄计数器”:“入口年龄计数器”记录最晚收齐的报文的年龄,“出口年龄计数器”记录最晚向目标提交的报文的年龄
然后,接收队列处理的主要流程为:
当一个报文收齐时,根据标记存储器中记录的队列条目号,将该报文所有微片所在的条目的年龄域填入入口年龄计数器值,同时该计数器加1;当一个报文向目标提交完毕时,出口年龄计数器加1。对于队列中的每个有效条目,当收齐位为1,且年龄值等于出口年龄计数器值,则说明自身为可以提交的报文的一个微片,可根据自身的偏移量依次提交。
S4:设置一个提交条目地址辅助队列,将各虚通道已经收齐但尚未提交的报文各个微片的地址计算出后依次存入,然后根据该辅助队列的输出依次读取相应的虚通道中的队列条目。
最后根据提交条目地址辅助队列的输出依次读取相应的虚通道中的队列条目,并进行整理存储,大幅提高了片上网络有效带宽,减少片上网络阻塞,减少片上网络死锁和负载不均衡现象。
本发明一种支持多源多虚通道非连续传输的插花整理方法实现支持多源多虚通道非连续传输的插花报文的接收和整理,大幅提高了片上网络有效带宽,减少片上网络阻塞,减少片上网络死锁和负载不均衡现象。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围,本发明所属技术领域的技术人员可以对所描述的具体实施例来做出各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的方向或者超越所附权利要求书所定义的范围。本领域的技术人员应该理解,凡是依据本发明的技术实质对以上实施方式所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围。
Claims (7)
1.一种支持多源多虚通道非连续传输的插花整理方法,其特征在于,包括以下步骤:
S1:目标节点对接收的微片进行解析,将不同虚通道的微片发送到相应虚通道的接收队列中;
S2:每个虚通道的接收队列中设置一组正在接收包的标记存储器,每个源对应一个条目,标记存储器内容;
S3:每个虚通道的接收队列中的每个条目增加队列参数,进行接收队列处理;
S4:设置一个提交条目地址辅助队列,将各虚通道已经收齐但尚未提交的报文各个微片的地址计算出后依次存入,然后根据该辅助队列的输出依次读取相应的虚通道中的队列条目。
2.根据权利要求1所述的一种支持多源多虚通道非连续传输的插花整理方法,其特征在于:
执行步骤S1时,对接收的微片进行解析,判断微片是否是报文头,若是则获取路由信息,反之则需要提取源节点号和虚通道号。
3.根据权利要求1所述的一种支持多源多虚通道非连续传输的插花整理方法,其特征在于,执行步骤S2时,标记存储器条目包括:
有效位,指示是否正在接收对应源节点的报文;
队列条目号,指示正在接收对应源节点的报文所使用的队列条目;
偏移量,指示正在接收对应源节点的报文已经接收了多少个微片;
报文长度,指示正在接收对应源节点的报文的微片数量。
4.根据权利要求3所述的一种支持多源多虚通道非连续传输的插花整理方法,其特征在于,执行步骤S2时,标记存储器内容具体包括:
S21:每接收一个微片时,判断对应源节点的标记条目是否无效,若是则置为有效,从队列的空闲条目中找出一个放置该微片,将对应条目号填入队列条目号域,将偏移量置0,并记录报文长度;反之同样从队列的空闲条目中找出一个放置该微片,将对应条目号追加到“队列条目号”域,将偏移量加1;
S22:判断偏移量是否等于报文长度,若是,则表示该报文接收完毕,此时需要通知存储了该报文的微片的队列条目,已经处于收齐状态;反之继续执行步骤S21。
5.根据权利要求1所述的一种支持多源多虚通道非连续传输的插花整理方法,其特征在于,执行步骤S3时,队列参数包括:
有效位值,指示该条目是否存储了微片;
偏移量值,指示本微片是所在包的第几个微片;
年龄域,用于判断该条目的微片能否发出,只有最早收齐的条目才能发出;
收齐位,用于记录对应的报文是否收齐,只有当一个报文的尾被接收时才算收齐。
6.根据权利要求5所述的一种支持多源多虚通道非连续传输的插花整理方法,其特征在于:
执行步骤S3之前,虚通道的接收队列中设置“入口年龄计数器”和“出口年龄计数器”:“入口年龄计数器”记录最晚收齐的报文的年龄,“出口年龄计数器”记录最晚向目标提交的报文的年龄
每个虚通道的接收队列中的每个条目增加队列参数。
7.根据权利要求6所述的一种支持多源多虚通道非连续传输的插花整理方法,其特征在于:执行步骤S3时,接收队列处理的主要流程为:
当一个报文收齐时,根据标记存储器中记录的队列条目号,将该报文所有微片所在的条目的年龄域填入入口年龄计数器值,同时该计数器加1;当一个报文向目标提交完毕时,出口年龄计数器加1,对于队列中的每个有效条目,当收齐位为1,且年龄值等于出口年龄计数器值,则说明自身为可以提交的报文的一个微片,可根据自身的偏移量依次提交。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910857257.1A CN110691043B (zh) | 2019-09-11 | 2019-09-11 | 一种支持多源多虚通道非连续传输的插花整理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910857257.1A CN110691043B (zh) | 2019-09-11 | 2019-09-11 | 一种支持多源多虚通道非连续传输的插花整理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110691043A true CN110691043A (zh) | 2020-01-14 |
CN110691043B CN110691043B (zh) | 2021-10-29 |
Family
ID=69108925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910857257.1A Active CN110691043B (zh) | 2019-09-11 | 2019-09-11 | 一种支持多源多虚通道非连续传输的插花整理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110691043B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999011033A1 (en) * | 1997-08-22 | 1999-03-04 | Avici Systems | Router with virtual channel allocation |
CN101232456A (zh) * | 2008-01-25 | 2008-07-30 | 浙江大学 | 一种分布式可测试片上网络路由器 |
CN101753388A (zh) * | 2008-11-28 | 2010-06-23 | 中国科学院微电子研究所 | 适用于多核处理器片上和片间扩展的路由及接口装置 |
CN101789892A (zh) * | 2010-03-11 | 2010-07-28 | 浙江大学 | 全节点虚通道的片上网络环形拓扑数据交换方法及其系统 |
CN102546417A (zh) * | 2012-01-14 | 2012-07-04 | 西安电子科技大学 | 基于网络信息的片上网络路由器调度方法 |
US9065773B2 (en) * | 2010-06-22 | 2015-06-23 | Juniper Networks, Inc. | Methods and apparatus for virtual channel flow control associated with a switch fabric |
CN105721355A (zh) * | 2016-01-29 | 2016-06-29 | 浪潮(北京)电子信息产业有限公司 | 一种片上网络路由传输报文的方法及片上网络路由 |
CN105871761A (zh) * | 2016-04-01 | 2016-08-17 | 浪潮电子信息产业股份有限公司 | 一种高阶矩阵开关、片上网络及通信方法 |
US20190089495A1 (en) * | 2017-09-19 | 2019-03-21 | International Business Machines Corporation | Low latency corrupt data tagging on a cross-chip link |
-
2019
- 2019-09-11 CN CN201910857257.1A patent/CN110691043B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999011033A1 (en) * | 1997-08-22 | 1999-03-04 | Avici Systems | Router with virtual channel allocation |
US20070140240A1 (en) * | 1997-08-22 | 2007-06-21 | Dally William J | Internet switch router |
CN101232456A (zh) * | 2008-01-25 | 2008-07-30 | 浙江大学 | 一种分布式可测试片上网络路由器 |
CN101753388A (zh) * | 2008-11-28 | 2010-06-23 | 中国科学院微电子研究所 | 适用于多核处理器片上和片间扩展的路由及接口装置 |
CN101789892A (zh) * | 2010-03-11 | 2010-07-28 | 浙江大学 | 全节点虚通道的片上网络环形拓扑数据交换方法及其系统 |
US9065773B2 (en) * | 2010-06-22 | 2015-06-23 | Juniper Networks, Inc. | Methods and apparatus for virtual channel flow control associated with a switch fabric |
CN102546417A (zh) * | 2012-01-14 | 2012-07-04 | 西安电子科技大学 | 基于网络信息的片上网络路由器调度方法 |
CN105721355A (zh) * | 2016-01-29 | 2016-06-29 | 浪潮(北京)电子信息产业有限公司 | 一种片上网络路由传输报文的方法及片上网络路由 |
CN105871761A (zh) * | 2016-04-01 | 2016-08-17 | 浪潮电子信息产业股份有限公司 | 一种高阶矩阵开关、片上网络及通信方法 |
US20190089495A1 (en) * | 2017-09-19 | 2019-03-21 | International Business Machines Corporation | Low latency corrupt data tagging on a cross-chip link |
Non-Patent Citations (2)
Title |
---|
朱红雷等: "一种动态分配输入队列的片上虫孔路由器结构", 《电子学报》 * |
王力纬等: "片上网络虚通道分配算法", 《华中科技大学学报(自然科学版)》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110691043B (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1754349B1 (en) | Hardware filtering support for denial-of-service attacks | |
US7769015B2 (en) | High performance network adapter (HPNA) | |
US7411959B2 (en) | System and method for handling out-of-order frames | |
EP1662725B1 (en) | Cut-through switching in a network device | |
US9755947B2 (en) | Hierarchical self-organizing classification processing in a network switch | |
US20080240103A1 (en) | Three-port ethernet switch with external buffer | |
US9485200B2 (en) | Network switch with external buffering via looparound path | |
US7936758B2 (en) | Logical separation and accessing of descriptor memories | |
US9137166B2 (en) | In-order traffic aggregation with reduced buffer usage | |
US20030231625A1 (en) | Selective header field dispatch in a network processing system | |
US8462804B2 (en) | Self-cleaning mechanism for error recovery | |
US20070022212A1 (en) | Method and system for TCP large receive offload | |
JP2001045061A (ja) | 通信ノード装置 | |
US9961022B1 (en) | Burst absorption for processing network packets | |
WO2009139805A2 (en) | System and method for offloading packet protocol encapsulation from software | |
US20110258694A1 (en) | High performance packet processing using a general purpose processor | |
US6788680B1 (en) | Defferrable processing option for fast path forwarding | |
US7073005B1 (en) | Multiple concurrent dequeue arbiters | |
US8990422B1 (en) | TCP segmentation offload (TSO) using a hybrid approach of manipulating memory pointers and actual packet data | |
US7646779B2 (en) | Hierarchical packet scheduler using hole-filling and multiple packet buffering | |
US20100329262A1 (en) | System and Method for Parsing Frames | |
US7961636B1 (en) | Vectorized software packet forwarding | |
US8351426B2 (en) | Ethernet virtualization using assisted frame correction | |
EP1460804B1 (en) | System and method for handling out-of-order frames (fka reception of out-of-order tcp data with zero copy service) | |
CN110691043B (zh) | 一种支持多源多虚通道非连续传输的插花整理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |