实验四 微程序控制器实验报告

news2024/11/17 21:50:30

我班算是几乎最后一个做实验的班级了,报告参考了一些朋友提供的数据加上一些自己的主观拙见,本人水平有限加之制作仓促难免有错误,望大家批评指正。 

4.1 微程序控制器实验

一、实验目的

(1) 掌握微程序控制器的组成原理。
(2) 掌握微程序的编制、写入,观察微程序的运行过程。
(3) 基于数据通路图,掌握微程序控制器的工作原理。
(4) 基于微程序流程图,掌握微程序控制器的工作原理。
(5) 基于信号时序图,掌握微程序控制器的工作原理

实验原理

  1. 微程序控制器根本的任务是完成指令的翻译和执行,执行方法就是将指命令进行编码 并储存在控制存储器里。
  2. 微程序控制器是时序逻辑严格的按照节拍来完成相应的操作,本实验用到的节拍是TS1-TS4.
  3. 实验设有一组编程控制开关 (位于时序与操作台)可实现对存储器的编程校验和运行具体的使用方法如下:

eg:向332211\rightarrowM(00H) 数据的写入操作  操作思路:分为中低高三路进行编程

  • 首先将 KK1 拨至‘停止’档、 KK3 拨至‘编程’档、 KK4 拨至‘控存’档、 KK5 拨至‘置数’档
  • CON 单元的 SD15——SD10 开关给出需要编辑的 控存 单元首地址(000000)
    IN 单元开关给出该控存单元数据的低 8 位(00010001)也就是11
    连续 两次按动时序与操作台单元的开关ST(一定要是两次)
    explain: 按动ST之后 (第一次按动后 MC 单元低 8 位显示该单元以前存储的数据,第二次按动后显示 当前改动的数据),此时 MC 单元的指示灯 MA5——MA0 显示当前地址(000000), M7——M0 显示当前数据(00010001)。

    输入:以下演示同上方低八位相同 但是一些小细节需要注意:被编辑的单元在三路都被修改之后控存单元CU会自动加一

    1. 然后将KK5 拨至‘加1’档,IN 单元开关给出该控存单元数据的中8 位(00100010),
    2. 连续两次按动开关 ST,完成对该控存单元中 8 位数据的修改,此时 MC 单元的指示灯 MA5——MA0 显示当前地址(000000),M15——M8 显示当前数据(00100010);
    3. 再由 IN 单元开关给出该控存单元数据的高 8 位(00110011),连续两次按动开关 ST,完成对该控存单元高 8 位数据的修改此时 MC 单元的指示灯 MA5——MA0 显示当前地址(000000),M23——M16 显示当前数据(00110011)。
    4. 此时被编辑的控存单元地址会自动加 1(01H),由 IN 单元开关依次给出该控存单元数据的低 8 位、中 8 位和高 8 位配合每次开关 ST 的两次按动,即可完成对后续单元的编辑。

    校验输入:

    • 编辑完成后需进行校验,以确保编辑的正确。以校验 00H 单元为例,对于控制存储器进行校验的具体操作步骤如下:
    • 首先将 KK1 拨至‘停止’档、KK3 拨至‘校验’档、KK4 拨至‘控存’档、KK5 拨至‘置数’档。
    • 由 CON 单元的 SD15——SD10 开关给出需要校验的控存单元地址(000000),
    • 连续两次按动开关 ST,MC 单元指示灯 M7——M0 显示该单元低 8 位数据(00010001);
    • KK5 拨至‘加 1’档,再连续两次按动开关 ST,MC 单元指示灯 M15——M8 显示该单元中 8 位数据(00100010);
    • 再连续两次按动开关 ST,MC 单元指示灯 M23——M16 显示该单元高 8 位数据(00110011)。
    • 再连续两次按动开关 ST,地址加 1,MC 单元指示灯 M7——M0 显示 01H 单元低 8 位数据。如校验的微指令出错,则返回输入操作,修改该单元的数据后再进行校验,直至确认输入的微代码全部准确无误为止,完成对微指令的输入。

    对字段进行平行操作

    位于实验平台 MC 单元左上角一列三个指示灯 MC2、MC1、MC0 用来指示当前操作的微
    程序字段,分别对应 M23——M16、M15——M8、M7——M0。实验平台提供了比较灵活的
    手动操作方式,比如在上述操作中在对地址置数后将开关 KK4 拨至‘减 1’档,则每次随着开
    关ST 的两次拨动操作,字节数依次从高 8 位到低 8 位递减,减至低 8 位后,再按动两次开关
    ST, 微地址会自动减一,继续对下一个单元的操作。

对于跳转指令 微程序的方式是AD(CMDR)->CMAR  OP(CMAR)->微地址形成部件->CMAR

二、实验预习

1、阅读实验指导书,然后回答问题。

(1) 微指令字长共 24 位,控制位顺序如表 4-1-1:

其中 MA5…MA0 为 6 位的( 后续微地址),A、B、C 为三个(为三个译码字段 ),分别由三个控制位译码出多位。C 字段中的 P<1>为(为测试字位 )。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的( 微地址入口),从而实现完成对指令的识别,并实现微程序的分支。本系统上的 指令译码原理如图 4-1-3 所示,图中 I7…I2 为指令寄存器的第 7…2 位输出,SE5…SE0 为微控器单元微地址锁存器的强置端输出,指令译码逻辑在控制器单元的INS_DEC 中实现。

个人感觉译码方式是直接译码。

(2)本实验安排了四条机器指令,分别为 ADD(0000 0000)、IN(0010 0000)、 OUT(0011 0000)和 HLT(0101 0000)。  括号中为各指令的二进制代码,指令格式如下,请补充说明部分。                                       

   实验中机器指令由 CON 单元的二进制开关手动给出,其余单元的控制信号均由微程序控制器自动产生,为此可以设计出相应的数据通路图,

  • 图中一个矩形方框表示一条微指令,方框中的内容为该指令执行的微操作,
  • 右上角的数字是该条指令的微地址,右下角的数字是该条指令的后续微地址,
  • 所有微地址均用 16 进制表示。
  • 向下的箭头指出了下一条要执行的指令。P<1>为测试字,根据条件使微程序产生分支。

 实验步骤

连线

  • 实验原始记录

(一)本机运行

1、按照实验指导书的步骤完成操作,并填写表格。

表4-1 程序运行过程

机器指令

机器

指令码

微指令

地址

下地址

高五位

S3-S0

A 字段

B 字段

C 字 段

MA5-MA0

IN

0010 0000

00

000001

00000

0000

000

000

000

000001

01

110100

00000

0000

111

000

001

110000

32

000001

00011

0000

011

000

000

000001

ADD

0000 0000

01

110000

00000

0000

111

000

001

110000

30

000100

00000

0000

001

010

000

000100

04

000101

00000

0000

010

010

000

000101

05

000001

00000

1001

011

001

000

000001

OUT

0011 0000

01

110011

00000

0000

111

000

001

110000

33

0000001

00101

0000

000

010

000

000001

HLT

0101 0000

01

110101

00000

0000

111

000

001

110000

35

110101

00000

0000

000

000

000

110101

通过IN单元输入的值为(00100011 ),运行结束后,通过OUT单元输出的值为( 01000110)

写出连续执行四条机器指令(IN-ADD-OUT-HLT)程序的每条微指令的下地址执行顺序

000000→000001→(000000)→(000001)→(110000)→000001→(110010)→000001→(000001)→000001→(110000)

 思考题:机器指令30H(即OUT指令)执行时,观察寄存器R0中的数据何时送入OUT单元?受哪些信号影响?

直接看时序图和数据流图:T3时刻上升沿送入OUT单位 受时钟信号、WR信号、IOM信号、R0_B信号影响

操作 

 

 4.2  CPU 与简单模型机设计实验

一、实验目的

  (1) 掌握一个简单 CPU 的组成原理。
(2) 在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。
(3) 为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。


二.实验预习

(1)实验4-2在4-1微程序控制器实验的基础上增加了三个部件,一是(PC ),另一个是( AR ),还有就是 (MEM),因而在微指令中应增加相应的控制位,其微指令格式

如表4-2-1所示:

4-2-1 微指令格式

 (3)对照实验指导书二进制微代码表,结合上述机器程序(IN →ADD →OUT→ JMP→HLT),写出执行机器程序时微指令下地址的变化情况(自行填写)(     )

2.简述微指令与4-1中微指令控制位有哪些不同?

A字段增加101 控制LOAD信号,用来控制主存  和110 控制LDAR信号 控制地址寄存器AR

B字段增加110 控制 PC_B信号 控制PC输出

C字段增加101 控制LDPC信号 控制PC输入

  • 实验原始记录

按照实验指导书的步骤完成操作,并填写表格。

表4-1 程序运行过程

机器指令

MEM地址

机器

指令码

微指令

地址

下地址

高五位

S3-S0

A字段

B 字段

C 字 段

MA5-MA0

IN

00

20

00

000001

00000

0000

000

000

000

000001

01

000011

00000

0000

110

000

101

000011

03

110010

00010

0000

111

000

001

110000

32

000001

00011

0000

011

000

000

000001

ADD

01

00

01

000011

00000

0000

110

000

101

000011

03

110000

00010

0000

111

000

001

110000

30

000100

00000

0000

001

010

000

000100

04

