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