為什麼電腦還沿用馮 諾伊曼結構而不使用哈佛結構?

時間 2021-05-05 16:19:26

1樓:全金屬外殼

我給學生上課時告訴他們了,有的教材說51是哈佛結構是不對的。這件事情本來很簡單,51只有一套匯流排,它哈佛什麼呢,哈佛的意義在於空間換時間,你最後還是一套匯流排就不具備這個條件,就是為了空間換時間,所以才有超標量計算機。馮諾依曼簡單靈活,可以通過細化流水線,以時間換空間,就產生了超流水線技術。

架構的變化,是應用驅動的,就像早期的SHARC DSP,主頻才40,但有大的資料吞吐,因此在大資料量場合硬剛幾百兆的C5000。要不是為了傅利葉變換,誰會去做軟體硬化?要不是為了縮短研製週期,誰能去硬體軟化?

都是應用驅動,要從這一點上去理解這個問題,那就可以跟容易明白哈佛目前的原因。

2樓:熊起

這個差別其實不太重要,JIT的時候,生成的是資料還是程式?

One man's constant is another man's variable.

3樓:「已登出」

成本,書上的定義自己背,我直接說乙個結論,哈佛結構本質上是用更複雜的電路設計來強行加速的馮諾依曼結構

對於以Mhz級別的微控制器,用一點空間複雜度來交換高速是很划算的對於電腦來說,CPU本身複雜度就已經超級高了,而且速度不算慢,Ghz起步

這種情況下用哈佛結構,複雜的電路設計不能交換到足夠的效能提公升而且電腦CPU往往是多核的,多核結構可以說是一種另類的哈佛結構

4樓:

考慮問題不要這麼簡單嘛,現實中的大部分事情並不是單純符合理論上的某一派的,混合模型很多。

比如現實中處理器結構的cisc與risc混合,

比如聲稱自己姓rt,可能實際姓ya……

5樓:

至於是不是要把位址匯流排和資料匯流排分開其實不重要。我記得xeon有三條ram匯流排,os和硬體協同的好的話可以自動做到哈弗類似的記憶體訪問效果。

6樓:一異

兩者使用環境不一樣啊。

MCU、DSP的程式都是固定的,儲存在ROM裡面;而資料是儲存在RAM裡面的。兩種儲存器物理上就是分開的,各自用乙個單獨的位址空間來訪問很方便啊。

個人計算機、工作站這些,程式是隨時載入的,還可以自行生成程式,程式和資料都是儲存在RAM裡面的。雖然不是不能分開,放到不同的位址空間,但這樣做有啥好處呢?

在電腦裡面,我們無法預先知道我們要執行的軟體,到底需要很大的程式空間,較小的資料空間,或者很大的資料空間,較小的程式空間。如果採用哈佛結構,很可能會出現乙個空間浪費,另乙個空間緊張的情況。採用馮諾依曼結構就不存在這個問題。

而MCU、DSP在一開始設計的時候,我們就能事先知道大概需要多大的程式空間,多大的資料空間。

7樓:

我倒想首先問問:

1,怎麼個高效法?如乙個程式指令數很小,但執行時能產生很多資料,資料儲存塞爆,指令儲存空蕩蕩,叫高效嗎?

2,L1不是就是L1D和L1I分開了嗎?算不算哈佛結構?

8樓:白雲龍

就像現實裡不存在分明的五層網路架構一樣,現在的PC也不是單純的馮諾依曼或哈佛結構……

比如在快取裡,程式和指令還是分開的……

而且哈佛結構也不是全是優點,結構複雜、裝置利用率低,硬體可靠性差,成本高,軟體研發難度大之類的都是問題……

所以哈佛結構更適合應用於高整合度、高效能的裝置。

這也是為什麼CPU晶元內部快取是類似哈佛結構,而CPU與記憶體之間是類似馮諾依曼結構的……

一方面本身CPU對速度、效率有很高的要求;一方面做在同一片SoC上,既降低了雙倍的匯流排的成本,也增加了可靠性;另一方面普通程式研發的時候,幾乎不用管晶元內部排程的問題,那是CPU驅動等一系列軟體的任務,因此軟體研發的難度也被轉移了。

類似的,微控制器等採用哈佛結構其實也是類似的道理……唯一的區別就是需要自行管理兩種記憶體,開發、維護、公升級、移植難度會更大,不過這些晶元多用於專業級、工業級場景,所以也並非不可接受的……

