哈佛结构是否比冯诺依曼结构要好?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哈佛结构是否比冯诺依曼结构要好?相关的知识,希望对你有一定的参考价值。
未来是不是都是哈佛结构?冯诺依曼结构是不是要被淘汰?
哈佛结构和冯诺依曼结构各有好处,相对于冯诺依曼结构,哈佛结构更可靠,更加适合于那些程序固化、任务相对简单的控制系统,哈佛结构的微处理器也相对更高效。
不过在通用计算机系统中,应用软件的多样性使得计算机要不断地变化所执行的代码的内容,并且频繁地对数据与代码占有的存储器进行重新分配,这种情况下,冯诺依曼结构占有绝对优势,因为统一编址可以最大限度地利用资源。
而哈佛结构的计算机若应用于这种情形下则会对存储器资源产生理论上最大可达50%的浪费,这显然是不合理的。
参考技术A 哈佛结构和冯诺依曼结构各有好处,相对于冯·诺依曼结构,哈佛结构更可靠,更加适合于那些程序固化、任务相对简单的控制系统,哈佛结构的微处理器也相对更高效。不过在通用计算机系统中,应用软件的多样性使得计算机要不断地变化所执行的代码的内容,并且频繁地对数据与代码占有的存储器进行重新分配,这种情况下,冯·诺依曼结构占有绝对优势,因为统一编址可以最大限度地利用资源,而哈佛结构的计算机若应用于这种情形下则会对存储器资源产生理论上最大可达50%的浪费,这显然是不合理的。哈佛结构是一种将程序指令储存和数据储存分开的存储器结构。中央处理器首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储存器中读取数据,并进行下一步的操作(通常是执行)。程序指令储存和数据储存分开,数据和指令的储存可以同时进行,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度。哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和储存的,执行时可以预先读取下一条指令。
冯诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的电脑设计概念结构。本词描述的是一种实作通用图灵机的计算装置,以及一种相对于平行计算的序列式结构参考模型(referential model)。冯诺依曼结构隐约指导了将储存装置与中央处理器分开的概念,因此依本结构设计出的计算机又称储存程式型电脑。
与冯.诺曼结构处理器比较,哈佛结构处理器有两个明显的特点:
1、使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;
2、使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。 参考技术B 各有优势,哈佛结构更先进 参考技术C 一
冯·诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。人们把冯诺依曼的这个理论称为冯诺依曼体系结构。从ENIAC到当前最先进的计算机都采用的是冯诺依曼体系结构。所以冯诺依曼是当之无愧的数字计算机之父。
根据冯诺依曼体系结构构成的计算机,必须具有如下功能:把需要的程序和数据送至计算机中;必须具有长期记忆程序、数据、中间结果及最终运算结果的能力;能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力;能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作;能够按照要求将处理结果输出给用户。
二
哈佛结构是为了高速数据处理而采用的,因为可以同时读取指令和数据(分开存储的)。大大提高了数据吞吐率,缺点是结构复杂。通用微机指令和数据是混合存储的,结构上简单,成本低。假设是哈佛结构:你就得在电脑安装两块硬盘,一块装程序,一块装数据,内存装两根,一根储存指令,一根存储数据„„
是什么结构要看总线结构的。51单片机虽然数据指令存储区是分开的,但总线是分时复用得,所以顶多算改进型的哈佛结构。ARM9虽然是哈佛结构,但是之前的版本也还是冯·诺依曼结构。早期的X86能迅速占有市场,一条很重要的原因,正是靠了冯·诺依曼这种实现简单,成本低的总线结构。现在的处理器虽然外部总线上看是诺依曼结构的,但是由于内部CACHE的存在,因此实际上内部来看已经算是改进型哈佛结构的了。至于优缺点,哈佛结构就是复杂,对外围设备的连接与处理要求高,十分不适合外围存储器的扩展。所以早期通用CPU难以采用这种结构。而单片机,由于内部集成了所需的存储器,所以采用哈佛结构也未尝不可。现在的处理器,依托CACHE的存在,已经很好的将二者统一起来了。
我个人觉得萝卜青菜各有所爱,至少未来一段时间内这二者共存的可能性更大,各有优缺点,所以非要比个好坏的话.....不太好说吧
重新认识哈佛结构和冯诺依曼结构
http://www.cnblogs.com/amanlikethis/p/3344558.html
哈佛结构和冯诺依曼结构都是针对于处理器来说的,比如说ARM9、Cortex A8是哈佛结构的,和集成在芯片内部的其他外设是没有关系的。
哈佛结构和冯诺依曼结构的主要区别就是处理器能不能实现取指和取数据的并发进行。
经典的哈佛结构:
程序存储器和数据存储器是各自独立的存储器。处理器应该有两套总线,一套是程序存储器的数据和地址总线,一套是数据存储器的数据和地址总线。取指和取数据能并发进行。
冯诺依曼结构:
没有程序存储空间和数据存储空间之分。处理器只有一套总线,取指和取数据是不能同时进行的。
改进型哈佛结构:
程序存储器和数据存储器是各自独立的存储器。处理器只有一套总线,分时访问程序存储器和数据存储器,但是在处理器中有icache和dcache将程序和数据分开(冯诺依曼结构中没有dcache和icache),所以处理器仍然可以并步执行取指和取数据。从这点看处理器仍然属于哈佛结构。从ARM9开始以后所有的ARM处理器内核都是改进型的哈佛结构。
在ARM中,程序是放在程序存储器Flash中的,数据存放在RAM中的。程序的运行地方有两种选择,一种是直接在Nor flash中运行,另外一种是在RAM中运行以提高运行速度。即使程序在RAM中运行,和数据存在同一介质中,但是在处理器中仍然可以通过icache和dcache来分开程序和数据。
以上是关于哈佛结构是否比冯诺依曼结构要好?的主要内容,如果未能解决你的问题,请参考以下文章