哈佛結構
哈佛結構是一種將程序指令存儲和數據存儲分開的存儲器結構,目的是為了減輕程序運行時的訪存瓶頸.
哈佛結構
程序特點是 程序 和 數據 存儲在不同的存儲空間中
-
結構: 程序存儲器和數據存儲器是兩個獨立的存儲器,每個存儲器相對應的是系統的四條總線(程序的數據總線/地址總線 數據的數據總線/地址總線).
-
過程: 中央單片機首先到程序指令存儲器中讀取程序指令內容,解碼后得到數據地址,再到相應的數據存儲器中讀取數據,進行下一步操作(通常是執行).
-
分析: 這種分離的程序總線和數據總線可允許在同一機器周期內同時獲得指令字(來自程序存儲器)和操作數(來自數據存儲器),程序和數據存儲在兩個分開的物理空間中,取址和執行能完全重疊,執行時可以預先讀取下一條指令,提高了執行速度,進而提高了數據的吞吐率.
-
補充: 程序指令存儲和數據存儲分開,可以使指令和數據有不同的數據寬度.
哈佛結構能基本上解決取指和取數的沖突問題,而對於一條指令同時取兩個操作數的情況可以有以下對策:
-
數據區再區分:
-
采用指令cache:
改進的哈佛結構
- 哈佛結構原有特點:使用兩個獨立的存儲器模塊,分別存儲指令和數據,每個存儲模塊都不允許指令和數據並存,以便實現並行處理;
- 改進的部分:具有一條獨立的地址總線和一條獨立的數據總線,兩條總線由程序存儲器和數據存儲器分時共用.
利用地址總線訪問兩個存儲模塊(程序存儲模塊和數據表存儲模塊)
公用的數據總線用來完成程序存儲或數據存儲模塊與CPU之間的數據傳輸