




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、嵌入式系統(tǒng)原理及應(yīng)用教程嵌入式系統(tǒng)原理及應(yīng)用教程主講內(nèi)容主講內(nèi)容第第1章章 嵌入式系統(tǒng)概述嵌入式系統(tǒng)概述第第2章章 ARM微處理器概述與編程模型微處理器概述與編程模型第第3章章 ARM9指令系統(tǒng)指令系統(tǒng)第第4章章 嵌入式程序設(shè)計(jì)基礎(chǔ)嵌入式程序設(shè)計(jì)基礎(chǔ)第第5章章 嵌入式內(nèi)部可編程模塊嵌入式內(nèi)部可編程模塊第第6章章 嵌入式接口技術(shù)應(yīng)用嵌入式接口技術(shù)應(yīng)用第第7章章 軟件開發(fā)環(huán)境軟件開發(fā)環(huán)境第第2章章 ARM微處理器概述與編程模型微處理器概述與編程模型uARM微處理器概述微處理器概述 uARM微處理器結(jié)構(gòu)微處理器結(jié)構(gòu) uARM微處理器的工作狀態(tài)微處理器的工作狀態(tài) uARM體系結(jié)構(gòu)的存儲(chǔ)器格式體系結(jié)構(gòu)的
2、存儲(chǔ)器格式 u處理器模式處理器模式 u寄存器組織寄存器組織 u異常(異常(Exceptions) 2.1 ARM微處理器概述微處理器概述uARM公司簡(jiǎn)介公司簡(jiǎn)介 ARM是是Advanced RISC Machines的縮寫,它的縮寫,它是一家微處理器行業(yè)的知名企業(yè),該企業(yè)設(shè)計(jì)是一家微處理器行業(yè)的知名企業(yè),該企業(yè)設(shè)計(jì)了大量高性能、廉價(jià)、耗能低的了大量高性能、廉價(jià)、耗能低的RISC (精簡(jiǎn)指(精簡(jiǎn)指令集)處理器。令集)處理器。 公司的特點(diǎn)是只設(shè)計(jì)芯片,而不公司的特點(diǎn)是只設(shè)計(jì)芯片,而不生產(chǎn)。它將技術(shù)授權(quán)給世界上許多著名的半導(dǎo)生產(chǎn)。它將技術(shù)授權(quán)給世界上許多著名的半導(dǎo)體、軟件和體、軟件和OEM廠商,并提
3、供服務(wù)。廠商,并提供服務(wù)。2.1 ARM微處理器概述微處理器概述uARM公司簡(jiǎn)介公司簡(jiǎn)介將技術(shù)授權(quán)給其它芯片廠商形成各具特色的ARM芯片. . .2.1 ARM微處理器概述微處理器概述ARM(Advanced RISC Machines)有)有3種含義種含義u一個(gè)公司的名稱一個(gè)公司的名稱u一類微處理器的通稱一類微處理器的通稱u一種技術(shù)的名稱一種技術(shù)的名稱2.1.1 ARM微處理器的特點(diǎn)微處理器的特點(diǎn)采用采用RISC架構(gòu)架構(gòu)的的ARM微處理器一般具有如下微處理器一般具有如下特點(diǎn):特點(diǎn):u體積小、低功耗、低成本、高性能;體積小、低功耗、低成本、高性能;u支持支持Thumb(16位)位)/ARM(3
4、2位)雙指令集,能位)雙指令集,能很好的兼容很好的兼容8位位/16位器件;位器件;u大量使用寄存器,指令執(zhí)行速度更快;大量使用寄存器,指令執(zhí)行速度更快;u大多數(shù)數(shù)據(jù)操作都在寄存器中完成;大多數(shù)數(shù)據(jù)操作都在寄存器中完成;u尋址方式靈活簡(jiǎn)單,執(zhí)行效率高;尋址方式靈活簡(jiǎn)單,執(zhí)行效率高;u指令長度固定。指令長度固定。 2.1.2 ARM微處理器系列微處理器系列ARM處理器的產(chǎn)品系列非常廣,包括處理器的產(chǎn)品系列非常廣,包括ARM7、ARM9、ARM9E、ARM10E、ARM11和和SecurCore、Cortex等。以及其它廠商基于等。以及其它廠商基于ARM體系結(jié)構(gòu)的處理體系結(jié)構(gòu)的處理器,除了具有器,除
5、了具有ARM體系結(jié)構(gòu)的共同特點(diǎn)以外,每一體系結(jié)構(gòu)的共同特點(diǎn)以外,每一系列提供一套特定的性能來滿足設(shè)計(jì)者對(duì)功耗、性能、系列提供一套特定的性能來滿足設(shè)計(jì)者對(duì)功耗、性能、體積的需求。體積的需求。表表2-1總結(jié)了總結(jié)了ARM各系列處理器所包含的不同類各系列處理器所包含的不同類型。型。 2.1.2 ARM微處理器系列微處理器系列ARM系列包含類型ARM7系列系列ARM7EJ-SARM7TDMIARM7TDMI-SARM720TARM9/9E系列系列ARM920TARM922TARM926EJ-SARM940TARM946E-SARM966E-SARM968E-S向量浮點(diǎn)運(yùn)算(向量浮點(diǎn)運(yùn)算(Vector
6、Floating Point)VFP9-SVFP102.1.2 ARM微處理器系列微處理器系列ARM系列包含類型ARM10E系列系列ARM1020EARM1022EARM1026EJ-SARM11系列系列ARM1136J-SARM1136JF-SARM1156T2(F)-SARM1176JZ(F)-SARM11MPCoreSecurCore系列系列SC100SC110SC200SC210其他合作伙伴產(chǎn)品其他合作伙伴產(chǎn)品StrongARMXscaleCortex-M3MBX2.1.2 ARM微處理器系列微處理器系列uARM Cortex系列簡(jiǎn)介系列簡(jiǎn)介 基于基于ARMv7版本的版本的ARM Co
7、rtex系列產(chǎn)品由系列產(chǎn)品由A、R、M三個(gè)系列組成,具體分類延續(xù)了一直以來三個(gè)系列組成,具體分類延續(xù)了一直以來ARM面向具體應(yīng)用設(shè)計(jì)面向具體應(yīng)用設(shè)計(jì)CPU的思路。的思路。 ARM CortexA應(yīng)用處理器應(yīng)用處理器(Application Processor )系列)系列 R實(shí)時(shí)控制處理實(shí)時(shí)控制處理(Real Time Control )系列)系列M微控制器微控制器(Micro Controller )系列)系列2.1.2 ARM微處理器系列微處理器系列uCortexTM-M3處理器簡(jiǎn)介處理器簡(jiǎn)介 該處理器是首款基于該處理器是首款基于ARMv7-M架構(gòu)的處理器,架構(gòu)的處理器,采用了純采用了純T
8、humb2指令的執(zhí)行方式,具有極高的運(yùn)算指令的執(zhí)行方式,具有極高的運(yùn)算能力和中斷相應(yīng)能力。能力和中斷相應(yīng)能力。 Cortex-M3主要應(yīng)用于汽車車身系統(tǒng),工業(yè)控制主要應(yīng)用于汽車車身系統(tǒng),工業(yè)控制系統(tǒng)和無線網(wǎng)絡(luò)等對(duì)功耗和成本敏感的嵌入式應(yīng)用系統(tǒng)和無線網(wǎng)絡(luò)等對(duì)功耗和成本敏感的嵌入式應(yīng)用領(lǐng)域。目前最便宜的基于該內(nèi)核的領(lǐng)域。目前最便宜的基于該內(nèi)核的ARM單片機(jī)售價(jià)單片機(jī)售價(jià)為為1美元。美元。2.1.2 ARM微處理器系列微處理器系列uCortexTM-R4處理器簡(jiǎn)介處理器簡(jiǎn)介 該處理器是首款基于該處理器是首款基于ARMv7ARMv7架構(gòu)的高級(jí)嵌入式處理架構(gòu)的高級(jí)嵌入式處理器,其主要目標(biāo)為產(chǎn)量巨大的高級(jí)
9、嵌入式應(yīng)用系統(tǒng),器,其主要目標(biāo)為產(chǎn)量巨大的高級(jí)嵌入式應(yīng)用系統(tǒng),如硬盤,噴墨式打印機(jī),以及汽車安全系統(tǒng)等等。如硬盤,噴墨式打印機(jī),以及汽車安全系統(tǒng)等等。uCortexTM-R4F處理器簡(jiǎn)介處理器簡(jiǎn)介 該處理器在該處理器在CortexCortexTMTM-R4-R4處理器的基礎(chǔ)上加入了代碼處理器的基礎(chǔ)上加入了代碼錯(cuò)誤校正錯(cuò)誤校正(ECC)(ECC)技術(shù),浮點(diǎn)運(yùn)算單元技術(shù),浮點(diǎn)運(yùn)算單元(FPU)(FPU)以及以及DMADMA綜合綜合配置的能力,增強(qiáng)了處理器在存儲(chǔ)器保護(hù)單元、緩存、配置的能力,增強(qiáng)了處理器在存儲(chǔ)器保護(hù)單元、緩存、緊密耦合存儲(chǔ)器、緊密耦合存儲(chǔ)器、DMADMA訪問以及調(diào)試方面的能力。訪問以
10、及調(diào)試方面的能力。2.1.2 ARM微處理器系列微處理器系列uCortexTM-A8處理器簡(jiǎn)介處理器簡(jiǎn)介 該處理器是該處理器是ARMARM公司所開發(fā)的基于公司所開發(fā)的基于ARMv7ARMv7架架構(gòu)的首款應(yīng)用級(jí)處理器,其特色是運(yùn)用了可增加構(gòu)的首款應(yīng)用級(jí)處理器,其特色是運(yùn)用了可增加代碼密度和加強(qiáng)性能的技術(shù)、可支持多媒體以及代碼密度和加強(qiáng)性能的技術(shù)、可支持多媒體以及信號(hào)處理能力的信號(hào)處理能力的NEONNEONTMTM技術(shù)、以及能夠支持技術(shù)、以及能夠支持JavaJava和其他文字代碼語言的提前和即時(shí)編譯的和其他文字代碼語言的提前和即時(shí)編譯的JazelleJazelleRTCRTC技術(shù)。技術(shù)。 眾多先進(jìn)
11、的技術(shù)使其適用于家電以及電子行業(yè)等眾多先進(jìn)的技術(shù)使其適用于家電以及電子行業(yè)等各種高端的應(yīng)用領(lǐng)域。各種高端的應(yīng)用領(lǐng)域。2.1.2 ARM微處理器系列微處理器系列uARM7系列簡(jiǎn)介系列簡(jiǎn)介 該系列包括該系列包括ARM7TDMIARM7TDMI、ARM7TDMI-SARM7TDMI-S、帶有高速緩存處理器宏單元的帶有高速緩存處理器宏單元的ARM720TARM720T和擴(kuò)和擴(kuò)充了充了JazelleJazelle的的ARM7EJ-SARM7EJ-S。該系列處理器提供。該系列處理器提供Thumb 16Thumb 16位壓縮指令集和位壓縮指令集和EmbededICEEmbededICE軟件調(diào)軟件調(diào)試方式,適
12、用于更大規(guī)模的試方式,適用于更大規(guī)模的SoCSoC設(shè)計(jì)中。設(shè)計(jì)中。 ARM7系列廣泛應(yīng)用于多媒體和嵌入式設(shè)備,系列廣泛應(yīng)用于多媒體和嵌入式設(shè)備,包括包括Internet設(shè)備、網(wǎng)絡(luò)和調(diào)制解調(diào)器設(shè)備,以及設(shè)備、網(wǎng)絡(luò)和調(diào)制解調(diào)器設(shè)備,以及移動(dòng)電話、移動(dòng)電話、PDA等無線設(shè)備。等無線設(shè)備。2.1.2 ARM微處理器系列微處理器系列 該系列包括該系列包括ARM9TDMIARM9TDMI、ARM920TARM920T和帶和帶有高速緩存處理器宏單元的有高速緩存處理器宏單元的ARM940TARM940T。除了。除了兼容兼容ARM7ARM7系列,而且能夠更加靈活的設(shè)計(jì)。系列,而且能夠更加靈活的設(shè)計(jì)。 ARM9系
13、列主要應(yīng)用于引擎管理、儀器儀表、系列主要應(yīng)用于引擎管理、儀器儀表、安全系統(tǒng)和機(jī)頂盒等領(lǐng)域。安全系統(tǒng)和機(jī)頂盒等領(lǐng)域。uARM9系列簡(jiǎn)介系列簡(jiǎn)介2.1.2 ARM微處理器系列微處理器系列 該系列為含有該系列為含有DSPDSP指令集的綜合處理器,包括指令集的綜合處理器,包括ARM926EJ-SARM926EJ-S、帶有高速緩存處理器宏單元的、帶有高速緩存處理器宏單元的ARM966E-S/ARM946E-SARM966E-S/ARM946E-S。其內(nèi)核在。其內(nèi)核在ARM7ARM7處理處理器內(nèi)核的基礎(chǔ)上使用了器內(nèi)核的基礎(chǔ)上使用了JazelleJazelle增強(qiáng)技術(shù),該技術(shù)增強(qiáng)技術(shù),該技術(shù)支持一種新的支持
14、一種新的JavaJava操作狀態(tài),允許在硬件中執(zhí)行操作狀態(tài),允許在硬件中執(zhí)行JavaJava字節(jié)碼。字節(jié)碼。 ARM9E系列主要應(yīng)用于下一代無線設(shè)備、數(shù)字系列主要應(yīng)用于下一代無線設(shè)備、數(shù)字消費(fèi)品、成像設(shè)備、工業(yè)控制、存儲(chǔ)設(shè)備和網(wǎng)絡(luò)設(shè)備消費(fèi)品、成像設(shè)備、工業(yè)控制、存儲(chǔ)設(shè)備和網(wǎng)絡(luò)設(shè)備等領(lǐng)域。等領(lǐng)域。uARM9E系列簡(jiǎn)介系列簡(jiǎn)介2.1.2 ARM微處理器系列微處理器系列uARM10E系列簡(jiǎn)介系列簡(jiǎn)介 該系列包括該系列包括ARM1020EARM1020E和和ARM1020EARM1020E處理處理器核,其核心在于使用向量浮點(diǎn)(器核,其核心在于使用向量浮點(diǎn)(VFPVFP)單元)單元VFP10VFP10提
15、供高性能的浮點(diǎn)解決方案,從而極大提供高性能的浮點(diǎn)解決方案,從而極大提高了處理器的整型和浮點(diǎn)運(yùn)算性能。提高了處理器的整型和浮點(diǎn)運(yùn)算性能。 可以用于視頻游戲機(jī)和高性能打印機(jī)等場(chǎng)合??梢杂糜谝曨l游戲機(jī)和高性能打印機(jī)等場(chǎng)合。2.1.2 ARM微處理器系列微處理器系列uXscale簡(jiǎn)介簡(jiǎn)介 Intel XscaleIntel Xscale微控制器則提供全性能、高性微控制器則提供全性能、高性價(jià)比、低功耗的解決方案,支持價(jià)比、低功耗的解決方案,支持1616位位ThumbThumb指指令并集成數(shù)字信號(hào)處理(令并集成數(shù)字信號(hào)處理(DSPDSP)指令。)指令。 主要應(yīng)用于手提式通訊和消費(fèi)電子類設(shè)備。主要應(yīng)用于手提
16、式通訊和消費(fèi)電子類設(shè)備。2.2. ARM微處理器結(jié)構(gòu)微處理器結(jié)構(gòu)2.2.1 RISC體系結(jié)構(gòu)體系結(jié)構(gòu)1嵌入式嵌入式CISC微處理器微處理器 傳統(tǒng)的傳統(tǒng)的CISC(Complex Instruction Set Computer,復(fù)雜指令集計(jì)算機(jī)復(fù)雜指令集計(jì)算機(jī))結(jié)構(gòu)有其固有的缺)結(jié)構(gòu)有其固有的缺點(diǎn),即隨著計(jì)算機(jī)技術(shù)的發(fā)展而不斷引入新的復(fù)雜的點(diǎn),即隨著計(jì)算機(jī)技術(shù)的發(fā)展而不斷引入新的復(fù)雜的指令集,為支持這些新增的指令,計(jì)算機(jī)的體系結(jié)構(gòu)指令集,為支持這些新增的指令,計(jì)算機(jī)的體系結(jié)構(gòu)會(huì)越來越復(fù)雜,然而,在會(huì)越來越復(fù)雜,然而,在CISC指令集的各種指令中,指令集的各種指令中,其使用頻率卻相差懸殊,大約有
17、其使用頻率卻相差懸殊,大約有20的指令會(huì)被反復(fù)的指令會(huì)被反復(fù)使用,占整個(gè)程序代碼的使用,占整個(gè)程序代碼的80。而余下的。而余下的80的指令的指令卻不經(jīng)常使用,在程序設(shè)計(jì)中只占卻不經(jīng)常使用,在程序設(shè)計(jì)中只占20,顯然,這種,顯然,這種結(jié)構(gòu)是不太合理的。結(jié)構(gòu)是不太合理的。u要了解要了解RISC技術(shù)就該從計(jì)算機(jī)的指令談起,我們都知道計(jì)技術(shù)就該從計(jì)算機(jī)的指令談起,我們都知道計(jì)算機(jī)的算機(jī)的工作就是取指令、執(zhí)行指令工作就是取指令、執(zhí)行指令,一條指令一般給出的,一條指令一般給出的是操作碼和地址碼,這是基本的結(jié)構(gòu),然而指令又涉及以是操作碼和地址碼,這是基本的結(jié)構(gòu),然而指令又涉及以下幾個(gè)問題。下幾個(gè)問題。首先指
18、令字長有多少位,是定字長還是變字首先指令字長有多少位,是定字長還是變字長;其次,操作碼結(jié)構(gòu)需幾位,位數(shù)是定量還是浮動(dòng)量;長;其次,操作碼結(jié)構(gòu)需幾位,位數(shù)是定量還是浮動(dòng)量;再次,地址的結(jié)構(gòu)和尋址方式如何。再次,地址的結(jié)構(gòu)和尋址方式如何。這種種因素使計(jì)算機(jī)這種種因素使計(jì)算機(jī)指令產(chǎn)生了指令產(chǎn)生了“簡(jiǎn)單指令簡(jiǎn)單指令”和和“復(fù)雜指令復(fù)雜指令”之分。之分。70年代以年代以前的計(jì)算機(jī)均用傳統(tǒng)的前的計(jì)算機(jī)均用傳統(tǒng)的CISC指令結(jié)構(gòu),即完全采用復(fù)雜指指令結(jié)構(gòu),即完全采用復(fù)雜指令來支持高級(jí)語言、應(yīng)用程序和操作系統(tǒng)。這種令來支持高級(jí)語言、應(yīng)用程序和操作系統(tǒng)。這種PC不但成不但成本高且效率較低,速度受限,后來人們發(fā)現(xiàn)
19、機(jī)器執(zhí)行的指本高且效率較低,速度受限,后來人們發(fā)現(xiàn)機(jī)器執(zhí)行的指令中令中85左右的都是簡(jiǎn)單指令,復(fù)雜指令甚少,因此開始左右的都是簡(jiǎn)單指令,復(fù)雜指令甚少,因此開始研制精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)研制精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)(RISC)。自從自從Intel的的Pentium問世問世以來以來(92年末年末),RISC技術(shù)更是得到了廣泛的應(yīng)用,并開始技術(shù)更是得到了廣泛的應(yīng)用,并開始滲透到小、中、大型機(jī)領(lǐng)域,可謂發(fā)展前景一片光明。滲透到小、中、大型機(jī)領(lǐng)域,可謂發(fā)展前景一片光明。2.2.1 RISC體系結(jié)構(gòu)體系結(jié)構(gòu)2. 嵌入式嵌入式RISC微處理器微處理器基于以上的不合理性,基于以上的不合理性,1979年美國加州大學(xué)伯克年
20、美國加州大學(xué)伯克利分校提出了利分校提出了RISC(Reduced Instruction Set Computer,精簡(jiǎn)指令集計(jì)算機(jī)精簡(jiǎn)指令集計(jì)算機(jī))的概念,)的概念,RISC是精簡(jiǎn)指令集計(jì)算機(jī),但是精簡(jiǎn)指令集計(jì)算機(jī),但RISC并非只是簡(jiǎn)并非只是簡(jiǎn)單地去減少指令,而是把著眼點(diǎn)放在了如何使計(jì)算機(jī)單地去減少指令,而是把著眼點(diǎn)放在了如何使計(jì)算機(jī)的結(jié)構(gòu)更加簡(jiǎn)單合理地提高運(yùn)算速度上。的結(jié)構(gòu)更加簡(jiǎn)單合理地提高運(yùn)算速度上。RISC結(jié)構(gòu)結(jié)構(gòu)優(yōu)先選取使用頻最高的簡(jiǎn)單指令,拋棄復(fù)雜指令,固優(yōu)先選取使用頻最高的簡(jiǎn)單指令,拋棄復(fù)雜指令,固定指令長度,減少指令格式和尋址方式,以控制邏輯定指令長度,減少指令格式和尋址方式
21、,以控制邏輯為主,不用或少用微碼控制等措施來達(dá)到上述目的。為主,不用或少用微碼控制等措施來達(dá)到上述目的。 2.2.1 RISC體系結(jié)構(gòu)體系結(jié)構(gòu)uRISC體系結(jié)構(gòu)應(yīng)具有如下特點(diǎn):體系結(jié)構(gòu)應(yīng)具有如下特點(diǎn):u采用固定長度的指令格式,指令歸整、簡(jiǎn)單、基本尋采用固定長度的指令格式,指令歸整、簡(jiǎn)單、基本尋址方式有址方式有23種。種。u使用使用單周期指令單周期指令,便于,便于流水線操作流水線操作執(zhí)行。執(zhí)行。u大量使用寄存器,數(shù)據(jù)處理指令只對(duì)寄存器進(jìn)行操作,大量使用寄存器,數(shù)據(jù)處理指令只對(duì)寄存器進(jìn)行操作,只有加載只有加載/ 存儲(chǔ)指令可以訪問存儲(chǔ)器,以提高指令的執(zhí)存儲(chǔ)指令可以訪問存儲(chǔ)器,以提高指令的執(zhí)行效率。行
22、效率。u除此以外,除此以外,ARM體系結(jié)構(gòu)還采用了一些特別的技術(shù),體系結(jié)構(gòu)還采用了一些特別的技術(shù),在保證高性能的前提下盡量縮小芯片的面積,并降低在保證高性能的前提下盡量縮小芯片的面積,并降低功耗功耗.2.2.1 RISC體系結(jié)構(gòu)體系結(jié)構(gòu)uRISC體系結(jié)構(gòu)應(yīng)具有如下特點(diǎn):體系結(jié)構(gòu)應(yīng)具有如下特點(diǎn):u所有的指令都可根據(jù)前面的執(zhí)行結(jié)果決定是否被執(zhí)行,所有的指令都可根據(jù)前面的執(zhí)行結(jié)果決定是否被執(zhí)行,從而提高指令的執(zhí)行效率。從而提高指令的執(zhí)行效率。u可用加載可用加載/存儲(chǔ)指令批量傳輸數(shù)據(jù),以提高數(shù)據(jù)的傳輸存儲(chǔ)指令批量傳輸數(shù)據(jù),以提高數(shù)據(jù)的傳輸效率。效率。u可在一條數(shù)據(jù)處理指令中同時(shí)完成邏輯處理和移位處可在
23、一條數(shù)據(jù)處理指令中同時(shí)完成邏輯處理和移位處理。理。u在循環(huán)處理中使用地址的自動(dòng)增減來提高運(yùn)行效率。在循環(huán)處理中使用地址的自動(dòng)增減來提高運(yùn)行效率。2.2.1 RISC體系結(jié)構(gòu)體系結(jié)構(gòu)RISC和和CISC之間的主要區(qū)別之間的主要區(qū)別:指指 標(biāo)標(biāo)RISCCISC指令集指令集 一個(gè)周期執(zhí)行一條指一個(gè)周期執(zhí)行一條指令,通過簡(jiǎn)單指令的組令,通過簡(jiǎn)單指令的組合實(shí)理復(fù)雜操作;指令合實(shí)理復(fù)雜操作;指令長度固定。長度固定。 指令長度不固定,執(zhí)指令長度不固定,執(zhí)行需要多個(gè)周期。行需要多個(gè)周期。流水線流水線流水線每周期前進(jìn)一步。流水線每周期前進(jìn)一步。 指令的執(zhí)行需要調(diào)用微指令的執(zhí)行需要調(diào)用微代碼的一個(gè)微程序。代碼的一
24、個(gè)微程序。寄存器寄存器更多通用寄存器。更多通用寄存器。用于特定目的的專用寄存用于特定目的的專用寄存器。器。Load/Store結(jié)構(gòu)結(jié)構(gòu) 獨(dú)立的獨(dú)立的Load和和Store指指令完成數(shù)據(jù)在寄存器和令完成數(shù)據(jù)在寄存器和外部存儲(chǔ)器之間的傳輸。外部存儲(chǔ)器之間的傳輸。 處理器能夠直接處理處理器能夠直接處理存儲(chǔ)器中的數(shù)據(jù)。存儲(chǔ)器中的數(shù)據(jù)。2.2.2 ARM微處理器的寄存器結(jié)構(gòu)微處理器的寄存器結(jié)構(gòu)uARM處理器共有處理器共有37個(gè)個(gè)寄存器,被分為若干個(gè)組寄存器,被分為若干個(gè)組(BANK),這些寄存器包括:),這些寄存器包括:31個(gè)通用寄存器,個(gè)通用寄存器,包括程序計(jì)數(shù)器(包括程序計(jì)數(shù)器(PC指針),指針),
25、均為均為32位的寄存器。位的寄存器。6個(gè)狀態(tài)寄存器,個(gè)狀態(tài)寄存器,用以標(biāo)識(shí)用以標(biāo)識(shí)CPU的工作狀態(tài)及程的工作狀態(tài)及程序的運(yùn)行狀態(tài),均為序的運(yùn)行狀態(tài),均為32位,目前只使用了其中的位,目前只使用了其中的一部分。一部分。2.2.2 ARM微處理器的寄存器結(jié)構(gòu)微處理器的寄存器結(jié)構(gòu)nARM處理器又有處理器又有7種種不同的處理器模式,在每一種處不同的處理器模式,在每一種處理器模式下均有一組相應(yīng)的寄存器與之對(duì)應(yīng)。理器模式下均有一組相應(yīng)的寄存器與之對(duì)應(yīng)。n即在任意一種處理器模式下,可訪問的寄存器包括即在任意一種處理器模式下,可訪問的寄存器包括15個(gè)通用寄存器(個(gè)通用寄存器(R0R14)、)、12個(gè)狀態(tài)寄存器
26、和程個(gè)狀態(tài)寄存器和程序計(jì)數(shù)器。序計(jì)數(shù)器。n在所有的寄存器中,有些是在在所有的寄存器中,有些是在7種處理器模式下共用種處理器模式下共用的的同一個(gè)物理寄存器同一個(gè)物理寄存器,而有些寄存器則是在不同的處,而有些寄存器則是在不同的處理器模式下有不同的物理寄存器。理器模式下有不同的物理寄存器。2.2.3 ARM微處理器的指令結(jié)構(gòu)微處理器的指令結(jié)構(gòu)uARM微處理器在較新的體系結(jié)構(gòu)中支持兩種指令微處理器在較新的體系結(jié)構(gòu)中支持兩種指令集:集:ARM指令集和指令集和Thumb指令集。指令集。nARM指令為指令為32位的長度位的長度nThumb指令為指令為16位長度位長度uThumb指令集為指令集為ARM指令集的
27、功能子集,但與等指令集的功能子集,但與等價(jià)的價(jià)的ARM代碼相比較,可節(jié)省代碼相比較,可節(jié)省3040以上的以上的存儲(chǔ)空間,同時(shí)具備存儲(chǔ)空間,同時(shí)具備32位代碼的所有優(yōu)點(diǎn)。位代碼的所有優(yōu)點(diǎn)。2.2.4 ARM微處理器的應(yīng)用選型微處理器的應(yīng)用選型從應(yīng)用的角度出發(fā),對(duì)在選擇從應(yīng)用的角度出發(fā),對(duì)在選擇ARM微處理器時(shí)所應(yīng)考慮的主微處理器時(shí)所應(yīng)考慮的主要問題要問題 :nARM微處理器內(nèi)核的選擇微處理器內(nèi)核的選擇 從前面所介紹的內(nèi)容可知,從前面所介紹的內(nèi)容可知,ARM微處理器包含一系列的微處理器包含一系列的內(nèi)核結(jié)構(gòu),以適應(yīng)不同的應(yīng)用領(lǐng)域,用戶如果希望使用內(nèi)核結(jié)構(gòu),以適應(yīng)不同的應(yīng)用領(lǐng)域,用戶如果希望使用Win
28、CE或標(biāo)準(zhǔn)或標(biāo)準(zhǔn)Linux等操作系統(tǒng)以減少軟件開發(fā)時(shí)間,就需要選擇等操作系統(tǒng)以減少軟件開發(fā)時(shí)間,就需要選擇ARM720T以上帶有以上帶有MMU(Memory Management Unit)功能)功能的的ARM芯片,芯片,ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都帶有都帶有MMU功能。功能。而而ARM7TDMI則沒有則沒有MMU,不支持,不支持Windows CE和標(biāo)準(zhǔn)和標(biāo)準(zhǔn)Linux,但目前有,但目前有uCLinux等不需要等不需要MMU支持的操作系統(tǒng)可運(yùn)支持的操作系統(tǒng)可運(yùn)行于行于ARM7TDMI硬件平臺(tái)之上。事實(shí)上,硬件平臺(tái)之上。事實(shí)上,uCLi
29、nux已經(jīng)成功已經(jīng)成功移植到多種不帶移植到多種不帶MMU的微處理器平臺(tái)上,并在穩(wěn)定性和其他的微處理器平臺(tái)上,并在穩(wěn)定性和其他方面都有上佳表現(xiàn)。方面都有上佳表現(xiàn)。 2.2.4 ARM微處理器的應(yīng)用選型微處理器的應(yīng)用選型n系統(tǒng)的工作頻率系統(tǒng)的工作頻率 系統(tǒng)的工作頻率在很大程度上決定了系統(tǒng)的工作頻率在很大程度上決定了ARM微處理器的處理微處理器的處理能力。能力。nARM7系列微處理器的典型處理速度為系列微處理器的典型處理速度為0.9MIPS/MHz,常,常見的見的ARM7芯片系統(tǒng)主時(shí)鐘為芯片系統(tǒng)主時(shí)鐘為20MHz-133MHz。nARM9系列微處理器的典型處理速度為系列微處理器的典型處理速度為1.1
30、MIPS/MHz,常,常見的見的ARM9的系統(tǒng)主時(shí)鐘頻率為的系統(tǒng)主時(shí)鐘頻率為100MHz-233MHz。 nARM10最高可以達(dá)到最高可以達(dá)到700MHz。不同芯片對(duì)時(shí)鐘的處理不同,有的芯片只需要一個(gè)主時(shí)鐘不同芯片對(duì)時(shí)鐘的處理不同,有的芯片只需要一個(gè)主時(shí)鐘頻率,有的芯片內(nèi)部時(shí)鐘控制器可以分別為頻率,有的芯片內(nèi)部時(shí)鐘控制器可以分別為ARM核和核和USB、UART、DSP、音頻等功能部件提供不同頻率的時(shí)鐘。、音頻等功能部件提供不同頻率的時(shí)鐘。 2.2.4 ARM微處理器的應(yīng)用選型微處理器的應(yīng)用選型u芯片內(nèi)存儲(chǔ)器的容量芯片內(nèi)存儲(chǔ)器的容量 大多數(shù)的大多數(shù)的ARM微處理器片內(nèi)存儲(chǔ)器的容量都不太大,微處理
31、器片內(nèi)存儲(chǔ)器的容量都不太大,需要用戶在設(shè)計(jì)系統(tǒng)時(shí)外擴(kuò)存儲(chǔ)器需要用戶在設(shè)計(jì)系統(tǒng)時(shí)外擴(kuò)存儲(chǔ)器.但也有部分芯片具有相對(duì)較大的片內(nèi)存儲(chǔ)空間,如但也有部分芯片具有相對(duì)較大的片內(nèi)存儲(chǔ)空間,如ATMEL的的AT91F40162就具有高達(dá)就具有高達(dá)2MB的片內(nèi)程序存儲(chǔ)空的片內(nèi)程序存儲(chǔ)空間,用戶在設(shè)計(jì)時(shí)可考慮選用這種類型,以簡(jiǎn)化系統(tǒng)的設(shè)間,用戶在設(shè)計(jì)時(shí)可考慮選用這種類型,以簡(jiǎn)化系統(tǒng)的設(shè)計(jì)。計(jì)。2.2.4 ARM微處理器的應(yīng)用選型微處理器的應(yīng)用選型u片內(nèi)外圍電路的選擇片內(nèi)外圍電路的選擇 幾乎所有的幾乎所有的ARM芯片均根據(jù)各自不同的應(yīng)用領(lǐng)域,芯片均根據(jù)各自不同的應(yīng)用領(lǐng)域,擴(kuò)展了相關(guān)功能模塊,并集成在芯片之中,稱之
32、為擴(kuò)展了相關(guān)功能模塊,并集成在芯片之中,稱之為片片內(nèi)外圍電路內(nèi)外圍電路.如如USB接口、接口、IIS接口、接口、LCD控制器、鍵盤接口、控制器、鍵盤接口、RTC、ADC和和DAC、DSP協(xié)處理器等,設(shè)計(jì)者應(yīng)分協(xié)處理器等,設(shè)計(jì)者應(yīng)分析系統(tǒng)的需求,盡可能采用片內(nèi)外圍電路完成所需的析系統(tǒng)的需求,盡可能采用片內(nèi)外圍電路完成所需的功能,這樣既可簡(jiǎn)化系統(tǒng)的設(shè)計(jì),同時(shí)提高系統(tǒng)的可功能,這樣既可簡(jiǎn)化系統(tǒng)的設(shè)計(jì),同時(shí)提高系統(tǒng)的可靠性??啃浴?.3 ARM微處理器的工作狀態(tài)微處理器的工作狀態(tài)uARM微處理器的工作狀態(tài)一般有兩種,并可在兩種微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:狀態(tài)之間切換:uARM
33、狀態(tài),此時(shí)處理器執(zhí)行狀態(tài),此時(shí)處理器執(zhí)行32位的字對(duì)齊的位的字對(duì)齊的ARM指令;指令;uThumb狀態(tài),此時(shí)處理器執(zhí)行狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對(duì)齊位的、半字對(duì)齊的的Thumb指令。指令。uARM指令集和指令集和Thumb指令集均有指令集均有切換處理器狀態(tài)切換處理器狀態(tài)的指令的指令,并可在兩種工作狀態(tài)之間切換,但,并可在兩種工作狀態(tài)之間切換,但ARM微處理器在微處理器在開始執(zhí)行代碼時(shí)開始執(zhí)行代碼時(shí),應(yīng)該處于,應(yīng)該處于ARM狀態(tài)。狀態(tài)。2.3 ARM微處理器的工作狀態(tài)微處理器的工作狀態(tài)u進(jìn)入進(jìn)入Thumb狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位(位狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為為1時(shí),可以采
34、用執(zhí)行時(shí),可以采用執(zhí)行BX指令的方法,使微處理器從指令的方法,使微處理器從ARM狀態(tài)切換到狀態(tài)切換到Thumb狀態(tài)。此外,當(dāng)處理器處于狀態(tài)。此外,當(dāng)處理器處于Thumb狀態(tài)時(shí)發(fā)生異常(如狀態(tài)時(shí)發(fā)生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時(shí),自動(dòng)切換到等),則異常處理返回時(shí),自動(dòng)切換到Thumb狀態(tài)。狀態(tài)。u進(jìn)入進(jìn)入ARM狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位為狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位為0時(shí),執(zhí)時(shí),執(zhí)行行BX指令時(shí)可以使微處理器從指令時(shí)可以使微處理器從Thumb狀態(tài)切換到狀態(tài)切換到ARM狀態(tài)。此外,在處理器進(jìn)行異常處理時(shí),把狀態(tài)。此外,在處理器進(jìn)行異常處理時(shí),把PC指
35、針放入異常模式鏈接寄存器中,并從異常向量地址指針放入異常模式鏈接寄存器中,并從異常向量地址開始執(zhí)行程序,也可以使處理器切換到開始執(zhí)行程序,也可以使處理器切換到ARM狀態(tài)。狀態(tài)。2.4 ARM處理器狀態(tài)處理器狀態(tài)u狀態(tài)切換的一個(gè)例子狀態(tài)切換的一個(gè)例子地址最低位為0,表示切換到ARM狀態(tài) 使用使用BXBX指令將指令將ARMARM內(nèi)核的操作狀態(tài)在內(nèi)核的操作狀態(tài)在ARMARM狀態(tài)和狀態(tài)和ThumbThumb狀態(tài)之間進(jìn)行切換。狀態(tài)之間進(jìn)行切換。ARM指令集指令集Thumb指令集指令集CODE32LDRR0, =Lable+1BX R0CODE16Lable MOV R1, #12CODE16LDR R0
36、, =LableBX R0CODE32LableMOV R1, #10地址最低位為1,表示切換到Thumb狀態(tài)跳轉(zhuǎn)地址標(biāo)號(hào)執(zhí)行完BX指令,處理器切換到Thumb狀態(tài),開始執(zhí)行Thumb指令程序代碼程序代碼指令集關(guān)系指令集關(guān)系 從ARM狀態(tài)切換到Thumb狀態(tài)的程序代碼如下: 從Thumb狀態(tài)切換到ARM狀態(tài)的程序代碼如下:執(zhí)行完BX指令,處理器切換到ARM狀態(tài),開始執(zhí)行ARM指令2.4 ARM體系結(jié)構(gòu)的存儲(chǔ)器格式體系結(jié)構(gòu)的存儲(chǔ)器格式uARM體系結(jié)構(gòu)將存儲(chǔ)器看作是從零地址開始的字節(jié)體系結(jié)構(gòu)將存儲(chǔ)器看作是從零地址開始的字節(jié)的的線性組合線性組合。u從零字節(jié)到三字節(jié)放置從零字節(jié)到三字節(jié)放置第一個(gè)存儲(chǔ)的
37、字?jǐn)?shù)據(jù)第一個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù).u從第四個(gè)字節(jié)到第七個(gè)字節(jié)放置第二個(gè)存儲(chǔ)的字從第四個(gè)字節(jié)到第七個(gè)字節(jié)放置第二個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù),依次排列。數(shù)據(jù),依次排列。u作為作為32位的微處理器,位的微處理器,ARM體系結(jié)構(gòu)所支持的最大體系結(jié)構(gòu)所支持的最大尋址空間為尋址空間為4GB(232字節(jié))。字節(jié))。uARM體系結(jié)構(gòu)可以用兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),稱之為體系結(jié)構(gòu)可以用兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),稱之為u大端格式大端格式u小端格式小端格式2.4 ARM體系結(jié)構(gòu)的存儲(chǔ)器格式體系結(jié)構(gòu)的存儲(chǔ)器格式u大端格式大端格式 在這種格式中,字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,在這種格式中,字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中
38、,如圖所示。而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中,如圖所示。31 2423 1615 87 0字地址84089101145670123低地址低地址高地址高地址2.4 ARM體系結(jié)構(gòu)的存儲(chǔ)器格式體系結(jié)構(gòu)的存儲(chǔ)器格式u小端格式小端格式 在這種格式中,字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,在這種格式中,字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中,如圖所示。而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中,如圖所示。低地址低地址高地址高地址31 2423 1615 87 0字地址840111098765432102.4.1 指令長度及數(shù)據(jù)類型指令長度及數(shù)據(jù)類型uARM微處理器的指令長度可以是微處理器的指令長度
39、可以是u32位(在位(在ARM狀態(tài)下)狀態(tài)下)u16位(在位(在Thumb狀態(tài)下)狀態(tài)下)uARM微處理器中支持微處理器中支持字節(jié)字節(jié)(8位)、位)、半字半字(16位)、位)、字字(32位)三種位)三種數(shù)據(jù)類型數(shù)據(jù)類型.u其中,字需要其中,字需要4字節(jié)對(duì)齊(地址的低兩位為字節(jié)對(duì)齊(地址的低兩位為0)、半字)、半字需要需要2字節(jié)對(duì)齊(地址的最低位為字節(jié)對(duì)齊(地址的最低位為0)。)。2.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-MMU 在復(fù)雜的嵌入式系統(tǒng)設(shè)計(jì)時(shí),越來越多的會(huì)選用在復(fù)雜的嵌入式系統(tǒng)設(shè)計(jì)時(shí),越來越多的會(huì)選用帶有存儲(chǔ)管理單元(帶有存儲(chǔ)管理單元(MMU)的微處理器芯片。)的微處理器芯片。MMU完成
40、的主要功能有:完成的主要功能有:u將主存地址從虛擬存儲(chǔ)空間映射到物理存儲(chǔ)將主存地址從虛擬存儲(chǔ)空間映射到物理存儲(chǔ)空間??臻g。u存儲(chǔ)器訪問權(quán)限控制。存儲(chǔ)器訪問權(quán)限控制。u設(shè)置虛擬存儲(chǔ)空間的緩沖特性等。設(shè)置虛擬存儲(chǔ)空間的緩沖特性等。2.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-MMUu虛擬地址存儲(chǔ)系統(tǒng)示意圖虛擬地址存儲(chǔ)系統(tǒng)示意圖邏輯地址邏輯地址對(duì)換對(duì)換主存主存輔助存儲(chǔ)器輔助存儲(chǔ)器物理地址物理地址MMU微微處處理理器器2.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-MMUARM920T微處理器核的微處理器核的MMU采用了采用了分頁虛擬存分頁虛擬存儲(chǔ)管理方式儲(chǔ)管理方式。它把虛擬存儲(chǔ)空間分成一個(gè)個(gè)固定大小。它把虛擬存儲(chǔ)空間
41、分成一個(gè)個(gè)固定大小的頁,把物理主存儲(chǔ)的空間也分成同樣大小的一個(gè)個(gè)的頁,把物理主存儲(chǔ)的空間也分成同樣大小的一個(gè)個(gè)頁。頁。通過查詢存放在主存中的頁表,來實(shí)現(xiàn)通過查詢存放在主存中的頁表,來實(shí)現(xiàn)虛擬地址虛擬地址到到物理地址物理地址的轉(zhuǎn)換。但由于頁表存儲(chǔ)在主存儲(chǔ)中,查的轉(zhuǎn)換。但由于頁表存儲(chǔ)在主存儲(chǔ)中,查詢頁表所花的代價(jià)很大,因此,通常又采用快表技術(shù)詢頁表所花的代價(jià)很大,因此,通常又采用快表技術(shù)(TLB translation lookaside buffer)來提高地址變)來提高地址變換效率。換效率。 2.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-MMUTLB技術(shù)中,將當(dāng)前需要訪問的地址變換條目存技術(shù)中,將當(dāng)前
42、需要訪問的地址變換條目存儲(chǔ)在一個(gè)儲(chǔ)在一個(gè)容量較小容量較?。ㄍǔ#ㄍǔ?16個(gè)字)、個(gè)字)、訪問速度更快訪問速度更快(與微處理器中通用寄存器速度相當(dāng))的存儲(chǔ)器件中。(與微處理器中通用寄存器速度相當(dāng))的存儲(chǔ)器件中。當(dāng)微處理器訪問主存時(shí),先在當(dāng)微處理器訪問主存時(shí),先在TLB中查找需要的地址中查找需要的地址變換條目,如果該條目不存在,再從存儲(chǔ)在主存中的變換條目,如果該條目不存在,再從存儲(chǔ)在主存中的頁表中查詢,并添加到頁表中查詢,并添加到TLB中。中。這樣,當(dāng)微處理器下一次又需要該地址變換條目這樣,當(dāng)微處理器下一次又需要該地址變換條目時(shí),可以從時(shí),可以從TLB中直接得到,從而提高了地址變換速中直接得到,
43、從而提高了地址變換速度。度。2.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-MMU表表2-5是是ARM920T的寫出其的寫出其CP15中與中與MMU操作相關(guān)的寄存操作相關(guān)的寄存器。設(shè)計(jì)者編程控制這些寄存器,則可以相應(yīng)地控制器。設(shè)計(jì)者編程控制這些寄存器,則可以相應(yīng)地控制MMU操作。操作。寄寄 存存 器器作作 用用 寄存器寄存器C1中某些位中某些位用于配置用于配置MMU中的一些操作中的一些操作寄存器寄存器C2保存主存中頁表的基地址保存主存中頁表的基地址寄存器寄存器C3設(shè)置域(設(shè)置域(domain)的訪問控制屬性)的訪問控制屬性寄存器寄存器C4保留保留寄存器寄存器C5主存訪問失效狀態(tài)指示主存訪問失效狀態(tài)指示寄
44、存器寄存器C6主存訪問失效時(shí)的地址主存訪問失效時(shí)的地址寄存器寄存器C8控制與清除控制與清除TLB內(nèi)容相關(guān)的操作內(nèi)容相關(guān)的操作寄存器寄存器C10控制與鎖定控制與鎖定TLB內(nèi)容相關(guān)的操作內(nèi)容相關(guān)的操作2.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-MMU1.禁止與使能禁止與使能MMUCP15的寄存器的寄存器C1的位的位0用于設(shè)置禁止用于設(shè)置禁止/使能使能MMU。C1的位的位0為為0時(shí)時(shí),禁止禁止MMU;當(dāng);當(dāng)C1的位的位0為為1時(shí),使能時(shí),使能MMU。下面指令實(shí)現(xiàn)了使能。下面指令實(shí)現(xiàn)了使能MMU。 MRC P15,0,R0,C1,0,0 ; C1的內(nèi)容賦給的內(nèi)容賦給R0 ORR R0,#0 x1 MCR P
45、15,0,R0,C1,0,0 ;R0的內(nèi)容賦給的內(nèi)容賦給C12.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-MMU使能使能MMU時(shí),其控制存儲(chǔ)訪問的過程是:時(shí),其控制存儲(chǔ)訪問的過程是:首先在首先在TLB中查找虛擬地址,如果該虛擬地中查找虛擬地址,如果該虛擬地址對(duì)應(yīng)的地址變換條目不在址對(duì)應(yīng)的地址變換條目不在TLB中,則到頁表中中,則到頁表中查詢對(duì)應(yīng)的地址變換條目,并把查詢到的結(jié)果添查詢對(duì)應(yīng)的地址變換條目,并把查詢到的結(jié)果添加到加到TLB中。如果中。如果TLB已滿,還需根據(jù)一定的淘已滿,還需根據(jù)一定的淘汰算法進(jìn)行替換。得到地址變換條目后,進(jìn)行一汰算法進(jìn)行替換。得到地址變換條目后,進(jìn)行一下步驟的操作。下步驟的
46、操作。2.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-MMU禁止禁止MMU時(shí),所有的虛擬地址和物理地址是相時(shí),所有的虛擬地址和物理地址是相等的,也不進(jìn)行存儲(chǔ)訪問權(quán)限的控制。是否支持等的,也不進(jìn)行存儲(chǔ)訪問權(quán)限的控制。是否支持cache和寫緩存由具體芯片設(shè)計(jì)確定。和寫緩存由具體芯片設(shè)計(jì)確定。在禁止在禁止/使能使能MMU時(shí),應(yīng)該注意以下幾點(diǎn)。時(shí),應(yīng)該注意以下幾點(diǎn)。u使能使能MMU之前,要在內(nèi)存中建立之前,要在內(nèi)存中建立0號(hào)頁表,同時(shí)號(hào)頁表,同時(shí)CP15中的各相關(guān)寄存器必須完成初始化中的各相關(guān)寄存器必須完成初始化.u如果設(shè)計(jì)的物理地址與虛擬地址空間不相等,在禁止如果設(shè)計(jì)的物理地址與虛擬地址空間不相等,在禁止/使
47、能使能MMU時(shí),虛擬地址和物理地址的對(duì)應(yīng)關(guān)系會(huì)改變,時(shí),虛擬地址和物理地址的對(duì)應(yīng)關(guān)系會(huì)改變,應(yīng)清除應(yīng)清除cache中當(dāng)前地址變換條目。中當(dāng)前地址變換條目。u完成禁止完成禁止/使能使能MMU代碼的物理地址最好和虛擬地址代碼的物理地址最好和虛擬地址相同。相同。 2.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-MMU2.MMU中的地址變換過程中的地址變換過程虛擬存儲(chǔ)空間到物理存儲(chǔ)空間的映射是以內(nèi)存塊虛擬存儲(chǔ)空間到物理存儲(chǔ)空間的映射是以內(nèi)存塊為單位進(jìn)行的。在頁表或?yàn)閱挝贿M(jìn)行的。在頁表或TLB中,每個(gè)地址變換條目中,每個(gè)地址變換條目記錄了一個(gè)虛擬存儲(chǔ)空間的存儲(chǔ)塊的基地址與物理存記錄了一個(gè)虛擬存儲(chǔ)空間的存儲(chǔ)塊的基地
48、址與物理存儲(chǔ)空間的一個(gè)存儲(chǔ)塊基地址的對(duì)應(yīng)關(guān)系。儲(chǔ)空間的一個(gè)存儲(chǔ)塊基地址的對(duì)應(yīng)關(guān)系。ARM920T支持的存儲(chǔ)塊大小有一下幾種:支持的存儲(chǔ)塊大小有一下幾種:u段(段(section)是大小為)是大小為1MB的存儲(chǔ)塊。的存儲(chǔ)塊。u大頁(大頁(large pages)是大小為)是大小為64KB的存儲(chǔ)塊。的存儲(chǔ)塊。u小頁(小頁(small pages)是大小為)是大小為4KB的存儲(chǔ)塊。的存儲(chǔ)塊。u極小頁(極小頁(tiny pages)是大小為)是大小為1KB的存儲(chǔ)塊。的存儲(chǔ)塊。2.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-MMU3.MMU中的存儲(chǔ)訪問權(quán)限控制中的存儲(chǔ)訪問權(quán)限控制在在MMU中,中,CP15的寄存器
49、的寄存器C1的的R、S控制位和頁控制位和頁表中地址轉(zhuǎn)換條目中的訪問權(quán)限控制位聯(lián)合作用控制表中地址轉(zhuǎn)換條目中的訪問權(quán)限控制位聯(lián)合作用控制存儲(chǔ)訪問權(quán)限。存儲(chǔ)訪問權(quán)限。具體規(guī)則如表具體規(guī)則如表2-6所示。所示。2.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-MMU表表2-6 MMU中存儲(chǔ)訪問控制權(quán)限控制規(guī)則中存儲(chǔ)訪問控制權(quán)限控制規(guī)則APS R特權(quán)級(jí)時(shí)訪問權(quán)限特權(quán)級(jí)時(shí)訪問權(quán)限用戶級(jí)時(shí)訪問權(quán)限用戶級(jí)時(shí)訪問權(quán)限0b000 0沒有訪問權(quán)限沒有訪問權(quán)限沒有訪問權(quán)限沒有訪問權(quán)限0b001 0只讀只讀沒有訪問權(quán)限沒有訪問權(quán)限0b000 1只讀只讀只讀只讀0b001 1不可預(yù)知不可預(yù)知不可預(yù)知不可預(yù)知0b01 X X讀讀/寫
50、寫沒有訪問權(quán)限沒有訪問權(quán)限0b10 X X讀讀/寫寫只讀只讀0b11 X X讀讀/寫寫讀讀/寫寫2.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-MMU4.MMU中的域中的域MMU中的域指的是一些段、大頁或者小頁的集中的域指的是一些段、大頁或者小頁的集合。合。ARM920T支持最大支持最大16個(gè)域,每個(gè)域的訪問控制個(gè)域,每個(gè)域的訪問控制特性由特性由CP15的寄存器的寄存器C3中的兩位來控制。中的兩位來控制。C3寄存器是寄存器是32位的,每?jī)晌豢刂埔粋€(gè)域,其控制位的,每?jī)晌豢刂埔粋€(gè)域,其控制編碼如表編碼如表2-7所示。所示。 2.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-MMU表表2-7 MMU中域訪問控制字段編碼
51、及含義中域訪問控制字段編碼及含義控制位編碼控制位編碼訪問類型訪問類型含含 義義0b00沒有訪問權(quán)限沒有訪問權(quán)限這時(shí)訪問該域?qū)a(chǎn)生訪問這時(shí)訪問該域?qū)a(chǎn)生訪問失效失效0b01客戶類型客戶類型根據(jù)頁表中地址變換條目根據(jù)頁表中地址變換條目中的訪問權(quán)限控制位決定中的訪問權(quán)限控制位決定時(shí)否允許特定的存儲(chǔ)訪問時(shí)否允許特定的存儲(chǔ)訪問0b10保留保留使用該值會(huì)產(chǎn)生不可預(yù)知使用該值會(huì)產(chǎn)生不可預(yù)知的結(jié)果的結(jié)果0b11管理者權(quán)限管理者權(quán)限不考慮頁表中地址變換條不考慮頁表中地址變換條件目中的訪問權(quán)限控制位,件目中的訪問權(quán)限控制位,這種情況下不會(huì)產(chǎn)生訪問這種情況下不會(huì)產(chǎn)生訪問失效失效2.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-
52、MMU5.快表操作快表操作從虛擬地址到物理地址的變換過程其實(shí)就是查詢從虛擬地址到物理地址的變換過程其實(shí)就是查詢頁表的過程,由于頁表存放在主存儲(chǔ)器中,這個(gè)查詢頁表的過程,由于頁表存放在主存儲(chǔ)器中,這個(gè)查詢代價(jià)很大。而程序在執(zhí)行時(shí)其過程具有局部性,對(duì)頁代價(jià)很大。而程序在執(zhí)行時(shí)其過程具有局部性,對(duì)頁表中各存儲(chǔ)單元的訪問并不是隨機(jī)的,在一段時(shí)間內(nèi),表中各存儲(chǔ)單元的訪問并不是隨機(jī)的,在一段時(shí)間內(nèi),只局限在少數(shù)幾個(gè)單元中。只局限在少數(shù)幾個(gè)單元中。因此,采用因此,采用TLB技術(shù)可以提高存儲(chǔ)系統(tǒng)的整體性技術(shù)可以提高存儲(chǔ)系統(tǒng)的整體性能。能。 2.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-MMU6.存儲(chǔ)訪問失效存儲(chǔ)訪問失
53、效在在ARM920T中,中,MMU可以產(chǎn)生可以產(chǎn)生4種類型的存儲(chǔ)種類型的存儲(chǔ)訪問失效,即地址對(duì)齊失效、地址變換失效、域控制訪問失效,即地址對(duì)齊失效、地址變換失效、域控制失效和訪問權(quán)限控制失效。當(dāng)發(fā)生存儲(chǔ)訪問失效時(shí),失效和訪問權(quán)限控制失效。當(dāng)發(fā)生存儲(chǔ)訪問失效時(shí),存儲(chǔ)系統(tǒng)可以中止存儲(chǔ)系統(tǒng)可以中止3種存儲(chǔ)訪問,即種存儲(chǔ)訪問,即cache內(nèi)容預(yù)取、內(nèi)容預(yù)取、非緩沖的存儲(chǔ)器訪問操非緩沖的存儲(chǔ)器訪問操S作和頁表訪問。作和頁表訪問。2.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-MMU有下面有下面兩種機(jī)制兩種機(jī)制可以檢測(cè)存儲(chǔ)訪問失效,并進(jìn)而可以檢測(cè)存儲(chǔ)訪問失效,并進(jìn)而中止微處理器的執(zhí)行。中止微處理器的執(zhí)行。(1)當(dāng))
54、當(dāng)MMU檢測(cè)到存儲(chǔ)訪問失效時(shí),它可以向檢測(cè)到存儲(chǔ)訪問失效時(shí),它可以向微處理器報(bào)告該情況,并將存儲(chǔ)訪問失效的相關(guān)信息微處理器報(bào)告該情況,并將存儲(chǔ)訪問失效的相關(guān)信息保存到寄存器保存到寄存器C5和和C6中。這種機(jī)制成為中。這種機(jī)制成為MMU失效。失效。(2)存儲(chǔ)系統(tǒng)也可以向微處理器報(bào)告存儲(chǔ)訪問)存儲(chǔ)系統(tǒng)也可以向微處理器報(bào)告存儲(chǔ)訪問失效。這種機(jī)制稱為外部存儲(chǔ)訪問中止(失效。這種機(jī)制稱為外部存儲(chǔ)訪問中止(external abort)。)。 上述兩種情況通稱為上述兩種情況通稱為存儲(chǔ)訪問中止(存儲(chǔ)訪問中止(abort)。)。2.4.2 存儲(chǔ)管理單元存儲(chǔ)管理單元-MMUu如果存儲(chǔ)訪問發(fā)生在如果存儲(chǔ)訪問發(fā)生在
55、數(shù)據(jù)訪問周期數(shù)據(jù)訪問周期,微處理器將,微處理器將產(chǎn)生數(shù)據(jù)訪問中止異常。產(chǎn)生數(shù)據(jù)訪問中止異常。u如果存儲(chǔ)訪問發(fā)生在如果存儲(chǔ)訪問發(fā)生在指令預(yù)取周期指令預(yù)取周期,當(dāng)該指令執(zhí),當(dāng)該指令執(zhí)行時(shí),微處理器將產(chǎn)生指令預(yù)取異常。行時(shí),微處理器將產(chǎn)生指令預(yù)取異常。MMU中與存儲(chǔ)訪問失效相關(guān)的寄存器有兩個(gè):中與存儲(chǔ)訪問失效相關(guān)的寄存器有兩個(gè):C5和和C6。C5為失效狀態(tài)寄存器,為失效狀態(tài)寄存器,C6為失效地址寄存器。為失效地址寄存器。2.5 處理器模式處理器模式ARM微處理器支持微處理器支持7種運(yùn)行模式,分別為:種運(yùn)行模式,分別為:u用戶模式(用戶模式(usr):): ARM處理器正常的程序執(zhí)行狀態(tài)。處理器正常的
56、程序執(zhí)行狀態(tài)。u快速中斷模式(快速中斷模式(fiq):):用于高速數(shù)據(jù)傳輸或通道處理。用于高速數(shù)據(jù)傳輸或通道處理。u外部中斷模式(外部中斷模式(irq):):用于通用的中斷處理。用于通用的中斷處理。u管理模式(管理模式(svc):):操作系統(tǒng)使用的保護(hù)模式。操作系統(tǒng)使用的保護(hù)模式。u數(shù)據(jù)訪問終止模式數(shù)據(jù)訪問終止模式(abt):當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)。入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)。u系統(tǒng)模式(系統(tǒng)模式(sys):):運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)。運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)。u未定義指令中止模式(未定義指令中止模式(und):):當(dāng)未
57、定義的指令執(zhí)行時(shí)當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。u特權(quán)模式特權(quán)模式處理器模式處理器模式說明說明備注備注 用戶用戶 (usr)正常程序工作模式正常程序工作模式不能直接切換到其它模式不能直接切換到其它模式 系統(tǒng)系統(tǒng) (sys)用于支持操作系統(tǒng)的特權(quán)用于支持操作系統(tǒng)的特權(quán)任務(wù)等任務(wù)等與用戶模式類似,但具有可以直與用戶模式類似,但具有可以直接切換到其它模式等特權(quán)接切換到其它模式等特權(quán) 快中斷快中斷 (fiq)支持高速數(shù)據(jù)傳輸及通道支持高速數(shù)據(jù)傳輸及通道處理處理FIQ異常響應(yīng)時(shí)進(jìn)入此模式異常響應(yīng)時(shí)進(jìn)入此模式 中斷中斷 (ir
58、q)用于通用中斷處理用于通用中斷處理IRQ異常響應(yīng)時(shí)進(jìn)入此模式異常響應(yīng)時(shí)進(jìn)入此模式 管理管理 (svc)操作系統(tǒng)保護(hù)代碼操作系統(tǒng)保護(hù)代碼系統(tǒng)復(fù)位和軟件中斷響應(yīng)時(shí)進(jìn)入系統(tǒng)復(fù)位和軟件中斷響應(yīng)時(shí)進(jìn)入此模式此模式 中止中止 (abt)用于支持虛擬內(nèi)存和用于支持虛擬內(nèi)存和/或存或存儲(chǔ)器保護(hù)儲(chǔ)器保護(hù)在在ARM7TDMI沒有大用處沒有大用處 未定義未定義 (und)支持硬件協(xié)處理器的軟件支持硬件協(xié)處理器的軟件仿真仿真未定義指令異常響應(yīng)時(shí)進(jìn)入此模未定義指令異常響應(yīng)時(shí)進(jìn)入此模式式除用戶模式外,其它模式均為除用戶模式外,其它模式均為特權(quán)特權(quán)模式模式。ARMARM內(nèi)部寄存器和一些片內(nèi)部寄存器和一些片內(nèi)外設(shè)在硬件設(shè)計(jì)
59、上只允許(或者內(nèi)外設(shè)在硬件設(shè)計(jì)上只允許(或者可選為只允許)特權(quán)模式下訪問??蛇x為只允許)特權(quán)模式下訪問。此外,特權(quán)模式可以自由的切換處此外,特權(quán)模式可以自由的切換處理器模式,而用戶模式不能直接切理器模式,而用戶模式不能直接切換到別的模式。換到別的模式。 未定義未定義 (und) 中止中止 (abt) 管理管理 (svc) 中斷中斷 (irq) 快中斷快中斷 (fiq) 系統(tǒng)系統(tǒng) (sys)2.5 處理器模式處理器模式u異常模式異常模式處理器模式處理器模式說明說明備注備注 用戶用戶 (usr)正常程序工作模式正常程序工作模式不能直接切換到其它模式不能直接切換到其它模式 系統(tǒng)系統(tǒng) (sys)用于支
60、持操作系統(tǒng)的特用于支持操作系統(tǒng)的特權(quán)任務(wù)等權(quán)任務(wù)等與用戶模式類似,但具有可以與用戶模式類似,但具有可以直接切換到其它模式等特權(quán)直接切換到其它模式等特權(quán) 快中斷快中斷 (fiq)支持高速數(shù)據(jù)傳輸及通支持高速數(shù)據(jù)傳輸及通道處理道處理FIQ異常響應(yīng)時(shí)進(jìn)入此模式異常響應(yīng)時(shí)進(jìn)入此模式 中斷中斷 (irq)用于通用中斷處理用于通用中斷處理IRQ異常響應(yīng)時(shí)進(jìn)入此模式異常響應(yīng)時(shí)進(jìn)入此模式 管理管理 (svc)操作系統(tǒng)保護(hù)代碼操作系統(tǒng)保護(hù)代碼系統(tǒng)復(fù)位和軟件中斷響應(yīng)時(shí)進(jìn)系統(tǒng)復(fù)位和軟件中斷響應(yīng)時(shí)進(jìn)入此模式入此模式 中止中止 (abt)用于支持虛擬內(nèi)存和用于支持虛擬內(nèi)存和/或或存儲(chǔ)器保護(hù)存儲(chǔ)器保護(hù)在在ARM7TDMI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年財(cái)務(wù)分析師考試試題及答案
- 2025年國際商務(wù)談判技巧測(cè)試卷及答案
- 2025年鋼筋混凝土結(jié)構(gòu)設(shè)計(jì)考試試卷及答案
- 物資運(yùn)載儲(chǔ)存管理制度
- 物資采購公示管理制度
- 特殊停電用戶管理制度
- 特殊服飾日常管理制度
- 特殊群體超市管理制度
- 特種人員作業(yè)管理制度
- 特種作業(yè)電工管理制度
- 醫(yī)院培訓(xùn)課件:《便攜式血糖儀臨床操作和質(zhì)量管理》
- 充電樁工程施工技術(shù)方案
- 《冠心病的規(guī)范化診》課件
- 2025年圍產(chǎn)期保健工作計(jì)劃
- 急性心肌梗死健康教育課件
- 2024年教師資格考試小學(xué)面試科學(xué)試題及答案指導(dǎo)
- (一模)寧波市2024學(xué)年第一學(xué)期高考模擬考試 數(shù)學(xué)試卷(含答案)
- 2024年迪慶道路旅客運(yùn)輸知識(shí)考試題庫
- 公司事故隱患內(nèi)部報(bào)告獎(jiǎng)勵(lì)機(jī)制
- 上海市市轄區(qū)(2024年-2025年小學(xué)四年級(jí)語文)統(tǒng)編版期末考試((上下)學(xué)期)試卷及答案
- 小超市食品安全管理制度
評(píng)論
0/150
提交評(píng)論