復習用,自整理、%%犇orz——海底淤泥
1嘗試比較CISC體系結構 和RISC體系結構的特點。ARM為何采用RISC體系結構?
CISC:增加指令集的復雜度,以芯片面積為代價
RISC:只執行最常用的指令,大部分復雜指令由簡單指令合成
因為:
組織結構:
1RISC的硬連線的指令編碼邏輯
2便於流水線執行
3大多數RISC指令為單周期執行
處理器:
1處理器管芯面積小
2開發時間縮短,開發成本減低
3容易實現高性能,低成本的處理器
2簡述ARM體系結構的特點
1.Load/Store 體系結構
2.固定的32為指令
3.3地址指令格式
3什么是Thumb技術,其優點是什么?與ARM指令集相比,Thumb指令集有哪些局限?
Thumb是ARM體系結構的擴展
優點:提高了代碼密度
局限:
1.完成相同操作時,Thumb需要更多的指令
2.Thumb指令集沒有包含進行異常處理時需要的一些指令
4什么是Thumb-2內核技術?它有哪些特點?
Thumb-2內核技術是ARM體系的新指令集
特點:更高性能,更低功耗,更簡短的代碼長度
5目前ARM處理器核有哪幾種?簡述ARM7TDMI內核的重要特性
處理器內核:
ARM7TDMI
ARM9TDMI
ARM10TDMI
ARM11
SecurCore
Cortex
重要特性:
1.能實現ARM體系結構版本4T
2.支持Thumb指令集
3.32*8 DSP乘法器
4.32位尋址空間,4GB線性地址空間
5.包含ICE模塊
6分別以ARM7TDMI和ARM9TDMI為例,介紹3級流水線和5級流水線的執行過程,並進行相應的比較
三級流水:取指--->譯碼--->執行
五級流水:取指--->譯碼--->執行--->緩沖/數據--->回寫
比較:
1三級流水譯碼不包含reg讀,五級流水譯碼包含reg讀
2三級流水執行包含reg讀,移位/ALU,reg寫,五級流水執行只包含位移/ALU
3五級流水增加了存儲器數據訪問過程,並將reg寫單獨分離為一個過程
7ARM Cortex處理器包括哪幾個系列?各有什么特點?
ARM Cortex-A系列:微處理器核,能運行通用操作系統
ARM Cortex-R系列:微處理器核,運行實時操作系統
ARM Cortex-M系列:微控制核,功耗低,性能高
8ARM微處理器支持哪幾種工作模式?各個工作模式有什么特點?
7種: 特點:
1.用戶 程序正常執行
2.FIQ 快速中斷模式,處理快速中斷
3.IRQ 外部中斷模式,處理普通中斷
4.SVC 特權模式,處理軟中斷
5.ABT 中止模式,處理存儲器故障
6.UNQ 未定義模式 ,處理未定義指令陷阱
7.系統 運行特權操作系統任務
9ARM處理器共有多少個寄存器?這些寄存器在用戶編程的功能中是如何划分的?ARM狀態下的通用寄存器可分為哪幾類?
31個通用寄存器,6個狀態寄存器
用戶編程:
R0~R14,R15(PC),CPSR
ARM狀態:
1.未分組寄存器R0~R7
2.分組寄存器R8~R14
3.程序計數器R15
10簡述ARM狀態下分組寄存器R13 R14 R15 的功能以及R15使用的注意事項
R13 用作堆棧指針SP
R14 子程序連接寄存器LR
R15 程序計數器PC
R15注意事項:由於ARM多級流水技術,R15的程序地址並不是當前指令的地址,指令“BX Rm”利用Rm的bit[0]來判斷跳轉到ARM還是thumb狀態
11簡述ARM程序狀態寄存器各位的功能
1條件碼標志位
最高4位——N,Z,C,V
N:補碼狀態下,N=0是非負數,N=1是負數
Z:Z=1表示結果為0,Z=0表示結果為非0
C:1.加法,c=1有進位 2.減法,c=0有借位 3.位移,c存儲最后被移出的值
V:運算溢出V=1否則V=0
2.控制位
最低8位——I,F,T,M[4:0]
I:I=1,禁止IRQ中斷
F:F=1,禁止FRQ中斷
T:T=0,ARM執行,T=1,Thumb執行
M[4:0]:記錄當前模式
3.保留位
其他位保留作以后的擴展
12試分析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狀態的R15
13ARM體系結構支持哪幾種類型的異常?他們之間的優先級關系如何?各種異常與處理模式有何關系?
7種類型: 優先級: 處理模式:
復位 1 SVC
未定義的指令 6 UNQ
軟件中斷 6 SVC
指令預取中止 5 ABT
數據訪問中止 2 ABT
外部中斷請求 4 IRQ
快速中斷請求 3 FIQ
14簡述ARM處理對異常中斷響應過程
1.將CPSR的內容保存到要執行的異常中斷SPSR中,以實現對處理器當前狀態中斷屏蔽位以及各個標志位的保存
2.設置當前狀態寄存器的CPSR的相應位
3.將寄存器LR_<mode>設置為異常返回的地址,使異常處理程序執行完后能正確返回原程序
4給程序計數器PC強制賦值,使程序從相應的向量地址開始執行中斷程序
15ARM如何從異常中斷處理程序返回?需要注意哪些問題
1.所有修改過的用戶寄存器必須從處理程序的保護堆棧中恢復
2.將SPSR_<mode>寄存器內容復制到CPSR中,使得CPSR從相應的SPSR中恢復,即恢復被中斷程序的處理器工作狀態
3.根據異常類型將PC變回到用戶指令流中的相應指令處
4.最后清除CPSR中的中斷禁止標志位I/F
16什么是ARM異常中斷向量表?它有何作用?存儲在什么地方?
異常中斷向量表中指定了各異常中斷與處理程序的對應關系
作用:每個異常中斷對應異常中斷向量表中4個字節,存放一個跳轉指令或者一個向PC寄存器中賦值的數據訪問指令LDR。通過指令,程序將跳轉到相應的異常中斷處理程序處執行
通常以存儲器低端的0x0為起始位置的32字節空間中
17如果FIQ、IRQ和第三個異常(不是復位)同時發生,ARM應該如何處理?
由於FIQ比IRQ優先級高,會將IRQ屏蔽,直到FIQ明確將IRQ使能或返回用戶代碼為止
若第三個異常是數據中止異常,則進入數據中止異常程序后立刻進入FIQ處理程序,當FIQ返回時再處理數據中止異常程序
若第三個異常不是數據中止異常,則會立即進入FIQ,直到FIQ、IRQ返回時才返回到產生第三個異常的指令處進行處理
18ARM支持中斷嵌套嗎?如何實現ARM處理器的中斷嵌套?
支持,利用中斷控制器來實現
19ARM處理器支持哪些數據類型
6種:
8位有符號/無符號字節
16位有符號/無符號半字
32位有符號/無符號字
20大端存儲與小端存儲有何不同?他們對存儲數據有什么要求和影響?
小端儲存:較高有效字節放在較高的存儲器地址,較低有效字節放在較低的存儲器地址,
大端儲存:較高有效字節放在較低的存儲器地址,較低有效字節放在較高的存儲器地址,
串行通信上采用大端排序性能較好
本地主機上采用小端排序性能較好
21簡述ARM的存儲層次
1寄存器組
2片上RAM
3片上Cache
4主存儲器
5硬盤
22簡述存儲器管理單元MMU的作用。MMU和MPU有什么不同?
作用:
1虛擬存儲空間到物理存儲空間的映射
2存儲器訪問權限的控制
3設置虛擬存儲空間的緩沖特性
不同:
MMU比MPU更先進
MMU能覆蓋MPU的所有功能
MMU能實現緩存控制,總線仲裁,Bank切換,而MPU不能
MPU比MMU更簡單,使用開銷也更少
23統一的Cache與分開的Cache有什么區別?他們各自的優點是什么?
統一的Cache指令預存和數據存取時使用的Cache是同一個Cache,優點:能夠自動調整指令在Cache存儲器的比例,比固定划分有更好的性能
分開的Cache指令預存和數據存取時使用的Cache是相互獨立的Cache,優點:使Load/Stroe指令能夠單周期執行
24簡述ARM協處理器的作用
ARM通過增加硬件協處理器來支持對其指令集的通用擴展。
25AMBA規范定義了幾種總線?各自有什么特點?
3種:
1.AHB:用於連接高性能模塊
2.ASB:用於連接系統模塊
3.APB:是一個簡單接口支持低性能的外圍接口
26簡述基於JTAG仿真器的ARM系統調試結構
1.嵌入式調試
2.調試處理器核
3.ARM調試硬件
4.EmbeddedICE
27簡述基於EmbeddedICE的ARM調試結構
1.是基於JTAG測試端口的擴展,引入了附加的斷點和觀測點寄存器
2.EmbeddedICE模塊包括兩個觀察點寄存器以及控制存儲器和狀態寄存器
3.基於ARM的包括EmbeddedICE模塊的系統性片通過JTAG端口和協議轉換器與主機連接
28試分析ARM實時調試的完整解決方案
EmbeddedICE單元支持斷點和觀察點的功能並提供主機和目標軟件的通信通道
ETM單元壓縮處理器接口信息並通過跟蹤端口送到片外
用戶可控制斷點的和觀察點的設置,並可以配置各種各種跟蹤功能。
29從應用的角度分析,ARM芯片選擇的原則是什么?
1.MMU:如果希望使用WindowsCE或Linux,需要選擇帶有MMU的芯片
2.處理器速度:如果系統需要進行圖像處理這種對速度要求較高的應用,則需要選擇高版本ARM內核芯片
3.內置存儲器容量:如果系統不需要大量容量的存儲器,可以考慮帶有內置存儲器的芯片
4.USB接口:根據產品具體應用來選擇
5.GPIO數量:在說明書中往往聲明最大可能的GPIO數量,但有許多引腳是復用的,需要自己計算實際可用GPIO數量
...