[Solved] Spectre: Is SIMD the reason?


No, the “high-end” feature that matters on those ARM CPUs is out-of-order execution, with branch-prediction + speculative execution.

In-order CPUs with NEON (like Cortex A-53) aren’t on the list of affected CPUs, because Spectre depends on speculative execution.


Spectre primes the branch predictors so an indirect branch in privileged code is mispredicted to go somewhere that causes a data-dependent change in micro-architectural state before the mispredict is detected.

In Meltdown you run instructions yourself in unprivileged code; Intel CPUs continue speculative execution after a load that should have faulted, using the TLB entry for a kernel-only page. The fault isn’t taken until the load tries to retire (which you can even delay by running a separate slow dependency chain of instructions ahead of the faulting-load + use of that data, because instructions retire in order).

For more microarchitectural details about how Meltdown works, see Why are AMD processors not/less vulnerable to Meltdown? (and Spectre)?

4

solved Spectre: Is SIMD the reason?