2012-11-01 127 views
0

我已經開始研究不同的基於ARM的目標,但仍然有些內容我錯過了ARM內核,體系結構,指令集和核心繫列。看看這裏的維基百科頁面:http://en.wikipedia.org/wiki/ARM_architecture#ARM_cores 我看到每個體系結構都有多種ARM體系結構和多個系列。例如,對於ARMv6架構,有ARM11和ARM-Cortex-M系列。對於ARMv7和其他人也是如此。 鑑於體系結構相同,ARM11和ARM Cortex-M之間的區別是什麼? ARM11和ARM Cortex-M是否都支持相同的指令集,因爲它們實現了相同的架構?ARM體系結構和系列

回答

7

體系結構是規範,即體系結構實現應支持的一組寄存器,指令和操作模式。

系列是架構的具體詳細實現,即創建ARM內核所需的實際硬件細節。最後一個核心是體系結構的具體實現,即創建ARM CPU所需的晶體管和其他分立部件的實際藍圖。

ARM體系結構是模塊化的,因此家族可能只實現架構的某些功能,而不是其他功能。家庭也可能在體系結構中沒有擴展,並且使同一個家族中更爲有趣的內核在支持的功能上通常會有所不同。

ARM內核被稱爲內核而不是芯片的原因是,特定芯片可能包含一個或多個內核(假設內核支持它)或可能具有與其他組件(I/O控制器,內存接口等)集成的內核)在同一個芯片上。 ARM11和ARM Cortex-M是在ARMv6架構中實現功能的不同系列,具有不同的市場:ARM-11智能手機和平板電腦以及Cortex-M微控制器AFAIK。

+0

(+1)的家庭是一個模糊的詞。一般而言,它應該與體系結構相同,但您也可以使用它來對「Cortex處理器系列」或「ARM11處理器系列」等一組產品進行分組。當你說「皮質處理器系列」時,它可以同時包含ARMv6和ARMv7體系結構。 – auselen

0

沒有明確的答案,並且情況可能隨時間而改變 - 但我認爲在這種情況下,術語已經喪失了大部分價值。

這些架構定義了一組功能(標準和可選)。隨着時間的推移,您可能會看到作爲擴展添加的新功能,並在稍後作爲體系結構的標準功能加入。體系結構覆蓋的不僅僅是指令集,系統級功能(如內存行爲),權限和保護,異常模型等。

還有一些應用領域 - 在Cortex命名法中高級別分割爲MCU(低功耗,確定性),實時(確定性,安全性和錯誤特徵)和應用程序(高端,通用)。這導致了該體系結構的進一步專業化,因此有ARMv8-M,ARMv8-R和ARMv8-A(您最終可以在操作系統級別編寫完全不同的代碼來利用這些功能)。

隨着舊式處理器的不斷髮展,特定設計的變化將會改變功能集,重點關注不同的市場,但這與Cortex設計並無明顯區別(例如,ARM9系列中的緩存,緊耦合存儲器,MMU/MPU是存在的選擇)。 Cortex-M可以作爲一個系列對待,但涵蓋了廣泛的性能範圍(超過兩種類似的體系結構)以及一系列安全特性(使用ARMv8-M)。

你也可以說說「小」的Cortex-A系列,雖然對於具體的應用,將有一個具體的核心,是一個比別人更好的選擇。也有big.LITTLE配對,但他們不會被描述爲一個家庭(但他們具體分享一個精確的架構)。

單個特定架構給出了基線特性的擔保,但不一定限制太多代碼的可移植性,因爲不同ISA仍然大多是常見的架構演進。 (M級代碼將在A級設備上運行,至少如果您小心並從A64狀態切換)。

與ARM內核更爲複雜的是,在特定的設備的更廣泛的系統主要是免費爲供應商定製 - 雖然有一些可用的標準,如果他們選擇來定位特定類型的應用。縱觀任何特定的供應商,您甚至可能會討論基於單個ARM內核的一系列部件。