一、两种架构的介绍
1.哈佛结构是一种将程序指令的存储与数据的存储分开的存储器结构。首先,CPU在程序指令存储器中读取程序指令内容,解码后获得数据地址,然后在相应的数据存储器中读取数据,并进行下一步操作。指令存储和数据存储的分离可以使指令和数据具有不同的数据宽度。例如,Microchip公司的PIC16芯片的程序指令是14比特宽,而数据是8比特宽。哈佛结构的微处理器通常具有较高的执行效率。如果将程序指令和数据指令分开组织和存储,执行时可以提前读取下一条指令。目前,有许多CPU和微控制器采用哈佛结构。除了上述Microchip公司的PIC系列芯片外,摩托罗拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和安谋公司的ARM9、ARM10、ARM11、51单片机也属于哈佛结构。
3.冯-诺伊曼结构,又称普林斯顿结构,是一种将程序指令存储器和数据存储器结合起来的存储器结构。程序指令存储地址和数据存储地址指向同一存储器中的不同物理位置,所以程序指令和数据的宽度是一样的。例如,Intel 8086 CPU的程序指令和数据都是16位宽
二、两种架构的区别
1、存储器结构不同
(1)、冯诺依曼结构:冯诺依曼结构是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
(2)、哈佛结构:哈佛结构使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存。
2、总线不同
(1)、冯诺依曼结构:冯诺依曼结构没有总线,CPU与存储器直接关联。
(2)、哈佛结构:哈佛结构使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。
三、执行效率不同
(1)、冯诺依曼结构:冯诺依曼结构其程序指令和数据指令执行时不可以预先读取下一条指令,需要依次读取,执行效率较低。
(2)、哈佛结构:哈佛结构其程序指令和数据指令执行时可以预先读取下一条指令,具有较高的执行效率。