第四节 模型机设计
设计步骤:
拟定指令系统
确定总体结构
安排时序
拟定指令流程和微命令序列.
形成控制逻辑
4.4.1 指令系统
1.指令格式
格式,寻址方式,指令类型设置
寄存器,ALU,数据通路设置
画流程图(寄存器传送级)
列操作时间表
组:列逻辑式,形成逻辑电路
微:按微指令格式编写微程序
指令字长16位,采用寄存器型寻址,指令中给出寄存器号.
(主存容量为64K×16位)
双操作数指令格式:
4 6 3 3
操作码 寄存器号 寻址方式 寄存器号 寻址方式
源地址
目的地址
单操作数指令格式:
操作码 (可扩展) 寄存器号 寻址方式
4 3 3 3 3
目的地址
转移指令格式:
15 12 11 9 8 6 5 4 3 2 1 0
转移地址
转移条件
操作码 寄存器号 寻址方式 方式 N′Z′V′C′
CPU可编程访问的寄存器:
寻址方式 编码 助记符 定义
2.寻址方式
寄存器寻址
通用寄存器R,指令计数器PC,堆栈指针SP,程序状态字PSW
000
R
(R)为操作数
寄存器间址
001
(R)
(R)为操作数地址
自减型寄存器间址
010
-(R)
-(SP)
(R)-1为操作数地址
(SP)-1为栈顶地址
立即/自增型寄存器间址
011
(R)+
(R)为操作数地址,
访问后(R)+1
(SP)+
(SP)为栈顶地址,
出栈后(SP)+1
寻址方式 编码 助记符 定义
100
(R)为间接地址,
直接/自增型双间址
101
@(R)+
(PC)+
PC指向有效地址,
(R)+d为有效地址
(R)为操作数地址,
立即/自增型寄存器间址
011
(R)+
访问后(R)+1
(SP)+
(SP)为栈顶地址,
出栈后(SP)+1
(PC)为立即数地址,
取数后(PC)+1
访问后(R)+1
@(PC)+
访问后(PC)+1
变址
X(R)
X(PC)
(PC)+d为有效地址
跳步
110
SKP
跳过下条指令执行
操作码 助记符 含义
3.指令类型
用于数传,堆栈,I/O操作
0000
MOV
传送
0001
ADD
加
0101
EOR
异或
双操作数指令
0110
COM
求反
1011
SR
右移
单操作数指令
1100
JMP
转移
1100
RST
返回
1101
JSR
转子
0 0 0 0 0
5 4 3 2 1 0
转移地址
无条件转
JMP 寄 寻 方式 N′Z′V′C′
0 0 0 0 1
无进位转
(C=0)
0 0 0 1 0
无溢出转
(V=0)
0 0 1 0 0
数非零转
(Z=0)
0 1 0 0 0
数为正转
(N=0)
1 0 0 0 1
有进位转
(C=1)
1 0 0 1 0
有溢出转
(V=1)
1 0 1 0 0
数为零转
(Z=1)
1 1 0 0 0
数为负转
(N=1)
条件满足,转转移地址;条件不满足,顺序执行.
隐含约定:转子时返回地址压栈保存.
15 12 11 9 8 6 5 0
子程序入口
RST SP (SP)+
JSR 寄 寻 方式 N′Z′V′C′
5 4 3 2 1 0
4.4.2 CPU总体结构
1.寄存器设置
(1)可编程寄存器(16位)
通用寄存器:
R0(000),R1(001)
R2(010),R3(011)
允许中断(开中断)
(可扩展) I N Z V C
4 3 2 1 0
暂存器C
(2)非编程寄存器(16位)
堆栈指针:
SP(100)
指令计数器:
PC(111)
程序状态字:
PSW(101)
:暂存来自主存的源地址或源数据.
暂存器D
:暂存来自主存的目的地址或目的数.
指令寄存器IR
地址寄存器MAR
数据寄存器MBR
:存放现行指令.
实现CPU与主存的接口
SN74181 4片
SN74182 1片
2.算逻部件设置
ALU
选择数据来源
选择器A
选择器B
移位器
:实现直送,左移,右移,字节交换
3.数据通路结构
为了使数据传送控制简单,集中,采用以
ALU为中心的总线结构.
(1)组成
包括四个部分:
ALU部件,寄存器组,内总线,CPU与系统总
线的连接
(16位)
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
(2)特点
ALU为内部数据传送通路的中心;
寄存器采用
内总线采用单向数据总线(16位);
分立结构;
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
与系统总线
的连接通过
MAR,MBR实现.
MBR
输出
输出至DB
输出至ALU的B门
输入
从内总线输入
从DB输入
(打入)
(置入)
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
4.各类信息传送途径
M
(1)指令信息
置入
DB
IR
M
DB
IR
(2)地址信息
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
1)指令地址
2)指令地址加1
PC
PC
A
ALU
移位器
内总线
MAR
PC
打入
A
ALU
移
内
MAR
PC
A
ALU
移
内
PC
C0
C0
打入
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
3)转移地址
M
IR
寄存器寻址:
R0
R0
B
ALU
移位器
内总线
PC
R0
打入
B
ALU
移
内
PC
寄存器间址:
R0
打入
B
ALU
移
内
MAR
AB
M
DB
置入
MBR
B
MAR
MBR
MBR
移,
内
PC
ALU
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
IR
R0
R0
B
ALU
移位器
内总线
4)操作数地址
寄存器寻址:
R0
R1
寄存器间址:
R0
打入
B
ALU
移
内
MAR
MAR
R1
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
变址:
PC
A
ALU
移位器
内总线
MAR
R0
PC
A
ALU
移
内
MAR
AB
M
DB
移
内
C
PC
M
M
MBR
MBR
B
C
MBR
B
ALU
R0
R0
C
ALU
C
A
B
移
内
MAR
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
(3)数据信息
M
IR
R0
R0
B
ALU
移位器
内总线
1)R
R:
R0
打入
B
ALU
移
内
R1
DB
M
DB
MBR
B
MBR
MBR
移,
内
R2
ALU
R1
2)R
M:
R0
打入
B
ALU
内
MBR
3)M
R:
R2
M
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
M
IR
R0
R0
B
ALU
移位器
内总线
4)M
M:
M(源)
R0
MBR
MBR
MBR
DB
内
I/O
ALU
5)R
I/O:
C
打入
DB
MBR
内
C
ALU
(计算目的地址)
DB
M
C
ALU
内
MBR
(目的)
C
A
I/O
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
M
IR
R0
B
ALU
移位器
内总线
DB
MBR
MBR
DB
DMA方式:
I/O
6)I/O
R
打入
I/O
MBR
内
R0
ALU
I/O
7)I/O
M
M
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
5.微命令设置
(1)数据通路
操作:
ALU功能选择:
ALU输入选择:
输出移位选择:
结果分配:
R0
A,
R0
B,
S3S2S1S0,M,C0
不移,左移,
CPR0,CPC,CPMAR,
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
(2)访M,I/O
操作:
读 R
地址使能 EMAR
写 W
置入MBR SMBR,
1
MAR向AB送地址
0
00 MBR与DB断开,
MAR与AB断开
R=1读 W=1写
置入IR SIR
M
4.4.3 组合逻辑控制器设计
1.时序系统
(1)工作周期
取指周期FT
用于指令正常执行
设置6个触发器分别
作为各周期状态标志
源周期ST
目的周期DT
执行周期ET
中断周期IT
DMA周期DMAT
用于I/O传送控制
1 工作周期开始
0 工作周期结束
在整个指令周期中,任何时候必须,且只能有一
个工作周期状态标志为"1".
1)取指周期FT
从M取出指令并译码;
公操作
修改PC.
3)目的周期DT
4)执行周期ET
取指结束时,按操作码和寻址方式(R/非R寻址)
转相应工作周期.
按寻址方式(非R寻址)形成源地址,从M取出源操
作数,暂存于C.
2)源周期ST
按寻址方式(非R寻址)形成目的地址,或从M取出
目的操作数,暂存于D.
按操作码完成相应操作(传送,运算,取转移地址
送入PC,返回地址压栈保存);
后续指令地址送入MAR.
5)中断周期IT
关中断,保存断点和PSW,转服务程序入口.
由硬件完成
1)时钟周期时间:
IT指CPU响应中断请求后,到执行中断服务程序前.
6)DMA周期DMAT
一次从M读出,并经数据通路传送的操作;或
一次数据通路传送操作;或
一次向M写入的操作
DMAT指CPU响应DMA请求后,到传送完一次数据.
DMA控制器接管总线权,控制直传.
(2)时钟周期(节拍)T
1微秒
完成一步操作:
模型机以访存时间作为一步操作时间.
一个总线
周期等于一个时钟周期,可根据需要扩展.
由硬件完成
2)时钟周期数:
每个工作周期第一拍T=0,
每开始一个新节拍T计数,
工作周期结束时T清0.
一个工作周期中的时钟数可变.
用计数器T控制节拍数
每个时钟结束时设置一个脉冲.
(3)工作脉冲P
1 S
T
P
打入寄存器
进行时序转换
(周期状态设置/清除
时钟T计数/清除)
将计数值译码,可产生节拍电位.
2.控制流程(工作周期转换)
FT
双
单
转
SR
ST
DR
DT
ET
DMAT
DMA请求
中断请求
IT
SR
DR
Y
N
Y
N
3.指令流程图与操作时间表
(1)取指周期FT
拟定指令流程:
初始化时置入FT,
确定各工作周期中每拍完成的具体
操作(寄存器传送级).
列操作时间表:
列出每一步操作所需的微命令及产
生条件.
1)进入FT的方式和条件
FT
S
R
D
C
Q
Q
总清
1
程序正常运行时同步打入FT.
1 FT
CPFT
1 FT
=
ET(1 DMAT 1 IT)
DMAT(1 DMAT 1 IT)
+ IT
+
2)流程图
1 ST
FT0:
PC+1 PC
M IR
3)操作时间表
FT0:
电位型微命令
脉冲型微命令
M IR
EMAR,
R,
SIR
PC+1 PC
PC A,
A+1,
DM
CPPC
1 DT
1 ET
或
或
CPFT( P)
CPST( P)
CPDT( P)
CPET( P)
CPT ( P)
工作周期中,每拍结束时发CPT;工作周期结束时,
5个时序打入命令都发.
转换
4)时序关系
FT0:
EMAR
PC A
S3
DM
S2
S1
S0
M
C0
1 ST
CPPC
CPFT( P)
CPST( P)
CPDT( P)
CPET( P)
T+1
FT0:
1 FT
CPT ( P)
(2)传送指令
FT0:
PC+1 PC
M IR,
1)流程图
例1:
MOV R0,R1;
源数
ET0:
R0 R1
PC MAR
ET1:
例2:
MOV(R0),(R1);
FT0:
M IR,
PC+1 PC
ST0:
R0 MAR
ST1:
M MBR C
DT0:
R1 MAR
目的地址
ET0:
C MBR
ET1:
MBR M
ET2:
PC MAR
例3:
MOV X(R0),X(R1);
FT0:
M IR
PC+1 PC
形地
取源操作数,
暂存于C,
需5步.
PC+1 PC
ST0:
PC MAR
DT1:
M MBR C
DT0:
C MBR
源数
ET0:
C+R0 MAR
ET1:
MBR M
ET2:
PC MAR
PC+1 PC
例3:
MOV X(R0),X(R1);
FT0:
M IR
M MBR C
ST1:
ST2:
ST3:
ST4:
PC MAR
M MBR D
形地
PC+1 PC
DT2:
DT3:
D+R1 MAR
目的地址
取目的地址,
暂存于MAR,
需4步.
源数送存储器,
需3步.
FT0:
M IR
2)操作时间表
例:
MOV(SP)+,(R1);
SP MAR
M MBR C
PC+1 PC
CPPC
ST0:
SP+1 SP
EMAR
R
SMBR
MBR B
输出B
DM
CPC
SP A
A+1
DM
CPSP
EMAR
PC A
A+1
R
SIR
DM
1 ST
CPFT(P)
CPET(P)
CPT(P)
DM
CPMAR
输出A
SP A
T+1
CPT(P)
T+1
CPT(P)
ST1:
ST2:
1 DT
CPFT(P)
CPET(P)
CPT(P)
DT0:
R1 MAR
DM
CPMAR
输出A
R1 A
T+1
CPT(P)
1 ET
CPFT(P)
CPET(P)
ET0:
C MBR
C B
输出B
DM
CPMBR
CPT(P)
ET1:
MBR M
PC MAR
ET2:
EMAR
W
T+1
CPT(P)
DM
CPMAR
输出A
PC A
1 FT
CPFT(P)
CPET(P)
CPT(P)
DT0:
R1 MAR
DM
CPMAR
输出A
R1 A
T+1
CPT(P)
1 ET
CPFT(P)
CPET(P)
ET0:
C MBR
C B
输出B
DM
CPMBR
CPT(P)
(3)双操作数指令
取目的数,暂存于D.
例:
ADD (PC)+,X(R1);
FT0:
M IR,
PC+1 PC
立即数
ST0:
PC MAR
ST1:
M MBR C
ST2:
PC+1 PC
DT0:
PC MAR
DT1:
M MBR D
DT2:
PC+1 PC
形式地址
DT3:
D+R1 MAR
DT4:
M MBR D
目的数
ET0:
C+D MBR
ET1:
MBR M
ET2:
PC MAR
(4)单操作数指令
FT0:
M IR,
例:
COM -(R0);
DT0:
R0-1 R0
,MAR
DT1:
M MBR D
ET0:
ET1:
MBR M
ET2:
PC MAR
PC+1 PC
D MBR
(5)转移-返回指令
无条件转移
SKP
R
(R)
(R)+
按R指示从M取转移地址,修改R.
(SP)+
X(PC)
执行再下条指令.
从R取转移地址.
按R指示从M取转移地址.
从堆栈取返回地址,修改SP.
以PC内容为基准转移.
(RST)
FT0:
M IR,
例1:
JMP R0;
SP+1 SP
,MAR
M MBR PC
ET0:
ET1:
SP MAR
ET2:
R0 PC
PC+1 PC
无条件转子:
R
(R)
(R)+
(SP)+
(PC)+
入口在R中
例2:
RST (SP)+;
FT0:
M IR,
PC+1 PC
ET0:
,MAR
例3:
JMP X(PC);
FT0:
M IR,
PC+1 PC
ET0:
PC MAR
ET1:
M MBR C
位移量
ET2:
PC+C PC
,MAR
(5)转子指令
入口在M中
入口在堆栈中
SP-1 SP
MBR M
ST1:
PC MBR
归纳微命令,综合化简条件,用组合逻辑电路实现.
读令R=
在ST形成子程序入口;在ET保存返回地址,并转
子程序入口.
ST0:
,MAR
例:
JSR(R2);
FT0:
M IR,
PC+1 PC
ET0:
R2 MAR
ET1:
M MBR C
子程序入口
C PC
,MAR
返回地址压栈
ET2:
ET3:
4.控制逻辑
例:
FT0
+MOV(ST1+ST4+……)
CPPC =
FT0
+……
P
+MOV(ST2+DT2) X P
+……
4.4.4 微程序控制器设计
1.时序系统
P
微指令周期
微指令
打入 IR
二级时序:
控制数
据通路
操作
结果打
入目的
地,
读取后续
微指令
后续微
地址打
入 AR
2.微指令格式
按数据通路各段操作划分字段,同类操作中互斥
的微命令放同一字段.
(1)格式
数据通路操作
辅助操作
AI BI SM C0 S ZO EMAR R W ST SC
3 3 5 2 2 3 1 1 1 2 4
顺序控制
访存操作
(2)各字段功能
1)数据通路操作
AI:
A输入选择
000 无输入
001
Ri A
010
C A
011
D A
100
PC A
R0~R3,SP,PC
AI BI SM C0 S ZO EMAR R W ST SC
3 3 5 2 2 3 1 1 1 2 4
BI:
B输入选择
000 无输入
001
Ri B
010
C B
011
D B
100
MBR B
SM:
ALU功能选择
S3S2S1S0M
C0:
初始进位选择
S:
移位选择
ZO:
结果分配
001
CPRi
R0~R3,PSW
R0~R3,SP,PC,PSW
2)访存操作
EMAR,R,W
3)辅助操作
00 无操作
01 开中断
10 关中断
11 SIR
AI BI SM C0 S ZO EMAR R W ST SC
3 3 5 2 2 3 1 1 1 2 4
4)顺序控制
增量
断定
0000 顺序执行
9种
指明微地址形成方式
SC:
0001 无条件转移
0010 按操作码分支
0111 转微子程序
1000 返回微主程序
增量
断定
增量
3.微程序的编制
(1)编写顺序
按指令执行顺序编写:
取机器指令
SC=0000
功能转移
执行
按操作码编码顺序,逐级分类编写:
MOV指令,
双操作数指令,
单操作数指令,
转移指令
(2)实现分支
将同类断定依据所对应的微地址放在相应的微地址
形成表中,用SC字段选取.
顺序执行
现行微地址+1
SC=0001
无条件转
现行微指令给出转移微地址
SC=0111
转微子程序
现行微指令给出微子程序
入口
SC=1000
返回微主程序
从寄存器取返回微地址
微地址形成表:
SC=0010
按操作码分支(4路)
表内单元地址
SC=0011
(断定依据):
MOV
执行规定操作
后转取指入口
双
单元内容
(微地址)
单
JMP/JSR
03H
取源数,目的地
0CH
取源数,目的数
24H
取目的数
按J,PC分支
3FH
按操作码 DR分支(24路)进入执行
DR
MOV
06H
DR
MOV
0AH
双
单
3DH
SC=0100
SC=0110
1)取指微指令代真
从60H开始
按J,PC分支(4路)
40H
46H
顺序/转移地址 PC
SC=0101
按源寻址方式分支(7路)
4DH
5EH
按目的寻址方式分支
(3)微指令实例
AI BI SM C0 S ZO EMAR R W ST SC
3 3 5 2 2 3 1 1 1 2 4
M IR:
微地址00
000 000 00000 00 00 000 1 1 0 11 0000
AI BI SM C0 S ZO EMAR R W ST SC
3 3 5 2 2 3 1 1 1 2 4
00
微地址01
100 00010010 01 00 111 0 0 0 00 0000
PC+1 PC:
按操作码分支:
微地址02
000 00000000 00 00 000 0 0 0 00
0010
2)机器指令的微程序实现
例:MOV(R0),R1;按流程写出微地址
01
02
03
4C
4E
4F
04
60
05
0A
0B
08
09
00
本章小结
1,建立CPU整机概念
逻辑组成
工作机制
(1)逻辑组成
寄存器,ALU设置,数据通路结构
(2)工作机制
寄存器传送级:
微操作控制级:
各类指令的流程
微命令序列
指令的执行过程
(5.4.2)
(5.5.2)
拟定流程的关键:清楚了解数据通路结构
熟练掌握基本寻址方式
基本寻址方式(模型机)
寄存器寻址 :R 寄存器间址 :(R)
自减型寄存器间址 :–(R)
自增型寄存器间址 :(R)+
立即寻址 :(PC)+ 变址:X(R)
相对寻址 :X(PC)
–(SP) (用于入栈操作)
(SP)+ (用于出栈操作)
(5.4.1)
(1) 微命令的产生方式
2,有关的基本概念
组合逻辑控制方式:
基本思想 ,优缺点,应用场合
微程序控制方式:
基本思想 ,优缺点,应用场合
(2) 时序控制方式
定义,特点,应用场合
同步控制方式 :
异步控制方式:
定义,特点,应用场合
(5.5.4)
(5.6.1)
(5.8.1)
(5.3.1)
主设备,从设备
(3) 主机与外设的信息传送控制方式
中断方式:
DMA方式:
(5.2.2)
定义 ,流程,应用场合
定义 ,流程,应用场合
用寄存器传送语言写出模型机加法指令
ADD (R0),X(PC)的流程,并列出该指令
源周期的操作时间表.
作业:
第四章复习提纲
1.CPU组成(重在数据通路结构).
2.指令流程(寄存器传送级),操作时间表(微命令序列).
3.微指令设计方法(分段原则,各段功能,编码方法,微
地址形成方法).
4.基本概念如:同步控制与异步控制(含义,应用场合),
组合逻辑控制与微程序控制(基本思想,优缺点,应用场
合),I/O传送控制方式(定义,应用场合),控制字,状态
字,程序状态字,主设备,从设备……等.
·上一篇:一个行程是一个单一执行緖控制的执行程设计步骤:
拟定指令系统
确定总体结构
安排时序
拟定指令流程和微命令序列.
形成控制逻辑
4.4.1 指令系统
1.指令格式
格式,寻址方式,指令类型设置
寄存器,ALU,数据通路设置
画流程图(寄存器传送级)
列操作时间表
组:列逻辑式,形成逻辑电路
微:按微指令格式编写微程序
指令字长16位,采用寄存器型寻址,指令中给出寄存器号.
(主存容量为64K×16位)
双操作数指令格式:
4 6 3 3
操作码 寄存器号 寻址方式 寄存器号 寻址方式
源地址
目的地址
单操作数指令格式:
操作码 (可扩展) 寄存器号 寻址方式
4 3 3 3 3
目的地址
转移指令格式:
15 12 11 9 8 6 5 4 3 2 1 0
转移地址
转移条件
操作码 寄存器号 寻址方式 方式 N′Z′V′C′
CPU可编程访问的寄存器:
寻址方式 编码 助记符 定义
2.寻址方式
寄存器寻址
通用寄存器R,指令计数器PC,堆栈指针SP,程序状态字PSW
000
R
(R)为操作数
寄存器间址
001
(R)
(R)为操作数地址
自减型寄存器间址
010
-(R)
-(SP)
(R)-1为操作数地址
(SP)-1为栈顶地址
立即/自增型寄存器间址
011
(R)+
(R)为操作数地址,
访问后(R)+1
(SP)+
(SP)为栈顶地址,
出栈后(SP)+1
寻址方式 编码 助记符 定义
100
(R)为间接地址,
直接/自增型双间址
101
@(R)+
(PC)+
PC指向有效地址,
(R)+d为有效地址
(R)为操作数地址,
立即/自增型寄存器间址
011
(R)+
访问后(R)+1
(SP)+
(SP)为栈顶地址,
出栈后(SP)+1
(PC)为立即数地址,
取数后(PC)+1
访问后(R)+1
@(PC)+
访问后(PC)+1
变址
X(R)
X(PC)
(PC)+d为有效地址
跳步
110
SKP
跳过下条指令执行
操作码 助记符 含义
3.指令类型
用于数传,堆栈,I/O操作
0000
MOV
传送
0001
ADD
加
0101
EOR
异或
双操作数指令
0110
COM
求反
1011
SR
右移
单操作数指令
1100
JMP
转移
1100
RST
返回
1101
JSR
转子
0 0 0 0 0
5 4 3 2 1 0
转移地址
无条件转
JMP 寄 寻 方式 N′Z′V′C′
0 0 0 0 1
无进位转
(C=0)
0 0 0 1 0
无溢出转
(V=0)
0 0 1 0 0
数非零转
(Z=0)
0 1 0 0 0
数为正转
(N=0)
1 0 0 0 1
有进位转
(C=1)
1 0 0 1 0
有溢出转
(V=1)
1 0 1 0 0
数为零转
(Z=1)
1 1 0 0 0
数为负转
(N=1)
条件满足,转转移地址;条件不满足,顺序执行.
隐含约定:转子时返回地址压栈保存.
15 12 11 9 8 6 5 0
子程序入口
RST SP (SP)+
JSR 寄 寻 方式 N′Z′V′C′
5 4 3 2 1 0
4.4.2 CPU总体结构
1.寄存器设置
(1)可编程寄存器(16位)
通用寄存器:
R0(000),R1(001)
R2(010),R3(011)
允许中断(开中断)
(可扩展) I N Z V C
4 3 2 1 0
暂存器C
(2)非编程寄存器(16位)
堆栈指针:
SP(100)
指令计数器:
PC(111)
程序状态字:
PSW(101)
:暂存来自主存的源地址或源数据.
暂存器D
:暂存来自主存的目的地址或目的数.
指令寄存器IR
地址寄存器MAR
数据寄存器MBR
:存放现行指令.
实现CPU与主存的接口
SN74181 4片
SN74182 1片
2.算逻部件设置
ALU
选择数据来源
选择器A
选择器B
移位器
:实现直送,左移,右移,字节交换
3.数据通路结构
为了使数据传送控制简单,集中,采用以
ALU为中心的总线结构.
(1)组成
包括四个部分:
ALU部件,寄存器组,内总线,CPU与系统总
线的连接
(16位)
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
(2)特点
ALU为内部数据传送通路的中心;
寄存器采用
内总线采用单向数据总线(16位);
分立结构;
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
与系统总线
的连接通过
MAR,MBR实现.
MBR
输出
输出至DB
输出至ALU的B门
输入
从内总线输入
从DB输入
(打入)
(置入)
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
4.各类信息传送途径
M
(1)指令信息
置入
DB
IR
M
DB
IR
(2)地址信息
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
1)指令地址
2)指令地址加1
PC
PC
A
ALU
移位器
内总线
MAR
PC
打入
A
ALU
移
内
MAR
PC
A
ALU
移
内
PC
C0
C0
打入
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
3)转移地址
M
IR
寄存器寻址:
R0
R0
B
ALU
移位器
内总线
PC
R0
打入
B
ALU
移
内
PC
寄存器间址:
R0
打入
B
ALU
移
内
MAR
AB
M
DB
置入
MBR
B
MAR
MBR
MBR
移,
内
PC
ALU
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
IR
R0
R0
B
ALU
移位器
内总线
4)操作数地址
寄存器寻址:
R0
R1
寄存器间址:
R0
打入
B
ALU
移
内
MAR
MAR
R1
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
变址:
PC
A
ALU
移位器
内总线
MAR
R0
PC
A
ALU
移
内
MAR
AB
M
DB
移
内
C
PC
M
M
MBR
MBR
B
C
MBR
B
ALU
R0
R0
C
ALU
C
A
B
移
内
MAR
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
(3)数据信息
M
IR
R0
R0
B
ALU
移位器
内总线
1)R
R:
R0
打入
B
ALU
移
内
R1
DB
M
DB
MBR
B
MBR
MBR
移,
内
R2
ALU
R1
2)R
M:
R0
打入
B
ALU
内
MBR
3)M
R:
R2
M
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
M
IR
R0
R0
B
ALU
移位器
内总线
4)M
M:
M(源)
R0
MBR
MBR
MBR
DB
内
I/O
ALU
5)R
I/O:
C
打入
DB
MBR
内
C
ALU
(计算目的地址)
DB
M
C
ALU
内
MBR
(目的)
C
A
I/O
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
M
IR
R0
B
ALU
移位器
内总线
DB
MBR
MBR
DB
DMA方式:
I/O
6)I/O
R
打入
I/O
MBR
内
R0
ALU
I/O
7)I/O
M
M
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
5.微命令设置
(1)数据通路
操作:
ALU功能选择:
ALU输入选择:
输出移位选择:
结果分配:
R0
A,
R0
B,
S3S2S1S0,M,C0
不移,左移,
CPR0,CPC,CPMAR,
R0~R3 R0~R3
C D C D
SP PC PSW MBR
A
移位器
B
ALU
R2
R0
R1
M
I/O
CB
内总线
C
R3
D
MAR
MBR
IR
PC
SP
PSW
AB
DB
控制逻辑
(2)访M,I/O
操作:
读 R
地址使能 EMAR
写 W
置入MBR SMBR,
1
MAR向AB送地址
0
00 MBR与DB断开,
MAR与AB断开
R=1读 W=1写
置入IR SIR
M
4.4.3 组合逻辑控制器设计
1.时序系统
(1)工作周期
取指周期FT
用于指令正常执行
设置6个触发器分别
作为各周期状态标志
源周期ST
目的周期DT
执行周期ET
中断周期IT
DMA周期DMAT
用于I/O传送控制
1 工作周期开始
0 工作周期结束
在整个指令周期中,任何时候必须,且只能有一
个工作周期状态标志为"1".
1)取指周期FT
从M取出指令并译码;
公操作
修改PC.
3)目的周期DT
4)执行周期ET
取指结束时,按操作码和寻址方式(R/非R寻址)
转相应工作周期.
按寻址方式(非R寻址)形成源地址,从M取出源操
作数,暂存于C.
2)源周期ST
按寻址方式(非R寻址)形成目的地址,或从M取出
目的操作数,暂存于D.
按操作码完成相应操作(传送,运算,取转移地址
送入PC,返回地址压栈保存);
后续指令地址送入MAR.
5)中断周期IT
关中断,保存断点和PSW,转服务程序入口.
由硬件完成
1)时钟周期时间:
IT指CPU响应中断请求后,到执行中断服务程序前.
6)DMA周期DMAT
一次从M读出,并经数据通路传送的操作;或
一次数据通路传送操作;或
一次向M写入的操作
DMAT指CPU响应DMA请求后,到传送完一次数据.
DMA控制器接管总线权,控制直传.
(2)时钟周期(节拍)T
1微秒
完成一步操作:
模型机以访存时间作为一步操作时间.
一个总线
周期等于一个时钟周期,可根据需要扩展.
由硬件完成
2)时钟周期数:
每个工作周期第一拍T=0,
每开始一个新节拍T计数,
工作周期结束时T清0.
一个工作周期中的时钟数可变.
用计数器T控制节拍数
每个时钟结束时设置一个脉冲.
(3)工作脉冲P
1 S
T
P
打入寄存器
进行时序转换
(周期状态设置/清除
时钟T计数/清除)
将计数值译码,可产生节拍电位.
2.控制流程(工作周期转换)
FT
双
单
转
SR
ST
DR
DT
ET
DMAT
DMA请求
中断请求
IT
SR
DR
Y
N
Y
N
3.指令流程图与操作时间表
(1)取指周期FT
拟定指令流程:
初始化时置入FT,
确定各工作周期中每拍完成的具体
操作(寄存器传送级).
列操作时间表:
列出每一步操作所需的微命令及产
生条件.
1)进入FT的方式和条件
FT
S
R
D
C
Q
Q
总清
1
程序正常运行时同步打入FT.
1 FT
CPFT
1 FT
=
ET(1 DMAT 1 IT)
DMAT(1 DMAT 1 IT)
+ IT
+
2)流程图
1 ST
FT0:
PC+1 PC
M IR
3)操作时间表
FT0:
电位型微命令
脉冲型微命令
M IR
EMAR,
R,
SIR
PC+1 PC
PC A,
A+1,
DM
CPPC
1 DT
1 ET
或
或
CPFT( P)
CPST( P)
CPDT( P)
CPET( P)
CPT ( P)
工作周期中,每拍结束时发CPT;工作周期结束时,
5个时序打入命令都发.
转换
4)时序关系
FT0:
EMAR
PC A
S3
DM
S2
S1
S0
M
C0
1 ST
CPPC
CPFT( P)
CPST( P)
CPDT( P)
CPET( P)
T+1
FT0:
1 FT
CPT ( P)
(2)传送指令
FT0:
PC+1 PC
M IR,
1)流程图
例1:
MOV R0,R1;
源数
ET0:
R0 R1
PC MAR
ET1:
例2:
MOV(R0),(R1);
FT0:
M IR,
PC+1 PC
ST0:
R0 MAR
ST1:
M MBR C
DT0:
R1 MAR
目的地址
ET0:
C MBR
ET1:
MBR M
ET2:
PC MAR
例3:
MOV X(R0),X(R1);
FT0:
M IR
PC+1 PC
形地
取源操作数,
暂存于C,
需5步.
PC+1 PC
ST0:
PC MAR
DT1:
M MBR C
DT0:
C MBR
源数
ET0:
C+R0 MAR
ET1:
MBR M
ET2:
PC MAR
PC+1 PC
例3:
MOV X(R0),X(R1);
FT0:
M IR
M MBR C
ST1:
ST2:
ST3:
ST4:
PC MAR
M MBR D
形地
PC+1 PC
DT2:
DT3:
D+R1 MAR
目的地址
取目的地址,
暂存于MAR,
需4步.
源数送存储器,
需3步.
FT0:
M IR
2)操作时间表
例:
MOV(SP)+,(R1);
SP MAR
M MBR C
PC+1 PC
CPPC
ST0:
SP+1 SP
EMAR
R
SMBR
MBR B
输出B
DM
CPC
SP A
A+1
DM
CPSP
EMAR
PC A
A+1
R
SIR
DM
1 ST
CPFT(P)
CPET(P)
CPT(P)
DM
CPMAR
输出A
SP A
T+1
CPT(P)
T+1
CPT(P)
ST1:
ST2:
1 DT
CPFT(P)
CPET(P)
CPT(P)
DT0:
R1 MAR
DM
CPMAR
输出A
R1 A
T+1
CPT(P)
1 ET
CPFT(P)
CPET(P)
ET0:
C MBR
C B
输出B
DM
CPMBR
CPT(P)
ET1:
MBR M
PC MAR
ET2:
EMAR
W
T+1
CPT(P)
DM
CPMAR
输出A
PC A
1 FT
CPFT(P)
CPET(P)
CPT(P)
DT0:
R1 MAR
DM
CPMAR
输出A
R1 A
T+1
CPT(P)
1 ET
CPFT(P)
CPET(P)
ET0:
C MBR
C B
输出B
DM
CPMBR
CPT(P)
(3)双操作数指令
取目的数,暂存于D.
例:
ADD (PC)+,X(R1);
FT0:
M IR,
PC+1 PC
立即数
ST0:
PC MAR
ST1:
M MBR C
ST2:
PC+1 PC
DT0:
PC MAR
DT1:
M MBR D
DT2:
PC+1 PC
形式地址
DT3:
D+R1 MAR
DT4:
M MBR D
目的数
ET0:
C+D MBR
ET1:
MBR M
ET2:
PC MAR
(4)单操作数指令
FT0:
M IR,
例:
COM -(R0);
DT0:
R0-1 R0
,MAR
DT1:
M MBR D
ET0:
ET1:
MBR M
ET2:
PC MAR
PC+1 PC
D MBR
(5)转移-返回指令
无条件转移
SKP
R
(R)
(R)+
按R指示从M取转移地址,修改R.
(SP)+
X(PC)
执行再下条指令.
从R取转移地址.
按R指示从M取转移地址.
从堆栈取返回地址,修改SP.
以PC内容为基准转移.
(RST)
FT0:
M IR,
例1:
JMP R0;
SP+1 SP
,MAR
M MBR PC
ET0:
ET1:
SP MAR
ET2:
R0 PC
PC+1 PC
无条件转子:
R
(R)
(R)+
(SP)+
(PC)+
入口在R中
例2:
RST (SP)+;
FT0:
M IR,
PC+1 PC
ET0:
,MAR
例3:
JMP X(PC);
FT0:
M IR,
PC+1 PC
ET0:
PC MAR
ET1:
M MBR C
位移量
ET2:
PC+C PC
,MAR
(5)转子指令
入口在M中
入口在堆栈中
SP-1 SP
MBR M
ST1:
PC MBR
归纳微命令,综合化简条件,用组合逻辑电路实现.
读令R=
在ST形成子程序入口;在ET保存返回地址,并转
子程序入口.
ST0:
,MAR
例:
JSR(R2);
FT0:
M IR,
PC+1 PC
ET0:
R2 MAR
ET1:
M MBR C
子程序入口
C PC
,MAR
返回地址压栈
ET2:
ET3:
4.控制逻辑
例:
FT0
+MOV(ST1+ST4+……)
CPPC =
FT0
+……
P
+MOV(ST2+DT2) X P
+……
4.4.4 微程序控制器设计
1.时序系统
P
微指令周期
微指令
打入 IR
二级时序:
控制数
据通路
操作
结果打
入目的
地,
读取后续
微指令
后续微
地址打
入 AR
2.微指令格式
按数据通路各段操作划分字段,同类操作中互斥
的微命令放同一字段.
(1)格式
数据通路操作
辅助操作
AI BI SM C0 S ZO EMAR R W ST SC
3 3 5 2 2 3 1 1 1 2 4
顺序控制
访存操作
(2)各字段功能
1)数据通路操作
AI:
A输入选择
000 无输入
001
Ri A
010
C A
011
D A
100
PC A
R0~R3,SP,PC
AI BI SM C0 S ZO EMAR R W ST SC
3 3 5 2 2 3 1 1 1 2 4
BI:
B输入选择
000 无输入
001
Ri B
010
C B
011
D B
100
MBR B
SM:
ALU功能选择
S3S2S1S0M
C0:
初始进位选择
S:
移位选择
ZO:
结果分配
001
CPRi
R0~R3,PSW
R0~R3,SP,PC,PSW
2)访存操作
EMAR,R,W
3)辅助操作
00 无操作
01 开中断
10 关中断
11 SIR
AI BI SM C0 S ZO EMAR R W ST SC
3 3 5 2 2 3 1 1 1 2 4
4)顺序控制
增量
断定
0000 顺序执行
9种
指明微地址形成方式
SC:
0001 无条件转移
0010 按操作码分支
0111 转微子程序
1000 返回微主程序
增量
断定
增量
3.微程序的编制
(1)编写顺序
按指令执行顺序编写:
取机器指令
SC=0000
功能转移
执行
按操作码编码顺序,逐级分类编写:
MOV指令,
双操作数指令,
单操作数指令,
转移指令
(2)实现分支
将同类断定依据所对应的微地址放在相应的微地址
形成表中,用SC字段选取.
顺序执行
现行微地址+1
SC=0001
无条件转
现行微指令给出转移微地址
SC=0111
转微子程序
现行微指令给出微子程序
入口
SC=1000
返回微主程序
从寄存器取返回微地址
微地址形成表:
SC=0010
按操作码分支(4路)
表内单元地址
SC=0011
(断定依据):
MOV
执行规定操作
后转取指入口
双
单元内容
(微地址)
单
JMP/JSR
03H
取源数,目的地
0CH
取源数,目的数
24H
取目的数
按J,PC分支
3FH
按操作码 DR分支(24路)进入执行
DR
MOV
06H
DR
MOV
0AH
双
单
3DH
SC=0100
SC=0110
1)取指微指令代真
从60H开始
按J,PC分支(4路)
40H
46H
顺序/转移地址 PC
SC=0101
按源寻址方式分支(7路)
4DH
5EH
按目的寻址方式分支
(3)微指令实例
AI BI SM C0 S ZO EMAR R W ST SC
3 3 5 2 2 3 1 1 1 2 4
M IR:
微地址00
000 000 00000 00 00 000 1 1 0 11 0000
AI BI SM C0 S ZO EMAR R W ST SC
3 3 5 2 2 3 1 1 1 2 4
00
微地址01
100 00010010 01 00 111 0 0 0 00 0000
PC+1 PC:
按操作码分支:
微地址02
000 00000000 00 00 000 0 0 0 00
0010
2)机器指令的微程序实现
例:MOV(R0),R1;按流程写出微地址
01
02
03
4C
4E
4F
04
60
05
0A
0B
08
09
00
本章小结
1,建立CPU整机概念
逻辑组成
工作机制
(1)逻辑组成
寄存器,ALU设置,数据通路结构
(2)工作机制
寄存器传送级:
微操作控制级:
各类指令的流程
微命令序列
指令的执行过程
(5.4.2)
(5.5.2)
拟定流程的关键:清楚了解数据通路结构
熟练掌握基本寻址方式
基本寻址方式(模型机)
寄存器寻址 :R 寄存器间址 :(R)
自减型寄存器间址 :–(R)
自增型寄存器间址 :(R)+
立即寻址 :(PC)+ 变址:X(R)
相对寻址 :X(PC)
–(SP) (用于入栈操作)
(SP)+ (用于出栈操作)
(5.4.1)
(1) 微命令的产生方式
2,有关的基本概念
组合逻辑控制方式:
基本思想 ,优缺点,应用场合
微程序控制方式:
基本思想 ,优缺点,应用场合
(2) 时序控制方式
定义,特点,应用场合
同步控制方式 :
异步控制方式:
定义,特点,应用场合
(5.5.4)
(5.6.1)
(5.8.1)
(5.3.1)
主设备,从设备
(3) 主机与外设的信息传送控制方式
中断方式:
DMA方式:
(5.2.2)
定义 ,流程,应用场合
定义 ,流程,应用场合
用寄存器传送语言写出模型机加法指令
ADD (R0),X(PC)的流程,并列出该指令
源周期的操作时间表.
作业:
第四章复习提纲
1.CPU组成(重在数据通路结构).
2.指令流程(寄存器传送级),操作时间表(微命令序列).
3.微指令设计方法(分段原则,各段功能,编码方法,微
地址形成方法).
4.基本概念如:同步控制与异步控制(含义,应用场合),
组合逻辑控制与微程序控制(基本思想,优缺点,应用场
合),I/O传送控制方式(定义,应用场合),控制字,状态
字,程序状态字,主设备,从设备……等.
·下一篇:使用时间

文件类型:PPT/Microsoft Powerpoint 文件大小:字节