小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

為什么個(gè)人電腦還沿用馮·諾伊曼結(jié)構(gòu)而不使用哈佛結(jié)構(gòu)?

 pgl147258 2015-01-27

【Cascade的回答(60票)】:

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

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

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

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

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

【加菲貓的回答(7票)】:

因?yàn)?PC 市場(chǎng)已經(jīng)被 微軟 和 IBM-PC 架構(gòu)壟斷了。

但是,實(shí)際上 哈佛結(jié)構(gòu)只不過是“程序”和“存儲(chǔ)”分離,然而內(nèi)存就那個(gè)樣子,好比你就插了一條內(nèi)存條,怎么實(shí)現(xiàn)指令和數(shù)據(jù)分開“同時(shí)”讀取呢?cache。現(xiàn)在 intel 的處理器雖說是“CISC”但是也應(yīng)用了大量的RISC思想。當(dāng)今的處理器速度已經(jīng)如此高,intel有很長的流水線,如果指令和數(shù)據(jù)還不分開同時(shí)讀取這會(huì)極大的影響流水線的效率。所以在流水線設(shè)計(jì)中有多個(gè)cache,而數(shù)據(jù)和指令一般會(huì)同時(shí)緩存進(jìn)Cache,這樣在處理器流水線作業(yè)時(shí)其實(shí)也有哈佛結(jié)構(gòu)的影子。

界限我說不好是什么樣子,就像RISC 和 CISC 應(yīng)該沒有一道絕對(duì)的墻把它們區(qū)別開。

參考 intel 處理器體系結(jié)構(gòu)的發(fā)展。

【ZhuJingsi的回答(6票)】:

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

【知乎用戶的回答(2票)】:

排名第一的答案已經(jīng)說的很好了,但是那是側(cè)重于從技術(shù)角度。

從另一個(gè)角度來看,計(jì)算機(jī)自大規(guī)模生產(chǎn)以來,不管是wintel系列還是apple血統(tǒng),到如今都已經(jīng)發(fā)展成為高度系統(tǒng)化的產(chǎn)業(yè)鏈,有人做操作系統(tǒng),相應(yīng)的就有人在這個(gè)系統(tǒng)上做軟件,有人做芯片,相應(yīng)的就有人基于這些芯片做外設(shè),于是這個(gè)問題就不僅僅是一個(gè)人或者幾個(gè)人能決定的了,因?yàn)樯婕暗搅烁鱾€(gè)方面很多人的利益。

順著題主的思路我想到兩個(gè)可能,第一是摩爾定律受到硅片本身的物理結(jié)構(gòu)限制,當(dāng)人類的技術(shù)水平在同一塊硅片上再做不出更大規(guī)模的集成電路時(shí),人們就不得不采用更優(yōu)化的系統(tǒng)結(jié)構(gòu),比如近些年出現(xiàn)很多對(duì)量子計(jì)算機(jī)模型的討論。第二是受政治力量的影響,比如說我們要和美國開戰(zhàn),絕對(duì)不能用intel處理器跑windows系統(tǒng)去控制導(dǎo)彈發(fā)射(龍芯+紅旗?)當(dāng)然這個(gè)有點(diǎn)跑題了,已經(jīng)不是大規(guī)模民用范疇了。

【阿牧的回答(0票)】:

我覺得是計(jì)算機(jī)軟件硬件系列決定的,更改結(jié)構(gòu)會(huì)讓之前的軟硬件難以移植和通用。

【知乎用戶的回答(0票)】:

存儲(chǔ)的時(shí)候很難分清一段代碼是數(shù)據(jù)還是指令。比如現(xiàn)在python、ruby這種解釋性語言,他們都是用最原始的字符串存儲(chǔ)的。所以實(shí)際上代碼什么的都是被當(dāng)做普通的數(shù)據(jù)存在文件系統(tǒng)里。只有到了執(zhí)行,階段,OS可以明確的知道哪部分是交給CPU去執(zhí)行的指令,哪部分是數(shù)據(jù),才會(huì)有區(qū)分。這里的區(qū)分主要是cache的區(qū)分,因?yàn)閐ata和instruction的locality不同,所以他們的cache的設(shè)計(jì)有所不同。

【GothicMoron的回答(0票)】:

現(xiàn)代計(jì)算機(jī)都是數(shù)據(jù) cache 跟指令 cache 分開的,而在芯片外是共享內(nèi)存( 即使現(xiàn)在的多核芯片現(xiàn)在也在共享內(nèi)存 )。

也就是說內(nèi)部表現(xiàn)為哈佛結(jié)構(gòu),外部表現(xiàn)為馮諾以曼結(jié)構(gòu)。

至于為何還在使用這種「馮諾以曼」結(jié)構(gòu),我覺得可能因?yàn)檫@種結(jié)構(gòu)在現(xiàn)在大量采用的「虛擬存儲(chǔ)器」技術(shù)下組織起來更方便吧。

原文地址:知乎

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多