基于区域的光电双层片上网络系统及路由方法
技术领域
本发明属于片上通信技术领域,涉及网络系统,特别是一种基于区域的光电双层片上网络系统,可用于片上核间的互连,优化处理器核间的数据传输。
背景技术
随着半导体技术的迅速发展,单一芯片可以集成越来越复杂的功能。系统芯片(System on Chip,SoC)的规模越来越大,并朝着多核化和异构化的方向发展。片上网络(Network on Chip,NoC)作为一种新的设计方法,可以解决基于总线的结构所导致的能耗、面积、带宽等瓶颈,满足大规模集成电路发展对可扩展性、能耗、面积、可重用性、服务质量等方面的需求,它不仅具有良好的可扩展性,还提供了很好的并行通信能力,是替代总线方式的理想方案。但是随着超大规模集成电路工艺特征尺寸的进一步缩小,未来几年内电路的集成度将迅速提高,芯片上互连线的寄生效应如寄生电容、延迟时间、信号串扰等问题变得十分显著。特别是当集成电路工作频率迅速提高至几GHz甚至更高时,基于金属的常规电互连将无法高效地传输信号,光互连作为一个有效解决电互连潜在问题的方式近年来倍受关注。与基于金属的常规电互连相比,光互连具有很多优势:更大的频带宽度、更低的功耗、更小的信号延迟等。光片上网络(Optical Network onChip,ONoC)将解决传统的电片上网络所面临的时延长、电磁互扰严重、串扰大、电子带宽瓶颈和功耗限制等诸多问题。在光互连技术应用到片上网络之前,它已经在多计算机系统、片间光互连和路由器内部交换结构等领域中展现了其强大的优势。但是受限于纳米光器件的发展水平,一直没有应用于片上模块间的互连。
近年来,随着半导体集成电路工艺水平的日趋成熟和新型半导体材料技术的不断进步,与CMOS工艺兼容的光发射器件、传输器件、调制器和光电探测器等各种集成光器件都取得了突破性的进展,这些使得光片上网络的实现成为可能。目前,片上光互连设计主要集中在光总线,光交叉开关和光片上网络这三个方向。基于总线结构的片上光互连的扩展性因为波导中使用的波长数目一定而受到限制,基于光交叉开关的片上光互连中,nxn的光交叉开关的成本和复杂度随着n的增加而迅速增大,因此这两种方案都受限于结构的可扩展性差,无法满足更大规模的需求。因此光片上网络的设计已经成为当前研究的热点。目前在片上网络领域广泛使用的torus和mesh等直连网络存在大量环路,会产生死锁问题,而电片上网络常用的虚信道防死锁方式无法应用于光片上网络,只能通过其它方式,例如限制转向,但这又会进一步增大光片上网络的阻塞问题,进而导致网络性能不理想;如果利用确定性的维序路由方法来解决死锁问题,则由于该方法无法提供路径多样性,不具备自适应的根据网络状况选择路径的能力,同样无法缓解网络的阻塞问题。
路由器是片上网络的基本组成单元,对整个片上网络性能的优劣具有重要的影响。因此,无阻塞的片上光路由器也是光片上网络中需要解决的一个重要问题。目前已有的片上光路由器,有的是有阻塞的,影响了网络性能;有的是通过使用多个波长来达到无阻塞的目的,波长利用率很低,增加了实现成本。
发明内容
本发明的目的在于克服上述已有技术不足,提出了一种基于区域的光电双层片上网络系统及路由方法,以缓解网络的阻塞,提高网络性能,并采用单波长实现片上光路由器内严格无阻塞的特性,提高波长利用率,降低实现成本。
为实现上述目的,本发明的光电双层片上网络系统,包括交换节点和处理器核,其中:
交换节点,包括电交叉矩阵模块、8端口光路由器和16端口光路由器;处理器核,包括64个,分为8个区域;在每个区域内部,由一个电交叉矩阵模块将8个处理器核集中互连,在区域之间,由电交叉矩阵模块、8端口光路由器和16端口光路由器将各个区域连接成一个整体网络;当通信双方在同一个区域内时,数据信息通过电交叉矩阵模块在区域内部直接交换,当通信双方在不同的区域内时,数据信息通过电交叉矩阵模块、8端口光路由器和16端口光路由器在区域之间传输;所述的电交叉矩阵模块和处理器核布局在电层,8端口光路由器和16端口光路由器布局在光层。
上述光电双层片上网络系统的特征,其中所述的电交叉矩阵模块、8端口光路由器和16端口光路由器将各个区域连接成一个整体网络,是将交换节点分为3级,并按如下互连规则连接:
第1级,包括8个电交叉矩阵模块,每个电交叉矩阵模块设有16个端口,其中8个端口分别与8个处理器核相连,另外8个端口分别与相邻的下一级16端口光路由器的其中8个端口一一连接;
第2级,包括8个16端口光路由器,该16端口光路由器其中8个端口分别与相邻的第1级电交叉矩阵模块相连,另外8个端口分别与下一级的8个8端口光路由器相连;
第3级,包括8个8端口光路由器,该8端口光路由器的8个端口分别与第2级的8个16端口光路由器相连。
上述光电双层片上网络系统的特征,其中所述的电交叉矩阵模块和处理器核布局在电层,是将64个处理器核排列成8行8列的正方形,每两行的前4个处理器核和后4个处理器核各形成一个区域,每个区域内部,由1个电交叉矩阵模块集中互连8个处理器核;8端口光路由器和16端口光路由器布局在光层,是将8个8端口光路由器自左而右排列,8个16端口光路由器对称排列在8端口光路由器的两侧,8端口光路由器与16端口光路由器之间通过波导相连;中间4个8端口光路由器与16端口光路由器之间的波导连线从16端口光路由器的上方连入,其余4个8端口光路由器与16端口光路由器之间的波导连线从16端口光路由器的下方连入。
为实现上述目的,本发明的光电双层片上网络路由方法,包括如下步骤:
(1)建立光电双层片上网络的处理器核和交换节点的二维坐标系,根据该二维坐标系确定光电双层片上网络通信的源处理器核S、目的处理器核D在所属区域内的编号分别为Q,P,其中,0≤Q,P≤7,坐标值分别为(XS,YS),(XD,YD),其中,0≤XS,XD≤63,YS=YD=0;确定路由路径涉及的交换节点C的坐标值为(XC,YC),其中,0≤XC≤7,1≤YC≤3;
根据交换节点C的坐标值,按照如下步骤确定数据信息从源处理器核S经过交换节点C发往目的处理器核D时,该交换节点C在网络中的层面:
如果YC=1,则确定交换节点C在电层,即C是电交叉矩阵模块,执行步骤(3);如果YC≠1,则确定交换节点C在光层,即C是光路由器,执行步骤(6);
(3)根据交换节点C和目的处理器核D的坐标值,按照如下步骤判断C和D是否在同一个区域内:
如果YC=XD/8,则确定C和D在同一个区域内,执行步骤(4);如果YC≠XD/8,则确定C和D不在同一个区域内,执行步骤(5);
(4)选择与区域内编号为P的处理器核相连的端口为输出端口,将信息分组从该输出端口发送到目的处理器核D,其中,P=XD%8;
(5)产生路径建立分组,并将该路径建立分组的路由建立标识初始化为0,选择任意一个空闲端口为输出端口,将路径建立分组从该输出端口发送到16端口光路由器;
(6)根据交换节点C的坐标值,按照如下步骤判断C所属的光路由器类型:
如果YC=2,则确定C是16端口光路由器,执行步骤(7);如果YC=3,则确定C是8端口光路由器,执行步骤(10);
(7)按照如下步骤,判断路径建立分组的路径建立标识:
如果该路径建立标识为0,执行步骤(8);如果该路径建立标识为1,执行步骤(9);
(8)将路径建立分组的路径建立标识设为1,选择标记为0-7的端口中任意一个空闲端口为输出端口,将路径建立分组从该输出端口发送到8端口光路由器;
(9)在16端口光路由器标记为8-15的端口中,选择任意一个空闲端口为输出端口,将路径建立分组从该输出端口发送到电交叉矩阵模块;
(10)在8端口光路由器中,选择与坐标值满足Xd=XD/8的16端口光路由器相连的端口为输出端口,将路径建立分组从该输出端口发送到16端口光路由器。
本发明与现有系统相比具有以下优点:
1.由于本发明将电交叉矩阵模块和处理器核布局在电层,光路由器布局在光层,节省了芯片面积,降低了工艺实现的复杂度,克服了之前的系统工艺实现复杂度高的问题。
2.由于本发明考虑了片上通信的局部性特点,将处理器核分为8个区域,区域内处理器核的通信通过电交叉矩阵模块直接交换,提高了资源利用率,克服了之前的系统没有考虑片上通信局部性特点造成资源利用率低的问题。
3.由于本发明将交换节点分为3级,该3级交换节点之间的互连方式不存在环路,因此系统本身不存在死锁问题,可提高网络性能,克服了之前系统采用限制转向等方式解决死锁问题时导致网络阻塞严重的缺点。
4.由于本发明采用8端口光路由器和16端口光路由器作为交换节点,该类交换节点减少了微环谐振器与波导交叉的数目,克服了之前的系统因为采用有阻塞的光路由器作为交换节点导致网络性能不理想及使用多波长实现交换节点无阻塞特性时波长利用率低,实现成本高的缺点。
5.由于本发明采用的路由方法可在多个空闲端口中任意选择一个空闲端口作为数据信息的输出端口,减少了网络的阻塞,提高了网络的传输速度和吞吐量,克服了之前的系统因为采用维序等确定性路由方法造成无法根据端口拥塞状况选择路径的缺点。
附图说明
图1是本发明基于区域的光电双层片上网络系统示意图;
图2是本发明网络系统中的电层结构示意图;
图3是本发明网络系统中的光层结构示意图;
图4是本发明网络系统中的8端口光路由器示意图;
图5是本发明网络系统中的16端口光路由器示意图;
图6是本发明的路由方法流程图。
具体实施方式
参照图1,本发明公开了一种基于区域的光电双层片上网络系统,包括:64个处理器核101,8个电交叉矩阵模块102,8个8端口光路由器103和8个16端口光路由器104。考虑到片上通信的局部性特点,将64个处理器核分为8个区域,在每个区域内部,由一个电交叉矩阵模块将8个处理器核集中互连;在区域之间,将电交叉矩阵模块、8端口光路由器和16端口光路由器分为3级,按如下规则将各个区域连接成一个整体网络:
第1级,包括8个电交叉矩阵模块,每个电交叉矩阵模块设有16个端口,其中8个端口分别与8个处理器核相连,另外8个端口分别与相邻的下一级16端口光路由器的其中8个端口一一连接;
第2级,包括8个16端口光路由器,该16端口光路由器其中8个端口分别与相邻的第1级电交叉矩阵模块相连,另外8个端口分别与下一级的8个8端口光路由器相连;
第3级,包括8个8端口光路由器,该8端口光路由器的8个端口分别与第2级的8个16端口光路由器相连。
当通信双方在同一个区域内时,数据信息通过电交叉矩阵模块在区域内部直接交换,当通信双方在不同的区域内时,数据信息通过电交叉矩阵模块、8端口光路由器和16端口光路由器在区域之间传输;由于当前的纳米光子技术无法做到光信号的缓存,因此数据信息的传输采用电路交换,需要路径建立分组为数据信息建立路径。
考虑到芯片的布线密度和面积约束,本发明采用3D集成技术,将电交叉矩阵模块和处理器核布局在电层,如图2所示;将8端口光路由器和16端口光路由器布局在光层,如图3所示,通过光电和电光转换器105将两层连接。
参照图2,电交叉矩阵模块和处理器核在电层的布局规则是:将64个处理器核201排列成8行8列的正方形,每两行的前8个处理器核和后8个处理器核各形成一个区域202,在每个区域内部,由1个电交叉矩阵模块203集中互连8个处理器核。
参照图3,8端口光路由器和16端口光路由器在光层的布局是:将8个8端口光路由器301-308自左而右排列,8个16端口光路由器309-316对称排列在8端口光路由器的两侧,8端口光路由器与16端口光路由器之间通过基于硅的波导317相连。其中8端口光路由器与16端口光路由器之间的互连规则是:8端口光路由器303=306与16端口光路由器之间的波导连线从16端口光路由器上方的0端口、1端口、2端口和3端口连入,8端口光路由器301、302、307、308与16端口光路由器之间的波导连线从16端口光路由器下方的4端口、5端口、6端口和7端口连入。该连线规则具有对称性,易于实现,且减少了波导的交叉数目,降低了波导交叉所引入的插入损耗。
参照图4,光层中的8端口光路由器由14条基于硅的波导401和54个微环谐振器402构成,该14条基于硅的波导按照光层布局的要求排列成8个端口,分别由整数0-7标记,并将标记为0-3的端口排列在上方,标记为4-7的端口排列在下方,实现8x8的无阻塞交换功能;54个微环谐振器在尺寸和制作材料上完全相同,在打开状态和关闭状态下的谐振波长分别为λon和λoff;默认情况下,所有的微环谐振器处于关闭状态,谐振波长为λoff,当系统使用波长λon传输数据信息时,不会与微环谐振器谐振,因此数据信息沿着波导直线传播,并不耦合进微环谐振器;当数据信息需要发生转向时,将转向处的微环谐振器的谐振波长调节到λon,使微环谐振器处于打开状态,数据信息沿着波导到达打开的微环谐振器时,光信号耦合进入微环谐振器,发生转向,例如设1端口的数据信息要传输到5端口,将微环谐振器403切换到打开状态,数据信息到达微环谐振器403后耦合进该微环谐振器,转向后沿波导直接传输到5端口。
参照图5,光层中的16端口光路由器由32条基于硅的波导501和128个微环谐振器502构成,该32条基于硅的波导按照光层布局的要求排列成16个端口,分别由整数0-15标记,并将标记为0-3的端口排列在上方,标记为4-7的端口排列在下方,标记为8-15的端口排列在右侧,实现16x16的无阻塞交换功能;128个微环谐振器在尺寸和制作材料上完全相同,在打开状态和关闭状态下的谐振波长,分别为λon和λoff;默认情况下,所有的微环谐振器处于关闭状态,谐振波长为λoff,当系统使用波长λon传输数据信息时,不会与微环谐振器谐振,因此数据信息沿着波导直线传播,并不耦合进微环谐振器;当数据信息需要发生转向时,将转向处的微环谐振器的谐振波长调节到λon,使微环谐振器处于打开状态,数据信息沿着波导到达打开的微环谐振器时,光信号耦合进入微环谐振器,发生转向,例如,设5端口的数据信息要传输到9端口,将微环谐振器503切换到打开状态,数据信息到达微环谐振器503后耦合进该微环谐振器,转向后沿波导直接传输到9端口。
参照图6,本发明的路由方法包括如下步骤:
步骤1,建立光电双层片上网络的处理器核和交换节点的二维坐标系。
(1a)以光电双层片上网络左上角的处理器核为原点,水平向右为X轴正方向,竖直向下为Y轴正方向,将光电双层片上网络所包括的8个区域M自左而右自上而下编号为0-7;
(1b)在每个区域内部,按照自左而右的顺序对8个处理器核N编号为0-7;
(1c)设定各区域的处理器核坐标及交换节点的坐标:
对0≤M≤7区域内0≤N≤7编号的处理器核,设其坐标为(Xa,Ya),满足Xa=M·8+N,Ya=0;
对0≤M≤7区域内的电交叉矩阵模块,设其坐标为(Xb,Yb),满足Xb=M,Yb=1;
对与0≤M≤7区域相连的16端口光路由器,设其坐标为(Xd,Yd),满足Xd=M,Yd=2;
对8个自左而右排列的8端口光路由器,设其坐标为(Xe,Ye),满足Xe依次为0-7,Ye=3。
步骤2,根据二维坐标系确定光电双层片上网络通信的源处理器核S、目的处理器核D在所属区域内的编号、坐标及路由路径涉及的交换节点C的坐标。
假设光电双层片上网络通信的源处理器核S在0≤A≤7区域内,编号为0≤Q≤7,根据上述步骤1确定S的坐标为(XS,YS),其中,XS=A·8+Q,YS=0;
假设光电双层片上网络通信的目的处理器核D在0≤B≤7区域内,编号为0≤P≤7,根据上述步骤1确定D的坐标为(XD,YD),其中,XD=B·8+P,YD=0;
根据上述步骤1确定路由路径涉及的交换节点C的坐标值为(XC,YC),其中,0≤XC≤7,1≤YC≤3。
步骤3,根据交换节点C的坐标值,按照如下步骤确定数据信息从源处理器核S经过交换节点C发往目的处理器核D时,该交换节点C在网络中的层面:
如果YC=1,则确定交换节点C在电层,即C是电交叉矩阵模块,执行步骤4;如果YC≠1,则确定交换节点C在光层,即C是光路由器,执行步骤7。
步骤4,根据交换节点C和目的处理器核D的坐标值,判断C和D是否在同一个区域内,如果YC=XD/8,则确定C和D在同一个区域内,执行步骤5;如果YC≠XD/8,则确定C和D不在同一个区域内,执行步骤6。
步骤5,选择与区域内编号为P的处理器核相连的端口为输出端口,将信息分组从该输出端口发送到目的处理器核D,其中,P=XD%8。
步骤6,产生路径建立分组,并将该路径建立分组的路由建立标识初始化为0,选择任意一个空闲端口为输出端口,将路径建立分组从该输出端口发送到16端口光路由器。
步骤7,根据交换节点C的坐标值,判断C所属的光路由器类型,如果YC=2,则确定C是16端口光路由器,执行步骤8;如果YC=3,则确定C是8端口光路由器,执行步骤11。
步骤8,判断路径建立分组的路径建立标识,如果该路径建立标识为0,执行步骤9;如果该路径建立标识为1,执行步骤10。
步骤9,将路径建立分组的路径建立标识设为1,选择标记为0-7的端口中任意一个空闲端口为输出端口,将路径建立分组从该输出端口发送到8端口光路由器。
步骤10,在16端口光路由器标记为8-15的端口中,选择任意一个空闲端口为输出端口,将路径建立分组从该输出端口发送到电交叉矩阵模块。
步骤11,在8端口光路由器中,选择与坐标值满足Xd=XD/8的16端口光路由器相连的端口为输出端口,将路径建立分组从该输出端口发送到16端口光路由器。