Originally posted by MisterMe
But you assume no design consequences for the choice of CISC or RISC. There are and that is why CISC is dying. The dramatic increase in the number of available registers means that values can be stored on chip rather than main memory. RISC mandates that all mathematical operations are performed on values stored in registers rather than main memory. As register math is dramatically faster than memory math, RISC is inherently faster at mathematical operations, clock cycle for clock cycle.
You haven't kept up with modern processor design.
I admit, people in the 90s thought points like yours would be the nail in the CISC coffin, but they've been left scratching their heads wondering why the x86 is still around. The truth is, the ISA is fairly irrelevant (as long as it Turing complete) - so the thread subject is really quite incorrect. Sure it makes some things easier, or some things harder, but that's where designers can go to work. Take a look at any modern chip and you'll see they pretty much employ similar techniques for getting the job done, or employ tricks for minimizing or eliminating a disadvantage; renaming registers, out-of-order scheduling, micro ops, multi-threading, low latency cache, trace cache, just to name a few. It really comes down to how many engineers you are willing to throw at a problem. Intel plainly has more, but IBM has enough to make things interesting.
It is ironic that Intel taught the world that an old design could be extended literally forever, when they are trying to push the new EPIC IA64 as key to performance. It will be interesting to see what a fight the POWER series puts up against the Itanic, or even its own x86 line. I would have liked to see Intel push a nice RISC design beyond the i860 - but I guess they thought they were stepping on their own toes.
RISC does have one serious disadvantage that I can think of and that is code size. RISC code tends to bloat faster than CISC code does, and unless you have the means to shovel the data between the CPU and memory faster than a CISC chip, then you have a problem. Last I looked, x86 has reached QDR 200Mhz, while the G4 PPC is SDR 167Mhz (and that is beyond spec) - oops.
But again - bus speeds are ISA independent, and have nothing to do with RISC or CISC. Just better technology and engineering.
I always thought a great PPC extension would be to load compressed code and have it decompress onchip - that might go to help with the bandwidth problem - but then might as well implement instruction macros or something and make the PPC decode stage just as complicated as the x86.
-Wyrm