1.1计算机工作过程(超详细)

news2024/12/23 18:18:19

文章目录

  • 一、计算机组成框图
  • 二、思维导图
  • 三、部件剖析
    • (1)存储器
    • (2)运算器
    • (3)控制器
  • 四、案例剖析(重点)
    • (1)a=2
    • (2)a*b
    • (3)a*b+c
    • (4)y=a*b+c
    • (5)停机
  • 五、总结

一、计算机组成框图

为了方便大家对计算机工作过程的理解,在这里我又总结了详细的教程。

先来看一下计算机每个部分的功能:

在这里插入图片描述
在这里插入图片描述
请添加图片描述

二、思维导图

这里将计算机部件的各个概念,做了一个思维导图。

大家可以照着记忆,还是非常全面的。

在这里插入图片描述

三、部件剖析

(1)存储器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vlFBdkzT-1673444517410)(D:\Typora图片\image-20230111201356932.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7DEFxzv8-1673444517411)(D:\Typora图片\image-20230111201419345.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IK7Ubj2o-1673444517412)(D:\Typora图片\image-20230111201448154.png)]

注意“字”和“字节”的区别。

还有“B”和"b"的区别。

(2)运算器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5jpbS8mK-1673444517412)(D:\Typora图片\image-20230111201553213.png)]

(3)控制器

在这里插入图片描述

四、案例剖析(重点)

我们来分析一下这几行代码,在计算机中如何运作的。

int a=2,b=3,c=1,y=0;
y=a*b+c;

右侧是存储器内存图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nOzu9xf9-1673444517413)(D:\Typora图片\image-20230111201920761.png)]

(1)a=2

首先是取值

来看一下详细的运转过程。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k2wfhh0d-1673444517414)(D:\Typora图片\image-20230111202201695.png)]

有几个需要注意的点:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TwjQfRqZ-1673444517415)(D:\Typora图片\image-20230111202356843.png)]

(2)a*b

a的值已经被送到ACC寄存器里面了。

所以现在的乘法指令的地址码(0000000110)指向的是另一个乘数b的存放位置。

通过地址码(0000000110–>6)可以看到,取出的数是:0000000000000011,转为十进制就是3。

接下来b的值3会通过数据总线,送到MQ(乘商寄存器)。(图中第9步)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PtRMuSXb-1673444517415)(D:\Typora图片\image-20230111202525737.png)]

现在b的值已经放入MQ里面。

我们还需要将a的值从ACC里面拿出来,放在X寄存器里面。(CPU进行乘法操作的时候,会把被乘数a放在X寄存器,把乘数b放在MQ乘商寄存器里面)

接下来,CU会通过控制线,告诉ALU,让它进行乘法运算。

ALU就会把X和MQ寄存器里面存储的数相乘,最终的结果放入ACC。

所以ACC现在得到a*b的值,即6。

如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-entZ7u66-1673444517416)(D:\Typora图片\image-20230111204922227.png)]

如果相乘的数特别大,ACC寄存器存不下,这时候就需要MQ寄存器辅助存储,MQ里面存放乘法运算结果的低位

和前面那一条指令(a=2)相比,第一步到第五步是相同的。

只有当控制单元分析出这一条指令是乘法指令的时候,接下来的操作才会有区别。

(3)a*b+c

上一个步骤取指令之后,PC自动加一。

所以,现在的PC指向了2:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b4aT1y89-1673444517416)(D:\Typora图片\image-20230111203049718.png)]

ACC寄存器里面存放了a*b的值,即6。

前面五个步骤是一样的,通过前五个步骤,可以完成取指令和分析指令

现在,CU会分析的指令操作码是000011,对应是加法操作


接下来,CU会根据加法指令的执行步骤来指挥其他部件协调工作。

这次要计算的是a*b+c,而a*b的结果已经在ACC中了。所以这个加法指令的地址码指明的是c变量的存放地址。

IR将地址码部分(0000000111–>7)传给了MAR,MAR再传给存储体。

存储体通过这个地址找到对应的值,即:0000000000000001–>1。然后将这个值送给MDR。

现在MDR里面存的就是c的值1。

然后MDR将c的值送入X寄存器里面。(加法运算的时候,ACC里面事先存了被加数,即a*b;X寄存器会存放加数,即c


接下来控制单元会向ALU发送一个信号,告诉他此次要执行加法操作。

然后ALU就会把ACC和X寄存器里面存放的值加在一起,并且将加的结果放入ACC里面。

这样下来,最终ACC存入的结果是7(a*b+c)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AdFgAlnS-1673444517417)(D:\Typora图片\image-20230111203036342.png)]

(4)y=a*b+c

接下来要将a*b+c的值存入y中。

之前进行的a=2这些操作,都是取值操作。

现在要做的,是要把a*b+c的值存入y中,是存值操作。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vbVcwUWj-1673444517418)(D:\Typora图片\image-20230111210855560.png)]

存值操作是如何进行的呢?

经过上面的分析,知道现在这一条指令是存数指令,也就是将ACC里面的值(7)存入地址码(0000001000–>8)所指明的存储单元中的位置。

8这个存储单元,刚好对应的是y变量的存储位置。

具体步骤:

①IR将地址码部分(0000001000)送入MAR,用来指明此次需要存入哪一个存储单元。(图中第6步)

②还要将ACC里面的值通过数据总线,送入MDR里面。(图中第7步)

此时MDR里面保存了a*b+c的值。

MAR里面的地址指明,这个值需要存入内存地址为8的地方。

③CU告诉存储器,此时要进行的是存入(写)操作。

主存储器会根据MAR所指明的地址,把MDR里面的数据,放到相应的位置。

所以,8号存储单元的值变为了7。

如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f8P1cKx8-1673444517418)(D:\Typora图片\image-20230111211730141.png)]

(5)停机

上面的取指令之后,PC的值还是会加一,指向下一个内存单元的地址。

此时,PC=4了。

首先还是要取出指令,PC将4号位置的地址送入存储器,存储器再将指令送入IR,IR再将操作码部分(000110)送入CU。

CU经过分析,发现这是一条停机指令。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zCqxM4Ql-1673444517419)(D:\Typora图片\image-20230111212346373.png)]

这时候,程序运行结束了。

要停止一个进程的运行,就要通过系统调用来通知操作系统终止这个进程,接下来就是操作系统要进行的相关指令了。

这里不做探讨。

五、总结

计算机的工作过程:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g6Ttta5L-1673444517419)(D:\Typora图片\image-20230111212452856.png)]

任何一个指令的执行,都是这三个阶段:取指令、分析指令和执行指令。

无论执行的是什么指令,前面五个步骤(取指令和分析指令)都是一样的,只有分析完指令之后,CU才可以知道这条指令到底要做什么。接下来的步骤,对于不同的指令就有可能不一样。

“取指令”阶段,MDR里面的数据是要传送到IR寄存器的。

而在“执行指令”的阶段,CU会根据具体执行的指令来决定MDR里面的数据是放入ACC还是放入MQ或者其他寄存器里面。

根据指令执行周期的不同,CPU就可以区分出这次从内存中取出的到底是指令还是数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FMvy7Pgs-1673444517420)(D:\Typora图片\image-20230111213016106.png)]

现代计算机通常把MAR、MDR也集成到CPU里面。

这次的案例,每一条指令只给出了一个操作码和一个地址码。有的计算机给出的指令,可能有多个地址码。

比如一条指令包含两条地址,这种指令就被称为二地址指令。

存储程序:在程序运行之前,指令和数据都会被提前存到主存里面。


参考:王道视频
整理文章内容不容易,多多支持。
请添加图片描述

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

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

相关文章

关于 国产麒麟系统上长时间运行Qt程序.xsession-erros文件占满磁盘导致无法写入 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/128660728 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…

[强网杯 2019]随便注

目录 信息收集 方法一:堆叠注入 方法二:MySQL预处理 语法 payload 方法三:handler 知识点 语法 payload 信息收集 1 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version f…

开发中常用的Spring注解

一.IOC容器 Configuration ConpoentScan CompoentScans Bean Import DependsOn Lazy Compoent Repository Service Controller Autowired Qualifier 二.AOP切面 Aspect Pointcut Before After AfterReturning AfterThrowing Around 三.事务声明 Transac…

nacos一:服务注册

为什么用nacos: Eureka需要自己搭建项目,nacos下载后,就可以直接访问web界面,自带负载均衡 Nacos可以 1替代eureka做服务注册中心 2替代Config做服务配置中心 使用 一: 1 下载nacos,在bin目录下打开cmd窗口,输入startup.cmd -m s…

100 亿美元!微软豪赌 AI,OpenAI 渗透 GitHub、Office、Bing

OpenAI 这把 ChatGPT 的火还在持续地燃烧!作者 | 唐小引出品 | CSDN(ID:CSDNnews)今天,据路透社援引 Semafor 消息报道,微软正在计划向 OpenAI 再次投资 100 亿美元,如果合作达成,微…

【STM32学习】SysTick定时器(嘀嗒定时器)

SysTick定时器一、参考资料二、时钟源选择与定时时间计算1、时钟源选择2、定时时间计算三、SysTick_Handler中断服务函数一、参考资料 嘀嗒定时器:时钟源、寄存器 二、时钟源选择与定时时间计算 结合正点原子的代码进行说明: 1、时钟源选择 从上图可以发…

通讯录的实现(详解)(后附完整源代码)

通讯录的实现一.所需要的功能二.大致菜单三.创建通讯录四.增加联系人五.显示联系人六.查找联系人七.删除联系人八.修改联系人一.所需要的功能 对于通讯录来说,我们需要它实现以下几个功能。 1.人的信息:姓名年龄性别电话地址。 2.可以存放100个人的信息…

VMware Workstation Pro 16安装Windows 11

1:首先在机器中安装VMware Workstation Pro。 2:准备Windows 11的安装镜像。 3:安装Windows 11的系统要求,这个很关键不满足条件无法安装,其中我们只需要注意系统固件和TPM这两项就行。 4:运行VMware Wor…

使用SQL4Automation让CodeSYS连接数据库

使用SQL4Automation让CodeSYS连接数据库 摘要:本文旨在说明面向CodeSYS的数据库连接方案SQL4Automation的使用方法。 1.SQL4Automation简介 1.1.什么是SQL4Automation SQL4Automation是一套工业用途的软件解决方案,它主要的功能就是为PLC和机器人控制提…

王道操作系统笔记(一)———— 计算机系统概述

文章目录一、操作系统基本概念1.1 基本概念1.2 四大特征1.3 目标和功能二、操作系统的分类与发展三、操作系统的运行环境3.1 运行机制3.2 中断和异常3.3 系统调用四、操作系统的体系结构4.1 宏内核与微内核4.2 分层结构4.3 模块化4.4 外核五、操作系统引导六、虚拟机一、操作系…

nacos2.x集群版搭建

1. 预备环境准备 请确保是在环境中安装使用: 64 bit OS Linux/Unix/Mac,推荐使用Linux系统。--这里使用linux系统64 bit JDK 1.8;下载. 配置。Maven 3.2.x;下载. 配置。3个或3个以上Nacos节点才能构成集群。官网地址:集群部署说明 2、服务器…

Android 深入系统完全讲解(12)

11 跟踪一个服务,直接找到驱动实现 如果说我自己学习整个系统,直到底层驱动的方法,我想说的就是我常用的就是跟踪震动这个模块,而为什么是这个,主要是简单,但是又是从上到下都具备,对于学习系统…

【OpenCV】拾遗

前言 本篇博客主要是总结OpenCV使用过程中遇到的一些问题,便于以后参考。 以下所有内容均基于VS2015 OpenCV_v4.5.1 及 VS Code MinGW_v4.3.5 CMake_v3.20.0 OpenCV_v4.5.1,前者的配置教程可以参考这个链接,后者的配置教程可以参考这个链…

2022年衣物清洁行业市场报告:洗衣液等四大高增长类目分析

随着人们经济水平的提高以及消费观念的升级,当前个护家清用品逐渐朝品质化、精细化、个性化的方向发展,类目衍生更替更频繁、迭代速度更快。 得益于庞大的人口规模,个护家清产品规模巨大,衣物清洁行业虽增速放缓但仍在个护家清行…

OpenFoam收缩扩张喷管(拉瓦尔喷管)边界条件的设置

简介 收缩扩张喷管(也成拉瓦尔喷管)广泛应用于火箭推进。将其流动特性定性描述如下: (1)当入口流量较小时,不出现雍塞,流速先增大后减小,全程为亚声速。出口压力即为大气压&#x…

金融数学建模——2022年大湾区杯金融数学建模B题(解题思路及部分python代码)

目录 一、概述 二、赛题及解读 1.赛题详情 2.赛题解读 三、解题方法 1.第一问 第一问部分代码 2.第二问 第二问部分代码 3.第三问: 第三问部分代码 4.第四问 三、总结 一、概述 这次比赛是我们队伍第一次参加金融数学建模,尽管在比赛前用2020年…

数据结构与算法4—队列

队列 队列的定义 队列(Queue)也是一种运算受限的线性表。它只允许在表的一端进行插入,而在另一端进行删除。允许删除的一端称为队头(front),允许插入的一端称为队尾(rear)。队列的修改是依先进先出的原则进行的。队列的基本操作 1.初始化队…

Vue前后端页面下载功能实现演示,Python+flask提供后台下载服务

Vue前后端页面下载功能实现效果图后台下载服务实现前台简单实现[ 文章推荐 ] Python 地图篇 - 使用 pyecharts 绘制世界地图、中国地图、省级地图、市级地图实例详解 效果图 首先看下演示效果。 点文档的话是 html 文档,跳转的预览,点下载的话是压缩包…

pycharm python 程序打包相关

前言 终于入门了python打包这个大话题,将目前学到的技能分享一下。 pycharm启动虚拟环境pipenv 缩小打包 和很多博客说的一样,打包那么大是因为打包了多余的库,因此想要缩小就需要一个干净的,没有多余的库的环境进行打包。也就是…

一文读懂内容生态驱动的“菌落式”增长

健康的内容生态对文娱行业极为重要。本文详细介绍了用内容生态建设驱动用户“菌落式”增长的路径。点击文末“阅读原文”立即观看完整直播回放,并下载演讲文档。内容生态与用户增长内容生态建设与用户增长互为因果。一方面,出圈的内容直接带来用户增长。…