哈佛结构&冯·诺依曼结构

哈佛结构是一种将程序指令存储和 数据存储分开的存储器结构。哈佛结构是

一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。

 

 冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽,还有ARM7。

 

为什么Cortex-M3是哈佛结构,却采用的是统一编址方式呢?

统一编址并不代表就是但总线结构,ARM9是哈佛结构也是统一

STM32中程序存储器、IO接口和数据存储器都是在32位的4GB线性空间上,下图就是这个线性空间的分配图,可以看出程序存储器和数据存储器处于不同的地址区域,不像8051那样程序存储器和数据存储器分别有两套不同的地址区域。统一编址并不代表就是单总线结构,STM32中不同的总线使用了不同的地址空间。

这里所说的哈佛或者冯诺依曼结构,指的是cpu的核心的结构,也就是说从kernel的角度来看,它的指令和普通数据总线是独立的,kernel自己有两套接口。而在大多数应用中,因为软件习惯问题以及从复杂度考虑,都是把I和D两个总线接到同一个外部总线上,这样就是大家使用统一编址了。

哈佛结构是有关CPU周边的总线架构,不是关于存储器本身的

下图为STM32内部的总线结构图,你可以清楚地看到Flash和SRAM分别使用了不同的通道与Cortex-M3核心交换数据,这正是典型的哈佛结构;你可以再比较一下ARM7的总线结构图,应该可以看出不同之处。

 

哈佛结构采用数据存储器与程序代码存储器分开,各自有自己的数据总线与地址总线。但这是需要CPU提供大量的数据线,因而很少使用哈佛结构作为CPU外部构架来使用。但是对于 CPU内部,通过使用不同的数据和指令cache,可以有效的提高指令执行的效率,因而目前大部分计算机体系都是CPU内部的哈弗结构+CPU外部的冯·诺伊曼的结构

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值