一种高阶路由器输入端口缓冲优化结构制造技术

技术编号:18662501 阅读:78 留言:0更新日期:2018-08-11 16:23
本发明专利技术针对现有MBTR高阶路由器输入端口缓冲容量不足且利用率不均衡问题,提供一种高阶路由器输入端口缓冲优化结构,包括四个输入端口、四个输出端口、集中式输入端口缓冲、四个路由模块、四个行总线、16个行缓冲、一个16×16子交叉开关、16个列缓冲、四个完全相同的四选一多路选择器。本发明专利技术利用STT‑RAM的高密度以及低漏电特性来优化片上缓存,将MBTR高阶路由器瓦片内部的四块输入端口缓冲设置成一个根据输入端口负载请求动态分配存储空间的集中式输入端口缓冲,集中式输入端口缓冲内每个节点都是STT‑RAM buffer块,节点之间用胖树拓扑互连在一起,在隐藏STT‑RAM高写入延迟的同时充分利用其材料特性,有效提高片上缓冲区容量的同时提高缓冲资源利用率。

An input port buffer optimization structure for higher-order router

Aiming at the problem of insufficient buffer capacity and uneven utilization of input ports in existing MBTR high-order routers, the invention provides an input port buffer optimization structure for high-order routers, which includes four input ports, four output ports, centralized input port buffer, four routing modules, four line buses, 16 line buffers, and one line buffer. There are 16 *16 sub-crossing switches, 16 column buffers, and four identical four-choice multiplexers. The invention utilizes the high density and low leakage characteristics of STT_RAM to optimize on-chip cache, and sets the four input port buffers inside the tile of MBTR high-order router into a centralized input port buffer that dynamically allocates storage space according to the input port load request, and each node in the centralized input port buffer is STT_R. AM buffers are interconnected by a fat tree topology between nodes, which hides the high write latency of STT RAM and makes full use of its material characteristics, effectively improving the on-chip buffer capacity while improving the utilization of buffer resources.

【技术实现步骤摘要】
一种高阶路由器输入端口缓冲优化结构
本专利技术属于高性能计算机系统互连网络领域,尤其是对应用到高性能计算机系统互连分系统中的高阶路由器输入端口缓冲优化结构。
技术介绍
路由器是高性能互连系统中的核心组成部件,其功能是将从输入端口进入的报文正确转发到对应的输出端口。随着ASIC工艺技术的发展以及高性能计算机技术进步,基于高阶路由器构建高性能互连网络已成为主流趋势,而且,高阶路由器不断向更高阶方向发展。Kim等人在2006年ISCA会议上提出的基于瓦片(Tile)结构的64端口YARC路由器芯片是高阶路由器芯片的经典结构。YARC路由器芯片设计了64个18.75Gbps的双向端口,芯片的频率是800MHz,聚合片外带宽为2.4Tbps,每个端口在单方向上由三个6.25Gbps的不同信道组成。如图1所示,YARC高阶路由器结构包含64个具有相同结构的的瓦片并采用8行×8列的阵列布局方式,每个瓦片仅与同一行的其它七个瓦片、同一列的其它七个瓦片进行数据传输。YARC高阶路由器的瓦片结构如图2所示,报文首先被存储在输入缓冲中,经过路由计算和VC虚拟通道分配后经过行总线注入到对应的行缓冲中,然后报文仲裁通过8×8子交叉开关,经过列总线到达目的输出端口前的列缓冲里,最后报文获得输出端口的使用权注入到网络中。这样结构化的交换方式不仅避免了复杂交叉开关中的布线拥塞,而且非常有利于路由器芯片的前端、后端设计。然而,由于片上资源受限、全局布线复杂度高等问题,YARC高阶路由器很难扩展到更高维度。每个瓦片中包含与本地输入端口、本地输出端口相关联的缓冲区与逻辑资源,另外YARC用N个子交叉开关代替了一个N端口的单级交叉开关,所有子交叉开关的面积开销以N2的速率增长。当YARC路由器端口数增加时,瓦片数量、仲裁逻辑、每个瓦片内部缓存与布线开销也直线增加。另一方面,子交叉开关维度决定着瓦片内部硬件实现负责度,而其又受同一行、同一列瓦片的端口数量所决定,无论我们怎么设计改造YARC结构,每个瓦片内部维持着一个相对稳定的硬件复杂度。如果能减少YARC高阶路由器内部瓦片数量,片上资源、功耗开销将会大幅度减少。针对该问题,王克非等人提出基于多端口绑定技术的MBTR(MultiportBindingTile-basedRouter,基于瓦片结构的多端口绑定路由器)高阶路由器(Y.Dai,K.Wang,“Ascalableandresilientmicroarchitecturebasedonmultiportbindingforhigh-radixrouterdesign”(基于多端口绑定技术的可扩展高阶路由器微体系结构设计),IPDPS,2017)。MBTR高阶路由器每个输入端口都集成了路由计算模块和多路复用器,每个输出端口就像YARC一样使用了多路选择器。图3展示了一个64端口的MBTR路由器结构,MBTR高阶路由器将多个端口集成到一个瓦片内部,如图4所示,MBTR路由器每个瓦片内部集成4个端口,因此直接将瓦片的数量从YARC高阶路由器的64个降到了16个,与64个端口的YARC高阶路由器相比,每一行、每一列的瓦片数量都减少了50%,行缓冲区buffer数量也相应减少,从而获得了更低的面积与功耗开销。对于一个具有64个端口的高阶路由器来说这样可以节约50%到70%的缓冲开销以及布线复杂度。当报文切片进入输入端口后,路由计算模块计算得出切片的目的输出瓦片所在的行列数以及该瓦片内部的目的输出端口号,然后利用多路复用器将报文切片注入到对应行总线中,报文进入子交叉开关前的行缓冲区buffer里。然后子交叉开关根据行缓冲区buffer里切片请求的输出端口号进行仲裁转发,切片通过列总线到达列缓冲区buffer后,经过输出端口仲裁通过一个多路选择器离开输出端口注入到网络中。MBTR高阶路由器包含16个相同的瓦片结构,16个相同的瓦片结构采用4行×4列的阵列布局方式,记第x行、第y列的瓦片为Tile(x,y),0≤x≤3,0≤y≤3,x、y均为整数。每个瓦片仅与同一行的其它3个瓦片、同一列的其它3个瓦片进行数据传输。如图4所示,Tile(x,y)包括四个输入端口、四个输出端口、四个输入缓冲、四个路由模块RC(RouteComputing)、四个行总线、16个行缓冲、一个16×16子交叉开关(Xbar16×16)、16个列缓冲、四个完全相同的四选一多路选择器(Xbar4×1);四个输入端口分别记为IN(x,y,0)、……、IN(x,y,r)、……、IN(x,y,3);四个输出端口分别记为OUT(x,y,0)、……、OUT(x,y,c)、……、OUT(x,y,3);四个多路选择器分别记为Xbar(x,y,0)、……、Xbar(x,y,c)、……、Xbar(x,y,3);四个输入缓冲分别记为IB(x,y,0)、……、IB(x,y,r)、……、IB(x,y,3);四个路由模块分别记为RC(x,y,0)、……、RC(x,y,r)、……、IN(x,y,3);四个行总线分别记为R(x,y,4y)、……、R(x,y,4y+r)、……、R(x,y,4y+3);16个行缓冲分别记为RB(x,y,0)、……、RB(x,y,i)、……、RB(x,y,15);16个列缓冲分别记为CB(x,y,0)、……、CB(x,y,j)、……、CB(x,y,15);0≤i≤15,0≤j≤15,0≤r≤3,0≤c≤3,i、j、r、c均为整数;输入缓冲IB(x,y,r)与输入端口IN(x,y,r)、路由模块RC(x,y,r)相连,报文从输入端口IN(x,y,r)进入并缓存到输入缓冲IB(x,y,r),等待路由模块RC(x,y,r)读出;路由模块RC(x,y,r)与输入缓冲IB(x,y,r)、行总线R(x,y,4y+r)相连;路由模块RC(x,y,r)从输入缓冲IB(x,y,r)读出报文,根据报文的请求输出端口查询路由表,经过路由计算、虚拟通道分配得到其对应的输出端口号P以及其分配得到的虚拟通道号V,然后将P、V值以及报文提交给行总线R(x,y,4y+r),P、V均为整数,输出端口P中信息包含输出端口所在的目的瓦片Tile(x_Dest,y_Dest);行总线R(x,y,4y+r)与路由模块RC(x,y,r)相连,并连接着同一行4个瓦片的行缓冲,即Tile(x,0)的行缓冲RB(x,0,r)、……Tile(x,y)的行缓冲RB(x,y,4y+r)、……、Tile(x,3)的行缓冲RB(x,3,12+r);来自路由模块的报文通过行总线R(x,y,4y+r)输出到与目的瓦片位于同一列的相应瓦片的行缓冲里,即行总线R(x,y,4y+r)将报文输出到Tile(x,y_Dest)的行缓冲RB(x,y_Dest,4*y_Dest+r);行缓冲RB(x,y,i)与行总线R(x,i/4,i)以及16×16子交叉开关相连,行缓冲RB(x,y,i)从行总线R(x,i/4,i)接收并缓存报文,提交给16×16子交叉开关进行仲裁,其中,“/”为整除运算符;16×16子交叉开关有16个输出端口,记为Out(x,y,0)、……、Out(x,y,t)、……、Out(x,y,15),0≤t≤15,t为整数;16×16本文档来自技高网...

