冯·诺依曼体系结构了解

发布时间 2023-11-18 12:13:30作者: 一只后飞的笨鸟

 

冯·诺依曼计算机体系开端

自1946年第一台计算机ENIAC诞生,人类进入计算机时代,早期计算机是由门电路通过组装装出一个固定的电路板,来执行一个特定的程序,一旦程序修改,就要重新组装电路板,所以早期的计算机程序是硬件化的。同时,早期的程序和数据是两个截然不同的概念,数据放在存储器中,而程序作为控制器的一部分,这样的计算机计算效率低、灵活性较差。后来,冯·诺依曼提出计算机“存储程序”的计算机设计理念:将计算机指令进行编码之后存储在计算机的存储器中,在需要的时候可以顺序的执行程序代码,从而控制计算机的运行

冯·诺依曼计算机体系结构原理

冯·诺依曼将计算机中的程序和数据一样看待,将程序编码为数据,和数据一同存储在存储器中,这样计算机就可以调用存储器中的程序来进行存储数据,所以无论什么程序最终都会转换为数据的形式存储在存储器中,要执行某种程序只需要从存储器中依次取出程序对应的指令进行执行即可。

冯·诺依曼结构消除了原始计算机中只能依靠硬件进行控制程序的状况,将程序编码存储在存储器中,实现了可编程计算机的功能,实现了硬件设计和程序设计的分离,从而也催生了程序员这个行业的诞生,大大促进了计算机行业的发展。

冯·诺依曼计算机体系结构

冯·诺依曼结构主要包含五大组成部分,分别是:

  1. 运算器

    运算器是用来完成算术运算和逻辑运算的一个单元,运算器是计算机完成运算处理数据的核心,这就是算术逻辑单元(ALU),ALU主要功能就是在控制信号的控制下,完成加减乘除等算术运算以及或、非、与、异或等逻辑预算以及移位、补位的运算。ALU运算处理的对象是数据,所以数据的长度和表示方法对运算器的影响很大,大多数计算机都是以16、32、64位数据作为运算器一次处理数据的长度。能够对一个数据的所有位数据进行处理的运算器称作为并行运算器;一次只能对一个数据的一个位处理的运算器成为串行运算器。

    运算器的操作对象由控制器决定,运算器的数据从内存中读取,计算之后的数据又存储在内存中,或者暂时存放在内部寄存器中,运算器对内存数据的读写是由控制器来进行的。

     

  2. 控制器

    控制器是计算机的神经中枢和控制中心,只有在控制器的控制下计算机才可以有条不紊的工作,自动执行程序。

    控制器和运算器共通组成中央处理器(CPU),CPU是一块超大规模集成电路,是计算机运算核心和控制核心,CPU的主要功能是解释计算机指令和处理数据

    控制器控制流程是从内存中读取指令,翻译指令,分析指令,然后向指令相关部件发送控制命令,控制相关部件进行指令所包含的操作。

  3. 存储器

    存储器的功能是主要存储程序和各种数据,并且能在计算机运行过程中自动存储程序或者数据的存储,存储器是具有记忆的设备,而且采用两种稳定状态的物理器件来记录存储信息,所以计算机的程序和数据都要转换为二进制代码才可以存储和操作。

    存储器分为内部存储和外部存储:

    内部存储:又称为内存或者主存,是用来存放将要执行的程序和数据的。由于程序和数据都是以二进制代码的形式存储的,他们均已字节为单位8位存储在存储器,一个字节占用一个存储单元,并且每个存储单元都有他唯一的地址好号。CPU可以直接使用指令对内部存储器进行读写两种操作:

    读:将内存中某个存储单元的内容读出,送入CPU的某个寄存器单元中

    写:在控制器的控制下,将CPU的某寄存器内容传到某个存储单元中

    注意:内存中的数据和地址码都是二进制数,但是两者是不同的,一个地址可以指向一个存储单元,地址是存储单元的位置,数据是存储单元的内容,数据可以是操作码,可以是CPU要处理的数据,也可以是数据的地址,地址码的长度由内存单元的个数确定。

    内存的存取速度会影响到计算机的运行速度,由于CPU是高速器件,但是CPU的运行速度是受限制于内存的存取速度的,所以为了解决CPU 和内存速度不匹配的问题,在CPU和内存直接设置了一种高速缓存器Cache。Cache是计算机中的一个高速小容量存储器,其中存放的是CPU最近将要执行的指令和数据,其存取速度和CPU的速度相匹配,一般静态的RAM充当Cache。

    内存按工作方式的不同又区分为:

    RAM:随机存储器,可以被CPU随机读取,一般存放CPU将要执行的程序、数据、断电丢失的数据

    ROM:只读存储器,只能被CPU读,不能轻易被CPU写,用来存放永久性的数据,比如:系统引导程序,监控程序,具有掉电非丢失性。

    外部存储:

    外部存储器主要来存放”暂时“用不着的程序和数据,可以和内存交换数据。一般是磁盘、光盘、U盘、硬盘等。

  4. 输入设备

     

  5. 输出设备

    实际上我们操作计算机都是与输入输出设备在打交道。

    鼠标键盘是输入设备、显示器是输出设备;

    手机触摸屏即时输入设备又是输出设备;

    服务器中网卡既是输入设备又是输出设备;

    所有的计算机程序都可以抽象为输入设备读取信息,通过CPU来执行存储在存储器中的程序,结果通过输出设备反馈给用户。

    image-20231118112545575

文章灵感来源:

三分钟带你了解冯.诺依曼结构 - 知乎 (zhihu.com)