基于计算机组成原理(第2版)唐朔飞编著
第7章 指令系统
全部机器指令的集合称为机器的指令系统
指令由操作码和地址码两部分组成
操作码的长度可以是固定的,也可以是变化的。通常采用扩展操作码技术,使操作码的长度随地址数的减少而增加,不同地址数的指令可以具有不同长度的操作码,从而在满足需要的前提下,有效的缩短指令字长。
地址码:
(1)四地址指令
其中OP为操作码;A1为第一操作数地址;A2为第二操作数地址;A3为结果地址;A4为下一条指令的地址。
(2)三地址指令
(3)二地址指令
(4)一地址指令
(5)零地址指令
指令字长取决于操作码的长度、操作数地址的长度和操作数地址的个数。
机器中常见的操作数类型有地址、数字、字符、逻辑数据等。
通常计算机中的数据存放在存储器或寄存器中,而寄存器的位数便可反映机器字长。一般机器字长取字节的1、2、4、8倍,便于字符处理。
操作类型:
- 数据传送
- 算术逻辑操作
- 移位
- 转移
- 输入输出
- 其它
寻址方式
寻址方式分为指令寻址和数据寻址两大类
指令寻址分为顺序寻址和跳跃寻址
数据寻址:
-
立即寻址
-
直接寻址
EA=A
-
隐含寻址
-
间接寻址
EA=(A)
-
寄存器寻址
EA=Ri
其操作数在由Ri所指的寄存器内。由于操作数不在主存中,故寄存器寻址在指令执行阶段无须访存,减少了执行时间。由于地址字段只需指明寄存器编号(计算机中寄存器数有限),故指令字较短,节省了存储空间。因此在计算机中得到广泛应用。 -
寄存器间接寻址
EA=(Ri)
-
基址寻址
EA=A+(BR)
-
变址寻址
EA=A+(IX)
-
相对寻址
EA=(PC)+A
-
堆栈寻址
RISC 精简指令集计算机
CISC 复杂指令集计算机
第8章 CPU的结构和功能
CPU实质包括运算器和控制器两大部分
控制器的基本功能为:取指令、分析指令、执行指令
CPU必须具有控制程序的顺序执行(指令控制),产生完成每条指令所需的控制命令(操作控制),对各种操作加以时间上的控制(时间控制),对数据进行算术运算和逻辑运算(数据加工)以及处理中断等功能。
CPU中寄存器大之可分两类,一类属于用户可见寄存器,用户可对这类寄存器编程,以及通过优化使CPU因使用这类寄存器而减少对主存的访问次数;另一类属于控制和状态寄存器,用户不可对这类寄存器编程。
- 用户可见的寄存器:
(1)通用寄存器
(2)数据寄存器
(3)地址寄存器
(4)条件码寄存器 - 控制和状态寄存器
①MAR:存储器地址寄存器
②MDR:存储器数据寄存器
③PC:程序计数器,存放现行指令的地址
④IR:指令寄存器,存放当前欲执行的指令
控制单元CU是提供完成计算机全部指令操作的微操作命令序列部件。
CPU每取出并执行一条指令所需的全部时间称为指令周期。
五级流水线:取指(IF)、译码(ID)、执行(EX)、访存(MEM)、写回(WB)
相关:
- 结构相关
指令在重叠执行的过程中,不同指令争用同一功能部件产生资源冲突 - 数据相关
流水线中的各条指令因重叠操作,可能改变对操作数的读写的访问顺序
数据相关冲突可分为写后读相关、读后写相关和写后写相关 - 控制相关
控制相关主要由转移指令引起。
流水线
性能通常用吞吐率、加速比和效率3项指标来衡量。
- 吞吐率
最大吞吐率:Tpmax=1△tT_pmax=\frac{1}{△t}Tp?max=△t1?
实际吞吐率:Tp=Tpmax1+(m?1)/nT_p=\frac{T_pmax}{1+(m-1)/n}Tp?=1+(m?1)/nTp?max?
仅当n>>m时,才会有TpT_pTp?≈TpmaxT_pmaxTp?max - 加速比
Sp=m1+(m?1)/nS_p=\frac{m}{1+(m-1)/n}Sp?=1+(m?1)/nm?
当流水线各段时间相等时,其最大加速比等于流水线的段数 - 效率
E=Spm=Tp△tE=\frac{S_p}{m}=T_p△tE=mSp??=Tp?△t
中断
引起中断的各种因素:
- 人为设置的中断
- 程序性事故
- 硬件故障
- I/O设备
- 外部事件
中断服务程序入口地址的寻找:硬件向量法和软件查询法
中断隐指令:
CPU响应中断后即进入中断周期。在中断周期内,CPU要自动完成一系列操作:
(1)保护程序断点
(2)寻找中断服务程序的入口地址
(3)关中断
上述操作都是在中断周期内由一条中断隐指令完成的。所谓中断隐指令,即在机器指令系统中没有的指令,它是CPU在中断周期内由硬件自动完成的一条指令。