掌桥专利:专业的专利平台
掌桥专利
首页

一种基于双网络的无死锁多裸芯集成微系统高性能架构

文献发布时间:2023-06-19 15:47:50



技术领域

本发明涉及裸芯集成技术领域,尤其是指一种基于双网络的无死锁多裸芯集成微系统高性能架构的设计方法。

背景技术

随着数字集成电路的发展,片上系统(System on Chip,SoC,指将多个功能模块集成到同一个硅片上)几乎已经成为了实现高性能系统的必要方案,生产厂商通过不断扩大SoC的规模来满足用户对产品性能的需求。然而,受到加工工艺等因素的限制,摩尔定律(即集成电路上可容纳的晶体管数目每经约24个月增加一倍的规律)正在逐渐失效,这使得在单个硅片上扩大集成电路规模的成本和开发周期变得极高。

未来集成电路将朝多裸芯(Die)集成方向发展,即将多个功能各异且已通过验证、未被封装的芯片组件互联组装起来,并封装为同一管壳中的芯片整体,从而形成封装级网络(Network on Package,NoP)。这些裸芯可采用不同工艺、来自不同厂商,因此极大缩短和降低了开发周期和难度。一个高性能的封装级网络的构建需要依赖于裸芯之间的高效互连通信,而互连架构是互连通信的硬件基础。对于互连架构,一种简单有效的选择是环形拓扑结构,在该结构中,多个裸芯通过总线首尾连接,形成一个环状,每个裸芯可以作为数据的发送者,将数据发送并通过总线传输至其他任意一个裸芯;也可以作为数据的接受者,借助总线的传输功能接收来自于其他任意一个裸芯的数据。在环形拓扑结构中,每个裸芯还充当网络的路由器,负责数据的转发,以保证所有数据的正常传输。基于环形拓扑结构的封装级网络易于实现数据高效传输的同时也面临着一些技术难题:首先,环形的数据传输方式会在网络中形成环形依赖,造成路由环形死锁,从而导致整个系统的瘫痪。传统的基于虚通道的环形死锁避免方法被证实不利于低开销设计,而且可能对传输延迟和时序性能造成负面影响。其次,网络中的每个裸芯同时扮演数据的接收/发送者和路由器,在有限的硬件资源条件的限制下,会在裸芯中增加不必要的流量,容易造成数据拥塞,降低系统的工作效率。

发明内容

本发明为了解决上述技术问题,提出了一种面向裸芯间环形互连结构的、基于双网络的无死锁多裸芯集成微系统高性能架构。该架构旨在解决环形多裸芯互连结构中的数据路由死锁问题和节点拥塞问题,相比传统的虚通道方式能够降低硬件和时序开销。该架构还能够支持外部路由链路如提供数据直连传输功能的旁路通路的设置与运行,并为多裸芯集成微系统的实现方式提供了统一、通用的架构依据。

所提出的基于双网络的无死锁多裸芯集成微系统高性能架构由多个裸芯内部的双网络通过环形拓扑互连而成,如图1所示,所述的单个裸芯内部设置有两个完全相同的4*4的Mesh结构的裸芯级网络(Network on die,NoD),每个NoD包括16个以Mesh拓扑排列的网络路由器,路由器之间通过上、下、左、右四个方向的数据总线相互连接,每个路由器设置有上、下、左、右四个传输端口和一个本地端口,四个传输端口分别用于连接该路由器上下左右四个方向的数据总线,一个本地端口用于连接本地设备。

所述双网络的裸芯对外仅表现出两个扩展端口与14个本地端口,多个所述裸芯仅通过各自的扩展端口进行环形连接,图1(b)展示了由4个所述裸芯连接得到的多裸芯互连网络。基于双网络结构与扩展端口具有功能的分离性和独立性,图1(b)展示了一种设有旁路通路的扩展端口,即跨裸芯传输的数据可以通过扩展端口引导进入旁路通路,并绕过当前裸芯中的网络传输,并在另一侧的扩展端口处汇入互连总线,进入下一个裸芯。

在本发明的一个实施例中,所述两个NoD的所有路由器的本地端口处设有分配仲裁单元对两个网络的数据进行分配和仲裁,即对由本地端口向网络传输的数据进行分配,对两个网络向本地端口传输的数据进行仲裁。

