1 月 23 日消息 平头哥芯片开放社区本周四公布的一段视频显示,安卓 10 系统(Android 10)顺畅运行在平头哥玄铁 910 RISC-V 处理器上。
这对 RISC-V 生态来说是一个里程碑意义的进展,对 Arm 和安卓的联盟可能是一个坏消息,因为基于 RISC-V 64 架构的安卓开源仓库已在平头哥芯片开放社区上线。随着更高性能 RISC-V 芯片的推出以及软件的移植,RISC-V 将对 Arm 带来更大挑战。
经过几年的快速发展,RISC-V 芯片已经在对生态要求比较低的物联网市场取得了不错的成绩,RISC-V 芯片对低性能 Arm Cortex-M 系列芯片带来了一定冲击。如今,RISC-V 能够流畅安卓系统,将可能进一步冲击 Arm 统治的移动终端市场。
安卓与 Arm 的组合支撑了全球十亿部智能手机、电视与可穿戴设备,为众多智能设备带来更好的体验,吸引了数百万应用开发者,这是一个复杂的生态,想要取得突破的难度巨大,在 RISC-V 芯片上运行安卓系统面临着至少三个明显的挑战:
第一,将安卓生态移植到 RISC-V 代码量大,涉及模块多,整个工程包含 727 个子工程和多个预编译工程;
第二,架构级优化难度大,为了让安卓系统可以更加流畅的运行在 RISC-V 芯片上,需要在汇编指令层面实现对本地方法库、音视频库、加解密库等的性能优化;
第三,安卓系统的开发语言多种多样,包括 C/C++,汇编,JAVA,go,RS,rust 等。
据悉,安卓软件栈主要包括系统内核、硬件抽象、运行时、框架层、应用五个层次的近千个软件包,其中涉及到处理器架构相关移植工作主要包含本地库与 ART 支持、Linux 内核支持、build 系统支持三大部分。
在本地库与 ART 支持方面,平头哥基于安卓开源项目 (AOSP)完成 bionic、ART、Clang/LLVM、V8、NDK、VNDK、OpenGL 等软件包的 RISC-V 架构支持:为 bionic 添加动态链接、系统调用、浮点数学库的支持。另外,基于 ART 实现了 RISC-V 架构的 DEX 实时解释执行、dex2oat、JNI 调用以及 JIT编译优化,极大地提高了 JAVA 程序在 RISC-V 平台上执行的效率。
Linux 内核支持方面,首次将 RISC-V 架构的 Linux 内核与安卓系统进行了适配,完善了 Clang/LLVM 对 Linux 内核的编译支持,修复了大量 Clang/LLVM 的问题。
Build 系统支持方面,安卓的编译框架主要由 blueprint 和 soong 构成,平头哥整合编译框架、预编译的工具链、本地方法库、模拟器,应用和服务等模块,首次实现了 RISC-V 架构对安卓 build 系统的支持。
除了软件层面大量的移植工作,在硬件层面也需要高性能处理器的支持。此次运行安卓 10 系统的 RISC-V 芯片是平头哥在 2019 年发布的高性能处理器玄铁 910,此次运行 RISC-V 版安卓系统的 SoC 集成 3 核玄铁 910,以及单核 GPU,基于台积电 28nm 工艺,CPU 主频最高可达 1.2GHz。
需要指出,即便 RISC-V 可以流畅安卓 10 系统,但要撼动 Arm 在智能移动终端市场的优势还有很大的距离。芯片性能提升以及软件生态的建设都还有很长的路要走,RISC-V 需要充分发挥开源的优势。
平头哥会将现有的工作成果开源全部的相关代码,基于 RISC-V 64 架构的安卓开源仓库在其芯片开放社区上线。
支持 RISC-V 的安卓系统已经开源,接下来更多基于 RISC-V 的物联网设备也会更快到来。但我们更应该期待的是 RISC-V 在全新的应用市场带来许多意想不到的应用,在 5G 和 AI 时代有 Wintel、Arm 和安卓之后的新组合。