什么是ARM?
一、ARM是什么?
ARM既可以認(rèn)為是一個公司的名字?,也可以認(rèn)為是對一類處理器的統(tǒng)稱?,還可以認(rèn)為是一種技術(shù)的名字?。
ARM公司是專門從事基于RISC技術(shù)芯片設(shè)計開發(fā)?的公司,作為知識產(chǎn)權(quán)供應(yīng)商,本身不直接從事芯片生產(chǎn),而是轉(zhuǎn)讓設(shè)計許可?,由合作公司生產(chǎn)各具特色的芯片。
ARM處理器的內(nèi)核是統(tǒng)一的?,由ARM公司提供,而片內(nèi)部件則是多樣的?,由各大半導(dǎo)體公司設(shè)計,這使得ARM設(shè)計嵌入式系統(tǒng)的時候,可以基于同樣的核心,使用不同的片內(nèi)外設(shè)?,從而具有很大的優(yōu)勢。
二、ARM內(nèi)核與架構(gòu)
任何一款arm芯片主要由兩大部分組成:arm內(nèi)核?,外設(shè)?。
ARM內(nèi)核
arm內(nèi)核:?arm內(nèi)核主要由:寄存器?、指令集?、總線?、存儲器映射規(guī)則?、中斷邏輯?和調(diào)試組件?等。
內(nèi)核是由ARM公司設(shè)計并以銷售方式授權(quán)給個芯片廠商使用的(ARM公司本身不做芯片)。比如為高速度設(shè)計的Cortex A8、A9都是ARMv7a 架構(gòu);Cortex M3、M4是ARMv7m架構(gòu);前者是處理器(就是內(nèi)核)?,后者是指令集的架構(gòu)(也簡稱架構(gòu))。
外設(shè):?包括計時器、A/D轉(zhuǎn)換器、存儲器、I2C、UART、SPI、ROM等等。
由各個芯片廠商自己設(shè)計并與ARM內(nèi)核銜接配套。不同的芯片廠商就有不同的外設(shè),因此構(gòu)成了數(shù)量和規(guī)格龐大的ARM芯片產(chǎn)業(yè)。
arm指令集架構(gòu)
指令集的設(shè)計是處理器結(jié)構(gòu)中最重要的部分,用arm的術(shù)語稱之為ISA(Instruction Set Architecture)。
指令集可以說是cpu設(shè)計的靈魂,是打開CPU這個潘多拉魔盒的咒語,要想使用cpu,我們只能通過這些指令來操作cpu。
對于32位的cpu,這些指令就是一個個32位的01的序列,不同的值就代表了不同的機(jī)器指令?,cpu的硬件能完美的解析并執(zhí)行這些指令,比如尋址、運算、異常處理等等。
當(dāng)我們用手機(jī)玩著王者榮耀的時候,要知道我們的每發(fā)的一招,其實最終都是被翻譯成了一系列機(jī)器指令。
從1985年ARMv1架構(gòu)誕生起,到2011年,ARM架構(gòu)已經(jīng)發(fā)展到了第八代ARMv8。
Cortex-A32/35/53/57/72/73/77/78采用的都是ARMv8?架構(gòu),這是ARM公司的首款支持64位指令集的處理器架構(gòu)?。

ARM11之前的處理器和指令集架構(gòu)
ARM11芯片之前,每一個芯片對應(yīng)的架構(gòu)關(guān)系如下:

ARM11之后處理器和指令集架構(gòu)
ARM11芯片之后,也就是從ARMv7架構(gòu)?開始,ARM的命名方式有所改變。
新的處理器家族,改以Cortex命名,并分為三個系列,分別是Cortex-A,Cortex-R,Cortex-M。

ARM處理器型號
Cortex-A系列(A:Application 應(yīng)用)
針對日益增長的消費娛樂和無線產(chǎn)品設(shè)計,用于具有高計算要求、運行豐富操作系統(tǒng)及提供交互媒體和圖形體驗的應(yīng)用領(lǐng)域?,如智能手機(jī)、平板電腦、汽車娛樂系統(tǒng)、數(shù)字電視,智能本、電子閱讀器、家用網(wǎng)絡(luò)、家用網(wǎng)關(guān)和其他各種產(chǎn)品。
Cortex-R系列 (R:Real-time 實時)
針對需要運行實時操作?的系統(tǒng)應(yīng)用,面向如汽車制動系統(tǒng)?、動力傳動解決方案?、大容量存儲控制器?等深層嵌入式實時應(yīng)用。
Cortex-SC系列(SC:SecurCore)
其實,除了上述三大系列之外,還有一個主打安全的Cortex-SC系列(SC:SecurCore),主要用于政府安全芯片?。

