IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育

當前位置: > 華清遠見教育科技集團 > 嵌入式學習 > 講師博文 > ARM core 介紹一
ARM core 介紹一
時間:2016-12-14作者:華清遠見

一、ARM處理器的特點

(1)支持的數據類型

A.字節 8bit
        B.半字        16bit
        C.字           nbsp;32bit

(2)采用32位精簡指令集(RISC)處理器架構

ARM處理器可以工作在兩種狀態:

A . ARM狀態

指令長度為32位,這種狀態執行的是字對齊方式的ARM指令

B. Thumb狀態

指令長度為16位,這種狀態執行半字對齊方式的Thumb指令

主意:這兩個狀態間的切換并不影響處理器模式和寄存器內容

小知識:RISC和CISC

指令的強弱是CPU的重要指標,指令集是提高微處理器效率的有效工具之一。從現階段的主流體系結構講,指令集可分為復雜指令集(CISC)和精簡指令集(RISC)兩部分。相應的,微處理隨著微指令的復雜度也可分為CISC及RISC這兩類。

CISC是一種為了便于編程和提高記憶體訪問效率的晶片設計體系。在20世紀90年代中期之前,大多數的微處理器都采用CISC體系——包括Intel的80x86和Motorola的68K系列等。即通常所說的X86架構就是屬于CISC體系的。RISC是為了提高處理器運行的速度而設計的晶片體系。它的關鍵技術在于流水線操作(Pipelining):在一個時鐘周期里完成多條指令。而超流水線以及超標量技術已普遍在晶片設計中使用。RISC體系多用于非x86陣營高性能微處理器CPU。像ARM(Advanced RISC Machines),既可以認為是一個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術的名字。而ARM體系結構目前被公認為是業界的32位嵌入式RISC 微處理器結構。所有ARM處理器共享這一體系結構。

(1)CISC

CISC復雜指令系統計算機通過增強計算機指令系統功能,通過程序去執行大量功能各異的指令,從而優化計算機系統的性能。

由于具有大量的指令,因此CISC體系的優缺點也很明顯。

優點:

a)具有豐富的指令系統,很大程度上簡化了程序設計的難度。

b)CISC中不要求指令長度統一,可以節省存儲空間。

c)CISC指令可以直接對存儲器操作,使得通用寄存器數目較少。

同時CISC指令系統也帶來很多問題:

a)由于指令系統龐大,尋址方式、指令格式較多,指令長度不一,增加了硬件復雜程序,設計成本較高。

b)指令操作復雜、執行周期長、速度低,難以優化編譯生成高效的機器語言。

c)許多指令使用頻度低,增加了系統負擔,降低了性價比。

(2)RISC

和CISC相比,RISC的指令就要少得多,通常在幾十條左右,其基本設計思想是盡量簡化計算機的指令功能,從而降低硬件執行指令的復雜度,因為軟件比硬件容易提供更大的靈活性和更高的智能。因此CISC的主要特點如下:

a) 精簡指令集:只保留了數量很少、功能簡單、能在一個機器周期內完成的指令,如果要執行復雜的程序功能則通過子程序而不是使用復雜指令來實現。

b)指令長度相同:每條指令的長度都是相同的,可以在一個單獨操作里完成。

c) 單機器周期指令:大多數的指令都可以在一個機器周期里完成,并且允許處理器在同一時間內執行一系列的指令。

使用RISC指令具有以下優勢:

a) 精簡指令系統的設計適合超大規模集成電路的實現。由于指令條數相對較少,尋址方式簡單,指令格式規整,與CISC結構相比,控制器的譯碼和執行硬件相對簡單,因此芯片中用于實現控制器的晶體面積明顯減小。

b)在使用相同的晶片技術和相同運行時鐘下,RISC系統具有更快的運行速度。精簡的指令系統可以加快指令的譯碼,控制器的簡化可以縮短指令的執行延時等,這些都可以提高程序的執行速度。

c)可以提供直接支持高級語言的能力,簡化編譯程序的設計。指令總數的減少,縮小了編譯過程中對功能類似的機器指令的選擇范圍,減輕了對各種尋址方式進行選擇、分析和變換的負擔,易于更換或取消指令、調整指令順序,提高程序運行速度。

d)RISC處理器比相對應的CISC處理器設計更簡單,所需要的時間將變得更短,并可以比CISC處理器應用更多先進的技術,開發更快的下一代處理器。

