You can speed up any given instruction basically in two main ways:<p>Increase clock frequency or do more per clock.<p>Increasing clock frequency is tricky because you end up spending more and more of chip area to keep the clock in sync, and the chip will also run hotter unless you also manage to lower voltage drastically (which has its own problems); I don&#x27;t know what it&#x27;s like these days, but one of the DEC Alpha CPUs spent <i>40%</i> of the die area just to keep the clock stable (because basically &quot;everything&quot; on the chip is contributing to skewing the clock one way or the other)<p>You may have noticed that clock speed increases have tapered off drastically. They&#x27;re hard to do without ridiculous power usage. IBM&#x27;s POWER CPUs still chase clock speed, because they&#x27;re not as limited by the same constraints (targeting very specific niches).<p>The other alternative is to do more per cycle. That means trying to squeeze out whatever parallelism you can from the instruction stream and executing as much as you can in parallel. To be able to execute in parallel, you need multiple copies of various parts of the logic so each copy can process part of the work for one instruction.