【计算机组成与体系结构Ⅰ】实验3 微程序控制器实验

news2024/11/13 18:48:31

一、实验目的

 

了解微程序控制器的组成原理

二、实验设备

TEC-4实验系统、万用表

三、实验内容
1:阅读微指令格式和微程序控制器的组成,微指令由操作控制和顺序控制两部分组成,1条微指令的字长35位(一个存储单元35位,采用数据线为8位的EEPROM,因此使用了5片。容量为:2^6*5字节/byte,即2^6*5*8位/bit),其中操作控制为25位,顺序控制10位(4位判别测试,6位微地址:uA5-uA0)。

 

 2:阅读机器指令功能与格式(即指令集)。

名称

助记符

功能

指令格式

R7 R6 R5 R4

R3  R2

R1  R0

加法

ADD Rd,Rs

Rd+Rs->Rd

0  0  0  0

RS1 RS0

RD1 RD0

减法

SUB Rd,Rs

Rd-Rs->Rd

0  0  0  1

RS1 RS0

RD1 RD0

乘法

MUL Rd,Rs

Rd*Rs->Rd

0  0  1  0

RS1 RS0

RD1 RD0

逻辑与

AND Rd,Rs

Rd&Rs->Rd

0  0  1  1

RS1 RS0

RD1 RD0

存数

STA Rd,[Rs]

Rd->[Rs]

0  1  0  0

RS1 RS0

RD1 RD0

取数

LDA Rd,[Rs]

[Rs]->Rd

0  1  0  1

RS1 RS0

RD1 RD0

无条件转移

JMP [Rs]

[Rs]->PC

1  0  0  0

RS1 RS0

X   X

条件转移

JC D

若C=1则

PC+D->PC

1  0  0  1

D3  D2

D1  D0

停机

STP

暂停运行

0  1  1  0

X    X

X    X

中断返回

IRET

返回断点

1  0  1  0

X    X

X    X

开中断

INTS

允许中断

1  0  1  1

X    X

X    X

关中断

INTC

禁止中断

1  1  0  0

X    X

X    X

3:阅读微程序流程图,其中每个方框上标出的是微地址,对于在P2处所产生的分支由P2条件起作用,并依据机器指令的OP字段做为每条机器指令(执行周期)的微程序的入口地址。

4:开关K5-TJI、K6-SKIP;K5、K6=0;将开关与控制器部分的有关信号连接。

5:令DP=1、DB=0、DZ=0(为单步执行)。

6:对不同控制台方式设置进行观察。

    令SWC=0、SWB=0、SWA=1(KRD,读取端口存储器)。

    按CLR#,从标有UA5-UA0的黄色LED上读出当前的微地址;按QD ,记录黄色LED的结果,即第一拍;继续重复上述步骤直到第五拍;按CLR#。

    注意:5片EEPROM的地址A6(引脚4)直接与控制台开关SWC连接,当SWC=1时,微地址大于或者等于40H,当SWC=0时,微地址的范围为00H—3FH。SWC主要用于实现读寄存器堆的功能。

7:了解微程序控制器如何区分各机器指令并进入相应的微程。

令SWC=0、SWB=0、SWA=0。(PR,启动程序)。

观察加法指令(ADD)的取指、执行过程。

    ①按CLR#,观察并记录微地址LED的结果,记录本条微指令中设为有效的微命令信息。

②按QD,观察并记录微地址LED的结果,记录本条微指令中设为有效的微命令信息(有效微操作位对应的微命令)。

③按QD,观察并记录微地址LED的结果,记录本条微指令中设为有效的微命令信息。

④按QD,观察并记录微地址LED的结果,记录本条微指令中设为有效的微命令信息。

⑤按QD,观察并记录微地址LED的结果,记录本条微指令中设为有效的微命令信息。(仅在此步骤用万用表测试本条微命令有效的信号读数值;另外测量SW_BUS#、 RS_BUS#、IAR_BUS#的值)。

⑥按QD,观察并记录微地址LED的结果,记录本条微指令中设为有效的微命令信息。按CLR#。

    注意:带有#的控制信号,低电平(0)为有效。其他信号控制信号,“1”有效。

四、实验结果

0:控制信号接线

控制开关与信号接口的一一对应关系如下所示:

开关

K0

K1

K2

K3

K4

信号

C

IR4

IR5

IR6

IR7

同时,令TJ-TJ1-GND;SKIP-GND;即把三个信号均采用接地。

1:记录ADD指令取指和执行过程对应的一段微程序和每条微指令对应得微地址。

  • SWC=0,SWB=0,SWA=1时,取指、执行ADD的黄色LED结果如下所示

观察黄色LED

第1拍

第2拍

第3拍

第4拍

第5拍

P3

P2

P1

P0

uA5

1

1

1

1

uA4

1

1

1

1

1

uA3

1

1

1

1

uA2

1

1

1

1

1

uA1

1

1

1

1

1

uA0

1

1

1

  • SWC=0,SWB=0,SWA=0时,取指、执行ADD的黄色LED结果如下所示

观察黄色LED

第1拍

第2拍

第3拍

第4拍

第5拍

P3

P2

1

P1

P0

uA5

1

1

uA4

1

1

1

uA3

1

uA2

1

1

1

uA1

1

1

uA0

1

1

1

  • SWC=0,SWB=0,SWA=0时,取指、执行ADD的信号有效性记录如下所示

记录信号

第1拍

第2拍

第3拍

第4拍

第5拍

TJ

 

 

 

 

 

S2

 

 

 

 

 

S1

 

 

 

1

 

S0

 

 

 

 

 

M1(M2)

 

 

 

 

 

LDDR1(LDDR2)

 

 

1

 

 

WRD

 

 

 

 

1

LRW

 

 

 

 

 

CEL#

1

1

1

1

1

ALU_BUS

 

 

 

1

 

RS_BUS#

1

1

1

1

1

SW_BUS#

 

1

1

1

1

IAR_BUS#

1

1

1

1

1

LDER

 

 

 

1

 

M3

 

 

 

 

 

AR1_INC

 

 

 

 

 

LDAR1(LDAR2)

 

1

 

 

 

LDIAR

 

 

 

 

 

M4

1

 

 

 

 

PC_INC

 

1

 

 

 

PC_ADD

 

 

 

 

 

LDPC(LDR4)

1

 

 

 

 

LDIR(CER)

 

1

 

 

 

INTC

 

 

 

 

 

INTS

 

 

 

 

 

P3

 

 

 

 

 

P2

 

1

 

 

 

P1

 

 

 

 

 

P0

 

 

 

 

 

uA5

 

 

1

1

 

uA4

 

1

1

1

 

uA3

 

 

1

 

1

uA2

1

 

 

1

1

uA1

 

 

1

 

1

uA0

1

 

1

 

1

 


2:记录所有机器指令执行过程中的微指令的起始地址,并指出每一条机器指令执行过程中的有效微指令数目。

 

 

五、实验心得

1:本实验需万能表检测各信号的有效情况,但虚拟平台更方便导致时间花费多。

2:课后使用虚拟实验平台检测的信号有效值显示如下(第0拍至第5拍)


第0拍:

 


第1拍:


第2拍:


第3拍:


第4拍:


第5拍:

 3:本实验中的控制存储器的容量是微指令数与字长的乘积,而控制存储器的字长就是微指令字的长度。因此,控制存储器的容量为:2^6*5字节/byte,即2^6*5*8位/bit。

4:微指令由操作控制和顺序控制两部分组成,1 条微指令的字长有 35 位。其中,操作控制25 位,顺序控制 10 位(4 位判别测试,6 位微地址:uA5-uA0)。

5:微命令是在微程序控制的计算机中,同时发出的控制信号所执行的一组微操作。在本实验的控制器流程图中,每个矩形方框代表一个微命令。

6:执行部件接受微命令后所执行的操作就叫做微操作。在本实验中,例如10H处的微命令中的 M1=0,LDDR1,M2=0等都是微操作。

7:ALU的全称为算术逻辑运算单元,需要记忆。


8:本实验的实验指导中的控制器流程图和虚拟试验平台的控制器流程图有所不同,在SJMP(1111)和JC(1001)处有所体现。

9:字扩展通过串联的方式,实现了位数不变、字数扩展的存储。

而本实验采用位扩展通过并联的方式,实现了位数扩展、字数不变的存储。


字扩展示例图:

 

位扩展示例图:

 

 

10:字扩展的计算方法

①求出所需芯片的数目。

②将各芯片片内的地址线,数据线,读写线分别并联。

③片选cs信号线单独连接。用高位地址经过译码器译码而产生的输出信号,作为各个芯片的片选信号。

11:位扩展的计算方法:

①求出所需芯片个数。

②将芯片的地址线,读写控制线,使能端并联。

③将各芯片的数据端按顺序输出到数据总线上。

12:字、位同时扩展的计算方法:(例如,用L×K位芯片扩展为M×N位存储器)

①求出需要( M×N )/( L×K )块芯片。

②扩展时分成M/L组。

③组内N/K片芯片进行位扩展,组间字扩展。

 

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

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

相关文章

xml建模----详细完整,易懂结合代码分析

目录 一.XML建模是什么 二.XML建模有什么作用??? 三.XML建模的案例 以config.xml为例 一.XML建模是什么 将XML配置文件中的元素、属性、文本信息转换成对象的过程叫做XML建模 二.XML建模有什么作用??? …

Git命令操作【全系列】

Git常用命令操作 1 基础命令 ①git config --global user.name [‘你的用户名’]:查看/设置 git config --global user.name ziyi:设置用户名为ziyi git config --global user.name:查看用户名 ②git config --global user.email [‘你的邮…

React 在Dva项目中修改路由配置,并创建一个自己的路由

之后的话 我们还是来看一下Dva路由的配置 首先 我们在项目刚创建完 他就给了我们一个路径 叫routes 然后 IndexPage.js 是最初的一个组件 之前我们也用过了 然后 我们看到 src目录下的 index.js 这里 就有一个路由的匹配 他加载的就是 同目录下 一个 router的文件 我们点开…

外币兑换----贪心1 (爱思创)

源代码 #include <bits/stdc.h> using namespace std; int main() {double money,maxn-1,r;cin>>money;for(int i1;i<12;i){cin>>r;maxnmax(maxn,money*r);}printf("%0.2f",maxn);return 0; }

阿里云通义万相官网申请地址

通义万相刻削生千变&#xff0c;丹青图“万相”。我是通义万相&#xff0c;一个不断进化的AI绘画创作模型https://wanxiang.aliyun.com/现在申请的人少 应该好通过吧

软考高级之系统架构师系列之系统配置与性能评价、信息化基础

系统配置与性能评价 性能 计算机系统的性能一般包括两个大的方面&#xff1a; 可用性&#xff0c;也就是计算机系统能正常工作的时间&#xff0c;其指标可以是能够持续工作的时间长度&#xff0c;也可以是在一段时间内&#xff0c;能正常工作的时间所占的百分比处理能力&…

MySQL练习题(3)

创建数据库插入数据 CREATE TABLE emp ( empno int(4) NOT NULL, ename varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, job varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, mgr int(4) NULL DEFAULT N…

ndoe中express框架的基本使用,接收get、post请求,以及处理回调地狱的优雅解决方法

一、express框架的基本使用 Express框架是Node.js中最受欢迎的web开发框架&#xff0c;它的设计简洁而且功能强大&#xff0c;有着大量的插件和社区支持。 基于Express使用Node.js创建web应用的基本步骤如下&#xff1a; 首先你需要安装Node.js和npm&#xff08;Node包管理器…

拥抱简洁:探索Stylus的简洁语法与CSS预处理器之美

文章目录 1. 简洁的语法2. 强大的功能3. 嵌套规则4. 变量支持5. Mixin 混合6. 扩展支持7. 条件语句8. 内置函数9. 可扩展性10. 轻量高效附录&#xff1a;前后端实战项目&#xff08;简历必备&#xff09; 推荐&#xff1a;★★★★★ Stylus 是一种 CSS 预处理器&#xff0c;具…

OpenCV 入门教程:Laplacian算子和Canny边缘检测

OpenCV 入门教程&#xff1a; Laplacian 算子和 Canny 边缘检测 导语一、Laplacian 算子二、Canny 边缘检测三、示例应用3.1 图像边缘检测3.2 边缘增强 总结 导语 边缘检测在图像处理和计算机视觉领域中起着重要的作用。 Laplacian 算子和 Canny 边缘检测是两种常用的边缘检测…

pytorch-Tensor

神经网络的数据存储中都使用张量&#xff08;Tensor&#xff09;&#xff0c;那张量又是什么呢&#xff1f; py 张量这一概念的核心在于&#xff0c;它是一个数据容器。它包含的数据几乎总是数值数据&#xff0c;因此它是数字的容器。你可能对矩阵很熟悉&#xff0c;它是二…

商城小程序页面展示

——首页登录&#xff08;wx.login()&#xff0c;getPhoneNumber&#xff09; 进入首页时&#xff0c;加载商品列表数据展示在页面。从缓存中获取token信息&#xff0c;判断用户登录状态&#xff0c;如果用户没有登录&#xff0c;调用微信小程序的login方法&#xff0c;进行登…

Spring Boot原理分析(二):项目启动(下)——自动装配

文章目录 一、Spring手动装配1.使用XML配置文件2.使用Java注解3.使用Java类 二、Spring Boot自动装配1.AutoConfigurationPackage2.Import(AutoConfigurationImportSelector.class) 一、Spring手动装配 Spring Framework提供了多种手动装配的方式&#xff0c;其中比较常见的有…

硬盘被程序使用

diskutil list diskutil umount /dev/disk2s1退出该进程 硬盘即可成功退出

springboot+redis+mysql+quartz-通过Java操作jedis使用pipeline获取缓存数据定时更新数据库

一、重点 代码讲解&#xff1a;6-点赞功能-定时持久化到数据库-pipelinelua-优化pipeline_哔哩哔哩_bilibili https://www.bilibili.com/video/BV1yP411C7dr 代码&#xff1a; blogLike_schedule/like06 xin麒/XinQiUtilsOrDemo - 码云 - 开源中国 (gitee.com) https://g…

ubuntu下,verdi语法错误Syntax error: “(“ unexpected

【问题】/home/EDA_TOOLS/synopsys/verdi/verdi/Verdi_O-2018.09-SP2/bin/verdi: 56: /home/EDA_TOOLS/synopsys/verdi/verdi/Verdi_O-2018.09-SP2/bin/verdi: Syntax error: "(" unexpected 【解析】 代码对于标准bash而言没有错&#xff0c;因为Ubuntu/Debian为了加…

网络应用基础交换机的基础操作(NETBASE第六课)

网络应用基础交换机的基础操作&#xff08;NETBASE第六课&#xff09; 1 回顾代码实操 主题背景的转换 字体设置 背景的设置 第一点 在操作ENSP个人建议要关闭防火墙 第二点 在操作ENSP软件是观察下面的软件是否全部关闭了 第三点 打开软件 ENSP软件注册信息 操作如下 注册前…

Oracle之Scott用户

Oracle增删改查&#xff0c;事务与序列 前言 1、解锁scott用户 2、雇员表&#xff08;emp&#xff09; 3、部门表&#xff08;dept&#xff09; 4、工资等级表&#xff08;salgrade&#xff09;了解 5、奖金表&#xff08;bonus&#xff09;了解 1、解锁scott用户 --解锁scot…

对卷积和全连接之间关系的学习(1*1卷积与全连接层可以互换吗?)

1.对于卷积和全连接 首先我们看一张图&#xff0c;它是一张关于卷积的操作&#xff1a; 然后在看关于全连接的操作&#xff1a; 从上面两张图中可以看出卷积的过程和全连接的过程&#xff0c;我们利用粉色的卷积核在image上进行卷积&#xff0c;进行内积计算得到输出值3&#…

调用GPU进行深度学习模型训练问题检查总结

1、电脑是否具有nvidia的GPU显卡。 2、安装的cuda版本是否超过显卡支持的最高版本。 在nvidia设置->帮助->系统信息->组件&#xff0c;可查看。 3、安装的pytorch是否为gpu版&#xff0c;即使在官网中复制的gpu版安装命令&#xff0c;安装得到的也有可能为cpu版。 建…