冯诺依曼体系结构

Linux系列


文章目录


前言

冯诺依曼体系结构由美籍匈牙利数学家冯·诺依曼于1945年提出,其核心思想是"存储程序和程序控制"。数学家 冯·诺依曼提出了计算机制造的三个基本原则:采用二进制、程序存储、顺序执行 ,以及计算机的五个部分:运算器、控制器、存储器、输入设备、输出设备,这套理论被称为冯·诺依曼体系结构,根据这一原理制造的计算机被称为冯·诺依曼体系结构计算机。


一、冯诺依曼体系结构的三个原则

1、采用二进制形式表示数据和指令

计算机内部的所有信息,包括数据和指令,都以二进制的形式进行存储和处理。这样可以方便计算机进行逻辑运算和物理实现。

2、存储程序

将程序和数据存储在同一个存储器中,程序由一系列指令组成,这些指令和数据一样可以被读取和执行。

3、程序控制

计算机按照程序中指令的顺序依次执行,由控制器负责指挥和控制整个执行过程,保证程序的正确运行。

二、冯诺依曼体系结构的五大部分

在冯诺依曼体系结构中,运算器、控制器、存储器、输入设备、输出设备,这五个部分通过总线连接在一起,形成了冯诺依曼体系结构的核心。

了解一下作用即可
1、输入设备

冯诺依曼体系结构中输入设备的主要功能通过,数据采集、格式转换等形式,将外部信息转换为计算机能够识别和处理的电信号或数字信号,其根本目的就是将数据、程序送入计算机。目前,常用的输入设备有键盘、鼠标、触摸屏、扫描仪、数码相机等。

2、存储器

存储器是用来存放程序和数据的部件,它是一个记忆装置,也是计算机能够实现"存储程序控制"的基础。程序是计算机操作的步骤,它由一条一条的指令组成,每条指令都是计算机可以执行的基本操作,数据则是计算机操作的对象。
冯诺依曼体系中存储器,我们可以将他理解为内存,他与外存的最本质的区别是他可以直接于CPU进行数据的传输,在计算机中任何程序想要运行,必须先加载进内存中,才能被CPU调度、执行。

3、运算器

冯诺依曼体系中运算器是对信息进行运算和处理的部件。主要功能是进行算术运算和逻辑运算:

  • 数据运算:在进行数据处理时,运算器可以对两个或多个数值进行相加、相减等操作,以得到计算结果。
  • 逻辑运算:通过逻辑运算可以判断两个数据是否相等,或者根据某些条件的组合来确定程序的执行路径。

对数据处理也在运算器的工作内容里。

4、控制器

冯诺依曼体系结构中,控制器是计算机的指挥中心,主要有以下功能:

  • 指令控制:从存储器中按顺序读取指令,对指令进行译码,分析指令的操作码和地址码,确定指令要执行的操作以及操作数的地址,然后根据译码结果发出相应的控制信号,指挥计算机的各个部件协同工作,完成指令规定的操作。

  • 操作控制:根据指令的要求,向运算器、存储器、输入输出设备等部件发出控制信号,控制这些部件的工作节奏和操作顺序,使它们能够按照正确的步骤完成相应的操作。例如,在进行加法运算时,控制器会控制运算器从存储器中读取两个操作数,将它们送入运算器进行加法运算,最后将结果写回存储器。

  • 时间控制:为计算机的各个操作提供时间基准,使计算机的各个部件能够在精确的时间内完成相应的操作。控制器通过时钟信号来实现时间控制,时钟信号周期性地发出脉冲,每个脉冲对应一个基本的时间单位,控制器根据时钟信号的节奏来安排指令的执行顺序和各个部件的操作时间。

  • 数据流向控制:负责控制数据在计算机各个部件之间的流动方向和路径。根据指令的执行过程,控制器决定数据从哪里读取,经过哪些部件进行处理,以及最终存储到哪里。例如,在执行输入操作时,控制器会控制数据从输入设备流向存储器;在执行计算操作时,会控制数据在存储器、运算器之间流动。

通俗俗来讲,冯诺依曼体系结构中控制器的功能就是像一个"总指挥",协调计算机各部分有序工作。

首先,它要"读指令",就像一个人读剧本一样,从计算机的"记忆库"(存储器)中把要做什么的指示(指令)一条一条读出来。然后,它得"懂指令",明白这些指示具体是什么意思,是要做加法、打印文字还是其他操作。

接着,控制器要"发命令",根据指令的要求,告诉计算机的各个"小助手"(运算器、存储器、输入输出设备等)该做什么。比如让运算器去做个数学题,让存储器存个东西或者取个东西,让打印机打印点内容等。

而且,控制器还得把握"时间节奏",就像乐队指挥打节拍一样,让每个"小助手"在合适的时间做合适的事,保证大家的工作不会乱套,数据能按照正确的顺序在各个部件之间传来传去,让计算机有条不紊地完成各种任务。

5、输出设备

输出设备是将计算机运算结果的二进制信息转换成人类或其他设备能接收和识别的形式的设备,输出信息的形式有字符、文字、图形、图像、声音及视频等。目前,常用的输出设备有显示器、打印机、绘图仪等。 通常,人们把运算器和控制器统称为中央处理机(CPU),而把 CPU 和内部器一起称为 主机。主机内的存储器称为内部存储器或简称内存,位于主机之外的存储器(如硬磁盘、软 磁盘、光盘等)称为外部存储器或简称外存。外存和输入、输出设备一起又统称为外部设备或简称外设。

在冯诺依曼体系中我们常说的中央处理器(CPU),就是运算器、控制器的组合,而对于这些独立的硬件设备,他们是通过"总线"链接起来,从而相互配合的工作,总线分为:1、系统总线 2、I/O总线

这里系统总线就是中央处理器调度、协调其他设备工作的方式,而I/O总线是用来完成数据的传输工作的(输入、输出等)。

三、工作过程

上面我们说过,对于一些需要处理的数据,我们必须先从输入设备进入,存储器中,然后经中央处理器处理后,再输回存储器,再有存储器交给输出设备,输出设备完成输出,这就是冯诺依曼体系的工作流程。

那么,在这一流程中我们为什么不直接把数据直接交给中央处理器处理,处理后直接交由输出设备输出,而是非要先将数据输入内存,再交由中央处理器呢?

要回答这个问题,我们首先要知道不同存储设备的特点,从上图我们可以看到,组成CPU的芯片容量很小,但是运行速度很快,相对于的价格也很高,而作为我们的外存设备(如:磁盘)容量都是很大的,速度也相对很慢,所以如果直接让它们于CPU进行数据交互,外部设备就会拖慢数据的传输速度,从而拖慢CPU的处理速度,而整个工作的速度就由外部设备来绝定了,这一点大家可以根据木桶原理来理解:

那么冯诺依曼体系这样的设计方式是如何,提高效率的呢,从流程图中我们可以看到,它比我们所讨论的还多了一步,效率提高在哪里了?
预加载!!在CPU处理其程序1** 的时候,输入设备将程序2需要执行的数据提前加载进存储设备,当CPU处理好程序1后就可以直接从存储设备中获取程序2的数据了,而从内存中获取数据是很快的。**这里大家可能会想,如果外存和内存都用同种芯片,效率不就提上来了,没错,但是提上来的不止是效率,还有价格!!

相关推荐
孙克旭_1 小时前
PXE_Kickstart_无人值守自动化安装系统
linux·运维·自动化
皓月盈江2 小时前
Linux电脑本机使用小皮面板集成环境开发调试WEB项目
linux·php·web开发·phpstudy·小皮面板·集成环境·www.xp.cn
深井冰水2 小时前
mac M2能安装的虚拟机和linux系统系统
linux·macos
leoufung2 小时前
内核内存锁定机制与用户空间内存锁定的交互分析
linux·kernel
菜菜why3 小时前
AutoDL租用服务器教程
服务器
IT专业服务商3 小时前
联想 SR550 服务器,配置 RAID 5教程!
运维·服务器·windows·microsoft·硬件架构
忧虑的乌龟蛋4 小时前
嵌入式Linux I2C驱动开发详解
linux·驱动开发·嵌入式·iic·i2c·读数据·写数据
ykjhr_3d4 小时前
数据可视化与数据编辑器:直观呈现数据价值
信息可视化·编辑器
I_Scholar5 小时前
OPENSSL-1.1.1的使用及注意事项
linux·ssl
Johny_Zhao5 小时前
K8S+nginx+MYSQL+TOMCAT高可用架构企业自建网站
linux·网络·mysql·nginx·网络安全·信息安全·tomcat·云计算·shell·yum源·系统运维·itsm