哈佛结构

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

哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和储存的,执行时可以预先读取下一条指令。

目前使用哈佛结构的中央处理器和微控制器有很多,除了上面提到的Microchip公司的PIC系列芯片,还有摩托罗拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和安谋公司的ARM9、ARM10和ARM11。大多数DSP是哈佛结构的。

冯·诺伊曼结构

冯.诺伊曼结构(von Neumann architecture),也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的电脑设计概念结构。该结构隐约指导了将储存装置与中央处理器分开的概念,因此依该结构设计出的计算机又称储存程式型电脑。

最早的计算机器仅内涵固定用途的程式。现代的某些计算机依然维持这样的设计方式,通常是为了简化或教育目的。例如一个计算器仅有固定的数学计算程式,它不能拿来当作文书处理软件,更不能拿来玩游戏。若想要改变此机器的程式,你必须更改线路、更改结构甚至重新设计此机器。当然最早的计算机并没有设计的那个可编程化。当时所谓的“重写程式”很可能指的是纸笔设计程式步骤,接着制订工程细节,再施工将机器的电路配线或结构改变。

而储存程式型电脑的概念改变了这一切。借由创造一组指令集结构,并将所谓的运算转化成一串程式指令的执行细节,让此机器更有弹性。借着将指令当成一种特别型态的静态资料,一台储存程式型电脑可轻易改变其程式,并在程控下改变其运算内容。冯·诺伊曼结构与储存程式型电脑是互相通用的名词,其用法将于下述。而哈佛结构则是一种将程式资料与普通资料分开储存的设计概念,但是它并未完全突破冯.诺伊曼架构。

储存程式型概念也可让程式执行时自我修改程式的运算内容。本概念的设计动机之一就是可让程式自行增加内容或改变程式指令的内存位置,因为早期的设计都要使用者手动修改。但随着索引暂存器与间接位置存取变成硬件结构的必备机制后,本功能就不如以往重要了。而程式自我修改这项特色也被现代程式设计所弃扬,因为它会造成理解与除错的难度,且现代中央处理器的管线与快取机制会让此功能效率降低。

从整体而言,将指令当成资料的概念使得组合语言、编译器与其他自动编程工具得以实现;可以用这些“自动编程的程式”,以人类较易理解的方式编写程式;从局部来看,强调I/O的机器,例如Bitblt,想要修改画面上的图样,以往是认为若没有客制化硬件就办不到。但之后显示这些功能可以借由“执行中编译”技术而有效达到。

此结构当然有所缺陷,除了下列将述的冯·诺伊曼瓶颈之外,修改程式很可能是非常具伤害性的,无论无意或设计错误。在一个简单的储存程式型电脑上,一个设计不良的程式可能会伤害自己、其他程式甚或是操作系统,导致当机。缓冲区溢位就是一个典型例子。而创造或更改其他程式的能力也导致了恶意软件的出现。利用缓冲区溢位,一个恶意程式可以覆盖呼叫堆栈(Call stack)并覆写程式码,并且修改其他程式档案以造成连锁破坏。内存保护机制及其他形式的存取控制可以保护意外或恶意的程式码更动。大多数CPU和GPU是冯诺依曼结构的。

简述“哈佛结构”和“冯·诺依曼结构”的区别相关推荐

  1. 1CISC和RISC的区别联系是什么?2哈佛结构和冯·诺依曼结构的区别

    RISC 和CISC 是目前设计制造微处理器的两种典型技术,虽然它们都是试图在体系结构.操作运行.软件硬件.编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,因此,在很 ...

  2. 单片机工作笔记002---认识CPU的结构_哈佛结构和冯·诺依曼结构的区别

    技术交流QQ群[JAVA,.NET,BigData,AI]:170933152 哈佛结构 (英语:Harvard architecture)是一种将程序指令储存和数据储存分开的存储器结构.中央处理器首 ...

  3. 哈佛结构和冯·诺依曼结构的区别

    一.哈佛结构 哈佛结构(Harvard architecture)是一种将程序指令储存和数据储存分开的存储器结构.中央处理器首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储 ...

  4. 哈佛结构和冯·诺依曼结构的区别【转】

    转自:https://www.cnblogs.com/LinKArftc/p/5789740.html [转]http://blog.sina.com.cn/s/blog_a44094ea01016s ...

  5. 哈佛结构与冯.诺依曼结构(普林斯顿结构)

    过去知道计算机的体系结构分为哈佛结构与冯.诺依曼结构,但并没有去总结他们有什么区别.今天来看看它们有什么区别. 冯.诺依曼结构,又称为普林斯顿结构.是一种经典的体系结构,有CPU,总线,外部存储器组成 ...

  6. 哈佛结构和冯·诺依曼结构

    目录 一.哈佛结构 二.冯·诺伊曼结构 三.哈佛结构和冯·诺伊曼结构对比 一.哈佛结构 哈佛结构是一种将程序指令存储和数据存储分开的存储器结构.哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存 ...

  7. 1.1计算机组成结构:CPU组成、冯·诺依曼结构与哈佛结构、嵌入式芯片术语

    1.1计算机组成结构:CPU组成.冯·诺依曼结构与哈佛结构.嵌入式芯片术语 计算机组成结构 CPU组成 运算器 控制器 冯·诺依曼结构与哈佛结构 冯·诺依曼结构 哈佛结构 嵌入式--芯片术语 计算机组 ...

  8. 哈佛结构和冯诺依曼结构的区别(3)

    冯诺依曼体系结构与哈弗体系结构的区别 材料一:        哈佛结构是一种将程序指令存储和数据存储分开的存储器结构.中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数 ...

  9. 哈佛结构与普林斯顿结构的区别通俗易懂

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

最新文章

  1. eviews怎么回归道格拉斯生产函数_【干货分享】Eviews估计方法汇总
  2. 老张喝茶 教你同步异步 阻塞与非阻塞(转)
  3. HDU-2688 Rotate
  4. ado.net mysql 连接池_ADO.NET数据库连接池的介绍 | 学步园
  5. eclipse中添加插件的方法
  6. php 服务器安装,php服务器安装笔记
  7. keepalived 安装及配置VIP漂移
  8. poj 2417 Discrete Logging
  9. react native项目增加devtools工具
  10. eBay把平台更新为Kubernetes、Envoy和Kafka:计划开源硬件和软件
  11. 转 Kafka入门经典教程
  12. nodejs的moment操作时间
  13. 锁php_php+redis实现分布式锁
  14. maven学习系列——(七)Dependency
  15. plc编程语言有哪几种?
  16. 方法重载时,需要遵循以下三条原则
  17. wp10手机不能连接微软服务器,WP10手机微软账户登陆不了该怎么办?
  18. 辽宁计算机相关硕士非全日制,辽宁地区院校非全日制硕士研究生招生专业汇总...
  19. thinkjs的这个bug害人不浅
  20. 《the culture code》

热门文章

  1. css文字下划线效果
  2. Linux执行命令提示Password,linux执行passwd命令挂起
  3. 5个好用的混合式App开发工具
  4. 欠拟合与过拟合、泛化能力概念总结及python示例
  5. 2022-2027年中国无糖茶饮料行业发展前景及投资战略咨询报告
  6. cadence virtuoso 调整字体大小的办法
  7. 【读书笔记->统计学】01-02 饼图、条形图、直方图、累计频数图、折线图概念简介
  8. Java JSON字符串与自定义类/基本类型相互转换
  9. 通过微信分享链接,后面被加上from=singlemessageisappinstalled=1导致网页打不开
  10. Windows 10搜索框一直搜索/加载的解决方法