🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.arch
Article #22148

Re: CISC Silent Spring

#22148
From: Preston Briggs
Date: Sun, 04 Feb 1990 19:19
42 lines
2661 bytes
In article <3562@odin.SGI.COM> pkr@maddog.sgi.com (Phil Ronzone) writes:
>In article <7826@pt.cs.cmu.edu> lindsay@MATHOM.GANDALF.CS.CMU.EDU (Donald Lindsay) writes:

>>So, is it a wash? More-or-less, yes - if RISC designs stand still.
>>But they aren't. RISC is moving to ECL and GaAs, where transistors
>>are scarce. They are also moving to superscalar designs, where the
>>RISC/CISC difference is between incredible complexity and stupefying
>>complexity.

>I see that as the ONLY large advantage that RISC has. It simply has
>been able to reduce the design time.

"Simply" is the correct word, but not just applied to design time.
The "incredible complexity" vs. "stupefying complexity" also
aplies to the problem of generating code for the super-scalar
design.  A chip like the 860 is hard enough; if somebody builds a
a similar machine with complex addressing modes, etc... it'll
be really difficult to build a good compiler for.

Lindsay pointed out that RISC machines were a response to compilers that
only used the simple instructions.  I expect (don't know for sure) that the
compilers for 80x86's and 680x0's are still mostly using the simple
instructions.  Speed isn't the only reason for avoiding complex instruction;
you avoid them because they're difficult to generate, because they don't
do what you want in the first place, and because the intermediate
results aren't available for reuse.

For (an old, perhaps overworked) example:
Suppose I want to load a value from
memory and add it to a register.  On most CISC's I can do it in one
instruction.  On most RISC's, I have to use 2 instructions.
On the RISC machine, the value I loaded will still be in a register
where I can reuse it later.  Of course, we could also use 2 instructions
on the CISC.  How often does this case arise?  That depends on
your code and the strength of your optimizer.  The RISC bet (supported
by dynamic code measurements) is that it happens a lot.

So, no matter how fast the CISC people make that "add from memory"
instruction run, it won't matter much because it isn't used much.

Preston Briggs
preston@titan.rice.edu
Technical Details
Message-ID: <4537@brazos.Rice.edu>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!cs.utexas.edu!rice!titan!preston
References: <3300098@m.cs.uiuc.edu> <771@sce.carleton.ca> <35456@mips.mips.COM> <25cb6b65.702c@polyslo.CalPoly.EDU> <7826@pt.cs.cmu.edu> <3562@odin.SGI.COM>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!cs.utexas.edu!rice!titan!preston
From: preston@titan.rice.edu (Preston Briggs)
Newsgroups: comp.arch
Subject: Re: CISC Silent Spring
Message-ID: <4537@brazos.Rice.edu>
Date: 4 Feb 90 19:19:52 GMT
References: <3300098@m.cs.uiuc.edu> <771@sce.carleton.ca> <35456@mips.mips.COM> <25cb6b65.702c@polyslo.CalPoly.EDU> <7826@pt.cs.cmu.edu> <3562@odin.SGI.COM>
Sender: root@rice.edu
Organization: Rice University, Houston
Lines: 42