A queue load-aware based switch multicast hybrid scheduling apparatus and method
By introducing a queue load-aware multicast hybrid scheduling device into the switch, the problems of low resource utilization and congestion under mixed multicast and unicast traffic are solved. This enables efficient hybrid scheduling and optimized distribution of multicast data on unicast queue resources, improving overall performance and resource utilization.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- BEIJING SHUDU INFORMATION TECH CO LTD
- Filing Date
- 2026-05-15
- Publication Date
- 2026-06-16
AI Technical Summary
Existing multicast processing technologies in switches suffer from low resource utilization, easy congestion, and inability to efficiently support large-scale, high-concurrency mixed multicast and unicast traffic. This is mainly because unicast and multicast services are processed separately, leading to hardware resource expansion and a lack of coordinated scheduling capabilities.
A queue load-aware switch multicast hybrid scheduling device is adopted. By setting up a multicast detection module, a unicast processing module, and a sending queue control module on each input port, and combining a global load view and dynamic queue selection, the hybrid scheduling and optimized distribution of multicast data on unicast queue resources can be realized.
It improves hardware resource utilization, avoids multicast blocking of unicast, achieves balanced distribution of multicast traffic and overall performance improvement, reduces hardware costs, and dynamically adapts to traffic fluctuations.
Smart Images

Figure CN122226701A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a multicast hybrid scheduling device and method for switches based on queue load awareness, belonging to the field of switching chip technology. Background Technology
[0002] In distributed computing, multiple computing nodes run the same computing task together. Each computing node needs to transmit the same data to other computing nodes. Therefore, this frequent and large-scale transmission of the same data places higher demands on the data processing mechanism and performance of the switch.
[0003] Multicast is a data transmission mode in PCIe switches that allows a single port device to simultaneously send data to multiple PCIe devices in a group, achieving point-to-multipoint data transmission. Compared to unicast, multicast communication only requires the sending end to send one copy of the data; the PCIe switch automatically copies the data multiple times and sends it to all destination devices. Therefore, multicast transmission in switches can significantly improve bandwidth utilization and reduce the load on the sending end.
[0004] The buffer queue architecture of a switching chip fundamentally determines the data forwarding method. Currently, there are three main types of buffer queue architectures: output queuing switching, input queuing switching, and cross-point buffer switching, with structures as follows: Figure 1 As shown:
[0005] (a) Output Queuing Switching: After data enters from the input port, the switching network directly forwards it at high speed to the destination output port, where it queues in the buffer queue, waiting to be sent to the egress link. The fatal flaw of this structure lies in the extreme requirements on the switching network and buffer read / write speeds. Assume there are N ports (e.g., ...). Figure 1 The input / output ports in the circuit are numbered from 1 to N. In the most extreme case, if N input ports simultaneously send data to the same output port, the output port's buffer must process N write requests within one clock cycle; otherwise, data will be lost. Simultaneously, the internal switching network must operate at N times the port line speed. When N is very large, this N-fold speedup is simply impossible to achieve in high-capacity switches due to physical limitations. Therefore, output queuing switching is not suitable for high-speed, high-capacity switching networks.
[0006] (b) Input Queuing Switching: After data arrives at the input port, it is first queued in the buffer of that input port. The input port requests a route from the arbitrator, and only after approval is it sent to the output port through the switching network. To solve the head-of-line congestion problem caused by the simple first-in-first-out queuing method, N VOQ virtual queues are set up for each input port, corresponding to the N output ports of the switching network. Arriving data packets are queued in the corresponding VOQ virtual queue according to their destination port. However, as the number of output ports increases, the number of VOQ virtual channels for the input ports is usually limited due to chip area and physical resource constraints (e.g., Ethernet switching chips only support 8 virtual channels per port). Therefore, input queuing switching is currently the most feasible solution under existing technology and cost, and it is also the basic architecture commonly used in high-performance switching equipment, but the limited VOQ resources constitute a hard constraint on system design.
[0007] (c) Cross-point buffered switching: This structure sets up a small-capacity buffer unit at each cross-point switch of the switching network. Data is temporarily stored at the cross-points of input and output, achieving back-to-back connection decoupling of input and output. Its advantages are that it does not require the high speedup ratio of output queuing, and can effectively alleviate head-of-line congestion of input queuing, with relatively simple flow control. However, its biggest disadvantage is that as the number of ports N increases, the number of cross-points increases exponentially by N. 2 Growth necessitates a massive increase in cache units, leading to a sharp rise in the total chip area and power consumption. Therefore, in high-speed, high-density switches with numerous ports, cross-point buffer switching is also severely constrained.
[0008] In summary, input queuing switching is the mainstream architecture for current large-scale switching chips, and this invention is a design and improvement based on the input queuing switching architecture.
[0009] Under the input queuing and switching architecture, existing multicast processing technologies mainly fall into three categories:
[0010] Input port replication: Multiple copies of a packet are directly copied at the input port where it enters and stored in different virtual channels. This method avoids head-of-queue blocking and is suitable for high-bandwidth, large multicast group scenarios. However, each copy requires a dedicated virtual channel, necessitating multiple virtual channel VOQs on the input port queue. Since the number of virtual channels in an input port VOQ is extremely limited, physical resources cannot meet the demand when the number of ports is large. Replicating multicast data into a virtual channel queue corresponding to each port can easily cause congestion or packet loss due to insufficient storage in the input queue, leading to reduced multicast communication efficiency.
[0011] Output port replication: Multicast packets are stored in a shared buffer with only one copy, and multiple output ports reference the same data. This method offers extremely low bandwidth consumption, low buffer usage, and high throughput. However, because there is only one copy of the data, scheduling during multicast is complex and inefficient.
[0012] Centralized multicast processing: A dedicated multicast module handles the copying and sending of all multicast packets. By scheduling all necessary sending ports, unified sending is performed, resulting in high multicast sending efficiency. However, this method has inherent drawbacks: First, data transmission through a dedicated multicast channel requires dedicated sending resources, significantly impacting unicast forwarding while waiting for all ports to idle. Second, resource constraints prevent support for concurrent multicast. Third, it cannot detect queue loads at each input port, potentially injecting a large number of multicast packets into already congested ports, leading to packet loss.
[0013] The following describes typical existing technical solutions for the three technical routes mentioned above:
[0014] Existing technical solution one: As proposed in publication number CN117749706B, "A PCIe switch multicast processing method and apparatus," the PCIe port is divided into multiple groups. First, arbitration is used at the source port to determine whether the received packet is multicast or unicast. If it is multicast, inter-group arbitration is performed between port groups to determine all destination groups to which the multicast destination port belongs. Once all destination groups are ready, the multicast packet is sent to all destination groups, and then the multicast packet is sent to its respective port within each destination group. During the multicast packet transmission process, other requests within the destination group are paused. This method has certain advantages in area control by dividing the port cross-routes into fewer port cross-routes, breaking down the process into smaller parts. However, this method has complex control logic, increases packet processing latency, and other ports within the same destination group that are not destination ports cannot process other multicast information, affecting multicast processing efficiency.
[0015] Existing technical solution two: CN120034508A proposes "A PCIeswitch multicast processing system and method that balances efficiency and resources." This method includes a unicast control module, a multicast control module, a target port arbitration module, and a sending buffer module. It separates unicast and multicast packets for processing and opens two parallel processing channels within the multicast control module. Multicast packet replication is achieved through rollback FIFO read / write pointers, simplifying the design, saving resources, and improving efficiency. However, establishing separate unicast and multicast processing mechanisms for each port and setting up independent sending channels for multicast data packets increases hardware processing costs. Ignoring the sending status of the switching chip can easily lead to congestion.
[0016] Existing technical solution three: As proposed in publication number CN120567810A, "A PCIe switch supporting parallel transmission of multicast data packets and its communication method," this switch includes several ports and a routing module, where at least one port supports multicast functionality. This port includes a multicast function register and a multicast management module, where the multicast management module includes a routing table. The routing module and the multicast management module are communicatively connected for sending multicast data packets to the destination port according to the routing table. This method can enable multiple ports to send multicast data packets simultaneously, but it neglects the unicast information requirements of the switching chip, which can easily lead to congestion. Furthermore, the independent multicast transmission module increases hardware costs.
[0017] From the overall evolution trend of the aforementioned existing technical solutions, there has long been a technological inertia in this field—that is, the belief that unicast and multicast services, due to their different characteristics (multicast requires multiple copies and coordination of multiple output ports), should be processed separately through different channels and resources to achieve optimal performance for each. Whether it's establishing an independent transmission channel for multicast (as in existing technical solution two), building an independent multicast management module (as in existing technical solution three), or isolating multicast traffic through port grouping (as in existing technical solution one), all reflect this inherent technological mindset. While this separation design is logically intuitive, it inevitably leads to problems such as hardware resource inflation and a lack of coordinated scheduling capabilities between multicast and unicast.
[0018] In summary, existing multicast processing technologies are limited by virtual channel resources at input ports, exclusive use of dedicated multicast hardware resources, and a lack of global load awareness, making it impossible to efficiently support large-scale, high-concurrency mixed multicast and unicast traffic with limited hardware costs. This invention is proposed to solve the above problems. Summary of the Invention
[0019] This invention aims to solve the problems of inflexible multicast message forwarding, easy blockage, and low resource utilization in existing centralized multicast processing schemes, and in particular, it aims to overcome the technical bias in the field that "unicast and multicast must be processed separately".
[0020] To address the aforementioned technical problems, this invention provides a switch multicast hybrid scheduling device based on queue load awareness, comprising a multicast detection module, a unicast processing module, a multicast processing module, a transmit queue control module, and an output port arbitration module, all located at each input port.
[0021] The multicast detection module is used to receive input data, distinguish between unicast data and multicast data, send unicast data to the unicast processing module of the corresponding input port, and send multicast data to the multicast processing module.
[0022] The unicast processing module is used to parse and route unicast data, obtain output port information, and send the unicast data and its output port information to the sending queue control module of the corresponding input port.
[0023] The multicast processing module is used to centrally process multicast data from all input ports, including parsing the multicast data to obtain information about its corresponding multiple destination output ports, and periodically receiving queue status information from all input port transmission queue control modules to form a global load view. Based on the global load view, it dynamically selects the target input port transmission queue control module with the lightest load for each destination output port's multicast data replica, and sends the multicast data replica and its corresponding destination output port information to the selected target input port transmission queue control module. The selection of the target input port transmission queue control module is decoupled from the original entry port of the multicast data.
[0024] The sending queue control module is used to receive unicast data from the unicast processing module of the corresponding input port, and multicast data copies from the multicast processing module. It performs mixed queuing management of unicast data and multicast data copies in the same sending queue. The multicast data copies reuse the existing sending queue resources and scheduling mechanism of unicast data. The sending queue control module is also used to send the data in the sending queue and its output port information to the corresponding output port through the output port arbitration module, and periodically count its queue status information and send it to the multicast processing module to form a closed-loop feedback.
[0025] It should be noted that the lightest load can be measured primarily by the available space of the queue, or by a weighted evaluation of multiple factors such as queue length, unicast / multicast quantity, and priority. Those skilled in the art can set specific load evaluation functions according to actual system requirements.
[0026] As a further improvement, the multicast processing module includes:
[0027] The multicast routing module is used to receive multicast data from different ports, perform address resolution and route lookup on the multicast data, and obtain information on the multiple destination output ports that the multicast data needs to reach and the number of destination output ports.
[0028] The queue selection module is used to receive queue status information from all sending queue control modules, as well as destination output port information and the number of destination output ports from the multicast routing module, and select a target input port for the multicast data replicas sent to each destination output port according to a preset strategy.
[0029] The data replication module is used to replicate the multicast data a certain number of times according to the selection result of the queue selection module, and send each copy of the multicast data carrying the corresponding destination output port information to the selected target input port transmission queue control module.
[0030] A further improvement is that the preset strategy for the queue selection module is as follows:
[0031] Compare the load status of the transmission queues managed by all input port transmission queue control modules, arrange all input port transmission queues in descending order of available space, and place multicast data replicas and corresponding output port information in the transmission queue with the largest available space in turn, until all multicast data replicas have been allocated.
[0032] In a further improvement, the queue status information of the sending queue control module includes at least one of the following: queue length, number of unicast data within the queue, number of multicast data, data priority, and available queue space.
[0033] In a further improvement, the sending queue control module manages the mixed queuing of unicast and multicast data replicas according to the first-in-first-out principle or the priority-based scheduling principle.
[0034] In a further improvement, the multicast processing module is a multicast data copy of the same multicast data sent to different destination output ports, and the selected multiple target input port sending queue control modules are located at different input ports.
[0035] In a further improvement, the multicast processing module provides different multicast data copies from different input ports, and among the selected multiple target input port sending queue control modules, at least two different multicast data copies are assigned to the same target input port sending queue control module (carried by its internal sending queue).
[0036] On the other hand, a queue load-aware switch multicast hybrid scheduling method includes the following steps:
[0037] Each input port receives data, and the multicast detection module determines the data type.
[0038] If the data is unicast data, the unicast processing module of the corresponding input port will parse and route it to obtain the output port information, and send it along with the data to the sending queue control module of the corresponding input port.
[0039] If the data is multicast data, it is sent to a unified multicast processing module;
[0040] The multicast processing module centrally parses the multicast data and obtains its corresponding multiple destination output port information;
[0041] The multicast processing module periodically acquires the real-time queue status information of all input port sending queue control modules to form a global load view;
[0042] The multicast processing module dynamically selects the target input port sending queue control module with the lightest load for the multicast data replicas sent to each destination output port based on the global load view; the selection of the target input port sending queue control module is decoupled from the original entry port of the multicast data.
[0043] The multicast processing module copies the multicast data and sends each copy of the multicast data, which carries the corresponding destination output port information, to the selected target input port transmission queue control module.
[0044] Each input port sending queue control module receives unicast data from the unicast processing module or a copy of multicast data from the multicast processing module, and queues them together in the same sending queue. The multicast data copy reuses the existing sending queue resources and scheduling mechanism of the unicast data.
[0045] Each input port's transmission queue control module sends data to the corresponding output port according to the queue management strategy and the output port arbitration module;
[0046] Each input port's transmit queue control module periodically counts its queue status information and reports it to the multicast processing module, forming a closed-loop feedback.
[0047] A further improvement is that the multicast processing module dynamically selects a target input port for the multicast data replicas sent to each destination output port based on the global load view. This step of the queue control module includes:
[0048] The multicast routing module in the multicast processing module performs address resolution and route lookup on multicast data to obtain destination output port information and port count;
[0049] The queue selection module in the multicast processing module receives the destination output port information and the queue status information from all sending queue control modules;
[0050] The queue selection module arranges all input port transmission queues in descending order of available space, and sequentially allocates multicast data replicas and corresponding output port information to the transmission queue with the largest available space, until all multicast data replicas have been allocated.
[0051] A further improvement, the step of mixing and queuing input port transmit queue control modules in the same transmit queue, also includes:
[0052] The unicast and multicast data replicas in the sending queue are sorted and managed according to the first-in-first-out principle or the priority-based scheduling principle.
[0053] In a further improvement, the queue selection module in the multicast processing module receives multicast data from different ports, and simultaneously selects target input ports for sending queue control modules to different multicast data replicas, thereby realizing parallel processing and distribution of multiple multicast data.
[0054] The beneficial effects of this invention are:
[0055] 1. This invention breaks the long-standing technical prejudice in the field that "unicast and multicast must be processed separately," and proves that through global load awareness and cross-port intelligent scheduling, multicast traffic can be efficiently carried on existing unicast sending queue resources, achieving better overall performance with fewer hardware resources.
[0056] 2. It abandons the dedicated multicast transmission channel and synchronous waiting mechanism. Multicast data reuses unicast transmission resources, eliminating multicast blocking of unicast and eliminating the need to waste bandwidth waiting for all destination ports to be ready, thus improving the overall link utilization.
[0057] 3. By globally sensing and dynamically selecting the lightest-loaded input port to send queue control modules to carry multicast traffic, multicast data replicas are distributed across ports to multiple low-load queues, achieving balanced traffic distribution and effectively avoiding packet loss caused by local queue overflow.
[0058] 4. This invention fully reuses the storage and scheduling mechanisms of existing unicast queues, without the need to add a large number of dedicated multicast hardware or virtual channels (such as MVOQ or dedicated multicast replication servers required by existing technologies). It achieves a significant performance improvement with minor modifications and has high engineering implementation value.
[0059] 5. This invention enables the multicast processing module to perceive changes in the overall network load in real time through a closed-loop mechanism that periodically reports status information from the sending queue, continuously making optimal distribution decisions and dynamically adapting to traffic fluctuations. Attached Figure Description
[0060] Figure 1 The diagram shows three types of buffer queue structures for switching chips in the prior art.
[0061] Figure 2 This is a schematic diagram of the overall architecture of the unicast / multicast data processing flow of the switch described in this invention;
[0062] Figure 3 This is a schematic diagram of the internal structure and processing mechanism of the multicast processing module described in this invention;
[0063] Figure 4 This is a schematic diagram of multicast data distribution and scheduling in a specific embodiment of the present invention;
[0064] Figure 5 This is a schematic diagram illustrating how the queue selection module makes queue decisions based on available queue space in a specific embodiment of the present invention. Detailed Implementation
[0065] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the invention.
[0066] Definitions of abbreviations and key terms:
[0067] PCIe: Peripheral Component Interconnect Express, a high-speed serial computer expansion bus standard;
[0068] VOQ: Virtual Output Queue; it is a queue management technology used to solve the "head-of-line blocking" problem in the input queuing of switches.
[0069] Rollback FIFO: A first-in-first-out queue that moves backward.
[0070] MVOQ: Multicast Virtual Output Queue.
[0071] Example 1
[0072] This invention provides a queue load-aware switch multicast hybrid scheduling device, comprising:
[0073] A multicast detection module is installed at each input port to distinguish between unicast and multicast data;
[0074] A unicast processing module is installed at each input port to process unicast data.
[0075] A unified multicast processing module receives multicast data from all input ports, parses out all destination port information, and crucially, periodically (e.g., reporting once every 100 clock cycles) collects and maintains the real-time load status of the transmission queues of all input ports to form a global load view. Based on this global load view, it dynamically and preferentially selects the target input port transmission queue control module with the lightest load for each multicast data replica, and injects the replica and its destination port information into the selected transmission queue. The selection of the target input port transmission queue control module is decoupled from the original entry port of the multicast data, breaking the existing technical convention of binding multicast data replicas to the local or dedicated multicast channel of the entry port for processing.
[0076] Among them, the sending queue control module is a functional module, and the sending queue is the queue resource it manages.
[0077] The transmit queue control module, located at each input port, is responsible for queuing unicast data from the unicast processing module of that port and multicast data replicas from the multicast processing module (which may originate from any port) together in the same queue. This allows the multicast data replicas to directly reuse the existing queue resources and scheduling mechanisms of the unicast data. The transmit queue control module is also responsible for unified transmission through arbitration at the output port and periodically reporting queue status information to the multicast processing module to form a closed-loop feedback loop.
[0078] Accordingly, the present invention also provides a switch multicast hybrid scheduling method based on queue load awareness, comprising:
[0079] Receive data and distinguish between unicast and multicast data.
[0080] Multicast data is sent to a unified multicast processing module for parsing to obtain information about multiple destination ports.
[0081] The multicast processing module periodically obtains the real-time load status of the sending queues of all input ports to form a global load view. Based on this, it dynamically selects the target input port sending queue control module with the lightest load for the multicast data copy sent to each destination port. This selection is decoupled from the original entry port of the multicast data.
[0082] The multicast data is copied, and each copy of the multicast data is sent to the selected target input port transmission queue control module.
[0083] Each sending queue performs mixed queuing and unified scheduling of unicast data and injected multicast data replicas in the same queue. The multicast data replicas reuse the existing queue resources and scheduling mechanism of the unicast data.
[0084] Each sending queue periodically reports its queue status information to the multicast processing module, forming a closed-loop feedback.
[0085] Figure 2 This invention demonstrates the data processing architecture of a single input port within the switch described in this invention, as well as the collaborative relationship between the globally unified multicast processing module and each input port. This architecture can be decomposed into four main processing paths: a receive routing path, a unicast processing path, a multicast processing path, and a unified transmit path.
[0086] 1. Receiving and routing path;
[0087] Data reception: Data enters from the switch's input port, serving as the starting point for the entire processing flow. The data may be unicast or multicast messages.
[0088] Multicast Detection Module: Each input port is equipped with a multicast detection module, serving as the first processing gate for data entering the switch. This module parses and identifies the received data, distinguishing between unicast and multicast data.
[0089] Traffic splitting operation: If the data is determined to be unicast, it is sent to the unicast processing module on this port for further processing; if the data is determined to be multicast, it is sent to the globally unified multicast processing module inside the switch for further processing. This traffic splitting design decouples the processing logic, with unicast taking the traditional fast path and multicast taking the centralized intelligent scheduling path, so that they do not interfere with each other.
[0090] II. Unicast Processing Path;
[0091] Unicast processing module: Receives unicast data from the multicast detection module on the same port, performs packet header parsing and route lookup on the unicast data, and obtains the destination output port information that the unicast data needs to reach.
[0092] Sending to the Sending Queue Control Module: The unicast processing module sends the unicast data and its destination output port information to the sending queue control module corresponding to this port, entering the subsequent sending queuing stage. The data flow of the unicast path is limited to within this port and does not involve cross-port scheduling and replication, making the processing logic streamlined and efficient.
[0093] III. Multicast Processing Path (Core Innovation Path);
[0094] This is the core path that distinguishes this invention from existing technologies, embodying the design concept of "centralized replication, load awareness, and dynamic distribution," and completely breaking the technical convention of "separate processing of unicast and multicast" in existing technologies.
[0095] Multicast processing module: Located at the global layer of the switch, it receives multicast data from the multicast detection modules of all input ports. Its main responsibilities include:
[0096] Route resolution: Extract the header information of the multicast data, and obtain the destination output port information and the number of ports that the multicast data needs to be forwarded through address resolution and route lookup.
[0097] Collect global queue status: Periodically receive queue status information (including but not limited to queue length, number of unicast data and multicast data within the queue, data priority, available queue space, etc.) reported by the transmit queue control module of all input ports to form a global load view. The global load view enables the multicast processing module to grasp the load distribution of the transmit queues of all input ports of the entire switch in real time, overcoming the shortcomings of existing technologies that only consider local states or completely ignore queue load.
[0098] Dynamic queue selection: Based on the collected global load view (i.e., a summary of the real-time status of the sending queues of all input ports), combined with the number of destination output ports that the multicast data needs to be forwarded to and the specific destination output port information, the system intelligently selects the target input port sending queue control module with the lightest load for each multicast data replica. This selection is completely independent of the original input port of the multicast data, and depends only on the real-time load pressure of the sending queues of each input port. This is fundamentally different from existing technical solutions 1 (multicast packets are fixedly distributed within the destination group) and 2 (multicast data uses an independent multicast channel).
[0099] The multicast data is copied to the appropriate number of copies (the number of copies equals the number of destination output ports). Each copy of the multicast data is marked with its corresponding destination output port information (i.e., the output port identifier that the multicast data copy ultimately needs to reach). Then, these multicast data copies carrying their respective destination output port information are sent to the transmission queue control module of the selected target input port.
[0100] Cross-port distribution illustration: From the perspective of the entire switch, the multicast processing module is like an intelligent scheduling center. It disperses the multicast traffic that was originally concentrated on a certain port or a certain dedicated channel and injects it evenly into the unicast sending queues of multiple input ports. Figure 2 The arrows pointing from the multicast processing module to the send queue control modules at multiple different input ports clearly illustrate this cross-port, load-aware distribution process.
[0101] IV. Unified sending path;
[0102] Transmit Queue Control Module: Each input port is equipped with a transmit queue control module, serving as the final management checkpoint before data transmission. Its responsibilities include:
[0103] Hybrid reception: Receives two data sources—one unicast data from the unicast processing module of this input port; and one multicast data copy from the global multicast processing module (which may come from multicast messages from any input port).
[0104] The global multicast processing module refers to a unified module located inside the switch, covering all ports, and specifically responsible for the centralized processing of multicast data.
[0105] Hybrid queuing management: The aforementioned unicast and multicast data copies are managed uniformly in the same queue, queuing according to a preset queue management strategy (such as first-in-first-out principle or priority-based principle). Unicast and multicast data are treated equally here, and multicast data directly reuses the existing scheduling mechanism of the unicast queue, without the need to add dedicated multicast hardware or virtual channels, overcoming the problem of increased hardware costs caused by independent multicast channels in existing technical solutions two and three.
[0106] Among them, the unicast queue refers to the queue managed by the transmit queue control module inside each input port.
[0107] Statistical reporting of queue status: Periodically collect real-time status information (including but not limited to queue length, number of unicast data, number of multicast data, data priority, available queue space, etc.) of this queue (referring to the queue currently being statistically analyzed by the sending queue control module) and report it to the multicast processing module to form a closed-loop feedback for the next dynamic selection decision.
[0108] Initiate an output data request: Based on the unicast / multicast data copy in the current sending queue managed by the sending queue control module and its corresponding destination output port information, initiate an output data request to the output port arbitration module.
[0109] Output port arbitration module: Receives output requests from the send queue control module of each input port, and makes a ruling according to a certain arbitration algorithm (such as polling, priority, etc.) to determine which unicast / multicast data copy of which input port has the right to send.
[0110] Output port: The unicast / multicast data copy that has passed arbitration is sent to the corresponding destination output port channel through the switching network and finally sent to the target device, completing the entire data forwarding process.
[0111] exist Figure 2 In this context, output ports 1 to n refer to all physical output ports of the switch.
[0112] Depend on Figure 3As shown, multiple input ports can receive multicast information from other nodes. This multicast information is centrally processed by the multicast routing module within the switching chip. After extracting routing information and other details from the multicast data, the multicast routing module sends them together to the queue selection module. Simultaneously, the queue selection module receives the status information of the transmission queues of all input ports. Based on the multicast data routing information and the status information of the input port transmission queues, the queue selection module selects the target input port transmission queue control module for the multicast data copies that need to be sent to different destination output ports. The data replication module performs the specific operation, replicating the multicast data copies to be sent to different destination output ports according to the instructions of the queue selection module, generating multiple multicast data copies, and distributing each multicast data copy and its corresponding destination output port information to the corresponding target input port transmission queue control module, thus achieving parallel transmission of multicast data copies.
[0113] Depend on Figure 3 It can be seen that, Figure 2 The multicast processing module can be broken down into three functional sub-modules: multicast routing module, queue selection module, and data replication module, revealing the complete decision-making and execution chain of multicast data from entering the multicast processing module to being finally distributed to each sending queue.
[0114] I. Module Structure and Data Input;
[0115] Ports 1 through n: All input ports of the switch. When any port receives multicast data, the multicast data is processed by the multicast detection module of that port and then sent to the multicast processing module.
[0116] Multicast routing module: As the entry point for the multicast processing module, it receives all multicast data from ports 1 to n. Its core responsibility is to parse the packet header and identify the address of the multicast data. Through address resolution and route lookup, it obtains information on all destination output ports that the multicast data needs to be forwarded to, as well as the number of destination output ports. This parsed routing information is then passed along with the multicast data to the downstream queue selection module. The multicast routing module completes the task of resolving "which output ports this multicast packet should be sent to," providing target information for subsequent replication and distribution.
[0117] II. Core Dispatch and Decision-Making Center;
[0118] This is the key step in achieving load awareness and dynamic scheduling in this invention.
[0119] Queue status information: from the respective transmit queue control modules of all input ports. Each port's transmit queue control module periodically reports the real-time status of its queue. This information is aggregated to the queue selection module to form a global load view. Queue status information includes: queue length, number of unicast data items within the queue, number of multicast data items, data priority, available queue space, etc. Notably, because multicast data replicas are injected into existing unicast queues for mixed queuing, the information regarding the "number of multicast data items in the queue" does not exist in existing dedicated multicast queuing schemes.
[0120] The queue selection module is the decision-making brain of the multicast processing module. It receives two inputs simultaneously: one from the upstream multicast routing module, which transmits multicast data and destination output port information (including the number of ports); and the other from the real-time queue status information of the sending queues of all global input ports.
[0121] The queue selection module comprehensively evaluates both inputs. Its core strategy is to arrange the sending queues of all input ports in descending order of available space, and then sequentially place multicast data replicas and their corresponding output port information into the queue with the largest available space, until all multicast data replicas are allocated. This greedy strategy can quickly make globally optimal decisions within each scheduling cycle, prioritizing the use of the lightest-loaded queue to handle multicast traffic.
[0122] Decoupling from the original ingress: This selection is entirely based on the real-time load pressure of the sending queues on each port, regardless of which port the multicast data initially entered from. For example, a multicast data copy entering from port 1 might be assigned to the sending queue on port n. This decoupling feature is one of the key design features of this invention, clearly distinguishing it from existing technologies (random node distribution or local MVOQ allocation).
[0123] Output decision results: The queue selection module passes the decision results—that is, "which multicast data copy (corresponding to which destination output port) should be injected into which target sending queue"—to the downstream data replication module.
[0124] III. Execute the distribution module;
[0125] Data Replication Module: Based on the decision instructions issued by the queue selection module, this module executes specific replication and distribution operations. The specific steps are as follows: First, the multicast data is replicated a corresponding number of times (equal to the number of destination output ports); then, each multicast data copy is marked with its corresponding destination output port information, so that the receiving sending queue knows which output port the data packet should ultimately be sent to; finally, according to the instructions of the queue selection module, each multicast data copy carrying the output port information is sent to the selected target sending queue (one or more of sending queues 1 to n).
[0126] Sending queues 1~n: These are the sending queue control modules for each input port. They receive multicast data copies from the data replication module, mix them with the unicast data of their own port, queue them up, manage them uniformly, and wait to be sent after passing through the output port arbitration module.
[0127] Figure 3 The revealed internal mechanism of the multicast processing module forms a complete perception-decision-execution closed loop. This closed loop mechanism is another important design feature that distinguishes this invention from the prior art.
[0128] Perception: Each sending queue periodically reports status information, providing a global load view for the queue selection module.
[0129] Decision-making: The multicast routing module parses the multicast destination port information, and the queue selection module combines job requirements and global load, using a greedy strategy to dynamically select the optimal target sending queue for each multicast data copy.
[0130] Execution: The data replication module performs replication and distribution, injecting multicast traffic evenly into the sending queues of each input port.
[0131] Feedback: After distribution is completed, the load status of each sending queue changes. The updated status will be passed to the multicast processing module during the next report, affecting the multicast data scheduling decision in the next round.
[0132] This closed-loop mechanism ensures that the system can continuously and dynamically adapt to traffic changes and achieve real-time balanced distribution of multicast traffic. Existing technologies (such as random distribution) lack this closed-loop optimization capability based on real-time load.
[0133] Example 2
[0134] The multicast processing mechanism implemented by the switch consists of the following steps:
[0135] 1) After each input port receives the data transmitted by the corresponding device, it first passes it to the multicast detection module to determine whether it is multicast data. If it is multicast data, it passes it to the multicast processing module for further processing. If it is unicast data, it passes it to the unicast processing module for further processing.
[0136] 2) For the data input to the unicast processing module, by processing and utilizing its packet header information, combined with routing lookup and other methods, the destination output port information can be further obtained. The data and the destination output port information are then sent to the sending queue control module of this input port for further processing.
[0137] 3) For the data entering the multicast processing module, extract its packet header information and obtain all destination output port information through address resolution, routing lookup and other methods. The multicast processing module obtains the real-time status information of the sending queue of all input ports and dynamically selects a target input port sending queue control module for the multicast data copy sent to each destination output port. The data copying module copies the multicast data according to the number of destination output ports and sends each multicast data copy carrying the corresponding destination output port information to the selected target input port sending queue control module.
[0138] 4) After receiving unicast data from the unicast processing module and multicast data copies from the multicast processing module, the sending queue control module performs mixed queuing management on both in the same queue. Based on the pre-set queue management strategy, it sends the data to the corresponding output port through the output port arbitration module. Simultaneously, it periodically sends queue status information to the multicast processing module, providing it with a basis for selecting the sending queue, thus forming a closed-loop feedback loop.
[0139] Furthermore, the internal processing mechanism of the multicast processing module specifically consists of the following steps:
[0140] 1) The multicast routing module receives multicast data from different input ports;
[0141] 2) The multicast routing module obtains information such as the destination output port information and the number of destination output ports to be forwarded through address resolution and route lookup, and transmits it to the queue selection module;
[0142] 3) The queue selection module dynamically selects the target input port for sending queue control module based on the latest status information of all input ports' sending queues (including but not limited to queue length, number of unicast data and multicast data within the queue, data priority, available queue space, etc.) and the destination output port information and number of destination output ports for multicast data to be forwarded, and sends this information back to the data replication module.
[0143] 4) The data copying module copies the multicast data a corresponding number of times based on the destination output port information and the selected target input port sending queue control module information of the received multicast data, and sends each copy of multicast data carrying the corresponding destination output port information to the selected target input port sending queue control module.
[0144] Example 3
[0145] like Figure 4As shown, through a specific multi-port concurrent scenario, the present invention intuitively demonstrates how the multicast processing module distributes multicast data copies from different ports to each unicast sending queue across ports when the switch receives multicast data and unicast data simultaneously, and finally completes the unified forwarding process through output port arbitration.
[0146] I. Scene setup and data input;
[0147] Figure 4 The code defines a switch with n ports, where multiple ports receive different types of data simultaneously.
[0148] Port 1: Received multicast data d1, which needs to be forwarded to output port 4 and output port 6.
[0149] Port 2: Received multicast data d2, which needs to be forwarded to output port 3 and output port 7.
[0150] Port n: Receives unicast data dn, which needs to be forwarded to output port k.
[0151] Each port is equipped with a multicast detection module, which serves as the first diversion gate for data entering the switch: the multicast detection module of port 1 identifies the data as multicast data d1 and sends it to the global multicast processing module; the multicast detection module of port 2 identifies the data as multicast data d2 and sends it to the multicast processing module; the multicast detection module of port n identifies the data as unicast data dn and sends it to the unicast processing module of port n itself.
[0152] At this time, there are two multicast jobs from different entry points in the system (multicast data d1 needs to be sent to 2 destination ports, and multicast data d2 needs to be sent to 2 destination ports) and one unicast job, which constitute a real mixed traffic scenario of multicast and unicast concurrency.
[0153] II. Unicast processing path (port n);
[0154] The unicast data dn from port n is sent to the unicast processing module of port n. The unicast processing module performs header parsing and routing lookup on the unicast data dn, obtaining its destination output port as port k. Subsequently, the unicast processing module sends the unicast data dn and its output port information (port k) together to the corresponding transmission queue control module n of port n, where it enters the local transmission queue of that port to await scheduling. The unicast path is completed within the independent channel of this port, making the path simple and direct.
[0155] III. Multicast processing path;
[0156] The multicast processing module simultaneously receives multicast data d1 from port 1 and multicast data d2 from port 2, which then enters the internal processing pipeline.
[0157] Routing analysis: Parse multicast data d1 to obtain its destination output ports as port 4 and port 6 (a total of 2 destination ports); parse multicast data d2 to obtain its destination output ports as port 3 and port 7 (a total of 2 destination ports).
[0158] Collect global queue status: The multicast processing module has pre-collected queue status information (including but not limited to queue length, number of unicast data in the queue, number of multicast data, data priority, available queue space, etc.) reported by the sending queue control module 1, sending queue control module 2, ..., sending queue control module n in a periodic manner to form a global load view.
[0159] Dynamic queue selection: For the two multicast data replicas of multicast data d1 and the two multicast data replicas of multicast data d2, the multicast processing module independently selects the optimal target sending queue for each multicast data replica based on the current load status of each sending queue. Assume that the current global load assessment result is that the load on sending queue control module 1 and sending queue control module 2 is relatively light. The final decision result is shown in the figure:
[0160] Multicast data d1 is sent to the replica on port 4 and injected into the send queue control module 1;
[0161] Multicast data d1 is sent to the replica on port 6 and injected into the send queue control module 2;
[0162] Multicast data d2 is sent to the replica on port 3 and injected into the send queue control module 1;
[0163] Multicast data d2 is sent to the replica on port 7 and injected into the send queue control module n;
[0164] This distribution result reveals several key design features of the present invention:
[0165] Different copies of the same multicast data can be distributed to different send queue control modules: the two copies of multicast data d1 enter send queue control module 1 and send queue control module 2 respectively, instead of all entering a single send queue control module or the send queue control module of port 1 itself.
[0166] Replicas of different multicast data can converge to the same send queue control module: a replica of multicast data d1 sent to port 4 and a replica of multicast data d2 sent to port 3 simultaneously enter send queue control module 1. Send queue control module 1 then carries a mixed load of multicast data from two different sources, port 1 and port 2.
[0167] Distribution is completely decoupled from the original entry point: multicast data d1 enters from port 1, but its copy destined for port 6 is assigned to the send queue control module 2 on port 2. Multicast data d2 enters from port 2, but its copy destined for port 7 is assigned to the send queue control module n on port n. The entire distribution process is entirely based on the real-time load of each queue and is not bound by the original entry port.
[0168] Multicast and unicast can coexist in the same queue: the sending queue control module n simultaneously carries unicast data dn from the local unicast processing module on port n (sent to port k), and a copy of multicast data d2 from the multicast processing module sent to port 7. Both will be queued together in the sending queue control module n and scheduled uniformly.
[0169] IV. Unified sending path;
[0170] After the unicast queue sending modules on each port complete the mixed queuing management, they enter the output request and arbitration phase:
[0171] Sending queue control module 1: Currently, sending queue control module 1 contains multicast data d1 (destination port is port 4) and multicast data d2 (destination port is port 3) to be sent. This sending queue control module initiates an output data request to the output port arbitration module.
[0172] Sending queue control module 2: There is currently multicast data d1 to be sent in sending queue control module 2 (its destination port is port 6). Sending queue control module 2 initiates an output data request to the output port arbitration module.
[0173] Send queue control module n: Send queue control module n currently has multicast data d2 (destination port is port 7) and unicast data dn (destination port is port k) waiting to be sent. This send queue control module n initiates an output data request to the output port arbitration module.
[0174] The output port arbitration module receives output requests from each sending queue control module, makes a ruling according to a preset arbitration algorithm (such as polling, priority, etc.), and authorizes each queue to send data packets to the corresponding channels of output port 1, output port 2, ..., output port n through the switching network, and finally delivers them to the target device.
[0175] Meanwhile, each sending queue control module periodically reports its queue status information back to the multicast processing module, forming a closed-loop feedback. When copies of multicast data d1 and multicast data d2 are injected into each sending queue control module, the load status of each sending queue control module changes accordingly. The next report will reflect this update, providing the latest decision-making basis for subsequent newly arriving multicast data.
[0176] Figure 4 This specific scenario, where multicast data d1 and d2 are received through ports 1 and 2, and unicast data dn is received through port n, fully demonstrates the core technical effect of the present invention:
[0177] Concurrent multicast support: Multicast data d1 and multicast data d2 from multiple ports can be processed simultaneously in the multicast processing module without serial waiting.
[0178] Load balancing distribution: Replicas of multicast data d1 and multicast data d2 are intelligently distributed among sending queue control modules 1, 2, and n based on the global queue load status, rather than being centrally injected into a single congested sending queue control module.
[0179] Hybrid queuing and unified scheduling: The selected sending queue control modules will manage the injected multicast data copies indiscriminately with the unicast data of this port, and complete the sending through a unified output port arbitration module, without the need for a dedicated multicast sending channel.
[0180] Closed-loop feedback for continuous optimization: Each sending queue control module continuously reports status information, enabling the multicast processing module to dynamically perceive changes in network load and continuously make optimal distribution decisions.
[0181] Figure 5 The focus is on the entire internal processing flow of a single multicast data after it enters the multicast processing module, especially how the queue selection module makes greedy allocation decisions based on the available space of each sending queue control module, and how the data replication module performs specific replication and distribution operations.
[0182] I. Data Input and Route Resolution;
[0183] Port: A certain input port of the switch receives a multicast data d. This multicast data d needs to be forwarded to multiple destination output ports, specifically port 3, port 4, ..., port k (in the diagram, "3,4,...k" indicates that there are multiple copies required).
[0184] The multicast routing module receives multicast data d from this port. Its core responsibility is to parse the packet header and identify the address of the multicast data d. Through address resolution and route lookup, it obtains information about all destination output ports that the multicast data needs to be forwarded to. The resolution result indicates that multicast data d needs to be forwarded to port 3, port 4, ..., port k. The multicast routing module then passes the resolved routing information (destination port list) along with the multicast data d to the downstream queue selection module.
[0185] This step completes the parsing of "which output ports this multicast data should be sent to", providing target information for subsequent replication and distribution.
[0186] II. Core Scheduling Decision: Greedy Allocation of Queue Selection Module;
[0187] This is the core demonstration part of the example, showing how the queue selection module makes specific allocation decisions based on the global queue load status.
[0188] Queue status information: Real-time status reports from the transmit queues of all input ports (the transmit queues managed by the transmit queue control modules of each input port) are aggregated to the queue selection module. This queue status information includes the queue length of each transmit queue, the number of unicast data items within the queue, the number of multicast data items, the data priority, and the available space in the queue.
[0189] In this example, the global queue state at a certain moment is as follows: there are n sending queues, and the available space of each sending queue is different.
[0190] Queue selection module: As the decision-making brain of the multicast processing module, it receives two inputs: one is the multicast data d and its destination output port list (port 3, port 4, ..., port k) transmitted from the upstream multicast routing module; the other is the real-time queue status information of all global sending queues.
[0191] Greedy allocation strategy based on available space: The queue selection module comprehensively evaluates the two inputs. Its core strategy is to arrange the n sending queues in descending order of available space, and then place the multicast data copy and the corresponding output port information in the sending queue with the largest available space.
[0192] exist Figure 5 In the process, after sorting and comparing the available space of each sending queue, it was found that sending queue 2 has the largest current available space and can accommodate multiple multicast data replicas. Therefore, the queue selection module preferentially allocates multiple replicas of multicast data d to sending queue 2:
[0193] A copy of the multicast data destined for port 2 is allocated to sending queue 2.
[0194] The multicast data copy sent to port 3 is also allocated to sending queue 2;
[0195] The process continues until the available space of sending queue 2 is filled or all multicast data replicas are allocated. If there are any remaining multicast data replicas, they will be allocated to the sending queue with the second largest available space.
[0196] Advantages of the greedy strategy: This strategy is simple and efficient, capable of making globally optimal decisions quickly within each scheduling cycle. It prioritizes using the lightest-loaded (largest available space) queue to carry multicast traffic, thereby achieving balanced traffic distribution overall and avoiding congestion or packet loss caused by injecting multicast replicas into queues that are already nearing saturation. Unlike the shortest queue priority strategy, the greedy strategy of this invention performs a global selection among the sending queues of all input ports, rather than performing local optimization only among local MVOQs.
[0197] Output decision results: The queue selection module passes the decision results to the downstream data replication module, instructing it to send which multicast data copies to which target transmission queues.
[0198] III. Data replication and distribution execution;
[0199] Data Replication Module: Based on the decision instructions issued by the queue selection module, this module executes specific replication and distribution operations. The specific steps are as follows: First, the multicast data d is replicated a corresponding number of times (equal to the number of destination output ports, i.e., the number of ports 3 to k). Then, each multicast data copy is marked with its corresponding destination output port information, so that the receiving sending queue knows which output port the data packet should ultimately be sent to. Finally, according to the instructions of the queue selection module, each multicast data copy carrying the output port information is sent to the selected target sending queue.
[0200] In this example, the multicast data copy carrying port 2 information is injected into sending queue 2, and the copy carrying port 3 information is also injected into sending queue 2 (because queue 2 has a large available space). The remaining multicast data copies are injected into the corresponding queues in sending queue 1, sending queue 2, ..., sending queue n in sequence according to the allocation result of the queue selection module.
[0201] Sending queue 1, sending queue 2, and sending queue n: These are the sending queue control modules for each input port. They receive multicast data copies from the data replication module, mix them with the unicast data of their respective ports, queue them up, manage them uniformly, and wait to be sent to the corresponding output port after passing through the output port arbitration module. Figure 5 The text clearly shows that sending queue 2 received multiple multicast replicas (sent to different destination ports), demonstrating the convergence of multicast replicas in the same sending queue.
[0202] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of the present invention should be included within the protection scope of the present invention.
Claims
1. A queue load-aware switch multicast hybrid scheduling device, characterized in that, It includes a multicast detection module set on each input port, a unicast processing module set on each input port, a multicast processing module, a transmit queue control module set on each input port, and an output port arbitration module; The multicast detection module is used to receive input data, distinguish between unicast data and multicast data, send unicast data to the unicast processing module of the corresponding input port, and send multicast data to the multicast processing module. The unicast processing module is used to parse and route unicast data, obtain output port information, and send the unicast data and its output port information to the sending queue control module of the corresponding input port. The multicast processing module is used to centrally process the multicast data of all input ports, including parsing the multicast data to obtain its corresponding multiple destination output port information, and periodically receiving queue status information from all input port sending queue control modules to form a global load view. Based on the global load view, it dynamically selects the target input port sending queue control module with the lightest load for each destination output port corresponding to the multicast data copy, and sends the multicast data copy and its corresponding destination output port information to the selected target input port sending queue control module. The selection of the target input port sending queue control module is decoupled from the original entry port of the multicast data; The sending queue control module is used to receive unicast data from the unicast processing module of the corresponding input port, and multicast data copies from the multicast processing module. It performs mixed queuing management of unicast data and multicast data copies in the same sending queue. The multicast data copies reuse the existing sending queue resources and scheduling mechanism of unicast data. The sending queue control module is also used to send the data in the sending queue and its output port information to the corresponding output port through the output port arbitration module, and periodically count its queue status information and send it to the multicast processing module to form a closed-loop feedback.
2. The switch multicast hybrid scheduling device based on queue load awareness according to claim 1, characterized in that, The multicast processing module includes: The multicast routing module is used to receive multicast data from different ports, perform address resolution and route lookup on the multicast data, and obtain information on the multiple destination output ports that the multicast data needs to reach and the number of destination output ports. The queue selection module is used to receive queue status information from all sending queue control modules, as well as destination output port information and the number of destination output ports from the multicast routing module, and select a target input port for the multicast data replicas sent to each destination output port according to a preset strategy. The data replication module is used to replicate the multicast data a corresponding number of times according to the selection result of the queue selection module, and send each copy of the multicast data, which carries the corresponding destination output port information, to the selected target input port transmission queue control module.
3. The switch multicast hybrid scheduling device based on queue load awareness according to claim 2, characterized in that, The preset strategy for the queue selection module is as follows: Compare the load status of the transmission queues managed by all input port transmission queue control modules, arrange all input port transmission queues in descending order of available space, and place multicast data replicas and corresponding output port information in the transmission queue with the largest available space in turn, until all multicast data replicas have been allocated.
4. The switch multicast hybrid scheduling device based on queue load awareness according to claim 1, characterized in that, The queue status information of the sending queue control module includes at least one of the following: queue length, number of unicast data within the queue, number of multicast data, data priority, and available queue space.
5. A switch multicast hybrid scheduling device based on queue load awareness according to claim 1, characterized in that, When managing the mixed queuing of unicast and multicast data copies, the sending queue control module manages them according to the first-in-first-out principle or the priority-based scheduling principle.
6. A switch multicast hybrid scheduling device based on queue load awareness according to claim 1, characterized in that, The multicast processing module is a multicast data copy of the same multicast data sent to different destination output ports. The selected multiple target input port sending queue control modules are located at different input ports.
7. A switch multicast hybrid scheduling device based on queue load awareness according to claim 1, characterized in that, The multicast processing module consists of different multicast data copies from different input ports. Among the selected multiple target input port sending queue control modules, at least two different multicast data copies are assigned to the same target input port sending queue control module.
8. A queue load-aware multicast hybrid scheduling method for switches, applied to a queue load-aware multicast hybrid scheduling device for switches as described in any one of claims 1 to 7, characterized in that, Includes the following steps: Each input port receives data, and the multicast detection module determines the data type. If the data is unicast data, the unicast processing module of the corresponding input port will parse and route it to obtain the output port information, and send it along with the data to the sending queue control module of the corresponding input port. If the data is multicast data, it is sent to a unified multicast processing module; The multicast processing module centrally parses the multicast data and obtains its corresponding multiple destination output port information; The multicast processing module periodically acquires the real-time queue status information of all input port sending queue control modules to form a global load view; The multicast processing module dynamically selects the lightest-loaded target input port for sending multicast data replicas to each destination output port based on the global load view; The selection of the target input port sending queue control module is decoupled from the original entry port of the multicast data; The multicast processing module copies the multicast data and sends each copy of the multicast data, which carries the corresponding destination output port information, to the selected target input port transmission queue control module. Each input port sending queue control module receives unicast data from the unicast processing module or a copy of multicast data from the multicast processing module, and queues them together in the same sending queue. The multicast data copy reuses the existing sending queue resources and scheduling mechanism of the unicast data. Each input port's transmission queue control module sends data to the corresponding output port according to the queue management strategy and the output port arbitration module; Each input port's transmit queue control module periodically counts its queue status information and reports it to the multicast processing module, forming a closed-loop feedback.
9. A switch multicast hybrid scheduling method based on queue load awareness according to claim 8, characterized in that, The step of the multicast processing module dynamically selecting a target input port for sending multicast data replicas to each destination output port according to the global load view includes: The multicast routing module in the multicast processing module performs address resolution and route lookup on multicast data to obtain destination output port information and port count; The queue selection module in the multicast processing module receives the destination output port information and the queue status information from all sending queue control modules; The queue selection module arranges all input port transmission queues in descending order of available space, and sequentially allocates multicast data replicas and corresponding output port information to the transmission queue with the largest available space, until all multicast data replicas have been allocated.
10. A switch multicast hybrid scheduling method based on queue load awareness according to claim 8, characterized in that, The step of mixing and queuing input port transmit queue control modules in the same transmit queue also includes: The unicast and multicast data replicas in the sending queue are sorted and managed according to the first-in-first-out principle or the priority-based scheduling principle.
11. A switch multicast hybrid scheduling method based on queue load awareness according to claim 8, characterized in that, The queue selection module in the multicast processing module receives multicast data from different ports, and simultaneously selects target input ports for sending queue control modules to different multicast data replicas, thereby realizing parallel processing and distribution of multiple multicast data.