2 ms·
Pipelining is necessary is well, but super-scalar is the key ingredient here - parallelism. Pipelining means that instruction fetch, decode, execution, and ret
by brucedawson 8y ago
Pipelining is necessary is well, but super-scalar is the key ingredient here - parallelism.
Pipelining means that instruction fetch, decode, execution, and retirement are done in separate stages, each one taking at least one cycle.
Super-scalar/parallelism means that there are multiple units for all of these stages so the CPU can fetch many instructions in parallel, decode many instructions in parallel, etc.
The cool/critical thing here is that many Intel CPUs can execute three XOR instructions in parallel but can retire four. Because the CPU recognizes XOR of an instruction with itself as a special case it skips the execution stage and can then process four per cycle.
Or, more likely in real code, the execution units are available for other instructions to use.
- a1369209993 8y agoStrictly speaking pipelining isn't actually necessary, it's just hard to imagine why you'd bother with superscalar execution without first exhausting the relatively-lower-hanging-fruit of pipelining.