Improved efficiency and quality of service for systems with higher bandwidth clients mixed with lower bandwidth clients
By configuring NoC systems to allow higher-bandwidth clients to aggregate traffic across multiple channels and lower-bandwidth clients to distribute traffic across multiple channels, the solution addresses the asymmetrical impact issue, improving NoC throughput and quality of service.
Patent Information
- Application Number
- JP2024539370
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-03-25
- Filing Date
- 2023-01-25
- Publication Date
- 2025-04-11
AI Technical Summary
In electronic devices with network-on-chip (NoC) systems, higher-bandwidth clients often face asymmetrical impacts on their communications due to lower-bandwidth clients transmitting traffic over a single physical channel, leading to inefficiencies and difficulties in meeting Quality of Service (QoS) standards.
The solution involves configuring NoC systems to allow higher-bandwidth clients to transmit aggregated traffic across multiple physical channels without asymmetrical impact, while also enabling lower-bandwidth clients to transmit distributed traffic across multiple channels to the same or different destinations.
This approach improves NoC throughput and quality of service by ensuring that higher-bandwidth clients maintain optimal performance while lower-bandwidth clients' traffic is evenly distributed across multiple channels, reducing the 'noisy neighbor' effect and enhancing overall network efficiency.
Smart Images

Figure 2025509026000001_ABST
Abstract
Description
[Technical field]
[0001] FIELD OF THE DISCLOSURE Embodiments of the present disclosure relate generally to intra-device network routing in electronic devices, and more particularly to mixed communications between higher bandwidth and lower bandwidth clients in electronic devices. [Background technology]
[0002] Electronic systems, programmable systems (e.g., Central Processing Unit (CPU)), and Programmable Logic (PL)-based systems may be used in a variety of data processing environments. These types of systems may use Network on Chip (NoC), also referred to herein as Horizontal Network on Chip (hNoC), to transfer data between components. NoCs have increased their supported bandwidth as devices now support higher bandwidth (BW) interfaces such as 1 Terabit per second (Tbps) Peripheral Component Interface express (PCIe) interfaces, 800 Gigabit per second (Gbps) Ethernet, and higher bandwidth memory. Summary of the Invention
[0003] Embodiments described herein generally relate to transmissions over physical channels and methods that allow higher bandwidth clients to transmit aggregate traffic across multiple physical channels to a destination and allow lower bandwidth clients to simultaneously transmit traffic distributed across two or more of the multiple physical channels to the same or different destinations without causing an asymmetric impact on the collective communications from the higher bandwidth clients.
[0004] In one embodiment, a method of transmission is provided that includes transmitting first traffic aggregated across a plurality of physical channels from a higher bandwidth client to a first destination, and transmitting second traffic distributed across two or more of the plurality of physical channels from a lower bandwidth client to a second destination simultaneously with transmitting the first traffic.
[0005] In another embodiment, an apparatus is provided that generally includes a higher bandwidth client, a lower bandwidth client, a first destination, a second destination, and a plurality of physical channels coupled between the higher bandwidth client, the lower bandwidth client, the first destination, and the second destination, where the higher bandwidth client is configured to transmit first traffic aggregated across the plurality of physical channels to the first destination, and where the lower bandwidth client is configured to transmit second traffic distributed across two or more of the plurality of physical channels from the lower bandwidth client to the second destination simultaneously with transmitting the first traffic.
[0006] In yet another embodiment, an apparatus is provided that generally includes means for transmitting first traffic aggregated across a plurality of physical channels from a higher bandwidth client to a first destination, and means for transmitting second traffic distributed across two or more of the plurality of physical channels from a lower bandwidth client to a second destination concurrently with transmitting the first traffic.
[0007] These and other aspects can be understood with reference to the following detailed description.
[0008] So that the above features briefly summarized may be understood in detail, a more particular description can be made by reference to exemplary implementations, some of which are illustrated in the accompanying drawings. It should be noted, however, that the accompanying drawings illustrate only typical example implementations and therefore should not be considered as limiting the scope thereof. [Brief description of the drawings]
[0009] [Figure 1] 1 illustrates an example system including fully subscribed link aggregated communication in which embodiments of the present disclosure may be implemented. [Diagram 2] 2 shows a traffic distribution graph for the system shown in FIG. 1 without perturbing traffic. [Diagram 3] 2 illustrates the example system of FIG. 1 with network traffic from a lower bandwidth client to a destination. [Figure 4] 4 shows a traffic distribution graph for the system shown in FIG. 3 where perturbing traffic from lower bandwidth clients affects a single channel. [Diagram 5]1 illustrates an embodiment of a system including fully subscribed link aggregation communications with traffic from lower bandwidth clients distributed across multiple channels, in accordance with an embodiment of the present disclosure. [Figure 6] 6 illustrates a traffic distribution graph for the system illustrated in FIG. 5 with distributed perturbation traffic, according to one embodiment of the present disclosure. [Figure 7] 1 illustrates an example system including chiplets having distributed traffic from lower bandwidth clients, in accordance with one embodiment of the present disclosure. [Figure 8] 1 illustrates an embodiment of a system including fully subscribed link aggregation communications and communications from lower bandwidth clients to alternative destinations in accordance with an embodiment of the present disclosure. [Figure 9] 1 illustrates a flow diagram of a method of communication according to one embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] To facilitate understanding, wherever possible, identical reference numbers have been used to designate identical elements common to the figures. It is contemplated that elements of one embodiment may be beneficially incorporated in other embodiments.
[0011]
[0005] Embodiments of the present disclosure provide methods and apparatus for enabling higher bandwidth clients to transmit aggregate traffic across multiple physical channels to a destination and for enabling lower bandwidth clients to simultaneously transmit traffic distributed across two or more of the multiple physical channels to the same or different destinations without causing an asymmetric impact on the collective communications from the higher bandwidth clients. This may improve network-on-chip (NoC) throughput and quality of service (QoS) in electronic and programmable logic systems having higher bandwidth clients mixed with lower bandwidth clients. In this manner, higher bandwidth clients and lower bandwidth clients may communicate with their respective destination(s) without the lower bandwidth clients' traffic asymmetrically impacting the higher bandwidth clients' traffic.
[0012] In some NoCs with multiple physical channels, a higher bandwidth ("aggregated") client may be mapped to all of the multiple physical channels to supply the bandwidth requested by the higher bandwidth client for communication with a first destination. A lower bandwidth ("non-aggregated") client may also be mapped (e.g., assigned) to one of the available physical channels to supply the bandwidth for the lower bandwidth client's communication with a second destination. This assignment of a lower bandwidth client to a single physical channel that is also mapped to the higher bandwidth client's communication may lead to inefficiencies in the NoC. Additionally, the "noisy neighbor" effect of the lower bandwidth client's communication affecting the higher bandwidth client's communication may make it difficult for the NoC to meet quality of service (QoS) standards for the higher bandwidth client's communication.
[0013] In an embodiment of the present disclosure, a NoC having a fully subscribed aggregate channel between a higher bandwidth client and a first destination may route traffic from a lower bandwidth client across multiple aggregate channels by mapping multiple logical destination identifiers (IDs) to a physical destination ID for a second destination (which may be the same destination as the first destination or a different destination), configuring a route for each of the multiple logical destination IDs on a different one of the physical channels, and splitting traffic to the physical destination ID among the logical destination IDs such that the traffic is split among the physical channels and does not asymmetrically affect the fully subscribed aggregate channel. By using a single physical destination ID that is mapped to multiple logical destination IDs, the lower bandwidth client's traffic is split among multiple channels and the lower bandwidth client may avoid the complexity of implementing distribution and / or destination aggregation, which is instead provided by a NoC that executes the techniques described herein (e.g., mapping multiple logical destination IDs to a single physical destination ID). Further details are provided below with respect to Figures 1-9.
[0014] Various features are described below with reference to the drawings. It should be noted that the drawings may or may not be drawn to scale, and that elements of similar structure or function are represented by similar reference numerals throughout the drawings. It should be noted that the drawings are intended to facilitate the description of features only. They are not intended as an exhaustive description of the claimed invention or as limiting the scope of the claimed invention. In addition, an illustrated embodiment need not have all aspects or advantages shown. An aspect or advantage described in connection with a particular embodiment is not necessarily limited to that embodiment and may be implemented in any other embodiment even if not so illustrated or explicitly described. Furthermore, while the methods described herein may be described with a particular order of operations, other methods according to other embodiments may be implemented with more or fewer operations in various other orders (e.g., including different serial or parallel execution of various operations).
[0015] In the following description, the phrase "aggregated bandwidth client" refers to a computing component that communicates with a destination over multiple physical channels of a NoC and utilizes more bandwidth for that communication than can be carried by a single physical channel.
[0016] On-chip data movement performance specifications are increasing as devices now support high bandwidth (BW) interfaces such as Peripheral Control Interface Express (PCIe) Generation 6 (Gen6) at 1 Terabit per second (Tbps), high-speed input / output (IO), 800 Gigabit per second (Gbps) Ethernet, and high BW memory such as HBM3 at 800 Gbps. Some devices use enhanced NoCs to route such high-speed traffic and sometimes simultaneously support various traffic profiles, such as streaming or memory-mapped traffic. Streaming traffic on a NoC may be frequently mapped between source and destination pairs and may include fully subscribed aggregate communications.
[0017] An example of fully subscribed collective communication may be as follows: A first client (e.g., a higher bandwidth client) may be bandwidth sensitive (e.g., a streaming video client) and may be connected to one end of the horizontal NoC in close physical proximity to an external interface, such as a PCIe interface. In this example, a first destination may be at another end of the horizontal NoC in close physical proximity to another external interface, such as an Ethernet interface. In this example, the first client is communicating with the first destination utilizing 99.5% of the total available bandwidth of the horizontal NoC. In this example, the horizontal NoC may be composed of four physical channels or links, each supporting 25% of the bandwidth provided by the horizontal NoC. In this example, the first client may use four Network Master Units (NMUs), each connected to one of the physical channels, to utilize 99.5% of the bandwidth of each link and thus 99.5% of the total bandwidth of the horizontal NoC.
[0018] In the above example, if a second client (e.g., a lower bandwidth client) also wants to communicate with a second destination (same or different from the first destination) using a small amount of the total bandwidth of the horizontal NoC, then in a typical NoC architecture, the routing algorithm of the NoC will select the shortest path for this traffic and route all of this traffic on one channel. Because the first client is already sending traffic that consumes 99.5% of the bandwidth of each channel, the traffic from the second client will impact one of the four channels carrying the traffic of the first client. This selection of a single channel impacts the even distribution of bandwidth across the four links to the first destination for the first client, resulting in an asymmetric impact on the network traffic from the first client to the first destination. The NoC channel carrying the traffic for the second client will provide lower performance than the remaining three channels between the first client and the first destination.
[0019] FIG. 1 illustrates an example system 100 including fully subscribed link aggregation communication. In the system 100, client A 102 is a bandwidth sensitive client (e.g., client A 102 is running a bandwidth sensitive application) and may be referred to herein as a “higher bandwidth client.” Client A 102 may be connected to a first location 112 (e.g., at one end) of a horizontal NoC 110 via network protocol switches (NPS, also referred to herein as “switches”) 114. Client A 102 may be physically close to its external interface, which may be, for example, a PCIe interface. Destination 150 may be located at a second location 142 (e.g., at the other end) of the horizontal NoC 110 and connected to the horizontal NoC via network protocol switches (NPS) 143 and 144. NPSs 114, 143, and 144, and / or other NPSs mentioned herein, may be configured to store routing information and / or routing tables that describe routes for network traffic between various NPSs and other components of system 100 (e.g., between client A 102 and destination 150). Destination 150 may be physically proximate to its external interface, which may be, for example, an Ethernet interface. Client A 102 may communicate with destination 150 and consume almost all (e.g., 99.5%) of the total available bandwidth of horizontal NoC 110.
[0020] 1, a Horizontal NoC (HNoC) is constructed from four physical channels 122, 124, 126, and 128 (also referred to herein as "links" and labeled channels "0," "1," "2," and "3," respectively), each supporting 25% of the total available bandwidth. Although four physical channels are shown, the reader will understand that an HNoC may include more or less than four channels.
[0021] Client A 102 has four source ports (e.g., four network master units (NMUs) 104a-d), each of which is connected to a different physical channel 122, 124, 126, or 128, respectively, through one of the NPSs 114. In this embodiment, Client A 102 prefers to consume 99.5% of the available bandwidth of each physical channel to consume a total of 99.5% of the available bandwidth across all four physical channels 122, 124, 126, and 128. This communication (consuming nearly all of the available bandwidth of each of the multiple physical channels) may be referred to herein as "fully subscribed link aggregated communication." To obtain the best distribution of available bandwidth, Client A 102 may also choose to distribute a single logical traffic flow across the four physical channels 122, 124, 126, and 128. In system 100, Client B 130 is a lower bandwidth client that may consume a small amount (e.g., 2%) of the available bandwidth. Client B 130 has a source port (e.g., Network Master Unit (NMU) 134) that is a network ingress point into NoC 110 and is connected to physical channels 122, 124, 126, and 128 via NPS 137 and via physical channels 136 and 138 of the vertical NoC. A destination port (e.g., Network Slave Units (NSU) 145 and NSU 146) is a network egress point into NoC 110 and connects destination 150 to horizontal NoC 110 via NPS 143 and 144 as shown.
[0022] 2 illustrates a traffic distribution graph 200 from client A 102 (see FIG. 1) on four horizontal NoC physical channels 122, 124, 126, and 128, according to an embodiment of the present disclosure. As illustrated in FIG. 1, there is no traffic from client B 130, and thus traffic from client B 130 is not shown in the traffic distribution graph 200. The bandwidth achieved by horizontal NoC physical channel 122 is shown at 202. Similarly, the bandwidth achieved by horizontal NoC physical channels 124, 126, and 128 are shown at 204, 206, and 208, respectively. As illustrated, each of channels 122, 124, 126, and 128 may use near its peak bandwidth 210, such as 99.5% of the peak bandwidth 210, without perturbing traffic (e.g., from client B 130).
[0023] 3 illustrates an example system 100 having network traffic 320 from Client B 130 to destination 150 at lower bandwidth, according to one embodiment of the present disclosure. A routing algorithm of the NoC 110 in the example system 100 may route all of the traffic 320 from Client B 130 to destination 150 over a single physical channel, e.g., physical channel 124. The routing algorithm may be implemented by software and / or hardware components included in the NMU 134, NPSs 137 and 144, and NSU 146. The routing algorithm of the example system 100 may select any single physical channel 122, 124, 126, or 128, and is not required to select physical channel 124 for traffic 320 from Client B 130 to destination 150.
[0024] 4 illustrates a traffic distribution graph 400 of the network traffic shown in FIG. 3 on four horizontal NoC physical channels 122, 124, 126, and 128, according to one embodiment of the present disclosure. The bandwidth achieved by horizontal NoC physical channel 122 (labeled as channel “0”) is shown at 402. Similarly, the bandwidth achieved by horizontal NoC physical channels 124, 126, and 128 (labeled as channels “1”, “2”, and “3”, respectively) is shown at 404, 406, and 408, respectively. As illustrated, each of channels 122, 124, 126, and 128 may potentially use near its peak bandwidth 410, such as 99.5% of peak bandwidth 410. Network traffic from client A 102 may use the entire bandwidth achieved by each of physical channels 122, 126, and 128. 3, all of the traffic 320 from client B 130 to destination 150 is routed over a single physical channel 124. Thus, all of the traffic from client B 130 is shown in traffic distribution graph 400 as utilizing bandwidth 450 on physical horizontal NoC channel 1 (e.g., physical channel 124), representing a perturbation in the traffic on this channel. Thus, the network traffic from client A 102 uses an amount of bandwidth 454 that is less than the peak possible bandwidth 404 achievable by NoC channel 1. The fact that the bandwidth 454 on NoC channel 1 available for network traffic from client A 102 is less than the bandwidths 402, 406, and 408 available on the other NoC channels may cause inefficiencies in the delivery of network traffic from client A 102 to destination 150 and may make it difficult to meet QoS standards for network traffic from client A 102 to destination 150.
[0025] FIG. 5 illustrates an example system 500 including fully subscribed link aggregated communication according to one embodiment of the present disclosure. System 500 includes many of the same components as system 100 (see FIG. 1), and those components that are unchanged from system 100 will not be further described. In system 500, client A 102 is a higher bandwidth client that communicates with destination 150 via fully subscribed link aggregated communication and consumes almost all (e.g., 99.5%) of the total available bandwidth of horizontal NoC 110. In system 500, client B 130 is a lower bandwidth client that may consume a small amount (e.g., 0.5%) of the available bandwidth. In this embodiment, client B 130 has a network master unit (NMU) 534 connected to physical channels 122, 124, 126, and 128 via NPS 137 and physical channels 136 and 138 of the vertical NoC. In the exemplary system 500, there is a network slave unit (NSU) 546 in the destination 150 connected to all four of the physical channels 122, 124, 126, and 128 via a dedicated NPS 544. In the exemplary system 500, the NSU 546 has four logical destination identifiers (also referred to herein as “logical destination IDs” or “dst_id”) assigned to it by a routing algorithm of the NoC 110, and each of the logical destination addresses maps to a different one of the physical channels 122, 124, 126, or 128. The routing algorithm of the NoC 110 may be implemented in software and / or hardware components of the various NMUs 104 and 534, NPSs 114, 137, 143, and 544, and / or NSUs 145 and 546.
[0026] During operation of the system 500, the NoC compiler (e.g., the routing algorithm of the NoC compiler) assigns one or more logical destination IDs to the physical destination ID of the destination 150. The NoC compiler may determine the number of logical destination IDs to assign to a physical destination ID (e.g., the physical destination ID of an NSU at the destination) based on the maximum number of physical channels over which traffic from a source to a destination (e.g., from an NMU to an NSU) is distributed throughout the NoC path. The NoC compiler (e.g., the routing algorithm of the NoC compiler) also programs the routing tables in each NoC protocol switch (NPS) such that each logical destination ID corresponds to a different physical channel 122, 124, 126, or 128 of the NoC. When the client B 130 sends traffic to the destination 150, the NMU 534 may assign packets of traffic to logical destination IDs in a round-robin fashion. Thus, traffic from Client B 130 to destination 150 is split among physical channels 122, 124, 126, and 128, such that each physical channel uses approximately an equal amount of bandwidth to carry traffic from Client A 102 to destination 150. Traffic from Client B 130 to destination 150 is represented by 520, 522, 524, and 526. By splitting traffic from Client B 130 to destination 150 across all of the physical channels of the NoC, the NoC reduces the impact on bandwidth-sensitive communications from Client A 102 to destination 150.
[0027] The example system 500 shown in FIG. 5 includes four physical channels 122, 124, 126, and 128, although the disclosure is not so limited and aspects of the disclosure are applicable to NoCs aggregating two or more physical channels.
[0028] 6 illustrates a traffic distribution graph 600 of the network traffic shown in FIG. 5 on the four horizontal NoC physical channels 122, 124, 126, and 128, according to one embodiment of the present disclosure. The bandwidth used by the horizontal NoC physical channel 122 is shown at 602. Similarly, the bandwidth used by the horizontal NoC physical channels 124, 126, and 128 is shown at 604, 606, and 608, respectively. As illustrated, each of the channels 122, 124, 126, and 128 may use near its peak bandwidth 610, such as 99.5% of the peak bandwidth 610. Network traffic from client A 102 to destination 150 uses the amount of network bandwidth shown at 622, 624, 626, and 628. Network traffic from client A 102 may use a majority of the available bandwidth on each of the physical channels 122, 124, 126, and 128. 5, traffic 520, 522, 524, and 526 from client B 130 to destination 150 is also distributed among physical channels 122, 124, 126, and 128. Thus, the amount of bandwidth used by traffic from client B 130 is shown at 652, 654, 656, and 658 in traffic distribution graph 600. In this manner, the amount of bandwidth used for network traffic from client A 102 to destination 150 is essentially equal (e.g., bandwidth-sensitive traffic is evenly distributed), and thus NoC 110 may avoid experiencing inefficiencies and difficulties in meeting QoS standards that may occur if there are differences in the amount of bandwidth used for bandwidth-sensitive traffic on each of the physical channels.
[0029] FIG. 7 illustrates an example system 700 including two chiplets 702 and 752 having fully subscribed link aggregated communication according to one embodiment of the present disclosure. System 700 includes many of the same components as system 500 (see FIG. 5), and those components that are unchanged from system 500 will not be further described. In system 700, client A 102 and client B 130 are located on chiplet 702, and destination 150 is located on chiplet 752. NoC 110 includes a chip-to-chip NoC bridge 720 that connects the portion of NoC 110 located on chiplet 702 with the portion of NoC 110 located on chiplet 752. Thus, chiplet 702 may communicate with chiplet 752 through chip-to-chip NoC bridge 720, and vice versa. In some embodiments, the portion of inter-chip NoC bridge 720 located on chiplet 702 may communicate with the portion of inter-chip NoC bridge 720 on chiplet 752 using a chiplet interface protocol. Network traffic on NoC 110 may be encapsulated when communicated through inter-chip NoC bridge 720, but NoC attributes may be tunneled across inter-chip NoC bridge 720.
[0030] FIG. 8 illustrates an example system 800 including fully subscribed link aggregated communication according to one embodiment of the present disclosure. System 800 includes many of the same components as system 500 (see FIG. 5), and those components that are unchanged from system 500 will not be further described. In system 800, client A 102 is a higher bandwidth client that communicates with destination A 850 via fully subscribed link aggregated communication and consumes nearly all (e.g., 99.5%) of the total available bandwidth of the horizontal NoC 110. In system 800, client B 130 is a lower bandwidth client that communicates with destination B 860 and may consume a small amount (e.g., 0.5%) of the available bandwidth. In system 800, there is a network slave unit (NSU) 846 in destination B 860, which is connected to physical channels 870 and 872 of the vertical NoC via NPS 862. The NPS 862 and physical channels 870 and 872 of the vertical NoC are coupled to all four of the physical channels 122, 124, 126, and 128 via the NPS 844. In the example system 800, the NSU 846 has four logical destination IDs assigned by the network compiler (e.g., the routing algorithm of the network compiler) of the NoC 110, and each of the logical destination IDs is mapped to a different one of the physical channels 122, 124, 126, or 128. As mentioned above, the NoC compiler may determine the number of logical destination IDs to assign to the physical destination IDs (e.g., the NSU at the destination) based on the maximum number of physical channels over which the traffic from the source to the destination (e.g., from the NMU to the NSU) is distributed throughout the NoC path. Two of the logical destination IDs may be mapped (by the routing algorithm) to the physical channel 870 of the vertical NoC, and the other two logical destination IDs may be mapped to the physical channel 872.The routing algorithms of NoC 110 may be implemented in software and / or hardware components of the various NMUs 104 and 534, NPSs 114, 137, 143, 844, and 862, and / or NSUs 145 and 846.
[0031] During operation of the system 800, the NoC compiler (e.g., a routing algorithm of the NoC compiler) assigns one or more logical destination ID(s) to the physical destination ID of destination B 860. The NoC compiler may determine the number of logical destination IDs to assign to a physical destination ID (e.g., a physical destination ID of an NSU at the destination) based on the maximum number of physical channels over which traffic from a source to a destination (e.g., from an NMU to an NSU) is distributed throughout the NoC path. The NoC compiler (e.g., a routing algorithm of the NoC compiler) also programs a routing table in at least the associated NPS such that each logical destination ID corresponds to a different physical channel 122, 124, 126, or 128 of the NoC. When client B 130 sends traffic to destination B 860, the NMU 534 may assign each packet of traffic to a logical destination ID, for example, in a round-robin manner. Thus, traffic from Client B 130 to Destination B 860 is split among physical channels 122, 124, 126, and 128, such that each physical channel uses approximately an equal amount of bandwidth to carry traffic from Client A 102 to Destination A 850. Traffic from Client B 130 to Destination B 860 is represented by 520, 522, 524, and 526. By splitting traffic from Client B 130 to Destination B 860 across all physical channels of the horizontal NoC 110, the horizontal NoC 110 reduces the impact on communications from Client A 102 to Destination A 850 (e.g., without perturbation by traffic from Client B 130).
[0032] 9 illustrates a flow diagram of an example operation 900 for transmission, according to one embodiment of the present disclosure. The operation 900 may be performed by an electronic device, such as the systems 500, 700, and 800 of FIGS. 5, 7, and 8, respectively. The flow diagram includes blocks representing the operation 900.
[0033] The operations 900 may begin at block 902 by transmitting first traffic from a higher bandwidth client (e.g., a bandwidth sensitive client) to a first destination. This first traffic may be aggregated across multiple physical channels (e.g., in a fully subscribed link aggregated communication). In some embodiments, this operation at block 902 corresponds to transmitting the first traffic aggregated across physical channels 122, 124, 126, and 128 from client A 102 to destination 150, as shown in Figures 5 and 7. In other embodiments, this corresponds to transmitting the first traffic aggregated across physical channels 122, 124, 126, and 128 from client A 102 to destination A 850, as shown in Figure 8.
[0034] At block 904, the system transmits second traffic from the lower bandwidth client to a second destination concurrently with the transmission of the first traffic at block 902. The second traffic is distributed across two or more of the multiple physical channels. The second destination may be the same destination as the first destination or may be a different destination. In some embodiments, this operation at block 904 corresponds to transmitting second traffic from client B 130 distributed across two or more of physical channels 122, 124, 126, or 128 shown in Figures 5 and 7 to destination 150 concurrently with transmitting the first traffic from client A 102 to destination A 850. In other embodiments, this corresponds to transmitting second traffic from client B 130 distributed across two or more of physical channels 122, 124, 126, or 128 to destination B 860 concurrently with transmitting the first traffic from client A 102 to destination A 850 as shown in Figure 8.
[0035] According to some embodiments, transmitting the second traffic at block 904 may include transmitting the second traffic equally distributed across multiple physical channels (e.g., physical channels 122, 124, 126, and 128 shown in Figures 5, 7, and 8).
[0036] According to some embodiments, a second destination (e.g., destination 150 or destination B 860 shown in one of Figures 5, 7, and 8) may be unaware of the distribution (of the second traffic) across two or more of the multiple physical channels (e.g., physical channels 122, 124, 126, and 128 shown in Figures 5, 7, and 8).
[0037] According to some embodiments, the higher bandwidth client (e.g., client A 102 shown in FIGS. 5, 7, and 8) may include a higher bandwidth network-on-chip (NoC) client, the lower bandwidth client (e.g., client B 130 shown in FIGS. 5, 7, and 8) may include a lower bandwidth NoC client, at least one of the first destination or the second destination (e.g., destination 150, destination A 850, or destination B 860 shown in one of FIGS. 5, 7, and 8) may include a NoC destination, and the multiple physical channels (e.g., physical channels 122, 124, 126, and 128 shown in FIGS. 5, 7, and 8) may include multiple NoC channels.
[0038] According to some embodiments, a higher bandwidth client (e.g., client A 102 shown in FIGS. 5, 7, and 8) may be on a first chiplet (e.g., chiplet 702), a lower bandwidth client (e.g., client B 130 shown in FIGS. 5, 7, and 8) may be on a second chiplet (e.g., chiplet 752), at least one of the first destination or second destination (e.g., destination 150, destination A 850, or destination B 860 shown in one of FIGS. 5, 7, and 8) may be on the destination chiplet, and the multiple physical channels (e.g., physical channels 122, 124, 126, and 128 shown in FIGS. 5, 7, and 8) may include chiplet-to-chiplet channels.
[0039] According to some embodiments, transmitting the second traffic at block 904 may include maintaining in-order delivery of the second traffic to a second destination (e.g., destination B 860 or destination 150 shown in one of FIGS. 5, 7, and 8).
[0040] According to some embodiments, multiple physical channels (e.g., physical channels 122, 124, 126, and 128 shown in Figures 5, 7, and 8) may have similar latency and similar throughput when simultaneously transmitting a first traffic to a first destination in block 902 and a second traffic to a second destination in block 904 (e.g., destination B 150 or destination B 860 shown in one of Figures 5, 7, and 8).
[0041] According to some embodiments, in operation 900, a physical destination identifier (ID) may be associated with a second destination (e.g., Destination 150 or Destination B 860 shown in FIGS. 5, 7, and 8). Additionally, transmitting the second traffic in block 904 may include transmitting the second traffic from a source port (e.g., NMU 534 shown in FIGS. 5, 7, and 8) of a lower bandwidth client (e.g., Client B 130 shown in FIGS. 5, 7, and 8) to multiple distinct logical destination IDs, each logical destination ID associated with a different one of multiple physical channels (e.g., physical channels 122, 124, 126, and 128 shown in FIGS. 5, 7, and 8). Transmitting the first traffic in block 902 may include transmitting the first traffic from multiple source ports (e.g., NMU 104 shown in Figures 5, 7, and 8) of a higher bandwidth client (e.g., client A 102 shown in Figures 5, 7, and 8) to a first destination (e.g., destination 150 or destination A 850 shown in one of Figures 5, 7, and 8), each source port associated with a different one of multiple physical channels (e.g., physical channels 122, 124, 126, and 128 shown in Figures 5, 7, and 8). In some such embodiments, operation 900 may further include reassembling the second traffic of block 904 received at a second destination (e.g., destination 150 or destination B 860 shown in one of FIGS. 5, 7, and 8) via multiple physical channels (e.g., physical channels 122, 124, 126, and 128 shown in FIGS. 5, 7, and 8) using the logical destination ID.
[0042] According to some embodiments, transmitting the second traffic in block 904 may include routing the second traffic through a plurality of switches (e.g., NPSs 137, 143, 544, 844, and 862 shown in FIGS. 5, 7, and 8) using a routing table stored in each of the plurality of switches. Each switch may be coupled between a source port (e.g., NMU 534 shown in FIGS. 5, 7, and 8) of a lower bandwidth client (e.g., client B 130 shown in FIGS. 5, 7, and 8) and a different one of a plurality of physical channels (e.g., physical channels 122, 124, 126, and 128 shown in FIGS. 5, 7, and 8).
[0043] In the above, reference is made to examples presented in the present disclosure. However, the scope of the present disclosure is not limited to the specific described examples. Instead, any combination of the described features and elements, whether related to different examples or not, is contemplated for implementing and practicing the contemplated examples. Furthermore, the examples disclosed herein may achieve other possible solutions or advantages over the prior art, but whether or not a particular advantage is achieved by a given example does not limit the scope of the present disclosure. Thus, the above-mentioned aspects, features, embodiments, and advantages are merely illustrative and are not considered elements or limitations of the appended claims unless expressly recited in one or more claims.
[0044] As will be appreciated by those skilled in the art, the embodiments disclosed herein may be embodied as a system, method, apparatus, or the like. Thus, the embodiments may take the form of an entirely hardware embodiment, a combination of hardware products, or an embodiment combining corresponding programs and hardware aspects, all of which may be generally referred to herein as "circuitry" or "system." Furthermore, certain aspects, such as programmable logic blocks, lookup tables (LUTs), etc., may take the form of hardware components that can be controlled using corresponding programs.
[0045] Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. The computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (non-exhaustive list) of computer readable storage media include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a Read-Only Memory (ROM), an Erasable Programmable Read-Only Memory (EPROM or Flash memory), an optical fiber, a portable Compact Disc Read-Only Memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this specification, a computer-readable storage medium is any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
[0046] A computer-readable signal medium may include a propagated data signal in which computer-readable program code is embodied, for example in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including but not limited to electrical, magnetic, optical, electromagnetic, or any suitable combination thereof. A computer-readable signal medium is not a computer-readable storage medium but may be any computer-readable medium that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
[0047] The program code embodied on the computer readable medium may be transmitted using any suitable medium, including, but not limited to, wireless (e.g., radio frequency (RF) or infrared), wire, fiber optic or cable, or the like, or any suitable combination of the foregoing.
[0048] Computer program code for implementing the operations or programs of the embodiments of the present disclosure may be written in any combination of one or more programming languages, including, for example, object-oriented programming languages such as Java, Smalltalk, C++, and procedural programming languages such as the "C" programming language or similar programming languages. The program code may execute completely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or completely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet Service Provider).
[0049] Embodiments of the present disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (e.g., systems), and computer program products presented herein. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, a special purpose computer, or other programmable data processing apparatus such that the instructions, executed by the processor of the computer or other programmable data processing apparatus, cause a machine to create means for implementing the functions / acts specified in the blocks of the flowchart and / or block diagrams.
[0050] These computer program instructions may also be stored on a computer-readable storage medium, which may direct a computer, other programmable data processing apparatus, or other device to function in a particular manner to produce an article of manufacture including instructions that implement the function / act specified in the flowchart and / or block diagram block(s), where the instructions stored on the computer-readable storage medium.
[0051] Computer program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be executed on the computer, other programmable apparatus, or other device to generate a computer-implemented process, whereby the instructions executing on the computer or other programmable apparatus provide a process for implementing the function / act specified in the block(s) of the flowcharts and / or block diagrams.
[0052] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and apparatus according to various embodiments of the present disclosure. In this regard, each block in the flowcharts or block diagrams may represent a circuit configuration, a program for such circuit configuration, or a portion of instructions for such circuit configuration, including one or more executable instructions for controlling or programming the circuit configuration to perform the specified logical function(s). In some alternative implementations, the functions described in the blocks may occur out of the order described in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or the blocks may be executed in reverse order, depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart illustrations, as well as combinations of blocks in the block diagrams and / or flowchart illustrations, may be executed by a dedicated hardware-based system that performs the specified functions or acts, or a combination of dedicated hardware and computer instructions.
[0053] While the forgoing is directed to specific embodiments, other and further embodiments may be devised without departing from the basic scope thereof, which is determined by the following claims.
Claims
1. A method of transmission comprising: transmitting a first traffic aggregated across a plurality of physical channels from a higher bandwidth client to a first destination; and transmitting second traffic from lower bandwidth clients distributed across two or more of the plurality of physical channels to a second destination concurrently with transmitting the first traffic.
2. (a) transmitting the second traffic evenly distributed across the plurality of physical channels; (b) maintaining in-sequence delivery of the second traffic to the second destination; and and (c) routing the second traffic through a plurality of switches using a routing table stored in each of the plurality of switches, each switch routing the second traffic coupled between a source port of the lower bandwidth client and a different one of the plurality of physical channels.
3. The method of claim 1 , wherein the second destination is unaware of the distribution across the two or more of the plurality of physical channels.
4. 2. The method of claim 1, wherein the higher bandwidth clients include higher bandwidth Network-on-a-Chip (NoC) clients, the lower bandwidth clients include lower bandwidth NoC clients, at least one of the first destination or the second destination includes a NoC destination, and the multiple physical channels include multiple NoC channels.
5. 2. The method of claim 1 , wherein the higher bandwidth client is on a first chiplet and the lower bandwidth client is on a second chiplet, at least one of the first destination or the second destination is on a destination chiplet, and the multiple physical channels include chiplet-to-chiplet channels.
6. 2. The method of claim 1, wherein the multiple physical channels have similar latency and similar throughput when simultaneously transmitting the first traffic to the first destination and the second traffic to the second destination.
7. a physical destination identifier (ID) is associated with the second destination; transmitting the second traffic includes transmitting the second traffic from a source port of the lower bandwidth client to a plurality of distinct logical destination IDs, each logical destination ID being associated with a different one of the plurality of physical channels; 2. The method of claim 1 , wherein transmitting the first traffic comprises transmitting the first traffic from multiple source ports of the higher bandwidth client to the first destination, each source port being associated with a different one of the multiple physical channels.
8. An apparatus comprising: With higher bandwidth clients, With lower bandwidth clients, A first destination; A second destination; and a plurality of physical channels coupled between the higher bandwidth client, the lower bandwidth client, the first destination, and the second destination; the higher bandwidth client is configured to transmit a first traffic aggregated across the plurality of physical channels to the first destination; and a plurality of physical channels configured to transmit second traffic from the lower bandwidth client to the second destination, the second traffic being distributed across two or more of the plurality of physical channels, simultaneously with the lower bandwidth client transmitting the first traffic.
9. 10. The apparatus of claim 8, wherein the lower bandwidth clients are configured to transmit the second traffic evenly distributed across the multiple physical channels.
10. 9. The apparatus of claim 8, wherein the apparatus comprises a network on chip (NoC), the higher bandwidth clients include higher bandwidth NoC clients, the lower bandwidth clients include lower bandwidth NoC clients, at least one of the first destination or the second destination includes a NoC destination, and the multiple physical channels include multiple NoC channels.
11. 9. The apparatus of claim 8, wherein the higher bandwidth client resides on a first chiplet and the lower bandwidth client resides on a second chiplet, at least one of the first destination or the second destination resides on a destination chiplet, and the multiple physical channels include inter-chiplet channels.
12. 10. The apparatus of claim 8, wherein the lower bandwidth client is configured to send the second traffic with a logical destination identifier (ID), and the second destination is configured to maintain in-order delivery of the second traffic based on the logical destination ID.
13. a physical destination identifier (ID) is associated with the second destination; the lower bandwidth client comprising a source port configured to transmit the second traffic to a plurality of distinct logical destination IDs, each logical destination ID being associated with a different one of the plurality of physical channels; 9. The apparatus of claim 8, wherein the higher bandwidth client comprises a plurality of source ports configured to transmit the first traffic to the first destination, each of the plurality of source ports being associated with a different one of the plurality of physical channels, and the second destination is further configured to use the logical destination ID to reassemble the second traffic received at the second destination over the plurality of physical channels.
14. Further comprising a plurality of switches; the lower bandwidth client having a source port; each of the switches is coupled between the source port of the lower bandwidth client and a different one of the plurality of physical channels; 9. The apparatus of claim 8, wherein each of the switches is configured to store a routing table and to route the second traffic using the routing table.
15. 9. The apparatus of claim 8, wherein the multiple physical channels are configured such that the higher bandwidth client and the lower bandwidth client have similar latency and similar throughput when simultaneously transmitting the first traffic to the first destination and the second traffic to the second destination.