ARM架構及ARM指令集、Thumb指令集你了解多少?


https://www.sohu.com/a/339622340_100281310

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.馮·諾依曼體系

馮·諾依曼體系的特點:

A、數據與指令都存儲在同一存儲區中,取指令與取數據利用同一數據總線。

B、被早期大多數計算機所采用。

C、ARM7——馮諾依曼體系結構簡單,但速度較慢。取指不能同時取數據。

2.哈佛體系

結構特點:

A、程序存儲器與數據存儲器分開.

B、提供了較大的存儲器帶寬,各自有自己的總線。

C、適合於數字信號處理.

D、大多數DSP都是哈佛結構.

E、ARM9是哈佛結構,取指和取數在同一周期進行,提高速度,改進哈佛體系結構分成三個存儲區:程序、數據、程序和數據共用。

3.CISC復雜指令集特點

A、具有大量的指令和尋址方式

B、8/2原則:80%的程序只使用20%的指令

C、大多數程序只使用少量的指令就能夠運行。

D、CISC CPU 包含有豐富的單元電路,因而功能強、面積大、功耗大。

4.RISC精簡指令集特點

A、在通道中只包含最有用的指令,只提供簡單的操作。

B、確保數據通道快速執行每一條指令。

C、Load-store結構—— 處理器只處理寄存器中的數據,load-store指令用來完成數據在寄存器和外部存儲器之間的傳送。

D、使CPU硬件結構設計變得更為簡單, RISC CPU包含較少的單元電路,因而面積小、功耗低。

5.RISC與CISC主要差別

A、寄存器方面

RISC指令集:擁有更多的通用寄存器,每個可以存放數據和地址,寄存器為所有的數據操作提供快速的存儲訪問。

CISC指令集:多用於特定目的的專用寄存器。

B、LOAD –STORE結構方面

RISC結構:Cpu 僅處理寄存器中的數據,采用獨立的、專用的LOAD –STORE 指令來完成數據在寄存器和外存之間的傳送。(訪存費時,處理和存儲分開,可以反復的使用保存在寄存器中的數據,而避免多次訪問外存)。

CISC結構:能直接處理存儲器中的數據。

三、ARM存儲格式

ARM存儲器以8位為一個單元存儲數據(一個字節),每個存儲單元分配一個存儲地址。

ARM將存儲器看作是從零地址開始的字節的線性組合。作為32位的微處理器,ARM體系結構所支持的最大尋址空間為4GB(232字節)。從零字節到三字節放置第一個存儲的字數據,從第四個字節到第七個字節放置第二個存儲的字數據,依次排列。32位的字數據要使用4個地址單元,16位半數據要使用2個地址單元。這樣,就存在一個所存儲的字或半字數據的排列順序問題。ARM體系結構可以用兩種方法存儲字數據,稱為大端格式和小端格式。

大端格式(big-endian):字數據的高字節存儲在低地址中,而字數據的低字節則存放在高地址中。

小端格式(low-endian):與大端存儲格式相反。低地址中存放的是字數據的低字節,高地址存放的是字數據的高字節。缺省設置為小端格式。

你真的懂CPU大小端模式嗎?

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM