[go: up one dir, main page]

WO2022104991A1 - Control apparatus and brain-inspired computing system - Google Patents

Control apparatus and brain-inspired computing system Download PDF

Info

Publication number
WO2022104991A1
WO2022104991A1 PCT/CN2020/137469 CN2020137469W WO2022104991A1 WO 2022104991 A1 WO2022104991 A1 WO 2022104991A1 CN 2020137469 W CN2020137469 W CN 2020137469W WO 2022104991 A1 WO2022104991 A1 WO 2022104991A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
trigger
module
subtask
current
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.)
Ceased
Application number
PCT/CN2020/137469
Other languages
French (fr)
Chinese (zh)
Inventor
裴京
施路平
王冠睿
马骋
徐海峥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Publication of WO2022104991A1 publication Critical patent/WO2022104991A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/061Physical 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present disclosure relates to the technical field of artificial intelligence, and in particular, to a control device and a brain-like computing system.
  • the booming development of big data information networks and intelligent mobile devices has produced massive amounts of unstructured information, accompanied by a sharp increase in the demand for energy-efficient processing of such information.
  • the traditional Von Neumann architecture chip adopts bus communication, synchronization, serial and centralized working methods, and follows Moore's Law to increase the density. It is expected that in the next 10 to 15 years, the miniaturization will reach the physical limit, and the development will be fundamentally limited.
  • a many-core neuromorphic chip architecture is derived. This structure is different from the traditional computer processing method. Through the distributed storage of information and parallel collaborative processing, it has great advantages in dealing with some informal problems. However, the triggering mechanism of the traditional many-core neuromorphic chip architecture has great limitations and cannot perform independent task division.
  • control device which includes:
  • a first trigger module for generating one or more first trigger signals, wherein each first trigger signal corresponds to each task
  • a multiplexer electrically connected to the first trigger module and the second trigger module
  • a control module electrically connected to the multiplexing module, for controlling the multiplexer to select any one of the one or more first trigger signals and the one or more first trigger signals Any one of the two trigger signals and the second trigger signal are transmitted to one or more functional cores in the processor, so that the one or more functional cores execute the subtasks of the task according to the received first trigger signal and the second trigger signal .
  • the first triggering module is further configured to determine that the trigger is satisfied when the first timing clock reaches a first threshold, and all subtasks of the current task all finish executing and the current task is not the last task conditions of the execution cycle of the next task, and generate a first trigger signal corresponding to the execution cycle of the next task.
  • the control module is further configured to transmit the forced termination signal to each functional core of the current task by using the multiplexer.
  • the apparatus further includes a second timing module electrically connected to the second trigger module, the second timing module includes one or more second timing clocks, the second timing The module is used to start the one or more second timing clocks when receiving the second trigger signal to time the execution cycle of each subtask of the current task,
  • the second triggering module is further configured to determine that when the second timing clock reaches a second threshold, and the functional cores corresponding to the second trigger signals all complete the execution of the current subtasks The conditions for triggering the execution cycle of the next subtask of each current subtask in the current task are triggered, and the second trigger signal corresponding to each next subtask is generated.
  • control module is further configured to receive an operation end signal output by each function core corresponding to the second trigger signal, and generate a subtask end when each function core outputs an operation end signal signal to determine that all functional cores corresponding to the second trigger signal end the execution of the current subtask;
  • the device also includes:
  • the first storage module electrically connected to the control module, is used for storing the subtask end signal.
  • control module is further configured to generate a task end signal when the subtask end signals of all subtasks of the current task are stored in the first storage module to determine the All subtasks of the current task corresponding to the first trigger signal all finish execution;
  • the device also includes:
  • a second storage module electrically connected to the control module, is used for storing the task end signal.
  • control module is further configured to assign functional cores to each task and subtasks of each task, number the functional cores in the processor, and assign the first functional core to each task.
  • the sets are numbered, and the second function core sets corresponding to each subtask of each task are numbered.
  • the phase group register is configured as a two-dimensional register with a size of s*n bits, the first dimension represents the current task number, and the second dimension includes the subtask number of the current task, where s and n are positive integers;
  • the functional core register is configured as a two-dimensional register with a size of n*m bits, the first dimension represents the subtask number, and the second dimension represents the functional core included in the subtask;
  • control module is further configured to:
  • the current task is the last task and the execution of the current task ends;
  • a brain-like computing system including the control device.
  • the embodiment of the present disclosure can generate one or more first trigger signals according to the number of tasks to be executed, and generate one or more second trigger signals, according to the first trigger signal, one or more second trigger signals
  • the signal controls the corresponding function core to execute each subtask of the current task, which can support parallel or mixed operations of multiple asynchronous tasks.
  • the function cores with similar tasks can be executed at the same time, so that Through the two-level trigger mechanism, the independent tasks can be divided, the execution speed can be accelerated, the running time can be reduced, and the performance of the chip can be improved. thereby reducing power consumption.
  • the task may be a network or application task, such as a task of performing neural network operations (for example, a VGG network or a ResNet50 network), or a task of running application software, and the like.
  • FIG. 1 shows a schematic diagram of a control device according to an embodiment of the present disclosure.
  • FIG. 2 shows a schematic diagram of grouping of processor functional cores according to an embodiment of the present disclosure.
  • FIG. 3 shows a schematic diagram of a triggering sequence of a control apparatus according to an embodiment of the present disclosure.
  • FIG. 5 shows a schematic diagram of a control device according to an embodiment of the present disclosure.
  • 6a and 6b show schematic diagrams of a control device according to an embodiment of the present disclosure.
  • an embodiment of the present disclosure provides a control device, through two-level triggering control function cores, the first-level triggering can divide different networks or applications, and the second-level triggering can divide networks or similar calculations within applications
  • the task is assigned to perform operations in the functional core, which effectively improves the performance of the chip and has high application value.
  • FIG. 1 shows a schematic diagram of a control device according to an embodiment of the present disclosure.
  • a first trigger module 10 configured to generate one or more first trigger signals, wherein each first trigger signal corresponds to each task;
  • the multiplexer 30 is electrically connected to the first trigger module 10 and the second trigger module 20;
  • terminals are: mobile phone (mobile phone), tablet computer, notebook computer, PDA, mobile internet device (MID), wearable device, virtual reality (virtual reality, VR) device, augmented reality (augmentedreality (AR) equipment, wireless terminals in industrial control, wireless terminals in self-driving, wireless terminals in remote medical surgery, wireless terminals in smart grid , wireless terminal in transportation safety, wireless terminal in smart city, wireless terminal in smart home, wireless terminal in car networking, etc.
  • FIG. 2 shows a schematic diagram of grouping of processor functional cores according to an embodiment of the present disclosure.
  • the processor to which the apparatus of the embodiment of the present disclosure can be applied may be a many-core neuromorphic chip. As shown in FIG. 2 , the processor may include multiple functional cores, which may The functional cores of the processor are grouped.
  • step_grp beat timing group
  • Phase_grp phase timing group
  • step_grp0 , step_grp1 , and step_grp2 represent functional core sets corresponding to each first trigger signal
  • Phase_grp0, Phase_grp1, Phase_grp2, Phase_grp3, Phase_grp4 represent functional core sets corresponding to each second trigger signal
  • Phase_grp5 represent functional core sets corresponding to each second trigger signal
  • C00 to C44 represent different functional cores.
  • Phase_grp0 corresponds to the functional core set including functional cores C00, C01, C10, and C11
  • Phase_grp1, Phase_grp2, Phase_grp3, Phase_grp4, Phase_grp5 are related to the functional cores in the same way
  • step_grp0 corresponds to Phase_grp0, Phase_grp1, and Phase_grp2.
  • the control device can be applied to a system-on-chip including a plurality of functional cores (or called processor cores), and each first trigger signal corresponds to a part of the functional cores in the system-on-chip, that is, a function A set of cores, the first trigger signal can trigger these functional cores to work by generating a second trigger signal, and each subtask can be executed, and each second trigger signal can correspond to one or more of the part of the functional cores.
  • the correspondence between the first trigger signal, the second trigger signal and the functional core can be set manually or automatically as required.
  • the above-mentioned corresponding relationship can be released after a complete task (for example, a neural network operation is completed), so as to be reset later.
  • the multiplexing signal can be set for the multiplexable function core after the setting is completed, so that when the function core is set to the function core in other tasks, It can be used as an idle functional core to participate in the operation, so that the functional core can be fully utilized, and the performance and utilization rate of the system can be improved.
  • the settings of the functional core between the subtasks can be used, and the functional core does not need to be released between the subtask and the execution cycle of the subtask.
  • the second trigger signal can complete a part of a link in each cycle, such as a convolution operation in a network layer operation, and the function core corresponding to each second trigger signal can perform similar operations in each link ( subtask), in a possible implementation manner, after completing a link of the neural network operation task, the corresponding relationship between the first trigger signal and the second trigger signal and the functional core can be used, and after completing the entire neural network task, Release the functional core.
  • the first trigger module may generate the first trigger signal according to an external input signal, or may generate the first trigger signal by itself.
  • the apparatus may further include an external trigger module 90 (as shown in FIG. 5 ).
  • the external trigger module 90 may generate and input a start signal, so that the first trigger signal needs to be executed.
  • a trigger module generates the first trigger signal, or the external trigger module 90 can directly generate the first trigger signal; during the execution of the task, the first trigger module can generate a new first trigger signal when judging that the task period is not over. It will be introduced in detail below.
  • FIG. 3 shows a schematic diagram of a trigger sequence of a control apparatus according to an embodiment of the present disclosure.
  • the function core set corresponding to the first trigger signal can be called a beat timing group; step_ck0 represents the first trigger signal corresponding to step group0, which can be called the beat trigger signal corresponding to step group0; step_ck0 is set to 1 to indicate that a beat trigger signal is received; step_ck1 represents the beat trigger signal corresponding to step group1, step_ck1 is set to 1 to indicate that a beat trigger signal is received; p_grp0_ck and p_grp1_ck respectively represent the two second trigger signals corresponding to step group0, the second trigger signal can be called a phase trigger signal, the second trigger signal
  • the set of function cores corresponding to the trigger signal can be called a phase timing group.
  • phase trigger signal When the phase trigger signal is set to 1, it means that a phase trigger signal is received; p_grp2_ck, p_grp3_ck and p_grp4_ck respectively represent the three phase trigger signals corresponding to step group1, and the phase trigger signal set to 1 means that A phase trigger signal is received; s_grp0_finish indicates the signal that all the corresponding functional core sets of step group0 have finished executing, that is, the signal that all subtasks of the current task (that is, the task corresponding to step group0) have all finished executing, which can be called step The beat end signal of group0, the beat end signal is set to 1 when all the phase timing groups in step group0 finish executing all corresponding subtasks, otherwise it is set to 0; s_grp1_finish represents the signal that all the corresponding function core sets of step group1 have finished executing, which can be It is called the beat end signal of step group1; it is set to 1 when all the phase timing groups in step group1 finish
  • step_ck0 is automatically set to 1 at this time
  • step_ck0 is automatically set to 1 at this time
  • step_ck0 is automatically set to 1 at this time
  • the number of working cycle clocks of the phase timing groups under the same beat timing group can be the same or different; the phase timing groups belonging to the same beat timing group receive the phase trigger signal and trigger their corresponding first sub
  • the tasks are synchronous. After the execution of the first subtask, the automatic triggering of subsequent subtasks of these phase sequence groups can be asynchronous, and the phase sequence groups belonging to different beat sequence groups can be triggered asynchronously. Different beat timing groups can also be asynchronous.
  • FIG. 4 shows a schematic diagram of a triggering sequence of a control apparatus according to an embodiment of the present disclosure.
  • clk represents the reference clock, and if clk is set to 1, it represents the number of 1 reference clock; s_ck represents the first trigger signal, which can be called a beat trigger signal, and phase group0 and phase group1 represent different second trigger signals.
  • the function core set corresponding to the trigger signal (or called the phase timing group), and the function core set corresponding to the second trigger signal can be called the phase timing group; s_ck is set to 1 to indicate that a beat trigger signal is received; p_grp0_ck indicates that phase group0 corresponds to the first Two trigger signals, the second trigger signal can be called a phase trigger signal; p_grp0_ck is set to 1 to indicate that a corresponding phase trigger signal is received; p_grp1_ck indicates that the phase trigger signal corresponding to phase group1; p_grp1_ck is set to 1 to indicate that a corresponding phase trigger signal has been received ;core0, core1 and core2 respectively represent the three functional cores under phase group0, core3 and core4 respectively represent the two functional cores under phase group1; p_grp0_finish represents the signal that all the functional cores of phase group0 have finished executing, which can be called phase group0 phase End signal; set to 1 when all functional cores in phase
  • the beat end signal can be obtained from the phase end signal of the phase sequence group corresponding to each phase sequence group under the beat sequence group, that is to say, s_grp0_finish in FIG. p0, p1, p2 and p3 respectively indicate that the corresponding functional core is in the corresponding execution operation state.
  • phase timing clock (which can be called the second timing clock) can be started.
  • phase timing clock When the number of clocks of the phase timing clock is equal to the number of phase end clocks, it can be Check whether the function cores in the phase sequence group all end the current subtask, if so, trigger the next phase sequence group work cycle (can be called the execution cycle), otherwise wait for all the operations to complete the current subtask to start the next phase Timing group duty cycle. If the function check in the phase sequence group completes the execution of all subtasks of the current task, p_grp0_finish is set to 1. When the function core in the phase sequence group does not all finish executing all subtasks of the current task, it will continue to execute until all subtasks are executed. After completion, start the next task, or receive the forced end signal of the beat sequence group, force end all current subtasks. The same is true for phase group1.
  • each functional core in the same phase timing group can be the same or different; the functional cores belonging to the same phase timing group are triggered synchronously, and the functional cores belonging to different phase timing groups are Can be triggered asynchronously.
  • the trigger sequence of the control device is exemplarily introduced above, and an exemplary description is given below in conjunction with the possible implementation of the control device.
  • FIG. 5 shows a schematic diagram of a control apparatus according to an embodiment of the present disclosure.
  • the apparatus may further include a first timing module 50 electrically connected to the first trigger module 10 , and the first timing module 50 may include a first timing module a clock, the first timing module 50 is configured to start the first timing clock when receiving the first trigger signal to time the execution cycle of the current task;
  • the first triggering module 10 may also be configured to be used when the first timing clock reaches a first threshold, and all subtasks of the current task all finish executing and the current task If it is not the last task, it is determined that the condition for triggering the execution period of the next task is satisfied, and a first trigger signal corresponding to the execution period of the next task is generated.
  • the first threshold may be set in advance, and different first trigger signals may correspond to different first thresholds.
  • the first threshold (number of clocks) can be directly input from the outside, or parameters related to the first threshold can be input, and the control module can perform a correlation operation to determine the first threshold according to the obtained parameters.
  • the apparatus may include a register module 70 .
  • the register module 70 may include a first threshold register to receive an externally inputted first threshold.
  • the first threshold may be a change value that changes according to different tasks, and is received each time the execution cycle of the current task is triggered, or it may be a preset fixed value that only needs to be received once, and can be repeated later use.
  • the execution cycle of the next task when the conditions for triggering the execution cycle of the next task are met, the execution cycle of the next task can be triggered, that is, the execution of the next task can be started, and the execution mode of the next task can be the same as that of the current task.
  • the first timing clock may be clocked every time a reference clock cycle passes, and it is determined whether the first threshold value is reached.
  • the embodiments of the present disclosure can realize the pre-control and deployment of the execution cycles of different network applications, thereby realizing the asynchronous and independent running of different tasks, and speeding up the running speed.
  • the first timing clock may be restarted from 0 each time a new first trigger signal is generated.
  • the first trigger module 10 may also be configured to generate a forced end signal when the first timing clock reaches a third threshold, where the forced end signal is used for forcibly ending The execution of each current subtask in the current task, thereby forcibly ending the execution of the current task;
  • control module 40 may also be configured to transmit the forced termination signal to each functional core of the current task by using the multiplexer 30, so that each functional core terminates the operation.
  • the third threshold may be greater than the first threshold, may be a change value that changes according to different tasks, and is received each time the execution cycle of the current task is triggered, or may be a preset fixed value, which only needs to be You can receive it once, and you can reuse it later.
  • the register module 70 may include a third threshold register to store the third threshold, and the third threshold register may be read or written to obtain or set the third threshold.
  • a program error may occur in the current task and cause it to be stuck.
  • the estimated execution The number of clocks required by this link task is 500 clocks.
  • the third threshold can be set as 1000 clocks, and when the third threshold is reached, the task is not finished, and the task is forced to end.
  • the entire upper-level task can be forcibly terminated. After the execution of the entire task is forcibly terminated, the function core set corresponding to the first trigger signal can be released to avoid occupying unnecessary functions. nuclear resources.
  • the apparatus may further include a second timing module 60 electrically connected to the second trigger module 20 , and the second timing module 60 may include one or more a second timing clock, the second timing module is configured to start the one or more second timing clocks when receiving the second trigger signal, so as to time the execution period of each subtask of the current task,
  • the second trigger module 20 may also be configured to end the current state when the second timing clock reaches a second threshold and all the functional cores corresponding to the second trigger signals When each subtask is executed, it is determined that the conditions for triggering the execution cycle of the next subtask of each current subtask in the current task are satisfied, and the second trigger signal corresponding to each next subtask is generated.
  • the execution cycle of the next subtask can be triggered after waiting for all the function core set to finish execution, so as to prevent the current subtask from starting the next subtask.
  • a subtask may cause the current task to be stuck in a subtask and cannot continue, thereby preventing the situation of error reporting, enabling the deployment and scheduling of each task to be executed smoothly, and improving the corresponding performance.
  • the second threshold may be preset, and functional core sets corresponding to different second trigger signals may correspond to corresponding second end clock numbers.
  • the register module 70 may include a second threshold register to receive an externally input second threshold.
  • the second end clock number may be a change value that changes according to different subtasks, and is received each time the execution cycle of the subtask under the current task is triggered, or it may be a preset fixed value, which only needs to be received once. Yes, it can be reused later.
  • pre-control and deployment of the execution cycles of different subtasks can be realized, thereby realizing asynchronous independent operation of different subtasks, and speeding up the operation speed.
  • the execution cycle of the next task of each current subtask is triggered, that is, the execution of each next subtask is started, and the next subtask is executed.
  • the execution method of a subtask can be the same as that of the current subtask, and so on, until all subtasks of the current task are executed or a forced end signal is received to end the execution of the subtask.
  • the second timing module 60 controls the second timing clock to start timing when the second trigger signal is received, and the second timing clock can determine whether the second threshold is reached every time the number of clocks passes;
  • the trigger signal may correspond to a second timing clock, and different second timing clocks may correspond to different second thresholds.
  • the second timing clock corresponding to the core set is compared with the corresponding second threshold; the execution cycles of each functional core set may be the same or different.
  • the received second trigger signal here includes a second trigger signal generated according to the first trigger signal, and also includes a second trigger signal that is automatically generated when the conditions described below are met. Whenever a new second trigger signal is generated , the corresponding second timing clock can re-time from 0.
  • control module 40 may also be configured to receive the operation end signal output by each function core corresponding to the second trigger signal, and generate a sub-function when each function core outputs the operation end signal. a task end signal to determine that all functional cores corresponding to the second trigger signal end the execution of the current subtask;
  • the apparatus further includes: a first storage module (not shown), electrically connected to the control module, for storing the subtask end signal.
  • each functional core of the processor generates an operation end signal after completing its own operation (for example, a primitive operation such as multiplication and addition), and outputs the signal to the control module.
  • an operation end signal after completing its own operation (for example, a primitive operation such as multiplication and addition), and outputs the signal to the control module.
  • FIGS. 6a and 6b are schematic diagrams of a control device according to an embodiment of the present disclosure.
  • the processor may include m functional cores (cores), for example, in an example, the control module is further configured to number each functional core of the processor to uniquely identify each functional core, for example,
  • the functional core of the processor can be set as core[0], core[0]...core[m-2], core[m-1].
  • the operation end signal (for example, core_finish[0], corresponding to the function core core[0]) may be low level (0), when the function core core[0] When the execution of the primitive operation is completed, the operation end signal core_finish[0] can be high (1).
  • the control module can determine the state of the function core (idle state or operation state by detecting the operation end signal). ), when the operation end signal of all function cores in the function core set corresponding to the second trigger signal is high level, the control module generates the subtask end signal to determine that the function cores corresponding to the second trigger signal all end the current execution of subtasks.
  • control module may perform an AND operation on the operation end signals in each functional core to determine the subtask end signal corresponding to the second trigger signal.
  • control module can also be used to allocate functional cores to each task, and the control module can allocate idle functional cores to the tasks according to the computing requirements required by the tasks, for example, the current task corresponding to the first trigger signal can be allocated A plurality of functional cores to obtain a beat sequence group, one or more second trigger signals generated according to the first trigger signal correspond to one or more sub-tasks of the current task, and the control module further assigns them to the current task according to the operation requirements of the sub-tasks
  • the multiple functional cores are further allocated to each subtask to obtain one or more phase timing groups.
  • the control module can assign and obtain multiple beat timing groups and multiple phase timing groups.
  • control module can number each beat timing group and each phase timing group, as shown in Figure 6a, assuming that a beat timing group includes n phase timing groups (phase groups), which are sequentially numbered as phase_grp[ 0] ⁇ phase_grp[n-1], correspondingly, when the control module determines that the operation end signals of all functional cores in the phase sequence group corresponding to the subtask are high, the control module generates the subtask end signal phase_grp_finish[0]( Corresponding to the phase sequence group phase_grp[0]) to phase_grp_finish[n-1] (corresponding to the phase sequence group phase_grp[n-1]).
  • the register module 70 may further include a function core register (core_en, eg core_en[0,0]), the function core register is configured as a binary register with a size of m*n bits Dimension register, the first dimension indicates the function core number (for example, the first dimension in core_en[0,0] indicates that the function core is the function core core[0], which belongs to the phase timing group phase_grp[0]), the second dimension indicates Subtask numbers included in subtasks, where n and m are both positive integers, and n ⁇ m.
  • core_en eg core_en[0,0]
  • the function core register is configured as a binary register with a size of m*n bits Dimension register
  • the first dimension indicates the function core number (for example, the first dimension in core_en[0,0] indicates that the function core is the function core core[0], which belongs to the phase timing group phase_grp[0])
  • the second dimension indicates Subtask numbers included in subtasks, where n and m
  • the first storage module may include a subtask end signal register (phase_grp_finish) to store the subtask end signal
  • the subtask end signal register may be configured as n bits corresponding to each phase timing group (one task may include a or multiple subtasks, corresponding to one or more phase sequence groups), when all functional cores in the phase sequence group complete the operation, the subtask end signal corresponding to the phase sequence group can be 1, otherwise it can be 0.
  • control module 40 may also be configured to generate a task end signal when the subtask end signals of all subtasks of the current task are stored in the first storage module, so as to It is determined that all subtasks of the current task corresponding to the first trigger signal all finish execution.
  • the apparatus may further include: a second storage module (not shown in FIG. 5 ), electrically connected to the control module, and configured to store the task end signal.
  • a second storage module (not shown in FIG. 5 ), electrically connected to the control module, and configured to store the task end signal.
  • the control module may number each beat sequence group (step_grp). For example, if there are s tasks, the control module may establish s beat sequence groups (numbered step_grp[0] ⁇ step_grp). [s-1]).
  • the register module 70 may include a phase group register (eg phase_group_en[0,0]), the phase group register is configured as a two-dimensional register of size s*n bits, the first dimension represents the subtask number ( Or referred to as the phase sequence group number), the current task number (or referred to as the beat sequence group number) included in the second-dimensional current task, where s and n are both positive integers.
  • the first dimension of the phase group register phase_group_en[0,0] represents the phase timing group phase_group[0]
  • the second dimension represents the beat timing group step_grp[0], that is, the phase timing group phase_group[0] belongs to the beat timing group step_grp[ 0].
  • the second storage module may include a task end signal register (step_grp_finish) for storing task end signals of each tick timing group, and the task end signal register may be configured to include s bits, respectively corresponding to s The tick sequence group, for example, the task end signal register step_grp_finish[1] is used to store the task end signal of the tick sequence group step_grp[1].
  • step_grp_finish a task end signal register
  • control module can read the subtask end signal in the subtask end signal register phase_grp_finish, and perform a phase AND operation on the subtask end signals of each subtask (phase sequence group) to obtain the current task (beat sequence For example, when all phase timing groups in a beat timing group are finished, that is, the subtask end signals corresponding to all phase timing groups in a beat timing group are all 1, the phase AND operation is performed. If the result is 1, the task end signal of this task can be set to 1, otherwise the task end signal of this task is 0.
  • each function core can send the operation end signal to the control module (or the control module obtains the operation end signal from each function core).
  • the operation end signal of each functional core is 1.
  • the control module obtains the subtask end signal as 1, and the operation task of the phase sequence group is completed.
  • the control module can obtain the stored value in the subtask end signal, and perform the phase AND operation , it can be obtained that the result of the AND operation is 1, then it can be determined that the current task is completed, and the task end register corresponding to the current task is set to 1, indicating that the current task has completed the operation.
  • a first selection register as shown in FIG. 6b, S_sel[0:m-1][0:y-1]
  • each functional core freely selects any one of the first trigger signals as its own first trigger signal according to the configuration of the first selection register S_sel, or the control module selects according to the first trigger signal.
  • the configuration of the register S_sel sends any one of the first trigger signals s_ck(0:s-1) to any one of the functional cores.
  • a second selection register as shown in FIG. 6a, P_sel[0:m-1][0:x-1]
  • the control module can configure the second selection register , so that the corresponding
  • the control module sends any second trigger signal p_ck(0:n-1) to any functional core according to the configuration of the first selection register P_sel.
  • the subsequent processor function can be expanded, and the adaptability and flexibility can be increased.
  • control module can also be used to:
  • the current task is the last task and the execution of the current task ends;
  • the current task is the last link of a neural network computing task
  • the entire neural network computing task is completed, and the first trigger signal corresponding to the set of functional cores in the processor can be released, that is to say These functional core sets can become idle for use by other tasks, and after the execution of the current task is forced to end, since the end execution of the current task is a forced end after a timeout, it can lead to the end execution of the entire neural network computing task. It is also possible to release the first trigger signal corresponding to the set of functional cores in the processor. After the execution of the current task is finished, the corresponding first timing clock and each second timing clock may also be reset and cleared.
  • the unselected functional cores can be put into a dormant state to reduce power consumption, and at the same time, the functional cores can be released in time It can make the function core in the idle state can be selected by other tasks, improve the operation efficiency, reduce the waiting time of other tasks, and speed up the execution speed.
  • the control device of the embodiment of the present disclosure can support parallel or mixed operations of multiple asynchronous network applications on-chip: different step triggers can be deployed correspondingly to different network applications, and they operate independently, which can reduce power consumption. When there are only a few network applications During execution, unselected cores are in a dormant state, power consumption is reduced, and running time can be reduced: for a network application, cores with similar computing tasks are divided into a phase timing group to speed up execution.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Neurology (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

A control apparatus and a brain-inspired computing system. The apparatus comprises: a first trigger module (10); a second trigger module (20); a multiplexer (30) electrically connected to the first trigger module (10) and the second trigger module (20); and a control module (40) electrically connected to the multiplexer module (30) and used for controlling the multiplexer (30) to transmit any one first trigger signal of one or more first trigger signals and any one second trigger signal of one or more second trigger signals to one or more functional cores in a processor (1), such that the one or more functional cores execute a sub-task of a task according to the received first trigger signal and the second trigger signal. According to the apparatus, segmentation of an independent task can be achieved, thereby increasing the execution speed, reducing running time, improving chip performance, and reducing power consumption.

Description

控制装置及类脑计算系统Control device and brain-like computing system 技术领域technical field

本公开涉及人工智能技术领域,尤其涉及一种控制装置及类脑计算系统。The present disclosure relates to the technical field of artificial intelligence, and in particular, to a control device and a brain-like computing system.

背景技术Background technique

大数据信息网络核智能移动设备的蓬勃发展产生了海量的非结构化信息,伴生了对这些信息的高能效处理需求的急剧增长。传统冯诺依曼架构芯片采用总线通信、同步、串行和集中的工作方式,遵循摩尔定律增加密度,预计在未来10到15年内微缩将到达物理极限,发展必将受到根本性限制。The booming development of big data information networks and intelligent mobile devices has produced massive amounts of unstructured information, accompanied by a sharp increase in the demand for energy-efficient processing of such information. The traditional Von Neumann architecture chip adopts bus communication, synchronization, serial and centralized working methods, and follows Moore's Law to increase the density. It is expected that in the next 10 to 15 years, the miniaturization will reach the physical limit, and the development will be fundamentally limited.

由此衍生出众核神经形态芯片架构,这种结构不同于传统的计算机处理方式,通过信息的分布式存储和并行协同处理,处理一些非形式化问题时具有较大优势。而传统的众核神经形态芯片架构的触发机制具有较大的局限性,无法进行独立的任务划分。From this, a many-core neuromorphic chip architecture is derived. This structure is different from the traditional computer processing method. Through the distributed storage of information and parallel collaborative processing, it has great advantages in dealing with some informal problems. However, the triggering mechanism of the traditional many-core neuromorphic chip architecture has great limitations and cannot perform independent task division.

发明内容SUMMARY OF THE INVENTION

有鉴于此,本公开提出了一种控制装置,所述装置包括:In view of this, the present disclosure proposes a control device, which includes:

第一触发模块,用于产生一个或多个第一触发信号,其中,各个第一触发信号对应于各个任务;a first trigger module for generating one or more first trigger signals, wherein each first trigger signal corresponds to each task;

第二触发模块,电连接于所述第一触发模块,用于根据第一触发信号生成一个或多个第二触发信号,其中,第二触发信号对应于任务的子任务;a second trigger module, electrically connected to the first trigger module, and configured to generate one or more second trigger signals according to the first trigger signal, wherein the second trigger signals correspond to subtasks of the task;

多路选择器,电连接于所述第一触发模块及所述第二触发模块;a multiplexer, electrically connected to the first trigger module and the second trigger module;

控制模块,电连接于所述多路选择模块,用于控制所述多路选择器将所述一个或多个第一触发信号中的任意一个第一触发信号、及所述一个或多个第二触发信号中的任意一个第二触发信号传输至处理器中的一个或多个功能核,以使得该一个或多个功能核根据接收的第一触发信号及第二触发信号执行任务的子任务。A control module, electrically connected to the multiplexing module, for controlling the multiplexer to select any one of the one or more first trigger signals and the one or more first trigger signals Any one of the two trigger signals and the second trigger signal are transmitted to one or more functional cores in the processor, so that the one or more functional cores execute the subtasks of the task according to the received first trigger signal and the second trigger signal .

在一种可能的实现方式中,所述装置还包括第一计时模块,电连接于所述第一触发模块,所述第一计时模块包括第一计时时钟,所述第一计时模块用于在接收到所述第一触发信号时启动所述第一计时时钟,以对当前任务的执行周期计时;In a possible implementation manner, the apparatus further includes a first timing module electrically connected to the first trigger module, the first timing module includes a first timing clock, and the first timing module is used for When receiving the first trigger signal, start the first timing clock to time the execution period of the current task;

所述第一触发模块,还用于在所述第一计时时钟达到第一阈值,且所述当前任务的所有子任务全部结束执行且所述当前任务不是最后一个任务的情况下,确定满足触发下一任务的执行周期的条件,并生成所述下一任务的执行周期对应的第一触发信号。The first triggering module is further configured to determine that the trigger is satisfied when the first timing clock reaches a first threshold, and all subtasks of the current task all finish executing and the current task is not the last task conditions of the execution cycle of the next task, and generate a first trigger signal corresponding to the execution cycle of the next task.

在一种可能的实现方式中,所述第一触发模块还用于,在所述第一计时时钟到达第三阈值的情况下,生成强制结束信号,所述强制结束信号用于强制结束所述当前任务中当前各子任务的执行,从而强制结束当前任务的执行;In a possible implementation manner, the first triggering module is further configured to, when the first timing clock reaches a third threshold, generate a forcible end signal, where the forcible end signal is used to forcibly end the The execution of the current subtasks in the current task, thereby forcibly ending the execution of the current task;

所述控制模块还用于,利用所述多路选择器将所述强制结束信号传输至当前任务的各个功能核。The control module is further configured to transmit the forced termination signal to each functional core of the current task by using the multiplexer.

在一种可能的实现方式中,所述装置还包括第二计时模块,电连接于所述第二触发模块,所述第二计时模块包括一个或多个第二计时时钟,所述第二计时模块用于在接收到所述第二触发信号时启动所述一个或多个第二计时时钟,以对当前任务的各个子任务的执行周期计时,In a possible implementation manner, the apparatus further includes a second timing module electrically connected to the second trigger module, the second timing module includes one or more second timing clocks, the second timing The module is used to start the one or more second timing clocks when receiving the second trigger signal to time the execution cycle of each subtask of the current task,

所述第二触发模块,还用于在所述第二计时时钟达到第二阈值,且所述各第二触发信号对应的所述功能核全部结束当前各子任务的执行的情况下,确定满足触发所述当前任务中当前各子任务的下一子任务的执行周期的条件,并生成各下一子任务对应的所述第二触发信号。The second triggering module is further configured to determine that when the second timing clock reaches a second threshold, and the functional cores corresponding to the second trigger signals all complete the execution of the current subtasks The conditions for triggering the execution cycle of the next subtask of each current subtask in the current task are triggered, and the second trigger signal corresponding to each next subtask is generated.

在一种可能的实现方式中,所述控制模块还用于,接收与第二触发信号对应的各个功能核输出的运算结束信号,并在各个功能核均输出运算结束信号时,产生子任务结束信号,以确定与第二触发信号对应的功能核全部结束当前子任务的执行;In a possible implementation manner, the control module is further configured to receive an operation end signal output by each function core corresponding to the second trigger signal, and generate a subtask end when each function core outputs an operation end signal signal to determine that all functional cores corresponding to the second trigger signal end the execution of the current subtask;

所述装置还包括:The device also includes:

第一存储模块,电连接于所述控制模块,用于存储所述子任务结束信号。The first storage module, electrically connected to the control module, is used for storing the subtask end signal.

在一种可能的实现方式中,所述控制模块还用于,在所述第一存储模块中存储有当前任务的所有子任务的子任务结束信号的情况下,产生任务结束信号,以确定与第一触发信号对应的当前任务的所有子任务全部结束执行;In a possible implementation manner, the control module is further configured to generate a task end signal when the subtask end signals of all subtasks of the current task are stored in the first storage module to determine the All subtasks of the current task corresponding to the first trigger signal all finish execution;

所述装置还包括:The device also includes:

第二存储模块,电连接于所述控制模块,用于存储所述任务结束信号。A second storage module, electrically connected to the control module, is used for storing the task end signal.

在一种可能的实现方式中,所述控制模块还用于为各个任务、各个任务的子任务分配功能核,并对处理器中的功能核进行编号,对分配给各个任务的第一功能核集合进行编号,对各个任务的各个子任务对应的第二功能核集合进行编号。In a possible implementation manner, the control module is further configured to assign functional cores to each task and subtasks of each task, number the functional cores in the processor, and assign the first functional core to each task. The sets are numbered, and the second function core sets corresponding to each subtask of each task are numbered.

在一种可能的实现方式中,所述装置包括多个相位组寄存器、第一选择寄存器、功能核寄存器、第二选择寄存器,其中,In a possible implementation manner, the apparatus includes a plurality of phase group registers, a first selection register, a function core register, and a second selection register, wherein,

所述相位组寄存器被配置为大小为s*n比特的二维寄存器,第一维表示当前任务编号,第二维当前任务包括的子任务编号,其中,s、n均为正整数;The phase group register is configured as a two-dimensional register with a size of s*n bits, the first dimension represents the current task number, and the second dimension includes the subtask number of the current task, where s and n are positive integers;

所述第一选择寄存器被配置为大小为m*y比特的二维寄存器,第一维表示当前的功能核编号,第二维表示当前功能核所属的任务编号,其中,m、y均为正整数,且y=log 2s; The first selection register is configured as a two-dimensional register with a size of m*y bits, the first dimension represents the current functional core number, and the second dimension represents the task number to which the current functional core belongs, wherein m and y are positive. integer, and y=log 2 s;

所述功能核寄存器被配置为大小为n*m比特的二维寄存器,第一维表示子任务编号,第二维表示子任务包括的功能核;The functional core register is configured as a two-dimensional register with a size of n*m bits, the first dimension represents the subtask number, and the second dimension represents the functional core included in the subtask;

所述第二选择寄存器被配置为大小为m*x比特的二维寄存器,第一维表示功能核的编号,第二维表示当前功能核所述的子任务编号,其中,x=log 2n。 The second selection register is configured as a two-dimensional register with a size of m*x bits, the first dimension represents the number of the functional core, and the second dimension represents the subtask number described by the current functional core, where x=log 2 n .

在一种可能的实现方式中,所述控制模块还用于,In a possible implementation manner, the control module is further configured to:

在满足预设条件的情况下,释放所述第一触发信号对应的处理器中的功能核,所述预设条件包括:Release the function core in the processor corresponding to the first trigger signal under the condition that a preset condition is satisfied, and the preset condition includes:

当前任务为最后一个任务且所述当前任务结束执行;或者The current task is the last task and the execution of the current task ends; or

在强制结束当前任务的执行时。When forcibly ending the execution of the current task.

根据本公开的另一方面,提供了一种类脑计算系统,所述系统包括所述的控制装置。According to another aspect of the present disclosure, a brain-like computing system is provided, the system including the control device.

通过以上装置,本公开实施例可以根据待执行的任务的数目产生一个或多个第一触发信号,并生成一个或多个第二触发信号,根据第一触发信号、一个或多个第二触发信号控制对应的功能核执行当前任务的各子任务,可以支持多个异步任务的并行或混合运算,同时通过将当前任务划分成各子任务,使内部具有相似任务的功能核可以同时执行,这样通过二级的触发机制,可以实现对独立任务的分割,加快了执行速度,减少运行时间,提升芯片的性能;通过触发信号控制相应的功能核,可以使未被选中的功能核处于休眠状态,从而降低功耗。其中,所述任务可以是网络或应用任务,例如进行神经网络运算的任务(例如可以是VGG网络或ResNet50网络),或者运行应用软件的任务等。Through the above device, the embodiment of the present disclosure can generate one or more first trigger signals according to the number of tasks to be executed, and generate one or more second trigger signals, according to the first trigger signal, one or more second trigger signals The signal controls the corresponding function core to execute each subtask of the current task, which can support parallel or mixed operations of multiple asynchronous tasks. At the same time, by dividing the current task into subtasks, the function cores with similar tasks can be executed at the same time, so that Through the two-level trigger mechanism, the independent tasks can be divided, the execution speed can be accelerated, the running time can be reduced, and the performance of the chip can be improved. thereby reducing power consumption. The task may be a network or application task, such as a task of performing neural network operations (for example, a VGG network or a ResNet50 network), or a task of running application software, and the like.

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。Other features and aspects of the present disclosure will become apparent from the following detailed description of exemplary embodiments with reference to the accompanying drawings.

附图说明Description of drawings

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate exemplary embodiments, features, and aspects of the disclosure, and together with the description, serve to explain the principles of the disclosure.

图1示出了根据本公开一实施例的控制装置的示意图。FIG. 1 shows a schematic diagram of a control device according to an embodiment of the present disclosure.

图2示出了根据本公开一实施例的处理器功能核的分组示意图。FIG. 2 shows a schematic diagram of grouping of processor functional cores according to an embodiment of the present disclosure.

图3示出了根据本公开一实施例的控制装置的触发时序示意图。FIG. 3 shows a schematic diagram of a triggering sequence of a control apparatus according to an embodiment of the present disclosure.

图4示出了根据本公开一实施例的控制装置的触发时序示意图。FIG. 4 shows a schematic diagram of a triggering sequence of a control apparatus according to an embodiment of the present disclosure.

图5示出了根据本公开一实施例的控制装置的示意图。FIG. 5 shows a schematic diagram of a control device according to an embodiment of the present disclosure.

图6a、图6b示出了根据本公开一实施方式的控制装置的示意图。6a and 6b show schematic diagrams of a control device according to an embodiment of the present disclosure.

具体实施方式Detailed ways

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。Various exemplary embodiments, features and aspects of the present disclosure will be described in detail below with reference to the accompanying drawings. The same reference numbers in the figures denote elements that have the same or similar functions. While various aspects of the embodiments are shown in the drawings, the drawings are not necessarily drawn to scale unless otherwise indicated.

本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。As used in this disclosure, "first," "second," and similar terms do not denote any order, quantity, or importance, but are merely used to distinguish the various components. Likewise, words such as "a," "an," or "the" do not denote a limitation of quantity, but rather denote the presence of at least one. "Comprises" or "comprising" and similar words mean that the elements or things appearing before the word encompass the elements or things recited after the word and their equivalents, but do not exclude other elements or things. Words like "connected" or "connected" are not limited to physical or mechanical connections, but may include electrical connections, whether direct or indirect.

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。The word "exemplary" is used exclusively herein to mean "serving as an example, embodiment, or illustration." Any embodiment described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments.

另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。In addition, in order to better illustrate the present disclosure, numerous specific details are given in the following detailed description. It will be understood by those skilled in the art that the present disclosure may be practiced without certain specific details. In some instances, methods, means, components and circuits well known to those skilled in the art have not been described in detail so as not to obscure the subject matter of the present disclosure.

随着神经网络技术领域的不断发展,产生了海量的非结构化信息,伴生了对这些信息的高能效处理需求的急剧增长。其中,众核神经形态芯片架构不同于传统的计算机处理方式,通过信息的分布式存储和并行协同处理,处理一些非形式化问题时具有较大优势。然而传统芯片中的触发机制在执行多网络时无法进行独立的网络任务划分,有较大的局限性。With the continuous development of neural network technology, massive amounts of unstructured information have been generated, accompanied by a sharp increase in the demand for energy-efficient processing of such information. Among them, the many-core neuromorphic chip architecture is different from the traditional computer processing method. Through the distributed storage of information and parallel collaborative processing, it has great advantages in dealing with some informal problems. However, the trigger mechanism in the traditional chip cannot perform independent network task division when executing multiple networks, and has great limitations.

为了进一步提高性能,本公开实施例提供了一种控制装置,通过两级触发控制功能核,第一级触发可以进行不同网络或应用的划分,第二级触发可以分割网络或应用内相似的计算任务,并分配在在功能核中进行运算,有效的提高了芯片的性能,具有较高的应用价值。In order to further improve performance, an embodiment of the present disclosure provides a control device, through two-level triggering control function cores, the first-level triggering can divide different networks or applications, and the second-level triggering can divide networks or similar calculations within applications The task is assigned to perform operations in the functional core, which effectively improves the performance of the chip and has high application value.

请参阅图1,图1示出了根据本公开一实施例的控制装置的示意图。Please refer to FIG. 1 , which shows a schematic diagram of a control device according to an embodiment of the present disclosure.

如图1所示,所述装置包括:As shown in Figure 1, the device includes:

第一触发模块10,用于产生一个或多个第一触发信号,其中,各个第一触发信号对应于各个任务;a first trigger module 10, configured to generate one or more first trigger signals, wherein each first trigger signal corresponds to each task;

第二触发模块20,电连接于所述第一触发模块10,用于根据第一触发信号生成一个或多个第二触发信号,其中,第二触发信号对应于任务的子任务;The second triggering module 20 is electrically connected to the first triggering module 10, and is configured to generate one or more second triggering signals according to the first triggering signal, wherein the second triggering signal corresponds to the subtask of the task;

多路选择器30,电连接于所述第一触发模块10及所述第二触发模块20;The multiplexer 30 is electrically connected to the first trigger module 10 and the second trigger module 20;

控制模块40,电连接于所述多路选择模块30,用于控制所述多路选择器30将所述一个或多个第一触发信号中的任意一个第一触发信号、及所述一个或多个第二触发信号中的任意一个第二触发信号传 输至处理器1中的一个或多个功能核,以使得该一个或多个功能核根据接收的第一触发信号及第二触发信号执行任务的子任务。The control module 40, electrically connected to the multiplexing module 30, is used to control the multiplexer 30 to select any one of the one or more first trigger signals and the one or more first trigger signals. Any one of the multiple second trigger signals is transmitted to one or more functional cores in the processor 1, so that the one or more functional cores execute according to the received first trigger signal and the second trigger signal Subtasks of tasks.

通过以上装置,本公开实施例可以根据待执行的任务的数目产生一个或多个第一触发信号,并生成一个或多个第二触发信号,根据第一触发信号、一个或多个第二触发信号控制对应的功能核执行当前任务的各子任务,可以支持多个异步任务的并行或混合运算,同时通过将当前任务划分成各子任务,使内部具有相似任务的功能核可以同时执行,这样通过二级的触发机制,可以实现对独立任务的分割,加快了执行速度,减少运行时间,提升芯片的性能;通过触发信号控制相应的功能核,可以使未被选中的功能核处于休眠状态,从而降低功耗。其中,所述任务可以是网络或应用任务,例如进行神经网络运算的任务(例如可以是VGG网络或ResNet50网络),或者运行应用软件的任务等。Through the above device, the embodiment of the present disclosure can generate one or more first trigger signals according to the number of tasks to be executed, and generate one or more second trigger signals, according to the first trigger signal, one or more second trigger signals The signal controls the corresponding function core to execute each subtask of the current task, which can support parallel or mixed operations of multiple asynchronous tasks. At the same time, by dividing the current task into subtasks, the function cores with similar tasks can be executed at the same time, so that Through the two-level trigger mechanism, the independent tasks can be divided, the execution speed can be accelerated, the running time can be reduced, and the performance of the chip can be improved. thereby reducing power consumption. The task may be a network or application task, such as a task of performing neural network operations (for example, a VGG network or a ResNet50 network), or a task of running application software, and the like.

本公开实施例的控制装置可以用于终端或服务器中,终端又称之为用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等,是一种向用户提供语音和/或数据连通性的设备,例如,具有无线连接功能的手持式设备、车载设备等。目前,一些终端的举例为:手机(mobile phone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internetdevice,MID)、可穿戴设备,虚拟现实(virtual reality,VR)设备、增强现实(augmentedreality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(selfdriving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、车联网中的无线终端等。The control apparatus in the embodiment of the present disclosure may be used in a terminal or a server. The terminal is also called user equipment (UE), mobile station (MS), mobile terminal (MT), etc., and is a A device that provides voice and/or data connectivity to a user, eg, a handheld device with wireless connectivity, an in-vehicle device, etc. At present, some examples of terminals are: mobile phone (mobile phone), tablet computer, notebook computer, PDA, mobile internet device (MID), wearable device, virtual reality (virtual reality, VR) device, augmented reality ( augmentedreality (AR) equipment, wireless terminals in industrial control, wireless terminals in self-driving, wireless terminals in remote medical surgery, wireless terminals in smart grid , wireless terminal in transportation safety, wireless terminal in smart city, wireless terminal in smart home, wireless terminal in car networking, etc.

本公开实施例的各个模块可以通过专用硬件电路实现,也可以通过通用硬件电路实现,示例性的,所述控制模块可以包括具有执行指令功能的控制器,所述控制模块可以按任何适当的方式实现,例如,可以采用微处理器、中央处理器(CPU)、存储器控制器中的控制逻辑部分等实现,包括但不限于以下型号的芯片:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320。在所述处理器101内部,可以通过逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器等硬件电路执行所述可执行指令。Each module of the embodiments of the present disclosure may be implemented by a dedicated hardware circuit or a general-purpose hardware circuit. Exemplarily, the control module may include a controller with a function of executing instructions, and the control module may be implemented in any appropriate manner. The implementation, for example, can be implemented by a microprocessor, a central processing unit (CPU), a control logic part in a memory controller, etc., including but not limited to the following types of chips: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicon Labs C8051F320. Inside the processor 101, the executable instructions may be executed by hardware circuits such as logic gates, switches, application specific integrated circuits (ASICs), programmable logic controllers and embedded microcontrollers.

请参阅图2,图2示出了根据本公开一实施例的处理器功能核的分组示意图。Please refer to FIG. 2 , which shows a schematic diagram of grouping of processor functional cores according to an embodiment of the present disclosure.

在一种可能的实施方式中,本公开实施例的装置可以应用的处理器可以为众核神经形态芯片,如图2所示,处理器可以包括多个功能核,可以根据任务的不同类型对处理器的功能核进行分组。In a possible implementation, the processor to which the apparatus of the embodiment of the present disclosure can be applied may be a many-core neuromorphic chip. As shown in FIG. 2 , the processor may include multiple functional cores, which may The functional cores of the processor are grouped.

在一个示例中,如图2所示,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的关系同理所述,如图2所示,一个Phase_grp可以被包含在一个或多个step_grp中,一个功能核可以被包含在一个或多个Phase_grp中(如C13被包含在Phase_grp1中,同时被包含在Phase_grp3中),在一个示例中,如果是完全独立的两个网络,它们的功能核集合没有重合的功能核(如step_grp2和step_grp3),如果两个网络有数据交互,那么它们的功能核集合可以有重合的功能核,可以用来做数据交互,也可以有其他作用(如C13被包含在Phase_grp1中,同时被包含在Phase_grp3中)。In an example, as shown in FIG. 2 , step_grp (beat timing group) and Phase_grp (phase timing group) may respectively represent corresponding functional core sets, and step_grp0 , step_grp1 , and step_grp2 represent functional core sets corresponding to each first trigger signal , Phase_grp0, Phase_grp1, Phase_grp2, Phase_grp3, Phase_grp4, Phase_grp5 represent functional core sets corresponding to each second trigger signal, and C00 to C44 represent different functional cores. For example, Phase_grp0 corresponds to the functional core set including functional cores C00, C01, C10, and C11, Phase_grp1, Phase_grp2, Phase_grp3, Phase_grp4, Phase_grp5 are related to the functional cores in the same way, and step_grp0 corresponds to Phase_grp0, Phase_grp1, and Phase_grp2. The relationship between the three functional core sets, step_grp1, step_grp2 and Phase_grp3, Phase_grp4, Phase_grp5 is the same, as shown in Figure 2, a Phase_grp can be included in one or more step_grp, a functional core can be included in one or more In multiple Phase_grp (such as C13 is included in Phase_grp1, and is included in Phase_grp3 at the same time), in an example, if it is two completely independent networks, their functional core sets do not have overlapping functional cores (such as step_grp2 and step_grp3) ), if the two networks have data interaction, then their functional core sets can have overlapping functional cores, which can be used for data interaction or have other functions (for example, C13 is included in Phase_grp1, and is also included in Phase_grp3. ).

在一个示例中,同一step_grp可以用于执行同一网络任务,同一step_grp下的每个Phase_grp可以用于执行同一网络任务下相同或相似的任务,同一Phase_grp下的功能核可以用于执行原语操作,在一种可能的实现方式中,在结束某一网络任务或应用任务后,可以对功能核集合进行重新划分。In one example, the same step_grp can be used to perform the same network task, each Phase_grp under the same step_grp can be used to perform the same or similar tasks under the same network task, the functional cores under the same Phase_grp can be used to perform primitive operations, In a possible implementation manner, after finishing a certain network task or application task, the functional core set may be re-divided.

在一种可能的实现方式中,该控制装置可应用于包括多个功能核(或称为处理器核)的片上系统中,每个第一触发信号对应于片上系统中一部分功能核,即功能核集合,该第一触发信号可以通过生成第二触发信号来触发这些功能核进行工作,执行各子任务,每个第二触发信号可以对应于该一部分功能核中的一个或多个。可以根据需要人为或自动设置第一触发信号、第二触发信号与功能核之间的对应关系。上述对应关系可以在执行完一个完整的任务(例如完成一次神经网络的运算)之后释放,以便后续重新设置。In a possible implementation manner, the control device can be applied to a system-on-chip including a plurality of functional cores (or called processor cores), and each first trigger signal corresponds to a part of the functional cores in the system-on-chip, that is, a function A set of cores, the first trigger signal can trigger these functional cores to work by generating a second trigger signal, and each subtask can be executed, and each second trigger signal can correspond to one or more of the part of the functional cores. The correspondence between the first trigger signal, the second trigger signal and the functional core can be set manually or automatically as required. The above-mentioned corresponding relationship can be released after a complete task (for example, a neural network operation is completed), so as to be reset later.

在一种可能的实现方式中,可以在开始一个完整的任务前对第一触发信号、第二触发信号与功能核之间的对应关系进行重新设置,具体地,如果存在所需要的足够数量的空闲的功能核,就可以完成设置并开始执行一个完整的任务,如果不存在空闲的功能核,可以等待其他任务结束执行后释放功能核,在空闲功能核的数量满足需要后,完成设置并开始执行一个完整的任务。由于同一个功能核可以分别对应于不同的第二触发信号或第一触发信号,可以在完成设置后对可以复用的功能核设置复用信号,使得该功能核在其他任务设置功能核时,可以作为空闲的功能核参与运算,使得功能核得到充分利用,提高系统的性能和利用率。In a possible implementation manner, the corresponding relationship between the first trigger signal, the second trigger signal and the functional core may be reset before starting a complete task. Specifically, if there are a sufficient number of required If there are idle function cores, you can complete the settings and start executing a complete task. If there are no idle function cores, you can wait for other tasks to finish executing and release the function cores. After the number of idle function cores meets the needs, complete the settings and start. perform a complete task. Since the same function core can correspond to different second trigger signals or first trigger signals, the multiplexing signal can be set for the multiplexable function core after the setting is completed, so that when the function core is set to the function core in other tasks, It can be used as an idle functional core to participate in the operation, so that the functional core can be fully utilized, and the performance and utilization rate of the system can be improved.

在一种可能的实现方式中,当前任务的执行周期之内,可包含一个或多个子任务的执行周期,即在两个第一触发信号之间,可以出现多个周期的第二触发信号。以神经网络运算任务为例,对于运算量较小的神经网络,第一触发信号可以在一次执行周期内完成整个神经网络的一次运算(当前任务), 其中,第二触发信号在每个周期内可完成神经网络运算的一个环节,例如一个网络层的运算,而每个第二触发信号对应的功能核可执行各环节中的相似运算(子任务),例如加法或乘法,各功能核可以用于执行相应的原语操作。例如,仍以图2为例,Phase_grp0对应的四个功能核C00、C01、C10、C11可分别执行加法,Phase_grp1对应的6个功能核C02、C03、C12、C13、C22、C23可分别执行乘法,等等,本公开对此不作限制。对于运算量较大的神经网络,第一触发信号可以在一次执行周期内完成整个神经网络的一次运算中的一个环节,例如一个网络层的运算(当前任务),也就是说,当前任务也可以是更上一级任务(整个神经网络运算任务)的子任务,在这种情况下,子任务之间功能核的设置可以沿用,子任务和子任务的执行周期之间可以不需要释放功能核并重新划分。第二触发信号在每个周期内可完成一个环节中的一部分,例如一个网络层的运算中的一次卷积运算,而每个第二触发信号对应的功能核可执行各环节中的相似运算(子任务),在一种可能的实现方式中,在完成神经网络运算任务的一个环节后,可以沿用第一触发信号和第二触发信号与功能核的对应关系,在完成整个神经网络任务后,释放功能核。In a possible implementation manner, the execution cycle of the current task may include execution cycles of one or more subtasks, that is, between two first trigger signals, multiple cycles of second trigger signals may appear. Taking the neural network operation task as an example, for a neural network with a small amount of operation, the first trigger signal can complete one operation (current task) of the entire neural network in one execution cycle, wherein the second trigger signal is in each cycle. It can complete a link of neural network operation, such as the operation of a network layer, and the function core corresponding to each second trigger signal can perform similar operations (subtasks) in each link, such as addition or multiplication. to perform the corresponding primitive operation. For example, still taking Figure 2 as an example, the four functional cores C00, C01, C10, and C11 corresponding to Phase_grp0 can perform addition respectively, and the six functional cores C02, C03, C12, C13, C22, and C23 corresponding to Phase_grp1 can perform multiplication respectively. , etc., which are not limited in the present disclosure. For a neural network with a large amount of computation, the first trigger signal can complete a link in one operation of the entire neural network in one execution cycle, such as the operation of a network layer (current task), that is, the current task can also It is a subtask of a higher-level task (the entire neural network operation task). In this case, the settings of the functional core between the subtasks can be used, and the functional core does not need to be released between the subtask and the execution cycle of the subtask. redistrict. The second trigger signal can complete a part of a link in each cycle, such as a convolution operation in a network layer operation, and the function core corresponding to each second trigger signal can perform similar operations in each link ( subtask), in a possible implementation manner, after completing a link of the neural network operation task, the corresponding relationship between the first trigger signal and the second trigger signal and the functional core can be used, and after completing the entire neural network task, Release the functional core.

在一种可能的实施方式中,第一触发模块可以是根据外部的输入信号产生第一触发信号,也可以自行产生第一触发信号。例如,所述装置还可以包括外部触发模块90(如图5所示),对于初始的第一触发信号,当需要执行新的任务时,外部触发模块90可以产生并输入启动信号,以使得第一触发模块产生第一触发信号,或者外部触发模块90可以直接产生第一触发信号;在执行任务过程中,第一触发模块可以在判断任务周期没有结束时,产生新的第一触发信号。下面将会详细进行介绍。In a possible implementation manner, the first trigger module may generate the first trigger signal according to an external input signal, or may generate the first trigger signal by itself. For example, the apparatus may further include an external trigger module 90 (as shown in FIG. 5 ). For the initial first trigger signal, when a new task needs to be performed, the external trigger module 90 may generate and input a start signal, so that the first trigger signal needs to be executed. A trigger module generates the first trigger signal, or the external trigger module 90 can directly generate the first trigger signal; during the execution of the task, the first trigger module can generate a new first trigger signal when judging that the task period is not over. It will be introduced in detail below.

请参阅图3,图3示出了根据本公开一实施例的控制装置的触发时序示意图。Please refer to FIG. 3 , which shows a schematic diagram of a trigger sequence of a control apparatus according to an embodiment of the present disclosure.

其中,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的节拍结束信号,节拍结束信号在step group0内所有相位时序组结束执行相应的全部子任务时则置1,否则置0;s_grp1_finish表示step group1的对应的功能核集合全部结束执行的信号,可以称为step group1的节拍结束信号;step group1内所有相位时序组结束执行相应的全部子任务时则置1,否则置0。Among them, clk represents the reference clock, and if clk is set to 1, it represents the number of reference clocks; step group0 and step group1 represent the functional core set (or called beat timing group) corresponding to each first trigger signal, and different first trigger signals can be used with In triggering the respective corresponding functional core sets to perform different tasks, for example, a first trigger signal is used to perform a computing task of a neural network, and another first trigger signal is used to perform a computing task of another neural network, or an application software operation tasks, etc. The function core set corresponding to the first trigger signal can be called a beat timing group; step_ck0 represents the first trigger signal corresponding to step group0, which can be called the beat trigger signal corresponding to step group0; step_ck0 is set to 1 to indicate that a beat trigger signal is received; step_ck1 represents the beat trigger signal corresponding to step group1, step_ck1 is set to 1 to indicate that a beat trigger signal is received; p_grp0_ck and p_grp1_ck respectively represent the two second trigger signals corresponding to step group0, the second trigger signal can be called a phase trigger signal, the second trigger signal The set of function cores corresponding to the trigger signal can be called a phase timing group. When the phase trigger signal is set to 1, it means that a phase trigger signal is received; p_grp2_ck, p_grp3_ck and p_grp4_ck respectively represent the three phase trigger signals corresponding to step group1, and the phase trigger signal set to 1 means that A phase trigger signal is received; s_grp0_finish indicates the signal that all the corresponding functional core sets of step group0 have finished executing, that is, the signal that all subtasks of the current task (that is, the task corresponding to step group0) have all finished executing, which can be called step The beat end signal of group0, the beat end signal is set to 1 when all the phase timing groups in step group0 finish executing all corresponding subtasks, otherwise it is set to 0; s_grp1_finish represents the signal that all the corresponding function core sets of step group1 have finished executing, which can be It is called the beat end signal of step group1; it is set to 1 when all the phase timing groups in step group1 finish executing all corresponding subtasks, otherwise it is set to 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同理。As shown in Figure 3, in a possible implementation, for step group0, when step_ck0 is received, p_grp0_ck and p_grp1_ck are triggered, and all phase timing groups in step group0 group are triggered at the same time, starting a new phase timing group working cycle ( It can be called execution cycle), wherein the working cycles of the phase timing groups of different phase timing groups can be the same or different. After receiving the beat trigger signal, the beat timing clock (which can be called the first timing clock) can be started. When the number of clocks of the clock is equal to the number of clocks at the end of the beat, you can check whether all the phase timing groups in the beat timing group have finished working, and you can also check whether the signal with s_grp0_finish set to 1 is received. If so (s_grp0_finish is set to 1 at this time), trigger the A beat sequence group work cycle (step_ck0 is automatically set to 1 at this time) or end the work and release all functional cores in the beat sequence group, otherwise wait for all the work to end and start the next beat sequence group work cycle or end the work, if it reaches the mandatory If the work is not all finished when the clock is finished, a forced end signal will be generated to force the execution of all phase timing groups under the beat timing group to end, and the related first timing clock and each second timing clock will be reset to zero. The same is true for step_ck1.

需要说明的是,同一节拍时序组下的相位时序组的工作周期时钟数可以相同,也可以不同;属于同一节拍时序组的相位时序组在接收到相位触发信号、触发其对应的第一个子任务时是同步的,这些相位时序组在第一个子任务结束执行后、后续子任务的自动触发可以是异步的,属于不同节拍时序组的相位时序组可以异步被触发。不同的节拍时序组也可以是异步的。It should be noted that the number of working cycle clocks of the phase timing groups under the same beat timing group can be the same or different; the phase timing groups belonging to the same beat timing group receive the phase trigger signal and trigger their corresponding first sub The tasks are synchronous. After the execution of the first subtask, the automatic triggering of subsequent subtasks of these phase sequence groups can be asynchronous, and the phase sequence groups belonging to different beat sequence groups can be triggered asynchronously. Different beat timing groups can also be asynchronous.

请参阅图4,图4示出了根据本公开一实施例的控制装置的触发时序示意图。Please refer to FIG. 4 , which shows a schematic diagram of a triggering sequence of a control apparatus according to an embodiment of the present disclosure.

在一个示例中,如图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表示phase group0的功能核全部结束执行的信号,可以称为phase group0相位结束信号;phase group0内所有功能核结束执行操作则置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分别表示对应功能核处于对应的执行操作状态。In an example, as shown in Figure 4, clk represents the reference clock, and if clk is set to 1, it represents the number of 1 reference clock; s_ck represents the first trigger signal, which can be called a beat trigger signal, and phase group0 and phase group1 represent different second trigger signals. The function core set corresponding to the trigger signal (or called the phase timing group), and the function core set corresponding to the second trigger signal can be called the phase timing group; s_ck is set to 1 to indicate that a beat trigger signal is received; p_grp0_ck indicates that phase group0 corresponds to the first Two trigger signals, the second trigger signal can be called a phase trigger signal; p_grp0_ck is set to 1 to indicate that a corresponding phase trigger signal is received; p_grp1_ck indicates that the phase trigger signal corresponding to phase group1; p_grp1_ck is set to 1 to indicate that a corresponding phase trigger signal has been received ;core0, core1 and core2 respectively represent the three functional cores under phase group0, core3 and core4 respectively represent the two functional cores under phase group1; p_grp0_finish represents the signal that all the functional cores of phase group0 have finished executing, which can be called phase group0 phase End signal; set to 1 when all functional cores in phase group0 have finished executing operations, otherwise set to 0, p_grp1_finish indicates the signal that all functional cores of phase group1 have finished executing, which can be called the phase end signal of phase group1, and all functional cores in phase group1 have ended Set to 1 if the operation is performed, otherwise set to 0. The beat end signal can be obtained from the phase end signal of the phase sequence group corresponding to each phase sequence group under the beat sequence group, that is to say, s_grp0_finish in FIG. p0, p1, p2 and p3 respectively indicate that the corresponding functional core is in the corresponding execution operation state.

在一种可能的实现方式中,如图4所示,对于phase group0,当接收到s_ck时同步触发p_grp0_ck,同时触发phase group0组内所有的功能核,控制core0、core1和core2开始执行操作,其中,不同功能核执行操作的时间可以相同,也可以不同,功能核开始工作后可以启动相位计时时钟(可以称为第二计时时钟),当相位计时时钟的时钟数等于相位结束时钟数时,可以检查相位时序组内的功能核是否全部结束当前子任务,如果是,则触发下一个相位时序组工作周期(可以称为执行周期),否则等待全部结束执行当前子任务的操作后开始下一个相位时序组工作周期。如果相位时序组内的功能核对当前任务的所有子任务结束执行,则p_grp0_finish置1,当相位时序组内的功能核未全部结束执行当前任务的所有子任务的操作时,将继续执行直到全部执行完成后开始下一任务,或者接收到节拍时序组的强制结束信号、强制结束当前所有子任务。对于phase group1同理。In a possible implementation, as shown in Figure 4, for phase group0, when s_ck is received, p_grp0_ck is triggered synchronously, and all functional cores in the phase group0 group are triggered at the same time to control core0, core1 and core2 to start executing operations, where , the time for different function cores to perform operations can be the same or different. After the function core starts to work, the phase timing clock (which can be called the second timing clock) can be started. When the number of clocks of the phase timing clock is equal to the number of phase end clocks, it can be Check whether the function cores in the phase sequence group all end the current subtask, if so, trigger the next phase sequence group work cycle (can be called the execution cycle), otherwise wait for all the operations to complete the current subtask to start the next phase Timing group duty cycle. If the function check in the phase sequence group completes the execution of all subtasks of the current task, p_grp0_finish is set to 1. When the function core in the phase sequence group does not all finish executing all subtasks of the current task, it will continue to execute until all subtasks are executed. After completion, start the next task, or receive the forced end signal of the beat sequence group, force end all current subtasks. The same is true for phase group1.

需要说明的是,同一相位时序组下的各功能核执行操作的时钟数可以相同,也可以不同;属于同一相位时序组的功能核是同步被触发的,属于不同相位时序组下的各功能核可以异步被触发。It should be noted that the number of clocks performed by each functional core in the same phase timing group can be the same or different; the functional cores belonging to the same phase timing group are triggered synchronously, and the functional cores belonging to different phase timing groups are Can be triggered asynchronously.

以上对控制装置的触发时序进行了示例性介绍,下面结合控制装置的可能实现进行示例性说明。The trigger sequence of the control device is exemplarily introduced above, and an exemplary description is given below in conjunction with the possible implementation of the control device.

请参阅图5,图5示出了根据本公开一实施例的控制装置的示意图。Please refer to FIG. 5 , which shows a schematic diagram of a control apparatus according to an embodiment of the present disclosure.

在一种可能的实现方式中,如图5所示,所述装置还可以包括第一计时模块50,电连接于所述第一触发模块10,所述第一计时模块50可以包括第一计时时钟,所述第一计时模块50用于在接收到所述第一触发信号时启动所述第一计时时钟,以对当前任务的执行周期计时;In a possible implementation manner, as shown in FIG. 5 , the apparatus may further include a first timing module 50 electrically connected to the first trigger module 10 , and the first timing module 50 may include a first timing module a clock, the first timing module 50 is configured to start the first timing clock when receiving the first trigger signal to time the execution cycle of the current task;

在一种可能的实施方式中,所述第一触发模块10,还可以用于在所述第一计时时钟达到第一阈值,且所述当前任务的所有子任务全部结束执行且所述当前任务不是最后一个任务的情况下,确定满足触发下一任务的执行周期的条件,并生成所述下一任务的执行周期对应的第一触发信号。In a possible implementation manner, the first triggering module 10 may also be configured to be used when the first timing clock reaches a first threshold, and all subtasks of the current task all finish executing and the current task If it is not the last task, it is determined that the condition for triggering the execution period of the next task is satisfied, and a first trigger signal corresponding to the execution period of the next task is generated.

本公开实施例中,当前任务的所有子任务全部结束执行,即表示当前任务执行完毕,通过判断当前任务的所有子任务是否全部结束执行,并在全部结束执行时触发下一个任务的执行周期,可以尽可能的减少功能核的闲置,最大程度地利用各功能核,提高执行的效率。In the embodiment of the present disclosure, the execution of all subtasks of the current task is completed, which means that the execution of the current task is completed. The idleness of functional cores can be reduced as much as possible, each functional core can be utilized to the greatest extent, and the execution efficiency can be improved.

在一个示例中,第一阈值可以提前设定,不同的第一触发信号可以对应不同的第一阈值。例如,外部可以直接输入第一阈值(时钟数目),也可以输入与第一阈值相关的参数,控制模块可以进行相关运算以根据得到的参数确定第一阈值。In an example, the first threshold may be set in advance, and different first trigger signals may correspond to different first thresholds. For example, the first threshold (number of clocks) can be directly input from the outside, or parameters related to the first threshold can be input, and the control module can perform a correlation operation to determine the first threshold according to the obtained parameters.

在一种可能的实施方式中,如图5所示,所述装置可以包括寄存器模块70。In a possible implementation, as shown in FIG. 5 , the apparatus may include a register module 70 .

在一个示例中,所述寄存器模块70可以包括第一阈值寄存器以接收外部输入的第一阈值。In one example, the register module 70 may include a first threshold register to receive an externally inputted first threshold.

在一个示例中,第一阈值可以是根据不同任务而改变的变化值,在每次触发当前任务的执行周期时接收,也可以是预设的固定值,只需要接收一次即可,后续可以重复使用。In one example, the first threshold may be a change value that changes according to different tasks, and is received each time the execution cycle of the current task is triggered, or it may be a preset fixed value that only needs to be received once, and can be repeated later use.

在一个示例中,在满足触发下一任务的执行周期的条件的情况下,可以触发下一任务的执行周期,即开始执行下一任务,下一任务的执行方式可以与当前任务相同。In one example, when the conditions for triggering the execution cycle of the next task are met, the execution cycle of the next task can be triggered, that is, the execution of the next task can be started, and the execution mode of the next task can be the same as that of the current task.

在一个示例中,第一计时时钟可以在每过一个基准时钟周期时计时一次,并判断是否达到第一阈值。In one example, the first timing clock may be clocked every time a reference clock cycle passes, and it is determined whether the first threshold value is reached.

通过设定第一阈值,本公开实施例可以实现对不同网络应用的执行周期的事前控制与部署,从而实现不同任务的异步独立运行,加快运行速度。By setting the first threshold, the embodiments of the present disclosure can realize the pre-control and deployment of the execution cycles of different network applications, thereby realizing the asynchronous and independent running of different tasks, and speeding up the running speed.

在一个示例中,每当新的第一触发信号产生时,第一计时时钟可从0开始重新计时。In one example, the first timing clock may be restarted from 0 each time a new first trigger signal is generated.

通过第一计时时钟的计时时长与第一阈值的比较,判断是否满足触发下一任务的执行周期的条件,可以实现对当前任务执行周期的控制,从而能够更好地调度不同的任务,减少运行时间,提高执行效率。By comparing the timing duration of the first timing clock with the first threshold, it is judged whether the conditions for triggering the execution cycle of the next task are met, so that the execution cycle of the current task can be controlled, so that different tasks can be better scheduled and the running time can be reduced. time and improve execution efficiency.

在一种可能的实现方式中,所述第一触发模块10还可以用于,在所述第一计时时钟到达第三阈值的情况下,生成强制结束信号,所述强制结束信号用于强制结束所述当前任务中当前各子任务的执行,从而强制结束当前任务的执行;In a possible implementation manner, the first trigger module 10 may also be configured to generate a forced end signal when the first timing clock reaches a third threshold, where the forced end signal is used for forcibly ending The execution of each current subtask in the current task, thereby forcibly ending the execution of the current task;

在一种可能的实现方式中,所述控制模块40还可以用于,利用所述多路选择器30将所述强制结束信号传输至当前任务的各个功能核,以使得各个功能核结束运行。In a possible implementation manner, the control module 40 may also be configured to transmit the forced termination signal to each functional core of the current task by using the multiplexer 30, so that each functional core terminates the operation.

在一个示例中,所述第三阈值可以大于第一阈值,可以是根据不同任务而改变的变化值,在每次触发当前任务的执行周期时接收,也可以是预设的固定值,只需要接收一次即可,后续可以重复使用。In one example, the third threshold may be greater than the first threshold, may be a change value that changes according to different tasks, and is received each time the execution cycle of the current task is triggered, or may be a preset fixed value, which only needs to be You can receive it once, and you can reuse it later.

在一个示例中,所述寄存器模块70可以包括第三阈值寄存器,以存储第三阈值,可以对第三阈值寄存器进行读取或写入,以获得第三阈值或设定第三阈值。In one example, the register module 70 may include a third threshold register to store the third threshold, and the third threshold register may be read or written to obtain or set the third threshold.

在一个示例中,在当前任务达到第三阈值而仍未完成执行的情况下,当前任务可能出现程序错误而导致卡死,例如,对于某个神经网络任务中的某个环节,预估的执行该环节任务所需要的时钟数为500个时钟数,这样,在第一计时时钟到达1000个时钟数,该环节任务仍未结束执行的情况下,很可能是出现了程序错误,进入了死循环无法结束(这是一种病态的状态),需要强制结束,因此在这种情况下可以将第三阈值定为1000个时钟数,在到达第三阈值时仍未结束任务,就强制结束。如果当前任务是上一级任务的某一个子任务,可以强制结束整个上一级任务,在强制结束整个任务的执行后, 可以释放第一触发信号对应的功能核集合,避免占用不必要的功能核资源。In one example, when the current task reaches the third threshold and has not yet completed execution, a program error may occur in the current task and cause it to be stuck. For example, for a certain link in a neural network task, the estimated execution The number of clocks required by this link task is 500 clocks. In this way, when the first timing clock reaches 1000 clocks, and the link task has not finished executing, it is likely that a program error has occurred and an infinite loop has entered. Unable to end (this is a morbid state), it needs to be forced to end, so in this case, the third threshold can be set as 1000 clocks, and when the third threshold is reached, the task is not finished, and the task is forced to end. If the current task is a subtask of the upper-level task, the entire upper-level task can be forcibly terminated. After the execution of the entire task is forcibly terminated, the function core set corresponding to the first trigger signal can be released to avoid occupying unnecessary functions. nuclear resources.

通过对当前任务实现强制结束的机制,控制当前任务执行的最大时钟数,可以避免因为程序出错等原因而导致的任务无法结束的死循环,避免了浪费大量不必要功能核资源的可能性,进一步降低了功耗,提高的运行的效率。By implementing the mechanism of forcibly ending the current task and controlling the maximum number of clocks for the execution of the current task, it is possible to avoid the infinite loop that the task cannot end due to program errors and other reasons, and avoid the possibility of wasting a large number of unnecessary functional core resources. Reduced power consumption and improved operational efficiency.

在一种可能的实现方式中,如图5所示,所述装置还可以包括第二计时模块60,电连接于所述第二触发模块20,所述第二计时模块60可以包括一个或多个第二计时时钟,所述第二计时模块用于在接收到所述第二触发信号时启动所述一个或多个第二计时时钟,以对当前任务的各个子任务的执行周期计时,In a possible implementation manner, as shown in FIG. 5 , the apparatus may further include a second timing module 60 electrically connected to the second trigger module 20 , and the second timing module 60 may include one or more a second timing clock, the second timing module is configured to start the one or more second timing clocks when receiving the second trigger signal, so as to time the execution period of each subtask of the current task,

在一种可能的实现方式中,所述第二触发模块20,还可以用于在所述第二计时时钟达到第二阈值,且所述各第二触发信号对应的所述功能核全部结束当前各子任务的执行的情况下,确定满足触发所述当前任务中当前各子任务的下一子任务的执行周期的条件,并生成各下一子任务对应的所述第二触发信号。In a possible implementation manner, the second trigger module 20 may also be configured to end the current state when the second timing clock reaches a second threshold and all the functional cores corresponding to the second trigger signals When each subtask is executed, it is determined that the conditions for triggering the execution cycle of the next subtask of each current subtask in the current task are satisfied, and the second trigger signal corresponding to each next subtask is generated.

本公开实施例通过在当前子任务对应的功能核集合未全部结束执行的情况下,等待功能核集合全部结束执行后,再触发下一子任务的执行周期,可以防止当前子任务未完成就开始下一个子任务、导致当前任务卡在某一子任务无法继续的可能,从而防止了报错的情况,使得各任务的部署和调度能顺利执行,提高了相应的性能。In the embodiment of the present disclosure, when the function core set corresponding to the current subtask has not all finished executing, the execution cycle of the next subtask can be triggered after waiting for all the function core set to finish execution, so as to prevent the current subtask from starting the next subtask. A subtask may cause the current task to be stuck in a subtask and cannot continue, thereby preventing the situation of error reporting, enabling the deployment and scheduling of each task to be executed smoothly, and improving the corresponding performance.

在一个示例中,第二阈值可以预先设定,不同的第二触发信号对应的功能核集合可以对应相应的第二结束时钟数。In an example, the second threshold may be preset, and functional core sets corresponding to different second trigger signals may correspond to corresponding second end clock numbers.

在一个示例中,所述寄存器模块70可以包括第二阈值寄存器以接收外部输入的第二阈值。In one example, the register module 70 may include a second threshold register to receive an externally input second threshold.

在一个示例中,第二结束时钟数可以是根据不同子任务而改变的变化值,在每次触发当前任务下子任务的执行周期时接收,也可以是预设的固定值,只需要接收一次即可,后续可以重复使用。In one example, the second end clock number may be a change value that changes according to different subtasks, and is received each time the execution cycle of the subtask under the current task is triggered, or it may be a preset fixed value, which only needs to be received once. Yes, it can be reused later.

通过根据预设的第二结束时钟数确定第二阈值,可以实现对不同子任务的执行周期的事前控制与部署,从而实现不同子任务的异步独立运行,加快运行速度。By determining the second threshold according to the preset number of second end clocks, pre-control and deployment of the execution cycles of different subtasks can be realized, thereby realizing asynchronous independent operation of different subtasks, and speeding up the operation speed.

在一个示例中,在满足触发当前各子任务的下一子任务的执行周期的条件的情况下,触发当前各子任务各自的下一任务的执行周期,即开始执行各下一子任务,下一子任务的执行方式可与当前子任务相同,依次类推,直至当前任务的所有子任务执行完毕或者接收到强制结束信号结束子任务的执行。In one example, when the conditions for triggering the execution cycle of the next subtask of each current subtask are met, the execution cycle of the next task of each current subtask is triggered, that is, the execution of each next subtask is started, and the next subtask is executed. The execution method of a subtask can be the same as that of the current subtask, and so on, until all subtasks of the current task are executed or a forced end signal is received to end the execution of the subtask.

在一个示例中,第二计时模块60控制第二计时时钟在接收到第二触发信号时开始计时,第二计时时钟可以在每过一个时钟数时,判断是否达到第二阈值;每个第二触发信号可以对应一个第二计时时钟,不同的第二计时时钟可以对应着不同的第二阈值,例如,一个第二触发信号对应的功能核集合接 收到第二触发信号后,可以启动与该功能核集合对应的第二计时时钟,并与相应的第二阈值比较;各功能核集合的执行周期可以相同,也可以不同。这里的接收的第二触发信号,包括根据第一触发信号生成的第二触发信号,也包括在满足下文所述条件情况下自动生成的第二触发信号,每当新的第二触发信号产生时,相应的第二计时时钟可从0开始重新计时。In one example, the second timing module 60 controls the second timing clock to start timing when the second trigger signal is received, and the second timing clock can determine whether the second threshold is reached every time the number of clocks passes; The trigger signal may correspond to a second timing clock, and different second timing clocks may correspond to different second thresholds. For example, after the function core set corresponding to a second trigger signal receives the second trigger signal, it can start the function corresponding to the second trigger signal. The second timing clock corresponding to the core set is compared with the corresponding second threshold; the execution cycles of each functional core set may be the same or different. The received second trigger signal here includes a second trigger signal generated according to the first trigger signal, and also includes a second trigger signal that is automatically generated when the conditions described below are met. Whenever a new second trigger signal is generated , the corresponding second timing clock can re-time from 0.

通过第二计时时钟与第二阈值的比较,判断是否满足触发当前各子任务的下一子任务的执行周期的条件,可以实现对各子任务执行周期的控制,从而能够更好地调度各子任务,同时由于不同的子任务可以有不同的执行周期,可以实现子任务的异步执行,进一步加快各子任务的执行速度,减少当前任务的运行时间。By comparing the second timing clock with the second threshold, it is judged whether the conditions for triggering the execution cycle of the next subtask of each current subtask are met, so that the execution cycle of each subtask can be controlled, so that each subtask can be better scheduled. At the same time, since different subtasks can have different execution cycles, asynchronous execution of subtasks can be realized, which further speeds up the execution speed of each subtask and reduces the running time of the current task.

在一种可能的实现方式中,所述控制模块40还可以用于,接收与第二触发信号对应的各个功能核输出的运算结束信号,并在各个功能核均输出运算结束信号时,产生子任务结束信号,以确定与第二触发信号对应的功能核全部结束当前子任务的执行;In a possible implementation manner, the control module 40 may also be configured to receive the operation end signal output by each function core corresponding to the second trigger signal, and generate a sub-function when each function core outputs the operation end signal. a task end signal to determine that all functional cores corresponding to the second trigger signal end the execution of the current subtask;

在一种可能的实现方式中,所述装置还包括:第一存储模块(未示出),电连接于所述控制模块,用于存储所述子任务结束信号。In a possible implementation manner, the apparatus further includes: a first storage module (not shown), electrically connected to the control module, for storing the subtask end signal.

在一个示例中,处理器的各个功能核在完成执行自身的运算(例如乘法、加法等原语运算)产生运算结束信号,并输出到控制模块。In one example, each functional core of the processor generates an operation end signal after completing its own operation (for example, a primitive operation such as multiplication and addition), and outputs the signal to the control module.

请一并参阅图6a,图6a、图6b示出了根据本公开一实施方式的控制装置的示意图。Please refer to FIG. 6a together. FIGS. 6a and 6b are schematic diagrams of a control device according to an embodiment of the present disclosure.

如图6a及图6b所示,处理器例如可以包括m个功能核(core),在一个示例中,控制模块还用于为处理器的各个功能核编号,以唯一标识各个功能核,例如,处理器的功能核可以被设置标识,分别为core[0]、core[0]…core[m-2]、core[m-1]。As shown in FIG. 6a and FIG. 6b, the processor may include m functional cores (cores), for example, in an example, the control module is further configured to number each functional core of the processor to uniquely identify each functional core, for example, The functional core of the processor can be set as core[0], core[0]...core[m-2], core[m-1].

在一个示例中,各个功能核在执行原语运算时,运算结束信号(例如core_finish[0],与功能核core[0]对应)可以为低电平(0),当功能核core[0]完成原语运算的执行时,运算结束信号core_finish[0]可以为高电平(1),在这种情况下,控制模块通过检测运算结束信号,可以确定功能核的状态(空闲状态或运算状态),当与第二触发信号对应的功能核集合中的所有功能核的运算结束信号均为高电平时,控制模块产生子任务结束信号,以确定与第二触发信号对应的功能核全部结束当前子任务的执行。In one example, when each function core performs primitive operation, the operation end signal (for example, core_finish[0], corresponding to the function core core[0]) may be low level (0), when the function core core[0] When the execution of the primitive operation is completed, the operation end signal core_finish[0] can be high (1). In this case, the control module can determine the state of the function core (idle state or operation state by detecting the operation end signal). ), when the operation end signal of all function cores in the function core set corresponding to the second trigger signal is high level, the control module generates the subtask end signal to determine that the function cores corresponding to the second trigger signal all end the current execution of subtasks.

在一个示例中,控制模块可以将各个功能核中的运算结束信号进行相与运算以确定该第二触发信号对应的子任务结束信号。In one example, the control module may perform an AND operation on the operation end signals in each functional core to determine the subtask end signal corresponding to the second trigger signal.

在一个示例中,控制模块还可以用于为各个任务分配功能核,控制模块可以根据任务所需的运算需求为其分配空闲的功能核,例如,对应于第一触发信号的当前任务可以被分配多个功能核以得到节拍时序组,根据第一触发信号产生的一个或多个第二触发信号对应于当前任务的一个或多个子任务, 控制模块进一步根据子任务的运算需求将分配给当前任务的多个功能核进一步分配到各个子任务,以得到一个或多个相位时序组,在存在多个任务(网络或应用)时,控制模块可以分配并得到多个节拍时序组,多个相位时序组,进一步的,控制模块可以对各个节拍时序组、各个相位时序组进行编号,如图6a所示,假设某个节拍时序组包括n个相位时序组(phase group),并依次编号为phase_grp[0]~phase_grp[n-1],对应的,当控制模块确定子任务对应的相位时序组中所有功能核的运算结束信号均为高电平时,控制模块产生子任务结束信号phase_grp_finish[0](与相位时序组phase_grp[0]对应)~phase_grp_finish[n-1](与相位时序组phase_grp[n-1]对应)。In one example, the control module can also be used to allocate functional cores to each task, and the control module can allocate idle functional cores to the tasks according to the computing requirements required by the tasks, for example, the current task corresponding to the first trigger signal can be allocated A plurality of functional cores to obtain a beat sequence group, one or more second trigger signals generated according to the first trigger signal correspond to one or more sub-tasks of the current task, and the control module further assigns them to the current task according to the operation requirements of the sub-tasks The multiple functional cores are further allocated to each subtask to obtain one or more phase timing groups. When there are multiple tasks (network or application), the control module can assign and obtain multiple beat timing groups and multiple phase timing groups. Further, the control module can number each beat timing group and each phase timing group, as shown in Figure 6a, assuming that a beat timing group includes n phase timing groups (phase groups), which are sequentially numbered as phase_grp[ 0]~phase_grp[n-1], correspondingly, when the control module determines that the operation end signals of all functional cores in the phase sequence group corresponding to the subtask are high, the control module generates the subtask end signal phase_grp_finish[0]( Corresponding to the phase sequence group phase_grp[0]) to phase_grp_finish[n-1] (corresponding to the phase sequence group phase_grp[n-1]).

在一个示例中,如图6a所示,所述寄存器模块70还可以包括功能核寄存器(core_en,例如core_en[0,0]),所述功能核寄存器被配置为大小为m*n比特的二维寄存器,第一维表示功能核编号(例如core_en[0,0]中的第一维表示该功能核为功能核core[0],其属于相位时序组phase_grp[0]),第二维表示子任务包括的子任务编号,其中,n、m均为正整数,且n≤m。In one example, as shown in FIG. 6a , the register module 70 may further include a function core register (core_en, eg core_en[0,0]), the function core register is configured as a binary register with a size of m*n bits Dimension register, the first dimension indicates the function core number (for example, the first dimension in core_en[0,0] indicates that the function core is the function core core[0], which belongs to the phase timing group phase_grp[0]), the second dimension indicates Subtask numbers included in subtasks, where n and m are both positive integers, and n≤m.

在一个示例中,第一存储模块可以包括子任务结束信号寄存器(phase_grp_finish)以存储子任务结束信号,子任务结束信号寄存器可以被配置为n比特,对应于各个相位时序组(一个任务可以包括一个或多个子任务,对应于一个或多个相位时序组),当相位时序组中所有功能核均完成运算,该相位时序组对应的子任务结束信号可以为1,否则可以为0。In one example, the first storage module may include a subtask end signal register (phase_grp_finish) to store the subtask end signal, and the subtask end signal register may be configured as n bits corresponding to each phase timing group (one task may include a or multiple subtasks, corresponding to one or more phase sequence groups), when all functional cores in the phase sequence group complete the operation, the subtask end signal corresponding to the phase sequence group can be 1, otherwise it can be 0.

在一种可能的实现方式中,所述控制模块40还可以用于,在所述第一存储模块中存储有当前任务的所有子任务的子任务结束信号的情况下,产生任务结束信号,以确定与第一触发信号对应的当前任务的所有子任务全部结束执行。In a possible implementation manner, the control module 40 may also be configured to generate a task end signal when the subtask end signals of all subtasks of the current task are stored in the first storage module, so as to It is determined that all subtasks of the current task corresponding to the first trigger signal all finish execution.

在一种可能的实现方式中,所述装置还可以包括:第二存储模块(图5未示出),电连接于所述控制模块,用于存储所述任务结束信号。In a possible implementation manner, the apparatus may further include: a second storage module (not shown in FIG. 5 ), electrically connected to the control module, and configured to store the task end signal.

在一个示例中,如图6b所示,控制模块可以为各个节拍时序组编号(step_grp),例如假设存在s个任务,则控制模块可以建立s个节拍时序组(编号为step_grp[0]~step_grp[s-1])。In an example, as shown in FIG. 6b, the control module may number each beat sequence group (step_grp). For example, if there are s tasks, the control module may establish s beat sequence groups (numbered step_grp[0]~step_grp). [s-1]).

在一个示例中,所述寄存器模块70可以包括相位组寄存器(例如phase_group_en[0,0]),相位组寄存器被配置为大小为s*n比特的二维寄存器,第一维表示子任务编号(或称为相位时序组编号),第二维当前任务包括的当前任务编号(或称为节拍时序组编号),其中,s、n均为正整数。例如,相位组寄存器phase_group_en[0,0]的第一维表示相位时序组phase_group[0],第二维表示节拍时序组step_grp[0],即相位时序组phase_group[0]属于节拍时序组step_grp[0]。In one example, the register module 70 may include a phase group register (eg phase_group_en[0,0]), the phase group register is configured as a two-dimensional register of size s*n bits, the first dimension represents the subtask number ( Or referred to as the phase sequence group number), the current task number (or referred to as the beat sequence group number) included in the second-dimensional current task, where s and n are both positive integers. For example, the first dimension of the phase group register phase_group_en[0,0] represents the phase timing group phase_group[0], and the second dimension represents the beat timing group step_grp[0], that is, the phase timing group phase_group[0] belongs to the beat timing group step_grp[ 0].

在一个示例中,所述第二存储模块可以包括任务结束信号寄存器(step_grp_finish),用于存储各个节拍时序组的任务结束信号,任务结束信号寄存器可以被配置为包括s位,分别对应于s个节拍时序 组,例如任务结束信号寄存器step_grp_finish[1]用于存储节拍时序组step_grp[1]的任务结束信号。In one example, the second storage module may include a task end signal register (step_grp_finish) for storing task end signals of each tick timing group, and the task end signal register may be configured to include s bits, respectively corresponding to s The tick sequence group, for example, the task end signal register step_grp_finish[1] is used to store the task end signal of the tick sequence group step_grp[1].

在一个示例中,控制模块可以读取子任务结束信号寄存器phase_grp_finish中的子任务结束信号,并将各个子任务(相位时序组)的子任务结束信号执行相与运算,以得到当前任务(节拍时序组)的任务结束信号,例如,当一个节拍时序组中所有的相位时序组都结束了,即一个节拍时序组中所有的相位时序组对应的子任务结束信号均为1,则进行相与运算的结果为1,可以将该任务的任务结束信号置位1,否则该任务的任务结束信号为0。In one example, the control module can read the subtask end signal in the subtask end signal register phase_grp_finish, and perform a phase AND operation on the subtask end signals of each subtask (phase sequence group) to obtain the current task (beat sequence For example, when all phase timing groups in a beat timing group are finished, that is, the subtask end signals corresponding to all phase timing groups in a beat timing group are all 1, the phase AND operation is performed. If the result is 1, the task end signal of this task can be set to 1, otherwise the task end signal of this task is 0.

请一并参阅图6a及图6b,如图6a及图6b所示,各个功能核可以将运算结束信号发送到控制模块(或者控制模块从各个功能核获取运算结束信号),当相位时序组中各个功能核的运算结束信号均为1,执行相与运算后,控制模块根据得到子任务结束信号为1,该相位时序组的运算任务完成,若当前任务(节拍时序组)的各个子任务(相位时序组)均完成了运算,则各个子任务的子任务结束信号均为1,并存储在子任务结束信号寄存器中,控制模块可以获取子任务结束信号中的存储值,并执行相与运算,可以得到相与运算的结果为1,则可以确定当前任务完成,并将当前任务对应的任务结束寄存器置为1,表示当前任务完成运算。Please refer to FIG. 6a and FIG. 6b together. As shown in FIG. 6a and FIG. 6b, each function core can send the operation end signal to the control module (or the control module obtains the operation end signal from each function core). The operation end signal of each functional core is 1. After performing the phase AND operation, the control module obtains the subtask end signal as 1, and the operation task of the phase sequence group is completed. If each subtask of the current task (beat sequence group) ( Phase sequence group) have completed the operation, then the subtask end signal of each subtask is 1, and stored in the subtask end signal register, the control module can obtain the stored value in the subtask end signal, and perform the phase AND operation , it can be obtained that the result of the AND operation is 1, then it can be determined that the current task is completed, and the task end register corresponding to the current task is set to 1, indicating that the current task has completed the operation.

在一个示例中,所述寄存器模块70还可以包括第一选择寄存器(如图6b所示,S_sel[0:m-1][0:y-1]),第一选择寄存器被配置为大小为m*y比特的二维寄存器,第一维表示当前的功能核编号,第二维表示当前功能核所属的任务编号,其中,m、y均为正整数,且y=log 2s,控制模块可以对第一选择寄存器进行配置,以使得通过多路选择器将对应的第一触发信号s_ck(0:s-1)输出到相应的功能核。 In one example, the register module 70 may further include a first selection register (as shown in FIG. 6b, S_sel[0:m-1][0:y-1]), the first selection register is configured to have a size of A two-dimensional register of m*y bits, the first dimension represents the current function core number, the second dimension represents the task number to which the current function core belongs, where m and y are both positive integers, and y=log 2 s, the control module The first selection register may be configured such that the corresponding first trigger signal s_ck(0:s-1) is output to the corresponding functional core through the multiplexer.

在一个示例中,如图6b所示,若当前任务完成运算(任务结束信号寄存器step_grp_finish对应的值为1),并且所述当前任务不是最后一个任务的情况下,触发下一个节拍周期,生成所述下一任务的执行周期对应的第一触发信号,每个功能核根据第一选择寄存器S_sel的配置自由选择任意一个第一触发信号作为自身的第一触发信号,或者,控制模块根据第一选择寄存器S_sel的配置将任意一个第一触发信号s_ck(0:s-1)发送到任意一个功能核。In an example, as shown in Figure 6b, if the current task completes the operation (the value corresponding to the task end signal register step_grp_finish is 1), and the current task is not the last task, the next tick cycle is triggered to generate all The first trigger signal corresponding to the execution cycle of the next task, each functional core freely selects any one of the first trigger signals as its own first trigger signal according to the configuration of the first selection register S_sel, or the control module selects according to the first trigger signal. The configuration of the register S_sel sends any one of the first trigger signals s_ck(0:s-1) to any one of the functional cores.

在一个示例中,所述寄存器模块70还可以包括第二选择寄存器(如图6a所示,P_sel[0:m-1][0:x-1]),第二选择寄存器被配置成大小为m*x比特的二维寄存器,第一维表示功能核的编号,第二维表示当前功能核所述的子任务编号,其中,x=log 2n,控制模块可以对第二选择寄存器进行配置,以使得通过多路选择器将对应的第二触发信号p_ck(0:n-1)输出到相应的功能核。 In one example, the register module 70 may further include a second selection register (as shown in FIG. 6a, P_sel[0:m-1][0:x-1]), the second selection register is configured to have a size of A two-dimensional register of m*x bits, the first dimension represents the number of the functional core, and the second dimension represents the subtask number described by the current functional core, where x=log 2 n, the control module can configure the second selection register , so that the corresponding second trigger signal p_ck(0:n-1) is output to the corresponding functional core through the multiplexer.

在一个示例中,如图6a所示,若当前子任务完成运算(子任务结束信号寄存器phase_grp_finish对应的值为1),并且所述各第二触发信号对应的所述功能核全部结束当前各子任务的执行的情况下,触发下一个相位周期,生成各下一子任务对应的所述第二触发信号,每个功能核根据第二选择寄存器 P_sel的配置自由选择任意一个第二触发信号作为自身的第二触发信号,或者,控制模块根据第一选择寄存器P_sel的配置将任意一个第二触发信号p_ck(0:n-1)发送到任意一个功能核。In an example, as shown in FIG. 6a, if the current subtask completes the operation (the value corresponding to the subtask end signal register phase_grp_finish is 1), and the functional cores corresponding to the second trigger signals all end the current subtasks In the case of the execution of the task, the next phase cycle is triggered, and the second trigger signal corresponding to each next subtask is generated, and each functional core freely selects any second trigger signal as its own according to the configuration of the second selection register P_sel. or, the control module sends any second trigger signal p_ck(0:n-1) to any functional core according to the configuration of the first selection register P_sel.

本公开实施例通过设置各个功能核任意选择第一触发信号、第二触发信号,可以实现后续处理器功能的扩展,增加适应性及灵活性。By setting each functional core to arbitrarily select the first trigger signal and the second trigger signal in the embodiment of the present disclosure, the subsequent processor function can be expanded, and the adaptability and flexibility can be increased.

在一种可能的实现方式中,所述控制模块还可以用于,In a possible implementation manner, the control module can also be used to:

在满足预设条件的情况下,释放所述第一触发信号对应的处理器中的功能核,所述预设条件包括:Release the functional core in the processor corresponding to the first trigger signal when a preset condition is met, where the preset condition includes:

当前任务为最后一个任务且所述当前任务结束执行;或者The current task is the last task and the execution of the current task ends; or

在强制结束当前任务的执行时。When forcibly ending the execution of the current task.

例如,如果当前任务是一个神经网络运算任务的最后一个环节时,在当前任务结束执行后,整个神经网络运算任务完成,可以释放第一触发信号对应于处理器中的功能核集合,也就是说这些功能核集合可以变成空闲状态,供其他任务使用,而在强制结束当前任务的执行后,由于当前任务的结束执行是超时后的强制结束,因此可以导致整个神经网络运算任务的结束执行,也可以释放第一触发信号对应于处理器中的功能核集合。在结束执行当前任务后,还可以对相应的第一计时时钟和各第二计时时钟进行重置清零操作。For example, if the current task is the last link of a neural network computing task, after the current task finishes executing, the entire neural network computing task is completed, and the first trigger signal corresponding to the set of functional cores in the processor can be released, that is to say These functional core sets can become idle for use by other tasks, and after the execution of the current task is forced to end, since the end execution of the current task is a forced end after a timeout, it can lead to the end execution of the entire neural network computing task. It is also possible to release the first trigger signal corresponding to the set of functional cores in the processor. After the execution of the current task is finished, the corresponding first timing clock and each second timing clock may also be reset and cleared.

通过在结束执行任务后释放第一触发信号对应于处理器中的功能核集合,可以在只有少数任务执行时,使未被选中的功能核处于休眠状态,降低功耗,同时,及时释放功能核可以使得空闲状态下的功能核可以被其他任务选中,提高运行效率,减少其他任务的等待时间,加快执行速度。By releasing the first trigger signal corresponding to the set of functional cores in the processor after completing the execution of the task, when only a few tasks are executed, the unselected functional cores can be put into a dormant state to reduce power consumption, and at the same time, the functional cores can be released in time It can make the function core in the idle state can be selected by other tasks, improve the operation efficiency, reduce the waiting time of other tasks, and speed up the execution speed.

本公开实施例的控制装置,可以支持片上多个异步网络应用的并行或混合运算:不同的step触发可以对应部署不同的网络应用,它们之间独立运行,可以降低功耗,当只有少数网络应用执行时,未被选中的core处于休眠状态,功耗降低,并且可以减少运行时间:对于一个网络应用来说,将其内部具有相似运算任务的core划分为一个phase时序组,加快执行速度。The control device of the embodiment of the present disclosure can support parallel or mixed operations of multiple asynchronous network applications on-chip: different step triggers can be deployed correspondingly to different network applications, and they operate independently, which can reduce power consumption. When there are only a few network applications During execution, unselected cores are in a dormant state, power consumption is reduced, and running time can be reduced: for a network application, cores with similar computing tasks are divided into a phase timing group to speed up execution.

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。Various embodiments of the present disclosure have been described above, and the foregoing descriptions are exemplary, not exhaustive, and not limiting of the disclosed embodiments. Numerous modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or improvement over the technology in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

Claims (10)

一种控制装置,其特征在于,所述装置包括:A control device, characterized in that the device comprises: 第一触发模块,用于产生一个或多个第一触发信号,其中,各个第一触发信号对应于各个任务;a first trigger module for generating one or more first trigger signals, wherein each first trigger signal corresponds to each task; 第二触发模块,电连接于所述第一触发模块,用于根据第一触发信号生成一个或多个第二触发信号,其中,第二触发信号对应于任务的子任务;a second trigger module, electrically connected to the first trigger module, and configured to generate one or more second trigger signals according to the first trigger signal, wherein the second trigger signals correspond to subtasks of the task; 多路选择器,电连接于所述第一触发模块及所述第二触发模块;a multiplexer, electrically connected to the first trigger module and the second trigger module; 控制模块,电连接于所述多路选择模块,用于控制所述多路选择器将所述一个或多个第一触发信号中的任意一个第一触发信号、及所述一个或多个第二触发信号中的任意一个第二触发信号传输至处理器中的一个或多个功能核,以使得该一个或多个功能核根据接收的第一触发信号及第二触发信号执行任务的子任务。A control module, electrically connected to the multiplexing module, for controlling the multiplexer to select any one of the one or more first trigger signals and the one or more first trigger signals Any one of the two trigger signals and the second trigger signal are transmitted to one or more functional cores in the processor, so that the one or more functional cores execute the subtasks of the task according to the received first trigger signal and the second trigger signal . 根据权利要求1所述的装置,其特征在于,The device of claim 1, wherein: 所述装置还包括第一计时模块,电连接于所述第一触发模块,所述第一计时模块包括第一计时时钟,所述第一计时模块用于在接收到所述第一触发信号时启动所述第一计时时钟,以对当前任务的执行周期计时;The device further includes a first timing module, which is electrically connected to the first trigger module, the first timing module includes a first timing clock, and the first timing module is used for receiving the first trigger signal. starting the first timing clock to time the execution cycle of the current task; 所述第一触发模块,还用于在所述第一计时时钟达到第一阈值,且所述当前任务的所有子任务全部结束执行且所述当前任务不是最后一个任务的情况下,确定满足触发下一任务的执行周期的条件,并生成所述下一任务的执行周期对应的第一触发信号。The first triggering module is further configured to determine that the trigger is satisfied when the first timing clock reaches a first threshold, and all subtasks of the current task all finish executing and the current task is not the last task conditions of the execution cycle of the next task, and generate a first trigger signal corresponding to the execution cycle of the next task. 根据权利要求2所述的装置,其特征在于,The device of claim 2, wherein: 所述第一触发模块还用于,在所述第一计时时钟到达第三阈值的情况下,生成强制结束信号,所述强制结束信号用于强制结束所述当前任务中当前各子任务的执行,从而强制结束当前任务的执行;The first triggering module is further configured to, when the first timing clock reaches a third threshold, generate a forced end signal, where the forced end signal is used to forcibly end the execution of each current subtask in the current task , so as to force the execution of the current task to end; 所述控制模块还用于,利用所述多路选择器将所述强制结束信号传输至当前任务的各个功能核。The control module is further configured to transmit the forced termination signal to each functional core of the current task by using the multiplexer. 根据权利要求1所述的装置,其特征在于,The device of claim 1, wherein: 所述装置还包括第二计时模块,电连接于所述第二触发模块,所述第二计时模块包括一个或多个第二计时时钟,所述第二计时模块用于在接收到所述第二触发信号时启动所述一个或多个第二计时时钟,以对当前任务的各个子任务的执行周期计时,The device further includes a second timing module, electrically connected to the second trigger module, the second timing module includes one or more second timing clocks, and the second timing module is used for receiving the first timing clock. When the two trigger signals are activated, the one or more second timing clocks are started to time the execution cycle of each subtask of the current task, 所述第二触发模块,还用于在所述第二计时时钟达到第二阈值,且所述各第二触发信号对应的所述功能核全部结束当前各子任务的执行的情况下,确定满足触发所述当前任务中当前各子任务的下一子任务的执行周期的条件,并生成各下一子任务对应的所述第二触发信号。The second triggering module is further configured to determine that when the second timing clock reaches a second threshold and the functional cores corresponding to the second trigger signals all complete the execution of the current subtasks The conditions for triggering the execution cycle of the next subtask of each current subtask in the current task are triggered, and the second trigger signal corresponding to each next subtask is generated. 根据权利要求1所述的装置,其特征在于,The device of claim 1, wherein: 所述控制模块还用于,接收与第二触发信号对应的各个功能核输出的运算结束信号,并在各个功 能核均输出运算结束信号时,产生子任务结束信号,以确定与第二触发信号对应的功能核全部结束当前子任务的执行;The control module is also used to receive the operation end signal output by each functional core corresponding to the second trigger signal, and when each function core outputs the operation end signal, generate a subtask end signal to determine whether it is related to the second trigger signal. All the corresponding function cores end the execution of the current subtask; 所述装置还包括:The device also includes: 第一存储模块,电连接于所述控制模块,用于存储所述子任务结束信号。The first storage module, electrically connected to the control module, is used for storing the subtask end signal. 根据权利要求5所述的装置,其特征在于,The device of claim 5, wherein: 所述控制模块还用于,在所述第一存储模块中存储有当前任务的所有子任务的子任务结束信号的情况下,产生任务结束信号,以确定与第一触发信号对应的当前任务的所有子任务全部结束执行;The control module is further configured to, in the case that the subtask end signals of all subtasks of the current task are stored in the first storage module, generate a task end signal to determine the current task corresponding to the first trigger signal. All subtasks are executed; 所述装置还包括:The device also includes: 第二存储模块,电连接于所述控制模块,用于存储所述任务结束信号。A second storage module, electrically connected to the control module, is used for storing the task end signal. 根据权利要求1所述的装置,其特征在于,所述控制模块还用于为各个任务、各个任务的子任务分配功能核,并对处理器中的功能核进行编号,对分配给各个任务的第一功能核集合进行编号,对各个任务的各个子任务对应的第二功能核集合进行编号。The device according to claim 1, wherein the control module is further configured to allocate functional cores to each task and subtasks of each task, number the functional cores in the processor, and The first functional core set is numbered, and the second functional core set corresponding to each subtask of each task is numbered. 根据权利要求1所述的装置,其特征在于,所述装置包括多个相位组寄存器、第一选择寄存器、功能核寄存器、第二选择寄存器,其中,The device according to claim 1, wherein the device comprises a plurality of phase group registers, a first selection register, a function core register, and a second selection register, wherein, 所述相位组寄存器被配置为大小为s*n比特的二维寄存器,第一维表示当前任务编号,第二维当前任务包括的子任务编号,其中,s、n均为正整数;The phase group register is configured as a two-dimensional register with a size of s*n bits, the first dimension represents the current task number, and the second dimension includes the subtask number of the current task, where s and n are both positive integers; 所述第一选择寄存器被配置为大小为m*y比特的二维寄存器,第一维表示当前的功能核编号,第二维表示当前功能核所属的任务编号,其中,m、y均为正整数,且y=log 2s; The first selection register is configured as a two-dimensional register with a size of m*y bits, the first dimension represents the current functional core number, and the second dimension represents the task number to which the current functional core belongs, wherein m and y are positive. integer, and y=log 2 s; 所述功能核寄存器被配置为大小为n*m比特的二维寄存器,第一维表示子任务编号,第二维表示子任务包括的功能核;The function core register is configured as a two-dimensional register with a size of n*m bits, the first dimension represents the subtask number, and the second dimension represents the function core included in the subtask; 所述第二选择寄存器被配置为大小为m*x比特的二维寄存器,第一维表示功能核的编号,第二维表示当前功能核所述的子任务编号,其中,x=log 2n。 The second selection register is configured as a two-dimensional register with a size of m*x bits, the first dimension represents the number of the functional core, and the second dimension represents the subtask number described by the current functional core, where x=log 2 n . 根据权利要求1或3所述的装置,其特征在于,所述控制模块还用于,The device according to claim 1 or 3, wherein the control module is further configured to: 在满足预设条件的情况下,释放所述第一触发信号对应的处理器中的功能核,所述预设条件包括:Release the functional core in the processor corresponding to the first trigger signal when a preset condition is met, where the preset condition includes: 当前任务为最后一个任务且所述当前任务结束执行;或者The current task is the last task and the execution of the current task ends; or 在强制结束当前任务的执行时。When forcibly ending the execution of the current task. 一种类脑计算系统,其特征在于,所述系统包括权利要求1-9任一项所述的控制装置。A brain-like computing system, characterized in that, the system includes the control device according to any one of claims 1-9.
PCT/CN2020/137469 2020-11-20 2020-12-18 Control apparatus and brain-inspired computing system Ceased WO2022104991A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011313163.7 2020-11-20
CN202011313163.7A CN112434800B (en) 2020-11-20 2020-11-20 Control device and brain-inspired computing system

Publications (1)

Publication Number Publication Date
WO2022104991A1 true WO2022104991A1 (en) 2022-05-27

Family

ID=74692879

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/137469 Ceased WO2022104991A1 (en) 2020-11-20 2020-12-18 Control apparatus and brain-inspired computing system

Country Status (2)

Country Link
CN (1) CN112434800B (en)
WO (1) WO2022104991A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114172644B (en) * 2021-12-03 2023-04-25 三未信安科技股份有限公司 Method and system for optimizing elliptic curve public key cryptography of PCI (peripheral component interconnect) cryptographic card
CN116707493B (en) * 2023-07-31 2023-10-20 苏州萨沙迈半导体有限公司 Trigger signal generating device, power driving module and motor control chip

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729050A (en) * 2017-09-22 2018-02-23 中国科学技术大学苏州研究院 Real-time system and task construction method based on LET programming models
CN108073982A (en) * 2016-11-18 2018-05-25 上海磁宇信息科技有限公司 Class brain computing system
CN109933204A (en) * 2019-03-22 2019-06-25 河北雄安有份儿智慧科技有限公司 A kind of man-machine interaction method of Behavior-based control action triggers and brain wave perception
CN110322010A (en) * 2019-07-02 2019-10-11 深圳忆海原识科技有限公司 The impulsive neural networks arithmetic system and method calculated for class brain intelligence with cognition
CN110621052A (en) * 2019-09-29 2019-12-27 广东电网有限责任公司 Multipath routing optimization method
US20200057948A1 (en) * 2016-10-31 2020-02-20 Nec Corporation Automatic prediction system, automatic prediction method and automatic prediction program

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250011B2 (en) * 2008-09-21 2012-08-21 Van Der Made Peter A J Autonomous learning dynamic artificial neural computing device and brain inspired system
CN110502330A (en) * 2018-05-16 2019-11-26 上海寒武纪信息科技有限公司 Processor and processing method
CN107578102A (en) * 2017-07-21 2018-01-12 韩永刚 One species neurode information processing method and smart machine
CN109376843B (en) * 2018-10-12 2021-01-08 山东师范大学 FPGA-based electroencephalogram signal rapid classification method, implementation method and device
CN109901878B (en) * 2019-02-25 2021-07-23 北京灵汐科技有限公司 Brain-like computing chip and computing device
CN110163016B (en) * 2019-04-29 2021-08-03 清华大学 Hybrid computing system and hybrid computing method
CN110623663A (en) * 2019-08-19 2019-12-31 北京信息科技大学 An EEG signal acquisition system and control method thereof
CN211187235U (en) * 2019-08-19 2020-08-07 北京信息科技大学 An EEG signal acquisition system
CN110909869B (en) * 2019-11-21 2022-08-23 浙江大学 Brain-like computing chip based on impulse neural network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200057948A1 (en) * 2016-10-31 2020-02-20 Nec Corporation Automatic prediction system, automatic prediction method and automatic prediction program
CN108073982A (en) * 2016-11-18 2018-05-25 上海磁宇信息科技有限公司 Class brain computing system
CN107729050A (en) * 2017-09-22 2018-02-23 中国科学技术大学苏州研究院 Real-time system and task construction method based on LET programming models
CN109933204A (en) * 2019-03-22 2019-06-25 河北雄安有份儿智慧科技有限公司 A kind of man-machine interaction method of Behavior-based control action triggers and brain wave perception
CN110322010A (en) * 2019-07-02 2019-10-11 深圳忆海原识科技有限公司 The impulsive neural networks arithmetic system and method calculated for class brain intelligence with cognition
CN110621052A (en) * 2019-09-29 2019-12-27 广东电网有限责任公司 Multipath routing optimization method

Also Published As

Publication number Publication date
CN112434800A (en) 2021-03-02
CN112434800B (en) 2024-02-20

Similar Documents

Publication Publication Date Title
TW202246977A (en) Task scheduling method and apparatus, computer device and storage medium
TWI493332B (en) Method and apparatus with power management and a platform and computer readable storage medium thereof
US20080195840A1 (en) Identifying Messaging Completion on a Parallel Computer
US10761822B1 (en) Synchronization of computation engines with non-blocking instructions
CN116582438B (en) A virtualized video encoding and decoding system and method, electronic device and storage medium
CN112925587B (en) Method and apparatus for initializing an application
CN109992366A (en) Method for scheduling task and dispatching device
US20230067432A1 (en) Task allocation method, apparatus, electronic device, and computer-readable storage medium
CN116320469B (en) Virtualized video encoding and decoding system and method, electronic equipment and storage medium
WO2009024437A1 (en) Managing power in a parallel computer
WO2022104991A1 (en) Control apparatus and brain-inspired computing system
US11552892B2 (en) Dynamic control of latency tolerance reporting values
WO2022104990A1 (en) Trigger device and brain-like computing system
CN111985634B (en) Neural network computing method, device, computer equipment and storage medium
CN111767121A (en) Computing method, device and related products
CN120067023A (en) Reading control method, device, chip and system of communication interface
CN118484413A (en) DMA data transmission method, device, system-level chip, equipment, medium and product
WO2023045478A1 (en) Graph task scheduling method, execution-end device, storage medium, and program product
CN112416475A (en) Triggering method
US12380321B1 (en) Flexible array data loading
CN118535316B (en) Method, device and storage medium for cloud computing on cloud system
CN114816759A (en) Thread pool operation method and device, electronic equipment and storage medium
CN111767999A (en) Data processing method, device and related products
WO2021179333A1 (en) Task allocation method and apparatus, and electronic device and computer-readable storage medium
US20240362077A1 (en) System and method for workload management between hardware components

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20962282

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20962282

Country of ref document: EP

Kind code of ref document: A1