再思考FPGA中的同構(gòu)和異構(gòu)設(shè)計(jì)架構(gòu)
早在2001年,我曾寫過(guò)一篇專欄文章,內(nèi)容是關(guān)于在針對(duì)信號(hào)處理的應(yīng)用中,采用異質(zhì)結(jié)構(gòu)設(shè)計(jì)所具備的優(yōu)點(diǎn)。我的依據(jù)是:信號(hào)處理應(yīng)用一般包括不同的數(shù)據(jù)速率、數(shù)據(jù)類型和算法;另外,針對(duì)這些不同需求有針對(duì)性地采用不同處理引擎,比一個(gè)以不變應(yīng)萬(wàn)變的方法更有價(jià)值。當(dāng)時(shí),采用異構(gòu)處理架構(gòu)一般意味著采用兩個(gè)或更多個(gè)芯片。
六年后,我們置身于追逐采用多核架構(gòu)的潮流之中。這些芯片包含數(shù)以十計(jì)甚或數(shù)以百計(jì)的處理器,有時(shí)甚至包括類似FPGA那樣的器件。此時(shí),是采用同構(gòu)還是異構(gòu)處理元件的問(wèn)題仍是個(gè)關(guān)鍵的設(shè)計(jì)決定,盡管在這種情況下,問(wèn)題出現(xiàn)在芯片層面而非系統(tǒng)層面。
一般來(lái)說(shuō),同構(gòu)設(shè)計(jì)便于使用且適合更廣泛的一系列應(yīng)用,但這些優(yōu)點(diǎn)以性能和效率為代價(jià)。異構(gòu)方案舍棄了一定的通用性和使用上的便利,但對(duì)其目標(biāo)應(yīng)用來(lái)說(shuō)效率更高。從芯片供應(yīng)商的角度講,問(wèn)題就變成:是把芯片設(shè)計(jì)得盡可能滿足多種應(yīng)用,還是只將其定位在一兩個(gè)目標(biāo)市場(chǎng)。
解決方法之一是:以一種相當(dāng)通用的同構(gòu)方法為出發(fā)點(diǎn),然后,一旦該芯片找到細(xì)分市場(chǎng)且該市場(chǎng)已成型,則轉(zhuǎn)向一個(gè)基于應(yīng)用的專用異構(gòu)方法。這就是 picoChip所采取的策略:其最初芯片有一個(gè)高度類似的處理器陣列,而其最新芯片通過(guò)整合進(jìn)專用協(xié)處理器,轉(zhuǎn)而衍變?yōu)槊嫦蛱囟☉?yīng)用的產(chǎn)品。FPGA供應(yīng)商Altera和Xilinx已從提供通用的具有“海量門”的芯片向整合了硬連線信號(hào)處理元件、存儲(chǔ)器、處理器和專用I/O的芯片發(fā)展。
我相信,在嵌入式應(yīng)用中,對(duì)從同構(gòu)到異構(gòu)整個(gè)范疇內(nèi)的所有芯片劃分來(lái)說(shuō)都存在著大量機(jī)遇。對(duì)多核架構(gòu)芯片供應(yīng)商來(lái)說(shuō),關(guān)鍵是使架構(gòu)迎合市場(chǎng)需要,并注意同構(gòu)和異構(gòu)架構(gòu)的優(yōu)劣權(quán)衡。