Claims
- 1. A FIFO circuit which interfaces the transmission of a data item from a sender subsystem controlled by a first clock signal to a receiver subsystem controlled by a second clock signal, comprising:
an array of cells; an empty detector which produces a first empty control signal synchronized with the second clock signal which is asserted when fewer than a predetermined number of consecutive cells in the array of cells are full; and a deadlock detector which produces a second empty control signal synchronized with the first clock signal which is asserted when fewer than a predetermined number of cells in the array of cells are full and at least one cell in the array of cells has a valid data item.
- 2. The FIFO circuit as recited in claim 1, further comprising:
a get controller configured to enable the dequeuing of a data item when the receiver subsystem requests the data item be dequeued and the first empty signal is not asserted.
- 3. The FIFO circuit as recited in claim 2, further comprising:
a full detector which produces a full control signal synchronized with the first clock signal which is asserted high when fewer than a predetermined number of consecutive cells in the array of cells are empty; and a put controller configured to enable the enqueuing of an invalid data item when the full signal is not asserted, the second empty signal is asserted, and the sender subsystem does not request a data item to be enqueued.
- 4. The FIFO circuit as recited in claim 3, wherein the put controller is configured to enqueue a valid data item when the sender subsystem requests a data item be enqueued and the full signal is not asserted.
- 5. The FIFO circuit as recited in claim 4, wherein the full signal and the second empty signal are the only signals synchronized with the first clock signal and the first empty signal is the only signal synchronized with the second clock signal.
- 6. The FIFO circuit as recited in claim 1, wherein the first clock signal has a different clock frequency than the second clock signal.
- 7. The FIFO circuit as recited in claim 1, wherein the full control signal is synchronized to the first clock signal by the addition of a latch to the full detector.
- 8. The FIFO circuit as recited in claim 1, wherein the second empty control signal is synchronized to the first clock signal by the addition of a latch to the deadlock detector.
- 9. The FIFO circuit as recited in claim 1, wherein the first empty control signal is synchronized to the second clock signal by the addition of a latch to the empty detector.
- 10. A circuit which interfaces the transmission of a data item from a sender subsystem controlled by a first clock signal to a receiver subsystem controlled by a second clock signal wherein the transmission of the data item is subject to long delay between the sender subsystem and the receiver subsystem, the circuit comprising:
a first chain of relay stations attached to the sender subsystem and having a protocol of operation; a second chain of relay stations attached to the receiver subsystem and having a protocol of operation; and a mixed clock relay station which receives the first clock signal and the second clock signal and transmits the data item from the first chain of relay stations to the second chain of relay stations in accordance with the protocol of operation of the first chain of relay stations and the protocol of operation of the second chain of relay stations.
- 11. The circuit as recited in claim 10, wherein the mixed clock relay station comprises:
an array of cells; a full detector which produces a full control signal synchronized with the first clock signal which is asserted when fewer than a predetermined number of consecutive cells in the array of cells are empty; a put controller configured to enable the enqueuing of a data item on each clock cycle of the first clock signal if the full signal is not asserted; an empty detector which produces an empty control signal synchronized with the second clock signal which is asserted when fewer than a predetermined number of consecutive cells are full; and a get controller configured to receive a stop signal from a relay station of the second chain of relay stations connected to the mixed clock station, and configured to enable the dequeuing of a data item on each clock cycle of the second clock signal if the empty signal is not asserted and the stop signal is not asserted.
- 12. The circuit as recited in claim 11, wherein the first clock signal has a different clock frequency than the second clock signal.
- 13. The circuit as recited in claim 11, wherein the full control signal is synchronized to the first clock signal by the addition of a latch to the full detector.
- 14. The circuit as recited in claim 11, wherein the empty control signal is synchronized to the second clock signal by the addition of a latch to the empty detector.
- 15. A method for transmitting a data item with a FIFO circuit having an array of cells from a sender subsystem controlled by a first clock signal to a receiver subsystem controlled by a second clock signal, comprising:
asserting a full control signal synchronized with the first clock signal when fewer than a predetermined number of consecutive cells in the array of cells are empty; asserting a empty control signal synchronized with the first clock signal when fewer than a predetermined number of consecutive cells in the array of cells are full and the there is at least one valid data item in the array of cells; receiving a request from the sender subsystem to enqueue a valid data item; enqueuing the valid data item if the full control signal has not been asserted and a request to enqueue the valid data item from the sender subsystem has been received; and enqueuing a dummy data item if the full control signal has not been asserted, the empty control signal has been asserted, and the request to enqueue the valid data item from the sender subsystem has not been received.
- 16. The method recited in claim 15, further comprising:
asserting a second empty control signal synchronized with the second clock signal when fewer than a predetermined number of consecutive cells in the array of cells are full; receiving a request from the receiver subsystem to dequeue a data item; and dequeuing a data item if the second empty control signal has not been asserted.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims priority to U.S. Provisional Patent Application entitled “A Low-Latency FIFO For Mixed-Clock Systems,” Serial No. 60/199,851, which was filed on Apr. 26, 2000, which is incorporated by reference in its entirety herein.
PCT Information
Filing Document |
Filing Date |
Country |
Kind |
PCT/US01/13777 |
4/26/2001 |
WO |
|