CONGESTION CONTROL AND QoS IN NoC BY REGULATING THE INJECTION TRAFFIC
Abstract
Systems and methods described herein are directed to solutions for NoC interconnects that provide congestion avoidance and end-to-end uniform and weighted-fair allocation of resource bandwidths among various contenders in a mesh or torus interconnect. The example implementations are fully distributed and involve using explicit congestion notification messages or local congestion identification for congestion detection. Based on the congestion level detected, the injection rates of traffic at various agents are regulated that avoids congestion and also provides end-to-end QoS. Alternative example implementations may also utilize end-to-end credit based flow control between communicating agents for resource and bandwidth allocation of the destination between the contending sources. The resource allocation is performed so that both the weighted and strict bandwidth allocation QoS policies are satisfied.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method for a Network on Chip (NoC) comprising a first node and a second node, the method comprising:
receiving, at one of the first node and the second node, an instruction from the other of the first node and the second node based on an end-to-end flow control buffer allocation result, the instruction comprising at least one of a buffer slot credit allocation and a buffer allocation for the one of the first node and the second node; and determining, at the one of the first node and the second node, an allocation of traffic bandwidth based on the instruction.
2 . The method of claim 1 , wherein the at least one of the buffer slot credit allocation and the buffer allocation is determined from a Quality of Service (QoS) policy for the NoC.
3 . The method of claim 1 , wherein the at least one of the buffer slot credit allocation and the buffer allocation is determined from messages being discarded when dynamic credits are allocated.
4 . The method of claim 1 , wherein the determining the allocation of traffic bandwidth comprises determining a transmission rate at the one of the first node and the second node, and allocating the traffic bandwidth based on the determined transmission rate.
5 . The method of claim 1 , wherein the determining the allocation of traffic bandwidth comprises issuing a buffer allocation to the one of the first node and the second node from the other of the first node and the second node based on the instruction.
6 . The method of claim 1 , wherein the at least one of the buffer slot credit allocation and the buffer allocation is pre-allocated based on the one of the first node and the second node.
7 . A non-transitory computer readable medium, storing instructions for a Network on Chip (NoC) comprising a first node and a second node, the instructions comprising:
receiving, at one of the first node and the second node, an instruction from the other of the first node and the second node based on an end-to-end flow control buffer allocation result, the instruction comprising at least one of a buffer slot credit allocation and a buffer allocation for the one of the first node and the second node; and determining, at the one of the first node and the second node, an allocation of traffic bandwidth based on the instruction.
8 . The non-transitory computer readable medium of claim 7 , wherein the at least one of the buffer slot credit allocation and the buffer allocation is determined from a Quality of Service (QoS) policy for the NoC.
9 . The non-transitory computer readable medium of claim 7 , wherein the at least one of the buffer slot credit allocation and the buffer allocation is determined from messages being discarded when dynamic credits are allocated.
10 . The non-transitory computer readable medium of claim 7 , wherein the determining the allocation of traffic bandwidth comprises determining a transmission rate at the one of the first node and the second node, and allocating the traffic bandwidth based on the determined transmission rate.
11 . The non-transitory computer readable medium of claim 7 , wherein the determining the allocation of traffic bandwidth comprises issuing a buffer allocation to the one of the first node and the second node from the other of the first node and the second node based on the instruction.
12 . The non-transitory computer readable medium of claim 7 , wherein the at least one of the buffer slot credit allocation and the buffer allocation is pre-allocated based on the one of the first node and the second node.
13 . A Network on Chip (NoC) comprising a first node and a second node, the NoC configured to:
receive, at one of the first node and the second node, an instruction from the other of the first node and the second node based on an end-to-end flow control buffer allocation result, the instruction comprising at least one of a buffer slot credit allocation and a buffer allocation for the one of the first node and the second node; and determine, at the one of the first node and the second node, an allocation of traffic bandwidth based on the instruction.
14 . The NoC of claim 13 , wherein the at least one of the buffer slot credit allocation and the buffer allocation is determined from a Quality of Service (QoS) policy for the NoC.
15 . The NoC of claim 13 , wherein the at least one of the buffer slot credit allocation and the buffer allocation is determined from messages being discarded when dynamic credits are allocated.
16 . The NoC of claim 13 , wherein the NoC is configured to determine the allocation of traffic bandwidth from determining a transmission rate at the one of the first node and the second node, and allocating the traffic bandwidth based on the determined transmission rate.
17 . The NoC of claim 13 , wherein the NoC is configured to determine the allocation of traffic bandwidth from issuing a buffer allocation to the one of the first node and the second node from the other of the first node and the second node based on the instruction.
18 . The NoC of claim 13 , wherein the at least one of the buffer slot credit allocation and the buffer allocation is pre-allocated based on the one of the first node and the second node.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.