存储器、运算器、控制器基本结构以及一条指令的执行

2023-11-03

Abstract:此篇文章讲述的是计算机存储器、控制器、运算器的基本结构组成以及指令的具体执行顺序。  CPU包括运算器和控制器, 而主机主要包括CPU和存储器。

内容参考于:哈工大计算机组成原理(刘宏伟)


存储器的基本组成:

如下图所示: 主存由存储体、MAR和MDR组成。

先来看几个概念

存储单元:存储数据的具体单位是存储单元,字节是目前计算机最基本的存储单位。 来自于什么是计算机的存储单元, 存储体由许多存储单元组成。每一个存储单元赋一个地址。可以按地址寻访。

存储字:存储单元中二进制代码组合。

存储字长:存储单元中二进制代码的位数。

MAR:存储器地址寄存器 - 保存存储单元地址。  MAR的位数与存储单元的个数相关。

MDR:存储器数据寄存器 - 反映存储字长。里面存储的数据来自三方面: 1、准备送往CPU的数据。 2、准备存入存储器的数据。 3、刚才存储体中取出来的数据。

例如:MAR = 4, MDR = 8. 说明存储单元个数为16个, 存储字长为 8.

运算器

由上图很容易可以看出运算器的组成结构是:ALU(算数逻辑单元运算器)和三个寄存器。

其中ALU是一个组合电路, 特点是当输入数据撤销时, 输出也会跟着撤销;所以要在前面加相应的寄存器(ACC和X(数据寄存器))用来存储输入数据,即参与运算的值。

同时ACC也用于保存运算结果。 但是由于乘法操作的输出字长为输入字长的两倍;所以需要增加一个MQ寄存器来存放多余的数据。


下图是进行四则运算时各个寄存器的值

下面是具体实现过程:

1, 加法操作过程:

此时的指令为:, 操作码是:加; 地址码是M。

首先在内存中取被加数于ACC中, 然后是执行加法指令。 从存储器之中取地址为M的数放在寄存器X中, 然后在ALU的操作下将ACC和X寄存器里面的值相加并将

结果放在ACC里面。

2, 减法操作过程:

此时指令为:

这个过程和加法差不多, 就不啰嗦了。

3, 乘法操作过程:

此时指令为:

首先在内存中取被乘数的值放入寄存器ACC中, 然后在内存中取 M地址对应的值放在X中, 然后将ACC寄存器里面的值放在寄存器X里面; 再将0放入ACC中(清

零)。 最后将寄存器 X 和 MQ 寄存器里面的值相乘结果的高位放在 ACC 中, 低位放在 MQ 中。这里要注意一点:计算机里面的乘法是通过累加和移位来实现的;

并不能直接实相乘。

4, 除法操作过程:

此时指令为:

首先在内存中取被乘数的值放入寄存器ACC中, 然后取地址为 M 的值放在 X 寄存器之中。 然后将 ACC 寄存器和 X 寄存器里面的值相除放在 MQ 寄存器之中。

注意:以上操作都是在控制器的控制下进行的。

控制器的基本结构:

控制器的功能是:解释执行; 保证指令有序执行。

完成一条指令一般包含三部分: 取指令; 分析指令; 执行指令。

取指令需要PC寄存器, PC寄存器的作用是存放当前欲执行指令的地址; 并且具有计数功能:PC + 1 = PC。 其中 1 是由具体机器决定的。 一般指令都是放一块的。

分析指令:将操作码给需要控制单元。

执行指令:由控制单元控制执行这条指令所需要的单元; 主要是CU控制。


下面具体说明一条指令的执行过程:取数指令为例


取值:首先指令地址是在PC中, 然后送入MAR中, 在控制器的作用下将MAR中指令地址下的那条指令取出来放在MDR中。 接着再送到IR中(IR的作用就是存储当前指令)

分析指令:将指令的操作码部分送给CU(上图中序号为5的箭头方向反了), 经过译码之后, 在CU上面会有很多信号, 然后由这些信号控制执行这个操作所需要的部件。

执行指令:因为是取数指令, 执行时就是在内存中取一个数到ACC中。 在控制器的控制下, 将取数指令的地址码送到MAR中, 然后从内存中取出该地址下的数据到MDR,

最后送到ACC中。 到此这条指令结束。

~ END ~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

存储器、运算器、控制器基本结构以及一条指令的执行 的相关文章

  • 计算机组成原理--I/O系统

    大学峡谷秀 xff0c 机组未学溜 xff0c 如今涕泪流 xff0c 共勉之 近来学习netty零拷贝 xff0c 复习并笔记之 1 概念 以主机为中心 xff0c 将信息从外部设备读入或输出的操作称为IO xff0c 外部设备包括输入输
  • 计算机组成原理知识点(第七章: 指令系统)

    第七章 指令系统 1 概念 人们习惯把每一条机器语言称为机器指令 而又将全部机器指令的集合称为机器的指令系统 2 指令的一般格式 操作码 指令是由操作码和地址码两部分构成的 操作码说明所要完成的功能 地址码说明了要在哪里完成这个操作 操作码
  • 面试---计算机基础

    1 C C 内存有哪几种类型 C中 内存分为5个区 堆 malloc 栈 如局部变量 函数参数 程序代码区 存放二进制代码 全局 静态存储区 全局变量 static变量 和常量存储区 常量 此外 C 中有自由存储区 new 一说 全局变量
  • 【计算机组成原理】16-定点数与浮点数

    一 定点数的表示方法 1 纯小数 乘以比例因子以满足定点数保存格式 2 纯整数 小数点在后面 二 浮点数的表示方法 计算机处理的很大程度上不是纯小数或纯整数 数据范围很大 定点数难以表达 1 浮点数的表示格式 科学计数法 j S 尾数 r
  • 如何吃透csapp

    读薄 读厚csapp 非常不错的博客 既有对书本内容的理解 也有对实验内容的剖析 当然我还没看 先马 并且立个flag 必看完csapp 看完奖励自己一趟旅行 EOF 补充 本书的使用指南
  • 计算机组成原理笔记01

    做题笔记1 学习内容 教材的思维导图 课后练习 计算部分 中国大学MOOC计算机组成原理 计算部分 1 教材的思维导图 2 课后练习P17 7 某计算机主频为1 2GHz 其指令分为4类 它们在基准程序中所占比例及CPI如表1 7所示 指令
  • 【笔记】CPU的结构和功能(一)

    一 CPU的结构 1 CPU的功能 2 CPU结构框图 3 CPU的寄存器 用户可见寄存器 控制和状态寄存器 4 控制单元和中断系统 二 指令周期 1 指令周期的基本概念 2 指令周期的数据流 取指周期数据流 间址周期的数据流 执行周期的数
  • 计算机指令——从纸带说起

    前言 其实很多时候我都会感叹计算机的伟大 通过一个个电路就完成了如今各种系统 通过各种各样的语言就能够指挥设备完成不同的动作 当写下第一个hellow world的时候我就在想他什么怎么出现 今天搞明白其中的原理 我在这和大家分享 打孔卡
  • 8.4-中断系统小结(cpu中断七个问题)

    README 本文转自bilibili 计算机组成原理 哈工大刘宏伟 的视频讲解 非常棒 墙裂推荐 1 中断介绍 1 作用 用中断系统实现了外设数据的输入输出 还可以用于程序调试 计算机系统的异常事件 都可以用中断系统来处理 2 中断因素
  • 计算机组成原理--基于Logisim的8位可控加减法器实验的应用(超详细/设计/实验/作业/练习)

    目录 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logisim的8位可控加减法器实验 一 前言 二 环境与设备 三 内容 四 结果与分析 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Lo
  • 同步通讯和异步通讯(简单理解)

    同步通信和异步通信 简单理解 注 本篇文章只是告诉你什么是同步通信 什么是异步通信 即使没有计算机基础的同学也适合阅读 同时也能帮助计算机专业同学更好理解这个知识点 但是如果想深入学习 还需自己翻阅资料 一 电脑完成一个读命令需要的步骤 主
  • 计算机组成原理——指令系统题库

    指令系统题库 选择题 1 以下有关指令系统的说法中错误的是什么 A 指令系统是一台机器硬件能执行的指令全体 B 任何程序运行前都要先转化为机器语言 C 指令系统是计算机软件 硬件的界面 D 指令系统和机器语言是无关的 2 在CPU执行指令的
  • 计算机组成原理--基于Logisim的4位并行加法器实验的应用(超详细/设计/实验/作业/练习)

    目录 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logisim的4位并行加法器实验 一 前言 二 环境与设备 三 内容 四 结果与分析 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Log
  • 计算机组成原理--基于Logisim的汉字的表示的应用(超详细/设计/实验/作业/练习)

    目录 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logisim的汉字的表示 一 前言 二 环境与设备 三 内容 四 结果与分析 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logisim
  • 【计算机组成原理】实验4:存储器读写实验

    实验内容 一 实验原理 存储器是计算机的存储部件 用于存放程序和数据 存储器是计算机信息存储的核心 是计算机必不可少的部件之一 计算机就是按存放在存储器中的程序自动有序不间断地进行工作 本系统从提高存储器存储信息效率的角度设计数据通路 按现
  • 【计组笔记-5】详细测试c++中类型转换的溢出截断处理

    计组笔记 5 详细测试c 中类型转换的溢出截断处理 1 将小数赋值给float 2 将整数赋值给float 3 将整数赋值给int 3 1 算术溢出 3 2 非算术溢出 等于32位 3 3 非算术溢出 大于32位 4 将小数赋值给int 5
  • CPU时钟周期、主频、CPI、MIPS

    主频 理解 主频是机器内部主时钟的频率 主频越高 完成指令的一个执行步骤所用的时间就越短 速度越快 比如跳绳 跳的越快 即频率越高 那么完成一次所用的时间就越短 单位 Hz 常见的有1 8GHz 2 4GHz CPU时钟周期 理解 跟上面的
  • 第一章 计算机系统概论

    一 计算机系统简介 1 计算机软硬件概念 计算机是一种能够执行指令的电子设备 它由硬件和软件两部分组成 计算机硬件是指计算机系统中的物理组件 包括中央处理器 CPU 内存 硬盘 输入设备 如键盘 鼠标 输出设备 如显示器 打印机 等 这些硬
  • 【计算机组成原理】2、二进制原码反码补码、左移右移、进制转换,进制相减、内存地址偏移计算与容量计算

    文章目录 一 二进制的原码 反码 补码 1 1 二进制计算 1 2 左移 右移 1 3 异或 二 进制转换 2 1 二进制 八进制 十六进制转为十进制 2 2 十进制转为二进制 八进制 十六进制 2 3 二进制转为八进制 十进制 十六进制
  • 计算机组成原理综合1

    1 完整的 计算机系统 应包括 D A 运算器 存储器和控制器 B 外部设备和主机 C 主机和实用程序 D 配套的硬件设备和软件系统 2 计算机系统中的存储器系统是指 D A RAM存储器 B ROM存储器 C 主存储器 D 主存储器和外存

随机推荐

  • 激光雷达建图之cartographer建图

    环境 ubuntu20 04 双系统 ros noetic 1 按照官网的方式安装 主要安装包括三个部分 cartographer cartographer ros ceres solver 如果完全按照官网进行安装 前两个没什么问题 但如
  • Git学习使用

    慢慢学习Git 探索Git上各路大神的佳作 good good study day day up Git初学 1 Git下载安装配置 2 Git架构浅谈 3 Git分支合并和解决冲突
  • 矩阵论的一些问题(最小多项式,jordan标准型,矩阵范数)

    1 最小多项式求法 比如例题A 1 2
  • Code Review 工具

    Crucible Atlassian 内部代码审查工具 Gerrit Google 开源的 git 代码审查工具 GitHub 程序员应该很熟悉了 上面的 Pull Request 在代码审查这里很好用 LGTM 可用于 GitHub 和
  • java基础速通(一)

    1 java基础语法 对象 类 方法 实例变量 2 java基本语法 大小写敏感 类名首字母大写 方法名首字母小写 源文件名与类名相同 主方法入口 3 类名 方法名 变量名命名规则 3 1 字母 下划线开头 3 2 首字符后可以是字母 下划
  • 黑马JVM总结(十二)

    1 五种引用 强软弱 实线箭头表示强引用 虚心线表示软弱虚终结器引用 在平时我们用的引用 基本都为强引用 比如说创建一个对象通过 运算符赋值给了一个变量 那么这个变量呢就强引用了刚刚的对象 强引用的特点 通过GC Root的引用链 能够找到
  • 最长公共子序列-Python-动态规划

    1 题目内容 题名为 最长公共子序列 题目要求 1 用动态规划算法思想设计最长公共子序列问题求解算法 并且对给定的数据 分两类 统一和自选 进行验证 2 要求分析算法的时间复杂性 3 与穷举算法 直接递归法 备忘录法进行对比并且形成分析报告
  • 如何释放已使用的EOS RAM,然后就可以自由买卖了

    昨天到今天 EOS RAM价格大跌 有一些用户想卖RAM 但是却发现大量RAM被占用 比如下图 这位伙伴找到我时 他说啥都没做但他的内存使用量怎么高达189k 然后我查了一下该账号的交易记录 发现他曾经部署过智能合约 然后他告诉我是他不小心
  • 分布式面试题

    文章目录 前言 一 大型网站系统的特点 二 拆分 VS 集群 三 微服务 VS SOA 四 前后端完全分离与Rest规范 总结 前言 大型网站系统的特点 拆分 VS 集群 微服务 VS SOA 前后端完全分离与Rest规范 一 大型网站系统
  • python类方法第一个参数_Python 类成员函数第一个参数self

    类的方法与普通的函数只有一个特别的区别 它们必须有一个额外的第一个参数名称 但是在调用这个方法的时候你不为这个参数赋值 Python会提供这个值 这个特别的变量指对象本身 按照惯例它的名称是self 你一定很奇怪Python如何给self赋
  • Python做简单小项目,Python如何赚钱项目

    Python都可以做哪些副业 1 兼职处理数据Excel整理数据功能虽然很强大 但在Python面前 曾经统治职场的它也的败下阵来 因为Python在搜集数据整理分析数据的过程中更加便捷 通过几行代码还可以实现自动化操作 如果你学会Pyth
  • 将输入的一行字符中的大写字符改为小写字符。(C语言)

    代码 include
  • 基于javaweb的留学生信息交流论坛

    该在线留学生交流网站 是一款主要以留学生交流为主题的交流性质的论坛网站 采用了SSH框架技术开发 利用mysql作为数据库 主要展示了留学新闻和论坛交流的功能 方便了交流和对澳洲那边生活的了解 面对面和去过的人交流 系统是一款简单毕业设计学
  • Linux中ELF格式文件介绍

    ELF Executable and Linkable Format 即可执行连接文件格式 是一种比较复杂的文件格式 但其应用广泛 与linux下的其他可执行文件 a out cof 相比 它对节的定义和gnu工具链对它的支持使它十分灵活
  • 最近忙了些啥

    最近自己忙忙叨叨 忙忙叨叨的 不知道都干了些啥 一直在围绕网站SNS建设的规划 讨论来讨论去 这个礼拜最终已经确定 虽然不是我想要的结果 但是我想时间已经不能再等人了 总要人做出牺牲 网站在排名方面一直没有太多的变化 SNS还是准备采用di
  • java日期和时间戳相互转换(实际项目开发总结)

    第一步 改变数据库中字段类型 我这里用的是bigint类型 第二步 编写转换代码 由于项目中用的都是时间戳 直接抽成工具类了 工具类最下面有测试的main方法 代码都一样 package com anjiplus template gaea
  • 深度学习常用单词

    深度学习英文单词表 英文 缩写 汉语 Absolute value rectification 绝对值整流 Activation Function 激活函数 Accumulated error backpropagation 累积误差反向传
  • proxy代理配置 goproxy 代理配置

    1 百度上搜索 goproxy 2 下载 proxy linux amd64 tar gz 2 1 直接下载地址 该版本 不限制默认数量 调整默认的每秒最大连接数 由默认20改为默认0无限制 https github com snail00
  • Maven配置了junit依赖,jar包已经导入,但是在使用Test测试时报错

    Maven配置了junit依赖 jar包已经导入 但是在使用Test测试时报错 作用域问题 每一个依赖都有一个scope标签标示这个依赖可以在哪里使用 如果作用域为test 那么只能在测试 Test Resource Root 包下使用 一
  • 存储器、运算器、控制器基本结构以及一条指令的执行

    Abstract 此篇文章讲述的是计算机存储器 控制器 运算器的基本结构组成以及指令的具体执行顺序 CPU包括运算器和控制器 而主机主要包括CPU和存储器 内容参考于 哈工大计算机组成原理 刘宏伟 存储器的基本组成 如下图所示 主存由存储体