文章目录

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

一、计算机组成框图

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

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



二、思维导图

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

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

三、部件剖析

(1)存储器

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

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

(2)运算器

(3)控制器

四、案例剖析(重点)

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

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

右侧是存储器内存图:

(1)a=2

首先是取值

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

有几个需要注意的点:

(2)a*b

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

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

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

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

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

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

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

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

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

如下图:

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

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

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

(3)a*b+c

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

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

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)。

(4)y=a*b+c

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

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

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

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

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

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

具体步骤:

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

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

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

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

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

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

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

如图:

(5)停机

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

此时,PC=4了。

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

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

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

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

这里不做探讨。

五、总结

计算机的工作过程:

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

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

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

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

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

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

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

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

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


参考:王道视频
整理文章内容不容易,多多支持。

1.1计算机工作过程(超详细)相关推荐

  1. 大学计算机基础知识点图文,大学计算机基础知识点超详细总结

    大学计算机基础知识点超详细总结 第一章 计算机及信息技术概述1. 电子计算机的发展历程①1946 年 2 月由宾夕法尼亚大学研制成功的 ENIAC 是世界上第一台电子数字计算机. "诞生了一 ...

  2. 计算机工作过程中 电压应稳定在,计算机组装与维修前三章测评卷.doc

    计算机组装与维修前三章测评卷 计算机组装与维修第一.二.三章测评卷 2011年10月17日 一.选择题(第小题1分,共40分) 1.USB2.0接口数据传输速率的理论值是 A.8Mbps B.480M ...

  3. 计算机网络之交换机的工作原理---超详细解析,谁都看得懂!!

    在了解交换机的工作原理之前,我们先要了解几个概念. 一.相关概念  1.OSI七层模型是哪七层? 自上而下分别是: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 交换机工作在数据链路层, ...

  4. (计算机组成原理)第一章计算机系统概述-第二节:计算机硬件组成(存储器、运算器和控制器概述及计算机工作过程详解)

    文章目录 一:计算机层次结构 (1)早期的冯诺依曼机 (2)现代计算机的组织结构 二:计算机硬件概述 (1)存储器 A:存储元.存储单元.存储体.存储字和存储字长 B:存储器的基本结构 (2)运算器 ...

  5. (王道计算机组成原理)第一章计算机系统概述-第二节:计算机硬件组成(存储器、运算器和控制器概述及计算机工作过程详解)

    王道考研复习指导获取:密码7281 专栏目录首页:[专栏必读]王道考研408计算机组成原理万字笔记.题目题型总结.注意事项.目录导航和思维导图 文章目录 本节思维导图 一:计算机层次结构 (1)冯诺依 ...

  6. 一次完整的HTTP事务过程--超详细!

    简单的来说如下: 域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应 http请求,浏览器得到html代码 --> 浏览器解析 ...

  7. 靶机5 DC-4(过程超详细)

    简介:DC靶场一共有9个,对于学习渗透测试人员,有很大的帮助,是非常不错的靶场. 1.下载靶场 靶机名称:DC-4(包含5个flag) 下载地址: DC: 4 ~ VulnHub 2.安装靶场 以DC ...

  8. eMMC工作模式 - 超详细原理讲解

    博主福利:100G+电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5 ...

  9. 计算机组成原理期末超详细复习

    第一.二章 概论.计算机发展及应用 硬件:计算机中电子线路和物理装置,如主机.外设等 软件:计算机中全部程序和文件 软件分为系统软件和应用软件:系统软件是管理整个计算机系统的软件:应用软件时根据任务需 ...

最新文章

  1. FlatBuffers初探
  2. lombok(@Getter@Setter)
  3. html上滑效果,上滑菜单定位.html
  4. php 即时到账,paypal即时到账php实现代码
  5. 前端学习(1812):前端调试之shadow
  6. mysql 触发器 运算符_mysql三元运算,上下连表,视图,触发器,存储过程,事务等不常用方法...
  7. 这家公司疑被查封、员工被带走,股东李笑来称“做天使投资人真不容易”
  8. Google工程师详解Android架构
  9. Java入门书籍推荐
  10. Linux 开发环境 -- glibc 升级(不建议轻易升级)
  11. DotNetCore CAP
  12. Cmake :创建vs的makefile工程(1)
  13. 自制STC12C5A60S2最小系统板
  14. spring 集成MongoDB错误Interrupted acquiring a permit to retrieve an item from the pool
  15. X006---交叉表(Cross Tab)和转置(Transpose)
  16. RTU-518G 研究
  17. Proxmox VE 6.0管理指南——3.主机系统管理
  18. 前端智能化D2C效率提升50%,带你一睹为快
  19. yum Failed to initialize NSS library恢复
  20. 使用enaBrowserTools和Aspera从ENA下载数据

热门文章

  1. mysql当月最后一天_mysql 获取当前月最后一天和第一天
  2. oracle 10g运维手册
  3. 英语流利说 第38天
  4. 大数据发展趋势及动态
  5. Codecombat复赛闯关攻略
  6. 中英文朗读器 最好的杀毒软件
  7. 网络运维面试----考官会问到的问题?
  8. 全球顶级域名及国家域名列表
  9. flutter纵向滚动嵌套横向滚动
  10. FeCoNiCr高熵合金弛豫的Lammps的in文件构型模板