【技术保护点】
1.一种高阶路由器输入端口缓冲优化结构,其特征在于,包括四个输入端口、四个输出端口、集中式输入端口缓冲、四个路由模块、四个行总线、16个行缓冲、一个16×16子交叉开关、16个列缓冲、四个完全相同的四选一多路选择器;记第x行、第y列的高阶路由器输入端口缓冲优化结构为OptTile(x,y),0≤x≤3,0≤y≤3,x、y均为整数;四个输入端口分别记为IN(x,y,0)、……、IN(x,y,r)、……、IN(x,y,3);四个输出端口分别记为OUT(x,y,0)、……、OUT(x,y,c)、……、OUT(x,y,3);四个多路选择器分别记为Xbar(x,y,0)、……、Xbar(x,y,c)、……、Xbar(x,y,3);四个路由模块分别记为RC(x,y,0)、……、RC(x,y,r)、……、IN(x,y,3);四个行总线分别记为R(x,y,4y)、……、R(x,y,4y+r)、……、R(x,y,4y+3);16个行缓冲分别记为RB(x,y,0)、……、RB(x,y,i)、……、RB(x,y,15);16个列缓冲分别记为CB(x,y,0)、……、CB(x,y,j)、……、CB(x,y,15);0≤i≤15,0≤j≤15,0≤r≤3,0≤c≤3,i、j、r、c均为整数;集中式输入端口缓冲与四个输入端口IN(x,y,0)、……、IN(x,y,r)、……、IN(x,y,3)和四个路由模块RC(x,y,0)、……、RC(x,y,r)、……、IN(x,y,3)相连,报文从输入端口IN(x,y,0)、……、IN(x,y,r)、……、IN(x,y,3)进入并缓存到集中式输入端口缓冲,等待路由模块RC(x,y,0)、……、RC(x,y,r)、……、IN(x,y,3)读出;路由模块RC(x,y,r)与集中式输入端口缓冲、行总线R(x,y,4y+r)相连;路由模块RC(x,y,r)从集中式输入端口缓冲读出报文,根据报文的请求输出端口查询路由表,经过路由计算、虚拟通道分配得到其对应的输出端口号P以及其分配得到的虚拟通道号V,然后将P、V值以及报文提交给行总线R(x,y,4y+r),P、V均为整数,输出端口P中信息包含输出端口所在的目的瓦片OptTile(x_Dest,y_Dest);行总线R(x,y,4y+r)与路由模块RC(x,y,r)相连,并连接着同一行4个瓦片的行缓冲,即OptTile(x,0)的行缓冲RB(x,0,r)、……OptTile(x,y)的行缓冲RB(x,y,4y+r)、……、OptTile(x,3)的行缓冲RB(x,3,12+r);来自路由模块的报文通过行总线R(x,y,4y+r)输出到与目的瓦片位于同一列的相应瓦片的行缓冲里,即行总线R(x,y,4y+r)将报文输出到OptTile(x,y_Dest)的行缓冲RB(x,y_Dest,4*y_Dest+r);行缓冲RB(x,y,i)与行总线R(x,i/4,i)以及16×16子交叉开关相连,行缓冲RB(x,y,i)从行总线R(x,i/4,i)接收并缓存报文,提交给16×16子交叉开关进行仲裁,其中,“/”为整除运算符;16×16子交叉开关有16个输出端口,记为Out(x,y,0)、……、Out(x,y,t)、……、Out(x,y,15),0≤t≤15,t为整数;16×16子交叉开关与行缓冲RB(x,y,0)、……、RB(x,y,i)、……、RB(x,y,15)相连,并与同一列的4个瓦片的16个列缓冲一一关联,记m=t/4,n=t mod 4,其中,“mod”为数学求模运算符,则Out(x,y,t)与OptTile(x,m)的列缓冲CB(x,m,4n+m)相连;来自行缓冲RB(x,y,0)、……、RB(x,y,i)、……、RB(x,y,15)的报文经过16×16子交叉开关仲裁后通过列通道进入到目的瓦片的列缓冲区,即输出到OptTile(x,m)的列缓冲CB(x,m,4n+m),m值为y_Dest;来自同一列的4个瓦片的报文被存储在瓦片OptTile(x,y)的16个列缓冲里;列缓冲CB(x,m,4n+m)与OptTile(x,m)的子交叉开关的输出端口Out(x,y,t)相连,并与四选一多路选择器Xbar(x,y,n)相连;列缓冲CB(x,m,4n+m)从Out(x,y,t)接收并缓存报文,并提交给四选一多路选择器Xbar(x,y,n);Xbar(x,y,n)与同一列4个瓦片的列缓冲Out(x,0,4n)、Out(x,1,4n)、Out(x,2,4n)、Out(x,3,4n)相连,Xbar(x,y,n)从列缓冲Out(x,0,4n)、Out(x,1,4n)、Out(x,2,4n)、Out(x,3,4n)接收报文,经过四选一多路选择器输出到输出端口OUT(x,y,n)。...

【技术特征摘要】
1.一种高阶路由器输入端口缓冲优化结构,其特征在于,包括四个输入端口、四个输出端口、集中式输入端口缓冲、四个路由模块、四个行总线、16个行缓冲、一个16×16子交叉开关、16个列缓冲、四个完全相同的四选一多路选择器;记第x行、第y列的高阶路由器输入端口缓冲优化结构为OptTile(x,y),0≤x≤3,0≤y≤3,x、y均为整数;四个输入端口分别记为IN(x,y,0)、……、IN(x,y,r)、……、IN(x,y,3);四个输出端口分别记为OUT(x,y,0)、……、OUT(x,y,c)、……、OUT(x,y,3);四个多路选择器分别记为Xbar(x,y,0)、……、Xbar(x,y,c)、……、Xbar(x,y,3);四个路由模块分别记为RC(x,y,0)、……、RC(x,y,r)、……、IN(x,y,3);四个行总线分别记为R(x,y,4y)、……、R(x,y,4y+r)、……、R(x,y,4y+3);16个行缓冲分别记为RB(x,y,0)、……、RB(x,y,i)、……、RB(x,y,15);16个列缓冲分别记为CB(x,y,0)、……、CB(x,y,j)、……、CB(x,y,15);0≤i≤15,0≤j≤15,0≤r≤3,0≤c≤3,i、j、r、c均为整数;集中式输入端口缓冲与四个输入端口IN(x,y,0)、……、IN(x,y,r)、……、IN(x,y,3)和四个路由模块RC(x,y,0)、……、RC(x,y,r)、……、IN(x,y,3)相连,报文从输入端口IN(x,y,0)、……、IN(x,y,r)、……、IN(x,y,3)进入并缓存到集中式输入端口缓冲,等待路由模块RC(x,y,0)、……、RC(x,y,r)、……、IN(x,y,3)读出;路由模块RC(x,y,r)与集中式输入端口缓冲、行总线R(x,y,4y+r)相连;路由模块RC(x,y,r)从集中式输入端口缓冲读出报文,根据报文的请求输出端口查询路由表,经过路由计算、虚拟通道分配得到其对应的输出端口号P以及其分配得到的虚拟通道号V,然后将P、V值以及报文提交给行总线R(x,y,4y+r),P、V均为整数,输出端口P中信息包含输出端口所在的目的瓦片OptTile(x_Dest,y_Dest);行总线R(x,y,4y+r)与路由模块RC(x,y,r)相连,并连接着同一行4个瓦片的行缓冲,即OptTile(x,0)的行缓冲RB(x,0,r)、……OptTile(x,y)的行缓冲RB(x,y,4y+r)、……、OptTile(x,3)的行缓冲RB(x,3,12+r);来自路由模块的报文通过行总线R(x,y,4y+r)输出到与目的瓦片位于同一列的相应瓦片的行缓冲里,即行总线R(x,y,4y+r)将报文输出到OptTile(x,y_Dest)的行缓冲RB(x,y_Dest,4*y_Dest...

【专利技术属性】
技术研发人员:廖湘科董德尊张鹤颖戴艺李存禄祝雅正
申请(专利权)人:中国人民解放军国防科技大学清华大学
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1