冯诺依曼体系
- 特点:
- 必须有一个存储器
- 必须有一个控制器
- 必须有一个运算器,用于完成算术运算和逻辑运算
- 必须有输入和输出设备,用于进行人机通信
- 要点
这种体系只有一个存储器,所有指令地址和数据地址统一,且统一的存放于存储器中。
- 模型
哈佛结构
- 特点
- 使用两个独立的存储模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存。
- 使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。
- 模型
哈佛结构与冯诺依曼结构的区别:
哈佛结构的指令地址与数据地址是独立的,而冯诺依曼结构是统一的。根源是两者的bus总线不同引起的。
例子:
冯诺依曼结构下:addr 0x0000就只对应指令区,数据区在地址区后面
哈佛下,addr 0x0000 有两个,一个对应指令memory,一个对应data memory,看走的是哪条bus,来确定访问哪个空间。
冯诺依曼结构的优缺点:
- 优点:
a. data区和指令区公用memory,方便data区与指令区灵活调整,如果程序切换频繁,可以提高memory利用率。
b. bus及控制相对简单,成本低。
- 缺点:
同一条bus分时复用,读取指令时注定不能操作data,这样不能走流水线,假设一条指令需要:取指,译码,执行;那么只能是前一条的执行后,下一条才能取指。这样影响cpu效率。
哈佛结构的优缺点:
优点:
执行指令效率高,采取流水线。即前一条指令译码的时候,第二条取指;执行的时候,第二条译码,第三条取指。这样执行一条指令只需要一个clock。当然这种预取指只是对指令顺序执行时效果比较好,如果指令总是跳来跳去,那也是徒劳的。
缺点:
- 指令区和data区独立,这样memory利用率不高,特别是程序频繁变动的情况下。
- bus多成本高。
总结:
冯诺依曼体系比较适合作为PC这样的多任务多软件的CPU,而哈弗结构比较适合任务单调但需要高速率执行的CPU。