Tracking memory defects using a shared memory defect list
AssigneeMicrosoft Technology Licensing, LLC
InventorsJohn Aaron Strange, Christina Margaret Tobias
Life of this patent
Estimating the term…
Abstract
Disclosed embodiments include systems and methods for tracking defective memory using a shared memory defect list. Embodiments include firmware that identifies a memory buffer to store a list that includes an entry identifying a portion of memory as defective. The firmware sends an identification of the memory buffer to an operating system. The operating system reads the list from the memory and identifies the portion of defective memory based on the list. The operating system further manages memory locations used based on the identified portion of defective memory and avoids using the portion of defective memory. The firmware persists the contents of the memory to a non-volatile storage prior to shutting down the computer system.
Claims20
A method implemented in firmware running in a computer system that includes a processor system, a non-volatile storage, and a memory, comprising:
- identifying a memory buffer within the memory at which to store a list, wherein the list includes a first entry identifying a first portion of the memory that is defective;
- sending an identification of the memory buffer to an operating system of the computer system, the operating system being configured to read the list from the memory buffer and to manage memory usage to avoid the first portion of the memory that is defective;
- receiving a first request from the operating system to flush the list;
- in response to the first request, writing contents of the list from the memory buffer to the non-volatile storage;
- detecting a second request from the operating system to shut down the computer system;
- and
- prior to shutting down the computer system, persisting contents of the memory buffer, including the list, to the non-volatile storage.
A method implemented in an operating system running in a computer system that includes a processor system and a memory, comprising:
- identifying information associated with a memory buffer, wherein,
- the information includes a base address of the memory buffer and a size of the memory buffer;
- and
- the information is received from a firmware running on the computer system;
- reading a list from the memory, wherein each entry on the list identifies a location of a portion of defective memory within the memory;
- identifying a first portion of defective memory based on the list;
- managing memory locations used by the operating system based on the identified portion of defective memory, including avoiding use of the first portion of defective memory;
- identifying a second portion of the memory as defective;
- adding an entry to the list identifying the second portion of the memory as defective;
- sending a first request to the firmware to flush the list;
- and
- sending a second request to the firmware to shut down the computer system, and wherein the firmware persists contents of the memory buffer, including the list, to a non-volatile storage prior to shutting down the computer system.
A computer system, comprising:
- a processor system;
- a memory;
- a firmware running in the computer system;
- an operating system running in the computer system;
- and
- a computer storage medium that stores,
- first computer-executable instructions that are executable by the processor system to cause the firmware to at least:
- identify a memory buffer at which to store a list, wherein the list includes an entry identifying a first portion of the memory as defective;
- send an identification of the memory buffer to the operating system;
- identify a first request from the operating system to flush the list;
- in response to the first request, writing contents of the list from the memory buffer to a non-volatile storage;
- identify a second request from the operating system to shut down the computer system;
- and
- prior to shutting down the computer system, persist contents of the memory buffer to the non-volatile storage;
- and
- second computer-executable instructions that are executable by the processor system to cause the operating system to at least:
- identify information associated with the memory buffer, wherein,
- the information includes a base address of the memory buffer and a size of the memory buffer;
- and
- the information is received from the firmware;
- read the list from the memory, wherein each entry on the list identifies a different portion of the memory as defective;
- identify the first portion of memory as defective based on the list;
- manage memory locations used by the operating system based on the identified portion of defective memory, including avoiding use of the first portion of memory;
- identify a second portion of the memory as defective;
- add an entry to the list identifying the second portion of the memory as defective;
- send the first request to the firmware to flush the list;
- and
- send the second request to the firmware to shut down the computer system.
Dependencies are inferred from the claim text.