On Thu, 20 Apr 2006 19:41:33 +1000, Clifford wrote:
>Anders Lindgren wrote:
>> I think the PDP-11 had eight 16 bit general purpose register.
>
>Yes, but at least one wasn't general purpose; it was the program
>counter (r6?).
R7
>The fact that it was accessable as a general
register
>made all kinds of nice tricks possible. IIRC the status register
>was special as well (r7?)... but I might be dreaming.
I think the status register was located at an address, 177776 in
octal.
>The stack pointer could have been any of the
others, but one was
>used by convention.
Actually, there are instructions which use the SP (R6) implicitly. For
example, JSR, RTS, MARK, interrupts and RTI, as well as various
software traps like TRAP and EMT, as well as RTT.
For those who haven't done so already, these are my early comments on
the MSP-430 and the PDP-11 -- comparison-wise:
http://users.easystreet.com/jkirwan/new/msp430.html
For those interested in manuals or other related materials on the
PDP-11 and/or DEC, I like this one:
http://research.microsoft.com/users/GBell/Digital/DECMuseum.htm
Jon
>>> My guess is that PDP-11 influenced Motorolas 68000,
Back in the late 70s my software colleagues always said that the PDP-11,
M6800, M6809, M68000 were all designed by SOFTWARE engineers.
It was clear to us that the Intel 8008, 8080, 8088, 8086 etc were designed
by HARDWARE engineers ... just take a look at their architectures,
instruction sets and opcode mnemonics!
The Data General NOVA was a bit different ... non-orthogonal, but nice to
program in a peverse sort of way. Perhaps it was designed by software
engineers who had very little scope to request hardware features?
(Both the PDP-11 and M68K could be microcoded - an advanced feature for the
era. PDP-11 microcode was used to implement features such as image
processing opcode. The M6K microcoding had to be done by Motorola: their
Hong Kong branch marketed a 4 x microded 68K based chipset to emulate the
IBM 370 ... but it disappeared without trace)
Reply by Richard UK.●April 20, 20062006-04-20
>> I used the 9995 many years ago. I rather liked it and it was
faster than
anything else available at the time for doing integer arithmetic, which was
why we used it
Yep, it was so fast it made the original 9900 chipset look like a heap of
junk.
I never understood why it didn't take off big time as a product.
I used the 9995 in process control work ... in fact, it was a network of
9995s.
(The app was coded in TI real-time Pascal, and I wrote a RPC library & tools
to allow real-time processes to be moved to any CPU with spare EPROM space
and/or spare processor time. I also wrote a FP maths package which ran on
just one of the CPU boards, fitted with a maths chip. The other CPUs
"posted" their maths requests to the maths processor CPU board.)
----- Original Message -----
From: "Leon Heller" <leon.heller@leon...>
To: <msp430@msp4...>
Sent: Thursday, April 20, 2006 11:27 AM
Subject: Re: [msp430] PDP-11 and MSP430
> ----- Original Message -----
> From: "Clifford Heath" <cjh@cjh@...>
> To: <msp430@msp4...>
> Sent: Thursday, April 20, 2006 10:41 AM
> Subject: Re: [msp430] PDP-11 and MSP430
>
>
>> Anders Lindgren wrote:
>>> I think the PDP-11 had eight 16 bit general purpose register.
>>
>> Yes, but at least one wasn't general purpose; it was the program
>> counter (r6?). The fact that it was accessable as a general register
>> made all kinds of nice tricks possible. IIRC the status register
>> was special as well (r7?)... but I might be dreaming.
>>
>> The stack pointer could have been any of the others, but one was
>> used by convention.
>>
>>> My guess is that PDP-11 influenced Motorolas 68000,
>>
>> Definitely. The 68K doubled the registers by separating some
>> addressing vs arithmetic functions, which caused pain for the
>> compiler-writers.
>>
>> > which is turn
>>> influenced a lot of processors, including the MSP430.
>>
>> I doubt that's the sequence; the TMS9900 seems more likely as a
>> path of influence. I have a TMS9900 microprocessor data sheet
>> here somewhere :-). Nice architecture, pity the implementation
>> was so appallingly slow, worse even than the minicomputer it
>> integrated.
>>
>
> I used the 9995 many years ago. I rather liked it and it was faster than
> anything else available at the time for doing integer arithmetic, which
> was
> why we used it (we needed something like three multiplies and a divide to
> be
> done as fast as possible). We couldn't afford the TI assembler for it
so I
> wrote a cross-assembler using macros for the Microsoft Z80 assembler
> running
> on a TRS-80 Model I, and debugged my code using a simple monitor/debugger
> communicating with the TRS-80 via RS-232. It was interfaced to a Z80 which
> handled all the I/O. The final version had three 9995s operating in
> parallel
> for 3D position computation, with the Z80 displaying the co-ordinates on
> three LED displays.
>
> One of its features was *lots* of register banks in RAM with very fast
> switching between them. That was very nice for doing things like passing
> parameters to sub-routines and interrupt handling as they could be
> overlapped.
>
> Leon
>
>
>
> .
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
>
>
Reply by Leon Heller●April 20, 20062006-04-20
----- Original Message -----
From: "Clifford Heath" <cjh@cjh@...>
To: <msp430@msp4...>
Sent: Thursday, April 20, 2006 10:41 AM
Subject: Re: [msp430] PDP-11 and MSP430
> Anders Lindgren wrote:
>> I think the PDP-11 had eight 16 bit general purpose register.
>
> Yes, but at least one wasn't general purpose; it was the program
> counter (r6?). The fact that it was accessable as a general register
> made all kinds of nice tricks possible. IIRC the status register
> was special as well (r7?)... but I might be dreaming.
>
> The stack pointer could have been any of the others, but one was
> used by convention.
>
>> My guess is that PDP-11 influenced Motorolas 68000,
>
> Definitely. The 68K doubled the registers by separating some
> addressing vs arithmetic functions, which caused pain for the
> compiler-writers.
>
> > which is turn
>> influenced a lot of processors, including the MSP430.
>
> I doubt that's the sequence; the TMS9900 seems more likely as a
> path of influence. I have a TMS9900 microprocessor data sheet
> here somewhere :-). Nice architecture, pity the implementation
> was so appallingly slow, worse even than the minicomputer it
> integrated.
>
I used the 9995 many years ago. I rather liked it and it was faster than
anything else available at the time for doing integer arithmetic, which was
why we used it (we needed something like three multiplies and a divide to be
done as fast as possible). We couldn't afford the TI assembler for it so I
wrote a cross-assembler using macros for the Microsoft Z80 assembler running
on a TRS-80 Model I, and debugged my code using a simple monitor/debugger
communicating with the TRS-80 via RS-232. It was interfaced to a Z80 which
handled all the I/O. The final version had three 9995s operating in parallel
for 3D position computation, with the Z80 displaying the co-ordinates on
three LED displays.
One of its features was *lots* of register banks in RAM with very fast
switching between them. That was very nice for doing things like passing
parameters to sub-routines and interrupt handling as they could be
overlapped.
Leon
Reply by Clifford Heath●April 20, 20062006-04-20
Anders Lindgren wrote:
> I think the PDP-11 had eight 16 bit general
purpose register.
Yes, but at least one wasn't general purpose; it was the program
counter (r6?). The fact that it was accessable as a general register
made all kinds of nice tricks possible. IIRC the status register
was special as well (r7?)... but I might be dreaming.
The stack pointer could have been any of the others, but one was
used by convention.
> My guess is that PDP-11 influenced Motorolas
68000,
Definitely. The 68K doubled the registers by separating some
addressing vs arithmetic functions, which caused pain for the
compiler-writers.
> which is turn
> influenced a lot of processors, including the
MSP430.
I doubt that's the sequence; the TMS9900 seems more likely as a
path of influence. I have a TMS9900 microprocessor data sheet
here somewhere :-). Nice architecture, pity the implementation
was so appallingly slow, worse even than the minicomputer it
integrated.
My first paid programming job was on a PDP11, in 1981. I'd looked
at its assembly in the form produced by our Pascal compiler, and
even tried to tweak the code to solve the Knight's Tour faster, but
I spent my first three days of paid programming employment writing
position-independent code in MACRO-11 for an RT-11 device driver.
It seemed quite a challenge at the time :-).
Clifford Heath.
Reply by Anders Lindgren●April 20, 20062006-04-20
minicikdev wrote:
> Do you know the relationship between PDP-11 and
MSP430 architecture?
They are pretty similar, on the machine instruction level, if I recall
my MACRO 11 correctly.
I think the PDP-11 had eight 16 bit general purpose register. Compared
to most other machines I had seen at the time, the "general purpose"
part was great.
My guess is that PDP-11 influenced Motorolas 68000, which is turn
influenced a lot of processors, including the MSP430.
On the other hand, I remember when I and a few friend got our school to
buy an old PDP-11 (/60? /70?) and we had to carry the cabinets (not to
mention the washing-machine-sized disk drives). So from this point of
view the "architecture" of a PDP-11 is different, to say the least,
compared to a MSP430. This was in the mid- late- eighties, by the way...
-- Anders
--
Disclaimer: Opinions expressed in this posting are strictly my own and
not necessarily those of my employer.
Reply by minicikdev●April 20, 20062006-04-20
> You also need to look at how many words each
instruction takes. Those
> addressing modes take additional words and each word will take a
cycle to
> fetch.
So, take care of the needed memory locations for these instructions
More example....
ADD #0xABCD(R5),R6 => 3 cycles,2 word include op-code
ADD #0x1234(R5), #0xCDEF(R6) => 6 cycles, 3 word include op-code
I think execution clock cycles include fetch state of next instruction.
Depending on these examples, could you guess how many pipeline-stages
MSP430 has?
What about the RTL operations and their sequences?
Reply by Richard●April 20, 20062006-04-20
You also need to look at how many words each instruction takes. Those
addressing modes take additional words and each word will take a cycle to
fetch.
At 12:43 AM 4/20/2006, you wrote:
>More example....
>
>ADD #0xABCD(R5),R6 => 3 cycles
>ADD #0x1234(R5), #0xCDEF(R6) => 6 cycles
>
>I think execution clock cycles include fetch state of next instruction.
>
>Depending on these examples, could you guess how many pipeline-stages
>MSP430 has?
>
>Regards
>
>----------
// richard (This email is for mailing lists. To reach me directly, please
use richard at imagecraft.com)
Reply by minicikdev●April 20, 20062006-04-20
More example....
ADD #0xABCD(R5),R6 => 3 cycles
ADD #0x1234(R5), #0xCDEF(R6) => 6 cycles
I think execution clock cycles include fetch state of next instruction.
Depending on these examples, could you guess how many pipeline-stages
MSP430 has?
Regards