摩爾定律的終結

文章推薦指數: 80 %
投票人數:10人

機器之心編譯

參與:杜夏德、吳攀


已經穩固運行了 50 年之久的摩爾定律就將迎來終結,但這背後也蘊藏著大量的機會。

原文來自 Rodney Brooks 的博客。



摩爾定律到底從何而來

Moore, Gordon E., Cramming more components onto integrated circuits, Electronics, Vol 32, No. 8, April 19, 1965.


Electronics 是一本 1930 年到 1995 年期間出刊的貿易期刊。

1965 年,戈登·摩爾(Gordon Moore)發表於上的一篇長達四頁半的文章可能是這本期刊最著名的文章了。

這篇文章不僅闡明了一個趨勢的開始,而且這種趨勢逐漸成為一個目標/法則,統治了矽基電路產業(這是我們的世界中每一個數字設備的基礎)五十年。

摩爾是加州理工學院博士,是 1957 年成立的仙童半導體公司的創始人之一,同時自 1959 年起擔任該公司的研發實驗室主任。

仙童是以製造矽基半導體起家的,當時大多數半導體還是以鍺為材料的,這種半導體工藝非常緩慢。


你可以從網絡上搜到大量聲稱其原稿複印件的文件,但是我注意到其中有一些所謂的原稿中的圖是重新畫上去的,與我一直看到的原稿有些不同。

下面我將再現原稿中的兩張圖表,據我所知,我的這份複製版是該雜誌原稿的唯一複製版本,沒有手動/人工的痕跡。

首先我要再現的是摩爾定律起源精華。

然而,該論文中還有一個同樣重要的早期圖表,預測可能出現的矽基功能電路的未來產量。

它的實際數據比這個少,而且正如我們所看到的,這張圖表包含了真實的未來。

這是一張關於集成電路上元件數量的圖。

集成電路是經由一個類似於印刷的過程生產出來的。

光以數種不同的模式打到薄薄的矽晶圓(wafer)上,同時會有不同的氣體填充進它的氣囊中。

不同的氣體會在矽晶圓表面引起不同的光致化學反應,有時會沉積某些類型的材料,有時會腐蝕材料。

有了能塑造光線的精確光掩模(mask),精確控制好溫度和曝光時間,就能列印出一個二維電路。

該電路上有電晶體、電阻和其它元件。

其中很多可能是在單個晶圓上一次成型的,就像許多字母在一頁紙上一次性印刷一樣。

在任意一個做好的晶圓上電路上,其良率是質量合格的晶片占一個晶圓上晶片總數的比例。

然後這塊矽晶圓會被切成幾塊,每一塊上都包含了一個晶片,而且每一個電路都放在自己的塑料封裝中,只露出幾隻小「腿」作為連接線,如果你觀察一張過去四十年里晶片版圖,你會上面充滿了大量的集成電路。

單個集成電路中的元件數量很重要。

既然集成晶片是列印出來的,過程中就沒有人工的痕跡,這不同於早期的電子產品,其中的每個元件都需要手工放置和添加。

現在一個包含了多個集成電路的複雜電路僅需要手工組裝這些集成晶片就可以了,而且後來這道工序也很大程度上自動化了。

只要有一個良率不錯的生產過程,那麼造出一塊單個集成晶片的時間就是恆定的,不管組件的數量是多少。

這意味著總共需要手工或者機器連接的集成晶片數量較少。

所以,就像摩爾那篇論文的標題所說,把更多的元件集成到一個單個集成晶片上是一個很好的主意。

該圖豎軸表示的是一塊集成晶片上的組件數的以 2 為底的對數,橫軸表示的是年份。

左起一直向上延伸的每一個缺口都會將元件的數量增加一倍。

所以 3 指的是 2 的三次方,等於 8,13 指的是 2 的 13 次方,等於 18192。

從 1962 年到 1972 年,元件數量增加了 1000 倍。


這裡有兩件事需要注意

第一是摩爾這裡討論的是一塊集成電路上的元件,不僅僅是電晶體的數量。

一般來說元件的數量比電晶體要多出很多,雖然這一比率會因為使用不同基本類型的電晶體而隨著時間的推移下降。

但在後來的幾年裡,摩爾定律經常變成純粹的電晶體計數。

另一件事是 1965 年發表這張圖中只有四個真實的數據點。

而在 1959 年組件的數量是 2 的零次方,也就是 1,根本算不上是一塊集成電路,因為那只是單個電路元件——那時集成晶片尚未發明。

所以這是一個空數據點。

之後他繪製了四個實際數據點,我們假設是從仙童公司可能產生的數據中採集的。

1962、1963、1964、1965 這四個年份對應的數據點分別是 8、16、32 和 64。

這裡面的機制是什麼,它怎麼能起作用的?它能起作用是因為它在數字域中,也就是 yes 或 no 的域,0 或 1 的域。

在這篇四頁半頁的文章的後半頁,摩爾解釋了他的預言的局限性。

他說對於一些東西,如儲能,他預測的趨勢就不起作用。

能量占用一定數量的原子和電子來儲存一定數量的能量,所以你不僅不能隨便改變原子的個數還需要存儲相同量的能量。

同樣,如果你有一個半加侖的牛奶容器,你不能在裡面放一加侖牛奶。

然而基本的數字抽象是 yes 或者 no。

集成晶片中的電路元件只需要知道先前的元件是 yes 還是 no,不管是否存在電壓或電流。

在設計階段一決定多少伏特或安培以上為 yes,多少以下為 no。

這些數字之間需要有一個很好的分割,區分出一個顯著的中間區域與最大值區域或最小值區域。

但是區域的幅度不會有什麼影響。

我喜歡把它想像成一堆沙子。

桌子上有或沒有一堆沙子?或許我們需要確定一下大概多少沙子才能算得上是一堆沙子。

但是正常情況下,把一堆沙子減半,我們仍然可以說桌子上有一堆沙子。

然後我們能再次將這個數量減半。

並且,yes 或 no 的數字抽象依然可以起作用。

我們還可以再減半,同樣沒問題。

就這樣,一次一次一次減半下去。

這就是摩爾定律的原理,最初的定理是這樣描述的:我們將會看到集成晶片上的元件數量每年增加一倍,從 1965 年到 1975 年持續 10 年。

其他版本的摩爾定律接踵而至;這些定律都是關於翻倍的,但是有時翻倍的是其他東西,並且翻倍需要的時間常數會稍長。

最流行的版本是電晶體數翻倍、電晶體的開關速度翻倍、單個晶片上的存儲空間翻一倍、計算機的二級內存翻一倍——其最初是在機械磁碟上,但是最近五年已經升級成固態快閃記憶體的形式。

還有很多其他的版本。

讓我們暫時回到最初版的摩爾定律。

一塊集成晶片上的元件是分布在一塊二維矽晶圓上的。

因此,為了使相同數量的矽的數量增加一倍,就需要將每單位面積的元件數量增加一倍。

那就意味著一個元件的大小,在矽晶圓的每一個線性維度上要降低到原來的二分之一。

反過來,那就是說,摩爾知道每個元件的線性維度會逐年下降 71%。

但是為什麼會限制在每年兩倍的數量上?考慮一下上面提到的沙堆模擬,為什麼不能是四分之一或者十六分之一堆的沙子作為基數呢?當你縮小元件的尺寸(通常稱為 feature size,特徵尺寸)時,問題就又回到某個集成晶片的良率上,也就是合格集成晶片的數量。

隨著特徵尺寸越來越小,晶片製作過程中廣每一步的光的投射模式的對準需要更加精確。

因為√2=1.41,當你將特徵尺寸減半才能得到更好的良率。

而且因為材料中的雜質也會被帶到晶片中,從循環中的氣體中而來並且經過光化學反應的材料,因此氣體必須是高純度的,這樣每個元件中的留存的壞原子才會更少。

摩爾定律最初的版本中隱晦提到生產設備有望在下面的 10 年中,每年提升 29%。

在後來多種版本的摩爾定律中,翻倍的時間常數延伸到 2 年,甚至還要長一點。

但是處理設備會在每個周期提升 29%。

要見識摩爾定律原理的魔力,讓我們先來看看 25 次翻倍。

該設備必須用比它小√2 的 25 次方倍的東西操作,即,大約小 5793 倍。

然而我們可以在單個晶片上安裝 2 的 25 次方個組件,其數量可以達到 33,554,432 倍之多。

我們設備的精確度已經提升了 5793 倍,但是,由於線性對區域的影響,在原來 5793 倍的基礎上,這一數字進一步加速了 5793 倍。

這就是摩爾定律收益的來源。

Moore 只是在最初的論文中隱晦地提出了這一定律,設備在接下來十年內逐年得到 29% 的提升。

事實上,翻倍所用的時間常數會更長。

現在終於到頭了。

並不是因為設備良率的精確度不再提升了。

不是的。

而是因為我們拿來做比喻的沙堆變得小到裡面只有一粒沙子了。

戈登·摩爾令人難以置信的洞察力

或許讓人印象最深刻的是摩爾對該定律對世界產生的巨大影響的遠見。

下面是他文章中的第二段的第一句話:

集成晶片會帶來很多令人驚訝的技術,比如家用計算機,或者至少是終端連接在中央自動計算控制中心上的計算機,以及個人可攜式通訊設備。

摩爾提到的這些東西在 1965 年都算的上驚世駭俗。

當時所謂的「微型計算機」還是桌子那麼大的,用起來通常還要接一些外圍設備,如磁帶機、讀卡器或印表機,這樣的機器是很難進入日常家用廚房的,即便是把冰箱、烤箱和水池都扔出去,也很難放得下它。

當時的絕大多數人還沒有見過計算機,跟計算機互動過的人就更少了。

而且通常情況下,使用這種設備的人需要把打孔卡片一張張拆開,然後當人把卡片都放入機器後,一天以後才能列印好。

以今天的標準來看,當時汽車電子系統非常簡單,大約只有 6 個開關,若干個簡單機電裝置驅動轉向指示,有擋風玻璃雨刮器,「分電盤」定時點燃火花塞——在自動電子設備中每一個單獨的功能產生的絲毫機械都能大到用肉眼看見。

當時的個人溝通設備還是轉盤撥號電話機,一個家庭一部,牢牢地固定在牆上。

順便提一下,集成晶片做成的第一台計算機是用於阿波羅任務的制導系統計算機,命令模塊(Command Module)中一台,月球登陸器(Lunar Lander)上一台。

這些集成晶片都是由戈登·摩爾的仙童半導體公司製造的。

第一版的計算機上有 4100 個集成電路,每一塊都有一個 3 輸入或非門(NOR gate)。

1968 年第一台功能更強大的載人飛行器僅有 2800 塊集成晶片,每塊晶片上有兩個 3 輸入或非門。

摩爾定律在初具成形時就已經開始影響月球了。

一點題外話

原版的雜誌文章中有這麼一個漫畫:

在摩爾定律 40 周年慶上,我問摩爾博士這幅漫畫是不是出自他自己的創意。

他回答說此事與他無關,文章中出現這個卡通也讓他很吃驚。

我找不到關於這幅漫畫來源的絲毫線索,我猜想是這幅漫畫的作者可能對我上面引用的這句話有些不滿。

漫畫中的場景設在一個百貨商店中,當時美國百貨公司通常有一個「Notions」櫃檯區,我自己沒有去過這樣的地方,因為現在已經沒有了(我是 1977 年到的美國)。

看起來,Notions 像是賣服飾用品的,比如一些用於縫紉的徽章、棉線、彩帶等常用品。

另一邊是化妝品專櫃。

而這兩個專櫃的中間是可攜式家用電腦專櫃,售貨員手裡正拿著一台電腦。

我猜這位漫畫家是想藉此取笑摩爾的那個想法,試圖指出它的荒謬。

然而 25 年後一切都過去了,當時百貨店裡賣的東西也煙消雲散了。

買化妝品的專櫃還在那裡,notions 的櫃檯早已不見蹤影。

這位漫畫家只看到了他眼前的東西,卻看不見未來的趨勢。



摩爾定律中有很多不同的形式,不只是他最初提出的單個晶片上的元件數量。

在摩爾定律中,關於晶片運行速度有多快的說法有很多版本,其中一個是,電晶體越小,開關的速度越慢。

同時關於 RAM存儲量運行計算機的主內存有多少。

還有關於文件存儲和磁碟驅動大小和速度也有多個版本。

多個摩爾定律混在一起對技術如何發展產生了巨大的影響。

我會討論這種影響的三種模式:計算機設計中的競爭、協調和從眾現象。


競爭

內存晶片是數據和程序運行時的存儲位置。

摩爾定律適用於單個晶片可以存儲的內存字節數,字節數通常是定期地四倍數的增長。

因為是四倍的增長,所以矽晶圓代工廠的成本就會長時間內下降,這樣一來可以保持盈利了(今天,一家矽晶圓代工廠的資本成本大約是 70 億美元!),此外還需要將每個 memory cell 在每個維度上增加一倍,以保證設計的平衡,因此這就又增加了四倍。

在早期的桌上型電腦的內存晶片中 2 的 14 次方(16384)個字節,當時的內存晶片是 RAM(隨機存取存儲器,即內存中的任何位置都需要同樣長的訪問時間,沒有快慢之分),而且這樣大小的晶片被稱為 16K 晶片,K 不是整好的 1000,而是 1024(即 2 的 10 次方)。

很多公司都生產過 16K 的 RAM 晶片。

但是他們從摩爾定律中學到的唯一一樣東西就是市場上何時有望出現 64K RAM 的晶片何時會出現。

所以他們也了解自己必須要做什麼才能保持競爭優勢,他們也知道何時需要做好供工程師設計新機器的樣品。

他們會早早準備好晶片只要新機器一出來,就等著設計安裝上去。

他們還能判斷出在什麼時間值得需要付出什麼樣的代價以在競爭中保持一點領先優勢。

每家公司都了解這個遊戲(事實上,關於摩爾定律的時鐘什麼時候需要調慢一些,他們已經達成了一致),他們競爭的是作戰效率。


協作

MIT科技評論曾經發文談論過摩爾定律的終結。

如果你是一名設計師,要為台式機器設計一個新的計算機機箱,或者其他類似的數字機器,你可以調查一下打入計算機市場的某個好時機,了解各種大小的 RAM 內存所需要的電路板空間有多大,因為你已經知道了每個晶片有多少字節空間可用。

你知道了磁碟空間的大小與其價格和尺寸的關係(磁碟直徑的大小會隨著其存儲總量的提高而提高。

)你會清楚最新的處理器晶片的運行速度會有多快。

你會知道各種解析度的顯示器的價格。

所以,當你打算向市場投放新型計算機時,你可以提前幾年結合這些數字了解什麼樣的選擇和配置是有潛力的。

銷售此款計算機的公司或許可以造出一兩個關鍵晶片,但是大部分元件還得從供應商那裡買。

摩爾定律的周期性能讓他們不用擔心會突然出現一個顛覆性產品而打亂自己的業務流程和計劃。

這才是讓數字革命按部就班繼續下去的根源所在。

每件事都是有順序可以預測的,所以很少遇到盲阱。

在整個人類歷史上的任何技術領域,我們或許擁有了一個持續性和可預測性最強的進步通道。


計算機設計中的從眾心理

但是這種好處帶來的一些影響也可以被看做是負面的(儘管我相信有人會爭辯說其好處是不折不扣的)。

我將把其中之一作為討論摩爾定律所深刻影響的第三件事情。

當中央處理器能夠被置於一張晶片(見下面的英特爾 4004)中時,通用計算機設計的一個特定形式出現了,很快,晶片上的這些處理器(即眾所周知的微處理器)就可以支持通用架構,即馮諾依曼架構 。

這種架構的一個顯著特點是:有一個很大的 RAM 內存包含著 RAM 晶片中產生的指令和數據,我們在上文談到了這個內容。

內存被組織成可進行連續索引(或尋址)的位置區域,每個位置都包含同一數量的二進位比特信息或數字。

微處理器本身有一些專門的存儲單元(稱為寄存器/ registers)和一個可進行加、乘、(最近出現的)除運算的運算單元等。

其中一種專門的寄存器被稱為程序計數器(Program Counter/PC),它為當前指令保留內存中的一個地址。

CPU 在當前的指令位置上查看比特信息的模式並將其解碼成所應執行的操作。

這個行為可能是為了取回 RAM 中的另一個位置,並將其放進某個專門的寄存器中(這個過程稱為負載/LOAD),或是為了將內容發送到其他方向(STORE),或是為了將兩個特殊寄存器中的內容輸送到運算單元中,接著對該單元的輸出數據求和,將其存儲在另一個專門的寄存器中。

然後中央處理單元增加其 PC 的數量並查看下一個連續尋址指令。

一些特殊指令可以改變 PC 並使機器轉去執行程序的其他部分,這個就是分支(branching)。

例如,對於存儲在 RAM 中的某個連續值數組,如果其中一個專門的寄存器被用來計數其求和元素的數量,那麼緊跟在加法指令後面的就有可能是一條遞減計數寄存器的指令,然後在程序早期進行合併,執行另一個負載,如果該計數寄存器仍然大於零就進行添加。

絕大多數數字計算機都是這樣。

其餘例外都只是黑客們使其運行得更快,但本質上仍然與此模型類似。

不過請注意,馮諾依曼計算機以兩種方式使用 RAM——用以包含程序中的數據以及包含程序本身。

我們稍後再談這一點。

由於摩爾定律的所有版本都在堅定地運作以支持這個基本模型,要想打破它十分困難。

人類的大腦肯定不會這樣工作,所以似乎存在其它一些強大的方法來組織計算。

但是試圖改變基本組織是一件危險的事情,因為基於現有架構的摩爾定律將勢不可擋地繼續運作下去。

嘗試新事物最有可能使發展倒退幾年。

因此,諸如來自 MIT 人工智慧實驗室(變成了至少三個不同的公司)的 Lisp Machine 或 Connection Machine 和日本第五代計算機計劃(其研究了兩種非常規的思想:數據流/ data flow 和邏輯推理/logical inference)等勇敢的大規模實驗都失敗了,因為之前長時間的摩爾定律效應使傳統計算機的性能翻了一番又一番,其效果超越了新機器的諸多高級功能,而軟體卻可以更好地模擬新思路。

大多數計算機架構師被鎖在了已存在了幾十年的傳統計算機組織中。

他們競相改變指令的編碼,使程序在每平方毫米上的執行效率略高一點。

他們競相更改策略,以求在主處理器晶片上緩存更大、更多的 RAM 內存副本。

他們競相探討如何在一張晶片上放置多個處理器、如何在一張同時運行有多個處理器單元的晶片上共享 RAM 中的緩存信息。

他們競相研究如何使硬體在運行著的程序中更好地預測未來決策,從而可以在白費心機之前預先進行下一個計算。

但是基本上,他們都被鎖在了計算的同一種方式上。

三十年前,有幾十種詳細的處理器設計,但現在只有少數幾個類別:X86、ARM 和 PowerPC。

X86 大多是台式機、筆記本電腦和雲伺服器。

ARM 多用於手機和平板電腦。

你可能會用一個 PowerPC 來調整汽車的所有引擎參數。

圖形處理單元(Graphical Processing Units/GPU)是打破摩爾定律枷鎖的一個引人注目的例外。

它們不同於馮諾依曼機。

為了獲得(特別是在遊戲中)更好的視頻圖像性能,摩爾定律主導下的主處理器已變得越來越好,但是底層模擬也在變得越來越好,這並不足以提高實時渲染的效果。

這種情況催生了一種新型的處理器。

它對於通用計算不是特別有用,但是在(進行螢幕上的圖形化渲染所需要的)數據流的加法和乘法運算方面被優化得很好。

至此,一個新型的晶片被添加到摩爾定律池中,遠遠晚於傳統的微處理器、RAM 和磁碟。

新的 GPU 沒有取代現有的處理器,而是作為圖形渲染所需要的合作夥伴被添加進來。

我在這裡提到 GPU 是因為原來它們對另一種類型的計算(在過去三年中已經變得非常流行)很有用處,這正成為摩爾定律還未結束的一個論點。

我仍然認為它會終結,下一節將回到 GPU 的話題。


我們確定它會結束嗎?

如前所述,我們將一堆沙子分成兩半,卻沒法再分那最後一粒,這就是目前的境況,我們面對的是一粒沙子,傳統意義上的戈登·摩爾定律已經結束了。

請參考《經濟學人》於去年三月刊登的一份報告,其極具代表性的風格全面詳盡、方便易得、思考深刻。

地址:http://www.economist.com/technology-quarterly/2016-03-12/after-moores-law

前面我談到了集成電路的特徵尺寸(feature size)及其密度變化。

1971 年,戈登·摩爾在英特爾,他們推出了其第一個單晶片微處理器 4004 ——12 平方毫米大小的晶片上分布有 2300 個電晶體,特徵尺寸為 10μm。

這意味著該晶片上任何組件的最小可分辨尺寸是千分之一毫米。

此後,特徵尺寸有規律地降低,一定面積上的組件數量定期翻一番。

儘管該期限正在逐漸延長。

在摩爾最初發表該定律的年代,晶片革新周期是一年。

現在是兩年多一點。

在 2017 的第一季度,我們期望在大眾市場上看到第一款特徵尺寸為 10nm 的商用晶片產品,連 1971 年的千分之一都不到,或者說它是摩爾定律 46 年來生效了 20 次的成果。

有時技術飛躍得比以往更快一些,因此 10 μm 到 10nm 之間實際上只有 17 次飛躍。

你可以在維基百科上查看詳細內容 。

2012 年時特徵尺寸是 22nm,2014 年是 14nm,現在到了 2017 年的第一個季度,我們將會看到 10nm 特徵尺寸的晶片被送到終端用戶手中,並有望於 2019 年左右看到 7nm 的產品問世。

仍有一些活躍的研究領域致力於解決 7nm 特徵尺寸的難題,不過業界卻對此信心十足。

有預言說 2021 年會突破 5nm,然而就在一年前,能否解決與此相關的工程問題及其在各行業中的經濟可行性如何還存有很大的不確定性。

5nm 只有大約 20 個矽原子的大小。

如果再小的話,該種材料就會受到量子效應的主導,經典物理學性質則會開始坍縮。

這就是我所說的沙堆只剩一粒沙子的情況。

今天的微處理器有一張幾百平方毫米大小的晶片和 50 億到 100 億個電晶體。

如今它們有很多額外的電路用以緩存 RAM、預測分支等,從而達到提高性能的目的。

然而越來越大的尺寸在變得更快的同時也帶來了很多成本。

眾多信號於轉換過程中所使用的能量在很短的時間內會散發出一些熱量,而一個信號從晶片一邊轉移到另一邊的時間最終會受限於光速(實際上光在銅介質中的速度會小一些),因而該時間效應開始變得顯著起來。

光速大約是 30 萬 km/s,或 3×10^11mm/s。

因此光(或信號)在不超過 1×10^(-10)s 的時間內可以傳播 30 mm(一英寸多點,和今天的一個大晶片的尺寸差不多),這個時間不低於一百億分之一秒。

