【计算机组成原理】y = a * b + c 的执行具体流程

news2025/4/15 0:20:57

文章目录

    • 1.2.2 认识各个硬件部件
      • 1. 主存储器的基本组成
      • 2. 运算器的基本组成
      • 3. 控制器的基本组成
      • 4. 计算机的工作流程

1.2.2 认识各个硬件部件

1. 主存储器的基本组成

  • 存储体:存放数据和指令
  • 地址寄存器:用来存放读取存储体数据时存放的具体位置
  • 数据寄存器:用来存放读取的存储体数据

CPU要从主存储器中取出数据,首先要将该数据的地址存如MAR中,然后用控制总线向主存储器发出命令,主存储器收到命令后将对应的数据存放到MDR中,等待CPU读取。

这就好比我们去菜鸟驿站取快递一样,告诉工作人员我们的取件码,然后工作人员就把快递拿到柜台,我们在取走。计算机的工作原理在我们的日常生活中处处可见。

CPU要存数据也是类似,先将地址放入MAR,再将要存入的数据放入MDR,后向主存储器发出控制命令,随后主存储器就开始存入到存储体中。

image-20230204130422260

存储体里的数据是如何存的呢?

存储体就和菜鸟驿站里的货架一样,存储体被分成一个一个的小格子,每个格子存储一单元的数据,每个单元都有一个地址。

所以MAR的位数就反映了存储单元的个数,如果MAR只有4位,你们存储体总共只有2^4=16个存储单元。

MDR的位数就反映了存储单元的位数,如果MDR有16位,那么存储单元也只有16位。

image-20230204131430647

  • 存储单元:每个存储单元存放一串二进制代码
  • 存储字:存储单元中二进制代码的组合
  • 存储字长:存储单元中二进制代码的位数

2. 运算器的基本组成

image-20230204132046471

我们要实现a+b运算的算,首先需要有个地方放a,也就是ACC,再有个地方放b,也就是X,在有人来给它俩加起来,就是ALU,最后将计算的结果放入ACC中。

3. 控制器的基本组成

控制器就是CPU中最重要的部分,它掌控着计算机的运作。

  • CU:控制单元,分析指令,给出控制信号
  • IR:指令寄存器,存放当前执行的之林
  • PC:程序计数器,存放下一条指令地址,有自动加1功能

完成一条指令:首先根据程序计数器中的地址去内存找到对应的指令,然后存入指令寄存器中,随后控制单元去指令寄存器中取出指令并分析指令,然后执行。

image-20230204133031359

4. 计算机的工作流程

这些硬件我们已经了解了一遍,接下来让我们看在计算机中他们是怎么协调工作的:

y = a * b + c 编译后运行发生了什么?

image-20230204154948342

左边那一段高级语言编写的代码经过编译之后就变成了一些指令和数据存入主存中取。

我们总共有4条指令,我们一一解释:

()表示里面存的东西

第一条:取数a至ACC

初zhi:(PC)=0,表示下一条指令为地址0

  1. (PC) -> MAR,将地址存入地址寄存器MAR中,(MAR)= 0
  2. M(MAR) -> MDR,控制器通过控制总线告诉主存储器,我要取数据,随后主存储器将MAR里地址对应的数据存入MDR中
  3. PC++,程序计数器的值自动加1,方便下次使用
  4. (MDR) -> IR : 指令从MDR 移动到 IR中
  5. OP(IR) -> CU,指令的操作码会被送到CU,CU分析后得知,这是“取数”指令
  6. AD(IP) -> MAR,指令的地址吗送到MAR,导致(MAR) = 5
  7. M(MAR) -> MDR ,导致(MDR)= 2
  8. (MDR) -> ACC ,数据被送到ACC

image-20230204160524819

这里我们都要经过取指令、分析指令、执行指令的过程

其中 1-4是取指令,5是分析指令,6-8是执行指令

第二条:乘b得ab,存于ACC中

上一条指令执行后,(PC)=1,(ACC)=2

  1. (PC) -> MAR
  2. M(MAR) -> MDR
  3. (MDR) -> IR
  4. PC++
  5. OP(IR) -> CU,分析这是乘得指令
  6. AD(IR) -> MAR
  7. M(MAR) -> MDR
  8. (MDR) -> MQ ,乘数
  9. (ACC) -> X , 被乘数
  10. (X)*(MQ) ->ACC,ALU实现逻辑运算,如果乘积太大,需要MQ辅助存储

image-20230204160910864

第三条:加c得ab + c,存于ACC中

