每日最新頭條.有趣資訊

10年後的電腦會是怎樣的?

「新原理研究所」(ID:newprincipia)

作者:孫鵬(劍橋大學電腦系博士)

上個世紀三十年代,邱奇圖靈共同提出了通用電腦的概念[1]。在接下來的十多年裡,因為戰爭需要下的國家推動,電腦得以很快從理論發展成為實體。在眾多成果中以圖靈提出的Pilot ACE電腦以及馮諾依曼提出的存儲式電腦最為突出。

戰爭之後,雖然Pilot ACE電腦運行效率更高,但存儲式電腦以其更出色的可編程性獲得了更多電腦科學家的青睞。電腦便以此為基礎開始了近一個世紀的高速發展。

八十年代初的大眾萬萬想不到十年後如此大塊頭的電腦能夠被放到書桌上並快速普及到每個人的家裡。

九十年代的大眾萬萬想不到十年後電腦可以成為我們連接世界的視窗。

千禧年的大眾萬萬想不到十年後電腦也能被握在手裡,並且擁有超乎想象的計算能力。

十年前的大眾萬萬想不到如今的電腦擁有我們無法匹敵的“學習”能力,並在很多方面的表現超過了我們最頂尖的專家。

那麽十年之後的什麽是我們今天想不到的呢?或者我們應該怎麽想象十年後的我們才靠譜呢?

《自然》期刊在2014年刊登了一篇Igor Markov的文章《計算的基本極限的極限》(Limits on Fundamental Limits to Computation)[2]。我們將以此文為基礎並綜合各方面論文,探討電腦的極限以及面對這些極限電腦科學家們所采取的措施。希望這些探討能讓大家在腦海中勾勒出十年後的一個大概的輪廓。

在對這些問題探討之前,我們先對電腦的工作原理做個簡單的介紹。幾十年電腦從不同方向上的發展將整個生態大概分出了四層,如下圖所示。我們將越靠近用戶的層級叫做高層,越靠近電腦硬體本身的層級叫做低層。從高到低,整個生態大概可以被分為應用層編譯層架構層電路層。其中應用和編譯層被歸納為軟體層,而架構和電路層被歸納為硬體層

應用層

在應用層面上,實際的問題被分類成為各種複雜度。需要說明的是電腦只能解決很少一類的問題,即是用有限記憶體能解決的問題。這類問題被歸類成為PSPACE問題,如下圖所示。

值得注意的是這個歸類隻考慮了有限記憶體,並沒有考慮完成它所需要的時間。在此基礎上,各種問題又以解決它所需的時間歸納為各種其他複雜度問題,大致包括:

P類複雜度問題必須在多項式時間 t=nc內停止並輸出正確的結果,其中n是輸入的長度,c是常數。

例子:一個數是質數嗎?

NP類複雜度問題只要給出一個解,經典電腦就能夠快速驗證給出的解是否正確的所有問題。

例子:想象一個有邊和節點的圖形,例如Facebook的社交網絡圖,其中節點是個人,如果兩個人建立好友關係,兩個節點就被一條邊連接。小團體(Clique)是整個圖形的一個子集,其中每一個人都是其他人的朋友,也就是其中任意兩個節點彼此連接。有人或許會問:存在20個人的小團體嗎?50個人呢?100個人呢?尋找這樣的小團體是圖論領域的一個“NP完全”(NP-complete)問題,NP完全意味著這是NP類問題中最複雜的一種。然而,如果給出了一個潛在的答案,比如說50個節點可以或不可以形成一個小團體,那麽問題就迎刃而解了。

NPC類問題是指在多項式時間內,如果所有NP類問題都能被轉化為另一個NP問題,那麽這個轉化後的NP類問題就稱為NP完全問題。NP完全問題滿足兩個條件:1. 本身是NP類問題。2. 所有NP類問題都能規約到該問題。

例子:給一個整數集合,證明是否存在一個非空子集,使得該集合內的數字和為0。

BQP類問題是指在多項式時間內,量子電腦能夠輕易解決,且錯誤機率小於1/3的所有問題。

例子:確定一個整數的質因數。

編譯層

程式員在算法的指導下將問題的解決方案寫成程式。程式通過編譯層裡的編譯器被翻譯成機器能懂的二進製代碼。

編譯器在翻譯程式的同時也會進行一系列的優化,比如將程式並行,使得程式能夠盡可能快得在硬體上面運行。如下圖所示,如果程式員希望電腦做煮飯、洗衣及掃地三項工作,編譯器會先研究可用硬體,發現三件工作的獨立性(煮飯可以用電飯煲、洗衣可以用洗衣機、掃地可以用吸塵器),並對三項任務進行並行優化後翻譯成二進製代碼。

架構層

至此,一個問題的解決方案通過軟體開發及編譯,進入到硬體層面執行。架構層指的是各個硬體單元的功能設計,如下圖所示:

處理器處理來自記憶體和輸入/輸出端的指令,記憶體儲存指令和數據,輸入/輸出端連接電腦用戶。簡單來說,程式以指令的形式被存在記憶體中。處理器通過讀取記憶體中的指令來執行程式。與此同時,處理器也接受來自輸入/輸出端的指令,並給予相應的回復。這些硬體單元如何排列,各自完成怎樣的工作,就是電腦架構師研究的問題。

電路層

電路層指的是每個硬體單元最底層的硬體設計,通過各種集成電路來實現架構層所設計的功能。由場效應晶體管所組成的開關電路是現代集成電路最主要的組成成分。

傳統的開關電路由MOS場效應晶體管(MOSFET)製成。MOSFET是具有漏極(Drain)、源極(Source)、柵極(Gate)和襯底(Substrate)的4端子器件。下圖顯示了其三維結構。

柵極和襯底之間由氧化層(二氧化矽)隔開。其工作原理就是在柵極施加一定的電壓後,源極和漏極就會在場效應下聯通,從而實現通路。若柵極上沒有電壓,則源極和漏極斷開,實現斷路。正是無數個這寫通路和短路的組合實現了電腦二進製0和1的轉換。

最近蘋果和華為相繼發布了7納米製程工藝的芯片。這是個什麽概念呢?首先,製程工藝是指集成電路製造時的精度。因為電流在通過柵極時會有損耗,而柵極長度(Length)決定了電流損耗的程度。柵極長度越小,損耗就越小。而上述提到的7nm的製程工藝就是這個柵極的長度。製程工藝越小,電流損耗就越小,所以能在降低功耗的同時提高性能。這也是近幾十年電腦性能高速發展的原因。

在了解了電腦的運行原理後,我們可以從工程、功耗、時空概念、複雜理論及新興技術這五個方面的探討電腦的極限,以及面對這些極限電腦科學家們所采取的措施。感興趣的讀者,可以掃以下二維碼,關注「新原理研究所」進行更深一步的閱讀喲!

獲得更多的PTT最新消息
按讚加入粉絲團