Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/17/84 chuqui version 1.7 9/23/84; site nsc.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxn!ihnp4!nsc!jon From: jon@nsc.UUCP (Jon Ryshpan) Newsgroups: net.micro.68k,net.micro.16k Subject: Re: PDP11s vs the micros Message-ID: <2994@nsc.UUCP> Date: Thu, 18-Jul-85 02:35:40 EDT Article-I.D.: nsc.2994 Posted: Thu Jul 18 02:35:40 1985 Date-Received: Fri, 19-Jul-85 03:04:53 EDT References: <1617@hao.UUCP> <847@mako.UUCP> <2422@sun.uucp> Reply-To: jon@nsc.UUCP (Jon Ryshpan) Organization: National Semiconductor, Sunnyvale Lines: 74 Xref: watmath net.micro.68k:1016 net.micro.16k:352 Summary: In article <2422@sun.uucp> you write: >Speaking of double-indirect, tektronix!tekecs!jans said: >> My only wish is that Nati had given all the >> general purpose registers this facility, so I wouldn't have to shuffle the >> SP or FP around so much! > >Hmm. You mean the totally orthogonal wonderful National architecture >has a few warts after all? > The 32000 does (in fact) have some warts, but in my humble opinion this isn't one of them. The 320xx is not a register machine like the PDP11 or some other well known processors. It's a p-machine with some registers added to it for extra speed. You don't expect to have symmetry between the registers that make up the p-machine and the other registers that speed it up. The basic machine architecture uses these principal registers: FP - The Frame Pointer : These define the current SP - The Stack Pointer : activation record SB - The Static Base : Pointer to own variables Link Base : Linkage to external procedures The machine would run perfectly happily without any more registers; but it would be slow, because all data references would be to main memory. So some additional registers were added to allow for on-chip data storage. These registers have addressing modes the same as a main memory location, when addressed via one of the principal registers (FP, SP, or SB). The addressing modes are: o Y(FP) - Direct addressing: The contents of the location Y bytes above the Frame Pointer o X(Y(FP)) - Displaced addressing: The contents of the location X bytes about the location that the location Y bytes above the frame pointer points to. (Same for SP and SB.) The register modes are: o R0 - Register value: The contents of register R0 o X(R0) - Register displaced addressing: The contents of the location X bytes above the location that R0 points to. (Same for R1..R7) If you move something from memory to register, you have exactly the same access capability to it that you had when it was in memory, no more, no less. This is what we mean by symmetry. (There's more, but this is the most important part.) One of the most important parts of processor architecture is the struggle for bits - you want to be able to say as much as you can with the least number of bits. The 32000 gets away with a 5 bit mode field, which does about as much as the 6 bit mode/address field in the another well known processor or the 8 bit mode/address field in the some other well known processors. -- Thanks - Jonathan Ryshpan {cbosgd,fortune,hplabs,ihnp4,seismo}!nsc!jon nsc!jon@decwrl.ARPA Let justice be done though the heavens fall.