來,世聰,讓北北糾正你幾個錯誤的觀念:
FPGA 的 FP 是 field programmable,後面兩個字不重要。Field programmable 的意思是像錄音帶,可以一錄再錄,和 ASIC 不一樣,ASIC 像 DVD,錄後定型。所以 FPGA 本身沒什麼高級技術,就好像錄音帶本身不怎麼樣,要錄上蔡琴唱的歌才有意義,錄我唱的不能聽。ASIC 的 AS 是 application-specific,意思是有特定用途,工程師設計好交給台積電 fab 後就確定了,每次改版美金 $100,000起跳。
AI 當然是人工智慧。人工智慧基本上是軟體,沒有什麼叫做 AI 晶片這種東西,要有也只是輔助運算的特殊硬體,ASIC 或 FPGA 都行。
RISC 是 reduced instruction set computer,是設計 CPU 中央處理器的方法之一,本身無所謂優劣,就像我們台灣的碗粿,不同做法很多,也都好吃,沒有哪一家最好。像英特爾的 X86 有沒有?每個 CPU 都有它自己固定的 instruction set,指令集。指令集是二進位數碼,要讓軟體工程師能寫程式就必須變成英文,像 mov, ror, sti, clr, 有上百個,叫 mnemonics, 中文不詳。這種語文叫做組合語言,不是 C 和 C++ 那種正常人看得懂的。指令集減少精練的設計叫做 reduced instruction set computing.
「演算法」是 algorithm,是你對解決問題構想出來的方法。有點像我們在高中證明畢氏定律,有些人畫幾何輔助線,有些人純憑數學。或牛頓物理計算拋物線,你可以用力學公式,也可以靠能量(動能、位能)等算出,結果只要你對,答案都一樣。Algorithm 本身沒有什麼特別神奇的地方,它的意思就是「數學方法」。
最後,晶片或 IC 不是什麼可以從電冰箱或洗衣機拆下來就裝到到飛彈上的東西。每顆晶片都有特定目的、用途,不像雞蛋可以做蛋糕,可以煎來吃,可以滷,可以打在湯裡,可以炒飯 etc。雖然都是車輪,沒有人會以為腳踏車輪可以拆下來裝在摩托車上,摩托車輪可以拆下來裝在汽車上,對吧?
總結一下。晶片硬體設計完後以 ASIC 或 FPGA 的型態 fab,安裝到電腦裡,軟體工程師必須以組合語言的 mnemonics(傳統或 RISC 的都沒關係,看 CPU)將「驅動器」(driver) 寫好編成機器碼燒進 EEPROM,電腦啟動 CPU 靠 EEPROM 裡的驅動器讓 FPGA 幹活,這時電腦才活起來。CPU 不懂 FPGA,驅動器才懂。至於驅動器裡面你要怎麼設計,演算法怎麼樣,邏輯怎麼樣,跟作業系統如何銜接,怎麼管 FPGA⋯那是韌體設計師的事。如果硬體設計有錯,你得幫他擦屁股,因為機器出錯大老闆會生氣,軟硬工程師要互相幫忙掩護(通常是軟體掩護硬體)。只要機器不出錯就好,最好不要讓公司知道。
所以世聰你看,晶片是不能隨便從這裡拔下來往那裡插過去的,道理很清楚了。😅😂
|