Reading Notes : 180212 冯诺依曼计算机

  读书《计算机组成原理》,百度百科

  现在大部分接触过计算机的人,都会知道冯诺依曼计算机,但是这个概念是怎么来的呢?本节我们就通过聊一下计算机的存储程序控制,来认识冯诺依曼

存储程序控制

  世界上第一台计算机是诞生于19462ENIAC,在研制ENIAC的同时,以美籍匈牙利数学家冯.诺依曼为首的研制小组提出了“存储程序控制”的计算机结构,并开始了存储程序控制的计算机EDVAC的研制。

  存储程序概念是冯.诺依曼等人于19466月首先提出来的,它可以简要得概括为以下几点:

  • 计算机(指硬件)应由运算器、存储器、控制器、输入设备和输出设备5大基本部件组成。
  • 计算机内部采用二进制来表示指令和数据。
  • 顺序执行程序计算机运行过程中,把要执行的程序和处理的数据首先存入主存储器(内存),计算机执行程序时,将自动地并按顺序从主存储器中取出指令一条一条地执行,这一概念称作顺序执行程序。

  冯诺依曼对计算机最大的贡献在于“存储程序控制”概念的提出和实现。时至今日,虽然计算机发展迅速,但是就其结构原理来说,目前绝大多数的计算机仍然建立在存储程序控制概念的基础上。通常把符合“存储程序控制”的计算机统称为冯诺依曼型计算机。当然,现代计算机与早期计算机相比在结构上还是有许多改进的。

  随着计算机技术的不断发展,也暴露了冯诺依曼型计算机的主要弱点:存储器访问会成为瓶颈。目前已经出现了一些突破存储程序控制的计算机,统称为非冯计算机,如数据驱动的数据流计算机、需求驱动的规约计算机和模式匹配驱动的智能计算机等。不过我们学习仍以冯诺依曼型计算机为范本。

存储器设计思想

  根据程序(指令序列)和数据的存放形式,存储器设计思想又可以分为冯诺依曼结构和哈佛结构。下面我们来认识一下。

冯诺依曼结构的背景

  电子计算机的问世,奠基人是英国科学家艾兰· 图灵(Alan Turing)和美籍匈牙利科学家冯· 诺依曼(John Von· Neumann)。图灵的贡献是建立了图灵机的理论模型,奠定了人工智能的基础。而冯· 诺依曼则是首先提出了计算机体系结构的设想。

  1946年美籍匈牙利科学家冯·诺依曼提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式存储,并确定了存储程序计算机的五大组成部分和基本工作方法。

  半个多世纪以来,计算机制造技术发生了巨大变化,但冯· 诺依曼体系结构仍然沿用至今,人们总是把冯· 诺依曼称为计算机鼻祖

冯诺依曼结构

  冯诺依曼结构也称为普林斯顿结构,是一种传统的存储器设计思想,即指令和数据是不加区分地混合存储在同一个存储器中的,共享数据总线,如下图所示。指令地址和数据地址

 

  指向同一个存储器的不同物理位置,指令和数据的宽度相同。由于指令和数据存放在同一个存储器中,因此冯诺依曼结构中不能同时取指令和取操作数。又由于存储器存取速度远远低于CPU运算速度,从而使计算机运算速度受到很大的限制,CPU与共享存储器间的信息交换成了影响高速计算和系统性能的“瓶颈”。Intel公司的80x86以及其他中央处理器都采用了冯诺依曼结构。

哈佛结构

  冯诺依曼结构在面对高速、实时处理时,不可避免地会造成总线拥挤。为此哈佛大学提出了与冯诺依曼结构完全不同的另一种存储器设计思想,习惯称之为哈佛结构。哈佛结构是指程序和数据空间独立的体系结构,目的是为了减轻程序运行时的访存瓶颈。

  哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问与两个存储器相对应的是系统的4条总线:程序和数据的数据总线地址总线。这种分离的程序总线和数据总线可允许在一个机器周期内同时获得指令字(来自程序存储器)和操作数(来自数据存储器),从而提高了执行速度,提高了数据的吞吐率。又由于程序和数据存储在两个分开的物理空间中,因此取址和执行能完全重叠。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度

 

  哈佛结构的计算机由CPU程序存储器和数据存储器组成,程序存储器和数据存储器采用不同的总线,从而提供了较大的存储器带宽,使数据的移动和交换更加方便,尤其提供了较高的数字信号处理性能。

  哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。大多数单片机和数字信号处理系统都使用哈佛结构。

冯结构和哈佛结构对比

  哈佛结构与·诺依曼结构处理器相比,处理器有两个明显的特点:使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。改进的哈佛结构,其结构特点为:

  使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理;具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输;两条总线由程序存储器和数据存储器分时共用。

总结

  许多现代微型计算机中的高速缓冲存储器(Cache)采用哈佛结构,将Cache分为指令Cache和数据Cache两个部分,而主存储器采用冯诺依曼结构,只有一个,由指令和数据合用。如此将冯诺依曼结构和哈佛结构结合起来使用,不仅可以提高主存储器的利用率,而且可以提高程序执行的效率,缩短指令执行的时钟周期。

原文地址:https://www.cnblogs.com/lin-jing/p/8440373.html