冯诺依曼结构和哈佛结构的区别(转)

转载 2011年01月22日 20:45:00

冯诺依曼架构: 把代码当作一种特殊的数据 来操作;指令总线和数据总线及其存储区域是统一的;

哈佛结构:指令总线和数据总线及其存储区域是分开的,独立的;

 

 

关于这个问题,有人说51地址线复用,就是冯诺依曼结构。
  
很多入门的书上基本上都说:由运算器、控制器、存储器、输入设备、输出设备组成的系统
都叫冯氏结构。
也有的说:“程序存储器的数据线地址线”与“数据存储器的数据线地址线”共用的话,就
是冯氏结构,所以51是该结构。(我认为说得太绝对了)
  
我认为冯氏结构与哈佛结构的区别应该在存储器的空间分别上,哈佛结构的数据区和代码区是分开的,它们即使地址相同,但空间也是不同的,主要表现在数据不能够当作代码来运行。
  
口线复用,就将它认为成冯氏结构,我认为这样不足取,应该是按照空间是否完全重合来辨
别。比如PC机的代码空间和数据空间是同一空间,所以是冯氏结构;51由于IO口不够,但代
码空间和数据空间是分开的,所以还是哈佛结构。
  
  
另外,还有的把CISC RISC 和 地址是否复用,是哪种结构 这3这都混到一起。我认为这三者都没有必然的关系。只不过 RISC因为精简了指令集,没有了执行复杂功能的指令,为了提高性能,常采用哈佛结构,并且不复用地址线。
  
补充:有本书:嵌入式微处理器系统设计实例,英文版 embedded microprocessor systems:real world design third edition 上有这样一个提法 :   大多数采用哈佛结构的微处理器实际上使用的是一种经过改进的哈佛结构体系,在改进结构下,虽然代码和数据还是分开的,但该体系支持从代码区载入有限的数据,这但允许数据表和其他信和与代码一起被编译,并可在运行时使用这些数据。   
  
摘抄一段:
  
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度。  
  
       哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。目前使用哈佛结构的中央处理器和微控制器有很多,除了上面提到的Microchip公司的PIC系列芯片,还有摩托罗拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和安谋公司的ARM9、ARM10和ARM11,51单片机也属于哈佛结构  
  
       冯·诺伊曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。
  
       目前使用冯·诺伊曼结构的中央处理器和微控制器有很多。除了上面提到的英特尔公司的8086,英特尔公司的其他中央处理器、安谋公司的ARM7、MIPS公司的MIPS处理器也采用了冯·诺伊曼结构。
  
在DSP算法中,最大量的工作之一是与存储器交换信息,这其中包括作为输入信号的采样数据、滤波器系数和程序指令。冯?诺依曼结构中,只有一个存储器,通过一条总线来传送数据。乘两个数至少需要3个指令周期,即通过总线将这3个数从存储器中送到CPU。所以这种结构在面对高速、实时处理时,不可避免地造成总线拥挤。为此,哈佛大学提出了与冯?诺依曼结构完全不同的另一种计算机结构,人们习惯称之为哈佛结构。它根据数据和数据指令将存储器和总线分开。因此,总线操作是独立的,能同时取指令和数据,提高了速度。目前DSP内部一般采用的是哈佛结构,它在片内至少有4套总线:程序的数据总线,程序的地址总线,数据的数据总线和数据的地址总线。这种分离的程序总线和数据总线,可允许同时获取指令字(来自程序存储器)和操作数(来自数据存储器),而互不干扰。这意味着在一个机器周期内可以同时准备好指令和操作数。超级哈佛结构(super Harvard architecture,缩写为SHARC)如图(c)所示,它在哈佛结构上增加了指令cache(缓存)和专用的I/O控制器。  
  
评论:哈佛结构和冯.诺依曼结构都是一种存储器结构。哈佛结构是将指令存储器和数据存储器分开的一种存储器结构;而冯.诺依曼结构将指令存储器和数据存储器合在一起的存储器结构。

相关文章推荐

哈佛结构和冯诺依曼结构区别。

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储 器中读取数据,并进行下一步的操作(通常是执行)。程序...

[技术PK台] 冯诺依曼结构 VS 哈佛结构

什么是冯诺依曼结构和哈佛结构?这个问题像路由器与交换机的区别一样有意思.......这些问题也许对大部分计算机或网络工程的"学生"到读研时才能够明白一些......... 1、冯·诺依曼结构   ...
  • galaft
  • galaft
  • 2011-09-26 15:17
  • 1459

冯诺依曼结构和哈佛结构01

冯诺依曼结构和哈佛结构 哈佛结构是,数据和代码分开存在。 冯诺依曼结构是在哈佛结构之后提出的,冯诺依曼提出“代码本身也是一种数据”,解决了哈佛结构的一个问题——总线暂用资源太多。 冯诺依曼结构是,...

冯诺依曼结构与哈佛结构

一,冯诺依曼结构        冯诺依曼结构的处理器使用同一个存储器,即程序和数据共用一个存储器,由同一个总线传输。            冯诺依曼...

冯诺依曼结构和哈佛结构

最近公司面试,被问及冯诺依曼结构和哈佛结构的区别及应用面,一时未答上来,遂简单翻阅了相关资料,总结一下,愿与诸君分享。 在解释冯诺依曼结构和哈佛结构之前简单说明一下指令和数据的概念。 最早的计算机...

1.4.统一编址&独立编址/哈佛结构&冯诺依曼结构

什么是IO?什么是内存? * 内存是程序的运行场所,内存和CPU之间通过总线连接,CPU通过一定的地址来访问具体的内存单元。 * IO(input and output)是输入输出接口,是CPU和...

冯诺依曼结构和哈佛结构

1:哈佛结构是,数据和代码分开存在 2:冯诺依曼结构是在哈佛结构之后提出的,冯诺依曼提出“代码本身也是一种数据”,解决了哈佛结构的一个问题——总线暂用资源太多。 冯诺依曼结构是,数据和代码放在一起...

冯诺依曼结构和哈佛结构02

对ARM9哈佛结构的认识   书本上都说ARM是哈佛结构,但是我总感觉好像看不出来。后来针对S3C2440的ARM9核进行分析,我有了自己的见解。   我的结论是“ARM9被称为是哈佛结构是从它拥...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)