Reply by Jonathan Kirwan April 20, 20062006-04-20
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

Beginning Microcontrollers with the MSP430

Reply by Richard UK. April 20, 20062006-04-20
>>> 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







Reply by Richard April 20, 20062006-04-20
Split it down to simpler logic, similar to what a CPU needs to do:

- read address from instruction
- fetch content of M[address]
- add
- write

So there's at least 4 operations. Kris alludes to pipelining. With a 4 
stage pipelines, you can have the effect of single cycle execution if there 
are no branches etc.

Check out a computer architecture book for further info. You can't go wrong

with Paterson and Hennesy

At 11:36 PM 4/19/2006, you wrote:

>Dear Kris,
>What do you think about "R5<=R4+M[address]" this operation?
>(reading a location from memory and adding this value to the R4,
>lastly result is stored in R5)
>
>Could it be possible to perform this operation within one cycle?
>(without clock doubling like PICs)
>if it could be, how?
>
>Regards,
>Salih
>
>
>
>
>
>.
>
>
>
>
>
>SPONSORED LINKS
><http://groups.yahoo.com/gads?t=ms&k=Computer+internet+security&w1=Computer+internet+security&w2=Computer+internet+business&w3=Computer+internet+access&w4=Computer+internet+privacy+securities&w5=Computer+internet+help&w6=Texas+instruments&c=6&s7&.signZ9Q_Is69flQPlZteuKw>Computer

>internet security 
><http://groups.yahoo.com/gads?t=ms&k=Computer+internet+business&w1=Computer+internet+security&w2=Computer+internet+business&w3=Computer+internet+access&w4=Computer+internet+privacy+securities&w5=Computer+internet+help&w6=Texas+instruments&c=6&s7&.sigfdp5NCwqBwePK_awOIw>Computer

>internet business 
><http://groups.yahoo.com/gads?t=ms&k=Computer+internet+access&w1=Computer+internet+security&w2=Computer+internet+business&w3=Computer+internet+access&w4=Computer+internet+privacy+securities&w5=Computer+internet+help&w6=Texas+instruments&c=6&s7&.sig=t6iyjywM5f5bjjKjklY_ww>Computer

>internet access
><http://groups.yahoo.com/gads?t=ms&k=Computer+internet+privacy+securities&w1=Computer+internet+security&w2=Computer+internet+business&w3=Computer+internet+access&w4=Computer+internet+privacy+securities&w5=Computer+internet+help&w6=Texas+instruments&c=6&s7&.sig=xb9tvshl1Ao9LtZ0o8L1YA>Computer

>internet privacy securities 
><http://groups.yahoo.com/gads?t=ms&k=Computer+internet+help&w1=Computer+internet+security&w2=Computer+internet+business&w3=Computer+internet+access&w4=Computer+internet+privacy+securities&w5=Computer+internet+help&w6=Texas+instruments&c=6&s7&.sigPICQLeaOhPQoHIN4-hKZA>Computer

>internet help 
><http://groups.yahoo.com/gads?t=ms&k=Texas+instruments&w1=Computer+internet+security&w2=Computer+internet+business&w3=Computer+internet+access&w4=Computer+internet+privacy+securities&w5=Computer+internet+help&w6=Texas+instruments&c=6&s7&.sigw78vr_uEHnPw8wLyZbA>Texas

>instruments
>
>
>----------
>>Yahoo! Terms of Service.
>
>
>----------

// richard (This email is for mailing lists. To reach me directly, please 
use richard at imagecraft.com)