为避免将程序和指令共同存储在存储器中,并共用同一条总线,使得 CPU 和内存的信息流访问存取成为系统的瓶颈,人们设计了哈佛结构

 冯·诺依曼结构_百度百科

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

image

 

哈佛结构的计算机由CPU、程序存储器和数据存储器组成,程序存储器和数据存储器采用不同的总线,从而提供了较大的存储器带宽,使数据的移动和交换更加方便,尤其提供了较高的数字信号处理性能。
 
哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。
哈佛结构是指程序和数据空间独立的体系结构,目的是为了减轻程序运行时的访存瓶颈。
例如最常见的卷积运算中,一条指令同时取两个操作数,在流水线处理时, 同时还有一个取址操作,如果程序和数据通过同一条总线访问,取址和取数必会产生冲突,而这对大运算量的循环的执行效率是很不利的。
哈佛结构能基本上解决取址和取数的冲突问题。而对另一个操作数的访问, 就只能采用Enhanced 哈佛结构了,例如像TI那样,数据区再split,并多一组总线。 或向AD 那样, 采用指令cache,指令区可存放一部分数据。

 

哈佛结构与冯·诺依曼结构处理器相比,处理器有两个明显的特点:使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。
改进的哈佛结构,其结构特点为:
使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理;具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输;两条总线由程序存储器和数据存储器分时共用。

 

 

冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。
数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器输入设备输出设备),这套理论被称为冯·诺依曼体系结构。

 

image

第二次世界大战期间,美军要求实验室为其提供计算量庞大的计算结果。于是便有了研制电子计算机的设想。面对这种需求,美国立即组建研发团队,包括许多工程师与物理学家,试图开发全球首台计算机(后世称作ENIAC机)。虽然采取了最先进的电子技术,但缺少原理上的指导。这时,冯·诺依曼出现了。他提出了一个至关重要的方面:计算机的逻辑结构。冯·诺依曼从逻辑入手,带领团队对ENIAC进行改进。他的逻辑设计具有以下特点:
(1)将电路、逻辑两种设计进行分离,给计算机建立创造最佳条件;
(2)将个人神经系统、计算机结合在一起,提出全新理念,即生物计算机
即便ENIAC机是通过当时美国乃至全球顶尖技术实现的,但它采用临时存储,将运算器确定成根本,故而缺点较多,比如存储空间有限、程序无法存储等,且运行速度较慢,具有先天不合理性。冯·诺依曼以此为前提制定以下优化方案
(1)用二进制进行运算,大大加快了计算机速度;
(2)存储程序,也就是通过计算机内部存储器保存运算程序。如此一来,程序员仅仅通过存储器写入相关运算指令,计算机便能立即执行运算操作,大大加快运算效率 [1]

 

特点

现代计算机发展所遵循的基本结构形式始终是冯·诺依曼机结构。这种结构特点是“程序存储,共享数据顺序执行”,需要 CPU 从存储器取出指令和数据进行相应的计算。 [2]主要特点有:
(1)单处理机结构,机器以运算器为中心;
(2)采用程序存储思想;
(3)指令和数据一样可以参与运算;
(4) 数据以二进制表示;
(5)将软件和硬件完全分离;
(6) 指令由操作码操作数组成;
(7)指令顺序执行 [3]

局限

CPU 与共享存储器间的信息交换的速度成为影响系统性能的主要因素,而信息交换速度的提高又受制于存储元件的速度、存储器的性能和结构等诸多条件。
传统冯·诺依曼计算机体系结构存储程序方式造成了系统对存储器的依赖,CPU 访问存储器的速度制约了系统运行的速度。集成 电路 IC 芯片的技术水平决定了存储器及其他硬件的性能。为了提高硬件的性能, 以英特尔公司为代表的芯片制造企业在集成电路生产方面做出了极大的努力,且获得了巨大的技术成果。 现在每隔 18 个 月 IC 的集成度翻一倍,性能也提升一倍,产品价格降低一半,这就是所谓的“摩尔定律”。 这个规律已经持续了40 多年,估计还将延续若干年。然而,电子产品面临的二个基本限制是客观存在的:光的速度和材料的原子特性。首先,信息传播的速度最终将取决于电子流动的速度,电子信号在元件和导线里流动会产生时间延迟,频率过高会造成信号畸变,所以元件的速度不可能无限的提高直至达到光速。第二,计算机的电子信号存储在以硅晶体材料为代表晶体管上,集成度的提高在于晶体管变小,但是晶体管不可能小于一个硅原子的体积。 随着半导体技术逐渐逼近硅工艺尺寸极限,摩尔定律原导出的规律将不再适用。
(1)指令和数据存储在同一个存储器中,形成系统对存储器的过分依赖。如果储存器件的发展受阻,系统的发展也将受阻。
(2)指令在存储器中按其执行顺序存放,由指令计数器PC指明要执行的指令所在的单元地址。 然后取出指令执行操作任务。所以指令的执行是串行。影响了系统执行的速度。
 
 
冯·诺依曼计算机:将程序指令存储器数据存储器并在一起的计算机
(3)存储器是按地址访问的线性编址,按顺序排列的地址访问,利 于存储和执行的机器语言指令,适用于作数值计算。但是高级语言表示的存储器则是一组有名字的变量,按名字调用变量,不按地址访问。机器语言同高级语言在语义上存在很大的间隔, 称之为冯·诺依曼语 义间隔。消除语义间隔成了计算机发展面临的一大难题。
(4)冯·诺依曼体系结构计算机是为算术和逻辑运算而诞生的,目前在数值处理方面已经到达较高的速度和精度,而非数值处理应用领域发展缓慢,需要在体系结构方面有重大的突破。
(5)传统的冯·诺依曼型结构属于控制驱动方式。它是执行指令代码对数值代码进行处理,只要指令明确,输入数据准确,启动程序后自动运行而且结果是预期的。一旦指令和数据有错误,机器不会主动修改指令并完善程序。而人类生活中有许多信息是模糊的,事件的发生、发展和结果是不能预期的,现代计算机的智能是无法应对如此复杂任务的。 [2]

 

 

 

 

 

 

 

 

 

posted @ 2017-02-08 12:41  papering  阅读(294)  评论(0)    收藏  举报