简单模型机实验

电路图

链接:https://pan.baidu.com/s/1D3Vx_rMmmESP5rIswSl2Ag?pwd=2333
提取码:2333

报告部分

实验5 简单模型机实验
5.1实验目的
(1)通过总线将微程序控制器、运算器、存储器等联机,组成一台模型计算机。
(2)用微程序控制器控制模型机数据通路,运行由4条机器指组成的简单程序。
(3)掌握微指令与机器指令的关系,建立整机概念。
5.2实验要求
(1)做好实验预习,复习微指令和机器指令的概念,读懂实验电路图,熟悉实验元器件的功能特性和使用方法。
(2)对于实验任务中的问题,在实验前预先给出答案,以便与实验结果相比较。
(3)在实验过程中单步运行微程序,注意理解微程序与程序的联系和区别。
(4)写出实验报告。
5.3实验原理
本实验综合了前面实验的电路,将运算器模块、存储器模块和控制器模块通过总线连接在一起,组成了一个简单的模型机,其电路如图5.1所示。
在这里插入图片描述

图5.1 简单模型机总框图
实验电路中涉及的主要控制信号如下:
(1)M:选择ALU的运算模式(M=0,算术运算;M=1,逻辑运算)
(2)S3,S2,S1,S0:选择ALU的运算类型。如M=0时,设为1001表示加法运算。
(3):向ALU最低位输入的进位信号,=0时有进位输入,=1时无进位输入。
(4) LDDR1:DR1的数据加载信号,LDDR1=1时在T4的上升沿将数据锁存到DR1。
(5)LDDR2:DR2的数据加载信号,LDDR2=1时在T4的上升沿将数据锁存到DR2.。
(6):ALU输出三态门使能信号,为0时将ALU运算结果输出到总线。
(7):开关输出三态门使能信号,为0时将SW7~SW0数据发送到总线。
(8):PC输出三态门使能信号,为0时将PC的值输出到总线。
(9):PC的置数信号,为0时PC工作在置数模式,可在此模式下为PC设置初值。
(10)LDPC:PC的加载信号,为1时在T4的上升沿执行清零、置数或计数操作。
(11):R0芯片的输出控制信号,为0时将R0中的数据输出到总线。
(12)LDR0:R0的数据载入信号,为1时在T4上升沿将数据存入R0。
(13)LDIR:IR的加载信号,当LDIR=1时在T3的上升沿将指令锁存到IR。
(14):6116片选信号,为0时6116正常工作。
(15)WE:存储器写信号,在=0、=0的条件下,当WE=1且T3=1时进行写操作,否则进行读操作。
(16)LDAR:AR的地址加载信号,当LDAR=1时在T3的上升沿将地址锁存到AR。
(17)T1~T4:时序信号,对应一个CPU周期。
(18)Ts,So,Se,Sa:Ts为时钟源输入,So为停止信号,Sa为开始信号,Se为单步运行。
在控制器实验中,实现了自动按照AR中的指令逐条取出对应的微指令。在本实验中,程序存储在RAM中,微程序存储在控制存储器中,要实现自动从RAM里逐条取出指令放入IR,并按照IR中的指令自动从控制存储器读出相应的微程序执行。
本实验用到的微指令长度为24bit,微指令格式如表5-1所示。
在这里插入图片描述
本实验使用的微程序流程如图5.2所示。
在这里插入图片描述

图5.2 微程序流程图
对应的微程序代码存放在控制存储器中,如表5-2所示。
表5-2 微程序二进制代码表
在这里插入图片描述

一条指令对应一个微程序,一个微程序是多条微指令的有序集合。
模型机共包含4条指令,指令格式如表5-3所示。本实验用这4条指令编写了一个简单程序,并已存入RAM。RAM中的程序和数据如表5-4所示。
在这里插入图片描述

在这里插入图片描述

5.4实验内容与步骤
1.运行虚拟实验系统,按照图5.1绘制实验电路,生成如图5.3所示电路。
在这里插入图片描述

2.打开电源开关。
3.进行电路预设置。将DR1、DR2和AR的置1,将计数器的、ENT、ENP置1,时序发生器的Step置1(可在开电源之前设置)。微地址寄存器74LS175和指令寄存器IR的置1。此时微地址寄存器和IR已初始化为零,模型机将从控制存储器的零地址开始运行。
4.在数据开关(SW7~SW0)上设置好程序的起始地址(00000000)。
5.单击1次时序发生器的Start按钮,思考并回答问题:此时执行的是微程序流程图中的第几条微指令?作用是什么?
6.再单步执行两条微指令,思考并回答问题:这两条微指令的作用是什么?
7.通过数据开关(SW7~SW0)设置操作数1的值为00010100。
8.单击Start,执行微指令SW→R0,将操作数1保存到累加器R0中。
9.继续单步执行之后的微指令,直到第一轮循环结束。在此过程中注意观察总线上数据灯的显示,并说明每个显示出来的数字的意义,将表5-5补充完整。

  1. 利用菜单“工具/存储器芯片设置”选项,查看运算结果是否已填入指定内存单元。
    5.5实验结果
    本实验需要记录的结果是回答5.4节实验内容与步骤中,第5、6、9、10步提出的问题:
    5.单击1次时序发生器的Start按钮,思考并回答问题:此时执行的是微程序流程图中的第几条微指令?作用是什么?
    答:此时执行的是微程序流程图中的第1条也就是00地址的微指令,该微指令是nop,也就是空操作指令,该指令用于控制时间周期。Nop是no operation 的缩写。Nop无操作数,所以称为空操作。执行Nop指令只使程序计数器PC加1,所以占用一个机器周期。
    6.再单步执行两条微指令,思考并回答问题:这两条微指令的作用是什么?
    答:第一个是SW→PC,将输入的地址存到程序计数器PC中,第二条指令是PC→AR,同时PC+1,PC(program counter)是程序计数器,存放下一条指令的主存地址。AR(adress register)是地址寄存器,与主存的地址总线直接连接,在从主存取数据前,存放要数据的地址。这条指令的意思是:PC值送AR,准备从主存取指令;当前PC值+1,使PC存放下一条指令的主存地址。
  2. 将表5-5补充完整。
  3. 对每条指令的执行结果进行说明,并将使用菜单“工具/存储器芯片设置”选项,查看运算结果时的界面进行截图。
    指令 结果说明
    IN SW→R0 数据开关上的值00010100送入R0寄存器中
    ADD R0+(A)→R0 R0中的00010100与内存地址1000中的数据00001011 相加,结果为00011111,将结果送入R0寄存器中
    STA R0→(A) 将R0寄存器中的00011111值送入内存地址1001
    JMP A→PC 将内存地址1000中的00011111值送入PC中
    在这里插入图片描述

5.6思考与分析
1.指令与微指令、程序与微程序之间有什么联系?
微程序控制器中,机器指令与微指令的关系是每一条机器指令由若干微指令组成的微程序来解释执行。微程序是由多个机器指令组成的机器指令集,程序则是为了完成某一应用功能所编写的代码的集合。简单一点,微程序是机器指令级别的,程序是高级语言级别的。程序由一组指令组成;指令由一个微程序实现;微程序由一组微指令实现;微指令由一组微操作实现。
2.无论是程序还是微程序都必须按一定的顺序执行其中的指令或微指令,请分别说明它们确定下一条要执行的指令或微指令的方法。
对于程序来说执行指令的寻址方式是确定本条指令的操作数地址以及下一条将要执行的指令的地址的方法。寻址方式分为两种:指令寻址和操作数寻址
指令寻址:顺序寻址(PC+1),跳跃寻址(JMP指令)
数据寻址:立即寻址,寄存器寻址,直接寻址,间接寻址,寄存器间接寻址,寄存器相对寻址,基址寻址,变址寻址,基址变址寻址

为了确定下一条微指令的地址,通常采用断定方式,其基本思想是:通过微指令顺序控制字段由设计者指定或由设计者指定的判别字段控制产生后继微指令地址,通常就是顺序寻址(PC+1),跳跃寻址(JMP指令)两种寻址方式。

  • 102
    点赞
  • 403
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七宫智音小天使

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值