揭晓计算机的神秘面纱——计算机是如何工作的(一)


前言

当前计算机技术获得了迅猛发展,广泛的应用于人们的日常生活中,给人类的生活带来了巨大的便利,随着社会发展,越来越多的人对计算机产生了浓厚的兴趣,下面我就带大家来揭开计算机的神秘面纱,学习计算机是如何工作的!


计算机的发展史

关于计算机的发展史,不得不说,如果让我来写,我可能写三天三夜也写不完,历史是人类宝贵的财富,而将计算机和历史联系在一起又能产生怎样的火花呢?下面这篇文章就会告诉我们:

来自 涛歌依旧 的:《古今计算机发展简史》
古今计算机发展简史

冯诺依曼体系

现代计算机之父----冯诺依曼

约翰·冯·诺依曼(John von Neumann,1903年12月28日-1957年2月8日),美籍匈牙利数学家、计算机科学家、物理学家,是20世纪最重要的数学家之一。冯·诺依曼是罗兰大学数学博士,是现代计算机、博弈论、核武器和生化武器等领域内的科学全才之一,被后人称为“现代计算机之父”、“博弈论之父”。

那什么是冯诺依曼体系呢?

冯诺依曼结构图如下:
冯诺依曼结构图

  • CPU 中央处理器: 进行算术运算和逻辑判断.
  • 存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储).
  • 输入设备: 向计算机输入数据和信息的设备.
  • 输出设备: 计算机硬件系统的终端设备.

什么是CPU(中央处理器)

CPU是计算机的心脏,负责执行提供给它们的指令,它的主要任务是执行算术运算和逻辑运算,并将指令协调在一起。

算数逻辑单元ALU

ALU 是计算机中进行算数、逻辑运算的核心部件,是计算机的数学大脑。ALU的基本功能包括加,减,乘,除四则运算,与,或,非,异或等逻辑运算,以及移位,求补等操作。

算数单元

算数单元:算数单元就是负责计算机里的所有数字操作,比如四则运算等。
接下来我们通过实现一个8位数加法器来理解算数单元。
半加器
半加器
全加器
全加器
上面介绍了半加器和全加器,8位数加法器就是由半加器和全加器组合而成的,如下图所示:
全加器

逻辑单元

逻辑单元:逻辑单元主要用来进行逻辑操作,最基本的操作就是与、或、非、异或操作,它还能做简单的数值测试,比如利用许多个“或门”来检测一个8位数是否为“0”。

判断一个8位数不为0
判断一个8位数不为0
判断一个8位数为0
判断一个8位数为0

ALU符号

一个8位的ALU可能会需要数百个逻辑门,所以科学家们用一个特殊的符号来代表它,它的形状就像一个大写的V。
ALU符号

寄存器和内存

AND-OR锁存器
之所以叫“锁存”,是因为它锁定了一个值,放入数据的动作叫“写入”,拿出数据的动作叫“读取”。
AND-OR锁存器
但是它有两条输入线,为了方便使用,我们希望它只有一条输入线,所以就出现了“门锁”这个概念,对于门锁来说,当允许写入线被置为0时,数据输入线不论是1还是0,数据输出不变,而当允许写入线被置为1时,数据输入1,输出就为1,数据输入0,输出就为0。
门锁
寄存器就是由一组锁存器构成的,如下图所示为一个8位寄存器:
8位寄存器
内存(RAM)的构建基本原理和寄存器是一致的:
RAM

控制单元CU

控制单元:控制单元CU是CPU部件之一,有时也安装于CPU外部,其基本功能是从内存取指令、分析指令和执行指令。
控制单元结构:
控制单元结构
从上图可以看出控制单元CU分为输入信号和输出信号。
输入信号:指令寄存器、标志、时钟、来自系统总线的控制信号(中断请求)。
输出信号:CUP内部的控制信号、到系统总线的控制信号(读写,中断响应)。

指令

指令:所谓指令,即指导 CPU 进行工作的命令,主要有操作码 + 被操作数组成。其中操作码用来表示要做什么动作,被操作数是本条指令要操作的数据,可能是内存地址,也可能是寄存器编号等。
如下图所示:
指令表

CPU的工作流程

CUP的操作流程如下:
CPU操作流程

  1. 取码阶段:CU根据PC寄存器的值,去内存的响应位置,把数据(指令)读取到 IR 寄存器中,正常情况下,PC寄存器中的值自动+1;
  2. 解码阶段:CU按照预先设定的指令集解读指令数据(opcode+操作数),例如上述的:0010 1110,人为规定:0010是opcode,查询指令表,知道0010代表的意思是,从后边地址指定内存处,将数据读取到A寄存器,1110代表地址为14的内存处;
  3. 执行阶段:LOAD指令应该由CU执行,所以按照规定执行指令:从内存的14地址处,将数据读取到A寄存器中。

关于PC寄存器:

  • 由于硬件中PC在自动+1,所以我们的代码变成的指令才能顺序的的往下去执行
  • 代码中的一条语句,很可能是需要多条指令才能完成的
  • PC寄存器中的值在这个指令周期中很关键,可以控制执行哪里的指令
  • 通过CPU中预先规定的指令,可以修改PC中的值(带条件修改),进而影响执行流

CPU的中断模式

在正常模式下,CPU可以顺序执行,可以分支执行,但总归只能按照既定的顺序执行,但现实中,很多时候需要暂时中断CPU的当前执行流,先让CPU去做其他工作,再回头来继续原来的执行流。

CPU中提供了一种机制让CPU停下:

  1. 保存当前的PC的值到内存的某个位置
  2. 修改PC的值,让执行其他执行流
  3. 其他执行流执行结束之后,通过刚才保存的PC值恢复到PC寄存器
  4. 继续原来的执行流

中断的应用:

  • IO设备的处理
  • 操作系统中用来作进程调度

编程语言

程序:所谓程序,就是一组指令以及这组指令要处理的数据。狭义上来说,程序对我们来说,通常表现为一组文件。

程序 = 指令 + 指令要处理的数据

编程语言


总结

以上就是今天要讲的内容,本文仅仅简单介绍了CPU,实际上计算机中的结构是非常复杂的,要花费更多的时间才能学习透彻,如果觉得本文对你有帮助的话,就留下你的👍吧!

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怎样让大排不硬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值