計(jì)算機(jī)的誕生和發(fā)展,得益于馮·諾依曼1942年提出的“存儲(chǔ)程序控制”體系結(jié)構(gòu)的設(shè)計(jì)思想。直到今天,我們能夠見(jiàn)到的計(jì)算機(jī),都是基于馮·諾依曼的設(shè)計(jì)體系。
所謂的“存儲(chǔ)程序控制”,就是指編寫(xiě)好的程序(指令)和數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中,當(dāng)計(jì)算機(jī)運(yùn)行時(shí),控制器按地址順序取出存放在存儲(chǔ)器中的指令,執(zhí)行指令的功能,遇到轉(zhuǎn)移指令則轉(zhuǎn)移到轉(zhuǎn)移地址,再按地址順序訪問(wèn)指令。馮·諾依曼結(jié)構(gòu)的設(shè)計(jì)理念還將程序指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器合并在一起。實(shí)際上,馮·諾依曼計(jì)算機(jī)模型的設(shè)計(jì)思想還有一個(gè)重要特點(diǎn),那就是程序和數(shù)據(jù)以二進(jìn)制形式來(lái)表示和存放。采用二進(jìn)制邏輯、程序存儲(chǔ)執(zhí)行以及計(jì)算機(jī)由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備五部分組成,成為馮·諾依曼體系結(jié)構(gòu)(亦稱普林斯頓結(jié)構(gòu))的三個(gè)基本原則。
采用二進(jìn)制對(duì)計(jì)算機(jī)至關(guān)重要,它簡(jiǎn)化了計(jì)算規(guī)則,能將算術(shù)運(yùn)算轉(zhuǎn)化為邏輯運(yùn)算,降低了出錯(cuò)幾率,缺點(diǎn)是計(jì)算量大,而這正好適合計(jì)算機(jī)特有的快速和重復(fù)運(yùn)算的特點(diǎn)。1679年,德國(guó)數(shù)學(xué)家萊布尼茨受到《周易》的啟發(fā),提出了二進(jìn)制的概念,成為今后邏輯運(yùn)算的基礎(chǔ)。1701年,萊布尼茨發(fā)表了關(guān)于二進(jìn)制的重要論文《試論新數(shù)的科學(xué)》,為計(jì)算機(jī)理論及控制論的創(chuàng)立奠定了基礎(chǔ)。因?yàn)殡娮釉母鞣N狀態(tài)往往只有兩種,與二進(jìn)制的基數(shù)非常吻合,采用電子器件進(jìn)行邏輯運(yùn)算就順理成章了。
如果沒(méi)有電子元件,沒(méi)有電子技術(shù),基于二進(jìn)制的計(jì)算機(jī)還可能實(shí)現(xiàn)嗎?在今年熱播的科幻電視劇《三體》中,作者劉慈欣就提出了非常有新意的“人列計(jì)算機(jī)”,用人組成各種邏輯門(mén),代替電路來(lái)進(jìn)行運(yùn)算,并試圖用人列計(jì)算機(jī)進(jìn)行微積分運(yùn)算,解決三體世界中恒紀(jì)元的計(jì)算問(wèn)題。
《三體》中的馮·諾依曼,用三個(gè)人作基礎(chǔ)演示,兩人作輸入,一人作輸出,用白旗和黑旗分別表示0和1。如果輸入的兩人都舉黑旗,那么輸出的人也舉黑旗,否則就舉白旗——這就實(shí)現(xiàn)了“邏輯與”運(yùn)算,也就是“與門(mén)”。同樣,用三個(gè)人也能實(shí)現(xiàn)“或門(mén)”:輸入的兩人中只要有一個(gè)人舉黑旗,那么輸出的人就舉黑旗,否則就舉白旗。更復(fù)雜的與非門(mén)、異或門(mén)等也能用人來(lái)實(shí)現(xiàn),這樣就能組成各種基礎(chǔ)的邏輯門(mén)了。
由于二進(jìn)制的運(yùn)算量非常大,需要大量的“門(mén)電路”參與運(yùn)算,3千萬(wàn)士兵組成1千萬(wàn)個(gè)門(mén)電路,拼裝了36平方公里大小的“主板”:“人列”門(mén)部件構(gòu)成CPU;輕騎兵在門(mén)部件間的道路上飛馳,形成總線;有文化的士兵記錄下運(yùn)算結(jié)果和中間狀態(tài),是為存儲(chǔ)器;黑白兩色的旗幟排列組合展示計(jì)算結(jié)果,相當(dāng)于顯示器……
科幻畢竟只是科幻,如果在真實(shí)世界中實(shí)現(xiàn)“人列計(jì)算機(jī)”,恐怕還要加上“電源”——活人每工作幾個(gè)小時(shí)就需要進(jìn)食以維持生命,用于飲食供給的能源通道必須具備。如果衡量一下這個(gè)龐大CPU的計(jì)算能力,每秒能實(shí)現(xiàn)多少次加法運(yùn)算?在士兵的生命周期內(nèi),恐怕都無(wú)法完成微積分的解析運(yùn)算。然而更致命的還是它的可靠性,雖然基礎(chǔ)的邏輯運(yùn)算非常簡(jiǎn)單,但是在單調(diào)的重復(fù)運(yùn)算中,人的出錯(cuò)概率非常大,而且還有運(yùn)行不同步等問(wèn)題,任何微小的錯(cuò)誤都會(huì)造成計(jì)算結(jié)果毫無(wú)意義。人還是更適合高階進(jìn)制的數(shù)學(xué)運(yùn)算。
在《三體》中,人列計(jì)算機(jī)也因?yàn)橛?jì)算不正確導(dǎo)致判斷錯(cuò)誤,三日連珠來(lái)臨,184號(hào)文明覆滅,只留下了馮·諾依曼醒悟過(guò)來(lái)的最后忠告:用電子元件!