200530817 九、發明說明: 【發明所屬之^技術領域】 本發明係有關於一種用以將處理器之記憶體存取高速 化之快取記憶體及其控制方法。 5 【冬餘】 快取記憶體,近年來被廣用於縮短對主記憶體之存取 時間,以謀求提昇處理器之處理能力者。 由處理器而將資料寫入快取記憶體時,為於主記憶體 與快取記憶體間確保資料的一貫性,而必須將資料由快取 10記憶體寫回主記憶體。該寫回之控制方式有寫入(write through)模式及寫回(write back)模式。 以寫入模式進行時,在執行由處理器寫入快取記憶體 之寫命令時,對快取記憶體及主記憶體兩邊進行寫入者。 依該寫入模式,每次將資料寫入快取記憶體時,便產生寫 15回損失(Write back Penalty),因此對記憶體寫入(mem〇ry write)而言,縮短記憶體存取時間之效果不大。 另一方面,寫回模式則於寫命令予以執行時,只對快 取圮憶體進行寫入,藉快取未中(cache miss)而將已使用列 (dirty llne)換成另一新列之前,先由快取記憶體寫回到主記 2〇憶體。該寫回模式雖不是在各記憶體寫入時產生寫回損 失,但在記憶體讀出(mem〇ry read)及記憶體寫入中發生快 取未中時,除了載入損失外還因為產生寫回損失,而增加 决取未中日可之損失。在此,載入損失⑽办)意指··萨 由主記憶體朝快取記憶體載入新資料時所產生之損失。寫 200530817 回損失則稱為··由快取記憶體將資料寫回主記憶體時所產 生之損失。 可減少如此快取未中損失之習知技術係揭示於諸如日 本國發明專利申請公開公報”特開平6-309231號,,等文獻 5 中。 依該習知技術’在寫回模式之快取記憶體中,除了由 快取記憶體將資料逐出而朝主記憶體寫回之通常的寫回處 理,另外進行一用以只做將快取記憶體之資料寫回主記情 體之寫回處理。後者的處理’首先判定快取記憶體之一個 10 登錄的資料是否為已使用(dirty)者,如果是已使用時,將該 資料寫回主記憶體。接著,當寫回正常結束,且碟認快取 s己憶體上之負料沒有化後’將快取狀態進行清淨 者。 按此,習知技術中之快取記憶體係可減少由快取記憶 15 體〉向主5己fe體之〉里(traffic) ’謀求糸統全體機能的提昇。 惟,依上述習知技術,有如下問題存在,即,就算是 在發生快取未中前先將已使用之登錄的資料寫回記憶體, 在该寫回後馬上將資料寫入該登錄時,反而使效率降低者。 有鑑於上述課題,本發明之目的係於提供一種快取記 20憶體,俾有效率地降低快取未中時之寫回損失者。 【發明内容3 為達成上述目的,本發明之快取記憶體係包含有··付 與機構’係用以對每—可保持列資料之快取登錄,付與一 用、"員示疋否可對該快取登錄結束高速存取之高速存取結 200530817 5 15 束屬,者;選擇機構,制以選擇-快取登錄,該快取登 錄係心付與有_用以顯河將高速麵結束之高速存取結 束屬〖生γ且設定有一用以顯示業已寫入之已使用旗標者: 及寫回機構,仙以於與存取未中發生無關之狀態下, 將業經選擇之快取登錄之列資料寫回記憶體者。 姓依該結構,在發生快取未中之前便將一可將高速存取 結束=快取登錄寫回,因此在快取未中時只發生載入損 口此可減少寫回損失之發生者。藉此,可將快取記情 體之效率提昇,且可提转取速度者。 〜 、、吳機構亦可構建成/丹,· 1示付裒置, 用^=持業由處理器指定之位址範圍者;搜尋裝置,係 用以於業經搜=址;圍之資料者;及,設定裝置,係 取結束之高取結m設定—心騎可將高速存 发置 20 置,係用以於前述伴持……有:弟1變換褒 指向列資料途":、將該= 呆持:位址範圍之細 址範圍中所含之前頭列之二*紐.文換成—可指向前述位 係用以於前述保持農置 址者;第2變換裝置, 列資料途令時,將^末呆持之位址範圍之末尾位址指向 中所含之末尾列之結相 j W心位址範圍 心疋否有用以保持與由前述起 係用以 列位址之各顺w Η “切前述結束 野應之貧料之快取登錄存在者。 200530817 依該結構,處理器係於與快取記憶體之列尺寸或列境 界無關之狀悲下,指定任一位址,俾作為須設定一用以顯 示可將高速存取結束之高速存取結束屬性之位址範圍。換 言之,程式設計師或編譯器便無須意識列尺寸及列境界, 5因此就無須管理用以舄回之列位址,且可使程式的製作簡 易化者。 在此,前述快取記憶體亦可構建成,更具有一選擇(替 換)機構,該選擇機構係用以於發生快取未中時,選擇一付 與有用以顯示可將高速存取結束之高速存取結束屬性之快 10 取登錄作為替換對象者。 依該結構,藉於用以保持存取頻率低之資料的快取登 錄叹定用以顯不可將高速存取結束之高速存取結束屬 〖便可m夫取登錄最先被替換,因此可減少因存取頻 率較低之資料留在快取記憶體時所發生之快取未中引發 苦〆 …行“以再哽成,具有··命令檢測裝 2〇 理器已:行一儲存命令’該儲存命令係以處 性之付與及存取結束之高速存取結束屬 用以於藉業經檢出内容者;及,設定裝置,係 前述高速躲料雜=仃有寫从快取登錄,設定 資料以命'高速存取結束屬性之付與及 速存取結束之切7 ’便可間單設定—用以顯示可將高 之N速存取結束屬性者。 200530817 在此,前述寫回機構亦可構建成:於記憶體 為空循R 士 ^ <排成 ” 、T,將快取登錄之資料寫回記憶體者。 依该結構,可進行一利用有空循環之效率佳 在此,< 』馬回者。 則述快取登錄亦可構建成,於每一 5列之多數副引 ^ 用U構成1 經前述選擇找下使用旗標,前述寫回機構係針對業 。。擇饯構所選擇之快取登錄,只將已使用的副列寫 因此可有效 依忒結構,只將已使用的副列予以寫回 率地進行寫回者。 10 15 又,針對本發明之快取記憶體之控制方法, 與上述同樣之機構及作用。 如上,依本發明之快取記憶體,對可能之後不進行寫 入之快取登錄,付與—肋顯示可將高速存取結束之高速 存取結束屬性,於與存取未中發生無關之狀態下,即,發 生快取未巾之前,將該快取登錄寫回者。結果便可在快取 未中%八發生載入損失,因此可減少寫回損失之發生者。 藉此,可將快取記憶體之效率提昇,且可提昇存取速度者。 處理為無須進行用於寫回之列位址管理,且可於與快 取記憶體之列尺寸及列境界無關之狀態下指定任-位址範 圍者。 [圖式簡單說明] 第1圖係顯示本發明實施形態1中包含有處理器、快 取記憶體、記憶體之系統的概略結構方塊圖。 第2圖係顯示快取記憶體結構形態之方塊圖。 20 200530817 第3圖係快取登錄之詳細位元結構之示意圖。 第4圖係顯示控制部結構之方塊圖。 第5圖係顯示C旗標設定部之構成例之方塊圖。 第6A圖係一用以朝起始位址暫存器寫入起始位址之 5 命令例之示意者。 第6B圖係一用以朝尺寸暫存器寫入尺寸之命令例之 示意圖。 第6C圖係一用以朝命令暫存器寫入命令之命令例之 示意圖。 10 第6D圖係命令例之示意圖。 第7圖係顯示起始調正器及結束調正器之說明圖。 第8圖係顯示旗標改寫部之C旗標設定處理之流程圖。 第9圖係顯示清潔處理部之清潔處理例之流程圖。 第10圖係顯示本發明實施形態2中之快取記憶體結構 15 之方塊圖。 第11圖係快取登錄之位元結構之示意圖。 第12圖係顯示控制部結構之方塊圖。 第13圖係替換部之使用旗標的更新例之示意圖。 第14A圖係一示意圖,顯示沒有弱旗標存在時快取登 20 錄被替換之形態。 第14B圖係顯示替換處理中弱旗標W之作用的說明 圖。 第15圖係顯示W旗標設定部之W旗標設定處理之流 程圖。 10 200530817 第16圖係顯示清潔處理部之清潔處理之流程圖。 弟17圖係顯示替換部之u旗標更新處理之流程圖。 第18圖係顯示替換部之替換處理之流程圖。 L實施冷式】 5 (實施形態1) <全體構成> 第1圖係顯示本發明實施形態i中包含有處理器1、快 取記憶體3、記憶體2之系統的概略結構方塊圖。如該圖所 示,本發明之快取記憶體3係設於具有處理器丨及記憶體2 10 之系統中。 快取e憶體3係構造成:於每一用以保持快取之單位 資料(稱為列資料)之快取登錄,保持一用以顯示可將對該快 取登錄高速存取結束之高速存取結束屬性,不管有沒有發 生快取未中,選擇一快取登錄,該快取登錄係付與有一用 15以顯示可將高速存取結束之高速存取結束屬性且設定有一 用以顯示已由處理器寫入之已使用旗標者,將業經選擇之 快取登錄之資料寫回記憶體者。在此,用以顯示可將高速 存取結束之高速存取結束屬性係付與於諸如可能之後不再 進行寫入之快取登錄,戒玎能之後不再進行讀寫之快取登 20 錄者。 <快取記憶體之結構> 以下,針對本發明所適用之4分路(way)集合(set)相聯 (associative)方式之快取纪憶體,作為快取記憶體3之具體 例時之結構進行說明。 200530817 第2圖係顯示快取記憶體3之結構例之方塊圖。如該 圖所示,快取記憶體3係包含有位址暫存器20、記憶體i/F 21、解碼器30、4條分路31a〜31d(以下簡稱為分路0〜分路 3)、4個比較器32a〜32d、4個及電路33a〜33d、或電路34、 5選擇器35、36、多工解訊器37、及,控制部38。 位址暫存器20係一用以保持朝記憶體2存取之存取位 址之暫存器。該存取位址係一 32位元者。如該圖所示,存 取位址包括由最高位元依序為21位元之標籤位址、4位元 之集合索引(setincjex)(圖中之si)、及,5位元之字索引(圖 10中之WI)。在此,標籤位址係指對映(mapping)於分路之記 憶體中之區域(該尺寸為集合數χ區塊)。該區域之尺寸係以 車乂才不籤位址還低之位址位元(Α1〇〜Α〇)所訂定之尺寸,即2k 位兀組’亦為丨條分路之尺寸。集合索引(SI)係指橫跨分路 0〜分路3之多數集合中之1者。集合索引為4位元,因此 15该集合數為16集合。以標籤位址及集合索引所界定之快取 登錄係替換單位,已儲存於快取記憶體時,被稱為列資料 (lme data)或列(iine)。列資料的尺寸係以較集合索引還低之 位址位元所訂定之尺寸,128位元組…字為4位元 組’則1列貝料則為32字。字索引(WI)係指··可構成列資 20料之夕字中的1字。位址暫存器中之最低2位元(ai、 A0)係於進行字存取時予以忽視。 記憶體I/F 21孫扣·丄,上 U曰·由快取記憶體3寫回記憶體2之 資料寫回、由記丨咅轉9甚 u'to 2载入於快取記憶體3之資料載入等 由快取§己憶體3向記恃触0 J。匕歧2進行存取之i/f 〇 12 200530817 解碼器30係對集合索引之4位元進行解碼,且選擇橫 跨4條分路0〜分路3之16集合中之一集合。 4條分路0〜分路3係具有同一構成數之4條分路,具 有4x2k位元組之容量。各分路係具有16個快取登錄。 5 第3圖係顯示其中1個快取登錄中之詳細位元結構。 如該圖所示,1個快取登錄係具有:確認旗標(valid flag)V0 〜V3、21位元之標藏(tag)、128位元組之列貢料、南速存取 結束屬性(圖中之C旗標)、及已使用旗標(dirty flag)D0〜D3。 標籤是21位元之標籤位址之複製本。 10 列資料係藉標籤位址及集合索引所界定之方塊中的 128位元組資料的複製本,由32位元組之4條副列所構造 成者。 確認旗標V0〜V3係對應於4條副列,顯示副列是否有 效者。 15 高速存取結束屬性(清潔旗標C)係顯示是否可將高速 存取結束者。例如意指:之後是否不再對該快取登錄進行 寫入者。C = 0意指·之後具有進行寫入之可能性者。C — 1 意指:之後沒有進行寫入者,如果是已使用(dirty)時,則意 指須進行清潔(寫回)者。 20 已使用旗標D0〜D3係顯示:對應4個副列,是否有由 處理器朝該副列進行寫入,即,副列中雖有業經快取之資 料存在,但是否有必須藉寫入而寫回記憶體,俾與記憶體 中之資料相異者。 比較器32a係用以比較:位址暫存器20中之標蕺位址 13 200530817 與藉集合索引所選擇之集合中所含之4個標籤中之分路0 之標籤是否一致者。針對比較器32b〜32c,除了分別對應於 分路31b〜31d外,其餘構成同樣者。 及電路33a係用以比較確認旗標與比較器32a之比較 5 結果是否一致者。令該比較結果為hO。比較結果hO為1 時,意指:存在有與位址暫存器20中之標籤位址及集合索 引相對應之列資料者,即意指:業已於分路0中命中者。 比較結果hO為0時,則意指已未中者。及電路33b〜33d, 除了各對應於分路31b〜31d外,其餘構成同樣者。該比較 10 結果hi〜h3則意指:業已於分路1〜3命中或未中者。 或電路34係用以採用比較結果hO〜h3之或。令該或之 結果為命中(hit)。命中(hit)係顯示快取記憶體中是否已命 中〇 選擇器35係用以於業經選擇之集合中之分路0〜3之列 15 資料中選擇業已命中之分路的列資料。 選擇器36係用以於藉選擇器35所選擇之32字之列資 料中選擇字索引中所示之1字。 多工解訊器37係用以於快取登錄中寫入資料時,對分 路0〜3中之一條分路輸出寫入資料。該寫入資料為字單位 20 即可。 控制部38係用以進行快取記憶體3全體之控制。尤其 是進行C旗標之設定及按照C旗標之清潔(寫回)者。 <控制部之結構> 第4圖係顯示控制部38結構之方塊圖。如該圖所示, 14 200530817 控制部38係包含有:清潔處理部39及C旗標設定部40。 清潔處理部39係搜尋設定有c=l之快取登錄,該快 取登錄如果已使用(dirty)時,便予以寫回者。 C旗標設定部4〇係對應於來自處理器1之命令,設定 5清潔旗標C。處理器1係對快取記憶體3發行一命令,該 命令係用以針對之後不再進行寫入之快取登錄,指示清潔 旗標C之設定者。 <C旗標設定部之結構> 第5圖係顯示C旗標設定部4〇結構例之方塊圖。如該 10圖所示’ C旗標設定部40係包含有··命令暫存器4〇1、起 始位址暫存器402、尺寸暫存器4〇3、加法器4〇4、起始調 正态405、結束調正器406、及旗標改寫部4〇7。 命令暫存器401係一可直接由處理器丨進行存取之暫 存器,保持藉處理器1寫入之c旗標設定命令。第6(c)圖 15係顯示一用以將命令寫入於命令暫存器401之命令例。該 命令係指通常之轉送命令(m〇v命令),指定命令為原始運算 元/卩令暫存裔(CR)則為目的地運算元。第6(…圖係顯示 一命令例。該命令係一用以顯示c旗標設定命令之特定 碼。c旗標設定命令係指:用以指示對快取登錄設定c旗 2〇標,該快取登錄係用以保持一與由保持在起始位址暫存器 4〇2之起始位址迄止於保持於尺寸暫存器4〇3之尺寸的位 址範圍相對應之資料者。 起始位址暫存器402係-可直接由處理器1進行存取 之暫存器,保持藉處理器1寫入之起始位址。該起始位址 15 200530817 係顯示~須設定c旗標之位址範圍之開始位置。第6(a)圖 係顯示—用以將起始位址寫入於起始位址暫存器402之命 令例。該命令亦與第6(c)圖同樣,為通常之轉送命令(m〇v 命令)。 5 尺寸暫存器403係一可直接由處理器·丨進行存取之暫 存器,保持藉處理器1寫入之尺寸。該尺寸係顯示由起始 位址起算之位址範圍。第6(b)圖係顯示將尺寸寫入尺寸暫 存器403之命令例。該命令亦與第6(c)圖同樣,為通常之 轉送命令(mov命令)。又,尺寸的單位可為位元組數,亦可 1〇為列數(快取登錄數),只要是事前決定之單位即可。 加法器404係可將保持在起始位址暫存器402之起始 位址與保持於尺寸暫存器403之尺寸相加。相加結果係一 用以指向位址範圍之結束位置之結束位址。加法器4〇4係 於尺寸為位元組數指定時當做位元組位址進行相加,尺寸 15為列數指定時則當做列位址進行相加即可。 起始調正器405係可將起始位址調整到列境界之位 置。藉該調整,處理器1可於與列尺寸及列境界無關之狀 怨下指定任一位址作為起始位址。 結束調正器406係可將結束位址調整到列境界之位 20置。藉該調整,處理器1便可於與列尺寸及列境界無關之 狀恶下指定任一大小作為上述尺寸。 第7圖係起始調正器405及結束調正器406之說明圖。 在該圖中,業由處理器i指定之起始位址係指向第N列途 中任一位置。起始調正器4〇5係使調整成指向下一(N+1) 16 200530817 列之前頭,並將調整後之位址作為調正起始位址而予以輸 出者。將調正起始位址所指之列稱為起始列。 又,結束位址係指向第Μ列中途之任一位置。結束調 正器406係調整其成為指向前—(…—。列之前頭,並將調 5整後之位址作為調正結束位址而予以輸出者。將調正結束 位址所指之列稱為結束列。 此時,可構建成在由起始列((Ν+1)列)迄止於結束列 ((Μ— 1)列)之前的各列(快取登錄)上設定c旗標者。按此, 起始調正器405及結束調正器4〇6係調整其等位於由處理 1〇為1所札定之起始位址迄至於結束位址之間的位址範圍還 内側者,則是因為:位於第Ν列及第Μ列外側之部分有由 處理裔1發生寫入或讀出之可能性存在者。 旗才示改寫。卩407係於調正起始位址所指之列迄至於調 正結束位址所指之列之間(在第7圖之例中由第(Ν+1)列迄 15止於第(Μ-1)列之間)已向快取記憶體3進行登錄時,便將 c旗標設定1。 < c旗標設定處理> 第8圖係顯示旗標改寫部4〇7中之(:旗標設定處理例 之流程圖。 20 —旗標改寫部4〇7係於命令暫存器4〇1保持有C旗標設 疋命令時’便按序輸出由起始列迄止於結束列之間的各列 位址’並進行迴路i之處理(S82〜S86)。旗標改寫部4〇7係 針對各列進行同-處理,因此在此針對i列部分的處理進 行說明。 17 200530817 即,旗標改寫部407係於快取記憶體3尚未由處理器1 進行存取之間,將列位址輸出於位址暫存器20(S83),並於 比較器32a〜3加比較位址暫存器2〇之標籤位址與快取登錄 之標籤,判定是否命中(S84)。進而,旗標改寫部407係於 命中時’對業已命中之快取登錄,將C旗標設定為1(S85), 而在未中h ’則不向快取記憶體進行登錄,因此不做任何 動作。 藉此針對由起始列迄至於結束列間之各列,向快取 記憶體3進行登錄時,便使C旗標設定為i。 10 <清潔處理> 第9圖係顯示清、、智考 月办處理部39之清潔處理例的流程圖。 於該圖中,清齋♦ 月冰處理部39係於迴路1之處理(步驟 S901〜S913)中,依成 又序心疋集合索引(SI)0〜15(S901),對16 個全部集合’進行適 V路2之處理。在迴路2之處理 15 (S900〜S913)中,清、、勢 * 月你處理部39係讀取集合内之分路〇〜分 路3(S9〇3)搜# 1之快取登錄(S904)。迴路3之處理 (S905〜S91G)中’ /月潔處理部%係對之快取登錄,讀 20
出田ij列單位之已使用旗標(s痛),如果已使用(dirty)者時 (S907) ’將孩田彳列之資料寫回記憶體邪將該已使用 旗“重汉為〇(S909)。在該副列資料的寫回中,如迴路4之 處理(S920〜S923),凊潔處理部%係於空循環中,將 1字1字寫回者(S922)。 如此,清>糸處理部39係依序檢查全部的快取登錄之c 旗標,搜尋C4之快取登錄,如果是已使用者時,則由快 18 200530817 取記憶體3寫回記憶體2。 如上之說明,依本實施形態中之快取記憶體,對於隸 屬於由處理器1所指定之位址範圍之快取登錄,付與一用 以顯示是否可將高速存取結束之高速存取結束屬性(c旗 5標),在發生快取未中之前,將不再寫入之快取登錄寫回, 因此在快取未中時,只產生載入損失,因此可減少寫回損 失之產生。藉此,可提昇快取記憶體之效率,且可將存取 速度提升者。 又’處理器1係可在與快取記憶體之列尺寸或列境界 10無關之狀態下指定任一位址,作為須設定高速存取結束屬 性之位址範圍者。藉此,程式設計師或編譯器便無須意識 列尺寸及列境界’因此就無須實施用以清潔之快取位址管 理,且可使程式的製作簡易化者。 進而’在清潔處理中,以副列單位只將已使用的副列 15寫回,因此與以列單位進行寫回之形態相比較,可將寫回 高速化者。 <變形例> 又’本發明之快取記憶體並不限於上述實施形態之構 成,可做各種變形者。如下,說明幾個變形例。即: 20 (1)亦可構建成:在第5圖中,c旗標設定部4〇係具有代替 尺寸暫存器403及加法器404之結束位址暫存器者。此時, 、、、口束位址暫存裔係可保持業由處理器1寫入之結束位址。 (2)亦可構建成··處理器1係執行一用以付與高速存取結束 屬性並將貪料寫入之儲存命令,控制部%進而包含有:命 19 200530817 令檢測部,係用以檢測一用以付與高速存取結束屬性並將 資料舄入之儲存命令者;及,旗標設定部,係用以於藉儲 存命令所進行之寫入時設定C = 1者。 (3) 第6(a)、6(b)、6(c)圖中所示之各命令亦可藉編譯器插入 5於程式中者。此時,編譯器只要可在之後不再進行諸如排 列資料寫入或對壓縮動畫資料解碼時之方塊資料寫入等寫 入之程式位置上可插入上述各命令者即可。 (4) 亦可構建成快取登錄不保持c旗標者。換言之,亦可構 建成同時進行第8圖所示之C旗標設定處理及第9圖所示 10 之清潔處理者。此時,第8圖中之S85中只要執行第9圖 之迴路3(S905〜S910),以代替將c旗標設定在快取登錄者。 (5) 在上述實施形態中,以4分路集合相聯之快取記憶體為 例進行說明,但分路數可為8分路,亦可為16分路。又, 上述實施形態中,是以集合數為16之例進行說明,但集合 15 數幾個都可以。 (6) 在上述實施形態中,是以集合相聯式之快取記憶體為例 進行說明,但亦可為全相聯方式之快取記憶體。 (實施形態2) 在實施形態1中,乃是針對採用用以顯示之後是否不 20再進行寫入之C旗標之結構進行說明。在本實施形態中, 除了 C旗標外,還針對採用可顯示之後要使用或不使用(是 否進行寫入及讀取)之”(弱;Weak)旗標之結構進行說明。 <快取記憶體之結構〉 第10圖係顯示本發明實施形態2中之快取記憶體結構 20 200530817 5 10 15 20 之方塊圖。該圖之快取記憶體,與第2圖結構相比較,不 同點在於包含有:代替分路3!a〜分路31d之分路131a〜分 路131d及代替控制部38之控制部138者。以下省略相同 點之說明,而以不同點為主進行說明。 分路131a,係與分路31a相比不同的是,在各快取登 錄中將C賴齡,及追加有w旗標及u旗標者。分路 131b〜分路131(1亦同樣者。 第11圖係齡錄登錄之位元結構者。丨個快取登錄 係保持有確認旗標vo〜V3、21位元之標籤、128位元έ且之 列資料、弱旗標w、使用旗標u及已使用旗標D〇〜m。 其中,弱旗標W,關於來自處理器之存取時,意指之 ,是否繼續使用,而關於快取記賴之替換控制時,則意 心.可比另—快取登錄還先逐出之最弱的替換對象者。如 此’弱旗標具有兩«思,因此可以清料理騎換處理 兩種處理參考。 使用旗標11係顯示該快取登錄是否已有存取,代替藉 於7方式中因未中時所進行的替換時4個分路之快取^ 錄Γ之存取順序料而使用。更正確地說,使賴標U之 ^指已有存取,〇難沒有存取者。惟,i健合内之^用:::使細:全部成為1時,則重設為〇。換言之,使 '厂係顯不業經存取之時㈣舊的或新的之2個相對 使㈣標U41之快取登錄意減使用旗標為 υ之决取登錄還新存取者。 控制部138係與控制部38相比,不同點係於:不是c
21 200530817 旗標而是設定w旗標;及採用使用旗標u以代替LRU方 式中之存取順序資訊者。 <控制部之結構> 第12圖係顯示控制部138結構之方塊圖。該圖之控制 5部138係與控制部38相比,不同點係於··包含有取代清潔 处 ^ 及C旗彳示5又疋部40之清潔處理部139及w旗標 設定部140 ;以及追加有替換部41者。 清潔處理部139係與清潔處理部39相比,不同點在於 ί考旗‘而不是參考c旗標者。結果將w=i且已使用 10 之快取列寫回者。 W旗標設定部140係因應來自處理器1之命令,設定 弱旗軚W。處理器1係對快取記憶體3發行一命令,該命 7係用以針辦不再使用(寫入及讀出)之快取登錄,指示弱旗 才丁 疋者1之快取登錄為已使用(dirty)者時,便成為 15 ’肖'糸處理之斜象,又,在快取未中時最先成為替換對象。 、# 41係藉令使用旗標u作為存取順序之虛擬 LRU 方十 巧,在快取未中時進行替換處理,及,快取記憶體 被存取蛉進行使用旗標U之更新處理。在替換處理時,w 之决取登錄最先選擇當做替換對象者。 2。〈使用之說明〉 =13 _係顯示替換部41之使用旗標的更新例。該圖 又、中段、下段係表示為可構成一跨越分路〇〜3之集 合的4個八x /' 、 刀路之快取登錄者。4個快取登錄右端之丨或〇 各為使用镇標之數據。该4個使用旗標U係記為U0〜U3。 22 200530817 在該圖上段是(U0〜U3) = (l、〇、1、0),因此分路〇、2 之快取登錄意指已有存取,而分路1、分路3之快取登錄則 意指沒有存取者。 在4狀恶下’記憶體存取係命中於集合Ν内之分路1 5之快取登錄時,如該圖中段所示,便更新為(U0〜ϋ3) = (1、 1、;1、0)。即,如實線所示,分路i之使用旗標m由〇更 新成1。
進而,在該圖中段之狀態下,記憶體存取係命中於集 合N内之分路3之快取登錄時,如該圖下段所示,便更新 1〇成〇;0〜U3),、〇、〇、d。即,如實線所示,分路3之使 用旗標m Φ 〇更新成卜此外,如虛線所示,分路3外之 使用旗標U0〜使用旗標m則由i更新成〇。聽,意指分 路3之快取登錄比分路〇〜分路2之各快取登錄_存取者。 替換部41係於快取未中時,沒有w叫之快取登 15在時,便根據使用旗標U決定替換對象之快取登錄,俾進 行替換。例如,替換部41係於第13圖上段,將分路i兔 分路3中任—分路決定騎換對象,在第13圖巾段,則^ 定分路3為替換,而第13圖下段則決定分路卜分路& 中之任一分路作為替換對象。 20 <弱旗標W之說明> 第Μ⑻圖係假設沒有弱旗標存在時之比較例,顯示士 取登錄被替換之形態者。於該圖中,亦與第13 _樣,為 示用以構造成跨越分路0〜3之集合Ν之4個快取登錄。 於4個快取登錄右端之丨或G各為使用旗標之數據。又: 23 200530817
而令資料A、B、C 只令資料E當做存取頻率低之資料 D當做存取頻率高之資料。 5 10 進行存取時,便發生快取未中。藉該快取未中斗] =〇之快取登錄中將存取頻率高之資料〇之绪如由1 成存取頻率低之資料Ε,成為第2段之狀態。麵替杉 在第2段之狀態下,處理器ι _資料 便發生快取未中。軸緣未中,將㈣之快=取1
取頻率高之資料D的快取登錄替換成存取頻^^ C,成為第3段之狀態。 貝科 在第3段之狀態下,處理器1係向資料d進行存取時, 便發生快取未中。藉該快取未巾,諸如存取解高之資料 C之快取登錄替換成存取頻率高之資料d,成為第4段 狀態。 又 15 $樣’在第4段時’使用頻率低之資料E不被選為替 換對象’因此留在快取記憶體。 在第5段之狀態下,使用頻率低之資料E為最舊⑴二 〇),因此被選作為替換對象,而被逐出者。 按此,在虛擬LRU方式中(在通常的LRU方式中亦 20是),藉存取頻率低之資料E,在4分路之形態中引發快取 未中最壞到4次之情況發生者。 第14(b)圖係顯示替換處理中弱旗標w之作用之說明 圖。 在第14(b)圖之第1段狀態(與第14⑷圖之第1段相同) 24 200530817 下,處理器1係對資料E進行存取時,便發生存取未中。 藉該快取未中,由諸如U=0之快取登錄中存取頻率高之資 料C的快取登錄替換成存取頻率低之資料E。此時,令處 理器1係於資料E之快取登錄將弱旗標W設定為1者。藉 5 此,在下一次快取未中時,資料E之快取登錄便最先被逐 出,成為第2段之狀態。 在第2段之狀態下,處理器1係對資料C進行存取時, 便發生快取未中。藉該快取未中,W二1之快取登錄之存取 頻率低之資料E之快取登錄則被選作為替換對象,替換成 10 存取頻率高之資料C,成為第3段之狀態。 如此,藉弱旗標W之設置,可減少因存取頻率低之資 料所造成之快取未中的引發者。 <w旗標更新處理> 第15圖係顯示W旗標設定部140之W旗標設定處理 15 之流程圖。W旗標設定部140之結構係與第5圖所示之C 旗標設定部同樣,又,來自處理器1之W旗標設定命令亦 與第6(a)〜6(d)圖同樣。惟,處理器1係可與W旗標設定命 令一同設定一之後不再使用(不做寫入也不做讀出)之資料 的位址範圍。 20 第15圖係與第8圖相比,具有取代步驟S85之步驟 S185者。除此點外,其餘與第8圖之C旗標設定處理同一, 因此省略相關說明。在步驟S185中,W旗標設定部140 係於藉步驟S84而命中之快取登錄,設定W=1。 <清潔處理> 200530817 第16圖係顯示清潔處理部139之清潔處理之流程圖。 該圖係與第9圖相比,不同點係於具有··取代步驟 S903、S904 ' S911 之步驟 S903a、S904a、S911a 者。步驟 S903a、S904a、S911a每一步驟都是在將c旗標改讀成w 5旗標之點不同,其餘步驟則為同一處理内容,因此省略相 關說明。 <U旗標更新處理> 第17圖係顯示替換部41之u旗標更新處理之流程圖。 该圖中,令確認旗標為無效)之快取登錄之使用旗標 10 U初始化成〇者。 在该圖中,替換部41係於快取命中時(步驟S61),將 藉集合索引選擇之集合中業經命中之分路的使用旗標Μ 定為1(步驟S62),讀出該集合内另一分路的使用旗標υ(步 驟S63),判定所讀出之使用旗標υ全部是否$ !(步驟 15 S64)王口p不疋1日才便結束處理,全部為1時,則將另一 分路之全部使用旗標u重設為0(步驟S65)。 按此,替換部41係如第13圖、第14⑷、14(b)圖所示 之更新例,將使用旗標U進行更新者。 <替換處理> 20 f 18圖係顯示替換部Μ之替換處理之流程圖。該圖 中,替換部41係、於記憶體存取未中時(步驟s9i),讀出藉 集合索引所選出之集合中4個分路之使用旗標W弱旗桿 w(步驟S92),判定是否有W=1之分路存在(步驟卿。 判斷出沒有W=1之分路存在時,選擇丨個U=G之分路(步 26 200530817 驟S94)。此時,有使用旗標u成為〇之分路多數存在時, 替換部41便隨機選擇1個。又,判斷出有w=l之分路存 在時,不管U旗標值為何,選擇】個W=1之分路(步驟 S95) °此時,有弱旗標w成為1之分路多數存在時,替換 5部41便隨機選擇1個。 進而’替換部41係將該集合中所選擇之分路的快取登 錄替換成對象(步驟S96),替換後令該快取登錄之使用旗標 u為1,且將弱旗標w初始化成0(步驟S97)。又,此時, 確認旗標V、已使用旗標D各施以初始化成丨、〇。 10 士0此,沒有W=1分路存在時,替換對象可由使用旗 標U為0之快取登錄中選擇1個者。 又,有w— 1分路存在時,不管使用旗標U是〇或丄 可由W=1之分路的快取登錄選擇i個替換對象。藉此,— 15 20
第14⑻、14(b)圖所示,可減少因存取頻率低 < 資料殘留/ 快取記憶體所造成之快取未中的引發者。 "
如以上說明,依本實施形態中之快㈣㈣體,令㊉ 標W=1之列為一之後不再由處理器 1丁呙入之列,藉: 潔之進行,可減少快取未中時之寫回損失。 又,在之後不再使用之快取登錄設定有 =1之快取登錄最先選作為替換對象,因此可减二存: 率低之資料留在快取記憶體時所造成之快取未: 又,採用使时i位元之使用旗標之 ^ 以取代習知LRU方式中顯示存取 L如方式 〜貝科,你口雪要 位元的旗標Ϊ做存取順序資料,因 ’、 、 由於存取順序資料€ 27 200530817 資料量少且更新簡單,便可將硬體規模縮小者。 <變形例> 又’本發明之快取記憶體並不限於上述實施形態之構 成,可做各種變形者。如下,說明幾個變形例。即: 5 除了使用有使用旗標U之虛擬LRU外,亦可構建成· 對每一快取登錄保持並更新可顯示4個分路之存取順序之 順序資料,以習知之LRU方式選擇替換對象之結構。此時, 亦可不管存取順序如何,只要將W=1之快取登錄最先選 出作為替換對象時即可。 10 (2)亦可構建成:設有實施形態1所示之c旗標及本實施形 態之W旗標兩者。此時,C旗標係用於清潔處理,w旗標 則只用於替換對象之選擇者。按此,藉c旗標,便可將有 被讀出之可能性且之後不再進行寫入之快取登錄即時經過 清潔,亦可留在快取記憶體。之後不再進行讀出亦不進行 15寫入之快取登錄則最先被清潔且選出當做替換對象。藉併 用c旗標及W旗標,即可進行細腻的控制。 (3)在上述實施形態中,令副列之尺寸為1列尺寸之1/4,但 亦可為1/2、1/8、1/16等其他尺寸。此時,各快取登錄係 各保持有與副列同數之確認旗標及已使用旗標者即可 20 [產業利用性] 本發明係適用一種用以將記憶體存取高速化之快取記 憶體,諸如晶載(on-chip)快取記憶體、晶卸(off_chip)快取 記憶體、資料快取記憶體、命令快取記憶體等記憶體。 28 200530817 L圖式簡單說明3 第1圖係顯示本發明實施形態1中包含有處理器、快 取記憶體、記憶體之系統的概略結構方塊圖。 第2圖係顯示快取記憶體結構形態之方塊圖。 5 第3圖係快取登錄之詳細位元結構之示意圖。 第4圖係顯示控制部之結構方塊圖。 第5圖係顯示W旗標設定部之構成例之方塊圖。 第6A圖係一用以朝起始位址暫存器寫入起始位址之 命令例之示意者。 10 第6B圖係一用以朝尺寸暫存器寫入尺寸之命令例之 示意圖。 第6C圖係一用以朝命令暫存器寫入命令之命令例之 示意圖。 第6D圖係命令例之示意圖。 15 第7圖係顯示起始調正器及結束調正器之說明圖。 第8圖係顯示旗標改寫部之W旗標設定處理之流程 圖。 第9圖係顯示替換部中之替換處理之流程圖。 第10圖係顯示本發明實施形態2中之快取記憶體之結 20 構方塊圖。 第11圖係快取登錄之位元結構之示意圖。 第12圖係顯示控制部之結構方塊圖。 第13圖係替換部之使用旗標的更新例之示意圖。 第14A圖係一示意圖,顯示沒有弱旗標存在時快取登 29 200530817 錄被替換之形態。 第14B圖係顯示替換處理之弱旗標W作用的說明圖。 第15圖係顯示旗標更新部之U旗標更新處理之流程 圖。 5 第16圖係顯示替換部之替換處理之流程圖。 第17圖係W旗標設定部之另一結構例之示意圖。 第18圖係W旗標設定部之又一結構例之示意圖。 【主要元件符號說明】 1...處理器 38,138...控制部 2...記憶體 39,139…清潔處理部 3...快取記憶體 40...C旗標設定部 20...位址暫存器 41...替換部 20··.標籤位址暫存器 140... W旗標設定部 21...記憶體I/F 401…命令暫存器 30...解碼器 402…起始位址暫存器 31a 〜31d,131a 〜131d···分路 403…尺寸暫存器 32a〜32d…比較器 404...加法器 33a〜33d...及電路 405…起始調正器 34...或電路 406…結束調正器 35,36...選擇器 407...旗標改寫部 37…多工解訊器 30