冯·诺依曼体系结构:计算机的组成

计算机的基本硬件组成,首先想到的肯定是,CPU,内存条,和主板。

CPU,中央处理器Central Processing Unit,计算机所有的计算处理都由CPU负责,是计算机最重要的核心配件,也被成为计算机的大脑。

内存Memory,所有的程序都要先加载到内存里才能运行,内存越大,计算机运行越流畅,能加载的内容越多;内存越小,电脑用起来自然就越卡。

主板Motherboard,主板是一个有着各种各样,有时候多达数十乃至上百个插槽的配件。我们的 CPU 要插在主板上,内存也要插在主板上。主板的芯片组(Chipset)和总线(Bus)解决了 CPU 和内存之间如何通信的问题。芯片组控制了数据传输的流转,也就是数据从哪里到哪里的问题。总线则是实际数据传输的高速公路。因此,总线速度(Bus Speed)决定了数据能传输得多快。

有了三大件,只要配上电源供电,计算机差不多就可以跑起来了。

但是现在还缺少各类输入(Input)/ 输出(Output)设备,也就是我们常说的 I/O 设备。

如果你用的是自己的个人电脑,那显示器肯定必不可少,只有有了显示器我们才能看到计算机输出的各种图像、文字,这也就是所谓的输出设备。同样的,鼠标和键盘也都是必不可少的配件。这样才可以操作电脑,对计算机发出指令。它们也就是所谓的输入设备。最后,你自己配的个人计算机,还要配上一个硬盘。这样各种数据才能持久地保存下来。最后你还可以给自己的机器装上一个机箱,配上风扇,解决灰尘和散热的问题。不过机箱和风扇,算不上是计算机的必备硬件,我们拿个纸板或者外面放个电风扇,也一样能用。

还有一个很特殊的设备,就是显卡(Graphics Card)。现在,使用图形界面操作系统的计算机,无论是 Windows、Mac OS 还是 Linux,显卡都是必不可少的。如果你用计算机玩游戏,做图形渲染或者跑深度学习应用,你多半就需要买一张单独的显卡,插在主板上。显卡之所以特殊,是因为显卡里有除了 CPU 之外的另一个“处理器”,也就是 GPU(Graphics Processing Unit,图形处理器),GPU 一样可以做各种“计算”的工作。

这些硬件组成了最基本的计算机,而这个计算机的组成,则遵循了冯·诺依曼体系结构(Von Neumann architecture),也叫存储程序计算机。

什么是存储程序计算机呢?这里面其实暗含了两个概念,一个是“可编程”计算机,一个是“存储”计算机。

说到“可编程”,可以先想想,什么是“不可编程”。计算机是由各种门电路组合而成的,然后通过组装出一个固定的电路板,来完成一个特定的计算程序。一旦需要修改功能,就要重新组装电路。这样的话,计算机就是“不可编程”的,因为程序在计算机硬件层面是“写死”的。最常见的就是老式计算器,电路板设好了加减乘除,做不了任何计算逻辑固定之外的事情。

我们再来看“存储”计算机。这其实是说,程序本身是存储在计算机的内存里,可以通过加载不同的程序来解决不同的问题。有“存储程序计算机”,自然也有不能存储程序的计算机。典型的就是早年的“Plugboard”这样的插线板式的计算机。整个计算机就是一个巨大的插线板,通过在板子上不同的插头或者接口的位置插入线路,来实现不同的功能。这样的计算机自然是“可编程”的,但是编写好的程序不能存储下来供下一次加载使用,不得不每次要用到和当前不同的“程序”的时候,重新插板子,重新“编程”。

无论是“不可编程”还是“不可存储”,都会让使用计算机的效率大大下降。而这个对于效率的追求,也就是“存储程序计算机”和冯·诺依曼体系结构的由来。

冯·诺依曼体系结构确立了我们现在每天使用的计算机硬件的基础架构。所以学习计算机组成原理,必须学习和拆解冯·诺依曼体系结构

冯·诺依曼体系结构对于计算机构成的设想如下:

处理器单元(Processing Unit):包含算术逻辑单元(Arithmetic Logic Unit,ALU)和处理器寄存器(Processor Register),用来完成各种算术和逻辑运算。因为它能够完成各种数据的处理或者计算工作,因此也有人把这个叫作数据通路(Datapath)或者运算器。

控制器单元(Control Unit/CU):包含指令寄存器(Instruction Register)和程序计数器(Program Counter),用来控制程序的流程,通常就是不同条件下的分支和跳转。在现在的计算机里,上面的算术逻辑单元和这里的控制器单元,共同组成了我们说的 CPU。

接着是用来存储数据(Data)和指令(Instruction)的内存。以及更大容量的外部存储——其实就是现在的硬盘。

最后就是各种输入和输出设备,以及对应的输入和输出机制。我们现在无论是使用什么样的计算机,其实都是和输入输出设备在打交道。个人电脑的鼠标键盘是输入设备,显示器是输出设备。我们用的智能手机,触摸屏既是输入设备,又是输出设备。任何一台计算机的任何一个部件都可以归到运算器、控制器、存储器、输入设备和输出设备中,而所有的现代计算机也都是基于这个基础架构来设计开发的。

此文章为2月Day14学习笔记,内容来源于极客时间《深入浅出计算机组成原理》,强烈推荐该课程!

你可能感兴趣的:(硬件架构,硬件工程)