專利名稱:使用分開(kāi)的讀和寫高速緩存的動(dòng)態(tài)高速緩存配置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于進(jìn)行動(dòng)態(tài)高速緩存配置的方法和系統(tǒng)。
背景技術(shù):
諸如移動(dòng)設(shè)備等設(shè)備可能受到低效的文件系統(tǒng)吞吐量的影響。這種低效的文件系統(tǒng)吞吐量可由較小的磁盤高速緩存以及讀和寫活動(dòng)所在的高速緩存來(lái)引起。在使用單個(gè)高速緩存來(lái)存儲(chǔ)來(lái)自讀和寫操作兩者的數(shù)據(jù)的系統(tǒng)中,這種低效會(huì)被放大。例如,使用單個(gè)高速緩存并不提供為讀和寫操作兩者獨(dú)立地配置單個(gè)高速緩存的能力,該讀和寫操作通常具有不同的性能要求。因此,存在足夠機(jī)會(huì)來(lái)改進(jìn)涉及高速緩存配置的技術(shù)。
發(fā)明內(nèi)容
應(yīng)用了涉及使用分開(kāi)的讀和寫高速緩存的動(dòng)態(tài)高速緩存配置的各種技術(shù)。例如, 計(jì)算設(shè)備包括具有讀高速緩存大小的讀高速緩存以及具有寫高速緩存大小的分開(kāi)的寫高速緩存。讀高速緩存存儲(chǔ)來(lái)自計(jì)算設(shè)備的存儲(chǔ)設(shè)備的讀請(qǐng)求的數(shù)據(jù),且寫高速緩存存儲(chǔ)對(duì)計(jì)算設(shè)備的存儲(chǔ)設(shè)備的寫請(qǐng)求的數(shù)據(jù)。讀高速緩存僅存儲(chǔ)來(lái)自存儲(chǔ)設(shè)備的讀操作的數(shù)據(jù), 且寫高速緩存僅存儲(chǔ)對(duì)存儲(chǔ)設(shè)備的寫操作的數(shù)據(jù)。計(jì)算設(shè)備至少部分地基于由計(jì)算設(shè)備測(cè)量到的高速緩存性能參數(shù)來(lái)自動(dòng)和動(dòng)態(tài)地(例如,沒(méi)有用戶交互)調(diào)整讀高速緩存和寫高速緩存的高速緩存配置。在一些實(shí)現(xiàn)中,自動(dòng)和動(dòng)態(tài)的調(diào)整包括調(diào)整讀和/或?qū)懜咚倬彺娲笮?,?或調(diào)整讀和/或?qū)懜咚倬彺鎵K大小。在另一示例中,用于從存儲(chǔ)設(shè)備讀取數(shù)據(jù)以及向存儲(chǔ)設(shè)備寫入數(shù)據(jù)的方法包括由計(jì)算設(shè)備從具有讀高速緩存大小的讀高速緩存處讀取數(shù)據(jù),其中該讀高速緩存存儲(chǔ)來(lái)自計(jì)算設(shè)備中的存儲(chǔ)設(shè)備的讀請(qǐng)求的數(shù)據(jù)。方法還包括由計(jì)算設(shè)備將數(shù)據(jù)寫入到具有寫高速緩存大小的寫高速緩存中,其中該寫高速緩存存儲(chǔ)來(lái)自對(duì)計(jì)算設(shè)備中的存儲(chǔ)設(shè)備的寫請(qǐng)求的數(shù)據(jù)。讀高速緩存和寫高速緩存是分開(kāi)的高速緩存。讀高速緩存僅存儲(chǔ)來(lái)自讀請(qǐng)求的數(shù)據(jù), 且寫高速緩存僅存儲(chǔ)來(lái)自寫請(qǐng)求的數(shù)據(jù)。方法還包括由計(jì)算設(shè)備至少部分地基于由該計(jì)算設(shè)備測(cè)量到的高速緩存性能參數(shù)來(lái)自動(dòng)地和動(dòng)態(tài)地(例如,在沒(méi)有用戶干預(yù)的情況下)調(diào)整讀高速緩存和寫高速緩存的高速緩存配置。在另一示例中,計(jì)算設(shè)備包括具有讀高速緩存大小的讀高速緩存和具有寫高速緩存大小的分開(kāi)的寫高速緩存。讀高速緩存存儲(chǔ)來(lái)自計(jì)算設(shè)備中的存儲(chǔ)設(shè)備的讀請(qǐng)求的數(shù)據(jù),且寫高速緩存存儲(chǔ)來(lái)自對(duì)該計(jì)算設(shè)備中的存儲(chǔ)設(shè)備的寫請(qǐng)求的數(shù)據(jù)。讀高速緩存僅存儲(chǔ)來(lái)自該存儲(chǔ)設(shè)備的讀操作的數(shù)據(jù),且寫高速緩存僅存儲(chǔ)來(lái)自對(duì)該存儲(chǔ)設(shè)備的寫操作的數(shù)據(jù)。計(jì)算設(shè)備至少部分地基于由該計(jì)算設(shè)備測(cè)量到的高速緩存性能參數(shù)來(lái)自動(dòng)地和動(dòng)態(tài)地 (例如,在沒(méi)有用戶干預(yù)的情況下)調(diào)整讀高速緩存和寫高速緩存的高速緩存配置,其中讀高速緩存中的高速緩存塊具有讀高速緩存塊大小,且寫高速緩存中的高速緩存塊具有寫高速緩存塊大小,并且其中計(jì)算設(shè)備將讀高速緩存塊大小和寫高速緩存塊大小彼此獨(dú)立地設(shè)定。計(jì)算設(shè)備至少部分地基于高速緩存性能參數(shù)來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整讀高速緩存塊大小和寫高速緩存塊大小。所述高速緩存性能參數(shù)包括存儲(chǔ)設(shè)備的讀性能和存儲(chǔ)設(shè)備的寫性能。在一些實(shí)現(xiàn)中,計(jì)算設(shè)備還包括應(yīng)用程序編程接口(API),該應(yīng)用程序編程接口被配置成接收計(jì)算設(shè)備讀取或?qū)懭胍粋€(gè)或多個(gè)數(shù)據(jù)塊的偏好得分。該偏好得分至少部分地被計(jì)算設(shè)備用來(lái)確定是否高速緩存一個(gè)或多個(gè)數(shù)據(jù)塊,以及在計(jì)算設(shè)備確定要高速緩存一個(gè)或多個(gè)數(shù)據(jù)塊時(shí),確定何時(shí)將該一個(gè)或多個(gè)數(shù)據(jù)塊從讀高速緩存或?qū)懜咚倬彺嫣庲?qū)逐掉。參考附圖閱讀以下詳細(xì)描述,將更清楚前述和其它特征和優(yōu)點(diǎn)。
圖1是示出使用了分開(kāi)的讀和寫高速緩存的示例性計(jì)算設(shè)備的框圖。圖2是示出使用了分開(kāi)的讀和寫高速緩存的計(jì)算設(shè)備中的示例性組件的框圖。圖3是示出使用分開(kāi)的讀和寫高速緩存的動(dòng)態(tài)高速緩存配置的示例性方法的流程圖。圖4是示出使用偏好得分來(lái)對(duì)分開(kāi)的讀和寫高速緩存進(jìn)行動(dòng)態(tài)高速緩存配置的示例性方法的流程圖。圖5是示出使用讀和寫請(qǐng)求的頻率來(lái)對(duì)分開(kāi)的讀和寫高速緩存進(jìn)行動(dòng)態(tài)高速緩存配置的示例性方法的流程圖。圖6是示出通過(guò)調(diào)整讀和寫高速緩存塊大小來(lái)對(duì)分開(kāi)的讀和寫高速緩存進(jìn)行動(dòng)態(tài)高速緩存配置的示例性方法的流程圖。圖7是示出示例性移動(dòng)設(shè)備的框圖。
具體實(shí)施例方式以下描述涉及使用分開(kāi)的讀和寫高速緩存來(lái)提供動(dòng)態(tài)高速緩存配置技術(shù)和方案的技術(shù)和方案。各種技術(shù)和方案可組合或單獨(dú)使用。不同的實(shí)施例可實(shí)現(xiàn)所描述的技術(shù)和方案的一個(gè)或多個(gè)。I.示例性讀高速緩存和寫高速緩存在此處所描述的各技術(shù)和方案中,高速緩存在讀取或?qū)懭氪鎯?chǔ)設(shè)備(例如,硬盤、 閃存、光盤等)時(shí)提供了對(duì)數(shù)據(jù)的中間存儲(chǔ)。在此處所描述的各技術(shù)和方案中,將高速緩存分成讀高速緩存和寫高速緩存。將高速緩存分成獨(dú)立的和不同的讀和寫高速緩存允許分開(kāi)地(例如,相互獨(dú)立地)配置和/或優(yōu)化讀和寫高速緩存。在一些實(shí)現(xiàn)中,將讀高速緩存和寫高速緩存實(shí)現(xiàn)為分開(kāi)的物理高速緩存(例如, 每個(gè)高速緩存都具有其自己?jiǎn)为?dú)的存儲(chǔ)器組件)。在其他實(shí)現(xiàn)中,將讀高速緩存和寫高速緩存存儲(chǔ)在同一存儲(chǔ)器中,但其在邏輯上卻是分開(kāi)的(例如,使用該存儲(chǔ)器的某一部分來(lái)存儲(chǔ)讀高速緩存數(shù)據(jù),并使用該存儲(chǔ)器的一不同部分來(lái)存儲(chǔ)寫高速緩存數(shù)據(jù))。例如,可將讀高速緩存和寫高速緩存存儲(chǔ)在計(jì)算設(shè)備的專用高速緩存儲(chǔ)器組件中,或者將其存儲(chǔ)在計(jì)算設(shè)備的主存儲(chǔ)器中。不管讀高速緩存和寫高速緩存是如何被分開(kāi)的(例如,物理上地或邏輯上地),讀高速緩存和寫高速緩存各自都具有獨(dú)立的高速緩存大小。每個(gè)高速緩存的大小(讀高速緩存大小和寫高速緩存大小)在數(shù)據(jù)存儲(chǔ)容量方面指示了高速緩存的大小。例如,高速緩存大小可以是512千字節(jié)(KB)或1兆字節(jié)(MB)。讀高速緩存大小和寫高速緩存大小可以是不同的大小。例如,讀高速緩存大小可以是1MB,且寫高速緩存大小可以是512KB。II.示例性高速緩存配置在此處所描述的技術(shù)和方案中,可調(diào)整讀高速緩存和寫高速緩存的高速緩存配置。可測(cè)量各種參數(shù),并使用這些參數(shù)來(lái)調(diào)整讀高速緩存和寫高速緩存的配置。在一特定實(shí)現(xiàn)中,至少部分地基于高速緩存性能參數(shù)來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整讀高速緩存和/或?qū)懜咚倬彺?。在沒(méi)有用戶的干預(yù)或輸入的情況下,執(zhí)行對(duì)高速緩存配置的自動(dòng)和動(dòng)態(tài)調(diào)整(例如,由諸如計(jì)算設(shè)備等實(shí)現(xiàn)該高速緩存的系統(tǒng)來(lái)自動(dòng)地執(zhí)行)。在一特定實(shí)現(xiàn)中,高速緩存配置包括讀高速緩存大小和/或?qū)懜咚倬彺娲笮 U{(diào)整高速緩存配置包括調(diào)整讀高速緩存大小和/或?qū)懜咚倬彺娲笮?。在讀高速緩存和寫高速緩存共享存儲(chǔ)器空間的情況下,可一起調(diào)整讀高速緩存大小和寫高速緩存大小。例如,在具有1MB的共享高速緩存隨機(jī)存取存儲(chǔ)器(RAM)的計(jì)算設(shè)備中,該計(jì)算設(shè)備可通過(guò)將該1MB 的共享高速緩存RAM的一部分分配給讀高速緩存并將剩余的高速緩存RAM分配給寫高速緩存(例如,將768KB分配給讀高速緩存,并將256KB分配給寫高速緩存),來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整讀高速緩存大小和寫高速緩存大小。在讀高速緩存和寫高速緩存使用分開(kāi)的物理存儲(chǔ)器空間的情況下,仍可調(diào)整各高速緩存大小。例如,在具有1MB的讀高速緩存RAM和1MB 的寫高速緩存RAM的計(jì)算設(shè)備中,該計(jì)算設(shè)備可自動(dòng)地和動(dòng)態(tài)地將該讀高速緩存存儲(chǔ)器的一部分分配給寫高速緩存使用,并且反之亦然(例如,除了 1MB的讀高速緩存RAM以外,還將寫高速緩存RAM中的256KB分配來(lái)存儲(chǔ)讀高速緩存數(shù)據(jù),而將寫高速緩存RAM中的768KB 仍用于存儲(chǔ)寫高速緩存數(shù)據(jù))。在一特定實(shí)現(xiàn)中,高速緩存配置包括讀高速緩存塊大小和/或?qū)懜咚倬彺鎵K大小。調(diào)整高速緩存配置包括調(diào)整讀高速緩存塊大小和/或?qū)懜咚倬彺鎵K大小。高速緩存塊大小指在讀高速緩存和寫高速緩存中的高速緩存條目的大小(有時(shí)稱為高速緩存行大小 (cache line size))。取決于該情況,可使用不同的高速緩存塊大小。例如,可以根據(jù)在每個(gè)高速緩存塊中存儲(chǔ)的數(shù)據(jù)的字節(jié)數(shù)(例如,8字節(jié)、512字節(jié)、2KB、64KB等)來(lái)定義高速緩存塊大小。還可根據(jù)讀取或?qū)懭敫咚倬彺鎯?nèi)容的存儲(chǔ)設(shè)備塊大小(例如,物理塊大小)來(lái)定義高速緩存塊大小。例如,如果存儲(chǔ)設(shè)備(例如,硬盤或閃存)將數(shù)據(jù)存儲(chǔ)在512字節(jié)的塊(存儲(chǔ)設(shè)備塊大小)中,則可將高速緩存塊大小設(shè)定為匹配(例如,512字節(jié)的高速緩存塊大小),或者可將高速緩存塊大小設(shè)定為倍數(shù)(例如,2KB的高速緩存塊大小,其存儲(chǔ)4個(gè)存儲(chǔ)設(shè)備塊)??蓪⒆x高速緩存塊大小和寫高速緩存塊大小設(shè)定為相同的塊大小或不同的塊大小(例如,可將讀高速緩存塊大小設(shè)定為4KB,而將寫高速緩存塊大小設(shè)定為2KB)。III.示例性高速緩存性能參數(shù)在此處所描述的技術(shù)和方案中,可至少部分地基于高速緩存性能參數(shù)來(lái)調(diào)整讀高速緩存和寫高速緩存的高速緩存配置。高速緩存性能參數(shù)指讀和/或?qū)懜咚倬彺娴男阅軈?shù)以及關(guān)聯(lián)存儲(chǔ)設(shè)備的性能參數(shù)。高速緩存性能參數(shù)的示例包括偏好得分、讀和/或?qū)懻?qǐng)求的頻率、讀和/或?qū)懘鎯?chǔ)設(shè)備性能、讀和/或?qū)懚ㄎ?、以及讀和/或?qū)戇B續(xù)性能。在一特定實(shí)現(xiàn)中,由操作讀和寫高速緩存的計(jì)算設(shè)備來(lái)測(cè)量高速緩存性能參數(shù)。 例如,計(jì)算設(shè)備的處理單元可監(jiān)控讀和寫高速緩存的性能參數(shù)以及關(guān)聯(lián)存儲(chǔ)設(shè)備的性能參數(shù)。還可由計(jì)算設(shè)備的特定組件(諸如,存儲(chǔ)設(shè)備性能監(jiān)控組件)來(lái)測(cè)量性能參數(shù),或者從計(jì)算設(shè)備的其他組件(諸如,文件系統(tǒng)組件)處接收性能參數(shù)。IV.自動(dòng)地和動(dòng)態(tài)地調(diào)整高速緩存配置的示例在此處所描述的技術(shù)和方案中,可自動(dòng)地和動(dòng)態(tài)地調(diào)整高速緩存配置。在一特定實(shí)現(xiàn)中,至少部分地基于(例如,由包括讀高速緩存和寫高速緩存的計(jì)算設(shè)備測(cè)量到的)高速緩存性能參數(shù)來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整高速緩存配置。在一特定實(shí)現(xiàn)中,計(jì)算設(shè)備提供應(yīng)用程序編程接口(API)來(lái)發(fā)送和/或接收高速緩存性能參數(shù)。例如,可從計(jì)算設(shè)備中的組件或模塊(例如,硬件和/或軟件組件或模塊) 處接收高速緩存性能參數(shù),例如從文件系統(tǒng)組件處接收高速緩存性能參數(shù)。在該特定實(shí)現(xiàn)中,經(jīng)由API所接收到的高速緩存性能參數(shù)包括從該文件系統(tǒng)組件處接收到的偏好得分 (例如,整數(shù)值)。使用偏好得分來(lái)指示應(yīng)該將存儲(chǔ)設(shè)備塊(或者存儲(chǔ)設(shè)備塊的集合)存儲(chǔ)在高速緩存中,還是應(yīng)該使其經(jīng)過(guò)(pass through)該高速緩存。提供API允許對(duì)可用讀高速緩存和寫高速緩存存儲(chǔ)器的更好和更有效的使用,并改進(jìn)對(duì)高速緩存策略的驅(qū)逐和替換。例如,計(jì)算設(shè)備可使用偏好得分來(lái)將讀高速緩存中的較低值塊替換成較高值塊(例如,通過(guò)比較雙方的偏好得分)。作為另一示例,文件系統(tǒng)可將較高的偏好得分給予包括該文件系統(tǒng)的根目錄的各個(gè)塊(或者,塊集合)。作為又一示例,文件系統(tǒng)可將較低的偏好得分給予在不久的將來(lái)不太可能需要(例如,基于由文件系統(tǒng)監(jiān)控到的讀和/或?qū)懩J絹?lái))進(jìn)行文件系統(tǒng)預(yù)測(cè)的較大的寫和/或讀塊。文件系統(tǒng)還使用偏好得分來(lái)決定何時(shí)將塊(或者塊組)從高速緩存中驅(qū)逐掉(例如,通過(guò)首先將具有最低偏好得分的塊或者塊組驅(qū)逐掉)。還可單獨(dú)使用偏好得分或者將其與其他高速緩存性能參數(shù)組合使用來(lái)確定何時(shí)將存儲(chǔ)設(shè)備塊存儲(chǔ)在高速緩存中,以及何時(shí)將所存儲(chǔ)的塊從高速緩存中替換掉或驅(qū)逐掉。在一些實(shí)現(xiàn)中,至少部分地基于高速緩存性能參數(shù)來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整讀高速緩存大小和/或?qū)懜咚倬彺娲笮?。在一?shí)現(xiàn)中,基于讀請(qǐng)求的頻率和寫請(qǐng)求的頻率來(lái)調(diào)整分配來(lái)存儲(chǔ)讀高速緩存數(shù)據(jù)的存儲(chǔ)器的量和/或分配來(lái)存儲(chǔ)寫高速緩存數(shù)據(jù)的存儲(chǔ)器的量。例如,如果讀請(qǐng)求的頻率與寫請(qǐng)求的頻率相比要大一閾值,則可增加讀高速緩存大小 (例如,可將1MB的讀高速緩存大小和1MB的寫高速緩存大小調(diào)整為1. 25MB的讀高速緩存大小和0. 75MB的寫高速緩存大小)。在一些實(shí)現(xiàn)中,至少部分地基于高速緩存性能參數(shù)來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整讀高速緩存塊大小和/或?qū)懜咚倬彺鎵K大小??瑟?dú)立地調(diào)整讀高速緩存塊大小和寫高速緩存塊大小(即,讀高速緩存塊大小可以是與寫高速緩存塊大小不同的塊大小)。在一個(gè)實(shí)現(xiàn)中,計(jì)算設(shè)備測(cè)量存儲(chǔ)設(shè)備的讀和/或?qū)懶阅?,包括寫?或讀操作花費(fèi)了多久來(lái)完成對(duì)存儲(chǔ)設(shè)備的寫入/讀取。例如,如果存儲(chǔ)設(shè)備對(duì)讀請(qǐng)求的響應(yīng)較快(讀請(qǐng)求完成較快),但對(duì)寫請(qǐng)求的響應(yīng)較慢(寫請(qǐng)求完成較慢),則可減少寫高速緩存塊大小(因?yàn)楦〈笮〉膶懜咚倬彺鎵K將完成的更快)和/或增加讀高速緩存塊大小(這可增加高速緩存性能,同時(shí)仍維持較快的讀請(qǐng)求完成)。在這種情況下,還可能是在任何給定時(shí)間處高速緩存中待處理的寫請(qǐng)求比讀請(qǐng)求要多,因此可增加寫高速緩存大小和/或減少讀高速緩存大小。在另一實(shí)現(xiàn)中,(例如,由計(jì)算設(shè)備)將定位信息(例如,讀和/或?qū)懖僮鞯亩ㄎ恍畔⒌臍v史)作為用于確定讀高速緩存塊大小和/或?qū)懜咚倬彺鎵K大小的高速緩存性能參
7數(shù)來(lái)測(cè)量。定位指正在讀取或?qū)懭氲膲K在存儲(chǔ)設(shè)備上是否彼此鄰近。存儲(chǔ)設(shè)備上被高度定位的塊可比未被定位的(例如,分段的)塊更快地被讀取或?qū)懭?。如果讀定位增加了,則增加讀高速緩存塊大小,以便將更大數(shù)量的鄰近存儲(chǔ)設(shè)備塊存儲(chǔ)在每一讀高速緩存塊中。在另一方面,如果讀定位減少了,則減少讀高速緩存塊大小,使得讀請(qǐng)求將更少的鄰近存儲(chǔ)設(shè)備塊存儲(chǔ)在每一讀高速緩存中,并由此增加讀高速緩存中的讀塊多樣性。以相同的方式來(lái)調(diào)整寫高速緩存。在另一實(shí)現(xiàn)中,將存儲(chǔ)設(shè)備的連續(xù)讀和/或?qū)懶阅茏鳛橛糜诖_定讀高速緩存塊大小和/或?qū)懜咚倬彺鎵K大小的高速緩存性能參數(shù)來(lái)測(cè)量。連續(xù)性能指存儲(chǔ)設(shè)備讀取或?qū)懭攵鄠€(gè)連續(xù)的存儲(chǔ)設(shè)備塊所花費(fèi)的時(shí)間量??墒褂眠B續(xù)讀和/或?qū)懶阅軄?lái)確定讀高速緩存塊大小和/或?qū)懜咚倬彺鎵K大小。例如,如果計(jì)算設(shè)備正順序地寫出一較大的文件(例如,較大的視頻文件),則可增加寫高速緩存塊大小。然而,如果過(guò)度地增加了寫高速緩存塊大小, 則可導(dǎo)致減少的性能(例如,以高速緩存中的塊多樣性為代價(jià))。因此,可使用連續(xù)性能測(cè)量來(lái)設(shè)定寫高速緩存塊大小的上限。例如,如果寫操作的連續(xù)性能從一個(gè)存儲(chǔ)設(shè)備塊增加到16個(gè)存儲(chǔ)設(shè)備塊,然后達(dá)到穩(wěn)定,使得寫入大于等于32個(gè)存儲(chǔ)設(shè)備塊的連續(xù)性能與寫入 16個(gè)存儲(chǔ)設(shè)備塊的連續(xù)性能相同(或更小),則可將寫高速緩存塊大小的上限設(shè)定為16。 可對(duì)讀高速緩存執(zhí)行類似的測(cè)量,并可確定讀高速緩存塊大小的上限。在不同的實(shí)現(xiàn)中,可基于本小節(jié)中描述的技術(shù)中的一個(gè)或多個(gè)來(lái)調(diào)整(例如,獨(dú)立地調(diào)整)讀和/或?qū)懜咚倬彺娴母咚倬彺娲笮『?或高速緩存塊大小??山M合地或獨(dú)立地應(yīng)用各技術(shù)。V.包括分開(kāi)的讀和寫高速緩存的示例性計(jì)算設(shè)備圖1描繪了包括分開(kāi)的讀和寫高速緩存的示例性計(jì)算設(shè)備110。計(jì)算設(shè)備110可以是諸如移動(dòng)計(jì)算設(shè)備(例如,智能手機(jī)、移動(dòng)電話、平板電腦、上網(wǎng)本等)的任何類型的計(jì)算設(shè)備,或者是諸如臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、筆記本計(jì)算機(jī)、媒體播放器、數(shù)字相機(jī)或便攜式攝像機(jī)等其他類型的計(jì)算設(shè)備。計(jì)算設(shè)備110包括具有分開(kāi)的讀高速緩存130和寫高速緩存140的高速緩存120。 讀高速緩存130具有讀高速緩存大小(例如,1MB、2MB等),且寫高速緩存140具有寫高速緩存大小。讀高速緩存大小和寫高速緩存大小可以是相同的大小,或者它們可以是不同的大小。在一些實(shí)現(xiàn)中,讀高速緩存130和寫高速緩存140共享高速緩存存儲(chǔ)器空間(例如, RAM)。例如,可將一定量的高速緩存RAM (例如,4MB)在讀高速緩存(例如,分配到了整個(gè)高速緩存RAM中的3MB)和寫高速緩存(例如,分配到了整個(gè)高速緩存RAM中的1MB)之間進(jìn)行劃分。在其他實(shí)現(xiàn)中,讀高速緩存130和寫高速緩存140具有分開(kāi)的物理高速緩存存儲(chǔ)
ο讀高速緩存130存儲(chǔ)來(lái)自計(jì)算設(shè)備110中的一個(gè)或多個(gè)存儲(chǔ)設(shè)備(諸如來(lái)自存儲(chǔ)設(shè)備150)的讀請(qǐng)求的數(shù)據(jù)。寫高速緩存140存儲(chǔ)對(duì)計(jì)算設(shè)備110中的一個(gè)或多個(gè)存儲(chǔ)設(shè)備(諸如對(duì)存儲(chǔ)設(shè)備150)的寫請(qǐng)求的數(shù)據(jù)。讀高速緩存130僅存儲(chǔ)讀操作的數(shù)據(jù),且寫高速緩存140僅存儲(chǔ)寫操作的數(shù)據(jù)。計(jì)算設(shè)備110至少部分地基于高速緩存性能參數(shù)來(lái)自動(dòng)地和動(dòng)態(tài)地(例如,沒(méi)有任何用戶干預(yù)或輸入)調(diào)整讀高速緩存130和寫高速緩存140的高速緩存配置。計(jì)算設(shè)備 110可獨(dú)立地為讀高速緩存130和寫高速緩存140中的每一個(gè)調(diào)整高速緩存配置。由計(jì)算設(shè)備110(例如,由計(jì)算設(shè)備110中的各個(gè)組件或模塊)來(lái)測(cè)量高速緩存性能參數(shù)。在一些實(shí)現(xiàn)中,計(jì)算設(shè)備110自動(dòng)地和動(dòng)態(tài)地調(diào)整讀高速緩存130的讀高速緩存大小以及寫高速緩存140的寫高速緩存大小。例如,可基于高速緩存性能參數(shù)來(lái)調(diào)整讀高速緩存大小和寫高速緩存大小,所述高速緩存性能參數(shù)包括(例如,經(jīng)由API來(lái))讀取和/ 或?qū)懭敫鞲咚倬彺鎵K的偏好得分、讀請(qǐng)求的頻率和寫請(qǐng)求的頻率、存儲(chǔ)設(shè)備150的讀和寫性能、定位信息、和/或連續(xù)讀和寫性能。在一些實(shí)現(xiàn)中,計(jì)算設(shè)備110自動(dòng)地和動(dòng)態(tài)地調(diào)整讀高速緩存130的讀高速緩存塊大小以及寫高速緩存140的寫高速緩存塊大小。例如,可基于高速緩存性能參數(shù)來(lái)調(diào)整讀高速緩存塊大小和寫高速緩存塊大小,所述高速緩存性能參數(shù)包括讀請(qǐng)求的頻率和寫請(qǐng)求的頻率、存儲(chǔ)設(shè)備150的讀和寫性能、定位信息、和/或連續(xù)讀和寫性能。圖2描繪了計(jì)算設(shè)備200中的各示例性組件,該計(jì)算設(shè)備200使用了分開(kāi)的讀和寫高速緩存。計(jì)算設(shè)備200包括用于執(zhí)行計(jì)算功能的各種組件和/或模塊,包括用戶應(yīng)用程序210、操作系統(tǒng)一系統(tǒng)調(diào)用處理程序220、文件系統(tǒng)處理程序230、高速緩存RAM管理器和塊獲取器對(duì)0、以及存儲(chǔ)設(shè)備性能監(jiān)控器250。計(jì)算設(shè)備200包括高速緩存RAM 270,該高速緩存RAM 270具有分配給讀高速緩存280和寫高速緩存四0的存儲(chǔ)空間。讀高速緩存280和寫高速緩存290是分開(kāi)的高速緩存,其中讀高速緩存280僅存儲(chǔ)涉及存儲(chǔ)設(shè)備的讀操作的數(shù)據(jù),且寫高速緩存290僅存儲(chǔ)涉及存儲(chǔ)設(shè)備的寫操作的數(shù)據(jù)。計(jì)算設(shè)備200基于高速緩存性能參數(shù)來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整高速緩存配置(例如,讀高速緩存280和寫高速緩存四0中的每一個(gè)的高速緩存大小以及讀高速緩存280和寫高速緩存290中的每一個(gè)的高速緩存塊大小)。例如,可至少部分地經(jīng)由存儲(chǔ)設(shè)備性能監(jiān)控器250來(lái)測(cè)量高速緩存性能參數(shù)。如在示例性讀高速緩存觀0中描繪地,該讀高速緩存正存儲(chǔ)有兩個(gè)讀高速緩存塊。這兩個(gè)讀高速緩存塊中的每一個(gè)正存儲(chǔ)有兩個(gè)存儲(chǔ)設(shè)備塊。因此,如在280處所描繪地,讀高速緩存塊大小等于兩個(gè)存儲(chǔ)設(shè)備塊(例如,存儲(chǔ)設(shè)備26(^或沈(《中的兩個(gè)物理塊)。如在示例性寫高速緩存四0中描繪地,該寫高速緩存正存儲(chǔ)有兩個(gè)寫高速緩存塊。這兩個(gè)寫高速緩存塊中的每一個(gè)正存儲(chǔ)有一個(gè)存儲(chǔ)設(shè)備塊。因此,如在290處所描繪地,寫高速緩存塊大小等于一個(gè)存儲(chǔ)設(shè)備塊(例如存儲(chǔ)設(shè)備^OA或^OB中的一個(gè)物理塊)。在一些實(shí)現(xiàn)中,計(jì)算設(shè)備200自動(dòng)地和動(dòng)態(tài)地調(diào)整讀高速緩存觀0的讀高速緩存大小以及寫高速緩存四0的寫高速緩存大小。例如,可基于高速緩存性能參數(shù)來(lái)調(diào)整讀高速緩存大小和寫高速緩存大小,高速緩存性能參數(shù)包括(例如經(jīng)由API來(lái))讀取和/或?qū)懭敫鞲咚倬彺鎵K的偏好得分、讀請(qǐng)求的頻率和寫請(qǐng)求的頻率、存儲(chǔ)設(shè)備260A-B的讀和寫性能、定位信息、和/或連續(xù)讀和寫性能。在一些實(shí)現(xiàn)中,計(jì)算設(shè)備200自動(dòng)地和動(dòng)態(tài)地調(diào)整讀高速緩存觀0的讀高速緩存塊大小以及寫高速緩存四0的寫高速緩存塊大小。例如,可基于高速緩存性能參數(shù)來(lái)調(diào)整讀高速緩存塊大小和寫高速緩存塊大小,所述高速緩存性能參數(shù)包括讀請(qǐng)求的頻率和寫請(qǐng)求的頻率、存儲(chǔ)設(shè)備260A-B的讀和寫性能、定位信息、和/或連續(xù)讀和寫性能。
VI.使用分開(kāi)的讀和寫高速緩存的動(dòng)態(tài)高速緩存配置的示例性方法圖3示出使用分開(kāi)的讀和寫高速緩存來(lái)進(jìn)行動(dòng)態(tài)高速緩存配置的示例性方法 300。例如,可使用圖1中描繪的計(jì)算設(shè)備或圖2中描繪的計(jì)算設(shè)備來(lái)實(shí)現(xiàn)該方法。在310處,從具有讀高速緩存大小的讀高速緩存處讀取數(shù)據(jù)。讀高速緩存僅存儲(chǔ)來(lái)自存儲(chǔ)設(shè)備的讀請(qǐng)求的數(shù)據(jù)。在320處,將數(shù)據(jù)寫入具有寫高速緩存大小的寫高速緩存中。寫高速緩存僅存儲(chǔ)來(lái)自對(duì)存儲(chǔ)設(shè)備的寫請(qǐng)求的數(shù)據(jù)。讀高速緩存和寫高速緩存是分開(kāi)的高速緩存。在330處,至少部分地基于高速緩存性能參數(shù)來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整讀高速緩存和寫高速緩存的高速緩存配置。例如,由計(jì)算設(shè)備基于該計(jì)算設(shè)備測(cè)量到的高速緩存性能參數(shù)來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整330高速緩存配置。在一特定實(shí)現(xiàn)中,通過(guò)調(diào)整讀高速緩存大小和/或讀高速緩存塊大小,和/或通過(guò)調(diào)整寫高速緩存大小和/或?qū)懜咚倬彺鎵K大小來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整高速緩存配置。例如,可基于高速緩存性能參數(shù)來(lái)調(diào)整讀高速緩存大小和寫高速緩存大小,所述高速緩存性能參數(shù)包括(例如,經(jīng)由API)讀取和/或?qū)懭敫鞲咚倬彺鎵K的偏好得分、讀請(qǐng)求的頻率和寫請(qǐng)求的頻率、存儲(chǔ)設(shè)備的讀和寫性能、定位信息、和/或連續(xù)讀和寫性能??苫诟咚倬彺嫘阅軈?shù)來(lái)調(diào)整讀高速緩存塊大小和寫高速緩存塊大小,所述高速緩存性能參數(shù)包括讀請(qǐng)求的頻率和寫請(qǐng)求的頻率、存儲(chǔ)設(shè)備的讀和寫性能、定位信息、和/或連續(xù)讀和寫性能。圖4示出使用偏好得分來(lái)對(duì)分開(kāi)的讀和寫高速緩存進(jìn)行動(dòng)態(tài)高速緩存配置的示例性方法400。例如,可使用圖1中描繪的計(jì)算設(shè)備或圖2中描繪的計(jì)算設(shè)備來(lái)實(shí)現(xiàn)該方法。在410處,從具有讀高速緩存大小的讀高速緩存處讀取數(shù)據(jù)。讀高速緩存僅存儲(chǔ)來(lái)自存儲(chǔ)設(shè)備的讀請(qǐng)求的數(shù)據(jù)。在420處,將數(shù)據(jù)寫入具有寫高速緩存大小的寫高速緩存中。寫高速緩存僅存儲(chǔ)來(lái)自對(duì)存儲(chǔ)設(shè)備的寫請(qǐng)求的數(shù)據(jù)。讀高速緩存和寫高速緩存是分開(kāi)的高速緩存。在430處,從存儲(chǔ)設(shè)備處接收讀取或?qū)懭胍粋€(gè)或多個(gè)數(shù)據(jù)塊的偏好得分??墒狗珠_(kāi)的偏好得分與每個(gè)讀塊和寫塊相關(guān)聯(lián),或者可將偏好得分分配給讀塊組或?qū)憠K組。在一特定實(shí)現(xiàn)中,從文件系統(tǒng)處經(jīng)由API來(lái)接收各偏好得分。在440處,作出是否高速緩存該一個(gè)或多個(gè)讀或?qū)憠K的決定。該決定是至少部分地基于偏好得分而作出440的。例如,從存儲(chǔ)設(shè)備處讀取塊(包括一個(gè)或多個(gè)存儲(chǔ)設(shè)備塊的讀塊)的計(jì)算設(shè)備可(例如,從與該存儲(chǔ)設(shè)備相關(guān)聯(lián)的文件系統(tǒng)處)接收該讀塊的偏好得分。然后,計(jì)算設(shè)備使用偏好得分來(lái)確定是否將讀塊存儲(chǔ)(高速緩存)在高速緩存中。如果該決定是不存儲(chǔ)該讀塊,則使該數(shù)據(jù)塊“經(jīng)過(guò)”(即,不將該數(shù)據(jù)塊存儲(chǔ)在讀高速緩存中)。在450處,當(dāng)將一個(gè)或多個(gè)塊存儲(chǔ)在高速緩存中而沒(méi)有使其經(jīng)過(guò)時(shí),作出何時(shí)驅(qū)逐該一個(gè)或多個(gè)所存儲(chǔ)的塊的決定。例如,已將從存儲(chǔ)設(shè)備處讀取的一個(gè)或多個(gè)塊存儲(chǔ)在讀高速緩存中的計(jì)算設(shè)備需要決定何時(shí)將在該高速緩存中存儲(chǔ)的一個(gè)或多個(gè)塊移除或替換掉??苫谝粋€(gè)或多個(gè)塊的偏好得分來(lái)將該一個(gè)或多個(gè)塊從讀高速緩存中驅(qū)逐掉(例如,在驅(qū)逐讀高速緩存中具有較高偏好得分的塊之前,先驅(qū)逐讀高速緩存中具有較低偏好得分的塊)。圖5示出使用讀和寫請(qǐng)求的頻率來(lái)對(duì)分開(kāi)的讀和寫高速緩存進(jìn)行動(dòng)態(tài)高速緩存配置的示例性方法500。例如,可使用圖1中描繪的計(jì)算設(shè)備或圖2中描繪的計(jì)算設(shè)備來(lái)實(shí)現(xiàn)該方法。在510處,從具有讀高速緩存大小的讀高速緩存處讀取數(shù)據(jù)。該讀高速緩存僅存儲(chǔ)來(lái)自存儲(chǔ)設(shè)備的讀請(qǐng)求的數(shù)據(jù)。在520處,將數(shù)據(jù)寫入具有寫高速緩存大小的寫高速緩存中。寫高速緩存僅存儲(chǔ)來(lái)自對(duì)存儲(chǔ)設(shè)備的寫請(qǐng)求的數(shù)據(jù)。讀高速緩存和寫高速緩存是分開(kāi)的高速緩存。在530處,通過(guò)至少部分地基于讀請(qǐng)求的頻率和寫請(qǐng)求的頻率來(lái)調(diào)整讀高速緩存大小和寫高速緩存大小的方式,來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整讀高速緩存和寫高速緩存的高速緩存配置。在一特定實(shí)現(xiàn)中,當(dāng)來(lái)自存儲(chǔ)設(shè)備的讀操作的頻率與來(lái)自該存儲(chǔ)設(shè)備的寫操作的頻率相比要大一閾值時(shí),自動(dòng)地和動(dòng)態(tài)地增加讀高速緩存大小。如果增加了讀高速緩存大小則可相應(yīng)地減少寫高速緩存大小,或者可獨(dú)立地增加/減少讀和寫高速緩存大小。圖6示出通過(guò)調(diào)整讀和寫高速緩存塊大小來(lái)對(duì)分開(kāi)的讀和寫高速緩存進(jìn)行動(dòng)態(tài)高速緩存配置的示例性方法600。例如,可使用圖1中描繪的計(jì)算設(shè)備或圖2中描繪的計(jì)算設(shè)備來(lái)實(shí)現(xiàn)該方法。在610處,從具有讀高速緩存大小的讀高速緩存處讀取數(shù)據(jù)。該讀高速緩存僅存儲(chǔ)來(lái)自存儲(chǔ)設(shè)備的讀請(qǐng)求的數(shù)據(jù)。在620處,將數(shù)據(jù)寫入到具有寫高速緩存大小的寫高速緩存中。寫高速緩存僅存儲(chǔ)來(lái)自對(duì)存儲(chǔ)設(shè)備的寫請(qǐng)求的數(shù)據(jù)。讀高速緩存和寫高速緩存是分開(kāi)的高速緩存。在630處,至少部分地通過(guò)調(diào)整讀高速緩存塊大小和寫高速緩存塊大小來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整高速緩存配置??苫诟鞣N高速緩存性能參數(shù)來(lái)調(diào)整讀高速緩存塊大小和寫高速緩存塊大小。例如,可使用在640A、640B和640C處描繪的技術(shù)中的一個(gè)或多個(gè)來(lái)調(diào)整讀高速緩存塊大小和寫高速緩存塊大小。在640A處,可基于存儲(chǔ)設(shè)備的讀和/或?qū)懶阅軄?lái)調(diào)整讀高速緩存塊大小和/或?qū)懜咚倬彺鎵K大小。例如,如果性能歷史指示寫操作花費(fèi)了較長(zhǎng)的時(shí)間,則可增加寫高速緩存塊大小。在604B處,基于來(lái)自存儲(chǔ)設(shè)備的讀和/或?qū)懚ㄎ恍畔?lái)調(diào)整讀高速緩存塊大小和 /或?qū)懜咚倬彺鎵K大小。在一特定實(shí)現(xiàn)中,當(dāng)測(cè)量到定位增加時(shí),增加讀和/或?qū)懜咚倬彺鎵K大小,并且當(dāng)測(cè)量到定位減少時(shí),減少讀和/或?qū)懜咚倬彺鎵K大小。在640C處,基于存儲(chǔ)設(shè)備的連續(xù)讀和/或?qū)懶阅軄?lái)調(diào)整讀高速緩存塊大小和/或?qū)懜咚倬彺鎵K大小。例如,可確定讀和/或?qū)懢彺鎵K大小的上限。VII.示例性移動(dòng)設(shè)備此處描述的技術(shù)和方案可由諸如移動(dòng)設(shè)備(移動(dòng)計(jì)算設(shè)備)等計(jì)算設(shè)備中的軟件和/或硬件來(lái)執(zhí)行。例如,計(jì)算設(shè)備包括臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、筆記本計(jì)算機(jī)、上網(wǎng)本、平板設(shè)備、媒體播放器、以及其他類型的計(jì)算設(shè)備。移動(dòng)設(shè)備包括例如移動(dòng)電話、個(gè)人數(shù)字助理(PDA)、智能電話、平板電腦、膝上型計(jì)算機(jī)、以及其他類型的移動(dòng)計(jì)算設(shè)備。移動(dòng)設(shè)備通常比其他類型的計(jì)算設(shè)備(例如,臺(tái)式或膝上型計(jì)算機(jī))具有更有限的計(jì)算資源(例如,處理單元速度、存儲(chǔ)器、圖形資源等)。因此,在一些情況下,移動(dòng)設(shè)備能更多地從此處描述的技術(shù)和方案中受益。然而,取決于各實(shí)現(xiàn)的細(xì)節(jié),任何類型的計(jì)算設(shè)備都能從此處描繪的技術(shù)和方案中受益。
圖7描繪了能夠?qū)崿F(xiàn)此處所描述的技術(shù)和方案的移動(dòng)設(shè)備700的詳細(xì)示例。移動(dòng)設(shè)備700包括各種任選的硬件和軟件組件,其通常在702處示出。該移動(dòng)設(shè)備中的任何組件702可與任何其他組件通信,但出于容易例示的目的而未示出所有連接。該移動(dòng)設(shè)備可以是各種計(jì)算設(shè)備(例如,蜂窩電話、智能電話、手持式計(jì)算機(jī)、膝上型計(jì)算機(jī)、筆記本計(jì)算機(jī)、平板設(shè)備、上網(wǎng)本、個(gè)人數(shù)字助理(PDA)、相機(jī)、攝像機(jī)等)中的任一個(gè),并且可允許與諸如Wi-Fi、蜂窩或衛(wèi)星網(wǎng)絡(luò)等一個(gè)或多個(gè)移動(dòng)通信網(wǎng)絡(luò)704進(jìn)行無(wú)線雙向通信。所示移動(dòng)設(shè)備700可包括用于執(zhí)行如信號(hào)編碼、數(shù)據(jù)處理、輸入/輸出處理、電源控制和/或其他功能等任務(wù)的處理單元710(例如,控制器或處理器),諸如信號(hào)處理器、微處理器、ASIC、或其他控制和處理邏輯電路。操作系統(tǒng)712可控制對(duì)組件702的分配和使用,并支持一個(gè)或多個(gè)應(yīng)用程序714。應(yīng)用程序可包括公共移動(dòng)計(jì)算應(yīng)用程序(例如,電子郵件應(yīng)用程序、日歷、聯(lián)系人管理器、web瀏覽器、消息接發(fā)應(yīng)用程序、視頻或電影應(yīng)用程序、 圖片或照片應(yīng)用程序)、或任何其他計(jì)算應(yīng)用。所示移動(dòng)設(shè)備700可包括存儲(chǔ)器720。存儲(chǔ)器720可包括不可移動(dòng)存儲(chǔ)器722和 /或可移動(dòng)存儲(chǔ)器724。不可移動(dòng)存儲(chǔ)器722可包括RAM、ROM、閃存、硬盤、或其他眾所周知的存儲(chǔ)器存儲(chǔ)技術(shù)。可移動(dòng)存儲(chǔ)器7M可包括閃存或訂戶身份模塊(SIM)卡——其在GSM 通信系統(tǒng)中是眾所周知的,或者其他眾所周知的存儲(chǔ)器存儲(chǔ)技術(shù),如“智能卡”。存儲(chǔ)器720 可用于存儲(chǔ)數(shù)據(jù)和/或用于運(yùn)行操作系統(tǒng)712和應(yīng)用程序714的代碼。示例數(shù)據(jù)可包括經(jīng)由一個(gè)或多個(gè)有線或無(wú)線網(wǎng)絡(luò)發(fā)送給和/或接收自一個(gè)或多個(gè)網(wǎng)絡(luò)服務(wù)器或其他設(shè)備的網(wǎng)頁(yè)、文本、圖像、聲音文件、視頻數(shù)據(jù)、或其他數(shù)據(jù)集。存儲(chǔ)器720可用于存儲(chǔ)諸如國(guó)際移動(dòng)訂戶身份(IMSI)等訂戶標(biāo)識(shí)符,以及諸如國(guó)際移動(dòng)設(shè)備標(biāo)識(shí)符(IMEI)等設(shè)備標(biāo)識(shí)符??蓪⒋祟悩?biāo)識(shí)符傳送給網(wǎng)絡(luò)服務(wù)器以標(biāo)識(shí)用戶和裝備。移動(dòng)設(shè)備700能支持諸如觸摸屏732、麥克風(fēng)734、相機(jī)736 (例如,能夠捕捉靜態(tài)圖像和/或視頻圖像)、物理鍵盤738以及軌跡球740等的一個(gè)或多個(gè)輸入設(shè)備730以及諸如揚(yáng)聲器752和顯示器7M等的一個(gè)或多個(gè)輸出設(shè)備750。其他可能的輸出設(shè)備(未示出) 可包括壓電或其他觸覺(jué)輸出設(shè)備。一些設(shè)備可服務(wù)一個(gè)以上的輸入/輸出功能。例如,觸摸屏732和顯示器7M可被組合在單個(gè)輸入/輸出設(shè)備中。無(wú)線調(diào)制解調(diào)器760可被耦合至天線(未示出),并且可支持處理器710與外部設(shè)備之間的雙向通信,如本領(lǐng)域中清楚理解的。調(diào)制解調(diào)器760被一般性地示出,并且可包括用于與移動(dòng)通信網(wǎng)絡(luò)704和/或其它基于無(wú)線電的調(diào)制解調(diào)器(例如藍(lán)牙764或Wi-Fi 762)進(jìn)行通信的蜂窩調(diào)制解調(diào)器。無(wú)線調(diào)制解調(diào)器760通常被配置成與一個(gè)或多個(gè)蜂窩網(wǎng)絡(luò)(諸如,用于單個(gè)蜂窩網(wǎng)絡(luò)內(nèi)、蜂窩網(wǎng)絡(luò)之間、或移動(dòng)設(shè)備與公共交換電話網(wǎng)絡(luò)(PSTN)之間的數(shù)據(jù)和語(yǔ)音通信的GSM網(wǎng)絡(luò))進(jìn)行通信。移動(dòng)設(shè)備可進(jìn)一步包括至少一個(gè)輸入/輸出端口 780、電源782、衛(wèi)星導(dǎo)航系統(tǒng)接收機(jī)784(諸如全球定位系統(tǒng)(GPS)接收機(jī))、加速計(jì)786、收發(fā)機(jī)788(用于無(wú)線發(fā)射模擬或數(shù)字信號(hào))和/或物理連接器737,它可以是USB端口、IEEE 1394(火線)端口、和/或 RS-232端口。所示組件702不是必需的或所有都包括的,因?yàn)榭蓜h除任何組件并且可添加其他組件。移動(dòng)設(shè)備700能實(shí)現(xiàn)在此描述的技術(shù)。例如,移動(dòng)設(shè)備700可自動(dòng)地和動(dòng)態(tài)地調(diào)整在存儲(chǔ)器722中存儲(chǔ)的分開(kāi)的讀和寫高速緩存的高速緩存配置。
VIII.示例替換和變化雖然為方便呈現(xiàn)起見(jiàn)所公開(kāi)的方法的一些操作是以特定的順序次序來(lái)描述的,但應(yīng)當(dāng)理解,這一描述方法涵蓋重新安排,除非以下闡明的具體語(yǔ)言需要特定排序。例如,在某些情況下,可以重新安排或并發(fā)執(zhí)行順序地描述的操作。此外,為簡(jiǎn)明起見(jiàn),附圖可能未示出其中所公開(kāi)的方法可結(jié)合其他方法使用的各種方式。所公開(kāi)的方法中的任一個(gè)可被實(shí)現(xiàn)為存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)(例如, 有形的計(jì)算機(jī)可讀介質(zhì)(諸如一個(gè)或多個(gè)光學(xué)介質(zhì)盤)、易失性存儲(chǔ)器組件(諸如DRAM或 SRAM)或非易失性存儲(chǔ)器組件(諸如硬驅(qū)動(dòng)器))上并且在計(jì)算機(jī)(例如,任何可購(gòu)買的計(jì)算機(jī),包括包含計(jì)算硬件的智能電話或其它移動(dòng)設(shè)備)上執(zhí)行的計(jì)算機(jī)可執(zhí)行指令。用于實(shí)現(xiàn)所公開(kāi)的技術(shù)的計(jì)算機(jī)可執(zhí)行指令中的任何一個(gè)以及在所公開(kāi)的實(shí)施例實(shí)現(xiàn)期間所創(chuàng)建和使用的任何數(shù)據(jù)可被存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)上。計(jì)算機(jī)可執(zhí)行指令可以是專用軟件應(yīng)用程序或,例如,經(jīng)由web瀏覽器或其他軟件應(yīng)用程序(諸如遠(yuǎn)程計(jì)算應(yīng)用程序)訪問(wèn)或下載的軟件應(yīng)用程序的一部分??桑?,在單個(gè)本地計(jì)算機(jī)(例如,任何合適的可購(gòu)買計(jì)算機(jī))上或在使用一個(gè)或多個(gè)網(wǎng)絡(luò)計(jì)算機(jī)的網(wǎng)絡(luò)環(huán)境(例如,經(jīng)由因特網(wǎng)、廣域網(wǎng)、局域網(wǎng)、客戶機(jī)-服務(wù)器網(wǎng)絡(luò)(諸如,云計(jì)算網(wǎng)絡(luò))、或其他此類網(wǎng)絡(luò))中執(zhí)行這些軟件。為清楚起見(jiàn),只描述了基于軟件的各實(shí)現(xiàn)的某些所選擇的方面。省略了本領(lǐng)域公知的其他細(xì)節(jié)。例如,應(yīng)當(dāng)理解,所公開(kāi)的技術(shù)不限于任何特定計(jì)算機(jī)語(yǔ)言、或程序。例如, 所公開(kāi)的技術(shù)可由用C++、JaVa、Perl、JaVakript、Adobe Flash、或任何其他合適的編程語(yǔ)言編寫的軟件來(lái)實(shí)現(xiàn)。同樣,所公開(kāi)的技術(shù)不限于任何特定計(jì)算機(jī)或硬件類型。合適的計(jì)算機(jī)和硬件的某些細(xì)節(jié)是公知的,并且無(wú)需在本公開(kāi)中進(jìn)行詳細(xì)闡述。此外,基于軟件的實(shí)施例中的任何一個(gè)(包括,例如,用于使計(jì)算設(shè)備執(zhí)行所公開(kāi)的方法中的任何一種的計(jì)算機(jī)可執(zhí)行指令)可通過(guò)合適的通信裝置來(lái)上傳、下載、或遠(yuǎn)程訪問(wèn)。這些合適的通信手段包括,例如,因特網(wǎng)、萬(wàn)維網(wǎng)、內(nèi)聯(lián)網(wǎng)、軟件應(yīng)用、電纜(包括光纜)、磁通信、電磁通信(包括RF、微波和紅外通信)、電子通信或任何這樣的通信手段。所公開(kāi)的方法、裝置和系統(tǒng)決不應(yīng)被解釋成限制性的。相反,本發(fā)明針對(duì)各公開(kāi)的實(shí)施方式(單獨(dú)地或彼此的各種組合和子組合)的所有新穎和非顯而易見(jiàn)特征和方面。所公開(kāi)的方法、裝置和系統(tǒng)不限于任何具體方面或特征或其組合,所公開(kāi)的各實(shí)施方式也不要求存在任何一個(gè)或多個(gè)具體優(yōu)點(diǎn)或解決各個(gè)問(wèn)題。因此,要求保護(hù)落入這些權(quán)利要求的精神和范圍內(nèi)的所有內(nèi)容作為本發(fā)明。
權(quán)利要求
1.一種計(jì)算設(shè)備(110 ;200),包括具有讀高速緩存大小的讀高速緩存(130 ;280),其中所述讀高速緩存存儲(chǔ)來(lái)自所述計(jì)算設(shè)備中的存儲(chǔ)設(shè)備(150 ;260A ;260B)的讀請(qǐng)求的數(shù)據(jù);以及具有寫高速緩大小的寫高速緩存(140 ;290),其中所述寫高速緩存存儲(chǔ)對(duì)所述計(jì)算設(shè)備中的所述存儲(chǔ)設(shè)備的寫請(qǐng)求的數(shù)據(jù);其中,所述讀高速緩存和所述寫高速緩存是分開(kāi)的高速緩存,其中所述讀高速緩存僅存儲(chǔ)來(lái)自讀請(qǐng)求的數(shù)據(jù),并且所述寫高速緩存僅存儲(chǔ)來(lái)自寫請(qǐng)求的數(shù)據(jù);以及其中所述計(jì)算設(shè)備在沒(méi)有用戶的干預(yù)的情況下,至少部分地基于由所述計(jì)算設(shè)備測(cè)量到的高速緩存性能參數(shù)來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整所述讀高速緩存和所述寫高速緩存的高速緩存配置。
2.如權(quán)利要求1所述的計(jì)算設(shè)備,其特征在于,所述計(jì)算設(shè)備包括應(yīng)用程序編程接口 (API),其中所述API被配置來(lái)(從文件系統(tǒng))接收所述計(jì)算設(shè)備讀取或?qū)懭胍粋€(gè)或多個(gè)數(shù)據(jù)塊的偏好得分,其中所述偏好得分被所述計(jì)算設(shè)備至少部分地用來(lái)確定是否高速緩存所述一個(gè)或多個(gè)數(shù)據(jù)塊,其中在所述計(jì)算設(shè)備確定要高速緩存所述一個(gè)或多個(gè)數(shù)據(jù)塊時(shí),所述偏好得分還至少部分地被所述計(jì)算設(shè)備用來(lái)確定何時(shí)將所述一個(gè)或多個(gè)數(shù)據(jù)塊從所述讀高速緩存或?qū)懜咚倬彺嫣庲?qū)逐掉。
3.如權(quán)利要求1所述的計(jì)算設(shè)備,其特征在于,所述計(jì)算設(shè)備通過(guò)至少部分地基于高速緩存性能參數(shù)來(lái)設(shè)定所述讀高速緩存大小和所述寫高速緩存大小的方式來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整高速緩存配置,所述高速緩存性能參數(shù)包括讀請(qǐng)求的頻率和寫請(qǐng)求的頻率。
4.如權(quán)利要求1所述的計(jì)算設(shè)備,其特征在于,所述讀高速緩存中的高速緩存塊具有讀高速緩存塊大小,其中所述寫高速緩存中的高速緩存塊具有寫高速緩存塊大小,并且其中所述計(jì)算設(shè)備將所述讀高速緩存塊大小和所述寫高速緩存塊大小彼此獨(dú)立地設(shè)定。
5.如權(quán)利要求4所述的計(jì)算設(shè)備,其特征在于,所述計(jì)算設(shè)備至少部分地基于高速緩存性能參數(shù)來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整所述讀高速緩存塊大小和所述寫高速緩存塊大小,所述高速緩存性能參數(shù)包括所述存儲(chǔ)設(shè)備的讀性能;以及所述存儲(chǔ)設(shè)備的寫性能。
6.如權(quán)利要求4所述的計(jì)算設(shè)備,其特征在于,所述計(jì)算設(shè)備至少部分地基于是否將讀和寫在所述計(jì)算設(shè)備上進(jìn)行了定位來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整所述讀高速緩存塊大小和所述寫高速緩存塊大小,其中在讀定位增加時(shí),增加讀高速緩存塊大小; 在讀定位減少時(shí),減少讀高速緩存塊大?。?在寫定位增加時(shí),增加寫高速緩存塊大??; 在寫定位減少時(shí),減少寫高速緩存塊大小。
7.—種至少部分地由包括存儲(chǔ)設(shè)備的計(jì)算設(shè)備來(lái)實(shí)現(xiàn)的方法,該方法用于從所述存儲(chǔ)設(shè)備讀取數(shù)據(jù)或?qū)?shù)據(jù)寫入所述存儲(chǔ)設(shè)備中,所述方法包括由所述計(jì)算設(shè)備從具有讀高速緩存大小的讀高速緩存處讀取數(shù)據(jù)(310),其中所述讀高速緩存存儲(chǔ)來(lái)自所述計(jì)算設(shè)備中的所述存儲(chǔ)設(shè)備的讀請(qǐng)求的數(shù)據(jù);由所述計(jì)算設(shè)備將數(shù)據(jù)寫入具有寫高速緩存大小的寫高速緩存中(320),其中所述寫高速緩存儲(chǔ)對(duì)所述計(jì)算設(shè)備中的所述存儲(chǔ)設(shè)備的寫請(qǐng)求的數(shù)據(jù),其中所述讀高速緩存和所述寫高速緩存是分開(kāi)的高速緩存,其中所述讀高速緩存僅存儲(chǔ)來(lái)自讀請(qǐng)求的數(shù)據(jù),且其中所述寫高速緩存僅存儲(chǔ)來(lái)自寫請(qǐng)求的數(shù)據(jù);由所述計(jì)算設(shè)備至少部分地基于由所述計(jì)算設(shè)備測(cè)量到的高速緩存性能參數(shù)來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整所述讀高速緩存和所述寫高速緩存的高速緩存配置(330),而無(wú)需用戶的干預(yù)。
8.如權(quán)利要求7所述的方法,其特征在于,所述計(jì)算設(shè)備包括應(yīng)用程序編程接口 (API),所述方法還包括經(jīng)由所述API從與所述存儲(chǔ)設(shè)備相關(guān)聯(lián)的文件系統(tǒng)處接收所述計(jì)算設(shè)備讀取或?qū)懭胍粋€(gè)或多個(gè)數(shù)據(jù)塊的偏好得分,其中所述偏好得分至少部分地被所述計(jì)算設(shè)備用來(lái)確定是否高速緩存所述一個(gè)或多個(gè)數(shù)據(jù)塊;以及在將所述一個(gè)或多個(gè)數(shù)據(jù)塊存儲(chǔ)在所述讀高速緩存或所述寫高速緩存中時(shí),何時(shí)將所述一個(gè)或多個(gè)數(shù)據(jù)塊從所述讀高速緩存或所述寫高速緩存中驅(qū)逐掉。
9.如權(quán)利要求7所述的方法,其特征在于,自動(dòng)地和動(dòng)態(tài)地調(diào)整高速緩存配置包括由所述計(jì)算設(shè)備至少部分地基于高速緩存性能參數(shù)來(lái)調(diào)整所述讀高速緩存大小和所述寫高速緩存大小,所述高速緩存性能參數(shù)包括讀請(qǐng)求的頻率和寫請(qǐng)求的頻率。
10.如權(quán)利要求7所述的方法,其特征在于,所述讀高速緩存中的高速緩存塊具有讀高速緩存塊大小,所述寫高速緩存中的高速緩存塊具有寫高速緩存塊大小,其中所述計(jì)算設(shè)備將所述讀高速緩存塊大小和所述寫高速緩存塊大小彼此獨(dú)立地設(shè)定,并且其中自動(dòng)地和動(dòng)態(tài)地調(diào)整所述高速緩存配置包括由所述計(jì)算設(shè)備至少部分地基于高速緩存性能參數(shù)來(lái)調(diào)整所述讀高速緩存塊大小和所述寫高速緩存塊大小,所述高速緩存性能參數(shù)包括所述存儲(chǔ)設(shè)備的讀性能;以及所述存儲(chǔ)設(shè)備的寫性能。
全文摘要
本發(fā)明涉及使用分開(kāi)的讀和寫高速緩存的動(dòng)態(tài)高速緩存配置。將來(lái)自存儲(chǔ)設(shè)備的數(shù)據(jù)存儲(chǔ)在具有讀高速緩存大小的讀高速緩存中以及具有寫高速緩存大小的寫高速緩存中。讀高速緩存和寫高速緩存是分開(kāi)的高速緩存。至少部分地基于高速緩存性能參數(shù)來(lái)自動(dòng)地和動(dòng)態(tài)地調(diào)整讀高速緩存和寫高速緩存的高速緩存配置。高速緩存性能參數(shù)包括如下各項(xiàng)中的一個(gè)或多個(gè)偏好得分、讀和寫操作的頻率、存儲(chǔ)設(shè)備的讀和寫性能、定位信息、以及連續(xù)讀和寫性能。動(dòng)態(tài)高速緩存配置包括以下各項(xiàng)中的一個(gè)或多個(gè)調(diào)整讀高速緩存大小和/或?qū)懜咚倬彺娲笮?、以及調(diào)整讀高速緩存塊大小和/或?qū)懜咚倬彺鎵K大小。
文檔編號(hào)G06F12/08GK102411541SQ20111032121
公開(kāi)日2012年4月11日 申請(qǐng)日期2011年10月12日 優(yōu)先權(quán)日2010年10月13日
發(fā)明者C·卡旺德, S·A·富達(dá)利 申請(qǐng)人:微軟公司