200534096 九、發明說明: 【韻^明所屬之技彳标領域】 技術領域 本發明係有關於用以使處理器之記憶存取高速化之快 5 取記憶體及其控制方法。 L先前才支冬好】 背景技術 近年來的微處理器係將由例如SRAM(Static Rand〇m
Access Memory ;靜態隨機存取記憶體)等所構成之小容量 10且高速的快取記憶體配置於微處理器内部或其附近,且將 一部份資料記憶於快取記憶體,藉此使微處理器之記憶存 取高速化。 15 在電腦系統中,當從中央處理裝置至快取記憶體的讀 取存取或寫人存取發生誤失命巾時,從主記憶裝置重新讀 取的一部分資料會儲存於快取記憶體的空區塊作為項目 (登錄項目)。此時,當沒有空區塊時,則需要進行項目置換 處理’該處理係選擇多數輯中之任—區塊,且使儲存於 所選擇之區塊的項目返回主記憶裝置,以使區塊内成為空 狀態,並將重新讀取之資料儲存於該空區 ^ 上述項目置 換處理-般是·選擇儲存有最早參照的資料之區塊的手 法,即,LRU(Least Recently Used)解碼方式。藉由咳
解碼方式,可提高快取記憶體的使用效率,結果。曰山 微處理器的執行速度。 S 在微處理器所處理之程式中有以下2種詹 疫王’即,存取 20 200534096 頻率少但一經啟動則必須高速處理的特殊處理,及頻率多 卻不太要求執行速度的處理。 因此,為了對應於此,在例如日本專利公開公報第 2000-200221號等先前技術中,在快取記憶體設置靜土功 月b。靜止功能為將存取頻率少但一經啟動則必須高速處理 之程式預先複製至快取記憶體内,且將該領域設為禁止改 寫之功能。由於具有該功能,故電腦系統可在需要時從快 取記憶體讀取程式並加以執行,藉此可縮短執行時間。又, 清除功能為不先將頻率多料太要求執行速度的程式或資 料保存於絲記龍内,而是解_放該職之功能。由 =具有該功能,故快取記憶體巾會有餘裕,且可將優先度 兩的其他程式或資料放人快取記憶體,藉此,可提高快取 記憶體的利用效率,並縮短總合的執行時間。 ’當發生快 回的情況發 15 然而’無論使用靜止功能或使用清除功能 取块失而產生替換時,會有無用替換或無用寫 生。 ·’ 田把土恶用暂換時,處理器會寫入 要素。此時,即使從記⑽重新在快取記憶體蜍換次Γ 也由於全部都已由處理器寫人,因此,替換將“ Ί 又,當發生無用寫回時,快取項目會單絲、、、、、;。 料來使用。此時’無論是否為最終可取消的為工作資 生無用寫回的情況。 …、+,都會發 C考务明内】 發明之揭示 20 200534096 的在於提供可防止細替換或無用 寫回之 為了解決上述課題,本發明之快取記憶體包含:旗標 保持機構’係對應於用以保持快取單元資料之快取項目, 5 ㈣用以顯示該快取項目是否有效之有效旗標與用以顯示 是否已寫人該快取項目之臟旗標;及改變機構,係根據來 自處理☆的彳日不’將剛述有效旗標及臟旗標至少其中一者 改變成與快取項目之狀態相反。 10 /述改變機構不從記憶體载人資料,而對前述快取項 目设定作為標記之位址並設定有效旗標。 次根據該構造’可在快取記憶體上確保用以寫入配列等 育料之快取項目’而且,可避切處於被寫上的命運之資 料從記憶體無㈣載人快取記憶體的情況發生。 15 本發明之目 快取記憶體。 _又’前述改變機構係在保持有尚未寫回快取項目且業 ’每改寫之資料的狀態下重設臟旗標。 次' 根據該構造,可防止從心料處於取消暫時的工作 貝料等的命運之資料的快取項目無用寫回。 於j ’前述快取記憶體更具有:_機構,係用⑽ =經前述處理n指定之位址_者;及特定機構,係用 目:疋用以保持屬於業純持之他範_資料之快取項 ’又,前述改變機構係„經特定之快取項目改變前 Μ有效旗標及臟旗標至少其中一者。 根據該構造,可在由處理器所指定之位址範圍中防止 热用地載人快取記憶體或無料寫回記憶體。 20 200534096 址範ΓϋΓ特定機構包含:第1變換機構,係當前述位 換為μ 紐指出線資料之中途時,將該前頭位址變 .★ I位址乾圍中之前頭的線之起始線位 者,·第2變換機構,係杂 “深位址 5 10 15 ’、田則述位址範圍之最終位址指出線資 =中心,將該最終位址變換為指出包含在前 财之最終的線之終止線位址者;及判定機構,係判定是 否有用以保持對應於前述起始線位址至終止線位址之各線 位址的資料之快取項目者。 根據該構造,處理器可在與快取記憶體之線大小及線 邊界的位址無關之狀態下從任意的位址指定任—位址(或 任—大小Μ乍為前述位址範圍。即’由於處理器中不必管理 快取記憶體之線大小及線邊界的位址,因此, 管理快取記憶體的負擔。 於此,前述改變機構更具有:命令檢測機構,係用以 =測已執行附有臟旗標重設指示之記憶存取命令者;及旗 標改寫機構,雜據上料令對未畴取 : 臟旗標者。 貝目重汉 於此’前述改變機構更具有:命令檢測機構,传用以 榀測已執行附有有效旗標重設指示之記憶八 旗標改寫機構,係根據上述命令對未經 設有效旗標者。 之陕取項目重 又’本發料絲記鍾的控制方^ 樣的方法、作用。 U通具有同 根據本發明之快取記憶體’可在快取記憶體上確保用 20 200534096 以寫入配列等資料之快取項目,而且,可避免將處於被寫 上的命運之資料從記憶體無用地載入快取記憶體的情況發 生。 又,可防止從用以保持處於取消暫時的工作資料等的 5 命運之資料的快取項目無用寫回。 再者,處理器可在與快取記憶體之線大小及線邊界的 位址無關之狀態下從任意的位址指定任一位址(或任一大 小)作為前述位址範圍。即,由於處理器中不必管理快取記 憶體之線大小及線邊界的位址,因此,可消除為了管理快 10 取記憶體的負擔。 圖式簡單說明 第1圖係顯示本發明實施形態1中包含處理器、快取記 憶體、記憶體之系統的構略構造之方塊圖。 第2圖係顯示快取記憶體之構造例的方塊圖。 15 第3圖係顯示快取項目的詳細位元構造。 第4圖係顯示控制部之構造的方塊圖。 第5圖係顯示旗標改變部之構造例的方塊圖。 第6(a)圖係顯示將起始位址寫入起始位址暫存器之命 令的例子。 20 第6 (b)圖係顯示將大小寫入大小暫存器之命令的例子。 第6(c)圖係顯示將命令寫入命令暫存器之命令的例子。 第6(d)圖係顯示命令的其中一例。 第7圖係起始對準儀及終止對準儀的說明圖。 第8圖係顯示旗標改寫部中旗標改變處理的例子之流 200534096 程圖。 第9圖係顯示本發明實施形態2中快取記憶體之構造的 方塊圖。 第10圖係顯示快取項目的位元構造。 5 第11圖係顯示控制部之構造的方塊圖。 第12圖係顯示由旗標更新部所進行之使用旗標U的更 新例。 第13(a)圖係顯示在不存在弱旗標時替換快取項目的情 況。 10 第13(b)圖係顯示替換處理中弱旗標W的角色之說明 圖。 第14圖係顯示替換部中之U旗標更新處理的流程圖。 第15圖係顯示替換部中之替換處理的流程圖。 第16圖係顯示旗標改變部之構造的方塊圖。 15 第17圖係顯示命令格式的其中一例。 第18圖係顯示旗標改寫部中之W旗標設定處理的例子 之流程圖。
I[實方包方式U 實施發明之最佳形態 20 (實施形態1) <整體構造> 第1圖係顯示本發明實施形態1中包含處理器1、快取記 憶體3、記憶體2之系統的構略構造之方塊圖。如該圖所示, 本發明之快取記憶體3係設於包含處理器1及記憶體2之系 10 200534096 統中。 快取記憶體3具有在每個快取項目中顯示快取項目是 否有效之有效旗標V,及顯示是否已寫入該快取項目之臟旗 標D,且,並非對用以保持由處理器1指定之位址資料的快 5取項目寫回資料,而是將臟旗標D從1改變成〇(不是臟), 又,並非確保對應於由處理器丨指定之位址的快取項目且從 圮憶體載入資料,而是將有效旗標V改變成丨(有效)。 將臟旗標D從1改變成〇是為了避免從用以保持最後會 取消之暫時的工作資料的快取項目無用地寫回。又,由於 1〇並非確保快取項目且從記憶體載人資料,而是將有效旗標v 改、交成1(有效)’故可預先確保用以進行配列等寫入之快取 項目。 <快取記憶體之構造> 以下,作為快取記憶體3的具體例子,針對將本發明適 15用於4路集合關聯方式之快取記憶體時之構造作說明。 第2圖係顯示快取記憶體3之構造例的方塊圖。如該圖 所示’快取記憶體3包含位址暫存器20、記憶I/F21、解碼器 30、4個通路31a〜31d(以下省略成通路〇〜3)、4個比較器 32a〜32d、4個及電路33a〜33d、或電路34、選擇器35、36、 20 多工解訊器37、控制部38。 位址暫存器20為用以保持存取於記憶體2之存取位址 的暫存器。該存取位址設為32位元。如該圖所示,存取位 址從最上位位元依序包含21位元之標記位址、4位元之設定 索弓丨(圖中之SI)、5位元之字索引(圖中之WI)。於此,標記 200534096 位址指對映於通路之記憶體中的領域(其大小為組數X區 塊)。該領域的大小為由較標記位址下位之位址位元 (A10〜A0)所訂定之大小,即2k位元組’也可為1個通路的大 小。設定索引(SI)指橫跨通路0〜3的多組的其中一個。因為 5 設定索引是4位元,所以該組數有16組。由標記位址及設定 索引所特定之快取項目為替換單元,當儲存於快取記憶體 時則稱作線資料或線。線資料的大小為由較設定索引下位 之位址位元所訂定之大小,即128位元組。若將1個字設為4 位元組,則1個線資料為32個字。字索引(WI)指構成線資料 10 的多數字中的1個字。位址暫存器20中之最下位2位元(A1、 A0)在字存取時被忽視。 記憶I/F21為從快取記憶體3存取於記憶體2之I/F,例 如’將資料從快取記憶體3寫回記憶體2或將資料從記憶體2 載入快取記憶體3。 15 解碼器3〇係將設定索引的4位元解碼,且選擇跨越4個 通路0〜3之16組中的1個。4個通路〇〜3為具有相同構造的4 個L路且具有4x2k位元組。各通路具有16個快取項目。 第3圖顯示1個快取項目中的詳細位元構造。如該圖所 示,1個快取項目包含有效旗標ν〇〜V3、21位元之標記、128 20 位元組之線資料、臟旗標D0〜D3。 標記為21位元之標記位址的複製。 線貧料為由標記位址及設定索引所特定之區塊中的 128位元組資料的複製,且由32位元組的4個次線所構成。 有效旗標V0〜V3係對應於4條次線,且顯示次線是否有 12 200534096 效0 ^臟旗標130〜D3係對應於4條次線,且顯示是否已從處理 器,入請次線,即,顯示雖然次線中有業經快取的資料, 仁疋否因為寫入而與記憶體中的資料不同而必須寫回記慘 5體。 〜 比較器32a係比較位址暫存器2〇中之標記位址與包含 在心疋索引所選出的組中的4個標記中通路〇的標記是否一 致。關於比較器32b〜32d,除了對應於通路3化〜31d以外都 是相同ή勺。 1〇 及電路33a係比較有效旗標與比較器32a的比較結果是 否致。將該比較結果設為h〇。當比較結果⑽為丨時,表示 有位址暫存器2〇中的標記位址及對應於設定索引的線資 料’即’表示在通路〇中已命中之意。關於及電路33b〜33d, 除了對應於通路31b〜31d以外都是相同的。其比較結果 15 M〜h3意味著在通路中命中或誤失之意。 或電路34取得比較結果hl〜h3的或。將該或的結果設為 hit。hit顯示是否已在快取記憶體中命中。 選擇器35係在所選擇的組中的通路〇〜3之線資料中選 擇已命中之通路的線資料。 20 選擇器36係在選擇器35所選出之32個字的線資料中選 擇由字索引所顯示的1個字。 多工解訊器37係在將資料寫入快取項目時,將寫入資 料輸出至通路0〜3的其中一個。該寫入資料宜為字單位。 控制部38係進行快取記憶體3整體的控制。特別是依照 13 200534096 來自處理器的命令及位址指定進行v旗標的 的改變。 又不 <控制部之構造> 第4圖係顯示控制部38的構造之方塊圖。如該圖所示, 控制部38包含旗標更新物、替換部奶、旗標改變部^。 尸的=更新部39係與先前技術相同,可進旗標、D旗 ^的更新,以反應快取項目之狀態。 替換部4〇係與先前技術相同可進行快取項目之替換。 10 15 2改變部41係依照來自處理^的命令及位址指定 二旗標的改變與。旗標的改變。該命令包含 命令與D旗標設定命令。 又疋 <旗標改變部之構造> 所干第:系顯示旗標改變部41的構造例之方塊圖。如該圖 所不’旗標改變部41包含命令暫存器. ^ 術、大小暫存器彻、加算器侧、起始 D … 終止對準儀406a、佩、旗標改寫部4〇7。 5a、4〇5b、 用以=ΓΓ401為可直接從處理器1存取之暫存器,且 ^保持由處理命令。第6(e :令暫^之命令的其中—例。該命令為普通二= "),且指定命令為源運算元,並指定命令暫存哭 (⑶他為目的地運算元。第6⑷圖顯示命令格式料中二 1騎令格式包含v旗標設定命令用2位元之欄、D旗桿 汉疋命令用2位元之欄、次線指定用4位元之攔 ’、 例如,v旗標設定命令若為「1〇」,則指y出設定成v 20 200534096 = 〇(v重設命令),若為「Uj,貝指示出設定成設定 命令),若為「00」,則意味無效(無作業)。D旗標設定命令 也相同。次線指定攔為用以個別地指定次線之欄,當無個 別指定時,則視為線(全次線)指定。 5 起始位址暫存器402為可直接從處理器〗存取之暫存 器’且用以麟由處理人之起始位址。該起始位置顯 不可設定C旗標之位址範_開始位址16⑻圖係顯示將 起始位址寫入起始位址暫存器402之命令的其中一例。該命 令也與第6(c)圖同樣為普通的轉送命令(m〇v命令)。另大 10小的早位可為位元組數’也可為線數(快取項目數),亦可為 預先訂定之單位。 加算器404係加算保持於起始位址暫存器4〇2之起始位 址與保持於大小暫存器4〇3的大小。加算結果為指出位址範 b圍之結束位置的終止位址。加算器4〇4在大小為位元組數指 疋守加^成位元組位址,而在大小為線數指定時則加算成 線位址。 起始對準儀4〇5a、405b係將起始位址調整至線邊界的 位置。起始對準儀4〇5a係朝終止位址的方向調整,4〇北則 朝人、、、;止位置相反的方向調整。藉由該調整,處理器1可在 2〇與線大小及線邊界無關之狀態下,將任一位址指定成起始 位址。 起始對準儀4〇6a、406b係將終止位址調整至線邊界的 位置。起始對準儀4〇6a係朝起始位址的方向調整,4〇价則 朝與起始位置相反的方向調整。藉由該調整,處理器丨可在 15 200534096 與線大小及線邊界無關之狀態下,將任意的大小指定成上 述大小。 第7圖係顯示起始對準儀405a、405b及起始對準儀 406a、406b之說明圖。圖中,由處理器丨指定之起始位址指 5出線途的任意位置。起始對準儀405a係調整成指出下一 條線(N+1)的前頭,且將調整後之位址以對準起始位址&輸 出。起始對準儀405b係調整成指出包含起始位址之資料的 線N的前頭,且將調整後之位址以對準起始位輸出。將 對準起始位址所指之線稱作起始線。 又,終止位址指出線]v[中途的任意位置。終止對準儀 4〇6a係調整成指出前_條線(My)的前頭,且將調整後之 止以對準終止位址a輸出。終止對準儀4〇此係調整成指出 包含終止位址之資料的線M的前頭,且將調整後之位址以 對準、冬止位址b輸出。將對準終止位址所指之線 15 線。 、 』所7^ ’起始對準儀4〇5a及終止對準儀406a係以 ^早=行内靖準。起始對準儀獅祕止對準儀·b 20 進行外側對準。再者,在線單位之外側對準後, σ進行人線單位之外側對準與内側對準。 =寫部4〇7係從起始線至終止線絲命令設定謂 内^4值。此時,依照命令來選擇起始線及终止線是 内側對準或外側對準。 Μ、止綠疋 <旗標改變處理> 第8圖係顯 示旗標改變部407中之旗標改變處理的例子 16 200534096 之流程圖。=中顯示D重設命令與v設定命令。 圖 重°又°卩令寫入命令暫存器401時(S80),旗標 改變部4〇7係從起始對準儀奶a、彻b、終止對準儀輪、 獅之輸出中選擇内側對準之起始線與終止細D。於 5此,選㈣側對準是由於線N與線财之起始位址與終止位 址外側的貝料不-定由處理器1取消之故。 再者,旗料變部術係―面料輸—鱗至終止線 的各線位址,—面進行迴路1之處理(S82韻)。由於旗標 改又σρ4〇7對各線進行相同的處理,故在此針對丄條線之處 10 理作說明。 即,旗標改變部407在尚未從處理器1存取於快取記憶 體3時,將線位址輸出至位址暫存H20(S90),且在比較器 32a〜32d中比較位址暫存器2〇之標記位址與快取項目的標 。己’以判疋疋否命中(S84)。再者,旗標改變部4〇7在命中時, 15對所命中之快取項目將130〜D3旗標重設為〇(S85),且在誤失 命中時,由於並未登錄在快取記憶體,因此什麼也不作。 如此一來,對起始線至終止線的各線而言,在登錄於 快取記憶體3時,在D0〜D3旗標設定0。旗標改變部4〇7在迴 路1結束後清除命令暫存器401之命令(S98)。藉此,可防止 20從用以保持處於取消暫時的工作資料等的命運之資料的快 取項目無用寫回。 又’第8圖中,當V設定命令寫入命令暫存器401時 (S87),旗標改變部407係從起始對準儀405a、405b、終止對 準儀406a、406b之輸出中選擇外側對準之起始線與終止線 17 200534096 於内側對準無法確保起始 (S88)於此,選擇外側對準是由 位址至終止位址的大小之故。 5 再者,旗標改變部407係一面依序輸出起始線至终止線 的各線位址-面騎迴路2之處理(s89〜由於旗標改 變部407對各線進行相同的處理,故在此針對1條線之處理 作說明。 处里 士即’旗標改變部407在尚未從處理器1存取於快取記憶 體3日$將線位址輸出至位址暫存器零9〇),且在比較器 32a 32d中比較位址暫存器2Q之標記位址與快取項目的標 1〇記,以判定是否命中(則)。再者,旗標改變部407在未命中 犄,仗對應於該線位址之組内的4個通路式選擇 1個替換對象之通路(S92),並判定所選擇之通路之臟旗標 DO D3的邏輯和是否為1(S93)。當判定出該邏輯和為工時, 即,該邏輯和為臟時,旗標改變部4〇7僅寫回臟之次線 15 (S94)田判疋出该邏輯和不是1時,即,該邏輯和不是臟時, 或者在臟之次線寫回後,旗標改變部4〇7並非從記憶體將資 料載入快取項目,而是在快取項目中設定線位址作為標記 (S95) ’且將有效旗標V0〜V3設為1(S96)。如此一來,即使 未保持有效的資料,亦可確保設定成ν〇〜ν3二條線的 20 快取項目。 再者’旗標改變部407在迴路丨結束後清除命令暫存器 401之命令(S98)。 藉此’可在快取記憶體上確保寫入配列等資料用之快 取項目,且,可防止無用寫回的情況發生。 18 200534096 如上所述,根據本實施形態之快取記憶體,藉由D重設 命令,可防jh k保持處於取消命運的資料之快取項目無用 地寫回。又,藉由V設定命令,可在快取記憶體上確保寫入 配列等資料用之快取項目,且,可防止無用寫回的情況發 5 生。 另,在上述實施形態中,雖已針對D重設命令與v設定 命令作說明,但就V重設定命令而言,藉由在第8圖所示之 S87~S98中,刪除步驟S95,且在步驟S96中將V0〜V3重設為 〇即可實現。藉此,可防止無用寫回,且開放快取項目。 10 又,〇設定命令可與第8圖之S80〜S86同樣地執行,但 若考量從處理為1籍由儲存指令寫入資料會設定D旗標以及 若設定D旗標會發生寫回動作等情況時,則不太能說是實用 的。但,可利用在快取記憶體之測試動作或性能的評價或 驗證等。 15 <變形例> 另,本發明之快取記憶體並不限於上述實施形態之構 造,亦可進行各種變形。以下針對幾個變形例作說明。 (1)雖然上述實施形態中同時設定或重設>/〇〜¥3旗標、 D0〜D3旗標,但亦可以次單位設定或重設。 2〇 例如,當僅以次線單位處理起始線與終止線時,旗標 改寫部407可選擇業經外側對準(線)之起始位址與終止位 址且藉由外側對準(次線)或内側對準(次線)算出起始線之 人、、泉位址契終止、線之次線位土止,並僅以次線單位處理起始 線與終止線。 19 200534096 又,處理1可在命令中之次線指定棚中指定其主旨。 例如,當處理器1將大小暫存器403的大小指定成0,且 在命令中之次線指定欄中指定特定的次線時,旗標改寫部 407可僅以經指定之次線為對象作處理。 5 (2)又,旗標改變部41亦可包含用以檢測已執行附有臟 旗標重設指示之記憶存取命令之命令檢測部,及根據該命 令對未經存取之快取項目重設臟旗標之旗標改寫部。 再者,命令檢測部亦可用以檢測已執行附有有效旗標 重設指示之記憶存取命令,且旗標改寫部亦可根據該命令 10 對未經存取之快取項目重設有效旗標。 (3)雖然在上述實施形態中以4路集合關聯方式之快取 記憶體為例作說明,但通路數是幾個都可以。又,雖然在 上述實施形態中說明組數為16的例子,但組數是幾個都可 以0 15 (4)雖然在上述實施形態中以集合關聯之快取記憶體為 例作說明,但亦可為全關聯方式之快取記憶體。 (5)雖然在上述實施形態中將次線的大小設為線的大小 的1/4,但亦可為1/2、1/8、1/16等其他大小。此時,各快取 項目可分別保持與次線同數之有效旗標及臟旗標。 20 (實施形態2) 在實施形態1中針對進行V旗標的改變與D旗標的改變 之構造作說明,而在本實施形態中則針對在具有顯示是否 再使用(寫入及讀取)之W(弱)旗標之快取記憶體中改變W旗 標之構造作說明。 20 200534096 <快取記憶體之構造> 第9圖係顯不本發明實施形態2中快取記憶體之構造的 方塊圖。该圖之快取記憶體與第2圖之構造相較之下,不同 點在於以通路131a〜13ld取代通路3ia〜3ld以及以控制部 5 138取代控制部38。以下,相同點則省略説明,且以不同點 為中心作說明。 通路131a與通路3ia相較之下,不同點在於在各快取項 目中追加w旗標及u旗標。通路1311)〜131(1也相同。 第10圖係顯示快取項目的位it構造。1個快取項目可保 10持有效旗標V0〜V3、21位元之標記、128位元組之線資料、 弱旗標W、使用旗標U及臟旗標D0〜D3。 其中,弱旗標W關於來自處理器之存取係意味是否再 使用之意,而關於快取記憶體中之替換控制則意味比其他 快取項目先被逐出之最弱的替換對象。如此一來,由於弱 15旗標w有兩種意思,故在清除處理與替換處理2種處理中可 作為參照。 使用旗標u係顯示是否已存取於該快取項目,且在 方式中因誤失命中導致替換時,使用成取代4路快取項目間 之存取順序資料。更正確地來說,使用旗標表示已存 20 T,、而0表示沒有。但,若1組内的4個通路之使用旗標全部 ,成卜則重設為0。換言之’使用旗標U顯示存取的時期是 舊=還是新的2種相對的狀態。即,使用旗標的快取= 目意味著較使用旗標1;是〇的快取項目在 、 控制部職控制梅較之下,不同::二旗 21 200534096 才示與利用使用旗標U取代lru方式中之存取順序資訊。 <控制部之構造> 第11圖係顯示控制部138之構造的方塊圖。該圖之控制 部138與控制部38相較之下,具有旗標更新部139、替換部 5 14〇、旗標改變部141來取代旗標更新部39、替換部4〇、旗 標改變部41。 旗標更新部139與旗標更新部39相同,除了更新¥旗 標、D旗標以外,在快取記憶體被存取時,可進行使用旗標 U之更新處理。 10 替換部140並非藉由普通的LRU方式,而是藉由以使用 旗標U為存取順序之近似的LRU方式來進行替換。但,在替 換處理時,會先選擇W=1的快取項目作為替換對象。 旗標改變部141係依照來自處理器1的命令來設定弱旗 標W。處理器丨已針對未使用(寫入及讀取)之快取項目,對 15快取記憶體3發出指示弱旗標的設定命令。 快取項目在快取誤失時不管使用旗標U的值為何都先 成為替換對象。又,若W=1的快取項目為臟,則成為清除 處理的對象。 <使用旗標U的說明> 20 第12圖係顯示由旗標更新部39所進行之使用旗標u的 更新例。該圖之上段、中段、下段係顯示構成橫跨通路〇〜3 之組N的4個快取項目。4個快取項目右端的1或〇分別為使用 旗標U的值。將該等4個使用旗標U記成U0〜U3。 由於該圖上段之(U0〜U3)=(l、0、1、0),故意味著通 22 200534096 路〇、2之快取項目業已存取以及通路1、3之快取項目未广 取之意。 子 該狀態下,當記憶存取命中組㈣的通路㈣快取項目 時,如該圖中段所示,會更新為(u〇〜U3) = (1、i、丄、⑴。 5即,如貫線所不,通路1的使用旗標U1會從0更新成J。 再者,在該圖中段之狀態下,當記憶存取命中組N内的 通路3的快取項目時,如該圖下段所示,會更新為 (U0〜U3)=(0、〇、〇、υ。即,如實線所示,通路⑽使用旗 標U3會從0更新成:1。除此以外,如虛線所示,通路3以外的 1〇使用旗標U0〜U2則從i更新成〇。藉此,意味著通路蝸快取 項目較通路0〜2的各快取項目先存取。 替換部140在快取誤失時若沒有㈣的快取項目,則根 據使用旗標決定替換對象的快取項目且進行替換。例如, 旗標更新部39在第5圖的i段將通路!與通路3其中一個決 15定成替換對象,|在第5圖白勺中段將通路3決定成替換對 象,並在第5圖的下段將通路〇〜2任何一個決定成替換對象。 <弱旗標W的說明> ' 第13⑻圖為假定沒有弱旗標時之比較例,且顯示替換 快取項目的情況。該圖亦與第12圖相同,顯示構成橫跨通 路0〜3之組N的4個快取項目。4個快取項目右端的_分別 為使用旗標的值。又,僅將資料E設為存取頻率低的資料, 且將資料A、B、C、D設為存取頻率高的資料。 在該圖⑻之第i段的狀態下,若處理器、i存取至資科 E,則會發生快取誤失。因為該快取誤失,會例如從㈣的 23 200534096 快取項目中將存取頻率高的資料c的快取項目替換成存取 頻率低的資料E,而成為第2段的狀態。 在第2段的狀態T ’錢理器i存取至資料c,則會發生 快取誤失。因為該快取誤失,會將u:=〇的快取項目之存取 5頻率高的資料D的快取項目替換成存取頻率高的資料c,而 成為第3段的狀態。 在第3段的狀態下’若處理器!存取至資抑,則會發生 快取誤失。因為該快取誤失,會例如將存取頻率高的資料c 的快取項目替換成存取頻率高的資袖,而成為第4段的狀 同樣地,在第4段中不將使用頰率低的選擇為替 換對象,而留在快取記憶體中。 在第5段的狀態中,由於使用頻率低的資料E最舊 (U〜〇) ’因此選擇為替換對象,且逐出之。 、士此在近似LRU方式中(在普通的:奶方中也如此), 因"為存取頻率低的資料E,在4路時最不良的情況是誘發4 次快取誤失。 第13(b)圖係顯不替換處理中弱旗標w的角色之說明 圖〇 ^在该圖(b)之第1段的狀態(與該圖⑻之第1段相同)下, ^ 时1存取至資料£,則會發生快取誤失。因為該快取 失會例如從u==0的快取項目中將存取頻率高的資料c的 &取項目替換成存取頻率低的資料E。此時,處理器1在資 料£的快取項目中將弱旗標W設為1。藉此,在下-次快取 24 200534096 而成為第2段的 誤失時,資料E的快取項目會最先被逐出, 狀態。 在第2段的狀態下,若處理器丨 快取等失。@ 至貧料C,則會發生 失因為该快取誤失,會將⑹的快取項目之存取 =⑽料E的快取項目選擇成替換對替= 頻率南的資料C,而成為第3段的狀態。 成存取 如此一來,藉由設置弱旗標W,可減少存取頻率低的 資料誘發快祕失。 H貞羊低的 <u旗標更新處理> 10 第U圖係顯示替換部刚^旗標更新處理的流程圖。 ^圖中’將有效旗標為G(無效)之快取項目的使用旗標 u初始化為〇。 該圖中,替換部140在快取命中時(步驟s6i),將由設 ,索引所選擇之組中已設定之通路的使用旗標u設定成 15 (步驟S62),且讀取該組内其他通路的使用旗標u(步驟 …)亚判疋所項取之使用旗標U是否全部是1(步驟S64), 若並非全部都是!則結束,若全部都是i則將其他通路所有 的使用旗標u重設為〇(步驟S65)。 士此來,替換部M0如第12圖、第13⑷圖、第13(b) 20圖所示之更新例般更新使用旗標U。 <替換處理> 第15圖係顯示替換部140中之替換處理的流程圖。該圖 中,替換部140在記憶存取誤失時(步驟S91),讀取由設定索 引選出之組中之4路的使用旗標u及弱旗標…(步驟S92),且 25 200534096 通路是否存在(步驟S93)。當判定出… 5 10 不存在則選擇!個㈣的通路(步驟s94)。此時,者有夕 =旗標U為⑽通路時,替換部聊猶機細個二 二疋出胸的通路存在時,則無關於u旗標的值為何 =固W=1的通路(步驟叫此時,⑽數弱旗標物 勺通路時,替換部14〇則隨機選擇工個。
再者,替換部M0以該組t經選擇之通路的快取項目為 1進行替換(步驟S96),且在替換後將該快取項目之使用 旗與弱旗標w初始化為咖(步驟μ7)。另,此時,有 效旗標V、臟旗標D分別初始化為1、〇。 如此一來,當沒有〜=1的通路時,替換對象則從使用 旗‘ U為〇的快取項目中選出1個。 又’當有W=1的通路時,替換對象則不管使用旗標u 是0還是1,而從w=l的通路的快取項目中選出以固。藉此, 15
女第13(a)圖、第13(b)圖所示,可減少因存取頻率低的資料 留在快取記憶體中而誘發快取誤失的情況發生。 <旗標改變部141之構造> 第16圖係顯示旗標改變部141之構造的方塊圖。該圖之 構造與第5圖所示之旗標改變部41相較之下,不同點在於以 2〇 旗標改寫部407a取代旗標改寫部4〇7。 旗標改寫部407a除了旗標改寫部407的功能以外,在進 行W旗標的改變與使用旗標u的改變上不同。因此,在命令 暫存器401中可由處理器1來設定指示w旗標的指定之W命 令、指示旗標U的指定之u命令。第Π圖係顯示該等命令格 26 200534096 式的其中一_。該圖之命令袼式相對於第6(b)圖所示之命令 才口 k加了 W命令及u命令的才闌。w命令及u命令的内容血 D命令或V命令相同。 <…旗標設定處理〉 第圖係顯示旗標改寫部她中之w旗標設定處理的 例子之流程圖。 —人旗標改寫部4G7a在命令暫存器中保持有W旗標設 定命令時,依序輸出起始線至終止線的各線位址並進行迴 路1的處理(S82〜S86)。由於旗標改寫部術對各線進行相 10同的處理,因此,於此針對〗條線的處理作說明。 即,旗標改變部407a在尚未從處理器〗存取於快取記憶 體3½ ’將線位址輸出至位址暫存器撕挪),且在比較器 32a〜32d中比較位址暫存器2〇之標記位址與快取項目的標 。己以判定疋否命中(S84)。再者,旗標改變部4〇7a在命中 15打,對所命中之快取項目將標設為1(S85),且在誤失命 中日守,由於並未登錄在快取記憶體,因此什麼也不作。 藉此,對起始線至終止線的各線而言,在登錄於快取 記憶體3時,在W旗標設定1。 <u旗標設定處理> 旗標改變部407a在命令暫存器401中保持有1]旗標設定 命令時,係依照該命令設定u旗標。該處理藉由在第18圖中 將W旗標換讀成U旗標,則可與…旗標設定處理完全一樣地 執行。 如上所述,根據本實施形態之快取記憶體,藉由設定 27 200534096 200534096 5 ,、+r可在&取#失時將W=1的快取項目視為最舊的快 取項目而最先作為替換對象。又,雖然使用旗標⑽值只有 1位兀但由於會指出存取順序是舊的還是新的,因此,可 藉由U旗標設定處理,對起始線至終场的各線奴存取順 序。例如’處理器謂欲先留在快取記憶體3的位址資料指 定成位址範圍’且發出設定㈤仙旗標設定命令。 t上所述,根據本實施形態之快取記憶體,藉由設定 @ τ可在&取决失時將W=1的快取項目視為最舊的快 :而最先作為替換對象。又,雖然使用旗標U的值只有 ㈣喊咖,因此,可 二例::定處理,對起始線至終止線的各線設定存取順 2列如’―將欲先留在快取記憶 :成:址範圍’且發出設定U,標設定命令。相反 地,亦可將可從快 汉 15 且發出設定蚊纽址範圍’ <變形例> 取項目最先料 在被=之前’如果是臟’則亦可進行清除(寫二 (2)第 6(a)圖、第 ^ 20 由編譯器插入程式中= 入不合再HU 述各命令插 曰再進仃例如配„料的寫人 之區塊資料的寫人等寫人之程式位置即可。旦貝糾 產業上之可利用性 本發明適用於可使記憶存取高速化之快取記憶體,例 28 200534096 如,適用於晶片内快取記憶體、晶片外快取記憶體、資料 快取記憶體、命令快取記憶體等。 I:圖式簡單說明3 第1圖係顯示本發明實施形態1中包含處理器、快取記 5 憶體、記憶體之系統的構略構造之方塊圖。 第2圖係顯示快取記憶體之構造例的方塊圖。 第3圖係顯示快取項目的詳細位元構造。 第4圖係顯示控制部之構造的方塊圖。 第5圖係顯示旗標改變部之構造例的方塊圖。 10 第6 (a)圖係顯示將起始位址寫入起始位址暫存器之命 令的例子。 第6(b)圖係顯示將大小寫入大小暫存器之命令的例子。 第6(c)圖係顯示將命令寫入命令暫存器之命令的例子。 第6(d)圖係顯示命令的其中一例。 15 第7圖係起始對準儀及終止對準儀的說明圖。 第8圖係顯示旗標改寫部中旗標改變處理的例子之流 程圖。 第9圖係顯示本發明實施形態2中快取記憶體之構造的 方塊圖。 20 第10圖係顯示快取項目的位元構造。 第11圖係顯示控制部之構造的方塊圖。 第12圖係顯示由旗標更新部所進行之使用旗標U的更 新例。 第13(a)圖係顯示在不存在弱旗標時替換快取項目的情 29 200534096 況。 第13(b)圖係顯示替換處理中弱旗標w的角色之說明 圖。 第14圖係顯示替換部中之u旗標更新處理的流程圖。 5 第15圖係顯示替換部中之替換處理的流程圖。 第16圖係顯示旗標改變部之構造的方塊圖。 第17圖係顯示命令格式的其中一例。 第18圖係顯示旗標改寫部中之w旗標設定處理的例子 之流程圖。 10 【圖式之主要元件代表符號表】 1···處理器 40、140···替換部 2···記憶體 41、141···旗標改變部 3···快取記憶體 401···命令暫存器 20…位址暫存器 4〇2…起始位址暫存器 21…記憶I/F 403…大小暫存器 30···解碼器 404···加算器 31a〜31d、131a〜131d···通路 405a、405b·.·起始對準儀 32a〜32d··.比較器 406a、406b···終止對準儀 33a〜33d···及電路 407、407a···旗標改寫部 34···或電路 V···有效旗標 35、36···選擇器 D...臟旗標 37…多工解訊器 U···使用旗標 38、138···控制部 W...弱旗標 39、139···旗標更新部 h0〜h3···比較結果 30