MMU question

Tom Novelli
Mon Mar 6 18:27:17 2000

> Tom Novelli wrote:
> > 
> >    A discussion on comp.lang.forth led me to wonder: Is virtual memory
> > hardware unnecessary for TUNES?  We don't need it for protection if we
> > have automatic proofing.  As for garbage collection, I've heard of
> > efficient memory managers that don't use VM hardware.  But can we do
> > persistent storage, efficiently, without VM hardware?
> by VM hardware do you mean all paging hardware or just the page present
> flag?

All of it.  Specifically page-mapping and the 'dirty', 'accessed' and
'present' flags.

> when i save objects in brix i check the dirty bits for each page of the
> object and save only those pages that are 'dirty'. VM is handled by
> unsetting the present bit when swapped out to disk and sets the bit and
> loads the data back into ram when accessed.
> without VM hardware you would need to save the entire object. you also
> dont know which objects have chaned so to be truely persistent you have
> to save any object that gets loaded even if none of them get modified.
> the only objects you wouldnt have to save are the ones that have been
> write-locked.

We can get around that.  Break large objects up into blocks, and mark each
block 'dirty' when you change it... like a traditional Forth system with
raw disk blocks.

Virtual memory (swapping out programs to disk) would be inefficient
without hardware support.  But who needs it?  And who hates it?  Write
smaller programs or buy more RAM.  Anyway, TUNES will need to keep track
of what's using what in order to do garbage collection.  Objects need to
explicitly say "I need this object, where is it?" and "ok I'm done with
it".  That's high-level as opposed to low-level.  Even Forth is high-level
in this respect.

So we'll be allright on machines that don't have MM hardware, run faster
on those that do, and eliminate the need for it in future machines.