上一条指令后,(PC) = 2,(ACC) = 6

  1. (PC) -> MAR
  2. M(MAR) -> MDR
  3. (MDR) -> IR
  4. PC ++
  5. OP(IR) -> CU,CU分析这是“加法”指令
  6. AD(IR) -> MAR
  7. M(MAR) -> MDR
  8. (MDR) -> x
  9. (ACC)+ (x) -> ACC,ALU实现运算

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ker3bdCA-1675498937811)(https://xiaoxin18.oss-cn-hangzhou.aliyuncs.com/2022/image-20230204161735385.png)]

第四条:加ab + c,存于ACC中

上一条指令后,(PC) = 3,(ACC) =7

  1. (PC) -> MAR
  2. M(MAR) -> MDR
  3. (MDR) -> IR
  4. PC ++
  5. OP(IR) -> CU,CU分析这是“存数”指令
  6. AD(IR) -> MAR
  7. (ACC) -> MDR
  8. (MDR) -> M(MAR)

image-20230204161756722

第五条:停机

上一条指令后,(PC) = 4

  1. (PC) -> MAR
  2. M(MAR) -> MDR
  3. (MDR) -> IR
  4. PC ++
  5. OP(IR) -> CU,CU分析这是停机指令

image-20230204161851531

总结

image-20230204161928895

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

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

相关文章

12、字符(串)输入、输出

目录 一、字符数据输入/输出 1. 字符数据输入 2. 字符数据输出 二、字符串输入/输出 1. 字符串输入函数 2. 字符串输出函数 一、字符数据输入/输出 1. 字符数据输入 字符数据输入使用的是getchar函数,其作用是从终端&…

前端遇到的问题

inputs-outputs https://angular.cn/guide/inputs-outputs 用于父组件与子组件间的值传递 在项目中引入核心组件 父组件在其html界面绑定属性 在子组件里通过Input传递值 具体里: 使用默认规则数组绑定固定值(比如id)的错误 这里两个ts文件之间传值,采用了一个get函数,…

微信小程序 view组件的基本使用

1.view基本理论 能看图就尽量减少文字提示,从图书可以看出ABC是纵向排列的。 为什么会纵向排列而不是横向排列,那是因为view是块元素,能占满整一行。 怎么让view块元素横向并排呢? 向上图一样横向排列,接下来教学从0…

Kerberos协议与认证数据包分析

Kerberos协议 Kerberos是一种在开放的非安全网络中认证并识别用户身份信息的方法, 它旨使用密钥加密技术为客户端/服务端应用程序提供强身份认证。 目前主流的Kerberos版本是2005年的RFC4120标准的Kerberos v5, Windows、Linux和MacOs均支持Kerberos协议。Kerberos基础 Kerbe…

Quartz入门看这一篇文章就够了

第一章 Quartz简介 第一节 Quartz是什么? 1Quartz [kwɔːts]是一个完全由Java编写的开源的作业调度框架第二节 Quartz可以用来做什么? 比如说买火车票下单之30分钟之后,查看是否付款付款完成之后,在乘车日期的时候是否乘车或者每个月1号扣房贷每个月20号自动还信用卡想定时…

为什么要使用采购管理软件 采购管理软件推荐

在企业发展道路上,采购部门是一个非常重要的组织,它会直接影响到企业的经济效益。企业在采购活动中,如果还是采用传统线下的采购方式,那么很容易导致采购信息不集中,效率低,出错率高,最终损害企…

爱情呼叫转移-深度广度遍历合集

1.这件事是特殊的,还是普遍的? 工作中常常会遇到各种各样的问题,不管黑猫白猫,抓到老鼠就是好猫。哪只猫好,往往需要对比分析。 如何做数据对比,需要加入哪些数据来分析,在哪里进行数据对比&am…

查找 二分查找 (终极巩固)

二分条件&#xff1a; 1) 序列有序 2&#xff09;支持随机访问 二分思想&#xff1a; 大体思想是二分之后如果目标值在左侧&#xff0c;则中间包括右边区间所有pass掉 right mid - 1; 目标在右侧&#xff0c;则中间包括左边所有pass left mid 1; 注意点 left < rig…

Python Fiddler抓包工具教学,获取公众号(pc客户端)数据

前言 今天来教大家如何使用Fiddler抓包工具&#xff0c;获取公众号&#xff08;PC客户端&#xff09;的数据。 Fiddler是位于客户端和服务器端的HTTP代理&#xff0c;是目前最常用的http抓包工具之一。 开发环境 python 3.8 运行代码pycharm 2021.2 辅助敲代码requests 第三方…

VS2022 开发Qt之修改软件图标

开发环境本次实验使用的开发环境是win10 64位系统 IDE使用VS2022,Qt版本是Qt5,15.写博客背景最近再练习使用VS开发Qt,到修改软件图标的事情.在网上搜索了一番大部分修改图标的都是基于Qt自带的编译器,由于本人使用的VS的IDE和自带的编译器设置方法有所不同,在一番查找实验后还整…

【论文学习】YOLOv1-YOLOv4

文章目录You Only Look Once,Unified ,Real-Time Object DetectionAbstractIntroductionUnified DetectionNetwork DesignTrainingInferenceLimitations of YOLOComparison to Other Detection SystemsYOLO9000:Better,Faster,StrongerAbstractIntroductionBetterBatch Normali…

【C++之类和对象】日期类的实现

目录前言一、日期类的基本样式二、构造函数三、拷贝构造函数四、赋值运算符重载五、日期比较1. 判断一个日期是否小于另一个日期2. 判断一个日期和另一个日期是否相等3. 判断一个日期是否小于等于另一个日期4. 判断一个日期是否大于另一个日期5. 判断一个日期是否大于等于另一个…

独孤九剑xss通关教程

独孤九剑xss通关教程 独孤九剑第一式&#xff1a; 这里过滤了 () 构造payload&#xff1a; ?data"><svg><script>%26%23x65%3B%26%23x76%3B%26%23x61%3B%26%23x6c%3B%26%23x28%3B%26%23x6c%3B%26%23x6f%3B%26%23x63%3B%26%23x61%3B%26%23x74%3B%26%23…

开门红,农民大衣哥兔年第一条祝福,为何在百万艺人中选择杨语莲

俗话说&#xff1a;人逢喜事精神爽。这句话用到农民歌唱家大衣哥身上&#xff0c;就再贴切不过了&#xff0c;因为在新年即将来临之际&#xff0c;他的儿子小伟又一次结婚了。大衣哥是一个非常接地气的明星&#xff0c;这些年来他无绯闻不炒作&#xff0c;堪称为娱乐圈的楷模&a…

开学季,送初三学生什么礼物最实用?2023学生护眼台灯分享

春节的新学期即将到来&#xff0c;送给初中孩子什么礼物比较好呢&#xff0c;还是要对学习有所帮助的&#xff0c;还需要培养孩子的兴趣&#xff0c;在挑选礼物时&#xff0c;也是斟酌了很久&#xff0c;面对现在很多孩子的有近视问题&#xff0c;在我国的近视人数达到7亿人&am…

java面试题(十一)IO流篇

2.21 请介绍TreeMap的底层原理 参考答案 TreeMap基于红黑树&#xff08;Red-Black tree&#xff09;实现。映射根据其键的自然顺序进行排序&#xff0c;或者根据创建映射时提供的 Comparator 进行排序&#xff0c;具体取决于使用的构造方法。TreeMap的基本操作containsKey、g…

三维重建——商汤NeuralRecon算法详解与论文解读

论文地址:https://arxiv.org/abs/2104.00681 1.三维重建任务概述 三维重建,就是将2D的图片信息重建为3D的信息。应用领域广泛。可以应用于原型设计、虚拟现实等。 2.三维重建基础 (1) 相机成像 相机成像一般是小孔成像的原理,f就是焦距,o就是光圈;右图为光圈大小对清晰…

【多尺度注意力的轻量化图像超分辨率】

MSAR-Net: Multi-scale attention based light-weight image super-resolution &#xff08;MSAR-Net&#xff1a;基于多尺度注意力的轻量化图像超分辨率&#xff09; 近年来&#xff0c;单幅图像超分辨率&#xff08;SISR&#xff09;技术在视频和图像处理领域得到了广泛的应…

Python基础语法预习,开学查漏补缺

嗨害大家好鸭~我是小熊猫 Python3 基础语法 Python学习资料电子书 点击此处跳转文末名片 编码 默认情况下&#xff0c;Python 3 源码文件以 UTF-8 编码&#xff0c; 所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码&#xff1a; # -*- coding: cp-125…

(HR职场)什么是计划能力?如何提高计划能力?

不论是学习还是工作&#xff0c;光靠努力是不行的&#xff0c;还得有计划&#xff0c;有周密的部署&#xff0c;懂得按计划做事情的人&#xff0c;不仅可以高效率地完成工作&#xff0c;还能在枯燥的工作中寻找到乐趣。这就是做计划的意义和必要性。当然光有计划也不行&#xf…