脫離了馮·諾依曼體系的計算機會是什麼樣子?

昨天數字部件設計課期末答辯,因為最後的大作業是用verilog在FPGA上設計一個CPU,所以老師讓我們暢想未來的CPU設計會有什麼改進,是否有可能會不再使用馮諾依曼架構。

我對於這個問題比較疑惑。目前比較熱的方向比如量子計算機,在我的理解中,利用疊加/或者多宇宙的思想,僅僅只是相當於有很多台處於平行世界(或疊加態?)的計算機在同時運算,換句話說只是提高了運算速度。本質上仍然沒有脫離馮諾依曼體系。

然後是對於什麼是馮諾依曼體系,發現自己學了那麼多年其實也並不能給出一個明確的說法。是計算機由五個部分組成嗎?但是現在看來那五個部分都是必須的,總需要存儲吧?總需要控制吧?總需要運算吧?我知道新的設計一般都是顛覆性的,但是在我看來這幾個部分都是邏輯上決定必須要有的。另外一種想法是馮諾依曼把程序當成一種數據來看,這是其體系的核心思想。我覺得這就更不能被拋棄了,如果有一天程序都不是數據,那還需要程序員做什麼。(細思極恐,這些硬體設計者好像是要謀害我們)此外,馮諾依曼機和圖靈機有什麼異同?

現在或者歷史上是否存在過一些沒有採用馮諾依曼架構的計算機?他們分別是什麼樣子的?如果未來會出現顛覆性的設計,可能會如何不採用馮諾依曼體系去解決運算的問題?


哈佛結構就是非馮結構啊,ARM就是哈佛結構,嚴格來講x86也不算馮諾依曼結構……

非馮結構的「程序不是數據」並不是說程序本身不再是01010的機器碼,而是說在存儲的時候要將程序和程序調用的數據視作兩種不同的類型,分開存儲。

馮諾依曼結構是將程序和數據存儲在同一個存儲器里,讀寫的時候無差別;哈佛結構則給程序和數據分別設置了但單獨的存儲器,讀寫的時候兩者使用不同的匯流排。

馮諾依曼結構提出的時候,計算機還是「硬編程」的,就像題主說的通過改變電路設計來運行不同的程序。馮諾依曼結構的提出讓計算機可以存儲並調用不同的程序,不再需要關機重新硬編程,大大提高了計算機的運行效率。

現代處理器設計早就遠遠超越了馮諾依曼那個年代的水平,簡單的馮諾依曼結構和非馮結構二分也早已不適合現在的CPU了(比如一個對於部分指令有單獨的指令寄存器,對於其他指令則存儲在數據寄存器里的CPU,你說它算不算馮諾依曼結構?)。

對於這種名詞,了解一下它的歷史意義就行了,現代的計算機設計早就超過了這些古老的定義所能涵蓋的範圍……


我建議你先回頭去複習一下圖靈機的原理,而不是馮氏架構……

計算機的行為本質是圖靈機,也就是 當前狀態+當前輸入 -&> 行動 + 下一狀態, 馮氏架構只是其中最為成功的一種應用,即

當前輸入 = 源寄存器

當前狀態 = 目標寄存器狀態

行動 = 目標寄存器操作

下一狀態 = 目標寄存器狀態

以此循環


這其實是一個非常有意思的問題。但哈佛結構並不是老師想要的答案啊。

神仙難釣午時魚,趁著中午的暴晒答一波

要談到馮諾依曼的改變就不能脫離圖靈,對於現代計算機體系結構,如果已經是95分的水平算的話,圖靈完成的是0-&>1的貢獻,而馮諾依曼,是1-&>60分,其後若干的吃瓜群眾再在此之上再抱團研(吵)究(架),進一步完善,形成了目前的計算機體系結構,養活了一大堆人。這其中要說到哈佛結構,可能連1分的權重都算不上(教科書上雖然引用很多,但哈佛和馮諾依曼其實並列的資格都沒有),畢竟圖靈機的原型上,指令和數據就是兩條獨立的紙帶

圖靈的根本是在數學上定義了可計算數在二進位及有限指令及狀態跳轉下的成立,馮諾依曼的根本在於工程上定義了計算、控制、存儲、輸入輸出的五個部件,要改進馮諾依曼,就需要從圖靈+馮諾依曼入手。

題主的老師提出這個問題,我猜背景還是針對最近很火的AI,現在業界很多人做所謂人工智慧的,都是號稱顛覆性採用了非馮架構,但從我個人觀點來看,無論是TPU還是寒武紀,都並未改變計算、控制、存儲、輸入輸出五個元素,其實質和DSP、NP、GPU一樣,都是在放棄通用性和兼容性的基礎上部分解決存儲瓶頸問題。

回到馮諾依曼五元組,學過數據結構的任何人都應該知道其最大的破綻在於存儲速度跟不上計算的速度(這個存儲包括指令、中間狀態、和數據本身)。就像一個寫字很快的學生考試的時候想不起老師講過啥一樣的感覺。所以目前的DL種種做法,就是儘可能減少指令數量、中間狀態和數據的存放來優化性能,本質上,當然這其中有很多異議,但我覺得目前還是馮諾依曼,一種特殊的SIMD優化。

再深入說到目前很火的AI,我的觀點其實它其實只能算是一種演算法,而且還隸屬於圖靈的可計算範疇,和真正的智能還相差甚遠。確實阿爾法狗打敗了柯潔,但還有人記得深藍和卡斯特羅夫嗎? 機器演算法打敗圍棋和國際象棋並無二致啊,只不過國際象棋靠的是窮舉遍歷,而圍棋遍歷空間太大,新演算法採用了模式識別和模糊匹配(包括計算精度大幅削減來換取計算力)而已。

打敗柯潔的,終究只是演算法,或者說數學家,並不是智能,如果下一次阿爾法 再次對陣柯潔,狗輸了,柯潔贏了,那我覺得才是恐怖的「人工智慧」。

再回到馮諾依曼,會有進一步的改變么? 有,其實就是人工智慧,IBM的真北就是真正意義的非馮了。用鏡子照照自己想想看,作為智能本身和馮諾依曼的差異是什麼,指令並不是智能的必須啊,智能是基於數據的自動判決,不需要指令甚至不需要狀態的存儲。再進一步,智能其實是不可計算的(當然可以用誤差替代),這是否會改變圖靈機的定義,我也無從得知了。

題外話,關於人工智慧的定義,作為體系結構的死忠,堅定相信,只有能夠通過圖靈測試的才是人工智慧,反之,無論谷歌還是百度,都屬於演算法。

補充,有人在問智能不可計算的說法,我並不懂太多,只是個人的一個觀點,智能源於生命,而生命演化的一個重要特質是隨機(參考評論,不確定性),圖靈機的一個重大不足就是非隨機(確定性)。


現代通用處理器基本都是採用內部類哈佛結構,外部馮諾依曼結構:內部緩存(通常是一級緩存,有些二級緩存也分成指令和地址分開的)分成數據和指令,外部內存空間不區分(順便一說,一級數據和指令緩存是可以存放同一個/一塊地址的內容的,這個與原始哈佛結構不大一致)。這個主要是為了性能的同時方便編程。

我猜你老師的意思應該是某種不同於傳統通用處理器的結構。


現在一級cache,數據和指令都是分離的,應該都算哈弗結構


脫離了馮諾依曼體系結構的計算機。。。

不知道是不是想問脫離了圖靈機體系的計算機嘞。

現代計算機早就不是純粹的馮諾依曼結構了,具體的可以看其他答住的回答。

但是現在計算機體系依然還是圖靈機。

如果不是圖靈機可以是什麼呢?

我推圖靈機等價的lambda 演算。同樣跟圖靈機可以太極生兩儀,兩儀生四象,四象生八卦。

但是尷尬的是,lambda演算並沒有指出一個lambda演算機器應該有什麼。

它更像是一個軟體的描述。

所以大家都又把它跑到圖靈機上了。
。。。


題主可能想要了解的不是哈佛結構這種設計。無論是馮諾還是哈佛,其本質都是根據從內存取指令,根據指令再取數據進行計算,最後寫回內存。這個過程是指令導向的。在六七十年代,還有一種設計叫做數據流處理器(不是GPU這種流處理器),沒有PC寄存器,而是先檢測操作數是否準備好,準備好了就將指令發射出去,這種是數據導向的。現在各種深度學習處理器造的火熱,其實多少都有這種數據流處理器的設計思想。


人腦就是脫離了馮諾依曼體系的計算機,樣子挺難看。。


馮諾依曼提出的細胞自動機結構如果能設計成可用的計算機算是符合題目要求了吧,但這種結構不適合現在的電路結構,可能未來的量子計算機或生化計算機能用到。


不是曾經出現過的lisp機嗎?


沒有了馮諾伊曼,就是圖靈啊。


舉個例子,神喻機。


我認為首先數據和指令要匯流排分開,哈哈


好像回答和題主的問題,並不太一致啊。

我個人覺得,計算機組成的五大部件(運算器、控制器、存儲器、輸入設備和輸出設備)在短期內很難突破。

哈佛結構是一種將程序指令存儲和數據存儲分開的存儲器結構。中央處理器首先到程序指令存儲器中讀取程序指令內容,解碼後得到數據地址,再到相應的數據存儲器中讀取數據,並進行下一步的操作(通常是執行)。

也是老東西,我的畢業論文是拿Z80編程,就是哈佛結構的單板機吧。


中國本土的馮諾依曼結構——周易

核心運算器——先後天八卦

由周易發展的農學,天文學,工學,命理學,儒學,法學,陰陽學,商,等等。

AI完全可以用來構建起智慧。


Harvard Architecture,分離數據和代碼的存儲並使用兩條並行的匯流排。這樣在運行的時候不需要分辨二者,從而有利於提高匯流排速度(這點一直有爭議)。

高票答主說得很對,非常全了。現代架構的PC是二者的融合。內存的模型是馮諾依曼的,但是數據寄存器顯然有用到了Harvard。


推薦閱讀:

現在學什麼專業有優勢?
做夢時夢見一位女生,最後那位女生真的出現了,並成為我的同桌,這個怎麼回事?
中文和英文有可能合併成一個語言嗎?
人類把所有學科都發展到了極致,了解了所有的宇宙規則,世界將會怎樣?
重拍「終結者」,你會加入什麼很逆天的科技?

TAG:未來 | 中央處理器CPU | 計算機科學 | CPU設計 | 馮·諾伊曼結構 |