移動處理器與 ABI

2021-09-11 07:25:58 字數 2459 閱讀 1665

其包含:

abi 掩蓋了各種細節,例如:

abi 允許編譯好的目標**在是使用相容 abi 的系統中無需改動就能執行。

開發者使用自己的組合語言也可以使用 eabi 作為與相容的編譯器生成的組合語言的介面。

支援eabi的編譯器建立的目標檔案可以和使用類似編譯器產生的**相容,這樣允許開發者鏈結乙個由不同編譯器產生的庫。

eabi 與關於通用計算機的abi的主要區別是應用程式**中允許使用特權指令,不需要動態鏈結(有時是禁止的),和更緊湊的堆疊幀組織用來節省記憶體。 廣泛使用 eabi 的有 power pc 和 arm 。

常用 cpu 架構主要有:

armv5

armv7

armv8

x86x86_64

mips

mips64

常用 abi 主要有:

armeabi (逐步減少)

armeabi-v7a (目前大部分機型)

arm64-v8a (越來越多機型支援)

x86 (稀少)

x86_64 (稀少)

mips (稀少)

mips64 (稀少)

大部分 cpu 都支援多種 abi(當然也有只支援一種 abi 的),其中的支援情況如下:

cpu \ abi

armeabi

armeabi-v7a

arm64-v8a

mips

mips64

x86x86_64

armv5

支援armv7

支援支援

armv8

支援支援

支援mips

支援mips64

支援支援

x86支援(3)

支援(2)

支援(1)

x86_64

支援支援

支援對於 x86 的說明:

x86 裝置上,選擇 abi 的優先順序

x86 裝置能夠很好的執行 arm 型別函式庫,但並不保證 100% 不發生 crash,特別是對舊裝置,因為是執行在 x86 裝置上模擬 arm 的虛擬層上。

arm架構屬於 risc 指令集,指令集精簡、指令等長,雖然這樣的設計可以提高處理效率,但在遇到複雜的指令後,就需要更多的簡單指令來堆砌複雜任務;arm 從來只是設計低功耗處理器。其宗旨是設計低功耗處理器,這是他們的強項。

x86構架是英特爾推出的一種複雜指令集,用於控制晶元的執行的程式,目前該構架的處理器已經廣泛運用在 pc 領域,由於 x86 構架的處理器晶元在效能上比較強勁,善於執行複雜工作,所以當英特爾進軍移動市場領域後(例如聯想 k800 ),就出現了 x86 的架構。x86 構架屬於典型的 cisc,指令集豐富,指令不等長,善於執行複雜工作,更強調序列效能,它的整體運算能力要比只為移動而生的 arm 架構強大,並且在 pc 領域已經廣泛應用,擁有深厚的技術背景。英特爾設計超高效能的台式電腦和伺服器處理器,並且的確做的不錯。

mips架構是一種高效能的嵌入式 cpu 構架,其出發點是高效能,主要用於路由器、貓等。

armeabi:arm 架構的預設選項,支援基於 armv5te 的裝置,支援軟浮點運算,但不支援硬體輔助浮點運算,支援所有的 arm 裝置。

armeabi-v7a:armeabi-v7a 向下相容,在相容 armeabi 的基礎上,支援基於 armv7 的裝置,支援硬體 fpu 指令,支援硬體浮點運算,目前大部分機器都屬於 armeabi-v7a。

arm64-v8a:arm64-v8a 向下相容 armeabi 和 armeabi-v7a,最主要的區別在於 arm64-v8a 支援 64 位,在 mips64 架構上增加了 armv7 架構中已經擁有的的 trustzone 技術、虛擬化技術及 neon advanced simd 技術等特性(arm 收購 mips)。架構中包含兩個執行狀態:aarch32(也就是我們常說的 armv7)和 aarch64(armv8),也就是說64位的 arm 處理器中同時包含著 32 位的 armv7 和 64 位的 armv8 兩種架構,直接導致每種架構所擁有的電晶體減半。

x86:英特爾推出的32位cpu架構,生成的二進位制**可支援包含基於硬體的浮點運算的 ia-32 指令集,同時,x86 機器基本上可以使用 intel 的 libhounini 專案直接在 x86 機器上執行僅含 armeabi 的動態庫**,也就會說 x86 機器對 armeabi 也能夠相容,不過效能上會有些損耗。

x86_64:英特爾推出的 64 位 cpu 架構,向下相容 x86。

mipsmips_64: 屬於 mips 架構,與 x86,x86_64 類似。

物理處理器與邏輯處理器

記錄解決方案,自己實際處理過,方案可用,在自己的部落格中記錄一下。cpu central processing unit 是 處理單元,本文介紹物理cpu,物理cpu核心,邏輯cpu,以及他們三者之間的關係。乙個物理cpu可以有1個或者多個物理核心,乙個物理核心可以作為1個或者2個邏輯cpu。物理c...

nVIDIA Tegra 移動裝置處理器

nvidia tegra官網介紹 分析 1.tegra 3相對tegra 2,cpu核都是arm a9,只是從2核加到4核。支援到ddr3,應該主要是ddr2產能原因,但頻寬提公升約1倍,簡單 說就是核變為原來2倍,memory效能容量也要翻倍,呵呵,但是多核 不是簡單的加減,就不在囉嗦了。2.gp...

蘋果ARM64移動處理器

friday qa 2013 09 27 arm64 and you.html 64位 我們先來談談 64位 這個術語及其含義。大家對於這個術語一直比較困惑,很大一部分原因在於,它沒有統一的 約定俗成的定義。然而,在大體上卻達成了一些共識,儘管這些共識並未為大眾所知。位 cpu通常是指兩個部分的寬度...