說到底,很多模型只是為了分析問題、學習知識而提出的,它們往往是單純的、簡單的、理想化的。但是落實到實際生產上,往往我們會採取折衷、綜合的方案。

9樓:H.Wang

PC從整體上來看,不管是指令還是資料都是儲存於記憶體中,然後讀入CPU進行執行,這確實是馮諾依曼結構。但是指令和資料進入CPU後,會依次通過L3、L2快取,最後分別進入L1-I和L1-D快取中,因此CPU核心中指令和資料是完全分開走不同匯流排的。

所以說PC外在表現上是馮諾依曼結構,但對於CPU核心來說,是類哈弗結構的。資料、指令雖然共用了相同的位址空間,在CPU外採用同一條匯流排進行傳輸,但在CPU內部又將資料、指令匯流排分開。

10樓:

都有分頁記憶體管理了還糾結什麼哈弗結構有啥意思?

其實一級cache分成指令cache和資料cache就可以看成是採用了哈弗結構的思想。

11樓:

匯流排太多的話pcb板要多幾層。如果64條線再乘以2,pcb板美得不可想象。

別小看pcb佈線,幾G的匯流排那麼多根,排起來學問真不小。

當然8位機問題沒那麼大啦。64位的真是會影響裝置的面積和體積,同時還有cpu的封裝管角

12樓:靈劍

哈佛體系架構有個致命的弱點在動態引導程式上面,想象我們從外存中讀取一段程式然後載入到RAM,這個程式是在資料記憶體當中的,我們需要一種機制將資料記憶體再傳輸到程式記憶體當中去,這反而增加了裝置複雜度。另外,絕對不允許CPU/DSP讀取程式記憶體來當作資料,這也是不現實的,程式一般都有唯讀資料區和靜態資料區,燒寫程式的時候會當作程式的一部分燒進ROM中,想像一下如果為了把程式和資料分開,而需要設定兩塊ROM,再把其中一塊ROM和RAM通過復用器接起來,這是多麼慘烈的景象,更不用說每次燒寫都要分開燒兩塊ROM了。實際上即使是DSP通常也允許從程式記憶體的匯流排上讀取一些資料。

對於多工作業系統來說,管理程式記憶體是一件非常重要的事情,而且僅僅是保護模式下的頁面對映等等機制就已經足夠複雜了,如果還要求將程式和資料分開管理,複雜度就太高了。這種時候馮諾依曼體系結構就有非常大的優勢了。純的(或者接近純的)哈佛結構只用於非常簡單的硬體系統,這種系統當中通常程式完全執行在ROM中,資料幾乎完全儲存於RAM中,這樣的結構足夠簡單。

而要支援多工的處理器通常引入Cache層,在Cache層實現乙個哈佛體系架構,這樣可以兼顧效能和靈活性。

13樓:

因為在現代計算機剛開始發展的時候馮諾依曼架構的影響力更大。

今天被廣泛使用的是改進後的馮諾依曼架構,而非原始的馮諾依曼架構。馮諾依曼本人參與了最初的普林斯頓架構的計算機的設計與製造,此時現代計算機剛起步沒多久,大家還沒有多少設計建造的思路與經驗,處於探索階段。後來的廠商設計製造計算機時很大程度上繼承、參考了諾依曼那幾年的工作和當時製造的機器,順著這個方向一直發展至今。

變動架構對廠商來說成本太高了,即使在今天。

在現代計算機剛起步的時候,哈佛架構遠沒有馮諾依曼架構的影響力大,甚至沒有它在今天的影響力大(因為資訊不夠流通),這點和馮諾依曼本人作為二戰盟軍科技總指揮、學界大拿在戰後的地位也有關。

14樓:六隻正在飛的羊

按照吳軍先生這篇文章《

#文明之光#之#發明365# 第18集馮諾依曼系統結構和電子計算機的發明

》Sina Visitor System來看其實馮諾依曼的核心思想是指令和資料都能從儲存器中讀出…至於是存一塊還是分開,這並不是什麼本質差別

15樓:Azalea Sims

哈佛結構的程式匯流排和資料匯流排分開,馮諾依曼兩者不分開。

CPU執行程式要先把程式和資料讀入記憶體,編過程的同學應該知道,你無法預料到這些程式和資料具體在那個實體地址,而是採用邏輯位址。

