專利名稱:使用外部存儲器設(shè)備來改進(jìn)系統(tǒng)性能的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計(jì)算機(jī)系統(tǒng),尤其涉及改進(jìn)計(jì)算機(jī)系統(tǒng)的性能。
背景技術(shù):
諸如個人計(jì)算機(jī)、游戲控制臺、智能電話機(jī)計(jì)算設(shè)備通常使用耗時的過程來將由應(yīng)用程序使用的頁裝載和高速緩存至存儲器。這些頁通常存儲在諸如磁硬盤等旋轉(zhuǎn)式非易失性介質(zhì)(例如,硬盤驅(qū)動器)上。然而,設(shè)備的處理器僅執(zhí)行來自于諸如DRAM或某些其它類型的易失性電子存儲器等可尋址存儲器的指令。在計(jì)算設(shè)備中使用的操作系統(tǒng)將由應(yīng)用程序使用的頁高速緩存至存儲器,使得應(yīng)用程序不必頻繁地從旋轉(zhuǎn)式介質(zhì)中裝載頁。
對來自于硬盤驅(qū)動器的頁的傳輸是緩慢的,尤其是當(dāng)應(yīng)用程序裝載一個大文件的時候。這對將計(jì)算機(jī)系統(tǒng)從休眠模式中恢復(fù)也是普遍的。傳輸時間中的重要因素是由于磁盤驅(qū)動器的自旋到位的速度。以相對較慢的RPM自旋的相對較小的磁盤需要5至6秒來自旋到位而可被使用。諸如多盤設(shè)備等較大的磁盤以及以較快RPM自旋的磁盤需要10至12秒甚至更多時間來自旋到位。
隨著應(yīng)用程序在大小上增長以包括安全性修補(bǔ)且變得更可靠,該問題惡化了。這些應(yīng)用程序通常需要更多的存儲器以便在不需連續(xù)不斷地將數(shù)據(jù)傳輸?shù)叫D(zhuǎn)式存儲介質(zhì)和從旋轉(zhuǎn)式存儲介質(zhì)中傳輸數(shù)據(jù)的情況下操作。然而,升級機(jī)器的存儲器通常對公司和終端用戶太過昂貴,或者是超出個別用戶的技能程度的。盡管存儲器本身的成本是低廉的,但是涉及到物理地打開每臺機(jī)器并添加RAM的勞動量和停機(jī)時間可能花費(fèi)幾百美元。
升級機(jī)器的存儲器太過昂貴的另一個問題是在系統(tǒng)需要偶爾執(zhí)行比常規(guī)應(yīng)用程序更大且更復(fù)雜的應(yīng)用程序的時候。例如,公司的會計(jì)人員可能需要一個月運(yùn)行合并應(yīng)用程序幾次。更大且更復(fù)雜的應(yīng)用程序需要更多的存儲器來有效地運(yùn)行。盡管存儲器本身的成本是低廉的,但是涉及到物理地打開每臺機(jī)器并添加RAM的勞動量和停機(jī)時間可能花費(fèi)幾百美元。該成本對于用于幾次運(yùn)行應(yīng)用程序的額外存儲器可能不是合適的。
發(fā)明內(nèi)容
本發(fā)明針對一種改進(jìn)的存儲器管理體系結(jié)構(gòu),它提供了一種利用外部存儲器(易失性或非易失性)設(shè)備來高速緩存來自硬盤(即,磁盤扇區(qū))和/或較慢的存儲器組件的扇區(qū)以改進(jìn)系統(tǒng)性能的系統(tǒng)、方法和機(jī)制。當(dāng)外部存儲器設(shè)備(EMD)被插入至計(jì)算設(shè)備或其中連接計(jì)算設(shè)備的網(wǎng)絡(luò)上時,系統(tǒng)識別該EMD并使用磁盤扇區(qū)和/或存儲器扇區(qū)來填充EMD。系統(tǒng)將定向到扇區(qū)的I/O讀請求路由到EMD高速緩存而非實(shí)際的扇區(qū)。如果EMD被連接至USB2局部總線,則訪問時間可以比從硬盤中讀取快20倍。對EMD的使用以向計(jì)算設(shè)備添加存儲器的成本的一小部分提高了計(jì)算設(shè)備系統(tǒng)的性能和生產(chǎn)率。另外,諸如Xbox等消費(fèi)者設(shè)備可以使用EMD的存儲器來運(yùn)行更豐富的軟件。
系統(tǒng)檢測何時對于該計(jì)算設(shè)備第一次使用EMD。檢測EMD的類型并安裝用于在EMD上高速緩存磁盤扇區(qū)的驅(qū)動程序。該驅(qū)動程序使用EMD作為異步高速緩存,從而高速緩存了來自系統(tǒng)上的任何磁盤和/或較慢的存儲器設(shè)備的扇區(qū)。如果沒有關(guān)于在頻繁訪問方面哪些扇區(qū)更有價值的先驗(yàn)知識,系統(tǒng)可以使用計(jì)算機(jī)器上的數(shù)據(jù)來確定使用哪些扇區(qū)來填充EMD高速緩存?;蛘撸?dāng)在操作期間訪問一特定扇區(qū)時,系統(tǒng)使用該特定扇區(qū)來填充EMD高速緩存。當(dāng)下一次要訪問該特定扇區(qū)用于讀操作時,系統(tǒng)指示讀操作訪問來自EMD的副本。
系統(tǒng)可以跟蹤使用模式并確定哪些磁盤扇區(qū)是最頻繁訪問的。在對EMD的后續(xù)使用中,系統(tǒng)將那些最頻繁被訪問的扇區(qū)高速緩存至EMD。如果當(dāng)計(jì)算設(shè)備通電時EMD存在,那么可以使用操作系統(tǒng)啟動過程中的數(shù)據(jù)來重新填充EMD。
當(dāng)參考附圖開始閱讀以下說明性實(shí)施例的詳細(xì)描述時,本發(fā)明的另外的特征和優(yōu)點(diǎn)會變得顯而易見。
盡管所附權(quán)利要求書使用特性描述了本發(fā)明的特征,但是本發(fā)明及其目標(biāo)和優(yōu)點(diǎn)可以結(jié)合附圖從以下具體實(shí)施方式
中得到最好的理解,附圖中圖1是概括地示出其上駐留本發(fā)明的示例性計(jì)算機(jī)系統(tǒng)的框圖;圖2是示出根據(jù)本發(fā)明的一個方面的存儲器管理體系結(jié)構(gòu)的框圖;以及圖3a-3b是概括地示出本發(fā)明在使用外部存儲器設(shè)備來改進(jìn)系統(tǒng)性能時所采取的步驟的流程圖。
具體實(shí)施例方式
本發(fā)明針對一種改進(jìn)的存儲器管理體系結(jié)構(gòu),該體系結(jié)構(gòu)提供了一種使用外部存儲器(易失性或非易失性)設(shè)備來高速緩存來自硬盤的扇區(qū)(即,磁盤扇區(qū))或來自較慢存儲器設(shè)備的扇區(qū)以改進(jìn)系統(tǒng)性能的系統(tǒng)、方法和機(jī)制。例如,眾多種類的便攜式計(jì)算設(shè)備不含有硬盤驅(qū)動器或旋轉(zhuǎn)式介質(zhì)存儲設(shè)備,但是仍實(shí)現(xiàn)分層存儲器體系結(jié)構(gòu)。這些便攜式計(jì)算設(shè)備會從本發(fā)明中大大獲益,因?yàn)楸景l(fā)明允許這些設(shè)備在辦公室內(nèi)執(zhí)行更大且更復(fù)雜的企業(yè)應(yīng)用程序。隨著802.11n的出現(xiàn),200-500Mb無線連接可以對任何無線設(shè)備可用,且對外部存儲器設(shè)備和/或基于存儲器服務(wù)器的網(wǎng)絡(luò)的使用會改進(jìn)系統(tǒng)性能。
外部存儲器用于高速緩存來自在訪問數(shù)據(jù)方面一般較慢的設(shè)備的數(shù)據(jù),使得對由應(yīng)用程序/操作系統(tǒng)所使用的數(shù)據(jù)的訪問時間可以更快,從而改進(jìn)性能。對在其中添加實(shí)際RAM太過昂貴的較老的計(jì)算設(shè)備,使用外部存儲器設(shè)備會以該成本的一小部分來增加該較老設(shè)備的性能和生產(chǎn)率,并使得用戶能夠在現(xiàn)有硬件上獲取對較新的軟件應(yīng)用程序的可靠性、安全性和生產(chǎn)率的改進(jìn)。例如,諸如Xbox等消費(fèi)者設(shè)備通過以改進(jìn)的圖形和性能運(yùn)行更豐富的軟件來獲益。另外,對該目的所需的存儲器數(shù)量可能大大少于將系統(tǒng)更新至給定水平所需的存儲器的數(shù)量。
轉(zhuǎn)向附圖,本發(fā)明被示為在合適的計(jì)算環(huán)境中實(shí)現(xiàn),附圖中,同樣的參考標(biāo)號指的是同樣的元素。盡管不是必需的,但本發(fā)明可在諸如由個人計(jì)算機(jī)執(zhí)行的程序模塊等計(jì)算機(jī)可執(zhí)行指令的通用語境中描述。一般而言,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。此外,本領(lǐng)域的技術(shù)人員可以理解,本發(fā)明可以使用其它計(jì)算機(jī)系統(tǒng)配置來實(shí)現(xiàn),包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程消費(fèi)者電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、大型計(jì)算機(jī)等。本發(fā)明也可以在分布式計(jì)算環(huán)境中實(shí)現(xiàn),其中任務(wù)由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備來執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲器存儲設(shè)備中。
圖1示出了可在其上實(shí)現(xiàn)本發(fā)明的合適的計(jì)算系統(tǒng)環(huán)境100的示例。計(jì)算系統(tǒng)環(huán)境100只是合適的計(jì)算環(huán)境的一個示例,并不旨在對本發(fā)明的使用范圍或功能提出任何限制。也不應(yīng)該把計(jì)算環(huán)境100解釋為對示例性操作環(huán)境100中示出的任一組件或其組合有任何依賴性或要求。
本發(fā)明可用眾多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置來操作。適合在本發(fā)明中使用的公知的計(jì)算系統(tǒng)、環(huán)境和/或配置的示例包括,但不限于,個人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持或膝上型設(shè)備、圖形輸入板設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)者電子產(chǎn)品、網(wǎng)絡(luò)PC、游戲控制臺、智能電話、個人數(shù)據(jù)助理、小型機(jī)、大型機(jī)、包含上述系統(tǒng)或設(shè)備中的任一個的分布式計(jì)算機(jī)環(huán)境等。
本發(fā)明可在諸如由計(jì)算機(jī)執(zhí)行的程序模塊等計(jì)算機(jī)可執(zhí)行指令的通用語境中描述。一般而言,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。本發(fā)明也可以在分布式計(jì)算環(huán)境中實(shí)現(xiàn),其中任務(wù)由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備來執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲器存儲設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲介質(zhì)中。
參考圖1,用于實(shí)現(xiàn)本發(fā)明的一個示例性系統(tǒng)包括計(jì)算機(jī)110形式的通用計(jì)算設(shè)備。計(jì)算機(jī)110的組件可以包括,但不限于,處理單元120、系統(tǒng)存儲器130和將包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可以是若干類型的總線結(jié)構(gòu)中的任一種,包括存儲器總線或存儲器控制器、外圍總線和使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。作為示例,而非限制,這樣的體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、擴(kuò)展的ISA(EISA)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(VESA)局部總線和外圍部件互連(PCI)總線(也被稱為Mezzanine總線)。
計(jì)算機(jī)110通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是能夠被計(jì)算機(jī)110訪問的任何可用介質(zhì),且包括易失性和非易失性介質(zhì)、可移動和不可移動介質(zhì)。作為示例,而非限制,計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲介質(zhì)包括以任何方法或技術(shù)實(shí)現(xiàn)的用于存儲諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的易失性和非易失性、可移動和不可移動介質(zhì)。計(jì)算機(jī)存儲介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設(shè)備、或能用于存儲所需信息且可以由計(jì)算機(jī)110訪問的任何其它介質(zhì)。通信介質(zhì)通常具體化為諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),且包含任何信息傳遞介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”指的是這樣一種信號,其一個或多個特征以在信號中編碼信息的方式被設(shè)定或更改。作為示例,而非限制,通信介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡(luò)或直接線連接,以及無線介質(zhì),諸如聲學(xué)、RF、紅外線和其它無線介質(zhì)。上述中任一個的組合也應(yīng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。
系統(tǒng)存儲器130包括易失性或非易失性存儲器形式的計(jì)算機(jī)存儲介質(zhì),諸如只讀存儲器(ROM)131和隨機(jī)存取存儲器(RAM)132?;据斎?輸出系統(tǒng)133(BIOS)包含有助于諸如啟動時在計(jì)算機(jī)110中元件之間傳遞信息的基本例程,它通常存儲在ROM 131中。RAM 132通常包含處理單元120可以立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。作為示例,而非限制,圖1示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計(jì)算機(jī)110也可以包括其它可移動/不可移動、易失性/非易失性計(jì)算機(jī)存儲介質(zhì)。僅作為示例,圖1示出了從不可移動、非易失性磁介質(zhì)中讀取或向其寫入的硬盤驅(qū)動器141,從可移動、非易失性磁盤152中讀取或向其寫入的磁盤驅(qū)動器151,以及從諸如CD ROM或其它光學(xué)介質(zhì)等可移動、非易失性光盤156中讀取或向其寫入的光盤驅(qū)動器155??梢栽谑纠圆僮鳝h(huán)境中使用的其它可移動/不可移動、易失性/非易失性計(jì)算機(jī)存儲介質(zhì)包括,但不限于,盒式磁帶、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅(qū)動器141通常由不可移動存儲器接口,諸如接口140連接至系統(tǒng)總線121,磁盤驅(qū)動器151和光盤驅(qū)動器155通常由可移動存儲器接口,諸如接口150連接至系統(tǒng)總線121。
以上描述和在圖1中示出的驅(qū)動器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲介質(zhì)為計(jì)算機(jī)110提供了對計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)(例如,多媒體數(shù)據(jù)、音頻數(shù)據(jù)、視頻數(shù)據(jù)等)的存儲。例如,在圖1中,硬盤驅(qū)動器141被示為存儲操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137相同或不同。操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147在這里被標(biāo)注了不同的標(biāo)號是為了說明至少它們是不同的副本。用戶可以通過輸入設(shè)備,諸如鍵盤162和定點(diǎn)設(shè)備161(通常指鼠標(biāo)、跟蹤球或觸摸墊)、麥克風(fēng)163以及圖形輸入板或電子數(shù)字化儀164向計(jì)算機(jī)110輸入命令和信息。其它輸入設(shè)備(未示出)可以包括操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等。這些和其它輸入設(shè)備通常由耦合至系統(tǒng)總線的用戶輸入接口160連接至處理單元120,但也可以由其它接口或總線結(jié)構(gòu),諸如并行端口、游戲端口或通用串行總線(USB)連接。監(jiān)視器191或其它類型的顯示設(shè)備也經(jīng)由接口,諸如視頻接口190連接至系統(tǒng)總線121。監(jiān)視器191也可以與觸摸屏面板或其類似物集成。注意,監(jiān)視器和/或觸摸屏面板可以被物理地耦合至包含計(jì)算設(shè)備110的外殼,諸如在圖形輸入板類型的個人計(jì)算機(jī)中那樣。此外,諸如計(jì)算設(shè)備110的計(jì)算機(jī)也可以包括其它外圍輸出設(shè)備,諸如揚(yáng)聲器197和打印機(jī)196,它們可以通過輸出外圍接口195或其類似物連接。
計(jì)算機(jī)110可使用至一個或多個遠(yuǎn)程計(jì)算機(jī),諸如遠(yuǎn)程計(jì)算機(jī)180的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)180可以是個人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其它常見網(wǎng)絡(luò)節(jié)點(diǎn),且通常包括上文相對于計(jì)算機(jī)110描述的許多或所有元件,盡管在圖1中只示出存儲器存儲設(shè)備181。圖1中所示邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可以包括其它網(wǎng)絡(luò)。這樣的網(wǎng)絡(luò)環(huán)境在辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。例如,計(jì)算機(jī)系統(tǒng)110可以包括從中遷移數(shù)據(jù)的源機(jī)器,而遠(yuǎn)程計(jì)算機(jī)180可以包括目標(biāo)機(jī)器。然而,注意到,源機(jī)器和目標(biāo)機(jī)器不需要由網(wǎng)絡(luò)或任何其它手段連接,而是相反,數(shù)據(jù)可以經(jīng)由能夠由源平臺寫入并由一個或多個目標(biāo)平臺讀取的任何介質(zhì)來遷移。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時,計(jì)算機(jī)110通過網(wǎng)絡(luò)接口或適配器170連接至局域網(wǎng)171。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時,計(jì)算機(jī)110通常包括調(diào)制解調(diào)器172或用于通過諸如因特網(wǎng)等WAN 173建立通信的其它裝置。調(diào)制解調(diào)器172可以是內(nèi)部或外部的,它可以通過用戶輸入接口160或其它合適的機(jī)制連接至系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán)境中,相對于計(jì)算機(jī)110所描述的程序模塊或其部分可以存儲在遠(yuǎn)程存儲器存儲設(shè)備中。作為示例,而非限制,圖1示出了遠(yuǎn)程應(yīng)用程序185駐留在存儲器設(shè)備181上??梢岳斫猓镜木W(wǎng)絡(luò)連接是示例性的,且可以使用在計(jì)算機(jī)之間建立通信鏈路的其它手段。
在隨后的描述中,將參考由一臺或多臺計(jì)算機(jī)執(zhí)行的動作和操作的符號表示來描述本發(fā)明,除非以其它方式指明。如此,可以理解,有時被稱為計(jì)算機(jī)執(zhí)行的這樣的動作和操作包括計(jì)算機(jī)的處理單元對以結(jié)構(gòu)化形式表示數(shù)據(jù)的電子信號的操縱。該操縱轉(zhuǎn)換了數(shù)據(jù)或在計(jì)算機(jī)的存儲器系統(tǒng)中的位置上維護(hù)該數(shù)據(jù),從而以本領(lǐng)域的技術(shù)人員都理解的方式重新配置或改變了計(jì)算機(jī)的操作。維護(hù)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是含有由數(shù)據(jù)的格式定義的特定屬性的存儲器的物理位置。然而,盡管本發(fā)明是在前述的環(huán)境中描述的,但是如本領(lǐng)域的技術(shù)人員可以理解的,它不旨在限制,之后描述的多個動作和操作也可以在硬件中實(shí)現(xiàn)。
現(xiàn)在轉(zhuǎn)到圖2,本發(fā)明提供了存儲器管理器200,它控制常規(guī)設(shè)備存儲器202且與外部存儲器設(shè)備(EMD)管理器204進(jìn)行通信。EMD管理器204在存儲器管理器204下方,且在物理硬件2061、2062、208和網(wǎng)絡(luò)210上方。物理硬件可以是位于本地的或可經(jīng)由網(wǎng)絡(luò)來訪問的硬盤驅(qū)動器、諸如CD驅(qū)動器、DVD驅(qū)動器或復(fù)合CD/DVD驅(qū)動器的多媒體驅(qū)動器、光盤等。盡管EMD管理器204被單獨(dú)示出,但是可以認(rèn)識到,EMD管理器204可以與存儲器管理器200集成。EMD管理器204檢測外部存儲器設(shè)備(EMD)212何時可經(jīng)由諸如即插即用等的常規(guī)方法來訪問。EMD 212可以是可被插入至計(jì)算設(shè)備的可移動固態(tài)非易失性存儲器設(shè)備的形式,諸如根據(jù)由CompactFlash協(xié)會維護(hù)的CompactFlash規(guī)范的設(shè)備等。它也可以是易失性存儲器設(shè)備的形式。實(shí)際上,EMD可以被容納在現(xiàn)有的外部附加產(chǎn)品上,諸如鼠標(biāo)、鍵盤或網(wǎng)絡(luò)附加設(shè)備,且在同一時刻可以存在多個這樣附加設(shè)備。外部存儲器設(shè)備的另一個替換位置是位于網(wǎng)絡(luò)210上的遠(yuǎn)程位置或是諸如服務(wù)器上的存儲器等網(wǎng)絡(luò)基礎(chǔ)架構(gòu)的一部分。
本發(fā)明可充分利用可在EMD中使用的存儲器以在存儲器中維護(hù)可能被應(yīng)用程序使用的磁盤扇區(qū),并指導(dǎo)定向到位于被復(fù)制至EMD存儲器的磁盤扇區(qū)中的數(shù)據(jù)的I/O請求從EMD存儲器中讀取而非從磁盤上的扇區(qū)中讀取。
參考圖3a和3b,現(xiàn)在描述本發(fā)明執(zhí)行來利用外部存儲器設(shè)備的步驟。在隨后的描述中,用來描述本發(fā)明的扇區(qū)將駐留在硬盤驅(qū)動器206上。盡管本發(fā)明是在前述環(huán)境中描述的,但正如本領(lǐng)域的技術(shù)人員可以理解的,它不旨在限制,來自諸如CD/DVD設(shè)備208等需要自旋到位的其他設(shè)備的磁盤扇區(qū)可以被高速緩存在磁盤上。高速緩存的扇區(qū)也可以駐留在較慢的存儲器設(shè)備上。盡管圖3a和3b順序地示出各步驟,但是應(yīng)該理解,這些步驟可以按不同的順序和/或并行地采取。EMD管理器204檢測EMD 212何時可用(步驟300)。檢測EMD的一種方法是2004年5月3日提交的名為“Non-Volatile Memory Cache Performance Improvement(非易失性存儲器高速緩存性能改進(jìn))”的美國專利申請第10/837,986號中所描述的檢測接口,該申請通過整體引用包含在此。可以使用諸如常規(guī)的即插即用方法等其它方法。確定EMD 212中可用的存儲器的大小和類型。如果EMD 212在計(jì)算設(shè)備中第一次使用,那么為EMD 212安裝驅(qū)動程序(步驟302)。該驅(qū)動程序用于與EMD212通信,并使用EMD作為異步塊高速緩存來高速緩存來自系統(tǒng)上的磁盤206的扇區(qū)。在EMD可能緩慢并且等待它被更新可能會導(dǎo)致對原始讀請求的等待時間增加的情況下,對高速緩存的更新是異步的。
如果有其它EMD可供使用,則系統(tǒng)通過將那些更可能被使用的磁盤扇區(qū)高速緩存在與其它可用EMD相比擁有更好的帶寬和等待時間的EMD上來對如何填充EMD區(qū)分優(yōu)先次序(步驟304)。某些計(jì)算設(shè)備會跟蹤磁盤使用情況,諸如哪個磁盤扇區(qū)最頻繁被操作系統(tǒng)和應(yīng)用程序訪問、最近訪問次數(shù)、訪問模式、訪問頻率等。如果該歷史記錄是可使用的,那么基于該歷史記錄填充EMD(步驟306)。如果該歷史記錄不可用,那么使用在應(yīng)用程序從磁盤中讀取的過程中應(yīng)用程序(或計(jì)算設(shè)備)所訪問的磁盤扇區(qū)來填充EMD。注意,EMD可以用EMD所需的格式來填充。跟蹤磁盤扇區(qū)的使用情況信息(即,歷史記錄)來確定在下一次EMD可使用時應(yīng)該將哪些扇區(qū)鏡像至EMD上。使用的算法類似于如在2002年12月20提交的名為“Methods and Mechanisms for Proactive Memory Management(用于搶先存儲器管理的方法和機(jī)制)”的美國專利申請第10/325,591號中描述用于搶先管理頁存儲器的算法,該申請通過整體引用包含在此。不同之處在于,本發(fā)明確定哪些磁盤扇區(qū)對高速緩存是有用的,而非確定存儲器中的哪些頁對高速緩存是有用的。
在其中計(jì)算設(shè)備位于網(wǎng)絡(luò)化系統(tǒng)中的一個實(shí)施例中,網(wǎng)絡(luò)服務(wù)器保留關(guān)于該計(jì)算機(jī)設(shè)備的信息,并采用協(xié)助EMD管理器204為計(jì)算設(shè)備管理本地存儲器的遠(yuǎn)程算法。該實(shí)施例尤其適用于不擁有存儲器或計(jì)算機(jī)能力來確定應(yīng)該高速緩存哪些磁盤扇區(qū)的低端客戶機(jī)。該遠(yuǎn)程算法在客戶機(jī)上執(zhí)行對數(shù)據(jù)模式、訪問模式等的詳細(xì)分析,并產(chǎn)生比該低端客戶機(jī)可以產(chǎn)生的更多的最優(yōu)結(jié)果。
在操作期間,應(yīng)用程序或計(jì)算設(shè)備可以向被復(fù)制到EMD的磁盤扇區(qū)寫入。EMD從不被應(yīng)用程序或計(jì)算設(shè)備寫入。而是,寫操作被應(yīng)用于磁盤扇區(qū)。當(dāng)寫操作完成后,磁盤扇區(qū)被復(fù)制回EMD(步驟310)。使用該方法,使得如果移除了該EMD,不會丟失數(shù)據(jù),諸如遠(yuǎn)程文件系統(tǒng)中當(dāng)?shù)竭h(yuǎn)程文件系統(tǒng)的鏈接不可操作時的情況;相反,計(jì)算設(shè)備從磁盤中讀取而非從EMD中讀取。結(jié)果,本發(fā)明對諸如連接丟失、EMD移除等連接性問題更有抵抗力。
只要接收到I/O讀請求,EMD管理器204就檢查該請求是否定向到已經(jīng)被復(fù)制到EMD 212的存儲器的磁盤扇區(qū)。如果讀請求定向到已經(jīng)被復(fù)制到EMD的存儲器的磁盤扇區(qū),那么EMD管理器204將該讀請求重定向至EMD(步驟312)。結(jié)果是與在硬盤206上完成讀請求相比,該讀請求能夠更快地完成。
用戶可以在任何時間移除EMD 212。當(dāng)EMD被移除時,系統(tǒng)檢測到該移除。如果有其它EMD可用,則如果移除的EMD不是可用的最慢EMD,那么重新填充剩余的EMD(步驟314)。如果其它EMD不可用(或者如果移除的EMD是最慢的EMD),那么從硬盤中讀取數(shù)據(jù)(步驟316)。無論何時添加或移除EMD,重復(fù)步驟300到316,只要有EMD可用就重復(fù)步驟310和312。
注意,如果EMD是非易失性的,那么在斷電過程中或當(dāng)休眠時,EMD存儲器可以用帶有配置數(shù)據(jù)的扇區(qū)來重新填充。在通電或恢復(fù)過程中,當(dāng)磁盤自旋到位時,EMD的內(nèi)容可以被讀取。對該技術(shù)的使用可以減少計(jì)算機(jī)系統(tǒng)的引導(dǎo)時間和休眠喚醒時間??梢栽?002年6月27日提交的、名為“Apparatus and Method toDecrease Boot Time and Hibernate Awaken Time of a Computer System(用于減少計(jì)算機(jī)系統(tǒng)的引導(dǎo)時間和休眠喚醒時間的裝置和方法)”的美國專利申請第10/186,164號中找到進(jìn)一步的細(xì)節(jié),該申請通過整體引用包含在此。
既然已經(jīng)描述了總體步驟,將討論性能的改進(jìn)。確定可從外部存儲器設(shè)備預(yù)期的性能改進(jìn)的關(guān)鍵因素是傳輸?shù)却龝r間和EMD及其總線(例如,USB1/2、PCMCIA、以太網(wǎng)100BaseT等)的吞吐量、外部存儲器的大小、在管理高速緩存時使用的策略以及如何使用外部存儲器的情形和工作量。
對可插入的最典型總線EMD的傳輸?shù)却龝r間和吞吐量是不同的。如果EMD由可以被插入到特定總線的作為設(shè)備封裝的常規(guī)RAM構(gòu)成,則預(yù)期到總線會成為大多數(shù)操作的主要瓶頸。通過發(fā)出應(yīng)該命中插入該總線的磁盤的磁道緩沖區(qū)(一般為常規(guī)存儲器)的增加大小的(4KB、8KB、16KB、32KB和64KB)未緩沖磁盤I/O來估算USB1、USB2和PCI/PCMCIA的總線等待時間以及吞吐量。以下表1中的值是通過簡單地將用于傳輸I/O大小的時間擬合為直線而得到的。
表1為了如磁盤高速緩存那樣有意義,從EMD復(fù)制數(shù)據(jù)必須比從磁盤中取得數(shù)據(jù)更快。涉及到尋道的4KB隨機(jī)磁盤I/O無論何處都在典型的臺式機(jī)和膝上型計(jì)算機(jī)磁盤上花費(fèi)5-15ms。假設(shè)對帶有尋道的4KB磁盤I/O花費(fèi)10ms,那么從PCMCIA的EMD高速緩存檢索數(shù)據(jù)可以快60倍,或從USB2的EMD檢索數(shù)據(jù)可以快20倍??傮w上,USB2似乎是用于插入到EMD中的非常適合的總線。
應(yīng)該注意到,USB1的一個問題是4ms的啟動時間可能會使得不可能獲得任何性能收益。這可以通過總是保持等式傳輸通道開放來解決。因而,從USB1上的EMD獲取4KB一般是使用尋道從磁盤上獲取其的速度的兩倍。由于在USB1上的低吞吐速率,直接到磁盤進(jìn)行16KB、32KB和64KB I/O仍比通常可以在客戶機(jī)系統(tǒng)上見到的更快。然而,僅用于通常用4KB隨機(jī)I/O來訪問的頁文件和文件系統(tǒng)元數(shù)據(jù)的USB 1高速緩存仍然可以提供性能的改進(jìn)。
僅在發(fā)行了Windows XP的服務(wù)包1后,才開始采用USB 2??蓮腅MD獲益最多的大多數(shù)64MB和128MB系統(tǒng)一般不含有USB 2。然而這些系統(tǒng)通常具有100BaseT以太網(wǎng)卡。10MB/s的傳輸時間對于從EMD獲得的顯著的性能增益是足夠的。EMD可以作為每個計(jì)算機(jī)的穿過網(wǎng)絡(luò)的設(shè)備來附加,或者可以甚至被推入網(wǎng)絡(luò)交換機(jī)中來改進(jìn)小型計(jì)算機(jī)網(wǎng)絡(luò)的性能。超出交換機(jī)會引起由于共享的網(wǎng)絡(luò)帶寬的眾多可靠性和安全問題,但仍可以完成。
如同任何高速緩存一樣,用于管理在高速緩存中保存哪些數(shù)據(jù)的實(shí)際策略是確定最后得到的性能增益的重要因素。如果EMD用作底層磁盤和其它設(shè)備的塊高速緩存,那么EMD高速緩存可以在從底層設(shè)備的讀取完成時填充,也可以在從應(yīng)用程序和文件系統(tǒng)發(fā)出寫請求時填充。如前所述,EMD高速緩存中的數(shù)據(jù)需要被異步地更新,以避免對原始設(shè)備請求增加時間。如果一個請求是針對正在被異步更新的范圍,那么它可以簡單地被往下轉(zhuǎn)送給底層設(shè)備。如果該異步更新未完成,則必然存在啟動更新的對該相同范圍的非常近期的請求,且該范圍的數(shù)據(jù)可能被高速緩存在設(shè)備(例如,磁道緩沖區(qū))或控制器上。
通常使用LRU算法來管理塊高速緩存。在該算法中,無論何時讀請求命中或未命中高速緩存,所引用的塊都被放至LRU列表的尾部。當(dāng)讀取或?qū)懭氩晃挥诟咚倬彺嬷械膲K時,LRU列表前部的塊被重新用來高速緩存新塊的內(nèi)容。結(jié)果,LRU算法易于腐蝕,因?yàn)楦咚倬彺嬷杏袃r值的塊隨時間抖動。諸如將列表分成多個優(yōu)先級子列表并維護(hù)超過最近訪問時間的更豐富用戶歷史記錄的那些算法會是更有彈性的。
在Windows NT上,文件和頁數(shù)據(jù)的高速緩存是由存儲器管理器通過備用頁列表來完成的。文件系統(tǒng)、注冊表和其它系統(tǒng)組件使用文件對象/映射機(jī)制來經(jīng)由存儲器和高速緩存管理器在相同的等級上高速緩存器其數(shù)據(jù)。如果另一高速緩存被置于任何其它的等級,會引起數(shù)據(jù)的雙重高速緩存。對EMD高速緩存也是如此。為了避免這一情況,本發(fā)明的存儲器管理器可以被擴(kuò)展以將較沒有價值的備用列表頁推入至較慢的外部存儲器設(shè)備中。無論何時訪問了那些頁,存儲器管理器可以分配物理存儲器頁并從外部存儲器設(shè)備中復(fù)制回?cái)?shù)據(jù)。EMD存儲器管理器及相關(guān)聯(lián)的高速緩存管理器可以使用美國專利申請第10/325,591號提供的用于對頁面的統(tǒng)一高速緩存的搶先且有彈性的管理的頁優(yōu)先級提示。由于這會要求內(nèi)核存儲器管理器改變,對Windows X的構(gòu)建的任何EMD解決方案可能遭受數(shù)據(jù)的雙重高速緩存。模擬顯示出盡管有雙重高速緩存,但是仍舊可能獲得實(shí)質(zhì)上的性能增益。
高速緩存的另一個重要的參數(shù)是塊大小以及群集和預(yù)讀的數(shù)量。只要存在高速緩存中的未命中,即使請求的是更少量的數(shù)據(jù),也需要從底層磁盤或設(shè)備中讀取至少一個塊大小的數(shù)據(jù),且可能甚至在所請求數(shù)據(jù)偏移量周圍群集更多的塊。群集可以消除對磁盤上同一位置的將來的反向?qū)さ馈H欢?,它可能也增加了原始請求的完成時間,甚至引起LRU列表中的更多抖動,因?yàn)閷γ恳徽埱笠昧烁嗟膲K。此外,預(yù)讀可能被排隊(duì)來從磁盤上獲取更多的連續(xù)數(shù)據(jù),盡管這樣做是很有效率的,而不會影響原始請求的時間。然而,這可能會導(dǎo)致增加需要尋道設(shè)備上另一處的后續(xù)請求的等待時間。
應(yīng)該注意到,經(jīng)過諸如引導(dǎo)等功率轉(zhuǎn)換或者甚至清除高速緩存常規(guī)內(nèi)容的密集使用的時間段,高速緩存認(rèn)為有價值的設(shè)備位置的列表仍可以被持久保存。該列表可以用于在這樣的轉(zhuǎn)換之后以對后臺I/O的正確優(yōu)先化支持來重新填充高速緩存的內(nèi)容。
如同任何性能分析一樣,考慮代表性的場景和工作量來取得有意義且有用的數(shù)據(jù)是至關(guān)重要的。為了表現(xiàn)可以從現(xiàn)有Windows(XP和2000)上的EMD高速緩存中預(yù)期的性能改進(jìn)的特征,執(zhí)行了使用在磁盤等級上的簡單LRU直寫塊高速緩存的實(shí)驗(yàn)。如上所述,這會遭受數(shù)據(jù)的雙重高速緩存。然而,這些實(shí)驗(yàn)更易于仿真、模擬和實(shí)際上構(gòu)建這樣的EMD高速緩存并測量其影響。結(jié)果顯示,即使這樣的簡單高速緩存也可以對磁盤和系統(tǒng)性能產(chǎn)生很大的影響。與計(jì)算設(shè)備的存儲器管理器的集成和使用更智能的策略會進(jìn)一步增加收益。
因?yàn)檫@些實(shí)驗(yàn)主要為磁盤訪問而高速緩存,因此高速緩存的成功可以通過比較在不使用高速緩存和使用高速緩存的各種配置時用于從代表性的工作量或情形中捕捉的同一組磁盤訪問的重現(xiàn)的總時間來測量。在大多數(shù)客戶機(jī)情形中,磁盤讀取時間的減少導(dǎo)致在響應(yīng)性或基準(zhǔn)分?jǐn)?shù)的成比例的增長。
為了確定EMD高速緩存在實(shí)際影響,考慮兩個情形。一個情形使用在128MB和256MB系統(tǒng)上數(shù)小時內(nèi)從真實(shí)的終端用戶系統(tǒng)捕捉的磁盤軌跡。另一個情形使用從諸如Business Winstone 2001、Content Creation Winstone 2002以及使用Office2003應(yīng)用程序的Business Winstone修訂版的工業(yè)基準(zhǔn)中獲取的磁盤軌跡。以多種存儲器大小獲取軌跡,所以可以比較從簡單EMD高速緩存到實(shí)際上增加系統(tǒng)存儲器大小的增益。
EMD設(shè)備可以通過使用常規(guī)塊高速緩存并基于所需EMD總線對高速緩存添加延遲來準(zhǔn)確地仿真。當(dāng)從存儲器復(fù)制所請求的字節(jié)之后,可基于諸如表1的啟動時間和吞吐量值來確定為所需EMD總線計(jì)算的傳輸時間。
該估算的過程用于使用/maxmem boot.ini開關(guān)配置目標(biāo)系統(tǒng)來以目標(biāo)存儲器大小運(yùn)行;運(yùn)行典型使用情形或工業(yè)基準(zhǔn)并跟蹤生成的磁盤I/O;使用高速緩存大小和EMD設(shè)備的吞吐量/等待時間所需的參數(shù)來配置塊高速緩存;重放所跟蹤的磁盤I/O并捕捉由于高速緩存未命中而導(dǎo)致的磁盤I/O;以及比較兩次運(yùn)行的時間和磁盤訪問。
理想上,各情形應(yīng)該使用恰當(dāng)配置的塊高速緩存以及比較的最終結(jié)果(響應(yīng)時間或基準(zhǔn)分?jǐn)?shù))來運(yùn)行。然而,如果已經(jīng)建立磁盤時間和最終結(jié)果之間的鏈接,對需要評估的眾多EMD配置,僅回放捕捉的磁盤I/O消耗更少的時間。使用簡單的模擬器來大致估算從EMD高速緩存獲得的潛在增益。這允許來自128MB顧客系統(tǒng)和來自內(nèi)部開發(fā)系統(tǒng)的長達(dá)數(shù)小時的磁盤軌跡處理,并測量EMD高速緩存的各種配置的影響。為了進(jìn)一步簡化事物,集中于磁盤用于處理讀請求的時間,而忽略磁盤寫時間。代表性尋道時間是通過忽略小于2ms和大于20ms的尋道時間來確定的。磁頭的最后幾個位置被劃分磁道來模擬“磁道緩沖”。盡管有上述的復(fù)雜性,然而磁盤模擬通常在可接受的范圍內(nèi)75%的預(yù)測在實(shí)際時間的15%之內(nèi)。任何錯誤預(yù)測一般是由于保守的模擬和對較高磁盤讀時間的預(yù)測。即使磁盤模擬器不能總是準(zhǔn)確地捕捉磁盤在特定軌跡上的性能特征,但是其自身的性能特征對實(shí)際的臺式機(jī)/膝上型計(jì)算機(jī)磁盤是有代表性和典型性的。
表2示出了在磁盤軌跡的EMD高速緩存模擬中的磁盤讀時間的減少,這是在實(shí)際使用各種計(jì)算系統(tǒng)數(shù)小時的操作過程中獲取的。
表2-實(shí)際終端用戶對系統(tǒng)的使用從EMD高速緩存獲得的增益作為如何解釋表2中的數(shù)據(jù)的示例,考慮系統(tǒng)1128MB USB2 EMD設(shè)備會造成當(dāng)前用戶體驗(yàn)的磁盤讀取時間的37%(即,減少了63%)。
系統(tǒng)1和2是來自想要在其128MB系統(tǒng)上升級至Windows XP、Office 2003以及最新的SMS的公司,但是當(dāng)運(yùn)行其業(yè)務(wù)線軟件時,命中率顯著下降。系統(tǒng)3的軌跡是來自膝上型計(jì)算機(jī)。可以看到,這些系統(tǒng)中的最大的改進(jìn)是使用較慢磁盤和僅128M存儲器的系統(tǒng)。
底部的三個系統(tǒng)(系統(tǒng)4、5和6)是開發(fā)者系統(tǒng),在其上執(zhí)行包括構(gòu)建、同步和處理大文件的重量開發(fā)任務(wù)。這些系統(tǒng)擁有較快的磁盤,且由這些任務(wù)生成的大多數(shù)磁盤I/O是順序的,不能從簡單的LRU塊高速緩存中獲益同樣多,因?yàn)樗鼈儾粫啻沃匦略L問磁盤上的同一扇區(qū)(例如,同步)。這樣,總的磁盤時間不是作為終端用戶響應(yīng)性的代表。高速緩存可以顯著地減少用于U1分塊磁盤讀取的時間。
表3示出了對在使用Content Creation Winstone 2002過程中獲取的磁盤軌跡的EMD高速緩存模擬中的磁盤讀取時間的減少。
表3-從Content Creation Winstone 2002的EMD高速緩存中獲得的增益表4示出了使用Business Winstone 2001過程中獲取的磁盤軌跡的EMD高速緩存模擬中的磁盤讀取時間的減少。
表4-從Business Winstone 2001的EMD高速緩存中獲取的增益同前述情況中一樣,在使用128MB和較慢的磁盤的系統(tǒng)上見到的改進(jìn)是最大的。Business Winstone 2001啟動以在256MB的存儲器中最適合,所以在該系統(tǒng)存儲器大小中,總的磁盤時間和從EMD獲得的增益較小。
表5比較了當(dāng)運(yùn)行Content Creation Winstone 2002時,向系統(tǒng)添加EMD高速緩存以實(shí)際添加更多的物理存儲器而獲得的增益。如前所述,EMD高速緩存模擬遭受數(shù)據(jù)的雙重高速緩存,且是使用簡單的LRU策略來管理的。一般而言,向系統(tǒng)添加更多的物理存儲器會提供較大數(shù)量情形中的更好的性能。另一方面,如果EMD高速緩存可以與存儲器管理器集成,且使用美國專利申請第10/325,591號可以提供的相同高級算法來管理,它就能夠提供可與向系統(tǒng)添加實(shí)際存儲器匹敵的性能增益。
表5-對從USB2EMD高速緩存與向系統(tǒng)存儲器中實(shí)際增加存儲器獲取的增益的比較從前述可見,描述了使用外部存儲器來改進(jìn)計(jì)算設(shè)備性能的系統(tǒng)和方法。本發(fā)明允許擁有小量存儲器的傳統(tǒng)計(jì)算設(shè)備和其它設(shè)備有效地升級存儲器而無需實(shí)際打開設(shè)備??梢允褂猛獠看鎯ζ髟诟旌透煽啃阅芊矫娅@得生產(chǎn)率的增益。來自于旋轉(zhuǎn)式存儲介質(zhì)和較慢存儲器設(shè)備的扇區(qū)異步地高速緩存于外部存儲器中。不像遠(yuǎn)程文件系統(tǒng),如果移除外部存儲器,不會丟失數(shù)據(jù),因?yàn)閿?shù)據(jù)仍舊在旋轉(zhuǎn)式存儲介質(zhì)或較慢的存儲器設(shè)備上。
此處引用的所有參考文獻(xiàn),包括專利、專利申請和出版物,都通過引用整體包含在此。描述本發(fā)明的語境中(尤其在所附權(quán)利要求書的語境中)的術(shù)語“一”和“一個”和“該”的使用和類似的指示詞被解釋成覆蓋單數(shù)和復(fù)數(shù),除非此處另外指出或與語境明確地抵觸。術(shù)語“包含”、“擁有”、“包括”和“含有”應(yīng)該被解釋為開端口的術(shù)語(即,意味著“包括但不限于”),除非另外指明。此處描述的所有方法可以按任何合適的順序來執(zhí)行,除非在此處另外指出或與語境明確地抵觸。此處提供的任何和所有示例或示例性語言(例如,“諸如”)的使用僅旨在更好地闡明本發(fā)明且不成為對本發(fā)明范圍的限制,除非另外要求保護(hù)。例如,Windows操作系統(tǒng)被引用來描述本發(fā)明。本領(lǐng)域的技術(shù)人員可以認(rèn)識到,本發(fā)明可以在諸如Linux、SunOs等其它操作系統(tǒng)上實(shí)現(xiàn)。說明書中沒有語言應(yīng)該被解釋為指示任何沒有要求保護(hù)的元素對本發(fā)明的實(shí)現(xiàn)是必須的。
考慮到本發(fā)明的原則可以應(yīng)用于眾多可能的實(shí)施例,應(yīng)該認(rèn)識到,此處關(guān)于附圖描述的實(shí)施例僅旨在說明性的,且不應(yīng)該作為對本發(fā)明范圍的限制。例如,本領(lǐng)域的技術(shù)人員可以認(rèn)識到,以軟件示出的所示實(shí)施例的元素可以用硬件來實(shí)現(xiàn),反之亦然,或者所示實(shí)施例可以在排列和細(xì)節(jié)上修改而不背離本發(fā)明的精神。從而,此處描述的本發(fā)明構(gòu)想了落入所附權(quán)利要求書及其等效技術(shù)方案的范圍之內(nèi)的所有這樣的實(shí)施例。
權(quán)利要求
1.一種利用外部存儲器設(shè)備來改進(jìn)含有旋轉(zhuǎn)式存儲設(shè)備的計(jì)算設(shè)備的性能的方法,包括以下步驟檢測所述外部設(shè)備何時可供所述計(jì)算設(shè)備使用;使用來自于所述旋轉(zhuǎn)式存儲設(shè)備的扇區(qū)的副本來填充所述外部存儲器設(shè)備;以及重定向來自所述計(jì)算設(shè)備或應(yīng)用程序的、對存儲在所述扇區(qū)上的數(shù)據(jù)的I/O讀請求,以從所述外部存儲器設(shè)備中透明地讀到所述計(jì)算設(shè)備或應(yīng)用程序。
2.如權(quán)利要求1所述的方法,其特征在于,所述使用來自旋轉(zhuǎn)式存儲設(shè)備的扇區(qū)填充所述外部存儲器設(shè)備的步驟包括使用來自硬盤驅(qū)動器和多媒體驅(qū)動器之一的扇區(qū)的副本來填充所述外部存儲器設(shè)備的步驟。
3.如權(quán)利要求1所述的方法,其特征在于,所述使用來自旋轉(zhuǎn)式存儲設(shè)備的扇區(qū)填充所述外部存儲器設(shè)備的步驟包括以下步驟檢測是否有使用情況歷史記錄可用;以及使用所述歷史記錄指示為可能將被使用的扇區(qū)的副本來填充所述外部存儲器設(shè)備。
4.如權(quán)利要求3所述的方法,其特征在于,還包括如果所述使用情況歷史記錄不可用,那么使用正被所述計(jì)算設(shè)備或應(yīng)用程序訪問的扇區(qū)的副本來填充所述外部存儲器設(shè)備。
5.如權(quán)利要求1所述的方法,其特征在于,還包括為所述外部存儲器設(shè)備安裝驅(qū)動程序的步驟。
6.如權(quán)利要求1所述的方法,其特征在于,所述外部存儲器設(shè)備包括多個外部存儲器設(shè)備,所述方法還包括通過填充最有可能在所述多個外部存儲器設(shè)備中的外部存儲器設(shè)備上訪問的扇區(qū),來對安裝在所述多個外部存儲器設(shè)備上的扇區(qū)區(qū)分優(yōu)先次序的步驟,所述外部存儲器設(shè)備與所述多個外部存儲器設(shè)備的其它外部存儲器設(shè)備相比擁有較好的帶寬和等待時間。
7.如權(quán)利要求1所述的方法,其特征在于,還包括以下步驟檢測寫操作何時被定向到所述旋轉(zhuǎn)式存儲設(shè)備中已經(jīng)被復(fù)制到所述外部存儲器設(shè)備上的扇區(qū);啟動對所述旋轉(zhuǎn)式存儲設(shè)備的扇區(qū)的寫操作;當(dāng)完成所述寫操作后,將所述扇區(qū)復(fù)制到所述外部存儲器設(shè)備。
8.如權(quán)利要求1所述的方法,其特征在于,還包括以下步驟檢測所述外部存儲器設(shè)備何時不再可供所述計(jì)算設(shè)備使用;以及定向來自所述計(jì)算設(shè)備或應(yīng)用程序的、對被復(fù)制到所述外部存儲器設(shè)備的扇區(qū)上的數(shù)據(jù)的I/O讀請求,以從所述旋轉(zhuǎn)式存儲設(shè)備中讀取。
9.如權(quán)利要求1所述的方法,其特征在于,所述外部存儲器設(shè)備包括多個外部存儲器設(shè)備,所述方法還包括以下步驟檢測所述外部存儲器設(shè)備中的一個何時不再可供所述計(jì)算設(shè)備使用;如果所述外部存儲器設(shè)備中的一個不是所述多個外部存儲器設(shè)備中最慢的外部存儲器設(shè)備,那么使用來自所述旋轉(zhuǎn)式存儲設(shè)備的扇區(qū)重新填充剩余的外部存儲器設(shè)備。
10.如權(quán)利要求1所述的方法,其特征在于,使用來自所述旋轉(zhuǎn)式存儲設(shè)備的扇區(qū)填充所述外部存儲器設(shè)備的步驟包括以下步驟預(yù)測哪些扇區(qū)可能將被訪問;以及使用可能被訪問的扇區(qū)填充所述外部存儲器設(shè)備。
11.如權(quán)利要求1所述的方法,其特征在于,還包括以下步驟;檢測所述計(jì)算設(shè)備何時斷電或進(jìn)入休眠;將含有配置數(shù)據(jù)的扇區(qū)復(fù)制到所述外部存儲器設(shè)備中,使得所述配置數(shù)據(jù)擁有與所述旋轉(zhuǎn)式存儲設(shè)備的自旋到位時間大致相等的初始化時間;以及當(dāng)所述旋轉(zhuǎn)式存儲設(shè)備在所述計(jì)算設(shè)備的引導(dǎo)或所述計(jì)算設(shè)備從休眠中恢復(fù)的至少一種的過程中自旋到位時,將所述外部存儲器設(shè)備中的配置數(shù)據(jù)初始化至系統(tǒng)存儲器。
12.如權(quán)利要求1所述的方法,其特征在于,用來自所述旋轉(zhuǎn)式存儲設(shè)備的扇區(qū)的副本填充所述外部存儲器設(shè)備的步驟包括使用來自所述旋轉(zhuǎn)式存儲設(shè)備的扇區(qū)的副本異步地填充所述外部存儲器設(shè)備的步驟。
13.一種利用外部存儲器設(shè)備來改進(jìn)含有旋轉(zhuǎn)式存儲設(shè)備的計(jì)算設(shè)備的性能的系統(tǒng),所述系統(tǒng)包括外部存儲器設(shè)備管理器模塊,它與所述計(jì)算設(shè)備的存儲器管理器和所述旋轉(zhuǎn)式存儲設(shè)備進(jìn)行通信,所述外部存儲器設(shè)備模塊具有至少一個含有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令用于執(zhí)行以下步驟檢測所述外部存儲器設(shè)備何時可供所述計(jì)算設(shè)備使用;使用來自所述旋轉(zhuǎn)式存儲設(shè)備的扇區(qū)的副本來填充所述外部存儲器設(shè)備;以及重定向來自所述計(jì)算設(shè)備或應(yīng)用程序的、對存儲在所述扇區(qū)上的數(shù)據(jù)的I/O讀請求,以從所述外部存儲器設(shè)備中讀取。
14.如權(quán)利要求13所述的系統(tǒng),其特征在于,使用來自所述旋轉(zhuǎn)式存儲設(shè)備的扇區(qū)來填充所述外部存儲器設(shè)備的步驟包括以下步驟檢測是否有使用情況歷史記錄可用;以及使用由所述歷史情況記錄指示為可能被使用的扇區(qū)的副本來填充所述外部存儲器設(shè)備。
15.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述外部存儲器設(shè)備管理器還具有用于執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令通過填充最有可能在所述多個外部存儲器設(shè)備中的外部存儲器設(shè)備上訪問的扇區(qū),來對安裝在所述多個外部存儲器設(shè)備上的扇區(qū)區(qū)分優(yōu)先次序,所述外部存儲器設(shè)備與所述多個外部存儲器設(shè)備中的其它外部存儲器設(shè)備相比擁有較好的帶寬和等待時間。
16.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述外部存儲器設(shè)備是遠(yuǎn)程連接至所述系統(tǒng)的。
17.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述旋轉(zhuǎn)式存儲設(shè)備包括硬盤驅(qū)動器和多媒體驅(qū)動器中的至少一個。
18.如權(quán)利要求17所述的系統(tǒng),其特征在于,所述扇區(qū)的副本是以所述多媒體驅(qū)動器所需的格式寫的。
19.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述外部存儲器設(shè)備是連接至所述計(jì)算設(shè)備的的通用串行總線2(USB2)總線的。
20.至少一個含有用于執(zhí)行如權(quán)利要求1所述的步驟的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。
21.如權(quán)利要求20所述的至少一個計(jì)算機(jī)可讀介質(zhì),其特征在于,使用來自所述旋轉(zhuǎn)式存儲設(shè)備的扇區(qū)來填充所述外部存儲器設(shè)備的步驟包括使用來自硬盤驅(qū)動器和多媒體驅(qū)動器中的一個的扇區(qū)的副本來填充所述外部存儲器設(shè)備的步驟。
22.如權(quán)利要求20所述的至少一個計(jì)算機(jī)可讀介質(zhì),其特征在于,使用來自所述旋轉(zhuǎn)式存儲設(shè)備的扇區(qū)來填充所述外部存儲器設(shè)備的步驟包括以下步驟檢測是否有使用情況歷史記錄可用;以及使用所述歷史記錄指示為可能被使用的扇區(qū)的副本來填充所述外部存儲器設(shè)備。
23.如權(quán)利要求22所述的至少一個計(jì)算機(jī)可讀介質(zhì),其特征在于,還具有用于執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令如果所述使用情況歷史記錄不可用,那么使用正被所述計(jì)算設(shè)備或應(yīng)用程序訪問的扇區(qū)的副本來填充所述外部存儲器設(shè)備。
24.如權(quán)利要求20所述的至少一個計(jì)算機(jī)可讀介質(zhì),其特征在于,還具有用于執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令為所述外部存儲器設(shè)備安裝驅(qū)動程序。
25.如權(quán)利要求20所述的至少一個計(jì)算機(jī)可讀介質(zhì),其特征在于,所述外部存儲器設(shè)備包括多個外部存儲器設(shè)備,所述至少一個計(jì)算機(jī)可讀介質(zhì)還具有用于執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令通過填充最有可能在所述多個外部存儲器設(shè)備中的外部存儲器設(shè)備上訪問的扇區(qū)來對安裝在所述多個外部存儲器設(shè)備的扇區(qū)區(qū)分優(yōu)先次序,所述外部存儲器設(shè)備與所述多個外部存儲器設(shè)備中的其它外部存儲器設(shè)備相比擁有較好的帶寬和等待時間。
26.如權(quán)利要求20所述的至少一個計(jì)算機(jī)可讀介質(zhì),其特征在于,還具有用于執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令檢測寫操作何時被定向到所述旋轉(zhuǎn)式存儲設(shè)備中已經(jīng)被復(fù)制到所述外部存儲器設(shè)備的扇區(qū);啟動對所述旋轉(zhuǎn)式存儲設(shè)備的扇區(qū)的寫操作;當(dāng)完成所述寫操作后,將所述扇區(qū)復(fù)制到所述外部存儲器設(shè)備。
27.如權(quán)利要求20所述的至少一個計(jì)算機(jī)可讀介質(zhì),其特征在于,還具有用于執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令檢測所述外部存儲器設(shè)備何時不再可供所述計(jì)算設(shè)備使用;以及定向來自所述計(jì)算設(shè)備或應(yīng)用程序的、對被復(fù)制到所述外部存儲器設(shè)備的扇區(qū)上的數(shù)據(jù)的I/O讀請求,以從所述旋轉(zhuǎn)式存儲設(shè)備中讀取。
28.如權(quán)利要求20所述的至少一個計(jì)算機(jī)可讀介質(zhì),其特征在于,所述外部存儲器設(shè)備包括多個外部存儲器設(shè)備,所述至少一個計(jì)算機(jī)可讀介質(zhì)還具有用于執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令檢測所述外部存儲器設(shè)備中的一個何時不再可供所述計(jì)算設(shè)備使用;如果所述外部存儲器設(shè)備中的一個不是所述多個外部存儲器設(shè)備中最慢的外部存儲器設(shè)備,那么使用來自所述旋轉(zhuǎn)式存儲設(shè)備的扇區(qū)重新填充剩余的外部存儲器設(shè)備。
29.如權(quán)利要求20所述的至少一個計(jì)算機(jī)可讀介質(zhì),其特征在于,使用來自所述旋轉(zhuǎn)式存儲設(shè)備的扇區(qū)填充所述外部存儲器設(shè)備的步驟包括以下步驟預(yù)測哪些扇區(qū)可能將被訪問;以及使用可能被訪問的扇區(qū)填充所述外部存儲器設(shè)備。
30.如權(quán)利要求20所述的至少一個計(jì)算機(jī)可讀介質(zhì),其特征在于,還具有用于執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令檢測所述計(jì)算設(shè)備何時斷電或進(jìn)入休眠;將含有配置數(shù)據(jù)的扇區(qū)復(fù)制到所述外部存儲器設(shè)備中,使得所述配置數(shù)據(jù)擁有與所述旋轉(zhuǎn)式存儲設(shè)備的自旋到位時間大致相等的初始化時間;以及當(dāng)所述旋轉(zhuǎn)式存儲設(shè)備在所述計(jì)算設(shè)備的引導(dǎo)或所述計(jì)算設(shè)備從休眠中恢復(fù)的至少一種的過程中自旋到位時,將所述外部存儲器設(shè)備中的配置數(shù)據(jù)初始化至系統(tǒng)存儲器。
全文摘要
本發(fā)明針對利用外部存儲器設(shè)備來高速緩存來自旋轉(zhuǎn)式存儲設(shè)備(例如,硬盤驅(qū)動器)的扇區(qū)以改進(jìn)系統(tǒng)性能的系統(tǒng)和方法。當(dāng)外部存儲器設(shè)備(EMD)被插入到計(jì)算設(shè)備或其中連接計(jì)算設(shè)備的網(wǎng)絡(luò)上時,系統(tǒng)識別EMD并使用磁盤扇區(qū)來填充EMD。系統(tǒng)將定向到磁盤扇區(qū)的I/O讀請求路由給EMD高速緩存而非實(shí)際的磁盤扇區(qū)。EMD的使用以向計(jì)算設(shè)備添加存儲器成本的一小部分增加了計(jì)算設(shè)備系統(tǒng)的性能和生產(chǎn)率。
文檔編號G06F3/06GK1770087SQ200510116208
公開日2006年5月10日 申請日期2005年10月21日 優(yōu)先權(quán)日2004年10月21日
發(fā)明者A·科圣寶姆, C·厄干, M·R·弗廷, R·L·雷瑙爾 申請人:微軟公司