中央处理器的体系架构可以分为:冯·诺依曼结构和哈佛结构


冯诺依曼结构      

          冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此指令和数据的宽度相同。使用冯·诺伊曼结构中央处理器和微控制器有很多。除了英特尔公司的8086,英特尔公司的其他中央处理器、ARM的ARM7、MIPS公司MIPS处理器也采用了冯·诺依曼结构

      冯·诺曼结构处理器具有以下几个特点:必须有一个存储器;必须有一个控制器;必须有一个运算器,用于完成算术运算和逻辑运算;必须有输入和输出设备,用于进行人机通信。

冯诺依曼架构与哈佛架构特点 冯诺依曼与哈佛结构_哈佛结构

       在这种结构下:数据和指令只能分时的复用。


哈佛结构

      哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度。

       哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。使用哈佛结构中央处理器和微控制器有很多,Microchip公司的PIC系列芯片,还有摩托罗拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和安谋公司的ARM9、ARM10和ARM11。


哈佛结构是指程序和数据空间独立的体系结构,目的是为了减轻程序运行时的访存瓶颈。


例如最常见的卷积运算中, 一条指令同时取两个 操作数, 在流水线处理时, 同时还有一个取指操作,如果程序和数据通过一条总线访问,取指和取数必会产生冲突,而这对大运算量的循环的执行效率是很不利的。 哈佛结构能基本上解决取指和取数的冲突问题。而对另一个 操作数的访问,就只能采用Enhanced 哈佛结构了,例如像TI那样,数据区再split,并多一组总线。或向AD那样,采用指令cache,指令区可存放一部分数据。


        DSP内部一般采用的是 哈佛结构

,它在片内至少有4套总线:程序的 数据总线,程序的地址总线

,数据的数据总线和数据的地址总线。这种分离的程序总线和 数据总线

,可允许同时获取 指令字

(来自 程序存储器

)和 操作数

(来自数据存储器),而互不干扰。这意味着在一个 机器周期

内可以同时准备好指令和 操作数



        哈佛结构处理器有两个明显的特点:使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。