关于JVM,可不可以有完全的硬件实现

发布网友 发布时间:2022-04-26 05:42

我来回答

1个回答

热心网友 时间:2022-06-24 07:31

JVM有硬件实现。picoJava系列是个典型例子。ARM的Jazelle也允许JVM部分用硬件实现。它们都在硬件层面实现了JVM指令集(其中部分复杂指令用微指令或者调用软件处理来实现)。

不过这些技术原本更多是考虑在嵌入式领域用的。像服务器端高性能的Java解决方案的话,定制CPU多半不会直接实现JVM指令集,而是在一套通用指令集(例如说经典的RISC指令集)的基础上提供一些能支持高性能JVM的特殊指令。Azul Systems的Vega系列CPU就是这样的设计。
特殊指令会包括像是硬件实现的inline cache call、read barrier、带mask的各种指令之类的。

还有算不上是硬件JVM,不过更有趣的是直接把Java编译到硬件。例如IBM做过的一个研究是把“兼容Java的语言”编译为FPGA。该项目名为Lime。为此它们还研发了用FPGA实现的GC,相当彻底。

---------

LLVM我倒确实是不知道有没有硬件实现。技术上最特别的地方大概在于LLVM IR是SSA形式的,带有Phi节点,而用硬件来实现Phi节点的语义有点…非传统。或许以后我们也不会见到实现LLVM IR的硬件,但是说不定能见到让SSA形式执行得更高效的硬件指令集出现(例如说像某论文说的那样提供register name permutation的指令之类的)。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com