亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種降低指令cache功耗的控制邏輯的制作方法

文檔序號(hào):6448328閱讀:225來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):一種降低指令cache功耗的控制邏輯的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種降低指令cache功耗的控制邏輯。
背景技術(shù)
cache可以提供比主存快得多的訪問(wèn)速度,已經(jīng)成為現(xiàn)代CPU的必要組成部件。但同時(shí)cache也成為芯片的主要耗電部件,在有些設(shè)計(jì)中,cache的耗電量占了整個(gè)芯片的30%以上。在對(duì)功耗非常敏感的應(yīng)用中,cache的應(yīng)用受到了限制,結(jié)果往往是減少cache的容量來(lái)求得折衷的效果。
Cache的基本結(jié)構(gòu)一般由數(shù)據(jù)存儲(chǔ)器和索引標(biāo)志存儲(chǔ)器兩部分組成。下面以一塊32位CPU中的指令cache為例來(lái)說(shuō)明其工作原理,該cache容量8K字節(jié),行大小為16字節(jié),映像方式是2路組關(guān)聯(lián),如圖1所示。
1)來(lái)自CPU的地址被分為28位行幀地址和4位行內(nèi)地址,行幀地址又分成20位標(biāo)志和8位索引。
2)根據(jù)8位索引同時(shí)訪問(wèn)cache中的兩路組,讀取相應(yīng)索引標(biāo)志存儲(chǔ)器的有效位、標(biāo)志以及數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)。
3)行幀地址的標(biāo)志域與步驟2讀取的兩個(gè)行標(biāo)志作相等比較。為保證相應(yīng)行的數(shù)據(jù)有效,對(duì)應(yīng)行的有效位必須是被置位的,否則比較結(jié)果無(wú)效。
4)假設(shè)有一行標(biāo)志與行幀地址的標(biāo)志相匹配,則由2選1多路選擇器選取相應(yīng)的數(shù)據(jù)行。兩個(gè)行標(biāo)志同時(shí)匹配的情況是不可能發(fā)生的,因?yàn)樘鎿Q算法保證了一個(gè)數(shù)據(jù)行只有一個(gè)行標(biāo)志。
5)讀cache失配時(shí),cache向CPU發(fā)出一個(gè)停頓信號(hào)通知CPU等待,并從主存中讀入數(shù)據(jù)。
在圖1中,兩塊索引標(biāo)志存儲(chǔ)器可以用一個(gè)靜態(tài)RAM來(lái)實(shí)現(xiàn)。
除去cache的控制通路外,cache的數(shù)據(jù)通路就是幾塊靜態(tài)RAM。節(jié)省功耗的辦法可以是改進(jìn)靜態(tài)RAM的內(nèi)部結(jié)構(gòu),這一方法已被廣泛地研究和討論。另外在低功耗SRAM基礎(chǔ)上,設(shè)法減少對(duì)cache的訪問(wèn)次數(shù)。
在此之前,對(duì)減少cache訪問(wèn)次數(shù)的研究集中在分步訪問(wèn)上。即先訪問(wèn)索引標(biāo)志存儲(chǔ)器,以訪問(wèn)的結(jié)果來(lái)確定是否訪問(wèn)某一組數(shù)據(jù)存儲(chǔ)器,如圖2所示。這樣會(huì)不可避免地把索引標(biāo)志存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器放在不同的流水節(jié)拍上,從而增加流水線級(jí)數(shù),影響系統(tǒng)性能。

