1. 程式人生 > >CPU的哈佛結構和馮諾依曼結構

CPU的哈佛結構和馮諾依曼結構

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

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

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

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

哈佛結構設計複雜,但效率高。馮諾依曼結構則比較簡單,但也比較慢。CPU廠商為了提高處理速度,在CPU內增加了快取記憶體。也基於同樣的目的,區分了指令快取和資料快取。有時為了解決現實問題,究竟是什麼主義真的沒那麼重要。因而個人認為爭論到底是哪種結構意義不大。

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

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

但是,實際上 哈佛結構只不過是“程式”和“儲存”分離,然而記憶體就那個樣子,好比你就插了一條記憶體條,怎麼實現指令和資料分開“同時”讀取呢?cache。現在 intel 的處理器雖說是“CISC”但是也應用了大量的RISC思想。當今的處理器速度已經如此高,intel有很長的流水線,如果指令和資料還不分開同時讀取這會極大的影響流水線的效率。所以在流水線設計中有多個cache,而資料和指令一般會同時快取進Cache,這樣在處理器流水線作業時其實也有哈佛結構的影子。