直戳Arm长处!首个RISC-V版安卓10系统顺畅运行
作者 | 包永刚
雷锋网消息,平头哥芯片开放社区本周四公布的一段视频显示,安卓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和安卓之后的新组合。
往期推荐