一种具有轮询仲裁和地址编码更新简化功能的异步路由器

文档序号:28551714发布日期:2022-01-19 15:41阅读:134来源:国知局
一种具有轮询仲裁和地址编码更新简化功能的异步路由器

1.本发明涉及片上网络技术领域,尤其涉及一种具有轮询仲裁和地址编码更新简化功能的异步路由器。


背景技术:

2.随着集成电路工艺的发展,芯片上可容纳的晶体管数量不断增长。而单处理器架构的芯片由于功耗问题,性能回报逐渐减少。与此同时,多核芯片模块化设计范式也不断降低芯片设计的复杂度。这两个因素促成了多核以及众核芯片的发展。
3.多核处理器被广泛应用在高端服务器、智能手机、甚至物联网(internet of things,iot)网关等各种领域中。芯片上计算核心数量的增长使得核心之间数据通信的问题日益加剧。而传统的总线通信结构已经无法满足多核芯片的通信需求。片上网络技术(network on chip,noc),从架构上解决了多核芯片片上通信的问题。它具有高带宽以及良好的可扩展性,被广泛应用与多核芯片中。
4.路由器是片上网络的核心组件,它负责实现片上网络数据的转发以及链路资源分配的功能。路由器的吞吐率、延迟、功耗、面积等指标决定了片上网络的性能以及适用领域,因此高吞吐率、低延迟、低功耗、小面积的路由器设计,极具实用价值。传统的路由器一般以同步电路实现,但随着片上网络对速度和功耗的要求愈发严格,同步电路无法避免的高时钟功耗成为了制约片上网络进一步发展的重要因素之一,而以握手信号替代同步数字电路中时钟信号的异步电路技术,具有事件驱动的特性,无需依赖高频时钟信号,在功耗、延迟、可靠性、面积上都具有优异的性能,因此被视为一种颇具前景的解决方案。
5.在异步电路中,实现握手机制的基本控制机制是muller流水线,以图1所示的一位宽四相位双轨编码流水线为例,每一级的两个c单元存储空码字{d.t,d.f}={0,0}时,本级输出的应答信号ack为0;存储有效码字{d.t,d.f}={0,1}或{d.t,d.f}={1,0}时,本级输出的应答信号ack为1。由于码字{d.t,d.f}={1,1}为不应当出现的非法组合,故由或门产生的应答信号ack可以有效地指示流水线为“空”或“有效”的状态。


技术实现要素:

6.为了实现高性能的任意尺寸2d-mesh片上网络,本发明基于异步电路技术,提出一种具有轮询仲裁功能以及地址编码更新简化功能的路由器。
7.本发明方法采用的技术方案如下:
8.一种具有轮询仲裁和地址编码更新简化功能的异步路由器,包括:
9.lwe模块,用于接收东、西和本地方向的输入数据,其中,东方向的输入数据向西传输给wesn模块;西方向的输入数据向东传输给wesn模块;本地方向的输入数据根据数据包中的东西两个方向信息,判断是向东或向西传输给wesn模块;
10.wesn模块,用于接收lwe模块的传输数据,以及接收南北两个方向的输入数据,并判断数据包在东西两个方向上跳数是否为0,如果不为0,将对跳数进行更新,并将数据包按
照传输方向,传给下一个路由器;如果东西两个方向跳数为0,通过数据包中的南北两个方向的方向信息,决定数据包向南还是向北传输给nsl模块。
11.nsl模块,用于接收wesn模块的传输数据,并判断数据包南北两个方向的跳数是否为0,如果不为0,将对跳数进行更新,并将数据包按照传输方向,传给下一个路由器;如果南北两个方向跳数为0,数据包到达目标地址,通过本地输出进行数据输出。
12.进一步地,所述数据包包括数据信息和地址信息,其中,地址信息包括方向信息和跳数信息,方向信息包括数据包向东还是向西、向南还是向北的方向信息,其数据格式相同,用1bit双轨编码表示;跳数信息包括数据包东西两个方向的跳数以及南北两个方向的跳数,其数据格式相同,用不同的1ofn编码表示。
13.进一步地,所述地址信息中的跳数信息更新只需交换导线顺序,完成逻辑上的循环移位功能,再结合跳数信息的数据编码,可以完成任意数量状态的状态更新操作,而无需添加任何数字逻辑门。
14.进一步地,lwe模块、wesn模块和nsl模块均由包含完备性检测器的muller流水线单元、merge模块构成,其中,lwe模块包含3个muller流水单元和2个两路合并为一路的merge模块;wesn模块包含4个muller流水单元和2个三路合并为一路的merge模块,nsl模块包含3个muller流水单元和1个两路合并为一路的merge模块。
15.进一步地,所述merge模块包括固定优先级仲裁器、互斥锁、先进先出模块和多路选择器,所述固定优先级仲裁器中的仲裁优先级自上而下降序排列,当同时有多个有效请求信号进入,只有优先级最高者的响应信号拉高表示有效;所述互斥锁由c单元和多输入非与门构成,用于暂时锁存响应信号;所述先进先出子模块通过条件选择,保证固定优先级仲裁器在不同时接受到请求信号的情况下先进先出地处理;所述多路选择器用于根据选通信号选择有效的数据输出。
16.进一步地,所述lwe模块中,本地方向的输入数据判断向东或向西传输之后,在传输时,数据中不再包括已判断过方向的方向信息。
17.进一步地,所述nsl模块中,判断数据包在东西两个方向上的跳数之后,在传输时,数据中不再包括已判断过方向的方向信息。
18.本发明具有以下有益效果:
19.(1)本发明提供的具有轮询仲裁和地址编码更新简化功能的异步路由器,可以支持任意尺寸的2d-mesh片上网络,具有一定的通用性。
20.(2)数据包编码方式简化了地址更新的逻辑,在更新数据包地址信息时,只需交换导线顺序,无需添加任何数字逻辑门,简化了路由器中地址更新的逻辑,从而减少了路由器的面积、功耗、延迟。
21.(3)merge子模块利用异步电路特性所实现的轮询仲裁功能,开销小,减少了路由器的面积和功耗。
22.(4)本发明在现有基本的muller流水线上增加了多位宽数据的完备性验证功能,使之适应1ofn编码的多位宽数据传输。
附图说明
23.图1是现有技术中一位宽四相位双轨编码流水线架构图;
24.图2是本发明异步路由器的整体架构图;
25.图3是本发明实施例中lwe模块的内部结构框图;
26.图4是本发明实施例中wesn模块的内部结构框图;
27.图5是本发明实施例中nsl模块的内部结构框图;
28.图6是本发明实施例中muller流水单元结构框图;
29.图7是本发明实施例中merge模块的内部结构框图;
30.图8是本发明实施例中地址更新示意图。
具体实施方式
31.下面结合附图对本发明方案进行详细说明。
32.本发明所提出的一种具有轮询仲裁和地址编码更新简化功能的异步路由器的整体架构图如图2所示。本实施例的异步路由器包括lwe、wesn、nsl三个子模块,用于构成任意尺寸的使用x-y路由算法的2d-mesh片上网络,实现了东、西、南、北、本地五个方向数据包的输入,并根据数据包中的地址信息,将数据包发送到东、西、南、北、本地中的一个方向,同时更新数据包中的地址信息。本实施例的异步路由器具有东、西、南、北、本地五个方向的输入以及输出端口,总计十个输入输出端口。该异步路由器内部以及路由器之间,以数据包的形式进行数据交互。数据包包括数据信息和地址信息,数据信息用统一的异步电路传统的延时不敏感编码完成;地址信息包括方向信息和跳数信息。方向信息包括数据包向东还是向西、向南还是向北,其数据格式相同,用1bit双轨编码表示;跳数信息包括了数据包东西方向的跳数以及南北方向的跳数,其数据格式相同,用不同的1ofn编码表示。
33.图3、图4、图5分别为lwe、wesn、nsl模块内部的具体实现,并给出数据流示意。lwe、wesn、nsl模块均由包含完备性检测器的muller流水线单元、merge模块构成,这两类基本模块的具体结构将在下文予以阐述。为便于说明,假设片上网络中传输的初始数据包物理位宽为nbit,包括2bit物理位宽的东西方向示意信息,4bit物理位宽的东西方向跳数,2bit物理位宽的南北方向示意信息,4bit物理位宽的南北方向跳数。lwe模块包含3个muller流水单元和2个两路合并为一路的merge模块,用于接收东、西和本地方向的输入数据。nbit物理位宽的本地方向的输入数据local_in根据数据包中的东西方向信息,判断是向东或向西传输给wesn模块决定好传输方向后,数据包东西方向的传输方向已经固定,在地址信息中丢弃2bit物理位宽的东西方向示意信息,即(n-2)bit物理位宽的split截位数据包。split数据包与(n-2)bit物理位宽的东方向的输入数据east_in经merge模块的优先级仲裁后,向西传输给wesn模块的数据包即为west_out_wesn;split与(n-2)bit物理位宽的西方向的输入数据west_in经merge模块的优先级仲裁后,向东传输给wesn模块的数据包即为east_out_wesn。
34.wesn模块包含4个muller流水单元和2个三路合并为一路的merge模块,用于接收lwe模块的传输数据,包括(n-2)bit物理位宽东方向的输入数据lwe_east_in和(n-2)bit物理位宽西方向的输入数据lwe_west_in,以及接收(n-8)bit物理位宽南方向的输入数据south_in和(n-8)bit物理位宽北方向的输入数据north_in;对于lwe_east_in和lwe_west_in,该模块将判断数据包在东西方向上跳数是否为0,如果不为0,将对跳数进行更新,并将数据包按照传输方向,传给下一个路由器的lwe模块,即(n-2)bit物理位宽向西传输的
west_out数据包和(n-2)bit物理位宽向东传输的east_out数据包;如果东西方向跳数为0,则通过数据包中的南北方向的方向信息,决定数据包向南还是向北传输给nsl模块,并丢弃2bit物理位宽的南北方向示意信息和4bit物理位宽的东西方向跳数,即(n-8)bit物理位宽的split0和split1数据包。split0、split1与(n-8)bit物理位宽的北方向的输入数据north_in经merge模块的优先级仲裁后,向南传输给nsl模块的数据包即为south_out_nsl;split0、split1与(n-8)bit物理位宽的南方向的输入数据south_in经merge模块的优先级仲裁后,向北传输给nsl模块的数据包即为north_out_nsl。
35.nsl模块包含3个muller流水单元和1个两路合并为一路的merge模块,用于接收wesn模块的传输数据,即(n-8)bit物理位宽北方向的输入数据wesn_north_in和(n-8)bit物理位宽南方向的输入数据wesn_south_in,并判断数据包南北方向的跳数是否为0,如果不为零,将对跳数进行更新,并将数据包按照传输方向,传给下一个路由器的wesn模块,即(n-8)bit物理位宽向南传输的south_out数据包和(n-8)bit物理位宽向北传输的north_out数据包;如果南北方向跳数为0,数据包到达目标地址,通过本地输出端输出数据包local_out。
36.muller流水线单元的框图如图6所示,其功能简要描述如下:data_in为数据输入端口,data_out为数据输出端口,ack_in为来自后级的握手信号输入,ack_out向前级传递的握手信号输出;当ack_in置低时,data_out端口可以输出data_in端口输入的有效数据,当ack_in置高时,data_out端口只可输出空状态;当data_out端口输出有效数据时,ack_out置高,当data_out端口输出空状态时,ack_out置低。为了确保路由器全局握手机制的正常工作,所有数据包在进入merge模块进行优先级仲裁或输出至本地输出端口前都必须经过muller流水线单元进行完备性验证生成握手信号ack_out。
37.merge模块用于实现多路输入数据通过轮询仲裁、合并为一路输出的功能,由完备性检测器产生的数据有效信号触发,merge模块具有数据先进先出,同时输入的数据,经过轮询仲裁,根据输入端口的优先级轮流输出的特性。本发明所提出的具有轮询仲裁和地址编码更新简化功能的异步路由器中,使用了两路合并为一路、三路合并为一路的两种merge模块,图7即为三路合并为一路的merge模块示意图。它由固定优先级仲裁器、互斥锁、先进先出模块和多路选择器构成,其功能分别简要描述如下。对于固定优先级仲裁器,仲裁优先级自上而下降序排列,当同时有多个有效请求信号ri进入,只有优先级最高者的响应信号gi拉高表示有效。互斥锁由c单元和多输入非与门构成,其功能是利用c单元的锁存功能,借助后级muller流水线单元的握手信号ack_in将响应信号暂时锁存,直到完成一次数据传输后全局复位再解除锁定,实现数据的有序输出。先进先出子模块通过条件选择,保证仲裁器在不同时接受到请求信号的情况下先进先出地处理,具体来说,即在上述情况下,将请求信号取反接至输出到前级muller流水线单元的握手信号,将无请求的前级muller流水线单元暂时“锁定”,输出数据通道只能处于空状态,直到仲裁器完成一次数据传输后。多路选择器根据选通信号seli选择有效的数据输出。上述电路的动作过程描述如下。当三组有效数据首次同时达到,前级muller流水单元同时向该模块发送置高的握手信号作为仲裁请求信号r0,r1,r2,固定优先级仲裁器裁定请求信号r0具有最高优先级,则响应信号g0拉高,选通信号sel0拉高,多路选择器选通in0数据输入通道将其输出,将后级muller流水单元传递至merge模块的握手信号ack_in置高,由于互斥锁中c单元的锁存特性,向前级muller流水单元传递
的握手信号中只有ack_out0置高,因此对应的数据通道只能处于空状态。类似地,接下来对于剩余两组数据,该电路重复上述动作,使之先后获得输出通道有序完成数据传输。当三组数据全部完成传输后,路由器的muller流水线整体重置,电路回到初始状态。因此,根据上述描述,merge模块配合muller流水线实际能够对各数据通道实现无记忆性的弱公平轮询仲裁功能。
38.由于本发明采用的地址编码更新简化方式,所提出的异步路由器在地址更新的实现上不需要使用逻辑门,只需要通过交换金属导线的顺序即可完成。图8是一种包含m*n*k种跳数状态的地址更新示意图。它利用m+n+k根导线,分别通过1ofm、1ofn、1ofk编码,其中m、n、k互质。将各个编码的数据的导线变化输出顺序,实现循环移位。这样每次输入,输出就会更新一次状态,这样的状态更新,在逻辑上等价于跳数-1,只需选定其中一种状态为跳数为0的状态即可。通过配置不同的数据编码方式,可以实现任意数量状态的状态更新操作。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1