复习提纲:
—处理器原理与结构
—ARM 处理器的特点
—ARM 指令集
—ARM 汇编程序
—ARM 程序优化
一、处理器原理与结构
要求:⑴掌握微处理器的基本结构(组成)
⑵掌握嵌入式处理器的分类方式
⑶掌握 RISC 和 CISC 指令集的特点
⑷熟悉常用嵌入式处理器的特点
⑸掌握选择嵌入式微处理器的原则
1、 处理器分类
1) 按指令系统
①CISC(如:Intel x86、AMD K6、TMS320XXX)
②RISC(如:PowerPC、ARM、AVR、MIPS)
2) 按总线结构
①冯.诺依曼架构:指令和数据共享同一条总线
②哈佛架构:指令和数据使用两条不同的总线
3) 按处理器字长
①8 bits(如 8008,89C51)
②16bits(如 8086,Ti 54X)
③32bits(如 80486,Ti C3X,C6X)
④64bits(如 Itanium,PowerPC 970)
⑤128bits(?)
2、 处理器工作原理
1)指令执行过程:取指(IF)—>译码(ID)—>执行(IE)—>写回(WB)
2)表示 CPU 性能的方法:
①CPI:执行一条指令所需的平均时钟周期
CPI = 一个程序的 CPU 时钟周期 / 该程序的指令数
②MIPS:每秒百万条指令
MIPS = 指令数 / (指令的执行时间 x 106)
= 时钟频率 / (CPI x 106)
③MFLOPS:每秒百万次浮点运算次数
MFLOPS = 浮点运算次数 / (浮点运算时间 x 106)
3、 处理器的指令系统
1) 指令格式
MOV
操作码
AX,
BX
目标操作数
源操作数
2) 寻址方式(老师的复习提纲里只有以下几种寻址方式)
操作数
R4,#5 ;
R4,R3 ;
①立即数寻址:ADD
②寄存器寻址:ADD
③直接寻址(又称绝对寻址):ADD R1,(1001) ;
Mem(1001)
④寄存器间接寻址:ADD
⑤存储器间接寻址:ADD
reg(R4) <— reg(R4) + 5
reg(R4) <— reg(R4) + reg(R3)
reg(R1) < — reg(R1) +
R4,(R1) ; reg(R4) <— reg(R4) + Mem(reg(R1))
R1,@(R2) ; reg(R4) <— reg(R4) + Mem[Mem[reg(R2)]]
4、高速缓存 Cache
1)作用
内存的随度虽然很快,但还是和 CPU 不是一个数量级的,这样 CPU 的效率就浪费掉了。Cache
的速度虽然还是比不上 CPU 的速度,但比内存快很多,可以起到一个缓冲的作用。CPU 需要
的数据先是 Cache 从内存中取出,等到 CPU 要用的时候再传给 CPU。这样可以提高不少效率
3) Cache 映射方式
①全相联映射方式:主存的任意一块可以映像到 Cache 中任意一块
②直接相联映像方式:主存中一块只能映象到 Cache 的一个特定的块中
③组相联映射方式:是对全相联映象和直接映象的一种折中的处理方案。组间全相联映
象,组内直接映象。
3)替换方法
①随机法(RAND 法):随机地确定替换的存储块。
②先进先出法(FIFO 法):选择最先调入的那个块进行替换
③最近最少使用法(LRU 法):依据各块使用的情况 1,总是选择那个最近最少使用的块被替
换
4) 写通(WT)和写回(WB)的区别
①写通法是指 CPU 在执行写操作时,必须把数据同时写入 cache 和主存
②写回法是指 CPU 在执行写操作时,被写的数据只写入 cache,不写入主存。仅当需要
替换时,才把已经修改的 cache 块写回到主存中
③写通和写回的区别主要体现在执行写操作时数据是否同时写入主存
5) 影响命中率的因素
①CPU 在访问内存时,首先判断所要访问的内容是否在 cache 中,如果在,就称为“命
中”,此时 CPU 直接从 cache 中调用该内容;否则,就称为“不命中”,CPU 只好去内存
中调用所需的子程序或指令了
②影响 cache 命中率的因素很多,如 cache 的容量,块的大小,映射方式,替换策略以
及程序执行中地址流的分布情况等。一般来说:
—cache 容量越大则命中率越高,当容量达到一定程度后,容量的增加命中率的改变并
不大
—cache 块容量加大,命中率也明显增加,但增加到一定值之后反而出现命中率下降的
现象
—直接映射方式命中率较低,全相联映射方式命中率比较高,在组相联方式中,组数分
得越多,则命中率下降
6) 程序对 Cache 命中率的影响
编写程序时,对同一个变量处理过程尽量放置在相近位置,这样可以提高 Cache 的命中率。
5、流水线
1) 作用:使用流水线可以在取下一条指令的同时译码和执行其它指令,从而加快执行速度
2) 吞吐率:流水线在特定的时间内可以处理的任务或输出数据结果的数量
3) 加速比:采用串行模式之后的工作速度和采用流水线模式后的工作速度的比值
4) 效率:处于工作状态的部件和总部件的比值
5) 影响加速比的因素
①多个任务在同一时间周期内争用同一个流水段
②数据依赖(比如,A 运算必须得到 B 运算的结果,但是,B 运算还没有开始,A 运算动
作就必须等待,直到 B 运算完成,两次运算不能同时执行)
6) 解决指令相关形式及解决方法
①增加运算部件的数量来使他们不必争用同一个部件
②用指令调度的方法重新安排指令或运算的顺序
7) 超级流水线:把每一个流水级分成多个子流水级,而在每一个子流水级中取出的仍只有
一条指令
8) 超线程、超流水线
超线程(HT, Hyper-Threading)是英特尔研发的一个技术,于 2002 年发布。英特尔的 HT
技术是在 CPU 内部仅复制必要的资源、让 CPU 模拟成两个线程;也就是一个实体核心,两个
逻辑线程,在一单位时间内处理两个线程的工作,模拟双核心、双线程运作。
超流水线:把每一个流水级分成多个子流水级,而在每一个子流水级中取出的仍只有一条指
令
6、MMU
1)作用:
它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责
虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权,多用户多进程操作系统
ARM 系列的 MMU 介绍
(ARM 出品的 CPU,MMU 作为一个协处理器存在。根据不同的系列有不同的搭配。需要
查询 DATASHEET 才可知道是否有 MMU。如果有的话,一定是编号为 15 的协处理器。可以提
供 32BIT 共 4G 的地址空间
ARM MMU 提供的分页机制有 1K/4K/64K 3 种模式。目前操作系统通常使用的是 4K 模式
涉及的寄存器,全部位于协处理器 15
ARM CPU 地址转换涉及三种地址:虚拟地址(VA,Virtual Address),变换后的虚拟地
址(MVA,Modified Virtual Address),物理地址(PA,Physical Address)
没有启动 MMU 时,CPU 核心、cache、MMU、外设等所有部件使用的都是物理地址。启动
MMU 后,CPU 核心对外发出的是虚拟地址 VA,VA 被转换为 MVA 供 cache、MMU 使用,并再次
被转换为 PA,最后使用 PA 读取实际设备
现代操作系统都提供了一种内存管理的抽象,即虚拟内存。进程使用虚拟内存中的地址,
由操作系统协助相关硬件,把它“转换”成真正的物理地址,这个“转换”是所有问题讨论
的关键。有了这样的抽象,一个程序,就可以使用比真实物理地址大得多的地址空间)
2)物理地址:
是指出现在 CPU 外部地址总线上的寻址物理内存的地址信号,是地址交换的最终结果地
址。如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。如果
没有启动分页机制,那么线性地址就直接成为物理地址了
3)虚拟地址:
①虚拟内存是指计算机呈现出要比实际拥有的内存大得多的内存量。因此它允许程序员
编制并运行比实际系统拥有的内存大得多的程序。这使得许多大型项目也能够在具有有限内
存资源的系统上实现
②整个内存的抽象描述:比如 32bitCPU,其虚拟内存空间为 4G,虚拟地址即这个 4G
空间中的地址。例如,一个 0x08000000 内存地址。CPU 启用了 MMU,CPU 核发出的地址将被
MMU 截获,从 CPU 到 MMU 的地址称为虚拟地址(Virtual Addres,简称 VA),而 MMU 将这个
地址翻译成另一个地址发到 CPU 芯片的外部地址引脚上,也就是将虚拟地址映射成物理地址
5) 逻辑地址
一个逻辑地址,是由一个段标识符加上一个指定段内相对地址的偏移量,表示为[段标
识符:段内偏移量] 是指由程序产生的与段相关的偏移地址部分
6) 地址转换的过程
虚拟地址到物理地址的转化方法是与体系结构相关的。一般来说有分段、分页两种方式。
以现在的 x86 CPU 为例,分段分页都是支持的。MMU 负责从虚拟地址到物理地址的转化。
逻辑地址是段标识+段内偏移量的形式,MMU 通过查询段表,可以把逻辑地址转化为线性
地址。如果 CPU 没有开启分页功能,那么线性地址就是物理地址;如果 CPU 开启了分页
功能,MMU 还需要查询页表来将线性地址转化为物理地址:逻辑地址——(段表)——>
线性地址——(页表)——>物理地址
不同的逻辑地址可以映射到同一个线性地址上;不同的线性地址也可以映射到用一个物
理地址上;所以是多对一的关系。另外,同一个线性地址,在发生换页以后,也可能被
重新装载到另一个物理地址上。所以这种多对一的映射关系也会随时间发生变化
7) 转换方式
页、段、段页
7、嵌入式处理器
1)特点(与通用处理器相比):①功耗低
2)种类:①MCU(传统单片机)
②稳定性好
③体积小
④成本低
—优点:应用广、开发资源丰富、使用方便、成本低
—缺点:性能低
—趋势:应用集成,结构可编程,混合器件,32 位
②X86(老师 ppt 上是这么写的)
—优点:软件移植方便,开发快捷,软件资源多,功能强大
—缺点:体积大,功耗高,实时性差
—趋势:多核,低功耗
③DSP
—优点:速度快,信号处理能力强
—缺点:IO 能力弱,开发平台使用不方便
—趋势:多核,SOC 化
④SOC
—优点:功能全面,系统设计方便,系统体积小,功耗低
—缺点:可裁剪性差
—趋势:面向应用,多核,动态可编程
8) 选择因素:①性能
②功耗
③体积
④成本
⑤开发工具
…...
二、ARM 处理器
要求:⑴ARM 处理器的特点
1、 特点
1) 结构
⑵ARM 处理器名称中字母的意思
⑶ARM 处理器不同模式下寄存器的使用
⑷ARM 处理器异常事件及响应过程
①寄存器的特点
—数量:最多有 18 个活动寄存器,其中 16 个数据寄存器,2 个状态寄存器
—使用:r0~r12:通用寄存器
r13:通常用作堆栈指针 sp,保存当前处理器模式堆栈的栈顶
r14:又称链接寄存器 lr,保存调用子程序的返回地址
r15:程序计数器 pc,其内容是处理器要取的下一条指令的地址
cpsr:当前程序状态寄存器
spsr:备份的程序状态寄存器
2) 功耗:比起 x86 来说,功耗低
2、 版本符号的意思
3、 处理器的状态模式
①用户模式(usr):正常程序执行模式
②
③系统模式(sys):运行特权操作系统任务
快速中断模式(fiq):支持高速数据传送或通道处理
中断模式(irq):用于通用的中断处理
管理模式(svc):操作系统保护模式
中止模式(abt):实现虚拟存储器或者存储器保护
未定义模式(und):支持硬件协处理器的软件仿真
异
常
模
式
4、 协处理器的使用
协处理器对当前在流水线译码段的指令进行译码,并检查指令是否为协处理器指令。若当前
在译码段的指令是相关的协处理器指令,则协处理器试图执行这些指令,协处理器与主处理
器通过 CPA CPB 握手
三、ARM 指令集
要求:⑴掌握 ARM 和 THUMB 指令的差别
1. 指令格式
⑵掌握特殊指令的意思和使用方法
⑶掌握两个伪指令的使用
⑷掌握常用指令操作数的范围和执行结果