TW200525356A - Cache memory and cache memory control method - Google Patents

Cache memory and cache memory control method Download PDF

Info

Publication number
TW200525356A
TW200525356A TW093126043A TW93126043A TW200525356A TW 200525356 A TW200525356 A TW 200525356A TW 093126043 A TW093126043 A TW 093126043A TW 93126043 A TW93126043 A TW 93126043A TW 200525356 A TW200525356 A TW 200525356A
Authority
TW
Taiwan
Prior art keywords
item
cache
cached
items
information
Prior art date
Application number
TW093126043A
Other languages
English (en)
Inventor
Tetsuya Tanaka
Ryuta Nakanishi
Tokuzou Kiyohara
Hiroyuki Morishita
Keishi Chikamura
Original Assignee
Matsushita Electric Ind Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Ind Co Ltd filed Critical Matsushita Electric Ind Co Ltd
Publication of TW200525356A publication Critical patent/TW200525356A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • G06F12/124Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being minimized, e.g. non MRU

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

200525356 九、發明說明: 【發明所屬之技術領域】 發明領域 本發明係有關於一種可令處理器之記憶體存取高速化之 5 快取記憶體及其控制方法。 【先前技術】 發明背景 迄今,用以置換(replace)快取記憶體之項目(entry)之演算 10 法有 LRU(Least Recently Used)及 FIFO(First In First Out)等為業 界所熟知。 LRU式係以快取項目(cache entry)中存取順序最早的項目 為置換對象之方法。該LRU式係諸如特開2000-7942號公報等所 揭示之快取記憶體中亦採用之最為普遍之置換演算法。 15 然而,由於以LRU式之演算法進行置換時,需要可就各項 目記憶用以顯示存取順序之資料之記憶部,以及可予以更新之 複雜電路’故有導致硬體規模增大之問題。 舉例吕之,當全相聯(full associative)快取記憶體中存在(2 之k乘方)個項目時,則各項目皆需1^位元之用以顯示存取順序之 20 資料。 又,若為N路集合相聯(N way set associative)者,而分路 (way)數N為8時,則用以顯示存取順序之資訊須為(分路=8)χ(最 少3位元)Χ(位元數)之大小,而有導致用以記憶存取順序資料之 記憶部(暫存器或RAM)及用以更新存取順序資料之電路之規模 200525356 增大之問題。 【發明内容】 發明概要 5 本發明之目的在提供一種可以較小之硬體規模實現可得 到同等於LRU之命中率之置換控制之快取記憶體。 為達成上述目的,本發明之快取記憶體包含有··一記憶機 構,係可就作為快取單位之用以保持資料之快取項目個別記情 用以顯示存取之有無位元之存取資訊者;及,一選擇機構: 10係可由對應用以顯示未存取之存取資訊之快取項目中選出置 換對象之快取項目者。 則述選擇機構亦可構成可自#應用以顯示未存取之存取 資訊之快取項目中,隨機或以循環法(咖心㈣選以快取項 唄目記憶用以顯示Lru 存取順序之資料,記憶機構可就各快取項目記憶可則 達之存取資訊’故可減低其記憶容量並縮小硬體規模。又^ 擇機構可藉選出與用以赫未存取之絲f訊對應之伊取= 目之-而簡單衫置換縣,且,細往社则目較,亦、 得大致同等之命中率。 亦可k 在此,前述快取記憶體亦可構成進 可於命中快取項目時,將對應該快取冑更新機構’係 存取,且於當時對應其他所有快取項目^存取資訊更新為已 取時,將對應其他所有快取項目之耗:/取㈣皆顯示已存 取貝訊重設為未存取者。 20 200525356 貪料之複雜電路置換 故可進而大幅縮小硬 藉此’則可將轉μ—存取順序 為可更新存取資訊之簡單旗標更新電路, 體規模。 述命中之‘:==可構成可進而於前述重設時,將前 與取項目之對應存取資訊重設為未存取 在此,亦可構成前述記憶機構可 以顯示是否為剛自記憶體朝快取項目存二:取項目記::用 新資訊’前述更新機構可進 :—之 目之新資訊重〜以海-ρ "夹取項目時對應該快取項 新資訊之對應快取項目停先項目中’令顯示並非新狀態之 」:取員目“,而選出置換對象之快取項目。 則述選擇機構亦可構成 取資訊並成於對應已顯示未存取之存 15 時,勿略^…非新狀.新資訊之快取項目不存在 寺心略新- 貝訊而選出置換對象之快取項目。 =前述選擇機構亦可構成可於僅有對應已顯示已存取 子胃錢對應已顯示為新狀態之新資訊 時,忽略新資訊而選出置換對象之快取項目。 之快==換w賴後未再受存取之新狀想 快取:二ΓΓ快取記惊雜之控制方法# _制具有可就 一 、個別圮h用以顯示存取之有無之存取 資訊之記憶部之快版 驟,係檢㈣取命令=1體去者,包含有下列步驟:―檢出步 檢出已命中之快取項目=者;一/1更新步驟,係將對應被 、目之1位元之存取資訊更新為已存取者; 20 200525356 一判定步驟,係判定被檢出已命中之快取項目以外之其他所有 快取項目之對應存取資訊是否顯示已存取者;一第2更新步 驟,係於判定機構之判定結果為肯定時,將其他所有快取項目 之對應存取資訊更新以顯示未存取者;及,一選擇步驟,係於 5 檢出已發生失誤時,自對應已顯示未存取之存取資訊之快取項 目中選出置換對象之快取項目者。 如上所述,根據本發明之快取記憶體,可縮小硬體規模, 並實現相當於以往LRU之命中率。 10 圖式簡單說明 第1圖係顯示本發明第1實施例中包含處理器、快取記憶 體、記憶體之概略構成之區塊圖。 第2圖係顯示快取記憶體之構成之區塊圖。 第3圖係顯示快取項目之位元構成之說明圖。 15 第4圖係顯示控制部之構成之區塊圖。 第5圖係顯示旗標之更新例之說明圖。 第6圖係顯示旗標更新處理流程者。 第7圖係顯示旗標管理部之輸出入邏輯之真值表。 第8圖係顯示旗標管理部之電路例者。 20 第9圖係顯示置換處理流程者。 第10圖係顯示變形例中旗標之更新例之說明圖。 第11圖係顯示變形例中旗標更新處理流程者。 第12A圖係顯示變形例中選擇處理之他例者。 第12B圖係顯示變形例中選擇處理之他例者。 200525356 第13圖係顯示本發明第2實施例中快取記憶體之構成之區 塊圖。 第14圖係顯示快取項目之位元構成之說明圖。 第15圖係顯示控制部之構成之區塊圖。 5 第16圖係顯示置換處理流程者。 第17圖係顯示旗標更新處理流程者。 【實施方式】 較佳實施例之詳細說明 10 (第1實施例) <整體構造> 第1圖係顯示本發明第1實施例中包含處理器1、快取記憶 體3及記憶體2之系統概略構造之區塊圖。如該圖所示,本發明 之快取記憶體3設置於具有處理器1及記憶體2之系統中,置換 15 演算法則採用簡化LRU而成之擬似LRU。本實施例中,擬似LRU 採用僅以1位元就各快取項目表示用以顯示快取項目之存取順 序之資料,並自該位元為0之快取項目中選出1個置換對象項目 之方式。 <快取記憶體之構造> 20 以下,以4路集合相聯快取記憶體應用上述擬似LRU時之 構造為快取記憶體3之具體例並加以說明。 第2圖係顯示快取記憶體3之構成例之區塊圖。如該圖所 示,快取記憶體3包含有:位址暫存器20、解碼器30、4個分路 31a〜31d(以下簡稱為分路0〜3)、或電路34、選擇器35、選擇器 200525356 36、多工解訊器37及控制部38。 位址暫存器20係用以保持通往記憶體2之存取位址之暫存 态。前述存取位址則為32位元。如該圖所示,存取位址自最上 位位元起依次包含21位元之標識符位址(tag acjdress),*位元之 5集索引(Set ίικ^χ)(圖中之SI)及5位元之字索引(word index)(圖 中之WI)。在此,標識符位址意指對映分路之記憶體中之領域(其 大小為集數X區塊數)。該領域之大小係由較標識符位址下位之 位址位元(A10〜A0)所決定,即2k位元組,亦為丨分路之大小。 集索引(SI)意指橫跨分路〇〜3之複數集之一。前述集數因集索引 10為4位元而為16集。標識符位址及集索引所界定之區塊係置換 單位,存在於快取記憶體内時稱為列式資料或列。列式資料之 大小係由較集索引下位之位址位元所決定,即128位元組。1字 元若為4位元組,貝彳1筆列式資料即為32字元。字索弓丨(WI)意指 用以構成列式資料之複數字元中之〗字元。位址暫存器2〇中最 15下位2位元(Al、A0)於字存取(wor(j access)時則予以忽略。 解碼為30可將集索引之4位元解碼,並選出橫跨4分路〇〜3 之16位元中之一。 4分路0〜3係具有相同構成之4分路,具有4x2k位元組之容 量。分路〇具有16個快取項目。 20 第3圖係顯示1快取項目中詳細之位元構成者。如該圖所 示,1快取項目可保持確認旗標(valid flag)V、21位元之標識符 (tag)、Π8位元組之列式資料、使用旗標U及壞旗標(dirty flag)D。相旗標v可顯示該快取項目是否有效。標識符係2ι 位元之標識符位址之複製。列式資料係標識符位址及集索引所 10 200525356 界定之區塊中之128位元組資料之複製。壞旗標D係用以顯示是 否曰對《亥!·夬取項目進行寫入,即,已快取至快取項目中之資料 是否因寫人而與記憶體中之資料有異而須對記憶體重新寫入 者。使用旗標U可顯示是否曾對該快取項目進行存取,未命中 5而進行置換時,可代用為集内之4個快取項目之存取順序。更 正確地說,使用旗標代表已存取,〇則代表未存取。由於 集内之4個使用旗標若皆為i,將重設為〇,故為可顯示集内之4 個快取項目有無使用之相對值。換言之,使用旗標u可顯示存 取時間之早晚之2種相對狀態。即,使用旗標之快取項目 10 之存取時間晚於使用旗標U為〇之快取項目。 为路1〜3亦與分路0相同。橫跨藉集索弓丨之4位元而經解碼 器30選擇之4分路之快取項目稱為集(set)。 比較32a可比較位址暫存器20中之標識符位址與藉集索 引選出之集所包含之4個標識符中之分路〇之標識符是否一 15致。比較器32b〜32c除與分路31b〜31d對應以外,其餘均相同。 和電路33a可比較確認旗標與比較器32&之比較結果是否 一致。其比較結果為h0。比較結果h〇為1時,意指位址暫存器 20中之標識符位址及集索引之對應列式資料存在,即,於分路 0中已命中。比較結果h0為0時,則意指未命中。和電路331)〜33d 20 除與分路31b〜31d對應以外,其餘均相同。其比較結果…〜…則 意指於分路1〜3中是否已命中。 或電路34則採用比較結果h0〜h3之「或」。以該「或」之結 果為hit。hit則表示是否命中快取記憶體。 選擇器35可自選出之集中之分路〇〜分路3之列式資料中選 200525356 出命中之分路之列式資料。 選擇器36可自選擇器35所選出之32字元之列式資料中選 出字索引所示之1字(〜0]^1)。 多工解訊器37可於對快取項目寫入資料時,對分路〇〜3之 - 5 -輸出寫人資料。前述寫人資料可以字為單位。控制料可㊆ . 行快取記憶體3整體之控制。尤其,可進行使用旗標狀更新及 應置換之快取項目之決定等。 <控制部之構成> 第4圖係顯示控制部38之構成之區塊圖。如該圖所示,控 φ 10制部%具有旗標更新部39與置換部4〇。 旗標更新部39可進行確認旗標V、使用旗標1;、壞旗標d之 更新。其中’確認旗標V及壞旗標D之更新部分係屬習知。旗標 更新部39可於快取命中時進行使用旗標之更新處理。 第5圖係顯示旗標更新部39所進行之使用旗標之更新例 15者。該圖之上段、中段、下段則顯示構成橫跨分路㈠之集ν之 4個快取項目。4個快取項目右端之⑽則分別為使用旗標之 值。該等4個使用旗標U記為u〇〜U3。 _ 該圖上段係(U〇~U3)=u、0小0),故代表分路〇、2之快 取項目曾發生存取’而分路i、3之快取項目未曾發生存取。 · 20 該狀態下,若記憶體存取命中集N内之分路丨之快取項目, 則如該圖中段所示,將更新為(U0〜U3) = (1、1、1、〇)。即,如 · 實線所示,分路1之使用旗標Ui將由0更新為1。 進而’同圖中段之狀態下,若記憶體存取命中集N内之分 路3之快取項目,則如該圖下段所示,將更新為(u〇〜u3)= (〇、〇、 12 200525356 P如K線所示,分路3之使用旗標m將由〇更新為1。 此外+如虛線所示,分路3以外之使用旗標仍則由丨更新為 — 刀路3之快取項目即可表達其存取時間較分路〇〜分路 2之各快取項目晚。 置換-MG可於快取*誤時根據使用旗標而決定置換對象 之决取項目以進行置換。舉例言之,置換部40可於第5圖上段 、定刀路1與刀路3之任一為置換對象,並於第$圖中段決定分 路為置換對象,再於第5圖下段決定分路〇〜2之任一為置換對 象。 10 <旗標更新處理> 第6圖係顯示旗標更新部39中之旗標更新處理之流程圖。 «亥圖中確。心旗才示為0(無效)之快取項目之使用旗標u係已初始 化為0者。 a圖中’旗標更新部39於快取命中時(步驟S61),藉集索引 選出之集内所命中之分路之使用旗_設為i(步驟S62),並讀出 該集内之其他分路之使用旗標11(步驟S63),再判定讀出之使用 旗標U是否全為!(步驟S64),若非全^則結束,若全^則將其 他分路之所有使用旗標U重設為〇(步驟S65)。 如此,旗標更新部39即可更新使用旗標如同第㈣所示之 20更新例。由於實際之旗標更新部%係由硬體所構成,故就以下 之硬體構成例加以說明。 第7圖係顯示代表旗標更新部39之輸出入邏輯之真值表。 該圖之輸入攔中之hO〜h3係第2圖所示之分路〇〜分路化命中信 號。U0—in~U3_m代表自藉集索%選出之集讀出之分路〇〜分路3 13 200525356 之使用旗標之值(更新前之值)。該圖之輸出欄中之 U0_out〜U3_out則代表用以重新寫入集索引之使用旗標之值(更 新後之值)。又,圖中之〇記號代表命中之分路之使用旗標(輸 入及輸出),□記號則代表其他分路之使用旗標(輸入)全為1時 5 之對應輸出值。圖中之*a~*d則代表分別滿足其次之式1〜式 4。在此代表邏輯積。 (Ul_in)&(U2一in)&(U3_in)=0 (式 1) (U0—in)&(U2_in)&(U3一in)=0 (式 2)
(U0一in)&(Ul一in)&(U3—in)=0 (式3) 10 (U0—in)&(Ul—in)&(U2_in)=0 (式4) 該圖中,No.l〜Νο·4之行代表分路0命中之情形(h0=l)。此 時,命中之分路0之使用旗標U0_in之值不論為0或1,使用旗標 U0_out皆為1。又,其他分路之使用旗標Ul_out〜U2_out雖不於 *a時更新,但若如□記號所示於輸入時全為1,則將全部更新 15 為0。No·5〜No·8、No·9〜No·12、No·13~No·16除命中之分路為 1、2、3以夕卜,其餘均相同。
<電路例> 第8圖係顯示具有第7圖之輸出入邏輯之旗標更新部39之 具體電路例者。該圖之旗標更新部39包含有和電路80〜83、和 20 電路84~87、或電路88、或電路89〜92、選擇93〜96。 和電路80~83可輸出自藉集索引選出之集内讀出之分路0〜 分路3之使用旗標U0_in〜U3_in中,確認旗標V為1(有效)之快取 項目之使用旗標U0_in〜使用旗標U3_in之值。 和電路84〜87與或電路88可檢出和電路80〜83之輸出不符 14 200525356 第7圖所示之* a〜*d,即該圖中之輸入欄之□記號之情形。即, 可檢出命中之分路以外之其他分路之使用旗標UJn全為丨之情 形。 選擇器93〜96於檢出上述□記號之情形時將選擇丨側(上側) 5輸入,於未檢出上述□記號之情形時則選擇0側(下側)輸入,選 擇結果則輸出為U0-out~ul-out。具體而言,檢出上述□記號 之情形時’選擇器93~96之1側(上側)輸入有h0〜h3,故命中之分 路之使用旗標u-〇ut為1,其他分路之使用旗標則為〇。未檢出 上述□記號之情形時,選擇器93〜96之0侧分別輸入有h信號與 10使用旗標〇-4之「或」,故命中之分路之使用旗標U_out為1, 而其他分路之使用旗標則維持不變。 藉上述之電路,可將第7圖之真值表硬體化。由於可僅就 各分路更新1位元之使用旗標而無須顯示個別之分路之存取順 序’故可縮小硬體規模。 15 <置換處理> 第9圖係顯示置換部40中之置換處理之流程圖。該圖中, 置換部4〇將於記憶體存取發生失誤時(步驟S91),讀出藉集索引 選出之集内之4分路之使用旗標U(步驟S92),再選出一使用旗標 υ&〇之分路(步驟S93)。此時,若使用旗標U為0之分路存在複 20 數個,則由置換部40隨機選出其一。進而,置換部40以該集内 選出之分路之快取項目為對象進行置換(步驟S94),置換後則將 該快取項目之使用旗標U初始化為1(步驟S95)。另,此時確認旗 標V、壞旗標D則分別初始化為1、〇。 另,第9圖中,雖以4個確認旗標V皆為1(有效)為前提,但 15 200525356 若v=0(無效)之快取項目存在則選擇該快取項目。 如上所述,置換對象係藉選出一使用旗標為ϋ之快取項目 而決定者。該置換演算法由於使用1位元之使用旗標替代以往 之LRU之用以顯示存取順序之資料,故可稱為擬aLRU。 5 如以上之說明,根據本實施例之快取記憶體,僅須就各快 取項目設置1位元之使用旗標,而無須如以往之LRU般就各快取 項目設置用以顯示存取順序之資料。藉此,即可將以往用以更 新存取順序資料之複雜電路置換為可更新使用旗標之簡單的 旗標更新電路(旗標更新部39)。又,置換部40中,則可藉選出 1〇 一使用旗標為0之快取項目而輕易決定置換對象。如上所述, 根據本實施例之快取記憶體,可大幅縮小硬體規模。且,與以 往之LRU相較,亦可獲得幾近同等之命中率。 <變形例> 另,本發明之快取記憶體並不限於上述實施例之構成,而 15可進行各種變形實施。以下,即就若干變形例加以說明。 (1)旗^示更新部39雖如第5圖下段所示般,若集内之其他分 路之使用旗標U0〜U3全為1,則予以更新為0,命中之分路本身 之使用旗標則更新為1,但亦可構成同樣將命中之分路本身之 使用旗標更新為〇。第10圖即顯示有此時之旗標更新例。第1〇 20圖與第5圖相較,不同點在於下段之分路3不為1而為〇。 第11圖係顯示本變形例中之旗標更新處理之流程圖。該圖 與第6圖相較,不同點在於其包含步驟S65a以替代步驟S65。相 同點之說明將予以省略,而僅就不同點加以說明。步驟 中,旗標更新部39可將集内之所有使用旗標υ〇〜U3重設為〇。 200525356 5 10 15 20 如上所述,根據第11圖之旗標更新處理,當集内所有使用 旗標u〇〜U3皆將為1時,可予以重設為0。第11圖之處理亦可獲 得與第5圖相同之命中率。 (2)第9圖所示之步驟S93中,置換部4〇雖可於集内存在複 數之使用旗標為〇之快取項目時,隨機選出其一,但亦可令其 循一定規則進行選擇。舉例言之,置換部40亦可於上述情形下 選擇分路之編號較小者(較大者),或以循環法進行選擇。 第12八圖係顯示依循環法進行選擇之處理者。該圖中,置 換部40可於集内存在複數之使用旗標為〇之快取項目時,判別 前次已置換之分路之編號(步驟sm),並自使用旗標為〇之快取 項目中選擇編號較業經判別之編號大之分路之快取項目((步、 叱2)。在此,舉例言之,可設置用以保持快取記憶體整體= 置換之分路之編號之暫存器,以藉參照該暫存器而進行前欠已 置換之編.制。該暫存㈣可構成可以位元位置顯示= 置換之分路者,分狀域。此㈣存H已例示於^ 咖圖。該圖中顯示有暫存器中之4位元之欄位(fi_變遷之产 形。前述4位元之位元位置對應分路Q〜分路3。4位元中之,,^ 位元代表前次已置換之分路。步驟⑽中,置換部砸自集= 之使用旗標為0之快取項目中制自”丨,,之位元朝右旋轉之方向 之近處之位元’而選擇對應該位元位置之分路之快取項目。該 圖之例示中,快取項目則依次自分路0、J、3、〇、2選出。A 另,第UB圖中雖顯示集全體共通之暫存器,但亦可 集分別設置暫存器。 备 ⑶上述實施例中,雖以4路集合相聯快取記憶體進行說 鲁 17 200525356 月4刀路數亦可為8分路、16分路。又,上述實施例中,雖 說明集數為16之例,但集數並無限制。 ()上述貝;fc例中,雖以集合相聯快取記憶體為例加以說 明,但亦可為全相聯快取記情f。 5 10 (Μ吏用旗“U亦可不為以元而為2位元。舉例言之,即便 為^兀1^可相對判別時間遲早之2狀態即可,而無須就個 別快取項目之存取順序完全予以顯示,且,可以2位元表現之 第3及第4種狀態則可任意予以定義。
、⑹第9圖所示之步驟S95中,置換後之使用旗標U雖初始化 為1彳亦可初始化為〇。但,令使用旗標之初始值為〇時,可 犯因置換後所發生之快取失誤而再度遭置換。由此點則可推論 初始值為1較適宜。 (第2實施例) 第13圖係顯示本發明第2實施例之快取記憶體之構成之區 塊圖。該®之快取記憶體與第2®之構成相較,不同點在於其 包含分路131a〜l3ld以替代分路31a~31d,以及包含控制部138 以替代控制部38。以下,即省略相同點之說明,而僅就不同點 加以說明。 分路131a與分路31a相較,不同處在於其於各快取項目中 追加有新旗標(new flag)。 第14圖係顯示分路13以内之一快取項目之位元構成者。如 該圖所示,僅有追加新旗標N之處不同。新旗標N於置換後(或 fill後)立即設定為初始值1,發生對該快取項目之存取後則重設 18 200525356 為0 °即’新旗標N之1代表該快取項目業經置換(或fill)後尚未 被存取之新狀態。 如第15圖所示,控制部138包含有旗標更新部139及置換部 14〇 ’與控制部38相較,其不同點在於可設定及更新新旗標n, 且’進行置換時將新旗標為i之快取項目排除於置換對象之外。 <置換處理> 第16圖係顯不置換部14〇中之置換處理之流程圖。該圖與 第9圖相較,不同點在於其包含步驟s92a以替代步驟s92,且於 步驟S92a與93間追加有步驟8161與5162,以及其包含步驟沾化 10 以替代步驟S95。 步驟S92a中,置換部14〇於藉集索引選出之集内之4個分路 之使用旗標U0〜U3以外,亦可讀出4個新旗標(N〇〜N3)。 進而,置換部140可判定已讀出之4個新旗標^[〇~1^3是否全 為1(步驟S161),若全為!,則推進至步驟州,若非全為1(有〇), 則自使用旗標U為〇之分路中排除新旗標N為l之分路(步驟 S162) 〇 20 進而,步驟S93中,置換部14〇可自使用旗標為〇且新旗標 亦為0之分路中選出-置換對象。但,若4個新旗標全為工,則 由使用旗標U為〇之分路中選出—置換對象,而,若4個使用旗 ‘U全為1,則忽略新旗標N而自使用旗標之分路中選出一 置換對象,若使用旗標U=0且新旗標N=〇之分路不存在,壯 略新旗標N而自使用旗標U=G之分路中選出_置換對象。。 又,步驟S95at,置換部⑽可與其他_之初始化同時 將新旗標N初始化為1。 19 200525356 <旗標更新處理> 第17圖係顯示旌4 更新部139中之旗標更新處理之流私 圖。該圖與第6圖相知 平乂 ’不同點在於其於步驟S62與S63間追加 有步驟S171。 5 10 15 、知更新部139可於選出之集内已命中之 路之快取項目之新旅辦 、&為1時,予以重設為〇。藉此,即可將 一度發生存取之快取堪 取項目之新旗標N重設為0。 如以上之說明,去忠 ^
本實施例之置換部140於新旗標為1時,町 將該快取項目排除於置換對象之外。其理由如下使用旗 ^之初始值雖為1,但其他分路之使用旗標若依:欠轉為工,則 將重σ又為0。亦即’即便係使用旗標U為〇之快取項目亦可能從 未發生存取°如此’當使用旗標為〇時,置換後未曾發生存取 1*夬取員目可此因快取失誤之發生而再度被選為置換對象。因 此’藉设置新旗標Ν,即可防止置換後未f發生存取之快取項 目再遭置換。
<變形例> (1) 第1貫施例之變形例(1)〜(2)亦可應用於本實施例。 (2) 第16圖所示之步驟S95a中,置換後之使用旗標u雖將初 為1仁亦可初始化為〇。不同於第1實施例,本實施例中 20由於设有新旗標N,故無論使用旗標之初始值為丨抑或〇,皆可 防止因置換後所發生之快取失誤而在未曾再發生存取之情形 下再度遭置換。 (3) 上述各實施例之快取記憶體亦可應用於與處理器併設 於晶片内之晶片快取記憶體(〇n-chip)、晶片外接(off_chip)快取 20 200525356 記憶體、指令快取記憶體或資料快取記憶體。 產業上之利用可能性 本發明適用於可使記憶體存取高速化之快取記憶體及其 5 控制方法,舉例言之,可適用於晶片快取記憶體、晶片外接快 取記憶體、資料快取記憶體、指令快取記憶體等。
10 15
20 21 200525356 【圖式簡單說明】 第1圖係顯示本發明第1實施例中包含處理器、快取記憶 體、記憶體之概略構成之區塊圖。 第2圖係顯示快取記憶體之構成之區塊圖。 5 第3圖係顯示快取項目之位元構成之說明圖。 第4圖係顯示控制部之構成之區塊圖。 第5圖係顯示旗標之更新例之說明圖。 第6圖係顯示旗標更新處理流程者。
第7圖係顯示旗標管理部之輸出入邏輯之真值表。 10 第8圖係顯示旗標管理部之電路例者。 第9圖係顯示置換處理流程者。 第10圖係顯示變形例中旗標之更新例之說明圖。 第11圖係顯示變形例中旗標更新處理流程者。 第12A圖係顯示變形例中選擇處理之他例者。 15 第12B圖係顯示變形例中選擇處理之他例者。
第13圖係顯示本發明第2實施例中快取記憶體之構成之區 塊圖。 第14圖係顯示快取項目之位元構成之說明圖。 第15圖係顯示控制部之構成之區塊圖。 20 第16圖係顯示置換處理流程者。 第17圖係顯示旗標更新處理流程者。 22 200525356 【主要元件符號說明】
1…處理器 40···置換部 2…記憶體 80〜87…和電路 3···快取記憶體 88〜92…或電路 20…位址暫存器 93~96…選擇器 30…解碼器 138…控制部 31a〜31d、131a〜131d…分路 139…旗標更新部 34…或電路 140…置換部 35、36…選擇器 D…壞旗標 37…多工解訊器 N0〜N3…新旗標 38…控制部 V…確認旗標 32a〜32c···比較器 U…使用旗標 33a〜33d···和電路 39…旗標更新部
23

Claims (1)

  1. 200525356 十、申請專利範圍·· 1·一種快取記憶體,包含有: 5 π ^机邛馬快取單位之用y 個別記憶用以顯示存取之有無之丨崎資料之快取項目 一選擇機構,係可由對應心顯示未存 =取資訊者;及 目中選出置換對象之快取項目者。子取之存取資訊之快取項 2.如申請專觸項之絲記憶體, 自對應用以顯示未存取之存„ 擇機構係可 快取項目者。 取貝歇快取項目中,隨機選出1 10 丄如曱睛專利範圍第i項之快取記憶
    — 穴τ則邋選擇機攝係 對應用以顯示未存取之存 、 于取貝汛之快取項目中,以循環法 出1快取項目者Λ 20 (如申請專利範圍第i項之快取記憶體,其更具有一更新機構, 係可於p中W取項請,將對應該快取項目之存取資訊更新為 已存取’且於當時對應其他所有快取項目之存取資訊皆顯示已 存取時’料應其賴有快取項目之存取資訊重設為未存取 者。 5.如申請專利範圍第4項之快取記憶體’其中前述更新機構可進 而於則述重設時’將前述命中之快取項目之對應存取資訊重設 為未存取。
    6.如申請專利範圍第5項之快取記憶體,其中前述記憶機構可進 而就各决取項目記憶用以顯示是否為剛自記憶體朝快取項目 存入資料後之新狀態之新資訊, 則述更新機構可進而將命中快取項目時對應該快取項目之新 24 200525356 中,令顯域麵未f取之麵f訊之對應快取項目 h斤狀悲之新資訊之對應快 置換對象之快取項日。 貝目W,而選出 資訊重設’以顯示並非新狀態 前述選擇機機則可自顯 置換對象之快取項目 7·如申請專簡«6項之快取記憶體,其中㈣ 對應已顯示未存取之存取#訊並對紅顯示並=^於 =之快取項目不存在時,忽略新資訊而選出置換對象 10
    8.如申請專利範圍第6項之快取記㈣,其中前述選擇 财對應已顯示已存取之存取資訊或對應已顯㈣新狀態之 新> sfl之快取項目存在時,勿略斩眘— 項目 心略新貝成而選出置換對象之快取 聯式 9.如申請專利範圍第1項之快取記憶體,复 /、係採用集合相 者, 15 其進而具有一更新機構,係可於命中快取5 、取項目時,將對應該快 取項目之存取資訊更新為已存取,並於杂 '田f該快取項目之同一
    集内之其他所有快取項目之對應存取資訊 ^ ^ ^ 白顯示已存取時,將 前述同一集内之其他所有快取項目之對 丁應存取項目重設為未 存取者。 2〇 1〇·如申請專利範圍第9項之快取記憶體,其中前述更新機構可 進而於前述重設時,將對應已快取命中之快取項目之存取資訊 重設為未存取。 η.如申請專利範園第ίο項之快取記憶體’其中前述記憶機構可 進而就各快取項目,記憶用以顯示是否為剛朝快取項目存入資 25 200525356 料後之新狀態之新資訊, 前述更新機構可進而於命中快取項目時,將對應該快取項目之 新資訊重設,以顯示並非新狀態, 前述選擇機構則可自對應已顯示未存取之存取資訊且對應已 5 顯示非新狀態之新資訊之前述同一集内之快取項目中選出置 換對象之快取項目。
    12. 如申請專利範圍第11項之快取記憶體,其中前述選擇機構可 於對應已顯示未存取之存取資訊且對應顯示並非新狀態之新 資訊之快取項目不存在時,忽略新資訊而選出置換對象之快取 10 項目。 13. 如申請專利範圍第11項之快取記憶體,其中前述選擇機構可 於僅有對應已顯示已存取之存取資訊或對應已顯示為新狀態 之新資訊之快取項目存在時,忽略新資訊而選出置換對象之快 取項目。 15 14.如申請專利範圍第1項之快取記憶體,其更包含有:
    一檢出機構,係用以檢測已命中快取項目之事實者; 一第1更新機構,係用以將被檢出已命中之快取項目之對應存 取資訊更新為已存取者; 一判定機構,係用以判定除被檢出已命中之快取項目以外之其 20 他所有快取項目之對應存取資訊是否顯示已存取者;及 一第2更新機構,係可於前述判定機構之判定結果為肯定時, 將其他所有快取項目之對應存取資訊更新以顯示為未存取者。 15.如申請專利範圍第14項之快取記憶體,其中前述記憶機構可 進而就各快取項目,記憶用以顯示是否為剛自記憶體朝快取項 26 200525356 目存入資料後之新狀態之新資訊, 前述第1更新機構可進而將對應被檢出已命中之快取項目之新 資訊重設,以顯示並非新狀態, 前述選擇機構則可自對應已顯示未存取之存取資訊之快取項 5 目中,令對應已顯示並非新狀態之新資訊之快取項目優先,而 選出置換對象之快取項目。 16. 如申請專利範圍第1項之快取記憶體,其係採用集合相聯式 者,
    其進而包含有: 10 一檢出機構,係用以檢測已命中快取項目之事實者; 一第1更新機構,係用以將被檢出已命中之快取項目之對應存 取資訊更新為已存取者;
    一判定機構,係用以判定被檢出已命中之快取項目之同集内之 其他所有快取項目之對應存取資訊是否顯示已存取者;及 15 一第2更新機構,係可於前述判定機構之判定結果為肯定時, 將其他所有快取項目之對應存取資訊更新以顯示為未存取者。 17. 如申請專利範圍第16項之快取記憶體,其中前述記憶機構可 進而就各快取項目,記憶用以顯示是否為剛朝快取項目存入資 料後之新狀態之新資訊, 20 前述第1更新機構可進而將對應被檢出已命中之快取項目之新 資訊重設,以顯示並非新狀態, 前述選擇機構則可自對應已顯示前述同一集内未發生存取之 存取資訊之快取項目中,令對應已顯示並非新狀態之新資訊之 快取項目優先,而選出置換對象之快取項目。 27 200525356 18.—種快取記憶體之控制方法,係用以控制具有可就快取記憶 體之快取項目個別記憶用以顯示存取之有無之存取資訊之記 憶部之快取記憶體者,包含有下列步驟: 一檢出步驟,係檢測快取命中及失誤者; 5 一第1更新步驟,係將對應被檢出已命中之快取項目之1位元之 存取資訊更新為已存取者; 一判定步驟,係判定被檢出已命中之快取項目以外之其他所有 快取項目之對應存取資訊是否顯示已存取者;
    一第2更新步驟,係於判定機構之判定結果為肯定時,將其他 10 所有快取項目之對應存取資訊更新以顯示未存取者;及 一選擇步驟,係於檢出已發生失誤時,自對應已顯示未存取之 存取資訊之快取項目中選出置換對象之快取項目者。
    28
TW093126043A 2003-09-19 2004-08-30 Cache memory and cache memory control method TW200525356A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003327032 2003-09-19

Publications (1)

Publication Number Publication Date
TW200525356A true TW200525356A (en) 2005-08-01

Family

ID=34372854

Family Applications (1)

Application Number Title Priority Date Filing Date
TW093126043A TW200525356A (en) 2003-09-19 2004-08-30 Cache memory and cache memory control method

Country Status (7)

Country Link
US (1) US20070028055A1 (zh)
EP (1) EP1667028A4 (zh)
JP (1) JP4009304B2 (zh)
KR (1) KR20060063804A (zh)
CN (1) CN100429632C (zh)
TW (1) TW200525356A (zh)
WO (1) WO2005029336A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602006011292D1 (de) 2005-04-08 2010-02-04 Panasonic Corp Cache-speichersystem und steuerverfahren dafür
KR100772196B1 (ko) * 2005-12-06 2007-11-01 한국전자통신연구원 Pci 메모리를 이용한 무복사 캐싱 방법 및 그 장치
US7516275B2 (en) * 2006-04-25 2009-04-07 International Business Machines Corporation Pseudo-LRU virtual counter for a locking cache
SK287315B6 (sk) 2006-06-02 2010-06-07 Biotika, A. S. Spôsob izolácie polymyxínu B z vyfermentovanej pôdy
SK287293B6 (sk) 2006-06-15 2010-05-07 Biotika, A. S. Spôsob fermentácie polymyxínu B pomocou produkčného mikroorganizmu Bacillus polymyxa
US20080292560A1 (en) * 2007-01-12 2008-11-27 Dov Tamarkin Silicone in glycol pharmaceutical and cosmetic compositions with accommodating agent
US7861041B2 (en) * 2007-09-04 2010-12-28 Advanced Micro Devices, Inc. Second chance replacement mechanism for a highly associative cache memory of a processor
US8214602B2 (en) * 2008-06-23 2012-07-03 Advanced Micro Devices, Inc. Efficient load queue snooping
TW201015319A (en) * 2008-09-17 2010-04-16 Panasonic Corp Cache memory, memory system, data copying method and data rewriting method
TW201017421A (en) * 2008-09-24 2010-05-01 Panasonic Corp Cache memory, memory system and control method therefor
JP6340874B2 (ja) * 2014-03-31 2018-06-13 ブラザー工業株式会社 非吐出ノズル検出装置
CN107992433A (zh) * 2017-12-19 2018-05-04 北京云知声信息技术有限公司 二级缓存检测方法及装置
US10783083B2 (en) * 2018-02-12 2020-09-22 Stmicroelectronics (Beijing) Research & Development Co. Ltd Cache management device, system and method

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4195343A (en) * 1977-12-22 1980-03-25 Honeywell Information Systems Inc. Round robin replacement for a cache store
JPS55157181A (en) * 1979-05-25 1980-12-06 Nec Corp Buffer memory control system
FR2645986B1 (fr) * 1989-04-13 1994-06-17 Bull Sa Procede pour accelerer les acces memoire d'un systeme informatique et systeme pour la mise en oeuvre du procede
JPH04288647A (ja) * 1991-02-27 1992-10-13 Mitsubishi Electric Corp キャッシュメモリにおける置き換え制御装置
US5497477A (en) * 1991-07-08 1996-03-05 Trull; Jeffrey E. System and method for replacing a data entry in a cache memory
US5353425A (en) * 1992-04-29 1994-10-04 Sun Microsystems, Inc. Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature
JP3309425B2 (ja) * 1992-05-22 2002-07-29 松下電器産業株式会社 キャッシュ制御装置
JPH06348595A (ja) * 1993-06-07 1994-12-22 Hitachi Ltd キャッシュ装置
US5802568A (en) * 1996-06-06 1998-09-01 Sun Microsystems, Inc. Simplified least-recently-used entry replacement in associative cache memories and translation lookaside buffers
US5809528A (en) * 1996-12-24 1998-09-15 International Business Machines Corporation Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory
US6032228A (en) * 1997-11-26 2000-02-29 International Business Machines Corporation Flexible cache-coherency mechanism
US6393525B1 (en) * 1999-05-18 2002-05-21 Intel Corporation Least recently used replacement method with protection
US6282617B1 (en) * 1999-10-01 2001-08-28 Sun Microsystems, Inc. Multiple variable cache replacement policy
US20030105929A1 (en) * 2000-04-28 2003-06-05 Ebner Sharon M. Cache status data structure
JP3661614B2 (ja) * 2001-07-12 2005-06-15 日本電気株式会社 キャッシュメモリ制御方法及びマルチプロセッサシステム
JP2003131946A (ja) * 2001-10-19 2003-05-09 Nec Corp キャッシュメモリ制御装置及び方法
US20030084253A1 (en) * 2001-10-31 2003-05-01 Johnson David J.C. Identification of stale entries in a computer cache
US6996678B1 (en) * 2002-07-31 2006-02-07 Cisco Technology, Inc. Method and apparatus for randomized cache entry replacement

Also Published As

Publication number Publication date
EP1667028A4 (en) 2008-10-29
EP1667028A1 (en) 2006-06-07
US20070028055A1 (en) 2007-02-01
CN1853171A (zh) 2006-10-25
WO2005029336A1 (ja) 2005-03-31
JP4009304B2 (ja) 2007-11-14
CN100429632C (zh) 2008-10-29
KR20060063804A (ko) 2006-06-12
JPWO2005029336A1 (ja) 2006-11-30

Similar Documents

Publication Publication Date Title
JP4098347B2 (ja) キャッシュメモリおよびその制御方法
US7805574B2 (en) Method and cache system with soft I-MRU member protection scheme during make MRU allocation
US8583872B2 (en) Cache memory having sector function
US20080052488A1 (en) Method for a Hash Table Lookup and Processor Cache
TW200525356A (en) Cache memory and cache memory control method
US8499123B1 (en) Multi-stage pipeline for cache access
US7343455B2 (en) Cache mechanism and method for avoiding cast out on bad victim select and recycling victim select operation
JPS60214059A (ja) キヤツシユ機構
TW200805061A (en) Patrol snooping for higher level cache eviction candidate identification
US7831774B2 (en) Pipelining D states for MRU steerage during MRU-LRU member allocation
US20070288694A1 (en) Data processing system, processor and method of data processing having controllable store gather windows
TW201015319A (en) Cache memory, memory system, data copying method and data rewriting method
JP3495266B2 (ja) キャッシュロック装置及びキャッシュロック方法
TW200534096A (en) Cache memory and its controlling method
EP1686484A1 (en) Cache memory and control method thereof
JP4047281B2 (ja) キャッシュメモリをメインメモリに同期させる方法
US20090150617A1 (en) Cache mechanism and method for avoiding cast out on bad victim select and recycling victim select operation
JPH08171513A (ja) キャッシュメモリの変更されたインデックスラインを識別し、その変更されたインデックスラインを外部メモリに書込むための装置
JP3988485B2 (ja) キャッシュ回路、情報処理装置及び電子機器
JP3043732B1 (ja) データ置換システム
TW200530818A (en) Cache memory and control method thereof
US6915405B2 (en) Emulated target associative memory system with a multi-digit incrementable validity counter
US20090106497A1 (en) Apparatus, processor and method of controlling cache memory
TW201308079A (zh) 快取記憶體裝置與快取記憶體資料存取方法
JP4057699B2 (ja) 記憶システム