女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

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

張勇 ? 來源:DengQilong ? 作者:DengQilong ? 2022-07-21 16:20 ? 次閱讀

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

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

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

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

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

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

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

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

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

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

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

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

審核編輯 黃昊宇

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

    關(guān)注

    555

    文章

    8142

    瀏覽量

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

    關(guān)注

    5141

    文章

    19526

    瀏覽量

    314863
收藏 人收藏

    評(píng)論

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

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

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

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

    導(dǎo)讀WebSocket可以實(shí)現(xiàn)雙向通信,適合實(shí)時(shí)通信場(chǎng)景。本文介紹一下使用C語言開發(fā)AWTK-WEB應(yīng)用程序,并用WebSocket與服務(wù)器通訊。用AWTKDesigner新建一個(gè)應(yīng)用程序先安裝
    的頭像 發(fā)表于 02-19 11:49 ?377次閱讀
    AWTK-WEB 快速入門(5) - C 語言 WebSocket <b class='flag-5'>應(yīng)用程序</b>

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

    基于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 ?909次閱讀
    基于HPM_SDK_ENV開發(fā)<b class='flag-5'>應(yīng)用程序</b>的升級(jí)處理

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

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

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

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

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

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

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

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

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

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

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

    呈現(xiàn)。啟動(dòng)應(yīng)用程序后,會(huì)看到一個(gè)帶有黑色占位符的界面。要激活攝像頭,只需從檢測(cè)到的設(shè)備列表中選擇喜歡的
    的頭像 發(fā)表于 11-25 11:35 ?486次閱讀
    使用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èi)下載
    發(fā)表于 10-21 09:33 ?0次下載
    PCM2912<b class='flag-5'>應(yīng)用程序</b>的操作環(huán)境

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

    電子發(fā)燒友網(wǎng)站提供《I2C啟動(dòng)加載準(zhǔn)備TMS320C645x應(yīng)用程序.pdf》資料免費(fèi)下載
    發(fā)表于 10-16 11:30 ?0次下載
    <b class='flag-5'>為</b>I2C啟動(dòng)加載準(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èi)下載
    發(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啟用外圍擴(kuò)展應(yīng)用程序應(yīng)用說明

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

    keil軟件怎么運(yùn)行寫好的程序

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