一文讀懂ARM技術架構
“Hello world,I am Arm”,1985年4月26日,Arm第一顆芯片正式問世!自此Arm真的給了世界一個大大的問候,此后的35年里,Arm的芯片如同“蒲公英的種子”跨過了大洋彼岸,將花開在了世界各處。長達數幾十年Arm一直處于手機處理器的領主地位。
ARM的設計是全球大多數移動設備處理器的基礎。各大手機芯片,包括高通驍龍、Apple A系列、華為麒麟芯片、三星Exynos,等它們的底層均是ARM的技術。

1991 年ARM 公司成立于英國劍橋,在成立后的那幾年,ARM業績平平,工程師們也人心惶惶,害怕隨時都會失業。在這個情況下,ARM決定改變他們的產品策略——他們不再生產芯片,轉而以授權的方式,將芯片設計方案轉讓給其他公司,即“Partnership”開放模式。
沒想到正是這種模式,開創了屬于ARM的全新時代。
ARM所采取的是IP(Intellectual Property,知識產權)授權的商業模式,收取一次性技術授權費用和版稅提成。
具體來說,ARM有三種授權方式:處理器、POP以及架構授權。
處理器授權是指授權合作廠商使用ARM設計好的處理器,對方不能改變原有設計,但可以根據自己的需要調整產品的頻率、功耗等。
POP(processor optimization pack,處理器優化包)授權是處理器授權的高級形式, ARM出售優化后的處理器給授權合作廠商,方便其在特定工藝下設計、生產出性能有保證的處理器。
架構授權是ARM會授權合作廠商使用自己的架構,方便其根據自己的需要來設計處理器(例如后來高通的Krait架構和蘋果的Swift架構,就是在取得ARM的授權后設計完成的)。所以,授權費和版稅就成了ARM的主要收入來源。除此之外,就是軟件工具和技術支持服務的收入。

ARM 微處理器的應用領域及特點
ARM處理器市場覆蓋率最高、發展趨勢廣闊,基于ARM技術的32位微處理器,市場的占有率目前已達到80%。絕大多數IC制造商都推出了自己的ARM結構芯片。我國的中興集成電路、大唐電訊、華為海思、中芯國際和上海華虹,以及國外的一些公司如德州儀器、意法半導體、Philips、Intel、Samsung等都推出了自己設計的基于ARM核的處理器。
工業控制領域:作為32 的RISC 架構,基于ARM 核的微控制器芯片不但占據了高端微控制器市場的大部分市場份額,同時也逐漸向低端微控制器應用領域擴展,ARM 微控制器的低功耗、高性價比,向傳統的8 位/16 位微控制器提出了挑戰。
無線通訊領域:目前已有超過85%的無線通訊設備采用了ARM 技術, ARM 以其高性能和低成本,在該領域的地位日益鞏固。
網絡設備:隨著寬帶技術的推廣,采用ARM 技術的ADSL 芯片正逐步獲得競爭優勢。此外,ARM 在語音及視頻處理上進行了優化,并獲得廣泛支持,也對DSP 的應用領域提出了挑戰。
消費類電子產品:ARM 技術在目前流行的數字音頻播放器、數字機頂盒和游戲機中得到廣泛采用。
成像和安全產品:現在流行的數碼相機和打印機中絕大部分采用ARM 技術。手機中的32位SIM 智能卡也采用了ARM 技術。

ARM處理器的特點:
1、體積小、低功耗、低成本、高性能;
2、支持Thumb(16 位)/ARM(32 位)雙指令集,能很好的兼容8 位/16 位器件;
3、大量使用寄存器,指令執行速度更快;
4、大多數數據操作都在寄存器中完成;
5、尋址方式靈活簡單,執行效率高;
6、指令長度固定;
ARM相關的幾個重要概念
馮·諾依曼體系
結構模型:
馮·諾依曼體系的特點:
1、數據與指令都存儲在同一存儲區中,取指令與取數據利用同一數據總線。
2、被早期大多數計算機所采用。
3、ARM7——馮諾依曼體系結構簡單,但速度較慢。取指不能同時取數據。
哈佛體系
結構模型:

