Byte-writable two-dimensional FIFO buffer having storage locations with fields indicating storage location availability and data ordering
First Claim
1. A first-in-first-out (FIFO) buffer for storing data received over a data bus, wherein the data are transferred in data groups including at least one unit of data, the FIFO buffer comprising:
- a plurality of storage locations, each of the storage locations being connected the data bus and configured to store one data unit, wherein each of the storage location comprises a first storage area for an associated data unit, a second storage area for a valid flag indicating whether the storage location contains valid data, and a third storage area for a data tag indicating an order of storage of the associated data unit relative to other data units in the storage locations; and
a write control circuit comprising;
a data-group size decoder connected to receive information indicating a number of data units in a data group to be written to the storage locations during a write operation; and
a write pointer generator connected to the storage locations and to the data-group size decoder, the write pointer generator selecting a group of one or more the storage locations to which the data group is written during the write operation, wherein the write pointer generator selects the group according to valid flags in the storage locations and permits selection of the storage locations having address that do not reflect an order of storage of the data group relative to other data groups in the FIFO buffer.
1 Assignment
0 Petitions
Accused Products
Abstract
A FIFO storage circuit stores data transferred over a data bus in data groups having of one or more data units. The FIFO buffer includes a number of storage locations each configured to store a single unit of data. Each data groups on the data bus is accompanied by data-size information. A storage-location availability decoder receives the data-size information and allocates a number of consecutive storage locations in the FIFO storage circuit to allow for storage of the incoming data group. The FIFO then stores each unit of the data group, along with a data tag common to each unit, in consecutive storage locations. The next stored data group is then assigned a new data tag. The FIFO storage circuit reads from the storage locations in order of data tag. Checking consecutive storage locations for equivalent data tags enables the FIFO storage circuit to output the appropriate number of units for each data group. Further, assigning unique sequential data tags to each data group allows the FIFO storage circuit to read the contents of FIFO buffer 200 in the appropriate order.
37 Citations
12 Claims
-
1. A first-in-first-out (FIFO) buffer for storing data received over a data bus, wherein the data are transferred in data groups including at least one unit of data, the FIFO buffer comprising:
-
a plurality of storage locations, each of the storage locations being connected the data bus and configured to store one data unit, wherein each of the storage location comprises a first storage area for an associated data unit, a second storage area for a valid flag indicating whether the storage location contains valid data, and a third storage area for a data tag indicating an order of storage of the associated data unit relative to other data units in the storage locations; and a write control circuit comprising; a data-group size decoder connected to receive information indicating a number of data units in a data group to be written to the storage locations during a write operation; and a write pointer generator connected to the storage locations and to the data-group size decoder, the write pointer generator selecting a group of one or more the storage locations to which the data group is written during the write operation, wherein the write pointer generator selects the group according to valid flags in the storage locations and permits selection of the storage locations having address that do not reflect an order of storage of the data group relative to other data groups in the FIFO buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A first-in-first-out (FIFO) buffer comprising:
-
a plurality of storage locations, each of the storage locations comprising a first field for storage of a unit of data, a second field for a valid flag indicating whether the first field contains valid data, and a third field for a tag indicating when data was stored in the first field; a write control circuit coupled to use the valid flags from the second fields of the storage locations when selecting storage locations for a write operation; and a read control circuit coupled to use the tags from the third fields of the storage locations when selecting storage locations for a read operation. - View Dependent Claims (9, 10)
-
-
11. A method for operating a first-in-first-out (FIFO) buffer, comprising:
-
providing in the buffer a plurality of storage locations, each of the storage locations comprising a first field for storage of a data unit, a second field for a valid flag indicating whether the first field contains valid data, and a third field for a tag indicating when data was stored in the first field; receiving a data group to be written to the buffer; determining a number of storage locations required for storage of the data group; checking the second fields of storage locations in the buffer to identify storage locations for storage of the data group, wherein the valid flag in the second field of each identified storage location indicates that the first field of the identified storage location does not store valid data; writing data units from data group in the first fields of the identified storage locations; setting the valid flags in the second fields of the identified storage locations to indicate the first fields of the identified storage locations contain valid data; and writing a tag value to all of the third fields of the identified storage locations. - View Dependent Claims (12)
-
Specification