Optimized packing of loose data in a graphics queue
AssigneeSun Microsystems, Inc.
InventorsMichael G. Lavelle, Ewa M. Kubalska, Anthony S. Ramirez, Huang Pan
Life of this patent
Estimating the term…
Abstract
A data queue optimized for receiving loosely packed graphics data and suitable for use in a computer graphics system is described. The data queue operates on first-in-first-out principals, and has a variable width input and output. The variable width on the input side facilitates the reception and storage of loosely packed data. The variable width output allows for the single-cycle output of multi-word data. Packing of the data occurs on the write-side of the FIFO structure.
Claims30
A graphics system comprising:
- a data bus having a width of n words of b bits, wherein the data bus is configured to convey data words in a series of sequential bus cycles, wherein the number of data words conveyed in each bus cycle is less than or equal to n, wherein n and b are positive integers;
- a data queue coupled to the data bus, and configured to receive and store the data words, wherein the data queue is subdivided into n independent FIFO memories, and wherein no more than one data word of b bits is stored in each FIFO memory in a bus cycle;
- and
- a state machine coupled to the data queue, and configured to detect and retrieve data words stored in the FIFO memories, wherein the state machine maintains the sequence of the data words as part of retrieving the data words from the FIFO devices.
A graphics system comprising;
- a bus interface configured to receive a plurality of parallel data words, wherein the parallel data words are received as part of discrete bus transfer cycles, wherein each data word is marked as active or inactive, wherein the number of active data words received in one bus transfer cycle is variable;
- a circular buffer coupled to the bus interface, and configured to store the parallel data words, wherein only data words marked as active are stored;
- and
- a read sequencer coupled to the circular buffer, and configured to retrieve the stored data words, wherein the sequential relationship between data words is maintained as part of retrieving the stored data words.
A method for packing graphics data, the method comprising;
- a) repeatedly receiving clusters of graphics data, wherein the clusters of graphics data comprise a plurality of data elements, wherein at least a subset of the data elements are marked as active;
- b) storing the data elements marked as active in an array of FIFO memory structures, wherein each FIFO memory structure stores at most one data element from each cluster of graphics data received;
- c) requesting a plurality of data elements from the array of FIFO memory structures, wherein each FIFO memory structure outputs not more than one data element in response to the request for data elements;
- and
- d) reordering the data elements output from the array of FIFO memory structures, wherein the reordering maintains the sequential interrelationship of the data elements.
A method for buffering geometric primitive data comprising:
- a) receiving a parallel packet of geometric primitive data, wherein the amount of data in the parallel packet is variable;
- b) storing the geometric primitive data in the FIFO storage space utilizing a single storage operation;
- c) retrieving the geometric primitive data from the FIFO storage space, wherein the positional interrelationship of the geometric primitive data is maintained during said retrieving.
A graphics system comprising:
- a data bus, wherein the data bus is configured to convey data words in a series of sequential bus cycles, wherein the number of data words conveyed in each bus cycle is less than one plus n, wherein n times the width of one data word is equal to the width of the data bus;
- a data queue coupled to the data bus, and configured to receive and store the data words, wherein the data queue is subdivided into n independent FIFO memories, and wherein no more than one data word is stored in each FIFO memory in a bus cycle;
- and
- a state machine coupled to the data queue, and configured to detect and retrieve data words stored in the FIFO memories, wherein the state machine maintains the sequence of the data words as part of retrieving the data words from the FIFO devices.
Dependencies are inferred from the claim text.