ARM11系列包括了ARM11MPCore處理器、ARM1176處理器、ARM1156處理器、ARM1136處理器,它們是基于ARMv6架構(gòu)。
ARM Cortex-A5處理器、Cortex-A7處理器、Cortex-A8處理器、Cortex-A9處理器、Cortex-A15處理器隸屬于Cortex-A系列,基于ARMv7-A架構(gòu)。
Cortex-A53、Cortex-A57兩款處理器屬于Cortex-A50系列,首次采用64位ARMv8架構(gòu)。
2020年ARM最近發(fā)布了一款全新的CPU架構(gòu)Cortex-A78,是基于ARMv8.2指令集。
三、什么是SOC?
SoC的全稱叫做:System-on-a-Chip?,中文的的意思就是“把系統(tǒng)都做在一個芯片上?”。
SoC上集成了很多手機(jī)上最關(guān)鍵的部件?,比如CPU?、GPU?、內(nèi)存?、也就說雖然它在主板上的存在是一個芯片,但是它里邊可是由很多部件封裝組成的。
比如通常我們所說的高通801,麒麟950.三星的exynos 4412,A6等等都只是系統(tǒng)部件打包封裝(SoC)后的總稱。然而各家的打包封裝的內(nèi)容則不盡相同,原因也不盡相同。

經(jīng)典的ARM系統(tǒng)級芯片或所謂的Soc 包含許多組件,其中只有一些直接源自ARM。
首先,核心本身通常深度嵌入在設(shè)備內(nèi)部,在設(shè)備范疇內(nèi)通常不直接可見,而調(diào)試端口通常是唯一和核心本身相連的外露部分,有一些粘合邏輯,如時鐘和復(fù)位集成電路。
由于 ARM 核心只有兩個中斷輸入,最常見的外設(shè)就是某種中斷控制器,在外設(shè)內(nèi)部,各組件通過芯片上互聯(lián)總線架構(gòu)相互連接,對于極大多數(shù)基于ARM的設(shè)備而言,這就是標(biāo)準(zhǔn)的 AMBA 互聯(lián)。
AMBA 指定了兩個總線,稱為AXI的高性能系統(tǒng)總線?,和稱為APB的低功耗外設(shè)總線?,APB通常用于連接所有外設(shè),AXI則用于存儲器和其他發(fā)高速設(shè)備?,大多數(shù)設(shè)備都有一定數(shù)量的芯片上存儲以及連接外設(shè)存儲器設(shè)備的接口,但是注意,與設(shè)備的外部連接并不是AMBA總線,這僅在設(shè)備內(nèi)部使用,并不外露。
四、舉例:Exynos 4412 SCP
下面我們以 三星的Exynos(獵戶座) 4412 SCP為例,來講解這幾個概念。
三星的Exynos 4412 SCP 是一款基于Cortex-A9的SOC;
如下圖所示,Exynos 4412包含了4個Cortex-A9的處理器(核);
Cortex-A9是基于ARMv7-A架構(gòu)(指令集)的。

由上圖可知,exynos 4412除了包含4個Cortex-A9核,
還包括大量的外設(shè)控制器:DRAM Controller、SROM Controller、Camera IF、JPEG、GPS/GLONASS、Power Management、USB Host、I2C、UART、SPI等。
和三星相同的其他和arm合作的各大廠商通常會把它的CPU和各類外圍IP都放到一起,然后自己拿著圖紙去流片,生產(chǎn)出來的也是一個正方形,下面有很多引腳,這個東西不僅包含了CPU,還包含了其他的控制器,這個東西就叫做SOC(system on chip)。
如下圖所示,就是三星最終生產(chǎn)的Exynos 4412 ,當(dāng)然了,光有這個soc還無法運行安卓,還需要借助外圍大量的外設(shè)才能最終形成一個完整的系統(tǒng),但是大部分最復(fù)雜的硬件部分模塊都已經(jīng)集成到了這個soc中。

五、總結(jié)
下面我們總結(jié)下這些概念:
ARM公司的名字?,叫ARM:Advanced RISC Machines;
ARM前身Acorn公司設(shè)計的第一款微處理器,叫ARM:Acorn RISC Machine;
ARM處理器名字?:以前叫ARM9、ARM11, 新的命名規(guī)則改以Cortex命名,分別是Cortex-A,Cortex-R,Cortex-M;這三個字母A、R、M合到一起又是ARM。
ARM指令集?,就是ARM架構(gòu),比如ARMv8,每個處理器都需要依賴一定的ARM架構(gòu)來設(shè)計;
**SOC:**各大廠商買來ARM的授權(quán),得到ARM處理器的源代碼,而后自己搞一些外圍設(shè)備的IP(或者買或者自己設(shè)計),組成一個SOC,比如三星的Exynos 4412,華為的麒麟990。

來源:文章來源于網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系刪除。