Claims
- 1. A computing system comprising:
a host processor; a host memory, the host memory storing programs for the host processor; a system interface configured to interface with the host processor; and a graphics processor configured to interface with the system interface comprising:
a) a read interface configured to read from a memory a data element and graphics program instructions, the data element represented in one of several formats; b) an input format converter configured to convert the data element to a converted data element represented in an other of the several formats; c) a computation unit configured by the graphics program instructions to perform calculations on the converted data element to generate a calculated data element; d) an output format converter configured to convert the calculated data element to a converted calculated data element represented in one of the several formats; and e) a write interface configured to write the converted calculated data element to the memory.
- 2. The computing system of claim 1, wherein the host memory is configured to interface with the system interface.
- 3. The computing system of claim 2, wherein the memory is a graphics memory.
- 4. The computing system of claim 1, wherein the host memory is configured to directly interface with the host processor.
- 5. The computing system of claim 4, wherein the memory is a graphics memory.
- 6. A programmable graphics fragment processing pipeline comprising:
a) a read interface configured to read from a graphics memory a data element and graphics program instructions, the data element represented in one of several formats; b) an input format converter configured to convert the data element to a converted data element represented in an other of the several formats; c) a computation unit configured by the graphics program instructions to perform calculations on the converted data element to generate a calculated data element; d) an output format converter configured to convert the calculated data element to a converted calculated data element represented in one of the several formats; and e) a write interface configured to write the converted calculated data element to the graphics memory.
- 7. The programmable graphics fragment processing pipeline of claim 6 wherein the read interface is further configured to read from a host memory the data element represented in one of several formats and the write interface is further configured to write the converted calculated data element to the host memory.
- 8. The programmable graphics fragment processing pipeline of claim 6 wherein one of the several formats is selected from the group consisting of a 16 bit floating point format, a 32 bit floating point format, a 64 bit floating point format, an 8 bit integer format, a 12 bit integer format, and a 16 bit integer format.
- 9. The programmable fragment processing pipeline of claim 6 wherein the graphics program instructions include information specifying, of the several formats, which format is used to represent the data element, the converted data element, and the converted calculated data element, the information kept as state information in the programmable graphics fragment processing pipeline.
- 10. The programmable graphics fragment processing pipeline of claim 6 wherein the calculations performed by the computation unit include interpolation.
- 11. The programmable graphics fragment processing pipeline of claim 6 wherein the calculations performed by the computation unit use a data element generated by an other computation unit in the programmable graphics fragment processing pipeline.
- 12. The programmable graphics fragment processing pipeline of claim 6 wherein the data element read from the graphics memory has an adjacent data element represented in an other of the several formats.
- 13. The programmable graphics fragment processing pipeline of claim 6 wherein the read interface is further configured to read a plurality of data elements from the graphics memory, the plurality of data elements associated with a pixel location, the plurality of data elements comprising at least three different data formats, the plurality of data elements being adjacently stored in the graphics memory.
- 14. The programmable graphics fragment processing pipeline of claim 6 wherein the data element to be read from the graphics memory is within a first surface.
- 15. The programmable graphics fragment processing pipeline of claim 14 wherein the data element written to the graphics memory is within a second surface.
- 16. The programmable graphics fragment processing pipeline of claim 14 wherein the data element written to the graphics memory is within a third surface.
- 17. A method of using a computing system including a memory storing surfaces containing data elements each represented in one of several formats, comprising the steps of:
a) reading one of the data elements from a first surface stored in the memory; b) format converting the read data element to a converted data element represented in an other of the several formats; c) processing the converted data element in a programmable graphics fragment processing pipeline under control of a first set of graphics program instructions to generate one or more processed data elements corresponding to a fragment; d) format converting the one or more processed data elements to converted generated one or more data elements each represented in one of the several formats; e) writing the converted one or more processed data elements to a second surface stored in the memory; and f) repeating steps (a) through (e), wherein the processing of step (c) is performed under control of a second set of graphics program instructions.
- 18. The method of claim 17, wherein the memory is a graphics memory.
- 19. The method of claim 17, wherein the memory is a host memory.
- 20. A method of using a memory storing surfaces containing data elements each represented in one of several formats, comprising the steps of:
a) reading one of the data elements from a first surface stored in the memory; b) format converting the read data element to a converted data element represented in an other of the several formats; c) processing the converted data element in a programmable graphics fragment processing pipeline under control of a first set of graphics program instructions to generate one or more processed data elements corresponding to a fragment; d) format converting the one or more processed data elements to converted generated one or more data elements each represented in one of the several formats; e) writing the converted one or more processed data elements to a second surface stored in the memory; and f) repeating steps (a) through (e), wherein the processing of step (c) is performed under control of a second set of graphics program instructions.
- 21. The method of claim 20 wherein the memory is any combination of a graphics memory and a host memory.
- 22. The method of claim 20 wherein the memory is a graphics memory.
- 23. The method of claim 20 further comprising the step of reading the graphics program instructions from the graphics memory.
- 24. The method of claim 20 wherein one of the several formats is selected from the group consisting of a 16 bit floating point format, a 32 bit floating point format, a 64 bit floating point format, an 8 bit integer format, a 12 bit integer format, and a 16 bit integer format.
- 25. The method of claim 20 wherein the graphics program instructions include information specifying, of the several formats, which format is used to represent the read data element, the converted data element, and the converted generated one or more data elements, the information kept as state information in the programmable graphics fragment processing pipeline.
- 26. The method of claim 20 wherein each of the converted generated one or more data elements written in the graphics memory has an adjacent data element represented in an other of the several formats.
- 27. The method of claim 20 further comprising the steps of:
g) reading an other data element from the first surface stored in the graphics memory, the other data element represented in one of the several formats; h) format converting the other data element to a converted other data element represented in an other of the several formats; i) processing the converted other data element in a programmable graphics fragment processing pipeline under control of the first set, the second set or a third set of graphics program instructions to generate one or more processed other data elements corresponding to a fragment; j) format converting the one or more processed other data elements to converted one or more processed other data elements each represented in one of the several formats; and k) writing the converted one or more processed other data elements to a third surface stored in the graphics memory.
- 28. The method of claim 20 wherein the converted one or more processed data elements written to the second surface stored in the graphics memory are written to at least portions of the graphics memory that the first surface was stored in.
- 29. The method of claim 20 wherein the processing includes interpolation.
- 30. The method of claim 20 wherein the processing uses data generated by an other computation unit in the programmable graphics fragment processing pipeline.
- 31. A programmable graphics fragment processing pipeline comprising:
a) a read interface configured to read from a memory entry in graphics memory data elements each represented in one of several formats; b) an unpacker configured to separate the data elements into unpacked data elements; c) an input format converter configured to convert each unpacked data element represented in one of the several formats to a converted data element represented in an other of the several formats; d) a computation unit configured by graphics program instructions to perform calculations on the converted data elements and generate calculated data elements; e) an output format converter configured to convert the calculated data elements to converted calculated data elements each represented in one of the several formats; f) a packer configured to pack the converted calculated data elements; and g) a write interface configured to write the packed data elements to the graphics memory, each of the packed data elements represented in one of the several formats.
- 32. The programmable graphics fragment processing pipeline of claim 31 wherein each of the packed data elements written to the graphics memory has an adjacent data element represented in an other of the several formats.
- 33. The programmable graphics fragment processing pipeline of claim 31 wherein the graphics program instructions are read from the graphics memory.
- 34. The programmable fragment processing pipeline of claim 33 wherein the graphics program instructions include information specifying, of the several formats, which format is used to represent the data elements, the unpacked data elements, the converted data elements, the converted calculated data elements, the packed data elements, the information kept as state information in the programmable graphics fragment processing pipeline.
- 35. The programmable graphics fragment processing pipeline of claim 31 wherein one of the several formats is selected from the group consisting of a 16 bit floating point format, a 32 bit floating point format, an 8 bit integer format, a 12 bit integer format, and a 16 bit integer format.
- 36. The programmable graphics fragment processing pipeline of claim 31 wherein the calculations performed by the computation unit include interpolation.
- 37. The programmable graphics fragment processing pipeline of claim 31 wherein the calculations performed by the computation unit use data generated by an other computation unit in the programmable graphics fragment processing pipeline.
- 38. A method of using a surface composed of graphics data elements stored in a graphics memory comprising the steps of:
a) reading a data element from the surface stored in the graphics memory, the data element represented in one of several formats; b) unpacking the data element into an unpacked data element; c) format converting the unpacked data element represented in one of the several formats to a converted unpacked data element represented in an other of the several formats; d) processing the converted unpacked data element in the programmable graphics fragment processing pipeline under control of graphics program instructions to generate one or more processed data elements corresponding to a fragment; e) format converting the one or more processed data elements to converted one or more processed data elements each represented in one of the several formats; f) packing the converted one or more processed data elements into packed data elements; and g) writing the packed data elements into the graphics memory each represented in one of the several formats.
- 39. The method of claim 38 further comprising the steps of:
a) storing a first portion of the surface in a first group of memory entries in the graphics memory; and b) storing a second portion of the surface in a second group of memory entries in the graphics memory, the second group of memory entries not adjacent to the first group of memory entries.
- 40. The method of claim 38 wherein the packed data elements are written into the graphics memory adjacent to a packed data element represented in an other of the several formats.
- 41. The method of claim 38 further comprising the step of reading the graphics program instructions from the graphics memory.
- 42. The method of claim 41 wherein the graphics program instructions include information specifying, of the several formats, which format is used to represent the data element, the converted unpacked data element, the converted one or more processed data elements, the packed data elements, the information kept as state information in the programmable fragment processing pipeline.
- 43. The method of claim 38 wherein one of the several formats is selected from the group consisting of a 16 bit floating point format, a 32 bit floating point format, an 8 bit integer format, a 12 bit integer format, and a 16 bit integer format.
- 44. A graphics subsystem output controller comprising:
a read interface configured to receive from a graphics memory image data represented in floating point format; a converter configured to convert the image data represented in floating point format to converted image data represented in an other format; and a digital to analog converter (DAC) that processes the converted image data.
- 45. The output controller of claim 44 wherein the read interface is further configured to receive image data represented in floating point format from a host memory.
- 46. The output controller of claim 44 wherein the converter is a programmable lookup table.
- 47. The output controller of claim 44 wherein the converter is a barrel shifter.
- 48. A method of using a graphics subsystem output controller comprising the steps of:
a) reading image data represented in a floating point format from a graphics memory; b) converting the read image data represented in a floating point format to image data represented in an other format; and c) processing the converted image data using a digital to analog converter (DAC).
- 49. The method of claim 48 wherein the image data represented in a floating point format is read from a host memory.
- 50. The method of claim 48 wherein the step of converting uses a programmable lookup table.
- 51. The method of claim 48 wherein the step of converting uses a barrel shifter.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority from commonly owned Provisional U.S. Patent Application No. 60/397,247 entitled “Method and Apparatus for Using Multiple Data Formats in a Unified Graphics Memory,” filed Jul. 18, 2002, which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60397247 |
Jul 2002 |
US |