(57)【要約】【課題】ＳＬＣ領域とＭＬＣ領域とを備える不揮発性半導体ディスクドライブを有効に利用できる情報処理装置および制御方法を実現する。【解決手段】実施形態によれば、休止制御手段は、休止要求に応答して、前記揮発性メモリの内容を含むシステムコンテクストデータを前記ＳＬＣ領域内の第１記憶領域にセーブする。レジューム制御手段は、レジューム要求に応答して、前記第１の記憶領域から前記システムコンテクストデータを読み出して前記揮発性メモリの内容を復元する。解放手段は、前記システムコンテクストデータの読み出し完了に応答して、前記第１記憶領域が他のデータの格納に使用可能になるように前記第１の記憶領域を解放する。【選択図】図２
2013073498.tif 000002
【特許請求の範囲】
【請求項１】
揮発性メモリと、
シングルレベルセル（ＳＬＣ）領域とマルチレベルセル（ＭＬＣ）領域とを備える不揮発性半導体ディスクドライブと、
休止要求に応答して、前記揮発性メモリの内容を含むシステムコンテクストデータを前記ＳＬＣ領域内の第１記憶領域にセーブする休止制御手段と、
レジューム要求に応答して、前記第１の記憶領域から前記システムコンテクストデータを読み出して前記揮発性メモリの内容を復元するレジューム制御手段と、
前記システムコンテクストデータの読み出し完了に応答して、前記第１記憶領域が他のデータの格納に使用可能になるように前記第１の記憶領域を解放する解放手段とを具備する情報処理装置。
【請求項２】
前記解放手段は、前記システムコンテクストデータの読み出し完了に応答して、前記第１記憶領域を解放すべきことを前記不揮発性半導体ディスクドライブに指示するように構成されている請求項１記載の情報処理装置。
【請求項３】
前記休止制御手段は、前記システムコンテクストデータの書き込み開始を前記不揮発性半導体ディスクドライブに対して通知し、この後に、前記システムコンテクストデータを前記不揮発性半導体ディスクドライブに書き込むためのライト要求を、前記不揮発性半導体ディスクドライブに送信するように構成され、
前記不揮発性半導体ディスクドライブは、ライト要求の受信に応答して、前記システムコンテクストデータの書き込み開始が通知されているか否かを判定し、通知されている場合、前記受信されたライト要求に付随するライトデータを前記第１記憶領域に書き込むように構成されている請求項１記載の情報処理装置。
【請求項４】
前記不揮発性半導体ディスクドライブは、前記システムコンテクストデータの書き込み開始の通知を受信した場合、前記ＳＬＣ領域内に前記第１記憶領域を確保するように構成されている請求項１記載の情報処理装置。
【請求項５】
シングルレベルセル（ＳＬＣ）領域とマルチレベルセル（ＭＬＣ）領域とを備える不揮発性半導体ディスクドライブを備えた情報処理装置の制御方法であって、
休止要求に応答して、前記情報処理装置内の揮発性メモリの内容を含むシステムコンテクストデータを、前記ＳＬＣ領域内の第１記憶領域にセーブし、
レジューム要求に応答して、前記第１の記憶領域から前記システムコンテクストデータを読み出して前記揮発性メモリの内容を復元し、
前記システムコンテクストデータの読み出し完了に応答して、前記第１記憶領域が他のデータの格納に使用可能になるように前記第１の記憶領域を解放する制御方法。
【請求項６】
前記第１の記憶領域を解放することは、前記システムコンテクストデータの読み出し完了に応答して、前記第１記憶領域を解放すべきことを前記不揮発性半導体ディスクドライブに指示することを含む請求項５記載の制御方法。
【請求項７】
シングルレベルセル（ＳＬＣ）領域とマルチレベルセル（ＭＬＣ）領域とを備える不揮発性半導体ディスクドライブを備えたコンピュータに、
休止要求に応答して、前記情報処理装置内の揮発性メモリの内容を含むシステムコンテクストデータを、前記ＳＬＣ領域内の第１記憶領域にセーブする手順と、
レジューム要求に応答して、前記第１の記憶領域から前記システムコンテクストデータを読み出して前記揮発性メモリの内容を復元する手順と、
前記システムコンテクストデータの読み出し完了に応答して、前記第１記憶領域が他のデータの格納に使用可能になるように前記第１の記憶領域を解放する手順とを実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、不揮発性半導体ディスクドライブを備えた情報処理装置および同装置に適用される制御方法に関する。
【背景技術】
【０００２】
近年、ラップトップ型パーソナルコンピュータ、デスクトップ型パーソナルコンピュータのような様々なコンピュータが開発されている。このようなコンピュータの多くは、パワーマネージメント機能を有している。パワーマネージメント機能は、コンピュータのステートを稼働ステート（ワーキングステート）からスリープステートまたは休止状態（ハイバネートステート）に遷移させることができる。休止状態は、メモリの内容を含むシステムコンテクストデータ（ハイバネートデータ）がハードディスクドライブのような不揮発性記憶装置にセーブされた状態で、ほとんど全てのシステムコンポーネントがパワーオフされるステートである。
【０００３】
また、最近のコンピュータにおいては、ハードディスクドライブ（ＨＤＤ）の代わりに、不揮発性半導体ディスクドライブ、例えば、ソリッドステートドライブ（ＳＳＤ）が利用されている。ＳＳＤには、シングルレベルセル（ＳＬＣ）型ＳＳＤとマルチレベルセル（ＭＬＣ）型ＳＳＤとの２つのタイプがある。ＳＬＣ型ＳＳＤは、ＭＬＣ型ＳＳＤと比べ、書き換え可能回数が多い、アクセス速度が速い、という特徴を有する。しかしながら、ＳＬＣ型ＳＳＤは、ＭＬＣ型ＳＳＤよりも高コストである。したがって、ほとんどの場合、パーソナルコンピュータにおいてはＭＬＣ型ＳＳＤが利用されている。
【０００４】
最近では、ＳＬＣ領域とＭＬＣ領域の双方を備えるＳＳＤも開発され始めている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１９８４０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、現状では、ＳＬＣ領域とＭＬＣ領域の双方を備えるＳＳＤの活用方法は限られており、頻繁に書き換えが必要とされるデータ、たとえばファイル管理情報等、の格納にＳＬＣ領域を使用するといった方法等が用いられているだけである。
【０００７】
パーソナルコンピュータのコストアップを招くこと無く、パーソナルコンピュータの動作速度および信頼性を高めるためには、ＳＬＣ領域とＭＬＣ領域とを備えるＳＳＤを有効利用するための新たな技術の実現が必要である。
【０００８】
本発明は、ＳＬＣ領域とＭＬＣ領域とを備える不揮発性半導体ディスクドライブを有効に利用できる情報処理装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
実施形態によれば、情報処理装置は、揮発性メモリと、不揮発性半導体ディスクドライブと、休止制御手段と、レジューム制御手段と、解放手段とを具備する。前記不揮発性半導体ディスクドライブは、シングルレベルセル（ＳＬＣ）領域とマルチレベルセル（ＭＬＣ）領域とを備える。前記休止制御手段は、休止要求に応答して、前記揮発性メモリの内容を含むシステムコンテクストデータを前記ＳＬＣ領域内の第１記憶領域にセーブする。レジューム制御手段は、レジューム要求に応答して、前記第１の記憶領域から前記システムコンテクストデータを読み出して前記揮発性メモリの内容を復元する。解放手段は、前記システムコンテクストデータの読み出し完了に応答して、前記第１記憶領域が他のデータの格納に使用可能になるように前記第１の記憶領域を解放するように構成されている。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係る情報処理装置の外観を示す斜視図。
【図２】同実施形態の情報処理装置の概要を説明するための図。
【図３】同実施形態の情報処理装置のシステム構成を示すブロック図。
【図４】同実施形態の情報処理装置によって実行されるハイバネート状態への遷移処理の手順を示すフローチャート。
【図５】同実施形態の情報処理装置によって実行されるハイバネート状態から稼動状態への遷移処理の手順を示すフローチャート。
【図６】同実施形態の情報処理装置に設けられたＳＳＤによって実行されるデータ書き込み処理の手順を示すフローチャート。
【図７】同実施形態の情報処理装置のＢＩＯＳの構成を示す図。
【発明を実施するための形態】
【００１１】
以下、実施の形態について図面を参照して説明する。
【００１２】
図１は、本実施形態に係る情報処理装置の外観を示す斜視図である。この情報処理装置は、例えばノートブックタイプのパーソナルコンピュータ（ＰＣ）１０として実現される。また、この情報処理装置は、サーバー、デスクトップＰＣ、タブレットＰＣ、スレートＰＣ等として実現してもよい。
【００１３】
図１に示すように、本コンピュータ１０は、コンピュータ本体１１及びディスプレイユニット１２とから構成される。ディスプレイユニット１２には、ＬＣＤ１６（Liquid Crystal Display）から構成される表示装置が組み込まれている。
【００１４】
ディスプレイユニット１２は、コンピュータ本体１１の上面が露出される開放位置とコンピュータ本体１１の上面を覆う閉塞位置との間を回動自在にコンピュータ本体１１に取り付けられている。コンピュータ本体１１は薄い箱形の筐体を有しており、その上面にはキーボード１３、本コンピュータ１０をパワーオン／パワーオフするためのパワーボタン１４およびポインティングデバイス１５として例えばタッチパッドが配置されている。他のタイプの情報処理装置においては、ポインティングデバイス１５としてマウスやタッチパネル等が備えられるとしても良い。
【００１５】
コンピュータ本体１１の内部には、ソリッドステートドライブ（ＳＳＤ）１１６が設けられている。ＳＳＤ１１６は、不揮発性半導体ディスクドライブであり、例えばＮＡＮＤ型フラッシュメモリを備える。ＮＡＮＤ型フラッシュメモリの記憶領域を構成するセルの構造のタイプには、シングルレベルセル（ＳＬＣ）とマルチレベルセル（ＭＬＣ）とがある。この２つの異なるセルは、性能やコスト等の面で異なる特徴を有する。性能に関して、ＳＬＣは１ビットのデータを記録できるのに対して、ＭＬＣは２ビット以上のデータを記録することができる。そのため、一般的に、ＳＬＣは、ＭＬＣに比べ、１つのセルが占有する面積あたりのコストが高くなる。それゆえに、ＳＬＣよりもＭＬＣの方が広く利用される。ＳＬＣは、ＭＬＣよりも、データを書き換えることができる回数が多い。そのため、ＳＬＣはＭＬＣよりも高い信頼性を持ったセルであるといえる。さらに、ＳＬＣは、ＭＬＣよりも、データ書き込み速度、及びデータ読出し速度が速い。なお、ＳＳＤ１１６に含まれるＮＡＮＤ型フラッシュメモリは、ＮＡＮＤ型フラッシュメモリ以外でもよく、上述したようなＳＬＣやＭＬＣ等の異なる特性を持った不揮発性メモリであればよい。
【００１６】
次に、図２を参照し本実施形態の概要について述べる。  
コンピュータ１０は電源に関する様々な状態を遷移する。電源に関する様々な状態とは、例えば稼動状態、スリープ状態（サスペンド状態）、および休止状態（ハイバネート状態）等である。稼動状態とは、コンピュータ１０の電源がオンの状態である。つまり、稼動状態は、コンピュータ１０が起動した状態である。稼動状態は、コンピュータ１０に含まれるＣＰＵやＬＣＤ１６等の構成部品に電力が供給されている状態である。スリープ状態は、システムコンテクストが格納された揮発性メモリ（ＲＡＭ）等に電力を供給し、ＲＡＭ以外のほとんど全ての構成部品をパワーオフした状態でもある。
【００１７】
一方、ハイバネート状態は、揮発性メモリ（ＲＡＭ）の内容を含むシステムコンテクストデータ（ハイバネートデータ）がハードディスクドライブのような不揮発性記憶装置にセーブされた状態で、ＲＡＭを含むほとんど全てのシステムコンポーネントがパワーオフされた状態である。したがって、例えばハイバネート状態では、スリープ状態と異なりコンピュータ１０に電力が供給されていなくてもよい。また、コンピュータ１０を起動させる際に、ハイバネートデータを読み出すことで、ハイバネート状態に遷移する直前のコンピュータ１０の状態をリストア（復元）することができる。ハイバネート状態は、ＡＰＣＩ（Advanced Configuration and Power Interface）仕様ではＳ４の状態を指す。
【００１８】
次に、図２を参照して本実施形態の概要について具体的に説明する。  
本実施形態では、ハイバネートデータは不揮発性記憶装置にセーブされる。上述のＳＳＤ１１６が不揮発性記憶装置として用いられる。ＳＳＤ１１６は、ＳＬＣ領域２０及びＭＬＣ領域２１の２つの領域を含む。ＳＬＣ領域２０は、ＳＬＣタイプの多数のセルから構成された記憶領域である。ＭＬＣ領域２１は、ＭＬＣタイプの多数のセルから構成された記憶領域である。ＳＬＣ領域２０及びＭＬＣ領域２１は、各々上述したようなＳＬＣ及びＭＬＣの特徴を持った領域である。また、データのリード及びライトに関して、ＭＬＣ領域２１よりもＳＬＣ領域２０の方がデータのリード及びライトの速度が速い。ＭＬＣ領域２１の記憶容量は、ＳＬＣ領域２０の記憶容量よりも大きい。
【００１９】
ハイバネートデータは、図２に示す論理アドレス空間上で、１０番目のアドレスから２０番目のアドレスに割り当てられている。論理アドレス空間上に割り当てられたハイバネートデータは、ＳＳＤ１１６の物理アドレス空間上のＳＬＣ領域２０に書き込まれる。なお、図２で、物理アドレス空間は、物理アドレス空間１及び物理アドレス空間２の２つの異なる名称で示されているが、説明の都合により名称が異なる。そのため、物理アドレス空間１及び物理アドレス空間２は、ＳＳＤ１１６の同一の物理アドレス空間を示している。
【００２０】
本実施形態でハイバネートデータはＳＬＣ領域２０内に確保された記憶領域（第１記憶領域）に書き込まれるが、本実施形態の有用性を説明するために、まず、ハイバネートデータがＭＬＣ領域２１に書き込まれる場合を想定して説明する。上述したように、不揮発性メモリを使用した場合、データの書き換え可能な回数が存在する。そのため、ＳＳＤ１１６はこの書き換え回数が限界に達することを避けるために、例えば物理アドレス空間上の同一の番号のアドレスで示される領域にデータを書き込まないようにする平準化処理を行う。例えば、稼動状態からハイバネート状態への遷移処理が複数回行われた場合、すなわちハイバネートデータが不揮発性メモリに複数回書き込まれた場合、図２に示すように物理アドレス空間１上の３つの異なるアドレスで示される領域にハイバネートデータが書き込まれることになる。
【００２１】
具体的に、例えばハイバネート状態への遷移処理が３回行われた場合、１回目のハイバネート状態への遷移処理で、論理アドレス空間の１０番目のアドレスから２０番目のアドレスに割り当てられたハイバネートデータは、物理アドレス空間１の３０番目のアドレスから４０番目のアドレスで示される領域に書き込まれる（図２ではＨｉｂｅｒｎａｔｅデータ（ｏｌｄ）で示されている。）。２回目のハイバネート状態への遷移で、論理アドレス空間の１０番目のアドレスから２０番目のアドレスに割り当てられたハイバネートデータは、物理アドレス空間１の５０番目のアドレスから６０番目のアドレスで示される領域に書き込まれる（図２ではＨｉｂｅｒｎａｔｅデータ（ｏｌｄ）で示されている。）。３回目のハイバネート状態への遷移で、論理アドレス空間の１０番目のアドレスから２０番目のアドレスに割り当てられたハイバネートデータは、物理アドレス空間１の７０番目のアドレスから８０番目のアドレスで示される領域に書き込まれる（図２ではＨｉｂｅｒｎａｔｅデータ（ｎｅｗ）で示されている。）。このように、同一のアドレスで示される論理アドレス空間上の領域に割り当てられたハイバネートデータは、物理アドレス空間１上の異なるアドレスで示される領域に書き込まれる。なお、ハイバネートデータが書き込まれる際の論理アドレスから物理アドレスへの変換は、ＳＳＤ１１６によって処理される。
【００２２】
次に、ハイバネートデータがＳＬＣ領域２０に格納される場合について説明する。本実施形態では、ＳＬＣ領域２０にハイバネートデータが書き込まれる。ＳＬＣ領域２０に書きこまれたハイバネートデータは平準化処理の対象とならないように処理される。
【００２３】
具体的には、論理アドレス空間の１０番目のアドレスから２０番目のアドレスに割り当てられたハイバネートデータは、物理アドレス空間２のＳＬＣ領域２０の０番目のアドレスから１０番目のアドレスで示される領域に書き込まれる。その後、例えばハイバネート状態から稼動状態に遷移し、再び稼動状態からハイバネート状態に遷移した場合、論理アドレス空間の１０番目のアドレスから２０番目のアドレスに割り当てられたハイバネートデータは、一度ハイバネートデータが書きこまれた領域である物理アドレス空間２のＳＬＣ領域２０の０番目のアドレスから１０番目のアドレスで示される領域に再び書き込まれる。
【００２４】
また、ハイバネートデータは、コンピュータ１０がハイバネート状態に遷移またはハイバネート状態から稼動状態に遷移する場合に、一時的に使用されるデータである。換言すると、ハイバネートデータは、ハイバネート状態から例えば稼動状態に遷移した後、再び使用されないデータである。そのため、上述したように、平準化処理によって異なるアドレスで示される物理アドレス空間１上の複数の記憶領域（例えば、図２のＨｉｂｅｒｎａｔｅ（ｏｌｄ）やＨｉｂｅｒｎａｔｅ（ｎｅｗ）で示された領域。）にハイバネートデータを格納することは不要にデータを分散させることになる。また、上述したように、ＭＬＣ領域２１へのライトの速度及びリードの速度よりもＳＬＣ領域２０へのライトの速度及びリードの速度の方が速いため、ＳＬＣ領域２１にハイバネートデータを書き込むことによって、コンピュータ１０がハイバネート状態への遷移及びハイバネート状態からの例えば稼動状態への遷移に必要な時間を短くすることができる。
【００２５】
さらに、ハイバネートデータは上述したように一時的に使用されるデータであるため、ハイバネート状態から他の状態に遷移した後、ハイバネートデータが書き込まれていたＳＬＣ領域２０内の記憶領域を解放することができる。ハイバネートデータが格納されていたＳＬＣ領域２０を解放することによって、上述したようにＭＬＣ領域２１よりも高性能なＳＬＣ領域２０に他のデータを書き込むことによって、ＳＬＣ領域２０の特徴を生かし、ＳＬＣ領域２０を有効に利用することができる。
【００２６】
また、ＳＳＤ１１６は、ハイバネートデータを書き込む場合、ＳＬＣ領域内にハイバネートデータを書き込むためのＳＬＣ領域内に記憶領域を確保するように構成されている。そのために、本実施形態では、ハイバネートデータを書き込む記憶領域に、例えばハイバネートデータと異なる他のデータが書き込まれていた場合、書き込まれていた他のデータを他の記憶領域に移動させるための処理が行われる。
【００２７】
次に、図３を参照して、コンピュータ１０のシステム構成例を説明する。  
コンピュータ１０は、ＣＰＵ１１１、ノースブリッジ１１２、主メモリ（ＤＲＡＭ）１１３、グラフィクスコントローラ１１４、サウスブリッジ１１５、ＳＳＤ１１６、ネットワークコントローラ１１７、ＢＩＯＳ−ＲＯＭ１１８、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１１９、および電源回路１２０等を備えている。
【００２８】
ＣＰＵ１１１は、コンピュータ１０の各コンポーネントの動作を制御するプロセッサである。ＣＰＵ１１１は、さらに、ＳＳＤ１１６から主メモリ１１３にロードされるオペレーティングシステム（ＯＳ）４０および図示しない各種アプリケーションプログラムを実行する。
【００２９】
ノースブリッジ１１２は、ＣＰＵ１１１のローカルバスとサウスブリッジ１１５との間を接続するブリッジデバイスである。また、ノースブリッジ１１２は、グラフィクスコントローラ１１４との通信を実行する機能も有している。さらに、ノースブリッジ１１２には、ＤＲＡＭ１１３を制御するメモリコントローラも内蔵されている。
【００３０】
グラフィクスコントローラ１１４は、コンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１６を制御する表示コントローラである。サウスブリッジ１１５は、ＰＣＩ（Peripheral Component Interconnect）バスおよびＬＰＣ（Low Pin Count）バスにそれぞれ接続されている。
【００３１】
エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１１９は、電力管理のためのエンベデッドコントローラと、キーボード（ＫＢ）１３およびポインティングデバイス１５などを制御するキーボードコントローラとが集積された１チップマイクロコンピュータである。ＥＣ／ＫＢＣ１１９は、電源回路１２０と共同して、ユーザによるパワーボタンスイッチ１４の操作に応じてコンピュータ１０を電源オン／電源オフする。電源回路１２０は、コンピュータ本体１１に内蔵されたバッテリ１２１またはＡＣアダプタ１２２を介して供給される外部電源を用いて、コンピュータ１０の各コンポーネントに供給すべきシステム電源を生成する。
【００３２】
ＳＳＤ１１６は、インタフェース４０、コントローラ４１、ＮＡＮＤ型フラッシュメモリ４２、アドレス変換テーブルを備える。  
インタフェース４０は、サウスブリッジ１１５とコントローラ４１を接続するためのインタフェースである。ＮＡＮＤ型フラッシュメモリ４２は、コントローラ４１と接続されており、上述したようなＳＬＣ領域２０及びＭＬＣ領域２１から構成される不揮発性メモリである。アドレス変換テーブル４３は、コントローラ４３と接続されており、論理アドレス空間の論理アドレス値及び物理アドレス空間の物理アドレス値を格納したテーブルである。
【００３３】
コントローラ４１は、アドレス変換テーブル４３及びＮＡＮＤ型フラッシュメモリ４２と接続されている。コントローラ４１は、例えばＮＡＮＤ型フラッシュメモリ４２へのデータの書き込み、ＮＡＮＤ型フラッシュメモリ４２からのデータの読み出し、及び上述したような平準化処理等の制御をする。
【００３４】
コントローラ４１は、データをＳＳＤ１１６に書き込むためのライト要求を受信し、そのライト要求データをＮＡＮＤ型フラッシュメモリ４２に書き込む処理をする。ライト要求は、ライトデータの論理アドレスを含んでいる。コントローラ４１は、その論理アドレスによって示されるライトデータをＮＡＮＤ型フラッシュメモリ４２の特定の記憶領域に書き込む。コントローラ４１は、ライトデータが書き込まれた特定の記憶領域が示す物理アドレス値をアドレス変換テーブル４３に保存する。アドレス変換テーブル４３に保存された物理アドレス値は、その物理アドレスに書きこまれたライトデータの論理アドレスの値と対応づけられている。
【００３５】
コントローラ４１は、ＯＳ４０からのデータリード要求を受信し、ＮＡＮＤ型フラッシュメモリ４２の特定の記憶領域に書きこまれたデータを読み出す。リード要求は、例えば読み出すデータの論理アドレスを含んでいる。コントローラ４１は、アドレス変換テーブル４３を参照して、リード要求が示す論理アドレスに対応した物理アドレスを特定する。コントローラ４１は、特定した物理アドレスによって示されるＮＡＮＤ型フラッシュメモリ４２内の記憶領域からデータを読み出す。コントローラ４１は、その読み出したデータをＤＲＡＭ１１３等にロードする。
【００３６】
次に、図４を参照して、稼動状態からハイバネート状態への遷移処理について説明する。  
始めに、コンピュータ１０を使用するユーザが、電源がオンの状態、つまり稼動状態のコンピュータ１０の電源をオフの状態にする操作をする。この操作は、例えばユーザがパワーボタン１４を押すこと等によって生じるイベントを意味する。このイベントに従い、ＯＳ４０は、コンピュータ１０を稼動状態からハイバネート状態に遷移させるための要求（休止要求）を、ＢＩＯＳ−ＲＯＭ１１８に格納されているＢＩＯＳに送る。ハイバネートデータは、主メモリ１１３の内容含むシステムコンテクストデータである。ハイバネートデータは、主メモリ１１３の内容のみならず、主メモリ１１３以外の他の揮発性メモリ（例えばビデオメモリ等）の内容、ＣＰＵ１１１の各レジスタ値などの情報も含む。ハイバネートデータは、ＯＳ４０によって主メモリ１１３上に用意される。ＢＩＯＳは、この休止要求に応じて、揮発性メモリ（主メモリ１１３等）の内容を含むハイバネートデータをＳＬＣ領域２０内の特定の記憶領域（第１記憶領域）にセーブする処理を実行する。
【００３７】
具体的には、ＢＩＯＳは、まず、ＳＬＣ領域２０へのハイバネートデータの書き込みを開始する通知（以下、ハイバネート開始の通知とも称す。）をＳＳＤ１１６に送る（ステップ１２）。上述したように、本実施形態では、ＳＬＣ領域２０内の第１記憶領域に書き込まれたハイバネートデータは一時データとして扱われ、ハイバネートデータが第１記憶領域から読み出された後は、第１記憶領域に他のデータを書き込むことができるがように第１記憶領域は解放される。この解放は、例えばコントローラ４１のレジスタに、ハイバネートデータが格納されていた第１の記憶領域を解放することを指示する解放フラグをセットすることなどによって行われる。
【００３８】
コンピュータ１０がハイバネート状態に遷移する際、ＢＩＯＳは、すでにセットされている解放フラグをリセットするために、ＳＳＤ１１６内の解放フラグをリセットする（ステップＳ１２）。これによって、たとえハイバネート状態のコンピュータ１０からＳＳＤ１１６が取り外して何らかのデータをＳＳＤ１１６に書き込む必要が生じた場合であっても、ハイバネートデータが書き込まれている第１記憶領域が他のデータによって上書きされることがなくなる。
【００３９】
コントローラ４１は、ハイバネート開始の通知を受信した後に受信するライト要求に付随するライトデータはハイバネートデータであると認識する。ＢＩＯＳは、ハイバネートデータをＳＳＤ１１６に書き込むためのライト要求を、ＳＳＤ１１６のコントローラ４１に送信する（ステップＳ１４）。このライト要求にライトアドレスとして含まれる論理アドレス範囲は論理アドレス１０−２０である。
【００４０】
ＢＩＯＳは、ＳＳＤ１１６に対するハイバネートデータの書き込みが完了すると、つまりハイバネートデータのセーブが完了すると、電源回路１２０と共同して、コンピュータ１０の電源をオフする制御をする。コンピュータ１０の電源をオフにすることで、コンピュータ１０をハイバネート状態に遷移させる処理が終了する。
【００４１】
次に、図５を参照してハイバネート状態から稼動状態への遷移について説明する。  
始めに、コンピュータ１０を使用するユーザが、コンピュータ１０の電源をオンにするための操作を行う。この操作は、例えばパワーボタン１４を押す等の操作である。この操作によって、コンピュータ１０が電源オンされる。コンピュータ１０が電源オンされた時、ＣＰＵ１１１は、最初に、ＢＩＯＳを実行する。ＢＩＯＳは、ハイバネート状態におけるコンピュータ１０の電源オンのイベントを、コンピュータ１０をハイバネート状態から稼動状態に遷移させるための要求（レジューム要求）として認識する。ＢＩＯＳは、このレジューム要求に応答して、第１の記憶領域からハイバネートデータを読み出して主メモリ１１３の内容を復元する（ステップＳ２２）。ステップＳ２２では、ＢＩＯＳは、論理アドレス１０−２０をリードアドレスとして含むリード要求をＳＳＤ１１６のコントローラ４１に送る。アドレス変換テーブル４３においては、ハイバネートデータが格納されている第１の記憶領域の物理アドレス範囲に対応する論理アドレス範囲として論理アドレス１０−２０が登録されている。したがって、コントローラ４１は、上述のリード要求に従って、第１の記憶領域からデータ（ハイバネートデータ）を読み出す。
【００４２】
読み出されたハイバネートデータは主メモリ１１３等にリロードされる。ハイバネートデータの読み出しが完了すると、ＢＩＯＳは、読み出したハイバネートデータが格納されていた第１記憶領域が他のデータの格納に使用可能になるように、第１の記憶領域を解放する（ステップＳ２４）。このステップＳ２４では、ＢＩＯＳは、ハイバネートデータが格納されている第１記憶領域を解放するための解放フラグをコントローラ４１にセットし、これによって、第１記憶領域を解放すべきことをコントローラ４１に指示する（ステップＳ２４）。コントローラ４１は、第１記憶領域内のハイバネートデータを無効化し、これによって第１記憶領域を解放する。この場合、コントローラ４１は、第１記憶領域のデータを消去してもよい。
【００４３】
ＢＩＯＳが第１記憶領域の解放をコントローラ４１に明示的に指示する代わりに、ハイバネートデータの読み出しが完了時に、コントローラ４１が、ハイバネートデータが格納されていた第１領域を解放するための設定を自動的に行ってもよい。
【００４４】
次に図６を参照して、ＳＳＤ１１６のコントローラ４１のデータ書き込みの制御について説明する。なお、図６の処理は、ハイバネートデータ以外のデータの書き込みの処理も含む。  
ＯＳ４０またはＢＩＯＳから受信したライト要求を受信した場合、ＳＳＤ１１６は、ハイバネート開始の通知をすでに受信しているかどうかを判定する（ステップＳ３２）。ハイバネート開始の通知をすでに受信しているならば（ステップＳ３２のＹＥＳ）、ＳＳＤ１１６は、ライト要求に付随するライトデータがハイバネートデータであると認識する。そして、ＳＳＤ１１６は、このライトデータをＳＬＣ領域２０内に確保した第１記憶領域に書き込む（ステップＳ４０）。ハイバネートデータを格納するための記憶領域をＳＬＣ領域２０内に確保するための処理は、例えば、ハイバネート開始の通知を受信した時にＳＳＤ１１６によって実行される。
【００４５】
ハイバネート開始の通知を受信していないならば（ステップＳ３２のＮＯ）、ＳＳＤ１１６は、解放フラグがセットされているかどうか判定する（ステップＳ３４）。ＳＳＤ１１６は、解放フラグがセットされていると判定した場合（ステップＳ３４のＹＥＳ）、ＳＬＣ領域２０及びＭＬＣ領域２１を含む全記憶領域をライト可能領域として認識し、このライト可能領域から選択される所定の記憶領域にライトデータを書き込む（ステップＳ３６）。ＳＳＤ１１６は、解放フラグがセットされていないと判定した場合（ステップＳ３４のＮＯ）、ＭＬＣ領域２１のみをライト可能領域として認識し、このＭＬＣ領域２１内から選択される所定の記憶領域にライトデータを書き込む（ステップＳ３８）。
【００４６】
最後に、図７を参照してＢＩＯＳ７０の構成を説明する。ＢＩＯＳ７０は、休止制御部７２、レジューム制御部７４、及び記憶領域解放部７６を備える。なお、記憶領域解放部７６の機能は、ＳＳＤ１１６内のコントローラ４１によって実行してもよい。  
休止制御部７２は、コンピュータ１０を稼動状態からハイバネート状態に遷移させる制御をする。具体的には、ＯＳ４０等からの休止要求に応答して、休止制御部７２は、主メモリ１１３等の揮発性メモリの内容を含むハイバネートデータをＳＬＣ領域２０内の特定の記憶領域にセーブする。レジューム制御部７４は、コンピュータ１０をハイバネート状態から稼動状態に遷移させる制御をする。具体的には、コンピュータ１０がハイバネート状態に遷移した後のコンピュータ１０の電源オン等のイベント（レジューム要求）に応答して、レジューム制御部７４は、ＳＬＣ領域２０内のハイバネートデータが格納されている記憶領域からハイバネートデータを読み出し、主メモリ１１３等の揮発性メモリの内容を復元する。これにより、コンピュータ１０内のＣＰＵ１１１、主メモリ１１３、他の各種デバイスの状態はハイバネート状態に遷移する直前の状態に復元され、コンピュータ１０は、ハイバネート状態に遷移する直前の状態から処理を再開する。
【００４７】
記憶領域解放部７４は、ＳＳＤ１１６からのハイバネートデータの読み出し完了に応答して、ハイバネートデータが格納されている第１記憶領域を解放すべきことをＳＳＤ１１６に指示する。具体的には、記憶領域解放部７４は、ハイバネートデータの読み出しが完了したことに応答して、ハイバネートデータが格納されていた記憶領域が、他のデータを格納できる記憶領域になるようにハイバネートデータが格納されていた記憶領域を解放する。なお、記憶領域解放部７４は、ハイバネートデータを無効化するためのコマンドをＳＳＤ１１６に送信し、これによって第１記憶領域の解放をＳＳＤ１１６に指示してもよい。ハイバネートデータを無効化するためのコマンドとしては、トリムコマンドを用いてもよい。
【００４８】
以上のように、本実施形態によれば、コンピュータ１０をハイバネート状態に遷移させる際、ハイバネートデータがＳＬＣ領域２０に格納されるため、より高速に稼動状態とハイバネート状態とを遷移させることができる。また、ハイバネートデータが読み出された後、読み出したハイバネートデータが格納されていたＳＬＣ領域２０内の記憶領域を解放することで、解放したＳＬＣ領域２０を他のデータが利用できるため、信頼性、性能、及びコスト等の面でＳＬＣ領域２０の特性を効率よく使用することできる。
【００４９】
なお、本実施形態では、ＭＬＣタイプのＮＡＮＤ型フラッシュメモリの記憶領域内の一部の記憶領域をＳＬＣモードで制御することによって、この一部の記憶領域を上述のＳＬＣ領域として使用することもできる。ＳＬＣモードで制御される記憶領域内の各セルは物理的にはＭＬＣであるが、これら各セルは１ビットのみが書き込まれるように制御される。
【００５０】
また、図４および図５のフローチャートで説明した手順は全てプログラムによって実行することができるので、このプログラムを、このプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００５１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５２】
１０…コンピュータ、４０…ＯＳ、４１…コントローラ、４２…ＮＡＮＤ型フラッシュメモリ、４３…アドレス変換テーブル、４４…ＳＬＣ領域、４５…ＭＬＣ領域、７０…ＢＩＯＳ、７２…休止制御部、７４…レジューム制御部、７６…記憶領域解放部、１１３…主メモリ（ＤＲＡＭ）、１１６…ＳＳＤ。
【図１】
2013073498.tif 000003
【図２】
2013073498.tif 000004
【図３】
2013073498.tif 000005
【図４】
2013073498.tif 000006
【図５】
2013073498.tif 000007
【図６】
2013073498.tif 000008
【図７】
2013073498.tif 000009
【手続補正書】
【提出日】平成24年11月9日(2012.11.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
揮発性メモリと、
シングルレベルセル（ＳＬＣ）領域とマルチレベルセル（ＭＬＣ）領域とを備える不揮発性半導体ディスクドライブと、
休止要求を受ける度に、前記揮発性メモリの内容を含むシステムコンテクストデータを前記ＳＬＣ領域内の第１記憶領域にセーブする休止制御手段と、
レジューム要求に応答して、前記第１の記憶領域から前記システムコンテクストデータを読み出して前記揮発性メモリの内容を復元するレジューム制御手段と、
前記システムコンテクストデータの読み出し完了に応答して、前記第１記憶領域が他のデータの格納に使用可能になるように前記第１の記憶領域を解放する解放手段とを具備する情報処理装置。
【請求項２】
前記解放手段は、前記システムコンテクストデータの読み出し完了に応答して、前記第１記憶領域を解放すべきことを前記不揮発性半導体ディスクドライブに指示するように構成されている請求項１記載の情報処理装置。
【請求項３】
前記休止制御手段は、前記システムコンテクストデータの書き込み開始を前記不揮発性半導体ディスクドライブに対して通知し、この後に、前記システムコンテクストデータを前記不揮発性半導体ディスクドライブに書き込むためのライト要求を、前記不揮発性半導体ディスクドライブに送信するように構成され、
前記不揮発性半導体ディスクドライブは、ライト要求の受信に応答して、前記システムコンテクストデータの書き込み開始が通知されているか否かを判定し、通知されている場合、前記受信されたライト要求に付随するライトデータを前記第１記憶領域に書き込むように構成されている請求項１記載の情報処理装置。
【請求項４】
前記不揮発性半導体ディスクドライブは、前記システムコンテクストデータの書き込み開始の通知を受信した場合、前記ＳＬＣ領域内に前記第１記憶領域を確保するように構成されている請求項１記載の情報処理装置。
【請求項５】
シングルレベルセル（ＳＬＣ）領域とマルチレベルセル（ＭＬＣ）領域とを備える不揮発性半導体ディスクドライブを備えた情報処理装置の制御方法であって、
休止要求を受ける度に、前記情報処理装置内の揮発性メモリの内容を含むシステムコンテクストデータを、前記ＳＬＣ領域内の第１記憶領域にセーブし、
レジューム要求に応答して、前記第１の記憶領域から前記システムコンテクストデータを読み出して前記揮発性メモリの内容を復元し、
前記システムコンテクストデータの読み出し完了に応答して、前記第１記憶領域が他のデータの格納に使用可能になるように前記第１の記憶領域を解放する制御方法。
【請求項６】
前記第１の記憶領域を解放することは、前記システムコンテクストデータの読み出し完了に応答して、前記第１記憶領域を解放すべきことを前記不揮発性半導体ディスクドライブに指示することを含む請求項５記載の制御方法。
【請求項７】
シングルレベルセル（ＳＬＣ）領域とマルチレベルセル（ＭＬＣ）領域とを備える不揮発性半導体ディスクドライブを備えたコンピュータに、
休止要求を受ける度に、前記情報処理装置内の揮発性メモリの内容を含むシステムコンテクストデータを、前記ＳＬＣ領域内の第１記憶領域にセーブする手順と、
レジューム要求に応答して、前記第１の記憶領域から前記システムコンテクストデータを読み出して前記揮発性メモリの内容を復元する手順と、
前記システムコンテクストデータの読み出し完了に応答して、前記第１記憶領域が他のデータの格納に使用可能になるように前記第１の記憶領域を解放する手順とを実行させるプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
実施形態によれば、情報処理装置は、揮発性メモリと、不揮発性半導体ディスクドライブと、休止制御手段と、レジューム制御手段と、解放手段とを具備する。前記不揮発性半導体ディスクドライブは、シングルレベルセル（ＳＬＣ）領域とマルチレベルセル（ＭＬＣ）領域とを備える。前記休止制御手段は、休止要求を受ける度に、前記揮発性メモリの内容を含むシステムコンテクストデータを前記ＳＬＣ領域内の第１記憶領域にセーブする。レジューム制御手段は、レジューム要求に応答して、前記第１の記憶領域から前記システムコンテクストデータを読み出して前記揮発性メモリの内容を復元する。解放手段は、前記システムコンテクストデータの読み出し完了に応答して、前記第１記憶領域が他のデータの格納に使用可能になるように前記第１の記憶領域を解放するように構成されている。