專利名稱:控制電路以及控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及高速緩沖存儲器控制中的控制電路以及控制方法。
背景技術(shù):
在把數(shù)據(jù)事先存儲在高速緩沖存儲器中的以往的預(yù)取(prefetch)控制電路中,因為進(jìn)行不把已參照過一次的數(shù)據(jù)設(shè)置為無效而保持的預(yù)取控制,所以在再次參照已參照過一次的數(shù)據(jù)的概率低的系統(tǒng)中,高速緩存的命中率低,數(shù)據(jù)提供花費時間。
另外,在置換時舍棄已參照過一次的數(shù)據(jù)的例子有專利文獻(xiàn)1。專利文獻(xiàn)1記載的預(yù)取方法及其電路采取在把預(yù)取的數(shù)據(jù)從預(yù)取緩沖器中去掉時,不舍棄還未參照的數(shù)據(jù)而舍棄已參照過的數(shù)據(jù)的預(yù)取高速緩存方式。
特開平8-292913號公報在專利文獻(xiàn)1的方式中,因為從預(yù)取緩沖器中舍棄已參照過的數(shù)據(jù)而不從指令高速緩存器中舍棄,所以即使在再次參照的概率低的情況下數(shù)據(jù)也被保持在高速緩沖存儲器中。另外,因為不能不使用預(yù)取緩沖器而以少的硬件資源實現(xiàn),所以存在使用很多的硬件資源,LSI(Large Scale Integration大規(guī)模集成電路)芯片成本大的問題。另外在專利文獻(xiàn)1的方式中,存在即使因分支而未參照并跳過的數(shù)據(jù)將來被參照的概率低的情況下也作為未參照數(shù)據(jù)保持的問題。
發(fā)明內(nèi)容
本發(fā)明鑒于上述問題,其目的在于提供一種預(yù)取控制電路,例如,它在由于在高速緩沖存儲器中存儲現(xiàn)在或者將來讀出的數(shù)據(jù),因而在參照一次后再次參照的概率低的數(shù)據(jù)多的系統(tǒng)中特別有效,可以用更少的硬件資源實現(xiàn)。
本發(fā)明的控制電路其特征在于具備存儲數(shù)據(jù)的主存儲單元;以特定大小單位把已存儲在上述主存儲單元中的數(shù)據(jù)作為高速緩存行讀入并存儲的高速緩沖存儲器;輸入已存儲在上述高速緩沖存儲器中的數(shù)據(jù),根據(jù)已輸入的數(shù)據(jù)進(jìn)行運(yùn)算處理的運(yùn)算處理單元;判斷是表示作為在上述運(yùn)算處理單元進(jìn)行的運(yùn)算處理中使用的數(shù)據(jù)的對象數(shù)據(jù)已經(jīng)存儲在上述高速緩沖存儲器中的高速緩存命中還是表示對象數(shù)據(jù)未被存儲在上述高速緩沖存儲器中的高速緩存未命中,當(dāng)判斷為高速緩存未命中的情況下,從上述主存儲單元中以特定大小單位取得對象數(shù)據(jù)并作為高速緩存行存儲在上述高速緩沖存儲器中的高速緩存命中判斷單元;當(dāng)上述高速緩存命中判斷單元判斷為高速緩存命中的情況下,判斷包含對象數(shù)據(jù)的高速緩存行和包含在前一次計算處理中使用的數(shù)據(jù)的高速緩存行的異同的數(shù)據(jù)判斷單元;控制單元,它進(jìn)行以下控制,當(dāng)上述數(shù)據(jù)判斷單元判斷為包含對象數(shù)據(jù)的高速緩存行和包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行不同的情況下,控制以特定大小單位取得被存儲在上述主存儲單元中的數(shù)據(jù),把取得的特定大小單位的數(shù)據(jù)與包含在前次計算處理中使用的數(shù)據(jù)的高速緩存行進(jìn)行替換并作為高速緩存行存儲在上述高速緩沖存儲器中,當(dāng)上述數(shù)據(jù)判斷單元判斷為包含對象的數(shù)據(jù)的高速緩存行和包含在前次計算處理中使用的數(shù)據(jù)的高速緩存行相同的情況下,控制不替換被存儲在上述高速緩沖存儲器中的包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行。
上述控制單元其特征在于在把存儲在上述主存儲單元中的數(shù)據(jù)與高速緩存行進(jìn)行替換并存儲在上述高速緩沖存儲器中時,相對與用存儲于上述主存儲單元中的數(shù)據(jù)替換的高速緩存行以外的高速緩存行對應(yīng)的上述主存儲單元的數(shù)據(jù),取得被存儲在連續(xù)的區(qū)域上的數(shù)據(jù),把取得的數(shù)據(jù)與高速緩存行進(jìn)行替換并存儲在上述高速緩沖存儲器。
上述高速緩沖存儲器其特征在于把被存儲在上述主存儲單元的連續(xù)區(qū)域上的數(shù)據(jù)以特定大小單位作為高速緩存行多次讀入并存儲為連續(xù)的入口(entry),上述控制單元當(dāng)上述數(shù)據(jù)判斷單元判斷為包含對象數(shù)據(jù)的高速緩存行和包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行不同的情況下,以特定大小單位多次取得被存儲在上述主存儲單元中的數(shù)據(jù),對已取得的特定大小單位的多個數(shù)據(jù)與從包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行的入口到包含對象數(shù)據(jù)的高速緩存行的入口的前一個入口的高速緩存行進(jìn)行替換,存儲在上述高速緩沖存儲器中。
本發(fā)明的控制電路其特征在于進(jìn)一步具備指令禁止單元,它分析包含于被存儲在上述高速緩沖存儲器中的高速緩存行中的數(shù)據(jù),當(dāng)分析的結(jié)果是檢測出表示分支指令的數(shù)據(jù)和表示結(jié)束指令的數(shù)據(jù)的至少一個數(shù)據(jù)的情況下,上述控制單元禁止把被存儲在上述主存儲單元中的數(shù)據(jù)和已存儲在上述高速緩沖存儲器中的高速緩存行進(jìn)行替換并存儲在上述高速緩沖存儲器。
上述運(yùn)算處理單元其特征在于具備,從上述高速緩沖存儲器輸入數(shù)據(jù)的高速緩存訪問單元;譯碼上述高速緩存訪問單元輸入的數(shù)據(jù)的譯碼單元;根據(jù)上述譯碼單元譯碼的數(shù)據(jù)進(jìn)行運(yùn)算處理的運(yùn)算單元,上述高速緩存訪問單元從上述高速緩沖存儲器輸入已輸入完的數(shù)據(jù)以后的數(shù)據(jù),分析已輸入的數(shù)據(jù),當(dāng)分析的數(shù)據(jù)是表示分支指令的數(shù)據(jù)的情況下,與上述運(yùn)算單元的運(yùn)算處理并行地從上述主存儲單元中取得被存儲在已分析了的數(shù)據(jù)所表示的分支目標(biāo)的地址中的數(shù)據(jù),并存儲到上述高速緩沖存儲器中。
本發(fā)明的控制電路其特征在于具備存儲數(shù)據(jù)的主存儲單元;以特定大小單位作為高速緩存行讀入所已存儲在上述主存儲單元中的數(shù)據(jù)并存儲的高速緩沖存儲器;輸入已存儲在上述高速緩沖存儲器中的數(shù)據(jù),根據(jù)已輸入的數(shù)據(jù)進(jìn)行運(yùn)算處理的運(yùn)算處理單元;判斷是表示作為在上述運(yùn)算處理單元進(jìn)行的運(yùn)算處理中使用的數(shù)據(jù)的對象數(shù)據(jù)已存儲在上述高速緩沖存儲器中的高速緩存命中還是表示對象數(shù)據(jù)未被存儲在上述高速緩沖存儲器中的高速緩存未命中,當(dāng)判斷為高速緩存未命中的情況下,從上述主存儲單元中以特定大小單位取得對象數(shù)據(jù)并作為高速緩存行存儲在上述高速緩沖存儲器中的高速緩存命中判斷單元;控制單元,進(jìn)行以下控制,當(dāng)上述高速緩存命中判斷單元判斷為高速緩存未命中的情況下,上述高速緩存命中判斷單元以特定大小單位取得被存儲在與存儲在上述高速緩沖存儲器中的高速緩存行對應(yīng)的上述主存儲單元的數(shù)據(jù)連續(xù)的區(qū)域上的數(shù)據(jù),把已取得的特定單位的數(shù)據(jù)與上述高速緩存命中判斷單元存儲的高速緩存行以外的高速緩存行進(jìn)行替換,并作為高速緩存行存儲在上述高速緩沖存儲器中。
本發(fā)明的控制電路其特征在于具備存儲數(shù)據(jù)的主存儲單元;以特定大小單位作為高速緩存行讀入被存儲在上述主存儲單元中的數(shù)據(jù)并存儲,對于已存儲的高速緩存行管理有效或者無效的高速緩沖存儲器;輸入已被存儲在上述高速緩沖存儲器中的數(shù)據(jù),根據(jù)已輸入的數(shù)據(jù)進(jìn)行運(yùn)算處理的運(yùn)算處理單元;在上述運(yùn)算處理單元進(jìn)行的運(yùn)算處理前,控制以特定大小單位取得已被存儲在上述主存儲單元中的數(shù)據(jù),把已取得的特定大小的數(shù)據(jù)與無效的高速緩存行進(jìn)行替換,并作為高速緩存行存儲在上述高速緩沖存儲器中的控制單元;存儲對上述高速緩沖存儲器的訪問頻度的基準(zhǔn)值和被存儲在上述高速緩沖存儲器中的有效高速緩存行數(shù)的基準(zhǔn)值的至少一種的基準(zhǔn)值存儲單元;測定對上述高速緩沖存儲器的訪問頻度和被存儲在上述高速緩沖存儲器中的有效高速緩存行數(shù)的至少一種的測定單元;當(dāng)上述測定單元測定的對上述高速緩沖存儲器的訪問頻度在已存儲在上述基準(zhǔn)值存儲單元中的訪問頻度的基準(zhǔn)值以下的情況下,和當(dāng)上述測定單元測定的上述高速緩存行數(shù)在已存儲在上述基準(zhǔn)值存儲單元中的有效的高速緩存行數(shù)的基準(zhǔn)值以上的情況下的至少一個情況下,禁止上述控制單元進(jìn)行的控制的測定禁止單元。
本發(fā)明的控制電路其特征在于具備存儲數(shù)據(jù)的主存儲單元;讀入被存儲在上述主存儲單元中的數(shù)據(jù)并存儲的高速緩沖存儲器;從上述高度緩沖存儲器輸入數(shù)據(jù)的高速緩存訪問單元;譯碼上述高速緩存訪問單元輸入的數(shù)據(jù)的譯碼單元;根據(jù)上述譯碼單元譯碼的數(shù)據(jù)進(jìn)行運(yùn)算處理的運(yùn)算單元,上述高速緩存訪問單元與上述運(yùn)算單元的運(yùn)算處理并行地,從上述主存儲單元中取得被存儲于在上述運(yùn)算單元進(jìn)行的運(yùn)算處理中生成的地址中的數(shù)據(jù)并存儲到上述高速緩沖存儲器。
本發(fā)明的控制方法其特征在于在主存儲單元中存儲數(shù)據(jù),以特定大小單位作為高速緩存行讀入已存儲在上述主存儲單元中的數(shù)據(jù)并存儲在高速緩沖存儲器,輸入已存儲在上述高速緩沖存儲器中的數(shù)據(jù),根據(jù)已輸入的數(shù)據(jù)進(jìn)行運(yùn)算處理,判斷是表示作為在上述運(yùn)算處理中使用的數(shù)據(jù)的對象數(shù)據(jù)已存儲在上述高速緩沖存儲器中的高速緩存命中,還是表示對象數(shù)據(jù)未被存儲在上述高速緩沖存儲器中的高速緩存未命中,當(dāng)判斷為高速緩存未命中的情況下,從上述主存儲單元中以特定大小單位取得對象數(shù)據(jù)作為高速緩存行并存儲在上述高速緩沖存儲器中,當(dāng)判斷為高速緩存命中的情況下,判斷包含對象數(shù)據(jù)的高速緩存行和包含在前一次計算處理中使用的數(shù)據(jù)的高速緩存行的異同,當(dāng)判斷為包含對象數(shù)據(jù)的高速緩存行和包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行不同的情況下,控制以特定大小單位取得被存儲在上述主存儲單元中的數(shù)據(jù),把取得的特定大小單位的數(shù)據(jù)與包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行進(jìn)行替換并作為高速緩存行存儲在上述高速緩沖存儲器中,當(dāng)判斷為包含對象數(shù)據(jù)的高速緩存行和包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行相同的情況下,控制不替換包含被存儲在上述高速緩沖存儲器中的前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行。
本發(fā)明的控制方法其特征在于在主存儲單元中存儲數(shù)據(jù),以特定大小單位作為高速緩存行讀入已存儲在上述主存儲單元中的數(shù)據(jù)并存儲在高速緩沖存儲器中,輸入已存儲在上述高速緩沖存儲器中的數(shù)據(jù),根據(jù)已輸入的數(shù)據(jù)進(jìn)行運(yùn)算處理,判斷是表示作為在上述運(yùn)算處理中使用的數(shù)據(jù)的對象數(shù)據(jù)已存儲在上述高速緩沖存儲器中的高速緩存命中,還是表示對象數(shù)據(jù)未被存儲在上述高速緩沖存儲器中的高速緩存未命中,當(dāng)判斷為高速緩存未命中的情況下,從上述主存儲單元中以特定大小單位取得對象數(shù)據(jù)并作為高速緩存行存儲在上述高速緩沖存儲器中,當(dāng)判斷為高速緩存未命中的情況下,以特定大小單位取得被存儲在與存儲在上述高速緩沖存儲器中的高速緩存行對應(yīng)的上述主存儲單元的數(shù)據(jù)連續(xù)的區(qū)域上的數(shù)據(jù),把已取得的特定大小單位的數(shù)據(jù)與從上述主存儲單元中以特定大小單位取得對象數(shù)據(jù)并存儲在上述高速緩沖存儲器中的高速緩存行以外的高速緩存行進(jìn)行替換,并作為高速緩存行存儲在上述高速緩沖存儲器中。
本發(fā)明的控制方法其特征在于具備在主存儲單元中存儲數(shù)據(jù),以特定大小單位作為高速緩存行讀入存儲在上述主存儲單元中的數(shù)據(jù)并存儲在高速緩沖存儲器中,對已存儲的高速緩存行管理有效或者無效,輸入已被存儲在上述高速緩沖存儲器中的數(shù)據(jù),根據(jù)已輸入的數(shù)據(jù)進(jìn)行運(yùn)算處理,在運(yùn)算處理前,控制以特定大小單位取得已被存儲在上述主存儲單元中的數(shù)據(jù),把已取得的特定大小的數(shù)據(jù)與無效的高速緩存行進(jìn)行替換,作為高速緩存行存儲在上述高速緩沖存儲器中,在基準(zhǔn)值存儲單元中存儲對上述高速緩沖存儲器的訪問頻度的基準(zhǔn)值和被存儲在上述高速緩沖存儲器中的有效高速緩存行數(shù)的基準(zhǔn)值的至少一種,測定對上述高速緩沖存儲器的訪問頻度和被存儲在上述高速緩沖存儲器中的有效的高速緩存行數(shù)的至少一種,在測定出的對上述高速緩沖存儲器的訪問頻度小于等于已存儲在上述基準(zhǔn)值存儲單元中的訪問頻度的基準(zhǔn)值的情況,和上述測定單元測定的有效高速緩存行數(shù)大于等于已存儲在上述基準(zhǔn)值存儲單元中的有效高速緩存行數(shù)的基準(zhǔn)值的情況的至少一個下,禁止在運(yùn)算處理前,以特定大小單位取得被存儲在上述主存儲單元中的數(shù)據(jù),把已取得的特定單元大小的數(shù)據(jù)與無效高速緩存行進(jìn)行替換,并作為高速緩存行存儲在上述高速緩沖存儲器中。
本發(fā)明的控制方法其特征在于把數(shù)據(jù)存儲在主存儲單元中,讀入已存儲在上述主存儲單元中的數(shù)據(jù)并存儲在高速緩沖存儲器中,從上述高速緩沖存儲器輸入數(shù)據(jù),譯碼輸入的數(shù)據(jù),根據(jù)譯碼后的數(shù)據(jù)進(jìn)行運(yùn)算處理,在從上述高速緩沖存儲器輸入數(shù)據(jù)時,與運(yùn)算處理并行地從上述主存儲單元中取得被存儲在運(yùn)算處理中生成的地址所示的地址目標(biāo)中的數(shù)據(jù)并存儲在上述高速緩沖存儲器中。
如果采用本發(fā)明,則例如可以提供在參照過一次后再參照的概率低的數(shù)據(jù)多的系統(tǒng)中特別有效,可以以更少的硬件資源實現(xiàn)的預(yù)取控制電路。
圖1是展示實施例1中的預(yù)取控制電路100的構(gòu)成的構(gòu)成框圖。
圖2是展示實施例1中的預(yù)取控制電路100的動作的流程圖。
圖3是實施例4的運(yùn)算處理單元1的構(gòu)成圖。
圖4是展示實施例4中的運(yùn)算處理單元1的動作的圖。
圖5是展示實施例5中的預(yù)取控制電路100的構(gòu)成的構(gòu)成框圖。
圖6是展示實施例5中的測定預(yù)取禁止單元8的動作的流程圖。
圖7是展示實施例6中的預(yù)取控制電路100的構(gòu)成的構(gòu)成框圖。
圖8是實施例中的預(yù)取控制電路100的硬件框圖。
具體實施例方式
圖1是展示實施例1中的預(yù)取控制電路100構(gòu)成的構(gòu)成框圖。
在圖1中,1是訪問高速緩沖存儲器3讀入數(shù)據(jù),對讀入的數(shù)據(jù)進(jìn)行運(yùn)算的運(yùn)算處理單元。
2是在運(yùn)算處理單元1訪問高速緩沖存儲器3時判斷在高速緩沖存儲器3內(nèi)是否存在成為對象的數(shù)據(jù)的高速緩存命中判斷單元。
3是以高速緩存行單位存儲數(shù)據(jù)的高速緩沖存儲器。
4是根據(jù)對高速緩沖存儲器3的訪問狀況把存儲在高速緩沖存儲器3中的高速緩存行設(shè)置為無效的無效數(shù)據(jù)判斷單元。
5是當(dāng)在高速緩沖存儲器3內(nèi)存在有效高速緩存行和無效高速緩存行的情況下,從有效高速緩存行的地址求出預(yù)取對象數(shù)據(jù)的存儲元的地址,從主存儲單元7讀出預(yù)取對象的數(shù)據(jù)并存儲在高速緩沖存儲器3中的預(yù)取控制單元。
6是在高速緩存未命中時和有預(yù)取請求時從主存儲單元7讀出數(shù)據(jù)的主存儲控制單元。
7是存儲指令數(shù)據(jù)和運(yùn)算數(shù)據(jù)等各種數(shù)據(jù)的主存儲單元。另外,指令數(shù)據(jù)是表示運(yùn)算處理單元1進(jìn)行的運(yùn)算處理的運(yùn)算指令的內(nèi)容的數(shù)據(jù),運(yùn)算數(shù)據(jù)是指令數(shù)據(jù)表示的運(yùn)算對象的數(shù)據(jù)。
在此,所謂高速緩存行是指高速緩沖存儲器3存儲管理的特定大小的數(shù)據(jù)。
一般,為了彌補(bǔ)CPU(中央處理單元)和主存儲單元7的處理速度的差異而使用的高速緩沖存儲器3在入口中設(shè)定并管理高速緩存行,各入口具有有效位、標(biāo)記地址、高速緩存行。
有效位表示入口的有效、無效,標(biāo)記地址表示在主存儲單元7內(nèi)的高速緩存行的存儲元地址。
而后,高速緩沖存儲器3通過對有效的入口檢索與訪問對象數(shù)據(jù)的存儲元地址對應(yīng)的標(biāo)記地址,確定并輸出包含在高速緩存行中的訪問對象數(shù)據(jù)。
以下說明有關(guān)動作。
圖2是展示實施例1中的預(yù)取控制電路100的動作的流程圖。
在此,假設(shè)在高速緩沖存儲器3中存儲在主存儲單元7中在連續(xù)的地址表示的區(qū)域中存儲的數(shù)據(jù),并且是前次訪問主存儲單元7存儲的數(shù)據(jù)。另外,假設(shè)各入口的有效位表示有效,數(shù)據(jù)讀出是有效狀態(tài)。
首先,運(yùn)算處理單元1訪問高速緩沖存儲器3,進(jìn)行數(shù)據(jù)的讀出(步驟S1)。
在此,高速緩存命中判斷單元2把運(yùn)算處理單元1的訪問對象數(shù)據(jù)的存儲元地址輸出到高速緩沖存儲器3,根據(jù)高速緩沖存儲器3的輸出結(jié)果,判斷在高速緩沖存儲器3內(nèi)是否存在訪問對象數(shù)據(jù)(步驟S2)。
當(dāng)訪問對象數(shù)據(jù)存在于高速緩沖存儲器3中的情況下,高速緩存命中判斷單元2判斷為高速緩存命中,從高速緩沖存儲器3取出訪問對象數(shù)據(jù)并輸出到運(yùn)算處理單元1(步驟S3)。
而后,無效數(shù)據(jù)判斷單元4判斷包含運(yùn)算處理單元1的訪問對象數(shù)據(jù)的高速緩存行是否是與前次訪問的數(shù)據(jù)相同的高速緩存行(步驟S4)。
當(dāng)無效數(shù)據(jù)判斷單元4的判斷結(jié)果是此次訪問的數(shù)據(jù)和前次訪問的數(shù)據(jù)是同樣的高速緩存行的情況下,結(jié)束處理。因而預(yù)取動作不發(fā)生(步驟S9)。
當(dāng)無效數(shù)據(jù)判斷單元4的判斷結(jié)果是此次訪問對象數(shù)據(jù)和前次訪問的數(shù)據(jù)是不同的高速緩存行的數(shù)據(jù)的情況下,無效數(shù)據(jù)判斷單元4把包含前次訪問的數(shù)據(jù)的高速緩存行的有效位設(shè)定為無效并使入口無效。在此,假設(shè)包含此次訪問對象數(shù)據(jù)的高速緩存行是被存儲在包含前次訪問的數(shù)據(jù)的高速緩存行的下一入口中的高速緩存行(步驟S5)。
以下,預(yù)取控制單元5判斷在高速緩沖存儲器3中是否存在有效高速緩存行和無效高速緩存行雙方(步驟S6)。
此時,因為在前次訪問中的高速緩存行在步驟S5中為無效,除此此外的高速緩存行保持有效,所以預(yù)取控制單元5檢測出存在有效高速緩存行和無效高速緩存行雙方。
以下,預(yù)取控制單元5為了對于無效高速緩存行從主存儲單元7讀出數(shù)據(jù),而從有效高速緩存行的地址生成預(yù)取對象的地址(步驟S7)。
預(yù)取控制單元5對在前次訪問中的無效高速緩存行進(jìn)行數(shù)據(jù)的替換。因而首先,預(yù)取控制單元5為了把主存儲單元7中連續(xù)的地址所示的區(qū)域上存儲的數(shù)據(jù)存儲在高速緩沖存儲器3中,而對于被存儲在無效高速緩存行的前一個入口中的有效高速緩存行,把存儲有與高速緩存行對應(yīng)的數(shù)據(jù)的主存儲單元7內(nèi)的存儲元地址的下一地址作為預(yù)取對象的地址。
以下,預(yù)取控制單元5為了讀出與在步驟S7中生成的預(yù)取對象地址對應(yīng)的數(shù)據(jù),而向主存儲控制單元6發(fā)出訪問請求。而后,主存儲控制單元6從主存儲單元7中讀出數(shù)據(jù),把數(shù)據(jù)存儲在高速緩沖存儲器3中,把已存儲的高速緩存行的有效位設(shè)置為有效(步驟S8)。
通過執(zhí)行該預(yù)取,可以把與新的地址對應(yīng)的連續(xù)的數(shù)據(jù)存儲在高速緩沖存儲器3中。
預(yù)取控制單元5在執(zhí)行步驟S8的預(yù)取后,再次判斷在高速緩沖存儲器3中是否存在有效高速緩存行和無效高速緩存行雙方(步驟S6)。
因為包含前次訪問的數(shù)據(jù)的高速緩存行在步驟S8中與新的高速緩存行替換并變?yōu)橛行?,所以在高速緩沖存儲器3中不存在無效的高速緩存行。因而不進(jìn)行以上的預(yù)取動作結(jié)束處理(步驟S9)。
如上所述,實施例1中的預(yù)取控制電路100在運(yùn)算處理單元1訪問的數(shù)據(jù)的高速緩存行變化時,不需要此前參照的高速緩存行,可以把將來有可能參照的新的數(shù)據(jù)存儲在高速緩沖存儲器3中。
另外,在描繪顯示和圖像顯示中用于顯示的數(shù)據(jù)具有在一次從主存儲單元7被讀出并畫面顯示后再次被參照的概率低的特征。因此,在進(jìn)行描繪顯示和圖像顯示的系統(tǒng)中,可以使存儲新的數(shù)據(jù)一方的操作與把已參照的數(shù)據(jù)保持在高速緩沖存儲器3中相比高速緩存命中率更高。
因而,通過在例如進(jìn)行描繪顯示和圖像顯示的系統(tǒng)中使用在實施例1說明的預(yù)取控制電路,可以使數(shù)據(jù)訪問高速動作,可以提高系統(tǒng)的處理性能。
進(jìn)而,實施例1中的預(yù)取控制電路100通過在主存儲單元7中把位于與有效高速緩存行對應(yīng)的數(shù)據(jù)的下一位置的數(shù)據(jù)與無效高速緩存行進(jìn)行替換,可以把被存儲在主存儲單元7的連續(xù)區(qū)域上的數(shù)據(jù)作為將來可能被參照的新的數(shù)據(jù)存儲在高速緩沖存儲器3中。
另外,在進(jìn)行描繪顯示和圖像顯示的系統(tǒng)中,因為大多是把一畫面部分的一連串的數(shù)據(jù)存儲在主存儲單元7的連續(xù)區(qū)域中,所以通過把被存儲在主存儲單元7的連續(xù)區(qū)域上的數(shù)據(jù)存儲在高速緩沖存儲器3上,可以提高高速緩存命中率。
因而,通過例如在進(jìn)行描繪顯示和圖像顯示的系統(tǒng)中使用在實施例1中說明的預(yù)取控制電路100,可以使數(shù)據(jù)訪問高速動作,可以提高系統(tǒng)的處理性能。
另外,在實施例1中的預(yù)取控制電路100中,在進(jìn)行預(yù)取控制時,不需要為了使用高速緩沖存儲器3的有效位而多余的標(biāo)志。進(jìn)而,因為也不需要為了把預(yù)取的數(shù)據(jù)存儲在高速緩沖存儲器3中的多余的存儲器,所以可以實現(xiàn)以更少的硬件資源控制高速緩沖存儲器3的電路。
但是,與高速緩沖存儲器3的有效位分開設(shè)置標(biāo)志也可以,與高速緩沖存儲器3分開設(shè)置存儲器也可以。
實施例2在以上的實施例1中,說明了當(dāng)運(yùn)算處理單元1訪問高速緩沖存儲器3并且高速緩存命中的情況下進(jìn)行預(yù)取的動作。
在實施例2中,根據(jù)圖2說明運(yùn)算處理單元1訪問高速緩沖存儲器3并且高速緩存未命中的情況下的預(yù)取動作。
在圖2中與上述實施例1一樣,運(yùn)算處理單元1訪問高速緩沖存儲器3(步驟S1),高速緩存命中判斷單元2判斷在高速緩沖存儲器3內(nèi)是否存在運(yùn)算處理單元1的訪問對象數(shù)據(jù)(步驟S2)。
當(dāng)在高速緩沖存儲器中不存在訪問的數(shù)據(jù)而高速緩存未命中的情況下,無效數(shù)據(jù)判斷單元4把全部的高速緩存行判斷為無效,使全部的高速緩存行的有效位無效(步驟S10)。
以下,高速緩存命中判斷單元2為了讀出與高速緩存未命中的地址對應(yīng)的高速緩存行的數(shù)據(jù),而向主存儲控制單元發(fā)出訪問請求。主存儲控制單元6從主存儲單元7中讀出數(shù)據(jù)并存儲到高速緩沖存儲器3,把該高速緩存行的有效位設(shè)置為有效(步驟S11)。
另外,高速緩存命中判斷單元2在步驟S11中從主存儲單元7讀出數(shù)據(jù)后,把讀出的訪問對象的數(shù)據(jù)輸出到運(yùn)算處理單元1(步驟S12)。
以下,進(jìn)行與上述實施例1一樣的處理。
預(yù)取控制單元5判斷在高速緩沖存儲器3中是否存在有效高速緩存行和無效高速緩存行的雙方(步驟S6)。
此時,在高速緩存未命中后因為在步驟S11中從主存儲單元7中只讀入數(shù)據(jù)的高速緩存行有效而除此此外無效,所以預(yù)取控制單元5檢測出存在有效高速緩存行和無效高速緩沖行的雙方。
預(yù)取控制單元5從有效高速緩存行的地址中生成預(yù)取對象的地址(步驟S7)。
預(yù)取控制單元5從主存儲單元7中讀出接著與有效高速緩存行對應(yīng)的數(shù)據(jù)后面的數(shù)據(jù),為了把它與無效高速緩存行替換并存儲在高速緩沖存儲器3中,而生成預(yù)取對象的地址。在此,作為替換對象的無效高速緩存行選擇有效的高速緩存行的下一輸入的高速緩存行。另外,對于有效高速緩存行的數(shù)據(jù),把在主存儲單元7內(nèi)位于下一位置的數(shù)據(jù)地址設(shè)置為預(yù)取對象的地址。
以下,預(yù)取控制單元5為了讀出在步驟S7中生成的與預(yù)取對象地址對應(yīng)的數(shù)據(jù),向主存儲控制單元6發(fā)出地址請求。而后,主存儲控制單元6從主存儲器7讀出數(shù)據(jù)并在高速緩沖存儲器3中存儲數(shù)據(jù),把存儲的高速緩存行的有效位設(shè)置為有效(步驟S8)。
通過該預(yù)取的執(zhí)行,可以把與新的地址對應(yīng)的連續(xù)的數(shù)據(jù)存儲在高速緩沖存儲器3中。
預(yù)取控制單元5在步驟S8的預(yù)取執(zhí)行后,再次判斷在高速緩沖存儲器3中是否存在有效高速緩存行和無效高速緩存行雙方(步驟S6)。
此時,在高速緩存未命中判斷后從主存儲單元7讀入數(shù)據(jù)的高速緩存行和在預(yù)取中讀入的高速緩存行的2個有效,而除此外的無效。因此,預(yù)取控制單元5檢測出存在有效高速緩存行和無效高速緩存行的兩方。
預(yù)取控制單元5從主存儲單元7中讀出接著與有效高速緩存行對應(yīng)的數(shù)據(jù)后面的數(shù)據(jù),為了把它與無效高速緩存行替換并存儲在高速緩沖存儲器3中,而生成預(yù)取對象的地址。在此,作為替換對象的無效高速緩存行選擇接著2個有效高速緩存行的下一入口的高速緩存行。另外,對于第2個有效高速緩存行的數(shù)據(jù),把在主存儲單元7內(nèi)位于下一位置的數(shù)據(jù)地址作為預(yù)取對象的地址。
以下,預(yù)取控制單元5為了讀出與在步驟S7中生成的預(yù)取對象的地址對應(yīng)的數(shù)據(jù),向主存儲控制單元6發(fā)出地址請求。而后,主存儲控制單元6從主存儲單元7中讀出數(shù)據(jù)并在高速緩沖存儲器3中存儲數(shù)據(jù),把已存儲的高速緩存行的有效位設(shè)置為有效(步驟S8)。
通過該預(yù)取的執(zhí)行,可以把與新的地址對應(yīng)的連續(xù)的數(shù)據(jù)存儲在高速緩沖儲存器3中。
如上所述直至無效高速緩存行沒有為止重復(fù)執(zhí)行步驟S6至步驟S8的一連串的預(yù)取處理。當(dāng)無效高速緩存行沒有了的情況下,不進(jìn)行以上的預(yù)取動作而結(jié)束處理(步驟S9)。
通過這樣進(jìn)行預(yù)取處理,可以在高速緩沖存儲器3中存儲在主存儲單元7的連續(xù)的區(qū)域上存儲著的數(shù)據(jù)。
如上所述,當(dāng)在高速緩沖存儲器3中不存在運(yùn)算處理單元1的訪問請求的數(shù)據(jù)而高速緩沖未命中的情況下,判斷為在高速緩沖存儲器3內(nèi)不存在運(yùn)算處理單元1訪問請求的數(shù)據(jù)和在主存儲單元7中連續(xù)的區(qū)域上存儲的數(shù)據(jù)的概率高,把全部的高速緩存行設(shè)置為無效,通過執(zhí)行預(yù)取可以把存儲在上述連續(xù)的區(qū)域上的數(shù)據(jù)取入高速緩沖存儲器3。
由此,例如在進(jìn)行描繪顯示和圖像顯示的系統(tǒng)中,因為大多是把一畫面部分的一連串的數(shù)據(jù)存儲在主存儲單元7內(nèi)的連續(xù)的區(qū)域中,所以通過把被存儲在主存儲單元7的連續(xù)區(qū)域上的數(shù)據(jù)存儲在高速緩沖存儲器3上,來提高高速緩存命中率,可以使運(yùn)算處理單元1的數(shù)據(jù)訪問高速動作。
實施例3在上述實施例1中,說明了運(yùn)算處理單元1對于前次訪問的高速緩存行的下一入口的高速緩存行的數(shù)據(jù)進(jìn)行訪問時進(jìn)行預(yù)取的動作。
在實施例3中,根據(jù)圖2說明不是運(yùn)算處理單元1前次訪問的高速緩存行的下一入口的高速緩存行,而是對已離開多個的入口的高速緩存行的數(shù)據(jù)進(jìn)行訪問而高速緩存命中時的預(yù)取動作。
在此,假設(shè)在高速緩沖存儲器3中在有效狀態(tài)下存儲與主存儲單元7中前次訪問的數(shù)據(jù)連續(xù)存儲的數(shù)據(jù)。
運(yùn)算處理單元1訪問高速緩沖存儲器3(步驟S1),高速緩存命中判斷單元2判斷在高速緩沖存儲器3內(nèi)是否存在運(yùn)算處理單元1的訪問對象數(shù)據(jù)(步驟S2)。
當(dāng)在高速緩沖存儲器中不存在訪問對象數(shù)據(jù)而高速緩存未命中的情況下,無效數(shù)據(jù)判斷單元4把全部的高速緩存行設(shè)置為無效(步驟S10),其后的處理進(jìn)行上述實施例2所示的動作。
當(dāng)訪問對象數(shù)據(jù)存在于高速緩沖存儲器3中的情況下,高速緩存命中判斷單元2輸出從高速緩沖存儲器3中取出數(shù)據(jù)并取出到運(yùn)算處理單元1的數(shù)據(jù)(步驟S3)。
以下,無效數(shù)據(jù)判斷單元4判斷運(yùn)算處理單元1的訪問對象數(shù)據(jù)是否是與前次訪問的數(shù)據(jù)同樣的高速緩存行(步驟S4)。
當(dāng)無效數(shù)據(jù)判斷單元4的判斷結(jié)果是此次訪問的數(shù)據(jù)是與前次訪問的數(shù)據(jù)相同的高速緩存行的情況下結(jié)束處理。因而預(yù)取動作不發(fā)生(步驟S9)。
當(dāng)無效數(shù)據(jù)判斷單元4的判斷結(jié)果是此次訪問的數(shù)據(jù)與前次訪問的高速緩存行不同,進(jìn)而也不是前次訪問的高速緩存行的下一入口的高速緩存行,而是已離開多個的入口的高速緩存行的數(shù)據(jù)的情況下,無效數(shù)據(jù)判斷單元4將從前次訪問的高速緩存行直至此次訪問的高速緩存行的前一個為止設(shè)置為無效,把這些高速緩存行的有效位設(shè)置為無效。在上述實施例1中因為把前次訪問的高速緩存行的下一高速緩存行作為訪問對象(步驟S5),所以把前次訪問的高速緩存行設(shè)置為無效。在實施例3中因為把從前次訪問的高速緩存行已離開多個的高速緩存行作為訪問對象,所以在運(yùn)算處理單元1中跳過的高速緩存行也和前次訪問過的高速緩存行一樣設(shè)置為無效。
以下,預(yù)取控制單元5判斷在高速緩沖存儲器3中是否存在有效高速緩存行和無效高速緩存行雙方(步驟S6)。
因為從前次訪問過的高速緩存行到此次訪問過的高速緩存行的前一個為止的高速緩存行無效,除此此外的高速緩存行有效,所以預(yù)取控制單元5檢測出有效高速緩存行和無效高速緩存行雙方存在。
以下,預(yù)取控制單元5從有效高速緩存行的地址中生成預(yù)取對象的地址(步驟S7)。
預(yù)取控制單元5從主存儲單元7中讀出接著與有效高速緩存行對應(yīng)的數(shù)據(jù)后面的數(shù)據(jù),為了把它與無效高速緩存行替換并存儲在高速緩沖存儲器3中,而生成預(yù)取對象的地址。在此,作為替換對象的無效高速緩存行選擇前次訪問過的高速緩存行。另外,對于被存儲在替換對象的無效高速緩存行的前一個入口中的有效高速緩存行的數(shù)據(jù),把在主存儲單元7內(nèi)位于下一位置上的數(shù)據(jù)的地址作為預(yù)取對象的地址。
以下,預(yù)取控制單元5為了從主存儲單元7讀出與在步驟S7中生成的預(yù)取對象的地址對應(yīng)的數(shù)據(jù),而向主存儲控制單元6發(fā)出訪問請求。主存儲控制單元6從主存儲單元7中讀出數(shù)據(jù)并在高速緩沖存儲器3中存儲數(shù)據(jù),把該高速緩存行的有效位設(shè)置為有效(步驟S8)。
通過該預(yù)取的執(zhí)行,可以把與新的地址對應(yīng)的連續(xù)的數(shù)據(jù)存儲在高速緩沖存儲器3中。
預(yù)取控制單元5在步驟S8的預(yù)取執(zhí)行后,再次判斷在高速緩沖存儲器3中是否存在有效高速緩存行和無效高速緩存行雙方(步驟S6)。
在步驟S5中在把從前次訪問過的高速緩存行到此次訪問過的高速緩存行的前一個為止的高速緩存行設(shè)置為無效后,因為在步驟S8中只把一個高速緩存行設(shè)置為有效,所以預(yù)取控制單元5檢測出存在有效高速緩存行和無效高速緩存行雙方。
以下,預(yù)取控制單元5為了從主存儲單元7中讀出被存儲在與有效高速緩存行的數(shù)據(jù)連續(xù)的區(qū)域上的數(shù)據(jù),并把它與無效的高速緩存行替換而存儲在高速緩沖存儲器3中,而生成預(yù)取對象的地址。在此,作為替換對象的無效的高速緩存行選擇在上述步驟S8中成為有效的高速緩存行的下一入口的高速緩存行。另外,對于被存儲在作為替換對象的無效高速緩存行的前一個入口中的有效高速緩存行的數(shù)據(jù),把在主存儲單元7內(nèi)位于下一位置的數(shù)據(jù)的地址設(shè)置為預(yù)取對象的地址。
以下,預(yù)取控制單元5為了從主存儲單元7中讀出與生成的預(yù)取對象地址對應(yīng)的數(shù)據(jù),而向主存儲控制單元6發(fā)出訪問請求。主存儲控制單元6從主存儲單元7讀出數(shù)據(jù)并在緩沖存儲器3中存儲數(shù)據(jù),把該高速緩存行的有效位設(shè)置為有效(步驟S8)。
通過執(zhí)行該預(yù)取,可以把在主存儲單元7中與有效高速緩存行數(shù)據(jù)連續(xù)存儲的數(shù)據(jù)存儲在高速緩沖存儲器3中。
以后,如上所述在到無效高速緩存行沒有為止,重復(fù)執(zhí)行從步驟S6到步驟S8的一連串的預(yù)取處理。當(dāng)無效的高速緩存行沒有了的情況下,結(jié)束預(yù)取動作(步驟S9)。
通過這樣進(jìn)行預(yù)取處理,可以在高速緩沖存儲器3中存儲在主存儲單元7的連續(xù)區(qū)域上存儲著的數(shù)據(jù)。
運(yùn)算處理單元1并不是把前次訪問過的高速緩存行的下一高速緩存行作為訪問對象,而是把已離開多個的高速緩存行的數(shù)據(jù)作為訪問對象,當(dāng)高速緩存命中判斷單元2判斷為高速緩存命中的情況下,判斷為對在運(yùn)算處理單元1中跳過的高速緩存行進(jìn)行訪問的概率低。因而,在本實施例3中,把從前次訪問過的高速緩存行到此次訪問過的高速緩存行的前一個為止的高速緩存行設(shè)置為無效,其后,通過執(zhí)行預(yù)取,在主存儲單元7中,可以把與此次訪問過的數(shù)據(jù)連續(xù)的區(qū)域上存儲的數(shù)據(jù)讀入高速緩沖儲存器3。
例如在進(jìn)行描繪顯示和圖像顯示的系統(tǒng)中,因為大多是把一畫面份的一連串?dāng)?shù)據(jù)存儲在主存儲單元7的連續(xù)的區(qū)域上,所以對連續(xù)存儲的數(shù)據(jù)訪問的概率高,對于已跳過的高速緩存行的數(shù)據(jù)訪問的概率低。因而,因為通過從高速緩沖存儲器3除去已跳過的數(shù)據(jù),把與新訪問的數(shù)據(jù)連續(xù)的區(qū)域上存儲的數(shù)據(jù)存儲到高速緩沖存儲器3中,可以提高命中率,所以運(yùn)算處理單元1可以高速地進(jìn)行數(shù)據(jù)訪問。
實施例4在以上的實施例中,說明了運(yùn)算處理單元1根據(jù)運(yùn)算處理結(jié)果在訪問高速緩沖儲存器時進(jìn)行預(yù)取的情況。
在實施例4中,說明運(yùn)算處理單元1在運(yùn)算處理中根據(jù)分支指令和運(yùn)算處理數(shù)據(jù)計算下一需要的數(shù)據(jù)地址,對高速緩沖存儲器進(jìn)行預(yù)讀訪問時的預(yù)取動作。
圖3是本實施例4中的運(yùn)算處理單元1的構(gòu)成圖。
在圖3中,11是從高速緩沖存儲器3讀入數(shù)據(jù),分成指令數(shù)據(jù)和運(yùn)算數(shù)據(jù)的高速緩存訪問單元。
12是對高速緩存訪問單元11分出的指令數(shù)據(jù)進(jìn)行指令的譯碼處理的指令譯碼單元。
13是根據(jù)指令譯碼單元12譯碼的指令對運(yùn)算指令進(jìn)行運(yùn)算處理的運(yùn)算單元。
14是根據(jù)分支指令和運(yùn)算處理數(shù)據(jù)計算下一需要的數(shù)據(jù)的地址,對高速緩存訪問單元11進(jìn)行預(yù)讀訪問請求的預(yù)讀訪問單元。
圖4是展示實施例4中的運(yùn)算處理單元1的動作的圖。
關(guān)于實施例4中的運(yùn)算處理單元1的動作,根據(jù)圖4說明從運(yùn)算處理單元1向高速緩沖存儲器3進(jìn)行通常訪問的情況和進(jìn)行預(yù)讀訪問的情況。
首先說明不是從運(yùn)算處理單元1向高速緩沖存儲器3進(jìn)行預(yù)讀訪問而是進(jìn)行通常的訪問時的動作。
在運(yùn)算處理單元1中,高速緩存訪問單元11讀入取出到高速緩沖存儲器3中的數(shù)據(jù),把讀入的數(shù)據(jù)輸出到指令譯碼單元12(步驟S101)。
指令譯碼單元12譯碼處理已讀入的指令數(shù)據(jù),把譯碼處理后的指令數(shù)據(jù)輸出到運(yùn)算單元。另外,當(dāng)譯碼處理的結(jié)果是指令數(shù)據(jù)是需要運(yùn)算數(shù)據(jù)的指令的情況下,向高速緩存訪問單元11請求運(yùn)算數(shù)據(jù)的讀入(步驟S102)。
高速緩存訪問單元11在運(yùn)算數(shù)據(jù)讀入后,從高速緩沖存儲器3讀入下一(第2)數(shù)據(jù)(步驟S103)。
另外,運(yùn)算單元13如果讀入指令數(shù)據(jù)和運(yùn)算數(shù)據(jù)而可以運(yùn)算,則進(jìn)行運(yùn)算處理(步驟S104)。
在運(yùn)算單元13的運(yùn)算處理中,指令譯碼單元12進(jìn)行下一(第2)指令數(shù)據(jù)的譯碼處理。而后,當(dāng)指令數(shù)據(jù)是需要運(yùn)算數(shù)據(jù)的指令的情況下,對高速緩存訪問單元11進(jìn)行運(yùn)算數(shù)據(jù)的讀入請求(步驟S105)。
高速緩存訪問單元11在運(yùn)算數(shù)據(jù)讀入后,從高速緩沖存儲器3讀入下一(第3)數(shù)據(jù)(步驟S106)。
運(yùn)算單元13在對第1指令數(shù)據(jù)的運(yùn)算處理結(jié)束時,輸入指令譯碼單元12譯碼的下一(第2)指令并開始運(yùn)算處理(步驟S107)。
而后,指令譯碼單元12進(jìn)行下一(第3)數(shù)據(jù)的譯碼處理。另外,當(dāng)指令數(shù)據(jù)是需要運(yùn)算數(shù)據(jù)的指令的情況下,向高速緩存訪問單元11請求讀入運(yùn)算數(shù)據(jù)(步驟S108)。
在高速緩存訪問單元11進(jìn)行運(yùn)算數(shù)據(jù)讀入后,從高速緩沖存儲器3進(jìn)行下一(第4)數(shù)據(jù)的讀入。
這樣運(yùn)算處理單元1從高速緩沖存儲器3中讀入指令數(shù)據(jù)和運(yùn)算數(shù)據(jù)繼續(xù)處理。如果運(yùn)算處理單元1讀入結(jié)束指令或者收到結(jié)束信號,則結(jié)束來自高速緩沖存儲器3的指令數(shù)據(jù)和運(yùn)算數(shù)據(jù)的讀入。
以下說明從運(yùn)算處理單元1向高速緩沖存儲器3進(jìn)行預(yù)讀訪問時的動作。
在上述通常訪問的實施例3中假設(shè)在第3指令數(shù)據(jù)中存儲分支指令。
在上述通常訪問的實施例中,第3指令數(shù)據(jù)在運(yùn)算單元1對第1指令的運(yùn)算處理中從高速緩沖存儲器3被讀入高速緩存訪問單元11(步驟S1061)。
其后,預(yù)讀訪問單元14在直至運(yùn)算單元13結(jié)束第1指令運(yùn)算為止的期間,從第3指令數(shù)據(jù)中識別分支指令,進(jìn)行包含在指令數(shù)據(jù)中的分支地址所示的數(shù)據(jù)的預(yù)讀訪問請求(步驟S1062)。
對于包含在運(yùn)算處理單元1的預(yù)讀地址單元14發(fā)出的預(yù)讀訪問請求中的分支地址,當(dāng)高速緩存命中判斷單元2判斷為高速緩存未命中的情況下,如上述實施例2所示那樣進(jìn)行預(yù)取動作,把在分支地址以后的連續(xù)區(qū)域上存儲的數(shù)據(jù)存儲在高速緩沖存儲器3中(步驟S1063)。
運(yùn)算單元13在對第1指令的運(yùn)算處理結(jié)束時,對第2指令數(shù)據(jù)開始運(yùn)算處理(步驟S107)。
與其并行地,指令譯碼單元12進(jìn)行下一(第3)數(shù)據(jù)的譯碼處理。譯碼處理的結(jié)果,指令譯碼單元12識別分支指令。而后,向高速緩沖訪問單元11請求分支地址的數(shù)據(jù)讀取,訪問高速緩沖存儲器3(步驟S108)。
在此,與分支地址對應(yīng)的數(shù)據(jù)因為全部由預(yù)讀訪問單元14存儲在高速緩沖存儲器3中,所以高速緩存命中判斷單元2在高速緩存命中后,可以立即向運(yùn)算處理單元1的高速緩存訪問單元11取入分支地址的數(shù)據(jù)。
進(jìn)行上述預(yù)讀訪問的情況下的實施例就是預(yù)讀分支指令所示的分支地址的數(shù)據(jù),但對于在運(yùn)算處理過程中生成的地址的數(shù)據(jù),運(yùn)算處理單元1也可以從高速緩沖存儲器3中進(jìn)行預(yù)讀訪問。
如上所述,因為運(yùn)算處理單元1在運(yùn)算處理中從分支指令和運(yùn)算處理數(shù)據(jù)計算下一個需要數(shù)據(jù)的地址,對高速緩沖存儲器3進(jìn)行預(yù)讀訪問,所以在運(yùn)算處理后的分支目的的數(shù)據(jù)讀入前,可以在高速緩沖存儲器3內(nèi)取入下一個必要的數(shù)據(jù)。因而對于來自運(yùn)算處理單元1的訪問,因為可以減少因高速緩存未命中引起的延遲發(fā)生所以可以高速動作。
實施例5在以上的實施例中,說明了預(yù)取控制單元5直至無效高速緩沖行沒有為止進(jìn)行預(yù)取動作的情況。
在本實施例5中說明當(dāng)來自運(yùn)算處理單元1的讀入訪問頻度少的情況下,被存儲在高速緩沖儲存器3中的有效高速緩沖行數(shù)多時禁止預(yù)取動作的情況。
圖5是展示實施例5中的預(yù)取控制電路100的構(gòu)成的構(gòu)成框圖。
在圖5中,從1至7與在上述實施例1中說明的一樣。但是當(dāng)預(yù)取控制單元5有預(yù)取禁止請求的情況下,即使存在有效高速緩存行和無效高速緩存行也不進(jìn)行預(yù)取動作。
8是在從運(yùn)算處理單元1到高速緩沖存儲器3的讀入訪問頻度少,并且,當(dāng)有在基準(zhǔn)值以上的有效高速緩沖行數(shù)時禁止預(yù)取動作的測定預(yù)取禁止單元。
80時具備頻度測定單元81和有效數(shù)測定單元82的測定單元。
81是測定從運(yùn)算處理單元1向高速緩沖存儲器3的讀入訪問頻度的頻度測定單元。
82是測定高速緩沖存儲器3的有效高速緩存行數(shù)的有效數(shù)測定單元。
83是存儲用于判斷訪問頻度少的訪問頻度基準(zhǔn)值和有效高速緩存行數(shù)的基準(zhǔn)值的基準(zhǔn)值存儲單元。
圖6是展示實施例5中的測定預(yù)取禁止單元8的動作的流程圖。
根據(jù)圖6說明本實施例5中的測定預(yù)取禁止單元8的動作。
在此在基準(zhǔn)值存儲單元83中,假設(shè)設(shè)定有判斷從運(yùn)算處理單元1到高速緩沖存儲器3的讀入訪問少的訪問頻度基準(zhǔn)值、相對訪問頻度的基準(zhǔn)值表示具有充分的有效高速緩存行數(shù)的有效數(shù)基準(zhǔn)值。
當(dāng)頻度測定單元81測定的值比被存儲在基準(zhǔn)存儲單元83中的訪問頻度的基準(zhǔn)值大的情況下,測定預(yù)取禁止單元8對預(yù)取控制單元5不進(jìn)行預(yù)取禁止請求(步驟S201)。
當(dāng)頻度測定單元81測定的值小于等于訪問頻度的基準(zhǔn)值的情況下,測定預(yù)取禁止單元8判斷有效數(shù)測定單元82測定的值是否大于等于被存儲于基準(zhǔn)值存儲單元83中的有效數(shù)基準(zhǔn)值,在不大于等于有效數(shù)基準(zhǔn)值時對預(yù)取控制單元5不進(jìn)行預(yù)取禁止請求(步驟S202)。
當(dāng)頻度測定單元81測定的值小于等于訪問頻度的基準(zhǔn)值,進(jìn)而有效數(shù)測定單元82測定的值大于等于有效數(shù)基準(zhǔn)值的情況下,測定預(yù)取禁止單元8對預(yù)取控制單元5進(jìn)行預(yù)取禁止請求(步驟S203)。
當(dāng)預(yù)取控制單元5有來自測定預(yù)取禁止單元8的預(yù)取禁止請求的情況下,即使檢測出在圖2的步驟S6中有效的高速緩存行和無效的高速緩存行,也不生成預(yù)取地址,不進(jìn)行預(yù)取動作。
另外,在測定預(yù)取禁止單元8對預(yù)取禁止單元5進(jìn)行預(yù)取禁止請求后,當(dāng)頻度測定單元81測定的值比訪問頻度的基準(zhǔn)值還大的情況,和有效數(shù)測定單元82測定的值比有效數(shù)基準(zhǔn)值少的情況下,測定預(yù)取禁止單元8對預(yù)取控制單元5進(jìn)行預(yù)取禁止解除請求。
在此,上述訪問頻度的基準(zhǔn)值和有效數(shù)基準(zhǔn)是任意的值。
另外,在上述說明中,說明了當(dāng)訪問頻度小于等于基準(zhǔn)值并且高速緩存行的有效數(shù)大于等于基準(zhǔn)值的情況下禁止預(yù)取的情況。但是,也可以是訪問頻度小于等于基準(zhǔn)值,或者高速緩存行的有效數(shù)大于等于基準(zhǔn)值時進(jìn)行預(yù)取禁止。
因為當(dāng)訪問頻度少的情況下從主存儲單元7中讀出多個數(shù)據(jù)并存儲在高速緩沖存儲器3中的必要性低,所以理想的是如上所述禁止因預(yù)取動作對主存儲單元7的訪問。
例如,當(dāng)在相對分支指令的分支地址目的的數(shù)據(jù)讀入中高速緩存未命中的情況下,因為被存儲在高速緩沖存儲器7中的數(shù)據(jù)全部無效,所以可以把此前無效地進(jìn)行從主存儲單元7預(yù)取取入的處理抑制為最小限度。
由此,因為可以減少因預(yù)取動作對主存儲單元7的訪問,所以可以減少在預(yù)取動作中消耗的電力。
實施例6在以上的實施例5中,說明了當(dāng)來自運(yùn)算處理單元1的讀入訪問的頻度少的情況下,高速緩存行的有效數(shù)多時禁止預(yù)取動作的情況。
在實施例6中,說明從高速緩沖存儲器3由主存儲單元7中讀入的數(shù)據(jù)中識別分支指令和結(jié)束指令,當(dāng)有這些指令的情況下禁止預(yù)取動作的情況。
圖7是展示實施例6中的預(yù)取控制電路100的構(gòu)成的構(gòu)成框圖。
在圖7中,1至7與在實施例1中說明的一樣。但是當(dāng)預(yù)取控制單元5有預(yù)取禁止請求的情況下,即使在存在有效高速緩存行和無效緩沖行的情況下也不進(jìn)行預(yù)取動作。
9是從高速緩沖存儲器3由主存儲單元7讀入的數(shù)據(jù)中識別分支指令和結(jié)束指令,當(dāng)有這些指令的情況下禁止預(yù)取動作,另外,當(dāng)高速緩沖存儲器3存儲了與分支指令、結(jié)束指令不同的指令的情況下結(jié)束禁止控制的指令預(yù)取禁止單元。
91是從由主存儲單元7讀入的數(shù)據(jù)中識別分支指令和結(jié)束指令的分支結(jié)束檢測單元。
以下說明動作。
主存儲控制單元6在從主存儲單元7中讀入數(shù)據(jù)時,把該數(shù)據(jù)發(fā)送到高速緩沖存儲器3和指令預(yù)取禁止單元9。
分支結(jié)束檢測單元91分析發(fā)送給指令預(yù)取禁止單元9的數(shù)據(jù),進(jìn)行是否有分支指令或者結(jié)束指令的識別。
當(dāng)在送到指令預(yù)取禁止單元9的數(shù)據(jù)中分支指令和結(jié)束指令哪個都不存在的情況下,指令預(yù)取禁止單元9對預(yù)取控制單元5不進(jìn)行預(yù)取禁止請求。
在發(fā)送到指令預(yù)取禁止單元9的數(shù)據(jù)中存在分支指令和結(jié)束指令的至少一方的情況下,指令預(yù)取禁止單元9對預(yù)取控制單元5進(jìn)行預(yù)取禁止請求。
預(yù)取控制單元5當(dāng)有來自指令預(yù)取禁止單元9的預(yù)取禁止請求的情況下,即使檢測出在圖2的步驟S6中有效的高速緩存行和無效的高速緩沖行也不生成預(yù)取地址,不進(jìn)行預(yù)取動作。
另外,在指令預(yù)取禁止單元9對預(yù)取控制單元5進(jìn)行了預(yù)取禁止請求后,當(dāng)高速緩沖存儲器3存儲與分支指令和結(jié)束指令哪個都不一樣的指令數(shù)據(jù)的情況下,指令預(yù)取禁止單元9對預(yù)取控制單元5進(jìn)行預(yù)取禁止解除請求。
當(dāng)高速緩沖儲存器3存儲有分支指令和結(jié)束指令的情況下,即使在高速緩沖存儲器3中存儲有與此后的連續(xù)的地址對應(yīng)的數(shù)據(jù),從運(yùn)算處理單元1訪問的概率也低。通過以上方法,可以禁止因預(yù)取動作對主存儲單元7的無效訪問。
例如當(dāng)在對分支指令的分支地址的數(shù)據(jù)讀入中高速緩存未命中的情況下,因為被存儲在高速緩沖存儲器7中的數(shù)據(jù)全部無效,所以可以把此前無效地進(jìn)行從主存儲單元7預(yù)取取入的處理抑制為最小限度。由此,因為可以減少因預(yù)取動作對主存儲單元7的訪問,所以可以減少因預(yù)取動作引起的消耗電力。
圖8是上述各實施例中的預(yù)取控制電路100的硬件構(gòu)成圖。
在圖8中,預(yù)取控制電路100具備執(zhí)行程序的CPU911。CPU911經(jīng)由總線912與ROM913、RAM914、磁盤裝置920連接。
RAM914是非易失性存儲器的一例。ROM913、磁盤裝置920是非易失性存儲器的一例。這些是存儲裝置或者存儲單元的一例。
上述高速緩沖存儲器3主要把Static RAM作為存儲介質(zhì),主存儲單元7把Dynamic RAM和磁盤裝置920作為存儲介質(zhì)。
另外,上述運(yùn)算處理單元1把寄存器915作為存儲介質(zhì)進(jìn)行運(yùn)算處理。
另外,在上述各實施例的說明中作為“~單元”說明的當(dāng)然也可以用存儲在ROM913中的固件實現(xiàn)?;蛘撸部梢灾挥密浖?,或者只用硬件,或者軟件和硬件的組合,進(jìn)而,通過與固件的組合實現(xiàn)。
另外,也可以使用采用磁盤裝置920、FD、光盤、CD、MD、DVD等其它記錄介質(zhì)的記錄裝置存儲實施上述各實施例的程序。
權(quán)利要求
1.一種控制電路,其特征在于包括存儲數(shù)據(jù)的主存儲單元;以特定大小單位作為高速緩存行讀入已存儲在上述主存儲單元中的數(shù)據(jù)并存儲的高速緩沖存儲器;輸入已存儲在上述高速緩沖存儲器中的數(shù)據(jù),根據(jù)已輸入的數(shù)據(jù)進(jìn)行運(yùn)算處理的運(yùn)算處理單元;判斷是表示作為在上述運(yùn)算處理單元進(jìn)行的運(yùn)算處理中使用的數(shù)據(jù)的對象數(shù)據(jù)已存儲在上述高速緩沖存儲器中的高速緩存命中,還是表示對象數(shù)據(jù)未被存儲在上述高速緩沖存儲器中的高速緩存未命中,當(dāng)判斷為高速緩存未命中的情況下,從上述主存儲單元中以特定大小單位取得對象數(shù)據(jù)并作為高速緩存行存儲在上述高速緩沖存儲器中的高速緩存命中判斷單元;當(dāng)上述高速緩存命中判斷單元判斷為高速緩存命中的情況下,判斷包含對象數(shù)據(jù)的高速緩存行和包含在前次計算處理中使用的數(shù)據(jù)的高速緩存行的異同的數(shù)據(jù)判斷單元;當(dāng)上述數(shù)據(jù)判斷單元判斷為包含對象數(shù)據(jù)的高速緩存行和包含在前次的運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行不同的情況下,控制以特定大小單位取得被存儲在上述主存儲單元中的數(shù)據(jù),把取得的特定大小單位的數(shù)據(jù)與包含在前次的計算處理中使用的數(shù)據(jù)的高速緩存行進(jìn)行替換,作為高速緩存行存儲在上述高速緩沖存儲器中,當(dāng)上述數(shù)據(jù)判斷單元判斷為包含對象數(shù)據(jù)的高速緩存行和包含在前次計算處理中使用的數(shù)據(jù)的高速緩存行相同的情況下,控制不替換被存儲在上述高速緩沖存儲器中的包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行的控制單元。
2.根據(jù)權(quán)利要求1所述的控制電路,其特征在于在上述控制單元,在把存儲在上述主存儲單元中的數(shù)據(jù)與高速緩存行進(jìn)行替換并存儲在上述高速緩沖存儲器中時,取得被存儲在相對于與用存儲于上述主存儲單元中的數(shù)據(jù)替換的高速緩存行以外的高速緩存行對應(yīng)的上述主存儲單元的數(shù)據(jù)連續(xù)的區(qū)域上的數(shù)據(jù),把取得的數(shù)據(jù)與高速緩存行進(jìn)行替換并存儲在上述高速緩沖存儲器中。
3.根據(jù)權(quán)利要求1所述的控制電路,其特征在于上述高速緩沖存儲器以特定大小單位作為高速緩存行多次讀入在上述主存儲單元的連續(xù)區(qū)域上存儲的數(shù)據(jù)并存儲在連續(xù)的入口中,上述控制單元當(dāng)上述數(shù)據(jù)判斷單元判斷為包含對象數(shù)據(jù)的高速緩存行和包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行不同的情況下,以特定大小單位多次取得被存儲在上述主存儲單元中的數(shù)據(jù),把已取得的特定大小單位的多個數(shù)據(jù)與從包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行的入口到包含對象數(shù)據(jù)的高速緩存行的入口的前一個入口為止的高速緩存行進(jìn)行替換,存儲在上述高速緩沖存儲器中。
4.根據(jù)權(quán)利要求1所述的控制電路,其特征在于還包括指令禁止單元,它分析包含在被存儲于上述高速緩沖存儲器中的高速緩存行中的數(shù)據(jù),當(dāng)分析的結(jié)果是檢測出表示分支指令的數(shù)據(jù)和表示結(jié)束指令的數(shù)據(jù)的至少一個數(shù)據(jù)的情況下,上述控制單元禁止把被存儲在上述主存儲單元中的數(shù)據(jù)與已存儲在上述高速緩沖存儲器中的高速緩存行進(jìn)行替換,存儲在上述高速緩沖存儲器中的操作。
5.根據(jù)權(quán)利要求1所述的控制電路,其特征在于上述運(yùn)算處理單元具備從上述高速緩沖存儲器輸入數(shù)據(jù)的高速緩存訪問單元;譯碼上述高速緩存訪問單元輸入的數(shù)據(jù)的譯碼單元;根據(jù)上述譯碼單元譯碼的數(shù)據(jù)進(jìn)行運(yùn)算處理的運(yùn)算單元,其中上述高速緩存訪問單元從上述高速緩沖存儲器輸入已輸入完的數(shù)據(jù)以后的數(shù)據(jù),分析已輸入的數(shù)據(jù),當(dāng)分析的數(shù)據(jù)是表示分支指令的數(shù)據(jù)的情況下,與上述運(yùn)算單元的運(yùn)算處理并行地,從上述主存儲單元中取得被存儲在已分析數(shù)據(jù)所示的分支目標(biāo)的地址中的數(shù)據(jù),存儲到上述高速緩沖存儲器中。
6.一種控制電路,其特征在于包括存儲數(shù)據(jù)的主存儲單元;以特定大小單位作為高速緩存行讀入已存儲在上述主存儲單元中的數(shù)據(jù)并存儲的高速緩沖存儲器;輸入已存儲在上述高速緩沖存儲器中的數(shù)據(jù),根據(jù)已輸入的數(shù)據(jù)進(jìn)行運(yùn)算處理的運(yùn)算處理單元;判斷是表示作為在上述運(yùn)算處理單元進(jìn)行的運(yùn)算處理中使用的數(shù)據(jù)的對象數(shù)據(jù)已存儲在上述高速緩沖存儲器中的高速緩存命中,還是表示對象數(shù)據(jù)未被存儲在上述高速緩沖存儲器中的高速緩存未命中,當(dāng)判斷為高速緩存未命中的情況下,從上述主存儲單元中以特定大小單位取得對象數(shù)據(jù)并作為高速緩存行存儲在上述高速緩沖存儲器中的高速緩存命中判斷單元;當(dāng)上述高速緩存命中判斷單元判斷為高速緩存未命中的情況下,上述高速緩存命中判斷單元以特定大小單位取得被存儲在與存儲在上述高速緩沖存儲器中的高速緩存行對應(yīng)的上述主存儲單元的數(shù)據(jù)連續(xù)的區(qū)域上的數(shù)據(jù),把已取得的特定大小單位的數(shù)據(jù)與上述高速緩存命中判斷單元存儲的高速緩存行以外的高速緩存行進(jìn)行替換,作為高速緩存行存儲在上述高速緩沖存儲器中。
7.一種控制電路,其特征在于包括存儲數(shù)據(jù)的主存儲單元;以特定大小單位作為高速緩存行讀入被存儲在上述主存儲單元中的數(shù)據(jù)并存儲,對于已存儲的高速緩存行管理有效或者無效的高速緩沖存儲器;輸入已被存儲在上述高速緩沖存儲器中的數(shù)據(jù),根據(jù)已輸入的數(shù)據(jù)進(jìn)行運(yùn)算處理的運(yùn)算處理單元;在上述運(yùn)算處理單元進(jìn)行的運(yùn)算處理前,控制以特定大小單位取得被存儲在上述主存儲單元中的數(shù)據(jù),把已取得的特定大小的數(shù)據(jù)與無效的高速緩存行進(jìn)行替換,作為高速緩存行存儲在上述高速緩沖存儲器中的控制單元;存儲對上述高速緩沖存儲器的訪問頻度的基準(zhǔn)值和被存儲在上述高速緩沖存儲器中的有效的高速緩存行數(shù)的基準(zhǔn)值的至少一種的基準(zhǔn)值存儲單元;測定對上述高速緩沖存儲器的訪問頻度和被存儲在上述高速緩沖存儲器中的有效高速緩存行數(shù)的至少一種的測定單元;當(dāng)上述測定單元測定的對上述高速緩沖存儲器的訪問頻度小于等于存儲在上述基準(zhǔn)值存儲單元中的訪問頻度的基準(zhǔn)值的情況,和上述測定單元測定的有效高速緩存行數(shù)大于等于存儲在上述基準(zhǔn)值存儲單元中的有效高速緩存行數(shù)的基準(zhǔn)值的情況的至少一個下,禁止上述控制單元進(jìn)行的控制的測定禁止單元。
8.一種控制電路,其特征在于包括存儲數(shù)據(jù)的主存儲單元;讀入被存儲在上述主存儲單元中的數(shù)據(jù)并存儲的高速緩沖存儲器;從上述高度緩沖存儲器輸入數(shù)據(jù)的高速緩存訪問單元;譯碼上述高速緩存訪問單元輸入的數(shù)據(jù)的譯碼單元;根據(jù)上述譯碼單元譯碼的數(shù)據(jù)進(jìn)行運(yùn)算處理的運(yùn)算單元,其中上述高速緩存訪問單元與上述運(yùn)算單元的運(yùn)算處理并行地,從上述主存儲單元中取得被存儲于在上述運(yùn)算單元進(jìn)行的運(yùn)算處理中生成的地址中的數(shù)據(jù),并存儲到上述高速緩沖存儲器中。
9.一種控制方法,其特征在于包括在主存儲單元中存儲數(shù)據(jù),以特定大小單位作為高速緩存行讀入已存儲在上述主存儲單元中的數(shù)據(jù),并存儲在高速緩沖存儲器中,輸入已存儲在上述高速緩沖存儲器中的數(shù)據(jù),根據(jù)已輸入的數(shù)據(jù)進(jìn)行運(yùn)算處理,判斷是表示作為在運(yùn)算處理中使用的數(shù)據(jù)的對象數(shù)據(jù)已存儲在上述高速緩沖存儲器中的高速緩存命中,還是表示對象數(shù)據(jù)未被存儲在上述高速緩沖存儲器中的高速緩存未命中,當(dāng)判斷為高速緩存未命中的情況下,從上述主存儲單元中以特定大小單位取得對象數(shù)據(jù),并作為高速緩存行存儲在上述高速緩沖存儲器中,當(dāng)判斷為高速緩存命中的情況下,判斷包含對象數(shù)據(jù)的高速緩存行和包含在前次計算處理中使用的數(shù)據(jù)的高速緩存行的異同,當(dāng)判斷為包含對象數(shù)據(jù)的高速緩存行和包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行不同的情況下,控制以特定大小單位取得被存儲在上述主存儲單元中的數(shù)據(jù),把取得的特定大小單位的數(shù)據(jù)與包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行進(jìn)行替換,并作為高速緩存行存儲在上述高速緩沖存儲器中,當(dāng)判斷為包含對象數(shù)據(jù)的高速緩存行和包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行相同的情況下,控制不替換被存儲在上述高速緩沖存儲器中的包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行。
10.一種控制方法,其特征在于包括在主存儲單元中存儲數(shù)據(jù),以特定大小單位作為高速緩存行讀入已存儲在上述主存儲單元中的數(shù)據(jù),并存儲在高速緩沖存儲器中,輸入已存儲在上述高速緩沖存儲器中的數(shù)據(jù),根據(jù)已輸入的數(shù)據(jù)進(jìn)行運(yùn)算處理,判斷是表示作為在上述運(yùn)算處理中使用的數(shù)據(jù)的對象數(shù)據(jù)已存儲在上述高速緩沖存儲器中的高速緩存命中,還是表示對象數(shù)據(jù)未被存儲在上述高速緩沖存儲器中的高速緩存未命中,當(dāng)判斷為高速緩存未命中的情況下,從上述主存儲單元中以特定大小單位取得對象數(shù)據(jù),并作為高速緩存行存儲在上述高速緩沖存儲器中,當(dāng)判斷為高速緩存未命中的情況下,以特定大小單位取得被存儲在與存儲在上述高速緩沖存儲器中的高速緩存行對應(yīng)的上述主存儲單元的數(shù)據(jù)連續(xù)的區(qū)域上的數(shù)據(jù),把已取得的特定大小單位的數(shù)據(jù)與從上述主存儲單元中以特定大小單位取得對象數(shù)據(jù)并存儲在上述高速緩沖存儲器中的高速緩存行以外的高速緩存行進(jìn)行替換,并作為高速緩存行存儲在上述高速緩沖存儲器中。
11.一種控制方法,其特征在于包括在主存儲單元中存儲數(shù)據(jù),以特定大小單位作為高速緩存行讀入被存儲在上述主存儲單元中的數(shù)據(jù)并存儲在高速緩沖存儲器中,對已存儲的高速緩存行管理有效或者無效,輸入已被存儲在上述高速緩沖存儲器中的數(shù)據(jù),根據(jù)已輸入的數(shù)據(jù)進(jìn)行運(yùn)算處理,在運(yùn)算處理前,控制以特定大小單位取得已被存儲在上述主存儲單元中的數(shù)據(jù),把已取得的特定大小的數(shù)據(jù)與無效的高速緩存行進(jìn)行替換,并作為高速緩存行存儲在上述高速緩沖存儲器中,在基準(zhǔn)值存儲單元中存儲對上述高速緩沖存儲器的訪問頻度的基準(zhǔn)值和被存儲在上述高速緩沖存儲器中的有效的高速緩存行數(shù)的基準(zhǔn)值的至少一種,測定對上述高速緩沖存儲器的訪問頻度和被存儲在上述高速緩沖存儲器中的有效高速緩存行數(shù)的至少一種,當(dāng)測定出的對上述高速緩沖存儲器的訪問頻度小于等于存儲在上述基準(zhǔn)值存儲單元中的訪問頻度的基準(zhǔn)值的情況,和上述測定單元測定的有效高速緩存行數(shù)大于等于存儲在上述基準(zhǔn)值存儲單元中的有效高速緩存行數(shù)的基準(zhǔn)值的情況的至少一個下,在運(yùn)算處理前,禁止控制以特定大小單位取得被存儲在上述主存儲單元中的數(shù)據(jù),把已取得的特定大小的數(shù)據(jù)與無效的高速緩存行進(jìn)行替換,并作為高速緩存行存儲在上述高速緩沖存儲器中。
12.一種控制方法,其特征在于包括把數(shù)據(jù)存儲在主存儲單元中,讀入已存儲在上述主存儲單元中的數(shù)據(jù),并存儲在高速緩沖存儲器中,從上述高速緩沖存儲器輸入數(shù)據(jù),譯碼已輸入的數(shù)據(jù),根據(jù)譯碼后的數(shù)據(jù)進(jìn)行運(yùn)算處理,在從上述高速緩沖存儲器輸入數(shù)據(jù)時,與運(yùn)算處理并行地從上述主存儲單元中取得被存儲于在運(yùn)算處理中生成的地址所示的地址中的數(shù)據(jù),并存儲在上述高速緩沖存儲器中。
全文摘要
本發(fā)明的控制電路以及控制方法對存儲在高速緩沖存儲器中的訪問概率低的數(shù)據(jù)進(jìn)行替換,可以預(yù)取訪問概率更高的數(shù)據(jù)。高速緩存命中判斷單元(2)當(dāng)判斷出在運(yùn)算處理單元(1)進(jìn)行的運(yùn)算處理中使用的對象數(shù)據(jù)的高速緩存未命中的情況下,從主存儲單元(7)中取出對象數(shù)據(jù)。另外,無效數(shù)據(jù)判斷單元(4)當(dāng)高速緩沖命中判斷單元(2)判斷出高速緩存命中的情況下,判斷包含對象數(shù)據(jù)的高速緩存行和包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行是否相同。而后,預(yù)取控制單元(5)當(dāng)無效數(shù)據(jù)判斷單元(4)判斷為包含對象數(shù)據(jù)的高速緩存行和包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行不同的情況下,把被存儲在主存儲單元(7)中的數(shù)據(jù)與包含在前次運(yùn)算處理中使用的數(shù)據(jù)的高速緩存行替換進(jìn)行預(yù)取。
文檔編號G11C7/00GK1797326SQ20041008214
公開日2006年7月5日 申請日期2004年12月21日 優(yōu)先權(quán)日2004年12月21日
發(fā)明者關(guān)誠司, 龜丸敏久, 根岸博康, 小原淳子 申請人:三菱電機(jī)株式會社