A processing device and method for multicast communication within a switch.
Patent Information
- Application Number
- CN202610682419.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2026-05-18
- Publication Date
- 2026-09-01
- Estimated Expiration
- 2046-05-18
AI Technical Summary
但是,随着人工智能计算过程中集合通信的需求增多,对多播通信的需求也快速增加,对交换芯片的通信性能带来较大影响
[0040] 1. For the first time, a dual-channel multicast processing mechanism is adopted in the internal data processing architecture of the switching chip, which physically isolates high-priority and low-priority multicast, rather than just performing queue sorting.
Smart Images

Figure CN122204804B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of computer communication technology and relates to a processing device and method for multicast communication within a switch. It is applicable to switching chip architectures such as PCIe switches that require efficient data distribution mechanisms while also considering unicast performance. Background Technology
[0002] In a distributed computing environment, multiple computing nodes work together to perform a computing task. Each computing node needs to synchronize data with other computing nodes. This frequent and large-scale data synchronization places high demands on the data processing mechanism and performance of the switch.
[0003] PCIe switches offer advantages such as high scalability, low power consumption, low latency, high reliability, and high flexibility. They achieve multicast operation through a designed multicast processing mechanism. This allows a single port device to simultaneously send data to multiple PCIe devices in groups, enabling point-to-multipoint data transmission. Furthermore, compared to unicast, multicast communication only requires the sending end to send one copy of the data; the PCIe switch automatically copies the data and sends it to all destination devices. The multicast transmission method of switches can significantly improve bandwidth utilization and reduce the load on the sending end.
[0004] Existing technologies, such as the PCIe switch and its communication method supporting parallel multicast packet transmission disclosed in CN120567810A, include several ports and a routing module, allowing at least one port to support multicast functionality. The multicast-enabled port is equipped with a multicast function register and a multicast management module. The multicast management module includes a routing table, and the routing module communicates with the multicast management module to send multicast packets to the destination port according to the routing table. This PCIe switch allows multiple ports to send multicast packets simultaneously without causing congestion. The multicast management module, PCIe switch and its communication method disclosed in CN120639687A, can communicate with multiple ports supporting multicast functionality. This multicast processing module prioritizes the multicast packets received by the port and sends them using a dedicated multicast transmission port. Both of the above methods help optimize multicast efficiency by uniformly managing multicast packets across all ports. However, optimizing only multicast information ignores the impact of multicast on unicast information at the switching chip and overlooks the differences in priority and latency requirements among different multicast data. When multicast traffic is dense, a large number of even low-priority multicast data frequently preempt the unicast data transmission channel, which will seriously affect the performance of unicast communication and cause congestion of ordinary data streams. At the same time, if multicast processing efficiency is to be improved under the original settings, multiple parallel multicast transmission modules need to be set up, increasing hardware costs.
[0005] Other existing technologies, such as the "PCIe switch multicast processing method and apparatus" disclosed in publication number CN117749706B, although disclosing an independent multicast processing mechanism, also fail to differentiate and process the differences in multicast demands. This makes it impossible to effectively control interference with unicast services while ensuring the rapid delivery of high-priority multicast traffic. Simple priority queuing mechanisms only change the internal transmission order of multicast traffic and do not fundamentally solve the problem of multicast traffic crowding out unicast paths.
[0006] In numerous applications of multicast data transmission, iterative updates of intermediate results in high-real-time distributed computing processes, such as high-frequency financial trading and real-time gaming, require more efficient and faster multicast processing mechanisms to reduce data communication latency. Multicast in data storage, however, only needs to ensure data is securely delivered to the destination device and does not require special fast processing mechanisms, thus minimizing the impact on unicast data. Therefore, when optimizing multicast data processing, the appropriate processing method can be selected based on the characteristics and priorities of multicast communication needs.
[0007] Current multicast processing mechanisms typically utilize dedicated multicast processing modules. Multicast messages are centrally processed and then transmitted via multicast channels, preempting unicast channel transmission requests. When multicast messages are few, this mechanism has limited interference with unicast communication and does not significantly impact the overall performance of the switching chip. However, with the increasing demand for aggregated communication in artificial intelligence computing, the demand for multicast communication is also rapidly increasing, significantly impacting the communication performance of the switching chip. Furthermore, existing multicast processing mechanisms primarily prioritize multicast messages based on their type, thus only partially satisfying the processing needs of high-priority multicast messages, without reducing the impact on unicast communication.
[0008] Based on this, the present invention is proposed. Summary of the Invention
[0009] The technical problem this invention aims to solve is to consider the differences in transmission requirements of various multicast information while taking into account the latency requirements of high-priority multicast information, thereby reducing the impact of excessive priority concession of multicast processing on unicast communication transmission. It provides an apparatus and method that can resolve multicast and unicast transmission conflicts from an architectural perspective. This not only ensures the priority transmission of high-priority, low-latency multicast data, but more importantly, by strategically "downgrading" low-priority multicast data and reusing unicast transmission channels, it fundamentally reduces the crowding-out effect of overall multicast traffic on unicast communication, achieving a system-level balance in transmission efficiency.
[0010] The technical solution of this invention is to propose a processing device and method for multicast communication within a switch. Considering the differences in transmission requirements of multicast information, a multicast preemptive transmission queue module is set up to prioritize the transmission of high-priority multicast data, while other lower-priority multicast data and unicast data are processed together by the unicast transmission module. This is the first time a dual-channel multicast processing mechanism has been adopted in the internal data processing architecture of the switching chip, better ensuring the efficiency of multicast data transmission while reducing the impact on unicast data communication and improving the transmission efficiency of the switching chip.
[0011] The specific technical solution of the present invention is as follows:
[0012] In a first aspect, a processing device for multicast communication within a switch includes a multicast detection module, a unicast processing module, a unicast sending queue module, and a multicast preemptive sending queue module.
[0013] The multicast detection module is used to identify whether the input data is unicast data or multicast data;
[0014] The unicast sending queue module is used to buffer unicast data to be sent and to feed back queue status information to the multicast processing module;
[0015] The multicast preemptive sending queue module is used to cache and prioritize the sending of high-priority multicast data.
[0016] The multicast processing module is used to receive and process multicast data to obtain target port information and copy the data.
[0017] The multicast processing module further includes a transmission path decision unit, which is configured to dynamically select whether to send the copied multicast data to the multicast preemptive transmission queue module or the unicast transmission queue module based on the priority and latency requirements of the multicast data and in conjunction with the queue status information obtained in real time from the unicast transmission queue module.
[0018] The dynamic selection refers to the transmission path decision unit being configured to: when the arriving multicast data meets the preset high-priority transmission conditions, send the multicast data into the multicast preemptive transmission queue module; otherwise, based on the queue status of all unicast transmission queue modules corresponding to the multicast data target port, only when the load of all relevant unicast transmission queues is lower than the preset full-load threshold, will the multicast data be sent into the unicast transmission queue module; and when the load of any relevant unicast transmission queue exceeds the preset full-load threshold, the priority of the multicast data will be considered to determine whether to send the multicast data into the multicast preemptive transmission queue module.
[0019] Once the replicated multicast data is sent to the unicast sending queue module, the replicated multicast data and unicast data are mixed in the unicast sending queue module and uniformly scheduled for sending according to the preset queue management strategy.
[0020] The preset high-priority transmission condition can be understood as a determination based on the comparison between the priority value and the delay value and a preset threshold. More specifically, the preset high-priority transmission condition means that the priority value of the multicast data is less than or equal to a first preset threshold, and its delay requirement value is less than a second preset threshold.
[0021] In a further improvement, the queue status information obtained by the sending path decision unit includes at least one of queue depth, data transmission waiting delay, or congestion status; the dynamic selection logic executed by the sending path decision unit includes: selecting high-priority multicast data with low latency requirements to send to the multicast preemptive sending queue module; and selecting low-priority or high-latency multicast data to send to the unicast sending queue module.
[0022] In a further improvement, the dynamic selection logic is configured such that when the queue status information of the unicast sending queue module indicates that its load is lower than a preset full load threshold, the multicast data with medium priority that arrives is selected and sent to the unicast sending queue module.
[0023] Among them, the priority value is below the preset high priority threshold but above the preset low priority threshold, which is the medium priority.
[0024] In a further improvement, the dynamic selection logic is configured to: comprehensively consider the queue status information of multiple unicast sending queue modules corresponding to all target ports of multicast data; when the queue depth of any target port's unicast sending queue module exceeds a preset full load threshold, determine whether to send the multicast data to the multicast preemptive sending queue module based on the priority of the multicast data.
[0025] In a further improvement, when the multicast preemptive sending queue module and the unicast sending queue module preempt the same output port, the multicast preemptive sending queue module has the priority to preempt in port sending arbitration.
[0026] Secondly, a method for processing multicast communication within a switch includes the following steps:
[0027] Receive port data and distinguish between unicast and multicast data;
[0028] The unicast data is sent to the unicast transmission queue for processing.
[0029] The multicast processing module parses the target port information of the multicast data and copies the data.
[0030] The multicast processing module performs a dynamic transmission path decision step: based on the priority and latency requirements of the multicast data and the queue status information obtained in real time from the unicast transmission queue, it decides whether to send the copied multicast data to the multicast preemptive transmission queue or the unicast transmission queue.
[0031] In response to the multicast data being sent to the unicast transmission queue, the unicast transmission queue mixes the multicast data with the unicast data and schedules and sends them uniformly.
[0032] In response to the multicast data being sent to the multicast preemptive transmission queue, the multicast preemptive transmission queue prioritizes the transmission of the multicast data through a preemptive mechanism.
[0033] A further improvement is made to the dynamic transmission path decision-making step, which includes:
[0034] The status of all unicast sending queues is monitored in real time. When it is determined that the arriving multicast data has high priority and low latency requirements, it is sent to the multicast preemptive sending queue. When it is determined that the multicast data has low priority or high latency requirements, or when the load status of the unicast sending queue is lower than the preset full load threshold, it is sent to the unicast sending queue.
[0035] A further improvement is made to the step of sending the multicast data to the unicast sending queue, which further includes: assigning an internal scheduling priority to the multicast data, so that the multicast data competes for scheduling with the unicast data in the unicast sending queue according to a unified priority strategy.
[0036] In a further improvement, the multicast processing module maintains a global mapping table of multicast target ports and unicast sending queues. The mapping relationship in the table can be dynamically adjusted according to the queue status information and changes in the multicast data target ports. The dynamic sending path decision step is executed for each multicast data, and is judged based on the queue status of the unicast sending queues corresponding to all target ports of the multicast data: if the load of the unicast sending queues corresponding to all target ports is lower than a preset full load threshold, the copied multicast data is sent to their respective unicast sending queues according to the target ports; if the load of the unicast sending queue corresponding to any target port exceeds the preset full load threshold, the multicast data is sent to the multicast preemptive sending queue module according to the priority of the multicast data.
[0037] In a further improvement, when different target ports of the multicast data correspond to different unicast sending queues, the multicast processing module will send the copied multicast data to the corresponding unicast sending queues in a split manner; each unicast sending queue will be managed independently and will report its queue status information to the multicast processing module.
[0038] This invention addresses the differentiated needs of multicast communication. Firstly, it utilizes a multicast preemptive transmission queue module. Based on latency requirements and priority information, the module prioritizes the transmission of multicast data, ensuring timely delivery of multicast information to the appropriate port devices and guaranteeing efficient multicast data transmission. Secondly, it simultaneously employs a unicast transmission queue module to receive both unicast data and low-priority, low-latency multicast data, reducing the impact of multicast on unicast. This method allows for the selection of transmission channels—either high-speed multicast or standard unicast—based on the latency and priority characteristics of multicast information, minimizing disruption to unicast communication and improving the transmission efficiency of the switching chip.
[0039] Specifically, the present invention has the following beneficial effects:
[0040] 1. For the first time, a dual-channel multicast processing mechanism is adopted in the internal data processing architecture of the switching chip, which physically isolates high-priority and low-priority multicast, rather than just performing queue sorting.
[0041] 2. By downgrading low-priority multicast to unicast channels, the frequency of multicast preemption of unicast channels is reduced, effectively ensuring unicast performance. Compared with existing technologies that only sort multicast by priority, this invention fundamentally changes the processing path of multicast data, reducing unicast interference, rather than simply adjusting the sending order.
[0042] 3. Introduce a queue status feedback mechanism to form a closed-loop control of sending-decision-feedback-adjustment, so that path selection can be dynamically optimized according to the real-time network load, rather than statically configured.
[0043] 4. There is no need to configure a costly preemption channel for all multicast data. Only a small amount of multicast preemption sending queue module resources need to be maintained to achieve an effective balance between performance and cost. Attached Figure Description
[0044] Figure 1 This is a schematic diagram of the unicast / multicast data processing flow of the present invention;
[0045] Figure 2 Flowchart of the method for implementing multicast on a switch;
[0046] Figure 3 This is a diagram illustrating a multicast processing example on a switch. Detailed Implementation
[0047] 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.
[0048] Definitions of abbreviations and key terms:
[0049] PCIe: Peripheral Component Interconnect Express, a high-speed serial computer expansion bus standard.
[0050] Example 1
[0051] The multicast communication processing device inside the switch described in this invention mainly includes the following modules:
[0052] 1. Multicast Detection Module: Each port is equipped with a corresponding multicast detection module, which is used to receive input data from the port, distinguish between unicast and multicast data, and send multicast data to the multicast processing module and unicast data to the unicast processing module.
[0053] 2. Unicast Processing Module: Each port is equipped with a corresponding unicast processing module, which is used to receive unicast data sent by the multicast detection module, parse the packet header to obtain the destination address information, obtain the target data port information through packet routing, and send this information and data payload together to the unicast sending queue module for transmission to the corresponding port device.
[0054] 3. Multicast Processing Module: The switch is equipped with a unified multicast processing module that processes multicast data from all ports. Based on the header information of the multicast data, the multicast processing module parses the target port information that needs to be forwarded. Simultaneously, based on the latency requirements and priority of the multicast information, it determines which transmission queue module to send the multicast data and target port information to next.
[0055] For example, high-priority, low-latency multicast data is sent to the multicast preemptive transmission queue module to deliver the data to the corresponding port as quickly as possible;
[0056] Low-priority multicast data is sent to the unicast sending queue module and queued for transmission along with unicast data.
[0057] Simultaneously, the multicast processing module receives queue status information from both the unicast sending queue module and the multicast preemptive sending queue module, serving as the basis for future multicast sending queue selection. The multicast processing module internally includes a sending path decision unit, which executes the aforementioned decision logic, dynamically selecting a path based on data packet priority, latency requirements, and real-time queue status.
[0058] 4. Unicast Transmission Queue Module: Each port is equipped with a corresponding unicast transmission queue module. This module receives unicast data from the unicast processing module and multicast data from the multicast processing module. Based on management strategies such as first-in-first-out or priority, it uses the output port arbitration module to obtain the corresponding channel for the output port before transmitting the data. Simultaneously, the unicast transmission queue module must send queue status information to the multicast processing module as a basis for its decision-making.
[0059] 5. Multicast Preemptive Sending Queue Module: This queue module supports preemptive sending of output ports. It receives multicast data copied from the multicast processing module and promptly sends the multicast data to the corresponding output ports by preempting the sending ports.
[0060] The workflow of the multicast communication processing device inside the switch is described in [reference needed]. Figure 1 :
[0061] Figure 1 This fully demonstrates the entire data transmission path from receiving data, multicast detection module routing, through unicast or multicast processing module, to hybrid scheduling of unicast sending queue module and multicast preemptive sending queue module, and finally transmission from output port 1 to output port n via output arbitration. The key highlight is the dual-channel architecture where the multicast processing module makes path decisions based on bidirectional information exchange (data delivery and status feedback) with the unicast sending queue. The process can be divided into the following five stages according to data type and decision points:
[0062] Phase 1: Data reception and distribution;
[0063] Data reception: Data enters from the external port of the switch.
[0064] Multicast detection module: As the first processing unit, each port is equipped with this multicast detection module, which is responsible for identifying the type of input data.
[0065] If the type of input data is determined to be unicast data, the input data will be sent to the unicast processing module for further processing.
[0066] If the type of input data is determined to be multicast data, the input data will be sent to the multicast processing module for centralized processing.
[0067] Phase Two: Unicast Data Processing Path;
[0068] Unicast Processing Module: Each port is equipped with a corresponding unicast processing module to receive unicast data sent by the multicast detection module. This unicast processing module parses the header of the unicast data packet and obtains the destination output port information through routing lookup and other methods. The processed unicast data and its destination output port information are then sent to the unicast sending queue module.
[0069] Phase 3: Core Decision-Making and Data Offloading for Multicast Data;
[0070] Multicast Processing Module: The switch is equipped with a unified multicast processing module that centrally processes multicast data from all ports. This module parses the header information of the multicast data to determine all destination output ports that need to be forwarded and then copies the data. A key decision occurs here: the multicast processing module contains a transmission path decision unit, which dynamically selects one of two paths to send the copied multicast data based on the priority and latency requirements of the multicast data, combined with queue status information (such as queue depth and congestion status) obtained in real time from the unicast transmission queue module:
[0071] Path 1 (Channel Preemption): If the multicast data is determined to be high-priority and low-latency by the sending path decision unit, the copied multicast data, along with the destination output port information, will be sent to the multicast preemption sending queue module.
[0072] Path Two (Shared Channel): If the multicast data is determined by the sending path decision unit to be low-priority and insensitive to latency, the replicated multicast data is downgraded and sent to the unicast sending queue module along with the destination output port information. In this path, multicast data and unicast data are mixed in the unicast sending queue module.
[0073] Phase Four: Data Sending and Requesting;
[0074] Unicast Transmission Queue Module: Each port is equipped with a corresponding unicast transmission queue module. This module receives two types of data: unicast data from the unicast processing module and low-priority, latency-insensitive multicast data from the multicast processing module. Both types of data are managed within the unicast transmission queue module, queued according to first-in-first-out (FIFO) or priority management strategies, and send output data requests to the output port to compete for data. Simultaneously, this unicast transmission queue module must continuously feed back its queue status information to the multicast processing module, forming a closed-loop control system.
[0075] Multicast preemptive transmission queue module: Receives high-priority, low-latency multicast data from the multicast processing module. This module supports preemptive transmission to output ports, promptly issuing output data requests.
[0076] Phase 5: Output scheduling and transmission;
[0077] Output Port Arbitration Module: This is the final scheduling checkpoint before output. The output port arbitration module receives output data requests from the unicast sending queue module and the multicast preemptive sending queue module.
[0078] When the multicast preemption sending queue module makes a request, the output port arbitration module will respond first according to the preemption mechanism, allowing high-priority, low-latency multicast data to pass quickly; otherwise, the data in the unicast sending queue module will be scheduled according to the normal strategy. Through this arbitration mechanism, the data that obtains the right to send is finally sent to the external device from its target channel (output port 1 to output port n).
[0079] Example 2
[0080] See the flowchart for the multicast implementation method of the switch. Figure 2 , Figure 2 This describes the complete closed-loop process, starting from data reception at each port, through multicast detection module judgment, unicast processing module or multicast processing module processing respectively, comprehensive judgment by the transmission path decision unit, and split execution of the two transmission queues, finally completing data transmission through the output port arbitration module, and feeding back queue information to the multicast processing module. The core lies in the splitting and processing of unicast and multicast data, and the dynamic path decision within the multicast processing module. The process can be divided into the following five steps:
[0081] Step 1: Data reception and type determination;
[0082] Each port receives input data sent by the corresponding device: the input data first enters the multicast detection module from each port of the switch.
[0083] The multicast detection module determines whether the input data received by each port is multicast data: the multicast detection module equipped on each port identifies the received input data.
[0084] If not (unicast data): The input data is determined to be unicast data, and the process proceeds to the unicast processing path in step two.
[0085] If it is (multicast data): The input data is determined to be multicast data, and the process proceeds to the multicast processing path in step three.
[0086] Step 2: Unicast data processing path;
[0087] Unicast data is processed by the unicast processing module: unicast data is sent to the unicast processing module at the corresponding port. This module parses the header of the unicast data packet and obtains the destination output port information of the unicast data through routing lookups or other methods. After processing, the processed unicast data, along with its destination output port information, is sent to the unicast sending queue module, awaiting processing in step four.
[0088] Step 3: Multicast data processing and core decision-making;
[0089] Multicast data is processed by the multicast processing module, which extracts information such as packet headers, latency requirements, and priorities to obtain the destination output port information. Multicast data from all ports enters the multicast processing module. This module parses the packet header information to obtain information / lists of all destination output ports that need to be forwarded, as well as key information such as latency requirements and priorities.
[0090] The multicast processing module determines whether to send the copied multicast information to the multicast preemptive sending queue based on information such as the latency requirements, priority, unicast sending queue status, and multicast sending queue status. This is the core decision point of the entire process. The sending path decision unit within the multicast processing module makes its judgment by considering the following factors:
[0091] The data packet's own priority and latency requirements;
[0092] Queue status information (such as queue depth and congestion status) is fed back in real time from the unicast sending queue module.
[0093] Based on the pre-defined decision-making logic, the following judgment is made:
[0094] Yes (high priority / low latency / preemption required): Send the copied multicast data to the multicast preemption sending queue module and proceed to path A in step four.
[0095] No (low priority / high latency / unicast queue idle): Degrade the copied multicast data and send it to the unicast sending queue module, proceeding to path B in step four.
[0096] Step 4: Processing the two types of sending queues;
[0097] Path A: Multicast data is sent to the multicast preemptive sending queue module;
[0098] After high-priority, low-latency multicast data enters the multicast preemptive transmission queue module, it directly competes for the output port by prioritizing the preemption of the output port in accordance with the multicast processing mechanism, so as to ensure the lowest transmission latency.
[0099] Path B: Multicast data is sent to the unicast sending queue module;
[0100] Low-priority, high-latency multicast data enters the unicast transmission queue module and is mixed with unicast data from the unicast processing module. The unicast transmission queue module manages this data uniformly according to a queue management strategy (such as first-in-first-out or priority strategy).
[0101] Step 5: Output port arbitration, transmission, and status feedback;
[0102] The unicast sending queue module receives the data and, according to the queue management policy, sends the data to the corresponding output port channel through the output port arbitration module:
[0103] The mixed data (unicast + low-priority multicast) in the unicast sending queue module sends an output data request and participates in output port arbitration. After successful arbitration, the data is sent to the corresponding output port channel.
[0104] Multicast data is preempted for output ports according to the multicast processing mechanism: high-priority, low-latency multicast data in the multicast preemption sending queue module sends output data requests and enjoys the highest preemption priority in arbitration. Arbitration takes precedence, ensuring that high-priority, low-latency multicast data is sent quickly.
[0105] The queue status information is fed back to the multicast processing module: While the unicast sending queue module is working, it continuously collects its own queue status information (such as queue depth, data transmission waiting delay, congestion status, etc.) and feeds it back to the multicast processing module in real time. This information is used by the core decision point in step three to make the next round of judgment, forming a complete closed-loop processing mechanism of "receiving - splitting - decision - execution - feedback".
[0106] Example 3
[0107] Figure 3 Taking an n-port switch as an example, this paper demonstrates a mixed scenario where port 1 receives multicast data d1, port 2 receives multicast data d2, and port n receives unicast data dn. Multicast data d2 (high priority) is quickly sent through the multicast preemption sending queue module, while multicast data d1 (low priority) is split and sent to the corresponding unicast sending queue module 1 and unicast sending queue module 2 on their respective ports, queuing together with the unicast data. Queue status information is fed back in real time, and the output port arbitration module schedules the final output. This diagram visually verifies the differentiated service mechanism of this invention. The specific process is as follows:
[0108] (1) Port data reception and type detection;
[0109] Port 1: Receives multicast data d1 from external devices. The target ports for this multicast data are ports 4 and 6. Upon input (multicast data d1), the data first reaches the multicast detection module, which then determines it to be multicast data.
[0110] Port 2: Receives multicast data d2 from external devices. The target ports for this multicast data are ports 3 and 7. Upon input (multicast data d2), the data first reaches the multicast detection module, which then determines it to be multicast data.
[0111] Port n: Receives unicast data dn from external devices, with the destination port of this unicast data being port k. Upon input (unicast data dn), the data first reaches the multicast detection module, which then determines it to be unicast data.
[0112] (2) Data splitting and processing;
[0113] Unicast data processing path: Unicast data dn (port k) from port n is identified by the multicast detection module and then sent to the unicast processing module corresponding to that port. The unicast processing module performs packet header parsing and route lookup on the unicast data dn to obtain information about its target output port k. After processing, the information of unicast data dn port k (referring to the target output port k of unicast data dn) is sent to the unicast transmission queue module n to wait in the queue for transmission.
[0114] Centralized processing and core decision-making of multicast data:
[0115] Multicast data d1 from port 1 and multicast data d2 from port 2 are both sent to the unified multicast processing module inside the switch for centralized processing after being identified by the multicast detection module of their respective ports.
[0116] The multicast processing module parses these two multicast data packets, extracts the packet header information, and learns that: multicast data d1 needs to be forwarded to ports 4 and 6; multicast data d2 needs to be forwarded to ports 3 and 7.
[0117] The transmission path decision unit within the multicast processing module performs dynamic decision-making based on the priority and latency requirements of each multicast data stream, as well as the queue status information fed back from each unicast transmission queue module.
[0118] Multicast data d2 is determined to have high priority and low latency requirements. Therefore, the copied multicast data d2 port 3 (target output port 3 of multicast data d2) information and multicast data d2 port 7 (target output port 7 of multicast data d2) information are sent to the multicast preemption transmission queue module, using the preemption fast channel.
[0119] Multicast data d1: is determined to be of low priority and is not sensitive to latency. Therefore, multicast data d1 is downgraded: the copied multicast data d1 port 4 (the target output port 4 of multicast data d1) information is sent to unicast transmission queue module 1 (the queue responsible for sending to output port 4); the copied multicast data d1 port 6 (the target output port 6 of multicast data d1) information is sent to unicast transmission queue module 2 (the queue responsible for sending to output port 6).
[0120] (3) Operation and status feedback of each sending queue module;
[0121] Unicast Transmission Queue Module 1: Receives multicast data d1 from port 4 of the multicast processing module, as well as unicast data that may originate from a specific port. This module manages this mixed data, sends output data requests to participate in arbitration, and continuously reports queue status information to the multicast processing module.
[0122] Unicast transmission queue module 2: Receives multicast data d1 port 6 from the multicast processing module, as well as possible unicast data. It also issues output data requests and provides feedback on queue status information.
[0123] Unicast transmission queue module n: Receives unicast data dn from the unicast processing module at port k. Issues output data requests and provides feedback on queue status information.
[0124] Multicast preemptive sending queue module: Receives multicast data d2 port 3 and multicast data d2 port 7 from the multicast processing module, and sends out output data requests with preemptive priority.
[0125] (4) Output port arbitration and data transmission;
[0126] Output port arbitration module: Receives output data requests from all unicast sending queue modules and multicast preemptive sending queue modules. According to the arbitration rules, requests from the multicast preemptive sending queue module have the highest priority and will be responded to first; next, requests from each unicast sending queue module are scheduled according to the strategy.
[0127] The data indicating a successful arbitration decision is ultimately transmitted through its corresponding physical port:
[0128] The multicast data d2 that preempts the channel is quickly sent out through the output ports corresponding to its target ports (port 3 and port 7).
[0129] Degraded multicast data d1 is queued together with ordinary unicast data through the unicast transmission queues corresponding to ports 4 and 6, and sent out from the corresponding output port after arbitration.
[0130] Unicast data dn is sent out from output port n through the unicast sending queue module n corresponding to port k after arbitration.
[0131] Figure 3 The example clearly demonstrates the core idea of this invention—differentiated service. High-priority multicast data d2 enjoys a dedicated channel, directly escorted by the multicast preemption sending queue module, and sent with priority through arbitration; while low-priority multicast data d1 is downgraded and allocated to the ordinary unicast queues corresponding to each target port, queuing together with unicast data dn and sent according to the normal process. This diversion mechanism ensures the timeliness of critical multicasts while avoiding malicious preemption of unicast channels by a large number of ordinary multicasts.
[0132] Example 4: A specific decision logic implementation of the transmission path decision unit;
[0133] The transmission path decision unit maintains a state parameter for each unicast transmission queue. When multicast data needs to be forwarded, it extracts the priority value P (the smaller the value, the higher the priority) and the maximum allowable delay D of the data packet. At the same time, it reads the queue depth value Q of the unicast transmission queues corresponding to all its destination ports.
[0134] The decision logic is configured as follows: if P≤2 and D<1μs, then unconditionally select multicast preemptive transmission;
[0135] Otherwise, determine Q for each target queue.
[0136] If the Q values of all target queues are less than the preset full load threshold (e.g., 50% of the queue depth), the data packet is sent to the unicast sending queue. If the Q value of any target queue exceeds the threshold and the priority value P of the data packet is greater than 4, it is still sent to the unicast sending queue and can be optionally marked as "discardable" to alleviate pressure.
[0137] If the Q of all target queues exceeds the preset full load threshold and 2 < P ≤ 4, then multicast preemptive transmission will still be used to ensure the timeliness of medium priority data.
[0138] The decision-making logic described above is just an example; in actual applications, it can be flexibly configured according to chip design requirements.
[0139] 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 processing device for multicast communication within a switch, characterized in that: It includes a multicast detection module, a unicast processing module, a unicast sending queue module, and a multicast preemptive sending queue module; The multicast detection module is used to identify whether the input data is unicast data or multicast data; The unicast sending queue module is used to buffer unicast data to be sent and to feed back queue status information to the multicast processing module; The multicast preemptive sending queue module is used to cache and prioritize the sending of high-priority multicast data. The multicast processing module is used to receive and process multicast data to obtain target port information and copy the data. The multicast processing module further includes a transmission path decision unit, which is configured to dynamically select whether to send the copied multicast data to the multicast preemptive transmission queue module or the unicast transmission queue module based on the priority and latency requirements of the multicast data and in conjunction with the queue status information obtained in real time from the unicast transmission queue module. The dynamic selection refers to the transmission path decision unit being configured such that: the preset high priority transmission condition is that the multicast data priority value is ≤ the first preset threshold and the delay requirement value is < the second preset threshold; when it is determined that the arriving multicast data meets the preset high priority transmission condition, the multicast data is sent to the multicast preemptive transmission queue module. Otherwise, based on the queue status of all unicast sending queue modules corresponding to the multicast data target port, multicast data will only be sent to the unicast sending queue module when the load of all relevant unicast sending queues is below the preset full load threshold. If the load of any relevant unicast sending queue exceeds the preset full load threshold, multicast data will be sent to the unicast sending queue module if it is of low priority, and to the multicast preemptive sending queue module only if the load of all relevant unicast sending queues exceeds the preset full load threshold if it is of medium priority. Among them, medium priority is a priority value greater than the first preset threshold and less than or equal to the third preset threshold, and low priority is a priority value greater than the third preset threshold; the smaller the priority value, the higher the priority. Once the replicated multicast data is sent to the unicast sending queue module, the replicated multicast data and unicast data are mixed in the unicast sending queue module and uniformly scheduled for sending according to the preset queue management strategy.
2. The processing apparatus for multicast communication within a switch according to claim 1, characterized in that, The queue status information obtained by the sending path decision unit includes at least one of queue depth, data transmission waiting delay, or congestion status; the dynamic selection logic executed by the sending path decision unit includes: selecting high-priority and low-latency multicast data to be sent to the multicast preemptive sending queue module; and selecting low-priority or high-latency multicast data to be sent to the unicast sending queue module.
3. The processing apparatus for multicast communication within a switch according to claim 2, characterized in that, The dynamic selection logic is configured such that when the queue status information of the unicast sending queue module indicates that its load is lower than a preset full load threshold, the multicast data with medium priority that arrives will be selected and sent to the unicast sending queue module.
4. The processing apparatus for multicast communication within a switch according to claim 2, characterized in that, The dynamic selection logic is configured to: comprehensively consider the queue status information of multiple unicast sending queue modules corresponding to all target ports of multicast data; when the queue depth of any target port's unicast sending queue module exceeds a preset full load threshold, determine whether to send the multicast data to the multicast preemptive sending queue module based on the priority of the multicast data.
5. The processing apparatus for multicast communication within a switch according to claim 1, characterized in that, When the multicast preemptive sending queue module and the unicast sending queue module preempt the same output port, the multicast preemptive sending queue module has the priority to preempt in port sending arbitration.
6. A method for processing multicast communication within a switch, applied to a processing apparatus for multicast communication within a switch as described in any one of claims 1 to 5, characterized in that, Includes the following steps: Receive port data and distinguish between unicast and multicast data; The unicast data is sent to the unicast transmission queue for processing. The multicast processing module parses the target port information of the multicast data and copies the data. The multicast processing module performs a dynamic transmission path decision step: First, determine whether the multicast data meets the preset high priority transmission conditions. The preset high priority transmission conditions are that the multicast data priority value is less than or equal to the first preset threshold and the delay requirement value is less than the second preset threshold. If the conditions are met, the copied multicast data is directly sent to the multicast preemptive transmission queue. If the load condition of the unicast sending queues corresponding to all target ports is lower than the preset full load threshold, then the multicast data is sent to the unicast sending queues; if the load condition of the unicast sending queue corresponding to any target port exceeds the preset full load threshold, then: If the priority value of the multicast data is greater than the first preset threshold and less than or equal to the third preset threshold, the multicast data will only be sent to the multicast preemptive sending queue when the load of all relevant unicast sending queues exceeds the preset full load threshold. If the priority value of the multicast data is greater than the third preset threshold, the multicast data is sent to the unicast sending queue. The smaller the priority value, the higher the priority. In response to the multicast data being sent to the unicast transmission queue, the unicast transmission queue mixes the multicast data with the unicast data and schedules and sends them uniformly. In response to the multicast data being sent to the multicast preemptive transmission queue, the multicast preemptive transmission queue prioritizes the transmission of the multicast data through a preemptive mechanism.
7. The method for processing multicast communication within a switch according to claim 6, characterized in that, The step of sending the multicast data to the unicast sending queue further includes: assigning an internal scheduling priority to the multicast data, so that the multicast data competes for scheduling with the unicast data in the unicast sending queue according to a unified priority strategy.
8. The method for processing multicast communication within a switch according to claim 6, characterized in that, The multicast processing module maintains a global mapping table between multicast target ports and unicast sending queues. The mapping relationship in the table is dynamically adjusted according to the queue status information and changes in the multicast data target ports. The dynamic transmission path decision step is performed per multicast data. First, it determines whether the preset high-priority transmission condition is met based on the priority and latency requirements of the multicast data. If not, it makes a comprehensive judgment by combining the queue status of the unicast transmission queues corresponding to all target ports of the multicast data. If the load of the unicast sending queues corresponding to all target ports is lower than the preset full load threshold, the copied multicast data will be sent to the corresponding unicast sending queues according to the target ports. If the load of the unicast sending queue corresponding to any target port exceeds a preset full load threshold, then: if the priority value of the multicast data is greater than the first preset threshold and less than or equal to the third preset threshold, the multicast data will only be routed to the multicast preemptive sending queue module when the load of all relevant unicast sending queues exceeds the preset full load threshold; if the priority value of the multicast data is greater than the third preset threshold, the multicast data will be routed to the unicast sending queue module.
9. The method for processing multicast communication within a switch according to claim 8, characterized in that, When different target ports of the multicast data correspond to different unicast sending queues, the multicast processing module will send the copied multicast data to the corresponding unicast sending queues. Each unicast sending queue will manage its queue independently and report its queue status information to the multicast processing module.
Citation Information
Patent Citations
A PCIe switch multicast processing method and apparatus
CN117749706B
PCIe (Peripheral Component Interconnect Express) switch supporting parallel sending of multicast data packets and communication method thereof
CN120567810A
Multicast management module, PCIe switch and communication method thereof
CN120639687A
Method and device for issuing internet protocol (IP) multicast message in wireless network
CN102882795A
Unicast / multicast traffic scheduling management method and device
CN106302239A