|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 mytomorrow 于 2019-9-26 13:25 编辑
6 j+ p. d1 I0 ~' I; Q" K7 ?4 k, w- i, e8 E( t$ u
1.ARM: Advanced RISC Machine 高级精简指令集计算机
' h! N* }- O( d3 T9 Z2.RISC: Reduce Instruction set Computer 精简指令集,周期执行等长,固定指令长度
. k# ^* L4 P5 C% Y+ v2 \9 ]1 W& D
3.哈佛与冯诺依谩的区别: ) F$ p: R3 d4 G, Q/ K; W }2 p
3 j/ ?1 G% p% |) j8 v9 y/ C1 D CPU在一个周期内能否同时操作数据和指令instruction cache 和data cache分开为哈佛结构,没有分开为冯诺依谩结构 Note: ARM7三级流水线冯诺依谩结构 ARM9五级流水线哈佛结构
- a& E, J/ H% @0 Y* w# W
$ G8 a5 o5 r! Y2 p2 t. S2 N 4.ARM特点: 低功耗、移动手持设备
* Q0 O% ?% @5 D) E5 C& `9 ]
# ]% r4 h; |: K9 |5 F. K 5.编程模型: ARM 32位架构指的是数据总线<---->字; B! q4 S+ W" x3 t+ e
% i6 a$ u% P1 ?' j. M 6.工作模式: 7种工作模式 usr 非特权模式|------------------|空间共用 system 系统模式| $ m9 Y: z6 V- W
FIQ 快速中断模式|* [- N/ k) v# s9 Y
IRQ 外部中断模式|: U3 B- q% d* w+ D. K5 ~3 ]
abort 异常模式 |异常模式 % b$ X- s7 z1 Q3 T9 X" s; h0 e
undef 未定义模式 |
* s! x% m+ C; ] supervisor 管理模式 |
8 q1 w: I1 v6 @9 ^6 U- ], R7 o5 b# w
7.寄存器: R13:SP栈指针。R14:LR 链接返回。R15:PC 程序计数器, j# I$ [( y! a
2 X/ I+ n% B/ u3 K& s6 s
8.ARM有37个32位长的寄存器 . w- S4 ~6 R6 {+ ~$ M
1个 R15 PC(Program counter)
7 c" f9 r3 V6 F% s 1个 CPSR(Current program status register) - l) C( n4 ]" j- @8 J1 r' d6 t, h( f
5个 SPSR(saved program status register)
! l( A. t- O4 i* e U7 _ 30个通用寄存器3 F; q4 A0 ~) Y
R0-R12:五种模式公有 除FIQ(usr 和system算一种)13个|
7 b. `4 I% d; [. a, ]) y FIQ:私有寄存器R8-R12 5个 |30个通用寄存器
6 y/ r0 t, o% ] R13:R14:六种模式都是私有的 2*6=12个|
/ f2 {9 y; `' U) x. q! }: q PC :公有 1个
& ?9 L) T" h, @! [$ A& D 状态寄存器:CPSR 公有1个& S6 J- j" _2 u: a
SPSR 私有5个(usr没有)
; M+ u0 e% t8 t$ d. Z Note:(Crotex A 中monitor又多3个,一共是40个)
! @" @" F4 E& c# N
7 l" [! b3 l- C; }$ q" P9.CPSR 当前程序状态寄存器 current program status register可以在任何处理器模式下被访问) n$ a1 Y/ |( `" m$ z
1)ALU (atithmetic logic unit,算术逻辑单元)状态标志的备份6 A: T8 v- V5 n2 ]/ w' T9 \
2)当前处理器的模式
4 D0 p; N6 v% S6 F9 H 3)中断全能标志1 Z7 ]2 |2 }+ _, W/ ]2 X
4)设置处理器的状态(只有在4T架构)
, t4 }3 A3 I$ S( }9 Y6 M. z( ^6 o' E) r5 N/ B; n
10.CPSR复位后 进入supervisor模式,ARM状态
3 D7 o$ i6 f# |& B$ J; C
, P+ `& t- y- i8 @11.ARM状态32位4字节对齐,特点最后两位无效为0.PC的bit[1:0]=0
" ~4 {% l8 E' T A+ u& g* { K" ^1 Q. ~/ p {. o7 S$ J
12.当异常产生时: & h5 {" M& g. _4 _ h
1)系统会拷贝CPSR到SPSR,设置CPSR状态6 ~6 A+ r1 R. G' Y' p& R& q9 W5 n
2)返回由程序员恢复SPSR-->CPSR4 t: m- ?5 t$ n# T2 r0 @
+ l$ a: L% l3 T13.ARMv4所有指令都是条件执行。ARMv5有一条BX非条件执行
E: C. j2 j+ V0 i4 F6 P) W
, R+ ]! s/ u" J) E% a14.Thumb代码比ARM代码的优势1 f% y4 n, Y1 D9 N2 \7 g9 [
1)代码密码是ARM的65%
& E! y. M, D% h 2)方便窄内存操作
' @2 O( M' T- \. L5 V& {
: J1 X/ D# u" e/ d7 d15.DMIPS: 一秒种执行的速度.CPI:指令执行的百分率周期/指令
5 F$ i1 P2 B! \' ?# r. t7 }
! u6 [) x- ?+ M16.指令流水线结论:' E1 P! k) _9 L1 u
1)Execute Address=PC-8
- g y `' m4 l1 |# k2 Y y 2)IRQ的lr=PC-4. BL、undef:lr=PC* t( O$ o5 _8 z. h$ L; T' F# O1 U# n
3)LDR互锁条件:LDR的目的地址在下一周期的源地址出现1 y6 b! l! J* f! L' o
LDM(多内存操作)的条件:最后一个寄存器在一个周期作为源地址使用
% j: p' Y4 R M; b, P; K% |: a' Q* Y. V, h% l* x0 t
17.ARM9E: E支持DSP。ARM9TDMI:支持调试,IDE
( |6 y7 {! c8 q9 O0 \4 W
8 m1 a8 _3 m0 G0 E$ g! v+ j i18.在流水线的第二阶段 译码decode读寄存器0 {3 @$ ?8 Z6 u) m
& w6 c8 E/ q, j" }) v+ c9 T
1 k$ s0 h, X1 S: r1 A5 w/ M& B9 I' v: ^5 N
* X3 a/ B# \. }1 i; ]" Z$ D* ]! u% `
' Q) P" k7 U6 D: N# C5 k' y* G4 z; O
|
|