>There is a fourth possibility for parallelism which has so far not been implemented. Software is typically full of if-else branches, and the CPUs are going to great lengths to predict which of the two branches it will take so that it can feed the predicted branch into the pipeline. It would be possible to execute multiple branches of code speculatively at the same time in order to avoid losing time when a branch prediction is mistaken. This, of course, will be at the cost of higher power consumption. This has been implemented by Intel Itanium. |