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

技术领域

本公开涉及计算设备领域,尤其涉及一种触发方法。

背景技术

大数据信息网络核智能移动设备的蓬勃发展产生了海量的非结构化信息,伴生了对这些信息的高能效处理需求的急剧增长。传统冯诺依曼架构芯片采用总线通信、同步、串行和集中的工作方式,遵循摩尔定律增加密度,预计在未来10到15年内微缩将到达物理极限,发展必将受到根本性限制。

由此衍生出众核神经形态芯片架构,这种结构不同于传统的计算机处理方式,通过信息的分布式存储和并行协同处理,处理一些非形式化问题时具有较大优势。而传统的众核神经形态芯片架构的触发机制具有较大的局限性,无法进行独立的任务划分。

发明内容

有鉴于此,本公开提出了一种触发方法。

根据本公开的一方面,提供了一种触发方法,其特征在于,所述方法包括:

接收当前任务的执行周期对应的第一触发信号,所述第一触发信号对应于处理器中的功能核集合,根据所述第一触发信号,生成一个或多个第二触发信号;

根据所述一个或多个第二触发信号控制所述功能核集合中、与各第二触发信号相对应的功能核执行所述当前任务的各子任务。

在一种可能的实现方式中,所述方法还包括:

在接收到所述第一触发信号时,启动第一计时时钟,所述第一计时时钟用于对所述当前任务的执行周期计时;

在所述第一计时时钟达到第一阈值后,判断是否满足触发下一任务的执行周期的条件。

在一种可能的实现方式中,所述方法还包括:

在接收到所述一个或多个第二触发信号时,启动一个或多个第二计时时钟,所述一个或多个第二计时时钟分别用于对当前各子任务的执行周期计时;

在所述第二计时时钟达到第二阈值后,判断是否满足触发所述当前任务中当前各子任务的下一子任务的执行周期的条件。

在一种可能的实现方式中,所述方法还包括:

在所述第一计时时钟到达第三阈值的情况下,生成强制结束信号,所述强制结束信号用于强制结束所述当前任务中当前各子任务的执行,从而强制结束当前任务的执行。

在一种可能的实现方式中,所述方法还包括:

接收所述第一触发信号对应的第一结束时钟数,所述第一结束时钟数用于确定所述第一阈值。

在一种可能的实现方式中,在所述第一计时时钟达到所述第一阈值后,判断是否满足触发所述下一任务的执行周期的条件,包括:

在所述第一计时时钟达到所述第一阈值后,在所述当前任务的所有子任务全部结束执行且所述当前任务不是最后一个任务的情况下,确定满足触发所述下一任务的执行周期的条件,并生成所述下一任务的执行周期对应的第一触发信号。

在一种可能的实现方式中,所述方法还包括:

接收所述一个或多个第二触发信号对应的一个或多个第二结束时钟数,所述第二结束时钟数用于确定一个或多个的所述第二阈值。

在一种可能的实现方式中,在所述第二计时时钟达到所述第二阈值后,判断是否满足触发所述当前任务中当前各子任务的所述下一子任务的执行周期的条件,包括:

在所述第二计时时钟达到所述第二阈值后,在所述各第二触发信号对应的所述功能核全部结束当前各子任务的执行的情况下,确定满足触发所述当前任务中当前各子任务的所述下一子任务的执行周期的条件,并生成各下一子任务对应的所述第二触发信号。

在一种可能的实现方式中,所述方法还包括:

在满足预设条件的情况下,释放所述第一触发信号对应的处理器中的功能核集合,所述预设条件包括:

所述当前任务为最后一个任务且在所述当前任务结束执行后;或者

在强制结束所述当前任务的执行后。

通过根据接收当前任务的第一触发信号,生成一个或多个第二触发信号,根据一个或多个第二触发信号控制对应的功能核执行当前任务的各子任务,根据本公开的各方面能够支持多个异步任务的并行或混合运算,同时可以实现实现对独立任务的分割,加快了执行速度,减少运行时间,提升芯片的性能,未被选中的功能核处于休眠状态,从而降低功耗。

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

图1示出了根据本公开实施例的触发方法的分组示意图;

图2示出了根据本公开实施例的触发方法的流程图;

图3示出了根据本公开实施例的触发方法的流程图;

