.NET 的目标指令集是什么?

w00*_*977 1 .net vb.net

前几天我在读一篇文章(我相信是在MSDN上),里面说.NET JIT编译器生成的机器代码不针对Intel指令集。它说:“英特尔输了”。它是否正确?如果它不针对 Intel 指令集,那么它针对什么指令集?

我在配备 Intel 四核处理器的 PC 上运行 .NET 框架。因此,Intel 必须实现 .NET 目标的指令集。

Han*_*ant 5

由.NET JIT编译器生成

“这个”这个词是很不恰当的。有许多抖动,每种抖动都旨在为a特定处理器架构生成代码。就像您将在台式机上使用的 x86 和 x64 抖动、移动设备上使用的 ARM 抖动、XBox 上使用的 PowerPC 抖动一样。而“丢失”的安腾抖动是因为要求编译器足够智能以生成高性能代码的处理器设计从来没有做得很好。.NET 还通过 .NET Micro Framework 支持许多嵌入式处理器,但它使用解释器,而不是抖动。

因此,Intel 必须实现 .NET 目标的指令集

该声明中明显违反了因果关系。.NET 必须以指令集的抖动为目标,而不是相反。英特尔并不关注.NET。以前已经有人设计过针对特定虚拟机的处理器(Harris 适合 Forth 语言,ARM 适合 Java),但此类处理器从未成为主流。

一贯获胜的策略是开发仍然可以执行旧程序而无需重新编译的处理器。x86 和 x64 架构因此非常成功。其实现方式与 .NET 中的实现方式相同,Intel 和 AMD 处理器在处理器核心中内置了抖动功能,可将古老的 x86 指令集转换为内部未记录的类 RISC 指令集。