發(fā)明內(nèi)容
本發(fā)明提出了一種降低指令cache功耗的控制邏輯。
它的步驟如下1)根據(jù)程序順序執(zhí)行的特點(diǎn),在一個(gè)cache行內(nèi)只訪問(wèn)一次索引標(biāo)志存儲(chǔ)器,保存行匹配和組選擇結(jié)果;2)當(dāng)下一個(gè)指令仍然在該cache行內(nèi),利用所保存的組選擇結(jié)果來(lái)減少對(duì)數(shù)據(jù)存儲(chǔ)器的訪問(wèn);3)根據(jù)程序順序執(zhí)行的特點(diǎn),作出對(duì)下一個(gè)要訪問(wèn)的cache行的預(yù)測(cè)并利用間隙提前訪問(wèn)索引標(biāo)志存儲(chǔ)器,從而提前得到下一個(gè)cache行的行匹配和組選擇結(jié)果;4)當(dāng)取下一cache行的指令時(shí),利用步驟3的組選擇結(jié)果來(lái)減少對(duì)數(shù)據(jù)存儲(chǔ)器的訪問(wèn);5)使用環(huán)形歷史緩沖區(qū)來(lái)保存組選擇的歷史記錄,并通過(guò)保存歷史記錄來(lái)減少對(duì)索引標(biāo)志存儲(chǔ)器的訪問(wèn)本發(fā)明的優(yōu)點(diǎn)在于硬件開(kāi)銷(xiāo)小,方法簡(jiǎn)單,節(jié)省功耗效果明顯,適用于16位,64位等不同字長(zhǎng),多路組相關(guān)的指令cache的設(shè)計(jì)。本發(fā)明適用于不同字長(zhǎng)的CPU或ASIC芯片。


圖1是cache的基本結(jié)構(gòu)示意圖;圖2是已公布的低功耗cache的結(jié)構(gòu)示意圖;圖3是利用組選擇環(huán)形歷史緩沖區(qū)的低功耗指令cache的結(jié)構(gòu)示意圖;圖4是對(duì)組選擇環(huán)形歷史緩沖區(qū)的工作狀態(tài)示意圖;圖5是cache控制通路的狀態(tài)示意圖;具體實(shí)施方式
本發(fā)明充分利用了指令執(zhí)行的行為特點(diǎn)。
對(duì)于地址上相鄰的兩條指令,設(shè)前一條指令為A,后一條指令為B,在cache里的存放可能有兩種情況。即A和B可能在同一行內(nèi),也可能在相鄰的行內(nèi)。由于指令執(zhí)行具有順序性的特點(diǎn),據(jù)研究結(jié)果,80%左右的程序代碼都是順序執(zhí)行的。本發(fā)明利用這個(gè)特點(diǎn)對(duì)行內(nèi)和相鄰行之間的cache訪問(wèn)進(jìn)行優(yōu)化。
對(duì)于A和B在行內(nèi)的情況,因?yàn)橐粋€(gè)行只有一個(gè)標(biāo)志,對(duì)索引標(biāo)志存儲(chǔ)器的一次訪問(wèn)得到的信息就可以代表這個(gè)行內(nèi)其它地址的信息。在訪問(wèn)A后,保持所選中的組選擇和行匹配(命中)信息,并把這兩個(gè)信息位用于這個(gè)行的其它地址的指令的讀取。因?yàn)橹噶畹捻樞蛐?,在大部分情況下,下一個(gè)要取的指令就是指令B。在取B時(shí),與圖1所示的cache基本結(jié)構(gòu)的工作過(guò)程不同,步驟2對(duì)索引標(biāo)志存儲(chǔ)器的訪問(wèn)可以略去,對(duì)數(shù)據(jù)存儲(chǔ)器的訪問(wèn)也只要訪問(wèn)其中被選中的那組就可以了。
對(duì)于A和B分別在相鄰行的情況,也可以利用指令順序的特點(diǎn)。由于一個(gè)行內(nèi)只需要訪問(wèn)一次索引標(biāo)志存儲(chǔ)器,所以在大部分情況下,索引標(biāo)志存儲(chǔ)器處于空閑狀態(tài)。所以在取A所在的行的指令時(shí),預(yù)測(cè)下一條要取的指令B在順序的下一個(gè)行中,提前訪問(wèn)索引標(biāo)志存儲(chǔ)器以得到B所在行的組選擇和行匹配信息。這樣,當(dāng)取指令B時(shí),對(duì)數(shù)據(jù)存儲(chǔ)器的訪問(wèn)也只要訪問(wèn)其中被選中的那組就可以了。所以說(shuō),提前訪問(wèn)索引標(biāo)志存儲(chǔ)器可以大大減少數(shù)據(jù)存儲(chǔ)器上的功耗,這是本發(fā)明的一個(gè)顯著特征。
另外根據(jù)對(duì)程序行為的研究得出,向后的跳轉(zhuǎn)遠(yuǎn)遠(yuǎn)多于向前的跳轉(zhuǎn),所以如果能夠能把以前訪問(wèn)索引標(biāo)志存儲(chǔ)器的結(jié)果記錄下來(lái),就可以避免重復(fù)訪問(wèn)索引標(biāo)志存儲(chǔ)器。本發(fā)明利用環(huán)形歷史緩沖區(qū)來(lái)記錄組選擇的歷史。
利用組選擇環(huán)形歷史緩沖區(qū)的低功耗指令cache的結(jié)構(gòu)如圖3所示。環(huán)形歷史緩沖區(qū)在說(shuō)明之前,先定義跳轉(zhuǎn)指令分類(lèi)1)相對(duì)位移指令,作相對(duì)地址的跳轉(zhuǎn),如MIPS中的b,beq等指令。
2)絕對(duì)位移指令,作絕對(duì)地址的跳轉(zhuǎn),如MIPS中的j,jal等指令。
本發(fā)明通過(guò)環(huán)形歷史緩沖區(qū)來(lái)記錄組選擇的結(jié)果。如圖4所示。環(huán)形歷史緩沖區(qū)中設(shè)置三個(gè)指針,一個(gè)頭指針,一個(gè)尾指針和一個(gè)當(dāng)前行指針。在頭指針和尾指針之間的部分是有效區(qū),代表了一段連續(xù)的地址區(qū)域。環(huán)形歷史緩沖區(qū)中位于有效區(qū)的信息單元記錄著這個(gè)連續(xù)地址區(qū)域內(nèi)的cache行上的組選擇信息。
1)程序復(fù)位后,環(huán)形歷史緩沖區(qū)的三個(gè)指針都為0。如圖4a2)當(dāng)索引標(biāo)志緩沖區(qū)在空閑狀態(tài),如果下一行在有效區(qū)以外,即頭指針與當(dāng)前行指針相等,則提前訪問(wèn)下一行的一個(gè)組,訪問(wèn)所預(yù)測(cè)的組的索引標(biāo)志存儲(chǔ)器。
3)在開(kāi)始訪問(wèn)下一行的指令時(shí),環(huán)形歷史緩沖區(qū)的當(dāng)前行指針下移。如果步驟2預(yù)測(cè)成功,組選擇結(jié)果存入環(huán)形歷史緩沖區(qū)的頭指針?biāo)傅奈恢?,頭指針下移,如圖4b;如果步驟2預(yù)測(cè)失敗,環(huán)形歷史緩沖區(qū)等待正確的組選擇結(jié)果,頭指針直到得到行匹配和組選擇結(jié)果后才下移,如圖4c。
4)如果發(fā)生相對(duì)位移指令,只要位移量落在環(huán)形歷史緩沖區(qū)的有效區(qū)內(nèi),當(dāng)前行指針作相應(yīng)變動(dòng),如圖4d。
5)如果環(huán)形歷史緩沖區(qū)滿了,頭指針和尾指針指向同一單元,如圖4e。
6)如果發(fā)生絕對(duì)位移指令,或者相對(duì)位移指令落在環(huán)形歷史緩沖區(qū)的有效區(qū)外,將環(huán)形歷史緩沖區(qū)清空,跳到步驟2開(kāi)始執(zhí)行。
因?yàn)榄h(huán)形歷史緩沖區(qū)記錄的是順序的行,可以推理得出只要環(huán)形歷史緩沖區(qū)的信息單元個(gè)數(shù)小于cache行數(shù),在除了絕對(duì)位移和相對(duì)位移跳出有效區(qū)的情況外,即使發(fā)生cache不命中,有效區(qū)內(nèi)的信息仍然維持有效??刂茽顟B(tài)機(jī)仍然以上述的32位CPU為例,以下作舉例說(shuō)明。在舉例說(shuō)明前,先定義Cache的訪問(wèn)模式1)基本模式指同時(shí)訪問(wèn)所有組的索引標(biāo)志存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,以索引標(biāo)志存儲(chǔ)器的結(jié)果來(lái)選擇數(shù)據(jù)存儲(chǔ)器的輸出。
2)組選擇省電模式指只訪問(wèn)一個(gè)組的索引標(biāo)志存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。
3)數(shù)據(jù)省電模式指只訪問(wèn)一個(gè)組的數(shù)據(jù)存儲(chǔ)器。
4)索引省電模式指在訪問(wèn)當(dāng)前行的一個(gè)組的數(shù)據(jù)存儲(chǔ)器的同時(shí),根據(jù)預(yù)測(cè)訪問(wèn)下一行的一個(gè)組的索引標(biāo)志存儲(chǔ)器。
5)行替換模式在cache不命中時(shí),從主存取數(shù)據(jù)來(lái)替換cache行。
Cache控制通路狀態(tài)機(jī)如圖5所示,在狀態(tài)機(jī)中共有五個(gè)狀態(tài),對(duì)應(yīng)五種訪問(wèn)模式,狀態(tài)的切換過(guò)程如下1)狀態(tài)機(jī)被復(fù)位到正常模式訪問(wèn)cache.
2)如果正常模式訪問(wèn)cache沒(méi)有命中,就進(jìn)入行替換模式。
3)在行替換完成后,根據(jù)低位地址來(lái)區(qū)別是進(jìn)入數(shù)據(jù)省電模式還是索引省電模式。更新環(huán)形歷史緩沖器。
4)在數(shù)據(jù)省電模式下,由低位地址判斷是否進(jìn)入索引省電模式。
5)如果在索引省電模式下預(yù)測(cè)命中,回到數(shù)據(jù)省電模式,否則進(jìn)入組選擇省電模式。更新環(huán)形歷史緩沖器。
6)如果在組選擇省電模式下命中,回到數(shù)據(jù)省電模式,否則,進(jìn)入行替換模式。更新環(huán)形歷史緩沖器。
7)如果發(fā)生絕對(duì)跳轉(zhuǎn)或相對(duì)轉(zhuǎn)移跳出有效區(qū),進(jìn)入正常模式,清空環(huán)形歷史緩沖器。
在順序執(zhí)行時(shí),只需要地址的低位就可以判斷訪問(wèn)地址是否落在上次訪問(wèn)的行內(nèi)了。比如說(shuō)在介紹基本結(jié)構(gòu)時(shí)拿來(lái)舉例的cache里,對(duì)32位指令,地址線A1,A0是沒(méi)有實(shí)際意義的。所以如果次低的兩位地址線(A3,A2)都為O,則沒(méi)有落在上次訪問(wèn)的行內(nèi),反之,則落在上次訪問(wèn)的行內(nèi)。同理,在判斷何時(shí)進(jìn)入索引省電模式時(shí),也可以用地址的低位來(lái)判斷。
如果程序控制發(fā)生轉(zhuǎn)移,可以通過(guò)流水線其它節(jié)拍來(lái)的轉(zhuǎn)移控制信號(hào)和地址偏移量來(lái)判斷是否落在環(huán)形歷史緩沖區(qū)內(nèi)。例如,在上例中如果實(shí)現(xiàn)了一個(gè)包括8個(gè)信息單元的環(huán)形歷史緩沖區(qū),在向后位移時(shí),先用一個(gè)3位減法器計(jì)算當(dāng)前行指針和尾指針的位移 將行位移量和當(dāng)前低位地址合并得到當(dāng)前地址相對(duì)尾指針的偏移量 如果程序位移偏移量的低5位小于當(dāng)前地址相對(duì)尾指針的偏移量,就說(shuō)明程序位移仍然在有效區(qū)內(nèi)。
可以看出,在例子中,如果一行有8個(gè)指令,在順序執(zhí)行的情況下,第一個(gè)指令在預(yù)測(cè)成功時(shí)工作在數(shù)據(jù)省電模式,在預(yù)測(cè)失敗時(shí)工作在組選擇省電模式下;取接著的6個(gè)指令時(shí),工作在最省電的數(shù)據(jù)省電模式下;第8個(gè)指令工作在索引省電模式下。所以在順序執(zhí)行的情況下,每個(gè)cache行指令越多越省電。當(dāng)然在系統(tǒng)設(shè)計(jì)中,還有性能方面的考慮。對(duì)下一行所在的組進(jìn)行預(yù)測(cè)的分析在索引省電模式下,可以對(duì)下一個(gè)cache行所在的組進(jìn)行預(yù)測(cè),并只訪問(wèn)所預(yù)測(cè)的組的索引標(biāo)志存儲(chǔ)器。如果預(yù)測(cè)命中,就不需要訪問(wèn)另一個(gè)組的索引標(biāo)志存儲(chǔ)器;如果不命中,進(jìn)入組選擇省電模式。在例子中,如果隨機(jī)作出預(yù)測(cè),指令在所預(yù)測(cè)的組內(nèi)的概率應(yīng)該為50%。采用更準(zhǔn)確的預(yù)測(cè)算法可以節(jié)省遠(yuǎn)遠(yuǎn)高于50%的索引標(biāo)志存儲(chǔ)器訪問(wèn)次數(shù)。
權(quán)利要求
1.一種降低指令cache功耗的控制邏輯,其特征在于,它的步驟如下1)在一個(gè)cache行內(nèi)只訪問(wèn)一次索引標(biāo)志存儲(chǔ)器,保存行匹配和組選擇結(jié)果;2)利用所保存的組選擇結(jié)果來(lái)減少對(duì)數(shù)據(jù)存儲(chǔ)器的訪問(wèn);3)作出對(duì)下一個(gè)要訪問(wèn)的cache行的預(yù)測(cè)并利用間隙提前訪問(wèn)索引標(biāo)志存儲(chǔ)器,從而得到下一行的cache行的行匹配和組選擇結(jié)果;4)在行與行切換時(shí),利用步驟3的組選擇結(jié)果來(lái)減少對(duì)數(shù)據(jù)存儲(chǔ)器的訪問(wèn);5)使用環(huán)形歷史緩沖區(qū)來(lái)保存組選擇的歷史記錄和預(yù)測(cè)結(jié)果。
2.根據(jù)權(quán)利要求1所述的一種降低指令cache功耗的控制邏輯,其特征在于所說(shuō)的利用所保存的組選擇結(jié)果來(lái)減少對(duì)數(shù)據(jù)存儲(chǔ)器的訪問(wèn),即設(shè)置一存儲(chǔ)單元保存上次訪問(wèn)過(guò)的數(shù)據(jù)存儲(chǔ)器的組號(hào),在同一cache行內(nèi),只需訪問(wèn)該存儲(chǔ)單元所指的數(shù)據(jù)存儲(chǔ)器,而不需要訪問(wèn)索引標(biāo)志存儲(chǔ)器和其它組的數(shù)據(jù)存儲(chǔ)器。
3.根據(jù)權(quán)利要求1所述的一種降低指令cache功耗的控制邏輯,其特征在于所說(shuō)的作出對(duì)下一個(gè)要訪問(wèn)的cache行的預(yù)測(cè)并提前訪問(wèn)索引標(biāo)志存儲(chǔ)器,從而提前得到所預(yù)測(cè)的cache行的行匹配和組選擇結(jié)果。
4.根據(jù)權(quán)利要求1所述的一種降低指令cache功耗的控制邏輯,其特征在于所說(shuō)的在行與行切換時(shí),利用預(yù)先獲得的組選擇結(jié)果來(lái)減少對(duì)數(shù)據(jù)存儲(chǔ)器的訪問(wèn)。就是在取下一行的指令時(shí),只需訪問(wèn)預(yù)先得到的組選擇結(jié)果所指的數(shù)據(jù)存儲(chǔ)器,而不需要訪問(wèn)索引標(biāo)志存儲(chǔ)器和其它組的數(shù)據(jù)存儲(chǔ)器。
5.根據(jù)權(quán)利要求1所述的一種降低指令cache功耗的控制邏輯,其特征在于所說(shuō)的使用環(huán)形歷史緩沖區(qū)來(lái)保存組選擇的歷史記錄和預(yù)測(cè)結(jié)果,在順序執(zhí)行和相對(duì)位移跳轉(zhuǎn)仍然落在有效區(qū)內(nèi)時(shí),利用環(huán)形歷史緩沖區(qū)的輸出來(lái)替代訪問(wèn)索引標(biāo)志存儲(chǔ)器。
6.根據(jù)權(quán)利要求1或3所述的一種降低指令cache功耗的控制邏輯,其特征在于所說(shuō)的作出對(duì)下一個(gè)要訪問(wèn)的cache行的預(yù)測(cè)并提前訪問(wèn)索引標(biāo)志存儲(chǔ)器,一次只訪問(wèn)一個(gè)組的索引標(biāo)志存儲(chǔ)器,在命中的情況下,不對(duì)其它組的索引存儲(chǔ)器進(jìn)行訪問(wèn)。
7.根據(jù)權(quán)利要求1或5所述的一種降低指令cache功耗的控制邏輯,其特征在于所說(shuō)的相對(duì)位移跳轉(zhuǎn)落在有效區(qū)內(nèi),其判斷方法是利用相對(duì)位移的偏移量及跳轉(zhuǎn)地址的低位。
全文摘要
本發(fā)明公開(kāi)了一種降低指令cache功耗的控制邏輯。一方面利用訪問(wèn)索引標(biāo)志存儲(chǔ)器的間隙來(lái)提前訪問(wèn)索引標(biāo)志存儲(chǔ)器,得到并保存下一個(gè)cache行的行匹配和組選擇信息,這使得在取指過(guò)程中,只需開(kāi)啟一個(gè)組的數(shù)據(jù)存儲(chǔ)器就可以得到指令,從而減少對(duì)數(shù)據(jù)存儲(chǔ)器的訪問(wèn);在提前訪問(wèn)索引標(biāo)志存儲(chǔ)器時(shí),還可利用預(yù)測(cè)機(jī)制來(lái)減少對(duì)索引標(biāo)志存儲(chǔ)器的訪問(wèn)。另一方面利用環(huán)形歷史緩沖區(qū)來(lái)記錄每次訪問(wèn)索引標(biāo)志存儲(chǔ)器得到的組選擇信息及地址范圍,在程序跳轉(zhuǎn)時(shí)如果地址落在環(huán)形歷史緩沖區(qū)內(nèi),組選擇信息可以被重用,從而減少對(duì)索引標(biāo)志存儲(chǔ)器的訪問(wèn)次數(shù)來(lái)節(jié)省功耗。利用本發(fā)明可以極大地節(jié)省功耗,而且具有硬件代價(jià)小,實(shí)現(xiàn)簡(jiǎn)單的優(yōu)點(diǎn)。
文檔編號(hào)G06F9/38GK1445661SQ0311656
公開(kāi)日2003年10月1日 申請(qǐng)日期2003年4月21日 優(yōu)先權(quán)日2003年4月21日
發(fā)明者張宇弘, 王界兵, 嚴(yán)曉浪 申請(qǐng)人:杭州中天微系統(tǒng)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1