異步晶片即 無時鐘輸入晶片傳統的微處理器所面臨的最緊迫的問題應該是,晶片的時鐘在日益艱難的物理現實的面前僅僅能被加速到一定程度。時鐘的作用在於同步計算機晶片上所有的工作,現在,時鐘的這種角色已是晶片上必不可少的了。無時鐘輸入已經表現出來強大的生命力,尤其是在使用電池的設備中。在異步晶片上的電晶體之間可以獨立的交換信息而無需等待其他的任何事情。傳統的晶片整體以它的最慢的部件的速度運行,而異步晶片以它所有部件的平均速度運行。同時,異步設計在降低能耗等方面也表現出很大的優勢。一個不使用時鐘的計算機晶片將是一個更快更好的晶片,但是把這些將顛覆慣例的設計移出實驗室還有很長的路要走。
基本介紹
走進公司,創造過程,曾經沒有採用的方案,無時鐘晶片的復甦,
走進公司
Karl Fant是Theseus Logic公司的創始人和首席技術官(CTO),他用強有力的語氣告訴我:“我們正在用無政府狀態來取代專政。他跪在地上,充分利用了面前白色書寫板上的每個空間,在上面寫下說明性的例子。他宣布:“最終,每個晶片都將按這種方式來設計,這是不可避免的”。
在矽谷,公司的創始人以縱容他們自己的奇怪的嗜好而著稱,但是在Fant在加利福尼亞Sunnyvale的辦公室卻是一個意外。他的低矮的桌子上堆滿了備忘錄、手抄紙和其他的檔案材料,地板上沒有椅子,只有枕頭隨意地躺在地上。如果你處在我這樣的境況下,你會後悔穿正裝,並且猶豫著你將坐在什麼地方。但是,Fant是個意外。他把我帶到隔壁的一間傳統的會議室里,謝天謝地,那裡有椅子。他在這裡開始宣講這即將到來的晶片革命,這場革命將使計算機晶片從過去的束縛中擺脫出來。
創造過程
從計算機時代誕生以來,晶片的最基本的工作方式就是利用時鐘來組織和運行其任務,甚至我們中間那些對微處理器一無所知的人也知道一些跟時鐘有關的內容。多年來,英特爾(Intel)利用時鐘頻率作為它的一個市場工具,時鐘頻率越高的晶片越好。和價格一起在計算機廣告上占重要位置的,是一個標有類似於“1.3GHz(千兆赫)”的數字。這個數字所指的是時鐘的頻率,它管理著機器的微處理器的運作。例如,在每一個千兆赫的微處理器內部,有一種小的振盪晶體在一秒內振動10億次。工程師被訓練成設計晶片時的首要考慮是在下一次時鐘周期來臨前儘量將事情做好。一個沒有時鐘的晶片將像一個字與字之間沒有任何空隙的文本一樣有用。然而,對絕大多數的晶片設計者而言,拋棄時鐘是難以想像的。
相反地,異步的晶片有很多大的優點。首先,它極大地提高了電能的使用效率,這直接延長了電池的使用時間。無時鐘輸入的技術也為提高計算速度提供了很大的空間。在Sun Mcirosystems、Intel和IBM的實驗室里,無時鐘輸入的晶片加快了在其高端處理器上工作的步伐。1997年,Intel開發了一個異步的,與Pentiun兼容的測試晶片,它比等價的同步晶片在速度上快3倍,能耗降低一半。
在Theseus公司,Fant已經注意到異步設計的另一個優勢。因為由時鐘頻率控制的電路在工作的時候會發出一定頻率的信號,而異步晶片則不會發出任何規則的信號,因而他們可以在某種程度上執行加密,這樣的加密將更難以識別和破解。經過改良以後的加密技術將使異步電路成為各種嵌入晶片的小型卡片的理想選擇,這些卡片可以用於一些對安全比較敏感的領域如存儲病歷、電子資金交換和個人身份識別等。
Intel的設計從來都沒有搬出實驗室,無時鐘輸入晶片在套用上的失敗實際上提供了一個很好的案例,技術的採用無可避免的面臨著巨大的進入市場的障礙,尤其是在計算機這樣的以連續性的快速的創新著稱的產業。
曾經沒有採用的方案
早在1946年的時候,現代計算機技術的奠基人就曾經考慮過異步的設計。但是這些早期的計算機工程師選擇了使用時鐘。Sun公司的一位資深工程師Jo Ebergen說“在那個年代,這樣的選擇是正確的”。Jo Ebergen曾經在一個由Sun的員工和副總裁Ivan Sutherland領導的異步研究小組工作。(在1989年,Sutherland被認為是計算機圖形領域的先驅,他寫的一篇論文重新燃起了在無時鐘輸入晶片技術領域的興趣。)Jo Ebergen補充到,“他們進行設計時所處的技術環境,是使用真空管和中繼電路,那意味著他們如果不利用時鐘來管理整個的工作,他們將無法建立起一台可靠的計算機。”通過使用時鐘,工程師們可以建立故障自檢機制,從而使得計算機變得可靠。
從這個決策起,就誕生了壓倒一切的摩爾(Moore)定律的效應。當時在幾乎所有的研究、開發和半導體產業的產品中,都把焦點集中在有時鐘控制的晶片。到20世紀60年代,無時鐘輸入晶片的概念除了在極少數的深奧的論文和偶爾幾個大學裡面的人那裡存在之外,幾乎銷聲匿跡了。在今天的晶片中,時鐘仍然是其中關鍵的組成部分。當微處理器執行一項給定的操作時,電子信號在極細的金屬線上傳輸、交叉、遇到邏輯門,直到最終將計算結果存放到臨時的存儲器(我們稱之為暫存器)中。比如,你想做4乘以6的乘法。如果能在計算正在進行時,將晶片的速度降下來,看一看暫存器,你就會看到暫存器里的數值在最終得出正確答案之前會改變很多次,比如,從4到12再到8。這是因為發出的用於執行該運算的信號要經過許多不同的數據通道才能到達暫存器,而只有在所有的信號都送達暫存器之後才會給出正確的回響。時鐘的作用就是保證在給定的時間內得到回響。晶片的設計要保證通過電路的最慢的通道,也就是線路最長和門最多的通道,能在單個的時鐘周期內到達暫存器。
但是,超過一定點之後,不斷的加速時鐘頻率就會開始進入收益遞減的階段。這就是為什麼一千兆赫的晶片的運行速度達不到500兆赫的兩倍那么快的原因。時鐘在從頭至尾的工作中必須協調晶片上數百萬個電晶體的工作,這產生了它自己的耗費。時鐘的頻率越高,耗費就越大。在這樣像藝術品一樣的微處理器上,時鐘的耗費往往達到晶片計算能力的30%,並且這個百分比隨著時鐘頻率的提高而加大。這就好比工廠使用管理人員來超負荷生產,這些管理人員雖然提高了效率,但是也占用了大量的工人和機器應有的空間。
由時鐘管理的晶片正面臨越來越嚴重的能量耗費問題:以千兆赫的頻率來協調數千萬個電晶體的工作需要耗費大量的能量,這種耗費最終的結果是使晶片發熱。Intel的首席技術官(CTO),Patrick Gelsinger,在他參加2000年2月份的國際使用電晶體電路會議(the International Solid-State Circuits Conference)的主題演講中曾提到這個問題。Gelsinger只是半開玩笑的說,如果微處理器繼續靠更高頻率的時鐘來運行的話,那么到2005年,一個計算機晶片在運行時的發熱量將會像一個核反應堆那么大。
傳統的微處理器存在的最緊迫的問題應該是,在一定的物理現實面前,晶片的時鐘頻率只能被加速到一定程度。今天,在一個千兆赫的晶片上,還可以將表示二進制0和1的電流脈衝序列在單個的時鐘周期內通過晶片,但這個能力已比較有限。在未來的2年裡預期出現的2千兆赫的晶片上將不再能實現這一點。時鐘所扮演的同步晶片上所有工作的角色將會消失。
無時鐘晶片的復甦
晶片製造商在拋棄時鐘後,將可以從這種束縛中擺脫出來。無時鐘晶片有很大的優勢。例如,由菲力浦電子(Philips Electronics)銷售的基於異步晶片的尋呼機一節電池使用的時間是那些使用傳統晶片的競爭者的產品的2倍。
像一群馬奔跑的速度和其最慢的馬相等一樣,由時鐘管理的晶片的運行速度不會比其最慢的部件快,它只有在它的每個部件都完成了自己的工作以後,才會產生回響。相反,在異步晶片上的電晶體之間可以獨立的交換信息,而無需等待其他的任何事情,因而它可以以所有部件的平均速度運行。Intel和Sun公司採用這種方法製造的晶片原型比採用傳統線路的同類產品的速度快2至3倍。
Intel公司的Ebergen說,“比方說,你交給我一個資料夾,我在資料夾上進行工作,之後再將資料夾交還給你。我把資料夾還給你這樣一個事實意味著我已經完成了在該資料夾上的工作。我們沒有必要每隔5秒中交流一次。只要我們對在什麼時候開始工作和什麼時候提交工作達成協定,我們完全可以完成的更快,我們不需要在整個過程中的每一步都保持同步。”
其他的兩個新的公司:Theseus、Manchester,正在專注於無時鐘晶片在小型卡片上的套用。Fant堅持認為,採用傳統晶片的小型卡片背後隱藏的問題是它易於被攻擊,通過察看這些電流信號,很容易破解晶片的安全密碼。Fant說,“時鐘本身就像一個大的信號在說‘嗨,看這裡’,這就像在一個整齊的佇列里尋找一個人。而異步則更像是一個散亂的人群,沒有明顯的信號可供觀察。潛在的黑客將無從下手。”
速度、能源的效率以及噪音的大小看起來像是任何晶片追求的重要目標,而不僅僅是那些套用在個別領域的晶片追求的目標。但是,Sun、IBM和Intel都有自己小型的研究組從事異步設計在專業套用方面的研究,然而,沒有一家公司宣布要研究一種通用的無時鐘輸入的微處理器。這似乎是一個不尋常的疏忽,一個把提高處理器速度確立到幾乎神聖的目標的產業竟然放棄了提高晶片速度的最有前途的途徑。我們必須思考這是為什麼。
例如,為什麼Intel只在異步晶片方面進行小型的研究?原因在於雖然異步晶片可以比傳統的由時鐘管理的晶片快3倍,能耗小一半,但這些都不足以使產業界把現有的生產線轉換到一個“激進”的技術上。異步晶片在實驗室階段可能比同步的設計要領先好幾年,但是支持傳統微處理器生產的設計、測試和製造的流水線系統仍然比任何支持異步生產的系統要領先至少20年。無論任何人打算開發無時鐘輸入晶片都必須尋求縮短這種差距的途徑。
Intel的資深科學家,Ken Stevens,他曾經參與了1997年的異步設計項目。Stevens說,“如果你花費了3倍的力氣進行異步的設計,但是它將花費你3倍的力氣使它進入市場,所以,你將得不償失。它不足以構成幻想,或者說這個技術是多么的偉大。所有的問題在於你是否能讓它足夠的快、足夠的便宜,以及你是否能維持日後年復一年的持續性生產開發。”
作為由時鐘控制的晶片的替代產品,菲力浦的異步晶片使該公司的尋呼機在同樣的電池能量下可以持續工作原來兩倍長的時間。然而,它是經過了十年左右的潛心研究,才在1998年初次推出的。從事異步晶片研究的科研人員從一開始就明白他們的工作不僅僅是要開發另一種晶片,而且更重要的在於要建立一整套的設計、測試和生產這種晶片的方法,而這是很不容易的。
把無時鐘晶片推向市場的最大的障礙在於,缺乏自動化的設計工具來加速設計人員的設計工作。20年以前,少數的工程師可以在紙上畫出一個晶片的電路。而今天,數百個工程師工作在一個團隊中,協調他們工作的唯一的希望是使用複雜的計算機輔助工具。但是,異步晶片的設計者們面對的是一個雞和蛋的問題:如果異步晶片沒有大量的市場,那么就沒有動力去開發為加快無時鐘晶片研究的輔助工具;如果沒有輔助工具,就不會有晶片生產出來。同樣的問題也存在於晶片測試技術的開發之中,如果沒有足夠多的異步晶片需要做測試,那么也就不會產生開發測試工具的第三方的市場
以菲力浦尋呼機晶片的情況為例,該公司認為跳出這個陷阱的唯一的途徑是自己投資開發所需的工具。菲力浦的一個研究人員,Kees van Berkel,說“在13年的研究之後,我們現在已經形成一個比較有效的異步電路的測試方法”,他從20世紀80年代開始就曾供職於荷蘭大型的異步研究團隊。在這個方面的需求,菲力浦並不是唯一的一家。在為異步晶片的發展創造條件的努力過程中,哥倫比亞大學的科學家Steven Nowick和曼徹斯特大學的科學家Steve Furber各自開發了設計工具,並將它們發布作為共享軟體。Nowick說,“輔助設計的工具是當前的障礙,如果你沒有工具,你就無法以簡單的方式進行工作,也無法訓練人們成為該行業的專家。”
除了新一代的設計、測試工具,無時鐘晶片的成功開發還需要人們理解異步設計。這樣的天才非常的少,因為幾乎每個大學教給他們的工程學學生的異步原理只停留在表層的水平上。傳統的晶片能夠使不正確的送達暫存器的數值移出序列,但是在一個無時鐘晶片里,數值必須一次性正確地送達暫存器。實現這一目標的一種途徑是密切的注意各種細節——電線的長度、和特定的暫存器連線的邏輯門的數目等,從而保證信號以正確的邏輯序列傳輸到暫存器。這些意味著異步設計在物理設計上要更加小心翼翼,同步電路的設計者們在物理設計方面的要求則沒有這么嚴格。
Theseus和其他的公司採用的是另一種方法,他們在晶片上開闢了一條獨立的通信通道。由時鐘管理的晶片在單個的一根線上用低電壓和高電壓來代表0和1;而使用兩條線的“雙軌”的電路,所提供的晶片的通信通道,不僅可以用來傳送比特流,而且可以傳輸方向互逆的信號以說明工作何時已經完成。Fant又提出要用他稱之為“非傳統邏輯”("null convention logic")的系統來取代傳統的數字邏輯系統,這種設計不僅可以識別“yes”和“no”,還可以識別有無回響,這是無時鐘晶片識別一項操作何時仍未完成的方便的途徑。所有的這些想法、概念、方法和傳統的完全不同,在實際中實行它們的時候足以把一個受傳統時鐘管理晶片設計教育的工程師的頭腦搞暈。異步數字設備(Asynchronous Digital Devices)和自同步方法(Self-Timed Solutions)這兩個最新的異步項目的啟動受到加州理工學院和曼徹斯特大學出來的學生的歡迎也無足為奇,因為,這兩所大學都有很久的無時鐘晶片研究的歷史。
一種晶片要取得成功,必須同時具備三個要素:設計工具、生產效率和有經驗的設計人員。該產業時事通訊《微處理器報告》(Microprocessor Report)的主編、微處理器分析專家Max Baron說,“異步設計目前有非常有前途的理念,但是他們沒有實際的生產機器,他們也無法證明他們知道如何建立生產機器。”
雖然無時鐘晶片進入主流還有很長的路要走,但我們已經看到這個轉變的開始。Intel在1997年建立了異步晶片項目,將無時鐘技術的部分元素融入它2001年發布的Pentium 4晶片之中。Stevens說,“我們正從下到上地引入異步設計,在仍舊按傳統設計的晶片的部分部件採用無時鐘輸入的邏輯。關於這一點,如果我們部分採用異步設計,會在能源消耗方面有所改進的話,我們就會採用它。”
Karl Fant是如何樂觀的預計這場晶片革命的呢?在晶片製造業這樣一個成熟的產業,不可能在一個晚上的時間就發生異步設計取代同步設計的事情(“無政府狀態取代專政狀態”)。但是隨著時間的推移,現在平衡將逐漸向異步設計傾斜;會有足夠多的文章寫出來、足夠多的工具開發出來、足夠多的工程師被培養出來,即使在專業套用之外他們將不會再不現實的想像這樣一個晶片的市常Sun的工程師Normoyle說,“一旦人們明白了如何容易的實現它,人們將會很自然的考慮異步設計。我們因為它比其他的要容易而採用它。我們唯一的目標就是比其他人做的更好。當同步設計不再足夠的好的時候,這種轉換就會到來。”