Arm終端事業(yè)部生態(tài)系統(tǒng)及工程高級總監(jiān)Geraint North

Arm終端事業(yè)部生態(tài)系統(tǒng)及工程高級總監(jiān)Geraint North從4個角度對Arm在軟件及生態(tài)領域的工作進行了總結介紹。

向64位的遷移

安卓移動生態(tài)系統(tǒng)向64位架構的升級過程非常漫長。

10多年前,首款64位架構的Arm CPU就已經推出,面世兩年之后,安卓的生態(tài)系統(tǒng)其實就已經能很好地利用它的能力。但目前,基于32位架構的依然存在。

“2022年,我們在64位的投資確實受到考驗?!盙eraint North介紹說,升級的挑戰(zhàn)在于安卓生態(tài)系統(tǒng)具有極大的多樣性,除設備的種類,合作伙伴類型和數量,遷移意味著大量的時間和成本,因此,產業(yè)鏈不同角色之間必須有大量的細致協調。

但是,向64位遷移是不可阻擋的趨勢。

64位的優(yōu)勢在于,更大的地址空間提供了更高的安全性,而作為大部分操作系統(tǒng)標準功能的地址空間布局的隨機化加載(Address space layout randomization,ASLR),提升了攻擊者定位正在攻擊的代碼或者數據的難度。此外,64位指針在頂部提供了大量的空間,方便采用PAC簽署指針、用MTE來進行內存標記。

64位:最高效的移動用戶體驗

SpecInt2006性能測試展示了六年前發(fā)布的32位Cortex-A76與今年發(fā)布的64位Cortex-A720之間的性能差距??吹贸鰜?,二者性能隨著時間的推移在不斷加大,最后一個支持32位代碼的Cortex-A710提升了36%,這是32位性能的最佳表現,但卻是32位的“末日輝煌”。

支持64位的Arm Cortex-A715/A720其性能逐漸攀升。Arm正借助軟件的力量在把時間和投資聚焦在64位路徑的優(yōu)化之上。

事實上,早在幾年前,Arm就開始從CPU和操作系統(tǒng)中逐漸剔除32位的歷史遺留問題,向應用開發(fā)者證明向64位的過渡在真實發(fā)生,并且為他們支持64位的平臺提供額外的助力。

“隨著去年十月谷歌Pixel手機推出僅支持的64位的安卓配置,32位架構的旅程終于要走完了?!盙eraint North長舒了一口氣。爾后,MediaTek推出首款僅支持64位性能內核的安卓SoC,現已被廣泛部署到許多的高端手機中。

Google在應用商店向64位過渡這方面的工作受到Geraint North的好評。他表示,早在2019年1月Google就為開發(fā)者提供了非常明確的時間表,于2021年8月停止向具有64位功能的設備提供32位的應用程序。2022年,Google已經完成了向64位遷移的所有準備工作。

因為應用商店的龐大數量,在中國推廣64位的應用生態(tài)系統(tǒng)挑戰(zhàn)更大,但出乎Geraint North意料:在頂級OEM開發(fā)商支持下,Arm在中國推動64位的工作進展非常順利——報告顯示,截至2023年3月30日,OPPO、vivo、小米等主流應用商店前萬款應用支持率高達93%,所有應用支持率達到90%;排名前1000位應用的支持率幾乎達到了100%。

談到64位下一步的發(fā)展方向,Geraint North表示,Arm正在重點關注數字電視和機頂盒兩個領域,語音控制攝像頭進行視頻會議和沉浸式高端游戲領域也有很大的市場潛力。

安全技術部署

隨著更多軟件的出現,數字化正在支持越來越多的工作、生活方式,越來越多的數據也在它生命周期某一個點上推動Arm。

Arm非常重視軟件至關重要的安全性和穩(wěn)定性并致力為開發(fā)者提供可靠、易用的安全功能。

根據NIST 2023年4月發(fā)布的最新報告,通用漏洞評分系統(tǒng)(CVSS)指標正呈現上升態(tài)勢,2021年有20,000多個漏洞,包括未能驗證網頁上字段、SQL注入型攻擊等等。

在眾多的漏洞中,Arm對白色的越界寫入(CWE-787,圖中快速上升的白色線條)保持高度關注。CWE-787是一種內存攻擊形式,可以修改索引或執(zhí)行引用緩沖溢出的內存位置,損壞數據或導致系統(tǒng)崩潰。

Armv9架構CPU首次引入的安全技術有效地化解了這些難題。這些技術包括內存標記擴展(MTE)、指針認證(PAC)和分支目標識別(BTI)等。

關于MTE技術,前文已經有過詳述,此處不再介紹。PAC是指在調用函數時生成并存儲返回地址的加密簽名,在函數返回時使用它來驗證返回地址;BTI限制間接分支指令(BR或BLR),使其只能針對BTI指令。

PAC和BTI的聯合應用,對代碼跳轉進行了更嚴格的控制,使得攻擊者很難將現有代碼的片斷用于不法攻擊;即使找到了覆蓋指針的方法,但因為每個函數被調用時連接寄存器都會被清零,哪怕是突破沙盒后攻擊者可以訪問的代碼幾乎無跡可尋,所以仍難以真正覆蓋任何代碼。也就是說,如果有人以某種方式修改了內存地址,Arm也將不予認證。

PAC/BTI的安全性得到了市場的認可。

據Geraint North介紹,開源的網絡瀏覽器Chromium是Google Chrome瀏覽器和微軟Edge瀏覽器的基礎。全球70%的頁面瀏覽量來自于Chrome原生的瀏覽器,Chromium基于大量個人數據訪問得出這樣的結論:70%的安全漏洞報告由內存引起。

過去三年來,Arm和Google開源社區(qū)合作,用PAC和BTI全面保護Chromium。

Chromium作為一個大型的開源項目支持了大量的開源分支。Arm不得不為這些項目延伸出的各種Build、編譯器、內核等增加PAC和BTI,并采用Arm系統(tǒng)模擬器Fast Model開發(fā)所需的軟件功能,基于Chromium所依賴的代碼庫在流片前完成了所有的工作。

另一個案例是Unity。Unity是移動開發(fā)最常用的平臺之一,70%的頂級移動游戲基于該平臺開展創(chuàng)作。2022年Unity也啟用了PAC/BTI,這對消費者來說絕對是個利好——只需簡單地勾選,就能夠實現安全保證。

具有PAC/BTI功能的設備應用已經一年,在生態(tài)系統(tǒng)中的部署速度提升很快。

提升Armv8性能的同時釋放Armv9的能力

按照SPECint2017的標準評判,過去三年來,Arm處理器的性能已經提升12%。

盡管Armv8架構已經非常成熟,但Arm仍然持續(xù)沖擊新的高度,以推動安卓生態(tài)系統(tǒng)運轉。聚焦于可伸縮矢量擴展(SVE2)、設法提高支持多語言、可實現源程序動態(tài)編譯的編譯器和虛擬機的LLVM(Low Level Virtual Machine)的性能,是Arm的一個重要方向。

一年前,Armv9引入了全新矢量架構SVE2,進一步釋放了性能的潛力:一是確保其代碼生成質量盡可能好一些、快一些,達到甚至超過Neon(基于Arm平臺對Single Instruction Multiple Data技術的一種實現,可以理解為SVE2、SVE的前身),保證LLVM可以向量化,同時增強LLVM,使其能夠對Neon無法做到但SVE2可以做到的工作進行矢量化;二在LLVM中引入函數多版本,允許Neon和SVE2代碼輕松共存,并在運行時自動選擇合適的版本,以簡化操作。

Arm Fast Model對于流片前的功能也提供了非常有益的幫助,大幅降低了性能增益方面的風險。

SVE2非常適合圖像處理。但Arm對Halide也非常感興趣,后者是一種非常適合以高性能的方式表達圖像和數組處理操作的C++語言,因為只需要描述一次算法就能夠為不同的指令集生成各種不同的高效的代碼而受到開發(fā)人員的青睞。

Geraint North介紹說,Arm圍繞SVE2在最新的CPU技術中挖掘更多的性能,在Halide方面也驗證目前的工作方法。由于它使LLVM作為代碼生成器,所以Arm與LLVM的合作將有助于Halide。

安卓動態(tài)性能框架

Arm的技術更新離不開眾多開發(fā)者的支持。

據Geraint North介紹,Arm建立了Android適應性框架的目標,一直努力開發(fā)適應性工具和庫,以實時了解和響應不斷變化的性能、溫度和用戶情況。過去幾年來,Arm獲得了大量的反饋。

Android適應性套件由四個關鍵組成部分組成::APDF Hint API幫助系統(tǒng)根據游戲的運行情況對CPU升頻或降率;APDF Thermal API為開發(fā)者提供數字信號,以了解與熱閥值的距離;游戲模式API向開發(fā)者提供關于用戶性能或電池偏好的建議;游戲狀態(tài)API告訴系統(tǒng)正在做什么,動態(tài)調整以適應游戲性能需求的最佳狀態(tài)。

已有開發(fā)者已經利用這些工具實現了最大的增益。

如將APDF Hint API集成到Pixel的SurfaceFlinger,可降低50%的掉幀率,并節(jié)省6%的電量,在Chrome瀏覽器和安卓地圖中還發(fā)現了節(jié)省能耗的巨大潛力。所有這些,都只是APDF Hint API卓越性能的一部分。

使用Unity自適應的功能,Arm與Google合作展示了APDF thermal API的優(yōu)勢。演示數據顯示,Candy Clash運行在第6分鐘后,熱狀態(tài)升級到第一級,在第18分鐘的時候,熱狀態(tài)達到警戒值,APDF Thermal API立即啟動,動態(tài)改變場景的渲染質量,避免觸發(fā)設備的關閉。

“安卓動態(tài)性能框架提供了一個一致的API,讓開發(fā)者可以針對整個安卓生態(tài)系統(tǒng)進行開發(fā),這就是Arm給合作伙伴提供了強大潛力來實現自己的差異性,并且盡可能利用到這些技術讓API裝備自己?!痹贕eraint North看來,這是Arm硬件和軟件協同工作,為提供最佳消費者體驗的又一個實例。

分享到

xiesc

相關推薦