專利名稱:非易失性存儲(chǔ)器高速緩存性能改進(jìn)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及計(jì)算機(jī)系統(tǒng),更特別地,涉及通過使用結(jié)合長期存儲(chǔ)單元的非易失性存儲(chǔ)器來改進(jìn)計(jì)算機(jī)系統(tǒng)的性能。
背景技術(shù):
某些存儲(chǔ)設(shè)備被用在計(jì)算機(jī)系統(tǒng)中,目的是為計(jì)算機(jī)系統(tǒng)的功能提供永久性存儲(chǔ)器。例如,一種磁性硬盤驅(qū)動(dòng)器組件是本領(lǐng)域公知的。然而,這種永久性存儲(chǔ)器有一些缺點(diǎn)。準(zhǔn)備磁性硬盤驅(qū)動(dòng)器用于讀取或?qū)懭霐?shù)據(jù)是耗費(fèi)時(shí)間的。在大多數(shù)情況下,為了這樣做,必需在物理上啟動(dòng)磁盤的旋轉(zhuǎn),并將讀/寫頭定位到合適的位置。
從存儲(chǔ)設(shè)備中讀或?qū)懙臏?zhǔn)備既耗時(shí)又耗費(fèi)功率。因此,可能會(huì)由這樣的磁性硬盤驅(qū)動(dòng)存儲(chǔ)器和它的部件產(chǎn)生噪聲。因此,需要一種用于計(jì)算基系統(tǒng)的改進(jìn)存儲(chǔ)器,彌補(bǔ)一些這些缺陷。
永久性存儲(chǔ)器的新成分和配置可以提供一些存儲(chǔ)性能的改進(jìn)。然而,簡單地使用訪問永久性存儲(chǔ)器的傳統(tǒng)技術(shù)將不會(huì)提供這些新成分和配置的全部好處。通常,操作系統(tǒng)被用來控制計(jì)算機(jī)系統(tǒng)的操作。該操作系統(tǒng)也在該計(jì)算機(jī)系統(tǒng)的其它應(yīng)用程序與硬盤之間起仲裁作用。這樣,需要例如應(yīng)用程序接口(APIs)這樣的方法以提供增強(qiáng)的性能。同樣,需要由計(jì)算機(jī)系統(tǒng)使用的、創(chuàng)建用于存儲(chǔ)的新配置和新控制技術(shù)的系統(tǒng)。
發(fā)明概述包括一個(gè)或多個(gè)長期存儲(chǔ)媒體以及非易失性存儲(chǔ)器的永久性存儲(chǔ)設(shè)備,與提供或響應(yīng)于應(yīng)用程序接口、命令和中斷的操作系統(tǒng)一起使用,允許操作系統(tǒng)或應(yīng)用程序有效地使用非易失性存儲(chǔ)器以在時(shí)間上和效率上提高性能。雖然設(shè)想該非易失性存儲(chǔ)器在物理上與長期存儲(chǔ)媒體包括在一起,但也可能將非易失性存儲(chǔ)器與長期存儲(chǔ)媒體相分離而在功能上結(jié)合以提供永久性存儲(chǔ)。
在一個(gè)實(shí)施例中,公開了允許請求長期存儲(chǔ)媒體旋轉(zhuǎn)加速或旋轉(zhuǎn)減速的應(yīng)用程序接口(APIs)。其它APIs允許請求非易失性存儲(chǔ)器被刷新或批量載入來自長期存儲(chǔ)媒體的指定地址的數(shù)據(jù)。其它APIs還允許數(shù)據(jù)被直接寫入長期存儲(chǔ)媒體中、允許數(shù)據(jù)被作為原子寫而寫入或允許寫入至非易失性存儲(chǔ)器高速緩存中的數(shù)據(jù)被忽略而不是被保存寫入長期存儲(chǔ)媒體中。另外,提供了發(fā)現(xiàn)并給出用于該存儲(chǔ)的現(xiàn)有的可得到的非易失性存儲(chǔ)器的詳細(xì)情況的請求。
在一個(gè)實(shí)施例中,非易失性存儲(chǔ)器能夠以良種方式中的一種被使用。在第一種方式中,用非易失性存儲(chǔ)器來提供高速緩存。這一高速緩存被用來作為從長期存儲(chǔ)媒體中讀取數(shù)據(jù)的讀高速緩存(讀cache),也作為向長期存儲(chǔ)媒體中寫數(shù)據(jù)的寫緩沖器。這樣,對(duì)長期存儲(chǔ)媒體的讀和寫可以在一起集群發(fā)生,而不是偶然發(fā)生,從而要求更少的讀、寫和長期存儲(chǔ)媒體的準(zhǔn)備。
一部分非易失性存儲(chǔ)器能由操作系統(tǒng)或另一應(yīng)用直接擁有。長期存儲(chǔ)媒體中的某一邏輯扇區(qū)地址(LSAs)被映射到非易失性存儲(chǔ)器,且讀取或?qū)懭脒@些LSA將在非易失性存儲(chǔ)器中執(zhí)行。該映射能夠與上述非易失性存儲(chǔ)器部分中的高速緩存一起發(fā)生。
本發(fā)明的其它特征在下面描述。
附圖簡要說明在前的概述,以及下面對(duì)優(yōu)選實(shí)施例的詳細(xì)描述,當(dāng)結(jié)合附圖閱讀時(shí)將更好理解。為了說明本發(fā)明的目的,本發(fā)明的結(jié)構(gòu)被顯示在圖例中;然而,本發(fā)明不局限于公開的具體方法和手段。在圖中
圖1是一般地說明本發(fā)明駐留的示例計(jì)算機(jī)系統(tǒng)的框圖;圖2是一般地說明本發(fā)明可以被實(shí)現(xiàn)的位置的圖1的示例計(jì)算機(jī)系統(tǒng)的框圖;圖3是根據(jù)本發(fā)明一個(gè)方面的永久性存儲(chǔ)設(shè)備的框圖;圖4是根據(jù)本發(fā)明一個(gè)方面的永久性存儲(chǔ)設(shè)備的框圖;圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例說明在操作系統(tǒng)、非易失性存儲(chǔ)器和長期存儲(chǔ)媒體之間的數(shù)據(jù)流的框圖;圖6是根據(jù)本發(fā)明一個(gè)實(shí)施例的非易失性存儲(chǔ)器的高速緩存部分的狀態(tài)的狀態(tài)圖;圖7是根據(jù)本發(fā)明一個(gè)實(shí)施例的啟動(dòng)狀態(tài)的操作的流程圖;圖8是根據(jù)本發(fā)明一個(gè)實(shí)施例的在運(yùn)行狀態(tài)中的操作的流程圖;圖9是根據(jù)本發(fā)明一個(gè)實(shí)施例的在關(guān)閉狀態(tài)中的操作的流程圖;和圖10是根據(jù)本發(fā)明一個(gè)實(shí)施例的在非易失性存儲(chǔ)器的映射部分的刷新期間的操作的流程圖。
說明性實(shí)施例的詳細(xì)描述在下面的描述中,術(shù)語“非易失性存儲(chǔ)器”將被用來表示固體狀態(tài)非易失性存儲(chǔ)器。非易失性存儲(chǔ)器意指在斷電時(shí)保持它的數(shù)據(jù)并能被擦除和以新數(shù)據(jù)再編程的任何類型的存儲(chǔ)器。非易失性存儲(chǔ)器可以包括后備電池存儲(chǔ)器。非易失性存儲(chǔ)器可以被定位在計(jì)算機(jī)中作為例如個(gè)人計(jì)算機(jī)插槽卡的計(jì)算機(jī)部件或作為在系統(tǒng)存儲(chǔ)器中的部件??蛇x擇地,它可以是永久性存儲(chǔ)設(shè)備比如硬盤的一個(gè)部件,或在筆記本設(shè)備等的塢站中的一個(gè)部件。在移動(dòng)系統(tǒng)中,磁盤驅(qū)動(dòng)器具有的磁道緩沖存儲(chǔ)器能夠被使用(即,本發(fā)明也能夠使用磁道緩沖存儲(chǔ)器實(shí)現(xiàn))。
未來的用于移動(dòng)系統(tǒng)的磁盤可以從電池電源中拔出以保持它的存儲(chǔ)器運(yùn)行,不是真正拔出電源以保持磁盤旋轉(zhuǎn)。非易失性存儲(chǔ)器可以存儲(chǔ)文件數(shù)據(jù)、文件元數(shù)據(jù)以及已知的磁盤扇區(qū)比如引導(dǎo)扇區(qū)和分區(qū)表。在斷電或進(jìn)入休眠模式期間,計(jì)算機(jī)系統(tǒng)根據(jù)先前的使用歷史,確定將被存儲(chǔ)到非易失性存儲(chǔ)器中的靜態(tài)和動(dòng)態(tài)配置數(shù)據(jù)。在系統(tǒng)操作期間數(shù)據(jù)也被存儲(chǔ)在非易失性存儲(chǔ)器中以減少磁盤驅(qū)動(dòng)器旋轉(zhuǎn)的次數(shù)。對(duì)于移動(dòng)PCs及其類似物來說,減少磁盤驅(qū)動(dòng)器旋轉(zhuǎn)的次數(shù)改善了用戶的體驗(yàn)因?yàn)楣β时粶p少,從而允許更小和更輕的移動(dòng)PCs及其類似物用給定的電池容量持續(xù)更長時(shí)間。它也減少了運(yùn)行噪聲、聲音大且干擾用戶的高速風(fēng)扇的需要。
轉(zhuǎn)向附圖,其中同樣的標(biāo)號(hào)表示同一元件,本發(fā)明被說明為在適當(dāng)?shù)挠?jì)算環(huán)境中實(shí)現(xiàn)。雖然沒有要求,但本發(fā)明將在由個(gè)人計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令比如程序模塊的通常上下文中被說明。通常,程序模塊包括執(zhí)行特殊任務(wù)或?qū)崿F(xiàn)特殊抽象數(shù)據(jù)類型的子程序、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。而且,本領(lǐng)域技術(shù)人員將理解本發(fā)明可以用其它計(jì)算機(jī)配置實(shí)現(xiàn),包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程的消費(fèi)者電子產(chǎn)品、網(wǎng)絡(luò)PCs、小型計(jì)算機(jī)、大型計(jì)算機(jī)及類似物。本發(fā)明也可以在任務(wù)由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境中實(shí)現(xiàn)。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。
圖1說明了本發(fā)明可以被實(shí)現(xiàn)適當(dāng)?shù)挠?jì)算系統(tǒng)環(huán)境100的例子。該計(jì)算系統(tǒng)環(huán)境100僅是適當(dāng)?shù)挠?jì)算環(huán)境的一個(gè)例子,并不是有意建議本發(fā)明的使用或功能的范圍的任何限制。計(jì)算環(huán)境100不應(yīng)被解釋為具有任何與在示例操作環(huán)境100中的任何一個(gè)部件或部件的組合相關(guān)的依賴或必要條件。
本發(fā)明可在許多其它通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置上運(yùn)行。適合于本發(fā)明使用的已知的計(jì)算系統(tǒng)、環(huán)境和/或配置的例子包括但不局限于個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上型電腦設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程的消費(fèi)者電子產(chǎn)品、網(wǎng)絡(luò)PCs、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括任何上述系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境及類似物。
本發(fā)明可以在由個(gè)人計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令比如程序模塊的通常上下文中被說明。通常,程序模塊包括執(zhí)行特殊任務(wù)或?qū)崿F(xiàn)特殊抽象數(shù)據(jù)類型的子程序、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。本發(fā)明也可以在任務(wù)由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境中實(shí)現(xiàn)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)器存儲(chǔ)設(shè)備的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)媒體中。
參見圖1,用于實(shí)現(xiàn)本發(fā)明的示例系統(tǒng)包括以計(jì)算機(jī)110形式存在的通用目的計(jì)算設(shè)備。計(jì)算機(jī)110的組件可以包括但不局限于處理單元120、系統(tǒng)存儲(chǔ)器130以及連接包括系統(tǒng)存儲(chǔ)器的各種系統(tǒng)部件到處理單元120的系統(tǒng)總線121。該系統(tǒng)總線121可以是以下幾種類型的總線結(jié)構(gòu)中的任何一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍設(shè)備總線和使用多種總線體系結(jié)構(gòu)中的任何一種的局部總線。為了舉例但不局限于此,這些體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強(qiáng)ISA(EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線以及也被叫做Mezzanine總線的外圍部件互連(PCI)總線。
典型地,計(jì)算機(jī)110包括多種計(jì)算機(jī)可讀媒體。計(jì)算機(jī)可讀媒體能夠是能由計(jì)算機(jī)110訪問的任何可得到的媒體,包括易失性非易失性媒體、可移動(dòng)和不可移動(dòng)媒體。為了舉例但不局限于此,計(jì)算機(jī)可讀媒體可以包括計(jì)算機(jī)存儲(chǔ)媒體和通信媒體。計(jì)算機(jī)可讀媒體包括以用于存儲(chǔ)信息比如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)媒體。計(jì)算機(jī)存儲(chǔ)媒體包括但不局限于RAM、ROM、EEPROM、快閃存儲(chǔ)器或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字通用盤(DVD)或其它光盤存儲(chǔ)、盒式磁帶、磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或任何其它能被用來存儲(chǔ)所希望的信息且能被計(jì)算機(jī)110訪問的媒體。典型地,通信媒體具體化為在一個(gè)調(diào)制數(shù)據(jù)信號(hào)比如載波或其它傳輸機(jī)制中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),且包括任何信息傳輸媒體。術(shù)語“調(diào)制數(shù)據(jù)信號(hào)”意指具有一個(gè)或多個(gè)它的字符集或以在該信號(hào)中編碼信息的方式改變的信號(hào)。為了舉例但不局限于此,通信媒體包括有線媒體比如有線網(wǎng)絡(luò)或直接有線連接,以及無線媒體比如聲音、RF(射頻)、紅外和其它無線媒體。任何上述內(nèi)容的組合應(yīng)該也被包括在計(jì)算機(jī)可讀媒體的范圍內(nèi)。
系統(tǒng)存儲(chǔ)器130包括以易失性和/或非易失性存儲(chǔ)器比如只讀存儲(chǔ)器(ROM)131和隨機(jī)訪問存儲(chǔ)器(RAM)132的形式存在的計(jì)算機(jī)存儲(chǔ)媒體。包括比如在啟動(dòng)期間幫助在計(jì)算機(jī)110的元件之間傳輸信息的基本例程的基本輸入/輸出系統(tǒng)133(BIOS),被典型地存儲(chǔ)在ROM131中。典型地,RAM132包括可由處理單元120直接訪問和/或當(dāng)前正在被處理單元120操作的數(shù)據(jù)和/或程序模塊。為了舉例但不局限于此,圖1說明了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計(jì)算機(jī)110也可以包括可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)媒體。僅為了舉例,圖1說明了從不可移動(dòng)非易失性磁性媒體中讀出或向不可移動(dòng)非易失性磁性媒體寫入的硬盤驅(qū)動(dòng)器141、從可移動(dòng)非易失性磁盤152中讀出或向可移動(dòng)非易失性磁盤152寫入的磁盤驅(qū)動(dòng)器151以及從可移動(dòng)非易失性光盤156比如CD ROM或其它光學(xué)媒體中讀出或向可移動(dòng)非易失性光盤156寫入的光盤驅(qū)動(dòng)器155。其它能夠被用于示例操作環(huán)境中的可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)媒體包括但不局限于盒式磁帶、快閃存儲(chǔ)器卡、數(shù)字通用盤、數(shù)字視頻帶、固態(tài)RAM、固態(tài)ROM等等。典型地,該硬盤驅(qū)動(dòng)器141通過不可移動(dòng)存儲(chǔ)器接口比如接口140連接到系統(tǒng)總線121,磁盤驅(qū)動(dòng)器151和光盤驅(qū)動(dòng)器155通過可移動(dòng)存儲(chǔ)器接口比如接口150被典型地連接到系統(tǒng)總線121。
以上討論并顯示在圖1中的驅(qū)動(dòng)器及它們相關(guān)的計(jì)算機(jī)存儲(chǔ)媒體,提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它用于計(jì)算機(jī)110的數(shù)據(jù)的存儲(chǔ)。在圖1中,例如,硬盤驅(qū)動(dòng)器141被說明為存儲(chǔ)操作系統(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到目前為止被給定不同的數(shù)字,至少說明它們是不同的拷貝。用戶可以通過輸入設(shè)備比如鍵盤162和一般指鼠標(biāo)的指點(diǎn)設(shè)備161、軌跡球或觸摸板輸入命令和信息至計(jì)算機(jī)110。其它輸入設(shè)備(未示出)可以包括麥克風(fēng)、操縱桿、游戲墊、圓盤式衛(wèi)星電視天線、掃描儀等等。這些和其它輸入設(shè)備常常通過與系統(tǒng)總線連接的用戶輸入接口160連接到處理單元120,但也可以通過其它接口和總線結(jié)構(gòu)連接,比如并行端口、游戲端口或通用串行總線(USB)。顯示器191或其它類型的顯示設(shè)備也可以通過一個(gè)接口比如視頻接口190連接到系統(tǒng)總線121。除了顯示器,計(jì)算機(jī)也可以包括其它外圍輸出設(shè)備比如可以通過輸出外圍設(shè)備接口195連接的揚(yáng)聲器197和打印機(jī)196。
計(jì)算機(jī)110可以在使用邏輯連接到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)比如遠(yuǎn)程計(jì)算機(jī)180的網(wǎng)絡(luò)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)180可以是另一個(gè)個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點(diǎn),且典型地包括多個(gè)或全部上述與個(gè)人計(jì)算機(jī)110相關(guān)的元件,雖然只有存儲(chǔ)器存儲(chǔ)設(shè)備181在圖1中被說明。在圖1中描述的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可以包括其它網(wǎng)絡(luò)。這樣的網(wǎng)絡(luò)環(huán)境在辦公室、企業(yè)級(jí)計(jì)算機(jī)網(wǎng)絡(luò)、企業(yè)內(nèi)部互聯(lián)網(wǎng)和因特網(wǎng)中是常見的。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),個(gè)人計(jì)算機(jī)110通過網(wǎng)絡(luò)接口或適配器170連接到LAN171。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時(shí),個(gè)人計(jì)算機(jī)110典型地包括調(diào)制解調(diào)器172或用于與WAN173建立通信的其它裝置,比如因特網(wǎng)??梢允莾?nèi)置的或外置的調(diào)制解調(diào)器172,可以通過用戶輸入接口160或其它合適的機(jī)制連接到系統(tǒng)總線121。在連網(wǎng)環(huán)境中,被描述與個(gè)人計(jì)算機(jī)110相關(guān)的程序模塊或它的一部分,可以被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。為了舉例但不局限于此,圖1說明了駐留在存儲(chǔ)器設(shè)備181中的遠(yuǎn)程應(yīng)用程序185??梢岳斫?,顯示的網(wǎng)絡(luò)連接是示例性的,在計(jì)算機(jī)之間建立通信連接的其它裝置也可以使用。
在以下描述中,除非以別的方式表示,本發(fā)明將描述由一個(gè)或多個(gè)計(jì)算機(jī)執(zhí)行的相關(guān)的動(dòng)作和操作的符號(hào)表示。同樣,可以理解,有時(shí)被稱為由計(jì)算機(jī)執(zhí)行的該動(dòng)作和操作,包括由計(jì)算機(jī)的處理單元對(duì)以結(jié)構(gòu)化形式代表數(shù)據(jù)的電氣信號(hào)的處理。該處理轉(zhuǎn)換數(shù)據(jù)或?qū)?shù)據(jù)保持在計(jì)算機(jī)的存儲(chǔ)器系統(tǒng)的單元中,該計(jì)算機(jī)以本領(lǐng)域技術(shù)人員易于理解的方式重新配置或另外改變計(jì)算機(jī)的操作。保持?jǐn)?shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是具有由數(shù)據(jù)格式定義的特殊屬性的存儲(chǔ)器的物理單元。然而,當(dāng)本發(fā)明在前述上下文中被描述時(shí),并不意味著限定本領(lǐng)域技術(shù)人員理解此后描述的各種動(dòng)作和操作也可以用硬件實(shí)現(xiàn)。
在計(jì)算機(jī)110中的非易失性存儲(chǔ)器的內(nèi)含物現(xiàn)在轉(zhuǎn)到圖2,該非易失性存儲(chǔ)器200可以定位在計(jì)算機(jī)110中作為計(jì)算機(jī)110的分離部件202比如插入pc槽中的卡或作為在系統(tǒng)存儲(chǔ)器中的部件204。可選擇地,它可以是在筆記本設(shè)備的塢站及類似物中的永久存儲(chǔ)設(shè)備300比如硬盤驅(qū)動(dòng)器141中的部件206。非易失性存儲(chǔ)器200的另一可選位置是以能夠被插入到計(jì)算機(jī)系統(tǒng)中的可移動(dòng)固態(tài)非易失性存儲(chǔ)器設(shè)備的形式存在,比如依照由CompactFlash協(xié)會(huì)維護(hù)的CompactFlash規(guī)范的可移動(dòng)固態(tài)非易失性存儲(chǔ)器設(shè)備,或類似的東西。作為分離部件202的該非易失性存儲(chǔ)器200提供了改進(jìn)不具有非易失性存儲(chǔ)器200的傳統(tǒng)系統(tǒng)的性能的能力,不必安裝具有非易失性存儲(chǔ)器的硬盤驅(qū)動(dòng)器。
現(xiàn)在轉(zhuǎn)到圖3,永久存儲(chǔ)設(shè)備300具有包括了非易失性存儲(chǔ)器存儲(chǔ)媒體(長期存儲(chǔ)媒體)比如一個(gè)或多個(gè)磁盤304的磁盤組件302,讀/寫頭306用于讀和寫磁盤304,主軸/電樞組件308用于移動(dòng)讀/寫頭306以定位在磁盤304上。雖然磁盤組件302被顯示在圖3中并在以下描述中使用,但當(dāng)另一個(gè)長期存儲(chǔ)媒體被使用時(shí)本發(fā)明技術(shù)的優(yōu)點(diǎn)可以被發(fā)現(xiàn),本發(fā)明并沒有限制于磁盤組件被用來作為長期存儲(chǔ)媒體的例子??刂破?10命令磁盤組件從存儲(chǔ)媒體中讀取數(shù)據(jù)或?qū)?shù)據(jù)寫入到存儲(chǔ)媒體中。高速緩存312被用來緩沖從存儲(chǔ)媒體中讀取或?qū)懭氲酱鎯?chǔ)媒體中的數(shù)據(jù)。本發(fā)明的非易失性存儲(chǔ)器200被定位在控制器310內(nèi)或作為永久存儲(chǔ)設(shè)備300的分離部件。在一個(gè)實(shí)施例中,非易失性存儲(chǔ)器200是作為由一個(gè)或多個(gè)鄰近扇區(qū)構(gòu)成的磁盤304的至少一個(gè)大區(qū)域被暴露給計(jì)算機(jī)110。沒有對(duì)IDE(集成器件電子技術(shù),Integrated Drive Electronics)或SCSI(小型計(jì)算機(jī)系統(tǒng)接口,Small Computer System Interface)的規(guī)范進(jìn)行改變的需要。非易失性存儲(chǔ)器200被暴露給操作系統(tǒng),這樣操作系統(tǒng)和其它部件能夠查詢非易失性存儲(chǔ)器200的大小,控制非易失性存儲(chǔ)器200的狀態(tài),使用處理程序?qū)?shù)據(jù)寫入非易失性存儲(chǔ)器200,以及如上所述,使用非易失性存儲(chǔ)器200作為寫緩沖。在另一預(yù)備實(shí)施例中,計(jì)算機(jī)110能夠通過觀察用于磁盤304的大區(qū)域的500微秒或更少的訪問時(shí)間而不是大約10毫秒的典型時(shí)間來檢測非易失性存儲(chǔ)器的存在。
操作系統(tǒng)和非易失性存儲(chǔ)器的主機(jī)應(yīng)用程序使用再次參考圖2,為了利用非易失性存儲(chǔ)器200以改進(jìn)性能,根據(jù)本發(fā)明的一個(gè)實(shí)施例,操作系統(tǒng)(OS)134被提供以各種接口以便提供非易失性存儲(chǔ)器200的改進(jìn)使用。
首先,一個(gè)檢測接口被提供。OS134能夠檢測是否有非易失性存儲(chǔ)器200,以及非易失性存儲(chǔ)器的大小。這一功能被作為應(yīng)用程序135和其它程序模塊136能夠使用的接口公開,以便確定在計(jì)算機(jī)110中是否存在非易失性存儲(chǔ)器200。另外,OS部件,比如文件系統(tǒng)或其它對(duì)象存儲(chǔ),能夠使用檢測接口以確定計(jì)算機(jī)110上非易失性存儲(chǔ)器200的存儲(chǔ)和大小。其它關(guān)于非易失性存儲(chǔ)器200的信息比如使用信息或類型信息也可以被提供。由于某一非易失性存儲(chǔ)器具有有限的使用期限,因此這此信息可能是有用的,這可能影響非易失性存儲(chǔ)器200在某種情況下的使用。
為了讀出或?qū)懭朐诖疟P組件302中的磁盤304,磁盤必須被旋轉(zhuǎn),并且讀/寫頭306必須由主軸/電樞組件移動(dòng)到合適的位置。這一準(zhǔn)備動(dòng)作需要時(shí)間并在數(shù)據(jù)被從磁盤組件302中讀出或?qū)懭肭耙鹧舆t。在寫磁盤304中的這一準(zhǔn)備動(dòng)作將被稱為旋轉(zhuǎn)磁盤,即使它還包括移動(dòng)讀/寫頭306。當(dāng)然,當(dāng)磁盤被描繪為旋轉(zhuǎn)媒體時(shí),它被認(rèn)為在永久存儲(chǔ)設(shè)備300中,非易失性存儲(chǔ)器200可以與另一種形式的在數(shù)據(jù)被寫入或讀出存儲(chǔ)器前要求準(zhǔn)備動(dòng)作的長期存儲(chǔ)媒體(除了磁盤組件302)包括在一起。對(duì)在永久存儲(chǔ)設(shè)備300上的長期存儲(chǔ)媒體的使用的任何準(zhǔn)備動(dòng)作將被稱為“旋轉(zhuǎn)(spin up)”或“正在旋轉(zhuǎn)(spinning up)”存儲(chǔ)器,即使它被認(rèn)為可能有另外的準(zhǔn)備動(dòng)作,或者甚至旋轉(zhuǎn)媒體的實(shí)際旋轉(zhuǎn)可以不被包括。因?yàn)閼?yīng)用程序或操作系統(tǒng)134本身可以預(yù)先識(shí)別對(duì)永久存儲(chǔ)設(shè)備300的寫入,這種要求對(duì)在設(shè)備300上的長期存儲(chǔ)媒體進(jìn)行旋轉(zhuǎn)的寫入將會(huì)發(fā)生的一個(gè)顯著概率是存在的,通過使用一個(gè)允許應(yīng)用程序或操作系統(tǒng)134請求長期存儲(chǔ)媒體旋轉(zhuǎn)的接口,由等待長期存儲(chǔ)媒體旋轉(zhuǎn)需要所引起的延遲能夠被避免。
同樣,一個(gè)停轉(zhuǎn)接口也被提供。為了節(jié)約功耗,如果沒有對(duì)永久存儲(chǔ)設(shè)備300的磁盤組件302的寫入正在進(jìn)行,則磁盤304的旋轉(zhuǎn)可以被暫停。此外,當(dāng)永久存儲(chǔ)設(shè)備300被顯示為包括其實(shí)際停轉(zhuǎn)將減少功耗的旋轉(zhuǎn)媒體時(shí),在永久存儲(chǔ)設(shè)備300上的除了非易失性存儲(chǔ)器200之外的其它形式的長期存儲(chǔ)媒體被考慮,且這樣的長期存儲(chǔ)媒體可以具有相似于磁盤組件302的停轉(zhuǎn)的動(dòng)作,在其中通過停止允許即時(shí)或相對(duì)快速對(duì)該存儲(chǔ)器的讀或?qū)懙膭?dòng)作可以得到一些好處。這樣的動(dòng)作的停止實(shí)際上可以不包括正在旋轉(zhuǎn)的媒體的物理停轉(zhuǎn),然而,這樣的停止通過在此被稱為“停轉(zhuǎn)(spin down)”或“正在停轉(zhuǎn)(spinning down)”來考慮。
停轉(zhuǎn)和旋轉(zhuǎn)動(dòng)作可以以小于它們最大速度的速度來執(zhí)行。以更低的速度執(zhí)行該操作能夠減少與這些動(dòng)作相關(guān)的噪聲,且減少功耗中任何相關(guān)的峰信號(hào)。因?yàn)樾D(zhuǎn)和停轉(zhuǎn)(或?qū)﹂L期存儲(chǔ)媒體的其它準(zhǔn)備動(dòng)作)能夠被預(yù)先執(zhí)行且絕對(duì)需要該動(dòng)作,在不影響性能的情況下這些優(yōu)點(diǎn)可以被得到。當(dāng)磁盤被慢慢旋轉(zhuǎn)而不是快速旋轉(zhuǎn)時(shí),該磁盤將是可用的當(dāng)它全速旋轉(zhuǎn)時(shí),但對(duì)用戶的效果和系統(tǒng)的休息被減少。
一些或所有非易失性存儲(chǔ)器200可以被用作永久存儲(chǔ)設(shè)備300的磁盤組件302的寫高速緩存。在這種情況下,一個(gè)接口被提供給該情形,其中應(yīng)用程序或操作系統(tǒng)134可以為了性能的原因確定該接口,非易失性存儲(chǔ)器200應(yīng)當(dāng)刷新到永久存儲(chǔ)設(shè)備300中的其它存儲(chǔ)器。該接口刷新該非易失性存儲(chǔ)器200到長期存儲(chǔ)媒體。
非易失性存儲(chǔ)器200的不同部分可以被標(biāo)記為不同的優(yōu)先權(quán)。例如,非易失性存儲(chǔ)器200的區(qū)域可以以應(yīng)當(dāng)被保持在非易失性存儲(chǔ)器200中的高優(yōu)先權(quán)被“標(biāo)識(shí)(pinned)”或標(biāo)記,而不是被刷新到優(yōu)選為沒有用該方法標(biāo)識(shí)或標(biāo)記的非易失性存儲(chǔ)器200的其它區(qū)域的長期存儲(chǔ)媒體。本發(fā)明的一個(gè)實(shí)施例允許許多優(yōu)先權(quán)中的一個(gè)被分配給非易失性存儲(chǔ)器200中的區(qū)域。例如,可以有三個(gè)優(yōu)先權(quán),最高優(yōu)先權(quán)(或“標(biāo)識(shí)的”存儲(chǔ)器或“優(yōu)先權(quán)1”存儲(chǔ)器)、第二優(yōu)先權(quán)(“優(yōu)先權(quán)2”)和最低優(yōu)先權(quán)(或“優(yōu)先權(quán)3”)。這里需要非易失性存儲(chǔ)器200中的空間,在更高的優(yōu)先權(quán)存儲(chǔ)器區(qū)域被刷新前最低優(yōu)先權(quán)存儲(chǔ)器被刷新到長期存儲(chǔ)媒體。這樣,按照本發(fā)明的一個(gè)實(shí)施例,為刷新該非易失性存儲(chǔ)器200高速緩存幾個(gè)接口選擇可以被提供——例如,刷新整個(gè)高速緩存的接口,只刷新高速緩存更低優(yōu)先權(quán)區(qū)域的接口或刷新高速緩存的具有等于或小于調(diào)用該接口時(shí)指定的優(yōu)先權(quán)的優(yōu)先權(quán)的所有區(qū)域。
作為另一個(gè)性能改進(jìn),因?yàn)楸粚懭敕且资源鎯?chǔ)器200中的數(shù)據(jù)可以在稍后被刪除,所以一個(gè)允許OS 134或應(yīng)用程序?qū)⒛骋槐粚懭敕且资源鎯?chǔ)器200的數(shù)據(jù)不再被需要的信號(hào)發(fā)送給非易失性存儲(chǔ)器200的接口被提供,且能夠從非易失性存儲(chǔ)器200的寫高速緩存中丟棄。這樣,當(dāng)存儲(chǔ)器被刷新時(shí),該被丟棄的區(qū)域?qū)⒉槐粚懙介L期存儲(chǔ)媒體中,且當(dāng)在該被丟棄的區(qū)域上執(zhí)行讀取時(shí),一個(gè)錯(cuò)誤或隨機(jī)數(shù)據(jù)可以被返回。
例如,該接口能夠被使用以管理事務(wù)。事務(wù)日志常常包括某一不要求被長期存儲(chǔ)的中間數(shù)據(jù)。例如,在一種情況下,當(dāng)事務(wù)發(fā)生時(shí),關(guān)于該事務(wù)的元數(shù)據(jù)被首先提交給該日志。如果這一日志被存儲(chǔ)在非易失性存儲(chǔ)器200中,則該寫將不要求磁盤的旋轉(zhuǎn)。當(dāng)事務(wù)被完成且改變被提交時(shí),關(guān)于該事務(wù)的被存儲(chǔ)的元數(shù)據(jù)被改變或刪除以反映該完成的事務(wù)。然而,如果該事務(wù)在它被完成和提交前被中斷,則非易失性存儲(chǔ)器200中的數(shù)據(jù)將保持并因此能被用于確定什么事務(wù)正在發(fā)生且解決關(guān)于該被中斷的事務(wù)的問題。
在另一實(shí)施例中,這一接口能夠被用來避免刷新與臨時(shí)文件相關(guān)的任何數(shù)據(jù)或元數(shù)據(jù)到磁盤。最初,這些文件和它們的元數(shù)據(jù)被創(chuàng)建在非易失性存儲(chǔ)器200中。當(dāng)該文件被刪除時(shí),OS134或一個(gè)應(yīng)用程序可以將寫入到非易失性存儲(chǔ)器200中的文件數(shù)據(jù)和元數(shù)據(jù)不再被需要的信號(hào)發(fā)送給非易失性存儲(chǔ)器200,且能夠從非易失性存儲(chǔ)器200的寫高速緩存中丟棄。
一個(gè)非易失性存儲(chǔ)器的欺騙接口也被提供。在某種情況下,對(duì)于讀或?qū)懖僮鞣且资源鎯?chǔ)器的使用可能沒有效率。再次參考圖3,例如,如果一個(gè)應(yīng)用程序?qū)⑴c非易失性存儲(chǔ)器200的大小非常相關(guān)的數(shù)據(jù)寫入永久存儲(chǔ)設(shè)備300,則將一些該數(shù)據(jù)寫入非易失性存儲(chǔ)器200一般將不會(huì)有用,因?yàn)樵摲且资源鎯?chǔ)器200將充滿而數(shù)據(jù)則將從非易失性存儲(chǔ)器200刷新到長期存儲(chǔ)媒體。這樣,非易失性存儲(chǔ)器的欺騙接口允許該操作系統(tǒng)或一個(gè)應(yīng)用程序使用該接口以指出對(duì)永久存儲(chǔ)設(shè)備300讀取或?qū)懭氲臄?shù)據(jù)應(yīng)當(dāng)直接從長期存儲(chǔ)媒體上的物理存儲(chǔ)器地址讀取或?qū)懭耄皇菑姆且资源鎯?chǔ)器200。
在一個(gè)實(shí)施例中,當(dāng)在永久存儲(chǔ)設(shè)備300中的磁盤控制器正在準(zhǔn)備或?qū)嶋H上正在旋轉(zhuǎn)磁盤組件302時(shí),一個(gè)中斷從永久存儲(chǔ)設(shè)備300中發(fā)出到主計(jì)算機(jī)110。該中斷可以被傳送到操作系統(tǒng)134或它的部件或傳送到一個(gè)應(yīng)用程序。根據(jù)接收的該中斷,一個(gè)被適當(dāng)編程以根據(jù)情況動(dòng)作的接受器能夠保證數(shù)據(jù)被從非易失性存儲(chǔ)器200移動(dòng)到長期存儲(chǔ)媒體或從長期存儲(chǔ)媒體移動(dòng)到非易失性存儲(chǔ)器200,因?yàn)樵撻L期存儲(chǔ)媒體很快將被旋轉(zhuǎn)且準(zhǔn)備那樣的移動(dòng)。這減少了長期存儲(chǔ)媒體旋轉(zhuǎn)的數(shù)量并因此減少了磁盤驅(qū)動(dòng)器的功耗。另外,根據(jù)接收的該中斷指示存儲(chǔ)器正在旋轉(zhuǎn)或被旋轉(zhuǎn),該OS能夠使用非易失性存儲(chǔ)器欺騙接口以將任何非永久寫緩沖或高速緩存直接刷新到長期存儲(chǔ)媒體中。
此外,OS部件和應(yīng)用程序可以使用一個(gè)允許對(duì)永久存儲(chǔ)設(shè)備300的寫被看成原子的原子寫接口。所有將被原子寫的數(shù)據(jù)被存儲(chǔ)在非易失性存儲(chǔ)器200中。當(dāng)這被完成時(shí),該永久存儲(chǔ)設(shè)備保證所有將被原子寫的數(shù)據(jù)被寫入到長期存儲(chǔ)媒體中。如果在所有被原子寫的數(shù)據(jù)被存儲(chǔ)在非易失性存儲(chǔ)器200之前一個(gè)故障發(fā)生,則一個(gè)錯(cuò)誤被返回,且已經(jīng)被接收的數(shù)據(jù)就被丟棄。在非易失性存儲(chǔ)器200上的存儲(chǔ)被完成之后,如果由于系統(tǒng)或電源故障使得原子寫失敗,則在系統(tǒng)重新啟動(dòng)時(shí)該失敗被檢測,且存儲(chǔ)在非易失性存儲(chǔ)器中的原子數(shù)據(jù)集被再次寫入到長期存儲(chǔ)媒體中。這允許在應(yīng)用中改進(jìn)性能且設(shè)置大數(shù)據(jù)的原子寫是更可取的,例如在數(shù)據(jù)庫應(yīng)用中,因?yàn)樗灰筮@些應(yīng)用去處理在現(xiàn)有技術(shù)中稱為“撕裂的寫”的問題。
在一個(gè)實(shí)施例中,操作系統(tǒng)134、它的部件或應(yīng)用程序使用非易失性存儲(chǔ)器200以存儲(chǔ)指定的定期使用的文件或?qū)ο蟆R虼嘶ㄙM(fèi)更高的對(duì)長期存儲(chǔ)媒體的寫/讀被避免。例如,數(shù)據(jù)庫事務(wù)日志、文件系統(tǒng)元數(shù)據(jù)和其它元數(shù)據(jù)被存儲(chǔ)在非易失性存儲(chǔ)器200中。在一個(gè)實(shí)施例中,優(yōu)先權(quán)方案被使用以分配不同的優(yōu)先權(quán)給存儲(chǔ)數(shù)據(jù)的非易失性存儲(chǔ)器200的區(qū)域,這樣被頻繁訪問的文件被賦予高優(yōu)先權(quán),這進(jìn)一步有助于避免花費(fèi)更高的對(duì)長期存儲(chǔ)媒體的寫入/讀出。
非易失性存儲(chǔ)器的分區(qū)在一個(gè)實(shí)施例中,非易失性存儲(chǔ)器200包括允許非易失性存儲(chǔ)器200的一部分被操作系統(tǒng)專門使用的一個(gè)分區(qū)。這樣的一個(gè)實(shí)現(xiàn)允許操作系統(tǒng)134將非易失性存儲(chǔ)器200分區(qū),且具有一個(gè)根據(jù)操作系統(tǒng)的輸入由磁盤控制器固件直接控制的非易失性存儲(chǔ)器200的OS分區(qū)。
這樣,通過磁盤控制器,OS134要求具有可能接下來將被需要的特定的扇區(qū)的非易失性存儲(chǔ)器200的移入。例如,這些扇區(qū)是在下一次啟動(dòng)時(shí)或系統(tǒng)從休眠中恢復(fù)時(shí)被需要或被認(rèn)為可能需要的扇區(qū)。作為更進(jìn)一步的例子,這些扇區(qū)是OS134預(yù)測在不久的將來需要的扇區(qū)。
因此,在該實(shí)施例中,每次長期存儲(chǔ)媒體被旋轉(zhuǎn),通過發(fā)送一個(gè)邏輯扇區(qū)地址(LSAs)列表到磁盤驅(qū)動(dòng)控制器,該OS能夠再次移入在非易失性存儲(chǔ)器200中的讀高速緩存的OS分區(qū)。這個(gè)列表能夠包括按照上述的優(yōu)先權(quán)方案被使用的優(yōu)先權(quán)信息,以指出磁盤驅(qū)動(dòng)控制器很容易將寫緩沖數(shù)據(jù)寫在讀高速緩存數(shù)據(jù)的上面。
在OS134內(nèi),一個(gè)機(jī)制被提供以將特殊的LSAs集合映射到非易失性存儲(chǔ)器200。這允許非易失性存儲(chǔ)器200的一個(gè)扇區(qū)直接處在OS134的控制之下。對(duì)這些LSAs的讀和寫則將總是訪問非易失性存儲(chǔ)器200。在這些LSAs中的數(shù)據(jù)將不被刷新到存儲(chǔ)單元,除非非易失性存儲(chǔ)器被操作系統(tǒng)重新配置。在一個(gè)實(shí)施例中,在非易失性存儲(chǔ)器200的這個(gè)扇區(qū)中,OS134存儲(chǔ)被用來診斷系統(tǒng)故障的“黑匣子記錄器信息”即操作的最近歷史。該OS134存儲(chǔ)被要求用于安全啟動(dòng)的啟動(dòng)恢復(fù)控制臺(tái)和文件,這樣系統(tǒng)還能夠啟動(dòng)并診斷機(jī)械磁盤失敗。它也可以存儲(chǔ)被要求用于下次啟動(dòng)的文件的被用來代替常規(guī)的系統(tǒng)文件的表示或除了常規(guī)的系統(tǒng)文件的表示之外的可能壓縮包。
如上所述的接口和命令在如下的表1中被列出
表1用于永久存儲(chǔ)設(shè)備使用的接口和命令在寫時(shí)拷貝的功能數(shù)據(jù)庫和數(shù)據(jù)庫產(chǎn)品,在其它應(yīng)用和產(chǎn)品中,可以使用寫時(shí)拷貝功能以減少資源如時(shí)間或金錢的消耗。寫時(shí)拷貝允許數(shù)據(jù)的先前版本成為可得到的。這是有用的因?yàn)槌死绱鎯?chǔ)在數(shù)據(jù)庫中的信息的當(dāng)前版本外,信息的先前版本對(duì)用戶也可能是有用的。
如果不寫時(shí)拷貝,則一個(gè)提供數(shù)據(jù)先前版本信息的方法是在用戶感興趣的時(shí)間點(diǎn)進(jìn)行數(shù)據(jù)庫的完全拷貝。當(dāng)這個(gè)發(fā)生時(shí),所有與數(shù)據(jù)庫相關(guān)的文件被存儲(chǔ)。然而,這一技術(shù)是空間密集的,因?yàn)閷?duì)于一個(gè)存儲(chǔ)在一定量的存儲(chǔ)空間中的數(shù)據(jù)庫,每個(gè)拷貝也會(huì)需要該數(shù)量的存儲(chǔ)空間。這個(gè)方法也耗費(fèi)時(shí)間,因?yàn)榭截惐旧戆ù罅康臄?shù)據(jù)移動(dòng)。
因此,作為替代,對(duì)最初版本的改變可以被存儲(chǔ)。在非易失性存儲(chǔ)器200可以被得到的地方,它能夠被用來執(zhí)行寫時(shí)拷貝行為。在寫時(shí)拷貝的第一個(gè)實(shí)現(xiàn)中,將被改變的最初數(shù)據(jù)被存儲(chǔ)在系統(tǒng)存儲(chǔ)器130中。然后,在它被更新前,一個(gè)拷貝必須被寫入穩(wěn)定存儲(chǔ)器中,以便使得數(shù)據(jù)的未改變版本可得到。在非易失性存儲(chǔ)器200可以被得到的地方,這樣的存儲(chǔ)器可以是非易失性存儲(chǔ)器200。這允許未改變拷貝的存儲(chǔ)被快速執(zhí)行。如上所述,這一拷貝可以在后面的時(shí)間點(diǎn)上被移動(dòng)到磁盤存儲(chǔ)器中。使用基于塊定向高速緩存的數(shù)據(jù)庫系統(tǒng)能夠使用這個(gè)技術(shù)來減少存儲(chǔ)器寫的時(shí)間。
在寫時(shí)拷貝的第二個(gè)實(shí)施例中,最初版本可以被存儲(chǔ)在長期存儲(chǔ)媒體中。在這種情況下,如果數(shù)據(jù)位于非易失性存儲(chǔ)器200中,則在寫發(fā)生之前,另一個(gè)拷貝可以在非易失性存儲(chǔ)器200中進(jìn)行。如果數(shù)據(jù)沒有存儲(chǔ)在非易失性存儲(chǔ)器中,則最初存儲(chǔ)的拷貝可以被看成檔案拷貝——存儲(chǔ)未改變版本的拷貝。非易失性存儲(chǔ)器200存儲(chǔ)改變的版本。當(dāng)這個(gè)版本從非易失性存儲(chǔ)器200中刷新到或用別的方式移動(dòng)到磁盤時(shí),該版本將被寫入存儲(chǔ)器200中的一個(gè)新單元,因?yàn)樵诖疟P上最初存儲(chǔ)的版本拷貝現(xiàn)在是改變前數(shù)據(jù)的檔案拷貝。
使用非易失性存儲(chǔ)器的磁盤碎片整理大數(shù)據(jù)存儲(chǔ)器,例如文件系統(tǒng)和數(shù)據(jù)庫,通過數(shù)據(jù)的持續(xù)存儲(chǔ)和刪除可以出現(xiàn)稱為磁盤碎片的情形。這個(gè)當(dāng)在存儲(chǔ)設(shè)備上的大范圍的自由存儲(chǔ)器變得越來越少時(shí)發(fā)生,且可能導(dǎo)致性能下降。為了改正這種情況,磁盤碎片整理被使用。磁盤碎片整理處理將在連續(xù)地址空間的文件再結(jié)合。為了執(zhí)行磁盤碎片整理,數(shù)據(jù)文件在磁盤的物理存儲(chǔ)器單元中被移動(dòng)以創(chuàng)建連續(xù)存儲(chǔ)的文件。因此,臨時(shí)存儲(chǔ)單元被使用;因?yàn)橛傻谝粋€(gè)文件占用的空間被第二個(gè)文件使用,所以第一個(gè)文件必須被存儲(chǔ)在一些存儲(chǔ)單元中,這樣它才不會(huì)丟失。
在一個(gè)實(shí)施例中,在磁盤碎片整理期間非易失性存儲(chǔ)器被用作臨時(shí)存儲(chǔ)單元。數(shù)據(jù)被寫入非易失性存儲(chǔ)器。其它數(shù)據(jù)的單元被改變以增加其它數(shù)據(jù)存儲(chǔ)的鄰近性。然后數(shù)據(jù)被從非易失性存儲(chǔ)器寫入進(jìn)行磁盤碎片整理過的存儲(chǔ)設(shè)備。當(dāng)臨時(shí)存儲(chǔ)的數(shù)據(jù)被再次存儲(chǔ)到存儲(chǔ)設(shè)備(比如計(jì)算機(jī)系統(tǒng)的硬盤)時(shí)臨時(shí)拷貝被從非易失性存儲(chǔ)器中移除。這樣磁盤碎片整理不需要使用長期存儲(chǔ)媒體和相關(guān)的用于存儲(chǔ)臨時(shí)數(shù)據(jù)的成本就能發(fā)生。
永久存儲(chǔ)設(shè)備的控制如圖4所示和如上所述,永久存儲(chǔ)設(shè)備300能夠包括長期存儲(chǔ)媒體430(例如圖3中的磁盤組件302)。在這種情況下,來自CPU120數(shù)據(jù)在主計(jì)算機(jī)110和永久存儲(chǔ)設(shè)備300之間傳播。這個(gè)流動(dòng)由主計(jì)算機(jī)110中的主計(jì)算機(jī)接口400和永久存儲(chǔ)設(shè)備300中的主計(jì)算機(jī)接口420仲裁。設(shè)備控制固件440可以直接或間接控制在非易失性存儲(chǔ)器200和長期存儲(chǔ)媒體430中的存儲(chǔ)。
為了開始使用永久存儲(chǔ)設(shè)備300,如上所述,操作系統(tǒng)134查詢存儲(chǔ)單元配置,以確定非易失性存儲(chǔ)器200是否可得到,如果可得到,則查詢非易失性存儲(chǔ)器200的大小和其它參數(shù),比如類型、使用歷史等。隨后關(guān)于非易失性存儲(chǔ)器200怎樣被使用的決定被產(chǎn)生。
非易失性存儲(chǔ)器200的使用可以用兩個(gè)方法控制。第一,非易失性存儲(chǔ)器200的一些部分可以由存儲(chǔ)單元控制。第二,非易失性存儲(chǔ)器200的一些部分可以由OS134直接控制。如上所述,當(dāng)一部分非易失性存儲(chǔ)器200由OS直接控制時(shí),該部分被用來映射LSAs的特殊集合。對(duì)這些LSAs的讀和寫則將總是訪問非易失性存儲(chǔ)器200的被映射部分。在這些LSAs中的數(shù)據(jù)將不被刷新到存儲(chǔ)單元中,除非非易失性存儲(chǔ)器被操作系統(tǒng)重新配置。
沒有由操作系統(tǒng)直接控制的這部分非易失性存儲(chǔ)器200被用作高速緩存。這一高速緩存部分具有讀高速緩存和寫緩沖器的雙重作用。當(dāng)寫緩沖器被刷新到磁盤時(shí),OS根據(jù)情況將來自磁盤的數(shù)據(jù)再移入非易失性存儲(chǔ)器200作為讀高速緩存。這一高速緩存數(shù)據(jù)被用寫緩沖器數(shù)據(jù)寫在上面。最終,該讀高速緩存被寫緩沖器數(shù)據(jù)完全寫在上面,當(dāng)緩沖器滿時(shí),存儲(chǔ)單元控制器就旋轉(zhuǎn)磁盤,刷新緩沖器數(shù)據(jù)到磁盤,將讀高速緩存再次移入,并停轉(zhuǎn)磁盤。
具有高速緩存部分和映射部分的非易失性存儲(chǔ)器的使用如圖5所示。非易失性存儲(chǔ)器200被分為高速緩存部分500和映射部分510。如箭頭520所示,讀自LSAs或?qū)懭隠SAs的沒有被映射到映射部分510的數(shù)據(jù)被寫入高速緩存部分500;如箭頭530所示,如果從LSA中讀出的數(shù)據(jù)沒有被提供給高速緩存部分,則它被從長期存儲(chǔ)媒體430中讀取。就象被討論的,高速緩存部分500既作為讀高速緩存又作為寫高速緩存,箭頭540示出了高速緩存部分540中的數(shù)據(jù)被刷新到長期存儲(chǔ)媒體430,并且當(dāng)有空間來使用高速緩存部分500作為寫緩沖器時(shí)數(shù)據(jù)被從長期存儲(chǔ)媒體430拷貝到高速緩存部分500。
映射部分510被映射到特定的LSAs。這樣,如箭頭550所示,當(dāng)這些LSAs被讀取或?qū)懭霑r(shí),這些讀和寫直接來自映射部分510。在映射部分510的數(shù)據(jù)不被刷新到長期存儲(chǔ)媒體430,長期存儲(chǔ)媒體430也不提供數(shù)據(jù)給映射部分。對(duì)這個(gè)的唯一例外是再映射。如箭頭560所示,當(dāng)一個(gè)新映射被創(chuàng)建時(shí),來自前面映射的數(shù)據(jù)被拷貝到長期存儲(chǔ)媒體430,且來自磁盤用于新LSAs映射的數(shù)據(jù)被拷貝到非易失性存儲(chǔ)器200(特別地,到映射部分510。)。
高速緩存部分500的控制該高速緩存部分的控制由圖6所示的狀態(tài)圖確定。如圖6所示,或者在初始化(603)期間或者在關(guān)閉(625)后重新啟動(dòng)期間一個(gè)啟動(dòng)狀態(tài)600被輸入。在啟動(dòng)狀態(tài)后,如轉(zhuǎn)換605所示,當(dāng)操作系統(tǒng)移動(dòng)到運(yùn)行狀態(tài)610時(shí),發(fā)送一個(gè)命令以及一個(gè)最初移入高速緩存的邏輯扇區(qū)地址列表以刷新高速緩存和再移入。如轉(zhuǎn)換613所示,每次刷新高速緩存和再移入的這個(gè)命令被從操作系統(tǒng)134接收時(shí),運(yùn)行狀態(tài)610的操作被再次執(zhí)行。為了移動(dòng)到關(guān)閉狀態(tài)620,轉(zhuǎn)換615,發(fā)生。按照一個(gè)實(shí)施例,當(dāng)關(guān)閉發(fā)生時(shí),一個(gè)刷新和再移入高速緩存的命令以及一個(gè)LSA列表被發(fā)送。
在某種情況下,通過使用非易失性存儲(chǔ)器200而不是使用更慢的磁盤430,磁盤驅(qū)動(dòng)控制器固件440減少功耗并改進(jìn)可靠性和性能。該磁盤驅(qū)動(dòng)控制器440接收來自O(shè)S136的命令將來自指定邏輯扇區(qū)地址(LSAs)的列表的數(shù)據(jù)移入非易失性存儲(chǔ)器200的高速緩存部分500。該LSAs列表也包括扇區(qū)的優(yōu)先權(quán),最高優(yōu)先權(quán)扇區(qū)最少可能被從高速緩存中移出而最低優(yōu)先權(quán)的扇區(qū)最多可能被移出。一旦高速緩存500被移入,磁盤430被停轉(zhuǎn),高速緩存500被用作寫緩沖器。當(dāng)緩沖器滿時(shí),按照它們的優(yōu)先權(quán)被高速緩存用于讀的扇區(qū)被寫在上面。磁盤只在讀高速緩存未命中時(shí)、當(dāng)寫緩沖器滿時(shí)或當(dāng)一個(gè)清楚的旋轉(zhuǎn)命令被從OS134中接收到時(shí)旋轉(zhuǎn)。這樣,相對(duì)于它運(yùn)轉(zhuǎn)的時(shí)間,磁盤430將保持長時(shí)間的關(guān)閉,從而減少功耗并改進(jìn)可靠性。最高優(yōu)先權(quán)的LSAs被永久標(biāo)識(shí)在非易失性存儲(chǔ)器200高速緩存中,直到被OS134以別的方式命令。
在啟動(dòng)狀態(tài)600中的操作被顯示在圖7中。如圖7所示,步驟700,當(dāng)由BIOS和操作系統(tǒng)134請求時(shí),來自非易失性存儲(chǔ)器200的啟動(dòng)狀態(tài)塊被提供。并行地,長期存儲(chǔ)媒體430(例如磁盤)被旋轉(zhuǎn)。
在這個(gè)狀態(tài)被完成后,運(yùn)行狀態(tài)610被輸入,該OS發(fā)出一個(gè)命令以刷新并將指定的LSAs再移入高速緩存。運(yùn)行狀態(tài)610的操作如圖8所示。如圖8所示,在運(yùn)行狀態(tài),如果磁盤沒有被旋轉(zhuǎn),則磁盤被旋轉(zhuǎn),步驟800。在步驟810,任何在非易失性存儲(chǔ)器200中被修改的扇區(qū)被刷新到磁盤/長期存儲(chǔ)媒體430。在步驟820,由OS指定的LSAs則被從磁盤讀取到非易失性存儲(chǔ)器200用于讀高速緩存。在步驟830,磁盤則被停轉(zhuǎn)。在步驟840,非易失性存儲(chǔ)器200被用作讀高速緩存和寫緩沖器。根據(jù)請求被高速緩存的扇區(qū)被提供;被寫入的扇區(qū)被保存在非易失性存儲(chǔ)器緩沖器中,按照優(yōu)先權(quán)寫在讀高速緩存扇區(qū)的上面。在步驟850,當(dāng)寫緩沖器超過滿閾值時(shí),非易失性存儲(chǔ)器被刷新和再移入,從步驟800到830。
當(dāng)一個(gè)命令被接收以關(guān)閉時(shí),關(guān)閉狀態(tài)620被輸入。關(guān)閉狀態(tài)620的操作如圖9所示。在步驟900,磁盤被旋轉(zhuǎn)。在步驟910,任何在非易失性存儲(chǔ)器200中被修改的扇區(qū)被刷新到磁盤/長期存儲(chǔ)媒體430。在步驟920,由OS指定的LSAs則被從磁盤中讀出到非易失性存儲(chǔ)器200用于讀高速緩存。這允許非易失性存儲(chǔ)器具有在啟動(dòng)時(shí)將由BIOS和操作系統(tǒng)134請求的可用的數(shù)據(jù)。
其它形式的關(guān)閉或在功能上類似的停止(例如備用和休眠)也可以按照圖6到9所示的方法運(yùn)行?;謴?fù)運(yùn)行所需的信息被存儲(chǔ)在允許更快地恢復(fù)的非易失性存儲(chǔ)器200中。
此外,如上所述,OS134和應(yīng)用程序(經(jīng)過OS134)可以將其它暗示給設(shè)備控制器440以幫助它確定什么時(shí)候旋轉(zhuǎn)或停轉(zhuǎn)磁盤,相反地,如果控制器FW由于任何原因必須旋轉(zhuǎn)磁盤,它發(fā)出一個(gè)中斷給OS134指示磁盤正在被旋轉(zhuǎn)。該操作系統(tǒng)和應(yīng)用程序則能夠利用這種情況將高速緩存在非易失性工作存儲(chǔ)器中的非關(guān)鍵數(shù)據(jù)寫入到存儲(chǔ)單元中。
在一個(gè)實(shí)施例中,該控制器440固件也使用由非易失性存儲(chǔ)器200實(shí)現(xiàn)的好處來降低硬盤驅(qū)動(dòng)存儲(chǔ)單元中的噪聲。通過將寫緩沖器閾值設(shè)置得足夠低,該控制器440能夠旋轉(zhuǎn)得更慢且能夠更久地將寫緩沖器刷新到磁盤430,減少發(fā)自主軸電機(jī)和尋找伺服系統(tǒng)的磁頭的噪聲。這一技術(shù)也減少了由電源供給的峰值電流。該控制器440固件也利用將在該緩沖器中的相對(duì)大量的數(shù)據(jù)放置數(shù)據(jù)在磁盤的鄰近塊中且避免在刷新數(shù)據(jù)到磁盤時(shí)產(chǎn)生碎片。
該高速緩存500的準(zhǔn)確狀態(tài)只有控制器440知道。該操作系統(tǒng)能夠通過查詢控制器440得到它的快照。在任何時(shí)間,通過發(fā)送一個(gè)命令該操作系統(tǒng)134可以選擇刷新高速緩存500并用它認(rèn)為在不久的將來將被需要的新的扇區(qū)集開始(圖6中的轉(zhuǎn)換613)。
在一個(gè)實(shí)施例中,在缺少來自O(shè)S 134的特殊命令的情況下,通過提出一個(gè)LSAs(例如,在轉(zhuǎn)換615中要求啟動(dòng)或從休眠中恢復(fù)的LSA,或通常根據(jù)從啟動(dòng)狀態(tài)600或在運(yùn)行狀態(tài)610的轉(zhuǎn)換給出的LSA)的列表將文件移入高速緩存部分500,該控制器通過緊接著啟動(dòng)或S4恢復(fù)之后監(jiān)視磁盤IOs進(jìn)行它自己的從磁盤到非易失性存儲(chǔ)器200的預(yù)取。這些IOs代表在接下來的啟動(dòng)或S4恢復(fù)中將被請求的最可能的數(shù)據(jù)。一旦這些數(shù)據(jù)被控制器440收集到,它就被存儲(chǔ)在非易失性存儲(chǔ)器200的一張表中,在下一次關(guān)閉或休眠時(shí),在關(guān)閉或休眠前控制器440使用這些數(shù)據(jù)從磁盤移入非易失性存儲(chǔ)器200。
映射部分510的控制操作系統(tǒng)直接控制非易失性存儲(chǔ)器200的映射部分510。對(duì)于這一部分,操作系統(tǒng)確定具體的必須映射到映射部分510的邏輯扇區(qū)地址。這使得操作系統(tǒng)直接控制存儲(chǔ)在非易失性存儲(chǔ)器200中的數(shù)據(jù)。在一個(gè)實(shí)施例中,這一控制也可以交給其它應(yīng)用程序。
這能夠被實(shí)現(xiàn)的一個(gè)方法是操作系統(tǒng)134創(chuàng)建一部分映射或遮蔽一具體但不是必須鄰近的LSAs集合的非易失性存儲(chǔ)器200。為了創(chuàng)建這一部分,OS發(fā)送一命令給磁盤控制器以刷新整個(gè)非易失性存儲(chǔ)器200,這移動(dòng)在寫緩沖器和先前映射中的修改過的數(shù)據(jù)到長期存儲(chǔ)媒體430。然后它發(fā)送一個(gè)命令將LSAs的列表映射到非易失性存儲(chǔ)器200的映射部分510。控制器440從磁盤拷貝扇區(qū)到非易失性存儲(chǔ)器200并將它們保持在那兒,直到操作系統(tǒng)136以別的方式告知。如果發(fā)送給永久存儲(chǔ)設(shè)備300用于映射的邏輯扇區(qū)地址超出了磁盤430的當(dāng)前地址空間,則這些被附加在磁盤的地址空間的末端。當(dāng)再映射發(fā)生時(shí),OS 134需要將在這些擴(kuò)展地址中的數(shù)據(jù)拷貝到磁盤地址空間中的單元里以避免丟失數(shù)據(jù)。操作系統(tǒng)是對(duì)這些在非易失性存儲(chǔ)器200中被映射的扇區(qū)直接控制的。
OS134可以周期性地將映射部分510刷新到磁盤430且將LSAs的一個(gè)新集合映射到映射部分510。這發(fā)生在如圖10所示的內(nèi)容中。在步驟1000中,磁盤430準(zhǔn)備讀/寫。在步驟1010中,來自非易失性存儲(chǔ)器200的映射部分510的數(shù)據(jù)被刷新到磁盤430。在步驟1020中,高速緩存部分500也被刷新到磁盤。在步驟1030中,將要被映射的新的LSAs被從磁盤430拷貝到非易失性存儲(chǔ)器200的映射部分510。雖然沒有被顯示,在一個(gè)實(shí)施例中,高速緩存部分500被用來自磁盤430的數(shù)據(jù)充滿以便作為讀高速緩存。在步驟1040,磁盤430就被停轉(zhuǎn)。
作為對(duì)這一映射的一個(gè)選擇,非易失性存儲(chǔ)器也可以被配置為永久存儲(chǔ)設(shè)備300的分離部分或邏輯卷。如上所述連續(xù)的邏輯扇區(qū)則處在操作系統(tǒng)136的直接控制下。
用于永久存儲(chǔ)設(shè)備300的自描述存儲(chǔ)器部分在一個(gè)實(shí)施例中,除了如圖5所示的高速緩存部分500和映射部分510之外,一部分非易失性存儲(chǔ)器被留出以存儲(chǔ)關(guān)于允許診斷或其它信息被保持的永久存儲(chǔ)設(shè)備300的某一信息。
在一個(gè)實(shí)施例中,這一描述信息包括標(biāo)志信息、在長期存儲(chǔ)媒體430中的壞扇區(qū)的數(shù)量、關(guān)于在某一數(shù)量時(shí)間內(nèi)扇區(qū)被寫或讀的次數(shù)的統(tǒng)計(jì)數(shù)據(jù)、在某一數(shù)量時(shí)間內(nèi)磁盤被旋轉(zhuǎn)或停轉(zhuǎn)的次數(shù)和長期存儲(chǔ)媒體已經(jīng)運(yùn)行的小時(shí)數(shù)。
在一個(gè)實(shí)施例中,這個(gè)自描述存儲(chǔ)器部分由特殊的允許OS部件或一個(gè)應(yīng)用程序訪問存儲(chǔ)器的接口讀取。在另一個(gè)實(shí)施例中,永久存儲(chǔ)設(shè)備300包括一個(gè)顯示器。例如,一個(gè)LCD顯示器可以被包括在永久存儲(chǔ)設(shè)備300中。當(dāng)某一對(duì)永久存儲(chǔ)設(shè)備300的查詢被進(jìn)行時(shí),或者通過計(jì)算機(jī)110或者直接地(例如通過按壓在永久存儲(chǔ)設(shè)備300上的按鈕),來自自描述存儲(chǔ)器部分的數(shù)據(jù)被顯示。
在一個(gè)實(shí)施例中,OS或應(yīng)用程序使用存儲(chǔ)在自描述存儲(chǔ)器中的信息確定什么時(shí)候存儲(chǔ)設(shè)備300接近它的生命期望以及存儲(chǔ)在所述存儲(chǔ)設(shè)備300上的數(shù)據(jù)需要被轉(zhuǎn)移到一個(gè)新的存儲(chǔ)設(shè)備。
允許非易失性存儲(chǔ)器200被用作存儲(chǔ)關(guān)于計(jì)算機(jī)操作的數(shù)據(jù)的“黑匣子”記錄器的信息也可以被存儲(chǔ)。萬一發(fā)生故障,比如異常關(guān)閉,關(guān)于計(jì)算機(jī)操作的信息被存儲(chǔ)且能夠被檢索以分析該故障。這個(gè)信息可以包括關(guān)于運(yùn)行在所述計(jì)算機(jī)系統(tǒng)上的處理的處理信息;關(guān)于運(yùn)行在所述計(jì)算機(jī)系統(tǒng)上的線程的線程信息;數(shù)據(jù)訪問;和設(shè)備訪問。類似于飛機(jī)上的黑匣子記錄器,有限數(shù)量的空間可以被分配給這一操作信息,且當(dāng)超過該空間能夠存儲(chǔ)的更多信息被收集時(shí),先前存儲(chǔ)的操作信息被用更新的信息寫在上面。
磨損測量某些非易失性存儲(chǔ)器技術(shù)在太多的擦除周期后都遭到磨損。為了延遲該磨損的出現(xiàn),在一個(gè)實(shí)施例中,控制器440平衡非易失性存儲(chǔ)器200中所有區(qū)域的擦除以便對(duì)每個(gè)區(qū)域的擦除近似相同。控制器440改變非易失性存儲(chǔ)器內(nèi)被使用的物理地址以避免磨損與被頻繁寫的磁盤扇區(qū)相關(guān)的非易失性存儲(chǔ)器塊。在一個(gè)實(shí)施例中,這要求某一數(shù)量的花費(fèi)以用來保證在映射部分總有可得到的空間去進(jìn)行磨損測量。例如,如果1MB的扇區(qū)被留用作為映射部分510,則磁盤控制器實(shí)際上可留用1.5MB以允許磨損測量完全工作。
結(jié)論應(yīng)當(dāng)注意,前述例子被提供僅是為了解釋的目的,決不能被解釋為對(duì)本發(fā)明的限制。雖然本發(fā)明已經(jīng)參考各種實(shí)施例進(jìn)行了描述,但應(yīng)當(dāng)理解在此使用的語句只是描述和解釋的語句,而不是限制的語句。此外,雖然本發(fā)明已經(jīng)在此參考特殊的裝置、材料和實(shí)施例進(jìn)行了描述,但本發(fā)明不打算被限制于在此公開的特殊內(nèi)容;更合適地,本發(fā)明擴(kuò)展了所有在功能上相等的結(jié)構(gòu)、方法和使用,這些包括在附加的權(quán)利要求的范圍內(nèi)。理解了本說明書教導(dǎo)的好處的本領(lǐng)域技術(shù)人員可以實(shí)現(xiàn)許多修改,且可以進(jìn)行改變而不脫離本發(fā)明各方面的范圍和精神。
權(quán)利要求
1.一種操作具有非易失性存儲(chǔ)器和長期存儲(chǔ)媒體的計(jì)算機(jī)系統(tǒng)的方法,包括使用至少一部分所述非易失性存儲(chǔ)器作為寫緩沖器用于來自對(duì)所述長期存儲(chǔ)媒體的寫操作的數(shù)據(jù)的中間存儲(chǔ);和提供一個(gè)接口用于請求寫入所述寫緩沖器的數(shù)據(jù)被傳送到所述長期存儲(chǔ)媒體。
2.如權(quán)利要求1所述的方法,進(jìn)一步包括提供一個(gè)接口用于請求在所述長期存儲(chǔ)媒體上執(zhí)行一個(gè)準(zhǔn)備動(dòng)作以使所述長期存儲(chǔ)媒體準(zhǔn)備用于寫。
3.如權(quán)利要求2所述的方法,其中所述長期存儲(chǔ)媒體包括一個(gè)旋轉(zhuǎn)存儲(chǔ)媒體,且所述準(zhǔn)備動(dòng)作包括旋轉(zhuǎn)所述旋轉(zhuǎn)存儲(chǔ)媒體。
4.如權(quán)利要求3所述的方法,其中所述準(zhǔn)備動(dòng)作以比所述準(zhǔn)備動(dòng)作可能的最快速度更慢的速度發(fā)生。
5.如權(quán)利要求2所述的方法,進(jìn)一步包括檢測所述準(zhǔn)備動(dòng)作已經(jīng)被執(zhí)行;將寫入所述寫緩沖器的第一數(shù)據(jù)傳送到所述長期存儲(chǔ)媒體。
6.如權(quán)利要求5所述的方法,進(jìn)一步包括確定一組第二數(shù)據(jù)是可得到的以傳送給所述長期存儲(chǔ)器;根據(jù)所述準(zhǔn)備動(dòng)作已經(jīng)被執(zhí)行的檢測,傳送所述第二數(shù)據(jù)到所述長期存儲(chǔ)器。
7.如權(quán)利要求1所述的方法,進(jìn)一步包括提供一個(gè)接口用于請求在所述長期存儲(chǔ)媒體上執(zhí)行一個(gè)動(dòng)作以使它暫時(shí)對(duì)寫失效。
8.如權(quán)利要求7所述的方法,其中所述長期存儲(chǔ)媒體包括一個(gè)旋轉(zhuǎn)存儲(chǔ)媒體,且所述動(dòng)作包括停轉(zhuǎn)所述旋轉(zhuǎn)存儲(chǔ)媒體。
9.如權(quán)利要求8所述的方法,其中所述失效動(dòng)作以比所述準(zhǔn)備動(dòng)作可能的最快速度更慢的速度發(fā)生。
10.如權(quán)利要求1所述的方法,進(jìn)一步包括提供一個(gè)接口用于請求某一指定的數(shù)據(jù)在一個(gè)或多個(gè)寫操作中被直接寫入所述長期存儲(chǔ)媒體而不是所述寫緩沖器。
11.如權(quán)利要求1所述的方法,其中,對(duì)于每個(gè)存儲(chǔ)在所述寫緩沖器中的數(shù)據(jù)的元件,一個(gè)優(yōu)先權(quán)指示被分配給所述元件,其中用于請求所述數(shù)據(jù)被傳送給所述長期存儲(chǔ)媒體的所述接口包括一個(gè)優(yōu)先權(quán)級(jí)的指示,且其中,對(duì)于每個(gè)存儲(chǔ)在所述寫緩沖器中的數(shù)據(jù)的元件,所述元件是否被傳送給所述長期存儲(chǔ)媒體是根據(jù)所述指示和所述元件的所述分配的優(yōu)先權(quán)級(jí)。
12.如權(quán)利要求1所述的方法,進(jìn)一步包括提供一個(gè)接口用于指示存儲(chǔ)在所述非易失性存儲(chǔ)器中的某一指定數(shù)據(jù)是無效的。
13.如權(quán)利要求12所述的方法,其中所述無效數(shù)據(jù)不被傳送到所述長期存儲(chǔ)媒體。
14.如權(quán)利要求13所述的方法,其中在所述非易失性存儲(chǔ)器中用于所述無效數(shù)據(jù)的單元被設(shè)為可得到以用于存儲(chǔ)其它數(shù)據(jù)。
15.如權(quán)利要求1所述的方法,進(jìn)一步包括提供一個(gè)接口用于接收關(guān)于所述非易失性存儲(chǔ)器的信息。
16.如權(quán)利要求15所述的方法,其中所述信息包括所述非易失性存儲(chǔ)器是否存在。
17.如權(quán)利要求15所述的方法,其中所述信息包括所述非易失性存儲(chǔ)器的大小。
18.如權(quán)利要求1所述的方法,其中所述信息包括選自以下內(nèi)容中的至少一個(gè)關(guān)于所述非易失性存儲(chǔ)器的使用信息;和所述非易失性存儲(chǔ)器的類型。
19.如權(quán)利要求1所述的方法,進(jìn)一步包括提供一個(gè)控制以保證在所述非易失性存儲(chǔ)器內(nèi)的不同物理單元以近似相等的頻率被擦除。
20.一種具有執(zhí)行權(quán)利要求1的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體。
21.一種在具有非易失性存儲(chǔ)器和所述長期存儲(chǔ)媒體的計(jì)算機(jī)系統(tǒng)中執(zhí)行將某一數(shù)據(jù)原子寫操作到長期存儲(chǔ)媒體中的方法,包括嘗試將所述某一數(shù)據(jù)寫到所述非易失性存儲(chǔ)器;如果所述嘗試成功,則傳送所述某一數(shù)據(jù)到所述長期存儲(chǔ)媒體。
22.如權(quán)利要求21所述的方法,其中如果所述嘗試不成功,則包括一個(gè)故障指示的故障數(shù)據(jù)被返回。
23.一種數(shù)據(jù)庫應(yīng)用,其中原子寫操作按照權(quán)利要求21的方法被執(zhí)行。
24.一種具有執(zhí)行權(quán)利要求21的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體。
25.一種操作具有非易失性存儲(chǔ)器和長期存儲(chǔ)媒體的計(jì)算機(jī)系統(tǒng)的方法,包括使用至少一部分所述非易失性存儲(chǔ)器作為讀緩沖器用于對(duì)來自所述長期存儲(chǔ)媒體的數(shù)據(jù)的存儲(chǔ);和提供一個(gè)接口用于請求將某一數(shù)據(jù)從所述長期存儲(chǔ)媒體讀到非易失性存儲(chǔ)器的所述部分中。
26.如權(quán)利要求25所述的方法,進(jìn)一步包括提供一個(gè)接口用于請求在所述長期存儲(chǔ)媒體上執(zhí)行一個(gè)準(zhǔn)備動(dòng)作以使所述長期存儲(chǔ)媒體準(zhǔn)備用于讀。
27.如權(quán)利要求26所述的方法,其中所述長期存儲(chǔ)媒體包括一個(gè)旋轉(zhuǎn)存儲(chǔ)媒體,且所述準(zhǔn)備動(dòng)作包括旋轉(zhuǎn)所述旋轉(zhuǎn)存儲(chǔ)媒體。
28.如權(quán)利要求25所述的方法,進(jìn)一步包括提供一個(gè)接口用于請求在所述長期存儲(chǔ)媒體上執(zhí)行一個(gè)動(dòng)作以使它暫時(shí)對(duì)讀失效。
29.如權(quán)利要求28所述的方法,其中所述長期存儲(chǔ)媒體包括一個(gè)旋轉(zhuǎn)存儲(chǔ)媒體,且所述動(dòng)作包括停轉(zhuǎn)所述旋轉(zhuǎn)存儲(chǔ)媒體。
30.如權(quán)利要求25所述的方法,其中,對(duì)于每個(gè)存儲(chǔ)在所述讀緩沖器中的數(shù)據(jù)的元件,一個(gè)優(yōu)先權(quán)指示被分配給所述元件,其中部分所述讀緩沖器被周期性地再分配以用于其它目的,且其中所述讀緩沖器的第一部分是否在所述讀緩沖器的第二部分之前被再分配是根據(jù)分配給所述第一部分中的數(shù)據(jù)的元件的第一優(yōu)先權(quán)指示和分配給存儲(chǔ)在所述第二部分中的數(shù)據(jù)的元件的第二優(yōu)先權(quán)指示的相對(duì)值。
31.如權(quán)利要求30所述的方法,其中至少一個(gè)所述其它使用包括使用作為用于來自所述長期存儲(chǔ)媒體的寫操作的數(shù)據(jù)的中間存儲(chǔ)器的寫緩沖器;且其中所述方法進(jìn)一步包括提供一個(gè)接口用于請求寫入所述寫緩沖器的數(shù)據(jù)被傳送到所述長期存儲(chǔ)媒體。
32.一種具有執(zhí)行權(quán)利要求25的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體。
33.一種操作具有非易失性存儲(chǔ)器和長期存儲(chǔ)媒體的計(jì)算機(jī)系統(tǒng)的方法,包括建立一個(gè)所述非易失性存儲(chǔ)器的至少一個(gè)非易失性存儲(chǔ)器存儲(chǔ)元件與所述長期存儲(chǔ)媒體的至少一個(gè)長期存儲(chǔ)媒體存儲(chǔ)元件的直接對(duì)應(yīng);從所述長期存儲(chǔ)元件讀出數(shù)據(jù)到所述非易失性存儲(chǔ)元件;在所述非易失性存儲(chǔ)元件中執(zhí)行指向所述長期存儲(chǔ)元件的任何寫操作;和通過從所述非易失性存儲(chǔ)元件中讀取數(shù)據(jù)響應(yīng)指向所述長期存儲(chǔ)元件的任何讀操作。
34.如權(quán)利要求33所述的方法,其中所述方法進(jìn)一步包括提供一個(gè)接口用于請求所述直接對(duì)應(yīng)被改變。
35.如權(quán)利要求33所述的方法,進(jìn)一步包括,響應(yīng)于所述直接對(duì)應(yīng)被改變的請求從每個(gè)非易失性存儲(chǔ)器存儲(chǔ)元件中讀取第二數(shù)據(jù)到所述長期存儲(chǔ)媒體的所述對(duì)應(yīng)的長期存儲(chǔ)元件;按照所述非易失性存儲(chǔ)器的至少一個(gè)非易失性存儲(chǔ)器存儲(chǔ)元件與所述長期存儲(chǔ)媒體的至少一個(gè)長期存儲(chǔ)元件的第二直接對(duì)應(yīng),從至少一個(gè)長期存儲(chǔ)元件中讀取第三數(shù)據(jù)到非易失性存儲(chǔ)器;根據(jù)所述第二直接對(duì)應(yīng),將來自指向所述長期存儲(chǔ)元件的寫操作的第四數(shù)據(jù)寫到所述非易失性存儲(chǔ)元件;和根據(jù)所述第二直接對(duì)應(yīng),從所述非易失性存儲(chǔ)元件中讀取響應(yīng)于指向所述長期存儲(chǔ)元件的讀操作的第五數(shù)據(jù)。
36.一種具有執(zhí)行權(quán)利要求33的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體。
37.一種操作具有包括非易失性存儲(chǔ)器和長期存儲(chǔ)媒體的永久存儲(chǔ)設(shè)備的計(jì)算機(jī)系統(tǒng)的方法,包括使用至少一部分所述非易失性存儲(chǔ)器作為與所述永久存儲(chǔ)設(shè)備有關(guān)的描述信息的存儲(chǔ)器;和提供從所述部分讀取數(shù)據(jù)的方法。
38.如權(quán)利要求37所述的方法,其中所述描述信息包括用于所述永久存儲(chǔ)設(shè)備的標(biāo)記。
39.如權(quán)利要求37所述的方法,其中所述描述信息包括關(guān)于所述長期存儲(chǔ)媒體的使用統(tǒng)計(jì)信息。
40.如權(quán)利要求39所述的方法,其中所述使用統(tǒng)計(jì)信息包括一個(gè)或多個(gè)以下內(nèi)容在所述長期存儲(chǔ)媒體上被寫的扇區(qū)數(shù);一個(gè)指定動(dòng)作已經(jīng)在所述長期存儲(chǔ)媒體上被執(zhí)行的次數(shù);在所述長期存儲(chǔ)媒體上的壞扇區(qū)數(shù);所述非易失性存儲(chǔ)器的類型;和所述非易失性存儲(chǔ)器的期望生命信息。
41.如權(quán)利要求37所述的方法,其中所述方法包括一個(gè)用于請求來自所述部分的數(shù)據(jù)被返回的接口。
42.如權(quán)利要求37所述的方法,其中所述永久存儲(chǔ)設(shè)備進(jìn)一步包括顯示器,且其中所述方法包括顯示來自所述部分的數(shù)據(jù)。
43.一種具有執(zhí)行權(quán)利要求37的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體。
44.一種在具有非易失性存儲(chǔ)器和長期存儲(chǔ)媒體的計(jì)算機(jī)系統(tǒng)中對(duì)存儲(chǔ)器進(jìn)行磁盤碎片整理的方法,包括將先前存儲(chǔ)在所述長期存儲(chǔ)器中的第一部分?jǐn)?shù)據(jù)存儲(chǔ)在所述非易失性存儲(chǔ)器中;在所述長期存儲(chǔ)媒體中改變存儲(chǔ)在第一組存儲(chǔ)器單元中的第二部分?jǐn)?shù)據(jù)的存儲(chǔ)器單元,這樣所述第二部分?jǐn)?shù)據(jù)被存儲(chǔ)在一個(gè)第二組存儲(chǔ)器單元中,其中所述第二組存儲(chǔ)器單元比所述第一組存儲(chǔ)器單元更鄰近;和將所述第一部分?jǐn)?shù)據(jù)寫入到所述長期存儲(chǔ)器。
45.一種具有執(zhí)行權(quán)利要求44的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體。
46.一種操作具有非易失性存儲(chǔ)器和長期存儲(chǔ)媒體的計(jì)算機(jī)系統(tǒng)的方法,包括在所述非易失性存儲(chǔ)器中存儲(chǔ)請求用于初始化所述計(jì)算機(jī)系統(tǒng)的啟動(dòng)數(shù)據(jù);使用所述啟動(dòng)數(shù)據(jù)以便初始化所述計(jì)算機(jī)系統(tǒng);和在所述長期存儲(chǔ)媒體上執(zhí)行一個(gè)準(zhǔn)備動(dòng)作以使所述長期存儲(chǔ)媒體準(zhǔn)備用于動(dòng)作。
47.如權(quán)利要求46所述的方法,進(jìn)一步包括接收一個(gè)請求以將所述計(jì)算機(jī)轉(zhuǎn)換到關(guān)閉狀態(tài);和在所述非易失性存儲(chǔ)器中存儲(chǔ)被請求用于所述計(jì)算機(jī)系統(tǒng)的后來的初始化的第二啟動(dòng)數(shù)據(jù)。
48.如權(quán)利要求47所述的方法,其中所述存儲(chǔ)第二啟動(dòng)數(shù)據(jù)包括在所述長期存儲(chǔ)媒體上執(zhí)行一個(gè)準(zhǔn)備動(dòng)作以使所述長期存儲(chǔ)媒體準(zhǔn)備用于動(dòng)作;將來自所述非易失性存儲(chǔ)器中的其它數(shù)據(jù)寫入到所述長期存儲(chǔ)媒體;和將所述第二啟動(dòng)數(shù)據(jù)存儲(chǔ)到所述非易失性存儲(chǔ)器中。
49.一種具有執(zhí)行權(quán)利要求46的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體。
50.一種操作具有非易失性存儲(chǔ)器和長期存儲(chǔ)媒體的計(jì)算機(jī)系統(tǒng)的方法,包括將關(guān)于所述計(jì)算機(jī)系統(tǒng)的操作的操作數(shù)據(jù)存儲(chǔ)在所述非易失性存儲(chǔ)器中;和在所述計(jì)算機(jī)系統(tǒng)發(fā)生故障后使用所述操作數(shù)據(jù)以分析所述計(jì)算機(jī)系統(tǒng)的所述操作。
51.如權(quán)利要求50所述的方法,其中所述操作數(shù)據(jù)包括從以下內(nèi)容中選擇的一個(gè)關(guān)于運(yùn)行在所述計(jì)算機(jī)系統(tǒng)上的處理的處理信息;關(guān)于運(yùn)行在所述計(jì)算機(jī)系統(tǒng)上的線程的線程信息;數(shù)據(jù)訪問;和設(shè)備訪問。
52.一種具有執(zhí)行權(quán)利要求50的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體。
53.一種將數(shù)據(jù)存儲(chǔ)在具有非易失性存儲(chǔ)器和長期存儲(chǔ)媒體的計(jì)算機(jī)系統(tǒng)上的方法,包括存儲(chǔ)數(shù)據(jù)的第一版本;在所述非易失性存儲(chǔ)器上創(chuàng)建所述數(shù)據(jù)的第二版本;和根據(jù)至少一個(gè)數(shù)據(jù)改變更新所述數(shù)據(jù)的所述第二版本。
54.如權(quán)利要求53所述的方法,其中所述第一版本被存儲(chǔ)在非易失性存儲(chǔ)器中。
55.如權(quán)利要求53所述的方法,其中數(shù)據(jù)的所述第一版本被存儲(chǔ)在所述長期存儲(chǔ)媒體中,且其中數(shù)據(jù)的所述第一版本被表示為所述數(shù)據(jù)的當(dāng)前版本,進(jìn)一步包括改變所述表示以表示所述第一版本被表示為存檔版本。
56.一種具有執(zhí)行權(quán)利要求53的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體。
57.一種使用非易失性存儲(chǔ)器和長期存儲(chǔ)媒體的計(jì)算機(jī)系統(tǒng),包括使用至少一部分所述非易失性存儲(chǔ)器作為寫緩沖器用于來自對(duì)所述長期存儲(chǔ)媒體的寫操作的數(shù)據(jù)的中間存儲(chǔ)的邏輯;和提供一個(gè)接口用于請求寫入所述寫緩沖器的數(shù)據(jù)被傳送到所述長期存儲(chǔ)媒體的邏輯。
58.如權(quán)利要求57所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括提供一個(gè)接口用于請求在所述長期存儲(chǔ)媒體上執(zhí)行一個(gè)準(zhǔn)備動(dòng)作以使所述長期存儲(chǔ)媒體準(zhǔn)備用于寫的邏輯。
59.如權(quán)利要求58所述的計(jì)算機(jī)系統(tǒng),其中所述長期存儲(chǔ)媒體包括一個(gè)旋轉(zhuǎn)存儲(chǔ)媒體,且所述準(zhǔn)備動(dòng)作包括旋轉(zhuǎn)所述旋轉(zhuǎn)存儲(chǔ)媒體。
60.如權(quán)利要求59所述的計(jì)算機(jī)系統(tǒng),其中所述準(zhǔn)備動(dòng)作以比所述準(zhǔn)備動(dòng)作可能的最快速度更慢的速度發(fā)生。
61.如權(quán)利要求58所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括檢測所述準(zhǔn)備動(dòng)作已經(jīng)被執(zhí)行的邏輯;和將寫入所述寫緩沖器的第一數(shù)據(jù)傳送到所述長期存儲(chǔ)媒體的邏輯。
62.如權(quán)利要求61所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括確定一組第二數(shù)據(jù)是可得到的以傳送給所述長期存儲(chǔ)器的邏輯;根據(jù)所述準(zhǔn)備動(dòng)作已經(jīng)被執(zhí)行的檢測,傳送所述第二數(shù)據(jù)到所述長期存儲(chǔ)器的邏輯。
63.如權(quán)利要求57所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括提供一個(gè)接口用于請求在所述長期存儲(chǔ)媒體上執(zhí)行一個(gè)動(dòng)作以使它暫時(shí)對(duì)寫失效的邏輯。
64.如權(quán)利要求63所述的計(jì)算機(jī)系統(tǒng),其中所述長期存儲(chǔ)媒體包括一個(gè)旋轉(zhuǎn)存儲(chǔ)媒體,且所述動(dòng)作包括停轉(zhuǎn)所述旋轉(zhuǎn)存儲(chǔ)媒體。
65.如權(quán)利要求64所述的計(jì)算機(jī)系統(tǒng),其中所述失效動(dòng)作以比所述準(zhǔn)備動(dòng)作可能的最快速度更慢的速度發(fā)生。
66.如權(quán)利要求57所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括提供一個(gè)接口用于請求某一指定的數(shù)據(jù)在一個(gè)或多個(gè)寫操作中被直接寫入所述長期存儲(chǔ)媒體而不是所述寫緩沖器的邏輯。
67.如權(quán)利要求57所述的計(jì)算機(jī)系統(tǒng),其中,對(duì)于每個(gè)存儲(chǔ)在所述寫緩沖器中的數(shù)據(jù)的元件,一個(gè)優(yōu)先權(quán)指示被分配給所述元件,其中用于請求所述數(shù)據(jù)被傳送給所述長期存儲(chǔ)媒體的所述接口包括一個(gè)優(yōu)先權(quán)級(jí)的指示,且其中,對(duì)于每個(gè)存儲(chǔ)在所述寫緩沖器中的數(shù)據(jù)的元件,所述元件是否被傳送給所述長期存儲(chǔ)媒體是根據(jù)所述指示和所述元件的所述分配的優(yōu)先權(quán)級(jí)。
68.如權(quán)利要求57所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括提供一個(gè)接口用于指示存儲(chǔ)在所述非易失性存儲(chǔ)器中的某一指定數(shù)據(jù)為無效的邏輯。
69.如權(quán)利要求68所述的計(jì)算機(jī)系統(tǒng),其中所述無效數(shù)據(jù)不被傳送到所述長期存儲(chǔ)媒體。
70.如權(quán)利要求69所述的計(jì)算機(jī)系統(tǒng),其中在所述非易失性存儲(chǔ)器中用于所述無效數(shù)據(jù)的單元被設(shè)為可得到以用于存儲(chǔ)其它數(shù)據(jù)。
71.如權(quán)利要求57所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括提供一個(gè)接口用于接收關(guān)于所述非易失性存儲(chǔ)器的信息的邏輯。
72.如權(quán)利要求71所述的計(jì)算機(jī)系統(tǒng),其中所述信息包括所述非易失性存儲(chǔ)器是否存在。
73.如權(quán)利要求71所述的計(jì)算機(jī)系統(tǒng),其中所述信息包括所述非易失性存儲(chǔ)器的大小。
74.如權(quán)利要求57所述的計(jì)算機(jī)系統(tǒng),其中所述信息包括選自以下內(nèi)容中的至少一個(gè)關(guān)于所述非易失性存儲(chǔ)器的使用信息;和所述非易失性存儲(chǔ)器的類型。
75.如權(quán)利要求57所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括提供一個(gè)控制以保證在所述非易失性存儲(chǔ)器內(nèi)的不同物理單元以近似相等的頻率被擦除的邏輯。
76.一種允許對(duì)長期存儲(chǔ)媒體進(jìn)行某一數(shù)據(jù)的原子寫操作的計(jì)算機(jī)系統(tǒng),所述計(jì)算機(jī)系統(tǒng)使用非易失性存儲(chǔ)器和長期存儲(chǔ)媒體,所述計(jì)算機(jī)系統(tǒng)包括具有非易失性存儲(chǔ)器和長期存儲(chǔ)器媒體,包括嘗試將所述某一數(shù)據(jù)寫到所述非易失性存儲(chǔ)器的邏輯;如果所述嘗試成功,則傳送所述某一數(shù)據(jù)到所述長期存儲(chǔ)媒體的邏輯。
77.如權(quán)利要求76所述的計(jì)算機(jī)系統(tǒng),其中如果所述嘗試不成功,則包括一個(gè)故障指示的故障數(shù)據(jù)被返回。
78.一種使用非易失性存儲(chǔ)器和長期存儲(chǔ)媒體的計(jì)算機(jī)系統(tǒng),包括使用至少一部分所述非易失性存儲(chǔ)器作為讀緩沖器用于對(duì)來自所述長期存儲(chǔ)媒體的數(shù)據(jù)的存儲(chǔ)的邏輯;和提供一個(gè)接口用于請求將某一數(shù)據(jù)從所述長期存儲(chǔ)媒體讀到非易失性存儲(chǔ)器的所述部分中的邏輯。
79.如權(quán)利要求78所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括提供一個(gè)接口用于請求在所述長期存儲(chǔ)媒體上執(zhí)行一個(gè)準(zhǔn)備動(dòng)作以使所述長期存儲(chǔ)媒體準(zhǔn)備用于讀的邏輯。
80.如權(quán)利要求79所述的計(jì)算機(jī)系統(tǒng),其中所述長期存儲(chǔ)媒體包括一個(gè)旋轉(zhuǎn)存儲(chǔ)媒體,且所述準(zhǔn)備動(dòng)作包括旋轉(zhuǎn)所述旋轉(zhuǎn)存儲(chǔ)媒體。
81.如權(quán)利要求78所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括提供一個(gè)接口用于請求在所述長期存儲(chǔ)媒體上執(zhí)行一個(gè)動(dòng)作以使它暫時(shí)對(duì)讀失效的邏輯。
82.如權(quán)利要求81所述的計(jì)算機(jī)系統(tǒng),其中所述長期存儲(chǔ)媒體包括一個(gè)旋轉(zhuǎn)存儲(chǔ)媒體,且所述動(dòng)作包括停轉(zhuǎn)所述旋轉(zhuǎn)存儲(chǔ)媒體。
83.如權(quán)利要求78所述的計(jì)算機(jī)系統(tǒng),其中,對(duì)于每個(gè)存儲(chǔ)在所述讀緩沖器中的數(shù)據(jù)的元件,一個(gè)優(yōu)先權(quán)指示被分配給所述元件,其中部分所述讀緩沖器被周期性地再分配以用于其它目的,且其中所述讀緩沖器的第一部分是否在所述讀緩沖器的第二部分之前被再分配是根據(jù)分配給所述第一部分中的數(shù)據(jù)的元件的第一優(yōu)先權(quán)指示和分配給存儲(chǔ)在所述第二部分中的數(shù)據(jù)的元件的第二優(yōu)先權(quán)指示的相對(duì)值。
84.如權(quán)利要求83所述的計(jì)算機(jī)系統(tǒng),其中至少一個(gè)所述其它使用包括使用作為用于來自所述長期存儲(chǔ)媒體的寫操作的數(shù)據(jù)的中間存儲(chǔ)器的寫緩沖器;且其中所述計(jì)算機(jī)系統(tǒng)進(jìn)一步包括提供一個(gè)接口用于請求寫入所述寫緩沖器的數(shù)據(jù)被傳送到所述長期存儲(chǔ)媒體的邏輯。
85.一種使用非易失性存儲(chǔ)器和長期存儲(chǔ)媒體的計(jì)算機(jī)系統(tǒng),包括建立一個(gè)所述非易失性存儲(chǔ)器的至少一個(gè)非易失性存儲(chǔ)器存儲(chǔ)元件與所述長期存儲(chǔ)媒體的至少一個(gè)長期存儲(chǔ)媒體存儲(chǔ)元件的直接對(duì)應(yīng)的邏輯;從所述長期存儲(chǔ)元件讀出數(shù)據(jù)到所述非易失性存儲(chǔ)元件的邏輯;在所述非易失性存儲(chǔ)元件中執(zhí)行指向所述長期存儲(chǔ)元件的任何寫操作的邏輯;和通過從所述非易失性存儲(chǔ)元件中讀取數(shù)據(jù)響應(yīng)指向所述長期存儲(chǔ)元件的任何讀操作的邏輯。
86.如權(quán)利要求85所述的計(jì)算機(jī)系統(tǒng),其中所述計(jì)算機(jī)系統(tǒng)進(jìn)一步包括提供一個(gè)接口用于請求所述直接對(duì)應(yīng)被改變。
87.如權(quán)利要求85所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括,響應(yīng)于所述直接對(duì)應(yīng)被改變的請求從每個(gè)非易失性存儲(chǔ)器存儲(chǔ)元件中寫第二數(shù)據(jù)到所述長期存儲(chǔ)媒體的所述對(duì)應(yīng)的長期存儲(chǔ)元件的邏輯;按照所述非易失性存儲(chǔ)器的至少一個(gè)非易失性存儲(chǔ)器存儲(chǔ)元件與所述長期存儲(chǔ)媒體的至少一個(gè)長期存儲(chǔ)元件的第二直接對(duì)應(yīng),從至少一個(gè)長期存儲(chǔ)元件中讀取第三數(shù)據(jù)到非易失性存儲(chǔ)器的邏輯;根據(jù)所述第二直接對(duì)應(yīng),在所述非易失性存儲(chǔ)元件上執(zhí)行指向所述長期存儲(chǔ)元件的寫操作的邏輯;和根據(jù)所述第二直接對(duì)應(yīng),通過從所述非易失性存儲(chǔ)元件中讀取數(shù)據(jù)來執(zhí)行指向所述長期存儲(chǔ)元件的讀操作的邏輯。
88.一種使用非易失性存儲(chǔ)器和長期存儲(chǔ)媒體的計(jì)算機(jī)系統(tǒng),包括使用至少一部分所述非易失性存儲(chǔ)器作為與所述永久存儲(chǔ)設(shè)備有關(guān)的描述信息的存儲(chǔ)器;和提供從所述部分讀取數(shù)據(jù)的計(jì)算機(jī)系統(tǒng)。
89.如權(quán)利要求88所述的計(jì)算機(jī)系統(tǒng),其中所述描述信息包括用于所述永久存儲(chǔ)設(shè)備的標(biāo)記。
90.如權(quán)利要求88所述的計(jì)算機(jī)系統(tǒng),其中所述描述信息包括關(guān)于所述長期存儲(chǔ)媒體的使用統(tǒng)計(jì)信息。
91.如權(quán)利要求90所述的計(jì)算機(jī)系統(tǒng),其中所述使用統(tǒng)計(jì)信息包括一個(gè)或多個(gè)以下內(nèi)容在所述長期存儲(chǔ)媒體上被寫的扇區(qū)數(shù);一個(gè)指定動(dòng)作已經(jīng)在所述長期存儲(chǔ)媒體上被執(zhí)行的次數(shù);在所述長期存儲(chǔ)媒體上的壞扇區(qū)數(shù);所述非易失性存儲(chǔ)器的類型;和所述非易失性存儲(chǔ)器的期望生命信息。
92.如權(quán)利要求88所述的計(jì)算機(jī)系統(tǒng),其中所述計(jì)算機(jī)系統(tǒng)包括一個(gè)用于請求來自所述部分的數(shù)據(jù)被返回的接口。
93.如權(quán)利要求88所述的計(jì)算機(jī)系統(tǒng),其中所述永久存儲(chǔ)設(shè)備進(jìn)一步包括顯示器,且其中所述計(jì)算機(jī)系統(tǒng)包括顯示來自所述部分的數(shù)據(jù)。
94.一種具有磁盤碎片整理能力的計(jì)算機(jī)系統(tǒng),所述計(jì)算機(jī)系統(tǒng)使用非易失性存儲(chǔ)器和長期存儲(chǔ)媒體,包括將先前存儲(chǔ)在所述長期存儲(chǔ)器中的第一部分?jǐn)?shù)據(jù)存儲(chǔ)在所述非易失性存儲(chǔ)器中的邏輯;在所述長期存儲(chǔ)媒體中改變存儲(chǔ)在第一組存儲(chǔ)器單元中的第二部分?jǐn)?shù)據(jù)的存儲(chǔ)器單元,以便所述第二部分?jǐn)?shù)據(jù)被存儲(chǔ)在一個(gè)第二組存儲(chǔ)器單元中,其中所述第二組存儲(chǔ)器單元比所述第一組存儲(chǔ)器單元更鄰近的邏輯;和將所述第一部分?jǐn)?shù)據(jù)寫入到所述長期存儲(chǔ)器的邏輯。
95.一種使用非易失性存儲(chǔ)器和長期存儲(chǔ)媒體的計(jì)算機(jī)系統(tǒng),包括在所述非易失性存儲(chǔ)器中存儲(chǔ)請求用于初始化所述計(jì)算機(jī)系統(tǒng)的啟動(dòng)數(shù)據(jù)的邏輯;使用所述啟動(dòng)數(shù)據(jù)以便初始化所述計(jì)算機(jī)系統(tǒng)的邏輯;和在所述長期存儲(chǔ)媒體上執(zhí)行一個(gè)準(zhǔn)備動(dòng)作以使所述長期存儲(chǔ)媒體準(zhǔn)備用于動(dòng)作的邏輯。
96.如權(quán)利要求95所述的計(jì)算機(jī)系統(tǒng),進(jìn)一步包括接收一個(gè)請求以將所述計(jì)算機(jī)轉(zhuǎn)換到關(guān)閉狀態(tài)的邏輯;和在所述非易失性存儲(chǔ)器中存儲(chǔ)被請求用于所述計(jì)算機(jī)系統(tǒng)的后來的初始化的第二啟動(dòng)數(shù)據(jù)的邏輯。
97.如權(quán)利要求96所述的計(jì)算機(jī)系統(tǒng),其中所述存儲(chǔ)第二啟動(dòng)數(shù)據(jù)包括在所述長期存儲(chǔ)媒體上執(zhí)行一個(gè)準(zhǔn)備動(dòng)作以使所述長期存儲(chǔ)媒體準(zhǔn)備用于動(dòng)作的邏輯;將來自所述非易失性存儲(chǔ)器中的其它數(shù)據(jù)寫入到所述長期存儲(chǔ)媒體的邏輯;和將所述第二啟動(dòng)數(shù)據(jù)存儲(chǔ)到所述非易失性存儲(chǔ)器中的邏輯。
98.一種使用非易失性存儲(chǔ)器和長期存儲(chǔ)媒體的計(jì)算機(jī)系統(tǒng),包括將關(guān)于所述計(jì)算機(jī)系統(tǒng)的操作的操作數(shù)據(jù)存儲(chǔ)在所述非易失性存儲(chǔ)器中的邏輯;和在所述計(jì)算機(jī)系統(tǒng)發(fā)生故障后使用所述操作數(shù)據(jù)以分析所述計(jì)算機(jī)系統(tǒng)的所述操作的邏輯。
99.如權(quán)利要求98所述的計(jì)算機(jī)系統(tǒng),其中所述操作數(shù)據(jù)包括從以下內(nèi)容中選擇的一個(gè)關(guān)于運(yùn)行在所述計(jì)算機(jī)系統(tǒng)上的處理的處理信息;關(guān)于運(yùn)行在所述計(jì)算機(jī)系統(tǒng)上的線程的線程信息;數(shù)據(jù)訪問;和設(shè)備訪問。
100.一種使用非易失性存儲(chǔ)器和長期存儲(chǔ)媒體的計(jì)算機(jī)系統(tǒng),包括存儲(chǔ)數(shù)據(jù)的第一版本的邏輯;在所述非易失性存儲(chǔ)器上創(chuàng)建所述數(shù)據(jù)的第二版本的邏輯;和根據(jù)至少一個(gè)數(shù)據(jù)改變更新所述數(shù)據(jù)的所述第二版本的邏輯。
101.如權(quán)利要求100所述的計(jì)算機(jī)系統(tǒng),其中所述第一版本被存儲(chǔ)在非易失性存儲(chǔ)器中。
102.如權(quán)利要求100所述的計(jì)算機(jī)系統(tǒng),其中數(shù)據(jù)的所述第一版本被存儲(chǔ)在所述長期存儲(chǔ)媒體中,且其中數(shù)據(jù)的所述第一版本被表示為所述數(shù)據(jù)的當(dāng)前版本,進(jìn)一步包括改變所述表示以表示所述第一版本被表示為存檔版本的邏輯。
全文摘要
為了提供一種更有效的永久存儲(chǔ)設(shè)備,一個(gè)或多個(gè)長期存儲(chǔ)媒體連同非易失性存儲(chǔ)器被包括。在一個(gè)實(shí)施例中,一部分非易失性存儲(chǔ)器被用作寫緩沖器和讀高速緩存以用于對(duì)長期存儲(chǔ)媒體的寫和讀。接口被提供以用于控制作為寫緩沖器和讀高速緩存的非易失性存儲(chǔ)器的使用。另外,一部分非易失性存儲(chǔ)器被用來提供用于該長期存儲(chǔ)媒體的指定扇區(qū)的直接映射。與永久存儲(chǔ)設(shè)備相關(guān)的描述性數(shù)據(jù)被存儲(chǔ)在該非易失性存儲(chǔ)器的另一部分中。
文檔編號(hào)G06F12/00GK1801121SQ20051008379
公開日2006年7月12日 申請日期2005年5月8日 優(yōu)先權(quán)日2004年5月3日
發(fā)明者C·俄干, C·D·尼科爾森, D·特奧多蘇, D·L·德威特, E·N·希爾, H·R·科達(dá)瓦拉, J·M·帕切姆, M·J·茲比科斯吉, M·J·茲威林, M·R·夫廷, N·S·歐布拉, P·L·斯特蒙, R·Y·納佳, S·費(fèi)爾瑪, T·鮑威爾, W·J·韋斯特林寧 申請人:微軟公司