🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.amiga.tech
Article #13036

Re: (Fairly) Complete Amiga VM design (was Re: MEMF_PHYSICAL?)

#13036
From: Doug Merritt
Date: Wed, 07 Jun 1989 01:17
110 lines
6626 bytes
Well, I haven't seen any responses to my Amiga virtual memory support
proposal, so I may as well respond to:

In article <54912@linus.UUCP> eachus@mbunix.mitre.org (Robert I. Eachus) writes:
>     I was there Charlie! And the reason most 70's computers gave each
>user his own address space was that they had run out of address bits,
>and putting each user in his own box, postponed the architectural doom
>date for a few more years.

I fail to see the attraction in denying that there are any reasons
besides addressing limitations for separate address spaces. On the
Amiga, as Valentin and others point out, we want (at least some) shared
address space. On multiuser timesharing systems it is often considered
desirable to have separate address spaces.

And yes, it certainly was *also* an advantage that this stretched
addressing limitations. If you consider the 1978 introduction of
the VAX 11/780 with relatively large address space, by your argument
there was no need for separate address spaces. Yet both VMS and UNIX
on the VAX supported them. Why? Because they were desired both by
the OS implementors and their users/customers. If the people who design
a machine, sell a machine, program a machine, and use a machine all
say something is useful, then there's little point in saying it isn't
useful after all...it is to *them* whether *you* need it or not.

>
>     The clearest example is the PDP-11 which started life with 16-bit
>hardware and instruction-set adresses. As this limit became more and
>more intolerable, the hardware addresses were upped (to a final figure
>I think of 22-bits), but addresses in programs were still required to
>be 16-bits max.

Nice classic example. Note that compatibility & marketing reasons are
the source of the "16 bit max" requirement, while the extra high bits
of physical address allowed for more effective timesharing (small individual
processes, but many concurrently residing in physical ram/core). In
this example, separate address spaces are *mandated* by a simple lack
of enough address bits to address all the other processes. In the VAX
separate address spaces were not necessary; it took extra hardware to
implement this feature. Yet it is a direct outgrowth of the PDP 11
architecture, with the requirement for strict binary compatibility
dropped (aside from "compatibility mode").

>Having separate data and instruction address spaces
>was added to give programmers one more effective address bit, but boy
>did it make things messy.

Depends on how you look at it. It had the secondary advantages that
you couldn't accidentally overwrite instructions, so that many people
claimed it was actually a cleaner model than the combined I&D. True,
you now have 2 address spaces, but why is that really messy? The kernel
has a separate address space than user processes, but if anything it
makes things cleaner to work with. The *really* big problem with
separate I&D is that it broke nargs(), which was the only mildly advanced
feature the C language ever had. List processing is permanently brain
damaged in C without it. (Of course, the *implementation* of nargs()
was *really* messy, but that's another story.)

>     Writing programs which do page table swapping is even messier,

Yes, but even that comparison is unfair to PDP 11 separate I&D, because
the *user* programs didn't have to manage the two address spaces, unlike
your examples like the PDP-8 and today's brain-dead favorite, the 8086.

>advantage.  But I would never, even with a gun to my head, buy a
>machine which supported more physical memory than was directly
>addressable in normal address modes.

Definitely; once you've got 32 bits of address space, you're good
for another decade. :-)

>     Gordon Bell said it all: (this may not be exact) "No computer
>architecture has ever become obsolete for any reason other than a lack
>of address bits."  He should know, he designed the PDP-15 nee PDP-1

Bell has said a lot of nifty quotable things, and I respect him. But
if he said that, he was exaggerating to make a point. All these machines
he designed were mini's, after all; that might bias his point of view.
Traditionally mini's had fewer address bits than mainframes and supers, and it
certainly did tend to cause problems down the road.

>the limit that will change.)  Recently the need for address bits has
>been increasing at a rate of almost one a year.  If we say that with 1.3
>Amigas require 1-Meg, then most of the current Amigas will run out of
>physical address space in about 3 or 4 years, but it will take another
>10 years to hit the architectural limit of the 680x0 family.  Note
>that reserving 4 Meg of address space for CHIP RAM was a foresighted
>decision.  But a new address map will be needed in say 1992, but that
>one would be needed to support more than 16 Meg on the FAST bus anyway.

Very interesting comments, thanks for the insights.
	Doug

P.S. The whole industry is fascinated with quantitative curves of
progress. Mark my words, within the next decade there will be a shift
of importance to major qualitative architectural change. Quaint notions
of fixed numbers of address bits, small fixed numbers of address spaces,
small fixed numbers of addressing capabilities/protections, etc, will
all eventually disappear, not long after non-von-neumann architectures,
object oriented architectures, hardware garbage collection, and architectural
support for dynamic data structure shaping are taken for granted rather than
being novelties. I figure on seeing this around the time that optical logic
starts replacing GaAs (unless nanocpu's get there first).

Of course, right now nobody'll care I think this, and by the time it
happens nobody'll remember I said so. Wish I could figure out something
practical to *do* with these predictions...
-- 
Doug Merritt		{pyramid,apple}!xdos!doug
Member, Crusaders for a Better Tomorrow		Professional Wildeyed Visionary
Technical Details
Message-ID: <377@xdos.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!attcan!utgpu!utstat!jarvis.csri.toronto.edu!rutgers!cs.utexas.edu!uunet!ncrlnk!ncr-sd!hp-sdd!hplabs!hp-ses!hpcuhb!hpda!motcsd!xdos!doug
References: <8906010252.AA11810@jade.berkeley.edu> <367@xdos.UUCP> <54912@linus.UUCP>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!utgpu!utstat!jarvis.csri.toronto.edu!rutgers!cs.utexas.edu!uunet!ncrlnk!ncr-sd!hp-sdd!hplabs!hp-ses!hpcuhb!hpda!motcsd!xdos!doug
From: doug@xdos.UUCP (Doug Merritt)
Newsgroups: comp.sys.amiga.tech
Subject: Re: (Fairly) Complete Amiga VM design (was Re: MEMF_PHYSICAL?)
Keywords: virtual memory, address space
Message-ID: <377@xdos.UUCP>
Date: 7 Jun 89 01:17:06 GMT
References: <8906010252.AA11810@jade.berkeley.edu> <367@xdos.UUCP> <54912@linus.UUCP>
Reply-To: doug@xdos.UUCP (Doug Merritt)
Organization: Hunter Systems, Mountain View CA (Silicon Valley)
Lines: 110