<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è) > 嵌入式系統 > 設計應用 > 采用硬件加速發(fā)揮MicroBlaze處理能力

采用硬件加速發(fā)揮MicroBlaze處理能力

作者:Karsten Trott博士 賽靈思(德國慕尼黑) 現場(chǎng)應用工程師 時(shí)間:2010-03-09 來(lái)源:電子產(chǎn)品世界 收藏

  案例2:高速浮點(diǎn)性能

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

  現在我們給出另一個(gè) 算法加速示例。一個(gè)客戶(hù)聲稱(chēng)他的浮點(diǎn)處理在系統上運行非常慢。他使用的算法可采用簡(jiǎn)單的環(huán)路同時(shí)得出幾個(gè)結果。

for (i=0;i<512;i++) {
   f_sum += farr[i];
   f_sum_prod += farr[i] * farr[i];
     f_sum_tprod += farr[i] *
farr[i] * farr[i];
  f_sqrt + =
sqrt(farr[i]);
  if (min_f > farr[i]) { min_f =
farr[i]; }
  if (max_f < farr[i]) { max_f =
farr[i]; }
}

  所有數值均是單精度浮點(diǎn)值。我們首先想到的是最基礎的一個(gè)問(wèn)題:浮點(diǎn)單元 () 激活了嗎?檢查項目設置后,我們發(fā)現仍然處于未啟用狀態(tài)。這就是為什么永遠無(wú)法計算出這幾個(gè)數的原因。可在 屬性設置中加以激活。

  FPU支持共有兩種。我們也選擇擴展FPU (Extended FPU)來(lái)支持求平方根運算?,F在,在50MHz 的MicroBlaze上需要 1,108,685個(gè)周期才能完成 512個(gè)值的全部循環(huán)。查看生成的匯編程序代碼后,可以了解到創(chuàng )建平方根是仍然在使用數學(xué)庫(Math-lib)功能。其在數學(xué)功能中的定義為:

  double sqrt(double);

  不過(guò)客戶(hù)使用平方根函數僅為處理浮點(diǎn)數值。因此,MicroBlaze FPU定義了一個(gè)新的函數來(lái)取代原來(lái)的函數,解決這個(gè)問(wèn)題:

  float sqrtf(float);

  把表達式f_sqrt += sqrt(farr[i])變?yōu)閒_sqrt += sqrtf(farr[i]),就會(huì )調用MicroBlaze內部的FPU內部平方根功能?,F在執行代碼只需要35,336個(gè)周期。特別是與第一個(gè)根本沒(méi)有使用FPU的方案相比,我們再次通過(guò)小小的調整就實(shí)現了31倍的提升。在相同的執行時(shí)間內,可能需要大約1.5GHz的CPU才能給出上述這些結果。



評論


相關(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>