設(shè)計靈活、高性能的嵌入式系統(tǒng)
分立處理器只能提供固定的外設(shè)選擇,并且一些性能受到時鐘頻率的限制。在嵌入式 FPGA所提供的平臺上,您可以創(chuàng)建一個具有大量定制處理器核、靈活的外設(shè)、甚至協(xié)處理減負引擎的系統(tǒng)?,F(xiàn)在,您能設(shè)計出一個不折不扣的定制處理系統(tǒng)——不僅滿足最具挑戰(zhàn)性的項目要求,而且能夠沖破性能極限,與此同時,通過使用FPGA硬件實現(xiàn)加速的軟件指令最大限度地提高系統(tǒng)的性能。隨著FPGA架構(gòu)的加速,從前的限制便不復(fù)存在。
靈活性
除了在Xilinx® VirtexTM平臺的FPGA中所提供的高性能PowerPCTM硬件處理核和使用匯編語言編程的占位空間更小的PicoBlazeTM微控制器外,Xilinx公司還提供一種可定制的通用32位 RISC處理器。由于可以使用Virtex或
使用可定制核和IP,您只需創(chuàng)建所需的系統(tǒng)元件而不浪費任何芯片資源。當(dāng)您使用像FPGA這樣的可編程器件構(gòu)建一個處理系統(tǒng)時,就不會在分立器件中浪費任何未使用的資源,也不會出現(xiàn)當(dāng)需要的外設(shè)數(shù)量超過所提供的數(shù)量時(例如您的設(shè)計需要3個UART,而分立器件只能提供1個或2個),設(shè)計無法繼續(xù)進行的情況。此外,您不會受限于初始的架構(gòu)設(shè)想;相反,您能不停地進行大的修改并且能夠調(diào)整系統(tǒng)架構(gòu)來適應(yīng)新的需求特性或不斷變化的標準。
圖1 - 簡化的MicroBlaze框圖
在“2006年嵌入式系統(tǒng)大會”的論文匯編中有一個FIR濾波器的設(shè)計示例,其中,MicroBlaze系統(tǒng)包含一個可選的符合IEEE 754標準的內(nèi)部浮點單元(FPU),從而大大提高了該處理器核上僅可由軟件執(zhí)行的操作的性能。通過加入可選的MicroBlaze元件,可以迅速地提高應(yīng)用程序的性能。
這些可選內(nèi)部元件的另外一個優(yōu)勢就是它們得到MicroBlaze C編譯器的全面支持,因此不必改變源代碼。在這個FIR濾波器設(shè)計示例中,由于調(diào)用外部C代碼庫的浮點函數(shù)的操作被使用新的FPU的指令自動取代,因此加入FPU和對設(shè)計的重復(fù)編譯意味著直接的性能提升。
與軟件重新編碼方法相比,使用專用硬件處理單元,能夠?qū)⑼瓿商囟ㄈ蝿?wù)所需的時鐘周期數(shù)減少幾個數(shù)量級,從而提高處理器的性能。圖1的簡化圖顯示了一個帶有內(nèi)部FPU IP核、本地存儲器核和像UART或JTAG調(diào)試端口這樣的可選外設(shè)的MicroBlaze處理系統(tǒng)。由于系統(tǒng)是可定制的,我們可以方便地實現(xiàn)Xilinx處理器IP產(chǎn)品目錄中所包含的多個UART或其他的IP外設(shè)核,其中包括DMA控制器、IIC、CAN或DDR存儲器接口等。
該IP產(chǎn)品目錄提供了門類齊全的其他處理IP(橋、仲裁器、中斷控制器、GPIO、定時器和存儲器控制器等),以及適用于每個IP核的可定制選項(例如波特率和奇偶校驗位),以對元件的特性、性能和尺寸/成本進行優(yōu)化。此外,您還能設(shè)置與處理核相關(guān)的時鐘頻率、調(diào)試模式、本地存儲器容量、高速緩存和其它選項。僅僅增加一個FPU核,我們就能創(chuàng)建一個可將前文所提到的FIR的實現(xiàn)從8,500,000個CPU周期優(yōu)化至177,000個CPU周期的MicroBlaze系統(tǒng),這樣,在不改變C代碼源文件的情況下即可將性能提高48倍。
在第二個示例中,我們將構(gòu)建另外一個設(shè)計模塊,實現(xiàn)一個面向MP3解碼器的IDCT引擎,這一設(shè)計可使應(yīng)用模塊的速度加快一個數(shù)量級。
您可以使用圖2中所示的開發(fā)工具,方便地創(chuàng)建上文提到的兩個處理器平臺。這個集成式軟件/硬件開發(fā)工具包括一塊直接支持PowerPC和MicroBlaze處理器設(shè)計的Virtex-4參考板。開發(fā)工具還包括所有的編譯器和所需的FPGA設(shè)計工具,以及IP目錄和用作預(yù)校準的參考設(shè)計。
再加上JTAG探測器和系統(tǒng)電纜,此開發(fā)工具能夠讓您在開始編輯和調(diào)試自己的設(shè)計變更之前,輕松構(gòu)建和運行一個工作系統(tǒng)。不同器件和板卡的開發(fā)工具,可從Xilinx公司及其分銷商以及第三方嵌入式系統(tǒng)合作伙伴那里得到。
圖2 - 集成式硬件/軟件開發(fā)工具
查明瓶頸和實現(xiàn)協(xié)處理
MicroBlaze處理器是EDN公司2005年的百件熱門產(chǎn)品之一,使用獲得IEC(國際工程協(xié)會)大獎的Xilinx Platform Studio(XPS)嵌入式工具套件實現(xiàn)硬件/IP的設(shè)置和軟件的開發(fā)。XPS包含在我們預(yù)先配置的嵌入式開發(fā)系統(tǒng)中,是用來創(chuàng)建系統(tǒng)的集成式開發(fā)環(huán)境(IDE)。如果您擁有一塊標準的參考板或已經(jīng)創(chuàng)建了自己的電路板描述文檔,那么XPS就可以驅(qū)動一個設(shè)計向?qū)砜焖俚嘏渲媚某跏枷到y(tǒng)。
通過使用智能化工具來減少錯誤和學(xué)習(xí)壓力,您就可以集中精力提高最終產(chǎn)品的價值。完成基本的配置后,您可以花一些時間來調(diào)整IP,從而定制自己的系統(tǒng),然后進行軟件應(yīng)用的開發(fā)。
XPS為程序員提供了一個功能強大的基于Eclipse框架的軟件開發(fā)IDE。這一環(huán)境對于開發(fā)、調(diào)試和管理代碼以查明隱藏于其它不可見的代碼執(zhí)行中的性能瓶頸是十分理想的。這些代碼中的不足之處經(jīng)常會使設(shè)計達不到所要求的性能目標,但它們又很難被發(fā)現(xiàn)而且通常更難被優(yōu)化。
使用像“內(nèi)聯(lián)代碼”這樣的技術(shù)來減少多余的函數(shù)調(diào)用開銷,就能夠?qū)?yīng)用程序的性能提高1%~5%。但如
圖3顯示了XPS性能分析截屏圖。XPS可以用不同的形式顯示分析信息(profiling information),這樣您就可以一目了然地看清突出顯示在性能圖上的趨勢或個別相沖突的程序。柱狀圖、餅狀圖和測量指標表格,讓定位和判斷函數(shù)與程序的不足之處變得簡單,這樣您就能夠采取行動來改進這些極大影響整體系統(tǒng)性能的程序。
圖3 - XPS嵌入式工具套件
圖4 - MicroBlaze MP3解碼器示例
自帶IP模塊的軟處理器核
在我前面所介紹的MP3解碼器示例中,我們從多個MicroBlaze處理器的示例化開始,構(gòu)建了一個定制系統(tǒng)(圖4)。由于MicroBlaze處理器是一個軟核處理器,因此我們能方便地構(gòu)建一個具有多個處理器的系統(tǒng)并能平衡性能負載,從而得到一個優(yōu)化的系統(tǒng)。
從圖4我們可以清楚地看到,頂部自帶總線和外設(shè)的MicroBlaze塊與底部的MicroBlaze塊和它自帶的外設(shè)是彼此分開的。此設(shè)計的頂部區(qū)域運行支持整個文檔系統(tǒng)的嵌入式Linux操作系統(tǒng),這樣就能通過網(wǎng)絡(luò)接入MP3比特流。我們將這些比特流的解碼和播放操作留給第二個MicroBlaze處理器。在此設(shè)計中我們加入了緊密耦合的DCT/IMDCT(正向和反向改進的離散余弦變換)函數(shù)處理器減負引擎和兩個高精度MAC單元。
IMDCT塊負責(zé)數(shù)據(jù)的壓縮和解壓縮,以縮短傳輸線的執(zhí)行時間。DCT/IMDCT是壓縮應(yīng)用中計算量最大的兩種函數(shù),因此將整個函數(shù)放到它自己的協(xié)處理模塊中執(zhí)行,極大地提高了整個系統(tǒng)的性能。與前面提到的在FIR濾波器中加入一個內(nèi)部FPU的設(shè)計示例不同的是,這個MP3設(shè)計示例已經(jīng)實現(xiàn)了MicroBlaze的定制,并且在FPGA中加入了外部專用硬件。
圖5 - 協(xié)處理加速的結(jié)果
協(xié)處理+可定制IP = 高性能
通過將軟件函數(shù)的大量計算負擔(dān)轉(zhuǎn)移給協(xié)處理的“硬件指令”,您就能找到一個最佳的平衡點,使系統(tǒng)性能達到最佳。圖4還顯示了Linux文件系統(tǒng)模塊的一系列IP外設(shè),其中包括UART、以太網(wǎng)MAC和其他各種存儲器控制器選項。與此不同的是,編碼/解碼應(yīng)用模塊采用了針對不同系統(tǒng)功能定制的不同IP。
第二個MicroBlaze軟核從屬于第一個MicroBlaze處理器,并扮演用于對MP3比特流進行解碼的任務(wù)引擎的角色。帶有附加專用IP核的解碼算法,通過Xilinx快速單工連接(Fast Simplex Link,F(xiàn)SL)接口直接連到FPGA架構(gòu)硬件資源內(nèi)部。這一協(xié)處理的設(shè)計技術(shù)充分利用了FPGA硬件相對于較慢的獨立式處理器的順序指令執(zhí)行而言所具有的并行和高速特性。
與高性能FPGA架構(gòu)直接相連,可以引入快速的乘累加模塊(圖4中的LL_SH MAC1和LL_SH MAC2),與DCT和IMDCT模塊的專用IP形成互補。長長整型MAC模塊能夠提供更高的精度,同時減輕處理單元的計算負荷。您可能注意到,在AC97控制器核到外部AC97多媒體數(shù)字信號編解碼器接口之間同樣使用FSL連接,這可使MP3播放器實現(xiàn)CD音質(zhì)的輸入/輸出。
評論