Multi-node communication system, method, electronic device
By mapping the address spaces of the processing module and the communication module in the multi-node communication system, bidirectional communication between electronic device nodes is realized, solving the problem of inflexible communication methods between nodes and improving communication efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- VIA ALLIANCE SEMICON CO LTD
- Filing Date
- 2026-02-13
- Publication Date
- 2026-05-29
AI Technical Summary
In existing technologies, the communication methods between nodes in electronic devices are not flexible enough, resulting in low communication efficiency.
A multi-node communication system is adopted, which allows bidirectional communication between any two nodes. Data access and data exchange between any nodes are realized through the mapping address space of the processing module and the communication module.
It improves the flexibility and efficiency of communication between electronic device nodes, allowing any node to directly access the storage modules of other nodes without prior permission.
Smart Images

Figure CN122120341A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of communication technology, and in particular to a multi-node communication system, method, and electronic device. Background Technology
[0002] Electronic devices typically have multiple nodes with different functions, and the communication performance between these nodes is crucial to the overall performance of the device. Current solutions mostly classify nodes as masters and slaves based on their function; for example, a node primarily for data processing can act as a master, while a node primarily for storage can act as a slave. Only the master can access the slave; the slave cannot access the master. Furthermore, the master needs to request permission from the slave before it can access the slave. This inflexible communication mechanism significantly reduces the efficiency of inter-node communication within electronic devices.
[0003] Therefore, improving the flexibility and efficiency of inter-node communication in electronic devices has become a research hotspot in this field. Summary of the Invention
[0004] In view of this, this disclosure proposes a multi-node communication system, method, and electronic device. This system can improve the flexibility of inter-node communication methods in electronic devices and increase the efficiency of inter-node communication in electronic devices.
[0005] According to one aspect of this disclosure, a multi-node communication system is provided, comprising M nodes, each node including a processing module, a storage module, and a communication module. A first access request originates from the i-th node and is destined for the j-th node; a second access request originates from the j-th node and is destined for the i-th node. Here, M is a positive number greater than 1, 1 ≤ i ≤ M, 1 ≤ j ≤ M, and i and j are integers. In the i-th node, the processing module outputs the first access request to the communication module, and the communication module accesses the storage module of the j-th node in response to the first access request. In the j-th node, the processing module outputs the second access request to the communication module, and the communication module accesses the storage module of the i-th node in response to the second access request.
[0006] In one possible implementation, in any node, the communication module includes M-1 communication units, each of which is connected to one of the other M-1 nodes. The processing module includes M-1 second address spaces mapped to the M-1 communication units. The processing module of the i-th node is used to determine the communication unit on the i-th node corresponding to the j-th node, and output the first access request to that communication unit through the second address space mapped to that communication unit. Any one of the communication units of the i-th node is used to access the storage module of the connected node in response to the first access request. The processing module of the j-th node is used to determine the communication unit on the j-th node corresponding to the i-th node, and output the second access request to that communication unit through the second address space mapped to that communication unit. Any one of the communication units of the j-th node is used to access the storage module of the connected node in response to the second access request.
[0007] In one possible implementation, when the received access request is a write request, the communication module is used to write data to the storage module of the destination node in response to the access request; when the received access request is a read request, the communication module is used to access the storage module of the destination node in response to the access request to obtain data, and write the obtained data to the storage module of the node.
[0008] In one possible implementation, the processing module of any node is also used to access the storage module of the node it resides in and write the data it generates into the storage module.
[0009] In one possible implementation, the communication module of any node is further configured to write a first interrupt to the storage module of another node after writing data to that storage module; the processing module of any node is further configured to access the storage module to read data when it detects that a first interrupt has been written to the storage module of its own node.
[0010] In one possible implementation, in any node, the processing module includes a first address space mapped to the storage module of the node, and the processing module of any node is used to access the storage module of the node through the first address space.
[0011] In one possible implementation, in any given node, the storage module responds to access requests from multiple nodes in a round-robin fashion.
[0012] According to another aspect of this disclosure, an electronic device is provided, including the multi-node communication system described in any of the foregoing claims.
[0013] According to another aspect of this disclosure, a communication method is provided, the method being applied to a multi-node communication system, the system comprising M nodes, each node comprising a processing module, a storage module, and a communication module, wherein the source node of a first access request is the i-th node and the destination node is the j-th node, and the source node of a second access request is the j-th node and the destination node is the i-th node, wherein M is a positive number greater than 1, 1≤i≤M, 1≤j≤M, and i and j are integers; the method comprising: in the i-th node, the processing module outputs the first access request to the communication module, and the communication module accesses the storage module of the j-th node in response to the first access request; in the j-th node, the processing module outputs the second access request to the communication module, and the communication module accesses the storage module of the i-th node in response to the second access request.
[0014] In one possible implementation, the communication module includes M-1 communication units, each of which is connected to one of the other M-1 nodes. The processing module includes M-1 second address spaces mapped to the M-1 communication units. In the i-th node, the processing module outputs the first access request to the communication module, including: the processing module of the i-th node determines the communication unit on the i-th node corresponding to the j-th node, and outputs the first access request to that communication unit through the second address space mapped to that communication unit; any communication unit of the i-th node responds to the first access request by accessing the storage module of the connected node. In the j-th node, the processing module outputs the second access request to the communication module, including: the processing module of the j-th node determines the communication unit on the j-th node corresponding to the i-th node, and outputs the second access request to that communication unit through the second address space mapped to that communication unit; any communication unit of the j-th node responds to the second access request by accessing the storage module of the connected node.
[0015] In one possible implementation, when the received access request is a write request, the communication module responds to the first access request by accessing the storage module of the j-th node, including: the communication module responds to the access request by writing data to the storage module of the destination node of the access request; when the received access request is a read request, the communication module responds to the first access request by accessing the storage module of the j-th node, including: the communication module responds to the access request by accessing the storage module of the destination node of the access request to obtain data, and writes the obtained data to the storage module of the node.
[0016] In one possible implementation, the method further includes: the processing module of any node accesses the storage module of the node it resides in and writes the data it generates into the storage module.
[0017] In one possible implementation, the method further includes: after a communication module of any node writes data to the storage module of another node, it writes a first interrupt to that storage module; when a processing module of any node detects that a first interrupt has been written to the storage module of its own node, it accesses that storage module to read data.
[0018] In one possible implementation, in any node, the processing module includes a first address space mapped to the storage module of the node, and the processing module of any node accessing the storage module of the node includes: the processing module of any node accessing the storage module of the node through the first address space.
[0019] In one possible implementation, in any given node, the storage module responds to access requests from multiple nodes in a round-robin fashion.
[0020] The multi-node communication system according to an embodiment of this disclosure includes M nodes. Each node includes a processing module, a storage module, and a communication module. The source node of a first access request is the i-th node, and the destination node is the j-th node. The source node of a second access request is the j-th node, and the destination node is the i-th node. M is a positive number greater than 1, 1 ≤ i ≤ M, 1 ≤ j ≤ M, and i and j are integers. In the i-th node, the processing module outputs the first access request to the communication module, and the communication module accesses the storage module of the j-th node in response to the first access request. In the j-th node, the processing module outputs the second access request to the communication module, and the communication module accesses the storage module of the i-th node in response to the second access request. In this case, the communication system of this disclosure supports bidirectional communication between any two nodes, not just active access from a host to a slave. Each node does not need the prior consent of other nodes to access other nodes. This improves the flexibility and efficiency of inter-node communication in electronic devices.
[0021] Other features and aspects of this disclosure will become clear from the following detailed description of exemplary embodiments with reference to the accompanying drawings. Attached Figure Description
[0022] The accompanying drawings, which are included in and form part of this specification, illustrate exemplary embodiments, features, and aspects of this disclosure together with the specification and serve to explain the principles of this disclosure.
[0023] Figure 1 This illustrates an exemplary application scenario of a multi-node communication system according to embodiments of the present disclosure.
[0024] Figure 2 A schematic diagram showing the structure of a multi-node communication system according to an embodiment of the present disclosure is provided.
[0025] Figure 3 A schematic diagram illustrating the transmission method of a write request in a communication system according to an embodiment of the present disclosure.
[0026] Figure 4 A schematic diagram illustrating the transmission method of a read request in a communication system according to an embodiment of the present disclosure.
[0027] Figure 5 A schematic diagram showing the structure of a communication module according to an embodiment of the present disclosure is provided.
[0028] Figure 6 A schematic diagram illustrating the mapping relationship between the address space of the processing module and the storage module and communication unit according to an embodiment of the present disclosure.
[0029] Figure 7 A schematic diagram showing the structure of a communication unit according to an embodiment of the present disclosure is provided.
[0030] Figure 8 A schematic diagram illustrating the flow of a communication method according to an embodiment of the present disclosure is shown. Detailed Implementation
[0031] Various exemplary embodiments, features, and aspects of this disclosure will now be described in detail with reference to the accompanying drawings. The same reference numerals in the drawings denote elements that have the same or similar functions. Although various aspects of the embodiments are shown in the drawings, they are not necessarily drawn to scale unless specifically indicated otherwise.
[0032] As used herein, the terms “comprising,” “including,” “having,” or variations thereof are open-ended and include one or more of the stated features, integrals, elements, steps, components, or functions, but do not exclude the presence or addition of one or more other features, integrals, elements, steps, components, functions, or groups thereof.
[0033] When an element is referred to as “connected,” “coupled,” “responding,” or a variation thereof relative to another element, it may be directly connected, coupled, or responding to another element, or there may be an intermediate element present.
[0034] Although the terms first, second, third, etc., may be used herein to describe various elements / operations, these elements / operations should not be limited by these terms. These terms are only used to distinguish one element / operation from another. Therefore, without departing from the teachings of the inventive concept, a first element / operation in some embodiments may be referred to as a second element / operation in other embodiments.
[0035] The term “exemplary” as used herein means “serving as an example, embodiment, or illustration.” Any embodiment illustrated herein as “exemplary” is not necessarily to be construed as superior to or better than other embodiments.
[0036] Furthermore, to better illustrate this disclosure, numerous specific details are set forth in the following detailed description. Those skilled in the art will understand that this disclosure can be practiced without certain specific details. In some instances, methods, means, components, and circuits well known to those skilled in the art have not been described in detail in order to highlight the main points of this disclosure.
[0037] Figure 1 This illustrates an exemplary application scenario of a multi-node communication system according to embodiments of the present disclosure.
[0038] like Figure 1 As shown, the electronic device may include a central processing unit (CPU) chip, a graphics processing unit (GPU) chip, and memory. The multi-node communication system includes nodes socket1-socket4. Node socket1 is the CPU core on the CPU chip, node socket2 is the cache on the GPU chip, node socket3 is the GPU core on the GPU chip, and node socket4 is memory.
[0039] After the electronic device is started, each node is powered on independently. There must be one node to summarize the status of all nodes after they are powered on. Once all nodes are powered on normally, the electronic device can start to work normally.
[0040] The communication system of this disclosure supports bidirectional communication between any two nodes. Each node in the communication system can act as a summary node. After each node successfully powers on, it can actively send an interrupt message to the summary node. The summary node can then confirm whether other nodes have successfully powered on based on the interrupt message. The summary node can also actively access other nodes to obtain information on whether they have successfully powered on. After the summary node confirms that all nodes in the system have successfully powered on, each node officially begins working. During the formal operation of each node, it can also send the generated data or its own working status to the summary node. The summary node can monitor the working status of each node.
[0041] In some scenarios, nodes need to handshake before specific data can be transmitted, such as data that only certain nodes have read and write permissions for. Assuming node socket1 initiates the handshake and nodes socket2-socket4 are the receivers, node socket1 can send handshake requests to each of nodes socket2-socket4. If the handshake is successful, nodes socket2-socket4 can return a success message to node socket1. After confirming the successful handshake with nodes socket2-socket4, node socket1 can read / write data from or to nodes socket2-socket4 as needed.
[0042] The above scenarios are merely examples. In practical applications, nodes in a communication system can be any host / slave device in an electronic device. This disclosure does not limit the specific form of the nodes.
[0043] Different nodes can be located on different chips, and any two nodes can also be located on the same chip. Different nodes can also be located on different electronic devices. This disclosure does not limit the location of the nodes.
[0044] The exemplary structure and function of a multi-node communication system according to embodiments of this disclosure are described below.
[0045] In one possible implementation, the multi-node communication system includes M nodes, each node including a processing module, a storage module and a communication module. The source node of the first access request is the i-th node and the destination node is the j-th node. The source node of the second access request is the j-th node and the destination node is the i-th node. Here, M is a positive number greater than 1, 1≤i≤M, 1≤j≤M, and i and j are integers.
[0046] In the i-th node, the processing module is used to output the first access request to the communication module, and the communication module is used to access the storage module of the j-th node in response to the first access request.
[0047] In the j-th node, the processing module is used to output the second access request to the communication module, and the communication module is used to access the storage module of the i-th node in response to the second access request.
[0048] Figure 2 A schematic diagram showing the structure of a multi-node communication system according to an embodiment of the present disclosure is provided.
[0049] like Figure 2 As shown, the multi-node communication system includes nodes 1 through 4 (M=4). Each node includes a processing module, a storage module, and a communication module. On a single node, any two modules among the processing module, storage module, and communication module are interconnected.
[0050] The processing module can be a microcontroller unit (MCU) or other module with data processing capabilities. This disclosure does not limit the specific type of processing module.
[0051] The communication module on any node can be connected to the communication modules of every other node, so the communication module can access all nodes in the system.
[0052] The storage module includes space accessible to the processing module, which can be provided by static random-access memory (SRAM). SRAMThis is achieved through a storage module on each node, which can be used to store data generated by the processing module and data obtained by the communication module from other nodes.
[0053] When the i-th node needs to access the j-th node, the processing module on the i-th node can generate a first access request. That is, the source node of the first access request is the i-th node and the destination node is the j-th node. The first access request can carry the identifiers of the source node and the destination node.
[0054] In the i-th node, the processing module can output a first access request to the communication module. The communication module can then access the storage module of the j-th node in response to the first access request.
[0055] For example, if node 1 (i=1) needs to access node 2 (j=2), the processing module on node 1 can generate a first access request, with node 1 as the source node and node 2 as the destination node. On node 1, the processing module can output the first access request to the communication module. The communication module can then respond to the first access request by accessing the storage module of node 2.
[0056] When the j-th node needs to access the i-th node, the processing module on the j-th node can generate a second access request. That is, the source node of the second access request is the j-th node, and the destination node is the i-th node. The second access request can carry the identifiers of the source node and the destination node.
[0057] In the j-th node, the processing module can output the second access request to the communication module. The communication module can then access the storage module of the i-th node in response to the second access request.
[0058] For example, if node 2 (j=2) needs to access node 1 (i=1), the processing module on node 2 (j=2) can generate a second access request, with node 2 as the source node and node 1 as the destination node. On node 2, the processing module can output the second access request to the communication module. The communication module can then respond to the second access request by accessing the storage module of node 1.
[0059] The multi-node communication system according to an embodiment of this disclosure includes M nodes. Each node includes a processing module, a storage module, and a communication module. The source node of a first access request is the i-th node, and the destination node is the j-th node. The source node of a second access request is the j-th node, and the destination node is the i-th node. M is a positive number greater than 1, 1 ≤ i ≤ M, 1 ≤ j ≤ M, and i and j are integers. In the i-th node, the processing module outputs the first access request to the communication module, and the communication module accesses the storage module of the j-th node in response to the first access request. In the j-th node, the processing module outputs the second access request to the communication module, and the communication module accesses the storage module of the i-th node in response to the second access request. In this case, the communication system of this disclosure supports bidirectional communication between any two nodes, not just active access from a host to a slave. Each node does not need the prior consent of other nodes to access other nodes. This improves the flexibility and efficiency of inter-node communication in electronic devices.
[0060] In one possible implementation, when the received access request is a write request, the communication module is used to write data to the storage module of the destination node in response to the access request.
[0061] When the received access request is a read request, the communication module is used to access the storage module of the destination node in response to the access request, retrieve the data, and write the retrieved data into the storage module of the node.
[0062] For example, the storage modules on each node can be read / written by other nodes.
[0063] As mentioned above, when the current node needs to access other nodes, the processing module on the current node will generate an access request (first access request / second access request) and transmit the access request to the communication module. This access request can carry the identifier of the source node and the identifier of the destination node. In addition, it can also carry an identifier indicating whether the access is a write request or a read request.
[0064] The communication module can determine the type of the received access request based on the identifier carried in the received access request.
[0065] When the received access request is a write request, it may also carry data to be written to the node that needs to be accessed. The communication module can respond to the access request by writing data to the storage module of the destination node.
[0066] Figure 3 A schematic diagram illustrating the transmission method of a write request in a communication system according to an embodiment of the present disclosure.
[0067] like Figure 3As shown, the source node of the first access request is node 1, the destination node is node 2, and the first access request is a write request. The first access request is transmitted from the processing module of node 1 to the communication module of node 1. The communication module of node 1 can respond to the first access request by writing data to the storage module of node 2. For example, the first access request can be output to the storage module of node 2 through the communication module of node 2, and the data carried by the first access request can be written to the storage module of node 2.
[0068] When the received access request is a read request, the communication module can respond to the access request by accessing the storage module of the destination node to obtain the data and writing the obtained data into the storage module of the node.
[0069] Figure 4 A schematic diagram illustrating the transmission method of a read request in a communication system according to an embodiment of the present disclosure.
[0070] like Figure 4 As shown, the source node of the first access request is Node 1, the destination node is Node 2, and the first access request is a read request. The first access request is transmitted from the processing module of Node 1 to the communication module of Node 1. The communication module of Node 1 can respond to the first access request by retrieving data from the storage module of Node 2. For example, the first access request can be output to the storage module of Node 2 through the communication module of Node 2. The storage module of Node 2 responds to the first access request by reading the data, and the read data is returned to the communication module of Node 1 through the communication module of Node 2, and then written to the storage module of Node 1 by the communication module of Node 1. When the processing module needs to use the data, it can access the storage module to read the data. After the data is read, the storage resources of the storage module are released and can be used to store new data.
[0071] Because the storage module can be read / written by any node, any two nodes can use the storage module as a shared storage resource, thereby enabling data exchange through the storage module.
[0072] In one possible implementation, the processing module of any node is also used to access the storage module of the node it resides in and write the data it generates into the storage module.
[0073] For example, on each node, the storage module includes space accessible to the processing module. Therefore, after the processing module generates data, it can access the storage module of its node and write the data it generated into the accessible space within that storage module. Exemplary methods for the processing module to access the storage module of its node are given later.
[0074] In one possible implementation, the communication module of any node is further configured to write a first interrupt to the storage module after writing data to the storage module of another node.
[0075] The processing module of any node is also used to access the storage module to read data when a first interrupt write is detected in the storage module of the node it belongs to.
[0076] For example, data written by the communication module of one node to the storage module of another node is typically needed by the processing module of that other node. Therefore, the communication module of any node is also used to write a first interrupt to that storage module after writing data to it.
[0077] A fixed storage area can be selected within the storage module to store the first interrupt. On each node, the processing module can access this storage area at a preset frequency to detect whether the first interrupt has been written. If a first interrupt write is detected in the storage area, the module accesses the accessible address space within the storage module and reads the data stored in that address space.
[0078] In this way, when one node actively writes data to another node, the other node can promptly detect the data being written from other nodes, read the data as soon as possible, and release the storage resources of the storage module.
[0079] The following describes exemplary methods for a processing module to access the storage module of its own node and for a processing module to access the storage module of other nodes through a communication module.
[0080] In one possible implementation, in any node, the processing module includes a first address space mapped to the storage module of the node.
[0081] The processing module of any node is used to access the storage module of the node it belongs to through the first address space.
[0082] In one possible implementation, in any node, the communication module includes M-1 communication units, each of which is connected to one of the other M-1 nodes. The processing module includes M-1 second address spaces mapped to the M-1 communication units.
[0083] The processing module of the i-th node is used to determine the communication unit on the i-th node corresponding to the j-th node, and output the first access request to the communication unit by mapping to the second address space of the communication unit; any communication unit of the i-th node is used to access the storage module of the connected node in response to the first access request.
[0084] The processing module of the j-th node is used to determine the communication unit on the j-th node corresponding to the i-th node, and output the second access request to the communication unit by mapping to the second address space of the communication unit; any one of the communication units of the j-th node is used to access the storage module of the connected node in response to the second access request.
[0085] For example, a processing module includes multiple address spaces. To enable any node's processing module to access the storage module of its host node, the processing module's own address space can be configured. For instance, any address space not mapped to a storage module can be selected from multiple address spaces as the first address space, which is then mapped to the current node's storage module. The processing module can then access the current node's storage module through the first address space to perform read / write operations. An example of the mapping relationship between the first address space of a processing module and the storage module can be found in [reference needed]. Figure 6 .
[0086] In other words, the first address space refers to the address space among the multiple address spaces of the processing module used to map to the storage module of the current node. It allows the processing module to directly access the local storage module and perform data read and write operations. By configuring the first address space, the processing module can efficiently manage local resources and ensure low latency and high efficiency in operations on the local storage module.
[0087] To enable the processing module of any node to access the storage modules of the other M-1 nodes, M-1 communication units can be set on the storage module of the current node, and each of the M-1 communication units can be connected to the other M-1 nodes. Figure 5 A schematic diagram showing the structure of a communication module according to an embodiment of the present disclosure is provided.
[0088] like Figure 5 As shown, the communication module of node 1 includes communication unit 12, communication unit 13, and communication unit 14. The communication module of node 2 includes communication unit 21, communication unit 23, and communication unit 24. The communication module of node 3 includes communication unit 31, communication unit 32, and communication unit 34. The communication module of node 4 includes communication unit 41, communication unit 42, and communication unit 43.
[0089] Among them, communication unit 12 is connected to communication unit 21, communication unit 13 is connected to communication unit 31, communication module 14 is connected to communication unit 41, communication module 23 is connected to communication unit 32, communication unit 24 is connected to communication unit 42, and communication unit 34 is connected to communication unit 43.
[0090] Each communication unit can include storage space accessible to the processing module. The processing module's own address space can be configured; for example, M-1 address spaces not mapped to storage modules can be selected from multiple address spaces and mapped to the M-1 communication units respectively as a second address space. The processing module can access the mapped communication units through the second address space, and then access the storage modules on other nodes through the communication units to perform read / write operations. An example of the mapping relationship between the second address space on the processing module and the communication units can be found in [reference needed]. Figure 6 .
[0091] In other words, the second address space refers to the address space among the multiple address spaces of the processing module used to map to the communication units. Each node's processing module contains M-1 second address spaces (where M is the total number of nodes), which correspond to the communication units connected to the other M-1 nodes. Through the second address space, the processing module can access the storage space associated with a specific communication unit and send or receive access requests to other nodes through these communication units, thereby realizing cross-node data interaction and communication functions.
[0092] Figure 6 A schematic diagram illustrating the mapping relationship between the address space of the processing module and the storage module and communication unit according to an embodiment of the present disclosure.
[0093] like Figure 6 As shown, on each node, the first address space of the processing module is mapped to the storage module of that node. The processing module has M-1 second address spaces ( Figure 6 In the example, M=3) are all mapped to M-1 communication units respectively.
[0094] The size of the first address space of the processing module can be consistent with the size of the memory space accessible to the processing module on the memory module of the chip on which the processing module resides. The size of each second address space of the processing module can be consistent with the size of the memory space accessible to the processing module on the communication unit to which the second address space is mapped. For example, the first address space and the second address space can be set to 1KB. Those skilled in the art should understand that the first address space, the second address space, the size of the memory space accessible to the processing module on the memory module, and the size of the memory space accessible to the processing module on the communication unit are all adjustable. They can be pre-configured by the operator or adjusted during the operation of the processing module, as long as the size of the first address space of the processing module is consistent with the size of the accessible memory space on the memory module of the chip on which the processing module resides, and the size of each second address space of the processing module is consistent with the size of the memory space accessible to the processing module on the communication unit to which the second address space is mapped.
[0095] Figure 7A schematic diagram showing the structure of a communication unit according to an embodiment of the present disclosure is provided.
[0096] It should be understood that the size of the storage space accessible to the processing module on the communication unit can be considered as the storage component of the communication unit. The communication unit also includes the communication component that implements the communication function. In practical applications, the communication component and the storage component can be integrated together on the communication unit. Or, as... Figure 7 As shown, in a communication unit, the communication component and the storage component can also be independent of each other. In this case, the M-1 second address space in the processing module can be mapped to the storage components in M-1 communication units respectively.
[0097] exist Figure 7 In the example:
[0098] Communication unit 12 includes storage component 120 and communication component 121, communication unit 13 includes storage component 130 and communication component 131, and communication unit 14 includes storage component 140 and communication component 141.
[0099] Communication unit 21 includes storage component 210 and communication component 211, communication unit 23 includes storage component 230 and communication component 231, and communication unit 24 includes storage component 240 and communication component 241.
[0100] Communication unit 31 includes storage component 310 and communication component 311, communication unit 32 includes storage component 320 and communication component 321, and communication unit 34 includes storage component 340 and communication component 341.
[0101] Communication unit 41 includes storage component 410 and communication component 411, communication unit 42 includes storage component 420 and communication component 421, and communication unit 43 includes storage component 430 and communication component 431.
[0102] If the communication unit adopts Figure 7 Given the structure shown, the transmission path of the first access request / second access request in the system can be: source node's processing module — storage component in the source node's communication module — communication component in the source node's communication module — communication component in the destination node's communication module — storage module of the destination node.
[0103] For example, assuming the source node of the first access request is node 1 and the destination node is node 2, the first access request can be output by the processing module of node 1, and reach the storage module of node 2 via the storage component 120 in the communication module of node 1, the communication component 121 in the communication module of node 1, and the communication component 211 in the communication module of node 2.
[0104] Those skilled in the art should understand that the communication unit can also be implemented using other structures, as long as the address space of the processing module can be mapped to the communication unit and the communication unit can communicate with the communication units on other nodes. The embodiments of this disclosure do not limit the specific structure of the communication unit.
[0105] In this way, each storage module can be shared by all nodes.
[0106] In one possible implementation, in any given node, the storage module responds to access requests from multiple nodes in a round-robin fashion.
[0107] For example, since any node in this embodiment of the disclosure can access the storage module of another node without the consent of the other nodes, a single node may receive access requests from multiple nodes simultaneously. In this case, the storage module on the node receiving multiple access requests can respond to the access requests from multiple nodes in a round-robin manner.
[0108] by Figure 2 For example, if the storage module of node 2 receives access requests from nodes 1, 3, and 4 simultaneously, it can respond to the access requests sequentially according to a preset polling order. For instance, the storage module of node 2 can be preset to use a 1-3-4-1 polling order, and the storage module of node 2 can respond to one access request per cycle. Therefore, the storage module of node 2 can respond to the access request from node 1 in the first cycle, the access request from node 3 in the second cycle, and the access request from node 4 in the third cycle.
[0109] This method allows the response latency of access requests issued by different nodes to be closer.
[0110] Those skilled in the art will understand that although the embodiments of this disclosure use a communication system comprising four nodes as an example, in practical applications, a communication system may include more or fewer nodes. This disclosure does not limit the specific number of nodes included in the communication system.
[0111] This disclosure also proposes a communication method. Figure 8 A schematic diagram illustrating the flow of a communication method according to an embodiment of the present disclosure is shown.
[0112] In one possible implementation, the method is applied to a multi-node communication system, the system comprising M nodes, each node comprising a processing module, a storage module, and a communication module, wherein the source node of the first access request is the i-th node and the destination node is the j-th node, and the source node of the second access request is the j-th node and the destination node is the i-th node, wherein M is a positive number greater than 1, 1≤i≤M, 1≤j≤M, and i and j are integers;
[0113] like Figure 8 As shown, the method includes:
[0114] In step S81, in the i-th node, the processing module outputs the first access request to the communication module, and the communication module responds to the first access request to access the storage module of the j-th node;
[0115] In step S82, in the j-th node, the processing module outputs the second access request to the communication module, and the communication module responds to the second access request by accessing the storage module of the i-th node.
[0116] In one possible implementation, the communication module includes M-1 communication units, each of which is connected to one of the other M-1 nodes. The processing module includes M-1 second address spaces mapped to the M-1 communication units. In the i-th node, the processing module outputs the first access request to the communication module, including: the processing module of the i-th node determines the communication unit on the i-th node corresponding to the j-th node, and outputs the first access request to that communication unit through the second address space mapped to that communication unit; any communication unit of the i-th node responds to the first access request by accessing the storage module of the connected node. In the j-th node, the processing module outputs the second access request to the communication module, including: the processing module of the j-th node determines the communication unit on the j-th node corresponding to the i-th node, and outputs the second access request to that communication unit through the second address space mapped to that communication unit; any communication unit of the j-th node responds to the second access request by accessing the storage module of the connected node.
[0117] In one possible implementation, when the received access request is a write request, the communication module responds to the first access request by accessing the storage module of the j-th node, including: the communication module responds to the access request by writing data to the storage module of the destination node of the access request; when the received access request is a read request, the communication module responds to the first access request by accessing the storage module of the j-th node, including: the communication module responds to the access request by accessing the storage module of the destination node of the access request to obtain data, and writes the obtained data to the storage module of the node.
[0118] In one possible implementation, the method further includes: the processing module of any node accesses the storage module of the node it resides in and writes the data it generates into the storage module.
[0119] In one possible implementation, the method further includes: after a communication module of any node writes data to the storage module of another node, it writes a first interrupt to that storage module; when a processing module of any node detects that a first interrupt has been written to the storage module of its own node, it accesses that storage module to read data.
[0120] In one possible implementation, in any node, the processing module includes a first address space mapped to the storage module of the node, and the processing module of any node accessing the storage module of the node includes: the processing module of any node accessing the storage module of the node through the first address space.
[0121] In one possible implementation, in any given node, the storage module responds to access requests from multiple nodes in a round-robin fashion.
[0122] This disclosure also proposes an electronic device including the multi-node communication system described above. A schematic diagram of the electronic device's structure can be found [link to schematic diagram]. Figure 1 The electronic device may be a terminal device or a server, and this disclosure does not limit the specific type of electronic device.
[0123] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction containing one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those shown in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0124] The various embodiments of this disclosure have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles, practical application, or technical improvements to the embodiments in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.
Claims
1. A multi-node communication system, characterized in that, It includes M nodes, each node includes a processing module, a storage module and a communication module. The source node of the first access request is the i-th node and the destination node is the j-th node. The source node of the second access request is the j-th node and the destination node is the i-th node. Here, M is a positive number greater than 1, 1≤i≤M, 1≤j≤M, and i and j are integers. In the i-th node, the processing module is used to output the first access request to the communication module, and the communication module is used to access the storage module of the j-th node in response to the first access request. In the j-th node, the processing module is used to output the second access request to the communication module, and the communication module is used to access the storage module of the i-th node in response to the second access request.
2. The system according to claim 1, characterized in that, In any given node, the communication module includes M-1 communication units, each of which is connected to one of the other M-1 nodes. The processing module includes M-1 second address spaces mapped to the M-1 communication units. The processing module of the i-th node is used to determine the communication unit on the i-th node corresponding to the j-th node, and output the first access request to the communication unit by mapping to the second address space of the communication unit; any one of the communication units of the i-th node is used to access the storage module of the connected node in response to the first access request. The processing module of the j-th node is used to determine the communication unit on the j-th node corresponding to the i-th node, and output the second access request to the communication unit by mapping to the second address space of the communication unit; any one of the communication units of the j-th node is used to access the storage module of the connected node in response to the second access request.
3. The system according to claim 1, characterized in that, When the received access request is a write request, the communication module is used to write data to the storage module of the destination node in response to the access request. When the received access request is a read request, the communication module is used to access the storage module of the destination node in response to the access request, retrieve the data, and write the retrieved data into the storage module of the node.
4. The system according to claim 1, characterized in that, The processing module of any node is also used to access the storage module of the node it belongs to and write the data it generates into the storage module.
5. The system according to claim 4, characterized in that, The communication module of any node is also used to write a first interrupt to the storage module after writing data to the storage module of other nodes; The processing module of any node is also used to access the storage module to read data when a first interrupt write is detected in the storage module of the node it belongs to.
6. The system according to claim 4, characterized in that, In any given node, the processing module includes the first address space mapped to the storage module of that node. The processing module of any node is used to access the storage module of the node it belongs to through the first address space.
7. The system according to claim 4, characterized in that, In any given node, the storage module responds to access requests from multiple nodes in a round-robin fashion.
8. An electronic device, characterized in that, The communication system comprising any one of claims 1-7.
9. A communication method, characterized in that, The method is applied to a multi-node communication system, which includes M nodes. Each node includes a processing module, a storage module, and a communication module. The source node of the first access request is the i-th node and the destination node is the j-th node. The source node of the second access request is the j-th node and the destination node is the i-th node. Here, M is a positive number greater than 1, 1≤i≤M, 1≤j≤M, and i and j are integers. The method includes: In the i-th node, the processing module outputs the first access request to the communication module, and the communication module responds to the first access request by accessing the storage module of the j-th node; In the j-th node, the processing module outputs the second access request to the communication module, and the communication module responds to the second access request by accessing the storage module of the i-th node.
10. The method according to claim 9, characterized in that, The communication module includes M-1 communication units, each of which is connected to one of the other M-1 nodes. The processing module includes M-1 second address spaces mapped to the M-1 communication units. In the i-th node, the processing module outputs the first access request to the communication module, including: The processing module of the i-th node determines the communication unit on the i-th node corresponding to the j-th node, and outputs the first access request to the communication unit by mapping to the second address space of the communication unit; any communication unit of the i-th node responds to the first access request to access the storage module of the connected node. In the j-th node, the processing module outputs the second access request to the communication module, including: The processing module of the j-th node determines the communication unit on the j-th node corresponding to the i-th node, and outputs the second access request to the communication unit by mapping to the second address space of the communication unit; any communication unit of the j-th node responds to the second access request and accesses the storage module of the connected node.