在采用數值處理技術創建嵌入式應用時,通常以整數或定點表示法來確保算術運算盡量簡單,這一點至關重要。因其不僅有助于使成本和功耗降至最低,而且還能盡可能地加速硬件部署。 FPGA 非常適用于執行定點運算,并能在邏輯或基于軟件或硬件處理器的實施方案中創建高度并行的數據路徑解決方案。Virtex-5 FPGA 產品系列中 FXT 系列的最新硬件處理器 Xilinx PowerPC 440 可提供超標量功能,讓用戶能夠對器件編程,使其以高達 550 MHz 的時鐘速率并行執行一個或兩個定點運算。 盡管用戶能通過對器件進行編程來執行大多數采用整數或定點算術的運算,但通常須重新運算并插入比例運算以確保計算結果足夠精確。對于復雜運算而言,這不僅耗時,而且還會導致程序變為專用型且不可重用。理想的替代方法是采用標準浮點表示法來提供一種適用于多個應用的高動態范圍。這樣人們就無需修改算法即可獲得適用于任何特定應用或操作環境的定點實施方案,也無需為隨后的項目及應用而大范圍地修改代碼。 雖然賽靈思(Xilinx)為基于 IBM 浮點性能庫的 PowerPC 440 處理器提供了一種行之有效的仿真浮點解決方案,但處理器內核仍需占用數十個周期來執行每條運算。而采用浮點運算單元 (FPU) 形式的浮點運算硬件加速功能可縮短該運算周期。Virtex-5 FXT 系列中的 PowerPC 440 處理器提供了有效接口,能夠將賽靈思軟 FPU 等硬件加速器連接至該處理器內核。該方案可通過結構協處理器總線 (FCB) 將 PowerPC 440 處理器上的 128 位輔助處理器單元 (APU) 接口橋接至協處理器。使用該類協處理器(賽靈思 LogiCORE IP Virtex-5 APU-FPU),Virtex-5 FXT 用戶可以選擇軟件仿真或者專用軟邏輯 FPU 在 PowerPC 上自如地實現浮點運算。圖 1 顯示了通過 FCB 將 PowerPC 440 處理器連接至 Virtex-5 APU-FPU 的典型實施方案。 ![]() 圖1 包含 APU-FPU 內核的嵌入式處理器系統 關于 PowerPC 440 FPU 賽靈思針對嵌入在 Virtex-5 FXT FPGA 中的 PowerPC 440 處理器專門設計了 APU-FPU。FPU 通過 APU 接口與處理器的緊密結合可讓浮點運算單元直接執行原生 PowerPC 浮點指令,這相對軟件仿真而言,速度一般可提高 6 倍。 除少數情況外,賽靈思 PowerPC FPU 一般符合單精度和雙精度浮點運算的 IEEE-754 標準。賽靈思提供了為 2:1和 3:1 APU-FPU 時鐘速率而優化的變量,使 PowerPC 處理器能夠以最高頻率運行。自發性指令發送不僅會隱藏運算時延,而且還會減少每條指令的周期。此外,這些優化的實施方案可充分發揮器件的高性能 DSP 特性,以縮短運算符時延并減少邏輯計數與功耗。賽靈思在其嵌入式開發套件 (EDK) 中支持 APU-FPU 流。 ![]() 圖2 Virtex-5 FXT PowerPC 440 浮點協處理器架構 圖 2 為 FPU 架構的整體框架圖。APU-FPU 由執行單元、寄存器文件、總線接口以及所有管理浮點指令執行情況所必需的控制邏輯組成。 FPU 含有兩個變量。雙精度變量可執行除 PowerPC ISA 圖形子集(fsel、fres 和 frsqrte)以外的所有浮點指令,其中也包括單精度變量執行的指令。這意味著您能使用帶各種商用編譯器和操作系統的 FPU(具體請參見:www.xilinx.com/ ise/embedded/epartners/listing.htm)。 賽靈思編譯器支持的 APU-FPU 單精度變量使用的資源較少。當 FPU 被占用時,雙精度操作將通過軟件仿真來執行。軟 FPU 比軟件仿真法平均快 6 倍。單精度 FPU 通常比雙精度快 13%。 將 APU-FPU 連接至 PowerPC 440有兩種方法可將 APU-FPU 連接至 PowerPC 440 處理器:1、利用賽靈思 Platform Studio 設計工具中的 Base System Builder (BSB) 向導;2、將 APU-FPU 單元添加至當前設計方案中即可。 您首先需利用 BSB 向導確定目標板和所期望的處理器(PowerPC 或 MicroBlaze),然后通過一系列復選框和下拉菜單選擇設計中所需的 IP。借助 BSB 向導,能夠輕松快速地組裝并測試基礎處理器系統。您只需勾選您要選擇的 FPU 框,即可實現APU-FPU 連接(見圖 3 頂部)。該向導可實現一個經過優化能以處理器時鐘三分之一速率運行的雙精度 FPU。您也可定制更高時鐘速率的FPU 和單精度 FPU。 作者:賽靈思公司高級經理Glenn Steiner,賽靈思公司高級DSP設計工程師Ben Jones,賽靈思公司工程師Peter Alfke |