1、嵌入式系统教案嵌入式系统教案武汉创维特信息技术有限公司武汉创维特信息技术有限公司 2023-1-62提綱 ARM技術的應用領域及特點 ARM 處理器的暫存器組織 ARM處理器的工作模式 ARM微處理器系列 第二章 ARM體系結構及編程模型 ARM 例外處理 ARM處理器的工作狀態 ARM處理器的記憶體格式 3ARMAdvanced RISC Machines qARM(Advanced RISC Machines),),既可以認爲是既可以認爲是一個公司的名字,也可以認爲是對一類微處理器的通稱,一個公司的名字,也可以認爲是對一類微處理器的通稱,還可以認爲是一種技術的名字。還可以認爲是一種技術的名
2、字。ARM技術的應用領域及特點 q1991年年ARM公司成立於英國康橋,主要出售晶片設公司成立於英國康橋,主要出售晶片設計技術的授權。計技術的授權。4ARM 公司的Chip less模式q世界各大半導體生産商從世界各大半導體生産商從ARMARM公司購買其設計的公司購買其設計的ARMARM微處微處理器核,根據各自不同的應用領域,加入適當的週邊電路,理器核,根據各自不同的應用領域,加入適當的週邊電路,從而形成自己的從而形成自己的ARMARM微處理器晶片進入市場。微處理器晶片進入市場。ARM技術的應用領域及特點 q基於基於ARM技術的微處理器應用約佔據了技術的微處理器應用約佔據了32位位RISC微處
3、微處 理器理器75以上的市場份額,以上的市場份額,ARM技術正在逐步滲入到我們技術正在逐步滲入到我們生活的各個方面。生活的各個方面。q我國的中興積體電路、大唐電訊、中芯國際和上海華虹,我國的中興積體電路、大唐電訊、中芯國際和上海華虹,以及國外的一些公司如德州儀器、意法半導體、以及國外的一些公司如德州儀器、意法半導體、PhilipsPhilips、IntelIntel、SamsungSamsung等都推出了自己設計的基於等都推出了自己設計的基於ARMARM核的處理器。核的處理器。5ARM微處理器的應用領域 工業控制領域:作爲工業控制領域:作爲3232的的RISCRISC架構,基於架構,基於ARM
4、ARM核的核的微控制器晶片不但佔據了高階微控制器市場的大部微控制器晶片不但佔據了高階微控制器市場的大部分市場份額,同時也逐漸向低分市場份額,同時也逐漸向低階階微控制器應用領域微控制器應用領域擴展,擴展,ARMARM微控制器的低功耗、高性價比,向傳統微控制器的低功耗、高性價比,向傳統的的8 8位位/16/16位微控制器提出了挑戰。位微控制器提出了挑戰。ARM技術的應用領域及特點 q到目前爲止,到目前爲止,ARM微處理器及技術的應用已經廣泛深微處理器及技術的應用已經廣泛深入到國民經濟的各個領域入到國民經濟的各個領域 6ARM微處理器的應用領域 ARM技術的應用領域及特點 q網路應用:隨著寬頻技術的
5、推廣,採用網路應用:隨著寬頻技術的推廣,採用ARM技術的技術的ADSL晶片正逐步獲得競爭優勢。此外,晶片正逐步獲得競爭優勢。此外,ARM在語音及視頻在語音及視頻處理上作最佳化,並獲得廣泛支援,也對處理上作最佳化,並獲得廣泛支援,也對DSP的應用領域提的應用領域提出了挑戰。出了挑戰。q消費類電子産品:消費類電子産品:ARM技術在目前流行的數位音頻播技術在目前流行的數位音頻播放器、數位機上盒放器、數位機上盒(Set-Top Box)(Set-Top Box)和遊戲機中得到廣泛採用。和遊戲機中得到廣泛採用。q影像和安全産品:現在流行的數位相機和印表機中絕大影像和安全産品:現在流行的數位相機和印表機中
6、絕大部分採用部分採用ARM技術。手機中的技術。手機中的32位位SIM智慧卡也採用了智慧卡也採用了ARM技術。技術。q7ARMARM微處理器的特點微處理器的特點低功耗、低成本、高性能低功耗、低成本、高性能 採用RISC指令集 ARM技術的應用領域及特點 q低功耗、低成本、高性能低功耗、低成本、高性能使用大量的暫存器ARM(32 Bits)/THUMB(16 Bits)指令支持三(ARM7,Fetch-Decode-Execute,沒MMU)/五級管線(ARM9,Fetch-Decode-Execute-Memory Access-Write Register,有MMU)全靜態操作,省電 8ARM
7、ARM微處理器的特點微處理器的特點採用採用RISCRISC體系結構體系結構 ARM技術的應用領域及特點 q採用採用RISC架構的架構的ARM處理器一般具有如下特點:處理器一般具有如下特點:固定長度的指令格式,指令歸整、簡單、基固定長度的指令格式,指令歸整、簡單、基 本定本定址方式有址方式有23種;種;使用單周期指令使用單周期指令(理想值,平均為理想值,平均為1.5 CLK)1.5 CLK),便,便於管線操作執行;於管線操作執行;大量使用暫存器,資料處理指令只對暫存器進行大量使用暫存器,資料處理指令只對暫存器進行操作,只有載入操作,只有載入/儲儲存指令可以存取記憶體,以提高指存指令可以存取記憶體
8、,以提高指令的執行效率。令的執行效率。9ARMARM微處理器的特點微處理器的特點大量使用暫存器大量使用暫存器 ARM技術的應用領域及特點 qARM 處理器共有處理器共有37個暫存器,被分爲若干個組,這些個暫存器,被分爲若干個組,這些暫存器包括:暫存器包括:31個通用個通用暫暫存器,包括程式計數器(存器,包括程式計數器(PC 指標),指標),均爲均爲32位的位的暫暫存器;存器;6個狀態暫存器,用以標識個狀態暫存器,用以標識CPU的工作狀態及程的工作狀態及程式的操作狀態,均爲式的操作狀態,均爲32位元。位元。10ARMARM微處理器的特點微處理器的特點高效能的指令系統高效能的指令系統 ARM技術的
9、應用領域及特點 qARM微處理器支援兩種指令集:微處理器支援兩種指令集:ARM指令集和指令集和Thumb指令集。指令集。qARM指令爲指令爲32位元的長度,位元的長度,Thumb指令爲指令爲16位元長度。位元長度。Thumb指令集爲指令集爲ARM指令集的功能子集,但與等價的指令集的功能子集,但與等價的ARM代碼相比較,可節省代碼相比較,可節省3040以上的記憶體空間,同時具以上的記憶體空間,同時具備備32位代碼的所有優點,位代碼的所有優點,用於用於BIOS(BIOS(省錢省錢)。11ARMARM微處理器的特點微處理器的特點其他技術其他技術 ARM技術的應用領域及特點 q除此以外,除此以外,AR
10、M體系結構還採用了一些特別的技術,體系結構還採用了一些特別的技術,在保證高性能的前提下儘量縮小晶片的面積,並降低功耗:在保證高性能的前提下儘量縮小晶片的面積,並降低功耗:q所有的指令都可根據前面的執行結果決定是否被執行,所有的指令都可根據前面的執行結果決定是否被執行,從而提高指令的執行效率。從而提高指令的執行效率。q可用載入可用載入/儲儲存指令存指令(為為Memory MAP Memory MAP 特性特性)做批次傳輸資做批次傳輸資料,以提高資料的傳輸效率。料,以提高資料的傳輸效率。q可在一條資料處理指令中同時完成邏輯處理和移位元處可在一條資料處理指令中同時完成邏輯處理和移位元處理。理。q在迴
11、圈處理中使用地址的自動增減來提高操作效率。在迴圈處理中使用地址的自動增減來提高操作效率。12ARM微處理器系列 ARM微處理器系列 qARM7系列系列qARM9系列系列qARM9E系列系列qARM10E系列系列qSecurCore系列系列qIntel的的Xscaleq其中,其中,ARM7、ARM9、ARM9E和和ARM10爲爲4個通用處個通用處理器系列,每一個系列提供一套相對獨特的性能來滿足不同理器系列,每一個系列提供一套相對獨特的性能來滿足不同應用領域的需求。應用領域的需求。SecurCore系列專門爲安全要求較高的應系列專門爲安全要求較高的應用而設計,用於用而設計,用於IC Card,Sm
12、art CardIC Card,Smart Card等,有防潙功能等,有防潙功能)。13ARM7微處理器系列qARM7系列是爲低功耗的系列是爲低功耗的32位位RISC處理器,最適合用處理器,最適合用於對價位和功耗要求較高的消費性應用。於對價位和功耗要求較高的消費性應用。ARM7系列有如下系列有如下特點:特點:具有嵌入式具有嵌入式ICERT邏輯,除錯開發方便;邏輯,除錯開發方便;極低的功耗,適合對功耗要求較高的應用,如攜帶型産品;極低的功耗,適合對功耗要求較高的應用,如攜帶型産品;能夠提供能夠提供0.9MIPS/MHz的三級管線結構;的三級管線結構;代碼密度高,並相容代碼密度高,並相容16位元的
13、位元的Thumb指令集;指令集;對作業系統的支援廣泛,如對作業系統的支援廣泛,如Windows CE、Linux、Palm OS等;等;指令系統與指令系統與ARM9系列、系列、ARM9E系列和系列和ARM10E系列相容,便系列相容,便於用戶的産品升級換代;於用戶的産品升級換代;主頻最高可達主頻最高可達130M,高速的運算處理能力能勝任絕大多數的複高速的運算處理能力能勝任絕大多數的複雜應用。雜應用。ARM微處理器系列 14ARM7微處理器系列ARM微處理器系列 q主要應用領域:工業控制、主要應用領域:工業控制、Internet設備、網路和數據設備、網路和數據機設備、行動電話等多種多媒體和嵌入式應
14、用。機設備、行動電話等多種多媒體和嵌入式應用。qARM7系列微處理器包括如下幾種類型的核心:系列微處理器包括如下幾種類型的核心:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其其中,中,ARM7TMDI是目前使用最廣泛的是目前使用最廣泛的32位嵌入式位嵌入式RISC處理處理器,屬低階器,屬低階ARM處理器核處理器核心心。TDMI的基本含義爲:的基本含義爲:qT:支援支援16爲壓縮指令集爲壓縮指令集Thumb;qD:支援晶片上支援晶片上Debug;qM:內嵌硬體乘法器(內嵌硬體乘法器(Multiplier,32X32=64Bits)qI:嵌入式嵌入式ICE,支援支援晶晶片
15、上中斷點和除錯點;片上中斷點和除錯點;15ARM9微處理器系列ARM微處理器系列 qARM9系列微處理器在高性能和低功耗特性方面提供最系列微處理器在高性能和低功耗特性方面提供最佳的表現。具有以下特點:佳的表現。具有以下特點:5級整數管線,指令執行效率更高。級整數管線,指令執行效率更高。提供提供1.1MIPS/MHz的哈佛結構。的哈佛結構。支持支持32位位ARM指令集和指令集和16位位Thumb指令集。指令集。支援支援32位元的高速位元的高速AMBA匯流排界面。匯流排界面。全性能的全性能的MMU,支援支援Windows CE、Linux、Palm OS等多種等多種主流嵌入式作業系統。主流嵌入式作
16、業系統。MPU支援即時作業系統。支援即時作業系統。內含內含16K16K資料資料Cache和和16K指令指令Cache,具有更高的指令和資料具有更高的指令和資料處理能力處理能力。16ARM9微處理器系列qARM9ARM9系列微處理器主要應用於無線設備、儀器儀錶、系列微處理器主要應用於無線設備、儀器儀錶、安全系統、機上盒、高階印表機、數位照相機和數位攝安全系統、機上盒、高階印表機、數位照相機和數位攝影機等。影機等。ARM微處理器系列 qARM9ARM9系列微處理器包含系列微處理器包含ARM920TARM920T、ARM922TARM922T和和ARM940TARM940T三三種類型,以適用于不同的
17、應用場合。種類型,以適用于不同的應用場合。17ARM9E微處理器系列ARM微處理器系列 qARM9EARM9E系列微處理器的主要特點如下:系列微處理器的主要特點如下:支援支援DSP指令集,適合於需要高速數位信號處理的場合。指令集,適合於需要高速數位信號處理的場合。5級整數管線,指令執行效率更高。級整數管線,指令執行效率更高。支援支援32位元位元ARM指令集和指令集和16位元位元Thumb指令集。指令集。支援支援32位元的高速位元的高速AMBA匯流排界面匯流排界面(AMBA=AHB(AMBA=AHB高速元高速元件件+APB+APB 高速元件高速元件)。支援支援VFP9浮點處理輔助運算器。浮點處理
18、輔助運算器。全性能的全性能的MMU,支援衆多主流嵌入式作業系統。支援衆多主流嵌入式作業系統。支援資料支援資料Cache和指令和指令Cache,具有更高的處理能力。具有更高的處理能力。主頻最高可達主頻最高可達300M。18ARM9E微處理器系列qARM9EARM9E系列微處理器主要應用於下一代無線設備、數位系列微處理器主要應用於下一代無線設備、數位消費品、影像設備、工業控制、消費品、影像設備、工業控制、儲儲存設備和網路設備存設備和網路設備等領域。等領域。ARM微處理器系列 qARM9EARM9E系列微處理器包含系列微處理器包含ARM926EJ-SARM926EJ-S、ARM946E-SARM94
19、6E-S和和ARM966E-SARM966E-S三種類型,以適用于不同的應用場合。三種類型,以適用于不同的應用場合。19ARM10E微處理器系列ARM微處理器系列 qARM10EARM10E系列微處理器的主要特點如下:系列微處理器的主要特點如下:支援支援DSP指令集,適合於需要高速數位信號處理的場合。指令集,適合於需要高速數位信號處理的場合。6級整數管線,指令執行效率更高。級整數管線,指令執行效率更高。支持支持32位位ARM指令集和指令集和16位位Thumb指令集。指令集。支援支援32位元的高速位元的高速AMBA匯流排界面。匯流排界面。支援支援VFP10浮點處理輔助運算器。浮點處理輔助運算器。
20、全性能的全性能的MMU,支援衆多主流嵌入式作業系統。支援衆多主流嵌入式作業系統。內含內含資料資料Cache和指令和指令Cache,具有更高的處理能力具有更高的處理能力 主頻最高可達主頻最高可達400M。內嵌並行讀內嵌並行讀/寫操作物件。寫操作物件。20ARM10E微處理器系列qARM10EARM10E系列微處理器主要應用於下一代無線設備、數系列微處理器主要應用於下一代無線設備、數位消費品、影像設備、工業控制、通信和資訊系統等領位消費品、影像設備、工業控制、通信和資訊系統等領域。域。ARM微處理器系列 qARM10EARM10E系列微處理器包含系列微處理器包含ARM1020EARM1020E、A
21、RM1022EARM1022E和和ARM1026EJ-SARM1026EJ-S三種類型,以適用于不同的應用場三種類型,以適用于不同的應用場合。合。21SecurCore微處理器系列ARM微處理器系列 qSecurCoreSecurCore系列微處理器除了具有系列微處理器除了具有ARMARM體系結構各種主體系結構各種主要特點外,還在系統安全方面具有如下的特點:要特點外,還在系統安全方面具有如下的特點:帶有靈活的保護單元,確保作業系統和應用資料的安全。帶有靈活的保護單元,確保作業系統和應用資料的安全。採用軟內核技術,防止外部對其進行掃描探測。採用軟內核技術,防止外部對其進行掃描探測。可整合用戶自己
22、的安全特性和其他輔助運算器。可整合用戶自己的安全特性和其他輔助運算器。22SecurCore微處理器系列q SecurCoreSecurCore系列微處理器主要應用於一些對安全性要求系列微處理器主要應用於一些對安全性要求較高的應用産品及應用系統,如電子商務、電子政務、較高的應用産品及應用系統,如電子商務、電子政務、電子銀行業務、網路和認證系統等領域。電子銀行業務、網路和認證系統等領域。ARM微處理器系列 q SecurCoreSecurCore系列微處理器包含系列微處理器包含SecurCoreSecurCore SC100 SC100、SecurCore SC110SecurCore SC11
23、0、SecurCore SC200SecurCore SC200和和SecurCoreSecurCore SC210SC210四種類型,以適用于不同的應用場合。四種類型,以適用于不同的應用場合。23StrongARM微處理器系列ARM微處理器系列 qIntel StrongARM處理器是攜帶型通訊産品和消費類電子處理器是攜帶型通訊産品和消費類電子産品的理想選擇,已成功應用於多家公司的掌上電腦系産品的理想選擇,已成功應用於多家公司的掌上電腦系列產品。列產品。qIntel Intel StrongARMStrongARM SA-1100 SA-1100處理器是採用處理器是採用ARMARM體系結構高
24、體系結構高度整合的度整合的3232位元位元RISCRISC微處理器。它融合了微處理器。它融合了IntelIntel公司的設公司的設計和處理技術以及計和處理技術以及ARMARM體系結構的電源效率,採用在軟體體系結構的電源效率,採用在軟體上相容上相容ARMv4ARMv4體系結構、同時採用具有體系結構、同時採用具有IntelIntel技術優點的技術優點的體系結構。體系結構。24Xscale處理器ARM微處理器系列 qXscaleXscale 處理器是基於處理器是基於ARMv5TEARMv5TE體系結構的解決方案,是體系結構的解決方案,是一款全功能、高性一款全功能、高性能能價格比、低功耗的處理器。它支
25、援價格比、低功耗的處理器。它支援1616位元的位元的ThumbThumb指令和指令和DSPDSP指令集,已使用在數位行動電指令集,已使用在數位行動電話、個人數位助理和網路産品等場合。話、個人數位助理和網路産品等場合。qXscaleXscale 處理器是處理器是IntelIntel目前主要推廣的一款目前主要推廣的一款ARMARM微處理器。微處理器。25ARM微處理器的工作狀態 ARM微處理器的工作狀態 q從程式執行的角度看,從程式執行的角度看,ARMARM微處理器的工作狀態一般有兩微處理器的工作狀態一般有兩種,並可在兩種狀態之間切換:種,並可在兩種狀態之間切換:ARM狀態,此時處理器執行狀態,此
26、時處理器執行32位的字對齊的位的字對齊的ARM指指令;令;Thumb狀態,此時處理器執行狀態,此時處理器執行16位的、半字對齊的位的、半字對齊的Thumb指令。指令。26ARM與THUMB q THUMB指令是ARM指令的子集ARM微處理器的工作狀態 q 可以相互調用,只要遵循一定的調用規則 q Thumb指令與ARM指令的時間效率和空間效率關係爲:記憶體空間約爲ARM代碼的6070 指令數比ARM代碼多約3040 記憶體爲32位時ARM代碼比Thumb代碼快約40 記憶體爲16位時Thumb比ARM代碼快約4050 使用Thumb代碼,記憶體的功耗會降低約30 27狀態切換方法 q ARMA
27、RM指令集和指令集和ThumbThumb指令集均有切換處理器狀態的指令,指令集均有切換處理器狀態的指令,並可在兩種工作狀態之間切換並可在兩種工作狀態之間切換 ARM微處理器的工作狀態 q 在開始執行代碼時,應該處於在開始執行代碼時,應該處於ARMARM狀態。狀態。28進入進入ThumbThumb狀態狀態 q 當運算元暫存器的狀態位元(位元當運算元暫存器的狀態位元(位元0 0)爲)爲1 1時,可以採時,可以採用執行用執行BXBX指令的方法,使微處理器從指令的方法,使微處理器從ARMARM狀態切換到狀態切換到ThumbThumb狀態狀態 。如下如下 LDR LDRR0,=label+1R0,=la
28、bel+1 BX BXR0R0q 當處理器處於當處理器處於ThumbThumb狀態時發生例外(如狀態時發生例外(如IRQIRQ、FIQFIQ、UndefUndef、AbortAbort、SWISWI等),則例外處理返回時,自動切等),則例外處理返回時,自動切換到換到ThumbThumb狀態狀態 。ARM微處理器的工作狀態 29切換到切換到ARMARM狀態狀態 q 當運算元暫存器的狀態位元爲當運算元暫存器的狀態位元爲0 0時,執行時,執行BXBX指令時可以指令時可以使微處理器從使微處理器從ThumbThumb狀態切換到狀態切換到ARMARM狀態。狀態。如下如下 LDRR0,=label BXR0
29、 ARM微處理器的工作狀態 q 在處理器進行例外處理時,把在處理器進行例外處理時,把PCPC指標放入例外模式鏈指標放入例外模式鏈結暫存器中,並從例外向量位址開始執行程式,也可結暫存器中,並從例外向量位址開始執行程式,也可以使處理器切換到以使處理器切換到ARMARM狀態。狀態。30處理器模式 ARM微處理器的工作模式 q usrusr:ARMARM處理器正常的程式執行狀態處理器正常的程式執行狀態 q fiqfiq:於高速資料傳輸或通道處理於高速資料傳輸或通道處理 q irqirq:用於通用的中斷處理用於通用的中斷處理 q svcsvc:作業系統使用的保護模式作業系統使用的保護模式 q abtab
30、t:用於虛擬用於虛擬儲儲存及存及儲儲存保護存保護 q syssys:執行具有特權的作業系統任務執行具有特權的作業系統任務 q undund:當出現未定義指令終止時進入該模式當出現未定義指令終止時進入該模式 31用戶模式和特權模式 ARM微處理器的工作模式q 除了用戶模式之外的其他除了用戶模式之外的其他6 6種處理器模式稱爲特權模式種處理器模式稱爲特權模式 q 特權模式下,程式可以存取所有的系統資源,也可以特權模式下,程式可以存取所有的系統資源,也可以任意地進行處理器模式的切換。任意地進行處理器模式的切換。q 特權模式中,除系統模式外,其他特權模式中,除系統模式外,其他5 5種模式又稱爲例外模式
31、種模式又稱爲例外模式 q 大多數的用戶程式操作在用戶模式下,此時,應用程大多數的用戶程式操作在用戶模式下,此時,應用程式不能夠存取一些受作業系統保護的系統資源,應用式不能夠存取一些受作業系統保護的系統資源,應用程式也不能直接進行處理器模式的切換。程式也不能直接進行處理器模式的切換。q 用戶模式下,當需要進行處理器模式切換時,應用程用戶模式下,當需要進行處理器模式切換時,應用程式可以産生例外處理,在例外處理中進行處理器模式式可以産生例外處理,在例外處理中進行處理器模式的切換。的切換。32模式切换ARM微處理器的工作模式q 處理器模式可以通過軟體進行切換,也可以通過外部處理器模式可以通過軟體進行切
32、換,也可以通過外部中斷或者例外處理過程進行切換。中斷或者例外處理過程進行切換。q 當應用程式發生例外中斷時,處理器進入相應的例外當應用程式發生例外中斷時,處理器進入相應的例外模式。在每一種例外模式下都有一組暫存器,供相應模式。在每一種例外模式下都有一組暫存器,供相應的例外處理程式使用,這樣就可以保證在進入例外模的例外處理程式使用,這樣就可以保證在進入例外模式時,用戶模式下的暫存器不被破壞。式時,用戶模式下的暫存器不被破壞。q 系統模式並不是通過例外進入的,它和用戶模式具有系統模式並不是通過例外進入的,它和用戶模式具有完全一樣的暫存器。但是系統模式屬於特權模式,可完全一樣的暫存器。但是系統模式屬
33、於特權模式,可以存取所有的系統資源,也可以直接進行處理器模式以存取所有的系統資源,也可以直接進行處理器模式切換。它主要供作業系統任務使用。通常作業系統的切換。它主要供作業系統任務使用。通常作業系統的任務需要存取所有的系統資源,同時該任務仍然使用任務需要存取所有的系統資源,同時該任務仍然使用用戶模式的暫存器組,而不是使用例外模式下相應的用戶模式的暫存器組,而不是使用例外模式下相應的暫存器組,這樣可以保證當例外中斷發生時任務狀態暫存器組,這樣可以保證當例外中斷發生時任務狀態不被破壞。不被破壞。33ARM微處理器的記憶體格式 q ARMARM體系結構所支援的最大定址空間爲體系結構所支援的最大定址空間
34、爲4 4GBGB(2 23232位元組)位元組)ARM微處理器的記憶體格式 q ARMARM體系結構將記憶體看作是從零位址開始的位元組的體系結構將記憶體看作是從零位址開始的位元組的線性組合。從零位元組到三位元組放置第一個儲存的字線性組合。從零位元組到三位元組放置第一個儲存的字資料,從第四個位元組到第七個位元組放置第二個儲存資料,從第四個位元組到第七個位元組放置第二個儲存的字資料,依次排列。的字資料,依次排列。q ARMARM體系結構可以用兩種方法儲存字資料,稱之爲大端格體系結構可以用兩種方法儲存字資料,稱之爲大端格式式(Big-(Big-EndianEndian,Intel),Intel)和小
35、端格式和小端格式(little-(little-Endian,MotorolaEndian,Motorola)34ARM體系結構的記憶體格式大端格式 ARM微處理器的記憶體格式 q 在這種格式中,字資料的高位元組儲存在低位址中,而在這種格式中,字資料的高位元組儲存在低位址中,而字資料的低位元組則存放在高位址中字資料的低位元組則存放在高位址中 35ARM體系結構的記憶體格式小端格式 ARM微處理器的記憶體格式 q 與大端儲存格式相反,在小端儲存格式中,低位址中存放與大端儲存格式相反,在小端儲存格式中,低位址中存放的是字資料的低位元組,高位址存放的是字資料的高位元的是字資料的低位元組,高位址存放的
36、是字資料的高位元組組 36指令長度及資料類型 qARMARM微處理器的指令長度可以是微處理器的指令長度可以是3232位元(在位元(在ARMARM狀態狀態下),也可以爲下),也可以爲1616位元(在位元(在ThumbThumb狀態下)。狀態下)。ARM微處理器的記憶體格式 qARMARM微處理器中支援位元組(微處理器中支援位元組(8 8位元)、半字(位元)、半字(1616位)、位)、字(字(3232位)三種資料類型,其中,字需要位)三種資料類型,其中,字需要4 4位元組對齊位元組對齊(位址的低兩位爲(位址的低兩位爲0 0)、半字需要)、半字需要2 2位元組對齊(位址位元組對齊(位址的最低位爲的最
37、低位爲0 0)37非對齊的儲存存取操作 q在在ARMARM種,如果儲存單元的位址沒有遵守對齊規則,則種,如果儲存單元的位址沒有遵守對齊規則,則稱爲非對齊的儲存存取操作。稱爲非對齊的儲存存取操作。ARM微處理器的記憶體格式 q非對齊的指令預取操作非對齊的指令預取操作 q非對齊的資料存取操作非對齊的資料存取操作 38非對齊的指令預取操作 q當處理器處於當處理器處於ARMARM狀態期間,如果寫入到暫存器狀態期間,如果寫入到暫存器PCPC中的中的值是非字對齊的,則指令執行的結果不可預知,該位值是非字對齊的,則指令執行的結果不可預知,該位址值中最低兩位被忽略。址值中最低兩位被忽略。ARM微處理器的記憶體
38、格式 q當處理器處於當處理器處於THUMBTHUMB狀態期間,如果寫入到暫存器狀態期間,如果寫入到暫存器PCPC中中的值是非半字對齊的,的值是非半字對齊的,則則指令執行的結果不可預知,指令執行的結果不可預知,該該位址值中最低位被忽略。位址值中最低位被忽略。39非對齊的資料存取操作 q對於對於Load/StoreLoad/Store操作,如果是非對齊的資料存取操作,操作,如果是非對齊的資料存取操作,系統定義了三種可能的結果:系統定義了三種可能的結果:ARM微處理器的記憶體格式 執行的結果不可預知執行的結果不可預知 忽略字單元地址的低兩位元的值,即存取地址爲忽略字單元地址的低兩位元的值,即存取地址
39、爲(address AND 0XFFFFFFFC)address AND 0XFFFFFFFC)的字單元;忽略半字單元的字單元;忽略半字單元地址的最低位元的值,即存取地址爲地址的最低位元的值,即存取地址爲(address AND address AND 0XFFFFFFFE)0XFFFFFFFE)的半字單元。的半字單元。忽略字單元地址的低兩位元的值;忽略半字單元地址忽略字單元地址的低兩位元的值;忽略半字單元地址的最低位元的值;由儲存系統實現這種忽略。也就是的最低位元的值;由儲存系統實現這種忽略。也就是說,這時該位址值原封不動地送到儲存系統。說,這時該位址值原封不動地送到儲存系統。q當發生非對齊
40、地資料存取時,到底採用上述三種方法當發生非對齊地資料存取時,到底採用上述三種方法中的哪一種,是由各指令指定的。中的哪一種,是由各指令指定的。40暫存器組織 q ARMARM微處理器共有微處理器共有3737個個3232位元暫存器,其中位元暫存器,其中3131個爲通用暫個爲通用暫存器,存器,6 6個爲狀態暫存器。但是這些暫存器不能被同時存個爲狀態暫存器。但是這些暫存器不能被同時存取,具體哪些暫存器是可被程式存取的,取決微處理器的取,具體哪些暫存器是可被程式存取的,取決微處理器的工作狀態及具體的操作模式。但在任何時候,通用暫存器工作狀態及具體的操作模式。但在任何時候,通用暫存器R14R14R0R0、
41、程式計數器程式計數器PCPC、一個或兩個狀態暫存器都是可一個或兩個狀態暫存器都是可存取的。存取的。ARM微處理器的記憶體格式 41ARM狀態下的暫存器組織 q 通用暫存器:通用暫存器包括R0R15,可以分爲三類:未分組暫存器未分組暫存器 R0R0R7R7分分組暫組暫存器存器R8R8R14R14程式計數器程式計數器 PC(R15)PC(R15)ARM微處理器的記憶體格式 42ARM狀態下的暫存器組織 ARM微處理器的記憶體格式 43未分組暫存器 R0R7ARM微處理器的記憶體格式 q 在所有的操作模式下,未分組暫存器都指向同一個真正(物理)暫存器,他們未被系統用作特殊的用途。因此,在中斷或例外處
42、理進行操作模式轉換時,由於不同的處理器操作模式均使用相同的物理暫存器,可能會造成暫存器中資料的破壞,這一點在進行程式設計時應注意。44分組暫存器 R8R12ARM微處理器的記憶體格式 q 每次所存取的物理暫存器與處理器當前的操作模式有關q R8R12:每個暫存器對應兩個不同的物理暫存器 當使用fiq模式時,存取暫存器R8_fiqR12_fiq;當使用除fiq模式以外的其他模式時,存取暫存器R8_usrR12_usr。45分組暫存器 R13R14ARM微處理器的記憶體格式 q R13、R14:每個暫存器對應6個不同的物理暫存器 q 其中的一個是用戶模式與系統模式共用,另外5個物理暫存器對應於其他
43、5種不同的操作模式 q 採用以下的記號來區分不同的物理暫存器:R13_ R14_q mode爲以下幾種之一:usr、fiq、irq、svc、abt、und。46堆疊指標R13 ARM微處理器的記憶體格式 q R13在ARM指令中常用作堆疊指標,但這只是一種習慣用法,用戶也可使用其他的暫存器作爲堆疊指標。q 在Thumb指令集中,某些指令強制性的要求使用R13作爲堆疊指標。q 由於處理器的每種操作模式均有自己獨立的物理暫存器R13,在初始化部分,都要初始化每種模式下的R13,這樣,當程式的操作進入例外模式時,可以將需要保護的暫存器放入R13所指向的堆疊,而當程式從例外模式返回時,則從對應的堆疊中
44、恢復。47副程式連接暫存器R14 ARM微處理器的記憶體格式 q R14也稱作副程式連接暫存器或連接暫存器LR。當執行BL指令時,可以從R14中得到R15(程式計數器PC)的備份。其他情況下,R14用作通用暫存器。q 在每一種操作模式下,都可用R14保存副程式的返回位址,當使用BL或BLX指令時,將PC的當前值拷貝給R14,執行完副程式後,又將R14的值拷貝回PC,即可完成副程式的返回。BLSUB1SUB1:STMFDSP!,LR /*將R14存入堆疊*/LDMFDSP!,PC /*完成副程式返回*/48程式計數器 PC(R15)ARM微處理器的記憶體格式 q ARMARM狀態下,位元狀態下,
45、位元1:01:0爲爲0 0,位,位31:231:2用於保存用於保存PCPC;q ThumbThumb狀態下,位元狀態下,位元00爲爲0 0,位,位31:131:1用於保存用於保存PCPC;q R15R15雖然也可用作通用暫存器,但一般不這麽使用,因爲雖然也可用作通用暫存器,但一般不這麽使用,因爲對對R15R15的使用有一些特殊的限制,當違反了這些限制時,的使用有一些特殊的限制,當違反了這些限制時,程式的執行結果是未知的。程式的執行結果是未知的。q 由於由於ARM體系結構採用了多級管線技術,對於體系結構採用了多級管線技術,對於ARM指令指令集而言,集而言,PC總是指向當前指令的下兩條指令的位址,
46、即總是指向當前指令的下兩條指令的位址,即PC的值爲當前指令的位址值加的值爲當前指令的位址值加8個位元組個位元組。49程式狀態暫存器(CPSR/SPSR)q 暫暫存器存器R16R16用作用作CPSR(CPSR(當前程式狀態當前程式狀態暫暫存器存器),CPSRCPSR可在任可在任何操作模式下被存取,它包括條件標誌位元、中斷禁止位何操作模式下被存取,它包括條件標誌位元、中斷禁止位元、當前處理器模式標誌位元,以及其他一些相關的控制元、當前處理器模式標誌位元,以及其他一些相關的控制和狀態位元。和狀態位元。ARM微處理器的記憶體格式 q 每一種操作模式下又都有一個專用的物理狀態每一種操作模式下又都有一個專
47、用的物理狀態暫暫存器,存器,稱爲稱爲SPSR(備份的程式狀態備份的程式狀態暫暫存器),例外發生時,存器),例外發生時,SPSR用於保存用於保存CPSR的值,從例外返回時則可由的值,從例外返回時則可由SPSR來恢復來恢復CPSR。q 由於用戶模式和系統模式不屬於例外模式,他們沒有由於用戶模式和系統模式不屬於例外模式,他們沒有SPSRSPSR,當在這兩種模式下存取當在這兩種模式下存取SPSRSPSR,結果是未知的。結果是未知的。50Thumb狀態下的暫存器組織 q ThumbThumb狀態下的暫存器集是狀態下的暫存器集是ARMARM狀態下暫存器集的一個子集狀態下暫存器集的一個子集 ARM微處理器的
48、記憶體格式 q 程式可以直接存取程式可以直接存取8 8個通用暫存器(個通用暫存器(R7R7R0R0)、)、程式計數程式計數器(器(PCPC)、)、堆疊指標(堆疊指標(SPSP)、)、連接暫存器(連接暫存器(LRLR)和和CPSRCPSR。q 同樣,每一種特權模式下都有一組同樣,每一種特權模式下都有一組SPSP、LRLR和和SPSRSPSR。51Thumb狀態下的暫存器組織圖 ARM微處理器的記憶體格式 52Thumb狀態下的暫存器與ARM狀態下的暫存器關係 ARM微處理器的記憶體格式 q ThumbThumb狀態下和狀態下和ARMARM狀態下的狀態下的R0R0R7R7是相同的是相同的 。q T
49、humbThumb狀態下和狀態下和ARMARM狀態下的狀態下的CPSRCPSR和所有的和所有的SPSRSPSR是相同的。是相同的。q ThumbThumb狀態下的狀態下的SPSP對應於對應於ARMARM狀態下的狀態下的R13R13。q ThumbThumb狀態下的狀態下的LRLR對應於對應於ARMARM狀態下的狀態下的R14R14。q ThumbThumb狀態下的程式計數器對應於狀態下的程式計數器對應於ARMARM狀態下狀態下R15R15。53Thumb狀態下的暫存器與ARM狀態下的暫存器關係圖ARM微處理器的記憶體格式 54存取THUMB狀態下的高位暫存器(Hi-registers)q 在在
50、ThumbThumb狀態下,高位暫存器狀態下,高位暫存器R8R8R15R15並不是標準暫存器集並不是標準暫存器集的一部分,但可使用組合語言程式受限制的存取這些暫存的一部分,但可使用組合語言程式受限制的存取這些暫存器,將其用做快速的暫存器。器,將其用做快速的暫存器。ARM微處理器的記憶體格式 q 使用帶有特殊變數的使用帶有特殊變數的MOVMOV指令,資料可以在低位元暫存器指令,資料可以在低位元暫存器和高位暫存器之間進行傳送;高位暫存器的值可以使用和高位暫存器之間進行傳送;高位暫存器的值可以使用CMPCMP和和ADDADD指令進行比較或加上低位暫存器中的值。指令進行比較或加上低位暫存器中的值。55
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。