一种自适应路由单周期片上网络路由器的制作方法

文档序号:15743714发布日期:2018-10-23 22:43阅读:187来源:国知局

本发明涉及半导体芯片片上数据传输领域。



背景技术:

随着集成电路工艺的不断进步,单块芯片能容纳的晶体管数越来越多,设计者开始在一块芯片上使用多个处理器核心,这类芯片被称为多核或众核芯片。数目巨大的核心之间需要进行数据通信,传统的总线通信结构已经无法满足多核芯片的需要。片上网络(Network on Chip)有高带宽以及良好的可扩展性,被广泛应用于多核芯片中。

路由器(Router)是片上网络的重要组成部分,其功能是数据的转发。片上网络中,一个路由器有多个端口,其中本地端口连接处理器核或其他类型的支持产权核,而其他端口用于连接附近的路由器。路由器与其他路由器或核心之间的连接被称为链路(Link)。

片上网络中数据以包的形式传递,源节点将数据打包后发送到路由器,数据包(Packet)从源节点的路由器发往目的节点的路由器,最后从目的节点路由器进入目的节点,在目的节点被解包。数据包由多个微片(Flit)组成,一条链路一个周期可以传输一个微片。

评价片上网络性能的一个重要指标是数据包延迟和吞吐率。数据包延迟是指一个数据包从进入片上网络到离开片上网络所用的时钟周期;吞吐率是指单位时间内,片上网络传输的数据量。为了实现低延迟和吞吐率,微片从进入一个路由器到离开这个路由器所需的时钟周期应该尽量的短。所以当前的高性能路由器一般为单周期路由器,微片某周期进入路由器,下周期就可以离开该路由器。单周期路由器对电路设计的要求比较高,需要在面积、功耗、时钟频率等方面做权衡。

路由算法是决定片上网络性能的一个重要因素。一般来说,路由算法可以分为确定性路由和自适应路由。其中确定性路由是指,当一个数据包的源地址和目的地址确定后,它在网络中的路径就已经决定了,不论网络的负载状况如何,数据包会沿此路径在网络中传输。确定性路由算法的优点是实现简单,不会造成网络死锁,但数据包更容易拥堵,降低网络性能。而自适应路由是指,数据包在网络中传输时,根据当前网络的负载状况等因素来决定传输方向,使得其可以避开网络中拥堵的部分。自适应路由可以均衡网络中数据包的分布,提升网络性能,但其实现比较复杂,如果不加以特殊设计,还有造成网络死锁的可能。



技术实现要素:

本发明提出一种无死锁的使用自适应路由算法的单周期片上网络路由器。本路由器一共有五个端口,其中上下左右各有一个用来连接附近路由器的端口,还有一个用于连接本地核心的端口。这种路由器适用于网格(Mesh)或环游(Tour)型的拓扑结构,使用的路由算法是自适应的,并且为最短路由,数据包始终向目的地方向移动。根据数据包当前的位置和目的地址,路由计算单元给出数据包多个可移动的方向,最终数据包实际移动的方向由网络负载等因素决定。如果数据包已经和目的地同行或者同列,它可移动的方向只有一个,最终实际移动的方向也是固定的;如果数据包和目的地不同行也不同列,那它可移动的方向有两个,从中选择一个作为实际移动的方向,自适应路由就发生在此选择的过程中。

本路由器采用输出级缓存结构,当一个数据包进入路由器时,其输出方向就已经决定了,它会被存储在相应的通道里。图1说明本路由器的数据存储结构和数据转发方法,其中每个虚线框为一个输出通道,每个输出通道内有多个缓存单元。一个输出通道内的不同缓存单元接受不同输入方向的数据,非本地通道还有一个额外的直行缓存单元,用于存储与目的地同行或同列的数据包,此处将这种数据包定义为直行包。本地通道没有直行缓存单元。所以非本地通道有5个缓存单元,而本地通道有4个缓存单元。

超前路由是一种经典的路由设计方法,每个路由器为数据包的下一级路由器决定输出方向,所以当数据包进入某路由器时,其输出方向就已经确定。本路由器使用了超前路由,并且将其和输出级缓存结构结合了起来,充分利用了超前路由的优势。

使用了超前路由的经典的输入缓存路由器中,上一级路由器只决定数据包在下级路由器中的输出方向,然后将数据包送往下级。本路由器中,上一级路由器不仅仅决定数据包在下级路由器中的输出方向,还需要将数据包送往下级路由器对应方向的缓存单元中。这种情况下,存储在路由器内部的数据包,已经根据输出方向被分类放置在了不同的输出通道里,不同方向的数据包就不会相互阻塞,提升了网络的性能。并且这种输出级缓存结构的路由器中没有大规模的交换单元和仲裁单元,降低了电路的面积和功耗。

附图说明

图1为本发明中路由器的存储结构和转发方法示意图。

图2为本发明中输入通道的结构框图。

图3为本发明中路由器无死锁机制示意图。

具体实施方式

图2是一个输出通道的具体实施方式。每个缓存单元都有其独享的路由单元和控制单元,它们一起被称为一个缓存通道,图中一个虚线框为一个缓存通道。由于每个缓存通道使用相同的结构,图2中只展开了五个缓存通道中的一个。除缓存通道外,一个输出通道还包含一个仲裁控制单元、一个下级方向占用表以及一个多路复用器,这三个模块由所有缓存通道共享。

下级方向占用表中存储本下级路由器各个方向的缓存的占用状态。电路重置后,所有方向均为空闲状态,当某缓存通道正在输出一个数据包,它会占用一个方向,其占用的方向会记录在下级方向占用表中,别的缓存通道就不能请求从这个方向输出数据。当一个缓存通道输出尾微片,这表示一个数据包输出完成,下级方向占用表中相应的方向将会被置为空闲,允许其他缓存通道请求该方向。

仲裁控制单元的输入是各个缓存通道的请求信号。缓存控制单元根据下级方向占用表和下级路由器的缓存状态输入来确定是否发生请求信号,如果数据包可选的方向没有被占用并且下级路由器对应的缓存有空间,缓存控制单元就向仲裁单元发送一个请求信号。仲裁控制单元从所有发出请求的控制单元中选择一个,允许其进行输出,同时将多路复用器的有效输入设置为相应的缓存通道。

虽然本路由器采用自适应路由方法,但特殊设计的结构使得其不会产生死锁。图3讲解了本路由器的无死锁机制。图中显示了三种可以向右传播的数据包,由于数据包乙是向右直行,它占用的专用的直行通道,所以它不会和其他数据包争抢缓存通道,数据包乙总是可以向目的地移动。对于数据包甲和数据包丙,它们来自不同的方向,目的地也在不同的方向,所以不会永久的相互等待。只有在两个数据包都请求右方向的缓存通道时才会产生竞争和等待,但是这种竞争不是永久性的,因为数据包甲和数据包丙可选的方向都有两个,并不会一直请求右方的缓存通道。从不同方向来的数据包没有永久地相互等待,证明了本路由器是无死锁的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1