專(zhuān)利名稱(chēng):使用多個(gè)數(shù)據(jù)結(jié)構(gòu)管理高速緩存中的數(shù)據(jù)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種使用多個(gè)數(shù)據(jù)結(jié)構(gòu)管理高速緩存中的數(shù)據(jù)的方 法、系統(tǒng)和程序。
背景技術(shù):
高速緩存管理系統(tǒng)將在存儲(chǔ)設(shè)備內(nèi)保存的數(shù)據(jù)存儲(chǔ)在更快的訪 問(wèn)介質(zhì)內(nèi),例如存儲(chǔ)器設(shè)備,以便可以從更快的訪問(wèn)高速緩存存儲(chǔ)器 服務(wù)來(lái)自存儲(chǔ)器的數(shù)據(jù)請(qǐng)求。高速緩存管理系統(tǒng)可以保存鏈接列表, 其具有從存儲(chǔ)器進(jìn)入高速緩存的每個(gè)數(shù)據(jù)單元的單個(gè)條目。在通常使
用的最近最少使用(Least Recently Used: LRU)高速緩存技術(shù)中, 如果訪問(wèn)在高速緩存內(nèi)的數(shù)據(jù),即高速緩存"命中",則將用于所訪問(wèn) 數(shù)據(jù)的LRU列表內(nèi)的條目移動(dòng)到該列表的最近最常使用(Most Recently Used: MRU)端。如果所請(qǐng)求的數(shù)據(jù)不在高速緩存內(nèi),即高 速緩存未中,則可以刪除(或者降回存儲(chǔ)器)其條目在列表LRU端 的高速緩存內(nèi)的數(shù)據(jù),并將升入高速緩存的新數(shù)據(jù)的條目添加到LRU 列表的MRU端。使用這種LRU高速緩存技術(shù),較頻繁使用的數(shù)據(jù)可 保存在高速緩存內(nèi),而不經(jīng)常使用的數(shù)據(jù)將更可能被從該列表的LRU 端刪除以在高速緩存內(nèi)為新訪問(wèn)的數(shù)據(jù)提供空間。
在異步計(jì)算環(huán)境內(nèi)(其中在多處理器環(huán)境內(nèi)的多個(gè)線程或不同處 理器正在從同一高速緩存訪問(wèn)數(shù)據(jù)),由鎖保護(hù)MRU條目使對(duì)MRU 條目的訪問(wèn)串行化。這意味著一個(gè)或多個(gè)線程必需等待保持MRU條 目上的鎖(lock)的線程以完成它們的高速緩存命中或未中操作。在 多線程環(huán)境中,存在對(duì)該鎖的大量竟?fàn)?,因?yàn)樗械母咚倬彺婷泻?高速緩存未中都要求訪問(wèn)這個(gè)鎖。對(duì)于高性能和高吞吐量的環(huán)境,例
如虛擬存儲(chǔ)器、數(shù)據(jù)庫(kù)、文件系統(tǒng)和存儲(chǔ)器控制器,并不希望這種竟 爭(zhēng)。
圖1圖示在現(xiàn)有技術(shù)中公知的管理從存儲(chǔ)設(shè)備高速緩存的數(shù)據(jù)的
時(shí)鐘數(shù)據(jù)結(jié)構(gòu)(或者"時(shí)鐘")2。該時(shí)鐘2包括環(huán)形緩沖器。該時(shí)鐘包 括指在該時(shí)鐘2的頭部條目6和尾部條目8之間的時(shí)鐘指針4。將來(lái) 自存儲(chǔ)器的數(shù)據(jù)添加到頭部條目6。該時(shí)鐘算法保存用于每個(gè)時(shí)鐘2 條目或頁(yè)面的"頁(yè)面參考比特"。當(dāng)?shù)谝淮螌?shù)據(jù)從存儲(chǔ)器帶入高速緩 存時(shí),將用于所高速緩存數(shù)據(jù)的條目的頁(yè)面參考比特設(shè)置為零。當(dāng)訪 問(wèn)高速緩存內(nèi)的數(shù)據(jù)時(shí),將用于所訪問(wèn)數(shù)據(jù)的頁(yè)面參考比特設(shè)置為一。
為了使用從存儲(chǔ)器最新訪問(wèn)的數(shù)據(jù)替換高速緩存內(nèi)的數(shù)據(jù),如果 在時(shí)鐘指針4上的頭部條目8具有頁(yè)面參考比特零,則將與頭部條目 8對(duì)應(yīng)的數(shù)據(jù)從高速緩存降級(jí),并將新頁(yè)面的相關(guān)信息添加到頭部條 目6。如果用于當(dāng)前頭部條目8的頁(yè)面參考比特是一,則將該頁(yè)面參 考比特重新設(shè)置為零,并將時(shí)鐘指針4沿時(shí)鐘2向前移動(dòng)直到發(fā)現(xiàn)具 有為零的頁(yè)面參考比特的頭部條目8以替換。在虛擬存儲(chǔ)應(yīng)用中,可 以通過(guò)硬件改變頁(yè)面參考比特。
時(shí)鐘高速緩存技術(shù)的一個(gè)優(yōu)點(diǎn)是不需要為了高速緩存命中將頁(yè) 面移動(dòng)到MRU位置,例如對(duì)于LRU高速緩存技術(shù)的情況,其需要鎖 和串行化以將LRU列表內(nèi)用于所訪問(wèn)數(shù)據(jù)的條目移動(dòng)到MRU位置。 此外,時(shí)鐘高速緩存技術(shù)的命中比率通??膳cLRU高速緩存方法的 比率相比較。因此,在多種操作系統(tǒng)和應(yīng)用程序內(nèi)使用時(shí)鐘高速緩存 技術(shù)的變型。然而,當(dāng)將頁(yè)面添加到時(shí)鐘結(jié)構(gòu)的頭部條目8時(shí),依然 需要時(shí)鐘用于高速緩存未中。因而,當(dāng)替換高速緩存內(nèi)的數(shù)據(jù)時(shí),LRU 和時(shí)鐘高速緩存技術(shù)都需要鎖定竟?fàn)帯?br>
因?yàn)檫@些原因,在技術(shù)上需要提供用于管理高速緩存內(nèi)的數(shù)據(jù)的技術(shù)。
發(fā)明內(nèi)容
提供用于使用多個(gè)數(shù)據(jù)結(jié)構(gòu)管理高速緩存內(nèi)的數(shù)據(jù)的方法、系統(tǒng)
和程序。多個(gè)數(shù)據(jù)結(jié)構(gòu),每個(gè)具有識(shí)別從第一計(jì)算機(jī)可讀介質(zhì)添加到 第二計(jì)算機(jī)可讀介質(zhì)的數(shù)據(jù)的條目。接收對(duì)第一計(jì)算機(jī)可讀介質(zhì)內(nèi)數(shù)
據(jù)的請(qǐng)求。確定在數(shù)據(jù)結(jié)構(gòu)之一中是否存在用于所請(qǐng)求數(shù)據(jù)的條目。 響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中不存在用于所請(qǐng)求數(shù)據(jù)的條目,從第一 計(jì)算機(jī)可讀介質(zhì)檢索所請(qǐng)求的數(shù)據(jù)以存儲(chǔ)在第二計(jì)算機(jī)可讀介質(zhì)內(nèi)。 響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中不存在用于所請(qǐng)求數(shù)據(jù)的條目,選擇數(shù) 據(jù)結(jié)構(gòu)之一,并將用于所檢索數(shù)據(jù)的條目添加到選定數(shù)據(jù)結(jié)構(gòu)。
在又一種實(shí)施例中,選擇數(shù)據(jù)結(jié)構(gòu)之一包括隨機(jī)地選擇數(shù)據(jù)結(jié)構(gòu)
之一》
在又一種實(shí)施例中,響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中不存在用于所 請(qǐng)求數(shù)據(jù)的條目,確定第二計(jì)算機(jī)可讀介質(zhì)是否具有可用于存儲(chǔ)所檢 索的所請(qǐng)求數(shù)據(jù)的空間。響應(yīng)于確定第二計(jì)算機(jī)可讀介質(zhì)不具有可用 空間,從數(shù)據(jù)結(jié)構(gòu)之一中選擇一個(gè)條目。使用于選定條目的數(shù)據(jù)從第 二計(jì)算機(jī)可讀介質(zhì)中降級(jí)。
在又一種實(shí)施例中,響應(yīng)于確定第二計(jì)算機(jī)可讀介質(zhì)不具有可用 空間、從數(shù)據(jù)結(jié)構(gòu)之一中選擇一個(gè)條目包括確定具有最舊條目的其中 一個(gè)數(shù)據(jù)結(jié)構(gòu),其中選定條目包括在所確定數(shù)據(jù)結(jié)構(gòu)內(nèi)的最舊條目。
在又一種實(shí)施例中,響應(yīng)于確定第二計(jì)算機(jī)可讀介質(zhì)不具有可用 空間、從數(shù)據(jù)結(jié)構(gòu)之一中選擇一個(gè)條目包括選擇數(shù)據(jù)結(jié)構(gòu)的隨機(jī)子集 和從選定隨機(jī)子集中逸擇一個(gè)數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)的最舊條目不新 于選定子集內(nèi)任何其它數(shù)據(jù)結(jié)構(gòu)內(nèi)的最舊條目。
在又一種實(shí)施例中,數(shù)據(jù)結(jié)構(gòu)包括最近最少使用(LRU)列表, 并且其中添加用于所檢索數(shù)據(jù)的條目包括將條目添加到選定LRU列 表的最近最常使用(MRU)端。
在又一種實(shí)施例中,數(shù)據(jù)結(jié)構(gòu)包括時(shí)鐘,其中每個(gè)時(shí)鐘包括在列 表中彼此相鄰的頭部和尾部條目,并且其中添加所檢索數(shù)據(jù)的條目包 括將條目添加到選定時(shí)鐘的頭部條目。
在又一種實(shí)施例中,時(shí)鐘內(nèi)的條目表示條目是否被訪問(wèn)過(guò)。響應(yīng) 于確定在時(shí)鐘之一中沒(méi)有用于所請(qǐng)求數(shù)據(jù)的條目,確定第二計(jì)算機(jī)可
讀介質(zhì)是否具有可用空間以存儲(chǔ)所檢索的所請(qǐng)求數(shù)據(jù)。選擇時(shí)鐘之一 , 并確定時(shí)鐘內(nèi)被表示為尚未被訪問(wèn)的 一個(gè)條目。使用于所確定條目的 數(shù)據(jù)從第二計(jì)算機(jī)可讀介質(zhì)中降級(jí)。
在又一種實(shí)施例中,多個(gè)數(shù)據(jù)結(jié)構(gòu),每個(gè)具有識(shí)別從第一計(jì)算機(jī) 可讀介質(zhì)添加到第二計(jì)算機(jī)可讀介質(zhì)的數(shù)據(jù)的條目。接收對(duì)第一計(jì)算 機(jī)可讀介質(zhì)內(nèi)的數(shù)據(jù)的請(qǐng)求,確定是否在數(shù)據(jù)結(jié)構(gòu)之一中存在用于所 請(qǐng)求數(shù)據(jù)的條目。響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中存在所請(qǐng)求數(shù)據(jù)的條 一個(gè)目,針對(duì)該數(shù)據(jù)請(qǐng)求從第二計(jì)算機(jī)可讀介質(zhì)訪問(wèn)所請(qǐng)求的數(shù)據(jù)。
響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中存在所請(qǐng)求數(shù)據(jù)的一個(gè)條目,選擇數(shù)據(jù) 結(jié)構(gòu)之一,響應(yīng)于確定存在用于所請(qǐng)求數(shù)據(jù)的一個(gè)條目,將確定的用 于所請(qǐng)求數(shù)據(jù)的條目移動(dòng)到選定的數(shù)據(jù)結(jié)構(gòu)。
在又一種實(shí)施例中,響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中存在所請(qǐng)求數(shù) 據(jù)的一個(gè)條目,隨機(jī)地選擇數(shù)據(jù)結(jié)構(gòu)。
在又一種實(shí)施例中,每個(gè)數(shù)據(jù)結(jié)構(gòu)是一組數(shù)據(jù)結(jié)構(gòu)的成員,所述
數(shù)據(jù)結(jié)構(gòu)包括下述之一最近最少使用(LRU)列表和時(shí)鐘數(shù)據(jù)結(jié)構(gòu)。
圖1圖示現(xiàn)有技術(shù)的用于高速緩存管理的時(shí)鐘數(shù)據(jù)結(jié)構(gòu)。 圖2圖示計(jì)算環(huán)境的實(shí)施例。
圖3圖示在圖2的計(jì)算環(huán)境內(nèi)用于管理高速緩存的索引條目的實(shí)施例。
圖4圖示使用圖2和圖3的數(shù)據(jù)結(jié)構(gòu)管理高速緩存的操作的實(shí)施例。
圖5圖示用于管理高速緩存的存儲(chǔ)器內(nèi)組件的實(shí)施例。
圖6圖示4吏用圖5的存儲(chǔ)器用于管理高速緩存的索引條目的實(shí)施例。
圖7圖示使用圖5和圖6的結(jié)構(gòu)管理高速緩存的操作的實(shí)施例。
具體實(shí)施例方式
圖2圖示計(jì)算環(huán)境的實(shí)施例。系統(tǒng)12包括一個(gè)或多個(gè)處理器14a、
14b..... 14n,其中每個(gè)處理器14a、 14b..... 14n提交指向存儲(chǔ)裝
置(storage) 16內(nèi)存儲(chǔ)位置的輸入/輸出(I/O)請(qǐng)求。高速緩存管理
器18處理I/0請(qǐng)求,和將由處理器14a、 14b.....14n請(qǐng)求的數(shù)據(jù)高
速緩存到在存儲(chǔ)器22內(nèi)存儲(chǔ)的多個(gè)最近最少使用(LRU)列表20a、
20b.....20n之一中。高速緩存管理器18使用LRU列表20a 、 20b.....
20n管理來(lái)自存儲(chǔ)裝置16、高速緩存在存儲(chǔ)器(memory) 22內(nèi)的數(shù) 據(jù),從而確定何時(shí)從存儲(chǔ)裝置16升級(jí)(stage)和降級(jí)(destage)數(shù) 據(jù)以優(yōu)化高速緩存命中和最小化高速緩存未中。每個(gè)LRU列表20a 、
20b、…、20n包括最近最常使用(MRU)端24a、 24b.....24n和
LRU端26a、 26b、…、26n。在LRU列表20a、 20b、…、20n內(nèi)伊、 別的從存儲(chǔ)裝置16訪問(wèn)的數(shù)據(jù)高速緩存在存儲(chǔ)器22內(nèi)。
高速緩存管理器18還保存高速緩存索引28,其具有在存儲(chǔ)器22 的高速緩存內(nèi)保存的來(lái)自存儲(chǔ)裝置16的數(shù)據(jù)的相關(guān)信息。高速緩存索 引28表示來(lái)自存儲(chǔ)裝置16內(nèi)特定地址或位置的數(shù)據(jù)是否在LRU列 表20a、 20b、 ...、 20n之一中的條目?jī)?nèi)被識(shí)別。存儲(chǔ)地址或位置可以 包括存儲(chǔ)裝置16內(nèi)數(shù)據(jù)的軌道、塊、頁(yè)面或任何其它分段。
存儲(chǔ)裝置16可以包括一個(gè)或多個(gè)存儲(chǔ)設(shè)備,例如一個(gè)或多個(gè)磁 盤(pán)驅(qū)動(dòng)器,存儲(chǔ)設(shè)備陣列,例如僅一組磁盤(pán)(JBOD)、直接訪問(wèn)存 儲(chǔ)設(shè)備(DASD)、獨(dú)立磁盤(pán)冗余陣列(RAID)、虛擬化設(shè)備、磁帶 存儲(chǔ)器、閃存、等等。存儲(chǔ)器22可以包括一個(gè)或多個(gè)存儲(chǔ)器設(shè)備,其 具有比存儲(chǔ)裝置16更高的吞吐量和更快的訪問(wèn)。在替代實(shí)施例中,存 儲(chǔ)器22和存儲(chǔ)裝置16可以包括在現(xiàn)有技術(shù)內(nèi)公知的任意合適的計(jì)算 機(jī)可讀介質(zhì),以便一個(gè)計(jì)算機(jī)可讀介質(zhì)用作對(duì)另一個(gè)計(jì)算機(jī)可讀介質(zhì)
(1/0請(qǐng)求指向其)的快速訪問(wèn)高速緩存。處理器14a、 14b.....14n
可以包括分立微處理器設(shè)備或者在一個(gè)或多個(gè)多核微處理器設(shè)備上實(shí) 施的分立處理內(nèi)核。高速緩存管理器18可以實(shí)施為由一個(gè)或多個(gè)處理
器14a、 14b..... 14n執(zhí)行或者在存儲(chǔ)器22硬件內(nèi)實(shí)施的計(jì)算機(jī)程序。在一種實(shí)施例中,系統(tǒng)12可以包括從多個(gè)連接主機(jī)接收對(duì)存儲(chǔ) 裝置16的讀和寫(xiě)請(qǐng)求的存儲(chǔ)控制器。
圖3圖示在高速緩存索引28內(nèi)高速緩存索引條目30的實(shí)施例, 所述高速緩存索引條目表示存儲(chǔ)位置32,例如存儲(chǔ)地址;LRU列表 34,識(shí)別具有用于該高速緩存的存儲(chǔ)位置32的條目的LRU列表10a、
10b..... 10n;和對(duì)于該高速緩存的存儲(chǔ)位置32、在表示的LRU列
表34中的條目36位置。
高速緩存索引28可以包括散列表,其條目根據(jù)存儲(chǔ)位置32的散 列進(jìn)行索引??商娲?,可以通過(guò)除了在現(xiàn)有技術(shù)中公知的散列表之 外的適當(dāng)索引類(lèi)型數(shù)據(jù)結(jié)構(gòu)實(shí)施高速緩存索引28。
圖4圖示由高速緩存管理器18執(zhí)行以管理將數(shù)據(jù)從存儲(chǔ)裝置16 高速緩存在存儲(chǔ)器22內(nèi)的操作的實(shí)施例。 一旦接收到請(qǐng)求(在方框 100),例如讀或?qū)懻?qǐng)求,以訪問(wèn)在存儲(chǔ)裝置16內(nèi)的數(shù)據(jù),高速緩存 管理器18處理(在方框102)高速緩存索引28以確定所請(qǐng)求的存儲(chǔ)
地址是否在LRU列表20a、 20b.....20n之一中。所高速緩存的數(shù)
據(jù)的存儲(chǔ)位置可以包括存儲(chǔ)裝置的塊、軌道、頁(yè)面或者其它單元或分 段。如果(在方框104)存在用于所請(qǐng)求存儲(chǔ)地址的高速緩存索引條 目30 (圖3),則所請(qǐng)求的數(shù)據(jù)在高速緩存內(nèi),即"高速緩存命中"。 在這種情況下,高速緩存管理器18根據(jù)高速緩存索引28確定(在方 框106)來(lái)自字段34的LRU列表20a、 20b、…、20n和所請(qǐng)求數(shù)據(jù) 的列表內(nèi)的條目36。在一種實(shí)施例中,高速緩存管理器18可以將用 于所訪問(wèn)數(shù)據(jù)的條目移動(dòng)到當(dāng)前LRU列表20a、 20b、 ...、 20n的MRU 端24a、 24b、…、24n,在所述當(dāng)前LRU列表內(nèi)包括該條目。在替代 實(shí)施例中,高速緩存管理器18可以選擇(在方框108),例如隨機(jī)地 選擇,LRU列表20a、 20b、 ...、 20n之一 (它可能包括也可能不包括 已經(jīng)包含所確定條目的LRU列表),和將所確定的用于請(qǐng)求數(shù)據(jù)的 條目移動(dòng)(在方框110)到選定LRU列表20a、 20b、…、20n的MRU 端24a、 24b、…、24n。
如果(在方框104)在高速緩存索引28內(nèi)不存在用于所請(qǐng)求存儲(chǔ)
地址的條目,則所請(qǐng)求的數(shù)據(jù)不在高速緩存內(nèi),即"高速緩存未中"。
在這種情況下,如果(在方框112)高速緩沖存儲(chǔ)器22未滿,即具有 可用于所請(qǐng)求數(shù)據(jù)的空間,則高速緩存管理器18 (在方框114)將所 請(qǐng)求的數(shù)據(jù)升級(jí)入高速緩存存儲(chǔ)器22。為了建立用于升級(jí)入高速緩存 存儲(chǔ)器22的數(shù)據(jù)的LRU列表?xiàng)l目,高速緩存管理器18選擇,例如 隨機(jī)地,(在方框116) LRU列表20a、 20b、…、20n之一,和(在 方框118)將用于所升級(jí)數(shù)據(jù)的條目添加到選定LRU列表20a、 20b、…、20n的MRU端24a、 24b、…、24n。還將條目30 (圖3) 添加(在方框120)給高速緩存索引28,所述高速緩存索引包括所請(qǐng) 求數(shù)據(jù)的存儲(chǔ)地址和添加了條目30的選定LRU列表20a、 20b、...、 20n。如果(在方框112)高速緩存已滿,即并不具有可用于所請(qǐng)求數(shù) 據(jù)的空間,則需要使該數(shù)據(jù)降級(jí)。為了使該數(shù)據(jù)降級(jí),通過(guò)處理隨機(jī)
選擇的列表子集以確定包含最舊的LRU26a、 26b.....26n條目的隨
機(jī)選擇的子集的列表,高速緩存管理器18 (在方框124)選擇列表之 一。通過(guò)為每個(gè)高速緩存條目保存存儲(chǔ)最后訪問(wèn)該條目的時(shí)間的時(shí)間 戳記,可以確定最舊的條目。例如,如果存在n個(gè)LRU列表,則隨 機(jī)選擇列表的子集可以包括m個(gè)列表。在一種實(shí)施例中,列表子集或 者m可以是兩個(gè)。隨后,高速緩存管理器18 (在方框126)將用于
LRU條目26a.....26n的數(shù)據(jù)從選定的LRU列表20a、 20b、…、
20n中降級(jí)。使數(shù)據(jù)降級(jí)會(huì)從存儲(chǔ)器22中刪除該數(shù)據(jù),并將對(duì)該數(shù)據(jù) 的任何更新應(yīng)用于存儲(chǔ)裝置16。在使該數(shù)據(jù)降級(jí)之后,控制繼續(xù)到方 框114,以升級(jí)所請(qǐng)求的數(shù)據(jù)。從方框110或120,控制前進(jìn)到方框
128以將所請(qǐng)求的數(shù)據(jù)返回給進(jìn)行請(qǐng)求的處理器14a、 14b..... 14n。
通過(guò)將條目隨機(jī)地分配在LRU列表之中,所描述的實(shí)施例尋求 提高同時(shí)訪問(wèn)的存儲(chǔ)位置在不同LRU列表內(nèi)具有條目以避免請(qǐng)求數(shù)
據(jù)的處理器14a、 14b..... 14n的鎖竟?fàn)幍目赡苄浴@纾绻嬖?br>
對(duì)LRU條目在不同的LRU列表上的存儲(chǔ)位置的兩個(gè)同時(shí)請(qǐng)求,則將 不存在由于當(dāng)兩個(gè)請(qǐng)求要求訪問(wèn)同一 LRU列表內(nèi)的MRU條目時(shí)會(huì)產(chǎn) 生的鎖竟?fàn)幒瓦B續(xù)化而導(dǎo)致的延遲。然而,如果兩個(gè)同時(shí)請(qǐng)求針對(duì)其
條目在同一列表上的數(shù)據(jù),則依然可能出現(xiàn)鎖竟?fàn)?。盡管如此,通過(guò)
在多個(gè)LRU列表(具有用于它們的MRU和LRU端的單獨(dú)鎖)之中 隨機(jī)地分配最近訪問(wèn)的條目,所描述的實(shí)施例大大降低了鎖竟?fàn)幍目?能性。
圖5是替代實(shí)施例,其中不使用LRU列表20a、 20b.....20n
(圖2 ),高速緩存管理器18在存儲(chǔ)器152內(nèi)保存時(shí)鐘數(shù)據(jù)結(jié)構(gòu)(或 "時(shí)鐘,,)150a、 150b、…、150n以管理在高速緩存存儲(chǔ)器152內(nèi)來(lái)自
存儲(chǔ)裝置16的數(shù)據(jù)。每個(gè)時(shí)鐘150a、 150b.....150n包括時(shí)鐘指針
154a、 154b..... 154n,提供指向時(shí)鐘150a、 150b、…、150n中在
時(shí)鐘150a、 150b、…、150n的尾部條目156a、 156b..... 156n和頭
部條目158a、 158b.....158n之間的位置的指針。高速緩存索引160
提供到時(shí)鐘之一中的條目的存儲(chǔ)地址的索引。高速緩存索引160可以 包括散列表或其它合適的索引數(shù)據(jù)結(jié)構(gòu)。
圖6是在高速緩存索引160內(nèi)條目170的實(shí)施例,它表示存儲(chǔ)位 置172,例如存儲(chǔ)地址;時(shí)鐘174,識(shí)別具有用于該存儲(chǔ)位置172的條 目的時(shí)鐘150a、 150b、 ...、 150n;和用于該存儲(chǔ)位置172的在所表示 的時(shí)鐘174內(nèi)的條目176。
圖7圖示由高速緩存管理器18使用時(shí)鐘150a、 150b..... 150n
管理高速緩存存儲(chǔ)器152所執(zhí)行的操作的實(shí)施例。 一旦(在方框200) 接收到對(duì)存儲(chǔ)地址的請(qǐng)求,高速緩存管理器18 (在方框202)處理高 速緩存索引160以確定所請(qǐng)求的數(shù)據(jù)是否在時(shí)鐘150a、150b、...、150n 之一中。如果(在方框204)存在用于所請(qǐng)求存儲(chǔ)地址的高速緩存索 引條目160,即"高速緩存命中",則高速緩存管理器18根據(jù)高速緩存
索引160(在方框206 )確定時(shí)鐘150a、 150b.....150n和在時(shí)鐘150a、
150b..... 150n內(nèi)用于所請(qǐng)求數(shù)據(jù)的條目176 (圖6)。隨后,高速
緩存管理器18 (在方框208)設(shè)置用于所確定條目的條目比特以表示 該條目已經(jīng)被訪問(wèn)過(guò)(例如將頁(yè)面參考比特設(shè)置為"l,,)和返回(在方 框210)所請(qǐng)求的數(shù)據(jù)。如果(在方框204)高速緩存索引160并不包 括用于所請(qǐng)求存儲(chǔ)地址的條目,即"高速緩存未中",并且如果(在方
框212)高速緩存存儲(chǔ)器152未滿,即確實(shí)具有可用于所請(qǐng)求數(shù)據(jù)的 空間,則高速緩存管理器18 (在方框214 )將所請(qǐng)求的數(shù)據(jù)升級(jí)進(jìn)入
高速緩存存儲(chǔ)器152,并(在方框216)選擇時(shí)鐘150a、 150b.....
150n之一,其可以是隨機(jī)地選擇。(在方框218)將用于所升級(jí)數(shù)據(jù)
的條目170 (圖6)添加到選定時(shí)鐘150a、 150b..... 150n的頭部條
目158a、 158b..... 158n,并(在方框220 )將一個(gè)條目添加到高速
緩存索引170。該高速緩存索引條目170包括所請(qǐng)求數(shù)據(jù)的存儲(chǔ)地址 172、選定時(shí)鐘和用于升級(jí)進(jìn)入存儲(chǔ)器152的數(shù)據(jù)的選定時(shí)鐘內(nèi)的條 目。從方框220,控制前進(jìn)到方框210以返回?cái)?shù)據(jù)。
如果(在方框212)存儲(chǔ)器高速緩存152已滿,即并不具有可用 于所請(qǐng)求數(shù)據(jù)的空間,則高速緩存管理器18可以(在方框222)通過(guò)
隨機(jī)地選擇時(shí)鐘150a、 150b..... 150n的子集以確定隨機(jī)選擇子集
的最大塊時(shí)鐘(即具有最多條目170的時(shí)鐘)來(lái)選擇從中刪除條目的 時(shí)鐘150a、 150b、…、150n之一,該時(shí)鐘是具有最多條目的時(shí)鐘。 對(duì)于每個(gè)時(shí)鐘,保持表示其中的條目數(shù)量的計(jì)數(shù)器。可以使用計(jì)數(shù)器 確定一組時(shí)鐘之中的最大時(shí)鐘,即包含最多條目的時(shí)鐘??商娲兀?br>
高速緩存管理器18可以隨機(jī)地選擇時(shí)鐘150a、 150b.....150n之一,
以對(duì)用于針對(duì)高速緩存未中升級(jí)入存儲(chǔ)器152的數(shù)據(jù)的條目進(jìn)行更 新。
如果(在方框224)在選定時(shí)鐘集150a、 150b、…、150n的時(shí)
鐘指針154a、 154b.....154n上的頭部條目158a、 158b、…、158n
被表示為已經(jīng)訪問(wèn)過(guò),即將用于該條目的頁(yè)面參考比特設(shè)置為"l",則 高速緩存管理器18設(shè)置(在方框226)該條目170的比特以表示該存 儲(chǔ)地址尚未被訪問(wèn)過(guò),例如"0",并將時(shí)鐘指針154a、 154b、…、154n
向前移動(dòng)一個(gè)條目以l更先前的頭部條目158a、 158b..... 158n現(xiàn)在
是新時(shí)鐘指針位置的尾部條目156a、 156b.....156n。在重置該條目
的比特以表示"未訪問(wèn),,之后,例如"0",(在方框226)控制繼續(xù)回到 方框224,以便時(shí)鐘指針154a、 154b、…、154n繼續(xù)向前移動(dòng)直到到 達(dá)其訪問(wèn)比特表示該條目最近未被訪問(wèn)的頭部條目158a、 158b、…、158n,例如頁(yè)面參考比特為零。
如果(在方框224)在時(shí)鐘指針154a、 154b..... 154n上的頭
部條目158a、 158b、 ...、 158n表示高速緩存內(nèi)的存儲(chǔ)地址尚未被訪 問(wèn),例如頁(yè)面參考比特為零,則高速緩存管理器18 (在方框228)將
頭部條目156a、 156b.....156n的數(shù)據(jù)從高速緩沖存儲(chǔ)器152降級(jí)
到存儲(chǔ)裝置16 (如果該數(shù)據(jù)已經(jīng)被修改的話)。如果該數(shù)據(jù)尚未被修 改,則可以丟棄該數(shù)據(jù)??刂齐S后前進(jìn)到方框214以升級(jí)所請(qǐng)求的數(shù) 據(jù),將所請(qǐng)求數(shù)據(jù)的條目添加到時(shí)鐘150a、 150b、 ...、 150n之一, 并返回所請(qǐng)求的數(shù)據(jù)。
通過(guò)在時(shí)鐘數(shù)據(jù)結(jié)構(gòu)之中隨機(jī)地分配條目,所描述的實(shí)施例尋求 提高同時(shí)訪問(wèn)的存儲(chǔ)位置在不同時(shí)鐘內(nèi)具有條目以避免當(dāng)存在高速緩
存未中時(shí)處理器14a、 14b..... 14n的鎖竟?fàn)幍目赡苄?。例如,如?br>
存在對(duì)時(shí)鐘條目在不同時(shí)鐘上的存儲(chǔ)位置的兩個(gè)同時(shí)請(qǐng)求,則將不存 在由于在有高速緩存未中情況時(shí)的鎖竟?fàn)幒瓦B續(xù)化而產(chǎn)生的延遲,因 為可以針對(duì)該高速緩存未中升級(jí)入高速緩存的數(shù)據(jù),分別地更新不同 時(shí)鐘。通過(guò)在具有單獨(dú)鎖的多個(gè)時(shí)鐘上隨機(jī)地分配最新訪問(wèn)的條目, 所描述的實(shí)施例大大降低了鎖竟?fàn)幍目赡苄浴6?,通過(guò)避免鎖定延 遲,使用多個(gè)列表改善了系統(tǒng)傳輸吞吐量。
附加實(shí)施例細(xì)節(jié)
使用標(biāo)準(zhǔn)編程和/或工程技術(shù)以生成軟件、固件、硬件或其任意 組合,可以將所描述的操作實(shí)施為方法、設(shè)備或制造產(chǎn)品??梢詫⑺?描述的操作實(shí)施為在"計(jì)算機(jī)可讀介質(zhì)"內(nèi)保存的編碼,其中處理器可 以從計(jì)算機(jī)可讀介質(zhì)讀取和執(zhí)行該代碼。計(jì)算機(jī)可讀介質(zhì)可以包括介 質(zhì),例如磁存儲(chǔ)介質(zhì)(例如硬盤(pán)驅(qū)動(dòng)器、軟盤(pán)、磁帶、等等)、光存 儲(chǔ)器(CD-ROM、 DVD、光盤(pán)、等等)、易失性和非易失性存儲(chǔ)器設(shè) 備(例如EEPROM、 ROM、 PROM、 RAM、 DRAM、 SRAM、閃存、 固件、可編程邏輯、等等)、等等??梢赃M(jìn)一步將執(zhí)行所描述操作的 代碼實(shí)施為硬件邏輯(例如集成電路芯片、可編程門(mén)陣列(PGA)、
應(yīng)用專(zhuān)用集成電路(ASIC)、等等)。另外,可以在"傳輸信號(hào),,內(nèi)實(shí) 施執(zhí)行所描述操作的代碼,其中傳輸信號(hào)可以通過(guò)空間或者通過(guò)諸如 光纖、銅線等傳輸介質(zhì)傳播。其中編碼代碼或邏輯的傳輸信號(hào)還可以 包括無(wú)線信號(hào)、衛(wèi)星傳輸、無(wú)線電波、紅外信號(hào)、藍(lán)牙、等等。其中 編碼代碼或邏輯的傳輸信號(hào)能夠由發(fā)送站發(fā)送和由接收站接收,其中 在傳輸信號(hào)內(nèi)編碼的代碼或邏輯可以在接收和發(fā)送站或設(shè)備上的硬件 或計(jì)算機(jī)可讀介質(zhì)上解碼和存儲(chǔ)。"制造物品"包括其中可以實(shí)施代碼 的計(jì)算機(jī)可讀介質(zhì)、硬件邏輯和/或傳輸信號(hào)。其中編碼實(shí)施所描述的 操作實(shí)施例的代碼的設(shè)備可以包括計(jì)算機(jī)可讀介質(zhì)或硬件邏輯。當(dāng)然, 本領(lǐng)域的普通技術(shù)人員將認(rèn)識(shí)到在不脫離本發(fā)明的范圍的情況下可以 對(duì)此配置進(jìn)行多種修改,制造物品可以包括在現(xiàn)有技術(shù)中公知的適當(dāng) 信息承載介質(zhì)。
在所描述的實(shí)施例中,用于在高速緩存內(nèi)存儲(chǔ)數(shù)據(jù)的條目的數(shù)據(jù) 結(jié)構(gòu)包括LRU列表或時(shí)鐘。在替代實(shí)施例中,可以使用其它適當(dāng)數(shù) 據(jù)結(jié)構(gòu)存儲(chǔ)信息的條目以管理高速緩存內(nèi)的數(shù)據(jù)。而且,在所描述的 實(shí)施例中,用于存儲(chǔ)條目的數(shù)據(jù)結(jié)構(gòu)具有同一類(lèi)型,例如LRU列表、 時(shí)鐘。在替代實(shí)施例中,用于存儲(chǔ)高速緩存條目的多個(gè)數(shù)據(jù)結(jié)構(gòu)可以 是混合類(lèi)型的。
術(shù)語(yǔ)"實(shí)施例"、"一個(gè)實(shí)施例"、"多個(gè)實(shí)施例"、"該實(shí)施例"、"所 述實(shí)施例"、"一個(gè)或多個(gè)實(shí)施例"、"一些實(shí)施例"是指"本發(fā)明的 一個(gè)或多個(gè)(但并非全部的)實(shí)施例",除非另有具體表述。
術(shù)語(yǔ)"包括"、"包含"、"具有"及其變型是指"包括但是不限于", 除非另有具體表述。
項(xiàng)目的枚舉列表并不暗示任意或全部項(xiàng)目是相互排除的,除非另 有具體表述。
術(shù)語(yǔ)"一個(gè),,以及"該"是指"一個(gè)或多個(gè),,,除非另有具體表述。
變量"n,,和"m"當(dāng)用于表示元素的可變數(shù)量時(shí)可以表示元素的任 意數(shù)量的實(shí)例,并且當(dāng)用于不同的元素時(shí)可以表示不同的整數(shù)。
相互通信的設(shè)備不需要相互連續(xù)地通信,除非另有具體表述。此
外,相互通信的設(shè)備可以通過(guò)一個(gè)或多個(gè)中介直接或間接地通信。
具有相互通信的若干組件的實(shí)施例的描述并不暗示需要所有這 些組件。相反,描述多種可選組件以說(shuō)明本發(fā)明的各種可能的實(shí)施例。 此外,盡管順序地描述了處理步驟、方法步驟、算法等,也可以 以替代的順序配置這些處理、方法和算法以工作。換句話說(shuō),可描述 的任意順序的步驟并不必然表示以該順序執(zhí)行這些步驟的要求??梢?以任何實(shí)際的順序執(zhí)行在此所述的處理步驟。此外,可以同時(shí)執(zhí)行一 些步驟。
當(dāng)在此描述單個(gè)設(shè)備或物品時(shí),顯然可以使用多個(gè)設(shè)備/物品(無(wú) 論它們是否協(xié)作)替代單個(gè)設(shè)備/物品。類(lèi)似地,在此描述多個(gè)設(shè)備或 物品時(shí)(無(wú)論它們是否寫(xiě)作),顯然可以使用單個(gè)設(shè)備/物品替代多個(gè) 設(shè)備或物品或者可以使用不同數(shù)量的設(shè)備/物品替代所描述數(shù)量的設(shè) 備或程序。通過(guò)未明確描述為具有某功能/特征的一個(gè)或多個(gè)其它設(shè)備 可以替代地實(shí)施該設(shè)備的功能和/或特征。因而,本發(fā)明的其它實(shí)施例 不需要包括設(shè)備本身。
圖4和圖7的圖示操作說(shuō)明以某個(gè)順序出現(xiàn)的某些事件。在替代 實(shí)施例中,可以以不同的順序執(zhí)行、修改或刪除某些操作。而且,可 以將步驟添加到上述邏輯,并依然符合所描述的實(shí)施例。此外,在此 所描述的操作可以順序地出現(xiàn),或者可以并行地處理某些操作。另外, 可以通過(guò)單個(gè)處理單元或者通過(guò)分布式處理單元執(zhí)行操作。
已經(jīng)為了說(shuō)明和描述的目的介紹了本發(fā)明的上述各種實(shí)施例的 描述。將不是詳盡的,或者將本發(fā)明的限制為所公開(kāi)的具體形式。在 上述教導(dǎo)之下可以進(jìn)行多種修改和變化。本發(fā)明的范圍將不由該詳細(xì) 描述而由權(quán)利要求來(lái)限制。上述描述、實(shí)例和數(shù)據(jù)提供制造物的完整 描述和本發(fā)明的組成的使用。因?yàn)樵诓幻撾x本發(fā)明的精神和范圍的情 況下,可以實(shí)現(xiàn)本發(fā)明的多種實(shí)施例,所以本發(fā)明的范圍由權(quán)利要求 書(shū)來(lái)限定。
權(quán)利要求
1.一種方法,包括提供多個(gè)數(shù)據(jù)結(jié)構(gòu),每個(gè)具有識(shí)別從第一計(jì)算機(jī)可讀介質(zhì)添加到第二計(jì)算機(jī)可讀介質(zhì)的數(shù)據(jù)的條目;接收對(duì)第一計(jì)算機(jī)可讀介質(zhì)中數(shù)據(jù)的請(qǐng)求;確定在數(shù)據(jù)結(jié)構(gòu)之一中是否存在用于所請(qǐng)求數(shù)據(jù)的條目;響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中不存在用于所請(qǐng)求數(shù)據(jù)的條目,從第一計(jì)算機(jī)可讀介質(zhì)檢索所請(qǐng)求的數(shù)據(jù)以存儲(chǔ)在第二計(jì)算機(jī)可讀介質(zhì)中;響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中不存在用于所請(qǐng)求數(shù)據(jù)的條目,選擇數(shù)據(jù)結(jié)構(gòu)之一;和將用于所檢索數(shù)據(jù)的條目添加到選定數(shù)據(jù)結(jié)構(gòu)。
2. 權(quán)利要求1的方法,其中選擇數(shù)據(jù)結(jié)構(gòu)之一包括隨機(jī)地選擇 數(shù)據(jù)結(jié)構(gòu)之一。
3. 權(quán)利要求l的方法,還包括響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中不存在用于所請(qǐng)求數(shù)據(jù)的條目,確 定第二計(jì)算機(jī)可讀介質(zhì)是否具有可用于存儲(chǔ)所檢索的所請(qǐng)求數(shù)據(jù)的空間;響應(yīng)于確定第二計(jì)算機(jī)可讀介質(zhì)不具有可用空間,從數(shù)據(jù)結(jié)構(gòu)之 一中選擇一個(gè)條目;使用于選定條目的數(shù)據(jù)從第二計(jì)算機(jī)可讀介質(zhì)中降級(jí)。
4. 權(quán)利要求3的方法,其中響應(yīng)于確定第二計(jì)算機(jī)可讀介質(zhì)不 具有可用空間、從數(shù)據(jù)結(jié)構(gòu)之一中選擇一個(gè)條目包括確定具有最舊條目的數(shù)據(jù)結(jié)構(gòu)之一,其中選定條目包括在所確定 數(shù)據(jù)結(jié)構(gòu)中的最舊條目。
5. 權(quán)利要求3的方法,其中響應(yīng)于確定第二計(jì)算機(jī)可讀介質(zhì)不 具有可用空間、從數(shù)據(jù)結(jié)構(gòu)之一中選擇一個(gè)條目包括選擇數(shù)據(jù)結(jié)構(gòu)的隨機(jī)子集;和 從選定隨機(jī)子集中選擇一個(gè)數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)的最舊條目不 新于選定子集中任何其它數(shù)據(jù)結(jié)構(gòu)中的最舊條目。
6. 權(quán)利要求l的方法,其中數(shù)據(jù)結(jié)構(gòu)包括最近最少使用(LRU) 列表,并且其中添加用于所檢索數(shù)據(jù)的條目包括將條目添加到選定 LRU列表的最近最常使用(MRU)端。
7. 權(quán)利要求1的方法,其中數(shù)據(jù)結(jié)構(gòu)包括時(shí)鐘,其中每個(gè)時(shí)鐘 具有在列表中彼此相鄰的頭部和尾部條目,并且其中添加用于所檢索 數(shù)據(jù)的條目包括將條目添加到選定時(shí)鐘的頭部條目。
8. 權(quán)利要求7的方法,其中時(shí)鐘內(nèi)的條目表示該條目是否被訪 問(wèn)過(guò),還包括響應(yīng)于確定在時(shí)鐘之一中沒(méi)有用于所請(qǐng)求數(shù)據(jù)的條目,確定第二 計(jì)算機(jī)可讀介質(zhì)是否具有可用空間以存儲(chǔ)所檢索的所請(qǐng)求數(shù)據(jù); 選擇時(shí)鐘之一;確定時(shí)鐘內(nèi)被表示為尚未被訪問(wèn)的一個(gè)條目;和 使用于所確定條目的數(shù)據(jù)從第二計(jì)算機(jī)可讀介質(zhì)中降級(jí)。
9. 一種方法,包括提供多個(gè)數(shù)據(jù)結(jié)構(gòu),每個(gè)具有識(shí)別從第一計(jì)算機(jī)可讀介質(zhì)添加到 第二計(jì)算機(jī)可讀介質(zhì)的數(shù)據(jù)的條目;接收對(duì)第 一計(jì)算機(jī)可讀介質(zhì)中的數(shù)據(jù)的請(qǐng)求; 確定在數(shù)據(jù)結(jié)構(gòu)之一中是否存在用于所請(qǐng)求數(shù)據(jù)的條目; 響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中存在用于所請(qǐng)求數(shù)據(jù)的一個(gè)條目,針對(duì)該數(shù)據(jù)請(qǐng)求從第二計(jì)算機(jī)可讀介質(zhì)訪問(wèn)所請(qǐng)求的數(shù)據(jù);響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中存在用于所請(qǐng)求數(shù)據(jù)的一個(gè)條目,選擇數(shù)據(jù)結(jié)構(gòu)之一;和響應(yīng)于確定存在用于所請(qǐng)求數(shù)據(jù)的一個(gè)條目,將確定的用于所請(qǐng)求數(shù)據(jù)的條目移動(dòng)到選定的數(shù)據(jù)結(jié)構(gòu)。
10. 權(quán)利要求9的方法,其中響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中存在 所請(qǐng)求數(shù)據(jù)的一個(gè)條目,隨機(jī)地選擇數(shù)據(jù)結(jié)構(gòu)。
11. 權(quán)利要求9的方法,其中每個(gè)數(shù)據(jù)結(jié)構(gòu)是一組數(shù)據(jù)結(jié)構(gòu)的成員,所述數(shù)據(jù)結(jié)構(gòu)包括下述之一最近最少使用(LRU)列表和時(shí)鐘 數(shù)據(jù)結(jié)構(gòu)。
12. —種與笫一計(jì)算機(jī)可讀介質(zhì)通信的系統(tǒng),包括 至少一個(gè)處理器;第二計(jì)算機(jī)可讀介質(zhì);多個(gè)數(shù)據(jù)結(jié)構(gòu),每個(gè)具有識(shí)別從第一計(jì)算機(jī)可讀介質(zhì)添加到第二 計(jì)算機(jī)可讀介質(zhì)的數(shù)據(jù)的條目;管理對(duì)第二計(jì)算機(jī)可讀介質(zhì)的訪問(wèn)的高速緩存管理器,其能夠執(zhí)行操作,所述操作包括提供多個(gè)數(shù)據(jù)結(jié)構(gòu),每個(gè)具有識(shí)別從第一計(jì)算機(jī)可讀介質(zhì)添加到 第二計(jì)算機(jī)可讀介質(zhì)的數(shù)據(jù)的條目;從一個(gè)處理器接收對(duì)第一計(jì)算機(jī)可讀介質(zhì)中數(shù)據(jù)的請(qǐng)求; 確定在數(shù)據(jù)結(jié)構(gòu)之一中是否存在用于所請(qǐng)求數(shù)據(jù)的條目; 響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中不存在用于所請(qǐng)求數(shù)據(jù)的條目,從 第一計(jì)算機(jī)可讀介質(zhì)檢索所請(qǐng)求的數(shù)據(jù)以存儲(chǔ)在第二計(jì)算機(jī)可讀介質(zhì)中;響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中不存在用于所請(qǐng)求數(shù)據(jù)的條目,選 擇數(shù)據(jù)結(jié)構(gòu)之一;和將用于所檢索數(shù)據(jù)的條目添加到選定數(shù)據(jù)結(jié)構(gòu)。
13. 權(quán)利要求12的系統(tǒng),其中由高速緩存管理器執(zhí)行的操作還包括響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中不存在用于所請(qǐng)求數(shù)據(jù)的條目,確 定第二計(jì)算機(jī)可讀介質(zhì)是否具有可用于存儲(chǔ)所檢索的所請(qǐng)求數(shù)據(jù)的空間;響應(yīng)于確定第二計(jì)算機(jī)可讀介質(zhì)不具有可用空間,從數(shù)據(jù)結(jié)構(gòu)之一中選擇一個(gè)條目;使用于選定條目的數(shù)據(jù)從第二計(jì)算機(jī)可讀介質(zhì)中降級(jí)。
14. 權(quán)利要求13的系統(tǒng),其中響應(yīng)于確定第二計(jì)算機(jī)可讀介質(zhì) 不具有可用空間、從數(shù)據(jù)結(jié)構(gòu)之一中選擇一個(gè)條目包括 選擇數(shù)據(jù)結(jié)構(gòu)的隨機(jī)子集;和從選定隨機(jī)子集中選擇一個(gè)數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)的最舊條目不 新于選定子集中任何其它數(shù)據(jù)結(jié)構(gòu)中的最舊條目。
15. 權(quán)利要求12的系統(tǒng),其中數(shù)據(jù)結(jié)構(gòu)包括最近最少使用(LRU) 列表,并且其中添加用于所檢索數(shù)據(jù)的條目包括將條目添加到選定 LRU列表的最近最常使用(MRU)端。
16. 權(quán)利要求12的系統(tǒng),其中數(shù)據(jù)結(jié)構(gòu)包括時(shí)鐘,其中每個(gè)時(shí) 鐘包括在列表中彼此相鄰的頭部和尾部條目,并且其中添加用于所檢 索數(shù)據(jù)的條目包括將條目添加到選定時(shí)鐘的頭部條目。
17. 權(quán)利要求16的系統(tǒng),其中時(shí)鐘內(nèi)的條目表示條目是否被訪 問(wèn)過(guò),并且其中由高速緩存管理器執(zhí)行的操作還包括響應(yīng)于確定在時(shí)鐘之一中沒(méi)有用于所請(qǐng)求數(shù)據(jù)的條目,確定第二 計(jì)算機(jī)可讀介質(zhì)是否具有可用空間以存儲(chǔ)所檢索的所請(qǐng)求數(shù)據(jù); 選擇時(shí)鐘之一;確定時(shí)鐘內(nèi)被表示為尚未被訪問(wèn)的一個(gè)條目;和 使用于所確定條目的數(shù)據(jù)從第二計(jì)算機(jī)可讀介質(zhì)中降級(jí)。
18. —種與第一計(jì)算機(jī)可讀介質(zhì)通信的系統(tǒng),包括 至少一個(gè)處理器;第二計(jì)算機(jī)可讀介質(zhì);多個(gè)數(shù)據(jù)結(jié)構(gòu),每個(gè)具有識(shí)別從第一計(jì)算機(jī)可讀介質(zhì)添加到第二 計(jì)算機(jī)可讀介質(zhì)的數(shù)據(jù)的條目;管理對(duì)第二計(jì)算機(jī)可讀介質(zhì)的訪問(wèn)的高速緩存管理器,其能夠執(zhí)行操作,所述操作包括從處理器接收對(duì)第一計(jì)算機(jī)可讀介質(zhì)中的數(shù)據(jù)的請(qǐng)求; 確定在數(shù)據(jù)結(jié)構(gòu)之一中是否存在用于所請(qǐng)求數(shù)據(jù)的條目; 響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中存在用于所請(qǐng)求數(shù)據(jù)的一個(gè)條目,針對(duì)該數(shù)據(jù)請(qǐng)求從第二計(jì)算機(jī)可讀介質(zhì)訪問(wèn)所請(qǐng)求的數(shù)據(jù);響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中存在所請(qǐng)求數(shù)據(jù)的一個(gè)條目,選擇數(shù)據(jù)結(jié)構(gòu)之一;和 響應(yīng)于確定存在用于所請(qǐng)求數(shù)據(jù)的一個(gè)條目,將確定的用于所請(qǐng) 求數(shù)據(jù)的條目移動(dòng)到選定的數(shù)據(jù)結(jié)構(gòu)。
19. 一種執(zhí)行代碼的制造物品,其中該代碼使執(zhí)行操作以訪問(wèn)第 一計(jì)算機(jī)可讀介質(zhì)和第二計(jì)算機(jī)可讀介質(zhì),該操作包括用于執(zhí)行根據(jù) 權(quán)利要求1 _ 11中任一權(quán)利要求的方法中的步驟的指令。
全文摘要
提供用于使用多個(gè)數(shù)據(jù)結(jié)構(gòu)管理高速緩存中的數(shù)據(jù)的方法、系統(tǒng)和程序。多個(gè)數(shù)據(jù)結(jié)構(gòu),每個(gè)具有識(shí)別從第一計(jì)算機(jī)可讀介質(zhì)添加到第二計(jì)算機(jī)可讀介質(zhì)的數(shù)據(jù)的條目。接收對(duì)第一計(jì)算機(jī)可讀介質(zhì)中數(shù)據(jù)的請(qǐng)求。確定在數(shù)據(jù)結(jié)構(gòu)之一中是否存在用于所請(qǐng)求數(shù)據(jù)的條目。響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中不存在用于所請(qǐng)求數(shù)據(jù)的條目,從第一計(jì)算機(jī)可讀介質(zhì)檢索所請(qǐng)求的數(shù)據(jù)以存儲(chǔ)在第二計(jì)算機(jī)可讀介質(zhì)中。響應(yīng)于確定在數(shù)據(jù)結(jié)構(gòu)之一中不存在用于所請(qǐng)求數(shù)據(jù)的條目,選擇數(shù)據(jù)結(jié)構(gòu)之一,并將用于所檢索數(shù)據(jù)的條目添加到選定數(shù)據(jù)結(jié)構(gòu)。
文檔編號(hào)G06F17/30GK101110061SQ200710102599
公開(kāi)日2008年1月23日 申請(qǐng)日期2007年5月16日 優(yōu)先權(quán)日2006年7月20日
發(fā)明者畢尼·謝爾·吉爾, 約瑟夫·S.·海德二世, 達(dá)蒙德拉·S.·莫哈, 邁克爾·T.·本哈斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司