Note: This page has a lot of out-of-date information; even as of 11/2001 (when it was last edited). I'm going through to correct some of the anachronisms..... engineer_scotty (Scott Johnson)
Why is a PowerPc faster than an Intel PIII for the same clock speed ?
Of course, the really cool thing about AltiVec is that it is everything MMX should have been. It can do SIMD processing like MMX, but it can also do streaming like SSE, and it can do all of that with floating point numbers like 3dNow.
I just saw a new ad from Apple claiming 3 gigaflops out of their Cube machine. The fastest Intel chip, to my understanding, hangs at just under 1 gigaflop. That said, the average person doesn't use that many flops. Rather, they stress the integer portion of the CPU, and the IO performance.
SJ: For office and multimedia applications; that's true. Games (3D ones), on the other hand, exercise heavily the floating point capabilities of a CPU, even with modern graphics accelerators.
AltiVec, while cool is only a small part of the reason, since Altivec is in only a very small number of installed systems, yet every PPC chip outperforms an equivalent Intel/AMD chip.
The reason is better architecture. The majority of PPC instructions execute in one clock cycle. Not as many instructions execute that quickly on the x86 platform.
This bit (which has long been a point of contention in RiscVsCisc), is way out of date. Ever since the 486, the x86 family has had pipelines; since the Pentium, the x86 architecture has had superscalar operation. The 386 was the last member in the family to average several cycles per instruction; Pentiums of any stripe can do more than one instruction per cycle.
Now, I've not done much low-level programming on PPCs, so I'm extrapolating from general RiscVsCisc arguments (although, I don't really know of any cases where a ReducedInstructionSetComputer chip goes against an Intel chip of the same speed and loses. It's just that Intel has such high clock speeds).
Intel's biggest advantage is its process technology and tooling. Not many semiconductor houses have access to 2Ghz+ dynamic logic; and Intel's feature sizes are also much smaller than most competitors. One exception, of course, is IBM; who have semiconductor technology and capacity to match (or even) exceed Intel. This is one area where Motorola has been lagging; and one reason that Intel architectures took the lead over PowerPC on the performance curve.
First, I'd be shocked if the PPC chip had less that 32 general integer registers. 32 general integer, 32 general FP. In comparison, an x86 chip has 4 general integer registers (8 with bit shifting and 16 bit integers). That means that an Intel chip has to spend more clock cycles shuffling stuff into and out of memory. Best case, the data is in the level 1 cache, so a memory transfer takes one cycle. Worst case, the data is only in RAM, so a memory transfer takes 10 clock cycles. PPC chips have the same memory transfer times, but with the extra registers, then can do less memory transferring.
Another reason the PPC chips are faster is because almost every instruction executes in one clock cycle. On x86 platforms, many instructions take more that one cycle, although that is slowly changing with each new generation. Again, see above. Actually, many instructions on both architectures take several cycles; integer mult and div are notoriously slow. But with multiple pipelines; this is less of an issue.If your multiplier takes 3 cycles but has a 3-stage pipeline, you can still theoretically achieve 1 mult/second.
I've heard a few places that the PPC chip has a better instruction set. I'm not sure how much this really effects the tasks normal programs do, since I've mainly heard that argument in the context of special things like crypto processing.
PPC has a couple of cool bit twiddling operations likely useful in crpyto. But probably not a factor in the general case.
Intel architecture has lots of other baggage it must carry around, due to backwards compatibility issues. Among them:
Of course, given the legacy baggage aforementioned, it is a testament to the quality of Intel's engineers that they have been able to keep x86 alive - and at or near the top of the performance curve - for so long.
One major annoyance with the PowerPc is that the usual convention for assigning numbers to bits is backwards. In PowerPc collateral, bit 0 is the MSB, and bit 31 is the LSB (on a 32-bit architecture). Thank IBM for that bit of BrainDeath?...