專利名稱:對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的制作方法
對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持
背景
歷史上,個(gè)人計(jì)算機(jī)(PC)使用硬盤驅(qū)動(dòng)器作為用戶數(shù)據(jù)和系統(tǒng)數(shù)據(jù)的持久存儲(chǔ)的手段。當(dāng)前的硬盤驅(qū)動(dòng)器包括從中讀取數(shù)據(jù)和對(duì)其寫入數(shù)據(jù)的旋轉(zhuǎn)磁性介質(zhì)。這些硬盤驅(qū)動(dòng)器包含最終會(huì)磨損的機(jī)械、移動(dòng)部分;這導(dǎo)致故障和可能的數(shù)據(jù)丟失。因?yàn)檫@些硬盤驅(qū)動(dòng)器的盤片必須幾乎持續(xù)旋轉(zhuǎn),它們還消耗更多功率。
以后,各種非易失性存儲(chǔ)器存儲(chǔ)設(shè)備將開始替代或結(jié)合硬盤驅(qū)動(dòng)器被用于
持久存儲(chǔ)。此類非易失性存儲(chǔ)器存儲(chǔ)設(shè)備的一些示例包括閃存、通用串行總線(USB)閃存、"安全數(shù)字"("SD")存儲(chǔ)器、"多媒體卡"(MMC)存儲(chǔ)器、"極限數(shù)字"("XD")存儲(chǔ)器、"壓縮閃速"存儲(chǔ)器、"記憶棒"存儲(chǔ)器、以及"智能介質(zhì)"存儲(chǔ)器等等。這些非易失性存儲(chǔ)器存儲(chǔ)設(shè)備可被統(tǒng)稱為固態(tài)存儲(chǔ)或固態(tài)存儲(chǔ)設(shè)備。此類固態(tài)存儲(chǔ)當(dāng)前能夠替代硬盤驅(qū)動(dòng)器來用于持久存儲(chǔ)。即便如此,在PC中將固態(tài)存儲(chǔ)用于持久存儲(chǔ)還是受固態(tài)存儲(chǔ)比硬盤驅(qū)動(dòng)器每千兆字節(jié)造價(jià)更高的每千兆字節(jié)所限。
然而近來,像數(shù)碼相機(jī)、數(shù)字音頻播放器、以及蜂窩電話等移動(dòng)設(shè)備的增長(zhǎng)創(chuàng)造了對(duì)固態(tài)存儲(chǔ)的大量需求而使得價(jià)格下跌。固態(tài)存儲(chǔ)的價(jià)格現(xiàn)在低到足以將固態(tài)存儲(chǔ)認(rèn)為是對(duì)在PC中將硬盤驅(qū)動(dòng)器用于持久存儲(chǔ)的經(jīng)濟(jì)的替換。
在PC中將固態(tài)存儲(chǔ)用于持久存儲(chǔ)提供了超過硬盤驅(qū)動(dòng)器的若干優(yōu)點(diǎn)。例如,固態(tài)存儲(chǔ)沒有移動(dòng)部分、更小、更輕、消耗更少功率、并且更不易受到機(jī)械壓力(例如抖動(dòng)或沖擊影響)的損壞。
硬盤驅(qū)動(dòng)器將數(shù)據(jù)存儲(chǔ)在可由硬盤驅(qū)動(dòng)器頭磁訪問的特定盤片上的扇區(qū)和簇中。這要求存儲(chǔ)器訪問到硬盤驅(qū)動(dòng)器的旋轉(zhuǎn)介質(zhì)的盤片上的特定位置的映射。然而,固態(tài)存儲(chǔ)提供對(duì)每個(gè)可尋址存儲(chǔ)器單元格的直接訪問,并因此不要求到旋轉(zhuǎn)磁介質(zhì)上的特定位置的此類映射。
固態(tài)存儲(chǔ)作為持久存儲(chǔ)的廣泛使用處于其初級(jí)階段。因此,固態(tài)存儲(chǔ)技術(shù)之間存在可觀的競(jìng)爭(zhēng)。例如,現(xiàn)在消費(fèi)者可以從許多固態(tài)存儲(chǔ)設(shè)備(其中一些在上文中提到)中選擇,這些固態(tài)存儲(chǔ)設(shè)備必須以某種方式由操作系統(tǒng)支持。
目前,操作系統(tǒng)如同固態(tài)存儲(chǔ)是另一種形式的旋轉(zhuǎn)介質(zhì)那樣來將固態(tài)存儲(chǔ)展示給應(yīng)用程序。此"旋轉(zhuǎn)介質(zhì)模型"要求此類固態(tài)存儲(chǔ)的驅(qū)動(dòng)程序如同它具有和硬盤驅(qū)動(dòng)器相同類型的機(jī)械部分(扇區(qū)、盤片、柱面、磁頭等)和機(jī)械限制那樣來訪問該固態(tài)存儲(chǔ)。即使在訪問固態(tài)存儲(chǔ)中的數(shù)據(jù)時(shí)不需要旋轉(zhuǎn)介質(zhì)等待時(shí)間,但仍在數(shù)據(jù)訪問請(qǐng)求中內(nèi)置此類等待時(shí)間來補(bǔ)償移動(dòng)部分的緩慢,例如磁頭尋道時(shí)間。此數(shù)據(jù)訪問范例浪費(fèi)時(shí)間并使得操作系統(tǒng)和應(yīng)用程序的固態(tài)存儲(chǔ)數(shù)據(jù)訪問更為復(fù)雜。另外,將固態(tài)存儲(chǔ)如同其是旋轉(zhuǎn)介質(zhì)那樣來對(duì)待要求為幾乎每種競(jìng)爭(zhēng)的固態(tài)存儲(chǔ)技術(shù)設(shè)計(jì)專用高級(jí)驅(qū)動(dòng)程序(如端口驅(qū)動(dòng)程序)。這對(duì)固態(tài)存儲(chǔ)解決方案的制造商施加了很重的負(fù)擔(dān)。
因此,解決與在PC中將固態(tài)存儲(chǔ)用作持久存儲(chǔ)相關(guān)聯(lián)的上述不利和缺點(diǎn)中的一些的技術(shù)將是有利的。
概述
提供本概述是為了以簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概念。該概述不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護(hù)的主題的范圍。
在為固態(tài)存儲(chǔ)提供統(tǒng)一支持的方法中,提供一種固態(tài)存儲(chǔ)類驅(qū)動(dòng)程序來允許對(duì)多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的統(tǒng)一操作系統(tǒng)訪問。通過固態(tài)存儲(chǔ)端口驅(qū)動(dòng)程序來抽象多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的通用功能。利用固態(tài)存儲(chǔ)總線驅(qū)動(dòng)程序來展示固態(tài)存儲(chǔ)設(shè)備的接口特征,其中固態(tài)存儲(chǔ)設(shè)備選自多個(gè)相異固態(tài)存儲(chǔ)設(shè)備,使得在使操作系統(tǒng)能夠支持按統(tǒng)一的方式訪問多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的同時(shí)提供該接口特征。
以上述方式為固態(tài)存儲(chǔ)提供統(tǒng)一支持在與操作系統(tǒng)相關(guān)聯(lián)的存儲(chǔ)棧中創(chuàng)建獨(dú)特固態(tài)存儲(chǔ)抽象層。這些獨(dú)特固態(tài)存儲(chǔ)抽象層允許對(duì)多種相異固態(tài)存儲(chǔ)技術(shù)的數(shù)據(jù)訪問對(duì)操作系統(tǒng)和其上運(yùn)行的應(yīng)用程序而言看上去相同。提供獨(dú)特固態(tài)存儲(chǔ)抽象層消除了對(duì)用于訪問固態(tài)存儲(chǔ)的"旋轉(zhuǎn)介質(zhì)模型"的操作系統(tǒng)依賴性。這通過釋放操作系統(tǒng)以及其上運(yùn)行的應(yīng)用程序,以便在沒有在如同固態(tài)存儲(chǔ)是另一種形式的旋轉(zhuǎn)介質(zhì)那樣訪問固態(tài)存儲(chǔ)時(shí)所強(qiáng)加的等待時(shí)間和低效率的情況下訪問固態(tài)存儲(chǔ),而簡(jiǎn)化和流線化了訪問固態(tài)存儲(chǔ)的現(xiàn)有方法。附圖描述
合并在本說明書中并形成其一部分的附圖示出了用于對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)的各個(gè)實(shí)施例,并且與本說明書一起用于解釋以下討論的原理
圖1是根據(jù)本發(fā)明的用于對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)的各實(shí)施例來使用的示例計(jì)算機(jī)系統(tǒng)的示圖。
圖2示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的與操作系統(tǒng)相關(guān)聯(lián)的示例存儲(chǔ)棧。
圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的在用于向固態(tài)存儲(chǔ)提供統(tǒng)一支持的方法中執(zhí)行的操作的示例流程圖。
圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的在訪問固態(tài)存儲(chǔ)設(shè)備的方法中執(zhí)行的
操作的示例流程圖。
除非具體注明,否則本說明書中所引用的附圖應(yīng)被理解為不是按比例繪制的。
詳細(xì)描述
現(xiàn)將詳細(xì)參考本發(fā)明的用于對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)的各實(shí)施例,其示例在附圖中示出。盡管將結(jié)合各種實(shí)施例來描述用于對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù),但可以理解,并不旨在將本發(fā)明的用于對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)限于這些實(shí)施例。相反,本發(fā)明的用于對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)的各實(shí)施例旨在涵蓋可被包括在所附權(quán)利要求書所定義的各實(shí)施例的精神和范圍內(nèi)的替換、修改和等效技術(shù)方案。此外,在以下詳細(xì)描述中,闡明了眾多具體細(xì)節(jié)以提供對(duì)本發(fā)明的用于對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)的各實(shí)施例的全面理解。然而,用于對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的本發(fā)明的各實(shí)施例可以在無需這些具體細(xì)節(jié)的情況下實(shí)施。在其它情況下,未詳細(xì)描述公知的方法、過程、組件和電路以免不必要地使本發(fā)明各實(shí)施例的各方面顯得晦澀難懂。
如從以下討論中清楚的,除非具體地另外指明,否則可以理解,貫穿本詳細(xì)描述,利用諸如"提供"、"抽象"、"利用"、"展示"、"定義"、"方便"、"接收"、"支持"等術(shù)語(yǔ)的討論涉及計(jì)算機(jī)系統(tǒng)(如圖1的計(jì)算機(jī)系統(tǒng)100)或類似的電子計(jì)算設(shè)備的動(dòng)作和處理。計(jì)算機(jī)系統(tǒng)或類似的電子計(jì)算設(shè)備操縱計(jì)算機(jī)系統(tǒng)的寄存器和存儲(chǔ)器內(nèi)被表示為物理(電子)量的數(shù)據(jù)并將其變換成計(jì)算機(jī)系統(tǒng)存儲(chǔ)器或寄存器或其它此類信息存儲(chǔ)、傳輸或顯示設(shè)備內(nèi)類似地被表示為物理量的其它數(shù)據(jù)。本發(fā)明的用于對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)的某些實(shí)施例也適用于其它計(jì)算機(jī)系統(tǒng),如光學(xué)和虛擬計(jì)算機(jī)。
討論概覽
討論將以對(duì)本發(fā)明技術(shù)的各實(shí)施例可以與其一起或在其上操作的示例計(jì)算機(jī)系統(tǒng)環(huán)境的描述開始。討論將繼續(xù)至與操作系統(tǒng)相關(guān)聯(lián)的示例存儲(chǔ)棧的描述。該示例存儲(chǔ)棧包括在存儲(chǔ)棧中創(chuàng)建對(duì)固態(tài)存儲(chǔ)獨(dú)特的抽象層的若干模塊。這些獨(dú)特固態(tài)存儲(chǔ)抽象層允許對(duì)多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的數(shù)據(jù)訪問對(duì)操作系統(tǒng)和其上運(yùn)行的應(yīng)用程序而言看上去相同。以這種方式,提供了對(duì)多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的統(tǒng)一支持。將提供存儲(chǔ)棧的概括描述,以及創(chuàng)建獨(dú)特固態(tài)存儲(chǔ)抽象層的模塊的更深入的討論。隨后將結(jié)合提供對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的示例方法的描述,還結(jié)合訪問固態(tài)存儲(chǔ)設(shè)備的示例方法,來更詳細(xì)地描述存儲(chǔ)棧和獨(dú)特固態(tài)存儲(chǔ)抽象層的操作。
示例計(jì)算機(jī)系統(tǒng)環(huán)境
現(xiàn)在參考圖1,用于固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)的某些實(shí)施例的全部或部分包括駐留在例如計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)可使用介質(zhì)中的計(jì)算機(jī)可讀和計(jì)算機(jī)可執(zhí)行指令。即,圖l示出可用于實(shí)現(xiàn)以下討論的本發(fā)明的用于固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)的各實(shí)施例的一類計(jì)算機(jī)的一個(gè)示例。圖1示出根據(jù)本發(fā)明的用于固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)的各實(shí)施例來使用的示例計(jì)算機(jī)系統(tǒng)100??梢岳斫?,圖1的系統(tǒng)100僅是示例,并且本發(fā)明的用于固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)的各實(shí)施例可以在多個(gè)不同的計(jì)算機(jī)系統(tǒng)上或內(nèi)部操作,包括通用網(wǎng)絡(luò)化計(jì)算機(jī)系統(tǒng)、嵌入式計(jì)算機(jī)系統(tǒng)、路由器、交換機(jī)、服務(wù)器設(shè)備、客戶機(jī)設(shè)備、各種中間設(shè)備/節(jié)點(diǎn)、獨(dú)立計(jì)算機(jī)系統(tǒng)、媒體中心、手持式計(jì)算機(jī)系統(tǒng)等。
如圖1所示,計(jì)算機(jī)系統(tǒng)IOO很好地適于具有諸如例如,軟盤、緊致盤等耦合到其上的外圍計(jì)算機(jī)可讀介質(zhì)102。此外,如圖1所示,計(jì)算機(jī)系統(tǒng)100很好地適于具有耦合到其上的固態(tài)存儲(chǔ)150,該固態(tài)存儲(chǔ)150可以是固定(不 可移動(dòng))或可移動(dòng)的。閃存、通用串行總線(USB)閃存、"安全數(shù)字"("SD") 存儲(chǔ)器、"多媒體卡"(MMC)存儲(chǔ)器、"極限數(shù)字"("XD")存儲(chǔ)器、"壓 縮閃速"存儲(chǔ)器、"記憶棒"存儲(chǔ)器、以及"智能介質(zhì)"存儲(chǔ)器提供了此固態(tài) 存儲(chǔ)150的一些具體示例。
圖1的系統(tǒng)100包括用于傳遞信息的地址/數(shù)據(jù)總線104,以及耦合到總線 104來處理信息和指令的處理器106A。如圖1所示,系統(tǒng)IOO還很好地適用于 其中存在多個(gè)處理器106A、 106B和106C的多處理器環(huán)境。相反,系統(tǒng)100 也適用于具有諸如,例如處理器106A等單個(gè)處理器。處理器106A、 106B和 106C可以是各種類型的微處理器中的任一種。系統(tǒng)100還包括諸如計(jì)算機(jī)可 使用易失性存儲(chǔ)器108等耦合到總線104來為處理器106A、 106B和106C儲(chǔ) 存信息和指令的數(shù)據(jù)存儲(chǔ)功能部件,例如隨機(jī)存取存儲(chǔ)器(RAM)。系統(tǒng)100 還包括耦合到總線104來為處理器106A、 106B和106C儲(chǔ)存靜態(tài)信息和指令 的計(jì)算機(jī)可使用非易失性存儲(chǔ)器110,例如只讀存儲(chǔ)器(ROM)。系統(tǒng)100中 還存在耦合到總線104來儲(chǔ)存信息和指令的數(shù)據(jù)存儲(chǔ)單元112 (例如,磁或光 盤以及盤驅(qū)動(dòng)器或例如閃存等固態(tài)存儲(chǔ))。系統(tǒng)IOO還包括耦合到總線104來 向處理器106A或處理器106A、106B和106C傳遞信息和命令選擇的可任選字 母數(shù)字輸入設(shè)備114,其包括字母數(shù)字和功能鍵。系統(tǒng)IOO還包括耦合到總線 104來向處理器106A或處理器106A、 106B和106C傳遞用戶輸入信息和命令 選擇的可任選光標(biāo)控制設(shè)備116。本實(shí)施例的系統(tǒng)IOO還包括耦合到總線104 來顯示信息的可任選顯示設(shè)備118。
仍參考圖l,圖1的可任選顯示設(shè)備U8可以是液晶設(shè)備、陰極射線管、 等離子顯示設(shè)備、或適用于創(chuàng)建用戶可識(shí)別的圖形圖像和字母數(shù)字字符的其它 顯示設(shè)備??扇芜x光標(biāo)控制設(shè)備116允許計(jì)算機(jī)用戶動(dòng)態(tài)地用信號(hào)表示可見符 號(hào)(光標(biāo))在顯示設(shè)備118的顯示屏上的移動(dòng),并指示對(duì)顯示在顯示設(shè)備118 上的可選擇項(xiàng)的用戶選擇。光標(biāo)控制設(shè)備116的許多實(shí)現(xiàn)在本領(lǐng)域中是已知的, 包括跟蹤球、鼠標(biāo)、觸摸墊、操縱桿、或字母數(shù)字輸入設(shè)備114上能夠用信號(hào) 表示給定方向或位移方式的移動(dòng)的特殊鍵。另選地,可以理解,光標(biāo)可以經(jīng)由 來自字母數(shù)字輸入設(shè)備114的使用特殊鍵和鍵序列命令的輸入來定向和/或激活。系統(tǒng)100還很好地適用于具有由諸如,例如語(yǔ)音命令等其它手段定向的光
標(biāo)。系統(tǒng)100還包括用于將系統(tǒng)100與外部實(shí)體相耦合的I/O設(shè)備120。例如, 在一個(gè)實(shí)施例中,I/O設(shè)備120是用于啟用系統(tǒng)100和諸如但不限于因特網(wǎng)等 外部網(wǎng)絡(luò)之間的有線或無線通信的調(diào)制解調(diào)器。
仍參考圖l,描繪了系統(tǒng)100的各種其它組件。具體地,當(dāng)存在時(shí),操作 系統(tǒng)122、應(yīng)用程序124、模塊126和數(shù)據(jù)128中的全部或部分被示為通常駐 留在例如隨機(jī)存取存儲(chǔ)器(RAM)等計(jì)算機(jī)可使用易失性存儲(chǔ)器108和數(shù)據(jù)存 儲(chǔ)單元112中的一個(gè)或兩者的某種組合中。然而,可以理解,在某些實(shí)施例中, 操作系統(tǒng)122可被存儲(chǔ)在其它位置,如在網(wǎng)絡(luò)上或在固態(tài)存儲(chǔ)150上;并且另 外,操作系統(tǒng)122、應(yīng)用程序124、模塊126、和/或數(shù)據(jù)128可以經(jīng)由例如到 因特網(wǎng)的耦合來從遠(yuǎn)程位置訪問。
此外,操作系統(tǒng)122可以包括或關(guān)聯(lián)于內(nèi)核207 (圖2),該內(nèi)核被用于 抽象大容量存儲(chǔ)設(shè)備的特征。
在某些實(shí)施例中,將本發(fā)明的用于對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)的全部或 部分作為操作系統(tǒng)122、應(yīng)用程序124、模塊126、或其某一組合存儲(chǔ)在RAM 108 中的存儲(chǔ)器位置、存儲(chǔ)單元112中的介質(zhì)、和/或外圍計(jì)算機(jī)可讀介質(zhì)102的介 質(zhì)中。同樣,在某些實(shí)施例中,本發(fā)明的技術(shù)中的全部或部分可被存儲(chǔ)在與計(jì) 算機(jī)100分開的位置并通過例如到因特網(wǎng)的耦合來訪問。
存儲(chǔ)棧
現(xiàn)在參考圖2,圖2示出了根據(jù)本發(fā)明的技術(shù)的一個(gè)實(shí)施例的存儲(chǔ)棧200。 存儲(chǔ)棧200與例如操作系統(tǒng)122等個(gè)人計(jì)算機(jī)操作系統(tǒng)相關(guān)聯(lián)。應(yīng)該理解,存 儲(chǔ)棧200可以與各種各樣的各人計(jì)算機(jī)操作系統(tǒng)相關(guān)聯(lián)。作為示例而非局限, "Microsoft Windows Vista"是存儲(chǔ)棧200可以與之相關(guān)聯(lián)的操作系統(tǒng)122的
--個(gè)示例。
一般而言,存儲(chǔ)棧200在諸如大容量存儲(chǔ)設(shè)備(112、 150)等存儲(chǔ)設(shè)備與 在操作系統(tǒng)上運(yùn)行的應(yīng)用程序之間提供了一系列抽象層。如圖所示,存儲(chǔ)棧200 與例如在棧200頂部所示的應(yīng)用程序124等應(yīng)用程序。應(yīng)用程序124由用戶205 用于在諸如,例如計(jì)算機(jī)系統(tǒng)100等計(jì)算機(jī)系統(tǒng)上或使用該計(jì)算機(jī)系統(tǒng)來執(zhí)行某些功能。應(yīng)該理解,多個(gè)應(yīng)用程序可以按此處由應(yīng)用程序124所示的方式與 棧200相關(guān)聯(lián)。應(yīng)用程序124以下的每一層提供大容量存儲(chǔ)設(shè)備(112、 150) 的抽象,其中較接近內(nèi)核207的頂部的抽象是概括的,并且在棧200中每一連 續(xù)的較低層處變得更具體。以這種方式,每一抽象層用作到其下一層的接口。 同樣,以此方式,應(yīng)用程序124只需要例如關(guān)于文件系統(tǒng)的信息等概括信息, 以便訪問大容量存儲(chǔ)設(shè)備(112、 150)上的數(shù)據(jù)。
在圖2所示的示例實(shí)施例中,存儲(chǔ)棧200由可以由用戶205使用或訪問的 應(yīng)用程序124,以及與操作系統(tǒng)122關(guān)聯(lián)或是其一部分的內(nèi)核207組成。內(nèi)核 207由多個(gè)抽象層組成。這些抽象層包括文件系統(tǒng)220、巻管理器230、分區(qū)管 理器240、類驅(qū)動(dòng)程序250、端口驅(qū)動(dòng)程序260、總線驅(qū)動(dòng)程序270、以及硬件 抽象層280。
文件系統(tǒng)層
文件系統(tǒng)220抽象層的操作在本領(lǐng)域中是公知的。文件系統(tǒng)220通信耦合 至應(yīng)用程序124和操作系統(tǒng)122。 一般而言,對(duì)于文件系統(tǒng)220,將要訪問的 數(shù)據(jù)作為可以在文件夾中排列的一個(gè)或多個(gè)文件展示給應(yīng)用程序124。此處所 述的訪問數(shù)據(jù)涵蓋讀取、寫入、以及搜索數(shù)據(jù)的動(dòng)作。如圖所示,文件系統(tǒng)220 抽象層由例如FAT (文件分配表)221、 NTFS (新技術(shù)文件系統(tǒng))222、 UDFS (通用盤文件系統(tǒng))223、以及CDFS (緊致盤文件系統(tǒng))等一個(gè)或多個(gè)模塊, 以及用于其它存儲(chǔ)介質(zhì)和/或存儲(chǔ)技術(shù)的其它可能的模塊組成。例如FAT 221、
NTFS 222、 UDFS 223、以及CDFS 224等文件系統(tǒng)在本領(lǐng)域中是已知的。這些 文件系統(tǒng)模塊(例如,221、 222、 223、 224等)中的每一個(gè)展示了用于不同類 型的存儲(chǔ)介質(zhì)的文件系統(tǒng)和/或展示了經(jīng)由特定存儲(chǔ)技術(shù)的文件系統(tǒng)。在一個(gè)實(shí) 例中,文件系統(tǒng)220還可以包括用于展示用于固態(tài)存儲(chǔ)設(shè)備的文件系統(tǒng)的模塊。 在其它實(shí)例中,在用于固態(tài)存儲(chǔ)設(shè)備的文件系統(tǒng)與另一個(gè)存儲(chǔ)設(shè)備(例如盤) 的文件系統(tǒng)相似或相同的情況下,可以使用由計(jì)算機(jī)系統(tǒng)為此類型存儲(chǔ)設(shè)備 (例如,UDFS221)采用的文件系統(tǒng)模塊來展示固態(tài)存儲(chǔ)設(shè)備的文件系統(tǒng)。
巻管理器層巻管理器230抽象層的操作在本領(lǐng)域中也是公知的。巻管理器230通信耦 合到文件系統(tǒng)220。 一般而言,對(duì)于巻管理器230抽象層,將要訪問的數(shù)據(jù)或 位置作為在一個(gè)或多個(gè)諸如,例如盤驅(qū)動(dòng)器或固態(tài)存儲(chǔ)設(shè)備等大容量存儲(chǔ)設(shè)備 上分配的空間形式的"巻"展示給文件系統(tǒng)220。此類巻可以是實(shí)際物理巻或 可以是虛擬巻,并可以位于各種位置。此外,此類巻可以由一個(gè)或多個(gè)分區(qū)(由 分區(qū)管理器240所展示)組成。如圖所示,巻管理器230抽象層由諸如"FtDisk" (容錯(cuò)盤)231、 "LDM"(邏輯盤管理器)、以及VolMan (邏輯巻管理器) 233等一個(gè)或多個(gè)模塊組成。這些模塊中(例如,231、 232、 233等)的每一 個(gè)向文件系統(tǒng)220展示了一個(gè)或多個(gè)可用于數(shù)據(jù)訪問的巻。在例如計(jì)算機(jī)系統(tǒng) 100等典型的個(gè)人計(jì)算機(jī)系統(tǒng)中,這些巻可以由例如"A:" 、 "B:" 、 "C:" 等可以自動(dòng)指定或由用戶指定的標(biāo)志符來表示。這些巻通常俗稱為"驅(qū)動(dòng)器", 例如"C驅(qū)動(dòng)器",即使這些巻可能不駐留在旋轉(zhuǎn)介質(zhì)上。
分區(qū)管理器層
分區(qū)管理器240抽象層的操作在本領(lǐng)域中也是公知的。分區(qū)管理器240 通信耦合到巻管理器230。 一般而言,對(duì)于分區(qū)管理器240,將要訪問的數(shù)據(jù) 或位置作為在一個(gè)或多個(gè)諸如例如盤驅(qū)動(dòng)器或固態(tài)存儲(chǔ)設(shè)備等大容量存儲(chǔ)設(shè) 備上分配的空間形式的分區(qū)展示給巻管理器230。通常,每個(gè)巻由一個(gè)或多個(gè) 分區(qū)組成。在大多數(shù)情況下,存在巻和分區(qū)之間的一對(duì)一映射。然而,在巻由 多個(gè)分區(qū)組成時(shí),分區(qū)可以駐留在單個(gè)大容量存儲(chǔ)設(shè)備(112、 150)上,或在 多個(gè)不同的大容量存儲(chǔ)設(shè)備(112、 150)上。
類驅(qū)動(dòng)程序?qū)?br>
一般而言,類驅(qū)動(dòng)程序250抽象層提供關(guān)于大容量存儲(chǔ)設(shè)備(112、 150) 的抽象固有信息。類驅(qū)動(dòng)程序250通信耦合到分區(qū)管理器240。類驅(qū)動(dòng)程序250 抽象層的若干模塊(盤25K磁帶252、以及CDROM 253)的操作的概念在 本領(lǐng)域中是公知的。在現(xiàn)有技術(shù)中,例如,盤251模塊提供對(duì)由旋轉(zhuǎn)介質(zhì)組成 的盤驅(qū)動(dòng)器獨(dú)特的固有信息的抽象。這允許操作系統(tǒng)122以統(tǒng)一的方式來透明 地訪問各種各樣相異類型的旋轉(zhuǎn)介質(zhì)。此外,現(xiàn)有技術(shù)通常依賴于盤251模塊來訪問固態(tài)存儲(chǔ),即使固態(tài)存儲(chǔ)與旋轉(zhuǎn)介質(zhì)在物理上不相似。
本發(fā)明的用于對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的本技術(shù)將另一個(gè)模塊,即"閃速盤"
254,添加到類驅(qū)動(dòng)程序250的模塊。"閃速盤"254是固態(tài)存儲(chǔ)類驅(qū)動(dòng)程序, 它允許在沒有"旋轉(zhuǎn)介質(zhì)模塊"對(duì)通過盤251模塊路由的固態(tài)存儲(chǔ)數(shù)據(jù)訪問所 施加的阻礙的情況下對(duì)固態(tài)存儲(chǔ)的數(shù)據(jù)訪問。"閃速盤"254模塊抽象關(guān)于固 態(tài)存儲(chǔ)設(shè)備的固有信息。在一個(gè)實(shí)施例中,"閃速盤"254模塊抽象關(guān)于多個(gè) 相異固態(tài)存儲(chǔ)設(shè)備的固有信息,例如閃存、通用串行總線(USB)閃存、"安 全數(shù)字"("SD")存儲(chǔ)器、"多媒體卡"(MMC)存儲(chǔ)器、"極限數(shù)字"
("XD")存儲(chǔ)器、"壓縮閃速"存儲(chǔ)器、"記憶棒"存儲(chǔ)器、以及"智能介質(zhì)" 存儲(chǔ)器。
此類抽象固有信息的一個(gè)示例是關(guān)于特定固態(tài)存儲(chǔ)設(shè)備是否可以從例如 計(jì)算機(jī)系統(tǒng)100等個(gè)人計(jì)算機(jī)系統(tǒng)移除的抽象固有信息。此類抽象固有信息的 另一個(gè)示例是關(guān)于特定固態(tài)存儲(chǔ)設(shè)備是否是例如計(jì)算機(jī)系統(tǒng)IOO等個(gè)人計(jì)算機(jī) 系統(tǒng)的固定的、不可移動(dòng)的部分的抽象固有信息。此類抽象固有信息的又一個(gè) 示例是關(guān)于特定固態(tài)存儲(chǔ)設(shè)備是否可用于引導(dǎo)例如計(jì)算機(jī)系統(tǒng)100等個(gè)人計(jì)算 機(jī)系統(tǒng)的抽象固有信息。"閃速盤"254向分區(qū)管理器240提供或"展示"關(guān) 于一個(gè)或多個(gè)固態(tài)存儲(chǔ)設(shè)備的此抽象固有信息。以此方式,"閃速盤"254支 持通過例如操作系統(tǒng)122等操作系統(tǒng)對(duì)多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的統(tǒng)一訪問。統(tǒng) 一訪問允許多個(gè)相異固態(tài)存儲(chǔ)設(shè)備對(duì)分區(qū)管理器240而言"看起來"相同,從 而簡(jiǎn)化對(duì)相異設(shè)備的訪問。
端口驅(qū)動(dòng)程序
一般而言,端口驅(qū)動(dòng)程序260抽象層提供包含涉及多個(gè)相異大容量存儲(chǔ)設(shè) 備(112、 150)的一個(gè)或多個(gè)共同特征的抽象信息的一個(gè)或多個(gè)模塊。端口驅(qū) 動(dòng)程序260通信耦合到類驅(qū)動(dòng)程序250。端口驅(qū)動(dòng)程序260抽象層的若干模塊 ("SCSI端口" 261、"存儲(chǔ)端口" 262、以及"USB存儲(chǔ)"263)的操作的概 念在本領(lǐng)域中是公知的。在現(xiàn)有技術(shù)中,例如,"SCSI端口" 261抽象多個(gè)相 異SCSI (小型計(jì)算機(jī)系統(tǒng)接口)設(shè)備的共同特征。通過抽象這些共同特征, SCSI設(shè)備的制造商無需為SCSI設(shè)備編寫完整大小的端口驅(qū)動(dòng)程序,而僅需編寫展示SCSI設(shè)備的獨(dú)特特征的較小的小型端口驅(qū)動(dòng)程序,其中該獨(dú)特特征與
在"SCSI端口" 261模塊中抽象的共同特征不同或是其補(bǔ)充。
本發(fā)明的用于對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)將固態(tài)存儲(chǔ)端口驅(qū)動(dòng)程序
("閃速存儲(chǔ)"264)添加到端口驅(qū)動(dòng)程序260抽象層的模塊。"閃速存儲(chǔ)"264 模塊提供涉及多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的一個(gè)或多個(gè)共同特征的抽象信息。例 如,盡管固態(tài)存儲(chǔ)設(shè)備可以在機(jī)械上相異或具有相異的引腳分配,但它們共享 一個(gè)或多個(gè)共同特征諸如,例如用于描述存儲(chǔ)區(qū)域大小的信息、用于呈現(xiàn)要 存儲(chǔ)的數(shù)據(jù)分組的機(jī)制、或用于取回?cái)?shù)據(jù)分組的存儲(chǔ)部分的機(jī)制。"閃速存儲(chǔ)" 264模塊抽象多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的共同特征,諸如閃存、通用串行總線 (USB)閃存、"安全數(shù)字"("SD")存儲(chǔ)器、"多媒體卡"(MMC)存儲(chǔ) 器、"極限數(shù)字"("XD")存儲(chǔ)器、"壓縮閃速"存儲(chǔ)器、"記憶棒"存儲(chǔ)器、 以及"智能介質(zhì)"存儲(chǔ)器。
在一個(gè)實(shí)例中,某些此類共同特征抽象成一通用通信協(xié)議中,以便從操作 系統(tǒng)統(tǒng)一地訪問多個(gè)固態(tài)存儲(chǔ)設(shè)備。例如,此類通信協(xié)議可以包括用于對(duì)所發(fā) 送的數(shù)據(jù)打包以便存儲(chǔ)在固態(tài)存儲(chǔ)設(shè)備上的標(biāo)準(zhǔn)格式。通過抽象這些共同特 征,固態(tài)存儲(chǔ)設(shè)備的制造商無需為固態(tài)存儲(chǔ)設(shè)備編寫完整大小的端口驅(qū)動(dòng)程 序,而僅需編寫展示固態(tài)存儲(chǔ)設(shè)備的獨(dú)特特征的較小的小型端口驅(qū)動(dòng)程序,其 中該獨(dú)特特征與在"閃速存儲(chǔ)"264模塊中抽象的共同特征不同或是其補(bǔ)充。
小型端口驅(qū)動(dòng)程序
小型端口驅(qū)動(dòng)程序是包含關(guān)于固態(tài)存儲(chǔ)設(shè)備的一個(gè)或多個(gè)獨(dú)特特征的信 息的可任選端口驅(qū)動(dòng)程序,其中這些獨(dú)特特征與在固態(tài)存儲(chǔ)端口驅(qū)動(dòng)程序中抽 象的共同特征不同或是其補(bǔ)充。本發(fā)明的技術(shù)允許可任選地添加例如小型端口 程序驅(qū)動(dòng)程序265等小型端口驅(qū)動(dòng)程序,其將特定固態(tài)存儲(chǔ)設(shè)備的一個(gè)或多個(gè) 獨(dú)特特征展示給例如"閃速存儲(chǔ)"264模塊等固態(tài)存儲(chǔ)端口驅(qū)動(dòng)程序。例如, 在一個(gè)實(shí)施例中,USB閃速驅(qū)動(dòng)器的OEM (原始設(shè)備制造商)編寫并提供與 "閃速存儲(chǔ)"264接口來將USB閃速驅(qū)動(dòng)器的獨(dú)特、非共同抽象特征展示給"閃 速存儲(chǔ)"264模塊的小型端口驅(qū)動(dòng)程序。
總線驅(qū)動(dòng)程序一般而言,總線驅(qū)動(dòng)程序270抽象層提供一個(gè)或多個(gè)模塊,其中的每一個(gè)
模塊展示可以耦合到例如各人計(jì)算機(jī)100的總線104等總線的組件的一個(gè)或多 個(gè)接口特征??偩€驅(qū)動(dòng)程序270通信耦合到端口驅(qū)動(dòng)程序260并將組件的一個(gè) 或多個(gè)接口特征展示給端口驅(qū)動(dòng)程序260??偩€驅(qū)動(dòng)程序270抽象層的若干模 塊(PCI (外圍部件接口) 271、 USB (通用串行總線)272、 "1394"(電子 和電氣工程師協(xié)會(huì)1394接口) 273、以及IDE (集成開發(fā)環(huán)境)274)的操 作的概念在本領(lǐng)域中是公知的。在現(xiàn)有技術(shù)中,例如,USB 271模塊提供關(guān) 于經(jīng)由例如USB 2.0標(biāo)準(zhǔn)總線等通用串行總線耦合和交換數(shù)據(jù)的具體信息。
本發(fā)明的用于對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)將一個(gè)或多個(gè)固態(tài)總線驅(qū)動(dòng) 程序模塊(例如,"SD" 275和"直接"276)添加到總線驅(qū)動(dòng)程序270的模 塊。例如,"SD" 275模塊提供與耦合到"安全數(shù)字"固態(tài)存儲(chǔ)設(shè)備并訪問其 數(shù)據(jù)相關(guān)聯(lián)的接口信息。同樣,總線驅(qū)動(dòng)程序270抽象層中可以包括各種此類 固態(tài)存儲(chǔ)總線驅(qū)動(dòng)程序來提供其它固態(tài)存儲(chǔ)設(shè)備的接口信息,例如閃存、"安 全數(shù)字"存儲(chǔ)器、通用串行總線(USB)閃存、"多媒體卡"(MMC)存儲(chǔ)器、 "極限數(shù)字"("XD")存儲(chǔ)器、"壓縮閃速"存儲(chǔ)器、"記憶棒"存儲(chǔ)器、以 及"智能介質(zhì)"存儲(chǔ)器。在另一示例中,"直接"276模塊提供甩于耦合到例 如閃存等固態(tài)存儲(chǔ)設(shè)備并訪問其數(shù)據(jù)的接口信息,該固態(tài)存儲(chǔ)設(shè)備可以焊接到 或以其它方式直接耦合到例如計(jì)算機(jī)系統(tǒng)100等計(jì)算機(jī)的主板。此類固態(tài)存儲(chǔ) 總線驅(qū)動(dòng)器展示關(guān)于固態(tài)存儲(chǔ)設(shè)備的具體配置信息。例如,所展示的接口信息 可以是正確地將特定固態(tài)存儲(chǔ)設(shè)備與例如計(jì)算機(jī)系統(tǒng)100的總線104等總線接 口所需的特定協(xié)議或特定通信信息。
硬件應(yīng)用層
"HAL"(硬件應(yīng)用層)280用于將實(shí)際硬件與操作系統(tǒng)分離。"HAL" 280與總線驅(qū)動(dòng)程序270通信耦合。"HAL" 280包含產(chǎn)生硬件和任何使用它 的軟件(例如應(yīng)用程序124或操作系統(tǒng)122)之間的接口的代碼。"HAL" 280 對(duì)內(nèi)核207的其它層抽象或隱藏任何剩余的未展示或抽象的硬件相關(guān)細(xì)節(jié)。例 如"HAL" 280等硬件應(yīng)用層的操作和構(gòu)造在本領(lǐng)域中是公知的。示例操作方法以下討論詳細(xì)闡明本發(fā)明的用于對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)的各實(shí)施例的某些示例操作方法的操作。參考圖3和圖4,流程圖300和400各自示出 本發(fā)明的用于對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)的各實(shí)施例所使用的示例步驟。流 程圖300和400包括在各實(shí)施例中由處理器在計(jì)算機(jī)可讀和計(jì)算機(jī)可執(zhí)行指令 的控制下實(shí)現(xiàn)的各種過程。計(jì)算機(jī)可讀和計(jì)算機(jī)可執(zhí)行指令駐留在例如數(shù)據(jù)存 儲(chǔ)功能部件中,這些數(shù)據(jù)存儲(chǔ)功能部件諸如圖1的計(jì)算機(jī)可使用易失性存儲(chǔ)器 108、計(jì)算機(jī)可使用/可讀非易失性存儲(chǔ)器110、外圍計(jì)算機(jī)可讀介質(zhì)102和/或 數(shù)據(jù)存儲(chǔ)單元112??神v留在計(jì)算機(jī)可使用/可讀介質(zhì)上的計(jì)算機(jī)可讀和計(jì)算機(jī) 可執(zhí)行指令用于控制例如圖1的處理器106A和/或處理器106A、106B和106C 或結(jié)合其來操作。雖然在流程圖300和400中公開了各具體步驟,但這些步驟 是示例。即,各實(shí)施例很好地適于執(zhí)行各種其它步驟或流程圖300和400中所 描述的步驟的變型??梢岳斫?,流程圖300和400中的步驟可以用與所呈現(xiàn)的 不同的次序來執(zhí)行,并且并非要執(zhí)行流程圖300和400中的全部步驟。提供對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持圖3示出提供對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的方法的示例實(shí)施例的流程圖300。 參考圖l、圖2的各元素,在以下描述流程圖300的各元素。在流程圖300的步驟310處,在一個(gè)實(shí)施例中,該方法提供固態(tài)存儲(chǔ)類驅(qū) 動(dòng)程序來允許對(duì)多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的統(tǒng)一操作系統(tǒng)訪問。在一個(gè)實(shí)施例 中,這包括提供例如"閃速盤"254等固態(tài)類驅(qū)動(dòng)程序。如上所述,此類固態(tài) 類驅(qū)動(dòng)程序抽象關(guān)于多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的固有信息。此類多個(gè)相異固態(tài)存 儲(chǔ)設(shè)備可以包括諸如以下的固態(tài)存儲(chǔ)閃存、通用串行總線(USB)閃存、"安 全數(shù)字"("SD")存儲(chǔ)器、"多媒體卡"(MMC)存儲(chǔ)器、"極限數(shù)字" ("XD")存儲(chǔ)器、"壓縮閃速"存儲(chǔ)器、"記憶棒"存儲(chǔ)器、以及"智能介質(zhì)" 存儲(chǔ)器等等。在一個(gè)實(shí)施例中,固態(tài)存儲(chǔ)類驅(qū)動(dòng)程序向存儲(chǔ)棧的一部分,例如存儲(chǔ)棧 200的分區(qū)管理器240提供抽象固有信息。提供抽象固有信息隱藏了關(guān)于多個(gè) 相異存儲(chǔ)設(shè)備的細(xì)節(jié),使得在由計(jì)算機(jī)的操作系統(tǒng)査看時(shí),相異固態(tài)存儲(chǔ)設(shè)備中的每一個(gè)以相同樣子出現(xiàn)。因此,計(jì)算機(jī)的操作系統(tǒng)能夠如同相異設(shè)備本質(zhì) 上是相同的那樣以統(tǒng)一的方式訪問多個(gè)相異固態(tài)存儲(chǔ)設(shè)備中的每一個(gè)。
在一個(gè)實(shí)例中,提供抽象固有信息包括展示特定固態(tài)存儲(chǔ)設(shè)備是否固定耦 合到計(jì)算機(jī)系統(tǒng)。固定固態(tài)存儲(chǔ)設(shè)備的一個(gè)示例是焊接到計(jì)算機(jī)系統(tǒng)的主板上 的閃存。在一個(gè)實(shí)例中,提供抽象固有信息包括展示特定固態(tài)存儲(chǔ)設(shè)備是否可 以從計(jì)算機(jī)系統(tǒng)移除??梢苿?dòng)固態(tài)存儲(chǔ)設(shè)備的一個(gè)示例是基于卡的固態(tài)存儲(chǔ)設(shè)
備,例如"安全數(shù)字"存儲(chǔ)卡。在一個(gè)實(shí)例中,提供抽象固有信息包括展示特 定固態(tài)存儲(chǔ)設(shè)備是否可由計(jì)算機(jī)系統(tǒng)引導(dǎo)。
在流程圖300的步驟320處,在一個(gè)實(shí)施例中,該方法經(jīng)由固態(tài)存儲(chǔ)端口
驅(qū)動(dòng)程序抽象多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的通用功能。在一個(gè)實(shí)施例中,例如,將
一個(gè)或多個(gè)通用功能抽象到例如圖2的"閃速存儲(chǔ)"264等固態(tài)存儲(chǔ)端口驅(qū)動(dòng) 程序中。在另一個(gè)實(shí)施例中,可以擴(kuò)展和/或增強(qiáng)例如"USB存儲(chǔ)"263等現(xiàn)有 端口驅(qū)動(dòng)程序以在特定總線(例如,通用串行總線)上提供固態(tài)存儲(chǔ)能力。這 會(huì)提供較好的與當(dāng)前可用的固態(tài)存儲(chǔ)設(shè)備的后向兼容。如上所述,可以使用例 如"閃速存儲(chǔ)"264或擴(kuò)展/增強(qiáng)的"USB存儲(chǔ)"263等固態(tài)存儲(chǔ)端口驅(qū)動(dòng)程序 來定義例如通信協(xié)議等協(xié)議,以便訪問多個(gè)相異固態(tài)存儲(chǔ)設(shè)備中的一個(gè)或多 個(gè)。抽象對(duì)多個(gè)相異固態(tài)存儲(chǔ)設(shè)備通用的特征和功能消除了提供包含固態(tài)存儲(chǔ) 設(shè)備的每個(gè)特征的單獨(dú)的"完整大小"固態(tài)存儲(chǔ)端口驅(qū)動(dòng)程序的必要。于是這 也消除了為多個(gè)相異固態(tài)存儲(chǔ)設(shè)備中的每一個(gè)具有此類"完整大小"端口驅(qū)動(dòng) 程序的必要。
在一個(gè)實(shí)施例中,步驟320還包括經(jīng)由固態(tài)存儲(chǔ)小型端口驅(qū)動(dòng)程序使固態(tài) 存儲(chǔ)設(shè)備的獨(dú)特特征能夠被展示。在此實(shí)施例中,固態(tài)存儲(chǔ)設(shè)備選自上述多個(gè) 相異固態(tài)存儲(chǔ)設(shè)備。以此方式,在例如存儲(chǔ)桟200等存儲(chǔ)棧使例如操作系統(tǒng)122 等操作系統(tǒng)能夠支持以統(tǒng)一的方式訪問多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的同時(shí),固態(tài)存 儲(chǔ)的獨(dú)特特征由該存儲(chǔ)棧提供。例如,這可以包括允許OEM提供例如小型總 線驅(qū)動(dòng)程序265等小型總線驅(qū)動(dòng)程序,該驅(qū)動(dòng)程序與例如"閃速存儲(chǔ)"264等 固態(tài)存儲(chǔ)端口驅(qū)動(dòng)程序接口來展示特定固態(tài)存儲(chǔ)設(shè)備的一個(gè)或多個(gè)獨(dú)特、非通 用的抽象特征。
在流程圖300的步驟330處,在一個(gè)實(shí)施例中,該方法利用固態(tài)存儲(chǔ)總線驅(qū)動(dòng)程序來展示固態(tài)存儲(chǔ)設(shè)備的接口特征。在此實(shí)施例中,固態(tài)存儲(chǔ)設(shè)備選自 上述多個(gè)相異固態(tài)存儲(chǔ)設(shè)備。以此方式,在例如存儲(chǔ)棧200等存儲(chǔ)棧使例如操
作系統(tǒng)122等操作系統(tǒng)能夠支持以統(tǒng)一的方式訪問多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的同
時(shí),固態(tài)存儲(chǔ)的接口特征由該存儲(chǔ)棧提供。在一個(gè)實(shí)施例中,例如,將單個(gè)固 態(tài)存儲(chǔ)設(shè)備的一個(gè)或多個(gè)通用接口功能抽象到固態(tài)存儲(chǔ)總線驅(qū)動(dòng)程序中,例如
存儲(chǔ)棧200的"SD"275或"直接"276。如前所述,可以使用這一固態(tài)存儲(chǔ)總 線驅(qū)動(dòng)程序來展示關(guān)于將固態(tài)存儲(chǔ)設(shè)備耦合到例如計(jì)算機(jī)系統(tǒng)100的總線104 等總線的特定配置信息。應(yīng)該理解,在步驟330處,可以利用多個(gè)此類固態(tài)存 儲(chǔ)總線驅(qū)動(dòng)程序,其中這多個(gè)固態(tài)存儲(chǔ)總線驅(qū)動(dòng)程序中的每一個(gè)與關(guān)聯(lián)于多個(gè) 相異固態(tài)存儲(chǔ)設(shè)備中的一個(gè)的接口要求相關(guān)聯(lián)。
訪問固態(tài)存儲(chǔ)設(shè)備
圖4示出訪問固態(tài)存儲(chǔ)設(shè)備的示例方法的流程圖400。參考圖l、圖2和 圖3的各元素,在以下解釋流程圖400的各元素。
在流程圖400的步驟410處,在一個(gè)實(shí)施例中,該方法方便了操作系統(tǒng)與 數(shù)據(jù)訪問請(qǐng)求者之間的統(tǒng)一數(shù)據(jù)訪問請(qǐng)求通信。該統(tǒng)一數(shù)據(jù)訪問請(qǐng)求通信經(jīng)由 關(guān)于多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的抽象固有信息來方便。這多個(gè)相異固態(tài)存儲(chǔ)設(shè)備 可以包括諸如以下的固態(tài)存儲(chǔ)閃存、通用串行總線(USB)閃存、"安全數(shù)字" ("SD")存儲(chǔ)器、"多媒體卡"(MMC)存儲(chǔ)器、"極限數(shù)字"("XD") 存儲(chǔ)器、"壓縮閃速"存儲(chǔ)器、"記憶棒"存儲(chǔ)器、以及"智能介質(zhì)"存儲(chǔ)器 mi。
步驟410類似于流程圖300的步驟310。在一個(gè)實(shí)施例中,例如,統(tǒng)一數(shù) 據(jù)訪問請(qǐng)求通信通過提供例如"閃速盤"254等固態(tài)存儲(chǔ)類驅(qū)動(dòng)程序來方便。 這允許例如存儲(chǔ)棧200等存儲(chǔ)棧在不使用旋轉(zhuǎn)介質(zhì)模型或抽象的情況下統(tǒng)一地 訪問多個(gè)相異固態(tài)存儲(chǔ)設(shè)備。這消除了因經(jīng)由旋轉(zhuǎn)介質(zhì)模型或抽象訪問固態(tài)存 儲(chǔ)而引入的許多低效和等待時(shí)間。如前所述,抽象固有信息可以包括展示被訪 問的固態(tài)存儲(chǔ)設(shè)備的固定特性、展示被訪問的固態(tài)存儲(chǔ)設(shè)備的可移動(dòng)特性、和 /或展示方便從被訪問的固態(tài)存儲(chǔ)設(shè)備中引導(dǎo)計(jì)算機(jī)系統(tǒng)的信息的固態(tài)存儲(chǔ)類 驅(qū)動(dòng)程序。在流程圖400的步驟420,在一個(gè)實(shí)施例中,該方法接收操作系統(tǒng)中的數(shù) 據(jù)訪問請(qǐng)求。該數(shù)據(jù)訪問請(qǐng)求可以是讀請(qǐng)求、寫請(qǐng)求、或搜索請(qǐng)求。該數(shù)據(jù)訪 問請(qǐng)求可以從數(shù)據(jù)訪問請(qǐng)求者處接收。在一個(gè)實(shí)例中,該數(shù)據(jù)訪問請(qǐng)求者是例 如操作系統(tǒng)122等操作系統(tǒng)的一部分。在一個(gè)實(shí)例中,該數(shù)據(jù)訪問請(qǐng)求者是例 如應(yīng)用程序124等應(yīng)用程序。將該數(shù)據(jù)訪問請(qǐng)求被定向到固態(tài)存儲(chǔ)設(shè)備,該固 態(tài)存儲(chǔ)設(shè)備可以是固定或可移動(dòng)固態(tài)存儲(chǔ)設(shè)備。固定設(shè)備的一個(gè)示例是焊接到 或以其它方式耦合到例如計(jì)算機(jī)系統(tǒng)100等計(jì)算機(jī)系統(tǒng)的主板的閃存。可移動(dòng) 固態(tài)存儲(chǔ)設(shè)備的一個(gè)示例是俗稱"拇指型驅(qū)動(dòng)器"或"鑰匙鏈驅(qū)動(dòng)器"的USB 閃速驅(qū)動(dòng)器。
在流程圖400的步驟430處,在一個(gè)實(shí)施例中,該方法利用關(guān)于多個(gè)相異 固態(tài)存儲(chǔ)設(shè)備的通用功能的抽象數(shù)據(jù)來允許數(shù)據(jù)訪問請(qǐng)求從操作系統(tǒng)到多個(gè) 相異固態(tài)相異存儲(chǔ)設(shè)備中的一固態(tài)存儲(chǔ)設(shè)備的傳遞。這允許操作系統(tǒng)支持以統(tǒng) 一方式對(duì)多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的訪問。因此,盡管設(shè)備可以彼此不同,但是 使它們?cè)谟刹僮飨到y(tǒng)或運(yùn)行于其上的應(yīng)用程序訪問時(shí)看起來相似。如前所述, 此類通用功能可以經(jīng)由例如"閃速存儲(chǔ)"264等固態(tài)存儲(chǔ)端口驅(qū)動(dòng)程序來抽象。 在一個(gè)實(shí)例中,例如,該固態(tài)存儲(chǔ)端口驅(qū)動(dòng)程序定義用于統(tǒng)一地訪問多個(gè)相異 固態(tài)存儲(chǔ)設(shè)備的通用通信協(xié)議。此通信協(xié)議可以定義例如響應(yīng)于數(shù)據(jù)訪問請(qǐng)求 來對(duì)發(fā)送到或接收自固態(tài)存儲(chǔ)設(shè)備的數(shù)據(jù)進(jìn)行分組的通用裝置。
在一個(gè)實(shí)施例中,圖4的流程圖400還包括展示被訪問的固態(tài)存儲(chǔ)設(shè)備的 接口特征的步驟。這可以例如通過使用展示關(guān)于被訪問的固態(tài)存儲(chǔ)設(shè)備的特定 配置信息的固態(tài)存儲(chǔ)總線驅(qū)動(dòng)程序來實(shí)現(xiàn)。可以出于將固態(tài)存儲(chǔ)設(shè)備與計(jì)算機(jī) 系統(tǒng)的總線相耦合的目的而這樣做。例如,假設(shè)操作系統(tǒng)122或應(yīng)用程序124 正經(jīng)由方法400訪問"安全數(shù)字"存儲(chǔ)器。在此示例中,固態(tài)存儲(chǔ)總線驅(qū)動(dòng)程 序"SD" 275將展示"安全數(shù)字"存儲(chǔ)器的接口特征,以便它可以與計(jì)算機(jī)系 統(tǒng)100的總線104通信耦合并從而由操作系統(tǒng)104或應(yīng)用程序124訪問。
在一個(gè)實(shí)施例中,圖4的流程圖400還包括展示被訪問的固態(tài)存儲(chǔ)設(shè)備的 獨(dú)特、非通用抽象特征的步驟。這可以例如通過允許例如"閃速存儲(chǔ)"264模 塊等固態(tài)存儲(chǔ)端口驅(qū)動(dòng)程序訪問例如小型端口驅(qū)動(dòng)程序265等展示關(guān)于被訪問 的特定固態(tài)存儲(chǔ)設(shè)備的特定配置信息的固態(tài)存儲(chǔ)小型端口驅(qū)動(dòng)程序來實(shí)現(xiàn)。由此描述了本發(fā)明的用于對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的技術(shù)的示例實(shí)施例。盡 管用對(duì)結(jié)構(gòu)特征和/或方法動(dòng)作專用的語(yǔ)言描述了本主題,但可以理解,所附權(quán) 利要求書中定義的主題不必限于上述具體特征或動(dòng)作。相反,上述具體特征和 動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式公開的。
權(quán)利要求
1.一種提供對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的方法(300),所述方法包括提供固態(tài)存儲(chǔ)類驅(qū)動(dòng)程序來允許對(duì)多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的統(tǒng)一操作系統(tǒng)訪問(310);通過固態(tài)存儲(chǔ)端口驅(qū)動(dòng)程序來抽象所述多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的通用功能(320);以及利用固態(tài)存儲(chǔ)總線驅(qū)動(dòng)程序來展示固態(tài)存儲(chǔ)設(shè)備的接口特征,其中所述固態(tài)存儲(chǔ)設(shè)備選自所述多個(gè)相異固態(tài)存儲(chǔ)設(shè)備(330),使得在使所述操作系統(tǒng)能夠支持按統(tǒng)一的方式訪問所述多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的同時(shí)提供所述接口特征。
2. 如權(quán)利要求1所述的方法(300),其特征在于,所述提供固態(tài)存儲(chǔ)類 驅(qū)動(dòng)程序來允許對(duì)多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的統(tǒng)一操作系統(tǒng)訪問(310)包括抽象關(guān)于所述多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的固有信息。
3. 如權(quán)利要求2所述的方法(300),其特征在于,所述抽象關(guān)于所述多 個(gè)相異固態(tài)存儲(chǔ)設(shè)備的固有信息包括-將所述固態(tài)存儲(chǔ)設(shè)備展示為計(jì)算機(jī)系統(tǒng)的固定部分。
4. 如權(quán)利要求2所述的方法(300),其特征在于,所述抽象關(guān)于所述多 個(gè)相異固態(tài)存儲(chǔ)設(shè)備的固有信息包括將所述固態(tài)存儲(chǔ)設(shè)備展示為可以從計(jì)算機(jī)系統(tǒng)移除。
5. 如權(quán)利要求2所述的方法(300),其特征在于,所述抽象關(guān)于所述多 個(gè)相異周態(tài)存儲(chǔ)設(shè)備的固有信息包括將所述固態(tài)存儲(chǔ)設(shè)備展示為可由計(jì)算機(jī)系統(tǒng)來引導(dǎo)。
6. 如權(quán)利要求l所述的方法(300),其特征在于,所述通過固態(tài)存儲(chǔ)端 口驅(qū)動(dòng)程序來抽象所述多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的通用功能(320>包括定義用于訪問所述多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的協(xié)議。
7. 如權(quán)利要求l所述的方法(300),其特征在于,所述通過固態(tài)存儲(chǔ)端 口驅(qū)動(dòng)程序來抽象所述多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的通用功能(320)還包括允許通過小型端口驅(qū)動(dòng)程序來展示所述固態(tài)存儲(chǔ)設(shè)備的獨(dú)特特征。
8. 如權(quán)利要求l所述的方法(300),其特征在于,所述利用固態(tài)存儲(chǔ)總線驅(qū)動(dòng)程序來展示固態(tài)存儲(chǔ)設(shè)備的接口特征(330)包括展示關(guān)于將所述固態(tài)存儲(chǔ)設(shè)備耦合到計(jì)算機(jī)系統(tǒng)的總線的特定配置信息。
9. 一種具有用于執(zhí)行訪問固態(tài)存儲(chǔ)設(shè)備的方法(400)的計(jì)算機(jī)可執(zhí)行指 令的計(jì)算機(jī)可讀介質(zhì)(102, 108, 110, 112, 150),所述方法包括以下步驟方便操作系統(tǒng)和數(shù)據(jù)訪問請(qǐng)求者之間的統(tǒng)一數(shù)據(jù)訪問請(qǐng)求通信(410), 所述統(tǒng)一數(shù)據(jù)訪問請(qǐng)求通信經(jīng)由關(guān)于多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的抽象固有信息 來方便;接收所述操作系統(tǒng)中的數(shù)據(jù)訪問請(qǐng)求(420);以及利用關(guān)于所述多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的通用功能的抽象信息來允許所述 數(shù)據(jù)訪問請(qǐng)求從所述操作系統(tǒng)到所述多個(gè)相異固態(tài)存儲(chǔ)設(shè)備中的一固態(tài)存儲(chǔ) 設(shè)備的傳遞(430),使得所述操作系統(tǒng)支持以統(tǒng)一方式訪問所述多個(gè)相異固 態(tài)存儲(chǔ)設(shè)備。
10. 如權(quán)利要求9所述的計(jì)算機(jī)可讀介質(zhì)(102、 108、 110、 112、 150),其特征在于,還包括用于執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令出于將所述固態(tài)存儲(chǔ)設(shè)備耦合到計(jì)算機(jī)系統(tǒng)的總線的目的來展示所述固 態(tài)存儲(chǔ)設(shè)備的接口特征。
11. 如權(quán)利要求9所述的計(jì)算機(jī)可讀介質(zhì)(102、 108、 110、 112、 150),其特征在于,所述用于方便操作系統(tǒng)與數(shù)據(jù)訪問請(qǐng)求者之間的統(tǒng)一數(shù)據(jù)訪問請(qǐng) 求通信(410)的計(jì)算機(jī)可執(zhí)行指令包括用于執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令展示所述固態(tài)存儲(chǔ)設(shè)備的固定特性。
12. 如權(quán)利要求9所述的計(jì)算機(jī)可讀介質(zhì)(102、 108、 110、 112、 150), 其特征在于,所述用于方便操作系統(tǒng)與數(shù)據(jù)訪問請(qǐng)求者之間的統(tǒng)一數(shù)據(jù)訪問請(qǐng) 求通信(410)的計(jì)算機(jī)可執(zhí)行指令包括用于執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指 令展示所述固態(tài)存儲(chǔ)設(shè)備的可移動(dòng)特性。
13. 如權(quán)利要求9所述的計(jì)算機(jī)可讀介質(zhì)(102、 108、 110、 112、 150), 其特征在于,所述用于方便操作系統(tǒng)與數(shù)據(jù)訪問請(qǐng)求者之間的統(tǒng)一數(shù)據(jù)訪問請(qǐng) 求通信(410)的計(jì)算機(jī)可執(zhí)行指令包括用于執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令方便從所述固態(tài)存儲(chǔ)設(shè)備來引導(dǎo)計(jì)算機(jī)系統(tǒng)。
14. 如權(quán)利要求9所述的計(jì)算機(jī)可讀介質(zhì)(102、 108、 110、 112、 150),其特征在于,所述用于利用關(guān)于所述多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的通用功能的抽象 信息(430)的計(jì)算機(jī)可執(zhí)行指令包括用于執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令: 定義用于統(tǒng)一地訪問所述多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的通用通信協(xié)議。
15. —種與操作系統(tǒng)(122)相關(guān)聯(lián)的存儲(chǔ)棧(200),所述存儲(chǔ)棧(200)包括文件系統(tǒng)(221、 222、 223、 224);通信耦合到所述文件系統(tǒng)(221、 222、 223、 224)的巻管理器(231、 232、 233);通信耦合到所述巻管理器(231、 232、 233)的分區(qū)管理器(240);以及 通信耦合到所述分區(qū)管理器(240)的固態(tài)存儲(chǔ)類驅(qū)動(dòng)程序(254),所述固態(tài)存儲(chǔ)類驅(qū)動(dòng)程序(254)被配置成支持通過所述操作系統(tǒng)對(duì)多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的統(tǒng)一訪問。
16. 如權(quán)利要求15所述的存儲(chǔ)棧(200),其特征在于,所述固態(tài)存儲(chǔ)類 驅(qū)動(dòng)程序(254)包括關(guān)于固定固態(tài)存儲(chǔ)設(shè)備的固有特征的抽象信息和關(guān)于可 移動(dòng)固態(tài)存儲(chǔ)設(shè)備的固有特征的抽象信息。
17. 如權(quán)利要求15所述的存儲(chǔ)棧(200),其特征在于,還包括 通信耦合到所述固態(tài)存儲(chǔ)類驅(qū)動(dòng)程序(254)的固態(tài)存儲(chǔ)端口驅(qū)動(dòng)程序(264),所述固態(tài)存儲(chǔ)端口驅(qū)動(dòng)程序提供所述多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的通用 功能的抽象。
18. 如權(quán)利要求17所述的存儲(chǔ)棧(200),其特征在于,所述固態(tài)存儲(chǔ)端 口驅(qū)動(dòng)程序(264)定義用于使用所述操作系統(tǒng)來統(tǒng)一地訪問所述多個(gè)相異固 態(tài)存儲(chǔ)設(shè)備的通用通信協(xié)議。
19. 如權(quán)利要求17所述的存儲(chǔ)棧(200),其特征在于,還包括 通信耦合到所述固態(tài)存儲(chǔ)端口驅(qū)動(dòng)程序(264)的固態(tài)存儲(chǔ)小型端口驅(qū)動(dòng)程序(265),所述小型端口驅(qū)動(dòng)程序(265)展示所述多個(gè)相異固態(tài)存儲(chǔ)設(shè)備 中的一固態(tài)存儲(chǔ)設(shè)備的獨(dú)特特征。
20.如權(quán)利要求19所述的存儲(chǔ)棧(200),其特征在于,還包括 通信耦合到所述固態(tài)存儲(chǔ)端口驅(qū)動(dòng)程序(264)的固態(tài)存儲(chǔ)總線驅(qū)動(dòng)程序 (275、 276),所述總線驅(qū)動(dòng)程序(275、 276)展示所述多個(gè)相異固態(tài)存儲(chǔ)設(shè) 備中的一固態(tài)存儲(chǔ)設(shè)備的接口特征。
全文摘要
在提供對(duì)固態(tài)存儲(chǔ)的統(tǒng)一支持的方法中,提供固態(tài)存儲(chǔ)類驅(qū)動(dòng)程序來允許對(duì)多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的統(tǒng)一操作系統(tǒng)訪問。通過固態(tài)存儲(chǔ)端口驅(qū)動(dòng)程序來抽象多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的通用功能。利用固態(tài)存儲(chǔ)總線驅(qū)動(dòng)程序來展示固態(tài)存儲(chǔ)設(shè)備的接口特征,其中該固態(tài)存儲(chǔ)設(shè)備選自多個(gè)相異固態(tài)存儲(chǔ)設(shè)備,使得在使操作系統(tǒng)能夠支持按統(tǒng)一的方式訪問多個(gè)相異固態(tài)存儲(chǔ)設(shè)備的同時(shí),提供該接口特征。
文檔編號(hào)G06F13/16GK101657801SQ200880008143
公開日2010年2月24日 申請(qǐng)日期2008年3月11日 優(yōu)先權(quán)日2007年3月13日
發(fā)明者B·拉西伯斯基 申請(qǐng)人:微軟公司