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