Pcie switch multicast processing method and apparatus

By using a weighted polling arbitrator to handle multicast requests in PCIe switch, the problem of inefficient multicast transmission is solved, and fast and low-latency multi-target data transmission is achieved, reducing power consumption and design complexity.

WO2025130883A1PCT designated stage expired Publication Date: 2025-06-26WUXI STARS MICRO SYSTEM TECHNOLOGIES CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/140042
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-18
Filing Date
2024-12-17
Publication Date
2025-06-26

AI Technical Summary

Technical Problem

When the current PCIe switch occurs multicast, it needs to stop all unicast transmissions, resulting in low transmission efficiency. The traditional multicast transmission method is serial data transmission, which has a large delay and affects the user experience.

Method used

By introducing a weighted polling arbitrator in the PCIe switch, the weighted polling and arbitration of multicast requests are implemented, the destination group is determined, and multicast transmission is initiated when all destination groups are ready, ensuring that data is delivered to multiple destinations at the same time.

Benefits of technology

This method can quickly complete the transfer of multiple data, shorten the total data transmission time, reduce the mutual influence of unicast and multicast, improve the utilization rate of cache resources, reduce the number of DMA startup times, and reduce power consumption.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024140042_26062025_PF_FP_ABST
    Figure CN2024140042_26062025_PF_FP_ABST
Patent Text Reader

Abstract

Provided in the present disclosure are a PCIe switch multicast processing method and an apparatus. The method comprises: when a source port receives a multicast request, initiating first arbitration of a port weighted round robin arbiter within a current group of the source port, and initiating second arbitration of a multicast weighted round robin arbiter between a plurality of groups according to a first arbitration result; determining a destination group for the multicast request according to a second arbitration result, and stopping other arbitration requests and multicast transmission associated with the current group and all destination groups; when all destination groups are ready, starting multicast transmission corresponding to the multicast request, so as to simultaneously transmit a multicast of the source port to all destination groups, and releasing a resource of a destination group that has completed multicast transmission. A technical solution provided in the present disclosure improves PCIe switch multicast transmission efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

PCIe switch multicast processing method and device

[0001] Cross-references to related applications

[0002] This disclosure claims priority to Chinese patent application No. 202311746951.9 filed on December 18, 2023, and the contents of the above-mentioned Chinese patent application disclosure are hereby incorporated by reference in their entirety as a part of this application. Technical Field

[0003] The present disclosure belongs to the field of network transmission, and in particular relates to a PCIe switch multicast processing method and device. Background Art

[0004] Multicast technology enables single-point transmission and multiple-point reception, significantly saving network bandwidth and reducing network load. However, when multicasting occurs on a current PCIe switch, all unicast traffic must first be stopped before data transmission is carried out to each destination. This severely impacts transmission efficiency and significantly impacts unicast traffic, resulting in a choppy user experience. Furthermore, traditional multicast transmission methods rely on serial data transmission, lacking parallel transmission and resulting in significant latency. Summary of the Invention

[0005] The present disclosure aims to provide a PCIe switch multicast processing method and apparatus, aiming to reduce the mutual impact between unicast and multicast.

[0006] According to a first aspect of the present disclosure, a PCIe switch multicast processing method is provided, comprising:

[0007] When a source port receives a multicast request, it initiates a first arbitration to a port weighted polling arbitrator in the current group where the source port is located, and initiates a second arbitration to multicast weighted polling arbitrators between multiple groups according to the result of the first arbitration;

[0008] determining a destination group for the multicast request according to the second arbitration result, and stopping other arbitration requests and multicast transmissions associated with the current group and all destination groups;

[0009] When all destination groups are ready, the multicast transmission corresponding to the multicast request is started to simultaneously transmit the multicast of the source port to all destination groups, and the resources of the destination groups for which the multicast transmission is completed are released.

[0010] Optionally, before the source port receives the multicast request, the method further includes:

[0011] Parse the descriptor in the current transmission request and obtain the host unicast flag to determine whether the current transmission request is a multicast request or a unicast request.

[0012] Optionally, initiating a second arbitration to a multicast weighted round-robin arbitrator among the multiple groups according to the first arbitration result further includes:

[0013] If the port weighted polling arbitrator arbitrates to the source port, initiating a second arbitration to the multicast weighted polling arbitrators among multiple groups for the multicast request;

[0014] If the source port is not arbitrated, the first arbitration is initiated repeatedly.

[0015] Optionally, stopping other arbitration requests and multicast transmissions associated with the current group and all destination groups further includes:

[0016] Stop arbitration requests sent by other ports of the current group of the current multicast, and stop multicast requests and multicast transmissions in other groups whose destination ports are the current group or the destination group.

[0017] Optionally, before initiating the multicast transmission corresponding to the multicast request, the method further includes:

[0018] If there are unready destination groups, wait until all destination groups are in a state where they can receive data.

[0019] According to a second aspect of the present disclosure, a PCIe switch multicast processing device is provided, comprising:

[0020] an arbitration unit, configured to, when a source port receives a multicast request, initiate a first arbitration to a port weighted polling arbitrator in a current group where the source port is located, and initiate a second arbitration to multicast weighted polling arbitrators between multiple groups based on a result of the first arbitration;

[0021] a connecting unit, configured to determine a destination group of the multicast request according to the second arbitration result, and stop other arbitration requests and multicast transmissions associated with the current group and all destination groups;

[0022] The transmission unit is configured to start the multicast transmission corresponding to the multicast request when all destination groups are ready, so as to simultaneously transmit the multicast of the source port to all destination groups, and release the resources of the destination groups for which the multicast transmission is completed.

[0023] The technical solution disclosed in this disclosure has at least the following advantages:

[0024] Delivering multicast requests to multiple destinations through a single DMA transfer quickly completes the movement of multiple copies of data, shortening the overall data transfer time. If the destination ports do not conflict, multiple multicasts can proceed simultaneously. Upon multicast completion, the cache is released early, independent of the multicast status of other groups. This improves cache resource utilization, minimizes the impact of unicast and multicast traffic, reduces the number of DMA initiations, and reduces power consumption. Multicast data transmission can reuse the unicast transmission path, improving module reusability and reducing design complexity.

[0025] Other features and advantages of the present disclosure will be described in the following description, and in part will become apparent from the description, or will be understood by practicing the present disclosure. The purposes and other advantages of the present disclosure can be achieved and obtained through the structures and processes indicated in the description, claims, and drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] In order to more clearly illustrate the embodiments of the present disclosure or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. It is obvious that the drawings described below are certain embodiments of the present disclosure. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0027] FIG1 is a schematic diagram of the overall flow of PCIe switch multicast processing according to an embodiment of the present disclosure.

[0028] FIG2 is a schematic diagram of a PCIe switch multicast processing flow according to an embodiment of the present disclosure.

[0029] FIG3 is a schematic diagram of a descriptor control path according to an embodiment of the present disclosure.

[0030] FIG4 is a schematic diagram of a data path according to an embodiment of the present disclosure. DETAILED DESCRIPTION

[0031] To make the purpose, technical solutions, and advantages of the embodiments of the present disclosure more clear, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present disclosure, not all of them. Based on the embodiments of the present disclosure, all other embodiments obtained by ordinary technicians in this field without making creative efforts shall fall within the scope of protection of the present disclosure.

[0032] Based on the above analysis, the present disclosure proposes a PCIe switch multicast processing method and device. During the data transmission process, the multicast request of each group is first passed to the multicast weighted polling arbiter M_WRR for polling according to the multicast flag in the data descriptor. After obtaining the polling result, the group where the multicast destination is located is determined according to the descriptor in the current multicast request. According to the destination, requests from other groups to the group where the destination is located are stopped, and requests from other ports of the group where the multicast is located are stopped at the same time. After waiting for the group where the destination corresponding to the current multicast request is located to receive data, data transmission begins. If the data transmission of a certain group is completed, the bus occupancy is released, and other requests are responded to. The current multicast transaction continues to be processed if the multicast request has not been completed.

[0033] 1 , illustratively, the PCIe switch multicast processing method provided by the embodiment of the present disclosure includes:

[0034] Step 101: When a source port receives a multicast request, a first arbitration is initiated to a port weighted polling arbitrator in the current group where the source port is located, and a second arbitration is initiated to multicast weighted polling arbitrators between multiple groups based on the first arbitration result.

[0035] Figure 2 shows an exemplary PCIe switch multicast processing flow. Within each group, after a port receives a transmission request, it initiates an arbitration request to the port weighted round-robin arbiter port_WRR within the group. This port is called the source port.

[0036] In a specific embodiment, before the source port receives the multicast request, the method further includes: parsing the descriptor in the current transmission request, obtaining the host unicast flag, and determining whether the current transmission request is a multicast request or a unicast request.

[0037] In another specific embodiment, if the port weighted polling arbitrator arbitrates to the source port, a second arbitration is initiated to the multicast weighted polling arbitrators among multiple groups for the multicast request; if the source port is not arbitrated, the first arbitration is repeatedly initiated.

[0038] For example, if the source port is arbitrated, the transmission request of the source port is accepted, and the host unicast flag of the descriptor in the current transmission request is used to determine whether the currently arbitrated transmission request is a multicast request or a unicast request. FIG3 exemplarily shows a schematic diagram of the descriptor control path.

[0039] Otherwise, if the current source port is not arbitrated, the arbitration application is initiated again.

[0040] Step 102: Determine the destination group of the multicast request according to the second arbitration result, and stop other arbitration requests and multicast transmissions associated with the current group and all destination groups.

[0041] It is understandable that if the transmission request received by the current port is a multicast request, an arbitration application is initiated to the multicast weighted round-robin arbiter M_WRR among all groups; if it is a unicast request, a unicast process is executed.

[0042] In the case of a multicast request, the system waits for arbitration by the multicast weighted round-robin arbiter M_WRR to obtain the arbitration result. When the arbitration reaches the current group, the system calculates the group to which the destination port of the current multicast request belongs based on the destination port bitmap in the descriptor. It also calculates the number of requests to each group. After determining the maximum number of requests for each group, it then determines the maximum number of multicast initiations, max_req_cnt.

[0043] Step 103: When all destination groups are ready, start the multicast transmission corresponding to the multicast request to simultaneously transmit the multicast of the source port to all destination groups, and release the resources of the destination groups that have completed the multicast transmission.

[0044] In a specific embodiment, stopping other arbitration requests and multicast transmissions associated with the current group and the destination group specifically includes stopping arbitration requests issued by other ports of the current group of the current multicast, and stopping multicast requests and multicast transmissions in other groups whose destination ports are the current group or the destination group.

[0045] Optionally, if arbitration fails to be performed in the current group, continue to initiate arbitration application.

[0046] Optionally, before starting the multicast transmission corresponding to the multicast request, if there are unready destination groups, wait until all destination groups are in a state where they can receive data.

[0047] Specifically, it determines whether all destination groups on the current multicast destination port can receive data. If so, it initiates a DMA transfer to multiple groups. For example, in Figure 4, data can be transferred from source memory I_memory 0 to destination memory E_memory 0 / 1 / 2 at once. At the same time, it decrements max_req_cnt by 1. If not, it waits until all destination groups on the current multicast destination port are ready to receive data.

[0048] Determine whether all data transmissions to the destination group for the current multicast destination port have completed. If so, the bus can be released to respond to other multicast requests. Otherwise, it waits for the request to complete the current multicast transaction. For example, in Figure 4, if the request to the corresponding port of memory 1 has completed transmission, the subsequent data transmission will be transferred from memory 0 to memory 0 / 2, without transferring to memory 1.

[0049] The above steps are iterated until max_req_cnt is 0. After the multicast transmission is completed, the resources of the source memory I_memory are released.

[0050] As can be seen, the PCIe switch multicast processing method proposed in this disclosure has the following advantages over related technologies: By delivering multicast requests to multiple destinations through a single DMA transfer, multiple copies of data can be quickly moved, shortening the total data transmission time. If the destination ports do not conflict, multiple multicasts can be performed simultaneously. Upon completion of a multicast, the cache is released in advance without relying on other multicasts, improving cache resource utilization, minimizing the mutual impact of unicast and multicast, and reducing the number of DMA initiations, thereby lowering power consumption. Multicast data transmission can reuse the unicast transmission path, improving module reusability and reducing design complexity.

[0051] Accordingly, the present disclosure provides a PCIe switch multicast processing device in a second aspect, including:

[0052] an arbitration unit, configured to initiate a first arbitration to a port weighted polling arbitrator in a current group where the source port is located when the source port receives a multicast request, and initiate a second arbitration to a multicast weighted polling arbitrator between multiple groups based on a result of the first arbitration;

[0053] a connection unit, configured to determine a destination group of the multicast request according to the second arbitration result, and to stop other arbitration requests and multicast transmissions associated with the current group and all destination groups;

[0054] The transmission unit is used to start the multicast transmission corresponding to the multicast request when all destination groups are ready to transmit the multicast of the source port to all destination groups at the same time, and release the resources of the destination group that has completed the multicast transmission.

[0055] The above-mentioned device can be implemented by the PCIe switch multicast processing method provided by the embodiment of the first aspect above. The specific implementation method can be found in the description of the embodiment of the first aspect, which will not be repeated here.

