專利名稱:一種指令高速緩沖存儲(chǔ)器裝置及其控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種處理器技木,尤其涉及ー種指令高速緩沖存儲(chǔ)器裝置及其控制方法。
背景技術(shù):
目前數(shù)字信號(hào)處理器(Digital Signal Processor,簡稱DSP)在便攜設(shè)備上得到了廣泛的應(yīng)用,對于以電池作為電源的移動(dòng)設(shè)備,由于電池容量的大量提升在短期內(nèi)是不容易實(shí)現(xiàn)的,這就要求DSP設(shè)計(jì)者在進(jìn)行設(shè)計(jì)時(shí)不僅要考慮電路的速度,而且要考慮電路的功耗。在DSP中,存儲(chǔ)器已經(jīng)成為最大的組成部分,也是最主要的功耗來源。 指令高速緩沖存儲(chǔ)器(簡稱指令Cache)作為提高處理器內(nèi)核取指速度的關(guān)鍵部件,占據(jù)了系統(tǒng)很大一部分功耗,因?yàn)閮?nèi)核取指令幾乎在程序執(zhí)行的每個(gè)周期都發(fā)生。圖I為現(xiàn)有技術(shù)直接相聯(lián)方式的指令Cache結(jié)構(gòu)示意圖,它主要由標(biāo)志(tag)存儲(chǔ)器、數(shù)據(jù)(data)存儲(chǔ)器和狀態(tài)位(state)組成。當(dāng)處理器內(nèi)核訪問指令Cache時(shí),tag存儲(chǔ)器根據(jù)內(nèi)核地址的索引位(Index)作為地址讀出標(biāo)志位,并與內(nèi)核地址中的Tag位進(jìn)行比較,如果相等則表示命中,處理器內(nèi)核直接從指令Cache中讀取數(shù)據(jù);如果不相等則表示沒有命中,這時(shí)會(huì)啟動(dòng)ー個(gè)訪問主存的操作。從指令Cache的工作原理可以看出,處理器內(nèi)核的取指操作需要進(jìn)行大量的讀tag存儲(chǔ)器操作和比較操作,這個(gè)過程需要消耗大量的功耗。在典型的DSP應(yīng)用程序中,其核心往往是循環(huán)體代碼,通常不到10%的核心代碼占用了 90%以上的執(zhí)行時(shí)間,如果能夠降低這10%的循環(huán)體代碼運(yùn)行時(shí)的取指功耗,則可以有效降低處理器的整體功耗。在現(xiàn)有技術(shù)中,中國專利200680050607. 4公布了ー種使用循環(huán)緩沖器降低功耗的處理器(如圖2所示)。該處理器201的處理器內(nèi)核202在從指令高速緩存器203中取指令時(shí),將形成循環(huán)的指令存儲(chǔ)在循環(huán)緩沖器204中,待循環(huán)體代碼存儲(chǔ)完成之后,指令提取単元205開始從循環(huán)緩沖器204中取指令并交由執(zhí)行單元206執(zhí)行,同時(shí)禁能指令高速緩存器203以降低功耗;當(dāng)循環(huán)退出時(shí),重新使能指令高速緩存器203,指令提取單元205開始從指令高速緩存器203中取指令。在期刊IEEE Computer Architecture Letters, Vol. 1,NO. 1,April2002 中 AnnGordon-Ross 等人發(fā)表的《Exploiting Fixed Programsin Embedded Systems:A LoopCache Example》文章中提出了一種循環(huán)Cache (Loop Cache)的結(jié)構(gòu)(如圖3所示)。該結(jié)構(gòu)的主要特點(diǎn)是在處理器內(nèi)核304和指令Cache301之間插入一塊更小的循環(huán)緩沖器(LoopCache) 302。Loop Cache302采用直接相聯(lián)的方式,沒有tag存儲(chǔ)器。它的工作原理是首先根據(jù)編譯器提供的信息,將占用執(zhí)行時(shí)間最多的循環(huán)放入Loop Cache302中,然后由選擇器303根據(jù)后向跳轉(zhuǎn)指令來判斷是從Cache301中取指還是從Loop Cache302中取指。上述現(xiàn)有技術(shù)的缺點(diǎn)在于1、由于緩沖器的容量很小,當(dāng)循環(huán)體的指令數(shù)目大于緩沖器的容量時(shí),循環(huán)體代碼不能裝入緩沖器,處理器內(nèi)核仍然需要從指令高速緩沖器中取指令;2、在填充循環(huán)緩沖器的過程中需要進(jìn)行循環(huán)體代碼的拷貝操作,這個(gè)過程需要消耗處理器功耗;3、現(xiàn)有技術(shù)需要增加一個(gè)額外的存儲(chǔ)器,而且需要設(shè)計(jì)一個(gè)對應(yīng)的存儲(chǔ)器控制器,增加了 DSP設(shè)計(jì)的面積和復(fù)雜度。
發(fā)明內(nèi)容
本發(fā)明的目的是為了降低循環(huán)體代碼執(zhí)行過程中指令Cache的功耗。為實(shí)現(xiàn)上述目的,一方面,本發(fā)明提供了一種指令高速緩沖存儲(chǔ)器裝置,該裝置包括指令Cache控制器、與所述指令高速緩沖存儲(chǔ)器控制器相連接的標(biāo)志存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,其中指令Cache控制器包括片選控制電路,片選控制電路用于在執(zhí)行循環(huán)體代碼時(shí),禁能標(biāo)志存儲(chǔ)器;當(dāng)循環(huán)體代碼執(zhí)行完畢后,使標(biāo)志存儲(chǔ)器正常工作。另一方面,本發(fā)明提供了一種指令高速緩沖存儲(chǔ)器控制方法,該方法步驟包括在循環(huán)體代碼執(zhí)行時(shí),禁能標(biāo)志存儲(chǔ)器;當(dāng)循環(huán)體代碼執(zhí)行完畢后,標(biāo)志存儲(chǔ)器正常工作。
·
本發(fā)明實(shí)施例提供的指令高速緩沖存儲(chǔ)器裝置增加了對標(biāo)志存儲(chǔ)器的控制,處理器內(nèi)核在執(zhí)行循環(huán)體代碼時(shí),禁能標(biāo)志存儲(chǔ)器;在循環(huán)退出時(shí),撤銷標(biāo)志存儲(chǔ)器禁能信號(hào),使標(biāo)志存儲(chǔ)器正常工作。本發(fā)明實(shí)施例在處理器內(nèi)核執(zhí)行循環(huán)體代碼時(shí),通過禁能標(biāo)志存儲(chǔ)器減少了對標(biāo)志存儲(chǔ)器的讀操作和比較操作,從而降低了處理器的整體功耗。
通過以下結(jié)合附圖以舉例方式對本發(fā)明的實(shí)施方式進(jìn)行詳細(xì)描述后,本發(fā)明的其他特征、特點(diǎn)和優(yōu)點(diǎn)將會(huì)更加明顯。圖I為現(xiàn)有技術(shù)指令Cache結(jié)構(gòu)示意圖;圖2為現(xiàn)有技術(shù)帶有循環(huán)緩沖器的處理器結(jié)構(gòu)示意圖;圖3為現(xiàn)有技術(shù)帶有Loop Cache的處理器結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例指令Cache裝置結(jié)構(gòu)圖;圖5為Ib指令編碼格式示意圖;圖6為匯編指令結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供了一種指令高速緩沖存儲(chǔ)器裝置,該裝置增加了用于對標(biāo)志存儲(chǔ)器進(jìn)行控制的片選控制電路。處理器內(nèi)核在執(zhí)行循環(huán)體代碼時(shí),通過片選控制電路產(chǎn)生禁能控制信號(hào),禁能標(biāo)志存儲(chǔ)器;在循環(huán)退出時(shí)撤銷標(biāo)志存儲(chǔ)器禁能信號(hào),使標(biāo)志存儲(chǔ)器正常工作。本發(fā)明實(shí)施例在處理器內(nèi)核執(zhí)行循環(huán)體代碼時(shí),通過禁能標(biāo)志存儲(chǔ)器,減少了處理器內(nèi)核對標(biāo)志存儲(chǔ)器的讀操作和比較操作,從而降低了處理器的整體功耗。下面通過附圖和實(shí)施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。以下結(jié)合圖4針對本發(fā)明實(shí)施例提供的指令Cache裝置及其控制方法進(jìn)行詳細(xì)描述。圖4為本發(fā)明實(shí)施例指令Cache裝置結(jié)構(gòu)示意圖。如圖4所示,該裝置包括指令Cache控制器和存儲(chǔ)體,其中指令Cache控制器包括指令Cache控制電路410和片選控制電路420,存儲(chǔ)體包括與指令Cache控制器相連接的數(shù)據(jù)存儲(chǔ)器430和標(biāo)志存儲(chǔ)器440。指令Cache控制器與存儲(chǔ)體直接相連,接收處理器內(nèi)核發(fā)送的讀控制信號(hào)、循環(huán)首地址、循環(huán)尾地址和指令地址PC,并向處理器內(nèi)核發(fā)送讀出數(shù)據(jù)。片選控制電路420包括用于存儲(chǔ)循環(huán)體代碼首地址的第一寄存器421,該第一寄存器421的輸出端與第一比較單元423的輸入端相連、用于存儲(chǔ)循環(huán)體代碼尾地址的第二寄存器422,該第二寄存器422的輸出端與第一比較單元423的輸入端,以及與第二比較單元424的輸入端相連、用于判斷指令地址PC是否處于循環(huán)體范圍內(nèi)的第一比較單元423、用于判斷指令地址PC是否等于循環(huán)體代碼尾地址的第二比較單元424、連接第一比較單元423的非門電路425、以及連接該非門電路425輸出端的與門電路426,該與門電路426的輸出端與第二比較單元424的輸出端一起連接到或門電路427的輸入端、該或門電路427的輸出端連接D觸發(fā)器428的輸入端,該D觸發(fā)器428接收系統(tǒng)時(shí)鐘信號(hào)和復(fù)位信號(hào),其輸出端連接到與門電路426和或門電路429的輸入端、或門電路429的輸入端還與指令Cache控制電路410的一個(gè)輸出端連接,其輸出端口與標(biāo)志存儲(chǔ)器440的片選信號(hào)連接。指令Cache控制電路410用于輸出標(biāo)志存儲(chǔ)器的片選信號(hào)(tag_cen)和其他控制信號(hào),例如數(shù)據(jù)存儲(chǔ)器的片選控制信號(hào)、讀寫控制信號(hào)、地址;以及標(biāo)志存儲(chǔ)器的讀寫控制·信號(hào)、地址。在程序運(yùn)行過程中,如果處理器內(nèi)核(圖中未標(biāo)示)在指令譯碼階段檢測到循環(huán)體代碼,則向指令Cache控制器發(fā)送循環(huán)體代碼首地址和循環(huán)體代碼尾地址。指令Cache控制器將接收到的循環(huán)體代碼首地址存儲(chǔ)到片選控制電路420的第一寄存器421中,將接收到的循環(huán)體代碼尾地址存儲(chǔ)到片選控制電路420的第二寄存器422中。處理器內(nèi)核在取指過程中,指令Cache控制器先通過片選控制電路420的第二比較單元424將指令地址PC與第二寄存器422中存儲(chǔ)的循環(huán)體代碼尾地址進(jìn)行比較。如果相等,則輸出eq信號(hào)(eq=l),通過或門電路427輸出高電平,D觸發(fā)器428產(chǎn)生一個(gè)控制信號(hào)(tag_ctl=l),或門電路429輸出高電平,禁能標(biāo)志存儲(chǔ)器440(標(biāo)志存儲(chǔ)器的片選信號(hào)為低有效)。此時(shí)循環(huán)體的代碼已全部讀到數(shù)據(jù)存儲(chǔ)器430中,在循環(huán)體代碼的運(yùn)行過程中,處理器內(nèi)核將數(shù)據(jù)存儲(chǔ)器430當(dāng)作普通的存儲(chǔ)器直接進(jìn)行取指操作,而不需要再對標(biāo)志存儲(chǔ)器440進(jìn)行讀操作和比較操作。當(dāng)片選控制電路420的第一比較單元423滿足比較條件時(shí),即指令地址PC小于循環(huán)體代碼首地址或大于循環(huán)體代碼尾地址(循環(huán)體代碼執(zhí)行完畢),則輸出git信號(hào)(glt=l),git信號(hào)經(jīng)過非門電路425輸出低電平,通過與門電路426輸出低電平,或門電路427輸出低電平,D觸發(fā)器428產(chǎn)生一個(gè)控制信號(hào)tag_ctl (tag_ctl=0),或門電路429的輸出由指令Cache控制電路輸出的標(biāo)志存儲(chǔ)器片選信號(hào)(tag_cen)控制,此時(shí)標(biāo)志存儲(chǔ)器440正常工作。以下針對本發(fā)明實(shí)施例中的循環(huán)體代碼首地址和尾地址的生成過程進(jìn)行描述循環(huán)體代碼的檢測需要由編譯器來控制,編譯器通過一條特殊指令(例如,指令I(lǐng)b)來實(shí)現(xiàn)(處理器需要支持Ib指令)。Ib指令的指令形式為Ib size,其中size代表循環(huán)體代碼中的指令數(shù)量,它的編碼格式如圖5所示,其中opcode為指令操作碼,size為循環(huán)體代碼的指令數(shù)量,其位寬w根據(jù)指令Cache的容量來定。編譯器從程序代碼中識(shí)別出循環(huán)體,當(dāng)循環(huán)體中的指令數(shù)量小于指令Cache所容納的指令數(shù)量時(shí),將Ib指令插入到循環(huán)體指令的入口處。在指令執(zhí)行過程中,處理器內(nèi)核在譯碼階段檢測到Ib指令,如果Ib指令的地址為lb_addr,指令位寬為32bit,則循環(huán)體代碼的首地址(lb_begin)和尾地址(lb_end)分別為lb—begin=lb—addr+4;
lb_end=lb_addr+ (size<<2); 當(dāng)循環(huán)體代碼全部取回到指令Cache中之后,指令Cache控制器禁能標(biāo)志存儲(chǔ)器,處理器內(nèi)核直接從指令Cache中取指令,而不需要進(jìn)行標(biāo)志的比較;當(dāng)循環(huán)體代碼執(zhí)行完成后,指令Cache控制器將取消標(biāo)志存儲(chǔ)器禁能信號(hào),使標(biāo)志存儲(chǔ)器正常工作。標(biāo)志存儲(chǔ)器440禁能信號(hào)的生成電路可以用以下的Verilog代碼描述
assign git= (pc<lb—begin)I I (pc>lb_end); assign eq= (pc==ib—end); always (posedge elk or negedge rst) begin
I I: ( ~ I s ]
tag-ctl<=l,bO; else if (eq)
tag_ctl<=rbl; else if (git) tag—ctl<=l,bO;
end其中elk為系統(tǒng)時(shí)鐘信號(hào),rst為復(fù)位信號(hào)。將tag_ctl控制信號(hào)與指令Cache控制電路輸出的控制信號(hào)tag_cen進(jìn)行或操作,其結(jié)果作為標(biāo)志存儲(chǔ)器440新的片選控制信號(hào),即可完成執(zhí)行循環(huán)體代碼時(shí)對標(biāo)志存儲(chǔ)器440的控制。以下通過一個(gè)例子來說明本發(fā)明實(shí)施例的具體應(yīng)用。假如指令Cache的容量為16KB,塊大小為128bit,采用直接相聯(lián)的方式。指令帶寬為128bit,處理器內(nèi)核一次可以取回4條指令。由于指令Cache可以容納216=4096條指令,從而循環(huán)體檢測指令lbs ize指令編碼中的size位寬應(yīng)小于或等于12。編譯器生成的匯編指令結(jié)構(gòu)如圖6所示,其中循環(huán)體指令數(shù)量為200條。編譯器在循環(huán)體代碼的入口處插入一條循環(huán)體檢測指令I(lǐng)b0x00c8,該指令的地址為pc_lb=0x00004000,處理器內(nèi)核在執(zhí)行Ib指令時(shí),會(huì)生成循環(huán)體代碼的首地址和尾地址Ib_begin=0x00004000+4=0x00004004;lb_end=0x00004000+ (0x00c8 2) =0x00004320;由于處理器內(nèi)核訪問指令Cache的帶寬為128bit,當(dāng)檢測循環(huán)體指令地址時(shí),地址的低4位不需要進(jìn)行比較。即eq=(pc[3I:4]==0x0000432);git= (pc[31:4]〈0x0000400) | | (pc[31:4]>0x0000432);假設(shè)循環(huán)體執(zhí)行50次,傳統(tǒng)的指令Cache結(jié)構(gòu)需要讀標(biāo)志存儲(chǔ)器的次數(shù)為N=100/4+ (200/4)*50+300/4=2600次。本發(fā)明實(shí)施例需要進(jìn)行的讀標(biāo)志存儲(chǔ)器的次數(shù)為N_opt=100/4+200/4+300/4+l=151,本發(fā)明實(shí)施例相對于傳統(tǒng)的指令Cache結(jié)構(gòu)減少了2449次讀標(biāo)志存儲(chǔ)器操作,從而可以降低處理器的整體功耗。本發(fā)明實(shí)施例提供的指令Cache裝置在處理器內(nèi)核執(zhí)行循環(huán)體代碼時(shí),通過禁能標(biāo)志存儲(chǔ)器,減少了處理器內(nèi)核對標(biāo)志存儲(chǔ)器的讀操作和比較操作,從而降低了處理器的整體功耗。專業(yè)人員應(yīng)該還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
·
以上所述的具體實(shí)施方式
,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式
而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種指令高速緩沖存儲(chǔ)器裝置,包括指令高速緩沖存儲(chǔ)器控制器、與所述指令高速緩沖存儲(chǔ)器控制器相連接的標(biāo)志存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,其特征在于,所述指令高速緩沖存儲(chǔ)器控制器包括 片選控制電路,用于在執(zhí)行循環(huán)體代碼時(shí),禁能所述標(biāo)志存儲(chǔ)器;當(dāng)所述循環(huán)體代碼執(zhí)行完畢后,使所述標(biāo)志存儲(chǔ)器正常工作。
2.根據(jù)權(quán)利要求I所述的裝置,其特征在于,所述片選控制電路還用于 接收循環(huán)體代碼的首地址和尾地址,當(dāng)指令地址PC等于所述循環(huán)體代碼的尾地址時(shí),禁能所述標(biāo)志存儲(chǔ)器;當(dāng)所述指令地址PC不在循環(huán)體范圍內(nèi)時(shí),使所述標(biāo)志存儲(chǔ)器正常工作。
3.根據(jù)權(quán)利要求2所述的裝置,其特征在于,所述片選控制電路包括控制寄存器、輸入端與所述控制寄存器輸出端相連的第一比較單元和輸入端與所述控制寄存器輸出端相連的第二比較單元,所述 控制寄存器,用于存儲(chǔ)所述循環(huán)體代碼的首地址和尾地址; 第一比較單元,用于判斷所述指令地址PC是否處在所述循環(huán)體范圍內(nèi); 第二比較單元,用于判斷所述指令地址PC是否等于所述循環(huán)體代碼的尾地址。
4.根據(jù)權(quán)利要求3所述的控制裝置,其特征在于,所述控制寄存器包括輸出端與所述第一比較單元的輸入端相連的第一寄存器、輸出端與所述第一比較單元的輸入端,以及與所述第二比較單元的輸入端相連的第二寄存器,所述 第一寄存器,用于存儲(chǔ)所述循環(huán)體的首地址;所述 第二寄存器,用于存儲(chǔ)所述循環(huán)體的尾地址。
5.一種指令高速緩沖存儲(chǔ)器控制方法,其特征在于 在執(zhí)行循環(huán)體代碼時(shí),禁能標(biāo)志存儲(chǔ)器;當(dāng)所述循環(huán)體代碼執(zhí)行完畢后,所述標(biāo)志存儲(chǔ)器正常工作。
6.根據(jù)權(quán)利要求5所述的控制方法,其特征在于,所述在執(zhí)行循環(huán)體代碼時(shí),禁能標(biāo)志存儲(chǔ)器步驟具體包括 將所述循環(huán)體代碼的尾地址與指令地址PC進(jìn)行比較,當(dāng)所述指令地址PC等于所述循環(huán)體代碼的尾地址時(shí),禁能標(biāo)志存儲(chǔ)器。
7.根據(jù)權(quán)利要求5所述的控制方法,其特征在于,所述當(dāng)所述循環(huán)體代碼執(zhí)行完畢后,所述標(biāo)志存儲(chǔ)器正常工作步驟具體包括 將所述循環(huán)體代碼的首地址和尾地址與指令地址PC進(jìn)行比較,當(dāng)所述指令地址PC不在循環(huán)體范圍內(nèi)時(shí),所述標(biāo)志存儲(chǔ)器正常工作。
8.—種處理器裝置,其特征在于包括如權(quán)利要求I至4任一權(quán)利要求所述的指令高速緩沖存儲(chǔ)器裝置。
全文摘要
本發(fā)明公開了一種指令高速緩沖存儲(chǔ)器裝置及其控制方法,該裝置包括指令Cache控制器、與所述指令高速緩沖存儲(chǔ)器控制器相連接的標(biāo)志存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,其中指令Cache控制器包括片選控制電路,該片選控制電路用于在執(zhí)行循環(huán)體代碼時(shí),禁能所述標(biāo)志存儲(chǔ)器;當(dāng)所述循環(huán)體代碼執(zhí)完畢后,使所述標(biāo)志存儲(chǔ)器正常工作。該控制方法包括在循環(huán)體代碼執(zhí)行時(shí),禁能標(biāo)志存儲(chǔ)器;當(dāng)循環(huán)體代碼執(zhí)行完畢后,所述標(biāo)志存儲(chǔ)器正常工作。本發(fā)明在處理器內(nèi)核執(zhí)行循環(huán)體代碼時(shí),通過禁能標(biāo)志存儲(chǔ)器,減少了處理器內(nèi)核對標(biāo)志存儲(chǔ)器的讀操作和比較操作,從而降低了處理器的整體功耗。
文檔編號(hào)G06F1/32GK102789428SQ20121024242
公開日2012年11月21日 申請日期2012年7月12日 優(yōu)先權(quán)日2012年7月12日
發(fā)明者侯朝煥, 張鐵軍, 李泉泉, 洪纓, 王東輝 申請人:中國科學(xué)院聲學(xué)研究所