000101

00000

0000

010

010

000

000101

05

000001

00000

1001

011

001

000

000001

OUT

02

30

01

000011

00000

0000

110

000

101

000011

03

110011

00010

0000

111

000

001

110000

33

000001

00101

0000

000

010

000

000001

JMP

addr

03

04

E0

00

01

000011

00000

0000

110

000

101

000011

03

111100

00010

0000

111

000

001

110000

3C

011101

00000

0000

110

110

101

011101

1D

000001

00000

0000

101

000

101

000001

HLT

05

50

01

000011

00000

0000

110

000

101

000011

03

110101

00010

0000

111

000

001

110000

35

110101

00000

0000

000

000

000

110101

通过IN单元输入的值为(00100011 ),运行结束后,通过OUT单元输出的值为(01000110 ) 

思考题

指导书给出的程序中,跳转到了START,即地址00,程序将循环执行前四条指令,那么能否实现停机操作?试通过改写程序代码完成停机(将机器指令列出即可,不需要实现)。 

.00000000 00100000 ; START: IN R0 从 IN 单元读入数据送 R0
00000001 00000000 ; ADD R0,R0 R0 和自身相加,结果送 R0
00000010 00110000 ; OUT R0 R0 的值送 OUT 单元显示
00000011 11100000 ; JMP START 跳转至 00H 地址
00000100 00000000 ;
00000101 01010000 ; HLT

参考资料

计算机组成原理实验之微程序控制器实验_weixin_34279579的博客-CSDN博客

(1条消息) 计算机组成原理实验:微程序控制实验_微程序控制器实验_海轰Pro的博客-CSDN博客

计算机组成原理 微程序控制器实验_Long_UP-DevPress官方社区 (csdn.net)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/496866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot实习管理系统的设计与实现

摘 要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;实习管理也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人工管理显然已无法应对时代的变化&#xff0c;而实…

一键免费部署你的私人 ChatGPT 网页应用-ChatGPT Next Web

ChatGPT-Next-Web是一款基于GPT-3.5的在线聊天机器人应用程序。它可以自动回复用户输入的消息&#xff0c;并提供有用的信息和服务。该应用程序使用了最先进的自然语言处理技术和GPT-3.5模型&#xff0c;可以生成自然流畅的文本&#xff0c;并提供准确和个性化的回复。 项目地…

(浙大陈越版)数据结构 第二章 线性结构 2.3 队列

目录 2.3.1 队列及顺序存储实现 什么是队列 概念&#xff1a; 特性&#xff1a; 队列的抽象数据类型描述 队列的顺序存储实现 解决方案&#xff1a; 2.3.2 队列的链式存储实现 2.3.1 队列及顺序存储实现 什么是队列 概念&#xff1a; 和堆栈一样&#xff0c;是一种受…

黑马点评项目导入

文章目录 开篇导读项目地址导入SQL项目架构介绍后端项目导入前端项目导入 开篇导读 亲爱的小伙伴们大家好&#xff0c;马上咱们就开始实战篇的内容了&#xff0c;相信通过本章的学习&#xff0c;小伙伴们就能理解各种redis的使用啦&#xff0c;接下来咱们来一起看看实战篇我们…

刚刚!BingChat全面开放,人人可用!

大家好&#xff0c;我是鸟哥。 如题&#xff0c;微软真是下血本。昨天毫无征兆的宣布BingChat全面开放&#xff0c;人人可用&#xff01;众所周知ChatGPT得使用门槛有多高&#xff0c;而BingChat底层调用的是GPT4.0的模型&#xff0c;这无疑是白嫖GPT4.0最简单的姿势了。鸟哥一…

阿里云服务器镜像怎么选?操作系统版本选择说明

阿里云服务器镜像怎么选择&#xff1f;云服务器操作系统镜像分为Linux和Windows两大类&#xff0c;Linux可以选择Alibaba Cloud Linux&#xff0c;Windows可以选择Windows Server 2022数据中心版64位中文版&#xff0c;阿里云百科来详细说下阿里云服务器操作系统有哪些&#xf…

【移动端网页布局】flex 弹性布局 ④ ( 设置子元素是否换行 | flex-wrap 样式说明 | 代码示例 )

文章目录 一、设置子元素是否换行 : flex-wrap 样式说明1、flex-wrap 样式引入2、flex-wrap 样式取值说明 二、代码示例1、代码示例 : 默认情况下 flex 弹性布局子元素不会自动换行2、代码示例 : 自动换行 一、设置子元素是否换行 : flex-wrap 样式说明 1、flex-wrap 样式引入 …

统计字符串字符出现的次数

输入一个字符串&#xff0c;输出字符及相应字符出现的次数。 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c;不仅仅是基础那么简单…… 地址&#xff1a;https://lqp…

