博客
关于我
山东大学软件学院计算机组成原理课程设计整机实验(2)
阅读量:733 次
发布时间:2019-03-21

本文共 1233 字,大约阅读时间需要 4 分钟。

文章目录

  • 实验时间
  • 实验任务
  • 对JO指令要求的理解
  • JO指令的实现方法
  • 实验中遇到的其他问题5.1 机器吞咽微指令的问题
  • 一、实验时间2021年5月6日星期四,第10周

    2021年5月14日星期四,第11周

    二、实验任务完成计组整机实验的拓展功能1:JO指令的实现

    (图片描述:关于JO指令的实现步骤图)

    三、对JO指令要求的理解

    开始时,我对拓展功能1的理解存在误区。我原本认为A4地址是通过相对寻址方式加法得来的,随后写入FF。但是真实情况是A4地址是固定的,不会通过相对寻址得到。
    后来向老师求教后,我得知以下正确理解:

  • 加法执行结束后,四个状态位将打入PSW寄存器,并显示在控制台的灯上
  • 如果加法不溢出,则顺序执行,不往A4地址中写数据(A4保持初始值)
  • 如果加法溢出,则根据相对偏移量跳转到STORE指令,并向A4地址中写FF
  • JO指令的第一个字长为操作码+0000,第二个字长为相对寻址的偏移量。老师要求我们根据偏移量寻找的是STORE FF A4指令,而不是操作数。

    STORE FF A4的地址通过相对寻址找到,即STORE的地址=当前PC值+偏移量

    注意:如果不溢出,内存不会改变,不能误认为不溢出要写00,溢出要写FF

    四、JO指令的实现方法

    关于JO指令的实现,有两种理解:

  • 我采用的方法是利用三条指令:
    • CMP指令:用于判断是否溢出,如果不溢出则顺序执行,如果溢出则跳转到JO指令
    • JO指令:当溢出时执行,取出JO第二字长的相对偏移量后,通过ALU作加法,将PC置为STORE指令的RAM地址
    • STORE FF A4指令:将FF存入A4,然后重置PC,跳转至乘法指令
  • 实现JO指令的关键在于条件判断:如何有溢出就跳转,不溢出就顺序执行。我的实现方法是:

    • 如果溢出,将PC置为跳转指令的RAM地址
    • 如果不溢出,则PC+1
    • 通过LOADPC微指令和溢出位V共同决定LD脚的输出
    • 只有LOADPC=1且V=1时,LD脚输出为0,此时PC置数模式
    • 其他情况下,PC+1模式

    另一种理解:

    • JO指令:用于判断溢出,如果溢出则根据相对寻址找到STORE指令并跳转
    • STORE FF A4:将FF存入A4地址中

    我认为这两种方法都可以,第二种实现更为简单。

    关于STORE FF A4指令:

    这是我自己设计的指令格式:

    • 第一字长:OP+低四位
    • 第二字长:A4
    • 第三字长:FF
    • 第四字长:执行后跳转的RAM地址

    五、实验中遇到的其他问题

    5.1 机器吞咽微指令的问题
    在初期微指令较少时,连续脉冲执行正常。但当加入乘法指令和JO后,单脉冲测试无异常,连续脉冲却会在乘法指令执行到一半时显示微指令全0,随后跳转至微指令取指阶段。
    后来向老师求教,老师称可能是机器老化或负载过大导致的。改用以下启动电路后,问题得到解决:

    (图片描述:改装后的二分频启动电路)

    这个问题并非 everyone 会遇到。如果你在单脉冲正常但连续脉冲出现问题时,可以考虑更换启动电路。

    转载地址:http://vpagz.baihongyu.com/

    你可能感兴趣的文章
    MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
    查看>>
    mysql 用户管理和权限设置
    查看>>
    MySQL 的 varchar 水真的太深了!
    查看>>
    mysql 的GROUP_CONCAT函数的使用(group_by 如何显示分组之前的数据)
    查看>>
    MySQL 的instr函数
    查看>>
    MySQL 的mysql_secure_installation安全脚本执行过程介绍
    查看>>
    MySQL 的Rename Table语句
    查看>>
    MySQL 的全局锁、表锁和行锁
    查看>>
    mysql 的存储引擎介绍
    查看>>
    MySQL 的存储引擎有哪些?为什么常用InnoDB?
    查看>>
    Mysql 知识回顾总结-索引
    查看>>
    Mysql 笔记
    查看>>
    MySQL 精选 60 道面试题(含答案)
    查看>>
    mysql 索引
    查看>>
    MySQL 索引失效的 15 种场景!
    查看>>
    MySQL 索引深入解析及优化策略
    查看>>
    MySQL 索引的面试题总结
    查看>>
    mysql 索引类型以及创建
    查看>>
    MySQL 索引连环问题,你能答对几个?
    查看>>
    Mysql 索引问题集锦
    查看>>