早期,DIY一台计算机,要先有三大件html
计算机最重要的核心配件,中央处理器(Central Processing Unit)。git
计算机的全部“计算”都是由CPU来进行的。编程
你撰写的程序、打开的浏览器、运行的游戏,都要加载到内存里才能运行。浏览器
程序读取的数据、计算获得的结果,也都要放在内存里。内存越大,能加载的东西天然也就越多。服务器
内存一般直接能够插在主板上,存放在内存里的程序和数据,须要被CPU读取,CPU计算完以后,还要把数据写回到内存。然而CPU不能直接插到内存上,反之亦然。因而,就带来了最后一个大件——主板(Motherboard)。网络
主板是一个有着各类各样,有时候多达数十乃至上百个插槽的配件。架构
咱们的CPU要插在主板上,内存也要插在主板上。框架
主板的芯片组(Chipset)和总线(Bus)解决了CPU和内存之间如何通讯的问题。编程语言
有了三大件,只要配上电源供电,计算机差很少就能够跑起来了。学习
可是如今还缺乏各种输入(Input)/输出(Output)设备,也就是咱们常说的I/O设备。
若是你用的是本身的我的电脑,那显示器确定必不可少,只有有了显示器咱们才能看到计算机输出的各类图像、文字,这也就是所谓的输出设备。
一样的,鼠标和键盘也都是必不可少的配件。这样我才能输入文本,写下这篇文章。它们也就是所谓的输入设备。
最后,你本身配的我的计算机,还要配上一个硬盘。这样各类数据才能持久地保存下来。
绝大部分人都会给本身的机器装上一个机箱,配上风扇,解决灰尘和散热的问题。
不过机箱和风扇,算不上是计算机的必备硬件,咱们拿个纸板或者外面放个电风扇,也同样能用。
显示器、鼠标、键盘和硬盘这些东西并非一台计算机必须的部分。
其实只须要有I/O设备,能让咱们从计算机里输入和输出信息就能够了。
不少网吧的计算机就没有硬盘,而是直接经过局域网,读写远程网络硬盘里面的数据。
各种云服务器,只要让计算机能经过网络,SSH远程登录访问就行了,所以也不必配显示器、鼠标、键盘这些东西。
这样不只可以节约成本,还更方便维护。
还有一个很特殊的设备,就是显卡(Graphics Card)。
如今,使用图形界面操做系统的计算机,不管是Windows、Mac OS仍是Linux,显卡都是必不可少的。
有人可能要说了,我装机的时候没有买显卡,计算机同样能够正常跑起来啊!那是由于,如今的主板都带了内置的显卡。
若是你用计算机玩游戏,作图形渲染或者跑深度学习应用,你多半就须要买一张单独的显卡,插在主板上。
显卡之因此特殊,是由于显卡里有除了CPU以外的另外一个“处理器”,也就是GPU(Graphics Processing Unit,图形处理器),GPU同样能够作各类“计算”的工做。
鼠标、键盘以及硬盘都是插在主板上的。做为外部I/O设备,它们是经过主板上的南桥(SouthBridge)芯片组,来控制和CPU之间的通讯的。
“南桥”芯片的名字很直观
有了南桥,天然对应着也有“北桥”。
是的,之前的主板上一般也有“北桥”芯片,用来做为“桥”,链接CPU和内存、显卡之间的通讯。
不过,随着时间的变迁,如今的主板上的“北桥”芯片的工做,已经被移到了CPU的内部,因此你在主板上,已经看不到北桥芯片了。
刚才咱们讲了一台计算机的硬件组成,这说的是咱们平时用的我的电脑或者服务器。那咱们平时最经常使用的智能手机的组成,也是这样吗?
咱们手机里只有SD卡(Secure Digital Memory Card)相似硬盘功能的存储卡插槽,并无内存插槽、CPU插槽这些东西。
没错,由于手机尺寸的缘由,手机制造商们选择把
CPU、内存、网络通讯,乃至摄像头芯片,都封装到一个芯片,而后再嵌入到手机主板上。
这种方式叫SoC,也就是System on a Chip(系统芯片)。
看起来,我的电脑和智能手机的硬件组成方式不太同样。
但是,咱们写智能手机上的App,和写我的电脑的客户端应用彷佛没有什么差异,都是经过“高级语言”这样的编程语言撰写、编译以后,同样是把代码和数据加载到内存里来执行。
不管是我的电脑/服务器/智能手机,仍是Raspberry Pi这样的微型卡片机,都遵循着同一个“计算机”的抽象概念。
这是怎么样一个“计算机”呢?这其实就是,计算机鼻祖冯·诺依曼提出的冯·诺依曼体系结构(Von Neumann architecture),也叫存储程序计算机。
什么是存储程序计算机呢?这里面其实暗含了两个概念
什么是“不可编程”???
计算机是由各类门电路组合而成的,而后经过组装出一个固定的电路版,完成一个特定的计算程序。
一旦须要修改功能,就要从新组装电路。这样的话,计算机就是“不可编程”的,由于程序在计算机硬件层面是“写死”的。
最多见的就是老式计算器,电路板设好了加减乘除,作不了任何计算逻辑固定以外的事情。
咱们再来看“存储”计算机。
程序自己是存储在计算机的内存里,能够经过加载不一样的程序来解决不一样的问题。
有“存储程序计算机”,天然也有不能存储程序的计算机。
典型的就是早年的“Plugboard”这样的插线板式的计算机。整个计算机就是一个巨大的插线板,经过在板子上不一样的插头或者接口的位置插入线路,来实现不一样的功能。这样的计算机天然是“可编程”的,可是编写好的程序不能存储下来供下一次加载使用,不得不每次要用到和当前不一样的“程序”的时候,从新插板子,从新“编程”。
冯,基于当时在秘密开发的EDVAC写了一篇报告First Draft of a Report on the EDVAC,描述了他心目中的一台计算机应该长什么样。这篇报告在历史上有个很特殊的简称,叫First Draft。这样,现代计算机的发展就从祖师爷写的一份草案开始了。
首先是一个包含
的处理器单元(Processing Unit),用来完成各类算术和逻辑运算。
由于它可以完成各类数据的处理或者计算工做,所以也有人把这个叫做数据通路(Datapath)或者运算器。
而后是一个包含
的控制器单元(Control Unit/CU),用来控制程序的流程,一般就是不一样条件下的分支和跳转。
在如今的计算机里,上面的算术逻辑单元和这里的控制器单元,共同组成了咱们说的CPU。
接着是用来存储数据(Data)和指令(Instruction)的内存。以及更大容量的外部存储,在过去,多是磁带、磁鼓这样的设备,如今一般就是硬盘。
最后就是各类输入和输出设备,以及对应的输入和输出机制。
咱们如今不管是使用什么样的计算机,其实都是和输入输出设备在打交道。
任何一台计算机的任何一个部件均可以归到运算器、控制器、存储器、输入设备和输出设备中,而全部的现代计算机也都是基于这个基础架构来设计开发的
而全部的计算机程序,也均可以抽象为从输入设备读取输入信息,经过运算器和控制器来执行存储在存储器里的程序,最终把结果输出到输出设备中。而咱们全部撰写的不管高级仍是低级语言的程序,也都是基于这样一个抽象框架来进行运做的。
冯·诺依曼体系结构确立了咱们如今天天使用的计算机硬件的基础架构。
所以,学习计算机组成原理,其实就是学习和拆解冯·诺依曼体系结构。
具体来讲,其实就是
学习组成原理,就是在理解从控制器、运算器、存储器、输入设备以及输出设备,从电路这样的硬件,到最终开放给软件的接口,是怎么运做的,为何要设计成这样,以及在软件开发层面怎么尽量用好它。
计算机行业的两大祖师爷之一,除了冯·诺依曼机以外,还有一位就是著名的图灵(Alan Mathison Turing)。对应的,咱们如今的计算机也叫图灵机(Turing Machine)。那么图灵机和冯·诺依曼机是两种不一样的计算机么?图灵机是一种什么样的计算机抽象呢?
欢迎留言分享你的思考和疑惑,也能够把本文分享给你的朋友,一块儿学习和进步!
深刻浅出计算机组成原理
原文出处:https://www.cnblogs.com/JavaEdge/p/11324814.html