(57)【要約】【課題】コンパクションの発生を抑えることで、よりデータの書き込み効率の維持を図ることのできる不揮発性半導体メモリドライブ装置を提供する。【解決手段】本ＳＳＤ１２は、ＮＡＮＤメモリ２０４Ａ〜２０４Ｈ上における記憶領域の管理単位として複数のグループが構成され、データの書き込み／読み出しを制御する制御部２０３が、無効化クラスタ数の多くなったｎ個のグループ上の有効データをｎ−１個以下のグループに纏めることにより、最大ｎ−１個のフリーグループを確保するコンパクション処理部２０３１を備える。また、本ＳＳＤ１２の制御部２０３は、コンパクション処理部２０３１の動作機会を抑えるために、長時間アクセスされていないｍ個のグループの格納データを圧縮してｍ−１個以下のグループに纏めることにより、最大ｍ−１個のフリーグループを確保するコンパクション処理部２０３１をさらに備える。【選択図】      図３
2010152516.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性半導体メモリと、
前記不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するコントローラと、
を具備し、
前記コントローラは、
前記不揮発性半導体メモリ上における記憶領域の管理単位として構成される複数のグループ中に残存する、未使用状態にあるフリーグループの数が予め定められた数以下となった場合に、ｎ個のグループ上に点在する有効データをｎ−１個以下のグループ上に再配置することによってフリーグループを確保するコンパクション制御手段と、
格納する有効データに対するアクセスが予め定められた期間を越えて行われていないｍ個のグループ上の格納データを圧縮してｍ−１個以下のグループ上に再配置することによってフリーグループを確保するコンプレッション制御手段と、
を有することを特徴とする不揮発性半導体メモリドライブ装置。
【請求項２】
キャッシュメモリをさらに具備し、
前記コントローラの前記コンプレッション制御手段は、格納データが圧縮されて他のグループの格納データと共に再配置されている状態にあるグループ上の有効データの読み出しが要求された場合、その格納データを解凍して当該読み出しが要求された有効データを前記キャッシュメモリ上に格納する、
ことを特徴とする請求項１記載の不揮発性半導体メモリドライブ装置。
【請求項３】
前記コントローラの前記コンプレッション制御手段は、格納データが圧縮されて他のグループの格納データと共に再配置されている状態にあるグループ上の有効データに対する読み出し頻度が予め定められた値を越えた場合、その格納データを解凍して有効データを再配置することを特徴とする請求項１記載の不揮発性半導体メモリドライブ装置。
【請求項４】
前記コントローラの前記コンプレッション制御手段は、格納データが圧縮されて他のグループの格納データと共に再配置されている状態にあるグループ上の無効化されたデータの容量が予め定められた値を越えた場合、その格納データを解凍して有効データを再配置することを特徴とする請求項１記載の不揮発性半導体メモリドライブ装置。
【請求項５】
前記コントローラの前記コンプレッション制御手段は、格納データの圧縮率が予め定められた値以下となるグループを再配置対象から除外することを特徴とする請求項１記載の不揮発性半導体メモリドライブ装置。
【請求項６】
本体装置と、
不揮発性半導体メモリを搭載する不揮発性半導体メモリドライブ装置と、
を具備し、
前記本体装置は、前記不揮発性半導体メモリに対するデータアクセス要求を不揮発性半導体メモリドライブ装置に発行するデータアクセス要求手段を有し、
前記不揮発性半導体メモリドライブ装置は、前記不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するコントローラを有し、
前記不揮発性半導体メモリドライブ装置の前記コントローラは、
前記不揮発性半導体メモリ上における記憶領域の管理単位として構成される複数のグループ中に残存する、未使用状態にあるフリーグループの数が予め定められた数以下となった場合に、ｎ個のグループ上に点在する有効データをｎ−１個以下のグループ上に再配置することによってフリーグループを確保するコンパクション制御手段と、
格納する有効データに対するアクセスが予め定められた期間を越えて行われていないｍ個のグループ上の格納データを圧縮してｍ−１個以下のグループ上に再配置することによってフリーグループを確保するコンプレッション制御手段と、
前記コンパクション制御手段による再配置または前記コンプレッション制御手段による再配置の実行中、前記不揮発性半導体メモリに対するデータアクセス要求が前記本体装置から発行された場合、前記コンパクション制御手段による再配置または前記コンプレッション制御手段による再配置の実行を中断させる制御手段と、
を含むことを特徴とする情報処理装置。
【請求項７】
不揮発性半導体メモリと、前記不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するコントローラとを有する不揮発性半導体メモリドライブ装置における記憶領域の管理方法であって、
前記コントローラが、
前記不揮発性半導体メモリ上における記憶領域の管理単位として構成される複数のグループ中に残存する、未使用状態にあるフリーグループの数が予め定められた数以下となった場合に、ｎ個のグループ上に点在する有効データをｎ−１個以下のグループ上に再配置することによってフリーグループを確保するステップと、
格納する有効データに対するアクセスが予め定められた期間を越えて行われていないｍ個のグループ上の格納データを圧縮してｍ−１個以下のグループ上に再配置することによってフリーグループを確保するステップと、
を具備することを特徴とする記憶領域の管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばソリッドステートドライブ（ＳＳＤ：Solid-State Drive）等の不揮発性半導体メモリドライブ装置におけるデータの書き込み効率を向上させるための記憶領域の管理技術に関する。
【背景技術】
【０００２】
近年、バッテリ駆動可能で携行容易なノートブックタイプのパーソナルコンピュータが広く普及している。モバイルノートＰＣなどと称される、この種のパーソナルコンピュータの多くは、無線通信機能を備え、または、無線通信モジュールをＵＳＢ（Universal Serial Bus）コネクタに接続したりＰＣカードスロットに装着することによって無線通信機能を必要に応じて増設することが可能である。従って、このモバイルノートＰＣを携帯すれば、ユーザは、外出先や移動中などにおいても、文書を作成して送信したり、各種情報を適宜に入手したりすることが可能となる。
【０００３】
また、この種のパーソナルコンピュータは、持ち運び易く、衝撃に強く、バッテリで長時間利用できることが要求されるので、小型軽量化、耐衝撃性の強化、省電力化のための検討が日々なされている。このようなことから、最近では、磁気ディスク駆動装置（ＨＤＤ：Hard disk drive）に代えて、フラッシュメモリを用いるＳＳＤを搭載したモバイルノートＰＣが製造・販売され始めている。
【０００４】
そして、このフラッシュメモリを用いた装置については、データの書き込み効率を維持することを目的とした、記憶領域を適切に管理するための仕組みが、これまで種々提案されている（例えば特許文献１等参照）。
【特許文献１】特許第３１９５９８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
データの書き込み効率を維持することを目的とした記憶領域の管理手法として、コンパクションが良く知られている。コンパクションは、記憶領域の管理単位として複数のグループが構成されると想定した場合、（追記でデータを更新する際に発生する）無効化データの容量が多くなった例えば２つのグループを選択し、これら２つのグループ上の有効データを１つのグループに纏めることによって、１つ分のグループを未使用状態に戻す処理をいう。このコンパクションを適宜に実行して未使用状態のフリーグループを確保することによって、データの書き込み効率を維持することができる。
【０００６】
ところで、このコンパクションは、フリーグループの数が基準値以下となったら実行されるのが一般的である。従って、フリーグループの数を確保するための新たな仕組みを備えれば、このコンパクションの実行機会自体を抑えることができ、よりデータの書き込み効率の維持を図ることが可能となる。
【０００７】
この発明は、このような事情を考慮してなされたものであり、データの書き込み効率を維持するための記憶領域の管理を適切に行うことのできる不揮発性半導体メモリドライブ装置、情報処理装置および不揮発性半導体メモリドライブ装置における記憶領域の管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
前述した目的を達成するために、この発明の不揮発性半導体メモリドライブ装置は、不揮発性半導体メモリと、前記不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するコントローラと、を具備し、前記コントローラは、前記不揮発性半導体メモリ上における記憶領域の管理単位として構成される複数のグループ中に残存する、未使用状態にあるフリーグループの数が予め定められた数以下となった場合に、ｎ個のグループ上に点在する有効データをｎ−１個以下のグループ上に再配置することによってフリーグループを確保するコンパクション制御手段と、格納する有効データに対するアクセスが予め定められた期間を越えて行われていないｍ個のグループ上の格納データを圧縮してｍ−１個以下のグループ上に再配置することによってフリーグループを確保するコンプレッション制御手段と、を有することを特徴とする。
【発明の効果】
【０００９】
この発明によれば、データの書き込み効率を維持するための記憶領域の管理を適切に行うことができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して本発明の一実施形態を説明する。
【００１１】
図１は、本実施形態に係る情報処理装置の外観を示す図である。本情報処理装置は、例えば、モバイルノートＰＣなどと称される、バッテリ駆動可能なノートブックタイプのパーソナルコンピュータ１として実現されている。
【００１２】
本コンピュータ１は、コンピュータ本体２と、ディスプレイユニット３とから構成されている。ディスプレイユニット３には、ＬＣＤ（Liquid Crystal Display）４で構成される表示装置が組み込まれている。
【００１３】
ディスプレイユニット３は、コンピュータ本体２に対し、コンピュータ本体２の上面が露出される開放位置とコンピュータ本体２の上面を覆う閉塞位置との間を回動自由に取り付けられている。コンピュータ本体２は薄い箱形の筐体を有しており、その上面には、電源スイッチ５、キーボード６、タッチパッド７等が配置されている。
【００１４】
また、コンピュータ本体２の前面には、ＬＥＤ（Light Emitting Diode）８が配置され、その右側面には、ＤＶＤ（Digital Versatile Disc）等に対するデータの書き込みおよび読み出しが可能なＯＤＤ（Optical disc drive）９、ＰＣカードを取り外し自在に収容するＰＣカードスロット１０、ＵＳＢ機器を接続するためのＵＳＢコネクタ１１等が配置されている。そして、本コンピュータ１では、起動ドライブとする外部記憶装置として、コンピュータ本体２の内部に、不揮発性半導体メモリドライブ装置であるＳＳＤ１２を搭載する。
【００１５】
図２は、本コンピュータ１のシステム構成を示す図である。
【００１６】
本コンピュータ１は、図２に示すように、前述のＬＣＤ４、電源スイッチ５、キーボード６、タッチパッド７、ＬＥＤ８、ＯＤＤ９、ＰＣカードスロット１０、ＵＳＢコネクタ１１およびＳＳＤ１２のほかに、ＣＰＵ１０１、ノースブリッジ１０２、メインメモリ１０３、ＧＰＵ（Graphic Processing Unit）１０４、サウスブリッジ１０５、フラッシュメモリ１０６、ＥＣ／ＫＢＣ（Embedded Controller/KeyBoard Controller）１０７、ファン１０８等を備えている。
【００１７】
ＣＰＵ１０１は、本コンピュータ１の動作を制御するプロセッサであり、ＳＳＤ１２からメインメモリ１０３にロードされる、オペレーティングシステムや、ユーティリティを含む各種アプリケーションプログラムを実行する。また、ＣＰＵ１０１は、フラッシュメモリ１０６に格納されたＢＩＯＳ（Basic Input/Output System）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００１８】
ノースブリッジ１０２は、ＣＰＵ１０１のローカルバスとサウスブリッジ１０５との間を接続するブリッジデバイスである。ノースブリッジ１０２は、バスを介してＧＰＵ１０４との通信を実行する機能を有しており、また、メインメモリ１０３をアクセス制御するメモリコントローラも内蔵されている。ＧＰＵ１０４は、本コンピュータ１の表示装置として使用されるＬＣＤ４を制御する。
【００１９】
サウスブリッジ１０５は、ＳＳＤ１２、ＯＤＤ９、ＰＣカードスロット１０に収容されたＰＣカード、ＵＳＢコネクタ１１に接続されたＵＳＢ機器、フラッシュメモリ１０６等の各種デバイスを制御するコントローラである。
【００２０】
ＥＣ／ＫＢＣ１０７は、電力管理のための組み込みコントローラと、キーボード６およびタッチパッド７を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。ＥＣ／ＫＢＣ１０７は、ＬＥＤ８および冷却用のファン１０８の制御も実行する。
【００２１】
また、図３は、以上のようなシステム構成を持つ本コンピュータ１に起動ドライブとする外部記憶装置として搭載されるＳＳＤ１２の概略構成を示すブロック図である。
【００２２】
図示のように、ＳＳＤ１２は、温度センサ２０１、コネクタ２０２、制御部２０３、ＮＡＮＤメモリ２０４Ａ〜２０４Ｈ、ＤＲＡＭ２０５、電源回路２０６等によって構成されており、電源が供給されなくても記憶が消えない（ＮＡＮＤメモリ２０４Ａ〜２０４Ｈ上のプログラムを含むデータが失われない）不揮発性の外部記憶装置である。また、ＳＳＤ１２は、ＨＤＤのようにディスクやヘッド等の駆動機構を持たない、耐衝撃性の強い、低消費電力タイプの外部記憶装置である。
【００２３】
メモリコントローラとしてＮＡＮＤメモリ２０４Ａ〜２０４Ｈに対するデータの書き込みおよび読み出しを制御する制御部２０３は、コネクタ２０２、ＮＡＮＤメモリ２０４Ａ〜２０４Ｈ、ＤＲＡＭ２０５、電源回路２０６にそれぞれ接続されている。本ＳＳＤ１２がコンピュータ本体２の内部に搭載された時、制御部２０３は、コネクタ２０２を介してホスト装置、即ちコンピュータ本体２のサウスブリッジ１０５と接続される。また、本ＳＳＤ１２が単体で存在する時には、制御部２０３は、必要に応じて、例えばＲＳ−２３２Ｃ規格のシリアルインタフェースを介してデバッグ用機器と接続することができる。
【００２４】
また、図示のように、制御部２０３は、コンパクション処理部２０３１およびコンプレッション処理部２０３２を有しており、これらについては後述する。
【００２５】
ＮＡＮＤメモリ２０４Ａ〜２０４Ｈは、各々が例えば１６Ｇバイトの記憶容量をもつ不揮発性の半導体メモリであって、例えば１つのメモリセルに２ビットを記録可能なＭＬＣ（Multi Level Cell）−ＮＡＮＤメモリ（多値ＮＡＮＤメモリ）である。ＭＬＣ−ＮＡＮＤメモリは、ＳＬＣ（Single Level Cell）−ＮＡＮＤメモリに比較して、一般に書き換え可能回数は劣るが、記憶容量の大容量化は容易である。
【００２６】
ＤＲＡＭ２０５は、制御部２０３によってＮＡＮＤメモリ２０４Ａ〜２０４Ｈに対するデータの書き込みおよび読み出しが行われる際に一時的にデータが格納されるキャッシュメモリとして利用されるメモリデバイスである。そして、電源回路２０６は、コネクタ２０２を介してサウスブリッジ１０５経由でＥＣ／ＫＢＣ１０７から供給される電力を電源として、制御部２０３の動作用の電力を生成・供給する。
【００２７】
図４は、本ＳＳＤ１２に設置されるＮＡＮＤメモリ２０４Ａ〜２０４Ｈの概略構成を示す概念図である。
【００２８】
ＮＡＮＤメモリ２０４Ａ〜２０４Ｈが構成する物理アドレス空間に対しては、物理的な使用最小単位とされるセクタａ３として５１２バイトが定義され、また、データの管理単位とされるクラスタａ２として８個分のセクタａ３を纏めたデータサイズ、即ち、５１２バイト×８セクタ＝４，０９６バイトが定義される。これに対して、本ＳＳＤ１２は、このＮＡＮＤメモリ２０４Ａ〜２０４Ｈの物理的なデータの書き込みおよび読み出し単位であるページサイズが４，３１４バイトを有している。つまり、本ＳＳＤ１２では、１つのページに１つのクラスタａ２を格納し、各ページ毎に２１８バイトの冗長領域を設けるようにしている（４，３１４バイト−４，０９６バイト＝２１８バイト）。なお、このページサイズの設定は単なる一例であり、１つのページに２以上のクラスタａ２を格納するようにページサイズを設定することも当然に可能である。
【００２９】
また、ＮＡＮＤメモリ２０４Ａ〜２０４Ｈは、独立して動作可能な複数のＮＡＮＤブロックａ１からそれぞれ構成されており、各ＮＡＮＤブロックａ１は１２８ページで構成されている。つまり、１つのＮＡＮＤグループａ１には、１２８個のクラスタａ２が格納される。そして、本ＳＳＤ１２では、１６個のＮＡＮＤブロックで１つのＮＡＮＤグループを構成し、このＮＡＮＤグループ（１６×１２８＝２，０４８クラスタ）単位で、データ消去を一括して行う等の記憶領域の管理を実行する。
【００３０】
図５は、本ＳＳＤ１２の動作原理を説明するための概念図である。
【００３１】
図５に示すように、キャッシュメモリとして利用されるＤＲＡＭ２０５上には、管理データ格納部２０５１、ライトキャッシュ２０５２およびリードキャッシュ２０５３が設けられる。一方、ＮＡＮＤメモリ２０４Ａ〜２０４Ｈ上の各記憶領域は、管理データ領域２０４１、プライマリバッファ領域２０４２、メインストレージ領域２０４３、フリーグループ領域２０４４、コンパクションバッファ領域２０４５およびコンプレスドストレージ領域２０４６のいずれかとして動的に割り当てられる。
【００３２】
管理データ領域２０４１は、論理的なクラスタアドレス（ＬＢＡ：Logical Block Address）と物理的なＮＡＮＤメモリ２０４Ａ〜２０４Ｈ上の位置とを対応づけるクラスタテーブルを格納する領域であり、制御部２０３は、本ＳＳＤ１２の起動時に、このクラスタテーブルをＤＲＡＭ２０５上の管理データ格納部２０５１に取り込み、このＤＲＡＭ２０５上のクラスタテーブルを使って、ＮＡＮＤメモリ２０４Ａ〜２０４Ｈに対するアクセスを実行する。ＤＲＡＭ２０５上のクラスタテーブルは、例えば本ＳＳＤ１２の停止時などに発行される所定のコマンドを受けた際、ＮＡＮＤメモリ２０４Ａ〜２０４Ｈ上に書き戻される。また、この管理データ格納部２０５１および管理データ領域２０４１には、プライマリバッファ領域２０４２内やコンパクションバッファ領域２０４５内における書き込み位置を示すポインタ情報なども格納される。
【００３３】
ホスト装置からデータの書き込みが要求されると、制御部２０３は、そのデータをＤＲＡＭ２０５上のライトキャッシュ２０５２に一時的に蓄えながら、プライマリバッファ領域２０４２内の書き込み位置に書き込み、その書き込み位置と指定されたクラスタアドレスとを対応づけるべくＤＲＡＭ２０５上のクラスタテーブルを更新する。もし、このデータの書き込みによって、プライマリバッファ領域２０４２として割り当てられているＮＡＮＤグループが満杯になったならば、制御部２０３は、管理上、このＮＡＮＤグループをメインストレージ領域２０４３に移行させ、フリーグループ領域２０４４として残存する未使用状態のＮＡＮＤフリーグループの１つを新たにプライマリバッファ領域２０４２として割り当てる。
【００３４】
なお、本ＳＳＤ１２は、データを追記していくタイプの記憶装置であり、いわゆるデータの更新時には、更新前のデータを無効化し、更新後のデータを新たにプライマリバッファ領域２０４２内に書き込むことを内部的に実行する。つまり、例えばメインストレージ領域２０４３のＮＡＮＤグループにおいてデータの置き換えが発生することはない。制御部２０３は、データの更新時、この更新前のデータの無効化および更新後のデータの新たな書き込みに伴うクラスタテーブルの更新を併せて実行する。
【００３５】
一方、ホスト装置からデータの読み出しが要求されると、制御部２０３は、そのデータがＤＲＡＭ２０５上のリードキャッシュ２０５３に存在しない場合、指定されたクラスタアドレスのＮＡＮＤメモリ２０４Ａ〜２０４Ｈ上における位置をＤＲＡＭ２０５上のクラスタテーブルを参照して取得し、その位置に格納されたデータをリードキャッシュ２０５３に読み出して、ホスト装置に返却する。要求されたデータがリードキャッシュ２０５３に存在したならば、制御部２０３は、ＮＡＮＤメモリ２０４Ａ〜２０４Ｈへのアクセスを行うことなく、そのデータを即座にホスト装置に返却する。
【００３６】
以上のような流れでデータの書き込みおよびデータの読み出しを実行する本ＳＳＤ１２においては、データの書き込み効率を維持するために、フリーグループ領域２０４４として残存する未使用状態のＮＡＮＤフリーグループの数を一定の水準以上に常時保っていることが好ましい。そのために、制御部２０３は、コンパクション処理部２０３１を備えている。ＮＡＮＤフリーグループの数が予め定められた値以下となった場合、制御部２０３は、コンパクション処理部２０３１によるコンパクションを実行する。
【００３７】
コンパクション処理部２０３１は、まず、フリーグループ領域２０４４として残存する未使用状態のＮＡＮＤフリーグループの１つをコンパクションバッファ領域２０４５として割り当てる。次に、コンパクション処理部２０３１は、メインストレージ領域２０４３のＮＡＮＤグループの中から有効なデータ（有効クラスタ）の最も少ない、即ち、無効化されたデータ（無効化クラスタ）の最も多いＮＡＮＤグループを選択し、その選択したＮＡＮＤグループ内の有効クラスタのみをコンパクションバッファ領域２０４５に再配置していく。この有効クラスタの再配置に伴うクラスタテーブルの更新を、コンパクション処理部２０３１は併せて実行する。
【００３８】
選択したＮＡＮＤグループ内のすべての有効クラスタを再配置し終えたら、このＮＡＮＤグループをフリーグループ領域２０４４に返却する。続いて、２番目に有効クラスタの少ないＮＡＮＤグループを選択して、同じく有効クラスタのみをコンパクションバッファ領域２０４５に再配置した後、フリーグループ領域２０４４に返却する。この処理を繰り返していき、もし、コンパクションバッファ領域２０４５として割り当てたＮＡＮＤグループが満杯になったならば、コンパクション処理部２０３１は、このＮＡＮＤグループをメインストレージ領域２０４３に移行させ、新たなＮＡＮＤフリーグループを、コンパクションバッファ領域２０４５として割り当てる。例えば所定数のＮＡＮＤフリーグループを新たに確保できた場合に、コンパクション処理部２０３１は、このコンパクションを終了する。
【００３９】
つまり、コンパクション処理部２０３１は、（最も無効化クラスタの多い順の）ｎ個のＮＡＮＤグループに点在する有効クラスタをｎ−１個以下のＮＡＮＤグループに再配置することにより、最大ｎ−１個のＮＡＮＤフリーグループを確保する。
【００４０】
ところで、このコンパクションは、その実行そのものが、本ＳＳＤ１２におけるデータの書き込み効率を低下させる要因になり得る。よって、コンパクションの実行機会自体を抑えることができれば、よりデータの書き込み効率の維持を図ることが可能となる。そのために、制御部２０３は、さらにコンプレッション処理部２０３２を備える。
【００４１】
コンパクションの実行機会を抑えるためには、ＮＡＮＤフリーグループの数が予め定められた値以下になる状況を極力作らないことが求められる。そこで、制御部２０３は、例えば一定期間毎に、コンプレッション処理部２０３２によるデータ圧縮を実行する。
【００４２】
コンプレッション処理部２０３２は、まず、フリーグループ領域２０４４として残存する未使用状態のＮＡＮＤフリーグループの１つをコンプレスドストレージ領域２０４６として割り当てる。次に、コンプレッション処理部２０３２は、メインストレージ領域２０４３のＮＡＮＤグループの中に、格納する有効データに対するアクセスが予め定められた期間を越えて行われていないＮＡＮＤグループが存在しないかを検索する。この条件に合致するＮＡＮＤグループが検出された場合、コンプレッション処理部２０３２は、もっとも最近アクセスされていない順にＮＡＮＤグループの格納データを圧縮し、圧縮後の格納データをコンプレスドストレージ領域２０４６に再配置する。この再配置後、当該ＮＡＮＤグループはフリーグループ領域２０４４に返却される。
【００４３】
コンプレスドストレージ領域２０４６として割り当てたＮＡＮＤグループが満杯になったならば、コンプレッション処理部２０３２は、新たなＮＡＮＤフリーグループを、さらにコンプレスドストレージ領域２０４６として割り当てる。
【００４４】
仮に、圧縮後の格納データが約１／３のデータサイズに収まるならば、３つのＮＡＮＤグループを１つのＮＡＮＤグループに纏めて、２つのＮＡＮＤグループをフリーグループ領域２０４４に返却することができる。どのようなデータが格納されているかによって圧縮の効果は左右されるので、コンプレッション処理部２０３２は、圧縮率の低いＮＡＮＤグループをコンプレスドストレージ領域２０４６への移行対象から除外する。
【００４５】
つまり、コンプレッション処理部２０３２は、ｍ個のＮＡＮＤグループの格納データを圧縮してｍ−１個以下のＮＡＮＤグループに再配置することにより、最大ｍ−１個のＮＡＮＤフリーグループを確保する。
【００４６】
このコンプレッション処理部２０３２によるＮＡＮＤフリーグループの確保より、コンパクションの実行機会を抑えることができ、よりデータの書き込み効率の維持を図ることが可能となる。
【００４７】
なお、格納データが圧縮されてコンプレスドストレージ領域２０４６に移されたＮＡＮＤグループか否かを識別するための属性情報や、このコンプレスドストレージ領域２０４６内における書き込み位置を示すポインタ情報などは、ＤＲＡＭ２０５上の管理データ格納部２０５１によって保持され、ＮＡＮＤメモリ２０４Ａ〜２０４Ｈの管理データ領域２０４１に適宜に反映される。
【００４８】
コンプレッション処理部２０３２は、データを圧縮する機能に加えて、その圧縮したデータを解凍して復元する機能を併せて有しており、コンプレスドストレージ領域２０４６に移されたＮＡＮＤグループ内の有効データに対する読み出し要求が発生すると、制御部２０３は、コンプレッション処理部２０３２により、当該ＮＡＮＤグループの格納データを解凍して復元し、読み出しが要求された有効データをＤＲＡＭ２０５のリードキャッシュ２０５３に格納してホスト装置に返却する。
【００４９】
もし、このような手順で読み出される、コンプレスドストレージ領域２０４６に移されたＮＡＮＤグループ内のデータに対する読み出し頻度（当該ＮＡＮＤグループ単位でのデータ読み出し頻度）が予め定められた値を越えた場合、制御部２０３は、コンプレッション処理部２０３２により、当該ＮＡＮＤグループの格納データを解凍して復元し、無効化クラスタを除いた有効クラスタすべてをコンパクションバッファ領域２０４５に再配置していく。コンパクションバッファ領域２０４５として割り当てたＮＡＮＤグループは、満杯になった時点でメインストレージ領域２０４３に移されるので、この再配置によってコンプレスドストレージ領域２０４６からメインストレージ領域２０４３への効率的なデータ移行処理が実現される。
【００５０】
また、コンプレスドストレージ領域２０４６に移されたＮＡＮＤグループ内のデータの更新が発生すると、前述のように、データを追記していくタイプの記憶装置である本ＳＳＤ１２では、当該データを無効化して、更新後のデータを新たにプライマリバッファ領域２０４２内に書き込むことが内部的に実行される。そして、コンプレスドストレージ領域２０４６に移されたＮＡＮＤグループ内の無効化データの容量が予め定められた値を越えた場合についても、制御部２０３は、コンプレッション処理部２０３２により、当該ＮＡＮＤグループの格納データを解凍して復元し、無効化クラスタを除いた有効クラスタすべてをコンパクションバッファ領域２０４５に再配置していく処理を実行する。この再配置によってＮＡＮＤメモリ２０４Ａ〜２０４Ｈの有効利用が図られる。
【００５１】
なお、コンプレスドストレージ領域２０４６に割り当てられたＮＡＮＤグループは、その内部に（格納データが圧縮されて）移されてきたすべてのＮＡＮＤグループの有効データがコンパクションバッファ領域２０４５に再配置された時点で、フリーグループ領域２０４４に返却される。
【００５２】
図６は、本ＳＳＤ１２の制御部２０３が実行するコンパクションによるフリーグループの確保の動作手順を示すフローチャートである。
【００５３】
制御部２０３は、フリーグループ領域２０４４として残存する未使用状態のＮＡＮＤフリーグループの数が予め定められた値以下となった場合（ステップＡ１のＹＥＳ）、メインストレージ領域２０４３のＮＡＮＤグループの中から最も無効化クラスタが多い順にｎ個のＮＡＮＤグループを選択し（ステップＡ２）、この選択したＮＡＮＤグループに点在する有効クラスタをｎ−１個以下のＮＡＮＤグループに再配置するコンパクションを実行して、最大ｎ−１個のＮＡＮＤフリーグループを確保する（ステップＡ３）。
【００５４】
図７は、本ＳＳＤ１２の制御部２０３が実行する圧縮によるフリーグループの確保の動作手順を示すフローチャートである。制御部２０３は、例えば一定期間毎に、この図９に示される処理を実行する。
【００５５】
制御部２０３は、メインストレージ領域２０４３のＮＡＮＤグループの中に予め定められた期間を越えてアクセスされていないＮＡＮＤグループがｍ個以上存在する場合（ステップＢ１のＹＥＳ）、最も最近アクセスされていない順にｍ個のＮＡＮＤグループを選択し（ステップＢ２）、この選択したＮＡＮＤグループの格納データを圧縮して、最大ｍ−１個のＮＡＮＤフリーグループを確保する（ステップＢ３）。
【００５６】
また、図８は、本ＳＳＤ１２の制御部２０３が実行する圧縮データの読み出し処理の動作手順を示すフローチャートである。
【００５７】
圧縮された状態の有効データに対する読み出し要求が発生すると（ステップＣ１のＹＥＳ）、制御部２０３は、このＮＡＮＤグループの格納データを解凍し、ＤＲＡＭ２０５のリードキャッシュ２０５３上に読み出し対象データを展開する（ステップＣ２）。
【００５８】
また、図９は、本ＳＳＤ１２の制御部２０３が実行する圧縮データの復元処理の動作手順を示すフローチャートである。
【００５９】
制御部２０３は、圧縮したＮＡＮＤグループの中に、読み出し頻度が予め定められた値を越えたＮＡＮＤグループが存在した場合（ステップＤ１のＹＥＳ）、このＮＡＮＤグループの格納データを解凍し、コンパクションバッファ領域２０４５に有効クラスタを再配置する（ステップＤ３）。また、制御部２０３は、圧縮したＮＡＮＤグループの中に、無効化クラスタの数が予め定められた値を越えたＮＡＮＤグループが存在した場合も（ステップＤ２のＹＥＳ）、このＮＡＮＤグループの格納データを解凍し、コンパクションバッファ領域２０４５に有効クラスタを再配置する（ステップＤ３）。
【００６０】
以上のように、本ＳＳＤ１２においては、長期間アクセスされないデータを圧縮して空き記憶領域を確保することにより、コンパクションの発生を抑えて、書き込み効率を維持することを実現する。
【００６１】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００６２】
【図１】この発明の一実施形態に係る情報処理装置（コンピュータ）の外観を示す図
【図２】同実施形態のコンピュータのシステム構成を示す図
【図３】同実施形態のコンピュータに起動ドライブとして搭載されるＳＳＤの概略構成を示すブロック図
【図４】同実施形態のコンピュータに搭載されるＳＳＤに設置されるＮＡＮＤメモリの概略構成を示す概念図
【図５】同実施形態のコンピュータに搭載されるＳＳＤ１２の動作原理を説明するための概念図
【図６】同実施形態のコンピュータに搭載されるＳＳＤが実行するコンパクションによるフリーグループの確保の動作手順を示すフローチャート
【図７】同実施形態のコンピュータに搭載されるＳＳＤが実行する圧縮によるフリーグループの確保の動作手順を示すフローチャート
【図８】同実施形態のコンピュータに搭載されるＳＳＤが実行する圧縮データの読み出し処理の動作手順を示すフローチャート
【図９】同実施形態のコンピュータに搭載されるＳＳＤが実行する圧縮データの復元処理の動作手順を示すフローチャート
【符号の説明】
【００６３】
１…パーソナルコンピュータ、２…コンピュータ本体、３…ディスプレイユニット、４…ＬＣＤ、５…電源スイッチ、６…キーボード、７…タッチパッド、８…ＬＥＤ、９…ＯＤＤ、１０…ＰＣカードスロット、１１…ＵＳＢコネクタ、１２…ＳＳＤ、１０１…ＣＰＵ、１０２…ノースブリッジ、１０３…メインメモリ、１０４…ＧＰＵ、１０５…サウスブリッジ、１０６…フラッシュメモリ、１０７…ＥＣ／ＫＢＣ、１０８…ファン、２０１…温度センサ、２０２…コネクタ、２０３…制御部、２０４Ａ〜２０４Ｈ…ＮＡＮＤメモリ、２０５…ＤＲＡＭ、２０６…電源回路、２０３１…コンパクション処理部、２０３２…コンプレッション処理部、２０４１…管理データ領域、２０４２…プライマリバッファ領域、２０４３…メインストレージ領域、２０４４…フリーグループ領域、２０４５…コンパクションバッファ領域、２０４６…コンプレスドストレージ領域、２０５１…管理データ格納部、２０５２…ライトキャッシュ、２０５３…リードキャッシュ。
【図１】
2010152516.tif 000003
【図２】
2010152516.tif 000004
【図３】
2010152516.tif 000005
【図４】
2010152516.tif 000006
【図５】
2010152516.tif 000007
【図６】
2010152516.tif 000008
【図７】
2010152516.tif 000009
【図８】
2010152516.tif 000010
【図９】
2010152516.tif 000011