相應的,RISC也存在一些缺點,主要有:

a) 由于指令少,因此加重了匯編程序員的負擔,增加了機器語言程序的長度,從而占用了較大的存儲空間。

b) 相對來說,RISC對編譯器的要求更高,因為指令簡單,RISC結構的性能就依賴于編譯器的效率。編譯器的優劣直接影響處理器的性能發揮。

綜合上面所述,若要再進一步比較CISC與RISC之差異,可以由以下幾點來進行分析:

1、指令的形成:CISC因指令復雜,故采微指令碼控制單元的設計,而RISC的指令90%是由硬體直接完成,只有10%的指令是由軟體以組合的方式完成,因此指令執行時間上RISC較短,但RISC所須ROM空間相對的比較大,至于RAM使用大小應該與程序的應用比較有關系。

2、定址模式:CISC的需要較多的定址模式,而RISC只有少數的定址模式,因此CPU在計算記憶體有效位址時,CISC占用的周期較多。

3、指令周期:CISC指令的格式長短不一,執行時的周期次數也不統一,而RISC結構剛好相反,故適合采用管線處理架構的設計,進而可以達到平均一周期完成一指令的方向努力。顯然的,在設計上RISC較CISC簡單,同時因為CISC的執行步驟過多,閑置的單元電路等待時間增長,不利于平行處理的設計,所以就效能而言RISC較CISC還是站了上風,但RISC因指令精簡化后造成應用程式碼變大,需要較大的程式記憶體空間,且存在指令種類較多等等的缺點。

4、大量使用寄存器

二、ARM處理器的模式與異常

ARM體系結構主要支持7種處理器模式,分別為 : 用戶模式、快中斷模式、中斷模式、管理模式、中止模式,未定義模式和系統模式

(1)系統(sys),快中斷(fiq)、中斷(irq)、管理(svc)、中止(abt)、未定義(und)這六種模式成為特權模式

(2)快中斷(fiq)、中斷(irq)、管理(svc)、中止(abt)、未定義(und)

這五種成為異常模式

思考:為什么處理會被設計成這么多模式呢?

處理器之所以被設計出這么多模式的目的是為了能夠更好地處理各種異常。

那什么是異常呢?所謂的異常,指的就是中止了程序正常執行的過程而不得不去完成的一些特殊工作,如芯片復位,取指失敗,指令未定義,等等。

有些同學在大學的時候,學過51單片機,知道中斷的概念。在這里中斷其實也是一種異常,這里的中斷包括外部硬件產生的外部中斷和由芯片內部硬件產生的內部中斷。由中斷產生的異常和其他異常,從處理方法的角度來看沒有任何區別,所以我們可以把這些異常統一起來研究。

注意:在正常情況下,一個普通程序可能會運行在用戶模式和系統模式下,當異常發生時,ARM就會自動切換到異常模式去處理異常,處理完后,又回到用戶模式或系統模式下繼續之前的工作。因為每一種模式都包含相應的私有資源,因此可以保證在處理異常的時候,原理的程序環境不會被新的環境破壞,從而保證了系統的正常工作。注意:在正常情況下,一個普通程序可能會運行在用戶模式和系統模式下,當異常發生時,ARM就會自動切換到異常模式去處理異常,處理完后,又回到用戶模式或系統模式下繼續之前的工作。因為每一種模式都包含相應的私有資源,因此可以保證在處理異常的時候,原理的程序環境不會被新的環境破壞,從而保證了系統的正常工作。

好了,關于ARM的異常和工作模式就介紹在這里,接下來我們來看看ARM每種模式下所擁有的寄存器。

三、ARM每種模式擁有的寄存器

前面我們講到,ARM使用的是RSIC架構,而RSIC架構特點之一就是使用大量寄存器。ARM處理器支持多模式,每種模式都有一些寄存器是公用的,有一些是私有的。

在這里可以簡單總結一下:

(1)ARM總共有37個寄存器,其中R0-R7,CPSR,R15(pc)是任何模式下都公用的的寄存器

(2)用戶模式和系統模式使用相同的寄存器R0-R15,CPSR

(3)每種異常模式都有自己的 SPSR,R13,R14

(4)FIQ模式除了公共R0-R7寄存器外,還有自己私有的R8-R12,其他模式沒有自己私有的R8-R12寄存器

