计算机组成原理-累加器实验——沐雨先生

一、实验目的

1.理解累加器的概念和作用

2.连接运算器、存储器和累加器,熟悉计算机的数据通路

3.掌握使用微命令执行各种操作的方法。

二、实验要求

1.做好实验预习,读懂实验电路图,熟悉实验元器件的功能特性和使用方法。在实验之前设计好要使用的微命令,填入表中。

2.按照实验内容与步骤的要求进行实验,对预习时填写好的微命令进行验证与调试,遇到问题请冷静、独立思考,认真仔细地完成实验。

3.完成实验报告。

三、实验电路

在这里插入图片描述

四、实验内容及步骤

1.本实验将RO用作累加器,完成一次加法运算。其中,被加数由数据开关输入,加数存放在存储器中,其地址也从数据开关输入。运算结果存入存储器中,存入的地址由数据开关设置。

2.按照下表连接电路

1
实验电路:
在这里插入图片描述

3.进行电路预设置。将 DR1、DR2和AR的 置1,时序发生器的Step置1。

4.A->R0,A从数据开关输入。具体步骤如下:

4.1设计要使用的微命令,填入下表:

功能S3S2S1S0M C n ‾ \overline{Cn} Cn C E ‾ \overline{CE} CEWELDARLDDR1LDDR2 A L U − B ‾ \overline{ALU-B} ALUB S W − B ‾ \overline{SW-B} SWBLDR0 R 0 − B ‾ \overline{R0-B} R0B
数据开关->R0000001100001010

4.2 打开电源

4.3 设置控制信号:数据开关->R0();将数据开关设置为A(00000011);单击时序发生器的Start按钮,等待一个CPU周期。

5.进行累加运算 B+RO→R0,B为存储器操作数,B的地址由数据开关输入,运算结果存入R0。具体步骤如下:

5.1 设计好要使用的微命令,填入下表:

功能S3S2S1S0M C n ‾ \overline{Cn} Cn C E ‾ \overline{CE} CEWELDARLDDR1LDDR2 A L U − B ‾ \overline{ALU-B} ALUB S W − B ‾ \overline{SW-B} SWBLDR0 R 0 − B ‾ \overline{R0-B} R0B
->DR2000001100011000
->DR1000001100101100
->R0100101100000010

5.2设置控制信号:存储器操作数→DR2( );将数据开关设为B的地址(00001000);单击Start按钮。等待一个CPU周期后,B的值已存入 DR2。

5.3设置控制信号:RO→DR1( );单击Start 按钮,等待一个CPU周期后,R0的值已存入DR1。

5.4设置控制信号:DR1+DR2一RO( );单击Start 按钮。等待一个CPU周期后,运算结果已存入RO。

6.存储RO→存储单元C,C为存储单元地址,从数据开关输入。具体步骤如下:

6.1 设计好要使用的微命令,填入下表:

功能S3S2S1S0M C n ‾ \overline{Cn} Cn C E ‾ \overline{CE} CEWELDARLDDR1LDDR2 A L U − B ‾ \overline{ALU-B} ALUB S W − B ‾ \overline{SW-B} SWBLDR0 R 0 − B ‾ \overline{R0-B} R0B
->R0000001101001001
->存储单元000001010001100

6.2设置控制信号:存储单元地址→AR();将数据开关设置为C(00001001);单击Start按钮。等待一个CPU周期后,地址C已存入AR。

6.3设置控制信号:RO→存储单元();单击 Start按钮。等待一个CPU周期后,运算结果已存入存储单元。

6.4单击菜单中的“工具/存储器芯片设置”,查看存储单元09H的值。

六、思考与分析

1、什么是累加器?它的作用是什么?

答:在运算器中,累加器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器。能进行加、减、读出、移位、循环移位和求补等操作。是运算器的主要部分。
作用:①、在运算器中,累加器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器。能进行加、减、读出、移位、循环移位和求补等操作。是运算器的主要部分。
  ②、在中央处理器CPU中,累加器(accumulator)是一种暂存器,它用来储存计算所产生的中间结果。如果没有像累加器这样的暂存器,那么在每次计算(加法,乘法,移位等等)后就必须要把结果写回到内存,然后再读回来。然而存取主内存的速度是比从数学逻辑单元(ALU)到有直接路径的累加器存取更慢。
