Article View: comp.arch
Article #11370Re: Registerless processor
From: leichter
Date: Fri, 20 Nov 1992 23:46
Date: Fri, 20 Nov 1992 23:46
50 lines
2905 bytes
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!leichterReferences:
<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