应用于众核芯片的通信方法、众核芯片及存储介质

文档序号:25352786发布日期:2021-06-08 13:59阅读:271来源:国知局
应用于众核芯片的通信方法、众核芯片及存储介质

1.本公开涉及通信技术领域,尤其涉及一种应用于众核芯片的通信方法、众核芯片及存储介质。


背景技术:

2.随着人工智能技术的发展,用户对芯片处理能力的要求越来越高,由于单核芯片的处理能力有限,因此众核芯片的使用越来越广泛。通过将计算任务被分配到多个核的组合中去并行执行,来提高处理能力。在众核芯片中,不但需要执行每个核中被分派的计算任务,还需要进行核与核之间的数据传输。众核芯片中的核内计算任务和核间通信任务的执行机制,会影响到众核芯片的整体运行性能。
3.如何提高众核芯片的整体运行性能,相关技术中尚未提供一种合理且有效的实现方式。


技术实现要素:

4.有鉴于此,本公开提出了一种应用于众核芯片的通信方法、众核芯片及存储介质。所述技术方案包括:
5.根据本公开的一方面,提供了一种应用于众核芯片的通信方法,所述众核芯片至少包括第一时序簇和第二时序簇,所述第一时序簇和所述第二时序簇在工作周期上是异步的,所述方法包括:
6.所述第一时序簇中的功能核向所述第二时序簇中的功能核发送即时原语请求,所述即时原语请求用于指示所述第二时序簇中的功能核在所述第二时序簇的当前工作周期后返回即时原语应答;
7.所述第一时序簇中的功能核接收到所述即时原语应答后,进行与所述第二时序簇中的功能核之间的数据传输。
8.在一种可能的实现方式中,所述第一时序簇中的功能核向所述第二时序簇中的功能核发送即时原语请求,包括:
9.所述第一时序簇中的功能核获取第一工作周期的静态原语指令,所述静态原语指令用于指示预先配置的核间通信任务,所述第一工作周期为所述第一时序簇的当前工作周期;
10.所述第一时序簇中的功能核根据所述核间通信任务,在所述第一工作周期内向所述第二时序簇中的功能核发送所述即时原语请求。
11.在另一种可能的实现方式中,所述第一时序簇中的功能核向所述第二时序簇中的功能核发送即时原语请求之后,还包括:
12.所述第二时序簇中的功能核在第二工作周期内接收到所述即时原语请求后,将所述即时原语请求存储在缓存中,所述第二工作周期为所述第二时序簇的当前工作周期,所述第二工作周期不同于所述第一工作周期;
13.所述第二时序簇中的功能核在所述第二工作周期后返回所述即时原语请求对应的即时原语应答。
14.在另一种可能的实现方式中,所述第二时序簇中的功能核在所述第二工作周期后返回所述即时原语请求对应的即时原语应答,包括:
15.所述第二时序簇中的功能核在执行完指定个数的静态原语指令后或者在所述第二工作周期后的目标工作周期后,返回所述即时原语请求对应的所述即时原语应答;
16.其中,所述目标工作周期与所述第二工作周期之间的周期个数差值为预设阈值。
17.在另一种可能的实现方式中,所述第一时序簇中的功能核接收到所述即时原语应答后,进行与所述第二时序簇中的功能核之间的数据传输,包括:
18.所述第一时序簇中的功能核接收到所述即时原语应答后,根据所述第一工作周期的所述静态原语指令将待发送的数据发送至所述第二时序簇中的功能核,和/或,接收所述第二时序簇中的功能核发送的数据。
19.在另一种可能的实现方式中,所述第一时序簇中的功能核向第二时序簇中的功能核发送即时原语请求之前,还包括:
20.根据待执行的计算总任务将所述众核芯片中的多个功能核进行划分,得到具有异步的工作周期的多个时序簇,所述多个时序簇至少包括所述第一时序簇和所述第二时序簇;
21.其中,每个所述时序簇包括具有同步的工作周期的一个或者多个功能核,所述功能核用于执行所述计算总任务的部分计算任务。
22.在另一种可能的实现方式中,所述第二时序簇包括多个功能核,所述第一时序簇中的功能核向第二时序簇中的功能核发送即时原语请求之后,还包括:
23.所述第二时序簇中的任意一个功能核在接收到所述第一时序簇中的功能核发送的所述即时原语请求后,在所述第二时序簇的当前工作周期将所述即时原语请求以多播方式发送至所述第二时序簇中的其它功能核。
24.在另一种可能的实现方式中,所述方法还包括:
25.对于所述第二时序簇中的其它功能核中的每个功能核,在接收到多播的所述即时原语请求后返回多播应答;
26.在所述第二时序簇中的各个功能核完成所述第二时序簇的当前工作周期的计算总任务,且所述第二时序簇中的其它功能核均返回所述多播应答时,结束所述第二时序簇的当前工作周期。
27.在另一种可能的实现方式中,所述第一时序簇包括多个功能核,所述方法还包括:
28.所述第一时序簇中的任意一个功能核接收到所述即时原语应答后,以多播方式发送至所述第一时序簇中的其它功能核。
29.根据本公开的另一方面,提供了一种众核芯片,所述众核芯片至少包括第一时序簇和第二时序簇,所述第一时序簇和所述第二时序簇在工作周期上是异步的,所述众核芯片包括:
30.所述第一时序簇中的功能核,用于向第二时序簇中的功能核发送即时原语请求,所述即时原语请求用于指示所述第二时序簇中的功能核在所述第二时序簇的当前工作周期后返回即时原语应答;
31.所述第一时序簇中的功能核,还用于接收到所述即时原语应答后,进行与所述第二时序簇中的功能核之间的数据传输。
32.根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述的方法。
33.本公开实施例通过提供一种应用于众核芯片的通信方法,众核芯片至少包括第一时序簇和第二时序簇,第一时序簇和第二时序簇在工作周期上是异步的,第一时序簇中的功能核向第二时序簇中的功能核发送即时原语请求,即时原语请求用于指示第二时序簇中的功能核在第二时序簇的当前工作周期后返回即时原语应答;第一时序簇中的功能核接收到即时原语应答后,进行与第二时序簇中的功能核之间的数据传输;避免了相关技术中众核芯片按照全局同步的时序来执行每个核的本地计算任务和核间数据传输的情况,通过传输即时原语请求和应答机制,实现了众核芯片中异步时序簇之间的数据传输,减少了众核芯片中的整体等待时间,提高了计算效率和执行速度,提高了众核芯片的整体运行性能。
附图说明
34.包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
35.图1示出了本公开一个示例性实施例提供的应用于众核芯片的通信方法的流程图;
36.图2示出了本公开另一个示例性实施例提供的应用于众核芯片的通信方法的流程图;
37.图3示出了本公开一个示例性实施例提供的应用于众核芯片的通信方法涉及的时序簇划分方法的示意图;
38.图4示出了本公开另一个示例性实施例提供的应用于众核芯片的通信方法的流程图;
39.图5示出了本公开一个示例性实施例提供的应用于众核芯片的通信方法的原理示意图;
40.图6示出了本公开另一个示例性实施例提供的应用于众核芯片的通信方法的流程图;
41.图7示出了本公开另一个示例性实施例提供的应用于众核芯片的通信方法的原理示意图;
42.图8示出了本公开另一个示例性实施例提供的应用于众核芯片的通信方法的流程图;
43.图9示出了本公开另一个示例性实施例提供的应用于众核芯片的通信方法的原理示意图;
44.图10示出了本公开另一个示例性实施例提供的应用于众核芯片的通信方法的流程图;
45.图11示出了本公开另一个示例性实施例提供的应用于众核芯片的通信方法的原理示意图;
46.图12示出了本公开另一个示例性实施例提供的应用于众核芯片的通信方法的流
程图;
47.图13示出了本公开另一个示例性实施例提供的应用于众核芯片的通信方法的原理示意图;
48.图14示出了本公开另一个示例性实施例提供的应用于众核芯片的通信方法的流程图;
49.图15示出了本公开另一个示例性实施例提供的应用于众核芯片的通信方法的原理示意图;
50.图16示出了本公开一个示例性实施例提供的众核芯片的结构示意图。
具体实施方式
51.以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
52.在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
53.另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
54.在众核芯片中,核内计算任务和核间通信任务的执行机制会影响到众核芯片的整体运行性能。为了解决上述问题,相关技术中提供了一种批量同步并行(bulk synchronous parallel,bsp)机制。在这种机制中,众核芯片的基本操作主要包括三个阶段:1、本地计算阶段,每个核只对存储本地内存中的数据进行本地计算。2、全局通信阶段,每个核对非本地数据进行操作,包括核间数据传输。3、栅栏同步阶段,等待所有通信行为的结束。
55.相关技术中还提供有另外一种执行机制,即众核芯片的执行被全局同步信号划分为多个同步的工作周期。在每一个工作周期,每个核同时执行本地计算任务和核间通信任务,每个核在进行本地计算的同时,会将已经得到的计算结果传输出去。
56.但是在上述方法中,众核芯片中的每个核需要按照全局同步的工作周期来执行本地计算任务和核间通信任务。当不同核中需要进行的计算任务或者需要传输的数据量不匹配时,就会造成一部分核的空转或者等待,降低众核芯片的利用率和执行效率。且在上述第一种方法中,众核芯片的本地计算任务和核间通信任务以串行的方式执行,更加进一步的降低了执行效率。
57.因此,众核芯片中不同的核的可能会有不同的计算需求,等待全局的同步信号来进行周期切换和数据传输,会造成部分功能核的空转和等待。并且,核间的数据交换可能会在不同的时间发生,按照同步周期来进行数据传输,有可能会破坏数据传输的即时性。如何提高众核芯片中的核内计算任务和核间通信任务的执行效率,相关技术中尚未提供一种合理且有效的实现方式。
58.为此,本公开实施例提供一种应用于众核芯片的通信方法,通过传输即时原语请求和应答机制,实现了众核芯片中异步时序簇之间的数据传输,减少了众核芯片中的整体等待时间,提高了计算效率和执行速度,提高了众核芯片的整体运行性能。
59.首先,对本公开涉及的应用场景进行介绍。神经形态芯片系统中包括一个或多个神经形态芯片,每个神经形态芯片包括计算单元和通信基元,所有的通信基元构成一个通信网络,即路由通信网络;每个计算单元通过通信基元接入路由通信网络,从而实现各个计算单元之间的通信连接。
60.计算单元在每个工作时间段有不同的计算总任务,路由通信网络将计算单元在当前工作时间段不同时间产生的计算输出发送到其他计算单元,作为下一个工作时间段被处理的数据。
61.在本公开实施例中,众核芯片包括多个功能核,众核芯片也可以称为上述的神经形态芯片,功能核也可以称为上述的计算单元,即功能核之间通过路由通信网络进行数据传输。
62.通过按照计算任务将众核芯片中的多个功能核划分为不同的时序簇,每个时序簇包括一个或者多个功能核,不同的时序簇具有异步的工作周期。即众核芯片至少包括两个时序簇,即第一时序簇和第二时序簇,第一时序簇和第二时序簇在工作周期上是异步的。
63.在每个工作周期,每个功能核中的本地计算和核间通信也是按照流水的方式同时进行的。当执行到需要进行异步数据传输的工作周期时,来自不同的异步时序簇之间的核按照“发送即时原语请求

