国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

TMS320C55x的指令流水線及其效率的提高

發(fā)布時(shí)間:2010-11-25 12:03    發(fā)布者:eetech
關(guān)鍵詞: TMS320C55x , 流水線 , 指令
TMS320C55x(以下簡(jiǎn)稱C55x)是德州儀器公司推出的新一代低功耗高性能16位定點(diǎn)數(shù)字信號(hào)處理器(DSP)。2002年初,德州儀器公司相繼推出了TMS320C55x系列中TMS320VC5510的正式版本,以及TMS320VC5509和 TMS320VC5502。C55x是在TMS320C54x(以下簡(jiǎn)稱C54x)的基礎(chǔ)上發(fā)展而來(lái)的,其源代碼也與C54x的兼容。C55x達(dá)到了C54x的2倍的周期效率,并且只有C54x的1/6的功耗。C55x優(yōu)異的性能和極低的功耗使其成為具有相當(dāng)競(jìng)爭(zhēng)力的DSP產(chǎn)品。

C55x是從C54x的基礎(chǔ)上發(fā)展而來(lái)的,在結(jié)構(gòu)上做了相當(dāng)大的擴(kuò)展,在指令集上也有很大的提高。C55x繼續(xù)使用C54x在代碼密度上建立的獲得更低系統(tǒng)成本的標(biāo)準(zhǔn),并將其進(jìn)一步發(fā)展為采用1"6字節(jié)的可變字節(jié)寬度的指令,以提高代碼密度。使用這種可縮放的指令字長(zhǎng)度,C55x每個(gè)功能的控制代碼可以比C54x的減少最多達(dá)40%。C55x還增加了總線寬度,其指令單元每次可從內(nèi)部或外部存儲(chǔ)器取32位程序代碼(C54x每次只能取16位)。C55x含有指令高速緩存器(cache)以使外部存儲(chǔ)器訪問(wèn)最少,改善數(shù)據(jù)吞吐率和省電。這種指令集的設(shè)計(jì)與低功耗需求結(jié)構(gòu)的聯(lián)合使用,使得應(yīng)用系統(tǒng)具有極高的性能。

C55x DSP的最大特點(diǎn)就在于,其強(qiáng)有力的并行特性和方便用戶編程的流水線自動(dòng)保護(hù)機(jī)制,而C55x并行指令的實(shí)現(xiàn)和指令的高效率執(zhí)行,在很大程度上都依賴于指令流水線的支持。



1 TMS320C55x的指令流水線

DSP指令的執(zhí)行,可以是直接執(zhí)行,如AD公司的218x系列DSP,也可以采用指令流水線的方式。德州儀器公司的DSP產(chǎn)品一般都采用指令流水線的工作方式,即一條指令的執(zhí)行分為若干個(gè)階段完成,就像經(jīng)過(guò)工廠里的生產(chǎn)流水線上的一道道工序一樣,而同時(shí),在流水線的其它階段又分別有其它的指令在順序地執(zhí)行著。采用指令流水線的執(zhí)行方式,可以大大提高系統(tǒng)的執(zhí)行效率,使得系統(tǒng)可以低延遲或“無(wú)延遲”地執(zhí)行較復(fù)雜的指令。因此,更多的DSP開(kāi)始采用指令流水線的執(zhí)行方式。 C55x繼承了C54x的指令流水線的執(zhí)行方式,其流水線分為兩個(gè)分離的階段,即“取指階段”和“執(zhí)行階段”。在取指階段,將4字節(jié)的指令包取入指令緩沖隊(duì)列,這里面又包括提交地址、取指、預(yù)譯碼等4個(gè)階段;而在執(zhí)行階段,則完成指令的譯碼執(zhí)行,又可分為譯碼、取操作數(shù)、執(zhí)行、寫回結(jié)果等8個(gè)階段。圖1是“取指階段”和“執(zhí)行階段”的示意圖。

其中“數(shù)據(jù)回寫+”只出現(xiàn)在數(shù)據(jù)寫入存儲(chǔ)器的指令中。

C55x的指令流水線一般由程序流單元(PU)控制。程序流單元對(duì)指令譯碼,分派指令到尋址單元(AU)和數(shù)據(jù)運(yùn)算單元(DU),并管理全部的保護(hù)流水線,其具有的預(yù)測(cè)轉(zhuǎn)移能力可以避免條件指令執(zhí)行引起的流水線刷新。

2 TMS320C55x指令流水線的自動(dòng)保護(hù)機(jī)制

雖然采用指令流水線的工作方式,可以提高系統(tǒng)的效率,但不同的指令執(zhí)行情況不同,就有可能造成流水線的沖突。如:當(dāng)一條指令想寫入某寄存器時(shí),前一指令還未完成對(duì)該寄存器的讀取操作,就會(huì)產(chǎn)生流水線沖突的問(wèn)題,這時(shí)候就必須對(duì)流水線進(jìn)行保護(hù),確保前一指令的讀取操作完成后才修改該寄存器的值。遇到這樣的情況,必須在第二條指令之前加入等待延遲。如:在設(shè)計(jì)C54x程序時(shí),就需要程序設(shè)計(jì)人員在可能發(fā)生流水線沖突的指令前后手工加入NOP(空操作)指令或調(diào)整指令的順序,以使第二條指令執(zhí)行時(shí)能取到正確的操作數(shù)。時(shí)刻關(guān)注流水線的沖突問(wèn)題,在編程時(shí)是非常麻煩的;而在C55x中,由于采用多指令并行操作,流水線的沖突問(wèn)題也就越發(fā)嚴(yán)重。但幸運(yùn)的是,C55x中的指令流水線具有自動(dòng)保護(hù)機(jī)制,其自動(dòng)保護(hù)機(jī)制會(huì)在可能引起沖突的指令之間自動(dòng)增加不活動(dòng)的周期,以避免沖突的發(fā)生。這些都是在指令執(zhí)行時(shí)自動(dòng)加入的,不需要設(shè)計(jì)人員親自去添加等待周期,從而省去了在編程時(shí)對(duì)流水線沖突進(jìn)行調(diào)整的工作,大大降低了編程和調(diào)試的難度。而且,也正是由于指令流水線有了自動(dòng)保護(hù)機(jī)制,才使得設(shè)計(jì)人員可以放心地使用C55x的并行指令。 3 如何減少指令流水線的保護(hù)和延遲

雖然C55x的自動(dòng)保護(hù)指令流水線結(jié)構(gòu)降低了編程時(shí)的復(fù)雜度,但指令流水線的保護(hù)造成的延遲也是影響C55x程序執(zhí)行效率的一個(gè)重要方面。

指令流水線的執(zhí)行方式會(huì)產(chǎn)生流水線的沖突和保護(hù),而C55x支持多指令同時(shí)執(zhí)行,流水線沖突與保護(hù)的問(wèn)題更加嚴(yán)重。所以,減少流水線的沖突,即減少流水線保護(hù)造成的延遲,對(duì)DSP的執(zhí)行效率是大有影響的。下面就介紹流水線沖突的可能原因和如何避免流水線沖突,以盡量減少流水線保護(hù)機(jī)制所帶來(lái)的延遲。

① 對(duì)寄存器訪問(wèn)的競(jìng)爭(zhēng)是影響流水線保護(hù)和延遲的主要原因。如果出現(xiàn)要對(duì)某寄存器讀取/寫入的時(shí)候,前一指令對(duì)該寄存器的寫操作/讀操作還未完成的情況,就會(huì)造成流水線保護(hù)和延遲。在以寄存器為條件執(zhí)行指令的條件中,如果在測(cè)試條件時(shí)前面的指令對(duì)該寄存器的修改還未完成,也會(huì)造成流水線保護(hù)和延遲。而C55x大部分操作都是在寄存器內(nèi)或依賴寄存器來(lái)完成的,所以這是造成流水線保護(hù)和延遲的主要原因。這時(shí)候,需要仔細(xì)安排指令的順序,避免對(duì)寄存器訪問(wèn)的競(jìng)爭(zhēng);必要時(shí)可以采用加mmap()的方式,因?yàn)檫@會(huì)改變對(duì)相應(yīng)的寄存器的讀取和修改的流水線階段,就有可能解決這個(gè)問(wèn)題。