結構特點:
1、程序存儲器與數據存儲器分開.
2、提供了較大的存儲器帶寬,各自有自己的總線。
3、適合于數字信號處理.
4、大多數DSP都是哈佛結構.
5、ARM9是哈佛結構,取指和取數在同一周期進行,提高速度,改進哈佛體系結構分成三個存儲區:程序、數據、程序和數據共用。
CISC復雜指令集(Complex Instruction Set Computer)
特點:
1、具有大量的指令和尋址方式
2、8/2原則:80%的程序只使用20%的指令
3、大多數程序只使用少量的指令就能夠運行。
4、CISC CPU 包含有豐富的單元電路,因而功能強、面積大、功耗大。
RISC精簡指令集(Reduced Instruction Set Computer)
特點:
1、在通道中只包含最有用的指令,只提供簡單的操作。
2、確保數據通道快速執行每一條指令。
3、Load-store結構—— 處理器只處理寄存器中的數據,load-store指令用來完成數據在寄存器和外部存儲器之間的傳送。
4、使CPU硬件結構設計變得更為簡單, RISC CPU包含較少的單元電路,因而面積小、功耗低。
RISC與CISC主要差別
1、寄存器方面
RISC指令集:擁有更多的通用寄存器,每個可以存放數據和地址,寄存器為所有的數據操作提供快速的存儲訪問。
CISC指令集:多用于特定目的的專用寄存器。
2、LOAD –STORE結構方面
RISC結構:Cpu 僅處理寄存器中的數據,采用獨立的、專用的LOAD –STORE 指令來完成數據在寄存器和外存之間的傳送。(訪存費時,處理和存儲分開,可以反復的使用保存在寄存器中的數據,而避免多次訪問外存)。
CISC結構:能直接處理存儲器中的數據。
ARM存儲格式
ARM存儲器以8位為一個單元存儲數據(一個字節),每個存儲單元分配一個存儲地址。
ARM將存儲器看作是從零地址開始的字節的線性組合。作為32位的微處理器,ARM體系結構所支持的最大尋址空間為4GB(232字節)。從零字節到三字節放置第一個存儲的字數據,從第四個字節到第七個字節放置第二個存儲的字數據,依次排列。32位的字數據要使用4個地址單元,16位半數據要使用2個地址單元。這樣,就存在一個所存儲的字或半字數據的排列順序問題。ARM體系結構可以用兩種方法存儲字數據,稱為大端格式和小端格式。
大端格式(big-endian):字數據的高字節存儲在低地址中,而字數據的低字節則存放在高地址中。
小端格式(low-endian):與大端存儲格式相反。低地址中存放的是字數據的低字節,高地址存放的是字數據的高字節。缺省設置為小端格式。
ARM體系結構
ARM系列產品表示


