摘要 |
FIFO queues are provided that enable multiple accesses to data stored in the FIFO queue. Conventional FIFO queues can be augmented by the addition of a "release pointer," a "repeat signal," and a "release signal." A release pointer points to a location in the queue containing a data element that has already been read. As long as the release signal is not asserted, the release pointer does not change while a read pointer is used to read data from the queue. In order to allow the read pointer to go back and reread previously read data, the repeat signal can be asserted. Asserting the repeat signal causes the read pointer to be set to the value of the release pointer. Once the data is no longer needed, the release pointer can be asserted, causing the release pointer to be incremented along with the read pointer. Incrementing the release pointer frees up memory locations so that new data can be stored in them. FIFO queues of the present invention may comprise multiple release pointers, multiple release signals, and multiple repeat signals. FIFO queues of the present invention may also comprise a switch signal, which causes the read pointer to switch values with a release pointer. FIFO queues of the present invention may also comprise multiple read pointers and an input signal for determining which read pointer is used to read data. The present invention can be advantageously utilized, for example, in implementing certain programming constructs more efficiently than can be implemented using FIFO queues of the prior art.
|