哈佛结构和冯诺依曼结构定义

编程时程序代码被分为两大部分

  1. 逻辑代码部分:程序编写完成后,就不需要对其进行修改了的;
  2. 定义变量部分:程序别写完成后,会随着程序的运行不断变化的内容。

哈佛结构和冯诺依曼结构就是对这两部分代码的储存方式的区别

哈佛结构

程序指令储存器和数据储存器分开的储存结构。

哈佛结构

数据和指令的储存可以同时进行,可以使指令和数据有不同的数据宽度,哈佛结构有较高的执行效率。

预取指对指令顺序执行程序代码执行效率高,适合任务单调但需要高速率执行效率的CPU,如ARM、DSP。但总线多,成本高,对外设要求高。

冯诺依曼结构

是将程序指令储存器和数据储存器合并在一起的的储存结构。

冯诺依曼结构

冯洛伊曼结构是将逻辑代码和变量统一储存在内存当中,他们之间一般是按照代码的执行顺序依次储存。冯洛伊曼结构可以充分的利用有限的内存空间。并且会使CPU对程序的执行十分的方便,不用来回的跑。

数据区和指令区共用memory,方便数据区和指令区灵活调整,如果程序频繁的切换,可以提高memory的利用率。总线简单,成本低,对外设要求低。适合PC这样多任务多软件的CPU

改进型哈佛结构:

使用两个不同的存储器,程序存储器和数据存储器;使用两根总线,把两个存储器的2条地址总线和2条数据总线进行了合并;即原来哈佛结构需要4条不同的总线,改进后只需要两2条总线。

使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理;具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输;两条总线由程序存储器和数据存储器分时共用。

改进型哈佛结构

参考: