A global variable management method
By introducing a global variable network into a heterogeneous multi-core processor system, the problems of high complexity of task allocation and difficult programming are solved, efficient storage and call of global variables are realized, the flexibility and functionality of the system are improved, and data sharing and transmission between tasks are simplified.
Patent Information
- Application Number
- CN202410802604.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-06-20
- Publication Date
- 2025-09-02
- Estimated Expiration
- 2044-06-20
AI Technical Summary
In heterogeneous multi-core processor systems, it is difficult for the prior art to effectively manage global variables, resulting in high task allocation complexity, increased programming difficulty and low program execution efficiency, especially in task sharing configuration parameters and special operating modes.
The global variable network is introduced, and the existing three-layer on-chip network architecture is expanded to four layers. The efficient storage and call of global variables is realized through DSC. The global variable parameter table is used to manage state classes and parameter classes GVP, and the network, data network, state network and global variable network share the same set of network coordinates to achieve simplification of data sharing among tasks and improve data transmission efficiency.
It simplifies the complexity of data sharing among tasks, improves the efficiency of data transmission between different tasks or task chains, enhances the flexibility and functionality of the system, and supports the efficient operation of multi-abstract hierarchy programs.
Smart Images

Figure CN118796202B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of heterogeneous multi-core processors, and in particular to a method for managing global variables. Background Art
[0002] With the rapid development of computer technology and microelectronics technology, microprocessors with multiple computing cores, namely multi-core processors, have emerged. Multi-core processors are divided into homogeneous multi-core processors and heterogeneous multi-core processors. Among them, heterogeneous multi-core processors integrate multiple cores with different structures on a single chip. Therefore, heterogeneous multi-core processors can assign tasks to appropriate processing cores for processing based on task characteristics.
[0003] In a heterogeneous multi-core processor system, how to make full use of processor resources with different performance, what task allocation strategy to adopt to manage these resources, how to achieve automatic adjustment and load balancing of processor resources, and at the same time maintain the flexibility and plasticity of task allocation are key issues in resource scheduling and management in a heterogeneous multi-core environment. This will be of great significance to fully utilizing processor resources and giving full play to the characteristics of a heterogeneous multi-core processor system.
[0004] As heterogeneous multi-core systems run higher levels of abstraction and more complex programs, situations will arise where the same configuration parameters are shared by multiple tasks, or where a single parameter affects the program's execution mode. In the first case, existing dynamic schedulers require multiple configurations for the corresponding PEs, increasing the scheduling and communication burden. In the second case, existing solutions lack effective processing mechanisms, requiring programmers to write multiple versions of programs for different execution modes, increasing programming difficulty while reducing program execution efficiency and convenience. Summary of the Invention
[0005] The purpose of the present invention is to explore how to achieve efficient storage and call of global variables in the network through DSC in heterogeneous multi-core systems in terms of simplifying the complexity of data sharing between tasks and improving the efficiency of data transmission between different tasks or task chains, so as to improve the flexibility and functionality of the system.
[0006] The technical solution of the present invention is to provide a global variable management method, which includes: building a heterogeneous multi-core system with a main controller, a DSC, multiple routing nodes, multiple functional nodes and multiple PEs, wherein the routing nodes are interconnected to form a grid network, the main controller and the DSC are simultaneously connected to a routing node, the main controller and the DSC are in communication connection, and the functional nodes and the PEs are connected to specific routing nodes;
[0007] The heterogeneous multi-core system has four layers of on-chip networks to establish on-chip communication. The on-chip networks include a configuration network, a data network, a status network, and a global variable network. The on-chip network is responsible for transmitting signals between the main controller, DSC, and each routing node, functional node, and PE. The four layers of on-chip networks share the same set of network coordinates.
[0008] The configuration network is responsible for transmitting control instructions and configuration data issued by the main controller to each routing node during system initialization; the status network transmits information from each routing node back to the main controller; the data network transmits calculation parameters in tasks between the main controller and each routing node; the global variable network transmits some parameters shared by multiple tasks as global variables GVP between the DSC and each routing node. GVP is stored in the register group of the DSC as part of the global variable parameter table;
[0009] GVPs are divided into status GVPs and parameter GVPs. The output segment value of the status GVP is configured by the DSC. Each time the status GVP is called, the value of its output segment decreases by 1. When the GVP value decreases to 0, it indicates that the GVP is invalid and all T_currs that require this parameter have been executed. The output segment value of the parameter GVP is fixed at 1. After all programs associated with this parameter GVP are completed, the DSC changes the output segment value of the parameter GVP to 0, indicating that the parameter GVP is invalid.
[0010] The global variable network includes a downstream channel for controlling global variables and an upstream channel for transmitting and updating global variables. The downstream channel supports fixed-point transmission, row broadcast, column broadcast, and network-wide broadcast. The upstream channel has a queue-jumping mechanism to optimize data flow.
[0011] In any of the above technical solutions, further, the status class GVP is divided into a status class GVP indicating the number of cycles and a status class GVP indicating the processing status, wherein the status class GVP indicating the processing status allows the main controller, DSC and on-chip nodes to modify it, and the status class GVP indicating the number of cycles and the parameter class GVP only allow the main controller and DSC to modify it;
[0012] For loop tasks, a global variable network is introduced and the loop count is stored in the global variable parameter table as a state class GVP indicating the loop count. When the upper-level system constructs the loop task, it only needs to build a loop unit. After each loop is completed, the DSC decrements the value of the corresponding GVP output segment by 1 until the value reaches 0, indicating the end of the loop. The updated parameters are passed in the loop as the parameter class GVP for real-time update.
[0013] For tasks that need to run multiple versions of data, a global variable network is introduced and all required version data are stored in the global variable parameter table as a state class GVP indicating the processing status. During the task calculation process, the multiple versions of data can be directly called through the global variable network. When the task calculation is completed, DSC sets the value of the corresponding GVP output segment to 0 to make it invalid.
[0014] In any of the above technical solutions, further, the fixed-point transmission step of the downlink channel includes: after the global variable information (GVP, x, y) is sent from the global variable parameter table, it is first passed to the right along row 0. If the x coordinate in the global variable information matches the current routing coordinate, the x coordinate in the global variable information is removed and passed downward, otherwise it continues to be passed to the right; when the y coordinate in the global variable information passed downward matches the y coordinate of the routing node, the GVP will be passed to the node, otherwise it continues to be passed downward until it reaches the destination node; after arriving at the destination node, the GVP is sent to the PE connected to the node and configured.
[0015] In any of the above technical solutions, further, the steps of row broadcast, column broadcast and network-wide broadcast of the downlink channel include: if the x-coordinate or y-coordinate value in the global variable information is 0xffff, the row or column broadcast of the downlink channel is triggered, and the PEs of the corresponding row or column will all receive the GVP; if the x-coordinate and y-coordinate value in the global variable information are both 0xffff, the downlink channel will perform network-wide broadcast, and all PEs in the system will receive the GVP.
[0016] In any of the above technical solutions, further, when the PE of a certain node needs to update the GVP, it is necessary to transfer the updated GVP to the global variable parameter table through the uplink channel of the global variable network. The operation steps of the uplink channel include: the updated GVP is sent by the corresponding PE, and the GVP first encapsulates the y coordinate of the node in the local on-chip network interface, then passes it upward to the node in the 0th row, and then encapsulates the x coordinate of the node in the 0th row, and finally turns left to the global variable parameter table and updates the corresponding content.
[0017] In any of the above technical solutions, further, the queue-jumping mechanism of the uplink channel includes: if two input GVPs do not arrive at the same node at the same time, the on-chip network interface will process and forward them in the order of arrival; if two input GVPs arrive at the same node at the same time, the input GVP with a higher priority will be processed first according to the preset priority of the built-in arbitrator.
[0018] In any of the above technical solutions, further, the register group is composed of three parts: a release identification register, a parameter identification register and a version register; the release identification register is used to indicate whether the GVP is invalid. When the value is set from 1 to 0, it means that the GVP is invalid and triggers the release mechanism, allowing the register group to receive a new group of GVPs; the parameter identification register is used to quickly locate the required GVP; the version register stores the version information of a certain GVP.
[0019] In any of the above technical solutions, further, before the GVP is stored in the register group, a deconstruction operation is required: first, after removing the reserved segment, the global variable parameter type and number are concatenated and stored in the parameter identification register, and then the global variable version number, parameter value and reference count are concatenated and sent to the version register; finally, the release identification register value is set from 0 to 1, completing the storage process of the GVP;
[0020] The reverse process of the above deconstruction operation is performed when reading the GVP from the register group.
[0021] In any of the above technical solutions, further, the specific architecture of the four-layer on-chip network is as follows:
[0022] The configuration network is a unidirectional downlink network with a comb-like structure. The configuration instruction consists of three parts: valid bit (cfg_valid), configuration coordinates (cfg_position), and configuration content (cfg_data). Each routing node receives the valid bit and configuration coordinates of the configuration instruction. The configuration content will only be received by the local node if the configuration coordinates are consistent with the local coordinates of the object to be configured on the routing node.
[0023] The status network is a unidirectional uplink network with a comb-like structure, used to transmit the current working status information of each system component. The current working status information includes the working status information of the functional units and the working status information of the PEs.
[0024] The data network adopts a 2DMesh topology. Each routing node has five directional ports that connect to the upper, lower, left, and right adjacent routing nodes and the local PE, respectively. It supports full-duplex transmission. The routing node determines the routing direction based on the XY routing algorithm, and configuration information is transmitted in the form of data fragments (flits).
[0025] The global variable network adopts a comb topology structure, and its 0th row routing node does not mount specific functional nodes to improve communication effects.
[0026] The beneficial effects of the present invention are:
[0027] This invention proposes the concept of a global variable network, expands the existing three-layer network architecture to a four-layer one, and introduces a global variable network and its management mechanism. Different permission controls are adopted for state-type GVPs and parameter-type GVPs, which simplifies the complexity of data sharing between tasks and improves the data transmission efficiency between different tasks or task chains.
[0028] DSC enables efficient storage and access of global variables within the network, addressing the incompatibility between the existing three-layer NoC architecture and global variable management. Filling the gap in existing task-level dynamic scheduling solutions, the introduction of global variables significantly enhances the system's support for programs at different abstraction levels, improving its flexibility and functionality. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] The advantages of the above and additional aspects of the present invention will become apparent and readily understood from the following description of the embodiments with reference to the accompanying drawings, in which:
[0030] Figure 1 is an overall schematic diagram of a method for managing global variables according to an embodiment of the present invention;
[0031] Figure 2 is a configuration network diagram of a global variable management method according to an embodiment of the present invention;
[0032] Figure 3 is a state network diagram of a method for managing global variables according to an embodiment of the present invention;
[0033] Figure 4 is a data network diagram of a global variable management method according to an embodiment of the present invention;
[0034] Figure 5 is a global variable network diagram of a global variable management method according to an embodiment of the present invention;
[0035] Figure 6 is a diagram showing a structure of a parameter table of global variables according to a method for managing global variables according to an embodiment of the present invention;
[0036] Figure 7 is a storage process diagram of a global variable according to a global variable management method of an embodiment of the present invention;
[0037] Figure 8 A transmission path diagram of a global variable in a downlink channel according to a global variable management method according to an embodiment of the present invention;
[0038] Figure 9 The figure is a transmission path diagram of global variables in an uplink channel according to a method for managing global variables in accordance with an embodiment of the present invention. DETAILED DESCRIPTION
[0039] In order to more clearly understand the above-mentioned objects, features and advantages of the present invention, the present invention is further described in detail below with reference to the accompanying drawings and specific embodiments. It should be noted that the embodiments of the present invention and the features therein can be combined with each other without conflict.
[0040] In the following description, many specific details are set forth to facilitate a full understanding of the present invention. However, the present invention may also be implemented in other ways different from those described herein. Therefore, the scope of protection of the present invention is not limited to the specific embodiments disclosed below.
[0041] This embodiment provides a method for managing a global variable network, the method comprising:
[0042] like Figure 1 As shown, a heterogeneous multi-core system with a main controller, DSC (Dynamic Scheduling Controller), routing nodes, functional nodes and PE (Process Element) is built. The routing nodes are connected to each other to form a grid network. The main controller is connected to a routing node, and the functional nodes and PE are connected to specific routing nodes. A four-layer network on chip (NoC) is built on the heterogeneous multi-core system to establish on-chip communication. The network on chip includes a configuration network (Cfg_Net), a data network (Data_Net), a state network (Stat_Net) and a global parameter network (Gp_Net). The global variable network is used to share global variables that are accessible and modifiable by all functional nodes in the heterogeneous multi-core system. A routing node on the global variable network is connected to the DSC, and the DSC is connected to the main controller for communication. The above four layers of network on chip share the same set of network coordinates (routing node coordinates).
[0043] like Figure 2 As shown in Figure 1, the configuration network is a unidirectional, comb-like downstream network responsible for broadcasting configuration instructions generated by the master controller to each routing node. Configuration instructions consist of three parts: a valid bit (cfg_valid), configuration coordinates (cfg_position), and configuration content (cfg_data). Each routing node receives the valid bit and configuration coordinates of the configuration instruction. The configuration content is only accepted by the local node if the configuration coordinates match the local coordinates of the object to be configured on the routing node. Configuration objects include routing nodes, functional units (such as DDR interfaces), and PEs.
[0044] like Figure 3 As shown in Figure 1, the state network is a unidirectional, comb-like network used to transmit status information about system components to assist program execution. The information transmitted by the state network primarily contains the current operating status of various nodes, which can be broken down into two types: functional unit status information and PE status information.
[0045] like Figure 4 As shown in the figure, the data network adopts a 2DMesh topology. Each routing node has five directional ports that connect to the upper, lower, left, and right adjacent routing nodes and the local PE, respectively. It supports full-duplex transmission. The routing node determines the routing direction based on the XY routing algorithm. Configuration information is transmitted in the form of data fragments (flits). A single configuration information controls how a transmission behavior is executed.
[0046] like Figure 5 As shown, the global variable network adopts a comb topology structure. The global variable network shares a set of network coordinates with the above three-layer network. In this embodiment, the routing node in row 0 is not mounted with a specific functional node, which plays a role in improving the communication effect.
[0047] The global variable network enables efficient storage and access of global variables within the network. Global variables are categorized into state-class GVPs (state-class global variables) and parameter-class GVPs (parameter-class global variables). GVPs, short for Global Variable Parameter, represent global variables. State-class GVPs store and reflect status information for the entire system or a specific T_curr (Task_current), such as loop count and processing status. State-class GVPs, which indicate processing status, are accessible or modifiable by the master controller, DSC, and on-chip nodes. State-class GVPs, which indicate loop count, are modifiable only by the master controller and DSC. Parameter-class GVPs store important parameters for the execution logic of multiple T_curr batches. These parameters determine the global direction of the computation, such as program operating mode flags, matrix dimensions, and FFT (Fast Fourier Transform) radix. Parameter-class GVPs are set at program startup and persist throughout program execution, providing configuration information and guiding the computational flow. Parameter-class GVPs generally remain unchanged during program execution and are only accessible to the master controller and DSC.
[0048] The state class GVP and parameter class GVP are all stored in the register group as part of the global variable parameter table. In this embodiment, the global variable parameter table is stored in 8 register groups, each group is responsible for storing a GVP and its updated version, and supports up to four versions.
[0049] The output segment value of the status class GVP is configured by DSC. Each time the status class GVP is called, the value of its output segment is reduced by 1. When the GVP value is reduced to 0, it indicates that the GVP is invalid and all T_curr that require this parameter have been executed. After the GVP is invalid, the register group receives a new GVP; the output segment value of the parameter class GVP is fixed at 1. After all programs associated with this parameter class GVP are completed, the DSC modifies the output segment value of the parameter class GVP to 0, which means it is invalid.
[0050] For a cyclic task, if the three-layer network structure in the existing technology is adopted, the cyclic task constructed by the upper-level system is a structure of linear concatenation of "number of cycles" cyclic units, and the updated parameters transmitted in the cycle require the use of the state network and the data network to coordinate the update, which is more cumbersome to coordinate.
[0051] In this invention, however, parameters within a task that require coordinated updates across multiple networks are extracted as global variables. These global variables are written to a global variable parameter table and transmitted across a global variable network that shares network coordinates with other networks, simplifying parameter allocation for task execution. Specifically, by introducing a global variable network and storing the loop count as a state class (GVP) indicating the loop count in the global variable parameter table, the upper-level system only needs to construct a single loop unit when constructing the loop task. Each time a loop completes, the DSC decrements the value of the corresponding GVP output segment by 1 until the value reaches 0, indicating the end of the loop. The parameters passed within the loop are also updated in real time as parameter class GVPs.
[0052] For tasks that require running multiple versions of data, after the configuration network loads the initial version, the new versions generated by the state network and data network need to be loaded sequentially by the configuration network until all required versions are loaded. A global variable network is introduced and all required version data is stored in the global variable parameter table as a state class GVP indicating the processing status. The state class GVP also stores updated versions generated during the calculation process in the global variable parameter table. During the task calculation process, multiple versions of data can be directly called through the global variable network. When the task calculation is completed, the DSC sets the value of the corresponding GVP output segment to 0, making it invalid.
[0053] like Figure 6 As shown in the figure, each register group consists of three parts: a release flag register, a parameter flag register, and a version register. The release flag register indicates whether a GVP has failed. When the value changes from 1 to 0, it indicates that the GVP has failed and triggers the release mechanism, allowing the register group to receive a new set of GVPs. The parameter flag register is used to quickly locate the required GVP. The version register stores the various versions of a GVP.
[0054] like Figure 7As shown in the figure, before the GVP is stored in the register group, it needs to be deconstructed: first, the reserved segment is removed and the global variable parameter type and number are concatenated and stored in the parameter identification register. Then, the global variable version number, parameter value and reference count are concatenated and sent to the version register. Finally, the release identification register value is set from 0 to 1 to complete the storage process of the GVP.
[0055] The reverse process of the above deconstruction operation is performed when reading the GVP from the register group.
[0056] The global variable network in a heterogeneous multi-core system consists of two parts: one is the downlink channel for the main controller or DSC to control the global variables, and the other is the uplink channel for on-chip nodes to transmit back the updated global variables.
[0057] The global variable network downlink channel is used to configure the GVP of the corresponding PE. Figure 8 As shown in the figure, after the global variable information (GVP, x, y) is sent from the global variable parameter table, it is first passed to the right along row 0. If the x coordinate in the global variable information matches the current routing coordinate, the x coordinate in the global variable information is removed and passed downward, otherwise it continues to be passed to the right; when the y coordinate in the global variable information passed downward matches the y coordinate of the routing node, the GVP will be passed to the node, otherwise it will continue to be passed downward until it reaches the destination node; after arriving at the destination node, the GVP will be sent to the PE connected to the node and configured.
[0058] In addition to the aforementioned fixed-point transmission, the downlink channel also supports row broadcast, column broadcast, and network-wide broadcast. If the x-coordinate or y-coordinate value in the global variable information is 0xffff, a row or column broadcast in the downlink channel is triggered, and all PEs in the corresponding row or column receive the GVP. If both the x-coordinate and y-coordinate values in the global variable information are 0xffff, the downlink channel performs a network-wide broadcast, and all PEs in the system receive the GVP.
[0059] When the PE of a node needs to update the GVP, it needs to pass the updated GVP to the global variable parameter table through the uplink channel of the global variable network. Figure 9 As shown in Figure 1, the transmission path of the upstream channel is opposite to that of the downstream channel. The updated GVP is sent by the corresponding PE. The GVP first encapsulates the y coordinate of the node in the local on-chip network interface, then passes it upward to the node in row 0, then encapsulates the x coordinate of the node in row 0, and finally turns left to the global variable parameter table and updates the corresponding content.
[0060] The upstream channel has a queue-jumping mechanism to optimize data flow. The queue-jumping mechanism includes: if two input GVPs arrive at the same node at different times, the on-chip network interface will process and forward them in the order of arrival; if two input GVPs arrive at the same node at the same time, the input GVP with higher priority will be processed first according to the preset priority of the built-in arbitrator.
[0061] In summary, the present invention proposes a method for managing global variables, including: building a heterogeneous multi-core system with a main controller, DSC, routing nodes, functional nodes and PE, the routing nodes are interconnected to form a grid network, the main controller and DSC are connected to a routing node at the same time, the main controller and DSC are communicated, and the functional nodes and PE are connected to specific routing nodes.
[0062] The heterogeneous multi-core system is built with four layers of on-chip networks to establish on-chip communication. The on-chip networks include configuration network, data network, status network and global variable network. The four layers of on-chip networks share the same set of network coordinates. Among them, the global variable network realizes the efficient storage and call of GVP in the network. GVP is stored in the register group of DSC as part of the global variable parameter table.
[0063] GVP is divided into status class GVP and parameter class GVP. The output segment value of status class GVP is configured by DSC. Each time the status class GVP is called, the value of its output segment is reduced by 1. When the GVP value is reduced to 0, it indicates that the GVP is invalid and all T_curr that require this parameter have been executed. The output segment value of parameter class GVP is fixed at 1. After all programs associated with this parameter class GVP are completed, DSC modifies the output segment value of the parameter class GVP to 0, indicating that the parameter class GVP is invalid.
[0064] The global variable network includes a downstream channel for controlling global variables and an upstream channel for transmitting and updating global variables. The downstream channel supports fixed-point transmission, row broadcast, column broadcast, and network-wide broadcast. The upstream channel has a queue-jumping mechanism to optimize data flow.
[0065] The steps in the present invention can be adjusted in sequence, combined, or deleted according to actual needs.
[0066] The units in the device of the present invention can be combined, divided and deleted according to actual needs.
[0067] Although the present invention has been disclosed in detail with reference to the accompanying drawings, it should be understood that these descriptions are merely illustrative and are not intended to limit the application of the present invention. The scope of the present invention is defined by the appended claims and includes various modifications, variations, and equivalents made to the invention without departing from the scope and spirit of the present invention.
Claims
1. A method for managing global variables, characterized in that: The method includes: building a heterogeneous multi-core system having a main controller, a DSC, multiple routing nodes, multiple functional nodes, and multiple PEs, wherein the routing nodes are interconnected to form a mesh network, the main controller and the DSC are simultaneously connected to one routing node, the main controller and the DSC are in communication connection, and the functional nodes and the PEs are connected to specific routing nodes; The heterogeneous multi-core system is built with a four-layer on-chip network to establish on-chip communication. The on-chip network includes a configuration network, a data network, a status network, and a global variable network. The on-chip network is responsible for transmitting signals between the main controller, DSC, and each routing node, functional node, and PE. The four layers of the on-chip network share the same set of network coordinates. The configuration network is responsible for transmitting control instructions and configuration data issued by the main controller to each routing node during system initialization; the status network transmits information from each routing node back to the main controller; the data network transmits calculation parameters in tasks between the main controller and each routing node; the global variable network transmits some parameters shared by multiple tasks as global variables GVP between the DSC and each routing node. The GVP is stored in the register group of the DSC as part of the global variable parameter table; The GVP is divided into a status-type GVP and a parameter-type GVP. The output segment value of the status-type GVP is configured by the DSC. Each time the status-type GVP is called, the value of its output segment decreases by 1. When the GVP value decreases to 0, it indicates that the GVP is invalid and all T_currs requiring the parameter have been executed. The output segment value of the parameter-type GVP is fixed at 1. After all programs associated with this parameter-type GVP are completed, the DSC modifies the output segment value of the parameter-type GVP to 0, indicating that the parameter-type GVP is invalid. The global variable network includes a downlink channel for controlling global variables and an uplink channel for transmitting back updated global variables. The downlink channel supports fixed-point transmission, row broadcast, column broadcast and full-network broadcast, and the uplink channel has a queue-jumping mechanism to optimize data flow.
2. The global variable management method according to claim 1, wherein: The state class GVP is divided into a state class GVP indicating the number of cycles and a state class GVP indicating the processing status. The state class GVP indicating the processing status allows the main controller, DSC and on-chip nodes to modify it, while the state class GVP indicating the number of cycles and the parameter class GVP only allow the main controller and DSC to modify it. For loop tasks, a global variable network is introduced and the loop count is stored in the global variable parameter table as a state class GVP indicating the loop count. When the upper-level system constructs the loop task, it only needs to build a loop unit. After each loop is completed, the DSC decrements the value of the corresponding GVP output segment by 1 until the value reaches 0, indicating the end of the loop. The updated parameters are passed in the loop as the parameter class GVP for real-time update. For tasks that need to run multiple versions of data, a global variable network is introduced and all required version data are stored in the global variable parameter table as a state class GVP indicating the processing status. During the task calculation process, the multiple versions of data can be directly called through the global variable network. When the task calculation is completed, DSC sets the value of the corresponding GVP output segment to 0 to make it invalid.
3. The global variable management method according to claim 1, wherein: The fixed-point transmission steps of the downlink channel include: after the global variable information (GVP, x, y) is sent from the global variable parameter table, it is first transmitted to the right along row 0. If the x coordinate in the global variable information matches the current routing coordinate, the x coordinate in the global variable information is removed and transmitted downward, otherwise it continues to be transmitted to the right; when the y coordinate in the global variable information transmitted downward matches the y coordinate of the routing node, the GVP will be transmitted to the node, otherwise it continues to be transmitted downward until it reaches the destination node; after arriving at the destination node, the GVP is sent to the PE connected to the node and configured.
4. The global variable management method according to claim 1, wherein: The steps of row broadcast, column broadcast and network-wide broadcast of the downlink channel include: if the x coordinate or y coordinate value in the global variable information is 0xffff, the row or column broadcast of the downlink channel is triggered, and all PEs in the corresponding row or column will receive the GVP; if the x and y coordinates in the global variable information are both 0xffff, the downlink channel is broadcasted to the entire network, and all PEs in the system receive the GVP.
5. The global variable management method according to claim 1, wherein: When the PE of a certain node needs to update the GVP, it needs to pass the updated GVP to the global variable parameter table through the uplink channel of the global variable network. The operation steps of the uplink channel include: the updated GVP is sent by the corresponding PE, and the GVP first encapsulates the y coordinate of the node in the local on-chip network interface, then passes it upward to the node in row 0, then encapsulates the x coordinate of the node in row 0, and finally transfers it left to the global variable parameter table and updates the corresponding content.
6. The global variable management method according to claim 5, characterized in that: The queue-jumping mechanism of the upstream channel includes: if two input GVPs arrive at the same node at different times, the on-chip network interface will process and forward them in the order of arrival; if two input GVPs arrive at the same node at the same time, the input GVP with higher priority will be processed first according to the preset priority of the built-in arbitrator.
7. The global variable management method according to claim 1, wherein: The register group consists of three parts: a release identification register, a parameter identification register, and a version register. The release identification register is used to indicate whether a GVP is invalid. When the value is set from 1 to 0, it means that the GVP is invalid and triggers the release mechanism, allowing the register group to receive a new set of GVPs. The parameter identification register is used to quickly locate the required GVP. The version register stores the version information of a certain GVP.
8. The global variable management method according to claim 7, characterized in that: Before the GVP is stored in the register group, it needs to be deconstructed: first, after removing the reserved segment, the global variable parameter type and number are concatenated and stored in the parameter identification register. Then, the global variable version number, parameter value and reference count are concatenated and sent to the version register. Finally, the release identification register value is set from 0 to 1 to complete the GVP storage process. The reverse process of the above deconstruction operation is performed when reading the GVP from the register group.
9. The global variable management method according to claim 1, wherein: The specific architecture of the four-layer on-chip network is as follows: The configuration network is a unidirectional downward network with a comb-like structure. The configuration instruction consists of three parts: valid bit (cfg_valid), configuration coordinates (cfg_position), and configuration content (cfg_data). Each routing node receives the valid bit and configuration coordinates of the configuration instruction. The configuration content will only be received by the local node if the configuration coordinates are consistent with the local coordinates of the object to be configured at the routing node. The state network is a unidirectional uplink network with a comb structure, which is used to transmit the current working state information of each component of the system. The current working state information includes the working state information of the functional unit and the working state information of the PE; The data network adopts a 2DMesh topology. Each routing node has five directional ports that connect to the upper, lower, left, and right adjacent routing nodes and the local PE, respectively, supporting full-duplex transmission. The routing node determines the routing direction based on the XY routing algorithm, and configuration information is transmitted in the form of data fragments (flits). The global variable network adopts a comb topology structure, and its 0th row routing node does not mount a specific functional node, which is used to improve communication effects.
Citation Information
Patent Citations
SpaceFibre routing IP with multiple ports
CN112383474A
On-chip temporary storage dynamic scheduling manager of multi-core heterogeneous processor
CN114237717A