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