冯诺依曼VS哈佛结构

冯诺依曼结构模型

内存是由地址组成的,cpu以内存能够听懂的语言(通信协议)对内存说:“1号内存地址,把你里面存的数据传给我(发送地址)”。内存听懂之后就会通过数据总线,把里面的数据传给cpu。cpu收到之后进行运算,改了这个值之后,又对内存说:“1号内存地址,我要给你发数据,接着”。内存听懂之后就会把数据总线发来的数据存到内存单元里面。


哈佛结构模型

哈佛结构 数据和程序分开存储,数据存在一个内存里面,程序存在另一个内存里面。但是总线太多降低了效率。


改进版哈佛结构

改进版的哈佛结构 数据和程序也是分开存储,但是和哈佛结构相比,改进版的哈佛结构共用数据总线和地址总线。因为发地址的时候可以区分开不同的内存,比如存数据的内存从1-1000号,存程序的内存从1001-2000号,这样cpu 喊1号 ,存数据的内存就知道cpu要读写数据了。cpu 喊1001号 存数据的内存假装听不到,而存程序的内存知道要读程序了,就会把一条程序传给cpu 。


总结:通过对比可以发现 冯诺依曼结构 由于数据和程序存储在同一块内存中,程序运行的时候有可能会被更改。而哈佛结构程序运行之后是不会被更改的,只有数据被更改,cpu只能读取程序。只有程序结束运行,重新编译、链接、生成程序的时候才能改变程序,运行的时候cpu无法改变。

以上模型图都是省略cache等情况的,最简单的理论模型。可以更好的理解程序运行的原理,如有错误欢迎指正,比如箭头的方向,感激不尽!

那么问题来了:从软件安全角度来讲,是否可以认为 哈佛结构比冯诺依曼结构 更安全?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值