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

一種指令高速緩沖存儲(chǔ)器的制作方法

文檔序號(hào):6381968閱讀:178來(lái)源:國(guó)知局
專利名稱:一種指令高速緩沖存儲(chǔ)器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及ー種指令高速緩沖存儲(chǔ)器。
背景技術(shù)
降低嵌入式系統(tǒng)的功耗能夠延長(zhǎng)電池的使用壽命。作為提高處理器內(nèi)核取指令速度的關(guān)鍵部件,指令高速緩沖存儲(chǔ)器(指令Cache)占據(jù)了系統(tǒng)很大一部分功耗,因?yàn)閮?nèi)核取指令幾乎在程序執(zhí)行的每個(gè)周期都發(fā)生。因此,有效降低指令Cache的功耗對(duì)于低功耗處理器的設(shè)計(jì)有著重要意義。傳統(tǒng)的N路組相聯(lián)方式的指令Cache結(jié)構(gòu)如圖1所示,每一路的結(jié)構(gòu)都相同,主要由標(biāo)志(tag)存儲(chǔ)器、數(shù)據(jù)(da ta)存儲(chǔ)器和狀態(tài)位(st)組成。當(dāng)內(nèi)核訪問(wèn)指令Cache時(shí),tag存儲(chǔ)器根據(jù)內(nèi)核地址的索引位(Index)作為地址讀出標(biāo)志位,并同時(shí)與內(nèi)核地址中的Tag位進(jìn)行比較,如果第i路讀出的標(biāo)志位與內(nèi)核地址中的Tag位相等,則表示命中,將第i路讀出的數(shù)據(jù)發(fā)送給處理器內(nèi)核;如果全部不相等,則表示沒(méi)有命中,這時(shí)會(huì)啟動(dòng)ー個(gè)訪問(wèn)主存的操作。為了達(dá)到處理器內(nèi)核高速訪問(wèn)指令Cache的目的,指令Cache中tag存儲(chǔ)器的訪問(wèn)和data存儲(chǔ)器的訪問(wèn)是同時(shí)進(jìn)行的。從N路組相聯(lián)指令Cache的工作原理可以看出,內(nèi)核的取指操作需要進(jìn)行大量的讀tag存儲(chǔ)器操作和讀冗余的data存儲(chǔ)器操作,這個(gè)過(guò)程需要消耗大量的功耗。如果能夠減少訪問(wèn)tag存儲(chǔ)器的功耗和消除冗余的data存儲(chǔ)器的訪問(wèn),貝U可以有效降低指令Cache的功耗。在2007年8月27-29號(hào)的低功耗電子學(xué)與設(shè)計(jì)(ISLPED)會(huì)議上ZhangMingming等人發(fā)表的文早((Reducing Cache Energy Consumption by TagEncoding in EmbeddedProcessors))中提出了一種基于標(biāo)志位編碼的低功耗指令Cache設(shè)計(jì)方法,它在傳統(tǒng)的Cache結(jié)構(gòu)中增加了一個(gè)小的寄存器組來(lái)保存最近訪問(wèn)的內(nèi)核地址中的標(biāo)志位,同時(shí)為Cache的每一行增加了ー個(gè)3bits的狀態(tài)寄存器來(lái)記錄每一行標(biāo)志位的狀態(tài)。它的工作原理是在內(nèi)核訪問(wèn)指令Cache的時(shí)候,通過(guò)檢測(cè)指令Cache中該組的標(biāo)志位的狀態(tài)來(lái)確定應(yīng)該訪問(wèn)哪一路,減少了冗余的讀tag存儲(chǔ)器操作和冗余的讀data存儲(chǔ)器操作,從而可以有效降低指令Cache的功耗。在2011年8月1-3號(hào)的低功耗電子學(xué)與設(shè)計(jì)(ISLPED)會(huì)議上Jongmin Lee等人發(fā)表的文章《TLB Index-based Tagging for Cache Energy Reduction》中提出 了一種基于TLB的低功耗指令Cache設(shè)計(jì)方法,它將TLB的索引作為指令Cache的標(biāo)志位,這種方法可以將tag存儲(chǔ)器的位寬減小到傳統(tǒng)結(jié)構(gòu)中tag存儲(chǔ)器位寬的四分之一,從而減小了指令Cache的面積,降低了指令Cache的功耗。Zhang Mingming等人提出的基于標(biāo)志位編碼的低功耗指令Cache設(shè)計(jì)方法有如下缺點(diǎn)(I)它需要為指令Cache的每一行增加ー個(gè)3bits的狀態(tài)寄存器來(lái)記錄每一行標(biāo)志位的狀態(tài),這樣會(huì)増加指令Cache的面積,而且對(duì)這些狀態(tài)寄存器的訪問(wèn)也需要消耗一部分功耗;(2)對(duì)于檢測(cè)出的那一路Cache単元仍然需要對(duì)tag存儲(chǔ)器進(jìn)行讀操作,tag存儲(chǔ)器仍然需要消耗一部分功耗。Jongmin Lee等人提出的基于TLB的低功耗指令Cache設(shè)計(jì)方法有如下不足(I)對(duì)于多路組相聯(lián)指令Cache,不能減少冗余的讀tag存儲(chǔ)器操作和冗余的讀data存儲(chǔ)器操作;(2)tag存儲(chǔ)器的位寬雖然可以減小到傳統(tǒng)結(jié)構(gòu)中tag存儲(chǔ)器位寬的四分之一,但是它仍然需要消耗一部分功耗。

發(fā)明內(nèi)容
本發(fā)明的目的是提供ー種能解決上述缺陷的指令高速緩沖存儲(chǔ)器。本發(fā)明提供了ー種指令高速緩沖存儲(chǔ)器,包括標(biāo)志緩沖器,其每一行用于存儲(chǔ)一個(gè)指令地址標(biāo)志位;多路存儲(chǔ)単元,每一路存儲(chǔ)單元對(duì)應(yīng)所述標(biāo)志緩沖器的每一行,每一路存儲(chǔ)單元的每一行用于存儲(chǔ)ー個(gè)指令塊及其對(duì)應(yīng)的一個(gè)狀態(tài)位;以及控制単元,用于將內(nèi)核地址中的標(biāo)志位與所述指令地址標(biāo)志位相比較,按照內(nèi)核地址中的索引位查詢所述狀態(tài)位,并且根據(jù)比較結(jié)果和查詢結(jié)果對(duì)所述指令塊的讀取進(jìn)行控制。優(yōu)選地,所述比較結(jié)果是內(nèi)核地址中的標(biāo)志位與所述標(biāo)志緩沖器中ー個(gè)指令地址標(biāo)志位相同,所述查詢結(jié)果是所述狀態(tài)位為有效,所述控制単元用干根據(jù)所述索引位從所述多路存儲(chǔ)單元中讀取所述指令塊。優(yōu)選地,所述比較結(jié)果是內(nèi)核地址中的標(biāo)志位與所述標(biāo)志緩沖器中ー個(gè)指令地址標(biāo)志位相同,所述查詢結(jié)果是所述狀態(tài)位為無(wú)效,所述控制単元用干根據(jù)所述內(nèi)核地址從主存中讀取指令塊;以及根據(jù)所述索引位將讀取的指令塊寫(xiě)入所述多路存儲(chǔ)單元中,并且將寫(xiě)入的指令塊對(duì)應(yīng)的狀態(tài)位設(shè)置為有效。優(yōu)選地,所述比較結(jié)果是內(nèi)核地址中的標(biāo)志位與所述標(biāo)志緩沖器中所有的指令地址標(biāo)志位都不相同,所述控制単元用于將所述內(nèi)核地址中的標(biāo)志位存入所述標(biāo)志緩沖器中;根據(jù)所述內(nèi)核地址從主存中讀取指令塊;以及根據(jù)所述索引位將讀取的指令塊寫(xiě)入所述多路存儲(chǔ)單元中,并且將寫(xiě)入的指令塊對(duì)應(yīng)的狀態(tài)位設(shè)置為有效。優(yōu)選地,將所述內(nèi)核地址中的標(biāo)志位存入所述標(biāo)志緩沖器中的步驟包括用所述內(nèi)核地址中的標(biāo)志位替換所述標(biāo)志緩沖器中一行的指令地址標(biāo)志位,并且將被替換行對(duì)應(yīng)的一路存儲(chǔ)單元中的狀態(tài)位全部設(shè)置為無(wú)效。優(yōu)選地,所述標(biāo)志緩沖器采用先入先出的寫(xiě)入方式。優(yōu)選地,所述標(biāo)志緩沖器采用全相聯(lián)方式,內(nèi)核地址中的標(biāo)志位同時(shí)與所述標(biāo)志緩沖器中每一行的指令地址標(biāo)志位進(jìn)行比較。本發(fā)明通過(guò)在指令Cache中増加標(biāo)志緩沖器而消除標(biāo)志存儲(chǔ)器,并且使用標(biāo)志緩沖器和狀態(tài)位提前確定需要讀取的指令Cache中數(shù)據(jù)存儲(chǔ)器的路數(shù),消除了冗余的讀數(shù)據(jù)存儲(chǔ)器的操作,減小了指令Cache的面積,有效降低了指令Cache的功耗。


