智慧應用 影音
MongoDB
ADI

軟體定義硬體的發展近況

圖為SDH的概念與架構示意圖。DARPA

去年DARPA在ERI(Electronics Resurgence Initiative)中有一項計劃叫Software Defined Hardware(SDH),其實這是半導體行業的老議題了,但是因為機器學習的應用而又升溫;兼之在半導體產業進入異質整合時代,半導體的經濟價值增加要依賴製程微縮以外的方法,SDH又重新進入半導體研發的核心領域。

半導體晶片的設計與製造有一個恆久的兩難:彈性與效率之間的競合。要能執行多種任務的—如CPU—需要彈性,要追求效率的—如ASIC—則需要專注,通常狀況下是魚與熊掌不可兼得,因為半導體晶片被製造出來後,它的線路以及相隨的功能也就被定義了。

60年代起就開始探討這問題,80、90年代這問題又被重新提起,而於現今變成半導體創新的重大議題有不得不然的理由:一個晶片,不管是專注的或是彈性的,其硏究、設計成本動輒上億美金,而銷售數量可能要達千萬級才可能夠回本。因此如何讓一個晶片可以重複使用、高效執行不同任務就成為一個創造高經濟價值的方法。

這想法很久以前就有,但是近年來才讓這想法的實現趨近於可行:讓晶片的線路—也就是功能—可以由外加的軟體來定義(software defined),也就是說,線路是可以重構的(reconfigurable)。

這個想法很容易與現場可編程閘陣列(Field Programmable Gate Array;FPGA)混淆。事實上,在5、6年前的可重構計算評論文章中總有FPGA夾纏其中,FPGA也被常用來當成可重構晶片的基礎元件之一。但有兩點可以將二者區別開。FPGA只有在晶片靜態時可以編程,而可重構晶片可以動態的改變結構,也就是說可重構晶片可以邊執行任務、邊重構。另外二者藉軟體編程的速度相差甚大,FPGA的編程時間高達幾百毫秒、甚至數秒,這遠高於重構晶片所希望達到的速度目標。

可重構晶片的應用過去被定位在加/解密、視訊影像處處理、數位訊號處理、網路安全等,而DARPA的硏究目標則放置在數據密集型的機器學習,這個重新定向極有道理。一來過去可重構晶片中常有DSP晶片,影像、視訊處理是優而為之的事,而這也是機器學習目前的主要功課之一。另外,可以動態重構表示晶片可以學習後改進技能,這是人工智慧的核心技能。

一個小插曲。DARPA在其項目說明中將重構晶片的重構時間目標定為300~1000 ns,而這幾天北京清華大學教授魏少軍發表了一篇文章,說大陸目前的項目成果重構時間已達20~40 ns,足足提升了一個數量級。值此中美科際競賽之際,發表這個成果是不是別有意趣?

現為DIGITIMES顧問,1988年獲物理學博士學位,任教於中央大學,後轉往科技產業發展。曾任茂德科技董事及副總、普天茂德科技總經理、康帝科技總經理等職位。曾於 Taiwan Semicon 任諮詢委員,主持黃光論壇。2001~2002 獲選為台灣半導體產業協會監事、監事長。