(57)【要約】  性能向上、信頼性の向上および寿命の向上を実現する目的で、第１の不揮発性メモリ装置（ＮＶＭ）とこれを制御するコントローラ（ＭＤＬＣＴ）からなるメモリモジュール（ＮＶＭＭＤ）における前記コントローラを、第１の不揮発性メモリ装置がデータを保持できる時間である第１のデータ保持時間に基づいて、第１の不揮発性メモリ装置へデータを書込むか否かを決定する構成とする。
2014167621.tif 000002
【特許請求の範囲】
【請求項１】
第１の不揮発性メモリ装置と、これを制御するコントローラからなるメモリモジュールであって、  前記コントローラは、前記第１の不揮発性メモリ装置がデータを保持できる時間である第１のデータ保持時間に基づいて、前記第１の不揮発性メモリ装置へデータを書込むか否かを決定することを特徴するメモリモジュール。
【請求項２】
請求項１記載のメモリモジュールにおいて、  前記コントローラは、前記第１の不揮発性メモリ装置の消去回数または書換え回数に応じて、前記第１のデータ保持時間を決定することを特徴するメモリモジュール。
【請求項３】
請求項１または２記載のメモリモジュールにおいて、  前記コントローラは、前記第１のデータ保持時間が前記メモリモジュールの製品残存寿命以上であれば、前記第１の不揮発性メモリ装置へデータを書込むを特徴するメモリモジュール。
【請求項４】
請求項１に記載のメモリモジュールにおいて、  前記第１の不揮発メモリは、前記第１の不揮発性メモリ装置の消去回数と前記第１のデータ保持時間の関係を示す情報を保持することを特徴するメモリモジュール。
【請求項５】
第２の不揮発性メモリ装置と、第３の不揮発性メモリ装置と、これらを制御するコントローラからなるメモリモジュールであって、  前記コントローラは、前記第２の不揮発性メモリ装置へ、前記第２の不揮発性メモリ装置に関するアドレス変換テーブルおよび前記メモリモジュールへ入力したデータ、ならびに、前記第３の不揮発性メモリ装置に関するアドレス変換テーブルを保存させることを特徴するメモリモジュール。
【請求項６】
請求項５記載のメモリモジュールにおいて、  前記コントローラは、前記第６の不揮発性メモリ装置と前記第７の不揮発性メモリ装置に対して、それぞれ独立に、消去回数あるいは書込み回数の平準化を行うことを特徴するメモリモジュール。
【請求項７】
請求項５記載のメモリモジュールにおいて、  前記コントローラは、前記第６の不揮発性メモリへ保存されている前記アドレス変換テーブルと前記データに対して、それぞれ独立に、消去回数あるいは書込み回数の平準化を行うことを特徴するメモリモジュール。
【請求項８】
第４の不揮発性メモリと、第５の不揮発性メモリと、第６の不揮発性メモリと、これらを制御するコントローラからなるメモリモジュールであって、  前記コントローラは、前記第４の不揮発性メモリへ、前記第５の不揮発性メモリ装置に関するアドレス変換テーブルと前記第６の不揮発性メモリ装置に関するアドレス変換テーブルを保存し、前記第５の不揮発性メモリおよび前記第６の不揮発性メモリへ、前記メモリモジュールへ入力したデータを保存させることを特徴するメモリモジュール。
【請求項９】
請求項８記載のメモリモジュールにおいて、  前記コントローラは、前記第４の不揮発性メモリ装置に対する消去回数あるいは書込み回数の平準化を行わないことを特徴するメモリモジュール。
【請求項１０】
請求項９記載のメモリモジュールにおいて、  前記コントローラは、前記第９および前記第１０の不揮発性メモリ装置に対する消去回数あるいは書込み回数の平準化を行うことを特徴するメモリモジュール。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、メモリモジュールに関する。
【背景技術】
【０００２】  近年、複数のＮＡＮＤ型フラッシュメモリとコントローラから構成されるＳＳＤ（Solid State Drive）が、ストレージシステム、サーバー機器およびＬａｐｔｏｐ  ＰＣ等に利用されている。ＮＡＮＤ型フラッシュメモリには、消去回数に上限があり、データ書き込みサイズとデータ消去サイズが大きく異なることが広く知られている。【０００３】  特許文献１には、不揮発性メモリのウエアレベリング技術が開示されている。特許文献１では、書き込み回数により不揮発性メモリのウエアレベリングを管理している。具体的には、不揮発性メモリを、最大書き込み回数Ｎ１を持つ第１の不揮発メモリと、最大書き込み回数Ｎ２を持つ第２の不揮発性メモリとを有する構成として、第１の不揮発性メモリへの書き込み回数値をｎ１、第２の不揮発性メモリへの書き込み回数値をｎ２とした場合に、（ｎ１／Ｎ１）＜（ｎ２／Ｎ２）であれば第１の不揮発性メモリへデータを書き込み、（ｎ１／Ｎ１）＞（ｎ２／Ｎ２）であれば第２の不揮発性メモリへデータを書き込む制御をしている。このように、従来は、書き込み回数値によりウエアレベリングを行っていた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１０−５１２５６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】  ＮＡＮＤ型フラッシュメモリに代表される不揮発性メモリは、あるメモリ領域へデータを書き込むためには、予め、そのメモリ領域のデータを消去する必要があり、この消去時の最小データ単位（ブロック）は１Ｍバイトで、書込み時の最小データ単位は４Ｋバイトである。つまり、４Ｋバイトのデータを書くために、１Ｍバイトの消去済メモリ領域を確保する必要がある。また、この消去回数には制限があり、これを超えるとＮＡＮＤ型フラッシュメモリへは書き込み不可能となりＳＳＤの寿命となる。さらに、ＮＡＮＤ型フラッシュメモリには、消去回数(または書き込み回数)が増加するほどデータ保持時間(書き込まれたデータを正しく保持できる期間)が低下していく性質があり、このデータ保持時間がＳＳＤの寿命を決定してしまう恐れがある。係る課題は、書き込み回数値でウエアレベリングを行う特許文献１の方法では解決できない。【０００６】  さらに、本発明者は、キャッシュメモリを内蔵したＳＳＤについて検討した。ＳＳＤはＤＲＡＭとＮＡＮＤ型フラッシュメモリとこれらを制御するコントローラから構成されており、ＤＲＡＭをＮＡＮＤ型フラッシュメモリのキャッシュメモリとして利用することによりＳＳＤの高性能化を図っている。ＤＲＡＭは揮発性メモリのため、電源が遮断されるとＤＲＡＭに保持されているデータは消えてしまう。そのため、長い期間、ＤＲＡＭへ書き込んだデータを保持しておくと、突発的な電源遮断が生じた際に、ＤＲＡＭからＮＡＮＤ型フラッシュメモリへの書き戻しができずに、ＳＳＤの信頼性を低下させてしまう。また、突発的な電源遮断に対応するためにＤＲＡＭへ保持しているデータをＮＡＮＤ型フラッシュメモリへ頻繁に書き戻してしまうと、ＳＳＤの高性能化を阻害する要因となる。突発的な電源遮断に対応するための別の方法として、ＳＳＤがＤＲＡＭからＮＡＮＤ型フラッシュメモリへの書き戻しが完了する期間だけ電源を供給するためバッテリバックアップを搭載する方法もある。しかし、バッテリバックアップを搭載するとＳＳＤのコストが上昇してしまう。係る課題については、特許文献１には何ら記載がない。【０００７】  本発明は、このようなことを鑑みてなされたものであり、本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】  本願において開示される発明のうち、代表的な実施の形態の概要を簡単に説明すれば、第１の不揮発性メモリ装置と、これを制御するコントローラからなるメモリモジュールであって、前記コントローラは、前記第１の不揮発性メモリ装置がデータを保持できる時間である第１のデータ保持時間に基づいて、前記第１の不揮発性メモリ装置へデータを書込むか否かを決定することを特徴する。【０００９】  または、第２の不揮発性メモリ装置と、第３の不揮発性メモリ装置と、これらを制御するコントローラからなるメモリモジュールであって、前記コントローラは、前記第２の不揮発性メモリ装置へ、前記第２の不揮発性メモリ装置に関するアドレス変換テーブルおよび前記メモリモジュールへ入力したデータ、ならびに、前記第３の不揮発性メモリ装置に関するアドレス変換テーブルを保存させることを特徴する。【００１０】  または、第４の不揮発性メモリと、第５の不揮発性メモリと、第６の不揮発性メモリと、これらを制御するコントローラからなるメモリモジュールであって、前記コントローラは、前記第４の不揮発性メモリへ、前記第５の不揮発性メモリ装置に関するアドレス変換テーブルと前記第６の不揮発性メモリ装置に関するアドレス変換テーブルを保存し、前記第５の不揮発性メモリおよび前記第６の不揮発性メモリへ、前記メモリモジュールへ入力したデータを保存させることを特徴する。
【発明の効果】
【００１１】  本願において開示される発明のうち、代表的な実施の形態によって得られる効果を簡単に説明すると、不揮発性メモリを利用したメモリモジュールおよび当該メモリモジュールを含む情報処理システムにおいて、信頼性の向上や長寿命化等が実現可能になる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施の形態による情報処理装置の構成例を示すブロック図である。
【図２】図１における制御回路の構成例を示すブロック図である。
【図３】本発明におけるデータの書込み方法の一例を示すフロー図である。
【図４】本発明におけるデータの書込み方法の一例を示すフロー図である。
【図５Ａ】本発明におけるデータの書込み方法の一例を示すフロー図である。
【図５Ｂ】本発明におけるレジスタの設定値の一例を示す図である。
【図６Ａ】本発明におけるデータの書込み方法の一例を示すフロー図である。
【図６Ｂ】本発明におけるデータの書込み方法の一例を示すフロー図である。
【図７】本発明におけるデータの書込み方法の一例を示すフロー図である。
【図８Ａ】本発明によるメモリモジュールのデータ保持特性の一例を示す図である。
【図８Ｂ】図８Ａのデータ保持特性をテーブル上で規定した一例を示す図である。
【図９】本発明におけるキャッシュメモリへの読出しおよび書き込み方法の一例を示すフロー図である。
【図１０】本発明におけるデータの書込み方法の一例を示すフロー図である。
【図１１】本発明におけるデータの読出し方法の一例を示すフロー図である。
【図１２】本発明におけるデータの書込み方法の一例を示すフロー図である。
【図１３】本発明におけるデータの読出し方法の一例を示すフロー図である。
【図１４】図１のメモリモジュールにおいてウエアレベリング方法の一例を示すフロー図である。
【図１５】図１のメモリモジュールにおいて、ウエアレベリング方法の一例をフロー図である。
【図１６】図１６のフローを概略的に説明する補足図である。
【図１７Ａ】図１の情報処理システムにおいて、電源投入時の初期シーケンスの一例を示す図である。
【図１７Ｂ】図１の情報処理システムにおいて、電源投入時の初期シーケンスの一例を示す図である。
【図１８Ａ】ＳＳＤコンフィグレーション情報ＳＤＣＦＧの一例を示す図である。
【図１８Ｂ】ＳＳＤコンフィグレーション情報ＳＤＣＦＧの一例を示す図である。
【図１８Ｃ】ＳＳＤコンフィグレーション情報ＳＤＣＦＧの一例を示す図である。
【図１８Ｄ】ＳＳＤコンフィグレーション情報ＳＤＣＦＧの一例を示す図である。
【図１８Ｅ】不揮発性メモリ装置ＮＶＭ００に格納されるキャッシュ構成情報、製品寿命、書込みデータ許容量閾値、データ書込み量基準値を示す図である。
【図１９Ａ】本発明のアドレスマップADMAPの一例を示す。
【図１９Ｂ】不揮発メモリ装置ＮＶＭ００中、非キャッシュメモリに格納されるデータを示す図である。
【図２０】本発明の一実施の形態による情報処理装置の構成例を示すブロック図である
【図２１】図２０における制御回路の構成例を示すブロック図である。
【発明を実施するための形態】
【００１３】  《情報処理システムの概要》図１は、本発明の一実施の形態によるメモリモジュールおよび情報処理システムの概略構成例を示すブロック図である。図１に示す情報処理システムは、情報処理装置（プロセッサ）ＣＰＵ＿ＣＰとメモリモジュールＮＶＭＭＤ０とを備える。情報処理装置ＣＰＵ＿ＣＰは、特に限定しないがメモリモジュールＮＶＭＭＤ０へ保存されているデータを４キロバイト単位の論理アドレス（ＬＡＤ）にて管理するホストコントローラである。情報処理装置ＣＰＵ＿ＣＰは、インターフェース信号ＨＤＨ＿ＩＦを通じ、このメモリモジュールＮＶＭＭＤ０に対してデータの読み出しや書込みを行う。メモリモジュールＮＶＭＭＤ０は、特に限定しないが、例えばＳＳＤ（Solid State Drive）等に該当するものである。
【００１４】  情報処理装置ＣＰＵ＿ＣＰとメモリモジュールＮＶＭＭＤ０を接続する信号方式には、シリアルインターフェース信号方式、パラレルインターフェース信号方式、光インターフェース信号方式などがあり、いうまでもなく、全ての方式を利用することができる。情報処理装置ＣＰＵ＿ＣＰとメモリモジュールＮＶＭＭＤ０を動作させるクロック方式には、コモンクロック方式およびソースシンクロナスクロック方式や、データ信号にクロック情報を埋め込むエンベデッドクロック方式などがあり、いうまでもなく、全てのクロック方式を利用することができる。本実施の形態では、一例としてシリアルインターフェース信号方式ならびにエンベデッドクロック方式を用いるものとし、以下に動作を説明する。
【００１５】  情報処理装置ＣＰＵ＿ＣＰから、クロック情報が埋め込まれ、シリアルデータへ変換された読出し要求（ＲＱ）や書込み要求などがインターフェース信号ＨＤＨ＿ＩＦを通じてメモリモジュールＮＶＭＭＤ０へ入力される。読出し要求（ＲＱ）には論理アドレス（ＬＡＤ）、データ読み出し命令（ＲＤ）、セクタカウント（ＳＥＣ）などが含まれ、また、書込み要求には論理アドレス（ＬＡＤ）、データ書込み命令（ＷＲＴ）、セクタカウント（ＳＥＣ）および書込みデータ（ＷＤＡＴＡ）などが含まれる。
【００１６】  メモリモジュールＮＶＭＭＤ０は、不揮発性メモリ装置  ＮＶＭ００と、ＮＶＭ１０〜ＮＶＭ１７と、これら不揮発性メモリ装置を制御する制御回路（コントローラ）ＭＤＬＣＴ０を備える。
【００１７】  また、これらの不揮発性メモリ装置には、ＮＡＮＤ型フラッシュメモリ、ＮＯＲ型フラッシュメモリ、相変化型メモリPCM、抵抗変化型メモリReRAM、スピン注入磁化反転型メモリＳＴＴ−ＭＲＡＭ、強誘電体メモリなどメモリがあるが、メモリモジュール（半導体装置）ＮＶＭＭＤ０には、いずれの不揮発性メモリも利用できることはいうまでもない。
【００１８】  不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７には、データ、ＯＳ、アプリケーションプログラム等が格納されている。
【００１９】  また、不揮発性メモリ装置ＮＶＭ００には、データや不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７に関するアドレス変換テーブルＮＬＰＴＢＬ、ＮＡＬＰＴＢＬおよび不揮発性メモリ装置ＮＶＭ００に関するアドレス変換テーブルＣＬＰＴＢＬ、ＣＡＬＰＴＢＬ、ＳＤＤコンフィグレーション情報ＳＤＣＦＧ、データ保持特性テーブルＲＥＴＢＬやデータ保持特性関数ＤＲＥＦＴ、製品寿命LifeTimeＭＭ、書込みデータ許容量閾値Wth1およびWth2、データ書き込み量基準値Wchk、アドレスマップＡＤＭＡＰ、キャッシュ構成情報ＣＡＣＨＥＳＴ、ＮＶＭ優先利用情報ＦＣＧＲを格納し、さらに情報処理装置ＣＰＵ＿ＣＰおよびメモリモジュールＮＶＭＭＤ０のブートプログラムＢＴＰなどが格納される。
【００２０】  アドレス変換テーブルＮＬＰＴＢＬは情報処理装置ＣＰＵ＿ＣＰからメモリモジュールＮＶＭＭＤ０へ入力した読出し要求や書込み要求に含まれる論理アドレス（ＬＡＤ）に対応するデータが不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７内のどの物理アドレス（ＰＡＤ）へ格納されているかを示すテーブルである。
【００２１】  アドレス変換テーブルＮＡＬＰＴＢＬは、アドレス変換テーブルＮＬＰＴＢＬが不揮発性メモリ装置ＮＶＭ００内のどの物理アドレス（ＰＡＤ）へ格納されているかを示すテーブルである。
【００２２】  アドレス変換テーブルＣＬＰＴＢＬは情報処理装置ＣＰＵ＿ＣＰからメモリモジュールＮＶＭＭＤ０へ入力した読出し要求や書込み要求に含まれる論理アドレス（ＬＡＤ）に対応するデータが不揮発性メモリ装置ＮＶＭ００内のどの物理アドレス（ＣＰＡＤ）へ格納されているかを示すテーブルである。
【００２３】  アドレス変換テーブルＣＡＬＰＴＢＬは、アドレス変換テーブルＣＬＰＴＢＬが、不揮発性メモリ装置ＮＶＭ００内のどの物理アドレス（ＣＰＡＤ）へ格納されているかを示すテーブルである。
【００２４】  さらに、不揮発性メモリ装置ＮＶＭ００が不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７のキャッシュメモリとして動作した際は、不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７へ格納しているデータ、ＯＳおよびアプリケーションプログラムの一部が不揮発性メモリ装置ＮＶＭ００へ格納される。
【００２５】  情報処理装置ＣＰＵ＿ＣＰは、メモリモジュールＮＶＭＭＤ０から、データ、ＯＳ、アプリケーションプログラムを読出し、実行する。また、情報処理装置ＣＰＵ＿ＣＰによってその実行結果はメモリモジュールＮＶＭＭＤ０へ書き込まれる。
【００２６】  電源投入直後に、メモリモジュールＮＶＭＭＤ０は、内部の不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７と、不揮発性メモリ装置ＮＶＭ００と、制御回路ＭＤＬＣＴ０の初期化の動作（パワーオンリセット）を行う。さらに、メモリモジュールＮＶＭＭＤ０は、情報処理装置ＣＰＵ＿ＣＰからのリセット信号ＲＳＴＳＩＧを受けた際にも、内部の不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７と、不揮発性メモリ装置ＮＶＭ００と、制御回路ＭＤＬＣＴ０の初期化を行う。
【００２７】  図２は、図１における制御回路ＭＤＬＣＴ０の構成例を示すブロック図である。図２に示す制御回路ＭＤＬＣＴ０は、インターフェース回路ＨＯＳＴ＿ＩＦと、バッファＢＵＦ０〜ＢＵＦ３と、書込み物理アドレステーブルＮＸＣＴＢＬ、ＮＸＮＴＢＬ、ＮＸＣＡＴＢＬ、ＮＸＮＡＴＢＬと、調停回路ＡＲＢと、情報処理回路ＭＡＮＡＧＥＲと、メモリ制御回路ＮＶ０Ｃ、ＮＶＣＴ１０〜ＮＶＣＴ７と、マップレジスタＭＡＰＲＥＧと、レジスタＴＷＲＥＧ、レジスタＲＤＲＥＴＢＬ、レジスタＲＤＲＥＴＦ、レジスタＲＤＲＥＴ、レジスタＲＷＳＰＣ、レジスタＦＣＧＲＥＧ、レジスタＲＳＤＣＦＧ、キャッシュテーブルＣＡＴＢＬ、アドレス変換テーブルＮＡＰＴＢＬ、ＣＡＰＴＢＬを備える。
【００２８】  アドレス変換テーブルＮＡＬＰＴＢＬは、アドレス変換テーブルＮＬＰＴＢＬが不揮発性メモリ装置ＮＶＭ００内のどの物理アドレス（ＣＰＡＤ）へ格納されているかを示すテーブルである。
【００２９】  アドレス変換テーブルＣＡＬＰＴＢＬは、アドレス変換テーブルＣＬＰＴＢＬが、不揮発性メモリ装置ＮＶＭ００内のどの物理アドレス（ＣＰＡＤ）へ格納されているかを示すテーブルである。
【００３０】  メモリ制御回路ＮＶ０Ｃは、図１の不揮発性メモリ装置ＮＶＭ００を直接制御し、メモリ制御回路ＮＶＣＴ０，ＮＶＣＴ１０〜ＮＶＣＴ７は、図１の不揮発性メモリ装置ＮＶＭ０，ＮＶＭ１０〜ＮＶＭ１７をそれぞれ直接制御する。
【００３１】  バッファＢＵＦ０〜ＢＵＦ３は、不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７の書き込みデータや読み出しデータを一時的に蓄える。
【００３２】  書込み物理アドレステーブルＮＸＣＴＢＬおよびＮＸＮＴＢＬは、次に情報処理装置ＣＰＵ＿ＣＰより論理アドレスを伴う書き込み命令を受けた際に、当該論理アドレスに対して割り当てを行う物理アドレスを蓄えたテーブルであり、マップレジスタＭＡＰＲＥＧは、メモリ空間の全体的な領域に関する情報を保持するレジスタであり、キャッシュテーブルＣＡＴＢＬは、情報処理回路ＭＡＮＡＧＥＲがヒット判定する際のキャッシュのタグアドレスＴＡＧアドレスをCN個分（=エントリ数Entry×ウエイ数Way）保持するテーブルである。
【００３３】  なお、ＳＤＤコンフィグレーション情報ＳＤＣＦＧ、データ保持特性テーブルＲＥＴＢＬ、データ保持特性関数ＤＲＥＦＴ、製品寿命LifeTimeＭＭ、書込みデータ許容量閾値Wth1、Wth2、データ書き込み量基準値Wchk、アドレスマップＡＤＭＡＰ、キャッシュ構成情報ＣＡＣＨＥＳＴおよびＮＶＭ優先利用情報ＦＣＧＲやブートプログラムはメモリモジュールＮＶＭＭＤ０の初期設定の高速化を図るため、例えば、図２の情報処理回路ＭＡＮＡＧＥＲに直接接続される形で制御回路ＭＤＬＣＴ０内に配置することも可能である。
【００３４】  図１７Ａおよび図１７Ｂは、図１の情報処理システムにおいて、電源投入時のそれぞれ異なる初期シーケンスの一例を示す図である。
【００３５】  Ｔ１の期間（ＰｗＯｎ）で情報処理装置ＣＰＵ＿ＣＰと、メモリモジュールＮＶＭＭＤ０内の不揮発性メモリ装置ＮＶＭ００と、不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７と、制御回路ＭＤＬＣＴ０へ電源投入を行い、Ｔ２の期間（ＲＳＴ）でリセットを行う。リセットの方法は、特に限定されないが、例えばそれぞれの内蔵回路で自動的にリセットを行う方法でも、外部にリセット端子（リセット信号ＲＳＴＳＩＧ）を有し、このリセット信号によってリセット動作を行う方法でもよい。また、例えば情報処理装置ＣＰＵ＿ＣＰからインターフェース信号ＨＤＨ＿ＩＦを通じて、リセット命令を制御回路ＭＤＬＣＴ０へ入力し、リセットを行う方法でもよい。
【００３６】  Ｔ２のリセット期間（ＲＳＴ）では、情報処理装置ＣＰＵ＿ＣＰ、制御回路ＭＤＬＣＴ０が初期化される。
【００３７】  制御回路ＭＤＬＣＴ０内部の、インターフェース回路ＨＯＳＴ＿ＩＦと、バッファＢＵＦ０〜ＢＵＦ３と、書込み物理アドレステーブルＮＸＣＴＢＬ、ＮＸＮＴＢＬ、ＮＸＣＡＴＢＬ、ＮＸＮＡＴＢＬと、調停回路ＡＲＢと、情報処理回路ＭＡＮＡＧＥＲと、メモリ制御回路ＮＶ０Ｃ、ＮＶＣＴ１０〜ＮＶＣＴ７と、マップレジスタＭＡＰＲＥＧ、キャッシュテーブルＣＡＴＢＬ、レジスタＴＷＲＥＧ、レジスタＲＤＲＥＴＢＬ、レジスタＲＤＲＥＴＦ、レジスタＲＤＲＥＴ、レジスタＲＷＳＰＣ、レジスタＦＣＧＲＥＧ、レジスタＲＳＤＣＦＧ、アドレス変換テーブルＮＡＬＰＴＢＬ、ＣＡＬＰＴＢＬ、が初期化される。
【００３８】  次の、Ｔ３の期間（RegSet）では、情報処理回路ＭＡＮＡＧＥＲが調停回路ＡＲＢおよびメモリ制御回路ＮＶ０Ｃを介して、不揮発性メモリ装置ＮＶＭ００へ格納されているＳＤＤコンフィグレーション情報ＳＤＣＦＧ、データ保持特性テーブルＲＥＴＢＬ、データ保持特性関数ＤＲＥＦＴ、製品寿命LifeTimeＭＭ、書込みデータ許容量閾値Wth1、Wth2、データ書き込み量基準値Wchk、アドレスマップＡＤＭＡＰ、キャッシュ構成情報ＣＡＣＨＥＳＴおよびＮＶＭ優先利用情報ＦＣＧＲを読出し、ＳＤＤコンフィグレーション情報ＳＤＣＦＧをレジスタＲＳＤＣＦＧへ保存し、データ保持特性テーブルＲＥＴＢＬをレジスタＲＤＲＥＴＢＬへ保存し、データ保持特性関数ＦＴをレジスタＲＤＲＥＴＦへ保存し、ＮＶＭ優先利用情報ＦＣＧＲをレジスタＦＣＧＲＥＧへ保存し、製品寿命LifeTimeＭＭ、書込みデータ許容量閾値Wth1およびWth2およびデータ書き込み量基準値WchkをレジスタＴＷＲＥＧへ保存し、アドレスマップＡＤＭＡＰをマップレジスタＭＡＰＲＥＧ、キャッシュ構成情報ＣＡＣＨＥＳＴをキャッシュテーブルへ保存する。
【００３９】  さらに、情報処理回路ＭＡＮＡＧＥＲが調停回路ＡＲＢおよびメモリ制御回路ＮＶ０Ｃを介して、不揮発性メモリ装置ＮＶＭ００へ格納されているアドレス変換テーブルＮＬＰＴＢＬ内のＮＬ個の物理アドレスを読み出し、書込み物理アドレステーブルＮＸＮＴＢＬへ保存する。
【００４０】  また、情報処理回路ＭＡＮＡＧＥＲが調停回路ＡＲＢおよびメモリ制御回路ＮＶ０Ｃを介して、不揮発性メモリ装置ＮＶＭ００へ格納されているアドレス変換テーブルＣＬＰＴＢＬ内のＣＬ個の物理アドレスを読み出し、書込み物理アドレステーブルＮＸＣＴＢＬへ保存する。
【００４１】  書込み物理アドレステーブルＮＸＮＴＢＬへ登録されるＮＬ個の物理アドレスは、アドレス変換テーブルＮＬＰＴＢＬ内の消去済の物理アドレスの中で、消去閾値ＮＥＲＣｔｈ以下で消去回数の小さな値を持つ物理アドレスから優先的に登録される。
【００４２】  書込み物理アドレステーブルＮＸＣＴＢＬへ登録されるＣＬ個の物理アドレスは、アドレス変換テーブルＣＬＰＴＢＬ内の消去済の物理アドレスの中で、消去閾値ＣＥＲＣｔｈ以下で消去回数の小さな値を持つ物理アドレスから優先的に登録される。
【００４３】  書込み物理アドレステーブルＮＸＮＡＴＢＬは、アドレス変換テーブルＮＡＬＰＴＢＬへ登録されるＮＡＬ個の物理アドレスは、アドレス変換テーブルＮＡＬＰＴＢＬ内の消去済の物理アドレスの中で、消去閾値ＮＡＥＲＣｔｈ以下で消去回数の小さな値を持つ物理アドレスから優先的に登録される。
【００４４】  書込み物理アドレステーブルＮＸＣＡＴＢＬは、アドレス変換テーブルＣＡＬＰＴＢＬへ登録されるＣＡＬ個の物理アドレスは、アドレス変換テーブルＣＡＬＰＴＢＬ内の消去済の物理アドレスの中で、消去閾値ＣＡＥＲＣｔｈ以下で消去回数の小さな値を持つ物理アドレスから優先的に登録される。
【００４５】  Ｔ３の期間が終了した後のＴ４の期間（ＳｅｔＵｐ）では、情報処理装置ＣＰＵ＿ＣＰは、メモリモジュールＮＶＭＭＤ０内の不揮発性メモリ装置ＮＶＭ０へ格納されているブートプログラムを読み出し、情報処理装置ＣＰＵ＿ＣＰを立ち上げる。Ｔ４の期間が終了した後のＴ５の期間（Ｉｄｌｅ）以降では、メモリモジュールＮＶＭＭＤ０はアイドル状態となり、情報処理装置ＣＰＵ＿ＣＰからのリクエストを待つ状態となる。
【００４６】  次に、図１７Ｂに示す初期シーケンスを説明する。Ｔ１１の期間（ＰｗＯｎ）と、Ｔ２１の期間（ＲＳＴ）では、それぞれ、図１７ＡのＴ１の期間及びＴ２の期間と同様の動作を行う。Ｔ２１の期間が終了した後のＴ３１の期間（Ｈ２Ｄ）では、情報処理装置ＣＰＵ＿ＣＰは、メモリモジュールＮＶＭＭＤ０へＳＤＤコンフィグレーション情報ＳＤＣＦＧ、データ保持特性テーブルＲＥＴＢＬ、データ保持特性関数ＤＲＥＦＴ、製品寿命LifeTimeＭＭ、書込みデータ許容量閾値Wth1、Wth2、データ書き込み量基準値Wchk、アドレスマップＡＤＭＡＰ、キャッシュ構成情報ＣＡＣＨＥＳＴおよびＮＶＭ優先利用情報ＦＣＧＲを送信する。これら情報を受けた制御回路ＭＤＬＣＴ０は、これらを不揮発性メモリ装置ＮＶＭ００へ格納する。
【００４７】  Ｔ３１の期間が終了した後のＴ４１の期間（RegSet）、Ｔ５１の期間（ＳｅｔＵｐ）、Ｔ６１の期間（Ｉｄｌｅ）では、それぞれ、図１７ＡのＴ３、Ｔ４、Ｔ５の期間と同様の動作を行う。
【００４８】  このような初期シーケンスにおいて、図１７Ａに示したように、ＳＤＤコンフィグレーション情報ＳＤＣＦＧ、データ保持特性テーブルＲＥＴＢＬ、データ保持特性関数ＤＲＥＦＴ、製品寿命LifeTimeＭＭ、書込みデータ許容量閾値Wth1、Wth2、データ書き込み量基準値Wchk、アドレスマップＡＤＭＡＰ、キャッシュ構成情報ＣＡＣＨＥＳＴおよびＮＶＭ優先利用情報ＦＣＧＲがメモリモジュールＮＶＭＭＤ０（不揮発性メモリ装置ＮＶＭ００）へ予め格納されていれば、高速に電源投入時の初期シーケンスを実行することができる。一方、図１７Ｂに示したように、ＳＤＤコンフィグレーション情報ＳＤＣＦＧ、データ保持特性テーブルＲＥＴＢＬ、データ保持特性関数ＤＲＥＦＴ、製品寿命LifeTimeＭＭ、書込みデータ許容量閾値Wth1、Wth2、データ書き込み量基準値Wchk、アドレスマップＡＤＭＡＰ、キャッシュ構成情報ＣＡＣＨＥＳＴおよびＮＶＭ優先利用情報ＦＣＧＲを情報処理装置ＣＰＵ＿ＣＰからメモリモジュールＮＶＭＭＤ０へ伝送する場合には、情報処理システムの動作目的等に応じて、適宜、メモリモジュールＮＶＭＭＤ０の構成（使い方）をカスタマイズすることができる。
【００４９】  図３は、制御回路ＭＤＬＣＴ０が行う不揮発性メモリ装置ＮＶＭ００および不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７へのデータ書込み動作の一例について説明している。
【００５０】  まず、制御回路ＭＤＬＣＴ０は、レジスタWSPCへ、不揮発性メモリ装置ＮＶＭ００へ最大限に書き込むことのできるデータ量である最大書込みデータ量W00maxと、不揮発性メモリ装置ＮＶＭ００へ既に書き込んだデータの総量である総書込み済データ量をW00と、不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７へ最大限に書き込むことのできるデータ量である最大書き込みデータ量W017maxと、不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７へ既に書き込んだデータの総量である総書込み済データ量W017を格納する。
【００５１】  不揮発性メモリ装置ＮＶＭ００の最大書込みデータ量W00maxは、不揮発性メモリ装置ＮＶＭ００の全容量をDNST00とし、不揮発性メモリ装置ＮＶＭ００の単位容量当たりでのデータ書込み回数の最大値である最大書込み回数をWED00とすると、最大書込みデータ量W00max  =全容量DNST00 ×  最大書込み回数WED00  で表される。例えば、全容量DNST00を８ギガバイトで、  1バイト当たりの最大書込み回数WED00を１００万回とすると、最大書込みデータ量W00maxは ８００万ギガバイト、つまり８ペタバイトとなる。不揮発性メモリ装置ＮＶＭ００への総書込み済データ量をW00とすると不揮発性メモリ装置ＮＶＭ００へ、今後、書込むことのできるデータの総量である書込みデータ許容量W00efは、  W00ef=  最大書込みデータ量W00max -  総書込み済データ量W00となる。
【００５２】  また、不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７の最大書込みデータ量W017maxは、W017max＝全容量DNST017  ｘ  単位容量毎の書換え回数WED017で表される。
【００５３】  不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７へ総書換え済データ量をW017とすると、不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７へ、今後、書込むことのできるデータの総量である書込みデータ許容量W017efはW017ef= W017max - W017となる。
【００５４】  また、制御回路ＭＤＬＣＴ０は、レジスタTWREGへ書込みデータ許容量閾値Wth1と、Wth2を格納する。書込みデータ許容量閾値Wth1と、Wth2は、不揮発性メモリ装置ＮＶＭ００の書込みデータ許容量W00efと、不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７の書込みデータ許容量W017efとの差Diff0（＝W00ef-W017ef）と比較され、不揮発性メモリ装置ＮＶＭ００へデータを書き込むのか、あるいは、不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７へデータを書き込むのかを判断するために設けた基準値である。
【００５５】  Step1では、制御回路ＭＤＬＣＴ０は情報処理装置ＣＰＵ＿ＣＰからの書込み要求をチェックしており、書込み要求があればStep2を行い、書込み要求が無ければ書込み要求を待つ。
【００５６】  Step2では、制御回路ＭＤＬＣＴ０はレジスタTWREGから書込みデータ量閾値Wth1と、Wth2を読み出し、また、レジスタＷＳＰＣから最大書込みデータ量W00maxと、総書込み済データ量をW00と、最大書込みデータ量W017maxと、総書込み済データ量をW017を読み出す。
【００５７】  次に、制御回路ＭＤＬＣＴ０は書込みデータ許容量W00efとW017efとの差Diff0を計算し、書込みデータ許容量閾値Wth1を比較する。次に、この差Diff0が書込みデータ許容量閾値Wth1以上であれば、Step6を行い、書込みデータ許容量閾値Wth1未満であればStep3を行う。
【００５８】  Step6では、制御回路ＭＤＬＣＴ０は情報処理装置ＣＰＵ＿ＣＰからの書込み要求に対して、そのデータを不揮発性メモリ装置ＮＶＭ００への書込みを行う。さらに、制御回路ＭＤＬＣＴ０は、この際に、不揮発性メモリ装置ＮＶＭ００へ書き込んだデータ量Wsize0から、これまでに書き換えた総書込み済データ量W00を再計算（W00=W00 +Wsize0）し、その値をレジスタWSPCへ格納する。
【００５９】  Step3では、書込みデータ許容量W00efとW017efとの差Diff0が、書込みデータ許容量閾値Wth2以上で且つ書込みデータ許容量閾値Wth1より小さい場合は、Step7を行い、それ以外であればStep4を行う。
【００６０】  Step7ではNN回の書き込み要求ごとにｍｍ回だけ、不揮発性メモリ装置ＮＶＭ００へ書込みを行い、NN回の書き込み要求ごとにNN-ｍｍ回の書込み要求に対して不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７へ書込みを行う。次に、制御回路ＭＤＬＣＴ０は、この際に、不揮発性メモリ装置ＮＶＭ００へ書き込んだデータ量Wsize1から、これまでに発生した不揮発性メモリ装置ＮＶＭ００への総書込み済データ量W00を再計算（W00=W00 +Wsize1）し、その値をレジスタWSPCへ格納する。
【００６１】  さらに、制御回路ＭＤＬＣＴ０は、この際に、不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７へ書き込んだデータ量Wsize2から、これまでに発生した不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７への総書込み済データ量W017を再計算（W017=W017 +Wsize2）し、その値をレジスタWSPCへ格納する。
【００６２】  Step4では、書込みデータ許容量W00efとW017efとの差Diff0が、0以上で且つ書込みデータ許容量閾値Wth2より小さい場合は、Step8を行い、それ以外であればStep9を行う。
【００６３】  Step8では情報処理装置ＣＰＵ＿ＣＰからの書込み要求に対して、不揮発性メモリ装置ＮＶＭ０１〜０７へ書込みを行う。さらに、制御回路ＭＤＬＣＴ０は、この際に、不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７へ書き込んだデータ量Wsize3から、これまでに発生した不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７への総書込み済データ量W017を再計算（W017=W017 +Wsize3）し、その値をレジスタWSPCへ格納する。
【００６４】  Step9では情報処理装置ＣＰＵ＿ＣＰからの書込み要求に対して、常に不揮発性メモリ装置ＮＶＭ０１〜０７へ書込みを行う。さらに、制御回路ＭＤＬＣＴ０は、この際に、不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７へ書き込んだデータ量Wsize4から、これまでに発生した不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７への総書込み済データ量W017を再計算（W017=W017 +Wsize4）し、その値をレジスタWSPCへ格納する。
【００６５】  Ｓｔｅｐ６およびＳｔｅｐ７での、不揮発性メモリ装置ＮＶＭ００へのデータ書込みは、書込み物理アドレステーブルＮＸＣＴＢＬへ登録されているＣＬ個の物理アドレスＣＰＡＤの中から、書き込み優先順位の高い物理アドレスＣＰＡＤが選択され、その物理アドレスＣＰＡＤへデータを書き込む。
【００６６】  さらに、書込み物理アドレステーブルＮＸＣＴＢＬおよびＮＸＣＡＴＢＬ、アドレス変換テーブルＣＬＰＴＢＬおよびＣＡＬＰＴＢＬが更新される。
【００６７】  Ｓｔｅｐ８およびＳｔｅｐ９での、不揮発性メモリ装置ＮＶＭ１０〜１７へのデータ書込みは、書込み物理アドレステーブルＮＸＮＴＢＬへ登録されているＮＬ個の物理アドレスＰＡＤの中から、書き込み優先順位の高い物理アドレスＰＡＤが選択され、その物理アドレスＰＡＤへデータを書き込む。
【００６８】  さらに、書込み物理アドレステーブルＮＸＮＴＢＬおよびＮＸＮＡＴＢＬ、アドレス変換テーブルＮＬＰＴＢＬおよびＮＡＬＰＴＢＬ、書込み物理アドレステーブルＮＸＣＴＢＬおよびＮＸＣＡＴＢＬ、アドレス変換テーブルＣＬＰＴＢＬおよびＣＡＬＰＴＢＬが更新される。
【００６９】  また、書込みデータ許容量閾値Wth1およびWth2、最大書込みデータ量W00maxおよびW017max、並びに、図３のStep7で説明したNN回、ｍｍ回の値はプログラム可能であり、不揮発性メモリ装置の特性、メモリモジュールＮＶＭＤ０および情報処理システムが要求される機能、性能及び信頼性のレベルに合わせて、それらの値を設定すると良い。
【００７０】  以上説明したデータ書込み動作によって、不揮発性メモリ装置ＮＶＭ００とＮＶＭ１０−１７のそれぞれの最大書込みデータ量を超えないように、最大限に不揮発性メモリ装置ＮＶＭ００をキャッシュメモリとして活用できるため、高信頼かつ高速なメモリモジュールＮＶＭＭＤ０および情報処理システムを実現できる。さらに、書込みデータ許容量閾値Wth1およびWth2、最大書込みデータ量W00maxおよびW017maxはプログラム可能であり、不揮発性メモリ装置の特性、メモリモジュールＮＶＭＤ０および情報処理システムが要求される機能、性能及び信頼性のレベルに合わせて柔軟に対応することができる。
【００７１】  図４は、制御回路ＭＤＬＣＴ０が行う不揮発性メモリ装置ＮＶＭ００および不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７へのデータ書込み動作の一例について説明している。
【００７２】  まず、制御回路ＭＤＬＣＴ０は、レジスタTWREGへ情報処理装置ＣＰＵ＿ＣＰからの一回当たりの書き込み要求に対するデータ書き込み量基準値Wchkを格納する。
【００７３】  データ書き込み量基準値Wchkは、情報処理装置ＣＰＵ＿ＣＰからの一回当たりの書き込み要求に対するデータ書き込み量WRTsizeと比較され、情報処理装置ＣＰＵ＿ＣＰからの書込みデータを不揮発性メモリ装置ＮＶＭ００へ書き込むのか、あるいは、不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７へ書き込むのかを判断するために設けた基準値である。
【００７４】  Step1では、制御回路ＭＤＬＣＴ０は情報処理装置ＣＰＵ＿ＣＰからの書込み要求をチェックしており、書込み要求が発生すれば、Step2を行い、書込み要求が発生しなければ、書込み要求を待つ。Step2では制御回路ＭＤＬＣＴ０はレジスタTWREGからデータ書込み量基準値Wchkを読み出す。
【００７５】  次に、制御回路ＭＤＬＣＴ０は情報処理装置ＣＰＵ＿ＣＰからの書込み要求に対するデータ書込み量WRTsizeとデータ書込み量基準値Wchkを比較し、データ書込み量WRTsizeがデータ書込み量基準値Wchk以下であればStep3を行い、それ以外であればStep4を行う。
【００７６】  Step3では、制御回路ＭＤＬＣＴ０は情報処理装置ＣＰＵ＿ＣＰからの書込み要求に対して、不揮発性メモリ装置ＮＶＭ００への書込みを行う。さらに、制御回路ＭＤＬＣＴ０は、この際に、不揮発性メモリ装置ＮＶＭ００へ書き込んだデータ書込み量WRTsizeから、これまでに書き換えた総書込み済データ量W00を再計算（W00=W00 +WRTsize）し、その値をレジスタWSPCへ格納する。
【００７７】  不揮発性メモリ装置ＮＶＭ００へのデータ書込みは、書込み物理アドレステーブルＮＸＣＴＢＬへ登録されているＣＬ個の物理アドレスＣＰＡＤの中から、書き込み優先順位の高い物理アドレスＣＰＡＤが選択され、その物理アドレスＣＰＡＤへデータを書き込む。
【００７８】  さらに、書込み物理アドレステーブルＮＸＣＴＢＬおよびＮＸＣＡＴＢＬ、アドレス変換テーブルＣＬＰＴＢＬおよびＣＡＬＰＴＢＬが更新される。
【００７９】  Step4では情報処理装置ＣＰＵ＿ＣＰからの書込み要求に対して、不揮発性メモリ装置ＮＶＭ０１〜０７へ書込みを行う。
【００８０】  不揮発性メモリ装置ＮＶＭ１０〜１７へのデータ書込みは、書込み物理アドレステーブルＮＸＮＴＢＬへ登録されているＮＬ個の物理アドレスＰＡＤの中から、書き込み優先順位の高い物理アドレスＰＡＤが選択され、その物理アドレスＰＡＤへデータを書き込む。さらに、書込み物理アドレステーブルＮＸＮＴＢＬおよびＮＸＮＡＴＢＬ、アドレス変換テーブルＮＬＰＴＢＬおよびＮＡＬＰＴＢＬ、書込み物理アドレステーブルＮＸＣＴＢＬおよびＮＸＣＡＴＢＬ、アドレス変換テーブルＣＬＰＴＢＬおよびＣＡＬＰＴＢＬが更新される。
【００８１】  さらに、制御回路ＭＤＬＣＴ０は、この際に、不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７へ書き込んだデータ量WRTsizeから、これまでに発生した不揮発性メモリ装置ＮＶＭ０１〜ＮＶＭ１７への総書込み済データ量W017を再計算（W017=W017 +  WRTsize）し、その値をレジスタWSPCへ格納する。
【００８２】  また、データ書込み量基準値Wchkはプログラム可能であり、メモリモジュールＮＶＭＤ０への書込みアクセスの特性に合わせて、その値を設定すると良い。
【００８３】  以上説明したように、メモリモジュールＮＶＭＭＤ０が情報処理装置ＣＰＵ＿ＣＰからの一回当たりの書き込み要求に対するデータ書き込み量をチェックしており、そのデータ書き込み量がデータ書込み量基準値Wchk以下であれば、キャッシュメモリとして動作する不揮発性メモリ装置ＮＶＭ００へデータを書込み、データ書込み量基準値Wchkより大きければＮＶＭ１０〜１７へ書き込む。
【００８４】  これにより、一回当たりの書き込み要求に対するデータ書き込み量が小さなランダムアクセスはキャッシュメモリとして動作する不揮発性メモリ装置ＮＶＭ００へ書込むことで高速化を実現できる。さらに、一回当たりの書き込み要求に対するデータ書き込み量が大きなシーケンシャルアクセスはＮＶＭ１０〜１７へ書き込むことでデータ転送速度を向上することができる。
【００８５】  また、データ書込み量基準値Wchkはプログラム可能であり、情報処理装置ＣＰＵ＿ＣＰにて実行するアプリケーションがメモリモジュールＮＶＭＤ０へ要求するアクセス特性に合わせて柔軟に対応することができる。
【００８６】  図５Ａは、制御回路ＭＤＬＣＴ０が行う不揮発性メモリ装置ＮＶＭ００および不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７へのデータ書込み動作の一例について説明している。
【００８７】  情報処理装置ＣＰＵ＿ＣＰから制御回路ＭＤＬＣＴ０へ入力される書込み要求には、論理アドレス（ＬＡＤ）、優先NVM情報（PRNV）、データ書込み命令（ＷＲＴ）、セクタカウント（ＳＥＣ）、および書込みデータ（ＷＤＡＴＡ）などが含まれる。
【００８８】  また、優先NVM情報（PRNV）には、特定の不揮発性メモリグループを特定の機能により優先的に利用するための優先利用フラグNVONと、NVMグループ番号NVGRPが含まれる。
【００８９】  不揮発性メモリＮＶＭ００へ保存されているＮＶＭ優先利用情報ＦＣＧＲには、優先利用フラグNVON値と、この番号に対応する不揮発性メモリの機能NVFunctionが格納され、さらに、NVMグループ番号NVGRPと、この番号に対応する不揮発性メモリチップ番号NVMNoが含まれる。
【００９０】  図１７にて示すように電源投入時の初期シーケンスにて、不揮発性メモリＮＶＭ００から読み出されたＮＶＭ優先利用情報ＦＣＧＲはレジスタＦＣＧＲへ格納される。
【００９１】  図５ＢにはこのレジスタFCGRでの設定値の一例を示す。優先利用フラグNVONが０の場合は特定の不揮発性メモリグループを特定の機能により優先的に利用しないことを示し、１の場合は特定の不揮発性メモリグループをキャッシュメモリとして利用すること示し、２の場合は特定の不揮発性メモリグループをバッファとして利用すること示し、３の場合は特定の不揮発性メモリグループをストレージとして利用すること示す。
【００９２】  また、NVMグループ番号NVGRP値1の場合、このNVMグループ番号NVGRP値１に対応している不揮発性メモリチップはNVM00であり、NVMグループ番号NVGRP値２の場合、このNVMグループ番号NVGRP値２に対応している不揮発性メモリチップはNVM10〜11であり、NVMグループ番号NVGRP値3の場合、このNVMグループ番号NVGRP値3に対応している不揮発性メモリチップはNVM10〜17であり、NVMグループ番号NVGRP値０の場合、このNVMグループ番号NVGRP値０に対応している不揮発性メモリチップは特に指定しない。
【００９３】  情報処理装置ＣＰＵ＿ＣＰから制御回路ＭＤＬＣＴ０へ入力される書込み要求に含まれる優先NVM情報（PRNV）の中で、優先利用フラグNVON値が０の場合は、NVMグループ番号NVGRP値に関わらず、特定の不揮発性メモリグループを特定の機能により優先的に利用しない。
【００９４】  Step1では、制御回路ＭＤＬＣＴ０は情報処理装置ＣＰＵ＿ＣＰからの書込み要求をチェックしており、書込み要求が発生すれば、優先NVM情報（PRNV）に含まれる優先利用フラグNVON値と、NVMグループ番号NVGRP値をチェックし、レジスタＦＣＧＲを読み出した後、Step2を行い、書込み要求が発生しなければ、書込み要求を待つ。
【００９５】  Step2では制御回路ＭＤＬＣＴ０は優先利用フラグＮＶＯＮ値が”１”の場合は、Step5を行い、それ以外の場合は、Step3を行う。
【００９６】  Step5では、制御回路ＭＤＬＣＴ０は読み出したレジスタＦＣＧＲ内の優先利用フラグNVON値およびNVMグループ番号NVGRP値から、NVMグループ番号NVGRP値が1、2および3の場合、これらNVMグループ番号NVGRP値に割り当てられている不揮発性メモリ装置を特定し、その特定された不揮発性メモリ装置をキャッシュメモリとして扱い、データを書込む。また、NVMグループ番号NVGRP値が０の場合、制御回路ＭＤＬＣＴ０は、いずれの不揮発性メモリへの書き込みも行わず、エラー情報を情報処理装置ＣＰＵ＿ＣＰへ出力する。
【００９７】  図５Ｂに示したレジスタＦＣＧＲ値では、優先NVM情報（PRNV）に含まれるNVMグループ番号NVGRP値が１であれば、NMV00をキャッシュメモリとして扱い、データを書き込み、NVMグループ番号NVGRP値が２であれば、NMV10〜11をキャッシュメモリとして扱い、データを書き込み、NVMグループ番号NVGRP値が３であれば、NMV10〜17をキャッシュメモリとして扱い、データを書き込む。
【００９８】  Step3では制御回路ＭＤＬＣＴ０は優先利用フラグＮＶＯＮ値が”２”の場合は、Step6を行い、それ以外の場合は、Step4を行う。
【００９９】  Step6では、制御回路ＭＤＬＣＴ０は読み出したレジスタＦＣＧＲ内の優先利用フラグNVON値およびNVMグループ番号NVGRP値から、NVMグループ番号NVGRP値が1、2および3の場合、これらNVMグループ番号NVGRP値に割り当てられている不揮発性メモリ装置を特定し、その特定された不揮発性メモリ装置をバッファメモリとして扱い、データを書込む。また、NVMグループ番号NVGRP値が０の場合、制御回路ＭＤＬＣＴ０は、いずれの不揮発性メモリへの書き込みも行わず、エラー情報を情報処理装置ＣＰＵ＿ＣＰへ出力する。
【０１００】  図５Ｂに示したレジスタＦＣＧＲ値では、優先NVM情報（PRNV）に含まれるNVMグループ番号NVGRP値が１であれば、NMV00をバッファメモリとして扱い、データを書き込み、NVMグループ番号NVGRP値が２であれば、NMV10〜11をバッファメモリとして扱い、データを書き込み、NVMグループ番号NVGRP値が３であれば、NMV10〜17をバッファメモリとして扱い、データを書き込む。
【０１０１】  Step4では制御回路ＭＤＬＣＴ０は優先利用フラグＮＶＯＮ値が”３”の場合は、Step7を行い、それ以外の場合は、Step8を行う。
【０１０２】  Step7では、制御回路ＭＤＬＣＴ０は読み出したレジスタＦＣＧＲ内の優先利用フラグNVON値およびNVMグループ番号NVGRP値から、NVMグループ番号NVGRP値が1、2および3の場合、これらNVMグループ番号NVGRP値に割り当てられている不揮発性メモリ装置を特定し、その特定された不揮発性メモリ装置をストレージとして扱い、データを書込む。また、NVMグループ番号NVGRP値が０の場合、制御回路ＭＤＬＣＴ０は、いずれの不揮発性メモリへの書き込みも行わず、エラー情報を情報処理装置ＣＰＵ＿ＣＰへ出力する。
【０１０３】  図５Ｂに示したレジスタＦＣＧＲ値では、優先NVM情報（PRNV）に含まれるNVMグループ番号NVGRP値が１であれば、NMV00をストレージとして扱い、データを書き込み、NVMグループ番号NVGRP値が２であれば、NMV10〜11をストレージとして扱い、データを書き込み、NVMグループ番号NVGRP値が３であれば、NMV10〜17をストレージとして扱い、データを書き込む。
【０１０４】  Step8では、優先的に書き込みを行う不揮発性メモリ装置を特定せず、不揮発性メモリ装置へ書込みを行う。
【０１０５】  不揮発性メモリ装置ＮＶＭ００へデータが書き込まれた場合は、書込み物理アドレステーブルＮＸＣＴＢＬへ登録されているＣＬ個の物理アドレスＣＰＡＤの中から、書き込み優先順位の高い物理アドレスＣＰＡＤが選択され、その物理アドレスＣＰＡＤへデータを書き込む。さらに、書込み物理アドレステーブルＮＸＣＴＢＬおよびＮＸＣＡＴＢＬ、アドレス変換テーブルＣＬＰＴＢＬおよびＣＡＬＰＴＢＬが更新される。
【０１０６】  また、不揮発性メモリ装置ＮＶＭ１０〜１７へデータが書込まれた場合は、書込み物理アドレステーブルＮＸＮＴＢＬへ登録されているＮＬ個の物理アドレスＰＡＤの中から、書き込み優先順位の高い物理アドレスＰＡＤが選択され、その物理アドレスＰＡＤへデータを書き込む。さらに、書込み物理アドレステーブルＮＸＮＴＢＬおよびＮＸＮＡＴＢＬ、アドレス変換テーブルＮＬＰＴＢＬおよびＮＡＬＰＴＢＬ、書込み物理アドレステーブルＮＸＣＴＢＬおよびＮＸＣＡＴＢＬ、アドレス変換テーブルＣＬＰＴＢＬおよびＣＡＬＰＴＢＬが更新される。
【０１０７】  以上説明したように、ＯＳおよびアプリケーションを実行する情報処理装置ＣＰＵ＿ＣＰは、メモリモジュールＮＶＭＤ０へ要求するリードおよびライトのアクセス特性を知っており、情報処理装置ＣＰＵ＿ＣＰからメモリモジュールＮＶＭＤ０内の不揮発性メモリ装置ＮＶＭ００および不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７の利用方法を指示し、メモリモジュールＮＶＭＤ０を動作させることができるため高信頼かつ高速な情報処理システムを実現できる。
【０１０８】  図６ＡおよびＢは、不揮発性メモリのデータ保持時間を考慮した場合の書込み動作の一例を示している。図６Ａは、制御回路ＭＤＬＣＴ０が行う不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７へのデータ書込み動作の一例について説明している。
【０１０９】  不揮発性メモリ(特にフラッシュメモリのように破壊書き込み方式のメモリ)では、消去回数(または書き込み回数)が増加するほどデータ保持時間が低下していく場合がある。
【０１１０】  データ保持時間は、メモリへ書き込んだデータが、破壊されずに保っていられる時間である。特に、NANDフラッシュの場合、書込みや消去を繰り返すと、メモリセルを形成している酸化膜が壊れ、酸化膜の上部に形成されたフローティングゲートへ保持された電子がリークしデータが保持できなくなることが知られている。データ保持時間は、特に限定しないが、例えば、書き込み回数が少ない場合には１０年等である。このデータ保持時間が消去回数(または書き込み回数)にどの程度依存するかは、メモリモジュールＮＶＭＤ０へどのような不揮発性メモリを利用するかによって変化する。例えば、不揮発性メモリとしてフラッシュメモリを用いるか、あるいは相変化メモリを用いるかや、フラッシュメモリを用いる場合でもどのようなメモリセル構造を用いるかなどによって異なり得る。
【０１１１】  メモリモジュールＮＶＭＭＤ０には製品寿命LifeTimeＭＭがあり、この製品寿命LifeTimeＭＭとは、ある使用条件下で、メモリモジュールＮＶＭＭＤ０が初めて使用可能な状態となって、メモリモジュールＮＶＭＭＤ０の機能および性能を保証できる期間をいう。使用条件としては、温度範囲、湿度範囲、電源電圧範囲などがある。
【０１１２】  つまり、ある使用条件下で、メモリモジュールＮＶＭＭＤ０の機能および性能を、「メモリモジュールＮＶＭＭＤ０が初めて使用可能な状態となってからＭ日間は、データの読出しや書込みが可能である」とした際、製品寿命LifeTimeＭＭはＭ日間となる。
【０１１３】  この製品寿命LifeTimeＭＭは、メモリモジュールＮＶＭＭＤ０が利用されるシステムに合わせて、最適に決めることができる。
【０１１４】  Step1では、制御回路ＭＤＬＣＴ０は情報処理装置ＣＰＵ＿ＣＰからの書込み要求をチェックしており、書込み要求が発生すれば、Step2を行い、書込み要求が発生しなければ、書込み要求を待つ。
【０１１５】  Step2では、制御回路ＭＤＬＣＴ０は、不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７のブロック消去回数ＥＲＳ１７の最大値を求める。Step3では、このブロック消去回数の最大値から、データ保持時間ＴＲｅｔ１０１７を計算する。データ保持時間の求め方は、図８で説明する。
【０１１６】  Step4では、情報処理装置（プロセッサ）ＣＰＵ＿ＣＰがメモリモジュールＮＶＭＭＤ０が初めて利用可能な状態となってから現在までに経過した時間である製品利用時間Ｐｔｉｍｅと、Step3にて求めたデータ保持時間ＴＲｅｔ１０１７との和を、不揮発性メモリ最大寿命MaxLifeTime１７として求める。
【０１１７】  不揮発性メモリ最大寿命MaxLifeTime１７は、メモリモジュールＮＶＭＭＤ０が初めて利用可能な状態となってから、不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７へ書き込まれたデータが壊れないで保持している最大期間を示す。
【０１１８】  次のStep5では、メモリモジュールＮＶＭＭＤ０の製品寿命LifeTimeＭＭと、不揮発性メモリ最大寿命MaxLifeTime１７を比較し、不揮発性メモリ最大寿命MaxLifeTime１７が製品寿命LifeTimeＭＭ以上であれば、不揮発性メモリＮＶＭ１０〜ＮＶＭ１７へデータを書込む（Step6）。不揮発性メモリ最大寿命MaxLifeTime１７が製品寿命LifeTimeＭＭより短ければ、再度、Step4を行う。
【０１１９】  不揮発性メモリ装置ＮＶＭ１０〜１７へデータが書込まれた場合は、書込み物理アドレステーブルＮＸＮＴＢＬへ登録されているＮＬ個の物理アドレスＰＡＤの中から、書き込み優先順位の高い物理アドレスＰＡＤが選択され、その物理アドレスＰＡＤへデータを書き込む。さらに、書込み物理アドレステーブルＮＸＮＴＢＬおよびＮＸＮＡＴＢＬ、アドレス変換テーブルＮＬＰＴＢＬおよびＮＡＬＰＴＢＬ、書込み物理アドレステーブルＮＸＣＴＢＬおよびＮＸＣＡＴＢＬ、アドレス変換テーブルＣＬＰＴＢＬおよびＣＡＬＰＴＢＬが更新される。
【０１２０】  図６Ｂは、制御回路ＭＤＬＣＴ０が行う不揮発性メモリ装置ＮＶＭ００へのデータ書込み動作の一例について説明している。不揮発性メモリ装置ＮＶＭ００には、アドレス変換テーブルＮＬＰＴＢＬおよびＣＬＰＴＢＬが格納されており、不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７へのデータ書込みが生じた際には、アドレス変換テーブルＮＬＰＴＢＬおよびＣＬＰＴＢＬを更新するために、不揮発性メモリ装置ＮＶＭ００へデータ書込みが生じる。また、不揮発性メモリ装置ＮＶＭ００が不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７のライトバッファやキャッシュメモリとして動作する場合は、書込み要求に含まれるデータを不揮発性メモリ装置ＮＶＭ００へ書込み、その後、アドレス変換テーブルＮＬＰＴＢＬおよびＣＬＰＴＢＬを更新するために、不揮発性メモリ装置ＮＶＭ００へデータ書込みが生じる。
【０１２１】  Step1では、制御回路ＭＤＬＣＴ０は情報処理装置ＣＰＵ＿ＣＰからの書込み要求をチェックしており、書込み要求が発生すれば、Step2を行い、書込み要求が発生しなければ、書込み要求を待つ。
【０１２２】  Step2では、制御回路ＭＤＬＣＴ０は、不揮発性メモリ装置ＮＶＭ００のブロック消去回数の最大値ＥＲＳ００を求める。Step3では、このブロック消去回数の最大値から、データ保持時間ＴＲｅｔ１０１７を計算する。データ保持時間の求め方は、図８で説明する。
【０１２３】  Step4では、情報処理装置（プロセッサ）ＣＰＵ＿ＣＰがメモリモジュールＮＶＭＭＤ０が初めて利用可能な状態となってから現在までに経過した時間である製品利用時間Ｐｔｉｍｅと、Step3にて求めたデータ保持時間ＴＲｅｔ００との和を、不揮発性メモリ最大寿命MaxLifeTime００として求める。
【０１２４】  不揮発性メモリ最大寿命MaxLifeTime００は、メモリモジュールＮＶＭＭＤ０が初めて利用可能な状態となってから、不揮発性メモリ装置ＮＶＭ００へ書き込まれたデータが壊れないで保持している最大期間を示す。
【０１２５】  次のStep5では、メモリモジュールＮＶＭＭＤ０の製品寿命LifeTimeＭＭと、不揮発性メモリ最大寿命MaxLifeTim００eを比較し、不揮発性メモリ最大寿命MaxLifeTime００が製品寿命LifeTimeＭＭ以上であれば、不揮発性メモリＮＶＭ００へ、書込み要求に含まれるデータの書き込みや、アドレス変換テーブルＮＬＰＴＢＬおよびＣＬＰＴＢＬを更新するための書込みを行う（Step6）。不揮発性メモリ最大寿命MaxLifeTime００が製品寿命LifeTimeＭＭより短ければ、再度、Step4を行う。
【０１２６】  不揮発性メモリ装置ＮＶＭ００へデータが書き込まれた場合は、書込み物理アドレステーブルＮＸＣＴＢＬへ登録されているＣＬ個の物理アドレスＣＰＡＤの中から、書き込み優先順位の高い物理アドレスＣＰＡＤが選択され、その物理アドレスＣＰＡＤへデータを書き込む。さらに、書込み物理アドレステーブルＮＸＣＴＢＬおよびＮＸＣＡＴＢＬ、アドレス変換テーブルＣＬＰＴＢＬおよびＣＡＬＰＴＢＬが更新される。
【０１２７】  以上説明したように、不揮発性メモリのデータ保持時間を考慮し、不揮発性メモリへデータを書込むことにより、メモリモジュールＮＶＭＭＤ０の製品寿命を常に保証した信頼性の高いメモリモジュールＮＶＭＭＤ０を提供できる。
【０１２８】  図７は、制御回路ＭＤＬＣＴ０が行う不揮発性メモリ装置ＮＶＭ００および不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７へのデータ書込み動作の一例について説明している。
【０１２９】  Step1では、制御回路ＭＤＬＣＴ０は情報処理装置ＣＰＵ＿ＣＰからの書込み要求をチェックしており、書込み要求が発生すれば、Step2を行い、書込み要求が発生しなければ、書込み要求を待つ。
【０１３０】  Step2では、制御回路ＭＤＬＣＴ０は、不揮発性メモリ装置ＮＶＭ００のブロック消去回数の最大値ＥＲＳ００と不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７のブロック消去回数の最大値ＥＲＳ１０１７を求める。
【０１３１】  Step3では、ブロック消去回数の最大値ＥＲＳ００から、不揮発性メモリ装置ＮＶＭ００のデータ保持時間ＴＲｅｔ００を計算する。さらに、ブロック消去回数の最大値ＥＲＳ１０１７から、不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７のデータ保持時間ＴＲｅｔ１７を計算する。データ保持時間の求め方は、図８で説明する。
【０１３２】  Step4では、データ保持時間ＴＲｅｔ００とデータ保持時間ＴＲｅｔ１７を比較する。データ保持時間ＴＲｅｔ００が、データ保持時間ＴＲｅｔ１７以上であればStep5を行い、それ以外であればStep9を行う。
【０１３３】  Step5では、情報処理装置（プロセッサ）ＣＰＵ＿ＣＰがメモリモジュールＮＶＭＭＤ０が初めて利用可能な状態となってから現在までに経過した時間である製品利用時間Ｐｔｉｍｅと、Step3にて求めたデータ保持時間ＴＲｅｔ００との和を、不揮発性メモリ最大寿命MaxLifeTimeとして求める。
【０１３４】  この時、不揮発性メモリ最大寿命MaxLifeTimeは、メモリモジュールＮＶＭＭＤ０が初めて利用可能な状態となってから、不揮発性メモリ装置ＮＶＭ００へ書き込まれたデータが壊れないで保持されている最大期間を示す。
【０１３５】  次のStep7では、メモリモジュールＮＶＭＭＤ０の製品寿命LifeTimeＭＭと不揮発性メモリ最大寿命MaxLifeTimeを比較し、不揮発性メモリ最大寿命MaxLifeTimeが製品寿命LifeTimeＭＭ以上であれば、不揮発性メモリＮＶＭ００へデータを書込む（Step7）。不揮発性メモリ最大寿命MaxLifeTimeが製品寿命LifeTimeＭＭより短ければ、再度、Step5を行う。
【０１３６】  Step8では、情報処理装置（プロセッサ）ＣＰＵ＿ＣＰがメモリモジュールＮＶＭＭＤ０が初めて利用可能な状態となってから現在までに経過した時間である製品利用時間Ｐｔｉｍｅと、Step3にて求めたデータ保持時間ＴＲｅｔ１７との和を、不揮発性メモリ最大寿命MaxLifeTimeとして求める。
【０１３７】  このとき不揮発性メモリ最大寿命MaxLifeTime１７は、メモリモジュールＮＶＭＭＤ０が初めて利用可能な状態となってから、不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７へ書き込まれたデータが壊れないで保持している最大期間を示す。
【０１３８】  次のStep9では、メモリモジュールＮＶＭＭＤ０の製品寿命LifeTimeＭＭと不揮発性メモリ最大寿命MaxLifeTimeを比較し、不揮発性メモリ最大寿命MaxLifeTimeが寿命LifeTimeＭＭ以上であれば、不揮発性メモリＮＶＭ１０〜ＮＶＭ１７へデータを書込む（Step10）。不揮発性メモリ最大寿命MaxLifeTimeが寿命LifeTimeＭＭより短ければ、再度、Step8を行う。
【０１３９】  不揮発性メモリ装置ＮＶＭ００へデータが書き込まれた場合は、書込み物理アドレステーブルＮＸＣＴＢＬへ登録されているＣＬ個の物理アドレスＣＰＡＤの中から、書き込み優先順位の高い物理アドレスＣＰＡＤが選択され、その物理アドレスＣＰＡＤへデータを書き込む。さらに、書込み物理アドレステーブルＮＸＣＴＢＬおよびＮＸＣＡＴＢＬ、アドレス変換テーブルＣＬＰＴＢＬおよびＣＡＬＰＴＢＬが更新される。
【０１４０】  不揮発性メモリ装置ＮＶＭ１０〜１７へデータが書込まれた場合は、書込み物理アドレステーブルＮＸＮＴＢＬへ登録されているＮＬ個の物理アドレスＰＡＤの中から、書き込み優先順位の高い物理アドレスＰＡＤが選択され、その物理アドレスＰＡＤへデータを書き込む。さらに、書込み物理アドレステーブルＮＸＮＴＢＬおよびＮＸＮＡＴＢＬ、アドレス変換テーブルＮＬＰＴＢＬおよびＮＡＬＰＴＢＬ、書込み物理アドレステーブルＮＸＣＴＢＬおよびＮＸＣＡＴＢＬ、アドレス変換テーブルＣＬＰＴＢＬおよびＣＡＬＰＴＢＬが更新される。
【０１４１】  以上説明したように、不揮発性メモリＮＶＭ００と不揮発性メモリＮＶＭ１０〜１７のデータ保持時間比較し、不揮発性メモリＮＶＭ００あるいはＮＶＭ１０〜１７へデータを書込むことにより、メモリモジュールＮＶＭＭＤ０の製品寿命を常に保証しながら、最大限に不揮発性メモリ装置ＮＶＭ００をキャッシュメモリとして活用できるため、高信頼かつ高速なメモリモジュールＮＶＭＭＤ０および情報処理システムを実現できる。
【０１４２】  《データ保持時間の概要》図８Ａは、メモリモジュールＮＶＭＭＤ０内の不揮発性メモリ装置ＮＶＭ００とＮＶＭ１０〜１７のデータ保持特性の一例を示す説明図である。図８Ａには、物理ブロックの消去回数（あるいは書き込み回数）（ｎＥＲＳ）とデータ保持時間（データ保持時間）Ｒｅｔの依存関係（関数）が示されている。図８Ａにおいて、ＲｅｔＮＶ００は不揮発性メモリＮＶＭ００における依存関係（関数）を、ＲｅｔＮＶ１０３は不揮発性メモリＮＶＭ１０〜１３における依存関係（関数）を、ＲｅｔＮＶ１４７は不揮発性メモリＮＶＭ１４〜１７における依存関係（関数）を表している。
【０１４３】  不揮発性メモリＮＶＭ００とＮＶＭ１０〜１７のそれぞれは、自身の消去回数（あるいは書き込み回数）とデータ保持時間の依存関係（関数）を数式として予め保有しており、メモリモジュールＮＶＭＭＤ０の電源投入直後に、その数式をレジスタＤＲＥＴＦへ転送する。
【０１４４】  制御回路ＭＤＬＣＴ０内の情報処理回路ＭＡＮＡＧＥＲは、不揮発性メモリＮＶＭ００内の各物理ブロックにおける消去回数の最大値ＥＲＳ００ｍｘと、不揮発性メモリＮＶＭ０〜ＮＶＭ７内の各物理ブロックにおける消去回数の最大値ＥＲＳ１７ｍｘを求める。そして、ＭＡＮＡＧＥＲは、この最大値ＥＲＳ００ｍｘ最大値が変化する毎に、不揮発性メモリＮＶＭ００に関する数式をレジスタＤＲＥＴＦから読み出し、当該消去回数の最大値（ｎＥＲＳ）を引数としてデータ保持時間（データ保持時間）ＴＲｅｔ００を計算し、それをレジスタＤＲＥＴへ格納する。さらに、ＭＡＮＡＧＥＲは、この最大値ＥＲＳ１７ｍｘ最大値が変化する毎に、不揮発性メモリＮＶＭ１０〜１７に関する数式をレジスタＤＲＥＴＦから読み出し、当該消去回数の最大値（ｎＥＲＳ）を引数としてデータ保持時間（データ保持時間）ＴＲｅｔ１７を計算し、それをレジスタＤＲＥＴへ格納する。
【０１４５】  図８Ｂは、図８Ａのデータ保持特性をテーブル上で規定した一例を示す図である。図８Ａでは予め依存関係（関数）を数式で規定することでデータ保持時間Ｒｅｔの算出を行ったが、その代わりに、当該数式を離散的に表す図８ＢのようなテーブルＲｅｔＴＢＬを予め規定することでデータ保持時間Ｒｅｔの算出を行うことも可能である。図８Ｂには、不揮発性メモリ装置ＮＶＭ００が保有しているテーブルＲｅｔ００ＴＢＬと、不揮発性メモリ装置ＮＶＭ１０〜１７が保有しているテーブルＲｅｔ１７ＴＢＬとが示されている。
【０１４６】  当該Ｒｅｔ００ＴＢＬおよびＲｅｔ１７ＴＢＬには、物理ブロックの消去回数（あるいは書き込み回数）（ｎＥＲＳ）とデータ保持時間Ｒｅｔの依存関係（関数）が規定されている。
【０１４７】  不揮発性メモリＮＶＭ００とＮＶＭ１０〜１７のそれぞれは、自身の特性に対応するテーブルＲｅｔＴＢＬを自身に予め保有しており、メモリモジュールＮＶＭＭＤ０の電源投入直後に、当該テーブルＲｅｔＴＢＬをレジスタＤＲＥＴＢＬへ転送する。
【０１４８】  制御回路ＭＤＬＣＴ０内の情報処理回路ＭＡＮＡＧＥＲは、不揮発性メモリＮＶＭ００内の各物理ブロックにおける消去回数の最大値ＥＲＳ００ｍｘと、不揮発性メモリＮＶＭ０〜ＮＶＭ７内の各物理ブロックにおける消去回数の最大値ＥＲＳ１７ｍｘを求める。
【０１４９】  そして、ＭＡＮＡＧＥＲは、この最大値ＥＲＳ００ｍｘが変化する毎に、不揮発性メモリＮＶＭ００に関するテーブルＲｅｔ００ＴＢＬを検索し、データ保持時間（データ保持時間）ＴＲｅｔ００を取得する。
【０１５０】  さらに、ＭＡＮＡＧＥＲは、この最大値ＥＲＳ１７ｍｘが変化する毎に、ＮＶＭ１０〜１７に関するテーブルＲｅｔ１７ＴＢＬを検索し、データ保持時間（データ保持時間）ＴＲｅｔ１７を取得する。
【０１５１】  図８Ａに示すように、データ保持時間Ｒｅｔは、不揮発性メモリ装置毎に異なり、更に、消去回数（あるいは書き込み回数）（ｎＥＲＳ）が増大する毎に所定の依存関係（関数）に基づいて減少していく。
【０１５２】  メモリモジュールＮＶＭＭＤ０の製品残存寿命DeltaLitimeは、製品寿命LifeTimeＭＭからメモリモジュールＮＶＭＭＤ０が初めて利用可能な状態となってから現在までに経過した時間である製品利用時間Ｐｔｉｍｅを差し引いた値、製品残存寿命DeltaLitime＝製品寿命LifeTimeＭＭ-製品利用時間Ｐｔｉｍｅ、である。
【０１５３】  また、データ保持時間Ｒｅｔが製品残存寿命DeltaLitimeより短い場合は、メモリモジュール内部の不揮発性メモリへの書込みを一時中止することで、製品利用時間Ｐｔｉｍｅを増やし、製品残存寿命DeltaLitimeをデータ保持時間Ｒｅｔ以下までに、減らすことができる。これによって、メモリモジュールＮＶＭＭＤ０の、製品寿命LifeTimeＭＭを保証することができる。
【０１５４】  《メモリモジュールＮＶＭＭＤ０キャッシュ動作フロー》図９は、メモリモジュールＮＶＭＭＤ０を構成する不揮発性メモリＮＶＭ１０〜１７と、これらの不揮発性メモリのキャッシュメモリとして不揮発性メモリＮＶＭ００を利用する際に、図１の情報処理装置ＣＰＵ＿ＣＰからメモリモジュールＮＶＭＭＤ０へ書込み要求（Ｗ０１）あるいは読出し要求（ＲＱ０１）が入力された際に、メモリモジュールＮＶＭＭＤ０内で行われる動作の一例を示す。
【０１５５】  まず、情報処理装置ＣＰＵ＿ＣＰから論理アドレス値（例えばＬＡＤ＝０）、データ書き込み命令（ＷＲＴ）、セクタカウント値（例えばＳＥＣ＝１）、および４キロバイトの書き込みデータ（ＷＤＡＴＡ０）が含まれる書込み要求（ＷＱ０１）が制御回路ＭＤＬＣＴ０へ入力された場合の動作の一例を示す。
【０１５６】  図２のインターフェース回路ＨＯＳＴ＿ＩＦは、書込み要求（ＷＱ０１）に埋め込まれているクロック情報を取り出し、シリアルデータ化された書込み要求（ＷＱ０１）をパラレルデータに変換し、バッファＢＵＦ０および情報処理回路ＭＡＮＡＧＥＲへ転送する。次に、情報処理回路ＭＡＮＡＧＥＲは、論理アドレス値（ＬＡＤ＝０）、データ書き込み命令（ＷＲＴ）及びセクタカウント値（ＳＥＣ＝１）を解読する（Step1）。データ書き込み命令（ＷＲＴ）が存在すれば、Step8を行う（Step2）。
【０１５７】  Step8では、論理アドレス値（ＬＡＤ＝０）に対応するデータが不揮発性メモリＮＶＭ００へ存在するかをチェックし（ヒット判定：Step8）。もし、所望のデータが不揮発性メモリＮＶＭ００へ存在した場合（ヒット）はStep9を行い、それ以外で、不揮発性メモリＮＶＭ００のデータを不揮発性メモリＮＶＭ１０〜１７へ書き戻す必要がない場合（クリーンミス）はStep10を行い、不揮発性メモリＮＶＭ００のデータを不揮発性メモリＮＶＭ１０〜１７へ書き戻す必要がある場合（ダーティミス）はStep11を行う。
【０１５８】  Step9では、書き込みデータ（ＷＤＡＴＡ０）を揮発性メモリＮＶＭ００へ書き込む。Step10では、書き込みデータ（ＷＤＡＴＡ０）を揮発性メモリＮＶＭ００へ書き込む。Step11では、書き込みデータ（ＷＤＡＴＡ０）を揮発性メモリＮＶＭ００へ書き込み、Step12では、不発性メモリＮＶＭ００のダーティデータを不揮発性メモリＮＶＭ１０〜１７へ書き戻す。
【０１５９】  次に、情報処理装置ＣＰＵ＿ＣＰから論理アドレス値（例えばＬＡＤ＝０）読み出し命令(ＲＤ)およびセクタカウント値（例えばＳＥＣ＝１）が含まれる読出し要求（ＲＱ０１）が制御回路ＭＤＬＣＴ０へ入力された場合の動作の一例を示す。
【０１６０】  図２のインターフェース回路ＨＯＳＴ＿ＩＦは、読出し要求（ＲＱ０１）に埋め込まれているクロック情報を取り出し、シリアルデータ化された読出し要求（ＲＱ０１）をパラレルデータに変換し、バッファＢＵＦ０および情報処理回路ＭＡＮＡＧＥＲへ転送する。次に、情報処理回路ＭＡＮＡＧＥＲは、論理アドレス値（ＬＡＤ＝０）、データ読出し命令（ＲＤ）及びセクタカウント値（ＳＥＣ＝１）を解読する（Step1）。データ読出し命令（ＲＤ）が存在すれば、Step3を行う。。
【０１６１】  Step3では、論理アドレス値（ＬＡＤ＝０）に対応するデータが不揮発性メモリＮＶＭ００へ存在するかをチェックし（ヒット判定：Step3）。もし、所望のデータが不揮発性メモリＮＶＭ００へ存在した場合（ヒット）はStep4を行い、それ以外で、不揮発性メモリＮＶＭ００のデータを不揮発性メモリＮＶＭ１０〜１７へ書き戻す必要がない場合（クリーンミス）はStep5を行い、不揮発性メモリＮＶＭ００のデータを不揮発性メモリＮＶＭ１０〜１７へ書き戻す必要がある場合（ダーティミス）はStep6を行う。
【０１６２】  Step4では、不揮発性メモリＮＶＭ００から所望のデータを読み出す。Step5では、不揮発性メモリＮＶＭ００から所望のデータを読み出す。
【０１６３】  Steo6では、不揮発性メモリＮＶＭ１０〜１７から所望のデータを読み出した後、不揮発性メモリＮＶＭ００へ書き込まれる。Step7では、不発性メモリＮＶＭ００のダーティデータを不揮発性メモリＮＶＭ１０〜１７へ書き戻す。
【０１６４】  不揮発性メモリ装置ＮＶＭ００へデータが書き込まれた場合は、書込み物理アドレステーブルＮＸＣＴＢＬへ登録されているＣＬ個の物理アドレスＣＰＡＤの中から、書き込み優先順位の高い物理アドレスＣＰＡＤが選択され、その物理アドレスＣＰＡＤへデータを書き込む。さらに、書込み物理アドレステーブルＮＸＣＴＢＬおよびＮＸＣＡＴＢＬ、アドレス変換テーブルＣＬＰＴＢＬおよびＣＡＬＰＴＢＬが更新される。
【０１６５】  不揮発性メモリ装置ＮＶＭ１０〜１７へデータが書込まれた場合は、書込み物理アドレステーブルＮＸＮＴＢＬへ登録されているＮＬ個の物理アドレスＰＡＤの中から、書き込み優先順位の高い物理アドレスＰＡＤが選択され、その物理アドレスＰＡＤへデータを書き込む。さらに、書込み物理アドレステーブルＮＸＮＴＢＬおよびＮＸＮＡＴＢＬ、アドレス変換テーブルＮＬＰＴＢＬおよびＮＡＬＰＴＢＬが更新される。
【０１６６】  《不揮発性メモリＮＶＭ００への書き込み動作フロー》図１０は、図９のStep9、Step10およびStep11で行われる不揮発性メモリＮＶＭ００への書き込み動作フローの一例である。また、この書き込み動作フローは、不揮発性メモリＮＶＭ００をキャッシュメモリやバッファメモリとして利用する場合に限らず、あらゆる場合で、不揮発性メモリＮＶＭ００へデータを書き込む場合に適用できることはいうまでもない。
【０１６７】  まず、Step13では、情報処理回路ＭＡＮＡＧＥＲは、論理アドレス値（ＬＡＤ＝０）、データ書き込み命令（ＷＲＴ）及びセクタカウント値（ＳＥＣ＝１）を解読し、不揮発性メモリ装置ＮＶＭ００へ保存されている不揮発性メモリ装置ＮＶＭ００に関するアドレス変換テーブルＣＬＰＴＢＬを検索する。これにより、情報処理回路ＭＡＮＡＧＥＲは、論理アドレス値（ＬＡＤ＝０）の番地に格納されている現在の不揮発性メモリ装置ＮＶＭ００の物理アドレス値（例えばＣＰＡＤ＝０）と、この物理アドレス値（ＣＰＡＤ＝０）に対応した有効フラグＣＣＰＶＬＤの値を読み出す。さらに、情報処理回路ＭＡＮＡＧＥＲは、不揮発性メモリ装置ＮＶＭ００へ保存されている物理アドレステーブルＣＰＡＤＴＢＬから物理アドレス値（ＣＰＡＤ＝０）に対応する消去回数値（例えばＣＰＥＲＣ＝４００）および有効フラグＣＰＶＬＤ値を読み出す（Step13）。
【０１６８】  次に、情報処理回路ＭＡＮＡＧＥＲは、不揮発性メモリ装置ＮＶＭ００用の書き込み物理アドレステーブルＮＸＣＴＢＬから、書き込み優先度の高い順（すなわちエントリー番号ＥＮＵＭが小さい順）に、セクタカウント値（ＳＥＣ＝１）で指定された個数分だけ必要なデータを読み出す。この場合は、１個分だけの書き込み物理アドレス（例えばＮＸＣＰＡＤ＝１００）と、この書き込み物理アドレス（ＮＸＣＰＡＤ＝１００）に対応した有効フラグ値ＮＸＣＰＶＬＤと、消去回数値ＮＸＣＰＥＲＣが読み出される（Step14）。
【０１６９】  次に、情報処理回路ＭＡＮＡＧＥＲは、現在の物理アドレス値（ＰＡＤ＝０）と次に書き込み対象となる書き込み物理アドレス値（ＮＸＰＡＤ＝１００）とが等しいかを判別し（Step15）、等しい場合にはStep16を実行し、異なる場合にはStep22を実行する。
【０１７０】  Step16では、情報処理回路ＭＡＮＡＧＥＲは、不揮発性メモリ装置ＮＶＭ００における物理アドレス値（ＮＸＣＰＡＤ＝１００）に対応する番地に各種データを書き込む。ここでは、図１９Ａに示したメインデータＤＡｒｅａとして書き込みデータ（ＷＤＡＴＡ０）が書き込まれ、冗長データＲＡｒｅａとしてＥＣＣコードＥＣＣが書き込まれる。
【０１７１】  さらに、物理アドレス値（ＮＸＣＰＡＤ＝１００）に対応する論理アドレス値（ＬＡＤ＝０）と、有効フラグ値（ＤＶＦ＝１）が書き込まれる。
【０１７２】  Step22では、情報処理回路ＭＡＮＡＧＥＲは、アドレス変換テーブルＣＬＰＴＢＬから読み出した物理アドレス値（ＣＰＡＤ＝０）に対応した有効フラグ値ＣＣＰＶＬＤが０であるかを判定する。有効フラグ値ＣＣＰＶＬＤが０の場合、論理アドレス値（ＬＡＤ＝０）に対応する現在の物理アドレス値（ＣＰＡＤ＝０）は無効であることを示し、これは論理アドレス値（ＬＡＤ＝０）に対応する物理アドレスは新しい物理アドレス値（ＮＸＣＰＡＤ＝１００）しか存在しないことを示す。言い換えれば、新しい物理アドレス値（ＮＸＣＰＡＤ＝１００）を論理アドレス値（ＬＡＤ＝０）に対してそのまま割り当てても、論理アドレス値（ＬＡＤ＝０）に対して重複した物理アドレス値が割り当てられることは無い。そこで、この場合、情報処理回路ＭＡＮＡＧＥＲは、前述したStep16を実行する。
【０１７３】  これに対して、Step22において有効フラグＣＣＰＶＬＤ値が１の場合、論理アドレス値（ＬＡＤ＝０）に対応する物理アドレス値（ＣＰＡＤ＝０）が未だに有効であることを示す。したがって、新しい物理アドレス値（ＮＸＣＰＡＤ＝１００）を論理アドレス値（ＬＡＤ＝０）に対してそのまま割り当てた場合、論理アドレス値（ＬＡＤ＝０）に対して重複した物理アドレス値が存在することになる。そこで、Step24において、情報処理回路ＭＡＮＡＧＥＲは、アドレス変換テーブルＣＬＰＴＢＬ内で論理アドレス値（ＬＡＤ＝０）に対応する物理アドレス値（ＣＰＡＤ＝０）の有効フラグＣＣＰＶＬＤ値を０（無効）に変更する。加えて、物理アドレステーブルＣＰＡＤＴＢＬ内の物理アドレス値（ＣＰＡＤ＝０）に対応する有効フラグＣＰＶＬＤも０（無効）にする。情報処理回路ＭＡＮＡＧＥＲは、このようにして、論理アドレス値（ＬＡＤ＝０）に対応する物理アドレス値（ＣＰＡＤ＝０）を無効にした後に、前述したStep16を実行する。
【０１７４】  Step16に続くStep17において、情報処理回路ＭＡＮＡＧＥＲおよび／または不揮発性メモリ装置ＮＶＭ００は、書き込みデータ（ＷＤＡＴＡ０）が正しく書き込まれたかをチェックする。正しく書き込まれた場合は、Step18を実行し、正しく書き込まれなかったらStep23を実行する。Step23では、情報処理回路ＭＡＮＡＧＥＲおよび／または不揮発性メモリ装置ＮＶＭ００は、書き込みデータ（ＷＤＡＴＡ０）が正しく書き込まれたかをチェックするベリファイチェック回数（Ｎｖｅｒｉｆｙ）が設定回数（Ｎｖｒ）以下であるかをチェックする。ベリファイチェック回数（Ｎｖｅｒｉｆｙ）が設定回数（Ｎｖｒ）以下であれば、再度Step16およびStep17を実行する。ベリファイチェック回数（Ｎｖｅｒｉｆｙ）が設定回数（Ｎｖｒ）より多い場合は、書き込み物理アドレステーブルＮＸＣＰＡＤＴＢＬから読み出した書き込み物理アドレス値（ＮＸＣＰＡＤ＝１００）へは書き込みデータ（ＷＤＡＴＡ０）を書き込めないと判断し（Step25）、再度Step14を実行する。なお、このようなデータ検証処理は、不揮発性メモリ装置内の書込みデータ検証回路を用いて行われ、不揮発性メモリ装置の内部回路のみで行われる場合や、あるいはその外部（情報処理回路ＭＡＮＡＧＥＲ）と適宜連動しながら行われる場合がある。
【０１７５】  Step18に続いてStep19では、情報処理回路ＭＡＮＡＧＥＲは、アドレス変換テーブルＣＬＰＴＢＬを更新する。具体的には、例えば論理アドレス値（ＬＡＤ＝０）の番地へ新たな物理アドレス値（ＮＸＣＰＡＤ＝１００）を書き込み、有効フラグＣＣＰＶＬＤ値を１を書き込む。次に、情報処理回路ＭＡＮＡＧＥＲは、物理アドレステーブルＣＰＡＤＴＢＬを更新する。具体的には、例えば、書込み物理アドレステーブル書き込み物理アドレステーブルＮＸＣＴＢＬで示される書き込み物理アドレス値（ＮＸＣＰＡＤ＝１００）の消去回数（ＮＸＣＰＥＲＣ）値に１を加算した新たな消去回数値を生成し、当該新たな消去回数値を物理アドレステーブルＣＰＡＤＴＢＬ内の対応箇所（物理アドレス値（ＮＸＣＰＡＤ＝１００）の消去回数（ＣＰＥＲＣ））に書き込み。また、物理アドレステーブルＣＰＡＤＴＢＬ内の有効フラグＣＰＶＬＤを書き込む。
【０１７６】  Step20では、情報処理回路ＭＡＮＡＧＥＲは、書き込み物理アドレステーブルＮＸＣＴＢＬへ格納されている全書き込み物理アドレスＮＸＣＰＡＤへの書き込みが完了したかどうかを判定する。書き込み物理アドレステーブルＮＸＣＴＢＬへ格納されている全書き込み物理アドレスＮＸＣＰＡＤへの書き込みが完了した場合はStep21を行い、未完了の場合は情報処理装置ＣＰＵ＿ＣＰからメモリモジュールＮＶＭＭＤ０へ向けた新たな書込み要求を待つ。
【０１７７】  Step20では、例えば書き込み物理アドレステーブルＮＸＣＴＢＬへ格納されている全書き込み物理アドレスＮＸＰＡＤに対する書き込みが完了した時点で、情報処理回路ＭＡＮＡＧＥＲは、物理セグメントテーブルＣＰＳＥＧＴＢＬを更新する。すなわち、書き込み物理アドレステーブルＮＸＣＴＢＬ内のエントリーを全て使い切った際に物理セグメントテーブルＰＳＥＧＴＢＬを更新し、これを用いて書き込み物理アドレステーブルＮＸＣＴＢＬの更新も行う。
【０１７８】  物理セグメントテーブルＣＰＳＥＧＴＢＬの更新に際し、情報処理回路ＭＡＮＡＧＥＲは、物理アドレステーブルＣＰＡＤＴＢＬにおける物理アドレスの有効フラグＣＰＶＬＤと消去回数ＣＰＥＲＣを参照する。そして、物理アドレステーブルＣＰＡＤＴＢＬ内で有効フラグＣＰＶＬＤが０（無効）となっている物理アドレスを対象として、各物理セグメントアドレスＣＳＧＡＤ毎に、無効物理アドレス総数ＣＴＮＩＰＡ、最大消去回数ＣＭＸＥＲＣおよびその無効物理オフセットアドレスＣＭＸＩＰＡＤ、最小消去回数ＣＭＮＥＲＣおよびその無効物理オフセットアドレスＣＭＮＩＰＡＤを更新する。また、物理アドレステーブルＣＰＡＤＴＢＬ内で有効フラグＰＶＬＤが１（有効）となっている物理アドレスを対象として、各物理セグメントアドレスＣＳＧＡＤ毎に、有効物理アドレス総数ＣＴＮＶＰＡ、最大消去回数ＣＭＸＥＲＣおよびその有効物理オフセットアドレスＣＭＸＶＰＡＤ、最小消去回数ＣＭＮＥＲＣおよびその有効物理オフセットアドレスＣＭＮＶＰＡＤを更新する。
【０１７９】  さらに、情報処理回路ＭＡＮＡＧＥＲは、書き込み物理アドレステーブルＮＸＣＴＢＬを更新する。書き込み物理アドレステーブルＮＸＣＴＢＬの更新が終了した場合、情報処理装置ＣＰＵ＿ＣＰからメモリモジュールＮＶＭＭＤ０への書込み要求を待つ。
【０１８０】  このように、情報処理回路ＭＡＮＡＧＥＲは、不揮発性メモリ装置ＮＶＭ００への書き込みを行う際に、書き込み物理アドレステーブルＮＸＣＰＴＢＬを用いて行うため、例えば、書き込みの度に物理アドレステーブルＣＰＡＤＴＢＬから消去回数が少ない物理アドレスを探索するような場合と比べて高速な書き込み動作が実現可能となる。
【０１８１】  また、複数個の書き込み物理アドレステーブルＮＸＣＴＢＬ１，ＮＸＣＴＢＬ２を搭載した場合、各テーブルを独立に管理・更新することができるので、これによっても高速な書き込み動作が実現可能となる。例えば、書き込み物理アドレステーブルＮＸＣＴＢＬ１を使っている間に書き込み物理アドレステーブルＮＸＣＴＢＬ２を更新し、ＮＸＣＴＢＬ１を使い切った際にはＮＸＣＴＢＬ２に移行し、ＮＸＣＴＢＬ２を使っている間にＮＸＣＴＢＬ１の更新を行うようなことが可能となる。
【０１８２】  上記は、不揮発性メモリ装置ＮＶＭ００へ書き込まれるデータについての書込み動作フローを示したが、不揮発性メモリ装置ＮＶＭ００へデータが書き込まれた場合は、書込み物理アドレステーブルＮＸＣＡＴＢＬを利用し、不揮発性メモリ装置ＮＶＭ００へ保存されているアドレス変換テーブルＣＬＰＴＢＬも更新される。このアドレス変換テーブルＣＬＰＴＢＬの更新も、図１０で示した同様の方法で行われ、同様の効果が得られることは言うまでもない。
【０１８３】  《不揮発性メモリＮＶＭ００からの読み出し動作》図１１は、図９のStep4で行われる不揮発性メモリＮＶＭ００からの読出し動作フローの一例である。また、この読出し動作フローは、不揮発性メモリＮＶＭ００をキャッシュメモリやバッファメモリとして利用する場合に限らず、あらゆる場合で、不揮発性メモリＮＶＭ００からデータを読み出す場合に適用できることはいうまでもない。
【０１８４】  情報処理回路ＭＡＮＡＧＥＲは、論理アドレス値（ＬＡＤ＝０）、データ読み出し命令（ＲＤ）およびセクタカウント値（ＳＥＣ＝１）を解読し、制御回路ＭＤＬＣＴ０内のアドレス変換テーブルＣＡＬＰＴＢＬから、論理アドレスＬＡＤの０〜１０２３番地に対応する物理アドレスＣＰＡＤが格納されているアドレス変換テーブルＣＬＰＴＢＬ自身の物理アドレス値ＣＰＡＤ２０４７を読出す（Step26）。次に、物理アドレス値ＣＰＡＤ２０４７に対応する不揮発性メモリＮＶＭ００内のアドレス変換テーブルＣＬＰＴＢＬから論理アドレスＬＡＤの０番地に対応するいる物理アドレス値ＣＰＡＤ（例えばＣＰＡＤ＝０）と、この物理アドレスＣＰＡＤに対応した有効フラグＣＣＰＶＬＤを読み出す（Step27）。次に、読み出した有効フラグＣＣＰＶＬＤが１であるかどうかをチェックする（Step28）。
【０１８５】  もし、有効フラグＣＣＰＶＬＤが０の場合、情報処理回路ＭＡＮＡＧＥＲは、当該論理アドレス値（ＬＡＤ＝０）には物理アドレスＣＰＡＤが割り当てられていないことを認識する。この場合、不揮発性メモリ装置ＮＶＭからデータを読み出すことができないため、情報処理回路ＭＡＮＡＧＥＲは、エラーが発生したことをインターフェース回路ＨＯＳＴ＿ＩＦを通じて情報処理装置ＣＰＵ＿ＣＰへ伝える（Step32）。
【０１８６】  もし、有効フラグＣＣＰＶＬＤ値が１の場合、情報処理回路ＭＡＮＡＧＥＲは、当該論理アドレス値（ＬＡＤ＝０）には物理アドレス値ＣＰＡＤ（ＣＰＡＤ＝０）が対応していると判断する。
【０１８７】  次に、情報処理回路ＭＡＮＡＧＥＲは調停回路ＡＲＢおよびメモリ制御回路ＮＶ０Ｃを通じて物理アドレス値ＣＰＡＤ（ＣＰＡＤ＝０）に対応したデータ（ＲＤＡＴＡ０）を不揮発性メモリ装置ＮＶＭ００から読み出す。データ（ＲＤＡＴＡ０）には、メインデータＤＡｒｅａ０と冗長データＲＡｒｅａ０が含まれ、さらに冗長データＲＡｒｅａ０にはＥＣＣコードＥＣＣ０が含まれる（Step29）。
【０１８８】  次に、情報処理回路ＭＡＮＡＧＥＲは、ＥＣＣコード（ＥＣＣ０）を利用して、メインデータ（ＤＡｒｅａ０）にエラーがあるかをチェックし、エラーがあれば訂正を行い（Step30）、インターフェース回路ＨＯＳＴ＿ＩＦを通じて情報処理装置ＣＰＵ＿ＣＰへ転送する（Step31）。
【０１８９】  《不揮発性メモリＮＶＭ１０〜１７への書き込み動作フロー》図１２は、図９のStep7およびStep12で行われる不揮発性メモリＮＶＭ１０〜１７への書き込み動作フローの一例である。また、この書き込み動作フローは、不揮発性メモリＮＶＭ００をキャッシュメモリやバッファメモリとして利用する場合に限らず、あらゆる場合で、不揮発性メモリＮＶＭ１０〜１７へデータを書き込む場合に適用できることはいうまでもない。
【０１９０】  まず、Step113では、情報処理回路ＭＡＮＡＧＥＲは、論理アドレス値（ＬＡＤ＝０）、データ書き込み命令（ＷＲＴ）及びセクタカウント値（ＳＥＣ＝１）を解読し、不揮発性メモリ装置ＮＶＭ００へ保存されている不揮発性メモリ装置ＮＶＭ１０〜１７に関するアドレス変換テーブルＬＰＴＢＬを検索する。これにより、情報処理回路ＭＡＮＡＧＥＲは、論理アドレス値（ＬＡＤ＝０）の番地に格納されている現在の不揮発性メモリ装置ＮＶＭ１０〜１７の物理アドレス値（例えばＣＰＡＤ＝０）と、この物理アドレス値（ＣＰＡＤ＝０）に対応した有効フラグＣＰＶＬＤの値を読み出す。さらに、情報処理回路ＭＡＮＡＧＥＲは、不揮発性メモリ装置ＮＶＭ００へ保存されている物理アドレステーブルＰＡＤＴＢＬから物理アドレス値（ＣＰＡＤ＝０）に対応する消去回数値（例えばＰＥＲＣ＝４００）および有効フラグＰＶＬＤ値を読み出す（Step113）。
【０１９１】  次に、情報処理回路ＭＡＮＡＧＥＲは、不揮発性メモリ装置ＮＶＭ１０〜１７用の書き込み物理アドレステーブルＮＸＮＴＢＬから、書き込み優先度の高い順（すなわちエントリー番号ＥＮＵＭが小さい順）に、セクタカウント値（ＳＥＣ＝１）で指定された個数分だけ必要なデータを読み出す。この場合は、１個分だけの書き込み物理アドレス（例えばＮＸＮＰＡＤ＝１００）と、この書き込み物理アドレス（ＮＸＮＰＡＤ＝１００）に対応した有効フラグＮＸＮＰＶＬＤ値と、消去回数ＮＸＮＰＥＲＣ値が読み出される（Step114）。
【０１９２】  次に、情報処理回路ＭＡＮＡＧＥＲは、現在の物理アドレス値（ＰＡＤ＝０）と次に書き込み対象となる書き込み物理アドレス値（ＮＸＰＡＤ＝１００）とが等しいかを判別し（Step115）、等しい場合にはStep116を実行し、異なる場合にはStep122を実行する。
【０１９３】  Step116では、情報処理回路ＭＡＮＡＧＥＲは、不揮発性メモリ装置ＮＶＭ１０〜１７における物理アドレス値（ＮＸＰＡＤ＝１００）に対応する番地に各種データを書き込む。ここでは、メインデータＤＡｒｅａとして書き込みデータ（ＷＤＡＴＡ０）が書き込まれ、冗長データＲＡｒｅａとしてＥＣＣコードＥＣＣが書き込まれる。
【０１９４】  さらに、物理アドレス値（ＮＸＰＡＤ＝１００）に対応する論理アドレス値（ＬＡＤ＝０）と、有効フラグ値（ＤＶＦ＝１）が書き込まれる。
【０１９５】  Step122では、情報処理回路ＭＡＮＡＧＥＲは、アドレス変換テーブルＬＰＴＢＬから読み出した物理アドレス値（ＣＰＡＤ＝０）に対応した有効フラグＣＰＶＬＤ値が０であるかを判定する。有効フラグＣＰＶＬＤ値が０の場合、論理アドレス値（ＬＡＤ＝０）に対応する現在の物理アドレス値（ＣＰＡＤ＝０）は無効であることを示し、これは論理アドレス値（ＬＡＤ＝０）に対応する物理アドレスは新しい物理アドレス値（ＮＸＮＰＡＤ＝１００）しか存在しないことを示す。言い換えれば、新しい物理アドレス値（ＮＸＮＰＡＤ＝１００）を論理アドレス値（ＬＡＤ＝０）に対してそのまま割り当てても、論理アドレス値（ＬＡＤ＝０）に対して重複した物理アドレス値が割り当てられることは無い。そこで、この場合、情報処理回路ＭＡＮＡＧＥＲは、前述したStep116を実行する。
【０１９６】  これに対して、Step122において有効フラグＣＰＶＬＤ値が１の場合、論理アドレス値（ＬＡＤ＝０）に対応する物理アドレス値（ＣＰＡＤ＝０）が未だに有効であることを示す。したがって、新しい物理アドレス値（ＮＸＮＰＡＤ＝１００）を論理アドレス値（ＬＡＤ＝０）に対してそのまま割り当てた場合、論理アドレス値（ＬＡＤ＝０）に対して重複した物理アドレス値が存在することになる。そこで、Step124において、情報処理回路ＭＡＮＡＧＥＲは、アドレス変換テーブルＬＰＴＢＬ内で論理アドレス値（ＬＡＤ＝０）に対応する物理アドレス値（ＣＰＡＤ＝０）の有効フラグＣＰＶＬＤ値を０（無効）に変更する。加えて、物理アドレステーブルＣＰＡＤＴＢＬ内の物理アドレス値（ＣＰＡＤ＝０）に対応する有効フラグＣＰＶＬＤも０（無効）にする。情報処理回路ＭＡＮＡＧＥＲは、このようにして、論理アドレス値（ＬＡＤ＝０）に対応する物理アドレス値（ＣＰＡＤ＝０）を無効にした後に、前述したStep116を実行する。
【０１９７】  Step116に続くStep117において、情報処理回路ＭＡＮＡＧＥＲおよび／または不揮発性メモリ装置ＮＶＭ１０〜１７は、書き込みデータ（ＷＤＡＴＡ０）が正しく書き込まれたかをチェックする。正しく書き込まれた場合は、Step118を実行し、正しく書き込まれなかったらStep123を実行する。Step123では、情報処理回路ＭＡＮＡＧＥＲおよび／または不揮発性メモリ装置ＮＶＭ１０〜１７は、書き込みデータ（ＷＤＡＴＡ０）が正しく書き込まれたかをチェックするベリファイチェック回数（Ｎｖｅｒｉｆｙ）が設定回数（Ｎｖｒ）以下であるかをチェックする。ベリファイチェック回数（Ｎｖｅｒｉｆｙ）が設定回数（Ｎｖｒ）以下であれば、再度Step116およびStep117を実行する。ベリファイチェック回数（Ｎｖｅｒｉｆｙ）が設定回数（Ｎｖｒ）より多い場合は、書き込み物理アドレステーブルＮＸＮＴＢＬから読み出した書き込み物理アドレス値（ＮＸＰＡＤ＝１００）へは書き込みデータ（ＷＤＡＴＡ０）を書き込めないと判断し（Step125）、再度Step114を実行する。なお、このようなデータ検証処理は、不揮発性メモリ装置ＮＶＭ１０〜１７内の書込みデータ検証回路を用いて行われ、不揮発性メモリ装置の内部回路のみで行われる場合や、あるいはその外部（情報処理回路ＭＡＮＡＧＥＲ）と適宜連動しながら行われる場合がある。
【０１９８】  Step118に続いてStep119では、情報処理回路ＭＡＮＡＧＥＲは、アドレス変換テーブルＬＰＴＢＬを更新する。具体的には、例えば論理アドレス値（ＬＡＤ＝０）の番地へ新たな物理アドレス値（ＮＸＰＡＤ＝１００）を書き込み、有効フラグＣＣＰＶＬＤ値を書き込む。次に、情報処理回路ＭＡＮＡＧＥＲは、物理アドレステーブルＣＰＡＤＴＢＬを更新する。具体的には、例えば、書込み物理アドレステーブルＮＸＮＰＡＤＴＢＬで示される書き込み物理アドレス値（ＮＸＣＰＡＤ＝１００）の消去回数（ＮＸＣＰＥＲＣ）値に１を加算した新たな消去回数値を生成し、当該新たな消去回数値を物理アドレステーブルＰＡＤＴＢＬ内の対応箇所（物理アドレス値（ＮＸＰＡＤ＝１００）の消去回数（ＰＥＲＣ））に書き込み。また、物理アドレステーブルＰＡＤＴＢＬ内の有効フラグＣＰＶＬＤを１とし、これを書き込む。
【０１９９】  Step120では、情報処理回路ＭＡＮＡＧＥＲは、書き込み物理アドレステーブルＮＸＮＴＢＬへ格納されている全書き込み物理アドレスＮＸＮＰＡＤへの書き込みが完了したかどうかを判定する。書き込み物理アドレステーブルＮＸＮＴＢＬへ格納されている全書き込み物理アドレスＮＸＮＰＡＤへの書き込みが完了した場合はStep12１を行い、未完了の場合は情報処理装置ＣＰＵ＿ＣＰからメモリモジュールＮＶＭＭＤ０へ向けた新たな書込み要求を待つ。
【０２００】  Step120では、例えば書き込み物理アドレステーブルＮＸＮＴＢＬへ格納されている全書き込み物理アドレスＮＸＰＡＤに対する書き込みが完了した時点で、情報処理回路ＭＡＮＡＧＥＲは、物理セグメントテーブルＰＳＥＧＴＢＬを更新する。すなわち、書き込み物理アドレステーブルＮＸＮＴＢＬ内のエントリーを全て使い切った際に物理セグメントテーブルＰＳＥＧＴＢＬを更新し、これを用いて書き込み物理アドレステーブルＮＸＮＴＢＬの更新も行う。
【０２０１】  物理セグメントテーブルＰＳＥＧＴＢＬの更新に際し、情報処理回路ＭＡＮＡＧＥＲは、物理アドレステーブルＰＡＤＴＢＬにおける物理アドレスの有効フラグＰＶＬＤと消去回数ＰＥＲＣを参照する。そして、物理アドレステーブルＰＡＤＴＢＬ内で有効フラグＰＶＬＤが０（無効）となっている物理アドレスを対象として、各物理セグメントアドレスＳＧＡＤ毎に、無効物理アドレス総数ＴＮＩＰＡ、最大消去回数ＭＸＥＲＣおよびその無効物理オフセットアドレスＭＸＩＰＡＤ、最小消去回数ＭＮＥＲＣおよびその無効物理オフセットアドレスＭＮＩＰＡＤを更新する。また、物理アドレステーブルＰＡＤＴＢＬ内で有効フラグＰＶＬＤが１（有効）となっている物理アドレスを対象として、各物理セグメントアドレスＳＧＡＤ毎に、有効物理アドレス総数ＴＮＶＰＡ、最大消去回数ＭＸＥＲＣおよびその有効物理オフセットアドレスＭＸＶＰＡＤ、最小消去回数ＭＮＥＲＣおよびその有効物理オフセットアドレスＭＮＶＰＡＤを更新する。
【０２０２】  さらに、情報処理回路ＭＡＮＡＧＥＲは、書き込み物理アドレステーブルＮＸＮＴＢＬを更新する。書き込み物理アドレステーブルＮＸＮＴＢＬの更新が終了した場合、情報処理装置ＣＰＵ＿ＣＰからメモリモジュールＮＶＭＭＤ０への書込み要求を待つ。
【０２０３】  このように、情報処理回路ＭＡＮＡＧＥＲは、不揮発性メモリＮＶＭ１０〜１７への書き込みを行う際に、書き込み物理アドレステーブルＮＸＮＰＴＢＬを用いて行うため、例えば、書き込みの度に物理アドレステーブルＰＡＤＴＢＬから消去回数が少ない物理アドレスを探索するような場合と比べて高速な書き込み動作が実現可能となる。
【０２０４】  また、複数個の書き込み物理アドレステーブルＮＸＮＴＢＬ１、ＮＸＮＴＢＬ２を搭載した場合、各テーブルを独立に管理・更新することができるので、これによっても高速な書き込み動作が実現可能となる。例えば、書き込み物理アドレステーブルＮＸＮＴＢＬ１を使っている間に書き込み物理アドレステーブルＮＸＮＴＢＬ２を更新し、ＮＸＮＴＢＬ１を使い切った際にはＮＸＮＴＢＬ２に移行し、ＮＸＮＴＢＬ２を使っている間にＮＸＮＴＢＬ１の更新を行うようなことが可能となる。
【０２０５】  以上の説明では、不揮発性メモリ装置ＮＶＭ１０〜１７へ書き込まれるデータについての書込み動作フローを示したが、不揮発性メモリ装置ＮＶＭ１０〜１７へデータが書き込まれた場合は、書込み物理アドレステーブルＮＸＮＡＴＢＬを利用し、不揮発性メモリ装置ＮＶＭ００へ保存されているアドレス変換テーブルＮＬＰＴＢＬも更新される。このアドレス変換テーブルＮＬＰＴＢＬの更新も、図１２で示した同様の方法で行われ、同様の効果が得られることは言うまでもない。
【０２０６】  《不揮発性メモリＮＶＭ１０〜１７からの読み出し動作》図１３は、図９のStep5および６で行われる不揮発性メモリＮＶＭ１０〜１７からの読出し動作フローの一例である。また、この読出し動作フローは、不揮発性メモリＮＶＭ００をキャッシュメモリやバッファメモリとして利用する場合に限らず、あらゆる場合で、不揮発性メモリＮＶＭ１０〜１７からデータを読み出す場合に適用できることはいうまでもない。
【０２０７】  情報処理回路ＭＡＮＡＧＥＲは、論理アドレス値（ＬＡＤ＝０）、データ読み出し命令（ＲＤ）およびセクタカウント値（ＳＥＣ＝１）を解読し、制御回路ＭＤＬＣＴ０内のアドレス変換テーブルＮＡＬＰＴＢＬから、論理アドレスＬＡＤの０〜１０２３番地に対応する物理アドレスＰＡＤが格納されているアドレス変換テーブルＮＬＰＴＢＬ自身の物理アドレス値ＰＡＤ４０４７を読出す（Step126）。次に、物理アドレス値ＰＡＤ４０４７に対応する不揮発性メモリＮＶＭ００内のアドレス変換テーブルＬＰＴＢＬから、論理アドレスＬＡＤの０番地に対応する物理アドレス値ＰＡＤ（例えばＰＡＤ＝０）と、この物理アドレスＰＡＤに対応した有効フラグＣＰＶＬＤおよびレイヤ番号ＬＹＣを読み出す（Step127）。
【０２０８】  次に、読み出した有効フラグＣＰＶＬＤが１であるかどうかをチェックする（Step128）。
【０２０９】  もし、有効フラグＣＰＶＬＤが０の場合、情報処理回路ＭＡＮＡＧＥＲは、当該論理アドレス値（ＬＡＤ＝０）には物理アドレスＰＡＤが割り当てられていないことを認識する。この場合、不揮発性メモリ装置ＮＶＭ１０〜１７からデータを読み出すことができないため、情報処理回路ＭＡＮＡＧＥＲは、エラーが発生したことをインターフェース回路ＨＯＳＴ＿ＩＦを通じて情報処理装置ＣＰＵ＿ＣＰへ伝える（Step132）。
【０２１０】  もし、有効フラグＣＰＶＬＤ値が１の場合、情報処理回路ＭＡＮＡＧＥＲは、当該論理アドレス値（ＬＡＤ＝０）には物理アドレス値ＰＡＤ（ＰＡＤ＝０）が対応していると判断する。
【０２１１】  次に、情報処理回路ＭＡＮＡＧＥＲは調停回路ＡＲＢおよびメモリ制御回路ＮＶＣＴ０〜ＮＶＣＴ７を通じて物理アドレス値ＰＡＤ（ＰＡＤ＝０）に対応したデータ（ＲＤＡＴＡ０）を不揮発性メモリ装置ＮＶＭ１０〜１７から読み出す。データ（ＲＤＡＴＡ０）には、メインデータＤＡｒｅａ０と冗長データＲＡｒｅａ０が含まれ、さらに冗長データＲＡｒｅａ０にはＥＣＣコードＥＣＣ０が含まれる（Step129）。
【０２１２】  次に、情報処理回路ＭＡＮＡＧＥＲは、ＥＣＣコード（／ＥＣＣ０）を利用して、メインデータ（／ＤＡｒｅａ０）にエラーがあるかをチェックし、エラーがあれば訂正を行い（Step130）、インターフェース回路ＨＯＳＴ＿ＩＦを通じて情報処理装置ＣＰＵ＿ＣＰへ転送する（Step131）。
【０２１３】  以上図９から１３にて説明したように、キャッシュメモリとして利用する不揮発性メモリＮＶＭ００と、不揮発性メモリＮＶＭ１０〜１７で、それぞれの不揮発性メモリへ対応した管理情報（アドレス変換テーブルＣＬＰＴＢＬおよびＬＰＴＢＬ、書き込み物理アドレステーブルＮＸＣＴＢＬおよびＮＸＮＴＢＬ、物理アドレステーブルＣＰＡＤＴＢＬおよびＰＡＤＴＢＬ）を持ち、独立に制御することで、それぞれの不揮発性メモリの特性を活かし、最大限に不揮発性メモリ装置ＮＶＭ００をキャッシュメモリとして活用できるため、高信頼かつ高速なメモリモジュールＮＶＭＭＤ０および情報処理システムを実現できる。
【０２１４】  また、不揮発性メモリＮＶＭ００へ、情報処理装置ＣＰＵ＿ＣＰからメモリモジュールＮＶＭＭＤ０へ入力された書込みデータを保存し、また、不揮発性メモリＮＶＭ００と不揮発性メモリＮＶＭ１０〜１７の、それぞれの不揮発性メモリへ対応した管理情報（アドレス変換テーブルＣＬＰＴＢＬおよびＬＰＴＢＬ、物理アドレステーブルＣＰＡＤＴＢＬおよびＰＡＤＴＢＬ）を保存することで、突発的な電源遮断が生じても、これら書き込みデータと管理情報は消えることがなく、不揮発性メモリＮＶＭ１０〜１７へ、これら書き込みデータと管理情報を書き戻す必要がないため、高信頼かつ高速なメモリモジュールＮＶＭＭＤ０および情報処理システムを実現できる。
【０２１５】  《ダイナミックウエアレベリング》図１４では、情報処理回路ＭＡＮＡＧＥＲがデータを不揮発性メモリＮＶＭ００へ書き込むために必要な書込み物理アドレステーブルＮＸＣＴＢＬの更新方法を示す。
【０２１６】  書込み物理アドレステーブルＮＸＣＴＢＬを更新するために、まず物理セグメントアドレスを決定し、次に決定された物理セグメントアドレス内の物理アドレスを決定する。
【０２１７】  不揮発性メモリＮＶＭ００内の物理セグメントテーブルCPSEGTBL1へは、物理セグメントアドレスCSGA毎に、無効状態の物理アドレスの総数CTNIPAと、有効状態の物理アドレスの総数CTNVPAGEと、無効状態の物理アドレスCPADの中で消去回数の最小値MCPADERCを持つ物理アドレスMCPADと、その物理アドレスMCPADに対応する最小消去回数値MCPADERCとが格納されている。
【０２１８】  まず、情報処理回路ＭＡＮＡＧＥＲは、不揮発性メモリＮＶＭ００から、物理セグメントアドレスCSGA毎に、無効状態の物理アドレスの総数CTNIPAと、これら物理アドレスMCPADと最小消去回数値MCPADERCを読み出す（Step1）。
【０２１９】  次に、不揮発性メモリＮＶＭ００から読み出された物理セグメントアドレスCSGA毎の無効状態の物理アドレスの総数CTNIPAGEが書込み物理アドレステーブルＮＸＣＴＢＬの登録数Ｎより大きな物理セグメントアドレスCSGAを選択する（Step2）。さらに、この選択された物理セグメントアドレスCSGA毎の最小消去回数値MCPADERCを比較し、その最小消去回数値MCPADERCの中の最小値MMCPADERCを求める（Step3）。
【０２２０】  次に、最小値MMCPADERCを持つ物理セグメントアドレスCSGAと物理アドレスMCPADを、物理アドレステーブルＮＸＣＴＢＬを更新するための物理セグメントアドレスCTSGADと物理アドレスTMCPADとに決定する（Step4）。
【０２２１】  Step2で選択される物理セグメントアドレスCSGAを存在させるには、物理アドレス空間の大きさを論理アドレス空間の大きさより、少なくとも書込み物理アドレステーブルＮＸＣＰＴＢＬが登録できるアドレス分の大きさ以上にすると良い。
【０２２２】  次に、情報処理回路ＭＡＮＡＧＥＲは、物理セグメントアドレスCTSGA内の物理アドレスTMCPADに対応する消去回数CPERC値を不揮発性メモリＮＶＭ００から読み出し、消去回数閾値CERCthと比較する（Step5）。消去回数CPERC値が消去回数閾値CERCth以下の場合、情報処理回路ＭＡＮＡＧＥＲは、現在の物理アドレス物理アドレスTMCPADへの書込みを許可し、Step6を行う。
【０２２３】  消去回数CPERC値が消去回数閾値CERCthより大きい場合、情報処理回路MANAGERは、現在の物理アドレスTMCPADへの書込みを禁止し、Step9を行う。
【０２２４】  Step9で、情報処理回路ＭＡＮＡＧＥＲは、現在の物理セグメントアドレス内で、消去回数閾値CERCth以下の消去回数を持つ無効状態の物理アドレスの数CNinvが、書込み物理アドレステーブルNXCTBLが登録できるアドレス数CNより小さいかどうか（CNinv＜CN）を判定し、小さい場合はStep10を行い、大きい場合はStep11を行う。
【０２２５】  Step11において、情報処理回路ＭＡＮＡＧＥＲは、現在の物理アドレスTMCPADへ1を加算した新物理アドレスTMCPADを生成し、Step5を再度実行する。
【０２２６】  Step10では、情報処理回路ＭＡＮＡＧＥＲは、消去回数閾値CERCthへ、ある値アルファα分だけ加算した新消去回数閾値CERCthを生成し、Step5を再度実行する。
【０２２７】  Step6では、情報処理回路ＭＡＮＡＧＥＲが、書込み物理アドレステーブルNXCTBLへ、現在の物理アドレスTMCPPADと、この物理アドレスTMCPPADに対応した有効フラグCPVLD値と消去回数CPERC値を登録する。書込み物理アドレステーブルNXCTBLには、CN組の登録が可能であり、特に限定しないが、エントリ番号ENUMの小さな番号から順に登録される。書込み物理アドレステーブルNXCTBLの登録組数は、情報処理回路ＭＡＮＡＧＥＲによって任意に設定可能であり、不揮発性メモリ装置NVM00への書込み速度が最大となるように設定すると良い。
【０２２８】  次のStep7では、情報処理回路ＭＡＮＡＧＥＲは、書込み物理アドレステーブルNXCTBLへの全CN組の登録が完了したか否かをチェックする。全N組の登録が完了していなければ、Step29を実行する。全N組の登録が完了していれば、書込み物理アドレステーブルNXCTBLの更新を完了する（Step28）。
【０２２９】  以上説明したように、書込み物理アドレステーブルＮＸＣＴＢＬへ登録されるCＮ個の物理アドレスは、消去閾値CＥＲＣｔｈ以下で消去回数の小さな値を持つ物理アドレスから優先的に登録される。したがって、図１０に示すように、この書込み物理アドレステーブルＮＸＣＴＢＬへ登録されるCＮ個の物理アドレスを利用し、不揮発性メモリ装置ＮＶＭ００へ書込みを行うことで不揮発性メモリ装置ＮＶＭ００の消去回数が平準化でき、高信頼で長寿命のメモリモジュールＮＶＭＤ０が実現できる。
【０２３０】  図１４は不揮発性メモリ装置ＮＶＭ００へ書き込まれるデータに関する書込み物理アドレステーブルＮＸＣＴＢＬの更新方法と、書込みデータに関する消去回数の平準化について説明したが、不揮発性メモリ装置ＮＶＭ００へデータが書き込まれた場合は、書込み物理アドレステーブルＮＸＣＡＴＢＬを利用し、不揮発性メモリ装置ＮＶＭ００へ保存されているアドレス変換テーブルＣＬＰＴＢＬも更新される。この書込み物理アドレステーブルＮＸＣＡＴＢＬの更新方法も図１４で示した同様の方法で行われ、同様のアドレス変換テーブルＣＬＰＴＢＬ自身に対する消去回数の平準化についても同様の効果が得られることは言うまでもない。
【０２３１】  したがって、不揮発性メモリ装置ＮＶＭ００へ書き込まれるデータのみならずアドレス変換テーブルＣＬＰＴＢＬ自身へも消去回数の平準化が行われ高信頼で長寿命のメモリモジュールＮＶＭＤ０が実現できる。
【０２３２】  また、不揮発性メモリＮＶＭ１０〜１７へ書き込むために必要な書込み物理アドレステーブルＮＸＮＴＢＬの更新方法は、図１４で説明した書込み物理アドレステーブルＮＸＣＴＢＬの更新方法と同様の手順で実行され、図１２に示すように、この書込み物理アドレステーブルＮＸＮＴＢＬへ登録されるＭ個の物理アドレスを利用し、不揮発性メモリＮＶＭ１０〜１７へ書込みを行うことで不揮発性メモリＮＶＭ１０〜１７の消去回数が平準化でき、高信頼で長寿命のメモリモジュールＮＶＭＤ０が実現できる。
【０２３３】  図１４は不揮発性メモリ装置ＮＶＭ００へ書き込まれるデータに関する書込み物理アドレステーブルＮＸＣＴＢＬの更新方法と、書込みデータに関する消去回数の平準化について説明したが、不揮発性メモリ装置ＮＶＭ１０〜１７へデータが書き込まれた場合は、書込み物理アドレステーブルＮＸＮＡＴＢＬを利用し、不揮発性メモリ装置ＮＶＭ００へ保存されているアドレス変換テーブルＮＬＰＴＢＬも更新される。この書込み物理アドレステーブルＮＸＬＡＴＢＬの更新方法も図１４で示した同様の方法で行われ、同様のアドレス変換テーブルＮＬＰＴＢＬ自身に対する消去回数の平準化についても同様の効果が得られることは言うまでもない。したがって、不揮発性メモリ装置ＮＶＭ１０〜１７へ書き込まれるデータのみならずアドレス変換テーブルＮＬＰＴＢＬ自身へも消去回数の平準化が行われ高信頼で長寿命のメモリモジュールＮＶＭＤ０が実現できる。
【０２３４】  《メモリモジュール内のガーベッジコレクション＋スタティックウエアレベリング》図１５Aは、図１のメモリモジュールＮＶＭＤ０内で行われる不揮発性メモリＮＶＭ１０〜ＮＶＭ１７に対するガーベッジコレクションおよびスタティックウエアレベリング方法の一例を示すフロー図である。図１６Aは、図１５Aのフローを概略的に説明する補足図である。図１５Aのフローは、主に図２の情報処理回路ＭＡＮＡＧＥＲによって実行される。不揮発性メモリＮＶＭ１０〜ＮＶＭ１７へデータを書き込み続けると、消去状態の物理アドレス数（物理ブロック数）が減少してしまう。この消去状態の物理アドレス数（物理ブロック数）が０になると、メモリモジュールＮＶＭＤ０は不揮発性メモリＮＶＭ１０〜ＮＶＭ１７へ、これ以上書き込みを行えなくなってしまう。そこで、消去状態の物理アドレス数（物理ブロック数）を増やす必要がある。
【０２３５】  不揮発性メモリＮＶＭ１０〜ＮＶＭ１７の代表的な不揮発性メモリであるNAND型フラッシュメモリでは、1つの物理アドレスに対してデータを書き込むための最小データサイズより、１個の物理ブロックアドレスに対してデータを消去するための最小データサイズが大きいため、１個の物理ブロックには、複数個の物理アドレスが含まれる。
【０２３６】  そのため、このような不揮発性メモリへデータを書込み続けると、これまで説明してきたように、１個の物理ブロックには、データを消去してはならない物理アドレス（有効物理アドレス）と、データを消去しても良い物理アドレス（無効物理アドレス）とが混在してしまう。このような状態で、１個の物理ブロックへ有効物理アドレスと無効物理アドレスが混在した状態で、消去状態の物理アドレス数を増加させるために、ガーベッジコレクション動作が必要とされる。
【０２３７】  そして、このガーベッジコレクション動作の際には、併せてウエアレベリング動作を行うことが望ましい。そこで、図１５Aのフローを実行することが有益となる。
【０２３８】  図１５Aにおいて、図２の情報処理回路ＭＡＮＡＧＥＲは、まず、不揮発性メモリＮＶＭ００内に格納される不揮発性メモリＮＶＭ１０〜ＮＶＭ１７の消去状態の物理ブロック数Ｅｓｚを読み出す（Step1）。次に、予め定めた消去状態の物理ブロック数の閾値ＤＥＲＣｔｈとＥｓｚとを比較し（Step2）、Ｅｓｚ≧ＤＥＲＣｔｈの場合はStep1へ進み、Ｅｓｚ＜ＤＥＲＣｔｈの場合はStep3へ進む。Step3では、ＭＡＮＡＧＥＲは、不揮発性メモリＮＶＭ００内に格納されている消去回数テーブル（ＥＲＳＴＢＬ）と、物理ブロックテーブル（ＰＢＫＴＢＬ）と、物理アドレステーブル（ＰＡＤＴＢＬ）を読み出す。ＥＲＳＴＢＬにより各物理ブロック毎の消去回数が判明し、ＰＢＫＴＢＬにより各物理ブロックの状態（消去状態、一部書き込み済み、全部書き込み済み）や各物理ブロック毎の無効な物理アドレス数（ＩＮＶＰ）が判明し、ＰＡＤＴＢＬにより各物理アドレスが有効か無効かが判明する。
【０２３９】  次に、情報処理回路ＭＡＮＡＧＥＲは、全部書き込み済の物理ブロックを対象に、消去回数値の小さい順に、無効な物理アドレス数（ＩＮＶＰ）の総和が物理ブロックのサイズ以上になるまで、全部書き込み済の物理ブロックを順次選択する（Step4）。ここで、例えば、図１６Aのような場合を想定する。図１６Aの例では、物理ブロックＰＢＫ［０］が３個の物理アドレスＰＡＤ［０］〜ＰＡＤ［２］で構成され、同様に、物理ブロックＰＢＫ［１］、ＰＢＫ［２］およびＰＢＫ［３］が、それぞれ３個の物理アドレスＰＡＤ［３］〜ＰＡＤ［５］、ＰＡＤ［６］〜ＰＡＤ［８］およびＰＡＤ［９］〜ＰＡＤ［１１］で構成されるものとする。
【０２４０】  物理アドレスＰＡＤ［０］、［３］および［６］は、消去状態ではない無効物理アドレスであり、ＰＡＤ［１］、［２］［４］、［５］、［７］および［８］は消去状態ではない有効物理アドレスである。
【０２４１】  ＰＢＫ［０］，ＰＢＫ［１］，ＰＢＫ［２］，ＰＢＫ［３］の消去回数は、それぞれ、７，８，９，１０とし、ＰＢＫ［３］は、消去状態（Ｅ）であるものとする。また、ＰＡＤ［０］〜ＰＡＤ［８］には、それぞれ、ライトデータＷＤＴ０〜ＷＤＴ８が書き込まれ、この内のＰＡＤ［０］，ＰＡＤ［３］，ＰＡＤ［６］（ＷＤＴ０，ＷＤＴ３，ＷＤＴ６）が無効“０”であり、ＰＡＤ［１］、ＰＡＤ［２］、ＰＡＤ［４］、ＰＡＤ［５］、ＰＡＤ［７］およびＰＡＤ［８］（ＷＤＴ１，ＷＤＴ２，ＷＤＴ４、ＷＤＴ５，ＷＤＴ７，ＷＤＴ８）が有効“１”であるものとする。
【０２４２】  このような状態（ｔ＝１）において、例えば、消去状態の物理ブロック数が２以上必要であった場合（図１５A：Step2）、ガーベージコレクション動作が実行される。図１６Aの例では、図１５AのStep4により、物理ブロックＰＢＫ［０］，ＰＢＫ［１］，ＰＢＫ［２］が選択されることになる。続いて、図１５AのStep5において、情報処理回路ＭＮＧＥＲは、当該選択された物理ブロック内の有効な物理アドレスのデータを読み出し、一旦、不揮発性メモリＮＶＭ００へ格納する。図１６Aの例では、ライトデータＷＤＴ１，ＷＤＴ２，ＷＤＴ４，ＷＤＴ５，ＷＤＴ７，ＷＤＴ８が不揮発性メモリＮＶＭ００へ格納される。その後、ＭＡＮＡＧＥＲは、当該選択された物理ブロックを消去する（図１５A：Step6、図１６のｔ＝２）。
【０２４３】  その後、図１５AのStep7において、情報処理回路ＭＡＮＡＧＥＲは、不揮発性メモリＮＶＭ００へ一旦格納していたライトデータを不揮発性メモリＮＶＭ１０〜ＮＶＭ１７内の消去状態の物理ブロックに書き戻す。これによってガーベージコレクション動作が実現される。更に、書き戻しの際には、消去状態の物理ブロックの中で、消去回数値の最も小さな物理ブロックから順に選択して書き戻しが行われる。これによってガーベージコレクション動作と並行してウエアレベリング動作が実現される。図１６Aの例では、ｔ＝３に示すように、消去回数値が小さい順に２個の物理ブロックＰＢＫ［０］，ＰＢＫ［１］が選択され、当該物理ブロックに不揮発性メモリNVM00内のライトデータＷＤＴ１，ＷＤＴ２，ＷＤＴ４，ＷＤＴ５，ＷＤＴ７，ＷＤＴ８が書き戻される。その結果、物理ブロックＰＢＫ［３］に加えて更に１個の消去状態の物理ブロック（ここではＰＢＫ［２］）が生成されることになる。
【０２４４】  次に、図１５AのStep8において、情報処理回路ＭＡＮＡＧＥＲは、不揮発性メモリＮＶＭ００へ内のアドレス変換テーブル（ＬＰＴＢＬ）、消去回数テーブル（ＥＲＳＴＢＬ）、物理ブロックテーブル（ＰＢＫＴＢＬ）、および物理アドレステーブル（ＰＡＤＴＢＬ）と、消去状態の物理ブロック数Ｅｓｚを更新する。
【０２４５】  以上のようなガーベッジコレクション動作およびウエアレベリング動作（言うなればスタティックウエアレベリング動作）を行うことで図１４に示したようなダイナミックウエアレベリング動作と共にメモリモジュール内での不揮発性メモリＮＶＭ１０〜ＮＶＭ１７の消去回数の平準化がなされ、高信頼で長寿命のメモリモジュールＮＶＭＤ０が実現できる。
【０２４６】  また、不揮発性メモリＮＶＭ００が1つの物理アドレスに対してデータを書き込むための最小データサイズより、１個の物理ブロックアドレスに対してデータを消去するための最小データサイズが大きいような不揮発性メモリであれば、この不揮発性メモリＮＶＭ００に対するガーベッジコレクションおよびスタティックウエアレベリング方法は図１５Aおよび図１６Aで説明した手順と同様の手順で実行され、ダイナミックウエアレベリング動作と共にメモリモジュール内の不揮発性メモリＮＶＭ００での消去回数の平準化がなされ、高信頼で長寿命のメモリモジュールＮＶＭＤ０が実現できる。
【０２４７】  不揮発性メモリＮＶＭ００あるいは不揮発性メモリＮＶＭ１０〜１７が、上書き可能な不揮発性メモリであったり、1つの物理アドレスに対してデータを書き込むための最小データサイズと、データを消去するための最小データサイズを等しくできる不揮発性メモリであれば、図１５Aおよび図１６Aにて説明した１つの物理ブロックを1つの物理アドレスに対応できる。そのため、１個の物理ブロックには、データを消去してはならない物理アドレス（有効物理アドレス）と、データを消去しても良い物理アドレス（無効物理アドレス）とは混在しないので、ガーベッジコレクション動作は不要で、新たなデータを書き込みに必要な分だけ無効物理アドレスに対し消去動作を行い、図１０〜１４に示した方法で、書き込むことができるので、高速、高信頼かつ長寿命のメモリモジュールＮＶＭＤ０が実現できる。
【０２４８】  上書き可能な不揮発性メモリであったり、1つの物理アドレスに対してデータを書き込むための最小データサイズと、データを消去するための最小データサイズを等しくできる不揮発性メモリとして、相変化型メモリPCM、抵抗変化型メモリReRAM、スピン注入磁化反転型メモリＳＴＴ−ＭＲＡＭ、強誘電体メモリ等がある。
【０２４９】  《ＳＳＤコンフィグレーション情報の詳細》図１８Ａ、図１８Ｂ、図１８Ｃおよび図１８Ｄは、不揮発性メモリ装置ＮＶＭ００に格納されるＳＳＤコンフィグレーション情報ＳＤＣＦＧのそれぞれ異なる一例を示す図である。各図において、ChipNoはメモリモジュールＮＶＭＭＤ０に利用されている不揮発性メモリ装置の番号を示し、FUNCは機能を示し、CAPは物理容量値を示し、Cellはメモリの種類を示し、ENDRはこの不揮発性メモリ装置がデータ消去動作を必要とする不揮発性メモリ装置であればデータの最大消去回数を示し、この不揮発性メモリ装置がデータ消去動作を必要としない上書き可能な不揮発性メモリ装置であれば最大書き込み回数を示し、ERSSIZEは最小データ消去サイズを示し、PAGESIZEは最小データ書込みサイズを示し、GCFはガーベージコレクションフラグを示し、ＬＲＮＧは論理アドレス領域を示す。
【０２５０】  ＬＲＮＧは論理アドレス領域はメモリモジュールＮＶＭＭＤ０の論理アドレス領域であり、特に限定しないが、１論理アドレスが4キロバイト単位での論理アドレスＬＡＤでの範囲を示す。
【０２５１】  ガーベージコレクションフラグGCFがOFFの場合は、ガーベージコレクションを行わないことを示し、ONの場合はガーベージコレクションを行うことを示す。
【０２５２】  まず、図１８Ａについて説明する。ChipNoがＮＶＭ００は不揮発性メモリ装置ＮＶＭ００に対応し、非キャッシュメモリNonCacheおよびキャッシュメモリCacheとして利用される。非キャッシュメモリNonCacheの物理容量は2ギガバイト（２GB）であり、キャッシュメモリCacheの物理容量は６ギガバイト（６GB）である。また、不揮発性メモリ装置ＮＶＭ００は相変化型メモリPCMであり、その最大消去回数ENDRは１００００００回、最小データ消去サイズERSSIZEは４キロバイト（４ｋB）、最小データ書込みサイズPAGESIZEは４キロバイト（４ｋB）、ガーベージコレクションフラグGCFはOFFである。ガーベージコレクションフラグGCFはOFFのため、不揮発性メモリ装置ＮＶＭ００へはガーベージコレクションを行わない。ChipNoがＮＶＭ１０〜１７は不揮発性メモリ装置ＮＶＭ１０〜１７に対応し、ストレージStorageとして利用される。ストレージStorageの物理容量は1.2テラバイト（1.2TB）である。また、不揮発性メモリ装置ＮＶＭ１０〜１７はNAND型フラッシュメモリNAND1であり、その最大消去回数ENDRは５０００回、最小データ消去サイズERSSIZEは１メガバイト（１MB）、最小データ書込みサイズPAGESIZEは４キロバイト（４ｋB）、ガーベージコレクションフラグGCFはONである。ガーベージコレクションフラグGCFはONのため、不揮発性メモリ装置ＮＶＭ１０〜１７へはガーベージコレクションを行う。
【０２５３】  メモリモジュールＮＶＭＭＤ０の論理アドレス領域ＬＲＮＧは、１６進数で“００００＿００００”〜“０ＦＦＦ＿ＦＦＦＦ”の論理アドレスＬＡＤ空間を占め、１論理アドレスが4キロバイトのデータサイズの場合、情報処理装置ＣＰＵ＿ＣＰは、このメモリモジュールＮＶＭＭＤ０を1テラバイトの容量を持つメモリモジュールとして管理することができる。
【０２５４】  次に、図１８Ｂについて説明する。ChipNoがＮＶＭ００は不揮発性メモリ装置ＮＶＭ００に対応し、抵抗変化型メモリReRAMである。これ以外は、図１８Ａと同様である。
【０２５５】  次に、図１８Ｃについて説明する。ChipNoがＮＶＭ２０は不揮発性メモリ装置ＮＶＭ２０に対応し、非キャッシュメモリNonCacheとして利用され、物理容量は2ギガバイト（２GB）である。また、不揮発性メモリ装置ＮＶＭ２０はスピン注入磁化反転型メモリＳＴＴ−ＭＲＡＭで、消去動作が不要の上書き可能な不揮発性メモリであり、最大書き込み回数ENDRには制限がなく、最小データ消去サイズERSSIZEは存在せず、最小データ書込みサイズPAGESIZEは２バイト（２B）で、ガーベージコレクションフラグGCFはOFFである。
【０２５６】  ChipNoがＮＶＭ００は不揮発性メモリ装置ＮＶＭ００に対応し、キャッシュメモリCacheとして利用される。キャッシュメモリCacheの物理容量は８ギガバイト（８GB）であり、これ以外は、図１８Ａで示した不揮発性メモリ装置ＮＶＭ００と同様である。
【０２５７】  ChipNoがＮＶＭ１０〜１７は不揮発性メモリ装置ＮＶＭ１０〜１７は不揮発性メモリ装置ＮＶＭ１０〜１７に対応し、図１８Ａと同様である。論理アドレス領域ＬＲＮＧについても、図１８Ａと同様である。
【０２５８】  次に、図１８Ｄについて説明する。ChipNoがＮＶＭ００は不揮発性メモリ装置ＮＶＭ００に対応し、非キャッシュメモリNonCacheおよびキャッシュメモリCacheとして利用される。非キャッシュメモリNonCacheの物理容量は2ギガバイト（２GB）であり、キャッシュメモリCacheの物理容量は６ギガバイト（６GB）である。また、不揮発性メモリ装置ＮＶＭ００はNAND型フラッシュメモリNAND2であり、その最大消去回数ENDRは１０００００回、最小データ消去サイズERSSIZEは512キロバイト（512ｋB）、最小データ書込みサイズPAGESIZEは４キロバイト（４ｋB）、ガーベージコレクションフラグGCFはONである。ガーベージコレクションフラグGCFはONのため、不揮発性メモリ装置ＮＶＭ００へはガーベージコレクションを行う。
【０２５９】  ChipNoがＮＶＭ１０〜１７は不揮発性メモリ装置ＮＶＭ１０〜１７に対応し、ストレージStorageとして利用される。ストレージStorageの物理容量は1.2テラバイト（1.2TB）である。また、不揮発性メモリ装置ＮＶＭ１０〜１７はNAND型フラッシュメモリNAND３であり、その最大消去回数ENDRは１０００回、最小データ消去サイズERSSIZEは２メガバイト（２MB）、最小データ書込みサイズPAGESIZEは４キロバイト（４ｋB）、ガーベージコレクションフラグGCFはONである。ガーベージコレクションフラグGCFはONのため、不揮発性メモリ装置ＮＶＭ１０〜１７へはガーベージコレクションを行う。論理アドレス領域ＬＲＮＧについても、図１８Ａと同様である。
【０２６０】  このように、ＳＳＤコンフィグレーション情報により、メモリモジュールＮＶＭＭＤ０に利用する様々な不揮発性メモリ装置の仕様を反映でき、柔軟に対応できる。
【０２６１】  図１８Ｅは、不揮発性メモリ装置ＮＶＭ００に格納されるキャッシュ構成情報ＣＡＣＨＥＳＴ、製品寿命LifeTimeＭＭ、書込みデータ許容量閾値Wth1、Wth2、データ書き込み量基準値Wchkを示す。
【０２６２】  キャッシュ構成情報ＣＡＣＨＥＳＴには、キャッシュメモリのエントリー数Entry、ウェイ数Way、ラインサイズLinesizeが含まれており、それぞれ、Centry1、Cway1、Clinesizeが設定されている。製品寿命LifeTimeＭＭはへは１０００日間、書込みデータ許容量閾値Wth1へはｍ１、書込みデータ許容量閾値Wth2へはｍ２、データ書き込み量基準値Wchkへはｎ３が設定されている。
【０２６３】  《アドレスマップADMAPの詳細》図１９は、ＳＳＤコンフィグレーション情報の図１８Ａに対応したアドレスマップADMAPの一例を示す。また、このアドレスマップADMAPは不揮発性メモリ装置ＮＶＭ００に格納される。
【０２６４】  図１９Ａに示す通り、LADは、情報処理装置ＣＰＵ＿ＣＰからメモリモジュールＮＶＭＭＤ０へ入力される４キロバイトデータを単位とした論理アドレスである。
【０２６５】  PADは不揮発性メモリ装置ＮＶＭ１０〜１７の物理アドレスであり、制御回路ＭＤＬＣＴ０から不揮発性メモリ装置ＮＶＭ１０〜１７へ入力されるアドレスである。
【０２６６】  また、CPADは不揮発性メモリ装置ＮＶＭ００の物理アドレスであり、制御回路ＭＤＬＣＴ０から不揮発性メモリ装置ＮＶＭ００へ入力されるアドレスである。
【０２６７】  不揮発性メモリ装置ＮＶＭ００の容量は８ギガバイトあり、その内６ギガバイトの容量がキャッシュメモリとして利用され、残りの２ギガバイトは非キャッシュメモリである。
【０２６８】  この形態例の場合、物理アドレスPADおよびCPADは、４キロバイト（４ｋB）のメインデータDAreaと１２８（１２８B）バイト冗長データRAreaの和を単位とした物理アドレスで与えられる。
【０２６９】  制御回路ＭＤＬＣＴ０は、論理アドレスLADを物理アドレスPADおよびCPADへ変換し、不揮発性メモリ装置ＮＶＭ１０〜１７およびＮＶＭ００へデータを書き込む。
【０２７０】  論理アドレス領域LRNGは、16進数で“0000_0000”〜“0FFF_FFFF”の論理アドレスLAD空間を占め、１テラバイトの容量を持つ。
【０２７１】  論理アドレス領域LRNGへ対応する不揮発性メモリ装置ＮＶＭ１０〜１７の物理アドレスは、16進数で“0000_0000”〜“1333_3333”の物理アドレス空間を占め、1.2テラバイトの容量を持つ。また、論理アドレス領域LRNGへ対応するキャッシュメモリは不揮発性メモリ装置ＮＶＭ００であり、その物理アドレスCPAは、16進数で“0000_0000”〜“0017_FFFF”の物理アドレス空間を占め、６ギガバイトの容量を持つ。
【０２７２】  図１９Ｂに示す通り、不揮発性メモリ装置ＮＶＭ００の残りの２ギガバイトは非キャッシュメモリであり、物理アドレスCPAが、16進数で“0018_0000”〜“001F_9BFFの範囲には、アドレス変換テーブルＮＬＰＴＢＬおよび不揮発性メモリ装置ＮＶＭ００に関するアドレス変換テーブルＣＬＰＴＢＬ等が格納される。
【０２７３】  さらに、不揮発性メモリ装置ＮＶＭ００の残りの２ギガバイトの内、物理アドレスCPAが、16進数で“001F_9C00”〜“001F_FFFFの範囲には、ＳＤＤコンフィグレーション情報ＳＤＣＦＧ、データ保持特性テーブルＲＥＴＢＬやデータ保持特性関数ＤＲＥＦＴ、製品寿命LifeTimeＭＭ、書込みデータ許容量閾値Wth1およびWth2、データ書き込み量基準値Wchk、アドレスマップＡＤＭＡＰ、キャッシュ構成情報ＣＡＣＨＥＳＴ、ＮＶＭ優先利用情報ＦＣＧＲ、ブートプログラムＢＴＰ等が格納される。
【０２７４】  図２０は、本発明の別の実施の形態によるメモリモジュールおよび情報処理システムの概略構成例を示すブロック図である。メモリモジュールＮＶＭＭＤ１は、不揮発性メモリ装置ＮＶＭ２０と、ＮＶＭ００と、ＮＶＭ１０〜ＮＶＭ１７と、これら不揮発性メモリ装置を制御する制御回路ＭＤＬＣＴ１を備える。
【０２７５】  図２１は図２０における制御回路ＭＤＬＣＴ１の構成例を示すブロック図である。図２１に示す制御回路ＭＤＬＣＴ１は、インターフェース回路ＨＯＳＴ＿ＩＦと、バッファＢＵＦ０〜ＢＵＦ３と、書込み物理アドレステーブルＮＸＣＴＢＬ、ＮＸＮＴＢＬと、調停回路ＡＲＢと、情報処理回路ＭＡＮＡＧＥＲと、メモリ制御回路ＮＶ２Ｃ、ＮＶ０Ｃ、ＮＶＣＴ１０〜ＮＶＣＴ７と、マップレジスタＭＡＰＲＥＧと、レジスタＴＷＲＥＧ、レジスタＲＤＲＥＴＢＬ、レジスタＲＤＲＥＴＦ、レジスタＲＤＲＥＴ、レジスタＲＷＳＰＣ、レジスタＦＣＧＲＥＧ、レジスタＲＳＤＣＦＧ、キャッシュテーブルＣＡＴＢＬを備える。
【０２７６】  メモリ制御回路ＮＶ２Ｃは、図２０の不揮発性メモリ装置ＮＶＭ２０を直接制御する回路であり、これ以外のブロックは、図２で示すブロックと同様に動作を行う。
【０２７７】  不揮発性メモリ装置ＮＶＭ２０は、最大データ書込み回数や消去回数に制限の無い不揮発性メモリ装置や、最大データ書込み回数や消去回数の制限が、メモリモジュールＮＶＭＭＤ１の製品寿命に影響を与えないほど大きな値を持つ不揮発性メモリ装置である。
【０２７８】  不揮発性メモリ装置ＮＶＭ２０としてスピン注入磁化反転型メモリＳＴＴ−ＭＲＡＭや強誘電体メモリＦｅＲＡＭ等が利用可能である。
【０２７９】  不揮発性メモリ装置ＮＶＭ００と、ＮＶＭ１０〜ＮＶＭ１７には、ＮＡＮＤ型フラッシュメモリ、ＮＯＲ型フラッシュメモリ、相変化型メモリPCM、抵抗変化型メモリReRAMなどメモリ等が利用できる。
【０２８０】  また、図２０に示したメモリモジュールＮＶＭＭＤ１に対応するＳＳＤコンフィグレーション情報の一例は図１８Ｃである。
【０２８１】  不揮発性メモリ装置ＮＶＭ２０へは、図１で示した不揮発性メモリ装置ＮＶＭ００へ格納されていた不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７に関するアドレス変換テーブルＮＬＰＴＢＬ、ＮＡＬＰＴＢＬおよび不揮発性メモリ装置ＮＶＭ００に関するアドレス変換テーブルＣＬＰＴＢＬ、ＣＡＬＰＴＢＬが格納される。
【０２８２】  これらのアドレス変換テーブルＮＬＰＴＢＬ、ＮＡＬＰＴＢＬ、ＣＬＰＴＢＬ、ＣＡＬＰＴＢＬを不揮発性メモリ装置ＮＶＭ２０へ格納することにより、アドレス変換テーブル自身へのウエアレベリングを行う必要が無いため、図２１で示すように制御回路ＭＤＬＣＴ１には書込み物理アドレステーブルＮＸＣＡＴＢＬ、ＮＸＮＡＴＢＬおよびアドレス変換テーブルＮＡＰＴＢＬ、ＣＡＰＴＢＬを削減できる。これのテーブルを削減できることにより、制御回路ＭＤＬＣＴ１は図３から図７にて説明した書込み物理アドレステーブルＮＸＣＡＴＢＬ、ＮＸＮＡＴＢＬおよびアドレス変換テーブルＮＡＰＴＢＬ、ＣＡＰＴＢＬの更新動作や、図１１のＳｔｅｐ１１および図１３のＳｔｅｐ１２６で示したアドレス変換テーブルＮＡＰＴＢＬ、ＣＡＰＴＢＬの読出し動作が不要となり、不揮発性メモリ装置ＮＶＭ００およびＮＶＭ１０〜ＮＶＭ１７への読出しや書込みを高速に行うことができる。
【０２８３】  《本実施の形態による代表的な効果の纏め》以上に説明した各実施の形態によって得られる代表的な効果を纏めると以下の通りである。
【０２８４】  第１に、不揮発性メモリ装置ＮＶＭ００とＮＶＭ１０−１７のそれぞれの最大書込みデータ量を超えないように、最大限に不揮発性メモリ装置ＮＶＭ００をキャッシュメモリとして活用できるため、高信頼かつ高速なメモリモジュールＮＶＭＭＤ０および情報処理システムを実現できる。さらに、書換えデータ量閾値Wth1およびWth2、最大書込みデータ量W00maxおよびW017maxはプログラム可能であり、不揮発性メモリ装置の特性、メモリモジュールＮＶＭＤ０および情報処理システムが要求される機能、性能及び信頼性のレベルに合わせて柔軟に対応することができる。
【０２８５】  第２に、メモリモジュールＮＶＭＭＤ０が情報処理装置ＣＰＵ＿ＣＰからの一回当たりの書き込み要求に対するデータ書き込み量をチェックしており、一回当たりの書き込み要求に対するデータ書き込み量が小さなランダムアクセスはキャッシュメモリとして動作する不揮発性メモリ装置ＮＶＭ００へ書込むことで高速化を実現できる。さらに、一回当たりの書き込み要求に対するデータ書き込み量が大きなシーケンシャルアクセスはＮＶＭ１０〜１７へ書き込むことでデータ転送速度を向上することができる。さらに、データ書き込み量Wchkはプログラム可能であり、情報処理装置ＣＰＵ＿ＣＰにて実行するアプリケーションがメモリモジュールＮＶＭＤ０へ要求するアクセス特性に合わせて柔軟に対応することができる。
【０２８６】  第３に、ＯＳおよびアプリケーションを実行する情報処理装置ＣＰＵ＿ＣＰは、メモリモジュールＮＶＭＤ０へ要求するリードおよびライトのアクセス特性を知っており、情報処理装置ＣＰＵ＿ＣＰからメモリモジュールＮＶＭＤ０内の不揮発性メモリ装置ＮＶＭ００および不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７の利用方法を指示し、メモリモジュールＮＶＭＤ０を動作させることができるため高信頼かつ高速な情報処理システムを実現できる。
【０２８７】  第４に、不揮発性メモリのデータ保持時間を考慮し、不揮発性メモリへデータを書込むことにより、メモリモジュールＮＶＭＭＤ０の製品寿命を常に保証した信頼性の高いメモリモジュールＮＶＭＭＤ０を提供できる。
【０２８８】  第５に、不揮発性メモリＮＶＭ００と不揮発性メモリＮＶＭ１０〜１７のデータ保持時間比較し、不揮発性メモリＮＶＭ００あるいはＮＶＭ１０〜１７へデータを書込むことにより、メモリモジュールＮＶＭＭＤ０の製品寿命を常に保証しながら、最大限に不揮発性メモリ装置ＮＶＭ００をキャッシュメモリとして活用できるため、高信頼かつ高速なメモリモジュールＮＶＭＭＤ０および情報処理システムを実現できる。
【０２８９】  第６に、メモリモジュールＮＶＭＭＤ０から入力したアドレスおよび書込みデータを不揮発性メモリＮＶＭ００および不揮発性メモリＮＶＭ１０〜１７へ書込む際、書込みデータのみならずアドレス変換テーブルに対してもウエアレベリングを行うことにより、消去回数の平準化が書込みデータおよびアドレス変換テーブルの双方に対して効率よくなされ、高信頼で長寿命のメモリモジュールが実現できる。
【０２９０】  第７に、ダイナミックウエアレベリングとスタティックウエアレベリング動作により、メモリモジュール内での不揮発性メモリの消去回数の平準化が効率よくなされ、高信頼で長寿命のメモリモジュールが実現できる。
【０２９１】  第８に、メモリモジュールＮＶＭＭＤ１から入力したアドレスおよび書込みデータを不揮発性メモリＮＶＭ００および不揮発性メモリＮＶＭ１０〜１７へ書込む際、揮発性メモリＮＶＭ２０へ保存したアドレス変換テーブルに対してウエアレベリングを不要とし、不揮発性メモリＮＶＭ００および不揮発性メモリＮＶＭ１０〜１７へ保存されたデータに対してはウエアレベリングを行うことにより、高速且つ高信頼で長寿命のメモリモジュールが実現できる。
【０２９２】  以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【０２９３】ＣＰＵ＿ＣＰ：情報処理装置ＮＶＭＭＤ０、ＮＶＭＭＤ１：メモリモジュールＨＤＨ＿ＩＦ：インターフェース信号ＮＶＭ００：不揮発性メモリ装置ＮＶＭ１０〜ＮＶＭ１７：不揮発性メモリ装置ＭＤＬＣＴ０、１：制御回路ＲＳＴＳＩＧ：リセット信号ＲＥＦ＿ＣＬＫ：  参照クロック信号ＨＯＳＴ＿ＩＦ：インターフェース回路ＨＯＳＴ＿ＩＦＢＵＦ０〜ＢＵＦ３：バッファＢＵＦ０〜ＢＵＦ３ＮＬＰＴＢＬ、ＮＡＬＰＴＢＬ：アドレス変換テーブルＣＬＰＴＢＬ、ＣＡＬＰＴＢＬ：アドレス変換テーブルＮＸＣＴＢＬ、ＮＸＮＴＢＬ：書込み物理アドレステーブルＮＸＣＡＴＢＬ、ＮＸＣＡＴＢＬ：書込み物理アドレステーブルＡＲＢ：調停回路ＭＡＮＡＧＥＲ：  情報処理回路ＮＶ０Ｃ、ＮＶ２Ｃ、ＮＶＣＴ１０〜ＮＶＣＴ７：  メモリ制御回路ＭＡＰＲＥＧ：マップレジスタＲＤＲＥＴＢＬ、ＲＤＲＥＴＦ、ＲＤＲＥＴ：レジスタＲＷＳＰＣ、ＦＣＧＲＥＧ、ＴＷＲＥＧ、ＲＳＤＣＦＧ：レジスタＳＤＣＦＧ：ＳＤＤコンフィグレーション情報ＣＡＴＢＬ：  キャッシュテーブルＴＲｅｔ００、ＴＲｅｔ１７、Ｒｅｔ：  データ保持時間。
【図１】
2014167621.tif 000003
【図２】
2014167621.tif 000004
【図３】
2014167621.tif 000005
【図４】
2014167621.tif 000006
【図５Ａ】
2014167621.tif 000007
【図５Ｂ】
2014167621.tif 000008
【図６Ａ】
2014167621.tif 000009
【図６Ｂ】
2014167621.tif 000010
【図７】
2014167621.tif 000011
【図８Ａ】
2014167621.tif 000012
【図８Ｂ】
2014167621.tif 000013
【図９】
2014167621.tif 000014
【図１０】
2014167621.tif 000015
【図１１】
2014167621.tif 000016
【図１２】
2014167621.tif 000017
【図１３】
2014167621.tif 000018
【図１４】
2014167621.tif 000019
【図１５】
2014167621.tif 000020
【図１６】
2014167621.tif 000021
【図１７Ａ】
2014167621.tif 000022
【図１７Ｂ】
2014167621.tif 000023
【図１８Ａ】
2014167621.tif 000024
【図１８Ｂ】
2014167621.tif 000025
【図１８Ｃ】
2014167621.tif 000026
【図１８Ｄ】
2014167621.tif 000027
【図１８Ｅ】
2014167621.tif 000028
【図１９Ａ】
2014167621.tif 000029
【図１９Ｂ】
2014167621.tif 000030
【図２０】
2014167621.tif 000031
【図２１】
2014167621.tif 000032
【手続補正書】
【提出日】平成28年8月2日(2016.8.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の物理ブロックを有する不揮発性メモリ装置と、これを制御するコントローラからなるメモリモジュールであって、
前記不揮発性メモリ装置は、前記不揮発性メモリ装置の消去回数あるいは書き込み回数と前記不揮発性メモリ装置がデータを保持できる時間であるデータ保持時間の関係を示す情報を示すテーブルを保持し、
前記コントローラは、
前記複数の物理ブロックそれぞれにおける消去回数あるいは書き込み回数の最大値を求め、
前記最大値が変化する毎に、前記テーブルを検索して、変化後の最大値に対応するデータ保持時間を取得し、
前記データ保持時間に基づいて、前記不揮発性メモリ装置へデータを書込むか否かを決定することを特徴するメモリモジュール。
【請求項２】
請求項１記載のメモリモジュールにおいて、
前記コントローラは、前記データ保持時間が前記メモリモジュールの製品残存寿命以上であれば、前記不揮発性メモリ装置へデータを書込むことを特徴するメモリモジュール。
【請求項３】
請求項１記載のメモリモジュールにおいて、
前記コントローラは、
前記メモリモジュールが初めて利用可能な状態となってから現在まで経過した時間である製品利用時間と、前記前記データ保持時間の和である不揮発性メモリ最大寿命を算出し、
所定の使用条件下で前記メモリモジュールが初めて使用可能な状態となって、当該メモリモジュールの機能および性能を保証できる期間を示し、前記テーブルに格納された製品寿命と、前記不揮発性メモリ最大寿命を比較して、前記不揮発性メモリ最大寿命が前記製品寿命以上であれば、前記不揮発性メモリ装置へデータを書込むことを特徴するメモリモジュール。
【国際調査報告】
2014167621.tif 000033
2014167621.tif 000034
2014167621.tif 000035
2014167621.tif 000036
2014167621.tif 000037
2014167621.tif 000038
2014167621.tif 000039