馮諾依曼體系結構與哈弗體系結構


馮·諾依曼結構(von Neumann architecture)

  馮·諾依曼結構也稱作普林斯頓結構,是一種將程序(指令序列的集合)和數據存放在同一存儲器的不同地址的電腦設計概念結構。這是建立在馮·諾依曼原理,即程序可看做一種特殊的“數據”,同樣地可以被處理和存儲,故兩者可存放在同一存儲器中,采用單一的地址總線和數據總線。

特點:

第一,程序和數據存放在同一存儲器的不同地址上;

第二,存儲單元線性排列,且其位數固定;

第三,順序執行,即程序/數據—>內存—>取指令執行指令;

  順序執行程序。執行前,將需要的程序和數據先放入存儲器(PC為內存)。當執行時把要執行的程序和要處理的數據按順序從存儲器中取出指令一條一條地執行,稱作順序執行程序。

第四,組成上有運算器,存儲器,控制器,輸入/輸出設備。如下圖:

  馮·諾依曼體系結構的特點決定了它可以最大限度地利用資源。怎么理解呢?你數據和程序放在同一個地方,不用花銷太多的資源就能取到數據和程序。這也算是馮氏結構的一大優點吧。可是由於程序和數據存放在同一存儲區,存取程序和數據間時共享同一總線,導致了馮·諾依曼瓶頸。

 

哈佛結構

  與馮氏結構相對的是哈佛結構,即將程序和數據分開存儲的結構。其過程CPU首先到程序指令儲存器中讀取程序指令內容,解碼后得到數據地址,再到相應的數據儲存器中讀取數據,並進行下一步的操作(通常是執行)。程序指令儲存和數據儲存分開,數據和指令的儲存可以同時進行,可以使指令和數據有不同的數據寬度。如下圖:

  聯系馮氏結構的瓶頸,我們很快能想到哈佛結構能夠完成指令和數據的並發操作,減輕了程序運行時的訪存瓶頸,也就是提高吞吐量,是一種並行結構;而馮氏結構只能是順序操作,是一種串行的處理方式。原始的馮·諾依曼體系結構,通過引入流水線技術(Pipeline)提高吞吐量。

  流水線技術與並行處理有所區別,流水線是在順序指令流計算機中實現處理時間重疊的技術。流水線的並行處理是指完成對一條指令的不同操作(取指令、解碼指令、執行指令)的各個部件在時間上是可以同時重疊工作(三級流水線)。CPU是按照取指令、解碼指令、執行指令來完成一條指令的操作,當CPU取完第一條指令后,接着解碼第一條指令,同時CPU取第二條指令,該步完成后,CPU執行第一條指令,同時解碼第二條指令、取第三條指令,如此重疊操作。

  因此,各部件同時處理是針對不同指令而言的,各部件分別同時為多條指令的不同部分(step、stage)進行工作,以提高各部件的利用率來提高指令的平均執行速度。但是這樣雖然提高了系統的速率,由於流水線結構使得不容易計算程序運行的時間,對一些時序要求很嚴的情況,該結構還是存有弊端的。所以在一些實時性很強的嵌入式系統采用哈佛結構可以高速數據處理,同時讀取指令和數據,大大提高了數據吞吐率,保證了系統的可靠性。

 

http://www.weboch.com.cn/ARM/neumann-harvard.asp

http://blog.csdn.net/souljaven/article/details/47667831?locationNum=3&fps=1


 

關於ARM的一些概念

  ARM內核和架構都是什么意思,它們到底是什么關系?

http://www.cnblogs.com/locean/p/5710377.html

http://www.cnblogs.com/locean/p/5710225.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM