两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

具有扇區(qū)功能的高速緩沖存儲器的制作方法

文檔序號:6470035閱讀:193來源:國知局
專利名稱:具有扇區(qū)功能的高速緩沖存儲器的制作方法
技術(shù)領(lǐng)域
這里描述的技術(shù)涉及高速緩沖技術(shù),用于在高性能處理器和高性能 計算領(lǐng)域高速執(zhí)行程序。
背景技術(shù)
當(dāng)前,操作頻率的改善已經(jīng)使用于存儲器訪問的延時相對更長,這 已經(jīng)影響整個系統(tǒng)的性能。為了掩蓋存儲器訪問延時,通常為處理器提 供小容量的被稱為高速緩沖存儲器的高速存儲器。
圖1示出了目前最流行的組相關(guān)高速緩沖存儲器的操作概要。高速
緩沖存儲器1401包括多個組。通過將各個組劃分成諸如高速緩沖路1402 (#1)到1402 (#4)的多個高速緩沖路(cache way) 1402 (后面將高速 緩沖路簡稱為"路")來控制各個組。因此,圖1中的實(shí)施例圖示了 4路 組相關(guān)高速緩沖存儲器。
每個高速緩沖路1402包括多個高速緩沖塊1403 (后面將高速緩沖 塊簡稱為"塊"),例如高速緩沖塊1403 (#1)到1403 (#n),例如n的值 為1024。
每個高速緩沖塊1403包括示出有效/無效的有效性標(biāo)記、標(biāo)簽以及 數(shù)據(jù)。例如,數(shù)據(jù)大小為用于有效性標(biāo)記的1位、用于標(biāo)簽的15位以及 用于數(shù)據(jù)的128字節(jié)。
例如,按照"高速緩沖塊的大小x高速緩沖塊的數(shù)目x高速緩沖路的數(shù) 目=128字節(jié)xl024個塊x4路"計算,高速緩沖存儲器1401的大小為512k 字節(jié)。
同時,地址1405包括存儲器訪問用程序指定的32位。在地址1405 的32位中,前15位用作標(biāo)簽、接下來的10位用作索引,而最后7位用 作高速緩沖塊內(nèi)的偏移。根據(jù)上面的結(jié)構(gòu),當(dāng)指定了針對地址1405的數(shù)據(jù)讀取時,通過地址 1405中的10位索引指定塊號#1到#11中的一個?,F(xiàn)在假設(shè)該號為弁i。
結(jié)果,從高速緩沖路1402 (#1)到(#4)的每一個讀出對應(yīng)于指定 的塊號ffi的高速緩沖塊1403 (#i)。然后,讀出的高速緩沖塊1403 (#i) 被分別輸入到比較器1404 (弁l)到(弁4)。
比較器1404 (#1)到(斜)檢測每個讀出的高速緩沖塊1403 (#i) 中的標(biāo)簽值和指定的地址1405中的標(biāo)簽值的匹配/不匹配。為比較器(#1) 到(#4)中檢測到匹配的那個比較器讀取的高速緩沖塊1403 (射)中發(fā) 生高速緩沖命中。因此,讀出該高速緩沖塊1403 (#i)中的數(shù)據(jù)。因此, 相對于從主存儲器讀出,上面的結(jié)構(gòu)能夠以更快的速度讀出數(shù)據(jù)。
當(dāng)在所有比較器1404中都未檢測到匹配時,或者當(dāng)即使檢測到匹配 而有效性標(biāo)簽指示無效時,高速緩沖命中未發(fā)生。在這種情況中,從主 存儲器中的地址1405讀出數(shù)據(jù)。
同時,當(dāng)指定針對地址1405的數(shù)據(jù)寫入時,以和讀出操作相同的方 式用地址1405中的10位索引指定作為塊號#1到#11中的一個的射。
接著,如圖2中示出的替換路選擇電路1501從分別與在高速緩沖路 1402 (#1)到(#4)中指定的塊號射相對應(yīng)的4個高速緩沖塊1403 (糾) 中選擇仍未使用的塊(其中標(biāo)記未被指定)、或者具有指示無效的有效性 標(biāo)簽的塊,或者當(dāng)目前所有塊都被使用時根據(jù)預(yù)定算法確定的路中的塊。 然后,替換路選擇電路1501輸出如圖2中所示的4位選擇信號。根據(jù)從 如上述的替換路選擇電路1501輸出的選擇信號,數(shù)據(jù)被寫入具有指定塊 號粗的四個路(#1)到(#4)中所選的一個內(nèi)的高速緩沖塊1403。
當(dāng)目前所有塊都被使用時,例如根據(jù)LRU (最近最少使用)算法從 四個高速緩沖路1402 (#1)到(#4)中進(jìn)行選擇。根據(jù)該算法,被最近 最少使用的高速緩沖路中的高速緩沖塊數(shù)據(jù)被選擇并替換(移除)。
如從上面操作描述中清楚的,當(dāng)寫目標(biāo)為大數(shù)據(jù)時,多條數(shù)據(jù)在地 址1405中可能具有相同的索引值,導(dǎo)致數(shù)據(jù)之間的沖突。然而,在組相 關(guān)高速緩沖存儲器中,即使通過索引從高速緩沖塊1403 (#1)到(弁n) 指定相同的高速緩沖塊1403,也可以從多個高速緩沖路做出高速緩沖塊選擇。因此,例如,圖1中示出的4路高速緩沖存儲器1401可以操控最
多四條具有相同索引的數(shù)據(jù)。
在具有如上面描述的結(jié)構(gòu)的通用高速緩沖存儲器中,程序員不能清 楚地指定數(shù)據(jù)排列,例如在高速緩沖存儲器中保持預(yù)定的數(shù)據(jù)以對數(shù)據(jù) 做出高速訪問。為此,存在由于不期望的數(shù)據(jù)移除(替換)造成的處理 性能下降的問題。
已經(jīng)提出使用本地存儲器、高速暫存(scratch pad)或高速緩沖線(路) 鎖的方法來解決上面的問題。
日本專利申請公開第10-187533號公開了一種常規(guī)技術(shù),其中高速 緩沖存儲器可以被劃分成(1)普通高速緩沖存儲器區(qū)和(2)暫存(或 本地存儲器)區(qū),以供使用。
曰本專利申請公開第4-175946號也公開了將高速緩沖存儲器劃分成 普通高速緩沖存儲器區(qū)和本地存儲器區(qū)的高速緩沖存儲器的使用。根據(jù) 常規(guī)技術(shù),主存儲器的地址空間被分別給與高速緩沖存儲器和本地存儲 器,以通過區(qū)分在存儲器訪問時訪問的區(qū)來維持?jǐn)?shù)據(jù)連續(xù)性。
已經(jīng)提出了其他方法,來通過鎖定特定高速緩沖存儲器或高速緩沖 存儲器中的高速緩沖路而不是通過如上面描述的那樣劃分高速緩沖存儲 器而使目標(biāo)數(shù)據(jù)能夠連續(xù)存在于高速緩沖存儲器中。
同時,已經(jīng)提出最弱路方法作為常規(guī)技術(shù),主要用于在訪問流數(shù)據(jù) 時避免不期望的數(shù)據(jù)移除。根據(jù)該方法,當(dāng)根據(jù)存儲器訪問指令將數(shù)據(jù) 傳遞到高速緩沖存儲器時,該數(shù)據(jù)可以被指定為在具有相同索引的數(shù)據(jù) 片中首先被移除的數(shù)據(jù),這使在其他數(shù)據(jù)之前移除僅被使用一次的諸如 流數(shù)據(jù)的數(shù)據(jù)為可能。
然而,在日本專利申請公開第10-187533號中描述的常規(guī)技術(shù)需要 用于暫存區(qū)的特殊指令(從主存儲器讀入數(shù)據(jù)的加載指令,和將數(shù)據(jù)寫 回主存儲器中的寫回指令)。還有這樣的問題,例如需要控制來維持高速 緩沖區(qū)、暫存區(qū)以及主存儲器之間的數(shù)據(jù)連續(xù)性。
日本專利申請公開第4-175946號中描述的常規(guī)技術(shù)有諸如需要區(qū)判 斷電路的問題。此外,它要求操作系統(tǒng)進(jìn)行控制來管理存儲器空間。此外,日本專利申請公開第10-187533號和日本專利申請公開第 4-175946號都有這樣的問題,即程序執(zhí)行期間諸如改變區(qū)大小的操作涉 及大的性能開銷。
同時,鎖定高速緩沖線或高速緩沖路的常規(guī)計算可能容易導(dǎo)致這些 問題,例如,當(dāng)程序員忘記執(zhí)行解鎖操作或者當(dāng)程序員錯誤地鎖定所有 高速緩沖區(qū)時,高速緩沖系統(tǒng)不正確地操作,使系統(tǒng)停機(jī)。還有這樣的 問題,即需要提供專用硬件機(jī)構(gòu),該額外的硬件需要高花費(fèi)。
此外,采用最弱路方法的常規(guī)技術(shù)有這樣的問題,即不能用和本地 存儲器功能相關(guān)的常規(guī)技術(shù)實(shí)現(xiàn)它。
日本專利申請公開第2003-296191號也被公開為常規(guī)技術(shù)。

發(fā)明內(nèi)容
一種具有扇區(qū)功能(sector function)的高速緩沖存儲器,根據(jù)組相 關(guān)系統(tǒng)進(jìn)行操作,所述組相關(guān)系統(tǒng)的每個組包括兩個或更多個高速緩沖 路,并且一旦發(fā)生高速緩沖未命中,則執(zhí)行高速緩沖操作來替換對應(yīng)于 確定的替換高速緩沖路的高速緩沖路中高速緩沖塊內(nèi)的數(shù)據(jù),所述高速 緩沖存儲器包括
扇區(qū)ID信息儲存單元,所述扇區(qū)ID信息儲存單元用于與存儲器訪 問請求所指定的所述高速緩沖塊中的各所述高速緩沖路相關(guān)聯(lián)地存儲扇 區(qū)ID信息,所述扇區(qū)ID信息被定義來控制每個所述高速緩沖路的狀態(tài), 并被允許來包括兩個或更多個邏輯值;
替換路候選確定單元, 一旦發(fā)生所述高速緩沖未命中,所述替換路 候選確定單元根據(jù)附著于所述存儲器訪問請求的扇區(qū)ID信息和儲存在所 述扇區(qū)ID信息儲存單元中的與所述存儲器訪問請求指定的所述高速緩沖 塊中的各所述高速緩沖路相關(guān)聯(lián)的扇區(qū)ID信息來確定作為所述替換路候 選的替換路候選;
替換路選擇單元,所述替換路選擇單元用于從所述替換路候選中選 擇并輸出替換路;以及
扇區(qū)ID信息更新單元,所述扇區(qū)ID信息更新單元用于將儲存在所
7述扇區(qū)ID信息儲存單元中的與所述存儲器訪問請求指定的所述高速緩沖 塊中的各所述高速緩沖路相關(guān)聯(lián)的所述扇區(qū)ID信息更新為附著于所述存
儲器訪問請求的所述扇區(qū)ID信息。


圖1是示出了組相關(guān)高速緩沖存儲器的操作概要的圖。
圖2是圖示了替換路選擇電路的圖。
圖3是示出了用于所有第一到第六實(shí)施方式的高速緩沖存儲器的功 能結(jié)構(gòu)的圖。
圖4是示出用于所有第一到第六實(shí)施方式的高速緩沖存儲器的硬件 結(jié)構(gòu)的圖。
圖5是根據(jù)第一實(shí)施方式的替換路控制電路的框圖。
圖6是與根據(jù)第二實(shí)施方式的改善模式的替換路控制電路相關(guān)的框圖。
圖7是根據(jù)第二實(shí)施方式的寄存器的框圖。
圖8是示出了根據(jù)第二實(shí)施方式的操作實(shí)施例的圖。
圖9是與根據(jù)第三實(shí)施方式的命中路控制電路相關(guān)的框圖。
圖IO是示出根據(jù)第三實(shí)施方式的操作實(shí)施例的圖。
圖11是圖示根據(jù)第四實(shí)施方式的操作的圖。
圖12是根據(jù)第五實(shí)施方式的進(jìn)一步改善模式的替換路控制電路的 框圖。
圖13是第六實(shí)施方式的框圖(部分l)。 圖14是根據(jù)第六實(shí)施方式的寄存器的框圖。 圖15是第六實(shí)施方式的框圖(部分2)。
具體實(shí)施例方式
這些實(shí)施方式實(shí)現(xiàn)高速緩沖存儲器,所述高速緩沖存儲器具有小性 能開銷、可免于由鎖定狀態(tài)造成的系統(tǒng)停機(jī),并且與本地存儲器相關(guān)的 功能和最弱路方法兼容,僅需要少量硬件和軟件修改的花費(fèi)。每個實(shí)施方式被假設(shè)為根據(jù)組相關(guān)聯(lián)系統(tǒng)(每個組包括兩個或更多 個高速緩沖路)操作的高速緩沖存儲器, 一旦發(fā)生高速緩沖未命中,執(zhí) 行高速緩沖操作,而替代與所確定的替代高速緩沖路對應(yīng)的高速緩沖路 中的高速緩沖塊內(nèi)的數(shù)據(jù)。
第一實(shí)施方式具有下面描述的結(jié)構(gòu)。
扇區(qū)ID信息儲存單元(例如圖4中的扇區(qū)IDRAM 203)與存儲器 訪問請求所指定的高速緩沖塊中的各高速緩沖路相關(guān)聯(lián)地存儲扇區(qū)ID (sector ID)信息。扇區(qū)ID信息被定義以控制各高速緩沖路的替換狀態(tài), 并且可以包括例如兩個邏輯值或三個或者更多個邏輯值。
一旦發(fā)生高速緩沖未命中,替換路候選確定單元(例如,圖5中替 換路選擇掩碼(mask)生成電路303)基于附著于存儲器訪問請求的扇區(qū) ID信息和儲存在扇區(qū)ID儲存單元中的與存儲器訪問請求指定的高速緩 沖塊中的各高速緩沖路相關(guān)聯(lián)的扇區(qū)ID信息確定作為替換的潛在目標(biāo)的 替換路候選。
替換路選擇單元(例如替換路選擇單元304)從替換路候選中選擇 并輸出替換路。
扇區(qū)ID信息更新單元(例如圖5中的選擇器307)將儲存在扇區(qū)ID 儲存單元中的存儲器訪問指定的高速緩沖塊中的、與替換路對應(yīng)的高速 緩沖路相關(guān)聯(lián)扇區(qū)ID信息更新為存儲器訪問請求所附的扇區(qū)ID信息。
除第一實(shí)施方式的上述結(jié)構(gòu)之外,第二實(shí)施方式還具有下述結(jié)構(gòu)
最大路數(shù)目指定單元(例如,圖6中的寄存器402到405),最大路 數(shù)目指定單元將可以指派給扇區(qū)ID信息的各邏輯值的高速緩沖路的最大 數(shù)目指定為最大路數(shù)目。
比較單元(例如,圖6中的替換扇區(qū)ID確定電路401),該比較單 元將儲存在扇區(qū)ID儲存單元中的與存儲器訪問請求指定的高速緩沖塊中 的各高速緩沖路相關(guān)聯(lián)的扇區(qū)ID信息中的、具有和附著于該存儲器訪問 請求的扇區(qū)ID信息相同的扇區(qū)ID信息的高速緩沖路的數(shù)目和最大路數(shù) 目指定單元為與附著到存儲器訪問請求的扇區(qū)ID信息相同的扇區(qū)ID信 息指定的最大路數(shù)目進(jìn)行比較。然后, 一旦出現(xiàn)高速緩沖未命中,替換路候選確定單元(例如,圖
6中的替換路選擇掩碼生成電路303)根據(jù)比較單元執(zhí)行的比較的結(jié)果, 參照儲存在扇區(qū)ID信息儲存單元中的與存儲器訪問請求指定的高速緩沖 塊中的各高速緩沖路相關(guān)聯(lián)的扇區(qū)ID信息,來確定儲存不同于附著到存 儲器訪問請求的扇區(qū)ID信息的扇區(qū)ID信息的一組高速緩沖路或儲存與 附著于該存儲器訪問請求的扇區(qū)ID信息相同的扇區(qū)ID信息的一組高速 緩沖路為替換路候選。
除第二實(shí)施方式的上述結(jié)構(gòu)之外,第三實(shí)施方式還具有下述結(jié)構(gòu)。 通過最大路數(shù)目指定單元(例如,圖6中寄存器402到405),可以 以這樣的方式設(shè)置針對扇區(qū)ID信息的每個邏輯值的最大路數(shù)目,在所述 方式中,針對扇區(qū)ID信息的各邏輯值的各個最大路數(shù)目的總和超過高速 緩沖存儲器中提供的高速緩沖路的數(shù)目。
除第一實(shí)施方式的上述配置之外,第四實(shí)施方式還具有下述配置。 一旦發(fā)生高速緩沖未命中,替換路候選確定單元(例如,圖12中的 替換路選擇掩碼生成電路303)在不判斷比較單元執(zhí)行的比較的結(jié)果的情 況下,參照儲存在扇區(qū)ID信息儲存單元中的與存儲器訪問請求指定的髙 速緩沖塊中的各高速緩沖路相關(guān)聯(lián)的扇區(qū)ID信息,來確定儲存與附著于 存儲器訪問請求的扇區(qū)ID信息相同的扇區(qū)ID信息的一組高速緩沖路作 為用戶指定作為扇區(qū)ID信息的針對預(yù)定值(例如,圖12中的固定值1001) 的替換路候選。
除第一到第四實(shí)施方式的上述配置中的一個之外,第五實(shí)施方式還 具有下述結(jié)構(gòu)。
一旦針對存儲器訪問請求發(fā)生高速緩沖命中,則扇區(qū)ID信息更新單 元將儲存在扇區(qū)ID信息儲存單元中的與存儲器訪問請求指定的高速緩沖 塊中的各高速緩沖路相關(guān)聯(lián)的扇區(qū)ID信息更新為附著到存儲器訪問請求 的扇區(qū)ID信息(例如,圖9中701的結(jié)構(gòu))。
此后,將參照附圖詳細(xì)描述實(shí)行這些實(shí)施方式的最佳模式。 圖3是示出用于所有第一到第六實(shí)施方式的高速緩沖存儲器的功能 結(jié)構(gòu)的圖。圖3中示出的結(jié)構(gòu)不是限制,而是實(shí)施例。這些實(shí)施方式中的高速緩沖存儲器被實(shí)現(xiàn)為組相關(guān)高速緩沖存儲 器,就如同圖1中示出的高速緩沖存儲器一樣。
通過將高速緩沖存儲器101劃分成多個高速緩沖路102(#1)到(#4)
來控制高速緩沖存儲器101,每個高速緩沖路102包括多個高速緩沖塊 103 (#1)到(#n)。 n值例如為1024。
在圖3中示出的實(shí)施方式中,每個高速緩沖塊103具有不同的特征, 除通用有效性標(biāo)記(1位,在一些情況中未為高速緩沖塊提供)、標(biāo)簽(15 位)以及數(shù)據(jù)(128字節(jié))之外,它還包括扇區(qū)ID。扇區(qū)ID可以包括1 位或2位。1位扇區(qū)ID的值可以是0或1。 2位扇區(qū)ID的值可以是0到 2三個選擇中的一個,或者是0到3四個選擇中的一個。
例如,按照"高速緩沖塊的大小x高速緩沖塊的數(shù)目x高速緩沖路的數(shù) 目428字節(jié)xl024塊x4路"計算,高速緩沖存儲器101的大小為512k字 節(jié)。
同時,地址105包括由用于存儲器訪問的程序指定的32位。在地址 105的32位中,前15位用作標(biāo)簽、接下來的IO位用作索引,而最后7 位用作高速緩沖塊內(nèi)的偏移。
根據(jù)上面的結(jié)構(gòu),當(dāng)指定針對地址105 (讀出或?qū)懭?的數(shù)據(jù)訪問 時,通過地址105中的10位索引指定塊號#1到#!1中的一個?,F(xiàn)在假設(shè) 指定的塊號為射。
結(jié)果,從高速緩沖路102 (#1)到(#4)的每一個中讀出對應(yīng)于指 定的塊號射的高速緩沖塊103 (射)。然后,讀出的高速緩沖塊103 (新) 被分別輸入到比較器104 (#1)到(#4)。
比較器104 (#1)至U (弁4)檢測每個讀出的高速緩沖塊103 (#i)中 的標(biāo)簽值和指定的地址105中的標(biāo)簽值的匹配/不匹配。為比較器(#1) 到(弁4)中檢測到匹配的那個比較器讀出的高速緩沖塊103 (#i)中發(fā)生 高速緩沖命中。因此,針對該高速緩沖塊103 (糾)執(zhí)行數(shù)據(jù)讀出或?qū)懭搿?br> 當(dāng)在所有比較器104中未檢測到匹配時,或者當(dāng)即使檢測到匹配而 有效性標(biāo)簽指示無效時,高速緩沖命中不發(fā)生。在這種情況中,對主存 儲器中的地址105做出訪問。這些實(shí)施方式的特征在于發(fā)生高速緩沖未命中時應(yīng)用于高速緩沖存儲器101的替代方法。
圖4是示出對應(yīng)于圖3中示出的高速緩沖存儲器的功能結(jié)構(gòu)的硬件 結(jié)構(gòu)的圖。
作為圖3中各高速緩沖塊103的組件的數(shù)據(jù)、標(biāo)簽以及扇區(qū)ID被儲 存在三個劃分的區(qū)(即數(shù)據(jù)RAM201、標(biāo)簽RAM202以及扇區(qū)IDRAM 203)中。數(shù)據(jù)RAM 201、標(biāo)簽RAM 202以及扇區(qū)ID RAM 203分別被 劃分成四個區(qū)。每個RAM中的四個區(qū)分別組成圖3中示出的高速緩沖路 102 (#1)到(#4)。盡管可以通過在標(biāo)簽RAM202中設(shè)置標(biāo)簽值"存在/
不存在"來替代有效性標(biāo)簽的功能,但是也可以為有效性標(biāo)簽設(shè)置分立的 RAM。
當(dāng)指定針對地址105的數(shù)據(jù)訪問時,用地址105中的IO位索引指定 標(biāo)簽RAM 202內(nèi)塊號#1到紐中的射。
結(jié)果,從標(biāo)簽RAM202中高速緩沖路102 (#1)到(#4)的每一個 讀出對應(yīng)于指定塊號射的高速緩沖塊103 (射)的標(biāo)簽值。然后,將讀出 的標(biāo)簽值分別輸入到比較器104 (#1)到(#4)。
比較器104 (#1)至lj (#4)檢測從標(biāo)簽RAM202中讀出的各高速緩 沖塊103(射)中的標(biāo)簽值和指定地址105中的標(biāo)簽值之間的匹配/不匹配。 當(dāng)高速緩沖命中發(fā)生時,四個比較器104輸出4位命中路信號,其中僅 檢測到標(biāo)簽值匹配的比較器104輸出值1。
當(dāng)發(fā)生高速緩沖命中并且存儲器訪問請求為讀出的請求時,根據(jù)地 址105中的10位索引指定的塊號糾,數(shù)據(jù)RAM201中對應(yīng)于各個高速緩 沖路102 (#1)到(#4)的四個高速緩沖塊103的數(shù)據(jù)值被讀出到選擇器 204。然后,根據(jù)從四個比較器104輸出的命中路信號,從高速緩沖路中 對應(yīng)于檢測到標(biāo)簽值匹配的比較器104的那個高速緩沖路中的高速緩沖 塊103 (射)選擇并輸出數(shù)據(jù)值。
當(dāng)高速緩沖命中發(fā)生并且存儲器訪問請求為寫入請求時,由存儲器 訪問請求指定的數(shù)據(jù)被寫入數(shù)據(jù)RAM201中由高速緩沖路102 (#1)到 (斜)中的地址105內(nèi)的IO位索引指定的四個高速緩沖塊(糾)中由命 中路信號指定的那個高速緩沖路內(nèi)的一個塊中。
12后面描述選擇器205的操作 <第一實(shí)施方式>
下面描述根據(jù)第一實(shí)施方式的結(jié)構(gòu)和操作。
盡管下面的描述僅描述了基于用戶程序的存儲器訪問請求,但是對 于來自硬件的存儲器訪問請求也應(yīng)用相同的操作。
在假設(shè)1位扇區(qū)ID的情況下描述第一實(shí)施方式。
圖5是替換路控制電路的框圖, 一旦在具有圖3或圖4中示出的結(jié) 構(gòu)的高速緩沖存儲器101中,對于存儲器訪問請求發(fā)生高速緩沖未命中, 所述替換路控制電路確定要替換具有索引指定的塊號的對應(yīng)于四個高速 緩沖路102 (#1)到(#4)中的哪一個高速緩沖路的高速緩沖塊103內(nèi)的 數(shù)據(jù)。
高速緩沖未命中的發(fā)生可以被檢測為在圖3或圖4中示出的所有比 較器104內(nèi)都未檢測到標(biāo)簽值匹配的狀態(tài),即來自所有比較器104 (#1) 到(#4)的輸出為非活動的條件。在圖5中,用于控制高速緩沖存儲器 101中的數(shù)據(jù)替換狀態(tài)的1位扇區(qū)ID 302被首先附著到存儲器訪問請求 308。
然后,從高速緩沖路102 (#1)到(#4)(見圖4)中的各高速緩沖 路取出的存儲器訪問請求308中的地址105內(nèi)的索引指定的塊號中的4 位扇區(qū)ID 301和附著到存儲器訪問請求308的1位扇區(qū)ID 302被輸入到 替換路選擇掩碼生成電路303。
替換路選擇掩碼生成電路303包括異或電路(XOR) 303-1和反相器 (INV) 303-2。替換路選擇掩碼生成電路303執(zhí)行附著到存儲器訪問請 求30S的1位扇區(qū)ID和包含在從扇區(qū)ID RAM 203獲得的4位扇區(qū)ID301 中每個位之間的異或操作。
作為操作的結(jié)果,僅為具有和附著到存儲器訪問請求308的扇區(qū)ID 302的位值(在圖5的實(shí)施例中為"O")相同的位值的扇區(qū)ID301中的位 位置,給出位值"1"。例如,當(dāng)已經(jīng)從圖4中的扇區(qū)ID RAM 203讀出"0001" 作為4位扇區(qū)ID時,對應(yīng)于"O"的位位置被提供有作為匹配結(jié)果的位值 "1",并且對應(yīng)于"l"的位位置被提供有作為不匹配結(jié)果的位值"O"。因此,"U10"被輸出為包括4位的替換路候選309。替換路候選309根據(jù)存儲器 訪問請求308指示對應(yīng)于具有值'T'的位位置的高速緩沖路102為應(yīng)該針 對其執(zhí)行替換的路。
接著,替換路選擇電路304根據(jù)LRU算法等在替換路候選309中選 擇對應(yīng)于具有值"l"的位位置的一個路。然后,替換路選擇電路304輸出 包括4位(在圖5的實(shí)施例中為"1000")的替換路310,其中值"l"僅被 給出到對應(yīng)于選出的路的位位置。
替換路310被輸入到選擇器305、 306以及307,以使選擇器305、 306以及307選擇對應(yīng)于在替換路310中的4位數(shù)據(jù)內(nèi)具有值"1"的位位 置的路。
換言之,包含在存儲器訪問請求308中的數(shù)據(jù)、標(biāo)簽以及扇區(qū)ID被 分別輸入到選擇器305、 306以及307,并且選擇器305、 306以及307將 它們分別輸出到數(shù)據(jù)RAM201、標(biāo)簽RAM 202以及扇區(qū)IDRAM203中 的、對應(yīng)于替換路310的4位數(shù)據(jù)中具有值'T,的位位置的路。
同時,通過存儲器訪問請求308中的索引指定數(shù)據(jù)RAM201、標(biāo)簽 RAM 202以及扇區(qū)ID RAM 203中的塊號。
因此,數(shù)據(jù)、標(biāo)簽以及扇區(qū)ID被分別寫入數(shù)據(jù)RAM201、標(biāo)簽RAM 202以及扇區(qū)IDRAM203中選出的路中的對應(yīng)于指定的塊號(圖中的暗 塊)的高速緩沖塊103。
同時,當(dāng)存儲器訪問請求308為讀出的請求時,從主存儲器(圖中 未示出)中對應(yīng)的地址105讀出寫入數(shù)據(jù)RAM201的數(shù)據(jù)。此夕卜,當(dāng)存 儲器訪問請求308為寫入請求時,寫入數(shù)據(jù)RAM201的數(shù)據(jù)為存儲器訪 問請求308中指定的寫入數(shù)據(jù)。
因此,根據(jù)第一實(shí)施方式, 一旦發(fā)生高速緩沖未命中,當(dāng)附著到存 儲器訪問請求308的扇區(qū)ID為"O"時,在扇區(qū)ID RAM 203中選擇對應(yīng)于 扇區(qū)ID"O"的高速緩沖路。當(dāng)附著到存儲器訪問請求308的扇區(qū)ID為"l" 時,在扇區(qū)IDRAM203中選擇對應(yīng)于扇區(qū)ID'T'的高速緩沖路。然后, 在數(shù)據(jù)RAM201中,用對應(yīng)于存儲器訪問請求308的數(shù)據(jù)替換對應(yīng)于索 引指定的塊號的所選的高速緩沖路中高速緩沖塊103內(nèi)的數(shù)據(jù)。根據(jù)上面描述的功能,當(dāng)用戶針對用戶不希望從高速緩沖存儲器101 移除的數(shù)據(jù)(即,用戶要求高速存儲器訪問的數(shù)據(jù))進(jìn)行存儲器訪問請
求308時,用戶為存儲器訪問請求308指派扇區(qū)ID"1"(或者扇區(qū)ID可 以是"O")。之后,當(dāng)用戶針對可以立即從高速緩沖存儲器101移除的數(shù) 據(jù)執(zhí)行存儲器訪問請求308時,用戶向存儲器訪問請求308指派扇區(qū) ID"O"(或扇區(qū)ID可以為"r)。因此,對于用指派有扇區(qū)ID"O"的存儲器 訪問請求308進(jìn)行了執(zhí)行的數(shù)據(jù), 一旦發(fā)生了高速緩沖未命中,僅在高 速緩沖存儲器101中具有扇區(qū)ID"O"的高速緩沖路內(nèi)發(fā)生替換。寫入高速 緩沖存儲器101具有預(yù)先指派的扇區(qū)ID"1"的數(shù)據(jù)未被替代,并因此未被 移除。
如上面所描述的,第一實(shí)施方式的功能使得可以根據(jù)附著到存儲器 訪問請求308的扇區(qū)ID確定并控制要移除的數(shù)據(jù)。存儲器訪問請求308 可以是使用程序的用戶指定的訪問指令??商鎿Q地,存儲器訪問請求308 可以是從系統(tǒng)中特定硬件自動發(fā)送到高速緩沖存儲器101的請求。
<第二實(shí)施方式>
圖6是第二實(shí)施方式的框圖。
在圖6中示出的結(jié)構(gòu)中,具有和圖5中示出的結(jié)構(gòu)相同的附圖標(biāo)記 的部件具有和第一實(shí)施方式相同的功能。
圖6中示出的結(jié)構(gòu)與圖5中的結(jié)構(gòu)不同之處在于,附著到存儲器訪 問請求308的扇區(qū)ID 302未被直接輸入到替換路選擇掩碼生成電路303。 換言之,圖6與圖5的不同之處在于,扇區(qū)ID302在替換扇區(qū)ID確定電 路401中被判斷并被轉(zhuǎn)換成替換扇區(qū)ID 406,并且然后被輸入到替換路 選擇掩碼生成電路303。
以下四個寄存器被連接到替換扇區(qū)ID確定電路401 。
-扇區(qū)0最大路數(shù)目寄存器402
-扇區(qū)1最大路數(shù)目寄存器403
-扇區(qū)O當(dāng)前路數(shù)目寄存器404
-扇區(qū)1當(dāng)前路數(shù)目寄存器405
針對扇區(qū)0最大路數(shù)目寄存器402和扇區(qū)1最大路數(shù)目寄存器403,分別設(shè)置扇區(qū)ID可以為"O"的路的最大數(shù)目和扇區(qū)ID可以為"l"的路的 最大數(shù)目。可以通過程序設(shè)置這些寄存器值。
針對扇區(qū)0當(dāng)前路數(shù)目寄存器404和扇區(qū)1當(dāng)前路數(shù)目寄存器405, 當(dāng)存儲器訪問請求308中的地址105內(nèi)的索引指定塊號時,分別計數(shù)并 設(shè)置從扇區(qū)IDRAM203讀出的4位扇區(qū)ID301中設(shè)置"O"的位(路)的 數(shù)目和4位扇區(qū)ID301中設(shè)置了"l"的位(路)的數(shù)目。
如圖7中所示出的,例如,四個寄存器402到405中的每一個包括 具有范圍從0到4的值(最大路數(shù)目)的3個位。
在圖6中的替換扇區(qū)ID確定電路401中,當(dāng)扇區(qū)ID"O"被給與存儲 器訪問請求308時,選擇器401-1從扇區(qū)0最大路數(shù)目寄存器402選擇輸 出,而選擇器401-2從扇區(qū)O當(dāng)前路數(shù)目寄存器402選擇輸出。選擇器 401-1和選擇器401-2選擇的輸出被輸入到比較器401-3。另一方面,當(dāng) 扇區(qū)ID'T'被給與存儲器訪問請求308時,選擇器401-1從扇區(qū)1最大路 數(shù)目寄存器403選擇輸出,而選擇器401-2從扇區(qū)1當(dāng)前路數(shù)目寄存器 405選擇輸出。選擇器401-1和選擇器401-2選擇的輸出被輸入到比較器 401-3。
然后,針對存儲器訪問請求308中指定的扇區(qū)ID值,比較器401-3 將最大路數(shù)目和當(dāng)前路數(shù)目進(jìn)行比較。這里,路的最大數(shù)目是提供定義 可以進(jìn)一步針對該扇區(qū)ID添加的路的數(shù)目的上限的信息。
在圖6中示出的實(shí)施例中,附著到存儲器訪問請求308的扇區(qū)ID的 值為'T'。在這種情況中,比較器401-3將扇區(qū)1最大路數(shù)目寄存器403 中設(shè)置的扇區(qū)ID"1"的路的最大數(shù)目與扇區(qū)1當(dāng)前路數(shù)目寄存器405中設(shè) 置的用于寫入的塊中的扇區(qū)ID'T'的路的數(shù)目進(jìn)行比較。
當(dāng)比較器401-3比較的結(jié)果表明,針對指定扇區(qū)ID,"路的當(dāng)前數(shù)目 <路的最大數(shù)目"時,具有指定扇區(qū)ID的路的數(shù)目可以進(jìn)一步增加。因此, 選擇器401-5輸出替換扇區(qū)ID 406,用于指令路的替換,針對所述路, 扇區(qū)ID被設(shè)置為指定扇區(qū)ID的相反值。換言之,選擇器401-5選擇對 應(yīng)于被反相器401-5反相的附著到存儲器訪問請求308的扇區(qū)ID 302的 值。然后,選擇器401-5將選擇的值輸出為替換扇區(qū)ID406。同時,當(dāng)通過比較器401-3比較的結(jié)果表^^,針對指定的扇區(qū)ID,"路 的當(dāng)前數(shù)目>路的最大數(shù)目"時,具有指定扇區(qū)ID的路的數(shù)目不能進(jìn)一步 增加。因此,選擇器401-5輸出用于指令路的替換的替換扇區(qū)ID 406, 針對所述路設(shè)置指定的扇區(qū)ID。換言之,選擇器401-5選擇附著到存儲 器訪問請求308的扇區(qū)ID 302,并在不做任何改變的情況下將它輸出為 替換扇區(qū)ID406。
在圖6中的實(shí)施例中,當(dāng)用于扇區(qū)ID"1"的比較器401-3比較的結(jié)果 表明,針對指定的扇區(qū)ID"1","路的當(dāng)前數(shù)目<路的最大數(shù)目"時,具有 扇區(qū)ID"1"的路的數(shù)目可以進(jìn)一步增加。因此,選擇器401-5選擇對應(yīng)于 被反相器401-4反相的附著于存儲器訪問請求308的扇區(qū)ID"1"的值"0"。 然后,選擇器401-5將選擇的值輸出為替換扇區(qū)ID 406。
替換扇區(qū)ID 406被輸入到替換路選擇掩碼生成電路303。
替換路選擇掩碼生成電路303和替換路選擇電路304以和圖5中示 出的第一實(shí)施方式相同的方式進(jìn)行操作。
換言之,在圖6中,替換路選擇掩碼生成電路303執(zhí)行包含在從扇 區(qū)IDRAM 203讀取的4位扇區(qū)ID301中的每個位值(在圖6的實(shí)施例 中為"0001")和替換扇區(qū)ID406的位值"0"之間的異或操作。作為操作的 結(jié)果,輸出包括4個位的替換路候選309(在圖6中的實(shí)施例中為"1110")。 在4位替換路候選309中,僅針對具有和替換扇區(qū)ID 406的位值"O"相同 的位值的位位置,給出位值"l"。
接著,替換路選擇電路304根據(jù)LRU算法等在替換路候選309中選 擇對應(yīng)于具有值"l"的位位置的一個路。然后,替換路選擇電路304輸出 包括4位(在圖5的實(shí)施例中為"1000")的替換路310,其中值"l"僅被 給出到對應(yīng)于選擇的路的位位置。
替換路310被輸入到和圖5中示出的相同的選擇器305、 306以及 307,以使選擇器305、 306以及307中的每一個選擇對應(yīng)于替換路310 中的4位數(shù)據(jù)內(nèi)具有值"l"的位位置的路。
因此,以和第一實(shí)施方式相同的方式,數(shù)據(jù)、標(biāo)簽以及扇區(qū)ID被分 別寫入數(shù)據(jù)RAM201、標(biāo)簽RAM 202以及扇區(qū)IDRAM203中對應(yīng)于選擇器305、 306以及307選擇的路中的被存儲器訪問請求308內(nèi)的地址中 的索引指定塊編號弁i的高速緩沖塊103 (圖中的暗塊)。
在圖6中,與寫入同時地,扇區(qū)ID RAM 203中的被指定的特定塊
號射的4位扇區(qū)iD被從"ooor,更新為"ioor。換言之,在之前具有扇區(qū)
ID"O"的高速緩沖塊中發(fā)生替換,將扇區(qū)ID改變?yōu)?1"。
圖8是示出了假設(shè)這樣的情況下的操作實(shí)施例的圖,所述情況即根 據(jù)圖6中示出的結(jié)構(gòu)當(dāng)存儲器訪問請求308發(fā)生7次(圖8中示出的(1) 到(7)),并且對于所有請求發(fā)生高速緩沖未命中和替換時的情況。
圖8中四個正方形表示高速緩沖存儲器101中數(shù)據(jù)RAM201內(nèi)給定 的塊號中的各個路(#1)到(#4)。當(dāng)扇區(qū)ID為"O"時,正方形為白色, 而當(dāng)扇區(qū)ID為"r,時為灰色。正方形中的數(shù)表示訪問歷史。較大的數(shù)指 示較新的(最近訪問過的)路。
對于圖8中各存儲器訪問請求308 (1)到(7), "Sec.O"指示附著到 存儲器訪問請求的扇區(qū)ID的值為"O",而"Sec.l"指示附著到存儲器訪問 請求的扇區(qū)ID的值為"1"。接著"Sec.O"和"Sec.r的數(shù)指示發(fā)生各存儲器 訪問請求308時的路的最大數(shù)目(最大路)。
每當(dāng)存儲器訪問請求308發(fā)生時,比較路的當(dāng)前數(shù)目和路的最大數(shù) 目,以選擇替代路。
例如,當(dāng)?shù)谝淮鎯ζ髟L問請求308 (1)發(fā)生時,通過該請求,將扇 區(qū)ID指定為"O",并將最大路數(shù)目指定為"4"。觀察剛好在請求發(fā)生之前 的狀態(tài)(圖8中頂行中示出的狀態(tài)),針對扇區(qū)ID"O"的路的當(dāng)前數(shù)目為 3,小于請求指定的最大路數(shù)目"4"。因此,替換扇區(qū)ID確定電路輸出替 換扇區(qū)ID'T,,來給出指令將灰色中示出的路中的扇區(qū)ID" 1"替換為扇區(qū) ID"O"。因此,根據(jù)替換扇區(qū)ID和當(dāng)前扇區(qū)ID"0100"之間執(zhí)行的異或操 作,從替換路選擇掩碼生成電路輸出替換路候選"0100"。由此將替換路 確定為"0100",并且替換發(fā)生在具有扇區(qū)ID值'T,的路中。
當(dāng)?shù)诙鎯ζ髟L問請求308 (2)發(fā)生時,通過該請求,將扇區(qū)ID 指定為"O",并且將最大路數(shù)目指定為"3"。觀察正在(2)之前的(1)中 的狀態(tài),針對扇區(qū)ID"0"的路的當(dāng)前數(shù)目為"4",大于請求指定的最大路
18數(shù)目。因此,替換扇區(qū)ID確定電路輸出替換扇區(qū)ID"O",來給出指令以
替換扇區(qū)ID"0"。因此,根據(jù)替換扇區(qū)ID和(1)中的扇區(qū)ID"0000"之 間的異或操作,從替換路選擇掩碼生成電路輸出替換路候選"H11"。接著, 作為替換路選擇電路中的LRU判斷的結(jié)果,從替換路選擇電路輸出替換 路"0001",來給出指令以替換具有扇區(qū)ID"O"的四個路中最舊的路,并且
替換發(fā)生在具有值"r的路中。
當(dāng)?shù)谌鎯ζ髟L問請求308 (3)發(fā)生時,通過該請求將扇區(qū)ID指 定為'T',并且將最大路數(shù)目指定為"2"。觀察正在(3)之前的(2)中的
狀態(tài),針對扇區(qū)iD"r的路的當(dāng)前數(shù)目為o,小于該請求指定的最大路數(shù)
目。因此,替換扇區(qū)ID確定電路輸出替換扇區(qū)ID"O",來給出指令以替 換具有其他扇區(qū)ID"O"的路。因此,根據(jù)用((2)中的)扇區(qū)ID"0000" 執(zhí)行的異或操作,從替換路選擇掩碼生成電路輸出替換路候選"llll"。接 著,作為替換路選擇電路中的LRU判斷的結(jié)果,從替換路選擇電路輸出 替換路"0010",來給出指令以替換具有扇區(qū)ID"O"的四個路中最舊的路,
并且替換發(fā)生在具有值"r的路中。
當(dāng)?shù)谒拇鎯ζ髟L問請求308 (4)發(fā)生時,通過請求,將扇區(qū)ID指 定為"1",并且將最大路數(shù)目指定為"2"。觀察正在(4)之前的(3)中的 狀態(tài),針對扇區(qū)ID"1"的路的當(dāng)前數(shù)目為'T',小于請求指定的最大路數(shù) 目。因此,替換扇區(qū)ID確定電路輸出替換扇區(qū)ID"O",來給出指令以替 換具有其他扇區(qū)ID"O"的路。因此,根據(jù)用((3)中的)扇區(qū)ID"0010" 執(zhí)行的異或操作,從替換路選擇掩碼生成電路輸出替換路候選"1101"。接 著,作為替換路選擇電路中的LRU判斷的結(jié)果,從替換路選擇電路輸出 替換路"1000",來給出指令以替換具有扇區(qū)ID"O"的三個路中最舊的路, 并且替換發(fā)生在具有值"l"的路中。
當(dāng)?shù)谖宕鎯ζ髟L問請求308 (5)發(fā)生時,通過該請求,將扇區(qū)ID 指定為"1",并且將最大路數(shù)目指定為"2"。觀察正在(5)之前的(4)中 的狀態(tài),針對扇區(qū)ID'T'的路的當(dāng)前數(shù)目為"2",等于(或大于)請求指 定的最大路數(shù)目。因此,替換扇區(qū)ID確定電路輸出替換扇區(qū)ID'T',來 給出指令以重用并替換具有相同扇區(qū)ID'T,的路。因此,根據(jù)用((4)中
19的)扇區(qū)ID"1010"執(zhí)行的異或操作,從替換路選擇掩碼生成電路輸出替
換路候選"1010"。接著,作為替換路選擇電路中的LRU判斷的結(jié)果,從 替換路選擇電路輸出替換路"0010",來給出指令以替換具有扇區(qū)ID"l"的 兩個路中較舊的路,并且替換發(fā)生在具有值"l"的路中。
以相同的方式,當(dāng)?shù)诹偷谄叽鎯ζ髟L問請求308 (6)和(7)發(fā) 生時,通過該請求,將扇區(qū)ID指定為'T',并且將最大路數(shù)目指定為"2"。 在剛好之前的狀態(tài)中,針對扇區(qū)ID"1"的路的當(dāng)前數(shù)目為"2",該數(shù)目等
于或大于最大路數(shù)目。因此,重用并替換具有相同選擇器數(shù)"r的路。
因此,第二實(shí)施方式根據(jù)用戶為每個扇區(qū)ID設(shè)置的最大路數(shù)目,使 得能夠?qū)Ω咚倬彌_存儲器101進(jìn)行替換操作控制。 <第三實(shí)施方式>
接著,描述基于圖3和圖4中示出的結(jié)構(gòu)的第三實(shí)施方式的結(jié)構(gòu)和 操作。
圖9是在具有圖3或圖4中示出的結(jié)構(gòu)的高速緩沖存儲器101中發(fā) 生針對存儲器訪問請求308的高速緩沖命中的情況下,命中路控制電路 的框圖。
例如,圖9中的命中路更新電路701被放置在圖4中示出的選擇器 205中。從四個比較器104輸出的4位命中路信號702被輸入到命中路更 新電路701。在命中路信號702中,僅對應(yīng)于高速緩沖路102 (#1)到(#4) (見圖3或圖4)中發(fā)生高速緩沖命中的一個高速緩沖路的位值被給與值
在從與包含在存儲器訪問請求308中的地址105內(nèi)的索引指定的塊 號對應(yīng)的扇區(qū)IDRAM203中的塊中讀出的當(dāng)前扇區(qū)ID信息703中,命 中路更新電路701將對應(yīng)于針對其將值"l"給出為命中路信號702中的位 值的高速緩沖路的扇區(qū)ID值更新為附著于存儲器訪問請求308的扇區(qū)ID 704的值。然后,命中路更新電路701將通過該操作獲得的新扇區(qū)ID 705 寫回扇區(qū)IDRAM203中對應(yīng)于該塊號的位置。
因此,其中已經(jīng)發(fā)生高速緩沖命中的高速緩沖塊103的扇區(qū)ID值被 控制,從而它始終與通過存儲器訪問請求308指定的扇區(qū)ID值相同,由此避免發(fā)生處理的不連續(xù)性。
圖IO是示出了假設(shè)這樣的情況的操作實(shí)施例的圖,在所述情況中, 根據(jù)圖9中示出的結(jié)構(gòu),存儲器訪問請求308發(fā)生五次(圖IO中示出的
(1)到(5)),并且針對存儲器訪問請求308 (1)到(4)發(fā)生高速緩沖 未命中和替換,而針對最后的存儲器訪問請求308 (5)發(fā)生高速緩沖命中。
針對圖10中的存儲器訪問請求308 (1)到(4)執(zhí)行的操作與針對 圖8中的存儲器訪問請求308 (1)到(4)執(zhí)行的操作相同。
當(dāng)在圖10中第五存儲器訪問請求308 (5)發(fā)生時,通過該請求, 將扇區(qū)ID指定為"1",并且將最大路數(shù)目指定為"2"。觀察剛好在(5)之 前的(4)中的狀態(tài),針對扇區(qū)ID'T'的路的當(dāng)前數(shù)目為"2"?,F(xiàn)在,假設(shè) 高速緩沖命中己經(jīng)發(fā)生在(4)中具有扇區(qū)ID"O"的最右側(cè)高速緩沖路內(nèi)。 在這種情況中,其中已經(jīng)發(fā)生高速緩沖命中的高速緩沖路的扇區(qū)ID值"O" 被更新為存儲器訪問請求308指定的扇區(qū)ID"1",而無需第二實(shí)施方式描 述的對最大路數(shù)目的參考和控制。
<第四實(shí)施方式>
接著,描述第四實(shí)施方式。
第四實(shí)施方式的結(jié)構(gòu)與圖6中示出的第二實(shí)施方式的結(jié)構(gòu)基本相 同。然而,在本實(shí)施方式中允許條件"針對扇區(qū)0的路的最大數(shù)目+針對 扇區(qū)ID 1的路的最大數(shù)目>高速緩沖存儲器中路的總數(shù)",從而針對扇區(qū) ID"O"的區(qū)和針對扇區(qū)ID"1"的區(qū)可以交疊,從而可在針對扇區(qū)ID提供的
區(qū)中分立地提供
-根據(jù)具有其他扇區(qū)ID的請求容易被移除的路,以及 -不容易被移除或未移除的路。
具體地,可以用允許上面的條件的值設(shè)置圖6中扇區(qū)0最大路數(shù)目 寄存器402和扇區(qū)1最大路數(shù)目寄存器403中的最大路數(shù)目。 參照圖11描述第四實(shí)施方式中的操作。
圖11圖示用于實(shí)現(xiàn)根據(jù)第四實(shí)施方式的最弱路方法的操作實(shí)施例。 最弱路方法是用于執(zhí)行這樣的控制的方法,其中,當(dāng)要求替換高速緩沖塊時,總是首先移除期望的高速緩沖塊。
在圖11中,針對扇區(qū)0最大路數(shù)目寄存器402中的最大路數(shù)目設(shè)置
值"4",而針對扇區(qū)1最大路數(shù)目寄存器403設(shè)置'T'。因?yàn)榫哂袌D3或圖 4中示出的結(jié)構(gòu)的高速緩沖存儲器101中的路的最大數(shù)目為"4",所以一 個路被交疊和共享,如圖11中901處示出的高速緩沖路狀態(tài)。
例如,對于針對其中始終首先移除數(shù)據(jù)的路(該路被稱為"最弱路") 的存儲器訪問請求,用戶設(shè)置扇區(qū)ID'T,。將較小值設(shè)置為針對該扇區(qū)ID 值的最大路數(shù)目寄存器的最大值。將允許上面提及的重疊的較大值設(shè)置 為針對其他扇區(qū)ID值的最大路數(shù)目寄存器的最大值。
在圖11中示出的實(shí)施例中,扇區(qū)ID"1"為最弱路的扇區(qū)ID。
在圖11中(1)處的狀態(tài)中,對于給定塊號的四個路,在三個路中 的高速緩沖塊儲存數(shù)據(jù)"扇區(qū)ID-O"(示出為圖中的"扇區(qū)O"),而一個路 中的高速緩沖塊儲存數(shù)據(jù)"扇區(qū)ID-1"(圖中示出為"扇區(qū)l")。
在這種狀態(tài)中,針對該塊號發(fā)生附著了扇區(qū)ID"O"的存儲器訪問請求 308,如圖11中(2)處所示。在這種情況下,針對該塊號中扇區(qū)ID"O" 的路的數(shù)目("3")未達(dá)到最大數(shù)目"4"。因此,根據(jù)第二實(shí)施方式描述的 圖6中的替換扇區(qū)ID確定電路401的操作,替換儲存扇區(qū)ID"1"的路中 的高速緩沖塊,導(dǎo)致所有路具有扇區(qū)ID"O"。
接著,如圖11中(3)處所示出,針對該塊號發(fā)生附著有扇區(qū)ID"l" 的存儲器訪問請求308。在這種情況中,針對該塊號中扇區(qū)ID"O"的路的 數(shù)目("0")未達(dá)到最大數(shù)目"l"。因此,以和上述操作相同的方式,儲存 扇區(qū)ID"O"的四個路中的一個高速緩沖塊被替換(移除),導(dǎo)致僅一個路
具有扇區(qū)iD"r'。
盡管圖中未示出,但是如果之后發(fā)生了附著有扇區(qū)iD"r的存儲器訪
問請求308,則繼續(xù)相互替換儲存扇區(qū)ID'T'的一路中的高速緩沖塊,并 且儲存扇區(qū)ID'T,的路的數(shù)目不超過1。同時,如果發(fā)生附著有扇區(qū)ID"O" 的存儲器訪問請求308,則根據(jù)具有扇區(qū)ID"O"的存儲器訪問請求308,
立即替換并移除儲存扇區(qū)iD"r'的高速緩沖塊。
因此,第四實(shí)施方式可能實(shí)現(xiàn)類似于最弱路方法的功能。<第五實(shí)施方式>
圖12是與第二實(shí)施方式中示出的替換路控制電路的進(jìn)一步改善模
式相關(guān)的第五實(shí)施方式的框圖。
在圖12中示出的結(jié)構(gòu)中,具有和圖5或圖6中示出的結(jié)構(gòu)相同標(biāo)號 的部件具有和第一或第二實(shí)施方式相同的功能。
圖12中示出的結(jié)構(gòu)與圖6中示出的結(jié)構(gòu)不同之處在于,針對替換扇 區(qū)ID確定電路401添加了選擇器1002。選擇器1002根據(jù)附著到存儲器 訪問請求308的扇區(qū)ID 302的值,將來自替換扇區(qū)ID確定電路401的輸 出406或固定值1001選擇并輸出為替換扇區(qū)ID 1003。
附加的結(jié)構(gòu)實(shí)現(xiàn)了以下功能。例如,當(dāng)針對固定值1001設(shè)置值"O" 并且指定了扇區(qū)ID"1"時,替換扇區(qū)ID確定電路401根據(jù)最大路數(shù)目確 定是替換具有扇區(qū)ID"O"的高速緩沖路,還是替換具有扇區(qū)ID'T'的高速 緩沖路。選擇器1002輸出結(jié)果作為替換扇區(qū)ID406。另一方面,當(dāng)指定 扇區(qū)ID"0"時,選擇器1002始終選擇扇區(qū)ID"0"(與指定的扇區(qū)ID相同 的值)。
例如,用戶可以創(chuàng)建以下控制條件??梢栽诓辉O(shè)置固定值1001的情 況下,首先執(zhí)行根據(jù)第二實(shí)施方式的操作。然后,在之后的特定時刻, 可以通過程序針對固定值1001設(shè)置值"0",使得可以通過參照最大路數(shù) 目替換儲存扇區(qū)ID"O"的高速緩沖塊中的數(shù)據(jù)來增加儲存扇區(qū)ID'T'的高 速緩沖塊。然而,不通過替換儲存扇區(qū)ID"1"的高速緩沖塊中的數(shù)據(jù)來增 加具有扇區(qū)ID"O"的高速緩沖塊。
因此,根據(jù)附著有扇區(qū)ID'T,的存儲器訪問請求308,可以按照需要 增加用于扇區(qū)ID"1"的區(qū)。相反,對于用于扇區(qū)ID"O"的區(qū),可以進(jìn)行設(shè) 置,從而一旦由用于扇區(qū)ID" 1"的區(qū)替換了該區(qū),則即使附著有扇區(qū)ID"O" 的存儲器訪問請求308也不能增加用于扇區(qū)ID"O"的區(qū)。
<第六實(shí)施方式>
下面描述第六實(shí)施方式。
圖13是在這樣的情況下根據(jù)圖3或圖4中示出的高速緩沖存儲器 101的結(jié)構(gòu)示出對應(yīng)于圖6中示出的替換扇區(qū)ID確定電路401的結(jié)構(gòu)的實(shí)施例的圖,在所述情況中,扇區(qū)ID包括2個位而不是1個位,并且具 有0到2三個值中的一個。
在第六實(shí)施方式中,以下六個寄存器被連接。
-扇區(qū)0最大路數(shù)目寄存器1101 -扇區(qū)l最大路數(shù)目寄存器1102 -選擇器2最大路數(shù)目寄存器1103 -扇區(qū)0當(dāng)前路數(shù)目寄存器1104 -扇區(qū)1當(dāng)前路數(shù)目寄存器1105 -選擇器2當(dāng)前路數(shù)目寄存器1106
針對扇區(qū)0最大路數(shù)目寄存器1101、扇區(qū)1最大路數(shù)目寄存器1102 以及扇區(qū)2最大路數(shù)目寄存器1103,分別設(shè)置針對扇區(qū)ID可以為"0"、"1" 以及"2"的路的最大數(shù)目??梢酝ㄟ^程序設(shè)置這些寄存器值。
針對扇區(qū)0當(dāng)前路數(shù)目寄存器1104、扇區(qū)1當(dāng)前路數(shù)目寄存器1105 以及扇區(qū)2當(dāng)前路數(shù)目寄存器1106,當(dāng)通過存儲器訪問請求308中的地 址105內(nèi)的索引指定塊號時,分別計數(shù)并設(shè)置從扇區(qū)ID RAM 203讀出的 4位扇區(qū)ID301中設(shè)置"O"的位(路)的數(shù)目、在4位扇區(qū)ID301中設(shè)置 "l"的位(路)的數(shù)目以及在4位扇區(qū)ID 301中設(shè)置"2"的位(路)的數(shù) 目。
例如,如圖14中所示出,六個寄存器1101到1106的每一個包括3 個位,具有范圍從0到4的值(最大路數(shù)目)。
在圖13中,當(dāng)扇區(qū)ID"0"被給予存儲器訪問請求308時,選擇器1108 從扇區(qū)O最大路數(shù)目寄存器1101選擇輸出,而選擇器1109從扇區(qū)0的 當(dāng)前路數(shù)目寄存器1104選擇輸出。選擇器1108和選擇器1109選擇的輸 出被輸入到比較器lllO。同時,當(dāng)扇區(qū)ID"1"被給予存儲器訪問請求308 時,選擇器1108從扇區(qū)1最大路數(shù)目寄存器1102選擇輸出,而選擇器 1109從扇區(qū)1當(dāng)前路數(shù)目寄存器1105選擇輸出。選擇器1108和選擇器 1109選擇的輸出被輸入到比較器1110。此外,當(dāng)扇區(qū)ID"2"被給與存儲 器訪問請求308時,選擇器1108從扇區(qū)器2最大路數(shù)目寄存器1103選 擇輸出,而選擇器1109從用于扇區(qū)2當(dāng)前路數(shù)目寄存器1106選擇輸出。選擇器1108和選擇器1109選擇的輸出被輸入到比較器1110。
然后,針對存儲器訪問請求308中指定的扇區(qū)ID值,比較器1110 將最大路數(shù)目和當(dāng)前路數(shù)目進(jìn)行比較。當(dāng)路的當(dāng)前數(shù)目小于路的最大數(shù) 目時,比較器1110輸出相同/其他選擇信號1111 (例如具有值"0"),所述 選擇信號1111指令和附著于存儲器訪問請求的扇區(qū)ID 1107相同的扇區(qū) ID被選擇。當(dāng)路的當(dāng)前數(shù)目大于或等于路的最大數(shù)目時,比較器1110輸 出相同/其他選擇信號1111 (例如具有值'T'),所述選擇信號1111指令和 附著到存儲器訪問請求的扇區(qū)ID 1107不同的扇區(qū)ID被選擇。
圖15是示出根據(jù)第六實(shí)施方式的結(jié)構(gòu)的實(shí)施例的圖,對應(yīng)于圖5或 圖6中的替換路選擇掩碼生成電路303和替換路選擇電路304。
相同的扇區(qū)ID掩碼生成電路1303將附著于存儲器訪問請求的扇區(qū) ID 1301的各扇區(qū)ID值和從扇區(qū)ID RAM 203中的對應(yīng)塊號讀出的扇區(qū) ID信息1302進(jìn)行比較,以生成掩碼位序列(4位),其中'T,指示匹配, 而"O"指示不匹配。
當(dāng)從圖13中示出的比較器1110輸出的相同/其他選擇信號1111指令 選擇相同扇區(qū)ID (例如具有值"O"的信號)時,在沒有任何改變的情況下, 選擇器1304選擇輸出從相同扇區(qū)ID掩碼生成電路1303輸出的4位掩碼 位序列。同時,當(dāng)從圖13中示出的比較器1110輸出的相同/其他選擇信 號1111指令選擇另一扇區(qū)ID (例如具有值'T'的信號)時,選擇器1304 輸出通過對從相同扇區(qū)ID掩碼生成電路1303輸出的4位掩碼位序列的 每個值反相而獲得的4位掩碼位序列。
LRU選擇電路1306根據(jù)LRU算法,將輸入的4位序列中具有值"l" 的一個位選擇并輸出為替換路1307。替換路1307是對應(yīng)于圖6中的替換 路310的信號,并且指定作為高速緩沖存儲器101中對應(yīng)塊號內(nèi)的替換 目標(biāo)的高速緩沖路。
上面描述的第六實(shí)施方式使用戶能夠使用程序執(zhí)行具有更多級的高 速緩沖存儲器101中的替換的控制。
對于上面描述的第一到第六實(shí)施方式,假設(shè)通過用戶程序發(fā)出存儲 器訪問請求。然而,在采用寫回高速緩存(write-back cache)的系統(tǒng)中或者在具有對應(yīng)于多個處理器的多個高速緩沖存儲器的系統(tǒng)中,針對硬件 自動發(fā)出到高速緩沖存儲器的存儲器訪問請求,可以實(shí)現(xiàn)完全相同的功 能。
上面的實(shí)施方式利用了對應(yīng)于存儲器訪問指定的高速緩沖塊中的各 個高速緩沖路的扇區(qū)ID信息的添加,和簡單的判斷處理,這使得可能在 僅需少量硬件代價的情況下實(shí)現(xiàn)與本地存儲器(高速存儲器區(qū))功能和 最弱路方法類似的功能。因此,這些實(shí)施方式使能程序優(yōu)化和程序執(zhí)行 速度的改善。
對于上面實(shí)施方式的硬件代價,這些實(shí)施方式僅需要添加用于儲存
最大路數(shù)目的寄存器(約3位)、比較/掩碼電路以及用于儲存對應(yīng)于各高 速緩沖塊的扇區(qū)ID信息的扇區(qū)IDRAM,這不會產(chǎn)生對操作系統(tǒng)的任何 改變。因此,對于硬件和軟件修改僅需要少量代價。
同時,在這些實(shí)施方式中,可能影響性能的處理僅為諸如比較當(dāng)前 路數(shù)目與最大路數(shù)目和根據(jù)比較結(jié)果對這些路進(jìn)行的掩碼處理的處理。 因此,從電路復(fù)雜性來說,僅存在很小的對性能的不利影響。
此外,在這些實(shí)施方式中,根據(jù)最大路數(shù)目和當(dāng)前路數(shù)目的比較, 具有相同扇區(qū)ID的路或具有另一扇區(qū)ID的路中的一個始終被選擇為替 換目標(biāo)。因此,絕不存在這樣的情況,在所述情況中,和鎖定系統(tǒng)一樣, 鎖定所有路而未留下為替換目標(biāo)的路,從而避免了系統(tǒng)停機(jī)。
此外,在這些實(shí)施方式中,可以針對各扇區(qū)ID信息的值單獨(dú)設(shè)置路 的最大數(shù)目。此外,可以通過允許這樣的條件來重疊指派給各扇區(qū)ID信 息的高速緩沖路,所述條件即,針對每個扇區(qū)ID信息的各個最大路數(shù)目 的總和可以超過高速緩沖存儲器中當(dāng)前提供的高速緩沖路的最大數(shù)目, 使得可能實(shí)現(xiàn)與最弱高速緩沖路方法類似的功能。
2權(quán)利要求
1、一種具有扇區(qū)功能的高速緩沖存儲器,根據(jù)組相關(guān)系統(tǒng)進(jìn)行操作,所述組相關(guān)系統(tǒng)的各個組包括兩個或更多個高速緩沖路,并且一旦發(fā)生高速緩沖未命中,則執(zhí)行高速緩沖操作來替換對應(yīng)于所確定的替換高速緩沖路的高速緩沖路中高速緩沖塊內(nèi)的數(shù)據(jù),所述高速緩沖存儲器包括扇區(qū)ID信息儲存單元,所述扇區(qū)ID信息儲存單元用于與存儲器訪問請求所指定的所述高速緩沖塊中的各個所述高速緩沖路相關(guān)聯(lián)地儲存扇區(qū)ID信息,所述扇區(qū)ID信息被定義來控制各個所述高速緩沖路的替換狀態(tài),并被允許以包括兩個或更多個邏輯值;替換路候選確定單元,一旦發(fā)生所述高速緩沖未命中,所述替換路候選確定單元根據(jù)附著于所述存儲器訪問請求的扇區(qū)ID信息和儲存在所述扇區(qū)ID信息儲存單元中的與所述存儲器訪問請求指定的所述高速緩沖塊中的各所述高速緩沖路相關(guān)聯(lián)的扇區(qū)ID信息來確定作為所述替換路的候選的替換路候選;替換路選擇單元,所述替換路選擇單元用于從所述替換路候選中選擇并輸出替換路;以及扇區(qū)ID信息更新單元,所述扇區(qū)ID信息更新單元用于將儲存在所述扇區(qū)ID信息儲存單元中的與所述存儲器訪問請求指定的所述高速緩沖塊中的每個所述高速緩沖路相關(guān)聯(lián)的所述扇區(qū)ID信息更新為附著于所述存儲器訪問請求的所述扇區(qū)ID信息。
2、根據(jù)權(quán)利要求l所述的具有扇區(qū)功能的高速緩沖存儲器,所述高 速緩沖存儲器還包括最大路數(shù)目指定單元,所述最大路數(shù)目指定單元指定能夠指派給所述 扇區(qū)ID信息的各個所述邏輯值的路的最大數(shù)目,作為最大路數(shù)目;以及比較單元, 一旦發(fā)生所述高速緩沖未命中,所述比較單元將儲存在所述扇區(qū)ID信息儲存單元中的與所述存儲器訪問請求指定的高速緩沖塊 中的各所述高速緩沖路相關(guān)聯(lián)的扇區(qū)ID信息中的具有和附著于所述存儲 器訪問請求的所述扇區(qū)ID信息相同的扇區(qū)ID信息的高速緩沖路的數(shù)目與所述最大路數(shù)目指定單元針對與附著于所述存儲器訪問的所述扇區(qū)ID信息相同的扇區(qū)ID信息指定的所述最大路數(shù)目進(jìn)行比較,其中一旦發(fā)送所述高速緩沖未命中,所述替換路候選確定單元根據(jù)所述 比較單元執(zhí)行的比較的結(jié)果,參照儲存在所述扇區(qū)ID信息儲存單元中的 與所述存儲器訪問請求指定的所述高速緩沖塊中的各個所述高速緩沖路 相關(guān)聯(lián)的所述扇區(qū)ID信息,確定儲存不同于附著于所述存儲器訪問請求 的所述扇區(qū)ID信息的扇區(qū)ID信息的一組所述高速緩沖路或儲存與附著 于所述存儲器訪問請求的所述扇區(qū)ID信息相同的扇區(qū)ID信息的一組所 述高速緩沖路作為所述替換路候選。
3、 根據(jù)權(quán)利要求2所述的具有扇區(qū)功能的高速緩沖存儲器,其中 通過所述最大路數(shù)目指定單元,能夠以其中所述扇區(qū)ID信息的各所述邏輯值的各自的最大路數(shù)目的總和超過所述高速緩沖存儲器中提供的 所述高速緩沖路的數(shù)目的方式,設(shè)置針對所述扇區(qū)ID信息的各所述邏輯 值的所述最大路數(shù)目。
4、 根據(jù)權(quán)利要求2所述的具有扇區(qū)功能的高速緩沖存儲器,其中 一旦發(fā)生所述高速緩沖未命中,所述替換路候選確定單元在不判斷 所述比較單元執(zhí)行的所述比較的所述結(jié)果的情況下,參照儲存在所述扇 區(qū)ID信息儲存單元中與所述存儲器訪問請求指定的所述高速緩沖塊中的 各所述高速緩沖路相關(guān)聯(lián)所述扇區(qū)ID信息,確定儲存與附著于所述存儲 器訪問請求的所述扇區(qū)ID信息相同的所述扇區(qū)ID信息的一組所述高速 緩沖路作為針對用戶指定為扇區(qū)ID信息的預(yù)定值的所述替換路候選。
5、 根據(jù)權(quán)利要求l所述的具有扇區(qū)功能的高速緩沖存儲器,其中 一旦針對所述存儲器訪問請求發(fā)生高速緩沖命中,所述扇區(qū)ID信息更新單元將儲存在所述扇區(qū)ID信息儲存單元中的與所述存儲器訪問請求 指定的所述高速緩沖塊中的各所述髙速緩沖路相關(guān)聯(lián)的所述扇區(qū)ID信息 更新為附著到所述存儲器訪問請求的所述扇區(qū)ID信息。
6、 根據(jù)權(quán)利要求l所述的具有扇區(qū)功能的高速緩沖存儲器,其中 所述扇區(qū)ID信息可以包括兩個邏輯值。
7、 根據(jù)權(quán)利要求l所述的具有扇區(qū)功能的高速緩沖存儲器,其中 所述扇區(qū)ID信息可以包括三個或更多個邏輯值。
全文摘要
一種具有扇區(qū)功能的高速緩沖存儲器,根據(jù)組相關(guān)系統(tǒng)進(jìn)行操作,并且一旦發(fā)生高速緩沖未命中,則執(zhí)行高速緩沖操作來替換對應(yīng)于所確定的替換高速緩沖路的高速緩沖路中高速緩沖塊內(nèi)的數(shù)據(jù),該高速緩沖存儲器包括與存儲器訪問請求所指定的所述高速緩沖塊中的各所述高速緩沖路相關(guān)聯(lián)地儲存扇區(qū)ID信息;一旦發(fā)生所述高速緩沖未命中,根據(jù)附著于所述存儲器訪問請求的扇區(qū)ID信息和儲存的扇區(qū)ID信息來確定替換路候選;從所述替換路候選中選擇并輸出替換路;以及將存儲的與所述存儲器訪問請求指定的所述高速緩沖塊中的各所述高速緩沖路相關(guān)聯(lián)的所述扇區(qū)ID信息更新為附著于所述存儲器訪問請求的所述扇區(qū)ID信息。
文檔編號G06F12/08GK101470670SQ20081021356
公開日2009年7月1日 申請日期2008年9月11日 優(yōu)先權(quán)日2007年12月28日
發(fā)明者吉田利雄, 山崎巌, 山村周史, 本藤干雄 申請人:富士通株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
镇江市| 昆山市| 越西县| 陇川县| 儋州市| 弥勒县| 丹江口市| 乌拉特中旗| 沧州市| 靖边县| 衡阳县| 调兵山市| 抚远县| 巫山县| 林西县| 宁南县| 高陵县| 郑州市| 金平| 石楼县| 逊克县| 英德市| 天峻县| 龙井市| 江源县| 沾益县| 尚义县| 屏南县| 安庆市| 宜章县| 余庆县| 错那县| 顺义区| 德惠市| 呈贡县| 那曲县| 斗六市| 观塘区| 黄平县| 贺州市| 湘潭市|