(57)【要約】【課題】データを高速に書き込める不揮発性記憶装置を提供する。【解決手段】不揮発性メモリ１３０には、データが単位領域毎に書き込まれるようになっている。ＣＰＵ部１２１は、アクセス装置１１０から入力されるデータを保持する第１の記憶部１２２に保持された１つの単位領域分のデータ毎に上記不揮発性メモリに書き込む一方、上記第１の記憶部に保持されている上記単位領域分に満たないデータを第２の記憶部に保持させ、第２の記憶部に保持されたデータも、１つの単位領域分のデータ毎に上記不揮発性メモリに書き込む。【選択図】図１
2008033788.tif 000002
【特許請求の範囲】
【請求項１】
データが単位領域毎に書き込まれる不揮発性メモリ、および上記不揮発性メモリに対するデータの書き込みを制御するメモリコントローラを備えた不揮発性記憶装置において、
上記メモリコントローラは、
装置の外部から入力されるデータを保持する第１の記憶部と、
上記第１の記憶部に保持された１つの単位領域分のデータ毎に上記不揮発性メモリに書き込む一方、上記第１の記憶部に保持されている上記単位領域分に満たないデータを第２の記憶部に書き込む第１の制御部と、
上記第２の記憶部に保持されたデータを上記不揮発性メモリに書き込む第２の制御部と  を備えたことを特徴とする不揮発性記憶装置。
【請求項２】
請求項１の不揮発性記憶装置であって、
上記第１の制御部は、上記第１の記憶部に保持された上記１つの単位領域分のデータの次に装置の外部から入力されるデータが、上記１つの単位領域分のデータに連続したデータである場合は、当該１つの単位領域分のデータを上記不揮発性メモリに書き込み、連続したデータでない場合は、上記第２の記憶部に書き込むように構成されていることを特徴とする不揮発性記憶装置。
【請求項３】
請求項１の不揮発性記憶装置であって、
上記第１の制御部は、上記第１の記憶部に保持された上記１つの単位領域分のデータが装置の外部から入力された直後に所定のデータ転送の終了を示す信号が装置の外部から入力された場合は、当該１つの単位領域分のデータを上記第２の記憶部に書き込むように構成されていることを特徴とする不揮発性記憶装置。
【請求項４】
請求項１の不揮発性記憶装置であって、
さらに、装置の外部から入力されたデータの論理アドレスの履歴を記憶するアドレス履歴管理部を備え、
上記第１の制御部は、上記第１の記憶部に保持された上記１つの単位領域分のデータの書き換えられる可能性の有無を、上記アドレス履歴管理部に記憶された論理アドレスに基づいて判定し、
書き換えられる可能性が無いと判定した場合は、当該１つの単位領域分のデータを上記不揮発性メモリに書き込み、有ると判定した場合は、上記第２の記憶部に書き込むように構成されていることを特徴とする不揮発性記憶装置。
【請求項５】
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
上記第２の制御部は、上記第２の記憶部に１つの単位領域分のデータが保持された場合に、上記１つの単位領域分のデータを上記不揮発性メモリに書き込むように構成されていることを特徴とする不揮発性記憶装置。
【請求項６】
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
上記第２の制御部は、上記第２の記憶部に１つの単位領域分のデータが保持され、かつ上記１つの単位領域分のデータの次に装置の外部から入力されるデータの論理アドレスが、上記１つの単位領域分のデータの論理アドレスと連続したものである場合に、当該１つの単位領域分のデータを上記不揮発性メモリに書き込むように構成されていることを特徴とする不揮発性記憶装置。
【請求項７】
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
上記第２の制御部は、上記第２の記憶部に所定量以上のデータが保持された場合に、上記第２の記憶部に保持されたデータを上記不揮発性メモリに書き込むように構成されていることを特徴とする不揮発性記憶装置。
【請求項８】
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
上記第２の制御部は、装置の外部から所定時間データが入力されなかった場合に、上記第２の記憶部に保持されたデータを上記不揮発性メモリに書き込むように構成されていることを特徴とする不揮発性記憶装置。
【請求項９】
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
上記第１の制御部は、上記第２の記憶部に書き込む書き込みデータと論理アドレスが同一のデータが上記第２の記憶部に保持されている場合には、当該書き込みデータを上記論理アドレスが同一のデータに上書きするように構成されていることを特徴とする不揮発性記憶装置。
【請求項１０】
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
上記第１の制御部は、上記第２の記憶部に書き込む書き込みデータと論理アドレスが同一のデータが上記第２の記憶部に複数保持されている場合には、最も古い上記論理アドレスが同一のデータを当該書き込みデータで上書きするように構成されていることを特徴とする不揮発性記憶装置。
【請求項１１】
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
上記第１の制御部は、上記第１の記憶部に保持された上記１つの単位領域分のデータの重要度に応じて、当該１つの単位領域分のデータを上記不揮発性メモリと上記第２の記憶部に書き込むように構成されていることを特徴とする不揮発性記憶装置。
【請求項１２】
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
さらに、装置の外部からのデータ読み出し要求に応じて、上記不揮発性メモリのデータを上記第２の記憶部を介することなく上記第１の記憶部に転送して一端保持させた後、装置の外部に出力する読み出し制御部を備えたことを特徴とする不揮発性記憶装置。
【請求項１３】
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
上記第２の記憶部は、不揮発性ＲＡＭであることを特徴とする不揮発性記憶装置。
【請求項１４】
請求項１３の不揮発性記憶装置であって、
上記第２の記憶部は、強誘電体メモリ、磁性記録式随時書き込み読み出しメモリ、オボニックユニファイドメモリ、およびレジスタンスＲＡＭのうちのいずれか１つで構成されることを特徴とする不揮発性記憶装置。
【請求項１５】
データが所定単位量毎に書き込まれる不揮発性メモリに対して、データの書き込みおよび読み出しを行うシステムにおいて、
請求項１から請求項４のいずれか１項の不揮発性記憶装置と、
上記不揮発性記憶装置に対してデータの読み出しや書き込みを行うメインコンピュータと、
を備えたことを特徴とするデータ記憶システム。
【請求項１６】
不揮発性記憶装置のメモリコントローラが、データが単位領域毎に書き込まれる不揮発性メモリに対してデータを書き込むデータ記憶方法において、
第１の記憶部が、装置の外部から入力されるデータを保持するデータ保持ステップと、
第１の制御部が、上記第１の記憶部に保持された１つの単位領域分のデータを上記不揮発性メモリに書き込む一方、上記第１の記憶部に保持されている上記単位領域分に満たないデータを第２の記憶部に書き込む第１の制御ステップと、
第２の制御部が、上記第２の記憶部に保持されたデータを上記不揮発性メモリに書き込む第２の制御ステップと
を備えたことを特徴とするデータ記憶方法。
【請求項１７】
請求項１６のデータ記憶方法であって、
上記第１の制御ステップにおいて、上記第１の制御部は、上記第１の記憶部に保持された上記１つの単位領域分のデータの次に装置の外部から入力されるデータが、上記１つの単位領域分のデータに連続したデータである場合は、当該１つの単位領域分のデータを上記不揮発性メモリに書き込み、連続したデータでない場合は、上記第２の記憶部に書き込むことを特徴とするデータ記憶方法。
【請求項１８】
請求項１６のデータ記憶方法であって、
上記第１の制御ステップにおいて、上記第１の制御部は、上記第１の記憶部に保持された上記１つの単位領域分のデータが装置の外部から入力された直後に所定のデータ転送の終了を示す信号が装置の外部から入力された場合は、当該１つの単位領域分のデータを上記第２の記憶部に書き込むことを特徴とするデータ記憶方法。
【請求項１９】
請求項１６のデータ記憶方法であって、
さらに、アドレス履歴管理部が、装置の外部から入力されたデータの論理アドレスの履歴を記憶するステップを備え、
上記第１の制御ステップにおいて、上記第１の制御部は、上記第１の記憶部に保持された上記１つの単位領域分のデータの書き換えられる可能性の有無を、上記アドレス履歴管理部に記憶された論理アドレスに基づいて判定し、
書き換えられる可能性が有ると判定した場合は、当該１つの単位領域分のデータを上記不揮発性メモリに書き込み、無いと判定した場合は、上記第２の記憶部に書き込むことを特徴とするデータ記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書き換え可能な不揮発性メモリを備えた不揮発性記憶装置、このような不揮発性記憶装置を備えたデータ記憶システム、および不揮発性メモリに対してデータを書き込むデータ記憶方法に関するものである。
【背景技術】
【０００２】
書き換え可能な不揮発性の主記憶メモリを備えた不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。半導体メモリカードには様々な種類があり、例えば、その一つとしてＳＤメモリカード（登録商標）がある。ＳＤメモリカードは、不揮発性の主記憶メモリとしてフラッシュメモリを備えるとともに、フラッシュメモリに対するデータの読み書きを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラやパソコン（パーソナルコンピュータ）本体等のアクセス装置からの読み書き指示に応じて、フラッシュメモリに対する読み書き制御を行うようになっている。
【０００３】
このようなＳＤメモリカードがパソコン等のアクセス装置に装着され、ＳＤメモリカードのデータは、例えば、パソコンにより他のリムーバブルディスクのデータと同様にＦＡＴファイルシステムによって管理され、データの書き換え等が行われる。
【０００４】
ＦＡＴ（Ｆｉｌｅ Ａｌｌｏｃａｔｉｏｎ Ｔａｂｌｅｓ）ファイルシステムでは、記録デバイスへファイルやデータを記録する際に、ファイル・アローケション・テーブル（ＦＡＴ）を用いたデータ読み書きの指示が行われる。データ読み書きの指示は、通常「クラスタ」ごとに行われる。「クラスタ」は、データ書き込みの最小単位である「セクタ」を複数まとめた単位である。
【０００５】
従来、ＳＤメモリカードを構成するフラッシュメモリの書き込み単位であるページサイズと、前述した「セクタ」のセクタサイズとは、５１２バイト等のサイズで同一であった。しかし、近年、フラッシュメモリの大容量化と高速化のニーズに従って、多値ＮＡＮＤフラッシュメモリ等、ページサイズが２キロバイトのフラッシュメモリが主流になってきている。
【０００６】
ここで、ページサイズが４セクタのＳＤメモリカードにおいて、論理セクタ番号（論理アドレス）が０番地の１セクタ分のデータが書き換えられる場合の動作の例について説明する。ここで、論理セクタ番号が０〜３番地の４セクタ分のデータはすでにフラッシュメモリに書き込み済みであるとする。まず、論理セクタ番号が０番地の１セクタ分の更新データは、消去済みの物理ブロックの先頭ページに新規に書き込まれる。それと同時に、既にフラッシュメモリに書き込み済みである論理セクタ番号が１〜３番地の３セクタ分のデータが読み出され、読み出された３セクタ分のデータが、論理セクタ番号が０番地の１セクタ分の更新データとまとめて、当該先頭ページの空き領域に書き込まれる。このように、書き換えないデータ（上記例では、論理セクタ番号が１〜３番地の３セクタ分のデータ）を読み出して書き込む処理のことを、以降、退避処理と呼ぶ。
【０００７】
このような書き換え処理の技術の例が、特許文献１に開示されている。
【０００８】
しかしながら、退避処理を伴なった書き換え手法を用いると、１セクタ分のデータ等、１ページ分に満たないデータを書き換える場合に、旧データを読み出して書き込む処理が必要となるので、煩雑で時間がかかるという問題があった。
【０００９】
このような問題に対応したものとして、例えば、特許文献２に開示されている技術がある。なお、特許文献２に開示されている外部記憶システムにおいては、バッファ（ＳＲＡＭ）ではなく、不揮発性ＲＡＭが用いられている。
【００１０】
特許文献２に開示されている外部記憶システムのフラッシュメモリでは、物理ブロック内のセクタ配置は論理順ではなく、書き込み指示がなされた順に物理ブロックの下位ページ側からデータが書き込まれるようになっている。そして、書き込まれているデータが有効なデータと無効な旧データのいずれであるかの判断がページ毎にされることにより、記録状態の管理がなされる。
【００１１】
このように、特許文献２の外部記憶システムでは、データの退避処理が発生しないので、書き込み自体は比較的高速に行われる。しかしながら、所定のタイミングで、ガーベジコレクション（所定ブロックから有効なセクタだけを集めて別の消去済みブロックに書き写し、無効となったブロックを消去する処理）を行う必要がある。
【００１２】
また、前述したページ単位での書き込みを行う不揮発性メモリに対して、ページ単位以下のデータを効率的に書き込むための技術として、例えば、特許文献３に開示されている技術がある。
【００１３】
特許文献３に開示されているデータ処理装置では、ページ単位の書き込みを行う不揮発性メモリに対する更新データは、その更新データが記憶されるアドレスとともに第１の一時記憶手段に一時記憶される。そして、新たな更新データが装置の外部から入力された場合には、第１の一時記憶手段に格納された更新データの中に、新たな更新データのアドレスに対応するアドレスを有する更新データが存在するかどうかが判定される。存在すると判定されると、第１の一時記憶手段の上記対応するアドレスを有する更新データが新たな更新データに書き換えられる。存在されないと判定され、さらに第１の一時記憶手段の更新データが所定数に達していると判定された場合は、不揮発性メモリから、各処理対象ページの全記憶データが第２の一時記憶手段に読み出される。そして、第２の一時記憶手段のデータの一部または全部が第１の一時記憶手段の更新データに更新された後、第２の一時記憶手段のデータが不揮発性メモリに書き戻される。
【００１４】
このように、特許文献３のデータ処理装置では、第１の一時記憶手段に記憶されたデータが所定のデータ数になるまで、不揮発性メモリに対する書き込みが行われない。したがって、不揮発性メモリの所定の１ページに記憶されるデータが連続する複数回に分かれて入力される場合には、第１の一時記憶手段に上記所定の１ページのデータが蓄積される。そして、第１の一時記憶手段に上記所定の１ページのデータが全て揃うと、１度に不揮発性メモリに書き込まれる。したがって、１ページのデータが連続する複数回に分かれて入力される場合には、１回データが入力される毎にデータが不揮発性メモリに書き込まれる場合よりも、不揮発性メモリへの書き込み回数が少なくなり、退避処理の回数も少なくなる。
【特許文献１】米国特許第６７６０８０５号明細書
【特許文献２】特開平５−２７９２４号公報
【特許文献３】特開２００２−１２３４３０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、特許文献２の外部記憶システムでは、ガーベジコレクション処理に比較的長い時間を要する。したがって、これに費やす時間を考慮すると、当該外部記憶システムのデータライト時の平均的なパフォーマンスが高いとは言い難い。
【００１６】
また、特許文献３の外部記憶システムでは、所定の１ページの一部のデータがデータ処理装置に入力された後に音楽データや画像データ等の大容量の連続データが入力される場合、大容量のデータが入力されることによって第１の一時記憶手段内のデータが所定数に達し、先に入力された一部のデータが不揮発性メモリに書き込まれる。そして、その後、上記所定の１ページの残りのデータがデータ処理装置に入力されることになる。この場合、結果として、上記所定の１ページのデータを不揮発性メモリに書き込むための書き込み回数は複数回になり、不揮発性メモリへのデータの書き込みに要する時間が長くなり、効率が悪い。
【００１７】
また、第１の一時記憶手段が、大容量の連続データを一時的に保持できるほど大容量であれば、データを高速に効率的に書き込むことができるが、メモリの容量を大きくすると装置のコストは高くなる。
【００１８】
そこで、本発明は、上記の点に鑑み、データを高速に書き込める不揮発性記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記の課題を解決するため、請求項１の発明は、
データが単位領域毎に書き込まれる不揮発性メモリ、および上記不揮発性メモリに対するデータの書き込みを制御するメモリコントローラを備えた不揮発性記憶装置において、
上記メモリコントローラは、
装置の外部から入力されるデータを保持する第１の記憶部と、
上記第１の記憶部に保持された１つの単位領域分のデータ毎に上記不揮発性メモリに書き込む一方、上記第１の記憶部に保持されている上記単位領域分に満たないデータを第２の記憶部に書き込む第１の制御部と、
上記第２の記憶部に保持されたデータを上記不揮発性メモリに書き込む第２の制御部と  を備えたことを特徴とする。
【００２０】
これにより、第１の記憶部に揃った１つの単位領域分のデータは、不揮発性メモリに直接書き込まれ、単位領域分に満たないデータは、第２の記憶部に書き込まれた後、不揮発性メモリに書き込まれる。また、装置に少なくとも１つ以上の単位領域分のデータを含む大容量の連続データが入力された場合でも、単位領域分揃ったデータは不揮発性メモリに書き込まれ、単位領域分に満たないデータだけが第２の記憶部に記憶される。
【００２１】
請求項２の発明は、
請求項１の不揮発性記憶装置であって、
上記第１の制御部は、上記第１の記憶部に保持された上記１つの単位領域分のデータの次に装置の外部から入力されるデータが、上記１つの単位領域分のデータに連続したデータである場合は、当該１つの単位領域分のデータを上記不揮発性メモリに書き込み、連続したデータでない場合は、上記第２の記憶部に書き込むように構成されていることを特徴とする。
【００２２】
これにより、第１の記憶部に揃った１つの単位領域分のデータは、次に装置の外部から入力されるデータが当該単位領域分のデータと連続したものである場合は、直接不揮発性メモリに書き込まれるが、そうでない場合は、第２の記憶部に書き込まれた後、不揮発性メモリに書き込まれる。
【００２３】
請求項３の発明は、
請求項１の不揮発性記憶装置であって、
上記第１の制御部は、上記第１の記憶部に保持された上記１つの単位領域分のデータが装置の外部から入力された直後に所定のデータ転送の終了を示す信号が装置の外部から入力された場合は、当該１つの単位領域分のデータを上記第２の記憶部に書き込むように構成されていることを特徴とする。
【００２４】
これにより、第１の記憶部に揃った１つの単位領域分のデータは、当該データが装置に入力された後に他のデータが続けて入力された場合は、直接不揮発性メモリに書き込まれるが、当該データが装置に入力された直後にデータ転送の終了を示す信号が入力された場合は、第２の記憶部に書き込まれた後、不揮発性メモリに書き込まれる。
【００２５】
請求項４の発明は、
請求項１の不揮発性記憶装置であって、
さらに、装置の外部から入力されたデータの論理アドレスの履歴を記憶するアドレス履歴管理部を備え、
上記第１の制御部は、上記第１の記憶部に保持された上記１つの単位領域分のデータの書き換えられる可能性の有無を、上記アドレス履歴管理部に記憶された論理アドレスに基づいて判定し、
書き換えられる可能性が無いと判定した場合は、当該１つの単位領域分のデータを上記不揮発性メモリに書き込み、有ると判定した場合は、上記第２の記憶部に書き込むように構成されていることを特徴とする。
【００２６】
これにより、第１の記憶部に揃った１つの単位領域分のデータは、書き換えられる可能性が無いと判定された場合は、直接不揮発性メモリに書き込まれるが、有ると判定された場合は、第２の記憶部に書き込まれた後、不揮発性メモリに書き込まれる。これにより、頻繁に書き換えられるデータを第２の記憶部に保持させることにより、第２の記憶部でデータの更新が行われ、ある特定のタイミングで第２の記憶部のデータが不揮発性メモリに書きこまれるように装置を構成することが容易にできる。
【００２７】
請求項５の発明は、
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
上記第２の制御部は、上記第２の記憶部に１つの単位領域分のデータが保持された場合に、上記１つの単位領域分のデータを上記不揮発性メモリに書き込むように構成されていることを特徴とする。
【００２８】
これにより、第２の記憶部で１つの単位領域分のデータが揃う毎に、揃ったデータが不揮発性メモリに書き込まれるので、不揮発性メモリへのデータ書き込みの回数が少なくなる。
【００２９】
請求項６の発明は、
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
上記第２の制御部は、上記第２の記憶部に１つの単位領域分のデータが保持され、かつ上記１つの単位領域分のデータの次に装置の外部から入力されるデータの論理アドレスが、上記１つの単位領域分のデータの論理アドレスと連続したものである場合に、当該１つの単位領域分のデータを上記不揮発性メモリに書き込むように構成されていることを特徴とする。
【００３０】
これにより、第２の記憶部の１つの単位領域分揃ったデータは、当該データの次に装置の外部から入力されるデータの論理アドレスが当該データの論理アドレスと連続したものである場合、不揮発性メモリに書き込まれる。
【００３１】
請求項７の発明は、
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
上記第２の制御部は、上記第２の記憶部に所定量以上のデータが保持された場合に、上記第２の記憶部に保持されたデータを上記不揮発性メモリに書き込むように構成されていることを特徴とする。
【００３２】
これにより、第２の記憶部に、第１の記憶部から書き込まれるデータを保持するための空き領域が確保される。
【００３３】
請求項８の発明は、
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
上記第２の制御部は、装置の外部から所定時間データが入力されなかった場合に、上記第２の記憶部に保持されたデータを上記不揮発性メモリに書き込むように構成されていることを特徴とする。
【００３４】
これにより、装置の外部から所定時間データが入力されなかった場合には、上記第２の記憶部に保持されたデータは上記不揮発性メモリに書き込まれる。
【００３５】
請求項９の発明は、
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
上記第１の制御部は、上記第２の記憶部に書き込む書き込みデータと論理アドレスが同一のデータが上記第２の記憶部に保持されている場合には、当該書き込みデータを上記論理アドレスが同一のデータに上書きするように構成されていることを特徴とする。
【００３６】
これにより、第２の記憶部において、第１の記憶部から第２の記憶部に書き込まれる書き込みデータと同一の論理アドレスのデータは、当該書き込みデータによって上書きされるので、第２の記憶部の領域が有効に活用され、第２の記憶部から不揮発性メモリへの書き込み回数も少なくなる。
【００３７】
請求項１０の発明は、
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
上記第１の制御部は、上記第２の記憶部に書き込む書き込みデータと論理アドレスが同一のデータが上記第２の記憶部に複数保持されている場合には、最も古い上記論理アドレスが同一のデータを当該書き込みデータで上書きするように構成されていることを特徴とする。
【００３８】
これにより、第２の記憶部に書き込みデータと論理アドレスが同一のデータが複数保持されている場合、上記複数の論理アドレスが同一のデータのうちの最も古いデータに書き込みデータが上書きされ、最も古いデータ以外のデータは第２の記憶部に保持されたままとなる。
【００３９】
請求項１１の発明は、
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
上記第１の制御部は、上記第１の記憶部に保持された上記１つの単位領域分のデータの重要度に応じて、当該１つの単位領域分のデータを上記不揮発性メモリと上記第２の記憶部に書き込むように構成されていることを特徴とする。
【００４０】
これにより、重要なデータが第２の記憶部と不揮発性メモリの両方に保存され、書き込み途中の電源遮断等により、データが破壊される可能性が低くなり、装置や当該装置を備えたシステムの信頼性が向上する。
【００４１】
請求項１２の発明は、
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
さらに、装置の外部からのデータ読み出し要求に応じて、上記不揮発性メモリのデータを上記第２の記憶部を介することなく上記第１の記憶部に転送して一端保持させた後、装置の外部に出力する読み出し制御部を備えたことを特徴とする。
【００４２】
これにより、読み出し時に、第２の記憶部に対するデータの書き込みが行われないので、データの書き換え回数が少なくなる。
【００４３】
請求項１３の発明は、
請求項１から請求項４のいずれか１項の不揮発性記憶装置であって、
上記第２の記憶部は、不揮発性ＲＡＭであることを特徴とする。
【００４４】
請求項１４の発明は、
請求項１３の不揮発性記憶装置であって、
上記第２の記憶部は、強誘電体メモリ、磁性記録式随時書き込み読み出しメモリ、オボニックユニファイドメモリ、およびレジスタンスＲＡＭのうちのいずれか１つで構成されることを特徴とする。
【００４５】
これらにより、第２の記憶部を容易に構成できる。
【発明の効果】
【００４６】
本発明によれば、データを高速に書き込める不揮発性記憶装置が得られる。
【発明を実施するための最良の形態】
【００４７】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の各実施形態において、他の実施形態と同様の機能を有する構成要素については同一の符号を付して説明を省略する。
【００４８】
《発明の実施形態１》
図１は、本発明の実施形態１に係るデータ記憶システムの構成を示すブロック図である。データ記憶システムは、不揮発性記憶装置１００とアクセス装置１１０とを備えている。不揮発性記憶装置１００は、アクセス装置１１０に接続されている。
【００４９】
同図に示すように、不揮発性記憶装置１００は、メモリコントローラ１２０とフラッシュメモリで構成された不揮発性メモリ１３０とを備えている。
【００５０】
アクセス装置１１０は、不揮発性記憶装置１００の外部に設けられ、不揮発性記憶装置１００にアクセスするようになっている。より詳しくは、アクセス装置１１０は、メモリコントローラ１２０を介して不揮発性メモリ１３０に対し、ユーザデータ（以降、「データ」と呼ぶ。）の読み書き命令の送信、そのデータが格納されている論理アドレスの送信、およびデータの送受信を行う。アクセス装置１１０は、メインコンピュータや車載端末等である。
【００５１】
メモリコントローラ１２０は、不揮発性メモリ１３０に対するデータの読み書きを制御するようになっている。より詳しくは、メモリコントローラ１２０は、アクセス装置１１０から読み書き命令を受信し、受信したデータを不揮発性メモリ１３０に書き込んだり、不揮発性メモリ１３０からデータを読み込んで外部へ出力する。
【００５２】
次に、メモリコントローラ１２０の詳細な構成について説明する。
【００５３】
図１に示すように、メモリコントローラ１２０は、ＣＰＵ部１２１、第１の記憶部１２２、第２の記憶部１２３、およびメモリ制御回路１２４を備えている。
【００５４】
第１の記憶部１２２は、アクセス装置１１０から不揮発性記憶装置１００に入力されたデータを、それぞれのデータが不揮発性メモリ１３０へ書き込まれる前に、一時的に保持（記憶）するようになっている。
【００５５】
第２の記憶部１２３は、第１の記憶部１２２に保持されたデータの一部を保持（記憶）するようになっている。
【００５６】
メモリ制御回路１２４は、不揮発性メモリ１３０を制御するようになっている。
【００５７】
ＣＰＵ部１２１（第１の制御部および第２の制御部）は、アクセス装置１１０とのデータの送受信や不揮発性メモリ１３０に対するデータの読み書きが行われる際のアドレス管理等、メモリコントローラ１２０とその外部との情報のやりとりの制御を行うようになっている。また、ＣＰＵ部１２１は、第１の記憶部１２２や第２の記憶部１２３の制御や、第１の記憶部１２２に保持（格納）されたデータを、第２の記憶部１２３に書き込んだり（格納したり）、不揮発性メモリ１３０に書き込んだり（格納したり）する制御等も行うようになっている。
【００５８】
なお、ＣＰＵ部１２１が実行するアドレス管理処理、つまり、アクセス装置１１０によって指定された論理アドレスを不揮発性メモリ１３０の物理アドレスに変換する処理等のアドレス管理処理は、一般的に公知の技術であるので、これについての説明は省略する。
【００５９】
第１の記憶部１２２と第２の記憶部１２３は、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）等の揮発性メモリや、強誘電体メモリ（ＦｅＲＡＭ、Ｆｅｒｒｏ  Ｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、磁性記録式随時書き込み読み出しメモリ（ＭＲＡＭ、Ｍａｇｎｅｔｏｒｅｓｉｓｕｔｉｖｅ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、オボニックユニファイドメモリ（ＯＵＭ、Ｏｖｏｎｉｃ  Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ）、またはレジスタンスＲＡＭ（ＲＲＡＭ、Ｒｅｓｉｓｉｔａｎｃｅ  Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）等の不揮発性メモリで構成される。
【００６０】
不揮発性メモリ１３０には、物理ブロックとよばれる記憶領域が複数設けられる。図２は、各物理ブロックのフォーマットを示す説明図である。
【００６１】
同図に示すように、物理ブロックは１２８ページで構成され、各ページは４セクタ分のデータ領域と管理領域とで構成される。本実施形態においては、１セクタのデータ量は５１２バイトである。したがって、各ページのデータ領域のデータ量は、４セクタ分のデータ量、すなわち２０４８バイトである。なお、管理領域はＣＰＵ部１２１によるアドレス管理処理に必要な情報が記憶される領域である。ここで、図２では、各セクタに、左上からＰＳＮ０，ＰＳＮ１，…，ＰＳＮ５１１という配置記号が付されている。ＰＳＮ（Ｐｈｙｓｉｃａｌ Ｓｅｃｔｏｒ Ｎｕｍｂｅｒ）は、各セクタに対応する物理セクタ番号である。不揮発性メモリ１３０は、ページ毎に（単位領域毎に）データが書き込まれるようになっている。
【００６２】
また、不揮発性記憶装置１００は、アクセス装置１１０によって不揮発性メモリ１３０のデータが読み出される時に、第１の記憶部１２２に直接、不揮発性メモリ１３０のデータが転送されてアクセス装置１１０へ出力されるように構成されている。より詳しくは、不揮発性記憶装置１００は、装置の外部からのデータ読み出し要求に応じて、不揮発性メモリ１３０のデータを第２の記憶部１２３を介することなく第１の記憶部１２２に転送して一端保持させた後、装置の外部に出力する図示しない読み出し制御部を備えている。
【００６３】
上記のような構成により、ＣＰＵ部１２１が指定した物理アドレスや書き込み条件に基づいて、不揮発性メモリ１３０、または第２の記憶部１２３にデータが書き込まれ、不揮発性メモリ１３０、または第２の記憶部１２３のデータが読み出される。
【００６４】
図３は、第２の記憶部１２３のフォーマットを示す説明図である。
【００６５】
同図に示すように、第２の記憶部１２３の記憶領域は、８つのワードに区分される。各ワードは、データ領域、論理アドレス領域、およびデータ管理フラグ領域に区分される。各ワードの論理アドレス領域は、１ＧＢｙｔｅ分のセクタを識別できるビット数（２１ビット）の容量を有する。各ワードにおいて、データ領域には物理ブロックの１セクタ分のデータが保持され、論理アドレス領域にはデータ領域に記憶された１セクタ分のデータの論理アドレスが保持される。また、データ管理フラグ領域には、論理アドレスが互いに等しい複数セクタ分のデータが第２の記憶部１２３に格納されているときにどのワードのデータ領域のデータが最新であるかを示すフラグや、各ワードのデータ領域が新しいデータを格納できる状態かどうかを示す値が格納される。データ領域が新しいデータを格納できる状態とは、例えば、データ領域に保持されたデータが不揮発性メモリ１３０に転送されてから、次に新たなデータが当該データ領域に書き込まれるまでの状態である。
【００６６】
なお、ここでは８つのワードに区分された第２の記憶部１２３が用いられた場合について説明するが、第２記憶部１２３の容量はこれに限られない。また、第２の記憶部１２３から１ページに満たない書き込みデータが不揮発性メモリ１３０に書き込まれる時には、一旦不揮発性メモリ１３０から、書き込みデータに対応するページにすでに記憶されている残りのデータが第２の記億部１２３に書き込まれるようにすることもできる。これにより、第２の記憶部１２３から不揮発性メモリ１３０にデータが書き込まれる時に、第２の記憶部１２３は、ページ単位でデータを保持できる。また、その場合の第２の記憶部１２３のページ数も制限されない。
【００６７】
次に、上記のように構成された、本実施形態の不揮発性記憶装置１００の動作について、図４と図５を参照して説明する。不揮発性記憶装置１００による図４と図５に示す一連の書き込み動作により、アクセス装置１１０から不揮発性記憶装置１００に転送されたデータが、第１の記憶部１２２で一時保持され、その後、一時保持されたデータが、第２の記憶部１２３を介して、または直接、不揮発性メモリ１３０に書き込まれる。
【００６８】
（Ｓ４００）不揮発性記憶装置１００は、アクセス装置１１０からのライトコマンド（以下、ＷＣＭＤと記載する）、すなわちデータの書き込み命令の受信待ち状態となる。不揮発性記憶装置１００は、アクセス装置１１０からＷＣＭＤを受信すると、（Ｓ４０１）の処理に進む。
【００６９】
（Ｓ４０１）アクセス装置１１０から１セクタ分のデータ及びそのデータの論理アドレスが転送（送信）されると、ＣＰＵ部１２１は、転送されてきた論理アドレスの値をＣＰＵ部１２１内のレジスタに取り込むとともに、第１の記憶部１２２にデータを書き込む。
【００７０】
（Ｓ４０２）ＣＰＵ部１２１は、第１の記憶部１２２に、不揮発性メモリ１３０で同一のページに記憶されるデータが１ページ分揃ったかどうかを判断する。揃ったと判断すれば（Ｓ４０３）の処理に進む。揃っていないと判断すれば（Ｓ４０４）の処理に進む。
【００７１】
（Ｓ４０３）ＣＰＵ部１２１は、第１の記憶部１２２の上記１ページ分揃ったデータを、不揮発性メモリ１３０の所定の物理ブロックの１ページの領域に書き込む。
【００７２】
（Ｓ４０４）ＣＰＵ部１２１は、データの転送の終了を示す信号であるＳＴＯＰ信号がアクセス装置１１０から不揮発性記憶装置１００に入力されたかどうかを判断する。ＳＴＯＰ信号が入力された場合は（Ｓ５００）の処理に進み、入力されなかった場合は（Ｓ４０１）の処理に戻る。
【００７３】
（Ｓ４０５）ＣＰＵ部１２１は、第１の記憶部１２２に保持されたデータを全部第２の記憶部１２３に書き込む。
【００７４】
（Ｓ４０６）ＣＰＵ部１２１は、ＳＴＯＰ信号がアクセス装置１１０から不揮発性記憶装置１００に入力されたかどうかを判断する。ＳＴＯＰ信号が入力された場合は書き込み処理を終了し、入力されなかった場合は（Ｓ４０１）の処理に戻る。
【００７５】
不揮発性記憶装置１００は、ＷＣＭＤを受信してからＳＴＯＰ信号を受信するまでに複数セクタ分のデータを受信する場合、ＳＴＯＰ信号を受信するまでに（Ｓ４０１）〜（Ｓ４０３）の処理と（Ｓ４０４）と（Ｓ４０６）の判定を、１セクタ分のデータを受信する毎に繰り返す。
【００７６】
次に、（Ｓ４０５）における処理の詳細について、図５を参照して説明する。
【００７７】
（Ｓ５００）ＣＰＵ部１２１は、第２の記憶部１２３のデータ量が所定量に達しているかどうかを判断する。第２の記憶部１２３のデータ量が所定量に達していなければ（Ｓ５０１）の処理に進み、達していれば（Ｓ５０２）の処理に進む。ここで、所定量とは、例えば、第２の記憶部１２３の容量からデータの１ページ分の容量を引いた量である。
【００７８】
（Ｓ５０１）ＣＰＵ部１２１は、第１の記憶部１２２のデータを全部第２の記憶部１２３に書き込む。
【００７９】
（Ｓ５０２）ＣＰＵ部１２１は、第２の記憶部１２３の全部または一部のデータを不揮発性メモリ１３０に書き込む。
【００８０】
（Ｓ５０３）ＣＰＵ部１２１は、第２の記憶部１２３に、不揮発性メモリ１３０で同一のページに記憶されるデータが１ページ分揃ったかどうかを判断する。揃ったと判断すれば（Ｓ５０４）の処理に進み、揃っていないと判断すれば書き込み処理を終了する。
【００８１】
（Ｓ５０４）ＣＰＵ部１２１は、第２の記憶部１２３の上記１ページ分揃ったデータを不揮発性メモリ１３０に書き込み、書き込み処理を終了する。
【００８２】
なお、第２の記憶部１２３をＦｅＲＡＭ等の不揮発性メモリで構成するか、もしくは安定した電源が常に供給されている揮発性メモリで構成することによって、（Ｓ４０５）で第２の記憶部１２３内にデータが格納された時点で、ＣＰＵ部１２１を介してアクセス装置１１０に対して書き込み完了が通知されるようにしてもよい。
【００８３】
次に、本実施形態の不揮発性記憶装置１００によって行われる処理の例について図６を参照して説明する。
【００８４】
図６の例では、第１の記憶部１２２が不揮発性メモリ１３０の１ページ分、つまり４セクタ分のデータを保持し、第２の記憶部１２３は５セクタ分のデータを保持し、アクセス装置１１０からＷＣＭＤが４回転送される。最初のＷＣＭＤをＷＣＭＤ１、次のＷＣＭＤをＷＣＭＤ２、その次のＷＣＭＤをＷＣＭＤ３、最後のＷＣＭＤをＷＣＭＤ４と表記する。不揮発性記憶装置１００がＷＣＭＤ１を受信した時、不揮発性メモリ１３０の物理ブロックＰＢ６のページ０にＬＳＡ０〜ＬＳＡ３の旧データが記憶され、物理ブロックＰＢ７のページ０にＬＳＢ０〜ＬＳＢ３の旧データが記憶され、物理ブロックＰＢ７のページ１にＬＳＢ４〜ＬＳＢ７の旧データが既に記憶されているものとする。また、アクセス装置１１０から転送されるＬＳＡ０’〜ＬＳＡ３’の新規データは、物理ブロックＰＢ０のページ０に書き込まれるものとし、同様にアクセス装置１１０から転送される書き込みアドレスの異なるＬＳＢ０’〜ＬＳＢ７’の新規データは、物理ブロックＰＢ１のページ０およびページ１に書き込まれるものとする。物理ブロックＰＢ０および物理ブロックＰＢ１は、ＬＳＡ０’〜ＬＳＡ３’やＬＳＢ０’〜ＬＳＢ７’の新規データが書き込まれるまでに、消去済みブロック、つまり、前のデータが消去されて新たなデータを書き込める状態の物理ブロックになっているものとする。
【００８５】
図６に示すように、不揮発性記憶装置１００は、ＷＣＭＤ１を受信した後、論理セクタ番号０のデータ（ＬＳＡ０’）を受信し、第１の記憶部１２２に一時的に保持させる。次に、不揮発性記憶装置１００がＳＴＯＰ信号を受信すると、ＣＰＵ部１２１は、第１の記憶部１２２内に保持されているデータＬＳＡ０’を第２の記憶部１２３に論理アドレス等のアドレス情報と共に書き込む。
【００８６】
次に、ＷＣＭＤ２とＬＳＢ０’〜ＬＳＢ４’のデータがアクセス装置１１０によって不揮発性記憶装置１００に転送（送信）される。第１の記憶部１２２にＬＳＢ０’〜ＬＳＢ３’のデータが保持されると、ＣＰＵ部１２１は第１の記憶部１２２に不揮発性メモリ１３０で同一のページに記憶されるデータが１ページ分揃っていると判断する。判断するとすぐに、ＣＰＵ部１２１は、第１の記憶部１２２内のデータを不揮発性メモリ１３０の物理ブロックＰＢ１のページ０に書き込む。その後、不揮発性記憶装置１００がＬＳＢ４’のデータを受信すると、ＣＰＵ部１２１はそれを第１の記憶部１２２に一時的に保持させる。次に、ＳＴＯＰ信号が不揮発性記憶装置１００に入力されると、ＣＰＵ部１２１は、ＬＳＢ４’のデータを第２の記憶部１２３に書き込み、書き込み処理が終了する。
【００８７】
次に、不揮発性記憶装置１００がＷＣＭＤ３とＬＳＡ１’〜ＬＳＡ３’のデータを受信すると、これらのデータは第１の記憶部１２２に一時的に保持される。その後、不揮発性記憶装置１００がＳＴＯＰ信号を受信すると、ＣＰＵ部１２１はＬＳＡ１’〜ＬＳＡ３’のデータを第２の記憶部１２３に書き込む。これにより、第２の記憶部１２３内に、ＬＳＡ０’〜ＬＳＡ３’のデータ、つまり、不揮発性メモリ１３０で同一のページに記憶されるデータが１ページ分揃う。したがって、ＣＰＵ部１２１は、ＬＳＡ０’〜ＬＳＡ３’のデータを不揮発性メモリ１３０の物理ブロックＰＢ０のページ０に書き込む。
【００８８】
最後に、不揮発性記憶装置１００がＷＣＭＤ４とＬＳＢ５’〜ＬＳＢ７’のデータを受信すると、これらのデータは第１の記憶部１２２に一時的に保持される。その後、不揮発性記憶装置１００がＳＴＯＰ信号を受信すると、ＣＰＵ部１２１はＬＳＢ５’〜ＬＳＢ７’のデータを第２の記憶部１２３に書き込む。これにより、第２の記憶部１２３内に、ＬＳＢ４’〜ＬＳＢ７’のデータ、つまり、不揮発性メモリ１３０で同一のページに記憶されるデータが１ページ分揃う。したがって、ＣＰＵ部１２１は、これらのデータを不揮発性メモリ１３０のＰＢ１のページ１に書き込む。
【００８９】
なお、上記の説明では説明を省略したが、本実施形態および以下の実施形態では、ＣＰＵ部１２１は、第１の記憶部１２２のデータを第２の記憶部１２３に書き込む場合、第２の記憶部１２３にデータを保持させるとともに、第１の記憶部１２２に残る第２の記憶部に書き込んだデータを無効化するようになっている。同様に、第２の記憶部１２３のデータを不揮発性メモリ１３０に書き込む場合も、データを不揮発性メモリ１３０に書き込むとともに、第２の記憶部１２３に残る書き込みデータを無効化するようになっている。例えば、図６の例で、ＣＰＵ部１２１が、第２の記憶部１２３に保持されているＬＳＡ０’〜ＬＳＡ３’のデータを不揮発性メモリ１３０の物理ブロックＰＢ０のページ０に書き込んだ時、第２の記憶部１２３に保持されているＬＳＡ０’〜ＬＳＡ３’のデータは無効化される。
【００９０】
ＬＳＡ０’〜ＬＳＡ３’およびＬＳＢ０’〜ＬＳＢ７’の新データは、一括してそれぞれ、物理ブロックＰＢ０のページ０、物理ブロックＰＢ１のページ０または物理ブロックＰＢ１のページ１に書き込まれる。したがって、旧データの退避処理、すなわち、旧データを読み出して書き込む処理は不要となる。物理ブロックＰＢ６のページ０と物理ブロックＰＢ７のページ０、１に記憶された旧データは、ある適当なタイミングで消去される。
【００９１】
なお、図６の例では退避処理は行われないが、第２の記憶部１２３のデータが退避処理によって不揮発性メモリに書き込まれるように不揮発性記憶装置を構成してもよい。この場合、物理ブロックＰＢ６のページ０と物理ブロックＰＢ７のページ０、１から旧データであるＬＳＡ０〜ＬＳＡ３およびＬＳＢ０〜ＬＳＢ７が読み出されて図示しない退避用記憶部に記憶され、退避用記憶部でＬＳＡ０’〜ＬＳＡ３’およびＬＳＢ０’〜ＬＳＢ７’の新データが旧データに上書きされ、退避用記憶部のデータが不揮発性メモリ１３０に書き込まれる。
【００９２】
ここで、特許文献３に記載されたデータ処理装置によって行われる処理の例について図１４を参照して説明する。ここでは、第１の一時記憶手段は６セクタ分のデータを保持し、第２の一時記憶手段は不揮発性メモリの１ページ分の４セクタ分のデータを保持し、アクセス装置からＷＣＭＤが４回転送される。また、本発明の実施形態と同様に、不揮発性メモリは、複数の物理ブロックを有し、ページ毎にデータが書き込まれるようになっており、１ページは４セクタ分であるとする。最初のＷＣＭＤをＷＣＭＤ１、次のＷＣＭＤをＷＣＭＤ２、その次のＷＣＭＤをＷＣＭＤ３、最後のＷＣＭＤをＷＣＭＤ４と表記する。データ処理装置がＷＣＭＤ１を受信した時、不揮発性メモリの物理ブロックＰＢ６のページ０にＬＳＡ０〜ＬＳＡ３の旧データが記憶され、物理ブロックＰＢ７のページ０にＬＳＢ０〜ＬＳＢ３の旧データが記憶され、物理ブロックＰＢ７のページ１にＬＳＢ４〜ＬＳＢ７の旧データが既に記憶されているものとする。また、アクセス装置から転送されるＬＳＡ０’〜ＬＳＡ３’の新規データは、物理ブロックＰＢ０のページ０に書き込まれるものとし、同様にアクセス装置から転送される書き込みアドレスの異なるＬＳＢ０’〜ＬＳＢ７’の新規データは、物理ブロックＰＢ１のページ０およびページ１に書き込まれるものとする。物理ブロックＰＢ０および物理ブロックＰＢ１は、ＬＳＡ０’〜ＬＳＡ３’やＬＳＢ０’〜ＬＳＢ７’の新規データが書き込まれるまでに、消去済みブロック、つまり、前のデータが消去されて新たなデータを書き込める状態の物理ブロックになっているものとする。
【００９３】
図１４に示すように、データ処理装置は、ＷＣＭＤ１を受信した後、論理セクタ番号０のデータ（ＬＳＡ０’）を受信し、第１の一時記憶手段に書き込む。
【００９４】
次に、データ処理装置は、ＷＣＭＤ２を受信した後、ＬＳＢ０’〜ＬＳＢ４’のデータを受信し、第１の一時記憶手段に書き込む。これにより、第１の一時記憶手段内のデータが一杯になるので、第１の一時記憶手段のデータは全て不揮発性メモリに書き込まれる。まず初めに、データ処理装置は、ＬＳＡ０’のデータを不揮発性メモリに書き込むために、不揮発性メモリの旧データである物理ブロックＰＢ６のページ０に格納されているＬＳＡ０〜ＬＳＡ３のデータを第２の一時記憶手段に読み出す。その後、第１の一時記憶手段内のＬＳＡ０’のデータを第２の一時記憶手段内のＬＳＡ０のデータに上書きする。これにより、第２の一時記憶手段にＬＳＡ０’だけが書き換えられた１ページのデータが揃う。したがって、この１ページのデータは不揮発性メモリの物理ブロックＰＢ０のページ０に書き込まれる。同様の方法で、ＬＳＢ０’〜ＬＳＢ３’のデータも物理ブロックＰＢ１のページ０に書き込まれる。また、ＬＳＢ４’のデータも同様の方法でＬＳＢ５〜ＬＳＢ７の旧データと一緒に（ＬＳＢ５〜ＬＳＢ７の旧データを巻き込み）、物理ブロックＰＢ１のページ１に書き込まれる。
【００９５】
次に、データ処理装置は、ＷＣＭＤ３とＷＣＭＤ４を受信するとともに、第１の一時記憶手段にＬＳＡ１’〜ＬＳＡ３’のデータとＬＳＢ５’〜ＬＳＢ７’のデータを格納する。これにより、第１の一時記憶手段が一杯になるので、先程と同様、不揮発性メモリへの書き込みが行われる。この時、ＬＳＡ１’〜ＬＳＡ３’のデータとＬＳＢ５’〜ＬＳＢ７’のデータは、いずれも１ページ分揃ったデータではないため、先程書き込まれた物理ブロックＰＢ０のページ０のＬＳＡ０’のデータと物理ブロックＰＢ１のページ１のＬＳＢ４’のデータが、第２の一時記憶手段に読み出される。そして、ＬＳＡ０’〜ＬＳＡ３’のデータは次のページである物理ブロックＰＢ０のページ１に書き込まれ、ＬＳＢ４’〜ＬＳＢ７’のデータは物理ブロックＰＢ１のページ２に書き込まれる。
【００９６】
図６の書き換え処理と図１４の書き換え処理とを比較すると、図１４の書き換え処理においては、不揮発性メモリの５ページの領域が使用され、不揮発性メモリの１ページ分のデータを書き込む処理（ページライト）が５回行われている。また、不揮発性メモリの１ページのデータを第２の一時記憶手段に読み出す処理も５回行われている。本発明の図６の書き換え処理では、不揮発性メモリ１３０の３ページの領域が使用され、不揮発性メモリ１３０の１ページ分のデータを書き込む処理（ページライト）が３回行われている。本発明の不揮発性記憶装置１００を用いた場合、特許文献３の従来のデータ処理装置を用いた場合よりも、退避処理、すなわち不揮発性メモリの１ページのデータを第２の一時記憶手段に読み出す処理の回数が少なくなり、データの書き換え速度が速くなる。
【００９７】
次に、データを保持する第１の一時記憶手段を備え、１回のデータの受信が終了した時、および第１の一時記憶手段が一杯になった時に第１の一時記憶手段のデータが不揮発性メモリに書き込まれるように構成されたデータ処理装置の処理の例について図１５を参照して説明する。なお、図６や図１４の書き換え処理は、旧データが不揮発性メモリに記憶されている場合の処理であったが、ここでは、旧データが不揮発性メモリに記憶されていない場合の処理について説明する。また、第１の一時記憶手段は４セクタ分の容量を有しているとする。最初のＷＣＭＤをＷＣＭＤ１、次のＷＣＭＤをＷＣＭＤ２、その次のＷＣＭＤをＷＣＭＤ３、最後のＷＣＭＤをＷＣＭＤ４と表記する。
【００９８】
まず、データ処理装置は、ＷＣＭＤ１を受信した後、論理セクタ番号０のデータ（ＬＳＡ０’）を受信し、第１の一時記憶手段に書き込む。そして、ＬＳＡ０’のデータを、第１の一時記憶手段から不揮発性メモリの物理ブロックＰＢ０のＬＳＡ０’のデータに対応するセクタ記憶位置に書き込む。
【００９９】
次に、データ処理装置は、ＷＣＭＤ２を受信した後、ＬＳＢ０’〜ＬＳＢ４’のデータを受信し、第１の一時記憶手段に書き込む。そして、ＬＳＢ０’〜ＬＳＢ３’のデータを、第１の一時記憶手段から不揮発性メモリの物理ブロックＰＢ１のＬＳＢ０’〜ＬＳＢ３’のデータに対応するセクタ記憶位置に書き込む。次に、ＬＳＢ４’のデータを、第１の一時記憶手段から不揮発性メモリの物理ブロックＰＢ１のＬＳＢ４’のデータに対応するセクタ記憶位置に書き込む。
【０１００】
まず、データ処理装置は、ＷＣＭＤ３を受信した後、ＬＳＡ１’〜ＬＳＡ３’のデータを受信し、第１の一時記憶手段に書き込む。そして、ＬＳＡ１’〜ＬＳＡ３’のデータを、第１の一時記憶手段から不揮発性メモリの物理ブロックＰＢ０のＬＳＡ１’〜ＬＳＡ３’のデータに対応するセクタ記憶位置に書き込む。
【０１０１】
最後に、データ処理装置は、ＷＣＭＤ４を受信した後、ＬＳＢ５’〜ＬＳＢ７’のデータを受信し、第１の一時記憶手段に書き込む。そして、ＬＳＢ５’〜ＬＳＢ７’のデータを、第１の一時記憶手段から不揮発性メモリの物理ブロックＰＢ０のＬＳＢ５’〜ＬＳＢ７’のデータに対応するセクタ記憶位置に書き込む。
【０１０２】
図１５の書き換え処理においては、不揮発性メモリの３ページの領域が使用され、不揮発性メモリ１３０の１ページ分のデータを書き込む処理（ページライト）が５回行われている。この場合、書き換え速度は、図１４の書き換え処理よりも速くなるが、図６の本発明の書き換え処理よりは遅くなる。
【０１０３】
図１５の書き換え処理においては、同じページの異なる記憶位置に時分割的にデータを書き込む、いわゆる分割書き込みが行われている。２値ＮＡＮＤフラッシュメモリ等、一部のメモリは分割書き込みが可能であるが、多値ＮＡＮＤフラッシュメモリ等、分割書き込みが行われると信頼性が保証されないメモリがある。つまり、メモリカードの信頼性を確保するために、図１４に示すような分割書き込みを適用できない場合がある。
【０１０４】
なお、本実施形態では、第１の記憶部１２２の容量が４セクタ分、第２の記憶部１２３の容量が５セクタ分であったが、記憶部（メモリ）の容量はこれらに制限されない。また、記憶部や不揮発性メモリのフォーマットも本実施形態のものに制限されない。
【０１０５】
また、本実施形態の不揮発性記憶装置１００では、第２の記憶部１２３のデータがセクタ単位で管理されるようになっていた。しかしながら、第２の記憶部１２３のデータが不揮発性メモリ１３０の書き込み単位であるページ単位で管理されるようにすることにより、第２の記憶部１２３のデータ管理を簡素化してもよい。
【０１０６】
また、本実施形態では、アクセス装置１１０によって不揮発性メモリ１３０のデータが読み出される時に、第１の記憶部１２２に直接、不揮発性メモリ１３０のデータが転送されてアクセス装置１１０へ出力されるように不揮発性記憶装置１００が構成されているので、第２の記憶部１２３を介して出力されるように構成した場合よりも、データの書き換え回数が少ない。書き換え回数を少なくすることは、ＦｅＲＡＭ等の不揮発性メモリを第２の記憶手段に使用する場合に特に重要である。
【０１０７】
《発明の実施形態２》
本発明の実施形態２に係る不揮発性記憶装置１００は、実施形態１の不揮発性記憶装置１００と基本的な構成は同じであるが、その動作が異なっている。
【０１０８】
以下、本発明の実施形態２に係る不揮発性記憶装置１００の動作について、図７を参照して説明する。
【０１０９】
（Ｓ７００）不揮発性記憶装置１００は、アクセス装置１１０からのライトコマンド（以下、ＷＣＭＤと記載する）、すなわちデータの書き込み命令の受信待ち状態となる。不揮発性記憶装置１００は、アクセス装置１１０からＷＣＭＤを受信すると、（Ｓ７０１）の処理に進む。
【０１１０】
（Ｓ７０１）アクセス装置１１０から１セクタ分のデータ及びそのデータの論理アドレスが転送（送信）されると、ＣＰＵ部１２１は、転送されてきた論理アドレスの値をＣＰＵ部１２１内のレジスタに取り込むとともに、第１の記憶部１２２にデータを書き込む。
【０１１１】
（Ｓ７０２）ＣＰＵ部１２１は、第１の記憶部１２２に、不揮発性メモリ１３０で同一のページに記憶されるデータが１ページ分揃ったかどうかを判断する。揃ったと判断すれば、（Ｓ７０３）の処理に進む。揃っていないと判断すれば、（Ｓ７０４）の処理に進む。
【０１１２】
（Ｓ７０３）ＣＰＵ部１２１は、データの転送の終了を示す信号であるＳＴＯＰ信号がアクセス装置１１０から不揮発性記憶装置１００に入力されたかどうかを判断する。ＳＴＯＰ信号が入力された場合は（Ｓ７０５）の処理に進み、入力されなかった場合は（Ｓ７０６）の処理に進む。
【０１１３】
（Ｓ７０４）ＣＰＵ部１２１は、データの転送の終了を示す信号であるＳＴＯＰ信号がアクセス装置１１０から不揮発性記憶装置１００に入力されたかどうかを判断する。ＳＴＯＰ信号が入力された場合は（Ｓ７０５）の処理に進み、入力されなかった場合は（Ｓ７０１）の処理に戻る。
【０１１４】
（Ｓ７０５）ＣＰＵ部１２１は、第１の記憶部１２２に保持されたデータを全部、それらのアドレス情報とともに第２の記憶部１２３に書き込み、書き込み処理を終了する。
【０１１５】
（Ｓ７０６）ＣＰＵ部１２１は、第１の記憶部１２２の上記１ページ分揃ったデータの次にアクセス装置１１０から不揮発性記憶装置１００に入力されるデータの論理アドレスが、第１の記憶部１２２の上記１ページ分揃ったデータの論理アドレスと連続したものであるかどうかを判定する。連続したものでなければ（Ｓ７０７）の処理に進み、連続したものであれば（Ｓ７０８）の処理に進む。
【０１１６】
（Ｓ７０７）ＣＰＵ部１２１は、第１の記憶部１２２の上記１ページ分揃ったデータを、それらのアドレス情報とともに第２の記憶部１２３に書き込み、（Ｓ７０１）の処理に戻る。
【０１１７】
（Ｓ７０８）ＣＰＵ部１２１は、第１の記憶部１２２の上記１ページ分揃ったデータを、不揮発性メモリ１３０の所定の物理ブロックの１ページの領域に書き込む。
【０１１８】
不揮発性記憶装置１００は、ＷＣＭＤを受信してからＳＴＯＰ信号を受信するまでに複数セクタ分のデータを受信する場合、ＳＴＯＰ信号を受信するまでに（Ｓ７０１）、（Ｓ７０７）、および（Ｓ７０８）の処理と（Ｓ７０３）、（Ｓ７０４）、および（Ｓ７０６）の判定を、１セクタ分のデータを受信する毎に繰り返す。
【０１１９】
次に、（Ｓ７０５）と（Ｓ７０７）のそれぞれにおける処理の詳細について、図８を参照して説明する。
【０１２０】
（Ｓ７０５）と（Ｓ７０７）のそれぞれにおいて、複数セクタ分のデータが第１の記憶部１２２から第２の記憶部１２３に書き込まれる場合、（Ｓ８００）〜（Ｓ８０７）の処理が１セクタ分のデータ毎に繰り返される。
【０１２１】
（Ｓ８００）ＣＰＵ部１２１は、第２の記憶部１２３のデータが所定量に達しているかどうかを判断する。第２の記憶部１２３のデータ量が所定量に達していれば、（Ｓ８０１）の処理に進み、達していなければ、（Ｓ８０２）の処理に進む。
【０１２２】
（Ｓ８０１）ＣＰＵ部１２１は、第２の記憶部１２３の全部または一部のデータを不揮発性メモリ１３０に書き込む。
【０１２３】
（Ｓ８０２）ＣＰＵ部１２１は、第２の記憶部１２３に、第２の記憶部１２３に書き込む第１の記憶部１２２のデータと同じアドレスのデータが保持（格納）されているかどうかを判断する。同じアドレスのデータがない場合は（Ｓ８０３）の処理に進み、ある場合は（Ｓ８０７）の処理に進む。
【０１２４】
（Ｓ８０３）ＣＰＵ部１２１は、第２の記憶部１２３の空いている領域に、第１の記憶部１２２のデータを書き込む。
【０１２５】
（Ｓ８０４）ＣＰＵ部１２１は、第２の記憶部１２３に不揮発性メモリ１３０で同一のページに記憶されるデータが１ページ分揃ったかどうかを判断する。揃っていれば（Ｓ８０５）の処理に進み、揃っていなければ図７に示される処理に戻る。
【０１２６】
（Ｓ８０５）ＣＰＵ部１２１は、第２の記憶部１２３の上記１ページ分揃ったデータのアドレスが、当該１ページ分揃ったデータの次にアクセス装置１１０から不揮発性記憶装置１００に入力されて第１の記憶部１２２に格納されるデータのアドレスと連続しているかどうかを、両アドレスを比較することによって判定する。連続している場合は（Ｓ８０６）の処理に進み、連続していない場合、図７に示される処理に戻る。
【０１２７】
（Ｓ８０６）ＣＰＵ部１２１は、第２の記憶部１２３の上記１ページ分揃ったデータを、不揮発性メモリ１３０に書き込む。
【０１２８】
（Ｓ８０７）ＣＰＵ部１２１は、第１の記憶部１２２のデータを、第２の記憶部１２３の上記同じアドレスのデータに上書きし、図７に示される処理に戻る。
【０１２９】
次に、本実施形態の不揮発性記憶装置１００によって行われる処理の例について図９を参照して説明する。
【０１３０】
図９の例では、図６の例と同様に、第１の記憶部１２２が不揮発性メモリ１３０の１ページ分、つまり４セクタ分のデータを保持し、第２の記憶部１２３は５セクタ分のデータを保持し、アクセス装置１１０からＷＣＭＤが４回転送される。最初のＷＣＭＤをＷＣＭＤ１、次のＷＣＭＤをＷＣＭＤ２、その次のＷＣＭＤをＷＣＭＤ３、最後のＷＣＭＤをＷＣＭＤ４と表記する。不揮発性記憶装置１００がＷＣＭＤ１を受信した時、不揮発性メモリ１３０の物理ブロックＰＢ６のページ０にＬＳＡ０〜ＬＳＡ３の旧データが記憶され、物理ブロックＰＢ７のページ０にＬＳＢ０〜ＬＳＢ３の旧データが記憶されているものとする。
【０１３１】
不揮発性記憶装置１００は、ＷＣＭＤ１を受信した後、論理セクタ番号０のデータ（ＬＳＡ０’〜ＬＳＡ４’）を順番に受信し、ＬＳＡ０’〜ＬＳＡ３’のデータを第１の記憶部１２２に一時的に保持させる。次に、ＣＰＵ部１２１は、ＳＴＯＰ信号（転送終了信号）ではなく、連続したアドレスのデータ（ＬＳＡ４’）が不揮発性記憶装置１００に入力されたことを確認すると、ＬＳＡ０’〜ＬＳＡ３’のデータを不揮発性メモリ１３０のＰＢ０のページ０に書き込み、第１の記憶部１２２にＬＳＡ４’のデータを保持させる。なお、第１の記憶部１２２を複数個用意すること、または第１の記憶部１２２の容量を増やすことによって、第１の記憶部１２２にＬＳＡ４’のデータが保持されてから、ＬＳＡ０’〜ＬＳＡ３’のデータが不揮発性メモリ１３０に書き込まれるようにしてもよい。ＬＳＡ４’のデータが第１の記憶部１２２に転送された後にＳＴＯＰ信号が転送されると、ＣＰＵ部１２１は、ＬＳＡ４’のデータを第２の記憶部１２３に書き込む。
【０１３２】
次に、不揮発性記憶装置１００は、ＷＣＭＤ２を受信した後、ＬＳＢ０’〜ＬＳＢ３’のデータを受信し、第１の記憶部１２２に書き込む。その後、ＣＰＵ部１２１は、ＳＴＯＰ信号が来たことを確認すると、第１の記憶部１２２のデータ（ＬＳＢ０’〜ＬＳＢ３’）を第２の記憶部１２３に書き込む。
【０１３３】
さらに、ＷＣＭＤ３の後に、ＬＳＢ０’〜ＬＳＢ３’の更新されたデータＬＳＢ０’’〜ＬＳＢ３’’が、アクセス装置１１０から不揮発性記憶装置１００に転送される。その後、ＣＰＵ部１２１は、ＳＴＯＰ信号が不揮発性記憶装置１００に転送されたことを確認すると、第１の記憶部１２２内のデータ（ＬＳＢ０’’〜ＬＳＢ３’’）を第２の記憶部１２３に書き込む。この時、ＣＰＵ部１２１は第２の記憶部１２３内の各データのアドレス情報をチェックして、同一アドレスのデータ（ＬＳＢ０’〜ＬＳＢ３’）が存在することを確認すると、旧データ（ＬＳＢ０’〜ＬＳＢ３’）の格納されていた場所に新規のデータであるＬＳＢ０’’〜ＬＳＢ３’’のデータを上書きする。
【０１３４】
最後に、不揮発性記憶装置１００にＷＣＭＤ４が入力された後、ＬＳＡ５のデータが第１の記憶部１２２に保持される。その後、ＳＴＯＰ信号が不揮発性記憶装置１００に入力されると、ＣＰＵ部１２１は、ＬＳＡ５のデータを第２の記憶部１２３に書き込む。この時、第２の記憶部１２３内は一杯になっているため、ＣＰＵ部１２１は、ページ単位に揃っているＬＳＢ０’’〜ＬＳＢ３’’のデータを不揮発性メモリ１３０のＰＢ１のページ０に書き込み、第２の記憶部１２３内の容量を確保してから、ＬＳＡ５のデータを第２の記憶部１２３に書き込む。
【０１３５】
本実施形態の不揮発性記憶装置１００では、不揮発性メモリ１３０の同一のページに記憶される１ページ分のデータであっても、１ページを超える量連続したデータではなく繰り返し頻繁に同一論理アドレスで書き込まれる可能性のあるデータであれば、第１の記憶部１２２から不揮発性メモリ１３０に直接書き込まれるのではなく、一旦第２の記憶部１２３に書き込まれる。これにより、不揮発性記憶装置１００の書き込み速度を遅くする要因となるガーベッジコレクションの発生が少なくなる。また、不揮発性メモリ１３０の書き換え回数も少なくなる。したがって、データの書き込み速度が速くなり、不揮発メモリの寿命も長くなる。
【０１３６】
また、本実施形態では、第２の記憶部１２３において、第１の記憶部１２２から第２の記憶部１２３に書き込まれる書き込みデータと同一の論理アドレスのデータは、当該書き込みデータによって上書きされる。したがって、第２の記憶部１２３の限られた領域が有効に活用される。
【０１３７】
また、本実施形態では第２の記憶部１２３の容量が５セクタであったが、より大きな容量のデータを格納できる第２の記憶部１２３を用いてもよい。第２の記憶部１２３において、第１の記憶部１２２から第２の記憶部１２３に書き込まれる書き込みデータと同一の論理アドレスのデータは、当該書き込みデータによって上書きされるので、容量の大きい第２の記憶部１２３を用いることにより、更に書き込みの効率化が達成できる。
【０１３８】
また、本実施形態の不揮発性記憶装置１００では、第２の記憶部１２３のデータがセクタ単位で管理されるようになっていた。しかしながら、第２の記憶部１２３のデータが不揮発性メモリ１３０の書き込み単位であるページ単位で管理されるようにすることにより、第２の記憶部１２３のデータ管理を簡素化してもよい。
【０１３９】
《発明の実施形態３》
本発明の実施形態３に係る不揮発性記憶装置１００は、実施形態１の不揮発性記憶装置１００と基本的な構成は同じであるが、その動作が異なっている。
【０１４０】
また、本実施形態に係る不揮発性記憶装置１００は、ＣＰＵ部１２１内に、アドレス履歴管理部を備えている。アドレス履歴管理部は、不揮発性記憶装置１００の外部から入力されたデータの論理アドレスの履歴を記憶するようになっている。
【０１４１】
本実施形態の不揮発性記憶装置１００の動作は、図４の（Ｓ４００）〜（Ｓ４０６）の処理に代えて、図１０の（Ｓ１０００）〜（Ｓ１００７）の処理を行う点で、実施形態１の不揮発性記憶装置１００の動作と異なっている。
【０１４２】
以下、本発明の実施形態３に係る不揮発性記憶装置１００の動作について、図１０を参照して説明する。
【０１４３】
（Ｓ１０００）不揮発性記憶装置１００は、アクセス装置１１０からのライトコマンド（以下、ＷＣＭＤと記載する）、すなわちデータの書き込み命令の受信待ち状態となる。不揮発性記憶装置１００は、アクセス装置１１０からＷＣＭＤを受信すると、（Ｓ１００１）の処理に進む。
【０１４４】
（Ｓ１００１）アクセス装置１１０からデータ及びそのデータの論理アドレスが転送（送信）されると、ＣＰＵ部１２１は、転送されてきた論理アドレスの値をＣＰＵ部１２１内のレジスタに取り込むとともに、第１の記憶部１２２にデータを書き込む。
【０１４５】
（Ｓ１００２）ＣＰＵ部１２１は、第１の記憶部１２２に、不揮発性メモリ１３０で同一のページに記憶されるデータが１ページ分揃ったかどうかを判断する。揃ったと判断すれば（Ｓ１００３）の処理に進む。揃っていないと判断すれば（Ｓ１００４）の処理に進む。
【０１４６】
（Ｓ１００３）ＣＰＵ部１２１は、アドレス履歴管理部に記憶された論理アドレス（アドレス情報）、すなわち、それまでに不揮発性記憶装置１００が受信したデータの論理アドレスの履歴（アドレス情報）に基づいて、第１の記憶部１２２の上記１ページ分揃ったデータの書き換えられる可能性の有無を判断する。データが書き換えられる可能性とは、つまり、不揮発性記憶装置１００に当該データが入力された後に、当該データと同じ論理アドレスのデータが書き込みデータとして入力される可能性である。可能性が無いと判断した場合は（Ｓ１００５）に進み、可能性が有ると判断した場合は（Ｓ１００６）に進む。
【０１４７】
（Ｓ１００４）ＣＰＵ部１２１は、データの転送の終了を示す信号であるＳＴＯＰ信号がアクセス装置１１０から不揮発性記憶装置１００に入力されたかどうかを判断する。ＳＴＯＰ信号が入力された場合は、（Ｓ１００６）に進み、入力されなかった場合は、（Ｓ１００１）の処理に戻る。
【０１４８】
（Ｓ１００５）ＣＰＵ部１２１は、第１の記憶部１２２の上記１ページ分揃ったデータを、不揮発性メモリ１３０の所定の物理ブロックの１ページの領域に書き込む。
【０１４９】
（Ｓ１００６）ＣＰＵ部１２１は、第１の記憶部１２２の不揮発性メモリ１３０で同一のページに記憶される１ページ分のデータを、第２の記憶部１２３に書き込む。
【０１５０】
（Ｓ１００７）ＣＰＵ部１２１は、データの転送の終了を示す信号であるＳＴＯＰ信号がアクセス装置１１０から不揮発性記憶装置１００に入力されたかどうかを判断する。ＳＴＯＰ信号が入力された場合は、書き込み処理を終了し、入力されなかった場合は、（Ｓ１００１）の処理に戻る。
【０１５１】
（Ｓ１００３）における第１の記憶部１２２の上記１ページ分揃ったデータの書き換えられる可能性の有無の判断は、第１の記憶部１２２の上記１ページ分揃ったデータが、不揮発性記憶装置１００に所定セクタ分以上連続して入力される連続データに含まれるデータであるかどうかに基づいて行われる。つまり、上記１ページ分揃ったデータが所定セクタ分以上連続する連続データに含まれる場合は、書き換えられる可能性が無いと判断され、連続データに含まれない場合は、書き換えられる可能性が有ると判断される。
【０１５２】
（Ｓ１００６）では、実施形態１の（Ｓ４０５）の処理（（Ｓ５００）〜（Ｓ５０４）の処理）や実施形態２の（Ｓ７０５）の処理（（Ｓ８００）〜（Ｓ８０６））の処理が行われる。
【０１５３】
不揮発性記憶装置１００は、ＷＣＭＤを受信してからＳＴＯＰ信号を受信するまでに複数セクタ分のデータを受信する場合、ＳＴＯＰ信号を受信するまでに（Ｓ１００１）、（Ｓ１００５）、および（Ｓ１００６）の処理と（Ｓ１００２）〜（Ｓ１００４）および（Ｓ１００７）の判定を、１セクタ分のデータを受信する毎に繰り返す。
【０１５４】
なお、アドレス履歴管理部に記憶される論理アドレスの履歴は、上記１ページ分揃ったデータが不揮発性記憶装置１００に所定セクタ分以上連続して入力される連続データに含まれるデータであるかどうかの判断に用いられるデータであり、例えば、連続データの開始アドレスと終了アドレス、連続データの開始アドレスと連続して書き込まれたセクタ数、または、各データが１ページ分以上連続するデータに含まれるかどうかを識別するフラグ等のデータである。
【０１５５】
以上、図１０を用いて本発明の説明を行ったが、画像データや音楽データ等連続で書き込まれる連続データなのか、システム情報や管理情報等の繰り返し同一アドレスに書き込まれるデータなのかを、アドレス履歴管理部に書き込まれたアドレス履歴から判断することで、より効率的に、連続データは不揮発性メモリ１３０に、繰り返し同一アドレスに書き込まれるデータは第２の記憶部１２３に書き込める。これにより、不揮発性メモリ１３０へのデータの書き込みの効率が良くなる。
【０１５６】
なお、（Ｓ１００３）における判断は、上記１ページ分揃ったデータと同一の論理アドレスのデータが何度も繰り返して入力されているかどうかに基づいて行われてもよい。つまり、上記１ページ分揃ったデータと同じ論理アドレスのデータが、不揮発性記憶装置１００に所定回数以上入力されたことがアドレス履歴管理部に記憶された情報から判断される場合は書き換えられる可能性があると判断され、そうでない場合は書き換えられる可能性がないと判断されるようにしてもよい。
【０１５７】
《発明の実施形態４》
本発明の実施形態４に係る不揮発性記憶装置１００は、実施形態１の不揮発性記憶装置１００と基本的な構成は同じであるが、その動作が異なっている。
【０１５８】
以下、本発明の実施形態４に係る不揮発性記憶装置１００の動作について、図１１を参照して説明する。
【０１５９】
本実施形態の不揮発性記憶装置１００の動作は、図４の（Ｓ４０１）の処理に代えて、以下に説明する（Ｓ１１００）〜（Ｓ１１０２）の処理を行う点で、実施形態１の不揮発性記憶装置１００の動作と異なっている。
【０１６０】
（Ｓ１１００）不揮発性記憶装置１００は、アクセス装置１１０からのライトコマンド（以下、ＷＣＭＤと記載する）、すなわちデータの書き込み命令の受信待ち状態となる。不揮発性記憶装置１００は、アクセス装置１１０からＷＣＭＤを受信すると、（Ｓ４０１）の処理に進む。受信しない場合は、（Ｓ１１０１）の処理に進む。
【０１６１】
（Ｓ１１０１）ＣＰＵ部１２１は、前にＷＣＭＤを受信してから一定時間が経過した場合は、（Ｓ１１０２）の処理に進み、経過していない場合は、（Ｓ１１００）の処理に戻る。
【０１６２】
（Ｓ１１０２）ＣＰＵ部１２１は、第２の記憶部１２３のデータの全部または一部のデータを不揮発性メモリ１３０に書き込む。
【０１６３】
上記のように、本実施形態の不揮発性記憶装置１００では、アクセス装置１１０から不揮発性記憶装置１００への書き込みのアクセスが一定時間ない場合、第２の記憶部１２３内に記憶されたデータの一部もしくは全部が不揮発性メモリ１３０に移される。したがって、次にアクセス装置１１０からデータが来た時には、第２の記憶部１２３内の記憶領域（メモリ空間）の全部または一部は、空の状態になっている。このように、第２の記憶部１２３が有効に活用されるので、第２の記憶部の容量を削減することができる。これにより、チップサイズの削減等によってコストを削減できる。
【０１６４】
《発明の実施形態５》
本発明の実施形態５に係る不揮発性記憶装置１００は、実施形態１の不揮発性記憶装置１００と基本的な構成は同じであるが、その動作が異なっている。
【０１６５】
以下、本発明の実施形態５に係る不揮発性記憶装置１００の動作について、図１２を参照して説明する。
【０１６６】
（Ｓ１２００）不揮発性記憶装置１００は、アクセス装置１１０からのライトコマンド（以下、ＷＣＭＤと記載する）、すなわちデータの書き込み命令の受信待ち状態となる。
【０１６７】
（Ｓ１２０１）アクセス装置１１０からデータ及びそのデータの論理アドレスが転送（送信）されると、ＣＰＵ部１２１は、転送されてきた論理アドレスの値をＣＰＵ部１２１内のレジスタに取り込むとともに、第１の記憶部１２２にデータを格納する（保持させる）。
【０１６８】
（Ｓ１２０２）ＣＰＵ部１２１は、第１の記憶部１２２に、不揮発性メモリ１３０で同一のページに記憶されるデータが１ページ分揃ったかどうかを判断する。揃ったと判断すれば、（Ｓ１２０４）の処理に進む。揃っていないと判断すれば、（Ｓ１２０３）の処理に進む。
【０１６９】
（Ｓ１２０３）ＣＰＵ部１２１は、データの転送の終了を示す信号であるＳＴＯＰ信号がアクセス装置１１０から不揮発性記憶装置１００に入力されたかどうかを判断する。ＳＴＯＰ信号が入力された場合は、（Ｓ１２０９）の処理に進み、入力されなかった場合は、（Ｓ１２０１）の処理に戻る。
【０１７０】
（Ｓ１２０４）ＣＰＵ部１２１は、（Ｓ１２０２）で揃ったデータが、重要なデータかどうかを判断する。ここでは、（Ｓ１２０２）で揃ったデータが、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅｓ）、アドレス情報、およびセキュリティ情報のうちのいずれかであれば、重要なデータとして判断される。ここでの判断は、データ自体、データの論理アドレス、またはアクセス装置１１０から入力されるライトコマンド等を用いて行われる。重要なデータと判断すれば、（Ｓ１２０６）の処理に進み、重要でないと判断すれば、（Ｓ１２０５）の処理に進む。なお、重要なデータかどうかの判断は、（Ｓ１２０２）で揃った１ページ分のデータ毎に行われるようにしてもよいし、１セクタ分のデータ毎に行われるようにしてもよい。
【０１７１】
（Ｓ１２０５）ＣＰＵ部１２１は、上記（Ｓ１２０２）で揃ったデータを、不揮発性メモリ１３０の所定の物理ブロックの１ページの領域に書き込む。
【０１７２】
（Ｓ１２０６）（Ｓ１２０７）ＣＰＵ部１２１が、上記（Ｓ１２０２）で揃ったデータを、第２の記憶部１２３に保持させるとともに、不揮発性メモリ１３０の所定の物理ブロックの１ページの領域に書き込む。
【０１７３】
（Ｓ１２０８）ＣＰＵ部１２１は、ＳＴＯＰ信号がアクセス装置１１０から不揮発性記憶装置１００に入力されたかどうかを判断する。ＳＴＯＰ信号が入力された場合は、書き込み処理を終了し、入力されなかった場合は、（Ｓ１２０１）の処理に戻る。
【０１７４】
（Ｓ１２０９）ＣＰＵ部１２１は、第１の記憶部１２２に保持されたデータが重要なデータかどうかを判断する。
【０１７５】
（Ｓ１２１０）（Ｓ１２１１）ＣＰＵ部１２１が、第１の記憶部１２２に保持されたデータを、第２の記憶部１２３に保持させるとともに、不揮発性メモリ１３０の所定の物理ブロックの１ページの領域に書き込む。
【０１７６】
（Ｓ１２１２）ＣＰＵ部１２１は、第１の記憶部１２２に保持されたデータを、第２の記憶部１２３に保持させる。
【０１７７】
なお、第２の記憶部１２３に記憶された重要なデータは、ＣＰＵ部１２１によって、不揮発性メモリ１３０に当該重要なデータが記憶されたことが確認されると、消去されたり、新しいデータが上書きされてもよい無効なデータとして扱われる。
【０１７８】
上記のように、本実施形態の不揮発性記憶装置１００では、第２の記憶部１２３と不揮発性メモリ１３０の両方に重要なデータが書き込まれるので、不測の事態によってデータが消失する可能性が低い。したがって、第２の記憶部１２３と不揮発性メモリ１３０の両方に重要なデータが書き込まれるように不揮発性記憶装置１００を構成することにより、不揮発性記憶装置１００の信頼性を高めることができる。
【０１７９】
また、第２の記憶部１２３としてＦｅＲＡＭ等の不揮発性メモリを使用すれば、書き込み途中の電源遮断等によるデータの消失の可能性を更に低減でき、更に不揮発性記憶装置１００の信頼性を高めることができる。
【０１８０】
また、アクセス装置１１０によって不揮発性メモリ１３０のデータが読み出される時に、第１の記憶部１２２に直接、不揮発性メモリ１３０のデータが転送されてアクセス装置１１０へ出力されるように不揮発性記憶装置１００を構成すると、第２の記憶部１２３を介して出力されるように構成した場合よりも、書き換え回数が少なくなる。書き換え回数を少なくすることは、ＦｅＲＡＭ等の不揮発性メモリを第２の記憶手段に使用する場合に特に重要である。
【０１８１】
なお、本実施形態の不揮発性記憶装置１００では、ＦＡＴ、アドレス管理情報、およびセキュリティ情報が重要なデータとして判断されるようになっていたが、これらの一部のデータ、またはこれら以外のデータが重要なデータとして判断されるようにしてもよい。例えば、失われると不揮発性メモリ１３０のデータが読み出せなくなるようなこれら以外のデータが重要なデータと判断されるようにしてもよい。
【０１８２】
《発明の実施形態６》
本発明の実施形態６に係る不揮発性記憶装置１００は、実施形態１の不揮発性記憶装置１００と基本的な構成は同じであるが、その動作が異なっている。
【０１８３】
以下、本発明の実施形態６に係る不揮発性記憶装置１００の動作について、図１３を参照して説明する。
【０１８４】
本実施形態の不揮発性記憶装置１００の動作は、図５の（Ｓ５００）〜（Ｓ５０４）の処理に代えて、図１３の（Ｓ１３００）〜（Ｓ１３０７）の処理を行う点で、実施形態１の不揮発性記憶装置１００の動作と異なっている。
【０１８５】
（Ｓ１３００）ＣＰＵ部１２１は、第２の記憶部１２３のデータ量が所定量に達しているかどうかを判断する。第２の記憶部１２３のデータ量が所定量に達していなければ、（Ｓ１３０１）の処理に進み、達していれば、（Ｓ１３０５）の処理に進む。
【０１８６】
（Ｓ１３０１）ＣＰＵ部１２１は、第２の記憶部１２３に、第１の記憶部１２２から第２の記憶部１２３に書き込む書き込みデータと同じアドレスのデータが保持（格納）されているかどうかを判断する。同じアドレスのデータがある場合は（Ｓ１３０２）の処理に進み、ない場合は（Ｓ１３０７）の処理に進む。
【０１８７】
（Ｓ１３０２）ＣＰＵ部１２１は、第２の記憶部１２３に保持されている上記同じアドレスの各データについて、データ管理フラグが“０”と“１”のいずれであるかを判断する。つまり、各データが最新の（前回書き込まれた）データであるか、そうでないか（前々回以前に書き込まれた）データであるかを判断する。“０”のデータがあれば（Ｓ１３０３）に進み、“０”のデータがなければ（Ｓ１３０６）に進む。
【０１８８】
（Ｓ１３０３）ＣＰＵ部１２１は、上記同じアドレスのデータのうち、データ管理フラグが“０”のデータに、上記書き込みデータを上書きし、上書きしたデータのデータ管理フラグを“１”に設定する。
【０１８９】
（Ｓ１３０４）ＣＰＵ部１２１は、（Ｓ１３０３）で上書きされなかった上記同じアドレスのデータのデータ管理フラグを“０”に更新する。
【０１９０】
（Ｓ１３０５）ＣＰＵ部１２１は、第２の記憶部１２３の全部または一部のデータを不揮発性メモリ１３０に書き込む。
【０１９１】
（Ｓ１３０６）ＣＰＵ部１２１は、上記書き込みデータを、第２の記憶部１２３の空いている領域に書き込む。
【０１９２】
（Ｓ１３０７）ＣＰＵ部１２１は、上記書き込みデータを、第２の記憶部１２３の空いている領域に書き込み、上記書き込みデータのデータ管理フラグを“１”に設定する。
【０１９３】
上記のように、本実施形態の不揮発性記憶装置１００では、第２の記憶部１２３に、第１の記憶部１２２からの書き込みデータと同じ論理アドレスのデータが１つしかない場合は、そのデータは、書き込みデータによって上書きされないようになっている。また、第２の記憶部１２３に、第１の記憶部１２２からの書き込みデータと同じ論理アドレスのデータが２つある場合は、古い方のデータが上書きされるようになっている。したがって、不測の事態によって、上記古い方のデータが第１の記憶部１２２からの書き込みデータによって正しく上書きされなかった場合に、残っている新しい方のデータを利用できる。これにより、不揮発性記憶装置１００によって記憶されたデータの信頼性を上げることができる。
【０１９４】
また、第２の記憶部１２３としてＦｅＲＡＭ等の不揮発性メモリを使用すれば、電源遮断等の異常動作が発生した時にデータが保護されるので、更に不揮発性記憶装置１００の信頼性を高めることができる。
【０１９５】
なお、本実施形態では、（Ｓ１３００）〜（Ｓ１３０７）の処理が、実施形態１の（Ｓ５００）〜（Ｓ５０４）（（Ｓ４０５））の処理の代わりに行われる場合について説明した。しかしながら、実施形態２の（Ｓ７０５）や（Ｓ７０７）、実施形態３の（Ｓ１００６）の処理の代わりに行われるようにしてもよい。
【０１９６】
《その他の実施形態》
なお、本発明は主記憶の不揮発性メモリと第１の記憶手段および第２の記憶手段の組み合わせに限定されることなく、特許請求の範囲に記載された発明の範囲内で、他の不揮発性メモリ等を用いるなど、他の種々の変更が可能であり、それらも本発明の範囲内に含有されることは言うまでもない。
【０１９７】
例えば、上記実施形態の図２で説明したフォーマットと異なるフォーマットの不揮発性メモリが用いられてもよい。また、不揮発性メモリ１３０、第１の記憶部１２２または第２の記憶部１２３の容量も、上記実施形態のものに限られない。
【０１９８】
また、実施形態１の不揮発性記憶装置１００は、（Ｓ４０１）〜（Ｓ４０３）の処理と（Ｓ４０４）と（Ｓ４０６）の判定を、１セクタ分のデータを受信する毎に行うようになっていた。しかしながら、複数セクタ分のデータを受信する毎に、上記処理および判定を行うようにしてもよい。
【０１９９】
同様に、実施形態２の不揮発性記憶装置１００は、（Ｓ７０１）、（Ｓ７０７）、および（Ｓ７０８）の処理と（Ｓ７０３）、（Ｓ７０４）、および（Ｓ７０６）の判定を、複数セクタ分のデータを受信する毎に行うようにしてもよい。
【０２００】
さらに、同様に、実施形態３の不揮発性記憶装置１００は、（Ｓ１００１）、（Ｓ１００５）、および（Ｓ１００６）の処理と（Ｓ１００２）〜（Ｓ１００４）および（Ｓ１００７）の判定を、複数セクタ分のデータを受信する毎に行うようにしてもよい。
【０２０１】
また、実施形態２の不揮発性記憶装置１００は、（Ｓ７０５）と（Ｓ７０７）のそれぞれにおいて、複数セクタ分のデータを第１の記憶部１２２から第２の記憶部１２３に書き込む場合に、（Ｓ８００）〜（Ｓ８０７）の処理を１セクタ分のデータ毎に繰り返すようになっていた。しかしながら、複数セクタ分のデータ、例えば、不揮発性メモリ１３０で同一のページに記憶される１ページ分のデータ毎に（Ｓ８００）〜（Ｓ８０７）の処理を行うようにしてもよい。
【０２０２】
また、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【０２０３】
具体的には、例えば、実施形態４の（Ｓ１１００）〜（Ｓ１１０２）の処理が、実施形態２の（Ｓ７００）、実施形態３の（Ｓ１０００）、または実施形態５の（Ｓ１２００）に代えて行われるようにしてもよい。
【０２０４】
また、実施形態１〜３においても、実施形態５と同様に、第１の記憶部１２２のデータが、データの重要度に応じて不揮発性メモリ１３０と第２の記憶部１２３の両方に書き込まれるようにしてもよい。つまり、実施形態１においては、（Ｓ４０３）で第１の記憶部１２２内のデータが第２の記憶部１２３に書き込まれる際に、第１の記憶部１２２内のデータが重要なデータかどうかが判定され、重要なデータの場合には、不揮発性メモリ１３０だけでなく第２の記憶部１２３にも書き込まれるようにしてもよい。また、実施形態２と実施形態３においても、（Ｓ７０５）や（Ｓ１００５）で第１の記憶部１２２内のデータが第２の記憶部１２３に書き込まれる際に、第１の記憶部１２２内のデータが重要なデータかどうかが判定され、重要なデータの場合には、不揮発性メモリ１３０だけでなく第２の記憶部１２３にも書き込まれるようにしてもよい。
【産業上の利用可能性】
【０２０５】
本発明に係る不揮発性記憶装置、データ記憶システム、およびデータ記憶方法は、データを高速に書き込めるという効果を有し、例えば、音声記録再生装置、静止画記録再生装置や動画記録再生装置等のポータブルＡＶ機器、携帯電話等のポータブル通信機器、主記憶としてフラッシュメモリ等の不揮発性メモリを使用したコンピュータや車載端末の記録媒体や記録システム等として有用である。
【図面の簡単な説明】
【０２０６】
【図１】本発明の実施形態１に係るデータ記憶システムの構成を示すブロック図である。
【図２】同、不揮発性メモリ１３０の各物理ブロックのフォーマットを示す説明図である。
【図３】同、第２の記憶部１２３のフォーマットを示す説明図である。
【図４】同、不揮発性記憶装置１００の書き込み動作を示すフローチャートである。
【図５】同、不揮発性記憶装置１００の書き込み動作を示すフローチャートである。
【図６】同、不揮発性記憶装置１００によって行われる書き込み処理の例を示す説明図である。
【図７】本発明の実施形態２に係る不揮発性記憶装置１００の書き込み動作を示すフローチャートである。
【図８】同、不揮発性記憶装置１００の書き込み動作を示すフローチャートである。
【図９】同、不揮発性記憶装置１００によって行われる書き込み処理の例を示す説明図である。
【図１０】本発明の実施形態３に係る不揮発性記憶装置１００の書き込み動作を示すフローチャートである。
【図１１】本発明の実施形態４に係る不揮発性記憶装置１００の書き込み動作を示すフローチャートである。
【図１２】本発明の実施形態５に係る不揮発性記憶装置１００の書き込み動作を示すフローチャートである。
【図１３】本発明の実施形態６に係る不揮発性記憶装置１００の書き込み動作を示すフローチャートである。
【図１４】従来の不揮発性メモリを備えたデータ処理装置によって行われる書き込み処理の例を示す説明図である。
【図１５】従来の不揮発性メモリを備えたデータ処理装置によって行われる書き込み処理の例を示す説明図である。
【符号の説明】
【０２０７】
１００      不揮発性記憶装置
１１０      アクセス装置
１２０      メモリコントローラ
１２１      ＣＰＵ部
１２２      第１の記憶部
１２３      第２の記憶部
１２４      メモリ制御回路
１３０      不揮発性メモリ
【図１】
2008033788.tif 000003
【図２】
2008033788.tif 000004
【図３】
2008033788.tif 000005
【図４】
2008033788.tif 000006
【図５】
2008033788.tif 000007
【図６】
2008033788.tif 000008
【図７】
2008033788.tif 000009
【図８】
2008033788.tif 000010
【図９】
2008033788.tif 000011
【図１０】
2008033788.tif 000012
【図１１】
2008033788.tif 000013
【図１２】
2008033788.tif 000014
【図１３】
2008033788.tif 000015
【図１４】
2008033788.tif 000016
【図１５】
2008033788.tif 000017