目录
一、指令集
就是汇编指令的集合
CISC 复杂指令集 代表是 Intel X86 x64
RISC 精简指令集 代表是 ARM MIPS PPC LA
二、ARM体系结构与编程
ARM Adavanced RISC Machine
RISC的特点:多数指令单周期完成
2.1 ARM的三级流水线
PC 寄存器:永远保存的是当前正在执行的指令的地址
取指 fetch PC 0X1000000C
解码 decode PC-4 0X10000008
执行 execute PC-8 0X10000004
理想状态下,假设每条指令都是单周期的。
因为CPU是并发执行的,PC指向要取出的指令(取指),与此同时,pc-4指向的指令正在被解码,pc-8指向的指令正在被执行。
指令周期数(CPI) = 单位周内执行的指令条数(理想状态下为1)
假设6个指令周期 4条指令 CPI = 6/4 = 1.5
注意:并不是流水线越长, CPU的执行效率就越高,要根据指令的平均执行周期数决定
2.2 五级流水线
计算机的体系结构有两种:
冯诺依曼: 取数据和取指令用的是同一根线
哈佛: 取数据和取指令用的不同的线
ARM9及之后的版本使用的都是哈佛体系结构
ARM9中的流水线为5级,具体讲解可参考CPU设计—五级流水线
2.3 ARM 编程模型
2.3.1 ARM的工作模式
SVC | 管理模式 | 系统上电、执行了软中断指令(SWI) |
FIQ | 快速中断 | 高优先级 |
IRQ | 中断 | 低优先级 |
Abort | 终止模式 | 非法访问存储器 |
Undef | 未定义 | 用于处理未定义的指令(非对齐访问或者地址漏洞) |
System | 系统模式 | 与用户模式共用寄存器的特权模式 |
user |