② 對(duì)存儲(chǔ)器訪問(wèn)的競(jìng)爭(zhēng)也是影響流水線保護(hù)和延遲的重要原因。C55x內(nèi)部存儲(chǔ)器分為SARAM和DARAM兩種。每個(gè)周期、每個(gè)SARAM體(bank)可被訪問(wèn)一次,DARAM體可被訪問(wèn)兩次;如果在同一周期,指令(或并行指令對(duì))中要對(duì)同一體訪問(wèn)超過(guò)兩次的時(shí)候,就會(huì)造成流水線延遲。這時(shí)侯,可以考慮將其中一個(gè)數(shù)組復(fù)制到另一個(gè)存儲(chǔ)器體中去,然后再執(zhí)行相應(yīng)的操作。在安排程序位置的時(shí)候,將程序代碼放在SARAM區(qū)。因?yàn)椋x取程序代碼也可能和數(shù)據(jù)的存取產(chǎn)生競(jìng)爭(zhēng)。 此外,我們還要注意,C55x流水線將某些狀態(tài)寄存器STx的某些位看作“位組”,將某些寄存器看作“寄存器組”。所以,在同時(shí)訪問(wèn)這些“位組”或“寄存器組”成員的時(shí)候,也會(huì)產(chǎn)生與同時(shí)訪問(wèn)一個(gè)寄存器或存儲(chǔ)器地址類似的沖突,也會(huì)造成流水線延遲。

③ 指令緩沖隊(duì)列也有可能造成流水線保護(hù)和延遲。指令緩沖隊(duì)列(IBQ)用于保存準(zhǔn)備解碼執(zhí)行的指令,每次送出6字節(jié)的指令譯碼,同時(shí)從程序區(qū)取4字節(jié)的指令包補(bǔ)充。所以如果有太多的5或6字節(jié)的指令連續(xù)執(zhí)行,就有可能使取指的速度跟不上譯碼的速度而導(dǎo)致延遲。而在程序執(zhí)行出現(xiàn)子程序調(diào)用、跳轉(zhuǎn)、塊重復(fù)和循環(huán)等情況的時(shí)候,IBQ的內(nèi)容被刷新,需要重新取指填充IBQ,這也會(huì)造成流水線延遲。在長(zhǎng)指令間插入一些短指令,并盡可能地使用localrepeat,可以減少出現(xiàn)IBQ延遲的情況。

判斷是否有流水線延遲的方法可以通過(guò)高版本的開(kāi)發(fā)工具來(lái)檢查,也可在懷疑有延遲的語(yǔ)句后添加NOP指令,觀察前后的執(zhí)行時(shí)間是否改變。若沒(méi)有什么變化,則說(shuō)明有延遲的情況存在,可以將其它指令調(diào)整到這個(gè)位置。

4 如何提高流水線的效率

一般情況下,采用指令流水線可以提高系統(tǒng)的執(zhí)行效率,但是這需要合理的程序設(shè)計(jì)來(lái)實(shí)現(xiàn)這一點(diǎn)。例如,上面提到的流水線沖突會(huì)引起流水線保護(hù)從而造成延遲。此外,即使在沒(méi)有流水線保護(hù)的情況下,也有可能影響流水線的效率。比如在程序中發(fā)生調(diào)用子程序、條件跳轉(zhuǎn)和塊重復(fù)循環(huán)等分支跳轉(zhuǎn)的情況時(shí),處于指令流水線中各階段的預(yù)處理過(guò)的指令都要丟棄,必須重新取入新的指令并重新預(yù)處理后才能執(zhí)行,這就不可避免地帶來(lái)延遲。所以,盡可能地減少指令流水線的刷新,將使程序運(yùn)行的速度提高,延遲更少。

