Method and apparatus for efficiently implementing a last-in first-out buffer
First Claim
1. An apparatus that implements a last-in first-out buffer, comprising:
- a plurality of cells arranged in a linear array to form the last-in first-out buffer;
wherein a given cell in the interior of the linear array is configured to receive get and put calls from a preceding cell in the linear array, and to make get and put calls to a subsequent cell in the linear array;
wherein if the given cell contains no data items, the given cell is configured to make a get call to retrieve a data item from the subsequent cell, whereby the data item becomes available in the given cell to immediately satisfy a subsequent get call to the given cell from the preceding cell without having to wait for the data item to propagate to the given cell from subsequent cells in the linear array; and
wherein if the given cell contains no space for additional data items, the given cell is configured to make a put call to transfer a data item to the subsequent cell, whereby space becomes available in the given cell to immediately satisfy a subsequent put call to the given cell from the preceding cell without having to wait for data in the given cell to propagate to subsequent cells in the linear array.
2 Assignments
0 Petitions
Accused Products
Abstract
One embodiment of the present invention provides a system that implements a last-in first-out buffer. The system includes a plurality of cells arranged in a linear array to form the last-in first-out buffer, wherein a given cell in the interior of the linear array is configured to receive get and put calls from a preceding cell in the linear array, and to make get and put calls to a subsequent cell in the linear array. If the given cell contains no data items, the given cell is configured to make a get call to retrieve a data item from the subsequent cell. In this way the data item becomes available in the given cell to immediately satisfy a subsequent get call to the given cell without having to wait for the data item to propagate to the given cell from subsequent cells in the linear array. If the given cell contains no space for additional data items, the given cell is configured to make a put call to transfer a data item to the subsequent cell. In this way, space becomes available in the given cell to immediately satisfy a subsequent put call to the given cell without having to wait for data in the given cell to propagate to subsequent cells in the linear array.
-
Citations
21 Claims
-
1. An apparatus that implements a last-in first-out buffer, comprising:
-
a plurality of cells arranged in a linear array to form the last-in first-out buffer;
wherein a given cell in the interior of the linear array is configured to receive get and put calls from a preceding cell in the linear array, and to make get and put calls to a subsequent cell in the linear array;
wherein if the given cell contains no data items, the given cell is configured to make a get call to retrieve a data item from the subsequent cell, whereby the data item becomes available in the given cell to immediately satisfy a subsequent get call to the given cell from the preceding cell without having to wait for the data item to propagate to the given cell from subsequent cells in the linear array; and
wherein if the given cell contains no space for additional data items, the given cell is configured to make a put call to transfer a data item to the subsequent cell, whereby space becomes available in the given cell to immediately satisfy a subsequent put call to the given cell from the preceding cell without having to wait for data in the given cell to propagate to subsequent cells in the linear array. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An apparatus that implements a last-in first-out buffer, comprising:
-
a plurality of cells arranged in a linear array to form the last-in first-out buffer;
wherein a given cell in the interior of the linear array is configured to receive get and put calls from a preceding cell in the linear array, and to make get and put calls to a subsequent cell in the linear array;
wherein if the given cell contains no data items, the given cell is configured to make a get call to retrieve a data item from the subsequent cell, whereby the data item becomes available in the given cell to immediately satisfy a subsequent get call to the given cell from the preceding cell without having to wait for the data item to propagate to the given cell from subsequent cells in the linear array;
wherein if the given cell contains no space for additional data items, the given cell is configured to make a put call to transfer a data item to the subsequent cell, whereby space becomes available in the given cell to immediately satisfy a subsequent put call to the given cell from the preceding cell without having to wait for data in the given cell to propagate to subsequent cells in the linear array;
wherein communications between the plurality of cells take place asynchronously without reference to a system clock signal;
wherein each cell in the linear array includes circuitry to determine if all subsequent cells in the linear array are completely full; and
wherein each cell in the linear array includes circuitry to determine if all subsequent cells in the linear array are empty. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method for implementing a last-in first-out buffer, wherein the method operates within a plurality of cells arranged in a linear array to form the last-in first-out buffer, wherein a given cell in the interior of the linear array is configured to receive get and put calls from a preceding cell in the linear array, and to make get and put calls to a subsequent cell in the linear array, the method comprising:
-
making a get call from the given cell to retrieve a data item from the subsequent cell if the given cell contains no data items, whereby the data item becomes available in the given cell to immediately satisfy a subsequent get call to the given cell without having to wait for the data item to propagate to the given cell from subsequent cells in the linear array; and
making a put call from the given cell to transfer a data item to the subsequent cell if the given cell contains no space for additional data items, whereby space becomes available in the given cell to immediately satisfy a subsequent put call to the given cell without having to wait for data in the given cell to propagate to subsequent cells in the linear array. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
Specification