0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CPU采用的是哈佛結(jié)構(gòu)還是馮諾依曼結(jié)構(gòu)?

GReq_mcu168 ? 來(lái)源:知曉編程 ? 作者:Firefly ? 2021-04-25 16:45 ? 次閱讀

現(xiàn)代的CPU基本上歸為馮諾伊曼結(jié)構(gòu)(也成普林斯頓結(jié)構(gòu))和哈佛結(jié)構(gòu)。

馮洛伊曼結(jié)構(gòu)就是我們所說(shuō)的X86架構(gòu),而哈佛結(jié)構(gòu)就是ARM架構(gòu)。一個(gè)廣泛用于桌面端(臺(tái)式/筆記本/服務(wù)器/工作站等),一個(gè)雄踞移動(dòng)領(lǐng)域,我們的手持設(shè)備(平板手機(jī)用的大多就是他了)。

01馮·諾依曼體系

馮·諾依曼體系結(jié)構(gòu)圖如下

233c223c-a4ba-11eb-aece-12bb97331649.png

馮·諾依曼體系的特點(diǎn):

A、數(shù)據(jù)與指令都存儲(chǔ)在同一存儲(chǔ)區(qū)中,取指令與取數(shù)據(jù)利用同一數(shù)據(jù)總線。

B、被早期大多數(shù)計(jì)算機(jī)所采用。

C、ARM7——馮諾依曼體系結(jié)構(gòu)簡(jiǎn)單,但速度較慢。取指不能同時(shí)取數(shù)據(jù)

馮·諾依曼結(jié)構(gòu)也稱(chēng)普林斯頓結(jié)構(gòu),是一種將程序指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器合并在一起的存儲(chǔ)器結(jié)構(gòu)。程序指令存儲(chǔ)地址和數(shù)據(jù)存儲(chǔ)地址指向同一個(gè)存儲(chǔ)器的不同物理位置,因此程序指令和數(shù)據(jù)的寬度相同,如英特爾公司的8086中央處理器的程序指令和數(shù)據(jù)都是16位寬。

馮。諾依曼結(jié)構(gòu)處理器具有以下幾個(gè)特點(diǎn):

1:必須有一個(gè)存儲(chǔ)器;

2:必須有一個(gè)控制器;3:必須有一個(gè)運(yùn)算器,用于完成算術(shù)運(yùn)算和邏輯運(yùn)算;4:必須有輸入設(shè)備和輸出設(shè)備,用于進(jìn)行人機(jī)通信。另外,程序和數(shù)據(jù)統(tǒng)一存儲(chǔ)并在程序控制下自動(dòng)工作。馮·諾依曼結(jié)構(gòu):英特爾公司的8086。英特爾公司的其他中央處理器。ARM的ARM7。MIPS公司的MIPS處理器。

02哈佛體系

哈佛體系結(jié)構(gòu)圖

23740fa8-a4ba-11eb-aece-12bb97331649.png

結(jié)構(gòu)特點(diǎn):

A、程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器分開(kāi)。

B、提供了較大的存儲(chǔ)器帶寬,各自有自己的總線。

C、適合于數(shù)字信號(hào)處理。

D、大多數(shù)DSP都是哈佛結(jié)構(gòu)。

E、ARM9是哈佛結(jié)構(gòu),取指和取數(shù)在同一周期進(jìn)行,提高速度,改進(jìn)哈佛體系結(jié)構(gòu)分成三個(gè)存儲(chǔ)區(qū):程序、數(shù)據(jù)、程序和數(shù)據(jù)共用。

哈佛結(jié)構(gòu)是一種存儲(chǔ)器并行體系結(jié)構(gòu),主要特點(diǎn)是將程序和數(shù)據(jù)存儲(chǔ)在不同的存儲(chǔ)空間中,即程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器是兩個(gè)獨(dú)立的存儲(chǔ)器,每個(gè)存儲(chǔ)器獨(dú)立編址、獨(dú)立訪問(wèn)。程序指令存儲(chǔ)和數(shù)據(jù)存儲(chǔ)分開(kāi),可以使指令和數(shù)據(jù)有不同的數(shù)據(jù)寬度。

哈佛結(jié)構(gòu)能基本上解決取指和取數(shù)的沖突問(wèn)題。而對(duì)另一個(gè)操作數(shù)的訪問(wèn),就只能采用Enhanced哈佛結(jié)構(gòu)了,例如像TI那樣,數(shù)據(jù)區(qū)再split,并多一組總線?;蛳?a target="_blank">AD那樣,采用指令cache,指令區(qū)可存放一部分?jǐn)?shù)據(jù)。。

哈佛結(jié)構(gòu):

1、ARM(除arm7)

2、大部分DSP

哈佛體系架構(gòu)有個(gè)致命的弱點(diǎn)在動(dòng)態(tài)加載程序上面,想象我們從外存中讀取一段程序然后加載到RAM,這個(gè)程序是在數(shù)據(jù)內(nèi)存當(dāng)中的,我們需要一種機(jī)制將數(shù)據(jù)內(nèi)存再傳輸?shù)匠绦騼?nèi)存當(dāng)中去,這反而增加了設(shè)備復(fù)雜度。

對(duì)于多任務(wù)操作系統(tǒng)來(lái)說(shuō),管理程序內(nèi)存是一件非常重要的事情,而且僅僅是保護(hù)模式下的頁(yè)面映射等等機(jī)制就已經(jīng)足夠復(fù)雜了,如果還要求將程序和數(shù)據(jù)分開(kāi)管理,復(fù)雜度就太高了。這種時(shí)候馮諾依曼體系結(jié)構(gòu)就有非常大的優(yōu)勢(shì)了。

03arm和哈佛、馮·諾依曼的關(guān)系

哈佛架構(gòu)是針對(duì)cpu從cache中取指而言,指令和數(shù)據(jù)在主存中并未分開(kāi),但在加載到cache中的時(shí)候被分離為指令和數(shù)據(jù)兩份存儲(chǔ)空間,cpu可以同時(shí)從cache取到指令和數(shù)據(jù)。

所以arm系統(tǒng)CPU(除arm7)對(duì)外表現(xiàn)為馮。諾伊曼架構(gòu),對(duì)內(nèi)則表現(xiàn)為哈佛架構(gòu)。

04實(shí)際芯片制造

實(shí)際上,絕大多數(shù)現(xiàn)代計(jì)算機(jī)使用的是所謂的“ModifiedHarvard Architecture”,指令和數(shù)據(jù)共享同一個(gè)address space,但緩存是分開(kāi)的??梢哉f(shuō)是兩種架構(gòu)的一種折中吧。

在現(xiàn)實(shí)世界中很少有非常純粹的概念,特別是在實(shí)際的應(yīng)用里。教科書(shū)里的大多是理想化的模型,便于掌握某個(gè)概念的重點(diǎn)和本質(zhì),但實(shí)際中很難達(dá)到這種理想化的狀態(tài)。

哈佛結(jié)構(gòu)和馮諾依曼結(jié)構(gòu)主要區(qū)別在是否區(qū)分指令與數(shù)據(jù)。在教科書(shū)里這是兩種截然不同的做法。

但實(shí)際上在內(nèi)存里,指令和數(shù)據(jù)是在一起的。而在CPU內(nèi)的緩存中,還是會(huì)區(qū)分指令緩存和數(shù)據(jù)緩存,最終執(zhí)行的時(shí)候,指令和數(shù)據(jù)是從兩個(gè)不同的地方出來(lái)的。你可以理解為在CPU外部,采用的是馮諾依曼模型,而在CPU內(nèi)部用的是哈佛結(jié)構(gòu)。

大部分的DSP都沒(méi)有緩存,因而直接就是哈佛結(jié)構(gòu)。

哈佛結(jié)構(gòu)設(shè)計(jì)復(fù)雜,但效率高。馮諾依曼結(jié)構(gòu)則比較簡(jiǎn)單,但也比較慢。CPU廠商為了提高處理速度,在CPU內(nèi)增加了高速緩存。也基于同樣的目的,區(qū)分了指令緩存和數(shù)據(jù)緩存。有時(shí)為了解決現(xiàn)實(shí)問(wèn)題,究竟是什么主義真的沒(méi)那么重要。因而個(gè)人認(rèn)為爭(zhēng)論到底是哪種結(jié)構(gòu)意義不大。

原文標(biāo)題:STM32屬于哈佛結(jié)構(gòu)還是馮諾依曼結(jié)構(gòu)?

文章出處:【微信公眾號(hào):玩轉(zhuǎn)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10863

    瀏覽量

    211797
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10900

    瀏覽量

    356091

原文標(biāo)題:STM32屬于哈佛結(jié)構(gòu)還是馮諾依曼結(jié)構(gòu)?

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ADS7953的GPIO作為輸出時(shí)是push-pull結(jié)構(gòu)還是Open drain結(jié)構(gòu)?

    請(qǐng)問(wèn)一下,ADS7953的GPIO作為輸出時(shí)是push-pull結(jié)構(gòu)還是Open drain結(jié)構(gòu)
    發(fā)表于 11-29 12:16

    自動(dòng)駕駛?cè)笾髁餍酒軜?gòu)分析

    ,但是在AI應(yīng)用領(lǐng)域也是必不可少。GPU方案GPU與CPU的架構(gòu)對(duì)比CPU遵循的是·架構(gòu)
    的頭像 發(fā)表于 08-19 17:11 ?1633次閱讀
    自動(dòng)駕駛?cè)笾髁餍酒軜?gòu)分析

    高效能計(jì)算機(jī)公司立誓一年構(gòu)建全新技術(shù)棧,以全新架構(gòu)改變計(jì)算方式

    該公司的創(chuàng)始人兼首席執(zhí)行官布蘭登·露西亞表示:當(dāng)今的計(jì)算機(jī)效率低下,主流的-處理器設(shè)計(jì)浪費(fèi)了99%的能源。他強(qiáng)調(diào),這種低效已經(jīng)深入到設(shè)計(jì)之中。
    的頭像 發(fā)表于 05-23 11:56 ?315次閱讀

    子vi中使用事件結(jié)構(gòu)

    我在子vi中用引用的方式使用了事件結(jié)構(gòu),在主vi中同樣使用了事件結(jié)構(gòu),子vi事件能夠正常運(yùn)行,而主vi觸發(fā)事件就會(huì)卡死。當(dāng)然,我們應(yīng)該盡量避免一個(gè)vi里出現(xiàn)多個(gè)事件結(jié)構(gòu),但是為了實(shí)現(xiàn)封裝我又貌似不得不
    發(fā)表于 05-13 16:10

    高性能計(jì)算的原理與實(shí)踐:從基本概念到架構(gòu)解析

    。從那時(shí)起,高性能計(jì)算就開(kāi)始了它的發(fā)展歷程,經(jīng)歷了多個(gè)階段和變革,如·結(jié)構(gòu)、并行處理器、超級(jí)計(jì)算機(jī)、集群系統(tǒng)、云計(jì)算平臺(tái)等。目標(biāo):解
    的頭像 發(fā)表于 05-11 08:27 ?502次閱讀
    高性能計(jì)算的原理與實(shí)踐:從基本概念到架構(gòu)解析

    嵌入式微處理器體系結(jié)構(gòu) 嵌入式微處理器原理與應(yīng)用

    部組成和相互連接的方式。常見(jiàn)的嵌入式微處理器體系結(jié)構(gòu)主要包括·體系結(jié)構(gòu)、
    的頭像 發(fā)表于 05-04 16:53 ?2238次閱讀

    嵌入式片上系統(tǒng)采用的是結(jié)構(gòu)

    嵌入式片上系統(tǒng)并不一定采用·結(jié)構(gòu)。雖然·
    的頭像 發(fā)表于 03-28 15:32 ?463次閱讀

    SoC封裝結(jié)構(gòu)CPU、GPU封裝結(jié)構(gòu)的區(qū)別

    SoC封裝結(jié)構(gòu)、CPU封裝結(jié)構(gòu)和GPU封裝結(jié)構(gòu)在設(shè)計(jì)和功能上存在顯著的差異,這主要體現(xiàn)在它們的集成度、功能特性和應(yīng)用場(chǎng)景上。
    的頭像 發(fā)表于 03-28 14:39 ?958次閱讀

    FPGA與MCU的區(qū)別

    FPGA和單片機(jī) (MCU)的區(qū)別 結(jié)構(gòu)上的區(qū)別 單片機(jī)(MCU)是一種微處理器,類(lèi)似于電腦CPU的,它一般采用的是哈佛總線結(jié)構(gòu),或者
    發(fā)表于 03-16 07:14

    fpga和單片機(jī)的區(qū)別和聯(lián)系 fpga和cpu區(qū)別

    。FPGA更偏向于硬件電路,其結(jié)構(gòu)是查找表結(jié)構(gòu),其程序不需要過(guò)多考慮芯片的結(jié)構(gòu),而主要關(guān)注時(shí)序問(wèn)題。相比之下,單片機(jī)更偏于軟件方向,它是一個(gè)微控制器,通過(guò)加載模塊軟件來(lái)實(shí)現(xiàn)某種功能。單片機(jī)一般
    的頭像 發(fā)表于 03-14 17:33 ?1132次閱讀

    RISC-V 基礎(chǔ)學(xué)習(xí):RISC-V 基礎(chǔ)介紹

    以及計(jì)算機(jī)由五個(gè)部分組成: 運(yùn)算器 控制器 存儲(chǔ)器 輸入設(shè)備 輸出設(shè)備 現(xiàn)代計(jì)算機(jī)發(fā)展所遵循的基本結(jié)構(gòu)形式始終是·機(jī)
    發(fā)表于 03-12 10:25

    什么是結(jié)構(gòu)光?結(jié)構(gòu)光的測(cè)量原理

    結(jié)構(gòu)光測(cè)量屬于主動(dòng)光學(xué)測(cè)量,通常以某種形狀的結(jié)構(gòu)光投射到物體表面,通過(guò)檢測(cè)結(jié)構(gòu)光偏移距離得到物體的三維信息。通常的結(jié)構(gòu)光光源有激光和投影儀投射光,激光光源具有高亮度和良好的方向性,是一
    發(fā)表于 03-07 13:58 ?7100次閱讀
    什么是<b class='flag-5'>結(jié)構(gòu)</b>光?<b class='flag-5'>結(jié)構(gòu)</b>光的測(cè)量原理

    從潮汐架構(gòu)和安第斯大模型,看智能手機(jī)的未來(lái)演進(jìn)

    手機(jī)和普通PC一樣,也是遵照著名的·架構(gòu)進(jìn)行工作。這種架構(gòu),屬于存算分離。運(yùn)算單元負(fù)責(zé)計(jì)算,存儲(chǔ)器負(fù)責(zé)存儲(chǔ)。計(jì)算時(shí),需要先將數(shù)據(jù)從存儲(chǔ)器調(diào)用到運(yùn)算單元,完成計(jì)算后,再送回存儲(chǔ)器
    的頭像 發(fā)表于 01-30 16:22 ?836次閱讀
    從潮汐架構(gòu)和安第斯大模型,看智能手機(jī)的未來(lái)演進(jìn)

    經(jīng)典 C 語(yǔ)言編程,結(jié)構(gòu)體和聯(lián)合體如何共用?

    結(jié)構(gòu)結(jié)構(gòu)體占用的內(nèi)存大小,首先和編譯器的系統(tǒng)位數(shù)有關(guān)系,類(lèi)似于CPU是 64 bits 還是 32 bits 的情形;其次,結(jié)構(gòu)體需要考
    的頭像 發(fā)表于 01-11 18:24 ?1378次閱讀
    經(jīng)典 C 語(yǔ)言編程,<b class='flag-5'>結(jié)構(gòu)</b>體和聯(lián)合體如何共用?

    FPGA、ASIC、GPU誰(shuí)是最合適的AI芯片?

    CPU、GPU遵循的是·體系結(jié)構(gòu),指令要經(jīng)過(guò)存儲(chǔ)、譯碼、執(zhí)行等步驟,共享內(nèi)存在使用時(shí),要
    發(fā)表于 01-06 11:20 ?1663次閱讀
    FPGA、ASIC、GPU誰(shuí)是最合適的AI芯片?