CN112418412A - 触发装置及类脑计算系统 - Google Patents
触发装置及类脑计算系统 Download PDFInfo
- Publication number
- CN112418412A CN112418412A CN202011308901.9A CN202011308901A CN112418412A CN 112418412 A CN112418412 A CN 112418412A CN 202011308901 A CN202011308901 A CN 202011308901A CN 112418412 A CN112418412 A CN 112418412A
- Authority
- CN
- China
- Prior art keywords
- trigger
- signal
- task
- module
- timing
- 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.)
- Granted
Links
- 230000003044 adaptive effect Effects 0.000 claims description 17
- 230000009471 action Effects 0.000 claims description 3
- 238000013528 artificial neural network Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 230000001960 triggered effect Effects 0.000 description 12
- 238000000819 phase cycle Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001575 pathological effect Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/061—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Neurology (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Power Sources (AREA)
Abstract
本公开涉及触发装置及类脑计算系统,所述装置包括:第一触发模块,用于获取第一触发模式的配置信息,进入第一触发模式,产生一个或多个第一触发信号;第二触发模块,用于获取第二触发模式的配置信息,进入第二触发模式,根据第一触发信号生成一个或多个第二触发信号;选择控制模块,用于将第一触发信号中、及第二触发信号传输至一个或多个处理器中的一个或多个功能核,以使得该一个或多个功能核根据接收的第一触发信号及第二触发信号执行任务的子任务。通过以上装置,本公开实施例可以实现对独立任务的分割,加快了执行速度,减少运行时间,提升芯片的性能,降低功耗。
Description
技术领域
本公开涉及人工智能技术领域,尤其涉及一种触发装置及类脑计算系统。
背景技术
大数据信息网络核智能移动设备的蓬勃发展产生了海量的非结构化信息,伴生了对这些信息的高能效处理需求的急剧增长。传统冯诺依曼架构芯片采用总线通信、同步、串行和集中的工作方式,遵循摩尔定律增加密度,预计在未来10到15年内微缩将到达物理极限,发展必将受到根本性限制。
由此衍生出众核神经形态芯片架构,这种结构不同于传统的计算机处理方式,通过信息的分布式存储和并行协同处理,处理一些非形式化问题时具有较大优势。而传统的众核神经形态芯片架构的触发机制具有较大的局限性,无法进行独立的任务划分。
发明内容
有鉴于此,本公开提出了一种触发装置,所述装置包括:
第一触发模块,用于获取第一触发模式的配置信息,进入第一触发模式,产生一个或多个第一触发信号,其中,各个第一触发信号对应于各个任务;
第二触发模块,电连接于所述第一触发模块,用于获取第二触发模式的配置信息,进入第二触发模式,根据第一触发信号生成一个或多个第二触发信号,其中,第二触发信号对应于任务的子任务;
选择控制模块,电连接于所述第一触发模块及所述第二触发模块,用于将所述一个或多个第一触发信号中的任意一个第一触发信号、及所述一个或多个第二触发信号中的任意一个第二触发信号传输至一个或多个处理器中的一个或多个功能核,以使得该一个或多个功能核根据接收的第一触发信号及第二触发信号执行任务的子任务。
在一种可能的实施方式中,所述第一触发模式包括定时触发模式,所述装置还包括第一计时模块,电连接于所述第一触发模块,所述第一计时模块包括第一计时时钟,所述第一计时模块用于在接收到所述第一触发信号时启动所述第一计时时钟,以对当前任务的执行周期计时;
当所述第一触发模块进入所述定时触发模式时,所述第一触发模块,还用于:
在所述第一计时时钟到达第一阈值的情况下,生成任务结束信号,所述任务结束信号用于结束所述当前任务中当前各子任务的执行,从而结束当前任务的执行。
在一种可能的实施方式中,所述第一触发模式包括自适应触发模式,当所述第一触发模块进入自适应触发模式时,
所述第一触发模块还用于执行以下动作的其中一种:
在所述当前任务的所有子任务全部结束执行且所述当前任务不是最后一个任务的情况下,确定满足触发下一任务的执行周期的条件,并生成所述下一任务的执行周期对应的第一触发信号;
在所述当前任务的所有子任务全部结束执行且所述当前任务是最后一个任务的情况下,生成任务结束信号,所述任务结束信号用于结束所述当前任务中当前各子任务的执行,从而结束当前任务的执行;
在所述第一计时时钟到达第一阈值的情况下,生成任务结束信号,所述任务结束信号用于结束所述当前任务中当前各子任务的执行,从而结束当前任务的执行。
在一种可能的实施方式中,所述第二触发模式包括单次触发模式,当所述第二触发模块进入所述单次触发模式时,所述第二触发模块用于:
根据一个第一触发信号产生一个第二触发信号,以使得一个或多个功能核根据该第一触发信号、该第二触发信号执行任务的子任务。
在一种可能的实施方式中,所述第二触发模式包括定时触发模式,所述装置还包括第二计时模块,电连接于所述第二触发模块,所述第二计时模块包括一个或多个第二计时时钟,所述第二计时模块用于在接收到所述第二触发信号时启动所述一个或多个第二计时时钟,以对当前任务的各个子任务的执行周期计时,
当所述第二触发模块进入所述定时触发模式时,所述第二触发模块,还用于:
每当所述第二计时时钟计时达到第二阈值时,产生新的第二触发信号,直到接收到任务结束信号。
在一种可能的实施方式中,所述第二触发模式包括自适应触发模式,
当所述第二触发模块进入所述自适应触发模式时,所述第二触发模块还用于执行:
每当在所述各第二触发信号对应的所述功能核全部结束当前各子任务的执行的情况下,确定满足触发所述当前任务中当前各子任务的下一子任务的执行周期的条件,并生成各下一子任务对应的所述第二触发信号,直到接收到任务结束信号;或
每当所述第二计时时钟计时达到第二阈值时,产生新的第二触发信号,直到接收到任务结束信号。
在一种可能的实施方式中,所述选择控制模块还用于,接收与第二触发信号对应的各个功能核输出的运算结束信号,并在各个功能核均输出运算结束信号时,产生子任务结束信号,以确定与第二触发信号对应的功能核全部结束当前子任务的执行。
在一种可能的实施方式中,所述第一触发模块还用于接收外部触发信号,并根据外部触发信号产生一个或多个第一触发信号,或根据外部触发信号产生第一触发信号对应的第一触发结束信号。
在一种可能的实施方式中,所述装置还包括第一触发模式寄存器、第二触发模式寄存器,所述第一触发模块还用于接收单次触发信号,其中,
所述第一触发模块用于获取所述第一触发模式寄存器中的配置信息,以确定并进入第一触发模式;
所述第二触发模块用于获取所述第二触发模式寄存器中的配置信息及所述单次触发信号,以确定并进入第二触发模式。
根据本公开实施例的另一方面,提出了一种类脑计算系统,所述系统包括所述的触发装置。
通过以上装置,本公开实施例的两个触发模块可以根据配置信息进入相应的触发模式,以待执行的任务的数目产生一个或多个第一触发信号,并生成一个或多个第二触发信号,根据第一触发信号、一个或多个第二触发信号控制对应的功能核执行当前任务的各子任务,可以支持多个异步任务的并行或混合运算,同时通过将当前任务划分成各子任务,使内部具有相似任务的功能核可以同时执行,这样通过二级的触发机制,可以实现对独立任务的分割,加快了执行速度,减少运行时间,提升芯片的性能;通过触发信号控制相应的功能核,可以使未被选中的功能核处于休眠状态,从而降低功耗。其中,所述任务可以是网络或应用任务,例如进行神经网络运算的任务(例如可以是VGG网络或ResNet50网络),或者运行应用软件的任务等。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出了根据本公开一实施例的触发装置的示意图。
图2a示出了根据本公开一实施例的处理器功能核的分组示意图。
图2b示出了根据本公开一实施例的触发装置的触发时序示意图。
图3示出了根据本公开一实施例的触发装置的触发时序示意图。
图4示出了根据本公开一实施例的触发装置的触发时序示意图。
图5示出了根据本公开一实施例的触发装置的示意图。
图6示出了根据本公开一实施例的触发装置的示意图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
随着神经网络技术领域的不断发展,产生了海量的非结构化信息,伴生了对这些信息的高能效处理需求的急剧增长。其中,众核神经形态芯片架构不同于传统的计算机处理方式,通过信息的分布式存储和并行协同处理,处理一些非形式化问题时具有较大优势。然而传统芯片中的触发机制在执行多网络时无法进行独立的网络任务划分,有较大的局限性。
为了进一步提高性能,本公开实施例提供了一种触发装置,通过两级触发控制功能核,第一级触发可以进行不同网络或应用的划分,第二级触发可以分割网络或应用内相似的计算任务,并分配在在功能核中进行运算,有效的提高了芯片的性能,具有较高的应用价值。
请参阅图1,图1示出了根据本公开一实施例的触发装置的示意图。
如图1所示,所述装置包括:
第一触发模块10,用于获取第一触发模式的配置信息,进入第一触发模式,产生一个或多个第一触发信号,其中,各个第一触发信号对应于各个任务;
第二触发模块20,电连接于所述第一触发模块10,用于获取第二触发模式的配置信息,进入第二触发模式,根据第一触发信号生成一个或多个第二触发信号,其中,第二触发信号对应于任务的子任务;
选择控制模块30,电连接于所述第一触发模块10及所述第二触发模块20,用于将所述一个或多个第一触发信号中的任意一个第一触发信号、及所述一个或多个第二触发信号中的任意一个第二触发信号传输至一个或多个处理器中的一个或多个功能核,以使得该一个或多个功能核根据接收的第一触发信号及第二触发信号执行任务的子任务。
通过以上装置,本公开实施例的两个触发模块可以根据配置信息进入相应的触发模式,以待执行的任务的数目产生一个或多个第一触发信号,并生成一个或多个第二触发信号,根据第一触发信号、一个或多个第二触发信号控制对应的功能核执行当前任务的各子任务,可以支持多个异步任务的并行或混合运算,同时通过将当前任务划分成各子任务,使内部具有相似任务的功能核可以同时执行,这样通过二级的触发机制,可以实现对独立任务的分割,加快了执行速度,减少运行时间,提升芯片的性能;通过触发信号控制相应的功能核,可以使未被选中的功能核处于休眠状态,从而降低功耗。其中,所述任务可以是网络或应用任务,例如进行神经网络运算的任务(例如可以是VGG网络或ResNet50网络),或者运行应用软件的任务等。
本公开实施例的触发装置可以用于终端或服务器中,终端又称之为用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等,是一种向用户提供语音和/或数据连通性的设备,例如,具有无线连接功能的手持式设备、车载设备等。目前,一些终端的举例为:手机(mobile phone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internetdevice,MID)、可穿戴设备,虚拟现实(virtualreality,VR)设备、增强现实(augmentedreality,AR)设备、工业控制(industrialcontrol)中的无线终端、无人驾驶(selfdriving)中的无线终端、远程手术(remotemedical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、车联网中的无线终端等。
本公开实施例的各个模块可以通过专用硬件电路实现,也可以通过通用硬件电路实现,示例性的,所述选择控制模块可以包括具有执行指令功能的控制器及多路选择器MUX,所述控制器可以按任何适当的方式实现,例如,可以采用微处理器、中央处理器(CPU)、存储器控制器中的控制逻辑部分等实现,包括但不限于以下型号的芯片:ARC 625D、AtmelAT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320。在所述处理器101内部,可以通过逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器等硬件电路执行所述可执行指令。
请参阅图2a,图2a示出了根据本公开一实施例的处理器功能核的分组示意图。
在一种可能的实施方式中,本公开实施例的装置可以应用的处理器可以为众核神经形态芯片,如图2a所示,处理器可以包括多个功能核,可以根据任务的不同类型对处理器的功能核进行分组。,每个功能核具有完整的控制器、存储等组成部分,可以独立工作;同时处理器内各个功能核通过互联的片上网络连接,可以实现多功能核(Core)协同工作。此外,多个处理器之也可以通过处理器之间的片上网络连接,实现跨处理器(Chip)的协同工作。
在一个示例中,如图2a所示,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的关系同理所述,如图2a所示,一个Phase_grp可以被包含在一个或多个step_grp中,一个功能核可以被包含在一个或多个Phase_grp中(如C13被包含在Phase_grp1中,同时被包含在Phase_grp3中),在一个示例中,如果是完全独立的两个网络,它们的功能核集合没有重合的功能核(如step_grp2和step_grp3),如果两个网络有数据交互,那么它们的功能核集合可以有重合的功能核,可以用来做数据交互,也可以有其他作用(如C13被包含在Phase_grp1中,同时被包含在Phase_grp3中)。
请参阅图2b,图2b示出了根据本公开一实施例的触发装置的触发时序示意图。
如图2b所示,第一触发信号可以对应于一个节拍周期,第二触发信号可以对应一个相位周期。
在一个示例中,同一step_grp可以用于执行同一网络任务(一个节拍周期),同一step_grp下的每个Phase_grp可以用于执行同一网络任务下相同或相似的任务(相位周期),同一Phase_grp下的功能核可以用于执行原语操作,在一种可能的实现方式中,在结束某一网络任务或应用任务后,可以对功能核集合进行重新划分。
在一种可能的实现方式中,该触发装置可应用于包括多个功能核(或称为处理器核)的片上系统中,每个第一触发信号对应于片上系统中一部分功能核,即功能核集合,该第一触发信号可以通过生成第二触发信号来触发这些功能核进行工作,执行各子任务,每个第二触发信号可以对应于该一部分功能核中的一个或多个。可以根据需要人为或自动设置第一触发信号、第二触发信号与功能核之间的对应关系。上述对应关系可以在执行完一个完整的任务(例如完成一次神经网络的运算)之后释放,以便后续重新设置。
在一种可能的实现方式中,可以在开始一个完整的任务前对第一触发信号、第二触发信号与功能核之间的对应关系进行重新设置,具体地,如果存在所需要的足够数量的空闲的功能核,就可以完成设置并开始执行一个完整的任务,如果不存在空闲的功能核,可以等待其他任务结束执行后释放功能核,在空闲功能核的数量满足需要后,完成设置并开始执行一个完整的任务。由于同一个功能核可以分别对应于不同的第二触发信号或第一触发信号,可以在完成设置后对可以复用的功能核设置复用信号,使得该功能核在其他任务设置功能核时,可以作为空闲的功能核参与运算,使得功能核得到充分利用,提高系统的性能和利用率。
在一种可能的实现方式中,当前任务的执行周期之内,可包含一个或多个子任务的执行周期,即在两个第一触发信号之间,可以出现多个周期的第二触发信号。以神经网络运算任务为例,对于运算量较小的神经网络,第一触发信号可以在一次执行周期内完成整个神经网络的一次运算(当前任务),其中,第二触发信号在每个周期内可完成神经网络运算的一个环节,例如一个网络层的运算,而每个第二触发信号对应的功能核可执行各环节中的相似运算(子任务),例如加法或乘法,各功能核可以用于执行相应的原语操作。例如,仍以图2a为例,Phase_grp0对应的四个功能核C00、C01、C10、C11可分别执行加法,Phase_grp1对应的6个功能核C02、C03、C12、C13、C22、C23可分别执行乘法,等等,本公开对此不作限制。对于运算量较大的神经网络,第一触发信号可以在一次执行周期内完成整个神经网络的一次运算中的一个环节,例如一个网络层的运算(当前任务),也就是说,当前任务也可以是更上一级任务(整个神经网络运算任务)的子任务,在这种情况下,子任务之间功能核的设置可以沿用,子任务和子任务的执行周期之间可以不需要释放功能核并重新划分。第二触发信号在每个周期内可完成一个环节中的一部分,例如一个网络层的运算中的一次卷积运算,而每个第二触发信号对应的功能核可执行各环节中的相似运算(子任务),在一种可能的实现方式中,在完成神经网络运算任务的一个环节后,可以沿用第一触发信号和第二触发信号与功能核的对应关系,在完成整个神经网络任务后,释放功能核。
在一种可能的实施方式中,第一触发模块可以是根据外部的输入信号产生第一触发信号,也可以自行产生第一触发信号。例如,所述装置还可以包括外部触发模块90(如图5所示),对于初始的第一触发信号,当需要执行新的任务时,外部触发模块90可以产生并输入启动信号,以使得第一触发模块产生第一触发信号,或者外部触发模块90可以直接产生第一触发信号;在执行任务过程中,第一触发模块可以在判断任务周期没有结束时,产生新的第一触发信号。下面将会详细进行介绍。
请参阅图3,图3示出了根据本公开一实施例的触发装置的触发时序示意图。
其中,clk表示基准时钟,clk置1表示一个基准时钟数;step group0和stepgroup1表示与各第一触发信号对应的功能核集合(或称为节拍时序组),不同的第一触发信号可以用于触发各自对应的功能核集合执行不同的任务,例如一个第一触发信号用于执行一神经网络的运算任务,而另一第一触发信号用于执行另一神经网络的运算任务,或一应用软件的运行任务等。与第一触发信号对应的功能核集合可以称为节拍时序组;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的节拍结束信号,节拍结束信号在step group0内所有相位时序组结束执行相应的全部子任务时则置1,否则置0;s_grp1_finish表示stepgroup1的对应的功能核集合全部结束执行的信号,可以称为step group1的节拍结束信号;step group1内所有相位时序组结束执行相应的全部子任务时则置1,否则置0。
如图3所示,在一种可能的实现方式中,对于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同理。
需要说明的是,同一节拍时序组下的相位时序组的工作周期时钟数可以相同,也可以不同;属于同一节拍时序组的相位时序组在接收到相位触发信号、触发其对应的第一个子任务时是同步的,这些相位时序组在第一个子任务结束执行后、后续子任务的自动触发可以是异步的,属于不同节拍时序组的相位时序组可以异步被触发。不同的节拍时序组也可以是异步的。
请参阅图4,图4示出了根据本公开一实施例的触发装置的触发时序示意图。
在一个示例中,如图4所示,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表示phasegroup0的功能核全部结束执行的信号,可以称为phase group0相位结束信号;phasegroup0内所有功能核结束执行操作则置1,否则置0,p_grp1_finish表示phase group1的功能核全部结束执行的信号,可以称为phase group1的相位结束信号,phase group1内所有功能核结束执行操作则置1,否则置0。其中,节拍结束信号可以由节拍时序组下、各相位时序组对应的相位时序组的相位结束信号相与得到,也就是说,p_grp0_finish和p_grp1_finish相与可得到图4中的s_grp0_finish。p0、p1、p2和p3分别表示对应功能核处于对应的执行操作状态。
在一种可能的实现方式中,如图4所示,对于phase group0,当接收到s_ck时同步触发p_grp0_ck,同时触发phase group0组内所有的功能核,控制core0、core1和core2开始执行操作,其中,不同功能核执行操作的时间可以相同,也可以不同,功能核开始工作后可以启动相位计时时钟(可以称为第二计时时钟),当相位计时时钟的时钟数等于相位结束时钟数时,可以检查相位时序组内的功能核是否全部结束当前子任务,如果是,则触发下一个相位时序组工作周期(可以称为执行周期),否则等待全部结束执行当前子任务的操作后开始下一个相位时序组工作周期。如果相位时序组内的功能核对当前任务的所有子任务结束执行,则p_grp0_finish置1,当相位时序组内的功能核未全部结束执行当前任务的所有子任务的操作时,将继续执行直到全部执行完成后开始下一任务,或者接收到节拍时序组的强制结束信号、强制结束当前所有子任务。对于phase group1同理。
需要说明的是,同一相位时序组下的各功能核执行操作的时钟数可以相同,也可以不同;属于同一相位时序组的功能核是同步被触发的,属于不同相位时序组下的各功能核可以异步被触发。
以上对触发装置的触发时序进行了示例性介绍,下面结合触发装置的可能实现进行示例性说明。
请参阅图5,图5示出了根据本公开一实施例的触发装置的示意图。
在一种可能的实现方式中,所述第一触发模式包括定时触发模式,如图5所示,所述装置还可以包括第一计时模块50,电连接于所述第一触发模块10,所述第一计时模50块包括第一计时时钟,所述第一计时模块50用于在接收到所述第一触发信号时启动所述第一计时时钟,以对当前任务的执行周期计时;
当所述第一触发模块10进入所述定时触发模式时,所述第一触发模块,还用于:
在所述第一计时时钟到达第一阈值的情况下,生成任务结束信号,所述任务结束信号用于结束所述当前任务中当前各子任务的执行,从而结束当前任务的执行。
在一个示例中,第一阈值可以提前设定,不同的第一触发信号可以对应不同的第一阈值,也可以将不同的第一触发信号设置为一个统一的第一阈值。例如,外部可以直接输入第一阈值(时钟数目),也可以输入与第一阈值相关的参数,选择控制模块可以进行相关运算以根据得到的参数确定第一阈值。
在一个示例中,如图5所示,所述装置还可以包括寄存器模块70,所述寄存器模块70可以包括第一阈值寄存器以接收外部输入的第一阈值。
在一个示例中,第一阈值可以是根据不同任务而改变的变化值,在每次触发当前任务的执行周期时接收,也可以是预设的固定值,只需要接收一次即可,后续可以重复使用。
对于不同的任务,可以预先估计需要执行的时间,并据此确定第一阈值。
在一个示例中,第一阈值可以作为强制结束任务的比较值,当第一计时器计时达到第一阈值时,若执行该任务的各个功能核还没有结束运算,则生成任务结束信号(此时可以为强制结束信号)以强制结束该任务。
在一个示例中,在当前任务达到第一阈值而仍未完成执行的情况下,当前任务可能出现程序错误而导致卡死,例如,对于某个神经网络任务中的某个环节,预估的执行该环节任务所需要的时钟数为500个时钟数,这样,在第一计时时钟到达1000个时钟数,该环节任务仍未结束执行的情况下,很可能是出现了程序错误,进入了死循环无法结束(这是一种病态的状态),需要强制结束,因此在这种情况下可以将第三阈值定为1000个时钟数,在到达第三阈值时仍未结束任务,就强制结束。如果当前任务是上一级任务的某一个子任务,可以强制结束整个上一级任务,在强制结束整个任务的执行后,可以释放第一触发信号对应的功能核集合,避免占用不必要的功能核资源。
通过对当前任务实现强制结束的机制,控制当前任务执行的最大时钟数,可以避免因为程序出错等原因而导致的任务无法结束的死循环,避免了浪费大量不必要功能核资源的可能性,进一步降低了功耗,提高的运行的效率。
在一个示例中,第一计时时钟可以在每过一个基准时钟周期时计时一次,并判断是否达到第一阈值。
通过设定第一阈值,本公开实施例可以实现对不同网络应用的执行周期的事前控制与部署,从而实现不同任务的异步独立运行,加快运行速度。
在一个示例中,每当新的第一触发信号产生时,第一计时时钟可从0开始重新计时。
通过第一计时时钟的计时时长与第一阈值的比较,判断是否满足触发下一任务的执行周期的条件,可以实现对当前任务执行周期的控制,从而能够更好地调度不同的任务,减少运行时间,提高执行效率。
在一种可能的实施方式中,所述寄存器模块70还可以包括第一触发模式寄存器,其中,所述第一触发模块用于获取所述第一触发模式寄存器中的配置信息,以确定并进入第一触发模式。
在一种可能的实施方式中,所述第一触发模式还可以包括自适应触发模式,当所述第一触发模块进入自适应触发模式时,
所述第一触发模块10还可以用于执行以下动作的其中一种:
在所述当前任务的所有子任务全部结束执行且所述当前任务不是最后一个任务的情况下,确定满足触发下一任务的执行周期的条件,并生成所述下一任务的执行周期对应的第一触发信号;
在所述当前任务的所有子任务全部结束执行且所述当前任务是最后一个任务的情况下,生成任务结束信号,所述任务结束信号用于结束所述当前任务中当前各子任务的执行,从而结束当前任务的执行;
在所述第一计时时钟到达第一阈值的情况下,生成任务结束信号,所述任务结束信号用于结束所述当前任务中当前各子任务的执行,从而结束当前任务的执行。
在一种可能的实施方式中,寄存器模块70可以包括第一触发模式寄存器,第一触发模块可以根据第一触发模式寄存器中的值确定第一触发模式为固定触发模式或自适应触发模式,下文将进行具体介绍。
在一种可能的实施方式中,所述第二触发模式可以包括单次触发模式,当所述第二触发模块20进入所述单次触发模式时,所述第二触发模块20可以用于:
根据一个第一触发信号产生一个第二触发信号,以使得一个或多个功能核根据该第一触发信号、该第二触发信号执行任务的子任务。
在一种可能的实施方式中,所述寄存器模块70还可以包括第二触发模式寄存器,所述第一触发模块、第二触发模块还还用于接收单次触发信号,其中,所述第二触发模块用于获取所述第二触发模式寄存器中的配置信息及所述单次触发信号,以确定并进入第二触发模式。
在一种可能的实施方式中,所述第二触发模式包括定时触发模式,如图5所示,所述装置还包括第二计时模块60,电连接于所述第二触发模块20,所述第二计时模块60包括一个或多个第二计时时钟,所述第二计时模块60用于在接收到所述第二触发信号时启动所述一个或多个第二计时时钟,以对当前任务的各个子任务的执行周期计时,
当所述第二触发模块20进入所述定时触发模式时,所述第二触发模块20,还可以用于:
每当所述第二计时时钟计时达到第二阈值时,产生新的第二触发信号,直到接收到任务结束信号。
在一个示例中,第二阈值可以预先设定,不同的第二触发信号对应的功能核集合可以对应相应的第二结束时钟数。
在一个示例中,所述寄存器模块70可以包括第二阈值寄存器以接收外部输入的第二阈值。
在一个示例中,第二结束时钟数可以是根据不同子任务而改变的变化值,在每次触发当前任务下子任务的执行周期时接收,也可以是预设的固定值,只需要接收一次即可,后续可以重复使用。
通过根据预设的第二结束时钟数确定第二阈值,可以实现对不同子任务的执行周期的事前控制与部署,从而实现不同子任务的异步独立运行,加快运行速度,还可以在该模式下对装置进行调试,以确保装置的运转正常。
在一个示例中,第二计时模块60控制第二计时时钟在接收到第二触发信号时开始计时,第二计时时钟可以在每过一个时钟数时,判断是否达到第二阈值;每个第二触发信号可以对应一个第二计时时钟,不同的第二计时时钟可以对应着不同的第二阈值,例如,一个第二触发信号对应的功能核集合接收到第二触发信号后,可以启动与该功能核集合对应的第二计时时钟,并与相应的第二阈值比较;各功能核集合的执行周期可以相同,也可以不同。这里的接收的第二触发信号,包括根据第一触发信号生成的第二触发信号,也包括在满足下文所述条件情况下自动生成的第二触发信号,每当新的第二触发信号产生时,相应的第二计时时钟可从0开始重新计时。
通过第二计时时钟与第二阈值的比较,判断是否满足触发当前各子任务的下一子任务的执行周期的条件,可以实现对各子任务执行周期的控制,从而能够更好地调度各子任务,同时由于不同的子任务可以有不同的执行周期,可以实现子任务的异步执行,进一步加快各子任务的执行速度,减少当前任务的运行时间。
在一种可能的实施方式中,所述第二触发模式20包括自适应触发模式,
当所述第二触发模块进入所述自适应触发模式时,所述第二触发模块还用于执行:
每当在所述各第二触发信号对应的所述功能核全部结束当前各子任务的执行的情况下,确定满足触发所述当前任务中当前各子任务的下一子任务的执行周期的条件,并生成各下一子任务对应的所述第二触发信号,直到接收到任务结束信号;或
每当所述第二计时时钟计时达到第二阈值时,产生新的第二触发信号,直到接收到任务结束信号。
在一种可能的实施方式中,所述选择控制模块还用于,接收与第二触发信号对应的各个功能核输出的运算结束信号,并在各个功能核均输出运算结束信号时,产生子任务结束信号,以确定与第二触发信号对应的功能核全部结束当前子任务的执行。
在一种可能的实现方式中,所述装置还包括存储模块,用于存储所述子任务结束信号。
请参阅图6,图6示出了根据本公开一实施例的触发装置的示意图。
处理器可以包括多个,每个处理器例如可以包括m个功能核(core),例如,m可以为160,在一个示例中,选择控制模块还可以用于为处理器的各个功能核编号,以唯一标识各个功能核,例如,处理器的功能核可以被设置标识,分别为core[0]、core[0]…core[m-2]、core[m-1]。
在一个示例中,选择控制模块可以包括触发选择器(例如为多路选择器MUX)、控制器(例如为中央处理器CPU、微处理器MCU等逻辑运算器件)。
在一个示例中,当处理器包括160个功能核时,为了便于说明,不妨假设处理器包括4个节拍(step)触发和32个相位(phase)触发。
在一个示例中,各个功能核在执行原语运算时,运算结束信号(例如core_busy[0],与功能核core[0]对应)可以为低电平(0),当功能核core[0]完成原语运算的执行时,运算结束信号core_busy[0]可以为高电平(1),在这种情况下,选择控制模块通过检测该功能核运算结束信号,可以确定功能核的状态(空闲状态或运算状态),当与第二触发信号对应的功能核集合中的所有功能核的运算结束信号均为高电平时,选择控制模块产生子任务结束信号,以确定与第二触发信号对应的功能核全部结束当前子任务的执行。
在一个示例中,选择控制模块可以将各个功能核中的运算结束信号进行相与运算以确定该第二触发信号对应的子任务结束信号(例如为phase_finish[31:0])。
在一个示例中,选择控制模块还可以用于为各个任务分配功能核,选择控制模块可以根据任务所需的运算需求为其分配空闲的功能核,例如,对应于第一触发信号的当前任务可以被分配多个功能核以得到节拍时序组,根据第一触发信号产生的一个或多个第二触发信号对应于当前任务的一个或多个子任务,选择控制模块进一步根据子任务的运算需求将分配给当前任务的多个功能核进一步分配到各个子任务,以得到一个或多个相位时序组,在存在多个任务(网络或应用)时,选择控制模块可以分配并得到多个节拍时序组,多个相位时序组,进一步的,选择控制模块可以对各个节拍时序组、各个相位时序组进行编号,假设某个节拍时序组包括n个(例如n≤32)相位时序组(phase group),并依次编号为phase_grp[0]~phase_grp[n-1],对应的,当选择控制模块确定子任务对应的相位时序组中所有功能核的运算结束信号均为高电平时,选择控制模块产生子任务结束信号phase_finish[0](与相位时序组phase_grp[0]对应)~phase_finish[n-1](与相位时序组phase_grp[n-1]对应)。
在一种可能的实现方式中,所述选择控制模块40还可以用于,在所述存储模块中存储有当前任务的所有子任务的子任务结束信号的情况下(或接收的子任务结束信号的数目达到相位时序组的数目的情况下),产生任务结束信号,以确定与第一触发信号对应的当前任务的所有子任务全部结束执行。
在一种可能的实现方式中,所述存储模块还可以用于存储所述任务结束信号。
在一个示例中,选择控制模块可以为各个节拍时序组编号(step_grp),例如假设存在s个任务(例如s=4),则选择控制模块可以建立s个节拍时序组(编号为step_grp[0]~step_grp[s-1])。
在一个示例中,所述存储模块可以包括任务结束信号寄存器(step_finish),用于存储各个节拍时序组的任务结束信号,任务结束信号寄存器可以被配置为包括s位,分别对应于s个节拍时序组,例如任务结束信号寄存器step_finish[1]用于存储节拍时序组step_grp[1]的任务结束信号。
在一个示例中,选择控制模块可以读取子任务结束信号寄存器phase_finish中的子任务结束信号,并将各个子任务(相位时序组)的子任务结束信号执行相与运算,以得到当前任务(节拍时序组)的任务结束信号,例如,当一个节拍时序组中所有的相位时序组都结束了,即一个节拍时序组中所有的相位时序组对应的子任务结束信号均为1,则进行相与运算的结果为1,可以将该任务的任务结束信号置位1,否则该任务的任务结束信号为0。
在一个示例中,各个功能核可以将运算结束信号发送到选择控制模块(或者选择控制模块从各个功能核获取运算结束信号),当相位时序组中各个功能核的运算结束信号均为1,执行相与运算后,选择控制模块根据得到子任务结束信号为1,该相位时序组的运算任务完成,若当前任务(节拍时序组)的各个子任务(相位时序组)均完成了运算,则各个子任务的子任务结束信号均为1,并存储在子任务结束信号寄存器中,选择控制模块可以获取子任务结束信号中的存储值,并执行相与运算,可以得到相与运算的结果为1,则可以确定当前任务完成,并将当前任务对应的任务结束寄存器置为1,表示当前任务完成运算。
在一个示例中,若当前任务完成运算(任务结束信号寄存器step_finish对应的值为1),并且所述当前任务不是最后一个任务的情况下,触发下一个节拍周期,生成所述下一任务的执行周期对应的第一触发信号,触发选择器根据配置信息将任意一个第一触发信号sck_grp(31:0)发送到任意一个功能核,其中,sck_grp(31:0)为相位触发器根据节拍触发器输出的信号tr_pos(3:0)得到。
在一个示例中,若当前子任务完成运算(子任务结束信号寄存器phase_finish对应的值为1),并且所述各第二触发信号对应的所述功能核全部结束当前各子任务的执行的情况下,触发下一个相位周期,生成各下一子任务对应的所述第二触发信号,触发选择器根据配置信息将任意一个第二触发信号pck_grp(31:0)发送到任意一个功能核。
在一个示例中,如图6所示,根据外部输入的信号i_tr[0]~i_tr[3],每个节拍触发器(第一触发模块)会选择一个外部输入的触发信号结合配置信息,生成tr_pos信号(第一触发信号)和/或第一触发结束信号step_finish。每个相位触发器(第二触发模块)会对应一个节拍时序组(由寄存器模块中的寄存器trigger_sel的值确定),然后根据该节拍触发器输出的第一触发信号以及外部输入的P_single信号产生自己的第二触发信号pck和第一触发信号sck(tr_pos中的其中之一),然后触发选择器根据寄存器模块中的寄存器Core_grp_en的值确定每个功能核(Core)所对应的相位时序组,并将该相位时序组的pck和sck信号发送给功能核,功能核根据这两个信号工作。每个功能核都会输出一个core_busy信号给其对应的相位触发器,表示该功能核是否已经完成了工作,相位触发器根据得到的core_busy信号判断该功能核是否完成工作,如果所有属于该相位时序组的功能核都完成了工作,则控制选择器(相位触发器中的控制部分)输出phase_finish信号,表示该相位已经结束,并把该信号和pck信号发送给输出控制器(选择控制器的部分)。每个输出控制器根据属于该节拍时序组的所有相位触发器给出的pck信号和phase_finish信号产生输出给外部的G_finish信号(o_gf[3:0]),表示该节拍运行结束。
在一个示例中,寄存器trigger_sel的位宽可以为2b,其数目与相位时序组数目相同,例如可以为32个,寄存器trigger_sel与相位时序组对应,用于存储该相位时序组所属的节拍时序组标识。
在一个示例中,寄存器Core_grp_en的位宽可以为160b,其数目与相位时序组数目相同,例如可以为32个,每个寄存器Core_grp_en与相位时序组对应,用于存储相位时序组包括的功能核标识。
在一个示例中,寄存器模块可以包括第一触发模式寄存器S_adpt,第一触发模式寄存器S_adpt的位宽可以为1b,其数目与节拍时序组的数目相同,每个第一触发模式寄存器S_adpt与节拍时序组对应,用于存储节拍时序组的触发模式。
在一个示例中,可以设置第一触发模式寄存器S_adpt的值为0以控制第一触发模块进入固定触发模式。
在固定触发模式下,每个节拍工作固定的时钟数,然后结束,开始下一个节拍。
在一个示例中,外部触发信号Trigger为1时,节拍触发器产生一个tr_pos信号,开始一个节拍,然后相位触发器根据其工作模式利用第一触发信号sck产生第二触发信号pck,第一计时模块开始计时,当计时时长达到第一阈值时,选择控制器输出信号G_finish=1,外部控制器获取到G_finish信号后拉低对应的Trigger信号,节拍触发器(其中的控制部分)产生对应的任务结束信号step_finish,当然,选择控制模块也可以在计时时长达到第一阈值时直接产生任务结束信号step_finish。
在一个示例中,寄存器模块可以包括寄存器clock_in_step(第一阈值寄存器),寄存器clock_in_step的位宽可以为32b,其数目与节拍时序组的数目相同,寄存器clock_in_step用于存储节拍时序组对应的第一阈值的大小。
在一个示例中,可以设置第一触发模式寄存器S_adpt的值为1以控制第一触发模块进入自适应触发模式。
在该模式下,每个节拍开始工作后,直到所有属于该节拍的所有相位时序组的所有功能核都完成工作,然后停止。
在一个示例中,外部触发信号Trigger为1时,节拍触发器产生一个tr_pos信号,开始一个节拍步,第一计时模块始计时,当计时时长达到第一阈值时,或,在对接收到相位触发器发出的phase_finish个数进行计数,如果计数值达到节拍时序组包括的相位时序组的数目(表示该任务的所有子任务完成执行),则输出控制器输出G_finish=1,外部控制器得到G_finish=1后,拉低对应节拍触发器的Trigger,节拍触发器产生对应的step_finish信号,结束该节拍。在使用自适应模式时,一般将clock_in_step配置为远大于实际时钟数的值,即可实现自适应结束。
在一个示例中,寄存器模块可以包括寄存器phase_in_step(子任务结束信号寄存器),寄存器phase_in_step的位宽可以为10b,寄存器phase_in_step的数目可以与节拍时序组包括的相位时序组的数目对应,用于存储子任务结束信号。
在一个示例中,第二触发模式包括三种触发模式:(1)单次触发模式;(2)定时触发模式;(3)自适应触发模式。
第二触发模块可以根据外部输入的单次触发信号i_ps和/或配置信息确定触发模式。
在一个示例中,单次触发信号i_ps的位宽可以为1b。
在一个示例中,当单次触发信号i_ps被配置为1时,第二触发模块进入单次触发模式。
在该模式下,相位触发器根据节拍触发器的信号,每出现一个tr_pos,选择一个sck输出,并根据sck产生一个pck输出,开始一个相位。
在一个示例中,寄存器模块可以包括第二触发模式寄存器P_adapt,第二触发模式寄存器P_adapt的位宽可以为1b,其数目与相位时序组的数目相同,每个第二触发模式寄存器P_adapt与相位时序组对应,用于存储相位时序组的触发模式的配置信息。
在一个示例中,可以设置第二触发模式寄存器P_adapt的值为0并结合单次触发信号以控制第一触发模块进入固定触发模式。
在一个示例中,当单次触发信号i_ps被配置为0且第二触发模式寄存器P_adapt的值为0时,相位触发器处于定时触发模式。相位触发器接收到节拍触发器的一个tr_pos信号后,选择一个sck输出,并根据sck产生一个pck输出,表示开始一个节拍和一个相位,同时第二计时模块就开始计时,每计时到第二阈值后重置计时器,同时产生一个相位脉冲pck,开始一个新phase,如此循环,直至step_finish为1时,停止计时。
在一个示例中,寄存器模块可以包括寄存器clock_in_phase,寄存器clock_in_phase的位宽可以为10b,其数目与相位时序组的数目相同,寄存器clock_in_phase可以用于存储相位时序组对应的第二阈值。
在一个示例中,当单次触发信号i_ps被配置为0且第二触发模式寄存器P_adapt的值为1时,相位触发器处在自适应模式下。相位触发器接收到节拍触发器的一个tr_pos信号后,选择一个sck输出,并根据sck产生一个pck输出,表示开始一个节拍和一个相位,第二计时模块开始计时,每当计时到第二阈值或该相位时序组的功能核全部工作完毕,重置计时器,并产生一个相位脉冲pck,开始一个新相位,如此重复,直至step_finish为1时,停止计时。
自适应触发模式可以根据任务自适应结束,减少了每个周期内的冗余时钟,提高整体执行的紧凑性。
在一个示例中,触发模块可以对多个处理器进行协同触发,如果需要多处理器工作在相同的节拍step下的时候,可以用相同的外部触发信号Trigger连接到每个处理器需要同步的节拍的外部触发输入引脚,然后将这些处理器的对应节拍输出的G_finish信号取与(&)后作为整体的G_finish信号,这样就可以实现跨处理器间的节拍(step)同步。
本公开实施例通过设置各个功能核任意选择第一触发信号、第二触发信号,可以实现后续处理器功能的扩展,且第一触发模块、第二触发模块均包括多种触发方式,增加适应性及灵活性。
根据本公开实施例的另一方面,提出了一种类脑计算系统,所述系统包括所述的触发装置。
在一种可能的实现方式中,所述选择控制模块30还可以用于,
在满足预设条件的情况下,释放所述第一触发信号对应的处理器中的功能核,所述预设条件包括:
当前任务为最后一个任务且所述当前任务结束执行;或者
在强制结束当前任务的执行时。
例如,如果当前任务是一个神经网络运算任务的最后一个环节时,在当前任务结束执行后,整个神经网络运算任务完成,可以释放第一触发信号对应于处理器中的功能核集合,也就是说这些功能核集合可以变成空闲状态,供其他任务使用,而在强制结束当前任务的执行后,由于当前任务的结束执行是超时后的强制结束,因此可以导致整个神经网络运算任务的结束执行,也可以释放第一触发信号对应于处理器中的功能核集合。在结束执行当前任务后,还可以对相应的第一计时时钟和各第二计时时钟进行重置清零操作。
通过在结束执行任务后释放第一触发信号对应于处理器中的功能核集合,可以在只有少数任务执行时,使未被选中的功能核处于休眠状态,降低功耗,同时,及时释放功能核可以使得空闲状态下的功能核可以被其他任务选中,提高运行效率,减少其他任务的等待时间,加快执行速度。
本公开实施例的触发装置,可以支持片上多个异步网络应用的并行或混合运算:不同的step触发可以对应部署不同的网络应用,它们之间独立运行,可以降低功耗,当只有少数网络应用执行时,未被选中的core处于休眠状态,功耗降低,并且可以减少运行时间:对于一个网络应用来说,将其内部具有相似运算任务的core划分为一个phase时序组,加快执行速度。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种触发装置,其特征在于,所述装置包括:
第一触发模块,用于获取第一触发模式的配置信息,进入第一触发模式,产生一个或多个第一触发信号,其中,各个第一触发信号对应于各个任务;
第二触发模块,电连接于所述第一触发模块,用于获取第二触发模式的配置信息,进入第二触发模式,根据第一触发信号生成一个或多个第二触发信号,其中,第二触发信号对应于任务的子任务;
选择控制模块,电连接于所述第一触发模块及所述第二触发模块,用于将所述一个或多个第一触发信号中的任意一个第一触发信号、及所述一个或多个第二触发信号中的任意一个第二触发信号传输至一个或多个处理器中的一个或多个功能核,以使得该一个或多个功能核根据接收的第一触发信号及第二触发信号执行任务的子任务。
2.根据权利要求1所述的装置,其特征在于,所述第一触发模式包括定时触发模式,所述装置还包括第一计时模块,电连接于所述第一触发模块,所述第一计时模块包括第一计时时钟,所述第一计时模块用于在接收到所述第一触发信号时启动所述第一计时时钟,以对当前任务的执行周期计时;
当所述第一触发模块进入所述定时触发模式时,所述第一触发模块,还用于:
在所述第一计时时钟到达第一阈值的情况下,生成任务结束信号,所述任务结束信号用于结束所述当前任务中当前各子任务的执行,从而结束当前任务的执行。
3.根据权利要求2所述的装置,其特征在于,所述第一触发模式包括自适应触发模式,当所述第一触发模块进入自适应触发模式时,
所述第一触发模块还用于执行以下动作的其中一种:
在所述当前任务的所有子任务全部结束执行且所述当前任务不是最后一个任务的情况下,确定满足触发下一任务的执行周期的条件,并生成所述下一任务的执行周期对应的第一触发信号;
在所述当前任务的所有子任务全部结束执行且所述当前任务是最后一个任务的情况下,生成任务结束信号,所述任务结束信号用于结束所述当前任务中当前各子任务的执行,从而结束当前任务的执行;
在所述第一计时时钟到达第一阈值的情况下,生成任务结束信号,所述任务结束信号用于结束所述当前任务中当前各子任务的执行,从而结束当前任务的执行。
4.根据权利要求1所述的装置,其特征在于,所述第二触发模式包括单次触发模式,当所述第二触发模块进入所述单次触发模式时,所述第二触发模块用于:
根据一个第一触发信号产生一个第二触发信号,以使得一个或多个功能核根据该第一触发信号、该第二触发信号执行任务的子任务。
5.根据权利要求1所述的装置,其特征在于,所述第二触发模式包括定时触发模式,所述装置还包括第二计时模块,电连接于所述第二触发模块,所述第二计时模块包括一个或多个第二计时时钟,所述第二计时模块用于在接收到所述第二触发信号时启动所述一个或多个第二计时时钟,以对当前任务的各个子任务的执行周期计时,
当所述第二触发模块进入所述定时触发模式时,所述第二触发模块,还用于:
每当所述第二计时时钟计时达到第二阈值时,产生新的第二触发信号,直到接收到任务结束信号。
6.根据权利要求5所述的装置,其特征在于,所述第二触发模式包括自适应触发模式,
当所述第二触发模块进入所述自适应触发模式时,所述第二触发模块还用于执行:
每当在所述各第二触发信号对应的所述功能核全部结束当前各子任务的执行的情况下,确定满足触发所述当前任务中当前各子任务的下一子任务的执行周期的条件,并生成各下一子任务对应的所述第二触发信号,直到接收到任务结束信号;或
每当所述第二计时时钟计时达到第二阈值时,产生新的第二触发信号,直到接收到任务结束信号。
7.根据权利要求1所述的装置,其特征在于,
所述选择控制模块还用于,接收与第二触发信号对应的各个功能核输出的运算结束信号,并在各个功能核均输出运算结束信号时,产生子任务结束信号,以确定与第二触发信号对应的功能核全部结束当前子任务的执行。
8.根据权利要求1所述的装置,其特征在于,所述第一触发模块还用于接收外部触发信号,并根据外部触发信号产生一个或多个第一触发信号,或根据外部触发信号产生第一触发信号对应的第一触发结束信号。
9.根据权利要求1所述的装置,其特征在于,所述装置还包括第一触发模式寄存器、第二触发模式寄存器,所述第一触发模块还用于接收单次触发信号,其中,
所述第一触发模块用于获取所述第一触发模式寄存器中的配置信息,以确定并进入第一触发模式;
所述第二触发模块用于获取所述第二触发模式寄存器中的配置信息及所述单次触发信号,以确定并进入第二触发模式。
10.一种类脑计算系统,其特征在于,所述系统包括权利要求1-9任一项所述的触发装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011308901.9A CN112418412B (zh) | 2020-11-20 | 2020-11-20 | 触发装置及类脑计算系统 |
PCT/CN2020/137468 WO2022104990A1 (zh) | 2020-11-20 | 2020-12-18 | 触发装置及类脑计算系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011308901.9A CN112418412B (zh) | 2020-11-20 | 2020-11-20 | 触发装置及类脑计算系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112418412A true CN112418412A (zh) | 2021-02-26 |
CN112418412B CN112418412B (zh) | 2024-03-26 |
Family
ID=74774708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011308901.9A Active CN112418412B (zh) | 2020-11-20 | 2020-11-20 | 触发装置及类脑计算系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112418412B (zh) |
WO (1) | WO2022104990A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022104990A1 (zh) * | 2020-11-20 | 2022-05-27 | 清华大学 | 触发装置及类脑计算系统 |
CN116881090A (zh) * | 2023-09-06 | 2023-10-13 | 北京壁仞科技开发有限公司 | 计算装置以及控制计算装置中的计算核的能耗的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408850A (zh) * | 2008-11-27 | 2009-04-15 | 中国人民解放军信息工程大学 | 任务流计算模型 |
CN101566957A (zh) * | 2008-04-25 | 2009-10-28 | 恩益禧电子股份有限公司 | 信息处理系统及任务执行控制方法 |
US20160224376A1 (en) * | 2015-01-30 | 2016-08-04 | Yiqun Ge | Dividing, scheduling, and parallel processing compiled sub-tasks on an asynchronous multi-core processor |
CN110502330A (zh) * | 2018-05-16 | 2019-11-26 | 上海寒武纪信息科技有限公司 | 处理器及处理方法 |
CN110750351A (zh) * | 2019-12-20 | 2020-02-04 | 中科寒武纪科技股份有限公司 | 多核任务调度器、多核任务调度方法、装置及相关产品 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101320337A (zh) * | 2008-07-16 | 2008-12-10 | 北京中星微电子有限公司 | 一种定时器及其实现方法 |
FR3090157B1 (fr) * | 2018-12-12 | 2020-11-20 | Continental Automotive France | Procédé de commande d’une unité de contrôle moteur à processeur multicœur |
CN110163016B (zh) * | 2019-04-29 | 2021-08-03 | 清华大学 | 混合计算系统和混合计算方法 |
CN110472876A (zh) * | 2019-08-19 | 2019-11-19 | 北京首都在线科技股份有限公司 | 一种任务调度方法、装置及计算机可读存储介质 |
CN111813179A (zh) * | 2020-07-24 | 2020-10-23 | 南方电网数字电网研究院有限公司 | 模数转换器的控制方法及控制芯片 |
CN111858010A (zh) * | 2020-07-30 | 2020-10-30 | 中国工商银行股份有限公司 | 批量数据处理方法和装置 |
CN112418412B (zh) * | 2020-11-20 | 2024-03-26 | 清华大学 | 触发装置及类脑计算系统 |
-
2020
- 2020-11-20 CN CN202011308901.9A patent/CN112418412B/zh active Active
- 2020-12-18 WO PCT/CN2020/137468 patent/WO2022104990A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101566957A (zh) * | 2008-04-25 | 2009-10-28 | 恩益禧电子股份有限公司 | 信息处理系统及任务执行控制方法 |
CN101408850A (zh) * | 2008-11-27 | 2009-04-15 | 中国人民解放军信息工程大学 | 任务流计算模型 |
US20160224376A1 (en) * | 2015-01-30 | 2016-08-04 | Yiqun Ge | Dividing, scheduling, and parallel processing compiled sub-tasks on an asynchronous multi-core processor |
CN110502330A (zh) * | 2018-05-16 | 2019-11-26 | 上海寒武纪信息科技有限公司 | 处理器及处理方法 |
CN110750351A (zh) * | 2019-12-20 | 2020-02-04 | 中科寒武纪科技股份有限公司 | 多核任务调度器、多核任务调度方法、装置及相关产品 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022104990A1 (zh) * | 2020-11-20 | 2022-05-27 | 清华大学 | 触发装置及类脑计算系统 |
CN116881090A (zh) * | 2023-09-06 | 2023-10-13 | 北京壁仞科技开发有限公司 | 计算装置以及控制计算装置中的计算核的能耗的方法 |
CN116881090B (zh) * | 2023-09-06 | 2024-01-26 | 北京壁仞科技开发有限公司 | 计算装置以及控制计算装置中的计算核的能耗的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112418412B (zh) | 2024-03-26 |
WO2022104990A1 (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4259751B2 (ja) | リアルタイムで動的に帯域幅を割り当てる完全パイプライン式固定待ち時間通信システム | |
CN112418412B (zh) | 触发装置及类脑计算系统 | |
CN112434800B (zh) | 控制装置及类脑计算系统 | |
CN113434284A (zh) | 一种隐私计算服务端设备、系统及任务调度方法 | |
US20030177163A1 (en) | Microprocessor comprising load monitoring function | |
CN114328003B (zh) | 通过crc硬件模块实现数据倒序处理的方法 | |
CN115203092A (zh) | 一种单主多从的单线通信方法、装置及设备 | |
CN111767121A (zh) | 运算方法、装置及相关产品 | |
CN111985634B (zh) | 神经网络的运算方法、装置、计算机设备及存储介质 | |
CN116795752B (zh) | 接口通信方法、装置以及服务器 | |
US20230067432A1 (en) | Task allocation method, apparatus, electronic device, and computer-readable storage medium | |
WO2022151970A1 (zh) | 一种数据传输方法、系统以及计算节点 | |
CN109857382A (zh) | 一种SoC芯片软件定义无线电解耦设计方法 | |
US20190050019A1 (en) | Counter/Timer Array For Generation Of Complex Patterns Independent Of Software Control | |
CN111767999B (zh) | 数据处理方法、装置及相关产品 | |
JP2009505302A (ja) | マイクロコントローラによる波形発生方法及び装置 | |
CN111078598B (zh) | 存储模块数据访问控制方法、数据访问装置和芯片 | |
CN112631982A (zh) | 基于众核架构的数据交换方法及装置 | |
CN112416475A (zh) | 触发方法 | |
JP2003218871A (ja) | ポーリング装置および通信装置 | |
CN113722053A (zh) | 数据访问控制电路、方法、电子设备及计算机可读存储介质 | |
WO2015073608A1 (en) | Method and system for communicating with non-volatile memory | |
CN111078619A (zh) | 一种转换装置、网络设备及数据传输方法 | |
CN114490465B (zh) | 用于直接存储器访问的数据传输方法和装置 | |
CN114328002B (zh) | 一种编码器内数据采样方法、单片机及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |