<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 賽靈思三十周年專(zhuān)題 > 用FPGA 嵌入式處理器實(shí)現高性能浮點(diǎn)元算

用FPGA 嵌入式處理器實(shí)現高性能浮點(diǎn)元算

作者: 時(shí)間:2014-04-10 來(lái)源:電子產(chǎn)品世界 收藏

   在采用數值處理技術(shù)創(chuàng )建嵌入式應用時(shí),通常以整數或定點(diǎn)表示法來(lái)確保算術(shù)運算盡量簡(jiǎn)單,這一點(diǎn)至關(guān)重要。因其不僅有助于使成本和功耗降至最低,而且還能盡可能地加速硬件部署。 非常適用于執行定點(diǎn)運算,并能在邏輯或基于軟件或硬件處理器的實(shí)施方案中創(chuàng )建高度并行的數據路徑解決方案。Virtex®-5  產(chǎn)品系列中 FXT 系列的最新硬件處理器 ®® 440 可提供超標量功能,讓用戶(hù)能夠對器件編程,使其以高達 550 MHz 的時(shí)鐘速率并行執行一個(gè)或兩個(gè)定點(diǎn)運算。

本文引用地址:http://dyxdggzs.com/article/236327.htm

  盡管用戶(hù)能通過(guò)對器件進(jìn)行編程來(lái)執行大多數采用整數或定點(diǎn)算術(shù)的運算,但通常須重新運算并插入比例運算以確保計算結果足夠精確。對于復雜運算而言,這不僅耗時(shí),而且還會(huì )導致程序變?yōu)閷?zhuān)用型且不可重用。理想的替代方法是采用標準浮點(diǎn)表示法來(lái)提供一種適用于多個(gè)應用的高動(dòng)態(tài)范圍。這樣人們就無(wú)需修改算法即可獲得適用于任何特定應用或操作環(huán)境的定點(diǎn)實(shí)施方案,也無(wú)需為隨后的項目及應用而大范圍地修改代碼。

  雖然賽靈思為基于 IBM 浮點(diǎn)性能庫的  440 處理器提供了一種行之有效的仿真浮點(diǎn)解決方案,但處理器內核仍需占用數十個(gè)周期來(lái)執行每條運算。而采用浮點(diǎn)運算單元 (FPU) 形式的浮點(diǎn)運算硬件加速功能可縮短該運算周期。Virtex-5 FXT 系列中的  440 處理器提供了有效接口,能夠將賽靈思軟 FPU 等硬件加速器連接至該處理器內核。該方案可通過(guò)結構協(xié)處理器總線(xiàn) (FCB) 將 PowerPC 440 處理器上的 128 位輔助處理器單元 (APU) 接口橋接至協(xié)處理器。使用該類(lèi)協(xié)處理器(賽靈思 LogiCORE™ IP Virtex-5 APU-FPU),Virtex-5 FXT 用戶(hù)可以選擇軟件仿真或者專(zhuān)用軟邏輯 FPU 在 PowerPC 上自如地實(shí)現浮點(diǎn)運算。圖 1 顯示了通過(guò) FCB 將 PowerPC 440 處理器連接至 Virtex-5 APU-FPU 的典型實(shí)施方案。

  PowerPC 440 Processor Block: PowerPC 440 處理器模塊

  PowerPC 440 Processor: PowerPC 440處理器

  PLB and Memory Crossbar: PLB 和存儲器交叉開(kāi)關(guān)

  Virtex-5 APU Floating-Point Unit: Virtex-5 APU 浮點(diǎn)單元

  in  Logic: FPGA 邏輯內

  關(guān)于 PowerPC 440 FPU

  賽靈思針對嵌入在 Virtex-5 FXT FPGA 中的 PowerPC 440 處理器專(zhuān)門(mén)設計了 APU-FPU。FPU 通過(guò) APU 接口與處理器的緊密結合可讓浮點(diǎn)運算單元直接執行原生 PowerPC 浮點(diǎn)指令,這相對軟件仿真而言,速度一般可提高 6 倍。

  除少數情況外,賽靈思 PowerPC FPU 一般符合單精度和雙精度浮點(diǎn)運算的 IEEE-754 標準。賽靈思提供了為 2:1和 3:1 APU-FPU 時(shí)鐘速率而優(yōu)化的變量,使 PowerPC 處理器能夠以最高頻率運行。自發(fā)性指令發(fā)送不僅會(huì )隱藏運算時(shí)延,而且還會(huì )減少每條指令的周期。此外,這些優(yōu)化的實(shí)施方案可充分發(fā)揮器件的高性能 DSP 特性,以縮短運算符時(shí)延并減少邏輯計數與功耗。賽靈思在其嵌入式開(kāi)發(fā)套件 (EDK) 中支持 APU-FPU 流。

  圖 2 為 FPU 架構的整體框架圖。APU-FPU 由執行單元、寄存器文件、總線(xiàn)接口以及所有管理浮點(diǎn)指令執行情況所必需的控制邏輯組成。

  FCB2 Bus: FCB2 總線(xiàn)

  FCB2 Bus Interface: FCB2 總線(xiàn)接口

  Execution Control/Decode Logic: 執行控制/解碼邏輯

  Register File & Forwarding: 寄存器文件與轉發(fā)

  Add/Sub/Convert: 添加/子集/轉換

  Compare: 比較

  Multiply: 乘

  Divide: 除

  Square Root: 平方根

  Round: 四舍五入

  圖 2——Virtex-5 FXT PowerPC 440 浮點(diǎn)協(xié)處理器架構

  FPU 含有兩個(gè)變量。雙精度變量可執行除 PowerPC ISA 圖形子集(fsel、fres 和 frsqrte)以外的所有浮點(diǎn)指令,其中也包括單精度變量執行的指令。這意味著(zhù)您能使用帶各種商用編譯器和操作系統的 FPU(具體請參見(jiàn): www.xilinx.com/ise/embedded/epartners/listing.htm )。

  賽靈思編譯器支持的 APU-FPU 單精度變量使用的資源較少。當 FPU 被占用時(shí),雙精度操作將通過(guò)軟件仿真來(lái)執行。

  將 APU-FPU 連接至 PowerPC 440

  有兩種方法可將 APU-FPU 連接至 PowerPC 440 處理器:1、利用賽靈思 Platform Studio 設計工具中的 Base System Builder (BSB) 向導;2、將 APU-FPU 單元添加至當前設計方案中即可。

  您首先需利用 BSB 向導確定目標板和所期望的處理器(PowerPC 或 MicroBlaze™),然后通過(guò)一系列復選框和下拉菜單選擇設計中所需的 IP。借助 BSB 向導,能夠輕松快速地組裝并測試基礎處理器系統。您只需勾選您要選擇的 FPU 框,即可實(shí)現APU-FPU 連接(見(jiàn)圖 3 頂部)。該向導可實(shí)現一個(gè)經(jīng)過(guò)優(yōu)化能以處理器時(shí)鐘三分之一速率運行的雙精度 FPU。您也可定制更高時(shí)鐘速率的 FPU 和單精度 FPU。

  如果不想使用向導,您也可通過(guò)另一種方法來(lái)實(shí)現,即按照系統組裝視圖拖動(dòng) IP Catalog 下的 APU- FPU IP,然后對 FPU 進(jìn)行配置即可。圖 3 底部圖片顯示了 IP Catalog (見(jiàn)左下方)和系統組裝視圖中新添加的 FPU。右擊 FPU 并選擇 Configure IP,然后您便可選取想要的精度(單精度或雙精度)并確定您希望該 FPU 是針對低時(shí)延(三分之一時(shí)鐘速率)或是高速率(二分之一時(shí)鐘速率)而進(jìn)行優(yōu)化;最后將 FPU 連接至 FCB 并將 FPU/FCB 時(shí)鐘鏈接至適當的時(shí)鐘(通常是二分之一或三分之一處理器時(shí)鐘速率。)

  圖 3——通過(guò) BSB 向導(頂部)以及系統組裝視圖將 FPU 添加至現有 PowerPC 處理器設計方案中

  讓浮點(diǎn)盡在掌握之中

  Virtex-5 APU-FPU 提供免費的 Platform Studio,支持浮點(diǎn)定制。您可分別采用約 2500 個(gè)或約 4900 個(gè) LUT 寄存器對來(lái)實(shí)現單或雙精度 FPU,也可在無(wú)需添加 FPGA 邏輯的情況下運行具有浮點(diǎn)仿真功能的軟件應用。

  性能水平可預先選擇:選擇適當的 FPU,或實(shí)施設計并確定軟件仿真是否滿(mǎn)足要求;如未滿(mǎn)足,可升級軟 FPU。

  顯而易見(jiàn),如果能從軟件仿真中獲得足夠的性能,則無(wú)需 FPU。但如果需要更高的性能,可使用 APU-FPU。如果應用需要 FPU 或正在使用與之配套的編譯器,可選擇雙精度 FPU。如果應用僅需單精度運算且您正在使用賽靈思 GNU 編譯器,則單精度 FPU 會(huì )降低邏輯要求。謹記,如果選擇雙精度 FPU,它將執行單精度運算,然后將運算結果進(jìn)行四舍五入,以提供單精度 FPU 的精確度。

  典型性能增益

  當您在評估是需要硬 FPU 還是軟 FPU 時(shí),應首先確定代碼的浮點(diǎn)密集程度。代碼通常包括不同浮點(diǎn)、整數、存儲器以及邏輯運算等。因此,盡管基準可作為潛在性能提升的指示器,但運行您自己的代碼會(huì )更好。

  表 1 列出了 400 MHz Virtex-5 FXT PowerPC 440 處理器、軟件仿真以及與該處理器相連的 200 MHz 雙精度 APU-FPU 的基準數據,透過(guò)該表可清晰了解 APU-FPU 執行浮點(diǎn)密集代代碼的性能表現。

  表中所列數據是賽靈思用于評估處理器浮點(diǎn)單元性能的一組基準數據的子集。平均而言,軟 FPU 可比軟件仿真快 6 倍,而單精度 FPU 可比雙精度 FPU 快 13%。

  在浮點(diǎn)占主導地位的情況下,可通過(guò)優(yōu)化代碼來(lái)提高軟 FPU 的性能,以充分利用 FPU 管線(xiàn)。FIR 濾波器基準就是一例很好的潛在性能增益。未經(jīng)優(yōu)化的代碼是典型的“教科書(shū)代碼”,雖便于閱讀,但大多數 FPU 執行時(shí)往往效率低下。然而,通過(guò)實(shí)施循環(huán)展開(kāi)、最大限度地延長(cháng) FPU 寄存器中常數的保留時(shí)間,以及交叉存取其他代碼與浮點(diǎn)指令,設計方案的性能可得到顯著(zhù)提高。在本例中,優(yōu)化濾波器代碼比未經(jīng)優(yōu)化的代碼快 3.8 倍,比軟件仿真快 30 倍。

  總之,Virtex-5 FXT 借助其 PowerPC 440 處理器可為嵌入式應用提供眾多選擇。您可在有無(wú) FPU 的情況下執行設計方案、用性能較高的 FPU來(lái)替代軟件仿真技術(shù)、為 Virtex-5 FXT 量身定制處理能力資源,所有這些都是為了滿(mǎn)足您的最佳設計需求,讓“一切盡在您的掌握之中” 。

  * EDK 10.1 SP2 GNU 帶標志的編譯器:-O3 -funroll-循環(huán)

  表 1——400 MHz 處理器與 200-MHz FPU 的典型浮點(diǎn)性能



關(guān)鍵詞: Xilinx PowerPC FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>