Switch, system and method for data transmission based on shared pool and fan-out structure
By using a shared pool and fan-out data transmission method, the performance bottleneck of switches in multi-port, high-bandwidth, low-latency scenarios is solved, achieving efficient data storage and transmission, and improving system resource utilization and response speed.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SHANGHAI XINLIJI SEMICON CO LTD
- Filing Date
- 2025-12-15
- Publication Date
- 2026-04-17
AI Technical Summary
Existing switches face problems such as bandwidth waste, resource contention and imbalance, and routing table management complexity when handling data traffic with multiple ports, high bandwidth, and low latency requirements, leading to performance bottlenecks and resource waste.
A data transmission method based on a shared pool and fan-out structure is adopted. Data storage is dynamically managed through first and second data transmission requests. Each port independently judges its storage needs and schedules data based on data priority and credit value. Fast and slow channels are used for transmission to ensure that data is only transmitted to the required target port and storage space is released in a timely manner.
It improved bandwidth utilization, reduced data latency and resource contention, optimized data transmission paths, reduced invalid data transmission, and improved system resource utilization and response speed.
Smart Images

Figure CN121334090B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the fields of computer and communication technology, and in particular to a switch, system, and method for data transmission based on a shared pool and fan-out structure. Background Technology
[0002] With the rapid development of artificial intelligence (AI) and high-performance computing (HPC), AI all-in-one servers and server clusters have become core equipment in data centers. In these systems, the PCIe (Peripheral Component Interconnect Express) and CXL (Compute Express Link) protocols, as high-speed interconnect protocols, are widely used for high-speed data transmission between servers, accelerator cards, storage devices, and more. Due to the increasing demands for large-scale data flows and low latency, modern switching systems must be able to handle more complex multi-port data traffic while meeting stringent requirements for high bandwidth and low latency.
[0003] As a core component of these devices, PCIe / CXL switches are responsible for efficiently transmitting data to multiple destination ports. However, with the increasing number of ports, switches face significant performance bottlenecks and resource waste when handling traffic with high bandwidth and low latency requirements.
[0004] Most existing switches rely on a crossbar-based architecture for data routing and forwarding. The data transmission methods within existing switches typically include the following:
[0005] Global broadcast mechanism: In traditional switch architecture, data received from the input port is broadcast to all output ports. Regardless of whether the output port needs the data, it will receive the data packet. This method is mainly used in multicast and broadcast scenarios, but it consumes a lot of system resources.
[0006] Crossbar switching: Data packets are forwarded directly to the target output port via a crossbar. The crossbar supports connections between any input and output ports. However, this structure leads to increased wiring complexity and high latency when there are many ports, making it difficult to handle high-speed, high-traffic scenarios.
[0007] Routing table management: The routing table stores routing information for destination addresses and sends data packets to the correct destination port based on this information. Because data routing needs to be divided into three fixed categories, traditional routing table management needs to handle a large amount of address information. As the number of ports increases, the size and management complexity of the routing table increase exponentially, and the central sorting and scheduling becomes more complex, especially in broadcasts where congestion on a single port can cause massive data congestion.
[0008] Based on the existing switch architecture and data transmission methods, the following technical pain points exist.
[0009] (1) Bandwidth waste: The traditional global broadcast mechanism will broadcast data to all ports. Even if some ports do not need to receive the data, they will still occupy network bandwidth and cache resources. This leads to a lot of bandwidth waste in application scenarios with high bandwidth and low latency requirements.
[0010] (2) Resource contention and imbalance: All output ports share bandwidth and buffer resources. When multiple ports receive unnecessary data at the same time, resource contention is likely to occur. Especially in multi-port switches, resource imbalance and bandwidth conflict have become bottlenecks restricting performance.
[0011] (3) Complexity of routing table management: As the number of ports increases, the size of the routing table also increases, which leads to a significant increase in the complexity and overhead of route lookup and update when the switch is processing large-scale data flow, affecting the overall performance.
[0012] The above background information is provided only to assist in understanding the inventive concept and technical solution of this invention. It does not necessarily belong to the prior art of this application, nor does it necessarily provide technical teaching. In the absence of clear evidence that the above information was disclosed before the filing date of this application, the above background information should not be used to evaluate the novelty and inventiveness of this application. Summary of the Invention
[0013] The purpose of this invention is to provide a data transmission method and communication system based on a shared pool and fan-out structure, which can effectively improve the bandwidth utilization and response speed of the data exchange network and reduce congestion and latency.
[0014] To achieve the above objectives, the technical solution adopted by the present invention is as follows:
[0015] A switch for data transmission based on a shared pool and fan-out structure includes multiple ports, a shared pool, and a fan-out buffer unit, wherein the shared pool is configured as a storage unit shared by all ports of the switch.
[0016] The port includes a first port and a second port. Each first port is electrically connected to the shared pool. The first port is configured to transmit data to the shared pool and transmit a first data transmission request to the second port in response to receiving data from outside the switch. The first data transmission request includes the data length.
[0017] The second port is electrically connected to the fan-out buffer unit. The second port is configured to receive data in the shared pool through the fan-out buffer unit and transmit it to the outside of the switch. In response to receiving a first data transmission request, the target port in the second port generates a second data transmission request based on the first data transmission request, the data length, and its own remaining storage space, and transmits the second data transmission request to the fan-out buffer unit.
[0018] The fan-out buffer unit is electrically connected to the shared pool. When the remaining storage space at the target port is greater than the storage space required for the data length, the fan-out buffer unit schedules and outputs the data at the corresponding position in the shared pool to the target port according to the second data transmission request.
[0019] Furthermore, based on any one or a combination of the aforementioned technical solutions, if the target port determines that its remaining storage space is sufficient to store the data corresponding to the data length, then the target port generates the second data transmission request; otherwise, the target port does not generate the second data transmission request.
[0020] or,
[0021] The target port generates a credit value based on its remaining storage space and the data length. The larger the remaining storage space is compared to the storage space required for the data length, the larger the credit value is. If the credit value is greater than a preset credit threshold, the target port generates the second data transmission request; otherwise, it does not generate the second data transmission request.
[0022] or,
[0023] The target port generates a credit value based on its remaining storage space and the data length. When the remaining storage space is not less than the storage space required for the data length, the credit value is a first credit value. When the remaining storage space is less than the storage space required for the data length, the credit value is a second credit value. The target port generates a second data transmission request based on the credit value and the first data transmission request. If the fan-out buffer unit determines that the credit value corresponding to the second data transmission request is the second credit value, it schedules the data at the corresponding position in the shared pool and outputs it to the target port. Otherwise, the fan-out buffer unit does not schedule the data in the shared pool.
[0024] Furthermore, following any or a combination of the aforementioned technical solutions, the second data transmission request further includes a data priority, and the fan-out buffer unit is further configured to output the data in the shared pool to each of the target ports according to the priority, wherein the higher the priority, the more preferentially the corresponding data is output.
[0025] Furthermore, based on any or a combination of the aforementioned technical solutions, the fan-out buffer unit includes a first data transmission channel and a second data transmission channel, wherein the data transmission rate of the first data transmission channel is higher than the data transmission rate of the second data transmission channel.
[0026] Furthermore, following any one or a combination of the aforementioned technical solutions, the target port generates a credit value based on its remaining storage space and the data length. The larger the remaining storage space is compared to the storage space required for the data length, the larger the credit value is.
[0027] The fan-out buffer unit determines the data that needs to be output first based on the priority and / or the credit value and outputs it through the first data transmission channel, while outputting the data that does not need to be output first through the second data transmission channel.
[0028] Furthermore, following any one or a combination of the aforementioned technical solutions, the fan-out buffer unit determines the output order of the data corresponding to each of the second data transmission requests based on the priority and the credit value. The fan-out buffer unit outputs the first N data items in the output order through the first data transmission channel, and outputs the data items after the first N data items in the output order through the second data transmission channel.
[0029] Furthermore, following any one or a combination of the aforementioned technical solutions, the fan-out buffer unit outputs the data corresponding to the second data transmission request with a priority higher than a preset priority threshold through the first data transmission channel;
[0030] And / or,
[0031] The fan-out buffer unit outputs the data corresponding to the second data transmission request whose credit value is higher than the preset credit threshold through the first data transmission channel.
[0032] Furthermore, following any or a combination of the aforementioned technical solutions, the fan-out buffer unit is further configured to output data in the shared pool to each of the target ports according to the duration of receiving the second data transmission request, wherein the longer the duration, the data corresponding to it is output first.
[0033] Furthermore, in accordance with any or a combination of the aforementioned technical solutions, the shared pool further includes a bypass channel, and the target port is electrically connected to the shared pool through the bypass channel. When the data transmission is unicast, the target port directly transmits the second data transmission request to the shared pool.
[0034] In response to receiving the second data transmission request, the shared pool transmits data to the target port according to the second data transmission request.
[0035] Furthermore, following any one or a combination of the aforementioned technical solutions, when the data transmission is multicast or broadcast, the target port sends the second data transmission request to the fan-out buffer unit.
[0036] Furthermore, following any one or a combination of the aforementioned technical solutions, the first port is configured to generate the first data transmission request based on the data packet header, data length, and data storage location information in the shared pool.
[0037] Furthermore, following any one or a combination of the aforementioned technical solutions, the storage location information is compressed and encoded into a hidden number.
[0038] Furthermore, following any one or a combination of the aforementioned technical solutions, the fan-out buffer unit schedules and outputs data from the corresponding location in the shared pool to the target port, including the following steps:
[0039] The fanout buffer unit determines the location of the data requested to be transmitted by the target port in the shared pool according to the second data transmission request and uses it as the target location.
[0040] The fan-out cache unit copies the data at the target location in the shared pool to the temporary storage area of the fan-out cache unit;
[0041] The fan-out buffer unit outputs the data in the temporary storage area to the target port.
[0042] Furthermore, following any or a combination of the aforementioned technical solutions, the first data transmission request further includes the number of target ports and target port information. Upon receiving the first data transmission request, the target port determines whether it is a target port. If so, it generates a second data transmission request based on the first data transmission request, the data length, and its remaining storage space. The second data transmission request includes the number of target ports.
[0043] The fan-out buffer unit schedules data at the corresponding position in the shared pool and outputs it to the target port, and further includes the following steps: the fan-out buffer unit increments the counter by one each time it outputs data from the temporary storage area to a target port. If the counter value reaches the number of target ports or the absolute value of the difference between the counter value and the number of target ports is less than a preset difference threshold, the fan-out buffer unit sends a data clearing request to the shared pool. In response to receiving the data clearing request, the shared pool clears the data corresponding to the target position.
[0044] Furthermore, following any one or a combination of the aforementioned technical solutions, the first port is configured to, in response to receiving data from outside the switch, parse the header and payload data of the data and determine the data length, and generate the first data transmission request based on the header and the data length;
[0045] And / or,
[0046] The first port transmits at least the load data from the data to the shared pool;
[0047] And / or,
[0048] When data in the shared pool is configured to be transmitted to all target ports, the shared pool clears the data to free up its storage space.
[0049] According to another aspect of the present invention, a communication system for data transmission based on a shared pool and fan-out structure is provided, comprising a plurality of devices to communicate and a switch for data transmission based on a shared pool and fan-out structure as described in any one or a combination of the above technical solutions, wherein each device is electrically connected to the switch and communicates through the switch.
[0050] According to another aspect of the present invention, a data transmission method based on a shared pool and fan-out structure is provided, applicable to a switch including multiple ports, a shared pool, and a fan-out buffer unit, wherein a first port of the ports is electrically connected to the shared pool, a second port of the ports is electrically connected to the fan-out buffer unit, and the shared pool is configured as a shared storage unit for the ports. The data transmission method includes the following steps:
[0051] In response to receiving data from outside the switch, the first port transmits the data to the shared pool and transmits a first data transmission request to the second port, the first data transmission request including the data length;
[0052] In response to receiving the first data transmission request, the target port in the second port generates a second data transmission request based on the first data transmission request, the data length, and its own remaining storage space, and transmits the second data transmission request to the fan-out buffer unit.
[0053] In response to receiving the second data transmission request, the fan-out buffer unit schedules and outputs the data at the corresponding position in the shared pool to the target port according to the second data transmission request. The condition for the data at the corresponding position in the shared pool to be scheduled and output to the target port includes at least that the remaining storage space of the target port is greater than the storage space required for the data length.
[0054] The beneficial effects of the technical solution provided by this invention are as follows:
[0055] a. The present invention separates the storage of data received by the first port of the switch inside the switch and the output of data inside the switch to the outside of the switch through the second port by using the first data transmission request and the second data transmission request, thereby realizing the dynamic and adaptive storage of data received by the switch in the shared pool and maximizing the utilization of the switch's storage space.
[0056] b. This invention enables each second port to independently determine whether it needs to receive data and whether its remaining storage space is sufficient to store the data. Furthermore, only the target port will initiate a second data transmission request, which ensures that data is only transmitted to the target port that is needed and sufficient to store the data. This avoids unnecessary data transmission that is broadcast to all ports in traditional switches. This mechanism greatly improves bandwidth utilization efficiency and avoids invalid data transmission.
[0057] c. This invention schedules data based on data priority, credit value, and the request order and timestamp of each target port, which can further improve the utilization of system resources and reduce data latency;
[0058] d. The present invention ensures the timely transmission of high-priority data and the fair allocation of low-priority data by setting a first data transmission channel and a second data transmission channel in the fan-out buffer unit, one of which is a fast channel and the other is a slow channel. Attached Figure Description
[0059] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0060] Figure 1 A flowchart of a data transmission method based on a shared pool and fan-out structure provided as an exemplary embodiment of the present invention;
[0061] Figure 2 A flowchart illustrating the process of clearing invalid data in a shared pool is provided as an exemplary embodiment of the present invention.
[0062] Figure 3 A schematic diagram illustrating the working principle of each module of the switch provided in an exemplary embodiment of the present invention;
[0063] Figure 4 This is a schematic diagram of the data transmission process for unicast, multicast, and multicast provided by a switch as an exemplary embodiment of the present invention. Detailed Implementation
[0064] To enable those skilled in the art to better understand the present invention, the technical solutions of the present invention will be clearly and completely described below with reference to the accompanying drawings of the embodiments of the present invention. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of the present invention.
[0065] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this invention are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of the invention described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, apparatus, product, or device that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or devices.
[0066] Based on the existing switch architecture and data transmission methods, in addition to the technical pain points mentioned in the background technology, there are also the following shortcomings: (1) Lack of flexibility: Most of the existing routing methods are preset and lack the ability to dynamically adjust according to real-time needs and target port status. The switch cannot make the optimal decision in real time according to the actual data traffic and port needs, which leads to inefficient traffic allocation and waste of resources; (2) Incoordination of port congestion: In multicast or multicast, if the remaining storage space of a certain port is insufficient, it will cause data stagnation and space occupation of other ports. For example, if the central Crossbar replication is used, it is necessary to wait for all ports to have remaining storage space before using Crossbar replication to transmit to each port, or to multicast or broadcast to multiple target ports by copying to multiple buffers, which will cause a great waste of space.
[0067] To address the shortcomings of existing technologies, this invention proposes a switch, system, and method for data transmission based on a shared pool and fan-out structure. The technical solution proposed in this application is applicable to PCIe switches, CXL switches, and network devices or communication systems communicating through PCIe switches or CXL switches. Through the descriptor structure and central pool proposed in this application, data transmission can be dynamically managed more efficiently, optimizing data transmission paths, improving data transmission efficiency within the switch, and reducing resource waste. Especially in scenarios involving multi-port multicast and all-port broadcast, precise descriptor control and feedback mechanisms enable efficient data scheduling and retrieval control, making it particularly suitable for switches, network devices, and communication systems with high bandwidth and low latency requirements.
[0068] In one embodiment of the present invention, a switch for data transmission based on a shared pool and fan-out structure is provided, see [link to relevant documentation]. Figure 3 The switch includes multiple ports, a shared pool, and a fan-out buffer unit, wherein the shared pool is configured as a storage unit shared by all ports of the switch;
[0069] The port includes a first port and a second port. Each first port is electrically connected to the shared pool. The first port is configured to transmit data to the shared pool and transmit a first data transmission request to the second port in response to receiving data from outside the switch. The first data transmission request includes the data length.
[0070] The second port is electrically connected to the fan-out buffer unit. The second port is configured to receive data in the shared pool through the fan-out buffer unit and transmit it to the outside of the switch. In response to receiving a first data transmission request, the target port in the second port generates a second data transmission request based on the first data transmission request, the data length, and its own remaining storage space, and transmits the second data transmission request to the fan-out buffer unit.
[0071] The fan-out buffer unit is electrically connected to the shared pool. When the remaining storage space at the target port is greater than the storage space required for the data length, the fan-out buffer unit schedules and outputs the data at the corresponding position in the shared pool to the target port according to the second data transmission request.
[0072] In this application, the ports of the switch can be either full-duplex or simplex ports. In the above embodiments, the first port is an input port, and the second port is an output port. The input port is configured to receive data from outside the switch and forward the data to other ports, and the output port is configured to receive data from other ports of the switch and transmit the received data to the outside of the switch. When the port is a full-duplex port, each port includes a first port and a second port; when the port is a simplex port, a portion of the ports are the first port, and the other portion are the second port.
[0073] In traditional crossbar switching architectures, data packets are forwarded directly to the target output port via the crossbar. While crossbar architectures support connections between arbitrary inputs and outputs, this mechanism typically relies on global broadcasting, sending data to all output ports. Regardless of whether the output port needs the data, it will receive the packet. Although this global broadcasting method is suitable for broadcast and multicast scenarios, it leads to bandwidth waste and resource contention when there are a large number of ports. Especially in high-speed data flow scenarios, invalid data transmission increases the system burden, resulting in inefficient use of network bandwidth.
[0074] Furthermore, traditional crossbar switches rely on a central scheduling unit to arbitrate based on the remaining storage space of each output port. This method introduces mutual constraints and congestion problems between different ports. When one port lacks sufficient remaining storage space, data transmission on other ports is also affected, leading to resource contention and data transmission blockage among multiple ports, thus impacting overall system performance. This central scheduling method is prone to resource saturation in high-bandwidth and high-concurrency applications, resulting in reduced system latency and throughput.
[0075] While some existing switches have improved system resource utilization by proposing shared storage space, in the current switch architecture, data is received from the input port and stored in the shared storage unit. After the data transmission is completed, the release of the shared storage unit's storage space often relies on the central scheduling unit for management. When data occupies space in the shared pool for a long time, it may cause memory resources to remain idle, wasting valuable cache space. Therefore, the resource reclamation mechanism is not efficient enough. This situation is particularly serious in high-frequency data exchange, especially in multicast and multicast scenarios. Since data needs to be transmitted to multiple ports simultaneously, the release of data becomes more complex and slower, further exacerbating the resource occupation problem.
[0076] Unlike existing centralized scheduling methods, the technical solution proposed in this application is based on independent requests from target ports according to their needs and capabilities. The switch proposed in this application, based on a shared pool and fan-out structure for data transmission, separates the storage of data received by the first port within the switch from the output of internal data to the outside via a second port. Based on the first and second data transmission requests, it can dynamically and adaptively store the received data in the shared pool, maximizing the utilization of the switch's storage space. Furthermore, each second port independently determines whether it needs to receive data and whether its remaining storage space is sufficient. Only the target port initiates the second data transmission request, ensuring that data is transmitted only to the required and sufficient target port for storage. This avoids unnecessary data transmission broadcast to all ports as in traditional switches, significantly improving bandwidth utilization efficiency and preventing invalid data transmission. Each port independently requests data based on its remaining storage space, avoiding congestion caused by inter-port constraints and resource contention issues arising from centralized scheduling. Therefore, it ensures efficient system operation and reduces data transmission congestion and latency.
[0077] The present invention provides the following three specific methods to realize the generation of the second data transmission request and ensure that the data at the corresponding position in the shared pool is scheduled and output to the target port, including at least the remaining storage space of the second port being greater than the storage space required for the data length.
[0078] The first approach is as follows: if the target port determines that its remaining storage space is sufficient to store the data corresponding to the data length, then the target port generates the second data transmission request; otherwise, the target port does not generate the second data transmission request.
[0079] The second method is as follows: The target port generates a credit value based on its remaining storage space and the data length. The larger the remaining storage space is compared to the storage space required for the data length, the larger the credit value is. If the credit value is greater than a preset credit threshold, the target port generates the second data transmission request; otherwise, it does not generate the second data transmission request.
[0080] The second method is as follows: The target port generates a credit value based on its remaining storage space and the data length. When the remaining storage space is not less than the storage space required for the data length, the credit value is a first credit value; when the remaining storage space is less than the storage space required for the data length, the credit value is a second credit value. For example, the first credit value is 1, and the second credit value is 0. The target port generates a second data transmission request based on the credit value and the first data transmission request. If the fan-out buffer unit determines that the credit value corresponding to the second data transmission request is the second credit value, it schedules the data at the corresponding position in the shared pool and outputs it to the target port; otherwise, the fan-out buffer unit does not schedule the data in the shared pool.
[0081] In one embodiment of the present invention, such as Figure 3 As shown, the fan-out buffer unit includes a first data transmission channel (fast channel) and a second data transmission channel (slow channel), wherein the data transmission rate of the first data transmission channel is higher than the data transmission rate of the second data transmission channel. The first data transmission channel is configured to transmit data that needs to be output with priority, and the second data transmission channel is configured to transmit data that does not need to be output with priority.
[0082] The second data transmission request also includes data priority, and the fan-out buffer unit is further configured to output data in the shared pool to each of the target ports according to the priority. The higher the priority, the higher the priority of its corresponding data output.
[0083] More preferably, the target port generates a credit value based on its remaining storage space and the data length. The larger the remaining storage space is compared to the storage space required for the data length, the larger the credit value is. The fan-out buffer unit determines the data that needs to be output first based on the priority and the credit value and outputs it through the first data transmission channel, while outputting the data that does not need to be output first through the second data transmission channel.
[0084] Specifically, the fan-out caching unit may comprehensively evaluate the priority and the credit value to output data with higher priority through the fast channel and data with lower priority through the slow channel. For example, the fan-out caching unit determines the output order of data corresponding to each second data transmission request based on the priority and the credit value. The fan-out caching unit outputs the first N data items in the output order through the first data transmission channel and outputs the data after the first N data items through the second data transmission channel.
[0085] Alternatively, the fan-out caching unit can independently evaluate the priority and the credit value, and determine which data is output through the fast channel and which data is output through the slow channel based on the evaluation results. For example, the fan-out caching unit outputs data corresponding to a second data transmission request with a priority higher than a preset priority threshold through the first data transmission channel. Similarly, the fan-out caching unit outputs data corresponding to a second data transmission request with a credit value higher than a preset credit threshold through the first data transmission channel. This invention ensures timely transmission of high-priority data while also guaranteeing fair allocation of low-priority data through the division of fast and slow channels.
[0086] Preferably, the fan-out buffer unit is further configured to output data in the shared pool to each of the target ports based on the duration of receiving the second data transmission request, with longer durations resulting in priority output of the corresponding data. By combining the request order and timestamp of the remaining ports for scheduling, data latency can be further reduced.
[0087] In one embodiment of the present invention, see Figure 4 The shared pool also includes a bypass channel. The target port is electrically connected to the shared pool through the bypass channel. When the data transmission is unicast, the target port directly transmits the second data transmission request to the shared pool. Upon receiving the second data transmission request, the shared pool transmits data to the target port through the bypass channel according to the second data transmission request. When the data transmission is multicast or broadcast, the target port sends the second data transmission request to the fan-out buffer unit. This bypass transmission mechanism can significantly reduce the transmission latency of unicast data, improve system efficiency and response speed, and avoid unnecessary storage and routing operations.
[0088] In one embodiment of the present invention, see Figure 1The first port is configured to parse the packet header and payload data and determine the data length in response to receiving data from outside the switch. By parsing the packet header, it determines the target port information and the number of target ports. The first port only transmits the payload data to the shared pool. When determining the data storage location, the shared pool returns data storage location information to the first port. The first port generates a first data transmission request based on the target port information, data length, data storage location information, and the number of target ports, and transmits it, i.e., broadcasts it to each of the second ports. Preferably, the storage location information is compressed and encoded into a hierarchical code before being sent to the second ports to improve data transmission security and make the data transmission request lightweight. It should be noted that in other embodiments, the first port may determine the target port based on the packet header and only transmit the first data transmission request to the target port among the second ports.
[0089] Each of the second ports parses the first data transmission request and confirms whether it is a target port based on the target port information. If so, the target port further generates the credit value based on the data length and its own remaining storage space, provided that its remaining storage space is sufficient to store the data corresponding to the data length. Further, the target port generates a second data transmission request based on the credit value and the first data transmission request and transmits it to the fan-out cache unit.
[0090] Upon receiving the second data transmission request, the fan-out buffer unit determines the location of the data requested for transmission by the target port within the shared pool and uses this location as the target location. The fan-out buffer unit copies the data at the target location in the shared pool to its temporary storage area, and then outputs the data from the temporary storage area to the target port.
[0091] like Figure 2As shown, the fan-out buffer unit increments its counter by one each time it outputs data from the temporary storage area to a target port. If the counter reaches the number of target ports, the fan-out buffer unit sends a data clearing request / invalid signal (unvalid) to the shared pool to notify the shared pool that the storage space for the data can be reclaimed, releasing the memory resources occupied by the data. The shared pool, upon receiving the data clearing request (unvalid), clears the data corresponding to the target location. Existing technologies often lack efficient resource reclamation mechanisms after data transmission is completed, easily leading to resource stagnation. This invention, through a counting mechanism and data clearing request feedback, ensures that relevant resources are released promptly after data transmission, avoiding long-term resource occupation and waste, and improving the overall resource utilization of the system. Furthermore, clearing the data in the shared pool to release storage space after all target ports have received data ensures that the data is present in both the fan-out buffer unit and the shared pool before all target ports are reached. Even if the data in the temporary storage area of the fan-out buffer unit is damaged or missing, the data in the shared pool can be retrieved again, ensuring the reliability of data transmission.
[0092] In one embodiment of the present invention, with Figure 2 The method shown differs from the one that clears corresponding data from the shared pool when the count value reaches the target number of ports. In this embodiment, when the absolute value of the difference between the count value and the target number of ports is less than a preset difference threshold, the fan-out cache unit sends a data clearing request to the shared pool, i.e., sends an invalid signal to the shared pool, to notify the shared pool that the storage space for the data can be reclaimed and the memory resources occupied by the data can be released. The shared pool, in response to receiving the data clearing request, clears the data corresponding to the target location. In this embodiment, when the absolute value of the difference between the count value and the target number of ports is less than the preset difference threshold, it indicates that data transmission on most target ports has been completed. The probability of problems with the remaining few target ports extracting data from the fan-out cache unit is greatly reduced, and the space in the shared pool can be released in advance to further improve the system's resource utilization.
[0093] In one embodiment of the present invention, a communication system for data transmission based on a shared pool and fan-out structure is provided, including multiple devices to be communicated and a switch for data transmission based on a shared pool and fan-out structure as described in any of the above embodiments. Each device is electrically connected to the switch and communicates through the switch.
[0094] In one embodiment of the present invention, a data transmission method based on a shared pool and fan-out structure is provided, applicable to a switch including multiple ports, a shared pool, and a fan-out buffer unit. A first port of the ports is electrically connected to the shared pool, and a second port of the ports is electrically connected to the fan-out buffer unit. The shared pool is configured as a shared storage unit for the ports. (See also...) Figure 1 and Figure 2 The data transmission method includes the following steps:
[0095] In response to receiving data from outside the switch, the first port transmits the data to the shared pool and transmits a first data transmission request to the second port, the first data transmission request including the data length;
[0096] In response to receiving the first data transmission request, the target port in the second port generates a second data transmission request based on the first data transmission request, the data length, and its own remaining storage space, and transmits the second data transmission request to the fan-out buffer unit.
[0097] In response to receiving the second data transmission request, the fan-out buffer unit schedules and outputs the data at the corresponding position in the shared pool to the target port according to the second data transmission request. The condition for the data at the corresponding position in the shared pool to be scheduled and output to the target port includes at least that the remaining storage space of the target port is greater than the storage space required for the data length.
[0098] It should be noted that the communication system and data transmission method embodiments based on shared pool and fan-out structure provided by the present invention have the same inventive concept as the above-mentioned switch embodiments based on shared pool and fan-out structure. The entire contents of the switch embodiments based on shared pool and fan-out structure are introduced into the communication system embodiments and data transmission method embodiments based on shared pool and fan-out structure.
[0099] It should be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0100] The above description is only a specific embodiment of this application. It should be noted that for those skilled in the art, several improvements and modifications can be made without departing from the principle of this application, and these improvements and modifications should also be considered within the scope of protection of this application.
Claims
1. A switch for data transmission based on a shared pool and a fan-out structure, characterized in that, It includes multiple ports, a shared pool, and a fan-out buffer unit, wherein the shared pool is configured as a storage unit shared by all ports of the switch; The port includes a first port and a second port. Each first port is electrically connected to the shared pool. The first port is configured to transmit data to the shared pool and transmit a first data transmission request to the second port in response to receiving data from outside the switch. The first data transmission request includes the data length. The second port is electrically connected to the fan-out buffer unit. The second port is configured to receive data in the shared pool through the fan-out buffer unit and transmit it to the outside of the switch. In response to receiving a first data transmission request, the target port in the second port generates a second data transmission request based on the first data transmission request, the data length, and its own remaining storage space, and transmits the second data transmission request to the fan-out buffer unit. The fan-out buffer unit is electrically connected to the shared pool. When the remaining storage space at the target port is greater than the storage space required for the data length, the fan-out buffer unit schedules and outputs the data at the corresponding position in the shared pool to the target port according to the second data transmission request.
2. The switch for data transmission based on a shared pool and a fan-out structure according to claim 1, wherein, If the target port determines that its remaining storage space is sufficient to store the data corresponding to the data length, then the target port generates the second data transmission request; otherwise, the target port does not generate the second data transmission request. or, The target port generates a credit value based on its remaining storage space and the data length. The larger the remaining storage space is compared to the storage space required for the data length, the larger the credit value is. If the credit value is greater than a preset credit threshold, the target port generates the second data transmission request; otherwise, it does not generate the second data transmission request. or, The target port generates a credit value based on its remaining storage space and the data length. When the remaining storage space is not less than the storage space required for the data length, the credit value is a first credit value. When the remaining storage space is less than the storage space required for the data length, the credit value is a second credit value. The target port generates a second data transmission request based on the credit value and the first data transmission request. If the fan-out buffer unit determines that the credit value corresponding to the second data transmission request is the second credit value, it schedules the data at the corresponding position in the shared pool and outputs it to the target port. Otherwise, the fan-out buffer unit does not schedule the data in the shared pool.
3. The switch for data transmission based on a shared pool and a fan-out structure according to claim 1, wherein, The second data transmission request also includes data priority, and the fan-out buffer unit is further configured to output data in the shared pool to each of the target ports according to the priority. The higher the priority, the higher the priority of its corresponding data output.
4. The switch for data transmission based on a shared pool and a fan-out structure according to claim 3, characterized in that, The fan-out buffer unit includes a first data transmission channel and a second data transmission channel, wherein the data transmission rate of the first data transmission channel is higher than the data transmission rate of the second data transmission channel.
5. The switch for data transmission based on a shared pool and a fan-out structure according to claim 4, characterized in that, The target port generates a credit value based on its remaining storage space and the data length. The larger the remaining storage space is compared to the storage space required for the data length, the larger the credit value. The fan-out buffer unit determines the data that needs to be output first based on the priority and / or the credit value and outputs it through the first data transmission channel, while outputting the data that does not need to be output first through the second data transmission channel.
6. The switch for data transmission based on a shared pool and fan-out structure according to claim 5, characterized in that, The fan-out buffer unit determines the output order of the data corresponding to each of the second data transmission requests based on the priority and the credit value. The fan-out buffer unit outputs the first N data in the output order through the first data transmission channel and outputs the data after the first N data in the output order through the second data transmission channel.
7. The switch for data transmission based on a shared pool and a fan-out structure according to claim 5, wherein, The fan-out buffer unit outputs the data corresponding to the second data transmission request with a priority higher than a preset priority threshold through the first data transmission channel; And / or, The fan-out buffer unit outputs the data corresponding to the second data transmission request whose credit value is higher than the preset credit threshold through the first data transmission channel.
8. The switch for data transmission based on a shared pool and a fan-out structure according to claim 5, wherein, The fan-out buffer unit is further configured to output data in the shared pool to each of the target ports according to the duration of receiving the second data transmission request, wherein the longer the duration, the data corresponding to it is output first.
9. The switch for data transmission based on a shared pool and a fan-out structure according to claim 1, wherein, The shared pool also includes a bypass channel, and the target port is electrically connected to the shared pool through the bypass channel. When the data transmission is unicast, the target port directly transmits the second data transmission request to the shared pool. In response to receiving the second data transmission request, the shared pool transmits data to the target port through the bypass channel.
10. The switch for data transmission based on a shared pool and a fan-out structure according to claim 9, characterized in that, When the data transmission is multicast or broadcast, the target port sends the second data transmission request to the fan-out buffer unit.
11. The switch for data transmission based on a shared pool and fan-out structure according to claim 1, characterized in that, The first port is configured to generate the first data transmission request based on the data packet header, data length, and data storage location information in the shared pool.
12. The switch for data transmission based on a shared pool and a fan-out structure according to claim 11, characterized in that, The storage location information is compressed and encoded into a hidden number.
13. The switch for data transmission based on a shared pool and a fan-out structure according to claim 1, wherein, The fan-out buffer unit schedules and outputs data from the corresponding location in the shared pool to the target port, including the following steps: The fanout buffer unit determines the location of the data requested to be transmitted by the target port in the shared pool according to the second data transmission request and uses it as the target location. The fan-out cache unit copies the data at the target location in the shared pool to the temporary storage area of the fan-out cache unit; The fan-out buffer unit outputs the data in the temporary storage area to the target port.
14. The switch for data transmission based on a shared pool and a fan-out structure according to claim 13, wherein, The first data transmission request also includes the number of target ports and target port information. Upon receiving the first data transmission request, the target port determines whether it is a target port. If it is, it generates a second data transmission request based on the first data transmission request, the data length, and its remaining storage space. The second data transmission request includes the number of target ports. The fan-out buffer unit schedules data at the corresponding position in the shared pool and outputs it to the target port, and further includes the following steps: the fan-out buffer unit increments the counter by one each time it outputs data from the temporary storage area to a target port. If the counter value reaches the number of target ports or the absolute value of the difference between the counter value and the number of target ports is less than a preset difference threshold, the fan-out buffer unit sends a data clearing request to the shared pool. In response to receiving the data clearing request, the shared pool clears the data corresponding to the target position.
15. The switch for data transmission based on a shared pool and a fan-out structure according to claim 1, wherein, The first port is configured to, in response to receiving data from outside the switch, parse the header and payload data of the data and determine the data length, and generate the first data transmission request based on the header and the data length; And / or, The first port transmits at least the load data from the data to the shared pool; And / or, When data in the shared pool is configured to be transmitted to all target ports, the shared pool clears the data to free up its storage space.
16. A communication system for data transmission based on a shared pool and a fan-out structure, characterized in that, It includes multiple devices to communicate and a switch for data transmission based on a shared pool and fan-out structure as described in claim 1, wherein each device is electrically connected to the switch and communicates through the switch.
17. A data transmission method based on a shared pool and a fan-out structure, characterized in that, Applicable to switches including multiple ports, a shared pool, and fan-out buffer units, wherein a first port of the ports is electrically connected to the shared pool, a second port of the ports is electrically connected to the fan-out buffer unit, the shared pool is configured as a shared storage unit for the ports, and the data transmission method includes the following steps: In response to receiving data from outside the switch, the first port transmits the data to the shared pool and transmits a first data transmission request to the second port, the first data transmission request including the data length; In response to receiving the first data transmission request, the target port in the second port generates a second data transmission request based on the first data transmission request, the data length, and its own remaining storage space, and transmits the second data transmission request to the fan-out buffer unit. In response to receiving the second data transmission request, the fan-out buffer unit schedules and outputs the data at the corresponding position in the shared pool to the target port according to the second data transmission request. The condition for the data at the corresponding position in the shared pool to be scheduled and output to the target port includes at least that the remaining storage space of the target port is greater than the storage space required for the data length.
Citation Information
Patent Citations
High-performance switch shared cache control system
CN119807120A
Data transmission system and method for improving PCIe retransmission efficiency and switch
CN120729810A