為了減少指令流水線的刷新,即減少分支跳轉(zhuǎn)的情況出現(xiàn),要盡可能地用條件執(zhí)行指令來(lái)代替條件跳轉(zhuǎn)指令,用單指令重復(fù)repeat(CSR)和本地循環(huán)(localrepeat)來(lái)代替塊循環(huán)(blockrepeat)。這樣不但可以加快程序的執(zhí)行,而且可以減少代碼空間和程序執(zhí)行時(shí)的功耗。條件執(zhí)行指令會(huì)根據(jù)條件是否成立來(lái)決定指令是否執(zhí)行,而不會(huì)像條件跳轉(zhuǎn)指令那樣產(chǎn)生跳轉(zhuǎn),也就避免了出現(xiàn)分支跳轉(zhuǎn)的情況;而使用單指令重復(fù)和本地循環(huán),在循環(huán)結(jié)構(gòu)中的指令被取入指令緩沖隊(duì)列后就不再刷新指令緩沖隊(duì)列,而直接使用指令緩沖隊(duì)列中已經(jīng)取好的指令反復(fù)執(zhí)行,直到循環(huán)結(jié)束,從而也避免了取指和譯碼帶來(lái)的延遲,大大提高了流水線執(zhí)行的效率。但在編程時(shí)需要注意的是,本地循環(huán)第一條指令和最后一條指令之間最多為55字節(jié)的指令,否則,就無(wú)法采用本地循環(huán)而必須采用塊循環(huán)方式。因?yàn)椋詈笠粭l指令前的長(zhǎng)度可為55字節(jié),而最后一條可以為長(zhǎng)6字節(jié)的指令。所以,在整個(gè)循環(huán)指令長(zhǎng)度較大時(shí),可以將較短的指令前移,而將最長(zhǎng)的指令放在最后一條,這樣就有可能使得較長(zhǎng)的指令也構(gòu)成本地循環(huán)的結(jié)構(gòu)。

結(jié) 語(yǔ)

TMS320C55x是一種高性能的DSP,C55x指令流水線的優(yōu)異性能是其中的非常重要的方面。通過(guò)合理的程序設(shè)計(jì),減少指令流水線的沖突以減少保護(hù)所造成的延遲,并且盡量減少流水線的刷新,將使程序的執(zhí)行效率更高,同時(shí)也降低了系統(tǒng)的功耗,從而可以真正發(fā)揮TMS320C55x的優(yōu)異性能。
本文地址:http://m.qingdxww.cn/thread-41607-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開(kāi)發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開(kāi)發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 俄罗斯人与动物xxxx | 国产免费精彩视频 | 免费观看一区二区 | 欧美日韩一级二级三级 | 污网站免费在线观看 | 91国内在线视频 | 欧美一区二区三区gg高清影视 | 亚洲欧美日本国产 | 国产精品对白交换视频 | 欧美色青 | 五月综合视频 | 欧美特黄高清免费观看的 | 羞羞免费网站 | 在线免费观看精品 | 天堂综合网 | 成人欧美一区二区三区黑人免费 | 欧美 日韩 视频 | 精品国产网站 | 国产精品国产三级农村妇女 | 欧美日韩精品一区二区三区 | 河马的秘密河文轩冰草莓 | 亚洲国产精品毛片∧v卡在线 | 最近最新中文字幕6页 | 亚洲一区免费在线观看 | 男人的亚洲天堂 | 欧美91精品久久久久网免费 | 视频一区二区三区自拍 | 欧美一卡2卡三卡4卡公司免费 | 日韩成人精品日本亚洲 | 欧美一区二区三区播放 | 亚洲综合狠狠99婷婷 | α片免费| 青青青视频蜜桃一区二区 | 啦啦啦资源视频在线观看4 啦啦啦中文在线影院观看 啦啦啦在线观看视频免费观看4 | 91video国产一区 | 亚洲女人与黑人 | 久久成人免费播放网站 | 99视频精品全部免费观看 | 精品精品精品 | 奶茶视频影院播放 | 成年人在线观看免费视频 |