一、冯.诺伊曼结构
1945年 , 冯.诺伊曼首先提出了“存储程序”的概念和二进制原理 , 后来 , 人们把利用这种概念和原理设计的电子计算机系统统称为“冯.诺伊曼型结构”计算机 。冯.诺伊曼结构的处理器使用同一个存储器 , 经由同一个总线传输 , 如下图所示:
图 冯.诺伊曼结构
冯.诺伊曼结构处理器具有以下几个特点:
必须有一个存储器;
必须有一个控制器;
必须有一个运算器 , 用于完成算术运算和逻辑运算;
必须有输入和输出设备 , 用于进行人机通信 。
冯.诺伊曼的主要贡献就是提出并实现了“存储程序”的概念 。由于指令和数据都是二进制码 , 指令和操作数的地址又密切相关 , 因此 , 当初选择这种结构是自然的 。但是 , 这种指令和数据共享同一总线的结构 , 使得信息流的传输成为限制计算机性能的瓶颈 , 影响了数据处理速度的提高 。
在典型情况下 , 完成一条指令需要3个步骤 , 即:取指令、指令译码和执行指令 。从指令流的定时关系也可看出冯.诺伊曼结构与哈佛结构处理方式的差别 。举一个最简单的对存储器进行读写操作的指令 , 如下图所示 , 指令1和指令3均为存、取数指令 , 对冯.诺伊曼结构处理器 , 由于取指令和存取数据要从同一个存储空间存取 , 经由同一总线传输 , 因而它们无法重叠执行 , 只有一个完成后再进行下一个 。
【冯.诺伊曼结构与哈佛结构区别】图 冯.诺曼结构处理器指令流的定时关系示意图
二、哈佛结构
数字信号处理一般需要较大的运算量和较高的运算速度 , 为了提高数据吞吐量 , 在数字信号处理器中大多采用哈佛结构 , 如下图所示
图 哈佛结构
与冯.诺伊曼结构处理器比较 , 哈佛结构处理器有两个明显的特点:
使用两个独立的存储器模块 , 分别存储指令和数据 , 每个存储模块都不允许指令和数据并存;使用独立的两条总线 , 分别作为CPU与每个存储器之间的专用通信路径 , 而这两条总线之间毫无关联 。
后来 , 又提出了改进的哈佛结构 , 如下图所示:
图 改进型哈佛结构
其结构特点为:
使用两个独立的存储器模块 , 分别存储指令和数据 , 每个存储模块都不允许指令和数据并存 , 以便实现并行处理;具有一条独立的地址总线和一条独立的数据总线 , 利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块) , 公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输;两条总线由程序存储器和数据存储器分时共用 。
在典型情况下 , 完成一条指令需要3个步骤 , 即:取指令、指令译码和执行指令 。从指令流的定时关系也可看出冯.诺伊曼结构与哈佛结构处理方式的差别 。举一个最简单的对存储器进行读写操作的指令 , 如下图所示 , 指令1至指令3均为存、取数指令 , 对冯.诺伊曼结构处理器 , 由于取指令和存取数据要从同一个存储空间存取 , 经由同一总线传输 , 因而它们无法重叠执行 , 只有一个完成后再进行下一个 。
图 冯.诺曼结构处理器指令流的定时关系示意图