具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了高效支持芯片之间互联,芯片互联的增强型多通道链路层机制被提出,增强型链路层可适配chiplet(芯粒)级的片间互联协议或IO(输入/输出)级的片间互联协议,chiplet是利用先进封装技术将多个异构芯片裸片(Die)整合集成为特定功能的系统芯片,IO级的片间互联是芯片封装外部的IO接口以实现芯片的互联,常用的协议有PCIE等。该机制可以适用任何需要芯片之间互联的情形,尤其是对于高性能计算产品,通过该机制可以提高互联带宽的利用率的同时,减少芯片之间互联路径的延迟。
图1A示出了一种芯片互联的示意图。
如图1A所示,可以采用PCIe switch(交换芯片)来实现多个芯片(如CHIP1-CHIP7)间的互联以及多个芯片与控制芯片(host)之间的互联,PCIe switch内部的电路主要是路由逻辑组成,通过PCIe switch可以实现任意两个设备之间点对点传输。
图1A所示的互联方案,每个芯片只需连接PCIe switch即可,需要的接口较少,但是存在较多缺点,例如,整体带宽低较低,如果多个设备经过PCIE switch路由同时访问一条链路,容易产生对链路使用的竞争关系,导致链路堵塞。并且,这种互联方案的延迟较大,芯片间的互联必须通过PCIE switch转发,导致较大的延迟。此外,PCIE协议是点对点协议,不支持多播方式传输。
图1B示出了另一种芯片互联的示意图。
如图1B所示,多个芯片可以通过OAM(OCP Accelerator Module,开放加速模组)方式互联,最多可以支持8个芯片(如CHIP0~CHIP7)互联,形成一个全互联网络。每个芯片支持与其他7个芯片组合一个8芯片互联方案,任意两个芯片之间都有一条专用链路,实现芯片之间的互联方案。任意两个芯片之间,可以加入信号调理芯片(Retimer),其功能是增强信号,减少信号的抖动,以实现增加传输距离的目的。
图1B所示的互联方案,由于每两个芯片之间都有一条专用链路,因而延迟较小,但是每个芯片设置的高速接口过多,过多地占用了片上资源,对于8芯片互联加上与host节点之间互联,每个芯片需要8个PCIE子系统。并且,在这种互联方案中,片间互联传输的数据会对片上网络的带宽增加额外的压力,同时片上网络带宽限制了片间互联带宽的利用率。此外,互联通道端口过多导致功耗过大。
因此,对于以上两种方案,在接口较少的情况下延迟较大,在延迟较少的情况下需要设置较多的接口,不能兼具接口少和延时短的效果。
本公开至少一个实施例提供一种芯片、芯片互联系统、数据传输方法、电子设备和计算机可读存储介质。该芯片包括功能模块和多个接口,多个接口分别用于连接与芯片进行通信的多个目标芯片;每个接口至少包括第一通道和第二通道,每个接口的第一通道配置为将接口接收的目标数据包转发给功能模块,目标数据包为与接口连接的目标芯片发送的数据包;每个接口的第二通道配置为在芯片内与多个接口中的另一接口连接,以将接口接收的目标数据包发送至另一接口并通过另一接口将目标数据包转发给与另一接口连接的目标芯片。
根据本公开至少一实施例,通过在芯片的每个接口至少设置第一通道和第二通道,可以使芯片本身具有接收和转发数据包的功能,例如芯片可以从一个目标芯片接收目标数据包并且可以把目标数据包转发给至少另一个目标芯片,每个芯片不仅可以作为数据接收装置还可以作为数据转发装置,可以实现与其连接的至少两个目标芯片的互联。基于本公开实施例提供的芯片,可以利用较少的接口实现多芯片的互联,并且可以使得芯片之间的传输延迟较小。
图2示出了本公开至少一实施例提供的一种芯片的示意图。
如图2所示,芯片100包括多个接口110和功能模块120,多个接口110分别用于连接与芯片进行通信的多个目标芯片200,每个接口110至少包括第一通道C1和第二通道C2,每个接口110的第一通道C1配置为将接口110接收的目标数据包转发给功能模块120,其中,目标数据包为与接口110连接的目标芯片200发送的数据包。每个接口110的第二通道C2配置为在芯片内与多个接口110中的另一接口连接,以将一个接口接收的目标数据包发送至另一接口并通过该另一接口将目标数据包转发给与该另一接口连接的目标芯片200。
例如,多个接口至少包括第一接口111和第二接口112,第一接口111和第二接口112分别与目标芯片201和目标芯片202连接。第二接口112的第一通道C1与芯片内的功能模块120连接,第二接口112的第二通道C2与第一接口111连接,以通过第一接口111将第二接口112接收的目标数据包转发给与第一接口111连接的目标芯片。
例如,在本公开的至少一个实施例中,芯片100和目标芯片200可以包括但不限于GPU(Graphics Processing Unit,图形处理器)芯片、CPU(Central Processing Unit,中央处理器)芯片、TPU(Tensor Processing Unit,张量处理器)芯片、DPU(Deep learningProcessing Unit,深度学习处理器)芯片、AI加速器芯片等类型的芯片中的至少一种;又例如,在本公开的至少一个实施例中,芯片100和目标芯片200可以是多核芯片、多晶粒(die)芯片或基于chiplet(芯粒)的异构集成芯片等。在本公开的至少一个实施例中,芯片100和目标芯片200也可以是单核芯片或单晶粒芯片等。需要说明的是,在实际应用中,芯片100和目标芯片200的类型可以根据实际需求而设置,芯片100和目标芯片200可以是任意架构的芯片,不限于本公开的实施例所述的芯片100和目标芯片200的类型。
例如,芯片可以包括多个功能模块120,功能模块可以包括计算模块、存储模块或其他模块。
例如,每个接口的第一通道C1与功能模块120连接,例如,芯片还可以包括互联模块,互联模块用于将多个接口与功能模块互联,每个接口的第一通道C1与互联模块连接,以通过互联模块将目标数据包转发给功能模块,或通过互联模块接收来自功能模块的待发送数据包。互联模块例如包括片上网络(Network on Chip,NoC)130,每个接口的第一通道C1可以通过片上网络130与功能模块120连接。
例如,每个芯片可以包括两个或以上的接口,如图2所示,在芯片包括两个接口(如接口111和112)的情况下,该两个接口的第一通道C1可以均与功能模块120连接(例如通过片上网络130连接),该两个接口的第二通道C2可以互联。在芯片包括三个或以上接口的情况下,每个接口的第二通道C2可以与另一个接口相连,例如与相邻的接口相连。例如,在一些实施例中,接口的第二通道C2可以通过连接线与另一接口连接,而无需通过芯片的片上网络连接,因而无需占用芯片的片上网络,节省片上资源。
例如,每个接口至少包括两个通道,还可以包括更多通道。例如,在一些实施例中,每个接口除了包括第一通道C1和第二通道C2外,例如还可以包括第三通道。
例如,多个接口在芯片内依次连接以形成闭环连接结构,例如多个接口在芯片内通过连接线直接连接。多个接口包括闭环连接结构中依次连接的第一接口、第二接口和第三接口。每个接口还可以包括第三通道,第二接口的第二通道和第三通道分别与第三接口和第一接口连接,以通过第一接口将第二接口接收的目标数据包转发给与第一接口连接的目标芯片,或者通过第三接口将第二接口接收的目标数据包转发给与第三接口连接的目标芯片。
例如,第二接口的第三通道与第一接口通过连接线连接,以将第二接口接收的目标数据包通过连接线发送至第一接口,或使第二接口通过连接线接收第一接口的目标数据包。第二接口的第二通道与第三接口通过连接线连接,以将第二接口接收的目标数据包通过连接线发送至第三接口,或使第二接口通过连接线接收第三接口的目标数据包。
例如,第三通道的功能与第二通道的功能相同,可以将接口接收的目标数据包转发给芯片中除与第二通道相连的接口外的另一接口,也就是说,每个接口的第二通道和第三通道可以分别与另外两个接口相连,能够将当前接口接收的目标数据包分别发送给该另外两个接口,以通过该另外两个接口将目标数据包发送给两个目标芯片。
例如,该第一接口、第二接口和第三接口为闭环连接结构中任意三个依次连接的接口。也就是说,多个接口中任意三个依次相邻的接口均可以参见该第一接口、第二接口和第三接口的结构、连接关系和数据包传输关系,任意三个依次相邻的三个接口中位于中间的可以作为第二接口,位于第二接口两侧的两个接口可以分别作为第一接口和第三接口。
图3示出了本公开至少一实施例提供的另一种芯片的示意图。
如图3所示,芯片100除了包括第一接口111和第二接口112之外,还可以包括第三接口113。每个接口与一个目标芯片200连接,例如,第一接口111、第二接口112和第三接口113分别与目标芯片201、目标芯片202和目标芯片203连接。第一接口111、第二接口112和第三接口113可以均包括第一通道C1、第二通道C2和第三通道C3。每个接口的第一通道C1均通过片上网络130与功能模块(图3未示出)连接,每个接口的第二通道C2与相邻的接口连接,例如,第一接口111的第二通道C2与第二接口112连接,第二接口112的第二通道C2与第三接口113连接,第三接口113的第二通道C2与第一接口111连接。以此,使得第一接口111、第二接口112和第三接口113依次连接,形成闭环连接结构。每个接口的第二通道C2例如可以与另一接口的第三通道C3连接,例如,第一接口111的第二通道C2与第一接口111的第三通道C3连接,第二接口112的第二通道C2与第三接口113的第三通道C3连接,第三接口113的第二通道C2与第一接口111的第三通道C3连接。
图4示出了本公开至少一实施例提供的再一种芯片的示意图。
如图4所示,芯片100除了包括第一接口111、第二接口112和第三接口113之外,还可以包括第四接口114。每个接口与一个目标芯片200连接,例如,第一接口111、第二接口112、第三接口113和第四接口114分别与目标芯片201、目标芯片202、目标芯片203和目标芯片204连接。第一接口111、第二接口112、第三接口113和第四接口114可以均包括第一通道C1、第二通道C2和第三通道C3。每个接口的第一通道C1均通过片上网络130与功能模块(图4未示出)连接,每个接口的第二通道C2与相邻的接口连接,例如,第一接口111的第二通道C2与第二接口112连接,第二接口112的第二通道C2与第三接口113连接,第三接口113的第二通道C2与第四接口114连接,第四接口114的第二通道C2与第一接口111连接。以此,使得第一接口111、第二接口112、第三接口113和第四接口114依次连接,形成闭环连接结构。
例如,在芯片包括三个或以上接口并且每个接口包括第一通道C1、第二通道C2和第三通道C3的情况下,每个接口的第二通道C2可以与另一接口的第三通道C3连接。例如,如图3和图4所示,第二接口112的第三通道C3与第一接口111的第二通道C2通过连接线连接,第三接口113的第三通道C3与第二接口112的第二通道C2通过连接线连接。
例如,在一些实施例中,还可以包括第五接口、第六接口等更多接口,参照图3或图4,每个接口的第一通道与功能模块连接,接口的第二通道与相邻的另一接口连接,例如可以与另一接口的第三通道C3连接,以此,使得多个接口在芯片内依次连接,形成闭环连接结构。
例如,每个接口从与其相连的目标芯片200接收到目标数据包之后,一些实施例中,可以将目标数据包通过第一通道C1转发给芯片100的功能模块,以使功能模块基于目标数据包进行计算、存储等操作。在另一些实施例中,可以将目标数据包通过第二通道C2转发给另一接口,以使该另一接口将目标数据包转发给与该另一接口相连的目标芯片。例如,参见图2至图4,第二接口112接收来自于目标芯片202的目标数据包后,可以通过第二接口112的第一通道C1将目标数据包发送给功能模块,在另一些实施例中,第二接口112也可以通过第二通道C2将目标数据包转发给第三接口113,第三接口113接收到来自于第二接口112的第二通道C2的目标数据包后,可以将目标数据包发送给目标芯片203。在另一些实施例中,第二接口112也可以通过第三通道C3将来自于目标芯片202的目标数据包发送给第一接口111,第一接口111接收到来自于第二接口112的第三通道C3的目标数据包后,可以将目标数据包发送给目标芯片201。
图5示出了本公开至少一实施例提供的一种芯片互联的示意图。
如图5所示,多个芯片通过彼此的多个接口连接以通信,例如,5个芯片CHIP1-CHIP5通过彼此的多个接口依次连接,形成一个芯片互联系统。芯片CHIP1-CHIP5中的每个芯片可以具有如图2所示的接口结构,即每个芯片具有两个接口,每个接口具有第一通道和第二通道,5个芯片CHIP1-CHIP5通过各自的两个接口依次首尾连接形成闭环结构。芯片CHIP1-CHIP5中每个芯片可以将数据包发送给直接相连的两个芯片,还可以通过直接相连的两个芯片将数据包发送给另外两个芯片。
例如,芯片CHIP1可以将数据包发送给芯片CHIP2和芯片CHIP5,由于芯片CHIP2具有两个接口并且每个接口具有第一通道C1和第二通道C2,因此,芯片CHIP2不仅可以将芯片CHIP1发送的数据包通过第一通道C1转发给自己的功能模块,还可以通过第二通道C2将芯片CHIP1发送的数据包转发给芯片CHIP3,同理,由于芯片CHIP5具有两个接口并且每个接口具有第一通道C1和第二通道C2,因此,芯片CHIP5不仅可以将芯片CHIP1发送的数据包通过第一通道C1转发给自己的功能模块,还可以通过第二通道C2将芯片CHIP1发送的数据包转发给芯片CHIP4。
例如,芯片CHIP3可以将数据包发送给芯片CHIP2和芯片CHIP4,再通过芯片CHIP2和芯片CHIP4转发给芯片CHIP1和芯片CHIP5。
因此,通过图5所示的芯片互联结构以及图2所示的接口结构,实现了5个芯片CHIP1-CHIP5的互联,每个芯片发出的数据包均可以到达任意芯片,每个芯片发出的数据包最多经过一个芯片就可以到达任意芯片。若两个直接相连的芯片之间的传输延迟称为一个单位的延迟,那么在芯片互联结构中,一个芯片发出的数据包到达任意芯片的延迟最大为两个单位的延迟,因此,任意两个芯片之间的传输延迟较小。
图6示出了本公开至少一实施例提供的另一种芯片互联的示意图。
如图6所示,6个芯片CHIP1-CHIP6通过彼此的多个接口连接,形成一个芯片互联系统,芯片CHIP1-CHIP6中的每个芯片可以具有如图3所示的接口结构,即每个芯片具有三个接口,并且每个接口具有第一通道、第二通道和第三通道。例如,芯片CHIP1-CHIP6通过各自的两个接口依次首尾相连行程闭环结构,并且闭环结构中相对的两个芯片可以通过各自的第三个接口相连,例如,芯片CHIP1和芯片CHIP4通过各自的第三个接口相连,芯片CHIP2和芯片CHIP5通过各自的第三个接口相连,芯片CHIP3和芯片CHIP6通过各自的第三个接口相连。例如,芯片CHIP1-CHIP6中每个芯片可以将数据包发送给直接相连的三个芯片,还可以通过直接相连的三个芯片中的部分芯片将数据包发送给另外两个芯片。
例如,芯片CHIP1可以将数据包发送给芯片CHIP2、芯片CHIP4和芯片CHIP6,芯片CHIP2、芯片CHIP4和芯片CHIP6不仅可以将芯片CHIP1发送的数据包通过各自的第一通道C1转发给自己的功能模块,还可以通过第二通道C2和/或第三通道C3将芯片CHIP1发送的数据包转发给芯片CHIP3和芯片CHIP5,芯片CHIP3和芯片CHIP5分别从芯片CHIP2、芯片CHIP4和芯片CHIP6中的哪个芯片接收CHIP1发送的数据包可以根据实际情况而定,以下的实施例中也会对数据包的转发机制进行详细描述。
因此,通过图6所示的芯片互联结构以及图3所示的接口结构,实现了6个芯片CHIP1-CHIP6的互联,每个芯片发出的数据包均可以到达任意芯片,每个芯片发出的数据包最多经过一个芯片就可以到达任意芯片,因此,数据包到达任意芯片的延迟最大为两个单位的延迟,任意两个芯片之间的传输延迟较小。
图7示出了本公开至少一实施例提供的再一种芯片互联的示意图。
如图7所示,9个芯片CHIP1-CHIP9通过彼此的多个接口连接,形成一个芯片互联系统,芯片CHIP1-CHIP9中的每个芯片可以具有如图4所示的接口结构,即每个芯片具有四个接口,并且每个接口具有第一通道、第二通道和第三通道。
例如,多个芯片可以排列为阵列,阵列中位于同一行的多个芯片依次连接形成闭环,阵列中位于同一列的多个芯片依次连接形成闭环。例如,芯片CHIP1-CHIP9可以形成一个3行3列的芯片矩阵,矩阵中同一行中的3个芯片通过各自的两个接口依次首尾相连形成闭环,同一列中的3个芯片通过其余两个接口依次首尾相连形成闭环。例如,芯片CHIP1-CHIP9中每个芯片可以将数据包发送给直接相连的四个芯片,还可以通过直接相连的四个芯片中将数据包转发给另外四个芯片。
例如,芯片CHIP5可以将数据包发送给芯片CHIP4、芯片CHIP2、芯片CHIP6和芯片CHIP8,芯片CHIP4、芯片CHIP2、芯片CHIP6和芯片CHIP8不仅可以将芯片CHIP5发送的数据包通过各自的第一通道C1转发给自己的功能模块,还可以通过第二通道C2和/或第三通道C3将芯片CHIP5发送的数据包转发给芯片CHIP1、芯片CHIP3、CHIP9和芯片CHIP7,芯片CHIP1、芯片CHIP3、CHIP9和芯片CHIP7分别从CHIP4、芯片CHIP2、芯片CHIP6和芯片CHIP8中的哪个芯片接收CHIP5发送的数据包可以根据实际情况而定,以下的实施例中也会对数据包的转发机制进行详细描述。
因此,通过图7所示的芯片互联结构以及图4所示的接口结构,实现了9个芯片CHIP1-CHIP9的互联,每个芯片发出的数据包均可以到达任意芯片,每个芯片发出的数据包最多经过一个芯片就可以到达任意芯片,因此,数据包到达任意芯片的延迟最大为两个单位的延迟,任意两个芯片之间的传输延迟较小。
例如,基于本公开至少一实施例的芯片形成的芯片互联系统中,每个芯片可以通过各自的接口直接连接M个芯片,然后通过该M个芯片间接连接N个芯片,形成具有(M+N+1)个芯片的互联系统,M和N均为大于等于2的整数。每个芯片包括的接口的数量可以少于芯片互联系统包括的多个芯片的数量,每个芯片包括的接口的数量进一步可以少于芯片互联系统中除当前芯片外的其他芯片的数量。例如,参考图5,芯片CHIP1包括的接口的数量2少于其他芯片(CHIP2-CHIP5)的数量4。参考图6,芯片CHIP1包括的接口的数量3少于其他芯片(CHIP2-CHIP6)的数量5。参考图7,芯片CHIP1包括的接口的数量4少于其他芯片(CHIP2-CHIP9)的数量8。
例如,对于图2和图5这种两通道两端口(即接口)互联协议的片间互联拓扑、图3和图6这种三通道三端口互联协议的片间互联拓扑、以及图4和图7这种三通道四端口互联协议的片间互联拓扑,均具有完全对称互联结构,支持片间低延迟数据传输。由于互联结构的完全对称性,任一芯片与其他芯片的互联关系相同。多通道互联协议可以用于不同物理形式的互联结构。配合短距离SerDes (SERializer(串行器)/DESerializer(解串器)的简称)及相应的互联协议,本公开实施例可以适用于chiplet的封装形式。若采用长距离SerDes及相应的互联协议,本公开实施例可以适用于板卡之间的互联。
例如,以上关于图5、图6和图7的实施例仅示出了有限种芯片互联结构和数据传输方式,但是,基于本公开至少一实施例提供的芯片,可以扩展出更多种芯片互联结构和数据传输方式。
根据本公开至少一实施例,通过在每个接口至少设置第一通道和第二通道,可以使芯片本身具有接收和转发数据包的功能,例如芯片可以从一个目标芯片接收目标数据包并且可以把目标数据包转发给至少另一个目标芯片,每个芯片不仅可以作为数据接收装置,还可以作为数据转发装置,可以实现与其连接的至少两个目标芯片的互联。相比于图1A所示的全部芯片均连接至一个数据转发装置的方案,本公开实施例提供的芯片能够使得芯片互联系统中的每个芯片既作为一个处理节点又作为一个数据转发装置,进而可以使得整体带宽增加,延迟减小。相比于图1B所示的OAM互联方案,本公开实施例提供的芯片设置的接口数量减少。因此,基于本公开实施例提供的芯片,可以利用较少的接口实现多芯片的互联,并且可以使得芯片之间的传输延迟较小。
例如,每个芯片在发出数据包之前可以先确定将数据包发送给哪些芯片,例如,可以根据芯片互联系统中各个芯片的连接关系确定数据包的转发路径,然后将转发路径信息标记在数据包中,以使接收数据包的芯片能够知道应该将数据包转发到哪,路径信息例如可以包括通道信息。
图8示出了本公开至少一实施例提供的一种多通道识别字段的示意图。
如图8所示,本公开至少一实施例提供了一种新的链路层协议,该新链路层协议也可以称为增强链路层协议,在点对点链路协议层上增加了多通道识别字段,并且在链路层协议中预留了杂项信息字段以备后续协议升级使用。为了保证新增字段的正确性,为其添加独立ECC(Error Correcting Code,错误检查和纠正)保护的功能。
例如,多通道识别字段可以包括目的通道字段和来源通道字段。目的通道字段包括与第一通道对应的第一目的字段(bit0)、与第二通道对应的第二目的字段(bit1)和与第三通道对应的第三目的字段(bit2)。源通道字段包括与第一通道对应的第一来源字段(bit3)、与第二通道对应的第二来源字段(bit4)和与第三通道对应的第三来源字段(bit5)。
图9示出了本公开至少一实施例提供的再一种芯片的示意图。
如图9所示,芯片的每个接口还包括解析模块140,解析模块140配置为从目标数据包中解析得到目的通道字段,并根据目的通道字段将目标数据包发送至接口的第一通道、第二通道和第三通道中的至少一个。每个接口还包括收发模块160,收发模块160配置为接收与接口连接的目标芯片发送的目标数据包,并将目标数据包发送至解析模块。
例如,解析模块配置为:若目的通道字段的第一目的字段为第一值(例如1),则将目标数据包发送至接口的第一通道,否则,不发送至第一通道;若目的通道字段的第二目的字段为第一值,则将目标数据包发送至接口的第二通道,否则,不发送至第二通道;以及若目的通道字段的第三目的字段为第一值,则将目标数据包发送至接口的第三通道,否则,不发送至第三通道。
例如,以图9中的第二接口112为例进行说明,第二接口112的收发模块160接收来自于目标芯片202的目标数据包之后,将目标数据包发送给解析模块140,解析模块140从目标数据包中解析得到目的通道字段,若目的通道字段中的第一目的字段为第一值(例如1)、第二目的字段和第三目的字段均为第二值(例如0),则解析模块140将目标数据包发送给第二接口112的第一通道C1,以通过第一通道C1将目标数据包发送给芯片中的功能模块。在另一些实施例中,若目的通道字段中的第一目的字段和第二目的字段均为第一值(例如1)、第三目的字段为第二值(例如0),则解析模块140将目标数据包发送给第二接口112的第一通道C1和第二通道C2,以通过第一通道C1将目标数据包发送给芯片中的功能模块,以及通过第二通道C2将目标数据包发送给第三接口113并进一步通过第三接口113将目标数据包发送给目标芯片203。
例如,根据以上至少一实施例,通过目的通道字段,可以简单快速地确定目标数据包对应的目的通道,并通过对应的目的通道实现对目标数据包的转发。
例如,每个接口还可以包括通道设置模块150,通道设置模块150配置为:接收来自于第一通道、第二通道和第三通道的待发送数据包,并至少根据待发送数据包的来源通道,为待发送数据包设置来源通道字段和目的通道字段。例如,在一些实施例中,可以仅根据待发送数据包的来源通道,设置来源通道字段和目的通道字段。在另一些实施例中,可以根据待发送数据包的来源通道和待发送数据包的传播范围(即待发送数据包所要传输到的目标芯片的范围),来设置目的通道字段。
例如,待发送数据包为需要从芯片发出的数据包,包括芯片的功能模块等模块生成的且需要通过接口发出的数据包,也包括从一个接口接收且需要通过另一个接口发出的数据包。例如,在图9所示的芯片100中,若某一功能模块生成了一个数据包,并通过片上网络130将数据包发送至第一接口111的第一通道C1,则该数据包为第一接口111的待发送数据包。再例如,若第二接口112从目标芯片202接收了一个目标数据包,并通过第三通道C3将该目标数据包发送至第一接口111的第二通道C2,则该目标数据包也是第一接口111的待发送数据包。
例如,每个接口的收发模块160还配置为:接收来自通道设置模块150的待发送数据包,并将待发送数据包发送至与所属接口连接的目标芯片。
例如,对于每个接口的通道设置模块150,若待发送数据包来源于接口的第一通道,则将待发送数据包的第一来源字段设置为第一值,将第二来源字段和第三来源字段设置为第二值;若待发送数据包来源于接口的第二通道,则将待发送数据包的第二来源字段设置为第一值,将第一来源字段和第三来源字段设置为第二值;若待发送数据包来源于接口的第三通道,则将待发送数据包的第三来源字段设置为第一值,将第一来源字段和第二来源字段设置为第二值。
例如,以图9所示的第一接口111为例,在一些实施例中,若片上网络130将数据包发送至第一接口111的第一通道C1,那么对于第一接口111来说,该数据包为待发送数据包,且该待发送数据包的来源通道为第一接口111的第一通道C1,这种情况下,可以将该待发送数据包对应的第一来源字段设置为第一值(例如1),第二来源字段和第三来源字段设置为第二值(例如0),即设置该待发送数据包的来源通道字段为100。在另一些实施例中,若第二接口112将接收的目标数据包转发给第一接口111的第二通道C2,那么对于第一接口来说,该目标数据包为待发送数据包,且该待发送数据包的来源通道为第一接口111的第二通道C2,这种情况下,可以将该待发送数据包对应的第二来源字段设置为第一值(例如1),第一来源字段和第三来源字段设置为第二值(例如0),即设置该待发送数据包的来源通道字段为010。
例如,通道设置模块150可以进一步配置为:若待发送数据包来源于第二通道或第三通道,则将待发送数据包的第一目的字段设置为第一值,并将待发送数据包的第二目的字段和第三目的字段均设置为第二值。
例如,以第一接口111为例,若待发送数据包来源于第一接口111的第二通道或第三通道,即第二目的字段或第三目的字段为第一值,那么说明该待发送数据包是由其他接口转发过来的,这种情况下,将待发送数据包的第一目的字段设置为第一值,并将第二目的字段和第三目的字段均设置为第二值,即将该待发送数据包的目的通道字段设置为100,当该待发送数据包由第一接口111发送给目标芯片201之后,由于该待发送数据包的目的通道字段设置为100,因而目标芯片201会将该数据包发送给目标芯片201中的功能模块,而不会再将该数据包转发给其他芯片。也就是说,目标芯片202将数据包发送给芯片100,再由芯片100将数据包转发给目标芯片201之后,该数据包会终止于目标芯片201,不会被目标芯片201继续转发。通过这一设置,每个数据包最多被一个芯片转发一次,使得每个数据包的传输延迟最大为两个单位的延迟。
例如,通道设置模块可以进一步配置为:若待发送数据包来源于第一通道,则根据待发送数据包的传播范围为待发送数据包设置目的通道字段。
例如,以第一接口111为例,若待发送数据包来源于第一接口111的第一通道,即第一目的字段为第一值,那么说明该待发送数据包来源于芯片100内部,这种情况下,将待发送数据包目的通道字段可以根据该待发送数据包的传播范围来设置。传播范围的具体信息可以由片上网络与接口之间传输线的来传递。
例如,在一些实施例中,通道设置模块可以配置为:若待发送数据包来源于第一通道且待发送数据包的传播范围为第一范围,则将待发送数据包的第一目的字段设置为第一值,并将待发送数据包的第二目的字段和第三目的字段中的一者设置为第一值以及将另一者设置为第二值,其中,第一范围为与芯片连接的至少一个目标芯片和至少一个目标芯片中的每个所连接的一个关联芯片。
图10示出了本公开至少一实施例提供的一种数据传播方式的示意图。
如图10所示,黑色框表示数据包的源头芯片,灰色框表示数据包的目的芯片,粗线条表示数据包的传输路径。以芯片CHIP5为例,相对于芯片CHIP5,芯片CHIP4、CHIP2、CHIP6和CHIP8为与芯片CHIP5直接连接的4个目标芯片,芯片CHIP1、CHIP3、CHIP9和CHIP7为与芯片CHIP5间接连接的4个关联芯片。
例如,若芯片CHIP5生成一个数据包,并想要将该生成的数据包传播给图10所示的芯片互联系统中的其余每个芯片(CHIP1-CHIP4和CHIP6-CHIP9),那么芯片CHIP5可以将数据包发送至芯片CHIP5中的全部4个接口。CHIP5中的每个接口的第一通道接收该待发送数据包,并且可以针对该数据包,将目的通道字段中的第一目的字段设置为1,并将第二目的字段和第三目的字段中的一者设置为1以及将另一者设置为0,例如,将目的通道字段设置为110或101。参见图10所示的粗线条,4个接口可以将数据包发送给芯片CHIP4、CHIP2、CHIP6和CHIP8,由于该数据包的第一目的字段为1,因而,芯片CHIP4、CHIP2、CHIP6和CHIP8会将该数据包转发给各自的功能模块。并且,由于第二目的字段和第三目的字段中的一者为1以及另一者为0,因此,芯片CHIP4、CHIP2、CHIP6和CHIP8会将数据包转发给位于顺时针方向或逆时针方向的芯片。以目的通道字段设置为101为例,芯片CHIP4中,若第三接口与芯片CHIP5连接且第二接口与芯片CHIP1连接,那么芯片CHIP4的第三接口接收来自于芯片CHIP5的数据包后,通过第三接口的第三通道将数据包转发给第二接口,再由第二接口将数据包发送给芯片CHIP1,实现芯片CHIP5到芯片CHIP1的数据包传输,同理,芯片CHIP2、CHIP6和CHIP8可以分别将数据包转发给CHIP3、CHIP9和CHIP7。通过这一方式,实现了芯片CHIP5向其余芯片的广播。其余任一芯片(如芯片CHIP1)的数据包广播路径可参见该芯片CHIP5的数据包广播路径。
例如,在另一些实施例中,通道设置模块可以配置为:若待发送数据包来源于第一通道且待发送数据包的传播范围为第二范围,则将待发送数据包的第一目的字段、第二目的字段和第三目的字段均设置为第一值;其中,第二范围为与芯片连接的至少一个目标芯片和至少一个目标芯片中的每个所连接的两个关联芯片。
图11示出了本公开至少一实施例提供的另一种数据传播方式的示意图。
如图11所示,同样,黑色框表示数据包的源头芯片,灰色框表示数据包的目的芯片,粗线条表示数据包的传输路径。以芯片CHIP5为例,相对于芯片CHIP5,芯片CHIP4、CHIP2、CHIP6和CHIP8为与芯片CHIP5直接连接的4个目标芯片,芯片CHIP1、CHIP3、CHIP9和CHIP7为与芯片CHIP5间接连接的4个关联芯片。
例如,若芯片CHIP5生成一个数据包,并想要将该生成的数据包传播给芯片CHIP4、CHIP1和CHIP7,那么芯片CHIP5可以将数据包发送至芯片CHIP5中与芯片CHIP4相连的接口(例如第一接口)。CHIP5中的第一接口的第一通道接收该数据包,并且可以针对该数据包,将目的通道字段中的第一目的字段、第二目的字段和第三目的字段均设置为1,即,将目的通道字段设置为111。参见图11所示的粗线条,CHIP5中的第一接口将数据包发送给芯片CHIP4,若由芯片CHIP4中的第三接口接收该数据包,由于该数据包的第一目的字段为1,因而,芯片CHIP4的第三接口的第一通道会将该数据包转发给内部的功能模块。并且,由于第二目的字段和第三目的字段均为1,因此,芯片CHIP4的第三接口会通过第二通道和第三通道将数据包转发给芯片CHIP4的第四接口和第二接口,然后芯片CHIP4的第二接口和第四接口可以将数据包分别发送给芯片CHIP1和芯片CHIP7,实现芯片CHIP5到芯片CHIP1、CHIP4和CHIP7的数据包传输。例如,在另一些实施例中,芯片CHIP5可以将数据包发送给芯片CHIP1、CHIP2和CHIP3,或者将数据包发送给芯片CHIP7、CHIP8和CHIP9,等等。基于这一方式,实现了芯片CHIP5向多个芯片的蝶式多播。其余任一芯片(如芯片CHIP1)的蝶式多播路径可参见该芯片CHIP5的蝶式多播路径。
例如,在另一些实施例中,通道设置模块可以配置为:若待发送数据包来源于第一通道且待发送数据包的传播范围为第三范围,则将待发送数据包的目的通道字段的第二目的字段和/或第三目的字段设置为第一值,并将第一目的字段设置为第二值,其中,第三范围为与芯片连接的至少一个目标芯片中的每个所连接的一个或两个关联芯片。
图12示出了本公开至少一实施例提供的再一种数据传播方式的示意图。
如图12所示,同样,黑色框表示数据包的源头芯片,灰色框表示数据包的目的芯片,粗线条表示数据包的传输路径。以芯片CHIP5为例,相对于芯片CHIP5,芯片CHIP4、CHIP2、CHIP6和CHIP8为与芯片CHIP5直接连接的4个目标芯片,芯片CHIP1、CHIP3、CHIP9和CHIP7为与芯片CHIP5间接连接的4个关联芯片。
例如,若芯片CHIP5生成一个数据包,并想要将该生成的数据包传播给芯片CHIP1和CHIP7,那么芯片CHIP5可以将数据包发送至芯片CHIP5中与芯片CHIP4相连的接口(例如第一接口)。CHIP5中的第一接口的第一通道接收该数据包,并且可以针对该数据包,将目的通道字段中的第一目的字段设置为0,第二目的字段和第三目的字段均设置为1,即,将目的通道字段设置为011。参见图12所示的粗线条,CHIP5中的第一接口将数据包发送给芯片CHIP4,若由芯片CHIP4中的第三接口接收该数据包,由于该数据包的第一目的字段为0,因而,芯片CHIP4的第三接口不会将该数据包转发给内部的功能模块。由于第二目的字段和第三目的字段均为1,因此,芯片CHIP4的第三接口会通过第二通道和第三通道将数据包转发给芯片CHIP4的第四接口和第二接口,然后芯片CHIP4的第二接口和第四接口可以将数据包分别发送给芯片CHIP1和芯片CHIP7,实现芯片CHIP5到芯片CHIP1和CHIP7的传输。例如,在另一些实施例中,芯片CHIP5可以将数据包发送给芯片CHIP1和CHIP3,或者将数据包发送给芯片CHIP7和CHIP9,等等。基于这一方式,实现了芯片CHIP5的另一种蝶式多播。其余任一芯片(如芯片CHIP1)的蝶式多播路径可参见该芯片CHIP5的蝶式多播路径。
图13示出了本公开至少一实施例提供的再一种数据传播方式的示意图。
如图13所示,同样,黑色框表示数据包的源头芯片,灰色框表示数据包的目的芯片,粗线条表示数据包的传输路径。以芯片CHIP5为例,相对于芯片CHIP5,芯片CHIP4、CHIP2、CHIP6和CHIP8为与芯片CHIP5直接连接的4个目标芯片,芯片CHIP1、CHIP3、CHIP9和CHIP7为与芯片CHIP5间接连接的4个关联芯片。
例如,若芯片CHIP5生成一个数据包,并想要将该生成的数据包传播给芯片CHIP1,那么芯片CHIP5可以将数据包发送至芯片CHIP5中与芯片CHIP4相连的接口(例如第一接口)。CHIP5中的第一接口的第一通道接收该数据包,并且可以针对该数据包,将目的通道字段中的第一目的字段设置为0,第二目的字段设置为0,第三目的字段设置为1,即,将目的通道字段设置为010。参见图13所示的粗线条,CHIP5中的第一接口将数据包发送给芯片CHIP4,若由芯片CHIP4中的第三接口接收该数据包,由于该数据包的第一目的字段为0,因而,芯片CHIP4的第三接口不会将该数据包转发给内部的功能模块。由于第三目的字段为1,因此,芯片CHIP4的第三接口会通过第三通道将数据包转发给芯片CHIP4的第二接口,然后芯片CHIP4的第二接口可以将数据包发送给芯片CHIP1,实现芯片CHIP5到芯片CHIP1的转播。例如,在另一些实施例中,芯片CHIP5可以将数据包发送给芯片CHIP3,或者将数据包发送给CHIP9,等等。基于这一方式,实现了芯片CHIP5到与其间接连接的芯片的转播。其余任一芯片(如芯片CHIP1)的转播路径可参见该芯片CHIP5的转播路径。
例如,图10至图13所示的示例中,数据包的传输延迟不超过两个单位的延迟,传输速度较快。
对于图2和图5所示的接口结构和芯片互联结构,由于接口可以只设置第一通道和第二通道,因而,在参考上述实施例时,可以进行相应改动。例如,若待发送数据包来源于第一通道且待发送数据包的传播范围为第一范围,则将待发送数据包的第一目的字段设置为第一值,并将待发送数据包的第二目的字段也设置为第一值。若待发送数据包来源于第一通道且待发送数据包的传播范围为第二范围,则将待发送数据包的第一目的字段和第二目的字段均设置为第一值。若待发送数据包来源于第一通道且待发送数据包的传播范围为第三范围,则将待发送数据包的目的通道字段的第二目的字段设置为第一值,并将第一目的字段设置为第二值。
例如,对于图3和图6所示的接口结构和芯片互联结构,图14示出了本公开至少一实施例提供的再一种数据传播方式的示意图。如图14所示,以芯片CHIP1向其他芯片传输数据包为例,参见图14的(A)部分,芯片CHIP1可以先将数据包发送给芯片CHIP2、CHIP4和CHIP6,再分别由芯片CHIP2和芯片CHIP4将数据包转发给芯片CHIP5和芯片CHIP3,实现了芯片CHIP1到其他芯片的广播。参见图14的(B)部分,芯片CHIP1可以先将数据包发送给芯片CHIP2,芯片CHIP2将数据包发送给内部的功能模块,并且将数据包转发给芯片CHIP5和芯片CHIP3,实现了芯片CHIP1到其他芯片的蝶式多播。参见图14的(C)部分,芯片CHIP1可以先将数据包发送给芯片CHIP2,再由芯片CHIP2将数据包转发给芯片CHIP5和芯片CHIP3,芯片CHIP2自己不使用该数据包,实现了芯片CHIP1到其他芯片的另一种蝶式多播。参见图14的(D)部分,芯片CHIP1可以先将数据包发送给芯片CHIP2,芯片CHIP2自己不使用该数据包,而是将数据包转发给芯片CHIP3,实现了芯片CHIP1到其他芯片的转播。
例如,上述关于目的通道字段和来源通道字段的设置和解析可以在增强链路层执行。从接口向芯片外发送数据包的方向来看,数据包先经过增强链路层再进入原始链路层,在数据包进入原始链路层之前,可以在增强链路层根据数据包的通道来源设置来源通道字段,并且可以根据数据包的通道来源和其他信息设置目的通道字段。完成增强链路层功能字段的设置后,可以根据字段的值计算出ECC字段的值并添加在后面发送到原始链路层进行原始链路层的数据处理。从接口从芯片外接收数据包的方向来看,数据包从原始链路层处理完成后进入增强链路层,增强链路层可以对目的通道字段等功能字段进行ECC功能检测,确保接收到的数据的正确性,再对目的通道字段等进行解析然后把数据包发送给相应的通道。如果ECC校验失败且无法纠错,则可以向对端发送信息以通知对端重传,但是由于采用了ECC保护字段机制,因此可以大幅度减小重传的概率。如果ECC校验成功,原始链路层进行向对端发送信息以通知对端数据包已成功接收。
根据本公开的至少一实施例,利用较少数量的高速互联接口和新的多通道协议实现了多芯片之间的互联和低延迟传输方案。并且,支持片间互联的多种多播方式,同时兼容传统的点对点互联协议。提高了片间互联的利用率,降低了整体的功耗。
根据本公开的至少一实施例,互联协议链路层增加了目的通道字段等字段,以实现多通道路由。并且,通过目的通道字段等字段,可以配置路由方式。
根据本公开的至少一实施例,可以实现完全对称性片间互联的低延迟方案。
根据本公开的至少一实施例,芯片种不同接口数据传递可以采用环性结构传递数据,不占用片上网络带宽,降低片上网络的设计复杂度。
例如,芯片中的功能模块、解析模块、通道设置模块等各个模块可以为硬件、软件、固件以及它们的任意可行的组合,关于上述各个模块的具体实现形式,本公开的实施例对此不作限制。例如,
例如,芯片中的任一模块可以被拆分为多个子模块,芯片中的任意两个或更多个模块也可以合并为一个模块。
例如,芯片中的各个模块可以包括存储在存储器中的代码和程序,处理器可以执行该代码和程序以实现各个模块的一些功能或全部功能。
例如,芯片可以包括更多或更少的电路或模块,并且各个电路或单元之间的连接关系不受限制,可以根据实际需求而定。各个电路或模块的具体构成方式不受限制,可以根据电路原理由模拟器件构成,也可以由数字芯片构成,或者以其他适用的方式构成。
应当注意,本公开实施例提供的芯片的组件和结构只是示例性的,而非限制性的,根据需要,芯片也可以具有其他组件和结构。
本公开至少一实施例提供了一种芯片互联系统,包括多个芯片,该多个芯片通过彼此的多个接口连接以通信。
例如,该多个芯片可以排列为阵列,阵列中位于同一行的多个芯片依次连接形成闭环,阵列中位于同一列的多个芯片依次连接形成闭环。
例如,该多个芯片中每个芯片包括的接口的数量少于所述多个芯片中的数量。
其中,该芯片互联系统中的每个芯片可以参见上述实施例提供的芯片,该芯片互联系统也可以参见上述实施例中的相关描述,在此不再赘述。
本公开至少一实施例提供了一种数据传输方法,该数据传输方法可以用于上述至少一实施例提供的芯片。
图15示出了本公开至少一个实施例提供的一种数据传输方法的流程图。
如图15所示,该数据传输方法包括步骤S210~S220。
步骤S210:由芯片的第一接口接收与第一接口连接的第一芯片发送的目标数据包。
步骤S220:将目标数据包通过第一接口的第一通道转发至芯片的功能模块,和/或将目标数据包通过第一接口的第二通道发送至芯片中与第二芯片连接的第二接口,以通过第二接口将目标数据包转发至第二芯片。
例如,在至少一实施例中,步骤S220进一步还包括:将目标数据包通过第一接口的第一通道转发至芯片的功能模块,和/或将目标数据包通过第一接口的第二通道发送至芯片中与第二芯片连接的第二接口,以通过第二接口将目标数据包转发至第二芯片,和/或将目标数据包通过第一接口的第三通道发送至芯片中与第三芯片连接的第三接口,以通过第三接口将目标数据包转发至第三芯片。
例如,在至少一实施例中,步骤S220进一步包括:若目标数据包的发送范围包括该芯片,则将目标数据包通过第一接口的第一通道发送给芯片的互联模块,并通过互联模块将目标数据包转发给功能模块。
例如,在至少一实施例中,该数据传输方法还包括:将功能模块的待发送数据包通过互联模块发送给第一接口。
例如,在至少一实施例中,该数据传输方法还包括:从目标数据包中解析得到目的通道字段,并根据目的通道字段,将目标数据包发送至第一接口的第一通道、所述第二通道和第三通道中的至少一个。
例如,在至少一实施例中,目的通道字段包括与第一通道对应的第一目的字段、与第二通道对应的第二目的字段和与第三通道对应的第三目的字段。
例如,在至少一实施例中,根据目的通道字段,将目标数据包发送至第一接口的第一通道、第二通道和第三通道中的至少一个,包括:
若目的通道字段的第一目的字段为第一值(如数值1),则将目标数据包发送至接口的第一通道,否则,不发送至第一通道;
若目的通道字段的第二目的字段为第一值,则将目标数据包发送至接口的第二通道,否则,不发送至第二通道;以及
若目的通道字段的第三目的字段为第一值,则将目标数据包发送至接口的第三通道,否则,不发送至第三通道。
例如,在至少一实施例中,该数据传输方法还包括:接收来自于第一通道、第二通道和第三通道的待发送数据包,并至少根据待发送数据包的来源通道,为待发送数据包设置来源通道字段和目的通道字段。
例如,在至少一实施例中,源通道字段包括与第一通道对应的第一来源字段、与第二通道对应的第二来源字段和与第三通道对应的第三来源字段。
例如,在至少一实施例中,根据待发送数据包的来源通道,为待发送数据包设置来源通道字段,包括:
若待发送数据包来源于第一通道,则将待发送数据包的第一来源字段设置为第一值,将第二来源字段和第三来源字段设置为第二值;
若待发送数据包来源于第二通道,则将待发送数据包的第二来源字段设置为第一值,将第一来源字段和第三来源字段设置为第二值;
若待发送数据包来源于第三通道,则将待发送数据包的第三来源字段设置为第一值,将第一来源字段和第二来源字段设置为第二值。
例如,在至少一实施例中,根据待发送数据包的来源通道,为待发送数据包设置目的通道字段,包括:若待发送数据包来源于第一通道,则根据待发送数据包的传播范围为待发送数据包设置目的通道字段;若待发送数据包来源于第二通道或第三通道,则将待发送数据包的第一目的字段设置为第一值,并将待发送数据包的第二目的字段和第三目的字段均设置为第二值。
例如,在至少一实施例中,若待发送数据包来源于第一通道,则根据待发送数据包的传播范围为待发送数据包设置目的通道字段,包括:若待发送数据包来源于第一通道且待发送数据包的传播范围为第一范围,则将待发送数据包的第一目的字段设置为第一值,并将待发送数据包的第二目的字段和第三目的字段中的一者设置为第一值以及将另一者设置为第二值(如数值0);其中,第一范围为与芯片连接的至少一个目标芯片和至少一个目标芯片中的每个所连接的一个关联芯片。
例如,在至少一实施例中,若待发送数据包来源于第一通道,则根据待发送数据包的传播范围为待发送数据包设置目的通道字段,包括:若待发送数据包来源于第一通道且待发送数据包的传播范围为第二范围,则将待发送数据包的第一目的字段、第二目的字段和第三目的字段均设置为第一值;其中,第二范围为与芯片连接的至少一个目标芯片和至少一个目标芯片中的每个所连接的两个关联芯片。
例如,在至少一实施例中,若待发送数据包来源于第一通道,则根据待发送数据包的传播范围为待发送数据包设置目的通道字段,包括:若待发送数据包来源于第一通道且待发送数据包的传播范围为第三范围,则将待发送数据包的目的通道字段的第二目的字段和/或第三目的字段设置为第一值,并将第一目的字段设置为第二值;其中,第三范围为与芯片连接的至少一个目标芯片中的每个所连接的一个或两个关联芯片。
本公开的至少一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,存储器存储有一个或多个计算机程序模块。一个或多个计算机程序模块被配置为由处理器执行,用于实现上述的数据传输方法。
图16为本公开一些实施例提供的一种电子设备的示意框图。如图16所示,该电子设备300包括处理器310和存储器320。存储器320存储有非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器310用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器310运行时执行上文所述的数据传输方法中的一个或多个步骤。存储器320和处理器310可以通过总线系统和/或其它形式的连接机构(未示出)互连。关于该数据传输方法的各个步骤的具体实现以及相关解释内容可以参见上述数据传输方法的实施例,重复之处在此不作赘述。
应当注意,图16所示的电子设备300的组件只是示例性的,而非限制性的,根据实际应用需要,该电子设备300还可以具有其他组件。
例如,处理器310和存储器320之间可以直接或间接地互相通信。
例如,处理器310和存储器320可以通过网络进行通信。网络可以包括无线网络、有线网络、和/或无线网络和有线网络的任意组合。处理器310和存储器320之间也可以通过系统总线实现相互通信,本公开对此不作限制。
例如,处理器310和存储器320可以设置在服务器端(或云端)。
例如,处理器310可以控制电子设备300中的其它组件以执行期望的功能。例如,处理器310可以是中央处理单元(CPU)、图形处理单元(GPU)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器310可以为通用处理器或专用处理器,可以控制电子设备300中的其它组件以执行期望的功能。
例如,存储器320可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器310可以运行一个或多个计算机程序模块,以实现电子设备300的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本公开的实施例中,电子设备300的具体功能和技术效果可以参考上文中关于数据传输方法的描述,此处不再赘述。
图17为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备400例如适于用来实施本公开实施例提供的数据传输方法。电子设备400可以是终端设备等。需要注意的是,图17示出的电子设备400仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图17所示,电子设备400可以包括处理装置(例如中央处理器、图形处理器等)410,其可以根据存储在只读存储器(ROM)420中的程序或者从存储装置480加载到随机访问存储器(RAM)430中的程序而执行各种适当的动作和处理。在RAM430中,还存储有电子设备400操作所需的各种程序和数据。处理装置410、ROM420以及RAM430通过总线440彼此相连。输入/输出(I/O)接口450也连接至总线440。
通常,以下装置可以连接至I/O接口450:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置460;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置470;包括例如磁带、硬盘等的存储装置480;以及通信装置490。通信装置490可以允许电子设备400与其他电子设备进行无线或有线通信以交换数据。虽然图17示出了具有各种装置的电子设备400,但应理解的是,并不要求实施或具备所有示出的装置,电子设备400可以替代地实施或具备更多或更少的装置。
例如,根据本公开的实施例,上述数据传输方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述数据传输方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置490从网络上被下载和安装,或者从存储装置480安装,或者从ROM420安装。在该计算机程序被处理装置410执行时,可以实现本公开实施例提供的数据传输方法中限定的功能。
本公开的至少一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现上述的数据传输方法。
图18为本公开一些实施例提供的一种存储介质的示意图。如图18所示,存储介质500存储有非暂时性计算机可读指令510。例如,当非暂时性计算机可读指令510由计算机执行时执行根据上文所述的数据传输方法中的一个或多个步骤。
例如,该存储介质500可以应用于上述电子设备300中。例如,存储介质500可以为图16所示的电子设备300中的存储器320。例如,关于存储介质500的相关说明可以参考图16所示的电子设备300中的存储器320的相应描述,此处不再赘述。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。