Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I’m curious if anyone knows:

Less say we take a recent CPU and just totally turn off speculative execution.

Just how bad a performance hit would that likely be? 30%? 50%? 75%? 90%?

Does anyone even know for modern processors?



I just finished up a senior Computer Architecture class last term and a flavor of this was a popular question for past exams.

For a more fun answer than an exam, consider that the real estate on a CPU is typically dominated by two things, cache and out-of-order speculation hardware(predictors and such). Then, turning off speculative execution would be like turning off a third of your CPU. As to the actual performance impact, it'd be massive. There's a reason why no modern processor is in-order.


There's a reason why no modern processor is in-order.

No modern performance-oriented processor, that is. Plenty of low-power, area-constrained embedded ones still are. The Intel Quark series of SoCs, for example. Those are basically a very fast 486, with the same 5-stage in-order pipeline. (For some amusement, get Quark datasheet and compare it with the 486 datasheet --- some of the microarchitecture diagrams are identical, and some clearly had only "Intel486" replaced roughly with "IntelQuark".)


Modern smartphones running Cortex-A53 clusters would like a word.


The Mill CPU which is currently being developed is in-order and its performance target is higher that current Intel CPUs while using 1/10th of the power.

out-of-order is just one way that a hardware vendor choose to increase performance. Mill choose an other way.


> There's a reason why no modern processor is in-order.

You can still have out-of-order execution without branch prediction.

That said, I'm inclined to believe you're right about a massive performance impact (for many programs at least).


The real issue is the speculative execution of loads and stores which cannot be rolled back in the event a branch is not taken.


Probably pretty bad. Branch prediction is usually right and we branch a lot. Your pipeline wouldn't be filled MOST of the time, I bet.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: