Arbitration Equipment

By designing a plurality of first cycle arbitration circuits and second cycle arbitration circuits in the arbitration device, and combining the differences in priority levels and request types, the problem of famine operations in the prior art is solved, and a more efficient request selection is achieved.

CN111444122BActive Publication Date: 2025-04-22STMICROELECTRONICS FRANCE +1
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202010042353.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-01-16
Filing Date
2020-01-15
Publication Date
2025-04-22
Estimated Expiration
2040-01-15

AI Technical Summary

Technical Problem

Existing arbitration devices are prone to risk of famine operations when selecting requests and are selected based solely on the priority level of the request, failing to take full advantage of the differences in request types.

Method used

An apparatus is designed that includes a plurality of first cycle arbitration circuits, each request being sent to a corresponding number of arbitration circuits according to its priority level, and a request is randomly selected in each arbitration circuit. In addition, the device also includes a second cycle arbitration circuit and a fixed priority arbitration circuit to further process the request.

Benefits of technology

Effectively reduce the risk of famine operations, and improve the accuracy and efficiency of request selection by combining priority levels and request type.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN111444122B_ABST
    Figure CN111444122B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to arbitration devices. A request is received by a routing circuit. A plurality of first round-robin arbitration circuits are coupled to the routing circuit. The number of first round-robin arbitration circuits is as many as the number of possible priority levels for the requests. The routing circuit operates to send each received request to a number of first round-robin arbitration circuits determined according to the priority level of the request. The second round-robin arbitration circuit has inputs respectively connected to outputs of the first round-robin arbitration circuits.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims the benefit of priority from French patent application No. 1900377, filed on January 16, 2019, the contents of which are incorporated herein by reference in their entirety to the maximum extent permitted by law. Technical Field

[0003] The present disclosure relates generally to electronic circuits, and more particularly to arbitration devices provided in such electronic circuits. Background Art

[0004] Arbitration devices are known in the art, which operate to select a request from a plurality of received requests. The received requests each have a priority level that may be different from one another. In such devices, the selection of a request is based on the priority level of the received request.

[0005] There is a need for an apparatus that overcomes all or some of the disadvantages of known arbitration apparatuses. More specifically, there is a need for an arbitration apparatus that reduces or even suppresses the risk of starvation operation (ie, a situation where one request is never selected from a plurality of received requests).

[0006] There is also a need for an arbitration device that operates to select requests based not only on the priority level of the received requests, but also on the request type selected from multiple types, preferably from two types indicating the fact that the processing of the request should be performed or not performed in real time, respectively. Summary of the invention

[0007] One embodiment provides a device configured to receive requests, the device comprising: as many first round-robin arbitration circuits as possible priority levels of the requests; and a circuit configured to send each received request to a certain number of first round-robin arbitration circuits determined based on the priority level of the request.

[0008] According to one embodiment, the number of first round-robin arbitration circuits to which the circuit sends each request increases with the priority level of the request.

[0009] According to one embodiment, for each request, the priority level of the request is represented by an integer ranging from 1 to the number of possible priority levels of the request, the integer being higher when the priority of the request is high.

[0010] According to one embodiment, the circuit is configured to send each request to a number of first round-robin arbitration circuits equal to an integer representing a priority level of the request.

[0011] According to one embodiment, the circuit is further configured to: for each request, randomly select the first round-robin arbitration circuit(s) to which the circuit sends the request.

[0012] According to one embodiment, each first round-robin arbitration circuit is associated with a respective priority level of the possible priority levels, and the circuit is further configured to send to each first round-robin arbitration circuit each request having a priority level greater than or equal to the priority level associated with the first round-robin arbitration circuit.

[0013] According to one embodiment, the device further comprises a second round-robin arbitration circuit, inputs of the second round-robin arbitration circuit being respectively connected to outputs of the first round-robin arbitration circuit.

[0014] Another embodiment provides a system comprising: a device as defined above; a third round-robin arbitration circuit; a fourth fixed-priority arbitration circuit having a first input and a second input, the first input being connected to the output of the second round-robin arbitration circuit of the device, and the second input being connected to the output of the third round-robin arbitration circuit; and a circuit configured to receive requests each having a type selected from the first type and the second type, and to send requests of the first type to the circuit of the device and requests of the second type to the third round-robin arbitration circuit, the circuit of the system for example including the circuit of the device.

[0015] According to one embodiment, when a request is present on each of the first input and the second input of the fourth fixed priority arbitration circuit, the fourth fixed priority arbitration circuit is configured to select the request present on the second input thereof.

[0016] Another embodiment provides a system comprising: a first and a second device as defined above; a third fixed priority arbitration circuit having a first input and a second input, the first input being connected to the output of the second round-robin arbitration circuit of the first device, and the second input being connected to the output of the second round-robin arbitration circuit of the second device; and a circuit configured to receive a request of a type selected between a first type and a second type, and to send a request of the first type to the circuit of the first device, and to send a request of the second type to the circuit of the second device, the circuit of the system for example including the circuit of the first device and / or the circuit of the second device.

[0017] According to one embodiment, the third round-robin arbitration circuit is configured to select the request present on its second input when a request is present on each of the first input and the second input of the third round-robin arbitration circuit.

[0018] According to one embodiment, the number of possible priority levels for requests of the first type is different than the number of possible priority levels for requests of the second type.

[0019] According to one embodiment, requests that do not require real-time processing are of the first type, and requests that require real-time processing are of the second type.

[0020] Another embodiment provides an electronic circuit, such as a microcontroller, a microprocessor or a direct memory access circuit, comprising a device or a system as defined above.

[0021] Another embodiment provides a method comprising the following consecutive steps: receiving multiple requests with different priority levels; and sending the requests to first round-robin arbitration circuits through a circuit, the total number of first round-robin arbitration circuits being equal to the number of priority levels, the number of first round-robin arbitration circuits to which each request is sent being determined by the priority level of the request and preferably increasing with the priority level of the request. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] The foregoing and other features and advantages will be discussed in detail in the following non-limiting description of specific embodiments in conjunction with the accompanying drawings, in which:

[0023] Figure 1 An embodiment of an arbitration device is schematically shown in block form;

[0024] Figure 2 The diagram schematically shows the structure including Figure 1 An embodiment of a system of devices; and

[0025] Figure 3 The diagram schematically shows the structure including Figure 1 Another embodiment of a system of devices. DETAILED DESCRIPTION

[0026] In different drawings, the same elements are represented by the same reference numerals. In particular, the structural and / or functional elements common to different embodiments may be designated by the same reference numerals and may have the same structure, size and material properties.

[0027] For the sake of clarity, only those steps and elements that are useful for understanding the described embodiments are shown and described in detail. In particular, the different signals and protocols defining the requests are not described in detail, the described embodiments being compatible with conventional request signals and protocols. Furthermore, the electronic circuit provided with the arbitration device is not described in detail, the described embodiments being compatible with conventional electronic circuits including the arbitration device. Finally, the operation and various implementations of the round-robin arbitration circuit and the fixed priority arbitration circuit are not described, the described embodiments being compatible with conventional operation and conventional implementations of such arbitration circuits.

[0028] Throughout this disclosure, the term “connected” is used to specify a direct electrical connection between circuit elements without intermediate elements other than conductors, while the term “coupled” is used to specify an electrical connection between circuit elements that may be direct or may be via one or more intermediate elements.

[0029] In the following description, for example, unless otherwise specified, when reference is made to terms defining absolute positions (for example, terms “front”, “back”, “top”, “bottom”, “left”, “right”, etc.) or terms defining relative positions (for example, terms “above”, “below”, “upper”, “lower”, etc.) or terms defining directions (for example, terms “horizontal”, “vertical”, etc.), they refer to the orientation of the drawings.

[0030] The terms "about," "approximately," "substantially," and "in the order of magnitude of..." are used herein to indicate a tolerance of plus or minus 10%, preferably plus or minus 5%, of the value in question.

[0031] Figure 1 An embodiment of an arbitration device 1 is shown very schematically in block form.

[0032] Here the device 1 is arranged to receive up to N requests Ri simultaneously, i being an integer in the range from 1 to N, and N being an integer greater than or equal to 2. In addition, each request Ri has a priority level p, p being an integer in the range from 1 to M, and M being an integer greater than or equal to 2. Each request Ri can adopt any priority level p in the range from 1 to M. It is considered here that the higher the priority level of a request, the higher the priority. As an example, the priority level p of a request Ri is set by the device or circuit that has sent the request.

[0033] The device 1 comprises a routing circuit 100. The circuit 100 is configured to receive N requests Ri simultaneously (if present). The circuit 100 thus comprises N inputs Ei, i ranging from 1 to N, each input Ei being configured to receive a corresponding request Ri.

[0034] The device 1 further comprises M arbitration circuits 110j, j being an integer in the range from 1 to M. In other words, the device 1 comprises as many arbitration circuits 110j as the number M of possible priority levels of the requests Ri. Each arbitration circuit 110j is of the round-robin type. Furthermore, each arbitration circuit 110j comprises N inputs EAi, i being an integer in the range from 1 to N. In other words, each arbitration circuit 110j can receive up to N requests simultaneously. Each arbitration circuit 110j comprises an output SAj, at the level of which the request selected by the arbitration circuit is available.

[0035] The circuit 100 is configured to send or distribute each request Ri received by it with a priority level p to p arbitration circuits among the M arbitration circuits 110j. More specifically, for each input Ei, the circuit 100 includes M corresponding outputs Sij, j being an integer ranging from 1 to M. For a given input Ei, the M corresponding outputs Sij are coupled (preferably connected) to the input EAi of the corresponding arbitration circuit 110j. In other words, each output Sij is coupled (preferably connected) to the input EAi of the arbitration circuit 110j.

[0036] In this example, it is considered that when the circuit 100 receives a request Ri with a priority level p, the circuit 100 sends the request to the p arbitration circuits 1101, 1102, ..., 110j, 110p-1 and 110p. In other words, each arbitration circuit 110j is associated with a different priority level p, in this example, the level p is equal to the index j of the arbitration circuit under consideration, and the circuit 100 is configured to send all requests Ri with a priority level greater than or equal to j to the arbitration circuit 110j.

[0037] The device 1 further comprises an arbitration circuit 120. The arbitration circuit 120 is of the round-robin type. The arbitration circuit 120 comprises as many inputs EBj as the arbitration circuits 110j, or in other words, as many inputs EBj as the possible priority levels of the requests Ri. Each input EBj is coupled to (preferably connected to) an output SAj of the arbitration circuit 110j, j being an integer in the range from 1 to M. Thus, when the arbitration circuit 110j selects one of the requests available on its input EAi, the selected request is sent to the input EBj of the arbitration circuit 120 via the output SAj of the arbitration circuit 110j. The arbitration circuit 120 comprises an output SB, at the level of which the request selected by the arbitration circuit 120 is available. The output SB forms the output of the device 1.

[0038] Although not shown herein, each arbitration circuit 110j, arbitration circuit 120, and circuit 100 preferably has an input configured to receive a synchronization signal (e.g., a periodic synchronization signal or a clock signal) clk. In this case, a request on the input of circuit 120 or one of arbitration circuits 110j and 120 is preferably considered during an edge (e.g., a rising edge) of signal clk.

[0039] In addition, despite the Figure 1 In the example, each request has been represented by a single wire, but in reality, a request may include multiple signals and thus be transmitted via multiple wires. For example, a request may include: a signal req on one bit transmitted via a corresponding wire; a request confirmation signal ack on one bit transmitted via a corresponding wire, the signal ack enabling the request to be verified according to a given protocol (e.g., a four-phase protocol, or a protocol in which the request is verified when the signals ack and req are simultaneously valid on the edges (rising and / or falling) of a synchronization signal); and a data signal on multiple bits transmitted via multiple corresponding wires, the data signal specifically including information indicating the priority level of the request. For example, when the request is a request corresponding to a data transmission, the data signal of the request includes, for example, information indicating the transmission source, the transmission destination, the size and / or number of the transmitted data words.

[0040] The device 1 operates as follows. When a request Ri is received at a corresponding input Ei of the circuit 100, the circuit 100 determines the priority level p of the request, for example by means of information representing the level p included in the request itself. The circuit 100 then sends the request Ri to the p arbitration circuits 110j via the p outputs Sij. This is achieved for each of the N inputs Ei that can receive the corresponding request Ri. Thus, each of the M arbitration circuits 110j is able to receive one or more requests from the circuit 100. Each of the M arbitration circuits 110j that has received one or more requests from the circuit 100 implements an arbitration method of the round-robin type and selects one of the requests present on its input EAi. The request selected by the M arbitration circuits 110j is available at the level of the corresponding output SAj of the arbitration circuit and is delivered to the arbitration circuit 120. The arbitration circuit 120 then implements an arbitration method of the round-robin type and selects one of the requests present on its input EBi, the selected request then being available on the output SB of the arbitration circuit 120 and forming the request selected by the arbitration device 1.

[0041] In device 1, when circuit 100 simultaneously receives multiple requests Ri, the higher the priority level p of the request, the greater the number p of arbitration circuits 110j to which the request is sent. As a result, the probability of a request being selected by one or more arbitration circuits 110j and then selected by arbitration circuit 120 increases with its priority level. Therefore, the higher the priority level p of the request, the greater the probability that device 1 selects the request.

[0042] Furthermore, due to the fact that the arbitration circuits 110j and 120 are of the round-robin type rather than of the fixed priority level type, when the device 1 receives a plurality of requests Ri simultaneously, the probability that the request Ri having the lowest priority level is selected by the device 1 is not zero among all the received requests Ri. This makes it possible to avoid the risk of starvation of the received requests having the lowest priority level.

[0043] For example, when M is equal to 3 and among the requests Ri received by the device 1 at a given time (e.g., the rising edge of the signal clk), x requests have a priority level p equal to 1, y requests have a priority level p equal to 2, and z requests have a priority level p equal to 3, the sum of x, y, and z is less than or equal to N. Figure 1 In the example of , each of the x requests having a priority level p equal to 1 is sent to arbitration circuit 1101, each of the y requests having a priority level p equal to 2 is sent to each of arbitration circuits 1101 and 1102, and each of the z requests having a priority level p equal to 3 is sent to each of arbitration circuits 1101, 1102, and 1103. The following table provides, for this particular example, the probability that device 1 selects a request according to the priority level of the request, in the following cases:

[0044] - Case 1: All received requests have the same priority level p equal to 1 (x>0, y=0 and z=0);

[0045] - Case 2: All received requests have the same priority level p equal to 2 (x=0, y>0 and z=0);

[0046] - Case 3: All received requests have the same priority level p equal to 3 (x=0, y=0 and z>0);

[0047] - Case 4: None of the received requests has a priority level p equal to 1 (x=0, y>0 and z>0);

[0048] - Case 5: None of the received requests has a priority level p equal to 2 (x>0, y=0 and z>0);

[0049] - Case 6: None of the received requests has a priority level p equal to 3 (x>0, y>0 and z=0); and

[0050] - Case 7: Requests with three priority levels are received (x>0, y>0 and z>0). It should be noted that the above probabilities do not take into account the state of the arbitration circuits 110j, ie they do not take into account the possible last request selected (served) by each arbitration circuit 110j.

[0051] Table 1

[0052]

[0053] It can be seen from the above table that when multiple requests are received simultaneously and the requests have different priority levels, the request with the highest priority level has a higher probability of being selected by device 1 than the request with a lower priority level. Although the table has been obtained in the case of a specific example, the above results can be generalized to any pair of values ​​M and N.

[0054] An embodiment has been described above in which, on the one hand, each arbitration circuit 110j is associated with a given priority level p, and, on the other hand, the circuit 100 is configured to send to each arbitration circuit 110j all requests having a priority level greater than or equal to the priority level associated with that arbitration circuit 110j.

[0055] As a variant, the circuit 100 is configured to randomly select p arbitration circuits 110j, to which the circuit 100 sends each received request of priority level p. This enables, when the device 1 simultaneously receives a first request and a second request with a higher priority level than the first request, to reduce the interval between the probability of the first request being selected by the device 1 and the probability of the second request being selected by the device 1. This therefore reduces the risk of starvation of the request with the lowest priority level. However, the probability of the second request being selected is still greater than the probability of the first request being selected.

[0056] In some applications, it is desirable to provide two different types of requests (e.g., a first type of request corresponding to a request that does not require real-time processing and a second type of request corresponding to a request that requires real-time processing), and when providing a request of one type (the second type in this example), maintain a higher priority than a request of the other type (the first type in this example). Figure 2 To describe an arbitration system or device that can meet this requirement.

[0057] Figure 2 An embodiment of a system 2 is schematically shown in block form, the system 2 comprising a device 1 , and more particularly here two devices 1 .

[0058] The system 2 can receive up to N requests Ri simultaneously. Each received request Ri can be of the first type RT or of the second type NRT, where the first type has a higher priority than the second type. For example, a request of type NRT corresponds to a request that does not require real-time processing (NRT - "non-real-time"), and a request of type RT corresponds to a request that requires real-time processing (RT - "real-time"). Upstream of the system 2, the RT or NRT type of the request is selected or set, for example by a circuit or device that sends the request. The RT or NRT type of the request is indicated in the request, for example by information representing the request type, and the information is included in the data signal of the request itself.

[0059] Each NRT type request has a priority level pNRT, which is an integer in the range from 1 to an integer MNRT greater than or equal to 2. Furthermore, in this embodiment, each RT type request has a priority level pRT, which is an integer in the range from 1 to an integer MRT greater than or equal to 2. The integers MNRT and MRT may be different or equal.

[0060] The first of the two devices 1 is configured to process NRT type requests and Figure 2 The reference numeral 1NRT is used to indicate that the second device of the two devices 1 is configured to process RT type requests and Figure 2 In the figure, the reference symbol 1RT is used. Figure 2 In the drawings, the reference numerals (or 1RT) used to designate the various elements of the apparatus 1NRT are the same as those used to designate the Figure 1 Those reference numerals of the same elements in (with the letters NRT (or RT) respectively appended) correspond.

[0061] The system 2 also includes a circuit 200. The circuit 200 includes N inputs INi, each of which is configured to receive a corresponding request Ri. The inputs INi of the circuit 200 form the inputs of the system 2. For each input INi, the circuit 200 includes two outputs OiNRT and OiRT, which are coupled to (preferably connected to) the corresponding inputs EiNRT and EiRT of the devices 1NRT and 1RT. When the system 2 receives a request Ri of NRT type, the circuit 200 is configured to send the request to the corresponding input EiNRT of the circuit 100NRT of the device 1NRT via its output OiNRT. Similarly, when the system 2 receives a request Ri of RT type, the circuit 200 is configured to send the request to the corresponding input EiRT of the circuit 100RT of the device 1RT via its output OiRT.

[0062] The system 2 further comprises an arbitration circuit 210. The arbitration circuit 210 comprises an input L and an input H, the input L being coupled (preferably connected) to an output SBNRT of the device 1NRT (i.e., the output of the arbitration circuit 120NRT), and an input H being coupled (preferably connected) to an output SBRT of the device 1RT (i.e., the output of the arbitration circuit 120RT). The arbitration circuit 210 comprises an output OUT forming an output of the system 2. The arbitration circuit 210 is of a fixed priority level type, i.e., when two requests are simultaneously present on its inputs L and H, the arbitration circuit always selects the request present on its input having the highest priority level. In this example, the arbitration circuit always selects the request present on its input H, which receives a request of the RT type from the device 1RT, and the priority level of the request of the RT type is higher than the NRT request received from the device 1NRT through its input L.

[0063] In operation, when the system 2 receives multiple requests Ri simultaneously, the request Ri of type NRT is sent by the circuit 200 to the device 1NRT, in which the request Ri of type NRT is sent according to the information about Figure 1 The requests are processed by their priority level pNRT described, and the request of RT type is sent by the circuit 200 to the device 1RT, in which the request is processed according to the priority level pNRT described. Figure 1 The requests are processed according to their priority level pRT described. Therefore, when the system 2 receives a request of RT type and a request of NRT type, the device 1RT (or 1NRT) selects one of the requests of RT type (or NRT type). The arbitration circuit 210 then selects the RT type request delivered by the device 1RT instead of the NRT type request delivered by the device 1NRT.

