J.O. Aho wrote:
On Sat, 15 Apr 2006, Lourens Veen wrote:

On Friday 14 April 2006 22:23, Timothy Baldridge wrote:
So what benifits are you going to have in using CISC over RISC?
Smaller code sizes I guess, at the the expense of complexity.

It depends on how varied your task is. For graphics, I think quite a
small number of CISC-style operations would suffice.

Ain't the later x86 RISC that "emulates" CISC?

There is no such thing as x86 RISC.

You are probably thinking of the x86 microarchitecture, which decodes CISC instructions into one or more RISC-like micro-ops inside the CPU.

This enables out-of-order execution, increasing parallelism.


RISC don't ned to reload data in the same manner as CISC has to, which in the long run I belive will give the edge to the RISC.

I don't think you know what you are talking about, here.

Data dependencies exist regardless of RISC or CISC, which is why modern RISC and CISC processors all have prefetch instructions and other data speed-ups.


For example, you
are going to do loads and loads of dot products (matrix multiplies in
vertex shaders, normal calculations for per-pixel-lighting, bump
mapping, and so on). Doing all the adding and multiplying one at a time
means more instructions and more pressure on the scheduling hardware.

The CISC commands uses a lot more cycles than what the RISC does, in

Largely false, for the most common instructions.

x86 instructions like 'mov' or common ALU instructions typically execute in a single cycle. In fact, with multiple ports, _multiple instructions_ can be executed in a single cycle.

And don't forget that RISC blows your i-cache out of the water. x86 is essentially a compressed instruction set, with the most common instructions requiring only 8-bits to describe, versus 32 bits for a normal RISC instruction.


general they do take the same amount of time as CISC X-function*XX-cycles while RISC XX-functions*X-cycles. The draw back for the CISC is that it empties the registers and if next funxtion needs to

"empties the registers"?  You have no clue what you are talking about.


use the same data this has to be reloaded to the register, while the RISC will still have the data in the register as it only empties the register when it needs to.

Registers are registers. They store values for use by multiple instructions, on either CISC or RISC. That's what registers do.

32-bit x86 even has _far more_ registers than the ISA suggests. Google for "register renaming" sometime. 64-bit x86 solved this problem, by adding a ton of registers to the ISA.

Finally, optimal register usage is a function of the compiler and the code being compiled. Code with heavy data dependencies will use few registers, constantly loading new data into the same registers for calculations in loops and whatnot. There is a ton of literature on optimizing register usage, and there is no one right way to do things.


Isn't a shortening of the pipelines a good idea? This is what has been done on both Sparc and PowerPC, both has a lot shorter pipelines than what AMD has on it's which is shorter than Intels. IMHO the old Apple video called "The MHz Myth" shows the benefits of shorter pipelines. Don't know how things would be with even shorter pipelines than IBM's and Freescales PowerPC has (eXponental had longer pipelines and did less on higher MHz than the ones from Freescale).

Again, you cannot make a blanket statement like "shorter pipelines are better."

        Jeff


_______________________________________________
Open-graphics mailing list
[email protected]
http://lists.duskglow.com/mailman/listinfo/open-graphics
List service provided by Duskglow Consulting, LLC (www.duskglow.com)

Reply via email to