當前位置:名人名言大全網 - 笑話故事 - 什麽是馮諾·依曼結構?

什麽是馮諾·依曼結構?

馮·諾依曼結構也稱普林斯頓結構,是壹種將程序指令存儲器和數據存儲器合並在壹起的存儲器結構。程序指令存儲地址和數據存儲地址指向同壹個存儲器的不同物理位置,因此程序指令和數據的寬度相同,如英特爾公司的8086中央處理器的程序指令和數據都是16位寬。

結構介紹:

說到計算機的發展,就不能不提到美國科學家馮·諾依曼。從20世紀初,物理學和電子學科學家們就在爭論制造可以進行數值計算的機器應該采用什麽樣的結構。人們被十進制這個人類習慣的計數方法所困擾。所以,那時以研制模擬計算機的呼聲更為響亮和有力。20世紀30年代中期,美國科學家馮·諾依曼大膽的提出:拋棄十進制,采用二進制作為數字計算機的數制基礎。同時,他還說預先編制計算程序,然後由計算機來按照人們事前制定的計算順序來執行數值計算工作。

人們把馮·諾依曼的這個理論稱為馮·諾依曼體系結構。從EDVAC到當前最先進的計算機都采用的是馮諾依曼體系結構。所以馮·諾依曼是當之無愧的數字計算機之父。

人們把利用這種概念和原理設計的電子計算機系統統稱為“馮.諾曼型結構”計算機。馮.諾曼結構的處理器使用同壹個存儲器,經由同壹個總線傳輸。

內容

特點

馮.諾依曼結構處理器具有以下幾個特點:

1:必須有壹個存儲器;

2:必須有壹個控制器;

3:必須有壹個運算器,用於完成算術運算和邏輯運算;

4:必須有輸入設備和輸出設備,用於進行人機通信。

:另外,程序和數據統壹存儲並在程序控制下自動工作

功能

根據馮·諾依曼體系結構構成的計算機,必須具有如下功能:

把需要的程序和數據送至計算機中。

必須具有長期記憶程序、數據、中間結果及最終運算結果的能力。

能夠完成各種算術、邏輯運算和數據傳送等數據加工處理的能力。

能夠按照要求將處理結果輸出給用戶。

為了完成上述的功能,計算機必須具備五大基本組成部件,

?包括:

輸入數據和程序的輸入設備;

記憶程序和數據的存儲器;

完成數據加工處理的運算器;

控制程序執行的控制器;

輸出處理結果的輸出設備。

瓶頸

?將CPU與內存分開並非十全十美,反而會導致所謂的馮·諾伊曼瓶頸(von Neumann bottleneck):在CPU與內存之間的流量(資料傳輸率)與內存的容量相比起來相當小,在現代電腦中,流量與CPU的工作效率相比之下非常小,在某些情況下(當CPU需要在巨大的資料上執行壹些簡單指令時),資料流量就成了整體效率非常嚴重的限制。CPU將會在資料輸入或輸出內存時閑置。由於CPU速度以及內存容量的成長速率遠大於雙方之間的流量,因此瓶頸問題越來越嚴重。而馮·諾伊曼瓶頸是約翰·巴科斯在1977年ACM圖靈獎得獎致詞時第壹次出現,根據巴科斯所言:

“……確實有壹個變更儲存裝置的方法,比借由馮·諾伊曼瓶頸流通大量資料更為先進。瓶頸這詞不僅是對於問題本身資料流量的敘述,更重要地,也是個使我們的思考方法局限在‘壹次壹字符’模式的智能瓶頸。它使我們怯於思考更廣泛的概念。因此編程成為壹種計劃與詳述通過馮·諾伊曼瓶頸的字符資料流,且大部分的問題不在於資料的特征,而是如何找出資料。”

在CPU與內存間的快取內存抒解了馮·諾伊曼瓶頸的效能問題。另外,分支預測(branch predictor)算法的建立也幫助緩和了此問題。巴科斯在1977年論述的“智能瓶頸”已改變甚多。且巴科斯對於此問題的解決方案並沒有造成明顯影響。現代的函數式編程以及面向對象編程已較少執行如早期Fortran壹般會“將大量數值從內存搬入搬出的操作”,但平心而論,這些操作的確占用電腦大部分的執行時間。

中央處理器的體系架構可以分為:馮·諾依曼結構和哈佛結構

結構

使用馮·諾伊曼結構的中央處理器和微控制器有很多。除了上面提到的英特爾公司的8086,英特爾公司的其他中央處理器、ARM的ARM7、MIPS公司的MIPS處理器也采用了馮·諾依曼結構。

1945年,馮·諾依曼首先提出了“存儲程序”的概念和二進制原理,後來,人們把利用這種概念和原理設計的電子計算機系統統稱為“馮·諾依曼型結構”計算機。馮·諾依曼結構的處理器使用同壹個存儲器,經由同壹個總線傳輸。

馮·諾曼結構處理器具有以下幾個特點:必須有壹個存儲器;必須有壹個控制器;必須有壹個運算器,用於完成算術運算和邏輯運算;必須有輸入和輸出設備,用於進行人機通信。

哈佛結構

? 哈佛結構是壹種將程序指令存儲和數據存儲分開的存儲器結構。中央處理器首先到程序指令存儲器中讀取程序指令內容,解碼後得到數據地址,再到相應的數據存儲器中讀取數據,並進行下壹步的操作(通常是執行)。程序指令存儲和數據存儲分開,可以使指令和數據有不同的數據寬度,如Microchip公司的PIC16芯片的程序指令是14位寬度,而數據是8位寬度。

哈佛結構的微處理器通常具有較高的執行效率。其程序指令和數據指令分開組織和存儲的,執行時可以預先讀取下壹條指令。使用哈佛結構的中央處理器和微控制器有很多,除了上面提到的Microchip公司的PIC系列芯片,還有摩托羅拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和ARM公司的ARM9、ARM10和ARM11。

哈佛結構是指程序和數據空間獨立的體系結構,目的是為了減輕程序運行時的訪存瓶頸。

例如最常見的卷積運算中, 壹條指令同時取兩個操作數, 在流水線處理時, 同時還有壹個取指操作,如果程序和數據通過壹條總線訪問,取指和取數必會產生沖突,而這對大運算量的循環的執行效率是很不利的。哈佛結構能基本上解決取指和取數的沖突問題。而對另壹個操作數的訪問,就只能采用Enhanced哈佛結構了,例如像TI那樣,數據區再split,並多壹組總線。或向AD那樣,采用指令cache,指令區可存放壹部分數據。

在DSP算法中,最大量的工作之壹是與存儲器交換信息,這其中包括作為輸入信號的采樣數據、濾波器系數和程序指令。例如,如果將保存在存儲器中的2個數相乘,就需要從存儲器中取3個二進制數,即2個要乘的數和1個描述如何去做的程序指令。DSP內部壹般采用的是哈佛結構,它在片內至少有4套總線:程序的數據總線,程序的地址總線,數據的數據總線和數據的地址總線。這種分離的程序總線和數據總線,可允許同時獲取指令字(來自程序存儲器)和操作數(來自數據存儲器),而互不幹擾。這意味著在壹個機器周期內可以同時準備好指令和操作數。有的DSP芯片內部還包含有其他總線,如DMA總線等,可實現單周期內完成更多的工作。這種多總線結構就好像在DSP內部架起了四通八達的高速公路,保障運算單元及時地取到需要的數據,提高運算速度。因此,對DSP來說,內部總線是個資源,總線越多,可以完成的功能就越復雜。超級哈佛結構(superHarvard architecture,縮寫為SHARC),它在哈佛結構上增加了指令cache(緩存)和專用的I/O控制器。

哈佛結構處理器有兩個明顯的特點:使用兩個獨立的存儲器模塊,分別存儲指令和數據,每個存儲模塊都不允許指令和數據並存;使用獨立的兩條總線,分別作為CPU與每個存儲器之間的專用通信路徑,而這兩條總線之間毫無關聯。

? 改進的哈佛結構,其結構特點為:以便實現並行處理;具有壹條獨立的地址總線和壹條獨立的數據總線,利用公用地址總線訪問兩個存儲模塊(程序存儲模塊和數據存儲模塊),公用數據總線則被用來完成程序存儲模塊或數據存儲模塊與CPU之間的數據傳輸。