Bus arbitration circuit responsive to latency of access requests and the state of the memory circuit
First Claim
1. Data processing apparatus comprising:
- (i) a memory circuit;
(ii) a data bus coupled to said memory circuit;
(iii) a plurality of bus master circuits coupled to said data bus for issuing memory access requests to said memory circuit via said data bus;
(iv) a bus arbitration circuit for controlling in accordance with a hierarchy of bus master priorities which bus master is granted priority in gaining use of said data bus when more two or more bus masters issue temporally overlapping memory access requests;
wherein (v) said bus arbitration circuit is responsive to a determination of latency of pending memory access requests calculated in dependence upon a current state of said memory circuit to re-arbitrate priority in gaining use of said data bus between bus masters such that a first bus master circuit having a first pending memory access request and a lower position in said hierarchy than a second bus master circuit having a second pending memory access request may gain use of said data bus ahead of said second bus master circuit if said first memory access request has a lower latency than said second memory access request.
0 Assignments
0 Petitions
Accused Products
Abstract
A data processing system 2 is described including a cache memory 8 and a plurality of DRAM banks 16, 18, 20, 22. A victim select circuit 32 within a cache controller 10 selects victim cache storage lines 28 upon a cache miss such that unlocked cache storage lines are selected in preference to locked cache storage lines, non-dirty cache storage lines are selected in preference to dirty cache storage lines, and cache storage lines requiring a write back to a non-busy DRAM bank are selected in preference to cached storage lines requiring a write back to a busy DRAM storage bank. A DRAM controller 24 is provided that continuously performs a background processing operation whereby dirty cache storage lines 28 within a cache memory 8 are written back to their respective DRAM banks 16, 18, 20, 22 when these are not busy performing other operations and when the cache storage line has a least recently used value below a certain threshold. A bus arbitration circuit 12 is provided that re-arbitrates bus master priorities in dependence upon determined latencies for respective memory access requests. As an example, if a high priority memory access request results a cache miss, with a lower priority memory access request resulting in a cache hit, then the lower priority memory access request will be re-arbitrated to be performed ahead of the normally higher priority memory access request and may be finished before that higher priority memory access request starts to return data words to a data bus 14.
55 Citations
13 Claims
-
1. Data processing apparatus comprising:
-
(i) a memory circuit;
(ii) a data bus coupled to said memory circuit;
(iii) a plurality of bus master circuits coupled to said data bus for issuing memory access requests to said memory circuit via said data bus;
(iv) a bus arbitration circuit for controlling in accordance with a hierarchy of bus master priorities which bus master is granted priority in gaining use of said data bus when more two or more bus masters issue temporally overlapping memory access requests;
wherein(v) said bus arbitration circuit is responsive to a determination of latency of pending memory access requests calculated in dependence upon a current state of said memory circuit to re-arbitrate priority in gaining use of said data bus between bus masters such that a first bus master circuit having a first pending memory access request and a lower position in said hierarchy than a second bus master circuit having a second pending memory access request may gain use of said data bus ahead of said second bus master circuit if said first memory access request has a lower latency than said second memory access request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A data processing method comprising the steps of:
-
(i) issuing memory access requests from a plurality of bus master circuits to a memory circuit via a data bus;
(ii) controlling, in accordance with a hierarchy of bus master priorities, which bus master is granted priority in gaining use of said data bus when more two or more bus masters issue temporally overlapping memory access requests;
wherein (iii) in response to a determination of latency of pending memory access requests calculated in dependence upon a current state of said memory circuit, priority in gaining use of said data bus between bus masters is re-arbitrated such that a first bus master circuit having a first pending memory access request and a lower position in said hierarchy than a second bus master circuit having a second pending memory access request may gain use of said data bus ahead of said second bus master circuit if said first memory access request has a lower latency than said second memory access request.
-
-
12. Data processing apparatus comprising:
-
(i) a memory circuit;
(ii) a data bus coupled to said memory circuit;
(iii) a plurality of bus master circuits coupled to said data bus for issuing memory access requests to said memory circuit via said data bus;
(iv) a bus arbitration circuit for controlling in accordance with a hierarchy of bus master priorities which bus master is granted priority in gaining use of said data bus when two or more bus masters issue temporally overlapping memory access requests;
wherein(v) said bus arbitration circuit is responsive to a determination of latency of pending memory access requests calculated in dependence upon a current state of said memory circuit to re-arbitrate priority in gaining use of said data bus between bus masters such that a first bus master circuit having a first pending memory access request and a lower position in said hierarchy than a second bus master circuit having a second pending memory access request may gain use of said data bus ahead of said second bus master circuit if said first memory access request has a lower latency than said second memory access request;
wherein said first bus master circuit is given use of said data bus ahead of said second bus master circuit when said first memory access request has a latency such that it may be completed before said second memory access request is ready to transfer data words via said data bus.
-
-
13. A data processing method comprising the steps of:
-
(i) issuing memory access requests from a plurality of bus master circuits to a memory circuit via a data bus;
(ii) controlling, in accordance with a hierarchy of bus master priorities, which bus master is granted priority in gaining use of said data bus when two or more bus masters issue temporally overlapping memory access requests;
wherein(iii) in response to a determination of latency of pending memory access requests calculated in dependence upon a current state of said memory circuit, priority in gaining use of said data bus between bus masters is re-arbitrated such that a first bus master circuit having a first pending memory access request and a lower position in said hierarchy than a second bus master circuit having a second pending memory access request may gain use of said data bus ahead of said second bus master circuit if said first memory access request has a lower latency than said second memory access request; and
(iv) giving said first bus master circuit use of said data bus ahead of said second bus master circuit when said first memory access request has a latency such that it may be completed before said second memory access request is ready to transfer data words via said data bus.
-
Specification