Claims
- 1. A method for creating column coherency in a memory access command stream to facilitate burst building:
receiving a first memory access command from a pipeline, the first memory access command accompanied by first memory access data and a first memory access column address; storing the first memory access data in a multi-column data storage buffer at a first column corresponding to at least one of the LSBs of the first memory access column address; receiving a second memory access command from the pipeline, the second memory access command accompanied by second memory access data and a second memory access column address; storing the second memory access data in the multi-column data storage buffer at a second column corresponding to at least one of the LSBs of the second memory access column address; and flushing the first and second memory access data from the multi-column data storage buffer in column order.
- 2. A method according to claim 1, further comprising the steps of:
asserting a first valid bit associated with the first column to indicate that memory access data is stored therein; asserting a second valid bit associated with the second column to indicate that memory access data is stored therein; responsive to the first and second valid bits, determining a burst type that would be appropriate when executing the memory accesses represented by the first and second memory access data; and accompanying at least one of the first and second memory access data at flush time with a flag indicating the determined burst type.
- 3. A method for creating column coherency in a computer graphics command stream to facilitate burst building:
receiving a first pixel command from a pipeline, the first pixel command accompanied by first pixel data and a first pixel column address; storing the first pixel data in a first line of a multi-line, multi-column pixel storage buffer at a first column corresponding to at least one of the LSBs of the first pixel column address; storing at least some of the MSBs of the first pixel column address in a column address entry associated with the first line; receiving a second pixel command from the pipeline, the second pixel command accompanied by second pixel data and a second pixel column address; determining whether the MSBs of the second pixel column address match those stored in the column address entry associated with the first line; if it is determined that the MSBs of the second pixel column address do match those stored in the column address entry associated with the first line:
storing the second pixel data in the first line of the multi-line, multi-column pixel storage buffer at a second column corresponding to at least one of the LSBs of the second pixel column address; but if it is determined that the MSBs of the second pixel column address do not match those stored in the column address entry associated with the first line:
storing the second pixel data in a second line of the multi-line, multi-column pixel storage buffer at a second column corresponding to at least one of the LSBs of the second pixel column address; and storing at least some of the MSBs of the second pixel column address in a column address entry associated with the second line.
- 4. A method according to claim 3, further comprising the steps of:
asserting valid bits in the first line that are associated with columns in which pixel data has been stored; asserting valid bits in the second line that are associated with columns in which pixel data has been stored; responsive to the valid bits in the first line, determining a first burst type that would be appropriate when flushing pixel data stored in the first line; flushing the first line and accompanying the pixel data so flushed with an indicator of the first burst type; responsive to the valid bits in the second line, determining a second burst type that would be appropriate when flushing pixel data stored in the second line; and flushing the second line and accompanying the pixel data so flushed with an indicator of the second burst type.
- 5. A method according to claim 4, wherein the step of flushing the first line further comprises the step of:
flushing invalid pixel data along with the first pixel data as needed to fill a burst; and accompanying the invalid pixel data so flushed with a flag indicating that it should not be written to frame buffer memory.
- 6. Circuitry for creating column coherency in a computer graphics command stream to facilitate burst building:
a multi-column pixel storage buffer; a bus for receiving incoming pixel data and pixel column addresses from a pipeline; storage control circuitry for storing received pixel data in the multi-column pixel storage buffer at columns that correspond to at least one of the LSBs of the pixel column addresses; and flush control circuitry for flushing, in column order, the pixel data stored in the multi-column pixel storage buffer.
- 7. Circuitry according to claim 6, further comprising:
a multi-line column address storage buffer; and wherein the multi-column pixel storage buffer also comprises multiple lines, each line of the pixel storage buffer associated with one line of the column address storage buffer.
- 8. Circuitry according to claim 7, wherein the storage control circuitry is further
operable to store at least some of the MSBs of pixel column addresses in the column address storage buffer; and column address comparison and select circuitry for determining whether at least some of the MSBs of the column address of an incoming pixel match those currently stored in a line of the column address storage buffer, and if so, selecting the matching line of the pixel storage buffer, but if not, selecting an unused line of the pixel storage buffer.
- 9. Circuitry according to claim 8, wherein the bus is also for receiving incoming pixel row/bank addresses, and further comprising:
a row/bank address storage buffer operable to store row/bank addresses; and circuitry for dynamically allocating lines in the pixel storage buffer and in the column address storage buffer with row/bank addresses stored in the row/bank address storage buffer.
- 10. Circuitry according to claim 6, where each entry in the pixel storage buffer is associated with a unique valid bit, which is asserted when pixel data is stored in the entry.
- 11. Circuitry according to claim 10, wherein the flush control circuitry further comprises circuitry for determine, responsive to the valid bits, and appropriate burst mode for flushing the pixel data stored in the pixel storage buffer.
- 12. Circuitry according to claim 11, further comprising flag generation circuitry for indicating the determined burst type to downstream hardware when the pixel data stored in the pixel storage buffer are flushed.
RELATED APPLICATIONS
[0001] This application is related to U.S. patent application Ser. No. [Hewlett-Packard Docket Number 10981103-1], filed Jul. 30, 1999, titled “Creating Page Coherency and Improved Bank Sequencing in a Memory Access Command Stream,” and to U.S. patent application Ser. No. [Hewlett-Packard Docket Number 10981738-1], filed Jul. 30, 1999, titled “Z Test and Conditional Merger of Colliding Pixels During Batch Building.”