首页> 中国专利> 基于缓存再分配的层次化片上网络路由器的控制方法

基于缓存再分配的层次化片上网络路由器的控制方法

摘要

本发明涉及一种基于缓存再分配的层次化片上网络路由器的控制方法,具体为:基于缓存再分配的层次化片上网络路由器含有输入模块、路由仲裁器和交叉开关模块,输入模块中含有输入缓存模块、地址译码器和端口控制器;首先判断输入缓存模块是否有数据包,然后根据数据包flit类型进行路由;地址译码器首先对输入缓存模块中可转发的head flit数据包进行地址解析,确定路由目的地址,然后依据路由算法向相应端口对应的仲裁器发出请求;一旦接收到仲裁器的响应信号,在判定下一级节点输入缓存有空闲之后,端口控制器将控制交叉开关模块把数据包flit从输入缓存模块转发至对应的输出端口,完成数据包一次路由转发;本发明使得通信的效率高、性能好、实现成本低。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-09-11

    授权

    授权

  • 2015-08-12

    实质审查的生效 IPC(主分类):H04L12/861 申请日:20150323

    实质审查的生效

  • 2015-07-15

    公开

    公开

说明书

(一)、技术领域:本发明涉及一种路由器控制方法,特别是涉及一种基于缓存再分配的层次化片上网络路由器的控制方法。

(二)、背景技术:随着片上系统(SoC)各单元间的数据通信量的迅猛增长,基于总线共享机制的传统SoC通信架构面临诸如全局同步导致功耗和时延大、分时通信导致通信效率低、地址空间有限导致可扩展性差等一系列问题,已无法满足芯片间持续增长的通信需求。为此,片上网络——Network on Chip(NoC)的概念应运而生。

片上网络(NoC)最根本的特点是采用“基于网络”的思想实现片上系统内部高效的数据通信及数据管理。但随着片上系统集成度的迅速提升,片上系统模块数量不断增加,这对基于片上网络的拓扑结构提出了新的挑战。其中,平面拓扑结构的NoC性能和可扩展性均受限于不断增加的跳步数量和节点距离,这很明显地影响了NoC端到端的延迟以及整体的吞吐性能。如何改进NoC平面拓扑结构,使其通信不过分受限于较多的端到端跳数并获得更低的延迟,是NoC研究最为急迫的问题。

层次化NoC结构是在平面结构的基础上使用层次化扩展设计的思想,将一些经典结构进行层次化互连,其实现难度比3D互连结构要低很多。因此,为解决较大规模片上网络通信问题,研究者开始从层次化的角度展开对片上网络的研究。

现有层次化结构大多是在Mesh结构基础上通过划分区域并进行层次化互连得到的,如图1所示为一种基于Mesh的层次化结构CHMesh。路由器是保证网络正常通信和整体性能的关键,传统路由器结构大多是基于Mesh结构进行设计,忽略了层次化结构中不同位置节点的区别。而在层次化NoC中,中间节点是进行层次化通信的关键枢纽,需要承担更多的路由转发工作。因此需要对中间节点路由器结构进行重新设计以提高网络整体性能。

在以CHMesh为例的层次化NoC结构中,中间节点不仅承担底层网络正常的东西南北方向以及本地端口的路由任务,同时还承担很大一部分向上转发的任务。因此中间节点数据包无论是向上路由,还是由上层网络向下路由,其输入缓存模块都极易出现队头阻塞情况。因此,传统的虫孔路由器结构已经不再适应中间节点路由需求,需要根据中间节点的通信要求优化设计路由器结构。

针对输入缓存队头阻塞问题,现有片上网络路由器结构主要采用两种方法克服:即虚通道技术和添加计时器信号方式。其中,虚通道技术是通过设置专门的虚通道技术来避免死锁的发生,该方法需额外增加1到2倍的逻辑门数,并且所需延迟增加近1倍,相应的功耗、面积和设计复杂性代价增大;添加计时器信号方式是在数据包中添加计时器信号,限制延迟超标情况的发生,但这种方式会导致网络丢包率增加,不利于NoC系统可靠性设计。

(三)、发明内容:

