Claims
- 1. A method for updating, in response to drawing commands, a front buffer and at least one back buffer within a display memory in a computer system having a display, the method comprising the steps of:
- reading display data from a first address in the front buffer to the display; and
- responsive to receiving a drawing command for writing to a second address:
- allowing the write to the second address if the second address is in the at least one back buffer;
- allowing the write to the second address if the second address is in the front buffer and before the first address; and
- blocking the write to the second address if the second address is in the front buffer and beyond the first address.
- 2. The method of claim 1, wherein the blocking step allows the blocked write to the second address to proceed after display data from an address in the front buffer beyond the second address is read to the display.
- 3. The method of claim 1, wherein the blocking step blocks the write to the second address until a vertical retrace occurs.
- 4. The method of claim 1, further comprising the step of allowing a write to another address in the front buffer while blocking the write to the second address.
- 5. The method of claim 1, wherein the first address increases as display data is read from the front buffer to the display, and the blocking step further comprises the steps of:
- monitoring increases in the first address; and
- allowing the blocked write to the second address in the front buffer to proceed after the first address increases past the second address.
- 6. The method of claim 1, further comprising the steps of:
- receiving a signal indicating a target address range to which the drawing command will write, wherein the second address is within the target address range;
- determining a blocked address range in the front buffer; and
- determining whether the second address is within the blocked address range.
- 7. The method of claim 6, wherein the step of determining a blocked address range comprises the substeps of:
- determining the first address from which the display data is being read from the front buffer to the display; and
- determining a last address in the front buffer,
- wherein the blocked address range is bounded by the first address and the last address.
- 8. The method of claim 1, further comprising the steps of:
- responsive to receiving a page flip command, identifying a buffer to which a subsequent drawing command will write; and
- determining whether the buffer to which the subsequent drawing command will write is the front buffer.
- 9. An accelerator for updating a display, the accelerator comprising:
- a front buffer for storing display data for displaying on the display;
- at least one back buffer for storing display data;
- a screen refresh unit coupled to the front buffer and the display, for reading display data at a first address in the front buffer and writing the display data to the display;
- a first engine responsive to drawing commands, for generating display data and writing the generated display data to a second address; and
- a memory interface unit coupled to the front buffer, the at least one back buffer, and the first engine, for:
- allowing the first engine to write to the second address if the second address is in the at least one back buffer;
- allowing the first engine to write to the second address if the second address is in the front buffer and before the first address; and
- blocking the first engine from writing to the second address if the second address is in the front buffer and after the first address.
- 10. The accelerator of claim 9, further comprising a command queue for storing drawing and page flip commands, the command queue coupled to the first engine.
- 11. The accelerator of claim 10, further comprising a command parsing unit coupled to the command queue and the first engine, for parsing and dispatching drawing commands.
- 12. The accelerator of claim 11, further comprising a bus interface unit coupled to the command queue, for receiving commands from a processing unit and storing the commands in the command queue.
- 13. The accelerator of claim 9, wherein the screen refresh unit comprises a first address register for storing the first address.
- 14. The accelerator of claim 13, wherein the screen refresh unit further comprises a second address register for storing an address corresponding to a last address within the front buffer.
- 15. The accelerator of claim 9, wherein the screen refresh unit updates the first address as the screen refresh unit writes the display data at the first address to the display and wherein if the second address is in the front buffer and before the first address, the memory interface unit blocks the first engine from writing to the second address until the screen refresh unit updates the first address to an address after the second address.
- 16. The accelerator of claim 15, further comprising:
- a second engine responsive to drawing commands, for generating display data and writing the generated display data to a third address in the front buffer, the second engine coupled to the memory interface unit,
- wherein the memory interface unit allows the second engine to write to the third address if the third address is before the first address, while blocking the first engine from writing.
- 17. The accelerator of claim 9, wherein if the second address is after the first address, the memory interface unit blocks the first engine from writing until a vertical retrace occurs.
Parent Case Info
This application claims the benefit of Provisional Application No. 60/084,273 filed May 4, 1998.
US Referenced Citations (8)