厉害,rosetta那个都知道
搜了一下,维基是这么说的:
One of the key reasons why Rosetta 2 provides such high level of translation efficiency is the support of x86-64 memory ordering in Apple M1 SOC
来源是这个:
https://twitter.com/ErrataRob/status/1331736203402547201
So Apple simply cheated. They added Intel's memory-ordering to their CPU. When running translated x86 code, they switch the mode of the CPU to conform to Intel's memory ordering.
【 在 eGust 的大作中提到: 】
: 至少在 x86 上面,out of order execution 是建立在 register renaming 的基础上的。汇编指令都是翻译成微指令执行的,而 renaming 和 OoO 都是微指令层面的事情,在汇编层你无法知道是怎样进行的。不了解 arm,但据说 rosetta 能高效率的模拟 x86,就是因为 apple 在硬件层面实现了一个兼容 x86 执行顺序语义的模式,在模拟 x86 时直接切到该模式下运行。
:
--
FROM 61.48.129.*