Information handling systems and related methods for testing memory during boot and during operating system (OS) runtime
AssigneeDell Products L.P.
InventorsCraig L. Chaiken, Siva Subramaniam Rajan
Life of this patent
Estimating the term…
Abstract
Embodiments of information handling systems (IHSs) and computer-implemented methods are provided herein for testing system memory (or another volatile memory component) of an IHS. In the disclosed embodiments, memory testing is performed automatically: (a) during the pre-boot phase each time a new page of memory is allocated for the first time after a system boot, and (b) during OS runtime each time a read command is received and/or an event is detected. By proactively testing each page of memory, as the page is allocated but before information is stored therein, the systems and methods disclosed herein prevent “bad” memory pages from being used.
Claims20
A computer-implemented method performed by at least one processing device of an information handling system (IHS) for testing a volatile memory component of the IHS during a pre-boot phase of the IHS, wherein the computer-implemented method comprises:
- creating a memory test bitmap (MTB) for all memory locations within the volatile memory component during the pre-boot phase before data or program code is stored within the volatile memory component, wherein each bit in the MTB represents one page of memory within the volatile memory component;
- initializing all bits of the MTB to zero (0);
- performing a memory test on at least one page of memory when the at least one page of memory is first allocated after the IHS is booted;
- and
- setting a bit in the MTB corresponding to the at least one page of memory to one (1) to indicate that the at least one page of memory has been tested.
A computer-implemented method performed by at least one processing device of an information handling system (IHS) for testing a volatile memory component of the IHS during an operating system (OS) runtime, wherein the computer-implemented method comprises:
- receiving a read command during OS runtime for reading data from a computer readable storage device of the IHS into the volatile memory component;
- reading a memory location parameter specified in the read command, wherein the memory location parameter corresponds to one or more pages of memory within the volatile memory component;
- and
- prior to writing the data into the one or more pages of memory, accessing a memory test bitmap stored within a non-volatile memory component of the IHS to determine if the one or more pages of memory have already been tested, wherein each bit in the memory test bitmap represents one page of memory within the volatile memory component;
- wherein if the memory test bitmap indicates that at least one page of the one or more pages of memory has not yet been tested, the computer-implemented method further comprises:
- performing a memory test on the at least one page of memory;
- and
- setting a bit in the memory test bitmap corresponding to the at least one page of memory to indicate that the at least one page of memory has been tested.
An information handling system (IHS), comprising:
- at least one processing device;
- a volatile memory component comprising physical memory;
- a non-volatile memory component comprising boot firmware, wherein after the IHS is booted and before an operating system (OS) of the IHS is loaded, a boot service of the boot firmware is executed by the at least one processing device to:
- create a memory test bitmap (MTB) for all physical memory contained within the volatile memory component before the boot firmware is stored within the volatile memory component, wherein each bit in the MTB represents one page of physical memory within the volatile memory component, and wherein each bit is:
- set to zero (0) if a corresponding page of physical memory has not yet been tested;
- and
- set to one (1) if a corresponding page of physical memory has already been tested;
- and
- access the MTB each time a page of physical memory is allocated for the first time to determine if a bit corresponding to the page of physical memory has already been tested.
Dependencies are inferred from the claim text.