JP5149912B2 - 複数の異種のソリッドステート・ストレージ・ロケーションの選択的利用 - Google Patents

複数の異種のソリッドステート・ストレージ・ロケーションの選択的利用 Download PDF

Info

Publication number
JP5149912B2
JP5149912B2 JP2009552886A JP2009552886A JP5149912B2 JP 5149912 B2 JP5149912 B2 JP 5149912B2 JP 2009552886 A JP2009552886 A JP 2009552886A JP 2009552886 A JP2009552886 A JP 2009552886A JP 5149912 B2 JP5149912 B2 JP 5149912B2
Authority
JP
Japan
Prior art keywords
state storage
solid state
data
different solid
storage locations
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2009552886A
Other languages
English (en)
Other versions
JP2010520568A (ja
JP2010520568A5 (ja
Inventor
ラシボルスキ,ボーダン
ドキア,ディレシュ
サレーン,ブリグ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=39738794&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP5149912(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010520568A publication Critical patent/JP2010520568A/ja
Publication of JP2010520568A5 publication Critical patent/JP2010520568A5/ja
Application granted granted Critical
Publication of JP5149912B2 publication Critical patent/JP5149912B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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]

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)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Description

SSD(ソリッドステートドライブ)は、不揮発性メモリーを使用してデータを格納し、従来のハードディスクドライブに見られる回転する円盤を含まないデータ・ストレージ・デバイスである。SSDは、動く部品を全く有さず、極度の衝撃、振動、および温度変化に耐えることができるので、SSDは、従来のハードディスクドライブに関連するシークタイム、待ち時間、ならびにその他の電気機械的な遅延および障害を解消する。これらの属性の結果、SSDは、企業向けのノートブックPCおよびサブノートブック、ウルトラモバイルPC、ならびに医療セクタ向け、および家庭用電子機器セクタ向けのタブレットPCなどの市場においてますます普及している。
しかし、SSDを利用することに関する技術の現状には多くの限界が存在する。例えば、SSDのストレージ当たりの費用比率は、円盤ベースのハードドライブのストレージ当たりの費用比率と比べて、相当に高止まりしている。
さらに、従来のハードドライブに取って代わるのに十分な書き込み速度を有する、64ギガバイトを超える大容量SSDを提供する企業は、ほんの一握りしか存在しない。しかし、これらのドライブでさえ、数量が限られ、非常に高価であり、さらに特別な要求によってしか入手可能でない。その結果、SSDは、主流の消費者市場の外で価格設定されており、さらに数量が非常に限られている。
この発明の概要は、詳細な説明において後段でさらに説明される選定された概念を、簡略化された形態で紹介するように与えられる。この発明の概要は、特許請求される主題の重要な特徴、または不可欠な特徴を特定することを意図しておらず、特許請求される主題の範囲を確定する助けとして使用されることも意図していない。
複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための方法が、開示される。この技術は、最初に、複数の異種のソリッドステート・ストレージ・ロケーションに関するクラスタイプを受け取る。この受け取られたデータの特性が、決定される。この受け取られたデータは、次に、この決定された特性に基づいて、その複数の異種のソリッドステート・ストレージ・ロケーションの1つに割り当てられる。
本技術は、異種のタイプのソリッドステート・ロケーションの集合が、そのソリッドステート・ロケーション・メモリー・タイプに対応するデータを受け取ることを可能にして、メモリーのストレージ当たりの費用比率を最終的に低くする。さらに、これらの異種のタイプのソリッドステート・ロケーションを組み込むことは、SDDが、オペレーティングシステムをサポートすることを可能にする。また、本技術は、コンピューター上の既存のファイルが、使用されるメモリー空間の、より低いストレージ当たりの費用比率をもたらすように再配置されることも可能にする。このため、本技術は、メモリーのストレージ当たりの費用比率を低減すること、ならびにハードディスクドライブをSSDで置き換えることを可能にする。
本明細書に組み込まれ、本明細書の一部を成す添付の図面は、複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための技術の実施形態を示し、さらに、説明とともに、後述の原理を説明する役割をする。
複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための本技術の実施形態に従って使用される例示的なコンピューターシステムを示す図である。 本技術の一実施形態によるオペレーティングシステムに関連するメモリーを割り当てるための例示的なソリッドステート割り当てモジュールを示すブロック図である。 本技術の一実施形態によるオペレーティングシステムに関連するメモリーを割り当てるための例示的なソリッドステート割り当てモジュールを示すブロック図である。 本技術の一実施形態による複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための例示的な方法を示す流れ図である。 本技術の一実施形態による複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための実施例を示す流れ図である。
この説明において参照される図面は、特に明記される場合を除き、一律の縮尺に従わずに描かれているものと理解されたい。
次に、添付の図面に実施例が示される、複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための本技術の実施形態を詳細に参照する。複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための技術は、様々な実施形態に関連して説明されるが、これらの実施形態は、複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための本技術を、これらの実施形態に限定することは意図していないことが理解されよう。それどころか、複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための本技術は、添付の特許請求の範囲によって規定される様々な実施形態の趣旨と範囲に含まれることが可能な代替形態、変形形態、および均等形態を範囲に含むものとされる。
さらに、以下の詳細な説明において、複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための本技術の徹底的な理解をもたらすために、多数の特定の詳細が示される。しかし、複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための本技術は、これらの特定の詳細なしに実施されることも可能である。その他、よく知られた方法、手続き、構成要素、および回路は、本実施形態の態様を不必要に不明瞭にしないよう、詳細に説明されてはいない。
特に明記しない限り、以下の説明から明白なとおり、この詳細な説明の全体にわたって、「受け取ること」、「決定すること」、「割り当てること」、「エミュレートすること」、「サポートすること」、「分類すること」、「アクセスすること」、「動かすこと」、「利用すること」、「ルーティングすること」、「再配置すること」などの用語を利用する説明は、コンピューターシステム、または類似した電子コンピューティングデバイスのアクションおよびプロセスを指すものと理解される。このコンピューターシステム、または類似した電子コンピューティングデバイスは、コンピューターシステムのレジスタ内およびメモリー内の物理的(電子的)量として表されたデータを操作して、コンピューターシステムメモリ内もしくはコンピューターシステムレジスタ内、あるいは他のそのような情報記憶デバイス、情報伝送デバイス、または情報表示デバイスの内部の物理的量として同様に表された他のデータに変換する。複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための本技術は、例えば、光コンピューターおよび機械コンピューターなどの他のコンピューターシステムの使用にもよく適している。
(例示的なコンピューターシステム環境)
次に図1を参照すると、複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための技術のいくつかの部分は、例えば、コンピューターシステムのコンピューターが使用できる媒体の中に存在するコンピューター可読命令およびコンピューター実行可能命令から成る。つまり、図1は、複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための本技術の、後段で説明される、実施形態を実施するのに使用されることが可能なタイプのコンピューターの一例を示す。
図1は、複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための本技術の実施形態に従って使用される例示的なコンピューターシステム100を示す。図1のシステム100は、一例に過ぎず、複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための本技術は、汎用のネットワーク化されたコンピューターシステム、組み込み型コンピューターシステム、ルーター、スイッチ、サーバーデバイス、家庭用デバイス、様々な中間デバイス/人工物、スタンドアロンのコンピューターシステムなどを含む、いくつかの異なるコンピューターシステム上、またはそのようなシステム内で動作することが可能であるものと理解される。図1に示されるとおり、図1のコンピューターシステム100は、例えば、システム100に結合されたフロッピー(登録商標)ディスク、コンパクトディスクなどの周辺コンピューター可読媒体102を有することによく適している。
図1のシステム100は、情報を通信するためのアドレス/データバス104、および情報および命令を処理するためにバス104に結合されたプロセッサー106Aを含む。図1に示されるとおり、システム100は、複数のプロセッサー106A、106B、および106Cが存在するマルチプロセッサー環境にもよく適している。逆に、システム100は、例えば、プロセッサー106Aなどの単一のプロセッサーを有することにもよく適している。プロセッサー106A、106B、および106Cは、様々なタイプのマイクロプロセッサーのいずれであってもよい。また、システム100は、プロセッサー106A、106B、および106Cのための情報および命令を格納するためにバス104に結合された、コンピューターが使用できる揮発性メモリー108、例えば、RAM(ランダムアクセスメモリー)などのデータストレージフィーチャーも含む。
また、システム100は、プロセッサー106A、106B、および106Cのための静的な情報および命令を格納するためにバス104に結合された、コンピューターが使用できる不揮発性メモリー110、例えば、ROM(読み取り専用メモリー)も含む。やはりシステム100内に存在するのが、情報および命令を格納するためにバス104に結合されたデータストレージユニット112(例えば、磁気ディスクおよび磁気ディスクドライブ、または光ディスクおよび光ディスクドライブ)である。また、システム100は、情報およびコマンド選択をプロセッサー106Aに、またはプロセッサー106A、106B、および106Cに通信するためにバス104に結合された、英数字キーおよびファンクションキーを含むオプションの英数字入力デバイス114も含む。また、システム100は、ユーザーによって入力された情報およびコマンド選択をプロセッサー106Aに、またはプロセッサー106A、106B、および106Cに通信するためにバス104に結合されたオプションのカーソル制御デバイス116も含む。また、本実施形態のシステム100は、情報を表示するためにバス104に結合されたオプションのディスプレイデバイス118も含む。
やはり図1を参照すると、図1のオプションのディスプレイデバイス118は、液晶ディスプレイ、陰極線管、プラズマディスプレイデバイス、またはユーザーに認識可能なグラフィックイメージおよび英数字を作成するのに適した他のディスプレイデバイスであることが可能である。オプションのカーソル制御デバイス116は、コンピューターユーザーが、ディスプレイデバイス118の表示スクリーン上で目に見えるシンボル(カーソル)の動きを動的に伝達することを可能にする。トラックボール、マウス、タッチパッド、ジョイスティック、あるいは所与の方向、または所与の変位の仕方の動きを伝達することができる英数字入力デバイス114上の特殊キーを含め、カーソル制御デバイス116の多くの実施形態が、当技術分野において知られている。代替として、カーソルは、特殊キーおよびキー・シーケンス・コマンドを使用する英数字入力デバイス114からの入力を介して導かれ、さらに/または活性化され得ることが理解されよう。
また、システム100は、例えば、音声コマンドなどの他の手段によって導かれるカーソルを有することにもよく適している。また、システム100は、システム100を外部エンティティーに結合するための入出力デバイス120も含む。例えば、一実施形態では、入出力デバイス120は、システム100と、インターネットなどの、ただし、インターネットには限定されない外部ネットワークとの間で有線通信または無線通信を可能にするためのモデムである。複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための本技術のより詳細な説明が、後段で見られる。
やはり図1を参照すると、システム100に関する他の様々な構成要素が示されている。具体的には、存在する場合、オペレーティングシステム122、アプリケーション124、モジュール126、およびデータ128が、通常、コンピューターが使用できる揮発性メモリー108、例えば、RAM(ランダムアクセスメモリー)とデータストレージユニット122のいずれか、または何らかの組み合わせの中に存在するものとして示される。しかし、一部の実施形態では、オペレーティングシステム122は、ネットワーク上、またはフラッシュドライブ上などの他のロケーションに格納されることが可能であること、さらにオペレーティングシステム122は、例えば、インターネットへの結合を介して遠隔ロケーションからアクセスされることが可能であることが理解される。一実施形態では、複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための本技術は、例えば、RAM108内部のメモリーロケーション、およびデータストレージユニット112内部のメモリー領域にアプリケーション124またはモジュール126として格納される。
また、システム100は、オペレーティングシステム122に結合されたソリッドステート割り当てモジュール130も含む。一実施形態では、ソリッドステート割り当てモジュール130は、オペレーティングシステム122内に組み込まれることが可能であるが、別の実施形態では、ソリッドステート割り当てモジュール130は、オペレーティングシステムと通信するように結合されて、オペレーティングシステムの外部にあることが可能である。さらに別の実施形態では、ソリッドステート割り当てモジュール130は、フラッシュメモリーデバイスである。
コンピューティングシステム100は、適切なコンピューティング環境の一例に過ぎず、本技術の用法または機能の範囲について何ら限界を示唆することは意図していない。また、コンピューティング環境100が、例示的なコンピューティングシステム100に示される構成要素のいずれか1つの構成要素または構成要素の組み合わせと関係する依存関係または要件を有すると解釈されるべきでもない。
本技術は、コンピューターによって実行される、プログラムモジュールなどのコンピューター実行可能命令の一般的な文脈で説明されることが可能である。一般に、プログラムモジュールには、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。また、本技術は、通信ネットワークを介してリンクされた遠隔処理デバイスによってタスクが実行される分散コンピューティング環境において実施されることも可能である。分散コンピューティング環境では、プログラムモジュールは、メモリー・ストレージ・デバイスを含むローカルのコンピューター記憶媒体と遠隔のコンピューター記憶媒体の両方の中に配置されることが可能である。
(概要)
概要として、一実施形態では、本技術は、複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するための方法を提供し、したがって、ソリッドステート割り当てモジュールは、低いストレージ当たりの費用比率を可能にする。例えば、オペレーティングシステムが、ソリッドステート割り当てモジュールのクラスタイプ・レシーバーに、それぞれの異種のソリッドステート・ストレージ・ロケーションが、どのような種類のデータを保持することを選好するかを記述するクラスタイプを送る。また、オペレーティングシステムは、ソリッドステート割り当てモジュールの受け取りデータ特性ディターミナーに、入力/出力操作に関連するデータを送信する。
次に、受け取りデータ特性ディターミナーが、受け取られたデータがいずれのソリッドステート・ストレージ・ロケーションに属するかを決定する。次に、受け取りデータ特性ディターミナーは、この決定を、ソリッドステート割り当てモジュールの異種ソリッドステート・ストレージ・ロケーション・アロケーターに伝える。次に、異種ソリッドステート・ストレージ・ロケーション・アロケーターが、受け取りデータ特性ディターミナーの命令に従って、受け取られたデータを異種のソリッドステート・ストレージ・ロケーションに割り当てる。
一実施形態では、オペレーティングシステムは、ソリッドステート割り当てモジュールと通信するように結合されるが、別の実施形態は、ソリッドステート割り当てモジュールが、オペレーティングシステム内に完全に組み込まれることを可能にする。さらに、別の実施形態では、ソリッドステート割り当てモジュールは、異種のソリッドステート・ストレージ・ロケーションと通信するように結合される一方で、リムーバブルなスマートカードなどの単一のユニット内に組み込まれてもいる。別の実施形態では、ソリッドステート割り当てモジュールは、異種のソリッドステート・ストレージ・ロケーションの外部にあり、異種のソリッドステート・ストレージ・ロケーションと通信するように結合される。さらに、組み込まれた異種ソリッドステート・ストレージ・ロケーション・アロケーターを有するソリッドステート割り当てモジュールが無い状態で、一実施形態では、オペレーティングシステムが、類似した機能を実行することができる。
一実施形態では、ソリッドステート・ストレージ・ロケーションは、ハードディスクドライブをエミュレートする。別の実施形態では、ソリッドステート・ストレージ・ロケーションは、少なくとも1つのフラッシュメモリー・ストレージ・ロケーションを含む。
要するに、本技術の実施形態は、複数の異種のソリッドステート・ストレージ・ロケーションの各ロケーションに関するクラスタイプを受け取るクラスタイプ・レシーバーと、この受け取られたデータの特性を決定する受け取りデータ特性ディターミナーと、この受け取られたデータの特性に基づいて、その複数の異種のソリッドステート・ストレージ・ロケーションの1つに、この受け取られたデータを割り当てる異種ソリッドステート・ストレージ・ロケーション・アロケーターとを含む、複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するためのコンピューターによって実施される方法を提供する。ソリッドステート割り当てモジュールに結合された複数の異種のソリッドステート・ストレージ・ロケーションを使用することにより、本技術は、データの低いストレージ当たりの費用比率を可能にする。
(アーキテクチャ)
次に図2Aを参照すると、本技術の一実施形態による、オペレーティングシステムに関連するメモリーを割り当てるための例示的なソリッドステート割り当てモジュールのブロック図が、示されている。一般に、オペレーティングシステム200に関連するメモリーを割り当てるためのソリッドステート割り当てモジュールは、クラスタイプ・レシーバー210と、受け取りデータ特性ディターミナー220と、異種ソリッドステート・ストレージ・ロケーション・アロケーター230とを含み、以上すべては、ソリッドステート・ストレージ・ロケーションA240、ソリッドステート・ストレージ・ロケーションB245、ソリッドステート・ストレージ・ロケーションC250、およびソリッドステート・ストレージ・ロケーションn...255と通信するように結合される。
さらに、線205は、オペレーティングシステム200からクラスタイプ・レシーバー210に送られるデータの経路を表す。線225は、オペレーティングシステム200から受け取りデータ特性ディターミナー220に送られるデータの特性を記述する情報の経路を表す。線235は、ソリッドステート・ストレージ・ロケーション・アロケーター230から異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255に送られるデータの経路を表す。さらに、経路205、225、および235は、有線または無線を含むいくつかの仕方で、様々な構成要素を接続することが可能である。
一実施形態では、経路205上でクラスタイプ・レシーバー210は、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255のクラスタイプを受け取るように構成される。クラスタイプ・レシーバー210は、各ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255がどのような種類のデータを保持するかを記述するクラスタイプ・データを受け取る。ソリッドステート・ストレージ・ロケーションn...255は、ソリッドステート・ストレージ・ロケーションA240、B245、およびC250のロケーションの他の、所定の数の異種のソリッドステート・ストレージ・ロケーションを表す。
例えば、ソリッドステート・ストレージ・ロケーションA240は、1回、書き込まれ、稀にしか読み取られないデータを保持し、ソリッドステート・ストレージ・ロケーションB245は、稀にしか書き込まれず、頻繁に読み取られるデータを保持し、さらにソリッドステート・ストレージ・ロケーションC250は、頻繁に書き込まれ、頻繁に読み取られるデータを保持する。さらに、ソリッドステート・ストレージ・ロケーションn...255は、さらに2つのソリッドステート・ストレージ・デバイス、DおよびEというデバイスを表す。ソリッドステート・ストレージ・デバイスDは、稀にしか書き込まれず、稀にしか読み取られないデータを保持し、さらにソリッドステート・ストレージ・デバイスEは、かなり頻繁に書き込まれ、かなり頻繁に読み取られるデータを保持する。ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255が保持するデータのタイプは、クラスタイプとして表現される。
別の実施形態では、クラスタイプ・レシーバー210が、2つだけの異種のソリッドステート・ストレージ・ロケーションA240およびB245に関するクラスタイプを受け取るように構成される。ソリッドステート・ストレージ・ロケーションA240は、1回、書き込まれ、稀にしか読み取られないデータを保持し、ソリッドステート・ストレージ・ロケーションB245は、稀にしか書き込まれず、稀にしか読み取られないデータを保持する。ソリッドステート・ストレージ・ロケーションA240およびB245が保持するデータのタイプは、クラスタイプとして表現される。
さらなる一例では、クラスタイプ・レシーバー210が、3つだけの異種のソリッドステート・ストレージ・ロケーションA240、B245、およびC250に関するクラスタイプを受け取るように構成される。ソリッドステート・ストレージ・ロケーションA240は、1回、書き込まれ、稀にしか読み取られないデータを保持し、ソリッドステート・ストレージ・ロケーションB245は、稀にしか書き込まれず、頻繁に読み取られるデータを保持し、さらにソリッドステート・ストレージ・ロケーションC250は、頻繁に書き込まれ、頻繁に読み取られるデータを保持する。ソリッドステート・ストレージ・ロケーションA240、B245、およびC250が保持するデータのタイプは、クラスタイプとして表現される。
一実施形態では、受け取りデータ特性ディターミナー220は、オペレーティングシステム200から受け取られたデータの特性を決定するように構成される。受け取りデータ特性ディターミナー220によってオペレーティングシステム200から受け取られるデータは、入力/出力操作のタイプに関連する。例えば、データは、入力/出力操作のタイプに基づいて、以下のクラスに分類されることが可能である。すなわち、(1)1回、書き込まれ、書き込みの後、読み取り専用、(2)稀にしか書き込まれず、頻繁に読み取られる、および(3)頻繁に書き込まれ、頻繁に読み取られる、である。
1回、書き込まれ、書き込みの後、読み取り専用であるデータの例には、オペレーティングシステム・ファイルおよびアプリケーション・バイナリ・ファイルが含まれる。稀にしか書き込まれず、頻繁に読み取られるデータの例には、ユーザーデータ、設定、ワードファイル、データスプレッドシート、およびアドレス帳が含まれる。頻繁に書き込まれ、頻繁に読み取られるデータの例には、オペレーティングシステム・ページ・ファイル、オペレーティングシステム・ファイル、レジストリ、ログ、およびキャッシュが含まれる。
受け取りデータ特性ディターミナー220は、経路225上から入力/出力操作に関連するデータの様々なタイプの組み合わせを受け取ることが可能である。例えば、一実施形態では、受け取りデータ特性ディターミナー220は次いで、1回、書き込み、書き込みの後、読み取り専用であることを要求する入力/出力操作に関連するデータ、および頻繁に書き込み、頻繁に読み取ることを要求する入力/出力操作に関連するデータを受け取る。別の実施形態では、受け取りデータ特性ディターミナー220は、稀にしか書き込まず、頻繁に読み取ることを要求する入力/出力操作に関連するデータ、および頻繁に書き込み、頻繁に読み取ることを要求する入力/出力操作に関連するデータを受け取る。
例えば、以下のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255の少なくとも2つに関するクラスタイプ、ならびにオペレーティングシステム200からの入力/出力操作に関連するデータを受け取った後、受け取りデータ特性ディターミナー220は次いで、入力/出力操作に関連する受け取られたデータを、いずれのソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255に入れるかを決定する。この決定は、各ソリッドステート・ストレージ・ロケーションのクラスタイプと互いに関係する、オペレーティングシステム200からの受け取られたデータに基づく。次に、受け取りデータ特性ディターミナー220は、この決定を異種ソリッドステート・ストレージ・ロケーション・アロケーター230に伝える。
一実施形態では、異種ソリッドステート・ストレージ・ロケーション・アロケーター230が、受け取られたデータの特性に基づいて、複数の異種のソリッドステート・ストレージ・ロケーションの1つに、オペレーティングシステム200から受け取られたデータを割り当てるように構成される。異種ソリッドステート・ストレージ・ロケーション・アロケーター230は、この受け取られたデータを、経路225に沿って、以下のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255の少なくとも2つに送る。
本技術において、クラスタイプ・レシーバー210、受け取りデータ特性ディターミナー220、および異種ソリッドステート・ストレージ・ロケーション・アロケーター230が、或るモジュール内部で組み合わされて、ただし、ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255を含む別個のモジュールと通信するように結合されて現れるようにすることが可能である。さらに、本技術の別の例は、クラスタイプ・レシーバー210、受け取りデータ特性ディターミナー220、および異種ソリッドステート・ストレージ・ロケーション・アロケーター230が、互いに通信するように結合されているが、別々のモジュールの中に存在している一方で、それでも、ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255と通信するように結合されているようにすることが可能である。
一実施形態では、異種ソリッドステート・ストレージ・ロケーション・アロケーター230が、他のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255に加え、フラッシュメモリー・ストレージ・モジュールに、受け取られたデータを割り当てる。さらに別の実施形態では、異種ソリッドステート・ストレージ・ロケーション・アロケーター230が、ハードディスクドライブ・エミュレーターであるフラッシュメモリー・ストレージ・モジュールに、受け取られたデータを割り当てる。
本技術の実施例において、ソリッドステート割り当てモジュール215が、単一のストレージ・ロケーション260上で組み合わされるように、ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255と通信するように結合される。この単一のストレージ・ロケーションは、リムーバブルなカードであることが可能である。コンピューターチップが、このリムーバブルなカード内に組み込まれる。このコンピューターチップは、ソリッドステート割り当てモジュール215と異種ソリッドステート・ストレージ・ロケーション・アロケーター230の組み合わせを含む。このリムーバブルなカードの挿入は、ユーザーが、コンピューターデバイスの中に、ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255と通信するように結合されたソリッドステート割り当てモジュール215を挿入することを可能にする。リムーバブルなカードが挿入されると、ソリッドステート割り当てモジュール215は、コンピューターデバイスのオペレーティングシステム200と通信するように結合されているようになる。
次に図2Bを参照すると、本技術の一実施形態による、オペレーティングシステム200に関連するメモリーを割り当てるための例示的なソリッドステート割り当てモジュールのブロック図が、示されている。一般に、オペレーティングシステム200に関連するメモリーを割り当てるためのソリッドステート割り当てモジュールは、クラスタイプ・レシーバー210、受け取りデータ特性ディターミナー220、異種ソリッドステート・ストレージ・ロケーション・アロケーター230、ソリッドステート・ストレージ・ロケーションA240、ソリッドステート・ストレージ・ロケーションB245、ソリッド・ストレージ・ロケーションC250、およびソリッドステート・ストレージ・ロケーションn...255を含む。
さらに、線235は、ソリッドステート・ストレージ・ロケーション・アロケーター230から異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255に送られるデータの経路を表す。さらに、経路235は、有線または無線を含むいくつかの仕方で、異種ソリッドステート・ストレージ・ロケーション・アロケーター230をソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255に接続することが可能である。
一実施形態では、ソリッドステート割り当てモジュール215は、オペレーティングシステム200内に組み込まれるが、ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255と通信するように外部から結合される。さらに、異種ソリッドステート・ストレージ・ロケーション・アロケーター230が、ソリッドステート割り当てモジュール220内で実施され、組み込まれること、またはオペレーティングシステム200の一部としてソフトウェアで実施されることが可能である。さらに、ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255は、オペレーティングシステム200に外部から結合される。
(動作)
次に図3を参照すると、本技術の一実施形態による、複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用するためのコンピューターによって実施される例示的な方法の流れ図300が、示されている。
次に図3の305、および図2Aを参照すると、一実施形態が、複数の異種のソリッドステート・ストレージ・ロケーションのそれぞれに関するクラスタイプを受け取る。本明細書で説明されるとおり、本技術の別の実施形態では、経路205に沿って送られるクラスタイプが、クラスタイプ・レシーバー210によって受け取られる。一般に、クラスタイプは、各ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255が、どのような種類のデータを保持するかを記述する。ソリッドステート・ストレージ・ロケーションn...255は、ソリッドステート・ストレージ・ロケーションA240、B245、およびC250のロケーションの他の、所定の数の異種のソリッドステート・ストレージ・ロケーションを表す。
本技術の一実施形態は、オペレーティングシステム200を利用してクラスタイプを決定することによって、複数の異種のソリッドステート・ストレージ・ロケーションに関するクラスタイプを受け取る(305)。オペレーティングシステム200が、ソリッドステート割り当てモジュール215と通信するように結合され、モジュール215の外部にあることが可能であり、あるいはソリッドステート割り当てモジュール215が、オペレーティングシステム200内に組み込まれることが可能である。次に、クラスタイプ・レシーバー210が、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255の各ロケーションのクラスタイプを受け取りデータ特性ディターミナー220に伝える。
次に図3の310、および図2Aを参照すると、一実施形態が、受け取られたデータの特性を決定する(310)。本明細書で説明されるとおり、本技術の別の実施形態では、受け取られたデータの特性を決定すること(310)は、入力/出力操作に関連する受け取られたデータを、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255のそれぞれに関するクラスタイプに対応する少なくとも1つのクラスに分類することを含む。入力/出力操作に関連する、この受け取られたデータは、オペレーティングシステム200から経路225に沿って受け取りデータ特性ディターミナー220に送られた。さらに、受け取りデータ特性ディターミナー220が、ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255への、この受け取られたデータの割り当てを決定した後、受け取りデータ特性ディターミナー220は、この決定を異種のソリッドステート・ストレージ・ロケーション・アロケーター230に通信する。
本技術の別の実施形態では、受け取られたデータの特性を決定すること(310)は、データ重要度特性を利用することを含む。データ重要度特性は、このデータを保持するのにどのようなタイプのメモリーが要求されるかを記述する役割をする、入力/出力操作に関連するデータの態様を含む。例えば、オペレーティングシステム200は、入力/出力操作に関連するデータを、経路225に沿って受け取り特性ディターミナー220に送る。受け取り特性ディターミナー220は、このデータを、以下の特性に従ってグループに分割する。すなわち、(1)1回、書き込まれ、書き込まれた後、読み取り専用であるデータ、(2)稀にしか書き込まれず、頻繁に読み取られるデータ、および(3)頻繁に書き込まれ、頻繁に読み取られるデータである。次に、受け取りデータ特性ディターミナー220は、クラスタイプ・レシーバー210から受け取られたソリッドステート・ストレージ・ロケーションのクラスタイプに基づいて、これらのグループ化された、受け取られたデータのそれぞれが、いずれのソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255に送られるかを決定する。
例えば、オペレーティングシステム200が、ソリッドステート・ストレージ・ロケーションA240は、稀にしか書き込まれず、頻繁に読み取られるデータのためのストレージ・ロケーションであるという情報をクラスタイプ・レシーバー210に送る。オペレーティングシステム200は、ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255のいずれか1つに格納されることが意図される、入力/出力操作に関連するデータを、経路225を介して受け取りデータ特性ディターミナー220に送る。受け取りデータ特性ディターミナー220は、これらの入力/出力操作に関連するデータのタイプを決定する。次に、受け取りデータ特性ディターミナー220は、受け取られたデータの或るパーセンテージが、稀にしか書き込まれず、頻繁に読み取られるデータであることを決定する。次に、データ特性ディターミナー220は、この稀にしか書き込まれず、頻繁に読み取られる受け取られたデータが、ソリッドステート・ストレージ・ロケーションA240に割り当てられるべきことを、このストレージ・ロケーションが、稀にしか書き込まれず、頻繁に読み取られるデータを保持するように構成されているので、決定する。
次に図3の315、および図2Aを参照すると、一実施形態が、受け取りデータ特性ディターミナー220によって決定された特性に基づいて、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255の1つに、受け取られたデータを割り当てる。受け取られたデータは、異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255の少なくとも2つに送られる。
受け取られたデータの特性に基づいて、複数の異種のソリッドステート・ストレージ・ロケーションの1つに、受け取られたデータを割り当てること(315)は、受け取りデータ特性ディターミナー220が、ファイルの属性にアクセスした後、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255の1つから、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255の別の1つにファイルを移すことを含み、このファイルは、このファイルの前記属性に基づいて、複数の異種のソリッドステート・ストレージ・ロケーションの1つに格納される。ファイルの属性には、コンピューターの使用中にファイルにどれだけ頻繁にアクセスが行われたか、本日の操作に、このファイルがどれだけ重要であるか、このファイルのサイズなどのデータ、ならびに入力/出力操作に関連するデータが含まれる。
一般に、受け取りデータ特性ディターミナー220は、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255内に格納されたデータの属性を監視する能力を有する。受け取りデータ特性ディターミナー220が、ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255の1つに格納されたファイルにアクセスし、そのファイルの属性が、ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255の異なるロケーションに、そのファイルが移されるようにすることを決定した場合、その際、受け取りデータ特性ディターミナー220は、この決定を異種ソリッドステート・ストレージ・ロケーション・アロケーター230に伝える。
さらに、異種ソリッドステート・ストレージ・ロケーション・アロケーター230が、或るファイルが、ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255の異なるロケーションに移される必要が或るという通信を、受け取りデータ特性ディターミナー220から受け取った後、異種ソリッドステート・ストレージ・ロケーション・アロケーター230は、これらの命令に従う。異種ソリッドステート・ストレージ・ロケーション・アロケーター230は、ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255の中に入り込み、受け取りデータ特性ディターミナー220の命令に従って、それらのファイルを再配置する。
例えば、データファイルが、6ヶ月の期間にわたって読み取られていないものとする。また、受け取りデータ特性ディターミナー220も、このデータファイルが、6ヶ月の期間にわたって読み取られていないことを認識する。また、このファイルは、偶々、稀にしか書き込まれず、頻繁に読み取られるデータを収容するソリッドステート・ストレージ・ロケーションに現在、存在している。このデータファイルは、或る期間にわたって、もはや頻繁に読み取られていないので、受け取りデータ特性ディターミナー220は、稀にしか書き込まれず、稀にしか読み取られないデータを収容するソリッドステート・ストレージ・ロケーションn...255にこのデータファイルを入れることによって、このデータファイルを再配置するよう異種ソリッドステート・ストレージ・ロケーション・アロケーター230に命令する。
さらに、組み込まれたディターミナーを有するソリッドステート割り当てモジュール215が存在しない状態で、一実施形態では、オペレーティングシステム200が、ソリッドステート割り当てモジュール215と同様の機能を実行することが可能である。例えば、オペレーティングシステム200に、2つより多くの不揮発性ソリッドステート・ストレージ・ロケーションn...255が接続されているものとする。その場合、オペレーティングシステム200は、ハードウェアベースの異種ソリッドステート・ストレージ・ロケーション・アロケーター230が決定を行うのと同一の仕方で、いずれのソリッドステート・ストレージ・ロケーションn...255にデータブロックを格納するかの決定を行うことができる。
図3および図2Aを再び参照すると、複数の異種のソリッドステート・ストレージ・ロケーション300を選択的に利用するためのコンピューターによって実施される方法の別の実施形態、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255が、ハードディスクドライブをエミュレートする。一実施形態では、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255は、ハードディスクドライブをエミュレートして、ハードディスクドライブに実質的に取って代わる。別の実施形態では、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255は、ハードディスクドライブの一部分をエミュレートする。
本技術の別の実施例において、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255は、オペレーティングシステム200をサポートする。ソリッドステート割り当てモジュール215が、オペレーティングシステム200と通信するように結合される。別の実施形態では、ソリッドステート割り当てモジュール215が、オペレーティングシステム200内に組み込まれる。また、ソリッドステート割り当てモジュール215は、ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255と通信するように結合される。ソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255は、オペレーティングシステム200のためのメモリー記憶空間の役割をする。
別の実施例において、オペレーティングシステム200をサポートする複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255が、少なくとも1つのフラッシュメモリー・ストレージ・ロケーションを含む。例えば、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255のうち、ソリッドステート・ストレージ・ロケーションA240が、フラッシュメモリー・ストレージ・ロケーションであるのに対して、ソリッドステート・ストレージ・ロケーションB245、C250、およびn...255は、他の何らかのタイプのソリッドステート・ストレージ・ロケーションである。
別の例示的な方法において、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255のすべてが、フラッシュメモリー・ストレージ・ロケーションである。さらに、別の実施例では、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255のうち、ソリッドステート・ストレージ・ロケーションA240およびB245が、フラッシュメモリー・ストレージ・ロケーションであるのに対して、ストレージ・ロケーションC250およびn...255は、他の何らかのタイプのソリッドステート・ストレージ・ロケーションである。
次に図4を参照すると、本技術の一実施形態による、実行された際、複数の異種のソリッドステート・ストレージ・ロケーションを選択的に利用する方法をコンピューターシステムに実行させる、コンピューターが使用できる媒体上の命令の流れ図400が、示されている。
図4の405、および図2Aを参照すると、一実施形態が、複数の異種のソリッドステート・ストレージ・ロケーションに関するクラスタイプを受け取る(405)。複数の異種のソリッドステート・ストレージ・ロケーションに関するクラスタイプを受け取ること(405)は、複数の異種のソリッドステート・ストレージ・ロケーションに関するクラスタイプを受け取ること(305)と同様である。複数の異種のソリッドステート・ストレージ・ロケーションに関するクラスタイプを受け取ること(305)に関するここでの説明は、複数の異種のソリッドステート・ストレージ・ロケーションに関するクラスタイプを受け取ること(405)に当てはまるので、簡明のため、これらの説明は、繰り返されない。
図4の410、および図2Aを参照すると、一実施形態が、複数の異種のソリッドステート・ストレージ・ロケーションのクラスタイプ、および入力/出力操作の受け取られた特性を利用して、ストレージ・ロケーションを選択する(410)。複数の異種のソリッドステート・ストレージ・ロケーションのクラスタイプ、および入力/出力操作の受け取られた特性を利用して、ストレージ・ロケーションを選択すること(410)は、受け取られたデータの特性を決定すること(310)と同様である。受け取られたデータの特性を決定すること(310)に関するここでの説明は、複数の異種のソリッドステート・ストレージ・ロケーションのクラスタイプ、および入力/出力操作の受け取られた特性を利用して、ストレージ・ロケーションを選択すること(410)に当てはまるので、簡明のため、これらの説明は、繰り返されない。
さらに、図4の410、および図2Aを参照すると、一実施形態では、複数の異種のソリッドステート・ストレージ・ロケーションのクラスタイプ、および入力/出力操作の受け取られた特性を利用して、ストレージ・ロケーションを選択すること(410)は、アクセス頻度特性を利用することをさらに含む。このアクセス頻度特性は、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255の1つが、どれだけ頻繁に書き込まれ、さらに/または読み取られるかを記述するデータを指す。
例として、異種のソリッドステート・ストレージ・ロケーションA240が、稀にしか書き込まれず、頻繁に読み取られるべきファイル用のメモリー空間を含むものとする。また、異種のソリッドステート・ストレージ・ロケーションA240に格納されたファイルが、前年に1回だけしか読み取られていないものとする。受け取りデータ特性ディターミナー220は、所定の命令に応じて、このファイルを異種のソリッドステート・ストレージ・ロケーションB245に移すことを、異種のソリッドステート・ストレージ・ロケーションB245が、稀にしか書き込まれず、稀にしか読み取られないファイル用のメモリー空間を含むので、決定することができる。
次に図4の415、および図2Aを参照すると、一実施形態が、入力/出力動作に関連するデータを選択されたストレージ・ロケーションにルーティングする(415)。別の実施形態では、入力/出力操作に関連するデータを選択されたストレージ・ロケーションにルーティングすること(415)は、複数の異種のソリッドステート・ストレージ・ロケーションn...255の集合を表す単一のアドレス指定可能なストレージ名前空間を利用することをさらに含む。例えば、異種ソリッドステート・ストレージ・ロケーション・アロケーター230が、複数のソリッドステート・ストレージ・ロケーションn...255に関する単一のストレージ名前空間だけを公開する。その結果、バックアップシステムまたはオペレーティングシステム200のようなアプリケーションには、個別の各ソリッドステート・ストレージ・ロケーションA240、B245、C250、および/またはn...255ではなく、すべてのソリッドステート・ストレージ・ロケーションn...255を表す単一のアドレス指定可能なストレージ名前空間だけが見える。
入力/出力操作に関連するデータを選択されたストレージ・ロケーションにルーティングすること(415)は、受け取られたデータの特性に基づいて、複数の異種のソリッドステート・ストレージ・ロケーションの1つに、受け取られたデータを割り当てること(315)と同様である。受け取られたデータの特性に基づいて、複数の異種のソリッドステート・ストレージ・ロケーションの1つに、受け取られたデータを割り当てること(315)に関するここでの説明は、入力/出力操作に関連するデータを選択されたストレージ・ロケーションにルーティングすること(415)に当てはまるので、簡明のため、これらの説明は、繰り返されない。
このように、本技術は、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255を選択的に利用するためのコンピューターによって実施される方法を提供する。さらに、入力/出力操作に関連する様々なデータに適した複数の異種のソリッドステート・ストレージ・ロケーションを本技術が可能にすることは、メモリー空間における格納されたデータのストレージ当たりの費用比率の低減を可能にする。さらに、本技術は、複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255、または以上の何らかの組み合わせが、ハードディスクドライブをエミュレートすることを可能にする。さらに、本技術は、フラッシュメモリー記憶空間の使用が、任意の数の複数の異種のソリッドステート・ストレージ・ロケーションA240、B245、C250、およびn...255として使用されることを可能にする。
主題は、構造上の特徴、および/または方法論上の動作に特有の言葉で説明されてきたが、添付の特許請求の範囲において規定される主題は、前述した特定の特徴または動作に必ずしも限定されないことを理解されたい。むしろ、前述した特定の特徴および動作は、特許請求の範囲を実施する例示的な形態として開示されている。

Claims (17)

  1. コンピュータにおいてプロセッサを介して実行される、第1及び第2の異なるソリッドステート・ストレージ・ロケーションを選択的に用いる方法であって、前記コンピュータはメモリを備えており、前記メモリにはコンピュータが実行可能であってこの方法を含む命令が記憶されている、方法において、
    どのような種類のデータが第1の異なるソリッドステート・ストレージ・ロケーションに保持されるかを記述することにより第1の異なるソリッドステート・ストレージ・ロケーションの第1の入出力アクセス頻度特性を定義する第1のクラスタイプと、どのような種類のデータが第2の異なるソリッドステート・ストレージ・ロケーションに保持されるかを記述することにより第2の異なるソリッドステート・ストレージ・ロケーションの第2の入出力アクセス頻度特性を定義する第2のクラスタイプと、を受け取るステップと、
    受け取られたデータと関連する入出力動作に基づいて、前記受け取られたデータに対して予想される入出力動作の発生を示す前記受け取られたデータの特性を決定し、前記受け取られたデータの一部又は全部が前記第1の入出力アクセス頻度特性、前記第2の入出力アクセス頻度特性、又はこれら両者に対応するかどうかを、前記決定された特性に基づいて決定するステップと、
    前記受け取られたデータの前記決定された特性と前記第1及び第2の入出力アクセス頻度特性とに基づいて、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションの間で、前記受け取られたデータを配分するステップと、
    前記配分されたデータの1又は複数のモニタされた属性に基づき、前記第1及び第2の入出力アクセス頻度特性を考慮して、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションの間で、ファイルと前記ファイルへの前記コンピュータによるアクセスの頻度とを含むデータを再配分するステップと、
    を含むことを特徴とする方法。
  2. 請求項1記載の方法において、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションのクラスタイプを受け取る前記ステップは、オペレーティング・システムを用いて前記第1及び第2のクラスタイプを決定するステップを含むことを特徴とする方法。
  3. 請求項1記載の方法において、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションの集合を表す単一のアドレス指定可能なストレージ名前空間を用いるステップを含むことを特徴とする方法。
  4. 請求項1記載の方法において、特性を決定する前記ステップは、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションの一方に記憶されたファイルの属性にアクセスするステップを含むことを特徴とする方法。
  5. 請求項1記載の方法において、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションを介してオペレーティングシステムをサポートするステップを含むことを特徴とする方法。
  6. 請求項1記載の方法において、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションを用いることを介してハードディスクドライブをエミュレートするステップを含むことを特徴とする方法。
  7. 請求項1記載の方法において、前記1又は複数のモニタされた属性は、本日の操作に対する前記ファイルの重要度、前記ファイルのサイズ、前記ファイルと関連する入出力動作と関連するデータの中の少なくとも1つを更に含むことを特徴とする方法。
  8. コンピュータが実行可能な命令が記憶されたコンピュータ可読記憶媒体であって、前記命令は、コンピュータ・システムのプロセッサによって実行されることにより
    どのような種類のデータが第1の異なるソリッドステート・ストレージ・ロケーションに保持されるかを記述することにより第1の異なるソリッドステート・ストレージ・ロケーションの第1の入出力アクセス頻度特性を定義する第1のクラスタイプと、どのような種類のデータが第2の異なるソリッドステート・ストレージ・ロケーションに保持されるかを記述することにより第2の異なるソリッドステート・ストレージ・ロケーションの第2の入出力アクセス頻度特性を定義する第2のクラスタイプと、を受け取るステップと、
    受け取られたデータと関連する入出力動作に基づいて、前記受け取られたデータに対して予想される入出力動作の発生を示す前記受け取られたデータの特性を決定し、前記受け取られたデータの一部又は全部が前記第1の入出力アクセス頻度特性、前記第2の入出力アクセス頻度特性、又はこれら両者に対応するかどうかを、前記決定された特性に基づいて決定するステップと、
    前記受け取られたデータの前記決定された特性と前記第1及び第2の入出力アクセス頻度特性とに基づいて、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションの間で、前記受け取られたデータを配分するステップと、
    前記配分されたデータの1又は複数のモニタされた属性に基づき、前記第1及び第2の入出力アクセス頻度特性を考慮して、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションの間で、ファイルと前記ファイルへの前記コンピュータによるアクセスの頻度とを含むデータを再配分するステップと、
    を含む方法を遂行することを特徴とするコンピュータ可読媒体。
  9. 請求項8記載のコンピュータ可読媒体において、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションのクラスタイプを受け取る前記ステップは、オペレーティング・システムを用いて前記第1及び第2のクラスタイプを決定するステップを含むことを特徴とするコンピュータ可読媒体。
  10. 請求項8記載のコンピュータ可読媒体において、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションの集合を表す単一のアドレス指定可能なストレージ名前空間を用いるステップを含むことを特徴とするコンピュータ可読媒体。
  11. 請求項8記載のコンピュータ可読媒体において、特性を決定する前記ステップは、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションの一方に記憶されたファイルの属性にアクセスするステップを含むことを特徴とするコンピュータ可読媒体。
  12. 請求項8記載のコンピュータ可読媒体において、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションを介してオペレーティングシステムをサポートするステップを含むことを特徴とするコンピュータ可読媒体。
  13. 請求項8記載のコンピュータ可読媒体において、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションを用いることを介してハードディスクドライブをエミュレートするステップを含むことを特徴とするコンピュータ可読媒体。
  14. 請求項8記載のコンピュータ可読媒体において、前記1又は複数のモニタされた属性は、本日の操作に対する前記ファイルの重要度、前記ファイルのサイズ、前記ファイルと関連する入出力動作と関連するデータの中の少なくとも1つを更に含むことを特徴とするコンピュータ可読媒体。
  15. 1又は複数のプロセッサと、コンピュータが実行可能な命令が記憶されたコンピュータ可読記憶媒体と、を含むコンピュータ・デバイスであって、前記命令は、前記1又は複数のプロセッサによって実行されることにより
    どのような種類のデータが第1の異なるソリッドステート・ストレージ・ロケーションに保持されるかを記述することにより第1の異なるソリッドステート・ストレージ・ロケーションの第1の入出力アクセス頻度特性を定義する第1のクラスタイプと、どのような種類のデータが第2の異なるソリッドステート・ストレージ・ロケーションに保持されるかを記述することにより第2の異なるソリッドステート・ストレージ・ロケーションの第2の入出力アクセス頻度特性を定義する第2のクラスタイプと、を受け取るステップと、
    受け取られたデータと関連する入出力動作に基づいて、前記受け取られたデータに対して予想される入出力動作の発生を示す前記受け取られたデータの特性を決定し、前記受け取られたデータの一部又は全部が前記第1の入出力アクセス頻度特性、前記第2の入出力アクセス頻度特性、又はこれら両者に対応するかどうかを、前記決定された特性に基づいて決定するステップと、
    前記受け取られたデータの前記決定された特性と前記第1及び第2の入出力アクセス頻度特性とに基づいて、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションの間で、前記受け取られたデータを配分するステップと、
    前記配分されたデータの1又は複数のモニタされた属性に基づき、前記第1及び第2の入出力アクセス頻度特性を考慮して、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションの間で、ファイルと前記ファイルへの前記コンピュータによるアクセスの頻度とを含むデータを再配分するステップと、
    を含む動作を遂行することを特徴とするコンピュータ・デバイス。
  16. 請求項15記載のコンピュータ・デバイスにおいて、前記動作は、オペレーティング・システムを用いて前記第1及び第2のクラスタイプを決定するステップを含むことを特徴とするコンピュータ・デバイス。
  17. 請求項15記載のコンピュータ・デバイスにおいて、前記動作は、前記第1及び第2の異なるソリッドステート・ストレージ・ロケーションの集合を表す単一のアドレス指定可能なストレージ名前空間を用いるステップを含むことを特徴とするコンピュータ・デバイス。
JP2009552886A 2007-03-06 2008-03-06 複数の異種のソリッドステート・ストレージ・ロケーションの選択的利用 Expired - Fee Related JP5149912B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/714,585 US7657572B2 (en) 2007-03-06 2007-03-06 Selectively utilizing a plurality of disparate solid state storage locations
US11/714,585 2007-03-06
PCT/US2008/056026 WO2008109736A1 (en) 2007-03-06 2008-03-06 Selectively utilizing a plurality of disparate solid state storage locations

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011161814A Division JP5384576B2 (ja) 2007-03-06 2011-07-25 複数の異種のソリッドステート・ストレージ・ロケーションの選択的利用

Publications (3)

Publication Number Publication Date
JP2010520568A JP2010520568A (ja) 2010-06-10
JP2010520568A5 JP2010520568A5 (ja) 2010-11-25
JP5149912B2 true JP5149912B2 (ja) 2013-02-20

Family

ID=39738794

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009552886A Expired - Fee Related JP5149912B2 (ja) 2007-03-06 2008-03-06 複数の異種のソリッドステート・ストレージ・ロケーションの選択的利用
JP2011161814A Expired - Fee Related JP5384576B2 (ja) 2007-03-06 2011-07-25 複数の異種のソリッドステート・ストレージ・ロケーションの選択的利用

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011161814A Expired - Fee Related JP5384576B2 (ja) 2007-03-06 2011-07-25 複数の異種のソリッドステート・ストレージ・ロケーションの選択的利用

Country Status (9)

Country Link
US (3) US7657572B2 (ja)
EP (1) EP2118751A4 (ja)
JP (2) JP5149912B2 (ja)
KR (1) KR101482285B1 (ja)
CN (1) CN101627372B (ja)
BR (1) BRPI0807899A8 (ja)
RU (1) RU2463648C2 (ja)
TW (1) TWI432958B (ja)
WO (1) WO2008109736A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003284329A1 (en) 2002-10-22 2004-05-13 Isys Technologies Robust customizable computer processing system
AU2003285949A1 (en) 2002-10-22 2004-05-13 Isys Technologies Non-peripherals processing control module having improved heat dissipating properties
US7075784B2 (en) * 2002-10-22 2006-07-11 Sullivan Jason A Systems and methods for providing a dynamically modular processing unit
US20100250826A1 (en) * 2009-03-24 2010-09-30 Micron Technology, Inc. Memory systems with a plurality of structures and methods for operating the same
US8560639B2 (en) 2009-04-24 2013-10-15 Microsoft Corporation Dynamic placement of replica data
US8935366B2 (en) * 2009-04-24 2015-01-13 Microsoft Corporation Hybrid distributed and cloud backup architecture
US8769055B2 (en) 2009-04-24 2014-07-01 Microsoft Corporation Distributed backup and versioning
US8769049B2 (en) 2009-04-24 2014-07-01 Microsoft Corporation Intelligent tiers of backup data
TWI494766B (zh) * 2009-07-07 2015-08-01 Apacer Technology Inc 可提升作業速度之儲存模組及其作業方法
US8700841B2 (en) 2010-04-19 2014-04-15 International Business Machines Corporation Sub-LUN input/output profiling for SSD devices
US9285991B2 (en) 2011-04-29 2016-03-15 International Business Machines Corporation System, method and program product to schedule transfer of data
US8341312B2 (en) 2011-04-29 2012-12-25 International Business Machines Corporation System, method and program product to manage transfer of data to resolve overload of a storage system
US8923045B2 (en) 2012-05-31 2014-12-30 Seagate Technology Llc Multi-level cell (MLC) update with protected mode capability
CN103902226B (zh) * 2012-12-27 2017-08-04 宏碁股份有限公司 数据写入方法与系统
WO2014138448A1 (en) * 2013-03-06 2014-09-12 Sullivan Jason A Systems and methods for providing dynamic hybrid storage
US8924824B1 (en) 2013-03-12 2014-12-30 Western Digital Technologies, Inc. Soft-decision input generation for data storage systems
US9576039B2 (en) 2014-02-19 2017-02-21 Snowflake Computing Inc. Resource provisioning systems and methods
JP6394698B2 (ja) * 2014-06-20 2018-09-26 株式会社ニコン 情報記憶装置、情報記憶システム、及び情報記憶制御プログラム
KR102397582B1 (ko) 2015-06-22 2022-05-13 삼성전자주식회사 데이터 저장 장치, 이를 포함하는 데이터 처리 시스템, 및 이의 작동 방법
US10866912B2 (en) 2017-03-10 2020-12-15 Toshiba Memory Corporation Integrated heterogeneous solid state storage drive
US10521143B2 (en) 2017-03-23 2019-12-31 Netapp Inc. Composite aggregate architecture
US11205229B1 (en) * 2017-08-04 2021-12-21 EMC IP Holding Company LLC Content storage management based on multidimensional valuation models
KR102611566B1 (ko) 2018-07-06 2023-12-07 삼성전자주식회사 솔리드 스테이트 드라이브 및 그의 메모리 할당 방법

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5490260A (en) 1990-12-14 1996-02-06 Ceram, Inc. Solid-state RAM data storage for virtual memory computer using fixed-sized swap pages with selective compressed/uncompressed data store according to each data size
US5491810A (en) * 1994-03-01 1996-02-13 International Business Machines Corporation Method and system for automated data storage system space allocation utilizing prioritized data set parameters
DE19540915A1 (de) * 1994-11-10 1996-05-15 Raymond Engineering Redundante Anordnung von Festkörper-Speicherbausteinen
US5568423A (en) 1995-04-14 1996-10-22 Unisys Corporation Flash memory wear leveling system providing immediate direct access to microprocessor
JPH0944381A (ja) * 1995-07-31 1997-02-14 Toshiba Corp データ格納方法およびデータ格納装置
US5835935A (en) 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
US6711666B1 (en) * 1995-11-29 2004-03-23 Zf Micro Solutions, Inc. IBM PC compatible multi-chip module
JP2856152B2 (ja) * 1996-05-30 1999-02-10 日本電気株式会社 カーネルデバッガにおけるソフトウェアブレークポイント管理方式
US5787484A (en) 1996-08-08 1998-07-28 Micron Technology, Inc. System and method which compares data preread from memory cells to data to be written to the cells
US5905757A (en) 1996-10-04 1999-05-18 Motorola, Inc. Filter co-processor
US6418506B1 (en) 1996-12-31 2002-07-09 Intel Corporation Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array
EP0968468B1 (en) 1997-03-21 2003-02-26 Canal+ Technologies Computer memory organization and method therefor
US6154788A (en) * 1997-04-25 2000-11-28 Simple Technology, Inc. Multi-function module incorporating flash memory having additional controller adapted to configure the data from the memory that is to be provided to the external source
KR100564664B1 (ko) * 1997-10-08 2006-03-29 시게이트 테크놀로지 엘엘씨 데이터 저장 장치용 하이브리드 데이터 저장과 재구성시스템 및 방법
US6189069B1 (en) 1998-02-17 2001-02-13 Microsoft Corporation Optimized logging of data elements to a data storage device
JP2000036947A (ja) 1998-07-17 2000-02-02 Mitsubishi Electric Corp 映像蓄積配信表示装置
JP4085478B2 (ja) * 1998-07-28 2008-05-14 ソニー株式会社 記憶媒体及び電子機器システム
JP2000201333A (ja) 1999-01-05 2000-07-18 Matsushita Electric Ind Co Ltd 多重化通信装置
US6145069A (en) 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
US8078794B2 (en) 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
US20050160218A1 (en) * 2004-01-20 2005-07-21 Sun-Teck See Highly integrated mass storage device with an intelligent flash controller
US7509420B2 (en) * 2000-02-18 2009-03-24 Emc Corporation System and method for intelligent, globally distributed network storage
US20030046396A1 (en) * 2000-03-03 2003-03-06 Richter Roger K. Systems and methods for managing resource utilization in information management environments
US20020174227A1 (en) * 2000-03-03 2002-11-21 Hartsell Neal D. Systems and methods for prioritization in information management environments
US6883044B1 (en) 2000-07-28 2005-04-19 Micron Technology, Inc. Synchronous flash memory with simultaneous access to one or more banks
US7689510B2 (en) * 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
JP2002132454A (ja) 2000-10-19 2002-05-10 Xaxon R & D Corp 圧縮伸張装置を備えた半導体ディスク装置
US6681506B2 (en) 2000-10-27 2004-01-27 The Procter & Gamble Company Process for the ironing of fabrics, and refill cartridge for irons
JP2002149456A (ja) 2000-11-07 2002-05-24 Matsushita Electric Ind Co Ltd 可搬性記憶媒体、可搬性記憶媒体におけるファイル管理方法及び携帯端末
EP1205838A3 (en) * 2000-11-07 2007-10-10 Matsushita Electric Industrial Co., Ltd. Carryable memory media, portable information terminal using the same and method for managing files therein
KR100389867B1 (ko) 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US7454446B2 (en) * 2001-08-31 2008-11-18 Rocket Software, Inc. Techniques for storing data based upon storage policies
KR100393619B1 (ko) * 2001-09-07 2003-08-02 삼성전자주식회사 휴대 단말기의 메모리 장치 및 그 제어방법
KR100454119B1 (ko) 2001-10-24 2004-10-26 삼성전자주식회사 캐쉬 기능을 갖는 불 휘발성 반도체 메모리 장치 및 그것의 프로그램, 읽기, 그리고 페이지 카피백 방법들
US7127550B1 (en) * 2001-10-31 2006-10-24 Sandisk Corporation Multi-module simultaneous program, erase test, and performance method for flash memory
JP4162184B2 (ja) * 2001-11-14 2008-10-08 株式会社日立製作所 データベース管理システムの実行情報を取得する手段を有する記憶装置
RU2189630C1 (ru) 2001-11-21 2002-09-20 Бабаян Борис Арташесович Способ фильтрации межпроцессорных запросов в многопроцессорных вычислительных системах и устройство для его осуществления
US6681309B2 (en) * 2002-01-25 2004-01-20 Hewlett-Packard Development Company, L.P. Method and apparatus for measuring and optimizing spatial segmentation of electronic storage workloads
US20050036387A1 (en) 2002-04-24 2005-02-17 Seal Brian K. Method of using flash memory for storing metering data
US20040025162A1 (en) * 2002-07-31 2004-02-05 Fisk David C. Data storage management system and method
JP4063615B2 (ja) 2002-08-30 2008-03-19 Necエレクトロニクス株式会社 不揮発性メモリおよびその書き込み処理方法
US7020758B2 (en) 2002-09-18 2006-03-28 Ortera Inc. Context sensitive storage management
JP4199519B2 (ja) * 2002-11-05 2008-12-17 パナソニック株式会社 メモリ管理装置及びメモリ管理方法
US6993603B2 (en) 2002-12-09 2006-01-31 Microsoft Corporation Managed file system filter model and architecture
US7814128B2 (en) 2003-05-30 2010-10-12 Symantec Operating Corporation Multi-volume file support
TWI220959B (en) 2003-06-05 2004-09-11 Carry Computer Eng Co Ltd Storage device with optimized compression management mechanism
ITVA20030025A1 (it) 2003-07-17 2005-01-18 Lamberti Spa Depolimerizzazione enzimatica di carbossimetilcellulosa e relativi prodotti.
KR100546348B1 (ko) 2003-07-23 2006-01-26 삼성전자주식회사 플래시 메모리 시스템 및 그 데이터 저장 방법
US6917542B2 (en) * 2003-07-29 2005-07-12 Sandisk Corporation Detecting over programmed memory
US6876579B2 (en) 2003-08-04 2005-04-05 Phison Electronics Corp. Method writing data to a large block of a flash memory cell
WO2005050453A1 (ja) 2003-11-18 2005-06-02 Matsushita Electric Industrial Co., Ltd. ファイル記録装置
US20090193184A1 (en) 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
US7477812B2 (en) 2003-12-30 2009-01-13 Massachusetts Institute Of Technology System and method for providing fast, low voltage integrated optical elements
JP4568502B2 (ja) * 2004-01-09 2010-10-27 株式会社日立製作所 情報処理システムおよび管理装置
EP1720119A4 (en) 2004-03-31 2008-01-23 Matsushita Electric Ind Co Ltd MEMORY CARD AND MEMORY CARD SYSTEM
US8352697B2 (en) * 2004-05-17 2013-01-08 Sandisk Il Ltd. Method of managing files for optimal performance
US7702848B2 (en) * 2004-06-10 2010-04-20 Marvell World Trade Ltd. Adaptive storage system including hard disk drive with flash interface
US20060069896A1 (en) * 2004-09-27 2006-03-30 Sigmatel, Inc. System and method for storing data
JP4956922B2 (ja) * 2004-10-27 2012-06-20 ソニー株式会社 記憶装置
US7631023B1 (en) * 2004-11-24 2009-12-08 Symantec Operating Corporation Performance-adjusted data allocation in a multi-device file system
US20060117018A1 (en) 2004-11-30 2006-06-01 Microsoft Corporation Method and system for caching remote files locally
US7087953B2 (en) * 2004-12-03 2006-08-08 Aplus Flash Technology, Inc. Unified non-volatile memory device and method for integrating NOR and NAND-type flash memory and EEPROM device on a single substrate
KR100684942B1 (ko) * 2005-02-07 2007-02-20 삼성전자주식회사 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
KR100590388B1 (ko) 2005-03-10 2006-06-19 주식회사 하이닉스반도체 멀티-플레인 타입 플래쉬 메모리 장치와, 그 프로그램 동작및 리드 동작 제어 방법
KR100626392B1 (ko) 2005-04-01 2006-09-20 삼성전자주식회사 읽기 속도를 향상시킬 수 있는 플래시 메모리 장치
KR100704037B1 (ko) 2005-04-15 2007-04-04 삼성전자주식회사 이종의 비휘발성 메모리를 가지는 데이터 저장장치와 그의구동 방법
JP2007004710A (ja) * 2005-06-27 2007-01-11 Nec Corp ストレージアクセス方式、データ転送装置、ストレージアクセス方法、及びプログラム
JP2006059374A (ja) * 2005-09-16 2006-03-02 Hitachi Ltd 記憶制御装置
JP4933861B2 (ja) * 2005-09-22 2012-05-16 株式会社日立製作所 ストレージ制御装置、データ管理システムおよびデータ管理方法
US20070078914A1 (en) * 2005-09-30 2007-04-05 International Business Machines Corporation Method, apparatus and program storage device for providing a centralized policy based preallocation in a distributed file system
US8286159B2 (en) * 2005-12-22 2012-10-09 Alan Joshua Shapiro Method and apparatus for gryphing a data storage medium
US7555575B2 (en) * 2006-07-27 2009-06-30 Hitachi, Ltd. Method and apparatus for migrating data between storage volumes of different data pattern
US20080228998A1 (en) 2007-03-16 2008-09-18 Spansion Llc Memory storage via an internal compression algorithm

Also Published As

Publication number Publication date
RU2463648C2 (ru) 2012-10-10
JP2012014706A (ja) 2012-01-19
US7657572B2 (en) 2010-02-02
JP2010520568A (ja) 2010-06-10
BRPI0807899A8 (pt) 2017-01-17
EP2118751A1 (en) 2009-11-18
KR20100014884A (ko) 2010-02-11
JP5384576B2 (ja) 2014-01-08
US8126939B2 (en) 2012-02-28
EP2118751A4 (en) 2010-09-29
US9535625B2 (en) 2017-01-03
US20120110264A1 (en) 2012-05-03
CN101627372A (zh) 2010-01-13
RU2009133317A (ru) 2011-03-10
BRPI0807899A2 (pt) 2014-06-17
TWI432958B (zh) 2014-04-01
US20100095083A1 (en) 2010-04-15
CN101627372B (zh) 2012-08-29
US20080222346A1 (en) 2008-09-11
TW200844739A (en) 2008-11-16
KR101482285B1 (ko) 2015-01-13
WO2008109736A1 (en) 2008-09-12

Similar Documents

Publication Publication Date Title
JP5149912B2 (ja) 複数の異種のソリッドステート・ストレージ・ロケーションの選択的利用
JP5347061B2 (ja) フラッシュメモリデータストレージデバイスにデータを格納するための方法及び装置
US10324832B2 (en) Address based multi-stream storage device access
US20180196604A1 (en) Physical address management in solid state memory
JP5238685B2 (ja) フラッシュ・ストレージの離散領域を記述して問い合わせること
US20080229046A1 (en) Unified support for solid state storage
CN107908571B (zh) 一种数据写入方法、闪存装置及存储设备
KR102585883B1 (ko) 메모리 시스템의 동작 방법 및 메모리 시스템
US8583890B2 (en) Disposition instructions for extended access commands
KR20200056533A (ko) 맵 스케줄링을 수행하기 위한 스토리지 장치 및 그것을 포함하는 전자 장치
US8504764B2 (en) Method and apparatus to manage object-based tiers
KR20210043001A (ko) 하이브리드 메모리 시스템 인터페이스
US11875051B2 (en) Contiguous data storage using group identifiers
US11163475B2 (en) Block input/output (I/O) accesses in the presence of a storage class memory
CN117909251A (zh) 存储介质、调度和执行主机数据更新命令的方法及装置
CN117909252A (zh) 存储介质、调度和执行主机数据更新命令的方法及装置
CN116149540A (zh) 更新主机与闪存地址对照表的方法和计算机可读取存储介质和装置
JP2020052852A (ja) ストレージ及び情報処理システム。

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101006

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101006

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20101006

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20101022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110202

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110324

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121130

R150 Certificate of patent or registration of utility model

Ref document number: 5149912

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151207

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees