您的下一個嵌入式系統設計項目需要的是什么:是可以讓您輕松地定制設計的靈活的系統元件,還是額外的性能空間,以便您在設計周期中加入更多的功能?為什么要讓自己承受過度的開發壓力,并且只能舍此取彼呢?軟處理和IP定制能夠為同時確保靈活性和高性能提供了最佳的解決方案,將定制設計的概念和協處理帶來的性能加速結合起來。  ">

      技術頻道

      設計靈活、高性能的嵌入式系統

      您的下一個嵌入式系統設計項目需要的是什么:是可以讓您輕松地定制設計的靈活的系統元件,還是額外的性能空間,以便您在設計周期中加入更多的功能?為什么要讓自己承受過度的開發壓力,并且只能舍此取彼呢?軟處理和IP定制能夠為同時確保靈活性和高性能提供了最佳的解決方案,將定制設計的概念和協處理帶來的性能加速結合起來。
      分立處理器只能提供固定的外設選擇,并且一些性能受到時鐘頻率的限制。在嵌入式FPGA所提供的平臺上,您可以創建一個具有大量定制處理器核、靈活的外設、甚至協處理減負引擎的系統。現在,您能設計出一個不折不扣的定制處理系統——不僅滿足最具挑戰性的項目要求,而且能夠沖破性能極限,與此同時,通過使用FPGA硬件實現加速的軟件指令最大限度地提高系統的性能。隨著FPGA架構的加速,從前的限制便不復存在。
      靈活性
      除了在Xilinx® VirtexTM平臺的FPGA中所提供的高性能PowerPCTM硬件處理核和使用匯編語言編程的占位空間更小的PicoBlazeTM微控制器外,Xilinx公司還提供一種可定制的通用32位RISC處理器。由于可以使用Virtex或SpartanTM系列產品中的任意一款在邏輯門外對其進行構建,因此MicroBlazeTM軟件處理器的使用十分靈活,并且您能夠通過定制處理IP外設來滿足您的特定要求。
      使用可定制核和IP,您只需創建所需的系統元件而不浪費任何芯片資源。當您使用像FPGA這樣的可編程器件構建一個處理系統時,就不會在分立器件中浪費任何未使用的資源,也不會出現當需要的外設數量超過所提供的數量時(例如您的設計需要3個UART,而分立器件只能提供1個或2個),設計無法繼續進行的情況。此外,您不會受限于初始的架構設想;相反,您能不停地進行大的修改并且能夠調整系統架構來適應新的需求特性或不斷變化的標準。

      圖1 - 簡化的MicroBlaze框圖



      在“2006年嵌入式系統大會”的論文匯編中有一個FIR濾波器的設計示例,其中,MicroBlaze系統包含一個可選的符合IEEE 754標準的內部浮點單元(FPU),從而大大提高了該處理器核上僅可由軟件執行的操作的性能。通過加入可選的MicroBlaze元件,可以迅速地提高應用程序的性能。
      這些可選內部元件的另外一個優勢就是它們得到MicroBlaze C編譯器的全面支持,因此不必改變源代碼。在這個FIR濾波器設計示例中,由于調用外部C代碼庫的浮點函數的操作被使用新的FPU的指令自動取代,因此加入FPU和對設計的重復編譯意味著直接的性能提升。
      與軟件重新編碼方法相比,使用專用硬件處理單元,能夠將完成特定任務所需的時鐘周期數減少幾個數量級,從而提高處理器的性能。圖1的簡化圖顯示了一個帶有內部FPU IP核、本地存儲器核和像UART或JTAG調試端口這樣的可選外設的MicroBlaze處理系統。由于系統是可定制的,我們可以方便地實現Xilinx處理器IP產品目錄中所包含的多個UART或其他的IP外設核,其中包括DMA控制器、IIC、CAN或DDR存儲器接口等。
      該IP產品目錄提供了門類齊全的其他處理IP(橋、仲裁器、中斷控制器、GPIO、定時器和存儲器控制器等),以及適用于每個IP核的可定制選項(例如波特率和奇偶校驗位),以對元件的特性、性能和尺寸/成本進行優化。此外,您還能設置與處理核相關的時鐘頻率、調試模式、本地存儲器容量、高速緩存和其它選項。僅僅增加一個FPU核,我們就能創建一個可將前文所提到的FIR的實現從8,500,000個CPU周期優化至177,000個CPU周期的MicroBlaze系統,這樣,在不改變C代碼源文件的情況下即可將性能提高48倍。
      在第二個示例中,我們將構建另外一個設計模塊,實現一個面向MP3解碼器的IDCT引擎,這一設計可使應用模塊的速度加快一個數量級。
      您可以使用圖2中所示的開發工具,方便地創建上文提到的兩個處理器平臺。這個集成式軟件/硬件開發工具包括一塊直接支持PowerPC和MicroBlaze處理器設計的Virtex-4參考板。開發工具還包括所有的編譯器和所需的FPGA設計工具,以及IP目錄和用作預校準的參考設計。
      再加上JTAG探測器和系統電纜,此開發工具能夠讓您在開始編輯和調試自己的設計變更之前,輕松構建和運行一個工作系統。不同器件和板卡的開發工具,可從Xilinx公司及其分銷商以及第三方嵌入式系統合作伙伴那里得到。

      圖2 - 集成式硬件/軟件開發工具



      查明瓶頸和實現協處理
      MicroBlaze處理器是EDN公司2005年的百件熱門產品之一,使用獲得IEC(國際工程協會)大獎的Xilinx Platform Studio(XPS)嵌入式工具套件實現硬件/IP的設置和軟件的開發。XPS包含在我們預先配置的嵌入式開發系統中,是用來創建系統的集成式開發環境(IDE)。如果您擁有一塊標準的參考板或已經創建了自己的電路板描述文檔,那么XPS就可以驅動一個設計向導來快速地配置您的初始系統。
      通過使用智能化工具來減少錯誤和學習壓力,您就可以集中精力提高最終產品的價值。完成基本的配置后,您可以花一些時間來調整IP,從而定制自己的系統,然后進行軟件應用的開發。
      XPS為程序員提供了一個功能強大的基于Eclipse框架的軟件開發IDE。這一環境對于開發、調試和管理代碼以查明隱藏于其它不可見的代碼執行中的性能瓶頸是十分理想的。這些代碼中的不足之處經常會使設計達不到所要求的性能目標,但它們又很難被發現而且通常更難被優化。
      使用像“內聯代碼”這樣的技術來減少多余的函數調用開銷,就能夠將應用程序的性能提高1%~5%。但如果使用可編程平臺,利用現有更強大的設計技術,可使性能提高一到兩個數量級。
      圖3顯示了XPS性能分析截屏圖。XPS可以用不同的形式顯示分析信息(profiling information),這樣您就可以一目了然地看清突出顯示在性能圖上的趨勢或個別相沖突的程序。柱狀圖、餅狀圖和測量指標表格,讓定位和判斷函數與程序的不足之處變得簡單,這樣您就能夠采取行動來改進這些極大影響整體系統性能的程序。

      圖3 - XPS嵌入式工具套件

      圖4 - MicroBlaze MP3解碼器示例



      自帶IP模塊的軟處理器核
      在我前面所介紹的MP3解碼器示例中,我們從多個MicroBlaze處理器的示例化開始,構建了一個定制系統(圖4)。由于MicroBlaze處理器是一個軟核處理器,因此我們能方便地構建一個具有多個處理器的系統并能平衡性能負載,從而得到一個優化的系統。
      從圖4我們可以清楚地看到,頂部自帶總線和外設的MicroBlaze塊與底部的MicroBlaze塊和它自帶的外設是彼此分開的。此設計的頂部區域運行支持整個文檔系統的嵌入式Linux操作系統,這樣就能通過網絡接入MP3比特流。我們將這些比特流的解碼和播放操作留給第二個MicroBlaze處理器。在此設計中我們加入了緊密耦合的DCT/IMDCT(正向和反向改進的離散余弦變換)函數處理器減負引擎和兩個高精度MAC單元。
      IMDCT塊負責數據的壓縮和解壓縮,以縮短傳輸線的執行時間。DCT/IMDCT是壓縮應用中計算量最大的兩種函數,因此將整個函數放到它自己的協處理模塊中執行,極大地提高了整個系統的性能。與前面提到的在FIR濾波器中加入一個內部FPU的設計示例不同的是,這個MP3設計示例已經實現了MicroBlaze的定制,并且在FPGA中加入了外部專用硬件。


      圖5 - 協處理加速的結果



      協處理+可定制IP = 高性能
      通過將軟件函數的大量計算負擔轉移給協處理的“硬件指令”,您就能找到一個最佳的平衡點,使系統性能達到最佳。圖4還顯示了Linux文件系統模塊的一系列IP外設,其中包括UART、以太網MAC和其他各種存儲器控制器選項。與此不同的是,編碼/解碼應用模塊采用了針對不同系統功能定制的不同IP。
      第二個MicroBlaze軟核從屬于第一個MicroBlaze處理器,并扮演用于對MP3比特流進行解碼的任務引擎的角色。帶有附加專用IP核的解碼算法,通過Xilinx快速單工連接(Fast Simplex Link,FSL)接口直接連到FPGA架構硬件資源內部。這一協處理的設計技術充分利用了FPGA硬件相對于較慢的獨立式處理器的順序指令執行而言所具有的并行和高速特性。
      與高性能FPGA架構直接相連,可以引入快速的乘累加模塊(圖4中的LL_SH MAC1和LL_SH MAC2),與DCT和IMDCT模塊的專用IP形成互補。長長整型MAC模塊能夠提供更高的精度,同時減輕處理單元的計算負荷。您可能注意到,在AC97控制器核到外部AC97多媒體數字信號編解碼器接口之間同樣使用FSL連接,這可使MP3播放器實現CD音質的輸入/輸出。
      圖4所示的協處理系統的性能,比原有的軟件系統的性能累計提高了41倍。將一個“只使用軟件”的實現方式(參見圖5頂部的橫條)與硬件指令示例化的每個階段相比,您就可以看出是如何一步步提高性能的。僅僅將軟件計算轉移到IMDCT中就會帶來1.5倍的性能提升,增加DCT硬件指令后則可使性能提升1.7倍。加入一個長長整型乘累加單元,可帶來8.2倍的性能提升。
      采用協處理技術在硬件中實現所有的軟件模塊,能夠使系統總體性能提升41倍,這還沒有考慮減少應用程序代碼長度這一額外優勢。由于去除了需要大量指令的乘法函數,而代之以一個可以讀寫FSL端口的單一指令,因此我們進一步減少了指令數量,并因此壓縮了代碼的占位空間。例如在MP3的應用示例中,代碼的占位空間縮小了20%。
      更重要的是,通過像XPS這樣的智能化工具能夠方便快速地對設計進行修改,同時仍能保證在產品的開發周期內實現這些修改。僅使用軟件增強性能的方法,非常費時,而且得到的回報通常很有限。在一個可編程平臺之上平衡軟件應用、硬件實現和協處理的劃分,您就能得到一個更理想的結果。
      結論
      基于本文所描述的示例,我們能夠輕松定制一個全嵌入式處理系統,編輯IP從而在特性/面積/成本之間取得最佳平衡,并且在看似不可能的地方使性能得到大幅提升。Virtex-4和Spartan-3系列器件提供了靈活的軟處理器解決方案,開發人員可以在隨后的開發周期中對其進行設計和改進。屢獲殊榮的MicroBlaze軟處理器核,加上獲獎不斷的XPS工具套件,為您的嵌入式設計提供了一套強大的工具。
      協處理技術,例如采用高性能FPGA硬件指令實現需要大量計算的軟件算法,能夠使常規工業應用模塊的性能提高2倍、10倍甚至40倍以上。想象一下這將為您的下一個設計帶來什么——在開發周期的后期,您的設計仍有修改的余地,并且可以預先規劃好下一代產品的改進方案。

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 久久精品无码一区二区无码 | 在线播放国产一区二区三区 | 人妖在线精品一区二区三区| 日韩国产免费一区二区三区| 国产麻豆精品一区二区三区| 成人精品一区二区户外勾搭野战| 国产91精品一区二区麻豆网站| 久久久久久人妻一区二区三区| 国产精品乱码一区二区三| 福利电影一区二区| 日本在线一区二区| 午夜爽爽性刺激一区二区视频| 国产一区二区三区内射高清| 亚洲一区二区三区在线观看精品中文| 亚洲福利视频一区| 亚洲一区精品伊人久久伊人| 无码精品一区二区三区免费视频 | 国产一区二区四区在线观看| 污污内射在线观看一区二区少妇 | 精品视频一区二区三区在线观看| 精品国产福利第一区二区三区| 蜜臀AV无码一区二区三区| 中文字幕国产一区| 美女免费视频一区二区三区| 91精品一区二区综合在线| 中文字幕色AV一区二区三区| 国产人妖视频一区二区破除| 97一区二区三区四区久久| 免费日本一区二区| 国产亚洲3p无码一区二区| 日韩精品无码Av一区二区| 精品国产亚洲第一区二区三区| 无码精品尤物一区二区三区| 日本高清成本人视频一区| 丝袜人妻一区二区三区| 福利一区二区在线| 国产亚洲综合精品一区二区三区| 男插女高潮一区二区| 无码少妇A片一区二区三区| 交换国产精品视频一区| 国产亚洲福利精品一区二区 |