This page describes what I went through to deal with my defective computer memory.
The 256 MB PC-133 SD-RAM SIMM was bought in May 2001, along with the rest of the computer. As far as can be told, the memory worked perfectly well for 16 months.
At the end of September in 2002, I received several large files from a Local Area Network connection. At the time I assumed them to be error-free. But in December, they were discovered to be riddled with errors.
In November in 2003, I discovered a nifty and quite thorough memory testing program: memtest86. On running it—mostly for curiosity—I was informed that there was unreliable memory approximately 155 MB into the memory chip.
There is a patch for Linux that allows the user to specify, at boot time, a set of memory pages that are not reliable. These pages are then locked to prevent them from being allocated to any task. Was I running Linux, I would specify the one bad page, and only have to go without 4 kB (1/65536th).
Microsoft Windows (versions NT/2K/XP as far as I can tell) has a boot-time switch, /MAXMEM=x, that allows the user to say, "only use the first x MB of physical memory". This switch is not designed for working around bad RAM, and results in huge wastage if used for that purpose. In my case, I would need to go without over 100 MB of RAM just to avoid that one bad bit!
My solution was a program that allocates memory, tests it for bad bits, and locks it (until the computer is restarted) if any are found.
For various reasons, the program is implemented as a swarm of individual instances, who each grab 16 MB of physical memory. When an instance finds the one bad bit on my system, it locks that page and vanishes from the desktop (but not from memory). The other instances may then terminate.
Copyright (C) 2003, 2004 Edmund Horner. $Id: index.html 2412 2007-01-23 03:08:21Z Edmund $