在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

TI:使用CLT工具優(yōu)化C6000代碼

電子工程師 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 2018-02-19 22:45 ? 次閱讀

摘要

在C6000 DSP的開(kāi)發(fā)過(guò)程中,優(yōu)化是必不可少的一個(gè)環(huán)節(jié),根據(jù)對(duì)象不同可以分為系統(tǒng),算法,代碼以及內(nèi)存優(yōu)化。通常,開(kāi)發(fā)者熟悉自己的代碼,會(huì)從前三個(gè)方面修改以獲得整體性能的提升,但是對(duì)于內(nèi)存尤其是緩存(Cache)的優(yōu)化,因?yàn)槠渖婕暗叫酒旧淼募軜?gòu),Cache的維護(hù)由DSP自動(dòng)完成,用戶通常不能干預(yù),所以似乎無(wú)從著手;考慮到這些實(shí)際的問(wèn)題,從TI的7.0系列編譯器開(kāi)始支持使用緩存優(yōu)化工具(Cache Layout Tools)對(duì)C6000代碼進(jìn)行優(yōu)化,通過(guò)這一系列的工具,可以很輕松的完成L1P Cache性能的提升,本文詳細(xì)介紹了該工具的使用方法。


1.引言

目前,使用TI DSP的用戶越來(lái)越多,在C6000系列DSP中,包含了C64x, C64x+, C66x等。在C6000 DSP的開(kāi)發(fā)過(guò)程中,為了充分利用DSP的計(jì)算資源,需要對(duì)用戶程序進(jìn)行優(yōu)化的工作,根據(jù)對(duì)象不同可以分為系統(tǒng),算法,代碼以及內(nèi)存優(yōu)化。通常,開(kāi)發(fā)者熟悉自己的系統(tǒng)和代碼,可以比較方便的從前三個(gè)方面修改以獲得整體性能的提升,但是對(duì)于內(nèi)存尤其是緩存(Cache)的優(yōu)化,因?yàn)槠渖婕暗叫酒旧淼募軜?gòu),Cache的維護(hù)由DSP自動(dòng)完成,用戶通常不能干預(yù),所以似乎無(wú)從著手;考慮到這些實(shí)際的問(wèn)題,從TI 的7.0 系列編譯器開(kāi)始支持使用緩存優(yōu)化工具(Cache Layout Tools)對(duì)C6000代碼進(jìn)行優(yōu)化,通過(guò)這一系列的工具,可以很輕松的完成L1P Cache性能的提升,本文詳細(xì)介紹了該工具的使用方法。


2.C6000 DSP內(nèi)核緩存機(jī)制

C6000系統(tǒng)的存儲(chǔ)器結(jié)構(gòu)如下圖所示。

Figure 1.C6000存儲(chǔ)器結(jié)構(gòu)


存儲(chǔ)器分成三級(jí):第一級(jí)是L1,包括數(shù)據(jù)存儲(chǔ)器(L1D)和代碼存儲(chǔ)器(L1P);第二級(jí)是代碼和數(shù)據(jù)共用存儲(chǔ)器(L2以及MSMC SRAM);第三級(jí)是外部存儲(chǔ)器,主要是DDR存儲(chǔ)器。L1P、L1D和L2的Cache功能分別由相應(yīng)的L1P 控制器、L1D控制器和L2控制器完成。


在C6000 DSP中通常我們會(huì)把L1P全部配置成Cache,當(dāng)CPU發(fā)出取指命令,首先會(huì)從L1P里查找,如果L1P找不到,則到下一級(jí)Cache或者M(jìn)emory里查找,當(dāng)找到需要的地址,則將其讀入L1P里,CPU從中讀取執(zhí)行。
因?yàn)長(zhǎng)1P Cache的大小是有限的(本文以32KB為例),而用戶內(nèi)存空間一般大于32KB,必須采取一種映射的方式使得所有地址都能被L1P緩存;在C6000 DSP中,L1P Cache使用地址直接映射,所有DSP 核可訪問(wèn)的地址對(duì)L1P Cache大小(32K)取模就能得到該地址在L1P Cache的偏移值。


如果用戶代碼在內(nèi)存排布不合理,可能會(huì)在L1P Cache中發(fā)生反復(fù)的內(nèi)容替換,下圖中的例子是一個(gè)極端情況。

