0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CPU与哈佛结构和冯诺依曼结构之间的关系及各自特点

Q4MP_gh_c472c21 来源:知晓编程 作者:Firefly 2021-04-25 13:40 次阅读

现代的CPU基本上归为冯诺伊曼结构(也成普林斯顿结构)和哈佛结构。

冯洛伊曼结构就是我们所说的X86架构,而哈佛结构就是ARM架构。一个广泛用于桌面端(台式/笔记本/服务器/工作站等),一个雄踞移动领域,我们的手持设备(平板手机用的大多就是他了)。

01冯·诺依曼体系

冯·诺依曼体系结构图如下

afe8900c-a57e-11eb-aece-12bb97331649.png

冯·诺依曼体系的特点

A、数据与指令都存储在同一存储区中,取指令与取数据利用同一数据总线。

B、被早期大多数计算机所采用。

C、ARM7——冯诺依曼体系结构简单,但速度较慢。取指不能同时取数据

冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。

冯。诺依曼结构处理器具有以下几个特点:

1:必须有一个存储器;

2:必须有一个控制器;3:必须有一个运算器,用于完成算术运算和逻辑运算;4:必须有输入设备和输出设备,用于进行人机通信。另外,程序和数据统一存储并在程序控制下自动工作。冯·诺依曼结构:英特尔公司的8086。英特尔公司的其他中央处理器。ARM的ARM7。MIPS公司的MIPS处理器。

02哈佛体系

哈佛体系结构图

b0122872-a57e-11eb-aece-12bb97331649.png

结构特点:

A、程序存储器与数据存储器分开。

B、提供了较大的存储器带宽,各自有自己的总线。

C、适合于数字信号处理。

D、大多数DSP都是哈佛结构。

E、ARM9是哈佛结构,取指和取数在同一周期进行,提高速度,改进哈佛体系结构分成三个存储区:程序、数据、程序和数据共用。

哈佛结构是一种存储器并行体系结构,主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度。

哈佛结构能基本上解决取指和取数的冲突问题。而对另一个操作数的访问,就只能采用Enhanced哈佛结构了,例如像TI那样,数据区再split,并多一组总线。或向AD那样,采用指令cache,指令区可存放一部分数据。。

哈佛结构:

1、ARM(除arm7)

2、大部分DSP

哈佛体系架构有个致命的弱点在动态加载程序上面,想象我们从外存中读取一段程序然后加载到RAM,这个程序是在数据内存当中的,我们需要一种机制将数据内存再传输到程序内存当中去,这反而增加了设备复杂度。

对于多任务操作系统来说,管理程序内存是一件非常重要的事情,而且仅仅是保护模式下的页面映射等等机制就已经足够复杂了,如果还要求将程序和数据分开管理,复杂度就太高了。这种时候冯诺依曼体系结构就有非常大的优势了。

03arm和哈佛、冯·诺依曼的关系

哈佛架构是针对cpu从cache中取指而言,指令和数据在主存中并未分开,但在加载到cache中的时候被分离为指令和数据两份存储空间,cpu可以同时从cache取到指令和数据。

所以arm系统CPU(除arm7)对外表现为冯。诺伊曼架构,对内则表现为哈佛架构。

04实际芯片制造

实际上,绝大多数现代计算机使用的是所谓的“ModifiedHarvard Architecture”,指令和数据共享同一个address space,但缓存是分开的。可以说是两种架构的一种折中吧。

在现实世界中很少有非常纯粹的概念,特别是在实际的应用里。教科书里的大多是理想化的模型,便于掌握某个概念的重点和本质,但实际中很难达到这种理想化的状态。

哈佛结构和冯诺依曼结构主要区别在是否区分指令与数据。在教科书里这是两种截然不同的做法。

但实际上在内存里,指令和数据是在一起的。而在CPU内的缓存中,还是会区分指令缓存和数据缓存,最终执行的时候,指令和数据是从两个不同的地方出来的。你可以理解为在CPU外部,采用的是冯诺依曼模型,而在CPU内部用的是哈佛结构。

大部分的DSP都没有缓存,因而直接就是哈佛结构。

哈佛结构设计复杂,但效率高。冯诺依曼结构则比较简单,但也比较慢。CPU厂商为了提高处理速度,在CPU内增加了高速缓存。也基于同样的目的,区分了指令缓存和数据缓存。有时为了解决现实问题,究竟是什么主义真的没那么重要。因而个人认为争论到底是哪种结构意义不大。
编辑:lyn

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10794

    浏览量

    210697
  • ARM架构
    +关注

    关注

    14

    文章

    176

    浏览量

    36248
  • X86架构
    +关注

    关注

    8

    文章

    45

    浏览量

    23619

原文标题:STM32属于哈佛结构还是冯诺依曼结构?

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CPU时钟周期与主频的关系和区别

    CPU时钟周期与主频是计算机体系结构中两个紧密相连且至关重要的概念,它们之间既存在关系又有所区别。以下将详细阐述CPU时钟周期与主频的
    的头像 发表于 09-26 15:46 917次阅读

    CPU时钟周期、机器周期和指令周期的关系

    CPU时钟周期、机器周期和指令周期是计算机体系结构中三个紧密相连且至关重要的概念,它们共同构成了CPU执行指令和处理数据的基本时间框架。以下是对这三个周期之间
    的头像 发表于 09-26 15:38 1135次阅读

    RTC和CPU有什么关系

    ,但又相互依赖,共同确保计算机系统的稳定运行和时间的准确同步。本文将从多个角度深入探讨RTC与CPU之间关系,以及它们如何协同工作以提供高效、准确的计算服务。
    的头像 发表于 05-30 17:07 519次阅读

    嵌入式微处理器体系结构 嵌入式微处理器原理与应用

    部组成和相互连接的方式。常见的嵌入式微处理器体系结构主要包括·体系结构
    的头像 发表于 05-04 16:53 2004次阅读

    嵌入式片上系统采用的是结构

    嵌入式片上系统并不一定采用·结构。虽然·
    的头像 发表于 03-28 15:32 414次阅读

    SoC封装结构CPU、GPU封装结构的区别

    SoC封装结构CPU封装结构和GPU封装结构在设计和功能上存在显著的差异,这主要体现在它们的集成度、功能特性和应用场景上。
    的头像 发表于 03-28 14:39 792次阅读

    交换机cpu和交换芯片的关系及区别

    交换机CPU和交换芯片在交换机中各自扮演着重要的角色,并且它们之间存在一定的关系与区别。
    的头像 发表于 03-18 14:06 1507次阅读

    fpga和单片机的区别和联系 fpga和cpu区别

    。FPGA更偏向于硬件电路,其结构是查找表结构,其程序不需要过多考虑芯片的结构,而主要关注时序问题。相比之下,单片机更偏于软件方向,它是一个微控制器,通过加载模块软件来实现某种功能。单片机一般采用
    的头像 发表于 03-14 17:33 991次阅读

    RISC-V 基础学习:RISC-V 基础介绍

    以及计算机由五个部分组成: 运算器 控制器 存储器 输入设备 输出设备 现代计算机发展所遵循的基本结构形式始终是·
    发表于 03-12 10:25

    什么是cpu的主频和外频,它们之间关系如何

    CPU的主频和外频是计算机中两个重要的频率指标,它们分别代表了CPU内部和与外部组件之间的数据传输速率。这两个频率指标之间有着密切的关系,对
    的头像 发表于 02-03 16:50 3497次阅读

    结构体与指针的关系

    在C语言中,结构体(Struct)是一种用户自定义的数据类型,它允许您将不同类型的数据项组合在一起,以便形成一个更复杂的数据结构结构体可以包含多个成员变量,每个成员变量可以是不同的数据类型。而
    的头像 发表于 01-11 08:00 904次阅读
    <b class='flag-5'>结构</b>体与指针的<b class='flag-5'>关系</b>

    FPGA、ASIC、GPU谁是最合适的AI芯片?

    CPU、GPU遵循的是·体系结构,指令要经过存储、译码、执行等步骤,共享内存在使用时,要
    发表于 01-06 11:20 1314次阅读
    FPGA、ASIC、GPU谁是最合适的AI芯片?

    哈佛架构有哪些异同点呢?

    架构是一个计算机硬件的基本模型,它决定了计算机系统的运行方式。计算机架构的三个要素是:中央处理器、记忆单元(存储器)和输入输出接口。
    的头像 发表于 12-11 09:13 971次阅读
    <b class='flag-5'>冯</b><b class='flag-5'>诺</b><b class='flag-5'>依</b><b class='flag-5'>曼</b>和<b class='flag-5'>哈佛</b>架构有哪些异同点呢?

    架构和哈佛架构有何不同

    架构是最常见的计算机体系结构之一,最早由·
    的头像 发表于 12-10 14:10 1168次阅读
    <b class='flag-5'>冯</b><b class='flag-5'>诺</b><b class='flag-5'>依</b><b class='flag-5'>曼</b>架构和<b class='flag-5'>哈佛</b>架构有何不同

    mcu的分类方式有哪些?

    MCU按存储器结构可分为哈佛结构·
    发表于 12-08 11:32 1139次阅读
    mcu的分类方式有哪些?