JP2014115977A - ハイブリッド・ディスク・ドライブにおけるハイバネーションファイルの低オーバーヘッドストレージ - Google Patents

ハイブリッド・ディスク・ドライブにおけるハイバネーションファイルの低オーバーヘッドストレージ Download PDF

Info

Publication number
JP2014115977A
JP2014115977A JP2013153054A JP2013153054A JP2014115977A JP 2014115977 A JP2014115977 A JP 2014115977A JP 2013153054 A JP2013153054 A JP 2013153054A JP 2013153054 A JP2013153054 A JP 2013153054A JP 2014115977 A JP2014115977 A JP 2014115977A
Authority
JP
Japan
Prior art keywords
data
memory
hibernation
volatile
flash memory
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.)
Abandoned
Application number
JP2013153054A
Other languages
English (en)
Inventor
m ehrlich Richard
リチャード・エム・アーリッヒ
Thorsten Schmidt
ソーステン・シュミット
Eric R Dunn
エリック・アール・ダン
Fernando A Zayas
フェルナンド・エー・ザヤス
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Publication of JP2014115977A publication Critical patent/JP2014115977A/ja
Abandoned legal-status Critical Current

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of 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/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; 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]
    • 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/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/217Hybrid disk, e.g. using both magnetic and solid state storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】できるだけ速くハイバネーションファイルを安全に格納すること。
【解決手段】半導体メモリ及び磁気メモリから構成される不揮発性記憶装置に接続されており、揮発性メモリを有するデバイスをハイバネートするための方法であって、前記方法は、ハイバネートコマンドを受信することと、前記ハイバネートコマンドを受信すると、前記磁気メモリに前記揮発性メモリの内容を格納することなく、前記半導体メモリの第1の部分及び第2の部分に前記揮発性メモリの内容を格納することとを具備し、前記第1の部分は、イレースメモリブロックを含み、前記第2の部分は、前記磁気メモリにも格納されるデータ、無効なデータ、及び、前記デバイスに関連する以前のハイバネーションファイルの内容、の少なくとも一つを格納しているメモリブロックを含む方法。
【選択図】図3

Description

ここに記述された実施例は、ハイブリッド・ディスク・ドライブにハイバネーションファイルを格納するためのデータ記憶装置、システム、および方法に一般に関する。
ハイブリッドハードディスク・ドライブ(HDD)は、不揮発性の半導体(例えば、フラッシュ)メモリと結合した1つ以上の回転磁気ディスクを含む。一般的に、ハイブリッドHDDは、従来のHDDの容量と、半導体ドライブと同じくらい速くデータにアクセスする能力と、の両方を有する。このため、ハイブリッドドライブがラップトップコンピュータで一般に使用されると期待される。いくつかのハイブリッドHDDは、ハイブリッドHDDのディスク部分に関する非常に大きなキャッシュとして不揮発性の半導体メモリを扱うことにより、半導体ドライブの高性能を達成する。具体的には、全ての書き込みデータは、ハイブリッドHDDのフラッシュメモリ部分にホストから典型的に直接受け入れられる。また、同様に、ディスクから読み込まれるデータは、フラッシュに書き込まれる。このように、フラッシュメモリは書込み操作を加速することができる。なぜなら、もしフラッシュメモリがいっぱいでなければ、比較的遅い書き込み回転ディスク動作は、どのくらい早くデータがホストから受け入れられるかに影響しないからである。さらに、フラッシュメモリは、ホストによって再び要求されやすいデータ、つまり、ホストによって最近または最も頻繁に使用されるデータ、をキャッシュすることによってリード操作を加速することができる。これは、比較的遅い回転ディスクからのリード操作の発生を最小限にする。
米国特許第7620784号明細書 米国特許出願公開第2009/0327608号明細書 米国特許出願公開第2008/0288714号明細書
ラップトップコンピュータに共通の1つの問題は、できるだけ速くハイバネーションファイルを安全に格納する必要があるということである。これは、データがディスクに書き込まれている間、物理的外乱が生じた時、例えば、ユーザがラップトップをいわゆる「S4」モードまたは「ハイバネート」モードに入れ、ユーザがラップトップをクローズしてピックアップするような時、磁気ディスクドライブのリード/ライトヘッド及び回転機構がダメージを受け得るからである。理想的には、ハイブリッドHDDは、ドライブのフラッシュメモリ部分にハイバネーションファイルデータを格納するように構成されている。そのため、ハイバネーションモードが要求された直後に、リード/ライトヘッドを待機させることができ、ストレージディスクは、スピンダウンする。しかしながら、このようなハイブリッドHDDの構成は、問題がある。なぜならば、ハイバネーションファイルは、非常に大きい場合があり、通常の動作の間常時ハイバネーションファイルの格納を可能にするために、フラッシュメモリの望ましくない大部分がリザーブされることを、つまり未使用であることを必要とするからである。したがって、容易にそのようなハイブリッドHDDを実現することができるが、ハイブリッドHDDの中の利用可能な記憶資源の使用は非能率的であり、有効にコストが下がらないだろう。
図1は、発明の実施形態における例示のディスクドライブの概略図である。 図2は、発明の実施形態に従って構成され示される電子回路の要素を有するハイブリッドドライブの動作を例示する図である。 図3は、発明の実施形態に従って構成され、フラッシュメモリデバイスに含まれるメモリブロックの略図である。 図4は、発明の実施形態において、ハイブリッドドライブにデータを格納するための方法ステップのフローチャートである。 図5は、発明の実施形態において、揮発性メモリを有し、ハイブリッドドライブのような不揮発性ストレージユニットに接続されているコンピュータデバイスをハイバネートするための方法ステップのフローチャートである。 図6は、発明の実施形態において、揮発性メモリを有し、ハイブリッドドライブのような不揮発性ストレージユニットに接続されているコンピュータデバイスにデータを格納するための方法ステップのフローチャートである。
1つ以上の実施形態において、ストレージディスク及び不揮発性半導体メモリを含むハイブリッドハードディスクドライブ内のハイバネーションファイルの低オーバーヘッドストレージに関するシステム及び方法を提供する。動作中、ハイブリッドドライブは、ハイブリッドドライブのホストデバイスに関連したハイバネーションファイルを収納するために十分大きな半導体メモリの一部を割り当てる。ハイブリッドドライブの動作の間、通常存在するイレースメモリブロックに加えて、ハイバネーションファイルを収納するために割り当てられた半導体ドライブの一部は、過剰供給されたメモリブロック、トリムされた以前のハイバネーションファイルを格納するために使用されるブロック、非ダーティデータ、及び/または使用されていない(obsolete)データ、を含み得る。
実施形態によれば、揮発性メモリを有するデバイスであって、半導体メモリ及び磁気メモリから構成される不揮発性記憶装置に接続されたデバイスをハイバネートする方法は、ハイバネートコマンドを受信すること、ハイバネートコマンドを受信すると磁気メモリに揮発性メモリの内容を格納することなく、半導体メモリの第1の部分及び第2の部分に揮発性メモリの内容を格納することを含む。第1の部分は、イレースメモリブロックを具備する。第2の部分は、磁気メモリ上にも格納されている少なくとも一つのデータを格納するメモリブロック、(トリムされたデータまたは使用されていないデータであり得る)無効なデータ、及びデバイスと関連した以前のハイバネーションファイルの内容、を具備する。
他の実施形態によれば、揮発性メモリを有しているデバイスであって、半導体メモリ及び磁気メモリを備える不揮発性記憶装置に接続されたデバイスにデータを格納する方法は、デバイスをハイバネートすることに関連しないライトコマンドを不揮発性記憶装置に送信することと、半導体メモリに割り当てされた記憶スペースの結合されたデータストレージ容量が所定の閾値より小さい時、磁気メモリにデータを書き込むことと、を具備する。割り当てられた記憶スペースは、イレースメモリブロックを具備する第1の部分と、磁気メモリ上にも格納されている少なくとも一つのデータ、(トリムされたデータまたは使用されていないデータであり得る)無効なデータ、デバイスと関連した以前のハイバネーションファイルの内容を格納しているメモリブロックを具備する第2の部分を含む。
他の実施形態によれば、不揮発性データストレージユニットは、磁気メモリ、半導体メモリ、及びストレージコントローラを具備する。ストレージコントローラは、不揮発性ストレージユニットのホストデバイスをハイバネートすることに関連しないライトコマンドを受信することと、半導体メモリに割り当てされた記憶スペースの結合されたデータストレージ容量が所定の閾値より小さい時、磁気メモリにデータを書き込むことと、を具備する。割り当てられた記憶スペースは、イレースメモリブロックを具備する第1の部分と、磁気メモリ上にも格納されている少なくとも一つのデータを格納しているメモリブロック、(トリムされたデータまたは使用されていないデータであり得る)無効なデータ、及びデバイスと関連した以前のハイバネーションファイルの内容を具備する第2の部分と、を具備する。
以下、実施の形態につき図面を参照して説明する。
図1は、発明の実施形態における例示のディスクドライブの斜視図である。明確にするために、ハイブリッドドライブ100は、トップカバーなく例証されている。ハイブリッドドライブ100は、スピンドルモータ114によって回転し、複数の同心円のデータストレージトラックを含む少なくとも一つのストレージディスク110を含む。スピンドルモータ114は、基板116上にマウントされている。アクチュエータアームアセンブリ120は、基板116上にもマウントされている。アクチュエータアームアセンブリ120は、データストレージトラックからデータを読み出し、データストレージトラックにデータを書き込むリード/ライトヘッド127を伴うフレクスチャアーム122上にマウントされたスライダ121を有する。フレクスチャアーム122は、ベアリングアセンブリ126の周りを回転するアクチュエータアーム124に取り付けられている。ボイスコイルモータ128は、ストレージディスク110に対してスライダ121を動かす。そのため、ストレージディスク110の表面112上に配置された所望の同心円のデータストレージトラック上で、リード/ライトヘッド127を位置決めすることができる。スピンドルモータ114、リード/ライトヘッド127、及びボイスコイルモータ128は、プリント回路基板132上にマウントされている電子回路130に接続されている。電子回路130は、リードチャネル137、マイクロプロセッサベースドコントローラ133、ランダムアクセスメモリ(RAM)134、及び/またはフラッシュメモリデバイス135及びフラッシュマネジャデバイス136を含む。ランダムアクセスメモリ(RAM)134は、ダイナミックRAMであり得る。ランダムアクセスメモリ(RAM)134は、データバッファとして使用される。いくつかの実施形態において、リードチャネル137及びマイクロプロセッサベースドコントローラ133は、システムオンチップ131のような単一のチップに含まれる。いくつかの実施形態において、ハイブリッドドライブ100は、スピンドルモータ114及びボイスコイルモータ128をさらに含み得る。
明確にするために、ハイブリッドドライブ100は、1つのストレージディスク110及び1つのアクチュエータアームアセンブリ120とともに例証される。ハイブリッドドライブ100は、複数のストレージディスク及び複数のアクチュエータアームアセンブリをも含み得る。さらに、ストレージディスク110の各々の面は、フレクスチャアームに接続された関連するリード/ライトヘッドを有し得る。
データがストレージディスク110へ転送される時またはデータがストレージディスク110から転送される時、アクチュエータアームアセンブリ120は、ストレージディスク110の内径(ID)と外径(OD)との間の円弧を移動する。アクチュエータアームアセンブリ120は、電流がボイスコイルモータ128のボイスコイルを1つの方向に通過する時、1つの角方向に加速し、電流が逆流した時、反対の角方向に加速する。これにより、ストレージディスク110に対してアクチュエータアームアセンブリ120及び取り付けられたリード/ライトヘッド127の位置の制御が可能である。ボイスコイルモータ128は、特定のデータストレージトラック上でリード/ライトヘッド127の位置を決めるために、リード/ライトヘッド127によってサーボウェッジから読み出される位置決めデータを使用する従来のサーボシステムと接続されている。サーボシステムは、ボイスコイルモータ128のボイスコイルを介して駆動するために適切な電流を決定する。サーボシステムは、電流ドライバ及び関連した回路を使用して前記電流をドライブする。
ハイブリッドドライブ100は、ハイブリッドドライブとして構成されており、通常動作時に、データはストレージディスク110及び/またはフラッシュメモリデバイス135に格納され得る。ハイブリッドドライブ135において、フラッシュメモリデバイス135のような不揮発性メモリは、低消費電力同様に、より速いブート、ハイバネート、リジューム、及び他のデータリード・ライト動作を提供するために、回転ストレージディスク110を補完する。このようなハイブリッドドライブ構成は、モバイルコンピュータまたは他のモバイルコンピューティングデバイスのようなバッテリで動作されるコンピュータシステムに関して、特に有益である。好適な実施形態において、フラッシュメモリデバイスは、電気的に消去されることができ及び再プログラムすることができるNAND型フラッシュチップのような不揮発性半導体記憶媒体である。また、フラッシュメモリデバイスは、不揮発性記憶媒体としてハイブリッドドライブ100においてストレージディスク110を補完するようなサイズとされる。例えば、いくつかの実施形態において、フラッシュメモリデバイス135は、RAM134よりも大きな桁、例えばメガバイト(MB)に対するギガバイト(GB)、であるデータ記憶容量を有する。
図2は、発明の実施形態にしたがい構成され示される電子回路130の要素を有するハイブリッドドライブ100の動作を例示する図である。図2に示すように、ハイブリッドドライブ100は、RAM134、フラッシュメモリデバイス135、フラッシュマネジャデバイス136、システムオンチップ131、及びハイスピードデータパス138、を含む。ハイブリッドドライブ100は、シリアルアドバンスドテクノロジアタッチメント(SATA)バスのようなホストインタフェース20を介して、ホストコンピュータのようなホスト10に接続されている。
図2に例証された実施形態では、フラッシュマネジャデバイス136は、フラッシュメモリデバイス135のハイスピードデータパス138とインターフェースを制御する。フラッシュマネジャデバイス136は、NAND型インターフェースバス139を介して、フラッシュメモリデバイス135に接続されている。システムオンチップ131は、ハイブリッドドライブ100の動作を制御するためのマイクロプロセッサベースドコントローラ133及び(リードチャンネルを含む)他のハードウェアを含む。システムオンチップ131は、ハイスピードデータパス138を介してRAM134及びフラッシュマネジャデバイス136に接続されている。マイクロプロセッサベースドコントローラ133は、ARMマイクロプロセッサ、ハイブリッドドライブコントローラ、及びハイブリッドドライブ100内のいくつかの制御回路のようなマイクロコントローラを含み得る制御ユニットである。ハイスピードデータパス138は、ダブルデータレート(DDR)バス、DDR2バス、DDR3バス、などのような従来のハイスピードバスである。
フラッシュメモリデバイス135に転送されたデータは、書き込み要求の一部としてホスト10から直接受け入れられたライトデータ、またはリード要求の一部としてストレージディスク110から読み出されたデータであり得る。データが、フラッシュメモリデバイス135の高密度NAND型デバイスに転送された時、データは、前に消去されたNAND型メモリのブロックに書き込まれる。フラッシュメモリデバイス135に十分なイレースブロックがない場合、始めに、追加のメモリブロックが、所望のデータがフラッシュメモリデバイス135に転送される前に、消去されなければならない。これらの追加のメモリブロックは、フラッシュメモリデバイス135のみに格納されているデータである「ダーティ」データ、または、ストレージディスク110に既に格納されている対応するデータのコピーであるデータである「ノンダーティ」データを現在格納しているデータブロックであり得る。または、これらの追加のメモリブロックは、より新しいバージョンがフラッシュメモリデバイス135に書き込まれたデータである使用されていないデータを含み得る。ダーティデータは「排除」される前に、最初にストレージディスク110に「フラッシュ」されなければならないので、追加の時間が要求されるため、ダーティデータブロックよりもむしろ非ダーティデータブロックを消去することが一般的に望ましい。例えば、ストレージディスク110にデータをフラッシュすることは、ストレージディスク110に問題となっているデータを格納することを含む。イレースされるメモリブロックが、ダーティデータ、非ダーティデータ、及び/または使用されていないデータの混合を含む場合、「ガーベッジコレクション」の公知の処理が、フラッシュメモリデバイス135に転送される所望のデータを格納することに関して、十分なメモリブロックを提供するために、フラッシュメモリデバイス135でも実行され得る。ガーベッジコレクションの処理は、発明の様々な実施形態に該当するように、詳細は後述される。
いくつかの実施形態において、フラッシュメモリデバイス135にデータを書き込む処理を促進させるために、ハイブリッドドライブ100は、可能な際は、消去されすぐにデータ書き込みに利用可能であるフラッシュメモリデバイス135の所定の最適な割合を維持する。例えば、いくつかの実施形態で、ハイブリッドドライブ100は、可能な際は、消去され利用可能なフラッシュメモリデバイス135の容量の20%を維持し得る。
消去された状態のフラッシュメモリデバイス135の最適な割合より大きく維持することは、フラッシュメモリデバイス135によってキャッシュされるデータ量を減少させる。フラッシュメモリデバイス135に最適な割合よりも小さなデータをキャッシュさせることは、ホスト10によって「キャッシュミス」の頻度を増加させる。ここで、データは、比較的により高速なフラッシュメモリデバイス135からというよりもむしろデータストレージディスク110から読み出されなければならない。したがって、キャッシュミスは、ハイブリッドディスク100のパフォーマンスを低下させ、好適に回避される。
消去された状態のフラッシュメモリデバイス135の最適な割合より小さく維持することは、ハイブリッドドライブ100のパフォーマンスをも非常に低下し得る。なぜなら、フラッシュメモリデバイス135は、早くいっぱいにされ得るからであり、そのため、フラッシュメモリデバイス135は新しいデータを受け入れることができないからである。フラッシュメモリデバイス135がいっぱいである時、ホストからの次のライトコマンドはデータストレージディスク110に書き込まれなければならない。これは従来のディスクドライブに対するハイブリッドドライブ100の速度利点を減少させる。
通常動作で、フラッシュメモリデバイス135は、上述した所定の最適な割合よりも少ない消去され利用可能なメモリブロックを頻繁に有することができるということに注意する。例えば、ハイブリッドドライブ100は、ほとんどあるいは全くアイドル時間なく、フラッシュメモリデバイス135にデータを書き込ませるホスト10からの多数のコマンドを受信した時、フラッシュメモリデバイス135の利用可能なイレースメモリブロックのほとんどまたは全てがいっぱいにされ得る。
消去されデータを受信することが可能なフラッシュメモリデバイス135の一部が、所定の最適な割合よりも小さい時、ハイブリッドドライブ100は、フラッシュメモリデバイス135からデータを排除し始める。様々な排除方法は、どんなデータが排除されるべきかを選択することに関する周知の技術であり、ここに記載されない。一般的に、ハイブリッドドライブ100、または、いくつかの実施形態におけるフラッシュマネジャまたはコントローラは、ホスト10から再び要求されにくいフラッシュメモリデバイス135における排除のためのデータを選択する。ここで、データの選択は、データの使用の頻度及び/または最新さに基づいている。それゆえ、フラッシュメモリデバイス135は、ホスト10によって最近使用されたデータ及び最も頻繁に使用されたデータを含む。
ホスト10は、ユーザによっていわゆる「S4」または「ハイバネート」モードにセットされる時、ホスト10は、DRAMのような揮発性メモリの内容をハイブリッドドライブ100に保存し、完全にパワーダウンする。ハイバネーションに先行して保存されるデータは、しばしば「hiberfile」と称される単一のファイルで一般的に格納される。このようなハイバネーションデータは、ホスト10の揮発性メモリに現在ロードされる異なるファイル、設定、などの混合であり、ホスト10がパワーオフされた後でさえ、ホスト10の現在の状態が維持される。一般的に、このようなハイバネーションデータの最大サイズは、ハイバネーションデータを生成するだろうホスト10の物理的メモリのサイズにほぼ等しいまたは小さいサイズである。
ハイバネーションデータは、ハイバネート要求時、例えば、ハイブリッドドライブ100は、データを排除しメモリブロックを消去するためのアイドル時間はほとんどまたは全くなく、ホスト10からの複数のライトコマンドを最近受信した時、フラッシュメモリデバイス135に存在する消去されたメモリブロックのサイズを容易に超え得る。さらに、仮にハイバネーションデータが、数ギガバイト(GB)のオーダーのサイズであり得るならば、フラッシュメモリデバイス135が、その中に最大最適数のイレースメモリブロックの数を維持する時でさえ、このようなハイバネーションデータはフラッシュメモリデバイス135のイレースメモリブロックの記憶容量を超え得る。したがって、フラッシュメモリデバイス135の記憶容量は、始めにデータを排除することなく、ハイバネーションデータを格納するためにしばしば十分でないことがあり得る。結果として、ハイバネーションデータは、データストレージディスク110に直接書き込まれなければならない、または、データはハイバネーションデータのための空きを作るためにフラッシュメモリデバイス125から排除され得る。何れかの場合において、データは、ユーザはホスト10をクローズさせるような時、または、ホスト10を片付け及び/またはホスト10を運ぶような時、データストレージディスク110に書き込まれ得る。このような活動は、一般的に、衝撃、振動、及び、ハイブリッドドライブ100の稼動部分に損傷を与え得る他の物理的外乱を生成するため、このようにハイバネーションデータを記憶することは、非常に望ましくない。
格納するハイバネーションデータの一部としてデータストレージディスク110にデータが書き込まれる任意のシナリオを回避するために、フラッシュメモリデバイス135の一部は、ハイバネーションデータを格納するための専用の消去されたブロックとして取っておくことができる。このフラッシュメモリデバイス135の一部は、データを格納するために直ぐに利用可能であり、ホスト10によって発生され得るハイバネーションデータの最大可能容量を収容するようなサイズとされたイレースメモリブロックだけを含む。しかしながら、ハイバネーションデータ記憶のためだけに用意されたメモリブロックは他のデータのために使用されることができないので、及び、このような用意された部分はフラッシュメモリデバイス135の全容量のかなりの部分であり得るので、フラッシュメモリデバイス135のこのような構成は、一般的に実用的でない。例えば、ハイバネーションデータは、サイズが約4Gバイト(GBs)のオーダーであり得る、一方、典型的なフラッシュメモリデバイス135の全記憶容量は、サイズが約16Gバイト(GBs)のオーダーであり得る。したがって、この例において、フラッシュメモリデバイス135のストレージ容量の25%は、ハイバネーションデータが格納される時以外、アイドル状態のままであり、消去されたままである。
データストレージディスク110上よりもむしろフラッシュメモリデバイス135にハイバネーションデータを格納することは非常に望ましい一方、ハイバネーションデータのためだけのフラッシュメモリデバイス135の専用の部分の使用は望ましくない。なぜならば、フラッシュメモリデバイス135のハイバネーションデータの専用の部分は、本質的に利用されていないからである。したがって、いくつかの実施形態において、フラッシュメモリデバイス135の一部は、ハイバネーションデータを格納することができ得るだけの専用のメモリブロックを必要としないフラッシュメモリデバイス135の一部がハイバネーションデータを格納するために割り当てられる。さらに、ストレージがハイバネーションデータのために割り当てられる方法は、ハイブリッドドライブ100の性能において最小の影響である。特に、フラッシュメモリデバイス135にハイバネーションデータを格納するために割り当てられたメモリブロックは、データストレージディスク110に保存されることなく捨てられ得るデータを含んでいるメモリブロックと同様に、目下消去されるメモリブロックを含む。ハイバネーションデータを格納するために割り当てられたフラッシュメモリデバイス135の異なるメモリブロックのタイプについて、図3に関連してより詳細に記述される。
図3は、発明の実施形態にしたがって構成されており、フラッシュメモリデバイス135に含まれるメモリブロックの略図である。図3に示すように、フラッシュメモリデバイス135のメモリブロックはデータ領域301から305を含む。各領域は、それぞれ異なる分類のデータを含んでいる。異なる分類のデータは、例えば、システムデータ311、ダーティデータ312、非ダーティデータ313、トリムされたデータ314、及び使用されていないデータ315である。さらに、フラッシュメモリデバイス135は、イレース(消去された)データ領域320、イレースメモリブロックからなりデータを格納していないフラッシュメモリデバイス135の領域を含む。図3に例示される実施形態において、ホスト10によって要求された時、ハイバネーションデータを格納するために割り当てられるフラッシュメモリデバイス135のデータ領域は、データ領域303、304、及び305、及びイレースデータ領域320を含む。つまり、図3に例示される実施形態において、ハイバネーションデータ領域350は、イレースデータ領域320、及びデータ領域303、304、及び305を含む。他の実施形態において、ハイバネーションデータ領域350は、データ領域303、304、及び305の内の少なくとも一つ、及びイレースデータ領域320を含む。
データ領域301乃至データ領域305の各々、及びイレースデータ領域320は、フラッシュメモリデバイス135の個々の隣接する部分として図3に描かれている一方、データ領域301乃至データ領域305の内の1つ以上のデータ領域、及びイレースデータ領域320は、分けられ得る、つまり、データ領域301乃至データ領域305の内の1つ以上のデータ領域、及びイレースデータ領域320は、フラッシュメモリデバイス135の非隣接部分にわたって分散された複数のサブ領域を具備するということが理解される。したがって、データ領域301乃至データ領域305の各々及びイレースデータ領域320は、フラッシュメモリデバイス135の領域または様々なセパレートメモリブロックにわたって分けられ得る。しかし、各々は、一つのエンティティとして、それぞれ、みなされ得る。いくつかの実施形態で、データ領域301乃至データ領域305の各々は、1つ以上のメモリブロックの部分を含み得る。したがって、このようなメモリブロックは、システムデータ311、ダーティデータ312、非ダーティデータ313、トリムされたデータ314、及び/または使用されていないデータ315を含むだろう。
システムデータ311は、ファイルアロケーションテーブル、トランスレーションレイヤ等を含んでおり、ハイブリッドドライブ100及びまたはフラッシュメモリデバイス135のオペレーションを容易にするためのデータを含む。このように、システムデータ311、つまりデータ領域301、を含むフラッシュメモリデバイス135の一部は、ホスト10に関するハイバネーションデータの任意の部分のストレージに関して一般的に利用できない。
ダーティデータ312は、パフォーマンスのためにフラッシュメモリデバイスにだけ格納されており、データストレージディスクにまだ保存されていないデータを含む。上述したように、ダーティデータ312を含むフラッシュメモリデバイス135の一部、つまりデータ領域302にハイバネーションデータの任意の部分を書き込むことは、データストレージデバイス110にダーティデータ312のいくつかまたは全てをフラッシュすることをまず含むだろう。結果として、発明の実施形態において、データ領域302は、ハイバネーションデータを格納することが可能なメモリブロックに含まれない。
非ダーティデータ313は、データストレージディスク110上に格納されている対応するコピーを有するフラッシュメモリデバイス135に格納されているデータを含む。したがって、非ダーティデータ313が格納されているデータ領域、つまりデータ領域303、のいくつかまたは全ては、格納されたデータの損失なく、安全に排除されることができ、消去されることができる。いくつかの実施形態において、データ領域303は、ハイバネーションデータを格納することが可能なメモリブロックに含まれる。結果として、ハイブリッドドライブ100がハイバネーションデータを格納することをホスト10が要求する時、非ダーティデータ313は消去されることができ、ハイバネーションデータのいくつかまたは全てはデータ領域303に書き込まれることができる。それゆえ、データストレージディスク110に任意のデータを書き込むことなく、ハイバネーションデータを格納することができる。
トリムされたデータ314は、ホスト10がトリムコマンドを発行した他のデータと同様に、ホスト10がトリムコマンドを発行した任意の以前に格納されたハイバネーションデータの一部を含む。トリムされたデータ314に含まれるハイバネーションデータはホスト10の以前の状態を保存する、したがって要求されないだろう。したがって、トリムされたデータ314が格納されるデータ領域、すなわちデータ領域304、の内のいくつかまたは全ては、格納されたデータの損失なく安全に消去され得る。いくつかの実施形態にしたがって、データ領域304は、ハイバネーションデータを格納するために割り当てられたメモリブロックに含まれる。結果として、ホスト10はハイブリッドドライブ100がハイバネーションデータを格納することを要求する時、トリムされたデータ314は消去されることができ、ハイバネーションデータのいくつかまたは全てはデータ領域304に書き込まれ得る。それゆえ、データストレージディスク110に任意のデータを書き込むことなく、ハイバネーションデータを格納することができる。いくつかの実施形態において、ホスト10は特定のハイバネーションデータのインスタンスが使用されておらず、それゆえトリムされたデータ314に含まれるだろうということを示すTRIMコマンドをハイブリッドドライブ100に発行する。
使用されていないデータ315は、ホストによって「無効」とみなされるデータ、つまり、その時使用されていないデータが書き込まれた後のある時により新しいコピーがフラッシュメモリデバイス135のどこかに書き込まれるデータ、を含む。
イレースデータ領域320は、ハイバネーションデータのような書き込みデータを直ぐに受信することが可能であるイレースメモリブロックだけを含む。イレースデータ領域320は、ハイブリッドドライブ100の通常の動作の一部としてイレースメモリブロック321を含み得る。例えば、イレースメモリブロック321は、ライトデータを直ぐに受信することが可能であるフラッシュメモリデバイス135の所定の最適な部分を維持するために消去されるメモリブロックを含み得る。
上述したように、非ダーティデータ313、トリムされたデータ314、及び/または使用されていないデータ315は、フラッシュメモリデバイス135の多くのメモリブロック間で、断片化され、散りばめられ得る。結果的に、いくつかの実施形態において、データ領域303、304、及び/または305の一部は、過剰供給されたメモリブロックを含み得る。NAND型フラッシュだけともなったソリッドステートドライブ(SSD)において、過剰供給されたメモリブロックは、フラッシュメモリデバイス135の物理的容量の一部であるメモリブロックである。しかし、過剰供給されたメモリブロックは、論理的容量としてホストコンピューティングデバイスに一般的に提供されない。ハイブリッドドライブ100において、過剰供給されたメモリブロックは同様の目的を果たす。フラッシュメモリデバイス135の過剰供給された容量は使用されないだろう容量である。そのため、ユーザデータを含むフラッシュメモリデバイスの記憶容量の一部は、特定のレベルを超えないだろう。例えば、もしフラッシュメモリデバイス135の記憶容量の10%が過剰供給のために割り当てられるならば、ユーザデータを含むフラッシュメモリデバイス135の一部は、90%を決して超えないだろう。最も悪い場合、それらの使用されていないメモリセクションは、フラッシュメモリ内の全てのブロックに均等に分散するだろう。例えば、ハイブリッドドライブ100が1つの消去されたブロックを含むために、(ユーザデータを含んでいる各ブロックの90%及び使用されていないデータを含んでいる10%)10ブロックの内容を、消去され、再使用され得る1ブロックを残して9ブロックに統合するために、ガーベッジコレクションを使用することが必要だろう。過剰供給されるメモリブロックによって提供される余分なデータ記憶スペースは、フラッシュメモリデバイス135の通常の動作の間行われる、バッドブロックマッピングオペレーション、ウェアレベリング、及びガーベッジコレクションの間利用可能である。発明の実施形態において、これらの過剰供給されたメモリブロックは、ハイバネーションデータがフラッシュメモリデバイス135に書き込まれ時利用可能であると知られているので、このような過剰供給されたメモリブロックはハイバネーションデータ領域350に含まれ得る。このため、ガーベッジコレクション、ウェアレベリング、及びバッドブロックマッピングオペレーションは、ハイバネーションデータが書き込まれた後一般的に行われない。なぜなら、(ホスト10とともに)ハイブリッドドライブ100は、まさにパワーオフしようとしているからである。ハイブリッドドライブ100及びホスト10がパワーバックオンしハイバネーションデータがホスト10により読み出された後、ホスト10はハイバネーションデータをトリムするだろう。そして、関連するメモリブロックは消去され、そして、再使用またはフラッシュメモリデバイス135の過剰供給容量の一部とされるかの何れかであり得る。ハイバネーションデータは、一般的に、非常に大きな連続するデータセクタ群である。データがトリムされると、ドライブが関連するフラッシュブロックの使用を回復することは比較的容易である。なぜなら、もし全てでないにしてもほとんどのブロックがそのトリムされたデータだけを含むならば、ほとんどガーベッジコレクションはそれらを回復するために必要とされない。
発明のいくつかの実施形態によれば、ハイブリッドドライブ100はイレースデータ領域320及びデータ領域303の一部、データ領域304、及び/またはデータ領域305をハイバネーションデータ領域350の一部として割り当てる。ハイバネーションデータ領域350は、ホスト10によって生成され得る最も大きい可能性があるハイバネーションデータを収納する記憶容量を有するようなサイズとされる。いくつかの実施形態において、コマンドがハイバネーションデータ領域350のサイズをそのような所定の記憶容量以下に減少させることができるハイブリッドドライブ100によって受信される時、ハイブリッドドライブ100によって受信されるデータは、データストレージディスク110に直接書き込まれる。他の実施形態において、このようなコマンドがハイブリッドドライブ100によって受信される時、データ領域303、304、及び305、及びイレースデータ領域320の1つ以上は、データがハイブリッドドライブ100によって受信される前にそれに応じてサイズが増加される。
例えば、ある実施形態において、ハイバネーションデータ領域350の所望の記憶領域は4GBである。ハイブリッドドライブ100の通常動作中のある時、ハイバネーションデータ領域350は、3GBの記憶領域を有するイレースデータ領域320、1GBの記憶領域を有するデータ領域303、及び、1GBの記憶領域を有するデータ領域304、を含む。したがって、この時点で、ハイバネーションデータ領域350は、5GBの記憶容量を有する。ホスト10からのライト要求群がハイブリッドドライブ100により受信される際、データはイレースデータ領域320に直接書き込まれる。図3において、新たに書き込まれるデータを受信するイレースデータ領域320の一部はデータ領域302の一部として考慮され、新たに書き込まれるデータはダーティデータ312の一部として考慮される。結果として、データがハイブリッドドライブ100に書き込まれる際、イレースデータ領域320はサイズが減少し、ダーティデータ312を格納するデータ領域302はサイズが増加する。ハイバネーションデータ領域350は、イレースデータ領域320を含む、それゆえ、イレースデータ領域320のメモリブロックがデータを受け入れ、ダーティデータ領域304のメモリブロックになる時、ハイバネーションデータ領域350はサイズが減少する。ハイブリッドドライブ100は、データを受信し続け、データストレージディスク110にダーティデータをフラッシュするために十分なアイドル時間がない場合、この処理は、イレースデータ領域320が2GBにサイズが減少されるまで継続する。この際、この説明の役に立つ例において、イレースデータ領域320のサイズが2GBに減少され、データ領域303及び304は各々1GBの記憶容量を有する時、ハイバネーションデータ領域350の記憶容量は、ハイバネーションデータ領域350の4GB最小所望記憶領域に減少される。ハイブリッドドライブ100は、ホスト10から直接受信される追加のデータをデータストレージディスク110に書き込むことによってハイバネーションデータ領域350のサイズを能動的に管理する。このように、ハイバネーションデータ領域350の最小所望記憶容量は維持され、ホスト10によって要求される際、データストレージディスク110にデータを書き込むことを必要とすることなく、ハイバネーションデータはフラッシュメモリデバイス135に格納され得る。または、ハイブリッドドライブ100は、データストレージディスク110にダーティデータ312の一部をフラッシュすることによってサイズの面でハイバネーションデータ領域350が増加するまで、代わりにデータを受信することを止めてもよい。
ある実施形態において、ハイブリッドドライブ100は、受信したライトデータをストレージディスク100に直接送るのとは対照的に、新たなライトデータがフラッシュメモリデバイス135に受け入れられるか否かを決定する際、通常動作中に、他の要因を考慮することができる。すなわち、ハイブリッドドライブ100は、ハイバネーションデータ領域350のサイズを所定の最小サイズよりも大きいまたは等しいサイズ、つまり、ホスト10によって生成され得る全てのハイバネーションデータを格納するために十分大きいサイズに維持するために必要なガーベジコレクションを行うために要求される時間を考慮することができる。ガーベジコレクションの処理は、現在のブロックから他の(消去された)ブロックに同一のコピーがストレージディスク110上にも存在する全てのダーティデータ及び無効なデータをコピーすることから構成される。コピー操作は、現在のブロックに格納されている無効なデータを排除するため、コピーされたデータは1つの消去されたブロックに一般的に満たない。例えば、もし、2つのブロックの各々の半分が、ストレージディスク110上に同一のコピーをともなった無効なデータ及び/またはダーティデータを含むならば、これら2つのブロックは、1つの消去されたブロックに「ガーベジコレクション」され(つまり、コピーされ)得る。そのため、消去されることができ、使用できるようにすることができる2つのブロックを提供することができる。
新たなライトデータがフラッシュメモリデバイス135に受け入れられるべきか否かを決定するガーベジコレクション時間を考慮する際、ハイブリッドドライブ100は、ガーベジコレクションの時間が係り過ぎて、ハイバネーションデータ領域350のサイズを増加させることができない、あるいは、その代わりにストレージディスク100に直接データを書き込むことができないだろうということを決定し得る。特に、もし、ノンダーティデータ313、トリムされたデータ314、及び/または使用されていないデータ315のいくつかが、多くのイレースブロック間に広がるならば、それらのブロックを統合するための非常に長い時間が必要とされ得、そのため、新しいハイバネーションデータを受け入れることができる消去されたブロックを生成する。例えば、もしフラッシュメモリデバイス135の利用可能容量の0.1%が10%のブロック間に均等に広がり、そのため、そのブロックの各々の1%は非ダーティデータ315、トリムされたデータ314、及び/または使用されていないデータ315を含むならば、ハイブリッドドライブ100は、新たなデータを受け入れることができる単一ブロックを生成するために、約100ブロックを統合する必要があるだろう。このような状況において、ハイブリッドドライブ100は、データ領域305のこれらの部分をハイバネーションデータの格納のために利用を使用できるとは考慮しないかもしれない。したがって、いくつかの実施形態において、ハイブリッドドライブ100は、ハイバネーションデータのストレージのために利用可能であり、ハイバネーションデータ領域305の一部として見なされるフラッシュメモリデバイス135の量を決定する際、どのブロックを含むべきかを決定するために、非ダーティデータ313、トリムされたデータ314、及び/または使用されていないデータ315のフラグメンテーションの状態についての情報を使用することができる。その結果として、ハイバネーションデータのストレージのために利用可能であるフラッシュメモリデバイス135の量は、フラッシュメモリデバイス135で、非ダーティデータ313、トリムされたデータ314、及び/または使用されていないデータ315よりも小さいことがあり得る。しかしながら、もし、非ダーティデータ313、トリムされたデータ314、及び/または使用されていないデータ315のほとんどまたは全てが、容量の実質的な部分がこれらの消去可能なデータタイプの1つであるブロックにあるならば、データ領域303、304、及び305のほとんどまたは全ては、ハイバネーションデータのストレージのために利用可能であり、ハイバネーションデータ領域350の一部であり得る。
ハイブリッドドライブ100がハイバネーション領域350のサイズを最小の所望ストレージ容量に減少させるために、十分短い期間で十分なデータを受信する状況は比較的まれである。したがって、ここで記述される発明の実施形態は、ハイブリッドドライブ100のパフォーマンスに関して一般的にほとんど影響がない。しかしながら、データストレージディスク110に任意のデータが書き込まれることなく、ハイバネーションデータがフラッシュメモリデバイスに格納され得るようにハイブリッドドライブ100が構成される。
ハイブリッドドライブ100が十分なアイドル時間がある時、ダーティデータ312のいくつかまたは全てはデータストレージディスク110にフラッシュされ得る、そのため、ダーティデータ312は、非ダーティデータに変換され、データ領域303はサイズの面で増加するということに注意する。したがって、通常動作中に、ハイブリッドドライブ100は、ハイバネーションデータ領域350がすでに最小の所望記憶領域より大きい時でさえ、ハイバネーションデータ領域350の記憶容量を増加するための措置を一般的にとる。
フラッシュメモリデバイス135のハイバネーションデータ領域350の1つ以上の部分にハイバネーションデータを書き込む際、ハイブリッドドライブ100は、ハイバネーションデータ領域350が少なくとも所定の最小サイズと同じくらいで維持されるポリシイに反する。その結果として、いくつかの実施形態で、ハイブリッドドライブ100は、ストレージのためにそこに転送されるデータがハイバネーションデータであるということを決定する、または通知される。このように、ハイブリッドドライブ100は、ハイバネーションデータを書き込むことができ、ハイバネーションデータ領域350を実質的にいっぱいにすることができる。
いくつかの実施形態において、ハイブリッドドライブ100は、次のライトコマンドがハイバネーションデータを含むというホスト10からの通知を受信し、したがって、ハイバネーションデータ領域350にハイバネーションデータを書き込む。他の実施形態において、ホスト10は、所定範囲の論理ブロックアドレス(LBA)にハイバネーションデータを格納するように構成される。このような実施形態において、ハイブリッドドライブ100は、受信したデータが受信したデータのLBAの範囲に基づき、ハイバネーションデータを含むか否かを認識することができ、それゆえ、ハイバネーションデータ領域350にハイバネーションデータを書き込むことができる。さらに他の実施形態において、ホスト10から受信したデータが、ホスト10と直接情報のやりとりをすることなく、または、ホスト10と所定のLBA範囲を調整することなく、ハイバネーションデータを含むか否かを、ハイブリッドドライブ100は独自に決定することができる。例えば、ハイブリッドドライブは、データストレージディスク110またはフラッシュメモリデバイス135に格納されたホスト10と関連するパーティションテーブルを検出するためのアルゴリズムから構成され得る。ハイブリッドドライブ100は、ホスト10によって生成されたハイバネーションデータのために使用されるLBA範囲を決定するために、パーティションテーブル及びファイルシステムを調べることができる。他の例において、アルゴリズムは、「hiberfil.sys」と名づけられたファイルのようなハイバネーションデータである周知の特定のファイルを検出することができる。そのため、このようなファイルがハイブリッドディスク100に書き込まれる際、ファイルはハイバネーションデータ領域350に書き込まれる。さらに他の例において、アルゴリズムは、パワーダウンの直前及び起動の直後に、ホスト10との情報のやりとりを監視することによって、ハイバネーションデータが受信されていることを決定することができる。特に、ファイルは、ファイルのサイズに基づき、ハイバネーションデータであると推定され得る。ホスト10がファイルを書き込んだ後すぐにパワーオフするということ、ホスト10が起動した後すぐにファイルを読み出すということ、起動しファイルが読み出された後すぐにホスト10によってTRIMコマンドが発行されること、ファイルを受信する前に異常に大きな入力または出力がホスト10とハイブリッドドライブ100との間で交換されるかどうか、等に基づき、ファイルがハイバネーションデータであると推定され得る。
いくつかの実施形態において、ハイバネーションデータは、複数ビットの情報を各々のメモリセルに格納することができるモードでハイバネーションデータ領域350に書き込まれ得る。例えば、ハイバネーションデータ領域350のメモリセルは、シングルビット情報よりも多くの情報を格納することが可能なマルチレベルセルとしてハイバネーションデータを格納することができる。マルチレベルセルへの書き込み時間はシングルレベルセルへよりもかなり長い。しかし、ハイバネーションデータの書き込みは、ホスト10がパワーダウンしており、もはや能動的に使用中ではない時に行われるので、このようなレイテンシはシステムの実際の性能に悪く影響しない。さらに、マルチレベルセルのデータ保持力は、シングルレベルセルのデータ保持力よりも小さいことが知られている。しかしながら、ハイバネーションデータは、定義により、パワーダウンする前にホスト10から受信した実質的に最後のファイルであり、起動した後ホスト10によって読み出された基本的に最初のファイルであるので、ハイバネーションデータの寿命は、それほど実質的な問題ではない。
図4は、発明の実施形態にしたがって、ハイブリッドドライブにデータを格納するための方法ステップのフローチャートを説明する。その方法ステップは、図1及び図2のハイブリッドドライブ100に関連して記述されるけれども、当業者は方法400は他のタイプのシステムにおいて行われ得るということを理解するだろう。いくつかの実施形態で、方法400の前に、ハイブリッドドライブ100は、以前に保存されたハイバネーションデータに関連する所定のLBA範囲に基づいて、または、保存される次のファイルがハイバネーションデータであることを示しているコマンドのようなホスト10によって提供される情報に基づいて、または、ホスト10とハイブリッドドライブ100との間の情報のやりとりを監視することによって、ホスト10から受信されるハイバネーションデータを識別すべき方法を決定する。さらに、方法400の前に、ハイブリッドドライブ100は、ホスト10からのハイバネーションデータを格納するために、フラッシュメモリデバイス135に十分な記憶容量を割り当てる。方法400に関する制御アルゴリズムは、コントローラ133、フラッシュマネジャデバイス136、またはホスト10にあり得る。
図4に示すように、方法400は、ハイブリッドドライブ100がホスト10から格納されるべきハイバネーションデータを受信する際、ステップ401から開始される。上述したように、ハイブリッドドライブ100は、ステップ401において受信したデータがハイバネーションデータを含み、次のステップにおいてその結果に応答するということを決定する。
ステップ402において、ハイブリッドドライブ100は、ハイブリッドドライブ100の移動部分に生じるダメージに関する可能性が最小にされるようにリード/ライトヘッド127を待機させ、スピンドルモータ114をスピンダウンし始める。
ステップ403において、ハイブリッドドライブ100は、ステップ401において受信したデータをハイバネーションデータ領域350に書き込む。ステップ403は、ステップ402、つまり、リード/ライトヘッド127が待機され、スピンドルモータ114がスピンダウンされている間、と同時に行われ得る。上述したように、ハイバネーションデータ領域350は、データ領域303及びデータ領域304の少なくとも一つ、及び、イレースデータ領域320を含む。ハイバネーションデータ領域350は、イレースメモリブロックではないデータ領域303、304、及び/または305の少なくとも一つを含むので、そこに含まれるデータがデータ領域303及び/またはデータ領域304に書き込まれる前にまず消去される。データ領域303は非ダーティデータ313のみを含み、データ領域304はトリムされたデータ314のみを含み、データ領域305は使用されていないデータ315のみを含むので、これらのデータ領域の各々の内容は、ストレージディスク110にフラッシュされることなく消去され得る。
図5は、発明の実施形態における、揮発性メモリを有し不揮発性記憶装置に接続されるハイブリッドドライブ100のようなコンピュータデバイスをハイバネートするための方法ステップのフローチャートを説明する。図1及び図2に示すハイブリッドドライブ100と関連して方法ステップが記述されるけれども、当業者は、他のシステムタイプで方法500が行われ得るということを理解するだろう。いくつかの実施形態において、方法500の前に、ハイブリッドドライブ100は、ホスト10からのハイバネーションデータを格納するフラッシュメモリデバイス135に十分な記憶容量を割り当てる。方法500のための制御アルゴリズムは、コントローラ133、フラッシュマネジャデバイス136、またはホスト10にあり得る。
図5に示すように、方法500は、コンピュータデバイスが例えばコンピュータデバイスのエンドユーザからハイバネートコマンドを受信する際、ステップ501から開始する。コンピュータデバイスは、DRAMのような揮発性メモリを有し、半導体メモリ及び磁気メモリを含むハイブリッドドライブに接続される任意の技術的に可能なコンピュータデバイスであり得る。適切なコンピュータデバイスはデスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、個人用デジタル補助装置(PDA)、タブレットコンピュータ、または、データを格納及び処理するように構成された他のタイプのコンピュータデバイスを含む。
ステップ501でハイバネーションコマンドを受信した後、ステップ502において、磁気メモリに揮発性メモリの内容を格納することなく、半導体メモリの第1の部分及び第2の部分に揮発性メモリの内容を格納する。第1の部分は、イレースメモリブロックを含み、第2の部分は、磁気ドライブに格納されているデータ、古いハイバネーションデータ、及び/または使用されていないデータ、の何れかを格納しているメモリブロックを含む。すなわち、コンピュータデバイスは、フラッシュメモリデバイス135のハイバネーションデータ領域350にハイバネーションデータを格納する。
図6は、発明の実施形態における、揮発性メモリを有し不揮発性記憶装置に接続されているハイブリッドドライブ100のようなコンピュータデバイスにデータを格納する方法ステップのフローチャートを説明する。方法ステップは、図1及び図2に示すように、ハイブリッドドライブ100に関連して記述されるけれども、当業者は、方法600が他のシステムタイプで実行され得るということを理解するだろう。方法600に関する制御アルゴリズムは、コントローラ133、フラッシュマネジャデバイス136、またはホスト10にあり得る。コンピュータデバイスは、方法500に関連して上述したような任意の技術的に可能なコンピュータデバイスであ得る。
図6に示すように、方法600は、コンピュータデバイスがコンピュータデバイスの通常動作中に不揮発性記憶装置にライトコマンドを送信する時、ステップ601で開始する。
ステップ602で、フラッシュメモリデバイス135に割り当てられた記憶スペース、つまり、ハイバネーションデータ領域350、の結合されたデータ記憶容量が所定の閾値よりも小さい時、コンピュータデバイスは、データストレージディスク110にデータを書き込む。つまり、ハイバネーションデータ領域350がハイバネーションデータを格納するための最小許容サイズである時、ハイバネーションデータ領域350は、前記最小許容サイズに等しいまたは前記最小許容サイズよりも大きいことを維持するように、コンピュータデバイスはデータストレージディスク110にデータを格納する。このように、ハイバネーションデータ領域350は、あるデータがデータストレージディスク110にフラッシュされることなく、ハイバネーションデータを即座に格納するために使用され得る。
以上のように、発明の実施形態において、ハイブリッドドライブのフラッシュメモリデバイスにハイバネーションデータを格納するためのシステム及び方法を提供する。ハイバネーションデータのために十分な記憶容量を有するフラッシュメモリデバイスにハイバネーションデータ領域を割り当てることによって、ハイブリッドドライブは、ハイブリッドドライブの記憶ディスク部分にデータを格納することもなく、いつでもハイバネーションデータを格納することができる。有利に、発明の実施形態において、ハイブリッドドライブのディスクドライブ部分をシャットダウンするとともに、ハイバネーションデータが格納され得る。したがって、物理的外乱からディスクドライブ部分を保護することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100…ディスクドライブ、110…ストレージディスク、127…リード/ライトヘッド、133…コントローラ、134…RAM、135…フラッシュメモリデバイス、350…ハイバネーションデータ領域。

Claims (20)

  1. 半導体メモリ及び磁気メモリから構成される不揮発性記憶装置に接続されており、揮発性メモリを有するデバイスをハイバネートするための方法であって、
    前記方法は、
    ハイバネートコマンドを受信することと、
    前記ハイバネートコマンドを受信すると、前記磁気メモリに前記揮発性メモリの内容を格納することなく、前記半導体メモリの第1の部分及び第2の部分に前記揮発性メモリの内容を格納することとを具備し、
    前記第1の部分は、イレースメモリブロックを含み、
    前記第2の部分は、前記磁気メモリにも格納されるデータ、無効なデータ、及び、前記デバイスに関連する以前のハイバネーションファイルの内容、の少なくとも一つを格納しているメモリブロックを含む方法。
  2. 前記半導体メモリの前記第1の部分及び第2の部分に格納される前記揮発性メモリの内容は、前記デバイスに関連するハイバネーションファイルである請求項1記載の方法。
  3. 前記半導体メモリの前記第1の部分及び前記第2の部分に前記揮発性メモリの内容を格納する前に、前記磁気メモリの磁気ヘッドの待機を始めることをさらに具備する請求項1記載の方法。
  4. 前記ハイバネートコマンドを受信する前に、前記ハイバネートコマンドに関連するハイバネーションファイルを格納するために十分な前記第1の部分及び前記第2の部分の結合されたデータ記憶容量を維持することをさらに具備する請求項1記載の方法。
  5. 前記第1の部分及び前記第2の部分の前記結合されたデータ記憶容量が所定の閾値より小さい時、前記半導体メモリではなく前記磁気メモリにデータを格納することをさらに具備する請求項4記載の方法。
  6. 前記所定の閾値は、前記揮発性メモリの前記データ記憶容量より大きくない請求項5記載の方法。
  7. 前記以前のハイバネーションファイルの内容は、前記デバイスによってトリムされている請求項1記載の方法。
  8. 前記半導体メモリの前記第1の部分及び前記第2の部分に前記揮発性メモリの内容を格納する前に、前記半導体メモリの前記第2の部分にガーベジコレクション処理を行うことをさらに具備する請求項1記載の方法。
  9. 半導体メモリ及び磁気メモリから構成される不揮発性記憶装置に接続されており、揮発性メモリを有するデバイスにデータを格納する方法であって、
    前記方法は、
    前記デバイスをハイバネートすることに関連していないライトコマンドを前記不揮発性記憶装置に転送することと、
    前記半導体メモリに割り当てられた記憶スペースの結合されたデータストレージ容量が所定の閾値より小さい時、前記磁気メモリにデータを書き込むことを具備し、
    前記割り当てられたストレージスペースは、第1の部分及び第2の部分を具備し、
    前記第1の部分は、イレースメモリブロックを含み、
    前記第2の部分は、前記磁気メモリにも格納されるデータ、無効なデータ、及び、前記デバイスに関連する以前のハイバネーションファイルの内容、の少なくとも一つを格納しているメモリブロックを含む方法。
  10. 前記磁気メモリに書き込まれる前記データは前記ライトコマンドに関連するデータを含む請求項9記載の方法。
  11. 前記磁気メモリにデータを書き込むことは、前記半導体メモリにではなく、前記磁気メモリに、前記ライトコマンドに関連するデータを書き込むことを具備する請求項10記載の方法。
  12. 前記磁気メモリに書き込まれる前記データは、前記半導体メモリのメモリブロックに格納されるデータを含み、前記ライトコマンドに関連する前記データは前記半導体メモリの前記メモリブロックが消去された後、前記半導体メモリに書き込まれる請求項9記載の方法。
  13. 前記ライトコマンドに関連するデータは、ハイバネーションファイルの内容を含まない請求項9記載の方法。
  14. 前記所定の閾値は、前記ライトコマンドに関連する量のデータを格納するために必要なデータストレージ容量を加えた前記揮発性メモリのデータストレージ容量よりも大きくない請求項9記載の方法。
  15. 前記以前のハイバネーションファイルの前記内容は、前記デバイスによってトリムされている請求項9記載の方法。
  16. 前記第2の部分は、前記磁気メモリにも格納されるデータ、無効なデータ、及び、前記デバイスに関連する以前のハイバネーションファイルの内容、の少なくとも一つにガーベジコレクション処理を行うことによって、一部分において形成される請求項9記載の方法。
  17. 磁気メモリと、
    半導体メモリと、
    ストレージコントローラとを具備する不揮発性データ記憶装置であって、
    前記ストレージコントローラは、前記不揮発性記憶装置のホストデバイスをハイバネートすることに関連しないライトコマンドを受信し、前記半導体メモリに割り当てられたストレージスペースの結合されたデータストレージ容量が所定の閾値よりも小さい時、前記磁気メモリにデータを書き込み、
    前記割り当てられたストレージスペースは、第1の部分及び第2の部分を具備し、
    前記第1の部分は、イレースメモリブロックを含み、
    前記第2の部分は、前記磁気メモリにも格納されるデータ、無効なデータ、及び、前記デバイスに関連する以前のハイバネーションファイルの内容、の少なくとも一つを格納しているメモリブロックを含む不揮発性データ記憶装置。
  18. 前記以前のハイバネーションファイルの内容は、前記デバイスによってトリムされている請求項17記載の不揮発性データ記憶装置。
  19. 前記ストレージコントローラは、前記磁気メモリにデータを書き込む際、前記半導体メモリにではなく、前記磁気メモリに、前記ライトコマンドに関連するデータを書き込む請求項17記載の不揮発性データ記憶装置。
  20. 前記所定の閾値は、前記ライトコマンドに関連する量のデータを格納するために必要なデータストレージ容量を加えた前記揮発性メモリのデータストレージ容量よりも大きくない請求項17記載の不揮発性データ記憶装置。
JP2013153054A 2012-12-06 2013-07-23 ハイブリッド・ディスク・ドライブにおけるハイバネーションファイルの低オーバーヘッドストレージ Abandoned JP2014115977A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/707,505 2012-12-06
US13/707,505 US9417820B2 (en) 2012-12-06 2012-12-06 Low-overhead storage of a hibernation file in a hybrid disk drive

Publications (1)

Publication Number Publication Date
JP2014115977A true JP2014115977A (ja) 2014-06-26

Family

ID=50882292

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013153054A Abandoned JP2014115977A (ja) 2012-12-06 2013-07-23 ハイブリッド・ディスク・ドライブにおけるハイバネーションファイルの低オーバーヘッドストレージ

Country Status (2)

Country Link
US (2) US9417820B2 (ja)
JP (1) JP2014115977A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014179095A (ja) * 2013-03-14 2014-09-25 Seagate Technology Llc ハイバネーションからの迅速な再開のための装置、方法およびデバイス

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694814B1 (en) * 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US9792218B2 (en) * 2011-05-20 2017-10-17 Arris Enterprises Llc Data storage methods and apparatuses for reducing the number of writes to flash-based storage
DE112011105700T5 (de) 2011-10-01 2014-07-17 Intel Corporation Schneller Ruhezustand- und schnelle Wiederinbetriebnahme für eine Plattform von Computersystem
US8984316B2 (en) 2011-12-29 2015-03-17 Intel Corporation Fast platform hibernation and resumption of computing systems providing secure storage of context data
US9417820B2 (en) * 2012-12-06 2016-08-16 Kabushiki Kaisha Toshiba Low-overhead storage of a hibernation file in a hybrid disk drive
US9032139B2 (en) * 2012-12-28 2015-05-12 Intel Corporation Memory allocation for fast platform hibernation and resumption of computing systems
US9641378B1 (en) * 2013-03-12 2017-05-02 Western Digital Technologies, Inc. Adjustment of compression ratios for data storage
US9626126B2 (en) 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management
US9946495B2 (en) * 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
US9836232B1 (en) * 2015-09-30 2017-12-05 Western Digital Technologies, Inc. Data storage device and method for using secondary non-volatile memory for temporary metadata storage
US10416887B1 (en) 2016-05-18 2019-09-17 Marvell International Ltd. Hybrid storage device and system
US10056147B1 (en) * 2016-06-02 2018-08-21 Marvell International Ltd. Two-level storage device with faster front end
JP7030463B2 (ja) * 2017-09-22 2022-03-07 キオクシア株式会社 メモリシステム
TWI739075B (zh) * 2019-01-03 2021-09-11 慧榮科技股份有限公司 閃存的資料寫入方法及電腦程式產品
US11199991B2 (en) * 2019-01-03 2021-12-14 Silicon Motion, Inc. Method and apparatus for controlling different types of storage units
US20230086149A1 (en) * 2021-09-23 2023-03-23 Intel Corporation Reducing memory power usage in far memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07130115A (ja) * 1993-11-08 1995-05-19 Toshiba Corp 情報処理装置
JP2004164185A (ja) * 2002-11-12 2004-06-10 Sony Corp 揮発性システムメモリ及び不揮発性半導体メモリを備えたコンピュータ機器
JP2009181314A (ja) * 2008-01-30 2009-08-13 Toshiba Corp 情報記録装置およびその制御方法
JP2012123499A (ja) * 2010-12-07 2012-06-28 Toshiba Corp メモリシステム
JP2012529692A (ja) * 2009-06-10 2012-11-22 マイクロン テクノロジー, インク. メモリアレイにおける読み出し待ち時間を短縮するためのメモリ操作の一時停止

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7412565B2 (en) * 2003-08-18 2008-08-12 Intel Corporation Memory optimization for a computer system having a hibernation mode
US20110145489A1 (en) * 2004-04-05 2011-06-16 Super Talent Electronics, Inc. Hybrid storage device
US7464240B2 (en) * 2006-05-23 2008-12-09 Data Ram, Inc. Hybrid solid state disk drive with controller
US7620784B2 (en) 2006-06-09 2009-11-17 Microsoft Corporation High speed nonvolatile memory device using parallel writing among a plurality of interfaces
KR100866962B1 (ko) * 2007-03-08 2008-11-05 삼성전자주식회사 Hdd를 하이브리드 hdd에서 노멀 hdd로 전환시키는방법
US7899987B2 (en) 2007-05-15 2011-03-01 Sandisk Il Ltd. File storage in a computer system with diverse storage media
US8347029B2 (en) * 2007-12-28 2013-01-01 Intel Corporation Systems and methods for fast state modification of at least a portion of non-volatile memory
US8621144B2 (en) 2008-06-26 2013-12-31 Intel Corporation Accelerated resume from hibernation in a cached disk system
US9063728B2 (en) * 2010-03-17 2015-06-23 Apple Inc. Systems and methods for handling hibernation data
US8443221B2 (en) * 2011-03-04 2013-05-14 Sandisk Technologies Inc. Methods, systems, and computer readable media for advanced power management for serial advanced technology attachment (SATA)-based storage devices
US8671241B2 (en) * 2011-09-13 2014-03-11 Dell Products Lp Systems and methods for using reserved solid state nonvolatile memory storage capacity for system reduced power state
US8935689B2 (en) * 2012-08-13 2015-01-13 International Business Machines Corporation Concurrent embedded application update and migration
US9417820B2 (en) * 2012-12-06 2016-08-16 Kabushiki Kaisha Toshiba Low-overhead storage of a hibernation file in a hybrid disk drive

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07130115A (ja) * 1993-11-08 1995-05-19 Toshiba Corp 情報処理装置
JP2004164185A (ja) * 2002-11-12 2004-06-10 Sony Corp 揮発性システムメモリ及び不揮発性半導体メモリを備えたコンピュータ機器
JP2009181314A (ja) * 2008-01-30 2009-08-13 Toshiba Corp 情報記録装置およびその制御方法
JP2012529692A (ja) * 2009-06-10 2012-11-22 マイクロン テクノロジー, インク. メモリアレイにおける読み出し待ち時間を短縮するためのメモリ操作の一時停止
JP2012123499A (ja) * 2010-12-07 2012-06-28 Toshiba Corp メモリシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014179095A (ja) * 2013-03-14 2014-09-25 Seagate Technology Llc ハイバネーションからの迅速な再開のための装置、方法およびデバイス

Also Published As

Publication number Publication date
US20140164675A1 (en) 2014-06-12
US9804784B2 (en) 2017-10-31
US9417820B2 (en) 2016-08-16
US20160320970A1 (en) 2016-11-03

Similar Documents

Publication Publication Date Title
US9804784B2 (en) Low-overhead storage of a hibernation file in a hybrid disk drive
US11830546B2 (en) Lifetime mixed level non-volatile memory system
US9910784B2 (en) Methods and systems for directly mapping a backend block address into a physical address of a caching device
US7568068B2 (en) Disk drive with cache having volatile and nonvolatile memory
US8327076B2 (en) Systems and methods of tiered caching
CN107622022B (zh) 数据存储设备中的高速缓存超量配置
CN107622023B (zh) 限制数据存储设备中的访问操作
US9158700B2 (en) Storing cached data in over-provisioned memory in response to power loss
US10289408B2 (en) Managing wear of system areas of storage devices
US20100325352A1 (en) Hierarchically structured mass storage device and method
JP2014160450A (ja) データストレージデバイスおよび書き込み方法
JP2009181314A (ja) 情報記録装置およびその制御方法
JP2013242908A (ja) ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法
US20150277764A1 (en) Multi-mode nand-caching policy for hybrid-hdd
US9965181B2 (en) Hybrid-HDD with multiple caching modes
US9459802B1 (en) Hybrid-HDD that limits dirty data in NAND
JP2015135603A (ja) ストレージ装置及びデータを書き込む記憶領域を選択する方法
US20110167214A1 (en) Method And Apparatus To Manage Non-Volatile Disk Cache
JP5594647B2 (ja) ストレージ装置及びその制御方法
JP2014175036A (ja) データストレージデバイスおよび方法
US11967370B1 (en) Lifetime mixed level non-volatile memory system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150812

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160916

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170221

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20170317