Claims
- 1. A checkerboard buffer, comprising:
a data source, providing data in a first order; a data destination, receiving data in a second order; at least three memory devices, each memory device having a plurality of memory locations, where data is stored in parallel to the memory devices and retrieved in parallel from the memory devices; a first data switch connected to the data source and each of the memory devices, where the first data switch controls which data is stored to which memory device; and a second data switch connected to the data destination and each of the memory devices, where the second data switch controls providing data to the data destination according to the second order.
- 2. The checkerboard buffer of claim 1, where:
the checkerboard buffer is a frame buffer for storing a frame of pixels, the frame having horizontal rows of pixels and vertical columns of pixels; the pixels are numbered from left to right, top to bottom, starting from 0 in the upper left comer; the rows are numbered from top to bottom, starting from 0 at the top; the columns are numbered from left to right, starting from 0 at the left; the data is pixel data; each pixel in the frame has corresponding pixel data; pixel data for each pixel is stored in a respective memory location in a memory device; and pixel data stored in parallel is stored at the same address in each memory device.
- 3. The checkerboard buffer of claim 2, where pixel data for a respective pixel is stored to each memory device in one clock cycle.
- 4. The checkerboard buffer of claim 2, where pixel data for a respective pixel is retrieved from each memory device in one clock cycle.
- 5. The checkerboard buffer of claim 2, where:
pixel data for the first pixel in the first horizontal row of the frame is stored in a first memory device; pixel data for the first pixel in the second horizontal row of the frame is stored in a second memory device; and pixel data for the first pixel in the third horizontal row of the frame is stored in a third memory device.
- 6. The checkerboard buffer of claim 2, where:
pixel data for the first pixel in the first horizontal row of the frame is stored in a first memory device; pixel data for the second pixel in the first horizontal row of the frame is stored in a second memory device; and pixel data for the third pixel in the first horizontal row of the frame is stored in a third memory device.
- 7. The checkerboard buffer of claim 2, where the first data switch switches which memory device to store pixel data for each pixel with each horizontal row of pixels.
- 8. The checkerboard buffer of claim 2, where the second data switch switches from which memory device to retrieve pixel data for each pixel with each vertical column of pixels.
- 9. The checkerboard buffer of claim 2, further comprising:
a row counter; and a column counter; where the row counter and the column counter are used to generate addresses.
- 10. The checkerboard buffer of claim 9, where the first data switch switches based on the value of the column counter.
- 11. The checkerboard buffer of claim 9, where the second data switch switches based on the value of the row counter.
- 12. The checkerboard buffer of claim 9, further comprising a look-up table of addresses, where the values of the row counter and the column counter are indices into the look-up table.
- 13. The checkerboard buffer of claim 2, where the data destination is a grating light valve system including one or more grating light valves.
- 14. The checkerboard buffer of claim 1, further comprising a memory controller that generates addresses for storing and retrieving pixel data.
- 15. The checkerboard buffer of claim 14, where the memory controller includes the first data switch and the second data switch, and controls providing pixel data to the memory devices and receiving pixel data from the memory devices.
- 16. The checkerboard buffer of claim 1, where:
a first half of the memory devices form a first bank of memory devices and a second half of the memory devices form a second bank of memory devices; and in alternation, the first bank stores data while the second bank retrieves data, and the first bank retrieves data while the second bank stores data.
- 17. A method of storing pixel data in a checkerboard buffer, comprising:
storing pixel data for a first pixel at a first memory address in a first memory device, where the first pixel is the first pixel in a first horizontal row of pixels in a frame; storing pixel data for a second pixel at the first memory address in a second memory device, where the second pixel is the second pixel in the first horizontal row of pixels in the frame; storing pixel data for a third pixel at the first memory address in a third memory device, where the third pixel is the third pixel in the first horizontal row of pixels in the frame; storing pixel data for a fourth pixel at a second memory address in the second memory device, where the fourth pixel is the first pixel in a second horizontal row of pixels in the frame; storing pixel data for a fifth pixel at the second memory address in the third memory device, where the fifth pixel is the second pixel in the second horizontal row of pixels in the frame; storing pixel data for a sixth pixel at the second memory address in the first memory device, where the sixth pixel is the third pixel in the second horizontal row of pixels in the frame; storing pixel data for a seventh pixel at a third memory address in the third memory device, where the seventh pixel is the first pixel in a third horizontal row of pixels in the frame; storing pixel data for an eighth pixel at the third memory address in the first memory device, where the eighth pixel is the second pixel in the third horizontal row of pixels in the frame; and storing pixel data for a ninth pixel at the third memory address in the second memory device, where the ninth pixel is the third pixel in the third horizontal row of pixels in the frame; where the first, second, and third pixels are vertically adjacent to the fourth fifth, and sixth pixels, respectively, and the fourth, fifth, and sixth pixels are vertically adjacent to the seventh, eighth, and ninth pixels, respectively.
- 18. A method of retrieving pixel data in a checkerboard buffer, comprising:
retrieving pixel data for a first pixel from a first memory address in a first memory device, where the first pixel is the first pixel in a first horizontal row of pixels in a frame; retrieving pixel data for a second pixel from a second memory address in a second memory device, where the second pixel is the first pixel in a second horizontal row of pixels in the frame; retrieving pixel data for a third pixel from a third memory address in a third memory device, where the third pixel is the first pixel in a third horizontal row of pixels in the frame; retrieving pixel data for a fourth pixel from the first memory address in the second memory device, where the fourth pixel is the second pixel in the first horizontal row of pixels in the frame; retrieving pixel data for a fifth pixel from the second memory address in the third memory device, where the fifth pixel is the second pixel in the second horizontal row of pixels in the frame; retrieving pixel data for a sixth pixel from the third memory address in the first memory device, where the sixth pixel is the second pixel in the third horizontal row of pixels in the frame; retrieving pixel data for a seventh pixel from the first memory address in the third memory device, where the seventh pixel is the third pixel in the first horizontal row of pixels in the frame; retrieving pixel data for an eighth pixel from the second memory address in the first memory device, where the eighth pixel is the third pixel in the second horizontal row of pixels in the frame; and retrieving pixel data for a ninth pixel from the third memory address in the second memory device, where the ninth pixel is the third pixel in the third horizontal row of pixels in the frame; where the first, second, and third pixels are horizontally adjacent to the fourth fifth, and sixth pixels, respectively, and the fourth, fifth, and sixth pixels are horizontally adjacent to the seventh, eighth, and ninth pixels, respectively.
RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application No. 60/269,784 filed Feb. 15, 2001, of U.S. Provisional Application No. 60/269,783 filed Feb. 15, 2001, and of U.S. Provisional Application No. 60/324,498 filed Sep. 24, 2001, the disclosures of which are incorporated herein by reference.
[0002] This application is related to the following co-pending and commonly assigned patent applications: U.S. application Ser. No. 09/908,295, filed Jul. 17, 2001 (Docket No. 70673); U.S. application Ser. No. 09/907,852, filed Jul. 17, 2001 (Docket No. 70674); U.S. application Ser. No. 09/907,854, filed Jul. 17, 2001 (Docket No. 70675); U.S. application Ser. No. 09/908,301, filed Jul. 17, 2001 (Docket No. 70676), the disclosures of which are incorporated herein by reference.
Provisional Applications (3)
|
Number |
Date |
Country |
|
60269784 |
Feb 2001 |
US |
|
60269783 |
Feb 2001 |
US |
|
60324498 |
Sep 2001 |
US |