CN114297130A - 芯片系统中的数据传输处理方法及相关装置 - Google Patents
芯片系统中的数据传输处理方法及相关装置 Download PDFInfo
- Publication number
- CN114297130A CN114297130A CN202111633357.XA CN202111633357A CN114297130A CN 114297130 A CN114297130 A CN 114297130A CN 202111633357 A CN202111633357 A CN 202111633357A CN 114297130 A CN114297130 A CN 114297130A
- Authority
- CN
- China
- Prior art keywords
- sub
- chip
- data
- axis
- data packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本申请实施例提供了一种芯片系统中的数据传输处理方法及相关装置,该方法包括:第一子芯片接收第一数据包;其中,该第一数据包包括目的子芯片的标识;该第一子芯片和该目的子芯片为芯片系统包括的子芯片,该芯片系统中的多个子芯片以矩阵的形式排列,该多个子芯片中的每个子芯片与周围相邻的子芯片连接;该第一子芯片基于方向坐标系以较小带宽消耗原则向该目的子芯片发送该第一数据包中的数据,该较小带宽消耗原则为以较小的传输带宽将该数据送达该目的子芯片的原则;该方向坐标系以该第一子芯片为中心构建。本申请能够实现芯片系统中子芯片之间的高效数据传输,提高芯片系统的处理性能。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种芯片系统中的数据传输处理方法及相关装置。
背景技术
一个芯片系统可以包括多个子芯片,每个子芯片都具备单独处理数据的功能,该多个子芯片以一定的拓扑连接以实现互相通信。并且,该多个子芯片可以通过模型并行的方式协同处理单个大型计算任务,以提高任务的处理效率。在协同处理任务的过程中,该多个子芯片之间需要频繁进行数据的交互传输,该数据传输的效率影响着整个芯片系统的处理性能。
发明内容
本申请实施例公开了一种芯片系统中的数据传输处理方法及相关装置,能够实现芯片系统中子芯片之间的高效数据传输,提高芯片系统的处理性能。
第一方面,本申请提供一种芯片系统中的数据传输处理方法,该方法包括:
第一子芯片接收第一数据包;其中,前述第一数据包包括目的子芯片的标识;前述第一子芯片和前述目的子芯片为芯片系统包括的子芯片,前述芯片系统中的多个子芯片以矩阵的形式排列,前述多个子芯片中的每个子芯片与周围相邻的子芯片连接;
前述第一子芯片基于方向坐标系以较小带宽消耗原则向前述目的子芯片发送前述第一数据包中的数据,前述较小带宽消耗原则为以较小的传输带宽将前述数据送达前述目的子芯片的原则;
前述方向坐标系以前述第一子芯片为中心构建,前述方向坐标系包括第一方向轴、第二方向轴、第三方向轴和第四方向轴;前述第一子芯片所在的行位于方向相反的前述第一方向轴和前述第二方向轴中的至少一个方向轴上;前述第一子芯片所在的列位于方向相反的前述第三方向轴和前述第四方向轴中的至少一个方向轴上。
本申请中,通过在芯片系统中以当前需要发送数据的子芯片为中心构建上述方向坐标系,然后,该子芯片基于方向坐标系以较小带宽消耗原则来传输接收到的数据,从而可以提高数据的传输效率,进而提高芯片系统的处理性能。
一种可能的实施方式中,前述第一子芯片基于方向坐标系以较小带宽消耗原则向前述目的子芯片发送前述第一数据包中的数据包括:在前述目的子芯片处于目标方向轴上的情况下,前述第一子芯片沿着前述目标方向轴的方向发送前述数据;前述目标方向轴为前述第一方向轴、前述第二方向轴、前述第三方向轴或前述第四方向轴。
一种可能的实施方式中,前述方向坐标系还包括第一区域、第二区域、第三区域和第四区域;前述第一区域以前述第一方向轴和前述第三方向轴为边界,前述第二区域以前述第二方向轴和前述第三方向轴为边界,前述第三区域以前述第二方向轴和前述第四方向轴为边界,前述第四区域以前述第一方向轴和前述第四方向轴为边界;
前述第一数据包中包括第一目的子芯片和第二目的子芯片的标识;前述第一子芯片基于方向坐标系以较小带宽消耗原则向前述目的子芯片发送前述第一数据包中的数据包括:
在前述第一目的子芯片和第二目的子芯片分别处于前述第一区域、第二区域、第三区域和第四区域中相邻的两个区域的情况下,前述第一子芯片沿着共同方向轴的方向发送第二数据包;前述第二数据包包括前述数据、第一目的子芯片和第二目的子芯片的标识;前述共同方向轴为前述相邻的两个区域共同边界的方向轴。
一种可能的实施方式中,前述方向坐标系还包括第一区域、第二区域、第三区域和第四区域;前述第一区域以前述第一方向轴和前述第三方向轴为边界,前述第二区域以前述第二方向轴和前述第三方向轴为边界,前述第三区域以前述第二方向轴和前述第四方向轴为边界,前述第四区域以前述第一方向轴和前述第四方向轴为边界;
前述第一数据包中包括第一目的子芯片和第二目的子芯片的标识;前述第一子芯片基于方向坐标系以较小带宽消耗原则向前述目的子芯片发送前述第一数据包中的数据包括:
在前述第一目的子芯片处于前述第一区域,前述第二目的子芯片处于前述第三区域的情况下,前述第一子芯片沿着前述第一区域两条边界的方向轴中的一个方向轴的方向发送第三数据包,并沿着前述第三区域两条边界方向轴中的一个方向轴的方向发送第四数据包;前述第三数据包包括前述数据和前述第一目的子芯片的标识,前述第四数据包包括前述数据和前述第二目的子芯片的标识。
一种可能的实施方式中,前述方向坐标系还包括第一区域、第二区域、第三区域和第四区域;前述第一区域以前述第一方向轴和前述第三方向轴为边界,前述第二区域以前述第二方向轴和前述第三方向轴为边界,前述第三区域以前述第二方向轴和前述第四方向轴为边界,前述第四区域以前述第一方向轴和前述第四方向轴为边界;
前述第一数据包中包括第一目的子芯片和第二目的子芯片的标识;前述第一子芯片基于方向坐标系以较小带宽消耗原则向前述目的子芯片发送前述第一数据包中的数据包括:
在前述第一目的子芯片处于目标区域中,前述第二目的子芯片处于前述目标区域边界的方向轴上的情况下,前述第一子芯片沿着前述目标区域边界方向轴的方向发送第五数据包,前述第五数据包包括前述数据和前述第一目的子芯片和第二目的子芯片的标识;前述目标区域为第一区域、第二区域、第三区域或第四区域。
上述几种可能的实现方式中,基于上述构建的方向坐标系确定目的子芯片相对于上述第一子芯片的方位,基于该确定出的方位快速确定由该第一子芯片前往该目的子芯片的最短传输路径,从而实现了数据的快速转发,节省了传输带宽资源,提高了传输效率。
一种可能的实施方式中,前述第一子芯片包括多个端口,前述多个端口中每个端口与另一个子芯片连接,前述每个端口对应有一个发送缓冲区,前述发送缓冲区用于存放待发送的数据;前述方法还包括:存在至少两个端口发送前述数据的情况下,前述第一子芯片选择第一端口发送前述数据;前述第一端口为前述至少两个端口中发送缓冲区内待发送的数据量最少的端口。
本申请中,通过待发送量较小的端口发送数据,可以减少数据排队等待的时间,提高数据发送的效率。
一种可能的实施方式中,前述第一数据包包括的目的子芯片的标识为多个,前述多个目的子芯片的标识中包括前述第一子芯片的标识;前述方法还包括:
前述第一子芯片存储前述第一数据包中的数据;
前述第一子芯片将前述数据重新封装获得第六数据包;
前述第一子芯片向除前述第一子芯片之外的目的子芯片发送前述第六数据包。
本申请中,数据包可以携带多个目的子芯片的标识,相比于现有的每个目的地都发送有一个数据包的情况,可以减少发送的数据包的数量,节省传输带宽。
第二方面,本申请提供一种子芯片,该子芯片为第一子芯片,前述第一子芯片包括:
接收单元,用于接收第一数据包;其中,前述第一数据包包括目的子芯片的标识;前述第一子芯片和前述目的子芯片为芯片系统包括的子芯片,前述芯片系统中的多个子芯片以矩阵的形式排列,前述多个子芯片中的每个子芯片与周围相邻的子芯片连接;
发送单元,用于基于方向坐标系以较小带宽消耗原则向前述目的子芯片发送前述第一数据包中的数据,前述较小带宽消耗原则为以较小的传输带宽将前述数据送达前述目的子芯片的原则;
前述方向坐标系以前述第一子芯片为中心构建,前述方向坐标系包括第一方向轴、第二方向轴、第三方向轴和第四方向轴;前述第一子芯片所在的行位于方向相反的前述第一方向轴和前述第二方向轴中的至少一个方向轴上;前述第一子芯片所在的列位于方向相反的前述第三方向轴和前述第四方向轴中的至少一个方向轴上。
一种可能的实施方式中,前述发送单元具体用于:
在前述目的子芯片处于目标方向轴上的情况下,沿着前述目标方向轴的方向发送前述数据;前述目标方向轴为前述第一方向轴、前述第二方向轴、前述第三方向轴或前述第四方向轴。
一种可能的实施方式中,前述方向坐标系还包括第一区域、第二区域、第三区域和第四区域;前述第一区域以前述第一方向轴和前述第三方向轴为边界,前述第二区域以前述第二方向轴和前述第三方向轴为边界,前述第三区域以前述第二方向轴和前述第四方向轴为边界,前述第四区域以前述第一方向轴和前述第四方向轴为边界;
前述第一数据包中包括第一目的子芯片和第二目的子芯片的标识;前述发送单元具体用于:
在前述第一目的子芯片和第二目的子芯片分别处于前述第一区域、第二区域、第三区域和第四区域中相邻的两个区域的情况下,沿着共同方向轴的方向发送第二数据包;前述第二数据包包括前述数据、第一目的子芯片和第二目的子芯片的标识;前述共同方向轴为前述相邻的两个区域共同边界的方向轴。
一种可能的实施方式中,前述方向坐标系还包括第一区域、第二区域、第三区域和第四区域;前述第一区域以前述第一方向轴和前述第三方向轴为边界,前述第二区域以前述第二方向轴和前述第三方向轴为边界,前述第三区域以前述第二方向轴和前述第四方向轴为边界,前述第四区域以前述第一方向轴和前述第四方向轴为边界;
前述第一数据包中包括第一目的子芯片和第二目的子芯片的标识;前述发送单元具体用于:
在前述第一目的子芯片处于前述第一区域,前述第二目的子芯片处于前述第三区域的情况下,沿着前述第一区域两条边界的方向轴中的一个方向轴的方向发送第三数据包,并沿着前述第三区域两条边界方向轴中的一个方向轴的方向发送第四数据包;前述第三数据包包括前述数据和前述第一目的子芯片的标识,前述第四数据包包括前述数据和前述第二目的子芯片的标识。
一种可能的实施方式中,前述方向坐标系还包括第一区域、第二区域、第三区域和第四区域;前述第一区域以前述第一方向轴和前述第三方向轴为边界,前述第二区域以前述第二方向轴和前述第三方向轴为边界,前述第三区域以前述第二方向轴和前述第四方向轴为边界,前述第四区域以前述第一方向轴和前述第四方向轴为边界;
前述第一数据包中包括第一目的子芯片和第二目的子芯片的标识;前述发送单元具体用于:
在前述第一目的子芯片处于目标区域中,前述第二目的子芯片处于前述目标区域边界的方向轴上的情况下,沿着前述目标区域边界方向轴的方向发送第五数据包,前述第五数据包包括前述数据和前述第一目的子芯片和第二目的子芯片的标识;前述目标区域为第一区域、第二区域、第三区域或第四区域。
一种可能的实施方式中,前述第一子芯片包括多个端口,前述多个端口中每个端口与另一个子芯片连接,前述每个端口对应有一个发送缓冲区,前述发送缓冲区用于存放待发送的数据;
前述第一子芯片还包括选择单元,用于:
存在至少两个端口发送前述数据的情况下,选择第一端口发送前述数据;前述第一端口为前述至少两个端口中发送缓冲区内待发送的数据量最少的端口。
一种可能的实施方式中,前述第一数据包包括的目的子芯片的标识为多个,前述多个目的子芯片的标识中包括前述第一子芯片的标识;前述第一子芯片还包括:
存储单元,用于存储前述第一数据包中的数据;
封装单元,用于将前述数据重新封装获得第六数据包;
前述发送单元,还用于向除前述第一子芯片之外的目的子芯片发送前述第六数据包。
第三方面,本申请提供一种子芯片,该子芯片包括处理器、存储器和通信端口;其中,前述存储器和通信端口与前述处理器耦合,前述通信端口用于收发数据,前述存储器用于存储计算机程序,前述处理器用于调用前述计算机程序,以使得前述子芯片执行第一方面任一项前述的方法;前述子芯片为芯片系统包括的子芯片,前述芯片系统中的多个子芯片以矩阵的形式排列,前述多个子芯片中的每个子芯片与周围相邻的子芯片连接。
第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,前述计算机程序被处理器执行时,实现第一方面任意一项所述的方法。
第五方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机程序,当该计算机程序被处理器执行时,实现第一方面任意一项所述的方法。
可以理解地,上述第二方面至第五方面均对应用于执行上述第一方面中任一项所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
下面将对本申请实施例中所需要使用的附图作介绍。
图1为本申请提供的芯片系统示意图;
图2为本申请提供的子芯片的结构示意图;
图3至图6为本申请提供的芯片系统示意图;
图7为本申请提供的子芯片组划分示意图;
图8为本申请提供的芯片系统中的数据传输处理方法的流程示意图;
图9为本申请提供的数据包结构示意图;
图10为本申请提供的方向坐标系的示意图;
图11为本申请提供的基于子芯片构建方向坐标系的示意图;
图12为本申请提供的虚拟装置的结构示意图;
图13为本申请提供的实体装置的结构示意图。
具体实施方式
下面结合附图对本申请的实施例进行描述。
图1所示为本申请实施例提供的一种芯片系统的结构示意图。芯片系统110包括多个子芯片(图1中示例性示出了16个子芯片),该多个子芯片按照预设的拓扑连接关系连接,例如,图1中的16个子芯片可以按照矩阵的形式排列,然后,单个子芯片分别与周围的两个、三个或者四个子芯片连接。
每个子芯片都有各自的内存,图1中示例性画出了部分子芯片的内存。内存例如可以是同步动态随机存储器(synchronous dynamic random access memory,SDRAM)或者双倍速率同步动态随机存储器(Double Data Rate SDRAM,DDRSDRAM),DDRSDRAM可以简写为DDR。
芯片系统100中每个子芯片都具有完整的处理能力,可以独立执行任务。当然,芯片系统100中的多个子芯片可以互相协作执行大型的处理任务。
参见图2,图2示例性示出了上述芯片系统110中的子芯片的结构示意图。子芯片的结构可以是以片上网络(network-on-chip,NoC)的形式呈现。可以看到,子芯片可以包括处理模块、路由模块、静态存储器、内存控制器和四个端口(d0、d1、d2和d3)。
上述处理模块为子芯片中的控制单元(control unit,CU),负责子芯片中各个处理流程的管理。
上述路由模块负责子芯片内部的数据同步、子芯片之间的数据同步、数据广播和数据传输。其中,路由模块也包括一个控制单元,该控制单元用于负责路由模块中路由流程的管理。路由模块中还包括本地的缓冲区,可以用于暂时存储待处理的数据。路由模块中还包括端口转发映射模块(forwarding-port mapper,FPM),该FPM可以是一个硬件模块或软件模块,该FPM中存储有一个端口转发映射表,该端口转发映射表中包括目的子芯片和发送端口的映射关系,可以用于将数据包映射到对应的端口进行发送。路由模块中存储有流输入表(stream in table,SIT)和流输出表(stream out table,SOT),该SIT和SOT用于子芯片之间的数据传输,后面会详细介绍,此处暂不详述。
上述静态存储器可以是静态随机存取存储器(static random-access memory,SRAM)等,用于存储子芯片中的数据。
上述内存控制器与子芯片对应的内存连接,该内存控制器例如可以是DDR控制器等。
上述四个端口(d0、d1、d2和d3)是子芯片的网络接口,可以实现上述子芯片与子芯片之间的数据传输。上述子芯片和子芯片之间的连接就是通过该四个端口来实现。可选的,子芯片也可以包括两个该端口,例如图1中的子芯片0、子芯片3、子芯片12和子芯片15。或者,可选的,子芯片也可以包括三个该端口,例如图1中的子芯片4等。
本申请实施例提供的芯片系统不限于上述图1所示的结构,还可以是其它的结构,例如参见图3。图3示例性示出了芯片系统120,该芯片系统120同样包括多个子芯片(图2中示例性示出了8个子芯片),该芯片系统120的多个子芯片以长方体的形式排列连接,这种连接方式可以使得子芯片之间的数据传输路径尽可能地缩短。芯片系统120中的子芯片的结构可以参见上述图2中对应的描述,此处不再赘述。
一种可能的实施方式中,对于超大型的任务,需要更多的子芯片一起来处理以提高任务处理效率,那么,可以通过将上述芯片系统110或芯片系统120作为一个芯片的子系统,由多个该子系统组成一个较大的芯片系统,示例性地,可以参见图4所示的芯片系统130。
该芯片系统130可以包括多个上述芯片的子系统,图4中以包括8个子系统为例示出,该多个子系统的每个子系统可以为上述芯片系统110或芯片系统120。可以将每个子系统看成是一个整体,那么,该多个子系统可以通过预设定的拓扑连接关系进行连接,例如,可以以长方体的形式排列连接,如图4所示。为了便于理解芯片系统130中各个子系统的连接方式,示例性地,以子系统为上述芯片系统110为例示出该芯片系统130中各个子系统的连接结构示意图,可以参见图5。
在图5中可以看到,芯片系统130中包括8个子系统,该8个子系统中每个子系统包括16个子芯片,该16个子芯片可以以矩阵的形式排列连接。相邻两个子系统之间,可以通过一个子系统中的任意一个子芯片与另一个子系统中的任意一个子芯片连接来实现该两个子系统的连接。图5中示例性地以每个子系统中排列在矩阵拐角的子芯片作为与另一个子系统连接的子芯片。例如,子系统0中,子系统0与子系统1之间是通过子系统0中的子芯片3与子系统1中的子芯片0来建立连接。子系统0与子系统2之间是通过子系统0中的子芯片12与子系统2中的子芯片0来建立连接。子系统0与子系统4之间是通过子系统0中的子芯片0与子系统4中的子芯片0来建立连接。
一种可能的实施方式中,上述子系统之间还可以包括控制总线,例如可以参见图6所示的芯片系统140。该芯片系统140中所示的D型总线即为控制总线。芯片系统140中包括一个中心控制器(该中心控制器可以是芯片系统140中的一个子芯片或者控制模块等),该中心控制器可以管理该芯片系统140中的任务处理流程。该控制总线与中心控制器连接,以用于各个子系统接收中心控制器的控制指令。具体实现中,每个子系统可以由一个子芯片连接该控制线,该子芯片接收到控制指令后可以代为转发到同子系统内对应的子芯片。或者,每个子系统中的每个子芯片都连接该控制线以用于直接接收控制指令。本申请对控制器的具体连接不做限制。
除了上述芯片系统140之外,本申请实施例提供的芯片系统(例如上述芯片系统110、芯片系统120和芯片系统130等)也包括一个中心控制器,用于管理整个芯片系统的任务处理流程。同理,该中心控制器可以是芯片系统中的一个子芯片或者控制模块等。中心控制器可以获取芯片系统中所有子芯片的负载情况和资源使用情况等,从而可以基于这些情况来为各个子芯片分配任务。示例性地,可以通过中心控制器中的任务调度器(scheduler)来基于各个子芯片的负载情况和资源使用情况等信息为这些子芯片分配任务。
上述中心控制器还可以负责芯片系统中的数据调度。具体的,中心控制器通过控制总线获取各个子芯片的数据传输情况,通过对这些数据传输情况的分析可以获知各个传输路径的拥塞情况和/或获知各个子芯片的端口拥塞情况,从而可以基于这些情况制定数据的传输策略,并以调度信息的形式下发给各个子芯片。各个子芯片基于控制器下发的调度信息来对应发送数据,从而降低了拥塞的概率,提高了数据传输效率。
在本申请实施例提供的芯片系统中,每个子芯片都具备独立处理数据的能力。但是在数据任务较大的情况下,单个子芯片的处理效率较低。为了提高任务的处理效率,可以将上述芯片系统中包括的多个子芯片划分成多个子芯片组,每个子芯片组至少包括一个子芯片。这样可以以子芯片组为处理单位来处理数据任务,从而提高处理效率。为了便于理解芯片组,可以参见图7。
图7以上述芯片系统110为例,将芯片系统中的16个子芯片划分成9个子芯片组,具体参见图7所示的划分情况,每个子芯片组至少包括一个子芯片。另外,同一个子芯片组的多个子芯片可以是相邻的子芯片,例如子芯片组3、子芯片组4、子芯片组7和子芯片组8。或者,同一个子芯片组的多个子芯片可以是不相邻的子芯片,例如子芯片组2,该子芯片组2由不相邻的子芯片1和子芯片12组成。
本申请实施例提供的芯片系统可以采用数据并行、模型并行或者模型并行加数据并行的方式来实现数据任务的处理。其中:
数据并行是指把待处理的数据划分成若干数据块,将该若干数据块分别分配到不同的子芯片组上,每一个芯片组运行同样的处理程序对所分派的数据进行处理。例如,假设待处理数据被划分为3个数据块,现有3个子芯片组可以运行同样的处理程序来处理数据块,那么,可以将该3个数据块中的第1数据块发送给该3个子芯片组中的第1个子芯片组处理,将该3个数据块中的第2数据块发送给该3个子芯片组中的第2个子芯片组处理,将该3个数据块中的第3数据块发送给该3个子芯片组中的第3个子芯片组处理。
模型并行是指多个子芯片组共同完成一个数据处理任务,该多个子芯片组中每一个子芯片组只执行整个数据处理任务的部分步骤(该部分步骤可以是一个或多个处理步骤)。例如,假设一个数据处理任务需要经过3个步骤才能完成处理,那么,可以配置两个子芯片组来共同完成该任务。其中,第1个子芯片组完成该3个步骤中的前2步骤的处理,第2子芯片组从第1子芯片组获取处理后的数据以完成第3步骤的处理。或者,可以配置三个子芯片组来共同完成该任务。其中,第1子芯片组完成该3个步骤中的第1步骤的处理,第2子芯片组从第1子芯片组获取处理后的数据完成第2步骤的处理,第3子芯片组从第2子芯片组获取处理后的数据完成第3步骤的处理。即每个芯片组完成的步骤可以是一个或多个,具体可以根据芯片组的负载情况和资源使用情况来确定。
模型并行加数据并行的方式是结合了上述数据并行和模型并行两种方式来处理数据。例如,一个数据处理任务需要经过3个步骤才能完成处理,那么,可以配置三个子芯片组来共同完成该任务。其中,第1子芯片组完成该3个步骤中的第1步骤的处理,第2子芯片组从第1子芯片组获取处理后的数据完成第2步骤的处理,第3子芯片组从第2子芯片组获取处理后的数据完成第3步骤的处理。但是,由于该第1步骤的处理比较复杂,需要花费较多的时间才能完成该步骤的处理,为了提高处理效率,可以再配置一个或多个子芯片组来共同执行该第1步骤的处理任务。例如,可以再配置一个第4子芯片组来和前述第1子芯片组一起来执行该第1步骤的处理任务。具体的,可以将用于进行第1步骤处理的数据分成两份,一份发送给该第1子芯片组处理,另一份发送给该第4子芯片组处理。然后,该第1子芯片组和第4子芯片组处理完之后的数据一起发送给第2子芯片组进行第2步骤的处理。
需要说明的是,上述模型并行加数据并行的方式中,可以是每个处理步骤都采用数据并行的处理方式来处理,或者可以是部分处理步骤采用数据并行的处理方式来处理,具体可以根据具体实现确定,本申请对此不做限制。
在具体实现中,可以通过芯片系统的中心控制器将数据处理任务分配到各个子芯片组。采用模型并行或者模型并行加数据并行的方式实现数据任务的处理,需要在子芯片之间进行数据的传输。数据传输会产生时延导致处理效率降低。为了实现芯片系统中子芯片之间的高效数据传输,提高芯片系统的处理性能,本申请实施例提供了一种芯片系统中的数据传输处理方法。
参见图8,本申请实施例提供的数据传输处理方法包括但不限于如下步骤:
S801、第一子芯片接收第一数据包;其中,该第一数据包包括目的子芯片的标识;该第一子芯片和该目的子芯片为芯片系统包括的子芯片,该芯片系统包括的多个子芯片以预设的拓扑结构连接。
该芯片系统可以是前述介绍的芯片系统110、芯片系统120、芯片系统130或者芯片系统140等。该第一子芯片可以是这些芯片系统中任意一个芯片系统中的任意一个子芯片。为了便于后面的描述,成该第一子芯片所在的芯片系统为第一芯片系统。该第一子芯片从该第一芯片系统中的另一个子芯片中接收到上述第一数据包。
在具体实现中,该第一数据包中可以包括包(packet)的类型(type)、任务的标识、数据流的标识、目的子芯片的标识、包编号和数据等信息中的一项或多项。其中:
包的类型用于指示一个包的具体类型,包的类型可以包括数据包(DATA)、头包(Header)或者解除等待的包(unblock,UB)等等。上述第一数据包的包类型为DATA。
任务的标识指的是包对应的数据处理任务的标识。在芯片系统中可以同时处理多个数据处理任务,每个数据处理任务都有其对应的标识。该任务的标识例如可以是1或者其它的标识符号,本申请对此不做限制。上述第一数据包为某个数据处理任务中的数据在子芯片之间传输的载体,因此,该第一数据包中的任务的标识即为该某个数据处理任务的标识。
数据流的标识:关于数据流,一个子芯片向另一个子芯片发送数据,这些数据被封装成多个数据包,这些数据包按顺序编号并发送,这些连续发送的数据包形成数据流。一种可能的实现中,每个数据包可以携带1kb的数据,若传输的数据总大小为64kb,那么,可以将这些数据拆分封装成64个数据包进行发送,该64个数据包则可以形成一个数据流。每个数据流都配置有一个标识,该标识即为数据流的标识。上述第一数据包中包括的数据流的标识为该第一数据包所在的数据流的标识。
目的子芯片的标识用于指示包所去往的目的地。上述第一数据包中的目的子芯片的标识可以是一个或多个目的子芯片的标识。若该第一数据包中的数据对应的目的子芯片为一个,则第一数据包中的目的子芯片的标识为该一个目的子芯片的标识。若第一数据包中的数据对应的目的子芯片为多个,则第一数据包中的目的子芯片的标识为该多个目的子芯片的标识。例如,若数据包的目的子芯片有两个,分别为子芯片0和子芯片9,那么,该数据包包括该子芯片0和子芯片9的标识。
包编号指的是一个包在其所属的数据流中的顺序编号。
数据即为包中的负载(layout),是实际传输的内容。
一种可能的实施方式中,上述第一数据包中还可以携带边带信息,这些边带信息可以包括任务的标识、数据流的标识或目的子芯片的标识中的一项或多项信息。这些边带信息可以不封装在第一数据包内,而是随着第一数据包一起发送。在具体实现中,第一数据包内部包括的信息只有子芯片的路由模块才能活着,子芯片中的端口等其它模块并不感知。因此,为了便于快速转发第一数据包,可以配置第一数据包携带上述边带信息。为了便于理解第一数据包的格式和边带信息的格式,可以示例性地参见图9。图9所示的第一数据包的格式和对应的边带信息仅为示例,在具体实现中第一数据包中还可以包括其它的信息,边带信息也可以包括更多的信息,本申请对此不做限制。
S802、上述第一子芯片基于方向坐标系以较小带宽消耗原则向上述目的子芯片发送上述第一数据包中的数据,该较小带宽消耗原则为以较小的传输带宽将该数据送达该目的子芯片的原则;该方向坐标系以该第一子芯片为中心构建。
首先介绍一下以第一子芯片为中心构建的方向坐标系。图10示例性示出了以第一子芯片为中心构建的方向坐标系的示意图。可以看到,该方向坐标系包括四个方向轴:第一方向轴、第二方向轴、第三方向轴和第四方向轴。该四个方向轴均是以第一子芯片为中心向外发散。其中,第一方向轴和第二方向轴共线且方向相反;第三方向轴和第四方向轴共线且方向相反。该方向坐标系还包括四个区域:第一区域、第二区域、第三区域和第四区域。其中,该第一区域以该第一方向轴和该第三方向轴为边界;该第二区域以该第二方向轴和该第三方向轴为边界;该第三区域以该第二方向轴和该第四方向轴为边界,该第四区域以该第一方向轴和该第四方向轴为边界。
在芯片系统中,该第一子芯片所在的行位于该第一方向轴和该第二方向轴中的至少一个方向轴上,该第一子芯片所在的列位于该第三方向轴和该第四方向轴中的至少一个方向轴上。示例性地可以参见图11。假设芯片系统中的子芯片5为第一子芯片,那么,以该子芯片5为中心建立方向坐标系。在该方向坐标系中,该子芯片5所述的第二行位于第一方向轴和第二方向轴上,该子芯片5所述的第二列位于第三方向轴和第四方向轴上。然后,子芯片2和子芯片3位于该方向坐标系的第一区域。子芯片0位于该方向坐标系的第二区域。子芯片8和子芯片12位于该方向坐标系的第三区域。子芯片10、子芯片11、子芯片14和子芯片15位于该方向坐标系的第四区域。
一种可能的实施方式中,若上述图11的芯片系统中子芯片0第一子芯片,那么,以该子芯片0为中心建立方向坐标系。在该方向坐标系中,该子芯片0所述的第一行位于第一方向轴上,该子芯片0所述的第一列位于第四方向轴上。然后,除了子芯片0所在的行和所在的列的子芯片,其余子芯片均位于该方向坐标系的第四区域。
一种可能的实施方式中,上述第一子芯片基于方向坐标系以较小带宽消耗原则向上述目的子芯片发送上述第一数据包中的数据包括:在上述第一数据包中包括的目的子芯片处于目标方向轴上的情况下,上述第一子芯片沿着该目标方向轴的方向发送该第一数据包的数据;该目标方向轴为该第一方向轴、该第二方向轴、该第三方向轴或该第四方向轴。为了便于理解,结合上述图11为例说明。
在图11中,假设子芯片5为上述第一子芯片,其接收到一个数据包,该数据包中的目的子芯片的标识指示目的子芯片为子芯片7。若该数据包中只包括一个目的子芯片的标识,那么,由于该子芯片7位于第一方向轴上,因此,子芯片5沿着该第一方向轴的方向发送该数据包。即子芯片5先将数据包发送给子芯片6,再由子芯片6转发给子芯片7。若该数据包中包括多个目的子芯片的标识,作为其中一个目的子芯片的子芯片7位于第一方向轴上。因此,子芯片5复制一份该数据包中的数据新生成一个数据包,并将该新的数据包沿着该第一方向轴的方向发送。即子芯片5先将该新的数据包发送给子芯片6,再由子芯片6转发给子芯片7。该新生成的数据包包括该子芯片7的标识。
一种可能的实施方式中,上述第一数据包中包括第一目的子芯片和第二目的子芯片的标识。上述第一子芯片基于方向坐标系以较小带宽消耗原则向上述目的子芯片发送上述第一数据包中的数据包括:以上述第一子芯片为中心建立的方向坐标系中,在该第一目的子芯片和第二目的子芯片分别处于该坐标系的第一区域、第二区域、第三区域和第四区域中相邻的两个区域的情况下,该第一子芯片沿着共同方向轴的方向发送第二数据包。该第二数据包包括该数据、第一目的子芯片和第二目的子芯片的标识。该共同方向轴为该相邻的两个区域共同边界的方向轴。为了便于理解,结合上述图11为例说明。
在图11中,假设子芯片5为上述第一子芯片,其接收到一个数据包,该数据包中的目的子芯片的标识指示目的子芯片为子芯片8和子芯片14。子芯片8位于第三区域,子芯片14位于第四区域,该两个区域为相邻区域,共同的边界为第四方向轴。因此,子芯片5沿着该第四方向轴的方向发送该数据包。即子芯片5先将数据包发送给子芯片9,再由子芯片9进行进一步的转发。具体的,可以将子芯片9也看成是上述第一子芯片,以该子芯片9为中心建立方向坐标系,然后再基于上述较小带宽消耗原则转发数据。
一种可能的实施方式中,上述第一数据包中包括第一目的子芯片和第二目的子芯片的标识。上述第一子芯片基于方向坐标系以较小带宽消耗原则向上述目的子芯片发送上述第一数据包中的数据包括:以上述第一子芯片为中心建立的方向坐标系中,在该第一目的子芯片处于该坐标系的第一区域,该第二目的子芯片处于该第三区域的情况下,该第一子芯片沿着该第一区域两条边界的方向轴中的一个方向轴的方向发送第三数据包,并沿着该第三区域两条边界方向轴中的一个方向轴的方向发送第四数据包。该第三数据包包括该数据和该第一目的子芯片的标识。该第四数据包包括该数据和该第二目的子芯片的标识。为了便于理解,结合上述图11为例说明。
在图11中,假设子芯片5为上述第一子芯片,其接收到一个数据包,该数据包中的目的子芯片的标识指示目的子芯片为子芯片2和子芯片12。子芯片2位于第一区域,子芯片12位于第三区域。那么,子芯片5可以基于接收的数据包中的数据重新生成两个数据包:数据包A和数据包B。数据包A中包括数据和子芯片2的标识,数据包B中包括数据和子芯片12的标识。然后,沿着第一方向轴或第三方向轴的方向发送该数据包A。例如,沿着第一方向轴的方向发送数据包A,即先将数据包A发送给子芯片6,再由子芯片6将数据包A转发给子芯片2。另外子芯片5沿着第二方向轴或第四方向轴的方向发送该数据包B。例如,沿着第四方向轴的方向发送数据包B,即先将数据包B发送给子芯片9,再由子芯片9继续进一步转发。
一种可能的实施方式中,上述第一数据包中包括第一目的子芯片和第二目的子芯片的标识。上述第一子芯片基于方向坐标系以较小带宽消耗原则向上述目的子芯片发送上述第一数据包中的数据包括:以上述第一子芯片为中心建立的方向坐标系中,在该第一目的子芯片处于该坐标系的第二区域,该第二目的子芯片处于该第四区域的情况下,该第一子芯片沿着该第二区域两条边界的方向轴中的一个方向轴的方向发送第三数据包,并沿着该第四区域两条边界方向轴中的一个方向轴的方向发送第四数据包。该第三数据包包括该数据和该第一目的子芯片的标识。该第四数据包包括该数据和该第二目的子芯片的标识。为了便于理解,结合上述图11为例说明。
在图11中,假设子芯片5为上述第一子芯片,其接收到一个数据包,该数据包中的目的子芯片的标识指示目的子芯片为子芯片0和子芯片10。子芯片0位于第二区域,子芯片10位于第四区域。那么,子芯片5可以基于接收的数据包中的数据重新生成两个数据包:数据包C和数据包D。数据包C中包括数据和子芯片0的标识,数据包D中包括数据和子芯片10的标识。然后,沿着第二方向轴或第三方向轴的方向发送该数据包C。例如,沿着第二方向轴的方向发送数据包C,即先将数据包C发送给子芯片4,再由子芯片4将数据包C转发给子芯片0。另外子芯片5沿着第一方向轴或第四方向轴的方向发送该数据包D。例如,沿着第一方向轴的方向发送数据包D,即先将数据包D发送给子芯片6,再由子芯片6转发给子芯片10。
一种可能的实施方式中,上述第一数据包中包括第一目的子芯片和第二目的子芯片的标识。上述第一子芯片基于方向坐标系以较小带宽消耗原则向上述目的子芯片发送上述第一数据包中的数据包括:以上述第一子芯片为中心建立的方向坐标系中,在该第一目的子芯片处于目标区域中,该第二目的子芯片处于该目标区域边界的方向轴上的情况下,该第一子芯片沿着该目标区域边界方向轴的方向发送第五数据包。该第五数据包包括该数据和该第一目的子芯片和第二目的子芯片的标识。该目标区域为第一区域、第二区域、第三区域或第四区域。为了便于理解,结合上述图11为例说明。
在图11中,假设子芯片5为上述第一子芯片,其接收到一个数据包,该数据包中的目的子芯片的标识指示目的子芯片为子芯片14和子芯片9。子芯片14位于第四区域,子芯片9位于第四方向轴上。第四方向轴为该第四区域的边界方向轴,那么,子芯片5可以该接收的数据包沿着第四方向轴的方向发送,即发送给子芯片9。子芯片9接收到该数据包后,存储数据包中的数据。并复制一份该数据重新生成一个数据包。该新的数据包包括子芯片14的标识,然后将该新的数据包发送给子芯片13或者子芯片10,再由该子芯片13或者子芯片10转发给子芯片14。
一种可能的实现方式,上述第一子芯片还可以基于自身端口的拥塞情况来发送上述第一数据包中的数据。
具体的,基于上述关于芯片系统的介绍可知,每个子芯片包括多个与其它子芯片通信的端口。其中,每个端口配置有对应的发送缓冲区,该发送缓冲区用于存储待发送的数据。
上述第一子芯片接收到上述第一数据包之后,解析该第一数据包获知该第一数据包中的目的子芯片的标识。若该目的子芯片的标识指示该第一子芯片为目的子芯片,那么,该第一子芯片提取该第一数据包中的数据存储,以待后续处理。否则,该第一子芯片以该目的子芯片的标识为索引,在自身的转发映射表查找该第一数据包的发送端口。关于转发映射表的介绍可以参见前述关于图2的描述中对应的描述,此处不再赘述。若查找到的发送端口包括多个,那么,可以基于该多个发送端口的发送缓冲区的拥塞情况来确定具体的发送端口。具体的,为了提高数据的传输效率,可以选择该多个发送端口的发送缓冲区中待发送的数据量最少的端口来发送该第一数据包。
可选的,上述第一子芯片中的转发映射表可以是基于上述方向坐标系和上述较小带宽消耗原则来初始化的。示例性地,以图11为例,假设子芯片5为该第一子芯片,并假设子芯片2为目的子芯片,那么子芯片5基于构建的方向坐标系和较小带宽消耗原则可以确定:可以通过自身的端口d0或d1发送目的地为子芯片2的数据包。因此,在子芯片5的转发映射表中,目的地为子芯片2对应的发送端口为端口d0或d1。其它目的子芯片的情况可以参考此处的描述,不再赘述。
一种可能的实施方式中,若上述第一数据包中包括多个目的子芯片的标识,并且该第一子芯片为其中一个目的子芯片,那么,该第一子芯片提取该第一数据包中的数据存储,以待后续处理。并且,该第一子芯片会以剩下的目的子芯片的标识为索引在自身的转发映射表查找该第一数据包的数据的发送端口。
若上述剩下的目的子芯片的标识为一个,那么,同理,查找到对应的发送端口后,选择发送端口的发送缓冲区中待发送的数据量最少的端口来发送该第一数据包中的数据。具体的,该数据会被重新封装为一个数据包进行发送,该重新封装的数据包中的目的子芯片的标识不再包括第一子芯片的标识,只包括该剩下的目的子芯片的标识。
若上述剩下的目的子芯片的标识还有多个,那么,该第一子芯片在自身的转发映射表中分别查找对应的发送端口。若查找到的发送端口相同,那么,可以复制上述第一数据包包括的数据重新生成一个数据包,该新生成的数据包中包括该多个剩下的目的子芯片的标识。并将该新生成的数据包从查找到的相同的发送端口发送。同理,该发送端口可以是找到的发送端口中发送缓冲区待发送数据量最少的端口。
或者,若上述剩下的目的子芯片的标识还有多个,以两个为例,假设该剩下的目的子芯片为子芯片A和子芯片B。上述第一子芯片在自身的转发映射表中查找该子芯片A的标识映射的发送端口,以及查找该子芯片B的标识映射的发送端口。假设查找到的发送端口不同,那么,第一子芯片可以重新生成两个数据包:数据包A和数据包B。两个数据包均包括上述第一数据包包括的数据,其中数据包A包括的目的子芯片的标识为子芯片A的标识,数据包B包括的目的子芯片的标识为子芯片B的标识。然后,通过各自查找到的发送端口发送该数据包A和数据包B。同理,该发送端口可以是找到的发送端口中发送缓冲区待发送数据量最少的端口。
综上所述,本申请实施例通过基于芯片系统内的数据传输情况来传输接收到的数据,从而可以灵活调度数据的发送,提高数据的传输效率,进而提高芯片系统的处理性能。
上述主要对本申请实施例提供的芯片系统中的数据传输处理方法进行了介绍。可以理解的是,各个设备为了实现上述对应的功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本文中所公开的实施例描述的各示例的单元及步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图12示出了装置的一种具体的逻辑结构示意图,该装置可以是上述第一子芯片。该装置1200包括:
接收单元1201,用于接收第一数据包;其中,前述第一数据包包括目的子芯片的标识;前述装置1200和前述目的子芯片为芯片系统包括的子芯片,前述芯片系统中的多个子芯片以矩阵的形式排列,前述多个子芯片中的每个子芯片与周围相邻的子芯片连接;
发送单元1202,用于基于方向坐标系以较小带宽消耗原则向前述目的子芯片发送前述第一数据包中的数据,前述较小带宽消耗原则为以较小的传输带宽将前述数据送达前述目的子芯片的原则;
前述方向坐标系以前述装置1200为中心构建,前述方向坐标系包括第一方向轴、第二方向轴、第三方向轴和第四方向轴;前述装置1200所在的行位于方向相反的前述第一方向轴和前述第二方向轴中的至少一个方向轴上;前述装置1200所在的列位于方向相反的前述第三方向轴和前述第四方向轴中的至少一个方向轴上。
一种可能的实施方式中,前述发送单元1202具体用于:
在前述目的子芯片处于目标方向轴上的情况下,沿着前述目标方向轴的方向发送前述数据;前述目标方向轴为前述第一方向轴、前述第二方向轴、前述第三方向轴或前述第四方向轴。
一种可能的实施方式中,前述方向坐标系还包括第一区域、第二区域、第三区域和第四区域;前述第一区域以前述第一方向轴和前述第三方向轴为边界,前述第二区域以前述第二方向轴和前述第三方向轴为边界,前述第三区域以前述第二方向轴和前述第四方向轴为边界,前述第四区域以前述第一方向轴和前述第四方向轴为边界;
前述第一数据包中包括第一目的子芯片和第二目的子芯片的标识;前述发送单元1202具体用于:
在前述第一目的子芯片和第二目的子芯片分别处于前述第一区域、第二区域、第三区域和第四区域中相邻的两个区域的情况下,沿着共同方向轴的方向发送第二数据包;前述第二数据包包括前述数据、第一目的子芯片和第二目的子芯片的标识;前述共同方向轴为前述相邻的两个区域共同边界的方向轴。
一种可能的实施方式中,前述方向坐标系还包括第一区域、第二区域、第三区域和第四区域;前述第一区域以前述第一方向轴和前述第三方向轴为边界,前述第二区域以前述第二方向轴和前述第三方向轴为边界,前述第三区域以前述第二方向轴和前述第四方向轴为边界,前述第四区域以前述第一方向轴和前述第四方向轴为边界;
前述第一数据包中包括第一目的子芯片和第二目的子芯片的标识;前述发送单元1202具体用于:
在前述第一目的子芯片处于前述第一区域,前述第二目的子芯片处于前述第三区域的情况下,沿着前述第一区域两条边界的方向轴中的一个方向轴的方向发送第三数据包,并沿着前述第三区域两条边界方向轴中的一个方向轴的方向发送第四数据包;前述第三数据包包括前述数据和前述第一目的子芯片的标识,前述第四数据包包括前述数据和前述第二目的子芯片的标识。
一种可能的实施方式中,前述方向坐标系还包括第一区域、第二区域、第三区域和第四区域;前述第一区域以前述第一方向轴和前述第三方向轴为边界,前述第二区域以前述第二方向轴和前述第三方向轴为边界,前述第三区域以前述第二方向轴和前述第四方向轴为边界,前述第四区域以前述第一方向轴和前述第四方向轴为边界;
前述第一数据包中包括第一目的子芯片和第二目的子芯片的标识;前述发送单元1202具体用于:
在前述第一目的子芯片处于目标区域中,前述第二目的子芯片处于前述目标区域边界的方向轴上的情况下,沿着前述目标区域边界方向轴的方向发送第五数据包,前述第五数据包包括前述数据和前述第一目的子芯片和第二目的子芯片的标识;前述目标区域为第一区域、第二区域、第三区域或第四区域。
一种可能的实施方式中,前述装置1200包括多个端口,前述多个端口中每个端口与另一个子芯片连接,前述每个端口对应有一个发送缓冲区,前述发送缓冲区用于存放待发送的数据;
前述装置1200还包括选择单元,用于:
存在至少两个端口发送前述数据的情况下,选择第一端口发送前述数据;前述第一端口为前述至少两个端口中发送缓冲区内待发送的数据量最少的端口。
一种可能的实施方式中,前述第一数据包包括的目的子芯片的标识为多个,前述多个目的子芯片的标识中包括前述装置1200的标识;前述装置1200还包括:
存储单元,用于存储前述第一数据包中的数据;
封装单元,用于将前述数据重新封装获得第六数据包;
前述发送单元1202,还用于向除前述装置1200之外的目的子芯片发送前述第六数据包。
图13所示为本申请提供的装置的一种具体的硬件结构示意图。该装置1300可以是上述第一子芯片。该装置1300包括:处理器1301、存储器1302和通信端口1303。处理器1301、通信端口1303以及存储器1302可以相互连接或者通过总线1304相互连接。
示例性的,存储器1302用于存储装置1300的计算机程序和数据,存储器1302可以包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-onlymemory,ROM)、可擦除可编程只读存储器(erasable programmable read only memory,EPROM)或便携式只读存储器(compact disc read-only memory,CD-ROM)等。示例性的,该存储器1302可以是上述图2中所示的静态存储器。
通信端口1303包括发送端口和接收端口,通信端口1303的个数可以为多个,用于支持装置1300进行通信,例如接收或发送数据或消息等。示例性地,该通信端口1303可以是上述图2中所示的端口d0、d1、d2和d3。
示例性的,处理器1301可以是中央处理器单元、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。示例性地,该处理器1301可以是上述图2中所示的处理模块。该处理器1301可以用于读取上述存储器1302中存储的程序,使得装置1300执行如上述图8及其具体的实施例中所述的第一子芯片执行的操作。
图13所示装置1300中各个单元的具体操作以及有益效果可以参见上述图8及其具体的方法实施例中对应的描述,此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行上述图8及其可能的方法实施例中任一实施例所述的第一子芯片执行的操作。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品被计算机读取并执行时,上述图8及其可能的方法实施例中任一实施例所述的第一子芯片执行的操作将被实现。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种芯片系统中的数据传输处理方法,其特征在于,所述方法包括:
第一子芯片接收第一数据包;其中,所述第一数据包包括目的子芯片的标识;所述第一子芯片和所述目的子芯片为芯片系统包括的子芯片,所述芯片系统中的多个子芯片以矩阵的形式排列,所述多个子芯片中的每个子芯片与周围相邻的子芯片连接;
所述第一子芯片基于方向坐标系以较小带宽消耗原则向所述目的子芯片发送所述第一数据包中的数据,所述较小带宽消耗原则为以较小的传输带宽将所述数据送达所述目的子芯片的原则;
所述方向坐标系以所述第一子芯片为中心构建,所述方向坐标系包括第一方向轴、第二方向轴、第三方向轴和第四方向轴;所述第一子芯片所在的行位于方向相反的所述第一方向轴和所述第二方向轴中的至少一个方向轴上;所述第一子芯片所在的列位于方向相反的所述第三方向轴和所述第四方向轴中的至少一个方向轴上。
2.根据权利要求1所述的方法,其特征在于,所述第一子芯片基于方向坐标系以较小带宽消耗原则向所述目的子芯片发送所述第一数据包中的数据包括:
在所述目的子芯片处于目标方向轴上的情况下,所述第一子芯片沿着所述目标方向轴的方向发送所述数据;所述目标方向轴为所述第一方向轴、所述第二方向轴、所述第三方向轴或所述第四方向轴。
3.根据权利要求1所述的方法,其特征在于,所述方向坐标系还包括第一区域、第二区域、第三区域和第四区域;所述第一区域以所述第一方向轴和所述第三方向轴为边界,所述第二区域以所述第二方向轴和所述第三方向轴为边界,所述第三区域以所述第二方向轴和所述第四方向轴为边界,所述第四区域以所述第一方向轴和所述第四方向轴为边界;
所述第一数据包中包括第一目的子芯片和第二目的子芯片的标识;所述第一子芯片基于方向坐标系以较小带宽消耗原则向所述目的子芯片发送所述第一数据包中的数据包括:
在所述第一目的子芯片和第二目的子芯片分别处于所述第一区域、第二区域、第三区域和第四区域中相邻的两个区域的情况下,所述第一子芯片沿着共同方向轴的方向发送第二数据包;所述第二数据包包括所述数据、第一目的子芯片和第二目的子芯片的标识;所述共同方向轴为所述相邻的两个区域共同边界的方向轴。
4.根据权利要求1所述的方法,其特征在于,所述方向坐标系还包括第一区域、第二区域、第三区域和第四区域;所述第一区域以所述第一方向轴和所述第三方向轴为边界,所述第二区域以所述第二方向轴和所述第三方向轴为边界,所述第三区域以所述第二方向轴和所述第四方向轴为边界,所述第四区域以所述第一方向轴和所述第四方向轴为边界;
所述第一数据包中包括第一目的子芯片和第二目的子芯片的标识;所述第一子芯片基于方向坐标系以较小带宽消耗原则向所述目的子芯片发送所述第一数据包中的数据包括:
在所述第一目的子芯片处于所述第一区域,所述第二目的子芯片处于所述第三区域的情况下,所述第一子芯片沿着所述第一区域两条边界的方向轴中的一个方向轴的方向发送第三数据包,并沿着所述第三区域两条边界方向轴中的一个方向轴的方向发送第四数据包;所述第三数据包包括所述数据和所述第一目的子芯片的标识,所述第四数据包包括所述数据和所述第二目的子芯片的标识。
5.根据权利要求1所述的方法,其特征在于,所述方向坐标系还包括第一区域、第二区域、第三区域和第四区域;所述第一区域以所述第一方向轴和所述第三方向轴为边界,所述第二区域以所述第二方向轴和所述第三方向轴为边界,所述第三区域以所述第二方向轴和所述第四方向轴为边界,所述第四区域以所述第一方向轴和所述第四方向轴为边界;
所述第一数据包中包括第一目的子芯片和第二目的子芯片的标识;所述第一子芯片基于方向坐标系以较小带宽消耗原则向所述目的子芯片发送所述第一数据包中的数据包括:
在所述第一目的子芯片处于目标区域中,所述第二目的子芯片处于所述目标区域边界的方向轴上的情况下,所述第一子芯片沿着所述目标区域边界方向轴的方向发送第五数据包,所述第五数据包包括所述数据和所述第一目的子芯片和第二目的子芯片的标识;所述目标区域为第一区域、第二区域、第三区域或第四区域。
6.根据权利要求1所述的方法,其特征在于,所述第一子芯片包括多个端口,所述多个端口中每个端口与另一个子芯片连接,所述每个端口对应有一个发送缓冲区,所述发送缓冲区用于存放待发送的数据;
所述方法还包括:
存在至少两个端口发送所述数据的情况下,所述第一子芯片选择第一端口发送所述数据;所述第一端口为所述至少两个端口中发送缓冲区内待发送的数据量最少的端口。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述第一数据包包括的目的子芯片的标识为多个,所述多个目的子芯片的标识中包括所述第一子芯片的标识;所述方法还包括:
所述第一子芯片存储所述第一数据包中的数据;
所述第一子芯片将所述数据重新封装获得第六数据包;
所述第一子芯片向除所述第一子芯片之外的目的子芯片发送所述第六数据包。
8.一种子芯片,其特征在于,所述子芯片为第一子芯片,所述第一子芯片包括:
接收单元,用于接收第一数据包;其中,所述第一数据包包括目的子芯片的标识;所述第一子芯片和所述目的子芯片为芯片系统包括的子芯片,所述芯片系统中的多个子芯片以矩阵的形式排列,所述多个子芯片中的每个子芯片与周围相邻的子芯片连接;
发送单元,用于基于方向坐标系以较小带宽消耗原则向所述目的子芯片发送所述第一数据包中的数据,所述较小带宽消耗原则为以较小的传输带宽将所述数据送达所述目的子芯片的原则;
所述方向坐标系以所述第一子芯片为中心构建,所述方向坐标系包括第一方向轴、第二方向轴、第三方向轴和第四方向轴;所述第一子芯片所在的行位于方向相反的所述第一方向轴和所述第二方向轴中的至少一个方向轴上;所述第一子芯片所在的列位于方向相反的所述第三方向轴和所述第四方向轴中的至少一个方向轴上。
9.一种子芯片,其特征在于,包括处理器、存储器和通信端口;其中,所述存储器和通信端口与所述处理器耦合,所述通信端口用于收发数据,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述子芯片执行如权利要求1-7任一项所述的方法;
所述子芯片为芯片系统包括的子芯片,所述芯片系统中的多个子芯片以矩阵的形式排列,所述多个子芯片中的每个子芯片与周围相邻的子芯片连接。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1-7任意一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111633357.XA CN114297130A (zh) | 2021-12-28 | 2021-12-28 | 芯片系统中的数据传输处理方法及相关装置 |
PCT/CN2022/099849 WO2023123905A1 (zh) | 2021-12-28 | 2022-06-20 | 芯片系统中的数据传输处理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111633357.XA CN114297130A (zh) | 2021-12-28 | 2021-12-28 | 芯片系统中的数据传输处理方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114297130A true CN114297130A (zh) | 2022-04-08 |
Family
ID=80971560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111633357.XA Pending CN114297130A (zh) | 2021-12-28 | 2021-12-28 | 芯片系统中的数据传输处理方法及相关装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114297130A (zh) |
WO (1) | WO2023123905A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023123905A1 (zh) * | 2021-12-28 | 2023-07-06 | 深圳云天励飞技术股份有限公司 | 芯片系统中的数据传输处理方法及相关装置 |
CN117041186A (zh) * | 2023-10-07 | 2023-11-10 | 苏州仰思坪半导体有限公司 | 数据传输方法、芯片系统、计算设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961782B1 (en) * | 2000-03-14 | 2005-11-01 | International Business Machines Corporation | Methods for routing packets on a linear array of processors |
GB0710377D0 (en) * | 2007-05-31 | 2007-07-11 | Univ Reading The | Processors |
CN113597621A (zh) * | 2018-12-29 | 2021-11-02 | 华为技术有限公司 | 计算资源分配技术及神经网络系统 |
CN112822124B (zh) * | 2020-12-31 | 2022-11-22 | 深圳云天励飞技术股份有限公司 | 多芯片通信系统、方法、芯片及存储介质 |
CN114328623A (zh) * | 2021-12-28 | 2022-04-12 | 深圳云天励飞技术股份有限公司 | 芯片系统中的数据传输处理方法及相关装置 |
CN114297130A (zh) * | 2021-12-28 | 2022-04-08 | 深圳云天励飞技术股份有限公司 | 芯片系统中的数据传输处理方法及相关装置 |
-
2021
- 2021-12-28 CN CN202111633357.XA patent/CN114297130A/zh active Pending
-
2022
- 2022-06-20 WO PCT/CN2022/099849 patent/WO2023123905A1/zh unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023123905A1 (zh) * | 2021-12-28 | 2023-07-06 | 深圳云天励飞技术股份有限公司 | 芯片系统中的数据传输处理方法及相关装置 |
CN117041186A (zh) * | 2023-10-07 | 2023-11-10 | 苏州仰思坪半导体有限公司 | 数据传输方法、芯片系统、计算设备及存储介质 |
CN117041186B (zh) * | 2023-10-07 | 2024-01-30 | 苏州仰思坪半导体有限公司 | 数据传输方法、芯片系统、计算设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023123905A1 (zh) | 2023-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7865654B2 (en) | Programmable bridge header structures | |
US8526422B2 (en) | Network on chip with partitions | |
US8312197B2 (en) | Method of routing an interrupt signal directly to a virtual processing unit in a system with one or more physical processing units | |
CN103580890B (zh) | 一种可重配置片上网络结构及其配置方法 | |
CN108270676B (zh) | 一种基于Intel DPDK的网络数据处理方法及装置 | |
CN114328623A (zh) | 芯片系统中的数据传输处理方法及相关装置 | |
EP2486715B1 (en) | Smart memory | |
CN114297130A (zh) | 芯片系统中的数据传输处理方法及相关装置 | |
US20090282211A1 (en) | Network On Chip With Partitions | |
CN110995598B (zh) | 一种变长报文数据处理方法和调度装置 | |
CN106648896B (zh) | 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 | |
US20230275832A1 (en) | Networking processor and network device | |
CN110958189B (zh) | 一种多核fpga网络处理器 | |
CN111630505A (zh) | 深度学习加速器系统及其方法 | |
CN107870879A (zh) | 一种数据搬移方法、加速器板卡、主机及数据搬移系统 | |
CN114647602B (zh) | 一种跨芯片访问控制的方法、装置、设备及介质 | |
CN106844263B (zh) | 一种基于可配置的多处理器计算机系统及实现方法 | |
CN104378161A (zh) | 一种基于AXI4总线架构的FCoE协议加速引擎IP核 | |
CN117493237B (zh) | 计算设备、服务器、数据处理方法和存储介质 | |
CN116303225A (zh) | 一种数据流驱动的可重构处理器芯片及可重构处理器集群 | |
US10614026B2 (en) | Switch with data and control path systolic array | |
US11704270B2 (en) | Networked computer with multiple embedded rings | |
CN105407045A (zh) | 基于安全隔离的路由器虚拟化方法 | |
CN112867998B (zh) | 运算加速器、交换器、任务调度方法及处理系统 | |
US8291033B2 (en) | Combining multiple hardware networks to achieve low-latency high-bandwidth point-to-point communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |