(57)【要約】  揮発性および不揮発性のいずれか一方の第１のメモリ装置と、不揮発性の第２のメモリ装置と、不揮発性の第３のメモリ装置と、これを制御するコントローラを含むメモリモジュールであって、第２のメモリ装置の容量は、第１のメモリ装置の容量より大きく、第３のメモリ装置の容量は、第２のメモリ装置の容量より大きく、第２のメモリ装置の書き換え回数の第２の上限値は、第３のメモリ装置の書き換え回数の第３の上限値より大きく、第１のメモリ装置の書き換え回数の第１の上限値は、第２のメモリ装置の書き換え回数の第２の上限値より大きく、コントローラは、第１のメモリ装置に格納される、第２のメモリ装置に関する第１のアドレス変換テーブルを参照して第２のメモリ装置にアクセスし、第２のメモリ装置に格納される、第３のメモリ装置に関する第２のアドレス変換テーブルを参照して第３のメモリ装置にアクセスする。
2016006067.tif 000002
【特許請求の範囲】
【請求項１】
揮発性および不揮発性のいずれか一方の第１のメモリ装置と、不揮発性の第２のメモリ装置と、不揮発性の第３のメモリ装置と、これを制御するコントローラを含むメモリモジュールであって、
前記第２のメモリ装置の容量は、前記第１のメモリ装置の容量より大きく、前記第３のメモリ装置の容量は、前記第２のメモリ装置の容量より大きく、
前記第２のメモリ装置の書き換え回数の第２の上限値は、前記第３のメモリ装置の書き換え回数の第３の上限値より大きく、前記第１のメモリ装置の書き換え回数の第１の上限値は、前記第２のメモリ装置の書き換え回数の前記第２の上限値より大きく、
前記コントローラは、前記第１のメモリ装置に格納される、前記第２のメモリ装置に関する第１のアドレス変換テーブルを参照して前記第２のメモリ装置にアクセスし、前記第２のメモリ装置に格納される、前記第３のメモリ装置に関する第２のアドレス変換テーブルを参照して前記第３のメモリ装置にアクセスすることを特徴するメモリモジュール。
【請求項２】
請求項１記載のメモリモジュールにおいて、
前記第１のメモリ装置には、ライトバッファ含むことを特徴するメモリモジュール。
【請求項３】
請求項２記載のメモリモジュールにおいて、
前記コントローラは前記第３のメモリ装置の物理アドレスを予め前記ライトバッファへ格納することを特徴するメモリモジュール。
【請求項４】
請求項３に記載のメモリモジュールにおいて、
前記コントローラは、前記第１のメモリ装置へのデータ書き込み、前記第３のメモリ装置の物理アドレスの決定、前記第３のメモリ装置へのデータ書き込み、前記第２のアドレス変換テーブルの更新をパイプライン処理することを特徴するメモリモジュール。
【請求項５】
請求項１記載のメモリモジュールにおいて、
前記第１のメモリ装置には、前記第２のメモリ装置の第１の書き換え回数テーブルが保存され、前記第２のメモリ装置には、前記第３のメモリ装置の第２の書き換え回数テーブルが保存されることを特徴するメモリモジュール。
【請求項６】
請求項５記載のメモリモジュールにおいて、
前記コントローラは、前記第１の書き換え回数テーブルを利用し、前記第２のメモリ装置のウエアレベリングを行い、前記第２の書き換え回数テーブルを利用し、前記第３のメモリ装置のウエアレベリングを行うことを特徴するメモリモジュール。
【請求項７】
請求項１記載のメモリモジュールにおいて、
前記第２のアドレス変換テーブルには、前記第３のメモリ装置の第３の書き換え回数テーブルが登録されることを特徴するメモリモジュール。
【請求項８】
請求項７記載のメモリモジュールにおいて、
前記コントローラは、前記第３の書き換え回数テーブルを利用し、前記第２のアドレス変換テーブルのウエアレベリングを行うことを特徴するメモリモジュール。
【請求項９】
請求項８記載のメモリモジュールにおいて、
前記コントローラは、前記第２のメモリ装置の第２の書き換え回数テーブルと、前記第３の書き換え回数テーブルを利用し、前記第２のアドレス変換テーブルのウエアレベリングを行うことを特徴するメモリモジュール。
【請求項１０】
請求項１記載のメモリモジュールにおいて、
前記第１のアドレス変換テーブルには前記第２のメモリ装置の物理アドレスへオフセットを設けることを特徴するメモリモジュール。
【請求項１１】
請求項１記載のメモリモジュールにおいて、
前記第２のメモリ装置は、上書きが可能なメモリ装置及び消去動作後にデータを書き込むメモリ装置のいずれか一方であり、前記第３のメモリ装置は、上書きが可能なメモリ装置及び消去動作後にデータを書き込むメモリ装置のいずれか一方であることを特徴するメモリモジュール。
【請求項１２】
請求項１記載のメモリモジュールにおいて、
DIMM規格と互換性をもつことを特徴するメモリモジュール。
【請求項１３】
揮発性および不揮発性のいずれか一方の第１のメモリ装置と、不揮発性の第２のメモリ装置と、不揮発性の第３のメモリ装置と、これを制御するコントローラを含むメモリモジュールと、前記メモリモジュールと接続する情報処理装置と、前記情報処理装置と接続するメモリ装置とを含む情報処理システムであって、
前記第２のメモリ装置の容量は、前記第１のメモリ装置の容量より大きく、前記第３のメモリ装置の容量は、前記第２のメモリ装置の容量より大きく、
前記第２のメモリ装置の書き換え回数の第２の上限値は、前記第３のメモリ装置の書き換え回数の第３の上限値より大きく、前記第１のメモリ装置の書き換え回数の第１の上限値は、前記第２のメモリ装置の書き換え回数の前記第２の上限値より大きく、
前記コントローラは、前記第１のメモリ装置に格納される、前記第２のメモリ装置に関する第１のアドレス変換テーブルを参照して前記第２のメモリ装置にアクセスし、前記第２のメモリ装置に格納される、前記第３のメモリ装置に関する第２のアドレス変換テーブル２を参照して前記第３のメモリ装置にアクセスすることを特徴する情報処理システム。
【請求項１４】
揮発性および不揮発性のいずれか一方の第１のメモリ装置と、不揮発性の第２のメモリ装置と、不揮発性の第３のメモリ装置と、これらを制御する第１のコントローラを含む複数の第１のメモリモジュールと、複数の前記第１のメモリモジュールを制御する第２のコントローラを含む第２のメモリモジュールと、
複数の前記第２のメモリモジュールと、前記第１のメモリモジュールと同様の構成の、前記第１のメモリモジュールとは異なる第３のメモリモジュールとを制御する第３のコントローラとを含む情報処理システムであって、
前記第２のメモリ装置の容量は、前記第１のメモリ装置の容量より大きく、前記第３のメモリ装置の容量は、前記第２のメモリ装置の容量より大きく、
前記第２のメモリ装置の書き換え回数の第２上限値は、前記第３のメモリ装置の書き換え回数の第３の上限値より大きく、前記第１のメモリ装置の書き換え回数の第１の上限値は、前記第２のメモリ装置の書き換え回数の前記第２の上限値より大きく、
前記第１のコントローラは、前記第１のメモリ装置に格納される、前記第２のメモリ装置に関する第１のアドレス変換テーブルを参照して前記第２のメモリ装置にアクセスし、前記第２のメモリ装置に格納される、前記第３のメモリ装置に関する第２のアドレス変換テーブルを参照して前記第３のメモリ装置にアクセスすることを特徴する情報処理システム。
【請求項１５】
請求項１4記載の情報処理システムにおいて、
前記第３のメモリモジュールは、前記第２のメモリモジュールのキャッシュメモリであることを特徴する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリモジュールおよびそれを用いた情報処理システムに関する。
【背景技術】
【０００２】
近年、複数のＮＡＮＤ型フラッシュメモリとコントローラから構成されるＳＳＤ（Solid State Drive）が、ストレージシステム、サーバー機器およびＬａｐｔｏｐ  ＰＣ等に利用されている。ＮＡＮＤ型フラッシュメモリには、消去回数に上限があり、SSDの寿命を決める要因となっていることが広く知られている。【０００３】
特許文献１には、NAND型フラッシュメモリと、不揮発性バッファメモリと、メモリ制御部から構成される半導体記憶装置が開示されている。半導体記憶装置へ入力した書き込みデータは、いったん不揮発性バッファメモリへ書き込まれた後、NANDフラッシュメモリへ書き込まれる。【０００４】
特許文献２には、不揮発性メモリと、RAMと、コントローラから構成される半導体記憶装置が開示されている。不揮発性メモリにはアドレス変換テーブルが格納されており、RAMにはアドレス変換テーブルの一部分が格納される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2014-021752  号公報
【特許文献２】特開2013-152676  号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
発明者は、NAND型フラッシュメモリの寿命について検討した。ＮＡＮＤ型フラッシュメモリはメモリセルの微細化や、多値データ記憶方式とともに大容量化が進んでいる。ＮＡＮＤ型フラッシュメモリのメモリセルは、半導体基板にトンネル絶縁膜を介して形成された電荷蓄積層（浮遊ゲート電極）と、その上にゲート間絶縁膜を介して積層された制御ゲート電極を有する２つのトランジスタにて形成される。【０００７】
制御ゲート電極と半導体基板間に高電圧を印加し、浮遊ゲート電極に、トンネル絶縁膜を通して、電子を出し入れすることで、トランジスタの閾値電圧Vthを変化させる。浮遊ゲート電極へ電子を注入する動作をプログラムと呼び、このプログラムにより閾値電圧Vthは高くなる。一方、浮遊ゲート電極の電子をを放出させる動作を消去動作と呼び、この消去動作により閾値電圧Vthは低くなる。そこで、浮遊ゲート電極に蓄積される電荷の量を制御することによりメモリセルの閾値電圧Vthを制御し、この閾値電圧の差に基づきデータを記憶する。例えば、閾値電圧Vthの高い状態をデータ“０”、閾値電圧Vthの低い状態をデータ“１”として、２値のデータ記憶を行う。最近は、書き込まれる閾値電圧分布を細分化して、４値、８値等の多値記憶も行われている。ＮＡＮＤ型フラッシュメモリのメモリセルへデータを書き込むときに、前もってデータを消去しておく必要がある。【０００８】
このようなプログラム／消去動作を繰り返すことにより、メモリセルのトンネル絶縁膜に、電界ダメージが加わり徐々に欠陥が増加する。そして、浮遊ゲート電極に蓄積された電子がトンネル酸化膜中の欠陥を通して、抜けていき、閾値電圧Vthを変化させ、最終的にはデータの書き込みや読み出しが不可能となる。【０００９】
また、NAND型フラッシュメモリでは、書き込み対象ではないメモリセルへの書き込みが発生するプログラムディスターブが発生する。NAND型フラッシュメモリでは、メモリセルにデータを書き込む場合、制御ゲートに約１８V、Si基板に０V、非選択セルの制御ゲートに１０Vを印加する。一方ワード線が同一である非選択セルには誤書き込み防止のため、メモリセルのSi基板に８V程度の電圧を印加する必要がある。この結果、プログラム時に、書き込み対象のメモリセルに隣接した書き込み対象ではないメモリセルへ１０V程度のストレスがかかり、プログラムディスターブが発生する。【００１０】
さらに、NAND型フラッシュメモリでは、あるメモリセルのデータを数多く読み出すと、同一ページ内のメモリセルに格納されたデータが書き換わる、リードディスターブが生じる。NAND型フラッシュメモリでは、あるメモリセルからデータを読み出す場合、選択セルには読み出し電圧を０V、非選択セルには４．５Vをそれぞれ印加する。つまり、NAND型フラッシュメモリは読み出さないメモリセルにも電圧が加わる。このため記録したデータが少しずつ消えていき、閾値電圧が少しずつ変化する。【００１１】
これらの問題は、NAND型フラッシュメモリの大容量化のためのメモリセルの微細化や書き込まれる閾値電圧分布を細分化した４値、８値等の多値記憶で、より深刻となる。つまり、NAND型フラッシュメモリの大容量化に伴い、データ書き込み回数や消去回数の上限値を減少させ、その寿命を短くする。【００１２】
さらに、発明者は、ＳＳＤについて検討した。ＳＳＤはＲＡＭとＮＡＮＤ型フラッシュメモリとこれらを制御するコントローラから構成されており、ＲＡＭは、バッファメモリとして、書き込み対象となるデータを一時的に格納し、また、アドレス変換テーブルを格納する。SSD内部のコントローラは、ＮＡＮＤ型フラッシュメモリのメモリセルにある書き換え回数の上限値を超えないように、書き換え回数をメモリセルごとに平準化するために、ウエアレベリングを行う。このウエアレベリング行うために、SSDへ入力する論理アドレスとNAND型フラッシュメモリの物理アドレスとの対応付けを行うアドレス変換テーブルが必要となる。【００１３】
また、RAMが揮発性メモリの場合、電源が遮断されるとＲＡＭに保持されているデータは消えてしまい、ＳＳＤの信頼性を低下させてしまう。そこで、電源遮断に対応するためにバッファデータおよびＮＡＮＤ型フラッシュメモリのアドレス変換テーブルを不揮発性メモリへ格納する。この様な場合、利用する不揮発性メモリの容量と書き換え回数の上限により、ＳＳＤの寿命がＮＡＮＤ型フラッシュメモリの寿命以外の、バッファデータおよびＮＡＮＤ型フラッシュメモリのアドレス変換テーブルを格納している不揮発性メモリの寿命に影響を受け、短くなる場合がある。
しかしながら、係る課題については、特許文献１および２には何ら記載がない。【００１４】
本発明は、このようなことを鑑みてなされたものであり、本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１５】
開示されるメモリモジュールは、揮発性および不揮発性のいずれか一方の第１のメモリ装置と、不揮発性の第２のメモリ装置と、不揮発性の第３のメモリ装置と、これを制御するコントローラを含むメモリモジュールであって、第２のメモリ装置の容量は、第１のメモリ装置の容量より大きく、第３のメモリ装置の容量は、第２のメモリ装置の容量より大きく、第２のメモリ装置の書き換え回数の第２の上限値は、第３のメモリ装置の書き換え回数の第３の上限値より大きく、第１のメモリ装置の書き換え回数の第１の上限値は、第２のメモリ装置の書き換え回数の第２の上限値より大きく、コントローラは、第１のメモリ装置に格納される、第２のメモリ装置に関する第１のアドレス変換テーブルを参照して第２のメモリ装置にアクセスし、第２のメモリ装置に格納される、第３のメモリ装置に関する第２のアドレス変換テーブルを参照して第３のメモリ装置にアクセスする。
【発明の効果】
【００１６】
開示されるメモリモジュールは、長寿命化を実現できる。
【図面の簡単な説明】
【００１７】
【図１】実施例１の情報処理システムの構成例を示すブロック図である。
【図２】情報処理システムにおける制御回路の構成例を示すブロック図である。
【図３】アドレス対応の一例を示す図である。
【図４】アドレス変換テーブルの一例を示す図である。
【図５】アドレス変換テーブルの一例を示す図である。
【図６】データの書込み方法の一例を示すフロー図である。
【図７】データの読み出し方法の一例を示すフロー図である。
【図８】データの読み出し方法の一例を示す図である。
【図９】データの書込み方法の一例を示す図である。
【図１０】ウエアレベリング方法の一例を示すフロー図である。
【図１１】ウエアレベリング方法の一例を示すフロー図である。
【図１２】実施例２の情報処理システムおよびメモリモジュールの構成例を示すブロック図である。
【図１３】実施例３の情報処理システムの構成例を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態を、実施例により説明する。
【実施例１】
【００１９】
《情報処理システムの概要》
図１は、本実施例の情報処理システムの概略構成例を示すブロック図である。図１に示す情報処理システムは、情報処理装置（プロセッサ）CPU_CPとメモリモジュールMEMMD0とを備える。情報処理装置CPU_CPは、たとえばメモリモジュールMEMMD0へ保存されているデータを５１２バイト単位の論理アドレス（LAD）にて管理するホストコントローラである。情報処理装置CPU_CPは、インターフェース信号ＨＤＨ＿ＩＦを通じ、メモリモジュールMEMMD0に対してデータの読み出しや書込みを行う。メモリモジュールMEMMD0は、例えばＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等に該当するものである。【００２０】
情報処理装置CPU_CPとメモリモジュールMEMMD0を接続する信号方式には、シリアルインターフェース信号方式、パラレルインターフェース信号方式、光インターフェース信号方式などがあり、いずれかの方式が利用される。情報処理装置CPU_CPとメモリモジュールMEMMD0を動作させるクロック方式には、コモンクロック方式およびソースシンクロナスクロック方式や、データ信号にクロック情報を埋め込むエンベデッドクロック方式などがあり、いずれかのクロック方式が利用される。【００２１】
本実施例では、一例としてシリアルインターフェース信号方式ならびにエンベデッドクロック方式を用いるものとし、以下に動作を説明する。【００２２】
情報処理装置CPU_CPから、クロック情報が埋め込まれ、シリアルデータへ変換された読出し要求（ＲＱ）や書込み要求などがインターフェース信号ＨＤＨ＿ＩＦを通じてメモリモジュールMEMMD0へ入力される。読出し要求（ＲＱ）には論理アドレス（LAD）、データ読み出し命令（ＲＤ）、セクタカウント（ＳＥＣ）などが含まれ、また、書込み要求には論理アドレス（LAD）、データ書込み命令（ＷＲＴ）、セクタカウント（ＳＥＣ）および書込みデータ（ＷＤＡＴＡ）などが含まれる。【００２３】
メモリモジュールMEMMD0の概要を説明する。メモリモジュールMEMMD0は、メモリ装置MEM０（M0 0、MEM0 1として図示、以下M00、MEM01）と、MEM１（M1 0〜MEM1 3として図示、以下M10〜MEM13）と、MEM2_0〜MEM2_255と、これらメモリ装置を制御する制御回路（コントローラ）MDCT0を備える。【００２４】
メモリ装置MEM０は、揮発性または不揮発性のメモリ装置であり、メモリ装置MEM１及びメモリ装置MEM2_0〜MEM2_255は、不揮発性のメモリ装置である。揮発性のメモリ装置には、たとえばＤＲＡＭを用い、不揮発性のメモリ装置には、たとえばＮＡＮＤ型フラッシュメモリ、ＮＯＲ型フラッシュメモリ、相変化型メモリPCM、抵抗変化型メモリReRAM、スピン注入磁化反転型メモリＳＴＴ−ＭＲＡＭ、強誘電体メモリなどのメモリ装置を選択的に用いる。上記の不揮発性のメモリ装置には、上書きが可能なメモリ装置と消去動作後にデータを書き込むメモリ装置とがある。以下では、主として消去動作後にデータを書き込むメモリ装置を例示して説明する。【００２５】
メモリモジュールMEMMD0は、メモリ装置MEM１の容量がメモリ装置MEM０の容量より大きく、メモリ装置MEM2_0〜MEM2_255の容量がメモリ装置MEM１の容量より大きくして、各メモリ装置の容量を構成する。各メモリ装置の容量の数値例を後述する。【００２６】
メモリ装置には、一般に書き換え回数に制限がある。そこで、メモリ装置MEM１の書き換え回数の制限値（上限値）が、メモリ装置MEM2_0〜MEM2_255の書き換え回数の制限値（上限値）より大きく、メモリ装置MEM０の書き換え回数の制限値（上限値）が、メモリ装置MEM１の書き換え回数の制限値（上限値）より大きい、メモリ装置を選択して、メモリモジュールMEMMD0を構成する。そしてメモリ装置MEM１およびメモリ装置MEM2_0〜MEM2_255のウエアレベリングを実現するために、メモリ装置MEM１の書き換え回数テーブルをメモリ装置MEM０に設け、メモリ装置MEM2_0〜MEM2_255の書き換え回数テーブルをメモリ装置MEM１に設ける。【００２７】
コントローラMDCT0は、メモリ装置MEM０に格納されるアドレス変換テーブルを用いてメモリ装置MEM１へアクセス（データの書き込み、読み出し）し、メモリ装置MEM１に格納されるアドレス変換テーブルを用いてメモリ装置MEM2_0〜MEM2_255へアクセスする。メモリ装置MEM０に格納されるアドレス変換テーブルには、メモリ装置MEM１の物理アドレスへオフセットを設ける。コントローラMDCT0は、メモリ装置MEM１の書き換え回数テーブルと、メモリ装置MEM2_0〜MEM2_255の書き換え回数テーブルを用いて、メモリ装置MEM１に格納されるアドレス変換テーブルのウエアレベリングを行う。【００２８】
コントローラMDCT0は、情報処理装置CPU_CPからメモリモジュールMEMMD0への書き込みデータをメモリ装置MEM０に設けたライトバッファに書き込み、情報処理装置CPU_CPに書き込み完了を通知した後に、ライトバッファに書き込んだデータをメモリ装置MEM2_0〜MEM2_255の所定の領域に書き込む。コントローラMDCT0は、ライトバッファに書き込んだデータを格納する、メモリ装置MEM2_0〜MEM2_255の所定の領域を表す物理アドレスを決定して格納する。コントローラMDCT0は、決定した物理アドレスによって、メモリ装置MEM2_0〜MEM2_255にアクセスするための用いる、メモリ装置MEM１に格納されるアドレス変換テーブルを更新する。コントローラMDCT0は、一連の（1）メモリ装置MEM０に設けたライトバッファへのデータの書き込み、（2）このデータを書き込む、メモリ装置MEM2_0〜MEM2_255の物理アドレスの決定、（3）メモリ装置MEM2_0〜MEM2_255の、決定した物理アドレスへのデータの格納、および（4）メモリ装置MEM2_0〜MEM2_255にアクセスするための用いる、メモリ装置MEM１に格納されるアドレス変換テーブルの更新をパイプライン処理する。【００２９】
以下、メモリモジュールMEMMD0について具体的に説明する。メモリ装置MEM0にはメモリ装置MEM1に関するアドレス変換テーブルP-GLPT、アドレス変換テーブルP-GPLT、書込み回数テーブルP-WCT、物理アドレス有効無効テーブルP-VLTが格納され、さらにメモリ装置MEM０は情報処理装置CPU_CPからの書込みデータを保存するライトバッファWBUFも備える。各テーブルの説明は後述される。【００３０】
メモリ装置MEM1にはメモリ装置MEM2_0〜MEM2_255に関するアドレス変換テーブルF-LPT、アドレス変換テーブルF-PLT、書込み回数テーブルＦ−ＷＣＴ、物理アドレス有効無効テーブルF-VLT、ＳＤＤコンフィグレーション情報ＳＤＣＦＧ、アドレスマップＡＤＭＡＰ、を格納され、さらに情報処理装置CPU_CPおよびメモリモジュールMEMMD0のブートプログラムＢＴＰなどが格納される。各テーブルおよびブートプログラムの説明は後述される。【００３１】
メモリ装置MEM2_0〜MEM2_255には、情報処理装置CPU_CPが用いるデータ、ＯＳ、アプリケーションプログラム等が格納されている。【００３２】
情報処理装置CPU_CPは、ここでは、メモリモジュールMEMMD0を３．６TB分のデータを保存できるメモリモジュールであると認識しており、そのため、情報処理装置CPU_CPからメモリモジュールMEMMD0へは３．６TB分のデータを保存するための論理アドレス（LAD[32：0]）が入力される。論理アドレスLAD[3:0]、LAD[13:4]およびLAD[32:14]の、それぞれをはS-LAD、M-LAD、U-LADとする。また、メモリ装置MEM2_0〜MEM2_255の合計容量は４TBとし、メモリ装置MEM2_0〜MEM2_255のアドレスは、この４TB容量分のデータを保存するための物理アドレス（F-PAD[32：0]）となる。
メモリ装置MEM2_0〜MEM2_255の各々は、１６Gbitの容量を持つメモリ装置である。メモリ容量に関する数値例は、以下の説明も含めて、一例である。【００３３】
アドレス変換テーブルF-LPTは、情報処理装置CPU_CPからメモリモジュールMEMMD0へ入力した読出し要求（ＲＱ）や書込み要求に含まれる論理アドレス（LAD）に対応するデータがメモリ装置MEM2_0〜MEM2_255内のどの物理アドレス（P-PAD）へ格納されているかを示すテーブルである。【００３４】
書込み回数テーブルＦ−ＷＣＴは、メモリ装置MEM2_0〜MEM2_255の容量４TB中の１MBの大きさを持つブロック毎の消去回数を格納する。【００３５】
物理アドレス有効無効テーブルF-VLTは、物理アドレス（F-PAD）が有効か無効化を示すテーブルである。【００３６】
アドレス変換テーブルF-PLTは、メモリ装置MEM2_0〜MEM2_255内の物理アドレス（F-PAD）に格納されているデータが、どの論理アドレス（LAD）に対応するデータ化を示すテーブルである。
メモリ装置MEM０に格納されているアドレス変換テーブルP-GLPTはアドレス変換テーブルF-LPTがメモリ装置MEM1内のどの物理アドレス（GP-PAD）へ格納されているかを示すテーブルである。【００３７】
アドレス変換テーブルP-PLTは、メモリ装置MEM1内の物理アドレス（GP-PAD）に格納されているデータが、どの論理アドレス（U-LAD）へ対応するデータ化を示すテーブルである。【００３８】
書込み回数テーブルP-WCTは、物理アドレス（GP-PAD）毎の消去回数を格納する。【００３９】
物理アドレス有効無効テーブルP-VLTは、物理アドレス（GP-PAD）が有効か無効化を示すテーブルである。【００４０】
ライトバッファWBUFは、８KB毎の論理アドレスLADで、２５６個の論理アドレス分のデータを格納できる。情報処理装置CPU_CPから入力したデータは一旦ライトバッファWBUFへ格納され、その後、制御回路（コントローラ）MDCT0によって指定されたメモリ装置MEM2_0〜MEM2_255内の物理アドレスF-PADへ保存される。【００４１】
制御回路MDCT0は、メモリ装置MEM2_0〜MEM2_255内の物理アドレスF-PADの書換え回数が平準化するように、物理アドレスF-PADを選択し、データの書込みを行う。さらに、制御回路MDCT0は、メモリ装置MEM1内の物理アドレスGP-PADの書換え回数が平準化するように、物理アドレスGP-PADを選択し、データの書込みを行う。【００４２】
情報処理装置CPU_CPは、メモリモジュールMEMMD0から、データ、ＯＳ、アプリケーションプログラムを読出し、実行する。また、情報処理装置CPU_CPによって、その実行結果はメモリモジュールMEMMD0へ書き込まれる。【００４３】
電源投入直後に、メモリモジュールMEMMD0は、内部のメモリ装置MEM2_0〜MEM2_255と、メモリ装置MEM0と、メモリ装置MEM1と、制御回路MDCT0の初期化の動作（パワーオンリセット）を行う。さらに、メモリモジュールMEMMD0は、情報処理装置CPU_CPからのリセット信号ＲＳＴＳＩＧを受けた際にも、内部のメモリ装置MEM2_0〜MEM2_255と、メモリ装置MEM0と、メモリ装置MEM1と、、制御回路MDCT0の初期化を行う。【００４４】
図２は、図１における制御回路MDCT0の構成例を示すブロック図である。図２に示す制御回路MDCT0は、インターフェース回路ＨＯＳＴ＿ＩＦと、バッファＢＵＦ０〜ＢＵＦ３と、書込み物理アドレステーブルNXNTBL、NXPTBLと、調停回路ＡＲＢと、情報処理回路ＭＡＮＡＧＥＲと、メモリ制御回路M0CT0、M0CT1、M1CT0、M1CT1、M2CT0〜M2CT31と、マップレジスタＭＡＰＲＥＧとを備える。【００４５】
メモリ制御回路M0CT0は、メモリ装置MEM0へ接続し、メモリ装置MEM0を制御する。メモリ制御回路M1CT0はメモリ装置MEM1へ接続し、メモリ装置MEM1を制御する。【００４６】
メモリ制御回路M2CTi（i＝0〜31）は、メモリ装置MEM2_i×8〜MEM2_i×8+7へ接続し、各々を制御する。例えば、メモリ制御回路M2CT0（i＝0）は、メモリ装置MEM2_0〜MEM2_7へ接続し、メモリ装置MEM2_0〜MEM2_7の各々を制御し、メモリ制御回路M2CT1（i＝1）は、メモリ装置MEM2_8〜MEM2_15へ接続し、メモリ装置MEM2_8〜MEM2_15の各々を制御し、
メモリ制御回路M2CT31（i＝31）は、メモリ装置MEM2_248〜MEM2_255へ接続し、MEM2_248〜MEM2_255の各々を制御する。【００４７】
書込み物理アドレステーブルNXNTBLは、次に情報処理装置CPU_CPより論理アドレスを伴う書き込み命令を受けた際に、当該論理アドレスに対して割り当てを行う物理アドレスF-PADを蓄えたテーブルであり、マップレジスタＭＡＰＲＥＧは、メモリモジュールMEMMD0全体のメモリ空間の領域に関する情報（各領域の割り当て情報、たとえば、アドレス変換テーブルの格納領域）を保持するレジスタである。【００４８】
バッファＢＵＦ０〜ＢＵＦ３は、メモリ装置MEM2_0〜MEM2_255の書き込みデータや読み出しデータを一時的に蓄える。【００４９】
調停回路ＡＲＢは、情報処理回路ＭＡＮＡＧＥＲからの読み出し/書き込み命令およびデータをメモリ制御回路M0CT0、M1CT0、M2CT0〜M2CT32へ送信する。【００５０】
図３は、図１におけるメモリモジュールMEMMD0内の制御回路MDCT0がメモリ装置MEM0（MEM00〜MEM01またはMEM0_0〜MEM0_1と表記）、MEM10〜MEM13（またはMEM1_0〜MEM1_3と表記）およびMEM2_0〜MEM2_255を制御するために、割り当てるアドレスの一例を示す。【００５１】
メモリ装置MEM2_0〜MEM2_255の夫々は、16GBの容量を持ち、ページサイズは８ｋB、ブロックサイズは１MB、ブロック毎の消去回数の上限は３０００回である。
メモリ装置MEM2_0〜MEM2_255の総容量は4TBであり、制御回路MDCT0がこのメモリ装置MEM2_0〜MEM2_255へ割り当てるアドレスF-PADは、F-PAD[32:0]となる。F-PAD[32:11]はブロックアドレスF-BLKADへ対応しており、F-PAD[32:4]は8kB単位のページアドレスF-PAGEADへ対応しており、F-PAD[32:0]は512B単位のセクタアドレスF-SECADへ対応している。【００５２】
メモリ装置MEM10〜MEM13の夫々は、2GBの容量を持ち、書き込み回数の上限は１００万回である。メモリ装置MEM10〜13の総容量は8GBである。制御回路MDCT0がこのメモリ装置MEM10〜13へ割り当てるアドレスP-PADは、P-PAD[32:0]となる。P-PAD[32:16]は128kB単位のブロックアドレスP-BLKADへ対応しており、P-PAD[32:12]は4kB単位のページアドレスP-PAGEADへ対応しており、P-PAD[11:0]は4KBのページ内のアドレスへ対応しており、P-PAD[32:0]は1B単位のバイトアドレスP-BYTEADへ対応している。
また、書き込み回数の上限は１００万回である。【００５３】
メモリ装置MEM0_0〜MEM0_1の夫々は、8MBの容量を持ち、書き込み回数の上限は1億回である。メモリ装置MEM00〜MEM01の総容量は16MBである。制御回路MDCT0がこのメモリ装置MEM0_0〜MEM0_1へ割り当てるアドレスR-PADは、R-PAD[23:0]となる。R-PAD[23:12]は4kB単位のページアドレスR-PAGEADへ対応しておりR-PAD[23:0]は1B単位のバイトアドレスR-BYTEADへ対応している。【００５４】
図４では、メモリ装置MEM0_0〜0_1へ格納されるアドレス変換テーブルP-GLPT、アドレス変換テーブルP-PLT、書込み回数テーブルP-WCT1,2,3、物理アドレス無効テーブルP-INV、ライトバッファWBUF0,1を説明する。【００５５】
アドレス変換テーブルP-GLPTは、アドレス変換テーブルF-LPTがメモリ装置MEM10〜13内でどの物理アドレスGP-PAD（P-PAD[32:14]）へ格納されているかを示すテーブルであり、情報処理装置CPU_CPからの論理アドレスU-LAD[18:0](LAD[32:14])に対する物理アドレスGP-PAD(P-PAD[32:14])とオフセットMLADodffsetを保存する。【００５６】
メモリ装置MEM0_0〜0_1の物理アドレスD-PAD[23:2]の00_0000〜07_FFFFまでが論理アドレスU-LAD[18:0]の00_0000〜07_FFFFに対応しており、夫々のアドレスは、32ビット（4バイト）のデータを格納でき、下位10ビットにはMLAoffsetが格納され、上位22ビットには物理アドレスGP-PAD(P-PAD[32:14])が格納される。【００５７】
物理アドレスGP-PADは、メモリ装置MEM1_0〜1_3が保持するアドレス変換テーブルF-LPTへ入力するアドレスで、この物理アドレスGP-PADにはメモリ装置MEM1_0〜1_3内の1024個の物理アドレスF-PAD[32:4]と、この物理アドレスF-PAD[32:4]毎の書込み回数P-WCTが含まれる。【００５８】
オフセットMLADodffsetはメモリ装置MEM1_0〜1_3が保持するアドレス変換テーブルF-LPTの物理アドレスGP-PAD格納される1024個の物理アドレスF-PADの間で、効果的にウエアレベリングを行うために、用意される。メモリ装置MEM10〜13のウエアレベリングについては、図１０および図１１で詳細に説明する。【００５９】
物理アドレスF-PAD[32:4]および書込み回数P-WCTのそれぞれは4バイトの大きさを持つため、物理アドレスGP-PADは、８KB(＝1024×８B)のデータを含む。【００６０】
つまり、物理アドレスGP-PADは、メモリ装置MEM1_0〜1_3を8KBのデータサイズ単位で区切ったアドレスであり、アドレス変換テーブルP-GLPTは、8KBのデータサイズ単位で論理アドレスU-LADから物理アドレスGP-PADを変換するテーブルである。【００６１】
アドレス変換テーブルP-GLPT の容量について説明する。
アドレス変換テーブルP-GLPTへは論理アドレスU-LAD[18:0]分の物理アドレスGP-PADを格納する。論理アドレスU-LADは19ビットのアドレスで、262143個存在する。また、変換される物理アドレスGP-PADも19ビットのアドレスを持つ。オフセットMLADodffsetは、物理アドレスGP-PADにはメモリ装置MEM1_0〜1_3内の1024個の物理アドレスF-PADが含まれるので、その大きさは10ビット分となる。従って、一つの論理アドレスU-LADには、29ビット分のデータが格納される。その結果、アドレス変換テーブルP-GLPTの容量は、1048572バイト ( = 262143個  x4B)分用意すればよい。【００６２】
メモリ装置MEM1_0〜1_3が1Bのデータ単位で、書き込みが可能な場合、アドレス変換テーブルF-LPTは、アドレス変換テーブルP-GLPTによって、理論的には1Bのデータ単位で、論理アドレスLADから物理アドレスGP-PADへ変換可能ではあるが、アドレス変換テーブルP-GLPTの容量が爆発的に増える。【００６３】
そこで、1Bのデータ単位で、書き込みが可能なメモリ装置に対しても、たとえば、8KBのデータサイズ単位で論理アドレスU-LADから物理アドレスGP-PADへ変換することで、アドレス変換テーブルP-GLPTに必要な容量を大幅に削減でき、メモリモジュールMEMMD0のコストを安くできる。【００６４】
たとえばメモリ装置MEM1_0〜1_3が512B,4KB,8kB, 16kBなど様々なデータ単位のページサイズを持ち、データを書き込む場合、ページサイズ以上のデータサイズ単位で論理アドレスU-LADから物理アドレスGP-PADへ変換することで、アドレス変換テーブルP-GLPTに
必要な容量を大幅に削減でき、メモリモジュールMEMMD0のコストを安くできる。【００６５】
アドレス変換テーブルP-GPLTは、メモリ装置MEM10〜13内の物理アドレスGP-PADに格納されているデータが、どの論理アドレスU-LADへ対応するデータかを示すテーブルであり、物理アドレスGP-PADに対応する論理アドレスU-LADおよび有効/無効フラグVLE_FGを保存する。【００６６】
D-PAD[23:2]の8_0000〜F_FFFFまでがGP-PADの00_0000〜07_FFFFに対応しており、夫々のアドレスは、4バイトのデータを格納でき、下位1バイトには有効/無効フラグVLE_FGが格納され、上位3バイトには論理アドレスU-LADが格納される。GP-PADに対応した有効/無効フラグVLE_FGは１バイトの情報を持ち、VLE_FG[7:0]の中で、VLE_FG[2]が1の場合は有効、0の場合は無効を示し、VLE_FG[1:0]が3の場合は消去済あるいは無効状態、2の場合は消去後書込み、1の場合はオーバーライト、0の場合はドントケアを示す。アドレス変換テーブルP-GPLTの容量は、アドレス変換テーブルP-GPLT と同様の1048572バイト ( = 262143個  x4B)である。【００６７】
書込み回数テーブルP-WCT1は、メモリ装置MEM10〜13へ格納されるアドレス変換テーブルF-LPTに関して、P-PAD[32:14]毎の消去回数あるいは書込み回数を示すテーブルである。D-PAD[23:2]の10_0000〜17_FFFFまでがP-PAD[32:14]の00_0000〜07_FFFFに対応しており、夫々のアドレスには、4バイトの大きさを持つ消去回数あるいは書込み回数LPT-WCTが格納される。【００６８】
書込み回数テーブルP-WCT2は、メモリ装置MEM10〜13へ格納されるアドレス変換テーブルF-PLTに関して、F-PAD[32:14]毎の消去回数あるいは書込み回数を示すテーブルである。
D-PAD[23:2]の1F_0000〜26_FFFFまでがF-PAD[32:14]の00_0000〜07_FFFFに対応しており、夫々のアドレスには、4バイトの大きさを持つ消去回数あるいは書込み回数PLT-WCT2が格納される。【００６９】
書込み回数テーブルP-WCT3は、メモリ装置MEM10〜13へ格納される書込み回数テーブルF-WCTに関して、F-PAD[32:21]毎の消去回数あるいは書込み回数を示すテーブルである。
D-PAD[23:2]の27_0000〜27_0FFFまでがF-PAD[32:21]の00_000〜FFFに対応しており、夫々のアドレスには、4バイトの大きさを持つ消去回数あるいは書込み回数PLT-WCT3が格納される。【００７０】
無効アドレステーブルP-INVは、1024個分の無効となった物理アドレスGP-PADを格納する。【００７１】
ライトバッファWBUFは、ライトバッファWBUF0とWBUF1の2つあり、情報処理装置CPU_CPからの書込みデータを保存するためのバッファであり、ひとつ分のライトバッファWBUFには、8KBのデータを256個分（エントリーENTRY0〜255）格納できる。さらに、ライトバッファWBUFへは、夫々の8kBのデータに対応した論理アドレスLAD[32:4]と、メモリ装置MEM2_0〜MEM2_255への書込みアドレスである物理アドレスF-PAD[32:4]が格納される。1つのエントリーは、8kBの書込みデータと、4BのLAD[32:4]と、4BのF-PAD[32:4]から構成され、8200バイトの大きさを持つ。D-PAD[23:3]は8バイト単位のアドレスで、エントリー毎の開始アドレスと終了アドレスを表す。【００７２】
エントリーENTRY0は、D-PAD[23:3]のアドレスで13_8000〜13_8400までを含み、13_8000には、LAD[32:4]と、F-PAD[32:4]が格納され、13_8001〜13_8400までは8kBのデータが格納される。【００７３】
エントリーENTRY1の開始アドレスは、エントリーENTRY0の開始アドレス13_0000へ0401加算したアドレスとなり、エントリーENTRY0と同様の構成となる。【００７４】
他のエントリーも同様の構成となっており、ひとつ前のエントリーの開始アドレスへ16進数で0401を加算したアドレスが次のエントリーの開始アドレスとなる。
最終的にエントリーENTRY255は、D-PAD[23:3]のアドレスで17_7C00〜17 _800までを含み、17_7C00には、LAD[32:4]と、F-PAD[32:4]が格納され、17_7C01〜17_8000までは8kBのデータが格納される。【００７５】
ライトバッファWBUF0とWBUF1のそれぞれの大きさは 2099200バイト（＝256エントリx8200バイト）である。【００７６】
記憶装置MEM1_0〜1_3が、消去動作が必要な記憶装置であっても、同様のアドレス変換テーブルP-GLPT、アドレス変換テーブルP-PLT、書込み回数テーブルP-WCT1,2,3、物理アドレス無効テーブルP-INV、ライトバッファWBUF0,1を構築できることは言うまでもない。【００７７】
図５では、メモリ装置MEM10〜13へ格納されるアドレス変換テーブルF-LPT、アドレス変換テーブルF-PLT、書込み回数テーブF-WCTを説明する。【００７８】
アドレス変換テーブルF-LPTは、情報処理装置CPU_CPからの書込みデータがメモリ装置MEM2_0〜2_255内の、どの物理アドレスF-PAD[32:4]へ格納されているかを示すテーブルである。【００７９】
制御回路MDCT0はメモリ装置MEM1_0〜1_3へ、メモリ装置MEM2_0〜2_255に関する物理アドレスF-PAD[32:4]と、この物理アドレスF-PAD[32:4]毎の書込み回数P-WCTを保存する。【００８０】
メモリ装置MEM1_0〜1_3の物理アドレスP-PAD[31:13]とP-PAD[12:3]は、それぞれ物理アドレスGP-PADと、情報処理装置CPU_CPからの論理アドレスM-LAD（LAD[13:4]）へ対応している。【００８１】
物理アドレスGP-PADおよび論理アドレスM-LADで指定された物理アドレスP-PAD[31:3]の上位4バイトへ物理アドレスF-PAD[32:4]値が保存され、下位４バイトへ書込み回数P-WCT値が保存される。【００８２】
メモリ装置MEM2_0〜2_255に関する物理アドレスF-PAD[32:4]は、アドレス変換テーブルF-LPTによって、8KBのデータサイズ単位で管理されている。【００８３】
物理アドレスGP-PADは、論理アドレスU-LAD[18:0](LAD[32:14])に対するアドレスであり、メモリ装置MEM0_0〜0_1が保持するアドレス変換テーブルP-GLPTによって、変換される。【００８４】
メモリ装置MEM1_0〜1_3が保持するアドレス変換テーブルF-LPTは、メモリ装置MEM0_0〜0_1が保持するアドレス変換テーブルP-GLPTによって、8KBのデータサイズ単位で論理アドレスU-LADから物理アドレスGP-PADへ変換され、管理されており、物理アドレスGP-PADには、1024個の物理アドレスF-PAD[32:4]と、この物理アドレスF-PAD[32:4]毎の書込み回数P-WCTが含まれる。【００８５】
メモリ装置MEM1_0〜1_3が1Bのデータ単位で、書き込みが可能な場合、アドレス変換テーブルF-LPTは、アドレス変換テーブルP-GLPTによって、理論的には1Bのデータ単位で、論理アドレスLADから物理アドレスGP-PADへ変換可能ではあるが、アドレス変換テーブルP-GLPTの容量が爆発的に増えてしまう。そこで、1Bのデータ単位で、書き込みが可能なメモリ装置に対しても、たとえば、8KBのデータサイズ単位で論理アドレスU-LADから物理アドレスGP-PADへ変換することで、アドレス変換テーブルP-GLPTに必要な容量を大幅に削減でき、メモリモジュールMEMMD0のコストを安くできる。【００８６】
アドレス変換テーブルF-PLTは、メモリ装置MEM2_0〜2_255の物理アドレスF-PADに格納されているデータが、どの論理アドレスLAD[32:4]へ対応するデータかを示すテーブルであり、物理アドレスF-PAD[32:4]に対応する論理アドレスLAD[32:4]および有効/無効フラグVLE_FGを保存する。【００８７】
P-PAD[32:2]の4000_0000〜5FFFF_FFFFまでがF-PAD[32:4]の0000_0000〜１FFF_FFFFに対応しており、夫々のアドレスは、4バイトのデータを格納でき、下位3ビットには有効/無効フラグVLE_FGが格納され、上位29ビットには論理アドレスLAD[32:4]が格納される。【００８８】
有効/無効フラグVLE_FG[2:0]の中でVLE_FG[2]が1の場合は有効、0の場合は無効を示し、VLE_FG[1:0]が3の場合は消去済、2の場合は消去後書き込み、1の場合はオーバーライト、0の場合はドントケアを示す。【００８９】
書込み回数テーブルF-WCTは、メモリ装置MEM2_0〜MEM2_255の物理ブロックアドレスF-BLKAD(F-PAD[32:11])毎の消去回数あるいは書込み回数F-WCT（３バイト）と、消去済フラグEFP（１バイト）を保存するテーブルである。【００９０】
メモリ装置MEM10〜13の物理アドレスP-PAD[32:2]のC000_0000〜C03F_FFFFまでがブロックアドレスF-BLKADの00_0000〜03_FFFFに対応しており、夫々のアドレスには、3バイトの大きさを持つ消去回数あるいは書込み回数F-WCTと、１バイトの大きさの消去済フラグEFPが格納される。
消去済フラグEFPが４の場合、そのブロックは消去済であることを示し、２の場合、そのブロック内の全アドレスへデータが書き込まれたことを示し、１の場合はそのブロック内の一部のアドレスへデータが書き込まれたことを示す。【００９１】
アドレス変換テーブルF-LPTの容量について説明する。メモリ装置MEM2_0〜MEM2_255の総容量は4TBで、制御回路MDCT0は、この4TB容量を512B単位の物理アドレスF-PAD[32:0]にて管理する。また情報処理装置CPU_CPは、メモリモジュールMEMMD0を3.2TB分のデータを保存できるメモリモジュールであると認識しており、512バイト単位の論理アドレス（LAD）にて管理する。【００９２】
これは、論理アドレスLADの数が687947680個分あり、さらに、制御回路MDCT0は、この687947674個分の論理アドレスに対する物理アドレスF-PADの変換を8KBのページデータ単位で行う際、アドレス変換テーブルF-LPTが保存できるアドレス数は 429496730個分（=687947680/16）である。そのため、変換される物理アドレスF-PADも8KBのページ単位の物理アドレスF-PAD[32:4]であらわされ、そのバイト数は4B(32ビット)以下となる。また、メモリ装置MEM10〜13の各々は、書き換え回数の上限が１００万回とすると、書き換え回数の上限を表すために必要なバイト数は3バイト以下となる。【００９３】
制御回路MDCT0は、メモリ装置MEM10〜13のウエアレベリングを効果的に行い、メモリモジュールMEMMD0の長寿命化を図るため、メモリ装置MEM10〜13に格納される物理アドレスF-PAD[32:4]毎に、書き換え回数（テーブル、以下必ずしも「テーブル」を表記しない。）P-WCTを保持する。メモリ装置MEM10〜13のウエアレベリングについては、図１０および図１１で詳細に説明する。その結果、アドレス変換テーブルF-LPTの容量は、3435973840バイト ( = 429496730個  x（4B + 4B）)分用意すればよい。【００９４】
アドレス変換テーブルF-PLTの容量について説明する。メモリ装置MEM2_0〜MEM2_255の総容量は4TBで、制御回路MDCT0は、この4TB容量を512B単位の物理アドレスF-PAD[32:0]にて管理する。これは、物理アドレスP-PADの数が8589934592個分あり、さらに、制御回路MDCT0は、この8589934592個分の論理アドレスに対する物理アドレスF-PADの変換を8KBのページデータ単位で行う際、アドレス変換テーブルF-PLTが保存できるアドレス数は 53687091個分（=8589934592/16）である。そのため、変換される物理アドレスF-PADも8KBのページ単位の物理アドレスF-PAD[32:4]であらわされ、そのビット数は29ビットとなる。また、物理アドレスF-PAD[32:4]に対応した有効/無効フラグVLE_FGは3ビットの情報を持つ。その結果、アドレス変換テーブルF-PLTの容量は、2147483648バイト ( = 53687091個  x4B )分用意すればよい。【００９５】
書込み回数テーブルF-WCTの容量について説明する。書込み回数テーブルF-WCTへ格納するブロックアドレスF-BLKAD(F-PAD[32:11])数は、4194303個分ある。各ブロックは４バイトのデータを持つため、書込み回数テーブルF-WCTの容量は、16777212バイト ( = 4194303個  x4B )分だけ用意すればよい。論理アドレスから物理アドレスF-PADへ変換する際の、データサイズ単位によって、アドレス変換テーブルF-LPTの容量が決まる。たとえば、論理アドレスに対する物理アドレスF-PADの変換を16KBのデータ単位で行う際、アドレス変換テーブルF-LPTの容量は、1717986920バイト(=3435973840バイト x 8B/16B) と、小さくなる。論理アドレスから物理アドレスF-PADへ変換する際のデータサイズ単位LPTDsizeを大きくすると、アドレス変換テーブルF-LPTのサイズは小さくでき、メモリモジュールMEMMD0のコストを安くできる。【００９６】
しかし、、情報処理装置CPU_CPからの１回当たりの書き込み要求に対する平均書き込みデータサイズより、データサイズ単位LPTDsizeが大きくなってしまい、アドレス変換テーブルF-LPTの更新回数、つまり書き換え回数が増加するため、アドレス変換テーブルF-LPTの寿命が短くなってしまう。つまり、メモリモジュールMEMMD0の寿命を短くしてしまう。論理アドレスから物理アドレスの変換する際のデータサイズ単位LPTDsizeは、メモリモジュールMEMMD0の低コストと長寿命のバランスをとった値にすると良い。【００９７】
図６は、情報処理装置CPU_CPからの書込み要求に対して、制御回路（コントローラ）MDCT0が、メモリ装置MEM2_0〜MEM2_255へデータを書き込む動作を示す。【００９８】
メモリ装置MEM0は、情報処理装置CPU_CPからの書込みデータを保存するためのライトバッファWBUF0であり、8KBのデータを256個分（エントリーENTRY0〜255）格納できる。さらに、ライトバッファWBUFへは、夫々の8kBのデータに対応した論理アドレスLAD[32:4]と、メモリ装置MEM2_0〜MEM2_255への書込みアドレスである物理アドレスF-PAD[32:4]が格納される。ライトバッファWBUF1もライトバッファWBUF0と同様の構成である。【００９９】
1つのエントリーは、8kBの書込みデータと、4BのLAD[32:4]と、4BのF-PAD[32:4]から構成され8200バイトの大きさを持つ。D-PAD[23:3]は8バイト単位のアドレスで、エントリー毎の開始アドレスと終了アドレスを表す。【０１００】
エントリーENTRY0は、D-PAD[23:3]のアドレスで13_8000〜13_8400までを含み、13_8000には、LAD[32:4]と、F-PAD[32:4]が格納され、13_8001〜13_8400までは8kBのデータが格納される。【０１０１】
物理アドレスF-PAD[32:4]の初期値は、メモリモジュールMEMMD0への電源投入直後に、制御回路MDCT0が、ライトバッファWBUF0のエントリーENTRY0〜255へ設定される。【０１０２】
情報処理装置CPU_CPから、256個の書き込み命令WRTと、論理アドレスLAD[32:0]と、8kBの書込みデータ（データWD0〜WD255）が順に、制御回路MDCT0へ入力する。制御回路MDCT0は、ライトバッファWBUF0のエントリー0から255まで、順に、論理アドレスLAD[32:4]と、書込みデータWD0〜255を格納する（Step1）。【０１０３】
次に、制御回路MDCT0はライトバッファWBUF0のエントリー0〜255へ保存されている物理アドレスF-PAD[32:4]値と、書き込みデータ（データWD0〜WD255）を、順に読み出し、このメモリ物理アドレスF-PAD[32:4]値と同一の装置MEM2_0〜MEM2_255のアドレスへ、順にデータWD0〜WD255を書き込む（Step2）。【０１０４】
次に、制御回路MDCT0は、ライトバッファWBUF0のエントリー0から論理アドレスLAD[32:4]値を読み出し、論理アドレスLAD[32:4]値の上位の論理アドレスLAD[32:14]値、つまり論理アドレスU-LAD値と、下位の論理アドレスLAD[13:4]値、つまり論理アドレスM-LAD値と、を抽出する（Step3）。【０１０５】
また、論理アドレスU-LADはメモリ装置MEM0の物理アドレスD−PAD[23:2]と同一であり、この物理アドレスD−PAD[23:0]領域にはアドレス変換テーブルP-GLPTが格納されている。【０１０６】
次に、制御回路MDCT0は論理アドレスU-LAD値に対応しているメモリ装置MEM0の物理アドレスD−PADからメモリ装置MEM10〜13の物理アドレスGP-PADを読み出す（Step4)。【０１０７】
物理アドレスGP-PADは、メモリ装置MEM10〜13の物理アドレスP-PAD[31:13]へ対応しており、論理アドレスM-LADは物理アドレスP-PAD[12:3]へ対応しており、これら物理アドレスGP-PADと論理アドレスM-LADによって指定される物理アドレスP-PAD[31:3]へ、アドレス変換テーブルF-LPTが、格納されている。【０１０８】
具体的にはアドレス変換テーブルF-LPTへはメモリ装置MEM2_0〜MEM2_255の物理アドレスF-PAD[32:4]と、メモリ装置MEM10〜13の物理アドレスP-PAD[31:3]に対する書き換え回数値P-WTCが格納されている。【０１０９】
次に、制御回路MDCT0はアドレス変換テーブルF-LPTを更新する。具体的にはライトバッファWBUF0のエントリー0〜255へ保存されている物理アドレスF-PAD[32:4]を読み出し、Step4にて読みだされた物理アドレスGP-PADと論理アドレスM-LADによって指定したアドレス変換テーブルF-LPTの物理アドレスP-PAD[32:3]へ、この物理アドレスF-PAD[32:4]を書き込む。さらに、この物理アドレスP-PAD[32:3]への現在の書き換え回数値へ１加算した値を、新たな書き換え回数値P-WTCとして更新する（Step5)。【０１１０】
また、制御回路MDCT0は、書込み回数テーブルP-WCT1を更新する。具体的にはメモリ装置MEM0へ格納されている書込み回数テーブルP-WCT1の中で、Step4にて読みだされた物理アドレスGP-PAD （P-PAD[32:14]）へ対応する現在の書込み回数値へ１加算した値を、新たな書き換え回数値LPT-WTCとして計算し、書込み回数テーブルP-WCT1を更新する（Step5、図6では省略)。この様に、メモリ装置MEM10〜13の物理アドレスP-PAD[32:3]へ格納されているアドレス変換テーブルF-LPTを、メモリ装置MEM0へ格納されている物理アドレスGP-PADと、論理アドレスM-LADを利用し管理することで、アドレス変換テーブルF-LPTを管理するためのアドレス変換テーブルP-GLPTへは、物理アドレスGP-PADのみを保存でき、このアドレス変換テーブルP-GLPTの容量を削減できる。【０１１１】
さらに、制御回路MDCT0は、Step2にて、ライトバッファWBUF0のデータをメモリ装置MEM2_0〜MEM2_255へ書き込んでいる間に、次にデータを書き込むための256個の物理アドレスF-PAD[32:4]を計算し、ライトバッファWBUF1へ保持する（Step6、図6では省略）。【０１１２】
制御回路MDCT0の物理アドレスF-PADの計算方法を以下に示す。制御回路MDCT0は、消去回数テーブルF-WCTから、メモリ装置MEM2_0〜MEM2_255に消去状態の物理ブロックアドレスF-BLKAD毎の消去回数値を読み出し(Step1)、消去回数閾値ERCｔｈと比較する。読み出した消去回数値が消去回数閾値ERCｔｈ以下であれば(Step2)、その消去状態の物理ブロックF-BLKADに含まれる物理アドレスF-PADを、次のデータ書き込み時の物理アドレスF-PADとして、ライトバッファWBUF0あるいはWBUF1へ格納する(Step3)。もし、消去回数閾値ERCｔｈ以下の消去回数値を持つ物理ブロックアドレスF-BLKADが見つからなければ、現在の消去回数閾値ERCｔｈより大きな値を、新たな消去回数閾値ERCthとし（Step4）、再度、新たな消去回数閾値ERCthを利用し、Step1〜Step3を繰り返す。このライトバッファWBUF0あるいはWBUF1へ格納された物理アドレスF-PADの数が256個になるまで、上記Step1〜Step4 の動作を繰り返す。【０１１３】
この様に、消去回数閾値ERCｔｈ以下の消去回数値を持つ消去状態の物理ブロックアドレスF-BLKADの物理アドレスF-PADをデータ書き込み時の物理アドレスF-PADとすることで、メモリ装置MEM2_0〜MEM2_255の消去回数の平準化を行え、メモリモジュールMEMMD0の長寿命化が図れる。【０１１４】
さらに、予め次に書き込むための256個の物理アドレスF-PAD[32:4]を計算し、ライトバッファWBUF1へ保持することで、情報処理装置CPU_CPからの、次の書き込みデータに対するメモリ装置MEM2_0〜MEM2_255へのデータ書き込みの準備を完了することができ、高速な書き込みが実現できる。【０１１５】
図７は、情報処理装置CPU_CPからの読み出し要求に対して、制御回路（コントローラ）MDCT0が、メモリ装置MEM2_0〜MEM2_255からデータを読み出す動作を示す。情報処理装置CPU_CPから、8KBのデータを読み出す命令RDと、論理アドレスLAD[32:0]が順に、制御回路MDCT0へ入力する。【０１１６】
制御回路MDCT0は、論理アドレスLAD[32:0]値を読み出し、論理アドレスLAD[32:14]値、論理アドレスLAD[13:4]値および論理アドレスLAD[3:0]値、つまり論理アドレスU-LAD値、論理アドレスM-LAD値および論理アドレスS-LAD値のそれぞれを抽出する（Step1）。次に、制御回路MDCT0はアドレス変換テーブルP-GLPT内の論理アドレスU-LAD値に対応している物理アドレスD−PADから、アドレス変換テーブルF-LPTの物理アドレスGP-PADを読み出す（Step2)。【０１１７】
次に、制御回路MDCT0はメモリ装置MEM10〜13へ格納されているアドレス変換テーブルF-LPT内の、Step2にて読みだした物理アドレスGP-PADとStep1にて抽出した論理アドレスM-LADによって指定した物理アドレスP-PAD[32:3]から、メモリ装置MEM2_0〜MEM2_255の物理アドレスF-PAD[32:4]を読み出す（Step3）。【０１１８】
次に、制御回路MDCT0は、Step3にて読み出したメモリ装置MEM2_0〜MEM2_255の物理アドレスF-PAD[32:4]と、Step1にて抽出した論理アドレスS-LADにて指定した物理アドレスF-PAD[32:0]から、８KBのデータを読み出す（Step4）。【０１１９】
また、制御回路MDCT0は、Step1,Step2,Step3,Step4を、パイプライン動作させることができるため、情報処理装置CPU_CPからの読み出し要求が連続的に発生した場合でも、高速に読み出すことができる。たとえば、情報処理装置CPU_CPからメモリモジュールMEMMD0へ、4つの読み出し要求RD0,RD1,RD2,RD3が連続的に発生した場合、制御回路MDCT0は、読み出し要求RD0に関するStep4を実行している際に、読み出し要求RD1に対するStep3を実行できる。さらに、読み出し要求RD1に対するStep3を実行中に、読み出し要求RD2に対するStep2を実行でき、読み出し要求RD2に対するStep2を実行中に、読み出し要求RD3に対するStep1を実行できる。【０１２０】
図8は、情報処理装置CPU_CPからメモリモジュールMEMMD0へ複数の読み出しおよび書き込み要求が入力した場合の、メモリモジュールMEMMD0内部のパイプライン動作について説明する。【０１２１】
まずは、図８に示した8KBデータの読み出し要求RD0,RD1,RD2およびRD3がメモリモジュールMEMMD0へ入力した際のパイプライン動作について説明する。それぞれの読み出し要求RD0,RD1,RD2およびRD3には読み出し命令Rd,論理アドレスLAD[32:0]値が含まれる、
情報処理装置CPU_CPから8KBデータの読み出し要求RD0,RD1,RD2およびRD3がメモリモジュールMEMMD0へ入力した場合、制御回路MDCT0は、それぞれの読み出し要求RD0,RD1,RD2およびRD3の論理アドレスLAD[32:0]から、論理アドレスU-LAD(LAD[32:14])、論理アドレスM-LAD(LAD[13:4])および論理アドレスS-LAD (LAD[3:0])を抽出する（図７のStep1、図8のStep1：t0〜t4）。【０１２２】
次に、制御回路MDCT0は、アドレス変換テーブルP-GLPT内の、それぞれの読み出し要求RD0,RD1,RD2およびRD3の論理アドレスU-LADに対応している物理アドレスD−PADに格納されているアドレス変換テーブルF-LPTの物理アドレスGP-PADを読み出す（図７のStep2，図8のStep2：t1〜t5)。
次に、制御回路MDCT0はメモリ装置MEM10〜13へ格納されているアドレス変換テーブルF-LPT内の、図７のStep2にて読みだした物理アドレスGP-PADと図７のStep1にて抽出した論理アドレスM-LADによって指定した物理アドレスP-PAD[32:3]に格納されているメモリ装置MEM2_0〜MEM2_255の物理アドレスF-PAD[32:4]を読み出す（図７のStep3，図8のStep3：t2〜t6）。【０１２３】
次に、制御回路MDCT0は、図7のStep3にて読み出したメモリ装置MEM2_0〜MEM2_255の物理アドレスF-PAD[32:4]と、図７のStep1にて抽出した論理アドレスS-LADにて指定した物理アドレスF-PAD[32:0]から、８KBのデータを読み出す（図７のStep4，図8のStep4：t3〜t10）。【０１２４】
この様に、情報処理装置CPU_CPからメモリモジュールMEMMD0へ複数の読み出しが入力した場合、制御回路MDCT0は、Step1〜Step4をパイプライン動作させることで、高速にデータを読み出すことができる。【０１２５】
図9は、情報処理装置CPU_CPからメモリモジュールMEMMD0へ複数の書き込み要求WT0,WT01,WTD2およびWT3が入力した際の、メモリモジュールMEMMD0内部のパイプライン動作について説明する。それぞれの書き込み要求WT0,WT1,WT2およびWT3には、256個の書き込み命令WRTと、論理アドレスLAD[32:0]と、8kBの書込みデータ（データWD0〜WD255）が含まれる。【０１２６】
まず、時間t0にて、メモリモジュールMEMMD0へ最初に電源が投入された場合、制御回路MDCT0は、次のデータ書き込み要求のための256個の物理アドレスF-PAD[32:4]を計算し、ライトバッファWBUF0へ保持する（図6のStep6、図9のStep6：時間t0〜t1）。【０１２７】
次に、書き込み要求WT0がメモリモジュールMEMMD0へ入力、つまり256個の書き込み命令WRTと、論理アドレスLAD[32:0]と、8kBの書込みデータ（データWD0〜WD255）が順に、制御回路MDCT0へ入力する。制御回路MDCT0は、256個の物理アドレスF-PAD[32:4]が格納されているライトバッファWBUF0のエントリー0から255まで、順に、論理アドレスLAD[32:4]と、書込みデータWD0〜255を格納する（図6のStep1、図9のStep1：時間t1〜t3）。【０１２８】
また、制御回路MDCT0は、Step1にて、ライトバッファWBUF0のデータをメモリ装置MEM2_0〜MEM2_255へ書き込んでいる間に、次のデータ書き込み要求WT1のための256個の物理アドレスF-PAD[32:4]を計算し、ライトバッファWBUF1へ保持する（図6のStep6、図9のStep6：時間t2〜t3）。【０１２９】
次に、制御回路MDCT0はライトバッファWBUF0のエントリー0〜255へ保存されている物理アドレスF-PAD[32:4]値と、書き込みデータ（データWD0〜WD255）を、順に読み出し、このメモリ物理アドレスF-PAD[32:4]値と同一の装置MEM2_0〜MEM2_255のアドレスへ、順にデータWD0〜WD255を書き込む（図6のStep2、図9のStep2：時間t3〜t10）。【０１３０】
さらに、制御回路MDCT0は、ライトバッファWBUF0のエントリー0から255までの論理アドレスLAD[32:4]値を読み出し、論理アドレスLAD[32:4]値の上位の論理アドレスLAD[32:14]値、つまり論理アドレスU-LAD値と、下位の論理アドレスLAD[13:4]値、つまり論理アドレスM-LAD値と、を抽出する（図6のStep3、図9のStep3：時間t3〜t4）。【０１３１】
次に、制御回路MDCT0は、Step3で読み出した論理アドレスU-LADを利用し、アドレス変換テーブルP-GLPT内の論理アドレスU-LAD値に対応しているメモリ装置MEM0の物理アドレスD−PADへ格納されているメモリ装置MEM10〜13の物理アドレスGP-PADを読み出す（図6のStep4、図9のStep4：時間t4〜t5)。【０１３２】
次に、制御回路MDCT0はStep4にて読みだされた物理アドレスGP-PADと、Step3にて抽出した論理アドレスM-LADによって指定したアドレス変換テーブルF-LPTの物理アドレスP-PAD[32:3]へ、Step2で読み出したライトバッファWBUF0へ保存されている物理アドレスF-PAD[32:4]を書き込む。さらに、制御回路MDCT0は、この物理アドレスP-PAD[32:3]への現在の書き換え回数値へ１加算した値を、新たな書き換え回数値P-WTCとして更新し、メモリ装置MEM0へ格納されている書込み回数テーブルP-WCT1の中で、Step4にて読みだされた物理アドレスGP-PAD （P-PAD[32:14]）へ対応する現在の書込み回数値へ１加算した値を、新たな書き換え回数値LPT-WTCとして計算し、書込み回数テーブルP-WCT1を更新する（図6のStep5、図9のStep5：時間t5〜t7)。【０１３３】
書き込み要求WT0に続いて、書き込み要求WT1,WT2,WT3が順にメモリモジュールMEMMD0へ入力した場合も、制御回路MDCT0は書き込み要求WT0と同様のパイプライン動作を行う。【０１３４】
制御回路MDCT0は、時間t4〜t5で、次のデータ書き込み要求WT2（図9のStep1：時間t5 〜t7）のための256個の物理アドレスF-PAD[32:4]を計算し、ライトバッファWBUF0へ格納する。【０１３５】
制御回路MDCT0は、時間t5〜t7で、次のデータ書き込み要求WT3（図9のStep1：時間t7 〜t9）のための256個の物理アドレスF-PAD[32:4]を計算し、ライトバッファWBUF1へ格納する。【０１３６】
さらに、制御回路MDCT0は、時間t8〜t9で、次のデータ書き込み要求（図9のStep1：時間t9以降）のための256個の物理アドレスF-PAD[32:4]を計算し、ライトバッファWBUF0へ格納し、時間t10〜t11で、次のデータ書き込み要求（図9のStep1：時間t9以降）のための256個の物理アドレスF-PAD[32:4]を計算し、ライトバッファWBUF1へ格納する。【０１３７】
この様に、制御回路MDCT0は、予め、次に書き込むための256個の物理アドレスF-PADを計算し、ライトバッファWBUF0,1へ保持することで情報処理装置CPU_CPからの、次の書き込みデータに対するメモリ装置MEM2_0〜MEM2_255へのデータ書き込みの準備を完了することができ、高速な書き込みが実現できる。【０１３８】
また、Step6での、次に書き込むための物理アドレスF-PADの決定、Step1でのライトバッファWBUF0およびWBUF1への書き込み、Step2での装置MEM2_0〜MEM2_255への書き込み動作、Step3〜Step5でのアドレス変換テーブルP-GLPTおよびF-LPTの更新  をパイプライン方式で実行することにより、高速に書き込みを行うことができる。【０１３９】
図１０は、アドレス変換テーブルF-LPTの物理アドレスGP-PAD間でのウエアレベリング動作の一例を示す。【０１４０】
制御回路MDCT0は、たとえば、メモリモジュールMEMMD0へ入力したデータの増加量が、一定量を超えた場合や、メモリモジュールMEMMD0への読み出しや書き込み要求が、ある一定の期間は発生しなかった場合や、メモリ装置MEM2_0〜MEM2_255へのガーベージコレクションが発生した場合などにアドレス変換テーブルF-LPTのウエアレベリング動作を開始する。【０１４１】
アドレス変換テーブルF-LPTの物理アドレスGP-PAD範囲は、論理アドレスU-LAD範囲よりも大きな範囲を設けることで、無効状態の物理アドレスGP-PADを作ることができる。たとえば、アドレス変換テーブルF-LPTの物理アドレスGP-PAD範囲が、論理アドレスU-LAD範囲よりも５％分大きい場合は、アドレス変換テーブルF-LPTの無効状態になる物理アドレスGP-PADの数は全物理アドレスGP-PADの数の５％分となる。【０１４２】
GP-PAD無効テーブルP-INVは、エントリー毎に無効状態の物理アドレスGP-PADを格納しており、まず、制御回路MDCT0は、GP-PAD無効テーブルP-INVのエントリーENTRYの0番目から無効状態の物理アドレスGP-PADを読み出す（Step1）。【０１４３】
次に、制御回路MDCT0はGP-PAD無効テーブルP-INVから読み出した物理アドレスGP-PADに対応した書き込み回数値WCを書込み回数テーブルP-WCT1から読み出し（Step2）、書き込み回数閾値WCｔｈ２と比較する（Step3）。【０１４４】
読み出した書き込み回数値が書き込み回数閾値WCｔｈ２以下であれば、その無効状態の物理アドレスGP-PADを書き込み対象の物理アドレスとする（Step4）。【０１４５】
次のStep5では、再度、GP-PAD無効テーブルP-INVを検索する際のエントリーENTRYをENTRY = ENTRY + 1 にて求める。
次のStep6では、次に行われる一連のウエアレベリング動作が開始されるのを待つ。【０１４６】
Step8では、Step3で利用したエントリーENTRYが、GP-PAD無効テーブルP-INVの最終エントリーENTRYであるかをチェックする。最終エントリーである場合は、現在の書き込み回数閾値WCｔｈ２よりN2分だけ大きな値を、新たな書き込み回数閾値WCｔｈ２とし（Step9）、次にエントリーENTRYを０とし（Step10）、Step1を行う。【０１４７】
最終エントリーではない場合は、GP-PAD無効テーブルP-INVを検索する際のエントリーENTRYをENTRY = ENTRY + 1 にて求め（Step7）、Step1を行う。【０１４８】
以上説明した様に、一連のウエアレベリング動作では、常に、書き込み回数が書き込み回数閾値WCｔｈ２以下の物理アドレスGP-PAD（P-PAD[32:13]）をアドレス変換テーブルF-LPTへの書き込み対象の物理アドレスGP-PADとするため、アドレス変換テーブルF-LPT内の物理アドレスGP-PAD間での書き込み回数の平準化ができ、メモリモジュールMEMMD0を長寿命化できる。【０１４９】
図11は、アドレス変換テーブルF-LPTの物理アドレスGP-PAD（P-PAD[32:13]）内の複数のP-PAD[12:3]間でのウエアレベリング動作の一例を示す。【０１５０】
制御回路MDCT0は、メモリモジュールMEMMD0へ入力したデータの増加量が、一定量を超えた場合のや、メモリモジュールMEMMD0への読み出しや書き込み要求が、ある一定の期間は発生しなかった場合や、メモリ装置MEM2_0〜MEM2_255へのガーベージコレクションが発生した場合などにアドレス変換テーブルF-LPTのウエアレベリング動作を開始する。【０１５１】
このウエアレベリング動作では、まず、制御回路MDCT0は、書込み回数テーブルP-WCT1からアドレス変換テーブルF-LPTの物理アドレスGP-PADの書き換え回数値WCを読み出し (Step1)、書き換え回数閾値WCth1と比較する(Setp2)。【０１５２】
読み出した書き換え回数値が書き換え回数閾値WCth1より大きい場合は、Step3を行い、以下であればStep8を行う。Step3では、アドレス変換テーブルF-LPTの物理アドレスGP-PAD（P-PAD[32:13]）に含まれる1024個の書き込み回数の最大値と最小値の差Wdiffと、書き込み回数の最大値を持つP-PADmaxと、書き込み回数の最小値を持つP-PADminと、オフセットMLAoffset1 = P-PADmin - P-PADmaxを求める。【０１５３】
Step8では、物理アドレスGP-PADを利用し書込み回数テーブルP-WCT1を連続してN回以上検索したかをチェックする。連続してN回以上検索した場合は、Step9を行う。連続検索回数がN回未満の場合は、Step7を行う。Step7では、再度、書込み回数テーブルP-WCT1を検索する際の物理アドレスGP-PADを、物理アドレス GP-PAD= GP-PAD + 1 にて求める。【０１５４】
Step3の次のStep4では、この差Wdiffと、書き換え回数差閾値Wdiff_thを比較する。書き換え回数差差Wdiffが書き換え回数差閾値Wdiff_thより大きい場合はStep5を行い、以下であればStep9を行う。Step5では、新たに、アドレス変換テーブルF-LPTの物理アドレスGP-PAD（P-PAD[32:13]）に含まれる1024個のP-PAD[12:3]と、M-LADの対応付けを行う。まず、アドレス変換テーブルP-GPLTから、GP-PADに対応するMLAoffset0を読み出す。 次に、MLAoffset0 = MLAoffset0 + MLAoffset1 を計算し、新たなMLAoffset0を求め、M-LADとP-PAD[12:3]の対応付けを行う。対応付けの方法を以下に示す。【０１５５】
（1）If   0 ≦  M-LAD +  MLAoffset0  ≦1023,  P-PAD =  M-LAD + MLAoffset0
（2）If   M-LAD +  MLAoffset0  > 1023,  P-PAD =  M-LAD + MLAoffset0 -1024 
（3）If   M-LAD +  MLAoffset0  <  0,  P-PAD =  M-LAD + MLAoffset0  + 1024
さらに、アドレス変換テーブルP-GPLT内の対象となる物理アドレスGP-PADへ対応する論理アドレスU-LADを読み出す。最後に、アドレス変換テーブルP-GLPT内の、アドレス変換テーブルP-GPLTから読み出した論理アドレスU-LADへ対応するMLAoffset0へ新たなMLAoffset0値を格納する。【０１５６】
次のStep6では、まず、F-LPT内の対象GP-PAD内1024個のP-PAD[12:3]のF-PADと書き込み回数値PWCTを読み出す。それぞれの書き込み回数値PWCTへ１を加算した値を新たな書き込み回数値PWCTとし、Step5で求めたM-LADとP-PAD[12:3]の対応付けに従い、 1024個のF-PADと、新たな書き込み回数値PWCTを並び替え、 再度、F-LPT内対象GP-PAD内へ書き込む。 
Step9では、再度、書込み回数テーブルP-WCT1を検索する際の物理アドレスGP-PADを、物理アドレス GP-PAD + 1 = GP-PAD + 1 にて求める。次のStep10では、次に行われる一連のウエアレベリング動作が開始されるのを待つ。【０１５７】
以上説明した様に、一連のウエアレベリング動作では、アドレス変換テーブルF-LPTの物理アドレスGP-PAD（P-PAD[32:13]）に含まれる1024個のP-PAD[12:3]の中で、書き込み回数の最大値を持つP-PAD[12:3]へ割り当てられている論理アドレスM-LADを、書き込み回数の最小値を持つP-PAD[12:3]へ割り当てることができるため、アドレス変換テーブルF-LPT内の書き込み回数の平準化ができ、メモリモジュールMEMMD0を長寿命化できる。
さらに、図１０で説明したウエアレベリング動作と組み合わせることで、さらに、メモリモジュールMEMMD0を長寿命化できる。
【実施例２】
【０１５８】
図１２は、本実施例の情報処理システムおよびメモリモジュールの概略構成例を示すブロック図である。図１２に示す情報処理システムSRVは、情報処理装置CPUと記憶装置MEM3とメモリモジュールDIMMD0〜DIMMDnとを備える。【０１５９】
各メモリモジュールDIMMD0〜DIMMDnは、メモリ装置MEM0と、MEM１と、MEM2_0〜MEM2_7と、これらメモリ装置を制御する制御回路DIMCT0と、DIMM（Dual Inline Memory Module）規格で規定されているピン配置や電気的特性を備える。情報処理装置CPUと、各メモリモジュールDIMMD0〜DIMMDnは、このDIMM規格により直接的に接続できる。【０１６０】
制御回路DIMCT0の機能や動作、メモリ装置MEM0、MEM１と、MEM2_0〜MEM2_7は図１と同様である。また、DIMM規格にはUnbuffered DIMMや、Buffered DIMM、 SO-DIMMなどのがあり、いずれの規格を利用してもよい。情報処理装置CPUと、各メモリモジュールDIMMD0〜DIMMDnは、このDIMM規格により直接的に接続できる。【０１６１】
メモリモジュールDIMMD0〜DIMMDnには、大規模なデータベースが格納されており、情報処理装置CPUは、このデータベースの一部をいったん記憶装置MEM3へ転送しながら、解析を行う。また、解析途中の一時的なデータや解析結果は、記憶装置MEM3やメモリモジュールDIMMD0〜DIMMDnへ格納される。【０１６２】
記憶装置MEM3には、SRAM、ＤＲＡＭ、相変化型メモリPCM、抵抗変化型メモリReRAM、スピン注入磁化反転型メモリＳＴＴ−ＭＲＡＭ、ＮＡＮＤ型フラッシュメモリ、ＮＯＲ型フラッシュメモリ、などの記憶装置があるが、いずれの記憶装置でもよい。【０１６３】
情報処理装置CPUと、各メモリモジュールDIMMD0〜DIMMDnは、このDIMM規格により直接的に接続できるため、メインメモリと扱うことができ、大規模なデータベースの解析が高速に行える。【０１６４】
メモリモジュールDIMMD0〜DIMMDnを構成する各記憶装置や、記憶装置MEM3が不揮発性メモリの場合は、DRAMでのリフレッシュ動作の様な、高頻度のデータ保持動作が必要ないため、情報処理システムSRVの低電力化が図れる。さらに突発的な電源遮断による、データ消失を防ぐためバッテリバックアップを搭載する必要がないため低コスト化も可能となる。
【実施例３】
【０１６５】
図１３は、本実施例の情報処理システムの概略構成例を示すブロック図である。図１３に示す情報処理システムは、情報処理装置SRV0〜SRViと、各情報処理装置SRV0〜SRViをつなぐネットワーク装置NetWと、ストレージシステムSTRGSYSを備えている。それぞれの情報処理装置SRV0〜SRViは、図１２で示した情報処理装置SRVと同様の構成および機能をもつ。ストレージシステムSTRGSYSは、ストレージコントローラSTRGCNTとストレージ装置STG0〜STGkを備える。ストレージコントローラSTRGCNTは、制御装置GCCTとメモリモジュールCMEMMD0〜CMEMMDmを備える。ストレージ装置STG0〜STGkは、制御回路STCT0とメモリモジュールMEMMD0〜MEMMDnとを備える。【０１６６】
制御回路STCT0は、制御装置GCCTと、メモリモジュールMEMMD0〜MEMMDn間のデータ転送を制御する。それぞれのメモリモジュールMEMMD0〜MEMMDnは、図１に示したメモリモジュールMEMMD0と同様の機能および構成を備えている。【０１６７】
ストレージコントローラSTRGCNT内の制御装置GCCTは、情報処理装置SRV0〜SRViと、ストレージ装置STG0〜STGkと、メモリモジュールCMEMMD0〜CMEMMDmとの間のデータ転送を制御する。メモリモジュールCMEMMD0〜CMEMMDmは、ストレージ装置STG0〜STGkのキャッシュメモリであり、ストレージ装置STG0〜STGkへ格納されている一部のデータがメモリモジュールCMEMMD0〜CMEMMDmへ格納される。【０１６８】
さらに、情報処理装置SRV0〜SRVi内のメモリモジュールDIMMD0〜DIMMDnは、メモリモジュールCMEMMD0〜CMEMMDmのキャッシュメモリであり、メモリモジュールCMEMMD0〜CMEMMDmへ格納されている一部のデータがメモリモジュールDIMMD0〜DIMMDnへ格納される。【０１６９】
ストレージ装置STG0〜STGkには、株取引や電子商取引などに必要な超巨大なデータベースが格納されており、この超巨大なデータベースを情報処理装置SRV0〜SRViにて解析する際の動作を説明する。【０１７０】
情報処理装置SRV0にて解析すべきデータがメモリモジュールDIMMD0〜DIMMDnに存在すれば、情報処理装置CPUがこのデータをメモリモジュールDIMMD0〜DIMMDnから読み出し、解析を行い、その解析結果をメモリモジュールDIMMD0〜DIMMDnへ格納する。【０１７１】
もし、情報処理装置SRV0にて解析すべきデータDATA0がメモリモジュールDIMMD0〜DIMMDnに存在しなければ、情報処理装置SRV0内の情報処理装置CPUは、必要とするデータDAT0の読み出し要求を、ネットワーク装置NetWを通じて情報共有する他の情報処理装置SRV1〜SRViへ伝える。【０１７２】
情報処理装置SRV0以外の情報処理装置SRV1〜SRViは、自身がデータDATA0を保有していれば、このデータDATA0を情報処理装置SRV0へ転送し、保有していなければ「データ無」という情報を情報処理装置SRV0へ転送する。【０１７３】
また、情報処理装置SRV0にて解析すべきデータDATA0が、いずれの情報処理装置SRV0〜SRViにも存在しなけば、情報処理装置SRV0は、必要とするデータDAT0の読み出し要求を、制御装置GCCTへ送信する。【０１７４】
制御装置GCCTは、まず、データDATA0はメモリモジュールCMEMMD0〜CMEMMDmに保存されているかをチェックする。保存されていれば制御装置GCCTは、このデータDAT0をメモリモジュールCMEMMD0〜CMEMMDmから読み出し、情報処理装置SRV0へ転送する。情報処理装置SRV0内情報処理装置CPUは、データDAT0をメモリモジュールDIMMD0〜DIMMDnへ格納しつつ、同時に解析を行う。【０１７５】
また、データDATA0がメモリモジュールCMEMMD0〜CMEMMDmに保存されていなければ、制御装置GCCTは、データDAT0の読み出し要求を、ストレージ装置STG0〜STGkのいずれかに送信する。データDAT0の読み出し要求を受け取ったストレージ装置の制御回路STCT0は、メモリモジュールMEMMD0〜MEMMDmからデータDAT0を読み出し、制御装置GCCTへ送信する。【０１７６】
次に制御装置GCCTは、受け取ったデータDATA0をメモリモジュールDIMMD0〜DIMMDnへ格納しつつ、情報処理装置SRV0へ転送する。【０１７７】
情報処理装置SRV0は、データDATA0を受け取ると情報処理装置SRV0内情報処理装置CPUが、このデータDATA0を解析し、同時にメモリモジュールDIMMD0〜DIMMDnへ格納する。さらに、解析結果を利用し、新たな解析を高速に行うため、この解析結果を情報処理装置SRV0内のメモリモジュールDIMMD0〜DIMMDnへ格納する。【０１７８】
情報処理装置SRV0内のメモリモジュールDIMMD0〜DIMMDnへ書き込まれた解析結果などのデータサイズが大きくなり、解析結果データWDATA3がメモリモジュールDIMMD0〜DIMMDnへ格納しきれなくなった場合、情報処理装置SRV0内の情報処理装置CPUは、メモリモジュールDIMMD0〜DIMMDn内の最も古い解析結果データWDATA10を情報処理装置CPU内のライトバックバッファへ転送し、メモリモジュールDIMMD0〜DIMMDn内へ空き領域を作る。次に、情報処理装置CPUは、この空き領域へデータWDATA3を格納する。【０１７９】
次に、情報処理装置CPUは、データWDATA10を情報処理装置CPU内のライトバックバッファへ転送されたデータWDATA10を書き込み要求とデータWDATA10を、制御装置GCCTへ送信する。【０１８０】
制御装置GCCTは、メモリモジュールCMEMMD0〜CMEMMDmの書き込み領域に、空き領域があるかをチェックし、空き領域があれば解析結果データWDATA10を、メモリモジュールCMEMMD0〜CMEMMDmへ書き込む。【０１８１】
もし、空き領域がなければ、制御装置GCCTは、メモリモジュールCMEMMD0〜CMEMMDm内の最も古い解析結果データWDATA50を、制御装置GCCT内部のライトバックバッファへ転送し、メモリモジュールCMEMMD0〜CMEMMDmへ空き領域を作る。次に、制御装置GCCTはデータWDATA50をメモリモジュールCMEMMD0〜CMEMMD内の空き領域へ書き込む。【０１８２】
さらに、制御装置GCCTは、制御装置GCCT内部のライトバックバッファへ転送されたデータWDATA50の書き込み要求とデータWDATA50 をストレージ装置STG0〜STGkのいずれかへ送信する。データWDATA50と書き込み要求を受け取ったストレージ装置の制御回路STCT0は、メモリモジュールMEMMD0〜MEMMDmへデータWDATA50を書き込む。【０１８３】
以上説明したように、情報処理装置SRV0〜SRVi内の情報処理装置CPUと、各メモリモジュールDIMMD0〜DIMMDnは、このDIMM規格により直接的に接続できるため、メインメモリと扱うことができ、大規模なデータベースの解析が高速に行う情報処理システムを構築できる。【０１８４】
また、メモリモジュールDIMMD0〜DIMMDn、CMEMMD0〜CMEMMDmおよびMEMMD0〜MEMMDmを構成する各記憶装置や、記憶装置MEM3が不揮発性メモリの場合は、DRAMでのリフレッシュ動作の様な、高頻度のデータ保持動作が必要ないため、情報処理システムの低電力化が図れる。さらに突発的な電源遮断による、データ消失を防ぐためバッテリバックアップを搭載する必要がないため低コスト化も可能となる。【０１８５】
《実施形態による代表的な効果の纏め》
以上に説明した各実施例によって得られる代表的な効果を纏めると以下の通りである。【０１８６】
第１に、第１のメモリ装置と、第２のメモリ装置と、第３のメモリ装置と、これを制御するコントローラからなるメモリモジュールであって、第１のメモリ装置へ、第２のメモリ装置に関するアドレス変換テーブルを格納し、第２のメモリ装置へ、第３のメモリ装置に関するアドレス変換テーブルを格納し、コントローラは第３のメモリ装置に対するウエアレベリングと、第３のメモリ装置に関するアドレス変換テーブルを格納する第２のメモリ装置に対するウエアレベリングを行うことで、メモリモジュールの寿命を損なうことなく、完全に電源遮断へ対応でき、上記メモリを利用したメモリモジュールおよび当該メモリモジュールを含む情報処理システムにおいて、信頼性の向上や長寿命化が実現可能になる。【０１８７】
第２に、メモリ装置MEM1_0〜1_3が1Bのデータ単位で、書き込みが可能な場合、アドレス変換テーブルF-LPTは、アドレス変換テーブルP-GLPTによって、理論的には1Bのデータ単位で、論理アドレスLADから物理アドレスGP-PADへ変換可能ではあるが、アドレス変換テーブルP-GLPTの容量が爆発的に増えてしまう。
そこで、1Bのデータ単位で、書き込みが可能なメモリ装置に対しても、たとえば、8KBのデータサイズ単位で論理アドレスU-LADから物理アドレスGP-PADへ変換することで、アドレス変換テーブルP-GLPTに必要な容量を大幅に削減でき、メモリモジュールMEMMD0のコストを安くできる。【０１８８】
たとえばメモリ装置MEM1_0〜1_3が512B,4KB,8kB, 16kBなど様々なデータ単位のページサイズを持ち、データを書き込む場合、ページサイズ以上のデータサイズ単位で論理アドレスU-LADから物理アドレスGP-PADへ変換することで、アドレス変換テーブルP-GLPTに
必要な容量を大幅に削減でき、メモリモジュールMEMMD0のコストを安くできる。【０１８９】
第３に、情報処理装置CPU_CPから読み出し要求がメモリモジュールMEMMD0へ入力した場合、以下の（1）〜（4）の動作をパイプライン動作させることで、高速にデータを読み出すことができる。【０１９０】
（1）読み出し要求の論理アドレスLADから、論理アドレスU-LAD、論理アドレスM-LADおよび論理アドレスS-LADの抽出、
（2）アドレス変換テーブルP-GLPT内の、論理アドレスU-LADに対応しているアドレス変換テーブルF-LPTの物理アドレスGP-PADの読み出し、
（3）アドレス変換テーブルF-LPT内の、物理アドレスGP-PADと論理アドレスM-LADによって指定した物理アドレスP-PADに格納されている物理アドレスF-PADの読み出し、
（4）物理アドレスF-PADからのデータ読み出し。【０１９１】
第４に、情報処理装置CPU_CPから書き込み要求がメモリモジュールMEMMD0へ入力した場合、以下の（1）〜（6）の動作をパイプライン動作させることで、高速にデータを書き込むことができる。【０１９２】
（1）ライトバッファWBUF0およびWBUF1へのデータ書き込み、
（2）装置MEM2_0〜MEM2_255へのデータ書き込み
（3）書き込み要求の論理アドレスLADから、論理アドレスU-LAD、論理アドレスM-LADおよび論理アドレスS-LADの抽出、
（4）アドレス変換テーブルP-GLPT内の論理アドレスU-LAD値に対応している物理アドレスGP-PADの読み出し、
（5）アドレス変換テーブルP-GLPTおよびF-LPTの更新、
（6）次に書き込むための物理アドレスF-PADの決定。【０１９３】
第５に、アドレス変換テーブルF-LPTに対するウエアレベリングに関して、アドレス変換テーブルF-LPTの物理アドレスGP-PAD間でのウエアレベリングと、物理アドレスGP-PAD内部の物理P-PAD間でのウエアレベリングを組み合わせることで、メモリモジュールMEMMD0を長寿命化が実現できる。【０１９４】
第６に、メモリモジュールがDIMM規格を備えることにより情報処理装置CPUと、直接的に接続でき、大規模なデータベースを高速に解析できる。【０１９５】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【０１９６】
ＣＰＵ＿ＣＰ，ＣＰＵ：情報処理装置、ＭＥＭＭＤ０，ＣＭＥＭＭＤ０，ＤＩＭＭＤ０：メモリモジュール、ＨＤＨ＿ＩＦ：インターフェース信号、ＭＥＭ０：記憶装置、ＭＥＭ１０〜ＭＥＭ１３：記憶装置、ＭＥ２＿０〜ＭＥＭ２＿２５５：記憶装置、ＭＤＣＴ０：制御回路、ＤＩＭＣＴ０：制御回路、ＲＳＴＳＩＧ：リセット信号、ＲＥＦ＿ＣＬＫ：  参照クロック信号、ＨＯＳＴ＿ＩＦ：インターフェース回路ＨＯＳＴ＿ＩＦ、ＢＵＦ０〜ＢＵＦ３：バッファＢＵＦ０〜ＢＵＦ３、ＮＸＮＴＢＬ，ＮＸＰＴＢＬ：書込み物理アドレステーブル、ＡＲＢ：調停回路、ＭＡＮＡＧＥＲ：  情報処理回路、ＭＡＰＲＥＧ：マップレジスタ、Ｍ０ＣＴ０，Ｍ１ＣＴ０，Ｍ２ＣＴ０〜Ｍ２ＣＴ３１：メモリ制御回路、ＲＳＤＣＦＧ：レジスタ、ＳＲＶ０〜ＳＲＶ０：情報処理装置、ＮｅｔＷ：ネットワーク装置、ＳＴＲＧＳＹＳ：ストレージシステム、ＳＴＧ０〜ＳＴＧｋ：ストレージ装置、
ＳＴＲＧＣＮＴ：ストレージコントローラ、ＧＣＣＴ，ＳＴＣＴ０，：制御装置。
【図１】
2016006067.tif 000003
【図２】
2016006067.tif 000004
【図３】
2016006067.tif 000005
【図４】
2016006067.tif 000006
【図５】
2016006067.tif 000007
【図６】
2016006067.tif 000008
【図７】
2016006067.tif 000009
【図８】
2016006067.tif 000010
【図９】
2016006067.tif 000011
【図１０】
2016006067.tif 000012
【図１１】
2016006067.tif 000013
【図１２】
2016006067.tif 000014
【図１３】
2016006067.tif 000015
【国際調査報告】
2016006067.tif 000016
2016006067.tif 000017
2016006067.tif 000018