Communication routing control method, device, medium and product
By acquiring the attribute information of the origin characteristics and the real-time load status, and dynamically configuring the target port mask, the problems of high communication latency, high power consumption and poor scalability in multi-die architecture are solved. Local port priority utilization and load balancing are achieved, improving the communication efficiency and scalability of the GPU system.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SHANGHAI BIREN TECH CO LTD
- Filing Date
- 2025-12-24
- Publication Date
- 2026-05-19
AI Technical Summary
Existing multi-die architecture GPUs suffer from low local port utilization, high communication latency, and high power consumption due to their inability to identify the source of requests during data transmission. Furthermore, they cannot be effectively scaled, thus limiting system performance and scalability.
By acquiring attribute information carrying origin characteristics, the target port mask is dynamically configured to achieve intelligent routing control, prioritize the use of local port resources, reduce cross-die communication overhead, and perform dynamic load balancing in conjunction with real-time load status.
It significantly reduces communication latency and power consumption, improves the overall communication efficiency and scalability of multi-processor unit systems, and enables priority utilization and load balancing of local ports.
Smart Images

Figure CN121396876B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of chip technology, and in particular to a communication routing control method, device, medium, and product. Background Technology
[0002] To meet the demands of large-scale parallel processing in scenarios such as high-performance computing and artificial intelligence training and inference, multi-chip (die) architecture graphics processing units (GPUs) require efficient memory management units (MMUs) to optimize data transfer paths.
[0003] Existing multi-die architectures typically employ a uniform configuration strategy, where all Page Table Entries (PTEs) in all dies are configured with the exact same port mask. Regardless of which die the data transmission request originates from, it is routed to a fixed peer-to-peer (P2P) port combination according to this fixed port mask. However, this static configuration, which cannot identify the request source, leads to low local port utilization, forcibly increases unnecessary cross-die communication, resulting in high communication latency, high power consumption, and uneven port load distribution, thus limiting the overall system performance and scalability. Summary of the Invention
[0004] This invention provides a communication routing control method, device, medium, and product to address the deficiencies in related technologies.
[0005] This invention provides a communication routing control method, comprising the following steps:
[0006] Obtain a data transmission request, wherein the data transmission request carries attribute information used to characterize the origin features;
[0007] Based on the data transmission request, the mask configuration of the target port is determined. The mask configuration of the target port is used to define the mapping relationship between the data transmission request and the target port, and the mask configuration is different for different attribute information.
[0008] The mask configuration of the target port is updated in the address mapping table entry of the storage management unit, so that the storage management unit routes the data transmission request to the target port based on the updated address mapping table entry.
[0009] According to a communication routing control method provided by the present invention, determining the mask configuration of the target port based on the data transmission request includes:
[0010] Obtain real-time load status information for multiple candidate ports;
[0011] Based on the attribute information, the real-time load status information of each candidate port, and the preset routing strategy, the target port for carrying the data transmission request is selected from the plurality of candidate ports.
[0012] Generate the mask configuration for the target port.
[0013] According to a communication routing control method provided by the present invention, the step of obtaining real-time load status information of multiple candidate ports includes:
[0014] Real-time collection of resource occupancy levels in the data buffer corresponding to each candidate port;
[0015] The water level value of each resource is used as the real-time load status information of the corresponding candidate port.
[0016] According to a communication routing control method provided by the present invention, the step of selecting the target port for carrying the data transmission request from the plurality of candidate ports based on the attribute information, the real-time load status information of each candidate port, and a preset routing strategy includes:
[0017] Based on the attribute information, local candidate ports that are adjacent to the origin location are identified from the plurality of candidate ports;
[0018] If the resource occupancy level of the local candidate port does not exceed the congestion threshold, then the local candidate port is selected as the target port.
[0019] If the resource occupancy level of the local candidate port exceeds the congestion threshold, then the target port is selected from the non-local candidate ports whose resource occupancy level does not exceed the congestion threshold.
[0020] According to a communication routing control method provided by the present invention, the step of generating the mask configuration for the target port includes:
[0021] Set the corresponding bit in the multi-bit binary code of the target port to the enabled state;
[0022] Set the corresponding bits of the remaining ports in the multi-bit binary code to the disabled state;
[0023] The configured multi-bit binary code is used as the mask for the target port.
[0024] According to a communication routing control method provided by the present invention, updating the mask configuration of the target port to the address mapping table entry of the storage management unit includes:
[0025] Based on the target virtual address of the data transmission request, index the corresponding address mapping table entry in the storage management unit;
[0026] Write the target port mask configuration into the reserved port mask field in the address mapping table entry, overwriting the original configuration data in the address mapping table entry.
[0027] According to a communication routing control method provided by the present invention, the step of updating the mask configuration of the target port to the address mapping table entry of the storage management unit, so that the storage management unit routes the data transmission request to the target port based on the updated address mapping table entry, includes:
[0028] The mask configuration of the target port is updated in the address mapping table entry of the storage management unit, so that the storage management unit uses the target port controller to parse the mask configuration in the updated address mapping table entry, and controls the data forwarding path to transmit the data transmission request to the target port according to the guidance of the mask configuration.
[0029] The present invention also provides a communication routing control device, comprising the following modules:
[0030] The acquisition module is used to acquire a data transmission request, wherein the data transmission request carries attribute information for characterizing the origin features;
[0031] The determination module is used to determine the mask configuration of the target port according to the data transmission request. The mask configuration of the target port is used to define the mapping relationship between the data transmission request and the target port, and the mask configuration is different for different attribute information.
[0032] The routing module is used to update the mask configuration of the target port to the address mapping table entry of the storage management unit, so that the storage management unit routes the data transmission request to the target port based on the updated address mapping table entry.
[0033] The present invention also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement the communication routing control method as described above.
[0034] The present invention also provides a non-transitory computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the communication routing control method as described above.
[0035] The present invention also provides a computer program product, including a computer program that, when executed by a processor, implements the communication routing control method as described above.
[0036] The communication routing control method, device, medium, and product provided by this invention acquire data transmission requests carrying origin feature attribute information, determine differentiated target port mask configurations accordingly, and finally update the mask configuration to the address mapping table of the storage management unit, thus realizing a source identity-aware intelligent routing mechanism. Because different origins are assigned exclusive mask configurations matching their physical location or characteristics, priority utilization of local ports is achieved, effectively avoiding blind cross-die transmission caused by single configurations in existing technologies. This significantly reduces communication latency and power consumption, and improves the overall communication efficiency and scalability of multi-processor unit systems. Attached Figure Description
[0037] To more clearly illustrate the technical solutions in this invention or related technologies, the accompanying drawings used in the description of the embodiments or related technologies will be briefly introduced below. Obviously, the accompanying drawings described below are some embodiments of this invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0038] Figure 1 This is a flowchart illustrating the communication routing control method provided by the present invention.
[0039] Figure 2 This is a schematic diagram of the architecture of the intelligent allocator provided by the present invention.
[0040] Figure 3 This is a schematic diagram of the communication routing control device provided by the present invention.
[0041] Figure 4 This is a schematic diagram of the structure of the electronic device provided by the present invention.
[0042] Figure label:
[0043] 310: Acquisition module; 320: Determination module; 330: Routing module; 410: Processor; 420: Communication interface; 430: Memory; 440: Communication bus. Detailed Implementation
[0044] To make the objectives, technical solutions, and advantages of this invention clearer, the technical solutions of this invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of this invention. All other embodiments obtained by those skilled in the art based on the embodiments of this invention without creative effort are within the scope of protection of this invention.
[0045] In applications requiring massively parallel processing, such as high-performance computing, artificial intelligence training and inference, and graphics rendering, GPU performance is crucial. With the evolution of chip manufacturing processes, multi-die GPU architectures have gradually become mainstream in order to overcome the performance bottleneck of single chips. In this architecture, the configuration technology of the MMU, especially the port mask allocation strategy in the PTE, directly determines the path and efficiency of data transmission within the chip.
[0046] However, the dual-die GPU architecture in related technologies generally adopts a static and uniform configuration mode. Specifically, the two dies in the system have completely identical PTE configurations, that is, the PortMask in the PTEs of Die 0 and Die 1 both use the same set of values, such as 0xFFFF. This configuration method results in the system being in a "die-free" state. Therefore, regardless of the origin of the request, the system can only mechanically route data to a fixed point-to-point port combination according to this fixed set of PortMasks.
[0047] However, in related technologies, the fixed PortMask configuration and inability to differentiate based on Die characteristics result in extremely low local port utilization. For example, a request initiated by Die 0 may be routed to the P2P port of Die 1, rather than prioritizing the use of Die 0's own local port. Secondly, the inability to differentiate the source in related technologies leads to a large amount of unnecessary cross-Die communication, significantly increasing communication latency and system power consumption. Furthermore, the identical configuration strategy also results in severely uneven load distribution on P2P ports, frequently causing some ports to become congested due to overload while others remain idle. Finally, when the system needs to support more Dies, this rigid configuration strategy cannot be effectively scaled, limiting the flexibility of the GPU architecture.
[0048] To address this issue, the present invention provides a communication routing control method. This method aims to acquire data transmission requests carrying attribute information characterizing the origin of the request, determine a differentiated target port mask configuration based on the request, and update this configuration in the address mapping table of the storage management unit. The updated table entry is then used to route the request to the target port, thereby achieving die-aware intelligent routing. This prioritizes the use of local port resources, reduces cross-die communication overhead, balances port load, and improves the scalability and overall performance of multi-die systems. The method provided by this invention is applied to multi-processor unit systems, such as multi-die GPU systems. This method aims to solve problems in related technologies, such as rigid port configurations and low local port utilization caused by the inability to identify the request source.
[0049] in, Figure 1 This is a flowchart illustrating the communication routing control method provided by the present invention, as shown below. Figure 1 As shown, the method includes steps 110, 120 and 130.
[0050] Step 110: Obtain a data transmission request. The data transmission request carries attribute information used to characterize the origin features.
[0051] Here, a data transfer request can be understood as an instruction or signal that enables data interaction between different components within a computing system. It can be a read / write access request initiated by a computing core to memory, video memory, or other computing cores. A data transfer request characterizes an event within the system where data flow needs to be transmitted via an interconnect network. For example, during massively parallel computing or artificial intelligence training, a computing unit in Die 0 might need to write the computation result to video memory or read data from Die 1, thus generating a data transfer request.
[0052] Attribute information can be understood as tagged data that can uniquely identify or distinguish the hardware source that issued the data transfer request; that is, attribute information is used to indicate which physical unit in the system initiated the data transfer request. For example, in a dual-die GPU architecture, attribute information can be a Die ID, such as a Die 0 identifier or a Die 1 identifier.
[0053] As an optional embodiment, data transmission requests and their attribute information can be obtained through hardware circuit detection. For example, source identification logic can be set at the front-end interface of the storage management unit. When a request arrives at the storage management unit, this logic circuit automatically extracts the source ID field on the request bus, or determines its source based on the physical channel port number where the request arrives.
[0054] Since the data transmission request carries attribute information that characterizes the origin of the data transmission request, the lack of awareness in related technologies can be broken based on this attribute information. This allows the source of the data transmission request to be perceived, that is, to identify which processing unit initiated the data transmission request, thus providing a basis for decision-making for subsequent differentiated configuration.
[0055] Step 120: Determine the mask configuration of the target port according to the data transmission request. The mask configuration of the target port is used to define the mapping relationship between the data transmission request and the target port, and the mask configuration is different for different attribute information.
[0056] Specifically, the destination port can be understood as the physical exit point where data leaves the current processing unit, enters the interconnection network, or reaches its destination, such as the physical port of a P2P interface. The destination port mask configuration can be understood as a kind of routing control data, usually represented as a set of binary bitmaps or encoded values, used to indicate which physical ports are allowed, prioritized, or prohibited.
[0057] The target port mask configuration is used to define the mapping relationship between data transmission requests and target ports. For example, a mask configuration of "0x000F" corresponds to binary 0000 1111, which means that the lower 4 bits of the port are activated as the mapping target, while the higher 4 bits of the port are masked.
[0058] Specifically, the core of this step lies in the fact that different attribute information corresponds to different mask configurations. In other words, unlike related technologies, this embodiment no longer uses the same fixed configuration for all dies, but instead formulates a unique routing strategy based on the origin characteristics identified in step 110.
[0059] As an optional implementation, the mask configuration can be determined based on the principle of prioritizing local ports. For example, if the attribute information indicates that the origin is Die 0, then its corresponding mask configuration is determined to preferentially map to the set of ports of Die 0's local physical connection. In this scenario, the determined mask configuration value can be "0x000F", which corresponds to 0000 1111 in binary, where the bits set to "1" correspond to the local ports of Die 0.
[0060] Similarly, if the attribute information indicates that the origin is Die 1, then its corresponding mask configuration is determined to preferentially map to the port set of Die 1's local physical connection. In this scenario, the determined mask configuration value can be "0x00F0", which corresponds to 1111 0000 in binary, where the bits set to "1" correspond to the local ports of Die 1.
[0061] In this way, differentiated mask configuration for Die is achieved. Requests to Die 0 are routed to the port set of Die 0's local physical connection, and requests to Die 1 are routed to the port set of Die 1's local physical connection, thus avoiding the cross-Die communication overhead caused by Die 0's requests being incorrectly routed to the port of the remote Die 1.
[0062] Step 130: Update the target port mask configuration to the address mapping table entry of the storage management unit so that the storage management unit routes data transfer requests to the target port based on the updated address mapping table entry.
[0063] Specifically, the storage management unit is the core component responsible for virtual address to physical address translation and memory protection. Address mapping table entries typically refer to page table entries, which contain not only physical page frame addresses but also fields for controlling access permissions and routing attributes.
[0064] As an optional embodiment, the update process refers to writing the mask configuration determined in step 120 into the reserved port mask field in the PTE. For example, for the virtual address range belonging to Die 0, the mask field in its PTE is updated to "0x000F"; for the virtual address range belonging to Die 1, the mask field in its PTE is updated to "0x00F0".
[0065] When the storage management unit (MMU) operates based on the updated address mapping table entries, for subsequent data transfer requests, the MMU reads the mask configuration in the PTE while performing address translation. Subsequently, the MMU or its cooperating P2P port controller controls the internal data selector or crossbar switch according to the instructions of the mask configuration, physically directing the data stream to the target port enabled by the mask, i.e., the matching P2P port.
[0066] In summary, the communication routing control method provided in this embodiment acquires data transmission requests carrying origin feature attribute information, determines differentiated target port mask configurations accordingly, and finally updates the mask configuration to the address mapping table of the storage management unit, thus realizing a source identity-aware intelligent routing mechanism. Because different origins are assigned exclusive mask configurations matching their physical location or characteristics, priority utilization of local ports is achieved, effectively avoiding blind cross-die transmission caused by single configurations in existing technologies. This significantly reduces communication latency and power consumption, and improves the overall communication efficiency and scalability of the multi-processor unit system.
[0067] While static, attribute-based differential configuration can solve the problem of high cross-die overhead, uneven load distribution may occur during actual system operation. For example, Die 0's local port may be under high data throughput, while Die 1's port is relatively idle. Forcing Die 0's requests to queue and wait for its local port at this time will lead to local congestion, which will reduce the overall throughput of the system. To avoid single-point congestion and achieve dynamic load balancing, this embodiment preferably adopts a dynamic configuration strategy that combines real-time load status.
[0068] Based on this, in step 120 above, determining the mask configuration of the target port according to the data transmission request includes:
[0069] Step 121: Obtain real-time load status information for multiple candidate ports.
[0070] Specifically, candidate ports can be understood as all physically available data exits in the system. For example, in a dual-die architecture, candidate ports may include physical ports belonging to Die 0 and physical ports belonging to Die 1.
[0071] Real-time load status information is used to characterize the current busy / idle state or congestion status of a port. As an optional implementation, real-time load status information can be obtained by setting a water level monitor in the data buffer of each candidate port. Specifically, the real-time load status information can be the ratio of the occupied space in the buffer to the total space, i.e., the water level value.
[0072] For example, if the candidate port's water level is 60%, it indicates that the buffer is more than half full. If the candidate port's water level is 75%, it indicates that the buffer is relatively full and close to congestion. If the candidate port's water level is 10%, it indicates that the buffer is relatively empty and the load is light. If the candidate port's water level is 85%, it indicates that the buffer is very full and the risk of congestion is high.
[0073] Step 122: Based on attribute information, real-time load status information of each candidate port, and preset routing strategy, select the target port from multiple candidate ports to carry the data transmission request.
[0074] Specifically, a preset routing strategy refers to a set of logical rules that guide the dynamic selection of the optimal data transmission path, aiming to balance the relationship between low-latency communication requirements and overall system load balancing. Preset routing strategies can include local priority strategies, load balancing strategies, round-robin strategies, or adaptive strategies. In particular, the preset routing strategy can be determined based on the different emphases of bandwidth, latency, or throughput in the application scenario. For example, in latency-sensitive graphics rendering scenarios, the routing strategy may favor a local priority strategy to reduce cross-die transmission, while in scenarios involving large-scale AI model training and huge data throughput, the routing strategy may favor a load balancing strategy to prevent single-point congestion.
[0075] As an optional implementation, local candidate ports can first be identified from multiple candidate ports based on attribute information. Then, the real-time load status information of these local candidate ports is checked. If the local port is not congested, it is preferentially selected as the target port to ensure low latency. If the local port is congested, the target port is selected from non-local ports with lighter loads.
[0076] Step 123: Generate the target port mask configuration.
[0077] After selecting a specific target port, it needs to be converted into a hardware-recognizable mask format to obtain the mask configuration for the target port.
[0078] As an optional implementation, the mask configuration typically uses a bitmap format, i.e., multi-bit binary code. The generation process is as follows: the bits corresponding to the target port in the multi-bit binary code are set to the enabled state, such as set to "1", and the bits corresponding to the other unselected ports are set to the disabled state, such as set to "0".
[0079] Through the above steps, this embodiment not only achieves identity-based static isolation but also dynamic scheduling based on real-time traffic conditions. By monitoring port levels in real time and dynamically adjusting mask configurations, it can effectively cope with sudden traffic surges and single-point congestion while ensuring local priority, thus achieving optimal utilization of system resources and maximizing throughput.
[0080] Considering that real-time load status information is a relatively abstract concept, at the hardware implementation level, it is necessary to find a physical indicator that can accurately, quantitatively, and with low latency reflect the degree of port congestion. While port throughput can reflect the volume of traffic, it cannot directly indicate whether congestion is currently occurring. In contrast, the data buffer inside the port acts like a reservoir; the amount of remaining space directly determines whether new data can be received without overflow or blockage. Therefore, this embodiment preferably uses the buffer's water level as a key indicator for measuring load status.
[0081] Specifically, in step 121 above, obtaining real-time load status information for multiple candidate ports includes:
[0082] Real-time collection of resource occupancy levels in the data buffer corresponding to each candidate port;
[0083] The water level value of each resource is used as the real-time load status information of the corresponding candidate port.
[0084] Specifically, the data buffer is the hardware storage space used by each P2P port to temporarily store data to be sent or processed. The resource occupancy level refers to the proportion or specific value of the amount of data currently stored in the buffer to its total capacity. The resource occupancy level quantifies the current pressure on each candidate port. The higher the resource occupancy level, the higher the congestion risk of the candidate port and the lower the remaining available processing capacity.
[0085] As an alternative implementation, a water level monitor can be integrated into the controller of each P2P port. This monitor periodically samples the read / write pointer position of the buffer to calculate the current fill depth.
[0086] After collecting the resource occupancy level value, to facilitate unified threshold comparison and logical judgment by the subsequent routing decision module, the resource occupancy level value can be formatted or normalized to obtain the real-time load status information of the corresponding candidate port.
[0087] As an optional embodiment, to simplify the subsequent comparison logic, continuous resource occupancy levels can also be mapped to discrete state levels.
[0088] For example, if the resource utilization level is less than 50%, the candidate port is determined to be in an idle state; if 50% ≤ resource utilization level < 80%, the candidate port is determined to be in a normal state; if the resource utilization level is greater than or equal to 80%, the candidate port is determined to be in a congested state.
[0089] In multi-processor unit systems, cross-die communication typically requires longer physical interconnect links, leading to significantly increased latency and power consumption compared to intra-chip communication. Therefore, data transmission should ideally be confined to the local area of its origin. However, mechanically prioritizing local ports can cause requests to be blocked when those ports experience sudden surges in data flow, leading to computational unit stagnation and severely impacting overall system performance. To achieve the optimal balance between low communication overhead and high system throughput, this embodiment preferably employs a smart selection strategy based on congestion threshold determination: "local priority, congestion overflow."
[0090] Specifically, in step 122 above, based on attribute information, real-time load status information of each candidate port, and a preset routing strategy, a target port for carrying data transmission requests is selected from multiple candidate ports, including:
[0091] Step 1221: Based on the attribute information, identify the local candidate port that is close to the origin location from multiple candidate ports.
[0092] Specifically, local candidate ports refer to the set of ports that are directly connected to or closest to the origin in the physical layout. Local candidate ports are adjacent to the origin location, thus providing the shortest physical transmission path, achieving minimal communication latency and the lowest transmission power consumption. These local candidate ports can be determined based on a physical topology mapping table maintained by the system.
[0093] For example, if the attribute information obtained in step 110 indicates that the origin is Die 0, according to the mapping relationship between the origin and the local ports in the physical topology mapping table maintained by the system, ports 0, 1, 2 and 3 are identified as local candidate ports that are close to the physical location of Die 0.
[0094] Step 1222: If the resource occupancy level of the local candidate port does not exceed the congestion threshold, then select the local candidate port as the target port.
[0095] Specifically, the congestion threshold is a preset critical value used to define whether a port is in a busy state. This threshold can be set according to system bandwidth and latency requirements, for example, to 80% or 90% of the buffer capacity.
[0096] If the resource occupancy level of the local candidate port does not exceed the congestion threshold, it indicates that the data buffer of the local candidate port still has sufficient remaining space to process new data transmission requests in a timely manner without causing blockage. In this case, in order to make full use of the local resource advantages and avoid unnecessary cross-die communication overhead, the local candidate port is selected as the target port.
[0097] For example, if the resource occupancy level of a local candidate port is 60% and the congestion threshold is 90%, since 60% < 90%, the local candidate port is determined to be in a healthy state and is not congested. Therefore, the routing policy decision is "maintain local priority," and the local candidate port is directly selected as the target port.
[0098] Step 1223: If the resource occupancy level of a local candidate port exceeds the congestion threshold, then select the target port from the non-local candidate ports whose resource occupancy level does not exceed the congestion threshold.
[0099] If the resource occupancy level of a local candidate port exceeds the congestion threshold, it indicates that the local candidate port is under high load. Continuing to write data could easily cause buffer overflow or pipeline stall. In order to quickly clear the backlog of traffic, maintain the overall data throughput capacity of the system, and avoid the spread of single-point failures, a target port is selected from non-local candidate ports whose resource occupancy level has not exceeded the congestion threshold. Non-local candidate ports refer to a set of ports that are not physically adjacent to the originating point and typically belong to other processing units (such as remote dies).
[0100] For example, if the resource occupancy level of a local candidate port is 95% and the congestion threshold is 90%, the local candidate port is determined to be congested because 95% > 90%. If the resource occupancy level of a non-local candidate port is 40%, the non-local candidate port is used as the target port because 40% < 90%.
[0101] In summary, this embodiment achieves dynamic switching of routing policies by introducing a congestion threshold determination mechanism. That is, local ports are used first when the local load is normal, and non-local idle ports are borrowed when the local load is congested. This ensures low latency and low power consumption under normal conditions, as well as high availability and high throughput under extreme loads.
[0102] Considering that the underlying hardware implementation requires an efficient, compact data exchange format between the storage management unit and the port controller that can simultaneously express one-to-one or one-to-many mapping relationships, using complex list or object structures to store routing information would consume on-chip storage resources and result in slow parsing speeds. In contrast, multi-bit binary codes can directly correspond the state of each bit to the on / off state of the physical hardware, offering extremely high hardware processing efficiency. Therefore, this embodiment preferably uses bit mapping to generate and store the mask configuration.
[0103] Specifically, in step 123 above, generating the mask configuration for the target port includes:
[0104] Set the corresponding bit in the multi-bit binary code of the target port to the enabled state;
[0105] Set the corresponding bits of the remaining ports in the multi-bit binary code to the disabled state;
[0106] The configured multi-bit binary code is used as the mask for the target port.
[0107] Here, the multi-bit binary code is binary data with a fixed bit width, which is usually consistent with the total number of candidate ports in the system. For example, in a dual-die GPU system, if there are a total of 8 candidate ports, the multi-bit binary code will be 8 bits.
[0108] Since the target port is the physical exit point used to carry the current data transmission request, in order to explicitly inform the underlying hardware that data flow is allowed to be transmitted through these ports, this embodiment sets the corresponding bit in the multi-bit binary code of the target port to the enabled state, thereby activating the corresponding data forwarding channel at the physical layer. The enabled state is used to indicate to the hardware circuitry that the path corresponding to the port is connected.
[0109] Furthermore, the remaining ports refer to ports other than the target port among multiple candidate ports. The disabled state is used to indicate that the hardware circuitry blocks or shields the path corresponding to that port. Since the remaining ports may be congested, faulty, or not preferred due to distance, to prevent data flow from mistakenly entering these non-preferred or unavailable paths, causing data loss or performance degradation, this embodiment sets the corresponding bits in the multi-bit binary code of the remaining ports to the disabled state, thereby achieving physical-level traffic isolation and protection.
[0110] After the above bit setting operation, the resulting multi-bit binary code is the mask configuration that can be written to the hardware register.
[0111] Considering that the actual flow of data transmission requests at the hardware level is automatically guided by the storage management unit based on hardware entries, simply determining the target port mask configuration at the logical level is insufficient; this logical decision needs to be permanently embedded into the hardware execution rules in real time. If the hardware entries are not updated, the storage management unit will still perform incorrect or inefficient routing based on the old configuration. To ensure that the hardware routing behavior remains consistent with the latest intelligent decisions, this embodiment preferably uses the method of directly modifying the control field in the address mapping table to implement the configuration.
[0112] Specifically, in step 130 above, updating the target port mask configuration to the address mapping table entry of the storage management unit includes:
[0113] Based on the target virtual address of the data transfer request, index the corresponding address mapping table entry in the storage management unit;
[0114] Write the target port mask configuration into the reserved port mask field in the address mapping table entry, overwriting the original configuration data in the address mapping table entry.
[0115] Specifically, a data transfer request typically includes a target virtual address, which is the logical memory address where data needs to be written or read. The storage management unit internally maintains a multi-level page table structure to manage the mapping from virtual addresses to physical addresses. Address mapping entries are the basic units in this multi-level page table structure, with each entry corresponding to a memory page.
[0116] As an optional embodiment, the high-order part of the target virtual address in the data transmission request can be used as an index key value to search in the page table pointed to by the page table base address register, thereby accurately locating the unique address mapping table entry that manages the target virtual address.
[0117] For example, if the target virtual address of the data transfer request belongs to the video memory space range of Die 0, the memory management unit will index to a specific address mapping table entry in the Die 0 page table; if it belongs to the space of Die 1, it will index to the address mapping table entry in the Die 1 page table.
[0118] In addition, the address mapping table entries not only contain the physical page frame number and access permission bits, but also reserve a port mask field for controlling point-to-point communication routing. The bit width of this field corresponds to the number of candidate ports.
[0119] The step of writing the target port mask configuration generated in the previous step into the port mask field can be understood as an overwrite operation, that is, no matter what the original configuration data in the address mapping table is, it will be replaced by the latest configuration.
[0120] This embodiment ensures that the storage management unit can immediately execute the latest routing logic based on the updated address mapping table entries through precise indexing and real-time overwrite operations, achieving millisecond-level dynamic switching of communication paths.
[0121] Considering that the primary responsibility of the storage management unit (MMU) is to translate virtual addresses into physical addresses, while actual packet forwarding and physical link control are typically performed by dedicated interface controllers (such as P2P port controllers), and that although the MMU stores the mask configuration, it does not directly drive the data lines, a linkage mechanism needs to be established in the hardware architecture to ensure that the logical configuration stored in the MMU's address mapping table can be correctly read by downstream execution units and translated into physical actions. This embodiment introduces a target port controller as the execution entity to parse the mask instructions from the MMU, thereby precisely controlling the underlying data flow.
[0122] Specifically, in step 130 above, the mask configuration of the target port is updated in the address mapping table entry of the storage management unit, so that the storage management unit routes the data transmission request to the target port based on the updated address mapping table entry, including:
[0123] The mask configuration of the target port is updated in the address mapping table entry of the storage management unit, so that the storage management unit can use the target port controller to parse the mask configuration in the updated address mapping table entry, and control the data forwarding path to transmit the data transmission request to the target port according to the guidance of the mask configuration.
[0124] Specifically, address mapping entries can be viewed as a bridge for software and hardware interaction. First, based on the target virtual address of the data transmission request, the corresponding address mapping entry is indexed. Then, the generated target port mask configuration is written into the reserved mask field in that address mapping entry.
[0125] The target port controller is a hardware logic module located behind or tightly coupled to the storage management unit, responsible for managing the on / off status and traffic scheduling of physical P2P ports.
[0126] When a data transfer request is initiated, the storage management unit, while completing address translation, passes the mask configuration read from the address mapping table to the target port controller. The target port controller parses this mask configuration. For example, if the controller reads the mask configuration as 0000 1111, it parses out that bits 0-3 are high (enabled) and bits 4-7 are low (disabled).
[0127] In addition, the mask configuration guidance refers to the logic control signal generated based on the state of each bit in the mask configuration to control the connectivity of the physical circuit, and the data forwarding path refers to the physical bus, cross switch matrix or multiplexer connecting the computing unit and the port for transmitting data packets.
[0128] As an optional implementation, based on the guidance instructions of the mask configuration, the target port controller sends control signals to the data forwarding path. For the enabled bits, the switch to the corresponding port is turned on, allowing data packets to pass through. For the disabled bits, the switch to the corresponding port is turned off, blocking the data flow. Ultimately, data transmission requests are accurately transmitted to the target port only along the established physical link, thus completing the entire process from logical configuration to physical routing.
[0129] Figure 2 This is a schematic diagram of the architecture of the intelligent allocator provided by the present invention. This allocator is used to implement the above-mentioned communication routing control method, such as... Figure 2 As shown, this distributor adopts a modular design to achieve intelligent control of communication routing, and its workflow is as follows:
[0130] First, the chip identification module is responsible for acquiring data transmission requests and identifying the source of these requests. Specifically, the chip identification module uses an identification circuit integrated in the storage management unit to detect the attribute information of the processing unit that initiated the data transmission request, thereby determining the origin of the request. Simultaneously, the chip identification module also analyzes the chip affinity and preset routing preferences of the originating chip to assist the subsequent routing decision module in formulating an initial routing strategy that conforms to the characteristics of the originating chip.
[0131] Meanwhile, the load analysis module works in parallel, responsible for acquiring real-time load status information of multiple candidate ports. Utilizing a load monitor, the load analysis module monitors the port load of each point-to-point port, monitors the congestion of the data buffer in real time, and performs performance statistics on historical performance data, thereby quantifying the resource occupancy level of each port.
[0132] Next, based on the identified attribute information and analyzed real-time load status information, the routing decision module calculates the current optimal path in conjunction with the preset routing strategy. If congestion is detected, the routing decision module triggers a dynamic adjustment mechanism to select a non-congested alternative port; if a port failure is encountered, the fault handling logic is initiated to replan the path and finally determine the target port to carry the data transmission request.
[0133] Finally, the routing decision results are sent to the mask configuration engine, which is responsible for generating the mask configuration for the corresponding target port and performing real-time configuration updates, writing the configuration to a configuration register that supports dynamic updates. During this process, the engine also performs configuration consistency checks to ensure the validity of the new configuration; if the update fails or causes a system anomaly, a rollback mechanism is immediately triggered to restore the system to a safe configuration, thus completing the entire closed-loop control process.
[0134] The communication routing control device provided by the present invention is described below. The communication routing control device described below can be referred to in correspondence with the communication routing control method described above.
[0135] Based on any of the above embodiments Figure 3 This is a schematic diagram of the communication routing control device provided by the present invention, as shown below. Figure 3 As shown, the device includes:
[0136] The acquisition module 310 is used to acquire a data transmission request, which carries attribute information used to characterize the origin features;
[0137] The determination module 320 is used to determine the mask configuration of the target port according to the data transmission request. The mask configuration of the target port is used to define the mapping relationship between the data transmission request and the target port, and the mask configuration is different for different attribute information.
[0138] The routing module 330 is used to update the mask configuration of the target port to the address mapping table entry of the storage management unit, so that the storage management unit routes the data transmission request to the target port based on the updated address mapping table entry.
[0139] Figure 4 This is a schematic diagram of the structure of the electronic device provided by the present invention, such as... Figure 4 As shown, the electronic device may include a processor 410, a communications interface 420, a memory 430, and a communication bus 440, wherein the processor 410, the communications interface 420, and the memory 430 communicate with each other through the communication bus 440. The processor 410 can call logical instructions in the memory 430 to execute a communication routing control method.
[0140] Furthermore, the logical instructions in the aforementioned memory 430 can be implemented as software functional units and, when sold or used as independent products, can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention, or the part that contributes to related technologies, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0141] On the other hand, the present invention also provides a computer program product, which includes a computer program that can be stored on a non-transitory computer-readable storage medium. When the computer program is executed by a processor, the computer is able to execute the communication routing control methods provided by the above methods.
[0142] In another aspect, the present invention also provides a non-transitory computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, is implemented to perform the communication routing control methods provided by the methods described above.
[0143] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate, and the components shown as units may or may not be units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. Those skilled in the art can understand and implement this without any creative effort.
[0144] Through the above description of the embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus necessary general-purpose hardware platforms, and of course, it can also be implemented by hardware. Based on this understanding, the above technical solutions, in essence or the parts that contribute to the related technology, can be embodied in the form of software products. This computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute the methods described in the various embodiments or some parts of the embodiments.
[0145] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and not to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present invention.
Claims
1. A communication routing control method, characterized in that, include: Obtain a data transmission request, wherein the data transmission request carries attribute information used to characterize the origin features; The attribute information is tag data that can uniquely identify or distinguish the identity of the hardware source that issued the data transmission request; Based on the data transmission request and the principle of local port priority, the mask configuration of the target port is determined. The mask configuration of the target port is used to define the mapping relationship between the data transmission request and the target port, and the mask configuration is different for different attribute information. The mask configuration of the target port is updated in the address mapping table entry of the storage management unit so that for subsequent data transmission requests, the storage management unit reads the mask configuration in the address mapping table entry while performing address translation, and routes the data transmission request to the target port based on the indication of the mask configuration. The storage management unit internally maintains a multi-level page table structure, which is used to manage the mapping from virtual addresses to physical addresses. The address mapping table entry is the basic unit in the multi-level page table structure, and each entry corresponds to a memory page. The address mapping table entry contains the physical page frame address and a port mask field used to control point-to-point communication routing.
2. The communication routing control method according to claim 1, characterized in that, Determining the target port mask configuration based on the data transmission request includes: Obtain real-time load status information for multiple candidate ports; Based on the attribute information, the real-time load status information of each candidate port, and the preset routing strategy, the target port for carrying the data transmission request is selected from the plurality of candidate ports. Generate the mask configuration for the target port.
3. The communication routing control method according to claim 2, characterized in that, The process of obtaining real-time load status information for multiple candidate ports includes: Real-time collection of resource occupancy levels in the data buffer corresponding to each candidate port; The water level value of each resource is used as the real-time load status information of the corresponding candidate port.
4. The communication routing control method according to claim 3, characterized in that, The step of selecting the target port for carrying the data transmission request from the plurality of candidate ports based on the attribute information, the real-time load status information of each candidate port, and the preset routing strategy includes: Based on the attribute information, local candidate ports that are adjacent to the origin location are identified from the plurality of candidate ports; If the resource occupancy level of the local candidate port does not exceed the congestion threshold, then the local candidate port is selected as the target port. If the resource occupancy level of the local candidate port exceeds the congestion threshold, then the target port is selected from the non-local candidate ports whose resource occupancy level does not exceed the congestion threshold.
5. The communication routing control method according to claim 3, characterized in that, The mask configuration for generating the target port includes: Set the corresponding bit in the multi-bit binary code of the target port to the enabled state; Set the corresponding bits of the remaining ports in the multi-bit binary code to the disabled state; The configured multi-bit binary code is used as the mask for the target port.
6. The communication routing control method according to any one of claims 1 to 5, characterized in that, The step of updating the mask configuration of the target port to the address mapping table entry of the storage management unit includes: Based on the target virtual address of the data transmission request, index the corresponding address mapping table entry in the storage management unit; Write the target port mask configuration into the reserved port mask field in the address mapping table entry, overwriting the original configuration data in the address mapping table entry.
7. The communication routing control method according to any one of claims 1 to 5, characterized in that, The step of updating the mask configuration of the target port to the address mapping table entry of the storage management unit, so that the storage management unit routes the data transmission request to the target port based on the updated address mapping table entry, includes: The mask configuration of the target port is updated in the address mapping table entry of the storage management unit, so that the storage management unit uses the target port controller to parse the mask configuration in the updated address mapping table entry, and controls the data forwarding path to transmit the data transmission request to the target port according to the guidance of the mask configuration.
8. An electronic device comprising a memory, a processor, and a computer program stored in the memory and running on the processor, characterized in that, When the processor executes the computer program, it implements the communication routing control method as described in any one of claims 1 to 7.
9. A non-transitory computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the communication routing control method as described in any one of claims 1 to 7.
10. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the processor, it implements the communication routing control method as described in any one of claims 1 to 7.