图4示出了根据本公开实施例的触发方法的第一级触发的时序示意图;

图5示出了根据本公开实施例的触发方法的第二级触发的时序示意图。

图6示出了根据本公开实施例的触发系统的接口模块结构图;

具体实施方式

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。

随着神经网络技术领域的不断发展,产生了海量的非结构化信息,伴生了对这些信息的高能效处理需求的急剧增长。其中,众核神经形态芯片架构不同于传统的计算机处理方式,通过信息的分布式存储和并行协同处理,处理一些非形式化问题时具有较大优势。然而传统芯片中的触发机制在执行多网络时无法进行独立的网络任务划分,有较大的局限性。

为了进一步提高性能,本公开实施例提供了一种触发装置,通过两级触发控制功能核,第一级触发可以进行不同网络或应用的划分,第二级触发可以分割网络或应用内相似的计算任务,并分配在在功能核中进行运算,有效的提高了芯片的性能,具有较高的应用价值。

本公开实施例的装置可以应用于众核神经形态芯片中,图1示出了根据本公开实施例的触发装置的分组示意图。其中,step_grp和Phase_grp分别可以表示相应的功能核集合,step_grp0、step_grp1、step_grp2表示与各第一触发信号对应的功能核集合,Phase_grp0、Phase_grp1、Phase_grp2、Phase_grp3、Phase_grp4、Phase_grp5表示与各第二触发信号相对应的功能核集合,C00至C44表示不同的功能核。例如,Phase_grp0对应于包含功能核C00、C01、C10、C11的功能核集合,Phase_grp1、Phase_grp2、Phase_grp3、Phase_grp4、Phase_grp5与各功能核的关系同理所述,step_grp0对应于Phase_grp0、Phase_grp1、Phase_grp2对应的三个功能核集合,step_grp1、step_grp2与Phase_grp3、Phase_grp4、Phase_grp5的关系同理所述,如图所示,一个Phase_grp可以被包含在一个或多个step_grp中,一个功能核可以被包含在一个或多个Phase_grp中(如C13被包含在Phase_grp1中,同时被包含在Phase_grp3中),同一step_grp可以用于执行同一网络任务,同一step_grp下的每个Phase_grp可以用于执行同一网络任务下相同或相似的任务,同一Phase_grp下的功能核可以用于执行原语操作,在一种可能的实现方式中,在结束某一网络任务或应用任务后,可以对功能核集合进行重新划分。

图2示出了根据本公开实施例的触发方法的流程图。如图2所示,所述方法包括:

步骤S101,接收当前任务的执行周期对应的第一触发信号,所述第一触发信号对应于处理器中的功能核集合,根据所述第一触发信号,生成一个或多个第二触发信号;

步骤S102,根据所述一个或多个第二触发信号控制所述功能核集合中、与各第二触发信号相对应的功能核执行所述当前任务的各子任务。

根据本公开实施例,通过接收当前任务的第一触发信号,生成一个或多个第二触发信号,根据一个或多个第二触发信号控制对应的功能核执行当前任务的各子任务,可以支持多个异步任务的并行或混合运算,同时通过将当前任务划分成各子任务,使内部具有相似任务的功能核可以同时执行,这样通过二级的触发机制,可以实现对独立任务的分割,加快了执行速度,减少运行时间,提升芯片的性能;通过触发信号控制相应的功能核,可以使未被选中的功能核处于休眠状态,从而降低功耗。其中,所述任务可以是网络或应用任务,例如进行神经网络运算的任务(例如可以是VGG网络或ResNet50网络),或者运行应用软件的任务等。

在一种可能的实现方式中,该方法可应用于包括多个功能核(或称为处理器核)的片上系统中,例如图1所示。该方法可以由片上系统中用于触发的部件来实现(例如参见下文中的图6)。每个第一触发信号对应于片上系统中一部分功能核,即功能核集合,该第一触发信号可以通过生成第二触发信号来触发这些功能核进行工作,执行各子任务,每个第二触发信号可以对应于该一部分功能核中的一个或多个。可以根据需要人为或自动设置第一触发信号、第二触发信号与功能核之间的对应关系。上述对应关系可以在执行完一个完整的任务(例如完成一次神经网络的运算)之后释放,以便后续重新设置。在一种可能的实现方式中,可以在开始一个完整的任务前对第一触发信号、第二触发信号与功能核之间的对应关系进行重新设置,具体地,如果存在所需要的足够数量的空闲的功能核,就可以完成设置并开始执行一个完整的任务,如果不存在空闲的功能核,可以等待其他任务结束执行后释放功能核,在空闲功能核的数量满足需要后,完成设置并开始执行一个完整的任务。由于同一个功能核可以分别对应于不同的第二触发信号或第一触发信号,可以在完成设置后对可以复用的功能核设置复用信号,使得该功能核在其他任务设置功能核时,可以作为空闲的功能核参与运算,使得功能核得到充分利用,提高系统的性能和利用率。

在一种可能的实现方式中,当前任务的执行周期之内,可包含一个或多个子任务的执行周期,即在两个第一触发信号之间,可以出现多个周期的第二触发信号。以神经网络运算任务为例,对于运算量较小的神经网络,第一触发信号可以在一次执行周期内完成整个神经网络的一次运算(当前任务),其中,第二触发信号在每个周期内可完成神经网络运算的一个环节,例如一个网络层的运算,而每个第二触发信号对应的功能核可执行各环节中的相似运算(子任务),例如加法或乘法,各功能核可以用于执行相应的原语操作。例如,仍以图1为例,Phase_grp0对应的四个功能核C00、C01、C10、C11可分别执行加法,Phase_grp1对应的6个功能核C02、C03、C12、C13、C22、C23可分别执行乘法,等等,本公开对此不作限制。对于运算量较大的神经网络,第一触发信号可以在一次执行周期内完成整个神经网络的一次运算中的一个环节,例如一个网络层的运算(当前任务),也就是说,当前任务也可以是更上一级任务(整个神经网络运算任务)的子任务,在这种情况下,子任务之间功能核的设置可以沿用,子任务和子任务的执行周期之间可以不需要释放功能核并重新划分。第二触发信号在每个周期内可完成一个环节中的一部分,例如一个网络层的运算中的一次卷积运算,而每个第二触发信号对应的功能核可执行各环节中的相似运算(子任务),在一种可能的实现方式中,在完成神经网络运算任务的一个环节后,可以沿用第一触发信号和第二触发信号与功能核的对应关系,在完成整个神经网络任务后,释放功能核。

在一种可能的实现方式中,所述方法还包括,在接收到所述第一触发信号时,启动第一计时时钟,所述第一计时时钟用于对所述当前任务的执行周期计时;在所述第一计时时钟达到第一阈值后,判断是否满足触发下一任务的执行周期的条件。

其中,在满足触发下一任务的执行周期的条件的情况下,触发下一任务的执行周期,即开始执行下一任务,下一任务的执行方式可以与当前任务相同。

其中,第一计时时钟在接收到第一触发信号时开始计时,第一计时时钟可以在每过一个基准时钟周期时计时一次,并判断是否达到第一阈值。这里的接收的第一触发信号,包括从外部接收的第一触发信号,也包括在满足下文所述条件情况下自动生成的第一触发信号,每当新的第一触发信号产生时,第一计时时钟可从0开始重新计时。

通过第一计时时钟与第一阈值的比较,判断是否满足触发下一任务的执行周期的条件,可以实现对当前任务执行周期的控制,从而能够更好地调度不同的任务,减少运行时间,提高执行效率。

在一种可能的实现方式中,所述方法还包括:在接收到所述一个或多个第二触发信号时,启动一个或多个第二计时时钟,所述一个或多个第二计时时钟分别用于对当前各子任务的执行周期计时;在所述第二计时时钟达到第二阈值后,判断是否满足触发所述当前任务中当前各子任务的下一子任务的执行周期的条件。

其中,在满足触发当前各子任务的下一子任务的执行周期的条件的情况下,触发当前各子任务各自的下一任务的执行周期,即开始执行各下一子任务,下一子任务的执行方式可与当前子任务相同,依次类推,直至当前任务的所有子任务执行完毕或者接收到强制结束信号结束子任务的执行。

其中,第二计时时钟在接收到第二触发信号时开始计时,第二计时时钟可以在每过一个时钟数时,判断是否达到第二阈值;每个第二触发信号可以对应一个第二计时时钟,不同的第二计时时钟可以对应着不同的第二阈值,例如,一个第二触发信号对应的功能核集合接收到第二触发信号后,可以启动与该功能核集合对应的第二计时时钟,并与相应的第二阈值比较;各功能核集合的执行周期可以相同,也可以不同。这里的接收的第二触发信号,包括根据第一触发信号生成的第二触发信号,也包括在满足下文所述条件情况下自动生成的第二触发信号,每当新的第二触发信号产生时,相应的第二计时时钟可从0开始重新计时。

通过第二计时时钟与第二阈值的比较,判断是否满足触发当前各子任务的下一子任务的执行周期的条件,可以实现对各子任务执行周期的控制,从而能够更好地调度各子任务,同时由于不同的子任务可以有不同的执行周期,可以实现子任务的异步执行,进一步加快各子任务的执行速度,减少当前任务的运行时间。

在一种可能的实现方式中,所述方法还包括:接收所述第一触发信号对应的第一结束时钟数,所述第一结束时钟数用于确定所述第一阈值。

例如第一结束时钟数为100,则第一阈值为100个基准时钟周期,当第一计时时钟计数到第100个基准时钟周期时,达到第一阈值。

其中,第一结束时钟数的值可以预先设定,不同的第一触发信号对应的功能核集合可以对应不同的第一结束时钟数。

通过根据预设的第一结束时钟数确定第一阈值,可以实现对不同网络应用的执行周期的事前控制与部署,从而实现不同任务的异步独立运行,加快运行速度。

在一种可能的实现方式中,所述方法还包括:接收所述一个或多个第二触发信号对应的一个或多个第二结束时钟数,所述第二结束时钟数用于确定一个或多个的所述第二阈值。

例如第二结束时钟数为20,则第二阈值为20个基准时钟周期,当第二计时时钟计数到第20个基准时钟周期时,达到第二阈值。

其中,第二结束时钟数的值可以预先设定,不同的第二触发信号对应的功能核集合可以对应相应的第二结束时钟数。

通过根据预设的第二结束时钟数确定第二阈值,可以实现对不同子任务的执行周期的事前控制与部署,从而实现不同子任务的异步独立运行,加快运行速度。

其中,第一结束时钟数可以是根据不同任务而改变的变化值,在每次触发当前任务的执行周期时接收,也可以是预设的固定值,只需要接收一次即可,后续可以重复使用;第二结束时钟数可以是根据不同子任务而改变的变化值,在每次触发当前任务下子任务的执行周期时接收,也可以是预设的固定值,只需要接收一次即可,后续可以重复使用。

在一种可能的实现方式中,所述方法还包括:在满足预设条件的情况下,释放所述第一触发信号对应的处理器中的功能核集合,所述预设条件包括:所述当前任务为最后一个任务且在所述当前任务结束执行后;或者在强制结束所述当前任务的执行后。

例如,如果当前任务是一个神经网络运算任务的最后一个环节时,在当前任务结束执行后,整个神经网络运算任务完成,可以释放第一触发信号对应于处理器中的功能核集合,也就是说这些功能核集合可以变成空闲状态,供其他任务使用,而在强制结束当前任务的执行后,由于当前任务的结束执行是超时后的强制结束,因此可以导致整个神经网络运算任务的结束执行,也可以释放第一触发信号对应于处理器中的功能核集合。在结束执行当前任务后,还可以对相应的第一计时时钟和各第二计时时钟进行重置清零操作。

通过在结束执行任务后释放第一触发信号对应于处理器中的功能核集合,可以在只有少数任务执行时,使未被选中的功能核处于休眠状态,降低功耗,同时,及时释放功能核可以使得空闲状态下的功能核可以被其他任务选中,提高运行效率,减少其他任务的等待时间,加快执行速度。

以下通过一些示例,来说明结束当前任务的执行和触发下一任务或下一子任务的执行周期的条件。

在一种可能的实现方式中,所述方法还包括:在所述第一计时时钟到达第三阈值的情况下,生成强制结束信号,所述强制结束信号用于强制结束所述当前任务中当前各子任务的执行,从而强制结束当前任务的执行。

其中,所述第三阈值可以大于第一阈值,可以是根据不同任务而改变的变化值,在每次触发当前任务的执行周期时接收,也可以是预设的固定值,只需要接收一次即可,后续可以重复使用。

