WO1992015060A1 - Channel selection arbitration - Google Patents
Channel selection arbitration Download PDFInfo
- Publication number
- WO1992015060A1 WO1992015060A1 PCT/GB1991/000252 GB9100252W WO9215060A1 WO 1992015060 A1 WO1992015060 A1 WO 1992015060A1 GB 9100252 W GB9100252 W GB 9100252W WO 9215060 A1 WO9215060 A1 WO 9215060A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- channel
- channels
- requesting
- memory element
- winner
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 4
- 241001522296 Erithacus rubecula Species 0.000 abstract description 2
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/374—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a self-select method with individual priority code comparator
Definitions
- the present invention relates to a circuit and method for arbitration between channels competing for selection, and to a d ⁇ ta processing system employing such a circuit.
- DMA direct memory access
- CPU central processing unit
- a DMA controller is used to supe ' rvise and control these data transfers. Bypassing the CPU usually allows higher data transfer rates and also frees the CPU for other processing tasks.
- the DMA controller In a system in which a number of peripheral devices compete for use of a single DMA data bus, the DMA controller must arbitrate between simultaneously received DMA requests, granting one channel the u e of the. DMA data bus at any one time. This arbitration should be performed in a 'fair * way, so that each requesting device is allocated a reasonable share of the use of the data bus.
- a further complication arises when the DMA channels are arranged tn request access to the DMA data bus in groups, rather than independently. This may occur, for example, when a number of DMA channels are arranged to transmit data on a single bus or along a single cable in a packet-multiplexed manner. In this case, requests from all the channel? within the group will be received simultaneously, and all of these f . requests will be removed when any of the channels within the group is serviced. There will be a pause while the packet is transmitted, and then all of the channels in that group will request again. The DMA controller must allocate bus usage fairly within each group, as well as between groups.
- One prior art request arbitration method is the so-called 'rotating priority' or 'round robin' approach, as used in several commercially available DMA controllers such as the Motorola MC68 4 (described in 'Motorola Microprocessor, Microcontroller and Peripheral Data, Volume II', 1988 pages 3-1757 to 3-1773) and the Intel 8237A and 8257A (described in 'Intel Microsystem Components Handbook - Microprocessors and Peripherals' Volume 1, pages 2-61 to 2-88).
- each channel is assigned a priority value.
- the requesting channel having the highest priority is allowed access to the DMA data bus; that channel is then assigned the lowest possible priority, and the priority of each of the other channels is incremented. The next DMA access is given to the new highest priority requesting channel.
- an arbitration circuit for selecting a winning channel from a plurality of channel ** requesting selection, comprising: a memory element corresponding to each channel; first logic means for determining whether the memory element for any of the requesting channels is in a first state; and second logic means, responsive to a positive determination by the first logic means, for selecting as winner one of the requesting channels for which th° memory element is in said first state, and for setting the memory element corresponding to the winning channel to a second state.
- An arbitration circuit solves the , problems described above by providing a fair arbitration both within and between groups of simultaneously requesting channels.
- the memory element corresponding to that channel is set to the second state. In the broadest aspect of the invention, such a channel would then not be considered for subsequent selection.
- the arbitration circuit preferably includes third logic means, responsive to a negative determination by the first logic means, for selecting as winner one of the requesting channels, and for setting the memory element corresponding to each requesting channel except the winning channel to the first state.
- the second and third logic means could select a winning channel from the appropriate group of eligible channels by a random decision, it is preferred that this selection be made according to ⁇ predetermined order of priority between the channels. It is further desirable that the second and third logic means include means for preventing the selection of more than one requesting channel as winner.
- the arbitration circuit is arranged as ; ⁇ plurality of interlinked sub-circuits, each sub-circuit corresponding to a single channel and including the memory element corresponding to that channel. This allows the circuit to be designed and constructed in a modular manner.
- the present invention also provides a data processing system including a direct memory access (DMA) controller comprising an arbitration circuit according to the invention, and further comprising: at least one memory device; at least one data handling device; and interconnecting buses; wherein DMA transfers can be made between the memory device(s) and the data handling device(s) via the DMA controller.
- DMA direct memory access
- the invention further provides a method of selecting a winning channel from a plurality of channels requesting selection, wherein a memory element associated with each channel can be set to one of at least two states, comprising the steps of: determining whether the memory element corresponding to any of the requesting channels is in a first state; and, if so, selecting as winner one of the requesting channels for which the memory element is in the first state, and setting the memory element corresponding to the winner to a second state.
- Figure 1 shows a block diagram of an arbitration circuit as known in the prior art
- Figure 2 shows schematically the use of the rotating priority scheme in a system comprising four channels independently requesting selection
- Figure 3 shows schematically the use of the rotating priority scheme in a system comprising two groups of two channels requesting selection
- FIG. 4 shows schematically the operation of an arbitration circuit according to the invention
- Figure 5 shows a logic circuit diagram for one channel of an arbitration circuit according to the invention.
- Figure 6 shows a computer system in which an arbitration circuit according to the invention is incorporated in a DMA control device.
- an arbitration circuit 100 receives selection requests 110 from a number of channels (not shown) .
- the arbitration circuit 100 selects a channel to be serviced (the 'winner') and indicates the identity of the winner on output 120.
- a pulse is applied to the update input 130 of the arbitration circuit, to indicate that an arbitration cycle is complete and the arbitration circuit should now evaluate the next winning channel according to its current requests IIP.
- the winners in consecutive cycles should be selected in a fair manner, so that over a large number of cycles each requesting channel is the winner for a reasonable number of cycles.
- Figure 2 shows the use of the prior art 'rotating priority' system in the case of, four independently requesting channels 1,2,3 and 4.
- an 'R' indicates that that channel is currently requesting selection.
- the highest priority channel is shown at the top of the figure.
- cycle (a) the channels are assigned arbitrary priority values, with channel 1 having the highest initial priority.
- cycle (a) channel 1 is the highest priority of those requesting service, and so becomes the winner.
- cycle (b) the winner from cycle (a) becomes the lowest priority channel, and the highest priority requesting channel (the winner) is channel 3.
- cycle (c) the priorities rotate so that channel 4 is the highest priority requesting channel, and so on.
- Figure 3 shows schematically the use of the rotating priority scheme in a system comprising two groups of two channels requesting selection.
- channels ] and 2 request together, and channels 3 and 4 request together.
- this arbitration scheme is shown in figure 4, in which arbitration between channels numbered 1 to 4 is considered.
- the channels are organised as two groups of two (1,2); (3,4).
- An 'R' by the channel number indicates that that channel is currently requesting service - that is to say, its REQUESTING bit is set.
- a 'T 1 indicates that the TURNJTAKEN latch for that channel is set. Seven arbitration cycles, (a) to (g), are shown.
- the PENDING bit is a logical 'l' for each channel, and an arbitrary channel (in this case channel number 1, the lowest numbered channel) is selected for servicing. TURNJTAKEN for channel 1 is then set.
- channels 3 and 4 are requesting, and again the lowest numbered channel (channel 3) is selected because, at the time of selection, neither has its TURNJTAKEN latch set. As-a result of its successful selection channel 3 then has its TURNJTAKEN latch set.
- channel 2 is the only PENDING channel, and is therefore the winner. Its TURNJTAKEN latch is then set.
- channels 1 and 2 are REQUESTING, so both have a PENDING value of 1 by this new, temporary, definition. Accordingly, channel 1 is selected as the lowest numbered of the PENDING channels.
- TURNJTAKEN is reset for all REQUESTING channels, but in fact is set again for channel 1 to show that this channel has been the winner in that cycle.
- cycle (f) The situation in cycle (f) is similar, in which both channels 3 and 4 are REQUESTING, but both have their TURNJTAKEN latches set. Similar reasoning to that used in connection with cycle (e) results in channel 3 being selected.
- cycle (g) channels 1 and 2 are REQUESTING. According to the original definition of PENDING,
- the PENDING bit is set for channel 2. It is therefore not necessary to rely on the arrangements in the third step of the scheme above, and channel 2 is selected in the normal manner.
- Figure 5 shows a logic circuit diagram for one channel 200 of an arbitration circuit according to the invention. The circuitry shown between the dashed lines is repeated for each channel. Requests for selection are received as a logical 'l' on the REQUEST input 210, and an indication that that channel is the winner of the arbitration during a particular cycle is provided by a logical 'l' on the WON output 2.20.
- the TURNJTAKEN latch 230 is a set-dominant set-reset (RS) latch, and is provided with suitable clocking pulses (not shown) from the UPDATE input 130 in figure 1. Its output 260 represents the value TURNJTAKEN.
- RS set-dominant set-reset
- the value PENDING is determined by AND gate 340, the output of which is equal to
- the output from gate 300 and the equivalent gates in all of the other channels form inputs to NOR gate 310.
- the output of NOR gate 310 is a logical 'l' only when all of its inputs are zero - that is, when no REQUESTING channel has its PENDING bit set. Under these circumstances only, the TURNJTAKEN latch is overidden by means of a logical 'l' applied to OR gate 330.
- PENDING is temporarily redefined as being equal to REQUESTING. Whichever definition is in force, PENDING is provided by gate 340.
- PENDING One of the channels for which PENDING is set must now be selected as winner.
- the lowest numbered PENDING channel was chosen as the winner.
- gates 350 and 360 are used to achieve this predetermined but arbitrary selection between PENDING channels.
- Gate 350 derives the logical value
- gates 350 and 360 are therefore as follows:
- the output WON 220 for each channel is also connected to the S
- FIG. 6 shows a computer system in which an arbitration circuit according to the invention is incorporated in a DMA control device 500.
- the particular system shown is suitable for use as the control circuitry for a data storage subsystem comprising four DASDs or disk drives 610.
- DMA transfers are required in both directions between the DASDs 610 and the buffer DRAM 540, and also in both directions between the buffer DRAM 540 and the adapters 620 (through which the storage subsystem communicates with its host (controlling) data processor).
- the device 500 performs the functions of a DMA controller and, in this case, a general system controller, operating in this latter respect under the -control of program code stored in the EPROM 520 and static RAM 510, both of which are connected to controller 500 via the CS (Control Store) bus 530.
- CS Control Store
- each of the DASDs 610 includes 2 DMA channels, which can make requests as groups, the adapter has 4 DMA channels, and the DMA controller 500 has 3 internal DMA channels for internal transfers.
- Each of the 16 non-internal DMA channels can make requests via the DMA bus 630 and, if selected for a particular cycle, transfers a small packet of data via bus 630 and controller link chips 600.
Abstract
A system for arbitration between competing channels in, for example, a direct memory access (DMA) controller is described. The system arbitrates much more fairly than in the traditional 'round robin' approach, especially when channel requests are not independent but instead are made and withdrawn simultaneously by groups of channels. A 'turn-taken' latch is defined, and is consulted when a channel selection is made. This latch is set when a channel is serviced, and priority is given to requesting channel for which the latch is not set. When the latch is set for all of the requesting channels, an arbitrary winner is selected and the latch is reset for all except the winning channel.
Description
Channel Selection Arbitration
^ The present invention relates to a circuit and method for arbitration between channels competing for selection, and to a døta processing system employing such a circuit.
It is common for electronic devices to be connected to a number of peripheral devices, or channels, and to select one channel for servicing at any one time. An example of this is found in the field of direct memory access (DMA) data transfer in a computer system, in which data i-. transferred by a number of different 'slave' devices, or channels, primarily to and from the main memory, without using the central processing unit (CPU). Typically a DMA controller is used to supe'rvise and control these data transfers. Bypassing the CPU usually allows higher data transfer rates and also frees the CPU for other processing tasks.
In a system in which a number of peripheral devices compete for use of a single DMA data bus, the DMA controller must arbitrate between simultaneously received DMA requests, granting one channel the u e of the. DMA data bus at any one time. This arbitration should be performed in a 'fair* way, so that each requesting device is allocated a reasonable share of the use of the data bus.
A further complication arises when the DMA channels are arranged tn request access to the DMA data bus in groups, rather than independently. This may occur, for example, when a number of DMA channels are arranged to transmit data on a single bus or along a single cable in a packet-multiplexed manner. In this case, requests from all the channel? within the group will be received simultaneously, and all of these f. requests will be removed when any of the channels within the group is serviced. There will be a pause while the packet is transmitted, and then all of the channels in that group will request again. The DMA controller must allocate bus usage fairly within each group, as well as
between groups.
One prior art request arbitration method is the so-called 'rotating priority' or 'round robin' approach, as used in several commercially available DMA controllers such as the Motorola MC68 4 (described in 'Motorola Microprocessor, Microcontroller and Peripheral Data, Volume II', 1988 pages 3-1757 to 3-1773) and the Intel 8237A and 8257A (described in 'Intel Microsystem Components Handbook - Microprocessors and Peripherals' Volume 1, pages 2-61 to 2-88). In this system each channel is assigned a priority value. At any time the requesting channel having the highest priority is allowed access to the DMA data bus; that channel is then assigned the lowest possible priority, and the priority of each of the other channels is incremented. The next DMA access is given to the new highest priority requesting channel.
The rotating priority scheme works well when the requesting channels are all independent, but does not provide fair arbitration between competing requests when the channels are organised into groups. In this latter situation, requests by some of the channels may never be serviced. This problem will be described further below with reference L.> certain of the accompanying drawings.
Another prior art arbitration scheme is described in GB 2202.977, jπ which the channels transmit a priority value to a DMA controller on a separate arbitration bus. The controller then compares this value with one stored within the controller before deciding whether to grant DMA access to that channel.
According to the present invention there is provided an arbitration circuit for selecting a winning channel from a plurality of channel** requesting selection, comprising: a memory element corresponding to each channel; first logic means for determining whether the memory element for any of the requesting channels is in a first state; and second logic means, responsive to a positive determination by the first logic means, for selecting as winner one of the requesting channels for which th°
memory element is in said first state, and for setting the memory element corresponding to the winning channel to a second state.
An arbitration circuit according to the invention solves the , problems described above by providing a fair arbitration both within and between groups of simultaneously requesting channels. When a particular channel is selected, or serviced, the memory element corresponding to that channel is set to the second state. In the broadest aspect of the invention, such a channel would then not be considered for subsequent selection.
In order that a selection can be made when all of the requesting channels have been serviced, the arbitration circuit preferably includes third logic means, responsive to a negative determination by the first logic means, for selecting as winner one of the requesting channels, and for setting the memory element corresponding to each requesting channel except the winning channel to the first state.
Although the second and third logic means could select a winning channel from the appropriate group of eligible channels by a random decision, it is preferred that this selection be made according to ~ predetermined order of priority between the channels. It is further desirable that the second and third logic means include means for preventing the selection of more than one requesting channel as winner.
In a preferred embodiment, the arbitration circuit is arranged as ;\ plurality of interlinked sub-circuits, each sub-circuit corresponding to a single channel and including the memory element corresponding to that channel. This allows the circuit to be designed and constructed in a modular manner.
< Although any sort of register or latch could be used, it is preferred that the memory element is a set-dominant set-reset (P..!) latch.
Viewed from a second aspect the present invention also provides a data processing system including a direct memory access (DMA) controller comprising an arbitration circuit according to the invention, and further comprising: at least one memory device; at least one data handling device; and interconnecting buses; wherein DMA transfers can be made between the memory device(s) and the data handling device(s) via the DMA controller.
Viewed from a third aspect the invention further provides a method of selecting a winning channel from a plurality of channels requesting selection, wherein a memory element associated with each channel can be set to one of at least two states, comprising the steps of: determining whether the memory element corresponding to any of the requesting channels is in a first state; and, if so, selecting as winner one of the requesting channels for which the memory element is in the first state, and setting the memory element corresponding to the winner to a second state.
In order that the invention may be fully understood a preferred embodiment thereof will now be described, by way of example only, with reference to the accompanying drawings in which:
Figure 1 shows a block diagram of an arbitration circuit as known in the prior art;
Figure 2 shows schematically the use of the rotating priority scheme in a system comprising four channels independently requesting selection;
Figure 3 shows schematically the use of the rotating priority scheme in a system comprising two groups of two channels requesting selection;
Figure 4 shows schematically the operation of an arbitration circuit according to the invention;
Figure 5 shows a logic circuit diagram for one channel of an arbitration circuit according to the invention; and
Figure 6 shows a computer system in which an arbitration circuit according to the invention is incorporated in a DMA control device.
Referring now to figure 1 an arbitration circuit 100, as known in the prior art, receives selection requests 110 from a number of channels (not shown) . The arbitration circuit 100 selects a channel to be serviced (the 'winner') and indicates the identity of the winner on output 120. When the winning channel is serviced a pulse is applied to the update input 130 of the arbitration circuit, to indicate that an arbitration cycle is complete and the arbitration circuit should now evaluate the next winning channel according to its current requests IIP.
When more than one request input 110 is active, the winners in
consecutive cycles should be selected in a fair manner, so that over a large number of cycles each requesting channel is the winner for a reasonable number of cycles.
Figure 2 shows the use of the prior art 'rotating priority' system in the case of, four independently requesting channels 1,2,3 and 4. In the figure, an 'R' indicates that that channel is currently requesting selection. In each cycle, the highest priority channel is shown at the top of the figure. At the beginning of the first cycle, cycle (a), the channels are assigned arbitrary priority values, with channel 1 having the highest initial priority.
Throughout figure 2, only three of the channels 1,3 and 4 are shown making requests to the arbitration circuit. Accordingly in cycle (a) channel 1 is the highest priority of those requesting service, and so becomes the winner. In cycle (b) the winner from cycle (a) becomes the lowest priority channel, and the highest priority requesting channel (the winner) is channel 3. Similarly, in cycle (c) the priorities rotate so that channel 4 is the highest priority requesting channel, and so on.
In the situation shown in figure 2, the rotating priority arbitration scheme provides a fair arbitration between the requesting channels, in that each channel in turn becomes the highest priority channel, and therefore the winner for that cycle. However the same scheme applied to channels organised in groups does not lead to fair arbitration; this will be demonstrated below with reference to figure 3
Figure 3 shows schematically the use of the rotating priority scheme in a system comprising two groups of two channels requesting selection. In particular, channels ] and 2 request together, and channels 3 and 4 request together. When an individual channel is serviced, all members of its group stop requesting, and reissue request-! in time for the next cycle.
As in figure 2, in figure 3 the channels have been assigned an
arbitrary order of priority at the start of cycle (a). In that cycle both groups of channels make requests, and channel 1 is serviced a~ the highest priority requesting channel. In time for cycle (b), channel 1 is assigned the lowest priority, while the priorities of the other channels are all incremented. In cycle (b) the group comprising channels 3 and 4 makes a request, and channel 3 becomes the winner. In cycle (c) the group comprising channels 1 and 2 requests, and channel 1 is made the winner. In cycle (d) channel 3 is again the winner.
It will be seen that in the situation shown in figure 3, in which the channel groups make requests on alternate cycles, the arbitration is far from being fair. In the example shown, while channels 1 and 3 are regularly serviced, channels 2 and 4 are never serviced.
An arbitration scheme according to the invention will now be described, with reference to figures 4 and 5. The basis of the scheme is a 'turn-taken' latch or memory element (230, figure 5) corresponding to each channel, which is clocked at each arbitration cycle. From the state* of this latch a fair arbitration decision can be made to decide which of the requesting channels should next be serviced.
Arbitration proceeds as follows:-
1) For each channel, define a binary control value:
PENDING = REQUESTING AND (NOT TURN_TAKEN)
2) Select one of the channels for which PENDING is set (for example, the lowest numbered channel) and service it.
Set TURN TAKEN latch for the channel serviced.
3) If no PENDING bits are set, but one or more channels are requesting (in other words, each requesting channel has had a turn), then:
reset TURN TAKEN for each channel which is REQUESTING; and
redefine PENDING = REQUESTING
The operation of this arbitration scheme is shown in figure 4, in which arbitration between channels numbered 1 to 4 is considered. In this figure the channels are organised as two groups of two (1,2); (3,4). An 'R' by the channel number indicates that that channel is currently requesting service - that is to say, its REQUESTING bit is set. Similarly, a 'T1 indicates that the TURNJTAKEN latch for that channel is set. Seven arbitration cycles, (a) to (g), are shown.
Referring to figure 4, all of the channels are requesting in cycle (a), but none of them has the TURNJTAKEN latch set. Therefore the PENDING bit is a logical 'l' for each channel, and an arbitrary channel (in this case channel number 1, the lowest numbered channel) is selected for servicing. TURNJTAKEN for channel 1 is then set.
In cycle (b) channels 3 and 4 are requesting, and again the lowest numbered channel (channel 3) is selected because, at the time of selection, neither has its TURNJTAKEN latch set. As-a result of its successful selection channel 3 then has its TURNJTAKEN latch set.
In cycle (c) channels 1 and 2 again make requests. From above, the binary value PENDING is calculated:
PENDING = REQUESTING AND (NOT TURNJTAKEN)
= 1 AND 0 = 0 for channel 1;
= 1 AND 1 = 1 for channel 2; and
= 0 for channels 3 and 4 (for which REQUESTING - 0)
Therefore channel 2 is the only PENDING channel, and is therefore
the winner. Its TURNJTAKEN latch is then set.
The situation is similar in cycle (d) in which channel 4 is th° only requesting channel for which PENDING is a logical 'l', and is therefore.selected.
So far, in cycles (a) to (d), it has been possible to select a REQUESTING channel for which TURNJTAKEN is not set - in other words, a channel for which the value
PENDING = REQUESTING AND (NOT TURNJTAKEN)
= *1\
However, this is no longer possible in cycle (e), so the third step from the scheme above is required:
3) If no PENDING bits are set, but one or more channels are reσuesting (in other words, each requesting channel has had a turn), then:
reset TURNJTAKEN for each channel which is REQUESTING; and
redefine PENDING = REQUESTING
Applying this step to cycle (e), channels 1 and 2 are REQUESTING, so both have a PENDING value of 1 by this new, temporary, definition. Accordingly, channel 1 is selected as the lowest numbered of the PENDING channels. TURNJTAKEN is reset for all REQUESTING channels, but in fact is set again for channel 1 to show that this channel has been the winner in that cycle.
The situation in cycle (f) is similar, in which both channels 3 and 4 are REQUESTING, but both have their TURNJTAKEN latches set. Similar reasoning to that used in connection with cycle (e) results in channel 3 being selected.
In the final example, cycle (g), channels 1 and 2 are REQUESTING. According to the original definition of PENDING,
PENDING = REQUESTING AND (NOT TURNJTAKEN),
the PENDING bit is set for channel 2. It is therefore not necessary to rely on the arrangements in the third step of the scheme above, and channel 2 is selected in the normal manner.
Figure 5 shows a logic circuit diagram for one channel 200 of an arbitration circuit according to the invention. The circuitry shown between the dashed lines is repeated for each channel. Requests for selection are received as a logical 'l' on the REQUEST input 210, and an indication that that channel is the winner of the arbitration during a particular cycle is provided by a logical 'l' on the WON output 2.20.
The TURNJTAKEN latch 230 is a set-dominant set-reset (RS) latch, and is provided with suitable clocking pulses (not shown) from the UPDATE input 130 in figure 1. Its output 260 represents the value TURNJTAKEN.
The value PENDING is determined by AND gate 340, the output of which is equal to
REQUESTING AND (NOT TURNJTAKEN)
except under circumstances when no REQUESTING channels have their PENDING bit set (see below and step (3) above). It should be noted that an open circle on the input or output of ~ logic gate in figure 5 denotes a logical inversion of that input or output.
Logic gate 300 also produces a logical 'l' as its output whe.n REQUESTING is set but TURNJTAKEN is not (that is, PENDING = ' l' according to the first definition). The output from gate 300 and the equivalent gates in all of the other channels form inputs to NOR gate
310. Accordingly, the output of NOR gate 310 is a logical 'l' only when all of its inputs are zero - that is, when no REQUESTING channel has its PENDING bit set. Under these circumstances only, the TURNJTAKEN latch is overidden by means of a logical 'l' applied to OR gate 330. This corresponds to the third step in the scheme described above, in which PENDING is temporarily redefined as being equal to REQUESTING. Also, a logical 'l' is applied (via AND gate 320) to the R (reset) input 240 of the latch 230 for each REQUESTING channel. These latches will be reset, on the next clock (UPDATE) pulse applied.
Returning to gate 340, it will now be seen that the output of this gate represents the value PENDING according to either of its two definitions given above. That is to say, PENDING normally equals
REQUESTING AND (NOT TURNJTAKEN),
but when no REQUESTING channel has its PENDING bit set according to this first definition, PENDING is temporarily redefined as being equal to REQUESTING. Whichever definition is in force, PENDING is provided by gate 340.
One of the channels for which PENDING is set must now be selected as winner. In the example shown in figure 4, the lowest numbered PENDING channel was chosen as the winner. In the implementation shown in figure 5, gates 350 and 360 are used to achieve this predetermined but arbitrary selection between PENDING channels.
Gate 350 derives the logical value
WON = PENDING AND (NOT PREVIOUS),
where PREVIOUS is the input on line 370. It will therefore be clear that in order for a particular PENDING channel to be selected as the winner, the value of PREVIOUS received by that channel on input 370 must be a logical O' . For the particular winning channel selected, the output
NEXT on output 380 will always be a logical 'l'. Similarly, for a channel which is not PENDING, the output NEXT 380 will equal (PREVIOUS OR O1) = PREVIOUS. The output NEXT 380 for each channel (except the last) is connected to the input PREVIOUS 370 for the subsequent channel.
The effect of gates 350 and 360 is therefore as follows:
a) For a channel to win, its PREVIOUS input 370 must be a logical '0
b) If any channel wins then its output NEXT 380 to the next channel will be a logical 'l';
c) If the PREVIOUS input to a channel is a logical 'l' then that channel's NEXT output 380 will automatically be a logical 'l'.
Given that a channel must have its PENDING bit set (by either of the above definitions) in order to be the winner, it will now be clear that the first PENDING channel in the chain of NEXT 380 to PREVIOUS 370 connections will be selected as the winner. Any channels further on in the chain will receive a logical 'l' on their PREVIOUS input 370, and will therefore be prevented from being the winner. As a result, in this embodiment, there can only be one winner.
The output WON 220 for each channel is also connected to the S
(set) input 250 of latch 230. The effect of this is that the TURNJTAKEN latch is always set for the winning channel when the clock or UPDATE pulse is applied.
Figure 6 shows a computer system in which an arbitration circuit according to the invention is incorporated in a DMA control device 500. The particular system shown is suitable for use as the control circuitry for a data storage subsystem comprising four DASDs or disk drives 610. In this system DMA transfers are required in both directions between the DASDs 610 and the buffer DRAM 540, and also in both directions between the buffer DRAM 540 and the adapters 620 (through which the storage
subsystem communicates with its host (controlling) data processor).
The device 500 performs the functions of a DMA controller and, in this case, a general system controller, operating in this latter respect under the -control of program code stored in the EPROM 520 and static RAM 510, both of which are connected to controller 500 via the CS (Control Store) bus 530.
The need for an arbitration circuit in the DMA controller 500 arises because each of the DASDs 610 includes 2 DMA channels, which can make requests as groups, the adapter has 4 DMA channels, and the DMA controller 500 has 3 internal DMA channels for internal transfers. Each of the 16 non-internal DMA channels can make requests via the DMA bus 630 and, if selected for a particular cycle, transfers a small packet of data via bus 630 and controller link chips 600.
Although the invention has been described with reference to an embodiment employing discrete logic gates, it will be clear that integrated circuit embodiments could easily be used. In addition, the invention could be implemented as a general purpose logic device, such as a microprocessor, under control of a computer program.
Claims
1. An arbitration circuit for selecting a winning channel from a plurality -of channels requesting selection, comprising:
a memory element (230) corresponding to each channel;
first logic means (300, 310, 330, 340) for determining whether the memory element for any of the requesting channels is in a first state; and
second logic means (350, 360), responsive to a positive determination by the first logic means, for selecting as winner one of the requesting channels for which the memory element (230) is in said first state, and for setting the memory element corresponding to the winning channel to a second state.
2. An arbitration circuit as claimed in claim 1, further comprising:
third logic means (330, 340, 350, 360), responsive to a negative determination by the first logic means, for selecting as winner one of the requesting channels, and for setting the memory element corresponding to each requesting channel except the winning channel to the first state.
3. An arbitration circuit as claimed in claim 2, in which the second and third logic means select the winning channel according to a predetermined order of priority between the channels.
4. An arbitration circuit as claimed in claim 3, in which the second and third logic means include means (350, 360) for preventing the. selection of more than one requesting channel as winner.
5. An arbitration circuit as claimed in any preceding claim, said circuit being arranged as a plurality of interlinked sub-circuits (200) wherein each sub-circuit (200) corresponds to a single channel and includes the memory element (230) corresponding to that channel.
6. An arbitration circuit as claimed in any preceding claim, in which the memory element (230) is a set-dominant set-reset (RS) latch.
7. A data processing system including a direct memory access (DMA) controller (500) comprising an arbitration circuit as claimed in any preceding claim, the system further comprising:
at least one memory device (540);
at least one data handling device (600, 610, 620); and
at least one interconnecting bus (630, 640);
wherein DMA transfers can be made between the memory device(s. (540) and channels in the data handling device(s) (600, 610, 620) via the DMA controller (500).
8. A method of selecting a winning channel from a plurality of channels requesting selection, wherein a memory element associated with each channel can be set to one of at least two states, comprising the steps of:
determining whether the memory element corresponding to any of the requesting channels is in a first state; and, if so, selecting as winner one of the requesting channels for which the memory element is in the first state, and setting the memory element corresponding to the winner to a second state.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP91904578A EP0524940A1 (en) | 1991-02-19 | 1991-02-19 | Channel selection arbitration |
PCT/GB1991/000252 WO1992015060A1 (en) | 1991-02-19 | 1991-02-19 | Channel selection arbitration |
JP3504785A JPH0727507B2 (en) | 1991-02-19 | 1991-02-19 | Channel selection arbitration |
US07/934,549 US5450591A (en) | 1991-02-19 | 1991-02-19 | Channel selection arbitration |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/GB1991/000252 WO1992015060A1 (en) | 1991-02-19 | 1991-02-19 | Channel selection arbitration |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1992015060A1 true WO1992015060A1 (en) | 1992-09-03 |
Family
ID=10688041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/GB1991/000252 WO1992015060A1 (en) | 1991-02-19 | 1991-02-19 | Channel selection arbitration |
Country Status (4)
Country | Link |
---|---|
US (1) | US5450591A (en) |
EP (1) | EP0524940A1 (en) |
JP (1) | JPH0727507B2 (en) |
WO (1) | WO1992015060A1 (en) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3320233B2 (en) * | 1995-02-06 | 2002-09-03 | キヤノン株式会社 | Recording device |
US5781799A (en) * | 1995-09-29 | 1998-07-14 | Cirrus Logic, Inc. | DMA controller arrangement having plurality of DMA controllers and buffer pool having plurality of buffers accessible to each of the channels of the controllers |
US5765023A (en) * | 1995-09-29 | 1998-06-09 | Cirrus Logic, Inc. | DMA controller having multiple channels and buffer pool having plurality of buffers accessible to each channel for buffering data transferred to and from host computer |
US6076132A (en) * | 1997-05-28 | 2000-06-13 | Integrated Memory Logic, Inc. | Arbitration method and circuit to increase access without increasing latency |
US6092137A (en) * | 1997-11-26 | 2000-07-18 | Industrial Technology Research Institute | Fair data bus arbitration system which assigns adjustable priority values to competing sources |
US6163827A (en) * | 1997-12-16 | 2000-12-19 | Network Equipment Technologies, Inc. | Method and apparatus for round-robin flash channel arbitration |
US6044414A (en) * | 1998-02-17 | 2000-03-28 | Advanced Micro Devices, Inc. | System for preventing a DMA controller from evaluating its DRQ input once a DMA operation has started until the DRQ input has been updated |
US6615291B1 (en) | 1999-03-08 | 2003-09-02 | Minolta Co., Ltd. | DMA controller with dynamically variable access priority |
US10606791B1 (en) | 2019-01-18 | 2020-03-31 | International Business Machines Corporation | Adaptation of a bus bridge transfer protocol |
CN114880258A (en) * | 2022-05-26 | 2022-08-09 | 重庆长安汽车股份有限公司 | Intelligent driving interaction arbitration method, system, vehicle and storage medium |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4096569A (en) * | 1976-12-27 | 1978-06-20 | Honeywell Information Systems Inc. | Data processing system having distributed priority network with logic for deactivating information transfer requests |
US4130864A (en) * | 1976-10-29 | 1978-12-19 | Westinghouse Electric Corp. | Priority selection circuit for multiported central functional unit with automatic priority reduction on excessive port request |
EP0288607A1 (en) * | 1987-03-27 | 1988-11-02 | International Business Machines Corporation | Computer system having a multi-channel direct memory access arbitration |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5541039A (en) * | 1978-09-16 | 1980-03-22 | Nippon Telegr & Teleph Corp <Ntt> | Competition arrangement system |
US4745548A (en) * | 1984-02-17 | 1988-05-17 | American Telephone And Telegraph Company, At&T Bell Laboratories | Decentralized bus arbitration using distributed arbiters having circuitry for latching lockout signals gated from higher priority arbiters |
DE3480303D1 (en) * | 1984-06-29 | 1989-11-30 | Ibm | Arbitration device for access to a shared resource |
US4612542A (en) * | 1984-12-20 | 1986-09-16 | Honeywell Inc. | Apparatus for arbitrating between a plurality of requestor elements |
US4760515A (en) * | 1985-10-28 | 1988-07-26 | International Business Machines Corporation | Arbitration apparatus for determining priority of access to a shared bus on a rotating priority basis |
US5179705A (en) * | 1988-03-23 | 1993-01-12 | Dupont Pixel Systems, Ltd. | Asynchronous arbiter state machine for arbitrating between operating devices requesting access to a shared resource |
US4998030A (en) * | 1989-03-15 | 1991-03-05 | Vlsi Technology, Inc. | Circuit to arbitrate multiple requests for memory access |
-
1991
- 1991-02-19 WO PCT/GB1991/000252 patent/WO1992015060A1/en not_active Application Discontinuation
- 1991-02-19 US US07/934,549 patent/US5450591A/en not_active Expired - Fee Related
- 1991-02-19 JP JP3504785A patent/JPH0727507B2/en not_active Expired - Lifetime
- 1991-02-19 EP EP91904578A patent/EP0524940A1/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4130864A (en) * | 1976-10-29 | 1978-12-19 | Westinghouse Electric Corp. | Priority selection circuit for multiported central functional unit with automatic priority reduction on excessive port request |
US4096569A (en) * | 1976-12-27 | 1978-06-20 | Honeywell Information Systems Inc. | Data processing system having distributed priority network with logic for deactivating information transfer requests |
EP0288607A1 (en) * | 1987-03-27 | 1988-11-02 | International Business Machines Corporation | Computer system having a multi-channel direct memory access arbitration |
Also Published As
Publication number | Publication date |
---|---|
JPH05504014A (en) | 1993-06-24 |
JPH0727507B2 (en) | 1995-03-29 |
US5450591A (en) | 1995-09-12 |
EP0524940A1 (en) | 1993-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5388228A (en) | Computer system having dynamically programmable linear/fairness priority arbitration scheme | |
US4130864A (en) | Priority selection circuit for multiported central functional unit with automatic priority reduction on excessive port request | |
US5996037A (en) | System and method for arbitrating multi-function access to a system bus | |
US4779089A (en) | Bus arbitration controller | |
EP0867814B1 (en) | System and method for controlling a bus | |
JP2613005B2 (en) | Method of switching device arbitration priority level, and adapter and system for performing multi-priority arbitration | |
US4972313A (en) | Bus access control for a multi-host system using successively decremented arbitration delay periods to allocate bus access among the hosts | |
US4621342A (en) | Arbitration circuitry for deciding access requests from a multiplicity of components | |
US4901234A (en) | Computer system having programmable DMA control | |
US5546548A (en) | Arbiter and arbitration process for a dynamic and flexible prioritization | |
US4463445A (en) | Circuitry for allocating access to a demand-shared bus | |
US4633394A (en) | Distributed arbitration for multiple processors | |
AU542508B2 (en) | Solar radiation reflector | |
CA1193689A (en) | Circuitry for allocating access to a demand-shared bus | |
US5884051A (en) | System, methods and computer program products for flexibly controlling bus access based on fixed and dynamic priorities | |
US5301283A (en) | Dynamic arbitration for system bus control in multiprocessor data processing system | |
GB2114788A (en) | Shared facility allocation system | |
US4374413A (en) | Arbitration controller providing for access of a common resource by a plurality of central processing units | |
US6996684B2 (en) | Multiple-grant controller with parallel arbitration mechanism and related method | |
EP0550147A1 (en) | Method and apparatus for arbitration based on the availability of resources | |
WO1998009224A3 (en) | Resource sharing and device identification in computer systems | |
US5450591A (en) | Channel selection arbitration | |
US3832689A (en) | Data-transmission apparatus | |
AU611964B2 (en) | Inter and intra priority resolution network for an asynchronous bus system | |
US5088025A (en) | Input/output processor control system with a plurality of staging buffers and data buffers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): JP US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FR GB GR IT LU NL SE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1991904578 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 1991904578 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1991904578 Country of ref document: EP |