计算机组成原理第八章
3. 影响指令流水效率加倍的因素
(1) 执行时间 > 取指时间 取指令 部件 指令部件 缓冲区 执行指令 部件
8.3
(2) 条件转移指令 对指令流水的影响 必须等 上条 指令执行结束,才能确定 下条 指令的地址
造成时间损失
猜测法
解决办法 ?
4. 指令的六级流水
t 1
指令 1 指令 2 指令 3 指令 4 FI
第八章 CPU 的结构和功能
8.1 CPU 的结构
8.2 指令周期 8.3 指令流水 8.4 中断系统
8.1 CPU 的结构
一、 CPU 的功能
1. 控制器的功能
取指令
分析指令 执行指令,发出各种操作命令 控制程序输入及结果的输出 总线管理 处理异常情况和特殊请求 2. 运算器的功能 实现算术运算和逻辑运算
8.3
6 7 8 9 10 11 12 13 14
2
DI FI
3
CO DI FI
4
FO CO DI FI
5
EI WO FO EI WO CO DI FO EI WO EI WO CO FO
指令 5
指令 6 指令 7 指令 8
FI
DI
FI
CO
DI FI
FO
DI FI
EI
CO DI
WO
EI FO CO WO EI WO FO EI WO
1
INT
二、 指令周期的数据流
1. 取指周期数据流
地 址 总 线 数 据 总 线 控 制 总 线
8.2
CPU
PC
MAR 存储器 CU
+1 IR
MDR
2. 间址周期数据流
地 址 总 线 数 据 总 线 控 制 总 线
8.2
CPU
PC
MAR
存储器
CU
IR
MDR
3. 执行周期数据流
不同指令的执行周期数据流不同
8.1
操作控制
时间控制 数据加工 处理中断
CPU
ALU
中断 系统
寄存器
控 制 总 线 数 据 总 线 地 址 总 线
CU
CPU的基本组成
(1)中央处理器CPU=运算器+控制器 (2)运算器 – ALU – 累加器 – 暂存器
(3)控制器 控制器组成:程序计数器、指令寄存器、数据缓冲器、地 址寄存器、通用寄存器、状态寄存器、时序发生器、指令译 码器、总线(数据通路) 程序计数器PC(Programming Counter) 用来存放正在执行的指令的地址或接着将要执行的下一 条指令的地址。 顺序执行时,每执行一条指令,PC的值应加1 要改变程序执行顺序的情况时,一般由转移类指令将转 移目标地址送往PC ,可实现程序的转移。
⑤ OC送出控制信号,将DR中的数据10打入到目标寄存器R0,R0的内容由 ③ OC送出控制信号,打开ALU输出三态门,将ALU输出送到数据总线DBUS上。 ① 操作控制器(OC)送出控制信号到通用寄存器,选择R1(10)作源寄存器, ② OC送出控制信号到ALU,指定ALU做传送操作; 00变为10。至此,MOV指令执行结束。 注意,任何时候DBUS上只能有一个数据。 ④ OC送出控制信号,将DBUS上的数据打入到数据缓冲寄存器DR(10); 5.2.2MOV指令的指令周期-执行 选择R0作目标寄存器;
– 机器周期通常又称CPU周期,
通常把一条指令周期划分为若干个机器周期,每个机器周期完 成一个基本操作。 主存的工作周期(存取周期)为基础来规定CPU周期,比如,可以 用CPU读取一个指令字的最短时间来规定CPU周期 不同的指令,可能包含不同数目的机器周期。 一个机器周期中,包含若干个机器周期(节拍脉冲或T脉冲)。
2DIBiblioteka FI3CO DI FI
4
FO CO DI FI
5
6
7
8
EI WO FO EI WO CO FO EI WO DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO
2 LDA 4 # 0 5 3
7
8
9
10
11
12 13
14
LDX
指令 2
指令 3 指令 4 指令 5 指令 6 指令 7
#0
CO
BNE 指令必须等
EI
M
DI
FI
ADD
DI
CO FO
X, D
FO
EI
WO CPX
指令的结果
INX DI CO FO EI WO FI 才能判断出 DI CO FO CPX FI # N
– 时钟周期 在一个机器周期内,要完成若干个微操作。这些 微操作有的可以同时执行,有的需要按先后次序 串行执行。因而需要把一个机器周期分为若干个 相等的时间段,每一个时间段称为一个节拍。节 拍常用具有一定宽度的电位信号表示,称之为节 拍电位。 节拍的宽度取决于CPU完成一次基本的微操作的 时间,如:ALU完成一次正确的运算,寄存器间 的一次数据传送等。
2. 每条指令的指令周期不同
取指周期 指令周期
8.2
NOP
取指周期
执行阶段
指令周期
ADD mem
取指周期
执行周期 指令周期
MUL mem
3. 具有间接寻址的指令周期
取指周期
间址周期 指令周期
8.2
执行周期
4. 带有中断周期的指令周期
取指周期 间址周期 执行周期 中断周期
指令周期
5. 指令周期流程
(2) 状态寄存器
状态寄存器 PSW 寄存器 存放条件码 存放程序状态字
3. 举例
Z8000
8086
MC 68000
四、 控制单元 CU 和中断系统
8.1
1. CU 产生全部指令的微操作命令序列
组合逻辑设计 微程序设计 硬连线逻辑
参见 第四篇
存储逻辑
参见 8.4
参见 第六章
2. 中断系统
五、ALU
软件实现 硬件实现
并行性(Parrelism)概念
问题中具有可以同时进行运算或操作的特性 例:在相同时延的条件下,用n位运算器进行n 位并行运算速度几乎是一位运算器进行n位串行 运算的n倍(狭义)
(广义)含义
– 只要在同一时刻(同时性)或在同一时间
间隔内(并发性)完成两种或两种以上性 质相同或不同的工作,他们在时间上相互 重叠,都体现了并行性
LAD指令的指令周期
取指周期 执行周期
LAD指令的指令周期
ADD指令的指令周期
ADD指令的指令周期
8.3 指 令 流 水
一、如何提高机器速度
1. 提高访存速度
高速芯片 Cache 多体并行
2. 提高 I/O 和主机之间的传送速度 中断 DMA 通道 多总线 I/O 处理机
3. 提高运算器速度
指令控制
操作控制
时间控制
处理中断
数据加工
– 指令控制(程序的顺序控制) – 操作控制(一条指令有若干操作信号实现) – 时间控制(指令各个操作实施时间的定时) – 数据加工(算术运算和逻辑运算)
二、CPU 结构框图
1. CPU 与系统总线
指令控制 PC IR CU 时序电路 ALU 寄存器 中断系统
取指周期 是 间址周期
8.2
有间址吗? 否 执行周期
有中断吗? 否
是
中断周期
6. CPU 工作周期的标志
CPU 访存有 4 种性质
取 指令
取 地址 取 操作数 存 程序断点 FE
D CLK
8.2
取指周期
间址周期 执行周期 中断周期 IND
D
CPU 的 4个工作周期
EX
D
INT
D
1
FE
1
IND
1
EX
三、指令流水原理
1. 指令的串行执行
取指令 1 执行指令 1 取指令 2 执行指令 2
8.3
取指令 3 执行指令 3 …
取指令 执行指令
取指令部件
完成
总有一个部件 空闲
执行指令部件 完成
2. 指令的二级流水
取指令 1 执行指令 1
取指令 2 执行指令 2
取指令 3 执行指令 3
指令预取 若 取指 和 执行 阶段时间上 完全重叠 指令周期 减半 速度提高 1 倍
BNE
DIV STA
M FI
#N ANS
DI FI
CO DI FI
是转移 还是顺序执行
FI DI
FI
指令15
指令16
CO
DI
FO
CO
EI
FO
WO
EI WO
转移损失
(2) 数据相关
会出现 数据相关
如: ADD R1,R2
8.3
几条相近的指令间,共用 同一存储单元 或 同一寄存器 时,
高速芯片 改进算法 快速进位链
• 提高整机处理能力
高速器件 改进系统结构 ,开发系统的并行性
二、系统的并行性
1. 并行的概念
8.3
并发 两个或两个以上事件在 同一时间段 发生
并行
同时 两个或两个以上事件在 同一时刻 发生 时间上互相重叠 2. 并行性的等级
过程级(程序、进程) 指令级(指令之间)
粗粒度 细粒度
8.2
4 . 中断周期数据流
CPU 地 址 总 线 数 据 总 线 控 制 总 线
PC