Circuits, systems and methods for preventing queue overflow in data processing systems
First Claim
1. Circuitry for controlling the transfer of memory requests from a requesting device to a particular memory of a plurality of memories, said particular memory operating in response to a memory clock having a memory clock rate comprising:
- queuing circuitry comprising;
a first queue for receiving said memory requests; and
a second queue coupled in series with said first queue said second queue holding said memory requests when contention for access to said particular memory occurs;
a counter;
control circuitry operablein an idle state, clear said counter;
shift from said idle state to a send state when said queue circuitry starts sending requests to said memory;
in said send state, increment the count in said counter by a rate value, proportionate to the difference between an input rate at which said queuing circuitry receives memory requests and said memory clock rate, each time a read request is sent from said queuing circuitry to said memory and decrement the count in said counter each time a write request is sent from said queuing circuitry to said memory;
shift from said send state to said idle state when said queuing circuitry is done sending read memory requests to said memory and the count in said counter is less than or equal to an overhead value representing processing overhead time;
shift from said send state to a wait state when said queuing circuitry is done sending all memory requests to said memory and the count in said counter is greater than said overhead value;
in said wait state, decrement the count in said counter by said rate value in response to said memory clock; and
shift from said wait state to said idle state when the count in said counter decrements to a value less than or equal to said overhead value.
7 Assignments
0 Petitions
Accused Products
Abstract
A processing system is provided which includes circuitry for generating memory requests at a first clock rate. Input queuing circuitry which includes at least one queue receives the memory requests from the circuitry at the first clock rate and outputs such memory requests at a second clock rate. A memory system stores and retrieves data in response to the memory requests, the memory system outputting data in response to read requests received from input queuing circuitry. An output queue is provided which receives data output from memory at the second clock rate and outputs such data at the first clock rate. Queuing control circuitry is provided which prevents overflow of output queue by controlling the number of memory requests sent in bursts from the input queuing system to the memory system and by controlling the wait time between such bursts.
48 Citations
30 Claims
-
1. Circuitry for controlling the transfer of memory requests from a requesting device to a particular memory of a plurality of memories, said particular memory operating in response to a memory clock having a memory clock rate comprising:
-
queuing circuitry comprising; a first queue for receiving said memory requests; and a second queue coupled in series with said first queue said second queue holding said memory requests when contention for access to said particular memory occurs; a counter; control circuitry operable in an idle state, clear said counter; shift from said idle state to a send state when said queue circuitry starts sending requests to said memory; in said send state, increment the count in said counter by a rate value, proportionate to the difference between an input rate at which said queuing circuitry receives memory requests and said memory clock rate, each time a read request is sent from said queuing circuitry to said memory and decrement the count in said counter each time a write request is sent from said queuing circuitry to said memory; shift from said send state to said idle state when said queuing circuitry is done sending read memory requests to said memory and the count in said counter is less than or equal to an overhead value representing processing overhead time; shift from said send state to a wait state when said queuing circuitry is done sending all memory requests to said memory and the count in said counter is greater than said overhead value; in said wait state, decrement the count in said counter by said rate value in response to said memory clock; and shift from said wait state to said idle state when the count in said counter decrements to a value less than or equal to said overhead value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. Circuitry for controlling the transfer of memory requests from a requesting device to a particular memory of a plurality of memories, said memory operating in response to a memory clock of a selected rate comprising:
-
queuing circuitry comprising; a first queue for receiving said memory requests; and a second queue coupled in series with said first queue for sending said memory requests to said particular memory, said second queue holding said memory requests when contention for access to said particular memory occurs; a wait counter; a register for holding an I/O rate value proportionate to the difference between an input rate at which said queuing circuitry receives said memory requests and said memory clock rate; a register for holding an overhead value representing processing overhead time; control circuitry operable to; in an idle state, clear said wait counter; shift from said idle state to a send state when said queuing circuitry starts sending requests to said memory; in said send state; increment the count in said wait counter by said I/O rate value with each read request send from said queuing circuitry to said memory; and decrement the count in said wait counter with each non-read request sen from queuing circuitry to said memory; shift from said send state back to said idle state when said queuing circuitry is done sending read requests to said memory and the count in said wait counter is less than or equal to said overhead value; shift from send state to a wait state when said queuing circuitry is done sending memory requests to said memory and the count in said wait counter is greater than said overhead value; in said wait state, decrement the count in said wait counter with each cycle of said memory clock; and shift from said wait state to said idle state when the count in said wait counter decrements to a value less than or equal to said overhead value. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A processing system comprising:
-
circuitry for generating memory requests at a first clock rate; input queuing circuitry comprising; a first queue for receiving said memory requests from said circuitry for generating at said first clock rate; and a second queue coupled in series with said first queue for holding said memory requests when contention for access to a particular memory unit occurs and for outputting said memory requests at a second clock rate; a memory system containing said particular memory unit for storing and retrieving data in response to said memory requests, said memory system outputting data at said second clock rate in response to read requests from said input queuing circuitry; an output queue for receiving data from said memory at said second clock rate and outputting said data at said first clock rate; and queuing control circuitry associated with said input queuing circuitry for preventing overflows of said output queue by controlling a number of said memory requests sent in bursts from said input queuing system to said memory system and by controlling wait time between ones of said bursts. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
-
26. A method of controlling the transfer of memory requests from queuing circuitry having a first queue coupled in series with a second queue to a memory, the first queue receiving memory requests at a first clock rate and the second queue outputting memory requests at a second clock rate, comprising the steps of:
-
holding the memory requests in the second queue when contention for access to the memory occurs; in an idle state, clearing a counter associated with the queuing circuitry; shifting from the idle state to a send state when the queuing circuitry starts sending requests to said memory; in the send state, incrementing the count in the counter by a rate value, proportionate to the difference between the first and second clock rates, when a read request is sent from the queuing circuitry to the memory; in the send state, decrementing the count in the counter when a non-read request is sent from the queuing circuitry to the memory; shifting from the send state to the idle state when the queuing circuitry is done sending read memory requests to the memory and the count in the counter is less than or equal to an overhead value representing processing overhead time; shifting from the send state to a wait state when the queuing circuitry is done sending all memory requests to the memory and the count in the counter is greater than the overhead value; in the wait state, decrementing the count in the counter in response to the memory clock timing the operation of the memory; and shift from the wait state to the idle state when the count in said counter decrements to a value less than or equal to the overhead value. - View Dependent Claims (27, 28, 29)
-
-
30. A method of controlling a memory comprising the steps of:
-
generating memory requests at a first clock rate; inputting the memory requests into an input queue at the first clock rate; transferring the memory requests to a crossbar queue coupled in series with the input queue; holding the memos requests in the crossbar queue when contention for access to the memory occurs; outputting the memory requests from the crossbar queue at a second clock rate; addressing a memory system with the memory addresses output from the crossbar queue, the memory system outputting at the second clock rate in response to read memory requests; inputting the data output from the memory into an output queue at the second clock rate; outputting said data at said first clock rate; and preventing overflows of the output queue by controlling the number of memory requests sent in bursts from the input queue to the memory system and by controlling wait time between the bursts.
-
Specification