FPGA實現(xiàn)多處理器解決方案
本文引用地址:http://m.butianyuan.cn/article/149403.htm
擴展指令集
多個處理器IP供應(yīng)商能夠擴展處理器指令集,以包含在硬件中實施的專用算法,并在FPGA中實現(xiàn)。采用處理器常用的加載/存儲操作,數(shù)據(jù)可饋入到定制邏輯模塊中,成為處理器算法邏輯單元(ALU)的一部分。在有些情況下,定制指令能夠支持多周期操作,實現(xiàn)對FIFO和存儲器緩沖等其他系統(tǒng)資源的訪問。定制指令的典型應(yīng)用包括位處理、復(fù)雜的數(shù)值和邏輯運算等。
依靠處理器加載和存儲操作,定制指令與采用通用ALU資源運行同樣算法相比,具有明顯的性能優(yōu)勢。例如,64kbyte的循環(huán)冗余校驗(CRC)以定制指令運行時,運行速度比軟件快出27倍1。不同的應(yīng)用具有不同的性能結(jié)果,但是總體上比單獨采用軟件快得多。
處理器IP供應(yīng)商不同,開發(fā)人員如何使用定制指令也各不相同。例如,在加入定制指令時,有的必須生成一個新的編譯器。然后,根據(jù)應(yīng)用標準,這種定制編譯器導(dǎo)出定制指令調(diào)用。更簡單的方法是由用戶在其C源代碼中作為子程序來直接調(diào)用指令。由于軟件設(shè)計人員能夠更清楚的掌握何時使用定制指令,因此這種方法更自然一些。
提升系統(tǒng)性能的多種方法
其他提升系統(tǒng)整體性能的方法包括利用硬件加速(也稱為協(xié)處理器)、處理器協(xié)同芯片以及定制片內(nèi)系統(tǒng)等。
與定制指令不同,硬件加速器作為獨立的邏輯模塊直接從嵌入式CPU獲取指令,不需要CPU干預(yù),處理全部數(shù)據(jù)緩沖。一個簡單的模塊框圖包括帶有兩個1/2 DMA通道的處理模塊(一個讀取輸入數(shù)據(jù),另一個存儲結(jié)果)以及一個控制接口,用于CPU建立、啟動、停止以及工作中對各單元的輪詢等。這種體系結(jié)構(gòu)非常適合于對大塊數(shù)據(jù)的處理,此時,CPU加載數(shù)據(jù)并存儲結(jié)果成為性能瓶頸。
硬件加速器由于其固有的自治特性,能夠比軟件運行任務(wù)提高幾個數(shù)量級的性能增益,因此加速功能通常在硬件中設(shè)計實現(xiàn)。
不管CPU是否在FPGA內(nèi)部,與FPGA連接的分立處理器和DSP協(xié)同芯片都可以使用硬件加速、擴展外設(shè)以及接口橋接等?,F(xiàn)在,可直接使用芯片間接口IP,實現(xiàn)對FPGA內(nèi)部外設(shè)、加速邏輯和I/O接口的外部訪問。
總結(jié)
在FPGA中采用多個軟核處理器,根據(jù)時間和功耗要求劃分任務(wù),可高效使用處理能力,與分立處理器相比,具有相同甚至更高的整體性能。多個軟核處理器還可以用作分而治之的策略,來提升系統(tǒng)整體性能或者卸載現(xiàn)有處理器任務(wù),這種策略僅受目標FPGA邏輯和存儲器資源的限制。
一類新的硬件開發(fā)工具、知識產(chǎn)權(quán)內(nèi)核以及FPGA體系實現(xiàn)了這些技術(shù)的主流應(yīng)用。在嵌入式領(lǐng)域,由于這些技術(shù)的成功,主要FPGA供應(yīng)商進一步加大了開發(fā)和投入。在您下一個設(shè)計中,應(yīng)考慮如何應(yīng)用這些技術(shù)。
評論