Claims
- 1. A dynamic reordering system, comprising:a buffer functionally connected to receive data from a processor; and a dynamic reordering structure functionally connected to receive data from said buffer and dynamically reorder said data according to corresponding tags, wherein said structure will not permit out-of-order reads.
- 2. The dynamic reordering system of claim 1, wherein said buffer is a FIFO.
- 3. The dynamic reordering system of claim 1, wherein said dynamically reordered data is stored in a table.
- 4. The dynamic reordering system of claim 1, wherein said dynamic reordering structure comprises a table.
- 5. The dynamic reordering system of claim 1, wherein said dynamic reordering structure comprises write order logic.
- 6. The dynamic reordering system of claim 1, wherein said dynamic reordering structure comprises read logic.
- 7. The dynamic reordering system of claim 1, wherein said dynamic reordering structure comprises lockup detection logic.
- 8. The dynamic reordering system of claim 1, wherein said dynamic reordering structure incorporates a status flag for each datum received, whereby each status flag indicates whether said datum has been written to a table.
- 9. A dynamic write-order organizer, comprising:a buffer structure, having an input and an output; and a table structure, having a plurality of entry locations functionally connected to said output of said buffer structure, whereby every write evicted from a write-combine buffer can be stored in one of said entry locations; wherein said table structure incorporates a status flag for each of said entry locations and access circuitry to read said flag and block out-of-order reads.
- 10. The dynamic write-order organizer of claim 9, wherein each of said plurality of entry locations corresponds to a write location in said write-combine buffer, whereby contents of said write location having an offset from a base address in said write-combine buffer are stored at said entry location having said offset from a first entry location.
- 11. The dynamic write-order organizer of claim 9, wherein said table structure incorporates a status flag for each entry location, whereby each status flag indicates whether information has been written to its associated location.
- 12. A graphics processor, comprising:a video graphics core; and at least one input structure functionally connected to said video graphics core; wherein said input structure is a dynamic write-order organizer, said dynamic write-order organizer incorporating a table having a status flag for each table entry location and access circuitry to read said flag and block out-of-order reads.
- 13. The graphics processor of claim 12, wherein said dynamic write-order organizer incorporates a safety check, whereby lockup caused by programming errors can be detected and avoided.
- 14. The graphics processor of claim 12, wherein said access circuitry incorporates write logic, whereby table entries that have not been read are prevented from being overwritten.
- 15. The graphics processor of claim 12, wherein said access circuitry incorporates read logic, whereby table entries that have not been written are prevented from being read.
- 16. A graphics adapter, comprising:a graphics processor incorporating a dynamic write-order organizer; and on-board memory; wherein said dynamic write-order organizer incorporates a table having a status flag for each table entry location and access circuitry to read said flag and block out-of-order reads.
- 17. The graphics adapter of claim 16, wherein said dynamic write-order organizer incorporates a safety check, whereby lockup caused by programming errors can be detected and avoided.
- 18. The graphics adapter of claim 16, wherein said access circuitry incorporates write logic, whereby table entries that have not been read are prevented from being overwritten.
- 19. The graphics adapter of claim 16, wherein said access circuitry incorporates read logic, whereby table entries that have not been written are prevented from being read.
- 20. The graphics adapter of claim 16, wherein said on-board memory incorporates read-only memory containing video BIOS.
- 21. The graphics adapter of claim 16, wherein said on-board memory incorporates dynamic random-access memory.
- 22. A computer system, comprising:a user input device; at least one microprocessor which is operatively connected to receive inputs from said input device and incorporates at least one write-combine buffer; a memory which is accessible by the microprocessor; a data output device for displaying information, functionally connected to said microprocessor; a magnetic disk drive which is operatively connected to the microprocessor; and a dynamic write-order organizer, for reordering out-of-order evictions from said write-combine buffer and preventing out-of-order reads, operatively connected between said microprocessor and said data output device.
- 23. The computer system of claim 22, wherein said data output device is a computer monitor.
- 24. The computer system of claim 22, wherein said data output device is a computer graphics adapter.
- 25. A method of reconstructing the order of writes to a write-combine buffer, comprising the steps of:(a.) receiving data into a buffer from a write-combine buffer; (b.) writing said data from said buffer into a table entry location, according to address tags; (c.) after writing to a table location, setting a flag to indicate that information has been loaded into said location; (d.) beginning at a first location, checking whether its flag is set; (e.) if said flag is set, reading contents of said location; (f.) after reading said contents, clearing said flag for said location; (g.) checking a flag for a next location; and (h.) repeating steps (e) through (g) until every location in said table has been read.
- 26. The method of claim 25, further comprising the steps of:(a.) when preparing to write to said table, if said write stalls, testing the flags of all entries in said table in a region between the stalled write location and a location presently being read; and (b.) if a false flag is detected in said region (i.) resetting flags for all table locations to false; and (ii.) restarting said read at said first location in said table; wherein said false flag represents a location to which a write has not been made.
- 27. The method of claim 25, further comprising the step of:(a.) after all table locations have been read, restarting said read at said first location in said table.
CROSS REFERENCE TO RELATED APPLICATIONS
This application claims priority from Ser. No. 60/109,566, filed Nov. 23, 1998.
US Referenced Citations (7)
| Number |
Name |
Date |
Kind |
|
5561780 |
Glew et al. |
Oct 1996 |
A |
|
5630075 |
Joshi et al. |
May 1997 |
A |
|
5671444 |
Akkary et al. |
Sep 1997 |
A |
|
5751996 |
Glew et al. |
May 1998 |
A |
|
5872990 |
Luick et al. |
Feb 1999 |
A |
|
5918005 |
Moreno et al. |
Jun 1999 |
A |
|
6122715 |
Palanca et al. |
Sep 2000 |
A |
Non-Patent Literature Citations (1)
| Entry |
| “Write Combining Memory Implementation Guidelines” by Intel, Nov. 1998. |
Provisional Applications (1)
|
Number |
Date |
Country |
|
60/109566 |
Nov 1998 |
US |