# Memory tester

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, 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).

## 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).
* Defective storage cell

### 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)
* Row hammer susceptibility