首頁 > 科技

32位已死,對安卓和蘋果意味著什麼?

2021-06-14 15:51:17

Arm宣佈,從2023年起,其所有新智慧手機CPU核心都將僅為64位,且沒有32位相容模式。2013年,蘋果就在iPhone 5s中使用了64位A7處理器,我們開始擁有支援64位的智慧手機處理器。不久之後,64位CPU同樣出現在安卓手機中,不過所有這些CPU既能運行32位程式碼又能運行64位程式碼。

因此,我們從僅支援32位,到同時支援32位和64位,再到現在我們將要拋棄32位,進入只有64位的時代。這對安卓和蘋果而言,又意味著什麼呢?

從32位到64位的轉變

智慧手機中,每個畫素、通過網際網路傳送的每一個數據、儲存在快閃記憶體中的每個檔案、播放的每個聲音以及螢幕上的每一次觸控都由數字表示和處理。依靠GPU等其他元件的幫助,大部分處理由CPU完成。

處理器以二進位制形式儲存這些數字,為它們分配的空間以位為單位。位由0和1的二進位制表示,8位可以表示零到 255 之間的任何數字,16位的範圍從0到65,535,而32位可以儲存高達4,294,967,295(即 4GB)的數字。

Arm在其指令集架構的第8版(稱為 Armv8)中引入了64位支援,並且在Armv9 中繼續支援64位。這兩者也可選擇性地向後相容以前的 32 位Arm 架構。這意味著原則上 Cortex-A 處理器可以運行32位程式碼和64位程式碼並在它們之間即時切換。使用者不會注意到32位和64位程式碼之間的任何區別。事實上,三星的第一款 Armv8 SoC就是Galaxy Note 4 中使用的Exynos 5433 ,它有四個Cortex-A57核心和四個Cortex-A53核心,但僅用於 32 位模式。

多年來,事情變得更加微妙。Arm有一些基於Armv8的Cortex-A核心,其中某些只有 32 位(例如 Cortex-A32),另一些只有64位(例如Cortex-A34和Cortex-A65)。您可能沒有聽說過這些CPU設計,因為它們沒有用於任何智慧手機處理器。

從Cortex-53 到 Cortex-A75 的大多數Cortex-A處理器都支援32位和64位模式。Cortex-A76稍有改變,它支援32位模式,但僅適用於應用程式。這意味著您需要運行64位版本的安卓,但您仍然可以運行 32 位應用程式。如果您有 Snapdragon 855(或更高版本)處理器。或者基於 Kryo 4xx(或更高版本)的處理器(包括驍龍 480、驍龍 675、驍龍 720、驍龍 730、驍龍 765、驍龍 780G 等),那麼處理器已經放棄了對 32 位作業系統的支援,而你沒有注意到。

隨著Cortex-X2和Cortex-A510對32位應用程式的支援的下降,你不得不運行64位作業系統和64位應用程式。Cortex-A710保持對32位應用程式的支援,這意味著任何無法脫離32位模式的應用程式都將被迫在A710核上運行。

到2023年,所有Cortex-A CPU都將只有 64 位

Arm就64位的轉移發表了兩項聲明。首先,Arm談到2022年它所有的大核心都將是 64 位的,然後幾個月後Arm又談到2023年它所有的核心都將是64位的。聽起來不錯,不過Cortex-A510(一個小核心)已經只有64位了,那麼為什麼是兩個不同的截止日期呢?筆者認為,我們將在2022年看到支援 32 位的新的小核心,此後一切都將是64位。

值得注意的是,我們談論的是Cortex-A處理器,即智慧手機、平板電腦、Chromebook 等中的CPU,而不是在談論Arm微控制器系列中的Cortex-M CPU。事實上,Armv8-M(M 代表微控制器)只有32位。

放棄32位對安卓影響不大

好訊息是64位的安卓是一項成熟的技術,完全放棄32位支援不會有什麼很大的不同。

第一個完全相容64位的安卓版本是 Android 5.0 (Lollipop)。它於2014年釋出,增加了對 64位Intel處理器以及64位Arm晶片的支援。自2019年8月起,所有Google Play應用都需要支援64位。為了幫助開發者支援64位,流行的遊戲引擎都添加了支援:Unreal(2015 年)、Cocos2d(2015 年)和 Unity(2018 年)。從2021年8月1日起,Google Play將停止在支援64位的裝置上提供沒有64位版本的應用,這意味著這些裝置上的Play商店將不再提供這些應用。

Google提供了不同的工具和大量文件,讓應用程式開發人員為切換到64位做好準備。對於許多應用程式,實際上幾乎沒有什麼可做的,因為那些用 Java 或 Kotlin 編寫的應用程式不需要更改。但是使用遊戲引擎或第三方 SDK 開發的應用程式需要確保使用最新的64位版本。

由於搭載64位Android的裝置現已上市多年,再加上Google努力確保Play商店中提供64位應用程式,因此最終只切換到64位將不會有太大的影響。

蘋果更早放棄32位

自 iPhone 5S 以來,蘋果一直在硬體和軟體方面支援64位。早在2015年2月,Apple就宣佈所有iOS應用程式都必須支援64位。之後在2017年,Cupertino宣佈32位應用程式將無法在iOS 11上運行。那時,蘋果就完全放棄了32位,從蘋果A11(在 iPhone 8、iPhone X 中能找到)開始,所有處理器都只有64位。

macOS也有類似的故事。自10.7 Lion (2011) 以來,蘋果的桌面作業系統一直是64位的。自2018年以來,所有提交到Mac App Store的新應用程式都需要支援64位,就像iOS一樣,macOS放棄了對32位應用程式的支援(隨著2019年macOS 10.15 Catalina的釋出)。今天,macOS 11在Intel上是64位的,在Arm上也是64位,M1 處理器僅為 64 位。

未來是64位的

從 2023 年開始,所有Cortex-A處理器都將只支援64位。由於安卓支援64位,並且正在轉向僅支援64位的應用程式且將轉換地很順利,因此您可能不太會注意到任何差異。如果您是蘋果使用者,那麼在iOS和macOS上切換到64位已經有一段時間了。我沒有聽說過渡過程中出現任何重大問題。

對於其他 CPU 架構和其他作業系統,如Windows和Linux,32位支援將持續更長的時間。既然Linux開源,那麼32位支援很可能會持續幾十年。對於x86-64處理器上的Windows,可能連一條清晰的道路都沒有。

雷鋒網雷鋒網


IT145.com E-mail:sddin#qq.com