Java物理机怎么样?

时间:2010-10-24 08:46:08

标签: java jvm

Java是移动设备最重要的语言,因为它允许在字节码和机器之间插入JVM的虚拟层,从而在每台机器上执行相同的二进制/字节代码。

我们可以构建Java物理机器,它将采用字节代码而不是X86 / arm的传统操作码和操作数吗?所以可以使用Java构建实际操作系统,它比在我们当前的操作系统上安装JVM高效/快速

我的猜测是它会限制安装新版本的JVM,但很多移动设备都支持限制版本的JVM,这可能不是问题吗?

为什么有人没有尝试将相同的概念应用于硬件?

5 个答案:

答案 0 :(得分:13)

这已经存在。第一次尝试是Sun的PicoJava规范,其中一个开源实现在某个时候发布。

可以直接运行Java字节码的CPU的当前示例:

答案 1 :(得分:7)

我们可以建造这样的野兽吗?我们当然可以。我们也可以尝试用一根芹菜来砍伐卡里树,但这并不是一个好主意: - )

与Forth 很多月亮之前做过类似的事情(Novix,我认为它被称为)。我怀疑在这个特定情况下它会因多种原因而失败。

  1. 创建Java CPU的成本远远超过创建Java解释器的成本。这就是为什么没有一百万个不同的CPU制造商,但是 百万种不同的计算机语言(好吧,可能不是那么多,但它很多)。

  2. JIT编译器完全消除了对Java-in-silicon的需求,因为他们无论如何都要编译成汇编语言。

  3. 与第1点相关,想象一下修复CPU中的错误而不是解释器中的错误。除非你的CPU具有某种形式的可升级性(例如可替换微码),否则事情会变得昂贵。而且,如果你使用微码,你已经失去了硅片上Java的一些优点,因为你现在有一个片上解释器,而不是在一个regualr操作系统上运行。

  4. 许多人已经在使用拥有Java的机器。您将面临对市场的阻力很多转向您的解决方案。

答案 2 :(得分:1)

AFAIK,这已经完成(see the PSC 1000 microprocessor reference manual)。引用:

  

PSC1000微处理器的堆栈架构   和Java虚拟机非常相似   类似。这导致只有一个相对简单的字节   代码翻译器(20K)需要生成   相反,来自Java字节代码的可执行本机代码   而不是一个完整的即时(JIT)编译器(200-400K)。该   结果是Java程序的初始执行速度要快得多   并且显着减小了内存需求。   此外,大多数现代语言都是实现的   堆栈模型。 PSC1000的功能   运行Java有效地应用于其他语言   如C,Forth和Postscript ..

答案 3 :(得分:1)

问题在于你没有规模经济。

英特尔/ AMD处理器比它们可以获得的更便宜,更快,直到它们到处都是每个CPU。目前基于软件的JVM比硬件中的速度要快得多,而且随着CPU的不断加快,没有动力去移动。

时代变了。使用当前架构时CPU不会更快,所以现在可能更有意义,因为Java非常适合多核应用程序。

答案 4 :(得分:0)

Sun已经生成了一些Java芯片(picoJava,ultraJava),并且有this one