Java 在 RISC-V ISA 上

Java on RISC-V ISA

经过多次搜索,我没有找到在 RISC-V ISA 上运行的 JVM。这似乎对采用至关重要。如果没有有效的 Java 实现,很难看到销售 RISC-V 服务器、平板电脑,甚至智能电视。这感觉像是社区应该团结起来共同努力的事情。我愿意参与

有人知道将 JVM 实现移植到 RISC-V 的开源项目吗?

据我所知,目前没有开源 JVM 实现支持 RISC-V。此外,大多数实现基本上都是一个解释器,并且为 class 库使用 GNU Classpath 或 OpenJDK。

要移植到 RISC-V,必须移植解释器和 class 库。由于有些是没有 JIT 的纯解释器,因此移植可能很容易。一个流行的实现是 JamVM。它在 Ubuntu 中作为 JVM 在 ARM-CPU 上使用。

维基百科有 list 个已知的 JVM 实现。

加州大学伯克利分校的 Martin Maas 正在开展一个开源项目,以在 RISC-V 上为 Java 实施高性能 JIT。他们计划使用 C2 JIT 优化器或潜在地查看是否可以调整 Graal。任何有兴趣的人都可以通过加州大学伯克利分校的网站与他联系并参与其中。

https://people.eecs.berkeley.edu/~maas/

最新更新:

在 OpenJDK 社区的帮助下,由华为技术领导的 RISC-V 端口项目已经整合并成为 JDK 19 的第一个 class 成员。

项目网页:https://openjdk.java.net/projects/riscv-port

日本:https://openjdk.java.net/jeps/422

这将 OpenJDK 移植到一个新平台:Linux/RISC-V,它支持以下子系统:

  1. 模板解释器

  2. C1(客户端)JIT 编译器

  3. C2(服务器)JIT 编译器

  4. 所有当前的主线 GC,包括 Z 和 Shenandoah。

目前此端口仅支持RISC-V的RV64G配置,即general-purpose64位RISC-VISA。将来我们可能会考虑支持其他 RISC-V 配置,例如 general-purpose 32 位配置 (RV32G)。

这意味着人们将在 2022 年 9 月 RISC-V 正式免费(如啤酒)full-featured JDK 19 版本。