當前最快的處理器的時鐘速度是 8.760 GHz,這意味著在信號從晶片的一邊傳播至另一邊的時間內,晶片的這一邊已經開始轉移下一個信號了。

這使得單晶片微處理器的同步性成為了一個噩夢,而一個設計師充其量只能提前知道來自處理器不同部分的不同信號會遲到多久,並相應地嘗試進行設計。

所以與其把時鐘速度加快(這也很難),不如將單晶片微處理器做得更大、加上更多電晶體,讓它在每個時鐘周期內做更多事情,在過去的幾年裡,我們已經看到大尺寸晶片朝著「多核(multicore)」方向發展,一片晶片上有著 2、4 或 8 個獨立的微處理器。

多核保存了「每秒執行的操作數」(摩爾定律的說法),但是該過程犧牲了簡單程序的同等程度的加速執行性能——你不能簡單地在多個處理單元上同時運行某一個單一的程序。

對於試圖同時運行很多任務的筆記本電腦或者智慧型手機來說,這種犧牲影響不大,因為通常會有足夠多需要立即完成的不同任務被分包給同一晶片上的不同內核,從而使其得到充分利用。

但是除了用於特殊計算的任務,當核數量增加幾倍時情況就不同了。

在晶片被閒置時,加速便開始消失,因為沒有足夠多的不同任務需要被執行。

儘管我在上文中提出了為什麼摩爾定律將會終結於晶片的相關論據,仍然有許多人表示不認同,因為我們打算通過多核和 GPU 來找到少數原子約束問題的解決方法。

但我認為這大大改變了定義內容。

這是 DFJ (Draper Fisher Jurvetson)投資公司的創始人 Steve Jurvetson 最近發表在其 Facebook 主頁上的一張圖表。

他說這是由 Ray Kurzweil 編寫的對早期圖表的一個更新。

圖表左軸是每秒每單位美元的計算次數(以對數標度)。

它代表了計算隨時間推移的價格下降指數。

20 世紀 40 年代有一些特殊用途的計算機,比如布萊切利園(Bletchley Park,又稱 X 電台)為破譯密碼而建造的電磁計算機,它到了 50 年代就成為了通用型的馮諾依曼計算機並一直保持到了圖表最後的幾個時間點。

圖中的最後兩個點都要歸功於 GPU :GTX 450 和 NVIDIA Titan X。

Steve 沒有標記出其之前的幾個點,但是在我能搜索到的(有很多)每一張早期版本的圖表中,2010 年後的點都要歸功於多核。

首先是雙核,然後是四核,比如英特爾四核 i7 處理器。

GPU 之所以存在以及人們對它感到興奮的原因是:除了圖形處理,它們在另一個時髦的計算領域也表現不凡——深度學習——一個最初被稱為反向傳播神經網絡的東西——最近在技術領域產生了巨大的影響。

它使得語音識別技術在過去三年間取得了飛快發展,從而令蘋果的 Siri、亞馬遜的 Echo 和 Google Home 成為了實用且令人滿意的程序和設備。

它也使得圖像標記的質量比 5 年前提高了一大截,還有自動駕駛汽車的一部分態勢感知實驗,使用了眾多的道路場景來訓練網絡。

深度學習的訓練階段通常是在雲端的數百萬個樣本之上進行的。

它產生了幾百萬個數字,代表著所習得的網絡。

然後當它在識別一個單詞或標記一張圖像時,輸入數據會被送入某個程序,執行數百萬個乘法和加法運算從而觸發該網絡的生成。

巧合的是,GPU 只有在網絡以這種方式被構建的情況下才能達到最優的性能,所以我們預計會有更多網絡被納入到我們的汽車中。

GPU 製造商的春天來了!而 GPU 可以做龐大計算的這種能力在任何問題上都表現欠佳。

但它們在深度學習網絡方面表現優異,而深度學習正迅速成為這十年的技術發力點。

我們確定無疑地聲稱著會繼續看到指數式增長之時(如圖),正是被測量量已經發生改變之時。

這有點像是在變戲法。

我認為這種變化會產生非常大的影響。


摩爾定律的終結意味著什麼?

我認為摩爾定律的終結——正如我對終結的定義——將會帶來計算機架構的一個嶄新的黃金紀元。

架構師們不用再畏縮於摩爾定律的惡性競爭中。

他們將能花時間去嘗試一些晶片方面的新想法,因為現在的傳統計算機架構將無法在短短兩年或四年內跟上軟體疊代的步伐。

而且他們可能不會嘗試去提高計算速度,或許是以其它方式來改善計算。


機器學習運行時間

我們已經看到使用用於深度學習網絡的 GPU 作為運行時間的引擎。

但我們也看到一些更具體的架構。

