專(zhuān)利名稱(chēng):自適應(yīng)高速緩存的制作方法
背景技術(shù)領(lǐng)域:
本公開(kāi)涉及用于自適應(yīng)高速緩存的技術(shù)。
2、相關(guān)領(lǐng)域描述網(wǎng)絡(luò)附屬存儲(chǔ)(NAS)設(shè)備具有由幾種原因造成的延遲。這些延遲包括網(wǎng)絡(luò)路由器和子網(wǎng)。這些延遲與傳統(tǒng)的延遲相耦合,所述傳統(tǒng)延遲與任何存儲(chǔ)系統(tǒng)中的不同訪問(wèn)模式分配和定位相關(guān)聯(lián)。
常規(guī)的存儲(chǔ)平臺(tái)使用先來(lái)先服務(wù)(FCFS)技術(shù)以用于處理網(wǎng)絡(luò)請(qǐng)求。有時(shí),I/O處理器基于盤(pán)頭位置使用電梯調(diào)度來(lái)處理I/O請(qǐng)求。也就是說(shuō),對(duì)同一盤(pán)頭位置處的數(shù)據(jù)塊的I/O請(qǐng)求被同時(shí)處理。
常規(guī)的I/O處理器通常忽略接收I/O請(qǐng)求所跨越的幾何距離。代替地,常規(guī)的I/O處理器僅對(duì)于吞吐量(每秒的I/O數(shù))被最優(yōu)化。
因此,在本領(lǐng)域中需要改進(jìn)高速緩存和I/O請(qǐng)求處理技術(shù)。
附圖簡(jiǎn)述現(xiàn)在參考附圖,其中相同的附圖標(biāo)記始終表示相應(yīng)的部分。
圖1A示出了實(shí)現(xiàn)特定實(shí)施例的計(jì)算環(huán)境;圖1B示出了可以實(shí)現(xiàn)特定實(shí)施例的計(jì)算環(huán)境的進(jìn)一步的細(xì)節(jié);圖2A示出了根據(jù)特定實(shí)施例的存儲(chǔ)機(jī)架;圖2B示出了根據(jù)特定實(shí)施例的存儲(chǔ)子系統(tǒng)的進(jìn)一步的細(xì)節(jié);圖2C示出了根據(jù)特定實(shí)施例的I/O處理器的進(jìn)一步的細(xì)節(jié);圖2D示出了根據(jù)特定實(shí)施例的I/O處理器的地址空間使用的進(jìn)一步的細(xì)節(jié);圖3示出了貝葉斯定理的一般形式;圖4示出了根據(jù)實(shí)施例的概率計(jì)算;圖5A、5B、5C、5D和5E示出了根據(jù)特定實(shí)施例的高速緩存的操作;
圖6A和6B示出了根據(jù)特定實(shí)施例的非易失性寫(xiě)高速緩沖存儲(chǔ)器和易失性讀高速緩沖存儲(chǔ)器;圖7示出了根據(jù)特定實(shí)施例在高速緩存中為數(shù)據(jù)塊騰出空間所執(zhí)行的操作;以及圖8示出了計(jì)算機(jī)系統(tǒng)的一種實(shí)施例。
實(shí)施例的詳細(xì)描述在下面的描述中,參考構(gòu)成下文的一部分并且示出了幾種實(shí)施例的附圖。應(yīng)當(dāng)理解,可以采用其他實(shí)施例,并且在不脫離本發(fā)明的精神和范圍的情況下可以對(duì)結(jié)構(gòu)和操作進(jìn)行改變。
在特定實(shí)施例中,提供了硬件、固件和/或軟件來(lái)支持自適應(yīng)高速緩存技術(shù)以便對(duì)網(wǎng)絡(luò)附屬計(jì)算設(shè)備(例如客戶(hù)機(jī))所經(jīng)歷的等待時(shí)間進(jìn)行標(biāo)準(zhǔn)化,并且學(xué)習(xí)對(duì)應(yīng)于更為高效的預(yù)取的訪問(wèn)模式。特定實(shí)施例提供了一種用于執(zhí)行自適應(yīng)高速緩存的I/O處理器(IOP)。
圖1A示出了實(shí)現(xiàn)特定實(shí)施例的計(jì)算環(huán)境。各種計(jì)算設(shè)備102a、102b、102c、102d和102e經(jīng)由網(wǎng)絡(luò)176連接到存儲(chǔ)子系統(tǒng)140。例如,所述計(jì)算設(shè)備可以是位于阿拉斯加州安克雷奇的服務(wù)器102a、手持式個(gè)人計(jì)算機(jī)102b、位于伊利諾斯州芝加哥的服務(wù)器102c、位于數(shù)據(jù)中心的服務(wù)器102d以及位于德克薩斯州休斯頓的客戶(hù)機(jī)102e。例如,網(wǎng)絡(luò)176可以是局域網(wǎng)(LAN)、因特網(wǎng)、廣域網(wǎng)(WAN)、存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)、WiFi(電氣和電子工程師協(xié)會(huì)(IEEE)802.11b,于1999年9月16日公布)、無(wú)線LAN(IEEE 802.11b,于1999年9月16日公布)等等。也就是說(shuō),存儲(chǔ)子系統(tǒng)140連接到發(fā)出I/O請(qǐng)求的網(wǎng)絡(luò)附屬客戶(hù)機(jī)和服務(wù)器計(jì)算設(shè)備102a、102b、102c、102d和102e。
圖1B示出了可以實(shí)現(xiàn)特定實(shí)施例的計(jì)算環(huán)境的進(jìn)一步的細(xì)節(jié)。主機(jī)計(jì)算機(jī)103包括一個(gè)或多個(gè)中央處理單元(CPU)104、易失性存儲(chǔ)器106、非易失性存儲(chǔ)裝置108(例如磁盤(pán)驅(qū)動(dòng)器、光盤(pán)驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器等等)、操作系統(tǒng)110以及一個(gè)或多個(gè)網(wǎng)絡(luò)適配器128。操作系統(tǒng)110可以包括操作系統(tǒng)驅(qū)動(dòng)器,例如操作系統(tǒng)功率管理(OSPM)驅(qū)動(dòng)器111。此外,一個(gè)或多個(gè)存儲(chǔ)驅(qū)動(dòng)器120以及一個(gè)或多個(gè)應(yīng)用程序124在存儲(chǔ)器106中執(zhí)行,并且能夠經(jīng)由網(wǎng)絡(luò)176發(fā)送和接收來(lái)自遠(yuǎn)程存儲(chǔ)子系統(tǒng)140的分組。
主機(jī)計(jì)算機(jī)102e可以包括本領(lǐng)域中已知的任何計(jì)算設(shè)備,例如大型機(jī)、服務(wù)器、個(gè)人計(jì)算機(jī)、工作站、膝上型電腦、手持式計(jì)算機(jī)、電話設(shè)備、網(wǎng)絡(luò)器件、虛擬設(shè)備,存儲(chǔ)控制器等等。計(jì)算設(shè)備102a、102b、102c、102d和/或102e可以實(shí)現(xiàn)主機(jī)計(jì)算機(jī)104的體系結(jié)構(gòu)。可以使用本領(lǐng)域中已知的任何CPU104和操作系統(tǒng)110。作為存儲(chǔ)器管理操作的一部分,存儲(chǔ)器106中的程序和數(shù)據(jù)可以被交換到存儲(chǔ)裝置108中。
存儲(chǔ)子系統(tǒng)140包括連接到存儲(chǔ)通道240的存儲(chǔ)服務(wù)器200(即一種計(jì)算設(shè)備),該存儲(chǔ)通道240連接到一個(gè)或多個(gè)存儲(chǔ)設(shè)備230(例如作為獨(dú)立盤(pán)冗余陣列(RAID)系統(tǒng)的一部分的盤(pán)驅(qū)動(dòng)器)。存儲(chǔ)設(shè)備230也可以被稱(chēng)作I/O子系統(tǒng)230。
每個(gè)網(wǎng)絡(luò)適配器128包括在網(wǎng)絡(luò)適配器112的硬件中實(shí)現(xiàn)的各種組件。每個(gè)網(wǎng)絡(luò)適配器112能夠經(jīng)由網(wǎng)絡(luò)176發(fā)送和接收數(shù)據(jù)分組。
每個(gè)存儲(chǔ)驅(qū)動(dòng)器120在存儲(chǔ)器106中執(zhí)行并且包括特定于網(wǎng)絡(luò)適配器112的命令,以便與每個(gè)網(wǎng)絡(luò)適配器112進(jìn)行通信以及在操作系統(tǒng)110和每個(gè)網(wǎng)絡(luò)適配器112之間進(jìn)行接口。每個(gè)網(wǎng)絡(luò)適配器112或存儲(chǔ)驅(qū)動(dòng)器120實(shí)現(xiàn)用來(lái)處理分組的邏輯,例如用于處理包括在被包裹在傳輸層內(nèi)的分組中的消息內(nèi)容的傳輸協(xié)議層,比如傳輸控制協(xié)議(TCP)(Internet工程任務(wù)組(IETF)請(qǐng)求注釋(RFC)793,1981年9月公布)和/或因特網(wǎng)協(xié)議(IP)(IETF RFC 791,1981年9月公布)、因特網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口(iSCSI)(IETF RFC 3347,2003年2月公布)、光纖通道(IETF RFC 3643,2003年12月公布)或者本領(lǐng)域中已知的任何其他傳輸層協(xié)議。所述傳輸協(xié)議層對(duì)來(lái)自所接收的傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)分組的有效載荷進(jìn)行解包,并且把數(shù)據(jù)傳送到存儲(chǔ)驅(qū)動(dòng)器120以便返回到應(yīng)用程序124。此外,發(fā)送數(shù)據(jù)的應(yīng)用程序124把該數(shù)據(jù)發(fā)送到存儲(chǔ)驅(qū)動(dòng)器120,然后該存儲(chǔ)驅(qū)動(dòng)器120在經(jīng)由網(wǎng)絡(luò)176發(fā)送之前把該數(shù)據(jù)發(fā)送到傳輸協(xié)議層以便打包在TCP/IP分組中。
總線控制器134允許每個(gè)網(wǎng)絡(luò)適配器112在計(jì)算機(jī)總線160上進(jìn)行通信,該計(jì)算機(jī)總線160包括本領(lǐng)域已知的任何總線接口,比如周邊組件互連(PCI)總線(PCI專(zhuān)業(yè)興趣小組,PCI局域總線規(guī)格,Rev 2.3,2002年3月公布)、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)(美國(guó)國(guó)家標(biāo)準(zhǔn)化組織(ANSI)SCSI控制器命令-2(SCC-2)NCITS.3181998)、串行ATA(SATA 1.0a規(guī)格,2003年2月4日公布)等等。網(wǎng)絡(luò)適配器112包括用于實(shí)現(xiàn)物理通信層132的網(wǎng)絡(luò)協(xié)議,以便經(jīng)由網(wǎng)絡(luò)176發(fā)送網(wǎng)絡(luò)分組到遠(yuǎn)程數(shù)據(jù)存儲(chǔ)裝置以及接收來(lái)自遠(yuǎn)程數(shù)據(jù)存儲(chǔ)裝置的網(wǎng)絡(luò)分組。在特定實(shí)施例中,網(wǎng)絡(luò)適配器112可以實(shí)施以太網(wǎng)協(xié)議(IEEE標(biāo)準(zhǔn)802.3,2002年3月8日公布)、光纖通道(IETF RFC 3643,2003年12月公布)或者本領(lǐng)域中已知的任何其他網(wǎng)絡(luò)通信協(xié)議。
網(wǎng)絡(luò)適配器112包括輸入/輸出(I/O)控制器130。在特定實(shí)施例中,該I/O控制器130可以包括因特網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口(iSCSI控制器),可以理解,還可以使用其他類(lèi)型的網(wǎng)絡(luò)控制器,比如以太網(wǎng)介質(zhì)訪問(wèn)控制器(MAC)或者網(wǎng)絡(luò)接口控制器(NIC)或卡。
存儲(chǔ)器108可以包括內(nèi)部存儲(chǔ)設(shè)備或者附屬的或可網(wǎng)絡(luò)可訪問(wèn)的存儲(chǔ)裝置。存儲(chǔ)裝置108中的程序被下載到存儲(chǔ)器106中并由CPU 104執(zhí)行。使用輸入設(shè)備150來(lái)提供用戶(hù)輸入給CPU 104,該輸入設(shè)備150可以包括鍵盤(pán)、鼠標(biāo)、指示筆、麥克風(fēng)、觸敏顯示屏或者本領(lǐng)域已知的任何其他激活或輸入機(jī)制。輸出設(shè)備152能夠呈現(xiàn)從CPU 104或者諸如顯示監(jiān)控器、打印機(jī)、存儲(chǔ)裝置等其他組件傳送來(lái)的信息。
在特定實(shí)施例中,除了一個(gè)或多個(gè)存儲(chǔ)驅(qū)動(dòng)器120以外,主機(jī)計(jì)算機(jī)103還可以包括其他驅(qū)動(dòng)器,例如執(zhí)行傳輸協(xié)議層的功能的傳輸協(xié)議驅(qū)動(dòng)器(未示出)。
網(wǎng)絡(luò)適配器112可以包括額外的硬件邏輯來(lái)執(zhí)行額外操作,以便處理從計(jì)算機(jī)103或網(wǎng)絡(luò)176接收的分組。此外,網(wǎng)絡(luò)適配器112可以實(shí)現(xiàn)傳輸層卸載引擎(TOE),以便在網(wǎng)絡(luò)適配器中實(shí)現(xiàn)與計(jì)算機(jī)存儲(chǔ)驅(qū)動(dòng)器120相反的傳輸協(xié)議層,從而進(jìn)一步減輕主機(jī)計(jì)算機(jī)的處理負(fù)擔(dān)?;蛘?,所述傳輸層可以在存儲(chǔ)驅(qū)動(dòng)器120中實(shí)現(xiàn)。
在特定實(shí)施例中,各種結(jié)構(gòu)和/或緩沖器(未示出)可以存在于存儲(chǔ)器106中或者位于與存儲(chǔ)器106分開(kāi)的存儲(chǔ)單元中。
圖2A示出了根據(jù)特定實(shí)施例的存儲(chǔ)機(jī)架242。該存儲(chǔ)機(jī)架242包括一個(gè)高可用性的高速底板(backplane),該底板用于與存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)上的服務(wù)器的外部網(wǎng)絡(luò)連接。其中一個(gè)服務(wù)器是具有I/O處理器的存儲(chǔ)服務(wù)器200,該I/O處理器連接到存儲(chǔ)總線(即一種存儲(chǔ)連接240),該存儲(chǔ)總線連接到存儲(chǔ)設(shè)備230。圖2A提供了具有網(wǎng)絡(luò)附屬存儲(chǔ)的企業(yè)存儲(chǔ)拓?fù)涞睦樱员憬忉屓绾慰梢詫⑻囟▽?shí)施例擴(kuò)展到跨越存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)和具有I/O處理器的存儲(chǔ)服務(wù)器的企業(yè)域中。
圖2B示出了根據(jù)特定實(shí)施例的存儲(chǔ)子系統(tǒng)140的進(jìn)一步的細(xì)節(jié)。存儲(chǔ)子系統(tǒng)140包括存儲(chǔ)服務(wù)器200、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)或者光纖通道接口(即各種類(lèi)型的通信路徑240)以及存儲(chǔ)設(shè)備230。存儲(chǔ)服務(wù)器200包括一個(gè)I/O處理器210。特定的實(shí)施例被實(shí)現(xiàn)在可以從因特爾公司獲得的IntelXScaleTMI/O處理器中。在特定實(shí)施例中,I/O子系統(tǒng)230由I/O處理器210控器。在特定實(shí)施例中,存儲(chǔ)設(shè)備230可以被描述為NAS單元。在特定實(shí)施例中,I/O處理器210可以存在于存儲(chǔ)服務(wù)器200的主板上或者是芯片組的一部分。I/O處理器210是具有專(zhuān)用于存儲(chǔ)的操作環(huán)境的智能處理器(例如,I/O處理器210包括用于諸如RAID和iSCSI系統(tǒng)的應(yīng)用的固件/軟件)。I/O處理器210管理從存儲(chǔ)設(shè)備130到主機(jī)計(jì)算機(jī)103CPU 140的數(shù)據(jù)傳送,反之亦然。在特定實(shí)施例中,I/O處理器210附屬于廣域網(wǎng)(WAN)(例如因特網(wǎng)),并且經(jīng)由iSCSI協(xié)議與客戶(hù)機(jī)進(jìn)行通信。
存儲(chǔ)服務(wù)器200還包括由I/O處理器210使用的同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)212和閃存214。由I/O處理器210管理的存儲(chǔ)器段(高速緩沖存儲(chǔ)器216)是由電池支持的,因此允許用作后寫(xiě)(post-write)高速緩沖存儲(chǔ)器(即用于存儲(chǔ)寫(xiě)事務(wù)并且起到緩沖區(qū)高速緩存的作用)。例如,高速緩沖存儲(chǔ)器216可以是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)或者靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)。SCSI或光纖通道控制器218用于連接到SCSI或光纖通道接口240。在特定實(shí)施例中,集成驅(qū)動(dòng)電子裝置(IDE)可以被使用,以作為對(duì)通道控制器218的替換或補(bǔ)充。此外,網(wǎng)絡(luò)到PCI-X的橋接220經(jīng)由次級(jí)PCI-X總線222(例如133MHz)連接到I/O處理器210和通道控制器218,并且經(jīng)由通信路徑224連接到PCI總線、網(wǎng)絡(luò)、主機(jī)計(jì)算機(jī)103等等。
圖2C示出了根據(jù)特定實(shí)施例的I/O處理器210的進(jìn)一步的細(xì)節(jié)。I/O處理器210包括地址空間250和高速緩存管理代理256,以便幫助管理高速緩沖存儲(chǔ)器216。在特定實(shí)施例中,高速緩存管理代理256在固件中實(shí)現(xiàn)。在特定的可選實(shí)施例中,高速緩存管理代理256可以在軟件、硬件或者軟件、固件和/或硬件的組合中實(shí)現(xiàn)。例如,計(jì)算設(shè)備學(xué)習(xí)和高速緩存管理代理256的計(jì)算可以在硅狀態(tài)機(jī)中實(shí)現(xiàn)。
圖2D示出了根據(jù)特定實(shí)施例的I/O處理器210的地址空間250使用的進(jìn)一步的細(xì)節(jié)。地址空間250包括由通道控制器218使用的控制存儲(chǔ)器映射I/O、由I/O處理器210使用的I/O處理器操作系統(tǒng)存儲(chǔ)器、由高速緩沖存儲(chǔ)器216使用的后寫(xiě)緩沖區(qū)高速緩存、用于預(yù)取的緩沖區(qū)高速緩存(即用于先讀(readahead))以及高速緩沖存儲(chǔ)器散列表。
圖3示出了貝葉斯定理的一般形式。貝葉斯定理是一種用于計(jì)算條件概率的數(shù)學(xué)公式。特定實(shí)施例提供了在I/O處理器210中的高級(jí)貝葉斯網(wǎng)絡(luò)技術(shù)。特定實(shí)施例通過(guò)使用貝葉斯網(wǎng)絡(luò)來(lái)了解訪問(wèn)模式并且進(jìn)行優(yōu)先級(jí)排隊(duì)來(lái)優(yōu)先選擇具有最遠(yuǎn)網(wǎng)絡(luò)距離的客戶(hù)機(jī),從而減少了存儲(chǔ)子系統(tǒng)中的變化的延遲。在特定實(shí)施例中,對(duì)于貝葉斯網(wǎng)絡(luò)的學(xué)習(xí)是通過(guò)監(jiān)控特定訪問(wèn)模式的頻率來(lái)完成的,其中把所測(cè)量的請(qǐng)求頻率用作事前統(tǒng)計(jì)量。對(duì)應(yīng)于客戶(hù)機(jī)網(wǎng)路距離的數(shù)據(jù)可以包括跟蹤因特網(wǎng)協(xié)議(IP)報(bào)頭中的跳躍計(jì)數(shù)、對(duì)用戶(hù)機(jī)進(jìn)行分組網(wǎng)際探測(cè)(Ping)并且測(cè)量客戶(hù)機(jī)響應(yīng)以及其他技術(shù)。跳躍計(jì)數(shù)與數(shù)據(jù)分組相關(guān),并且隨著數(shù)據(jù)分組通過(guò)每個(gè)路由器而遞增。
圖4示出了根據(jù)特定實(shí)施例的概率計(jì)算。例如,P(Bn+1|Bn)表示如果DataBlockn400被訪問(wèn)(Bn)那么Data Blockn+1410被訪問(wèn)的概率。為了便于參考,這里使用帶有下標(biāo)的術(shù)語(yǔ)“Data Block”來(lái)表示數(shù)據(jù)塊。特定實(shí)施例使用這種概率分析來(lái)確定如果Data Blockn400被讀取或?qū)懭肽敲词欠駡?zhí)行取回DataBlockn+1410。例如,如果Data Blockn400已被訪問(wèn),那么Data Blockn+1410很可能被訪問(wèn),那么取回Data Blockn+1410從而避免隨后取回Data Blockn+1410的I/O活動(dòng)是有用的。
圖5A、5B、5C、5D和5E示出了根據(jù)特定實(shí)施例的用于高速緩存的操作??刂圃趬K500開(kāi)始,其中重啟代理并且初始化平臺(tái)。在特定實(shí)施例中,該代理與其上執(zhí)行存儲(chǔ)設(shè)備(例如RAID)固件的實(shí)時(shí)操作系統(tǒng)相關(guān)。平臺(tái)可以被描述成I/O處理器210和相關(guān)的固件。在塊502中,高速緩存管理代理256確定這是否是第一次啟動(dòng)(boot)。如果是的話,處理進(jìn)行到塊504,否則,處理進(jìn)行到塊506。在塊504中,緩沖管理代理256從閃存214(例如,只讀存儲(chǔ)器類(lèi)型(ROM))把初始網(wǎng)絡(luò)概率和一個(gè)或多個(gè)高速緩存表加載到SDRAM 212中。在塊506中,高速緩存管理代理256加載最后一次使用的網(wǎng)絡(luò)概率和一個(gè)或多個(gè)高速緩存表(例如從ROM)。所述高速緩存表可以包括寫(xiě)高速緩存和讀高速緩存。
圖6A和6B示出了根據(jù)特定實(shí)施例的非易失性寫(xiě)高速緩存表600和易失性讀高速緩存表610。在起動(dòng)時(shí),讀高速緩存表610一般是空的,寫(xiě)高速緩存表600可以包括未被沖刷(flush)到存儲(chǔ)設(shè)備的內(nèi)容。寫(xiě)高速緩存表600可以是用于多盤(pán)(例如4個(gè)盤(pán))配置的一系列N元組,其中每個(gè)元組包括寫(xiě)盤(pán)標(biāo)識(shí)符、高速緩存塊偏移量、塊數(shù)量、最后一次訪問(wèn)的日期和時(shí)間、發(fā)起方距離以及數(shù)據(jù)。讀高速緩存表610可以是用于多盤(pán)(例如4個(gè)盤(pán))配置的一系列N元組,其中每個(gè)元組包括讀盤(pán)標(biāo)識(shí)符、高速緩存塊偏移量、塊數(shù)量,最后一次訪問(wèn)的日期和時(shí)間、發(fā)起方距離、命中數(shù)量以及數(shù)據(jù)。在特定實(shí)施例中,術(shù)語(yǔ)“塊”可以用來(lái)表示扇區(qū)或者512字節(jié)單元。發(fā)起方距離可以被描述成一個(gè)歸一化的單位,例如跳躍計(jì)數(shù)和/或?qū)Πl(fā)起方計(jì)算機(jī)的分組網(wǎng)際探測(cè)的結(jié)果值。寫(xiě)高速緩存表600可以被存儲(chǔ)在高速緩沖存儲(chǔ)器216中,而讀高速緩存表610可以被存儲(chǔ)在SDRAM212中。
在塊508中,高速緩存管理代理256確定是否有輸入請(qǐng)求。如果是的話,處理進(jìn)行到塊512,否則處理進(jìn)行到塊510。在塊510中執(zhí)行空閑處理、高速緩存反寫(xiě)(即把來(lái)自高速緩沖存儲(chǔ)器216的數(shù)據(jù)寫(xiě)入存儲(chǔ)設(shè)備230)、自測(cè)試、斷電以及其他處理。
在塊512中,高速緩存管理代理256確定該輸入請(qǐng)求是否是寫(xiě)請(qǐng)求。如果是的話,處理進(jìn)行到塊514(圖5B),否則處理進(jìn)行到塊534。在塊534中,高速緩存管理代理256確定該輸入請(qǐng)求是否是讀請(qǐng)求。如果是的話,處理進(jìn)行到塊536(圖5C),否則處理進(jìn)行到塊566(圖5E)。
在圖5B中處理寫(xiě)請(qǐng)求。在塊514中,高速緩存管理代理256更新P(Bn)的值(即可以從所有可用塊中訪問(wèn)Data Blockn的概率)。例如,在任何塊被訪問(wèn)之前,如果有1,000,000個(gè)塊,那么Data Blockn可能被訪問(wèn)的概率是1/1,000,000。然而,如果Data Blockn已經(jīng)被訪問(wèn)1,000次,則Data Blockn可能被訪問(wèn)的概率是1/1000。
在塊516中,由于Data Blockn已被訪問(wèn),高速緩存管理代理256確定DataBlockn+1可能被訪問(wèn)的概率(即P(Bn+1|Bn))是否大于先讀閾值。先讀閾值被用來(lái)確定是否應(yīng)當(dāng)執(zhí)行先讀。如果是的話,處理進(jìn)行到塊518,否則處理進(jìn)行到塊528。
在塊518中,如果需要的話(見(jiàn)圖6),高速緩存管理代理256在高速緩沖存儲(chǔ)器216中為Data Blockn騰出空間。在塊520中,如果需要的話(見(jiàn)圖6),高速緩存管理代理256在高速緩沖存儲(chǔ)器216中為Data Blockn+1騰出空間。在塊522中,高速緩存管理代理256預(yù)取Data Blockn+1。在塊524中,高速緩存管理代理256遞增預(yù)取計(jì)數(shù)器。在塊526中,高速緩存管理代理256把Data Blockn后寫(xiě)到高速緩沖存儲(chǔ)器。術(shù)語(yǔ)“后寫(xiě)”表示將塊寫(xiě)入到高速緩沖存儲(chǔ)器216,把該寫(xiě)入提交(commit)給存儲(chǔ)設(shè)備230,隨后將該塊從高速緩沖存儲(chǔ)器216寫(xiě)入到存儲(chǔ)設(shè)備230。然而,客戶(hù)機(jī)認(rèn)為在提交時(shí)該寫(xiě)入就完成,而不知道把所述塊從高速緩沖存儲(chǔ)器216寫(xiě)入到存儲(chǔ)設(shè)備230的等待時(shí)間。處理從塊526進(jìn)行到塊530。
在塊528中,如果由于Data Blockn被訪問(wèn)而Data Blockn+1可能被訪問(wèn)的概率(即P(Bn+1|Bn))不大于先讀閾值,則高速緩存管理代理256發(fā)出針對(duì)Data Blockn的寫(xiě)請(qǐng)求給存儲(chǔ)設(shè)備230。
在塊530中,高速緩存管理代理256返回一個(gè)確認(rèn)。在塊532中,高速緩存管理代理256更新執(zhí)行計(jì)數(shù)器,比如讀次數(shù)、寫(xiě)次數(shù)、預(yù)取次數(shù)(即對(duì)應(yīng)于預(yù)取計(jì)數(shù)器)和命中高速緩沖存儲(chǔ)器的次數(shù)(即對(duì)應(yīng)于預(yù)取成功計(jì)數(shù)器)。該執(zhí)行計(jì)數(shù)器可以被描述成通信量的一般統(tǒng)計(jì)量。
在圖5C和5D中處理讀請(qǐng)求。在塊536中,高速緩存管理代理256更新P(Bn)的值。在塊538中,高速緩存管理代理256確定請(qǐng)求方跳躍計(jì)數(shù)是否大于跳躍計(jì)數(shù)閾值。如果是的話,處理進(jìn)行到塊540,否則處理進(jìn)行到塊542。請(qǐng)求方指的是所接收的讀請(qǐng)求來(lái)自哪一個(gè)計(jì)算設(shè)備或應(yīng)用。跳躍計(jì)數(shù)閾值標(biāo)識(shí)距離,并且當(dāng)請(qǐng)求方的跳躍計(jì)數(shù)大于跳躍計(jì)數(shù)閾值時(shí),來(lái)自請(qǐng)求方的請(qǐng)求在存儲(chǔ)請(qǐng)求的請(qǐng)求數(shù)據(jù)結(jié)構(gòu)(例如隊(duì)列)中被提升以便進(jìn)行處理(塊540)。
由于I/O處理器210的串行性質(zhì)使得如果一個(gè)請(qǐng)求處于請(qǐng)求數(shù)據(jù)結(jié)構(gòu)中的較前位置(例如在隊(duì)列的開(kāi)頭或者接近隊(duì)列的開(kāi)頭)則該請(qǐng)求可能更早導(dǎo)致對(duì)存儲(chǔ)設(shè)備的I/O操作,因此在該請(qǐng)求數(shù)據(jù)結(jié)構(gòu)中提升該請(qǐng)求。這種服務(wù)質(zhì)量差別反映出I/O處理器210示出為最遠(yuǎn)的發(fā)起方給出最好服務(wù)。
在塊542中,高速緩存管理代理256確定Data Blockn是否在高速緩沖存儲(chǔ)器216中。如果是的話,處理進(jìn)行到塊544,否則處理進(jìn)行到塊550。在塊544中,高速緩存管理代理256用來(lái)自高速緩沖存儲(chǔ)器216的Data Blockn來(lái)答復(fù)請(qǐng)求方。在塊546中,高速緩存管理代理256確定Data Blockn是否先前被預(yù)取到高速緩沖存儲(chǔ)器216中。如果是的話,處理進(jìn)行到塊548,否則處理進(jìn)行到塊554(圖5D)。在塊548中,高速緩存管理代理256遞增預(yù)取成功計(jì)數(shù)器,以便表明先前被預(yù)取的數(shù)據(jù)塊已被訪問(wèn)。
在塊550中,由于Data Blockn不在高速緩沖存儲(chǔ)器216中,如果需要的話,高速緩存管理代理256在高速緩沖存儲(chǔ)器216中為Data Blockn騰出空間。在塊552中,高速緩存管理代理256發(fā)出針對(duì)Data Blockn的讀請(qǐng)求到存儲(chǔ)設(shè)備230。處理從塊552進(jìn)行到塊554(圖5E)。
在圖5E中,在塊554中,由于Data Blockn已被訪問(wèn),高速緩存管理代理256確定Data Blockn+1可能被訪問(wèn)的概率(即P(Bn+1|Bn))是否大于先讀閾值。如果是的話,處理進(jìn)行到塊556,否則處理進(jìn)行到塊562。
在塊556中,如果需要的話(見(jiàn)圖6),高速緩存管理代理256在高速緩沖存儲(chǔ)器216中為Data Blockn+1騰出空間。在塊558中,高速緩存管理代理256預(yù)取Data Blockn+1。在塊560中,高速緩存管理代理256遞增預(yù)取計(jì)數(shù)器。
在塊562中,高速緩存管理代理256返回?cái)?shù)據(jù)和/或確認(rèn)。在塊564中,高速緩存管理代理256更新執(zhí)行計(jì)數(shù)器。
在圖5E中,在塊566中處理管理命令。在塊568中,高速緩存管理代理256確定預(yù)取成功計(jì)數(shù)器除以預(yù)取計(jì)數(shù)器之后是否大于成功閾值。也就是說(shuō),高速緩存管理代理256確定所預(yù)取的數(shù)據(jù)塊被訪問(wèn)的次數(shù)百分比是否超出成功閾值。如果是的話,處理進(jìn)行到塊570,否則處理進(jìn)行到塊572。在塊572中,高速緩存管理代理256更新所述先讀閾值,并且處理進(jìn)行到塊570。在塊570中,例如高速緩存管理代理256基于訪問(wèn)統(tǒng)計(jì)量(例如,在特定時(shí)間周期期間接收的寫(xiě)請(qǐng)求相對(duì)讀請(qǐng)求的數(shù)量)更新跳躍計(jì)數(shù)閾值。處理從塊570進(jìn)行到塊508(圖5A)。例如,成功閾值可以設(shè)置在60%(也就是說(shuō),如果60%的讀命令能夠訪問(wèn)所預(yù)取的數(shù)據(jù)塊,則預(yù)取策略被認(rèn)為是成功的)。每當(dāng)讀命令訪問(wèn)所預(yù)取的數(shù)據(jù)塊時(shí),預(yù)取成功計(jì)數(shù)器就遞增。每當(dāng)數(shù)據(jù)塊被預(yù)取到高速緩沖存儲(chǔ)器216中時(shí),預(yù)取計(jì)數(shù)器就遞增。于是,如果預(yù)取成功計(jì)數(shù)器/預(yù)取計(jì)數(shù)器大于該成功閾值,則當(dāng)前預(yù)取策略被確定是成功的。另一方面,如果預(yù)取成功計(jì)數(shù)器/預(yù)取計(jì)數(shù)器不大于該成功閾值,則先讀閾值被調(diào)整,以使得較少的數(shù)據(jù)塊被預(yù)取。
因此,I/O處理器210保持跳躍計(jì)數(shù)閾值、先讀閾值和成功閾值?;谙惹暗母咚倬彌_策略在成功閾值方面的成功程度,跳躍計(jì)數(shù)閾值以及可能的話還有先讀閾值可以被動(dòng)態(tài)更新。跳躍計(jì)數(shù)閾值可以基于所觀測(cè)的訪問(wèn)模式而被動(dòng)態(tài)更新。在特定實(shí)施例中,缺省的一組已設(shè)定閾值可以在制造環(huán)境中被編程到設(shè)備中。
圖7示出了根據(jù)特定實(shí)施例為了在高速緩沖存儲(chǔ)器216中為數(shù)據(jù)塊騰出空間而執(zhí)行的操作。在塊700中,高速緩存管理代理256接收在高速緩沖存儲(chǔ)器216中騰出空間的請(qǐng)求。在塊702中,高速緩存管理代理256確定高速緩沖存儲(chǔ)器216是否已滿(mǎn)。如果高速緩沖存儲(chǔ)器216已滿(mǎn),則處理進(jìn)行到塊704,否則處理結(jié)束。在塊704中,高速緩存管理代理256確定高速緩沖存儲(chǔ)器216中的所有數(shù)據(jù)塊是否已經(jīng)在預(yù)定時(shí)間間隔內(nèi)(例如在最近的70秒內(nèi))被訪問(wèn)。如果是的話,處理進(jìn)行到塊706,否則處理進(jìn)行到塊708。在塊706中,高速緩存管理代理256逐出為最近的計(jì)算設(shè)備(例如客戶(hù)機(jī))保存的數(shù)據(jù)塊并且處理結(jié)束。在塊708中,高速緩存管理代理256逐出被訪問(wèn)時(shí)間最早的數(shù)據(jù)塊。
特定實(shí)施例使用基于頻率的先有信息以及網(wǎng)絡(luò)向量距離來(lái)為跨越不可預(yù)知的網(wǎng)絡(luò)的客戶(hù)機(jī)提供服務(wù)。此外,特定實(shí)施例依靠具有強(qiáng)大的計(jì)算和存儲(chǔ)能力的I/O處理器210來(lái)實(shí)施原地(in-situ)學(xué)習(xí)技術(shù),例如貝葉斯網(wǎng)絡(luò)和通信量建模。該信息例如被用來(lái)更新跳躍閾值。
因此,在特定實(shí)施例中,高速緩存管理代理256能夠?qū)W習(xí)訪問(wèn)模式。所述訪問(wèn)模式可以用概率來(lái)表示(也就是說(shuō),給定的I/O請(qǐng)求在所有I/O請(qǐng)求中所占的百分比)。先驗(yàn)概率(即在給定在前I/O請(qǐng)求Y的情況下,I/O請(qǐng)求X的概率,例如P(X|Y))也被保持。這種學(xué)習(xí)被用于指導(dǎo)預(yù)取行為。
另外,特定實(shí)施例跟蹤不同請(qǐng)求方的身份,所述請(qǐng)求方具有最遠(yuǎn)的距離(例如,由往返時(shí)間(RTT)測(cè)量,并用跳躍計(jì)數(shù)或起動(dòng)校準(zhǔn)/分組網(wǎng)際探測(cè)來(lái)表示)。然后,高速緩存管理代理256在請(qǐng)求數(shù)據(jù)結(jié)構(gòu)中把來(lái)自最遠(yuǎn)請(qǐng)求方的請(qǐng)求提升到較前的位置(例如提升到開(kāi)頭或接近開(kāi)頭)。
特定實(shí)施例集成網(wǎng)絡(luò)動(dòng)態(tài)、對(duì)于訪問(wèn)模式的計(jì)算設(shè)備學(xué)習(xí)以及其他統(tǒng)計(jì)技術(shù)來(lái)形成能夠適應(yīng)于工作負(fù)載和異類(lèi)客戶(hù)機(jī)網(wǎng)絡(luò)延遲的動(dòng)態(tài)高速緩沖策略。也就是說(shuō),特定實(shí)施例提供一種自我調(diào)諧并且自適應(yīng)的高速緩沖策略。
特定實(shí)施例使存儲(chǔ)設(shè)備230能夠變成以符合自主計(jì)算的方式自修復(fù)、自適應(yīng)的系統(tǒng)。此外,為了提供最優(yōu)請(qǐng)求動(dòng)態(tài),特定實(shí)施例支持網(wǎng)絡(luò)延遲度量和訪問(wèn)模式學(xué)習(xí)。
特定實(shí)施例還允許通過(guò)有效地利用I/O處理器210帶寬以使得I/O處理器210具有高效的性能,這是通過(guò)持續(xù)測(cè)量所觀測(cè)的通信量模式并采取相應(yīng)動(dòng)作。
Intel、XScale和Xeon是因特爾公司在美國(guó)和/或國(guó)外的注冊(cè)商標(biāo)和/或一般的法律標(biāo)記。Windows是微軟公司在美國(guó)和/或國(guó)外的注冊(cè)商標(biāo)和/或一般的法律標(biāo)記。
其他實(shí)施例細(xì)節(jié)所描述的用于自適應(yīng)高速緩沖的技術(shù)可以被實(shí)現(xiàn)為使用標(biāo)準(zhǔn)編程和/或工程技術(shù)來(lái)產(chǎn)生軟件、固件、硬件或其任意組合的方法、設(shè)備和制造產(chǎn)品。這里使用的術(shù)語(yǔ)“制造產(chǎn)品”指的是在硬件邏輯(例如集成電路芯片、可編程門(mén)陣列(PGA)、專(zhuān)用集成電路(ASIC)等等)或諸如磁存儲(chǔ)介質(zhì)(例如硬盤(pán)驅(qū)動(dòng)器、軟盤(pán)、磁帶等等)、光學(xué)存儲(chǔ)(CD-ROM、光盤(pán)等等)、易失性和非易失性存儲(chǔ)器設(shè)備(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可編程邏輯等等)的計(jì)算機(jī)可讀介質(zhì)中實(shí)現(xiàn)的代碼或邏輯。計(jì)算機(jī)可讀介質(zhì)中的代碼由處理器訪問(wèn)和執(zhí)行。其中實(shí)現(xiàn)優(yōu)選實(shí)施例的代碼可以進(jìn)一步通過(guò)傳輸介質(zhì)來(lái)訪問(wèn),或者通過(guò)網(wǎng)絡(luò)從文件服務(wù)器上訪問(wèn)。在這種情況下,其中實(shí)施代碼的制造產(chǎn)品可以包括傳輸介質(zhì),例如網(wǎng)絡(luò)傳輸線路、無(wú)線傳輸介質(zhì)、通過(guò)空間的信號(hào)傳播、無(wú)線電波、紅外信號(hào)等等。因此,“制造產(chǎn)品”可以包括其中實(shí)現(xiàn)代碼的介質(zhì)。另外,”制造產(chǎn)品”可以包括其中實(shí)現(xiàn)、處理和執(zhí)行代碼的硬件和軟件組件的組合。當(dāng)然,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到,在不脫離實(shí)施例的范圍的情況下可以對(duì)這種配置進(jìn)行各種修改,所述制造產(chǎn)品可以包括本領(lǐng)域已知的任何信息承載介質(zhì)。
圖5A、5B、5C、5D、5E和7示出了以特定順序發(fā)生的特定事件。在替換實(shí)施例中,特定操作可以以不同順序來(lái)執(zhí)行、修改或移除。此外,可以在上述邏輯中添加操作并且仍然符合上述實(shí)施例。此外,這里描述的操作可以順序地發(fā)生或者可以并行處理特定操作。此外,可以由單個(gè)處理單元或者分布式處理單元來(lái)執(zhí)行操作。
圖8示出了計(jì)算系統(tǒng)800的一個(gè)實(shí)施例,例如有計(jì)算設(shè)備102a、102b、102c、102d、102e、103和/或200。系統(tǒng)800可以包括處理器802(例如微處理器)、存儲(chǔ)器804(例如易失性存儲(chǔ)器設(shè)備)和存儲(chǔ)裝置806(例如非易失性處理裝置,比如磁盤(pán)驅(qū)動(dòng)器、光盤(pán)驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器等等)。存儲(chǔ)裝置806可以包括內(nèi)部存儲(chǔ)設(shè)備或者附屬的或網(wǎng)絡(luò)可訪問(wèn)的存儲(chǔ)裝置。存儲(chǔ)裝置806中的程序被載入到存儲(chǔ)器804中,并且由處理器802以本領(lǐng)域已知的方式執(zhí)行。該系統(tǒng)進(jìn)一步包括允許與網(wǎng)絡(luò)進(jìn)行通信的網(wǎng)卡808,所述網(wǎng)絡(luò)例如是以太網(wǎng)、光纖通道仲裁環(huán)等等。此外,在特定實(shí)施例中,所述系統(tǒng)可以包括存儲(chǔ)控制器809。如上所述,特定網(wǎng)絡(luò)設(shè)備可以具有多個(gè)網(wǎng)卡。輸入設(shè)備810用于提供用戶(hù)輸入給處理器802,并且可以包括鍵盤(pán)、鼠標(biāo)、指示筆、麥克風(fēng)、觸敏顯示屏或者本領(lǐng)域已知的任何其他激活或輸入機(jī)制。輸出設(shè)備812能夠呈現(xiàn)從處理器802或者諸如顯示監(jiān)控器、打印機(jī)、存儲(chǔ)裝置等其他組件傳送來(lái)的信息。
前面已經(jīng)提出了多種實(shí)施例以用于說(shuō)明和描述的目的,但是并不意圖窮盡實(shí)施例或者把實(shí)施例限制到所公開(kāi)的精確形式。根據(jù)上述教導(dǎo),各種修改和變化是可行的。實(shí)施例的范圍不由上面的具體描述限定,而是由所附權(quán)利要求書(shū)來(lái)限定。上面的說(shuō)明書(shū)、例子和數(shù)據(jù)提供了對(duì)于實(shí)施例組合的制造和使用的完整說(shuō)明。由于在不脫離上述實(shí)施例的精神和范圍的情況下能夠設(shè)想許多實(shí)施例,因此所述實(shí)施例落在所附權(quán)利要求書(shū)的范圍內(nèi)。
權(quán)利要求
1.一種用于高速緩存管理的方法,包括接收針對(duì)訪問(wèn)第一數(shù)據(jù)塊的輸入請(qǐng)求;基于對(duì)第一數(shù)據(jù)塊的訪問(wèn)確定第二數(shù)據(jù)塊可能被訪問(wèn)的概率;確定該概率是否超出先讀閾值;以及響應(yīng)于確定該概率超出該先讀閾值,預(yù)取第二數(shù)據(jù)塊。
2.權(quán)利要求1的方法,進(jìn)一步包括確定與第一數(shù)據(jù)塊相關(guān)的跳躍計(jì)數(shù)是否大于跳躍計(jì)數(shù)閾值;以及響應(yīng)于確定該跳躍計(jì)數(shù)大于該跳躍計(jì)數(shù)閾值,在請(qǐng)求數(shù)據(jù)結(jié)構(gòu)中把所述讀請(qǐng)求提升到不同的位置。
3.權(quán)利要求1的方法,進(jìn)一步包括更新第一數(shù)據(jù)塊可能被訪問(wèn)的概率。
4.權(quán)利要求1的方法,進(jìn)一步包括當(dāng)預(yù)取第二數(shù)據(jù)塊時(shí)更新預(yù)取計(jì)數(shù)器。
5.權(quán)利要求1的方法,其中,所述輸入請(qǐng)求是寫(xiě)請(qǐng)求,并且該方法進(jìn)一步包括高速緩存第一數(shù)據(jù)塊;提交該寫(xiě)請(qǐng)求給存儲(chǔ)設(shè)備;以及發(fā)送表明該寫(xiě)請(qǐng)求已經(jīng)被提交的確認(rèn)。
6.權(quán)利要求5的方法,進(jìn)一步包括在提交所述寫(xiě)請(qǐng)求之后將第一數(shù)據(jù)塊寫(xiě)入到所述存儲(chǔ)設(shè)備。
7.權(quán)利要求1的方法,進(jìn)一步包括確定將要從高速緩沖存儲(chǔ)器中逐出數(shù)據(jù)塊;確定當(dāng)前在該高速緩沖存儲(chǔ)器中的各數(shù)據(jù)塊是否已經(jīng)在預(yù)定時(shí)間間隔內(nèi)被訪問(wèn);響應(yīng)于確定各數(shù)據(jù)塊已經(jīng)在該預(yù)定時(shí)間間隔內(nèi)被訪問(wèn),逐出該高速緩沖存儲(chǔ)器中的為最近的計(jì)算設(shè)備保存的數(shù)據(jù)塊;以及響應(yīng)于確定至少一個(gè)數(shù)據(jù)塊尚未在該預(yù)定時(shí)間間隔內(nèi)被訪問(wèn),逐出高速緩沖存儲(chǔ)器中的被訪問(wèn)時(shí)間最早的數(shù)據(jù)塊。
8.權(quán)利要求7的方法,其中,確定哪一個(gè)計(jì)算設(shè)備是最近的計(jì)算設(shè)備是基于與來(lái)自該計(jì)算設(shè)備的請(qǐng)求相關(guān)的跳躍計(jì)數(shù)。
9.權(quán)利要求1的方法,其中,所述輸入請(qǐng)求是讀請(qǐng)求,并且該方法進(jìn)一步包括確定第一數(shù)據(jù)塊是否在高速緩沖存儲(chǔ)器中;響應(yīng)于確定第一數(shù)據(jù)塊在高速緩沖存儲(chǔ)器中,確定第一數(shù)據(jù)塊是否先前被預(yù)取;以及響應(yīng)于確定第一數(shù)據(jù)塊先前被預(yù)取,遞增預(yù)取成功計(jì)數(shù)器。
10.權(quán)利要求1的方法,進(jìn)一步包括確定所預(yù)取的數(shù)據(jù)塊被訪問(wèn)的次數(shù)百分比是否超出成功閾值;響應(yīng)于確定所述百分比不超出該成功閾值,更新所述先讀閾值。
11.權(quán)利要求1的方法,進(jìn)一步包括基于訪問(wèn)統(tǒng)計(jì)量更新跳躍計(jì)數(shù)閾值。
12.權(quán)利要求1的方法,其中,使用貝葉斯網(wǎng)絡(luò)技術(shù)來(lái)確定所述概率。
13.一種與數(shù)據(jù)存儲(chǔ)裝置通信的系統(tǒng),包括具有輸入/輸出(I/O)處理器的計(jì)算設(shè)備;能夠管理對(duì)該數(shù)據(jù)存儲(chǔ)裝置的輸入/輸出(I/O)訪問(wèn)的存儲(chǔ)控制器,其中該數(shù)據(jù)存儲(chǔ)控制器耦合到該計(jì)算設(shè)備;以及位于該計(jì)算設(shè)備處的高速緩存管理代理,其中該高速緩存管理代理能夠執(zhí)行以下操作接收針對(duì)訪問(wèn)第一數(shù)據(jù)塊的輸入請(qǐng)求;基于對(duì)第一數(shù)據(jù)塊的訪問(wèn)確定第二數(shù)據(jù)塊可能被訪問(wèn)的概率;確定該概率是否超出先讀閾值;以及響應(yīng)于確定該概率超出該先讀閾值,預(yù)取第二數(shù)據(jù)塊。
14.權(quán)利要求13的系統(tǒng),其中,所述高速緩存管理代理能夠執(zhí)行以下操作確定與第一數(shù)據(jù)塊相關(guān)的跳躍計(jì)數(shù)是否大于跳躍計(jì)數(shù)閾值;以及響應(yīng)于確定該跳躍計(jì)數(shù)大于該跳躍計(jì)數(shù)閾值,在請(qǐng)求數(shù)據(jù)結(jié)構(gòu)中把所述讀請(qǐng)求提升到不同的位置。
15.權(quán)利要求13的系統(tǒng),其中,所述高速緩存管理代理能夠更新第一數(shù)據(jù)塊可能被訪問(wèn)的概率。
16.權(quán)利要求13的系統(tǒng),其中,所述高速緩存管理代理能夠在預(yù)取第二數(shù)據(jù)塊時(shí)更新預(yù)取計(jì)數(shù)器。
17.權(quán)利要求13的系統(tǒng),其中,所述輸入請(qǐng)求是寫(xiě)請(qǐng)求,并且所述高速緩存管理代理能夠執(zhí)行以下操作高速緩存第一數(shù)據(jù)塊;提交該寫(xiě)請(qǐng)求給存儲(chǔ)設(shè)備;以及發(fā)送表明該寫(xiě)請(qǐng)求已經(jīng)被提交的確認(rèn)。
18.權(quán)利要求17的系統(tǒng),其中,所述高速緩存管理代理能夠在提交所述寫(xiě)請(qǐng)求之后將第一數(shù)據(jù)塊寫(xiě)入到所述存儲(chǔ)設(shè)備。
19.權(quán)利要求13的系統(tǒng),其中,所述高速緩存管理代理能夠執(zhí)行以下操作確定將要從高速緩沖存儲(chǔ)器中逐出數(shù)據(jù)塊;確定當(dāng)前在該高速緩沖存儲(chǔ)器中的各數(shù)據(jù)塊是否已經(jīng)在預(yù)定時(shí)間間隔內(nèi)被訪問(wèn);響應(yīng)于確定各數(shù)據(jù)塊已經(jīng)在該預(yù)定時(shí)間間隔內(nèi)被訪問(wèn),逐出該高速緩沖存儲(chǔ)器中的為最近的計(jì)算設(shè)備保存的數(shù)據(jù)塊;以及響應(yīng)于確定至少一個(gè)數(shù)據(jù)塊尚未在該預(yù)定時(shí)間間隔內(nèi)被訪問(wèn),逐出高速緩沖存儲(chǔ)器中的被訪問(wèn)時(shí)間最早的數(shù)據(jù)塊。
20.權(quán)利要求19的系統(tǒng),其中,確定哪一個(gè)計(jì)算設(shè)備是最近的計(jì)算設(shè)備是基于與來(lái)自該計(jì)算設(shè)備的請(qǐng)求相關(guān)的跳躍計(jì)數(shù)。
21.權(quán)利要求13的系統(tǒng),其中,所述輸入請(qǐng)求是讀請(qǐng)求,并且所述高速緩存管理代理能夠執(zhí)行以下操作確定第一數(shù)據(jù)塊是否在高速緩沖存儲(chǔ)器中;響應(yīng)于確定第一數(shù)據(jù)塊在高速緩沖存儲(chǔ)器中,確定第一數(shù)據(jù)塊是否先前被預(yù)取;以及響應(yīng)于確定第一數(shù)據(jù)塊先前被預(yù)取,遞增預(yù)取成功計(jì)數(shù)器。
22.權(quán)利要求13的系統(tǒng),其中,所述高速緩存管理代理能夠執(zhí)行以下操作確定所預(yù)取的數(shù)據(jù)塊被訪問(wèn)的次數(shù)百分比是否超出成功閾值;以及響應(yīng)于確定所述百分比不超出該成功閾值,更新所述先讀閾值。
23.權(quán)利要求13的系統(tǒng),其中,所述高速緩存管理代理能夠基于訪問(wèn)統(tǒng)計(jì)量更新跳躍計(jì)數(shù)閾值。
24.權(quán)利要求13的系統(tǒng),其中,使用貝葉斯網(wǎng)絡(luò)技術(shù)來(lái)確定所述概率。
25.一種制造產(chǎn)品,其包括其中存儲(chǔ)有指令的存儲(chǔ)介質(zhì),當(dāng)計(jì)算設(shè)備執(zhí)行所述指令時(shí)會(huì)導(dǎo)致以下操作接收針對(duì)訪問(wèn)第一數(shù)據(jù)塊的輸入請(qǐng)求;基于對(duì)第一數(shù)據(jù)塊的訪問(wèn)確定第二數(shù)據(jù)塊可能被訪問(wèn)的概率;確定該概率是否超出先讀閾值;以及響應(yīng)于確定該概率超出該先讀閾值,預(yù)取第二數(shù)據(jù)塊。
26.權(quán)利要求25的制造產(chǎn)品,其中,當(dāng)執(zhí)行所述指令時(shí)會(huì)進(jìn)一步導(dǎo)致以下操作確定與第一數(shù)據(jù)塊相關(guān)的跳躍計(jì)數(shù)是否大于跳躍計(jì)數(shù)閾值;以及響應(yīng)于確定該跳躍計(jì)數(shù)大于該跳躍計(jì)數(shù)閾值,在請(qǐng)求數(shù)據(jù)結(jié)構(gòu)中把所述讀請(qǐng)求提升到不同的位置。
27.權(quán)利要求25的制造產(chǎn)品,其中,當(dāng)執(zhí)行所述指令時(shí)會(huì)進(jìn)一步導(dǎo)致以下操作更新第一數(shù)據(jù)塊可能被訪問(wèn)的概率。
28.權(quán)利要求25的制造產(chǎn)品,其中,當(dāng)執(zhí)行所述指令時(shí)會(huì)進(jìn)一步導(dǎo)致以下操作當(dāng)預(yù)取第二數(shù)據(jù)塊時(shí)更新預(yù)取計(jì)數(shù)器。
29.權(quán)利要求25的制造產(chǎn)品,其中,所述輸入請(qǐng)求是寫(xiě)請(qǐng)求,并且當(dāng)執(zhí)行所述指令時(shí)會(huì)進(jìn)一步導(dǎo)致以下操作高速緩存第一數(shù)據(jù)塊;提交該寫(xiě)請(qǐng)求給存儲(chǔ)設(shè)備;以及發(fā)送表明該寫(xiě)請(qǐng)求已經(jīng)被提交的確認(rèn)。
30.權(quán)利要求29的制造產(chǎn)品,其中,當(dāng)執(zhí)行所述指令時(shí)會(huì)進(jìn)一步導(dǎo)致以下操作在提交所述寫(xiě)請(qǐng)求之后將第一數(shù)據(jù)塊寫(xiě)入到該存儲(chǔ)設(shè)備。
31.權(quán)利要求25的制造產(chǎn)品,其中,當(dāng)執(zhí)行所述指令時(shí)會(huì)進(jìn)一步導(dǎo)致以下操作確定將要從高速緩沖存儲(chǔ)器中逐出數(shù)據(jù)塊;確定當(dāng)前在該高速緩沖存儲(chǔ)器中的各數(shù)據(jù)塊是否已經(jīng)在預(yù)定時(shí)間間隔內(nèi)被訪問(wèn);響應(yīng)于確定各數(shù)據(jù)塊已經(jīng)在該預(yù)定時(shí)間間隔內(nèi)被訪問(wèn),逐出該高速緩沖存儲(chǔ)器中的為最近的計(jì)算設(shè)備保存的數(shù)據(jù)塊;以及響應(yīng)于確定至少一個(gè)數(shù)據(jù)塊尚未在該預(yù)定時(shí)間間隔內(nèi)被訪問(wèn),逐出高速緩沖存儲(chǔ)器中的被訪問(wèn)時(shí)間最早的數(shù)據(jù)塊。
32.權(quán)利要求31的制造產(chǎn)品,其中,確定哪一個(gè)計(jì)算設(shè)備是最近的計(jì)算設(shè)備是基于與來(lái)自該計(jì)算設(shè)備的請(qǐng)求相關(guān)的跳躍計(jì)數(shù)。
33.權(quán)利要求25的制造產(chǎn)品,其中,所述輸入請(qǐng)求是讀請(qǐng)求,并且當(dāng)執(zhí)行所述指令時(shí)會(huì)進(jìn)一步導(dǎo)致以下操作確定第一數(shù)據(jù)塊是否在高速緩沖存儲(chǔ)器中;響應(yīng)于確定第一數(shù)據(jù)塊在高速緩沖存儲(chǔ)器中,確定第一數(shù)據(jù)塊是否先前被預(yù)?。灰约绊憫?yīng)于確定第一數(shù)據(jù)塊先前被預(yù)取,遞增預(yù)取成功計(jì)數(shù)器。
34.權(quán)利要求25的制造產(chǎn)品,其中,當(dāng)執(zhí)行所述指令時(shí)會(huì)進(jìn)一步導(dǎo)致以下操作確定所預(yù)取的數(shù)據(jù)塊被訪問(wèn)的次數(shù)百分比是否超出成功閾值;響應(yīng)于確定所述百分比不超出該成功閾值,更新所述先讀閾值。
35.權(quán)利要求25的制造產(chǎn)品,其中,當(dāng)執(zhí)行所述指令時(shí)會(huì)進(jìn)一步導(dǎo)致以下操作基于訪問(wèn)統(tǒng)計(jì)量更新跳躍計(jì)數(shù)閾值。
36.權(quán)利要求25的制造產(chǎn)品,其中,使用貝葉斯網(wǎng)絡(luò)技術(shù)來(lái)確定所述概率。
全文摘要
提供了用于高速緩存管理的技術(shù)。接收針對(duì)訪問(wèn)第一數(shù)據(jù)塊的輸入請(qǐng)求?;趯?duì)第一數(shù)據(jù)塊的訪問(wèn)確定第二數(shù)據(jù)塊可能被訪問(wèn)的概率。確定該概率是否超出先讀閾值。響應(yīng)于確定該概率超出該先讀閾值,預(yù)取第二數(shù)據(jù)塊。
文檔編號(hào)G06F12/08GK1961286SQ200480038646
公開(kāi)日2007年5月9日 申請(qǐng)日期2004年12月17日 優(yōu)先權(quán)日2003年12月24日
發(fā)明者E·科馬拉, V·齊默 申請(qǐng)人:英特爾公司