本發明專利技術涉及一種指令高速緩沖存儲器(指令Cache),包括:標志緩沖器,其每一行用于存儲一個指令地址標志位;多路存儲單元,每一路存儲單元對應所述標志緩沖器的每一行,每一路存儲單元的每一行用于存儲一個指令塊及其對應的一個狀態位;控制單元,用于將內核地址中的標志位與所述指令地址標志位相比較,按照內核地址中的索引位查詢所述狀態位,并且根據比較結果和查詢結果對所述指令塊的讀取進行控制。本發明專利技術通過在指令Cache中增加標志緩沖器而消除標志存儲器,使用標志緩沖器和狀態位提前確定需要讀取的指令Cache中數據存儲器的路數,消除了冗余的讀數據存儲器的操作,減小了指令Cache的面積,有效降低了指令Cache的功耗。
【技術實現步驟摘要】
本專利技術涉及ー種指令高速緩沖存儲器。
技術介紹
降低嵌入式系統的功耗能夠延長電池的使用壽命。作為提高處理器內核取指令速度的關鍵部件,指令高速緩沖存儲器(指令Cache)占據了系統很大一部分功耗,因為內核取指令幾乎在程序執行的每個周期都發生。因此,有效降低指令Cache的功耗對于低功耗處理器的設計有著重要意義。傳統的N路組相聯方式的指令Cache結構如圖1所示,每一路的結構都相同,主要由標志(tag)存儲器、數據(da ta)存儲器和狀態位(st)組成。當內核訪問指令Cache時,tag存儲器根據內核地址的索引位(Index)作為地址讀出標志位,并同時與內核地址中的Tag位進行比較,如果第i路讀出的標志位與內核地址中的Tag位相等,則表示命中,將第i路讀出的數據發送給處理器內核;如果全部不相等,則表示沒有命中,這時會啟動ー個訪問主存的操作。為了達到處理器內核高速訪問指令Cache的目的,指令Cache中tag存儲器的訪問和data存儲器的訪問是同時進行的。從N路組相聯指令Cache的工作原理可以看出,內核的取指操作需要進行大量的讀tag存儲器操作和讀冗余的data存儲器操作,這個過程需要消耗大量的功耗。如果能夠減少訪問tag存儲器的功耗和消除冗余的data存儲器的訪問,貝U可以有效降低指令Cache的功耗。在2007年8月27-29號的低功耗電子學與設計(ISLPED)會議上ZhangMingming等人發表的文早((Reducing Cache Energy Consumption by TagEncoding in EmbeddedProcessors))中提出了一種基于標志位編碼的低功耗指令Cache設計方法,它在傳統的Cache結構中增加了一個小的寄存器組來保存最近訪問的內核地址中的標志位,同時為Cache的每一行增加了ー個3bits的狀態寄存器來記錄每一行標志位的狀態。它的工作原理是在內核訪問指令Cache的時候,通過檢測指令Cache中該組的標志位的狀態來確定應該訪問哪一路,減少了冗余的讀tag存儲器操作和冗余的讀data存儲器操作,從而可以有效降低指令Cache的功耗。在2011年8月1-3號的低功耗電子學與設計(ISLPED)會議上Jongmin Lee等人發表的文章《TLB Index-based Tagging for Cache Energy Reduction》中提出 了一種基于TLB的低功耗指令Cache設計方法,它將TLB的索引作為指令Cache的標志位,這種方法可以將tag存儲器的位寬減小到傳統結構中tag存儲器位寬的四分之一,從而減小了指令Cache的面積,降低了指令Cache的功耗。Zhang Mingming等人提出的基于標志位編碼的低功耗指令Cache設計方法有如下缺點(I)它需要為指令Cache的每一行增加ー個3bits的狀態寄存器來記錄每一行標志位的狀態,這樣會増加指令Cache的面積,而且對這些狀態寄存器的訪問也需要消耗一部分功耗;(2)對于檢測出的那一路Cache単元仍然需要對tag存儲器進行讀操作,tag存儲器仍然需要消耗一部分功耗。Jongmin Lee等人提出的基于TLB的低功耗指令Cache設計方法有如下不足(I)對于多路組相聯指令Cache,不能減少冗余的讀tag存儲器操作和冗余的讀data存儲器操作;(2)tag存儲器的位寬雖然可以減小到傳統結構中tag存儲器位寬的四分之一,但是它仍然需要消耗一部分功耗。
技術實現思路
本專利技術的目的是提供ー種能解決上述缺陷的指令高速緩沖存儲器。本專利技術提供了ー種指令高速緩沖存儲器,包括標志緩沖器,其每一行用于存儲一個指令地址標志位;多路存儲単元,每一路存儲單元對應所述標志緩沖器的每一行,每一路存儲單元的每一行用于存儲ー個指令塊及其對應的一個狀態位;以及控制単元,用于將內核地址中的標志位與所述指令地址標志位相比較,按照內核地址中的索引位查詢所述狀態位,并且根據比較結果和查詢結果對所述指令塊的讀取進行控制。優選地,所述比較結果是內核地址中的標志位與所述標志緩沖器中ー個指令地址標志位相同,所述查詢結果是所述狀態位為有效,所述控制単元用干根據所述索引位從所述多路存儲單元中讀取所述指令塊。優選地,所述比較結果是內核地址中的標志位與所述標志緩沖器中ー個指令地址標志位相同,所述查詢結果是所述狀態位為無效,所述控制単元用干根據所述內核地址從主存中讀取指令塊;以及根據所述索引位將讀取的指令塊寫入所述多路存儲單元中,并且將寫入的指令塊對應的狀態位設置為有效。優選地,所述比較結果是內核地址中的標志位與所述標志緩沖器中所有的指令地址標志位都不相同,所述控制単元用于將所述內核地址中的標志位存入所述標志緩沖器中;根據所述內核地址從主存中讀取指令塊;以及根據所述索引位將讀取的指令塊寫入所述多路存儲單元中,并且將寫入的指令塊對應的狀態位設置為有效。優選地,將所述內核地址中的標志位存入所述標志緩沖器中的步驟包括用所述內核地址中的標志位替換所述標志緩沖器中一行的指令地址標志位,并且將被替換行對應的一路存儲單元中的狀態位全部設置為無效。優選地,所述標志緩沖器采用先入先出的寫入方式。優選地,所述標志緩沖器采用全相聯方式,內核地址中的標志位同時與所述標志緩沖器中每一行的指令地址標志位進行比較。本專利技術通過在指令Cache中増加標志緩沖器而消除標志存儲器,并且使用標志緩沖器和狀態位提前確定需要讀取的指令Cache中數據存儲器的路數,消除了冗余的讀數據存儲器的操作,減小了指令Cache的面積,有效降低了指令Cache的功耗。附圖說明圖1是傳統的N路組相聯的指令Cache的結構示意圖2是根據本專利技術實施例的指令Cache的結構示意圖;圖3是根據本專利技術實施例的指令Cache的工作流程圖;以及圖4是根據本專利技術實施例的指令代碼在主存中的位置示意圖。具體實施例方式下面通過附圖和實施例,對本專利技術的技術方案做進ー步的詳細描述。本專利技術提出了ー種低功耗指令Cache結構,該結構相對傳統的指令Cache結構増加了ー個小的標志緩沖器,消除了傳統結構中的tag存儲器,在處理器內核訪問該結構時可以消除冗余的讀數據存儲器操作。本專利技術可以減小指令Cache的面積,有效降低指令Cache的功耗。圖2是根據本專利技術實施例的指令Cache的結構示意圖。如圖2所示,指令Cache包括標志緩沖器模塊(tag buffer, TB)、N路結構相同的存儲單元,以及控制電路。標志緩沖器用于存儲指令地址標志位,其可以采用全相聯方式,其深度為N,與指令Cache的路數相同,標志緩沖器的一行對應指令Cache中的一路;數據寬度可以根據指令Cache的容量和路數、內核地址寬度來確定。每一路的存儲單元與傳統結構不同,只包括數據存儲器和狀態位(例如,有效位),沒有tag存儲器,其中,數據存儲器用于存儲指令塊,對應的狀態位用于存儲指令塊的狀態。當處理器內核訪問指令Cache時,內核地址中的標志位會去查詢標志緩沖器(TB),即將內核地址中的標志位與TB中的每一行進行比較。如果內核地址中的標志位與TB中的某一行相等則表示TB命中,同時將對應路的命中信號置“I” ;如果全部不相等則表示TB不命中。在TB采用全相聯方式的情本文檔來自技高網...
【技術保護點】
一種指令高速緩沖存儲器,包括:標志緩沖器,其每一行用于存儲一個指令地址標志位;多路存儲單元,每一路存儲單元對應所述標志緩沖器的每一行,每一路存儲單元的每一行用于存儲一個指令塊及其對應的一個狀態位;以及控制單元,用于將內核地址中的標志位與所述指令地址標志位相比較,按照內核地址中的索引位查詢所述狀態位,并且根據比較結果和查詢結果對所述指令塊的讀取進行控制。
【技術特征摘要】
1.一種指令高速緩沖存儲器,包括 標志緩沖器,其每一行用于存儲一個指令地址標志位; 多路存儲單元,每一路存儲單元對應所述標志緩沖器的每一行,每一路存儲單元的每一行用于存儲一個指令塊及其對應的一個狀態位;以及 控制單元,用于將內核地址中的標志位與所述指令地址標志位相比較,按照內核地址中的索引位查詢所述狀態位,并且根據比較結果和查詢結果對所述指令塊的讀取進行控制。2.根據權利要求1所述的指令高速緩沖存儲器,其中,所述比較結果是內核地址中的標志位與所述標志緩沖器中一個指令地址標志位相同,所述查詢結果是所述狀態位為有效,所述控制單元用于 根據所述索引位從所述多路存儲單元中讀取所述指令塊。3.根據權利要求1所述的指令高速緩沖存儲器,其中,所述比較結果是內核地址中的標志位與所述標志緩沖器中一個指令地址標志位相同,所述查詢結果是所述狀態位為無效,所述控制單元用于 根據所述內核地址從主存中讀取指令塊;以及 根據所述索引位將讀取的指令塊寫入所述多路存儲...
【專利技術屬性】
技術研發人員:張鐵軍,李泉泉,高瑛珂,王東輝,洪纓,侯朝煥,
申請(專利權)人:中國科學院聲學研究所,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。