1. Work around faulty RAM

Hello Euphorians,

Is it possible to use Euphoria to keep Windows NT from using specific address
ranges in physical RAM?

I'm thinking of this: You have some "bad spot" in memory. Now make Euphoria
allocate memory in 1 mb chunks, until one of the chunks contains this "bad
spot". Then free all the other chunks, and only this one chunk won't be used
by Windows anymore.

The EU-program must not terminate, of course, only minimized (a little icon in
the task bar) or even be made invisible.

Would it work?

A very good program for checking RAM can be found by having a search engine
look for memtest, memtest86 and such. It should come up with something like
www.reality.sgi.../... (I have to look up the URL). This program also gives
the exact error location, so you can use it in the EU-program.

Lutz.

PS: My idea for this EU-program could even be commercially successful - I'd
call it "RAMRepair"... ;)

new topic     » topic index » view message » categorize

2. Work around faulty RAM

-P44249@NF

Hello Euphorians,

I wrote this a few days ago:

LH>make Euphoria allocate memory in 1 mb chunks, until one of the chunks 
LH>contains this "bad spot". Then free all the other chunks, and only this 
LH>one chunk won't be used by Windows anymore.

LH>The EU-program must not terminate, of course, only minimized (a little 
LH>icon in the task bar) or even be made invisible.

LH>Would it work?

Seems like it wouldn't work. I wrote a program test.exw:


include machine.e

atom x

x = allocate(1000000)

? x

while 1 do end while


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?

Lutz.

new topic     » goto parent     » topic index » view message » categorize

3. Re: Work around faulty RAM

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

new topic     » goto parent     » topic index » view message » categorize

4. Work around faulty RAM

-P64516@KI

Hello Robert,

RC>You've just discovered the difference between "virtual" memory and 
RC>physical memory.

Nope! - I've known the difference for more than a decade.

RC>Typically a chip will hold just one bit over a range of addresses

Trivially so! (for me at least)

RC>I got all the memory chips replaced, and the machine was fixed.

But that's exactly what I'm trying to avoid! It doesn't make sense to 
replace 128 mb of RAM, when only 1 out of > 1 billion bits doesn't work 
right.

"Elderly" EDO-RAM is getting pretty expensive (if available at all), and I 
only want to keep it running...

Lutz.

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu