北航计算机组成原理讲义_5.cpu与微程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.2 模型机的指令系统
双操作数指令格式
6
Opcode
1 1 2
d M W O D
3
REG
3
R/M
8
Data_Low
8
Data-High
8
Disp_Low
8
Disp_High
RR型或RS型,必有一个操作数在寄存器中(寄存器直接寻址) 长度2~6个字节(前2个字节必须) Opcode:操作码(6位) d: 方向字段(1位)。在第二个字节中,REG确定一个操作数(寄存器直 接寻址),MOD和R/M确定零一个操作数的寻址方式。方向字段d表明 REG确定的是源操作数还是目的操作数。 d=1, REG确定目的操作数,MOD+R/M确定源操作数 d=0, REG确定源操作数,MOD+R/M确定目的操作数 W:字/字节字段(1位):操作数是字节(8位)还是字(16位) W=1,字(16位) W=0,字节(8位)
模型机总体结构 指令流程与组合逻辑控制器 微程序原理 微程序控制器设计
2.1 控制方式与时序系统
控制方式
同步控制方式 异步控制方式
时序系统
脉冲时序信号:主时钟脉冲
节拍信号:T1,T2,T3,T4 机器周期信号:M1,M2,M3,M4
指令周期
指令周期、机器周期、节拍周期
2.1 控制方式与时序系统
时间节拍 完成功能 需要的微操作信号
结构图
需要的控制脉冲
M1.T1
取 指 周 期 M1.T2 M1.T3
指令地址送MAR
Read Memory
IB PC
AB MAR, RD, W/B
CPMAR
指令送MDR
调整PC M1.T4 MDR(指令)送IR BX送暂存器C 暂存器C送AX 无操作 无操作
W=0 AL CL DL BL AH CH DH BH
1.2 模型机的指令系统
双操作数指令格式
6
Opcode
1 1 2
d M W O D
3
REG
3
R/M
8
Data_Low
8
Data-High
8
Disp_Low
8
Disp_High
1.2 模型机的指令系统
单操作数指令格式
7
Opcode
1 2
W M O D
返回
微操作信号 MAR -> AB MDR->DB W/B DB->MDR RWW DR/ MEM B
MAR
CPMAR
MDR
CPMDR MDR->IB
C
CPC C->IB
时 序
控制 部件
Internal Bus 译码电路
GR -> IB D->IB SAL SAR RDGR WRGR W/B CPZ Z -> IB PC->IB
结构图
完成功能 PC送MAR
从存储器读取1000H
1000H送MDR
需要的微操作信号 IB PC
AB MAR, RD, W/B
需要的控制脉冲 CPMAR
M2.T2
M2.T3
MDR DB
CPMDR
调整PC
M2.T4 MDR(1000H)送D (BX)+1000H 送 Z 源操作数地址 Z 送MAR 读取源操作数 源操作数送MDR
CPU工作机理
与微程序设计
My New Email:xudliu@rt-info.com.cn
本讲内容
模型机总体结构 指令流程与组合逻辑控制器 微程序原理 微程序控制器设计
模型机总体结构 指令流程与组合逻辑控制器 微程序原理 微程序控制器设计
1.1 模型机结构
Control Bus Data Bus Address Bus
2.2 指令流程与微操作时间表
时间节拍 完成功能 需要的微操作信号
结构图
需要的控制脉冲
M2.T1
取 变 址 值 M2.T2
PC送MAR
从存储器读取2000H
IB PC
AB MAR, RD, W/B
CPMAR
2000H送MDR M2.T3
调整PC
MDR DB
PC+1
CPMDR
CPPC
BX送暂存器D
读取目的操作数
目的操作数送MDR 目的操作数送D
MDR DB IB MDR
CPMDR CPD
2.2 指令流程与微操作时间表
时间节拍
取 立 即 数 进 行 加 法
结构图
完成功能
需要的微操作信号
需要的控制脉冲
M4.T1
M4.T2 M4.T3
PC送MAR
从存储器读取1000H
IB PC
AB MAR, RD, W/B
1.2 模型机的指令系统
双操作数指令格式
6
Opcode
1 1 2
d M W O D
3
REG
3
R/M
8
Data_Low
8
Data-High
8
Disp_Low
8
Disp_High
寄存器编码表
REG 000 001 010 011 100 101 110 111
W=1 AX CX DX BX SP BP SI DI
3
OP
3
R/M
8
Disp_Low
8
Disp_High
指令分类
传送指令:MOV Dest,Src
算术指令:ADD Dest, Src SUB Dest,Src AND Dest, Src OR Dest, Src XOR Dest, Src 单操作数指令: INC Dest, DEC Dest, NEG Dest, NOT Dest 移位指令:SAL Dest,1 ; SAR Dest, 1 程序控制指令:转移指令,转子指令等
AB MAR, RD, W/B
需要的控制脉冲 CPMAR
MDR DB PC+1 IB MDR
CPMDR CPPC CPIR
M1.T4
MDR(指令)送IR
2.2 指令流程与微操作时间表
MOV AX,BX 指令执行的微操作流程
指令长度:16位,一次可读取完毕(指令代码:89DBH) 读取指令周期:机器周期M1内完成 执行周期:机器周期M2内完成
MDR DB
PC+1 IB MDR IB GR, RDGR, W/B IB C, WRGR, W/B
CPMDR
CPPC CPIR CPC, BX地址 AX地址
执 行 周 期
M2.T1 M2.T2 M2.T3 M2.T4
2.2 指令流程与微操作时间表
MOV AX,1000H[BX] 指令执行的微操作流程
取指周期
指令的核心部分占16Bits,机器字长16Bits,每一次从存储器能读取16Bits 指令编码长度有2个字节(16位),4个字节(32位),甚至6个字节,但指 令核心部分长度为16位。
取指周期特指读取指令核心部分(16Bits)的周期,所以在这种前题下, 所有指令的取指周期是完全一样的。
CPMAR
1000H送MDR
调整PC M2.T4 MDR(1000H)送D (BX)+1000H 送 Z 目的操作数地址送MAR AX送MDR 写存储器
MDR DB
PC+1 IB MDR
IB GR, RDGR, W/B, ADD
CPMDR
CPPC CPD BX地址, CPZ CPMAR AX地址,CPMDR
执 行 周 期
M3.T1 M3.T2 M3.T3 M3.T4
IB Z
IBGR,GRRD,W/B
ABMAR, DB MDR WR, W/B
2.2 指令流程与微操作时间表
ADD 2000H[BX],1000H 指令执行的微操作流程
指令长度:48位,分三次读取(指令代码:818700200010H) 读取指令周期:机器周期M1内完成(读第一个16位) 读变址值周期:机器周期M2内完成
2.2 指令流程与微操作时间表
取指周期的微操作流程
取指流程需要4个节拍
结构图
每条指令执行过程的第一个机器周期M1都是取指周期(取到指令核心部分)
时间节拍 M1.T1 M1.T2 M1.T3
完成功能 指令地址送MAR Read Memory 指令送MDR 调整PC
需要的微操作信号 IB PC
CPMAR
1000H送MDR
指令长度:32位,分两次读取(指令代码:8B870010H) 读取指令周期:机器周期M1内完成(读第一个16位) 读变址值周期:机器周期M2内完成
结构图
取操作数周期:机器周期M3内完成 执行周期:机器周期M4内完成
时间节拍
M1.T1
完成功能
指令地址送MAR Read Memory 指令送MDR
结构图
取操作数周期:机器周期M3内完成 取立即数,完成加法:机器周期M4内完成 执行周期:机器周期M5内完成
时间节拍 M1.T1 取 指 周 期 M1.T2 M1.T3 调整PC M1.T4 MDR(指令)送IR PC+1 IB MDR CPPC CPIR 完成功能 指令地址送MAR Read Memory 指令送MDR 需要的微操作信号 IB PC AB MAR, RD, W/B MDR DB CPMDR 需要的控制脉冲 CPMAR
2.2 指令流程与微操作时间表
取指周期的微操作流程
MOV指令的微操作流程 单操作数指令的微操作流程 双操作数指令的微操作流程 其他指令的微操作流程 微指令的综合
2.2 指令流程与微操作时间表
指令的执行过程
取指:从存取器读取当前指令送到指令寄存器(IR),要根据指令编码的 长度才能确定读取指令的详细流程。 取数:计算操作数地址,读取操作数,要根据操作数的来源与寻址方式才 能确定具体的操作过程。 执行:执行并送结果。
需要的微操作信号
IB PC AB MAR, RD, W/B MDR DB PC+1
需要的控制脉冲
CPMAR
取 指 周 期
M1.T2 M1.T3
CPMDR CPPC
调整PC
M1.T4
MDR(指令)送IR
IB MDR
CPIR
2.2 指令流程与微操作时间表
时间节拍 M2.T1
取 变 址 值
M2.T4 M3.T1 取 数 周 期
MDR(2000H)送ALU 加法结果送Z 目的操作数地址 Z 送MAR 地址暂存在C
IB GR, RDGR
IB MDR, ADD, W/B IB Z
AB MAR, RD, W/B
CPD, BX地址
CPZ CPMAR, CPC
M3.T2
M3.T3 M3.T4
PC+1
IB MDR
IB GR, RDGR, W/B, ADD
CPPC
CPD BX地址, CPZ CPMAR
取 数 周 期
M3.T1 M3.T2 M3.T3 M3.T4
IB Z
AB MAR, RD, W/B
MDR DB
CPMDR
2.2 指令流程与微操作时间表
结构图
时间节拍 M4.T1 执 行 周 期 M4.T2 M4.T3 M4.T4
AH BH CH DH SP BP SI DI
AL BL CL DL
D
A
CPD
PC
B
CPPC
ADD SUB B-1
ALU
PC+1 CLPC
Z FR
FR->IB
IR
CPቤተ መጻሕፍቲ ባይዱR
GR Add
1.1 模型机结构
简化的8086/8088结构
16位系统 通用寄存器部件 主存地址寄存器MAR 主存数据寄存器MDR 暂存器C,D,Z 程序计数器PC 指令寄存器IR ALU 存储器部件 控制部件 数据通路与控制信号 微操作控制信号与控制脉冲
结构图
取操作数周期:机器周期M3内完成 执行周期:机器周期M4内完成
时间节拍
M1.T1
完成功能
指令地址送MAR Read Memory 指令送MDR
需要的微操作信号
IB PC AB MAR, RD, W/B MDR DB PC+1
需要的控制脉冲
CPMAR
取 指 周 期
M1.T2 M1.T3
完成功能 源操作数送AX
需要的微操作信号
IB MDR, WRGR, W/B
需要的控制脉冲 AX的地址
2.2 指令流程与微操作时间表
MOV 1000H[BX], AX 指令执行的微操作流程
指令长度:32位,分两次读取(指令代码:89870010H) 读取指令周期:机器周期M1内完成(读第一个16位) 读变址值周期:机器周期M2内完成
CPMDR CPPC
调整PC
M1.T4
MDR(指令)送IR
IB MDR
CPIR
2.2 指令流程与微操作时间表
时间节拍 完成功能 需要的微操作信号
结构图
需要的控制脉冲
M2.T1
取 变 址 值 M2.T2 M2.T3
PC送MAR
从存储器读取1000H
IB PC
AB MAR, RD, W/B
时序系统
主时钟 节拍T1 节拍T2 节拍T3 节拍T4 机器周期M1 机器周期M2 机器周期M3 指令周期
2.1 控制方式与时序系统
时序部件
主振 机器周期 触发器
M1 M2 M3 M4
主时钟发生器
CLK
节拍发生器
T1 T2 T3 T4
T4
T3
T2
T1
Q
0
Q D
Q
0
Q D
Q
0
Q D
Q
1
Q D
CLK
相关文档
最新文档