Patent ID: 6614798
Filing Date: 2003-09-02
Classification: H04L

Abstract:
A First-in-First-Out (FIFO) memory device that interfaces a port to a data receiving device, the FIFO memory device comprising:a FIFO memory block; a data input interface that is coupled to the port and to the FIFO memory block, to receive data from the port, assemble the received data into cells, and write the cells into the FIFO memory block, the data input interface including a first counter that counts the number of cells that are written into the FIFO memory block; a data output interface that is coupled to the FIFO and to the data receiving device, to read the cells from the FIFO memory block and provide the cells to the data receiving device, the data output interface including a second counter that counts the number of cells that are read from the FIFO memory block; a first register that is coupled between the data input interface and the second counter, to store therein a first indication that a cell has been written into the FIFO memory block, the second counter being responsive to the first indication to increment the number of cells that are written into the FIFO memory block; and a second register that is coupled between the data output interface and the first counter, to store therein a second indication that a cell has been read from the FIFO memory block, the first counter being responsive to the second indication to decrement the number of cells that are read from the FIFO memory block; wherein the first register comprises a third counter including a first increment input, a first clear input and a first output, wherein the first increment input is coupled to the data input interface, the first clear input is coupled to the data output interface and the first output is coupled to the second counter; and wherein the second register comprises a fourth counter including a second increment input, a second clear input and a second output, wherein the second increment input is coupled to the data output interface, the second clear input is coupled to the data input interface and the second output is coupled to the first counter.