③、在汇编语言程序中,累加器——AX是一个非常重要的寄存器,但在程序中用它来保存临时数据时,最后将其转存到其它寄存器或内存单元中,以防止在其它指令的执行过程中使其中的数据被修改,从而得到不正确的结果,为程序的调试带来不必要的麻烦。

2、什么是微命令?微指令与微命令的关系是什么?

答:微命令即控制部件通过控制线向执行部件发出各种控制命令 。在微指令的控制字段中,每一位代表一个微命令。
关系:①、一条机器指令对应一个微程序,这个微程序是由若干条微指令构成的。因此,一条机器指令的功能是若干条微指令组成的序列来实现的。简而言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。
②、从指令与微指令,程序与微程序,地址与微地址的一一对应关系上看,前者与内存储器有关,而后者与控制存储器有关,与此相关也有相对应的硬设备。
③、一条机器指令对应4个CPU周期,每个CPU周期就对于一条微指令。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

自动控制原理——根轨迹法

本文中所有的截图都来自于西北工业大学卢京潮教授的ppt,侵删。 根轨迹的基本概念 根轨迹——系统性能指标 举例说明: 在使用根轨迹法时,一般说根轨迹就说说闭环意义上的根轨迹,没有开环根轨迹一说。我们习惯使用首1标准型&#…

【prompt四】Domain Prompt Learning for Efficiently Adapting CLIP to Unseen Domains

motivation 领域泛化(DG)是一个复杂的迁移学习问题,旨在学习未知领域的可泛化模型。最近的基础模型(FMs)对许多分布变化都具有鲁棒性,因此,应该从本质上提高DG的性能。在这项工作中,我们研究了采用视觉语言基础模型CLIP来解决图像分类中的DG问题的通用方法。虽然ERM使用标…

Node.js安装及环境配置详细教程

一、下载Node.js安装包 官网下载链接[点击跳转] 建议下载LTS版本(本教程不适用于苹果电脑) 二 、安装Node.js 2.1 下载好安装包后双击打开安装包,然后点击Next 2.2 勾选同意许可后点击Next 2.3 点击Change选择好安装路径后点击Next&#…

Ubuntu下anaconda迁移到另外的目录

文章目录 前言一、原因二、迁移1.复制到指定迁移目录2. 修改复制后的anaconda3 内容3. 修改对应搭建的每个环境的pip4.修改系统配置文件,使得设置生效 三、实际测试四、总结 前言 好记性不如烂笔头,简单的记录下在ubantu18.04下迁移anaconda的目录 一、…

SpringBoot自定义注解+反射实现 excel 导入的数据组装及字段校验

在前段时间的开发工作中,接手了一个很简单,很普通的开发任务。 要求实现一个单表的基础数据的批量导入功能。 评估下来,用户每次批量导入的数据量也就几千条,也不大。 是不是很简单,没有骗你们吧。但是呢&#xff0…

常用工具——Gradle

前言 实践是最好的学习方式,技术也如此。 文章目录 前言一、Gradle 简介二、文件结构详解 一、Gradle 简介 Gradle 文件是一个独立于 android 之外的一个东西; 是什么 gradle 就是编译、打包 Android 工程的一个构建工具;build.gradle 文件&…

中仕公考:非应届生能考三支一扶吗?

如果是非应届生身份能参加三支一扶考试吗? “三支一扶”是一项公益性的就业计划,全称为“支持教育、支持农村、支持医疗和扶贫”。该计划主要是针对大学生毕业生设置的,通过招募他们到基层单位工作,以解决基层单位人才短缺的问题&#xff0…

MapReduce内存参数自动推断

MapReduce内存参数自动推断。在Hadoop 2.0中,为MapReduce作业设置内存参数非常繁琐,涉及到两个参数:mapreduce.{map,reduce}.memory.mb和mapreduce.{map,reduce}.java.opts,一旦设置不合理,则会使得内存资源浪费严重&a…

