有哪些著名的非馮諾依曼結構?

1,非馮諾依曼結構;

2,具有一定的實用價值或是科研意義;

3,和馮諾依曼結構有什麼不同,優缺點分析。


哈佛架構

數字信號處理一般需要較大的運算量和較高的運算速度,為了提高數據吞吐量,在數字信號處理器中大多採用哈佛結構;使用哈佛結構的處理器有:AVR、ARM9、ARM10、ARM11等。

與馮.諾伊曼結構處理器比較,哈佛結構處理器有兩個明顯的特點:

使用兩個獨立的存儲器模塊,分別存儲指令和數據,每個存儲模塊都不允許指令和數據並存;

使用獨立的兩條匯流排,分別作為CPU與每個存儲器之間的專用通信路徑,而這兩條匯流排之間毫無關聯。


FPGA或者說ZISC(零指令集計算機),特點就是不去具體運行指令,改變功能依靠組態配置。完美解決讀指令的內存牆問題和運行指令本身的開銷(比如說解碼,分支預測和亂序等)~當然編程難度就是另外一回事了。

其他什麼哈佛結構和馮結構沒什麼兩樣,多條匯流排之間無關聯的純哈佛結構基本已經沒了(除非是在很底端的單片機(省crossbar的錢)或者DSP/GPU這類特殊設計的晶元上)。這年頭現代CPU內部有緩存就不說了,對外也有好幾條匯流排口,進匯流排Crossbar或者片上網路,才最後會具體的分到各個外設/存儲器匯流排上面去。

純哈佛機有個大問題,就是可能擁有好幾個不同的地址空間,而且極有可能操作受限。比如說不能用指針操作I/O空間的限制(8051/AVR等)。用多層匯流排把這些分散的匯流排合起來,再去掉這些匯流排的專有訪問指令,就便於實現通用指針和線性編址了。現在大多數哈佛機基本都這樣設計。

比如說CM3是哈佛結構的沒錯,可是程序存儲器和數據存儲器並沒有徹底分開:M3的系統一般都是用Crossbar實現了多層匯流排的結構,因此所有存儲器都是統一編址的,實際上編程和馮結構沒什麼區別,所有外設和存儲器都在一個地址空間內。只要同時訪問的外設/存儲器不是掛在一條匯流排上就沒衝突,無須等待。比如說STM32的Flash和RAM就是從多層匯流排上引出的,可以同時無衝突訪問。但是如果你程序運行在RAM上,讀寫RAM就會引起仲裁。


哈佛結構,馮諾依曼結構是數據和程序不加分別,兩個部分都放在一個存儲器上,而哈佛結構有兩個獨立的存儲器,分別存儲程序和數據(對應的也有兩條地址匯流排)。

現代CPU有說法是採用了改良的哈佛結構,為了速率存在高速緩存器,它與內存獨立且只儲存代碼。不過與馮諾依曼結構區別不大(哈佛結構本就沒有完全突破馮諾依曼結構)。

另外我知道的連圖靈機都不是(馮諾依曼體系是依據圖靈機的),所以也算是非馮諾依曼結構的吧。(雖然這些都沒有物理實現,只是數學模型)

1.細胞自動機,但不是所有的細胞自動機都是圖靈完全的。感覺上分散式系統和這個挺像,但有沒有關係說實話我不知道。

2.λ運算,lisp語言的模型,可惜是軟體實現,沒有硬體實現。

3.馬爾可夫演算法

4.遞歸函數

5.寄存器機,感覺就是圖靈機的變種,而且現代CPU似乎就是它與圖靈機的雜交體(瞎說的,我並不清楚)

實際上2、3、4由於智商不夠,我並不能分辨出三者的區別,,,但我還是寫在這裡了


比如說著名的「非馮諾依曼架構」...


元胞自動機


人腦。


microchip的單片機,實用的哈佛結構


asic都是。


推薦閱讀:

為什麼幾乎每個編程語言都有減法,減不就等於+(-n),減法不是一種冗餘的操作么?
編譯器優化做指令調度時是怎麼考慮不同的微架構下對同一個指令的執行周期數是不同的?
為什麼北航軟院(5大雙一流軟工之一)每年招幾千個非全日制(雙證)?
如何看待「大部分程序員只會寫三年代碼」的說法?
利用hexo搭建自己的博客,為什麼沒有識別出markdown語法?

TAG:計算機科學 | 計算機結構 | 計算機組成原理 | 馮·諾伊曼結構 |