前往主要內容
工商時報LOGO

敏捷開發 AI時代的晶片開發法

《半導體超進化論:控制世界技術的未來》書摘精選

半導體已成了龐大的技術集合體,已非一個企業或國家所可以掌握,應把它視為人類的共有財產。圖/freepik
半導體已成了龐大的技術集合體,已非一個企業或國家所可以掌握,應把它視為人類的共有財產。圖/freepik

已將目前網頁的網址複製到您的剪貼簿!

編按:晶片製造廠商,圍繞著下一世代的晶片生產,展開激烈的競爭,半導體也成了龐大的技術集合體。日本半導體產業關鍵人物東大教授黑田忠廣認為,並非要煽動半導體戰爭,而是要建構晶片網。因此我們不可以見木不見林,打造豐富的產業生態系,正是世界接下來的課題。本文摘自新書《半導體超進化論》。

從瀑布式模型到敏捷式模型

以往,系統以及軟體的開發都是以瀑布式模型為主流。這方法是一開始先決定規格與計畫,然後遵循計畫,由上而下進行開發.安裝。前提是無法回到前面的工序,就如同水流無法由下游往上游流,以此為喻,就稱其為瀑布式。

與之相對的方法則是由下而上,以小單位不斷重複進行安裝與測試,以推進開發,這種方法就是敏捷式開發。在二○○一年時,敏捷式開發做為新方法而登場。與瀑布式模型相較,許多地方都能縮短開發期間,因為其「快速」「機敏」而被稱為敏捷式。

即便是在開發途中也可以改變規格或追加,這一點也是敏捷式開發的優點。另一方面,敏捷式開發也有缺點,那就是開發的方向性容易有偏差,難以掌握住總體而不容易管理預定計畫表。

如果前提是在開發途中可以理所當然地變更規格與設計,就不用在設計的階段嚴格決定好規格,只要先決定好大致的規格,具備於中途出現變更時能臨機應變的靈活性,就比較能應對顧客的需求。

決定好大致的規格與計畫後,就將系統分成小單位,進行「計畫」「設計」「安裝」「測試」,並在一~四周左右的期間內不斷進行效能的釋出。

另一方面,晶片的設計則是由上而下的。

我們將用文章與圖所表示的規格書以Verilog等的硬體描述語言來書寫,然後將處理步驟寫入按時脈週期分解的RTL(暫存器傳輸級)描述中。接著,透過邏輯設計、電路設計、佈局設計,最後描繪出光罩的幾何學式模樣。像這樣,晶片的設計就是依次降低抽象度的變換作業(圖5-1)。而這樣的變換能藉由ChatGPT來達到自動化。

晶片的使用者,也就是配套製造商是設計到RTL(前端設計),而半導體設計公司則是進行邏輯設計以下(後端設計),做出了分工體制。

要提升設計效率,就要利用電腦的自動設計,從資訊量特別多的下游依次導入。在一九七○年代時是光罩設計,八○年代是佈局設計、九○年代則是邏輯設計被自動化。從一九九○年時起,也開始進行將系統設計自動化的高位合成相關研究,從二○一○年左右開始,則開始在部分上進行實用。

可是,一般要提升系統設計效率的方法是再利用RTL。像是核心處理器或是記憶體控制器那樣的通用效能是作為設計資產(IP)在進行流通的。此外,專用電路的RTL也不是從頭開始製作,而是重新利用過去設計過的RTL所組成的。

即便如此,最近的大規模晶片,例如像是蘋果的處理器A12中就集積有六十九億個電晶體,但這樣的晶片開發是配屬了幾百名工程師,耗費數年歲月完成的。而開發費則高達數百億日圓。

集積度呈現出指數性的增大。過往的開發方法也差不多來到了極限。

再加上AI出現了。AI的進化是日新月異的,前年的技術馬上就相形見絀了。晶片的開發是以年為單位,還需要數百億日元的費用,這樣的風險太高了。

晶片的敏捷開發

我們認為,晶片使用者所進行的系統設計.驗證也適用於敏捷開發的方法。

將系統分成小單位,用C/C++或是Python來記述後,利用高位合成的工具自動生成RTL,並由下而上地來組成系統。

如寫軟體程式般,晶片可以使用敏捷開發,所以能大幅縮短配套製造商的開發期間與費用,能減輕開發風險。

高位合成的工具能改變電路性能以及佈局面積,瞬間生成各種RTL。利用這點來探索效能與面積的折衷,設計出最適合的RTL,接著安裝在FPGA上又或是使用ASIC用的模擬器來進行測試,就能在短時間內重複釋出效能。

在過往的方法中,設計者於深刻理解規格後,就會描繪區塊圖,並且縝密計算各區塊的性能以及信號連接混雜度等後著手進行設計。可是在設計的初期階段,難以估算效能與面積,只能仰賴直覺與經驗。而最重要的是,若系統很複雜,就會變得無法掌控。

在敏捷開發法中,電腦會將分成小單位的功能區塊不斷進行自動設計與驗證,同時釋出。ChatGPT可以將這作業自動化。

我們也可以利用電腦自動化,由下而上地組合被釋出的功能區塊。若使用高位合成,則可以擁有分散至各功能區塊上的控制構造,所以能連接功能區塊,組成整體的控制。

也就是說,就像軟體的平行與分散式程式那樣,能製造出組成功能區塊的大規模晶片。

若是用C/C++或Python來記述,與RTL記述相比,能將行數縮短至1/100。因此能大幅縮短設計者花在研究以及模擬上所需的勞力以及時間。

高位記述能利用參數來表現電路構造,所以在能進行更廣泛安裝的同時,也能重新掌握安裝的範圍,也就是功能、性能、介面設定的設定範圍。

再加上,只要一起準備好設計記述以及對偶關係中的驗證模型,不僅容易確認變更範圍,在設計的同時還能有效地完成驗證環境。亦即可以橫跨設計與驗證兩方面進行敏捷開發。

這個方法是用專用的控制電路來連接功能區塊,所以能提高能量轉換效率。將IP連接到CPU匯流排,由CPU來進行中央控制是一直以來的方法,但這方法在面對5G(通訊)、H.265(壓縮動畫)以及WPA2(密碼)這樣複雜的處理時,無法引出高性能。

此外,在過往的方法中,會因為也想再度利用到其他企畫中來設計RTL,所以總是會設計超出必要的高性能電路,但是使用高位合成時,針對每個企畫都會自動生成最適合的性能以及面積的電路。

分治法(Divide and Conquer)

我在柏克萊加州大學CAD課堂上最初學到的,就是分治法(Divide and Conquer)。這個概念是,即便是複雜的問題,只要將之分割成同樣小的問題,一一解決後組合起來,就能導出解決方法。大多數的電腦演算法,都是用這套想法來設計的。

將分割問題、解法、結果組合起來,是使用遞迴法。最後,會大幅縮短計算時間。

例如來比較一下排序演算法的計算量O吧。計算量的O會因應輸入尺寸n的不同而有怎麼樣的變化呢?若是用最單純的泡沫排序這個方法,O會與n2成比例,與之相對,若是使用分治法的快速排序,O則會與nlog2n成比例,會大幅地縮短(36)。試舉一例,n為1000的時候,計算量約為1/100,也就是計算約快100倍。

AI時代所追求的是快速地反覆試驗。利用AI分析大量數據資料,找出模型,然後盡早安裝那個模型,接著收集並分析數據資料,重複進行改善。像這樣妥善地進行反覆試驗是最重要的。

敏捷式與大規模設計是背道而馳的,在這樣的制約下,我們必須要創造出符合AI時代的晶片開發法。

不論是關於敏捷開發還是數據資料的收集,我們都從中國那裡學到很多。這麼說來,我想起了來自中國的留學生經常會跟我說:「老師,你準備得太周到了喔。」

文章來源: 黑田忠廣著《半導體超進化論:控制世界技術的未來》,時報出版提供

您可能感興趣的話題

返回頁首
LOADING

本網頁已閒置超過3分鐘。請點撃框外背景,或右側關閉按鈕(X),即可回到網頁。