<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 再思考FPGA中的同構(gòu)和異構(gòu)設(shè)計(jì)架構(gòu)

          再思考FPGA中的同構(gòu)和異構(gòu)設(shè)計(jì)架構(gòu)

          作者: 時(shí)間:2008-10-09 來源:網(wǎng)絡(luò) 收藏

          早在2001年,我曾寫過一篇專欄文章,內(nèi)容是關(guān)于在針對信號(hào)處理的應(yīng)用中,采用異質(zhì)結(jié)構(gòu)設(shè)計(jì)所具備的優(yōu)點(diǎn)。我的依據(jù)是:信號(hào)處理應(yīng)用一般包括不同的數(shù)據(jù)速率、數(shù)據(jù)類型和算法;另外,針對這些不同需求有針對性地采用不同處理引擎,比一個(gè)以不變應(yīng)萬變的方法更有價(jià)值。當(dāng)時(shí),采用處理架構(gòu)一般意味著采用兩個(gè)或更多個(gè)芯片。

          再思考FPGA中的同構(gòu)和異構(gòu)設(shè)計(jì)架構(gòu)

          六年后,我們置身于追逐采用多核架構(gòu)的潮流之中。這些芯片包含數(shù)以十計(jì)甚或數(shù)以百計(jì)的處理器,有時(shí)甚至包括類似那樣的器件。此時(shí),是采用還是處理元件的問題仍是個(gè)關(guān)鍵的設(shè)計(jì)決定,盡管在這種情況下,問題出現(xiàn)在芯片層面而非系統(tǒng)層面。

          一般來說,設(shè)計(jì)便于使用且適合更廣泛的一系列應(yīng)用,但這些優(yōu)點(diǎn)以性能和效率為代價(jià)。方案舍棄了一定的通用性和使用上的便利,但對其目標(biāo)應(yīng)用來說效率更高。從芯片供應(yīng)商的角度講,問題就變成:是把芯片設(shè)計(jì)得盡可能滿足多種應(yīng)用,還是只將其定位在一兩個(gè)目標(biāo)市場。

          解決方法之一是:以一種相當(dāng)通用的方法為出發(fā)點(diǎn),然后,一旦該芯片找到細(xì)分市場且該市場已成型,則轉(zhuǎn)向一個(gè)基于應(yīng)用的專用異構(gòu)方法。這就是picoChip所采取的策略:其最初芯片有一個(gè)高度類似的處理器陣列,而其最新芯片通過整合進(jìn)專用協(xié)處理器,轉(zhuǎn)而衍變?yōu)槊嫦蛱囟☉?yīng)用的產(chǎn)品。供應(yīng)商Altera和Xilinx已從提供通用的具有“海量門”的芯片向整合了硬連線信號(hào)處理元件、存儲(chǔ)器、處理器和專用I/O的芯片發(fā)展。

          我相信,在應(yīng)用中,對從同構(gòu)到異構(gòu)整個(gè)范疇內(nèi)的所有芯片劃分來說都存在著大量機(jī)遇。對多核架構(gòu)芯片供應(yīng)商來說,關(guān)鍵是使架構(gòu)迎合市場需要,并注意同構(gòu)和異構(gòu)架構(gòu)的優(yōu)劣權(quán)衡。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();