Search code examples
architecturearmhardwarepipeline

Why modern processors still use in-order pipeline?


I was searching about the ARM Cortex-A53 processor and i found out it uses a static in-order pipeline, in that instructions issue, execute, and commit in order. I can't understand why a modern processor like this would use in-order execution as out-of-order execution is faster as it has better handling for control and data hazards.


Solution

  • Not everything needs to be optimized for peak performance. For mobile platforms energy efficiency is just as important. Out-of-order execution needs a lot of additional hardware, so it increases processor silicon size and decreases energy efficiency even though it improves single thread performance.

    Cortex-A53 is deliberately designed to be small and energy efficient, and can be used alongside a larger out-of-order core such as Cortex-A75 if higher performance is needed. Used together this is part of the Arm "big.LITTLE" heterogeneous SMP architecture. Mixing high efficiency "LITTLE" cores and high performance "big" cores and then allowing the operating system to load-balance across the two means that you get better energy efficiency for light workloads because you don't need to power up the high performance cores unless you are running an intensive workload.