EDA365电子论坛网

标题: ARMv8 架构与指令集.学习笔记(2) [打印本页]

作者: mytomorrow    时间: 2019-6-27 12:16
标题: ARMv8 架构与指令集.学习笔记(2)
目 录
* f! w6 M% c1 s8 j$ ?4 |+ u  d! R) O第1章 ARMv8简介. 3
: v3 }6 P! k) _  m) {4 x( Q) s1.1基础认识. 3
0 @4 W" e2 |# o6 f1.2 相关专业名词解释. 3$ [5 r2 j0 j) q
第2章 Execution State 49 ?% E1 e# V& A' X( k+ q+ g! t
2.1 提供两种Execution State 4
8 A4 o# |# x- G& T4 Z4 l2.2 决定Execution State的条件. 4
2 d" C. E8 C% l; f第3章 Exception Level 5
- N8 M( h& \4 q3.1 Exception Level 与Security 5) f( y7 s5 e- @; N
3.1.1 EL3使用AArch64、AArch32的对比. 5
6 F1 `! t" j( f3.2 ELx 和 Execution State 组合. 64 i" G, C6 r! b" B% }8 y
3.3路由控制. 7
2 F6 N5 F5 i. p0 {& J/ o3.3.1 路由规则. 7
6 W$ D- Z5 e/ J" i; H/ E/ Z3.3.2 IRQ/FIQ/SError路由流程图. 8
- Y1 V5 p& b7 p5 a' R& ?% `- I! ^
第4章 ARMv8寄存器. 9- T* f0 g/ ?/ P
4.1 AArch32重要寄存器. 9
$ Q; Q2 Z+ [, i! t" v, k0 C% K4.1.1 A32状态下寄存器组织. 101 l- N% U1 e; g) B4 n* _1 V# f
4.1.1 T32状态下寄存器组织. 10+ N$ z  t+ e7 b$ Q# p2 c
4.2 AArch64重要寄存器. 11
% S( @& Y6 P: L+ a4.3 64、32位寄存器的映射关系. 11& @+ b0 b# y9 x
第5章 异常模型. 12
1 N, N! M' R' L/ n4 f5.1 异常类型描述. 123 P6 \7 B: t) l) ~1 ]3 U; `
5.1.1 AArch32异常类型. 12. Q# u5 W$ A! {( \' B) {
5.1.2 AArch64异常类型. 12
% V6 S$ o7 ^8 Z, A- W- j/ X$ k" l5.2异常处理逻辑. 13
$ |! h) x0 {) U  k* ]2 _1 K5.2.1 寄存器操作. 139 r* E( ^) E1 c" ^4 L9 d0 J
5.2.2 路由控制. 14
8 @- A4 u* x6 M, w8 ]3 v5.3流程图对比. 14' R8 V3 ]; R6 ~) n% n0 r: d3 W, N9 n
5.3.1 IRQ 流程图. 15
  @/ J( `) e4 q  m+ O. i5.3.2 Data Abort 流程图. 188 q+ C0 b' b# c/ o3 N. |" R
5.4  源代码异常入口. 20  Z$ ?5 |9 H5 W$ j8 O5 l
5.4.1 C函数入口. 20
) `3 \0 V2 O/ w& R4 e& d* B. {5.4.2 上报流程图. 20
: _9 |& `! j5 K( h6 M- b, C5.4.3 异常进入压栈准备. 213 M6 k" a+ ~) G/ d# @  h
5.4.4 栈布局. 21% J/ s6 v" F7 X( b3 o' ]
第6章 ARMv8指令集. 22
+ o+ W2 h* b1 y) q  E/ x6.1 概况. 22
* Z  i* T# _  @3 ~$ T3 }6.1.1 指令基本格式. 22) o; w8 R% N6 B5 B
6.1.2 指令分类. 22, H1 n  v9 a9 ~
6.2 A64指令集. 22& Z6 \- D, b7 W$ V; U! z4 ^
6.2.1 指令助记符. 23) z) c2 a! {$ H$ Q
6.2.2 指令条件码. 23; @" ^& l" Q- `5 d
6.2.3 跳转指令. 24
/ C- y, w- f0 t' Z+ Z6 z3 y6.2.4 异常产生和返回指令. 24
6 C1 H5 ~" s. ]: R" ?+ k8 J$ Y6.2.5 系统寄存器指令. 24
: N3 m4 V' ^  W2 u  C' u6.2.6 数据处理指令. 25
" f8 O* ]3 l# `8 H1 x' z/ a6 J6.2.7 Load/Store指令. 27
% D4 I+ t' }* a; M6.2.8 屏障指令. 312 Z/ l7 k, R1 ?, G( N0 t  m; \
6.3 A32 & T32指令集. 31! ~7 r1 l9 H* x0 V( U2 M( H
6.3.1 跳转指令. 312 j/ W/ }4 ?- e3 b/ s7 V6 q+ e
6.3.2 异常产生、返回指令. 32
+ o2 [& V0 S9 z5 l6.3.3 系统寄存器指令. 32
9 t6 Y$ T! k0 B7 G! g$ z# r2 J( T2 Y6.3.4 系统寄存器指令. 329 E9 M  O7 U' n' V
6.3.5 数据处理指令. 32- [& g, p2 P/ q8 t6 c
6.3.6 Load/Store指令. 32$ s+ ]4 H% U' U
6.3.7 IT(if then)指令. 34
: t5 f+ p- u8 W6 y  e5 H7 v! q6.3.8 协处理器指令. 349 Z3 D5 p' a; E
6.4 指令编码. 34, ], ~2 w5 q( _6 E, L0 u
6.4.1 A32编码. 34& \& }, e9 c  x$ G+ ]
6.4.2 T32-16bit编码. 356 ?4 {6 ^3 c) _2 K, b0 q$ Z
6.4.3 T32-32bit编码. 35" q" z" y% X, D3 q+ i. r
6.4.4 A64编码. 354 m: U& ?, ^  `  p& q
6.4 汇编代码分析. 35# t" i- g$ E0 F9 q/ |
第7章 流水线. 36/ {" r/ x- {5 D3 }! n8 m0 f
7.1 简介. 36
& R! f3 R. d' w: i' j7.1.1 简单三级流水线. 36% o2 L2 u% N2 T3 p) y
7.1.2 经典五级流水线. 36) ~3 j- g  G: m) L
7.2 流水线冲突. 37
7 J( E- f1 v/ D& _' H* i- a7.3 指令并行. 37
' c, c/ e; u) j9 f6 C
( y/ ?% s% W; d3 S! r0 u( T% X& y
7 q0 E9 E3 ]/ B* f4 y! b

/ n( B; j2 K- \/ [7 P9 ?6 Z
. L7 f8 x0 h% k1 g) y

0 Q* Z7 W- D) h) F& f# U% u( s5 D" l+ O, L  `% S0 Z( v

' u$ F( }8 x4 s/ C# ]# B& B第3章 Exception Level" q: ?5 O5 G- ?9 }" i1 h! a
+ ?1 ~+ t8 t- J, X
& \4 H" {: |# [7 y. {
• ARMv8定义EL0-EL3共 4个Exception Level来控制PE的行为.
: X( n. O) i, E; Q
5 z7 R3 l  }6 v, a3 v( b5 A0 g3 D$ K   w! ?/ \4 h$ q/ u9 H6 a

! l) A, a* L1 ~5 c* U7 l" B
! d+ q+ J( f0 s0 V8 Z+ t0 H! r3.1 Exception Level 与Security
* `9 ~( x5 M9 z. Z0 w
* W& u& h! e+ S& V
; w$ o( I: P; \" l+ w- W

5 y4 H4 L: \; p/ W- G( i5 I6 g9 ?3 V* V# F$ Y8 v5 N; V1 {2 A
" t* K4 t: l7 d7 ~
3.1.1 EL3使用AArch64、AArch32的对比
/ G5 ?" r! m2 n% \
) i# ^2 C0 K! [( d! w: v/ [
; e; }" N5 m4 v; Z

; G! q$ ^& ?9 _
" f7 p% T  {# u
( W! x6 @" h- W  ]. Q, q1 }: i5 @# y. e6 @
$ |6 g: z/ V! ^$ A4 V% e' y. ~$ W" a

+ k4 E- |9 P' I4 @) k9 t% u
作者: uqHZau    时间: 2019-6-27 17:54
谢谢分享
作者: shadowsong    时间: 2020-2-3 16:21
xxxxxxxxxxxxx
6 U$ i8 b" F0 i




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2