一種數(shù)據(jù)高速緩存的訪問裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于微處理器領(lǐng)域,涉及一種數(shù)據(jù)高速緩存的訪問裝置,尤其是一種可降低數(shù)據(jù)高速緩存功耗的訪問裝置。
【背景技術(shù)】
[0002]在處理器系統(tǒng)中,通常在處理器和主存儲器之間設(shè)立高速緩存,以減少對主存儲器的訪問,提高數(shù)據(jù)的存儲速度,從而提升存儲器的整體性能。
[0003]參照圖1所示,綜合性能和功耗方面的考慮,處理器通常采用k路-組相連的數(shù)據(jù)高速緩存:對于讀數(shù)據(jù)操作,處理器同時訪問數(shù)據(jù)高速緩存的k路數(shù)據(jù)陣列和標(biāo)簽陣列,再根據(jù)與k路標(biāo)簽的比較結(jié)果判斷是否可從k路數(shù)據(jù)陣列中選取一路數(shù)據(jù)返回;對于寫數(shù)據(jù)的操作,則通過訪問標(biāo)簽陣列獲取其在高速緩存中的位置信息,根據(jù)此信息確定是否將數(shù)據(jù)寫入k路數(shù)據(jù)陣列中的一路。但這種傳統(tǒng)的訪問方式,無論高速緩存的命中率如何,每次訪問操作都不可避免地需要對其余(k-Ι)路不需要的數(shù)據(jù)或者標(biāo)簽進(jìn)行訪問。由于高速緩存的數(shù)據(jù)陣列和標(biāo)簽陣列都是以SRAM作為物理存儲載體,每次對其進(jìn)行訪問都需要電壓驅(qū)動使能SRAM,這種k選I的訪問方式大大增加了訪問高速緩存的功耗。
【發(fā)明內(nèi)容】
[0004]為了克服已有數(shù)據(jù)高速緩存的訪問裝置的功耗較大、限制處理器性能的不足,本發(fā)明提供了一種有效降低功耗、提升處理器性能的數(shù)據(jù)高速緩存的訪問裝置。
[0005]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
[0006]一種數(shù)據(jù)高速緩存的訪問裝置,所述訪問裝置包括:
[0007]訪問記錄表,包含η個表項,用于記憶數(shù)據(jù)地址及其在數(shù)據(jù)高速緩存中的位置信息,η為整數(shù);
[0008]地址比較單元,由η個比較器組成,將輸入的數(shù)據(jù)地址與訪問記錄表中所有表項的地址分別比較,產(chǎn)生η個表項的命中信息;
[0009]訪問控制單元,連接于地址比較單元的輸出端,根據(jù)地址比較單元的命中信息,訪問訪問記錄表并獲取相應(yīng)的位置信息,產(chǎn)生對數(shù)據(jù)高速緩存的訪問控制信號;
[0010]堆棧指針檢測單元,用于對輸入的數(shù)據(jù)地址進(jìn)行堆棧指針的檢查,產(chǎn)生堆棧訪問的指示信號;
[0011]創(chuàng)建控制單元,連接于地址比較單元和堆棧指針檢測單元的輸出端,用于控制訪問記錄表的表項創(chuàng)建;
[0012]訪問記錄表以緩存行為單位記錄其在數(shù)據(jù)高速緩存中的位置信息,每個訪問記錄表的表項記憶M個相鄰高速緩存行的位置信息,M為整數(shù)。
[0013]進(jìn)一步,所述訪問裝置還包括:反饋單元,用于根據(jù)地址比較單元的輸出結(jié)果控制是否將此次輸入的數(shù)據(jù)地址訪問高速緩存所得到的位置信息寫入訪問記錄表。
[0014]再進(jìn)一步,所述訪問裝置還包括:清空控制單元,用于控制訪問記錄表內(nèi)容的清空,即把所有表項置為無效,清空單元在以下兩種情況下會清空訪問記錄表,包括:(1)數(shù)據(jù)高速緩存發(fā)生了回填行為;(2)虛擬地址對物理地址的映射關(guān)系發(fā)生變動。
[0015]清空控制單元對訪問記錄表的寫權(quán)限最高,當(dāng)清空單元需要清空訪問記錄表的信息時,創(chuàng)建控制單元和反饋單元對訪問記錄表的寫操作均失效。
[0016]所述訪問記錄表的表項由有效位字段、地址字段、位置信息字段以及鎖定字段四部分組成:所述有效位字段表征此表項所存信息是否有效;所述地址字段用于表征高速緩存行的地址信息,并與輸入的數(shù)據(jù)地址進(jìn)行比較;所述位置信息字段包括M個子信息,分別存儲對應(yīng)的M個高速緩存行在高速緩存中的位置信息;所述鎖定字段表征此表項是否能夠被替換。
[0017]當(dāng)所述地址比較單元的輸出結(jié)果顯示輸入的數(shù)據(jù)地址不與任何有效表項的地址相等時,所述創(chuàng)建控制單元則在訪問記錄表中選取一個表項進(jìn)行創(chuàng)建,即把輸入的數(shù)據(jù)地址寫入該表項的地址字段,同時把該表項的有效位字段置起,位置信息字段清除。
[0018]若堆棧檢測單元檢測到輸入的數(shù)據(jù)地址是堆棧指針時,將鎖定字段置起,表示該表項將一直保留,所述創(chuàng)建控制單元將不再選取該表項進(jìn)行創(chuàng)建。
[0019]所述地址比較單元的輸入地址以及存入訪問記錄表的地址為虛擬地址。
[0020]針對k路-組相聯(lián)的數(shù)據(jù)高速緩存,訪問記錄表的表項中的位置信息記錄的是該表項的地址對應(yīng)的物理地址在k路-組相聯(lián)數(shù)據(jù)高速緩存中的位置信息,此信息在該地址完成對數(shù)據(jù)高速緩存的k路標(biāo)簽訪問以及標(biāo)簽比較后獲得,由反饋單元將其寫入該表項的位置信息字段的對應(yīng)子信息中。
[0021]在輸入的數(shù)據(jù)地址訪問數(shù)據(jù)高速緩存前,訪問控制單元會檢測其是否同時滿足以下兩個條件:a、地址比較單元的輸出結(jié)果顯示輸入的數(shù)據(jù)地址與某一有效表項的地址相等;b、該表項的位置信息顯示該表項地址對應(yīng)的物理地址位于數(shù)據(jù)高速緩存的某一路中;
[0022]若兩個條件同時滿足,對于數(shù)據(jù)高速緩存的讀請求,訪問控制單元只開啟高速緩存中輸入地址對應(yīng)的訪問記錄表項中位置信息所指向的一路數(shù)據(jù)陣列,關(guān)閉其余(K-1)路數(shù)據(jù)陣列和k路標(biāo)簽陣列;對于數(shù)據(jù)高速緩存的寫請求,訪問控制單元則會關(guān)閉全部數(shù)據(jù)陣列和標(biāo)簽陣列,直接獲取該輸入地址的位置信息;
[0023]若兩條件不同時滿足時,對于數(shù)據(jù)高速緩存的讀請求,訪問控制單元則會開啟全部數(shù)據(jù)陣列和標(biāo)簽陣列,對于數(shù)據(jù)高速緩存的寫請求,訪問控制單元則會開啟k路標(biāo)簽陣列。
[0024]本發(fā)明的有益效果主要表現(xiàn)在:有效降低功耗、提升處理器性能。
【附圖說明】
[0025]圖1為傳統(tǒng)的讀取k路-組相聯(lián)高速緩存數(shù)據(jù)的訪問機(jī)制圖。
[0026]圖2為一種數(shù)據(jù)高速緩存的訪問裝置結(jié)構(gòu)方塊示意圖。
[0027]圖3為訪問記錄表的結(jié)構(gòu)組成實(shí)例圖。
[0028]圖4為地址比較單元結(jié)構(gòu)實(shí)例圖。
[0029]圖5為訪問控制單元控制高速緩存訪問使能信號的實(shí)例圖。
【具體實(shí)施方式】
[0030]下面結(jié)合附圖對本發(fā)明作進(jìn)一步描述。
[0031]參照圖2?圖4,一種數(shù)據(jù)高速緩存的訪問裝置,包括:訪問記錄表,地址比較單元,訪問控制單元,堆棧指針檢測單元,倉Il建控制單元,反饋單元以及清空控制單元。其中:
[0032]訪問記錄表為一包含η個表項的表格,記錄歷史訪問的地址及其在數(shù)據(jù)高速緩存中的位置信息,由創(chuàng)建控制單元,堆棧指針檢測單元,反饋單元和清空單元共同維護(hù)。
[0033]地址比較單元包含有限個比較器,將輸入的數(shù)據(jù)地址與訪問記錄表中記錄的地址進(jìn)行比較,將比較結(jié)果輸出給訪問控制單元、創(chuàng)建單元以及反饋單元。
[0034]訪問控制單元根據(jù)地址比較單元的輸出結(jié)果和訪問記錄表中相應(yīng)的位置信息控制高速緩存的訪問使能信號。
[0035]堆棧指針檢測單元檢測輸入的數(shù)據(jù)地址是否為一次堆棧指針訪問,并將檢測結(jié)果輸出給創(chuàng)建控制單元。
[0036]創(chuàng)建控制單元包含一個創(chuàng)建指針,始終指向訪問記錄表的某一表項,創(chuàng)建控制單元根據(jù)地址比較單元和堆棧指針檢測單元返回的結(jié)果控制訪問記錄表的創(chuàng)建。
[0037]反饋單元根據(jù)地址比較單元的輸出結(jié)果控制是否將此次輸入的數(shù)據(jù)地址訪問高速緩存所得到的位置信息寫入訪問記錄表。
[0038]清空控制單元控制訪問記錄表內(nèi)容的清空,即把所有表項置為無效。清空單元在以下兩種情況下會清空訪問記錄表,包括:(I)數(shù)據(jù)高速緩存發(fā)生了回填行為;⑵虛擬地址對物理地址的映射關(guān)系發(fā)生變動。
[0039]清空控制單元對訪問記錄表的寫權(quán)限最高,當(dāng)清空單元需要清空訪問記錄表的信息時,創(chuàng)建控制單元和反饋單元對訪問記錄表的寫操作均失效。
[0040]參照圖3所示,為訪問記錄表的組成實(shí)施例圖。訪問記錄表共有η個表項,每個表項的信息包括四項:有效位、地址、位置信息以及鎖定位。有效位表征此表項所存信息是否有效;地址用于與輸入的數(shù)據(jù)地址進(jìn)行比較;位置信息包括M個子信息,分別存儲對應(yīng)的M個相鄰緩存行的位置信息;鎖定位表征此表項是否能夠被替換。
[0041]本實(shí)施例中,有效位字段的位寬為1,用vld表示,vld = I表示表項有效,vld =O表示無效。清空單元在清空時將訪問記錄表的所有表項的有效位置0,創(chuàng)建控制單元在創(chuàng)建時將創(chuàng)建指針指向的表項的有效位置I。
[0042]訪問記錄表以緩存行為單位記錄其在數(shù)據(jù)高速緩存中的位置信息,一個表項可以記錄M個相鄰緩存行的位置信息,這M個相鄰緩存行組成一個緩存塊,創(chuàng)建單元在創(chuàng)建時截取輸入的數(shù)據(jù)地址中表示緩存塊的一段存入到創(chuàng)建指針指向的表項的地址字段。本實(shí)施例中,表項的地址字段用addr表示。
[0043]位置信息字段中每個子信息的位寬為k,在表項創(chuàng)建時被清零,隨后由反饋單元將相應(yīng)訪問地址訪問高速緩存的位置信息結(jié)果更新到此區(qū)域的某個子信息中,通過輸入的數(shù)據(jù)地址索引。在本實(shí)施例中,位置信息用P [M-1:0]