哈佛結構
將指令和數據分開的存儲器結構
哈佛結構是一種將程序指令存儲和數據存儲分開的存儲器結構。哈佛結構是一種并行體系結構,它的主要特點是將程序和數據存儲在不同的存儲空間中,即程序存儲器和數據存儲器是兩個獨立的存儲器,每個存儲器獨立編址、獨立訪問。
哈佛結構
哈佛結構的計算機由CPU、程序存儲器和數據存儲器組成,程序存儲器和數據存儲器採用不同的匯流排,從而提供了較大的存儲器帶寬,使數據的移動和交換更加方便,尤其提供了較高的數字信號處理性能。
哈佛結構的微處理器通常具有較高的執行效率。其程序指令和數據指令分開組織和存儲的,執行時可以預先讀取下一條指令。
哈佛結構是指程序和數據空間獨立的體系結構,目的是為了減輕程序運行時的訪存瓶頸。
例如最常見的卷積運算中,一條指令同時取兩個操作數,在流水線處理時,同時還有一個取址操作,如果程序和數據通過同一條匯流排訪問,取址和取數必會產生衝突,而這對大運算量的循環的執行效率是很不利的。
哈佛結構能基本上解決取址和取數的衝突問題。而對另一個操作數的訪問,就只能採用Enhanced 哈佛結構了,例如像TI那樣,數據區再split,並多一組匯流排。或向AD 那樣,採用指令cache,指令區可存放一部分數據。
哈佛結構與馮·諾依曼結構處理器相比,處理器有兩個明顯的特點:使用兩個獨立的存儲器模塊,分別存儲指令和數據,每個存儲模塊都不允許指令和數據並存;使用獨立的兩條匯流排,分別作為CPU與每個存儲器之間的專用通信路徑,而這兩條匯流排之間毫無關聯。
改進的哈佛結構,其結構特點為:
使用兩個獨立的存儲器模塊,分別存儲指令和數據,每個存儲模塊都不允許指令和數據並存,以便實現并行處理;具有一條獨立的地址匯流排和一條獨立的數據匯流排,利用公用地址匯流排訪問兩個存儲模塊(程序存儲模塊和數據存儲模塊),公用數據匯流排則被用來完成程序存儲模塊或數據存儲模塊與CPU之間的數據傳輸;兩條匯流排由程序存儲器和數據存儲器分時共用。