【Linux】冯诺依曼体系结构
冯诺依曼体系结构
- 一、计算机结构体系来源
- 二、冯诺依曼体系结构
- 三、冯诺依曼体系结构中的数据流动
一、计算机结构体系来源
研制电子计算机的想法产生于第二次世界大战期间,主要用来进行弹道计算,在"时间就是胜利"的战争年代,迫切需要一台能够快速计算出弹道的机器。在这样的形势背景下,世界上第一台电子计算机ENIAC于1946 年2月14 日被研制出来。但由于 ENIAC 的研制主要是出于军事上的需要,其存在两大缺点:一是没有真正的存储器;二是控制不是自动进行的,每次都需要以人工布线的方式进行,耗时长,故障率高。其运算速度受到了人工数据的输入速度的限制,后期冯.诺依曼对其进行了改进,提出了基于存储程序的概念:
将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
当采用程序存储概念以后的计算机,其运算速度得到了明显提升,冯·诺依曼体系结构也渐渐从计算机的发展中脱颖而出,成为了主流的计算机体系结构。
二、冯诺依曼体系结构
冯诺依曼体系结构由五大设备组成,分别是: 输入设备, 输出设备,运算器, 控制器和存储器,它们之间的关系如下:
- 输入设备是负责将数据和程序输入到计算机的设备,将信息转换为机器能识别的形式,即二进制数据,是用户和计算机系统之信息交换的主要装置。常用的输入设备有键盘、鼠标等。
- 输出设备负责将计算机处理后的结果输出计算机,主要用于数据的输出,是人与计算机交互的一种部件。通过输出设备,可以将各种计算结果数据或信息通过多种形式表示出来如数字、字符、图像、声音、视频等形式。常用的输出设备有显示器、打印机等。
- 运算器是运算逻辑单元,主要负责执行计算机中各种算木运算和逻辑运算操作。
- 控制器从存储器设备读取和解析相关指令,比如加减乘除运算指令,然后指挥程序运行。
- 存储器是计算机的记忆和存储部件,用来存放程序、数据等信息。计算机中的全部信息包括输入的原始数据、程序软件、经计算机初步加工后的中间运行结果和最终处理结果都有储在存储器中,并在控制器的控制下在指定的位置取出或存入信息。
存储器分为内存储器和外存储器两类。内存储器简称内存,存取速度快、容量小、价格高主要用来暂存CPU中的运算数据。这里冯诺依曼中的存储器是指内存储器。
其中这里的存储器相当重要,在早期没有存储器时,由于计算机CPU处理速度很快,但是人们的输入效率太低,造成了计算机的工作效率低下,有了内存的存在,我们可以对数据进行预加载,CPU 以后在进行数据计算的时候,就不需要访问外设了,直接从内存中读取就可以了。从而大大提高了计算机的工作效率
注意事项:
- 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
- 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
- 一句话,所有设备都只能直接和内存打交道。
三、冯诺依曼体系结构中的数据流动
这里我们以QQ为例,简单的了解一下在冯诺依曼体系结构下,软件的数据是怎么流动的。
首先我们打开对话窗,用输入设备键盘进行输入“你好”,输入之后,我们的数据便被加载进了内存,等待CPU的处理,然后CPU从内存中读取待处理的数据,CPU对我们输入的数据进行处理加密后,返回给内存,内存再通过特定的刷新机制输出到输出设备,这里传输到输出设备是两个动作,第一是把你输入的消息刷新显示在你自己的显示器上,第二是把数据通过网卡发送到网络里,经过网络的处理,另一台计算机也从网卡里面拿到数据(这说明网卡即是输入设备又是输出设备),但是拿到的数据暂时还无法使用,需要先加载到内存,然后由,CPU读取数据进行解密处理,解密处理后返回给内存,然后内存将数据传输给输出设备显示器,这样两台电脑就完成了QQ的聊天通讯了。