第六节 模型机设计设计步骤,拟定指令系统确定总体结构安排时序拟定指令流程和微命令序列。
形成控制逻辑
3.6.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为栈顶地址寻址方式 编码 助记符 定义
101
(PC)+
(R)+d为有效地址
( R)为操作数地址,立即 /自增型寄存器间址
011 (R)+
访问后 (R)+1
(SP)+ (SP)为栈顶地址,
出栈后 (SP)+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
3.6.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
数据寄存器 MDR
:存放现行指令。
实现 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 MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
( 2)特点
ALU为内部数据传送通路的中心; 寄存器 采用内总线 采用单向数据总线 (16位 );分立结构;
与系统总线的连接通过
MAR,MDR实现。
MDR 输入 输出至 DB
输出至 ALU的 B门输出从内总线输入从 DB输入
(打入 )
(置入 )
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
4.各类信息传送途径
M( 1)指令信息 置入DB IR
( 2)地址信息
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
1)指令地址
2)指令地址加 1
PC 打入A ALU 移 内 MAR
PC A ALU 移 内 PC
C0 打入
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
3)转移地址寄存器寻址,R0 打入B ALU 移 内 PC
寄存器间址,R0 打入B ALU 移 内 MAR
AB M DB 置入 MDR B 移,内 PCALU
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
4)操作数地址寄存器间址,R0 打入B ALU 移 内 MAR
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑变址:
R0
PC A ALU 移 内 MAR AB
M DB 移 内 C
M
MDR B ALU
ALUC AB 移 内 MAR
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
( 3)数据信息
1) R R,R0 打入B ALU 移 内 R1
DB M
DB MDR B 移,内 R2ALU
2) R M,R0 打入B ALU 内 MDR
3) M R,M
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
4) M M,M(源 )
R0 MDR DB内 I/OALU5) R I/O:
打入DB MDR 内 CALU
(计算目的地址 ) DB MC ALU 内 MDR (目的 )
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
DB
DB
DMA方式,I/O
6) I/O R 打入I/O MDR 内 R0ALU
7) I/O M M
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
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 MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
(2)访 M,I/O
操作:
读 R
地址使能 EMAR
写 W
置入 MDR SMDR,
1MAR向 AB送地址
0
00 MDR与 DB断开,
MAR与 AB断开
R=1读 W=1写置入 IR SIR
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
3.6.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μST
P
打入寄存器 进行时序转换
(周期状态设置 /清除时钟 T计数 /清除)
将计数值译码,可产生节拍电位。
2.控制流程 (工作周期转换 )
FT
双单 转
SRST
DRDT
ET
DMAT
DMA请求?
中断请求?
IT
SR
DR
Y
N
Y
N
3.指令流程图与操作时间表
( 1)取指周期 FT
拟定指令流程:
初始化时置入 FT,
确定各工作周期中每拍完成的具体操作(寄存器传送级)。
列操作时间表,列出每一步操作所需的微命令及产生条件。
1)进入 FT的方式
FTS R
D C
QQ总清
1
程序正常运行时同步打入 FT。 1 FT CPFT
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个时序打入命令都发。
转换
( 2)传送指令
FT0:
PC+1 PC
M IR,
1)流程图例 1,MOV R0,R1;
源数
ET0,R1 R0
PC MARET1:
例 2,MOV(R0),(R1); FT0,M IR,PC+1 PC
ST0,R1 MAR
ST1,M MDR C
DT0,R0 MAR 目的地址
ET0,C MDR
ET1,MDR 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 MDR C
DT0:
C MDR
源数
ET0:
C+R1 MAR
ET1,MDR M
ET2,PC MAR
PC+1 PC
例 3,MOV X(R0),X(R1); FT0,M IR
M MDR C
ST1:
ST2:
ST3:
ST4:
PC MAR
M MDR D
形地
PC+1 PCDT2:
DT3,D+R0 MAR
目的地址取目的地址,
暂存于 MAR,
需 4步。
源数送存储器,
需 3步。
FT0,M IR
2)操作时间表例,MOV (R1),(SP)+;
SP MAR
M MDR C
PC+1 PC CPPC
ST0:
SP+1 SP
EMAR R SMDR MDR 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输出 ASP A T+1
CPT(P)
T+1 CPT(P)
ST1:
ST2,1 DT
CPFT(P) CPET(P) CPT(P)
ET1,MDR M
PC MARET2:
EMAR W T+1 CPT(P)
DM CPMAR输出 APC A 1 FT
CPFT(P) CPET(P) CPT(P)
DT0,R1 MAR DM CPMAR输出 AR1 A
T+1
CPT(P)
1 ET
CPFT(P) CPET(P)
ET0,C MDR C B 输出 B DM CPMDR CPT(P)
( 3)双操作数指令取目的数,暂存于 D。
例,ADD X(R1),(PC)+ ;
FT0,M IR,PC+1 PC
立即数ST0,PC MAR
ST1,M MDR C
ST2,PC+1 PC
DT0,PC MAR
DT1,M MDR D
DT2,PC+1 PC
形式地址
DT3,D+R1 MAR
DT4,M MDR D
目的数 ET0,C+D MDR
ET1,MDR M
ET2,PC MAR
( 4)单操作数指令
FT0,M IR,例,COM -(R0);
DT0,R0-1 R0,MAR
DT1,M MDR D
ET0:
ET1,MDR M
ET2,PC MAR
PC+1 PC
D MDR
( 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 MDR 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 MDR C 位移量
ET2,PC+C PC,MAR
( 5)转子指令入口在 M中 入口在堆栈中
SP-1 SP
MDR M
ST1:
PC MDR
归纳微命令,综合化简条件,用组合逻辑电路实现。
读令 R=
在 ST形成子程序入口;在 ET保存返回地址,并转子程序入口。
ST0:
,MAR
例,JSR( R2); FT0,M IR,PC+1 PC
ET0:
R2 MAR
ET1:
M MDR C
子程序入口
C PC,MAR
返回地址压栈ET2:
ET3:
4.控制逻辑例,FT0 +MOV(ST1+ST4+…… )
CPPC = FT0
+……
P+MOV(ST2+DT2) X P +……
3.6.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 MDR 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字段选取。(见教材 P161~ P163)
顺序执行 现行微地址 +1
SC=0001 无条件转 现行微指令给出转移微地址
SC=0111 转微子程序 现行微指令给出微子程序入口
SC=1000 返回微主程序 从寄存器取返回微地址微地址形成表:
SC=0010 按操作码分支( 4路)
表内单元地址
SC=0011
(断定依据),
MOV
执行规定操作后转取指入口双单元内容 (微地址)
单
JMP/JSR
03H 取源数、目的地
0CH 取源数、目的数
24H 取目的数按 J,PC分支3FH
按操作码 DR分支( 24路)进入执行
DRMOV 06H
DRMOV 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 R1,( R0);按流程写出微地址
01 02 03 4C 4E 4F
04 60 05 0A 0B 08
09 00
本章小结
1,建立 CPU整机概念 逻辑组成工作机制( 1) 逻辑组成寄存器,ALU设置,数据通路结构
(旧 5.4.2,新 3.4.3 )( 2) 工作机制寄存器传送级:
微操作控制级:
各类指令的流程微命令序列指令的执行过程
(旧 5.5.2,新 3.5.2 )
拟定流程的关键:清楚了解数据通路结构熟练掌握基本寻址方式基本寻址方式 (模型机):
寄存器 寻址,R
自减型寄存器间 址,–( R)
自增型寄存器间 址,( R) +
立即寻 址,( PC) +
相对寻 址,X (PC)
–( SP) (用于入栈操作)
( SP) + (用于出栈操作)
(旧 5.4.1,新 3.4.2 )
寄存器 间址,( R)
变址,X (R)
( 1) 微命令的产生方式
2,有关的基本概念组合逻辑控制方式,
基本思想,优缺点、应用场合微程序控制方式,
基本思想,优缺点、应用场合
(旧 5.5.4,新 3.1.3,3.5.3 )
(旧 5.6.1,5.8.1,新 3.1.3,3.6.4 )
( 3) 主机与外设的信息传送控制方式中断方式,
DMA方式,
(旧 5.2.2,新 3.1.4 )
定义,流程、应用场合定义,流程、应用场合
( 2) 时序控制方式定义、特点、应用场合同步控制方式,
异步控制方式,定义、特点、应用场合
(旧 5.3.1,新 3.1.2 )
主设备、从设备第三章复习提纲
3.CPU组成(重在数据通路结构)。
4.指令流程 (寄存器传送级 ),操作时间表 (微命令序列 )。
5.微指令设计方法 (分段原则、各段功能、编码方法 )。
6.基本概念,溢出及判断方法,数的补码表示及变补,
对阶,规格化,同步控制与异步控制 (含义、应用场合 ),
组合逻辑控制与微程序控制 (基本思想、优缺点、应用场合 ),I/O传送控制方式 (定义、应用场合 ),控制字,状态字,程序状态字,主设备,从设备 …… 等。
1.四种运算方法 (原码一位乘、补码一位乘、原码加减交替除法、补码加减交替除法 )的算法、规则。
2.浮点加减运算流程。
1、分别写出下述指令流程:
( 1) MOV R2,(SP)+ ;
( 2) ADD X(PC),R1 ;
( 3) JMP (R0);
2、列出指令 JMP (R0);的取指周期和执行周期的操作时间表。假定执行周期结束后将进入新的取指周期。
第三章作业(二)
形成控制逻辑
3.6.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为栈顶地址寻址方式 编码 助记符 定义
101
(PC)+
(R)+d为有效地址
( R)为操作数地址,立即 /自增型寄存器间址
011 (R)+
访问后 (R)+1
(SP)+ (SP)为栈顶地址,
出栈后 (SP)+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
3.6.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
数据寄存器 MDR
:存放现行指令。
实现 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 MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
( 2)特点
ALU为内部数据传送通路的中心; 寄存器 采用内总线 采用单向数据总线 (16位 );分立结构;
与系统总线的连接通过
MAR,MDR实现。
MDR 输入 输出至 DB
输出至 ALU的 B门输出从内总线输入从 DB输入
(打入 )
(置入 )
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
4.各类信息传送途径
M( 1)指令信息 置入DB IR
( 2)地址信息
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
1)指令地址
2)指令地址加 1
PC 打入A ALU 移 内 MAR
PC A ALU 移 内 PC
C0 打入
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
3)转移地址寄存器寻址,R0 打入B ALU 移 内 PC
寄存器间址,R0 打入B ALU 移 内 MAR
AB M DB 置入 MDR B 移,内 PCALU
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
4)操作数地址寄存器间址,R0 打入B ALU 移 内 MAR
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑变址:
R0
PC A ALU 移 内 MAR AB
M DB 移 内 C
M
MDR B ALU
ALUC AB 移 内 MAR
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
( 3)数据信息
1) R R,R0 打入B ALU 移 内 R1
DB M
DB MDR B 移,内 R2ALU
2) R M,R0 打入B ALU 内 MDR
3) M R,M
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
4) M M,M(源 )
R0 MDR DB内 I/OALU5) R I/O:
打入DB MDR 内 CALU
(计算目的地址 ) DB MC ALU 内 MDR (目的 )
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
DB
DB
DMA方式,I/O
6) I/O R 打入I/O MDR 内 R0ALU
7) I/O M M
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
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 MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
(2)访 M,I/O
操作:
读 R
地址使能 EMAR
写 W
置入 MDR SMDR,
1MAR向 AB送地址
0
00 MDR与 DB断开,
MAR与 AB断开
R=1读 W=1写置入 IR SIR
R0~R3 R0~R3
C D C D
SP PC PSW MDR
A
移位器
B
ALU
R2
R0
R1
M I/O
CB
内总线
C
R3
D
MAR
MDR
IR
PC
SP
PSW
AB
DB
控制逻辑
3.6.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μST
P
打入寄存器 进行时序转换
(周期状态设置 /清除时钟 T计数 /清除)
将计数值译码,可产生节拍电位。
2.控制流程 (工作周期转换 )
FT
双单 转
SRST
DRDT
ET
DMAT
DMA请求?
中断请求?
IT
SR
DR
Y
N
Y
N
3.指令流程图与操作时间表
( 1)取指周期 FT
拟定指令流程:
初始化时置入 FT,
确定各工作周期中每拍完成的具体操作(寄存器传送级)。
列操作时间表,列出每一步操作所需的微命令及产生条件。
1)进入 FT的方式
FTS R
D C
QQ总清
1
程序正常运行时同步打入 FT。 1 FT CPFT
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个时序打入命令都发。
转换
( 2)传送指令
FT0:
PC+1 PC
M IR,
1)流程图例 1,MOV R0,R1;
源数
ET0,R1 R0
PC MARET1:
例 2,MOV(R0),(R1); FT0,M IR,PC+1 PC
ST0,R1 MAR
ST1,M MDR C
DT0,R0 MAR 目的地址
ET0,C MDR
ET1,MDR 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 MDR C
DT0:
C MDR
源数
ET0:
C+R1 MAR
ET1,MDR M
ET2,PC MAR
PC+1 PC
例 3,MOV X(R0),X(R1); FT0,M IR
M MDR C
ST1:
ST2:
ST3:
ST4:
PC MAR
M MDR D
形地
PC+1 PCDT2:
DT3,D+R0 MAR
目的地址取目的地址,
暂存于 MAR,
需 4步。
源数送存储器,
需 3步。
FT0,M IR
2)操作时间表例,MOV (R1),(SP)+;
SP MAR
M MDR C
PC+1 PC CPPC
ST0:
SP+1 SP
EMAR R SMDR MDR 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输出 ASP A T+1
CPT(P)
T+1 CPT(P)
ST1:
ST2,1 DT
CPFT(P) CPET(P) CPT(P)
ET1,MDR M
PC MARET2:
EMAR W T+1 CPT(P)
DM CPMAR输出 APC A 1 FT
CPFT(P) CPET(P) CPT(P)
DT0,R1 MAR DM CPMAR输出 AR1 A
T+1
CPT(P)
1 ET
CPFT(P) CPET(P)
ET0,C MDR C B 输出 B DM CPMDR CPT(P)
( 3)双操作数指令取目的数,暂存于 D。
例,ADD X(R1),(PC)+ ;
FT0,M IR,PC+1 PC
立即数ST0,PC MAR
ST1,M MDR C
ST2,PC+1 PC
DT0,PC MAR
DT1,M MDR D
DT2,PC+1 PC
形式地址
DT3,D+R1 MAR
DT4,M MDR D
目的数 ET0,C+D MDR
ET1,MDR M
ET2,PC MAR
( 4)单操作数指令
FT0,M IR,例,COM -(R0);
DT0,R0-1 R0,MAR
DT1,M MDR D
ET0:
ET1,MDR M
ET2,PC MAR
PC+1 PC
D MDR
( 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 MDR 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 MDR C 位移量
ET2,PC+C PC,MAR
( 5)转子指令入口在 M中 入口在堆栈中
SP-1 SP
MDR M
ST1:
PC MDR
归纳微命令,综合化简条件,用组合逻辑电路实现。
读令 R=
在 ST形成子程序入口;在 ET保存返回地址,并转子程序入口。
ST0:
,MAR
例,JSR( R2); FT0,M IR,PC+1 PC
ET0:
R2 MAR
ET1:
M MDR C
子程序入口
C PC,MAR
返回地址压栈ET2:
ET3:
4.控制逻辑例,FT0 +MOV(ST1+ST4+…… )
CPPC = FT0
+……
P+MOV(ST2+DT2) X P +……
3.6.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 MDR 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字段选取。(见教材 P161~ P163)
顺序执行 现行微地址 +1
SC=0001 无条件转 现行微指令给出转移微地址
SC=0111 转微子程序 现行微指令给出微子程序入口
SC=1000 返回微主程序 从寄存器取返回微地址微地址形成表:
SC=0010 按操作码分支( 4路)
表内单元地址
SC=0011
(断定依据),
MOV
执行规定操作后转取指入口双单元内容 (微地址)
单
JMP/JSR
03H 取源数、目的地
0CH 取源数、目的数
24H 取目的数按 J,PC分支3FH
按操作码 DR分支( 24路)进入执行
DRMOV 06H
DRMOV 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 R1,( R0);按流程写出微地址
01 02 03 4C 4E 4F
04 60 05 0A 0B 08
09 00
本章小结
1,建立 CPU整机概念 逻辑组成工作机制( 1) 逻辑组成寄存器,ALU设置,数据通路结构
(旧 5.4.2,新 3.4.3 )( 2) 工作机制寄存器传送级:
微操作控制级:
各类指令的流程微命令序列指令的执行过程
(旧 5.5.2,新 3.5.2 )
拟定流程的关键:清楚了解数据通路结构熟练掌握基本寻址方式基本寻址方式 (模型机):
寄存器 寻址,R
自减型寄存器间 址,–( R)
自增型寄存器间 址,( R) +
立即寻 址,( PC) +
相对寻 址,X (PC)
–( SP) (用于入栈操作)
( SP) + (用于出栈操作)
(旧 5.4.1,新 3.4.2 )
寄存器 间址,( R)
变址,X (R)
( 1) 微命令的产生方式
2,有关的基本概念组合逻辑控制方式,
基本思想,优缺点、应用场合微程序控制方式,
基本思想,优缺点、应用场合
(旧 5.5.4,新 3.1.3,3.5.3 )
(旧 5.6.1,5.8.1,新 3.1.3,3.6.4 )
( 3) 主机与外设的信息传送控制方式中断方式,
DMA方式,
(旧 5.2.2,新 3.1.4 )
定义,流程、应用场合定义,流程、应用场合
( 2) 时序控制方式定义、特点、应用场合同步控制方式,
异步控制方式,定义、特点、应用场合
(旧 5.3.1,新 3.1.2 )
主设备、从设备第三章复习提纲
3.CPU组成(重在数据通路结构)。
4.指令流程 (寄存器传送级 ),操作时间表 (微命令序列 )。
5.微指令设计方法 (分段原则、各段功能、编码方法 )。
6.基本概念,溢出及判断方法,数的补码表示及变补,
对阶,规格化,同步控制与异步控制 (含义、应用场合 ),
组合逻辑控制与微程序控制 (基本思想、优缺点、应用场合 ),I/O传送控制方式 (定义、应用场合 ),控制字,状态字,程序状态字,主设备,从设备 …… 等。
1.四种运算方法 (原码一位乘、补码一位乘、原码加减交替除法、补码加减交替除法 )的算法、规则。
2.浮点加减运算流程。
1、分别写出下述指令流程:
( 1) MOV R2,(SP)+ ;
( 2) ADD X(PC),R1 ;
( 3) JMP (R0);
2、列出指令 JMP (R0);的取指周期和执行周期的操作时间表。假定执行周期结束后将进入新的取指周期。
第三章作业(二)