navicat连接云服务器mysql教程

包含navicat报错解决&#xff01; 文章目录 1 点击连接后填写相关内容2 报错解决2.1 1130 - Host XXX is not allowed to connect to this MySQL server。2.2 服务器未开启mysql端口通道 1 点击连接后填写相关内容 主机名或ip地址&#xff1a;填写服务器公网ip 用户名和密码&a…

GitHub使用(1):杂项

目录 1. ubuntu推送到github鉴权失败2. 分支重命名3. 指令升级删除分支推送到远程仓库 1. ubuntu推送到github鉴权失败 翻译下就是 remote&#xff1a;2021 年 8 月 13 日删除了对密码身份验证的支持。 远程&#xff1a;有关当前推荐的身份验证模式的信息&#xff0c;请参阅 ht…

开会记录【NiFi数据集成、AllData数据中台管理系统、RuoYi】

今天上午和下午开了个小会&#xff0c;上午说了一下Nifi&#xff0c;下午具体说了一下nifi和ruoyi。 目录 上午 下午 上午 三个人开会。 上次说的挖掘平台&#xff0c;您这边是否有技术人员对nifi比较熟悉&#xff0c;并且能够将相关功能集成到数据中台系统中。 现在结构化的…

LeetCode---回溯算法中的子集问题

78. 子集 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[],[1],[2]…

浅谈“孔乙己”的长衫

书中的孔乙己 孔乙已是鲁迅笔下人物&#xff0c;穷困流倒还穿着象征读书人的长衫&#xff0c;迁腐、麻木。最近&#xff0c;大家自我调佩是“当代孔乙己”&#xff0c;学历成为思想负担&#xff0c;找工作时高不成低不就。 当代的“孔乙己” 如今社会&#xff0c;从小学开始每…

【DP】学习之背包问题

01背包 2. 01背包问题 - AcWing题库 记忆化搜索 #include<bits/stdc.h> using namespace std; const int N1e310; int n,m; int v[N],w[N]; int res; int mem[N][N]; int dfs(int x,int spv) {if(mem[x][spv]) return mem[x][spv];if(x>n) return mem[x][spv]0;if…

国内免费使用gpt-4-如何接入ChatGPT4

如何用上gpt-4 GPT-4尚未正式发布和公开&#xff0c;因此我们无法提供对GPT-4的具体使用方法。但是&#xff0c;可以从GPT-4的前一代——GPT-3的使用经验和GPT-4的预期功能来看&#xff0c;建议如下&#xff1a; 了解GPT-4的语言处理能力和适用场景&#xff1a;GPT-4预计将进一…

项目实现读写分离操作(mysql)

读写分离 1.问题说明 2.读写分离 Master&#xff08;主库&#xff09;----(数据同步)—> Slave&#xff08;从库&#xff09; Mysql主从复制 mysql主从复制 介绍 mysql主从复制是一个异步的复制过程&#xff0c;底层是基于mysql数据库自带的二进制日志功能。就是一台或多台…

【C语言】数组讲解

【C语言】数组讲解 1.一维数组的创建和初始化1.1一维数组的创建1.2一维数组的初始化1.3一维数组的使用1.4一维数组在内存中的存储 2.二维数组的创建和初始化2.1二维数组的创建2.2二维数组的初始化2.3二维数组的使用2.4一维数组在内存中的存储 3.数组越界4.数组作为函数参数4.1冒…

Mysql第四章 分库分表,读写分离,主从架构

这里写自定义目录标题 一 分库分表1 为什么要分库分表2 分库分表的几种方式2.1 垂直拆分2.1.1 表的垂直拆分2.1.2库的垂直拆分2.1.2 垂直拆分的特点 2.2 水平拆分2.2.1 表的水平拆分2.2.2 库的水平拆分2.2.3 水平拆分的特点 3 分库分表的技术选型3.1 JDBC直连层3.2 proxy代理层…

RocketMQ安装以及源码启动

RocketMQ是一款消息中间件&#xff0c;在我们项目中主要是使用它来进行异步处理业务以及进行解耦&#xff0c;当然还可以用它实现其他业务需求比如流削峰等等&#xff0c;它提供的功能特别多&#xff0c;比如延迟消费、定时消费、消息重试、顺序消费等等。它的整体设计是追求简…

基于Session实现短信验证码登录流程

文章目录 1 发送短信验证码与登录2 登录拦截功能3 隐藏用户敏感信息4 问题: 多台Tomcat的session共享问题 分析一下流程 发送验证码&#xff1a; 用户在提交手机号后&#xff0c;会校验手机号是否合法&#xff0c;如果不合法&#xff0c;则要求用户重新输入手机号 如果手机号…