哈佛结构
哈佛结构
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构,目的是为了减轻程序运行时的访存瓶颈.
哈佛结构
程序特点是 程序 和 数据 存储在不同的存储空间中
-
结构: 程序存储器和数据存储器是两个独立的存储器,每个存储器相对应的是系统的四条总线(程序的数据总线/地址总线 数据的数据总线/地址总线).
-
过程: 中央单片机首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,进行下一步操作(通常是执行).
-
分析: 这种分离的程序总线和数据总线可允许在同一机器周期内同时获得指令字(来自程序存储器)和操作数(来自数据存储器),程序和数据存储在两个分开的物理空间中,取址和执行能完全重叠,执行时可以预先读取下一条指令,提高了执行速度,进而提高了数据的吞吐率.
-
补充: 程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度.
哈佛结构能基本上解决取指和取数的冲突问题,而对于一条指令同时取两个操作数的情况可以有以下对策:
-
数据区再区分:
-
采用指令cache:
改进的哈佛结构
- 哈佛结构原有特点:使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理;
- 改进的部分:具有一条独立的地址总线和一条独立的数据总线,两条总线由程序存储器和数据存储器分时共用.
利用地址总线访问两个存储模块(程序存储模块和数据表存储模块)
公用的数据总线用来完成程序存储或数据存储模块与CPU之间的数据传输