CN115640257A - Path arbitration method for network on chip, arbiter and router on chip - Google Patents

Path arbitration method for network on chip, arbiter and router on chip Download PDF

Info

Publication number
CN115640257A
CN115640257A CN202211598507.2A CN202211598507A CN115640257A CN 115640257 A CN115640257 A CN 115640257A CN 202211598507 A CN202211598507 A CN 202211598507A CN 115640257 A CN115640257 A CN 115640257A
Authority
CN
China
Prior art keywords
arbitration
chip
path
requests
time period
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211598507.2A
Other languages
Chinese (zh)
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Moore Thread Intelligent Technology Chengdu Co ltd
Moore Threads Technology Co Ltd
Original Assignee
Moore Thread Intelligent Technology Chengdu Co ltd
Moore Threads Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Moore Thread Intelligent Technology Chengdu Co ltd, Moore Threads Technology Co Ltd filed Critical Moore Thread Intelligent Technology Chengdu Co ltd
Priority to CN202211598507.2A priority Critical patent/CN115640257A/en
Publication of CN115640257A publication Critical patent/CN115640257A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present disclosure provides a path arbitration method for a network on chip comprising a plurality of arbitrated paths, the method comprising: acquiring a first authorization number corresponding to at least one arbitration passage in the plurality of arbitration passages, wherein the first authorization number represents the number of times that an arbitration request on the at least one arbitration passage is continuously authorized before a target moment; when the first grant number is greater than or equal to a first threshold, arbitration requests on the at least one arbitration path are restricted from participating in arbitration for a first time period after the target time. The disclosure also provides an arbiter, an on-chip router, an on-chip network and a chip.

Description

Path arbitration method for network on chip, arbiter and router on chip
Technical Field
The present disclosure relates to the field of computer communications, and in particular, to a path arbitration method for a network on chip, an arbiter, a router on chip, a network on chip, and a chip.
Background
In a Network On Chip (NOC), as the number of nodes accessed in the Network increases and Quality of Service (QOS) priorities are introduced, arbitration requests on some arbitration paths occupy output ports of an on-Chip router for a long time, so that arbitration requests on other arbitration paths cannot be granted for a long time (also referred to as "starvation").
In the related art, a Network Interface Unit (NIU) in the Network on chip may be used to send dummy packets (dummy packets) with higher QOS priorities, and each on-chip router (Switch node) merges QOS priorities of multiple input packets to obtain QOS priority conditions of the entire path, and transmits an obtained QOS priority signal to the on-chip router that generates the starvation phenomenon, so that the QOS priority of the starvation path is higher than those of other paths, thereby solving the "starvation" phenomenon. However, this scheme requires more arithmetic logic to be added, and if the input requests of the Switch nodes generating the "starvation" phenomenon all have the highest QOS priority, the scheme cannot solve the "starvation" phenomenon because it cannot generate dummy packets of higher QOS priority.
Disclosure of Invention
In view of the above, the present disclosure provides a path arbitration method for a network on chip, an arbiter, a router on chip, a network on chip and a chip, so as to alleviate, alleviate or even eliminate the above problems.
According to one aspect of the present disclosure, there is provided a path arbitration method for a network on chip comprising a plurality of arbitrated paths, the method comprising: obtaining a first authorization number corresponding to at least one arbitration passage in the plurality of arbitration passages, wherein the first authorization number represents the number of times that an arbitration request on the at least one arbitration passage is continuously authorized before a target moment; when the first grant number is greater than or equal to a first threshold, arbitration requests on the at least one arbitration path are restricted from participating in arbitration for a first time period after the target time.
According to some embodiments of the disclosure, wherein: according to the arbitration priorities of the plurality of arbitration paths, the arbitration priorities are distributed to different priority groups, and the different priority groups correspond to different thresholds; the first threshold is a threshold corresponding to a priority group in which the arbitration priority of the at least one arbitration path is located.
According to some embodiments of the disclosure, wherein: according to the service quality priority supported by the network on chip, the service quality priority is distributed to different priority groups, and the different priority groups correspond to different threshold values; the first threshold is a threshold corresponding to a priority group in which a quality of service priority of an arbitration request existing on the at least one arbitration path at the target time is located.
According to some embodiments of the disclosure, the limiting arbitration requests on the at least one arbitration path to participate in arbitration comprises: when the first grant number is greater than or equal to the first threshold, prohibiting arbitration requests on the at least one arbitration path from participating in arbitration for the first time period.
According to some embodiments of the disclosure, the limiting arbitration requests on the at least one arbitration path from participating in arbitration comprises: when the first grant number is greater than or equal to the first threshold, limiting the number of times the arbitration request on the at least one arbitration path participates in arbitration within the first time period to a first arbitration number.
According to some embodiments of the disclosure, the first time period includes a first sub-time period and a second sub-time period, the second sub-time period being subsequent to the first sub-time period, and the limiting arbitration requests on the at least one arbitration lane from participating in arbitration includes: when the first grant number is greater than or equal to the first threshold, limiting the number of times that the arbitration request on the at least one arbitration path participates in arbitration within the first sub-period to a second arbitration number, and limiting the number of times that the arbitration request on the at least one arbitration path participates in arbitration within the second sub-period to a third arbitration number; wherein the second number of arbitrations is greater than the third number of arbitrations.
According to some embodiments of the disclosure, the method further comprises: when the first grant number is greater than or equal to the first threshold, prohibiting the arbitration request on the at least one arbitration path from participating in arbitration for a second time period after the second sub-time period.
According to some embodiments of the disclosure, the length of the first time period is related to at least one of: a quality of service priority of arbitration requests present on the at least one arbitration lane; and an arbitration priority for the at least one arbitration path.
According to another aspect of the present disclosure, there is provided an arbiter for a network on chip comprising a plurality of arbitration paths connected to a respective plurality of input ports of the arbiter, the arbiter comprising: a counter configured to: acquiring a first authorization number corresponding to at least one arbitration passage in the plurality of arbitration passages, wherein the first authorization number represents the number of times that an arbitration request on the at least one arbitration passage is continuously authorized before a target moment; an arbitration unit connected to the plurality of input ports and an output port of the arbiter, the arbitration unit configured to: when the first grant number is greater than or equal to a first threshold, arbitration requests on the at least one arbitration path are restricted from participating in arbitration for a first time period after the target time.
According to yet another aspect of the present disclosure, there is provided an on-chip router for routing a plurality of routing requests on a plurality of routing paths, characterized in that the on-chip router is configured to: routing the plurality of routing requests on the plurality of routing paths using an arbiter provided according to the aforementioned aspect of the disclosure.
According to yet another aspect of the present disclosure, there is provided a network on chip, comprising: the resource nodes comprise a computing node and a storage node, the computing node comprises a processor, and the storage node comprises at least one of ROM, RAM, DRAM and SDRAM; a communication node comprising an on-chip router provided in accordance with the aforementioned aspects of the present disclosure, the communication node for supporting data transfer between the resource nodes.
According to yet another aspect of the present disclosure, there is provided a chip, wherein the chip employs the network on chip provided according to the foregoing aspect of the present disclosure to realize data transmission between different hardware units in the chip.
In the method provided by the present disclosure, by obtaining a first grant number corresponding to at least one of the plurality of arbitration paths (the first grant number represents a number of times that an arbitration request on the at least one arbitration path is consecutively granted before a target time), and when the first grant number is greater than or equal to a first threshold, an arbitration request on the at least one arbitration path is limited from participating in arbitration in a first time period after the target time, so that arbitration requests on other arbitration paths different from the at least one arbitration path in the plurality of arbitration paths are granted, and thus data transmission performance of the network on chip is improved, and the above "starvation" phenomenon is improved or even eliminated.
These and other aspects of the disclosure will be apparent from and elucidated with reference to the embodiments described hereinafter.
Drawings
Further details, features and advantages of the disclosed solution are disclosed in the following description of exemplary embodiments, taken in conjunction with the accompanying drawings, in which:
fig. 1 schematically illustrates an exemplary schematic diagram of a path arbitration method for a network on chip in the related art;
FIG. 2 schematically illustrates an example schematic diagram of a path arbitration method for a network on chip, according to some embodiments of the present disclosure;
fig. 3 schematically illustrates an exemplary schematic diagram of a method of determining a first threshold value according to some embodiments of the present disclosure;
FIG. 4 schematically illustrates an exemplary schematic diagram of a method of determining a first threshold value according to further embodiments of the present disclosure;
FIG. 5 schematically illustrates an example schematic diagram of a path arbitration method for a network on chip according to further embodiments of the present disclosure;
FIG. 6 schematically illustrates an exemplary architecture diagram of an arbiter for a network on chip, according to some embodiments of the present disclosure;
FIG. 7 schematically illustrates an exemplary architecture diagram of a network on chip, according to some embodiments of the present disclosure;
fig. 8 schematically illustrates an exemplary architecture diagram of a chip, according to some embodiments of the disclosure.
Detailed Description
Several embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings in order to enable those skilled in the art to practice the technical solutions of the present disclosure. The technical solutions of the present disclosure may be embodied in many different forms and purposes, and should not be limited to the embodiments set forth herein. These embodiments are provided to make the technical solutions of the present disclosure clear and complete, but the described embodiments do not limit the scope of the present disclosure.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and/or the present specification and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
Fig. 1 schematically illustrates an exemplary schematic diagram of a path arbitration method for a network on chip in the related art. As shown in fig. 1, to illustrate the principle of the method, it is assumed that the arbiter 100 arbitrates arbitration requests on three arbitration paths, specifically, there is an arbitration request (represented by Req _ a, req _ b, and Req _ c) on each of the three arbitration paths, the arbitration unit 110 of the arbiter 100 arbitrates Req _ a, req _ b, and Req _ c by using a fixed priority algorithm (fixed algorithm), and assuming that Req _ a, req _ b, and Req _ c have the same QOS priority, the arbitration unit 110 determines which arbitration request is granted according to the arbitration priority of the arbitration path corresponding to Req _ a, req _ b, and Req _ c, for example, the arbitration priority of the arbitration path corresponding to Req _ a is the highest, req _ b is the next, and Req _ c is the lowest, and the arbiter 100 finally grants the arbitration request on Req _ a (i.e., req _ a is shown in fig. 100X of the arbitration path output. In this case, if there are consecutive arbitration requests having the same QOS priority at each input port of the arbiter 100, the arbitration requests on the arbitration path having the higher arbitration priority (in fig. 1, a plurality of Req _ a of the input arbiter 100 are consecutively input) are granted, while the arbitration requests on the arbitration path having the lower arbitration priority (in fig. 1, req _ b and Req _ c of the input arbiter 100) are not granted by the arbiter for a long time, which causes the above-mentioned "starvation" phenomenon.
Fig. 2 schematically illustrates an example schematic diagram of a path arbitration method for a network on chip, according to some embodiments of the present disclosure. Illustratively, as shown in fig. 2, the arbiter 200 in the network on chip arbitrates arbitration requests on three arbitration paths (denoted by load _1, load _2, and load _3, respectively), arbitration requests on load _1, load _2, and load _3 are denoted by Req _1, req _2, and Req _3, respectively, and the arbitration unit 210 of the arbiter 200 may arbitrate Req _1, req _2, and Req _3 using a fixed priority algorithm (fixed algorithm) or other arbitration algorithms known in the art, which is not limited by this disclosure. The method comprises the following steps: acquiring a first authorization number corresponding to at least one arbitration passage in a plurality of arbitration passages, wherein the first authorization number represents the number of times that an arbitration request on the at least one arbitration passage is continuously authorized before a target moment; limiting arbitration requests on the at least one arbitration path to participate in arbitration for a first time period after the target time when the first grant number is greater than or equal to a first threshold.
In the example shown in FIG. 2, the plurality of arbitration paths are Road _1, road _2, and Road _3, and the at least one arbitration path isThe paths are Road _1 and Road _2, but those skilled in the art will understand that the at least one arbitration path may be any one of the plurality of arbitration paths or any combination of the plurality of arbitration paths, for example, a single arbitration path, road _1, or Road _2 and Road _3, or Road _1, road _2 and Road _3. In the case where the at least one arbitration path is Road _1 and Road _2, the first number of grants is the number of times arbitration requests on Road _1 and Road _2 were granted consecutively before the target time. It should be noted that, in the present disclosure, the expression "arbitration requests are granted consecutively" refers to a situation where the respective arbitration requests occupy output ports of the arbiter consecutively, and the respective arbitration requests are not necessarily arbitration requests on a single arbitration path. For example, in fig. 2, arbitration requests on Road _1 and Road _2 occupy the output port of arbiter 200 for some period of time before the target time, i.e., arbitration requests on both arbitration paths are granted consecutively. In this example, the first authorization number is N 1 And N 2 Sum of where N 1 Indicates the number of times an arbitration request on Road _1 is granted during the time period, N 2 Indicating the number of times an arbitration request on Road 2 was granted within the time period.
When N is present 1 And N 2 When the sum is greater than or equal to the first threshold, the arbitration requests on the at least one arbitration path are restricted from participating in arbitration for a first time period after the target time, i.e., req _1 and Req _2 are restricted from participating in arbitration for the first time period, for example, req _1 and Req _2 may be prohibited from participating in arbitration for the first time period or the number of times Req _1 and Req _2 participate in arbitration may be restricted for the first time period, thereby facilitating arbitration requests Req _3 on Road _3 to be granted by arbiter 200 for the first time period. The first threshold may be any positive integer value (e.g., 5, 10, 20, 30, etc.), and a person skilled in the art may determine the value of the first threshold according to an actual scenario, which is not limited by the present disclosure.
It should be noted that although three arbitration paths are shown in fig. 2, the number of arbitration paths is not limited by this disclosure. Furthermore, the term "target time" is relative to a time period during which the respective arbitration request is granted consecutively, i.e. it may be the end time of the time period during which the respective arbitration request is granted consecutively, or it may be some time after the time period. Additionally, in the method shown in FIG. 2, there is no restriction on the arbitration priority (if any) for the arbitration paths, road _1, road _2, and Road _3, nor on the QOS priority (if any) for the arbitration requests, req _1, req _2, and Req _3, on the arbitration paths, road _1, road _2, and Road _3. The method may be used in conjunction with the arbitration unit 210 of the arbiter 200 by respective hardware logic circuits (e.g., counter circuits or up-counter circuits) to arbitrate multiple arbitration requests. Alternatively, the method may be written into the arbitration algorithm currently used by the arbitration unit 210 to arbitrate multiple arbitration requests.
In contrast, in the example shown in fig. 1, there are consecutive arbitration requests with the same QOS priority at each input port of the arbiter 100, the arbitration requests on the arbitration path with higher arbitration priority (in fig. 1, multiple Req _ a of the input arbiter 100) will be granted, while the arbitration requests on the arbitration path with lower arbitration priority (in fig. 1, req _ b and Req _ c of the input arbiter 100) will not get granted by the arbiter for a long time. After the method provided by the present disclosure is applied, when the first grant times corresponding to the arbitration path corresponding to Req _ a is greater than or equal to the first threshold, the arbitration request on the arbitration path is restricted from participating in arbitration, so that the "starvation" phenomenon can be alleviated or even eliminated.
By the above method provided by the present disclosure, a first grant number corresponding to at least one of a plurality of arbitration paths in the network on chip is obtained (the first grant number represents the number of times that an arbitration request on the at least one arbitration path is continuously granted before a target time), and when the first grant number is greater than or equal to a first threshold, the arbitration request on the at least one arbitration path is limited from participating in arbitration in a first time period after the target time, so that arbitration requests on other arbitration paths are facilitated to be granted, and thus data transmission performance of the network on chip can be improved, and the above "starvation" phenomenon can be improved or even eliminated. Illustratively, the Switch node in the network on chip may be configured with corresponding counter logic and cooling logic to implement the above processes of obtaining the grant times and limiting the arbitration requests to participate in arbitration, thereby implementing control of path traffic in the network on chip with low complexity and cost.
In some embodiments, the at least one arbitration path may include a first arbitration path, and the obtaining a first grant number corresponding to at least one of the plurality of arbitration paths includes: and acquiring a second authorization number corresponding to the first arbitration channel as the first authorization number, wherein the second authorization number represents the number of times that the arbitration request on the first arbitration channel is continuously authorized before the target time. Illustratively, as shown in fig. 2, the load _1 may be used as the first arbitration path, in which case, the second grant number is the number of times the arbitration request Req _1 on the load _1 is granted consecutively before the target time. In this example, for the case where there are multiple consecutive arbitration requests Req _1 on Road _1, the number of times N that these arbitration requests are granted is counted 1 And takes it as the first grant number, and further can limit the arbitration request on Road _1 to participate in arbitration for a first time period after the target time when the first grant number is greater than or equal to a first threshold. This scheme of counting the number of grants for a single arbitration lane helps achieve more refined arbitration at the arbitration lane level for arbitration requests. Additionally, the number of times arbitration requests on the other arbitration paths (in this example, road _2 and Road _ 3) are granted consecutively may be counted, respectively, to determine whether arbitration requests on the respective arbitration paths need to be restricted from participating in arbitration.
In some embodiments, the quality of service priorities may be assigned to different priority groups according to the level of quality of service priorities supported by the network on chip, the different priority groups corresponding to different thresholds. In this case, the first threshold is a threshold corresponding to a priority group in which a quality of service priority of an arbitration request existing on the at least one arbitration path at the target time is located. Illustratively, the first threshold may be predetermined to implement this scheme by: grouping the service quality priorities according to the service quality priorities supported by the network on chip; assigning different thresholds to the quality of service priorities in different groups; and taking the threshold corresponding to the group in which the service quality priority of the arbitration request existing on the at least one arbitration path at the target moment is positioned as the first threshold. This scheme is further explained below in conjunction with fig. 3.
As shown in fig. 3, it is assumed that the QOS priorities supported by the network on chip include four levels, which can be represented as QOS _1, QOS _2, QOS _3 and QOS _4 from high to low, and can be further divided into three groups: the first group includes QOS _1; the second group includes QOS _2 and QOS _3; the third group includes QOS _4. These three groups correspond to different thresholds, namely: assigning a threshold value TH to the QOS _1 in the first group 1 (ii) a Assigning a threshold TH to QOS _2 and QOS _3 in the second set 2 (ii) a Assigning a threshold value TH to QOS _3 in the third group 3 . Illustratively, TH 1 Maximum, TH 2 Next, but TH 3 And is minimal.
Illustratively, the at least one arbitration path may include a first arbitration path (Road _ 1), and when the group in which the QOS priority of the arbitration request (Req _ 1) existing on the first arbitration path (Road _ 1) is located at the target time is the first group (i.e., when the QOS priority of Req _1 is QOS _ 1), TH is assigned 1 As the first threshold; when the group of the service quality priority of the Req _1 existing on the Road _1 is the second group (namely when the service quality priority of the Req _1 is QOS _2 or QOS _ 3) at the target moment, the TH is carried out 2 As the first threshold; when the group of the QoS priority of the Req _1 existing on the Road _1 is the third group (namely the QoS priority of the Req _1 is QOS _ 4) at the target moment, the TH is carried out 3 As the first threshold.
As another example, the at least one arbitrationThe paths may include a first arbitration path (Road _ 1) and a second arbitration path (Road _ 2), at which the quality of service priority of the arbitration request Req _1 present on Road _1 is QOS _2 and the quality of service priority of the arbitration request Req _2 present on Road _2is QOS _3, since the group in which QOS _2 and QOS _3 are present is the second group, TH may be assigned 2 As the first threshold. It should be noted that, although in this example, the QOS priorities of the arbitration requests Req _1 and Req _2 present on Road _1 and Road _2 are QOS _2 and QOS _3 in the same group, this is not restrictive, for example, the QOS priorities of the arbitration requests Req _1 and Req _2 present on Road _1 and Road _2 may be QOS _1 and QOS _2, respectively (the group in which QOS _1 is present is the first group mentioned above, and the group in which QOS _2 is present is the second group mentioned above), in which case the first threshold value may be TH 1 Or can be TH 2 And may even be TH 1 And TH 2 Is calculated as a weighted sum of.
In addition, it should be noted that the above description of grouping the qos priorities according to the qos priorities supported by the network on chip is only exemplary. For example, one skilled in the art can incorporate QOS _3 in the above example into the first or third set, or divide the above four quality of service priorities into four sets (i.e., QOS _3 alone as one set). In the present disclosure, the quality of service priority supported by the network on chip may include any number of levels (e.g., two levels, three levels, four levels, etc.) depending on actual requirements. The number of classes of quality of service priority, the number of packets of quality of service priority, and the number of quality of service priorities in each group are not limited by the present disclosure.
By the method for determining the first threshold shown in fig. 3, different first thresholds can be selected according to the quality of service priority carried by the arbitration request, so that the number of times the arbitration request can be granted continuously is determined according to the quality of service priority carried by the arbitration request, thereby facilitating more detailed arbitration of the quality of service priority level of the arbitration request.
In some embodiments, the arbitration priorities may be assigned to different priority groups according to the arbitration priorities of the plurality of arbitration paths, the different priority groups corresponding to different thresholds. In this case, the first threshold may be a threshold corresponding to a priority group in which the arbitration priority of the at least one arbitration path is located. Illustratively, the first threshold may be predetermined to implement this scheme by: grouping the arbitration priorities according to the arbitration priorities of the plurality of arbitration paths; assigning different thresholds to arbitration priorities in different groups; and taking the threshold corresponding to the group in which the arbitration priority of the at least one arbitration channel is positioned as the first threshold. The above-described method of determining the first threshold value is described below with reference to fig. 4.
As shown in fig. 4, exemplarily, assuming that the arbitration unit 410 of the arbiter 400 in the network on chip arbitrates the arbitration requests on the arbitration paths load _1, load _2 and load _3 by using a fixed priority algorithm (fixed algorithm), the arbitration priorities of the arbitration paths load _1, load _2 and load _3 may be respectively denoted as Prio _1, prio _2 and Prio _3, and the arbitration priorities may be divided into two groups assuming that they are from high to low, respectively, prio _1, prio _2 and Prio _ 3: the first group includes Prio _1 and Prio _2; the second group includes Prio _3. These two groups correspond to different thresholds, namely: assigning thresholds TH to Prio _1 and Prio _2 in the first group 4 (ii) a Assigning a threshold TH to Prio _3 in the second group 5 . Illustratively, TH 4 Greater than TH 5
Accordingly, the at least one arbitration channel may include Road _1 and Road _2, and thus the first group of threshold values TH in which the arbitration priorities Prio _1 and Prio _2 of Road _1 and Road _2 are located may correspond to 4 As the first threshold. And if the at least one arbitration path does not include the route _1 and the route _2, that is, the at least one arbitration path includes the route _3, the second group of the arbitration priority Prio _3 of the route _3 may correspond to the threshold TH 5 As the first threshold. Taking the case that the at least one arbitration path includes Road _1 and Road _2 as shown in FIG. 4 as an example, soThe first authorization times are N 1 And N 2 Sum (N) 1 Indicating the number of times an arbitration request Req _1 on Road _1 is granted, N 2 Representing the number of times arbitration request Req _2 on Road _2 is granted), when N 1 And N 2 The sum is greater than or equal to TH 4 The arbitration requests on load _1 and load _2 are restricted from participating in arbitration for a first period of time after the target time instant, i.e., req _1 and Req _2 are restricted from participating in arbitration for the first period of time.
It should be noted that the above description of grouping the arbitration priorities according to the arbitration priorities of the plurality of arbitration paths is only exemplary. For example, one skilled in the art may incorporate Prio _2 in the above example into the above second group, or divide the above three arbitration priorities into three groups (i.e., prio _2 alone as one group). The number of packets of arbitration priorities and the number of arbitration priorities in each group are not limited by this disclosure.
By the method for determining the first threshold shown in fig. 4, different first thresholds can be selected according to the arbitration priority levels of the arbitration paths, so that the times that the arbitration requests on the corresponding arbitration paths can be continuously granted can be decided according to the arbitration priority levels of the arbitration paths, thereby being beneficial to realizing more refined arbitration of the arbitration priority levels of the arbitration paths.
In some embodiments, said limiting arbitration requests on said at least one arbitration path from participating in arbitration comprises: when the first grant number is greater than or equal to the first threshold, prohibiting arbitration requests on the at least one arbitration path from participating in arbitration for the first time period. Still taking the case where the at least one arbitration path shown in FIG. 4 includes Road _1 and Road _2 as an example, when the first grant number (N in this example) 1 And N 2 Sum) is greater than or equal to a first threshold (TH in this example) 4 ) Arbitration requests on Road _1 and Road _2 (in this example, req _1 and Req _ 2) are prohibited from participating in arbitration for a first period of time after the target time. Directly disabling arbitration requests on load _1 and load _2Participating in arbitration for the first time period helps ensure that arbitration requests (Req _3 in this example) on the other arbitration paths (Road _3 in this example) are granted by arbiter 400.
In some embodiments, said limiting arbitration requests on said at least one arbitration path from participating in arbitration comprises: when the first grant number is larger than or equal to the first threshold value, limiting the number of times of the arbitration requests on the at least one arbitration channel participating in the arbitration in the first time period to a first arbitration number. Still taking the case that the at least one arbitration channel shown in fig. 4 includes load _1 and load _2 as an example, when the first grant number (N in this example) 1 And N 2 Sum) is greater than or equal to a first threshold value (TH in this example) 4 ) The number of arbitration requests on Road _1 and Road _2 (in this example, req _1 and Req _ 2) participating in arbitration during the first time period is limited to a first number of arbitrations. As shown in FIG. 5, T 0 Representing the target time, num _1 representing the first number of arbitrations, req _1 and Req _2 on Road _1 and Road _2 for a first period of time P 1 The number of inter-participation arbitrations is limited to Num _1. Arbitration requests on other arbitration paths are facilitated to be granted by the arbiter by limiting the number of times arbitration requests on the respective arbitration path participate in arbitration within a certain time period.
In some embodiments, the first time period comprises a first sub-time period and a second sub-time period, the second sub-time period being subsequent to the first sub-time period, and the limiting arbitration requests on the at least one arbitration path from participating in arbitration comprises: when the first grant number is greater than or equal to the first threshold, limiting the number of times the arbitration request on the at least one arbitration path participates in arbitration within the first sub-period to a second number of arbitrations, and limiting the number of times the arbitration request on the at least one arbitration path participates in arbitration within the second sub-period to a third number of arbitrations; wherein the second number of arbitrations is greater than the third number of arbitrations. As shown in fig. 5, a first period P 1 Including a first sub-period P a And a second sub-periodPeriod P b Second sub-period P b In the first sub-period P a Thereafter, in connection with the example in FIG. 4, when the first authorization number (N in this example) 1 And N 2 Sum) is greater than or equal to a first threshold value (TH in this example) 4 ) When the first sub-period P is reached, the Req _1 and Req _2 of the load _1 and the load _2 are set to be in the first sub-period P a The number of inter-participation arbitration is limited to the second number of arbitration Num _2, and Req _1 and Req _2 at Road _1 and Road _2 are limited to the second sub-period P b The number of times of internal participation arbitration is limited to a third arbitration number Num _3; wherein the second arbitration number Num _2 is greater than the third arbitration number Num _3. By such a staged, stepwise limiting the number of times an arbitration request on a respective arbitration path participates in arbitration within a certain time period, a more flexible control of the arbitration request participation in arbitration on the respective arbitration path may be achieved, and also facilitated for arbitration requests on other arbitration paths to be granted by the arbiter.
In some embodiments, the method further comprises: when the first grant number is greater than or equal to the first threshold, prohibiting the arbitration request on the at least one arbitration path from participating in arbitration for a second time period after the second sub-time period. As shown in FIG. 5, P 2 Representing a second sub-period P b A second period of time thereafter, in connection with the example of fig. 4, when the first number of grants (N in this example) 1 And N 2 Sum) is greater than or equal to a first threshold value (TH in this example) 4 ) In this case, req _1 and Req _2 for load _1 and load _2 may be limited to the first sub-period P in stages in a stepwise manner as described above a And a second sub-period P b After the number of internal participation arbitration, in a second period P 2 Req _1 and Req _2 on Road _1 and Road _2 are inhibited internally from participating in arbitration, thereby ensuring that a certain period of time (P in this example) 1 +P 2 ) The arbitration requests on the other arbitration paths (in this example, req _3 on load _ 3) are granted by the arbiter.
In some embodiments, the length of the first time period is related to at least one of: a quality of service priority of arbitration requests present on the at least one arbitration path; and an arbitration priority for the at least one arbitration path. For example, a longer first time period may be set for arbitration requests with higher quality of service priority, so that arbitration requests with lower quality of service priority on other arbitration paths are guaranteed to be granted by the arbiter. Similarly, a longer first time period may be set for arbitration requests on arbitration paths with higher arbitration priority, so that arbitration requests on other arbitration paths with lower arbitration priority are guaranteed to be granted by the arbiter.
According to another aspect of the present disclosure, there is provided an arbiter for a network on chip comprising a plurality of arbitration paths connected to a respective plurality of input ports of the arbiter, the arbiter comprising: a counter configured to: acquiring a first authorization number corresponding to at least one arbitration passage in the plurality of arbitration passages, wherein the first authorization number represents the number of times that an arbitration request on the at least one arbitration passage is continuously authorized before a target moment; an arbitration unit connected to the plurality of input ports and an output port of the arbiter, the arbitration unit configured to: when the first grant number is greater than or equal to a first threshold, arbitration requests on the at least one arbitration path are restricted from participating in arbitration for a first time period after the target time. The working principle of the arbiter is explained below with reference to fig. 6.
As shown in fig. 6, the arbiter 600 is used for arbitrating arbitration requests (Req _1, req _2, and Req _ 3) on a plurality of arbitration paths (Road _1, road _2, and Road _ 3) in the network on chip, the arbiter 600 comprising three counters: cnt _1, cnt _2, and Cnt _3, which are respectively used to obtain the number of times Req _1, req _2, and Req _3 on Road _1, road _2, and Road _3 are consecutively granted, thereby limiting participation in arbitration for arbitration requests on the corresponding arbitration path according to whether the corresponding number of times is greater than or equal to the corresponding threshold. It should be noted that, after the counter reaches the corresponding threshold and starts to perform the above limiting measures, the counter may be zeroed and restarted, in which case the above-mentioned target time may be regarded as the time when the counter reaches the corresponding threshold, and the corresponding arbitration request is limited to participate in arbitration in a first time period after the target time.
Further, it should be noted that although in the example of FIG. 6, cnt _1, cnt _2, and Cnt _3 are used to count the number of times arbitration requests on Road _1, road _2, and Road _3, respectively, are granted consecutively, those skilled in the art will appreciate that in some cases fewer counters may be used. Illustratively, where Req _1, req _2, and Req _3 have the same quality of service priority, and the arbitration priorities of Road _1, road _2, and Road _3 are different (the arbitration priority of Road _1 is the highest, the arbitration priority of Road _2 is the next, and the arbitration priority of Road _3 is the lowest), cnt _1 and Cnt _2 can be set alone, without setting Cnt _3, because the arbitration request on Road _3 with the lowest arbitration priority is the lowest probability of being granted in this case, and thus the arbitration request on Road _3 can be facilitated by restricting arbitration requests on other arbitration paths (in this example, road _1 and Road _ 2) with arbitration priorities higher than Road _3 without restricting them using the foregoing method of the present disclosure. This scheme of using fewer counters may further reduce the area occupied by the associated logic circuitry.
According to yet another aspect of the present disclosure, there is provided an on-chip router (e.g., a Switch node in an on-chip network) for routing a plurality of routing requests on a plurality of routing paths, wherein the on-chip router is configured to: routing the plurality of routing requests on the plurality of routing paths using an arbiter provided according to the aforementioned aspect of the disclosure.
Fig. 7 schematically illustrates an exemplary architecture diagram of a network on chip 700, according to some embodiments of the present disclosure. As shown in fig. 7, the network on chip 700 includes: resource nodes including compute nodes including processors (shown as processor 1, processor 2, and processor 3 in FIG. 7) and storage nodes including at least one of ROM, RAM, DRAM, and SDRAM (shown as memory 1 and memory 2 in FIG. 7); the communication nodes (shown as Switch nodes Switch _1, switch _2, and Switch _3 in fig. 7) for supporting data transfer between the resource nodes include an on-chip router provided according to the foregoing aspect of the present disclosure. The processor includes but is not limited to: a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), and the like, wherein the GPU may be a General Purpose computing Graphics processor (GPGPU), a full function GPU, and the like.
Fig. 8 schematically illustrates an exemplary architecture diagram of a chip 800 according to some embodiments of the disclosure. As shown in fig. 8, a chip 800 employs a network-on-chip 810 provided according to the foregoing aspects of the present disclosure (e.g., the foregoing network-on-chip 700) to implement data transfer between different units in the chip 800 (e.g., data transfer between a CPU and a DRAM). Illustratively, chip 800 may be a System on Chip (SoC) that integrates units of different functions such as a CPU, a GPU, etc. together to realize multiple functions, although this is merely exemplary, and Chip 800 may have the form of any integrated circuit that can apply the network on Chip provided by the foregoing aspects of the disclosure, e.g., chip 800 may also be a Field Programmable Gate Array (FPGA).
It will be appreciated that embodiments of the disclosure have been described with reference to different functional units for clarity. However, it will be apparent that the functionality of each functional unit may be implemented in a single unit, in a plurality of units or as part of other functional units without departing from the disclosure. For example, functionality illustrated to be performed by a single unit may be performed by a plurality of different units. Thus, references to specific functional units are only to be seen as references to suitable units for providing the described functionality rather than indicative of a strict logical or physical structure or organization. Thus, the present disclosure may be implemented in a single unit or may be physically and functionally distributed between different units and circuits.
It will be understood that, although the terms first, second, third, etc. may be used herein to describe various devices, elements, components or sections, these devices, elements, components or sections should not be limited by these terms. These terms are only used to distinguish one device, element, component or section from another device, element, component or section.
Although the present disclosure has been described in connection with some embodiments, it is not intended to be limited to the specific form set forth herein. Rather, the scope of the present disclosure is limited only by the accompanying claims. Additionally, although individual features may be included in different claims, these may possibly advantageously be combined, and the inclusion in different claims does not imply that a combination of features is not feasible and/or advantageous. The order of features in the claims does not imply any specific order in which the features must be worked. Variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed subject matter, from a study of the drawings, the disclosure, and the appended claims. Furthermore, in the claims, the word "comprising" does not exclude other elements, and the terms "a" or "an" do not exclude a plurality. Reference signs in the claims are provided merely as a clarifying example and shall not be construed as limiting the scope of the claims in any way.
It will be appreciated that embodiments of the disclosure have been described with reference to different functional units for clarity. However, it will be apparent that the functionality of each functional unit may be implemented in a single unit, in a plurality of units or as part of other functional units without departing from the disclosure. For example, functionality illustrated to be performed by a single unit may be performed by a plurality of different units. Thus, references to specific functional units are only to be seen as references to suitable units for providing the described functionality rather than indicative of a strict logical or physical structure or organization. Thus, the present disclosure may be implemented in a single unit or may be physically and functionally distributed between different units and circuits.

