环形互连结构路由确定方法及装置与流程

文档序号:24072544发布日期:2021-02-26 15:58阅读:73来源:国知局
[0001]本发明涉及计算机通信
技术领域
:,尤其涉及一种环形互连结构路由确定方法及装置。
背景技术
::[0002]多芯片环形互连可以是多个单芯片封装(scm)的互连,也可以是1个或多个同构的多芯片封装(mcm)的互连,甚至可以是1个或多个异构的多芯片封装(sip)的互连。通常情况下,在环形互连结构下,任意两个cpu之间都存在2条路由路径,为了提高通信效率,需要分别计算这2条路径的长度,并选择较短的一条。[0003]在现有技术中的路由确定方法中,需要预先确定芯片数量作为路由确定过程中的参数,对于无法预先确定整个环形互连结构的芯片总数的情况,难以确定其路由路径。技术实现要素:[0004]本发明提供的环形互连结构路由确定方法及装置,不需要预先确定整个环形互连结构的芯片总数即可有效计算芯片间的路由路径。[0005]本发明提供一种环形互连结构路由确定方法,包括:[0006]获取当前芯片在主板上的逻辑节点号;[0007]将路由表中的当前芯片跳转至对应芯片的路由项设置为不小于主板支持的最大芯片数量的数值;[0008]分别沿所述环形互连结构的第一方向和第二方向依次计算所述多个芯片与当前芯片的跳转距离;[0009]当所述跳转距离小于当前路由项时,将所述跳转距离确定为当前芯片跳转至对应芯片的路由项。[0010]可选地,在沿所述环形互连结构的第一方向计算当前芯片与所述多个芯片的跳转距离过程中,当所述跳转距离不小于当前路由项时,开始沿所述环形互连结构的第二方向计算当前芯片与所述多个芯片的跳转距离。[0011]可选地,在沿所述环形互连结构的第二方向计算当前芯片与所述多个芯片的跳转距离过程中,当所述跳转距离不小于当前路由项时,确定当前路由表为当前芯片的路由表。[0012]可选地,将路由表中的当前芯片跳转至对应芯片的路由项设置为不小于主板支持的最大芯片数量的数值之后还包括:将当前芯片跳转至本地的路由项设置为0。[0013]可选地,获取当前芯片在主板上的逻辑节点号包括:[0014]依据当前芯片对应的当前处理器序号、处理器包含的芯片数量以及当前芯片在当前处理器中的序号,确定当前芯片的逻辑节点号。[0015]可选地,确定当前芯片的逻辑节点号包括:[0016]将处理器序号小于当前处理器序号的处理器数量与处理器包含的芯片数量相乘,得到第一数量;[0017]将所述第一数量与当前芯片在当前处理器中的序号相加,得到当前芯片的逻辑节点号。[0018]可选地,沿所述环形互连结构的第一方向依次计算所述多个芯片与当前芯片的跳转距离;当所述跳转距离小于当前路由项时,将所述跳转距离的正值更新为当前芯片跳转至对应芯片的路由项;[0019]沿所述环形互连结构的第二方向依次计算所述多个芯片与当前芯片的跳转距离;当所述跳转距离小于当前路由项时,将所述跳转距离的负值更新为当前芯片跳转至对应芯片的路由项。[0020]可选地,所述方法还包括:依据路由表中小于所述主板支持的最大芯片数量的路由项,确定所述环形互连结构的芯片数量。[0021]可选地,所述多芯片环形互连结构包括:一个以上的处理器中包含的至少两个芯片形成的环形互连结构。[0022]可选地,所述一个以上的处理器包括单芯片封装处理器、同构多芯片封装处理器或者异构多芯片封装处理器中的一种或多种。[0023]第二方面,本发明还提供一种环形互连结构路由确定装置,包括:[0024]节点号获取模块,用于获取当前芯片在主板上的逻辑节点号;[0025]初始化模块,用于将路由表中的当前芯片跳转至对应芯片的路由项设置为不小于主板支持的最大芯片数量的数值;[0026]计算模块,用于分别沿所述环形互连结构的第一方向和第二方向依次计算所述多个芯片与当前芯片的跳转距离;[0027]更新模块,用于当所述跳转距离小于当前路由项时,将所述跳转距离确定为当前芯片跳转至对应芯片的路由项。[0028]可选地,所述计算模块包括:[0029]方向更换单元:用于在沿所述环形互连结构的第一方向计算当前芯片与所述多个芯片的跳转距离过程中,当所述跳转距离不小于当前路由项时,开始沿所述环形互连结构的第二方向计算当前芯片与所述多个芯片的跳转距离。[0030]可选地,所述计算模块还包括:[0031]路由表确定单元,用于在沿所述环形互连结构的第二方向计算当前芯片与所述多个芯片的跳转距离过程中,当所述跳转距离不小于当前路由项时,确定当前路由表为当前芯片的路由表。[0032]本发明提供的环形互连结构路由确定方法在单个芯片无法预先确定整个互连结构中芯片数目的场景下,通过在环形互连结构上依次进行第一方向和第二方向的路由项更新,可以有效地计算芯片之间的路由路径。由于在初始状态下路由项设置为不小于主板支持的最大芯片数量,并且将跳转距离小于当前路由项作为更新条件,从而,在沿第一方向进行路由项确定的过程中,能够在当前芯片对每个芯片的路由项更新一次之后及时停止。而在沿第二方向进行路由项确定的过程中,仍然采用跳转距离小于当前路由项作为更新条件能够使当前芯片对每个芯片的路由项都能够更新为最短路径。附图说明[0033]图1为本发明一实施例环形互连结构路由确定方法的流程图;[0034]图2为本发明另一实施例两个同构多芯片封装处理器构成的环形互连结构示意图;[0035]图3为本发明另一实施例两个单芯片封装处理器构成的环形互连结构示意图;[0036]图4为本发明另一实施例两个异构多芯片封装处理器构成的环形互连结构示意图;[0037]图5为本发明另一实施例环形互连结构路由确定方法的具体操作流程图;[0038]图6为本发明另一实施例环形互连结构路由确定装置的示意图;[0039]图7为本发明另一实施例环形互连结构路由确定装置的计算模块的示意图。具体实施方式[0040]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0041]本发明实施例提供一种环形互连结构路由确定方法,如图1所示,包括:[0042]步骤100,获取当前芯片在主板上的逻辑节点号;[0043]在一些实施例中,在获取当前芯片在主板上的逻辑节点号时,可以依据主板的引线获取,例如,依据主板上的引线获取当前芯片所在的处理器时第几个处理器,每个处理器芯片内有多少个芯片,以及当前芯片是所在的处理器的第几个芯片,从而,确定当前芯片的逻辑节点号。[0044]步骤200,将路由表中的当前芯片跳转至对应芯片的路由项设置为不小于主板支持的最大芯片数量的数值;[0045]在一些实施例中,在当前芯片与其他芯片之间的跳转距离,不可能超过主板支持的最大芯片数量,因此,在路由表开始更新之前,采用本步骤的设置方式,能够在后续的更新过程中将当前芯片与所有芯片之间的路由项进行更新。[0046]步骤300,分别沿所述环形互连结构的第一方向和第二方向依次计算所述多个芯片与当前芯片的跳转距离;[0047]在一些实施例中,对于环形互连结构中的任意一个芯片来说,其方向仅有两个,并且,该两个方向是相反的。例如,如图2所示,对于其中的任意一个芯片和其他芯片之间的路由路径来说,仅有沿加号方向路由和沿减号方向路由两种,因此,可以采用沿加号方向的路由路径为第一方向,沿减号方向的路由路径为第二方向,也可以采用沿减号方向的路由路径为第一方向,沿加号方向的路由路径为第二方向。[0048]步骤400,当所述跳转距离小于当前路由项时,将所述跳转距离确定为当前芯片跳转至对应芯片的路由项。[0049]在一些实施例中,由于在沿第一方向计算多个芯片与当前芯片的跳转距离时,当前芯片跳转至对应芯片的路由项为不小于主板支持的最大芯片数量的数值;因此,在沿第一方向计算多个芯片与当前芯片的跳转距离时,会更新当前芯片与所有芯片之间的路由项。在沿第二方向计算多个芯片与当前芯片的跳转距离时,当前芯片跳转至对应芯片的当前路由项为当前芯片沿第一方向的路由的路由项;因此,在沿第二方向计算多个芯片与当前芯片的跳转距离时,实际上仅计算一半数量的芯片与当前芯片之间的路由项。[0050]本实施例提供的环形互连结构路由确定方法在单个芯片无法预先确定整个互连结构中芯片数目的场景下,通过在环形互连结构上依次进行第一方向和第二方向的路由项更新,可以有效地计算芯片之间的路由路径。由于在初始状态下路由项设置为不小于主板支持的最大芯片数量,并且将跳转距离小于当前路由项作为更新条件,从而,在沿第一方向进行路由项确定的过程中,能够在当前芯片对每个芯片的路由项更新一次之后及时停止。而在沿第二方向进行路由项确定的过程中,仍然采用跳转距离小于当前路由项作为更新条件能够使当前芯片对每个芯片的路由项都能够更新为最短路径。[0051]作为一种可选的实施方式,在沿所述环形互连结构的第一方向计算当前芯片与所述多个芯片的跳转距离过程中,当所述跳转距离不小于当前路由项时,开始沿所述环形互连结构的第二方向计算当前芯片与所述多个芯片的跳转距离。在一些实施例中,沿所述环形互连结构的第一方向计算当前芯片与所述多个芯片的跳转距离的过程结束后,开始执行沿所述环形互连结构的第二方向计算当前芯片与所述多个芯片的跳转距离的过程,为了使沿第一方向和沿第二方向的计算过程顺利衔接,在本实施方式中,以当所述跳转距离不小于当前路由项时作为沿第二方向的计算过程开始的触发条件。[0052]作为一种可选的实施方式,在沿所述环形互连结构的第二方向计算当前芯片与所述多个芯片的跳转距离过程中,当所述跳转距离不小于当前路由项时,确定当前路由表为当前芯片的路由表。在一些实施例中,当沿第二方向计算当前芯片与所述多个芯片的跳转距离过程中,此时的路由项是由大到小排列的,因此,当所述跳转距离不小于当前路由项时,可以确定当前芯片与所有的芯片之间的路由项都为最短的路由项,因此,此时可以将当前路由表作为当前芯片的路由表进行保存。[0053]作为一种可选的实施方式,将路由表中的当前芯片跳转至对应芯片的路由项设置为不小于主板支持的最大芯片数量的数值之后还包括:将当前芯片跳转至本地的路由项设置为0。在一些实施例中,采用本步骤的设置方式可以省去后续的跳转距离计算过程中对于当前芯片跳转到本地的计算步骤,从而,能够加快计算速度。[0054]作为一种可选的实施方式,获取当前芯片在主板上的逻辑节点号包括:[0055]依据当前芯片对应的当前处理器序号、处理器包含的芯片数量以及当前芯片在当前处理器中的序号,确定当前芯片的逻辑节点号。作为一种优选的实施方式,确定当前芯片的逻辑节点号包括:将处理器序号小于当前处理器序号的处理器数量与处理器包含的芯片数量相乘,得到第一数量;将所述第一数量与当前芯片在当前处理器中的序号相加,得到当前芯片的逻辑节点号。在一些实施例中,逻辑节点号实际上是指当前芯片对应主板上可安装芯片的位置的序列号。例如,在主板上提供了四个可安装处理器的插槽,每个插槽能够安装一个同构多芯片封装的处理器,每个处理器包含4个芯片;此时,主板上可安装芯片的位置共有16个,当当前芯片在第三个插槽的第二个位置时,当前芯片对应主板上可安装芯片的位置序列号为10,也即,当前芯片的逻辑节点号为10。[0056]作为一种可选的实施方式,沿所述环形互连结构的第一方向依次计算所述多个芯片与当前芯片的跳转距离;当所述跳转距离小于当前路由项时,将所述跳转距离的正值更新为当前芯片跳转至对应芯片的路由项;[0057]沿所述环形互连结构的第二方向依次计算所述多个芯片与当前芯片的跳转距离;当所述跳转距离小于当前路由项时,将所述跳转距离的负值更新为当前芯片跳转至对应芯片的路由项。[0058]在一些实施例中,采用本实施方式的技术方案,路由项不仅能够表明当前芯片跳转至对应芯片的距离,还能够指明该距离是沿何种方向的路由路径计算的。因此,本实施方式中的技术方案能够更加清晰的表明路由路径的信息。[0059]在一些实施例中,所述方法还包括:依据路由表中小于所述主板支持的最大芯片数量的路由项,确定所述环形互连结构的芯片数量。由于在前述各实施方式中,沿第一方向对路由项的计算和确定过程是对所有的芯片进行计算的,而沿第二方向对路由项的计算过程是为了确定最短的路由路径,因此,经过更新的路由项即为当前芯片能够跳转的所有芯片对应的路由项,因此,依据经过更新的路由项数量即可确定环形互连结构的芯片数量。[0060]作为一种可选的实施方式,所述多芯片环形互连结构包括:一个以上的处理器中包含的至少两个芯片形成的环形互连结构。作为一种优选的实施方式所述一个以上的处理器包括单芯片封装处理器、同构多芯片封装处理器或者异构多芯片封装处理器中的一种或多种。[0061]在一些实施例中,环形互连结构可以为多个同构多芯片封装的处理器中的芯片组成的环形互连结构,如图2所示,当然,也可以为一个同构多芯片封装的处理器中的芯片组成的环形互连结构。或者,环形互连结构可以为多个单芯片封装的处理器中的芯片组成的环形互连结构,如图3所示。或者,环形互连结构可以为多个异构多芯片封装的处理器中的芯片组成的环形互连结构,如图4所示,当然,也可以为一个异构多芯片封装的处理器中的芯片组成的环形互连结构。当然,也可以采用一个或多个单芯片封装处理器与一个或多个同构多芯片封装的处理器或者一个或多个异构多芯片封装的处理器中的芯片组成的环形互连结构;还可以采用一个或多个同构多芯片封装的处理器与一个或多个异构多芯片封装的处理器中的芯片组成的环形互连结构。[0062]如图5所示,为图2所示的环形互连结构的具体的路由确定过程,具体如下:[0063]1)每个芯片通过主板上的引线得到一个处理器内的芯片数目c以及自己是第i个处理器的第j个芯片,计算后得到自己的逻辑节点号:chip_num=c*i+j;在该步骤中,本领域技术人员应当理解,处理器的编号通常从0开始,因此,chip_num=c*i+j;如果芯片的逻辑节点编号为从1开始时,chip_num=c*(i-1)+j。[0064]2)根据互连支持的最大芯片数目n,记n=n-1,初始化整个路由表routingtable[0…n]为n(也可以是任意绝对值大于n的值)。[0065]以主板支持的最大的互连数为16,当前芯片为芯片2为例,得到如下的路由表:[0066]索引0123456789101112131415路由项16161616161616161616161616161616[0067]3)初始化到芯片本地的路由项为0,即初始化routingtable[chip_num]=0;此时,路由表如下:[0068][0069][0070]4)开始逆时针计算,迭代更新路由表。[0071]a)初始化hop为1,标识逆时针计算远端芯片的路径长度;[0072]b)如果hop小于等于n,则执行后续操作;否则结束逆时针计算,转到步骤5;[0073]c)从芯片的逆时针接口跨越hop个连接访问远端芯片,获取其逻辑节点号,保存为remote_chip_num;[0074]d)读取路由表中远端芯片的路由项routingtable[remote_chip_num],并与hop进行比较;[0075]e)如果hop小于旧的路由项,则更新路由项的值为hop;否则标识已经构成环路,结束逆时针计算,转到步骤5;[0076]f)hop的值加1,转到步骤b;[0077]上述步骤执行完毕后,路由表如下:[0078]索引0123456789101112131415路由项670123451616161616161616[0079]5)开始顺时针计算,迭代更新路由表。[0080]a)初始化hop为1,标识顺时针计算远端芯片的路径长度;[0081]b)如果hop小于等于n,则执行后续操作;否则结束顺时针计算,转到步骤6;[0082]c)从芯片的顺时针接口跨越hop个连接访问远端芯片,获取其逻辑节点号,保存为remote_chip_num;[0083]d)读取路由表中远端芯片的路由项routingtable[remote_chip_num],并与hop进行比较;[0084]e)如果hop小于旧的路由项,则更新路由项的值为-hop;否则标识已经到达整个环路的中间节点,结束顺时针计算,转到步骤6;[0085]上述步骤执行完毕后,路由表如下:[0086]索引0123456789101112131415路由项-2-101234-31616161616161616[0087]6)路由项计算结束。[0088]本发明实施例还提供一种环形互连结构路由确定装置,如图6所示,包括:[0089]节点号获取模块610,用于获取当前芯片在主板上的逻辑节点号;[0090]在一些实施例中,在获取当前芯片在主板上的逻辑节点号时,可以依据主板的引线获取,例如,依据主板上的引线获取当前芯片所在的处理器时第几个处理器,每个处理器芯片内有多少个芯片,以及当前芯片是所在的处理器的第几个芯片,从而,确定当前芯片的逻辑节点号。[0091]初始化模块620,用于将路由表中的当前芯片跳转至对应芯片的路由项设置为不小于主板支持的最大芯片数量的数值;[0092]在一些实施例中,在当前芯片与其他芯片之间的跳转距离,不可能超过主板支持的最大芯片数量,因此,在路由表开始更新之前,采用本步骤的设置方式,能够在后续的更新过程中将当前芯片与所有芯片之间的路由项进行更新。[0093]计算模块630,用于分别沿所述环形互连结构的第一方向和第二方向依次计算所述多个芯片与当前芯片的跳转距离;[0094]在一些实施例中,对于环形互连结构中的任意一个芯片来说,其方向仅有两个,并且,该两个方向是相反的。例如,如图2所示,对于其中的任意一个芯片和其他芯片之间的路由路径来说,仅有沿加号方向路由和沿减号方向路由两种,因此,可以采用沿加号方向的路由路径为第一方向,沿减号方向的路由路径为第二方向,也可以采用沿减号方向的路由路径为第一方向,沿加号方向的路由路径为第二方向。[0095]更新模块640,用于当所述跳转距离小于当前路由项时,将所述跳转距离确定为当前芯片跳转至对应芯片的路由项。[0096]在一些实施例中,由于在沿第一方向计算多个芯片与当前芯片的跳转距离时,当前芯片跳转至对应芯片的路由项为不小于主板支持的最大芯片数量的数值;因此,在沿第一方向计算多个芯片与当前芯片的跳转距离时,会更新当前芯片与所有芯片之间的路由项。在沿第二方向计算多个芯片与当前芯片的跳转距离时,当前芯片跳转至对应芯片的当前路由项为当前芯片沿第一方向的路由的路由项;因此,在沿第二方向计算多个芯片与当前芯片的跳转距离时,实际上仅计算一半数量的芯片与当前芯片之间的路由项。[0097]本实施例提供的环形互连结构路由确定方法在单个芯片无法预先确定整个互连结构中芯片数目的场景下,通过在环形互连结构上依次进行第一方向和第二方向的路由项更新,可以有效地计算芯片之间的路由路径。由于在初始状态下路由项设置为不小于主板支持的最大芯片数量,并且将跳转距离小于当前路由项作为更新条件,从而,在沿第一方向进行路由项确定的过程中,能够在当前芯片对每个芯片的路由项更新一次之后及时停止。而在沿第二方向进行路由项确定的过程中,仍然采用跳转距离小于当前路由项作为更新条件能够使当前芯片对每个芯片的路由项都能够更新为最短路径。[0098]作为一种可选的实施方式,所述计算模块630包括:[0099]方向更换单元631,用于在沿所述环形互连结构的第一方向计算当前芯片与所述多个芯片的跳转距离过程中,当所述跳转距离不小于当前路由项时,开始沿所述环形互连结构的第二方向计算当前芯片与所述多个芯片的跳转距离。在一些实施例中,沿所述环形互连结构的第一方向计算当前芯片与所述多个芯片的跳转距离的过程结束后,开始执行沿所述环形互连结构的第二方向计算当前芯片与所述多个芯片的跳转距离的过程,为了使沿第一方向和沿第二方向的计算过程顺利衔接,在本实施方式中,以当所述跳转距离不小于当前路由项时作为沿第二方向的计算过程开始的触发条件。[0100]作为一种可选的实施方式,所述计算模块630还包括[0101]路由表确定单元632,用于在沿所述环形互连结构的第二方向计算当前芯片与所述多个芯片的跳转距离过程中,当所述跳转距离不小于当前路由项时,确定当前路由表为当前芯片的路由表。在一些实施例中,当沿第二方向计算当前芯片与所述多个芯片的跳转距离过程中,此时的路由项是由大到小排列的,因此,当所述跳转距离不小于当前路由项时,可以确定当前芯片与所有的芯片之间的路由项都为最短的路由项,因此,此时可以将当前路由表作为当前芯片的路由表进行保存。[0102]本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。[0103]以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1