[0064] Therefore, even though the system has received NRT type requests simultaneously with RT type requests, once the system receives at least one RT type request, the system must select the RT type request. This is due to the fact that the system 2 includes a path dedicated to NRT requests (here, device 1NRT) and a path dedicated to RT requests (here, device 1RT), and the arbitration circuit 210 selects the second path as priority.

[0065] Although not shown herein, circuit 200 and / or arbitration circuit 210 may include an input (eg, circuits 100RT, 100NRT and arbitration circuits 110jRT, 110jNRT, 120RT, and 120NRT) configured to receive a synchronization signal (eg, signal clk).

[0066] Furthermore, although the circuits 200, 100RT and 100NRT are shown herein in the form of three different circuits, the circuit 200 may include the circuit 100RT and / or the circuit 100NRT. In the specific case where the circuit 200 includes two circuits 100RT and 100NRT, the circuit 200 sends the request Ri received by the circuit 200 directly to the arbitration circuits 110jNRT and 110jRT according to their RT or NRT type and their priority level pRT or pNRT.

[0067] Since arbitration circuit 210 always selects a request of RT type when such a request is present at its input H, system 2 is adapted to the case where the RT type corresponds to requests requiring real-time processing and the NRT type corresponds to requests not requiring real-time processing.

[0068] Figure 3 Another embodiment of the system 3 is schematically shown in the form of a block, the system 3 comprising Figure 1 device 1, and more specifically includes a single device 1 here.

[0069] System 3 can receive up to N requests Ri simultaneously. Each received request Ri can be of RT or NRT type. In addition, each NRT type request has a priority level pNRT, which is an integer in the range from 1 to an integer MNRT greater than or equal to 2. However, in contrast to the case of system 2, in system 3, RT type requests do not have a priority level, in other words, all requests have the same priority level pRT. Therefore, no RT type request has a higher priority level than other RT type requests.

[0070] System 3 then with Figure 2 The difference of system 2 is that device 1RT is replaced by an arbitration circuit 310RT of round-robin type, which corresponds to a path dedicated to the processing of RT type requests. In the following, only the differences between systems 2 and 3 are explained in detail.

[0071] The arbitration circuit 310RT comprises N inputs ei (i being an integer in the range from 1 to N) to be able to receive N requests simultaneously (if necessary). The arbitration circuit 310RT comprises an output SBRT, at the level of which the request selected by the arbitration circuit 310RT among the requests present on its inputs ei is made available.

[0072] Furthermore, here the input H of the arbitration circuit 210 is coupled (preferably connected) to the output SBRT of the arbitration circuit 310RT, rather than Figure 2In addition, the N outputs OiRT of the circuit 200 are respectively coupled (preferably connected) to the N inputs ei of the arbitration circuit 310RT, instead of being coupled to the output SBRT as in the case of FIG. Figure 2 is coupled to the input EiRT of device 1RT as in the case of FIG.

[0073] The operation of system 3 is similar to that of system 2.

[0074] The system 3 enables processing of both types of requests, RT and NRT, in the case where only requests of the NRT type have a priority level that may differ between two requests of this type.

[0075] To handle this situation, when the number of possible priority levels M is equal to 1, it can be designed to be generalized with Figure 1 The description of the relevant device 1 and use the obtained device 1 instead Figure 2 However, compared to the described system 3, this would result in the system 2 comprising an additional round-robin arbitration circuit 110RT and an additional circuit 100RT.

[0076] In the above-described embodiment, the fact that the round-robin arbitration circuit itself does not generate a starvation situation is utilized. In addition, since the round-robin arbitration circuit cannot take such priority levels into account, the consideration of different priority levels between requests of the same type is achieved by the circuits 100, 100RT and 100NRT. In other words, the synergy between the circuits 100, 100RT and 100NRT and the round-robin arbitration circuit is utilized, the circuits 100, 100RT and 100NRT replicate the requests they receive according to their priority levels, and the round-robin arbitration circuit processes the requests they receive fairly. This makes it possible to reduce or even avoid the risk of starvation in the device and arbitration system.

[0077] In combination with the above Figure 2 and Figure 3In the described embodiments, it has been considered that the type and priority level of the request are shown by two different pieces of information. However, one piece of information may be provided to indicate the priority level and type of the request. For example, in the described embodiments, each request may be provided with a priority level k, k being in the range from 1 to MNRT+MRT, such that requests with a priority level k in the range from 1 to MNRT correspond to NRT type requests and the priority level pNRT=k, and such that in the described embodiments, requests with a priority level k in the range from MNRT+1 to MNRT+MRT correspond to RT type requests and the priority level pRT=k-MNRT. Based on the functional indications given in the present disclosure, a person skilled in the art will be able to adapt the described embodiments to the above-mentioned situations, and more generally to various possible ways of representing the type and / or priority level of a request.

[0078] In addition, despite the Figure 2 and Figure 3 Two types of requests RT and NRT are described to indicate whether a request should be processed in real time, respectively, but the two types of requests may indicate other information. For example, the RT or NRT type of a request may indicate whether the request is in write mode or in read mode, respectively, with a read request having a higher priority than a write request, for example.

[0079] The above-described embodiments and variants may be provided in various electronic circuits such as microcontrollers, microprocessors and direct memory access circuits (DMA). In addition, a system 2 or 3 may be provided in a DMA circuit to implement arbitration between requests from different channels of the DMA circuit (e.g., requests to access a bus). According to a specific example of implementation, a system 3 is provided for receiving a request from a DMA circuit when MNRT is equal to 3 and N is equal to 4, for example.

[0080] Various embodiments and variations have been described. Those skilled in the art will appreciate that certain features of these various embodiments and variations may be combined, and that other variations will occur to those skilled in the art. Figure 1 The alternative embodiment described (random selection of p arbitration circuits) is applicable to Figure 2 and Figure 3 The device 100NRT described and about Figure 2 Described device 100RT.

[0081] Finally, based on the functional indications given above, the actual implementation of the described embodiments and variants is within the capabilities of a person skilled in the art. In particular, although systems 2 and 3 configured to consider two different types of requests (NRT and RT) have been described, a person skilled in the art will be able to adapt systems 2 and 3 so that they consider processing more than two different types of requests. For example, for each additional type of request, a device 1 or a round-robin arbitration circuit is added to the system depending on whether the additional type of request can have multiple priority levels, the number of inputs to the fixed priority arbitration circuit 210, the number of outputs of the circuit 200, and the operation of the circuit 200 adapted accordingly.

[0082] Such changes, modifications and improvements are intended to be part of this disclosure and are intended to fall within the spirit and scope of the present invention. Therefore, the foregoing description is only exemplary and is not intended to limit the present invention. The present invention is limited only by the appended claims and their equivalents.

Claims

1. A device comprising: a routing circuit configured to receive a request; a plurality of first round-robin arbitration circuits, wherein the first round-robin arbitration circuits are as many as possible priority levels of the received requests; and wherein the routing circuit is configured to send each received request to a certain number of first round-robin arbitration circuits, the number of which is determined according to the priority level of each of the sent requests, The number of first round-robin arbitration circuits to which the routing circuit sends the request increases as the priority level of the request increases.

2. The apparatus of claim 1, wherein for each request, the priority level of the request is represented by an integer ranging from 1 to the number of possible priority levels of the request, and the value of the integer is higher when the priority level of the request is higher. 3 . The apparatus of claim 2 , wherein the routing circuitry sends the request to a number of first round-robin arbitration circuits equal to the integer representing the priority level of the request. 4 . The apparatus of claim 1 , wherein the routing circuit is further configured to: for each request, randomly select one of the plurality of first round-robin arbitration circuits to which the routing circuit sends the request.

5. The apparatus of claim 1 , wherein each first round-robin arbitration circuit is associated with a respective priority level of the possible priority levels, and wherein the sending by the routing circuit comprises: If the priority level of the request is greater than or equal to the priority level associated with the first round-robin arbitration circuit, the request is sent to the first round-robin arbitration circuit.

6. The apparatus of claim 1, further comprising a second round-robin arbitration circuit having inputs respectively connected to outputs of the first round-robin arbitration circuit.

