Subject: Re: rtVAX port (Was: odd piece of hardware)
To: David Brownlee <abs@anim.dreamworks.com>
From: Anders Magnusson <ragge@ludd.luth.se>
List: port-vax
Date: 08/12/1999 09:34:25
> On Wed, 11 Aug 1999, Anders Magnusson wrote:
> 
> > >
> > >   The rtVAX is a variant of the VAX Architecture. An rtVAX processor
> > >   implements the per-process page tables in physical memory.  All other
> > >   VAX processors implement the per-process page tables in virtual memory.
> > >   Therefore, translation of of process-space addresses is different on an
> > >   rtVAX than described in Chapter 4. *
> > >
> > This would require quite much memory in the machine to be useable.
> > If the user PTEs must be in physical memory, the memory must be contiguous,
> > and therefore it must be allocated at boot. This means that page tables
> > for one process of size 32MB would require 256K physical memory, and
> > the possibility to have 50 processes would need 12MB pre-allocated memory.
> > 
> 	Would that be the only change needed?
> 
> 	A variation on that might be to allocate enough space for (say)
> 	eight user PTEs, then any process that needs to run gets its
> 	PTEs copied into one of the physical PTEs on a LRU basis. If
> 	you're using 4K page sizes then presumably the virtual PTEs could
> 	be 64K each and expand into the 256K physical PTE?
> 
That's actually a interesting idea. Why didn't I thinka about that? :-)
That could be a way to shrink down the amount of memory used in normal
NetBSD/vax also if someone wants to run on a machine with very little memory. 
The PTE info doesn't even have to be saved; that's handled by the 
normal memory management.
This would mean that when a new process is started, it first checks if
there is any physical PTE available; if it is; use it. If not, take
the "most unused", clear all used PTEs, and start executing. Simple :-)

-- Ragge