• 嵌入式基础——哈弗结构


    1 什么是哈弗结构?

    哈佛结构是一种将程序指令存储数据存储分开存储器结构,如图所示:
    在这里插入图片描述
    哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。

    与两个存储器相对应的是系统的4条总线,即程序的数据总线地址总线数据的数据总线地址总线。这种分离的程序总线和数据总线可允许在一个机器周期内同时获得指令字(来自程序存储器)和操作数(来自数据存储器),从而提高了执行速度,进而提高了数据的吞吐率。

    又由于程序和数据存储在两个分开的物理空间中,因此取址和执行能完全重叠。中央单片机首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度。

    哈佛结构的计算机CPU程序存储器数据存储器组成,程序存储器和数据存储器采用不同的总线,从而提供了较大的存储器带宽,使数据的移动和交换更加方便,尤其提供了较高的数字信号处理性能。

    哈佛结构的微单片机通常具有较高的执行效率,其程序指令和数据指令分开组织和存储,执行时可以预先读取下一条指令。

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


    2 哈弗结构单片机的特点

    哈佛结构与冯·诺依曼结构单片机相比,单片机有2个明显的特点

    • 使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;
    • 使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。

    3 什么是改进的(Enhanced)哈弗结构?

    改进的哈佛结构特点为:

    • 使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理;
    • 具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输,两条总线由程序存储器和数据存储器分时共用

    例如,最常见的卷积运算中,一条指令同时取两个操作数,在流水线处理时,同时还有一个取指操作,如果程序和数据通过同一条总线访问,取指和取数必会产生冲突,而这对大运算量的循环的执行效率是很不利的。

    哈佛结构能基本上解决取指和取数的冲突问题,而对另一个操作数的访问就只能采用改进的(Enhanced)哈佛结构了。例如,像TI公司生产的微处理器那样,数据区再分区(Split),并多一组总线,或像ADI公司的DSP那样,采用指令cache,指令区可存放一部分数据。

    4 写在最后

    本文是鄙人阅读《单片机与嵌入式系统600问》时所做笔记,本人只是一名知识的搬运工而已,希望能够帮到大家,欢迎诸位共同交流学习,谢谢!!

  • 相关阅读:
    利用FastReport传递图片参数,在报表上展示签名信息
    IAR全面支持小华全系芯片,强化工控及汽车MCU生态圈
    React如何实现国际化?
    Libuv源码解析 - uv_loop整个初始化模块
    腾讯、飞书等在线表格自动化编辑--python
    《Java 核心技术卷1 基础知识》第一章 Java程序设计概述 笔记
    Roson的Qt之旅 #115 QML Menu用法
    GO语言的由来与发展历程
    JavaScript 验证 API
    20%的业务代码的Spring声明式事务,可能都没处理正确
  • 原文地址:https://blog.csdn.net/New_Teen/article/details/133867140