其中,在生成强制结束信号后,可以发送给第一触发信号对应的、各第二触发信号对应的功能核集合,从而结束所述当前任务中当前各子任务的执行,从而强制结束当前任务的执行。

具体地,在当前任务达到第三阈值而仍未完成执行的情况下,当前任务可能出现程序错误而导致卡死,例如,对于某个神经网络任务中的某个环节,预估的执行该环节任务所需要的时钟数为500个时钟数,这样,在第一计时时钟到达1000个时钟数,该环节任务仍未结束执行的情况下,很可能是出现了程序错误,进入了死循环无法结束(这是一种病态的状态),需要强制结束,因此在这种情况下可以将第三阈值定为1000个时钟数,在到达第三阈值时仍未结束任务,就强制结束。如果当前任务是上一级任务的某一个子任务,可以强制结束整个上一级任务,在强制结束整个任务的执行后,可以释放第一触发信号对应的功能核集合,避免占用不必要的功能核资源。

通过对当前任务实现强制结束的机制,控制当前任务执行的最大时钟数,可以避免因为程序出错等原因而导致的任务无法结束的死循环,避免了浪费大量不必要功能核资源的可能性,进一步降低了功耗,提高的运行的效率。

在一种可能的实现方式中,在所述第一计时时钟达到所述第一阈值后,判断是否满足触发所述下一任务的执行周期的条件,包括:在所述第一计时时钟达到所述第一阈值后,在所述当前任务的所有子任务全部结束执行且所述当前任务不是最后一个任务的情况下,确定满足触发所述下一任务的执行周期的条件,并生成所述下一任务的执行周期对应的第一触发信号。

例如,在所述第一计时时钟达到所述第一阈值,且第一触发信号对应的各第二触发信号对应的功能核全部执行完其所有的子任务时,如果当前任务不是最后一个任务,可以触发下一个任务的执行周期。

其中,在所述当前任务的所有子任务全部结束执行且所述当前任务为最后一个任务的情况下,可以结束任务的执行,并释放对应的功能核集合。

当前任务的所有子任务全部结束执行,即表示当前任务执行完毕,通过判断当前任务的所有子任务是否全部结束执行,并在全部结束执行时触发下一个任务的执行周期,可以尽可能的减少功能核的闲置,最大程度地利用各功能核,提高执行的效率。

在一种可能的实现方式中,在所述第二计时时钟达到所述第二阈值后,判断是否满足触发所述当前任务中当前各子任务的所述下一子任务的执行周期的条件,包括:在所述第二计时时钟达到所述第二阈值后,在所述各第二触发信号对应的所述功能核全部结束当前各子任务的执行的情况下,确定满足触发所述当前任务中当前各子任务的所述下一子任务的执行周期的条件,并生成各下一子任务对应的所述第二触发信号。

具体地,触发第二触发信号对应的功能核集合的方法可以有:在所述功能核集合的第一个子任务开始执行之前,根据第一触发信号生成的第二触发信号触发,以及在所述功能核集合的第一个子任务开始执行之后,根据自动生成的第二触发信号触发。

通过在当前子任务对应的功能核集合未全部结束执行的情况下,等待功能核集合全部结束执行后,再触发下一子任务的执行周期,可以防止当前子任务未完成就开始下一个子任务、导致当前任务卡在某一子任务无法继续的可能,从而防止了报错的情况,使得各任务的部署和调度能顺利执行,提高了相应的性能。

图3示出了根据本公开实施例的触发方法的流程图,如图3所示,具体步骤包括:

步骤S010,接收当前任务的执行周期对应的第一触发信号。

其中,第一触发信号如果是从外部接收的,当前任务可以是新的任务,这里的新的任务可以是上一级任务的第一个子任务,或者是一个第一触发信号执行周期内就可以完成的任务;第一触发信号如果是自动生成的,当前任务可以是上一级任务除第一个子任务外的其他子任务。

其中,在接收到第一触发信号后,会对第一计时时钟清零,并重新开始计时。

步骤S020,根据所述第一触发信号,生成一个或多个第二触发信号。

步骤S030,根据所述一个或多个第二触发信号控制所述功能核集合中、与各第二触发信号相对应的功能核执行所述当前任务的各子任务。

