當前位置:
首頁 > 最新 > FPGA、CPU、ASIC、SoC、TPU等等,一文說明它們到底什麼區別

FPGA、CPU、ASIC、SoC、TPU等等,一文說明它們到底什麼區別

世界變化太快,本來生活中就只有CPU,後來又闖入了MCU、FPGA、GPU、DSP、ASIC,已經難以分辨了。現在又多了SoC、SiP、TPU、XPU,讓我們讀書看報越發艱難啦。

它們共同特點是都屬於IC(Integrate Circuit,集成電路),並且具有運算功能。這篇文章就是要區分開它們。

FPGA就如一塊生鐵,其它都是工具

生鐵買回家沒法直接使用,但它能做成各種工具。

FPGA (Field Programmable Gate Array,現場可編程門陣列),把它裝在電路板上也沒法直接使用。FPGA工程師的任務就是通過改變物理上的連接關係,實現各種邏輯和運算功能。

就像一塊生鐵能打造出很多工具,FPGA最強大的地方在於,可以靈活實現各種結構,對事件進行即時響應。比如對於大量的運算:

為了應對人工智慧深度學習對運算的需求,百度和賽靈思合作,基於FPGA推出XPU(X Processing Unit),X應該就是想表明很厲害、萬能的意思吧。

FPGA的缺點也明顯:

FPGA名字當然有其演化的歷史,但實踐上看,名字起得並非完美。

由於名字中有「可編程」的字眼,導致很多人認為FPGA工程師是軟體設計人員。而軟體工程師只是忿忿的說,「FPGA能實現遞歸函數嗎?不行吧。你這也叫編程?」他們絕對不會認為FPGA工程師是自己的一員。

如果從避免混淆的角度來看,我覺得叫FCGA (Field Connectable Gate Array,現場可連接門陣列)更清晰。 「連接」表明從硬體上改變了它,這樣FCGA工程師就清晰無誤地屬於硬體設計工程師了。如果對應到其它硬體電路設計流程,他們同時負責設計、模擬、原理圖、PCB布線、和測試工作。

CPU是通用工具,其它都是專用的

通用工具有很多種。當一個人說工具時,我們很難具體指明他在說什麼。

CPU(Central Processing Unit,中央處理器),它在電路板上的地位是配置和控制其它所有設備,當然也包括FPGA。從功能上看,它是最要的器件。當電源正常工作後,第一件事情就是啟動CPU系統,之後CPU檢查其它硬體的狀態,並依次配置和啟動它們,最終讓系統進入工作狀態。我所認知的CPU都是支持軟體編程的,這保持了通用性。

從控制其它設備和可以編程的角度來看,MCU、DSP、SoC、甚至ASIC都可以劃分到CPU的範疇。

ASIC是專用工具,精益求精

干特定的活,用專門的工具,無比順手啊。

ASIC(Application Specific Integrated Circuit,專用集成電路),為了應對某一特定領域大量的需求,優化到每一個門電路,在性能上做到極致。犧牲了通用性,主要功能無法更改,好處是批量生產成本低、速度快(比FPGA更迅速)、能耗低。

由於深度學習的演算法目前還處於迅速演進過程中,對深度學習ASIC的高度定製,比如針對某種神經網路的定製,是件高風險的事情。也許上午花了上千萬定製的ASIC剛剛問世,下午就出現一種效率提高10倍的演算法,那這塊ASIC也就幾乎沒有什麼價值了。

FPGA、CPU和ASIC比較

下圖表明了它們的位置關係。

它們之間的對話是這樣的:

SoC 和 SiP 是工具包

工具包的意思就是裡面啥都可以有。

FPGA、CPU和ASIC各有優缺點,現在它們已經有融合的趨勢了。

不僅如此,很多晶元也像單片機那樣,集成數模、模數轉換、存儲器、各種通信協議。這些集成了的東西,你中有我,我中有你,難以再區分它們。SoC (System on Chip,片上系統),可以籠統的指代它們。單片機就是很典型的SoC。

而把很多器件融合到一顆晶元裡面難度比較大。直接把它們拼接到一起,然後再加個殼,外觀上構成一個器件,就是SiP(System in Package,封裝系統),技術難度比較低,模塊化較好,緊湊度差些,算是SoC的初級形式吧。

總結

FPGA像塊生鐵,自己怎麼鍛造就怎麼用,CPU適應性強,怎麼編程就怎麼用,ASIC讓你怎麼用你就怎麼用。SoC和SiP是多種晶元的融合體。各種晶元比較一遍,驗證了一個樸素的道理,世上沒有免費的午餐。性能(速度和功耗)、靈活性、價格三者,最多只能佔兩樣。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

碰見垃圾人,請快逃

TAG:全球大搜羅 |