注意:Cortex體系結構下有40個32-Bits長的寄存器Cortex-A多出3個寄存器,Monitor 模式 r13_mon , r14_mon, spsr_mon

接下來我們一起來看看這些寄存器都有什么作用吧。

四、ARM中每個寄存器的用途

(1)R0-R12 這些寄存器我們可以隨便使用,就像我們寫C語言一樣,都需要定義變量,在ARM的世界里,這些就是已經定義好的變量,可以直接拿來使用,每個都可以用來存放一個32bit的數哦。

(2)R13,R14這兩個寄存器就要注意了,前面我們分析過,在所有的異常模式下都有自己的私有的R13,R14,即每種異常模式在操作R13和R14,不會對其他模式下R13和R14的值產生影響。

R13我們又叫做sp,也就是我們常說的棧指針。大家C語言的局部變量時需要入棧的,也就是說不管在那一種模式下,如果我們想調用C語言程序,那在之前先設置好對應模式的sp指針。

R14為鏈接寄存器(LR),在結構上有兩個特殊功能:

(1)在每種模式下,模式自身的R14用于保存子程序返回地址;

(2)當發生異常時,將R14對應的異常模式設置為異常返回地址(有些異常有一個小的固定偏移量)。

(3)寄存器R15為程序計數器(PC),它指向正在取指的地址。也就說R15保存的是那一條指令的地址,CPU就會預取那一條指令。

(4)寄存器CPSR為程序狀態寄存器,它時刻記錄CPU的狀態

通過上圖我們可以知道,CPSR記錄了處理器當前工作的模式,FIQ、IRQ中斷是否使能,指令帶條件執行結果等信息。

下面我們詳細來看看每一位分別代表什么意思:

A.條件代碼標志

(N ) 運算結果的高位反映在該標志位。對于有符號二進制補碼,結果為負數時N=1,結果為正數或零時N=0;

(Z ) 指令結果為0時Z=1(通常表示比較結果“相等”),否則Z=0;

(C ) 當進行加法運算(包括CMN指令),并且高位產生進位時C=1,否則C=0。當進行減法運算(包括CMP 指令),并且高位產生借位時 C=0,否則C=1。對于結合移位操作的非加法/減法指令,C為從高位后移出的值,其它指令C通常不變;

(V)進行加法/減法運算,并且發生有符號溢出時V=1,否則V=0,其它指令V通常不變。

B. 中斷禁止位包括I和F位

當I位置位時,IRQ中斷被禁止;

當F位置位時,FIQ中斷被禁止。

C.T位反映了正在操作的狀態

當T位置位時,處理器正在Thumb狀態下運行;

當T位清零時,處理器正在ARM狀態下運行。

D.模式位

模式位包括M4、M3、M2、M1和M0,這些位決定處理器的操作模式。

10000 User mode ; 10001 FIQ mode; 10011 SVC mode ; 10111

Abort mode ; 11011 Undfined mode;

11111 System mode; 10110 Monitor mode; 10010 IRQ

注意:不是所有模式位的組合都定義了有效的處理器模式,如果使用了錯誤的設置,將引起一個無法恢復的錯誤

(5)SPSR 程序狀態保存寄存器

每種異常都有自己的SPSR,在因為異常事件而進入異常時它保存CPSR的當前值,異常退出時可通過它恢復CPSR。

五、Thumb狀態下的寄存器

ARM狀態和Thumb狀態之間寄存器的關系

Thumb狀態寄存器與ARM狀態寄存器有如下的關系:

Thumb狀態R0~R7與ARM狀態R0~R7相同;

Thumb狀態CPSR和SPSR與ARM狀態CPSR和SPSR相同;

Thumb狀態SP映射到ARM狀態R13;

Thumb狀態LR映射到ARM狀態R14;

Thumb狀態PC映射到ARM狀態PC(R15)。

注意: 在Thumb狀態中,高寄存器(R8~R15)不是標準寄存器集的一部分

六、ARM異常處理

前面我們已經說過異常了,所謂的異常可以理解為CPU的正常執行被打斷,而不得不去完成一些特殊的工作。有些同學可能感覺還是有點抽象,舉個例子說明一下吧:假如你正在努力的寫代碼,這個時候你肚子餓了,必須得解決呀,你就停止寫代碼,去吃飯了,吃完飯你又繼續寫代碼了,過了一會,你的瞌睡蟲來找你了,必須得睡覺呀,都三天三夜沒睡了。睡完之后,你又開始寫代碼。這里的肚子餓,瞌睡蟲就可以理解成異常情況,必須得處理,處理完后還得恢復以前的狀態。

那異常產生的時候,硬件上會自動做那些事情呢?注意是硬件自動做的哦,不需要我們介入的。

當一種異常發生時,硬件就會自動執行如下動作:

(1)將CPSR保存到相應異常模式下的SPSR中

(2)把PC寄存器保存到相應異常模式下的LR中

(3)將CPSR設置成相應的異常模式

(4)設置PC寄存器的值為相應處理程序的入口地址

可以總結如下圖:

細心的同學就會發現,這里的PC寄存器的值不是應該指向正在執行的指令嗎?為什么圖中卻指向了正在提起的指令,這里的"正在提取"又有什么含義呢?呵呵,這就涉及到流水線的問題了,關于流水線我們后面會介紹的。

這里我們還是先搞明白,異常產生的時候,硬件應該將PC值設為多少呢?要想明白這個問題,還必須先知道一個概念"異常向量表"。

ARM一共有5種異常模式,按道理,每一種異常模式都應該有一個唯一的入口地址。這些入口地址彼此相鄰,我們一般稱之為異常向量表。

當異常產生的時候,硬件會自動將PC的值設置為對應異常量的入口地址。具體異常向量表存放在什么位置,我們可以通過相關的協處理指令進行設置就可以了。這個我們在后期的課程中會講到。

好了到這里,我們已經知道了,異常發生時,硬件都自動做了哪些事情。那異常返回的時候,硬件也會自動做一些事情嗎?呵呵,答案是沒有。異常返回的時候,程序員必須做如下事情:

異常返回

(1)從 SPSR_<mode>恢復CPSR

(2)從LR_<mode>恢復PC

這些事情產生的效果就是恢復現場哦。

發表評論
評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
主站蜘蛛池模板: 真空系统,真空泵租赁技术服务-兆德机械(上海)有限公司 | 厦门,泉州自助餐上门|生日自助餐|婚礼自助餐|公司聚会自助餐|户外烧烤|冷餐|茶歇外卖配送-福建非选餐饮公司 | 江苏鹤心食品有限公司-茶叶_果浆果酱_固体饮料 | 汇讯WiseUC--连接人与业务,以即时通讯为基础的应用集成平台 | 优质课网_收录全国及各省市最新优质课视频,说课视频,名师课例课堂实录,高效课堂教学视频,观摩展示公开示范优秀课视频,教学大赛视频! | 深圳货柜租赁_集装箱出售/租赁_集装箱改造_鹏泰集装箱 | 学汽修_汽修学校_汽修学校哪家好-江西万通汽车学院官网 | 秦皇岛图成玻璃_横切机,琴键落板,堆垛机械手,玻璃钢化设备,掰边机,铺纸机,水平堆垛机+超大板堆垛机,纵掰纵分,下片机,冷端优化切割 | 唐山森林光线影视文化有限公司| 天空彩票天下彩,天空彩天空彩票免费资料,天空彩票与你同行开奖,天下彩正版资料大全 | 泰安led显示屏-泰安户外裸眼3D显示屏-扩声系统-舞台灯光机械-电子屏-肥城宁阳新泰东平-泰安市奇美特电子有限公司 | 选金银铅锌钽铌锡铂钨铑铱镐钯宝石&金属尾矿重选-青州冠诚重工机械 | 展馆展厅设计_数字多媒体展厅_3D全息投影_三维动画制作_企业宣传片|深圳市华南数字科技有限公司 斩天手游网_高质量手机游戏下载中心 | 推台锯_多片锯_圆木推台锯_方木多片锯_圆木多片锯-河北茂业机械有限公司 | 微机继电保护测试仪,单相继电保护测试仪,三相继电保护测试仪,六相继电保护测试仪,介质损耗测试仪,氧化锌避雷器测试仪,无线核相仪-扬州豪泰电力科技有限公司 | 全通径焊接球阀_全焊接球阀「生产厂家」批发-浙江信合阀门有限公司 | 呼吸家官网|肺功能检测仪生产厂家|国产肺功能仪知名品牌|肺功能检测仪|肺功能测试仪|婴幼儿肺功能仪|弥散残气肺功能仪|肺功能测试系统|广州红象医疗科技有限公司|便携式肺功能仪|大肺功能仪|呼吸康复一体机|儿童肺功能仪|肺活量计|医用简易肺功能仪|呼吸康复系统|肺功能仪|弥散肺功能仪(大肺)|便携式肺功能检测仪|肺康复|呼吸肌力测定肺功能仪|肺功能测定仪|呼吸神经肌肉刺激仪|便携式肺功能 | 消防改造安装,消防维修检测,消防工程安装,气体灭火施工安装,火灾烟感探测器清洗 | 自动封箱机_纸箱封箱机_封箱机厂家-青岛百高包装器材有限公司 | 深圳市佳顺优印印刷有限公司,佳顺优印,画册印刷,海报印刷,封套印刷,手提袋印刷,包装盒印刷,彩盒印刷,无碳纸印刷,不干胶印刷,信封印刷,便笺印刷,笔记本印刷,台历印刷,挂历印刷,国际会展中心附近印刷厂,宝安印刷厂,宝安教材印刷厂 | 上饶环亚电脑会计培训学校--电脑学校|上饶电脑学校|上饶电脑培训|会计培训|上饶会计培训|上饶县会计培训|广丰会计培训|玉山会计培训|横峰会计培训|上饶网店培训 上进电缆(嘉兴)股份有限公司官网 - 光伏电缆|防火电缆|电力电缆|铝合金电缆专业生产厂家 | 无缝钢管生产厂家-20G-L360N无缝钢管价格-天津海诚无缝钢管集团 无尘投料站-真空上料机-旋振筛|超声波振动筛|摇摆筛|筛分机-新乡市欧霖佳机械有限公司 | 三亚酒吧KTV会所 专业舞台音响灯光 智能影音 会议音响工程 首选海南东演音响公司 | 声测管厂家_注浆管现货_桩基声测管_河北沧州新迈实业有限公司 | 生态护坡砖_护坡砖_合肥植草砖-巢湖市华林新型建材有限公司 | 明康食品有限公司 -方集馓子 亨特小麻花 | 智能电地暖_电地暖安装_电地暖价格-西安秦星暖通工程有限公司 | 南京文化墙设计公司,南京包装设计制作印刷,南京PPT设计公司,导视制作公司,企业logo设计 | 环链电动葫芦-群吊电动葫芦-链条电动葫芦-环链葫芦-河北大力起重官方网站 | 潍坊网络推广,临沂360推广,东营360推广,枣庄360推广,潍坊网站建设,潍坊网络公司,潍坊360搜索,潍坊APP开发,潍坊360推广,潍坊360代理,潍坊点睛网络科技有限公司 | 首页 菲律宾海运双清|马尼拉海运双清|广州菲律宾专线|广州通达供应链有限公司 | 硬脂酸钡_硬脂酸镁_硬脂酸镉_硬脂酸铝_硬脂酸锌-石家庄中石恒达矿产品有限公司 | 汽修学校|汽车维修学校收费|全国职业技校汽修-北京万通汽修学校 汽车轴承|圆锥滚子轴承|轴承生产厂家|赛襄轴承 | 亚克力游泳池_透明/空中/无边泳池_别墅亚克力泳池设计生产厂家_瑞地格乐-深圳他拍档 | 矿用三环链|锻打/焊接三环链|矿车万能环|三环链销子-济宁卓力工矿设备有限公司 | 激光焊接机_激光打标机_激光切割机-惠州市镭凌激光科技有限公司 激光焊接不锈钢翅片管,不锈钢翅片管,激光焊接复合翅片管,南通拓帆换热设备有限公司 | 纳米砂磨机|纳米研磨机|实验室砂磨机-无锡市少宏粉体科技有限公司 | 全开式真空干燥机_全开耙式真空干燥机_全开式动态真空干燥机,江阴千峰机械制造有限公司 | 压滤机专用泵|柱塞泥浆泵|咸阳华星泵业有限公司 | 全自动烫金机-全自动移印机-全自动丝印机-全自动平面机-东莞联昌实业供应各种丝印机和移印机 | 卫生间隔断-东莞卫生间隔断-东莞卫生间隔断厂家-公共卫生间隔断-东莞市康丰家居建材有限公司 |