本发明要解决的技术问题是:提供一种基于缓存再分配的层次化片上网络

路由器的控制方法,该网络路由器的控制方法使得通信的效率高、性能好、实现成本低。

本发明的技术方案:

一种基于缓存再分配的层次化片上网络路由器的控制方法,该网络路由器

含有基于缓存再分配的输入模块、路由仲裁器和交叉开关模块,基于缓存再分配的输入模块中含有输入缓存模块、地址译码器和端口控制器;基于缓存再分配的层次化片上网络路由器有6个输入端口和6个输出端口,6个输入端口分别对应北向(N)、东向(E)、南向(S)、西向(W)、向上(U)和向下(L)六个方向,6个输出端口也分别对应北向(N)、东向(E)、南向(S)、西向(W)、向上(U)和向下(L)六个方向;

来自资源节点的信息首先在网络接口处被分割成固定长度的包,然后依次被分解成路由单元flit,数据包将以路由单元flit的方式进入网络中完成信息传输;

首先判断当前输入缓存模块是否有数据包,然后根据数据包flit类型进行路由,数据包flit类型含有head flit数据包、body flit数据包和tail flit数据包;

地址译码器首先对输入缓存模块中可转发的head flit数据包进行地址解析,确定路由目的地址,然后依据路由算法向相应端口对应的仲裁器发出请求;

一旦接收到仲裁器的响应信号,在判定下一级节点输入缓存有空闲之后,端口控制器将控制交叉开关模块把数据包flit从输入缓存模块转发至对应的输出端口,从而完成数据包一次路由转发。

输入缓存模块在保证输入缓存模块空间大小不变的前提下添加辅助缓存方式,用于缓解输入缓存模块头阻塞的发生;在保证缓存大小基本不变的前提下,将原有缓存区划分为一个主缓存区和一个可回环的辅助缓存区,主缓存区和辅助缓存区共同完成输入缓存任务,辅助缓存区用于暂存无法迅速转发至目的输出端口的数据微片(flit),该数据微片(flit)既可以回环至主缓存区的输入端,又可以直接通过辅助缓存区正常进行路由;同时,为每个缓存队列头处设置一个计数器单元,用于记录数据微片(flit)等待时间,通过设置计数上限值来判别队列头数据微片是否被阻塞。

辅助缓存区既可承担数据包正常路由转发,又可保证无法在短时间内进行路由转发的数据微片的暂存和回环。

输入缓存模块的工作过程如下:

(1)当网络拥塞情况较轻或者主缓存区无阻塞情况发生时,数据微片在主缓存区和辅助缓存区中进行正常缓存和转发。这样做的目的就是使主缓存区和辅助缓存区共同组成一个缓存区,用作无阻塞发生时的数据缓存功能;

(2)当网络拥塞情况加重或者辅助缓存区中的微片被阻塞时,限制数据微片在主缓存区和辅助缓存区中进行缓存和转发;此外,缓存区产生通道流控信号告知上一级节点暂缓数据输入,直至之前辅助缓存区中被阻塞的数据微片全部重新进入到主缓存区中;

(3)当辅助缓存区中的阻塞微片被全部送至主缓存区尾部以后,主缓存区队头处的微片(包头微片)将根据后面的路由和仲裁模块决定将数据微片传送至交叉开关或者辅助缓存区中,否则微片将沿着包头微片的路径进行转发;

(4)在路由过程中会出现一种极端情况,即辅助缓存区和主缓存区队头均被阻塞,同时主缓存区中缓存已满,此时主缓存区和辅助缓存区将继续等待,“尽力”完成两个缓存区队列头的微片路由。

仲裁器主要是根据链路的占用情况和一定的优先级顺序,选择一个合适端口进行路由,采用普通轮询仲裁机制来平衡链路之间的端口请求冲突,当多个输入端口对同一输出端口发出转发请求时,根据输入缓存的占用情况依端口顺序依次选择某一输入缓存中的的数据微片(flit)进行路由;

基于缓存再分配的层次化片上网络路由器的每个输出端口对应一个仲裁器,每个采用轮询仲裁调度算法的仲裁器的输入由路由器的输入缓存数决定,基于缓存再分配的层次化片上网络路由器的每个输入端对应一个仲裁请求信号,作为仲裁器的输入。

交叉开关模块可以实现路由器输入、输出端口之间的正确互连,交叉开关模块可以在仲裁器的输出控制下将数据微片从输入缓存模块转发至对应的输出端口;为避免层次化结构中出现的底层网络与上层网络之间的死锁情况,通过限制南向(S)和东向(E)方向与向上(U)端口方向之间的路由转向可实现各层网络之间的死锁避免,路由器的输入端南向(S)、东向(E)不允许输出到向上(U)端口,输入端向上(U)则不允许输入到南向(S)和东向(E)。这样做可以简化一定的控制逻辑,降低某些端口的仲裁复杂性。

该网络路由器的控制方法采用基于缓存分配的方式,既保持了无需专门虚通道技术的优势,又克服了添加计时器信号带来的丢包问题,从而有效缓解缓存队列头阻塞情况。

本发明的有益效果:

1、          本发明与现有路由器的控制方法相比,具有以下优点:

1)额外增加资源开销较少:本发明中的网络路由器主要改动在输入缓存模块,本质是在不增加输入缓存整体大小的基础上,划分出主缓存和辅助缓存,并通过增加一定的逻辑控制来实现输入缓存控制,因此其额外增加逻辑资源主要集中在控制逻辑上。相对于采用虚通道技术的路由器结构,本发明的网络路由器所需额外增加的资源开销更小。

2)缓解队头阻塞:本发明中的网络路由器采用辅助缓存区设计,可以将一部分缓存头队列中被阻塞的数据flit暂存于辅助缓存区中,从而不会影响到后续数据flit正常路由转发。尤其是在路由转发任务较重的中间节点路由器结构中,本发明可进一步缓解传统路由器结构中的输入缓存头阻塞情况,提高片上网络的通信效率和性能。

3)实现底层网络与上层网络死锁避免:本发明通过修改交叉开关输入输出端口互连方式,可以限制中间节点处S、E端口与U端口方向之间的路由转向,可以较为简单地避免底层网络与上层网络之间的死锁发生。

(四)、附图说明:

图1为现有基于Mesh的层次化结构CHMesh示意图;

图2为基于缓存再分配的层次化片上网络路由器的结构框图;

图3为输入缓存模块的结构及工作过程示意图;

图4为仲裁调度原理示意图;

图5为交叉开关模块的结构示意图。

(五)、具体实施方式:

基于缓存再分配的层次化片上网络路由器的控制方法如下:

基于缓存再分配的层次化片上网络路由器含有基于缓存再分配的输入模块、路由仲裁器和交叉开关模块(如图2所示),基于缓存再分配的输入模块中含有输入缓存模块、地址译码器和端口控制器;基于缓存再分配的层次化片上网络路由器有6个输入端口和6个输出端口,6个输入端口分别对应北向(N)、东向(E)、南向(S)、西向(W)、向上(U)和向下(L)六个方向,6个输出端口也分别对应北向(N)、东向(E)、南向(S)、西向(W)、向上(U)和向下(L)六个方向;

来自资源节点的信息首先在网络接口处被分割成固定长度的包,然后依次被分解成路由单元flit,数据包将以路由单元flit的方式进入网络中完成信息传输;

首先判断当前输入缓存模块是否有数据包,然后根据数据包flit类型进行路由,数据包flit类型含有head flit数据包、body flit数据包和tail flit数据包;

地址译码器首先对输入缓存模块中可转发的head flit数据包进行地址解析,确定路由目的地址,然后依据路由算法向相应端口对应的仲裁器发出请求;

一旦接收到仲裁器的响应信号,在判定下一级节点输入缓存有空闲之后,端口控制器将控制交叉开关模块把数据包flit从输入缓存模块转发至对应的输出端口,从而完成数据包一次路由转发。

输入缓存模块在保证输入缓存模块空间大小不变的前提下添加辅助缓存方式,用于缓解输入缓存模块头阻塞的发生(如图3所示);在保证缓存大小基本不变的前提下,将原有缓存区划分为一个主缓存区和一个可回环的辅助缓存区,主缓存区和辅助缓存区共同完成输入缓存任务,辅助缓存区用于暂存无法迅速转发至目的输出端口的数据微片(flit),该数据微片(flit)既可以回环至主缓存区的输入端,又可以直接通过辅助缓存区正常进行路由;同时,为每个缓存队列头处设置一个计数器单元,用于记录数据微片(flit)等待时间,通过设置计数上限值来判别队列头数据微片是否被阻塞。

辅助缓存区既可承担数据包正常路由转发,又可保证无法在短时间内进行路由转发的数据微片的暂存和回环。

输入缓存模块的工作过程如下:

(1)如图3中(a)所示,当网络拥塞情况较轻或者主缓存区无阻塞情况发生时,数据微片在主缓存区和辅助缓存区中进行正常缓存和转发,此时控制器将关闭B向D的转发以及C向A的转发,允许B向C转发。这样做的目的就是使主缓存区和辅助缓存区共同组成一个缓存区,用作无阻塞发生时的数据缓存功能;

(2)如图3中(b)所示,当网络拥塞情况加重或者辅助缓存区中的微片被阻塞时,限制数据微片在主缓存区和辅助缓存区中进行缓存和转发,控制器将关闭微片C向D的转发,允许微片C向A的转发,同时允许主缓存区数据微片由B向D的转发;此外,缓存区产生通道流控信号告知上一级节点暂缓数据输入,直至之前辅助缓存区中被阻塞的数据微片全部重新进入到主缓存区中;

(3)当辅助缓存区中的阻塞微片被全部送至主缓存区尾部以后,主缓存区队头处的微片(包头微片)将根据后面的路由和仲裁模块决定将数据微片传送至交叉开关或者辅助缓存区中,否则微片将沿着包头微片的路径进行转发;

(4)在路由过程中会出现一种极端情况,即辅助缓存区和主缓存区队头均被阻塞,同时主缓存区中缓存已满,此时主缓存区和辅助缓存区将继续等待,“尽力”完成两个缓存区队列头的微片路由。

仲裁器主要是根据链路的占用情况和一定的优先级顺序,选择一个合适端口进行路由,采用普通轮询仲裁机制来平衡链路之间的端口请求冲突,当多个输入端口对同一输出端口发出转发请求时,根据输入缓存的占用情况依端口顺序依次选择某一输入缓存中的的数据微片(flit)进行路由;

如图4所示,端口A、B和D的缓存区域同时向某一输出端口时采取的仲裁方案原理,仲裁调度起点选在A输入端,即初始情况下的端口优先级排序为:A->B->C->D;因此,在图中情况下,第1轮仲裁下A、B和D输入端同时仲裁,最先选择输出的是A,第2轮时首先检查B,因此调度B,第3轮首先检查C,发现无数据,跳过检查D,调度D;依次类推得到图中仲裁结果。

基于缓存再分配的层次化片上网络路由器的每个输出端口对应一个仲裁器,每个采用轮询仲裁调度算法的仲裁器的输入由路由器的输入缓存数决定,基于缓存再分配的层次化片上网络路由器的每个输入端对应一个仲裁请求信号,作为仲裁器的输入。

交叉开关模块可以实现路由器输入、输出端口之间的正确互连,交叉开关模块可以在仲裁器的输出控制下将数据微片从输入缓存模块转发至对应的输出端口;为避免层次化结构中出现的底层网络与上层网络之间的死锁情况,结合图1中的结构,通过限制南向(S)和东向(E)方向与向上(U)端口方向之间的路由转向可实现各层网络之间的死锁避免(如图5所示),路由器的输入端南向(S)、东向(E)不允许输出到向上(U)端口,输入端向上(U)则不允许输入到南向(S)和东向(E)。这样做可以简化一定的控制逻辑,降低某些端口的仲裁复杂性。

该网络路由器的控制方法采用基于缓存分配的方式,既保持了无需专门虚通道技术的优势,又克服了添加计时器信号带来的丢包问题,从而有效缓解缓存队列头阻塞情况。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号