文章目录

  • 控制器的功能和工作原理
    • 硬布线控制器
    • 硬布线控制器的设计
      • 组合逻辑设计
    • 微程序控制器
      • 设计思路
      • 基本结构
      • 工作原理
      • 微指令的格式
      • 水平型微指令的三种方式
      • 微指令的地址形成方式
      • 小结
    • 微程序控制单元的设计
    • 硬布线与微程序的比较
      • 小结

控制器的功能和工作原理

  1. 指令执行的过程中,在一个机器周期内我们需要通过若干个【微操作序列】来完成,那一个机器周期又会有若干个【时钟周期】组成,每个时钟周期又可以称为一个【节拍】,会在每一个节拍内发出一个所谓的【微命令】,用来完成对应的微操作。
  2. 所谓的微命令指的就是与这个微操作所对应的控制信号。
  3. 取指周期、间址周期、中断周期内所需要做的这些微操作,所有的指令都是一样的。
    只有执行期内所需要做的这些微操作序列可能会出现一些区别
  4. 设计控制器的核心思想
    但是只要我们能够知道指令的【操作码】能够判断这条指令的具体类型,那么我们也能够确定这条指令的执行周期内每个节拍需要完成哪些微操作,因此只要我们能够确定指令的操作码,并且再根据这几个【触发器】的信息来判断当前到底处于哪一个机器周期,另外再结合上【节拍信号】就是T0,T1,T2,也就是目前我们处于这个机器周期内的第几个节拍。最后再结合上【机器状态条件】,就比如说psw里边记录的什么溢出等这些状态条件结合这四个维度的信息,我们就可以确定现在所处的这个节拍下应该发出哪些命令,因为每个命令都是和微操作一 一对应的。



硬布线控制器

  1. 指令执行的过程中,在一个机器周期内我们需要通过若干个【微操作序列】来完成,那一个机器周期又会有若干个【时钟周期】组成,每个时钟周期又可以称为一个【节拍】,会在每一个节拍内发出一个所谓的【微命令】,用来完成对应的微操作。
  2. 所谓的微命令指的就是与这个微操作所对应的控制信号。
  3. 取指周期、间址周期、中断周期内所需要做的这些微操作,所有的指令都是一样的。
    只有执行期内所需要做的这些微操作序列可能会出现一些区别
  4. 设计控制器的核心思想
    但是只要我们能够知道指令的【操作码】能够判断这条指令的具体类型,那么我们也能够确定这条指令的执行周期内每个节拍需要完成哪些微操作,因此只要我们能够确定指令的操作码,并且再根据这几个【触发器】的信息来判断当前到底处于哪一个机器周期,另外再结合上【节拍信号】就是T0,T1,T2,也就是目前我们处于这个机器周期内的第几个节拍。最后再结合上【机器状态条件】,就比如说psw里边记录的什么溢出等这些状态条件结合这四个维度的信息,我们就可以确定现在所处的这个节拍下应该发出哪些命令,因为每个命令都是和微操作一 一对应的。

  1. 我们想要确定当前这个节拍下控制单元CU应该发出什么样的微命令,那么我们首先需要参考的是【指令的操作码】,因为不同的指令在执行阶段所需要做的微操作序列是不一样的好,所以我们首先需要把【指令寄存器IR】的操作码,送给【操作码译码器】。
  2. 还需要知道当前这个指令的【目前机器周期】,因此我们还需要把四个【触发器】的二进制信息把它送给CU,CU可以根据当前这几个触发器的值哪一个值为1,用这样的方式来判断目前处于哪个机器周期好,所以这样我们就得到了第二个需要的信息。
  3. 我们还需要让cu能够判断出当前处于这个机器周期内的【第几个节拍】,所以我们还需要给CU输入一个【节拍信号】,那节拍信号是通过一个所谓的【节拍发生器】来给出的。看这个图不难理解,就是我们的时钟部件会有规律的发出这种脉冲信号,每个【脉冲信号】就是一个【时钟周期】,那么这个节拍发生器接收到时钟部件发来的脉冲信号之后,他都会选择让其中的某一根输出线让它导通,比如一个脉冲让T0输出一个高电平,然后第二个脉冲让T2输出一个高电平,然后第三个,第四个以此类推,那这样的话CU就可以根据这些线每根线输入了高电平信号,用这个信息来判断当前是处于第几个节拍。那之前我们是规定了我们要采用定长机器周期,一个机器周期所包含的节拍数都是相等的,那对于这个图来说,相当于每一个机器周期会包含m+1个节拍,从T0到Tm总共m+1个节拍,那这些节拍信号是循环的发出的,也就是说如果此时已经到达了当前这个机器周期的最后一个节拍,发出这个节拍信号,接下来如果再接收到下一个脉冲信号,那么下一个节拍信号又会回到t0,那这也就意味着我们进入了下一个机器周期,所以这就是用节拍发生器来表示目前的节拍信号的一个原理。
  4. 最后我们还需要给CU提供一个输入的信息,也就是【机器的状态条件】。我们把所有的这些标志来自于执行单元,比如说我们之前说过的运算器里边会包含PSW还有ACC,那PSW里边会包含某一些很关键的信息位,比如说是否有溢出或者运算结果为正还是为负,有可能会影响到接下来的这个微操作序列的一个执行,那除了PSW之外,有可能会需要根据ACC累加寄存器里边存放的这个数的符号就是正负性之类的,这个信息也有可能会影响到接下来的操作序列的一个执行流。那除了来自运算器之外,也有可能会有来自io设备,还有来自于储存的一些反馈信号,也可能会影响到接下来的一个微操作执行流,所以这些标志信息也需要输入给控制单元。
  5. 那接下来就可以根据这四组的信息来决定当前这个节拍下。
    所以控制单元CU它的输出就是对应一系列的微命令,那么每一条输出线就对应着一个微命令,也就是对应着一个微操作,比如说如果我们想要让C1这个输出让他对应PC传到要对用这样的一个为操作那么我们只需要把C1这边输出线把它接到PCout和MARin就可以。

硬布线控制器的设计


  1. 对于PC+1这个微操作,,只要我们把PC的值放入MAR,那么我们就可以让pc的值加一了,所以这种微操作,我们只需要让他在第一个微操作之后就可以。不一定把它放到最后面,好,那我们可以把它放到三这类的操作的后面。
  2. 第二个微操作它的控制对象是主储存器,而第一个被操作,它的控制对象是两个具体的CPU内部的寄存器,所以这两个微操作中显然可以把他们安排在同一个节拍上完成,只要存储器此时空闲,那么就可以发出与第二个的操作所对应的微指令
    4和5这两个微操作,由于这两个微操作他们执行时间都很短,所以在一个时钟周期内,我们能够保证这两个微操作,所以虽然他们之间有前后的依赖关系,但是我们同样可以把他们安排在一个节拍的完成,因此在t2这一节拍拍可以完成4和5这两个微操作。
  3. 3和4【不可以】在一个节拍内完成
    原因在于3这个操作我们需要从主储存器当中读取数据,而从储存器中取得一个数据的用时是比较长的,因此我们必须使用一个时钟周期才可以保证我们能够从储存器当中读到这个数据,因此我们不能把3和4这两步安排在同一个节拍内

1和2被控对象不同,所以可以安排在一个节拍内
3需要访存,需要单独的一个节拍
4再用一个节拍

非访存指令:一定没有间址周期
访存指令:可能有间址周期

组合逻辑设计

  1. 填上1,表示这条指在取址阶段的T0节拍内是需要进行这两个微操作的
  2. T2节拍的后两行,I(爱)与I取反,当状态为I时,就需要把1放入IND这个触发器中,表示接下来要进入间址周期。
    当状态为I取反时,就把1传入EX这个触发器中,表示接下来直接进入执行周期

  1. 对于这些非访存指令,他们都不会进入间址周期
  2. 当我们进行间接寻址的时候,有可能进行多级的间接寻址。
    所以只有当IND取反等于1的时候,说明间址周期已经完毕,所以把1传递给触发器EX,接着才可以进入执行周期,

将各种指令分别在每一个节拍内执行的微操作都整合在对应的节拍内

  1. 加号(+)表示或
    IND·T 1 (ADD+STA+LDA+JMP+BAN):表示此时执行的是间址周期的第一个节拍,并且是括号中这几种指令的其中一种就执行M(MAR)→MDR这个一个特点微操作命令

微程序控制器

设计思路

  1. 我们用高级语言写的代码,会被翻译成一系列与之对等的机器指令,每一条机器指令又会被翻译成几条微操作,由微操作序列来完成这条指令的具体功能
  2. 微命令、微操作、微指令的区别:
    微命令和微操作是一 一对应的,微操作是强调我们要做什么,
    而微命令是强调我们要完成这一波操作需要发出哪一个控制信号,
    所以他们俩是一一对应的,
    一条微指令的执行其实有可能会包含多个微命令,也就是说一条微指令有可能会并行的完成两个或者更多个微操作。
  3. CPU在执行一条机器指令的时候,其实就是要执行这一条机器指令所对应的这个微程序。那我们可以借鉴之前提到过的存储程序的思想,就是可以在CPU出厂之前把所有的机器指令所对应的微程序都存放到控制里边的一个特殊的存储器,然后CPU可以根据当前要执行的这个机器指令的类型去找到与这条机器指令所对应的微程序,然后来一条一条的执行这个微程序当中所包含的微指令序列。

基本结构

  1. 控制存储器是用只读存储器ROM芯片来构成的,
    首先rom的读取的速度会非常快,要比RAM更快。
    另外一点ROM是一种非易失性的存储芯片,那么这就意味着CPU断电之后,这个rom芯片当中存储的这些微程序是不会丢失的。
  2. 每一条机器指令对应的这个微程序,应该是由CPU的厂商负责设计,并且需要在CPU出厂之前把这个rom里边的微程序数据全部把它给写好。

微指令序列一条一条往下执行的一个原理:
首先,我们需要根据这条【机器指令的操作码】来确定它所对应的微程序的起始地址到底是什么,所以这就【微地址形成部件】的一个作用。根据机器指令的操作码来确定这个机器指令它所对应的微指令序列的一个首地址,之后我们还需要引入一个逻辑电路,叫做【顺序逻辑】,顾名思义就是用于控制微指令的,因为我们的位置序列不一定是你调一调顺序的往下执行,如果说有中断发生或者没有中断发生的时候,这个微指令序列的执行次序肯定需要进行一些调整,所以这就是数据逻辑的一个作用,
所以当CPU取到了一条指令之后,执行这条指令的过程就是首先把指令的操作码送给【微地址值形成部件】,用来确定这条指令所对应的微指令序列的一个起始地址。然后接下来再根据顺序逻辑的标志这一类的信息确定接下来我们要执行的这一条微指令的一个存放地址。把微指令地址放到CMAR当中,然后经过【地址译码器】的译码之后,就可以选中cm所指向的那一条微指令,然后取出这条微指令,把它放到CMDR当中,那刚才我们说过一条微指令需要包含两个部分的信息,第一个部分的用来描述这条微指令所对应的控制信号,然后第二个部分是用来描述接下来要执行的一条微指令的一个地址。我把称为【下地址】,所以执行完这条微指令之后,需要把下地址的信息送给顺序逻辑,然后顺序逻辑再结合某一些机器标志的信息,再来决定下一条应该执行的微指令的存放地址,然后再把下一条微指令的地址送给CMAR,那这就是微指令序列一条一条往下执行的一个原理。
那回到现在我们要执行的这条微指令,它被放到CMDR当中,然后硬件电路需要根据这个微指令的控制码部分,像CPU内部的其他部件或者向系统总线来发出某一些控制信号,就比如说PCin,还有就是通过系统总线可以向储存器发送【读信号】,那到底要发出什么控制信号?就是根据当前这条微指令,这就是微程序控制器的一个基本结构

工作原理


  1. 程序由一系列的机器指令组成
    微程序由一系列的微指令组成
  2. 微指令序列是对指定具体功能的描述,每一条微指令可能会对应一个或者多个微操作。所以我们可以用微指令来描述指令执行的各个阶段需要完成哪些微操作。
  3. 另外主存储器是用来存放机器指令的,而控制器存储器,也就是控存是用来存放微指令序列的。他被集成在控制单元的内部,并且需要注意控存通常是用任务来实现的,可以实现按地址释放。
  4. 你在QQ出厂的时候,厂家会把这个CPU所支持的所有的指令对应的微程序都给写入到这个rom芯片当中,也就写入到控存里面。
  5. uPC=CMAR
    uIR=CMDR

微指令的格式

水平型微指令的三种方式


微指令的地址形成方式

小结

微程序控制单元的设计

唯一有一点区别就是最后这一步:
对于硬部线控制器来说,我们是把那个指令的操作码部分送给了指令译码器ID,然后这个指令译码器会发出与这个操作码相对应的那一根线的选通信号,这是硬部线控制器,
而对于微程序控制器来说,我们是要把指令操作码送给【微地址形成部件】。然后由微地址形成部件来指明这条指令在接下来的执行周期所对应的微程序的起始地址,那这是微程序控制器在取指阶段要做的一些事情,


  1. 考虑如何转入下一条微指令
    例如在取指周期,除了最后一条微指令之外,每次执行完一条微指令之后,还需要穿插一个【微操作】,就是要把当前执行的微指令,他的【下地址】信息送给CMAR。用于指明接下来要执行的微指令的地址,这个微操作的执行也需要消耗一个节拍
  2. 考虑如何转入下一格微程序(机器周期)
    比如取指周期,在执行完最后一条微指令c之后,还需要加一个节拍,需要将微地址形成部件传入CMAR
  3. 在取指周期
    硬布线控制器需要3个节拍
    微程序控制器需要5个节拍

硬布线与微程序的比较

小结

控制器的功能和工作原理相关推荐

  1. 5.4 控制器的功能和工作原理

    如下图所示计算机硬件系统的五大功能部件及其连接关系.它们通过数据总线,地址总线和控制总线连接在一起,其中点划线框内的是控制器部件. 控制器是计算机系统的指挥中心,控制器的主要功能有: 1> 从主 ...

  2. (计算机组成原理)控制器的功能和工作原理

    之前并未详细分析控制单元为完成不同指令所发出的各种操作命令,本文将会深入了解指令周期.机器周期.时钟周期(节拍)与控制信号的关系. 控制单元的功能 微操作命令分析 之前讲解过取值周期.间址周期的微操作 ...

  3. 5-4中央处理器-控制器的功能和工作原理

    文章目录 一.控制器的结构和功能 二.硬布线控制器 1.硬布线控制单元图 2.微操作命令分析 3.CPU的控制方式 (1)同步控制方式 (2)异步控制方式 (3)联合控制方式 4.硬布线控制单元的设计 ...

  4. 五、中央处理器(三)控制器的功能和工作原理

    目录 一.控制器的结构和功能 二.硬布线控制器 2.1硬布线控制单元图 2.2硬布线控制器的时序系统及微操作 2.3CPU的控制方式 2.4硬布线控制单元设计步骤 三.微程序控制器 3.1微程序控制器 ...

  5. 5.4控制器的功能和工作原理

    脑图 一些概念和错题知识点整理 在组合逻辑控制器中也存在微命令与微操作这两个概念,它们并非甚至是微程序控制器的专有概念 微指令包含两大信息:操作控制字段又称微操作码字段.顺序控制字段又称微地址码字段 ...

  6. 计算机组成原理——控制器的功能和工作原理

    硬布线控制器 每个指令都通过硬件电路的连接来执行 分析每个阶段的微操作序列 安排微操作时序 组合逻辑设计 微程序控制器 把指令通过软件的方式封装,封装后的指令称之为微程序,微程序分为一个一个的微指令, ...

  7. 计组-控制器的功能和工作原理

  8. 2 计算机控制器的组成,组合逻辑控制器组成结构及工作原理解析

    组合逻辑控制器组成结构及工作原理解析 按照控制信号产生的方式不同,控制器分为微程序控制器和组合逻辑控制器两类 微程序控制器是将全部控制信号存贮在控制存储器中. 优点:控制信号的逻辑设计.实现及改动都较 ...

  9. nginx 判断手机端跳转_nginx基本功能和工作原理

    nginx能做什么 反向代理正向代理负载均衡HTTP服务器(包含动静分离)反向代理和正向代理1.正向代理 简单的说,我是一个用户,我无法直接访问一个网站,但是我能访问一个代理服务器,这个代理服务器能访 ...

最新文章

  1. 计算机基础考试系统怎么使用,计算机基础课程考试系统使用说明.doc
  2. java怎么获取字符串位置,Java:在字符串中获取匹配位置的方法?
  3. @RequestBody的与@RequestParam.
  4. 80万辆车“云上飞驰”的背后
  5. Java equals()方法和hashCode()方法
  6. 杂志html转换服务平台,Verypdf HTML Converter(网页转换器)
  7. JAVA_pagecontext页面跳转
  8. spring4+struts2+hibernate5整合出现spring异常
  9. Android数据库一些源码分析
  10. 转:Android View.post(Runnable )
  11. 电脑围棋中的人工智能技术
  12. 不是抽象的, 并且未覆盖Handler中的抽象方法
  13. java计算机毕业设计科院垃圾分类系统源码+数据库+系统+lw文档+mybatis+运行部署
  14. 通用Redis查询工具类,结合函数编程和设计模式
  15. apache实验报告 linux_linux实验报告心得
  16. linux下ss工具简介
  17. python django 动态网页_Django创建动态网页的基础知识
  18. Flutter 自定义Widget——风车实现
  19. 【window操作】windows定时打开网页或程序
  20. Ramdisk -内存盘的使用

热门文章

  1. 为什么使用CMD [“nginx“, “-g“, “daemon off;“]启动nginx容器
  2. 安装KeOps过程中的踩坑记录
  3. 拆图神器 :shoebox
  4. 为何电商价格战无法避免
  5. 计算机基础知识测试2,计算机基础知识测试题2
  6. 【H3C V7交换机实战课程-8】IP组播配置与管理-王达-专题视频课程
  7. 最适合 Apple Silicon 的 Tensorflow 环境搭建
  8. 原装苹果手机_二手原装正品苹果手机及平板批发报价单359
  9. java标识符与关键字_Java标识符和关键字
  10. 互联网的发展促进了无界零售、数字零售、即时零售等一系列新模式的出现