7. The apparatus according to claim 6, further comprising: A third loop arbitration circuit; a fourth fixed priority arbitration circuit having a first input connected to the output of the second round-robin arbitration circuit and a second input connected to the output of the third round-robin arbitration circuit; as well as The input circuit is configured to: receive the requests, wherein each request further has a type selected from a first type and a second type; and send the first type of requests to the routing circuit and send the second type of requests to the third round-robin arbitration circuit.

8. The apparatus of claim 7, wherein the fourth fixed priority arbitration circuit is configured to, when a request is present at each of the first input and the second input of the fourth fixed priority arbitration circuit, select the request present at the second input thereof.

9. The apparatus of claim 7, wherein the number of possible priority levels for requests of the first type is different than the number of possible priority levels for requests of the second type.

10. The apparatus of claim 7, wherein the first type of request does not require real-time processing, and wherein the second type of request requires real-time processing.

11. The device of claim 7, wherein the device is implemented by one of a microcontroller, a microprocessor, or a direct memory access circuit.

12. A system comprising: First device; Second device; Each of the first device and the second device comprises: a routing circuit configured to receive a request; a plurality of first round-robin arbitration circuits, wherein the number of first round-robin arbitration circuits is as many as the possible priority levels of the received requests, and a second round-robin arbitration circuit having inputs respectively connected to the outputs of the first round-robin arbitration circuit; and wherein the routing circuit is configured to send each received request to a certain number of first round-robin arbitration circuits, the number being determined according to the priority level of each of the sent requests; a third fixed priority arbitration circuit having a first input connected to the output of the second round-robin arbitration circuit of the first device and a second input connected to the output of the second round-robin arbitration circuit of the second device; and an input circuit configured to: receive requests, wherein each request further has a type selected from a first type and a second type; and send the first type of request to the routing circuit, and send the second type of request to the routing circuit of the second device, Wherein, for each of the first device and the second device, the number of first round-robin arbitration circuits to which the routing circuit sends each request increases as the priority level of the request increases.

13. The system of claim 12, wherein when a request is present at each of the first input and the second input of the third fixed priority arbitration circuit, the third fixed priority arbitration circuit is configured to select the request present at its second input.

14. The system of claim 12, wherein the number of possible priority levels for the first type of request is different than the number of possible priority levels for the second type of request.

15. The system of claim 12, wherein the first type of request does not require real-time processing, and wherein the second type of request requires real-time processing.

16. The system of claim 12, wherein the system is implemented by one of a microcontroller, a microprocessor, or a direct memory access circuit.

17. The system of claim 12, wherein for each request, the priority level of the request is represented by an integer ranging from 1 to the number of possible priority levels of the request, and the value of the integer is higher when the priority level of the request is higher.

18. The system of claim 12, wherein for each of the first device and the second device, the routing circuitry sends the request to the number of first round-robin arbitration circuits equal to the integer representing the priority level of the request.

19. The system of claim 12, wherein for each of the first device and the second device, the routing circuit is further configured to: for each request, randomly select the first round-robin arbitration circuit among the plurality of first round-robin arbitration circuits to which the routing circuit sends the request.

20. The system of claim 12, wherein for each of the first device and the second device, each first round-robin arbitration circuit is associated with a respective priority level of the possible priority levels, and wherein the sending by the routing circuit comprises: If the priority level of the request is greater than or equal to the priority level associated with the first round-robin arbitration circuit, the request is sent to the first round-robin arbitration circuit.

21. A method comprising: receiving multiple requests with different priority levels; as well as sending the request to a first round-robin arbitration circuit via a routing circuit; wherein the first round-robin arbitration circuits have as many possible priority levels as the received requests; The sending performed by the routing circuit includes: determining a number according to said priority level of each said request; as well as sending each received request to the determined number of first round-robin arbitration circuits, The determined number increases as the priority level of the request increases.

Citation Information

Patent Citations

  • Arbitrating method and device for supporting service quality

    CN101026556A

  • Method and device for arbitrating dynamic priority

    CN101887382A

  • Cascaded round robin request selection method and apparatus

    US5832278A