On 2010 Oct 28, at 2:46 PM, Johnny Billquist wrote:
On 2010-10-28 23:02, Brent Hilpert <hilpert at
cs.ubc.ca> wrote:
How about the notion that the PDP-11 was where
several prior but
then-topical innovations coalesced into one machine/architecture?
I think that would be a very dubious, and hard to prove claim. :-)
It may be more work than proving an individual claim of innovation, but
it is still a plausible notion to research historically.
> ...
On the topic
of memory, I would agree with Johnny about "virtual
addresses", but differ on "virtual memory": virtual memory to me has
always meant demand-paging where the RAM address-space seen by the
user
can be larger than the physical RAM, distinct from the simple mapping
of addresses, but the use of the term is a matter of definition.
Thank you.
But what, pray tell, would you say a virtual address pointed to, then?
Magic smoke? :-)
Physical memory via the MMU; this is not a contradiction.
Why are people so hung up on physical memory size vs.
virtual memory
size when they need to define what virtual memory is?
I just don't get it. :-)
Because there is a fundamental difference between having your valid
address space limited to available physical RAM, even if you can map a
"virtual" address to different places in that RAM, and having a
transparently addressable (large) address space unlimited by a lesser
quantity of physical RAM. In the latter it *appears* (hence virtual)
that you have more RAM than you actually do. This has always (IME) been
the common meaning of "virtual memory".
-
I'm too many years away from programming a PDP-11, but while it may as
you suggest have been possible to do demand-paging in principle, how
complex might it have been in practice? Trapping an address fault might
be easy enough, but what about instruction restart/re-execution while
accounting for all possible side effects that may or may not have
occurred between the start of the instruction and the address fault.
IIRC, the 68000 series ran into this problem when people started trying
to do (demand paging) VM with it. When an address fault occurred, not
all of the instruction state was saved and restarting the instruction
became a problem. It was fixed in the next version but I forget where
in the series (68010->20, 20->30, etc).