普林斯顿结构 哈佛结构 比较

 


 普林斯顿结构  -- 通用计算机 ARM7                         -- 冯 诺依曼结构
 哈佛结构          -- 单片机  ARM9 ARM10 ARM11 算法


 普林斯顿结构: 指令、数据混合存储,结构简单,成本低。缓存

 哈佛结构    : 指令、数据分开存储,高速数据处理, 可同时读指令、读数据,大大提升了数据吞吐量, 缺点是结构复杂。ip

   指令、数据能够有不一样的宽度资源

 


    哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后获得数据地址,再到相应的数据存储器中读取数据,并进行下一步的操做(一般是执行)。程序指令存储和数据存储分开,可使指令和数据有不一样的数据宽度,如Microchip公司的 PIC16芯片的程序指令是14位宽度,而数据是8位宽度。
    哈佛结构的微处理器一般具备较高的执行效率。其程序指令和数据指令分开组织和存储的,执行时能够预先读取下一条指令。目前使用哈佛结构的中央处理器和微控制器有不少,除了上面提到的Microchip公司的PIC系列芯片,还有摩托罗拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的 AVR系列和安谋公司的ARM九、ARM10和ARM11,51单片机也属于哈佛结构
    冯·诺伊曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一块儿的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不一样物理位置,所以程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。数学

    目前使用冯·诺伊曼结构的中央处理器和微控制器有不少。除了上面提到的英特尔公司的8086,英特尔公司的其余中央处理器、安谋公司的ARM七、MIPS公司的MIPS处理器也采用了冯·诺伊曼结构。it

    在 DSP算法中,最大量的工做之一是与存储器交换信息,这其中包括做为输入信号的采样数据、滤波器系数和程序指令。例如,若是将保存在存储器中的2个数相乘,就须要从存储器中取3个二进制数,即2个要乘的数和1个描述如何去作的程序指令。图〔a)显示了一个传统的微处理器是如何作这项工做的。这被称为冯? 诺依曼结构,是以一位数学家的名字命名的。冯.诺依曼结构中,只有一个存储器,经过一条总线来传送数据。乘两个数至少须要3个指令周期,即经过总线将这3 个数从存储器中送到CPU。因此这种结构在面对高速、实时处理时,不可避免地形成总线拥挤。为此,哈佛大学提出了与冯?诺依曼结构彻底不一样的另外一种计算机结构,人们习惯称之为哈佛结构,如图(b)所示。它根据数据和数据指令将存储器和总线分开。所以,总线操做是独立的,能同时取指令和数据,提升了速度。目前DSP内部通常采用的是哈佛结构,它在片内至少有4套总线:程序的数据总线,程序的地址总线,数据的数据总线和数据的地址总线。这种分离的程序总线和数据总线,可容许同时获取指令字(来自程序存储器)和操做数(来自数据存储器),而互不干扰。这意味着在一个机器周期内能够同时准备好指令和操做数。有的 DSP芯片内部还包含有其余总线,如DMA总线等,可实现单周期内完成更多的工做。这种多总线结构就好像在DSP内部架起了四通八达的高速公路,保障运算单元及时地取到须要的数据,提升运算速度。所以,对DSP来讲,内部总线是个资源,总线越多,能够完成的功能就越复杂。超级哈佛结构(super Harvard architecture,它在哈佛结构上增长了指令cache(缓存)和专用的I/O控制器。效率

    评论:哈佛结构和冯.诺依曼结构都是一种存储器结构。哈佛结构是将指令存储器和数据存储器分开的一种存储器结构;而冯.诺依曼结构将指令存储器和数据存储器合在一块儿的存储器结构。二进制