影像IC設計疑問 - 工程師

Jacky avatar
By Jacky
at 2017-02-12T17:57

Table of Contents

針對演算法為什麼要從軟體實現改做成IC

前面回文推文的大大已經有提到軟體速度不夠和成本太高等問題

這些問題的根源是因為要實現一套演算法

以下四個參數之間是需要彼此取捨的

1. 面積

2. 功耗

3. 速度

4. 演算法可事後改動的程度

當你希望某些參數表現變好,就要犧牲其他參數的表現


當你選擇將演算法跑在CPU上時,

隱含的意義是你希望演算法可事後改動的程度表現很好。

這樣做會犧牲另外三點的表現。

這三點之間也是可以互相取捨的。

前面幾位大大提到的速度不夠,

指的是在不犧牲面積和功耗的情況下速度不夠。

若願意犧牲面積或功耗,

你也可以超頻(犧牲功耗),

或一次用超多顆CPU平行跑(假設這演算法可平行化程度很高)來增加速度。

類似dasala大大的回文中

"除非你處理器非常強大,也有大量的RAM,但這不合成本"


犧牲演算法可事後改動的程度來換取面積功耗速度的好處,

意思是讓硬體配合演算法的特性做最佳化。

一個簡單的例子是直接看CPU上你的演算法用到哪些硬體,

把沒用到的部分都拔掉,你就得到一個面積跟功耗較小,

又可以做一樣演算法的硬體。

但這時候這顆CPU可能就無法有效實現其他的演算法。

實際上IC對於"演算法可事後改動的程度"會犧牲得很徹底,

盡量換取另外三個參數上的好表現。


平行處理是常見的最佳化作法

前面有推文提到硬體是平行,軟體是sequential

講精確一點的話其實軟體並不是不能平行處理,

例如藉由OpenMP,就可將軟體程式碼跑在多核上。

但重點是CPU上能作的平行處理,並不是配合你的演算法作的。

假設一顆CPU最多可以平行作64個加法,

但你的演算法算到某一步有65個彼此不相干的加法,

軟體實現還是無法一次算完這65個加法,達到最有效率的平行化。

如果作IC,就可以讓這65個加法一次算完。

--

All Comments

Barb Cronin avatar
By Barb Cronin
at 2017-02-15T13:53
我推
Rachel avatar
By Rachel
at 2017-02-17T10:23
Xanthe avatar
By Xanthe
at 2017-02-17T22:15
Barb Cronin avatar
By Barb Cronin
at 2017-02-21T23:19
Caroline avatar
By Caroline
at 2017-02-25T01:12
推~
Aaliyah avatar
By Aaliyah
at 2017-03-01T02:18
Ula avatar
By Ula
at 2017-03-04T12:44
Ethan avatar
By Ethan
at 2017-03-08T23:50
Joseph avatar
By Joseph
at 2017-03-13T02:07
推推
Isla avatar
By Isla
at 2017-03-14T07:13
原po矽谷新貴 推推推

連宇股份有限公司 NFC/RFID高級工程師

Dinah avatar
By Dinah
at 2017-02-12T16:38
【公司名稱】連宇股份有限公司 【工作職缺】NFC/RFID高級工程師 【工作內容】1.NFC/RFID Antenna Design. 2.Design NFC/RFID Reader Circuit. 3.EMVco ...

外商設備職務請益

Steve avatar
By Steve
at 2017-02-12T16:07
各位大大好 爬版了解,四大半導體外商設備 ASML AMAT KLA Lam, 時常看到ASML KLA AMAT有不少外國工程師在台灣支援進出,台灣工程師 需要好的英文能力與� ...

收到ASML的MPS部門面試通知

Ethan avatar
By Ethan
at 2017-02-12T14:47
各位版上大大們好 小魯最近離職在找工作,有幸收到林口ASML的MPS部門之 hardware工程師面試通知 請問該公司與該部門值得去試看看嗎? 薪水與裡面的� ...

影像IC設計疑問

Frederic avatar
By Frederic
at 2017-02-12T02:49
小弟是豬屎屋新鮮人,而且不通數位電路,我分析一下我知道的影像IP。 基本上SoC廠,晶晨,共匪的全志,炬力的video encoder/decoder 我懷疑用的都是同一個IP,就�� ...

影像IC設計疑問

Robert avatar
By Robert
at 2017-02-12T01:25
: 1. 驗證有二種, 一種是驗你的演算法好不好, 另一種是驗你的verilog寫得對不對 : 演算法的部份用C/C++寫會相對寫verilog好作事, C的免費compiler到處都有, ...