在本发明的一个实施例中,多个所述裸芯仅通过各自的扩展端口进行环形连接,在所述多裸芯互连网络中,每个裸芯的子网络A相互连接形成总网络A,每个裸芯的子网络B相互连接形成总网络B,总网络A和总网络B是两个相互独立的网络,在数据传输过程中不存在信息交互。

在本发明的一个实施例中,所述的微系统中双网络架构通过允许参与环形传输的多个数据包行走在不同的子网络消除部分链路竞争,从而打破环形依赖,避免环形死锁的产生。

本发明的上述技术方案相比现有技术具有以下优点:本发明所述的基于双网络的无死锁多裸芯集成微系统高性能架构,实现了裸芯内部网络与裸芯扩展端口的功能解耦与分离,保证了扩展端口与片间互连设计的灵活性和以及网络设计的可扩展性,有利于片间传输加速方法的运用,从而缓解节点拥塞,实现好的数据传输性能。

附图说明

为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明。

图1中(a)是本发明所述的单个裸芯双网络结构示意图;

(b)是本发明所述的基于双网络的多裸芯互连架构的示意图;

图2是不采用(2a)和采用(2b)双网络架构时,一种具有死锁风险的相邻裸芯间数据环形传输模型图;

图3是不采用(3a)和采用(3b)双网络架构时,一种具有死锁风险的裸芯间跨片数据环形传输模型图。

具体实施方式

如图1所示,本实施例提供一种基于双网络的无死锁多裸芯集成微系统高性能架构,系统总体上由多个裸芯内部的双网络通过环形拓扑互连而成。在单个裸芯内部设置有两个完全相同的4*4的Mesh结构的裸芯级网络(Network on Die,NoD),每个NoD包括16个以Mesh拓扑排列的网络节点,节点之间通过上、下、左、右四个方向的数据总线相互连接,每个网络节点以路由器的形式实现,于是每个NoD包括16个路由器实体,每个路由器设置有上、下、左、右四个传输端口和一个本地端口,四个传输端口分别用于连接该路由器上下左右四个方向的数据总线,一个本地端口用于连接本地设备。两个NoD的路由器和数据总线是完全独立的,在数据传输过程中不存在信息交互。两个NoD共享同一组本地设备,在两个NoD的所有路由器的本地端口处,通过一个分配仲裁单元对两个网络的数据进行分配和仲裁,即对由本地端口向网络传输的数据进行分配,对两个网络向本地端口传输的数据进行仲裁,经过分配仲裁单元后的总线作为设备接口总线与设备接口直接连接。

对每个NoD中的16个路由器按照图1中的顺序进行编号,并以0,0和3,3两个节点作为扩展节点与裸芯的扩展端口连接,扩展路由器不挂在本地设备,其他所有路由器均挂在本地设备。

基于所述双网络的裸芯对外仅表现出两个扩展端口与14个本地端口,多个所述裸芯仅通过各自的扩展端口进行环形连接,图1(b)展示了由4个所述裸芯连接得到的多裸芯互连网络。由于双网络结构与扩展端口具有功能的分离性和独立性,扩展端口可以采用任意具体的有效方式实现。图1(b)展示了一种设有旁路通路的扩展端口,即跨裸芯传输的数据可以通过扩展端口引导进入旁路通路,并绕过当前裸芯中的网络传输,并在另一侧的扩展端口处汇入互连总线,进入下一个裸芯。

记每个所述裸芯中的两个网络分别为子网络A和子网络B,在所述多裸芯互连网络中,每个裸芯的子网络A相互连接形成总网络A,每个裸芯的子网络B相互连接形成总网络B,总网络A和总网络B是两个相互独立的网络,在数据传输过程中不存在信息交互,即当数据在所述多裸芯互连网络中传输时,只能始终在整体网络A中传输或始终在整体网络B中传输,不能够从一个整体网络进入另一个整体网络。

进一步地,如图2、3中以四个所述裸芯互连的模型为例,每个裸芯的ID标记为0-3之间的一个数字。图中的每个方格代表一个路由器节点,其序号的首位为裸芯的ID,后两位为图1中所示的路由器ID。四个所述裸芯通过环形结构连接,裸芯间的数据传输链路设有顺时针与逆时针两个方向,所述顺时针方向的链路由上游裸芯中ID为33的路由器出发,连接至下游裸芯中ID为00的路由器;所述逆时针方向的链路由上游裸芯中ID为00的路由器出发,连接至下游裸芯中ID为33的路由器。

