Re: Work around faulty RAM
- Posted by Robert Craig <rds at RapidEuphoria.com> Mar 26, 2001
- 447 views
Lutz Heitmann writes: > Then I started it a dozen times from the desktop, > expecting the value of x to go up with every new task. > NT should allocate memory further and further > on within physical memory space. But the address > was always the same... > I even suspected NT of reallocating the same > space over and over again, but that wasnt the case: > A value poked in one task didn't show up in another > task at (seemingly) the same address. > Now I'm wondering: What do these addresses > actually mean? You've just discovered the difference between "virtual" memory and physical memory. The addresses that you normally deal with in a Euphoria (or any other language) program are called "virtual" addresses. Each program has it's own "virtual address space" that is independent of the address space of all other programs. The operating system and the hardware map each virtual address to a physical address. This is done very quickly so it doesn't slow things down. The physical address is fed to the memory chips and they respond with the data that's stored at that physical address. Typically a chip will hold just one bit over a range of addresses, so you might need 8 chips to get all the bytes over a range of addresses. A few years ago I had a problem similar to yours, where my machine was crashing a lot and I suspected that I had faulty memory. I wrote a Euphoria program to copy megabytes of data (in a sequence) back and forth millions of times, checking the result of the copy each time. After running for several minutes the program would usually fail, with a single bit being incorrect in one byte. This showed that I had an unreliable chip. I got all the memory chips replaced, and the machine was fixed. Regards, Rob Craig Rapid Deployment Software http://www.RapidEuphoria.com