外甥女问我计算机是如何组成的?

本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。

//github.com/midou-tech/articles

继上一篇外甥问我计算机问题之后,外甥女就显得格外勤奋了,竟然也对计算机感兴趣了

生活中有一类人特别让人害怕,就是突然 对某件事非常感兴趣

也不知道是真的感兴趣了,还是觉得我对他弟偏心了,哈哈

不管咋说,这姐弟俩是非常优秀的,碾压我姐弟俩一大截,是真的后浪

上次发文章之后,外甥女晚上发消息问我 计算机是如何组成的?

本篇文章就来唠唠这个问题

因为外甥女是医学类专业,对计算机了解犹如我对女孩子的了解一般生疏

所以先说点简单的问题和一些专业名词介绍

什么是计算机

说一个小故事,看下有没有相同经历

接触计算机是因为计算器的经历

就这个东西,应该没人没用过吧,让我接触了计算机

初中那会已经有函数概念了、也在解二元一次方程了,中考是允许用计算器的

中考之前老师会让我们练习计算器的使用

那时候买不起计算器,日常练习的时候都是别人的计算器使用

可那时候我偏偏分不清计算器计算机,总有那么几次把计算器说成是计算机

此时那个女同学就用一个让我非常不能理解的眼神看着我,然后冷冷的回答道 没有

我在想这女同学咋回事啊,明明在桌子上却睁眼说瞎话,难道她是真的视力障碍了

年纪亲亲摊上这事,真是替他未来的男朋友了担忧,细思极恐啊,我赶紧换一个女同学询问

当然这个计算器,还有另外一个大妙处,在我们的成长岁月中 他是一个信息载体

初中时载着给女孩的 小纸条、表白信 ;老师不让上课说话,此时计算器变成了 电话线,承载着老师不能懂的秘密

高中那会开始用点高级功能了,考试的时候 他会载着好学生的答案 驶向每一个像我一样优秀的少年

还有一个高级功能就是表白,土豪学生表白都是送贺卡、送奶茶,而我只能让这计算器 物尽所能

此时他会载着 我的一时才华和绵绵爱意,驶向那个从来不敢正视的女神

女神收到计算器的一瞬间嘴角上扬,而我的心 也随之欣喜若狂,世界此时都在微笑

言归正传哈,女孩到是没有的事,不过从此我对计算机有了概念了,产生兴趣了

计算机,俗称电脑 ,是一种高速计算的电子计算机器,可以进行数值计算逻辑计算还具有存储记忆功能

看来我冒然的把计算器称为计算机也不算太离谱,起码都具有计算功能

一些名词解释

CPU:中央处理器是计算机系统的运算控制核心模块,分为运算器控制器

下面这图是CPU的工作原理

  • 取指令:即将一条指令从主存储器中取到指令寄存器的过程
  • 指令译码阶段:取出指令后,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法
  • 执行指令阶段:执行具体指令的功能,例如sum=a+b

存储器:许多存储单元的集合,按单元号顺序排列

存储器分为主存(内存)、辅存(磁盘)和缓存

主存用于存放活动的程序和数据,其速度高、容量较小、每位价位高

外存主要用于存放当前不活跃的程序和数据,其速度慢、容量大、每位价位低

缓存主要在两个不同工作速度的部件起缓冲作用

计数器:用来指示当前指令在主存中的位置,当 一条指令被取出后,PC中的数值将根据指令字长度自动递增

内存地址:内存地址是一种用于软件及硬件等不同层级中的数据概念,用来访问电脑主存中的数据,也就是上面说的存储单元的单元号

程序:存放在磁盘文件中的可执行文件或者源代码

计算机是如何组成的

说完了什么是计算机和一些基本概念,再来说说计算机是如何组成的

为了了解计算机的组成,我是拆过笔记本的,拆完就废了,当然拆的是一个被我淘汰的本

在拆本的那个时候,只有光驱、风扇我能命名,其他的都统称为芯片和集成电路,无法对他们准确命名

要是以一名工程师的身份去拆这个电脑,那这个被拆的电脑透出的价值可能会更大一些

而在那时候,他只不过是一个被我拆过的众多机中满足我好奇心的其中一个罢了

在拆完这个本之后,很长一段时间我认为计算机就是一堆集成电路芯片组成的

但是在大多数人士看来,一台计算机由主机显示器键盘鼠标音箱等部件所组成

这种说法当然也没错,只是站在不同的角度来说

今天、站在一名专业的工程师(程序员,oh no 打工人)的角度说说计算机是如何组成的

首先计算机是由计算机硬件和计算机软件两部分组成

硬件部分包括中央处理器存储器输入输出设备

软件部门包括操作系统驱动软件编译器软件、应用软件

计算机组成
计算机组成

上图就是计算机的主要组成,这种典型的组成结构就是冯·诺依曼体系结构

当然计算机除了冯·诺依曼体系结构还有一种较为常用的叫做ARM结构(哈佛结构)

既然说到了冯·诺依曼 体系和ARM体系,龙叔就带大家聊聊这块内容

先说冯·诺依曼体系,冯·诺依曼是一位数学家,但是被称为 现代计算机之父,听着头衔就够一个大写的牛掰了

二战期间,美军试图开发全球首台计算机ENIAC,在当时已经有了最先进的电子技术,但是缺乏理论上的指导

美军没办法开发出来,这时,冯·诺依曼出现了

冯·诺依曼的出现,瞬间让计算机发展的步伐走上了一条快速道

  1. 定义了计算机的组成结构,计算机应包括运算器、存储器、控制器、输入和输出设备五大基本部件。
  2. 计算机内部应该采用二进制来表示指令和数据。
  3. 将编好的程序存储在内存中,程序存储思想

这几点构成了 冯·诺依曼 体系,该体系计算机的特点是 程序存储,共享数据,顺序执行

冯·诺依曼 体系结构的工作示意图

冯·诺依曼除了在计算机领域有杰出贡献,在数学领域、量子理论、原子弹等等领域都有杰出贡献

介绍了 冯·诺依曼 结构再来说说哈佛结构

哈佛结构
哈佛结构

冯·诺依曼结构是由五部分组成的,哈佛结构的计算机分为三大部件:

(1)CPU;(2)程序存储器;(3)数据存储器。

哈佛结构把程序数据进行了分离,分别独立为程序存储器数据存储器,程序存储器和数据存储器采用不同的总线

两个存储器采用不同的总线意味着可以同时读取两个存储器的内容,这点大大提高了程序运行时的访存效率

冯·诺依曼和哈佛结构对比

首先 冯·诺依曼 结构的特点是:

  • 单处理机结构,机器以运算器为核心
  • 采用程序存储的思想
  • 指令和数据都可以参与运算
  • 数据以二进制表示
  • 软件和硬件完全分离
  • 指令由操作码和操作数组成
  • 顺序执行

冯·诺依曼结构的缺点:

  • 指令和数据存储在同一个存储器中,形成系统对存储器的过分依赖,计算的效率受到存储设备的影响

  • 指令在存储器中按其执行顺序存放,由指令计数器PC指明要执行的指令所在的单元地址。 然后取出指令执行操作任务。所以指令的执行是串行,影响了系统执行的速度。

  • 存储器是按地址访问的线性编址,按顺序排列的地址访问,利于存储和执行的机器语言指令,适用于作数值计算。但是高级语言表示的存储器则是一组有名字的变量,按名字调用变量,不按地址访问。机器语言同高级语言在语义上存在很大的间隔, 称之为冯·诺依曼语 义间隔。

  • 冯·诺依曼体系结构计算机是为算术和逻辑运算而诞生的,目前在数值处理方面已经到达较高的速度和精度,而非数值处理应用领域发展缓慢,需要在体系结构方面有重大的突破。

哈佛结构的优点:

  • 使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存
  • 使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联

哈佛结构的缺点:

独立两个存储器导致结构复杂,一个电脑得装两个内存条和两个磁盘

各自都有优缺点,现在主流电脑都使用 冯·诺依曼结构 ,嵌入式设备基本采用的ARM体系结构

以上就是本期的全部内容了,感谢各位阅读,求点赞、求在看、求分享,一键三连就是对我创作的最大鼓励

我是龙叔,一个半吊子架构师,我们下期见