哈佛结构与冯诺依曼结构

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

首先我们得了解什么是IO和什么是内存:

内存是指程序的运行场所,内存和CPU之间通过总线连接,CPU通过一定的地址来访问具体的单元,就像我去逛商场买东西,整个商场就是一个内存,每个店铺就是具体的单元,我们要去买东西就得知道每个店铺具体的位置,这就地址,商场的大小就是内存的大小。

IO(input and output)是输入输出接口,是CPU和其他外部设备(如串口,LCD触摸屏,LED,ADC,定时器等)之间的通信的道路,一般的IO就是指CPU的各种内部或外部的外设。

内存的访问方式

内存通过CPU的数据总线来寻址定位,然后通过CPU数据总线来读写。

CPU的地址总线的位数是CPU设计时确定的,因此一款CPU所能寻址的范围是一定的,而内存是需要占用CPU的寻址空间的

内存与CPU的这种总线式连接方式是一种直接连接,优点是效率高访问快,缺点是资源有限,扩展性差。

IO指的是与CPU连接的各种外设

CPU访问各种外设有2种方式:一种是类似于访问内存的方式,即把外设的寄存器当作一个内存地址来读写,从而以访问内存相同的方式来操作外设,叫IO与内存统一编址方式;

另一种是使用专用的CPU指令来访问某种特定外设,叫IO与内存独立编址。

对比

由于内存访问频率高,因此采用总线式连接,直接地址访问,效率最高

IO与内存统一编址方式,优势是IO当作内存来访问,编程简单;缺点是IO也需要占用一定的CPU地址空间,而CPU的地址空间是有限资源。

比如说32位地址线的CPU就只有4G的空间,如果这4G的空间都给了内存那就完蛋了,IO就没有空间了,所以我们就不可能给4G的空间给内存,会留很多给IO的。

IO与内存独立编织方式,优势是 不占用CPU地址空间,缺点是CPU设计变复杂。

程序和数据

程序运行时两大核心元素:程序 + 数据

程序是我们写好的源代码经过编译、汇编之后得到的机器码,这些机器码可以拿给CPU去解码执行

数据是程序运行过程中定义和产生的变量的值,是可以读写的,程序运行实际就是为了改变数据的值。

冯诺依曼结构和哈佛结构

程序和数据都放在内存中,且不彼此分离的结构称为冯诺依曼结构。譬如Intel的CPU均采用冯诺依曼结构。

程序和数据分开独立放在不同的内存块中,彼此完全分离的结构称为哈佛结构。譬如大部分的单片机(STC51、ARM9等)均采用哈佛结构。

冯诺依曼结构
哈佛结构

优劣对比

冯诺依曼结构中程序和数据不区分的放在一起,因此安全和稳定性是个问题,好处是处理起来简单。

哈佛结构中程序(一般放在ROM、FLASH中)和数据(一般放在RAM中)独立分开存放,因此好处是安全和稳定性高,缺点是软件处理复杂一些(需要统一规划链接地址等)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值