步骤S040,判断第二计时时钟达到第二阈值且相应功能核全部结束当前子任务的执行,如果是,则执行步骤S050,否则继续执行步骤S040。

这里的判断以某个第二级触发对应的功能核集合为例(该功能核集合可以通过第二触发信号触发一个或多个对应的子任务),判断该功能核集合接收到的第二触发信号对应的第二计时时钟是否达到第二阈值且对应的功能核是否全部结束其当前子任务的执行,针对其余第二触发信号的判断同理。

需要说明的是,第二计时时钟在接收到新的子任务对应的第二触发信号时会重新计时,且子任务之间可能存在因某个子任务超时而造成的冗余任务时长,因此在第二计时时钟未到达第二阈值时,第一计时时钟可能已经到达第一阈值。即,可能出现第一计时时钟达到第一阈值,而所有子任务未全部结束执行的情况。

步骤S050,判断当前子任务是否为第二触发信号对应的功能核集合的最后一个子任务,如果是,则输出表示所有子任务结束执行的信号,供步骤S070进行判断,否则执行步骤S060。

需要说明的是,由于第二级触发中的功能核集合可以通过一个或多个第二触发信号、触发一个或多个子任务的执行周期,且第二级触发中包括一个或多个功能核集合,因此,即使所述子任务为该功能核集合的最后一个子任务,也不意味着所述子任务为当前任务的最后一个子任务。

步骤S060,触发所述当前任务中当前各子任务的下一子任务的执行周期。

具体地,在触发所述当前任务中当前各子任务的下一子任务的执行周期后,返回执行步骤S040。

步骤S070,判断第一计时时钟是否达到第一阈值,如果是,则执行步骤S080,否则继续执行步骤S070。

其中,第一计时时钟对应第一触发信号,可在接收第一触发信号后开始第一计时时钟的计时,在一种可能的实现方式中,第一阈值可以根据第一触发信号对应的第一结束时钟数确定。

具体地,若第一计时时钟未达到第一阈值,则继续第一计时时钟的计时并继续判断是否达到第一阈值

步骤S080,判断是否当前任务的所有子任务全部结束执行,如果是,则执行步骤S090,否则执行步骤S110。

步骤S090,判断当前任务是否为最后一个任务,如果是,则执行步骤S130,否则执行步骤S100。

步骤S100,触发当前任务的下一任务的执行周期。

具体地,如果当前任务不是最后一个任务,可以通过自动生成的第一触发信号,触发当前任务的下一任务的执行周期,在这里当前任务和下一任务可以看作上一级任务的子任务。

步骤S110,判断第一计时时钟是否达到强制结束时钟,如果是,则执行步骤S120,否则返回执行步骤S080。

具体地,在当前任务的所有子任务未全部结束执行的情况下,首先要判断第一计时时钟是否达到强制结束时钟,如果是,则可能存在程序出错的情况,需要强制结束任务,否则返回等待所有子任务全部结束执行,或者在全部结束执行前达到强制结束时钟时,进行后续步骤。

步骤S120,生成强制结束信号。

具体地,在第一计时时钟达到强制结束时钟后,生成强制结束信号,可以发送给第一触发信号对应的、各第二触发信号对应的功能核集合,从而结束所述当前任务中当前各子任务的执行,从而强制结束当前任务的执行。

步骤S130,结束工作并释放第一触发信号对应的功能核集合。

其中,在当前任务的所有子任务全部结束执行,且当前任务为最后一个任务时,当前任务可以是需要多个执行周期的上一级任务的子任务,也可以是只需一个执行周期即可完成的一个完整的任务,无论何种情况,所述上一级任务或上述完整的任务已全部结束执行,此时可以释放对应的功能核集合,供其他任务使用;在第一计时时钟达到强制结束时钟,而强制结束执行的当前任务,无论其是否是当前任务的最后一个子任务,都可以结束其所述上一级任务或所述完整的任务的执行,释放对应的功能核,供其他任务使用。

