[lkml]   [1996]   [Nov]   [20]   [last100]   RSS Feed
Messages in this thread
SubjectRe: Memory Trauam

> You have discovered the oldest software problem. You can't test RAM using
> a program that runs in the RAM being tested! You can try, but you will
> probably not find the bad RAM.

one possibility is to copy the test program into video memory
which will at least avoid interaction of instruction fetches etc.
with the normal DRAM bus and code corruption.
but recently PC industry decided to invent "UMA" for even cheaper PCs to avoid this ;-)

> To test a single byte, you would have to save a pattern of all the bits
> existing in all of RAM. Then modify a single bit. Then read all the
> other bits in all of RAM to make sure that they haven't changed.
> Then you would have to alter a single bit in the rest of the RAM and
> do the same thing all over again. You would do this (N^2 - 1) times
> with N being the total number of bits in RAM. Then would you would
> change the next bit of your tested byte and do the same thing all over
> again.

it's not really neccesary to store the contents of all existing RAM.
you can fill all the memory with a pseudo ramdom sequence (which can be
reproduced by an algorithm) before staring byte/bit tests.

then save the contents of the byte to be tested; run lots of tests
on this byte (count 0..255; toggle single bits etc.; maybe put some
extra stuff on the data/address bus between every memory access
to avoid bus glitches etc) and then restore the original contents
of this byte. step on to the next byte for testing until you're through
all the memory.

finally check all the ram again if it's still keeping all the bits
of your pseudo ramdom sequence.

when looping this test; use a different seed for the ramdom sequence.
this will give a pretty good test which will find all types of address errors,
bit mirroring etc. which you can't find with a very ordered test.

> For RAM to be working properly, every bit must be unique and every bit must
> store its state forever

this test will take slightly longer; but using 64bit CPUs it would finish
2 times as fast, using 128bit CPUs will... ;-)

> Therefore RAM testing programs are useful but they do not thoroughly
> test RAM. They may find bad chips if the chip is so bad that it doesn't
> function very well at all. However, problems due to timing, design, and
> drifting RAM characteristics are unlikely to be found.

a good ram testing device will use different (lower) power supply and signal levels
for testing (and if possible higher environmental temperature) to simulate/force
worst case conditions to be able to better guarantee operation unter normal conditions.

All SCSI disks will from now on ___ _____
 \ /
  Last update: 2005-03-22 13:38    [W:0.139 / U:1.268 seconds]
©2003-2014 Jasper Spaans. hosted at Digital Ocean