高速緩存信息的系統(tǒng)及方法
【專利說(shuō)明】高速緩存信息的系統(tǒng)及方法
[0001] 本申請(qǐng)為2012年4月19日提交的申請(qǐng)?zhí)枮?01080047230. 3且發(fā)明名稱為"高速 緩存信息的系統(tǒng)及方法"的專利申請(qǐng)的分案申請(qǐng)。
[0002] 相關(guān)申請(qǐng)的交叉引用
[0003] 本申請(qǐng)要求了 2009年8月21日提交的、申請(qǐng)?zhí)枮?2/545, 225、發(fā)明名稱為"高速 緩存信息的系統(tǒng)和方法"的權(quán)益,其全部公開(kāi)內(nèi)容通過(guò)參考包括于此。
【背景技術(shù)】
[0004] 通常,在具有處理器的系統(tǒng)中提供高速緩存來(lái)存儲(chǔ)信息項(xiàng)目,從而相比于不存在 高速緩存以較低的"代價(jià)"通過(guò)處理器訪問(wèn)信息項(xiàng)目。例如,系統(tǒng)可構(gòu)造為相比于其他存儲(chǔ) 器,處理器可以更快地從一個(gè)存儲(chǔ)器中獲取數(shù)據(jù)或程序指令。這個(gè)存儲(chǔ)器可以用作高速緩 存以便保存在其他存儲(chǔ)器中的經(jīng)常被訪問(wèn)的信息可以復(fù)制到高速緩存中從而從高速緩存 中訪問(wèn)。另外,高速緩存的使用可以幫助減少當(dāng)信息項(xiàng)目是本地可用時(shí)的處理器和內(nèi)部系 統(tǒng)元件如存儲(chǔ)器或輸入-輸出接口之間的內(nèi)部數(shù)據(jù)流量,以及減少當(dāng)信息不是本地可用時(shí) 的系統(tǒng)和遠(yuǎn)程系統(tǒng)之間的外部數(shù)據(jù)流量。
[0005] 高速緩存經(jīng)常太小而不能存儲(chǔ)處理器可能需要的所有信息。因此,當(dāng)要確定將哪 些信息存儲(chǔ)在高速緩存中時(shí),基于高速緩存的系統(tǒng)典型地需要有選擇能力。例如,處理器可 能反復(fù)地和經(jīng)常地訪問(wèn)十個(gè)不同的信息項(xiàng)目,但是高速緩存可能只能存儲(chǔ)五個(gè)。
[0006] 已經(jīng)存在各種不同的算法來(lái)確定何時(shí)需將項(xiàng)目存儲(chǔ)在高速緩存中。例如,一些現(xiàn) 有的系統(tǒng)自動(dòng)地將最近使用的信息存儲(chǔ)在高速緩存中。如果處理器最近處理過(guò)十個(gè)項(xiàng)目而 高速緩存可以存儲(chǔ)五個(gè),那么將最后五個(gè)離散項(xiàng)目存儲(chǔ)在高速緩存中,而不管這些項(xiàng)目的 使用頻率如何。
【發(fā)明內(nèi)容】
[0007] -方面,提供一種方法,包括:在處理器處接收對(duì)信息項(xiàng)目進(jìn)行處理的請(qǐng)求,其中 所述處理器具有相關(guān)的高速緩存;當(dāng)所述項(xiàng)目存儲(chǔ)在所述高速緩存中時(shí),從所述高速緩存 中檢索被請(qǐng)求的項(xiàng)目;當(dāng)所述項(xiàng)目不存儲(chǔ)在所述高速緩存中時(shí),從其他存儲(chǔ)器中檢索被請(qǐng) 求的項(xiàng)目;當(dāng)所述項(xiàng)目在預(yù)定期間內(nèi)未被之前請(qǐng)求過(guò)時(shí),處理所述項(xiàng)目而不將所述項(xiàng)目存 儲(chǔ)在所述高速緩存中;當(dāng)所述項(xiàng)目在預(yù)定期間內(nèi)已被之前請(qǐng)求過(guò)且所述預(yù)先請(qǐng)求的時(shí)間比 對(duì)存儲(chǔ)在所述高速緩存中的一組項(xiàng)目的每個(gè)項(xiàng)目的最近請(qǐng)求都早時(shí),處理所述項(xiàng)目而不將 所述項(xiàng)目存儲(chǔ)在所述高速緩存中;以及當(dāng)所述項(xiàng)目在預(yù)定期間內(nèi)已被之前請(qǐng)求過(guò)且所述之 前請(qǐng)求的時(shí)間比對(duì)存儲(chǔ)在所述高速緩存中的一組項(xiàng)目的至少一個(gè)項(xiàng)目的最近請(qǐng)求晚時(shí),處 理所述項(xiàng)目且將所述項(xiàng)目存儲(chǔ)在所述高速緩存中。
[0008] 另一方面,提供一種方法,包括:接收對(duì)電子存儲(chǔ)的信息的第一項(xiàng)目的當(dāng)前請(qǐng)求, 所述第一項(xiàng)目存儲(chǔ)在第一存儲(chǔ)器中;當(dāng)所述第一項(xiàng)目也存儲(chǔ)在第二存儲(chǔ)器中時(shí),從所述第 二存儲(chǔ)器中提供所述第一項(xiàng)目;當(dāng)所述第一項(xiàng)目不存儲(chǔ)在所述第二存儲(chǔ)器中時(shí),從所述第 一存儲(chǔ)器中提供所述第一項(xiàng)目;使用處理器確定所述第一項(xiàng)目是否已在預(yù)定時(shí)間段內(nèi)被之 前請(qǐng)求過(guò);當(dāng)確定所述第一項(xiàng)目已被之前請(qǐng)求過(guò)時(shí),使用處理器確定與所述第一項(xiàng)目相關(guān) 的第一持續(xù)時(shí)間,其中所述第一持續(xù)時(shí)間為對(duì)所述第一項(xiàng)目的當(dāng)前請(qǐng)求和對(duì)所述第一項(xiàng)目 的之前請(qǐng)求之間的持續(xù)時(shí)間;使用處理器確定存儲(chǔ)在所述第二存儲(chǔ)器中的一組之前請(qǐng)求過(guò) 的第二項(xiàng)目的每個(gè)項(xiàng)目的第二持續(xù)時(shí)間,其中第二值為對(duì)所述第一項(xiàng)目的當(dāng)前請(qǐng)求和對(duì)所 述第二項(xiàng)目的最后請(qǐng)求之間的持續(xù)時(shí)間;以及當(dāng)所述第一項(xiàng)目已被之前請(qǐng)求過(guò)且所述第 一持續(xù)時(shí)間短于所述第二持續(xù)時(shí)間的至少一個(gè)時(shí),將所述第一項(xiàng)目存儲(chǔ)在所述第二存儲(chǔ)器 中。
[0009] 又另一種方法,涉及:接收對(duì)電子存儲(chǔ)的信息的第一項(xiàng)目的請(qǐng)求;當(dāng)所述第一項(xiàng) 目在預(yù)定時(shí)間段內(nèi)未被之前請(qǐng)求過(guò)時(shí),從第一存儲(chǔ)器中提供所述第一項(xiàng)目并不將所述第一 項(xiàng)目存儲(chǔ)在第二存儲(chǔ)器中;當(dāng)所述第一項(xiàng)目存儲(chǔ)在所述第二存儲(chǔ)器中時(shí),從所述第二存儲(chǔ) 器中提供所述第一項(xiàng)目,所述第二存儲(chǔ)器還存儲(chǔ)多個(gè)其他項(xiàng)目,所述多個(gè)其他項(xiàng)目的每個(gè) 至少被之前請(qǐng)求過(guò)兩次;當(dāng)所述第一項(xiàng)目在預(yù)定時(shí)間段內(nèi)未被之前請(qǐng)求過(guò)時(shí),從所述第一 存儲(chǔ)器中提供所述第一項(xiàng)目而不將所述第一項(xiàng)目存儲(chǔ)在所述第二存儲(chǔ)器中;當(dāng)已經(jīng)確定所 述第一項(xiàng)目被之前請(qǐng)求過(guò)時(shí),使用處理器確定與所述第一項(xiàng)目相關(guān)的第一值,其中所述第 一值基于對(duì)所述第一項(xiàng)目的之前請(qǐng)求之間的持續(xù)時(shí)間;使用處理器確定與存儲(chǔ)在所述第二 存儲(chǔ)器中的一組之前請(qǐng)求過(guò)的第二項(xiàng)目中的各個(gè)項(xiàng)目相關(guān)的第二值,其中所述第二值基于 對(duì)所述第一項(xiàng)目的當(dāng)前請(qǐng)求和對(duì)所述第二項(xiàng)目的最后請(qǐng)求之間的持續(xù)時(shí)間;以及當(dāng)所述第 一項(xiàng)目在預(yù)定時(shí)間段內(nèi)已被之前請(qǐng)求過(guò)時(shí),基于所述第一值和所述第二值的比較結(jié)果,從 所述第一存儲(chǔ)器中提供所述第一項(xiàng)目并將所述第一項(xiàng)目存儲(chǔ)在所述第二存儲(chǔ)器中。
[0010] 另一個(gè)方面提供一種系統(tǒng),包括:高速緩存,所述高速緩存被配置為用于存儲(chǔ)信息 項(xiàng)目;其他存儲(chǔ)器,所述其他存儲(chǔ)器被配置為用于存儲(chǔ)信息項(xiàng)目;以及處理器,所述處理器 被配置為用于根據(jù)指令在所述高速緩存中檢索和存儲(chǔ)項(xiàng)目并將所述項(xiàng)目提供至請(qǐng)求裝置。 響應(yīng)于來(lái)自所述請(qǐng)求裝置的對(duì)被請(qǐng)求項(xiàng)目的請(qǐng)求,所述指令包括:當(dāng)所述被請(qǐng)求的項(xiàng)目存 儲(chǔ)在所述高速緩存中時(shí),從所述高速緩存中檢索所述被請(qǐng)求的項(xiàng)目;當(dāng)所述被請(qǐng)求的項(xiàng)目 不存儲(chǔ)在所述高速緩存中,從所述其他存儲(chǔ)器中檢索所述被請(qǐng)求的項(xiàng)目;當(dāng)所述項(xiàng)目在預(yù) 定期間內(nèi)未被之前請(qǐng)求過(guò)時(shí),將所述被請(qǐng)求的項(xiàng)目提供至所述請(qǐng)求裝置,并在下一個(gè)請(qǐng)求 之前不將所述被請(qǐng)求的項(xiàng)目存儲(chǔ)在所述高速緩存中;當(dāng)所述項(xiàng)目在預(yù)定期間內(nèi)已被之前請(qǐng) 求過(guò)且所述之前請(qǐng)求的時(shí)間比存儲(chǔ)在所述高速緩存中的一組項(xiàng)目的每個(gè)項(xiàng)目的最后請(qǐng)求 實(shí)際都早時(shí),將所述被請(qǐng)求的項(xiàng)目提供至所述請(qǐng)求裝置,并在下一個(gè)請(qǐng)求之前不將所述被 請(qǐng)求的項(xiàng)目存儲(chǔ)在所述高速緩存中;以及當(dāng)所述項(xiàng)目在預(yù)定期間內(nèi)已被之前請(qǐng)求過(guò)且所述 之前請(qǐng)求的時(shí)間比存儲(chǔ)在所述高速緩存中的一組項(xiàng)目的至少一個(gè)項(xiàng)目的最后請(qǐng)求時(shí)間晚 時(shí),將所述被請(qǐng)求的項(xiàng)目提供至所述請(qǐng)求裝置且將在下一個(gè)請(qǐng)求之間將所述被請(qǐng)求的項(xiàng)目 存儲(chǔ)在所述高速緩存中。
[0011] 另一種系統(tǒng)可包括:處理器,所述處理器被配置為用于根據(jù)指令在緩存器中檢索 和存儲(chǔ)項(xiàng)目。它還可包括:第一存儲(chǔ)器,所述第一存儲(chǔ)器具有第一容量和第一訪問(wèn)時(shí)間(其 中,訪問(wèn)時(shí)間表示所述處理器從存儲(chǔ)器中獲取信息所花費(fèi)的平均時(shí)間);第二存儲(chǔ)器,所述 第二存儲(chǔ)器具有比所述第一存儲(chǔ)器更大的容量和更慢的訪問(wèn)時(shí)間;以及第三存儲(chǔ)器,所述 第三存儲(chǔ)器具有比所述第二存儲(chǔ)器更大的容量和更慢的訪問(wèn)時(shí)間。響應(yīng)于與通過(guò)所述處理 器接收到的對(duì)所述項(xiàng)目的請(qǐng)求,所述指令可包括:當(dāng)被請(qǐng)求的項(xiàng)目存儲(chǔ)在所述第一存儲(chǔ)器 中時(shí),從所述第一存儲(chǔ)器中檢索所述被請(qǐng)求的項(xiàng)目;當(dāng)所述被請(qǐng)求的項(xiàng)目存儲(chǔ)在所述第二 存儲(chǔ)器中時(shí),從所述第二存儲(chǔ)器中檢索所述被請(qǐng)求的項(xiàng)目;當(dāng)所述被請(qǐng)求的項(xiàng)目存儲(chǔ)在所 述第三存儲(chǔ)器中時(shí),從所述第三存儲(chǔ)器中檢索所述被請(qǐng)求的項(xiàng)目;根據(jù)所述項(xiàng)目在所述請(qǐng) 求的時(shí)間點(diǎn)是否存儲(chǔ)在所述第二存儲(chǔ)器中以及從所述項(xiàng)目被請(qǐng)求的最后時(shí)間開(kāi)始所逝去 的時(shí)間是否小于最后逐出持續(xù)時(shí)間,將所述被請(qǐng)求的項(xiàng)目存儲(chǔ)在所述第一存儲(chǔ)器中,其中 所述最后逐出持續(xù)時(shí)間包括從對(duì)最近被逐出的項(xiàng)目在仍然存儲(chǔ)在所述第一存儲(chǔ)器中時(shí)的 最后請(qǐng)求開(kāi)始到最近被逐出的項(xiàng)目從第一存儲(chǔ)器中逐出為止的持續(xù)時(shí)間;根據(jù)所述項(xiàng)目在 所述請(qǐng)求的時(shí)間點(diǎn)是否存儲(chǔ)在所述第二存儲(chǔ)器中以及所述項(xiàng)目是否為從所述第三存儲(chǔ)器 中檢索,將所述被請(qǐng)求的項(xiàng)目存儲(chǔ)在所述第二存儲(chǔ)器中。
【附圖說(shuō)明】
[0012] 圖1為根據(jù)本發(fā)明一方面的服務(wù)器和客戶端裝置的系統(tǒng)的功能框圖;
[0013] 圖2為根據(jù)本發(fā)明一方面的計(jì)算機(jī)芯片和指令存儲(chǔ)的功能框圖;
[0014] 圖3為根據(jù)本發(fā)明一方面的服務(wù)器和客戶端裝置的多級(jí)系統(tǒng)的功能框圖;
[0015] 圖4為根據(jù)本發(fā)明一方面的計(jì)算機(jī)的功能框圖;
[0016] 圖5為根據(jù)本發(fā)明一方面的流程圖;以及
[0017] 圖6為根據(jù)本發(fā)明一方面的流程圖。
【具體實(shí)施方式】
[0018] 根據(jù)本發(fā)明的一方面,基于當(dāng)前請(qǐng)求的信息項(xiàng)目是否已被之前請(qǐng)求過(guò),以及如果 當(dāng)前請(qǐng)求的信息項(xiàng)目已被之前請(qǐng)求過(guò)則基于之前請(qǐng)求的時(shí)間,確定當(dāng)前請(qǐng)求的信息項(xiàng)目是 否存儲(chǔ)在高速緩存中。特別地,如果項(xiàng)目從未被之前請(qǐng)求過(guò),則項(xiàng)目不存儲(chǔ)在高速緩存中 (其中"從未"可表不預(yù)定時(shí)間段,例如"在24小時(shí)內(nèi)從