图4示出了根据本公开实施例的触发装置的第一级触发的时序示意图,其中,clk表示基准时钟,clk置1表示一个基准时钟数;step group0和step group1表示与各第一触发信号对应的功能核集合,不同的第一触发信号可以用于触发各自对应的功能核集合执行不同的任务,例如一个第一触发信号用于执行一神经网络的运算任务,而另一第一触发信号用于执行另一神经网络的运算任务,或一应用软件的运行任务等。与第一触发信号对应的功能核集合可以称为节拍时序组;step_ck0表示step group0对应的第一触发信号,可以称为step group0对应的节拍触发信号;step_ck0置1表示接收到一个节拍触发信号(可以是来自于外部输入的节拍触发信号,也可以是在满足条件的情况下自动生成的节拍触发信号,以下同理);step_ck1表示step group1对应的节拍触发信号,step_ck1置1表示接收到一个节拍触发信号;p_grp0_ck和p_grp1_ck分别表示step group0对应的两个第二触发信号,第二触发信号可以称为相位触发信号,第二触发信号对应的功能核合集可以称为相位时序组,相位触发信号置1表示接收到一个相位触发信号(可以是根据节拍触发信号生成的相位触发信号,也可以是在满足条件的情况下自动生成的相位触发信号,以下同理);p_grp2_ck、p_grp3_ck和p_grp4_ck分别表示step group1对应的三个相位触发信号,相位触发信号置1表示接收到一个相位触发信号;s_grp0_finish表示step group0的对应的功能核集合全部结束执行的信号,即表示当前任务(也就是step group0对应的任务)所有的子任务全部结束执行的信号,可以称为step group0的节拍结束信号,节拍结束信号在stepgroup0内所有相位时序组结束执行相应的全部子任务时则置1,否则置0;s_grp1_finish表示step group1的对应的功能核集合全部结束执行的信号,可以称为step group1的节拍结束信号;step group1内所有相位时序组结束执行相应的全部子任务时则置1,否则置0。

如图4所示,在一种可能的实现方式中,对于step group0,当接收到step_ck0时触发p_grp0_ck和p_grp1_ck,同时触发step group0组内所有的相位时序组,开始新的相位时序组工作周期(可以称为执行周期),其中,不同相位时序组的相位时序组工作周期可以相同,也可以不同,接收到节拍触发信号后可以启动节拍计时时钟(可以称为第一计时时钟),当节拍计时时钟的时钟数等于节拍结束时钟数时,可以检查节拍时序组内的相位时序组是否全部结束工作,也可以检查是否接收到s_grp0_finish置1的信号,如果是(此时s_grp0_finish置1)则触发下一个节拍时序组工作周期(此时step_ck0自动置1)或者结束工作并释放节拍时序组内的所有功能核,否则等待全部结束工作后开始下一个节拍时序组工作周期或者结束工作,如果在到达强制结束时钟时仍未全部结束工作,将会生成强制结束信号,强制结束节拍时序组下所有相位时序组的执行,并将相关的第一计时时钟与各第二计时时钟重置清零。对于step_ck1同理。

需要说明的是,同一节拍时序组下的相位时序组的工作周期时钟数可以相同,也可以不同;属于同一节拍时序组的相位时序组在接收到相位触发信号、触发其对应的第一个子任务时是同步的,这些相位时序组在第一个子任务结束执行后、后续子任务的自动触发可以是异步的,属于不同节拍时序组的相位时序组可以异步被触发。不同的节拍时序组也可以是异步的。

图5示出了根据本公开实施例的触发装置的第二级触发的时序示意图,图5更为详细地描述了图4中step group0的工作时序。其中,clk表示基准时钟,clk置1表示1个基准时钟数;s_ck表示第一触发信号,可以称为节拍触发信号,phase group0和phase group1表示不同的第二触发信号对应的功能核集合,第二触发信号对应的功能核集合可以称为相位时序组;s_ck置1表示接收到一个节拍触发信号;p_grp0_ck表示phase group0对应的第二触发信号,第二触发信号可以称为相位触发信号;p_grp0_ck置1表示接收到一个对应的相位触发信号;p_grp1_ck表示phase group1对应的相位触发信号;p_grp1_ck置1表示接收到一个对应的相位触发信号;core0、core1和core2分别表示phase group0下的三个功能核,core3和core4分别表示phase group1下的两个功能核;p_grp0_finish表示phase group0的功能核全部结束执行的信号,可以称为phase group0相位结束信号;phase group0内所有功能核结束执行操作则置1,否则置0,s_grp1_finish表示phase group1的功能核全部结束执行的信号,可以称为phase group1的相位结束信号,phase group1内所有功能核结束执行操作则置1,否则置0。其中,节拍结束信号可以由节拍时序组下、各相位时序组对应的相位时序组的相位结束信号相与得到,也就是说,p_grp0_finish和p_grp1_finish相与可得到图5中的s_grp0_finish。p0、p1、p2和p3分别表示对应功能核处于对应的执行操作状态。

