(57)【要約】【課題】ＮＡＮＤメモリのレイテンシの悪化を従来に比して抑制することができるメモリシステムを提供する。【解決手段】実施形態によれば、実施形態によれば、メモリシステム１０は、不揮発性のＮＡＮＤメモリ１２とＲＡＭ１３とＣＰＵ１４とを備える。ＮＡＮＤメモリ１２は、データの管理単位をクラスタとし、また、データのＮＡＮＤメモリ１２内での記憶位置を示す管理情報を格納する管理テーブル１２１を格納する。ＣＰＵ１４は、ＲＡＭ１３内の更新データをＮＡＮＤメモリ１２に書き込む際に、ページサイズと更新データのサイズとの差がクラスタサイズ以上の場合に、更新データに対応する管理情報の更新内容と、管理情報の更新内容のＮＡＮＤメモリ１２内での記憶位置を示す更新内容記憶位置と、を格納したクラスタサイズのデータを更新データに付加して書き込みデータを作成し、ＮＡＮＤメモリ１２の書き込み中のブロックに書き込む。【選択図】図２
2013174975.tif 000002
【特許請求の範囲】
【請求項１】
データの管理単位をクラスタとし、前記クラスタを２以上含むページを前記データの書き込み単位とし、前記ページを２以上含むブロックを前記データの消去単位とする不揮発性の第１メモリと、
前記第１メモリへ書き込まれるデータを一時的に記憶する第２メモリと、
前記第２メモリに記憶されているデータを前記第１メモリに前記ページ単位で書き込むとともに、前記第１メモリ内でのデータの記憶位置を管理する制御部と、
を備え、
前記第１メモリは、前記データの前記第１メモリ内での記憶位置を示す管理情報を格納する管理情報格納領域を有し、
前記制御部は、前記第２メモリ内の更新データを前記第１メモリに書き込む際に、前記ページサイズと前記更新データのサイズとの差が前記クラスタサイズ以上の場合に、前記更新データに対応する前記管理情報の更新内容と、前記管理情報の更新内容の前記第１メモリ内での記憶位置を示す更新内容記憶位置と、を格納した前記クラスタサイズのデータを、前記更新データに付加して前記書き込みデータを作成し、前記第１メモリの書き込み中のブロックに書き込むことを特徴とするメモリシステム。
【請求項２】
前記制御部は、前記第２メモリ内の更新データを前記第１メモリに書き込む際に、前記ページサイズと前記更新データのサイズとの差が前記クラスタサイズ以上の場合に、前記第１メモリ内の有効データと無効データとを含むコンパクション候補ブロックから取得した前記有効データを前記更新データに付加した書き込みデータを作成し、前記第１メモリの書き込み中のブロックに書き込むことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記制御部は、前記第２メモリ内の更新データを前記第１メモリに書き込む際に、前記ページサイズと前記更新データのサイズとの差が前記クラスタサイズ以上の場合で、前記第１メモリ内に有効データと無効データとを含むコンパクション候補ブロックがある場合に、前記有効データに優先して前記更新内容と、前記管理情報の更新内容の前記第１メモリ内での記憶位置を示す更新内容記憶位置と、を格納した前記クラスタサイズのデータを前記更新データに付加した書き込みデータを作成し、前記第１メモリの書き込み中のブロックに書き込むことを特徴とする請求項２に記載のメモリシステム。
【請求項４】
前記制御部は、前記ページサイズと、前記更新内容および前記更新内容記憶位置を格納したデータを付加した前記更新データのサイズと、の差が前記クラスタサイズ以上の場合に、前記第１メモリ内の有効データと無効データとを含むコンパクション候補ブロックから取得した前記有効データを前記更新データにさらに付加して前記書き込みデータを作成することを特徴とする請求項１または請求項３に記載のメモリシステム。
【請求項５】
前記制御部は、前記第２メモリ内の前記管理情報の更新内容と前記管理情報の更新内容の前記第１メモリ内での記憶位置を示す更新内容記憶位置を前記第１メモリに書き込む際に、前記ページサイズと前記管理情報の更新内容および前記更新内容記憶位置のサイズとの差が前記クラスタサイズ以上の場合に、前記第１メモリ内の有効データと無効データとを含むコンパクション候補ブロックから取得した前記有効データを前記管理情報の更新内容および前記更新内容記憶位置に付加した書き込みデータを作成し、前記第１メモリの書き込み中のブロックに書き込むことを特徴とする請求項１乃至請求項４のいずれか１つに記載のメモリシステム。
【請求項６】
前記制御部は、前記コンパクション候補ブロックのうち、前記有効データの数が最も少ないコンパクション対象ブロックから、前記有効データを取得することを特徴とする請求項２，４または５に記載のメモリシステム。
【請求項７】
前記書き込みデータ中に書き込むことができる前記更新内容記憶位置の数には上限値が設定され、
前記制御部は、前記書き込みデータ中に格納される前記更新内容記憶位置の数が前記上限値に達すると、前記前記書き込みデータ中の前記更新内容記憶位置で示される位置に記憶される前記更新内容を用いて、前記管理情報を更新することを特徴とする請求項１乃至請求項６のいずれか１つに記載のメモリシステム。
【請求項８】
前記制御部は、前記書き込みデータの書き込み後に、前記第２メモリ中の残った前記更新内容を前記書き込み中のブロックに書き込むことを特徴とする請求項１乃至請求項４のいずれか１つに記載のメモリシステム。
【請求項９】
前記制御部は、前記書き込み中のブロックが満たされると、前記第１メモリ内の有効データを含まないフリーブロックをつぎの書き込みを行なうブロックとして選択することを特徴とする請求項１乃至請求項８のいずれか１つに記載のメモリシステム。
【請求項１０】
前記データは、ユーザデータまたは当該メモリシステムの内部データであることを特徴とする請求項１乃至請求項９のいずれか１つに記載のメモリシステム。
【請求項１１】
データの管理単位をクラスタとし、前記クラスタを２以上含むページを前記データの書き込み単位とし、前記ページを２以上含むブロックを前記データの消去単位とする不揮発性の第１メモリと、
前記第１メモリへ書き込まれるデータを一時的に記憶する第２メモリと、
前記第２メモリに記憶されているデータを前記第１メモリに前記ページ単位で書き込むとともに、前記第１メモリ内でのデータの記憶位置を管理する制御部と、
を備えるメモリシステムのデータ書き込み方法において、
更新データの不揮発化要求を受けると、前記更新データが前記ページサイズよりも小さい場合に、前記ページサイズと前記更新データのサイズの差が前記クラスタサイズ以上あるかを判定する判定工程と、
前記ページサイズと前記更新データのサイズとの差が前記クラスタサイズ以上の場合に、前記更新データに対応する前記管理情報の更新内容を格納した前記クラスタサイズのデータを、前記更新データに付加して前記書き込みデータを前記第２メモリ上で作成する書き込みデータ作成工程と、
前記書き込みデータを、前記第１メモリの書き込み中のブロックに書き込む書き込み工程と、
を含むことを特徴とするメモリシステムの書き込み方法。
【請求項１２】
前記書き込みデータ作成工程では、前記ページサイズと前記更新データのサイズとの差が前記クラスタサイズ以上の場合に、前記第１メモリ内の有効データと無効データとを含むコンパクション候補ブロックから取得した前記有効データを前記更新データに付加した書き込みデータを前記第２メモリ上で作成することを特徴とする請求項１１に記載のメモリシステムの書き込み方法。
【請求項１３】
前記判定工程では、更新データの不揮発化要求を受けると、前記更新データが前記ページサイズよりも小さい場合に、前記ページサイズと前記更新データのサイズの差が前記クラスタサイズ以上あるかを判定し、
前記書き込みデータ作成工程では、前記ページサイズと前記更新データのサイズとの差が前記クラスタサイズ以上の場合で、前記第１メモリ内に有効データと無効データとを含むコンパクション候補ブロックがある場合に、前記有効データに優先して前記更新内容を格納した前記クラスタサイズのデータを前記更新データに付加した書き込みデータを前記第２メモリ上で作成することを特徴とする請求項１２に記載のメモリシステムの書き込み方法。
【請求項１４】
前記書き込みデータ作成工程では、前記ページサイズと、前記更新内容および前記更新内容記憶位置を格納したデータを付加した前記更新データのサイズと、の差が前記クラスタサイズ以上の場合に、前記第１メモリ内の有効データと無効データとを含むコンパクション候補ブロックから取得した前記有効データを前記更新データにさらに付加して前記書き込みデータを作成することを特徴とする請求項１１または請求項１３に記載のメモリシステムの書き込み方法。
【請求項１５】
前記判定工程では、前記第２メモリ内の前記管理情報の更新内容と前記管理情報の更新内容の前記第１メモリ内での記憶位置を示す更新内容記憶位置とのサイズの和がページサイズよりも小さい場合に、前記ページサイズと前記管理情報の更新内容および前記更新内容記憶位置のサイズとの差が前記クラスタサイズ以上あるかを判定し、
前記書き込みデータ作成工程では、前記ページサイズと前記管理情報の更新内容および前記更新内容記憶位置のサイズとの差が前記クラスタサイズ以上ある場合に、前記第１メモリ内の有効データと無効データとを含むコンパクション候補ブロックから取得した前記有効データを、前記管理情報の更新内容および前記更新内容記憶位置に付加した書き込みデータを作成することを特徴とする請求項１１乃至請求項１４のいずれか１つに記載のメモリシステムの書き込み方法。
【請求項１６】
前記書き込みデータ作成工程では、前記コンパクション候補ブロックのうち、前記有効データの数が最も少ないコンパクション対象ブロックから、前記有効データを取得することを特徴とする請求項１２，１４または１５に記載のメモリシステムの書き込み方法。
【請求項１７】
前記書き込みデータ作成工程では、前記書き込みデータ中に書き込むことができる前記更新内容記憶位置の数には上限値が設定され、前記書き込みデータ中に格納される前記更新内容記憶位置の数が前記上限値に達すると、前記前記書き込みデータ中の前記更新内容記憶位置で示される位置に記憶される前記更新内容を用いて、前記第１メモリ内に記憶されている管理情報を更新することを特徴とする請求項１１乃至請求項１６のいずれか１つに記載のメモリシステムの書き込み方法。
【請求項１８】
前記書き込み工程では、前記書き込みデータの書き込み後に、前記第２メモリ中の残った前記更新内容を前記書き込み中のブロックに書き込むことを特徴とする請求項１１乃至請求項１４のいずれか１つに記載のメモリシステムの書き込み方法。
【請求項１９】
前記書き込み工程では、前記書き込み中のブロックが満たされると、前記第１メモリ内の有効データを含まないフリーブロックをつぎの書き込みを行なうブロックとして選択することを特徴とする請求項１１乃至請求項１８のいずれか１つに記載のメモリシステムの書き込み方法。
【請求項２０】
前記データは、ユーザデータまたは当該メモリシステムの内部データであることを特徴とする請求項１１乃至請求項１９のいずれか１つに記載のメモリシステムの書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムとそのデータ書き込み方法に関する。
【背景技術】
【０００２】
従来、ＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリという）を不揮発性記憶部として用いたメモリシステムでは、たとえばホスト装置からの指示によってＮＡＮＤメモリにはページ単位でユーザデータが書き込まれる。また、ＮＡＮＤメモリ内でのデータの記憶位置を管理する管理テーブルがＮＡＮＤメモリ内に格納されており、ユーザデータの書き込みに伴って変化する管理テーブルの更新情報もＮＡＮＤメモリに書き込まれる。
【０００３】
しかしながら、従来技術では、ユーザデータと管理テーブルの更新情報とは別々に書き込みがなされており、ＮＡＮＤメモリのレイテンシの悪化などに繋がっていた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１５２５１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の一つの実施形態は、ＮＡＮＤメモリのレイテンシの悪化を従来に比して抑制することができるメモリシステムとそのデータ書き込み方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一つの実施形態によれば、不揮発性の第１メモリと、第２メモリと、制御部と、を備えるメモリシステムが提供される。前記第１メモリは、データの管理単位をクラスタとし、前記クラスタを２以上含むページを前記データの書き込み単位とし、前記ページを２以上含むブロックを前記データの消去単位とする。また、前記第１メモリは、前記データの前記第１メモリ内での記憶位置を示す管理情報を格納する管理情報格納領域を有する。前記第２メモリは、前記第１メモリへ書き込まれるデータを一時的に記憶する。前記制御部は、前記第２メモリに記憶されているデータを前記第１メモリに前記ページ単位で書き込むとともに、前記第１メモリ内でのデータの記憶位置を管理する。また、前記制御部は、前記第２メモリ内の更新データを前記第１メモリに書き込む際に、前記ページサイズと前記更新データのサイズとの差が前記クラスタサイズ以上の場合に、前記更新データに対応する前記管理情報の更新内容と、前記管理情報の更新内容の前記第１メモリ内での記憶位置を示す更新内容記憶位置と、を格納した前記クラスタサイズのデータを、前記更新データに付加して前記書き込みデータを作成し、前記第１メモリの書き込み中のブロックに書き込む。
【図面の簡単な説明】
【０００７】
【図１】図１は、メモリシステムの一般的な構成を示すブロック図である。
【図２】図２は、第１の実施形態によるメモリシステムの機能構成の一例を模式的に示すブロック図である。
【図３】図３は、第１の実施形態によるデータ管理の一例を示す図である。
【図４】図４は、書き込み先ブロックの状態を模式的に示す図である。
【図５】図５は、第１の実施形態によるメモリシステムのデータ書き込み方法の処理手順の一例を示すフローチャートである。
【図６】図６は、書き込みデータのＮＡＮＤメモリへの書き込み処理の手順の一例を示すフローチャートである。
【図７】図７は、更新データを含むページに、管理情報の更新内容とコンパクションデータを格納する場合の書き込み処理の流れの一例を模式的に示す図である。
【図８】図８は、更新データを含むページに管理情報の更新内容を格納する場合の書き込み処理の流れの一例を模式的に示す図である。
【図９】図９は、ＳＳＤを搭載したパーソナルコンピュータの一例を示す斜視図である。
【図１０】図１０は、ＳＳＤを搭載したパーソナルコンピュータのシステム構成例を示すブロック図である。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、実施形態にかかるメモリシステムとそのデータ書き込み方法を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。また、以下では、一般的なメモリシステムの構成と、このメモリシステムでの書き込み処理の問題点を説明した後に、実施形態について説明する。
【０００９】
図１は、メモリシステムの一般的な構成を示すブロック図である。このメモリシステム１０は、ホストインタフェース（以下、ホストＩ／Ｆという）１１と、ＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリという）１２と、ＲＡＭ（Random  Access  Memory）１３と、ＣＰＵ（Central  Processing  Unit）１４と、を備え、各処理部間はバス１５を介して接続されている。
【００１０】
ホストＩ／Ｆ１１は、ＡＴＡ（Advanced  Technology  Attachment）インタフェース（ＡＴＡ  Ｉ／Ｆ）などのメモリ接続インタフェースであり、パーソナルコンピュータまたはＣＰＵコアなどの図示しないホスト装置との間のインタフェースである。
【００１１】
ＮＡＮＤメモリ１２は、データを不揮発に記憶することができる記憶装置であり、ユーザデータやプログラム、メモリシステム内の内部データなどの保存用の記憶部として使用される。具体的には、ホスト装置側によって指定されたデータを記憶したり、ＮＡＮＤメモリ１２でのデータ格納位置を管理する管理情報やファームウェアプログラムなどの不揮発に保存したい重要なデータを記憶したりする。ＮＡＮＤメモリでは、消去はブロック単位で行われ、書き込みと読み出しはページ単位で行われる。
【００１２】
ＲＡＭ１３は、ホスト装置とＮＡＮＤメモリ１２との間でのデータ転送用キャッシュおよび作業領域用メモリなどの一時記憶用の記憶部として使用される。ＲＡＭ１３のデータ転送用キャッシュとして、たとえばＮＡＮＤメモリ１２に書き込むデータを一時的に記憶するライトバッファと、ＮＡＮＤメモリ１２から読み出したデータを一時的に記憶するリードバッファと、がある。また、ＲＡＭ１３の作業領域用メモリに記憶されるものとしては、ＮＡＮＤメモリ１２に記憶されている管理テーブルが起動時などに展開された管理テーブルなどがある。この管理テーブルは、ホスト装置から指定された論理アドレスとＮＡＮＤメモリ１２内での物理的なデータの記憶位置とを対応付ける管理情報を管理する情報テーブルであり、最新の情報となるように維持される。ユーザデータの書き込みや、管理テーブルへのデータの読み書きを行う際には、ＲＡＭ１３上に管理テーブルが展開される。
【００１３】
なお、ＲＡＭ１３として、ＤＲＡＭ（Dynamic  ＲＡＭ）、ＳＲＡＭ（Static  ＲＡＭ）、ＦｅＲＡＭ（Ferroelectric  RAM）、ＭＲＡＭ（Magnetoresistive   RAM）、ＰＲＡＭ（Phase  change   RAM）などを用いることができる。
【００１４】
ＣＰＵ１４は、メモリシステム１０を制御するコントローラ（制御部）であり、ホスト装置との間でコマンドを処理したり、ＲＡＭ１３を介してＮＡＮＤメモリ１２とホスト装置との間のデータ転送を行ったり、ＮＡＮＤメモリ１２内の各ブロックを管理したりする機能を有する。
【００１５】
このメモリシステム１０は、ホストＩ／Ｆ１１を介してホスト装置と接続され、ホスト装置の外部メモリ、たとえば２次記憶装置（Solid  State  Drive：ＳＳＤ）として使用され、ホスト装置から書き込み要求が出されたデータを記憶し、またホスト装置から読み出し要求のあったデータを読み出してホスト装置に出力する機能を有する。
【００１６】
このような構成のメモリシステム１０で、ＲＡＭ１３に書き込まれたデータを不揮発化したい場合に、ＲＡＭ１３上のデータがＮＡＮＤメモリ１２に書き込まれる。このとき、書き込まれた有効データがＮＡＮＤメモリ１２のどの位置にあるかを特定するのに有効データに一意に割り当てた識別番号（たとえばＬＢＡ（Logical  Block  Address）など）をキーとした管理テーブルも更新される。
【００１７】
ＮＡＮＤメモリ１２では、（Ａ）書き込みがページ単位である、（Ｂ）データを書き込んだ領域への再書き込みには事前にブロックの消去が必要である、（Ｃ）消去はブロック単位で行う、といった特性がある。そのため、データの書き込みは、ＮＡＮＤメモリの空きページに順次行い、空きページが無くなった段階で、無効データが含まれるブロックの有効データを、有効データを含まない再利用可能なブロックに移し替え、再利用可能なページを増やす処理であるコンパクション（ガベージコレクション）を行い、空きページを確保する構成が一般的である。また、データを更新する場合においても、以前に書き込んだデータは残しておき、書き込み可能な別のページに書き込みを行うが、この際、以前に書き込んだデータは無効データとなる。このようなデータの書き込みやデータの更新、コンパクションが行なわれると、管理テーブルも更新される。この管理テーブルは、電源オフの状態を跨いでも失われないようにするため、ＮＡＮＤメモリに書き込まれる。
【００１８】
一般的なメモリシステム１０では、上記のデータの更新、コンパクションおよび管理情報の更新に伴うページ単位の追加記録処理は、それぞれ個別に行われるため、別々のページに書き込まれることになる。しかし、この方法では、一度に書き込む必要のあるデータのサイズがページに対して十分に小さい場合に、実際の書き込みが必要なサイズに比べて無駄に大きなサイズを書き込むことになり、ＮＡＮＤメモリの疲弊やレイテンシの悪化に繋がっていた。
【００１９】
そこで、以下では、このような問題点を解決する実施形態について説明する。以下の説明では、このような問題点を解決する際に使用される処理部について説明し、その他の一般的なメモリシステム１０で使用される処理部についての説明については省略する。また、以下の説明では、ユーザデータのＲＡＭ１３からＮＡＮＤメモリへの書き込み処理を例に挙げて説明する。
【００２０】
（第１の実施形態）
図２は、第１の実施形態によるメモリシステムの機能構成の一例を模式的に示すブロック図である。このメモリシステム１０では、ＮＡＮＤメモリ１２に、管理テーブル１２１が格納される。ＮＡＮＤメモリ１２内のフリーブロックはフリーブロックキュー１２３によって管理され、コンパクション候補ブロックはコンパクション候補キュー１２４によって管理される。
【００２１】
管理テーブル１２１は、書き込まれた有効データがＮＡＮＤメモリ１２のどの位置にあるかを特定するために、有効データに一意に割り当てた識別番号をキーとした情報である。第１の実施形態では、ユーザデータを書き込む場合を例に挙げているので、識別番号としてＬＢＡを用いることができる。なお、この第１の実施形態では、ＮＡＮＤメモリ１２でページよりも小さい単位（クラスタという）でデータが管理されるものとする。
【００２２】
図３は、第１の実施形態によるデータ管理の一例を示す図であり、（ａ）はＮＡＮＤメモリ内での管理単位の一例を模式的に示す図であり、（ｂ）は管理テーブルの一例を示す図である。図３（ａ）に示されるように、ＮＡＮＤメモリの消去単位であるブロック３０−０，３０−１，・・・は、複数の書き込み単位であるページ３１からなり、ページ３１は、さらに複数のデータ管理単位であるクラスタ３２からなる。第１の実施形態では、１ページ３１が４つのクラスタ３２からなる場合を例示している。また、ブロック３０−０の先頭ページ（０ページ）の先頭アドレスを含むクラスタ３２から順に、０，１，２，３，４，・・・と符号（識別番号）を付していくものとする。すなわち、各クラスタ３２には、各ブロック３０−０，３０−１，・・・内で一意に識別可能な符号が付されている。
【００２３】
図３（ｂ）に示されるように、管理テーブル１２１は、ホスト装置からＬＢＡで指定されるデータが、どのブロックのどのクラスタに格納されているかを示す情報である。たとえば、ＬＢＡが「２」で指定されるデータは、ブロック３０−１の番号７で指定されるクラスタに格納されている。なお、この例では、１ページ３１が４つのクラスタ３２からなる場合を示しているが、１ページ３１が複数のクラスタ３２から構成されていればよい。
【００２４】
フリーブロックキュー１２３は、ＮＡＮＤメモリ１２内の有効データが存在しないフリーブロックの位置を示す情報であり、書き込み先ブロック１２５が最終ページまで書き込まれた場合に、つぎのデータを書き込む新たなブロックがこのフリーブロックキュー１２３から選択される。なお、新たなブロックを選択するタイミングで、ブロックの消去が行なわれる。
【００２５】
コンパクション候補キュー１２４は、コンパクションの候補となる有効データと無効データとを有するブロックの位置を示す情報であり、有効クラスタの数が少ない順に配列されている。ＣＰＵ１４で後に説明するコンパクション処理が行なわれる際に、コンパクション候補キュー１２４中の有効クラスタの数が少ないブロックからコンパクションを行なう有効データが選択される。
【００２６】
ＲＡＭ１３には、ライトバッファ１３Ｗと図示しないリードバッファとが設けられ、ライトバッファ１３Ｗには、ＮＡＮＤメモリ１２へ書き込まれる書き込みデータ１３１が一時的に記憶される。また、ライトバッファ１３Ｗには、書き込みデータ１３１のＮＡＮＤメモリ１２内での新たな記憶位置を示す更新内容が時系列で一時的に記憶される所定サイズの更新内容記憶領域１３２と、管理テーブル１２１の更新内容のＮＡＮＤメモリ１２内での記憶位置を示す更新内容記憶位置情報を記憶する所定サイズの更新内容記憶位置情報記憶領域１３３と、が設けられる。
【００２７】
更新内容は、たとえば管理テーブル１２１の更新される部分の差し替えデータ（差分データ）とすることができる。更新内容として、クラスタアラインされたＬＢＡに、ブロックアドレスと、ブロック内での位置情報を示すブロック内オフセットとを対応付けた情報とすることができる。
【００２８】
更新内容記憶領域１３２の更新内容は、書き込み処理部１４４によって書き込みデータ１３１がＮＡＮＤメモリ１２内の書き込み先ブロック１２５に追加記録される度に生成される。そして、フラッシュコマンドが発せられたときや更新内容記憶領域１３２が一杯になった場合などのデータの不揮発化が要求されるタイミングまで、更新内容が蓄積される。
【００２９】
更新内容記憶位置情報記憶領域１３３にエントリすることができる更新内容の記憶位置の数は決まっており、更新内容記憶位置情報１３３に含まれる更新内容の数が上限に達すると、更新内容記憶位置情報１３３で指示される位置の更新内容を用いて管理テーブル１２１が更新されるものとする。
【００３０】
ＣＰＵ１４は、書き込みデータ生成部１４１と、フリーブロック管理部１４２と、コンパクション管理部１４３と、書き込み処理部１４４と、を有する。
【００３１】
書き込みデータ生成部１４１は、ホスト装置からのまたは自装置によるフラッシュ要求が出されると、ＲＡＭ１３のライトバッファ１３Ｗ上のデータをＮＡＮＤメモリ１２へと書き込むための書き込みデータをＲＡＭ１３上で生成する。このとき、データのサイズがページサイズよりも小さく、ページサイズとデータサイズの差がクラスタサイズ以上である場合に、データに管理テーブル１２１の更新内容と更新内容記憶位置を含む更新情報やコンパクションデータなどの他のデータをクラスタサイズの単位で付加して、１ページ内になるべく多くのデータが格納されるようにする。また、書き込みデータ生成部１４１は、データ更新とコンパクションによって、ＮＡＮＤメモリ１２内でのデータの記憶位置に変更が生じ、管理情報が変更されることになったデータの更新内容（更新差分）を更新内容記憶領域１３２に時系列で順に記憶していくとともに更新内容の記憶位置を更新内容記憶位置情報記憶領域１３３に時系列で順に記憶していき、書き込みデータ１３１中のデータとコンパクションデータに対応する更新内容と、この更新内容のＮＡＮＤメモリ１２内での記憶位置およびこの更新内容よりも前の更新内容のＮＡＮＤメモリ１２内での記憶位置を抽出し、書き込みデータ１３１に付加する機能を有する。さらに、書き込みデータ生成部１４１は、残りの更新内容記憶領域１３２の書き込みにおいて、１クラスタサイズ以上の空き領域があった場合には、コンパクションデータをクラスタサイズの単位で付加する機能を有する。また、ページサイズと、残された更新内容記憶領域１３２中の更新内容およびそれまでの更新内容記憶位置を含む更新情報のデータサイズの差がクラスタサイズ以上である場合には、更新情報にコンパクションデータをクラスタサイズの単位で付加して書き込みデータを生成する。
【００３２】
たとえば、不揮発化する対象の更新データが１ページに満たず、１クラスタサイズ以上の空き領域が存在する場合には、１クラスタサイズ分の領域を更新内容付加領域として確保する。そして、更新内容付加領域に、更新データに対応する更新内容と、その更新内容のＮＡＮＤメモリ１２内での記憶位置を含む管理テーブル１２１が更新内容を用いて反映された後に行われた現在までの更新内容の記憶位置である更新内容記憶位置情報と、を含む更新情報を記憶する。その結果、１クラスタサイズ以上の空き領域が存在しなくなった場合には、更新データに更新情報を付加したものを書き込みデータとする。ここで、１クラスタサイズの領域内での更新内容と更新内容記憶位置情報とが書き込まれる領域の大きさとしては、それぞれ任意の値とすることができる。また、このように更新内容記憶位置情報として、現在書き込む書き込みデータに対応する更新内容の記憶位置だけでなく、過去に書き込まれた更新内容の記憶位置を含めさせることで、過去の更新内容の記憶位置を順にたどることが可能になる。
【００３３】
図４は、書き込み先ブロックの状態を模式的に示す図である。この図に示されるように、更新データ（１）〜（７）に対応する管理テーブル１２１の更新内容と、ＮＡＮＤメモリ１２での更新内容の記憶位置とを含む更新情報Ａがクラスタ４０１に記録されている。また、更新データ（８）〜（１７）に対応する管理テーブル１２１の更新内容と、前回管理テーブル１２１が更新された後に更新内容記憶位置情報記憶領域１３３に蓄積された更新内容の記憶位置と、を含む更新情報Ｂがクラスタ４０２に記録されている。更新情報Ｂに含まれる更新内容の記憶位置として、更新データ（８）〜（１７）に対応する管理テーブル１２１の更新内容の記憶位置であるクラスタ４０２の位置と、更新情報Ａが記録されているクラスタ４０１と、が含まれる。
【００３４】
一方、まだ１クラスタサイズ以上の空き領域が存在する場合には、クラスタサイズの自然数倍の領域をコンパクションデータ付加領域として確保する。そして、コンパクション候補キュー１２４中のコンパクション候補ブロックからコンパクションデータ付加領域のサイズに対応する有効データを含むクラスタを取得し、コンパクションデータ付加領域に記憶する。その結果、更新データに更新内容とコンパクションデータとが付加されたものが書き込みデータとなる。このとき、コンパクション候補キュー１２４から選択された有効データのＮＡＮＤメモリ１２内での新たな記憶位置と元の記憶位置との更新差分を演算し、更新内容付加領域にコンパクションデータに対応する更新内容を記憶する。なお、更新内容付加領域を確保することによって、空き領域がなくなっている可能性があるので、その場合には、予めコンパクションデータ分の空きを作っておくか、空きがなければ更新内容付加領域の代わりに更新内容記憶領域１３２に記憶する。
【００３５】
フリーブロック管理部１４２は、ＮＡＮＤメモリ１２中の有効データが存在しないフリーブロックを管理し、フリーブロックが発生した場合には、フリーブロックキュー１２３に登録する。
【００３６】
コンパクション管理部１４３は、有効データ（有効クラスタ）の数がブロック中で所定数以下のＮＡＮＤメモリ１２内のブロックを検索して、コンパクション候補ブロックとして取得し、有効クラスタ数が少ない順にコンパクション候補キューに登録する処理を行なう。
【００３７】
書き込み処理部１４４は、書き込みデータ生成部１４１によって生成されたページサイズの書き込みデータをＮＡＮＤメモリ１２の書き込み先ブロック１２５に書き込む。書き込み先ブロック１２５が有効データで満たされた場合には、書き込み処理部１４４は、フリーブロックキュー１２３からつぎの書き込み先ブロックを取得し、そのブロックにデータ書き込みを行なう。また、書き込み処理部１４４は、書き込み先ブロック１２５に書き込まれた書き込みデータ１３１内の更新内容付加領域中の更新内容記憶位置情報が予め設定された大きさ（データの数）になると、更新内容付加領域中の更新内容が管理テーブル１２１へと反映される。
【００３８】
つぎに、このようなメモリシステム１０でのデータ書き込み方法について説明する。図５は、第１の実施形態によるメモリシステムのデータ書き込み方法の処理手順の一例を示すフローチャートである。たとえばＲＡＭ１３（ライトバッファ１３Ｗ）上のデータを不揮発化するフラッシュ要求が出されると（ステップＳ１１）、書き込みデータ生成部１４１は、以下に示す処理を行なってＲＡＭ１３上の更新データを用いてページサイズの書き込みデータを生成する。まず、書き込みデータ生成部１４１は、ＲＡＭ１３上の更新データをページ単位で区切り（ステップＳ１２）、最後のページにクラスタサイズ以上の空き領域が存在するかを判定する（ステップＳ１３）。
【００３９】
最後のページにクラスタサイズ以上の空き領域が存在する場合（ステップＳ１３でＹｅｓの場合）には、更新データの最後のページに、クラスタサイズの更新内容付加領域を確保する。そして、管理テーブル１２１に反映されていない更新データに対応する更新内容と、更新内容の記憶位置情報をそれぞれ更新内容記憶領域１３２と更新内容記憶位置情報記憶領域１３３から取得し、更新内容付加領域に格納する（ステップＳ１４）。このとき取得した更新内容は更新内容記憶領域１３２から削除されるが、取得した更新内容の記憶位置情報は、更新内容記憶位置情報記憶部１３３から削除されない。また、更新内容の記憶位置情報として、前回管理テーブル１２１の反映処理がなされて以降の更新内容の記憶位置が格納される。
【００４０】
その後、最後のページにクラスタサイズ以上の空き領域が存在するかを判定する（ステップＳ１５）。クラスタサイズ以上の空き領域が存在する場合（ステップＳ１５でＹｅｓの場合）には、更新データの最後のページに、空き領域の範囲内に収まるクラスタサイズの自然数倍の領域をコンパクションデータ付加領域として確保する。そして、コンパクション候補キュー１２４に登録されているコンパクション候補ブロックからコンパクションデータ付加領域と同じサイズの有効データを取得し、コンパクションデータ付加領域に格納する（ステップＳ１６）。このとき、コンパクション候補ブロックから書き込み先ブロック１２５へのデータの移動によって生じる管理テーブル１２１の更新も行い、その更新内容を、更新内容付加領域に格納する。なお、更新内容付加領域を確保することによって、空き領域がなくなっている可能性があるので、その場合には、予めコンパクションデータ分の空きを作っておくか、空きがなければ更新内容付加領域の代わりに更新内容記憶領域１３２に記憶する。
【００４１】
その後、またはステップＳ１３またはＳ１５で空きクラスタが存在しない場合（ステップＳ１３またはステップＳ１５でＮｏの場合）には、作成した書き込みデータのＮＡＮＤメモリ１２への書き込み処理が実行され（ステップＳ１７）、データ書き込み処理が終了する。
【００４２】
図６は、書き込みデータのＮＡＮＤメモリへの書き込み処理の手順の一例を示すフローチャートである。この書き込み処理では、書き込み処理部１４４が、作成された書き込みデータをＮＡＮＤメモリ１２内の書き込み先ブロック１２５にページ単位で追加記録する（ステップＳ２１）。その後、更新内容記憶領域１３２内に記憶されている残りの更新内容および更新内容の記憶位置情報を書き込み先ブロック１２５に書き込む（ステップＳ２２）。その後、更新内容記憶位置情報領域１２２中の更新内容の記憶位置の数が上限に達したかを判定し（ステップＳ２４）、上限に達していない場合（ステップＳ２４でＮｏの場合）には、書き込み処理が終了する。
【００４３】
また、上限に達した場合（ステップＳ２４でＹｅｓの場合）には、書き込み処理部１４４は、更新内容記憶位置情報領域１２２から更新内容の記憶位置を取得し、その記憶位置に格納されている更新内容を管理テーブル１２１に反映させる処理を、更新内容記憶位置情報領域に含まれる更新内容の記憶位置の順に行い、管理テーブル１２１の更新を行なう（ステップＳ２５）。たとえば、図４の場合では、書き込み先ブロック１２５のクラスタ４０２に更新情報が記録されているが、この更新情報中の更新内容記憶位置情報の数が上限値に達したとすると、ここには過去の更新内容記憶位置情報も記録されているので、ここに含まれる情報から最も古い更新内容記憶位置情報までたどることができる。クラスタ４０１が最も古い更新内容記憶位置情報であるとすると、クラスタ４０１に含まれる更新内容を用いて管理テーブル１２１の更新が行われ、つぎに、クラスタ４０２に含まれる更新内容を用いて管理テーブルの更新が行われる。以上によって、書き込みデータのＮＡＮＤメモリ１２への書き込み処理が終了する。
【００４４】
以上の処理が、ＲＡＭ１３のライトバッファ１３Ｗ中のすべての更新データに対して実行されることによって、更新データがＮＡＮＤメモリ１２中に不揮発に記憶されることになる。また、ステップＳ２１，Ｓ２２で、書き込み先ブロック１２５の最終ページまで書き込みがなされた場合には、フリーブロックキュー１２３に登録されている中から選択されるフリーブロックが新たな書き込み先ブロック１２５となり、このブロックに書き込みデータが書き込まれることになる。
【００４５】
つぎに、具体例を挙げて第１の実施形態による書き込み処理を説明する。
【００４６】
＜更新データを含むページに管理情報の更新内容とコンパクションデータを格納する場合＞
図７は、更新データを含むページに、管理情報の更新内容とコンパクションデータを格納する場合の書き込み処理の流れの一例を模式的に示す図である。この図に示されるように、フラッシュ要求が出された後、ＲＡＭ１３では、１ページ分の書き込みデータ１３１に、まず更新データ２０１を格納する。ここでは、更新データ２０１は２つ分のクラスタサイズに収まるデータ量であるとする。
【００４７】
ここでは、１ページ分の書き込みデータ１３１に１つ分以上のクラスタサイズの空き領域があるので、書き込みデータ生成部１４１は、１クラスタサイズ分の空き領域を更新内容付加領域に設定する。そして、更新内容記憶領域１３２から取得した更新データ２０１に対応する管理テーブル１２１の更新内容２０２１を更新内容領域に格納する。このとき、更新内容領域には、予め定められたサイズ以上の更新内容２０２１を格納することができない。また、前回管理テーブル１２１が更新されてから今回の更新までの更新内容の記憶位置２０２２（クラスタ位置）を更新内容記憶位置情報記憶領域１３３から取得して、更新内容位置情報領域に格納する。これらの更新内容２０２１と更新内容の記憶位置２０２２とによって、更新情報２０２が形成される。
【００４８】
また、１ページ分の書き込みデータ１３１にさらに１つ分以上のクラスタサイズの空き領域があるので、書き込みデータ生成部１４１は、１クラスタサイズ分の空き領域をコンパクションデータ付加領域に設定し、コンパクションデータ付加領域にコンパクションデータ２０３を格納する。このコンパクションデータ２０３は、コンパクション候補キュー１２４中の有効クラスタ数が最も少ないコンパクション候補ブロック１２４−１中の有効データｖｄから選択される。この図では、有効データｖｄを黒塗りで示し、無効データｉｖｄを白抜きで示している。これによって、１ページ分の書き込みデータ１３１を構成する４個分のクラスタに対応する領域のすべてにデータが含まれる状態となる。
【００４９】
その後、書き込み処理部１４４によってＲＡＭ１３上の書き込みデータ１３１は、ＮＡＮＤメモリ１２の書き込み先ブロック１２５の未書き込みページ１２５１に追加記録される。以上によって、更新データのＮＡＮＤメモリ１２への書き込み処理が終了する。
【００５０】
＜更新データを含むページに管理情報の更新内容を格納する場合＞
図８は、更新データを含むページに管理情報の更新内容を格納する場合の書き込み処理の流れの一例を模式的に示す図である。この図に示されるように、フラッシュ要求が出された後、ＲＡＭ１３では、１ページ分の書き込みデータ１３１に、まず更新データ２０１を格納する。ここでは、更新データ２０１は３つ分のクラスタサイズに収まるデータ量であるとする。
【００５１】
ついで、１ページ分の書き込みデータ１３１に１つ分以上のクラスタサイズの空き領域があるので、書き込みデータ生成部１４１は、１クラスタサイズ分の空き領域を更新内容付加領域に設定する。そして、更新内容記憶領域１３２から取得した更新データ２０１に対応する管理テーブル１２１の更新内容２０２１を更新内容領域に格納する。また、前回管理テーブル１２１が更新されてから今回の更新までの更新内容の記憶位置２０２２（クラスタ位置）を更新内容記憶位置情報記憶領域１３３から取得して、更新内容位置情報領域に格納する。これらの更新内容２０２１と更新内容の記憶位置２０２２とによって、更新情報２０２が形成される。このとき、１ページ分の書き込みデータ１３１には、１クラスタサイズ以上の空き領域がもうないので、書き込みデータの生成が終了する。これによって、１ページ分の書き込みデータ１３１を構成する４個分のクラスタに対応する領域のすべてにデータが含まれる状態となる。
【００５２】
その後、書き込み処理部１４４によってＲＡＭ１３上の書き込みデータ１３１は、ＮＡＮＤメモリ１２の書き込み先ブロック１２５の未書き込みページ１２５１に追加記録される。以上によって、更新データのＮＡＮＤメモリ１２への書き込み処理が終了する。
【００５３】
上記のように書き込み先ブロック１２５には、更新データのほかに、更新データをＮＡＮＤメモリ１２に書き込むことによって変更される管理テーブル１２１の更新内容２０２１と、更新内容２０２１のＮＡＮＤメモリ１２内での記憶位置２０２２と、を含む更新情報２０２が含まれる。更新内容２０２１２が管理テーブル１２１に反映されずに電源断となり、つぎに起動される際に、これらの更新情報２０２が参照されることになる。具体的には、最後に追加記録したブロックについて、ブロックの単位でブロックアドレスを別途不揮発化しておき、電源断後の起動時にこの追加記録したブロックのブロックアドレスの消去ページ検索を行う。消去ページ検索によってブロック中の先頭の消去ページを検索し、その１つ前のページが最後に追加記録したページとなり、このページ中に含まれる更新情報２０２中の更新内容の記憶位置２０２２を用いて、過去に更新された更新内容２０２１が含まれる位置（クラスタ位置）をたどることができ、そのクラスタ位置に含まれる更新内容２０２１を用いて管理テーブル１２１を復元することができる。
【００５４】
なお、上記した説明では、更新データがページサイズよりも小さく、ページサイズと更新データのサイズの差がクラスタサイズ以上ある場合に、更新データに対応する管理テーブル１２１の更新内容を、コンパクションデータに優先して、クラスタサイズの空き領域に格納するようにしているが、更新内容ではなくコンパクションデータを自然数倍のクラスタサイズの空き領域に格納するようにしてもよい。この場合には、更新内容記憶領域１３２中の更新内容をまとめて書き込むようにすればよい。
【００５５】
また、上記した説明では、ＮＡＮＤメモリ１２にデータを書き込む場合を例に挙げて説明したが、ＮＡＮＤメモリ１２に限らず、データが第１単位で管理されるとともに、データの書き込みが第１単位の２以上の整数倍で行なわれる不揮発性メモリに対して、上記した実施形態を適用することができる。
【００５６】
さらに、ＲＡＭ１３上のユーザデータをＮＡＮＤメモリ１２に書き込む場合を説明したが、ユーザデータに限られず、ＲＡＭ１３に記憶されＮＡＮＤメモリ１２に書き込まれるデータ全般に対して上記した実施形態を適用することができる。たとえば、ホスト装置からの書き込みの数やホスト装置から書き込まれるデータのサイズ、ＢＩＯＳ（Basic  Input/Output  System）の設定などの統計情報や、メモリシステム１０の内部動作のログ情報、メモリシステム１０で使用されるファームウェアのアップデートデータなどの内部データをＲＡＭ１３からＮＡＮＤメモリ１２へと書き込む場合にも適用することができる。この内部データの管理に当たっては、ＬＢＡを用いることもできるし、内部データの管理にのみ用いられるＬＢＡに準じたアドレス体系を用いることもできる。
【００５７】
また、上述した説明では、更新内容として、管理テーブル１２１の一部差し替えデータを用いる場合を示したが、テーブル全体の差し替えデータを用いてもよい。ただし、この場合には、ＲＡＭ１３に設けられる更新内容記憶位置情報記憶領域１３３は不要となり、書き込みデータ１３１には更新内容２０２１のみが付加されることになる。
【００５８】
以上説明したように、第１の実施形態によれば、ＮＡＮＤメモリ１２におけるデータの管理単位をページよりも小さいクラスタで行い、ＲＡＭ１３上の更新データのＮＡＮＤメモリ１２への書き込み時に、ページサイズと更新データのサイズとの差がクラスタサイズ以上ある場合には、クラスタサイズの単位で、更新データに対応する管理テーブル１２１の更新内容やコンパクションデータを付加するようにした。これによって、書き込み単位のページを構成する各クラスタにデータが含まれる状態となるので、空き領域の多いデータの書き込みとは違って、効率のよいＮＡＮＤメモリ１２への書き込み処理を行なうことができるという効果を有する。
【００５９】
また、種類の異なるデータを１つの書き込みデータにまとめてＮＡＮＤメモリ１２への書き込みを行なうことで、それぞれ別々に書き込みを行なう場合に比して、ＮＡＮＤメモリ１２の書き込み量を低減させ、ＮＡＮＤメモリ１２の延命およびＮＡＮＤメモリ１２のレイテンシを向上させることができるという効果も有する。特に、フラッシュ要求が頻繁に出される場合やライトバッファ１３Ｗの容量が小さい場合に有効である。
【００６０】
さらに、更新データとそれに対応する管理テーブル１２１の更新内容だけでなく、コンパクションデータも格納するようにしたので、コンパクション処理を単独で実施する前に、コンパクション対象ブロック中の有効データの一部について先行してコンパクション処理を実施する（プリフェッチする）ことができるという効果も有する。
【００６１】
（第２の実施形態）
図９は、ＳＳＤを搭載したパーソナルコンピュータの一例を示す斜視図である。パーソナルコンピュータ１２００は、本体１２０１、および表示ユニット１２０２を備えている。表示ユニット１２０２は、ディスプレイハウジング１２０３と、このディスプレイハウジング１２０３に収容された表示装置１２０４と、を備えている。
【００６２】
本体１２０１は、筐体１２０５と、キーボード１２０６と、ポインティングデバイスであるタッチパッド１２０７とを備えている。筐体１２０５内部には、メイン回路基板、ＯＤＤ（optical  disk  device）ユニット、カードスロット、およびＳＳＤ１０Ａ等が収容されている。このＳＳＤは、第１の実施形態で説明したメモリシステムに相当している。
【００６３】
カードスロットは、筐体１２０５の周壁に隣接して設けられている。周壁には、カードスロットに対向する開口部１２０８が設けられている。ユーザは、この開口部１２０８を通じて筐体１２０５の外部から追加デバイスをカードスロットに挿抜することが可能である。
【００６４】
ＳＳＤ１０Ａは、従来のＨＤＤの置き換えとして、パーソナルコンピュータ１２００内部に実装された状態として使用してもよいし、パーソナルコンピュータ１２００が備えるカードスロットに挿入した状態で、追加デバイスとして使用してもよい。
【００６５】
図１０は、ＳＳＤを搭載したパーソナルコンピュータのシステム構成例を示すブロック図である。パーソナルコンピュータ１２００は、ＣＰＵ１３０１、ノースブリッジ１３０２、主メモリ１３０３、ビデオコントローラ１３０４、オーディオコントローラ１３０５、サウスブリッジ１３０９、ＢＩＯＳ−ＲＯＭ１３１０、ＳＳＤ１０Ａ、ＯＤＤユニット１３１１、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１３１２、およびネットワークコントローラ１３１３等を備えている。
【００６６】
ＣＰＵ１３０１は、パーソナルコンピュータ１２００の動作を制御するために設けられたプロセッサであり、ＳＳＤ１０Ａから主メモリ１３０３にロードされるオペレーティングシステム（ＯＳ）を実行する。さらに、ＯＤＤユニット１３１１が、装填された光ディスクに対して読み出し処理および書き込み処理の少なくとも１つの処理の実行を可能にした場合に、ＣＰＵ１３０１は、それらの処理の実行をする。
【００６７】
また、ＣＰＵ１３０１は、ＢＩＯＳ−ＲＯＭ１３１０に格納されたシステムＢＩＯＳ（Basic  Input  Output  System）も実行する。なお、システムＢＩＯＳは、パーソナルコンピュータ１２００内のハードウェア制御のためのプログラムである。
【００６８】
ノースブリッジ１３０２は、ＣＰＵ１３０１のローカルバスとサウスブリッジ１３０９との間を接続するブリッジデバイスである。ノースブリッジ１３０２には、主メモリ１３０３をアクセス制御するメモリコントローラも内蔵されている。
【００６９】
また、ノースブリッジ１３０２は、ＡＧＰ（Accelerated  Graphics  Port）バス等を介してビデオコントローラ１３０４との通信、およびオーディオコントローラ１３０５との通信を実行する機能も有している。
【００７０】
主メモリ１３０３は、プログラムやデータを一時的に記憶し、ＣＰＵ１３０１のワークエリアとして機能する。主メモリ１３０３は、たとえばＤＲＡＭから構成される。
【００７１】
ビデオコントローラ１３０４は、パーソナルコンピュータ１２００のディスプレイモニタとして使用される表示ユニット１２０２を制御するビデオ再生コントローラである。
【００７２】
オーディオコントローラ１３０５は、パーソナルコンピュータ１２００のスピーカ１３０６を制御するオーディオ再生コントローラである。
【００７３】
サウスブリッジ１３０９は、ＬＰＣ（Low  Pin  Count）バス１３１４上の各デバイス、およびＰＣＩ（Peripheral  Component  Interconnect）バス１３１５上の各デバイスを制御する。また、サウスブリッジ１３０９は、各種ソフトウェアおよびデータを格納する記憶装置であるＳＳＤ１０Ａを、ＡＴＡインタフェースを介して制御する。
【００７４】
パーソナルコンピュータ１２００は、セクタ単位でＳＳＤ１０Ａへのアクセスを行う。ＡＴＡインタフェース（Ｉ／Ｆ）を介して、書き込みコマンド、読み出しコマンド、フラッシュコマンド等がＳＳＤ１０Ａに入力される。
【００７５】
また、サウスブリッジ１３０９は、ＢＩＯＳ−ＲＯＭ１３１０、およびＯＤＤユニット１３１１をアクセス制御するための機能も有している。
【００７６】
ＥＣ／ＫＢＣ１３１２は、電力管理のためのエンベデッドコントローラと、キーボード（ＫＢ）１２０６およびタッチパッド１２０７を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。
【００７７】
このＥＣ／ＫＢＣ１３１２は、ユーザによるパワーボタンの操作に応じてパーソナルコンピュータ１２００の電源をＯＮ／ＯＦＦする機能を有している。ネットワークコントローラ１３１３は、たとえばインターネット等の外部ネットワークとの通信を実行する通信装置である。
【００７８】
パーソナルコンピュータ１２００は、ＳＳＤ１０Ａに電源供給を行い、また、ＳＳＤ１０Ａに停止要求（Standby要求）を発行する。仮にパーソナルコンピュータ１２００からＳＳＤ１０Ａへの電源供給が不正に断たれた場合であっても、書き込みエラーの発生を未然に防ぐことができる。
【００７９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８０】
１０…メモリシステム、１１…ホストＩ／Ｆ、１２…ＭＡＮＤメモリ、１３…ＲＡＭ、１３Ｗ…ライトバッファ、１４…ＣＰＵ、１５…バス、１２１…管理テーブル、１２２…更新内容記憶位置情報、１２３…フリーブロックキュー、１２４…コンパクション候補キュー、１２４−１…コンパクション候補ブロック、１２５…書き込み先ブロック、１３１…書き込みデータ、１３２…更新内容記憶領域、１４１…書き込みデータ生成部、１４２…フリーブロック管理部、１４３…コンパクション管理部、１４４…書き込み処理部、２０１…更新データ、２０２…更新内容、２０３…コンパクションデータ。
【図１】
2013174975.tif 000003
【図２】
2013174975.tif 000004
【図３】
2013174975.tif 000005
【図４】
2013174975.tif 000006
【図５】
2013174975.tif 000007
【図６】
2013174975.tif 000008
【図７】
2013174975.tif 000009
【図８】
2013174975.tif 000010
【図９】
2013174975.tif 000011
【図１０】
2013174975.tif 000012