Figure 2. 函數(shù)的不正確排布


TOP函數(shù)中FOR循環(huán)反復(fù)調(diào)用A 函數(shù),而A,B,C三個(gè)函數(shù)在內(nèi)存地址的分布上,與32KB邊界的偏移地址是一樣的,因此,A,B,C將對(duì)應(yīng)L1P里同一個(gè)CACHE位置;其運(yùn)行流程如下

當(dāng)執(zhí)行A時(shí),CPU需要把A函數(shù)調(diào)入到Cache偏移值N的位置上;

A調(diào)用B,此時(shí)調(diào)入B到Cache偏移值N 的位置上,覆蓋A的代碼;

B調(diào)用C,此時(shí)調(diào)入C到Cache偏移值N 的位置上,覆蓋B的代碼;

C返回,下一次循環(huán)調(diào)入A到Cache中覆蓋C的代碼。

DSP核對(duì)L1P,L2,DDR的訪問(wèn)速度差異很大,對(duì)L1P的訪問(wèn)通常在1 個(gè)時(shí)鐘周期內(nèi)完成,而L2平均需要3-5個(gè)周期,DDR訪問(wèn)需要的時(shí)間更多,因此我們應(yīng)該盡量避免上述這種反復(fù)重寫(xiě)Cache的情況,盡可能的減少函數(shù)在Cache中的置換。


如何解決該問(wèn)題?最好的解決方法則是將A,B,C在內(nèi)存中連續(xù)排放,這樣對(duì)Cache的操作次數(shù)將降到最低,能夠有效的提高執(zhí)行效率,如下圖所示,只要A,B,C總的大小不超過(guò)32KB,它們?cè)贑ache中的偏移值就是連續(xù)的,不會(huì)發(fā)生覆蓋的現(xiàn)象,即使其總和大于32KB,發(fā)生置換的也僅僅是超過(guò)32K的部分。

Figure 3. 函數(shù)的正確排布


3.內(nèi)存優(yōu)化工具

通過(guò)上述機(jī)制可以看到,對(duì)于L1P Cache的優(yōu)化主要通過(guò)分析函數(shù)調(diào)用關(guān)系和其在內(nèi)存的分布。由于用戶代碼日益復(fù)雜,人工分析代碼調(diào)用關(guān)系和地址排布需要花費(fèi)大量的時(shí)間。因此,從7.0系列編譯工具開(kāi)始,TI提供了一套內(nèi)存優(yōu)化工具(Cache Layout Tools)來(lái)幫助用戶輕松快捷地解決該問(wèn)題。


該工具的原理是在用戶進(jìn)行程序編譯時(shí)打開(kāi)生成分析信息選項(xiàng),編譯器會(huì)自動(dòng)加入分析記錄代碼到用戶程序里,之后用戶在TI DSP simulator或者DSP芯片上運(yùn)行該可執(zhí)行文件,內(nèi)置的分析代碼會(huì)自動(dòng)記錄用戶的函數(shù)調(diào)用關(guān)系及調(diào)用次數(shù)。運(yùn)行的案例越多,記錄的信息會(huì)更詳細(xì),優(yōu)化的效果也就越好。


在得到函數(shù)運(yùn)行時(shí)信息以后,就可以使用編譯器工具對(duì)其進(jìn)行分析,生成函數(shù)排布的順序,最后將此排布順序輸入到編譯器里重新編譯原代碼,生成的可執(zhí)行文件就已經(jīng)優(yōu)化過(guò)內(nèi)存排布,具體的操作可以參照以下實(shí)例。


4.實(shí)例教程
該實(shí)例主要由三個(gè)C文件組成,

實(shí)例中使用DSP計(jì)數(shù)器TSCL來(lái)統(tǒng)計(jì)cycle數(shù),子函數(shù)放在sub目錄下。

使用實(shí)例的步驟如下,

1.編譯代碼

使用TI編譯器對(duì)該實(shí)例進(jìn)行編譯,為了產(chǎn)生用于profile的信息,需要在編譯時(shí)增加--gen_profile_info選項(xiàng)。如果使用命令還形式,命令行下運(yùn)行Compile.bat文件,cl6x的具體參數(shù)可以參考spru186和spru187兩篇文檔,一般可以在編譯器的安裝目錄下找到他們,如C:\Program Files(x86)\Texas Instruments\C6000 Code Generation Tools 7.3.9\doc。

同時(shí)在目錄下生成OBJ和ASM文件,這個(gè)和我們的實(shí)驗(yàn)關(guān)系不大,可以不用關(guān)注。out文件是一會(huì)需要下載到芯片里運(yùn)行的可執(zhí)行文件,而map文件用于幫助我們定位profile信息存放的內(nèi)存地址。


如果用戶使用CCS編譯工具,則需要在Build的屬性里指定Feedback選項(xiàng),然后正常編譯即可生成攜帶分析代碼的可執(zhí)行文件。

Figure 4. CCS初編譯的選項(xiàng)

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

    關(guān)注

    0

    文章

    1

    瀏覽量

    1209
  • CLT
    CLT
    +關(guān)注

    關(guān)注

    0

    文章

    1

    瀏覽量

    2095
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DSP6000系統(tǒng)介紹

    1.1實(shí)時(shí)系統(tǒng)介紹1.2 DSP的歷史和特點(diǎn)1.3 DSP的選擇 第2章 C6000 DSP的開(kāi)發(fā)環(huán)境CCS 2.1 C6000 CCS的功能2.2 C6000代碼生成
    發(fā)表于 01-10 14:06

    c6000 c代碼優(yōu)化

    關(guān)于c6000系列的C代碼優(yōu)化總結(jié),在hellodsp上看到的好帖,拿來(lái)共享一下~~~
    發(fā)表于 08-03 15:24

    請(qǐng)問(wèn)有沒(méi)有針對(duì)C6000的功耗估算工具啊?

    TI官網(wǎng)上看到了OMAP35x功耗估算工具PET,http://www.ti.com.cn/tool/cn/powerest有沒(méi)有針對(duì)C6000的功耗估算
    發(fā)表于 07-25 08:38

    請(qǐng)問(wèn)可以提供C6000代碼優(yōu)化文檔嗎?

    可否提供C6000代碼優(yōu)化文檔,我在優(yōu)化時(shí)出現(xiàn)優(yōu)化后部分寄存器被修改的現(xiàn)象,請(qǐng)?zhí)峁?b class='flag-5'>優(yōu)化規(guī)則或
    發(fā)表于 08-07 07:43

    TI C6000優(yōu)化startup guide

    TI有很多介紹C6000優(yōu)化方法的文檔。本文列舉了其中最關(guān)鍵的4個(gè)文檔。并用中文注釋了每個(gè)文檔重點(diǎn)章節(jié)的知識(shí)點(diǎn)。可以作為初學(xué)C6000優(yōu)化
    發(fā)表于 12-28 11:16

    請(qǐng)問(wèn)TI C6000系列配置管腳復(fù)用的工具叫什么?

    請(qǐng)教TI C6000系列配置管腳復(fù)用的工具叫什么名字感謝
    發(fā)表于 01-10 11:30

    請(qǐng)問(wèn)怎樣通過(guò)CLT工具優(yōu)化C6000代碼

    有誰(shuí)來(lái)幫忙解答一下如何使用CLT工具優(yōu)化C6000代碼
    發(fā)表于 04-19 06:51

    TMS320C6000系列DSP的C代碼優(yōu)化方法

    對(duì)于TMS320C6000(簡(jiǎn)稱C6000)硬件平臺(tái)選用C語(yǔ)言編程時(shí),可利用C6000 優(yōu)化方法優(yōu)化
    發(fā)表于 04-16 09:31 ?24次下載

    TI C6000 C674x 全新OMAP-L雙核處理器針對(duì)

    TI C6000 C674x 全新OMAP-L雙核處理器針對(duì)工業(yè)領(lǐng)域應(yīng)用,浮點(diǎn)DSP TI 全新的 OMAP-L 系列處理器針對(duì)工業(yè)應(yīng)用領(lǐng)域帶來(lái)全新的
    發(fā)表于 05-18 18:21 ?1755次閱讀

    面向TI公司C6000系列DSP的電源系統(tǒng)設(shè)計(jì)

    面向TI公司C6000系列DSP的電源系統(tǒng)設(shè)計(jì)
    發(fā)表于 10-23 14:07 ?6次下載
    面向<b class='flag-5'>TI</b>公司<b class='flag-5'>C6000</b>系列DSP的電源系統(tǒng)設(shè)計(jì)

    關(guān)于C6000TI-RTOS 2.00 入門指南(英文版)

    本手冊(cè)描述了TI C6000 RTOS for。版本號(hào)作為本手冊(cè)的出版V2.00。
    發(fā)表于 04-16 09:59 ?0次下載
    關(guān)于<b class='flag-5'>C6000</b> 的<b class='flag-5'>TI</b>-RTOS 2.00 入門指南(英文版)

    TMS320C6000 DSP 優(yōu)化應(yīng)用報(bào)告

    ?TMS320C6000系列數(shù)字信號(hào)處理器(DSP)有許多建筑優(yōu)點(diǎn),使它們適合于計(jì)算密集型實(shí)時(shí)應(yīng)用。然而,要充分利用?C6000處理器提供的建筑特色,優(yōu)化代碼可能需要。首先,本文回顧了
    發(fā)表于 04-17 10:40 ?4次下載
    TMS320<b class='flag-5'>C6000</b> DSP <b class='flag-5'>優(yōu)化</b>應(yīng)用報(bào)告

    TMS3C6000 DSP的五個(gè)最有效的優(yōu)化代碼詳細(xì)介紹

    TMS3C6000型數(shù)字信號(hào)處理器(DSPS)具有許多結(jié)構(gòu)優(yōu)勢(shì)。它們是計(jì)算密集型實(shí)時(shí)應(yīng)用的理想選擇。然而,充分利用建筑C6000處理器提供的特性,可能需要代碼優(yōu)化。首先,這份文件評(píng)論理
    發(fā)表于 04-23 09:04 ?10次下載
    TMS3<b class='flag-5'>C6000</b> DSP的五個(gè)最有效的<b class='flag-5'>優(yōu)化</b><b class='flag-5'>代碼</b>詳細(xì)介紹

    C6000 DSP代碼進(jìn)行板級(jí)在線編譯及下載的方法介紹

    C6000 DSP代碼進(jìn)行板級(jí)在線編譯及下載的方法介紹
    發(fā)表于 11-01 08:25 ?0次下載
    <b class='flag-5'>C6000</b> DSP<b class='flag-5'>代碼</b>進(jìn)行板級(jí)在線編譯及下載的方法介紹

    CRS編譯碼原理和在TI C6000 DSP上的優(yōu)化實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《CRS編譯碼原理和在TI C6000 DSP上的優(yōu)化實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 09-10 14:25 ?0次下載
    CRS編譯碼原理和在<b class='flag-5'>TI</b> <b class='flag-5'>C6000</b> DSP上的<b class='flag-5'>優(yōu)化</b>實(shí)現(xiàn)
    主站蜘蛛池模板: 国产精品亚洲四区在线观看 | 美女黄色毛片免费看 | 国产亚洲一区二区在线观看 | 久久精品国产精品亚洲毛片 | 羞羞漫画喷水漫画yy漫画 | www.四虎影院.con | 在线三级网址 | 欧美亚洲天堂网 | 曰本a| 久久伊人男人的天堂网站 | 色综合天天综合网国产人 | 在线高清一级欧美精品 | 天天操天天干天天拍 | 香蕉视频一级 | 丁香婷婷九月 | 一级做a爰片久久毛片鸭王 一级做a爰片久久毛片一 | 久久久精品免费热线观看 | 91亚洲国产成人久久精品网站 | 男人视频在线观看 | 欧美精品videosex性欧美 | 亚洲丁香网 | 国产高清网站 | www天堂在线 | 天天做人人爱夜夜爽2020 | 国产精品任我爽爆在线播放6080 | 欧美影院一区二区 | 婷婷六月久久综合丁香一二 | 一级欧美在线的视频 | 日本极度另类网站 | 国产精品久久婷婷六月丁香 | 高清欧美性xxxx成熟 | 午夜日韩在线 | 美女视频黄色的免费 | 最近在线观看免费完整视频 | 免费观看在线永久免费xx视频 | 成人在线综合 | 嫩草影院www | 国产精品美女久久久久网 | 四虎现在的网址入口 | 国模私拍在线视频 | 国产人成高清视频观看 |