一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內(nèi)不再提示

為您的 DSP 應(yīng)用程序優(yōu)化軟件

張勇 ? 來源:DengQilong ? 作者:DengQilong ? 2022-07-21 16:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

經(jīng)驗豐富的嵌入式系統(tǒng)程序員已經(jīng)知道將代碼優(yōu)化到目標(biāo)平臺的大部分技巧,但是我們中的許多人相對較晚才接觸到嵌入式系統(tǒng)編程,因為我們在限制較少的平臺上學(xué)習(xí)了我們的編碼技能。除了算法的一般效率之外,我們不必過多擔(dān)心硬件細(xì)節(jié),但在嵌入式應(yīng)用程序中,我們需要更加小心,當(dāng)然是為了性能,還要適應(yīng)我們想要做的實際限制我們的硬件目標(biāo),尤其是可用內(nèi)存的類型和大小。這些系統(tǒng)中的內(nèi)存是您必須將所有軟件和所有工作數(shù)據(jù)裝入其中的手提箱,而且手提箱通常比您希望的要小得多。

作為一個額外的復(fù)雜因素,這些系統(tǒng)中通常有不止一種類型的內(nèi)存。為了保持編程簡單,您只看到一個邏輯內(nèi)存空間,但某些地址范圍可能以不同的方式在硬件中實現(xiàn)。一些空間可以實現(xiàn)為外部主存儲器,可以通過一級或多級高速緩存從處理器訪問。

一個常見的硬件優(yōu)化將實現(xiàn)另一個范圍作為緊耦合內(nèi)存 (TCM)。它與處理器位于同一芯片內(nèi),通常緊鄰該處理器。TCM 為存儲在該內(nèi)存中的任何指令或數(shù)據(jù)提供有保證的單時鐘周期訪問,這與標(biāo)準(zhǔn)內(nèi)存不同,標(biāo)準(zhǔn)內(nèi)存只有在指令/數(shù)據(jù)已經(jīng)在緩存中時才能提供該性能;否則它必須進(jìn)入主存儲器,花費更多的時鐘周期。TCM 是(內(nèi)存映射)快速片上內(nèi)存的一個例子;還有其他用途,例如用于圖像處理中快速訪問的圖像緩沖區(qū)。

另一個考慮因素 - 使用片上存儲器可降低功耗,而使用主存儲器會消耗更多功率,這要歸功于更高的電流來驅(qū)動所有這些封裝引腳和芯片之間的電路板互連。這是低功耗應(yīng)用中的一個重要考慮因素。

為什么不只使用大的片上存儲器并從片外不頻繁地加載/存儲?不幸的是,大型片上存儲器顯著增加了芯片面積,并且隨著芯片尺寸的增長,該設(shè)備變得更加昂貴且競爭力下降。系統(tǒng)架構(gòu)師必須非常小心地平衡性能增益與此成本,考慮他們是否可能僅提供 16KB 的 TCM 與可能多達(dá) 1MB 的 TCM。這讓程序員有很多責(zé)任要盡可能節(jié)儉和謹(jǐn)慎地使用或規(guī)劃這些存儲器(如果你在早期的芯片架構(gòu)中有發(fā)言權(quán)),尤其是在涉及到你想要的功能或數(shù)據(jù)時使用快速內(nèi)存。

您需要在這里做的一些事情是相當(dāng)明顯的;我假設(shè)您從基于 PC 的實現(xiàn)或為早期產(chǎn)品開發(fā)的實現(xiàn)開始。由于您顯然對 DSP 感興趣,因此您可能計劃進(jìn)行大量浮點計算。盡可能將數(shù)據(jù)類型從雙精度減少到單精度;僅此一項就可能將數(shù)據(jù)大小減半。

臨時內(nèi)存池是一種一次性分配內(nèi)存塊以滿足多個較小相關(guān)分配需求的方法,它在分配和釋放速度方面很受歡迎,但在內(nèi)存方面可能非常昂貴。嘗試將所有這些合并到一個內(nèi)存池中,只要它們不并行使用或硬著頭皮返回堆上的傳統(tǒng)malloc;這可能會慢一些,但在內(nèi)存中效率會高很多。

特別是在 TCM 方面,分析代碼以找到消耗最多運行時間的函數(shù)。您的策略將是從需求最高的功能開始,決定其中哪些可以適合 TCM。當(dāng)然,這里必須有一些判斷。如果一個高需求函數(shù)調(diào)用一個低需求函數(shù),你能負(fù)擔(dān)得起從緩存中拉出那個低需求函數(shù)嗎?只要緩存命中率很高,或者偶爾較長的延遲是可以容忍的,這可能就可以了。

