1. 程式人生 > 資訊 >直戳 ARM 長處:首個 RISC-V 版安卓 10 系統順暢執行

直戳 ARM 長處:首個 RISC-V 版安卓 10 系統順暢執行

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 和安卓之後的新組合。