Hardware Reference
In-Depth Information
CST ( www.simmtester.com ) , and Innoventions ( www.memorytest.com ) . They can be ex-
pensive, but for a high volume system builder or repair shop, using one of these module
testers can save time and money in the long run.
After your OS is running, memory errors can still occur, typically identified by error mes-
sages you might receive. Here are the most common:
Parity errors —The parity-checking circuitry on the motherboard has detected a
changeinmemorysincethedatawasoriginallystored.(Seethe“ HowParityChecking
Works section earlier in this chapter.)
General or global protection faults —A general-purpose error indicating that a pro-
gram has been corrupted in memory, usually resulting in immediate termination of the
application. This can also be caused by buggy or faulty programs.
Fatal exception errors —Error codes returned by a program when an illegal instruc-
tion has been encountered, invalid data or code has been accessed, or the privilege
level of an operation is invalid.
Divide error —A general-purpose error indicating that a division by 0 was attempted
or the result of an operation does not fit in the destination register.
Ifyouareencounteringtheseerrors,theycouldbecausedbydefectiveorimproperlycon-
figured memory, but they can also be caused by software bugs (especially drivers), bad
powersupplies,staticdischarges,closeproximityradiotransmitters,timingproblems,and
more.
If you suspect the problems are caused by memory, there are ways to test the memory to
determine whether that is the problem. Most of this testing involves running one or more
memory test programs.
Another problem with software-based diagnostics is running memory tests with the sys-
tem caches enabled. This effectively invalidates memory testing because most systems
have what is called a write-back cache . This means that data written to main memory is
first written to the cache. Because a memory test program first writes data and then im-
mediately reads it back, the data is read back from the cache, not the main memory. It
makes the memory test program run quickly, but all you tested was the cache. The bot-
tom line is that if you test memory with the cache enabled, you aren't really writing to
the SIMM/DIMMs, but only to the cache. Before you run any memory test programs, be
sure your processor/memory caches are disabled. Many older systems have options in the
BIOS Setup to turn off the caches. Current software-based memory test software such as
the Windows Memory Diagnostic and Memtest86 automatically turn off the caches on
newer systems.
Search WWH ::




Custom Search