在支持 MP3 和 FLAC 解碼器的音樂播放器中,較長的延遲可能是可以的。每首歌曲最多只能使用一個,因此它們不需要都駐留在快速內(nèi)存中。接受延遲加載所需的任何內(nèi)容,按需從片外加載到快速存儲器中。

您希望將生產(chǎn)代碼和數(shù)據(jù)壓縮到盡可能小的大小,因此作為一般良好衛(wèi)生的一點,請確保所有調(diào)試、分析和日志記錄代碼都包含在編譯指示中,這些編譯指示可以在生產(chǎn)構(gòu)建中禁用。在 PC 代碼中,您可能不會太擔(dān)心這一點(特別是如果您想在生產(chǎn)軟件上運行調(diào)試器),但在這里它是必不可少的。相反,您還應(yīng)該確保在 禁用該代碼的情況下運行所有回歸測試。只需要在調(diào)試中忽略一個運行時依賴項即可創(chuàng)建下游噩夢。

同樣,請確保您的軟件中的每一段代碼都在被使用。運行覆蓋測試。如果您發(fā)現(xiàn)未使用的代碼,則可能是早期版本的遺留問題,可能需要它。這里不是,所以你應(yīng)該能夠擺脫它,對吧?再次,你必須小心。也許這是對一個不能忽視的非常罕見的情況的錯誤處理。也許它應(yīng)該包含在回歸測試中,但直接觸發(fā)太難了。您必須根據(jù)與架構(gòu)師甚至硬件團(tuán)隊的討論做出決定。

最后,與架構(gòu)師(如果需要,還有營銷人員)爭論他們要求包含哪些功能是真正必要的。他們可能沒有意識到,在您可能想到的每一次優(yōu)化之后,手提箱仍然不會關(guān)閉。然后他們將不得不決定可能不得不犧牲他們真正想要的真正酷的功能。或者,也許他們必須回到業(yè)務(wù)團(tuán)隊并要求更大的片上存儲器,使用您可以提供的關(guān)于這些存儲器需要增長多少的信息。無論哪種方式,你都會看起來不錯!

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • dsp
    dsp
    +關(guān)注

    關(guān)注

    556

    文章

    8158

    瀏覽量

    357539
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19675

    瀏覽量

    317552
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    華秋DFM軟件升級時,提示“應(yīng)用程序無法正常啟動”怎么辦?

    最近有用戶反饋: 登錄華秋DFM軟件,點自動升級的時候有時會報錯,導(dǎo)致無法正常升級。 其中有一種情況是: 軟件自動升級時,彈出“應(yīng)用程序無法正常啟動(0xc000007b)。請單擊“確定\"
    發(fā)表于 06-12 18:32

    如何在 Raspberry Pi AI Camera 上構(gòu)建開發(fā)人員提供實時的智能應(yīng)用程序!

    在這篇特邀文章中,我們的合作伙伴索尼公司的雷蒙娜-雷納(RamonaRayner)將向展示如何快速探索不同的模型和人工智能功能,以及如何在RaspberryPi人工智能相機的基礎(chǔ)上輕松構(gòu)建應(yīng)用程序
    的頭像 發(fā)表于 03-25 09:37 ?297次閱讀
    如何在 Raspberry Pi AI Camera 上構(gòu)建<b class='flag-5'>為</b>開發(fā)人員提供實時的智能<b class='flag-5'>應(yīng)用程序</b>!

    基于HPM_SDK_ENV開發(fā)應(yīng)用程序的升級處理

    基于HPM_SDK_ENV開發(fā)應(yīng)用程序的方式HPM_SDK_ENV是先楫半導(dǎo)體MCU的Windows集成開發(fā)環(huán)境,其包含HPM_SDK,工具鏈,依賴工具(cmake,ninja,openocd等
    的頭像 發(fā)表于 02-08 13:38 ?1016次閱讀
    基于HPM_SDK_ENV開發(fā)<b class='flag-5'>應(yīng)用程序</b>的升級處理

    ANACONDA——關(guān)于發(fā)布數(shù)據(jù)應(yīng)用程序的新簡單方法

    與 Anaconda 的云筆記本服務(wù)無縫集成,用戶提供了一種輕松共享筆記本結(jié)果的方式,并讓其他人也可以隨意的訪問它們。 下面我們來了解關(guān)于這項新功能的實際應(yīng)用: 這項功能與 Panel 的多功能性相結(jié)合,將徹底改變發(fā)布數(shù)據(jù)應(yīng)用程序
    的頭像 發(fā)表于 01-17 11:39 ?427次閱讀
    ANACONDA——關(guān)于發(fā)布數(shù)據(jù)<b class='flag-5'>應(yīng)用程序</b>的新簡單方法

    BQ78412應(yīng)用程序編程接口

    電子發(fā)燒友網(wǎng)站提供《BQ78412應(yīng)用程序編程接口.pdf》資料免費下載
    發(fā)表于 12-18 14:46 ?0次下載
    BQ78412<b class='flag-5'>應(yīng)用程序</b>編程接口

    TAS2521應(yīng)用程序參考指南

    電子發(fā)燒友網(wǎng)站提供《TAS2521應(yīng)用程序參考指南.pdf》資料免費下載
    發(fā)表于 12-10 13:49 ?0次下載
    TAS2521<b class='flag-5'>應(yīng)用程序</b>參考指南

    android手機上emulate應(yīng)用程序的方法

    在Android手機上模擬(emulate)應(yīng)用程序的方法通常涉及到使用Android模擬器(Emulator)或類似的工具來模擬Android環(huán)境,以便在沒有實際物理設(shè)備的情況下運行和測試應(yīng)用程序
    的頭像 發(fā)表于 12-05 15:33 ?1216次閱讀

    AWTK-WEB 快速入門(2) - JS 應(yīng)用程序

    導(dǎo)讀AWTK可以使用相同的技術(shù)棧開發(fā)各種平臺的應(yīng)用程序。有時我們需要使用Web界面與設(shè)備進(jìn)行交互,本文介紹一下如何使用JS語言開發(fā)AWTK-WEB應(yīng)用程序。用AWTKDesigner新建一個應(yīng)用程序先安裝AWTKDesigner
    的頭像 發(fā)表于 12-05 01:04 ?502次閱讀
    AWTK-WEB 快速入門(2) - JS <b class='flag-5'>應(yīng)用程序</b>

    AWTK-WEB 快速入門(1) - C 語言應(yīng)用程序

    導(dǎo)讀AWTK可以使用相同的技術(shù)棧開發(fā)各種平臺的應(yīng)用程序。有時我們需要使用Web界面與設(shè)備進(jìn)行交互,本文介紹一下如何使用C語言開發(fā)AWTK-WEB應(yīng)用程序。用AWTKDesigner新建一個應(yīng)用程序
    的頭像 發(fā)表于 11-27 11:46 ?716次閱讀
    AWTK-WEB 快速入門(1) - C 語言<b class='flag-5'>應(yīng)用程序</b>

    使用OpenVINO? ElectronJS中創(chuàng)建桌面應(yīng)用程序

    呈現(xiàn)。啟動應(yīng)用程序后,會看到一個帶有黑色占位符的界面。要激活攝像頭,只需從檢測到的設(shè)備列表中選擇喜歡的
    的頭像 發(fā)表于 11-25 11:35 ?578次閱讀
    使用OpenVINO? ElectronJS中創(chuàng)建桌面<b class='flag-5'>應(yīng)用程序</b>

    PCM2912應(yīng)用程序的操作環(huán)境

    電子發(fā)燒友網(wǎng)站提供《PCM2912應(yīng)用程序的操作環(huán)境.pdf》資料免費下載
    發(fā)表于 10-21 09:33 ?0次下載
    PCM2912<b class='flag-5'>應(yīng)用程序</b>的操作環(huán)境

    I2C啟動加載準(zhǔn)備TMS320C645x應(yīng)用程序

    電子發(fā)燒友網(wǎng)站提供《I2C啟動加載準(zhǔn)備TMS320C645x應(yīng)用程序.pdf》資料免費下載
    發(fā)表于 10-16 11:30 ?0次下載
    <b class='flag-5'>為</b>I2C啟動加載準(zhǔn)備TMS320C645x<b class='flag-5'>應(yīng)用程序</b>

    DSP/BIOS 5應(yīng)用程序遷移到SYS/BIOS 6

    電子發(fā)燒友網(wǎng)站提供《將DSP/BIOS 5應(yīng)用程序遷移到SYS/BIOS 6.pdf》資料免費下載
    發(fā)表于 09-27 10:54 ?0次下載
    將<b class='flag-5'>DSP</b>/BIOS 5<b class='flag-5'>應(yīng)用程序</b>遷移到SYS/BIOS 6

    使用HIC啟用外圍擴展應(yīng)用程序應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《使用HIC啟用外圍擴展應(yīng)用程序應(yīng)用說明.pdf》資料免費下載
    發(fā)表于 09-14 09:44 ?0次下載
    使用HIC啟用外圍擴展<b class='flag-5'>應(yīng)用程序</b>應(yīng)用說明

    keil軟件怎么運行寫好的程序

    Keil軟件是一款功能強大的嵌入式開發(fā)工具,廣泛應(yīng)用于單片機、ARM、DSP等嵌入式系統(tǒng)的開發(fā)。本文將介紹如何使用Keil軟件運行寫好的程序。 安裝Keil
    的頭像 發(fā)表于 09-02 10:29 ?4515次閱讀