Download presentation
Presentation is loading. Please wait.
Published byMarco de Almada Chaves Modified 6年之前
1
3.7 CPU模型 CPU设计步骤: 一. 拟定指令系统 二. 确定总体结构和数据通路 1. 指令格式 2. 寻址方式 3. 操作类型
1. 寄存器 2. 运算部件 3. 总线( 1组内总线3组系统总线)
2
3.7 CPU模型 三. 安排时序 四. 拟定指令流程和微命令序列。 五. 形成控制逻辑 4. 传送路径 1)指令信息的传送
2)地址信息的传送 3)数据信息的传送 5. 微命令设置 三. 安排时序 四. 拟定指令流程和微命令序列。 五. 形成控制逻辑 组:列逻辑式,形成逻辑电路 微:按微指令格式编写微程序
3
3.7.1 模型机指令系统 一. 指令格式 指令字长16位,采用寄存器型寻址,指令中给出寄存器号。 1.双操作数指令格式 4 3 3 3 3
操作码 寄存器号 寻址方式 寄存器号 寻址方式 目的地址 源地址
4
3.7.1 模型机指令系统 2.单操作数指令格式: 4 6 3 3 操作码 (可扩展) 寄存器号 寻址方式 目的地址 3.转移指令格式:
操作码 (可扩展) 寄存器号 寻址方式 目的地址 3.转移指令格式: 操作码 寄存器号 寻址方式 方式 N′Z′V′C′ 转移地址 转移条件
5
3.7.1 模型机指令系统 二. 寻址方式 CPU可编程访问的寄存器: 通用寄存器R、指令计数器PC、堆栈指针SP、程序状态字PSW
操作码 寄存器号 寻址方式 寄存器号 寻址方式 编码 寻址方式 助记符 定义 000 寄存器寻址 R (R)为操作数 001 寄存器间址 (R) (R)为操作数地址
6
编码 寻址方式 助记符 定义 010 自减型寄存器间址 -(R) (R)-1为操作数地址 -(SP) (SP)-1为栈顶地址
操作码 寄存器号 寻址方式 寄存器号 寻址方式 编码 寻址方式 助记符 定义 010 自减型寄存器间址 -(R) (R)-1为操作数地址 -(SP) (SP)-1为栈顶地址 (R)为操作数地址, 011 立即/自增型寄存器间址 (R)+ 访问后(R)+1 (SP)+ (SP)为栈顶地址, 出栈后(SP)+1 (PC)+ (PC)为立即数地址, 取数后(PC)+1
7
编码 寻址方式 助记符 定义 100 @(R)+ (R)为间接地址, 直接/自增型双间址 访问后(R)+1 @(PC)+ PC指向有效地址,
操作码 寄存器号 寻址方式 寄存器号 寻址方式 编码 寻址方式 助记符 定义 100 @(R)+ (R)为间接地址, 直接/自增型双间址 访问后(R)+1 @(PC)+ PC指向有效地址, 访问后(PC)+1 101 变址/相对寻址 X(R) (R)+d为有效地址 X(PC) (PC)+d为有效地址 110 跳步 SKP 跳过下条指令执行
8
3.7.1 模型机指令系统 三. 指令类型 0000 MOV 传送 0001 ADD 加 0010 减 SUB 0011 AND 逻辑与
操作码 寄存器号 寻址方式 寄存器号 寻址方式 3.7.1 模型机指令系统 三. 指令类型 操作码 助记符 含义 用于数传、堆栈、I/O操作 0000 MOV 传送 0001 ADD 加 0010 减 SUB 0011 AND 逻辑与 双操作数指令 0100 OR 逻辑或 0101 EOR 异或
9
3.7.1 模型机指令系统 操作码 助记符 含义 0110 COM 求反 0111 NEG 求补 1000 INC 加1 单操作数指令
操作码 助记符 含义 0110 COM 求反 0111 NEG 求补 1000 INC 加1 单操作数指令 1001 DEC 减1 1010 SL 左移 1011 SR 右移 可视为一条指令 1100 JMP 转移 1100 RST 返回 1101 JSR 转子
10
5 4 3 2 1 0 JMP 寄 寻 方式 N′Z′V′C′ 0 0 0 0 0 无条件转 转移地址 0 0 0 0 1 无进位转
JMP 寄 寻 方式 N′Z′V′C′ 无条件转 转移地址 无进位转 (C=0) 无溢出转 (V=0) 数非零转 (Z=0) 数为正转 (N=0) 有进位转 (C=1) 有溢出转 (V=1) 数为零转 (Z=1) 数为负转 (N=1) 条件满足,转转移地址;条件不满足,顺序执行。
11
3.7.1 模型机指令系统 15 12 11 9 8 6 5 0 5 4 3 2 1 0 隐含约定:转子时返回地址压栈保存。
RST SP (SP)+ JSR 寄 寻 方式 N′Z′V′C′ 子程序入口 隐含约定:转子时返回地址压栈保存。
12
3.7.2 总体结构与数据通路 程序状态字: PSW(101) 1.寄存器设置 (1)可编程寄存器(16位)
通用寄存器:R0(000)、R1(001)、R2(010)、R3(011) 堆栈指针: SP(100) 指令计数器: PC(111) 程序状态字: PSW(101)
13
3.7.2 总体结构与数据通路 (2)非编程寄存器(16位) 暂存器C:暂存来自主存的源地址或源数据。
暂存器D:暂存来自主存的目的地址或目的数。 指令寄存器IR:存放现行指令。 地址寄存器MAR 数据寄存器MBR 实现CPU与主存的接口
14
3.7.2 总体结构与数据通路 2. 运算部件的设置 ALU:74181 选择器A 选择器B 移位器 :实现直送、左移、右移、字节交换
选择数据来源 :实现直送、左移、右移、字节交换 3. 数据通路结构 为了使数据传送控制简单、集中,采用以ALU为 中心的总线结构。
15
(1)组成: A B 内总线 ALU部件、寄存器组、内总线、CPU与系统总线的连接 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)组成: ALU部件、寄存器组、内总线、CPU与系统总线的连接
16
(2)特点 ALU为内部数据传送通路的中心; 寄存器采用 分立结构; 内总线采用单向数据总线(16位); A B 内总线
R0~R 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位);
17
MBR 输出至DB 与系统总线 输出 的连接通过 输出至ALU的B门 MAR、MBR实现。 从内总线输入 输入 从DB输入 A B 内总线
R0~R 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 控制逻辑 输出至DB 与系统总线 的连接通过 MAR、MBR实现。 输出 输出至ALU的B门 MBR 从内总线输入 (打入) 输入 从DB输入 (置入)
18
4.各类信息传送途径 M DB IR (1)指令信息 (2)地址信息 内总线 A B 置入 AB DB DB CB 移位器 R0 MAR M
I/O ALU R1 MBR R2 IR IR A B 控制逻辑 R3 PC R0~R R0~R3 C D C D SP PC PSW MBR C SP D PSW 4.各类信息传送途径 置入 (1)指令信息 M DB IR (2)地址信息
19
PC A ALU MAR PC A ALU PC C0 1)指令地址 移 内 2)指令地址加1 移 内 内总线 内总线 C0 A A B
DB CB 移位器 移位器 R0 MAR MAR M I/O C0 ALU ALU R1 MBR R2 IR A A B 控制逻辑 R3 PC PC R0~R R0~R3 C D C D SP PC PSW MBR R0~R R0~R3 C D C D SP PC PSW MBR C SP D PSW 打入 1)指令地址 PC A ALU 移 内 MAR 2)指令地址加1 PC A ALU 移 内 PC C0 打入
20
R0 B ALU PC R0 B ALU MAR AB M DB MBR B ALU PC 3)转移地址 寄存器寻址: 移 内 寄存器间址:
内总线 内总线 DB CB 移位器 移位器 R0 R0 MAR MAR M M I/O ALU ALU R1 MBR MBR R2 IR IR A B B 控制逻辑 R3 PC PC R0~R R0~R3 C D C D SP PC PSW MBR R0~R R0~R3 C D C D SP PC PSW MBR R0~R R0~R3 C D C D SP PC PSW MBR C SP D PSW 3)转移地址 打入 R0 B ALU 寄存器寻址: 移 内 PC 打入 寄存器间址: R0 B ALU 移 内 MAR AB M DB 置入 MBR B ALU 移、 内 PC
21
R0 R1 R0 B ALU MAR 4)操作数地址 寄存器寻址: 寄存器间址: 移 内 内总线 内总线 A B B AB DB CB
移位器 移位器 R0 R0 MAR MAR M I/O ALU ALU R1 R1 MBR R2 IR IR A B B 控制逻辑 R3 PC R0~R R0~R3 C D C D SP PC PSW MBR R0~R R0~R3 C D C D SP PC PSW MBR C SP D PSW 4)操作数地址 寄存器寻址: R0 R1 打入 寄存器间址: R0 B ALU 移 内 MAR
22
PC A ALU MAR AB M M DB MBR B ALU C ALU MAR 移 内 移 内 移 内 内总线 内总线 A A B B
CB 移位器 移位器 R0 R0 MAR MAR M M I/O ALU ALU R1 MBR MBR R2 IR A A B B 控制逻辑 R3 PC PC R0 R0~R R0~R3 C D C D SP PC PSW MBR C C SP C PC MBR D PSW 变址: PC A ALU 移 内 MAR AB M M DB MBR B ALU C 移 内 R0 A ALU 移 内 MAR C B
23
R: R0 B ALU R1 M: R0 B ALU MBR DB M R: M DB MBR B ALU R2 (3)数据信息 1)R 移
AB 内总线 内总线 DB CB 移位器 移位器 R0 R0 MAR M M I/O ALU ALU R1 R1 MBR MBR R2 R2 IR IR A B B 控制逻辑 R3 PC R0~R R0~R3 C D C D SP PC PSW MBR R0~R R0~R3 C D C D SP PC PSW MBR R0~R R0~R3 C D C D SP PC PSW MBR C SP D PSW (3)数据信息 1)R R: 打入 R0 B ALU 移 内 R1 2)R M: 打入 R0 B ALU 内 MBR DB M 3)M R: M DB MBR B ALU 移、 内 R2
24
M: M(源) DB MBR ALU C C ALU MBR DB M I/O: R0 ALU MBR DB I/O 4)M 内 内 5)R
AB 内总线 内总线 DB CB 移位器 移位器 R0 R0 MAR M M I/O I/O ALU ALU R1 MBR MBR R2 IR IR A A B B 控制逻辑 R3 PC R0~R R0~R3 C D C D SP PC PSW MBR R0~R R0~R3 C D C D SP PC PSW MBR R0~R R0~R3 C D C D SP PC PSW MBR R0~R R0~R3 C D C D SP PC PSW MBR C C SP D PSW 打入 4)M M: M(源) DB MBR ALU 内 C C ALU 内 MBR DB M (计算目的地址) (目的) 5)R I/O: R0 ALU 内 MBR DB I/O
25
6)I/O R I/O DB MBR ALU R0 7)I/O M DMA方式: I/O DB M 内 内总线 内总线 A B B AB
CB 移位器 移位器 R0 R0 MAR M M I/O I/O ALU ALU R1 MBR MBR R2 IR IR A B B 控制逻辑 R3 PC R0~R R0~R3 C D C D SP PC PSW MBR C SP MBR D PSW 打入 6)I/O R I/O DB MBR ALU 内 R0 7)I/O M DMA方式: I/O DB M
26
5.微命令设置 ALU输入选择: R0 A、 R0 B、 ALU功能选择: S3S2S1S0、M、C0 (1)数据通路 操作:
R0~R 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.微命令设置 ALU输入选择: R0 A、 R0 B、 ALU功能选择: S3S2S1S0、M、C0 (1)数据通路 操作: 输出移位选择: DM、SL、SR 结果分配: CPR0、CPC、CPMAR、
27
1 地址使能 EMAR 读 R (2)访M、I/O 操作: 00 MBR与DB断开, R=1读 W=1写 写 W 置入MBR SMBR,
R0~R 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 MAR向AB送地址 地址使能 EMAR MAR与AB断开 读 R (2)访M、I/O 操作: 00 MBR与DB断开, R=1读 W=1写 写 W 置入MBR SMBR, 置入IR SIR M
28
3.8 组合逻辑控制方式 3.8.1 时序系统 一.工作周期划分 取指周期FT 源周期ST 用于指令正常执行 目的周期DT 执行周期ET
中断周期IT 用于I/O传送控制 DMA周期DMAT
29
3.8.1 时序系统 设置6个触发器分别作为各周期状态标志 1 工作周期开始 0 工作周期结束 在整个指令周期中,任何时候必须、且只能有
一个工作周期状态标志为“1”。 1.取指周期FT 从M取出指令送入IR; 修改PC。 公共操作 取指结束时,按操作码和寻址方式(R/非R寻址) 转相应工作周期。
30
3.8.1 时序系统 2.源周期ST 按寻址方式(非R寻址)形成源地址,从M取出 源操作数,暂存于C。 3.目的周期DT
4.执行周期ET 按操作码完成相应操作(传送、运算、取转移 地址送入PC、返回地址压栈保存);后续指令 地址送入MAR。
31
3.8.1 时序系统 5.中断周期IT IT指CPU响应中断请求后,到执行中断服务程序 前。 关中断、保存断点和PSW、转服务程序入口。
由硬件完成 6.DMA周期DMAT DMAT指CPU响应DMA请求后,到传送完一次数据。 DMA控制器接管总线权,控制直传。 由硬件完成
32
控制流程(工作周期转换) FT ST DT ET DMAT IT 单 SR 双 转 SR DR DR N DMA请求? N 中断请求? Y
33
3.8.1 时序系统 二. 时钟周期(节拍)T 1.时钟周期时间: 机器主要有两种操作:CPU内部、访问主存
为简化,时钟周期(节拍)的宽度定义为: 主存访问周期的时间。 即:1微秒完成一步操作。
34
5.5.1 时序系统 2.时钟周期数: 一个工作周期中的时钟(节拍)数可变。 一个工作周期包含若干节拍,设置一个时钟周期计数器T表示。
每开始一个新节拍T计数,工作周期结束时T清0。 如需延长,发命令:T+1: 表示 本工作周期没 结束,T继续计数。
35
3.8.1 时序系统 三. 工作脉冲P 每个时钟结束时设置一个脉冲。 T P 打入寄存器 进行时序转换 (周期状态设置/清除
36
3.8.2 指令流程图与操作时间表 这是控制器的核心。将CPU执行指令的工作机制分为二层:
拟定指令流程:确定各工作周期中每拍完成的具体操作(寄存器传送级)。 列操作时间表:列出每一步操作所需的微命令及产生条件。
37
3.8.2 指令流程图与操作时间表 1.取指周期FT (1)进入FT的方式和条件 初始化时置入FT 1 FT 程序正常运行时同步打入FT
S R D C Q 程序正常运行时同步打入FT 总清 1 FT = ET(1 DMAT 1 IT) + IT 1 FT CPFT + DMAT(1 DMAT 1 IT)
38
3.8.2 指令流程图与操作时间表 (2)取指流程 MIR PC+1PC 上述操作占1个节拍。
39
3.8.2 指令流程图与操作时间表 (3)操作时间表 FT P EMAR //让MAR的内存地址输出到地址总线
CPPC CPT (P) CPFT(P) CPST(P) CPDT(P) CPET(P) P EMAR //让MAR的内存地址输出到地址总线 R //从内存读数据到数据总线 SIR //将数据总线上的数据置入IR,完成MIR PCA //PC的值选入ALU的A端 S3 S2 S1 S0 M C0 //算术加,低位有进位 DM //直传到内总线,完成PC+1PC 1ST (逻辑式)//决定下一个工作周期是什么 1DT (逻辑式) 1ET (逻辑式) FT0
40
3.8.2 指令流程图与操作时间表 操作时间表说明: 2.MOV指令 (1)指令流程图 (课本P132) 图3-39)
1)最左边一列FT0表示在FT的第1个节拍 2)第二列表示本拍中应发的电平型微命令,维持1拍,含逻辑式的在条件满足时发。 3)最右边一列表示脉冲型微命令,在表中中下位置,示意是在节拍快结束时发。 2.MOV指令 (1)指令流程图 (课本P132) 图3-39)
41
MOV指令 MIR,PC+1PC RiMAR MMBRC PCMAR Ri-1Ri和MAR Ri+1Ri PC+1PC
R (R) ( R ) ( R) @(R) X(R) SR.DR MIR,PC+1PC RiMAR MMBRC PCMAR Ri-1Ri和MAR Ri+1Ri PC+1PC CMAR C+RiMAR RjMAR Rj-1Rj和MAR Rj+1Rj MMBRMAR MMBRD RiRj RiMBR MBRM CRj CMBR MOV指令 FT ST0 ST1 ST2 ST3 ST4 DT0 DT1 DT2 DT3 ET0 ET1 ET2 D+RjMAR
42
(2)操作时间表 指令流程举例:MOV R0 , @(R1)+ 解: FT MIR PC+1PC ST0 R1MAR
ST1 MMBRC ST2 R1+1R1 ST3 CMAR ST4 MMBR C ET0 C R0 ET1 PCMAR (2)操作时间表
43
ST0 ST1 P R0A[IR5IR4IR3X] R1A[IR5IR4IR3X] R2A[IR5IR4IR3X]
CPC CPST(P) CPDT(P) CPET (P) CPFT (P) CPT (P) P EMAR R SMBR MBRB S3 S2 S1 S0 M DM 1ST[(R)V -(R)] 1DT[(R)V -(R)] DR 1ET [(R)V -(R)] DR T+1[(R)V -(R)] ST1 CPMAR CPR0 [同R0A条件] CPR1 [同R1A条件] CPR2 [同R2A条件] CPR3 [同R3A条件] CPSP [同SPA条件] CPT(P) R0A[IR5IR4IR3X] R1A[IR5IR4IR3X] R2A[IR5IR4IR3X] R3A[IR5IR4IR3X] SPA[IR5IR4IR3X] PCA[IR5IR4IR3 + X] S3 S2 S1 S0 M [- ( R ) ] S3 S2 S1 S0 M C0 [- ( R ) ] T+1 ST0
44
ST0: ST0 :RMAR P R0A[IR5IR4IR3X] //IR5IR4IR3=000表示R0
SPA[IR5IR4IR3X] PCA[IR5IR4IR3 + X] //变址寻址,寄存器为PC S3 S2 S1 S0 M [- ( R ) ] //不是自减型寄存器间址 S3 S2 S1 S0 M C0 [- ( R ) ] //是自减型寄存器间址R-1 DM //ALU结果直接送内总线 T //本工作周期还有下一拍 P CPMAR CPR0 [同R0A条件] CPR1 [同R1A条件] CPR2 [同R2A条件] CPR3 [同R3A条件] CPSP [同SPA条件] CPT(P)
45
ST1: ST1 :MMBRC P EMAR //让MAR内的地址送地址总线 R //从内存读数据到数据总线
SMBR //将数据置入MBR MBRB //将MBR的数据选入ALU的B S3 S2 S1 S0 M //ALU对B的数据不加工 DM // ALU结果直接送内总线 1ST[(R)V -(R)] //不是自减/寄存器间址,继续ST 1DT[(R)V -(R)] DR //是,目的数不在寄存器,DT 1ET [(R)V -(R)] DR //是,目的数在寄存器,转ET T+1[(R)V -(R)] //不是,本周期还有下一拍 P CPC CPST(P) CPDT(P) CPET (P) CPFT (P) CPT (P)
46
操作时间表举例:ST2 Ri+1Ri ST2 R0A[IR5IR4IR3X] //IR5IR4IR3=000表示R0
SPA[IR5IR4IR3X] PCA[IR5IR4IR3 + X]//变址寻址,寄存器为PC S3 S2 S1 S0 M C //+1 DM //ALU结果直接送内总线 1ST[I/(R)+] //继续ST 1DT[I/(R)+]DR //目的数在内存,转DT 1ET[I/(R)+]DR //目的数在寄存器,转ET T+1[I/ (R)+] //本工作周期可能还有下一拍 P CPR0 [同R0A条件] CPR1 [同R1A条件] CPR2 [同R2A条件] CPR3 [同R3A条件] CPSP [同SPA条件] CPPC [同PCA条件] CPST(P) CPDT(P) CPET (P) CPFT (P) CPT(P)
47
操作时间表举例:ST3 ST3 :CMAR或C+R MAR ST3 P
CPMAR CPT(P) P R0A[IR5IR4IR3X] //IR5IR4IR3=000表示R0 R1A[IR5IR4IR3X] //同上类似,都是变址 R2A[IR5IR4IR3X] R3A[IR5IR4IR3X] SPA[IR5IR4IR3X] PCA[IR5IR4IR3 X] CB //把操作数地址从C选到B端 S3 S2 S1 S0 M [ X(R)] //加 S3 S2 S1 S0 M [ X(R)] //不加工 DM //ALU结果直接送内总线 T //本工作周期还有下一拍 ST3
48
操作时间表举例:ST4 MMBR C ST4 EMAR //让MAR内的地址送地址总线 R //从内存读数据到数据总线
CPC CPFT(P) CPST(P) CPDT(P) CPET(P) CPT(P) P EMAR //让MAR内的地址送地址总线 R //从内存读数据到数据总线 SMBR //将数据置入MBR MBRB //将MBR的数据选入ALU的B S3 S2 S1 S0 M //ALU对B的数据不加工 DM // ALU结果直接送内总线 1DT[DR] //目的数不在寄存器,转DT 1ET [ DR] //目的数在寄存器,转ET ST4
49
时序状态转换小结: 在每一个时钟周期结束时都发CPT。若该时钟周期不是本工作周期的最后一拍,则应发电平型微命令T+1;若是,则T清零。
在每个工作周期结束时(即在该工作周期最后一拍),都发CPFT~CPET,但只会使其中一个工作周期的状态为1。
50
3.双操作数指令 双操作数指令流程 RjMAR PCMAR Rj-1Rj和MAR Rj+1Rj PC+1PC DMAR
MMBRD Ri op RjRj Ri op DMBR MBRM SR.DR C op RjRj C op DMBR DT0 DT2 DT3 DT4 ET0 ET1 ET2 D+RjMAR R (R) ( R ) ( R) @(R) X(R) 双操作数指令流程 DT1 取指 取源操作数
51
练 习 1.拟出加法指令“ADD @(R0)+,R1”的读取与执行流程。该指令的源操作数在R1中,而目的操作数的寻址方式为自增型双间址方式。
52
答 案 解: FT: M->IR, PC+1->PC DT0: R0->MAR DT1: M->MBR->D
答 案 ADD @(R0)+,R1 解: FT: M->IR, PC+1->PC DT0: R0->MAR DT1: M->MBR->D DT2: R0+1->R0 DT3: D->MAR DT4: M->MBR->D ET0: R1 ADD D ->MBR ET1: MBR->M ET2: PC->MAR
53
练 习 2.设一处理器的数据通路图如课本P124图3-33所示,整个数据通路采用单向总线结构,寄存器采用独立寄存器结构。试根据此图拟出:
(1) MOV (R0) ,-(R3 )指令的执行流程图。 (2) MOV (R0) ,-(R3 )指令的操作时间表。
54
答 案 解: MOV (R0) ,-(R3 ) (1) FT: M -> IR, PC+1->PC
答 案 解: MOV (R0) ,-(R3 ) (1) FT: M -> IR, PC+1->PC ST0: R3-1 -> R3 MAR ST1: M -> MBR -> C DT0: R0 -> MAR ET0: C -> MBR ET1: MBR -> M ET2: PC -> MAR
55
答 案 (2)操作时间表 EMAR FT0 R SIR PCA S3 S2 S1 S0 M C0 (A+1) DM CPPC 1ST P
答 案 (2)操作时间表 CPPC CPT (P) CPFT(P) CPST(P) CPDT(P) CPET(P) P EMAR R SIR PCA S3 S2 S1 S0 M C0 (A+1) DM 1ST FT0 FT: M -> IR, PC+1->PC ST0: R3-1 -> R3 MAR ST1: M -> MBR -> C DT0: R0 -> MAR ET0: C -> MBR ET1: MBR -> M ET2: PC -> MAR
56
ST0 ST1 P DT0 R3A S3 S2 S1 S0 M C0 (A-1) T+1 CPMAR CPR3 CPT(P) EMAR R
CPC CPST(P) CPDT(P) CPET (P) CPFT (P) CPT (P) P EMAR R SMBR MBRB S3 S2 S1 S0 M (输出B) DM 1DT ST1 CPMAR CPR3 CPT(P) R3A S3 S2 S1 S0 M C0 (A-1) T+1 ST0 DT0 R0A S3 S2 S1 S0 M (输出A) 1ET FT: M -> IR, PC+1->PC ST0: R3-1 -> R3 MAR ST1: M -> MBR -> C DT0: R0 -> MAR ET0: C -> MBR ET1: MBR -> M ET2: PC -> MAR
57
ET0 ET1 P ET2 C A S3 S2 S1 S0 M (输出A) DM CPMBR CPT(P) EMAR W T+1
PCA S3 S2 S1 S0 M (输出A) 1FT CPMAR CPST(P) CPDT(P) CPET (P) CPFT (P) FT: M -> IR, PC+1->PC ST0: R3-1 -> R3 MAR ST1: M -> MBR -> C DT0: R0 -> MAR ET0: C -> MBR ET1: MBR -> M ET2: PC -> MAR
58
4.单操作数指令 单操作数指令流程 ET0 ET1 ET2 op RiRi MBRM PCMAR op DMBR 取指 取操作数
DR op DMBR 取指 取操作数 DT FT
59
5.转移指令JMP/返回指令RST 转移/返回指令流程 PCMAR ET0 ET1 ET2 取指 PC+1PC MAR RiPC
PC PC SKP R (R) RST (R) X(PC) ET0 ET1 ET2 取指 PC+1PC MAR RiPC RiMAR MMBR PC,MAR Ri+1Ri PC+C PC,MAR C NJP JP、RST
60
6.转子指令JSR 转子指令流程 取指 RiMAR Ri MAR MMBRC Ri+1Ri FT ST0 ST1 ST2 ET0
PCMAR SP-1SP,MAR PCMBR MBRM CPC,MAR PC+1PC MAR RiPC,MAR ET3 PC PC R (R) (R)+ NJSR JSR 将返回地址压栈保存
61
7.中断周期IT 中断周期流程 关中断,保存断点 FT 主程序 INT ETi IT1 1IT,INTA PCMBR 0I
SP-1SP,MAR MBRM 向量地址MAR 入口地址PC, MAR FT IT0 IT2 IT3 IT4 子程序 FT0 关中断,保存断点
62
8.DMA周期DMAT DMA周期流程 FT 主程序 DMA请求 DACK 1DMAT 与系统总线脱钩 1FT ETi 恢复原程序执行
63
3.8.2 指令流程图与操作时间表 9.控制台操作 总清信号的产生: (1)上电 (2)按复位键 总清信号使PC=0、MAR=0、FT=1。
0号单元:JMP指令 1号单元:转移地址(监控程序的入口地址) 总清信号导致CPU开始执行监控程序。
64
3.8.3 微命令的综合产生 1. 微命令逻辑条件的综合化简 根据操作时间表列出所有微命令,合并 优化。 2. 逻辑实现
65
作 业 设一处理器的数据通路图如P124所示,整个数据通路采用单向总线结构,寄存器采用独立寄存器结构。试根据此图拟出:
(1) ADD X(R1),X(R0 )指令的执行流程图。 (2) ST1的操作时间表。
66
3.9 微程序控制方式 有关术语及概念 1.机器指令:提供给使用者编制程序的基本单位。用机器指令编制的工作程序存放在主存储器中。
2.微指令:为实现机器指令中一步操作的微命令组合。用微指令编制的微程序存放在控制存储器中。 3.微命令:构成控制信号序列的最小单位,又称微信号。(如同步打入、置位的控制脉冲等) 4.微操作:由微命令控制实现的最基本的操作。(如开门、关门、打入等)
67
3.9.1 微程序控制基本思想 1. 若干微命令编制成一条微指令,控制实现 一步操作; 1. 若干微命令编制成一条微指令,控制实现
1. 若干微命令编制成一条微指令,控制实现 一步操作; 1. 若干微命令编制成一条微指令,控制实现 一步操作; 2. 若干微指令组成一段微程序,解释执行一 条机器指令; 2. 若干微指令组成一段微程序,解释执行一 条机器指令; 3. 微程序事先存放在控制存储器中,执行机 器指令时再取出。 引入了程序技术,使设计规整; CPU的构成 引入了存储逻辑,使功能易于扩展。
68
3.9.2 组成原理 译码器 微地址 形成电路 µIR 微地址寄存器 控制存储器 CM 微命令序列 IR 微命令字段 微地址字段 PSW
PC 微地址寄存器 µAR 控制存储器 CM 译码器 微命令序列 微命令字段 微地址字段 µIR
69
1.主要部件 (1)控制存储器CM 功能: 存放微程序。 CM属于CPU,不属于主存储器。 译码器 微地址 形成电路 µIR 微地址寄存器
PSW PC 微地址寄存器 µAR 控制存储器 译码器 微命令序列 微命令字段 微地址字段 1.主要部件 (1)控制存储器CM 功能: 存放微程序。 CM属于CPU,不属于主存储器。
70
(2)微指令寄存器 µIR 功能: 存放现行微指令。 微命令字段: 提供一步操作所需的微命令。 指明后续微地址的形成方式。 微地址字段:
形成电路 IR PSW PC 微地址寄存器 µAR 控制存储器 译码器 微命令序列 微命令字段 微地址字段 µIR CM (2)微指令寄存器 µIR 功能: 存放现行微指令。 微命令字段: 提供一步操作所需的微命令。 (微操作控制字段) 指明后续微地址的形成方式。 微地址字段: 提供微地址的给定部分。 (顺序控制字段)
71
(3)微地址形成电路 功能: 提供两类微地址。 微程序入口地址: 由机器指令操作码形成。 后续微地址: 由微地址字段、现行微地址、
IR PSW PC 微地址寄存器 µAR 控制存储器 译码器 微命令序列 微命令字段 微地址字段 µIR CM (3)微地址形成电路 功能: 提供两类微地址。 微程序入口地址: 由机器指令操作码形成。 后续微地址: 由微地址字段、现行微地址、 运行状态等形成。
72
2.工作过程 (1)取机器指令 CM µIR IR 译码器 主存 微地址 形成电路 微地址寄存器 控制存储器 CM 译码器 µIR 译码器
PSW PC 微地址寄存器 µAR 控制存储器 CM 译码器 微命令序列 微命令字段 微地址字段 µIR 微命令序列 微命令序列 译码器 译码器 IR 微命令字段 微地址字段 微命令字段 微地址字段 控制存储器 控制存储器 取指微指令 取指微指令 2.工作过程 (1)取机器指令 微命令字段 微命令 取指微指令 译码器 CM µIR 主存 机器指令 IR
73
µAR CM µIR IR µIR (2)转微程序入口 (3)执行首条微指令 译码器 操作部件 微地址 形成电路 微地址寄存器 控制存储器
PSW PC 微地址寄存器 µAR 控制存储器 CM 译码器 微命令序列 微命令字段 微地址字段 µIR 取指微指令 微命令序列 译码器 IR 微地址 形成电路 微地址 形成电路 微命令字段 微地址字段 微命令字段 微地址字段 控制存储器 控制存储器 微地址寄存器 微地址寄存器 (2)转微程序入口 首条微指令 入口 操作码 微地址形成电路 µAR CM µIR IR (3)执行首条微指令 微命令字段 微命令 µIR 译码器 操作部件
74
(4)取后继微指令 CM 微地址形成电路 µAR µIR 微地址 形成电路 微地址寄存器 控制存储器 CM 译码器 µIR 微地址 形成电路
PSW PC 微地址寄存器 µAR 控制存储器 CM 译码器 微命令序列 微命令字段 微地址字段 µIR 微地址 形成电路 微地址 形成电路 微命令字段 微地址字段 微命令字段 微地址字段 微命令字段 微地址字段 PSW PSW 控制存储器 微地址寄存器 微地址寄存器 微地址寄存器 微地址寄存器 (4)取后继微指令 微地址字段 现行微地址 运行状态 后继微地址 微地址形成电路 µAR 后继微指令 µIR CM
75
(5)执行后继微指令 (6)返回 (存放取指微指令的固定单元)。 微程序执行完,返回CM 同(3) 微地址 形成电路 微地址寄存器
IR PSW PC 微地址寄存器 µAR 控制存储器 CM 译码器 微命令序列 微命令字段 微地址字段 µIR (5)执行后继微指令 同(3) (6)返回 (存放取指微指令的固定单元)。 微程序执行完,返回CM
76
3.9.3 微指令的编码方式 C0 R W C0 = R= W= 一.直接控制法(不译法) 微指令中控制字段的每一位就是一个微命令。
微命令字段 微地址字段 例. 某微指令 C R W C0 = 0 进位初值为0 1 进位初值为1 R= 0 不读 1 读 0 不写 1 写 W= 不需译码,产生微命令的速度快; 信息的表示效率低。 微指令中通常只有个别位采用直接控制法。
77
二.分段直接编译法(显示编码、单重定义) 同类操作中互斥的 微命令放同一字段。 微命令由字段编码直接给出。 例.对加法器输入端进行控制。
A B R0…R3 C、D 微指令中设置AI字段,控制 加法器的输入选择。 AI 3 001 R1 A 微命令分组原则: 010 R2 A 同类操作中互斥的 微命令放同一字段。 011 R3 A … 不能同时出现
78
三.分段间接编译法 微命令由本字段编码和其他字段解释共同给出。 一种字段编码具有多重定义。 1) 设置解释位或解释字段 例. C A
2) 分类编译 按功能类型将微指令分类,分别安排各类微 指令格式和字段编码,并设置区分标志。
79
例.DJS-220 微指令分两类。 微指令 C = 0 C = 1 (4)其他编码方法 CPU方式(触发器C=0)
I/O方式(触发器C=1) 微指令 QC’ JCC’ QC C = 0 C = 1 全加器运算方式控制 通道专用 (4)其他编码方法 1) 微指令译码与机器指令译码复合控制 2) 微地址参与解释
80
3.9.4 微程序的顺序控制方式 一. 初始微地址的形成 1. 取机器指令 2. 功能转移
每一种机器指令由一段对应的微程序解释执行,其入口就是初始微地址。 1. 取机器指令 由“取机器指令的微程序”实现,该微程序可从CM的0号单元或其它特定单元开始。 2. 功能转移 根据指令代码转换成微程序段的入口地址,称为功能转移。
81
3.9.4 微程序的顺序控制方式 (1)一级功能转移 根据指令操作码,一次转移到相应微程序入口。 机器指令MOV 例. 00H
CM 机器指令MOV 例. 00H 无条件转 微地址1 0000(4位) 功能转移 01H 无条件转 微地址2 入口地址= 机器指令ADD 微程序1 微地址1 功能转移 0001(4位) 微程序2 入口地址= 微地址2
82
PLA 3.9.4 微程序的顺序控制方式 (2)多级功能转移 先根据操作码实现第一次功能转移后,再根据寻址方式实现第二次转移,以寻找操作数。
入口地址 1 入口地址 2 IR
83
3.9.4 微程序的顺序控制方式 二. 后继微地址的形成 每条微指令执行完后,如何形成后继微地址。 1. 增量方式 顺序:现行微地址+1。
跳步:现行微地址+2。 无条件转移:现行微指令给出转移微地址。 条件转移:现行微指令给出转移微地址和转移条件。 转微子程序:现行微指令给出微子程序入口。 返回微主程序:现行微指令给出寄存器号。
84
3.9.4 微程序的顺序控制方式 2. 断定方式 由直接给定和测试断定相结合形成微地址。 微指令(µIR) 给定部分 断定条件
微地址字段 (顺序控制字段) 微命令字段 (微操作控制字段) 微指令(µIR) 给定部分 断定条件 给定后继微地址 高位部分 指明后继微地址低 位部分的形成方式
85
3.9.4 微程序的顺序控制方式 例1. 01 10 A= 11 微指令 D(给定) A(条件) 微地址10位, 约定:
位数可变 2位 微地址10位, 约定: 01 微地址低4位为操作码,D给定高 位; 6 10 A= 微地址低3位为机器指令源寻址方式 7 编码,D给定高 位; 11 微地址低3位为机器指令目的寻址方式 7 编码,D给定高 位。
86
3.9.5 模型机的微程序设计 一. 时序系统 微指令周期 P 微指令 打入 µIR 结果打入目的地, 读取后继 微指令 控制数 据通路
操作 后继微地址打 入 µAR
87
3.9.5 模型机的微程序设计 二. 微指令格式 按数据通路各段操作划分字段,同类操作中互 斥的微命令放同一字段。 1.格式(27位)
AI BI SM C0 S ZO EMAR R W ST SC 数据通路操作 访存操作 顺序控制字段 辅助操作
88
3.9.5 模型机的微程序设计 AI BI SM C0 S ZO EMAR R W ST SC 2.各字段功能(P146-P147)
2.各字段功能(P146-P147) R0~R3、SP、PC (1)数据通路操作 D A AI: A输入选择 000 无输入 011 Ri A PC A 001 100 C A 010 D B BI: B输入选择 000 无输入 011 Ri B MBR B 001 100 010 C B R0~R3、PSW
89
3.9.5 模型机的微程序设计 AI BI SM C0 S ZO EMAR R W ST SC (2)访存操作 (3)辅助操作ST: SM:
SM: ALU功能选择 S3S2S1S0M C0: 初始进位选择 S: 移位选择 R0~R3、SP、PC、PSW ZO: 结果分配 001 CPRi (2)访存操作 EMAR、R、W 10 关中断 (3)辅助操作ST: 00 无操作 11 SIR 01 开中断
90
3.9.5 模型机的微程序设计 (4)顺序控制字段SC 增量 断定 指明微地址形成方式 SC: 0000 顺序执行 增量
0000 顺序执行 增量 0001 无条件转移 0010 按操作码分支 断定 0111 转微子程序 增量 1000 返回微主程序
91
3.9.5 模型机的微程序设计 三. 微程序的编制 编制说明: 1)先写取指微程序段,再给各类指令分别写对 应的微程序。
2)需公用的微程序段,如压栈、取源操作数、 取目的地址等,编成微子程序,放在后面。 在调用它们的地方,填上各自的入口地址。 3)微程序写完后,可编制微地址形成表。
92
3.9.5 模型机的微程序设计 1. 编制微程序 ( P149 表3-13) (1)编写顺序 按操作码编码顺序,逐级分类编写:
MOV指令、双操作数指令、单操作数指令、转移 指令 (2)实现分支 将同类断定依据所对应的微地址放在相应的微地址 形成表中,用微指令中的SC字段选取。
93
3.9.5 模型机的微程序设计 2. 微地址形成表 用PROM实现的断定条件和其所形成的微地址之间的对应关系表。 SC=0000 顺序执行
现行微地址+1 SC=0001 无条件转 现行微指令给出转移微地址 SC=0111 转微子程序 现行微指令给出微子程序 入口 SC=1000 返回微主程序 从寄存器取返回微地址
94
SC=0010 按操作码分支(4路) 表内单元地址 (断定依据): 单元内容 (微地址) MOV 03H 取源数、目的地 双 0CH 取源数、目的数 单 24H 取目的数 JMP/JSR 3FH 按J、PC分支 SC=0011 按操作码 DR分支(24路)进入执行 DR MOV 06H 执行规定操作 后转取指入口 DR MOV 0AH 双 单 3DH
95
3.9.5 模型机的微程序设计 SC=0100 按J、PC分支(4路) 40H 46H SC=0101 按源寻址方式分支(7路) 4DH
5EH SC=0110 按目的寻址方式分支 从60H开始
96
3.9.5 模型机的微程序设计 3. 微指令实例(取机器指令的微程序) M IR: PC+1 PC: 按操作码分支:
AI BI SM C0 S ZO EMAR R W ST SC 微地址 M IR: PC+1 PC: 按操作码分支:
97
3.9.6 微程序技术的应用与发展 一、优点: 二、缺点: 三、广泛应用于大多数CPU中
1、用规整的存储逻辑结构,代替不规整的、复杂的 硬连逻辑,利于设计自动化。 2、易于修改、扩展 3、适合作系列机的控制器。 4、可靠性较高,易于诊断和维护。 二、缺点: 读取控存,速度较慢;数据通路并行性降低 三、广泛应用于大多数CPU中
98
3.10 典型CPU简介 一、微型机 Intel 8086/8088 二、小型机 Alpha 三、巨型机 Cray 四、RISC
Transputer
99
Intel Core Duo Processor
参见:
100
练 习 1.在微程序控制的计算机中,若要修改指令系统,只要( )。 A、改变时序控制方式 B、改变微指令格式 C、增加微命令个数
1.在微程序控制的计算机中,若要修改指令系统,只要( )。 A、改变时序控制方式 B、改变微指令格式 C、增加微命令个数 D、改变控制存储器的内容 2.CPU采用同步控制方式时,在组合逻辑控制器中,常使用 , ,_______三级时序系统来提供定时信号。
101
练 习 3.微程序控制中,机器指令和微程序的关系是 ( ) A、每条机器指令由一条微指令来执行。
B、每条机器指令由一段微指令编成的微程序来解释执行。 C、一条机器指令组成的程序可由一条微指令来执行。 D、一条微指令由若干条机器指令组成。 4.微指令编码,就是微指令中的操作控制字段对微命令采用的表示方式,通常有以下三种表示方式:(),( ),( )。
102
练 习 5.微操作控制字段若采用分段直接编译法提供微命令,那么分段的基本原则是() A:分段段数越多越好 B:分段段数越少越好
C:将同类操作中互斥的微命令归为一组 D:将异类操作归为一组 6.在微指令中,顺序控制字段通常() A:用于指明后继微指令地址的形成方式 B:就是下一条微指令的地址 C:用于决定下一条指令的地址 D:用于决定下一条指令的微程序起始地址
103
练 习 7.微指令的编码方式,采用间接编译方法,其含义是() A:各小段独立定义其编码含义 B:借助多个程序编译器对微指令进行编译或解释
C:在各小段中,有的独立定义编码含义,有的由程序编译器编译 D:一个字段的含义不仅取决于本字段的编码,还兼由其他字段参与解释 8. 采用微程序控制的目的是() A:提高速度 B:简化控制器设计与结构 C:使用功能很简单的控制器能降低成本 D:不再需要机器语言
104
练 习 9.在同步控制方式中() A:各指令的执行时间相同 B:各指令占用节拍数相同 C:由统一的时序信号进行定时控制
D:各操作之间采取应答方式 10.计算机的信息传送从微观上看,表现为( )和数据流.
105
答案 D 工作周期,时钟周期,工作脉冲 B 4.直接控制法,分段直接编译法,分段间接编译法 5. C 6. A 7. D 8. B 9. C
10.控制流
Similar presentations