图2展示了在不采用和采用所述双网络架构的情况下,一种具有死锁风险的相邻裸芯间数据环形传输模型。在该模型中,数据包1由裸芯0中的02节点发出,期望传输至裸芯1中的03节点;数据包2由裸芯1中的02节点发出,期望传输至裸芯2中的03节点;数据包3由裸芯2中的02节点发出,期望传输至裸芯3中的03节点;数据包4由裸芯3中的02节点发出,期望传输至裸芯0中的03节点。

假设不采用所述双网络结构,如图2中的(2a),当数据包1传输至图2(2a)中A处时,期望从A处路由器的右侧(以图1中方向为准)端口输出,而从该路由器本地输入端口进入路由器的数据包2也期望从当前路由器的右侧端口输出,于是数据包1和数据包2在A处产生链路竞争,假设数据包1竞争失败并原地等待,数据包2竞争成功并获得链路占用权。同理在图2(2a)的B,C,D三处也出现了链路竞争,并假设在B处数据包3竞争成功而数据包2竞争失败,在C处数据包4竞争成功而数据包3竞争失败,在D处数据包1竞争成功而数据包4竞争失败。在这种情况下,数据包1-4的传输形成了裸芯间的环形依赖并陷入环形路由死锁。

若采用所述双网络结构,如图2(2b),设数据包2和数据包3行走在整体网络A中而数据包4和数据包1行走在整体网络B中。由于数据包1和数据包2行走在两个独立网络中,图2(2b)中A处的链路竞争不复存在,数据包1可以直接抵达目的节点。由于数据包3和数据包4行走在两个独立的网络中,C处的链路竞争不复存在,数据包3可以直接抵达目的节点。于是环形依赖关系被打破,环形死锁不复存在。

图3展示了在不采用和采用所述双网络架构时,一种具有死锁风险的裸芯间跨片数据环形传输模型。在该模型中,数据包1由裸芯0的02节点发出,期望传输至裸芯3的13节点;数据包2由裸芯3的02节点发出,期望传输至裸芯0的13节点。

假设不采用所述双网络结构,如图3(3a),当数据包1传输至图3(3a)中A处时,期望从A处路由器的右侧端口输出,而从该路由器本地输入端口进入路由器的数据包2也期望从当前路由器的右侧端口输出,于是数据包1和数据包2在A处产生链路竞争,假设数据包1竞争失败并原地等待,数据包2竞争成功并获得链路占用权。同理在图3(3a)的B处也出现了链路竞争,并假设在B处数据包2竞争成功而数据包1竞争失败。在这种情况下,数据包1,2的传输形成了裸芯间的环形依赖并陷入环形路由死锁。

另外,跨片传输的数据包1,2可以在所述扩展端口的引导下通过所述旁路通路直连传输(如图3中的旁路路径),也可以在每个裸芯内部在路由器的路由作用下传输(如图3中的非旁路路径)。

若采用所述双网络结构,如图3(3b),设数据包1行走在整体网络A中而数据包2行走在整体网络B中。由于数据包1和数据包2行走在两个独立网络中,图2(2b)中A,B两处的链路竞争不复存在,两个数据包可以直接抵达目的节点。于是环形依赖关系被打破,环形死锁不复存在。

采用上述基于双网络的无死锁多裸芯集成微系统高性能架构的优点在于:

该架构架构为当前基于互连裸芯的多裸芯系统提供了简明统一的系统扩展方法与互连架构。

在环形拓扑的多裸芯互连系统中,该架构采用两个平行的物理网络彻底消除了系统中的路由死锁,且相比片上网络的传统无死锁方法——增设虚通道更利于简化系统设计,降低硬件和时序开销。

该架构实现了裸芯内部网络与裸芯扩展端口的功能解耦与分离,保证了扩展端口与片间互连设计的灵活性和以及网络设计的可扩展性,有利于所述旁路通路等片间传输加速方法的运用,从而缓解节点拥塞,提高数据传输性能。

显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

技术分类

06120114580423