16

Linus Torvalds 曾在一家名为 Transmeta 的处理器公司工作。他们制造的处理器是核心中基于 RISC 的对象。如果我没记错的话,这个想法是核心运行一个任意且可升级的“处理器仿真层”(可能是 x86、powerpc 等),它将高级操作码转换为 RISC 核心指令集。

这个想法发生了什么,您认为这种方法可能具有优势(在编程方面)的优点、缺点和情况是什么?

4

6 回答 6

7

该公司的表现不如预期,最终被 Novafora 收购,因为它的节能技术。( http://www.novafora.com/pr01-28-09.html )

据我所知,这项技术根本无法与现有系统竞争。他们远远低于他们的业绩数字。此外,虽然可以在他们的 VLIW 设计之上放置另一个翻译器,但我不知道他们生产的任何产品都这样做了。我不记得 Crusoe 芯片能够接受替代的“翻译”微码下载。

我个人拥有一台使用 Crusoe 处理器的设备,虽然它确实提供了电池寿命,但该设备的性能令人沮丧。部分责任可能归咎于它使用的特殊版本的 Windows,但它仍然很慢。

充其量,它适用于便携式远程桌面。

恕我直言,该技术与 .Net 和 JVM 等软件 VM 具有相同的优势:

  • 好处是,与纯软件 JIT 相比,您可以使用硬件解决方案(就像 IBM 使用 Java 加速器处理器)更快地加速代码。
  • 缺点是您永远无法获得执行本机代码的处理器所获得的原始性能。

从某些角度来看,您可以将现代 x86 芯片视为代码变形,尽管是非常专业的芯片。他们将 x86 架构转换为更高效的类似 RISC 的子指令集,然后执行这些子指令集。

这种技术的另一个例子是 FPGA,它可以被编程以在电路级别上模拟各种处理器或原始电路。我相信一些 Cray 系统可以带有这种“加速器节点”。

于 2009-06-30T00:44:04.460 回答
4

一方面,大多数 CISC 处理器在内部将其操作码转换为类似于 RISC 操作的 uops 微操作。流水线和多核已经缩小了 RISC 处理器上的差距,以至于它们之间的差异非常小,如果有的话。如果您需要 C 源代码或其他程序集前端的交叉兼容性,您可以使用 LLVM。 http://llvm.org/

于 2009-06-30T00:43:19.830 回答
3

明显的优点:

  • 能够运行任何操作系统(只需将处理器仿真切换到需要的位置)
  • 在没有软件支持的情况下,可以在同一处理器/操作系统上运行不同架构的二进制文件(当然需要内核支持)。

明显的缺点:

  • 额外的仿真层 == 更多开销 == 需要更快的处理器才能获得同等性能的一切。
于 2009-06-30T00:16:19.197 回答
3

我会说成本降低伴随着数量,因此像 Transmeta 芯片这样的产品必须大量销售才能在价格上与现有的大容量 x86 芯片竞争。

如果我记得,Transmeta 芯片的关键在于它是低功耗的。每个时钟周期来回翻转的硅门更少,可以节省能源。代码变形是为了让您可以在低功耗 RISC 芯片上运行复杂指令集 (CISC)。

Transmeta 的第一款处理器 Crusoe 由于运行基准软件的问题而表现不佳。他们的第二款处理器 Efficeon 确实比 Intel Atom 使用了更少的功率(在相同的性能类别中),并且在相同的功率范围内比 Centrino 表现更好。

现在,像您一样从软件和灵活性的角度来看,代码变形只是即时编译的一种形式,具有该技术的所有优点和缺点。您的 x86 代码本质上是在虚拟机上运行并由另一个处理器模拟。目前虚拟化的最大好处是能够在多个虚拟机之间共享单个处理器,这样您就可以减少空闲 CPU 周期,从而提高效率(硬件成本和能源成本)。

所以在我看来,代码变形,就像任何形式的虚拟化一样,都是为了更有效地利用资源。

于 2009-06-30T00:55:40.320 回答
3

有关硬件辅助 x86 ISA 虚拟化的另一种方法,您可能需要阅读有关龙芯 3 CPU 的信息。

于 2009-07-05T14:32:25.050 回答
2

大多数现代处理器实际上使用微码来实现它们的指令集。这有很多原因,包括兼容性问题,但也有其他原因。

实际上很难区分什么是“硬件”和什么是“软件”。现代虚拟机,如 JVM 或 CIL (.NET) 也可以在硬件中实现,但无论如何,这可能只是使用微码来完成。

在系统中具有多层抽象的原因之一是程序员/工程师在更高级别工作时不必考虑不相关的细节。

操作系统和系统库还提供了额外的抽象层。但是如果不需要它们提供的功能(即操作系统完成的线程调度),拥有这些层只会使系统“变慢”。让您自己的特定于程序的调度程序击败 Linux 内核中的调度程序并非易事。

于 2009-06-30T00:44:30.247 回答