1964年,随着第一台计算机ENIAC诞生,人类进入计算机时代。后来,美籍匈牙利数学家,冯.诺依曼提出了计算机“存储程序”的计算机设计理念。即将运算的指令程序和数据都存储于计算机的内部,需要的时候可以顺序地执行程序代码,从而控制计算机运行。这就是冯.诺依曼计算机体系的开端。而冯·诺依曼架构则确立了我们今天使用的计算机硬件基础架构,可谓是现代计算机的鼻祖。因为在这之前的计算机程序是这样的:
【FORTRAN程式打孔卡】
冯.诺依曼结构的灵魂
早期的计算机是由各种门电路组成的,这些门电路通过组装出一个固定的电路板,来执行一个特定的程序。一旦需要修改程序功能,就要重新组装电路板,所以早期的计算机程序是硬件化的!
然而,祖师爷的出现将最初的硬件化程序变为可编程、可存储编码,放在存储器中,随意使用。下面大体介绍一下冯.诺依曼结构的灵魂。
要知道,早期的计算机设计中,程序和数据是两个截然不同的概念。数据放在存储器中,而程序作为控制器的一部分,这样的计算机计算效率低,灵活性较差。冯.诺依曼结构中,将程序和数据一样看待,将程序编码为数据,然后与数据一同存放在存储器中。这样计算机就可以调用存储器中的程序来处理数据了。意味着,无论什么程序,最终都是会转换为数据的形式存储在存储器中,要执行相应的程序只需要从存储器中依次取出指令、执行。冯.诺依曼结构的灵魂所在正是这里:减少了硬件的连接,这种设计思想导致了硬件和软件的分离,即硬件设计和程序设计可以分开执行!!!这就催生了程序员这个职业的诞生!!!
概括的来讲,冯.诺依曼结构消除了原始计算机体系中,只能依靠硬件控制程序的状况(程序作为控制器的一部分,作为硬件存在),将程序编码存储在存储器中,实现了可编程的计算机功能,实现了硬件设计和程序设计的分离,大大促进了计算机的发展。
灵魂就是将程序从硬件实现转换为软件实现(存储程序控制原理)!!!
计算机的基本工作原理就是:存储程序控制原理!
冯.诺依曼结构的核心设计思想
核心设计思想主要体现在如下三个方面:
l 程序、数据的最终形态都是二进制编码,程序和数据都是以二进制方式存储在存储器中的,二进制编码也是计算机能够所识别和执行的编码。(可执行二进制文件:.bin文件)
l 程序、数据和指令序列,都是事先存在主(内)存储器中,以便于计算机在工作时能够高速地从存储器中提取指令并加以分析和执行。
l 确定了计算机的五个基本组成部分:运算器、控制器、存储器、输入设备、输出设备
冯诺依曼结构的五个主要组成部分
冯.诺依曼在秘密开发的 EDVAC 写了一篇报告First Draft of a Report on the EDVAC,描述了他心目中的一台计算机应该长什么样。这篇报告在历史上有个很特殊的简称,叫First Draft,翻译成中文,其实就是《第一份草案》。这样,现代计算机的发展就从祖师爷写的一份草案开始了。
First Draft里面说了一台计算机应该有哪些部分组成,我们一起来看看。
冯.诺依曼确定了”计算机结构“中的5大部件:
l 运算器
l 控制器
l 存储器
l 输入设备
l 输出设备
现在看来,运算器和控制器单元集成在CPU中实现,存储器的容量不断扩大、输入输出设备不断更新,这些部件构成了当代计算机硬件系统的基本组成。
1.运算器
首先计算机要有运算处理数据的能力,所以需要一个处理单元来完成各种算数运算和逻辑运算,这就是算术逻辑单元(Arithmetic Logic Unit,ALU)。ALU的主要功能就是在控制器的控制下,完成加、减、乘、除等算术运算以及与、或、非、异或等逻辑运算以及移位、补位等运算。
运算器与其他部分的关系:
计算机运算时,运算器的操作对象和操作种类由控制器决定。运算器操作的数据从内存中读取,处理的结果再写入内存(或者暂时存放在内部寄存器中),而且运算器对内存数据的读写是由控制器来进行的。
2.控制器
控制器又称为控制单元(Control Unit),是计算机的神经中枢和指挥中心,只有在控制器的控制下,整个计算机才能够有条不紊地工作、自动执行程序。
控制器的工作流程为:从内存中取指令、翻译指令、分析指令,然后根据指令的内存向有关部件发送控制命令,控制相关部件执行指令所包含的操作。
控制器和运算器共同组成中央处理器(Central Processing Unit),CPU是一块超大规模集成电路,是计算机运算核心和控制核心,CPU的主要功能是解释计算机指令以及处理数据。
3.存储器
存储器的主要功能是存储程序和各种数据。存储器是有记忆的设备,而且采用俩种稳定状态的物理器件来记录存储信息,所以计算机中的程序和数据都要转换为二进制代码才可以存储和操作。
存储器可以分为内部存储器(内存)和外部存储器,俩者在计算机系统中各有用处。
以购买手机为例,我们需要考虑的重要参数分别有处理器型号、运行内存、和存储空间。选择内存的时候我们都偏向于选择比较大的,例如6G,8G。而存储空间也有128G与256G,甚至512G各种选择。这里的内存就是指内部存储器,它的大小决定了我们手机在运行多个软件的时候能否做到流畅不卡顿。而存储空间指的是外部存储器,决定了我们的手机能存多少音频视频数据。
4.输入输出设备
实际上我们操作计算机都是与输入输出设备在打交道。
鼠标键盘是输入设备、显示器是输出设备;
手机触摸屏即时输入设备又是输出设备;
服务器中网卡既是输入设备又是输出设备;
所有的计算机程序都可以抽象为输入设备读取信息,通过CPU来执行存储在存储器中的程序,结果通过输出设备反馈给用户。
文献来源:
[1]全全.三分钟带你了解冯.诺依曼结构[EB/OL].https://zhuanlan.zhihu.com/p/136748306