Claims
- 1. A directory-based memory subsystem within a computer system that performs speculative tag updates, the directory-based memory subsystem comprising:a number of memory banks that store memory lines that include multiple words, at least one word of each memory line including a tag field that stores state information including information that identifies a memory-line owner, including one of a single-processor owner of the memory line, and multiple processors that share ownership of the memory line; a memory controller that reads memory lines from the number of memory banks and that writes memory lines to the number of memory banks; and a tag control unit that, when a memory line is read from the number of memory banks, receives the at least one tag field from the memory line, updates the at least one tag field, and speculatively writes the at least one updated tag field back to the number of memory banks, with any errors in the memory line subsequently detected, using embedded error-correcting codes, and corrected by the memory controller.
- 2. The directory-based memory subsystem of claim 1 wherein the memory controller corrects errors detected in memory lines read from the number of memory banks using embedded error-correcting codes by correcting the memory line according to the error-correcting code and writing the memory line back to the number of memory banks, thereby overwriting the updated tag field written to the memory banks by the tag control unit.
- 3. The directory-based memory subsystem of claim 1 wherein, when a memory line is read from the number of memory banks, the tag control unit receives each word of the memory line that includes a tag field that stores state information, updates the word to include updated state information in the tag field and a new error-correcting code, and writes the updated word back to the number of memory banks.
- 4. The directory-based memory subsystem of claim 1 wherein, when a memory line is read from the number of memory banks, the tag control unit receives each word of the memory line that does not include a tag field that stores state information and writes the word back to the number of memory banks without modifying the word.
- 5. The directory-based memory subsystem of claim 1 herein the tag control unit comprises a number of tag buffer units, each tag buffer unit associated with one or more tag update units.
- 6. A method for efficiently reading memory lines from a directory-based memory subsystem that includes a number of memory banks, a tag control unit, and a memory controller, the method comprising:reading the memory line, under control of the memory controller, from the number of memory banks, the memory line concurrently transmitted to the memory controller and to the tag control unit; updating, by the tag control unit, any tag fields within the memory line that contain state information including information indicating ownership of the tag line, and writing, by the tag control unit the updated tag fields back to the number of memory banks; and detecting, by the memory controller, any error in the memory line, using embedded error-correcting codes, the memory controller correcting the memory line according to the error-correcting codes and writing the corrected memory line back to the number of memory banks, overwriting any updated tag fields written back to the number of memory banks by the tag control unit.
- 7. The method of claim 6 wherein the tag control unit updates both tag fields and error-correcting codes within the memory line and writes the updated memory line back to the number of memory banks.
- 8. The method of claim 6 wherein the tag control unit receives each word of the memory line that includes a tag field that stores state information, updates the word to include updated state information in the tag field and a new error-correcting code, and writes the updated word back to the number of memory banks.
- 9. The method of claim 8 wherein the tag control unit receives each word of the memory line that does not include a tag field that stores state information and writes the word back to the number of memory banks without modifying the word.
CROSS REFERENCE TO RELATED APPLICATON(S);
This is a continuation of copending application Ser. No. 09/557,812 filed on Apr. 25, 2000, now Abandoned.
US Referenced Citations (9)
Continuations (1)
|
Number |
Date |
Country |
Parent |
09/557812 |
Apr 2000 |
US |
Child |
09/797494 |
|
US |