返回即时原语应答

数据传输”机制来建立数据传输的连接。
64.下面,采用几个示例性实施例对本公开实施例提供的应用于众核芯片的通信方法的进行介绍。
65.请参考图1,其示出了本公开一个示例性实施例提供的应用于众核芯片的通信方法的流程图,本实施例以该方法用于上述的众核芯片中来举例说明,该方法包括以下几个步骤。
66.步骤101,第一时序簇中的功能核向第二时序簇中的功能核发送即时原语请求,即时原语请求用于指示第二时序簇中的功能核在第二时序簇的当前工作周期后返回即时原语应答。
67.其中,该众核芯片至少包括第一时序簇和第二时序簇,第一时序簇和第二时序簇在工作周期上是异步的。
68.由于在工作周期上,第一时序簇和第二时序簇是异步的,因此第一时序簇和第二时序簇各自对应的第i个工作周期的起始时刻或者时间长度或者结束时刻是不同的,i为正整数。
69.对于一个时序簇(第一时序簇或第二时序簇)中的一个功能核来说,多个工作周期中的每个工作周期是相同的,或者多个工作周期中存在至少两个工作周期是不同的。
70.可选的,即时原语请求包括第二时序簇中的功能核中的即时原语指令的存储位置。即时原语指令为预先配置的,即时原语指令被配置为需要返回即时原语应答。
71.可选的,第一时序簇中的功能核获取第一工作周期的静态原语指令,静态原语指令用于指示预先配置的核间通信任务;第一时序簇中的功能核根据核间通信任务,在第一工作周期内向第二时序簇中的功能核发送即时原语请求。
72.其中,第一工作周期为第一时序簇的当前工作周期。比如,第一工作周期为第一时序簇的第一个工作周期,或者第一工作周期为第一时序簇的第二个工作周期,或者第一工作周期为第一时序簇的第三个工作周期。本公开实施例对此不加以限定。
73.可选的,静态原语指令为预配置的指令,静态原语指令还用于指示预先配置的核间通信任务。
74.可选的,一个工作周期的静态原语指令用于指示为该工作周期预先配置的计算总任务和核间通信任务。计算总任务用于指示该工作周期内的待核内计算的总任务,核间通信任务用于指示该工作周期内需要跨核传输数据,该工作周期内待跨核传输的数据为该工作周期内计算得到的计算内容或者在该工作周期前已经保存在核内存中的数据。
75.可选的,第二时序簇中的功能核在第二工作周期内接收到即时原语请求后,将即时原语请求存储在缓存中;第二时序簇中的功能核在第二工作周期后返回即时原语请求对应的即时原语应答。
76.其中,第二工作周期为第二时序簇的当前工作周期,第二工作周期不同于第一工作周期。
77.可选的,第二时序簇中的功能核在第二工作周期后开始执行即时原语请求所指示的即时原语指令,返回即时原语请求对应的即时原语应答。
78.可选的,第二时序簇中的功能核在第二工作周期后,根据即时原语请求所包括的即时原语指令的存储位置,在该存储位置上读取即时原语指令,返回即时原语应答。
79.可选的,第二时序簇中的功能核在执行完指定个数的静态原语指令后或者在第二工作周期后的目标工作周期后,返回即时原语请求对应的即时原语应答。其中,目标工作周期与第二工作周期之间的周期个数差值为预设阈值。
80.示意性的,第二时序簇中的功能核在执行完指定个数的静态原语指令后或者在第二工作周期后的目标工作周期后,根据即时原语请求所包括的即时原语指令的存储位置,在该存储位置上读取即时原语指令,返回即时原语应答。
81.其中,指定个数或预设阈值是预先配置的。比如,指定个数为2,则第二时序簇中的功能核在执行完2个静态原语指令后返回即时原语应答。又比如,预设阈值为1,则第二时序簇中的功能核在第二工作周期后的第一个工作周期后返回即时原语应答。
82.可选的,第二时序簇包括多个功能核,第一时序簇中的功能核向第二时序簇中的功能核发送即时原语请求之后,还包括:第二时序簇中的任意一个功能核在接收到第一时序簇中的功能核发送的即时原语请求后,在第二时序簇的当前工作周期将即时原语请求以多播方式发送至第二时序簇中的其它功能核。
83.可选的,同一个时序簇中的多个功能核之间的数据传输为节点传播方式。
84.需要说明的是,第二时序簇中,接收到的即时原语请求(即第一时序簇的功能核发送的即时原语请求)的功能核、返回即时原语应答的功能核、与第一时序簇进行数据传输的功能核,可以是相同的,也可以是不同的,本公开实施例对此不加以限定。
85.步骤102,第一时序簇中的功能核接收到即时原语应答后,进行与第二时序簇中的功能核之间的数据传输。
86.可选的,第一时序簇中的功能核在第一工作周期内向第二时序簇中的功能核发送即时原语请求后,若第一工作周期对应的计算总任务完成且尚未接收到即时原语应答,则继续等待即时原语应答,在接收到即时原语应答后进行与第二时序簇中的功能核之间的数据传输,在数据传输结束后结束该工作周期。
87.可选的,第一时序簇包括多个功能核,该方法还包括:第一时序簇中的任意一个功
能核接收到即时原语应答后,以多播方式发送至第一时序簇中的其它功能核。从而使得第一时序簇中的其它功能核接收到即时原语应答后,也可以进行与第二时序簇中的功能核之间的数据传输。
88.需要说明的是,第一时序簇中,发送即时原语请求的功能核、接收到即时原语应答(即第二时序簇的功能核发送的即时原语应答)的功能核、与第二时序簇进行数据传输的功能核,可以是相同的,也可以是不同的,本公开实施例对此不加以限定。
89.可选的,第一时序簇中的功能核接收到即时原语应答后,进行与第二时序簇中的功能核之间的数据传输,包括:第一时序簇中的功能核接收到即时原语应答后,根据第一工作周期的静态原语指令将待发送的数据发送至所述第二时序簇中的功能核,和/或,接收第二时序簇中的功能核发送的数据。
90.示意性的,第一时序簇中的功能核根据第一工作周期的静态原语指令将待发送的数据发送至第二时序簇中的功能核。对应的,第二时序簇中的功能核接收该数据。
91.示意性的,第二时序簇中的功能核根据第二工作周期的静态原语指令将待发送的数据发送至第一时序簇中的功能核。对应的,第一时序簇中的功能核接收该数据。
92.综上所述,本公开实施例通过提供一种应用于众核芯片的通信方法,众核芯片至少包括第一时序簇和第二时序簇,第一时序簇和第二时序簇在工作周期上是异步的,第一时序簇中的功能核向第二时序簇中的功能核发送即时原语请求,即时原语请求用于指示第二时序簇中的功能核在第二时序簇的当前工作周期后返回即时原语应答;第一时序簇中的功能核接收到即时原语应答后,进行与第二时序簇中的功能核之间的数据传输;避免了相关技术中众核芯片按照全局同步的时序来执行每个核的本地计算任务和核间数据传输的情况,通过传输即时原语请求和应答机制,实现了众核芯片中异步时序簇之间的数据传输,减少了众核芯片中的整体等待时间,提高了计算效率和执行速度,提高了众核芯片的整体运行性能。
93.需要说明的是,在第一时序簇中的功能核向第二时序簇中的功能核发送即时原语请求之前,众核芯片需要按照待执行的计算总任务对将众核芯片中的多个功能核划分为不同的时序簇。其中,每个时序簇包括一个或者多个功能核,不同的时序簇具有异步的工作周期。即在上述步骤101之前还包括如下步骤,如图2所示:
94.步骤201,根据待执行的计算总任务将众核芯片中的多个功能核进行划分,得到具有异步的工作周期的多个时序簇,多个时序簇至少包括第一时序簇和第二时序簇。
95.其中,每个时序簇包括具有同步的工作周期的一个或者多个功能核,功能核用于执行计算总任务的部分计算任务。
96.可选的,按照计算总任务的内容不同或者执行时间不同,将众核芯片中的多个功能核划分为不同的时序簇,每个时序簇包括一个或者多个核,不同的时序簇具有异步的工作周期。
97.可选的,根据计算总任务的数据量,将计算总任务划分为多个子任务;将众核芯片中的多个核划分为多个时序簇,每个时序簇中包括一个或者多个功能核,每个时序簇用于执行计算任务,计算任务为待执行的计算总任务的部分任务。
98.多个时序簇各自执行的计算任务的集合为计算总任务,多个时序簇中的任意两个时序簇各自执行的计算任务不存在交集。
99.可选的,多个时序簇中的每个核所执行的计算操作量是相同的,或者,多个时序簇中的任意两个核执行的计算操作量之间的差值绝对值小于预设差值阈值。
100.比如,将计算总任务划分为四个计算任务,分别为第一计算任务、第二计算任务、第三计算任务和第四计算任务;将众核芯片中的多个核划分为两个时序簇,分别为第一时序簇和第二时序簇,第一时序簇中的多个核用于执行第一计算任务和第二计算任务,第二时序簇中的多个核用于执行第三计算任务和第四计算任务,时序簇的划分策略用于指示第一除数与第二除数的差值绝对值小于预设差值阈值,第一除数为第一计算任务与第二计算任务的数据量之和与第一时序簇的功能核数量的除数,第二除数为第三子任务与第四子任务的数据量之和与第二时序簇的功能核数量的除数。
101.可选的,根据待执行的计算总任务,通过预设的映射器输出得到划分结果。
102.属于同一个时序簇的多个功能核,具有同步的工作周期,工作周期为进行本地计算和核间通信的周期。
103.众核芯片在时间上可以循环并连续地执行多个计算总任务的循环,每个计算总任务对应一个工作周期。对于一个时序簇中的一个功能核来说,多个工作周期中的每个工作周期是相同的,或者多个工作周期中存在至少两个工作周期是不同的。
104.不同的时序簇,按照各自内部的同步信号来执行,因此在工作周期上,不同的时序簇是异步的。即两个时序簇各自对应的第i个工作周期的起始时刻或者时间长度或者结束时刻是不同的,i为正整数。
105.在一个示意性的例子中,如图3所示,众核芯片获取一个包含4个计算任务(计算任务1、计算任务2、计算任务3和计算任务4)的计算总任务,根据待执行的计算总任务将众核芯片中的16个核拆分为两个时序簇即时序簇1和时序簇2。在时序簇1中包含9个核,用于执行计算任务1和计算任务2。在时间上,时序簇1对应的第一个工作周期执行计算任务1,在第二个工作周期执行计算任务2。在时序簇2中包含7个核,用于执行计算任务3和计算任务4。在时间上,时序簇2对应的第一个工作周期执行计算任务3,在第二个工作周期执行计算任务4。这两个时序簇异步执行。
106.那么在这些异步的时序簇之间,进行数据传输时,就要考虑数据传输是建立同步连接并保证数据的完整性。针对此,本公开实施例提供了一种即时指令的数据传输机制。
107.即时原语执行请求预先存储在需要进行跨时序簇进行数据传输的一个核中,当执行到需要进行异步数据传输的工作周期时,由该功能核将执行即时原语指令的请求即即时原语请求发送到其他时序簇的功能核中。其他时序簇的功能核收到即时原语请求之后,存储在自身的缓存中,在处理完当前工作周期的任务之后,判断是否响应即时原语请求。接受即时原语执行请求的功能核,可以配置即时原语指令在执行完哪一个工作任务或者第几个工作周期之再开始执行。这可以保证异步数据传输的双方,完成了数据所依赖的计算之后再进行数据传输。
108.综上所述,本公开实施例提供的应用于众核芯片的通信方法,可以解决众核芯片中异步时序簇之间的数据交互问题,保障了数据的完整性,使得众核芯片可以不用在按照全局同步的时序来执行每个功能核的本地计算任务和核间数据交互,大大减少了众核芯片中的整体等待时间,提高了计算效率和执行速度。
109.此外,本公开实施例提供的通信方法采用了即时原语请求的触发和应答机制,仍
然是按照去中心化的方式执行的,在保证了众核芯片固有的高执行并行性的同时,不需要增加额外的时序簇交互控制器。此外,本公开实施例提供的通信方法采用了分组交互的方法,等同于对众核芯片中的数据交互进行了分组。密集的数据交互通过时序簇内的同步数据交互来实现,而数据量较小且间隔较长的通信,则会被划分到不同的时序簇内,通过异步数据交互机制来实现。此外,本公开实施例提供的通信方法中,将众核芯片划分为执行不同任务的时序簇。在应用上,可以用于支撑执行多个不同的任务。在神经形态芯片的应用场景中,可以用于支撑由多个神经网络构成的复杂计算系统。
110.需要说明的是,异步数据传输可以发生两个或者两个以上的异步时序簇之间。两个异步时序簇为具有异步的工作周期的两个时序簇。
111.在两个异步时序簇之间,进行数据传输的功能核可以包括一对一,一对多,多对一,以及多对多四种不同的情况,下面仅以两个异步时序簇为第一时序簇和第二时序簇为例,采用四个示例性的实施例进行介绍。其中,众核芯片至少包括第一时序簇和第二时序簇,第一时序簇和第二时序簇在工作周期上是异步的,第一时序簇和第二时序簇均包括至少一个功能核。
112.在一种可能的实现方式中,两个异步时序簇之间一对一传输的流程请参考图4,本实施例以该方法用于上述的众核芯片中来举例说明,该方法包括但不限于以下几个步骤。
113.步骤401,第一功能核在第一工作周期内向第二功能核发送即时原语请求。
114.其中,第一功能核为第一时序簇中的一个功能核,第二功能核为第二时序簇中的一个功能核。
115.可选的,第一功能核获取第一工作周期的静态原语指令,静态原语指令用于指示预先配置的核间通信任务,第一工作周期为第一时序簇的当前工作周期;第一时序簇中的功能核根据核间通信任务,在第一工作周期内向第二时序簇中的功能核发送即时原语请求。
116.第一功能核向第二功能核发送即时原语请求的相关细节可类比参考上述实施例中的相关描述,在此不再赘述。
117.步骤402,第二功能核在第二工作周期内接收到即时原语请求后,将该即时原语请求存储在缓存中。
118.其中,第二工作周期为第二时序簇的当前工作周期,第二工作周期不同于第一工作周期。
119.可选的,第二功能核将该即时原语请求存储在控制单元的即时原语指令缓存中。
120.步骤403,第二功能核在第二工作周期后,返回即时原语请求对应的即时原语应答。
121.可选的,第二功能核在执行完指定个数的静态原语指令后或者在第二工作周期后的目标工作周期后,向第一功能核返回即时原语请求对应的即时原语应答。
122.其中,即时原语请求包括第二功能核中的即时原语指令的存储位置。第二功能核根据即时原语请求所包括的第二功能核中的即时原语指令的存储位置,在该存储位置上读取即时原语指令,返回即时原语应答。即时原语应答为即时原语请求对应的应答。
123.第二功能核在第二工作周期后,返回即时原语请求对应的即时原语应答的相关细节可类比参考上述实施例中的相关描述,在此不再赘述。
124.步骤404,第一功能核接收第二功能核发送的即时原语应答。
125.第一功能核在第一工作周期内接收第二功能核发送的即时原语应答。
126.可选的,第一功能核在第一工作周期内向第二功能核发送即时原语请求后,若第一工作周期对应的计算总任务完成且尚未接收到即时原语应答,则继续等待即时原语应答,在接收到即时原语应答后执行步骤405。
127.步骤405,第一功能核与第二功能核之间进行数据传输。
128.可选的,第一功能核在第一工作周期内接收到即时原语应答后,在第一工作周期内进行与第二功能核之间的数据传输。
129.可选的,第一功能核与第二功能核之间进行数据传输包括:第一功能核接收第二功能核发送的数据,和/或,第一功能核根据第一工作周期的静态原语指令将待发送数据发送至第二功能核。
130.在一个示意性的例子中,两个异步时序簇之间一对一传输(即时序簇1中的功能核1与时序簇2中的功能核2之间的数据传输)的原理如图5所示。功能核1在工作周期s2开始后获取工作周期s2的静态原语指令2,功能核1根据静态原语指令2所指示的核间通信任务,在工作周期s2内向功能核2发送即时原语请求。功能核2在工作周期k2内接收到即时原语请求后,将该即时原语请求存储在缓存中,功能核2在工作周期k3开始后执行即时原语请求所指示的即时原语指令,返回即时原语应答,功能核1在工作周期s2内接收到该即时原语应答后,功能核1进行与功能核2之间的数据传输。
131.在另一种可能的实现方式中,两个异步时序簇之间多对一传输过程请参考图6,本实施例以该方法用于上述的众核芯片中来举例说明,该方法包括但不限于以下几个步骤。
132.步骤601,第一功能核在第一工作周期内向第二功能核发送即时原语请求。
133.其中,第一功能核为第一时序簇的多个功能核中的任意一个功能核,第二功能核为第二时序簇中的一个功能核。比如,第一时序簇包括功能核1、功能核2和功能核3。第一功能核为功能核1、功能核2和功能核3中的任意一个。
134.其中,第一工作周期为第一时序簇的当前工作周期。
135.步骤602,第二功能核在第二工作周期内接收到即时原语请求后,将该即时原语请求存储在缓存中。
136.其中,第二工作周期为第二时序簇的当前工作周期,第二工作周期不同于第一工作周期。
137.步骤603,第二功能核在第二工作周期后,将即时原语请求对应的即时原语应答发送至第三功能核。
138.其中,第三功能核为第一时序簇的多个功能核中的任意一个功能核。
139.可选的,第三功能核即为第一功能核,即第三功能核与第一功能核为同一个功能核;或者,第三功能核不同于第一功能核,即第三功能核与第一功能核为第一时序簇中两个不同的功能核。
140.可选的,第二功能核在执行完指定个数的静态原语指令后或者在第二工作周期后的目标工作周期后,将即时原语请求对应的即时原语应答发送至第三功能核。
141.步骤604,第三功能核接收到即时原语应答后,以多播方式发送至第一时序簇中的其它功能核。
142.其中,第一时序簇中的其它功能核为第一时序簇中除第三功能核以外的各个功能核。
143.可选的,第三功能核接收到即时原语应答后,以多播方式分别发送至第一时序簇中其他的各个功能核,或者,以多播方式依次发送(类似节点传播)至第一时序簇中其他的各个功能核。
144.示意性的,对于第一时序簇中处于中间节点的一个功能核来说,该功能核在接收到即时原语应答后,以多播方式发送至第一时序簇中的下一个功能核,并执行步骤605。对于第一时序簇中处于尾节点的一个功能核,该功能核在接收到即时原语应答后,执行步骤605。
145.步骤605,第一时序簇的多个功能核在各自接收到即时原语应答后,进行与第二功能核之间的数据传输。
146.对于第一时序簇的多个功能核中的至少一个功能核,在接收到即时原语应答后,即可开始进行与第二功能核之间的数据传输。
147.需要说明的是,本实施例中各个步骤的相关细节可类比参考上述实施例中的相关描述,在此不再赘述。
148.在一个示意性的例子中,两个异步时序簇之间多对一传输(即时序簇1中的功能核1至功能核3与时序簇2中的功能核4之间的数据传输)的原理如图7所示。功能核1在工作周期s2开始后获取工作周期s2的静态原语指令2,功能核1根据静态原语指令2所指示的核间通信任务,在工作周期s2内向功能核4发送即时原语请求。功能核4在工作周期k2内接收到即时原语请求后,将该即时原语请求存储在缓存中,功能核4在工作周期k3开始后执行即时原语请求所指示的即时原语指令,向功能核3返回即时原语应答。功能核3在工作周期s2内接收到即时原语应答后,以多播方式将该即时原语应答发送至功能核2,功能核2以多播方式将该即时原语应答发送至功能核1。功能核1至功能核3中的每个功能核在接收到即时原语应答后,进行与功能核4之间的数据传输。
149.在另一种可能的实现方式中,两个异步时序簇之间一对多传输过程请参考图8,本实施例以该方法用于上述的众核芯片中来举例说明,该方法包括但不限于以下几个步骤。
150.步骤801,第一功能核在第一工作周期内向第二功能核发送即时原语请求。
151.其中,第一功能核为第一时序簇中的一个功能核,第二功能核为第二时序簇的多个功能核中的任意一个功能核。比如,第二时序簇包括功能核2、功能核3和功能核4。第二功能核为功能核2、功能核3和功能核4中的任意一个。
152.其中,第一工作周期为第一时序簇的当前工作周期。
153.步骤802,第二功能核在第二工作周期内接收到即时原语请求后,将该即时原语请求存储在缓存中。
154.其中,第二工作周期为第二时序簇的当前工作周期,第二工作周期不同于第一工作周期。
155.步骤803,第二功能核在第二工作周期内以多播方式将即时原语请求发送至第二时序簇中的其它功能核。
156.可选的,第二功能核在第二工作周期内接收到即时原语请求后,将该即时原语请求存储在缓存中,同时以多播方式将即时原语请求发送至第二时序簇中的其它功能核。对
应的,第二时序簇中的其它功能核接收并存储该即时原语请求。
157.为了保证以多播方式发送的即时原语请求都在同一个工作周期被接收,第二时序簇需要等到第二时序簇中的各个功能核都收到了即时原语请求再结束当前的工作周期即第二工作周期,此保障通过多播应答来实现。可选的,对于第二时序簇中的其它功能核中的每个功能核,在接收到多播的即时原语请求后返回多播应答;在第二时序簇中的各个功能核完成第二时序簇的当前工作周期的计算总任务,且第二时序簇中的其它功能核均返回多播应答时,结束第二时序簇的当前工作周期。
158.在一种可能的实现方式中,每当第二时序簇中的一个功能核在第二工作周期将即时原语请求以多播方式发送至第二时序簇中的其它功能核时,将指定计数器加一,指定计数器的初始值为零;对于第二时序簇中的其它功能核中的每个功能核,在接收到多播的即时原语请求后返回多播应答;每当第二时序簇中的一个功能核接收到多播应答时,将指定计数器减一;在第二时序簇中的各个功能核完成第二工作周期的计算总任务且指定计数器为零时,结束第二工作周期。需要说明的是,本公开实施例对此不加以限定。
159.步骤804,第三功能核在第二工作周期后,将即时原语请求对应的即时原语应答发送至第一功能核。
160.其中,第三功能核为第二时序簇的多个功能核中的任意一个功能核。
161.可选的,第三功能核即为第二功能核,即第三功能核与第二功能核为同一个功能核;或者,第三功能核不同于第二功能核,即第三功能核与第二功能核为第二时序簇中两个不同的功能核。
162.可选的,第三功能核在执行完指定个数的静态原语指令后或者在第二工作周期后的目标工作周期后,将即时原语请求对应的即时原语应答发送至第一功能核。
163.步骤805,第一功能核接收到即时原语应答后,进行与第二时序簇中的功能核的数据传输。
164.在一种可能的实现方式中,第一功能核接收到即时原语应答后,进行与第二时序簇中的每个功能核的数据传输。
165.在另一种可能的实现方式中,第一功能核接收到第三功能核的即时原语应答后,进行与第三功能核的数据传输。
166.可选的,第三功能核将接收到的数据发送至第二时序簇中的其它功能核。
167.需要说明的是,本实施例中各个步骤的相关细节可类比参考上述实施例中的相关描述,在此不再赘述。
168.在一个示意性的例子中,两个异步时序簇之间一对多传输(即时序簇1中的功能核1与时序簇2中的功能核2至功能核4之间的数据传输)的原理如图9所示。功能核1在工作周期s2开始后获取工作周期s2的静态原语指令,功能核1根据静态原语指令所指示的核间通信任务,在工作周期s2内向功能核2发送即时原语请求。功能核2在工作周期k2后,将该即时原语请求存储在缓存中,同时以多播方式将即时原语请求发送至功能核3,并将指定计数器加一。功能核3执行类似的接收存储操作,即以多播方式将该即时原语请求发送至功能核4,并将指定计数器加一。功能核3在接收到多播的即时原语请求之后,返回多播应答至功能核2;功能核4在接收到多播的即时原语请求之后,返回多播应答至功能核3。功能核2和功能核3在收到了多播应答之后,均将指定计数器减一;在功能核2至功能核4完成工作周期k2的计
算总任务且指定计数器为零时,结束工作周期k2。功能核3在工作周期k3开始后执行即时原语请求所指示的即时原语指令,向功能核1返回即时原语应答。功能核1在工作周期s2内接收到即时原语应答后,进行与功能核2至功能核4之间的数据传输。
169.在另一种可能的实现方式中,两个异步时序簇之间多对多传输过程请参考图10,本实施例以该方法用于上述的众核芯片中来举例说明,该方法包括但不限于以下几个步骤。
170.步骤1001,第一功能核在第一工作周期内向第二功能核发送即时原语请求。
171.其中,第一功能核为第一时序簇中的多个功能核中的任意一个,第二功能核为第二时序簇中的多个功能核中的任意一个。
172.其中,第一工作周期为第一时序簇的当前工作周期。
173.步骤1002,第二功能核在第二工作周期内接收到即时原语请求后,将该即时原语请求存储在缓存中。
174.其中,第二工作周期为第二时序簇的当前工作周期,第二工作周期不同于第一工作周期。
175.步骤1003,第二功能核在第二工作周期内以多播方式将即时原语请求发送至第二时序簇中的其它功能核。
176.第二时序簇中的其它功能核接收并存储该即时原语请求。第二时序簇中的其它功能核在各自收到多播的即时原语请求后,返回多播应答。
177.步骤1004,第三功能核在第二工作周期后,将即时原语请求对应的即时原语应答发送至第四功能核。
178.其中,第三功能核为第二时序簇中的多个功能核中的任意一个,第四功能核为第一时序簇中的多个功能核中的任意一个。即第三功能核可以是第二功能核,也可以是第二时序簇中除第二功能核以外的一个功能核。第四功能核可以是第一功能核,也可以是第二时序簇中除第一功能核以外的一个功能核。
179.可选的,第三功能核在执行完指定个数的静态原语指令后或者在第二工作周期后的目标工作周期后,将即时原语请求对应的即时原语应答发送至第四功能核。
180.步骤1005,第四功能核接收到即时原语应答后,以多播方式发送至第一时序簇中的其它功能核。
181.步骤1006,第一时序簇的功能核在接收到即时原语应答后,进行与第二时序簇中的功能核之间的数据传输。
182.对于第一时序簇的多个功能核中的至少一个功能核,在接收到即时原语应答后,即可开始进行与第二时序簇中的至少一个功能核之间的数据传输。
183.需要说明的是,本实施例中各个步骤的相关细节可类比参考上述实施例中的相关描述,在此不再赘述。
184.在一个示意性的例子中,两个异步时序簇之间多对多传输(即时序簇1中的功能核1至功能核3与时序簇2中的功能核4至功能核6之间的数据传输)的原理如图11所示。功能核1在工作周期s2开始后获取工作周期s2的静态原语指令2,功能核1根据静态原语指令2所指示的核间通信任务,在工作周期s2内向功能核4发送即时原语请求。功能核4在工作周期k2后,将该即时原语请求存储在缓存中,同时以多播方式将即时原语请求发送至功能核5,并
将指定计数器加一。功能核5执行类似的接收存储操作,即以多播方式将该即时原语请求发送至功能核6,再将指定计数器加一。功能核5在接收到多播的即时原语请求之后,返回多播应答至功能核4;功能核6在接收到多播的即时原语请求之后,返回多播应答至功能核5。功能核4和功能核5在收到了多播应答之后,均将指定计数器减一;在功能核4至功能核6完成工作周期k2的计算总任务且指定计数器为零时,结束工作周期k2。功能核5在工作周期k3开始后执行即时原语请求所指示的即时原语指令,向功能核3返回即时原语应答。功能核3在工作周期s2内接收到即时原语应答后,以多播方式将该即时原语应答发送至功能核2,功能核2以多播方式将该即时原语应答发送至功能核1。功能核1至功能核3中的每个功能核在接收到即时原语应答后,进行与功能核4至功能核6之间的数据传输。
185.同样,在多个异步时序簇之间的数据交互层面,也存在一对一、一对多、多对一以及多对多四种情况。下面仅采用两个示例性的实施例对其中一对多和多对一这两种情况进行介绍。一对一以及多对多的情况,本领域技术人员可以类比推断得到,在此不再赘述。
186.在一种可能的实现方式中,一个异步时序簇和多个时序簇(比如一个异步时序簇为第一时序簇,多个时序簇为第二时序簇和第三时序簇)之间的异步数据传输过程请参考图12,本实施例以该方法用于上述的神经形态芯片系统中来举例说明,该方法包括但不限于以下几个步骤。
187.步骤1201,第一时序簇的功能核在第一工作周期内向第二时序簇的功能核和第三时序簇的功能核发送即时原语请求。
188.其中,第一时序簇的功能核为第一时序簇中的任意一个功能核。第二时序簇的功能核为第二时序簇中的任意一个功能核。第三时序簇的功能核为第三时序簇中的任意一个功能核。第一时序簇和第二时序簇为两个异步时序簇,第一时序簇和第三时序簇为两个异步时序簇。第二时序簇和第三时序簇可以是两个同步时序簇,也可以是两个异步时序簇。
189.两个异步时序簇为具有异步的工作周期的两个时序簇。两个同步时序簇为具有同步的工作周期的两个时序簇。
190.其中,第一工作周期为第一时序簇的当前工作周期。
191.需要说明的是,第一时序簇的功能核可以先向第二时序簇的功能核发送即时原语请求,再向第三时序簇的功能核发送即时原语请求;或者,第一时序簇的功能核可以先向第三时序簇的功能核发送即时原语请求,再向第二时序簇的功能核发送即时原语请求;或者,第一时序簇的功能核可以同时向第二时序簇的功能核和第三时序簇的功能核发送即时原语请求。本公开实施例对此不加以限定。
192.步骤1202,第二时序簇的功能核在第二工作周期内接收到即时原语请求后,将该即时原语请求存储在缓存中,并在第二时序簇内进行即时原语请求的多播传输和多播应答。
193.其中,第二工作周期为第二时序簇的当前工作周期,第二工作周期不同于第一工作周期。
194.步骤1203,第二时序簇的功能核在第二工作周期后,将即时原语请求对应的即时原语应答发送至第一时序簇的功能核。
195.可选的,第二时序簇的功能核在执行完指定个数的静态原语指令后或者在第二工作周期后的目标工作周期后,将即时原语请求对应的即时原语应答发送至第一时序簇。
196.步骤1204,第三时序簇的功能核在第三工作周期内接收到即时原语请求后,将该即时原语请求存储在缓存中,并在第三时序簇内进行即时原语请求的多播传输和多播应答。
197.其中,第三工作周期为第三时序簇的当前工作周期,第三工作周期不同于第一工作周期。
198.步骤1205,第三时序簇的功能核在第二工作周期后,将即时原语请求对应的即时原语应答发送至第一时序簇的功能核。
199.可选的,第三时序簇的功能核在执行完指定个数的静态原语指令后或者在第二工作周期后的目标工作周期后,向第一时序簇的功能核返回即时原语请求对应的即时原语应答。
200.需要说明的是,步骤1202和步骤1203即第二时序簇的功能核接收到即时原语请求后返回即时原语应答的过程,与步骤1204和步骤1205即第三时序簇的功能核接收到即时原语请求后返回即时原语应答的过程可以并列执行,本公开实施例对此不加以限定。
201.步骤1206,第一时序簇的功能核接收到第二时序簇和第三时序簇的功能核发送的即时原语应答后,进行与第二时序簇和第三时序簇的功能核之间的数据传输。
202.需要说明的一点是,第一时序簇中,发送即时原语请求的功能核、接收到即时原语应答(即第二时序簇的功能核发送的即时原语应答)的功能核、与第二时序簇进行数据传输的功能核,可以是相同的,也可以是不同的。第二时序簇中接收到的即时原语请求(即第一时序簇的功能核发送的即时原语请求)的功能核、返回即时原语应答的功能核、与第一时序簇进行数据传输的功能核,可以是相同的,也可以是不同的。第三时序簇中接收到的即时原语请求(即第一时序簇的功能核发送的即时原语请求)的功能核、返回即时原语应答的功能核、与第一时序簇进行数据传输的功能核,可以是相同的,也可以是不同的,本公开实施例对此均不加以限定。
203.需要说明的另一点是,本实施例中各个步骤的相关细节可类比参考上述实施例中的相关描述,在此不再赘述。
204.在一个示意性的例子中,时序簇1与时序簇2和时序簇3之间一对多的异步数据传输的原理如图13所示。时序簇1的功能核在工作周期s2开始后获取工作周期s2的静态原语指令2,时序簇1的功能核根据静态原语指令2所指示的核间通信任务,在工作周期s2内向时序簇2的功能核和时序簇3的功能核发送即时原语请求。时序簇2的功能核在工作周期k2内接收到即时原语请求后,将该即时原语请求存储在缓存中,并在时序簇2内进行即时原语请求的多播传输和多播应答。时序簇2的功能核在工作周期k3内,将即时原语请求对应的即时原语应答发送至时序簇1的功能核。时序簇3的功能核在工作周期r1内接收到即时原语请求后,将该即时原语请求存储在缓存中,并在时序簇3内进行即时原语请求的多播传输和多播应答。时序簇3的功能核在工作周期r2内,将即时原语请求对应的即时原语应答发送至时序簇1的功能核。时序簇1的功能核在工作周期s2内接收到时序簇2和时序簇3的功能核发送的即时原语应答后,时序簇1、时序簇2和时序簇3中的数据交互建立完成,开始进行数据传输。
205.在另一种可能的实现方式中,多个异步时序簇和一个时序簇(比如多个异步时序簇为第一时序簇和第三时序簇,一个时序簇为第二时序簇)之间的异步数据传输过程请参考图14,本实施例以该方法用于上述的神经形态芯片系统中来举例说明,该方法包括但不
限于以下几个步骤。
206.步骤1401,第一时序簇的功能核在第一工作周期内向第二时序簇的功能核发送即时原语请求。
207.其中,第一时序簇的功能核为第一时序簇中的任意一个功能核。第二时序簇的功能核为第二时序簇中的任意一个功能核。
208.其中,第一工作周期为第一时序簇的当前工作周期。
209.第一时序簇和第二时序簇为两个异步时序簇,两个异步时序簇为具有异步的工作周期的两个时序簇。
210.步骤1402,第三时序簇的功能核在第三工作周期内向第二时序簇的功能核发送即时原语请求。
211.其中,第三时序簇的功能核为第三时序簇中的任意一个功能核。第二时序簇和第三时序簇为两个异步时序簇。
212.其中,第三工作周期为第三时序簇的当前工作周期,第三工作周期不同于第二工作周期。
213.步骤1403,第二时序簇的功能核在第二工作周期内接收到第一时序簇的功能核发送的即时原语请求后,将该即时原语请求存储在缓存中,并在第二时序簇内进行即时原语请求的多播传输和多播应答。
214.其中,第二工作周期为第二时序簇的当前工作周期,第二工作周期不同于第一工作周期。
215.步骤1404,第二时序簇的功能核在第二工作周期后,将即时原语请求对应的即时原语应答发送至第一时序簇的功能核。
216.可选的,第二时序簇的功能核在执行完指定个数的静态原语指令后或者在第二工作周期后的目标工作周期后,将即时原语请求对应的即时原语应答发送至第一时序簇的功能核。
217.步骤1405,第一时序簇的功能核接收到第二时序簇的功能核发送的即时原语应答后,进行与第二时序簇的功能核之间的数据传输。
218.步骤1406,第二时序簇的功能核在第二工作周期内接收到第三时序簇的功能核发送的即时原语请求后,将该即时原语请求存储在缓存中,并在第三时序簇内进行即时原语请求的多播传输和多播应答。
219.步骤1407,第二时序簇的功能核在第二工作周期后,将即时原语请求对应的即时原语应答发送至第三时序簇的功能核。
220.可选的,第二时序簇的功能核在执行完指定个数的静态原语指令后或者在第二工作周期后的目标工作周期后,将即时原语请求对应的即时原语应答发送至第三时序簇的功能核。
221.可选的,第二时序簇的功能核在第二工作周期后,按照接收到两个即时原语请求的先后顺序,返回两个即时原语请求各自对应的即时原语应答。
222.步骤1408,第三时序簇的功能核接收到第二时序簇的功能核发送的即时原语应答后,进行与第二时序簇的功能核之间的数据传输。
223.需要说明的是,步骤1402至步骤1404即第二时序簇的功能核接收到即时原语请求
后返回即时原语应答、传输数据的过程,与步骤1405和步骤1407即第三时序簇的功能核接收到即时原语请求后返回即时原语应答、传输数据的过程可以分先后顺序执行,也可以并列执行,本公开实施例对执行顺序不加以限定。
224.在一个示意性的例子中,时序簇1和时序簇3与时序簇2之间多对一的异步数据传输的原理如图15所示。时序簇1的功能核在工作周期s2开始后获取工作周期s2的静态原语指令2,时序簇1的功能核根据静态原语指令2所指示的核间通信任务,在工作周期s2内向时序簇2的功能核和时序簇3的功能核发送即时原语请求。时序簇2的功能核在工作周期k2内接收到即时原语请求后,将该即时原语请求存储在缓存中,并在时序簇2内进行即时原语请求的多播传输和多播应答。时序簇2的功能核在工作周期k3内,将即时原语请求对应的即时原语应答发送至时序簇1的功能核。时序簇1的功能核接收到时序簇2的功能核发送的即时原语应答后,进行与时序簇2的功能核之间的数据传输。时序簇3的功能核在工作周期r2开始后获取工作周期r2的静态原语指令2,时序簇3的功能核根据静态原语指令2所指示的核间通信任务,在工作周期r2内向时序簇2的功能核和时序簇3的功能核发送即时原语请求。时序簇2的功能核在工作周期k2内接收到即时原语请求后,将该即时原语请求存储在缓存中,并在时序簇2内进行即时原语请求的多播传输和多播应答。时序簇2的功能核在工作周期k4内,将即时原语请求对应的即时原语应答发送至时序簇3的功能核。时序簇3的功能核接收到时序簇2的功能核发送的即时原语应答后,进行与时序簇2的功能核之间的数据传输。
225.需要说明的是,众核芯片一般具有良好的可扩展性,可以通过众核芯片互联构成更大规模的芯片阵列即上述的神经形态芯片系统。属于不同众核芯片中的功能核,在执行上工作周期通常也是异步的,本公开实施例所提供的通信方法也可以用于神经形态芯片系统中的数据传输。神经形态芯片系统中的多个众核芯片中可以是全局同步运行的,不同的众核芯片各自的功能核之间按照本公开实施例提供的通信方法进行数据交互;神经形态芯片系统中的多个众核芯片也可以是异步运行的,本公开实施例提供的通信方法应用于跨芯片的两个或多个异步时序簇之间的数据传输,比如第一时序簇为第一芯片中的时序簇,第二时序簇为第二芯片中的时序簇,第一芯片和第二芯片在工作周期上是异步的。
226.综上所述,本公开实施例提供了一种具有可划分异步时序簇的众核芯片,在该众核芯片中,通过即时原语请求的触发即握手机制实现了异步时序簇之间的数据传输。此外,保证了异步时序簇各自对应的功能核(1对1功能核、多对1功能核、1对多功能核、多对多功能核)之间数据完整性的传递流程,包括:即时原语请求的发送、即时原语请求的接收和组内多播、即时原语请求的多播应答、即时原语请求对应的即时原语应答和执行。此外,在多个具有即时原语通信机制的众核芯片构成的芯片阵列系统中,处于不同芯片中的异步时序簇可以通过本公开实施例提供的通信方法来传输数据。
227.以下为本公开实施例的装置实施例,对于装置实施例中未详细阐述的部分,可以参考上述方法实施例中公开的技术细节。
228.请参考图16,其示出了本公开一个示例性实施例提供的众核芯片的结构示意图。该众核芯片至少包括第一时序簇1610和第二时序簇1620,第一时序簇1610和第二时序簇1620在工作周期上是异步的。该众核芯片包括:
229.第一时序簇1610中的功能核,用于向第二时序簇1620中的功能核发送即时原语请
求,即时原语请求用于指示第二时序簇1620中的功能核在第二时序簇1620的当前工作周期后返回即时原语应答;
230.第一时序簇1610中的功能核,还用于接收到即时原语应答后,进行与第二时序簇1620中的功能核之间的数据传输。
231.在一种可能的实现方式中,
232.第一时序簇1610中的功能核,还用于获取第一工作周期的静态原语指令,静态原语指令用于指示预先配置的核间通信任务,第一工作周期为第一时序簇1610的当前工作周期;
233.第一时序簇1610中的功能核,还用于根据核间通信任务,在第一工作周期内向第二时序簇1620中的功能核发送即时原语请求。
234.在另一种可能的实现方式中,
235.第二时序簇1620中的功能核,用于在第二工作周期内接收到即时原语请求后,将即时原语请求存储在缓存中,第二工作周期为第二时序簇1620的当前工作周期,第二工作周期不同于第一工作周期;
236.第二时序簇1620中的功能核,还用于在第二工作周期后返回即时原语请求对应的即时原语应答。
237.在另一种可能的实现方式中,
238.第二时序簇1620中的功能核,还用于在执行完指定个数的静态原语指令后或者在第二工作周期后的目标工作周期后,返回即时原语请求对应的即时原语应答;
239.其中,目标工作周期与第二工作周期之间的周期个数差值为预设阈值。
240.在另一种可能的实现方式中,
241.第一时序簇1610中的功能核,还用于接收到即时原语应答后,根据第一工作周期的静态原语指令将待发送的数据发送至第二时序簇1620中的功能核,和/或,接收第二时序簇1620中的功能核发送的数据。
242.在另一种可能的实现方式中,
243.该众核芯片,还用于根据待执行的计算总任务将众核芯片中的多个功能核进行划分,得到具有异步的工作周期的多个时序簇,多个时序簇至少包括第一时序簇1610和第二时序簇1620;
244.其中,每个时序簇包括具有同步的工作周期的一个或者多个功能核,功能核用于执行计算总任务的部分计算任务。
245.在另一种可能的实现方式中,第二时序簇1620包括多个功能核,
246.第二时序簇1620中的任意一个功能核,还用于在接收到第一时序簇1610中的功能核发送的即时原语请求后,在第二时序簇1620的当前工作周期将即时原语请求以多播方式发送至第二时序簇1620中的其它功能核。
247.在另一种可能的实现方式中,该众核芯片,还用于:
248.对于第二时序簇中的其它功能核中的每个功能核,在接收到多播的即时原语请求后返回多播应答;
249.在第二时序簇中的各个功能核完成第二时序簇的当前工作周期的计算总任务,且第二时序簇中的其它功能核均返回多播应答时,结束第二时序簇的当前工作周期。
250.在另一种可能的实现方式中,第一时序簇1610包括多个功能核,
251.第一时序簇1610中的任意一个功能核,还用于接收到即时原语应答后,以多播方式发送至第一时序簇1610中的其它功能核。
252.关于上述实施例中的众核芯片,其中第一时序簇和第二时序簇中的功能核执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
253.本公开实施例还提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述各个方法实施例中的方法。
254.本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
255.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd

rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
256.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
257.用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
258.这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/
或框图中各方框的组合,都可以由计算机可读程序指令实现。
259.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
260.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
261.附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
262.以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1