您的位置  > 互联网

学习计算机组成原理,到底是在学些什么呢?

不知道你有没有亲自“安装”过。 2019年的今天,大多数人使用的电脑应该已经是组装的“品牌机”了。 如果我们把时间拨回到20世纪80年代和90年代,许多早期的电脑爱好者购买了各种电脑配件来安装自己的电脑。

计算机的基本硬件组件

早年,自己组装电脑需要三个主要部件:CPU、内存和主板。

在这三大部件中,我们首先要说的就是CPU,它是计算机最重要的核心部件。 你一定知道它的全名,叫做中央处理单元(Unit)。 为什么说CPU“最重要”? 因为计算机的所有“计算”都是由CPU来执行的。 当然,CPU也是整台计算机中最昂贵的部件之一。

CPU是一块超精细的印刷电路板,图片来源

第二个重要的配件是内存()。 你编写的程序、你打开的浏览器、你运行的游戏都必须加载到内存中才能运行。 程序读取的数据和计算的结果也必须存储在内存中。 内存越大,可以加载的东西就越多。

内存通常可以直接插在主板上,图片来源

内存中存储的程序和数据需要被CPU读取。 CPU完成计算后,必须将数据写回内存。 但CPU不能直接插内存,反之亦然。 于是,最后一个大件就被带来了——主板()。

主板是一个具有各种、有时甚至数十个甚至数百个插槽的配件。 我们的CPU必须插在主板上,内存也必须插在主板上。 主板的芯片组(芯片组)和总线(Bus)解决了CPU和内存之间如何通信的问题。 芯片组控制数据传输的流程,即数据从那里到哪里。 总线是实际数据传输的高速公路。 因此,总线速度决定了数据传输的速度。

电脑主板通常有各种插槽,图片来源

有了这三大部件,只要接上电源,电脑就差不多可以运行了。 但现在还缺少各种输入(Input)/输出()设备,也就是我们常说的I/O设备。 如果您使用自己的个人电脑,那么显示器绝对是必不可少的。 只有有了显示器,我们才能看到计算机输出的各种图像和文字。 这就是所谓的输出设备。

同样,鼠标和键盘也是必不可少的配件。 这样我就可以输入文字并写这篇文章了。 它们也称为输入设备。

最后,你自己的个人电脑也必须配备硬盘。 这样就可以持久保存各种数据。 大多数人都会为自己的机器安装机箱和风扇,以解决灰尘和散热问题。 然而,机箱和风扇并不是计算机的必需硬件。 我们可以用纸板或者在外面放一个电风扇。

说了这么多,你其实应该觉得显示器、鼠标、键盘和硬盘并不是电脑的必要组成部分。 如果你想一想,我们实际上只需要允许我们从计算机输入和输出信息的 I/O 设备。 够了吗? 答案当然是肯定的。

你一定去过网吧吧? 不知道大家有没有注意到,网吧里很多电脑都没有硬盘。 相反,他们直接通过 LAN 读取和写入远程网络硬盘中的数据。 对于我们日常使用的各种云服务器来说,只要电脑能够通过网络访问和SSH远程登录,就不需要配备显示器、鼠标和键盘。 这不仅节省了成本,而且使维护变得更加容易。

还有一个很特殊的设备,那就是显卡。 如今,显卡对于使用图形界面操作系统的计算机来说是必不可少的,无论是 Mac OS 还是 Linux。 也许有人会说,我装电脑的时候没有买显卡,电脑还正常运行啊! 那是因为今天的主板配备了内置显卡。 如果您使用计算机玩游戏、进行图形渲染或运行深度学习应用程序,您很可能需要购买单独的显卡并将其插入主板。 显卡之所以特殊,是因为显卡除了CPU之外,还有另一个“处理器”,那就是GPU(Unit)。 GPU还可以执行各种“计算”任务。

鼠标、键盘、硬盘都插在主板上。 作为外部I/O设备,它们通过主板上的南桥()芯片组控制与CPU的通信。 “南桥”芯片的名字很直观。 一方面,它在主板上的位置通常在主板的“南边”。 另一方面,它的作用是充当连接鼠标、键盘、硬盘等外部设备与CPU之间通信的“桥梁”。

有了南桥,自然还有“北桥”。 是的,以前主板上通常都会有一颗“北桥”芯片,作为连接CPU、内存、显卡之间通讯的“桥梁”。 不过,随着时间的推移,现在主板上“北桥”芯片的工作已经移到了CPU内部,所以主板上已经看不到北桥芯片了。

冯·诺依曼架构

刚才我们讲了计算机的硬件组成部分,也就是我们平时使用的个人计算机或者服务器。 那么我们最常用的智能手机的构成是一样的吗?

我们的手机只有像SD卡这样的存储卡插槽,其功能类似于硬盘,但没有内存插槽或CPU插槽。 是的,因为手机体积的原因,手机厂商选择将CPU、内存、网络通讯、甚至摄像头芯片封装到一颗芯片中,然后嵌入到手机主板中。 这种方法称为SoC,即on a Chip。

看来个人电脑和智能手机的硬件构成是不同的。 然而,我们为智能手机编写的应用程序和为个人计算机编写的客户端应用程序似乎没有区别。 它们都是用诸如“高级语言”之类的编程语言编写的。 编译后,代码和数据被加载到内存中。 实施。 为什么是这样? 因为,无论是个人电脑、服务器、智能手机,还是像Pi这样的迷你卡片机,它们都遵循同一个“计算机”的抽象概念。 这是什么样的“电脑”? 这其实就是计算机创始人之一约翰·冯提出的冯·诺依曼架构(Von),也称为存储程序计算机。

什么是存储程序计算机? 这实际上隐含了两个概念,一个是“可编程”计算机,另一个是“存储”计算机。

说到“可编程”,你可能会有点困惑。 你可以先想一下什么是“不可编程”。 计算机是由各种门电路组合而成,然后组装固定的电路板,完成特定的计算程序。 一旦需要修改功能,就必须重新组装电路。 在这种情况下,计算机是“不可编程的”,因为程序在计算机级别是“硬编码的”。 最常见的是老式计算器。 电路板被设置为加法、减法、乘法和除法,除了固定的计算逻辑之外不能执行任何操作。

计算器的本质是一台不可编程的计算机,图片来源

我们再看看“存储”计算机。 这实际上意味着程序本身存储在计算机的内存中,通过加载不同的程序可以解决不同的问题。 有“存储程序计算机”,当然也有不能存储程序的计算机。 一个典型的例子就是早期的“插板式计算机”。 整个电脑就是一个巨大的插线板,通过将线插入板子上的不同插头或接口来实现不同的功能。 这样的计算机自然是“可编程”的,但是写好的程序无法存储以供下次加载。 每次使用不同的“程序”时,都必须重新插入电路板并再次“编程”。 。

著名的用于“编程”,图片来源

可见,无论是“不可编程”还是“不可存储”,使用计算机的效率都会大大降低。 而这种对效率的追求,就是“存储程序计算机”的起源。

于是我们冯老祖根据当时秘密研发的EDVAC,写了一份关于EDVAC的初稿,描述了他认为的计算机应该是什么样子。 这份报告在历史上有一个很特别的缩写,叫做First Draft。 翻译成中文,其实就是“初稿”。 就这样,现代计算机的发展就从创始人写下的一个草稿开始了。

First Draft讲了计算机应该由哪些部分组成,我们来看看。

第一个是处理器单元(Unit),包含算术逻辑单元(Logic Unit/ALU)和处理器寄存器( ),用于完成各种算术和逻辑运算。 由于它可以完成各种数据处理或计算,所以有人也称其为数据通路()或运算单元。

然后是控制单元(Unit/CU),包含指令寄存器( )和程序计数器( ),用于控制程序的流程,通常是在不同条件下进行分支和跳转。 在今天的计算机中,上面的算术逻辑单元和这里的控制器单元一起构成了我们所说的CPU。

接下来是内存,用来存储数据(Data)和指令()。 除了更大容量的外部存储之外,过去可能是磁带、磁鼓等设备,但现在通常是硬盘。

最后还有各种输入输出设备以及相应的输入输出机构。 无论我们现在使用什么样的计算机,我们实际上都是在和输入输出设备打交道。 个人电脑的鼠标和键盘是输入设备,显示器是输出设备。 我们使用的智能手机的触摸屏既是输入设备又是输出设备。 运行在各种云上的服务器通过网络进行输入和输出。 此时网卡既是输入设备又是输出设备。

任何计算机的任何部件都可以分为运算单元、控制器、存储器、输入设备和输出设备,所有现代计算机都是基于这个基本架构来设计和开发的。

所有计算机程序也可以抽象为从输入设备读取输入信息,通过运算单元和控制器执行存储器中存储的程序,最后将结果输出到输出设备。 我们编写的所有程序,无论是高级语言还是低级语言,都是基于这样一个抽象框架来运行的。

冯诺依曼架构图,图片来源

总结与延伸

可以说,冯诺依曼架构建立了我们日常使用的计算机硬件的基本架构。 因此,学习计算机组成原理实际上就是学习冯·诺依曼体系结构。

具体来说,学习组成原理,实际上就是学习控制器和运算单元的工作原理,即CPU是如何工作的,为什么要这样设计; 学习存储器的工作原理,从最基本的电路到上层抽象。 CPU乃至应用程序的接口是什么? 了解CPU如何处理输入设备和输出设备。

学习组成原理就是要了解控制器、运算器、存储器、输入设备和输出设备,从电路等硬件,到最终开放给软件的接口,是如何工作的,为什么要这样设计,以及是如何实现的。软件有效。 如何在开发层面充分利用它。

好了,本次讲座到此结束。 您应该已经了解计算机硬件由什么组成以及冯·诺依曼架构是什么样的。 下一讲我会给大家展示一张图,这也是计算机组成原理的知识图谱。 我们来看看学习构图原理有什么好方法。