冯诺依曼体系结构

目录

冯诺依曼体系结构简介:

哈佛结构

冯诺依曼结构与哈佛结构两者区别


冯诺依曼体系结构简介:

        冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。

        现代计算机发展所遵循的基本结构形式始终是冯·诺依曼机结构。这种结构特点是“程序存储,共享数据,顺序执行”,需要CPU从存储器取出指令和数据进行相应的计算。

主要特点有:

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

局限性 :

CPU 与共享存储器间的信息交换的速度成为影响系统性能的主要因素,而信息交换速度的提高又受制于存储元件的速度、存储器的性能和结构等诸多条件。 

是如何通过内部存储器安放存储程序,解决了当时计算机存储容量太小,运算速度过慢的问题:

        输入设备、输出设备与CPU直接交互,因为这些外部设备的传输速度相较于CPU太慢了,根据木桶原理,严重影响了整个体系的效率,所以就不让输入输出设备与CPU直接交互了,而是在它们中间加入了存储器(内存),内存的效率要大于输入输出设备,但是有小于CPU,就能够在整个体系中起到一个缓冲的作用

在这个体系中需要强调的是:

  • 这里的存储器指的是内存
  • 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
  • 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
  • 一句话,所有设备都只能直接和内存打交道。

内存提高冯•诺依曼体系结构效率的方法

在这里大多数人有一个疑惑就是,先将输入设备的数据交给内存,再由内存将数据交给CPU,这个过程真的比CPU直接从输入设备获取数据更快吗?

内存具有数据存储的能力。虽然内存的大小只有4G/8G,但是既然内存有大小,那么它就有预装数据的能力,而这就是提高该体系结构效率的秘诀。

这里不得不说到的就是局部性原理:根据统计学原理,当一个数据正在被访问时,那么下一次有很大可能会访问其周围的数据。所以当CPU需要获取某一行数据时,内存可以将该行数据之后的数据一同加载进来,而CPU处理数据和内存加载数据是可以同时进行的,这样下次CPU就可以直接从内存当中获取数据。

输出数据的时候也一样,CPU处理完数据后直接将数据放到内存当中,当输出设备需要时再在内存当中获取即可,这也就有了我们平常所说的缓冲区的概念。例如,缓冲区满了才将数据打印到屏幕上,使用fflush函数将缓冲区当中的数据直接输出之类的,都是将内存当中的数据直接拿到输出设备当中进行显示输出。

哈佛结构

        哈佛结构的计算机分为三大部件:(1)CPU;(2)程序存储器;(3)数据存储器。它的特点是将程序指令和数据分开存储,由于数据存储器与程序存储器采用不同的总线,因而较大的提高了存储器的带宽,使之数字信号处理性能更加优越。 
        哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度。
        为避免将程序和指令共同存储在存储器中,并共用同一条总线,使得 CPU 和内存的信息流访问存取成为系统的瓶颈,人们设计了哈佛结构,原则是将程序和指令分别存储在不同的存储器中,分别访问。如此设计克服了数据流传输瓶颈,提高了运算速度,但结构复杂,对外围设备的连接与处理要求高,不适合外围存储器的扩展, 实现成本高,所以哈佛结构未能得到大范围的应用。但是作为冯式存储程序的改良手段,哈佛结构在CPU 内的高速缓存 Cache中得到了应用。通过设置指令缓存和数据缓存,指令和数据分开读取,提高了数据交换速度,极大克服了计算机的数据瓶颈。通过增加处理器数量,中央处理单元从最初的单核向双核、四核的方向发展,在冯氏计算机的简单结构下,增加处理器数量,也极大提高了计算机的运算性能。存储程序的方式使得计算机擅长数值处理而限制了其在非数值处理方面的发展。  

哈佛结构特点:

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

改进的哈佛结构,其结构特点为:

  • 以便实现并行处理。
  • 具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输。

冯诺依曼结构与哈佛结构两者区别

1、存储器结构不同

  • 冯诺依曼结构:冯诺依曼结构是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
  • 哈佛结构:哈佛结构使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存。

2、总线不同

  • 冯诺依曼结构:冯诺依曼结构没有总线,CPU与存储器直接关联。
  • 哈佛结构:哈佛结构使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。

3、执行效率不同

  • 冯诺依曼结构:冯诺依曼结构其程序指令和数据指令执行时不可以预先读取下一条指令,需要依次读取,执行效率较低。
  • 哈佛结构:哈佛结构其程序指令和数据指令执行时可以预先读取下一条指令,具有较高的执行效率。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值