圖1是傳統(tǒng)的N路組相聯(lián)的指令Cache的結(jié)構(gòu)示意圖2是根據(jù)本發(fā)明實(shí)施例的指令Cache的結(jié)構(gòu)示意圖;圖3是根據(jù)本發(fā)明實(shí)施例的指令Cache的工作流程圖;以及圖4是根據(jù)本發(fā)明實(shí)施例的指令代碼在主存中的位置示意圖。
具體實(shí)施例方式下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)ー步的詳細(xì)描述。本發(fā)明提出了ー種低功耗指令Cache結(jié)構(gòu),該結(jié)構(gòu)相對(duì)傳統(tǒng)的指令Cache結(jié)構(gòu)増加了ー個(gè)小的標(biāo)志緩沖器,消除了傳統(tǒng)結(jié)構(gòu)中的tag存儲(chǔ)器,在處理器內(nèi)核訪問(wèn)該結(jié)構(gòu)時(shí)可以消除冗余的讀數(shù)據(jù)存儲(chǔ)器操作。本發(fā)明可以減小指令Cache的面積,有效降低指令Cache的功耗。圖2是根據(jù)本發(fā)明實(shí)施例的指令Cache的結(jié)構(gòu)示意圖。如圖2所示,指令Cache包括標(biāo)志緩沖器模塊(tag buffer, TB)、N路結(jié)構(gòu)相同的存儲(chǔ)單元,以及控制電路。標(biāo)志緩沖器用于存儲(chǔ)指令地址標(biāo)志位,其可以采用全相聯(lián)方式,其深度為N,與指令Cache的路數(shù)相同,標(biāo)志緩沖器的一行對(duì)應(yīng)指令Cache中的一路;數(shù)據(jù)寬度可以根據(jù)指令Cache的容量和路數(shù)、內(nèi)核地址寬度來(lái)確定。每一路的存儲(chǔ)單元與傳統(tǒng)結(jié)構(gòu)不同,只包括數(shù)據(jù)存儲(chǔ)器和狀態(tài)位(例如,有效位),沒(méi)有tag存儲(chǔ)器,其中,數(shù)據(jù)存儲(chǔ)器用于存儲(chǔ)指令塊,對(duì)應(yīng)的狀態(tài)位用于存儲(chǔ)指令塊的狀態(tài)。當(dāng)處理器內(nèi)核訪問(wèn)指令Cache時(shí),內(nèi)核地址中的標(biāo)志位會(huì)去查詢標(biāo)志緩沖器(TB),即將內(nèi)核地址中的標(biāo)志位與TB中的每一行進(jìn)行比較。如果內(nèi)核地址中的標(biāo)志位與TB中的某一行相等則表示TB命中,同時(shí)將對(duì)應(yīng)路的命中信號(hào)置“I” ;如果全部不相等則表示TB不命中。在TB采用全相聯(lián)方式的情況下,內(nèi)核地址中的標(biāo)志位是同時(shí)與TB中的每一行進(jìn)行比較操作的。 在內(nèi)核地址中的標(biāo)志位查詢TB的同時(shí),指令Cache會(huì)根據(jù)內(nèi)核地址中的索引位讀出指令Cache每一路中對(duì)應(yīng)行的有效位,如果有效位為“ I ”,則表示對(duì)應(yīng)行的數(shù)據(jù)有效;如果有效位為“0”,則表示對(duì)應(yīng)行的數(shù)據(jù)無(wú)效。每一路中讀出的有效位與該路命中信號(hào)做與操作得到該路數(shù)據(jù)存儲(chǔ)器的讀使能信號(hào)。如果讀使能信號(hào)為“1”,則表示可以對(duì)該路的數(shù)據(jù)存儲(chǔ)器進(jìn)行讀操作,讀地址為內(nèi)核地址中的索引位。從圖2中可以看出R_ENQ=hit。& V0;R_EN1=hit1 & V1;ILEPV1 =IiiV1 & vn-1 ;如果指令Cache中某一路的讀使能信號(hào)為“ 1”,則表示指令Cache命中,內(nèi)核直接從該路數(shù)據(jù)存儲(chǔ)器中讀取指令;如果指令Cache中所有路的數(shù)據(jù)存儲(chǔ)器讀使能信號(hào)都為“0”,則表示指令Cache不命中,這時(shí)將啟動(dòng)ー個(gè)訪問(wèn)主存的操作。下面具體分析一下指令Cache不命中的情況,指令Cache不命中可以分為如下兩種情況(I)TB的第i行命中,但是第i路讀出的有效位為“0”此時(shí)指令Cache會(huì)啟動(dòng)ー個(gè)訪問(wèn)主存的操作,根據(jù)內(nèi)核地址從主存中讀取指令塊。當(dāng)從主存中讀取的指令塊返回時(shí),指令Cache會(huì)根據(jù)內(nèi)核地址中的索引位將該指令塊寫(xiě)入第i路數(shù)據(jù)存儲(chǔ)器中,同時(shí)將寫(xiě)入行的有效位置“ I”。(2) TB 不命中指令Cache會(huì)將內(nèi)核地址中的標(biāo)志位存入TB中(假設(shè)存入第i行)a 第i行為空指令Cache會(huì)啟動(dòng)ー個(gè)訪問(wèn)主存的操作,根據(jù)內(nèi)核地址從主存中讀取指令塊。當(dāng)從主存中讀取的指令塊返回時(shí),指令Cache會(huì)根據(jù)內(nèi)核地址中的索引位將該指令塊寫(xiě)入第i路數(shù)據(jù)存儲(chǔ)器中,同時(shí)將該路對(duì)應(yīng)行的有效位置“I”。b 第i行保存有原來(lái)的標(biāo)志位此時(shí)會(huì)出現(xiàn)TB替換操作,即將原來(lái)保存在第i行的標(biāo)志位替換出去;TB可以采用“先入先出”的寫(xiě)入方式,即當(dāng)TB的內(nèi)容需要替換時(shí)會(huì)將最先寫(xiě)入TB的標(biāo)志位替換。在進(jìn)行替換操作吋,指令Cache會(huì)將第i路數(shù)據(jù)存儲(chǔ)器的全部有效位清零。同時(shí)指令Cache會(huì)啟動(dòng)ー個(gè)訪問(wèn)主存的操作,根據(jù)內(nèi)核地址從主存中讀取指令塊。當(dāng)從主存中讀取的指令塊返回時(shí),指令Cache會(huì)根據(jù)內(nèi)核地址中的索引位將該指令塊寫(xiě)入第i路的數(shù)據(jù)存儲(chǔ)器中,同時(shí)將第i路中對(duì)應(yīng)行的有效位置“I”。圖3是根據(jù)本發(fā)明實(shí)施例的指令Cache的工作流程圖。在步驟301,內(nèi)核訪問(wèn)指令Cache,這時(shí),內(nèi)核地址中的標(biāo)志位會(huì)查詢標(biāo)志緩沖器TB。換言之,內(nèi)核地址中的標(biāo)志位會(huì)與TB中的每一行存儲(chǔ)的指令地址標(biāo)志位進(jìn)行比較。在步驟302,判斷TB是否命中。如果命中,則流程進(jìn)行到303,否則流程進(jìn)行到305。TB命中是指內(nèi)核地址中的標(biāo)志位與TB中某一行的指令地址標(biāo)志位相等,TB不命中是指內(nèi)核地址中的標(biāo)志位與TB中所有行的指令地址標(biāo)志位都不相等。在步驟303,判斷對(duì)應(yīng)的有效位是否為“ I ”。如果為“ I ”,則流程進(jìn)行到步驟304,否則流程進(jìn)行到步驟307。在內(nèi)核地址中的標(biāo)志位查詢TB的同時(shí),指令Cache會(huì)根據(jù)內(nèi)核地址中的索引位讀出指令Cache每一路中對(duì)應(yīng)行的有效位,從而可以判斷有效位的狀態(tài)。在步驟305,將標(biāo)志位存入TB。在步驟306,判斷是否需要進(jìn)行TB替換。如果需要,則流程進(jìn)行到步驟308,否則流程進(jìn)行到步驟307。如果標(biāo)志位存入的TB的一行已經(jīng)存在指令地址標(biāo)志位,則需要進(jìn)行替換,否則直接存入即可。在步驟307,啟動(dòng)訪問(wèn)主存的操作,根據(jù)內(nèi)核地址從主存中讀取指令塊。在步驟308,將相應(yīng)路的有效位全部清零,同時(shí)啟動(dòng)訪問(wèn)主存操作。這樣可以防止在后續(xù)操作中讀出錯(cuò)誤數(shù)據(jù)。在步驟309,將返回的指令塊寫(xiě)入相應(yīng)路的相應(yīng)行,并將相應(yīng)行的有效位置“I”。返回的指令塊根據(jù)內(nèi)核地址索引位被存入相應(yīng)路的數(shù)據(jù)存儲(chǔ)器中。 圖4是根據(jù)本發(fā)明實(shí)施例的指令代碼在主存中的位置示意圖。下面結(jié)合圖4舉例說(shuō)明本發(fā)明的具體應(yīng)用。假設(shè)指令Cache容量為16KB,塊大小為128bits,采用4路組相聯(lián)方式。指令Cache帶寬為128bits,處理器內(nèi)核一次可以取回4條指令,內(nèi)核地址為32bits。標(biāo)志緩沖器的深度為4,與指令Cache的路數(shù)相同。由于指令Cache中每一路的容量為4KB,需要的索引位寬為8bits,因此標(biāo)志緩沖器的數(shù)據(jù)位寬為20bits。程序的指令代碼在主存中的位置如圖4所示,指令代碼的大小為20KB,在主存中分為5頁(yè),姆頁(yè)大小為4KB。指令的執(zhí)行流程為Page 0 — Page I — Page 2 — Page 3 — Page4。處理器內(nèi)核在讀取Page 0中的第一個(gè)指令塊時(shí),TB不命中,指令Cache會(huì)將內(nèi)核地址0x00000000中的標(biāo)志位0x00000存入TB的第0行,同時(shí)會(huì)啟動(dòng)ー個(gè)訪問(wèn)主存的操作;當(dāng)從主存中讀取的指令塊返回時(shí),指令Cache會(huì)將該指令塊寫(xiě)入第0路數(shù)據(jù)存儲(chǔ)器的第0行,并將該行的有效位置“ I”。在接下來(lái)讀取Page 0中的其他指令塊時(shí),TB命中,如果根據(jù)內(nèi)核地址中的索引位讀出的第0路的有效位為“1”,則表示指令Cache命中,直接從第0路數(shù)據(jù)存儲(chǔ)器中讀取指令;如果根據(jù)內(nèi)核地址中的索引位讀出的第0路的有效位為“0”,則表示指令Cache不命中,此時(shí)會(huì)啟動(dòng)ー個(gè)訪問(wèn)主存的操作,當(dāng)從主存中讀取的指令塊返回時(shí),指令Cache會(huì)將該指令塊寫(xiě)入第0路數(shù)據(jù)存儲(chǔ)器的相應(yīng)行,并將該行的有效位置“ I ”。Page0中的指令代碼執(zhí)行完成后,處理器內(nèi)核開(kāi)始執(zhí)行Page I中的指令代碼。
處理器內(nèi)核在讀取Page I中的第一個(gè)指令塊時(shí),TB不命中,指令Cache會(huì)將內(nèi)核地址0x00001000中的標(biāo)志位0x00001存入TB的第I行,同時(shí)會(huì)啟動(dòng)ー個(gè)訪問(wèn)主存的操作;當(dāng)從主存中讀取的指令塊返回時(shí),指令Cache會(huì)將該指令塊寫(xiě)入第I路數(shù)據(jù)存儲(chǔ)器的第0行,并將該行的有效位置“ I”。在接下來(lái)讀取Page I中的其他指令塊時(shí),TB命中,如果根據(jù)內(nèi)核地址中的索引位讀出的第I路的有效位為“1”,則表示指令Cache命中,直接從第I路數(shù)據(jù)存儲(chǔ)器中讀取指令;如果根據(jù)內(nèi)核地址中的索引位讀出的第I路的有效位為“0”,則表示指令Cache不命中,此時(shí)會(huì)啟動(dòng)ー個(gè)訪問(wèn)主存的操作,當(dāng)從主存中讀取的指令塊返回時(shí),指令Cache會(huì)將該指令塊寫(xiě)入第I路數(shù)據(jù)存儲(chǔ)器的相應(yīng)行,并將該行的有效位置“ I”。PageI中的指令代碼執(zhí)行完成后,處理器內(nèi)核開(kāi)始執(zhí)行Page 2中的指令代碼。處理器內(nèi)核在讀取Page 2中的第一個(gè)指令塊時(shí),TB不命中,指令Cache會(huì)將內(nèi)核地址0x00002000中的標(biāo)志位0x00002存入TB的第2行,同時(shí)會(huì)啟動(dòng)ー個(gè)訪問(wèn)主存的操作;當(dāng)從主存中讀取的指令塊返回時(shí),指令Cache會(huì)將該指令塊寫(xiě)入第2路數(shù)據(jù)存儲(chǔ)器的第0行,并將該行的有效位置“ I”。在接下來(lái)讀取Page 2中的其他指令塊時(shí),TB命中,如果根據(jù)內(nèi)核地址中的索引位讀出的第2路的有效位為“1”,則表示指令Cache命中,直接從第2路數(shù)據(jù)存儲(chǔ)器中讀取指令;如果根據(jù)內(nèi)核地址中的索引位讀出的第2路的有效位為“0”,則表示指令Cache不命中,此時(shí)會(huì)啟動(dòng)ー個(gè)訪問(wèn)主存的操作,當(dāng)從主存中讀取的指令塊返回時(shí),指令Cache會(huì)將該指令塊寫(xiě)入第2路數(shù)據(jù)存儲(chǔ)器的相應(yīng)行,并將該行的有效位置“ I ”。Page2中的指令代碼執(zhí)行完成后,處理器內(nèi)核開(kāi)始執(zhí)行Page 3中的指令代碼。處理器內(nèi)核在讀取Page 3中的第一個(gè)指令塊時(shí),TB不命中,指令Cache會(huì)將內(nèi)核地址0x00003000中的標(biāo)志位0x00003存入TB的第3行,同時(shí)會(huì)啟動(dòng)ー個(gè)訪問(wèn)主存的操作;當(dāng)從主存中讀取的指令塊返回時(shí),指令Cache會(huì)將該指令塊寫(xiě)入第3路數(shù)據(jù)存儲(chǔ)器的第0行,并將該行的有效位置“ I”。在接下來(lái)讀取Page 3中的其他指令塊時(shí),TB命中,如果根據(jù)內(nèi)核地址中的索引位讀出的第3路的有效位為“1”,則表示指令Cache命中,直接從第3路數(shù)據(jù)存儲(chǔ)器中讀取指令;如果根據(jù)內(nèi)核地址中的索引位讀出的第3路的有效位為“0”,則表示指令Cache不命中,此時(shí)會(huì)啟動(dòng)ー個(gè)訪問(wèn)主存的操作,當(dāng)從主存中讀取的指令塊返回時(shí),指令Cache會(huì)將該指令塊寫(xiě)入第3路數(shù)據(jù)存儲(chǔ)器的相應(yīng)行,并將該行的有效位置“ I ”。Page3中的指令代碼執(zhí)行完成后,處理器內(nèi)核開(kāi)始執(zhí)行Page 4中的指令代碼。處理器內(nèi)核在讀取Page 4中的第一個(gè)指令塊時(shí),TB不命中,指令Cache需要將內(nèi)核地址0x00004000中的標(biāo)志位0x00004存入TB中,但是TB的4行中都存有原來(lái)的標(biāo)志位,因此這時(shí)會(huì)出現(xiàn)TB替換操作。由于TB采用的是“先進(jìn)先出”的寫(xiě)入方式,因此TB的第O行中的標(biāo)志位0x00000將被替換出去。指令Cache將新的標(biāo)志位0x00004存入TB的第0行,同時(shí)將第0路數(shù)據(jù)存儲(chǔ)器的全部有效位清零,并啟動(dòng)一個(gè)訪問(wèn)主存的操作;當(dāng)從主存中讀取的指令塊返回時(shí),指令Cache會(huì)將該指令塊寫(xiě)入第0路數(shù)據(jù)存儲(chǔ)器的第0行,并將該行的有效位置“I”。在接下來(lái)讀取Page 4中的其他指令塊時(shí),TB命中,如果根據(jù)內(nèi)核地址中的索引位讀出的第0路的有效位為“1”,則表示指令Cache命中,直接從第0路數(shù)據(jù)存儲(chǔ)器中讀取指令;如果根據(jù)內(nèi)核地址中的索引位讀出的第0路的有效位為“0”,則表示指令Cache不命中,此時(shí)會(huì)啟動(dòng)ー個(gè)訪問(wèn)主存的操作,當(dāng)從主存中讀取的指令塊返回時(shí),指令Cache會(huì)將該指令塊寫(xiě)入第0路數(shù)據(jù)存儲(chǔ)器的相應(yīng)行,并將該行的有效位置“I”。Page 4中指令代碼執(zhí)行完成后,程序執(zhí)行完成。在嵌入式系統(tǒng)中,應(yīng)用程序的指令代碼具有很好的空間局部性,因此本發(fā)明對(duì)程序的執(zhí)行性能影響很小。專業(yè)人員應(yīng)該還可以進(jìn)ー步意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的単元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明硬件和軟件的可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤(pán)、可移動(dòng)磁盤(pán)、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。以上所述的具體實(shí)施方式
,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)ー步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式
而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種指令高速緩沖存儲(chǔ)器,包括 標(biāo)志緩沖器,其每一行用于存儲(chǔ)一個(gè)指令地址標(biāo)志位; 多路存儲(chǔ)單元,每一路存儲(chǔ)單元對(duì)應(yīng)所述標(biāo)志緩沖器的每一行,每一路存儲(chǔ)單元的每一行用于存儲(chǔ)一個(gè)指令塊及其對(duì)應(yīng)的一個(gè)狀態(tài)位;以及 控制單元,用于將內(nèi)核地址中的標(biāo)志位與所述指令地址標(biāo)志位相比較,按照內(nèi)核地址中的索引位查詢所述狀態(tài)位,并且根據(jù)比較結(jié)果和查詢結(jié)果對(duì)所述指令塊的讀取進(jìn)行控制。
2.根據(jù)權(quán)利要求1所述的指令高速緩沖存儲(chǔ)器,其中,所述比較結(jié)果是內(nèi)核地址中的標(biāo)志位與所述標(biāo)志緩沖器中一個(gè)指令地址標(biāo)志位相同,所述查詢結(jié)果是所述狀態(tài)位為有效,所述控制單元用于 根據(jù)所述索引位從所述多路存儲(chǔ)單元中讀取所述指令塊。
3.根據(jù)權(quán)利要求1所述的指令高速緩沖存儲(chǔ)器,其中,所述比較結(jié)果是內(nèi)核地址中的標(biāo)志位與所述標(biāo)志緩沖器中一個(gè)指令地址標(biāo)志位相同,所述查詢結(jié)果是所述狀態(tài)位為無(wú)效,所述控制單元用于 根據(jù)所述內(nèi)核地址從主存中讀取指令塊;以及 根據(jù)所述索引位將讀取的指令塊寫(xiě)入所述多路存儲(chǔ)單元中,并且將寫(xiě)入的指令塊對(duì)應(yīng)的狀態(tài)位設(shè)置為有效。
4.根據(jù)權(quán)利要求1所述的指令高速緩沖存儲(chǔ)器,其中,所述比較結(jié)果是內(nèi)核地址中的標(biāo)志位與所述標(biāo)志緩沖器中所有的指令地址標(biāo)志位都不相同,所述控制單元用于 將所述內(nèi)核地址中的標(biāo)志位存入所述標(biāo)志緩沖器中; 根據(jù)所述內(nèi)核地址從主存中讀取指令塊;以及 根據(jù)所述索引位將讀取的指令塊寫(xiě)入所述多路存儲(chǔ)單元中,并且將寫(xiě)入的指令塊對(duì)應(yīng)的狀態(tài)位設(shè)置為有效。
5.根據(jù)權(quán)利要求4所述的指令高速緩沖存儲(chǔ)器,其中,將所述內(nèi)核地址中的標(biāo)志位存入所述標(biāo)志緩沖器中的步驟包括 用所述內(nèi)核地址中的標(biāo)志位替換所述標(biāo)志緩沖器中一行的指令地址標(biāo)志位,并且將被替換行對(duì)應(yīng)的一路存儲(chǔ)單元中的狀態(tài)位全部設(shè)置為無(wú)效。
6.根據(jù)權(quán)利要求1所述的指令高速緩沖存儲(chǔ)器,其中,所述標(biāo)志緩沖器采用先入先出的寫(xiě)入方式。
7.根據(jù)權(quán)利要求1所述的指令高速緩沖存儲(chǔ)器,其中,所述標(biāo)志緩沖器采用全相聯(lián)方式,內(nèi)核地址中的標(biāo)志位同時(shí)與所述標(biāo)志緩沖器中每一行的指令地址標(biāo)志位進(jìn)行比較。
全文摘要
本發(fā)明涉及一種指令高速緩沖存儲(chǔ)器(指令Cache),包括標(biāo)志緩沖器,其每一行用于存儲(chǔ)一個(gè)指令地址標(biāo)志位;多路存儲(chǔ)單元,每一路存儲(chǔ)單元對(duì)應(yīng)所述標(biāo)志緩沖器的每一行,每一路存儲(chǔ)單元的每一行用于存儲(chǔ)一個(gè)指令塊及其對(duì)應(yīng)的一個(gè)狀態(tài)位;控制單元,用于將內(nèi)核地址中的標(biāo)志位與所述指令地址標(biāo)志位相比較,按照內(nèi)核地址中的索引位查詢所述狀態(tài)位,并且根據(jù)比較結(jié)果和查詢結(jié)果對(duì)所述指令塊的讀取進(jìn)行控制。本發(fā)明通過(guò)在指令Cache中增加標(biāo)志緩沖器而消除標(biāo)志存儲(chǔ)器,使用標(biāo)志緩沖器和狀態(tài)位提前確定需要讀取的指令Cache中數(shù)據(jù)存儲(chǔ)器的路數(shù),消除了冗余的讀數(shù)據(jù)存儲(chǔ)器的操作,減小了指令Cache的面積,有效降低了指令Cache的功耗。
文檔編號(hào)G06F1/32GK103019959SQ20121047687
公開(kāi)日2013年4月3日 申請(qǐng)日期2012年11月21日 優(yōu)先權(quán)日2012年11月21日
發(fā)明者張鐵軍, 李泉泉, 高瑛珂, 王東輝, 洪纓, 侯朝煥 申請(qǐng)人:中國(guó)科學(xué)院聲學(xué)研究所
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1