[0056] It will be understood that the steps and structures, names, and parameters described in the above embodiments are merely examples. Those skilled in the art may also make readily conceivable combinations and adjustments to the structural features of the above multiple embodiments, as needed, and should not limit the concepts of the present disclosure to the specific details of the above examples. For example, the descriptor in the above embodiment can only represent a single destination port. In an optional embodiment, the structure of the descriptor can be changed so that one descriptor represents multiple destination ports, and the number of data transfers from I_Memory to E_memory can be reduced to one.

[0057] Although the present disclosure has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein; and these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present disclosure.

Claims

1. A PCIe switch multicast processing method, characterized in that: include: When the source port receives a multicast request, a first arbitration is initiated to a port weighted polling arbitrator in the current group where the source port is located, and a second arbitration is initiated to a multicast weighted polling arbitrator between multiple groups according to the first arbitration result; Determine the destination group of the multicast request according to the second arbitration result, and stop other arbitration requests and multicast transmissions associated with the current group and all destination groups; When all destination groups are ready, the multicast transmission corresponding to the multicast request is started to transmit the multicast of the source port to all destination groups at the same time, and the resources of the destination groups that have completed the multicast transmission are released.

2. The PCIe switch multicast processing method according to claim 1, characterized in that: Before the source port receives the multicast request, the method further includes: Parse the descriptor in the current transmission request and obtain the host unicast flag to determine whether the current transmission request is a multicast request or a unicast request.

3. The PCIe switch multicast processing method according to claim 1, characterized in that: The initiating a second arbitration to the multicast weighted polling arbitrator among the multiple groups according to the first arbitration result further includes: If the port weighted polling arbitrator arbitrates the source port, initiating a second arbitration to the multicast weighted polling arbitrators among the multiple groups for the multicast request; If the source port is not arbitrated, the first arbitration is initiated repeatedly.

4. The PCIe switch multicast processing method according to claim 1, characterized in that: The stopping of other arbitration requests and multicast transmissions associated with the current group and all destination groups further comprises: Stop arbitration requests sent by other ports of the current group of the current multicast, and stop multicast requests and multicast transmissions in other groups whose destination ports are the current group or the destination group.

5. The PCIe switch multicast processing method according to claim 1, characterized in that: Before starting the multicast transmission corresponding to the multicast request, the method further includes: If there are unready destination groups, wait until all destination groups are in a state where they can receive data.

6. A PCIe switch multicast processing device, characterized in that: include: An arbitration unit, configured to initiate a first arbitration to a port weighted polling arbitrator in a current group where the source port is located when the source port receives a multicast request, and initiate a second arbitration to a multicast weighted polling arbitrator between multiple groups according to a result of the first arbitration; a connecting unit, configured to determine a destination group of the multicast request according to the second arbitration result, and to stop other arbitration requests and multicast transmissions associated with the current group and all destination groups; The transmission unit is used to start the multicast transmission corresponding to the multicast request when all the destination groups are ready to transmit the multicast of the source port to all the destination groups at the same time, and release the resources of the destination groups that have completed the multicast transmission.

7. The PCIe switch multicast processing device according to claim 6, characterized in that: The arbitration unit is further used for: Before the source port receives a multicast request, the descriptor in the current transmission request is parsed to obtain a host unicast flag to determine whether the current transmission request is a multicast request or a unicast request.

8. The PCIe switch multicast processing device according to claim 6, characterized in that: The arbitration unit is further used for: If the port weighted polling arbitrator arbitrates the source port, initiating a second arbitration to the multicast weighted polling arbitrators among the multiple groups for the multicast request; If the source port is not arbitrated, the first arbitration is initiated repeatedly.

9. The PCIe switch multicast processing device according to claim 6, characterized in that: The connecting unit is further used for: Stop arbitration requests sent by other ports of the current group of the current multicast, and stop multicast requests and multicast transmissions in other groups whose destination ports are the current group or the destination group.

10. The PCIe switch multicast processing device according to claim 6, characterized in that: The transmission unit is further used for: If there are unready destination groups, wait until all destination groups are in a state where they can receive data.

Citation Information

Patent Citations

  • High-throughput hybrid arbitration routing mechanism supporting request response multiport asynchronous multicast

    CN110659144A

  • Data packet switching system and method

    CN114257557A

  • PCIe switch multicast processing method and device

    CN117749706A

  • Method and apparatus for load balancing in network processing device

    US20020048280A1

  • Multicast in the probe channel

    US20200099993A1