PC機執行的程式很多,如果採用哈佛結構,程式匯流排和資料匯流排對應實體地址的切換會耗費更多的資源。而採用一條匯流排來讀,就不存在這個問題。

DSP採用哈佛結構,因為嵌入式應用不需要執行太多的任務。

個人淺見,不對請指正。

16樓:AboveThePencil

現代計算機都是資料 cache 跟指令 cache 分開的,而在晶元外是共享記憶體( 即使現在的多核晶元現在也在共享記憶體 )。

也就是說內部表現為哈佛結構,外部表現為馮諾以曼結構。

至於為何還在使用這種「馮諾以曼」結構,我覺得可能因為這種結構在現在大量採用的「虛擬儲存器」技術下組織起來更方便吧。

17樓:Zhu Jingsi

實際上,絕大多數現代計算機使用的是所謂的「Modified Harvard Architecture」,指令和資料共享同乙個 address space,但快取是分開的。可以說是兩種架構的一種折中吧。

18樓:Cascade

在現實世界中很少有非常純粹的概念,特別是在實際的應用裡。教科書裡的大多是理想化的模型,便於掌握某個概念的重點和本質,但實際中很難達到這種理想化的狀態。

哈佛結構和馮諾依曼結構主要區別在是否區分指令與資料。在教科書裡這是兩種截然不同的做法。

實際上在記憶體裡,指令和資料是在一起的。而在CPU內的快取中,還是會區分指令快取和資料快取,最終執行的時候,指令和資料是從兩個不同的地方出來的。你可以理解為在CPU外部,採用的是馮諾依曼模型,而在CPU內部用的是哈佛結構。

大部分的DSP都沒有快取,因而直接就是哈佛結構。

哈佛結構設計複雜,但效率高。馮諾依曼結構則比較簡單,但也比較慢。CPU廠商為了提高處理速度,在CPU內增加了快取記憶體。

也基於同樣的目的,區分了指令快取和資料快取。有時為了解決現實問題,究竟是什麼主義真的沒那麼重要。因而個人認為爭論到底是哪種結構意義不大。

19樓:加菲貓

因為 PC 市場已經被微軟和 IBM-PC 架構壟斷了。

但是,實際上哈佛結構只不過是「程式」和「儲存」分離,然而記憶體就那個樣子,好比你就插了一條記憶體條,怎麼實現指令和資料分開「同時」讀取呢?cache。現在 intel 的處理器雖說是「CISC」但是也應用了大量的RISC思想。

當今的處理器速度已經如此高,intel有很長的流水線,如果指令和資料還不分開同時讀取這會極大的影響流水線的效率。所以在流水線設計中有多個cache,而資料和指令一般會同時快取進Cache,這樣在處理器流水線作業時其實也有哈佛結構的影子。

界限我說不好是什麼樣子,就像RISC 和 CISC 應該沒有一道絕對的牆把它們區別開。

參考 intel 處理器體系結構的發展。

為什麼女性結完婚要在對方父母家住,為什麼還覺得是天經地義的事情?

萬磊 現在有很多出來單過的呀,這個要因人而異,因條件而異,只要是孝順雙方父母,怎麼過不是問題,但是現在很多問題解決不了,比如不跟父母共同生活,照顧下一代成為問題,不好解決,如果父母年紀大,或者父母一人已經離世,那麼分開居住也不方便照顧,我覺得題主不要對與父母共同生活有太大的牴觸,將心比心就可以了,如...

為什麼電腦連線的是wifi特別慢還總是掉?

colbert 首先查一下同一房間用手機連wifi速度怎麼樣?可以查出WiFi的問題還是電腦的問題。如果手機也慢的話,在排除線路問題外,請將路由器的頻道改一下,懷疑是頻道干擾。 您這為什麼比較難回答,資訊太少了。首先多大房子,隔多少面牆,電腦是什麼樣的網絡卡是筆記本還是台式外接網絡卡?在深入一些周圍...

為什麼戴爾電腦老是要更新,開機還老是黑屏?

堅哥 筆記本開機黑屏常見的硬體原因有三種,1.顯示卡故障 很多情況下是由顯示卡原因所引起的,這個最讓人頭疼的一種黑屏原因。故障表現是開機黑屏,有時可以開機,在執行中花屏 宕機。有的機型會像台式電腦一樣伴有一長兩短的報警聲。顯示卡故障有以下幾種 1 筆記本開機之後出現1長2短的提示音,那基本可以確定是...