如图5所示,在一种可能的实现方式中,对于phase group0,当接收到s_ck时同步触发p_grp0_ck,同时触发phase group0组内所有的功能核,控制core0、core1和core2开始执行操作,其中,不同功能核执行操作的时间可以相同,也可以不同,功能核开始工作后可以启动相位计时时钟(可以称为第二计时时钟),当相位计时时钟的时钟数等于相位结束时钟数时,可以检查相位时序组内的功能核是否全部结束当前子任务,如果是,则触发下一个相位时序组工作周期(可以称为执行周期),否则等待全部结束执行当前子任务的操作后开始下一个相位时序组工作周期。如果相位时序组内的功能核对当前任务的所有子任务结束执行,则p_grp0_finish置1,当相位时序组内的功能核未全部结束执行当前任务的所有子任务的操作时,将继续执行直到全部执行完成后开始下一任务,或者接收到节拍时序组的强制结束信号、强制结束当前所有子任务。对于phase group1同理。

需要说明的是,同一相位时序组下的各功能核执行操作的时钟数可以相同,也可以不同;属于同一相位时序组的功能核是同步被触发的,属于不同相位时序组下的各功能核可以异步被触发。

上述方法可以应用在如图6所示的系统中,图6示出了根据本公开实施例的触发系统的接口示意图,其中,触发系统由触发模块100组成,触发模块100包括第一触发模块101和第二触发模块102,外部触发模块200、寄存器模块300以及功能核模块400分别和触发模块100相连接。

在一种可能的实施方式中,外部触发模块200向第一触发模块101输入第一触发信号,第一触发模块101根据第一触发信号可以生成一个或多个第二触发信号,输出至第二触发模块102,触发第二触发信号对应的当前任务下子任务的执行周期。第二触发模块102接收所述一个或多个第二触发信号,并可以将接收到的各第二触发信号输出给功能核模块400,功能核模块中包括各功能核,从而控制各子任务对应的功能核集合开始执行工作。其中,第一触发信号可以由外部触发模块200生成并输出给第一触发模块101,也可以由第一触发模块101自动生成,例如在满足上述满足触发所述下一任务的执行周期的条件时,第一触发模块101可以自动生成下一任务的执行周期的第一触发信号;第二触发信号可以由第一触发模块100根据第一触发信号生成,也可以由第二触发模块102自动生成,例如,在满足上述触发所述当前任务中当前各子任务的所述下一子任务的执行周期的条件时,第二触发模块102可以自动生成下一子任务的执行周期的第二触发信号。

其中,第一结束时钟数、强制结束时钟数可以由寄存器模块300输出给第一触发模块101,第一结束时钟数和强制结束时钟数的值可以在寄存器模块300中预先设定;第二结束时钟数可以由寄存器模块300输出给第二触发模块102,第二结束时钟数的值可以在寄存器模块300中预先设定,

具体地,第一结束时钟数和强制结束时钟数可以是根据不同任务而改变的变化值,在每次第一触发模块101触发当前任务的执行周期时,由寄存器模块300向第一触发模块101输出,也可以是预设的固定值,只需要由寄存器模块300向第一触发模块101输出一次即可,后续可以重复使用;第二结束时钟数可以是根据不同子任务而改变的变化值,在每次第二触发模块102触发当前任务下子任务的执行周期时,由寄存器模块300向第二触发模块102输出,也可以是预设的固定值,只需要由寄存器模块300向第二触发模块102输出一次即可,后续可以重复使用。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

相关技术
  • 电气开关的磁触发装置和过电流触发装置及电气开关和用于校准磁触发装置的磁触发的方法
  • 可触发火花隙、具有可触发火花隙的电路和用于制造可触发火花隙的方法
技术分类

06120112389965