例如,距離谷歌擁有自己的 TensorFlow Units(TPU) 晶片已經過去了一年左右的時間了,該晶片通過有效降低(由於神經網絡在低精度時表現相當良好而保留下來的)重要數字的數量來為深度學習網絡節約功率。

谷歌已經把許多這種計算機中使用的晶片安裝在其伺服器集群或雲端上,並能夠將學習後的網絡用於各種搜索查詢任務,它的速度更快且電力消耗更低。


專用晶片

現在一張典型的手機晶片有四個 ARM 處理器內核以及一些高度優化的特殊用途的處理器。

這些處理器管理著攝像頭的數據流入並優化語音質量,甚至在一些晶片上有一個特殊的高度優化過的處理器用於檢測人臉。

這是相機應用程式中所使用的處理器——你在拍照時可能注意到了人臉周圍的小矩形——用來決定圖像的哪些區域應該被重點關注並提供最好的曝光時間——當然是臉!


通用用途的新方式

我們已經看到為特定計算所設計的特殊用途架構的崛起。

但也許還會看到更多通用架構以一種不同的計算風格奮起直追。

可以想見,現在或許值得再次對日本第五代計算機計劃的數據流和邏輯模型進行探討。

但是當我們把世界數字化時,有害的計算機安全的成本將威脅到我們的生存。

因此如果事情進展不錯,或許被(摩爾定律的惡性競爭)釋放出來的計算機架構師們可以慢慢開始將我們從目前的糟糕狀況中拯救出來。


安全計算

我們都聽說過網絡黑客攻破計算機的事情,他們往往在地球的另一邊,或者是彼時還在一台計算機上控制著引擎,而很快就開始控制其他的東西,比如一輛駛過的汽車。

這是怎樣發生的呢?

網絡黑客很有創造力,但他們進入系統的許多方法基本上是藉由程序中的一些常見的編程錯誤,這些程序建立在我們之前談過的馮諾依曼架構之上。

一個常見的手法是利用所謂的「緩存溢出(Buffer overflow)」。

保留一個固定大小的內存,例如輸入到瀏覽器或谷歌查詢框中的網頁地址。

如果所有程式設計師的代碼都寫得非常仔細,而有人鍵入了過多的字符,那麼其超出限制的部分將不會被存儲在 RAM 中。

但通常情況是,一個程式設計師使用了一種簡單而快速的編碼技巧,這種方式不檢查溢出,且鍵入字符以超出緩衝區範圍的方式被保存起來,它或許會覆蓋一些代碼而使該程序跳到後方。

這取決於馮諾依曼架構的特點——數據和程序存儲在同一個內存中。

所以,如果黑客選擇了一些字符,其二進位碼對應於一些惡意行為的指令,比如為自己建立一個使用特定密碼的帳戶,然後一切就像施了魔法般,黑客有了一個(類似許多其他人和程序服務可能會擁有的)計算機遠程訪問帳戶。

程式設計師不應該犯這種錯誤,但歷史表明這種情況一次又一次地發生著。

另一種常見的手法是:在現代網頁服務中,筆記本電腦、平板電腦或智慧型手機上的瀏覽器以及雲中的計算機,它們有時需要在彼此之間傳遞一些十分複雜的東西。

無需程式設計師事先了解所有複雜的可能情況並處理消息,其設置方式是:使一方或雙方可以來回傳遞一點程序源碼並在其他計算機上執行代碼。

這種方式提供了在現有系統中推遲工作而無需更新應用程式的強大性能。

無法確定一段代碼不會去做某些事情,所以如果該程式設計師決定通過這一機制提供一個完全通用的性能,那麼接收機便無法提前知曉代碼的安全與否以及它們是否會做一些惡意行為(這是停機問題的一般化——我可以繼續進行下去...但不會)。

所以有時網絡黑客會利用這個弱點,並直接向一些接受代碼的服務發送一點惡意代碼。

除此之外,網絡黑客總在發明新招——以上兩例只是用來說明黑客當下的一些行為方式。

可以編寫代碼來防止這些問題,但是代碼編寫仍然是一項人為活動,而世界上存在太多人為創建的漏洞。

一個應對方法是使用額外的晶片,該晶片對程式設計師隱藏了低層次的馮諾依曼架構的可能性,僅僅向內存中的指令提供更有限的可能行為集合。

這不是一個新想法。

大多數微處理器有一些版本的「保護環(protection rings)」,這些保護環可以讓更多不受信任的代碼僅能訪問越來越有限的內存區域,即使它們試圖以正常的指令來進行訪問。

這種想法已經存在了很長一段時間,但它一直受阻於缺少一個標準的方法去使用或執行它,所以大多數試圖運行於大多數機器上的軟體,通常僅僅指定 2~3 個保護環。

這是一個非常粗糙的工具,它放過了太多的代碼。

當僅僅追求速度已變得不再實用時,也許現在可以更認真地思考一下這個想法,嘗試讓環境變得更加安全。

另一個想法——主要只在軟體中實現過,可能有 1、2 個例外——被稱為基於功能的安全(capability based security),來源於基於功能的尋址( capability based addressing)這個概念。

程序不能直接訪問所需使用的存儲器區域,但能獲得不可偽造的參考加密處理,以及一個被定義的、被允許作用於內存的操作的子集。

現在硬體架構師或許有時間來繼續推動該方法的完全強制性執行,使其在硬體方面成功一次,因而純粹的人類程式設計師——他們被要求在承諾的發布期限內實現新軟體——就不會把事情搞砸了。

從某個角度來看,我前面談到的 Lisp 機是建立在一個非常具體而有限的、基於架構的性能的版本之上。

實際情況是,那些機器是馮諾依曼機,但是它們可執行的指令是受到故意限制的。

在硬體層面,通過使用被稱為「類型指針(typed pointers)」的東西,對每一個內存的每一次引用,都會根據指針中所編碼的類型來限制指令對內存的作用。

而內存只能在其被存儲時通過一個指針被引用到一個固定大小的內存塊的起點。

因此,在緩衝區溢出的情況下,一個字符串的緩衝區將不允許數據的寫入或讀取超出其範圍。

而指令只能從另一類型的指針——一個代碼指針——中引用。

硬體運用存儲時被授予的指針類型來將通用用途內存分成一個個十分細小的區域。

粗略地講,指針的類型永遠不能被被變,RAM 中的實際地址也不可能被任何可訪問指針的指令看到。

如何通過使用這種對通用用途的馮諾依曼架構的硬體限制來提高安全性——這些想法已經出現了很長一段時間。

我在這裡談過其中的幾個想法。

現在我認為它會成為一個更加吸引硬體架構師去投入精力的領域,因為我們的計算系統的安全成為了保證我們的企業、生活、社會能夠順利運行的一個主要的致命弱點。


量子計算機

目前量子計算機是一個以實驗性為主且花費高昂的技術。

由於需要將它們冷卻到物理實驗級別的超冷溫度且費用不菲,因此對於人們的一些困惑——它們可能會為傳統的基於計算機的晶片帶來多少加速,以及它們針對的是什麼類型的問題——來說,目前量子計算機是一項投資大、風險高的研究課題。

我不會去考慮所有的參數(我沒有讀過所有的參數,坦白說我也不具備使我對自己可能構建出的任何觀點都感到自信的專業知識)但是 Scott Aaronson 有關計算複雜性和量子計算的博客對感興趣的人來說可能是最好的參考來源。

已經實現或被期望實現的對實際問題的加速宣言,其範圍從 一 倍到幾千倍(可能我所知道的這個上限有誤)不等。

在過去,只要等上 10 年或 20 年的時間,就可以讓摩爾定律帶你到達目的地。

我們反倒已經看到了對某項技術長達超過 10 年的持續性投資,人們仍然在爭論該技術是否湊效。

對我來說,這也進一步說明,摩爾定律的終結正在鼓勵新的投資和新的探索。


無法想像的東西

即使在摩爾定律的終結所觸發的各種創新包圍下,或許我們所能看到的最好的事物還不在人類的共同意識中。

我認為,在沒有摩爾定律懸置的情況下,創新自由、需要時間來研究好奇領域的自由,很可能會產生計算模型方面的一個新的伊甸園。

5 至 10 年後,我們可能會在傳統的(不是量子)晶片中看到一種全新的計算機組織形式,其速度會超出目前的想像。

再往後發展 30 年,這些晶片可能會做出一些在今天看來與魔術並無區別的事情,就像今天的智慧型手機對 50年前的我來說近乎天方夜譚。


請為這篇文章評分?


相關文章 

半導體行業最偉大預言!摩爾定律50年了

著名「摩爾定律」(Moore’s Law)已問世整整五十年,在過去五十年,這一定律對工業、社會和科技領域所產生的重大影響幾乎成功改變了全球的面貌。1965年4月19日,《電子學》雜誌第114頁發...

摩爾定律走向終結計算的未來會是什麼?

摘要:3月15日消息,隨著摩爾定律走向終結,計算機硬體的進步可預測的時代將會走到盡頭。計算行業進步的第三個領域是新計算架構——針對特定任務而優化的專用晶片,甚至是利用量子力學同時處理多個數據集的...

摩爾定律時代即將落幕

編者按:晶片業喊「狼來了」已經有將近20年了,但摩爾定律似乎每一次都能化險為夷,維持存在。但是這次不一樣了,隨著產業在技術、經濟層面摸到的天花板越來越多,自1960年代以來為信息革命提供動力的...