CN116028398A - 一种互连网络仲裁系统、装置、方法及存储介质 - Google Patents
一种互连网络仲裁系统、装置、方法及存储介质 Download PDFInfo
- Publication number
- CN116028398A CN116028398A CN202211366728.7A CN202211366728A CN116028398A CN 116028398 A CN116028398 A CN 116028398A CN 202211366728 A CN202211366728 A CN 202211366728A CN 116028398 A CN116028398 A CN 116028398A
- Authority
- CN
- China
- Prior art keywords
- arbitration
- flit
- time
- head
- reg
- 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
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000004083 survival effect Effects 0.000 claims abstract description 46
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 25
- 230000005540 biological transmission Effects 0.000 claims abstract description 15
- 230000008569 process Effects 0.000 claims abstract description 9
- 238000004590 computer program Methods 0.000 claims description 9
- 239000000284 extract Substances 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 7
- 239000003550 marker Substances 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003090 exacerbative effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及计算机网络技术领域,具体公开了一种互连网络仲裁系统、装置、方法及存储介质,其中系统包括:存储器、写控制器、读控制器和仲裁器;写控制器用于接收数据分组;仲裁器用于通过写控制器提取并改写数据分组中的生存时间字段;写控制器还用于将改写后的数据分组写入存储器中;仲裁器还用于通过读控制器从存储器中获得参与仲裁的数据分组的生存时间字段,根据仲裁算法计算生存时间及其加权优先级,然后根据加权优先级仲裁出仲裁结果,并将仲裁结果发送至读控制器;读控制器用于根据仲裁器的仲裁结果从存储器中读出相应的数据分组,完成一次数据分组的传输和仲裁过程。采用本发明的技术方案能够适用于大规模互连网络,且有效降低长尾时延。
Description
技术领域
本发明涉及计算机网络技术领域,特别涉及一种互连网络仲裁系统、装置、方法及存储介质。
背景技术
分布式计算、大数据和机器学习等领域通常采用基于集合通信的编程框架,需要进行大量的同步操作,同步操作开销大小主要取决于数据分组的最大延迟,即长尾延迟,降低网络数据分组的长尾延迟可以有效减少同步操作的开销,提升整体性能。
高阶高速互连网络芯片的数据分组仲裁算法是影响网络长尾延迟的关键因素之一,当前互连芯片主要采用公平轮询或者严格优先级的仲裁算法,灵活性较差,无法根据数据分组在网络路径传输延迟来动态调整,难以解决网络流量中长尾延迟的问题。
在专利“一种面向片上网络的片间互连方法和系统”(CN 111131091 A)中公开了一种面向片上网络的片间互连方法与系统。该方案通过虚通道和优先级仲裁的方式,利用数据分组中的无用信息作为有用的片间编码,来满足片上网络基于优先级的通信需求,提高传输效率;但该方案在对数据分组传输仲裁时,遵循严格优先级,当网络规模扩大时,容易造成低优先级分组等待时间过长,引发长尾时延,降低同步操作效率。
在专利“基于传送方向及耗用带宽的加权总线算法”(CN 101288057 A)中公开了一种总线通信场景中的仲裁算法。该方案可以通过总线事务的方向及其占用总线信道带宽分配到每一个主装置的相对带宽,提高了总线带宽利用率;但该方案的总线场景受限于扩展性和总带宽,难以满足大规模互连网络的需求。
在方案“路由器延时模型、搭建方法及基于其的片上网络路由算法”(CN114448870 A)中公开了一种片上网络中路由器模型及其路由算法。该方案记录数据分组通过路由节点的总延时,基于此延时建立模型和评估拥塞,使用基于强化学习的路由算法,实时获取最新的全局网络状态,避免节点拥塞,提高网络性能;但该方案只能避开拥塞状态节点,由此可能引入由于绕路带来的额外延迟,从而加剧长尾时延。
综上,现有技术方案或采用固定优先级的仲裁算法,难以动态调整造成长尾时延的数据分组优先级;或采用动态路由算法来避免网络拥塞来实现动态调整优先级的仲裁算法的现有技术方案中,一方面其应用场景,如总线网络,难以满足大规模互连网络的扩展性需求,另一方面其在解决拥塞等问题时会引入额外的延迟开销。
为此,需要一种能够有效降低长尾时延的互连网络仲裁系统、装置、方法及存储介质。
发明内容
本发明的目的之一在于,提供一种互连网络仲裁系统,能够有效降低长尾时延。
为了解决上述技术问题,本申请提供如下技术方案:
一种互连网络仲裁系统,包括:存储器、写控制器、读控制器和仲裁器;
写控制器用于接收数据分组;
仲裁器用于通过写控制器提取并改写数据分组中的控制字段,控制字段包括生存时间字段;
写控制器还用于将改写后的数据分组写入存储器中;
仲裁器还用于通过读控制器从存储器中获得参与仲裁的数据分组的生存时间字段,根据仲裁算法计算生存时间及其加权优先级,然后根据加权优先级仲裁出仲裁结果,并将仲裁结果发送至读控制器;
读控制器用于根据仲裁器的仲裁结果从存储器中读出相应的数据分组,完成一次数据分组的传输和仲裁过程。
进一步,所述存储器使用虚通道的方式将数据分组存储在多个FIFO队列中,数据分组从FIFO队列尾部写入,从FIFO队列头部读出;
每个数据分组按照微片的格式进行传输,每个微片携带控制字段,控制字段还包括头标志位、尾标志位和虚通道号;其中每个数据分组的第一个微片称为头微片,头微片的头每个数据分组的最后一个微片为尾微片,其余微片为体微片。
进一步,所述写控制器接收数据分组的头微片后,仲裁器用于提取控制字段中的生存时间字段、虚通道号、头标志位和尾标志位,通过仲裁算法计算后,改写生存时间字段;
写控制器还用于将该头微片写入存储器中与虚通道号对应的队列中;
仲裁器还用于使用同样的生存时间字段改写该数据分组后续的体微片和尾微片,通过写控制器写入与头微片相同的队列中。
进一步,所述读控制器用于提取存储器中,各个队列队头的头微片的控制字段中的生存时间字段、虚通道号、头标志位和尾标志位;
仲裁器用于根据仲裁算法计算得到仲裁结果,读控制器根据仲裁结果读取该头微片,以及该头微片对应数据分组的后续体微片和尾微片,直到尾微片读出,仲裁器进入下一次仲裁。
进一步,所述仲裁器包括写控制器时间寄存器、读控制器时间寄存器、时间戳寄存器、基础优先级寄存器、计时寄存器和仲裁模块;
写控制器时间寄存器用于存储从写控制器进入的同属于一个数据分组的微片的输入时间;
读控制器时间寄存器用于存储仲裁模块在读控制器端记录同属于一个数据分组的微片的读出时间;
基础优先级寄存器个数与存储器中虚通道个数相等,用于记录每个虚通道对应的基础优先级;
时间戳寄存器用于记录仲裁器的当前时间;
计时寄存器用于计时;计时寄存器每经过设定的周期时间,通知时间戳寄存器增加1;
当头微片进入写控制器后,仲裁模块用于提取控制字段中的头标志位、尾标志位、虚通道号和生存时间字段;
仲裁模块还用于计算age+prioi之和,0≤i≤M-1,M为虚通道个数,M≥1,M和i为整数;age为生存时间,prioi为虚通道vci对应的基础优先级;
如果其和age+prioi≥up_lmt,则仲裁模块用于将up_lmt-timestamp_reg_t之差作为输入时间写入头微片的生存时间字段,同时更新wr_age_reg_t为up_lmt-timestamp_reg_t;
如果age+prioi≤up_lmt,则仲裁模块用于将age+prioi-timestamp_reg_t之差作为输入时间写入头微片的生存时间字段,同时更新wr_age_reg_t为age+prioi-timestamp_reg_t;
其中,up_lmt为生存时间字段的最大值,timestamp_reg_t为仲裁器的当前时间;wr_age_reg_t为微片的输入时间。
进一步,所述读控制器一端,仲裁模块用于提取存储器中各个队列的头部微片的生存时间字段,计算age+timestamp_reg_t之和;如果其和超过up_lmt,则将up_lmt赋值给rd_age_reg_t,否则将age+timestamp_reg_t之和赋值给rd_age_reg_t;其中,rd_age_reg_t为微片的读出时间;
仲裁模块还用于将该微片最终的优先级确定为rd_age_reg_t×Wa+prioi×Wb,其中,Wa为age的权重,Wb为基础优先级的权重;
仲裁模块用于选出最终优先级最大的作为仲裁结果;如果最终优先级相同,仲裁模块还用于在相同的最大的终优先级之中使用随机方式选出仲裁结果。
本发明的目的之一在于,提供一种互连网络仲裁方法,包括:
写入阶段:写控制器接收数据分组;每个数据分组按照微片的格式进行传输,每个微片携带控制字段,控制字段包括头标志位、尾标志位、虚通道号和生存时间字段;其中每个数据分组的第一个微片称为头微片,头微片的头每个数据分组的最后一个微片为尾微片,其余微片为体微片;
仲裁器通过写控制器提取头微片控制字段中的生存时间字段、虚通道号、头标志位和尾标志位,通过仲裁算法计算后,改写生存时间字段;以及使用同样的生存时间字段改写该数据分组后续的体微片和尾微片;
写控制器将该头微片、体微片和尾微片写入存储器中;
读出阶段:仲裁器通过读控制器从存储器中获得参与仲裁的数据分组的生存时间字段,根据仲裁算法计算生存时间及其加权优先级,然后根据加权优先级仲裁出仲裁结果;
读控制器根据仲裁结果读取该头微片,以及该头微片对应数据分组的后续体微片和尾微片,直到尾微片读出,完成一次数据分组的传输和仲裁过程。
进一步,所述仲裁器包括写控制器时间寄存器、读控制器时间寄存器、时间戳寄存器、基础优先级寄存器和仲裁模块;
写入阶段具体包括如下步骤:
S101,头微片进入写控制器,头微片的头标志位、尾标志位、虚通道号和生存时间字段被仲裁模块提取;
S102,仲裁模块从基础优先级寄存器中提取基础优先级prioi,其中i为vc对应编号,0≤i≤M-1,i为整数;
S103,仲裁模块计算age+prioi之和,并提取时间戳寄存器记录的当前时间值timestamp_reg_t,如果age+prioi≥up_lmt,则执行步骤S104;否则,执行步骤S105;其中,age为生存时间;
S104,将up_lmt-timestamp_reg_t之差写入头微片的生存时间字段,执行步骤S106;
S105,将age+prioi-timestamp_reg_t之差写入头微片的生存时间字段,执行步骤S106;
S106,更新写控制器时间寄存器的输入时间wr_age_reg_t为生存时间字段的值,执行步骤S107;
S107,该头微片的后续体微片和尾微片的生存时间字段重新赋值为写控制器时间寄存器输入时间的值wr_age_reg_t,执行步骤S108;
S108,仲裁模块选通写控制器中vc值i对应的通道,将该微片写入存储器;
S109,如果尾微片写入存储器,完成本次写入流程;否则,执行步骤S106;
读出阶段具体包括如下步骤:
S201,存储器中各队列头部的头微片的头标志位、尾标志位、虚通道号和生存时间字段被仲裁模块提取;
S202,仲裁模块提取时间戳寄存器当前时间的值timestamp_reg_t并计算agei+timestamp_reg_t之和,如果agei+timestamp_reg_t≥up_lmt,则执行步骤S203;否则执行步骤S204;
S203,将up_lmt赋值给读控制器时间寄存器微片的读出时间rd_age_reg_t,执行步骤S205;
S204,将agei+timestamp_reg_t赋值给rd_age_reg_t i,执行步骤S205;
S205,仲裁模块选择rd_age_reg_t i×Wa+prioi×Wb值最大的虚通道编号作为仲裁结果,如果存在多个相等的最大值,执行步骤S206;否则,执行步骤S207;
S206,根据多个相等的rd_age_reg_t i×Wa+prioi×Wb对应的编号,随机选择一个编号作为仲裁结果,执行步骤S207;
S207,仲裁模块选通读控制器的第i个通道,将微片读出;
S208,如果尾微片读出存储器,则完成本次读出流程;否则,执行步骤S207。
本发明的目的之三在于,提供一种互联网络仲裁装置,使用上述系统。
本发明的目的之四在于,提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明的有益效果:经过分析,造成长尾延迟的主要原因在于存在某些数据分组在传输路径上,由于仲裁系统的缺陷而长时间阻塞在某个交换节点中,因而在本方案中,在数据分组的头部加入一个专用字段来记录数据分组在网络中的生存时间,同时结合该数据分组预设的优先级,计算出加权优先级作为最终优先级参与仲裁,这样就能保证同一预设优先级下生存时间越长的数据分组的最终优先级越高,会被更早的仲裁到,因而降低了长尾时延;另一方面,为了适用于大规模互连网络,本方案仅需部署在网络中的互连节点中,同时由于只改变生存时间较长的数据分组的优先级,并不会修改其路由路径等数据,因而不会引入额外的绕路延迟。
附图说明
图1为实施例一种互连网络仲裁系统的逻辑框图;
图2为实施例一种互连网络仲裁系统中存储器的示意图;
图3为实施例一种互连网络仲裁系统中写控制器的示意图;
图4为实施例一种互连网络仲裁系统中读控制器的示意图;
图5为实施例一种互连网络仲裁系统中仲裁器的示意图;
图6为实施例一种互连网络仲裁方法中写入阶段的流程图;
图7为实施例一种互连网络仲裁方法中读出阶段的流程图。
具体实施方式
下面通过具体实施方式进一步详细说明:
实施例
本实施例的一种互连网络仲裁系统,包括存储器(Mem_ctrl),写控制器(Wr_ctrl),读控制器(Rd_ctrl)和仲裁器(Arb_ctrl)。
如图1所示,图中实线表示数据分组的传输路径,虚线表示仲裁器,写控制器和读控制器之间仲裁过程的信息交互路径。
写控制器用于接收数据分组,使数据分组进入系统;
仲裁器用于通过写控制器提取并改写数据分组生存时间的相关字段;
写控制器还用于将改写后的数据分组写入存储器中的相应虚通道中;具体的,写控制器基于数据分组携带的生存时间信息,在对应字段内填入相应的控制信息,将数据分组写入存储器;
仲裁器还用于通过读控制器从存储器中获得参与仲裁的数据分组的相关信息,通过仲裁算法得到仲裁结果;具体的,仲裁器根据仲裁算法计算生存时间及其加权优先级,然后根据加权优先级仲裁出结果,并将结果发送给读控制器。
读控制器用于根据仲裁器的仲裁结果从存储器中读出相应的数据分组,完成一次数据分组的传输和仲裁过程。
本实施例中,存储器使用虚通道(virtual channel)的方式将数据分组存储在多个FIFO(First-in-First-out)队列中,数据分组从FIFO队列尾部写入,从FIFO队列头部读出,每个处在头部的数据分组都可以参与仲裁;
存储器有M条虚通道,分别表示为vc0,vc1,……,vc M-1。每个数据分组按照微片的格式在系统中传输,数据分组长度为pkt_len bit,pkt_len长度取决于使用场景中通信协议对于数据分组长度的规定,每个微片的长度为flit_len bit,flit_len长度取决于使用场景中互连芯片的数据位宽,则数据分组将会分为个微片传输(N≥1,N为正整数),每个微片会携带一定长度的控制字段,控制字段包括生存时间(age)字段,头标志位(head),尾标志位(tail),虚通道号(vc)等,其余数据为微片携带数据负载(payload)。其中每个数据分组的第一个微片称为头微片(head_flit),头微片的头标志位(head)为1’b1,每个数据分组的最后一个微片称为尾微片(tail_flit),尾微片的尾标志位(tail)为1’b1,其余微片称为体微片(body_flit),头标志位和尾标志位分别为1’b0。
本实施例中,当头微片进入写控制器时,仲裁器提取控制字段中的生存时间字段,虚通道号,头标志位和尾标志位,经过仲裁算法计算后,改写age字段,然后将该头微片写入存储器中与虚通道号对应的队列中,该数据分组后续的体微片和尾微片同样使用该age字段,写入与头微片相同的队列中。
读控制器用于提取存储器中各个队列队头的头微片的控制字段中的生存时间字段,虚通道号,头标志位和尾标志位,仲裁器根据仲裁算法计算得到仲裁结果,读控制器根据仲裁结果读取该头微片,以及该头微片对应数据分组的后续体微片和尾微片,直到尾微片读出,仲裁器进入下一次仲裁。
微片在存储器中的排列方式如图2所示,第0个flit为head_flit,后续按顺序排列直到tail_flit,tail_flit之后是下一个数据分组(pkt)的head_flit,以此顺序排列,M个vc均按照此顺序排列数据分组,每个vc队列头部的head_flit被读控制器将生存时间等信息提取给仲裁器,供仲裁器仲裁使用。
如图3所示,写控制器在数据传输路径上用于连接上游互连节点,仲裁信息交互路径上用于与仲裁器连接。
在数据传输路径上,与上游互连节点有3路信号,分别是data信号,vld信号和rdy信号;与存储器之间有M组信号,分别对应M个vc(M≥1,M为整数),每组信号有3路信号,分别是datai信号,vldi信号和rdyi信号,其中i对应vc号(0≤i≤M-1,i为整数);data信号和vld信号来自上游互连节点。
data信号传输微片数据,vld信号表示该data信号是有效的;rdy信号来自存储器,表示存储器准备好接收该flit。
flit的控制信息head,tail,vc和age字段,其中age,head,tail和vc字段传输给仲裁器,仲裁器计算后将新的age值写回flit的age字段,仲裁器根据vc选通M组信号中的对应信号,如果rdy和vld同时有效,则该flit写入存储器成功,否则等待rdy和vld同时有效。
图4表示了本发明的读控制器的实施方式的结构图。
读控制器在数据传输路径上用于连接下游互连节点,仲裁信息交互路径上用于与仲裁器连接。
在数据传输路径上,与存储器之间有M组信号,分别对应M个vc,每组信号有3路信号,分别是datai信号,vldi信号和rdyi信号,其中i对应vc号(0≤i≤M-1,i为整数);与下游互连节点之间有3路信号,分别为data信号,vld信号和rdy信号;data信号传输微片数据,vld信号表示该data信号是有效的;rdy信号来自下游互连节点,表示下游互连节点准备好接收该flit。
flit的控制信息head,tail,vc和age字段,其中age,head和tail字段传输给仲裁器,仲裁器计算后将新的age值写回flit的age字段,同时读控制器根据仲裁结果选通M组信号中的一组输出微片数据,如果rdy和vld同时有效,则该flit读出成功,否则等待rdy和vld同时有效。
如图5所示,仲裁器包括:写控制器时间寄存器(wr_age_reg)、读控制器时间寄存器(rd_age_reg)、时间戳寄存器(timestamp_reg)、基础优先级寄存器(bias_reg)、计时寄存器(cnt_reg)和仲裁模块(arb_module)。
写控制器时间寄存器用于存储从写控制器进入的同属于一个数据分组的微片的输入时间;
读控制器时间寄存器用于存储仲裁模块在读控制器端记录同属于一个数据分组的微片的读出时间;
基础优先级寄存器个数与存储器中虚通道个数相等,用于记录每个虚通道对应的基础优先级;
时间戳寄存器用于记录仲裁器的当前时间;
计时寄存器用于计时。计时寄存器每经过设定的周期时间arb_period,就会通知时间戳寄存器增加1,以此实现本系统时间推进和生存时间的增加速度。本实施例中,arb_period由用户自定义,用于控制时间戳寄存器自增1的时长,例如arb_period设置为10,那么时间戳寄存器每经过10个cycle自增1。
在本实施例中age字段长度为a bit(a≥2,a为正整数),则age字段的最大值up_lmt为2a-1。
当头微片进入写控制器后,仲裁模块用于提取控制字段中的age,vc,head和tail字段;
vci对应的优先级为prioi,记录在基础优先级寄存器内,age字段的最大值为up_lmt;
仲裁模块还用于计算age+prioi之和(0≤i≤M-1,M为虚通道个数,M≥1,M和i为整数);
如果其和age+prioi≥up_lmt,则仲裁模块将up_lmt-timestamp_reg_t(记录的仲裁器当前时间)之差作为输入时间写入微片的age字段,同时更新wr_age_reg_t(微片的输入时间)为up_lmt-timestamp_reg_t;
如果age+prioi≤up_lmt,则仲裁模块将age+prioi-timestamp_reg_t之差作为输入时间写入微片的age字段,同时更新wr_age_reg_t(微片的输入时间)为age+prioi-timestamp_reg_t;
头微片之后的体微片和尾微片的age字段将会被写入与头微片相同的数据时间,直到尾微片写入存储器;
仲裁模块还用于根据下一个数据分组的age字段重新计算wr_age_reg_t(微片的输入时间)。
在读控制器一端,仲裁模块用于将存储器中各个队列的头部微片的age字段提取出来,计算age+timestamp_reg_t之和,如果其和超过up_lmt,则将up_lmt赋值给rd_age_reg_t(微片的读出时间),否则将age+timestamp_reg_t之和赋值给rd_age_reg_t(微片的读出时间),age的权重是Wa,基础优先级权重是Wb,最终该微片的优先级为rd_age_reg_t×Wa+prioi×Wb,仲裁模块用于选出终优先级最大的作为仲裁结果,如果遇到最终优先级相同,则在相同的最大的终优先级之中使用随机方式选出仲裁结果。
读控制器用于基于仲裁结果从存储器中读取对应队列的微片,从头微片开始,直到尾微片被读出,则本次仲裁结束,仲裁器进入下次仲裁。
在实际部署中,存储器可以根据需要选取不同类型存储器件,同时其他组件均可以使用数字电路设计语言实现,因而该结构可以部署到现有大规模互连网络中。
存储器使用虚通道的存储方式可以使多个队列头部的数据分组同时参与仲裁竞争中,相比同样存储容量而使用单一通道的存储器更加高效;写控制器在填入控制信息和读控制器在读仲裁结果时,会直接引用仲裁器中存储的相关寄存器的信号值,相比不使用该结构的仲裁过程不会引入额外的时延。
在仲裁过程中,仲裁器每次仲裁从头微片参与仲裁开始,直到尾微片被读取结束,这样按照数据分组为单位仲裁方式,在保证仲裁效率的同时也确保了每个数据分组的完整性。采用加权的方式计算每个参与仲裁的队列的优先级,既可以保证每个队列依据用户需求而设定的基础优先级生效,又可以通过生存时间来动态调整优先级,从而达到解决采用严格优先级仲裁场景下长尾时延的问题。
本实施例还提供一种互连网络仲裁装置,使用上述互连网络仲裁系统。
基于互连网络仲裁系统,本实施例的一种互连网络仲裁方法,包括如下步骤:
写入阶段:
S101,头微片(head_flit)进入写控制器,头微片(head_flit)的head,tail,vc和age字段被仲裁模块提取,执行步骤S102;
S102,仲裁模块从基础优先级寄存器中提取基础优先级prioi,其中i为vc对应编号(0≤i≤M-1,i为整数),执行步骤S103;
S103,仲裁模块计算age+prioi之和,并提取时间戳寄存器记录的当前时间值(timestamp_reg_t),如果age+prioi≥up_lmt,则执行步骤S104;否则,执行步骤S105;
S104,将up_lmt-timestamp_reg_t之差写入头微片(head_flit)的age字段,执行步骤S106;
S105,将age+prioi-timestamp_reg_t之差写入头微片(head_flit)的age字段,执行步骤S106;
S106,更新写控制器时间寄存器的输入时间(wr_age_reg_t)为age字段的值,执行步骤S107;
S107,该头微片(head_flit)的后续体微片(body_flit)和尾微片(tail_flit)的age字段重新赋值为写控制器时间寄存器输入时间的值(wr_age_reg_t),执行步骤S108;
S108,仲裁模块选通写控制器中vc值i对应的通道,如果该通道的vld和rdy信号同时有效,则将该flit写入存储器,执行步骤S109;否则等待vld和rdy信号同时有效,执行步骤S108;
S109,如果尾微片(tail_flit)写入存储器,完成本次写入流程;否则,执行步骤S106。
读出阶段:
S201,存储器中各队列头部的头微片(head_flit)的headi,taili,vci和agei字段被仲裁模块提取,其中i为存储器中虚通道编号(0≤i≤M-1,i为整数),执行S202;
S202,仲裁模块提取时间戳寄存器当前时间的值(timestamp_reg_t)并计算agei+timestamp_reg_t之和,如果agei+timestamp_reg_t≥up_lmt,则执行步骤S203;否则执行步骤S204;
S203,将up_lmt赋值给读控制器时间寄存器微片的读出时间rd_age_reg_t,执行步骤S205;
S204,将agei+timestamp_re_t g赋值给rd_age_reg_t i,执行步骤S205;
S205,仲裁模块选择rd_age_reg_t i×Wa+prioi×Wb值最大的虚通道编号作为仲裁结果,如果存在多个相等的最大值,执行步骤S206;否则,执行步骤S207;
S206,多个相等的rd_age_reg_t i×Wa+prioi×Wb对应的编号{i0,i1,……,ir},0≤r≤M-1,r为整数,仲裁模块在{i0,i1,……,ir}随机选择一个编号i作为仲裁结果,执行步骤S207;
S207,仲裁模块选通读控制器的第i个通道,如果该通道的vld和rdy信号同时有效,则该flit读出成功,执行步骤S208;否则,执行步骤S207;
S208,如果尾微片(tail_flit)读出存储器,则完成本次读出流程;否则,执行步骤S207。
上述互连网络仲裁方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一存储介质中,该计算机程序在被处理器执行时,可实现上述方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等
以上的仅是本发明的实施例,该发明不限于此实施案例涉及的领域,方案中公知的具体结构及特性等常识在此未作过多描述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力,所属领域普通技术人员可以在本申请给出的启示下,结合自身能力完善并实施本方案,一些典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本申请的障碍。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本申请要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。
Claims (10)
1.一种互连网络仲裁系统,其特征在于,包括:存储器、写控制器、读控制器和仲裁器:
写控制器用于接收数据分组;
仲裁器用于通过写控制器提取并改写数据分组中的控制字段,控制字段包括生存时间字段;
写控制器还用于将改写后的数据分组写入存储器中;
仲裁器还用于通过读控制器从存储器中获得参与仲裁的数据分组的生存时间字段,根据仲裁算法计算生存时间及其加权优先级,然后根据加权优先级仲裁出仲裁结果,并将仲裁结果发送至读控制器;
读控制器用于根据仲裁器的仲裁结果从存储器中读出相应的数据分组,完成一次数据分组的传输和仲裁过程。
2.根据权利要求1所述的互连网络仲裁系统,其特征在于:所述存储器使用虚通道的方式将数据分组存储在多个FIFO队列中,数据分组从FIFO队列尾部写入,从FIFO队列头部读出;
每个数据分组按照微片的格式进行传输,每个微片携带控制字段,控制字段还包括头标志位、尾标志位和虚通道号;其中每个数据分组的第一个微片为头微片,头微片的头每个数据分组的最后一个微片为尾微片,其余微片为体微片。
3.根据权利要求2所述的互连网络仲裁系统,其特征在于:所述写控制器接收数据分组的头微片后,仲裁器用于提取控制字段中的生存时间字段、虚通道号、头标志位和尾标志位,通过仲裁算法计算后,改写生存时间字段;
写控制器还用于将该头微片写入存储器中与虚通道号对应的队列中;
仲裁器还用于使用同样的生存时间字段改写该数据分组后续的体微片和尾微片,通过写控制器写入与头微片相同的队列中。
4.根据权利要求3所述的互连网络仲裁系统,其特征在于:所述读控制器用于提取存储器中,各个队列队头的头微片的控制字段中的生存时间字段、虚通道号、头标志位和尾标志位;
仲裁器用于根据仲裁算法计算得到仲裁结果,读控制器根据仲裁结果读取该头微片,以及该头微片对应数据分组的后续体微片和尾微片,直到尾微片读出,仲裁器进入下一次仲裁。
5.根据权利要求4所述的互连网络仲裁系统,其特征在于:所述仲裁器包括写控制器时间寄存器、读控制器时间寄存器、时间戳寄存器、基础优先级寄存器、计时寄存器和仲裁模块;
写控制器时间寄存器用于存储从写控制器进入的同属于一个数据分组的微片的输入时间;
读控制器时间寄存器用于存储仲裁模块在读控制器端记录同属于一个数据分组的微片的读出时间;
基础优先级寄存器个数与存储器中虚通道个数相等,用于记录每个虚通道对应的基础优先级;
时间戳寄存器用于记录仲裁器的当前时间;
计时寄存器用于计时;计时寄存器每经过设定的周期时间,通知时间戳寄存器增加1;
当头微片进入写控制器后,仲裁模块用于提取控制字段中的头标志位、尾标志位、虚通道号和生存时间字段;
仲裁模块还用于计算age+prioi之和,0≤i≤M-1,M为虚通道个数,M≥1,M和i为整数;age为生存时间,prioi为虚通道vci对应的基础优先级;
如果其和age+prioi≥up_lmt,则仲裁模块用于将up_lmt-timestamp_reg_t之差作为输入时间写入头微片的生存时间字段,同时更新wr_age_reg_t为up_lmt-timestamp_reg_t;
如果age+prioi≤up_lmt,则仲裁模块用于将age+prioi-timestamp_reg_t之差作为输入时间写入头微片的生存时间字段,同时更新wr_age_reg_t为age+prioi-timestamp_reg_t;
其中,up_lmt为生存时间字段的最大值,timestamp_reg_t为仲裁器的当前时间;wr_age_reg_t为微片的输入时间。
6.根据权利要求5所述的互连网络仲裁系统,其特征在于:所述读控制器一端,仲裁模块用于提取存储器中各个队列的头部微片的生存时间字段,计算age+timestamp_reg_t之和;如果其和超过up_lmt,则将up_lmt赋值给rd_age_reg_t,否则将age+timestamp_reg_t之和赋值给rd_age_reg_t;其中,rd_age_reg_t为微片的读出时间;
仲裁模块还用于将该微片最终的优先级确定为rd_age_reg_t×Wa+prioi×Wb,其中,Wa为age的权重,Wb为基础优先级的权重;
仲裁模块用于选出最终优先级最大的作为仲裁结果;如果最终优先级相同,仲裁模块还用于在相同的最大的终优先级之中使用随机方式选出仲裁结果。
7.一种互连网络仲裁方法,其特征在于,包括:
写入阶段:写控制器接收数据分组;每个数据分组按照微片的格式进行传输,每个微片携带控制字段,控制字段包括头标志位、尾标志位、虚通道号和生存时间字段;其中每个数据分组的第一个微片为头微片,头微片的头每个数据分组的最后一个微片为尾微片,其余微片为体微片;
仲裁器通过写控制器提取头微片控制字段中的生存时间字段、虚通道号、头标志位和尾标志位,通过仲裁算法计算后,改写生存时间字段;以及使用同样的生存时间字段改写该数据分组后续的体微片和尾微片;写控制器将该头微片、体微片和尾微片写入存储器中;
读出阶段:仲裁器通过读控制器从存储器中获得参与仲裁的数据分组的生存时间字段,根据仲裁算法计算生存时间及其加权优先级,然后根据加权优先级仲裁出仲裁结果;
读控制器根据仲裁结果读取该头微片,以及该头微片对应数据分组的后续体微片和尾微片,直到尾微片读出,完成一次数据分组的传输和仲裁过程。
8.根据权利要求7所述的互连网络仲裁方法,其特征在于:所述仲裁器包括写控制器时间寄存器、读控制器时间寄存器、时间戳寄存器、基础优先级寄存器和仲裁模块;
写入阶段具体包括如下步骤:
S101,头微片进入写控制器,头微片的头标志位、尾标志位、虚通道号和生存时间字段被仲裁模块提取;
S102,仲裁模块从基础优先级寄存器中提取基础优先级prioi,其中i为vc对应编号,0≤i≤M-1,i为整数;
S103,仲裁模块计算age+prioi之和,并提取时间戳寄存器记录的当前时间值timestamp_reg_t,如果age+prioi≥up_lmt,则执行步骤S104;否则,执行步骤S105;其中,age为生存时间;
S104,将up_lmt-timestamp_reg_t之差写入头微片的生存时间字段,执行步骤S106;
S105,将age+prioi-timestamp_reg_t之差写入头微片的生存时间字段,执行步骤S106;
S106,更新写控制器时间寄存器的输入时间wr_age_reg_t为生存时间字段的值,执行步骤S107;
S107,该头微片的后续体微片和尾微片的生存时间字段重新赋值为写控制器时间寄存器输入时间的值wr_age_reg_t,执行步骤S108;
S108,仲裁模块选通写控制器中vc值i对应的通道,将该微片写入存储器;
S109,如果尾微片写入存储器,完成本次写入流程;否则,执行步骤S106;
读出阶段具体包括如下步骤:
S201,存储器中各队列头部的头微片的头标志位、尾标志位、虚通道号和生存时间字段被仲裁模块提取;
S202,仲裁模块提取时间戳寄存器当前时间的值timestamp_reg_t并计算agei+timestamp_reg_t之和,如果agei+timestamp_reg_t≥up_lmt,则执行步骤S203;否则执行步骤S204;
S203,将up_lmt赋值给读控制器时间寄存器微片的读出时间rd_age_reg_t,执行步骤S205;
S204,将agei+timestamp_reg_t赋值给rd_age_reg_t i,执行步骤S205;
S205,仲裁模块选择rd_age_reg_t i×Wa+prioi×Wb值最大的虚通道编号作为仲裁结果,如果存在多个相等的最大值,执行步骤S206;否则,执行步骤S207;
S206,根据多个相等的rd_age_reg_t i×Wa+prioi×Wb对应的编号,随机选择一个编号作为仲裁结果,执行步骤S207;
S207,仲裁模块选通读控制器的第i个通道,将微片读出;
S208,如果尾微片读出存储器,则完成本次读出流程;否则,执行步骤S207。
9.一种互联网络仲裁装置,其特征在于,使用权利要求1-6任一项所述的系统。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求7-8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211366728.7A CN116028398B (zh) | 2022-11-01 | 2022-11-01 | 一种互连网络仲裁系统、装置、方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211366728.7A CN116028398B (zh) | 2022-11-01 | 2022-11-01 | 一种互连网络仲裁系统、装置、方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116028398A true CN116028398A (zh) | 2023-04-28 |
CN116028398B CN116028398B (zh) | 2023-10-31 |
Family
ID=86076023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211366728.7A Active CN116028398B (zh) | 2022-11-01 | 2022-11-01 | 一种互连网络仲裁系统、装置、方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116028398B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1472937A (zh) * | 2003-06-27 | 2004-02-04 | 中国科学院计算技术研究所 | 一种利用分组头中的剩余生命期进行分组传输服务质量调度的方法 |
CN1661579A (zh) * | 2004-02-25 | 2005-08-31 | 中国科学院计算技术研究所 | 基于动态优先级的总线仲裁器和动态改变优先级的方法 |
CN201541272U (zh) * | 2009-11-16 | 2010-08-04 | 北京经纬恒润科技有限公司 | 控制器局域网总线星型网络连接器及fpga |
CN102629913A (zh) * | 2012-04-11 | 2012-08-08 | 浙江大学 | 适用于全局异步局部同步片上互连网络的路由器装置 |
CN102629914A (zh) * | 2012-04-27 | 2012-08-08 | 深圳市邦彦信息技术有限公司 | 一种以太网数据包缓存方法和装置 |
CN104407996A (zh) * | 2014-11-05 | 2015-03-11 | 广西科技大学鹿山学院 | 数据总线宽度不相等的双口ram读写与仲裁控制器 |
CN104579862A (zh) * | 2013-10-11 | 2015-04-29 | 通用电气航空系统有限责任公司 | 用于飞机的数据通信网络 |
CN105022717A (zh) * | 2015-06-04 | 2015-11-04 | 中国航空无线电电子研究所 | 附加请求数优先级的片上网络资源仲裁方法及仲裁单元 |
CN106681947A (zh) * | 2016-12-27 | 2017-05-17 | 盛科网络(苏州)有限公司 | 动态分配带宽的总线仲裁器的实现方法 |
CN107426111A (zh) * | 2017-05-27 | 2017-12-01 | 东南大学 | 硬件可实现的基于wred算法的拥塞控制方法和装置 |
US20190238482A1 (en) * | 2018-01-30 | 2019-08-01 | Hewlett Packard Enterprise Development Lp | Request arbitration by age and traffic classes |
CN113268270A (zh) * | 2021-06-07 | 2021-08-17 | 中科计算技术西部研究院 | 一种针对成对隐马尔可夫模型的加速方法、系统及装置 |
CN113890860A (zh) * | 2021-11-18 | 2022-01-04 | 深圳大学 | 用于支持时延受限的数据交换的方法、设备及介质 |
CN114257557A (zh) * | 2021-11-26 | 2022-03-29 | 中国科学院计算技术研究所 | 一种数据分组交换系统和方法 |
CN114741341A (zh) * | 2022-03-01 | 2022-07-12 | 西安电子科技大学 | 一种实现Crossbar结构仲裁的方法、系统及存储介质 |
-
2022
- 2022-11-01 CN CN202211366728.7A patent/CN116028398B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1472937A (zh) * | 2003-06-27 | 2004-02-04 | 中国科学院计算技术研究所 | 一种利用分组头中的剩余生命期进行分组传输服务质量调度的方法 |
CN1661579A (zh) * | 2004-02-25 | 2005-08-31 | 中国科学院计算技术研究所 | 基于动态优先级的总线仲裁器和动态改变优先级的方法 |
CN201541272U (zh) * | 2009-11-16 | 2010-08-04 | 北京经纬恒润科技有限公司 | 控制器局域网总线星型网络连接器及fpga |
CN102629913A (zh) * | 2012-04-11 | 2012-08-08 | 浙江大学 | 适用于全局异步局部同步片上互连网络的路由器装置 |
CN102629914A (zh) * | 2012-04-27 | 2012-08-08 | 深圳市邦彦信息技术有限公司 | 一种以太网数据包缓存方法和装置 |
CN104579862A (zh) * | 2013-10-11 | 2015-04-29 | 通用电气航空系统有限责任公司 | 用于飞机的数据通信网络 |
CN104407996A (zh) * | 2014-11-05 | 2015-03-11 | 广西科技大学鹿山学院 | 数据总线宽度不相等的双口ram读写与仲裁控制器 |
CN105022717A (zh) * | 2015-06-04 | 2015-11-04 | 中国航空无线电电子研究所 | 附加请求数优先级的片上网络资源仲裁方法及仲裁单元 |
CN106681947A (zh) * | 2016-12-27 | 2017-05-17 | 盛科网络(苏州)有限公司 | 动态分配带宽的总线仲裁器的实现方法 |
CN107426111A (zh) * | 2017-05-27 | 2017-12-01 | 东南大学 | 硬件可实现的基于wred算法的拥塞控制方法和装置 |
US20190238482A1 (en) * | 2018-01-30 | 2019-08-01 | Hewlett Packard Enterprise Development Lp | Request arbitration by age and traffic classes |
CN113268270A (zh) * | 2021-06-07 | 2021-08-17 | 中科计算技术西部研究院 | 一种针对成对隐马尔可夫模型的加速方法、系统及装置 |
CN113890860A (zh) * | 2021-11-18 | 2022-01-04 | 深圳大学 | 用于支持时延受限的数据交换的方法、设备及介质 |
CN114257557A (zh) * | 2021-11-26 | 2022-03-29 | 中国科学院计算技术研究所 | 一种数据分组交换系统和方法 |
CN114741341A (zh) * | 2022-03-01 | 2022-07-12 | 西安电子科技大学 | 一种实现Crossbar结构仲裁的方法、系统及存储介质 |
Non-Patent Citations (1)
Title |
---|
元国军、肖鹏等: ""基于WSS的动态可重构光网络"", 《高技术通讯》, vol. 29, no. 2, pages 99 - 109 * |
Also Published As
Publication number | Publication date |
---|---|
CN116028398B (zh) | 2023-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9426099B2 (en) | Router, method for controlling router, and program | |
US9094231B2 (en) | Router | |
JP5335892B2 (ja) | パケット交換オンチップ相互接続ネットワークの高速仮想チャネル | |
JP5863076B2 (ja) | パケットを再構築し再順序付けするための方法、装置、およびシステム | |
US8014288B1 (en) | Packet latency based arbitration technique for a packet switch | |
US8930593B2 (en) | Method for setting parameters and determining latency in a chained device system | |
US5140582A (en) | Packet switching system having bus matrix switch | |
US9088520B2 (en) | Network impairment unit for concurrent delay and packet queue impairments | |
CN101841420B (zh) | 面向片上网络的低延迟路由器结构 | |
CN112729395B (zh) | 一种面向复杂SoC可靠性监测的片上传感器读出系统 | |
CN116028398B (zh) | 一种互连网络仲裁系统、装置、方法及存储介质 | |
Khan et al. | n-Bit multiple read and write FIFO memory model for network-on-chip | |
CN116955247B (zh) | 一种缓存描述符管理装置及其方法、介质、芯片 | |
EP1508225B1 (en) | Method for data storage in external and on-chip memory in a packet switch | |
JPH10285173A (ja) | Atmセル処理装置 | |
Baiocchi et al. | The ACCI access protocol for a twin bus ATM metropolitan area network | |
CN116893983B (zh) | 数据缓存方法、设备及介质 | |
JP2009206896A (ja) | パケット転送装置におけるレート監視方式 | |
US20230171201A1 (en) | Method for sending data packet and network device | |
KR100441883B1 (ko) | 패킷 스위치 시스템의 입력 제어장치 및 방법 | |
Rooban et al. | Design of Router Architecture Based on Wormhole Switching Mode for NoC | |
JP3044653B2 (ja) | ゲートウェイ装置 | |
CN117156006B (zh) | 一种片上网络的数据路由控制架构 | |
CN115720211B (zh) | 网算一体的芯粒间路由器及数据包聚合方法 | |
CN114760241B (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 |