【组成原理系列】微程序设计

微程序设计

思想

  • 一条机器指令对应一个微程序(存入 ROM)

框图及工作原理

  • 机器指令对应的微程序

  • 控制单元的基本框图

工作原理

全部微指令存在 CM 中,程序执行过程中 只需读出

  • 取指阶段(执行 LDA 取指微程序)

  • 执行阶段(执行 LDA 执行微程序)

微指令的编码方式

  • 直接编码(直接控制)方式

    • 在微指令的操作控制字段中,每一位代表一个微操作命令

    • 某位为 “1” 表示该控制信号有效

    • 速度最快

  • 字段直接编码方式

    • 将微指令的控制字段分成若干 “段”,每段经译码后发出控制信号
    • 每个字段中的命令是 互斥 的,缩短了微指令字长,增加了译码时间
  • 字段间接编码方式

  • 混合编码

    • 直接编码和字段编码(直接和间接)混合使用
  • 其他

微指令序列地址的形成

  • 形成方式

  • 地址来源

    • 微指令的 下地址字段 指出

    • 根据机器指令的 操作码 形成

    • 增量计数器

      • ( CMAR ) + 1 -> CMAR
    • 分支转移

    • 其他

微指令格式

  • 水平型微指令
    • 一次能定义并执行多个并行操作
    • 如 直接编码、字段直接编码、字段间接编码、直接和字段混合编码
  • 垂直型微指令
    • 类似机器指令操作码 的方式
    • 由微操作码字段规定微指令的功能
  • 两种微指令格式的比较
    • 水平型微指令比垂直型微指令并行操作能力强 ,灵活性强
    • 水平型微指令执行一条机器指令所要的微指令数目少,速度快
    • 水平型微指令 用较短的微程序结构换取较长的微指令结构
    • 水平型微指令与机器指令差别大

微程序设计举例

  • 1、写出对应机器指令的微操作及节拍安排(注意:每条微指令结束都要指明下一条的地址)

    • 取指阶段

    • 执行阶段

      • 非访存指令

      • 访存指令

      • 转移类指令

  • 2、确定微指令格式

    • 微指令的编码方式

      • 采用直接控制
    • 后续微指令的地址形成方式

      • 由机器指令的操作码通过微地址形成部件形成
      • 由微指令的下地址字段直接给出
    • 微指令字长

      • 由 20 种微操作确定 操作控制字段 ,最少 20 位
      • 由 38 条微指令确定微指令的 下地址字段 为 6 位
      • 微指令字长 可取 20 + 6 = 26 位
    • 微指令字长的确定

      • 38 条微指令中有 19 条38 条微指令中有 19 条是关于后续微指令地址 -> CMAR
        • 1 条:OP ( IR ) -> 微地址形成部件 -> CMAR
        • 18 条:Ad ( CMDR ) CMAR
        • 若用 Ad ( CMDR ) 直接送控存地址线,则 省去了输至 CMAR 的时间,省去了 CMAR
      • 同理
        • OP ( IR ) -> 微地址形成部件 -> 控存地址线,可省去 19 条微指令,2 个微操作
      • 即:
        • 下地址字段最少取 5 位:38 - 19 = 19
        • 操作控制字段最少取 18 位:20 - 2 = 18
    • 省去了 CMAR 的控制存储器

    • 最终确定(考虑留有一定的余量)

      • 取操作控制字段:18位 -> 24位
      • 下地址字段:5位 -> 6位
  • 3、编写微指令码点(只要对指令译码,然后执行控制字段对应操作即可)

    • 操作

    • 对应指令码点

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值