Patent Publication Number: US-8539289-B2

Title: Memory testing system and method of computing device

Description:
BACKGROUND 
     1. Technical Field 
     Embodiments of the present disclosure relate generally to memory testing technologies, and particularly to a memory testing system and method for testing an memory module of a computing device. 
     2. Description of Related Art 
     A memory error often occurs during data transmission of a memory module of a computing device. Since the memory error may cause the computing device to crash, it is necessary to test the memory module once the memory module has been installed in the computing device. In a typical memory module testing method, the memory module is tested based on a stable operating voltage. However, the operating voltage of the memory module may be changed due to some unexpected factors, such as a failure of a component of a motherboard. Therefore, a more efficient testing system and method is desired to detect whether the memory module is stable when the voltage of the memory module is changed. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a schematic diagram illustrating one embodiment of a computing device comprising a memory testing system. 
         FIG. 2  is a flowchart of one embodiment of a memory testing method for testing a memory module of the computing device of  FIG. 1 . 
     
    
    
     DETAILED DESCRIPTION 
     The disclosure, including the accompanying drawings, is illustrated by way of example and not by way of limitation. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least one. 
       FIG. 1  is a schematic diagram illustrating one embodiment of a computing device  1  comprising a memory testing system  10  The computing device  1  further comprises a memory module  11 , a storage system  12 , and a processor  13 . The memory testing system  10  tests the memory module  11  to detect whether the memory module  11  is stable by changing an operating voltage of the memory module  11 . In one embodiment, the memory module  11  is an error checking and correcting (ECC) memory module that can automatically check and correct memory errors. It is understood that the memory module  11  can refer to one or more memory modules depending on the embodiment. It is further understood that  FIG. 1  is only one example of the computing device  1  that can include more or fewer components than those shown in the embodiment, or a different configuration of the various components. 
     The storage system  12  stores one or more programs, such as programs of a firmware or other applications of the computing device  1  and executed by the processor  13  to provide functions of the computing device  1 . In one embodiment, the storage system  12  may be a random access memory (RAM) for temporary storage of information, and/or a read only memory (ROM) for permanent storage of information. In other embodiments, the storage system  12  may also be an external storage device, such as a hard disk, a storage card, or a data storage medium. 
     The memory testing system  10  may include a plurality of software programs in the form of one or more computerized instructions stored in the storage system  12  and executed by the processor  13 , to perform operations of the computing device  1 . In the embodiment, the memory testing system  10  includes a voltage adjustment module  101 , a data reading and writing module  102 , and a determination module  103 . In general, the word “module”, as used herein, refers to logic embodied in hardware or firmware, or to a collection of software instructions, written in a programming language, such as, Java, C, or assembly. One or more software instructions in the modules may be embedded in firmware, such as in an EPROM. The modules described herein may be implemented as either software and/or hardware modules and may be stored in any type of non-transitory computer-readable medium or other storage device. Some non-limiting examples of non-transitory computer-readable medium include CDs, DVDs, BLU-RAY, flash memory, and hard disk drives. 
     The voltage adjusting module  101  adjusts the operating voltage of the memory module  11  to a first voltage. In the embodiment, the operating voltage of the memory module is a stub series terminated logic (SSTL) voltage. The first voltage is V+Vr, where the V is a nominal operating voltage or a standard operating voltage of the memory module  11 , and the Vr is predetermined according to a range of the operating voltage of the memory module  11 . For example, if the nominal operating voltage or the standard operating voltage V is 3.3V, and the range of the operating voltage is 3.3V±0.2V, the Vr can be predetermined as 0.1V. 
     The data reading and writing module  102  writes a predetermined data set into the memory module  11  after the operating voltage of the memory module  11  is adjusted to the first voltage, and reads out the written data set from the memory module  11 , to accomplish a data writing and reading process of the memory module  11 . In the embodiment, the memory module  11  may automatically check and correct memory errors (data errors) occurred in during the data writing and reading process using an ECC function of the memory module  11 . If the memory errors are checked and are corrected, the memory module  11  may record how many memory errors are in an ECC register of the memory module  11 . 
     The voltage adjustment module  101  further adjusts the operating voltage of the memory module  11  to a second value, where the second value is V−Vr. 
     The data reading and writing module  102  further writes the data set into the memory module  11  when the operating voltage of the memory module  11  is adjusted to the second voltage, and reads out the written data set from the memory module  11 . 
     The determination module  103  acquires a register value of the ECC register of the memory module  11  after the data writing and reading process is accomplished under the second voltage, and determines whether the memory module  11  is stable during the changing of the operating voltage of the memory module  11  according to the register value. In the embodiment, the register value represents how many memory errors are in the memory module  11  during the data writing and reading process of the memory module  11 . If the register value is equal to or less than a predefined value, such as a digital number “0”, the determination module  103  determines that the memory module  11  is stable because no memory errors occurred during the data writing and reading process. If the register value is greater than the predefined value “0”, the determination module  103  determines that the memory module  11  is unstable because one or more memory errors have occurred during the data writing and reading process. In addition, the determination module  103  further generates a test result indicating the amount of the memory errors that have occurred after the data writing and reading process is accomplished under the second voltage if the memory module  11  is determined to be unstable. 
       FIG. 2  is a flowchart of one embodiment of a memory testing method of the computing device  1  of  FIG. 1 . Depending on the embodiment, additional blocks may be added, others removed, and the ordering of the blocks may be changed. 
     In block S 01 , the voltage adjusting module  101  adjusts the operating voltage of the memory module  11  to a first voltage. In the embodiment, the operating voltage of the memory module is a stub series terminated logic (SSTL) voltage. The first voltage is V+Vr, where V is a nominal operating voltage or a standard operating voltage of the memory module  11 , Vr is predetermined according to a range of the operating voltage of the memory module  11 . The operating voltage of the memory module  11  may be adjusted through a basic input output system (BIOS) of the computing device. 
     In block S 02 , the data reading and writing module  102  writes a predetermined data set into the memory module  11 , and reads out the written data set from the memory module  11 , to accomplish a data writing and reading process of the memory module  11 . 
     In block S 03 , the voltage adjustment module  101  adjusts the operating voltage of the memory module  11  to a second value, where the second value is V−Vr. 
     In block S 04 , the data reading and writing module  102  writes the data set into the memory module  11 , and reads out the written data set from the memory module  11 . 
     In block S 05 , the determination module  103  acquires a register value of the ECC register of the memory module  11  after the data writing and reading process is accomplished under the second voltage, and determines whether the memory module  11  is stable during the changing of the operating voltage of the memory module  11  according to the register value. In addition, the determination module  103  further generates a test result indicating the amount of the memory errors that have occurred after the data writing and reading process is accomplished under the second voltage if the memory module  11  is determined to be unstable. In the embodiment, if the register value is equal to or less than a predefined value, such as a digital number “0”, the determination module  103  determines that the memory module  11  is stable because no memory error occurred during the data writing and reading process. If the register value is greater than the predefined value “0”, the determination module  103  determines that the memory module  11  is unstable because one or more memory errors have occurred during the data writing and reading process. 
     Although certain embodiments of the present disclosure have been specifically described, the present disclosure is not to be construed as being limited thereto. Various changes or modifications may be made to the present disclosure without departing from the scope and spirit of the present disclosure.