ARM9处理器总结
?
ARM處理器微體系結(jié)構(gòu)的演變--過去的十年中,ARM處理器經(jīng)歷了從簡單的ARM7TDMI內(nèi)核發(fā)展到最新ARM11EJ-S內(nèi)核,當前有5個產(chǎn)品系列——ARM7、ARM9、ARM9E、ARM10、?SecurCore和ARM11
下面介紹ARM9微處理器系列相關(guān)特性:
ARM9系列微處理器在高性能和低功耗特性方面提供最佳的性能。具有以下特點:
-? ? 5級整數(shù)流水線,指令執(zhí)行效率更高。
-? ??提供1.1MIPS/MHz的哈佛結(jié)構(gòu)。
-? ??支持32位ARM指令集和16位Thumb指令集。
-? ??支持32位的高速AMBA總線接口。
-? ??全性能的MMU,支持Windows CE、Linux、Palm OS等多種主流嵌入式操作系統(tǒng)。
-? ? MPU支持實時操作系統(tǒng)。
-? ??支持數(shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。大小都為16K。
ARM9系列微處理器主要應(yīng)用于無線設(shè)備、儀器儀表、安全系統(tǒng)、機頂盒、高端打印機、數(shù)字照相機和數(shù)字攝像機等。
ARM9系列微處理器包含ARM920T、ARM922T和ARM940T三種類型,以適用于不同的應(yīng)用場合。
ARM920T =ARM9TDMI core plus cache and MMU
ARM微處理器結(jié)構(gòu)
1、??RISC體系結(jié)構(gòu):RISC結(jié)構(gòu)優(yōu)先選取使用頻最高的簡單指令,避免復(fù)雜指令
? ???1、RISC體系結(jié)構(gòu)應(yīng)具有如下特點:
-?采用固定長度的指令格式,指令歸整、簡單、基本尋址方式有2~3種。
-?使用單周期指令,便于流水線操作執(zhí)行。
-?大量使用寄存器,數(shù)據(jù)處理指令只對寄存器進行操作,只有加載/?存儲指令可以訪問存儲器,以提高指令的執(zhí)行效率。
除此以外,ARM體系結(jié)構(gòu)還采用了一些特別的技術(shù),在保證高性能的前提下盡量縮小芯片的面積,并降低功耗:
-?所有的指令都可根據(jù)前面的執(zhí)行結(jié)果決定是否被執(zhí)行,從而提高指令的執(zhí)行效率。
-?可用加載/存儲指令批量傳輸數(shù)據(jù),以提高數(shù)據(jù)的傳輸效率。
-?可在一條數(shù)據(jù)處理指令中同時完成邏輯處理和移位處理。
-?在循環(huán)處理中使用地址的自動增減來提高運行效率。
2、ARM微處理器的寄存器結(jié)構(gòu)
ARM處理器共有37個寄存器,被分為若干個組(BANK),這些寄存器包括:
-?31個通用寄存器,包括程序計數(shù)器(PC指針),均為32位的寄存器。
-?6個狀態(tài)寄存器,用以標識CPU的工作狀態(tài)及程序的運行狀態(tài),均為32位,目前只使用了其中的一部分。
同時,ARM處理器又有7種不同的處理器模式,在每一種處理器模式下均有一組相應(yīng)的寄存器與?之對應(yīng)。即在任意一種處理器模式下,可訪問的寄存器包括15個通用寄存器(R0~R14)、一至二個狀態(tài)寄存器和程序計數(shù)器。在所有的寄存器中,有些是在?7種處理器模式下共用的同一個物理寄存器,而有些寄存器則是在不同的處理器模式下有不同的物理寄存器。
3、ARM微處理器的指令結(jié)構(gòu)
ARM微處理器的在較新的體系結(jié)構(gòu)中支持兩種指令集:ARM指令集和Thumb指令集。其?中,ARM指令為32位的長度,Thumb指令為16位長度。Thumb指令集為ARM指令集的功能子集,但與等價的ARM代碼相比較,可節(jié)省30%?~40%以上的存儲空間,同時具備32位代碼的所有優(yōu)點。
ARM微處理器的啟動過程
1、Bootloader?的啟動:其一般要實現(xiàn)的功能如下:
(1)初始化CPU速度、存儲器、存儲器配置寄存器以及串口等;
(2)激活指令/數(shù)據(jù)Cache、建立堆棧指針、建立啟動參數(shù)區(qū)、構(gòu)造參數(shù)結(jié)構(gòu)和標識列表;
(3)通過上電自檢,來識別存在哪些設(shè)備,并報告異常,提供對電源管理中休眠/恢復(fù)的支持;
(4)跳轉(zhuǎn)到內(nèi)核起始處,系統(tǒng)啟動。
ARM微處理器的工作狀態(tài)
從編程的角度看,ARM一般有兩種工作狀態(tài):ARM狀態(tài)和Thumb狀態(tài)。并可在兩個狀態(tài)之間隨時切換。
ARM狀態(tài)下,大多數(shù)指令都是有條件執(zhí)行的;而Thumb狀態(tài)下,只有分支指令是有條件執(zhí)行的。
ARM體系結(jié)構(gòu)的存儲器結(jié)構(gòu)
ARM體系結(jié)構(gòu)可以用兩種方式存儲:大端格式和小端格式。最大尋址空間為4GB(232字節(jié))
在big-endian格式中,對于地址為A的字單元其中字節(jié)單元由高位到低位字節(jié)順序為A,A+1,A+2,A+3;這種存儲器格式如下所示:
31 24 23 16 15 8 7 0
------------------------------------------------------------------------------------
字單元A |
------------------------------------------------------------------------------------
半字單元A |?半字單元A+2 |
------------------------------------------------------------------------------------
字節(jié)單元A |?字節(jié)單元A+1 |?字節(jié)單元A+2 |?字節(jié)單元A+3|
------------------------------------------------------------------------------------
在little-endian格式中,對于地址為A的字單元由高位到低位字節(jié)順序為A+3,A+2,A+1,A,這種存儲格式如下所示
31 24 23 16 15 8 7 0
----------------------------------------------------------------------------------
字單元A |
----------------------------------------------------------------------------------
半字單元A+2 |?半字單元A |
----------------------------------------------------------------------------------
字節(jié)單元A+3 |字節(jié)單元A+2 |?字節(jié)單元A+1 |?字節(jié)單元A |
----------------------------------------------------------------------------------
指令長度和數(shù)據(jù)類型
ARM處理器的指令長度可以是32位(ARM狀態(tài)下),也可以是16位(Thumb狀態(tài)下)。ARM處理器支持字節(jié)(8位)、半字(16位)、字(32位)三種數(shù)據(jù)類型。其中字需要4字節(jié)對齊(地址的低兩位為0)、半字需要2字節(jié)對齊(地址的最低位為0)。
處理器模式
ARM微處理器支持7種運行模式:
——用戶模式(usr)
——快速中斷模式(fiq)
——外部中斷模式(irq)
——管理模式(svc)
——數(shù)據(jù)訪問中止模式(abt)
——系統(tǒng)模式(sys)
——未定義指令中止模式(und)
ARM體系結(jié)構(gòu)所支持的異常類型
復(fù)位、未定義指令、軟件中斷、指令預(yù)取中止、數(shù)據(jù)中止、IRQ(外部中斷請求)、FIQ(快速中斷請求)。
對中斷的響應(yīng):
1、將下一條指令的地址存入相應(yīng)連接寄存器LR,以便程序在處理異常返回時能從正確的位置重?新開始執(zhí)行。若異常是從ARM狀態(tài)進入,LR寄存器中保存的是下一條指令的地址(當前PC+4或PC+8,與異常的類型有關(guān));若異常是從Thumb狀態(tài)?進入,則在LR中保存當前PC的偏移量。
2、將CPSR復(fù)制到相應(yīng)的SPSR。
3、根據(jù)異常的類型,強制轉(zhuǎn)換CPSR的運行模式位。
4、強制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。
各類異常的具體描述:
FIQ異常是為了支持數(shù)據(jù)傳輸或者通道處理而設(shè)計的。
IRQ屬于正常的中斷請求。
ABORT意味著對存儲器的訪問失敗
總結(jié)
- 上一篇: python爬虫项目(对博思平台社区话题
- 下一篇: 格子玻尔兹曼机(Lattice Bolt