计算机组成原理:冯-诺依曼体系结构,计算机组成的金字塔

计算机的基本硬件组成:CPU、内存、主板

早年,要自己组织一台计算机,要先有三大件:CPU、内存、主板

CPU

  • CPU是计算机最重要的核心配件,全名叫做中央处理器(central processing unit)
  • CPU是一个超级精细的印刷电路板

在这里插入图片描述

  • 为什么说CPU是最重要的呢?因为计算机中的所有“计算”都是由CPU来进行的,CPU可以看成是是计算机的大脑

内存

  • 浏览器、游戏等程序都需要先加载到内存中才能运行。获取读取的数据、计算得到的结构,也都要放在内存中。内存越大·,能够加载的东西越多
    • 程序保存在存储设备中,通过使用CPU来实现程序指令的执行,这种机制称为存储程序方式
    • 【以前程序的运行是通过改变计算机的布线来读写指令的】
  • 存放在内存中的数据,需要被CPU读取,CPU计算完之后,还要把数据写回内存。

在这里插入图片描述

主板

  • 内存通常可以直接插在主板上。CPU不能直接插到内存上,反之亦然。于是,就带来了最后一个大件------主板
  • 主板是一个有着各种各样,有时候多达数十甚至上百个插槽的配件。CPU和内存都要插到主板上
  • 主板的芯片组(chipset)和总线(bus)解决了CPU和内存之间如何通信的问题
    • 芯片组控制了数据传输的流转,也就是数据从哪里到哪里的问题
    • 总线则是实际数据传输的高度公路。因此,总线速度(bus speed)决定了数据能传输得多快。

在这里插入图片描述

其他

有了三大件,只要配上电源供电,计算机差不多就可以跑起来了。但是现在还缺少各类输入(Input)输出(Output)设备,也就是IO设备

  • 如果你用的是自己的个人电脑,那必须有显示器,有了显示器我们才能看到计算机输出的各种图像、文字,这就是输出设备
  • 同样,鼠标和键盘也是必不可少的配置,这样才能输入文本。这就是输出设备

最后,还需要配上一个硬盘。这样各种数据才能持久的保存下来。 可能很多机器还会装机箱和风扇,解决灰尘和散热问题。不过机箱和风扇,可能不是计算机的必备硬件,我们拿个纸板或者外面放个电风扇,也一样能用。

其实,显示器、鼠标、键盘、硬盘这些东西也并不是一台计算机必须的部分。我们其实只需要有IO设备,能让我们从计算机里面输入和输出信息,就可以了。比如:

  • 很多网吧的计算机就没有硬盘,而是直接通过局域网,读写远程网络硬盘里面的数据
  • 我们日常用的各种云服务器,只要让计算机能够通过网络,SSH远程登录访问就好了,因此也没有必要配置显示器、鼠标、键盘这些东西。这样不能能够节约成本,还能更方便维护。

还有一个很特殊的设备,那就是显卡(graphics card)。现在,使用图形界面操作系统的计算机,无论是win、linux还是mac,显卡都是必不可少的。有人可能就要说了,我装机的时候没有买显卡,计算机一样可以正常跑起来啊!那是因为,现在的主板都代理内置的显卡。如果你用计算机玩游戏,做图形渲染或者跑深度学习,你多半就需要买一张单独的显卡,插在主板上。显卡之所以特殊,是因为显卡里面除了CPU之外的另一个处理器,也就是GPU(graphics processing unif,图形处理器),GPU一样可以做各种“计算”的工作。

鼠标,键盘以及硬盘,这些都是插在主板上的。作为外部IO设备,它们是通过主板上的南桥(southBridge)芯片组,来控制和CPU之间的通信的,“南桥”芯片的名字很直观

  • 一方面,它在主板上的位置,通常在主板的“南面”。
  • 另一方面,它的作用就是作为“桥”,来连接鼠标、键盘以及硬盘这些外部设备和CPU之间的通信。

有了南桥,自然也有对应的“北桥”。以前的主板上通常也有“北桥”芯片,用来作为“桥”,连接CPU和内存、显卡之间的通信。不过,随着时间的变迁,现在的主板上的“北桥”芯片的工作,已经被移到了CPU的内部,所以你在主板上,已经看不到北桥芯片了。

冯-诺依曼体系结构

刚才我们讲了一台计算机的硬件组成,这说的是我们平时用的个人电脑或者服务器。那我们平时最常用的智能手机的组成,也是这样吗?

我们手机里面只有SD卡(secure digital memory card)这样类似硬盘功能的存储卡插槽,并没有内存插槽、CPU插槽这些东西。没错,因为手机尺寸的原因,手机制造商选择把CPU、内存、网络通信,以及摄像头芯片,都封装到了一个芯片,然后再嵌入到手机主板上,这种方式叫做SoC(System on a Chip,系统芯片)

这样看起来,个人电脑和智能手机的硬件组成方式不太一样。可是,我们写智能手机上的app,和写个人电脑上的客户端应用似乎没有什么差别,都是通过“高级语言”这样的编程语言编写、编译之后,一样是把代码和数据加载到内存中来执行。这是为什么呢?因为,无论是个人电脑、服务器、智能手机,还是其他,都遵循这同一个“计算机”的抽象概念-----冯-诺依曼体系结构,也叫做存储程序计算器

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

  • 说到“可编程”,我们就要先知道,什么是“不可编程”。计算机是由各种门电路组合而成的,然后通过组装成一个固定的电路板,来完成一个特定的计算程序。一旦需要修改功能,就要重新组装电路。这样的话,计算机就是“不可编程”的,因为程序在计算机硬件层面是“写死”的。最常见的就是老式计算机,电路板设好了加减乘除,做不了任何计算逻辑以外的事情。
    在这里插入图片描述
  • 那什么是“存储”计算机呢?这其实是说,程序本身是存储在计算机的内存里,可以通知加载不同的程序来解决不同的问题。有“存储程序计数器”,自然也有不能存储程序的计算机。典型的就是早年的”Plugboard“这样的插线板式的计算机。整个计算机就是一个巨大的插线板,通过在板子上不同的插头或者接口的位置插入线路,来实现不同的功能。这样的计算机自然是”可编程“的,但是编写好的程序不能存储下来供下一次加载使用,不得不每次要用到和当前不同的”程序“的时候,重新插板子,重新”编程“。

在这里插入图片描述

可以看到,无论是”不可编程“还是”不可存储“,都会让使用计算机的效率大大下降。而这个对于效率的追求,也就是”存储程序计算机“的由来。

于是我们的冯祖师爷,基于当时在秘密开发的EDVAC写了一篇报告 First Draft of a Report on the EDVAC,描述了他心目中的一台计算机应该长什么样。这篇报告在历史上有个很特殊的简称,叫First Draft,翻译成中文,其实就是《第一份草案》。这样,现代计算机的发展就从祖师爷写的一份草案开始了。

First Draft里面说了一台计算机应该由哪些部分组成,我们一起来看看。

  • 首先是一个包含算术逻辑单元(Arithmetic Logic Unit, ALU)和处理器寄存器(Processor Register)的处理器单元(Processing Unit),用来完成各种算术和逻辑运算。因为它能够完成各种数据的处理或者计算工作,因此也有人把这个叫做数据通路(Datapath)或者运算器。
  • 然后是一个包含指令寄存器(Instruction Register)和程序计数器(Program Counter)的控制器单元(Control Unit/CU),用来控制程序的流程,通常就是不同条件下的分支和跳转。在现在的计算机里,上面的算术逻辑单元和这里的控制器单元,共同组成了我们说的CPU
  • 接着就是用来存储数据(Data)和指令(Instruction)的内存。以及更大容量的外部存储,在过去,可能是磁带、磁鼓这样的设备,现在通常就是硬盘。
  • 最后就是各种输入和输出设备,以及对应的输入和输出机制。我们现在无论是使用什么样的计算机,其实都是在和输入输出设备打交道。个人电脑的鼠标键盘是输入设备,显示器是输出设备。我们用的智能手机,触摸屏既是输入设备,又是输出设备。而跑在各种云上的服务器,而是通过网络来进行输入和输出。这个时候,网卡既是输入设备也是输出设备。

任何一台计算机的任何一个部件都可以归到运算器、控制器、存储器、输入设备和输出设备中,而所有的现代计算机也都是基于这个基础架构来设计开发的。

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

在这里插入图片描述

知识地图

在这里插入图片描述
从这张图可以看出来,整个计算机组成原理,就是围绕着计算机是如何组织运作展开的

总结

可以说,冯-诺依曼体系结构确立了我们现在每天使用的计算机硬件的基础架构。因此,学习计算机的组成原理,其实就是学习和拆解冯-诺依曼体系结构。

具体来说,学习组成原理,其实就是学习控制器、运算器的工作原理,也就是CPU是怎么工作的,为何这样设计;学习内存的工作原理,从最基本的电路,到上层抽象给到CPU乃至应用程序的接口是怎么样的;学习CPU是怎么和输入设备、输出设备打交道的

学习组成原理,就是理解从控制器、运算器、存储器、输入输出设备,从电路这样硬件,到最终开放给软件的接口,是怎样运作的,为什么要设计成这样,以及在软件开发层面怎么尽可能的用好它

冯-诺依曼体系结构:

  • CPU,即中央处理器,是一台计算机的运算核心和控制核心。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU由运算器、控制器、寄存器、高速缓存及实现它们之间联系的数据、控制及状态的总线构成
  • 存储器,分为外存和内存, 用于存储数据(使用二进制方式存储)
  • 输入设备,用户给计算机发号施令的设备
  • 输出设备,计算机个用户汇报结果的设备

在这里插入图片描述

问题

问题:图灵机和冯-诺依曼机是两种不同的机器吗?

不是,它们只是描述的侧重点不同而已。图灵机侧重与软件方面,冯-诺依曼机侧重于计算抽象

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值