專利名稱:優(yōu)化存儲(chǔ)器的寫入和磨損性能的制作方法
優(yōu)化存儲(chǔ)器的寫入和磨損性能扭旦 冃眾存儲(chǔ)器設(shè)備具有許多取舍選擇??焖俚拇鎯?chǔ)器可能是昂貴的。而慢速的存 儲(chǔ)器則可能是廉價(jià)的。由于現(xiàn)代應(yīng)用程序?qū)Υ鎯?chǔ)器的需求超過(guò)了消費(fèi)者系統(tǒng)的 物理容量,因此對(duì)硬盤驅(qū)動(dòng)器的分頁(yè)操作會(huì)很快使系統(tǒng)和應(yīng)用程序顯得慢速且 反應(yīng)遲鈍,特別是當(dāng)在各個(gè)任務(wù)或用戶間進(jìn)行切換的時(shí)候。在一理想計(jì)算機(jī)中, 所有存儲(chǔ)器都應(yīng)盡可能地快,但是這種計(jì)算機(jī)太過(guò)昂貴以致于是不現(xiàn)實(shí)的。此 外,存在所有需求僅是低價(jià)的、長(zhǎng)期的存儲(chǔ)的一些應(yīng)用。結(jié)果是,計(jì)算機(jī)可具 有各種存儲(chǔ)器,如從接近處理器的超快存儲(chǔ)器到諸如基于磁盤的存儲(chǔ)器等慢速 存儲(chǔ)器。另外,計(jì)算機(jī)具有添加諸如便攜式硬盤驅(qū)動(dòng)器、軟盤和閃存設(shè)備等更 多和不同類型的存儲(chǔ)器的能力。這些設(shè)備中的每一個(gè)都具有可能會(huì)被最大化的 執(zhí)行和磨損特性。概述確定并使用要從高速存儲(chǔ)器傳送到低速存儲(chǔ)器的理想大小的存儲(chǔ)器可以 導(dǎo)致對(duì)低速存儲(chǔ)器的更快速的保存,以及低速存儲(chǔ)器的更長(zhǎng)的壽命。例如,一 些閃存設(shè)備具有使對(duì)閃存的擦寫次數(shù)最小化的存儲(chǔ)器寫入打下。其它低速存儲(chǔ) 器設(shè)備可以具有使得低速存儲(chǔ)器上的大的塊能夠存儲(chǔ)鄰接數(shù)據(jù)的理想寫入大 小。此外,數(shù)據(jù)可以在快速存儲(chǔ)器中訪問(wèn),即使已指示應(yīng)將該數(shù)據(jù)發(fā)送到較低 速的存儲(chǔ)器。附l是可以根據(jù)權(quán)利要求書操作的計(jì)算系統(tǒng)的框圖;以及 圖2是根據(jù)權(quán)利要求書的方法的示圖。描述雖然下文闡明了多種不同實(shí)施例的詳細(xì)描述,但應(yīng)了解,說(shuō)明書的合法范 圍應(yīng)由在本專利結(jié)尾處所闡明的權(quán)利要求書中的文字來(lái)限定。該詳細(xì)描述應(yīng)被 解釋為只是示例性的,而并沒(méi)有描述每一個(gè)可能的實(shí)施例,因?yàn)槊枋雒恳粋€(gè)可 能的實(shí)施例即便不是不可能,也是不切實(shí)際的。無(wú)論使用現(xiàn)有技術(shù),還是本專 利申請(qǐng)日以后開(kāi)發(fā)的技術(shù),都能實(shí)現(xiàn)許多可選實(shí)施例,且這仍將落入權(quán)利要求 書的范圍之內(nèi)。應(yīng)了解,除非本專利中使用句子"如此處所使用的,術(shù)語(yǔ)''在此被定義 為指的是"或類似的句子來(lái)對(duì)一術(shù)語(yǔ)作出明確的定義,否則并沒(méi)有將該術(shù)語(yǔ)的 含義無(wú)論是明確地還是隱含地限于超出其一般或普通含義的意圖,并且不應(yīng)將 該術(shù)語(yǔ)解釋為限于以本專利的任何部分中(除了權(quán)利要求中的語(yǔ)言之外)所作 出的任何敘述為基礎(chǔ)的范圍內(nèi)。就在本專利末尾處的權(quán)利要求書中所提到的任 何術(shù)語(yǔ)在本專利中都以與單數(shù)含義相一致的方式提及而言,這樣做只是為了清 楚,以便不會(huì)使讀者混淆,而并非旨在通過(guò)限定、隱含或以其它方式來(lái)將該權(quán) 利要求中的術(shù)語(yǔ)解釋為該單數(shù)含義。最后,除非一權(quán)利要求要素是通過(guò)敘述單 詞"裝置"和功能來(lái)限定的,而并沒(méi)有任何結(jié)構(gòu)敘述,否則并不旨在基于35U.S.C § 112第6段的應(yīng)用來(lái)對(duì)任何權(quán)利要求要素的范圍進(jìn)行解釋。
圖1示出了其上可實(shí)現(xiàn)用于所要求保護(hù)的方法和裝置的步驟的系統(tǒng)的合適的計(jì)算系統(tǒng)環(huán)境100的示例。計(jì)算系統(tǒng)環(huán)境IOO只是合適的計(jì)算環(huán)境的一個(gè) 示例,并非旨在對(duì)權(quán)利要求書中的方法或裝置的使用范圍或功能提出任何限 制。也不應(yīng)將該計(jì)算環(huán)境IOO解釋為對(duì)涉及在該示例性計(jì)算環(huán)境100中說(shuō)明的 任何一個(gè)組件或組件組合具有任何依賴性或要求。所要求保護(hù)的方法和裝置的步驟是可與許多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán) 境或配置一起操作??梢赃m用于權(quán)利要求書的方法或裝置的公知的計(jì)算系統(tǒng)、 環(huán)境和/或配置的示例包括,但不限于,個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算器、手持式或 膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子 產(chǎn)品、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包含有上述系統(tǒng)或設(shè)備中的任何 一種的分布式計(jì)算環(huán)境等。所要求保護(hù)的方法和裝置的步驟可以在諸如程序模塊等由計(jì)算機(jī)執(zhí)行的 計(jì)算機(jī)可讀指令的一般上下文中描述。 一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。該方法和 裝置還可以在其中任務(wù)由通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行的分布式 計(jì)算環(huán)境中實(shí)施。在分布式計(jì)算環(huán)境中,程序模塊可以同時(shí)位于含有存儲(chǔ)器存 儲(chǔ)設(shè)備的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。參考圖1,用于實(shí)現(xiàn)所要求保護(hù)的方法和裝置的步驟的示例性系統(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)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線、和通常被稱為夾 層(Mazzanine)總線的外圍部件互連(PCI)總線。計(jì)算機(jī)110通常包括多種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是可被計(jì) 算機(jī)110訪問(wèn)的任何可用介質(zhì),并包括易失性和非易失性介質(zhì)、可移動(dòng)和不可 移動(dòng)介質(zhì)兩者。作為示例,而非限制,計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介 質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié) 構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術(shù)來(lái)實(shí)現(xiàn)的易失性和非易失 性、可移動(dòng)和不可移動(dòng)介質(zhì)兩者。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、 ROM、 EEPRPM、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字通用盤(DVD) 或其它光盤存儲(chǔ)、磁帶盒、磁帶、磁盤存儲(chǔ)或其它磁性存儲(chǔ)設(shè)備、或者可以用 來(lái)存儲(chǔ)期望信息并能被計(jì)算機(jī)110訪問(wèn)的任何其它介質(zhì)。通信介質(zhì)通常以諸如 載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)來(lái)體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程 序模塊或其它數(shù)據(jù),并包括所有信息傳送介質(zhì)。術(shù)語(yǔ)"已調(diào)制數(shù)據(jù)信號(hào)"指以將信息編碼到信號(hào)中的方式來(lái)設(shè)置或改變其一個(gè)或多個(gè)特性的信號(hào)。作為示 例,而非限制,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直接線連接等,還包括 無(wú)線介質(zhì),如聲學(xué)、射頻(RF)、紅外和其它無(wú)線介質(zhì)。上面任意一種組合也 應(yīng)包含在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。系統(tǒng)存儲(chǔ)器130包括諸如只讀存儲(chǔ)器(ROM) 131和隨機(jī)存取存儲(chǔ)器(RAM) 132等易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì)。含有諸 如在啟動(dòng)期間幫助在計(jì)算機(jī)110內(nèi)的各個(gè)元件之間傳送信息的基本例程的基本 輸入/輸出系統(tǒng)133(BIOS)通常存儲(chǔ)在ROM 131中。RAM 132通常包含處理單 元120立即可訪問(wèn)和/或目前正在操作的數(shù)據(jù)和/或程序模塊。作為示例,而并 非限制,圖1說(shuō)明了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136及程序 數(shù)據(jù)137。計(jì)算機(jī)110還可以包括其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存 儲(chǔ)介質(zhì)。僅作為示例,圖l示出了可從不可移動(dòng)、非易失性磁性介質(zhì)中讀取或 向其寫入的硬盤驅(qū)動(dòng)器140;可從可移動(dòng)、非易失性磁盤152中讀取或向其寫 入的磁盤驅(qū)動(dòng)器151;以及可從諸如CDROM或其它光學(xué)介質(zhì)等可移動(dòng)、非易 失性光盤156中讀取或向其寫入的光盤驅(qū)動(dòng)器155??梢栽谠撌纠圆僮鳝h(huán)境 中使用的其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不 限于磁帶盒、閃存卡、數(shù)字通用盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。 硬盤驅(qū)動(dòng)器141 一般通過(guò)諸如接口 140等不可移動(dòng)存儲(chǔ)器接口連接到系統(tǒng)總線 121,而磁盤驅(qū)動(dòng)器151和光盤驅(qū)動(dòng)器155 —般則通過(guò)諸如接口 150等可移動(dòng) 存儲(chǔ)器接口連接到系統(tǒng)總線121。上述和在圖1中示出的驅(qū)動(dòng)器及與其相關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī) 110提供了對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。在圖 1中,例如,將硬盤驅(qū)動(dòng)器141示為存儲(chǔ)操作系統(tǒng)144、應(yīng)用程序145、其它程 序模塊146和程序數(shù)據(jù)147。應(yīng)注意,這些組件既可以與操作系統(tǒng)134、應(yīng)用 程序135、其它程序模塊136和程序數(shù)據(jù)137相同,也可以不相同。操作系統(tǒng) 144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147在此被賦予了不同的標(biāo) 號(hào),以至少說(shuō)明它們是不同的副本。用戶可以通過(guò)如鍵盤162和定點(diǎn)設(shè)備161 (一般指鼠標(biāo)、跟蹤球或觸摸墊)等輸入設(shè)備將命令和信息輸入到計(jì)算機(jī)20 中。其它輸入設(shè)備(未示出)可以包括話筒、操縱桿、游戲手柄、圓盤式衛(wèi) 星天線、掃描儀等。這些和其它輸入設(shè)備通常通過(guò)與系統(tǒng)總線耦合的用戶輸入 接口 160連接到處理單元120,但是也可以用如并行端口、游戲端口或通用串 行總線(USB)等其它接口和總線結(jié)構(gòu)來(lái)連接。監(jiān)視器191或其它類型的顯示 設(shè)備通過(guò)諸如視頻接口 190等接口也連接到系統(tǒng)總線121。除監(jiān)視器以外,計(jì)算機(jī)還可以包括可通過(guò)外圍設(shè)備輸出接口 190連接的其它外圍輸出設(shè)備,如揚(yáng)聲器197和打印機(jī)196等。計(jì)算機(jī)110可以使用到諸如遠(yuǎn)程計(jì)算機(jī)180等一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的邏 輯連接在網(wǎng)絡(luò)環(huán)境下操作。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由 器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它常見(jiàn)的網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括前面相對(duì)于計(jì) 算機(jī)110所描述的許多或所有元件,雖然在圖1中僅示出了存儲(chǔ)器設(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)中都是常見(jiàn)的。當(dāng)用于LAN網(wǎng)絡(luò)環(huán)境時(shí),計(jì)算機(jī)IIO通過(guò)網(wǎng)絡(luò)接口或適配器170連接到 LAN 171。而當(dāng)用于WAN網(wǎng)絡(luò)環(huán)境時(shí),計(jì)算機(jī)IIO通常包括調(diào)制解調(diào)器172, 或用于通過(guò)諸如因特網(wǎng)等WAN 173來(lái)建立通信的其它裝置。調(diào)制解調(diào)器172 可以是內(nèi)置的或外置的,它可以通過(guò)用戶輸入接口 160或其它合適的機(jī)制連接 到系統(tǒng)總線121。在網(wǎng)絡(luò)環(huán)境中,相對(duì)于計(jì)算機(jī)110所描述的程序模塊或其部 分可以存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例,而并限制,圖l示出遠(yuǎn)程應(yīng) 用程序185駐留在存儲(chǔ)器存儲(chǔ)設(shè)備181上。應(yīng)意識(shí)到,所示的網(wǎng)絡(luò)連接是示例 性的,并且可以使用在各計(jì)算機(jī)之間建立通信鏈路的其它手段。圖2可以說(shuō)明一種在存在具有數(shù)據(jù)存儲(chǔ)速度分層結(jié)構(gòu)的多種數(shù)據(jù)存儲(chǔ)設(shè) 備的情況下有效地存儲(chǔ)數(shù)據(jù)的方法。存儲(chǔ)器設(shè)備可以具有許多取舍選擇??焖?的存儲(chǔ)器可能是昂貴的。慢速的存儲(chǔ)器則可能是廉價(jià)的。在一理想的計(jì)算機(jī)中, 所有存儲(chǔ)器都應(yīng)盡可能地快,但是這種計(jì)算機(jī)對(duì)于大多數(shù)使用來(lái)說(shuō)都太過(guò)昂 貴。此外,還存在所有需求僅是低價(jià)的、長(zhǎng)期的存儲(chǔ)的一些應(yīng)用。結(jié)果是,計(jì) 算機(jī)可具有各種存儲(chǔ)器,如從接近處理器的超快存儲(chǔ)器到諸如基于磁盤的存儲(chǔ) 器等慢速存儲(chǔ)器。另外,計(jì)算機(jī)具有添加諸如便攜式硬盤驅(qū)動(dòng)器140和閃存設(shè) 備152等更多且不同類型的存儲(chǔ)器的能力。這些設(shè)備中的每一個(gè)都具有可以被 最大化的執(zhí)行和磨損特性。 -例如,可將閃存152制造成兩種常見(jiàn)的形式或非(NOR)閃存和與非 (NAND)閃存。也可以構(gòu)想其他形式的閃存152。兩種類型的閃存152和 EEPROM都會(huì)因用于存儲(chǔ)數(shù)據(jù)的電荷存儲(chǔ)機(jī)制周圍的絕緣氧化層上的磨損而在多次擦除操作后損壞。典型的或非閃存152單元可以在10,000-100,000次擦 /寫操作后損壞,而典型的與非閃存152則可以在l,OOO,OOO次后損壞。閃存152 的一個(gè)局限是雖然它可以用隨機(jī)訪問(wèn)的方式每次被讀取或編程一個(gè)字節(jié)或一 個(gè)字,但卻每次必須擦除一個(gè)"塊"。從最新近被擦除的塊開(kāi)始,可對(duì)該塊中 的任何字節(jié)編程。然而, 一旦某個(gè)字節(jié)已被編程,在擦除整個(gè)塊以前,不能再 次改變?cè)撟止?jié)。當(dāng)與硬盤驅(qū)動(dòng)器140相比時(shí),閃存152的局限在于它具有有 限的擦一寫周期數(shù),因此須予以關(guān)注以便最小化擦/寫周期數(shù)。在其它設(shè)備中,寫周期的緩慢性可以是確定優(yōu)選寫入大小時(shí)的一個(gè)因素。 例如,如果需要大量的開(kāi)銷時(shí)間來(lái)設(shè)置寫入功能,則能夠通過(guò)最小化寫入次數(shù) 來(lái)節(jié)約時(shí)間,而該最小化是通過(guò)最大化要寫入的數(shù)據(jù)的大小來(lái)實(shí)現(xiàn)的。類似地, 在某些存儲(chǔ)設(shè)備中,重復(fù)的小容量的保存可能導(dǎo)致數(shù)據(jù)分散在存儲(chǔ)設(shè)備各處, 這與在數(shù)據(jù)被連續(xù)存儲(chǔ)(可能是更少次數(shù)、更大容量的保存的結(jié)果)時(shí)相比, 可以導(dǎo)致更長(zhǎng)的讀取時(shí)間。此外,寫周期可以加重處理器的負(fù)擔(dān),因此在高處 理器使用期間,以更少的頻率間隔、用更大的存儲(chǔ)大小來(lái)進(jìn)行頻率較小的保存 可能是有意義的。再次參考硬盤驅(qū)動(dòng)器140,如果不存在高速存儲(chǔ)器,則對(duì)該硬盤140的每 次寫入都可能會(huì)涉及在系統(tǒng)等待硬盤140以訪問(wèn)該硬盤140上的正確位置并寫 入數(shù)據(jù)的同時(shí)的執(zhí)行碰撞(performance hit)。在大多數(shù)驅(qū)動(dòng)器上這至少要用 IO毫秒,這在計(jì)算機(jī)領(lǐng)域中這是很長(zhǎng)的時(shí)間,并且的確可能在系統(tǒng)要等待硬盤 時(shí)使執(zhí)行變慢。當(dāng)諸如RAM 132等高速存儲(chǔ)器可用時(shí)(也稱為寫入高速緩存被啟用), 在系統(tǒng)向硬盤140發(fā)送寫入時(shí),邏輯電路會(huì)將該寫入記錄在其更快速的高速緩 存或者高速存儲(chǔ)器132中,并隨后立即向操作系統(tǒng)發(fā)回實(shí)際上表明"已完成" 的確認(rèn)。隨后,系統(tǒng)的其余部分可以在不必等待致動(dòng)器定位和硬盤旋轉(zhuǎn)等的情 況下繼續(xù)工作,這可改善執(zhí)行。然而,驅(qū)動(dòng)器140在其還沒(méi)有真正完成一一即 數(shù)據(jù)根本不在硬盤上,而只在高速緩存132中時(shí),發(fā)回表明"已完成"的確認(rèn)。 硬盤140的邏輯電路開(kāi)始向該硬盤寫入數(shù)據(jù),但當(dāng)然這將花費(fèi)一些時(shí)間。典型的PC 100的使用涉及加載程序、以及頻繁地加載和保存數(shù)據(jù)。所有 這些操作都可能需要訪問(wèn)硬盤140。因此,硬盤140的執(zhí)行成為問(wèn)題。令CPU120的速度快得足以在其等待時(shí)能夠處理兩百萬(wàn)條指令不會(huì)使用戶獲益太多,除非CPU在那時(shí)有事情需要處理。其中硬盤140的執(zhí)行問(wèn)題是最重要的應(yīng)用程序是諸如多媒體編輯應(yīng)用程序等要向硬盤進(jìn)行許多讀寫、而不是進(jìn)行許多處 理的應(yīng)用程序,特別是那些要處理大量音頻和視頻文件的應(yīng)用程序。訪問(wèn)時(shí)間是表示反映定位在硬盤140中的隨機(jī)執(zhí)行的所有其它規(guī)范的合 成。最常見(jiàn)的定義是訪問(wèn)時(shí)間=命令開(kāi)銷時(shí)間+尋道時(shí)間+穩(wěn)定時(shí)間+等待時(shí)間命令開(kāi)銷可以指從將命令交付給硬盤140直到一些事情實(shí)際開(kāi)始發(fā)生以 履行該命令所經(jīng)過(guò)的時(shí)間。硬盤140的尋道時(shí)間可以測(cè)量讀/寫頭在盤片表面上的各個(gè)磁道間移動(dòng)所需要的時(shí)間量。在各磁道間進(jìn)行切換要求磁頭致動(dòng)器能物 理地移動(dòng)磁頭臂,由于這是機(jī)械過(guò)程,因此要花費(fèi)一定量的時(shí)間。在兩個(gè)磁道 間進(jìn)行切換所需要的時(shí)間量取決于各個(gè)磁道間的距離。然而,由于在磁道切換時(shí)涉及一定量的"開(kāi)銷",因此其關(guān)系不是線性的。從磁道1切換到磁道3所 要花費(fèi)的時(shí)間可能不是從磁道1切換到磁道2所要花費(fèi)的時(shí)間的兩倍。通常用毫秒(一般縮寫為"msec"或"ms")來(lái)表示尋道時(shí)間。當(dāng)然, 在現(xiàn)代PC110中,毫秒是巨大的時(shí)間量,因?yàn)橹T如RAM132等高速系統(tǒng)存儲(chǔ) 器可以具有例如用納秒(小一百萬(wàn)倍)來(lái)測(cè)量的速度。1 GHz處理器(理論上)可以在一毫秒內(nèi)執(zhí)行超過(guò)一百萬(wàn)條的指令。尋道時(shí)間中甚至很小的減少都可以 導(dǎo)致整個(gè)系統(tǒng)性能的改善,因?yàn)橄到y(tǒng)的其余部分經(jīng)常要等待硬盤140。硬盤140的盤片以高速旋轉(zhuǎn),并且該旋轉(zhuǎn)速度可能與在隨機(jī)訪問(wèn)硬盤140 時(shí)將讀/寫頭移動(dòng)到正確柱面的過(guò)程并不同步。因此,在磁頭到達(dá)正確柱面時(shí), 所需要的實(shí)際扇區(qū)可能會(huì)在任何地方。當(dāng)致動(dòng)器組件己完成其對(duì)正確磁道的尋 道后,驅(qū)動(dòng)器140可以等待正確扇區(qū)轉(zhuǎn)回到讀/寫頭所在的位置。這個(gè)時(shí)間稱為 等待時(shí)間。等待時(shí)間直接與驅(qū)動(dòng)器的旋轉(zhuǎn)速度有關(guān),因此只受驅(qū)動(dòng)器旋轉(zhuǎn)特性 的影響。因此,可以減少訪問(wèn)時(shí)間的任何動(dòng)作都可以對(duì)系統(tǒng)性能具有較大的影 響??捎肦AM 132的數(shù)量也可能會(huì)對(duì)能夠存儲(chǔ)到高速存儲(chǔ)器中的數(shù)據(jù)的大小 有影響。例如,如果系統(tǒng)只具有8k的高速RAM132,則與系統(tǒng)具有512kb的 高速RAM 132時(shí)相必須發(fā)生更頻繁的寫操作,這僅僅是因?yàn)樵揜AM 132不能存儲(chǔ)許多數(shù)據(jù)。在框200處,該方法可以接收要存儲(chǔ)到低速數(shù)據(jù)存儲(chǔ)設(shè)備上的數(shù)據(jù)。例如,一文字處理文件可被指定為存儲(chǔ)到硬盤驅(qū)動(dòng)器140上。在框205處,可以將數(shù) 據(jù)存儲(chǔ)到高速存儲(chǔ)器中。例如,該文字處理文件可以被存儲(chǔ)在RAM 132中的 高速緩存中。在框210處,該方法可以收集附加數(shù)據(jù)到高速存儲(chǔ)器132中,直 到存儲(chǔ)了目的地為諸如硬盤驅(qū)動(dòng)器140等特定低速數(shù)據(jù)設(shè)備的優(yōu)選數(shù)量的數(shù) 據(jù)。在框215處,該方法可以將數(shù)據(jù)存儲(chǔ)到高速存儲(chǔ)器132中,直到數(shù)據(jù)的大 小是適合于特定存儲(chǔ)設(shè)備的寫入大小。如前所述,該優(yōu)選數(shù)量的數(shù)據(jù)可以隨設(shè) 備變化。例如,優(yōu)選寫入大小可以是2的冪,諸如為128kb、 256kb和512kb 中的一個(gè)。在閃存示例中,該大小可以是閃存塊的大小,以便可通過(guò)僅在整個(gè) 閃存塊都準(zhǔn)備好存儲(chǔ)時(shí)再寫入到該閃存設(shè)備(而非多次擦/寫操作)來(lái)使擦/寫 擦操作最少。在框220處, 一旦將適合于該特定設(shè)備的寫入大小的數(shù)據(jù)存儲(chǔ)到 高速存儲(chǔ)器設(shè)備132中,可將數(shù)據(jù)寫入到低速設(shè)備140中。在框225處,該方法可以將數(shù)據(jù)保持在高速存儲(chǔ)132中,直到確定該數(shù)據(jù) 在高速存儲(chǔ)器132中不再需要。例如,如果系統(tǒng)具有剩余RAM 132,則將那些 已經(jīng)寫入到低速存儲(chǔ)器140中的數(shù)據(jù)還保持在高速存儲(chǔ)器132中可能不會(huì)再加 重系統(tǒng)的負(fù)擔(dān)。由于數(shù)據(jù)已經(jīng)被存儲(chǔ)到了低速存儲(chǔ)器140中,因此該數(shù)據(jù)在高 速存儲(chǔ)器132中不再需要,但是不管怎樣,為了方便用戶,該數(shù)據(jù)也可以保留 在那里。在框230處是權(quán)利要求1中的方法,其中,將要寫入到低速存儲(chǔ)設(shè)備140 的數(shù)據(jù)備份到附加低速存儲(chǔ)設(shè)備140上。在一些情況中,用戶或程序可以指示 將數(shù)據(jù)存儲(chǔ)到低速存儲(chǔ)設(shè)備140上。該方法可以在寫入低速存儲(chǔ)器前等待最優(yōu) 數(shù)量的數(shù)據(jù)。同時(shí),可以將諸如閃存單元152等低速存儲(chǔ)器從系統(tǒng)中移除。在 這些情況下,在附加低速存儲(chǔ)設(shè)備中具有數(shù)據(jù)的備份可能是有好處的??梢詫?數(shù)據(jù)從高速存儲(chǔ)器132移動(dòng)到速度比高速存儲(chǔ)器132低、但比該低速存儲(chǔ)器高 的附加存儲(chǔ)器中。在框235處,當(dāng)?shù)退俅鎯?chǔ)設(shè)備152在數(shù)據(jù)從高速存儲(chǔ)器132 寫入到低速存儲(chǔ)器設(shè)備152之前已經(jīng)從系統(tǒng)中移除時(shí),該方法可以警告用戶還 沒(méi)來(lái)得及將數(shù)據(jù)寫入到諸如閃存152等低速存儲(chǔ)器設(shè)備中。在框240處,可以 在移出低速存儲(chǔ)器設(shè)備之前向用戶呈現(xiàn)將數(shù)據(jù)從高速存儲(chǔ)器132寫入低速存儲(chǔ)器152的選項(xiàng)。在框245處,該方法可以等待,直到寫入到低速存儲(chǔ)設(shè)備的低系統(tǒng)活動(dòng)時(shí)段。作為示例,用戶或方法可以指示將一文字處理文件存儲(chǔ)到閃存152上。本 方法可以等待有足夠的數(shù)據(jù)匹配用于閃存152的最優(yōu)寫入大小,因此如果該文 字處理文件的大小小于該最優(yōu)寫入大小的大小,則可能不會(huì)立即將該數(shù)據(jù)寫入 到閃存152中。如果閃存152被移除,則可以警告用戶還沒(méi)來(lái)得及將數(shù)據(jù)寫入 到閃存152中。另外,數(shù)據(jù)可能已經(jīng)被備份到一 "中間"速度存儲(chǔ)設(shè)備中,且 該備份可以用于防止數(shù)據(jù)在高速存儲(chǔ)設(shè)備132中時(shí)被蓋寫。在框250處,該方法可以組織高速存儲(chǔ)器132中的數(shù)據(jù),使得對(duì)低速存儲(chǔ) 器140的寫入更有效。這種組織可以像將高速存儲(chǔ)器132中的數(shù)據(jù)重新排列為 鄰接的那樣簡(jiǎn)單,以使向低速存儲(chǔ)器140的傳送可以更有效地進(jìn)行。在框255處,該方法可以分析高速存儲(chǔ)器132中的數(shù)據(jù),以便確定在數(shù)據(jù) 被寫入到低速存儲(chǔ)器140之前該數(shù)據(jù)中的任一個(gè)是否被一較新的數(shù)據(jù)替換。在 框260處,該方法可以分析高速存儲(chǔ)器132中的數(shù)據(jù),以便確定要寫入到低速 存儲(chǔ)器140中的數(shù)據(jù)中的任意一個(gè)是否是重復(fù)數(shù)據(jù),其中較舊的重復(fù)數(shù)據(jù)不被 寫入低速存儲(chǔ)器140設(shè)備中。在框265處,該方法可以在寫操作在高速存儲(chǔ)器 132中的塊被提交給低速設(shè)備140之前影響這些塊時(shí)使這些塊無(wú)效。在框270處,該方法可以將要寫入低速存儲(chǔ)器140中的數(shù)據(jù)的索引保持在 高速存儲(chǔ)器132中,并且如果要寫入低速設(shè)備140的數(shù)據(jù)駐留在高速存儲(chǔ)器132 中,則該方法可以服務(wù)對(duì)來(lái)自高速存儲(chǔ)器132的數(shù)據(jù)的讀請(qǐng)求,而無(wú)需關(guān)心該 數(shù)據(jù)是否已被寫入低速存儲(chǔ)器140中。在框275處,該方法可以測(cè)試低速存儲(chǔ)器140,以確定對(duì)于該低速存儲(chǔ)器 140的優(yōu)選寫入大小。例如,該方法可以詢問(wèn)閃存152什么是理想的擦/寫大小。 在框280處,該方法還可以使用來(lái)自低速存儲(chǔ)設(shè)備140的指示來(lái)計(jì)算優(yōu)選寫入 大小。例如,在如閃存152的示例中,該方法可以確定塊是以1024字節(jié)的增 量來(lái)擦除的,因此該方法可以確定保存操作應(yīng)當(dāng)以1024字節(jié)的增量發(fā)生。優(yōu) 選寫入大小可能與低速存儲(chǔ)器152的優(yōu)選擦除大小有關(guān)。雖然前文闡明了多種不同實(shí)施例的詳細(xì)描述,但應(yīng)了解,本專利的范圍應(yīng) 由在本專利結(jié)尾處闡明的權(quán)利要求書中的文字來(lái)限定。該詳細(xì)描述將被解釋為只是示例性的,而并沒(méi)有描述每一個(gè)可能的實(shí)施例,因?yàn)槊枋雒恳粋€(gè)可能的實(shí) 施例即便不是不可能,也是不切實(shí)際的。無(wú)論使用現(xiàn)有技術(shù),還是本專利申請(qǐng) 曰以后開(kāi)發(fā)的技術(shù),都能實(shí)現(xiàn)許多可選實(shí)施例,且這仍將落入權(quán)利要求書的范 圍。因lt匕,對(duì)在此描述和說(shuō)明的技術(shù)和結(jié)構(gòu)可以作出許多實(shí)施例和變化,而不 會(huì)偏離該權(quán)利要求書的精神與范圍。因此,應(yīng)了解,在此描述的方法和裝置只 是說(shuō)明性的,而并不會(huì)限制權(quán)利要求書的范圍。
權(quán)利要求
1.一種在存在數(shù)據(jù)存儲(chǔ)速度分層結(jié)構(gòu)的多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備的情況下有效地存儲(chǔ)數(shù)據(jù)的方法,包括接收要存儲(chǔ)在低速數(shù)據(jù)存儲(chǔ)設(shè)備上的數(shù)據(jù);將所述數(shù)據(jù)存儲(chǔ)到高速存儲(chǔ)器中;收集附加數(shù)據(jù)到所述高速存儲(chǔ)器中,直到存儲(chǔ)了目的地為一特定低速數(shù)據(jù)設(shè)備的優(yōu)選數(shù)量的數(shù)據(jù);將所述數(shù)據(jù)存儲(chǔ)在高速存儲(chǔ)器中,直到所述數(shù)據(jù)的大小是適合于一特定存儲(chǔ)設(shè)備的寫入大小;以及一旦在所述高速存儲(chǔ)器設(shè)備中存儲(chǔ)了適合于所述特定設(shè)備的寫入大小的數(shù)據(jù),將所述數(shù)據(jù)寫入所述低速設(shè)備中。
2. 如權(quán)利要求1所述的方法,其特征在于,還包括將所述數(shù)據(jù)保留在所 述高速存儲(chǔ)中,直到確定在高速存儲(chǔ)中不再需要所述數(shù)據(jù)。
3. 如權(quán)利要求1所述的方法,其特征在于,要被寫入到所述低速存儲(chǔ)設(shè) 備的所述數(shù)據(jù)被備份在一附加低速存儲(chǔ)設(shè)備上。
4. 如權(quán)利要求1所述的方法,其特征在于,所述低速設(shè)備是閃存設(shè)備。
5. 如權(quán)利要求4所述的方法,其特征在于,所述寫入大小是所述閃存的 擦除塊大小。
6. 如權(quán)利要求1所述的方法,其特征在于,還包括等待,直到寫入所述 低速存儲(chǔ)設(shè)備的低系統(tǒng)活動(dòng)時(shí)段。
7. 如權(quán)利要求1所述的方法,其特征在于,還包括當(dāng)一低速存儲(chǔ)器設(shè)備 在所述數(shù)據(jù)從所述高速存儲(chǔ)器設(shè)備寫入所述低速存儲(chǔ)器設(shè)備之前己從所述系 統(tǒng)中移除時(shí),警告用戶還沒(méi)來(lái)得及將所述數(shù)據(jù)寫入所述低速存儲(chǔ)器設(shè)備中。
8. 如權(quán)利要求7所述的方法,其特征在于,在將所述低速存儲(chǔ)器設(shè)備移 除之前,向所述用戶呈現(xiàn)將所述數(shù)據(jù)從所述高速存儲(chǔ)器寫入所述低速存儲(chǔ)器的 選項(xiàng)。
9. 如權(quán)利要求1所述的方法,其特征在于,還包括組織所述高速存儲(chǔ)器 中的所述數(shù)據(jù),以使對(duì)所述低速存儲(chǔ)器的寫入更有效。
10. 如權(quán)利要求l所述的方法,其特征在于,還包括分析所述高速存儲(chǔ)器 中的所述數(shù)據(jù),以便確定在所述數(shù)據(jù)被寫入所述低速存儲(chǔ)器之前所述數(shù)據(jù)中的 任意一個(gè)是否已被較新的數(shù)據(jù)替換。
11. 如權(quán)利要求l所述的方法,其特征在于,還包括分析所述高速存儲(chǔ)器 中的所述數(shù)據(jù),以便確定要寫入所述低速存儲(chǔ)器的所述數(shù)據(jù)中的任意一個(gè)是否 是重復(fù)數(shù)據(jù),其中較舊的重復(fù)數(shù)據(jù)不被寫入所述低速存儲(chǔ)器設(shè)備中。
12. 如權(quán)利要求l所述的方法,其特征在于,還包括當(dāng)寫操作在所述高速 存儲(chǔ)器中的塊被提交給所述低速存儲(chǔ)器之前影響這些塊時(shí),令所述塊無(wú)效。
13. 如權(quán)利要求l所述的方法,其特征在于,還包括將所述數(shù)據(jù)從所述高 速存儲(chǔ)器移至一速度比所述高速存儲(chǔ)器低、但比所述低速存儲(chǔ)器高的附加存儲(chǔ) 器。
14. 如權(quán)利要求1所述的方法,其特征在于,還包括將要寫入低速存儲(chǔ)器 的數(shù)據(jù)的索引保持在高速存儲(chǔ)器中,并且如果要寫入所述低速設(shè)備中的所述數(shù) 據(jù)駐留在所述高速存儲(chǔ)器中,則服務(wù)對(duì)來(lái)自所述高速存儲(chǔ)器的數(shù)據(jù)的讀請(qǐng)求, 而無(wú)需關(guān)心所述數(shù)據(jù)是否己被寫入低速存儲(chǔ)器中。
15. 如權(quán)利要求1所述的方法,其特征在于,還包括測(cè)試所述低速存儲(chǔ)器,以便確定對(duì)于所述低速存儲(chǔ)器的優(yōu)選寫入大小。
16. 如權(quán)利要求l所述的方法,其特征在于,還包括將所述優(yōu)選寫入大小計(jì)算為與所述低速存儲(chǔ)器的優(yōu)選擦除大小相關(guān)。
17. —種具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述指令用于在存在 具有數(shù)據(jù)存儲(chǔ)速度分層結(jié)構(gòu)的多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備的情況下有效地存儲(chǔ)數(shù)據(jù),所述計(jì)算機(jī)指令包括接收要存儲(chǔ)到一低速數(shù)據(jù)存儲(chǔ)設(shè)備上的數(shù)據(jù); 將所述數(shù)據(jù)存儲(chǔ)在高速存儲(chǔ)器中;收集附加數(shù)據(jù)到所述高速存儲(chǔ)器中,直到存儲(chǔ)了目的地為一特定低速數(shù)據(jù).設(shè)備的優(yōu)選數(shù)量的數(shù)據(jù);將所述數(shù)據(jù)存儲(chǔ)在高速存儲(chǔ)器中,直到所述數(shù)據(jù)的大小是適合于一特定存 儲(chǔ)設(shè)備的寫入大?。环治鏊龈咚俅鎯?chǔ)器中的所述數(shù)據(jù),以便確定在所述數(shù)據(jù)被寫入到所述低 速存儲(chǔ)器之前所述數(shù)據(jù)中的任意一個(gè)是否己被較新的數(shù)據(jù)替換;以及一旦在所述高速存儲(chǔ)器設(shè)備中存儲(chǔ)了適合于所述特定設(shè)備的寫入大小的 數(shù)據(jù),將所述數(shù)據(jù)寫入所述低速設(shè)備中。
18. 如權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述計(jì)算機(jī)指令還包括測(cè)試所述低速存儲(chǔ)器,以便確定對(duì)于所述低速存儲(chǔ)器的優(yōu)選擦除和優(yōu) 選寫入大小。
19. 一種計(jì)算機(jī)系統(tǒng),包括處理器、輸入輸出設(shè)備和存儲(chǔ)器,所述處理器執(zhí)行計(jì)算機(jī)可執(zhí)行指令,且所述存儲(chǔ)器存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令,其中所述計(jì)算 機(jī)可執(zhí)行指令用于在存在具有數(shù)據(jù)存儲(chǔ)速度分層結(jié)構(gòu)的多個(gè)數(shù)據(jù)存儲(chǔ)的情況下有效地存儲(chǔ)數(shù)據(jù),所述計(jì)算機(jī)指令包括接收要存儲(chǔ)到一低速數(shù)據(jù)存儲(chǔ)設(shè)備上的數(shù)據(jù); 將所述數(shù)據(jù)存儲(chǔ)在一高速存儲(chǔ)器中;測(cè)試所述低速存儲(chǔ)器,以便確定對(duì)于所述低速存儲(chǔ)器的優(yōu)選擦除和優(yōu)選寫 入大小;收集附加數(shù)據(jù)到所述高速存儲(chǔ)器中,直到存儲(chǔ)了目的地為一特定低速數(shù)據(jù) 設(shè)備的優(yōu)選數(shù)量的數(shù)據(jù);將所述數(shù)據(jù)存儲(chǔ)在所述高速存儲(chǔ)器中,直到所述數(shù)據(jù)的大小是適合于一特 定存儲(chǔ)設(shè)備的寫入大?。环治鏊龈咚俅鎯?chǔ)器中的所述數(shù)據(jù),以便在所述數(shù)據(jù)被寫入到所述低速存 儲(chǔ)器前所述數(shù)據(jù)中的任意一個(gè)是否己被較新的數(shù)據(jù)替換;以及一旦在所述高速存儲(chǔ)器設(shè)備中存儲(chǔ)了適合于所述特定設(shè)備的寫入大小的 數(shù)據(jù),將所述數(shù)據(jù)寫入所述低速設(shè)備中。
20. 如權(quán)利要求19所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述計(jì)算機(jī)可執(zhí)行指令還包括將要寫入低速存儲(chǔ)器的數(shù)據(jù)的索引保持在高速存儲(chǔ)器中,并且如果 要寫入所述低速設(shè)備中的所述數(shù)據(jù)駐留在所述高速存儲(chǔ)器中,則服務(wù)對(duì)來(lái)自所述高速存儲(chǔ)器的數(shù)據(jù)的讀請(qǐng)求,而無(wú)需關(guān)心所述數(shù)據(jù)是否已被寫入低速存儲(chǔ)器 中。
全文摘要
確定并使用要從高速存儲(chǔ)器傳送到低速存儲(chǔ)器的理想長(zhǎng)度的存儲(chǔ)器可以導(dǎo)致對(duì)低速存儲(chǔ)器的更快保存以及低速存儲(chǔ)器的更長(zhǎng)的壽命。
文檔編號(hào)G06F12/08GK101331463SQ200680047384
公開(kāi)日2008年12月24日 申請(qǐng)日期2006年12月18日 優(yōu)先權(quán)日2005年12月16日
發(fā)明者M·R·福特恩, R·L·萊伊諾爾 申請(qǐng)人:微軟公司