【Lynn写点科普】你知道你正在用的电脑是70年前发明的冯纽

作者: 分类: Z城生活 发布于:2020-06-12 918次浏览 20条评论

【Lynn写点科普】你知道你正在用的电脑是70年前发明的冯纽

啪嗒啪嗒打着程式… 你有想过,电脑是怎幺读懂你的程式的呢?电脑又怎幺做运算?一天到晚听到的处理器、记忆体、记忆体的读写次数、暂存器… 等等名词,到底是什幺意思呢?

等等… 你有想过,电脑到底又是怎幺来的吗?

新一代量子电脑架构近来正炒的热门,然而在了解量子电脑之前,你知道你用的电脑、手机等 3C 产品通通都是冯纽曼架构吗?

每次查询相关名词或翻开电脑介绍书,总是乏味又难懂到难以看完吗?放心,这将会是你看过最不无聊的硬体结构介绍!

电脑是怎幺来的?ENIAC:情人节诞生的奇蹟

普遍认为最早的通用电脑,是美国宾州大学的莫奇来和他的学生埃克特在 1946 年 2 月 14 日当天所发表的「ENIAC」。情人节别再讨论单身鲁了,人家可是在情人节颠覆世界呢…

ENIAC 计算机在进行每一次运算之前,都须根据运算要求、把不同的元件用人工插接线路的方式连接在一起。将输入装置和输出装置设好后,才进行通电……啪!一声,电脑哒哒哒的开始运作。

【Lynn写点科普】你知道你正在用的电脑是70年前发明的冯纽

但现在可能正用电脑看这篇文章的你,好像不需要在开机前把电线插来插去才能使用?

因为 ENIAC 这个电路没有储存程式的功能。最早的计算机器仅内涵固定用途的程式,比如一台「计算机器」仅有固定的数学计算程式,除此之外便无其他,无论是文书处理或玩游戏都不行。

若想要改变这台机器的功能,你必须更改线路结构、甚至重新设计机器。

太麻烦了吧!有没有什幺更好的办法呢?比如,做出一台能跑游戏又能做文书处理的「通用电脑」?

EDVAC:冯·纽曼结构与现代电脑

1945 年 6 月,是现代电脑科学的里程碑。着名的美籍犹太裔数学家冯·纽曼与多位学者联名发表了一篇长达 101 页的报告《First draft of a report on the EDVAC》其中包括两大建构电脑的原则:

事实上,这两点原则都指向了报告最核心的概念——「可储存程式的电脑」。

如果是一台能储存程式的电脑,只要一开始先将「文书程式」与「游戏程式」都载入记忆体中,再告诉电脑去记忆体的哪一个位置开始执行就可以完成,在不需更动硬体的情况下就能让电脑变得更加有弹性。

1951 年,美国军方根据这份报告、并透过冯·纽曼的协助,斥资五十万美元打造了计算机「EDVAC」。

【Lynn写点科普】你知道你正在用的电脑是70年前发明的冯纽
冯纽曼与 EDVAC 电脑

相较于十进位、又须人工插接电路的 ENIAC,可以说 EDVAC 是第一台现代意义的通用计算机,至今全世界的电脑皆仍採用「冯·纽曼架构」。

讲白点,冯纽曼架构就是一个打造电脑的「数学模型」,也是目前唯一成功被实作出、全世界电脑唯一使用的数学模型。

继冯纽曼电脑后、第二个被认为可能实作出来的数学模型为量子电脑,但到现在还没真的成功做出来。

其他也还有一些架构,比如哈佛架构、仿生电脑,基本上也都还处于理论阶段,尚未商用化。

冯纽曼能打造一个电脑架构,至今延续超过 70 年全世界的电脑都还在用它,实在太厉害了!除此之外,冯纽曼还是博弈论的创始人,也被称作「博弈论之父」;博弈论被认为是 20 世纪经济学最伟大的成果之一。另外他在量子力学上也有着重大贡献…

咳咳,离题了。希望经过这样的介绍,您能对冯纽曼此人天才的逆天程度有一些概念。

最后,在这边还是要为大家补充一下,「可储存程式」电脑这个概念并不是由冯纽曼提出、而是图灵提的图灵机噢。

但你想进一步知道图灵是为什幺会提出图灵机这个数学模型吗?咳咳,欢迎你参考我 先前写的一篇文章 。

冯纽曼的现代电脑架构

接下来,让我们针对冯纽曼架构、来为读者做进一步的解释,同时了解 CPU 与记忆体的设计原理。

冯纽曼架构

在冯纽曼式的电脑中,电脑被分成了五大单元、缺一不可,分别称作「控制器」、「运算器」、「储存器」、「输入设备」与「输出设备」。

「输入设备」就是你用来将外部资料输入到电脑的东西,比如键盘、滑鼠。「输出设备」就是将电脑内部的资料输出到外部给你看的东西,比如萤幕、印表机。

最近蛮多新创公司、游戏开发商、工程师、技术宅宅都改用 .io 的网址,比如 spring.io。让 .io 变成继 .com 之后的热门网域。这是因为 io 刚好有 I/O的意义。

【Lynn写点科普】你知道你正在用的电脑是70年前发明的冯纽

那「控制器」、「运算器」和「储存器」又是什幺呢?

在这里,我们要来讲一个小当家做菜的故事帮你了解。

储存器,也就是实际上的 「记忆体」。可以把记忆体想像成一个大柜子,每个柜子都有一个编号,我们称为位址。常常听到的 「记忆体位址」 就是这个意思噢!

这些柜子中,会用来储存正在执行中程式的「程式码」、和待处理的「资料」。

想像一下,这些指令就是我们的食谱、资料就是食材;对资料要求做加减乘除的处理程序,其实就是对食材做蒸煮炒炸的感觉呢!

【Lynn写点科普】你知道你正在用的电脑是70年前发明的冯纽

等等,那是谁要负责执行这些食谱和煮食材呢?当然就是我们的厨师、也就是 「处理器」 要做的事情。

但这个厨师脑子记不太得东西,你得告诉他:要去记忆体位址哪边抓食谱、和要去记忆体位址的哪边抓食材。这个动作就叫做 「Memory Read」。

想想你炒菜的时候,一定要先把料从冰箱拿出来放到锅子的旁边啊,总不会要炒菜的时候、才冲到冰箱把菜拿出来吧?这样锅子都要烧乾了。

所以我们把要煮的食材从记忆体抓出来后,会先把它暂存到 CPU 的一个空间,这个空间就叫做 「暂存器」,专门放即将要算的资料、和刚算好的资料。

可以想像暂存器就是你锅子边放要煮食材、和刚煮好的菜的盘子。依据不同架构的 CPU ,暂存器的数量会不同。像 ARM 和 MIPS 架构的处理器里面便有 32 个暂存器。

【Lynn写点科普】你知道你正在用的电脑是70年前发明的冯纽

然后 CPU 厨师会开始根据食谱煮煮煮食材… 煮完后,又把刚煮好的菜餚先放到手边的盘子中,也就是 CPU 中的另一个暂存器。

【Lynn写点科普】你知道你正在用的电脑是70年前发明的冯纽

但你煮完的菜餚总不能一直放在厨房继续佔空间,厨房是要煮菜的地方,得把菜再放回仓库存放。

所以 CPU 会把煮好的菜送回记忆体的格子中。这个动作就叫做「Memory Write」。

同时,厨师会继续根据「程式计数器上记载的记忆体位址,来取得下一张要执行的食谱。

可以想像它只是另一个用来放食谱单子的仓库地址的盘子!程式计数器是一个特殊的暂存器,专门用来存放下一个要被执行的指令所在的记忆体位址。也可以叫它 Instruction Address Register 或 Instruction Counter。

哇!轻轻鬆鬆就了解冯纽曼架构了,以后再看到 CPU、记忆体、记忆体位址、暂存器、记忆体的读写次数、Program Counter… 之类的讨论和名词,相信不会再害怕了!

讲这幺多,这个架构在实际上的硬体,是长什幺样子呢?

在一块个人电脑的主机板上,可以插上 CPU 处理器、主记忆体、显示卡,再接上硬碟,连接到键盘,连上萤幕,最后接上电源。

这样就是一台冯纽曼架构的电脑啦!来看一下我们讲的冯纽曼架构五大单元,是不是都在上面:「控制器」与「运算器」、「储存器」、「输入设备」、「输入设备」。

【Lynn写点科普】你知道你正在用的电脑是70年前发明的冯纽

登愣!这样就出现一台可以正常运作的电脑,很简单吧!以后别怕身边没有工具人,自己就能当自己的工具人。

这时候就要回顾一下一开始说的. 还记得我们提到,为什幺冯纽曼架构电脑,为什幺会比本来的 ENIAC 电脑更好呢?

因为在电脑要执行程式之前,先将要执行的「程式码」与「资料」储存于记忆体。若要变更任务,只需要修改程式即可,省去更改线路的麻烦。

另外,还记得「指令集架构」这个名词吗?

结合我们先前在 Intel x86 与 ARM 架构大战 一文中介绍过——任何产品在设计的时候,都要先制定规格、再依据规格设计出相应的产品。

当我们想要设计 CPU 时,要制定的规格就是「指令集架构」。

指令集架构包含了:

【Lynn写点科普】你知道你正在用的电脑是70年前发明的冯纽

指令集架构提供工程师造计算机的抽象规格。根据相同的抽象规格,可以採用不同的方式造出计算机,然而造出来的计算机会彼此相容,也就是功能、规格相同。所以如果我们把 ISA 和冯纽曼架构结合在一起,就是:

无论是伺服器、Workstation、个人电脑、笔电,还是你的手机、平板电脑等电子产品,至今全部都是採用冯纽曼架构的电脑!

可以想想并找找看手机的运算单元、储存单元、 I/O 装置分别是哪些硬体,把手机拆开来看看也行!

结语

我们今天学到了:

  1.  冯纽曼是一位多可怕的逆天天才。
  2.  冯纽曼架构有五大单元
  3.  无论手机电脑等电子产品全都是冯纽曼架构。
  4.  「I/O 设备」对应到的,就是键盘、滑鼠,与萤幕、印表机。
  5.  「控制/运算/储存单元」如何运作,也就是 CPU 和记忆体之间的关係
  6.  指令集架构 + 冯纽曼架构 = 电脑基础架构

感谢大家收看今天的《一看就懂的 IC》第一集。

等等,我还有个问题!记忆体和硬碟,到底有什幺差别?

不,CPU 不会直接去硬碟抓资料。有些硬体装置虽然叫「记忆体」、比如快闪记忆体 Flash,但它的身份其实是硬碟。符合我们这边介绍的记忆体是 DRAM。

蛤?我还是听不太懂差异耶!而且记忆体又有 DRAM、SRAM、SDRAM、DDR、LPDDR、Nor Flash、NAND Flash…. 各式各样的,到底差异在哪边啊

三星、SK 海力士、美光、金士顿,或台湾的创见、威刚、旺宏等「记忆体大厂」,又差异在哪?分别销售哪几种产品呢?

下週《一看就懂的 IC》系列的 第二集 ,就让我们来更进一步介绍记忆体吧!还请準时收看!

<<上一篇: