博客專欄

        EEPW首頁 > 博客 > 一文讀懂ARM技術架構

        一文讀懂ARM技術架構

        發布人:傳感器技術 時間:2023-01-08 來源:工程師 發布文章

        “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指令配合使用。

          


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: ARM技術架構

        技術專區

        關閉
        主站蜘蛛池模板: 长岭县| 柳林县| 宁阳县| 昌吉市| 泸西县| 成安县| 武隆县| 广饶县| 新丰县| 视频| 翁牛特旗| 奉化市| 吐鲁番市| 张掖市| 丽江市| 西华县| 蒙城县| 景谷| 方城县| 黔西| 遂溪县| 酉阳| 蒙城县| 贺州市| 定兴县| 许昌县| 雷波县| 临城县| 望都县| 盘山县| 泗洪县| 新乡市| 五华县| 双柏县| 高雄市| 临潭县| 绥化市| 中超| 昌吉市| 赤壁市| 新密市|