欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

高速緩存存儲器、存儲器系統(tǒng)、數(shù)據(jù)復(fù)制方法及數(shù)據(jù)改寫方法

文檔序號:6594807閱讀:188來源:國知局
專利名稱:高速緩存存儲器、存儲器系統(tǒng)、數(shù)據(jù)復(fù)制方法及數(shù)據(jù)改寫方法
技術(shù)領(lǐng)域
本發(fā)明涉及高速緩存存儲器、存儲器系統(tǒng)、數(shù)據(jù)復(fù)制方法及數(shù)據(jù)改寫方法。特別涉及具有多個路、將保存在存儲器中的數(shù)據(jù)的一部分進行保存的高速緩存存儲器。
背景技術(shù)
在近年來的存儲器系統(tǒng)中,例如將由SRAM (Static Random Access Memory/靜態(tài)隨機訪問存儲器)等構(gòu)成的小容量且高速的高速緩存存儲器配置在微處理器的內(nèi)部、或其附近。在這樣的存儲器系統(tǒng)中,通過高速緩存存儲器將微處理器從主存儲器讀出的數(shù)據(jù)的一部分、以及寫入到主存儲器中的數(shù)據(jù)的一部分存儲(高速緩存),使微處理器的存儲器訪問高速化(例如參照專利文獻1)。這樣的以往的高速緩存存儲器在發(fā)生了從處理器向主存儲器的訪問的情況下,判斷是否自己已經(jīng)保存有該訪問目標的地址的數(shù)據(jù),在保存有的情況下(以下稱作命中),將該保存的數(shù)據(jù)輸出給處理器(讀時)、或?qū)⒃摂?shù)據(jù)更新(寫時)。此外,高速緩存存儲器在沒有保存該訪問目標的地址的數(shù)據(jù)的情況下(以下稱作高速緩存未命中),將從處理器輸出的該地址及數(shù)據(jù)保存(寫時),或者在將該地址的數(shù)據(jù)從主存儲器讀出后保存,并且將讀出的數(shù)據(jù)輸出給處理器(讀時)。此外,在高速緩存未命中的情況下,高速緩存存儲器判斷在該高速緩存存儲器內(nèi)是否有保存新的地址及數(shù)據(jù)的空閑區(qū)域,在沒有空閑區(qū)域的情況下,進行行替換(替代), 以及根據(jù)需要而進行回寫(清除)等的處理。此外,高速緩存存儲器根據(jù)來自處理器的命令(command),進行預(yù)取出及接觸等的處理。該預(yù)取出及接觸是為了提高高速緩存存儲器的效率(命中率提高、以及高速緩存未命中延遲降低)而進行的處理。所謂預(yù)取出,是在發(fā)生高速緩存未命中之前、將較近的未來使用的數(shù)據(jù)預(yù)先保存到高速緩存存儲器中的動作。通過該預(yù)取出,對于該數(shù)據(jù)不發(fā)生高速緩存未命中,所以能夠高速地進行數(shù)據(jù)讀出動作。此外,所謂接觸,是在發(fā)生高速緩存未命中之前、為了在較近的未來進行改寫的數(shù)據(jù)而預(yù)先確保高速緩存存儲器內(nèi)的區(qū)域(高速緩存條目)的動作。通過該接觸,在該數(shù)據(jù)的寫入動作時,不發(fā)生高速緩存未命中,所以能夠高速地進行向主存儲器的數(shù)據(jù)寫入。這樣,處理器通過對高速緩存存儲器指示預(yù)取出命令及接觸命令,能夠使向主存儲器的數(shù)據(jù)改寫高速化。先行技術(shù)文獻專利文獻專利文獻1 國際公開第05/091146號小冊子

發(fā)明內(nèi)容
發(fā)明的概要發(fā)明要解決的課題但是,希望將這樣的數(shù)據(jù)改寫動作更高速地執(zhí)行。所以,本發(fā)明的目的是提供一種高速緩存存儲器及存儲器系統(tǒng),能夠由處理器高速地改寫主存儲器的數(shù)據(jù)。解決課題的手段為了達到上述目的,有關(guān)本發(fā)明的高速緩存存儲器,是具有多個分別包括標簽地址、行數(shù)據(jù)、和臟標志(dirty flag)在內(nèi)的條目的高速緩存存儲器,具備命令執(zhí)行部,在由處理器指示了第1命令的情況下,將在上述多個條目中的、由上述處理器指定的1個以上的條目中包含的上述標簽地址改寫為對應(yīng)于由上述處理器指定的地址的標簽地址,并且設(shè)置對應(yīng)于該條目的上述臟標志;以及回寫部,將包含在設(shè)置了上述臟標志的條目中的上述行數(shù)據(jù)回寫到主存儲器中。根據(jù)該結(jié)構(gòu),處理器通過對有關(guān)本發(fā)明的高速緩存存儲器指示第1命令,能夠指定條目而變更保存在高速緩存存儲器中的標簽地址。由此,在使用有關(guān)本發(fā)明的高速緩存存儲器將主存儲器的數(shù)據(jù)復(fù)制到其他地址的情況下,能夠指定保存有復(fù)制源的數(shù)據(jù)的條目而將標簽地址從對應(yīng)于復(fù)制源的地址的標簽地址變更為對應(yīng)于復(fù)制目標的地址的標簽地址。進而,有關(guān)本發(fā)明的高速緩存存儲器在更新標簽地址的同時設(shè)置臟標志。由此,通過在執(zhí)行第1命令后進行回寫(向存儲器的數(shù)據(jù)的寫回),將變更了標簽地址的條目的數(shù)據(jù)回寫。即,將復(fù)制源的數(shù)據(jù)復(fù)制到復(fù)制目標的地址。另一方面,在使用以往的高速緩存存儲器的存儲器系統(tǒng)中,為了進行同樣的復(fù)制動作,例如需要處理器將保存在高速緩存存儲器中的復(fù)制源的數(shù)據(jù)讀出、并且對高速緩存存儲器指示以往的接觸(僅變更標簽地址)之后、將讀出的數(shù)據(jù)指定復(fù)制目標的地址而寫入到存儲器中。這樣,通過使用有關(guān)本發(fā)明的高速緩存存儲器,處理器能夠?qū)⒆x出及寫入動作省略。此外,在使用以往的高速緩存存儲器的復(fù)制動作中需要兩個條目,相對于此,在使用有關(guān)本發(fā)明的高速緩存存儲器的情況下,能夠僅通過一個條目實現(xiàn)復(fù)制動作,所以能夠削減高速緩存存儲器中的行替換處理的發(fā)生次數(shù)。由此,通過使用有關(guān)本發(fā)明的高速緩存存儲器,處理器能夠?qū)⒅鞔鎯ζ鞯臄?shù)據(jù)高速地復(fù)制到其他地址中。此外,上述高速緩存存儲器也可以還具備禁止部,該禁止部禁止上述多個條目中的、由上述處理器指定的1個以上的條目中包含的行數(shù)據(jù)的替代;在由上述處理器指示了第1命令的情況下,上述命令執(zhí)行部將由上述禁止部禁止了行數(shù)據(jù)的替代的條目中包含的上述標簽地址改寫為對應(yīng)于由上述處理器指定的上述地址的標簽地址,并且設(shè)置對應(yīng)于該條目的上述臟標志。根據(jù)該結(jié)構(gòu),處理器通過將在復(fù)制動作中使用的條目鎖定(指定該條目),能夠防止在該復(fù)制動作中、用于復(fù)制動作的數(shù)據(jù)被通過通常的高速緩存動作或其他命令替代(刪除)。此外,也可以是,在由上述處理器指示了第2命令的情況下,上述命令執(zhí)行部還從上述主存儲器讀出由上述處理器指定的地址的數(shù)據(jù),將上述多個條目中的、由上述處理器指定的1個以上的條目中包含的上述標簽地址改寫為對應(yīng)于上述地址的標簽地址,并且將
6包含在該條目中的上述行數(shù)據(jù)改寫為上述讀出的數(shù)據(jù);在由上述處理器指示了第1命令的情況下,上述命令執(zhí)行部將由上述禁止部禁止了行數(shù)據(jù)的替代的條目中包含的上述標簽地址改寫為對應(yīng)于由上述處理器指定的上述地址的標簽地址,并且設(shè)置對應(yīng)于該條目的上述臟標志。根據(jù)該結(jié)構(gòu),處理器通過對有關(guān)本發(fā)明的高速緩存存儲器指示第2命令,能夠使用第1命令改寫標簽地址的數(shù)據(jù)保存到指定的條目中。由此,處理器能夠掌握保存復(fù)制源的數(shù)據(jù)的條目,所以能夠指定該條目而執(zhí)行第1命令。此外,也可以是,在由上述處理器指示了第3命令的情況下,上述回寫部將上述多個條目中的、由上述處理器指定的條目中包含的上述行數(shù)據(jù)回寫到上述主存儲器中。根據(jù)該結(jié)構(gòu),處理器通過對高速緩存存儲器指示第3命令,能夠僅指定保存用于復(fù)制動作的數(shù)據(jù)的條目而指示回寫。由此,與對全部條目進行回寫的情況相比能夠高速地進行復(fù)制動作。此外,也可以是,上述高速緩存存儲器具有包括1個以上的上述條目的多個路;在由上述處理器指示了上述第1命令的情況下,上述命令執(zhí)行部選擇上述多個路中的、包含在由上述處理器指定的1個以上的路中的條目,將包含在所選擇的條目中包含的上述標簽地址改寫為對應(yīng)于由上述處理器指定的上述地址的標簽地址,并且設(shè)置對應(yīng)于該條目的上述臟標志。此外,有關(guān)本發(fā)明的高速緩存存儲器,是具有多個分別包括標簽地址、行數(shù)據(jù)、和臟標志在內(nèi)的條目的高速緩存存儲器,其特征在于,具備命令執(zhí)行部,在由處理器指示了第4命令的情況下,將在上述多個條目中的某個條目中包含的上述標簽地址改寫為對應(yīng)于由上述處理器指定的地址的標簽地址,設(shè)置包含在該條目中的上述臟標志,將包含在該條目中的上述行數(shù)據(jù)變更為預(yù)先設(shè)定的數(shù)據(jù);以及回寫部,將包含在設(shè)置了上述臟標志的條目中的上述行數(shù)據(jù)回寫到主存儲器中。根據(jù)該結(jié)構(gòu),處理器通過對有關(guān)本發(fā)明的高速緩存存儲器指示第4命令,能夠通過一個命令實現(xiàn)標簽地址的更新、臟標志的設(shè)置、和行數(shù)據(jù)的更新。由此,通過在執(zhí)行第4 命令后進行回寫(向存儲器的數(shù)據(jù)的寫回),將更新后的行數(shù)據(jù)寫入到對應(yīng)于更新后的標簽地址的存儲器內(nèi)的區(qū)域中。即,在希望的地址中寫入預(yù)先設(shè)定的數(shù)據(jù)。另一方面,在使用以往的高速緩存存儲器的存儲器系統(tǒng)中,為了進行同樣的寫入動作,需要例如處理器在對高速緩存存儲器指示以往的接觸(僅變更地址)后寫入數(shù)據(jù)。這樣,通過使用有關(guān)本發(fā)明的高速緩存存儲器,處理器能夠省略寫入動作。由此, 通過使用有關(guān)本發(fā)明的高速緩存存儲器,處理器能夠?qū)⒅鞔鎯ζ鞯臄?shù)據(jù)高速地改寫為預(yù)先設(shè)定的數(shù)據(jù)。此外,上述預(yù)先設(shè)定的數(shù)據(jù)也可以是全部的位都相同的數(shù)據(jù)。此外,有關(guān)本發(fā)明的存儲器系統(tǒng)是具備處理器、1級高速緩存存儲器、2級高速緩存存儲器、和存儲器的存儲器系統(tǒng),上述2級高速緩存存儲器是上述高速緩存存儲器。根據(jù)該結(jié)構(gòu),有關(guān)本發(fā)明的高速緩存存儲器被用在2級高速緩存中。這里,在進行使用有關(guān)本發(fā)明的高速緩存存儲器的上述復(fù)制動作、或上述寫入動作的情況下,將高速緩存存儲器內(nèi)的一部分的條目用于該復(fù)制動作、或該寫入動作,所以通常的高速緩存動作等的處理能力有可能暫時下降。這里,2級高速緩存與1級高速緩存相比,處理能力的下降給存儲器系統(tǒng)整體帶來的影響較小。具體而言,在1級高速緩存中采用有關(guān)本發(fā)明的高速緩存存儲器的情況下,來自處理器的1級高速緩存能夠妨礙命中時的訪問。另一方面,通過在 2級高速緩存中采用本發(fā)明的高速緩存存儲器,能夠減小上述命中時的訪問的妨礙。即,通過將有關(guān)本發(fā)明的高速緩存存儲器應(yīng)用在2級高速緩存中,能夠減輕對存儲器系統(tǒng)整體的不良影響。此外,有關(guān)本發(fā)明的數(shù)據(jù)復(fù)制方法,是將保存在主存儲器的第1地址中的第1數(shù)據(jù)復(fù)制到該主存儲器的第2地址中的數(shù)據(jù)復(fù)制方法,其特征在于,包括保存步驟,將對應(yīng)于上述第1地址的標簽地址及上述第1數(shù)據(jù)保存到高速緩存存儲器中;更新步驟,將對應(yīng)于保存在上述高速緩存存儲器中的上述第1地址的上述標簽地址改寫為對應(yīng)于上述第2地址的標簽地址,并且設(shè)置對應(yīng)于該第1數(shù)據(jù)的臟標志;回寫步驟,將該第1數(shù)據(jù)從上述高速緩存存儲器回寫到上述主存儲器中。由此,將對應(yīng)于保存在高速緩存存儲器內(nèi)的復(fù)制源的第1數(shù)據(jù)的標簽地址變更為對應(yīng)于復(fù)制目標的第2地址的標簽地址。進而,在與該標簽地址的更新同時,設(shè)置臟標志。 由此,通過進行回寫(向存儲器的數(shù)據(jù)的寫回),將保存在復(fù)制源的第1地址中的第1數(shù)據(jù)復(fù)制到復(fù)制目標的第2地址。這樣,有關(guān)本發(fā)明的數(shù)據(jù)復(fù)制方法能夠不從高速緩存存儲器向處理器發(fā)送數(shù)據(jù), 而通過高速緩存存儲器內(nèi)的標簽地址的變更來實現(xiàn)復(fù)制動作。由此,有關(guān)本發(fā)明的數(shù)據(jù)復(fù)制方法能夠?qū)⒅鞔鎯ζ鞯臄?shù)據(jù)高速地復(fù)制到其他地址。此外,上述數(shù)據(jù)復(fù)制方法也可以還包括禁止步驟,該禁止步驟禁止在從上述保存步驟之后到上述更新步驟完成的期間替代保存在上述高速緩存存儲器中的上述第1數(shù)據(jù)。由此,能夠防止在復(fù)制動作中、保存在高速緩存存儲器中的第1數(shù)據(jù)被通常的高速緩存動作等替代(刪除)。此外,也可以是,上述保存步驟包括指定上述高速緩存存儲器具有的多個條目中的第1條目的步驟;在指定的上述第1條目中保存對應(yīng)于上述第1地址的標簽地址及上述第1數(shù)據(jù)的步驟;上述更新步驟包括指定上述第1條目的步驟;將對應(yīng)于包含在指定的上述第1條目中的上述第1地址的上述標簽地址改寫為對應(yīng)于上述第2地址的標簽地址,并且設(shè)置對應(yīng)于該第1數(shù)據(jù)的臟標志的步驟。由此,處理器能夠掌握保存復(fù)制源的第1數(shù)據(jù)的第1條目,所以能夠指定該第1條目而變更標簽地址。此外,也可以是,上述保存步驟包括指定上述高速緩存存儲器具有的多個條目中的第1條目的步驟;在指定的上述第1條目中保存對應(yīng)于上述第1地址的標簽地址及上述第1數(shù)據(jù)的步驟;上述回寫步驟包括指定上述第1條目的步驟;將包含在指定的上述條目中的上述第1數(shù)據(jù)從上述高速緩存存儲器回寫到上述主存儲器中的步驟。由此,能夠不將全部的條目回寫而僅將在復(fù)制動作中使用的第1條目回寫,所以能夠提高處理速度。此外,也可以是,上述高速緩存存儲器具有分別包括多個條目的多個路;上述第1 地址及上述第2地址分別包括指定上述路內(nèi)的條目的集合索引;上述第1地址和上述第2 地址具有相同的上述集合索引;上述更新步驟包括指定包括保存上述第1數(shù)據(jù)的條目的路的步驟;選擇包含在指定的上述路中的多個條目中的、由包含在上述第2地址中的上述
8集合索引指定的條目的步驟;將對應(yīng)于包含在選擇的上述條目中的上述第1地址的上述標簽地址改寫為對應(yīng)于上述第2地址的標簽地址、并且設(shè)置對應(yīng)于該第1數(shù)據(jù)的臟標志的步驟。由此,即使是在各路中包含多個條目的情況,通過使第1地址與第2地址的集合索引相同,也能夠僅通過指定路來指定高速緩存存儲器內(nèi)的任意的條目。即,處理器通過指定路,能夠變更保存在高速緩存存儲器內(nèi)的希望的條目的標簽地址。此外,有關(guān)本發(fā)明的數(shù)據(jù)改寫方法,是將保存在主存儲器的第1地址中的數(shù)據(jù)改寫為預(yù)先設(shè)定的第1數(shù)據(jù)的數(shù)據(jù)改寫方法,包括更新步驟,將在高速緩存存儲器具有的多個條目中的某個條目中包含的標簽地址改寫為對應(yīng)于上述第1地址的標簽地址,設(shè)置包含在該條目中的上述臟標志,將包含在該條目中的行數(shù)據(jù)變更為上述第1數(shù)據(jù);回寫步驟,從上述高速緩存存儲器對上述主存儲器回寫上述第1數(shù)據(jù)。由此,有關(guān)本發(fā)明的數(shù)據(jù)改寫方法能夠同時實現(xiàn)標簽地址的更新、將臟標志變更為更新狀態(tài)的動作、和行數(shù)據(jù)的更新。由此,通過在進行上述更新后進行回寫(向存儲器的數(shù)據(jù)的寫回),在主存儲器內(nèi)的第1地址中寫入預(yù)先設(shè)定的第1數(shù)據(jù)。這樣,有關(guān)本發(fā)明的數(shù)據(jù)改寫方法能夠?qū)⒅鞔鎯ζ鞯臄?shù)據(jù)高速地改寫為預(yù)先設(shè)定的數(shù)據(jù)。通過以上,本發(fā)明能夠提供高速緩存存儲器、存儲器系統(tǒng)、數(shù)據(jù)復(fù)制方法及數(shù)據(jù)改寫方法,能夠由處理器將主存儲器的數(shù)據(jù)高速地改寫。