Claims (12)

1. A path arbitration method for a network on chip, the network on chip comprising a plurality of arbitrated paths, the method comprising:
acquiring a first authorization number corresponding to at least one arbitration passage in the plurality of arbitration passages, wherein the first authorization number represents the number of times that an arbitration request on the at least one arbitration passage is continuously authorized before a target moment;
when the first grant number is greater than or equal to a first threshold, arbitration requests on the at least one arbitration path are restricted from participating in arbitration for a first time period after the target time.
2. The method of claim 1, wherein:
according to the arbitration priorities of the plurality of arbitration paths, the arbitration priorities are distributed to different priority groups, and the different priority groups correspond to different thresholds;
the first threshold is a threshold corresponding to a priority group in which the arbitration priority of the at least one arbitration path is located.
3. The method of claim 1, wherein:
according to the service quality priority supported by the network on chip, the service quality priority is distributed to different priority groups, and the different priority groups correspond to different threshold values;
the first threshold is a threshold corresponding to a priority group in which a quality of service priority of an arbitration request existing on the at least one arbitration path at the target time is located.
4. The method of claim 1, wherein said limiting arbitration requests on said at least one arbitration path from participating in arbitration comprises:
when the first grant number is greater than or equal to the first threshold, prohibiting arbitration requests on the at least one arbitration path from participating in arbitration for the first time period.
5. The method of claim 1, wherein said restricting arbitration requests on said at least one arbitration path from participating in arbitration comprises:
when the first grant number is greater than or equal to the first threshold, limiting the number of times the arbitration request on the at least one arbitration path participates in arbitration within the first time period to a first arbitration number.
6. The method of claim 1, wherein the first time period comprises a first sub-time period and a second sub-time period, the second sub-time period following the first sub-time period, and wherein the limiting arbitration requests on the at least one arbitration lane from participating in arbitration comprises:
limiting a number of times arbitration requests on the at least one arbitration path participate in arbitration within the first sub-time period to a second number of arbitrations when the first number of grants is greater than or equal to the first threshold, and
limiting a number of times an arbitration request on the at least one arbitration path participates in arbitration within the second sub-period of time to a third number of times of arbitration; wherein
The second number of arbitrations is greater than the third number of arbitrations.
7. The method of claim 6, further comprising:
when the first grant number is greater than or equal to the first threshold, prohibiting the arbitration request on the at least one arbitration path from participating in arbitration for a second time period after the second sub-time period.
8. The method of claim 1, wherein a length of the first time period is related to at least one of:
a quality of service priority of arbitration requests present on the at least one arbitration path; and
an arbitration priority of the at least one arbitration lane.
9. An arbiter for a network on chip comprising a plurality of arbitration paths connected to a respective plurality of input ports of the arbiter, the arbiter comprising:
a counter configured to: acquiring a first authorization number corresponding to at least one arbitration passage in the plurality of arbitration passages, wherein the first authorization number represents the number of times that an arbitration request on the at least one arbitration passage is continuously authorized before a target moment;
an arbitration unit connected to the plurality of input ports and an output port of the arbiter, the arbitration unit configured to: when the first grant number is greater than or equal to a first threshold, arbitration requests on the at least one arbitration path are restricted from participating in arbitration for a first time period after the target time.
10. An on-chip router for routing a plurality of routing requests on a plurality of routing paths, the on-chip router configured to:
routing the plurality of routing requests on the plurality of routing paths using the arbiter of claim 9.
11. A network on chip, characterized in that the network on chip comprises:
the resource nodes comprise a computing node and a storage node, the computing node comprises a processor, and the storage node comprises at least one of ROM, RAM, DRAM and SDRAM;
a communication node comprising an on-chip router according to claim 10, the communication node being adapted to support data transfer between the resource nodes.
12. A chip, characterized in that the chip employs the network on chip of claim 11 to implement data transmission between different hardware units in the chip.
CN202211598507.2A 2022-12-14 2022-12-14 Path arbitration method for network on chip, arbiter and router on chip Pending CN115640257A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211598507.2A CN115640257A (en) 2022-12-14 2022-12-14 Path arbitration method for network on chip, arbiter and router on chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211598507.2A CN115640257A (en) 2022-12-14 2022-12-14 Path arbitration method for network on chip, arbiter and router on chip

