二者的區別就是程序空間和數據空間是否是一體的,馮·諾依曼結構數據空間和地址空間是不分開的,而哈佛結構數據空間和地址空間是分開的。
早起的微處理器大多采用馮·諾依曼結構,最典型的就是intel的x86微處理器,取指令和取操作數都是在同一總線上,通過分時復用的方式進行,優點是硬件簡單,但是缺點是在告訴運行時,不能達到同時取指令和取操作數,從而會形成傳輸過程的瓶頸。
而哈佛總線技術的應用是以DSP和ARM為代表的,采用哈佛總線體系結構的芯片內部程序空間和數據空間是分開的,在硬件上也是分開的,這就允許同時取指令和取操作數,也就是比馮結構快一步,從而大大提高運算能力,例如最常見的運算中,一條指令同時可以取兩個操作數,在流水線處理時,同時還有一個取指令操作,馮式結構就需要先取指令,再取操作數,而哈佛結構則允許同時運行,取指令同時,直接取操作數,而且可以取完操作數后,直接取下一條指令,這樣不會出現取指令和取操作數重疊執行的情況,效率大大提高。
馮·諾依曼指令時序如下:
哈佛體系指令時序如下: