1、冯·诺依曼结构
  冯·诺依曼结构又称作普林斯顿体系结构(Princetionarchitecture)。
  1945年,冯·诺依曼首先提出了“存储程序”的概念和二进制原理,后来,人们把利用这种概念和原理设计的电子计算机系统统称为“冯·诺依曼型结构”计算机。冯·诺依曼结构的处理器使用同一个存储器,经由同一个总线传输。
  冯·诺依曼结构处理器具有以下几个特点:
  必须有一个存储器;
  必须有一个控制器;
  必须有一个运算器,用于完成算术运算和逻辑运算;
  必须有输入和输出设备,用于进行人机通信。
  冯·诺依曼的主要贡献就是提出并实现了“存储程序”的概念。由于指令和数据都是二进制码,指令和操作数的地址又密切相关,因此,当初选择这种结构是自然的。但是,这种指令和数据共享同一总线的结构,使得信息流的传输成为限制计算机性能的瓶颈,影响了数据处理速度的提高。
  在典型情况下,完成一条指令需要3个步骤,即:取指令、指令译码和执行指令。从指令流的定时关系也可看出冯·诺依曼结构与哈佛结构处理方式的差别。举一个最简单的对存储器进行读写操作的指令,指令1至指令3均为存、取数指令,对冯·诺依曼结构处理器,由于取指令和存取数据要从同一个存储空间存取,经由同一总线传输,因而它们无法重叠执行,只有一个完成后再进行下一个。
  arm7系列的CPU有很多款,其中部分CPU没有内部cache的,比如arm7TDMI,就是纯粹的冯·诺依曼结构,其他有内部cache且数据和指令的cache分离的cpu则使用了哈弗结构。

2、哈佛结构
  哈佛结构是一种将程序指令存储和数据存储分开的存储器结构,如图1所示。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度。

图1 哈佛体系结构框图

  哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。
  目前使用哈佛结构的中央处理器和微控制器有很多,除了Microchip公司的PIC系列芯片,还有摩托罗拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和ARM公司的ARM9、ARM10和ARM11。
  哈佛结构是指程序和数据空间独立的体系结构, 目的是为了减轻程序运行时的访存瓶颈。
  例如最常见的卷积运算中, 一条指令同时取两个操作数, 在流水线处理时, 同时还有一个取指操作, 如果程序和数据通过一条总线访问, 取指和取数必会产生冲突, 而这对大运算量的循环的执行效率是很不利的。
  哈佛结构能基本上解决取指和取数的冲突问题。
  而对另一个操作数的访问, 就只能采用Enhanced哈佛结构了, 例如像TI那样,数据区再split, 并多一组总线。 或向AD那样,采用指令cache, 指令区可存放一部分数据。
  在典型情况下,完成一条指令需要3个步骤,即:取指令、指令译码和执行指令。从指令流的定时关系也可看出冯·诺依曼结构与哈佛结构处理方式的差别。举一个最简单的对存储器进行读写操作的指令,指令1至指令3均为存、取数指令,对冯·诺依曼结构处理器,由于取指令和存取数据要从同一个存储空间存取,经由同一总线传输,因而它们无法重叠执行,只有一个完成后再进行下一个。
  如果采用哈佛结构处理以上同样的3条存取数指令,由于取指令和存取数据分别经由不同的存储空间和不同的总线,使得各条指令可以重叠执行,这样,也就克服了数据流传输的瓶颈,提高了运算速度。

3、冯·诺依曼体系和哈佛总线体系的区别
  二者的区别就是程序空间和数据空间是否是一体的。冯·诺依曼结构数据空间和地址空间不分开,哈佛结构数据空间和地址空间是分开的。
  早期的微处理器大多采用冯·诺依曼结构,典型代表是Intel公司的X86微处理器。取指和取操作数都在同一总线上,通过分时服用的方式进行的。缺点是在高速运行时,不能达到同时取指令和取操作数,从而形成了传输过程的瓶颈。
  哈佛总线技术应用是以DSP和ARM为代表的。采用哈佛总线体系结构的芯片内部程序空间和数据空间是分开的,这就允许同时取指和取操作数,从而大大提高了运算能力。
  DSP芯片硬件结构有冯·诺依曼结构和哈佛结构,两者区别是地址空间和数据空间分开与否。一般DSP都是采用改进型哈佛结构,就是分开的数据空间和地址空间都不只是一条,而是有多条,这根据不同的生产厂商的DSP芯片有所不同。在对外寻址方面从逻辑上来说也是一样,因为外部引脚的原因,一般来说都是通过相应的空间选取来实现的。本质上是同样的道理。

4.改进型的哈佛结构 与 哈佛体系结构差别

与冯.诺曼结构处理器比较,哈佛结构处理器有两个明显的特点:
(1).使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;
(2).使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。

后来,又提出了改进的哈佛结构,其结构特点为:
(1).使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;
(2).具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输;
(3).两条总线由程序存储器和数据存储器分时共用。

5.总结

体系结构与采用的独立与否的总线无关,与指令空间和数据空间的分开独立与否有关。51单片机虽然数据指令存储区是分开的,但总线是分时复用得,所以属于改进型的哈佛结构。ARM9虽然是哈佛结构,但是之前的版本(例如ARM7)也还是冯·诺依曼结构。早期的X86能迅速占有市场,一条很重要的原因,正是靠了冯·诺依曼这种实现简单,成本低的总线结构。现在的处理器虽然外部总线上看是诺依曼结构的,但是由于内部CACHE的存在,因此实际上内部来看已经 类似 改进型哈佛结构的了。至于优缺点,哈佛结构就是复杂,对外围设备的连接与处理要求高,十分不适合外围存储器的扩展。所以早期通用CPU难以采用这种结构。而单片机,由于内部集成了所需的存储器,所以采用哈佛结构也未尝不可。现在的处理器,依托CACHE的存在,已经很好的将二者统一起来了。

冯诺依曼体系结构、哈佛体系结构与改进型哈佛结构之间的区别相关推荐

  1. 诺依曼体系结构、哈佛体系结构与改进型哈佛结构之间的区别

    1.冯·诺依曼结构 冯·诺依曼结构又称作普林斯顿体系结构(Princetionarchitecture). 1945年,冯·诺依曼首先提出了"存储程序"的概念和二进制原理,后来,人 ...

  2. 哈佛体系结构 哈佛体系结构

    哈佛体系结构 数字信号处理一般需要较大的运算量和较高的运算速度,为了提高数据吞吐量,在数字信号处理器中大多采用哈佛结构. 与冯.诺曼结构处理器比较, 哈佛 结构处理器有两个明显的特点:

  3. 冯·诺依曼、哈佛、改进型哈佛体系结构解析

    在如今的CPU中,由于Catch的存在,这些概念已经被模糊了.个人认为去区分他们并没有什么意义,仅作为知识点. 哈佛结构设计复杂,但效率高.冯诺依曼结构则比较简单,但也比较慢.CPU厂商为了提高处理速 ...

  4. 什么是冯诺依曼结构、哈佛结构、改进型哈佛结构?

    冯诺依曼结构 冯·诺依曼结构,又称为普林斯顿体系结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构.取指令和取操作数都在同一总线上,通过分时复用的方式进行:缺点是在高速运行时,不能达到同时 ...

  5. 冯诺依曼结构、哈佛结构、改进型哈佛结构

    冯诺依曼结构 冯·诺依曼结构,又称为普林斯顿体系结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构.取指令和取操作数都在同一总线上,通过分时复用的方式进行:缺点是在高速运行时,不能达到同时 ...

  6. 计算机冯诺伊曼体系结构和哈佛体系结构区别和处理器性能评判标准

    计算机体系结构主要分为两类:冯·诺依曼结构 和哈弗体系 二者的区别就是程序空间和数据空间是否是一体的,冯·诺依曼结构数据空间和地址空间是不分开的,而哈佛结构数据空间和地址空间是分开的. 冯·诺依曼结构 ...

  7. [DSP 日常记录] #1 冯诺依曼结构、哈佛结构与改进型哈佛结构

    1.冯·诺依曼结构 冯·诺依曼结构又被称作普林斯顿体系结构 (Princetionarchitecture).1945年,冯·诺依曼首先提出了"存储程序"的概念和二进制原理,后来, ...

  8. 计算机哈佛型体系结构,用于计算机体系结构教学哈佛体系结构模拟器.doc

    用于计算机体系结构教学哈佛体系结构模拟器 用于计算机体系结构教学哈佛体系结构模拟器 摘要:已有的计算机体系结构教学模拟器主要是面向冯诺依曼体系结构.针对缺乏面向哈佛体系结构模拟器这一问题,本文提出并设 ...

  9. 哈佛结构、冯诺依曼结构、改进型哈佛结构

    1.冯诺依曼结构 冯诺依曼结构也称普林斯顿结构,程序指令和数据存放在同一个存储器中,因此数据和指令的长度必须相同. 2.哈佛结构 哈佛结构数据存储和程序存储在不同的存储器中,每一个存储器独立编址,独立 ...

最新文章

  1. tomcat8 进入不了Manager App 界面 403 Access Denied
  2. 图数据库_ONgDB图数据库与Spark的集成
  3. 【华为云技术分享】【测试微课堂】 有的放矢制定测试计划
  4. kafka版本_Apache Kafka 版本演进及特性介绍
  5. (转)C# Enum,Int,String的互相转换 枚举转换
  6. GMT时间转换为当地时间的方法
  7. Apache Flink 学习教程----持续更新
  8. 【C++】反向迭代器(rbegin,rend)(转载)
  9. 深度学习(三)theano入门学习
  10. 查看linux内存和硬盘
  11. uptime查看服务器负载详解
  12. 网页播放rtsp视频流最终方案
  13. 工业物联网实践指南----专注生产制造活动
  14. signature=e7411d00c74ac359f20083a015dc6ea9,MS12-020:遠端桌面的弱點可能會允許遠端程式碼執行:2012 年 3 月 13 日...
  15. 前段vue+后端接口PHP实现万年历(带上节假日天干地支凶吉星座神)
  16. c语言源代码下载TGAM,2018年江西理工大学C语言程序设计竞赛(初级组)一
  17. ATTCK v10版本战术介绍执行(下篇)
  18. jpa报错:mappedBy reference an unknown target entity property:
  19. JPG图片在线翻译的操作方法
  20. 赚钱套路分享:降维打击,报团取暖的玩法

热门文章

  1. 你真的了解爬虫吗?看完你会对网络爬虫有更深更全面的认识
  2. IAR下载出现错误An error occurred while retrieving GDI features: gdi-error [40201]
  3. 【VUE】【高德地图】如何隐藏(去除)高德地图api左下角logo
  4. 神经网络与深度学习(一):神经网络与数字识别
  5. YOLOv5 + Tesseract-OCR 实现车牌号文本识别
  6. Win10 ntoskrnl.exe蓝屏解决
  7. ntp VS chrony
  8. 神经网络历史_神经网络完整有趣且令人费解的历史
  9. 使用pscp命令将Windows和linux中文件互相拷贝
  10. 淘宝宝贝图片批量下载教程