圖1是表示有關(guān)本發(fā)明的實施方式的存儲器系統(tǒng)的結(jié)構(gòu)的圖。圖2是表示有關(guān)本發(fā)明的實施方式的高速緩存存儲器的結(jié)構(gòu)的圖。圖3是表示有關(guān)本發(fā)明的實施方式的路的結(jié)構(gòu)的圖。圖4是表示有關(guān)本發(fā)明的實施方式的命令處理部的結(jié)構(gòu)的圖。圖5是表示有關(guān)本發(fā)明的實施方式的命令的一例的圖。圖6是表示在有關(guān)本發(fā)明的實施方式的寄存器中寫入數(shù)據(jù)的命令的一例的圖。圖7是表示由有關(guān)本發(fā)明的實施方式的高速緩存存儲器進行的預(yù)取出動作的流程的流程圖。圖8是表示由有關(guān)本發(fā)明的實施方式的高速緩存存儲器進行的第1接觸動作的流程的流程圖。圖9是表示由有關(guān)本發(fā)明的實施方式的高速緩存存儲器進行的第2接觸動作的流程的流程圖。圖10是表示由有關(guān)本發(fā)明的實施方式的高速緩存存儲器進行的第3接觸動作的流程的流程圖。圖11是表示由有關(guān)本發(fā)明的實施方式的高速緩存存儲器進行的回寫動作的流程的流程圖。圖12是表示有關(guān)本發(fā)明的實施方式的存儲器系統(tǒng)的數(shù)據(jù)復(fù)制動作的流程的流程圖。圖13是表示保存在有關(guān)本發(fā)明的實施方式的存儲器中的數(shù)據(jù)的一例的圖。圖14是表示在有關(guān)本發(fā)明的實施方式的數(shù)據(jù)復(fù)制動作中進行了預(yù)取出之后的路的狀態(tài)的圖。圖15是表示在有關(guān)本發(fā)明的實施方式的數(shù)據(jù)復(fù)制動作中進行第2接觸之后的路的狀態(tài)的圖。圖16是表示在進行了有關(guān)本發(fā)明的實施方式的數(shù)據(jù)復(fù)制動作之后的存儲器中保存的數(shù)據(jù)的圖。圖17是表示有關(guān)本發(fā)明的實施方式的存儲器系統(tǒng)的數(shù)據(jù)復(fù)制動作的流程的變形例的流程圖。圖18是表示有關(guān)本發(fā)明的實施方式的存儲器系統(tǒng)的零寫入動作的流程的流程圖。圖19是表示在有關(guān)本發(fā)明的實施方式的零寫入動作中進行第3接觸之后的路的狀態(tài)的圖。圖20是表示在進行了有關(guān)本發(fā)明的實施方式的零寫入動作之后的存儲器中保存的數(shù)據(jù)的圖。
具體實施例方式以下,參照附圖對包括有關(guān)本發(fā)明的高速緩存存儲器的存儲器系統(tǒng)的實施方式詳細地說明。在有關(guān)本發(fā)明的實施方式的存儲器系統(tǒng)中,擴展了高速緩存存儲器的功能(命令)。處理器能夠使用該高速緩存存儲器的功能將主存儲器的數(shù)據(jù)高速地改寫。具體而言,有關(guān)本發(fā)明的實施方式的高速緩存存儲器除了具有標簽地址的更新以外、還具有指定路徑進行將臟標志同時更新的第2接觸動作的功能。由此,處理器能夠選擇保存在高速緩存存儲器中的數(shù)據(jù)中的希望的數(shù)據(jù)、即復(fù)制源的數(shù)據(jù)來變更標簽地址。由此, 通過將第2接觸動作后的數(shù)據(jù)寫回到主存儲器中,能夠?qū)崿F(xiàn)高速的數(shù)據(jù)復(fù)制。進而,有關(guān)本發(fā)明的實施方式的高速緩存存儲器具有同時進行標簽地址的更新、 臟標志的更新、和行數(shù)據(jù)的更新的第3接觸動作的功能。由此,通過在第3接觸動作后將數(shù)據(jù)寫回到主存儲器中,能夠?qū)崿F(xiàn)高速的數(shù)據(jù)改寫。首先,說明包括有關(guān)本發(fā)明的實施方式的高速緩存存儲器的存儲器系統(tǒng)的結(jié)構(gòu)。圖1是表示有關(guān)本發(fā)明的實施方式的存儲器系統(tǒng)的概略結(jié)構(gòu)的圖。圖1所示的存儲器系統(tǒng)包括處理器1、L1(1級)高速緩存4、L2Q級)高速緩存3、和存儲器2。存儲器2是SDRAM等的大容量的主存儲器。Ll高速緩存4及L2高速緩存3是比存儲器2高速但容量少的高速緩存存儲器。 例如,Ll高速緩存4及L2高速緩存3是SRAM。此外,Ll高速緩存4是配置在比L2高速緩存3更靠處理器1附近的優(yōu)先級較高的高速緩存存儲器。該Ll高速緩存4及L2高速緩存3進行將處理器1從存儲器2讀出的數(shù)據(jù)的一部分、以及寫入到存儲器2中的數(shù)據(jù)的一部分存儲的、所謂高速緩存動作。這里,所謂高速緩存動作,是在發(fā)生從處理器1向存儲器2的訪問的情況下、L2高速緩存3判斷是否自身已保存有該訪問目標的地址的數(shù)據(jù)、在保存有的情況下(命中)、將該保存的數(shù)據(jù)對處理器1 輸出(讀時)、或者將該數(shù)據(jù)更新(寫時)的動作。此外,L2高速緩存3在沒有保存有該訪問目標的地址的數(shù)據(jù)的情況下(高速緩存未命中),將從處理器1輸出的該地址及數(shù)據(jù)保存(寫時),或者在將該地址的數(shù)據(jù)從存儲器2讀出后保存、并將讀出的數(shù)據(jù)輸出給處理器 1(讀時)。此外,在高速緩存未命中的情況下,Ll高速緩存4及L2高速緩存3判斷在該Ll高速緩存4或L2高速緩存3內(nèi)是否有保存新的地址及數(shù)據(jù)的空閑區(qū)域,在沒有空閑區(qū)域的情況下進行行替換(替代)、以及根據(jù)需要進行回寫(清除)等的處理。另外,高速緩存動作是公知的技術(shù),所以省略更詳細的說明。此外,圖1所示的處理器1、L1高速緩存4、L2高速緩存3、存儲器2典型地講是作為集成電路的LSI實現(xiàn)。它們既可以單獨1芯片化,也可以包含一部分或全部而1芯片化。 例如,也可以將處理器1和Ll高速緩存4進行1芯片化。此外,各構(gòu)成單元也可以由多個芯片實現(xiàn)。以下,對在L2高速緩存3中使用有關(guān)本發(fā)明的高速緩存存儲器的例子進行說明。 此外,作為L2高速緩存3的具體例,對將本發(fā)明應(yīng)用到4路集合關(guān)聯(lián)方式的高速緩存存儲器中的情況下的結(jié)構(gòu)進行說明。圖2是表示L2高速緩存3的結(jié)構(gòu)例的塊圖。圖2所示的L2高速緩存3具備地址寄存器20、存儲器I/F21、解碼器30、4個路31a 31d、4個比較器32a 32d、4個與電路 33a 33d、或電路34、選擇器35及36、多路信號分離器37和控制部38。另外,在不特別區(qū)別4個路31a 31d的情況下記作路31。地址寄存器20是保持向存儲器2的訪問地址的寄存器。該訪問地址是32位。如圖2所示,訪問地址從最高位起依次包括21位的標簽地址51、4位的集合索引(Si) 52、和5 位的字索引(WI) 53。這里,標簽地址51指示匹配于路31的存儲器2中的區(qū)域(該尺寸是集合數(shù)X 塊)。該區(qū)域的尺寸是由比標簽地址51低位的地址位(A10 AO)決定的尺寸即業(yè)字節(jié), 也是1個路31的尺寸。集合索引52指示跨越路31a 31b的多個集合的1個。該集合數(shù)由于集合索引 52為4位,所以有16集合。由標簽地址51及集合索引52確定的高速緩存條目是替代單位,在保存在高速緩存存儲器中的情況下稱作行數(shù)據(jù)或行。行數(shù)據(jù)的尺寸是由比集合索引 52低位的地址位(A6 AO)決定的尺寸即1 字節(jié)。如果設(shè)1字為4字節(jié),則1行數(shù)據(jù)是 32字。字索引(WI)53指示構(gòu)成行數(shù)據(jù)的多個字中的1個字。此外,地址寄存器20中的最低位2位(Al、AO)在字訪問時被忽視。存儲器I/F21是用來從L2高速緩存3訪問存儲器2的接口。具體而言,存儲器I/ F21進行從L2高速緩存3向存儲器2的數(shù)據(jù)的回寫、以及從存儲器2向L2高速緩存3的數(shù)據(jù)的裝載等。解碼器30將集合索引52的4位解碼,選擇跨越4個路31a 31d的16集合中的 1個。4個路31a 31d具有相同的結(jié)構(gòu),各路31具有業(yè)字節(jié)的容量。圖3是表示路31的結(jié)構(gòu)的圖。如圖3所示,各路31具有16個高速緩存條目40。 各高速緩存條目40具有21位的標簽41、有效標志42、臟標志43、和1 字節(jié)的行數(shù)據(jù)44。標簽41是存儲器2上的地址的一部分,是21位的標簽地址51的復(fù)制。
行數(shù)據(jù)44是由標簽地址51及集合索引52確定的塊中的1 字節(jié)數(shù)據(jù)的復(fù)制。有效標志42表示該高速緩存條目40的數(shù)據(jù)是否是有效的。例如,在數(shù)據(jù)是有效的情況下,有效標志42是“1”,在數(shù)據(jù)是無效的情況下,有效標志42是“0”。臟標志43表示對于該高速緩存條目40是否從處理器1有寫入、即行數(shù)據(jù)44是否被更新的狀態(tài)。換言之,臟標志43表示雖然在該高速緩存條目40中存在被高速緩存的行數(shù)據(jù)44、但通過來自處理器1的寫入,該行數(shù)據(jù)44與存儲器2中的數(shù)據(jù)不同,所以表示是否需要將該行數(shù)據(jù)44寫回到存儲器2中。例如,在行數(shù)據(jù)44被更新的情況下,臟標志43是 “1”,在行數(shù)據(jù)44沒有被更新的情況下,臟標志43是“0”。此外,將設(shè)臟標志43為“1”的動作也稱作設(shè)置臟標志。比較器32a比較地址寄存器20中的標簽地址51、與包含在由集合索引52選擇的集合中的4個標簽41中的路31a的標簽41是否一致。關(guān)于比較器32b 32c,也除了對應(yīng)于路31b 31d以外是同樣的。與電路33a比較有效標志42與比較器32a的比較結(jié)果是否一致。將該比較結(jié)果設(shè)為ho。比較結(jié)果ho是“1”的情況意味著存在對應(yīng)于地址寄存器20中的標簽地址51及集合索引52的行數(shù)據(jù)44、即在路31a中命中。此外,比較結(jié)果h0是“0”的情況意味著高速緩存未命中。關(guān)于與電路33b 33d,也除了對應(yīng)于路31b 31d以外是同樣的。S卩,該比較結(jié)果hi h3意味著在路31b 31d中命中還是未命中?;螂娐?4取比較結(jié)果h0 h3的或。設(shè)該或的結(jié)果為hit。Hit表示在高速緩存存儲器中是否命中。選擇器35選擇所選擇的集合的路31a 31d的行數(shù)據(jù)44中的、命中的路31的行數(shù)據(jù)44。選擇器36選擇由選擇器35選擇的32個字的行數(shù)據(jù)44中的、由字索引53表示的 1個字。多路信號分離器37在對高速緩存條目40寫入數(shù)據(jù)時,對路31a 31d的1個輸出寫入數(shù)據(jù)。該寫入數(shù)據(jù)可以是字單位??刂撇?8進行L2高速緩存3整體的控制。具體而言,控制將處理器1從存儲器2 讀出的數(shù)據(jù)的一部分、以及寫入到存儲器2中的數(shù)據(jù)的一部分存儲的、所謂高速緩存動作。 該控制部38包括命令處理部39。圖4是表示命令處理部39的結(jié)構(gòu)的圖。命令處理部39執(zhí)行被從處理器1指定的命令。該命令處理部39具備地址寄存器 100、命令寄存器101、路鎖定寄存器104、路指定寄存器105、命令執(zhí)行部106、和狀態(tài)寄存器 107。這里,地址寄存器100 (開始地址寄存器102及尺寸寄存器10 、命令寄存器101、 路鎖定寄存器104、以及路指定寄存器105是能夠從處理器1直接訪問(可改寫數(shù)據(jù))的寄存器。命令寄存器101保持被處理器1指定的命令121。圖5是表示命令121的格式的一例的圖。該命令121包括命令內(nèi)容64。這里,命令內(nèi)容64表示預(yù)取出命令、第1接觸命令、第2接觸命令、第3接觸命令、和回寫命令中的某個。
地址寄存器100保持被處理器1指定的地址范圍。該地址寄存器100具備開始地址寄存器102和尺寸寄存器103。開始地址寄存器102保持作為上述地址范圍的最初的地址的、被處理器1指定的開始地址122。另外,開始地址122既可以是存儲器2的地址(32位)的全部,也可以是該地址的一部分。例如,開始地址122也可以是僅包括標簽地址51及集合索引52的地址。尺寸寄存器103保持被處理器1指定的尺寸123。該尺寸123表示從開始地址122 到上述地址范圍的最后的地址為止的大小。另外,尺寸123的單位既可以是字節(jié)數(shù)也可以是行數(shù)(高速緩存條目數(shù)),只要是預(yù)先設(shè)定的單位就可以。路鎖定寄存器104保持表示被處理器1指定的1個以上的路31的鎖定狀態(tài)124。 該鎖定狀態(tài)124由4位構(gòu)成,各位分別對應(yīng)于4個路31a 31d,表示對應(yīng)的路31是否被鎖定。例如,鎖定狀態(tài)124是“0”的情況表示對應(yīng)的路31沒有被鎖定,鎖定狀態(tài)IM是“1” 的情況表示對應(yīng)的路31被鎖定。此外,被鎖定的路31被禁止替代,不能被用與除了特定的命令以外的通常的命令動作、以及通常的高速緩存動作。路指定寄存器105保持表示被處理器1指定的1個以上的路31的指定狀態(tài)125。 該指定狀態(tài)125由4位構(gòu)成,各位分別對應(yīng)于4個路31a 31d。例如,指定狀態(tài)125是“0” 的情況表示對應(yīng)的路31沒有被指定,指定狀態(tài)125是“1”的情況表示對應(yīng)的路31被指定。圖6是表示對命令寄存器101、開始地址寄存器102、尺寸寄存器103、路鎖定寄存器104、以及路指定寄存器105寫入數(shù)據(jù)的命令的一例的圖。圖6所示的命令是通常的轉(zhuǎn)移命令(mov命令)61,由源操作數(shù)(R)62指定寄存器,作為目標操作數(shù)(D)63而指定保存在寄存器中的數(shù)據(jù)。具體而言,在源操作數(shù)62中,指定命令寄存器101、開始地址寄存器102、尺寸寄存器103、路鎖定寄存器104、或路指定寄存器105,在目標操作數(shù)63中,指定命令121、開始地址122、尺寸123、鎖定狀態(tài)124、或指定狀態(tài)125。命令執(zhí)行部106執(zhí)行由保持在命令寄存器101中的命令121指定的命令。該命令執(zhí)行部106包括預(yù)取出部111、第1接觸部112a、第2接觸部112b、第3接觸部112c、回寫部113、和禁止部114。預(yù)取出部111在命令寄存器101中保持有預(yù)取出命令的情況下執(zhí)行預(yù)取出動作。 此外,預(yù)取出部111在指定狀態(tài)125中指定了某個路31的情況下使用該路31執(zhí)行預(yù)取出動作。這里,所謂預(yù)取出動作,是從存儲器2讀出保持在地址寄存器100中的地址范圍的數(shù)據(jù)、將讀出的數(shù)據(jù)保存在該L2高速緩存3中的動作。具體而言,預(yù)取出部111選擇多個高速緩存條目40中的某個,將包含在所選擇的高速緩存條目40中的標簽41改寫為對應(yīng)于保持在地址寄存器100中的地址范圍的標簽地址51,并且將包含在該高速緩存條目40中的行數(shù)據(jù)44改寫為讀出的數(shù)據(jù)。第1接觸部11 在命令寄存器101中保持有第1接觸命令的情況下執(zhí)行第1接觸動作。此外,第1接觸部11 在指定狀態(tài)125中指定了某個路31的情況下,使用該路31 執(zhí)行第1接觸動作。這里,所謂第1接觸動作,與以往的接觸動作同樣,是僅改寫標簽41的動作。具體而言,第ι接觸部11 選擇包含在多個路31中的多個高速緩存條目40中的某個,將包含
13在所選擇的高速緩存條目40中的標簽41改寫為對應(yīng)于保持在地址寄存器100中的地址范圍的標簽地址51。第2接觸部112b在命令寄存器101中保持有第2接觸命令的情況下執(zhí)行第2接觸動作。此外,第2接觸部112b在指定狀態(tài)125下指定了某個路31的情況下使用該路31 執(zhí)行第2接觸動作。這里,所謂第2接觸動作,是除了第1接觸動作以外、還將包含在所選擇的高速緩存條目40中的臟標志43更新為“ 1,,的動作。第3接觸部112c在命令寄存器101中保持有第3接觸命令的情況下執(zhí)行第3接觸動作。此外,第3接觸部112c在指定狀態(tài)125中指定了某個路31的情況下使用該路31 執(zhí)行第3接觸動作。這里,所謂第3接觸動作,是除了第2接觸動作以外、還將包含在所選擇的高速緩存條目40中的行數(shù)據(jù)44全部更新為“0”的動作?;貙懖?13在命令寄存器101中保持有回寫命令的情況下執(zhí)行回寫動作。此外, 預(yù)取出部111在指定狀態(tài)125中指定了某個路31的情況下對該路31執(zhí)行回寫動作。這里,所謂回寫動作,是將L2高速緩存3保存的數(shù)據(jù)中的、被處理器1更新后的數(shù)據(jù)寫回到存儲器2中的動作。具體而言,回寫部113選擇臟標志43是“1”的高速緩存條目 40,將包含在所選擇的高速緩存條目40中的行數(shù)據(jù)44寫入到對應(yīng)于包含在該高速緩存條目40中的標簽41的存儲器2的地址范圍中。禁止部114基于保持在路鎖定寄存器104中的鎖定狀態(tài)124,控制在控制部38的高速緩存動作及命令執(zhí)行中使用的路31。即,禁止部114禁止對包含在鎖定狀態(tài)IM為“ 1” 的路31中的行數(shù)據(jù)44的替代(刪除)。這里,所謂替代,是指在全部的條目被使用的情況下、為了新保存數(shù)據(jù)而基于規(guī)定的算法選擇高速緩存條目40、將所選擇的高速緩存條目40 的行數(shù)據(jù)44剔除的處理。具體而言,在所選擇的高速緩存條目40的臟標志43是“0”的情況下,在該高速緩存條目40中寫入新的標簽41及行數(shù)據(jù)44,在所選擇的高速緩存條目40 的臟標志43是“1”的情況下,在將該高速緩存條目40的行數(shù)據(jù)44回寫到存儲器2中之后, 在該高速緩存條目40中寫入新的標簽41及行數(shù)據(jù)44。此外,禁止部114例外地在由指定狀態(tài)125指定了由鎖定狀態(tài)IM表示的路31的情況下,許可命令執(zhí)行。狀態(tài)寄存器107保持表示命令執(zhí)行部106是否正在執(zhí)行命令的執(zhí)行狀態(tài)127。例如,執(zhí)行狀態(tài)127是“0”的情況表示命令執(zhí)行部106沒有執(zhí)行命令,執(zhí)行狀態(tài)127是“1”的情況表示命令執(zhí)行部106正在執(zhí)行命令。接著,說明有關(guān)本發(fā)明的實施方式的L2高速緩存3的動作。首先,對預(yù)取出動作進行說明。所謂預(yù)取出,是為了高速緩存存儲器的效率提高 (命中率提高、以及高速緩存未命中延遲降低)、在發(fā)生高速緩存未命中之前、將在較近的未來使用的數(shù)據(jù)預(yù)先保存到高速緩存存儲器中的動作。具體而言,L2高速緩存3保存被從處理器1指定的地址范圍的數(shù)據(jù)。此外,在有關(guān)本發(fā)明的實施方式的L2高速緩存3中,基于保持在路鎖定寄存器104 中的鎖定狀態(tài)124、和保持在路指定寄存器105中的指定狀態(tài)125,選擇保存數(shù)據(jù)的路31。圖7是表示L2高速緩存3的預(yù)取出動作的流程的流程圖。
在命令寄存器101中保持有預(yù)取出命令的情況下(S101中是),預(yù)取出部111通過參照保持在路指定寄存器105中的指定狀態(tài)125,判斷是否指定了路31 (S102)。在沒有指定路31的情況下,即在包含在指定狀態(tài)125中的、對應(yīng)于4個路31a 31d的位全部是“0”的情況下(S102中否),接著,預(yù)取出部111通過參照保持在路鎖定寄存器104中的鎖定狀態(tài)124,判斷路31是否被鎖定(S103)。在路31沒有被鎖定的情況下,即在包含在鎖定狀態(tài)IM中的、對應(yīng)于4個路31a 31d的位全部是“0”的情況下(S103中否),預(yù)取出部111通過LRU (Least Recently Used/ 最近最少使用)方式從4個路31a 31d中選擇數(shù)據(jù)保存目標的路31 (S104)。另一方面,在路31被鎖定的情況下,即在包含在鎖定狀態(tài)124中的4個位中1個以上的位是“1”的情況下(S103中是),預(yù)取出部111從沒有被鎖定的(鎖定狀態(tài)IM是 “0”的)路31中,以LRU方式選擇數(shù)據(jù)保存目標的路31 (S105)。此外,在指定了路31的情況下,即在包含在指定狀態(tài)125中的4個位中1個以上的位是“1”的情況下(S102中是),預(yù)取出部111將被指定的(指定狀態(tài)125是“1”)的路31選擇為數(shù)據(jù)保存目標的路31 (S106)。接著,預(yù)取出部111使用由步驟S104、S105或S106選擇的路31進行預(yù)取出。首先,預(yù)取出部111使用保持在開始地址寄存器102中的開始地址122、和保持在尺寸寄存器103中的尺寸123,選擇進行預(yù)取出的地址(S107)。具體而言,預(yù)取出部111將從開始地址122起尺寸123量的地址范圍決定為預(yù)取出對象的地址范圍,將預(yù)取出對象的地址范圍的數(shù)據(jù)以1 字節(jié)單位預(yù)取出。接著,預(yù)取出部111確認包含在由步驟S104、S105或S106選擇的路31中、并且通過由步驟S107選擇的地址的集合索引52指定的高速緩存條目40的臟標志43(S108)。如果臟標志43是“1”(S108中是),則預(yù)取出部111進行回寫(S109)。在臟標志43是“0”的情況下(S108中否),或者在回寫(S109)之后,預(yù)取出部 111將在步驟S107中選擇的地址范圍的數(shù)據(jù)從存儲器2讀出,保存到由步驟S104、S105或 S106選擇的路31中(SllO)。具體而言,預(yù)取出部111將標簽41更新為由步驟S107選擇的地址范圍的標簽地址51,將行數(shù)據(jù)44更新為從存儲器2讀出的數(shù)據(jù),將有效標志42設(shè)定為“ 1 ”,將臟標志43設(shè)定為“0”。此外,在沒有將從開始地址122起尺寸123量的地址范圍的數(shù)據(jù)全部預(yù)取出完的情況下(S111中否),預(yù)取出部111選擇接下來的1 字節(jié)的地址范圍(S108),對所選擇的地址范圍重復(fù)進行與上述步驟S108以后同樣的處理(S108 S110),直到將全部數(shù)據(jù)預(yù)取出完(S111中是)。以上,有關(guān)本發(fā)明的實施方式的L2高速緩存3通過保持由處理器1寫入的指定狀態(tài)125,能夠使用從處理器1指定的路31進行預(yù)取出。進而,有關(guān)本發(fā)明的實施方式的L2高速緩存3通過保持由處理器1寫入的鎖定狀態(tài)124,能夠禁止從處理器1指定的路31的更新(替代)。接著,對由L2高速緩存3進行的第1接觸動作進行說明。這里,所謂接觸,是為了高速緩存存儲器的效率提高(命中率提高、及高速緩存未命中延遲低減)、在發(fā)生高速緩存未命中之前、為了在較近的未來進行改寫的數(shù)據(jù)而預(yù)先確保高速緩存條目40的動作。具體而言,L2高速緩存3確保用來保存從處理器1指定的地址范圍的數(shù)據(jù)的高速緩存條目40。進而,在有關(guān)本發(fā)明的實施方式的L2高速緩存3中,基于保持在路鎖定寄存器104 中的鎖定狀態(tài)124、和保持在路指定寄存器105中的指定狀態(tài)125,選擇用于接觸的路31。圖8是表示由L2高速緩存3進行的第1接觸動作的流程的流程圖。在命令寄存器101中保持有第1接觸命令的情況下(S201中是),第1接觸部 112a通過參照保持在路指定寄存器105中的指定狀態(tài)125,判斷是否指定了路31 (S202)。在沒有指定路31的情況下,即在包含在指定狀態(tài)125中的、對應(yīng)于4個路31a 31d的位全部是“0”的情況下(S202中否),接著,第1接觸部11 通過參照保持在路鎖定寄存器104中的鎖定狀態(tài)124,判斷路31是否被鎖定(S203)。在路31沒有被鎖定的情況下,即在包含在鎖定狀態(tài)IM中的、對應(yīng)于4個路31a 31d的位全部是“0”的情況下(S203中否),第1接觸部11 以LRU方式從4個路31a 31d中選擇用于接觸的路31 (S204)。另一方面,在路31被鎖定的情況下,即在包含在鎖定狀態(tài)124中的4個位中的1 個以上是“1”的情況下(S203中是),第1接觸部11 以LRU方式從沒有被鎖定的(鎖定狀態(tài)124是“0”的)路31中選擇用于接觸的路31(S205)。此外,沒有指定路31的情況下、即在包含在指定狀態(tài)125中的4個位中1個以上的位是“1”的情況下(S202中是),第1接觸部11 選擇被指定的(指定狀態(tài)125是“1” 的)路31作為用于接觸的路31 (S206)。接著,第1接觸部11 使用由步驟S204、S205或S206選擇的路31進行第1接觸。首先,第1接觸部11 使用保持在開始地址寄存器102中的開始地址122、和保持在尺寸寄存器103中的尺寸123,選擇進行接觸的地址(S207)。具體而言,第1接觸部11 將從開始地址122起尺寸123量的地址范圍決定為接觸對象的地址范圍,將接觸對象的地址范圍以對應(yīng)于1 字節(jié)的數(shù)據(jù)的地址單位接觸。接著,第1接觸部11 確認包含在由步驟S204、S205或S206選擇的路31中、并且由在步驟S207中選擇的地址的集合索引52指定的高速緩存條目40的臟標志43(S208)。如果臟標志43是“1”(S208中是),則第1接觸部11 進行回寫(S209)。在臟標志43是“0”的情況下(S208中否)、或者在回寫(S209)之后,第1接觸部 11 將包含在由步驟S204、S205或S206選擇的路31中、由在步驟S207中選擇的地址的集合索引52指定的高速緩存條目40的標簽41更新(S210)。具體而言,第1接觸部11 將標簽41更新為對應(yīng)于在步驟S207中選擇的地址的標簽地址51,將有效標志42設(shè)定為 “ 1”,將臟標志43設(shè)定為“0”。此外,在沒有將從開始地址122起尺寸123量的地址范圍全部接觸完的情況下 (S211中否),第1接觸部11 選擇對應(yīng)于下個1 字節(jié)的數(shù)據(jù)的地址(S208),對所選擇的地址重復(fù)進行與上述的步驟S208以后同樣的處理(S208 S210),直到將全部的地址范圍接觸完(S211中是)。以上,有關(guān)本發(fā)明的實施方式的L2高速緩存3通過保持由處理器1寫入的指定狀態(tài)125,能夠使用從處理器1指定的路31進行接觸。進而,有關(guān)本發(fā)明的實施方式的L2高速緩存3通過保持由處理器1寫入的鎖定狀態(tài)124,能夠禁止從處理器1指定的路31的更新。接著,說明第2接觸動作。第2接觸是除了第1接觸(標簽41的更新)以外還將臟標志43更新的動作。圖9是表示由L2高速緩存3進行的第2接觸動作的流程的流程圖。另外,圖9所示的處理相對于圖8所示的第1接觸動作,步驟S221及S222的處理不同。另外,除此以外的處理與圖8所示的第1接觸動作是同樣,以下僅說明不同點。此外, 圖8所示的處理由第1接觸部11 執(zhí)行,但圖9所示的處理由第2接觸部112b執(zhí)行。在命令寄存器101中保持有第2接觸命令的情況下(S221中是),第2接觸部 112b進行與上述的步驟S202以后同樣的處理。此外,在臟標志43是“0”的情況下(S208中否)、或者在回寫(S209)之后,第2 接觸部112b將包含在由步驟S204、S205或S206選擇的路31中、由在步驟S207中選擇的地址的集合索引52指定的高速緩存條目40中的標簽41及臟標志43更新(S22》。具體而言,第2接觸部112b將標簽41更新為在步驟S207中選擇的地址范圍的標簽地址51,將有效標志42設(shè)定為“ 1 ”,將臟標志43設(shè)定為“ 1 ”。接著,說明第3接觸動作。第3接觸是除了第2接觸(標簽41及臟標志43的更新)以外還將行數(shù)據(jù)44全部更新為“0”的動作。圖10是表示由L2高速緩存3進行的第3接觸動作的流程的流程圖。另外,圖10所示的處理相對于圖8所示的第1接觸動作,步驟S231及S232的處理不同。另外,除此以外的處理與圖8所示的第1接觸動作是同樣的,以下僅說明不同點。 此外,圖8所示的處理由第1接觸部11 執(zhí)行,但圖10所示的處理由第3接觸部112c執(zhí)行。在命令寄存器101中保持有第3接觸命令的情況下(S231中是),第3接觸部 112c進行與上述的步驟S202以后同樣的處理。此外,在臟標志43是“0”的情況下(S208中否)、或者在回寫(S209)之后,第3 接觸部112c將包含在由步驟S204、S205或S206選擇的路31中、由在步驟S207中選擇的地址的集合索引52指定的高速緩存條目40中的標簽41、臟標志43和行數(shù)據(jù)44更新(S232)。 具體而言,第3接觸部112c將標簽41更新為在步驟S207中選擇的地址范圍的標簽地址51, 將包含在行數(shù)據(jù)44中的全部的位更新為“0”,將有效標志42設(shè)定為“1”,將臟標志43設(shè)定為 “1”。接著,說明回寫動作。所謂回寫,是將臟標志43為“1”的行數(shù)據(jù)44寫入到存儲器 2中的動作。即,所謂回寫,是將在高速緩存存儲器中被更新的數(shù)據(jù)寫回到存儲器2中的動作。圖11是表示由L2高速緩存3進行的回寫動作的流程的流程圖。在命令寄存器101中保持有回寫命令的情況下(S301中是),回寫部113通過參照保持在路指定寄存器105中的指定狀態(tài)125,判斷是否指定了路31 (S302)。在沒有指定路31的情況下、即在包含在指定狀態(tài)125中的、對應(yīng)于4個路31a 31d的位全部是“0”的情況下(S302中否),接著,回寫部113通過參照保持在路鎖定寄存器104中的鎖定狀態(tài)124,判斷路31是否被鎖定(S303)。在路31沒有被鎖定的情況下、即在包含在鎖定狀態(tài)IM中的、對應(yīng)于4個路31a
1731d的位全部是“0”的情況下(S303中否),回寫部113選擇全部的路31a 31d作為回寫對象(S304)。另一方面,在路31被鎖定的情況下、即在包含在鎖定狀態(tài)124中的4個位中1個以上的位是“1”的情況下(S303中是),回寫部113選擇沒有被鎖定的(鎖定狀態(tài)IM是 “0”的)全部的路31作為回寫對象(S305)。此外,在指定了路31的情況下、即在包含在指定狀態(tài)125中的4個位中1個以上是“1”的情況下(S302中是),回寫部113將被指定的(指定狀態(tài)125是“1”的)路31選擇為回寫對象(S306)。接著,回寫部113對由步驟S304、S305或S306選擇的路31進行回寫。首先,回寫部113確認包含在由步驟S304、S305或S306選擇的路31中的各高速緩存條目40的臟標志43 (S307)。接著,回寫部113對臟標志43是“1”的高速緩存條目40 (S307中是)進行回寫 (S308)。具體而言,回寫部113將臟標志43是“1”的高速緩存條目40的行數(shù)據(jù)44寫入到存儲器2中,將臟標志43變更為“0”。此外,對于臟標志43是“0”的高速緩存條目40(S307中否),回寫部113不進行回寫。以上,有關(guān)本發(fā)明的實施方式的L2高速緩存3通過保持由處理器1寫入的指定狀態(tài)125,能夠僅對被從處理器1指定的路31進行回寫。進而,有關(guān)本發(fā)明的實施方式的L2高速緩存3通過保持由處理器1寫入的鎖定狀態(tài)124,能夠禁止被從處理器1指定的路31的更新。接著,說明在有關(guān)本發(fā)明的實施方式的存儲器系統(tǒng)中將存儲器2的數(shù)據(jù)復(fù)制到存儲器2內(nèi)的其他地址中的動作。在有關(guān)本發(fā)明的實施方式的存儲器系統(tǒng)中,處理器1能夠使用上述L2高速緩存3 的功能將存儲器2的數(shù)據(jù)復(fù)制到其他地址。圖12是表示有關(guān)本發(fā)明的實施方式的存儲器系統(tǒng)的、數(shù)據(jù)復(fù)制動作的流程的流程圖。此外,圖13是表示保存在存儲器2中的數(shù)據(jù)的例子的圖。以下,說明將圖13所示的地址范圍71 (0x00000000 0x00000100)的256字節(jié)的數(shù)據(jù)復(fù)制到地址范圍72(0x80000000 0x80000100)中的例子。此外,假設(shè)在該復(fù)制中使用路31a。首先,處理器1對L2高速緩存3指示以使其將路31a鎖定(S401)。具體而言,處理器1通過在路鎖定寄存器104中寫入“0,0,0,1”,將路31a鎖定。另外,這里假設(shè)保持在路鎖定寄存器104中的4位的鎖定狀態(tài)IM從低位位起依次對應(yīng)于路31a 31d。接著,處理器1在指定路31a后,對L2高速緩存3指示預(yù)取出復(fù)制源的數(shù)據(jù)640 。具體而言,處理器1將預(yù)取出命令寫入到命令寄存器101中,將開始地址 (0x00000000)寫入到開始地址寄存器102中,將尺寸(0x100)寫入到尺寸寄存器103中,將 “0,0,0,1”寫入到路指定寄存器105中。由此,L2高速緩存3將存儲器2的地址范圍71的數(shù)據(jù)保存到路31a中。另外,這里,假設(shè)保持在路指定寄存器105中的4位的指定狀態(tài)125 從低位位起依次對應(yīng)于路31a 31d。圖14是表示在步驟402中進行了預(yù)取出后的路31a的狀態(tài)的圖。如圖14所示,L2高速緩存3將保存在存儲器2的地址范圍71中的數(shù)據(jù)A及數(shù)據(jù)B保存到高速緩存條目 40a 及 40b 中。這里,高速緩存條目40a對應(yīng)于保持有數(shù)據(jù)A的地址范圍71a的集合索引 52 “0000”,高速緩存條目40b對應(yīng)于保存有數(shù)據(jù)B的地址范圍71b的集合索引52“0001”。 此外,L2高速緩存3在高速緩存條目40a及40b的標簽41中都保存作為地址范圍71的標簽地址51的標簽A (0x000000)。此外,L2高速緩存3將高速緩存條目40a及40b的有效標志42都設(shè)定為“1”,將臟標志43都設(shè)定為“0”。接著,處理器1等待由L2高速緩存3進行的預(yù)取出動作完成(S40;3)。具體而言, 處理器1通過確認保持在狀態(tài)寄存器107中的執(zhí)行狀態(tài)127,判斷預(yù)取出動作的完成。在由L2高速緩存3進行的預(yù)取出動作完成后,接著,處理器1在指定了路31a之后,對L2高速緩存3指示對復(fù)制目標的地址的第2接觸動作(S404)。具體而言,處理器1 將第2接觸命令寫入到命令寄存器101中,將開始地址(0x80000000)寫入到開始地址寄存器102中,將尺寸(0x100)寫入到尺寸寄存器103中,將“0,0,0,1”寫入到路指定寄存器 105中。由此,L2高速緩存3設(shè)置在步驟S402中保存了數(shù)據(jù)的路31a的高速緩存條目40a 及40b的標簽41及臟標志43。圖15是表示在步驟403中進行了第2接觸后的路31a的狀態(tài)的圖。如圖15所示, L2高速緩存3將高速緩存條目40a及40b的標簽41都更新為作為復(fù)制目標的地址范圍72 的標簽地址51的標簽B (0x100000)。此外,L2高速緩存3將高速緩存條目40a及40b的臟標志43都設(shè)定為“1”。這樣,在有關(guān)本發(fā)明的實施方式的存儲器系統(tǒng)中,通過指定路31,能夠指定保存在 L2高速緩存3中的復(fù)制源的數(shù)據(jù)而變更標簽41。即,通過指定了路31的第2接觸,能夠在 L2高速緩存3內(nèi)將復(fù)制源的數(shù)據(jù)的地址變更為復(fù)制目標的數(shù)據(jù)的地址。接著,處理器1等待由L2高速緩存3進行的第2接觸動作完成640 。具體而言,處理器1通過確認保持在狀態(tài)寄存器107中的執(zhí)行狀態(tài)127,判斷第2接觸動作是否已完成。在由L2高速緩存3進行的第2接觸動作完成后,接著,處理器1將路31a的鎖定解除(S406)。具體而言,處理器1通過對路鎖定寄存器104寫入“0,0,0,0”,將路31a的鎖
定解除。接著,處理器1對L2高速緩存3指示回寫動作(S407)。具體而言,處理器1將回寫命令寫入到命令寄存器101中。由此,L2高速緩存3在對應(yīng)于由步驟S404更新后的標簽B的地址范圍71中寫入數(shù)據(jù)A及數(shù)據(jù)B。具體而言,L2高速緩存3將包含在臟標志43 為“1”的高速緩存條目40中的行數(shù)據(jù)44寫入到存儲器2中。這里,在本發(fā)明的實施方式中,通過第2接觸動作(S404),與標簽41的更新同時,將臟標志43設(shè)定為“1”。由此,通過在第2接觸動作(S404)之后進行回寫,將數(shù)據(jù)復(fù)制到對應(yīng)于更新后的標簽41的地址范圍 72中。圖16是表示回寫動作(S407)后的、保存在存儲器2中的數(shù)據(jù)的圖。如圖16所示, 通過圖12所示的處理,將保存在地址范圍71 (71a及71b)中的數(shù)據(jù)A及數(shù)據(jù)B復(fù)制到地址范圍72 (7 及72b)中。以上,在步驟S404中,通過處理器1對L2高速緩存3指示指定了路31a的第2接觸命令,能夠變更保存在L2高速緩存3內(nèi)的希望的高速緩存條目40的標簽41。這里,如上述的例子所示,復(fù)制源的地址范圍71和復(fù)制目標的地址范圍72需要具有相同的集合索引52。這是因為,在集合關(guān)聯(lián)方式的高速緩存存儲器中,使用路31內(nèi)的哪個高速緩存條目40由集合索引52決定。即,為了唯一地選擇包含在L2高速緩存3中的多個高速緩存條目40中的某個,需要指定路31及集合索引52。由此,處理器1通過由指定狀態(tài)125指定路31、并且將復(fù)制源的地址范圍71和復(fù)制目標的地址范圍72指定為具有相同的集合索引52的地址范圍,能夠在指定保存有保存在L2高速緩存3中的復(fù)制源的地址范圍71的數(shù)據(jù)的高速緩存條目40a及40b后進行接觸動作(標簽41的更新)。由此,在本發(fā)明的實施方式中,能夠利用接觸而高速地進行數(shù)據(jù)復(fù)制。進而,在第2接觸中,在與標簽41的更新同時將臟標志43更新為“1”。由此,通過在執(zhí)行第2接觸后進行回寫,將變更了標簽41的高速緩存條目的數(shù)據(jù)回寫。即,將對應(yīng)于變更前的標簽地址的地址區(qū)域的數(shù)據(jù)復(fù)制到對應(yīng)于變更后的標簽地址的地址區(qū)域中。另一方面,在使用以往的高速緩存存儲器的存儲器系統(tǒng)中,為了進行同樣的復(fù)制動作,例如,處理器1將復(fù)制源的數(shù)據(jù)預(yù)取出到高速緩存存儲器中,接著,將預(yù)取出的復(fù)制源的數(shù)據(jù)從高速緩存存儲器讀出,使高速緩存存儲器將復(fù)制目標的地址進行第1接觸(僅變更標簽41),接著,將讀出的復(fù)制源的數(shù)據(jù)指定復(fù)制目標的地址而寫入到高速緩存存儲器中,接著,需要對高速緩存存儲器指示回寫。這樣,通過使用L2高速緩存3,處理器1能夠省略上述讀出及寫入動作。進而,在以往的復(fù)制方法中,在復(fù)制1 字節(jié)的數(shù)據(jù)的情況下,需要使用兩個高速緩存條目40,相對于此,有關(guān)本發(fā)明的復(fù)制方法能夠僅使用一個高速緩存條目40實現(xiàn)。由此,能夠削減L2高速緩存3中的行替換處理的發(fā)生次數(shù)。這樣,通過使用有關(guān)本發(fā)明的實施方式的L2高速緩存3,處理器1能夠?qū)⒋鎯ζ?的數(shù)據(jù)高速地復(fù)制到其他地址中。進而,在有關(guān)本發(fā)明的實施方式的存儲器系統(tǒng)中,在步驟S401中將用于數(shù)據(jù)復(fù)制動作的路31a鎖定。由此,在該數(shù)據(jù)復(fù)制動作中,能夠防止將用于數(shù)據(jù)復(fù)制動作的路31a的數(shù)據(jù)通過通常的高速緩存動作或其他命令刪除或更新。進而,在有關(guān)本發(fā)明的實施方式的存儲器系統(tǒng)中,通過步驟S402中的指定了路 31a的預(yù)取出,將復(fù)制源的數(shù)據(jù)保存到L2高速緩存3中。由此,處理器1能夠掌握保存復(fù)制源的數(shù)據(jù)的路31a,所以個指定該路31a而對L2高速緩存3指示第2接觸命令。另外,也可以指定路31a而不進行預(yù)取出,而在對通常的預(yù)取出、或已經(jīng)保存的數(shù)據(jù)進行路31的鎖定(S401)之后進行步驟S404以后的處理。此外,在圖12中,在進行路鎖定解除(S406)之后進行回寫(S407),但也可以指定路31a而進行回寫。圖17是表示有關(guān)本發(fā)明的實施方式的存儲器系統(tǒng)的、數(shù)據(jù)復(fù)制動作的流程的變形例的流程圖。如圖17所示,在由L2高速緩存3進行的第2接觸動作完成后(S405之后),接著, 處理器1對L2高速緩存3指示指定了路31a的回寫動作(S411)。具體而言,處理器1在命令寄存器101中寫入回寫命令,在路指定寄存器105中寫入“0,0,0,1”。由此,L2高速緩存 3在對應(yīng)于由步驟S404更新后的標簽B的地址范圍71中寫入數(shù)據(jù)A及數(shù)據(jù)B。具體而言,L2高速緩存3將包含在路31a中的、包含在臟標志43是“1”的高速緩存條目40中的行數(shù)據(jù)44寫入到存儲器2中。接著,處理器1將路31a的鎖定解除(S412)。在這樣的圖17所示的處理中,也與圖12所示的處理同樣,能夠?qū)⒈4嬖诘刂贩秶?71中的數(shù)據(jù)A及數(shù)據(jù)B復(fù)制到地址范圍72中。進而,由于僅指定路31a而進行回寫,所以與對全部的路31進行回寫的情況相比能夠縮短處理時間。此外,在圖12所示的步驟S407中,也可以指定路31a而進行回寫。此外,在圖12所示的步驟S407中,基于由處理器1寫入的回寫命令,L2高速緩存 3進行回寫,但也可以不是基于來自處理器1的命令,而通過在通常的高速緩存動作時進行的回寫、或在命令(預(yù)取出命令或第1 第3接觸)執(zhí)行時進行的回寫,將高速緩存條目 40a及40b的數(shù)據(jù)寫入到存儲器2中。接著,在有關(guān)本發(fā)明的實施方式的存儲器系統(tǒng)中,說明將存儲器2的指定的地址范圍的數(shù)據(jù)改寫為“0”的動作(以下稱作零寫入動作)進行說明。在有關(guān)本發(fā)明的實施方式的存儲器系統(tǒng)中,處理器1能夠使用上述L2高速緩存3 的功能將存儲器2的指定的地址范圍的數(shù)據(jù)改寫為“0”。圖18是表示有關(guān)本發(fā)明的實施方式的存儲器系統(tǒng)的零寫入動作的流程的流程圖。以下,說明將圖13所示的地址范圍71 (0x00000000 0x00000100)的256字節(jié)的
數(shù)據(jù)全部改寫為“0”的例子。首先,處理器1對L2高速緩存3指示第3接觸動作(S501)。具體而言,處理器1在命令寄存器101中寫入第3接觸命令,在開始地址寄存器102中寫入開始地址 (0x00000000),在尺寸寄存器103中寫入尺寸(0x100)。由此,L2高速緩存3在將對應(yīng)于地址范圍71的地址接觸后將臟標志43更新,再將行數(shù)據(jù)44全部更新為“0”。另外,這里假設(shè)作為用于第3接觸的路31而選擇了路31a。圖19是表示在步驟501中進行第3接觸之后的路31a的狀態(tài)的圖。如圖19所示, L2高速緩存3將高速緩存條目40a及40b的標簽41都更新為作為地址范圍71的標簽地址 51的標簽A (0x000000)。此外,L2高速緩存3將高速緩存條目40a及40b的臟標志43都設(shè)定為“1”,將行數(shù)據(jù)44都改寫為全為“0”的數(shù)據(jù)。接著,處理器1等待由L2高速緩存3進行的第3接觸動作完成650 。具體而言,處理器1通過確認保持在狀態(tài)寄存器107中的執(zhí)行狀態(tài)127,判斷第3接觸動作是否已完成。在由L2高速緩存3進行的第3接觸動作完成之后,接著,處理器1對L2高速緩存 3指示回寫動作(S503)。具體而言,處理器1在命令寄存器101中寫入回寫命令。由此,L2 高速緩存3在對應(yīng)于在步驟S501中更新后的標簽A的地址范圍71中寫入全部為“0”的數(shù)據(jù)。具體而言,L2高速緩存3將包含在臟標志43是“1”的高速緩存條目40中的行數(shù)據(jù)44 寫入到存儲器2中。這里,在本發(fā)明的實施方式中,通過第3接觸動作(S501),與標簽41的更新同時,將臟標志43設(shè)定為“1”。由此,通過在第3接觸動作(S501)之后進行回寫,在對應(yīng)于所設(shè)定的標簽41的地址范圍71中寫入全為“0”的數(shù)據(jù)。圖20是表示回寫動作(S503)后的、保存在存儲器2中的數(shù)據(jù)的圖。如圖20所示,
21通過圖18所示的處理,將地址范圍71的數(shù)據(jù)全部改寫為“0”。通過以上,有關(guān)本發(fā)明的實施方式的L2高速緩存3通過第3接觸將標簽41、臟標志43、和行數(shù)據(jù)44同時更新。由此,通過在執(zhí)行第3接觸之后進行回寫,將更新后的行數(shù)據(jù) 44寫入到對應(yīng)于更新后的標簽41的地址范圍71中。另一方面,在使用以往的高速緩存存儲器的存儲器系統(tǒng)中,為了進行同樣的寫入動作,例如需要處理器1使高速緩存存儲器將寫入目標的地址進行第1接觸(僅變更標簽 41),接著,將全為“0”的數(shù)據(jù)指定寫入目標的地址而寫入到高速緩存存儲器中,接著,對高速緩存存儲器指示回寫。這樣,通過使用L2高速緩存3,處理器1能夠省略寫入動作。由此,通過使用有關(guān)本發(fā)明的L2高速緩存3,處理器1能夠?qū)⒋鎯ζ?的數(shù)據(jù)高速地改寫為全為“0”的數(shù)據(jù)。另外,在上述說明中,在第3接觸動作時,L2高速緩存3將行數(shù)據(jù)44更新為全為 “0”的數(shù)據(jù),但也可以將行數(shù)據(jù)44更新為全為“1”的數(shù)據(jù)。換言之,L2高速緩存3在第3 接觸動作時,也可以將預(yù)先決定了行數(shù)據(jù)44的全部的位更新為相同的數(shù)據(jù)。進而,L2高速緩存3在第3接觸動作時,也可以將行數(shù)據(jù)44更新為混合存在數(shù)據(jù)“0”及“1”的數(shù)據(jù)。此外,在步驟S501中,也可以指定路31而進行第3接觸。進而,在步驟S503中, 也可以指定用于第3接觸的路31而進行回寫。進而,在指定路31而進行第3接觸的情況下,也可以在將該路31鎖定之后、使用鎖定的路31進行第3接觸(S501)。以上,對有關(guān)本發(fā)明的實施方式的高速緩存存儲器進行了說明,但本發(fā)明并不限定于該實施方式。例如,在上述說明中,敘述了在L2高速緩存3中采用有關(guān)本發(fā)明的高速緩存存儲器的例子,但也可以在Ll高速緩存4中采用有關(guān)本發(fā)明的高速緩存存儲器。這里,在進行使用L2高速緩存3的上述復(fù)制動作、或進行上述寫入動作的情況下, 將L2高速緩存3內(nèi)的一部分的保存區(qū)域用于該復(fù)制動作、或該寫入動作。由此,通常的高速緩存動作等的處理能力有可能暫時下降。這里,2級高速緩存與1級高速緩存相比,處理能力的下降給存儲器系統(tǒng)整體帶來的影響較小。具體而言,在Ll高速緩存4中采用有關(guān)本發(fā)明的高速緩存存儲器的情況下,來自處理器1的Ll高速緩存4被妨礙命中時的訪問。另一方面,通過在L2高速緩存3中采用本發(fā)明的高速緩存存儲器,能夠減輕上述命中時的訪問的妨礙。即,通過將有關(guān)本發(fā)明的高速緩存存儲器應(yīng)用到2級高速緩存中,能夠降低對存儲器系統(tǒng)整體的不良影響。此外,在上述說明中,以具備L2高速緩存3及Ll高速緩存4的存儲器系統(tǒng)為例進行了說明,但也可以在僅具備Ll高速緩存4的存儲器系統(tǒng)中采用本發(fā)明。此外,也可以在具備3級高速緩存以上的存儲器系統(tǒng)中采用本發(fā)明。在此情況下, 因為上述理由,優(yōu)選的是在最大級的高速緩存中采用本發(fā)明的高速緩存存儲器。此外,在上述說明中,地址寄存器100保持開始地址122和尺寸123,但也可以代替尺寸123而保持作為命令對象的地址范圍的最后的地址的末尾地址。換言之,地址寄存器 100也可以代替尺寸寄存器103而具備被從處理器1指定末尾地址的末尾地址寄存器。此外,地址寄存器100也可以不保持地址范圍、而保持指定的地址。這里,所謂指定的地址,既可以是存儲器2上的地址,也可以是存儲器2上的地址的一部分(例如,標簽地址51和集合索引52,或者僅標簽地址)。
此外,在上述說明中,敘述了作為決定行的替換目標的算法而使用LRU方式的例子,但也可以使用循環(huán)方式及隨機方式等其他算法。此外,在上述說明中,作為將路31鎖定的功能,處理器1將保持在路鎖定寄存器 104中的鎖定狀態(tài)IM改寫,但也可以設(shè)置路鎖定命令。即,也可以是,在處理器1在命令寄存器101中寫入了路鎖定命令的情況下,禁止部114將鎖定狀態(tài)IM更新。另外,在使用路鎖定命令的情況下,禁止部114也可以將預(yù)先設(shè)定的路31鎖定,也可以在鎖定命令中包含指定路31的信息。此外,在上述說明中,在預(yù)取出動作及第1 第3接觸動作中,L2高速緩存3在包含在保持于路指定寄存器105中的指定狀態(tài)125中的4位中的某1個以上是“1”的情況下指定路31,進行預(yù)取出動作、第1 第3接觸動作及回寫動作,但也可以將通常的預(yù)取出命令、通常的第1 第3接觸命令、及通常的回寫命令、與路指定的預(yù)取出命令、路指定的第 1 第3接觸命令、及路指定的回寫命令單獨地設(shè)計。具體而言,L2高速緩存3只要僅在命令寄存器101中寫入了路指定的命令的情況下使用由指定狀態(tài)125表示的指定的路31進行處理、在命令寄存器101中寫入有通常的命令的情況下與指定狀態(tài)125無關(guān)地選擇用于處理的路31就可以。 此外,在上述說明中,通過指定狀態(tài)125以路31為單位進行指定,但也可以由包含在路中的1個以上的高速緩存條目40為單位進行指定。即,在上述復(fù)制動作時,也可以指定保存有復(fù)制源的數(shù)據(jù)的條目而進行第2接觸。此外,在上述說明中,通過鎖定狀態(tài)124以路31為單位進行鎖定,但也可以以包含在路中的1個以上的高速緩存條目40為單位進行鎖定。此外,在上述說明中,L2高速緩存3具備保持鎖定狀態(tài)124的路鎖定寄存器104, 但也可以是,多個高速緩存條目40分別包括與有效標志42及臟標志43同樣的鎖定標志, 控制部38通過確認該鎖定標志而判斷該條目是否被鎖定。此外,在上述說明中,設(shè)為被鎖定的路31在通常的高速緩存動作、及通常的命令動作時不被使用,但也可以在不發(fā)生替代的情況下將鎖定的路31在動作中使用。具體而言,也可以用在通常的高速緩存動作中的讀命中時的動作等中。此外,上述說明以L2高速緩存3是4路集合關(guān)聯(lián)方式的高速緩存存儲器的情況為例進行了說明,但路31的數(shù)量也可以是4個以外。進而,也可以在全關(guān)聯(lián)方式的高速緩存存儲器中采用本發(fā)明。即,也可以是多個路 31分別僅包括1個高速緩存條目40。在此情況下,僅通過指定路31,能夠唯一地選擇包含在L2高速緩存3中的希望的高速緩存條目40。由此,沒有上述的、數(shù)據(jù)復(fù)制動作中的復(fù)制目標的地址范圍72的限制(使集合索引52相同的限制),能夠?qū)?shù)據(jù)高速地復(fù)制到希望的地址范圍中。產(chǎn)業(yè)上的可利用性本發(fā)明能夠在高速緩存存儲器及具備高速緩存存儲器的存儲器系統(tǒng)中采用。符號說明1處理器2存儲器3L2高速緩存
4L1高速緩存20地址寄存器21 存儲器 I/F30解碼器31、31a、31b、31c、31d 路32a、32b、32c、32d 比較器33a、33b、33c、33d 與電路34或電路35、36 選擇器37多路信號分離器38控制部39命令處理部40、40a、40b高速緩存條目41 標簽42有效標志43臟標志44行數(shù)據(jù)51標簽地址52集合索引53字索引61轉(zhuǎn)移命令62源操作數(shù)63目標操作數(shù)64命令內(nèi)容71、71a、71b、72、72a、72b 地址范圍100地址寄存器101命令寄存器102開始地址寄存器103尺寸寄存器104路鎖定寄存器105路指定寄存器106命令執(zhí)行部107狀態(tài)寄存器111預(yù)取出部11加第1接觸部11 第2接觸部112c第3接觸部113回寫部114禁止部
121命令
122開始地址
1 尺寸
1 鎖定狀態(tài)
125指定狀態(tài)
127執(zhí)行狀態(tài)
權(quán)利要求
1.一種高速緩存存儲器,具有多個分別包括標簽地址、行數(shù)據(jù)、和臟標志在內(nèi)的條目, 其特征在于,具備命令執(zhí)行部,在由處理器指示了第1命令的情況下,將在上述多個條目中的、由上述處理器指定的1個以上的條目中包含的上述標簽地址改寫為對應(yīng)于由上述處理器指定的地址的標簽地址,并且設(shè)置對應(yīng)于該條目的上述臟標志;以及回寫部,將包含在設(shè)置了上述臟標志的條目中的上述行數(shù)據(jù)回寫到主存儲器。
2.如權(quán)利要求1所述的高速緩存存儲器,其特征在于,上述高速緩存存儲器還具備禁止部,該禁止部禁止上述多個條目中的、由上述處理器指定的1個以上的條目中包含的行數(shù)據(jù)的替代;在由上述處理器指示了第1命令的情況下,上述命令執(zhí)行部將由上述禁止部禁止了行數(shù)據(jù)的替代的條目中包含的上述標簽地址改寫為對應(yīng)于由上述處理器指定的上述地址的標簽地址,并且設(shè)置對應(yīng)于該條目的上述臟標志。
3.如權(quán)利要求1或2所述的高速緩存存儲器,其特征在于,在由上述處理器指示了第2命令的情況下,上述命令執(zhí)行部還從上述主存儲器讀出由上述處理器指定的地址的數(shù)據(jù),將上述多個條目中的、由上述處理器指定的1個以上的條目中包含的上述標簽地址改寫為對應(yīng)于上述地址的標簽地址,并且將包含在該條目中的上述行數(shù)據(jù)改寫為讀出的上述數(shù)據(jù);在由上述處理器指示了第1命令的情況下,上述命令執(zhí)行部將由上述禁止部禁止了行數(shù)據(jù)的替代的條目中包含的上述標簽地址改寫為對應(yīng)于由上述處理器指定的上述地址的標簽地址,并且設(shè)置對應(yīng)于該條目的上述臟標志。
4.如權(quán)利要求1 3中任一項所述的高速緩存存儲器,其特征在于,在由上述處理器指示了第3命令的情況下,上述回寫部將上述多個條目中的、由上述處理器指定的條目中包含的上述行數(shù)據(jù)回寫到上述主存儲器。
5.如權(quán)利要求1所述的高速緩存存儲器,其特征在于,上述高速緩存存儲器具有包括1個以上的上述條目的多個路;在由上述處理器指示了上述第1命令的情況下,上述命令執(zhí)行部選擇上述多個路中的、包含在由上述處理器指定的1個以上的路中的條目,將包含在所選擇的條目中的上述標簽地址改寫為對應(yīng)于由上述處理器指定的上述地址的標簽地址,并且設(shè)置對應(yīng)于該條目的上述臟標志。
6.一種高速緩存存儲器,具有多個分別包括標簽地址、行數(shù)據(jù)、和臟標志在內(nèi)的條目, 其特征在于,具備命令執(zhí)行部,在由處理器指示了第4命令的情況下,將在上述多個條目中的某個條目中包含的上述標簽地址改寫為對應(yīng)于由上述處理器指定的地址的標簽地址,設(shè)置包含在該條目中的上述臟標志,將包含在該條目中的上述行數(shù)據(jù)變更為預(yù)先設(shè)定的數(shù)據(jù);以及回寫部,將包含在設(shè)置了上述臟標志的條目中的上述行數(shù)據(jù)回寫到主存儲器。
7.如權(quán)利要求6所述的高速緩存存儲器,其特征在于,上述預(yù)先設(shè)定的數(shù)據(jù)是全部位都相同的數(shù)據(jù)。
8.一種存儲器系統(tǒng),具備處理器、1級高速緩存存儲器、2級高速緩存存儲器、和存儲器,其特征在于,上述2級高速緩存存儲器是權(quán)利要求1 7中任一項所述的高速緩存存儲器。
9.一種數(shù)據(jù)復(fù)制方法,將保存在主存儲器的第1地址中的第1數(shù)據(jù)復(fù)制到該主存儲器的第2地址中,其特征在于,包括保存步驟,將對應(yīng)于上述第1地址的標簽地址及上述第1數(shù)據(jù)保存到高速緩存存儲器中;更新步驟,將保存在上述高速緩存存儲器中的對應(yīng)于上述第1地址的上述標簽地址改寫為對應(yīng)于上述第2地址的標簽地址,并且設(shè)置對應(yīng)于該第1數(shù)據(jù)的臟標志;以及回寫步驟,將該第1數(shù)據(jù)從上述高速緩存存儲器回寫到上述主存儲器。
10.如權(quán)利要求9所述的數(shù)據(jù)復(fù)制方法,其特征在于,上述數(shù)據(jù)復(fù)制方法還包括禁止步驟,該禁止步驟禁止在從上述保存步驟之后到上述更新步驟完成為止的期間中替代保存在上述高速緩存存儲器中的上述第1數(shù)據(jù)。
11.如權(quán)利要求9或10所述的數(shù)據(jù)復(fù)制方法,其特征在于, 上述保存步驟包括指定上述高速緩存存儲器具有的多個條目中的第1條目的步驟;以及在指定的上述第1條目中保存對應(yīng)于上述第1地址的標簽地址及上述第1數(shù)據(jù)的步驟;上述更新步驟包括 指定上述第1條目的步驟;以及將對應(yīng)于包含在指定的上述第1條目中的上述第1地址的上述標簽地址改寫為對應(yīng)于上述第2地址的標簽地址,并且設(shè)置對應(yīng)于該第1數(shù)據(jù)的臟標志的步驟。
12.如權(quán)利要求9或10所述的數(shù)據(jù)復(fù)制方法,其特征在于, 上述保存步驟包括指定上述高速緩存存儲器具有的多個條目中的第1條目的步驟;以及在指定的上述第1條目中保存對應(yīng)于上述第1地址的標簽地址及上述第1數(shù)據(jù)的步驟;上述回寫步驟包括 指定上述第1條目的步驟;以及將包含在指定的上述條目中的上述第1數(shù)據(jù)從上述高速緩存存儲器回寫到上述主存儲器中的步驟。
13.如權(quán)利要求9 12中任一項所述的數(shù)據(jù)復(fù)制方法,其特征在于, 上述高速緩存存儲器具有多個分別包括多個條目在內(nèi)的路;上述第1地址及上述第2地址分別包括指定上述路內(nèi)的條目的集合索引; 上述第1地址和上述第2地址具有相同的上述集合索引; 上述更新步驟包括指定包括保存上述第1數(shù)據(jù)的條目在內(nèi)的路的步驟;選擇包含在指定的上述路中的多個條目中的、由包含在上述第2地址中的上述集合索引指定的條目的步驟;以及將對應(yīng)于包含在選擇的上述條目中的上述第1地址的上述標簽地址改寫為對應(yīng)于上述第2地址的標簽地址,并且設(shè)置對應(yīng)于該第1數(shù)據(jù)的臟標志的步驟。
14. 一種數(shù)據(jù)改寫方法,將保存在主存儲器的第1地址中的數(shù)據(jù)改寫為預(yù)先設(shè)定的第1 數(shù)據(jù),其特征在于,包括更新步驟,將在高速緩存存儲器具有的多個條目中的某個條目中包含的標簽地址改寫為對應(yīng)于上述第1地址的標簽地址,設(shè)置包含在該條目中的上述臟標志,將包含在該條目中的行數(shù)據(jù)變更為上述第1數(shù)據(jù);以及回寫步驟,將上述第1數(shù)據(jù)從上述高速緩存存儲器回寫到上述主存儲器。
全文摘要
有關(guān)本發(fā)明的L2高速緩存(3)具備預(yù)取出部(111),在被處理器(1)指定了第2接觸命令的情況下,將多個高速緩存條目(40)中的、由處理器(1)指定的高速緩存條目(40)中包含的標簽(41)改寫為對應(yīng)于由處理器(1)指定的地址的標簽地址,設(shè)置臟標志(43);回寫部(113),將包含在設(shè)置了臟標志(43)的高速緩存條目(40)中的行數(shù)據(jù)(44)回寫到存儲器(2)。
文檔編號G06F12/08GK102160040SQ200980136468
公開日2011年8月17日 申請日期2009年9月15日 優(yōu)先權(quán)日2008年9月17日
發(fā)明者礒野貴亙 申請人:松下電器產(chǎn)業(yè)株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
和田市| 永济市| 秦皇岛市| 浮梁县| 邳州市| 汉阴县| 榆树市| 芒康县| 漠河县| 达拉特旗| 厦门市| 黔江区| 琼海市| 河南省| 祁门县| 新昌县| 苏尼特左旗| 溆浦县| 沂南县| 宜兴市| 高要市| 延边| 平湖市| 石景山区| 凤冈县| 桦甸市| 曲沃县| 洛阳市| 通江县| 长海县| 洪洞县| 五峰| 化州市| 阳春市| 扎鲁特旗| 苏尼特左旗| 余江县| 乌兰察布市| 博野县| 泸西县| 扎兰屯市|