javaEE----计算机是怎么构成的(一)

计算机是如何工作的

计算机发展史

计算的需求在⼈类的历史中是⼴泛存在的,发展⼤体经历了从⼀般计算⼯具到机械计算机到⽬前的电子计算机的发展历程。
⼈类对计算的需求,驱动我们不断的发明、改善计算机。⽬前这个时代是“电⼦计算机”的时代,发展的潮流是:更快速、更稳定、更微型。计算机的以后将如何发展,期待⼤家的努⼒。
推荐书籍: 《计算机简史》

冯诺依曼体系(Von Neumann Architecture)

现代的计算机, ⼤多遵守 冯诺依曼体系结构
请添加图片描述

  • CPU 中央处理器: 进⾏算术运算和逻辑判断.
  • 存储器: 分为外存和内存, ⽤于存储数据(使⽤二进制方式存储)
  • 输⼊设备: ⽤⼾给计算机发号施令的设备.
  • 输出设备: 计算机个⽤⼾汇报结果的设

针对储存空间

硬盘>内存>>CPU

针对数据访问速度

CPU>>内存>硬盘

认识计算机的祖师爷 – 冯诺依曼 冯·诺依曼(John von Neumann,1903年12⽉28⽇-1957年2⽉8⽇),
美籍匈⽛利数学家、计算机 科学家、物理学家,是20世纪最重要的数学家之⼀。冯·诺依曼是布达佩斯⼤学数学博⼠,在现代计
算机、博弈论、核武器和⽣化武器等领域内的科学全才之⼀,被后⼈称为“现代计算机之 ⽗”、“博弈论之⽗”.

CPU 基本⼯作流程

接下来,我们⽤⼀个从⽆到有的过程,⼀步步搭建⼀个 CPU 出来,希望⼤家可以借助这个过程,理解
CPU、内存等计算机主要部件的⼯作原理。

逻辑门

电子开关⸺机械继电器(Mechanical Relay)

请添加图片描述
通过电⼦开关,我们可以实现 1 位(bit) 的看似⽆⽤的逻辑运算,但⾄少它⼯作起来了,不是么。怎么使⽤电⼦开关组合出真正有⽤的逻辑组件,我们接来下会做进⼀步的学习了解。
以后的真空管、晶体管的实质也是完成类似的⼯作,只是物理原理更加复杂,我们就不带着⼤家做深
⼊解读了。

⻔电路(Gate Circuit)

接下来,我们学习如何使⽤电⼦开关构建⼀些有⽤的部件⸺⻔电路。可以实现 1 位(bit) 的基本逻辑
运算。
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

算术逻辑单元 ALU(Arithmetic & Logic Unit)

ALU 是计算机中进⾏算数、逻辑运算的核⼼部件,是计算机的数学⼤脑。接下来,我们⽤上节构建的逻辑⻔来完成⾃⼰的⼀个 ALU,去学习理解它的⼯作模式,以便作为我们进⼀步理解现代计算机⼯作原理的基⽯。

进制的理解制的理解
我们已经熟悉数字的各种表⽰了,让我们再简单回顾下进制。请添加图片描述
请添加图片描述

算术单元(Arithmetic Unit)

算数单元,负责计算机⾥的所有数字操作,⽐如四则运算,当然它能做的远远不⽌这些。接下来我们会带着⼤家实现⼀个 8 位(bits)的加法器(adder)来,以演⽰整个过程,其他的运算器就不再详细讲解了。
请添加图片描述
请添加图片描述
请添加图片描述
⾄此,⼀个 8 位(bits) 加法器就被我们从⽆到有制作了出来。算术单元⽀持的操作当然远不⽌这些,通过继续组合逻辑⻔,算数单元可以做到加减乘除甚⾄更多的算术运算,但⼀个加法器作为演⽰已经⾜够了。实际上,乘法器和除法器的制作难度是要⾼于加、减法器的,有兴趣的同学可以尝试做更多的了解。

ALU 符号

经过我们的努⼒,通过基本的逻辑⻔电路,我们⼀步步地做出了⼀个 8 位(bits) ALU,甚⾄⽐ Intel74181 还要强⼤,Intel 74181 只是⼀个 4 位(bits) ALU(😀)。当然现代的计算机中的 ALU 部件⾮常强⼤,复杂度远远超过了我们的想象,32 位 甚⾄ 64 位基本已经普及全球了。但⽆论如何,再复杂的ALU 也是芯⽚⼯程师像我们这样,⼀层⼜⼀层,⼀步⼜⼀步地将其抽象出来的。ALU 是第⼀次将⼈类历史上的数学和逻辑学学科有机地结合起来,可以视为⼈类智慧发展的现代巅峰。比⻔电路,我们⼀步步地做出⼀个 4 位(bits) ALU(😀)。,32 位 甚⾄ 64 位基本已经⼀层⼜⼀层,⼀步⼜⼀步地结合起来,可以视为⼈类智慧发展的现代巅峰。请添加图片描述

寄存器(Register) 和内存(RAM)

光有 ALU 还是远远不够的,我们⽆法为 ALU 提供存储的部件,所以接来下,我们利⽤⻔电路简单说明下存储的制作。注意,虽然图中没有明显的表⽰出来,但这些存储都是要求必须保持通电状态的,也就是这些存储都是易失的(volatile)
请添加图片描述
中间我们隐藏了⼀些实现细节,最后的效果就是:使能线置位时,输⼊为 1,保存 1;输⼊为 0,保存0。使能线不置位时,则写⼊⽆效。
我们可以利⽤⻔锁,构建我们需要的寄存器和内存。
请添加图片描述
内存的构建要⽐这个复杂⼀点,但基本原理⼀致。如此构建的内存被称为 RAM(Random AccessMemory),可以⽀持 O(1) 时间复杂度访问任意位置的数据,这也就是我们数组下标访问操作是 O(1)的硬件⽀持。请添加图片描述

期间,为了我们学习的聚焦性,我们隐藏了⼤量的实现细节,对于这部分知识感兴趣的同学可以在课后做深⼊的学习。

控制单元CU

我们现在有 ALU、存储了,但这还是不⾜以让我们的计算机⼯作起来,我们需要有⼀个部件来指挥ALU 进⾏何种的运算,⽽这个部件就是控制单元(CU)。请添加图片描述
关于 CU 如何由⻔电路从⽆到有搭建,我们就进⾏抽象了,我们只需要理解 CU 可以驱动 的计算⼯作即可,⾄于 ALU 是如何驱动 ALU 进⾏⼯作的,我们在下⼀节进⾏详细的论诉。 请添加图片描述

指令(Instruction)

⾸先,我们先介绍下我们需要到的指令(instruction)。
所谓指令,即指导 CPU 进⾏⼯作的命令,主要有操作码 + 被操作数组成。
其中操作码⽤来表⽰要做什么动作,被操作数是本条指令要操作的数据,可能寄存器编号等。寄存器编号等。
指令本⾝也是⼀个数字,⽤⼆进制形式保存在内存的某个区域中。请添加图片描述

CPU 的基本⼯作流程

接下来,我们演⽰指令运⾏的⼀个周期,希望同学们可以学习到其流程,并完成剩余指令的运⾏过程。
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
第⼀条指令的运⾏,其实没有⽤到我们之前制作的ALU部件,但这只是其中的一些指令而已。把剩余的 3 条指令⾃⾏运⾏⼀次,观察并理解这个过程。

我们来总结下执⾏周期经过哪些阶段:
请添加图片描述
当然,电⼦计算机中的 CPU 可不像我们刚才那样,靠⾃⼰来驱动这个周期的运转,⽽是靠背后⼀个时钟来进⾏周期驱动的。

知乎问题: 时钟频率是什么概念

请添加图片描述
最后,ALU + CU + 寄存器 + 时钟就组成了我们平时经常看到的⼀个词汇:中央处理器(Center
Process Unit)简称 CPU。

请添加图片描述

⼩结
通过上述的章节,我们带领⼤家从基本的电⼦开关开始,⼀步步的搭建了⼀个CPU和内存出来,虽然
中间还是对很多过程和细节做了隐藏和抽象,但主要流程已经体现了出来,希望这节学习完成之后,
同学们不在对CPU充满了神秘感。

然后我们把这⼀节中⼀些要点给⼤家做⼀个⽂字总结:

  1. CPU 中的 PC 寄存器,是决定 CPU 要执⾏哪条指令的关键;
  2. 指令是由 动作 + 操作对象组成
  3. CPU 眼中只有指令,没有其他的概念
  • 18
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序猿在线码字

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

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

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

打赏作者

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

抵扣说明:

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

余额充值