ARM處理器的分類
基于指令集體系結構的分類:v1,v2,v5,v5TEJ,v6等
基于處理器內核的分類:ARM7,ARM9,ARM10,ARM11,StrongARM,XScale等
ARM體系結構版本
ARM架構自誕生至今,已經發生了很大的演變,至今已定義的版本有:V1版架構、V2版架構、V3版架構、V4版架構、V5版架構、V6版架構。
V1版架構
該版架構只在原型機ARM1出現過,其基本性能:
1、基本的數據處理指令(無乘法)
2、字節、半字和字的LOAD/STORE指令
3、轉移指令,包括子程序調用及鏈接指令
4、軟件中斷指令
5、尋址空間:64M字節(26)
V2版架構
該版架構對V1版進行了擴展,如ARM2架構,增加了以下功能:
1、乘法和乘加指令
2、支持協處理器操作指令
3、快速中斷模式
4、SWP/SWPB基本存儲器與寄存器交換指令
5、尋址空間:64M字節
V3版架構
1、把尋址空間增至32位(4G字節),
2、增加了當前程序狀態寄存器CPSR和程序狀態保存寄存器SPSR以便于異常的處理。
3、增加了中止和未定義二種處理器模式。
4、ARM6就采用該版架構。
5、指令集變化:增加了MRS/MSR指令,以訪問新增的CPSR/SPSR寄存器;增加了從異常處理返回的指令功能。
V4版架構
V4版架構是目前應用最廣的ARM體系結構,對V3版架構進行了進一步擴充,有的還引進了16位的Thumb指令集,使ARM使用更加靈活。ARM7、ARM8、ARM9和StrongARM都采用該版架構。
指令集中增加了以下功能:
1、有符號、無符號的半字和有符號字節的Load/Store指令。
2、增加了16位Thumb指令集
3、完善了軟件中斷SWI指令的功能
4、增加了處理器的特權模式。
V5版架構
這是最近幾年推出ARM架構,在V4版基本上增加了一些新的指令,ARM10和XScale都采用該版架構,這些新增指令有:
1、帶有鏈接和交換的轉移BLX指令
2、計數前導零CLZ指令
3、BKPT軟件斷點指令
4、增加了信號處理指令
5、為協處理器增加更多可選擇的指令
v6版架構
1、適合使用電池供電的便攜式設備
2、增加了 SIMD功能擴展,提高了嵌入式應用系統的音頻、視頻處理能力。
ARM芯片選擇的一般原則
從應用的角度,對在選擇ARM芯片時所應考慮的主要因素有:
1、ARM芯核:如果希望使用WinCE或Linux等操作系統以減少軟件開發時間,就需要選擇ARM720T以上帶有MMU功能的ARM芯片.
2、系統時鐘控制器:系統時鐘決定了ARM芯片的處理速度。ARM7的處理速度為0.9MIPS/MHz,常見的ARM7芯片系統主時鐘為20MHz-133MHz,ARM9的處理速度為1.1MIPS/MHz,常見的ARM9的系統主時鐘為100MHz-233MHz, ARM10最高可以達到700MHz。
3、內部存儲器容量:在不需要大容量存儲器時,可以考慮選用有內置存儲器的ARM芯片。
4、GPIO數量:在某些芯片供應商提供的說明書中,往往申明的是最大可能的GPIO數量,但是有許多引腳是和地址線、數據線、串口線等引腳復用的。這樣在系統設計時需要計算實際可以使用的GPIO數量。
5、USB接口:許多ARM芯片內置有USB控制器,有些芯片甚至同時有USB Host和USB Slave控制器。
6、中斷控制器:ARM內核只提供快速中斷(FIQ)和標準中斷(IRQ)兩個中斷向量。但各個半導體廠家在設計芯片時加入了自己不同的中斷控制器,以便支持諸如串行口、外部中斷、時鐘中斷等硬件中斷。外部中斷控制是選擇芯片必須考慮的重要因素,合理的外部中斷設計可以很大程度的減少任務調度的工作量。
7、LCD控制器:些ARM芯片內置LCD控制器,有的甚至內置64K彩色TFT LCD控制器。在設計PDA和手持式顯示記錄設備時,選用內置LCD控制器的ARM芯片較為適宜。
8、擴展總線:大部分ARM芯片具有外部SDRAM和SRAM擴展接口,不同的ARM芯片可以擴展的芯片數量即片選線數量不同,外部數據總線有8位、16位或32位。某些特殊應用的ARM芯片如德國Micronas的PUC3030A沒有外部擴展功能。
9、封裝:主要的封裝有QFP、TQFP、PQFP、LQFP、BGA、LBGA等形式,BGA封裝具有芯片面積小的特點,可以減少PCB板的面積,但是需要專用的焊接設備,無法手工焊接。另外一般BGA封裝的ARM芯片無法用雙面板完成PCB布線,需要多層PCB板布線。
Thumb技術
ARM的RISC體系結構的發展中已經提供了低功耗、小體積、高性能的方案。而為了解決代碼長度的問題,ARM體系結構又增加了T變種,開發了一種新的指令體系,這就是Thumb指令集,它是ARM技術的一大特色。
Thumb是ARM體系結構的擴展。它有從標準32位ARM指令集抽出來的36條指令格式,可以重新編成16位的操作碼。這能帶來很高的代碼密度。
支持Thumb的ARM體系結構的處理器狀態可以方便的切換、運行到Thumb狀態,在該狀態下指令集是16位的Thumb指令集。
與ARM指令集相比.Thumb指令集具有以下局限:
1、完成相同的操作,Thumb指令通常需要更多的指令,因此在對系統運行時間要求苛刻的應用場合ARM指令集更為適合;
2、Thumb指令集沒有包含進行異常處理時需要的一些指令,因此在異常中斷時,還是需要使用ARM指令,這種限制決定了Thumb指令需要和ARM指令配合使用。
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。