java中this关键字的使用

this关键字的使用 this的用法1)this.data2)this.method;3)this() this的用法 1)this.data; (访问属性) 2)this.method; (访问方法) 3&…

wait() 、notify()、notifyAll() 的详细用法

文章目录 💐wait() 讲解💐notify() 讲解💐notifyAll()💡wait() 和 sleep() 的区别 首先,我们知道,线程的执行顺序是随机的(操作系统随机调度的,抢占式执行),但是有时候,我…

软件测试面试题(全)

【软件测试面试突击班】2024吃透软件测试面试最全八股文攻略教程,一周学完让你面试通过率提高90%!(自动化测试) 1.B/S架构和C/S架构区别 B/S 只需要有操作系统和浏览器就行,可以实现跨平台,客户端零维护&a…

CSS全局样式的设置,web开发交流

面试题 HTML 1,html5有哪些新特性? 2,html5移除了那些元素? 3,如何处理HTML5新标签的浏览器兼容问题 戳这里领取完整开源项目:【一线大厂前端面试题解析核心总结学习笔记Web真实项目实战最新讲解视频】…

智能硬件 | AI PC新市场,英特尔、高通、AMD、苹果谁能拔得头筹?

我们普通人和大模型的距离有多远?AI发展到2024年,已经附着在各种智能硬件上了,什么AI PC,AI手机,AI蓝牙音箱,AI学习机,AI鼠标等等,但其实虽然很多产品加上了个AI的名头,但…

xss.haozi:0x00

0x00没有什么过滤所以怎么写都没有关系有很多解 <script>alert(1)</script>

实现session共享的方法总结完整版

文章目录 实现session共享的方法总结完整版1、使用共享数据库&#xff1a;2、使用粘性会话&#xff08;Sticky Session&#xff09;&#xff1a;3、使用缓存系统&#xff1a;4、使用分布式文件系统&#xff1a;5、使用中央认证服务&#xff1a;6、使用会话复制&#xff1a;7、使…

LLM 模型量化推理速度评测

最近了解了下些常见的推理和加速方案&#xff1a; 1、量化方案&#xff1a; gptq、quantization、int8、int4、AWQ、Speculative Decoding、GGUF 2、Attention加速方案&#xff1a; atten的不同种类fused attention 3、内存层面&#xff1a; kv_cache策略、page_attention…

3.4作业

课上代码复习&#xff1a; 广播接收端代码: #include<myhead.h> int main(int argc, const char *argv[]) {//创建套接字int rfd socket(AF_INET,SOCK_DGRAM,0);if(rfd -1){perror("socket error");return -1;}printf("rfd %d\n",rfd);//填充地…

在 Flutter 中使用 flutter_gen 简化图像资产管理

你是否厌倦了在 Flutter 项目中手动管理图像资产的繁琐任务&#xff1f; 告别手工输入资源路径的痛苦&#xff0c;欢迎使用“Flutter Gen”高效资源管理的时代。在本文中&#xff0c;我将带您从手动处理图像资源的挫折到动态生成它们的便利。 选择1&#xff1a;痛苦手动添加–…

达梦数据库基础操作(五): 索引操作

达梦数据库基础操作(五)&#xff1a; 索引操作 1. 索引操作 1.1 创建索引 # 使用 CREATE INDEX 语句创建普通索引。 CREATE INDEX ind_emp_salary ON employee(salary);1.2 查看创建的索引 # 通过字典表 user_indexes 查看已创建索引的名称、类型。SELECT table_name, index…

C语言经典算法-1

C语言经典算法讲解练习 文章目录 C语言经典算法讲解练习1.汉若塔2.费式数列3. 巴斯卡三角形4.三色棋5.老鼠走迷官&#xff08;一&#xff09;6.老鼠走迷官&#xff08;二&#xff09;7.骑士走棋盘8.八皇后9.八枚银币10.生命游戏 1.汉若塔 说明&#xff1a;河内之塔(Towers of …
最新文章