Memory testers are specialized test equipment used to test and verify memory modules.
Types
Memory module testers can be broadly categorized into two types, hardware memory testers and software diagnostic programs that run in a PC environment. Hardware memory testers have more sophisticated and comprehensive test features built into the tester as compared to software diagnostic testing programs. Software diagnostic does allow for detection of possible problems when memory modules are already installed on the computer system.
Hardware testers
High-end automatic test equipment (ATE) Class Memory testers are used by most OEM memory chip manufacturers such as Samsung, Hyundai, Micron…etc. They are typically priced starting at one million dollars per system. This equipment must be operated by well trained semiconductor engineers. ATE Class Memory testers are built with very complex test algorithms to detect memory faults during the final stages of memory chip packaging.
Mid-range memory testers typically priced under $26,000,[1] and are commonly found in memory module manufacturing assembly houses. These testers are built to support mass volumes of memory module testing. They are also used for detecting assembly faults caused by mis-soldering and cross-cell contamination after chips are assembled onto PCB or SIMM cards. These memory testers are usually docked onto an automatic handling system for high volume production testing, thus eliminating manual intervention by an operator.
Low-end memory testers are usually relatively low cost ranging from $1000 – $3000. Their main features are portability, ease of use and relatively small size. They are typically used by the service industry especially by computer service technicians, RMA departments, memory reseller/brokers/ and wholesalers for verifying and testing memory modules that fails in PC system or before going into PC. Quality and features of this range of memory testers varies greatly depending on the manufacturer. A good memory tester is built with features comparable with high-end ATE and medium range memory tester. The key is to provide a simple to use tester at an affordable price that is still effective in capturing most memory faults and failures.
Software testers
Memory diagnostic software programs (e.g., memtest86) are low-cost or free tools used to check for memory failures on a PC. They are usually in the form of a bootable software distribution on a floppy disk or CD-ROM. The diagnostic tools provide memory test patterns which are able to test all system memory in a computer. Diagnostic software cannot be used when a PC is unable to start due to memory or motherboard. While in principle a test program could report its results by sending them to a storage device (e.g., floppy disc) or printer if working, or by sound signals, in practice a working display is required.
Worm memory tests
Some stronger memory tests capable of detecting subtle timing problems are implemented as self-modifying, dynamically self-relocating and potentially self-destructive memory worms called worm memory test (or worm test).[2][3][4][5]
Detected faults
Memory testers are designed to detect two types of faults that affect the functional behavior of a system (memory chip, logic chips or PCB board): Non-Permanent faults and Permanent faults.
Permanent faults
Permanent faults affect the logic values in the system permanently, these faults are easier to detect using a memory tester. Examples include:
- Incorrect connections between integrated circuits, boards, etc. (e.g. missing connections or shorts due to solder splashes or design fault)
- Broken component or parts of components
- Incorrect IC mask, (Manufacturing problem)
- Functional design errors (logical function that had to be implemented, is designed incorrectly).
Non-permanent faults
Non-Permanent faults occur at random moments. They affect a system's behavior for an unspecified period of time. The detection and localization of non-permanent faults are extremely difficult with a memory tester. Sometimes non-permanent faults will not affect the system's operation during testing.
There are two types of non-permanent faults: Transient fault and Intermittent fault.
Transient faults are hard to detect, and there are no well defined faults to detect. Errors in RAM introduced by transient faults are often called software errors, the following examples are possible factors that will contribute to transient faults:
- Cosmic ray (UV light)
- Alpha particle (Dust)
- Pollution
- Humidity
- Temperature
- Pressure
- Vibration
- Power supply fluctuations
- Electromagnetic interference
- Static electrical discharges
- Ground loops
Intermittent faults are caused by non-environmental conditions such as:
- Loose connections
- Deteriorating or aging components
- Critical timing
- Resistance and capacitance variation
- Physical irregularities
- Noise (noise disturbs signals in the system)
See also
References
- ↑ "Innoventions Ramcheck Advanced Memory Tester - PCSTATS.com". www.pcstats.com.
- ↑ The Worm Memory Test (PDF). Vector Graphic. 2015-10-21. Archived (PDF) from the original on 2019-05-15. Retrieved 2021-12-13. (3 pages) (NB. From a Vector Graphic 3 service manual.)
- ↑ Wilkinson, William "Bill" Albert (2003) [1996, 1984]. "The H89 Worm: Memory Testing the H89". Bill Wilkinson's Heath Company Page. Archived from the original on 2021-12-13. Retrieved 2021-12-13.
[…] Besides fetching an instruction, the Z80 uses half of the cycle to refresh the dynamic RAM. […] since the Z80 must spend half of each instruction fetch cycle performing other chores, it doesn't have as much time to fetch an instruction byte as it does a data byte. If one of the RAM chips at the memory location being accessed is a little slow, the Z80 may get the wrong bit pattern when it fetches an instruction, but get the right one when it reads data. […] the built-in memory test won't catch this type of problem […] it's strictly a data read/write test. During the test, all instruction fetches are from the ROM, not from RAM […] result[ing] in the H89 passing the memory test but still operating erratically on some programs. […] This is a program that tests memory by relocating itself through RAM. As it does so, the CPU prints the current address of the program on the CRT and then fetches the instruction at that address. If the RAM ICs are okay at that address, the CPU relocates the test program to the next memory location, prints the new address, and repeats the procedure. But, if one of the RAM ICs is slow enough to return an incorrect bit pattern, the CPU will misinterpret the instruction and behave unpredictably. However, it's likely that the display will lock up showing the address of faulty IC. This narrows the problem down eight ICs, which is an improvement over having to check as much as 32. […] The […] program will perform a worm test by pushing an RST 7 (RESTART 7) instruction from the low end of memory on up to the last working address. The rest of the program remains stationary and handles the display of the current location of the RST 7 command and its relocation. Incidentally, the program is called a worm test because, as the RST 7 instruction moves up through memory, it leaves behind a slime trail of NOPs (NO OPERATION). […]
- ↑ Steinman, Jan W. (1986-09-01). Written at West Linn, Oregon, USA. "The Worm Memory Test". The Right to Assemble (TRTA). Dr. Dobb's Journal of Software Tools for the Professional Programmer. Redwood City, California, USA: M&T Publishing, Inc. / The People's Computer Company. 11 (9): 114–115 (662–663). ISSN 1044-789X. #119. ark:/13960/t74v34p9p CODEN DDJOEB. Retrieved 2021-12-13. (2 pages)
- ↑ Steinman, Jan W. (1986). "III. Useful 68000 Routines and Techniques, 16. The Worm Memory Test" (PDF). Written at West Linn, Oregon, USA. Dr. Dobb's Toolbook of 68000 Programming. New York, USA: Brady Book / Prentice Hall Press / Simon & Schuster, Inc. pp. 341–350. ISBN 0-13-216649-6. LCCN 86-25308. Archived (PDF) from the original on 2021-12-13. Retrieved 2021-12-13. (1+5+10+1 pages)