Linux, 工作, 生活, 家人

Hardware, Programming

Reconfigureable Computer

Linux Journal 2005/January 內有一篇文章是講 Reconfigure Computer .
主要概念就是將 FPGA/CPLD 做成可以使用一般的程式去設定成特殊的 function. 所以你寫一隻程式, 很多 function 可以利用 FPGA/CPLD 去達成.

這個架構很早之前就和 AlbertB 談過, 那時候還在概念的階段, 和 Reconfigureable Computer 的概念相去不遠, 所以看到以後, 心有戚戚焉…
以 x86目前的 CPU 架構, 不管是幾個 Opertion Unit, one clock 可以執行多少指令, 還是會遇到很多問題, 像是 Instruction Dependece 或是 Instruction Branch . 就算用二個 pipeline 去算. 還是有其極限
這一點從目前 INTEL/AMD 都傾向將新的 CPU 做 Dual Core 可以看得出來.
另一個瓶頸是以目前的技術, INTEL P4 520 用 90nm 的技術, CPU 耗電量和熱量愈來愈高.

所以目前的走向是多核心, 將 CPU 要做的事抽離出來, 讓專業的 CPU 去做, 而 Reconfigureable Computer 就是讓程式去設定 FPGA/CPLD 要執行什麼程式. 目前這個技術叫做
DEL (Direct execution logical) Process .
以同樣的 execute login processor , 和 INTEL CPU performance 的比較大概是如下圖

程式的話是以 Fortran/C 做原始碼, 經過特別的 Compiler(Parsing/ CFG/DFG Generation /Optimizatin / HDL Generation / Place & Routing 及 Linker 做成最後執行檔
其中可以籍由特殊的架構, 將程式分散在各個 Processer 執行. 有點類似 Cluster 那個樣子
不過是縮小放在一台電腦內

目前我認為這樣的技術會在專業市場先行發酵, 至於一般的運用, 我想可能要觀望
畢竟問題最大的不是技術, 而是習慣.
不過這種開發方式潛力無窮就是了 XD…..

我個人覺得比較好的系統也是類似這樣, Master CPU下分一大塊可 Configureable 的區域
如果我今天 3DES 用的兇, 那我就可以將 3DES 的 Code 載到這個區域, 直接用 Driver 去提供存取介面. 如果不行, 就用 Master CPU 去執行就可以了.

Reference :
Application Defined Processors
SRC Computer Inc.

發佈留言