99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>DSP>處理器的正弦計(jì)算資料下載

處理器的正弦計(jì)算資料下載

2021-04-27 | pdf | 254.7KB | 次下載 | 3積分

資料介紹

??有很多種算法可對(duì)單精度浮點(diǎn)數(shù)字的正弦值進(jìn)行計(jì)算,但添加硬件加速器是功能最為強(qiáng)大的方法之一。之所以得出這一結(jié)論,是因?yàn)榭蛻舻膽?yīng)用要求使用此類正弦計(jì)算,而我們又針對(duì)能夠提供良好、快速且高效的解決方案進(jìn)行了多種方案的探索。 ??為了確定哪種實(shí)現(xiàn)方式最適合您的應(yīng)用,首先需要對(duì)代碼進(jìn)行分析,以查找哪種功能需要改進(jìn);其次,由于修改軟件比修改硬件更簡(jiǎn)便、迅速,因而請(qǐng)檢查是否能通過(guò)修改軟件來(lái)實(shí)現(xiàn)您所需的高速度(有時(shí)可以)。但是如果您還需要更高的性能,那么請(qǐng)考慮在硬件中實(shí)現(xiàn)部分算法。在硬件加速的支持下,您可以輕松勝過(guò)市場(chǎng)上任意或DSP。 ??為了解該流程,讓我們以現(xiàn)實(shí)案例為例,探討如何開(kāi)發(fā)一個(gè)需要針對(duì)單精度浮點(diǎn)數(shù)字進(jìn)行正弦計(jì)算的軍事應(yīng)用。出于對(duì)高性價(jià)比的原因考慮,客戶已選擇了一款采用嵌入式 MicroBlaze?的Spartan?-6 FPGA 作為主系統(tǒng)控制器。可處理正弦計(jì)算的軟件算法應(yīng)運(yùn)行于MicroBlaze 之上。 ??客戶的算法主要使用浮點(diǎn)運(yùn)算。由于算法復(fù)雜,轉(zhuǎn)而采用定點(diǎn)運(yùn)算并不妥當(dāng)。此外,客戶還希望避免使用定點(diǎn)運(yùn)算時(shí)可能出現(xiàn)的運(yùn)行過(guò)度或運(yùn)行不足的情況。 ??客戶清楚 MicroBlaze IP 可提供兩種類型的浮點(diǎn)單元 (FPU),并已選用擴(kuò)展版本(相對(duì)于基本版而言)來(lái)加速算法。但是,這樣做就無(wú)法利用作為GNU工具鏈組成部分且隨 EDK 一起交付的數(shù)學(xué)仿真庫(kù)。數(shù)學(xué)庫(kù)中的軟件仿真例程程序運(yùn)行速度非常慢,在任何情況下都應(yīng)盡量避免將其用于算法中對(duì)性能起到關(guān)鍵作用的部分。 ??另外,客戶還清楚 MicroBlaze FPU的兩個(gè)版本都只能處理單精度數(shù)據(jù),不能處理雙精度數(shù)據(jù)??蛻舻乃惴梢悦鞔_地僅使用浮點(diǎn)精度數(shù)據(jù) (float precision data)。但在開(kāi)始使用數(shù)學(xué)函數(shù)時(shí),有時(shí)也會(huì)進(jìn)行隱式轉(zhuǎn)換。這些轉(zhuǎn)換會(huì)強(qiáng)制算法 ??在不知不覺(jué)中使用雙精度數(shù)據(jù)。 ? ??步驟一:分析問(wèn)題 ? ??我們的客戶已經(jīng)在運(yùn)行他的算法,但發(fā)現(xiàn)該算法在MicroBlaze處理器上的運(yùn)行速度偏慢。在對(duì)代碼庫(kù)進(jìn)行特性描述后,客戶發(fā)現(xiàn)引起速度慢的原因是正弦計(jì)算。下一步是找出其中原因并分析怎樣做才能加快處理速度。 ??第一種方案是使用數(shù)學(xué)庫(kù)提供的標(biāo)準(zhǔn)正弦函數(shù),在客戶將算法寫入后,在不進(jìn)行任何修改的情況下完整地運(yùn)行它。主要的問(wèn)題在于數(shù)學(xué)庫(kù)函數(shù)僅針對(duì)雙精度數(shù)據(jù)而創(chuàng)建,這就意味著正弦函數(shù)的原型應(yīng)為如下所示: ??double sin(double angle); ??但客戶希望以下列方式使用: ??float sin_val; ??float angle; ??... ??sin_val = sin(angle); ??當(dāng)然,這也是可能的,而且C編譯器會(huì)自動(dòng)從參數(shù)角添加所需的轉(zhuǎn)換,進(jìn)行“雙精度化”,并將函數(shù)調(diào)用的結(jié)果轉(zhuǎn)回浮點(diǎn)值。這樣通常還是由數(shù)學(xué)庫(kù)函數(shù)來(lái)執(zhí)行兩個(gè)額外的轉(zhuǎn)換函數(shù),甚至是正弦計(jì)算。 ??切記,MicroBlaze的FPU為單精度版本,只能完成如下執(zhí)行指令: ??sin_val = (float)sin((double)angle); ??由于數(shù)學(xué)庫(kù)的正弦函數(shù)是雙精度的,因而FPU無(wú)法完成正弦計(jì)算,故需要純軟件的解決方案。但缺點(diǎn)在于速度太慢,無(wú)法滿足客戶的需求。 ??我們驗(yàn)證了使用雙精度數(shù)據(jù)進(jìn)行正弦值的計(jì)算是執(zhí)行緩慢的原因。首先我們使用下列代碼,從我們的執(zhí)行文件中直接創(chuàng)建匯編代碼: ??mb-objdump.exe -D executable.elf ??>dump.txt ??檢查匯編代碼時(shí),我們發(fā)現(xiàn)了如下代碼行: ??brlid r15,-15832 // 4400d300 ??其作用是調(diào)用數(shù)學(xué)庫(kù)以進(jìn)行雙精度正弦計(jì)算。然后,我們測(cè)量了利用數(shù)學(xué)庫(kù)函數(shù)完成單次正弦計(jì)算所需的時(shí)間,約為 38,700個(gè)CPU周期。 ??對(duì)于特定的任務(wù),可以使用專用單精度函數(shù),如計(jì)算平方根: ??float sqrt_f( float h); ??使用專用函數(shù)可以避免單、雙精度函數(shù)之間的轉(zhuǎn)換,而且還可充分利用MicroBlaze FPU。 ??但遺憾的是,在FPU上沒(méi)有用于處理正弦計(jì)算的專用函數(shù)。此時(shí),我們開(kāi)始開(kāi)發(fā)多個(gè)版本的算法來(lái)加速正弦值的計(jì)算,以實(shí)現(xiàn)更高的性能。 ? ??步驟二:創(chuàng)建更好的軟件算法 ? ??創(chuàng)建硬件加速器通常需要一段時(shí)間而且也需要進(jìn)行調(diào)試,因而我們?cè)噲D避免在第一次運(yùn)行中就采取這種方案。我們就性能問(wèn)題與客戶進(jìn)行了溝通,獲得了正弦計(jì)算的關(guān)鍵參數(shù)。 ??客戶的算法要求正弦計(jì)算的參數(shù)角應(yīng)具有1%的精度,而且計(jì)算出的正弦值精度應(yīng)比數(shù)學(xué)庫(kù)函數(shù)調(diào)用的結(jié)果高0.1%。 ??這些屬于關(guān)鍵參數(shù),而且客戶告知我們,他有時(shí)必須按順序計(jì)算多個(gè)正弦值(比如在處理之前先填入小表格)。 ??由于對(duì)表格的尺寸要求, 使用填充了所有數(shù)值的查找表顯然不太可能。條目的最小數(shù)量為360,000個(gè)浮點(diǎn)數(shù)值(每個(gè)值 4 個(gè)字節(jié))??蛻粝胝业礁咚俳鉀Q方案,但在大小上也應(yīng)該合適。我們建議的解決方案可使用下列等式: ??sin(xi) with xi = x + d ??得到: ??sin(x+d) = sin(x)*cos(d) +cos(x)*sin(d) ??在這里,d是一個(gè)始終小于 x最小可能值(大于0)的值。這種解決方案有什么優(yōu)勢(shì)呢?我們需要縮小表格的大小,但會(huì)帶來(lái)計(jì)算量的增加。表格從開(kāi)始就劃分為四個(gè)表格: ??cos(x) ??sin(x) ??cos(d) ??sin(d) ??圖1和圖2顯示了所有4個(gè)表格所需的分辨率以及這些值通常情況下的表現(xiàn)。這些表格僅顯示了16個(gè)值的條目,用于說(shuō)明需要填入我們的查找表中的值。我們?cè)谖覀冏罱K的解決方案中所使用的值要多得多。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費(fèi)下載
  2. 0.00 MB  |  1489次下載  |  免費(fèi)
  3. 2單片機(jī)典型實(shí)例介紹
  4. 18.19 MB  |  91次下載  |  1 積分
  5. 3S7-200PLC編程實(shí)例詳細(xì)資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識(shí)別和講解說(shuō)明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開(kāi)關(guān)電源原理及各功能電路詳解
  10. 0.38 MB  |  9次下載  |  免費(fèi)
  11. 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
  12. 0.11 MB  |  4次下載  |  免費(fèi)
  13. 7基于單片機(jī)和 SG3525的程控開(kāi)關(guān)電源設(shè)計(jì)
  14. 0.23 MB  |  3次下載  |  免費(fèi)
  15. 8基于單片機(jī)的紅外風(fēng)扇遙控
  16. 0.23 MB  |  3次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費(fèi)
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費(fèi)
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費(fèi)
  7. 4LabView 8.0 專業(yè)版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費(fèi)
  9. 5555集成電路應(yīng)用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費(fèi)
  11. 6接口電路圖大全
  12. 未知  |  30319次下載  |  免費(fèi)
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費(fèi)
  15. 8開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  16. 未知  |  21539次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537791次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233045次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191183次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183277次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138039次下載  |  免費(fèi)