🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.arch
Article #11370

Re: Registerless processor

#11370
From: leichter
Date: Fri, 20 Nov 1992 23:46
50 lines
2905 bytes
In article <DERAADT.92Nov19231103@newt.newt.cuc.ab.ca>, deraadt@newt.cuc.ab.ca
(Theo de Raadt) writes:
| In article <BxxwAq.G8C@xrtll.uucp> rsnider@xrtll.uucp (Richard Snider)
| writes:
|    The PDP-10 could fall into this classification without too much arguing.
|    It had its set of 16 general purpose registers defined simply as the
|    first 16 locations in memory.  Naturally, they implemented the the
| 
| PDP11 registers map into the memory address space as well.

No; this is false.  The registers are NOT in the memory address space in the
sense you are talking about.

On SOME PDP-11 models, it was possible to access the registers via addresses
in the I/O page.  I/O page addresses do not correspond to "memory", and it is
quite reasonable to have some of them "loop back" into the processor,
providing access to internal processor state.  That's just what happened in
this case.  Access to the registers via I/O space could be slow, was cumber-
some, and was in general restricted to OS code (since normal user code could
not be given access to I/O page addresses - that would give it complete
control over every device in the system.)

|							     There are two
| banks of 8 registers, though which can be accessed depends on a bits in
| the status register.

As far as I know, no PDP-11 ever built had TWO banks of registers.  The
machines that had multiple banks had THREE of them, one each for user,
supervisor, and kernel modes.  (The earliest machines, if I remember right,
didn't even implement two modes of operation.  The machines that implemented
multiple banks were late enough to also implement the three modes.

Even the earliest multi-mode machines, however, had separate stack pointers
for the two modes.  The stack pointer was in a register (R6).

| 
| I wonder how this was implimented? I guess that in the early PDP11's the
| registers did not exist at all.

You guess dead wrong.

|				  But certainly they must have fixed that
| in later versions. Was it possible to run programs out of the registers
| on a newer PDP11?

Running programs out of I/O space was generally unsupported, and that's where
the registers appeared.  It MIGHT work, though I'd guess not.  If it DID work,
it would be slower than running from real memory.

							-- Jerry
Technical Details
Message-ID: <1992Nov20.184610.1@zodiac.rutgers.edu>
Path: arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!sdd.hp.com!cs.utexas.edu!rutgers!igor.rutgers.edu!zodiac.rutgers.edu!leichter
References: <1992Nov13.181654.11692@fcom.cc.utah.edu> <BxxwAq.G8C@xrtll.uucp> <DERAADT.92Nov19231103@newt.newt.cuc.ab.ca>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!sdd.hp.com!cs.utexas.edu!rutgers!igor.rutgers.edu!zodiac.rutgers.edu!leichter
From: leichter@zodiac.rutgers.edu
Newsgroups: comp.arch
Subject: Re: Registerless processor
Message-ID: <1992Nov20.184610.1@zodiac.rutgers.edu>
Date: 20 Nov 92 23:46:10 GMT
References: <1992Nov13.181654.11692@fcom.cc.utah.edu> <BxxwAq.G8C@xrtll.uucp> <DERAADT.92Nov19231103@newt.newt.cuc.ab.ca>
Sender: news@igor.rutgers.edu
Organization: Rutgers University Department of Computer Science
Lines: 50
Nntp-Posting-Host: pisces.rutgers.edu