關(guān)于摩爾定律知識匯總
已經(jīng)穩(wěn)固運行了 50 年之久的摩爾定律就將迎來終結(jié),但這背后也蘊藏著大量的機會。原文來自 Rodney Brooks 的博客。
本文引用地址:http://www.ex-cimer.com/article/201808/385009.htm摩爾定律到底從何而來
Moore, Gordon E., Cramming more components onto integrated circuits, Electronics, Vol 32, No. 8, April 19, 1965.
Electronics 是一本 1930 年到 1995 年期間出刊的貿(mào)易期刊。1965 年,戈登·摩爾(Gordon Moore)發(fā)表于上的一篇長達四頁半的文章可能是這本期刊最著名的文章了。這篇文章不僅闡明了一個趨勢的開始,而且這種趨勢逐漸成為一個目標/法則,統(tǒng)治了硅基電路產(chǎn)業(yè)(這是我們的世界中每一個數(shù)字設(shè)備的基礎(chǔ))五十年。摩爾是加州理工學院博士,是 1957 年成立的仙童半導體公司的創(chuàng)始人之一,同時自 1959 年起擔任該公司的研發(fā)實驗室主任。仙童是以制造硅基半導體起家的,當時大多數(shù)半導體還是以鍺為材料的,這種半導體工藝非常緩慢。
你可以從網(wǎng)絡(luò)上搜到大量聲稱其原稿復印件的文件,但是我注意到其中有一些所謂的原稿中的圖是重新畫上去的,與我一直看到的原稿有些不同。下面我將再現(xiàn)原稿中的兩張圖表,據(jù)我所知,我的這份復制版是該雜志原稿的唯一復制版本,沒有手動/人工的痕跡。
首先我要再現(xiàn)的是摩爾定律起源精華。然而,該論文中還有一個同樣重要的早期圖表,預測可能出現(xiàn)的硅基功能電路的未來產(chǎn)量。它的實際數(shù)據(jù)比這個少,而且正如我們所看到的,這張圖表包含了真實的未來。
這是一張關(guān)于集成電路上元件數(shù)量的圖。集成電路是經(jīng)由一個類似于印刷的過程生產(chǎn)出來的。光以數(shù)種不同的模式打到薄薄的硅晶圓(wafer)上,同時會有不同的氣體填充進它的氣囊中。不同的氣體會在硅晶圓表面引起不同的光致化學反應(yīng),有時會沉積某些類型的材料,有時會腐蝕材料。有了能塑造光線的精確光掩模(mask),精確控制好溫度和曝光時間,就能打印出一個二維電路。該電路上有晶體管、電阻和其它元件。其中很多可能是在單個晶圓上一次成型的,就像許多字母在一頁紙上一次性印刷一樣。在任意一個做好的晶圓上電路上,其良率是質(zhì)量合格的芯片占一個晶圓上芯片總數(shù)的比例。然后這塊硅晶圓會被切成幾塊,每一塊上都包含了一個芯片,而且每一個電路都放在自己的塑料封裝中,只露出幾只小「腿」作為連接線,如果你觀察一張過去四十年里芯片版圖,你會上面充滿了大量的集成電路。
單個集成電路中的元件數(shù)量很重要。既然集成芯片是打印出來的,過程中就沒有人工的痕跡,這不同于早期的電子產(chǎn)品,其中的每個元件都需要手工放置和添加?,F(xiàn)在一個包含了多個集成電路的復雜電路僅需要手工組裝這些集成芯片就可以了,而且后來這道工序也很大程度上了。只要有一個良率不錯的生產(chǎn)過程,那么造出一塊單個集成芯片的時間就是恒定的,不管組件的數(shù)量是多少。這意味著總共需要手工或者機器連接的集成芯片數(shù)量較少。所以,就像摩爾那篇論文的標題所說,把更多的元件集成到一個單個集成芯片上是一個很好的主意。
該圖豎軸表示的是一塊集成芯片上的組件數(shù)的以 2 為底的對數(shù),橫軸表示的是年份。左起一直向上延伸的每一個缺口都會將元件的數(shù)量增加一倍。所以 3 指的是 2 的三次方,等于 8,13 指的是 2 的 13 次方,等于 18192。從 1962 年到 1972 年,元件數(shù)量增加了 1000 倍。
這里有兩件事需要注意
第一是摩爾這里討論的是一塊集成電路上的元件,不僅僅是晶體管的數(shù)量。一般來說元件的數(shù)量比晶體管要多出很多,雖然這一比率會因為使用不同基本類型的晶體管而隨著時間的推移下降。但在后來的幾年里,摩爾定律經(jīng)常變成純粹的晶體管計數(shù)。
另一件事是 1965 年發(fā)表這張圖中只有四個真實的數(shù)據(jù)點。而在 1959 年組件的數(shù)量是 2 的零次方,也就是 1,根本算不上是一塊集成電路,因為那只是單個電路元件——那時集成芯片尚未發(fā)明。所以這是一個空數(shù)據(jù)點。之后他繪制了四個實際數(shù)據(jù)點,我們假設(shè)是從仙童公司可能產(chǎn)生的數(shù)據(jù)中采集的。1962、1963、1964、1965 這四個年份對應(yīng)的數(shù)據(jù)點分別是 8、16、32 和 64。
這里面的機制是什么,它怎么能起作用的?它能起作用是因為它在數(shù)字域中,也就是 yes 或 no 的域,0 或 1 的域。
在這篇四頁半頁的文章的后半頁,摩爾解釋了他的預言的局限性。他說對于一些東西,如儲能,他預測的趨勢就不起作用。能量占用一定數(shù)量的原子和電子來儲存一定數(shù)量的能量,所以你不僅不能隨便改變原子的個數(shù)還需要存儲相同量的能量。同樣,如果你有一個半加侖的牛奶容器,你不能在里面放一加侖牛奶。
然而基本的數(shù)字抽象是 yes 或者 no。集成芯片中的電路元件只需要知道先前的元件是 yes 還是 no,不管是否存在電壓或電流。在設(shè)計階段一決定多少伏特或安培以上為 yes,多少以下為 no。這些數(shù)字之間需要有一個很好的分割,區(qū)分出一個顯著的中間區(qū)域與最大值區(qū)域或最小值區(qū)域。但是區(qū)域的幅度不會有什么影響。
我喜歡把它想象成一堆沙子。桌子上有或沒有一堆沙子?或許我們需要確定一下大概多少沙子才能算得上是一堆沙子。但是正常情況下,把一堆沙子減半,我們?nèi)匀豢梢哉f桌子上有一堆沙子。
然后我們能再次將這個數(shù)量減半。并且,yes 或 no 的數(shù)字抽象依然可以起作用。我們還可以再減半,同樣沒問題。就這樣,一次一次一次減半下去。
這就是摩爾定律的原理,最初的定理是這樣描述的:我們將會看到集成芯片上的元件數(shù)量每年增加一倍,從 1965 年到 1975 年持續(xù) 10 年。
其他版本的摩爾定律接踵而至;這些定律都是關(guān)于翻倍的,但是有時翻倍的是其他東西,并且翻倍需要的時間常數(shù)會稍長。最流行的版本是晶體管數(shù)翻倍、晶體管的開關(guān)速度翻倍、單個芯片上的存儲空間翻一倍、計算機的二級內(nèi)存翻一倍——其最初是在機械磁盤上,但是最近五年已經(jīng)升級成固態(tài)閃存的形式。還有很多其他的版本。
讓我們暫時回到最初版的摩爾定律。一塊集成芯片上的元件是分布在一塊二維硅晶圓上的。因此,為了使相同數(shù)量的硅的數(shù)量增加一倍,就需要將每單位面積的元件數(shù)量增加一倍。那就意味著一個元件的大小,在硅晶圓的每一個線性維度上要降低到原來的二分之一。反過來,那就是說,摩爾知道每個元件的線性維度會逐年下降 71%。
但是為什么會限制在每年兩倍的數(shù)量上?考慮一下上面提到的沙堆模擬,為什么不能是四分之一或者十六分之一堆的沙子作為基數(shù)呢?當你縮小元件的尺寸(通常稱為 feature size,特征尺寸)時,問題就又回到某個集成芯片的良率上,也就是合格集成芯片的數(shù)量。隨著特征尺寸越來越小,芯片制作過程中廣每一步的光的投射模式的對準需要更加精確。因為√2=1.41,當你將特征尺寸減半才能得到更好的良率。而且因為材料中的雜質(zhì)也會被帶到芯片中,從循環(huán)中的氣體中而來并且經(jīng)過光化學反應(yīng)的材料,因此氣體必須是高純度的,這樣每個元件中的留存的壞原子才會更少。摩爾定律最初的版本中隱晦提到生產(chǎn)設(shè)備有望在下面的 10 年中,每年提升 29%。
在后來多種版本的摩爾定律中,翻倍的時間常數(shù)延伸到 2 年,甚至還要長一點。但是處理設(shè)備會在每個周期提升 29%。
要見識摩爾定律原理的魔力,讓我們先來看看 25 次翻倍。該設(shè)備必須用比它小√2 的 25 次方倍的東西操作,即,大約小 5793 倍。然而我們可以在單個芯片上安裝 2 的 25 次方個組件,其數(shù)量可以達到 33,554,432 倍之多。我們設(shè)備的精確度已經(jīng)提升了 5793 倍,但是,由于線性對區(qū)域的影響,在原來 5793 倍的基礎(chǔ)上,這一數(shù)字進一步加速了 5793 倍。這就是摩爾定律收益的來源。
Moore 只是在最初的論文中隱晦地提出了這一定律,設(shè)備在接下來十年內(nèi)逐年得到 29% 的提升。事實上,翻倍所用的時間常數(shù)會更長。
現(xiàn)在終于到頭了。并不是因為設(shè)備良率的精確度不再提升了。不是的。而是因為我們拿來做比喻的沙堆變得小到里面只有一粒沙子了。
戈登·摩爾令人難以置信的洞察力
或許讓人印象最深刻的是摩爾對該定律對世界產(chǎn)生的巨大影響的遠見。下面是他文章中的第二段的第一句話:集成芯片會帶來很多令人驚訝的技術(shù),比如家用計算機,或者至少是終端連接在中央自動計算控制中心上的計算機,以及個人便攜式通訊設(shè)備。
摩爾提到的這些東西在 1965 年都算的上驚世駭俗。當時所謂的「微型計算機」還是桌子那么大的,用起來通常還要接一些外圍設(shè)備,如磁帶機、讀卡器或打印機,這樣的機器是很難進入日常家用廚房的,即便是把冰箱、烤箱和水池都扔出去,也很難放得下它。當時的絕大多數(shù)人還沒有見過計算機,跟計算機互動過的人就更少了。而且通常情況下,使用這種設(shè)備的人需要把打孔卡片一張張拆開,然后當人把卡片都放入機器后,一天以后才能打印好。
以今天的標準來看,當時汽車電子系統(tǒng)非常簡單,大約只有 6 個開關(guān),若干個簡單機電裝置驅(qū)動轉(zhuǎn)向指示,有擋風玻璃雨刮器,「分電盤」定時點燃火花塞——在自動電子設(shè)備中每一個單獨的功能產(chǎn)生的絲毫機械都能大到用肉眼看見。當時的個人溝通設(shè)備還是轉(zhuǎn)盤撥號電話機,一個家庭一部,牢牢地固定在墻上。
順便提一下,集成芯片做成的第一臺計算機是用于阿波羅任務(wù)的制導系統(tǒng)計算機,命令模塊(Command Module)中一臺,月球登陸器(Lunar Lander)上一臺。這些集成芯片都是由戈登·摩爾的仙童半導體公司制造的。第一版的計算機上有 4100 個集成電路,每一塊都有一個 3 輸入或非門(NOR gate)。1968 年第一臺功能更強大的載人飛行器僅有 2800 塊集成芯片,每塊芯片上有兩個 3 輸入或非門。摩爾定律在初具成形時就已經(jīng)開始影響月球了。
一點題外話
原版的雜志文章中有這么一個漫畫:
在摩爾定律 40 周年慶上,我問摩爾博士這幅漫畫是不是出自他自己的創(chuàng)意。他回答說此事與他無關(guān),文章中出現(xiàn)這個卡通也讓他很吃驚。
我找不到關(guān)于這幅漫畫來源的絲毫線索,我猜想是這幅漫畫的作者可能對我上面引用的這句話有些不滿。漫畫中的場景設(shè)在一個百貨商店中,當時美國百貨公司通常有一個「Notions」柜臺區(qū),我自己沒有去過這樣的地方,因為現(xiàn)在已經(jīng)沒有了(我是 1977 年到的美國)。看起來,Notions 像是賣服飾用品的,比如一些用于縫紉的徽章、棉線、彩帶等常用品。另一邊是化妝品專柜。而這兩個專柜的中間是便攜式家用電腦專柜,售貨員手里正拿著一臺電腦。
我猜這位漫畫家是想借此取笑摩爾的那個想法,試圖指出它的荒謬。然而 25 年后一切都過去了,當時百貨店里賣的東西也煙消云散了。買化妝品的專柜還在那里,notions 的柜臺早已不見蹤影。這位漫畫家只看到了他眼前的東西,卻看不見未來的趨勢。
摩爾定律中有很多不同的形式,不只是他最初提出的單個芯片上的元件數(shù)量。
在摩爾定律中,關(guān)于芯片運行速度有多快的說法有很多版本,其中一個是,晶體管越小,開關(guān)的速度越慢。同時關(guān)于 RAM存儲量運行計算機的主內(nèi)存有多少。還有關(guān)于文件存儲和磁盤驅(qū)動大小和速度也有多個版本。
多個摩爾定律混在一起對技術(shù)如何發(fā)展產(chǎn)生了巨大的影響。我會討論這種影響的三種模式:計算機設(shè)計中的競爭、協(xié)調(diào)和從眾現(xiàn)象。
競爭
內(nèi)存芯片是數(shù)據(jù)和程序運行時的存儲位置。摩爾定律適用于單個芯片可以存儲的內(nèi)存字節(jié)數(shù),字節(jié)數(shù)通常是定期地四倍數(shù)的增長。因為是四倍的增長,所以硅晶圓代工廠的成本就會長時間內(nèi)下降,這樣一來可以保持盈利了(今天,一家硅晶圓代工廠的資本成本大約是 70 億美元!),此外還需要將每個 memory cell 在每個維度上增加一倍,以保證設(shè)計的平衡,因此這就又增加了四倍。
在早期的臺式電腦的內(nèi)存芯片中 2 的 14 次方(16384)個字節(jié),當時的內(nèi)存芯片是 RAM(隨機存取存儲器,即內(nèi)存中的任何位置都需要同樣長的訪問時間,沒有快慢之分),而且這樣大小的芯片被稱為 16K 芯片,K 不是整好的 1000,而是 1024(即 2 的 10 次方)。很多公司都生產(chǎn)過 16K 的 RAM 芯片。但是他們從摩爾定律中學到的唯一一樣東西就是市場上何時有望出現(xiàn) 64K RAM 的芯片何時會出現(xiàn)。所以他們也了解自己必須要做什么才能保持競爭優(yōu)勢,他們也知道何時需要做好供工程師設(shè)計新機器的樣品。他們會早早準備好芯片只要新機器一出來,就等著設(shè)計安裝上去。他們還能判斷出在什么時間值得需要付出什么樣的代價以在競爭中保持一點領(lǐng)先優(yōu)勢。每家公司都了解這個游戲(事實上,關(guān)于摩爾定律的時鐘什么時候需要調(diào)慢一些,他們已經(jīng)達成了一致),他們競爭的是作戰(zhàn)效率。
協(xié)作
MIT科技評論曾經(jīng)發(fā)文談?wù)撨^摩爾定律的終結(jié)。如果你是一名設(shè)計師,要為臺式機器設(shè)計一個新的計算機機箱,或者其他類似的數(shù)字機器,你可以調(diào)查一下打入計算機市場的某個好時機,了解各種大小的 RAM 內(nèi)存所需要的電路板空間有多大,因為你已經(jīng)知道了每個芯片有多少字節(jié)空間可用。你知道了磁盤空間的大小與其價格和尺寸的關(guān)系(磁盤直徑的大小會隨著其存儲總量的提高而提高。)你會清楚最新的處理器芯片的運行速度會有多快。你會知道各種分辨率的顯示器的價格。所以,當你打算向市場投放新型計算機時,你可以提前幾年結(jié)合這些數(shù)字了解什么樣的選擇和配置是有潛力的。
銷售此款計算機的公司或許可以造出一兩個關(guān)鍵芯片,但是大部分元件還得從供應(yīng)商那里買。摩爾定律的周期性能讓他們不用擔心會突然出現(xiàn)一個顛覆性產(chǎn)品而打亂自己的業(yè)務(wù)流程和計劃。這才是讓數(shù)字革命按部就班繼續(xù)下去的根源所在。每件事都是有順序可以預測的,所以很少遇到盲阱。在整個人類歷史上的任何技術(shù)領(lǐng)域,我們或許擁有了一個持續(xù)性和可預測性最強的進步通道。
計算機設(shè)計中的從眾心理
但是這種好處帶來的一些影響也可以被看做是負面的(盡管我相信有人會爭辯說其好處是不折不扣的)。我將把其中之一作為討論摩爾定律所深刻影響的第三件事情。
當中央處理器能夠被置于一張芯片(見下面的英特爾 4004)中時,通用計算機設(shè)計的一個特定形式出現(xiàn)了,很快,芯片上的這些處理器(即眾所周知的微處理器)就可以支持通用架構(gòu),即馮諾依曼架構(gòu) 。
這種架構(gòu)的一個顯著特點是:有一個很大的 RAM 內(nèi)存包含著 RAM 芯片中產(chǎn)生的指令和數(shù)據(jù),我們在上文談到了這個內(nèi)容。內(nèi)存被組織成可進行連續(xù)索引(或?qū)ぶ?的位置區(qū)域,每個位置都包含同一數(shù)量的二進制比特信息或數(shù)字。微處理器本身有一些專門的存儲單元(稱為寄存器/ registers)和一個可進行加、乘、(最近出現(xiàn)的)除運算的運算單元等。其中一種專門的寄存器被稱為程序計數(shù)器(Program Counter/PC),它為當前指令保留內(nèi)存中的一個地址。CPU 在當前的指令位置上查看比特信息的模式并將其解碼成所應(yīng)執(zhí)行的操作。這個行為可能是為了取回 RAM 中的另一個位置,并將其放進某個專門的寄存器中(這個過程稱為負載/LOAD),或是為了將內(nèi)容發(fā)送到其他方向(STORE),或是為了將兩個特殊寄存器中的內(nèi)容輸送到運算單元中,接著對該單元的輸出數(shù)據(jù)求和,將其存儲在另一個專門的寄存器中。然后中央處理單元增加其 PC 的數(shù)量并查看下一個連續(xù)尋址指令。一些特殊指令可以改變 PC 并使機器轉(zhuǎn)去執(zhí)行程序的其他部分,這個就是分支(branching)。例如,對于存儲在 RAM 中的某個連續(xù)值數(shù)組,如果其中一個專門的寄存器被用來計數(shù)其求和元素的數(shù)量,那么緊跟在加法指令后面的就有可能是一條遞減計數(shù)寄存器的指令,然后在程序早期進行合并,執(zhí)行另一個負載,如果該計數(shù)寄存器仍然大于零就進行添加。
絕大多數(shù)數(shù)字計算機都是這樣。其余例外都只是黑客們使其運行得更快,但本質(zhì)上仍然與此模型類似。不過請注意,馮諾依曼計算機以兩種方式使用 RAM——用以包含程序中的數(shù)據(jù)以及包含程序本身。我們稍后再談這一點。
由于摩爾定律的所有版本都在堅定地運作以支持這個基本模型,要想打破它十分困難。人類的大腦肯定不會這樣工作,所以似乎存在其它一些強大的方法來組織計算。但是試圖改變基本組織是一件危險的事情,因為基于現(xiàn)有架構(gòu)的摩爾定律將勢不可擋地繼續(xù)運作下去。嘗試新事物最有可能使發(fā)展倒退幾年。因此,諸如來自 MIT 人工智能實驗室(變成了至少三個不同的公司)的 Lisp Machine 或 Connection Machine 和日本第五代計算機計劃(其研究了兩種非常規(guī)的思想:數(shù)據(jù)流/ data flow 和邏輯推理/logical inference)等勇敢的大規(guī)模實驗都失敗了,因為之前長時間的摩爾定律效應(yīng)使傳統(tǒng)計算機的性能翻了一番又一番,其效果超越了新機器的諸多高級功能,而軟件卻可以更好地模擬新思路。
大多數(shù)計算機架構(gòu)師被鎖在了已存在了幾十年的傳統(tǒng)計算機組織中。他們競相改變指令的編碼,使程序在每平方毫米上的執(zhí)行效率略高一點。他們競相更改策略,以求在主處理器芯片上緩存更大、更多的 RAM 內(nèi)存副本。他們競相探討如何在一張芯片上放置多個處理器、如何在一張同時運行有多個處理器單元的芯片上共享 RAM 中的緩存信息。他們競相研究如何使硬件在運行著的程序中更好地預測未來決策,從而可以在白費心機之前預先進行下一個計算。但是基本上,他們都被鎖在了計算的同一種方式上。三十年前,有幾十種詳細的處理器設(shè)計,但現(xiàn)在只有少數(shù)幾個類別:X86、ARM 和 PowerPC。X86 大多是臺式機、筆記本電腦和云服務(wù)器。ARM 多用于手機和平板電腦。你可能會用一個 PowerPC 來調(diào)整汽車的所有引擎參數(shù)。
圖形處理單元(Graphical Processing Units/GPU)是打破摩爾定律枷鎖的一個引人注目的例外。 它們不同于馮諾依曼機。為了獲得(特別是在游戲中)更好的視頻圖像性能,摩爾定律主導下的主處理器已變得越來越好,但是底層模擬也在變得越來越好,這并不足以提高實時渲染的效果。這種情況催生了一種新型的處理器。它對于通用計算不是特別有用,但是在(進行屏幕上的圖形化渲染所需要的)數(shù)據(jù)流的加法和乘法運算方面被優(yōu)化得很好。至此,一個新型的芯片被添加到摩爾定律池中,遠遠晚于傳統(tǒng)的微處理器、RAM 和磁盤。新的 GPU 沒有取代現(xiàn)有的處理器,而是作為圖形渲染所需要的合作伙伴被添加進來。我在這里提到 GPU 是因為原來它們對另一種類型的計算(在過去三年中已經(jīng)變得非常流行)很有用處,這正成為摩爾定律還未結(jié)束的一個論點。我仍然認為它會終結(jié),下一節(jié)將回到 GPU 的話題。
我們確定它會結(jié)束嗎?
如前所述,我們將一堆沙子分成兩半,卻沒法再分那最后一粒,這就是目前的境況,我們面對的是一粒沙子,傳統(tǒng)意義上的戈登·摩爾定律已經(jīng)結(jié)束了。
前面我談到了集成電路的特征尺寸(feature size)及其密度變化。1971 年,戈登·摩爾在英特爾,他們推出了其第一個單芯片微處理器 4004 ——12 平方毫米大小的芯片上分布有 2300 個晶體管,特征尺寸為 10μm。這意味著該芯片上任何組件的最小可分辨尺寸是千分之一毫米。
此后,特征尺寸有規(guī)律地降低,一定面積上的組件數(shù)量定期翻一番。盡管該期限正在逐漸延長。在摩爾最初發(fā)表該定律的年代,芯片革新周期是一年?,F(xiàn)在是兩年多一點。在 2017 的第一季度,我們期望在大眾市場上看到第一款特征尺寸為 10nm 的商用芯片產(chǎn)品,連 1971 年的千分之一都不到,或者說它是摩爾定律 46 年來生效了 20 次的成果。有時技術(shù)飛躍得比以往更快一些,因此 10 μm 到 10nm 之間實際上只有 17 次飛躍。你可以在維基百科上查看詳細內(nèi)容 。2012 年時特征尺寸是 22nm,2014 年是 14nm,現(xiàn)在到了 2017 年的第一個季度,我們將會看到 10nm 特征尺寸的芯片被送到終端用戶手中,并有望于 2019 年左右看到 7nm 的產(chǎn)品問世。仍有一些活躍的研究領(lǐng)域致力于解決 7nm 特征尺寸的難題,不過業(yè)界卻對此信心十足。有預言說 2021 年會突破 5nm,然而就在一年前,能否解決與此相關(guān)的工程問題及其在各行業(yè)中的經(jīng)濟可行性如何還存有很大的不確定性。
5nm 只有大約 20 個硅原子的大小。如果再小的話,該種材料就會受到量子效應(yīng)的主導,經(jīng)典物理學性質(zhì)則會開始坍縮。這就是我所說的沙堆只剩一粒沙子的情況。
今天的微處理器有一張幾百平方毫米大小的芯片和 50 億到 100 億個晶體管。如今它們有很多額外的電路用以緩存 RAM、預測分支等,從而達到提高性能的目的。然而越來越大的尺寸在變得更快的同時也帶來了很多成本。眾多信號于轉(zhuǎn)換過程中所使用的能量在很短的時間內(nèi)會散發(fā)出一些熱量,而一個信號從芯片一邊轉(zhuǎn)移到另一邊的時間最終會受限于光速(實際上光在銅介質(zhì)中的速度會小一些),因而該時間效應(yīng)開始變得顯著起來。光速大約是 30 萬 km/s,或 3×10^11mm/s。因此光(或信號)在不超過 1×10^(-10)s 的時間內(nèi)可以傳播 30 mm(一英寸多點,和今天的一個大芯片的尺寸差不多),這個時間不低于一百億分之一秒。
當前最快的處理器的時鐘速度是 8.760 GHz,這意味著在信號從芯片的一邊傳播至另一邊的時間內(nèi),芯片的這一邊已經(jīng)開始轉(zhuǎn)移下一個信號了。這使得單芯片微處理器的同步性成為了一個噩夢,而一個設(shè)計師充其量只能提前知道來自處理器不同部分的不同信號會遲到多久,并相應(yīng)地嘗試進行設(shè)計。所以與其把時鐘速度加快(這也很難),不如將單芯片微處理器做得更大、加上更多晶體管,讓它在每個時鐘周期內(nèi)做更多事情,在過去的幾年里,我們已經(jīng)看到大尺寸芯片朝著「多核(multicore)」方向發(fā)展,一片芯片上有著 2、4 或 8 個獨立的微處理器。
多核保存了「每秒執(zhí)行的操作數(shù)」(摩爾定律的說法),但是該過程犧牲了簡單程序的同等程度的加速執(zhí)行性能——你不能簡單地在多個處理單元上同時運行某一個單一的程序。對于試圖同時運行很多任務(wù)的筆記本電腦或者智能手機來說,這種犧牲影響不大,因為通常會有足夠多需要立即完成的不同任務(wù)被分包給同一芯片上的不同內(nèi)核,從而使其得到充分利用。但是除了用于特殊計算的任務(wù),當核數(shù)量增加幾倍時情況就不同了。在芯片被閑置時,加速便開始消失,因為沒有足夠多的不同任務(wù)需要被執(zhí)行。
盡管我在上文中提出了為什么摩爾定律將會終結(jié)于芯片的相關(guān)論據(jù),仍然有許多人表示不認同,因為我們打算通過多核和 GPU 來找到少數(shù)原子約束問題的解決方法。但我認為這大大改變了定義內(nèi)容。
這是 DFJ (Draper Fisher Jurvetson)投資公司的創(chuàng)始人 Steve Jurvetson 最近發(fā)表在其 Facebook 主頁上的一張圖表。他說這是由 Ray Kurzweil 編寫的對早期圖表的一個更新。
圖表左軸是每秒每單位美元的計算次數(shù)(以對數(shù)標度)。它代表了計算隨時間推移的價格下降指數(shù)。20 世紀 40 年代有一些特殊用途的計算機,比如布萊切利園(Bletchley Park,又稱 X 電臺)為破譯密碼而建造的電磁計算機,它到了 50 年代就成為了通用型的馮諾依曼計算機并一直保持到了圖表最后的幾個時間點。
圖中的最后兩個點都要歸功于 GPU :GTX 450 和 NVIDIA Titan X。Steve 沒有標記出其之前的幾個點,但是在我能搜索到的(有很多)每一張早期版本的圖表中,2010 年后的點都要歸功于多核。首先是雙核,然后是四核,比如英特爾四核 i7 處理器。
GPU 之所以存在以及人們對它感到興奮的原因是:除了圖形處理,它們在另一個時髦的計算領(lǐng)域也表現(xiàn)不凡——深度學習——一個最初被稱為反向傳播神經(jīng)網(wǎng)絡(luò)的東西——最近在技術(shù)領(lǐng)域產(chǎn)生了巨大的影響。它使得語音識別技術(shù)在過去三年間取得了飛快發(fā)展,從而令蘋果的 Siri、亞馬遜的 Echo 和 Google Home 成為了實用且令人滿意的程序和設(shè)備。它也使得圖像標記的質(zhì)量比 5 年前提高了一大截,還有自動駕駛汽車的一部分態(tài)勢感知實驗,使用了眾多的道路場景來訓練網(wǎng)絡(luò)。深度學習的訓練階段通常是在云端的數(shù)百萬個樣本之上進行的。它產(chǎn)生了幾百萬個數(shù)字,代表著所習得的網(wǎng)絡(luò)。然后當它在識別一個單詞或標記一張圖像時,輸入數(shù)據(jù)會被送入某個程序,執(zhí)行數(shù)百萬個乘法和加法運算從而觸發(fā)該網(wǎng)絡(luò)的生成。巧合的是,GPU 只有在網(wǎng)絡(luò)以這種方式被構(gòu)建的情況下才能達到最優(yōu)的性能,所以我們預計會有更多網(wǎng)絡(luò)被納入到我們的汽車中。GPU 制造商的春天來了!而 GPU 可以做龐大計算的這種能力在任何問題上都表現(xiàn)欠佳。但它們在深度學習網(wǎng)絡(luò)方面表現(xiàn)優(yōu)異,而深度學習正迅速成為這十年的技術(shù)發(fā)力點。
我們確定無疑地聲稱著會繼續(xù)看到指數(shù)式增長之時(如圖),正是被測量量已經(jīng)發(fā)生改變之時。這有點像是在變戲法。
我認為這種變化會產(chǎn)生非常大的影響。
摩爾定律的終結(jié)意味著什么?
我認為摩爾定律的終結(jié)——正如我對終結(jié)的定義——將會帶來計算機架構(gòu)的一個嶄新的黃金紀元。架構(gòu)師們不用再畏縮于摩爾定律的惡性競爭中。他們將能花時間去嘗試一些芯片方面的新想法,因為現(xiàn)在的傳統(tǒng)計算機架構(gòu)將無法在短短兩年或四年內(nèi)跟上軟件迭代的步伐。而且他們可能不會嘗試去提高計算速度,或許是以其它方式來改善計算。
機器學習運行時間
我們已經(jīng)看到使用用于深度學習網(wǎng)絡(luò)的 GPU 作為運行時間的引擎。但我們也看到一些更具體的架構(gòu)。例如,距離谷歌擁有自己的 TensorFlow Units(TPU) 芯片已經(jīng)過去了一年左右的時間了,該芯片通過有效降低(由于神經(jīng)網(wǎng)絡(luò)在低精度時表現(xiàn)相當良好而保留下來的)重要數(shù)字的數(shù)量來為深度學習網(wǎng)絡(luò)節(jié)約功率。谷歌已經(jīng)把許多這種計算機中使用的芯片安裝在其服務(wù)器集群或云端上,并能夠?qū)W習后的網(wǎng)絡(luò)用于各種搜索查詢?nèi)蝿?wù),它的速度更快且電力消耗更低。
專用芯片
現(xiàn)在一張典型的手機芯片有四個 ARM 處理器內(nèi)核以及一些高度優(yōu)化的特殊用途的處理器。這些處理器管理著攝像頭的數(shù)據(jù)流入并優(yōu)化語音質(zhì)量,甚至在一些芯片上有一個特殊的高度優(yōu)化過的處理器用于檢測人臉。這是相機應(yīng)用程序中所使用的處理器——你在拍照時可能注意到了人臉周圍的小矩形——用來決定圖像的哪些區(qū)域應(yīng)該被重點關(guān)注并提供最好的曝光時間——當然是臉!
通用用途的新方式
我們已經(jīng)看到為特定計算所設(shè)計的特殊用途架構(gòu)的崛起。但也許還會看到更多通用架構(gòu)以一種不同的計算風格奮起直追。
可以想見,現(xiàn)在或許值得再次對日本第五代計算機計劃的數(shù)據(jù)流和邏輯模型進行探討。但是當我們把世界數(shù)字化時,有害的計算機安全的成本將威脅到我們的生存。因此如果事情進展不錯,或許被(摩爾定律的惡性競爭)釋放出來的計算機架構(gòu)師們可以慢慢開始將我們從目前的糟糕狀況中拯救出來。
安全計算
我們都聽說過網(wǎng)絡(luò)黑客攻破計算機的事情,他們往往在地球的另一邊,或者是彼時還在一臺計算機上控制著引擎,而很快就開始控制其他的東西,比如一輛駛過的汽車。這是怎樣發(fā)生的呢?
網(wǎng)絡(luò)黑客很有創(chuàng)造力,但他們進入系統(tǒng)的許多方法基本上是借由程序中的一些常見的編程錯誤,這些程序建立在我們之前談過的馮諾依曼架構(gòu)之上。
一個常見的手法是利用所謂的「緩存溢出(Buffer overflow)」。保留一個固定大小的內(nèi)存,例如輸入到瀏覽器或谷歌查詢框中的網(wǎng)頁地址。如果所有程序員的代碼都寫得非常仔細,而有人鍵入了過多的字符,那么其超出限制的部分將不會被存儲在 RAM 中。但通常情況是,一個程序員使用了一種簡單而快速的編碼技巧,這種方式不檢查溢出,且鍵入字符以超出緩沖區(qū)范圍的方式被保存起來,它或許會覆蓋一些代碼而使該程序跳到后方。這取決于馮諾依曼架構(gòu)的特點——數(shù)據(jù)和程序存儲在同一個內(nèi)存中。所以,如果黑客選擇了一些字符,其二進制碼對應(yīng)于一些惡意行為的指令,比如為自己建立一個使用特定密碼的帳戶,然后一切就像施了魔法般,黑客有了一個(類似許多其他人和程序服務(wù)可能會擁有的)計算機遠程訪問帳戶。程序員不應(yīng)該犯這種錯誤,但歷史表明這種情況一次又一次地發(fā)生著。
另一種常見的手法是:在現(xiàn)代網(wǎng)頁服務(wù)中,筆記本電腦、平板電腦或智能手機上的瀏覽器以及云中的計算機,它們有時需要在彼此之間傳遞一些十分復雜的東西。無需程序員事先了解所有復雜的可能情況并處理消息,其設(shè)置方式是:使一方或雙方可以來回傳遞一點程序源碼并在其他計算機上執(zhí)行代碼。這種方式提供了在現(xiàn)有系統(tǒng)中推遲工作而無需更新應(yīng)用程序的強大性能。無法確定一段代碼不會去做某些事情,所以如果該程序員決定通過這一機制提供一個完全通用的性能,那么接收機便無法提前知曉代碼的安全與否以及它們是否會做一些惡意行為(這是停機問題的一般化——我可以繼續(xù)進行下去...但不會)。所以有時網(wǎng)絡(luò)黑客會利用這個弱點,并直接向一些接受代碼的服務(wù)發(fā)送一點惡意代碼。
除此之外,網(wǎng)絡(luò)黑客總在發(fā)明新招——以上兩例只是用來說明黑客當下的一些行為方式。
可以編寫代碼來防止這些問題,但是代碼編寫仍然是一項人為活動,而世界上存在太多人為創(chuàng)建的漏洞。一個應(yīng)對方法是使用額外的芯片,該芯片對程序員隱藏了低層次的馮諾依曼架構(gòu)的可能性,僅僅向內(nèi)存中的指令提供更有限的可能行為集合。
這不是一個新想法。大多數(shù)微處理器有一些版本的「保護環(huán)(protection rings)」,這些保護環(huán)可以讓更多不受信任的代碼僅能訪問越來越有限的內(nèi)存區(qū)域,即使它們試圖以正常的指令來進行訪問。這種想法已經(jīng)存在了很長一段時間,但它一直受阻于缺少一個標準的方法去使用或執(zhí)行它,所以大多數(shù)試圖運行于大多數(shù)機器上的軟件,通常僅僅指定 2~3 個保護環(huán)。這是一個非常粗糙的工具,它放過了太多的代碼。當僅僅追求速度已變得不再實用時,也許現(xiàn)在可以更認真地思考一下這個想法,嘗試讓環(huán)境變得更加安全。
另一個想法——主要只在軟件中實現(xiàn)過,可能有 1、2 個例外——被稱為基于功能的安全(capability based security),來源于基于功能的尋址( capability based addressing)這個概念。程序不能直接訪問所需使用的存儲器區(qū)域,但能獲得不可偽造的參考加密處理,以及一個被定義的、被允許作用于內(nèi)存的操作的子集?,F(xiàn)在硬件架構(gòu)師或許有時間來繼續(xù)推動該方法的完全強制性執(zhí)行,使其在硬件方面成功一次,因而純粹的人類程序員——他們被要求在承諾的發(fā)布期限內(nèi)實現(xiàn)新軟件——就不會把事情搞砸了。
從某個角度來看,我前面談到的 Lisp 機是建立在一個非常具體而有限的、基于架構(gòu)的性能的版本之上。實際情況是,那些機器是馮諾依曼機,但是它們可執(zhí)行的指令是受到故意限制的。在硬件層面,通過使用被稱為「類型指針(typed pointers)」的東西,對每一個內(nèi)存的每一次引用,都會根據(jù)指針中所編碼的類型來限制指令對內(nèi)存的作用。而內(nèi)存只能在其被存儲時通過一個指針被引用到一個固定大小的內(nèi)存塊的起點。因此,在緩沖區(qū)溢出的情況下,一個字符串的緩沖區(qū)將不允許數(shù)據(jù)的寫入或讀取超出其范圍。而指令只能從另一類型的指針——一個代碼指針——中引用。硬件運用存儲時被授予的指針類型來將通用用途內(nèi)存分成一個個十分細小的區(qū)域。粗略地講,指針的類型永遠不能被被變,RAM 中的實際地址也不可能被任何可訪問指針的指令看到。
如何通過使用這種對通用用途的馮諾依曼架構(gòu)的硬件限制來提高安全性——這些想法已經(jīng)出現(xiàn)了很長一段時間。我在這里談過其中的幾個想法?,F(xiàn)在我認為它會成為一個更加吸引硬件架構(gòu)師去投入精力的領(lǐng)域,因為我們的計算系統(tǒng)的安全成為了保證我們的企業(yè)、生活、社會能夠順利運行的一個主要的致命弱點。
量子計算機
目前量子計算機是一個以實驗性為主且花費高昂的技術(shù)。由于需要將它們冷卻到物理實驗級別的超冷溫度且費用不菲,因此對于人們的一些困惑——它們可能會為傳統(tǒng)的基于計算機的芯片帶來多少加速,以及它們針對的是什么類型的問題——來說,目前量子計算機是一項投資大、風險高的研究課題。我不會去考慮所有的參數(shù)(我沒有讀過所有的參數(shù),坦白說我也不具備使我對自己可能構(gòu)建出的任何觀點都感到自信的專業(yè)知識)但是 Scott Aaronson 有關(guān)計算復雜性和量子計算的博客對感興趣的人來說可能是最好的參考來源。已經(jīng)實現(xiàn)或被期望實現(xiàn)的對實際問題的加速宣言,其范圍從 一 倍到幾千倍(可能我所知道的這個上限有誤)不等。在過去,只要等上 10 年或 20 年的時間,就可以讓摩爾定律帶你到達目的地。我們反倒已經(jīng)看到了對某項技術(shù)長達超過 10 年的持續(xù)性投資,人們?nèi)匀辉跔幷撛摷夹g(shù)是否湊效。對我來說,這也進一步說明,摩爾定律的終結(jié)正在鼓勵新的投資和新的探索。
無法想象的東西
即使在摩爾定律的終結(jié)所觸發(fā)的各種創(chuàng)新包圍下,或許我們所能看到的最好的事物還不在人類的共同意識中。我認為,在沒有摩爾定律懸置的情況下,創(chuàng)新自由、需要時間來研究好奇領(lǐng)域的自由,很可能會產(chǎn)生計算模型方面的一個新的伊甸園。5 至 10 年后,我們可能會在傳統(tǒng)的(不是量子)芯片中看到一種全新的計算機組織形式,其速度會超出目前的想象。再往后發(fā)展 30 年,這些芯片可能會做出一些在今天看來與魔術(shù)并無區(qū)別的事情,就像今天的智能手機對 50年前的我來說近乎天方夜譚。
評論