为啥单片机采用哈佛结构而微机采用普林斯顿结构。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥单片机采用哈佛结构而微机采用普林斯顿结构。相关的知识,希望对你有一定的参考价值。

这两种结构我知道,我想问的是为什么,这两种方式的各自的优缺点是什么?

哈佛结构是为了高速数据处理而采用的,因为可以同时读取指令和数据(分开存储的)。大大提高了数据吞吐率。缺点是结构复杂。

通用微机指令和数据是混合存储的,结构上简单,成本低。假设是哈佛结构:你就得在电脑安装两块硬盘,一块装程序,一块装数据,内存装两根,一根储存指令,一根存储数据……
参考技术A 是什么结构要看总线结构的。51单片机虽然数据指令存储区是分开的,但总线是分时复用得,所以顶多算改进型的哈佛结构,呵呵。ARM9虽然是哈佛德,但是之前的版本也还是冯诺结构。早期的X86能迅速占有市场,一条很重要的原因,正是靠了冯 诺依曼这种实现简单,成本低的总线结构。楼上的兄弟有一点说的不确切,现在的处理器虽然外部总线上看是诺依曼结构的,但是由于内部CACHE的存在,因此实际上内部来看已经算是改进型哈佛结构的了。
这个问题21ic上讨论翻了无数个帖子,没有什么定论,见仁见智。
至于优缺点,呵呵,楼上的兄弟说的就比较的明白了。哈佛结构就是复杂,对外围设备的连接与处理要求高,十分不适合外围存储器的扩展。所以早期通用CPU难以采用这种结构。而单片机,由于内部集成了所需的存储器,所以采用哈佛结构也未尝不可。现在的处理器,依托CACHE的存在,已经很好的将二者统一起来了。
参考技术B 控制!MCU-micro controller unit!突出的就是高速控制,区别就在这了,呵呵

冯诺依曼结构和哈佛结构

参考资料:
全面理解冯诺依曼结构和哈佛结构
CPU采用的是哈佛结构还是冯诺依曼结构?


0. 前言

哈佛结构和冯诺依曼结构都是针对于CPU来说的。

1. 冯诺依曼结构

冯诺伊曼结构又称为普林斯顿体系结构,是一种将程序存储器数据存储器合并在一起的处理器架构设计,使用同一个存储器,经由同一个总线传输。由于取指令和存取数据要从同一个存储空间存取,并经同一总线传输,无法重叠执行,只能step by step,因此影响了数据处理速度的提高。冯诺伊曼结构处理器具有以下特点:

  • 必须有一个存储器;

  • 必须有一个控制器;

  • 必须有一个运算器(算术运算与逻辑运算);

  • 必须有输入输出设备(人机通信)。



冯诺依曼结构中不独立区分程序和数据空间,处理器只有一套总线,即程序和数据空间共用地址和数据总线,取指令和取数据不能同时进行。

早期的微处理器大多采用冯·诺依曼结构,如:英特尔公司的8086,英特尔公司的其他中央处理器,ARM的ARM7,MIPS公司的MIPS处理器。其中,典型代表是Intel公司的X86微处理器,广泛用于桌面端(台式/笔记本/服务器/工作站等)。

2. 哈佛结构

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构数据和指令的储存可以同时进行,可以使指令和数据有不同的数据宽度,例如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度。哈佛结构处理器具有如下特点:

  • 程序存储器与数据存储器分开。
  • 提供了较大的存储器带宽,各自有自己的总线。
  • 适合于数字信号处理。



哈佛结构的出现是为了减轻程序运行时的访存瓶颈,哈佛架构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和储存的,执行时可以预先读取下一条指令。

哈佛结构中程序空间和数据空间是独立的,具有各自独立的地址线和数据总线,即处理器有两套总线,一套是程序存储器的数据和地址总线,一套是数据存储器的数据和地址总线。取址和取数据能并发进行

目前使用哈佛架构的中央处理器和微控制器有很多,有 Microchip公司的PIC系列芯片、摩托罗拉公司的MC68系列、Zilog公司的Z8系列、Atmel公司的AVR系列和ARM公司的ARM9、ARM10和ARM11,自ARM11以后,ARM公司的内核均以Cortex命名。

3. 改进的哈佛结构

改进的哈佛结构使用两个独立的存储器模块(程序存储器和数据存储器),处理器只有一套总线,分时访问程序存储器和数据存储器,但是在处理器中有指令cache和数据cache将程序和数据分开(冯诺依曼结构中没有指令cache和数据cache),所以处理器仍然可以并步执行取指令和取数据,从这点看处理器仍然属于哈佛结构。

改进型哈佛结构是在普通哈佛结构的基础上加上独立的缓冲区cache, 虽然处理器只有一套总线,但由于cache的存在,CPU直接访问的是cache而cache又分为指令cache和数据cache,这两个cache是独立的,所以可以同时访问指令和数据,也就是说能够并行运行

从ARM9开始以后所有的ARM处理器内核都是改进型的哈佛结构

4. 总结

哈佛结构和冯诺依曼结构的主要区别就是处理器能不能实现取指令和取数据的并发进行程序空间和数据空间是否是一体

  • 冯·诺依曼结构:冯·诺依曼结构中,取指令与取操作数都在同一条总线上,总线结构简单,所以成本也低,早期该结构的处理器能迅速抢占市场。但也是因为取指令与取操作数都在同一条总线上,只能通过分时复用进行,所以在高速运行时,不能达到同时取指令与取操作数,从而造成传输过程的瓶颈。
  • 哈佛结构:哈佛结构具有复杂而又强大的总线结构,其芯片内部程序空间和数据空间是分开的,可以同时取指令与取操作数,数据吞吐率高,运算速度更快。但是设计实现复杂,成本较高。
  • 改进型的哈佛结构:改进型的哈佛结构结合了两者的长处,将其融合到一起,实现了优化。

以上是关于为啥单片机采用哈佛结构而微机采用普林斯顿结构。的主要内容,如果未能解决你的问题,请参考以下文章

冯诺依曼结构和哈佛结构

请问冯·诺依曼结构和哈佛结构有啥异同?谢谢!

51单片机是哈弗式还是普林斯顿式

普林斯顿结构 VS 哈佛结构

DSP

哈佛结构是否比冯诺依曼结构要好?