專利名稱:數(shù)字信號(hào)處理器可重構(gòu)指令高速緩存部分的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種處理器技術(shù)領(lǐng)域的方法,特別是一種數(shù)字信號(hào)處理器可重構(gòu)指令高速緩存部分的實(shí)現(xiàn)方法。
背景技術(shù):
高速緩存(cache)是一種解決主存儲(chǔ)器訪問(wèn)速度遠(yuǎn)遠(yuǎn)滯后于處理器運(yùn)算速度而采用的重要技術(shù)。通常在處理器和主存之間設(shè)置小容量的固定結(jié)構(gòu)的高速存儲(chǔ)器,采用特定的算法實(shí)現(xiàn)主存存取數(shù)據(jù)與處理器運(yùn)算速度的匹配,如ARM9系列的處理器。數(shù)字信號(hào)處理器作為嵌入式設(shè)備的處理器對(duì)功耗和性能有比較高的要求。一般的數(shù)字信號(hào)處理器的高速緩存能提升處理器的性能,但在功耗和資源方面會(huì)帶來(lái)一定損失。而且,嵌入式應(yīng)用豐富多樣,一般固定結(jié)構(gòu)的高速緩存無(wú)法對(duì)不同的應(yīng)用進(jìn)行相應(yīng)的重配置來(lái)更好地發(fā)揮高速緩存的功能。
經(jīng)對(duì)現(xiàn)有技術(shù)的文獻(xiàn)檢索發(fā)現(xiàn),1999年第32屆國(guó)際微結(jié)構(gòu)年會(huì)學(xué)報(bào)(Proceedings of the 32ndAnnual International Conference onMicroarchitecture,1999)《Selective Cache WaysOn-Demand Cache ResourceAllocation》(《選擇性緩存法按需分配緩存資源》)一文中提出高端處理器針對(duì)不同應(yīng)用選擇高速緩存組相聯(lián)路數(shù)的思想。該文基于傳統(tǒng)多路組相聯(lián)高速緩存結(jié)構(gòu),通過(guò)關(guān)閉多余的高速緩存路數(shù)的方法達(dá)到對(duì)不同應(yīng)用處理器性能的優(yōu)化,由于該文討論基于高端處理器,在功耗和存儲(chǔ)容量上未作特別考慮(減少高速緩存組相聯(lián)路數(shù)會(huì)減少高速緩存的容量,額外控制邏輯要求更大的功耗)。
2000年IEEE/ACM國(guó)際微處理器結(jié)構(gòu)年會(huì)(Microarchitecture,2000.MICRO-33.Proceedings.33rdAnnual IEEE/ACM International Symposium)《Memory hierarchy reconfiguration for energy and performance ingeneral-purpose processor architecuture》(《在通用處理器架構(gòu)中的基于功耗和性能的內(nèi)存層次配置》)一文中提出可重構(gòu)高速緩存的思想??芍貥?gòu)高速緩存思想多應(yīng)用于結(jié)構(gòu)復(fù)雜的處理器以處理一級(jí)高速緩存和二級(jí)高速緩存間的重新構(gòu)建。但是未有具體的可重構(gòu)高速緩存技術(shù)的說(shuō)明。
在進(jìn)一步的檢索中,尚未發(fā)現(xiàn)與本發(fā)明主題相同或者類似的文獻(xiàn)報(bào)道。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對(duì)現(xiàn)有技術(shù)的不足以及數(shù)字信號(hào)處理器大運(yùn)算量的特點(diǎn),提供一種數(shù)字信號(hào)處理器可重構(gòu)指令高速緩存部分的實(shí)現(xiàn)方法,使其實(shí)現(xiàn)的用于數(shù)字信號(hào)處理器的可重構(gòu)高速緩存(reconfigurable cache)具體低功耗的靈活的特點(diǎn),能通過(guò)配置構(gòu)成2路組相聯(lián)、偽3路及偽4路組相聯(lián)高速緩存或片上內(nèi)存4種形式,同時(shí)構(gòu)成偽多路組相聯(lián)高速緩存時(shí)映射地址可重配置。針對(duì)數(shù)字信號(hào)處理器的不同的應(yīng)用,實(shí)現(xiàn)同一處理器通過(guò)重構(gòu)高速緩存結(jié)構(gòu)和實(shí)時(shí)配置實(shí)現(xiàn)功耗與性能的最優(yōu)化。
本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的,本發(fā)明是在2路組相聯(lián)高速緩存的基礎(chǔ)上增加兩塊可重配置起始地址的直接映射高速緩存(ramset),ramset的打開(kāi)與關(guān)閉以及起始地址均可配置??芍貥?gòu)成2路組相聯(lián)高速緩存,偽3路及偽4路組相聯(lián)高速緩存以及片上內(nèi)存4種形式。ramset必須在2路組相聯(lián)高速緩存打開(kāi)的情況下才可工作,ramset具有較高優(yōu)先級(jí),因?yàn)橹苯酉嗦?lián)命中速度比2路組相聯(lián)更快速。打開(kāi)一塊ramset可與2路組相聯(lián)高速緩存構(gòu)成偽3路組相聯(lián)高速緩存;打開(kāi)兩塊ramset可與2路組相聯(lián)高速緩存構(gòu)成偽4路組相聯(lián)高速緩存。一般多路組相聯(lián)高速緩存每一路共享相同的地位地址而高位地址I(相當(dāng)于tag部分)可自由變動(dòng),且各組之間在替換時(shí)不存在優(yōu)先級(jí)。直接映射高速緩存的高位匹配地址是統(tǒng)一的,故形成的高速緩存稱為偽多路組相聯(lián)高速緩存。
這種結(jié)構(gòu)對(duì)于高位匹配地址與ramset匹配的程序段其命中時(shí)間比采用一般多路組相聯(lián)結(jié)構(gòu)更快速,因?yàn)閞amset是直接映射結(jié)構(gòu),其結(jié)構(gòu)和工作速度要比多路組相聯(lián)結(jié)構(gòu)更快。
基于低功耗的考慮,ramset2路組相聯(lián)高速緩存均采用門(mén)控時(shí)鐘實(shí)現(xiàn)低功耗設(shè)計(jì)。2路組相聯(lián)高速緩存時(shí)鐘由系統(tǒng)時(shí)鐘提供,由高速緩存打開(kāi)關(guān)閉信號(hào)控制;第一塊ramset打開(kāi)可構(gòu)成偽3路組相聯(lián)高速緩存,這塊ramset的時(shí)鐘由2路組相聯(lián)時(shí)鐘提供,ramset1開(kāi)關(guān)信號(hào)控制;第二塊ramset打開(kāi)可構(gòu)成為4路組相聯(lián)高速緩存,這塊ramset的時(shí)鐘由第一塊ramset的時(shí)鐘提供,由ramset2開(kāi)關(guān)信號(hào)控制。門(mén)控時(shí)鐘的采用可以在各組成部分不被使用時(shí)關(guān)閉其工作時(shí)鐘從而避免不必要的功率上的消耗。
本發(fā)明實(shí)現(xiàn)的可重構(gòu)指令高速緩存部分是數(shù)字信號(hào)處理器的一個(gè)組成部分,屬于數(shù)字信號(hào)處理器片上部分,針對(duì)數(shù)字信號(hào)處理器的運(yùn)算特點(diǎn)提出4種可重構(gòu)結(jié)構(gòu)。通過(guò)配置相關(guān)寄存器,將高速緩存重構(gòu)成2路組相聯(lián)高速緩存,偽3路及偽4路組相聯(lián)高速緩存以及片上內(nèi)存4種形式。其中2路組相聯(lián)高速緩存是基本構(gòu)成形式;偽3路及偽4路組相聯(lián)高速緩存的設(shè)計(jì)是考慮到數(shù)字信號(hào)處理器會(huì)大量循環(huán)使用一段連續(xù)地址空間中的程序的特點(diǎn),提供更快速的高速緩存,同時(shí)也增加了高速緩存組相聯(lián)的數(shù)目,可以提高高速緩存的命中率,加快取址速度;片上內(nèi)存的重構(gòu)是考慮到某些低功耗應(yīng)用不使用高速緩存,即可擴(kuò)展內(nèi)存的容量,擴(kuò)展大小為2路組相聯(lián)高速緩存和2塊直接映射緩存大小之和。
本發(fā)明通過(guò)配置一組相關(guān)寄存器來(lái)確定可重構(gòu)指令高速緩存的結(jié)構(gòu),具體為采用1比特的caen寄存器位,控制是作為高速緩存工作還是作為片上內(nèi)存;采用ICGC寄存器配置是作為2路組相聯(lián)、偽3路組相聯(lián)還是偽4路組相聯(lián)高速緩存;采用ICRTAG1和ICRTAG2兩個(gè)寄存器控制偽多路組相聯(lián)高速緩存第3路和第4路的匹配地址,ICRTAG1和ICRTAG2可編程修改,實(shí)現(xiàn)實(shí)時(shí)配置。2路組相聯(lián)工作方式遵循普通意義上的組相聯(lián)高速緩存工作方式。
本發(fā)明實(shí)現(xiàn)的是數(shù)字信號(hào)處理器片上部分,其控制信號(hào)包括工作使能信號(hào)、工作時(shí)鐘、取指地址等均有中央處理器(CPU)提供,高速緩存同時(shí)向CPU提供的命中的數(shù)據(jù)或者從主存中取數(shù)據(jù)后再傳送給CPU,從結(jié)構(gòu)上高速緩存隔離了CPU與主存,從性能上提高了CPU的取指效率。CPU是數(shù)字信號(hào)處理器控制和運(yùn)算部件,有時(shí)也稱為core。
本發(fā)明在傳統(tǒng)多路組相聯(lián)高速緩存基礎(chǔ)上添加2塊比多路組相聯(lián)高速緩存結(jié)構(gòu)更簡(jiǎn)單、命中速度更快的直接映射高速緩存構(gòu)成偽多路組相聯(lián)高速緩存,同時(shí)對(duì)不同應(yīng)用有可重構(gòu)性實(shí)現(xiàn)高速緩存組相聯(lián)路數(shù)的可選性及性能速度的優(yōu)化;同時(shí)未被構(gòu)成高速緩存的部分可作為內(nèi)存使用,避免浪費(fèi);利用門(mén)控時(shí)鐘的方式實(shí)現(xiàn)低功耗設(shè)計(jì)。本發(fā)明針對(duì)數(shù)字信號(hào)處理器的特點(diǎn)和高速緩存組相聯(lián)路數(shù)可選的思想,提供了結(jié)構(gòu)靈活、實(shí)現(xiàn)簡(jiǎn)單、性能優(yōu)化的低功耗偽多路組相聯(lián)高速緩存。
圖1本發(fā)明方法實(shí)現(xiàn)的可重構(gòu)指令高速緩存部分外圍聯(lián)系2本發(fā)明方法實(shí)現(xiàn)的可重構(gòu)指令高速緩存部分詳細(xì)結(jié)構(gòu)框3本發(fā)明方法實(shí)現(xiàn)的可重構(gòu)指令高速緩存部分設(shè)計(jì)4本發(fā)明方法實(shí)現(xiàn)的門(mén)控時(shí)鐘框5本發(fā)明方法實(shí)現(xiàn)的可重構(gòu)指令高速緩存部分工作框圖具體實(shí)施方式
如圖1所示本發(fā)明方法實(shí)現(xiàn)的可重構(gòu)指令高速緩存部分外圍聯(lián)系圖。描述了高速緩存與數(shù)字信號(hào)中央處理器(CPU)、主存間的關(guān)系。CPU通過(guò)控制信號(hào)配置高速緩存結(jié)構(gòu)同時(shí)提供高速緩存指令地址。高速緩存根據(jù)CPU提供地址在緩存內(nèi)或者主存中找到指令并傳送回CPU的指令隊(duì)列用于CPU的執(zhí)行。圖中,高速緩存控制位cean位于CPU中,ICGC,ICRTAG1和ICRTAG2均屬于高速緩存控制寄存器。
如圖2所示本發(fā)明方法實(shí)現(xiàn)的可重構(gòu)指令高速緩存部分詳細(xì)結(jié)構(gòu)框圖。本發(fā)明內(nèi)部由一個(gè)2路組相聯(lián)的高速緩存和2個(gè)直接映射高速緩存(ramset1,ramset2)組成,每個(gè)組成部分的時(shí)鐘都是門(mén)控時(shí)鐘,CPU提供控制信號(hào)和指令地址,高速緩存從主存取指令提供給CPU。
如圖3所示本發(fā)明方法實(shí)現(xiàn)的可重構(gòu)指令高速緩存部分設(shè)計(jì)圖。2路組相聯(lián)高速緩存內(nèi)部包含數(shù)據(jù)列和標(biāo)志列兩部分。數(shù)據(jù)列用于存儲(chǔ)指令,標(biāo)志列(tag部分)存儲(chǔ)指令所在地址的高位部分用于地址匹配,lru部分用于高速緩存替換算法。兩塊直接映射高速緩存用于與2路組相聯(lián)高速緩存構(gòu)成偽多路組相聯(lián)高速緩存。根據(jù)圖示結(jié)構(gòu),以程序地址中(Addr)部分確定2路組相聯(lián)高速緩存數(shù)據(jù)列位置及直接映射高速緩存數(shù)據(jù)列位置,程序地址中標(biāo)志位部分(Tag)分別與ICRTAG1,ICRTAG2和2路組相聯(lián)標(biāo)志比較,若和ICRTAG1或者ICRTAG2匹配成功,選擇直接映射高速緩存中的數(shù)據(jù);若否,但與2路組相聯(lián)高速緩存標(biāo)志列匹配,選擇2路組相聯(lián)高速緩存相應(yīng)數(shù)據(jù)列中的數(shù)據(jù);若均不成功則不命中,從主存中重新讀入數(shù)據(jù)。
如圖4所示本發(fā)明方法實(shí)現(xiàn)的門(mén)控時(shí)鐘框圖。2路組相聯(lián)高速緩存的時(shí)鐘(cah_clk)由高速緩存打開(kāi)關(guān)閉信號(hào)(cah_en)控制,由系統(tǒng)時(shí)鐘(sys_clk)提供;第一塊ramset由其開(kāi)關(guān)信號(hào)控制(rs1_en),由2路組相聯(lián)的時(shí)鐘(cah_clk)提供;第二塊ramset由其開(kāi)關(guān)信號(hào)控制(rs2_en),由第一塊直接映射高速緩存地時(shí)鐘(rs1_clk)提供。
如圖5所示本發(fā)明方法實(shí)現(xiàn)的可重構(gòu)指令高速緩存部分工作框圖。匹配時(shí)遵循ramset1,rasmset2和2路組相聯(lián)高速緩存從高到低的優(yōu)先級(jí)(當(dāng)所有部分都打開(kāi)的情況下,若未打開(kāi)則跳過(guò)這一部分,其他部分優(yōu)先級(jí)不變)。先看高位部分是否與ICRTAG1,ICRTAG2或者標(biāo)志列相應(yīng)位置是否匹配,若否則匹配不成功,從主存中調(diào)入數(shù)據(jù),對(duì)2路組相聯(lián)采用lru替換算法;若匹配,看數(shù)據(jù)項(xiàng)是否有效(valid),若無(wú)效則與標(biāo)志不匹配一樣處理,若有效則命中,直接將高速緩存中的數(shù)據(jù)送出。
權(quán)利要求
1.一種數(shù)字信號(hào)處理器可重構(gòu)指令高速緩存部分的實(shí)現(xiàn)方法,其特征在于,在2路組相聯(lián)高速緩存的基礎(chǔ)上增加兩塊可重配置起始地址即高位匹配地址的直接映射高速緩存,直接映射高速緩存的打開(kāi)與關(guān)閉以及起始地址均可配置,直接相聯(lián)高速緩存必須在2路組相聯(lián)高速緩存打開(kāi)的情況下才可工作,直接相聯(lián)高速緩存具有較高優(yōu)先級(jí),打開(kāi)一塊直接映射高速緩存與2路組相聯(lián)高速緩存構(gòu)成偽3路組相聯(lián)高速緩存;打開(kāi)兩塊直接映射高速緩存于2路組相聯(lián)高速緩存構(gòu)成偽4路組相聯(lián)高速緩存,直接映射高速緩存的高位匹配地址是統(tǒng)一的。
2.根據(jù)權(quán)利要求1所述的數(shù)字信號(hào)處理器可重構(gòu)指令高速緩存部分的實(shí)現(xiàn)方法,其特征是,直接映射高速緩存在容量設(shè)置和相聯(lián)方式上提供最大程度的緩存處理,同時(shí)能實(shí)現(xiàn)偽多路組相聯(lián)功能,直接映射高速緩存的起始地址可編程重配置,通過(guò)編程能實(shí)時(shí)監(jiān)控其命中情況并實(shí)現(xiàn)實(shí)時(shí)重配置與重構(gòu),直接映射高速緩存與2路組相聯(lián)高速緩存均采用門(mén)控時(shí)鐘實(shí)現(xiàn)低功耗設(shè)計(jì)。
3.根據(jù)權(quán)利要求1或者2所述的數(shù)字信號(hào)處理器可重構(gòu)指令高速緩存部分的實(shí)現(xiàn)方法,其特征是,2路組相聯(lián)高速緩存時(shí)鐘由系統(tǒng)時(shí)鐘提供,通過(guò)配置高速緩存控制寄存器來(lái)實(shí)現(xiàn)打開(kāi)關(guān)閉信號(hào)控制;第一塊直接映射高速緩存打開(kāi)可構(gòu)成偽3路組相聯(lián)高速緩存,這塊直接映射高速緩存的時(shí)鐘由2路組相聯(lián)時(shí)鐘提供,通過(guò)開(kāi)關(guān)信號(hào)實(shí)現(xiàn)控制;第二塊直接映射高速緩存打開(kāi)構(gòu)成偽4路組相聯(lián)高速緩存,這塊直接映射高速緩存的時(shí)鐘由第一塊直接映射高速緩存的時(shí)鐘提供,通過(guò)開(kāi)關(guān)信號(hào)實(shí)現(xiàn)控制。
4.根據(jù)權(quán)利要求1或者2所述的數(shù)字信號(hào)處理器可重構(gòu)指令高速緩存部分的實(shí)現(xiàn)方法,其特征是,2路組相聯(lián)高速緩存內(nèi)部包含數(shù)據(jù)列和標(biāo)志列兩部分,數(shù)據(jù)列用于存儲(chǔ)指令,標(biāo)志列即tag部分存儲(chǔ)指令所在地址的高位部分用于地址匹配,lru部分用于高速緩存替換算法。
5.根據(jù)權(quán)利要求1所述的數(shù)字信號(hào)處理器可重構(gòu)指令高速緩存部分的實(shí)現(xiàn)方法,其特征是,通過(guò)配置一組相關(guān)寄存器來(lái)確定可重構(gòu)指令高速緩存的結(jié)構(gòu),具體為采用1比特的caen寄存器位,控制是作為高速緩存工作還是作為片上內(nèi)存;采用ICGC寄存器配置是作為2路組相聯(lián)、偽3路組相聯(lián)還是偽4路組相聯(lián)高速緩存;采用ICRTAG1和ICRTAG2兩個(gè)寄存器控制偽多路組相聯(lián)高速緩存第3路和第4路的匹配地址,ICRTAG1和ICRTAG2可編程修改,實(shí)現(xiàn)實(shí)時(shí)配置。
6.根據(jù)權(quán)利要求1或者5所述的數(shù)字信號(hào)處理器可重構(gòu)指令高速緩存部分的實(shí)現(xiàn)方法,其特征是,以程序地址中Addr部分確定2路組相聯(lián)高速緩存數(shù)據(jù)列位置及直接映射高速緩存數(shù)據(jù)列位置,程序地址中標(biāo)志位部分Tag分別與ICRTAG1,ICRTAG2和2路組相聯(lián)標(biāo)志比較,若和ICRTAG1或者ICRTAG2匹配成功,選擇直接映射高速緩存中的數(shù)據(jù);若否,但與2路組相聯(lián)高速緩存標(biāo)志列匹配,選擇2路組相聯(lián)高速緩存相應(yīng)數(shù)據(jù)列中的數(shù)據(jù);若均不成功則不命中,從主存中重新讀入數(shù)據(jù)。
7.根據(jù)權(quán)利要求1或者5所述的數(shù)字信號(hào)處理器可重構(gòu)指令高速緩存部分的實(shí)現(xiàn)方法,其特征是,兩塊直接映射高速緩存和2路組相聯(lián)高速緩存匹配時(shí),遵循從高到低的優(yōu)先級(jí),先看高位部分是否與ICRTAG1,ICRTAG2或者標(biāo)志列相應(yīng)位置是否匹配,若匹配不成功,從主存中調(diào)入數(shù)據(jù),對(duì)2路組相聯(lián)采用lru替換算法;若匹配,看數(shù)據(jù)項(xiàng)是否有效,若無(wú)效則與標(biāo)志不匹配一樣處理,若有效則命中,直接將高速緩存中的數(shù)據(jù)送出。
全文摘要
一種處理器技術(shù)領(lǐng)域的數(shù)字信號(hào)處理器可重構(gòu)指令高速緩存部分的實(shí)現(xiàn)方法,在2路組相聯(lián)高速緩存的基礎(chǔ)上增加兩塊可重配置起始地址即高位匹配地址的直接映射高速緩存,直接映射高速緩存的打開(kāi)與關(guān)閉以及起始地址均可配置。直接相聯(lián)高速緩存必須在2路組相聯(lián)高速緩存打開(kāi)的情況下才可工作,直接相聯(lián)高速緩存具有較高優(yōu)先級(jí),打開(kāi)一塊直接映射高速緩存與2路組相聯(lián)高速緩存構(gòu)成偽3路組相聯(lián)高速緩存;打開(kāi)兩塊直接映射高速緩存于2路組相聯(lián)高速緩存構(gòu)成偽4路組相聯(lián)高速緩存,直接映射高速緩存的高位匹配地址是統(tǒng)一的。本發(fā)明針對(duì)數(shù)字信號(hào)處理器的特點(diǎn),基于高速緩存組相聯(lián)路數(shù)可選的思想,提供了結(jié)構(gòu)靈活、實(shí)現(xiàn)簡(jiǎn)單、性能優(yōu)化的低功耗偽多路組相聯(lián)高速緩存。
文檔編號(hào)G06F12/12GK1746865SQ20051003045
公開(kāi)日2006年3月15日 申請(qǐng)日期2005年10月13日 優(yōu)先權(quán)日2005年10月13日
發(fā)明者陳進(jìn), 陳薇薇, 王琴 申請(qǐng)人:上海交通大學(xué)