Gradual throttling of network-on-chip traffic
By implementing tiered traffic throttling based on outstanding transaction thresholds, agents on networks-on-chip manage traffic effectively, addressing performance degradation and maintaining efficient communication.
Patent Information
- Application Number
- JP2023518263
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-09-22
- Filing Date
- 2021-09-17
- Publication Date
- 2026-02-13
- Estimated Expiration
- 2041-09-17
AI Technical Summary
As traffic on networks-on-chip increases, there is a risk of performance degradation due to the lack of centralized management and direct knowledge of traffic generation and response behavior among agents, leading to potential network overload.
Agents on the network-on-chip calculate the number of outstanding transactions and compare it to thresholds, implementing tiered traffic throttling policies to manage traffic generation based on these thresholds, with dynamic adjustments to prevent network overload.
This approach improves network-on-chip performance by enabling agents to self-adjust their traffic throttling, maintaining efficient communication and preventing network congestion.
Smart Images

Figure 0007813777000001 
Figure 0007813777000002 
Figure 0007813777000003
Abstract
Description
[Background technology]
[0001] Chips such as systems-on-chips use networks-on-chip to facilitate communication between functional components. As traffic on the network-on-chip increases, the risk of performance degradation also increases. [Brief explanation of the drawings]
[0002] [Figure 1A] FIG. 1 is a block diagram of a chip for gradual throttling of network-on-chip traffic, according to some embodiments. [Figure 1B] FIG. 1 is a block diagram of a chip for dynamic network-on-chip traffic throttling, according to some embodiments. [Figure 2] 1 is a flowchart of an exemplary method for gradual throttling of network-on-chip traffic, according to some embodiments. [Figure 3] 1 is a flowchart of an exemplary method for gradual throttling of network-on-chip traffic, according to some embodiments. [Figure 4] 1 is a flowchart of an exemplary method for gradual throttling of network-on-chip traffic, according to some embodiments. [Figure 5] 1 is a flowchart of an exemplary method for gradual throttling of network-on-chip traffic, according to some embodiments. [Figure 6] 1 is a flowchart of an exemplary method for dynamic network-on-chip traffic throttling, according to some embodiments. [Figure 7] 1 is a flowchart of an exemplary method for dynamic network-on-chip traffic throttling, according to some embodiments. [Figure 8] 1 is a flowchart of an exemplary method for dynamic network-on-chip traffic throttling, according to some embodiments. [Figure 9] 1 is a flowchart of an exemplary method for dynamic network-on-chip traffic throttling, according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0003] In some embodiments, a method for gradual throttling of network-on-chip traffic includes, among other elements, calculating, by an agent of the network-on-chip, a number of outstanding transactions issued by the agent. Such gradual throttling also includes determining that the number of outstanding transactions meets a threshold. In response to determining that the number of outstanding transactions meets the threshold, gradual throttling can be performed by the agent by implementing a traffic throttling policy.
[0004] In some embodiments, the number of outstanding transactions includes a difference between a number of issued transactions that have not received a response by the agent. In some embodiments, the threshold is included in a plurality of thresholds, and the traffic throttling policy is included in a plurality of throttling policies. In such embodiments, enforcing the transaction policy includes enforcing the transaction policy based on which of the plurality of thresholds is met by the number of outstanding transactions. In some embodiments, the progressive throttling of network-on-chip traffic includes recalculating the number of outstanding transactions issued by the agent and determining that the number of outstanding transactions falls below the threshold. In response to such a determination, the agent terminates the traffic throttling policy. In some embodiments, terminating the transaction policy includes implementing another throttling policy. In other embodiments, terminating the transaction policy includes issuing transactions without throttling. In some embodiments, determining that the number of outstanding transactions falls below the threshold includes determining that the number of outstanding transactions falls below the threshold by a predetermined amount.
[0005] In some embodiments, a chip for gradual throttling of network-on-chip traffic performs steps including calculating, by an agent of the network-on-chip, a number of outstanding transactions issued by the agent. Such gradual throttling also includes determining that the number of outstanding transactions meets a threshold. In response to determining that the number of outstanding transactions meets the threshold, gradual throttling can be performed by the agent by implementing a traffic throttling policy.
[0006] In some embodiments, the number of outstanding transactions includes a difference between a number of issued transactions that have not received a response by the agent. In some embodiments, the threshold is included in a plurality of thresholds, and the traffic throttling policy is included in a plurality of throttling policies. In such embodiments, enforcing the transaction policy includes enforcing the transaction policy based on which of the plurality of thresholds is met by the number of outstanding transactions. In some embodiments, the steps include recalculating the number of outstanding transactions issued by the agent and determining that the number of outstanding transactions falls below the threshold. In response to such a determination, the agent terminates the traffic throttling policy. In some embodiments, terminating the transaction policy includes implementing another throttling policy. In some other embodiments, terminating the transaction policy includes issuing transactions without throttling. In some embodiments, determining that the number of outstanding transactions falls below the threshold includes determining that the number of outstanding transactions falls below the threshold by a predetermined amount.
[0007] In some embodiments, an apparatus for gradual throttling of network-on-chip traffic includes a chip performing steps including calculating, by an agent on the network-on-chip, a number of outstanding transactions issued by the agent. Such gradual throttling also includes determining that the number of outstanding transactions meets a threshold. In response to determining that the number of outstanding transactions meets the threshold, gradual throttling can be performed by the agent by implementing a traffic throttling policy.
[0008] In some embodiments, the number of outstanding transactions includes a difference between a number of issued transactions that have not received a response by the agent. In some embodiments, the threshold is included in a plurality of thresholds, and the traffic throttling policy is included in a plurality of throttling policies. In such embodiments, enforcing the transaction policy includes enforcing the transaction policy based on which of the plurality of thresholds is met by the number of outstanding transactions. In some embodiments, the steps include recalculating the number of outstanding transactions issued by the agent and determining that the number of outstanding transactions falls below the threshold. In response to such a determination, the agent terminates the traffic throttling policy. In some embodiments, terminating the transaction policy includes implementing another throttling policy. In some other embodiments, terminating the transaction policy includes issuing transactions without throttling. In some embodiments, determining that the number of outstanding transactions falls below the threshold includes determining that the number of outstanding transactions falls below the threshold by a predetermined amount.
[0009] 1A is a block diagram of a non-limiting exemplary chip 102a. The exemplary chip 102a may include various chips, including a microprocessor, an integrated circuit, or a system-on-chip. The exemplary chip 102a may be implemented in various computing devices, including mobile devices, personal computers, peripheral hardware components, gaming devices, set-top boxes, etc. The chip 102a includes multiple agents 104a-104n. The agents 104a-104n are functional units or hardware modules of the chip 102a. For example, in some embodiments, the agents 104a-104n comprise various modules of a system-on-chip architecture.
[0010] To facilitate communication between the agents 104a-104n, the chip 102a also includes a plurality of routing agents 106. The routing agents 106 include hardware modules that switch and / or route traffic and / or messages between the agents 104a-104n. As such, the routing agents 106 implement a network-on-chip 108. In some embodiments, the network-on-chip 108 includes a packet-switched network for the routing agents 106.
[0011] Communication between the agents 104a-104n is decentralized in that none of the agents 104a-104n has direct knowledge of the state (e.g., traffic generation, response, queues, etc.) of the other agents 104a-104n and the routing agent 106, and there is no centralized entity managing the traffic generation and / or response behavior of the agents 104a-104n. Thus, the agents 104a-104n have no direct knowledge of whether the network-on-chip 108 is overloaded or approaching capacity for routing traffic, and whether it should throttle traffic generation accordingly.
[0012] To improve performance of traffic through the network-on-chip 108, each agent 104a-104n uses the number of outstanding transactions issued by that agent 104a-104n as an estimate of the state of the network-on-chip 108. The number of outstanding transactions for a given agent 104a-104n is the number of messages sent to other agents 104a-104n via the network-on-chip 108 that are expecting a response (e.g., a response to a request, an acknowledgment of receipt) that has not been received. As communication through the network-on-chip 108 slows or the amount of traffic the routing agent 106 handles increases, the time it takes for an agent 104a-104n to respond to a message increases. Thus, the number of outstanding transactions for a given agent 104a-104n will increase, assuming the rate of transaction generation for that agent 104a-104n does not decrease.
[0013] To implement gradual throttling of traffic for the network-on-chip 108, the agents 104a-104n calculate the number of outstanding transactions issued by the agents 104a-104n. The agents 104a-104n then compare that number to a threshold. If the number is below the threshold, the agents 104a-104n continue to generate traffic according to the traffic throttling policy, if any, currently in effect. A traffic throttling policy is a configurable or programmable limit on how much traffic a given agent 104a-104n generates for the network-on-chip 108. If the number exceeds the threshold, the agents 104a-104n implement the traffic throttling policy. For example, assume that the agents 104a-104n are generating traffic for the network-on-chip 108 independently of any traffic throttling policy (e.g., without limit). In response to the number of outstanding transactions for that agent 104a-104n meeting a threshold, the agent 104a-104n then implements a traffic throttling policy to impose limits on the rate at which the agent 104a-104n provides traffic to the network-on-chip 108.
[0014] In some embodiments, the threshold is one of a plurality of thresholds, and the traffic throttling policy is one of a plurality of traffic throttling policies. For example, in some embodiments, each traffic throttling policy corresponds to one of a plurality of thresholds such that the corresponding traffic throttling policy is implemented when the number of outstanding transactions for a given agent 104a-104n exceeds the predetermined threshold. For example, a first threshold corresponds to a first traffic throttling policy (e.g., a "light throttling policy"), a second threshold higher than the first threshold corresponds to a second traffic throttling policy (e.g., a "heavy throttling policy") that is more restrictive than the first traffic throttling policy, and a third threshold higher than the second threshold corresponds to a third traffic throttling policy (e.g., a "stop throttling policy") that causes the agent 104a-104n to stop generating traffic.
[0015] Using this example, if the number of outstanding transactions for an agent 104a-104n exceeds a first threshold, the agent 104a-104n implements a light throttling policy. If the number of outstanding transactions for an agent 104a-104n continues to increase despite the light throttling policy being implemented and the number exceeds a second threshold, the agent 104a-104n implements a heavy throttling policy. If the number continues to increase and meets a third threshold, a stop throttling policy is implemented.
[0016] The agent 104a-104n continuously (e.g., at predetermined intervals) recalculates the number of outstanding transactions for that agent. If the number of outstanding transactions falls below a threshold (e.g., the last threshold met or exceeded), the agent 104a-104n terminates the currently implemented traffic throttling policy. In some embodiments, this involves removing any implemented traffic throttling policy and issuing traffic to the network-on-chip 108 without restriction. In other embodiments, this involves implementing a different (e.g., less restrictive) traffic throttling policy. Continuing with the above example, assuming the agent 104a-104n is implementing a heavy throttling policy, if the number of outstanding transactions falls below a second threshold but still exceeds the first threshold, the agent 104a-104n will implement a light throttling policy instead of the heavy throttling policy.
[0017] If an agent 104a-104n terminates an implemented throttling policy when the number of outstanding transactions falls below a threshold, the number of outstanding transactions runs the risk of rapidly increasing, thereby exceeding the threshold again and re-enforcing the traffic throttling policy. This results in the agent 104a-104n fluctuating between implementing and terminating the traffic throttling policy as the number of outstanding transactions fluctuates between meeting and falling below the threshold. To prevent this, in some embodiments, the agent 104a-104n terminates an implemented throttling policy in response to the number of outstanding transactions falling below the corresponding threshold by a predetermined amount. Continuing with the above example, assume that the first threshold is 50 outstanding transactions. Further assume that the number of outstanding transactions exceeds the first threshold and a light throttling policy is in effect. Instead of removing the light throttling policy when the number of outstanding transactions falls below 50, the agents 104a-104n remove the light throttling policy when the number of outstanding transactions falls below 10 transactions below a threshold (e.g., 40 outstanding transactions).
[0018] FIG. 1B is a block diagram of a non-limiting exemplary chip 102b. The exemplary chip 102b is similar to the chip 102a of FIG. 1A in that the exemplary chip 102b includes multiple agents 104a-104n communicatively coupled via a network-on-chip 108 of multiple routing agents 106. In some embodiments, the agents 104a implement staged traffic throttling similar to that described with respect to FIG. 1A. The chip 102b differs from the chip 102a in that the chip 102b includes multiple detector modules 110. The detector modules 110 are hardware components included in or coupled to the agents 104a-104n and / or routing agents 106. While FIG. 1B illustrates each agent 104a-104n and routing agent 106 as having a corresponding detector module 110, it will be understood that in some embodiments, the detector modules 110 are installed on or coupled to a subset of the agents 104a-104n and / or routing agents 106. For example, in some embodiments, the detector module 110 is included only in the routing agent 106 .
[0019] The detector modules 110 monitor their corresponding components (e.g., agents 104a-104n and / or routing agent 106) to determine whether a predetermined condition is met. In some embodiments, the predetermined condition includes a queue occupancy rate meeting a threshold. For example, the routing agent 106 maintains a queue of messages and / or packets to be routed. When traffic on the network-on-chip 108 increases at a rate greater than the rate at which the routing agent 106 processes messages, the queue increases. Thus, the detector module 110 of the routing agent 106 determines whether the queue occupancy rate of unrouted messages meets a threshold. As another example, the predetermined condition includes traffic on the network-on-chip 108 being associated with a particular service class. For example, the detector module 110 determines whether traffic generated or routed by its corresponding component is of a particular service class. In some embodiments, each component (e.g., agents 104a-104n and / or routing agent 106) includes multiple detector modules 110. Each detector module 110 of a given component monitors a different predetermined condition.
[0020] In response to the predetermined condition being met, a detector module 110 (e.g., the detector module 110 that determined that the predetermined condition was met) sends a signal to the mediator module 112. Each detector module 110 is communicatively coupled to the mediator module 112. For example, each detector module 110 has a direct signal path to the mediator module 112 outside of the routing agent 106. Thus, signals to the mediator module 112 do not have to be routed through the routing agent 106 and may be subject to delays or slowdowns in the network-on-chip 108.
[0021] In response to receiving the signal, the mediator module 112 sends an indication to the plurality of agents 104a-104n to implement the traffic throttling policy. In some embodiments, the mediator module 112 sends the indication by asserting a signal on a direct (e.g., non-routed) signal path to each of the plurality of agents 104a-104n. In other embodiments, the mediator module 112 sends the indication as a message sent via the routing agent 106. In some embodiments, the indication is sent to a subset of the agents 104a-104n that generate traffic for the network-on-chip 108 (e.g., the agent 104a-104n that issues the transaction, excluding any agents 104a-104n that respond only to other issued transactions). In some embodiments, the particular traffic throttling policy to be implemented is indicated in a signal or message sent to the agents 104a-104n. In other embodiments, the traffic throttling policy is predefined or default.
[0022] By sending an indication to enforce the traffic throttling policy, the mediator module 112 reduces traffic on the network-on-chip 108 when the queue occupancy meets a threshold, indicating that the routing agent 106 is reaching capacity. Furthermore, when traffic of a particular service class is detected, the enforced traffic throttling policy improves the performance of the network-on-chip 108 when traffic of the particular service class is being transmitted through the network-on-chip 108, improving the overall quality of service.
[0023] In some embodiments, an agent 104a-104n that receives an indication to implement a traffic throttling policy decides to override the traffic throttling policy. Deciding to override the traffic throttling policy includes implementing a different traffic throttling policy or not implementing a traffic throttling policy. For example, an agent 104a-104n that generates traffic associated with a particular service class overrides the traffic throttling policy by implementing a less restrictive traffic throttling policy or by not implementing a traffic throttling policy. As another example, depending on the number of outstanding transactions that meet a threshold, an agent 104a-104n that implements a traffic throttling policy may continue to implement its current traffic throttling policy or may continue to implement a more restrictive traffic throttling policy indicated by the mediator module 112.
[0024] In some embodiments, the detector module 110 determines that the predetermined condition has not been met (e.g., is no longer met). The detector module 110 then indicates to the mediator module 112 that the predetermined condition has not been met. For example, if the detector module 110 indicates that the predetermined condition has been met by asserting a signal on the communication path to the mediator module 112, indicating that the predetermined condition has not been met includes deasserting the signal. In other embodiments, indicating that the predetermined condition has not been met includes sending another signal to the mediator module 112 indicating that the predetermined condition has not been met. The mediator module 112 then causes the agent 104a-104n (e.g., the agent 104a-104n that received the indication to implement the traffic throttling policy) to terminate the traffic throttling policy. For example, in some embodiments, the mediator module 112 sends another signal to the agent 104a-104n to terminate the traffic throttling policy. In other embodiments, the mediator module 112 deasserts a signal used to indicate that a traffic throttling policy is being implemented.
[0025] While FIG. 1B describes functions performed by the mediator module 112, it will be appreciated that in some embodiments, the functions of the mediator module 112 may instead be performed by the detector module 110 of the routing agent 106, which communicates directly with the detector modules 110 of the agents 104a-104n.
[0026] For further explanation, FIG. 2 shows a flowchart illustrating an exemplary method for gradual throttling of network-on-chip traffic. The method of FIG. 2 is implemented on a chip 200, such as the chip 102a of FIG. 1A and / or the chip 102b of FIG. 1B. The method of FIG. 2 includes calculating 202, by an agent 104a-104n of the network-on-chip 108 (e.g., communicatively coupled to the network-on-chip 108), the number of outstanding transactions issued by the agent 104a-104n. The number of outstanding transactions for a given agent 104a-104n is the number of messages sent via the network-on-chip 108 to other agents 104a-104n that are expecting a response (e.g., a response to a request, an acknowledgment of receipt) that has not been received. As communication via the network-on-chip 108 slows or the amount of traffic handled by the routing agent 106 increases, the time it takes for the agent 104a-104n to respond to messages increases. Thus, the number of outstanding transactions for a given agent 104a-104n increases, assuming the rate of transaction generation for that agent 104a-104n does not decrease.
[0027] The method of Figure 2 also includes determining 204 that the number of outstanding transactions meets a threshold. The method of Figure 2 also includes implementing 206, by the agent 104a-104n, a traffic throttling policy in response to the number of outstanding transactions meeting the threshold. A traffic throttling policy is a configurable or programmable limit on how much traffic a given agent 104a-104n generates for the network-on-chip 108. For example, assume that an agent 104a-104n is generating traffic for the network-on-chip 108 independent of (e.g., without limiting) any traffic throttling policy. In response to the number of outstanding transactions for that agent 104a-104n meeting the threshold, the agent 104a-104n then implements the traffic throttling policy to impose a limit on the rate at which the agent 104a-104n provides traffic to the network-on-chip 108.
[0028] For further explanation, Figure 3 shows a flowchart illustrating an exemplary method for tiered throttling of network-on-chip traffic according to an embodiment of the present disclosure. The method of Figure 3 is similar to that of Figure 2 in that it includes calculating 202 the number of outstanding transactions issued by agents 104a-104n, determining 204 that the number of outstanding transactions meets a threshold, and enforcing 206 a traffic throttling policy.
[0029] The method of Figure 3 differs from that of Figure 2 in that implementing 206, by an agent 104a-104n, a traffic throttling policy in response to the number of outstanding transactions satisfying a threshold includes implementing 302 the traffic throttling policy based on which of a plurality of thresholds is satisfied by the number of outstanding transactions. For example, assume the threshold is one of a plurality of thresholds and the traffic throttling policy is one of a plurality of traffic throttling policies. Each traffic throttling policy corresponds to one of the plurality of thresholds such that the corresponding traffic throttling policy is implemented when the number of outstanding transactions for a given agent 104a-104n exceeds the predetermined threshold. For example, a first threshold corresponds to a first traffic throttling policy (e.g., a "light throttling policy"), a second threshold higher than the first threshold corresponds to a second traffic throttling policy that is more restrictive than the first traffic throttling policy (e.g., a "heavy throttling policy"), and a third threshold higher than the second threshold corresponds to a third traffic throttling policy (e.g., a "stop throttling policy") that causes the agents 104a-104n to stop generating traffic.
[0030] Using this example, if the number of outstanding transactions for an agent 104a-104n exceeds a first threshold, the agent 104a-104n implements a light throttling policy. If the number of outstanding transactions for an agent 104a-104n continues to increase despite the light throttling policy being implemented and the number exceeds a second threshold, the agent 104a-104n implements a heavy throttling policy. If the number continues to increase and meets a third threshold, a stop throttling policy is implemented.
[0031] For further explanation, Figure 4 shows a flowchart illustrating an exemplary method for tiered throttling of network-on-chip traffic according to an embodiment of the present disclosure. The method of Figure 4 is similar to that of Figure 2 in that it includes calculating 202 the number of outstanding transactions issued by agents 104a-104n, determining 204 that the number of outstanding transactions meets a threshold, and enforcing 206 a traffic throttling policy.
[0032] The method of FIG. 4 differs from FIG. 2 in that it also includes recalculating 402 (e.g., by the agent 104a-104n) the number of outstanding transactions issued by the agent 104a-104n. For example, the agent 104a-104n continuously recalculates the number of outstanding transactions at predetermined intervals or in response to another event. The method of FIG. 4 also includes determining 404 that the number of outstanding transactions falls below a threshold (e.g., a previously met threshold). In some embodiments, determining 404 that the number of outstanding transactions falls below the threshold includes determining that the number of outstanding transactions falls below the threshold for a predetermined amount of time (e.g., a predetermined number of clock cycles). Thus, it is determined that the number of outstanding transactions remains below the threshold for an amount of time without again meeting or exceeding the threshold. FIG. 4 also includes terminating 406 the traffic throttling policy (e.g., in response to the number of outstanding transactions falling below the threshold). In some embodiments, terminating 406 the traffic throttling policy includes removing any implemented traffic throttling policy and issuing traffic to the network-on-chip 108 without restriction. In other embodiments, terminating 406 the traffic throttling policy includes implementing a different (e.g., less restrictive) traffic throttling policy. For example, if the number of outstanding transactions falls below a threshold but still exceeds another threshold, a different traffic throttling policy corresponding to the other threshold is implemented.
[0033] For further explanation, Figure 5 shows a flowchart illustrating an exemplary method for gradual throttling of network-on-chip traffic according to an embodiment of the present disclosure. The method of Figure 5 is similar to Figure 4 in that it includes calculating 202 the number of outstanding transactions issued by agents 104a-104n, determining 204 that the number of outstanding transactions meets a threshold, implementing 206 the traffic throttling policy, recalculating 402 the number of outstanding transactions, determining 404 that the number of outstanding transactions falls below the threshold, and terminating 406 the traffic throttling policy.
[0034] FIG. 5 differs from FIG. 4 in that determining 404 that the number of outstanding transactions is below a threshold includes determining 502 that the number of outstanding transactions is below the threshold by a predetermined amount. For example, assume the threshold is 50 outstanding transactions. Further assume that the number of outstanding transactions exceeds a first threshold and a traffic throttling policy is in place. Instead of removing the traffic throttling policy when the number of outstanding transactions falls below 50, the agents 104a-104n remove the traffic throttling policy when the number of outstanding transactions falls below 10 transactions below the threshold (e.g., 40 outstanding transactions). This prevents the traffic throttling policy from fluctuating between being implemented and terminated as the number of outstanding transactions fluctuates between meeting and falling below the threshold.
[0035] For further explanation, FIG. 6 shows a flowchart illustrating an exemplary method for dynamic network-on-chip traffic throttling. The method of FIG. 6 is implemented in a chip 600, such as chip 102a of FIG. 1A and / or chip 102b of FIG. 1B. The method of FIG. 6 includes determining 602, by a detector module 110 of the network-on-chip 108 (e.g., corresponding to a component communicatively coupled to the network-on-chip 108), that a predetermined condition is met. In some embodiments, the predetermined condition includes a queue occupancy rate meeting a threshold. For example, the routing agent 106 maintains a queue of messages and / or packets to be routed. When traffic on the network-on-chip 108 increases at a rate greater than the rate at which the routing agent 106 processes the messages, the queue increases. Thus, the detector module 110 of the routing agent 106 determines whether a queue occupancy rate for unrouted messages meets a threshold. As another example, the predetermined condition includes traffic on the network-on-chip 108 being associated with a particular class of service. For example, a detector module 110 determines whether traffic generated or routed by its corresponding component is of a particular class of service. In some embodiments, each component (e.g., agents 104a-104n and / or routing agent 106) includes multiple detector modules 110. Each detector module 110 of a given component monitors for a different predetermined condition.
[0036] 6 also includes transmitting 604, by the detector modules 110, a signal 606 to the mediator module 112 of the network-on-chip 108. Each detector module 110 is communicatively coupled to the mediator module 112. For example, each detector module 110 has a direct signal path to the mediator module 112 outside of the routing agent 106. Thus, the signal 606 to the mediator module 112 does not have to be routed through the routing agent 106 and may be subject to delays or slowdowns in the network-on-chip 108. Thus, transmitting 604 the signal 606 includes asserting the signal 606 on the signaling path to the mediator module 112.
[0037] 6 also includes, in response to the signal 606, transmitting 608, by the mediator module 112, an indication (instruction) 610 to implement the traffic throttling policy to the plurality of agents 104a-104n. In some embodiments, the mediator 112 transmits the indication by asserting a signal on a direct (e.g., non-routed) signal path to each of the plurality of agents 104a-104n. In other embodiments, the mediator module 112 transmits the indication 610 as a message sent via the routing agent 106. In some embodiments, the indication 610 is transmitted to a subset of the agents 104a-104n that generate traffic for the network-on-chip 108 (e.g., agents 104a-104n that issue transactions, excluding any agents 104a-104n that respond only to other issued transactions). In some embodiments, the particular traffic throttling policy to be implemented is indicated in a signal or message transmitted to the agents 104a-104n. In other embodiments, the traffic throttling policy is predefined or default.
[0038] For further explanation, Figure 7 shows a flowchart illustrating an exemplary method for dynamic network-on-chip traffic throttling according to an embodiment of the present disclosure. The method of Figure 7 is similar to Figure 6 in that it includes determining 602 that a predetermined condition is met, sending 604 a signal 606 to the mediator module 112, and, in response to the signal 606, sending 608 an indication 610 to the plurality of agents 104a-104n to implement the traffic throttling policy.
[0039] 7 differs from FIG. 6 in that it also includes determining 702, by detector module 110, that the predetermined condition has not been met (e.g., is no longer met). The method of FIG. 7 also includes indicating 704, by detector module 110, to mediator module 112 that the predetermined condition has not been met. For example, if detector module 110 indicates that the predetermined condition has been met by asserting a signal on the communication path to mediator module 112, indicating that the predetermined condition has not been met includes deasserting the signal. In other embodiments, indicating that the predetermined condition has not been met includes sending another signal to mediator module 112 that indicates that the predetermined condition has not been met.
[0040] 7 also includes step 706 of causing the plurality of agents 104a-104n (e.g., the agents 104a-104n that received the indication to implement the traffic throttling policy) by the mediator module 112 to terminate the traffic throttling policy. For example, in some embodiments, the mediator module 112 sends another signal to the agents 104a-104n to terminate the traffic throttling policy. In other embodiments, the mediator module 112 deasserts the signal used to indicate that the traffic throttling policy is being implemented.
[0041] For further explanation, Figure 8 shows a flowchart illustrating an exemplary method for dynamic network-on-chip traffic throttling according to an embodiment of the present disclosure. The method of Figure 8 is similar to that of Figure 7 in that it includes determining 602 that a predetermined condition is met, sending 604 a signal 606 to the mediator module 112, sending 608 an indication 610 to the plurality of agents 104a-104n to implement the traffic throttling policy in response to the signal 606, determining 702 that the predetermined condition is not met, indicating 704 that the predetermined condition is not met, and instructing 706 the plurality of agents 104a-104n to terminate the traffic throttling policy.
[0042] 8 differs from FIG. 7 in that determining 702 that the predetermined condition has not been met by the detector module 110 includes determining 804 that the predetermined condition has not been met for a predetermined amount of time. The predetermined amount of time is programmable or configurable. Thus, the mediator module 112 is not notified that the predetermined condition has not been met until the predetermined amount of time has elapsed. This reduces the likelihood that the predetermined condition will oscillate between occurring and not occurring, thereby reducing the mediator module 112 causing oscillation between agents 104a-104n enforcing or not enforcing traffic throttling policies.
[0043] For further explanation, Figure 9 depicts a flowchart illustrating an exemplary method for dynamic network-on-chip traffic throttling according to an embodiment of the present disclosure. The method of Figure 9 is similar to Figure 6 in that it includes determining 602 that a predetermined condition is met, sending 604 a signal 606 to the mediator module 112, and, in response to the signal 606, sending 608 an indication 610 to the plurality of agents 104a-104n to implement the traffic throttling policy.
[0044] The method of FIG. 9 differs from FIG. 6 in that it also includes overriding 902, by an agent 104a-104n of the plurality of agents 104a-104n, the indicator 610 for enforcing a traffic throttling policy. In some embodiments, overriding 902 the indicator 610 for enforcing a traffic throttling policy includes enforcing a different traffic throttling policy or no traffic throttling policy. For example, an agent 104a-104n that generates traffic associated with a particular service class overrides the traffic throttling policy by enforcing a less restrictive traffic throttling policy or no traffic throttling policy. As another example, depending on the number of outstanding transactions that meet a threshold, the agent 104a-104n that enforces a traffic throttling policy continues to enforce its current traffic throttling policy or continues to enforce a more restrictive traffic throttling policy indicated by the mediator module 112.
[0045] In view of the above discussion, the reader will recognize that gradual throttling of network-on-chip traffic includes the following advantages: Improving the performance of computing systems by enabling distributed agents using networks-on-chip to self-adjust their traffic throttling. · Improving computing system performance by throttling network-on-chip traffic according to network performance.
[0046] Exemplary embodiments of the present disclosure are described primarily in the context of a fully functional computer system for staged throttling of network-on-chip traffic. However, readers skilled in the art will recognize that the present disclosure may be embodied in a computer program product disposed on a computer-readable storage medium for use with any suitable data processing system. Such a computer-readable storage medium may be any storage medium for machine-readable information, including magnetic, optical, or other suitable media. Examples of such media include magnetic disks in hard drives or diskettes, compact discs for optical drives, magnetic tape, and others as will occur to those skilled in the art. Those skilled in the art will readily recognize that any computer system with suitable programming means is capable of executing the steps of the disclosed methods embodied in a computer program product. Those skilled in the art will also recognize that while some of the exemplary embodiments described herein are directed to software installed and executed on computer hardware, alternative embodiments implemented as firmware or as hardware are nevertheless well within the scope of the present disclosure.
[0047] The present disclosure may be a system, a method, and / or a computer program product. The computer program product may include a computer-readable storage medium having computer-readable program instructions for causing a processor to perform aspects of the present disclosure.
[0048] A computer-readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge structures in grooves having instructions recorded thereon, and any suitable combination thereof. As used herein, a computer-readable storage medium should not be construed as a transitory signal per se, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., an optical pulse passing through a fiber optic cable), or an electrical signal transmitted through a wire.
[0049] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network). The network may include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions to a computer-readable storage medium in the respective computing / processing device for storage.
[0050] The computer-readable program instructions for carrying out the operations of the present disclosure may be either assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, and traditional procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer, partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through 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). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA) can execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to individualize the electronic circuitry to implement aspects of the present disclosure.
[0051] Aspects of the present disclosure are described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the present disclosure. It will be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.
[0052] These computer-readable program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to manufacture a machine, such that the instructions, executed by the processor of the computer or other programmable data processing apparatus, generate means for performing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer-readable program instructions can be stored on a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and / or other device to function in a particular way, such that the computer-readable storage medium having stored instructions comprises an article of manufacture containing instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0053] The computer-readable program instructions can be loaded into a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to generate a computer-implemented process, such that the instructions, executing on the computer, other programmable apparatus, or other device, perform the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0054] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may in fact be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a dedicated hardware-based system that performs the specified functions or acts or executes a combination of dedicated hardware and computer instructions.
[0055] It will be understood from the foregoing description that modifications and variations can be made in various embodiments of the present disclosure. The description herein is for illustrative purposes only and should not be construed in a limiting sense. The scope of the present disclosure is limited only by the language of the following claims.
Claims
1. 1. A method for gradual throttling of network-on-chip traffic, comprising: The method comprises: an agent of the network-on-chip calculating a number of outstanding transactions, the number of outstanding transactions comprising a difference between a number of issued transactions and a number of issued transactions for which a response has not been received; the agent determining that the number of outstanding transactions meets a threshold; and the agent implementing a traffic throttling policy in response to the determination. method.
2. the threshold is included in a plurality of thresholds, and the traffic throttling policy is included in a plurality of throttling policies, and enforcing the traffic throttling policy includes enforcing the traffic throttling policy based on which of the plurality of thresholds is met by the number of outstanding transactions.
10. The method of claim 1.
3. recalculating the number of outstanding transactions; determining that the number of outstanding transactions is below the threshold; and terminating the traffic throttling policy.
10. The method of claim 1.
4. terminating the traffic throttling policy includes implementing another throttling policy. The method of claim 3.
5. terminating the traffic throttling policy includes issuing the transaction without throttling. The method of claim 3.
6. determining that the number of outstanding transactions is below the threshold includes determining that the number of outstanding transactions is below the threshold by a predetermined amount; The method of claim 3.
7. determining that the number of outstanding transactions is below the threshold includes determining that the number of outstanding transactions is below the threshold for a predetermined period of time; The method of claim 3.
8. 1. A chip using graduated throttling of network-on-chip traffic, comprising: the chip comprises a network-on-chip and one or more agents; The agent: calculating a number of outstanding transactions, the number of outstanding transactions comprising the difference between a number of issued transactions and a number of issued transactions for which no response has been received; determining that the number of outstanding transactions meets a threshold; Enforcing a traffic throttling policy; and configured to: Tips.
9. the threshold is included in a plurality of thresholds, the traffic throttling policy is included in a plurality of throttling policies, and the traffic throttling policy is implemented based on which of the plurality of thresholds is met by the number of outstanding transactions. The chip of claim 8.
10. The agent: recalculating the number of outstanding transactions; determining that the number of outstanding transactions is below the threshold; terminating the traffic throttling policy; and configured to: The chip of claim 8.
11. The method of claim 10, wherein terminating the traffic throttling policy includes implementing another throttling policy. The chip of claim 10.
12. The method of claim 11, wherein terminating the traffic throttling policy includes issuing a transaction without throttling. The chip of claim 10.
Citation Information
Patent Citations
Dynamic priority external transaction system
JP2003521029A
IP packet transmission / reception device and IP packet transmission / reception control method
JP2008283435A
A mechanism for throttling untrusted interconnected agents
JP2019525619A
Traffic control on an on-chip network
US20140010079A1
Congestion control and QOS in noc by regulating the injection traffic
US20140328172A1