指令系统
指令格式
指令的基本格式:
操作码 | 地址码 |
---|
按长度对指令进行分类
- 定长指令字结构:所有指令长度相同,简化硬件设计。
- 单字长指令:指令长度等于机器字长
- 双字长指令:指令长度等于两倍机器字长
- 半字长指令:长度等于半个机器字长 - 变长指令字结构:指令长度不同
按操作数地址码数目分类
- 零地址指令(OP):只有操作码OP,用于空操作、停机、关中断指令
- 一地址指令(OP,A1):用于加一、减一、求反、求补
- 二地址指令 (OP,A1,A2) :算数、逻辑运算
- 三地址指令(OP,A1,A2,A3):算数、逻辑运算
- 四地址指令(OP,A1,A2,A3,A4):算数、逻辑运算
扩展操作码指令格式
【注意事项】
(1)短码不能是长码的前缀;
(2)指令操作码不能重复。
指令寻址
- 顺序寻址 :程序计数器PC加1,生成指向下一条指令的地址。
- 跳跃寻址:转移类指令实现,跳跃的结果是当前指令修改PC值
常用寻址方式 (EA指有效地址,A指形式地址,(A)表示取出A地址存放的数据)
隐含寻址 | 立即寻址 | 直接寻址 | 间接寻址 | 寄存器寻址 | 基址寻址 | 变址寻址 | 相对寻址 |
---|---|---|---|---|---|---|---|
指令中隐含操作数地址 | A | EA=A | EA=(A) | EA=Ri | EA=(BR)+A | EA=(IX)+A | EA=(PC)+A |
不访存 | 不访存 | 访存一次 | 访存多次 | 不访存 | 用于多道程序设计 | 扩大寻址范围,用于处理数组问题 | 用于转移指令 |
数据寻址:表示一个操作数的地址,结构为操作码+寻址特征+形式地址A
CISC和RISC的概念
CISC | RIS |
---|---|
复杂指令系统计算机 | 精简指令系统计算机 |
X86架构 | ARM、MIPS架构 |
复杂庞大,指令数目大于200条 | 精简简单,指令数目小于100条 |
指令长度不固定 | 指令长度为定长 |
指令执行时间相差较大 | 绝大多数在一个周期内完成 |
通用寄存器数量较少 | 数量很多 |
控制方式为微程序控制 | 组合逻辑控制 |
可以实现指令流实现 | 必须实现指令流水线 |
CPU
CPU的功能和基本结构
CPU的组成
CPU由控制器(取指令、分析指令、执行指令)和运算器(数据加工)组成。
CPU的功能包括:指令控制、操作控制、时间控制、数据加工和中断处理。
CPU的基本结构
- 运算器
- 算术逻辑单元ALU
- 累加器ACC
- 暂存寄存器
- 通用寄存器
- 程序状态字寄存器PSW
- 计数器 - 控制器
- 指令寄存器PC
- 程序计数器IR
- 指令译码器
- 存储器地址寄存器MAR、存储器数据寄存器MDR
- 时序系统
- 微操作信号发生器
指令执行过程
指令周期:CPU从主存每取出一条指令并完成这条指令所需的时间。
时钟周期——>机器周期——>指令周期
指令周期的阶段分为:取指、间址(取出有效地址)、执行(取出操作数)、中断(保存程序断点)
指令周期的各数据流
(1)取指周期数据
(2)间址周期数据流
(3)执行周期:不同的指令,执行过程不同
(4)中断周期数据流
- CU控制将SP减一,SP(指示栈顶地址)—>MAR—>地址总线—>主存
- CU发出写信号—>控制总线—>主存
- PC—>MDR—>数据总线—>主存(存入数据断点)
- CU—>PC
指令执行方案
单指令周期(串行,指令周期取决于最长的指令执行时间)、多指令周期(串行)、流水线方案(并行)
数据通路
数据通路的基本结构:
(1)CPU内部单总线:所有寄存器输入输出连接在同一条公共通路上,存在冲突现象
(2)CPU内部三总线:连接在多条数据通路上
(3)专用数据通路:专线专用,性能高硬件量大
数据通路的数据传送
寄存器之间数据传送和主存与CPU之间的数据传送都是通过CPU内部总线
控制器的功能和工作原理
根据产生微操作信号的方式不同,可以分为硬布线控制器和微程序控制器。
硬布线控制器: 由复杂逻辑组合门电路和一些触发器构成
控制单元CU控制一条指令执行的过程实际上就是执行一个确定次序的微操作序列的过程。
硬布线控制器的设计步骤:
(1)列出微操作命令的时间表;
(2)对微操作信号进行综合;
(3)画出微操作命令逻辑图。
微程序控制器
存储逻辑实现,把微操作信号代码化,机器指令转化为微程序,信号由微指令产生。
相关概念(易混):
(1)微命令:控制部件和执行部件发出的控制命令称为微命令。
(2)微操作:执行部件接受微命令后执行的操作成为微操作。
(3)微指令:微命令的组合称为微指令。
(4)微程序:微指令序列,一条机器指令是由许多微指令组成的序列实现的。
微命令是为微操作的控制信号,微操作是微命令的执行过程。
微程序控制器的工作过程:
微地址形成方式:
(1)微指令的下一地址字段给出;
(2)机器指令的操作码经过微地址形成部件生成。
微指令的编码方式:
(1)直接编码法:无需译码,速度快,但占用内存大。
(2)字段直接编码法:缩短指令字长,互斥的指令放在相同段内,相容指令放在不同字段 (某字段为3时,只能表示7种互斥的微指令,000表示不操作)。
(3)字段间接编码法:进一步缩短指令字长。
微指令格式:水平微指令、垂直微指令和混合型微指令。
注意:指令系统中由n种机器指令,则控制存储器(位于CPU中)的微程序个数是n+1个(其中1表示公共的取指微程序)
硬布线与微程序的区别
硬布线控制器 | 微程序控制器 |
---|---|
速度快,速度取决于电路延迟 | 速度慢,每次指令都要从控制存储器中取一次 |
不够灵活,一旦完成不可更改 | 灵活,可维护性好 |
用于RISC | 用于CISC |
指令流水线
概念: 将一个重复的过程分解成若干子过程,每个子过程可以与其他子过程并行运行,极大提高计算机的运算速度。
一条指令可以划分为取指、分析和执行三个阶段,多条指令的处理方式对比如下:
顺序执行方式 | 一次重叠执行 | 二次重叠执行 |
---|---|---|
一条一条执行 | 当前指令执行阶段与下一指令的取指阶段并行 | 当前指令分析阶段与下一指令取值阶段并行 |
T=3nt | T=1+2nt | T=2+nt |
流水线方式的特点:
(1)一个任务分解成多个子任务;
(2)流水线各功能段时间尽可能相同,否则会堵塞、断流。
流水线的分类
区分单功能流水线和静态流水线:
单功能流水线是整个流水线完成单一功能,
静态流水线是指在同一时间,流水线各段只能按照同一种功能的连接方式工作。
影响流水线的因素
(1)结构相关:同一时刻争抢统一资源。
(2)数据相关(数据冒险):一个指令的执行必须等待前一个指令的结果,影响最严重。
解决方法有硬件阻塞和软件插入NOP指令,如调整指令顺序或数据旁路。
(3)控制相关(控制冲突)
流水线的性能指标
吞吐量 | 加速比 | 流水线效率 |
---|---|---|
单位时间内流水线完成的任务数 | 不使用流水线和使用流水线的时间比值 | 如下图:黑色部分/红色部分 |
TP=n/Tk | S=T0/Tk | E=有效面积/总面积 |
超标量流水线
(1)超标量流水线:每个时钟周期可以并发多条独立指令;
(2)超流水线技术:一个时钟周期内再优化;
(3)超长指令字:挖掘指令之间的并行性,将并行指令组成超长指令字。