Re: Denial of denial of service

[prev] [thread] [next] [lurker] [Date index for 2007/01/29]

From: Peter da Silva
Subject: Re: Denial of denial of service
Date: 17:02 on 29 Jan 2007
On Jan 29, 2007, at 9:23 AM, Martin Ebourne wrote:
> Funny, I seemed to find all 8 local registers usable.

Not if you're a C compiler.

>  And all 8 input
> registers unless you needed the values. Likewise all 8 output registers
> were usable unless you call a function. So I make that 16-24 depending
> on circumstance.

OK, I make that 23, if you're a compiler. Which would have been great 
for 1970, good for 1980, and it's still hateful for 1990.

Year*	CPU		Bits	Non-dedicated integer registers
~1970	PDP-11	16		6 (8 registers - r6(sp) & r7(pc))
1980	68000	32		8+7 (8 data, 8 address - a7(sp))
~1978	VAX-11	32		16
1990?	Sparc	32		23(22?) (8 local, 8 in - frame pointer, 8 out (- stack 
pointer?))
1990?	MIPS	32		27 (32 - constant 0 & various pointers)
1990?	i960	32		32
1990	Power	32		32
1994	Alpha	64		31 (32 - constant 0)

But what's really hateful about it is what the register stack does to 
performance on a context switch. And all the stupid complexity later 
Sparcs had to pay for in chip real estate to hide that. The result is 
that Sparc was always the trailing edge RISC processor in the 
performance race.

>  And if you're not interfacing to C then you've got 6 of
> the global registers available anywhere, as you say.

It's compilers that really suffer from register starvation.

> I find that better than ARM, and 68k.

I've never programmed ARM, but the 68k isn't even vaguely a RISC... 
it's definitely a CISC. It's not as clean as the PDP-11 but is 
otherwise reminiscent of a 32-bit PDP-11 with a mild case of cooties.

8+8 registers is OK for a 1980 design, I guess.

>  As for intel, well that's a laugh.

x86 isn't RISC, it's not really CISC either. It's more like a snapshot 
of 1976 state-of-the-art in micros with 50,000 volts pumped through it. 
The 6809 was really the first micro that had enough real estate for the 
luxury of an "instruction set architecture" rather than "what can we 
fit in here".

> Never programmed MIPS or the other risc chips.

That explains it.

> Of course, the 256 registers on the 6502 are much missed(*).

If the 6502 has 256 registers, then the PDP-11 has almost 65536.

On the other hand the Alpha had 256 bytes of integer registers and 256 
bytes of floating point registers. :)

I don't know what software Carly's brain is running, but what Carly and 
Curly did to Alpha is hateful.

There's stuff above here

Generated at 23:01 on 06 Feb 2007 by mariachi 0.52