Publications (1)

Publication Number Publication Date
CN115640257A true CN115640257A (en) 2023-01-24

Family

ID=84949445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211598507.2A Pending CN115640257A (en) 2022-12-14 2022-12-14 Path arbitration method for network on chip, arbiter and router on chip

Country Status (1)

Country Link
CN (1) CN115640257A (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060101179A1 (en) * 2004-10-28 2006-05-11 Lee Khee W Starvation prevention scheme for a fixed priority PCI-Express arbiter with grant counters using arbitration pools
US20080288689A1 (en) * 2007-05-14 2008-11-20 Brian Hoang Opportunistic granting arbitration scheme for fixed priority grant counter based arbiter
CN102467474A (en) * 2010-11-08 2012-05-23 索尼公司 Arbitration circuit and control method thereof
CN103077141A (en) * 2012-12-26 2013-05-01 西安交通大学 AMBA (Advanced Microcontroller Bus Architecture) bus based self-adaption real-time weighting prior arbitration method and arbitrator
CN103201726A (en) * 2010-09-08 2013-07-10 英特尔公司 Providing a fine-grained arbitration system
CN105022717A (en) * 2015-06-04 2015-11-04 中国航空无线电电子研究所 Network on chip resource arbitration method and arbitration unit of additional request number priority

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060101179A1 (en) * 2004-10-28 2006-05-11 Lee Khee W Starvation prevention scheme for a fixed priority PCI-Express arbiter with grant counters using arbitration pools
US20080288689A1 (en) * 2007-05-14 2008-11-20 Brian Hoang Opportunistic granting arbitration scheme for fixed priority grant counter based arbiter
CN103201726A (en) * 2010-09-08 2013-07-10 英特尔公司 Providing a fine-grained arbitration system
CN102467474A (en) * 2010-11-08 2012-05-23 索尼公司 Arbitration circuit and control method thereof
CN103077141A (en) * 2012-12-26 2013-05-01 西安交通大学 AMBA (Advanced Microcontroller Bus Architecture) bus based self-adaption real-time weighting prior arbitration method and arbitrator
CN105022717A (en) * 2015-06-04 2015-11-04 中国航空无线电电子研究所 Network on chip resource arbitration method and arbitration unit of additional request number priority

Similar Documents

Publication Publication Date Title
JP7356988B2 (en) End-to-end quality of service in network-on-chip
US7143219B1 (en) Multilevel fair priority round robin arbiter
US7539199B2 (en) Switch fabric scheduling with fairness and priority consideration
JP3417438B2 (en) Pseudo round-robin arbitration system
EP0957612B1 (en) Method for data packet queuing
US4633394A (en) Distributed arbitration for multiple processors
CN101739372B (en) Shared resource arbitration method and device thereof
US6704821B2 (en) Arbitration method and circuit architecture therefore
US8514873B2 (en) Advanced telecommunications router and crossbar switch controller
US10721185B2 (en) Age-based arbitration circuit
US9007920B2 (en) QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes
US10929322B2 (en) Prioritized arbitration using fixed priority arbiter
US10237198B2 (en) Shared-credit arbitration circuit
US7450606B2 (en) Bit slice arbiter
US6763418B1 (en) Request bus arbitration
CN112152932A (en) Network-on-chip routing control method, network-on-chip router and readable storage medium
US7054330B1 (en) Mask-based round robin arbitration
US20180159799A1 (en) Predictive Arbitration Circuit
CN107276920B (en) Distributed flow control system and method applied to hybrid three-dimensional network on chip
CN115640257A (en) Path arbitration method for network on chip, arbiter and router on chip
CN114968866B (en) Priority group polling arbitrator and arbitrating method thereof, cross bar switch and chip
CN111466106A (en) Request arbitration by age value and traffic class
Monemi et al. Improved flow control for minimal fully adaptive routing in 2D mesh NoC
CN117176674B (en) Network-on-chip and data transmission method, chip and device
US6631131B1 (en) Transpose table biased arbitration scheme

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination