EDA365电子论坛网

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

作者: mytomorrow    时间: 2019-7-1 11:36
标题: ARMv8 架构与指令集.学习笔记(5)
目 录
! N+ K+ o0 a  i( S第1章 ARMv8简介. 3
/ U' n2 C$ b) m* |* @1.1基础认识. 3+ q+ y- u9 o6 @5 X5 U
1.2 相关专业名词解释. 3
' B; G) ?- R1 F& a5 d第2章 Execution State 4
( e" r, r( C! ~( L& ~/ G/ I* T2.1 提供两种Execution State 4
! L7 M" B" M; I4 U8 a/ T& I4 B4 a1 }- U. P2.2 决定Execution State的条件. 4% a6 r. h& O8 \/ m8 |; ?
第3章 Exception Level 5
- B7 u* o8 ^- e( t" R: z" ?' b3.1 Exception Level 与Security 5
; c+ M  ]1 f, Y: Q! f3.1.1 EL3使用AArch64、AArch32的对比. 5, b* l  Y$ r3 j' k
3.2 ELx 和 Execution State 组合. 6( a! q$ u6 K" r  {
3.3路由控制. 74 ~& t7 L6 a9 H1 E. _. M! C# F1 T
3.3.1 路由规则. 75 J$ x6 V9 Z+ H
3.3.2 IRQ/FIQ/SError路由流程图. 8
  Q+ C8 _( k7 [! W6 a; h& C第4章 ARMv8寄存器. 9
8 G9 ~; J& k) w* x4.1 AArch32重要寄存器. 9
' Z" B7 Q7 N! X/ w. s4.1.1 A32状态下寄存器组织. 10% I* K$ M4 X: j
4.1.1 T32状态下寄存器组织. 10$ C* n  R- c$ o* }
4.2 AArch64重要寄存器. 11/ u! u9 V, ^+ g! L
4.3 64、32位寄存器的映射关系. 11* _8 E0 \" m" H& F: U
第5章 异常模型. 12
: V$ w0 t' B( x- \5.1 异常类型描述. 12
/ f) m: f2 {6 q0 m: g" L3 `/ _$ s6 Y5.1.1 AArch32异常类型. 120 X- x2 ^& C* j0 T7 u" E6 _9 w
5.1.2 AArch64异常类型. 12/ I; z5 Q+ B* A/ C2 O# T
5.2异常处理逻辑. 133 P; c, {: ~  d( q1 H8 k: o5 A0 {
5.2.1 寄存器操作. 13
5 R0 {9 {. G' w: O5.2.2 路由控制. 14
+ ~# u% F/ X) h5.3流程图对比. 14
0 T! f" t* [( ]4 q* t5.3.1 IRQ 流程图. 154 d9 }; r5 ^; r1 s
5.3.2 Data Abort 流程图. 18
' ]4 e/ }1 ?/ C$ m. C# d+ J3 p0 c5.4  源代码异常入口. 20
6 M/ F, p& I- W4 r: m5.4.1 C函数入口. 20+ q8 k, v5 m% h+ U$ D4 D
5.4.2 上报流程图. 20
8 x3 Y6 P: o' W$ r5.4.3 异常进入压栈准备. 21* k8 K$ P. [0 R. w
5.4.4 栈布局. 21# [2 _. O% V, |, R: F' t  ^
第6章 ARMv8指令集. 228 V5 }; H7 L! c! U) |6 |+ H. L$ b
6.1 概况. 22
# D0 L4 ~4 j. ], {1 G6.1.1 指令基本格式. 22
( N: r! R# N$ b( Z) ^: I1 L6.1.2 指令分类. 22$ Y& T0 O$ Q% `6 d- `5 e
6.2 A64指令集. 22+ v( h2 M- _4 s! F9 T* H4 W
6.2.1 指令助记符. 233 u, i( h1 L) I8 k0 F
6.2.2 指令条件码. 23
. c% C& Q9 l* V3 f5 @9 e6.2.3 跳转指令. 247 u1 s8 G2 t) f/ m3 T
6.2.4 异常产生和返回指令. 24
9 a% R# A7 q% [" }0 [# P( [6.2.5 系统寄存器指令. 24
- g/ A2 V4 a4 F8 T" x' |: V' c6.2.6 数据处理指令. 25+ u# h: ?$ N+ O
6.2.7 Load/Store指令. 27; I+ O( M5 K( D) }- G1 q9 m  ]
6.2.8 屏障指令. 31+ G5 L/ M+ u* J6 ^% \
6.3 A32 & T32指令集. 31# n  O+ |% T0 G; B
6.3.1 跳转指令. 31: L" F& W" o# C
6.3.2 异常产生、返回指令. 32
( {% z+ Y$ i4 h3 M" [6.3.3 系统寄存器指令. 326 v* q' ^5 n+ l3 ~4 C  R
6.3.4 系统寄存器指令. 32) f7 F& _' y  c% D4 M
6.3.5 数据处理指令. 32- Z0 ^* r8 y; a4 [" P# ^
6.3.6 Load/Store指令. 32# ?  `( p" p8 L8 x
6.3.7 IT(if then)指令. 34
  Q$ Z7 F0 j7 X# q6.3.8 协处理器指令. 34) ^9 r$ f# ~/ @. m- Z
6.4 指令编码. 34( e7 [+ U/ V* L( _% N: J
6.4.1 A32编码. 343 Z# ?, Z. ]4 p/ v3 _8 I
6.4.2 T32-16bit编码. 358 O3 U5 T1 w6 W; y8 e
6.4.3 T32-32bit编码. 35
( C8 o# h( c/ Y  W2 F6.4.4 A64编码. 35
4 [  b* T3 ?6 ]6 F
第7章 流水线. 36
3 f! V$ [! s8 q3 Q3 h0 H& O* H7.1 简介. 36) ?6 L. K6 v2 }  r, l  |
7.1.1 简单三级流水线. 365 _, w& b1 p! F. s+ G3 J
7.1.2 经典五级流水线. 36
8 o- V, }" F3 I1 i7.2 流水线冲突. 37
0 t8 N, Q( X/ L, x1 a2 H, J7.3 指令并行. 37
* E( p( r3 ?" A- ~* `5 t/ w
+ _2 w' ^/ ~, `1 [1 C
5 a. C! `' l: t- ]0 ^% \. r- d& M
% f: G* j3 V! [+ C7 E
% H6 o5 _% Y4 O8 f, u$ e

7 _8 ^5 `8 J% Q# V5 J
1 R) ]. \/ T+ z" t+ a. j; T* C
6章 ARMv8指令集
6.1 概况
• A64指令集
• A32 & T32指令集
• 指令编码
6.1.1 指令基本格式
<Opcode>{<Cond>}<S>  <Rd>, <Rn> {,<Opcode2>}
• 其中尖括号是必须的,花括号是可选的
• A32: Rd => {R0–R14}  
• A64: Rd =>Xt => {X0–X30}

- }" }1 K1 o+ C

. C. A2 z# Q5 \0 [+ f
! d1 y) H9 ~! t; v2 \, o5 M

+ s7 r5 `2 P3 N# Q. ^3 N- @/ z; O& \# H! R# E3 B+ G

9 I6 d! U4 f1 G9 ?( }2 o
1 k; \2 r* F$ @( I. b' E

( {4 g( M0 \) u0 x- T/ I6 J' g1 E+ C# p  Y# ?; M

9 u7 B* d* [; j% j( {, I  W; |7 U9 E- |6 J
" R' S( H) D) U5 S3 ~3 J

& P! }2 X- |. d
% h; j! Z) S4 d$ C

作者: Liberallh    时间: 2019-7-1 18:13
谢谢分享




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