Routing transmission method, routing control method, event processing method and device
In the event-driven multi-core architecture, priority is determined and transmission is achieved based on the transmission parameters of the routing packet, and the calculation path is suspended in combination with the alarm mechanism of the global controller, the routing delay problem is solved and the incident response capability is improved.
Patent Information
- Application Number
- CN202111628764.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-28
- Publication Date
- 2025-05-09
- Estimated Expiration
- 2041-12-28
AI Technical Summary
In the event-driven multi-core architecture neuromorphic chip, there is a routing delay problem, which leads to the transmission time of routing packets from the source core to the destination core, which affects the event response capability of the processing core.
The routing packets are transmitted in turn by obtaining the routing packets to be transmitted and determining the transmission priority based on their current transmission parameters (such as transmission distance and remaining transmission time). If it is detected that the remaining transmission time of the routing packet is less than or equal to the time threshold, an alarm message is sent to the global controller to pause the global computing path until all routing packets complete transmission.
It effectively reduces routing delays, improves the response ability of the core to handle events within the current time, ensures that events can be processed in a timely manner, and avoids the problem of excessively long response time of the core due to routing delays.
Smart Images

Figure CN116366519B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of computer technology, and in particular to a routing transmission method, a routing control method, an event processing method and device, an electronic device, and a computer-readable medium. Background Art
[0002] Neuromorphic chips based on many-core architecture (also called many-core chips) usually have multiple computing units. The smallest computing unit in each chip that can be independently scheduled and has complete computing power is called a core (also called a processing core). The core can work based on event-driven. Whether the routing needs to transmit data and whether the core's neurons need to perform calculations depends on whether the core's neurons have received corresponding input information (events). In the event-driven working mode, the core does not need to be globally or locally synchronized, there is no concept of time beats, and there is no need to poll in phases according to a unified synchronization signal.
[0003] In the related art, based on the event-driven method, there is usually a routing delay. For example, the destination core will receive the routing packet (data packet) some time after the current core sends it. Summary of the invention
[0004] The present disclosure provides a routing transmission method, a routing control method, an event processing method and device, an electronic device, and a computer-readable medium.
[0005] According to the first aspect of the present disclosure, an embodiment of the present disclosure provides a routing transmission method, which includes: obtaining a first routing packet to be transmitted, the first routing packet including current transmission parameters, the current transmission parameters including a current transmission distance and / or a current remaining transmission time; determining a transmission priority of each of the first routing packets based on the current transmission parameters of each of the first routing packets; and transmitting each of the first routing packets in sequence based on the transmission priority of each of the first routing packets.
[0006] In some embodiments, the first routing packet further includes at least one axon event, where the axon event is an event transmitted from a processing core corresponding to a source address of the first routing packet to a processing core corresponding to a destination address.
[0007] In some embodiments, the obtaining of the first routing packet to be transmitted includes: obtaining the first routing packet to be transmitted from a routing buffer of a current routing node; wherein the destination address corresponding to the first routing packet is an address of another routing node.
[0008] In some embodiments, the first routing packet to be transmitted includes: a routing packet transmitted to the current routing node via other routing nodes and the current routing node is not the routing node corresponding to the destination address, and a routing packet that the current processing core corresponding to the current routing node needs to transmit to other routing nodes.
[0009] In some embodiments, the current transmission parameters include the current remaining transmission time; after obtaining the first routing packets to be transmitted, the routing transmission method further includes: when it is detected that the current remaining transmission time of at least one of the first routing packets is less than or equal to a time threshold, sending an alarm message to the global controller; wherein the global controller is used to suspend the global computing path in response to the alarm message until all the first routing packets have been transmitted to the corresponding destination address.
[0010] In some embodiments, the routing transmission method also includes: in response to receiving a second routing packet for a current processing core corresponding to a current routing node, sending the second routing packet to the current processing core; wherein the second routing packet includes at least one axon event, each axon event includes a corresponding axon identifier, and the current processing core is used to determine the neuron corresponding to the axon event based on the axon event, according to the correspondence between the axon identifier, the neuron identifier and the weight, and update the current membrane potential of the neuron corresponding to each axon event according to the corresponding weight.
[0011] In some embodiments, each neuron of the current processing core has a refractory period, and the refractory period is greater than or equal to a global routing transmission delay threshold.
[0012] In some embodiments, after the neuron fires an axon event, the current processing core adjusts the refractory period time corresponding to the neuron to a time greater than or equal to a global routing transmission delay threshold.
[0013] In some embodiments, before sending the second routing packet to the current processing core, the routing transmission method also includes: caching the second routing packet to the routing buffer corresponding to the current routing node; detecting whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference; when the time difference between the current time and the initial sending time of the second routing packet is less than the target time difference, returning to the step of detecting whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference; sending the second routing packet to the current processing core includes: when the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference, sending the second routing packet to the current processing core, so that the current processing core processes the axon event in the second routing packet.
[0014] In some embodiments, before obtaining the first routing packet to be transmitted, it also includes: receiving a routing packet; when the destination address corresponding to the routing packet is not the address of the current routing node, using the routing packet as the first routing packet and caching it in the routing buffer of the current routing node.
[0015] In some embodiments, the current transmission parameter includes a current transmission distance; the longer the current transmission distance is, the higher the transmission priority is.
[0016] In some embodiments, the current transmission parameter includes a current remaining transmission time; the shorter the current remaining transmission time is, the higher the transmission priority is.
[0017] In some embodiments, the current transmission parameters include a current transmission distance and a current remaining transmission time; the larger the ratio of the current transmission distance to the current remaining transmission time, the higher the transmission priority.
[0018] According to the second aspect of the present disclosure, an embodiment of the present disclosure provides a routing control method based on a many-core system, wherein the many-core system includes multiple processing cores and routing nodes corresponding to each of the processing cores, and each of the routing nodes adopts the routing transmission method provided by any of the above embodiments to perform routing transmission. The routing control method includes: in the current time beat, obtaining the working status of the routing node corresponding to each of the processing cores, and each of the processing cores is used to cache the second routing packet received in the current time beat, and the second routing packet includes at least one axon event; when there is at least one routing node whose working status is in a non-idle state, returning to the step of obtaining the working status of the routing node corresponding to each of the processing cores; when the working status of each of the routing nodes is an idle state, controlling each of the processing cores to process the axon events received in the cached current time beat.
[0019] In some embodiments, after controlling each of the processing cores to process the axon event within the current time beat of the cache, the event processing method further includes: in response to each of the processing cores completing processing of the axon event received within the current time beat of the cache, switching the current time beat to the next time beat.
[0020] In some embodiments, when there is at least one of the routing nodes whose working state is in a non-idle state, the routing control method further includes: receiving an alarm message sent by at least one of the routing nodes, the alarm message being information sent by the routing node when it detects that the current remaining transmission time of the first routing packet to be transmitted cached by itself is less than or equal to a time threshold, and the first routing packet includes at least one axon event; according to the alarm message, pausing the global computing path until all the first routing packets to be transmitted are transmitted and all routing nodes are in an idle state.
[0021] According to the third aspect of the present disclosure, an embodiment of the present disclosure provides an event processing method based on a processing core, the processing core includes a corresponding event buffer, and the routing node corresponding to the processing core adopts the routing transmission method provided by any of the above embodiments to perform routing transmission, and the event processing method includes: receiving a second routing packet sent by the current routing node, the second routing packet including at least one axon event; caching the second routing packet to the corresponding event buffer; detecting whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference; when the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference, processing the axon event in the second routing packet.
[0022] In some embodiments, when the time difference between the current time and the initial sending time of the second routing packet is less than the target time difference, the step of detecting whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference is returned.
[0023] In some embodiments, the axon event includes an axon identifier, and the processing of the axon event in the second routing package includes: based on the axon event, determining the neuron corresponding to the axon event according to the correspondence between the axon identifier, the neuron identifier and the weight; and updating the current membrane potential of the neuron corresponding to each axon event according to the corresponding weight.
[0024] In some embodiments, after processing the axon event in the second routing packet, the event processing method also includes: generating a first routing packet to be transmitted in response to an axon event emitted by a neuron of the current processing core when the current membrane potential reaches a membrane potential threshold; and sending the first routing packet to be transmitted to the routing buffer of the corresponding routing node.
[0025] According to the fourth aspect of the present disclosure, an embodiment of the present disclosure provides a routing transmission device, which includes: a first acquisition module, used to acquire a first routing packet to be transmitted, the first routing packet including current transmission parameters, the current transmission parameters including a current transmission distance and / or a current remaining transmission time; a priority determination module, used to determine the transmission priority of each of the first routing packets according to the current transmission parameters of each of the first routing packets; a transmission module, used to transmit each of the first routing packets in sequence according to the transmission priority of each of the first routing packets.
[0026] According to the fifth aspect of the present disclosure, an embodiment of the present disclosure provides a routing control device for a many-core system, wherein the many-core system includes multiple processing cores and routing nodes corresponding to each of the processing cores, and each of the routing nodes adopts the routing transmission method provided by any of the above embodiments to perform routing transmission, and the routing control device includes: a second acquisition module, used to acquire the working status of the routing node corresponding to each of the processing cores within the current time beat; each of the processing cores is used to cache the second routing packet received within the current time beat, and the second routing packet includes at least one axon event; a monitoring module, used to monitor the working status of each of the routing nodes; when there is at least one routing node whose working status is in a non-idle state, triggering the second acquisition module to acquire the working status of the routing node corresponding to each of the processing cores; a control module, used to control each of the processing cores to process the axon events received within the cached current time beat when the monitoring module monitors that the working status of each of the routing nodes is in an idle state.
[0027] According to the sixth aspect of the present disclosure, an embodiment of the present disclosure provides an event processing device, which is applied to a processing core, the processing core includes a corresponding event buffer, and the routing node corresponding to the processing core adopts the routing transmission method provided by any of the above embodiments to perform routing transmission, and the event processing device includes: a first receiving module, used to receive a second routing packet sent by the current routing node, the second routing packet including at least one axon event; a first cache module, used to cache the second routing packet to the corresponding event buffer; a first detection module, used to detect whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference; an event processing module, used to process the axon event in the second routing packet when the detection module detects that the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference.
[0028] According to the seventh aspect of the present disclosure, an embodiment of the present disclosure provides an electronic device, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores one or more computer programs executable by the at least one processor, and one or more of the computer programs are executed by the at least one processor so that the at least one processor can execute the above-mentioned routing transmission method, or the above-mentioned routing control method, or the above-mentioned event processing method.
[0029] According to the eighth aspect of the present disclosure, an embodiment of the present disclosure provides a computer-readable medium on which a computer program is stored, wherein the computer program implements the above-mentioned routing transmission method, or the above-mentioned routing control method, or the above-mentioned event processing method when executed by the processing core.
[0030] It should be understood that the content described in this section is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] The accompanying drawings are used to provide a further understanding of the present disclosure and constitute a part of the specification. Together with the embodiments of the present disclosure, they are used to explain the present disclosure and do not constitute a limitation of the present disclosure. The above and other features and advantages will become more apparent to those skilled in the art by describing detailed example embodiments with reference to the accompanying drawings, in which:
[0032] Figure 1 A schematic diagram of a flow chart of a routing transmission method provided in an embodiment of the present disclosure;
[0033] Figure 2 A flowchart of another routing transmission method provided by an embodiment of the present disclosure;
[0034] Figure 3 is a schematic diagram of an exemplary structure of an on-chip network;
[0035] Figure 4 A schematic diagram of a flow chart of another routing transmission method provided by an embodiment of the present invention;
[0036] Figure 5 A schematic diagram of a flow chart of another routing transmission method provided by an embodiment of the present invention;
[0037] Figure 6 A schematic diagram of a flow chart of a routing control method based on a many-core system provided in an embodiment of the present disclosure;
[0038] Figure 7 A flowchart of another routing control method provided by an embodiment of the present disclosure;
[0039] Figure 8 A flowchart of an event processing method based on a processing core provided in an embodiment of the present disclosure;
[0040] Fig. 9 A block diagram of a routing transmission device provided in an embodiment of the present disclosure;
[0041] Fig.10 A block diagram of a routing control device provided by an embodiment of the present disclosure;
[0042] Fig.11 A block diagram of an event processing device provided in an embodiment of the present disclosure;
[0043] Fig.12 A block diagram of a composition of an electronic device provided in an embodiment of the present disclosure. DETAILED DESCRIPTION
[0044] In order to enable those skilled in the art to better understand the technical solutions of the present disclosure, the exemplary embodiments of the present disclosure are described below in conjunction with the accompanying drawings, including various details of the embodiments of the present disclosure to facilitate understanding, which should be considered as merely exemplary. Therefore, those of ordinary skill in the art should recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of the present disclosure. Similarly, for the sake of clarity and conciseness, the description of well-known functions and structures is omitted in the following description.
[0045] In the absence of conflict, the various embodiments of the present disclosure and the various features therein may be combined with each other.
[0046] As used herein, the term "and / or" includes any and all combinations of one or more of the associated listed items.
[0047] The terms used herein are only used to describe specific embodiments and are not intended to limit the present disclosure. As used herein, the singular forms "a" and "the" are also intended to include plural forms, unless the context clearly indicates otherwise. It will also be understood that when the terms "including" and / or "made of" are used in this specification, the presence of the features, wholes, steps, operations, elements and / or components is specified, but the presence or addition of one or more other features, wholes, steps, operations, elements, components and / or groups thereof is not excluded. "Connected" or "connected" and similar words are not limited to physical or mechanical connections, but can include electrical connections, whether direct or indirect.
[0048] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by those of ordinary skill in the art. It will also be understood that terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of the relevant art and the present disclosure, and will not be interpreted as having an idealized or overly formal meaning unless explicitly defined as such herein.
[0049] Figure 1 A schematic diagram of a routing transmission method provided by an embodiment of the present disclosure, referring to Figure 1 The embodiment of the present disclosure provides a routing transmission method, which is applied to a neuromorphic chip based on a many-core architecture. The neuromorphic chip includes multiple processing cores and an on-chip network. Each processing core includes multiple neurons. The on-chip network includes multiple routing nodes. The routing nodes are connected to the processing cores in a one-to-one correspondence. The routing transmission method is implemented based on the current routing node. The routing transmission method includes:
[0050] Step S11: Acquire a first routing packet to be transmitted, where the first routing packet includes current transmission parameters.
[0051] In step S11, the current transmission parameters include the current transmission distance and / or the current remaining transmission time. The current transmission distance refers to the distance between the current routing node and the routing node corresponding to the destination address of the first routing packet, which may be the distance between the physical location of the current routing node and the routing node corresponding to the destination address; the current remaining transmission time refers to the difference between the expected delivery time corresponding to the first routing packet and the current time.
[0052] In the disclosed embodiment, the processing core of the neuromorphic chip operates based on an event-driven manner, and the first routing packet also includes at least one axon event to be released, the axon event is an event that the processing core corresponding to the source address of the first routing packet responds to a pulse generated after the accumulated membrane potential of the neuron exceeds a threshold value, and is released to the axon of the processing core corresponding to the destination address of the first routing packet, that is, the axon event is an event that the processing core corresponding to the source address of the first routing packet needs to transmit to the processing core corresponding to the destination address, and the axon event may carry the axon identifier of the axon of the processing core corresponding to the destination address.
[0053] Step S12: Determine the transmission priority of each first routing packet according to the current transmission parameters of each first routing packet.
[0054] Specifically, according to the current transmission parameters of each first routing packet and based on the priority rules corresponding to the current transmission parameters, the transmission priority of each first routing packet is determined.
[0055] In some embodiments, the current transmission parameter includes a current transmission distance, and the corresponding priority rule includes: the longer the current transmission distance of the first routing packet, the higher the transmission priority of the first routing packet.
[0056] In some embodiments, the current transmission parameter includes a current remaining transmission time, and the corresponding priority rule includes: the shorter the current remaining transmission time of the first routing packet, the higher the transmission priority of the first routing packet.
[0057] In some embodiments, the current transmission parameters include the current transmission distance and the current remaining transmission time, and the corresponding priority rules include: the larger the ratio of the current transmission distance of the first routing packet to the current remaining transmission time, the higher the transmission priority of the first routing packet.
[0058] Step S13: Transmit each first routing packet in sequence according to the transmission priority of each first routing packet.
[0059] Specifically, each first routing packet is transmitted to the corresponding destination address in sequence according to the transmission priority of each first routing packet from high to low.
[0060] According to the technical solution of the routing transmission method provided in the embodiment of the present disclosure, when the processing core of the neuromorphic chip is based on an event-driven mode, after the current routing node obtains the first routing packet to be transmitted, it determines the transmission priority of the first routing packet based on the current transmission parameters of the first routing packet, and transmits the first routing packet based on the transmission priority, thereby effectively improving the routing delay problem of the neuromorphic chip in the event-driven mode, and effectively improving the problem that the events issued by the processing core cannot be responded to and processed in time due to the routing delay problem in the event-driven mode.
[0061] In the embodiment of the present disclosure, each routing node is provided with a routing buffer, which is used to cache the first routing packet to be transmitted. The destination address corresponding to the first routing packet is the address of other routing nodes. The first routing packet to be transmitted includes: routing packets transmitted to the current routing node via other routing nodes and the current routing node is not the routing node corresponding to the destination address, and routing packets that the current processing core corresponding to the current routing node needs to transmit to other routing nodes.
[0062] In the embodiment of the present disclosure, in step S11, obtaining the first routing packet to be transmitted includes: obtaining the first routing packet to be transmitted from the routing buffer of the current routing node.
[0063] Figure 2 A flow chart of another routing transmission method provided by an embodiment of the present disclosure, such as Figure 2As shown, in some embodiments, the current transmission parameters include the current remaining transmission time. After obtaining the first routing packet to be transmitted, that is, after step S11, the routing transmission method further includes steps S21 to S22.
[0064] Step S21: Detect whether the current remaining transmission time of each first routing packet is less than or equal to a time threshold.
[0065] Figure 3 This is an exemplary structural diagram of an on-chip network, which includes multiple evenly distributed routing nodes. Each routing node is configured with a corresponding warning line and is connected to a global controller through the corresponding warning line. The warning line can be a physical transmission route or a wireless transmission route. The warning line is used to transmit warning information. The global controller is used to receive the warning information of the routing nodes and control the computing path of the global processing core.
[0066] In step S21, when it is detected that the current remaining transmission time of at least one first routing packet is less than or equal to the time threshold, it means that the first routing packet cannot be delivered to the destination address on time, so step S22 is executed to send an alarm message to the global controller. When it is detected that the current remaining transmission time of all first routing packets is greater than the time threshold, the transmission of the first routing packets is performed normally, such as performing the above steps S12 and S13.
[0067] Step S22: Send alarm information to the global controller.
[0068] Specifically, when it is detected that the current remaining transmission time of at least one first routing packet is less than or equal to the time threshold, the current routing node can send an alarm message to the global controller through the corresponding alarm line. The global controller is used to respond to the alarm message of any routing node, suspend the global computing path, and wait for routing transmission until all the first routing packets in the current global have been transmitted to the routing node corresponding to the corresponding destination address, that is, no alarm message sent by any routing node is received within the current time, and then restart the global computing path.
[0069] In some embodiments, the first routing packet to be transmitted is the first routing packet received in the current time beat. When the first routing packets received in the current time beat have been transmitted to the processing core corresponding to the corresponding destination address, each processing core has processed the axon events received in the current time beat, and the global routing nodes are all idle and there is no route to transmit, then the global switch is to the next time beat. The time beat can also be called a synchronization beat or a clock beat, which refers to the time interval between two adjacent global synchronization times of a neuromorphic chip.
[0070] According to the technical solution of the routing transmission method provided by the embodiment of the present disclosure, the current routing node can monitor the current remaining transmission time of the first routing packet, and when it is monitored that the current remaining transmission time of the first routing packet is less than or equal to the time threshold, an alarm is sent to the global controller, so that the global controller controls the global computing path to pause, and waits for all the global first routing packets of the current time beat to be transmitted to the corresponding destination address, and then restarts the global computing path, thereby effectively improving the problem that the event issued by the processing core at the current time beat cannot be responded to and processed in time at the current time beat due to the routing delay problem in an event-driven manner.
[0071] Figure 4 A flow chart of another routing transmission method provided by an embodiment of the present invention is as follows: Figure 4 As shown, in some embodiments, the routing transmission method further includes step S41.
[0072] Step S41: In response to receiving a second routing packet for a current processing core corresponding to a current routing node, the second routing packet is sent to the current processing core.
[0073] The second routing packet refers to a routing packet received within the current time frame and having a destination address that is the address of the current routing node. The second routing packet may include but is not limited to: an axon event corresponding to at least one axon identifier, each axon event including a corresponding axon identifier.
[0074] In some embodiments, the second routing packet may further include a correspondence between an axon identifier and a neuron identifier and a synaptic weight corresponding to each axon event. In some embodiments, the current processing core may also pre-store a correspondence between each axon identifier, a neuron identifier and a synaptic weight.
[0075] In some embodiments, after acquiring the axon event of the second routing packet, the current processing core processes the axon event in an event-driven manner. Specifically, in response to receiving the axon event of the second routing packet, the current processing core determines the neuron corresponding to each axon event according to the corresponding relationship between the corresponding axon identifier, the neuron identifier, and the weight, and performs a membrane potential integration operation process on the neuron corresponding to each axon event according to the corresponding weight to update the current membrane potential of the neuron.
[0076] Among them, the membrane potential integral calculation process may include: weighting and summing the corresponding weights to obtain the integral potential of the corresponding neuron. After the membrane potential integral calculation process is performed, it also includes: a firing calculation process. The firing calculation process may include: adding the integral potential of the neuron to the corresponding historical membrane potential to update the membrane potential of the neuron, and when the updated membrane potential exceeds the preset membrane potential threshold, it is determined that the neuron fires a pulse and generates a corresponding axon event, which is transmitted through the corresponding routing node, otherwise it is determined that the neuron does not fire a pulse.
[0077] In some embodiments, each neuron of the current processing core has a refractory period, which is greater than or equal to the global routing transmission delay threshold, which can ensure that the time interval between two neuron firings is long enough, thereby effectively solving the problem caused by routing delay. Among them, the routing transmission delay threshold refers to the current longest routing delay in the global system, that is, the longest time for the routing packet to be transmitted from the source address to the destination address.
[0078] The refractory period refers to the period of time after a neuron is stimulated by a pulse and reacts (emitted), during which it will not react even if it receives another pulse stimulus. This period is generally called the refractory period of the neuron.
[0079] In some embodiments, after the neuron fires an axon event, the current processing core adjusts the refractory period time corresponding to the neuron to a time greater than or equal to the global routing transmission delay threshold. By adjusting the current refractory period time of the neuron to a time greater than or equal to the routing transmission delay threshold, the time difference between the current firing event of the neuron and the next firing event time (i.e., the refractory period time) can be as equal to or greater than the global longest routing delay as possible, thereby effectively reducing the difference in the time of processing each routing packet within the current time beat, thereby effectively improving the problem that the event fired by the processing core at the current time beat cannot be responded to and processed in time at the current time beat due to the routing delay problem in an event-driven manner.
[0080] Figure 5 A flow chart of another routing transmission method provided by an embodiment of the present invention is as follows: Figure 5 As shown, in some embodiments, before sending the second routing packet to the current processing core, that is, before step S41, the routing transmission method further includes: steps S51 to S52.
[0081] Step S51: Cache the second routing packet into the routing buffer of the current routing node.
[0082] The second routing packet also carries an initial sending time, and the initial sending time refers to the time when the second routing packet is sent from the routing node corresponding to the source address.
[0083] Step S52: Detect whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference.
[0084] In step S52, when the time difference between the current time and the initial sending time of the second routing packet is less than the target time difference, the process returns to the step of detecting whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference, i.e., returns to step S52 to wait for the time difference between the current time and the initial sending time of the second routing packet to be equal to the target time difference.
[0085] When the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference, step S41 is performed to send the second routing packet to the current processing core so that the current processing core processes the axon event in the second routing packet.
[0086] According to the technical solution of the routing transmission method provided by the embodiment of the present disclosure, a target time difference is set for each second routing packet, and the target time difference is the default transmission time length of the second routing packet from the routing node corresponding to the source address to the routing node corresponding to the destination address. When the time difference between the time when the second routing packet arrives at the routing node corresponding to the destination address (i.e., the current time) and the initial sending time is less than the target time difference, the second routing packet is not processed immediately, and the second routing packet is processed after the time difference reaches the target time difference. In this way, in an event-driven working mode, for a second routing packet that arrives at the destination address earlier in the current time beat, other second routing packets that have not been delivered in time due to routing delays in the current time beat can be processed together after being delivered to the corresponding destination address, so as to reduce the difference in processing time of each second routing packet in the current time beat, thereby effectively improving the problem that the event issued by the processing core in the current time beat cannot be responded to and processed in time in the current time beat due to routing delay problems in an event-driven mode.
[0087] In some embodiments, the target time difference may be the above-mentioned routing transmission delay threshold.
[0088] In some embodiments, before obtaining the first routing packet to be transmitted, that is, before step S11, the routing transmission method also includes: receiving a routing packet, which is a routing packet transmitted by other routing nodes or the current processing core; when the destination address corresponding to the routing packet is not the address of the current routing node, using the routing packet as the first routing packet and caching it in the routing buffer of the current routing node; when the destination address corresponding to the routing packet is the address of the current routing node, using the routing packet as the second routing packet and caching it in the routing buffer of the current routing node.
[0089] It should be noted that in the embodiments of the present disclosure, the source address of the routing packet refers to the address corresponding to the starting sender of the routing packet (the starting routing node), and the destination address of the routing packet refers to the address corresponding to the destination receiver of the routing packet (the destination routing node). The address corresponding to the routing node can be an IP address, a physical address, etc.
[0090] Figure 6 A flow chart of a routing control method based on a many-core system provided in an embodiment of the present disclosure, wherein the many-core system includes a neuromorphic chip based on a many-core architecture, wherein the neuromorphic chip includes multiple processing cores and a network on chip (NOC), wherein the network on chip includes multiple routing nodes, wherein the routing nodes are connected to the processing cores in a one-to-one correspondence, and each routing node performs routing transmission using the routing transmission method provided in any of the above embodiments. The routing control method can be implemented based on a global controller, and the routing control method includes: steps S61 to S64.
[0091] Step S61: In the current time frame, obtain the working status of the routing node corresponding to each processing core.
[0092] Each processing core is used to cache a second routing packet received in a current time frame, where the second routing packet includes at least one axon event.
[0093] As an example, when each processing core receives an axon event at the current time, the global controller can obtain the working status of each routing node in real time.
[0094] Step S62: Detect whether the working status of each routing node is in an idle state.
[0095] It should be noted that the working state of the routing node is in an idle state, which means that the routing node currently has no routing packets to transmit, that is, the routing node is currently in a standby idle state; the working state of the routing node is in a non-idle state, which means that the routing node currently has routing packets to be transmitted.
[0096] In step S62, it is detected whether the working status of each routing node is in an idle state, which can also be understood as detecting whether there are any routing packets that have not been completely transmitted in the on-chip network.
[0097] In step S62, if there is at least one routing node in a non-idle state, the process returns to the step of obtaining the working state of the routing nodes corresponding to each processing core, that is, returns to step S61 to wait for all routing transmissions of the current time to be completed. If the working state of each routing node is in an idle state, step S63 is executed.
[0098] Step S63: Control each processing core to process the axon events received within the current time beat of the cache.
[0099] Step S64 , in response to each processing core completing the processing of the axon event received in the cached current time beat, the current time beat is switched to the next time beat.
[0100] Switch the current time beat to the next time beat, that is, enter the calculation and routing of the next time beat, and continue the calculation and routing with the next time beat as the current time beat.
[0101] According to the technical solution of the routing control method provided in the embodiment of the present disclosure, each processing core does not process the axon event of the current time beat immediately after receiving it, but waits for all routes of the on-chip network to be transmitted and all routing nodes to be idle. When the global controller monitors that all routing nodes are idle, it controls each processing core to process the axon event of the current time beat, and enters the next time beat after each processing core completes processing the axon event of the current time beat, thereby effectively improving the problem that the event issued by the processing core in the current time beat cannot be responded to and processed in time in the current time beat due to routing delay problems in an event-driven manner.
[0102] Figure 7 A flow chart of another routing control method provided by an embodiment of the present disclosure is shown as follows: Figure 7 As shown, in some embodiments, when there is at least one routing node whose working state is in a non-idle state, the routing control method further includes: step S71 to step S72.
[0103] Step S71: Receive alarm information sent by at least one routing node.
[0104] The alarm information is information sent by any routing node when it detects that the current remaining transmission time of the first routing packet to be transmitted in its own cache is less than or equal to the time threshold, and the first routing packet includes at least one axon event.
[0105] Step S72: according to the alarm information of any routing node, suspend the global computing path until all the first routing packets to be transmitted are transmitted and all routing nodes are in an idle state.
[0106] The global controller monitors the alarm information of each global routing node. When receiving the alarm information of any routing node, it indicates that the current remaining transmission time of the first routing packet is less than or equal to the time threshold, that is, the first routing packet cannot be delivered to the destination address on time. At this time, the computing path of the global processing core is controlled to be paused to wait for routing transmission until all the first routing packets in the current global have been transmitted to the routing nodes corresponding to the corresponding destination addresses, that is, no alarm information sent by any routing node is received within the current time, and then the global computing path is restarted.
[0107] According to the technical solution of the routing control method provided by the embodiment of the present disclosure, when the alarm information of any routing node is monitored, the global computing path is controlled to be paused to wait for all the first routing packets of the global current time beat to be transmitted to the corresponding destination address, and then the global computing path is restarted, thereby effectively improving the problem that the events issued by the processing core at the current time beat cannot be responded to and processed in time at the current time beat due to routing delay problems in an event-driven manner.
[0108] Figure 8 A flowchart of an event processing method based on a processing core provided in an embodiment of the present disclosure is provided. The processing core includes a corresponding event buffer. The routing node corresponding to the processing core uses the routing transmission method provided in any of the above embodiments for routing transmission. The event processing method is implemented based on the processing core and includes steps S81 to S84.
[0109] Step S81: Receive a second routing packet sent by the current routing node, where the second routing packet includes at least one axon event.
[0110] Step S82: Cache the second routing packet into the corresponding event buffer.
[0111] Among them, the second routing packet also carries an initial sending time, and the initial sending time refers to the time when the second routing packet is sent from the routing node corresponding to the source address.
[0112] Step S83: Detect whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference.
[0113] In step S83, when the time difference between the current time and the initial sending time of the second routing packet is less than the target time difference, the process returns to the step of detecting whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference, i.e., returns to step S83 to wait for the time difference between the current time and the initial sending time of the second routing packet to be equal to the target time difference.
[0114] When the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference, step S84 is performed.
[0115] Step S84: Process the axon event in the second routing packet.
[0116] Among them, the axon event includes an axon identifier, and the axon event in the second routing package is processed, including: based on the axon event, according to the correspondence between the axon identifier, the neuron identifier and the weight, determining the neuron corresponding to the axon event; and updating the current membrane potential of the neuron corresponding to each axon event according to the corresponding weight.
[0117] In some embodiments, after processing the axon events in the second routing packet, the event processing method also includes: generating a first routing packet to be transmitted in response to the axon events emitted by neurons of the current processing core when the current membrane potential reaches a membrane potential threshold; and sending the first routing packet to be transmitted to the routing buffer of the corresponding routing node.
[0118] According to the technical solution of the event processing method provided by the embodiment of the present disclosure, each second routing packet has a target time difference, and the target time difference is the default transmission time length of the second routing packet from the routing node corresponding to the source address to the routing node corresponding to the destination address. When the time difference between the time when the second routing packet arrives at the routing node corresponding to the destination address (i.e., the current time) and the initial sending time is less than the target time difference, the second routing packet is not processed immediately, and the second routing packet is processed after the time difference reaches the target time difference. In this way, in an event-driven working mode, for a second routing packet that arrives at the destination address earlier in the current time beat, other second routing packets that have not been delivered in time due to routing delays in the current time beat can be processed together after being delivered to the corresponding destination address, so as to reduce the difference in processing time of each second routing packet in the current time beat, thereby effectively improving the problem that the event issued by the processing core in the current time beat cannot be responded to and processed in time in the current time beat due to routing delay problems in an event-driven mode.
[0119] Fig. 9 A block diagram of a routing transmission device provided in an embodiment of the present disclosure, such as Fig. 9 As shown, the embodiment of the present disclosure provides a route transmission device 90 , which includes a first acquisition module 91 , a priority determination module 92 and a transmission module 93 .
[0120] The first acquisition module 91 is used to acquire a first routing packet to be transmitted, the first routing packet includes current transmission parameters, and the current transmission parameters include a current transmission distance and / or a current remaining transmission time.
[0121] The priority determination module 92 is used to determine the transmission priority of each first routing packet according to the current transmission parameters of each first routing packet.
[0122] The transmission module 93 is used to transmit each first routing packet in sequence according to the transmission priority of each first routing packet.
[0123] In some embodiments, the first acquisition module 91 is used to acquire the first routing packet to be transmitted from the routing buffer of the current routing node, wherein the destination address corresponding to the first routing packet is the address of another routing node.
[0124] In some embodiments, the first routing packet to be transmitted includes: a routing packet transmitted to the current routing node via other routing nodes and the current routing node is not the routing node corresponding to the destination address, and a routing packet that the current processing core corresponding to the current routing node needs to transmit to other routing nodes.
[0125] In some embodiments, the current transmission parameter includes the current remaining transmission time, and the routing transmission device 90 further includes a second detection module and an alarm module, wherein the second detection module is used to detect whether the current remaining transmission time of each first routing packet is less than or equal to the time threshold, and the alarm module is used to send an alarm message to the global controller when the first detection module detects that the current remaining transmission time of at least one first routing packet is less than or equal to the time threshold. The global controller is used to suspend the global computing path in response to the alarm message until all first routing packets have been transmitted to the corresponding destination address.
[0126] In some embodiments, the routing transmission device 90 further includes a second cache module. The second cache module is used to send the second routing packet to the current processing core in response to receiving a second routing packet for the current processing core corresponding to the current routing node, and the second routing packet includes one or more axon events; wherein the second routing packet includes at least one axon event, each axon event includes a corresponding axon identifier, and the current processing core is used to determine the neuron corresponding to the axon event based on the axon event, according to the correspondence between the axon identifier, the neuron identifier and the weight, and update the current membrane potential of the neuron corresponding to each axon event according to the corresponding weight.
[0127] In some embodiments, the routing transmission device 90 further includes a third detection module. The second cache module is further used to cache the second routing packet to the routing buffer of the current routing node before sending the second routing packet to the current processing core; the third detection module is used to detect whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference, and when the time difference between the current time and the initial sending time of the second routing packet is less than the target time difference, return to the step of detecting whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference; the second cache module is used to send the second routing packet to the current processing core when the third detection module detects that the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference, so that the current processing core processes the axon event in the second routing packet.
[0128] In some embodiments, the routing transmission device 90 further includes a second receiving module. The second receiving module is used to receive a routing packet; the second cache module is also used to, when the destination address corresponding to the routing packet is not the address of the current routing node, use the routing packet as the first routing packet and cache it in the routing buffer of the current routing node; when the destination address corresponding to the routing packet is the address of the current routing node, use the routing packet as the second routing packet and cache it in the routing buffer of the current routing node.
[0129] In the routing transmission device 90 provided in the embodiment of the present disclosure, each module can be used to implement the routing transmission method provided in any of the above embodiments. For specific related descriptions, please refer to the specific description of the routing transmission method in the above embodiments, which will not be repeated here.
[0130] Fig.10 A block diagram of a routing control device provided by an embodiment of the present disclosure, such as Fig.10 As shown, an embodiment of the present disclosure provides a routing control device 100, which is used in a many-core system. The many-core system includes multiple processing cores and routing nodes corresponding to each processing core. Each routing node uses the routing transmission method provided in any of the above embodiments to perform routing transmission. The routing control device 100 includes: a second acquisition module 101, a monitoring module 102, and a first control module 103.
[0131] Among them, the second acquisition module 101 is used to obtain the working status of the routing node corresponding to each processing core in the current time beat; each processing core is used to cache the second routing packet received in the current time beat, and the second routing packet includes at least one axon event.
[0132] The monitoring module 102 is used to monitor the working status of each routing node; when there is at least one routing node whose working status is in a non-idle state, the second acquisition module is triggered to acquire the working status of the routing node corresponding to each processing core.
[0133] The first control module 103 is used to control each processing core to process the axon event received within the current time beat of the cache when the monitoring module 102 monitors that the working status of each routing node is an idle state.
[0134] In some embodiments, the routing control device 100 further includes a synchronous switching module, which is used to switch the current time beat to the next time beat in response to each processing core completing the processing of the axon event received within the cached current time beat.
[0135] In some embodiments, the routing control device 100 further includes a third receiving module and a second control module. The third receiving module is used to receive an alarm message sent by at least one routing node, the alarm message being information sent by the routing node when it detects that the current remaining transmission time of the first routing packet to be transmitted in its own cache is less than or equal to the time threshold, and the first routing packet includes at least one axon event; the second control module is used to suspend the global computing path according to the alarm message until all the first routing packets to be transmitted are transmitted and all routing nodes are in an idle state.
[0136] In the routing control device 100 provided in the embodiment of the present disclosure, each module can be used to implement the routing control method provided in any of the above embodiments. For specific related descriptions, please refer to the specific description of the routing control method in the above embodiments, which will not be repeated here.
[0137] Fig.11 A block diagram of an event processing device provided by an embodiment of the present disclosure, such as Fig.11 As shown, an embodiment of the present disclosure provides an event processing device 110, which is applied to a processing core, and the processing core includes a corresponding event buffer. The routing node corresponding to the processing core adopts the routing transmission method provided by any of the above embodiments to perform routing transmission. The event processing device 110 includes: a first receiving module 111, a first cache module 112, a first detection module 113 and an event processing module 114.
[0138] Among them, the first receiving module 111 is used to receive the second routing packet sent by the current routing node, and the second routing packet includes at least one axon event; the first cache module 112 is used to cache the second routing packet to the corresponding event buffer; the first detection module 113 is used to detect whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference; the event processing module 114 is used to process the axon event in the second routing packet when the first detection module 113 detects that the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference.
[0139] In some embodiments, the event processing device 110 also includes a generation module, which is used to generate a first routing packet to be transmitted in response to an axon event emitted by a neuron of the current processing core when the current membrane potential reaches a membrane potential threshold, and send the first routing packet to be transmitted to the routing buffer of the corresponding routing node.
[0140] In the event processing device 110 provided in the embodiment of the present disclosure, each module can be used to implement the event processing method provided in any of the above embodiments. For specific related descriptions, please refer to the specific description of the event processing method in the above embodiments, which will not be repeated here.
[0141] An embodiment of the present disclosure further provides a routing node, which includes the routing transmission device provided by any of the above embodiments.
[0142] An embodiment of the present disclosure further provides a global controller, which includes the routing control device provided by any of the above embodiments.
[0143] The embodiment of the present disclosure also provides a processing core, which includes the event processing device provided by any of the above embodiments.
[0144] The disclosed embodiments further provide a many-core system, which includes multiple processing cores and an on-chip network. The on-chip network includes multiple routing nodes, and the routing nodes are connected to the processing cores in a one-to-one correspondence. At least some of the routing nodes use the routing nodes provided by the above embodiments.
[0145] In some embodiments, the many-core system further includes a global controller, which uses the global controller provided by the above embodiments.
[0146] In some embodiments, at least part of the processing cores adopt the processing cores provided by the above embodiments.
[0147] Fig.12 A block diagram of a composition of an electronic device provided in an embodiment of the present disclosure.
[0148] Reference Fig.12An embodiment of the present disclosure provides an electronic device, the electronic device 120 comprising: at least one processor 121; and a memory 122 communicatively connected to the at least one processor 121; wherein the memory 122 stores one or more computer programs executable by the at least one processor 121, and the one or more computer programs are executed by the at least one processor 121 so that the at least one processor 121 can execute the routing transmission method provided in any of the above embodiments, or the routing control method provided in any of the above embodiments, or the event processing method provided in any of the above embodiments.
[0149] In addition, an embodiment of the present disclosure also provides a computer-readable medium on which a computer program is stored, wherein the computer program, when executed by a processing core, implements the routing transmission method provided by any of the above embodiments, or the routing control method provided by any of the above embodiments, or the event processing method provided by any of the above embodiments.
[0150] The embodiments of the present disclosure also provide a computer program product, which includes a computer program. When the computer program is executed by a processor, it implements the routing transmission method provided by any of the above embodiments, or the routing control method provided by any of the above embodiments, or the event processing method provided by any of the above embodiments.
[0151] It will be appreciated by those skilled in the art that all or some of the steps, systems, and functional modules / units in the methods disclosed above may be implemented as software, firmware, hardware, and appropriate combinations thereof. In hardware implementations, the division between the functional modules / units mentioned in the above description does not necessarily correspond to the division of physical components; for example, a physical component may have multiple functions, or a function or step may be performed by several physical components in cooperation. Some or all physical components may be implemented as software executed by a processor, such as a central processing unit, a digital signal processor, or a microprocessor, or implemented as hardware, or implemented as an integrated circuit, such as an application-specific integrated circuit. Such software may be distributed on a computer-readable medium, which may include a computer storage medium (or non-transitory medium) and a communication medium (or temporary medium). As known to those skilled in the art, the term computer storage medium includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules, or other data). Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tapes, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and can be accessed by a computer. In addition, it is well known to those of ordinary skill in the art that communication media typically contain computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media.
[0152] Example embodiments have been disclosed herein, and although specific terms are employed, they are used and should be interpreted only in a general illustrative sense and not for limiting purposes. In some instances, it will be apparent to those skilled in the art that, unless otherwise expressly noted, features, characteristics, and / or elements described in conjunction with a particular embodiment may be used alone or in combination with features, characteristics, and / or elements described in conjunction with other embodiments. Therefore, those skilled in the art will appreciate that various changes in form and detail may be made without departing from the scope of the present disclosure as set forth in the appended claims.
Claims
1. A routing transmission method, applied to any routing node in a neuromorphic chip based on a many-core architecture, wherein the neuromorphic chip includes a plurality of processing cores and an on-chip network, wherein the on-chip network includes a plurality of routing nodes, and the routing nodes are connected to the processing cores in a one-to-one correspondence, wherein the routing transmission method comprises: Acquire a first routing packet to be transmitted, the first routing packet including current transmission parameters, the current transmission parameters including current transmission distance and / or current remaining transmission time; Determining a transmission priority of each of the first routing packets according to the current transmission parameters of each of the first routing packets; Transmitting each of the first routing packets in sequence according to the transmission priority of each of the first routing packets; The routing transmission method further comprises: In response to receiving a second routing packet for a current processing core corresponding to a current routing node, caching the second routing packet into a routing buffer corresponding to the current routing node; Detecting whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to a target time difference, where the target time difference is the transmission time of the second routing packet from the routing node corresponding to the source address to the routing node corresponding to the destination address; When the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference, the second routing packet is sent to the current processing core so that the current processing core processes the axon event in the second routing packet, wherein each neuron of the current processing core has a refractory period, and the refractory period is greater than or equal to a global routing transmission delay threshold, and the routing transmission delay threshold is the current longest routing delay in the global system.
2. The routing transmission method according to claim 1, wherein the first routing packet further comprises at least one axon event, wherein the axon event is an event transmitted from a processing core corresponding to a source address of the first routing packet to a processing core corresponding to a destination address.
3. The routing transmission method according to claim 1, wherein the obtaining the first routing packet to be transmitted comprises: Acquire the first routing packet to be transmitted from the routing buffer of the current routing node; The destination address corresponding to the first routing packet is the address of another routing node.
4. The routing transmission method according to claim 3, wherein the first routing packet to be transmitted comprises: Routing packets transmitted to the current routing node via other routing nodes and the current routing node is not the routing node corresponding to the destination address, and routing packets that the current processing core corresponding to the current routing node needs to transmit to other routing nodes.
5. The routing transmission method according to claim 1, wherein the current transmission parameter includes the current remaining transmission time; After obtaining the first routing packet to be transmitted, the method further includes: When it is detected that the current remaining transmission time of at least one of the first routing packets is less than or equal to the time threshold, sending an alarm message to the global controller; The global controller is used to suspend the global computing path in response to the alarm information until all the first routing packets have been transmitted to the corresponding destination addresses.
6. The routing transmission method according to claim 1, wherein: The second routing package includes at least one axon event, each of which includes a corresponding axon identifier. The current processing core is used to determine the neuron corresponding to the axon event based on the axon event and the correspondence between the axon identifier, the neuron identifier and the weight, and update the current membrane potential of the neuron corresponding to each axon event according to the corresponding weight.
7. The routing transmission method according to claim 6, wherein the current processing core adjusts the refractory period time corresponding to the neuron to a time greater than or equal to a global routing transmission delay threshold after the neuron fires an axon event.
8. The routing transmission method according to claim 6, wherein before sending the second routing packet to the current processing core, the routing transmission method further comprises: When the time difference between the current time and the initial sending time of the second routing packet is less than the target time difference, return to the step of detecting whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference.
9. The routing transmission method according to claim 1, wherein before obtaining the first routing packet to be transmitted, it also includes: Receive routing packets; In the case where the destination address corresponding to the routing packet is not the address of the current routing node, the routing packet is used as the first routing packet and cached in the routing buffer of the current routing node.
10. The routing transmission method according to claim 1, wherein the current transmission parameter includes a current transmission distance; The longer the current transmission distance is, the higher the transmission priority is.
11. The routing transmission method according to claim 1, wherein the current transmission parameter includes the current remaining transmission time; The shorter the current remaining transmission time is, the higher the transmission priority is.
12. The routing transmission method according to claim 1, wherein the current transmission parameters include a current transmission distance and a current remaining transmission time; The larger the ratio of the current transmission distance to the current remaining transmission time is, the higher the transmission priority is.
13. A routing control method based on a many-core system, the many-core system comprising a plurality of processing cores and a routing node correspondingly connected to each of the processing cores, each of the routing nodes performing routing transmission using the routing transmission method according to any one of claims 1 to 12, the routing control method comprising: In the current time, obtaining the working status of the routing nodes corresponding to each of the processing cores; Each of the processing cores is used to cache a second routing packet received in a current time beat, wherein the second routing packet includes at least one axon event; In the case that the working state of at least one of the routing nodes is in a non-idle state, returning to the step of obtaining the working state of the routing nodes corresponding to each of the processing cores; When the working states of the routing nodes are all in the idle state, the processing cores are controlled to process the axon events received within the current time beat of the cache.
14. The routing control method according to claim 13, wherein after controlling each of the processing cores to process the axon event within a current time beat of the cache, the event processing method further comprises: In response to each of the processing cores completing the processing of the axon event received in the cached current time beat, the current time beat is switched to the next time beat.
15. The routing control method according to claim 13, wherein when there is at least one routing node whose working state is in a non-idle state, the routing control method further comprises: receiving an alarm message sent by at least one of the routing nodes, wherein the alarm message is information sent by the routing node when detecting that the current remaining transmission time of a first routing packet to be transmitted in its own cache is less than or equal to a time threshold, wherein the first routing packet includes at least one axon event; According to the alarm information, the global computing path is suspended until all the first routing packets to be transmitted are transmitted and all routing nodes are in an idle state.
16. An event processing method based on a processing core, the processing core comprising a corresponding event buffer, the routing node corresponding to the processing core adopts the routing transmission method according to any one of claims 1 to 12 for routing transmission, the event processing method comprising: receiving a second routing packet sent by the current routing node, wherein the second routing packet includes at least one axon event; Cache the second routing packet into the corresponding event buffer; Detecting whether a time difference between the current time and the initial sending time of the second routing packet is greater than or equal to a target time difference; When the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference, the axon event in the second routing packet is processed.
17. The event processing method according to claim 16, wherein when the time difference between the current time and the initial sending time of the second routing packet is less than the target time difference, the step of detecting whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference is returned.
18. The event processing method according to claim 16 or 17, wherein: The axon event includes an axon identifier, and the processing of the axon event in the second routing packet includes: Based on the axon event, determining the neuron corresponding to the axon event according to the correspondence between the axon identifier, the neuron identifier and the weight; The current membrane potential of the neuron corresponding to each axon event is updated according to the corresponding weight.
19. The event processing method according to claim 18, wherein after processing the axon event in the second routing packet, the event processing method further comprises: In response to an axon event emitted by a neuron of a current processing core when a current membrane potential reaches a membrane potential threshold, generating a first routing packet to be transmitted; The first routing packet to be transmitted is sent to the routing buffer of the corresponding routing node.
20. A routing transmission device, applied to any routing node in a neuromorphic chip based on a many-core architecture, wherein the neuromorphic chip includes a plurality of processing cores and an on-chip network, wherein the on-chip network includes a plurality of routing nodes, and the routing nodes are connected to the processing cores in a one-to-one correspondence, wherein the routing transmission device includes: A first acquisition module, used to acquire a first routing packet to be transmitted, wherein the first routing packet includes current transmission parameters, and the current transmission parameters include a current transmission distance and / or a current remaining transmission time; a priority determination module, configured to determine the transmission priority of each of the first routing packets according to the current transmission parameters of each of the first routing packets; A transmission module, configured to transmit each of the first routing packets in sequence according to the transmission priority of each of the first routing packets; The routing transmission device further comprises: A second cache module, configured to cache the second routing packet to a routing buffer corresponding to the current routing node in response to receiving a second routing packet for a current processing core corresponding to the current routing node; A third detection module is used to detect whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to a target time difference, where the target time difference is the transmission time of the second routing packet from the routing node corresponding to the source address to the routing node corresponding to the destination address; A second cache module is used to send the second routing packet to the current processing core when the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference, so that the current processing core processes the axon event in the second routing packet, wherein each neuron of the current processing core has a refractory period, and the refractory period is greater than or equal to the global routing transmission delay threshold, and the routing transmission delay threshold is the current longest routing delay in the global system.
21. A routing control device for a many-core system, the many-core system comprising a plurality of processing cores and a routing node correspondingly connected to each of the processing cores, each of the routing nodes performing routing transmission using the routing transmission method according to any one of claims 1 to 12, the routing control device comprising: A second acquisition module is used to acquire the working status of the routing node corresponding to each processing core in the current time beat; Each of the processing cores is used to cache a second routing packet received in a current time beat, wherein the second routing packet includes at least one axon event; A monitoring module, configured to monitor the working state of each of the routing nodes; when the working state of at least one of the routing nodes is in a non-idle state, trigger the second acquisition module to acquire the working state of the routing nodes corresponding to each of the processing cores; The first control module is used to control each processing core to process the axon event received within the current time beat of the cache when the monitoring module monitors that the working status of each routing node is an idle state.
22. An event processing device, applied to a processing core, the processing core comprising a corresponding event buffer, the routing node corresponding to the processing core adopts the routing transmission method according to any one of claims 1 to 12 for routing transmission, the event processing device comprising: A first receiving module, configured to receive a second routing packet sent by a current routing node, wherein the second routing packet includes at least one axon event; A first cache module, configured to cache the second routing packet into the corresponding event buffer; A first detection module, used to detect whether the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference; The event processing module is used to process the axon event in the second routing packet when the first detection module detects that the time difference between the current time and the initial sending time of the second routing packet is greater than or equal to the target time difference.
23. An electronic device, comprising: at least one processor; as well as a memory communicatively connected to the at least one processor; wherein, The memory stores one or more computer programs that can be executed by the at least one processor, and one or more of the computer programs are executed by the at least one processor so that the at least one processor can execute the routing transmission method described in any one of claims 1-12, or the routing control method described in any one of claims 13-15, or the event processing method described in any one of claims 16-19.
24. A computer readable medium having a computer program stored thereon, wherein: When the computer program is executed by the processing core, it implements the routing transmission method according to any one of claims 1 to 12, or the routing control method according to any one of claims 13 to 15, or the event processing method according to any one of claims 16 to 19.
Citation Information
Patent Citations
High-throughput, low-delay and high-capacity Flume channel and transmission method thereof
CN111966736A
Data processing method based on pulse neural network, computing nuclear circuit and chip
CN113537449A