计算机组成原理——中央处理器-控制器(课程笔记)

说明

  1. 博客作为笔记备份,不定时更新
  2. 参考内容为《计算机组成原理(第3版)》唐朔飞 高等教育出版社;王道考研《计算机组成原理考研复习指导2023》
  3. 文中的例题摘自王道考研《计算机组成原理考研复习指导2023》,大多是我个人认为较为典型的题目以及错题的部分整理

控制器的功能和工作原理

1. 控制器的结构和功能

结构

![[Pasted image 20220626194001.png]]

  • 说明:虚线框内是控制器
  • 运算器部件通过数据总线和内存储器、I/O设备传送数据
  • I/O设备通过接口电路和总线相连接
  • 内存储器、I/O设备从地址总线接收地址信息,从控制总线得到控制信号,通过数据总线与其他部件传送数据
  • 控制器部件从数据总线接收指令信息,从运算器部件接收指令转移地址送出指令地址到地址总线,还要向系统中的部件提供它们运行所需的控制信号

功能

  • 从主存中取出一条指令,并指出下一条指令的地址
  • 对指令进行译码或测试,产生相应的操作控制信号
  • 指挥并控制CPU、主存、I/O设备之间的数据流动方向

2. 硬布线控制器

  • 基本原理:根据指令要求、当前的时序、外部和内部的状态,按时间的顺序发送一系列微操作控制信号
  • 它由复杂的组合逻辑门电路和一些触发器构成,因此又称组合逻辑控制器

2.1 硬布线控制单元图

为了简化控制单元的逻辑,将指令的操作码译码和节拍发生器从中分离出来,得到简化的CU单元图:
![[Pasted image 20220626195238.png]]

  • CU的输入信号:
    • 译码产生的指令信息指令的操作码是决定控制单元发出不同操作命令(控制信号)的关键,它指出了不同指令在执行周期所要完成的不同操作,它和时钟配合产生不同的控制信号
    • 时序系统产生的机器周期信号节拍信号。控制器受时钟控制,从而使其按照一定的先后顺序、一定的节奏发出控制信号,即一个时钟脉冲使CU发出一个操作命令,或发送一组需同时执行的操作命令
    • 来自执行单元的反馈信息即标志。控制单元有时需依赖CPU当前所处的状态产生控制信号,如BAN指令
    • 控制单元还接收来自控制总线的控制信号,如中断请求、DMA请求
  • CU的输出:输出到CPU内部或外部控制总线上

2.2 硬布线控制器的时序系统和微操作

时序
  • 时钟周期
  • 机器周期
    • 一个机器周期内可以完成若干微操作,每个微操作都需一定的时间,可用时钟信号来控制产生每个微操作命令
  • 指令周期
  • 微操作命令分析。控制单元具有发出各种操作命令(控制信号)序列的功能。这些命令与指令有关,而且必须按照一定次序发出,才能使机器有序的工作
微操作
  • 取指周期的微操作命令(无论是什么指令,取指周期都要有下列微操作命令)
    P C → M A R        现行指令地址 → M A R PC\rightarrow MAR\ \ \ \ \ \ \ 现行指令地址\rightarrow MAR PCMAR       现行指令地址MAR
    1 → R        命令存储器读 1\rightarrow R\ \ \ \ \ \ \ 命令存储器读 1R       命令存储器读
    M ( M A R ) → M D R        现行指令从存储器中读到 M D R M(MAR)\rightarrow MDR\ \ \ \ \ \ \ 现行指令从存储器中读到MDR M(MAR)MDR       现行指令从存储器中读到MDR
    M D R → I R        现行指令 → I R MDR\rightarrow IR\ \ \ \ \ \ \ 现行指令\rightarrow IR MDRIR       现行指令IR
    O P ( I R ) → C U        指令的操作码 → C U 译码 OP(IR)\rightarrow CU\ \ \ \ \ \ \ 指令的操作码\rightarrow CU译码 OP(IR)CU       指令的操作码CU译码
    P C + 1 → P C        形成下一条指令地址 PC+1\rightarrow PC\ \ \ \ \ \ \ 形成下一条指令地址 PC+1PC       形成下一条指令地址
  • 间址周期的微操作命令
    A d ( I R ) → M A R        将指令字中的地址码(形式地址) → M A R Ad(IR)\rightarrow MAR\ \ \ \ \ \ \ 将指令字中的地址码(形式地址)\rightarrow MAR Ad(IR)MAR       将指令字中的地址码(形式地址)MAR
    1 → R        命令存储器读 1\rightarrow R\ \ \ \ \ \ \ 命令存储器读 1R       命令存储器读
    M ( M A R ) → M D R        将有效地址从存储器读到 M D R M(MAR)\rightarrow MDR\ \ \ \ \ \ \ 将有效地址从存储器读到MDR M(MAR)MDR       将有效地址从存储器读到MDR
  • 执行周期的微操作命令
    • 非访存指令
      • CLA 清ACC 0 → A C C 0\rightarrow ACC 0ACC
      • COM 取反 A C C ‾ → A C C \overline{ACC}\rightarrow ACC ACCACC
      • SHR 算术右移 L ( A C C ) → R ( A C C ) , A C C 0 → A C C 0 L(ACC)\rightarrow R(ACC),ACC_0 \rightarrow ACC_0 L(ACC)R(ACC),ACC0ACC0
      • CSL 循环左移 R ( A C C ) → L ( A C C ) , A C C 0 → A C C n R(ACC)\rightarrow L(ACC),ACC_0\rightarrow ACC_n R(ACC)L(ACC),ACC0ACCn
      • STP 停机指令 0 → G 0\rightarrow G 0G
    • 访存指令
      • ADD X
        A d ( I R ) → M A R , 1 → R Ad(IR)\rightarrow MAR,1\rightarrow R Ad(IR)MAR,1R
        M ( M A R ) → M D R M(MAR)\rightarrow MDR M(MAR)MDR
        ( A C C ) + ( M D R ) → A C C (ACC)+(MDR)\rightarrow ACC (ACC)+(MDR)ACC
      • STA X 存数指令
        A d ( I R ) → M A R , 1 → W Ad(IR)\rightarrow MAR, 1\rightarrow W Ad(IR)MAR,1W
        A C C → M D R ACC\rightarrow MDR ACCMDR
        M D R → M ( M A R ) MDR \rightarrow M(MAR) MDRM(MAR)
      • LDA X 取数指令
        A d ( I R ) → M A R , 1 → R Ad(IR)\rightarrow MAR,1\rightarrow R Ad(IR)MAR,1R
        M ( M A R ) → M D R M(MAR)\rightarrow MDR M(MAR)MDR
        M D R → A C C MDR\rightarrow ACC MDRACC
      • 转移指令
        • JMP X 无条件转移 A d ( I R ) → P C Ad(IR)\rightarrow PC Ad(IR)PC
        • BAN X 条件转移(负则转) A 0 ⋅ A d ( I R ) + A 0 ‾ ⋅ ( P C ) → P C A_0\cdot Ad(IR)+\overline{A_0}\cdot (PC)\rightarrow PC A0Ad(IR)+A0(PC)PC

2.3 CPU的控制方式

控制单元控制一条指令的执行过程,就是依次执行一个确定的微操作序列的过程

同步控制方式
  • 所有控制信号均来自系统的统一时钟信号
  • 通常以最长的微操作序列最繁琐的微操作作为标准
  • 采用统一的、具有相同时间间隔和相同数目的节拍作为机器周期来运行不同的指令
  • 优点:电路简单
  • 缺点:运行速度慢
异步控制方式
  • 不存在基准时钟信号,各部件按自身固有的速度工作,通过应答方式进行联络
  • 优点:运行速度快
  • 缺点:控制电路比较复杂
联合控制方式
  • 介于同步、异步控制之间的一种折中
  • 实行大部分采用同步控制、小部分采用异步控制

2.4 硬布线控制单元设计步骤

