Happy Birthday VAX 11/780 (influence of)

Chuck Guzis cclist at sydex.com
Sat Oct 30 12:08:19 CDT 2010

On 29 Oct 2010 at 21:14, Johnny Billquist wrote:

> If your program vrites data to address 0, and reads it back, and get
> the same data back, and another program on the same machine, at
> roughly the same time, write to address 0, and reads the same data
> back, and that data is different than the first programs data, then
> I'd say you have virtual memory.

So, your definition ties virtual memory into multi-user access?  
That's not the way I learned it.

Consider (again folks, I'm sorry for the reference) the CDC 6600 
(circa 1964).  Every user is given a relocation address (called RA) 
and field length (FL) as a way of partitioning main memory.  Each 
user's memory addressing space is kept isolated from every other's 
and this fits your definiton because one user's location X was 
different from every other user's location X and there was no way for 
a user to tell what his RA was; i.e. each user was safely "boxed in".

That's not virtual memory by any stretch of the definition.  Over-
committing memory meant writing/reading the entire FL of a user to 
disk ("rollout" and "rollin").

Now consider the STAR-100 (I think it would qualify as the first 
virtual memory machine of CDC), circa 1969.  Every user got an 
addressing space of 48 bits, but the machine itself had only 
512Kwords (64 bit) of physical storage.  For production use, most of 
the time the system was run in single-user mode (kept thrashing down 
with large data sets).  That fits my definition of VM because the 
user was fooled into thinking that there was more physical memory 
than there really was.  

Aside from expanding program storage, the large addressing space was 
used to map file space (another type of "memory-mapped I/O"), so file 
access was actually performed through the paging hardware/software.  
That was kind of cool, as the STAR was a memory-to-memory vector 
machine, so you could use vector instructions on entire files, rather 
than have to issue reads and writes for pieces of a file.

So I think we differ considerably in our definitions.


More information about the cctalk mailing list