1. 前言
本文簡(jiǎn)單梳理一下ARM有關(guān)的概念,包括ARM architecture、ARM core、ARM CPU(或MCU)以及ARM Soc。我們這些以ARM平臺(tái)為主的嵌入式工程師,幾乎每天都會(huì)和這些概念打交道,也似乎非常理解它們。但仔細(xì)想想,卻有些說(shuō)不清道不明的感覺(jué),因而有必要整理一下思路,也就順手記錄下來(lái)了。
2. 概念梳理
1)ARM architecture
ARM architecture,是指ARM公司開(kāi)發(fā)的、基于精簡(jiǎn)指令集架構(gòu)(RISC, Reduced Instruction Set Computing architecture)的指令集架構(gòu)(Instruction set architecture)。我們常說(shuō)的ARMv7、ARMv8、ARMv8-A,就是指ARM architecture。類(lèi)似的基于RISC的architecture也有很多,例如MIPS、AVR、Blackfin等等,都是這個(gè)概念。
2)ARM core
ARM core是基于ARM architecture開(kāi)發(fā)出來(lái)的IP core,它是介于architecture和最終的CPU(MCU)之間的中間產(chǎn)品,這也是ARM商業(yè)模式的獨(dú)特之處。
有兩種類(lèi)型的ARM core:一種是ARM公司自己發(fā)布的,如我們耳熟能詳?shù)腁RM7、ARM9、ARM Cortex M3、ARM Cortex A57等等;另一種是ARM授權(quán)其它公司開(kāi)發(fā)的Core,如蘋(píng)果的A6/A6X等等。下面鏈接是維基百科上的ARM core的列表,共大家參考:[url=]http://en.wikipedia.org/wiki/List_of_ARM_microarchitectures[/url]
3)ARM CPU(MCU)
其它的芯片廠商,如Phillips、ST、TI等,會(huì)基于ARM公司發(fā)布的Core,開(kāi)發(fā)自己的ARM處理器,這稱(chēng)作ARM CPU(也可稱(chēng)為MCU)。這些是我們工作過(guò)程中接觸最多的,如LPCxxxx、STM32xxx、OMAPxxxx、S3Cxxxx等等。
4)ARM Soc
對(duì)于一些比較專(zhuān)業(yè)的應(yīng)用場(chǎng)景,如視頻、音頻等,為了追求更小的size、更低的功耗,廠商會(huì)在芯片上,集成除處理器之外的東西,如視頻編解碼器、DSP等。這些集成了其它功能的芯片,稱(chēng)作片上系統(tǒng)(SOC),如TI的DM37x Video SOC。
注1:其實(shí)ARM的技術(shù)和商業(yè)模式,正體現(xiàn)了軟件工程中抽象和封裝的思想。
3. ARM 64bit
我們以一款64bit ARM CPU為例,反向闡述一下ARM處理的誕生過(guò)程,同時(shí)羅列一些學(xué)習(xí)、研究方向。
1)我們熟悉一個(gè)CPU(假設(shè)它的型號(hào)是WW9000)的第一手資料,是芯片廠家發(fā)布的Datasheet,例如WW9000_SPEC.pdf。
2)WW9000是基于ARM Cortex-A57 Core封裝而來(lái)的,該ARM core的資料可以從下面鏈接下載
[url=]http://infocenter.arm.com/help/topic/com.arm.doc.ddi0488g/DDI0488G_corte...[/url]
3)ARM Cortex-A57 Core又是基于ARMv8-A architecture,該結(jié)構(gòu)的資料可以通過(guò)如下方式獲取:
Go to ARM Infocenter and navigate through ARM architecture / Reference Manuals
注2:ARM Infocenter中資料是非常全面的,沒(méi)事時(shí)可以多逛逛。
|