列出微操作命令的操作时间表

在这里插入图片描述

  • 列出微操作命令的操作时间表。先根据微操作节拍安排,列出微操作的操作时间表
  • 操作时间表中包括各个机器周期、节拍下的每条指令完成的微操作控制信号
  • 表5.1中,FE、IND、EX为CPU工作周期标志, T 0 ∼ T 2 T_0\sim T_2 T0T2为节拍,I为间址标志
    • 在取指周期的 T 2 T_2 T2时刻,若测得I=1,则IND触发器置“1”,标志进入间址周期;若I=0,则EX触发器置“1”,标志进入执行周期。
    • 同理,在间址周期的 T 2 T_2 T2时刻,若测得IND=0(标志一次间址寻址),则EX触发器置“1”,进入执行周期;若测得IND=1(表示多次间接寻址),则继续间接寻址
    • 在执行周期的 T 2 T_2 T2时刻,CPU要向所有中断源发出中断查询信号,若检测到有中断请求且满足响应条件,则INT触发器置“1”,标志进入中断周期
    • 表中没有列出INT触发器置“1”的操作和中断周期的微操作
    • 表中第一行对应10条指令的操作码,代表不同的指令
    • 若某指令有表中所列出的微操作命令,其对应的单元格为1
进行微操作信号综合
  • 根据微操作时间表可写出各微操作控制信号的逻辑表达式并进行适当的简化,表达式一般包括以下因素:
    微操作控制信号 = 机器周期 ∧ 节拍 ∧ 脉冲 ∧ 操作码 ∧ 机器状态条件 微操作控制信号=机器周期\wedge节拍\wedge脉冲\wedge操作码\wedge机器状态条件 微操作控制信号=机器周期节拍脉冲操作码机器状态条件
  • 根据表中的信息便可列出每个微操作命令的初始逻辑表达式,经化简、整理可获得能用现有的门电路实现的微操作命令逻辑表达式。例如根据表5.1可写出 M ( M A R ) → M D R M(MAR)\rightarrow MDR M(MAR)MDR微操作命令的逻辑表达式:
    M ( M A R ) → M D R = F E ⋅ T 1 + I N D ⋅ T 1 ( A D D + S T A + L D A + J M P + B A N ) + E X ⋅ T 1 ( A D D + L D A ) = T 1 { F E + I N D ( A D D + S T A + L D A + J M P + B A N ) + E X ( A D D + L D A ) } \begin{aligned} M(MAR)\rightarrow MDR & = FE\cdot T_1+IND\cdot T_1(ADD+STA+LDA+JMP+BAN)+EX\cdot T_1(ADD+LDA)\\ &=T_1\{FE+IND(ADD+STA+LDA+JMP+BAN)+EX(ADD+LDA)\} \end{aligned} M(MAR)MDR=FET1+INDT1(ADD+STA+LDA+JMP+BAN)+EXT1(ADD+LDA)=T1{FE+IND(ADD+STA+LDA+JMP+BAN)+EX(ADD+LDA)}
    式中ADD、STA、LDA、JMP、BAN均来自操作码译码器的输出
画出微操作命令的逻辑图
  • 根据逻辑表达式可以画出每个微操作信号的逻辑电路图,并可用逻辑门电路实现
  • 举例: M ( M A R ) → M D R M(MAR)\rightarrow MDR M(MAR)MDR的逻辑表示式对应的逻辑图如下所示(图中没有考虑门扇入系数)[[Pasted image 20220727191714.png]]

3. 微程序控制器

  • 微程序控制器采用存储逻辑实现,将微操作信号代码化,使多条机器指令转化成为一段微程序并存入一个专门的存储器——控制存储器中,微操作控制信号由微指令产生

3.1 基本概念

基本思想
  • 将每条机器指令编写成一个微程序,每个微程序包含若干微指令,每条微指令对应一个或几个微操作命令
  • 微程序可以存储在控制存储器中,用寻址用户程序机器指令的方法来寻址每个微程序中的微指令
  • 微指令、微操作、微程序、机器指令的关系:
    ![[Pasted image 20220627095446.png]]
基本术语
  • 微命令 & 微操作
    • 微操作是计算机中最基本的、不可再分的操作,一条机器指令可以分解成一个微操作序列
    • 微命令是控制部件向执行部件发出的各种控制命令,微命令是构成控制序列的最小单位
    • 微命令和微操作一一对应,微命令是微操作的控制信号,微操作是微命令的执行过程
    • 微命令有相容性互斥性之分。相容性微命令可以同时产生、共同完成一些微操作;互斥性微命令不允许同时出现。相容和互斥是相对的,一个微命令可以和一些微命令相容,和另一些微命令互斥
  • 微指令 & 微周期
    • 微指令是若干微命令的集合
    • 存放微指令的控制存储器的单元地址称为位地址
    • 一条微指令通常包含两大部分信息
      • 操作控制字段(微操作码字段):用于产生某一步操作所需的各种操作控制信号
      • 顺序控制字段(微地址码字段):用于控制产生下一条要执行的微指令地址
    • 微周期:指从控制存储器中读取一条微指令并执行相应的微操作所需的时间
  • 主存储器 & 控制存储器
    • 主存储器用于存放程序和数据,在CPU外部,用RAM实现
    • 控制存储器CM,用于存放微程序,在CPU内部,用ROM实现
  • 程序 & 微程序
    • 程序是指令的有序集合,用于完成特定的功能
    • 微程序是微指令的有序集合
    • 一条指令的功能由一段微程序来实现
区分微程序和程序
  • 微程序由微指令组成,用于描述机器指令,是机器指令的实时解释器,是由计算机设计者实现编制好并存放在控制存储器中的,一般不提供给用户。对程序员来说,计算机系统中微程序的结构和功能是透明的
  • 程序由机器指令组成,是由软件设计人员实现编制好并存放在主存或辅存中的
  • 寄存器的区别
    • 地址寄存器 MAR:存放主存的读/写地址
    • 微地址寄存器 CMAR:存放控制存储器的读/写微指令的地址
    • 指令寄存器 IR:存放从主存中读出的指令
    • 微指令寄存器 CMDR或 μ I R \mu IR μIR:存放从控制存储器中读出的微指令

3.2 微程序控制器组成和工作过程

基本组成

![[Pasted image 20220627102854.png]]

  • 控制存储器:是微程序控制器的核心部件,用于存放各指令对应的微程序,可用ROM构成
  • 微指令寄存器 CMDR:存放从CM中取出的微指令,其位数与微指令字长相同
  • 微地址形成部件:用于产生初始微地址后继微地址,以保证微指令的连续执行
  • 微地址寄存器:接收微地址形成部件送来的微地址,为在CM中读取微指令做准备
工作过程

重复执行以下过程(一条机器指令的执行过程),周而复始直至整个程序执行完毕

  1. 执行取微指令公共操作
    • 在机器开始运行时,自动将取指微程序的入口地址送入CMAR,并从CM中读出相应的微指令送入CMDR
    • 取指微程序的入口地址一般为CM的0号单元,当取指微程序执行完后,从主存中取出的机器指令就已存入指令寄存器中
  2. 由机器指令的操作码字段通过微地址形成部件产生该机器指令对应的微程序的入口地址,并送入CMAR
  3. 从CM中逐条取出对应的微指令并执行
  4. 执行完对应于一条机器执行的微程序后,又回到取指微程序的入口地址,继续第1步,以完成取下一条机器指令的公共操作
微程序和机器指令
  • 通常,一条机器指令对应一个微程序。由于任何一条机器指令的取指操作都是相同的,因此可将取指令操作的微命令统一编成一个微程序,这个微程序只负责将指令从主存单元中取出并送至指令寄存器
  • 还可以编出对应间址周期和中断周期的微程序,这样,控制存储器中的微程序个数应为机器指令数加上对应取指、间址和中断周期等共用的微程序数
  • 注:若指令系统中具有n种机器指令,则控制存储器中的微程序数至少是n+1(1为公共的取指微程序)

3.3 微指令的编码方式

概述
  • 微指令的编码方式又称微指令的控制方式,是指如何对微指令的控制字段进行编码,以形成控制信号
  • 编码的目标是:在保证速度的情况下,尽量缩短微指令字长
方式
  • 直接编码(直接控制)方式
    ![[Pasted image 20220627145720.png]]

    • 直接编码方式无需进行译码,微指令的微命令字段中每一位都代表一个微命令
    • 位为1时表示选用这个微命令,为0表示不选用
    • 每个微命令对应并控制数据通路中的一个微操作
    • 优点:简单、直观,执行速度快,操作并行性好
    • 缺点:微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控制存储器容量极大
  • 字段直接编码方式
    ![[Pasted image 20220627150924.png]]

    • 将微指令的微命令字段分成若干小字段,把互斥性微命令组合在同一字段中,把相容性微命令组合在不同字段中,每个字段独立编码,每种编码代表一个微命令且各字段编码含义单独定义,与其他字段无关
    • 这种方式可以缩短微指令字长,但要通过译码电路译码后再发出微命令,因此比直接编码方式慢
    • 微命令字段的分段原则
      • 互斥性微命令分在同一段,相容性微命令分在不同段中
      • 每段包含的信息位不能太多,否则将增加译码电路的复杂性和译码时间
      • 一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此当某一字段为3位时,最多只能表示7个互斥的微命令,通常用000表示不操作
  • 字段间接编码方式

    • 一个字段的某些微命令需要由另一个字段中的某些微命令来解释,由于不是靠字段直接译码发出的微命令,因此称为字段间接编码方式,又称为隐式编码
    • 这种方式可进一步缩短微指令字长,但因为削弱了微指令的并行控制能力,因此通常作为字段直接编码方式的一种辅助手段

3.4 微指令的地址形成方式

  • 直接由微指令的下地址字段给出。微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,这种方式又称断定方式
  • 根据机器指令的操作码形成。机器指令取到指令寄存器后,微指令的地址由操作码经微地址形成部件形成
  • 其他方式
    • 增量计数法: ( C M A R ) + 1 → C M A R (CMAR)+1\rightarrow CMAR (CMAR)+1CMAR,适用于后继微指令的地址连续情况
    • 根据各种标志决定微指令分支转移的地址
    • 通过测试网络形成
    • 由硬件直接产生微程序入口地址
  • 说明:电源加电后,第一条微指令的地址可由专门的硬件电路产生,也可由外部直接向CMAR输入微指令的地址,这个地址就是取指周期微程序的入口地址

3.5 微指令的格式

水平型微指令

![[Pasted image 20220627153352.png]]

  • 水平型微指令指令字中的一位对应一个控制信号,有输出时为1,否则为0
  • 一条水平型微指令定义并执行几种并行的基本操作
  • 从编码方式看,直接编码、字段直接编码、字段间接编码和混合型编码都属于水平型微指令
  • 优点:微程序短,执行速度快
  • 缺点:微指令长,编写微程序麻烦
垂直型微指令

![[Pasted image 20220627153742.png]]

  • 垂直型微指令采用类似机器指令操作码的方式,在微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能
  • 一条垂直型微指令只能定义并执行一种基本操作
  • 优点:微指令短、简单、规整,便于编写微程序
  • 缺点:微程序长,执行速度慢,工作效率低
混合型微指令
  • 在垂直型微指令的基础上加一些不太复杂的并行操作
  • 微指令较短,便于编写;微程序也不长,执行速度加快
水平型微指令 VS 垂直型微指令
比较内容水平型微指令垂直型微指令
并行操作能力较强较差
执行一条指令时间较短较长
对应的微程序微指令字较长但微程序短微指令字短但微程序长
易掌握程度用户难以掌握与指令相似,相对较易掌握

3.6 微程序控制单元的设计步骤

1. 写出对应机器指令的微操作命令及节拍安排
  • 以取指阶段为例,取指操作对应的微指令为
    T 0          P C → M A R , 1 → R T_0\ \ \ \ \ \ \ \ PC\rightarrow MAR,1\rightarrow R T0        PCMAR,1R
    T 1          A d ( C M D R ) → C M A R T_1\ \ \ \ \ \ \ \ Ad(CMDR)\rightarrow CMAR T1        Ad(CMDR)CMAR
    T 2          M ( M A R ) → M D R , ( P C ) + 1 → P C T_2\ \ \ \ \ \ \ \ M(MAR)\rightarrow MDR,(PC)+1\rightarrow PC T2        M(MAR)MDR,(PC)+1PC
    T 3          A d ( C M D R ) → C M A R T_3\ \ \ \ \ \ \ \ Ad(CMDR)\rightarrow CMAR T3        Ad(CMDR)CMAR
    T 4          M D R → I R T_4\ \ \ \ \ \ \ \ MDR\rightarrow IR T4        MDRIR
    T 5          O P ( I R ) → 微地址形成部件 → C M A R T_5\ \ \ \ \ \ \ \ OP(IR)\rightarrow微地址形成部件\rightarrow CMAR T5        OP(IR)微地址形成部件CMAR
  • 执行阶段的微操作命令及节拍安排,分配原则类似。与硬布线控制单元微操作命令的节拍安排相比,多了将下一条微指令地址送至CMAR的微操作指令,即 A d ( C M D R ) → C M A R Ad(CMDR)\rightarrow CMAR Ad(CMDR)CMAR ,其余的微操作命令与硬布线控制单元相同
2. 确定微指令格式
  • 微指令格式包括:微指令的编码方式、后继微指令地址的形成方式、微指令字长等
  • 根据微操作个数决定采用何种编码方式,以确定微指令的操作控制字段的位数。由微指令数确定微指令的顺序控制字段的位数。最后按操作控制字段位数和顺序控制字段位数就可确定微指令字长
3. 编写微指令码点
  • 根据操作控制字段每位代表的微操作命令,编写每条微指令的码点

3.7 动态微程序设计和毫微程序设计

动态微程序设计
  • 在一台微程序控制的计算机中,若能根据用户的要求改变微程序,则这台机器就具有动态微程序设计功能
  • 动态微程序设计需要可写控制寄存器的支持,实现动态微程序设计可采用可擦除可编程只读存储器EPROM
毫微微程序设计(课本 P 413 P_{413} P413

![[Pasted image 20220627161712.png]]

  • 微程序可看做是解释机器指令的,毫微程序可看做是解释微程序的,毫微指令则是用来解释微指令的
  • 毫微程序设计采用两级微程序的设计方法:第一级微程序作为垂直型微指令,并行功能不强但又严格的顺序结构,由它确定后续微指令的地址,当需要时可调用第二级;第二级微程序为水平型微指令,有很强的并行操作能力,但不包含后续微指令的地址。第二级微程序执行完后返回第一级微程序
  • 注:垂直型微指令和水平型微指令并不是一一对应的,而是由水平型微指令(称为毫微指令)组成的毫微程序去执行垂直型微指令的操作
  • 毫微指令与微指令的关系就好比微指令与机器指令的关系

3.8 微程序控制器 VS 硬布线控制器

对比项目微程序控制器硬布线控制器
工作原理微操作控制信号以微程序的形式存放在CM中,执行指令时读出即可微操作控制信号由组合逻辑电路根据当前的指令码、状态和时序,即时产生
执行速度
规整性较规整繁琐、不规整
应用场合CISC CPURISC CPU
易扩充性易扩充修改困难

4. 例题

时序比较

P 235   8 P_{235}\ 8 P235 8)硬布线控制器和微程序控制器相比,()
A. 硬布线控制器的时序系统比较简单
B. 微程序控制器的时序系统比较简单
C. 两者的时序系统复杂程序相同
D. 可能是硬布线控制器的时序系统比较简单,也可能是微程序控制器的时序系统比较简单
解答:硬布线控制器需要结合各微操作的节拍安排,综合分析,写出逻辑表达式,再设计成逻辑电路,因此时序系统较为复杂;而微程序只需要按照节拍的安排,顺序执行微指令,因此较为简单
错误原因:错选C

微程序个数

P 236   13 P_{236}\ 13 P236 13)某带中断的计算机指令系统共有101种操作,采用微程序控制方式时,控制存储器中相应最少有()个微程序
A. 101 B. 102 C. 103 D. 104
解答:控制存储器中的微程序数至少是101+1+1,其中1是公共的取指微程序;另一个1 是中断周期的微程序(题中说了是带中断的计算机)
错误原因:错选B,忽略了中断周期的微程序

微指令的理解

P 236   15 P_{236}\ 15 P236 15)在微程序控制方式中,以下说法正确的是()
I. 采用微程序控制器的的处理器称为微处理器
II. 每条机器指令由一段微程序来解释执行
III. 在微指令的编码中,效率最低的是直接编码方式
IV. 水平型微指令能充分利用数据通路的并行结构
解答:正确的是:II、IV
III. 直接编码方式中每位代表一个微命令,不需要译码,因此执行效率最高,只是这种方式会使得微指令的位数大大增加
IV. 一条水平型微指令能定义并执行几种并行的基本操作,因此能够更充分利用数据通路的并行结构

控制器结构

P 236   18 P_{236}\ 18 P236 18)下列部件属于控制部件的是()
I. 指令寄存器
II. 操作控制器
III. 程序计数器
IV. 状态条件寄存器
A. I、III、IV B. I、II、III C. I、II、IV D. I、II、III、IV
解答:CPU的控制器主要由三个部件组成:指令寄存器、程序计数器、操作控制器。状态条件寄存器通常属于运算器部件,保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容。选B
错误原因:错选D,对控制器结构掌握不好,没有意识到状态条件寄存器不属于控制部件

P 236   19 P_{236}\ 19 P236 19)下列部件属于执行部件的是()
I. 控制器
II. 存储器
III. 运算器
IV. 外围设备
A. I、III、IV B. II、III、IV C. II、IV D. I、II、III、IV
解答:一台数字计算机基本可以划分为两大部分:控制部件和执行部件。控制器就是控制部件,而运算器、存储器和外围设备相对于控制器来说就是执行部件。选B
错误原因:错选D

微指令格式的设计

P 238   4 P_{238} \ 4 P238 4)某微程序控制器中,采用水平型直接控制(编码)方式的微指令格式,后续微指令地址由微指令的下地址字段给出。已知机器共有28个微命令,6个互斥的可判定的外部条件,控制存储器的容量为 512 × 40 512\times 40 512×40位,试设计其微指令格式,并说明理由
解答

  • 水平型微指令由操作控制字段、判别测试字段和下地址字段三部分构成
  • 微指令采用直接控制编码方式,因此其操作控制字段的位数等于微命令数,为28位
  • 后继微指令地址由下地址字段给出,根据控制存储器的容量 512 × 40 512\times 40 512×40位可确定为9位
  • 当微程序出现分支时,后继微指令地址的形成取决于状态条件——6个互斥的可判定外部条件,因此状态位应编码为3位
  • ![[微指令格式-4]]

P 238   5 P_{238} \ 5 P238 5)某机共有52个微操作控制信号,构成5个相斥类的微命令组,各组分别包含5、8、2、15、22个微命令。已知可判定的外部条件有两个,微指令字长28位
(1)按水平型微指令格式设计微指令,要求微指令的下地址字段直接给出后继微指令地址
(2)指出控制存储器的容量
解答
(1)根据5个互斥类的微命令组,各组分别包含5、8、2、15、22个微命令,考虑到每组必须增加一种不发命令的情况,条件测试字段应包含一种不转移的情况,则5个控制字段分别需给出6、9、3、16、23种状态,对应为3、4、2、4、5位。条件测试字段为2位。根据微指令字长为28位,下地址字段取28-18-2=8位,则其微指令格式为:![[微指令格式-5]]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值