|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 mytomorrow 于 2019-9-26 13:25 编辑 - Z g! U2 }% S
1 l7 }3 d" n) Q# f) }4 s
1.ARM: Advanced RISC Machine 高级精简指令集计算机
5 E y/ s) T7 i6 N2.RISC: Reduce Instruction set Computer 精简指令集,周期执行等长,固定指令长度
# X0 c$ ^. k6 \7 z, a
' l. z, V% g+ [9 W3.哈佛与冯诺依谩的区别:
% ^6 }; H9 u4 R& O
+ h! }: o5 X4 A5 q. z t5 f CPU在一个周期内能否同时操作数据和指令instruction cache 和data cache分开为哈佛结构,没有分开为冯诺依谩结构 Note: ARM7三级流水线冯诺依谩结构 ARM9五级流水线哈佛结构. G& s" ?. x2 V$ ^) k0 L! k
; z) F2 b' p8 x0 [ 4.ARM特点: 低功耗、移动手持设备1 m. n u f/ O- d, z
# W Z$ H1 [5 E* D6 X! p
5.编程模型: ARM 32位架构指的是数据总线<---->字& U& q$ ?/ `& Y' J$ A+ J5 S' S
& t$ V. W$ ^# |: B! V
6.工作模式: 7种工作模式 usr 非特权模式|------------------|空间共用 system 系统模式| ( j4 ]/ `* A4 B9 n' m
FIQ 快速中断模式|4 ]8 f. z4 l0 _- _8 p, {$ j8 F
IRQ 外部中断模式|
0 \3 A8 m, ?! t+ G! [4 L ~% U5 o0 C7 d abort 异常模式 |异常模式 6 n' Y! ], z" f. t6 ?
undef 未定义模式 |
! f# M1 }) i4 P+ m$ n/ [' |7 l supervisor 管理模式 |2 y, W7 F) h' @4 Y$ _5 z2 W
1 _1 d4 y/ z) d7.寄存器: R13:SP栈指针。R14:LR 链接返回。R15:PC 程序计数器
' H8 l) O: b6 Y% u4 {4 P& s
2 \# H, ]% a& G 8.ARM有37个32位长的寄存器
2 a8 t% Z3 A+ u: O: E 1个 R15 PC(Program counter) n: @6 T& N9 y# G+ E, d; [# l" d7 E
1个 CPSR(Current program status register) ) B) @+ m0 x& M6 U- G
5个 SPSR(saved program status register) 8 I0 n; V1 O* O: N% U+ W# y% Z3 B
30个通用寄存器; ^3 q" P" q9 p
R0-R12:五种模式公有 除FIQ(usr 和system算一种)13个|9 I: ~8 k, T0 S/ a' G( [# X
FIQ:私有寄存器R8-R12 5个 |30个通用寄存器9 f9 G. { \9 B) ]8 g
R13:R14:六种模式都是私有的 2*6=12个|' p- G3 [0 L q' F* t3 m( _
PC :公有 1个5 q F" E" c( @1 a2 }+ s
状态寄存器:CPSR 公有1个
! ^% \) Z) W4 }" a SPSR 私有5个(usr没有)% `3 F4 T7 E1 h6 x# O% R2 S. e: E
Note:(Crotex A 中monitor又多3个,一共是40个) 5 k3 ~: h; C. x$ e6 F
. r ^2 @0 {+ f8 ~9.CPSR 当前程序状态寄存器 current program status register可以在任何处理器模式下被访问
) K' T. P" ]% M 1)ALU (atithmetic logic unit,算术逻辑单元)状态标志的备份
# O' C& N$ b1 q3 n 2)当前处理器的模式6 h0 p7 D6 _+ a8 g7 U! |
3)中断全能标志5 Y. _& o, p% Q. g2 E# i1 h4 T3 j
4)设置处理器的状态(只有在4T架构)
6 A" f4 A3 y3 }* E$ `0 V$ V. P# q# I9 a( W
10.CPSR复位后 进入supervisor模式,ARM状态
p4 T( u: z2 }. g# q6 i* j3 M6 O. B) k1 J& w5 k
11.ARM状态32位4字节对齐,特点最后两位无效为0.PC的bit[1:0]=0
h) `7 `9 C$ \8 `" l s1 \, y/ r4 s2 _3 o
12.当异常产生时:
$ }7 G1 p, _# ` 1)系统会拷贝CPSR到SPSR,设置CPSR状态9 G$ f/ e* v9 k: M
2)返回由程序员恢复SPSR-->CPSR
* P; l% H2 `! O! s: T
8 l7 j$ U9 R/ ?; W; D! t13.ARMv4所有指令都是条件执行。ARMv5有一条BX非条件执行
1 o$ m( K' k6 b5 f3 a: S
( Y/ } m" \) [14.Thumb代码比ARM代码的优势
7 g' W0 g: H1 c/ w' H 1)代码密码是ARM的65%
; `1 h4 N7 N+ x4 @- g4 f 2)方便窄内存操作
! H: ^2 ^4 X" f. w. b! V0 |2 R1 S
/ N5 Z$ I: Y2 \3 w, ^15.DMIPS: 一秒种执行的速度.CPI:指令执行的百分率周期/指令
5 ?; [$ u9 y6 S6 B8 ^% L0 g
/ D: I! l6 Y$ X16.指令流水线结论:
" ?# } n, W, A 1)Execute Address=PC-8
- D# n8 Z P, Q; p) d6 u: X& u 2)IRQ的lr=PC-4. BL、undef:lr=PC
( t7 Y, j. M# m1 H) W 3)LDR互锁条件:LDR的目的地址在下一周期的源地址出现
5 |/ }% \0 N3 c: v* e4 b! D3 l' p LDM(多内存操作)的条件:最后一个寄存器在一个周期作为源地址使用
2 }6 t: l- S; O4 I" q
5 M# L, h. r' z5 X* U6 E/ R) Y17.ARM9E: E支持DSP。ARM9TDMI:支持调试,IDE
7 O" M# K9 z" c7 c* S' O. Q4 @6 e" r4 `# G8 i1 N, l- A, Q
18.在流水线的第二阶段 译码decode读寄存器 x8 ]2 o* o& ]- p( o
$ I% S1 Y$ y9 W8 ?
1 Q3 E. b& H8 X! p g: W# B2 m. g/ g( w# e4 c
?3 ?" O1 c. c. B w8 O! b
]% O# k( S+ u! J& R/ f$ i
2 _& \" `# N- i4 N. m1 l
|
|