单片机哈佛和普林斯顿体系_哈佛结构的基本特点

单片机哈佛和普林斯顿体系_哈佛结构的基本特点https://blog.csdn.net/skywalker_leo/article/details/78194631.冯·诺依曼结构冯·诺依曼结构,又称为普林斯顿体系结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。取指令和取操作数都在同一总线上,通过分时复用的方式进行;缺点是在高速运行时,不能达到同时取指令和取操作数,从而形成了传输过程的瓶颈。由于程序指令存储…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

https://blog.csdn.net/skywalker_leo/article/details/7819463

1. 冯·诺依曼结构

    冯·诺依曼结构,又称为普林斯顿体系结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。取指令和取操作数都在同一总线上,通过分时复用的方式进行;缺点是在高速运行时,不能达到同时取指令和取操作数,从而形成了传输过程的瓶颈。由于程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。

    目前使用冯·诺依曼结构的CPU和微控制器有很多。其中包括英特尔公司的8086及其他CPU,TI的MSP430处理器,ARM公司的ARM7,MIPS公司的MIPS处理器。

单片机哈佛和普林斯顿体系_哈佛结构的基本特点

2. 哈佛结构

    哈佛结构是一种将程序指令存储和数据存储分开的存储器结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问,目的是为了减轻程序运行时的访存瓶颈。

    目前使用哈佛结构的中央处理器和微控制器有很多,Microchip公司的PIC系列芯片,还有motorola公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和ARM公司的ARM9、ARM10和ARM11。

单片机哈佛和普林斯顿体系_哈佛结构的基本特点

3. 总结

    随着CPU设计的发展,流水线的增加,指令和数据的互斥读取影响CPU指令执行的scale程度。哈佛结构中数据存储器与程序代码存储器分开,各自有自己的数据总线与地址总线,取操作数与取指令能同时进行。但这是需要CPU提供大量的数据线,因而很少使用哈佛结构作为CPU外部构架来使用。对于CPU内部,通过使用不同的数据和指令cache,可以有效的提高指令执行的效率,因而目前大部分计算机体系都是在CPU内部的使用哈佛结构,在CPU外部使用冯·诺依曼结构。
——————— 
作者:skywalker_leo 
来源:CSDN 
原文:https://blog.csdn.net/skywalker_leo/article/details/7819463 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

冯诺依曼和哈弗结构图对比:

冯·诺依曼结构也称作普林斯顿结构,是一种将程序(指令序列的集合)和数据存放在同一存储器的不同地址的电脑设计概念结构。这是建立在冯·诺依曼原理,即程序可看做一种特殊的“数据”,同样地可以被处理和存储,故两者可存放在同一存储器中,采用单一的地址总线和数据总线。

特点:

第一,程序和数据存放在同一存储器的不同地址上;

第二,存储单元线性排列,且其位数固定;

第三,顺序执行,即程序/数据—>内存—>取指令执行指令;顺序执行程序。执行前,将需要的程序和数据先放入存储器(PC为内存)。当执行时把要执行的程序和要处理的数据按顺序从存储器中取出指令一条一条地执行,称作顺序执行程序。

第四,组成上有运算器,存储器,控制器,输入/输出设备。如下图:

单片机哈佛和普林斯顿体系_哈佛结构的基本特点

哈佛结构

  与冯氏结构相对的是哈佛结构,即将程序和数据分开存储的结构。其过程CPU首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储存器中读取数据,并进行下一步的操作(通常是执行)。程序指令储存和数据储存分开,数据和指令的储存可以同时进行,可以使指令和数据有不同的数据宽度

  联系冯氏结构的瓶颈,我们很快能想到哈佛结构能够完成指令和数据的并发操作,减轻了程序运行时的访存瓶颈,也就是提高吞吐量,是一种并行结构;而冯氏结构只能是顺序操作,是一种串行的处理方式。原始的冯·诺依曼体系结构,通过引入流水线技术(Pipeline)提高吞吐量。

  流水线技术与并行处理有所区别,流水线是在顺序指令流计算机中实现处理时间重叠的技术。流水线的并行处理是指完成对一条指令的不同操作(取指令、解码指令、执行指令)的各个部件在时间上是可以同时重叠工作(三级流水线)。CPU是按照取指令、解码指令、执行指令来完成一条指令的操作,当CPU取完第一条指令后,接着解码第一条指令,同时CPU取第二条指令,该步完成后,CPU执行第一条指令,同时解码第二条指令、取第三条指令,如此重叠操作。

  因此,各部件同时处理是针对不同指令而言的,各部件分别同时为多条指令的不同部分(step、stage)进行工作,以提高各部件的利用率来提高指令的平均执行速度。但是这样虽然提高了系统的速率,由于流水线结构使得不容易计算程序运行的时间,对一些时序要求很严的情况,该结构还是存有弊端的。所以在一些实时性很强的嵌入式系统采用哈佛结构可以高速数据处理,同时读取指令和数据,大大提高了数据吞吐率,保证了系统的可靠性。

 

单片机哈佛和普林斯顿体系_哈佛结构的基本特点

 

分支预测逻辑

???

单片机哈佛和普林斯顿体系_哈佛结构的基本特点

 

GCC编译中的选择

单片机哈佛和普林斯顿体系_哈佛结构的基本特点

时序对性能影响

单片机哈佛和普林斯顿体系_哈佛结构的基本特点

单片机哈佛和普林斯顿体系_哈佛结构的基本特点单片机哈佛和普林斯顿体系_哈佛结构的基本特点

 

 

国外牛人从零开始制作8-bit计算机_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili  

https://www.bilibili.com/video/av11048265/?spm_id_from=trigger_reload

 

 

参考文献:

1、《深入理解计算机系统》第三版,3.6

2、《Synthesis of Arithmetic Circuits_ FPGA, ASIC and Embedded SystemsInterscience (2006)

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185905.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IDEA阅读spring源码并调试「建议收藏」

    IDEA阅读spring源码并调试「建议收藏」阿里云服务器优惠券领取优惠券目标:搭建起Spring源码阅读和代码调试跟踪的环境,顺便建立一个简单的Demo,能够调试Spring的源代码本节,主要介绍一下Spring源码阅读和调试的相关环境搭建,并使用MVN创建一个非常简单的Demo,以便可以跟踪和调试Spring的内核。1、源码的下载Spring的源码可以从GitHub上下载:https://github.com/spri………

    2022年8月12日
    6
  • 高精度快速阶乘算法

    高精度快速阶乘算法    我在业余时间开发了一套《超大整数完全精度快速算法库》HugeCalc,可快速计算超大整数的加、减、乘、除(商/余)、乘方、开方,也可快速计算大数的Fibonacci数列、(双)阶乘、排列、组合等,还可完成超大整数数组的最大公约数、最小公倍数等数论运算,现在,该套软件已被华军、天空、电脑之家、天天等下载站点收录。    自在网上公开以来,广受网友关注,经常有网友来联系,想交流一些算法心

    2022年7月24日
    9
  • ▲ Android 动画望远镜效果

    ▲ Android 动画望远镜效果

    2021年3月12日
    150
  • mse函数(均方误差函数)_二次代价函数有什么用

    mse函数(均方误差函数)_二次代价函数有什么用MSE均方误差(L2loss)1.代码展示MAE和MSE图片特性importtensorflowastfimportmatplotlib.pyplotaspltsess=tf.Session()x_val=tf.linspace(-1.,-1.,500)target=tf.constant(0.)#计算L2_lossl2_y_val=tf…

    2022年9月29日
    0
  • 常用电压电流转换原理图

    常用电压电流转换原理图读书笔记———-经典的电压转换电流的原理图设计——————————–图片系转载,供自己记忆用。

    2022年6月2日
    52
  • u盘不显示容量打不开_u盘在电脑上显示但是打不开怎么办

    u盘不显示容量打不开_u盘在电脑上显示但是打不开怎么办JonTargaryen24872017-04-30如何解决移动硬盘/U盘无法打开并在电脑上显示为“本地磁盘”的问题qq_3259947986672018-11-23Toshiba8GU盘量产修复工具atlim32017-01-18u盘打开之后就只有一个快捷方式code_AC122812016-11-20联想8G移动U盘量产工具shaotingqiang2122011-12-13无法打开U盘中…

    2025年10月11日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号