专利名称:可重配置的2D mesh片上网络结构及其重配置方法
技术领域:
本发明涉及一种可重配置的2D mesh片上网络结构及其重配置方法。
背景技术:
随着半导体制作工艺的进步,多核芯片和基于多核的并行计算成为提高芯片性能的新手段。然而,随着芯片上晶体管的密度越来越大,特征线宽越来越小,对于生产单核芯片的要求也越来越高,难度越来越大,更不用说多核芯片了。一种广泛应用的解决方案就是在芯片设计和制造过程中引入容错技术。冗余容错作为一种简单的容错方案,在芯片设计领域得到迅速的发展和应用。之前的工作主要集中在微结构级的冗余容错,这种技术在核心数量较少的情况下还比较适用。但是,当核心数量增长到一个临界值时,微结构冗余引入的硬件成本则有些得不偿失了,核心冗余容错变得非常重要。 另一方面,片上网络(片上网络)技术由于其高可扩展性,高带宽的特点,被广泛用作多核芯片的互联架构。由于片上网络的拓扑结构对于多核系统的性能有着非常重要的影响,尤其体现在一些通信密集型的应用上。所以,如果操作系统能够感知多核系统的拓扑结构,将极大地有利于提高任务的调度和分派效率,从而提高多核系统的性能。同时,程序员也应该了解多核系统的拓扑结构,以便于在设计并行程序的时优化其性能。然而,这种优化同时也增强了程序与拓扑结构的耦合,使得当底层物理拓扑结构发生变化时(如某些计算节点失效)原来对上层软件所做的优化可能不会带来性能提升,甚至导致性能下降。因此,如果多核系统能够对上层的操作系统和应用保持一个统一的拓扑结构,将会极大地减小物理拓扑结构变化对上层软件造成的影响。
发明内容
本发明的目的是为了解决现有的2D mesh结构在重配置之后虽然虚拟拓扑与原始的拓扑结构相同,但其底层的网络拓扑结构同原始的拓扑结构差异很大的问题,提供一种可重配置的2D mesh片上网络结构及其重配置方法。可重配置的2D mesh片上网络结构,它包括MXN个核心和(M+l) X (N+1)个路由器,MX N个核心中包括工作的核心为KX L个,冗余的核心(MX N-KX L)个;每个核心可与其相邻的四个路由器之一连接每个路由器与相邻的4个核心通过多路选择器MUX和网络接口 NI实现相互通讯。基于上述2D mesh片上网络结构的重配置方法,它包括如下步骤步骤一在(M+1)X (N+1)的路由网络中选择一个KXL的子网络;步骤二 逐一判断子网络中的每一个路由器的状态,所述状态分为以下三类状态I、不存在任何核心与该路由器连接;状态2、仅存在一个核心与该路由器连接;状态3、存在两个及以上核心与该路由器连接;步骤三判断子网络中是否存在的状态I的路由器,若存在,则转入步骤一,重新选择子网络;若不存在,则转入步骤四;步骤四判断子网络中是否存在状态2的路由器,若存在,将处于状态2的每一个路由器与所述对应的核心连通,并在子网络中去掉所述路由器和与其连接的核心,转入步骤二;若不存在,转入步骤五;步骤五判断子网络中是否存在状态3的路由器,若存在,将处于状态3的每一个路由器与所述的两个及以上核心中的一个核心连通,并在子网络中去掉所述路由器和与其连通的核心,转入步骤二 ;若不存在,重配置完成。本发明的优点是在由于一个核心同一时刻只能与一个路由器连接,所以只需要在传统的2D mesh网络中添加一些多路选择器和重配置寄存器即可,而不必为核心和路由器增加额外的端口。通过使用冗余核心替换失效核心完成重配置。在重配置后,2D mesh片上网络结构保证底层的网络拓扑与原始拓扑结构相同,同时也不会影响到提供给上层操作系统和应用的拓扑信息。引入的额外硬件开销适中,不工作的核心、路由器及链路可以通过休眠来达到低功耗的目的。
图I为本发明所述的可重配置的2D mesh片上网络结构的结构示意图。其中,A表示休眠的核心,B表示工作的核心,C表示休眠的路由,D表示工作的路由,E表示休眠的链路,F表示工作的链路。图2为本发明所述的可重配置的2D mesh片上网络结构的核心与路由器的电气连接示意图。图3为本发明所述的可重配置的2D mesh片上网络结构的重配置方法的流程图。图4为有3个损坏核心的2D mesh片上网络结构示意图。其中,G表示损坏的核心,A表示休眠的核心,B表示工作的核心,C表示休眠的路由,D表示工作的路由,E表示休眠的链路,F表示工作的链路。图5为本发明所述的可重配置的2D mesh片上网络结构的重配置方法重配置后的2Dmesh片上网络结构示意图。其中,G表示损坏的核心,A表示休眠的核心,B表示工作的核心,C表示休眠的路由,D表示工作的路由,E表示休眠的链路,F表示工作的链路。图6为不同损坏核心规模的可重配置的2D mesh片上网络结构用可重配置的2Dmesh片上网络结构的重配置方法重配置的成功率图7为极限损坏情况下,不同核心规模的可重配置的2D mesh片上网络结构用可重配置的2D mesh片上网络结构的重配置方法重配置的成功率。
具体实施例方式具体实施方式
一结合图I说明本实施方式,本实施方式所述的可重配置的2Dmesh片上网络结构,可重配置的2D mesh片上网络结构,它包括MXN个核心和(M+l) X(N+1)个路由器,MX N个核心中包括工作的核心为KX L个,冗余的核心(MX N-KX L)个;每个核心可与其相邻的四个路由器之一连接每个路由器与相邻的4个核心通过多路选择器MUX和网络接口 NI实现相互通讯。
具体实施方式
二 结合图2说明本实施方式,本实施方式是对具体实施方式
一所述的可重配置的2D mesh片上网络结构的进一步限定,所述网络接口 NI包括总线接口、写FIFO模块、读FIFO模块、解包打包模块和控制寄存器,其特征在于,所述控制寄存器还包括重配置寄存器,重配置寄存器包括重配置状态寄存器REC_STA、重配置控制寄存器REC_CNTL和虚拟节点号码寄存器N0DE_NUM,解包打包模块,用于网络中正常的消息解包或打包,还用于打包或解包重配置消息,并将打包或解包之后的重配置消息写入重配置状态寄存器REC_STA ;重配置状态寄存器REC_STA,用于根据解包的重配置消息控制多路选择器MUX的中的一路开关闭合其它开关断开,还用于存储表示核心所连接的路由的状态信息;多路选择器MUX,用于在重配置状态寄存器REC_STA的控制下实现核心与一个路由器的连接;
重配置控制寄存器REC_CNTL,用于存储控制重配置消息的发送使能的信息;虚拟节点号码寄存器N0DE_NUM,用于存储虚拟节点号信息。
具体实施方式
三本实施方式是对具体实施方式
一所述的可重配置的2D mesh片上网络结构的进一步限定,所述网络接口 NI的头微片格式为
名称重置功能描述
~31-29 BE_GS_RC 001 指示数据包的服务类型 ~28-27 Ti0指示路由方向,00表示X-,Y-, 01表示
X-,Y+,以此类推
~26-23 MU表水在X方向上还要经过的偏移量
22-19 Ymod0表示在y方向上还要经过的偏移量
i8-li Xmax0表示源节点与目的节点之间x方向上的总
/r*-, -TA* E3
偏手夕星*
^14-110表示源节点与目的节点之间y方向上的总
偏移量
~Wl0数据传送长度,以字节为单位
0Reserved 0保留位本实施方式对传统的网络接口的头微片格式进行了修改,修改了 31-29位服务类型位。在原有的BE服务和GS服务的基础上,添加了重配置服务类型(RC)。
具体实施方式
四结合图3说明本实施方式,本实施方式是基于具体实施方式
一所述的可重配置的2D mesh片上网络结构的重配置方法,它包括如下步骤步骤一在(M+l) X (N+1)的路由网络中选择一个KXL的子网络;步骤二 逐一判断子网络中的每一个路由器的状态,所述状态分为以下三类
状态I、不存在任何核心与该路由器连接;状态2、仅存在一个核心与该路由器连接;状态3、存在两个及以上核心与该路由器连接;
步骤三判断子网络中是否存在的状态I的路由器,若存在,则转入步骤一,重新选择子网络;若不存在,则转入步骤四;步骤四判断子网络中是否存在状态2的路由器,若存在,将处于状态2的每一个路由器与所述对应的核心连通,并在子网络中去掉所述路由器和与其连接的核心,转入步骤二;若不存在,转入步骤五;步骤五判断子网络中是否存在状态3的路由器,若存在,将处于状态3的每一个路由器与所述的两个及以上核心中的一个核心连通,并在子网络中去掉所述路由器和与其连通的核心,转入步骤二 ;若不存在,重配置完成。上述路由器与核心的连通为数据通讯;R-mesh的可重配置性的优点是通过重配置算法来实现的。对于核心规模为MXN,工作核心为KXL的R-mesh结构,其中路由网络的规模为(M+l) X (N+1 ),冗余的核心数量为(MXN-KXL),冗余度为(MXN-KXL)/KXL。问题可以被表述为对于这MXN个核心,找出KXL个核心。对于每一个核心Ckl (0彡k〈K,0彡1〈L),都从(M+l) X (N+1)个路由器Rmn (0彡m彡M,0彡n彡M)中找到一个核心与之连接,并使得这些路由器能够组成一个标准的2D mesh网络。数学描述为对于MXN个核心组成的集合IC1J (0 ( m<M, 0 ( n〈N)找到一个子集{ckl},通过一对一的映射f {Ckl}->{RJ,使得{RJ成为(M+l) X (N+1)个路由器组成的集合{Rhg} (0彡h彡M,0彡g彡M)的一个特殊子集(即能构成2D mesh网络的子集)。根据以上问题描述,本发明设计了一种确定性算法来寻找重配置的解。本算法属于贪心算法,通过每一步的最优解来逼近全局的最优解。算法首先根据映射f :{Ckl}->{Rj在{Rhg}中对应元素的个数将集合ICJ中的元素分成三类无法对应集合{Rhg}中元素,可以对应{Rhg}中一个元素,可以对应{Rhg}中多个元素。然后将可以对应{Rhg}中一个元素的这些元素中任选一个,将其绑定到映射f: {Ckl}-MRnJ上。之后再进行分类,重复以上过程,直到找到最终的解。假如出现通过映射无法找到元素与之对应的情况,则选的元素不正确,需要重新选择。本发明通过软硬件协同设计实现。大致可以分为以下四个部分I.核心状态检测或者读入由核心的内建自检测BIST模块生成,由硬件实现。2.重配置算法实现由软件实现,具体见R-mesh重配置算法。3.重配置消息发送发送固定格式的消息,需要使用数据包的服务类型位,新添加重配置服务RC,打包重配置消息,由主控节点发送到各各有效核心。4.选择路由进行连接由硬件实现,通过网络接口 NI解包,将重配置信息写入寄存器,完成路由器连接的选择。对一般的网络接口稍加改动,添加入重配置功能,就可以改造为可重配置的网络接口。主要需修改三个部分I.修改数据包格式,添加重配置服务RC的数据包描述。2.修改网络接口的打包解包模块,使其支持重配置服务RC。
3.添加 REC_STA、REC_CNTL、N0DE_NUM 三个重配置寄存器(Reconfig Resister)。其中,REC_STA为重配置状态寄存器,用来表示核心连接到哪个路由上的状态,为只读寄存器。REC_CNTL为重配置控制寄存器,用来控制重配置信息的发送,为读写寄存器。N0DE_NUM为虚拟节点号码寄存器,用来存储虚拟节点号信息,为只读寄存器。修改后的网络接口 NI的硬件结构如图2所示。对于确定的重配置问题,我们可以将具体的算法描述为以下的四步,算法的流程图如图3所示具体实施方式
五本实施方式是对具体实施方式
四所述的可重配置的2D mesh片上网络结构的重配置方法的进一步说明,核心与路由器的默认选择连接顺序为左上、右上、左下、右下的顺序。所述的步骤五中,选择与路由器连接的核心的优先级原则是连通之后,使得路由位于与其连通的核心的左上、右上、左下、右下的顺序;即当存在多个核心可以与该路由连通时,根据连通之后路后与核心的位置关系,按照上述优先原则选择相应的核心来连通。我们分别构建了核心规模为4X5,5X6,6X7,7X8的R-mesh结构。其中最右侧的一列作为冗余的核心。我们对于损坏核心数从I到满一列都分别进行了测试,最后得出了在不同损坏核心情况下的重配置成功的概率。每种情况都使用随机测试激励随机注入100万次。结果如图6所示当损坏的核心数目比较少时,重配置算法的成功率较高,都在90%以上,当损坏的核心数目变多时,重配置成功的概率有明显的下降。尤其是当网络规模大到6X7和7X8,重配置成功率减少到60%甚至更低,这时候说明应该提高冗余度来提高重配置成功的概率,比如增加一行冗余。为分析R-mesh结构在核心损坏数目达到极限情况下的重配置能力,我们又对损坏核心数等于冗余核心数的情况下做了测试,得到了此情况下重配置的成功率。测试的结果如图7所示当核心规模较小时,达到极限损坏核心数时,重配置成功的概率仍然很高,在70%以上,当网络规模大到6X7以上时,概率降到了 70%以下,尤其是7X8时,达到了50%。这说明需要增加冗余度来提高重配置的成功率。例如,当增加一列冗余时,成功率又提高到了 95%以上。本发明主要目是在保证容错的前提下,针对上层保持统一拓扑结构的需求,提出 了可重配置的片上网络结构,同时设计了适用于此结构的重配置算法。该结构中每个核心通过多路选择器选择路由连接实现可重配置的能力。从而仅需要改动网络接口,而不需要对路由网络进行任何修改。减少了设计时间和设计复杂度,提高了设计效率。
权利要求
1.可重配置的2Dmesh片上网络结构,其特征在于,它包括MXN个核心和(M+l) X(N+1)个路由器,MXN个核心中包括工作的核心为KXL个,冗余的核心(MXN-KXL)个; 每个核心可与其相邻的四个路由器之一连接每个路由器与相邻的4个核心通过多路选择器MUX和网络接口 NI实现相互通讯。
2.根据权利要求I所述的可重配置的2Dmesh片上网络结构,所述网络接口 NI包括总线接口、写FIFO模块、读FIFO模块、解包打包模块和控制寄存器,其特征在于,所述控制寄存器还包括重配置寄存器,重配置寄存器包括重配置状态寄存器REC_STA、重配置控制寄存器REC_CNTL和虚拟节点号码寄存器N0DE_NUM, 解包打包模块,用于网络中正常的消息解包或打包,还用于打包或解包重配置消息,并将打包或解包之后的重配置消息写入重配置状态寄存器REC_STA ; 重配置状态寄存器REC_STA,用于根据解包的重配置消息控制多路选择器MUX的中的一路开关闭合其它开关断开,还用于存储表示核心所连接的路由的状态信息; 多路选择器MUX,用于在重配置状态寄存器REC_STA的控制下实现核心与一个路由器的连接; 重配置控制寄存器REC_CNTL,用于存储控制重配置消息的发送使能的信息; 虚拟节点号码寄存器N0DE_NUM,用于存储虚拟节点号信息。
3.根据权利要求I所述的可重配置的2Dmesh片上网络结构,其特征在于,所述网络接口 NI的头微片格式为
4.基于权利要求I所述的可重配置的2Dmesh片上网络结构的重配置方法,其特征在于,它包括如下步骤 步骤一在(M+l) X (N+1)的路由网络中选择一个KXL的子网络; 步骤二 逐一判断子网络中的每一个路由器的状态,所述状态分为以下三类 状态I、不存在任何核心与该路由器连接; 状态2、仅存在一个核心与该路由器连接; 状态3、存在两个及以上核心与该路由器连接; 步骤三判断子网络中是否存在的状态I的路由器,若存在,则转入步骤一,重新选择子网络;若不存在,则转入步骤四; 步骤四判断子网络中是否存在状态2的路由器,若存在,将处于状态2的每一个路由器与所述对应的核心连通,并在子网络中去掉所述路由器和与其连接的核心,转入步骤二 ;若不存在,转入步骤五; 步骤五判断子网络中是否存在状态3的路由器,若存在,将处于状态3的每一个路由器与所述的两个及以上核心中的一个核心连通,并在子网络中去掉所述路由器和与其连通的核心,转入步骤二 ;若不存在,重配置完成。
5.根据权利要求4所述的可重配置的2D mesh片上网络结构的重配置方法,其特征在于,核心与路由器的默认选择连接顺序为左上、右上、左下、右下的顺序。
全文摘要
可重配置的2D mesh片上网络结构及其重配置方法,涉及一种可重配置的2D mesh片上网络结构及其重配置方法。为了解决现有的2D mesh结构在重配置之后虽然虚拟拓扑与原始的拓扑结构相同,但其底层的网络拓扑结构同原始的拓扑结构差异很大的问题。可重配置的2D mesh片上网络结构的每个核心可与其相邻的四个路由器之一连接每个路由器与相邻的4个核心通过多路选择器MUX和网络接口NI实现相互通讯。基于上述结构的重配置方法在选择的子网络的中根据每个路由器与核心的连接状况,对路由器与核心进行连通,且使一个核心同一时刻只能与一个路由器连通。本发明用于重配置2D mesh片上网络结构。
文档编号H04L12/56GK102752207SQ20121023379
公开日2012年10月24日 申请日期2012年7月6日 优先权日2012年7月6日
发明者付方发, 吴子旭, 张继元, 王晓禹, 王进祥, 马健欣 申请人:哈尔滨工业大学