(57)【要約】【課題】書き込み効率の向上を図る。【解決手段】第１記憶部と第２記憶部と制御部とを具備する記憶装置であって、第１記憶部は複数のページを含む複数のブロックを有し、第２記憶部は第１記憶部における書き込み可能なブロックの情報を保持するフリーブロックリストと第１記憶部における書き込み可能なページの情報を保持するフリーページリストとを有し、制御部は第１記憶部にホストからのデータを転送する際、ブロック単位のデータを圧縮して圧縮ブロックデータを生成し、圧縮ブロックデータをフリーブロックリストに情報が保持されたブロックに書き込み、圧縮ブロックデータが書き込まれたブロック内において圧縮ブロックデータが書き込まれていないフリー領域に存在するページの情報をフリーページリストに保持し、ページ単位のデータをフリーページリストに情報が保持されたページに書き込む。【選択図】      図１
2012113343.tif 000002
【特許請求の範囲】
【請求項１】
ホストからのデータを記憶する第１記憶部と、
前記第１記憶部を管理する情報を記憶する第２記憶部と、
前記第２記憶部を介して前記ホストと前記第１記憶部との間でデータ転送をする制御部と、
を具備する記憶装置であって、
前記第１記憶部は、
複数のブロックを有し、前記複数のブロックのそれぞれは複数のページを含み、
前記第２記憶部は、
前記第１記憶部における書き込み可能なブロックの情報を保持するフリーブロック    リストと、
前記第１記憶部における書き込み可能なページの情報を保持するフリーページリス    トと、
を有し、
前記制御部は、前記第１記憶部に前記ホストからのデータを転送する際、
ブロック単位のデータを圧縮して圧縮ブロックデータを生成し、
前記圧縮ブロックデータを前記フリーブロックリストに情報が保持されたブロック    に書き込み、
前記圧縮ブロックデータが書き込まれた前記ブロック内において前記圧縮ブロック    データが書き込まれていないフリー領域に存在するページの情報を前記フリーページ    リストに保持し、
前記ページ単位のデータを前記フリーページリストに情報が保持された前記ページ    に書き込む
ことを特徴とする記憶装置。
【請求項２】
前記第１記憶部はｎ（２より大きい整数）値の異なる状態を記憶する複数のメモリセルを有するフラッシュメモリであり、前記第１記憶部における前記複数のブロックのそれぞれは複数の下位ページおよび複数の上位ページを含み、
前記制御回路は、前記圧縮ブロックデータを書き込む際、前記圧縮ブロックデータを前記ブロック内の下位ページ側から書き込む
ことを特徴とする請求項１に記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、記憶装置に関する。
【背景技術】
【０００２】
近年、ＮＡＮＤフラッシュメモリを使ったＳＳＤ（Solid State Drive）と呼ばれる記憶装置が登場し、携帯機器、ノートパソコン、エンタープライズサーバ等、幅広い範囲で普及されてきている。ＮＡＮＤフラッシュメモリは、半導体メモリとして低コストかつ大容量という特徴がある。
【０００３】
しかし、ＮＡＮＤフラッシュメモリは、書き込みの前には消去動作を行う必要があり、書き換え（消去）回数に制限（例えば、１万回程度）があるという問題がある。また、書き込みはページ単位（例えば、２Ｋバイト）、消去はブロック単位（例えば、１Ｍバイト）で行わなければならない。これらの問題に対処するため、ＳＳＤに代表されるＮＡＮＤフラッシュメモリを使った記憶装置において、様々な対策が取られている（例えば、非特許文献１）。
【０００４】
ＳＳＤは、コントローラ、ワークメモリ、およびストレージメモリで構成されている。コントローラは、ホスト（ＰＣ等）からのコマンドのやりとりをする。ストレージメモリは、例えばＮＡＮＤフラッシュメモリであり、ホストからのデータを記憶する。ワークメモリは、例えばＳＲＡＭまたはＤＲＡＭである。また、ワークメモリには、データバッファ、ページ単位の論理／物理アドレス変換テーブル、ブロック単位の論理／物理アドレス変換テーブル、フリーブロックリスト等が格納されている。
【０００５】
ＳＳＤにおいて、主な制御の起点はホストからのアクセスコマンド発行である。まず、コントローラは、ホストコマンドのアドレス（論理アドレス）をストレージメモリのアドレス（物理アドレス）に変換してデータアクセスを実現する。これは、ＮＡＮＤフラッシュメモリにおいて同じアドレスに対する書き換えには消去が必要であり、さらに書き換え回数に制限があることを懸念したものである。
【０００６】
論理／物理アドレス変換において、アドレス変換の制御をページ単位（例えば、２Ｋバイト）のみで行うと論理／物理アドレス変換テーブルが巨大になり、ワークメモリに入りきらない場合がある。そのため、ある程度まとまったデータがあると判断された場合、データをブロック単位（例えば、１Ｍバイト）にまとめてストレージメモリに書き込み、ブロック単位の論理／物理アドレス変換テーブルで管理する。
【０００７】
書き込み制御、またはガーベジコレクションの過程でブロック内のデータが全て無効化されたブロックの集合はリスト（フリーブロックリスト）にして管理される。ページ単位の書き込み、またはブロック単位の書き込みにおいて、書き込み領域が必要になった場合、フリーブロックリストからブロックの情報を取り出し、書き込み領域を確保する。
【０００８】
上記制御によって、書き換え回数を各アドレスに分散させることができる。しかし、今後、ＮＡＮＤフラッシュメモリの微細化が進むと書き換え回数はさらに少なくなる傾向がある。このため、より効率的な書き込み制御をする必要がある。効率を上げる方法として、ＮＡＮＤフラッシュメモリに書き込むデータを圧縮する方法が考えられている。
【０００９】
例えば、特許文献１では、コントローラは、ホストからのデータを圧縮してＮＡＮＤフラッシュメモリに格納している。これにより、ホストからＮＡＮＤフラッシュメモリへのデータ転送量を減少させている。
【００１０】
しかしながら、単純にデータをページ単位、ブロック単位で圧縮してＮＡＮＤフラッシュメモリに格納しても、それによって空いた領域が無駄になる。また、圧縮後のサイズを基準にデータを詰めて配置すると、データの位置を細かい単位で管理しなければならない。このため、変換テーブルの１エントリのサイズが巨大になり、ワークメモリ上での管理が難しくなる。さらに、上述したように、消去がブロック単位のみという制約から、データがブロックの境界をまたぐ場合などを考慮しなければならず、制御が複雑になる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００７−９４６３９号公報
【非特許文献】
【００１２】
【非特許文献１】A High Performance Controller for NAND Flash-based Solid State Disk（C.Park, NVSMW 2006, pp.17-20）
【発明の概要】
【発明が解決しようとする課題】
【００１３】
書き込み効率の向上を図る記憶装置を提供する。
【課題を解決するための手段】
【００１４】
本実施形態による記憶装置は、ホストからのデータを記憶する第１記憶部と、前記第１記憶部を管理する情報を記憶する第２記憶部と、前記第２記憶部を介して前記ホストと前記第１記憶部との間でデータ転送をする制御部と、を具備する記憶装置であって、前記第１記憶部は、複数のブロックを有し、前記複数のブロックのそれぞれは複数のページを含み、前記第２記憶部は、前記第１記憶部における書き込み可能なブロックの情報を保持するフリーブロックリストと、前記第１記憶部における書き込み可能なページの情報を保持するフリーページリストと、を有し、前記制御部は、前記第１記憶部に前記ホストからのデータを転送する際、ブロック単位のデータを圧縮して圧縮ブロックデータを生成し、前記圧縮ブロックデータを前記フリーブロックリストに情報が保持されたブロックに書き込み、前記圧縮ブロックデータが書き込まれた前記ブロック内において前記圧縮ブロックデータが書き込まれていないフリー領域に存在するページの情報を前記フリーページリストに保持し、前記ページ単位のデータを前記フリーページリストに情報が保持された前記ページに書き込む。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態に係る記憶装置の構成例を示すブロック図。
【図２】第１の実施形態に係るワークメモリの構成例を示すブロック図。
【図３】第１の実施形態に係る記憶装置の制御動作を示す図。
【図４】第１の実施形態に係る記憶装置におけるブロックデータ書き込みを示すフローチャート。
【図５】第１の実施形態に係る記憶装置におけるページデータ書き込みを示すフローチャート。
【図６】第２の実施形態に係る記憶装置の制御動作を示す図。
【発明を実施するための形態】
【００１６】
本実施形態を以下に図面を参照して説明する。図面において、同一部分には同一の参照符号を付す。
【００１７】
＜第１の実施形態＞
以下に、第１の実施形態に係る記憶装置について説明する。第１の実施形態は、ブロック単位のデータ（ブロックデータ）を書き込む際にデータを圧縮し、この圧縮ブロックデータをブロックに格納することによって空いた領域に小さな単位（ページ単位）の非圧縮データを書き込む例である。
【００１８】
［構成例］
以下に図１乃至図３を用いて、第１の実施形態に係る記憶装置の構成例について説明する。
【００１９】
図１は、第１の実施形態に係る記憶装置１００の構成例を示している。
【００２０】
図１に示すように、記憶装置１００は、コントローラ（制御回路）１０、複数のストレージメモリ１１、およびワークメモリ１２で構成されている。
【００２１】
コントローラ１０は、ホストインターフェース、ストレージメモリインターフェース、およびワークメモリインターフェースを備えている。ホストインターフェースは、例えばシリアルＡＴＡ／パラレルＡＴＡインターフェイスであり、ホストとの間でコマンドの授受を行う。ストレージメモリインターフェースは、ストレージメモリ１１との間でコマンドの授受を行う。ワークメモリインターフェースは、ワークメモリ１２との間でコマンドの授受を行う。このように、コントローラ１０は、ワークメモリ１２を介してストレージメモリ１１とホスト１１０との間でデータ転送を行う。
【００２２】
ストレージメモリ１１は、例えばＮＡＮＤフラッシュメモリであり、ホストからのデータを記憶する。また、ストレージメモリ１１は、コントローラ１０からのコマンドに従い、記憶されたデータの読み出し、消去等の処理を行う。
【００２３】
ワークメモリ１２は、例えばＳＲＡＭ（Static Random Access Memory）またはＤＲＡＭ（Dynamic Random Access Memory）であるが、これに限らず、レジスタファイルまたはストレージメモリ１１等でもよい。あるいは、これらを併用してもよい。ワークメモリ１２は、ストレージメモリ１１の管理に必要なデータを一時的に格納する。
【００２４】
本実施形態におけるコントローラ１０は、圧縮伸長器１３を備えている。この圧縮伸長器１３は、ブロック単位のデータをストレージメモリ１１にアクセスする場合のみ処理を行う。より具体的には、圧縮伸長器１３は、ホスト１１０からのブロック単位のデータをストレージメモリ１１に書き込む場合にブロック単位のデータを圧縮して圧縮データを生成し、ストレージメモリ１１から圧縮データを読み出す場合に圧縮データを伸長する。
【００２５】
なお、ブロック単位のデータのアクセスであっても、圧縮後のデータサイズが元のデータより大きくなる場合や、該当データがランダムアクセスされる可能性が高いと判断される場合は、圧縮伸長処理を行わないことも可能である。このような圧縮伸長器１３による圧縮伸長機能は、ハードウエアで実現してもよいし、ソフトウエアで実現してもよい。
【００２６】
図２は、本実施形態に係るワークメモリ１２の構成例を示している。
【００２７】
図２に示すように、ワークメモリ１２は、データバッファ２１、ページ変換テーブル２２、ブロック変換テーブル２３、フリーページリスト２４、およびフリーブロックリスト２５等を備えている。これらワークメモリ１２の各構成要素については、以下に図３を用いて詳説する。
【００２８】
図３は、ワークメモリ１２およびストレージメモリ１１の構成例および制御動作を示している。ここで、ホスト１１０から与えられるアドレスを論理アドレスと称し、ストレージメモリ（ＮＡＮＤフラッシュメモリ）１１内における実際のアドレスを物理アドレスと称す。
【００２９】
図３において、メモリマップ３０は、ストレージメモリ１１の物理アドレスを示している。また、このメモリマップ３０において、白抜き領域は有効データが存在する領域を示し、網掛け領域は無効データが存在する領域を示している。ここで、有効データおよび無効データは、データが書き込まれているか否かに限らず、そのデータが論理的に有効であるか無効であるかに基づいている。また、メモリマップ３０において、斜線領域は、ブロック単位のデータを圧縮して格納することによってブロック内に空いたフリー領域を示している。
【００３０】
ページ変換テーブル２２は、１エントリが論理ページアドレス、および物理ページアドレスの組で構成されている。ページ変換テーブル２２には、データが書き込まれた（有効データが存在する）ページの論理アドレス、および物理アドレスが保持されている。このページ変換テーブル２２は、ホストから与えられる論理ページアドレスと、ストレージメモリ１１内の物理ページアドレスとの対応付けをする。
【００３１】
ブロック変換テーブル２３は、１エントリが物理ブロックアドレスで構成されている。ブロック変換テーブル２３には、データが書き込まれた（有効データが存在する）ブロックの物理アドレスが保持されている。このブロック変換テーブル２３は、ホストから与えられる論理ブロックアドレスと、ストレージメモリ１１内の物理ブロックアドレスとの対応付けをする。
【００３２】
フリーページリスト２４は、１エントリが物理ページアドレスで構成されている。フリーページアドレスには、ブロック単位のデータを圧縮して格納することによってブロック内に空いたフリー領域の先端ページの物理アドレスが保持されている。ここで、フリー領域の先端ページ以降の物理アドレスは、先端ページの物理アドレスから計算可能である。特に、後端ページの物理アドレスは、物理ブロックの境界であるため、先端ページの物理アドレスから容易に計算可能である。
【００３３】
フリーブロックリスト２５は、１エントリが物理ブロックアドレスで構成されている。フリーブロックリスト２５には、ブロック内のデータが全て無効化されたブロックの物理アドレスが保持されている。
【００３４】
本実施形態では、ブロック内のデータが全て無効化されたブロックをフリーブロックリスト２５によりブロック単位で管理するだけでなく、圧縮ブロックデータをあるブロックに格納することによって空いた（無効化された）ブロック内の一部（フリー領域）をフリーページリスト２４によりページ単位で管理することができる。
【００３５】
［ブロック単位のデータ（ブロックデータ）書き込み］
以下に図４を用いて、本実施形態に係る記憶装置１００におけるブロックデータ書き込みについて説明する。
【００３６】
図４は、本実施形態に係る記憶装置１００におけるブロックデータ書き込みのフローチャートを示している。
【００３７】
図４に示すように、まず、ステップＳ１において、公知の方法と同様に、フリーブロックリスト２５からブロック単位の書き込み領域を確保する。このとき、確保した書き込み領域に無効データがある場合等、必要があれば消去動作を行う。
【００３８】
次に、ステップＳ２において、ブロックデータを圧縮するか否か判定する。このとき、書き込むデータの傾向を調べることで、圧縮後のデータサイズがもとのデータサイズより小さくなるか否かを判定する。すなわち、圧縮後のデータサイズがもとのデータサイズより小さくなる場合はブロックデータを圧縮し、大きくなる場合はブロックデータを圧縮しない。
【００３９】
ステップＳ２でブロックデータを圧縮しない場合、次に、ステップＳ３において、ブロックデータ書き込みを行う。すなわち、通常通りのブロックデータをストレージメモリ１１に書き込む。その後、ステップＳ４において、ブロック変換テーブル２３に、ブロックデータが書き込まれた物理ブロックアドレスをセットする。
【００４０】
一方、ステップＳ２でブロックデータを圧縮する場合、次に、ステップＳ５において、ブロックデータの圧縮処理を行う。すなわち、ブロックデータのデータサイズを小さくする。
【００４１】
次に、ステップＳ６において、圧縮ブロックデータ書き込みを行う。すなわち、ステップＳ５において圧縮されたブロックデータをストレージメモリ１１に書き込む。ここで、圧縮ブロックデータは、圧縮されないブロックデータ書き込みの場合と同様の格納位置に格納される。例えば、圧縮ブロックデータは、フリーブロックリスト２５から確保されたブロック内の先端ページから書き込まれていく。このとき、圧縮ブロックデータはデータサイズが小さいため、フリーブロックリスト２５から確保されたブロック内の一部（例えば、後半ページ）にはデータが書き込まれていない領域（フリー領域）が存在する。
【００４２】
次に、ステップＳ７において、フリーページリスト２４に、圧縮ブロックデータが書き込まれることによって空いたフリー領域の先端ページの物理アドレスをセットする。その後、ステップＳ４において、ブロック変換テーブル２３に、圧縮ブロックデータが書き込まれた物理ブロックアドレスをセットする。
【００４３】
このようにして、ブロックデータ書き込みが終了する。また、ブロックデータを圧縮した場合、ここまでの処理によって圧縮ブロックデータが有効になり、フリー領域にページデータを書き込める状態になる。
【００４４】
［ページ単位のデータ（ページデータ）書き込み］
以下に図５を用いて、本実施形態に係る記憶装置１００におけるページデータ書き込みについて説明する。
【００４５】
図５は、本実施形態に係る記憶装置１００におけるページデータ書き込みのフローチャートを示している。
【００４６】
図５に示すように、まず、ステップＳ８において、フリーページリスト２４から書き込み領域を確保することが可能か否か判定する。
【００４７】
ステップＳ８においてフリーページリスト２４から書き込み領域を確保することができない場合、次に、ステップＳ９において、フリーブロックリスト２５からページ単位の書き込み領域を確保する。このとき、確保した書き込み領域に無効データがある場合等、必要があれば消去動作を行う。
【００４８】
次に、ステップＳ１０において、フリーブロックリスト２５から確保された書き込み領域にページデータ書き込みを行う。その後、ステップＳ１１において、ページ変換テーブル２２に、ページデータが書き込まれた物理ページアドレスおよび変換情報をセットする。
【００４９】
一方、ステップＳ８においてフリーページリスト２４から書き込み領域を確保することができる場合、ステップＳ１２において、フリーページリスト２４からページ単位の書き込み領域を確保する。
【００５０】
次に、ステップＳ１０において、フリーページリスト２４から確保された書き込み領域にページデータ書き込みを行う。すなわち、フリー領域にページデータが書き込まれる。これにより、ブロック内において圧縮ブロックデータと別のページデータとが混在した状態となる。
【００５１】
その後、ステップＳ１１において、ページ変換テーブル２２に、ページデータが書き込まれた物理ページアドレスおよび変換情報をセットする。
【００５２】
このようにして、ページデータ書き込みが終了する。
【００５３】
［データ読み出し］
以下に、本実施形態に係る記憶装置１００におけるデータ読み出しについて説明する。なお、本実施形態におけるデータの読み出し方法は特に限定されず、公知の種々の読み出し方法が適用され得る。
【００５４】
ページデータ読み出しの場合、公知の方法と同様に、ページ変換テーブル２２を使って、ストレージメモリ１１から対応する（読み出し対象の）ページデータを読み出す。
【００５５】
一方、ブロックデータ読み出しの場合、公知の方法と同様に、ブロック変換テーブル２３を使って、ストレージメモリ１１から対応する（読み出し対象の）ブロックデータを読み出す。このとき、読み出し対象のブロックデータが圧縮されている場合、圧縮ブロックデータの伸長処理を行った後、データを読み出す。また、読み出し対象のブロックデータが圧縮されていない場合、そのままデータを読み出す。
【００５６】
なお、ストレージメモリ１１からのデータの読み出しは、必要な分だけで打ち切ってもよいし、１ブロック分読み出してしまってもよい。また、ブロックデータが圧縮か否かの判定のために、１ブロックにつき少なくとも１ビット必要になる。ここで、ストレージメモリ１１に冗長ビットがあればそれを利用してもよいし、ブロック変換テーブル２３の各エントリに１ビット追加してもよい。
【００５７】
上述したようなブロックデータ書き込み、ページデータ書き込み、およびデータ読み出しは、図１に示すコントローラ１０によって制御され得る。
【００５８】
［効果］
上記第１の実施形態によれば、ブロックデータを書き込む際にデータを圧縮し、この圧縮ブロックデータをストレージメモリ１１内のブロックに格納する（書き込む）。この圧縮によって削減された（小さくなった）データ分が、ブロック内にフリー領域として生じる。このフリー領域を別のページデータ書き込みに利用することで、ストレージメモリ１１に対する書き込みの効率を向上させることができる。
【００５９】
また、ブロックデータの圧縮によって生じたフリー領域を無駄なく使うことで、ストレージメモリ１１全体の各ブロックにおいて書き換え回数を分散かつ低減させることができる。すなわち、微細化が進むＮＡＮＤフラッシュメモリのように書き換え回数に制限のあるメモリを使用する記憶装置１００において、信頼性の向上を図ることができる。
【００６０】
さらに、本実施形態では、圧縮ブロックデータの格納位置を圧縮しない場合の格納位置に揃えている。これにより、データの管理や書き込みおよび読み出し動作の制御が容易になり、コントローラ１０によるオーバヘッドを抑えることができる。
【００６１】
＜第２の実施形態＞
以下に、第２の実施形態に係る記憶装置について説明する。第２の実施形態は、第１の実施形態の変形例であり、多値（ＭＬＣ：multi level cell）ＮＡＮＤフラッシュメモリのような書き込み順序に制約のあるメモリに適用され、圧縮ブロックデータを下位ページ側から書き込む例である。なお、第２の実施形態において、上記第１の実施形態と同様の点については説明を省略し、異なる点について説明する。
【００６２】
多値ＮＡＮＤフラッシュメモリは、１つのメモリセルに複数ビットの情報を書き込むメモリである。また、メモリによっては１つのメモリセルに含まれる複数のビットに対して別のアドレスが割り振られることがあり、その場合はこれらのアドレスに対して書き込み順序が決まっていることがある。そして、メモリによっては先に書き込まれるアドレスに対する書き込み動作は、後に書き込まれるアドレスに対する書き込み動作より高速に行うことができる。
【００６３】
以下の説明において、例として１つのメモリセルに２ビットの情報を書き込める場合を示す。また、先に書き込まれるアドレス領域を下位ページ（lower page）と称し、後に書き込まれるアドレス領域を上位ページ（upper page）と称す。
【００６４】
［ブロックデータおよびページデータ書き込み］
以下に図６を用いて、本実施形態に係る記憶装置１００におけるブロックデータおよびページデータ書き込みについて説明する。
【００６５】
図６は、本実施形態に係る記憶装置１００の制御動作を示すものであり、１つのブロック６０内の下位ページおよび上位ページのアドレスの割り当てと、ブロック６０内のデータの遷移を示している。ここで、図３と同様に、白抜き領域は有効データが存在する領域を示し、網掛け領域は無効データが存在する領域を示し、斜線領域は圧縮データを格納することによって空いたフリー領域を示している。
【００６６】
より具体的には、図６（ａ）は、ブロック６０内全てが無効データの状態、図６（ｂ）は、ブロック６０に圧縮ブロックデータを書き込んだ状態、図６（ｃ）は、フリー領域にページデータを書き込んだ状態を示している。
【００６７】
図６（ａ）に示すように、本実施形態では、ブロック６０内のアドレスが書き込み順序の制約にそって論理的に整列されている。より具体的には、下位ページおよび上位ページを有する複数のメモリセルを含むブロック６０において、各メモリセルの下位ページ側から先に書き込まれた後、各メモリセルの上位ページ側が書き込まれるようにアドレスが割り当てられる。
【００６８】
このようにブロック６０内のアドレスを割り当てることで、図６（ｂ）に示すように、圧縮ブロックデータを書き込む際、圧縮ブロックデータは各メモリセルの下位ページ側から書き込まれる。その後、図６（ｃ）に示すように、圧縮ブロックデータを書き込むことで生じたフリー領域（例えば、上位ページ側の一部）に別のページデータが書き込まれる。
【００６９】
図４および図５に示すように、第１の実施形態で示した制御方式から、ブロック６０に圧縮データが書き込まれる場合、常に図６（ａ）、（ｂ）、（ｃ）の順序でデータが書き込まれることが保証される。すなわち、圧縮ブロックデータの書き込みは別のページデータの書き込みよりも先に行われるため、圧縮ブロックデータは下位ページ側から書き込まれる。
【００７０】
［効果］
上記第２の実施形態によれば、多値ＮＡＮＤフラッシュメモリを有する記憶装置１００において、ブロック６０内の全メモリセルの下位ページ側から先に書き込まれた後、各上位ページ側が書き込まれるようにアドレスが割り当てられる。これにより、先に書き込まれる圧縮ブロックデータは、メモリセルの下位ページ側から書き込まれる。この下位ページ側の書き込みは、上位ページ側の書き込みよりも高速で実行することができる。すなわち、圧縮ブロックデータの書き込みを高速で行うことができる。
【００７１】
特に、ホスト１１０から大きなデータサイズの書き込みコマンドが発行された場合、ブロック単位の書き込みを実行する制御にすることで、この書き込みを高速に行うことができ、バーストライトの実行性能を向上させることができる。
【００７２】
また、通常、データの圧縮には大幅な時間を要する。これに対し、本実施形態のように、圧縮ブロックデータの書き込みを高速化することで、圧縮による時間増加をトータルで還元することができ、時間増加を抑制することができる。
【００７３】
その他、本発明は、上記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で、種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【符号の説明】
【００７４】
１０…コントローラ（制御部）、１１…ストレージメモリ（第１記憶部）、１２…ワークメモリ（第２記憶部）、２２…ページ変換テーブル、２３…ブロック変換テーブル、２４…フリーページリスト、２５…フリーブロックリスト、１００…ホスト。
【図１】
2012113343.tif 000003
【図２】
2012113343.tif 000004
【図３】
2012113343.tif 000005
【図４】
2012113343.tif 000006
【図５】
2012113343.tif 000007
【図６】
2012113343.tif 000008