ASIC是什麼?特定應用積體電路與CPU、FPGA的差異
ASIC是只為一種固定工作而設計、製造的晶片。做這項工作時,它比什麼都能做的CPU更快,也更省電。不過,它做不了其他工作,而且開始生產前要花很大的費用。因此,越是大量生產的產品,越適合用ASIC。
這篇文章可以了解
- ASIC是什麼,以及生活中用到它的例子
- 專用晶片為什麼比較快,也比較省電
- 「只在一開始花一次的費用」的原理,以及為什麼做越多越划算
- ASIC的製作流程,以及分攤試作費用的方式
- 與CPU、GPU、FPGA的差異,以及與ASSP的差異
先備知識:如果知道晶片(積體電路)是把電晶體和導線整合在一塊矽上的電路,會比較容易閱讀。這在「積體電路(IC)是什麼?」中說明。
生活中的例子
手機上看的影片資料,為了方便傳送,都經過壓縮變小。播放時,要不停地計算,把它還原成原本的影像。許多手機是由專用電路負責這項計算。例如Apple在2023年發表,在iPhone 15 Pro的晶片裡加入了專用電路。這是用來還原AV1格式影片的電路。
網路搜尋和翻譯的背後,也有專用晶片。Google在2016年公開了為AI計算而自行設計的晶片「TPU」。比特幣「挖礦」用的機器裡,也裝著只會做這種計算的晶片。
這種「為一種工作而做的晶片」,就稱為ASIC。像手機的影片電路那樣,放在晶片一部分裡的專用電路,概念也一樣。本文會依序說明,為什麼要特地做專用晶片,又是怎麼做出來的。
ASIC是什麼:為一種工作設計的晶片
ASIC是英文Application Specific Integrated Circuit的縮寫。中文稱為「特定應用積體電路」,也譯作「特殊應用積體電路」。如同名稱,它是為固定用途設計的積體電路(IC)。
相反的想法,是什麼都能用的通用晶片。代表是CPU,只要換掉程式,計算、寫文件、玩遊戲都能做(「CPU是什麼?」)。ASIC則從一開始就限定用途。相對地,它能把這項工作做得非常好。
「一種工作」的範圍,因晶片而不同。有的ASIC幾乎只重複一種計算。也有的ASIC是為了一個產品,把許多功能整合起來設計。兩者的共同點,是「只為這個用途而做」。
用在哪裡?
- 比特幣挖礦:比特幣會一再重複一種計算,從資料算出固定長度的數,尋找符合條件的答案。這種計算是雜湊函數的一種,稱為SHA-256。Canaan公司表示,他們在2013年1月出貨使用ASIC的礦機,而且是全世界第一台。
- AI的計算:Google的TPU,是專門做AI所用「乘了再加」計算的晶片。2016年公開時,它已經在資料中心使用超過1年。
- 影片:除了手機晶片裡的影片電路,也有資料中心用的專用晶片。Google在2021年的論文中,報告了用來轉換影片格式的專用晶片。
- 網路:資料中心裡,有把資料依目的地分送的設備(交換器),裡面就有這種晶片。Broadcom公司在2022年發表Tomahawk 5晶片出貨。1顆晶片每秒可分送51.2兆位元的資料。
- 汽車:Tesla在2019年的學術會議Hot Chips上,說明了為駕駛輔助功能自行設計的晶片。他們表示,1顆晶片的功耗壓在40瓦以下。
原理1:為什麼專用就比較快、比較省電?
CPU會從記憶體一個一個取出指令來執行,指令上寫著工作的步驟。取出、解讀意思、計算、存放結果。它能應付任何工作,但每次都要花計算本身以外的工夫。
ASIC則把工作步驟本身做成電路的形狀。資料只要流過依固定順序排列的計算電路就好。不必花工夫解讀指令,也不用放進用不到的電路。還能把許多相同的計算電路排在一起,同時運作。
能看出效果有多大的例子,是第一代TPU。Google在2017年的解說中,拿它和當時同一個資料中心使用的CPU和GPU比較。TPU比它們快15~30倍。以每單位電力的性能來看,則是30~80倍。不過,比較的只有一種計算:讓訓練完成的AI給出答案。
也就是說,「快」「省電」,指的是設計時決定的那項工作。決定以外的工作,ASIC基本上做不了。
原理2:一開始的費用,與每顆的費用
把ASIC的費用分成兩種來想,會比較容易懂。第一種,是和生產數量無關、只在一開始花一次的費用。這稱為NRE。這是英文Non-Recurring Engineering的縮寫,意思是「不重複的開發費用」,中文常稱為非重複性工程費用。
NRE的內容主要有3項。第一是許多工程師花長時間設計、確認所需的人事費用。第二是設計軟體的使用費,以及使用其他公司設計好的電路藍圖的授權費。第三是製作原版的費用,原版上畫著電路的圖案(光罩)。
光罩大致上是晶片的每一層各需要1片。根據研究公司SemiAnalysis在2022年的文章,先進晶片的層數超過60層。因此,一整套光罩非常昂貴。而且,光罩是一個設計的專用品,不能挪用到其他晶片。
第二種,是每做1顆就要花的費用。這包括在矽的圓形薄板(晶圓)上做出電路、切開、裝進與外部連接的外殼(封裝),再加以檢測的費用。ASIC沒有多餘的電路,可以做得小,所以這筆費用比較便宜。
每顆的費用,是NRE除以生產數量的部分,加上做1顆的費用。接下來,用為了說明而假設的數字來計算。假設NRE是新台幣6億元,做1顆的費用是新台幣100元。只做1萬顆,每顆約新台幣6萬元。做1,000萬顆,每顆就降到新台幣160元。
也就是說,ASIC划不划算,會因生產數量而有很大差異。所以它適合賣出幾千萬台的產品,或像Google那樣自家大量使用的公司。如果只做少量,現成的CPU,或事後可以改寫電路的FPGA會比較便宜。和FPGA的分界點,可以在「FPGA是什麼?」的圖中看到。
原理3:ASIC是怎麼做出來的
ASIC設計的大致流程,和其他晶片幾乎一樣(「積體電路(IC)是什麼?」中的「IC的誕生過程」)。這裡以ASIC特別重要的地方為中心來看。
首先,決定要讓晶片做什麼(規格)。接著,用專用的語言描述電路的功能。晶片裡每隔固定時間,就會送來一次訊號。每次訊號一來,資料就從一個記憶元件移到下一個。描述這種移動方式與途中計算的寫法,稱為RTL。
寫好的功能,會由軟體自動轉換成許多小電路的組合,這些小電路負責處理0和1。這項工作稱為邏輯合成。並不是由人一顆一顆畫出電晶體。
轉換時用的材料,是一套事先設計並驗證好的元件。裡面有AND之類的小邏輯電路,以及記住1位元的電路。元件的高度一致,可以像磚塊一樣排成一列一列。這種元件稱為標準元件(也稱標準單元),整套元件稱為標準元件庫。
接著,決定元件在晶片上怎麼排列、走哪條路線連線(佈局與繞線)。然後,用電腦仔細確認電路能否以決定的速度運作,是否遵守工廠的製造規則(驗證)。
把確認完成的設計資料交給製造端,稱為設計定案(tape-out),也稱為投片。製造端會根據資料製作光罩,在工廠的晶圓上做出電路。設計和製造由不同公司負責的分工方式,在「晶圓代工是什麼?」中說明。
從工廠送回來的第一批晶片,要實際運作來確認。如果這時發現錯誤,就得重做部分或全部光罩,損失金錢和好幾個月的時間。因此,製造前常會先把設計好的電路放進FPGA,試著運作看看。
來看看所需時間的一個例子。Google表示,第一代TPU從設計到在資料中心運作,花了15個月。該公司把這當成非常快完成的例子來介紹。
CPU、GPU、FPGA、ASIC的差異
電路越配合工作,這項工作的效率就越高。相對地,會失去處理其他工作的彈性,也不再容易開始生產。以下把話說得簡單一點,用表格整理4者的差異。
| 事後能改的東西 | 固定工作的效率 | 適合的場合 | |
|---|---|---|---|
| CPU | 程式 | 偏低 | 什麼都能做 |
| GPU | 程式 | 大量進行相同計算時很高 | 影像、AI、科學計算 |
| FPGA | 電路本身 | 中等 | 少量、規格會變 |
| ASIC | 不能改 | 最高 | 大量、規格已定 |
CPU、GPU、FPGA都是買現成的晶片來用。工作內容是事後用程式或電路的設定來決定。只有ASIC,是在做晶片之前就決定工作內容,做進電路裡。
手機等裝置的晶片裡,也有專門做AI計算的電路。這稱為NPU。限定用途來提高效率的想法,和ASIC一樣(「NPU是什麼?」)。GPU為什麼用在AI上,在「AI為什麼要用GPU?」中說明。
實際的產品,會把這些組合起來。手機的核心晶片,是把CPU、GPU、NPU、影片電路整合成一顆的SoC。像Apple的A系列這樣,只為自家產品設計的SoC,是ASIC的一種。賣給許多廠商的SoC,則相當於接下來說明的ASSP。用語之間的關係,整理在「ASIC、FPGA、SoC的差異」的表中。
和ASSP的差異:賣給許多公司的專用品
即使是限定用途的晶片,也有放在型錄上、賣給許多公司的產品。這稱為ASSP(特定應用標準產品)。它是英文Application Specific Standard Product的縮寫。
狹義的ASIC,是為某一家公司或某一個產品做的晶片。ASSP則是用途雖然固定,但任何人都買得到的現成品。例如前面提到的Tomahawk 5,是許多設備廠商買來使用的產品。套用這個分法,可以說它比較接近ASSP。
不過在業界,常把這類產品也包含在內,廣泛稱為「ASIC」。Tomahawk 5有時也被稱為「交換器ASIC」。用語的範圍因人和場合而不同,請依上下文判斷。
分攤試作費用的方式
既然光罩這麼貴,小公司和大學就無法試作ASIC嗎?其實,有降低試作費用的方式。把好幾組設計排在一組光罩上,用一次製造一起做出來。這稱為多專案晶圓(MPW)。因為像大家一起搭的接駁車,也稱為shuttle(共乘)。
光罩和晶圓的費用,由參加者依使用面積分攤。拿到的晶片數量有限,不能用來量產。即使如此,還是能確認自己的電路在真正的矽上能否運作。
例如台積電(TSMC)從1998年起,以CyberShuttle的名稱提供這項服務。在日本,東京大學在1996年成立了VDEC(大型積體系統設計教育研究中心)。它彙整全國大學的設計資料,一直提供便宜試作的管道。
另外,試作之後若要量產,就要做自己專用的光罩。MPW降低的是試作的費用,不是量產的費用。
常見的誤解
誤解:ASIC不論做什麼處理,都比CPU或GPU快
實際上,快的只有設計時決定的工作。比特幣挖礦用的ASIC,既不能播放影片,也不能做試算表。即使同樣是AI的計算,也有擅長與不擅長的。例如第一代TPU是為了「讓訓練完成的AI給出答案」的計算而做,並沒有用在AI的訓練上。「專用就快」中的「專用」容易被忽略,這就是誤解的來源。
誤解:只有擁有巨額資金的大企業,才能做ASIC
實際上,試作可以用MPW分攤費用。選擇比最先進世代更早的製造技術,光罩也會便宜很多。大學的研究室和新創公司,也用這些方法做晶片。不過,量產需要專用的光罩和龐大的設計費用。需要能大量賣出的前景,這一點沒有改變。新聞上出現的ASIC,幾乎都是大企業的最先進晶片,這就是誤解的來源。
誤解:ASIC和FPGA是類似東西的不同名稱
實際上,FPGA是買現成的晶片,事後再寫入電路來使用。ASIC的電路是在工廠做進去的,所以做好之後就不能改。因為有人會先用FPGA試驗同一個電路,之後再做成ASIC,所以兩者容易混淆。
從數字來看
| 項目 | 數字 |
|---|---|
| 第一代TPU與同時期(2015年左右)CPU、GPU的差距(訓練完成的AI的計算,Google 2017年) | 性能 15~30倍,每單位電力 30~80倍 |
| 第一代TPU的開發期間(從設計到運作) | 15個月 |
| 一整套光罩費用的估計(SemiAnalysis,2022年) | 28 nm世代超過100萬美元,7 nm世代超過1,000萬美元 |
| 先進晶片需要光罩的層數(同上) | 超過60層 |
| Tomahawk 5(2022年)分送的資料量 | 每秒51.2兆位元 |
| 影片轉換用晶片的效率(Google,2021年的論文) | 不用專用晶片時的20~33倍 |
| 台積電試作共乘服務的開始 | 1998年 |
光罩費用是估計值,會因調查來源和合約而有很大差異。請當作大概位數的參考。另外,「○ nm」是製造技術世代的名稱,不是晶片上某處的長度(「「2奈米」「3奈米」是什麼的長度?」)。
進一步學習
- 用表格看差異:ASIC、FPGA、SoC的差異、CPU、GPU、NPU的差異、IDM、無晶圓廠、晶圓代工的差異
- 下一步的用語:ASIC(詳細解說)、硬體描述語言、STA(檢查電路能否以決定的速度運作)、PDK(晶圓代工廠交給設計公司的一整套規則與資料)
- 用數字試試看:用晶粒良率計算器,可以算出晶片做小之後,1片晶圓能切出的數量會增加多少。
- 相關文章:「半導體晶片是怎麼做出來的?」(工廠裡的流程)、「微控制器(MCU)是什麼?」(用在許多設備裡的通用小型電腦)