[go: up one dir, main page]

TW200846906A - Unified support for solid state storage - Google Patents

Unified support for solid state storage Download PDF

Info

Publication number
TW200846906A
TW200846906A TW097107866A TW97107866A TW200846906A TW 200846906 A TW200846906 A TW 200846906A TW 097107866 A TW097107866 A TW 097107866A TW 97107866 A TW97107866 A TW 97107866A TW 200846906 A TW200846906 A TW 200846906A
Authority
TW
Taiwan
Prior art keywords
state storage
solid state
solid
different types
driver
Prior art date
Application number
TW097107866A
Other languages
English (en)
Inventor
Bohdan Raciborski
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of TW200846906A publication Critical patent/TW200846906A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

200846906 九、發明說明: 【發明所屬之技術領域】 本發明係有關於固態儲存之統一支援。 【先前技術】 在歷史上,硬碟(hard drive)—直被用來作為個人電腦 中,使用者資料和系統資料的永久料。現在的硬碟是由 轉動的磁性媒體所組成,而資料就是寫入到此或是由此所 讀取。這些硬碟含有機械性、移動而會磨損的部件,此就 會導致系統失敗,或是潛在性的資料損毁。而這樣子的硬 碟也消耗比較多電源,因為其磁盤(platter)也幾乎必須一 直轉動。 接下來的進展,不同的非揮發性記憶體儲存元件 (non-volatile memory st〇rage device)將會被用來作為永久 性的資料儲存,以取代硬碟,或是與硬碟並用。其代表性 的例子有:快閃記憶體(flash memory)、通用串列匯流排 (Universal Serial BUS: USB)快閃記憶體、安全數位(Secure Digital: SD)記憶體、多媒體卡(Multi Media Card: MMC) δ己憶體、最先端數位儲存媒體(e χ t r e m e d i g i t a 1 ·· X D)記憶 體、CF (Compact Flash)記憶體、記憶棒(Memory Stick) 吞己憶體以及智慧卡(Smart Media)記憶體等等。總觀來說, 這些非揮發性記憶體儲存元件都可以稱為固態儲存(Solid State Storage)或固態儲存裝置。這些固態儲存目前可以取 代硬碟作為永久儲存資料之用。即使如此,在個人電腦中 200846906 使用固態儲存作為永久儲存,仍然因為其每十億位元組 (Gigabyte)的製造成本,比起硬碟的每十億位元組仍然高 出太多’以至於其使用相當有限。 最近由於行動裝置例如數位像機、數位聲頻播放器 (digital audio player)以及行動電話(ceUuiar 的廣
泛流行’ 4成對固態討的大量需求,也已經促使其製造 成本降低。固態儲存的製造成本降低之現況,&經足以讓 人考慮將其作為個人電腦中永久料f料之用,以經濟有 效地取代硬碟在這方面的使用。 在個人電腦中利用固態健存作為永久儲存,相較於利 用硬碟而"T,有數項優點。例如固態儲存沒有會移動的部 件’且體積較小、較輕、使用較少電源,並且不受機械性 應力(例如震動或撞擊)的影響。 硬碟將貝料储存於硬碟讀寫頭可以存取之特定磁盤的 磁區(sector)或叢集(cl t 、ψ )中思就需要將記憶體存取對
映到硬碟中的旋轉媒體之—絲I 午體之磁盤上的特定位置。然而,固 匕、鍺存提供對母-個可定址記憶體單元α⑴直接 存取,也因此其不需尊^1 _ 在一旋轉磁性媒體上的一特定位置 之此類對映。 固態健存作為永久柯咨斗立矣 又14貝枓儲存的廣泛用途其實仍在初 :毛展又。因ib ’在各種固態儲存技術當中,仍存在可 觀的競爭。例如在今日1費者有很多種固態储存裝置(某 Γ在上述提及)可選擇,而該等固態儲存裝置必須仍透過 某些方式由一作業系统所支援。 6 200846906 就現今發展而論,作業系統對應用程式公開力& 存,猶如固態儲存是另一種形式之旋轉媒體。「你^儲 ^^轉媒 體模型」需要驅動叙式,以讓固態儲存能存取固態儲存、 的資料,就像是其仍然具有相同種類的機械部件(例如= 區、磁盤、磁柱以及讀寫頭等諸如此類者 I且也有類 似硬碟般之機械限制。旋轉媒體潛時(lateneies)係建置於 貧料存取需求中以針對該等移動部分之減緩(像是讀寫頭 搜尋時間)做出補償,即使在存取固態儲存中的資料時亦不 需此類之潛時。對於作業系統和應用程式而言,此資料存 取範例浪費了時間並複雜化了固態儲存資料的存取。此 外’把固態健存當作旋轉媒體般的處理,需要對於每一種 互相競爭的固態儲存技術,設計一專屬的特定高階驅動程 式(例如一埠驅動程式)^此方式對於固態儲存解決方案的 製造者造成了相當可觀的負擔。 因此’一種可以處理上述損失以及缺點並關聯於將固 態储存技術當作為一 PC中之永久資料儲存來使用的技 術,能具有相當的優勢。 【發明内容】 在此是要以簡化的方式介紹在下一段的實施方式中所 要進一步詳細介紹的概念。此段發明内容未意圖識別所主 張裇的之關鍵特徵或基本特徵,也沒有要試圖作為在決定 所主張標的之範圍上之幫助。 在對固態儲存提供統一支援的方法中,提供了固態儲 7 200846906 存類別驅動程式,以致能對多 · 署結 個不同種類的固態儲存梦 置之統-化作業系統存 俘裝 裝置的A、g Λ /夕數個不同種類的固態儲存 係經由固態儲存蜂驅動程式而被提取 二子:流排驅動程式被用來將固態儲存裝 :::存:二該:態储存…、由該等多…同種類1 彳、出纟侍其介面特徵能適應,並同時使 :乍業糸統能夠以統-化的形式,支援對該等多數個不同 種類之固態儲存裝置的存取。 以上所述方法對於固態健存裝置提供统_支援,會在 關聯於作業系統之健存堆疊中產生獨有的固態μ存提取 層。此些獨有的固態儲存提取層,允許對多數個不同種類 的固態儲存技術進行資料存取,以對於一作業系統和在其 上執行的應用私式而言看起來都相同。提供獨有的固態儲 存提取層消除了存取固態儲存裝置時,作業系統對「旋轉 媒體模型」的依賴性。而藉由將運行其上的作業系統及應 用程式自由化之方式,得以簡化並且流線化該存取固態儲 存的現行方法以存取固態儲存,而不會有當將固態儲存當 作是猶如另一種形式之存取旋轉媒體般來存取時所加諸的 潛時以及低效率。 【實施方式】 參考文獻將會在本揭露技術所提出對於固態健存的統 一支援之實施例中詳細描述,其範例會顯示在伴隨的圖式 當中。在將此固態儲存的統一支援之技術連同各種實施例 8 200846906 加以描述時,吾人將了解到,用於固態儲存的統一支援 本技術,並不會受限於這些實施例當中。相反的,該固 儲存的統一支援技術之實施例係意圖涵蓋了被包括在由 附之申請專利範圍所疋義之各種實施例的範圍與精神内 替代選擇、修改以及均等物,。更甚者,在如下的詳細 述中,為了能提出一針對固態儲存統一支援之技術的實 例的通盤理解,而加以敘述眾多特定細節。然而,可在 須該等特定細節的情況下而實施該等固態儲存之統一支 之本技術的實施例。在一些其他的例子中,一般已知的 法、程序、組件以及電路並未被詳細描述,以避免對於 揭露所提出的實施例造成不必要的混淆。 除非有特別陳述是顯然與下列討論者完全不同者, 則所提出的整篇詳細說明當中,在討論時所用的辭彙, 如 長:供(providing)」、「提取(abstracting)」、「利 (utilizing)」、「公開(exposing)」'「定義(defining)」、「促 (facilitate)」、「接收(receiving)」、「支援(supp〇rting)」, 諸如此類者,都是視為一電腦系統(例如第1圖中的電 1〇〇)或是其他類似的電子計算裝置中的動作及處理程序 該電腦系統或是類似的電子計算裝置將在該電腦系統的 存器或記憶體内代表實體(電子)數量之資料,操控並轉 成其他資料,該等其他資料亦近似地代表在電腦系統記 體或暫存器或其他這類資訊儲存、轉換或顯示裝置内的 體數量。對於例如光學以及虛擬電腦等其他電腦系統 吕’也可以適用於固態儲存之統一支援的本技術之一些 之 態 隨 的 描 施 無 援 方 本 否 例 用 進 或 腦 〇 暫 換 憶 實 而 實 9 200846906 施例。 本揭露將以一_ ^親討論 為本技術的實施例腦系統環境來開始描述,該環續 範例儲存堆最 作於其上。本揭露將會進行到一 τϋ 3^JL y »vj> f 此範例儲存堆疊至小該儲存堆疊係關聯到一作業系統β 該儲存堆疊中建立二包含數個模組’而此數個模組可以名
疊對於固態儲存州),而該儲存神 層允許對多數個不心=;這些獨有的固態館存提卑 於-作業系統和在:上:儲存裝置進行資料存以, 同。以這種方式,則“應用程式而言看起來都相 之統-支援。連同更=於多數個不同的固態儲存裝s 、 又夕會產生該等獨有固態儲存提取屏# 木寸’也提供鍺存堆疊的一般敘述。然後儲存堆最万 獨有固態健存提取層的運作,將會連同一種對於固態^ 提供統-支援的範例方法一併詳細描述,同時也對於 存取固態儲存裝置的範例方法一同說明。 示例性電腦系統環境 現在參照第1 11,用於固態儲存之統一支援之本技術 的某二實例的王crp或部分,係由駐留(reside)在例如一電 腦系統之電腦可使用媒體中的電腦可讀及電腦可執行之指 令(instruction)所組成。也就是,第i圖顯示了一種類型之 電腦範例,其可以用來實現以下所討論之用於固態儲存的 統一支援之本技術的實施例。第1圖依據用於固態儲存作 統一支援之本技術,而顯示一所使用之範例電腦系統 10 200846906
1 00。吾人所需察知的是,第1圖的系統丨00只是作為一範 例’而用於固態儲存提供統一支援之本技術的實施例,可 在數種不同的電腦系統内運作,該等電腦系統可以包含一 般用途網路電腦(general purpose networked computer)、嵌 入式電腦系統、路由器(router)、分享器(switch)、伺服裝 置、用戶端裝置、各種中介裝置/節點(interniediate devices/nodes)、獨立式(stand along)電腦系統、多媒體中 心(media center)、手持式(hand held)電腦系統以及諸如此 類者。 如第1圖所示,電腦系統1 〇 〇係良好地調適以具有週 邊的電腦可讀多媒體1 02,舉例而言,可以是軟碟、光碟 (compact disc)以及與其耦接之相似者。此夕卜,如第i圖所 示,電腦系統1 0 0係良好地調適以具有一固定(非可移除) 形式或是可移除形式且為與其耦接的固態儲存1 5 0。快閃 記憶體(flash memory)、通用串列匯流排 (Universal Serial Bus·· USB)快閃記憶體、安全數位(Secure Digita卜· SD)記憶 體、多媒體卡(Multi Media Card: MMC)記憶體、最先端數 位儲存媒體(extreme Digital: XD)記憶體、CF (Compact F1 a s h)記憶體、記憶棒 (M e m 〇 r y S t i c k)記憶體以及智慧卡 (Smart Media)記憶體等提供了可以作為固態儲存(s〇Hd State Storage)150 的範例。 第1圖的系統1 00包含了一用於傳通資訊的位址/資料 匯流排1 04以,及一耦接到匯流排1 〇4以處理資訊及指令 的處理器1 0 6 A,如第1圖所顯示,系統1 〇 〇也非常適用於 11 200846906 多處理器環境中,其中句人^ 匕3所不之多數個處理器 106B、106C。相反地,^ ,, 不汊也糸統100也可以非常良好地 單一處理器的環境中,例‘ σ 士… ^ 列如只有單一處理器1〇6α。 106Α、106Β、106C 可以 β ^ 7 从疋任何不同種類的微處理 統1 0 0也可以包含資料搜+ 貝针儲存特徵,例如一電腦可用 性記憶體 1 0 8,舉例而士 π ^ ^ + 1』印s ’此處的揮發性記憶體可 機存取記憶體(RAM),並*里拉u 1耦接到匯流排1 〇 4以儲存 斋106A、1G6B、1G6C所需要的f訊及指令。系統 包含電腦可使用非揮發性記憶體110’例如唯讀 (ROM),其耦接到匯流排i 〇4以儲存微處理器 106B、106C所需要的靜態資訊以及指令。亦在系 中呈現的是一資料儲存單元112(例如磁性或光學碟 磁碟機或固態儲存例如快閃記憶體),其耦接到匯访 以健存資訊及指令。系統〗〇 〇亦包括一選擇性 (alphanumeric)的輸入裝置ι14,其包含文數字和功 該等文數字和功能鍵被耦接到匯流排1 〇4,以對 106A或處理器ι〇6Α、1〇6Β和i〇6C傳通資訊和命2 系統1 00也包括一選擇性游標控制裝置丨丨6,其輕 流排1 04,以將使用者輸入資訊和命令的選擇,與 106A或處理器10 6A、106B和106C進行通訊。本 中的糸統1 0 0也包含一耦接到匯流排1 〇 4的選擇性 置11 8,以用於顯示資訊。 仍請參照第1圖,第1圖的選擇性顯示裝置1 一液晶顯示裝置(Liquid Crystal Device)、陰極 1 06A ' 適用在 處理器 器。系 的揮發 以是隨 微處理 100也 記憶體 106A、 統 100 片以及 L 排 104 文數字 能鍵, 處理器 卜選擇。 接到匯 處理器 實施例 .顯示裝 18可為 射線管 12 200846906 (Cathode Ray Tube: CRT)、電漿顯示裝置(Plasma display device)或是其他顯示裝置,該等裝置適用於產生供使用者 辨識的畫面影像或是文數字字元。對選擇性游標控制裝置 11 6允許電腦使用者動態地標示出在顯示裝置1 1 8之螢幕 上一視覺可見符號(游標)的移動,並且指示使用者在顯示 裝置118上所顯示的可選擇項目中之選擇。游標控制裝置 11 6的許多實作在該領域中已為人所知,其包含有執跡球
(trackball)、滑鼠、觸控板(touch pad)、搖桿(joystick)或 文數字輸入裝置114上的特殊鍵,其具有將一給定方向或 置換方式的移動予以標示出來的能力。替代地,吾人將察 知到,使用特殊鍵以及鍵序列命令(seqUenee commands), 可以經由來自文數字輪入裝置114的輸入而導向及/或啟 動一游標。系統1 00也可以良好地適用於具有一由其他構 件所導向之游標,例如聲音命令。系統丨〇〇也包含一輸入/ 輸出(I/O)裝置120,以將系統1〇〇與其外部實體耦接。例 如,在一實施例中,輸入/輸出裝置12〇可以是數據機,其 用於致能在系統1 0 〇與外部網路(例如,但不限於,網際網 路)之間的有線或無線通訊。 仍請參照第1圖,系統1 〇〇中亦描述了其他不同组件。 特別是,全部或是部份的作業系統122、應用程式124、模 組126以及資料128 ’皆係典型地被顯示為常駐於下列: 腦可用揮發性記憶冑108的其中之一或其組合,例如隨^ 存取記憶體(RAM)或資料儲存單& 112。然而,在一些趣 施例中,作業系統122可以被儲存在其他位",例如: 13 200846906 網路上或是固態儲存1 50上;進一步而言,作業系統1 22、 應用程式1 24、模組1 26以及/或資料1 2 8都可以從一遠端 位置處經由例如一對網際網路之耦接而存取。此外,作業 系統122 <以包含或是相關聯於核心(kernel)207(第2 圖),其係用於對大量儲存裝置提取特徵。
在一些實施例中,用於固態儲存的統一支援之本技術 的全部或部分’係當作作業系統1 22、應用程式1 24、模組 126或一些前述的組合,而被儲存在隨機存取記憶體 (RAM) 108的&己憶體位置中、在資料儲存單元1丨2媒體、 及/或在週邊電腦可讀媒體102中。相仿地,在一些實施例 中’本技術之全部或部分可被儲存在一來自電腦〗〇 〇之分 離位置,並且經由例如一對網際網路之耦接而被存取。 現請參 示儲存堆疊 系統,例如 可與廣泛用 不作為限制 業系統122 一般而 的提取層, 業系統上運 以垂直方式 般係位於堆 照第2圖,第2圖依據本技術之一實施例而 200。該儲存堆疊2〇〇係關聯於個人電腦作 作業系統12 2。吾人能察知到,儲存堆疊2 途的個人電腦作業系統相關聯。舉例言之, ,“MICR〇S〇Ft WmD〇ws VISTA”就可以是 勺範例其中儲存堆疊2 0 0可與其相關聯 儲存隹宜2〇〇在儲存裝置之間提供一系 例如一大置储存裝置(11 2,150),以及一在一 行之應用程垚。^ ^巧。如所指出的,儲存堆疊2〇〇 :應用程式排列,例如應用程式124,如所 宜200頂端。使用| 2〇5利用一應用程式1 14 200846906
以在 包細(例如電腦1 〇 〇)上執行一些功能。吾人能查知 到以在此處由應用程式124所顯示的方式,將多個應用 程式關聯到儲存堆疊200。應用程式124下的每一層可對 一大量館存設備012,150)的一提取提供接近核心207頂端 被一般化之提取’並在堆疊200内之各連續較低層處變得 更為詳細。依此方法,每一個提取層都能充當為在其下方 之該層的介面。類似地,依此方法,應用程式丨24只需要 一般化的資訊,例如關於檔案系統的資訊,以便存取一大 量儲存裝置(112,150)上的資料。 在第2圖的實施例所舉的例子中,儲存堆疊2〇〇係由 一使用者205所可使用或存取的一應用程式〗24以及一與 作業系統1 2 2或其部分相關的核心2 0 7所組成。核心2 0 7 係由多數個提取層所組成。這些提取層包含檔案系統(fi 1 e system)220、容量管理員(volume manager)230、分割區管 理員(partition manger)240 、類別驅動程式(ciass drive)250、埠驅動程式(port driver)260、匯流排驅動程式 (bus drive)270 以及硬體提取層(hardwear abstraction layer)2 8 0 〇 檔案系統層 檔案系統2 2 0提取層的運作在該領域中是廣為人知 的。檔案系統220係通訊地耦接到應用程式124以及作業 系統1 22。一般而言,對於檔案系統220,被存取的資料會 對應用程式1 24公開,以當作一或更多的檔案,其可以被 排置在資料夾當中。如在此所描述般的存取資料,其範圍 15 200846906
包含了讀、寫以及搜尋等動作。如所示,檔案系統220提 取層係由一或更多的模組所組成,例如檔案配置表(file allocation table: FAT)221 、新技術檔案系統(New Technology File System: NTFS)222、通用碟片檔案系統 (Universal Disk File System: UDFS)223 以及光碟檔案系 統(Compact Disk File System: CDFS)224 和可能用於其他 儲存媒體及/或儲存技術之其他模組。像是檔案系統FAT 221、NTFS 222、UDFS 223 以及 CDFS 224 在該領域中都 已為人所知。這些檔案系統模組(例如2 2 1、2 2 2、2 2 3、2 2 4 及諸如此類者)各者,對於儲存媒體的不同類型而公開一個 檔案系統,及/或經由特定儲存技術而公開一個檔案系統。 在一範例中’檔案系統2 2 0也可以包含一模組,其用於對 一固態儲存裝置公開一檔案系統。在其他例子中,用於固 態儲存裝置的檔案系統係與另一儲存裝置(例如碟片)的檔 案系統相似或完全相同,由針對於該類型儲存裝置㈠列如 UDFS 221)之電腦系統所使用的檔案系統模組,可以被用 來將固態儲存裝置的檔案系統公開。 谷量管理員230提取層的運作在該領域中 θ 去从 也疋廣泛周 般而言 知的。容量管理員230係通訊地耦接到檔案系統。 a 一 ^日 傲仔取的資粗十/ 置合去忐「六Θ 貝抖或位 …成 谷I (volume(s))」而對檔案系統2 八 j么、t a 開,甘 係以配置在一或更多的大量儲存裝置(例如磁 ,、 儲存裝置)上之空間的形式所公開。這樣的可以=固怨 里了 U是實際 關於容量管理員230提取層,被存取一 θ ^貝料或位 l(volume(s))」而對檔案系絲、 16
200846906 上的實體容量,或可為虛擬的容量,並且可以被 個不同的位置中。此外,這樣的容量可以是由一 分割區(由分割區管理員240將其公開)所組成。 容量管理員230提取層係由一或更多的模組所組 容錯碟片 ’’(Fault tolerant Disk: FtDisk)231、邏 理員(Logic Disk Manager: LDM)232 以及邏輯 員(Logic Volume Manager: VolMan)233。這些指 23 1、23 2、233及諸如此類者)各者,將一或更多 存取為可用的容量,公開給檔案系統2 2 0。在典 電腦系統中,例如電腦系統1 0 〇,這些容量可以 (designator)所代表,例如“八:”、“B :,,、 “C :,,以 類者’可以被自動地指定或由使用者2 0 5所指定 畺同常在口語中被指稱為,,碟(drive),,,例如,,C ^ 這些容量實際上根本不駐留在旋轉媒體上。 分割區管理員層 /刀副區官理員24〇提取層的運作在該領域中 也是廣泛周知的。分割區管理員240係通訊地耦 &理員230。一般而言,關於分割區管理員240, ^料或位置會當成分割區而對容量管理員230公 以配置在一或更多的大量儲存裝置(例如磁碟機 存裝置)上之空間的形式所公開。典型地,每一容 或更多的分割區所組成。在大多數的情況下,一 分割區之間,是以一對一的方式對應(mapping)。 容量是由多個分割區所組成的時候,該等分割區 放置於數 或更多的 如所示, 成,例如” 輯碟片管 容量管理 I組(例如 對於資料 型的個人 由指定碼 及諸如此 。這些容 | ”,即使 一般而言 接到容量 被存取的 開,其係 或固態儲 董係由一 各量與一 然而,當 可以駐留 17 200846906 在一單一大量儲存裝置(11 2,150)上或是駐留在多個不同 的大量儲存裝置(112,150)上。 類別驅動程式層 一般而言’類別驅動程式250提取層提供關於大量儲 存裝置(1 12,150)被提取的本質資訊。類別驅動程式25〇係 通訊地耦接到分割區管理員240。類別驅動程式25〇提取 層的若干模組(碟片251,磁帶252以及光碟唯讀記憶體(cd R〇M)253)運作的概念在該領域中已是眾所週知的。而在現 存技術中,例如碟片25 1模組,對磁碟機提供本質資訊之 提取,此對該磁碟機是獨有的,而該磁碟機係由旋轉的媒 體所組成。這就容許了作業系統1 22然能夠以統一的方 式’通透地存取廣泛範圍之不同類型的旋轉媒體。此外, 現存技術典型地依靠碟片25 1模組以存取固態儲存,即使 固態儲存與旋轉媒體在實體上並不相似。 用於固態儲存統一支援的本技術把另外一種模組,「快 閃碟(F1 a s h D i s k)」2 5 4 ’加入到類別驅動程式2 5 〇的模組 當中。「快閃碟」2 5 4是一種固態儲存類別的驅動器,其允 许對固態健存作資料存取’而不會如「旋轉媒體模型」在 經由碟片2 5 1模組要對固態儲存進行資料存取時一般產生 阻撓。「快閃碟」2 5 4模組提取關於固態儲存裝置的本質資 訊。在一實施例中,「快閃碟」2 5 4模組提取關於多數個不 同類型的固態儲存裝置的本質資訊,例如:快閃記憶體 (Flash Memory)、通用序列匯流排(Universal SeHai BUS: U S B)快閃記憶體、安全數位(S e c u r e D i g i t a 1: S D)記憶體、 18 200846906 多媒體卡(Multi Media Card: MMC)記憶體、最先端數位儲 存媒體(extreme Digital: XD)記憶體、CF (Compact Flash) 記憶體、記憶棒(Memory Stick)記憶體以及智慧卡(Smart Media)記憶體等。
這類被提取本質資訊的一範例是一被提取本質資訊, 其關於一特定固態儲存裝置是否可以自個人電腦系統(例 如電腦系統100)移除。這類被提取本質資訊的另一範例是 一被提取本質資訊,其關於一特定固態儲存裝置是否為一 個人電腦系統(例如電腦系統〗00)中的固定、非可移除部 分。這類被提取本質資訊的又另一範例是一被提取本質資 訊,其關於-特定固態健存裝置是否可以被用來啟動個人 電腦系統(例如電腦系統丨00)。「快閃碟」254提供或「公
開」此關於一或更多固態儲存裝置之被提取本質資訊給分 同類型的固態儲存裝置能對一分割區管理員24〇而言 起來」都相同’因此簡化了對於不同種類裝置的存取。 割區管理員240。以此種方式 業系統(例如作業系統1 2 2), 態存取裝置支援統一化的存取 ,快閃碟」2 5 4能通過一作 而能對多數個不同種類的固 。統一化存取允許多數個不 看 一般而言,埠驅動程式26〇抽取層提供—或更多的模 組’其至少包含被抽取資 s 取貝Λ而且疋關於多數個不同的大量 储存裝置(112,150)之一或f冬的丘、s姑 ^ 次更夕的共通特徵。埠驅動程式 2 6 0係被通訊性地輕接到類 們饮y賴別驅動紅式2 5 〇。埠驅動程式 260 取層的若干模★且^ ,,Λ …(SCSI Port 261、“STORPort” 262 19 200846906 以及“USBStor” 263)運作的概念是已眾所週知的。現人的 技術中,例如“SCSI Port” 261能提取多數個不同類^的 SCSI(Small Computer System Interface)裝置的共通特徵 藉由提取該等共通特徵之方式,SCSI裝置的製造者 不再 需要針對該等SCSI裝置而撰寫一特徵充分發展(f心 blown)的埠驅動程式,而只要撰寫一小型的迷你埠驅動程 式,以公開該SCSI裝置的獨有特徵,其係相異或附加 於’’ S C SI埠” 2 6 1模組被抽取的共通特徵之外特徵。 對於固態健存的統一支援之本技術,增加了一固態儲 存埠驅動程式(“FlashStor” 264)到埠驅動程式260抽取層 的模組,該“FlaShSt〇r,,264模組提供與多數個埠不同種類 的固態儲存裝置之被提取資訊相關的一或更多之共通特 徵。例如,當固態儲存裝置具有不同的物理結構或不同的 接腳’而共享一或更多的共通特徵時,例如:用來描述儲 存區域大小的資訊、用來代表一被儲存資料封包之機制, 或是獲取資料封包之儲存部分的機制。該“FlashSt〇r”264 模組抽取多數個不同種類的固態儲存裝置之共通特徵,例 如快閃記憶體(Flash Memory)、通用序列匯流排(Universal Serial Bus·· USB)快閃記憶體、安全數位(Secure Digital: SD)記憶體、多媒體卡(Multi Media Card: MMC)記憶體、 表先端數位儲存媒體(extreme Digital: XD)記憶體、CF (Compact Flash)記憶體、記憶棒(Mem〇ry SUck)記憶體以 及智慧卡(Smart Media)記憶體等。 在一說明例中,一些這類的共通特徵係被抽取至一共 20 200846906 同通訊協疋中,以用統一的方式從一作業系統處存取固態 存取裝置。例如,此一通訊協定可以至少包含一將資料作 成封?而發送到固態儲存裝置上以儲存的標準格式。藉由 抽取這些共通特徵,固態儲存裝置的製造者就不需要針對 該等固態存取寰置而撰寫一充分發展特徵的埠驅動程式,
、要寫小型的迷你埠驅動程式,以公開該固態儲存装 置的獨有特徵,其係相異於或附加於” Flash st〇r,,264模組 所提取的共通特徵之外。 迷你埠驅動程式(mini-P〇rt Drivers) 逑你埠驅動程式是屬於選擇性的埠驅動程式,其係有 關於固態健存裝置的_或更多之獨有特徵,該等獨有特徵 係相異於或附加於自固態儲存埠驅動程式所提取的共通特 徵之外。本技術允許迷你埠驅動程式之選擇性地附加,例 如迷你埠驅動程式265,其將一特定固態儲存裝置的一或 更多之獨有特徵公開給固態儲存埠驅動程式,例如 St〇r”264模組。舉例而言’在一實施例中,则快閃碟的 原薇委託製造商(〇riginal Equipment Manufacturer: 〇em) 撰寫並提供一與“Flash Stor,,264相互接合的迷你埠驅動程 式,以將USB快閃碟之獨有非共通之被提取特徵公開 給 ’’Flash St〇r,,264 模組。 匯流排驅動程式 一般而言,匯流排驅動器270提取層提供一個或更多 的模組,每—個模組公開一個可以被輕接到匯流排(例如電 腦100的匯流排1〇4)的組件或更多介面特徵。匯流排 21 200846906 驅動程式2 7 0係通訊地輕接到埠驅動程式2 $ 〇,並且將配 件的一或更多之介面特徵公開給埠驅動程式2 6 〇。匯流排 驅動程式270提取層的若干模組(週邊配件介面(peHperal
Component Interface: PCI)27卜通用序列匯流排(Universal Serial Bus: USB)272、“1 394”(電子電機工程協會 1 394 介 面)273以及整合發展環境(Integrated Devel〇pment Enviroment: IDE)274)中之運作概念在該領域中已為眾所 週知。在現有技術中,例如U S B 2 7 1模組,經由一通用序 列匯流排(例如USB2.0標準匯流排)提供關於耦接和交換 資料之特定資訊。 用於固態儲存的統一支援之本技術,對匯流排驅動程 式2 7 0的模組增加了一或更多的固態匯流排驅動程式模組 (例如“80’’275及“0^(^”276)。例如10,,275模組提供關 聯於耦接及存取資料的介面資訊,該等資料係有關於 “SecureDigital”固態儲存裝置。類似地,各式的此類固態 健存匯流排驅動程式可以被包含在匯流排驅動程式2 7 0提 取層當中’以為其他固態餘存裝置提供介面資訊,例如快
閃記憶體(Flash Memory)、安全數位(secure Digital: SD) 記憶體、通用序列匯流排(Universal Serial Bus: USB)快閃 記憶體、多媒體卡(Multi Media Card: MMC)記憶體、最先 端數位儲存媒體(extreme Digital: XD)記憶體、CF (Compact Flash)記憶體、記憶棒(Memory Stick)記憶體以 及智慧卡(Smart Media)記憶體等。在另一範例中, “Direct”276模組提供用於耦接及存取資料(其與固態儲存 22 200846906 裝置相關)的介面資訊,該固態儲存裝置可以是實體焊接或 以其他方式直接耦接到電腦(例如電腦1 〇 〇 )主機板的記憶 體,例如快閃記憶體等。此類的固態儲存匯流排驅動程式 將關於固態健存裝置的特定組態資訊公開。例如,被公開 的介面資訊可以是一特定協定或特定通訊資訊,其需要適 當地將一特定固態儲存裝置與匯流排(例如電腦i 0 0的匯 流排104)相互接合。
‘HAL’(硬體提取層:Hardware Abstraction Layer) 280 係被用來把貫際硬體自作業系統中分離出來。“HAl,,280 係通訊性地耦接到匯流排驅動程式27〇。“hAL,,28〇至少包 含程式碼,其在硬體和任何使用該程式碼的軟體(例如應用 程式124或作業系統122)之間產生—介面。“hal,,28〇從 核心207以外的其他層提取或隱藏任何剩餘而未被公開、 或是被提取的硬體相關之細節。硬體應用程式層(例如 “HAL’’28〇)的運作以及結構在該領域中已是眾所週知的。 運作方法的範例 以下提出的討論將會詳細描述關於固態儲存之統—支 援之本技術的實施例之運作巾,其範例方法的運作。請參 照第3圖及第4圖’流程圖3〇〇與4〇〇各自都顯示了用於 固態儲存之統-支援之本技術的各式實施例所使用的範例 步驟。流程圖300與400包含處理步驟,其在各式實施例 中是由-處理器所實現,該處理器係在電腦可讀取以及電 腦可執行指令的控制之下。料電腦可讀取以及電腦可執 23 200846906
行指令,係駐留在例如資料儲存特徵中,例如第1圖中的 電腦可使用/可讀取揮發性記憶體1 0 8、電腦可使用/可讀取 非揮發性記憶體11 〇、電腦可讀取週邊媒體1 02以及/或資 料儲存單元112中。該等電腦可讀取及電腦可執行指令, 其可駐留在電腦可使用/可讀取多媒體上,係被用來與例如 第1圖中的處理器106a以及/或處理器106 a、10 6b及106c 來併同控制或操作。雖然在流程圖3 00與400中已經揭露 了特定步驟,但此些步驟僅為範例。換言之,實施例能良 好地適用於執行在流程圖300與400中所述的各式其他步 驟或是該等步驟的變化。吾人能察知到,在流程圖3 00與 4 0 0中所述的步驟能以一不同於目前所呈現之順序加以執 行,且並非在流程圖3 0 0與4 0 0中所述的全部步驟都需執 行, 對固態儲存提供統一支援 第3圖顯示一流程圖3 00,其為一種對固態儲存提供 統一支援的方法之示範性實施例。流程圖3 0 0的元件將在 下面參照第1圖與第2圖的元件加以描述。 流森圖3 00中的步驟310,在一實施例中,該方法提 供一固態儲存類別驅動程式,以致能對多數個不同種類的 固態儲存裝置之統一作業系統存取。在一實施例中,此至 少包含 了提供一固態類別驅動程式,例如 “FiashDisk”254。如上述所討論,此一固態類別驅動程式 提取了關於多數個不同種類的固態儲存裝置的本質資訊。 此類多數個不同種類的固態儲存裝置,除此之外還可包含 24 200846906 如下的固態儲存:快閃記憶體(Flash Memory)、通用序列 匯流排(Universal Serial Bus: USB)快閃記憶體、安全數位 (Secure Digital: SD)記憶體、多媒體卡(Multi Media Card: MMC)記憶體、最先端數位儲存媒體(extreme Digitd: 記憶體、CF (Compact Flash)記憶體、記憶棒(Mem〇ry stick) §己憶體以及智慧卡(S m a r t M e d i a)記憶體等。
在一實施例中,固態儲存類別驅動程式對儲存堆疊的 一部份提供被提取的本質資訊,例如儲存堆疊2〇〇的分割 區管理員240。提供被提取本質資訊的動作本身,隱藏了 關於多數個不同種類的儲存裝置的細節,使得當由電腦的 作業系統所檢示時不同種類的固態儲存設備各者會顯現成 是相同種類。因此,電腦的作業系統能夠以統一的方式對 多數個不同種類的固態儲存裝置各者進行存取,猶如該等 不同種類的裝置在本質上都是相同的一樣。
在一例子中,提供被提取本質資訊的動作至少包含公 開-特定固態儲存裝置是否為固定式地轉接到電腦系統。 -固定的固態儲存裝置的範例為一快閃記憶體,其即為焊 接到電腦系統之主機板。在另一例子+,提供被提取本質 資訊的動作至少包含公開一特定固態儲存褎置是否為可移 除地耦接到電腦系、统。一可移除地耦接的固態儲存裝置的 範例為一卡片式(Card based)的固態儲存裝置,例如安全數 位“SeCureDigital”記憶體。在一實例中,提供被提取質資 訊的動作至少 包含公開一特定固態儲存裝置是否 系統所啟動。 可由電腦 25 200846906 在一實施例中,流程圖300的步驟32〇,此方法經由 一固悲儲存埠驅動程式而提取多數個不同種類的固態儲存 裝置的共通功能。在一實施例中,例如一或更多的共通功 能被提取至固態儲存埠驅動程式,例如第2圖中的 “FlaShStor”264。在另一實施例中,現有的埠驅動程式, 例如USB Stor”263可以被延伸及/或加強,以在匯流排(例 如通用序列匯流排USB)上提供固態儲存能力。對於現在可 用的固癌儲存裝置來說’這將提供較佳的反向相容性。如 上述討論,固態儲存埠驅動程式,例如“FlashSt〇r”264或 延伸/加強的“USBStor,,263,可以被用來定義一協定,例如 通訊協疋,以用於存取一或更多的多數個不同種類之固態 儲存裝置。提取對於該多數個不同種類之固態儲存裝置而 言為共通的特徵及功能,能消除提供一個別特徵充分發展 之固態儲存埠驅動程式(其含有固態儲存裝置的每個特徵) 的必要性。跟著,此亦消除了對於多數個不同種類的固態 儲存裝置而言擁有充分發展特徵之固態儲存埠驅動程式的 必要性。 在一貫施例中,步驟3 2 0更包含使一固態儲存裝置的 獨有特徵,能經由固態儲存迷你埠驅動程式而被公開。在 此一實施例中,該固態儲存裝置係由先前所述之多數個不 同種類的固態儲存裝置中所選出。依此方式,該固態儲存 的獨有特徵由一儲存堆疊(例如儲存堆疊2〇〇)所適應,同 時此儲存堆疊致能一作業系統(例如作業系統〗22)以 用絲 欠 ,久 、、、方式對存取該不同種類之多數個固態儲存裝置進行 26 200846906 存取。例如,此可至少包含容許一 〇Em提供迷你匯流排 驅動程式(mini-bus driver),例如迷你匯流排驅動程式 265 ’其與固態儲存埠驅動程式(例如“FiashSt〇r,,264)相互 接合’以將一特定固態儲存裝置的一或更多的獨有非共通 特徵公開。 於机程圖300的步驟330,在一實施例中,此方法利 用固態儲存匯流排驅動程式,將固態儲存裝置的介面特徵 a開在該實施例中,該固態儲存裝置係由前述的不同種 類:多數個固態儲存襞置所選出。依此方式,冑固態儲存 士 特徵由儲存堆疊(例如儲存堆疊2 0 0 )所適應,同 儲存隹璺致此一作業系統(例如作業系統1 2 2)以支援 用統I方式對多數個不同種類之固態儲存裝置進行存取。 在κ %例中’例如一單一固態儲存設備之一或更多的共 通^面功能’被提取至固態健存匯流排驅動程式(例如餘存 HD”275或是“心“”276)中。如前述討論,此 :固態铸存匯流排驅動程式可被用來公開特定組態資訊, “I M ^係關於輕接〆^態健存裝置到匯流排(例如電 =1⑽的匯流排1G4)。吾人可察知到,在步驟33〇, 流排驅動動程式可以與多數個固態儲存匯 係關聯於該使用’料固態铸存匯流排驅動程式 η面要求,而該等介面要求係與多數個不同 種類的固態儲存裝置相關聯。 存取固態儲存裝置 第 4 ΡΙ 圖顯示一流程圖400,其為一存取固態儲存裝置 27 200846906 的方法之一範例。流程圖400的每一個元件將於以下連同 參照第1圖、第2圖與第3圖之元件而加以說明。
在流程圖400的步驟410,於一實施例中,此方法促 進了在作業系統與資料存取請求者之間的統一資料存取要 求之通訊。經由關於多數個不同種類之固態儲存裝置的被 提取本質資訊,能促進此統一資料存取要求之通訊。該等 多數個不同種類之固態儲存裝置除此之外還可以包含如下 的固態儲存:快閃記憶體(Flash Memory)、通用序列匯流 排(Universal Serial Bus: USB)快閃記憶體、安全數位 (Secure Digital: SD)記憶體、多媒體卡(Multi Media Card: MMC)§己憶體、最先端數位健存媒體(extrenie Digital: XD) 記憶體、CF (Compact Flash)記憶體、記憶棒(Memory S t i c k) §己憶體以及智慧卡(s m a r t μ e d i a)記憶體等。 步驟4 1 0與流程圖3 〇 〇的步驟3丨〇類似,在一實施例 中’舉例而言’統一資料存取要求之通訊,係藉由提供一 固態倚存類別驅動程式(例如“FlashDisk,,254)之方式而促 進。此允許一儲存堆疊(例如儲存堆疊2〇〇)能對於多數個 不同種類的固態儲存裝置進行統一化存取,而無須使用旋 轉媒體模型或提取(abstractions)。此方式能消除由於評估 固態儲存所導致的許多潛時及低效率,評估固態儲存之動 作係經由旋轉媒體模型或提取。如先前所討論,被提取本 貝負訊可至少包含該固態儲存類別驅動程式,其公開被存 取固態儲存裝置的固定性本質(fixed nature)、公開被存取 口匕儲存裝置的可移除本質(re movable nature)以及/或公 28 200846906 開促進由被存取固態儲存裝置來啟動電腦系統的資訊。 在流程圖400中的步驟420,於一實施例中,此方法 在作業系統中接收一資料存取請求,此資料存取請求可為 一讀取請求、寫入請求或搜尋請求。此資料存取請求可以 自資料存取請求者處接收到。在一說明例中,資料存取請 求可以是作業系統(例如作業系統122)的一部分。在_說 明例中,資料存取請求是一應用程式,例如應用程式1 24。 此資料存取請求被引導到一固態儲存裝置,其可以是固定 式的或是可移除式的固態儲存裝置。固定式裝置的一範例 是快閃記憶體,其係焊接或是以其他方式固定式地耦接到 一電腦系統(例如電腦系統100)的主機板。而可移除式固 態儲存裝置之一範例是USB快閃碟,就是_般口語上所稱 的”梅指碟(thumb drive)”或是,,鑰匙圈碟(1^仏- drive)’’。 流程圖400的步驟430,在一每# t 社 貝施例中,該方法利用 被k取資訊(其關於多數個尤同德相 歎個不同種類固態儲存裝置的共通 功能)’以致能從該作業李鲚至|各盤 糸扁到夕數個不同種類之固態儲存 裝置的其中一固態儲存萝 裝置在此兩者間之資料存取請求 的通訊。這允許作業系絲於热 、’先1=1夠乂、、先一的方式支援對多數個 不同種類的固態儲存系統的存取。 ^ ^^ t ^ 口此,儘管這些裝置的 種類彼此並不相同,當由一你董έ m^ 糸統或是於其上運行之應 用程式所存取時,該等裝置會被視 、 ,相同。如前所討言w者, 此類共通功能可以經由一固離 心储存埠驅動程式,例如 FlashStor”264,加以提取。在一 兄明例中,例如,該固態 29 200846906 儲存埠驅動程式定義一共同通訊協定,以統一地存 個不同種類的固態儲存裝置。此一通訊協定可以定 如,因應於一資料存取請求,而把被發送到或接收 儲存裝置的資料封包化之共同構件。 在一實施例中,第4圖的流程圖400更包含一 其公開一被存取固態儲存裝置的介面特徵。此可以 例如,利用一公開特定組態資訊(其關於該被存取的 存裝置)之固態儲存匯流排驅動程式,而加以完成。 了將該固態儲存裝置耦接到一電腦系統的匯流排之 做。例如,假設“安全數位,,記憶體被作業系統! 22 程式1 2 4透過方法4 0 0所存取。在此例中,固態儲 排驅動程式“ S D ” 2 7 5將會公開該“安全數位,,記憶體 特徵,故其可以與電腦系統1 〇〇的匯流排1〇4通訊和 並藉此由作業系統1 22或應用程式1 24所存取。 在一實施例中,第4圖的流程圖400至少更包 驟,其公開一被存取的固態儲存裝置之獨有非共通 特徵。此可以藉由,例如,允許一固態儲存埠驅動3 是“FlashStor”264模組)’以存取固態儲存迷你埠驅 (像是迷你埠驅動程式265),其係公開關於一被存 固態餘存裝置的特定組態資訊。 用於固態儲存的統一支援之本技術的示範實施 插述。雖然已用針對結構特徵及/或方法步驟之語言 】標的予以描述,但吾人必須了解的是申請專利範 義之標的,並不只限於以上所述的特定特徵或步 取多數 義’例 自固態 步驟, 藉由, 固態儲 此是為 目的而 或應用 存匯流 的介面 ^耦接, 含一步 被提取 δ式(像 動程式 取特定 例經已 來對專 圍所定 1 °相反 30 200846906 地,上述這些特定特徵及步驟係當作實現申請專利範圍之 範例形式而予以揭露。 【圖式簡單說明】 以下之隨附圖式,係為併入且形成本說明書的一部 分,用以解說對固態儲存提供統一支援之本技術,並連同 其描述以解釋下列所討論的原理:
所使用的電腦系統之示意圖。 第2圖顯不依據本技術之一實施例,關聯於一作業系 統的示範性儲存堆疊。 第3圖顯不依據本技術之一實施例,執行一種對固態 儲存提供統一支援的古汰一 # ★ 的方法之不犯性運作流程圖;以及 卓4圖顯示依摅士 ^ ^ 據本技術之一貫施例,執行一種存取固 範性運作流程圖。 則廡=在描述中所參照的圖式,1非有特別說明,否 〜解到其並非依照比例所繪製的。 【主要元件符號說明】 102料電腦可讀取媒體 104 匯流排 106A'C處理器 108 電腦可使用# & 尺用揮發性記憶體 110 電腦可使用# # _ π R用圯憶體(ROM) 31 200846906
112 資料儲存單元 114 文數字輸入 116 游標控制 118 顯示裝置 120 I/O裝置 122 作業系統 124 應用程式 126 模組 128 資料 150 固態儲存 200 儲存堆疊 205 使用者 220 檔案系統 221 檔案配置表 222 新技術檔案系統 223 通用碟片檔案系統 224 光碟檔案系統 230 容量管理員 231 容錯碟片 232 邏輯碟片管理員 233 邏輯容量管理員 24 0 分割區管理員 250 類別驅動程式 251 磁碟 32 200846906
2 52 磁帶 253 光碟唯讀記 254 快閃碟 260 埠驅動程式 261 SCSI 埠 262 STOR 埠 263 USBStor 264 F lashStor 265 迷你埠驅動 270 匯流排驅動 271 PCI 272 USB 273 1394介面 274 IDE 2 75 SD 276 DIRECT 280 硬體提取層 207 核心 憶體 程式 程式 (HAL) 33

Claims (1)

  1. 200846906 十、申請專利範圍: 1. 一種對固態儲存提供統一支援的方法(3 0 〇 ),其至少包 含下列步驟: 提供一固態儲存類別驅動程式,以致能對多數個不同 種類之儲存裝置(3 1〇)的統一化作業系統存取; 經由一固態儲存埠驅動程式(3 2〇),提取該等多數個不 同種類的儲存裝置的一共通功能;以及 # 利用一固態儲存匯流排驅動程式,將一固態儲存裝置 的介面特徵公開,其中該固態儲存裝置係由該多數個不同
    不同種類的儲存裝置之存取。
    如申請專利範圍第- 儲存類別驅動程式,以致能對多數個不 ^ ( 10)的統一化作業系統存取的步驟至少 提取關於該多數個不同種類的固態 項所述之方法(3〇0),其中 的固態儲存裝置的本質資 其中該提取關 3·如申請專利範圍第2項 於該等多數個不同種類的 至少包含:
    固定部分。 34
    200846906 4.如申請專利範圍第2項所述之方法(300),其中該提 於該等多數個不同種類的固態儲存裝置的本質資訊的 至少包含: 公開該固態儲存裝置作為一電腦系統的一可移 分0 5.如申請專利範圍第2項所述之方法(300),其中該提 於該等多數個不同種類的固態儲存裝置的本質資訊的 至少包含: 公開該固態儲存裝置作為可由一電腦系統所啟動 6.如申請專利範圍第1項所述之方法(300),其中該經 態儲存埠驅動程式(320),提取該等多數個不同種類的 裝置的共通功能的步驟至少包含: 定義一協定,其用於存取該等多數個不同種類的 儲存裝置。 7.如申請專利範圍第1項所述之方法(300),其中該經 態儲存埠驅動程式(320),提取該等多數個不同種類的 裝置的共通功能的步驟更包含: 使該固態儲存裝置的一獨有特徵經由一迷你埠驅 式而被公開。 取關 步驟 除部 取關 步驟 由固 儲存 固態 由固 儲存 動程 35 200846906 8 ·如申請專利範圍第1項所述之方法(300),其中該利用一 固態儲存匯流排驅動程式,將一固態儲存裝置的介面特徵 公開的步驟至少包含: 將關於耦接該固態儲存裝置到一電腦系統的一匯流排 之特定組態資訊公開。
    9. 一種具有電腦可執行指令的電腦可讀媒體(102、108、 110、112、15〇)’該等指令係用於執行一種對一固態餘存 裝置存取的方法(400) ’該方法至少包含下列步驟: 促進作業系統和資料存取請求者(4 1 0)之間的統一化 資料存取請求通訊,該統一化資料存取請求通訊被是經由 提取關於多數個不同種類之固態存取裝置的本質資訊而被 促進; 在該做作業系統(420)中接收一資料存取請求;以及 利用關於該等多數個不同種類的固態儲存裝置共通功 能的被提取資訊,以致能從該作業系統到該等多數個不同 種類的固態儲存裝置(43 〇)其中之一固態儲存裝置間之資 料存取請求的通訊,使得該作業系統能以統一化的方式, 支援對該等多數個不同種類的儲存裝置之存取。 10·如申請專利範圍第9項所述之電腦可讀媒體(1〇2,1〇8, 110,112,150)’更包含電腦可執行指令,其係用於: 36 200846906 為了讓該固態儲存裝置能夠與一電腦系統的匯流排耦 接之目的’而將該固態儲存裝置之一介面特徵公開。 η·如申請專利範圍第9項所述之電腦可讀媒體(102,1〇8, 110, 112, 150) ’其中用於促進作業系統和資料存取請求者 (4 1 0)之間的統一化資料存取請求通訊的該電腦可執行指 令’至少包合了進行下列步驟之電腦可執行指令: # 將該固態儲存裴置的一固定性質公開。 12·如申請專利範圍第9項所述之電腦可讀媒體(102,108, 110’ 112’ 15 0),其中用於促進作業系統和資料存取請求 者(4 1 0)之間的統—化資料存取請求通訊的該電腦可執行 才曰7 至 > 包含了進行下列步驟之電腦可執行指令: 將該固態儲存裝置的一可移除性質公開。 • 13·如申請專利範圍第9項所述之電腦可讀媒體(1〇2,108, 11 〇 ’ 11 2,1 5 0 ),其中用於促進作業系統和資料存取請求 者(4 1 0)之間的統_化資料存取請求通訊的該電腦可執行 指令’至少包含了進行下列步驟之電腦可執行指令: 促進從該固態儲存裝置啟動一電腦系統。 14·如申請專利範圍第9項所述之電腦可讀媒體(1〇2,108, 110’ 112,15 0),其中利用關於該等多數個不同種類的固 37 200846906 態儲存裝置(430)共通功能之被提取資訊的該電腦可執行 指令,至少包含了進行下列步驟之電腦可執行指令: 定義一共同通訊協定,以用於統一化地存取該等多數 個不同種類的固態儲存裝置。 15.—關聯於作業系統(122)的儲存堆疊(200),該儲存堆疊 (200)至少包含: 一檔案系統(221,222,223,224); 一容量管理員(23 1,232,233),其被通訊性地耦接到該 檔案系統(221,222,223,224); 一分割區管理員(240),其被通訊性地耦接到該容量管 理貝(231,232,233);以及 一固態儲存類別驅動程式(254),其被通訊性地耦接到 該刀割區g理員(240),該固態儲存類別驅動程式(254)被 汉置成此為經由該作業系統而對多數個不同種類的固態儲 存裝置供統一化存取的支援。 1申月專利範圍第1 5項所述之儲存堆疊(200),其中該 固態錯存類別驅動程式(254)至少包含關於固定^固態儲 存裝置本貝特徵的被提取資,以及關於可移除式固態 儲存裝置之本質特徵的被提取資訊。 1 7 ·如申請專利範 圍第15項所述之儲存堆 疊(200)更包含: 38 200846906 一固態儲存埠驅動程式(264),复後a )其係破通訊性地耦接到 該固悲儲存類別驅動程式(254),該固_ 、 健存埠驅動程式對 該等多數個不同種類的固態儲存裝 從供共通功能之一 提取。 18. 如申請專利範圍第項所述之错存堆疊(2〇〇),其中該 固態儲存埠驅動程式(264)定義一共同通訊定,以用該作業 系統統一化地存取該等多數個不同種類的固態儲存裝置。 19. 如申請專利範圍第17項所述之儲存堆疊(2〇〇),更包含: 一固態健存逑你埠驅動程式(265),其被通訊性地耦接 到該固態儲存埠驅動程式(264),該迷你埠驅動程式(265) 將該等多數個不同種類的固癌健存裝置之其中一固態儲存 裝置的一獨有特徵公開。
    20·如申請專利範圍第19項所述之儲存堆疊(200)更包含: 一固態儲存匯流排驅動程式(275,276),其被通訊性地 耦接到該固態儲存埠驅動程式(264),該固態儲存匯流排驅 動程式(275,276)將該多數個不同種類的固態儲存裝置其 中之一固態儲存裝置的一介面特徵公開。 39
TW097107866A 2007-03-13 2008-03-06 Unified support for solid state storage TW200846906A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/717,457 US20080229046A1 (en) 2007-03-13 2007-03-13 Unified support for solid state storage

Publications (1)

Publication Number Publication Date
TW200846906A true TW200846906A (en) 2008-12-01

Family

ID=39759956

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097107866A TW200846906A (en) 2007-03-13 2008-03-06 Unified support for solid state storage

Country Status (5)

Country Link
US (1) US20080229046A1 (zh)
EP (1) EP2122471A1 (zh)
CN (1) CN101657801A (zh)
TW (1) TW200846906A (zh)
WO (1) WO2008112668A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101689131B (zh) 2006-12-06 2013-03-20 弗森-艾奥公司 用于共享的、前端、分布式raid的装置、系统和方法
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
CN102696010B (zh) * 2009-09-08 2016-03-23 才智知识产权控股公司(2) 用于将数据高速缓存在固态存储设备上的装置、系统和方法
WO2012092347A2 (en) * 2010-12-28 2012-07-05 Digital Storage Solutions, Inc. System for writing and dispensing solid-state storage devices
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US10552385B2 (en) 2012-05-20 2020-02-04 Microsoft Technology Licensing, Llc System and methods for implementing a server-based hierarchical mass storage system
CN102760061B (zh) * 2012-06-11 2016-01-13 记忆科技(深圳)有限公司 屏蔽固态硬盘存储接口差异的方法及存储系统
US9229640B2 (en) * 2013-11-15 2016-01-05 Microsoft Technology Licensing, Llc Inexpensive solid-state storage by throttling write speed in accordance with empirically derived write policy table
US10417147B2 (en) * 2016-08-12 2019-09-17 Nxp B.V. Buffer device, an electronic system, and a method for operating a buffer device
FR3159686A1 (fr) * 2024-02-27 2025-08-29 Stmicroelectronics International N.V. Système informatique comprenant un microcontrôleur utilisant une mémoire externe

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5199033A (en) * 1990-05-10 1993-03-30 Quantum Corporation Solid state memory array using address block bit substitution to compensate for non-functional storage cells
US5430859A (en) * 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US5809303A (en) * 1995-10-18 1998-09-15 Sun Microsystems, Inc. Device I/O monitoring mechanism for a computer operating system
US6754828B1 (en) * 1999-07-13 2004-06-22 Intel Corporation Algorithm for non-volatile memory updates
US6622260B1 (en) * 1999-12-30 2003-09-16 Suresh Marisetty System abstraction layer, processor abstraction layer, and operating system error handling
US6671802B1 (en) * 2000-04-13 2003-12-30 Hewlett-Packard Development Company, L.P. Performance optimization of computer system by dynamically and immediately updating a configuration setting based on detected change in preferred use
US6915524B2 (en) * 2001-04-06 2005-07-05 International Business Machines Corporation Method for controlling multiple storage devices from a single software entity
US6907482B2 (en) * 2001-12-13 2005-06-14 Microsoft Corporation Universal graphic adapter for interfacing with hardware and means for encapsulating and abstracting details of the hardware
US20030229745A1 (en) * 2002-06-07 2003-12-11 Hsuan-Ming Shih Driver for non-volatile solid-state memory
US7082495B2 (en) * 2002-06-27 2006-07-25 Microsoft Corporation Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory
US7277978B2 (en) * 2003-09-16 2007-10-02 Micron Technology, Inc. Runtime flash device detection and configuration for flash data management software
US8888600B2 (en) * 2004-08-25 2014-11-18 Igt Emulation methods and devices for a gaming machine
US7581229B2 (en) * 2005-03-11 2009-08-25 Microsoft Corporation Systems and methods for supporting device access from multiple operating systems
US7568056B2 (en) * 2005-03-28 2009-07-28 Nvidia Corporation Host bus adapter that interfaces with host computer bus to multiple types of storage devices
US7392172B2 (en) * 2005-04-28 2008-06-24 Hewlett-Packard Development Company, L.P. Providing virtual device access via firmware

Also Published As

Publication number Publication date
US20080229046A1 (en) 2008-09-18
WO2008112668A1 (en) 2008-09-18
EP2122471A1 (en) 2009-11-25
CN101657801A (zh) 2010-02-24

Similar Documents

Publication Publication Date Title
TW200846906A (en) Unified support for solid state storage
EP1650665B1 (en) File management method and information processing device
US8370402B2 (en) Dual representation of stored digital content
EP2538337B1 (en) Command resequencing in memory operations
TWI477967B (zh) 用以實現gpu加速位址轉換之系統及方法以及圖形處理器
CN101958918B (zh) 具有文件夹分享功能的虚拟媒体及方法
KR100820263B1 (ko) 메모리기기에서 데이터를 액세스하기 위한 시스템 및 방법
TW201145022A (en) Virtualization of storage devices
TWI835837B (zh) 多裝置的配對系統及配對方法
EP3989052B1 (en) Method of operating storage device and method of operating storage system using the same
CN113282234A (zh) 存储装置、存储系统、及其操作方法
TW200937198A (en) Storage device having direct user access
CN111796759B (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
US20210173561A1 (en) Self-formatting data storage device
TW201040727A (en) Host controller
CN114371812B (zh) 控制器及其操作方法
CN115080457A (zh) 控制器及其操作方法
CN101799785B (zh) 信息处理设备、信息处理方法和程序
US7546307B2 (en) Virtual block storage to filesystem translator
JP2009518698A (ja) 改良されたホストインターフェイス
TW432281B (en) Method and system for reducing processor workload by using memory-remapping technique
TWI238964B (en) Card reader, and bridge controller and data transaction method thereof
KR20240085876A (ko) 데이터 저장 방법 및 데이터 저장 장치
TWI407327B (zh) 資料處理方法、系統及儲存裝置控制器
CN104298469A (zh) 存储设备配置装置和存储设备配置方法