參考資料:
全面理解馮諾依曼結構和哈佛結構
CPU采用的是哈佛結構還是馮諾依曼結構?
0. 前言
哈佛結構和馮諾依曼結構都是針對于CPU來說的,
1. 馮諾依曼結構
馮諾伊曼結構又稱為普林斯頓體系結構,是一種將程式存盤器和資料存盤器合并在一起的處理器架構設計,使用同一個存盤器,經由同一個總線傳輸,由于取指令和存取資料要從同一個存盤空間存取,并經同一總線傳輸,無法重疊執行,只能step by step,因此影響了資料處理速度的提高,馮諾伊曼結構處理器具有以下特點:
-
必須有一個存盤器;
-
必須有一個控制器;
-
必須有一個運算器(算術運算與邏輯運算);
-
必須有輸入輸出設備(人機通信),


馮諾依曼結構中不獨立區分程式和資料空間,處理器只有一套總線,即程式和資料空間共用地址和資料總線,取指令和取資料不能同時進行,
早期的微處理器大多采用馮·諾依曼結構,如:英特爾公司的8086,英特爾公司的其他中央處理器,ARM的ARM7,MIPS公司的MIPS處理器,其中,典型代表是Intel公司的X86微處理器,廣泛用于桌面端(臺式/筆記本/服務器/作業站等),
2. 哈佛結構
哈佛結構是一種將程式指令存盤和資料存盤分開的存盤器結構,資料和指令的儲存可以同時進行,可以使指令和資料有不同的資料寬度,例如Microchip公司的PIC16芯片的程式指令是14位寬度,而資料是8位寬度,哈佛結構處理器具有如下特點:
- 程式存盤器與資料存盤器分開,
- 提供了較大的存盤器帶寬,各自有自己的總線,
- 適合于數字信號處理,


哈佛結構的出現是為了減輕程式運行時的訪存瓶頸,哈佛架構的微處理器通常具有較高的執行效率,其程式指令和資料指令分開組織和儲存的,執行時可以預先讀取下一條指令,
哈佛結構中程式空間和資料空間是獨立的,具有各自獨立的地址線和資料總線,即處理器有兩套總線,一套是程式存盤器的資料和地址總線,一套是資料存盤器的資料和地址總線,取址和取資料能并發進行,
目前使用哈佛架構的中央處理器和微控制器有很多,有 Microchip公司的PIC系列芯片、摩托羅拉公司的MC68系列、Zilog公司的Z8系列、Atmel公司的AVR系列和ARM公司的ARM9、ARM10和ARM11,自ARM11以后,ARM公司的內核均以Cortex命名,
3. 改進的哈佛結構
改進的哈佛結構使用兩個獨立的存盤器模塊(程式存盤器和資料存盤器),處理器只有一套總線,分時訪問程式存盤器和資料存盤器,但是在處理器中有指令cache和資料cache將程式和資料分開(馮諾依曼結構中沒有指令cache和資料cache),所以處理器仍然可以并步執行取指令和取資料,從這點看處理器仍然屬于哈佛結構,
改進型哈佛結構是在普通哈佛結構的基礎上加上獨立的緩沖區cache, 雖然處理器只有一套總線,但由于cache的存在,CPU直接訪問的是cache,而cache又分為指令cache和資料cache,這兩個cache是獨立的,所以可以同時訪問指令和資料,也就是說能夠并行運行,
從ARM9開始以后所有的ARM處理器內核都是改進型的哈佛結構,
4. 總結
哈佛結構和馮諾依曼結構的主要區別就是處理器能不能實作取指令和取資料的并發進行,程式空間和資料空間是否是一體,
- 馮·諾依曼結構:馮·諾依曼結構中,取指令與取運算元都在同一條總線上,總線結構簡單,所以成本也低,早期該結構的處理器能迅速搶占市場,但也是因為取指令與取運算元都在同一條總線上,只能通過分時復用進行,所以在高速運行時,不能達到同時取指令與取運算元,從而造成傳輸程序的瓶頸,
- 哈佛結構:哈佛結構具有復雜而又強大的總線結構,其芯片內部程式空間和資料空間是分開的,可以同時取指令與取運算元,資料吞吐率高,運算速度更快,但是設計實作復雜,成本較高,
- 改進型的哈佛結構:改進型的哈佛結構結合了兩者的長處,將其融合到一起,實作了優化,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/290484.html
標籤:其他
