search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

蘋果全面放棄32位應用 Android該跟風嗎?

64位移動處理器在2013年首次亮相,而蘋果iOS系統則是首個支持64位計算的移動操作系統。有意思的是,從最近的消息了解,蘋果將有可能在iOS 11正式放棄對32位應用程序的支持,正式完成對64位生態系統的完全過渡。其實這是iOS 10.3測試版一個錯誤信息無意間爆的料,當用戶嘗試運行32位應用程序,系統竟然告訴用戶無法在未來版本中運行,開發者需改進適配,正是這點讓人浮想聯翩。

在iOS平台上,蘋果已經不止一次提供類似的暗示了,並非常希望開發者僅提供64位應用程序。例如說,去年年底的時候,蘋果從App Store移除了一定數量應用程序,理由是不兼容,並向開發者發送電子郵件,提醒他們應用程序開發必須以64位為基礎。

通常來說,我們不太會在意系統或手機是32位還是64位,畢竟新設備總是能夠同時兼容32位和64位應用程序。但是,考慮到蘋果總是能對谷歌移動生態系統產生一定的影響,就有必要來討論一下,為何蘋果要做出這樣的舉動,而Android是否應該效仿。

32位和64位

首先要簡單的了解一下32位和64位的背景。32位和64位一般是指CPU的通用寄存器位寬,相對於32位而言,64位的CPU位寬增加一倍,使其能夠處理更多更精確的數據,因此有一定加快數據處理的作用,特別是負載的情況下。再通俗來講,32位和 64 位就是四車道和八車道的區別,在擁堵的晚高峰,八車道速度顯然更快。

當然了,64位可定址範圍大大擴展,32位系統最大支持內存為4G。另外,32位系統和64位系統需要安裝支持相應軟體模式下的操作系統和驅動軟體,也就是32位只能安裝 32 位,64位安裝64位的軟體,但可兼容32位運算。

回到ARM處理器的話題上。ARM從32位ARMv7-A到32位/64位ARMv8-A的轉變過程中,引入了大量的新指令以便增強功能,也就是AArch64指令集。但為了保證ARMv8能夠向後兼容,ARM在架構設計上仍保留了現有的AArch32和Thumb-32指令集。雖然這就意味著CPU核心管線部分需要進行更多設計,佔用更多極其有限的晶元空間,但確保了這些傳統指令也能夠與新硬體一起工作。

需要注意的是,單個應用程序使用過長中,完全不可能同時使用ARMv7和ARMv8兩種執行狀態,因為AArch64與AArch32和Thumb-32指令集之間沒有任何交互操作。因此,直接以AArch64指令集和ARMv8處理器為基礎編寫的應用程序,無法在ARMv7 Cortex-A系列處理器上運行。

不過,以 ARMv7 Cortex-A 處理器為基礎編寫的應用程序,仍可以在ARMv8處理器上運行,畢竟可通過保留的AArch32和Thumb-32執行狀態運行。

其實說白了,如果蘋果真那麼做的話,像iPhone 5這款以ARMv7處理器為基礎的機子,將無法升級到iOS 11操作系統。

蘋果為何執意轉向64位

蘋果放棄對32位應用程序的支持表明,未來將完全擁抱 AArch64執行狀態,其硬體處理器和軟體iOS系統,還有應用程序的設計,所有都將只適用於 AArch64 指令集功能。好處自然不少,包括更大的定址範圍支持更大的內存,簡化彙編程序,雙精度浮點及更先進的SIMD運算,以及高達3至10倍的加速硬體加密性能等。

不過,開發者和開發商將無法再使用AArch32和Thumb-32指令集,因為必須更新應用程序。當然了,除了迫使開發人員利用全新64位架構的最新特性之外,這也十分有利於蘋果更出色的完成下一代CPU的設計工作。蘋果有出色的晶元設計團隊,而且一直在規劃放棄對舊架構的支持,完全可以藉此儘可能多地釋放晶元空間,降低製造成本,或者將釋放的空間加以利用,加強CPU、GPU及其餘部分,或引入更加先進的一些功能。

我們不清楚蘋果如何設計下一代晶元,或許會是為64位進一步優化 CPU,而不一定是全部轉為64位,保留部分傳統硬體所需的32位指令,不會強行破壞與ARM簽署的許可協議。因為ARM通常要求基於其授權架構的CPU設計,務必支持全部指令集,若遵守這一規定的話,蘋果的晶元同樣需要保留對AArch32和Thumb-32的支持,如此一來才能通過ARM的一致性測試。不過,ARM自己提倡靈活性設計,例如Cortex-A32就是基於32位版本的ARMv8架構設計,沒有十分明確哪些指令集是強制性要求,這就相當於留給蘋果更多的發揮空間。

那麼,Android陣營應該跟風?

有利有弊,而且也並非完全不可行,若是基於上述相同的原因,只要谷歌和智能手機晶元開發商(如高通和聯發科)聯手,軟體和硬體上共同合作也能實現。但不可否認的是,Android 生態圈比蘋果大很多,分佈有大量不同的硬體配置,若立即執行同樣的轉變相信很難迅速組織起來,甚至在此過程中可能被迫中斷。

儘管如此,理論上谷歌也可以從軟體方面做類似的事情,強制要求所有Google Play商店的應用程序轉移到64位版本。不過,這同樣需要一個長期的過渡時間,雖然今天入門級的智能手機和平板電腦都已經裝備了64位處理器,但是依然依賴於大量的 32 位應用程序,而且真正完美兼容 64 位指令集的並不是很多,一旦放棄向後兼容後果不堪設想。

講真的,Android 生態圈完全遷移到64位不太靠譜。例如說,許多Android車載娛樂系統仍基於ARMv7處理器打造。再看智能手錶,包括華為、索尼和LG的手錶,均搭載了32位的ARM Cortex-A7處理器設計。

另外,谷歌最近公布的Android Things物聯網平台,其開發板的晶元也並沒有兼容64位的應用程序。那Android陣營沒辦法全面過渡到單一的64位計算了?並非如此,只是可以預見,未來Android依然提供32位的支持,這是最兩全其美的解決方案。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