CPU 乱序执行代码,是 CPU 硬件级别的机制吗?
如题,java 学习过程中的问题。
CPU 乱序执行,是那个级别的优化,CPU 硬件级,还是操作系统如此设计,还是 java 虚拟机如此设计?
如果是 cpu 硬件级别的话,那说明不论什么代码丢进去,cpu 有自动优化执行的能力?
如题,java 学习过程中的问题。
CPU 乱序执行,是那个级别的优化,CPU 硬件级,还是操作系统如此设计,还是 java 虚拟机如此设计?
如果是 cpu 硬件级别的话,那说明不论什么代码丢进去,cpu 有自动优化执行的能力?
https://lmgtfy.app/?q=cpu+%E4%B9%B1%E5%BA%8F%E6%89%A7%E8%A1%8C
我不清楚 Java 虚拟机的实现,不过编译器也是会做类似乱序执行的优化的,称为指令调度。volatile 关键字就是给编译器而不是 CPU 的提示。
但是你说 Java,这涉及的不只是乱序执行,还有编译器的优化。编译器 /解释器可以在更高的层次上进行优化。一行源代码会编译成多个机器指令,这些指令之间可以重排。行与行之间也可以改变顺序(不影响结果的前提下)。这本身会带来性能优化,也能帮助 CPU 更好地执行。
之前出过一个叫 atom 的 x86 顺序架构。
intel 贴了无数钱但总感觉失败了(然而 chromebook 疫情大成功
参考资料: CPU 指令执行及流水线(超标量、多发射、乱序执行) https://blog.csdn.net/qq_41154905/article/details/105163718
书籍推荐:
清华大学李亚民教授的书 计算机原理与设计:Verilog HDL 版