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

news2024/11/20 0:31:39

文章目录

  • 一、计算机组成框图
  • 二、思维导图
  • 三、部件剖析
    • (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/156931.html

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

相关文章

vscode配置Markdown snippet 的快捷键

Snippet 是? 不同文件的模板语法/代码片段,可以设置好后在不同类型文件快速插入,提高效率。 例如:可以在Markdown使用快捷键生成自己想要的模板内容,自定义输入时tab的跳转位置 具体设置 官方文档 生成snippet的在…

Apache Spark 机器学习 数据源 2

数据源 数据源作为机器学习的数据输入,以供给Spark进行机器学习,Spark技术框架除了支持Parquet、CSV、JSON以及JDBC这些常用的数据源,还提供一些特殊数据源的支持,例如,图像或者LIBSVM。 Parquet数据源 该数据源是a…

2023什么蓝牙耳机值得入手?值得入手的半入耳蓝牙耳机推荐

毫无疑问,近年来蓝牙耳机的外出使用频率越来越高,这是由于其外出携带的便捷性以及配置越来越高端、先进,而半入耳式蓝牙耳机又凭借更舒适的佩戴体验以及便携性受到用户的喜爱。但,面对形形色色的蓝牙耳机,不同价位、不…

Shell中的 test 命令

Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。数值测试参数说明-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真-lt小于则为真-le小于等于则为真实例num1100num2100if test $[num1] -eq $[num2]thenecho 两…

完全背包理论基础

目录 一.理论基础 二.遍历顺序问题 2.1 01背包 2.2完全背包 3.相关题型 3.1零钱兑换 3.1.数组总和IV 一.理论基础 题目描述: 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个&…

重置Entity Framework Core的数据迁移

本文主要参考文章重置EntityFramework数据迁移到洁净状态,感谢哈~。可能是版本问题,文中所述操作跟我稍微有所出入,故在此做下记录。注意,本人的IDE是JetbrainsRider,并非Visual Studio,但主要操作是通用的…

Spring事务源码解析

Spring事务源码解析一、基本概念1、ACID属性2、事务的隔离级别3、事务行为4、Spring事务的传播级别5、Spring事务支持方式二、Spring事务的执行源码1、事务AOP2、事务处理拦截器TransactionInterceptor2.1 主要流程2.2 尝试创建事务2.3 清除线程事务信息2.4 事务提交2.5 事务异…

品牌控价、淘宝控价、拼多多控价,如何有效利用平台投诉

低价链接,是品牌渠道管控最重要的工作,同时,也是最难的,尤其是非授权低价链接,不受经销管理制度约束,极可能屡次沟通仍不配合整改,进行平台投诉,也不被平台支持诉求。 确实&#xf…

高级ACL的基础配置命令

ACL概述 ACL是由一系列permit或deny语句组成的、有序规则的列表。 ACL是一个匹配工具,能够对报文进行匹配和区分。 ACL的组成 CL由若干条permit或deny语句组成。每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作。…

各社区文艺团队疫情首秀演出《金龄会》受邀提供全程服务

疫情放开后,各地活动逐渐恢复,受到广州各社区的中老年文艺团队邀约,广东省金龄会于1月9日在金龄会演播厅举办了疫情后的首秀——“健康广东,抗疫成功,再创辉煌”广东中老年文化艺术大赛,由广东省健康金龄公…

MAC(m1)-CentOS8 Docker安装MySQL

1、查看可用的MySQL版本 访问 MySQL 镜像库地址:Docker 查看老版本: 2、拉取MySQL镜像 我们可以拉取官方的最新版本的镜像: docker pull mysql:latest 我的MAC m1安装的mysql是8,准备在虚拟机上安装5.7 没找到哦,呜…

MySQL高级篇第01章(Linux下MySQL的安装与使用)

CentOS环境的准备 虚拟机的克隆 mac地址 主机名 ip地址 UUID 查看是否安装过MySQL 如果是用rpm安装,检查一下RPM PACKAGE rpm -qa | grep -i mysql # -i 忽略大小写检查mysql service服务: systemctl status mysqld.service如果存在mysql-libs的旧…

Vue2.0开发之——Vue组件-生命周期(37)

一 概述 了解生命周期和生命周期函数的概念初步了解组件创建的过程了解beforeCreate和Created生命周期函数的特点了解beforeMount和mounted生命周期函数组件运行阶段的生命周期函数组件销毁阶段的生命周期函数 二 了解生命周期和生命周期函数的概念 2.1 生命周期&生命周期…

李宏毅ML-机器学习任务功略

文章目录机器学习任务功略机器学习框架训练模型通用指南1. training loss is large2. training loss is small2.1 training loss is small and testing loss is large2.2 training loss is small and testing loss is small3. 偏差与复杂度的平衡机器学习任务功略 机器学习框架…

Yolov5训练自己的数据集

一、从官网下载最新的yolov5代码二、新建VOCData文件夹三、VOCData文件夹结构新建Annotations文件夹,存放标签简单的xml文件,应该长这样复杂的xml文件,应该长这个样子新建images文件夹,存放图片数据注意:需要观察自己的…

1.1.2半导体二极管的结构、工作原理、参数、伏安特性;

1.结构 内部实际上是一个PN结,将电极引线和其封装在一起就构成了二极管 拓展:点接触型二极管,面接触型二极管 2.工作原理 3.参数(以肖特基二极管SS56为例) MAX Forward Voltage(最大导通电压) ,因为SS5…

Jvm-hotspot 总结系列-完整版(1)类加载器

一、类加载器子系统的作用(1)类加载器子系统负责从文件系统或网络中加载class文件,class文件在文件开头有特定的文件标识(cafebabe)咖啡宝贝。(2)ClassLoader只负责class文件的加载,…

广告业务系统 之 核心通道 —— “日志中心-s2s监测上报”

文章目录广告业务系统 之 核心通道 —— “日志中心-s2s监测上报”s2s 监测上报s2s 、c2s曝光/互动/Win数据上报监测上报AB 实验平台广告业务系统 之 核心通道 —— “日志中心-s2s监测上报” s2s 监测上报 s2s 监测上报,是 ADX 将广告的曝光、互动[点击/播放/下载…

赛事推荐 | 建筑物细粒度实例分割——2023 IEEE GRSS 数据融合赛道1

1. 赛题名称 建筑物检测和屋顶类型分类 2. 赛题背景 该轨道侧重于从高分辨率卫星光学图像和 SAR 图像中检测和分类建筑物屋顶类型。SAR 和光学模态有望提供补充信息。给定的数据集涵盖了全球六大洲的十七个城市。分类任务由 12 种细粒度的预定义屋顶类型组成。图 1 显示了一…

缺乏长线思考是扼杀工程师前途的屠刀.

缺乏长线思考是扼杀工程师前途的屠刀。 死局 工作几年后,最容易陷入一个隐形的死局,开发只关注实现需求,运维只关注部署、故障。待到七八年,一定会出现后继无力。被替代,早晚而已。 我相信很多领导都讲过沉淀方法论&am…