(57)【特許請求の範囲】
【請求項１】
複数のメモリセルを含む不揮発性メモリ装置と、当該不揮発性メモリ装置へのアクセスを制御する制御回路装置とを有する半導体装置において、
前記制御回路装置は、
外部から与えられる第１の書込みデータおよび第１のアドレスを含む第１の書込み要求と、第２の書込みデータおよび第２のアドレスを含む第２の書込み要求に対して、
前記第１および第２の書込みデータの書き込みに使用するメモリセルの物理的な配置が、少なくとも一つの方向に対してＮ（Ｎは自然数）個置きになるように、外部から与えられる第１および第２のアドレスとは独立に、前記不揮発性メモリ装置に対する第３および第４のアドレスの割り当てを設定し、
前記第３のアドレスへ第１の書込みデータの書込み中に、前記第２のアドレスへ割り当てる前記第４のアドレスを決定する
ことを特徴とする半導体装置。
【請求項２】
請求項１に記載の半導体装置において、
前記制御回路装置は、前記Ｎの値をプログラム可能である
ことを特徴とする半導体装置。
【請求項３】
請求項１に記載の半導体装置において、
前記制御回路装置は、
前記第１の書込みデータから生成したECCコードと前記第１の書込みデータを、前記第３のアドレスにより指定されるＮ個置きのメモリセルに書き込む
ことを特徴とする半導体装置。
【請求項４】
請求項１に記載の半導体装置において、
前記制御回路装置は、
前記第１の書込みデータから生成されるデータ圧縮情報又は書込み方法選択情報を含む冗長データと前記第１の書込みデータを、前記第３のアドレスにより指定されるＮ個置きのメモリセルに書き込む
ことを特徴とする半導体装置。
【請求項５】
請求項１に記載の半導体装置において、
前記制御回路装置は、
前記不揮発性メモリ装置に書き込むビット数を低減するように前記第１の書込みデータを圧縮した第３の書込みデータを、前記第３のアドレスにより指定されるＮ個置きのメモリセルに書き込む
ことを特徴とする半導体装置。
【請求項６】
請求項５に記載の半導体装置において、
前記第１の書込みデータの圧縮方法はビット反転である
ことを特徴とする半導体装置。
【請求項７】
請求項１に記載の半導体装置において、
前記不揮発性メモリ装置には、物理的に連続した複数のメモリセルで構成される第１の物理アドレス領域と第２の物理アドレス領域が設定されており、
前記制御回路装置は、前記第１の物理アドレス領域について、少なくとも一つの方向に対してＮ（Ｎは自然数）個置きに前記第１の書込みデータを書き込むように前記第３のアドレスを割り当て、前記第２の物理アドレス領域について、少なくとも一つの方向に対してＭ（Ｍは０又は自然数であり、Ｍ＜Ｎ）個置きに前記第１の書込みデータを書き込むように前記第３のアドレスを割り当てる
ことを特徴とする半導体装置。
【請求項８】
請求項１に記載の半導体装置において、
前記不揮発性メモリ装置は、複数のメモリバンクの積層構造を有し、
前記制御回路装置は、少なくとも一組の隣接するメモリバンク間において、前記第３のアドレスの割り当てがオフセットするように設定する
ことを特徴とする半導体装置。
【請求項９】
請求項１に記載の半導体装置において、
前記制御回路装置は、
前記第１の書込みデータを、前記第３のアドレス上で連続するように書き込む
ことを特徴とする半導体装置。
【請求項１０】
請求項１に記載の半導体装置において、
前記制御回路装置は、
前記第１のアドレスが示す第１領域情報と、
前記第１領域情報に対するメモリ容量情報、信頼性レベル情報、書込みメモリセルの間隔情報、境界領域情報、テスト領域情報、モニタリング用セル数情報、エラー検出訂正データサイズ情報、書込み方法選択情報を含む第１のコンフィグレーション情報と、
を記憶する記憶領域を有する
ことを特徴とする半導体装置。
【請求項１１】
請求項１０に記載の半導体装置において、
前記第１のコンフィグレーション情報はプログラム可能である
ことを特徴とする半導体装置。
【請求項１２】
請求項１０に記載の半導体装置において、
前記制御回路装置は、前記第１のコンフィグレーション情報の一部を利用し、前記不揮発性メモリ装置の前記複数のメモリセルに対する書込み許可領域を決定する
ことを特徴とする半導体装置。
【請求項１３】
請求項１２に記載の半導体装置において、
前記制御回路装置は、電源が投入された直後に、前記書込み許可領域を決定する
ことを特徴とする半導体装置。
【請求項１４】
請求項１０に記載の半導体装置において、
前記制御回路装置は、
前記第１のアドレスに対して独立に割り当てられる前記不揮発性メモリ装置に対する前記第３のアドレスが示す第２領域情報と、
前記第２領域情報に対するメモリ容量情報、信頼性レベル情報、書込みメモリセルの間隔情報、境界領域情報、テスト領域情報、モニタリング用セル数情報、エラー検出訂正データサイズ情報、書込み方法選択情報を含む第２のコンフィグレーション情報と、
を記憶する記憶領域を有する
ことを特徴とする半導体装置。
【請求項１５】
請求項１４に記載の半導体装置において、
前記制御回路装置は、
前記第１及び第２のコンフィグレーション情報の一部を利用し、前記第１領域情報と前記第２領域情報のそれぞれに対応する前記不揮発性メモリ装置の前記複数のメモリセルへの書込み許可領域を決定する
ことを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリ装置を含む半導体装置の技術に関する。
【背景技術】
【０００２】
近年、複数のNAND型フラッシュメモリと、コントローラから構成されるSSD（Solid State Drive）がサーバー機器、Laptop PCおよびNetbook等に利用されている。例えば非特許文献４には、NAND型フラッシュメモリには消去回数に上限があり、データ書き込みサイズとデータ消去サイズが大きく異なることが開示されている。また、例えば特許文献１、特許文献２、特許文献３および特許文献４には、NAND型フラッシュメモリの制御方法が開示されている。
【０００３】
さらに、本発明者が検討した技術には、例えば相変化メモリを含む半導体装置がある。この種のメモリは、少なくともアンチモン（Sb）とテルル（Te）を含むGe−Sb−Te系、Ag−In−Sb−Te系などのカルコゲナイド材料（または、相変化材料）を記録層の材料に使用する。また、その選択素子にはダイオードが用いられる。このように、カルコゲナイド材料とダイオードを用いた相変化メモリの特性は、例えば非特許文献１に開示されている。
【０００４】
図１は相変化材料を用いた抵抗性記憶素子の相変化に必要なパルス幅と温度との関係を示す図である。縦軸は温度、横軸は時間である。この記憶素子に記憶情報“0”を書き込む場合、図１に示すように、素子をカルコゲナイド材料の融点Ta以上に熱してから急冷するようなリセットパルスを印加する。冷却時間t1を短くすることにより（例えば約１nsに設定することにより）、カルコゲナイド材料は高抵抗のアモルファス（非晶質）状態となる。
【０００５】
逆に、記憶情報“1”を書き込む場合、記憶素子を融点Taよりも低いが、結晶化温度Tx（ガラス転移点と同じかそれよりも高い）より高い温度領域に保つようなセットパルスを印加する。これにより、カルコゲナイド材料は低抵抗の多結晶状態となる。結晶化に要する時間t2はカルコゲナイド材料の組成によって異なる。図１に示した素子の温度は、記憶素子自身が発するジュール熱、および周囲への熱拡散に依存する。
【０００６】
また、非特許文献２に記載されているように、相変化メモリは抵抗素子構造を小さくすると、相変化膜の状態変化に必要な電力が小さくなる。このため、相変化メモリは、原理上、微細化に向いており、研究が盛んに行われている。また、非特許文献３には、カルコゲナイド材料の低抵抗化に120ns、高抵抗化に50ns程度の時間を要する相変化メモリが記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−１４６２５５号公報
【特許文献２】特開平０７−１５３２８５号公報
【特許文献３】特開２００２−５３３８１０号公報
【特許文献４】特開２００４−２４０５７２号公報
【非特許文献】
【０００８】
【非特許文献１】「アイ・イー・イー・イー、インターナショナル・ソリッド・ステート・サーキット・カンフアレーンス、ダイジェスト・オブ・テクニカル・ペーパーズ（IEEE International Solid−State Circuits Conference、Digest of Technical Papers）」、（米国）、2007年、p.472−473
【非特許文献２】「アイ・イー・イー・イー、インターナショナル・エレクトロン・デバイシズ・ミーティング、テクニカル・ダイジェスト（IEEE International Electron Devices meeting、TECHNICAL DIGEST）」、（米国）、2001年、p.803−806
【非特許文献３】「アイ・イー・イー・イー、ジャーナル・オブ・ソリッド・ステート・サーキット（IEEE JOURNAL OD SOLID-STATE CIRCUIT, VOL. 40, No1, JANUARY 2005）」、（米国）、2005年、p.293−300
【非特許文献４】NAND型フラッシュのデータシート（TC58NVG2S3ETA00）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明者らは、本願に先立ち、SSD（Solid State Drive）やメモリカードなどのストレージへ利用されているNAND型フラッシュメモリの制御方法について検討した。さらに、発明者らは、カルコゲナイド材料からなる記録層とダイオードを用いた相変化メモリの抵抗値の特性について検討した。以下、検討内容を説明する。
【００１０】
［NAND型フラッシュメモリの制御方法に対する検討］
4Gbit のNAND型フラッシュメモリ（TC58NVG2S3ETA00）は、（2048＋64）バイトからなるページと、64個のページからなるブロック（135168＝131072＋4096バイト）と、4096ブロックからなるチップとで構成されている。
【００１１】
SSDは、複数のNAND型フラッシュメモリと、これらフラッシュメモリを制御するコントローラとで構成されている。ホストコントローラとSSDは、SATAインターフェースによって接続されている。
【００１２】
以下、ホストコントローラからSSDへ1ページ分のデータ書込み命令が生じた場合の書込み動作を説明する。
【００１３】
NAND型フラッシュメモリへのデータの書き込みはページ単位で行われ、データの書き込みは以下の手順により実行される。まず、コントローラは、NAND型フラッシュメモリから1ブロック分のデータ（135168バイト）を読み出す。次に、この1ブロック分のデータ（135168バイト）が格納されていたメモリ領域のデータを消去する。その後、新たに1ページ分のデータ（2112バイト）をメモリ領域に書き込む。
【００１４】
なお、NAND型フラッシュメモリには、最大消去可能回数ERASEmaxがある。この最大消去可能回数ERASEmaxを超えると、NAND型フラッシュメモリに保存されているデータは保証されなくなり、SSDは寿命を迎える。従って、SSDの寿命を延ばすには、効率の良いデータ消去方法が必要である。
【００１５】
しかし、NAND型フラッシュメモリは、データの書込み単位と、データの消去単位が大きく異なっている。NAND型フラッシュメモリは、1ページ分のデータ（2112バイト）を書き込む際、64倍のデータサイズ（135168バイト）を消去する必要があり、データ消去方法が非常に非効率的である。このように、NAND型フラッシュメモリを利用したSSDの寿命の改善は困難であることが判明した。
【００１６】
さらに、1ページ分のデータ（2112バイト）を書き込む際、1ブロック分のデータ（135168バイト）を消去する前に、この1ブロック分のデータを読み出す必要があり、書込み性能が劣化することが判明した。
【００１７】
［抵抗変化型不揮発性メモリの制御方法に対する検討］
抵抗変化型メモリとして、相変化メモリ（Phase Change Memory）、ReRAM（Resistive RAM）などが開発されている。これらのメモリには書込み回数の上限値があり、この上限値が抵抗変化型メモリの寿命をきめる。このため、特定のメモリセルへの書き込みが集中すると、その寿命が短くなってしまうことが判明した。
【００１８】
また、抵抗変化型メモリはデータを上書きでき、その最小単位は1バイトと小さい。つまり必要なデータサイズ分のみを書き換え可能であることが判明した。
【課題を解決するための手段】
【００１９】
そこで、本発明者は、上書き可能な複数のメモリセルを含む不揮発性メモリ装置と、当該不揮発性メモリ装置へのアクセスを制御する制御回路装置とを有する半導体装置において、制御回路装置が以下の機能を有するものを提供する。すなわち、制御回路装置として、外部から与えられる第１の書込みデータの書き込みに使用するメモリセルの物理的な配置が、少なくとも一つの方向に対してＮ（Ｎは自然数）個置きになるように、外部から与えられる第１のアドレスとは独立に、不揮発性メモリ装置に対する第２のアドレスの割り当てを設定する機能を有するものを提供する。
【発明の効果】
【００２０】
本発明によれば、第１の書込みデータの書き込み使用されるメモリセルが、少なくとも一つの方向に対して物理的に隣り合わないようにできる。すなわち、データ書込時に発生するジュール熱がメモリセルに与える熱履歴の影響を小さくすることが可能な第２のアドレスを、第１のアドレスとは独立に与えることができる。これにより、高信頼で長寿命の半導体装置を提供することができる。上述した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００２１】
【図１】相変化材料を用いた抵抗素子の相変化に必要なパルス幅と温度との関係を示す図。
【図２】情報処理システム装置の形態例を示す図。
【図３】本発明の制御回路の回路構成の一例を示す図。
【図４】本発明の制御回路の回路構成の一例を示す図。
【図５】本発明の不揮発性メモリ装置の回路構成の一例を示す図。
【図６】不揮発性メモリ装置への書き込み動作の一例を示す図。
【図７】不揮発性メモリ装置からの読み出し動作の一例を示す図。
【図８】情報処理システム装置に対する電源投入時に実行される初期シーケンスの一例を示す図。
【図９】本発明の物理テーブルの一例を示す図。
【図１０】本発明の物理セグメントテーブルの一例を示す図。
【図１１】本発明の書込み物理アドレステーブルの一例を示す図。
【図１２】本発明のアドレス変換テーブル及び不揮発性メモリ装置の初期設定値の一例を示す図。
【図１３】本発明のＳＳＤコンフィグレーション情報の一例を示す図。
【図１４】本発明の不揮発性メモリ装置へ書き込むデータの構成例を示す図。
【図１５】本発明のアドレスマップ範囲の一例を示す図。
【図１６】不揮発性メモリ装置のメモリセルアレイにおいて書き込み可能なメモリセルの配置例を示す図。
【図１７】不揮発性メモリ装置のメモリセルアレイにおいて書き込み可能なメモリセルへのデータの書き込み例を示す図。
【図１８】不揮発性メモリ装置のメモリセルアレイにおいて書き込み可能なメモリセルへのデータの書き込み例を示す図。
【図１９】メモリモジュールが行うデータの書込み動作の一例を示す図。
【図２０】書込み物理アドレステーブルの更新方法の一例を示す図。
【図２１】物理アドレスを決定する際の計算方法の一例を示す図。
【図２２】アドレス変換テーブルおよび不揮発性メモリ装置のデータ更新方法の一例を示す図。
【図２３】アドレス変換テーブルおよび不揮発性メモリ装置のデータ更新方法の一例を示す図。
【図２４】本発明の物理アドレス間におけるデータ移動動作の一例を示す図。
【図２５】本発明のパイプライン書き込み動作の一例を示す図。
【図２６】本発明のメモリモジュールのデータの読み出し動作の一例を示す図。
【図２７】ライト方法選択情報により選択された書込み方法の一例を示す図。
【図２８】不揮発性メモリ装置のメモリセルアレイへのデータ書込み例を示す図。
【図２９】不揮発性メモリ装置のメモリセルアレイへのデータ書込み例を示す図。
【図３０】不揮発性メモリ装置のメモリセルアレイへのデータ書込み例を示す図。
【図３１】不揮発性メモリ装置のメモリセルアレイへのデータ書込み例を示す図。
【図３２】不揮発性メモリ装置のメモリセルアレイへのデータ書込み例を示す図。
【図３３】不揮発性メモリ装置のメモリセルアレイへのデータ書込み例を示す図。
【図３４】物理アドレスを決定する際の計算方法の一例を示す図。
【図３５】不揮発性メモリ装置のメモリセルアレイへのデータ書込み例を示す図。
【発明を実施するための形態】
【００２２】
以下の実施の形態においては、便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明する。特に明示した場合を除き、それらは互いに無関係ではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００２３】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００２４】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の機能を有する部材には同一または関連する符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態では、特に必要なとき以外は同一または同様な部分の説明を原則として繰り返さない。
【００２５】
実施の形態において各ブロックを構成する回路素子は特に制限されないが、公知のCMOS（相補型MOSトランジスタ）等の集積回路技術によって、単結晶シリコンのような１個の半導体基板上に形成される。さらに、これらのメモリセルには、相変化メモリ、ReRAM（Resistive Ramdam Access Memory）のような抵抗性記憶素子を用いるものとする。
【００２６】
［各形態例の概要］
まず、後述する形態例で採用する技術の概要を説明する。各形態例は、メモリセルが相変化メモリであるものとして説明する。すなわち、複数個の抵抗変化型メモリと、これらのメモリを制御するコントローラから構成されるSSDにおいて、長寿命のSSDを実現するために、書き込み時にコントローラが実行する物理アドレスの割り当て制御技術について説明する。なお、形態例に係るコントローラの制御は、相変化メモリに対する発明者らの以下の考察に基づいている。
【００２７】
相変化メモリへの書き込みは、電流により発生するジュール熱の影響を制御することにより、メモリセルの抵抗値を制御する。この相変化メモリへの書き込み時は、書き込むメモリセルに隣接したメモリセルほど、このジュール熱による熱履歴の影響を受けやすく、書き換え動作によって、書き込みを行わない隣接したメモリセルの電気特性に大きな影響をもたらし、抵抗値に大きなバラツキが発生するという問題があることが判明した。
【００２８】
また、相変化メモリセルへデータを上書きする場合においては、書き換え後の状態の差異により抵抗値が変動するため、メモリセル間の抵抗バラツキが大きくなり、特性に大きな影響を及ぼすことが判明した。
【００２９】
以下の形態例においては、複数の相変化メモリと、これらのメモリを制御するコントローラから構成されるSSDに関し、コントローラから以下の(1)〜(6)に示す書き込み方法を実現する高信頼かつ長寿命のSSDを提供することを目的とする。
【００３０】
(1) コントローラは、信頼性のレベルに応じ、データの書き込みを許可するメモリセルの物理的な配置を決定し、書き込みを行う。
(2) コントローラは、信頼性のレベルに応じ、データの書き込みを禁止するメモリセルの連続した物理的な配置を決定し、書き込みを行う。
(3) コントローラは、信頼性のレベルに応じ、モニター用のメモリセルを設ける。
(4) コントローラは、信頼性のレベルに応じ、データを圧縮し、メモリセルに書き込みを行う。
(5) コントローラから相変化メモリへの書き込み方法は、データの上書きを行うのではなく、相変化メモリセルの状態をアモルファス又は結晶状態のいずれかの状態に一旦設定し（消去動作）、その後、所望のデータを書き込む（書き込み動作）。
(6) SDDコンフィグレーション情報SDCFGをプログラム可能にし、柔軟に、情報処理システム装置にあわせたメモリモジュールNVMSTR0を構成する。
【００３１】
これらの目的を実現するため、実施形態に係るコントローラにおいては、内部レジスタに記憶されている情報に基づいて、データ書込時のジュール熱による熱履歴の影響を受け難くするように、データの書き込みを許可する物理アドレスWPPADを決め、ホストからコントローラに入力される論理アドレスと、この物理アドレスの対応付けを行うアドレスマップADMAPを生成する。さらに、内部レジスタはホストが書き換えることが可能である。
【００３２】
コントローラは、相変化メモリへデータを書き込む際、データの書き込みが許可されたアドレスの中で連続したアドレスに書き込む。コントローラは、ホストから受け取った書き込みデータを圧縮した後、相変化メモリへ書き込む。コントローラは、ホストコントローラからのライトリクエストをバッファへ格納し、書込み事前準備が終了した後、相変化メモリへ書き込む。コントローラには、書込み物理アドレステーブルNXPADTBLへ、将来のライトリクエストに備え、事前に書込み物理アドレスを格納する。
【００３３】
コントローラは、電源投入直後、アドレスマップADMAP、アドレス変換テーブルLPTBL、物理セグメントテーブルPSEGTBL、物理テーブルPADTBを初期化し、さらに不揮発性メモリ装置および書込み物理アドレステーブルNXPADTBLを初期化する。
【００３４】
コントローラは、ライトリクエストのバッファへの格納と、書き込み事前準備と、相変化メモリへの書き込み動作をパイプライン的に処理する。コントローラは、書込み物理アドレステーブルNXPADTBLへ物理アドレスを登録する際は、セグメント毎の無効状態の物理アドレスの書換え回数を比較し、最も少ない書き換え回数を持つセグメントを選択し、そのセグメント内の物理アドレスを順に登録する。コントローラは、書込み物理アドレステーブルNXPADTBLへ物理アドレスを登録する際、物理アドレスの消去回数と、消去回数閾値より小さな消去回数を持つ物理アドレスを選択する。
【００３５】
コントローラは、無効物理アドレスの最大消去回数と、有効物理アドレスの最小消去回数の差DIFECを求め、この差DIFECが閾値DERCthより大きい場合は、この差DIFECを小さくするため、無効物理アドレスに関する最大消去回数MXERCの中の最小値MXNERCを持つ物理アドレスDPADのデータを、無効物理アドレスに関する最大消去回数MXERCの中の最小値MXNERCを持つ物理アドレスDPAD1へ移動させる。
【００３６】
このコントローラの採用により、データ書込時に発生するジュール熱がメモリセルに与える熱履歴の影響が小さくするように物理アドレスを決めることができる。これにより、高信頼で長寿命のSSDを提供することができる。
【００３７】
さらに、ホストからの論理アドレスに対応する物理アドレスをシーケンシャルに割り当てることにより、相変化メモリの物理アドレス毎のデータ消去回数のバラツキを抑えることができ、高信頼で長寿命のSSDを提供できる。さらに、コントローラはライトリクエストのバッファへの格納と、書込み事前準備と、相変化メモリへの書き込み動作をパイプライン的に処理するため、高性能なSSDを提供できる。
【００３８】
（実施の形態）
本発明を適用した実施の形態である情報処理システムについて、図２〜図３５を用いて説明する。
【００３９】
図２は、本発明を適用した実施の形態である情報処理装置CPU_CHIPとメモリモジュールNVMSTR0とから構成される情報処理システム装置において、その構成の一例を示すブロック図である。図２に示されるように、情報処理装置CPU_CHIPは、特に限定しないがメモリモジュールNVMSTR0へ保存されているデータを最小512バイト単位の論理アドレスLADにて管理するホストコントローラである。インターフェース信号HDH_IFを通じ、このメモリモジュールNVMSTR0に対してデータの読み出しや書込みを行う。
【００４０】
情報処理装置CPU_CHIPとメモリモジュールNVMSTR0を接続する信号方式には、シリアルインターフェース信号方式、パラレルインターフェース信号方式、光インターフェース信号方式などがある。いうまでもなく、全ての方式を利用することができる。
【００４１】
情報処理装置CPU_CHIPとメモリモジュールNVMSTR0を動作させるクロック方式には、コモンクロック方式、ソースシンクロナスクロック方式、エンベデッドクロック方式などがある。いうまでもなく、全てのクロック方式を利用することができる。本実施の形態はエンベデッドクロック方式であり、シリアルインターフェース信号方式による動作の一例を説明する。
【００４２】
情報処理装置CPU_CHIPからクロック情報が埋め込まれ、シリアルデータへ変換されたリードリクエストRDREQやライトリクエストWTREQなどがインターフェース信号HDH_IFを通じてメモリモジュールNVMSTR0へ入力される。
【００４３】
リードリクエストRDREQには論理アドレス値LAD、データ読み出し命令RD、セクタカウントSECなどが含まれ、また、ライトリクエストWTREQには論理アドレス値LAD、データ書込み命令WRT、セクタカウントSECおよび書込みデータWDATAなどが含まれる。
【００４４】
メモリモジュールNVMSTR0は、不揮発性メモリ装置NVM10からNVM17と、ランダムアクセスメモリRAMと、これら不揮発性メモリ装置およびランダムアクセスメモリを制御する制御回路STRCT0から構成されている。不揮発性メモリ装置NVM10からNVM17は同じ構成および性能を持つ不揮発性メモリ装置である。
【００４５】
また、図３に示されるように制御回路STRCT0は、インターフェース回路HOST_IFと、バッファBUF0〜BUF3と、不揮発性メモリ装置NVM0と、書込み物理アドレステーブルNXPTBL1-2と、調停回路ARBと、情報処理回路MANAGERと、不揮発性メモリ装置NVM10からNVM17をそれぞれ直接制御するメモリ制御装置NVCT0からNVCT7と、ランダムアクセスメモリRAMを直接制御するメモリ制御装置RAMCと、MAPREGとで構成される。また、図４に示す制御回路STRCT01は複数の書込み物理アドレステーブルNXPTBL0-3を装備している点が、図３とは異なるが、それ以外の構成や機能は図３と同等である。
【００４６】
図５は、不揮発性メモリ装置NVM10からNVM17として利用されている不揮発性メモリNVMEMの一例を示すブロック図であり、相変化型の不揮発メモリを例に示してある。
【００４７】
不揮発性メモリNVMEMはクロック生成回路SYMD、ステータスレジスタSTREG、アドレスおよびコマンドインターフェース回路ADCOMIF、ＩＯバッファIOBUF、制御回路CONTLOGIC、温度センサTHMO、データ制御回路DATACTL、メモリバンクBK0〜BK3から構成される。各メモリバンクには、メモリアレイARYx（ｘ＝0〜m）、ロウアドレスラッチRADLT、カラムアドレスラッチCADLT、ロウデコーダROWDEC、カラムデコーダCOLDEC、データ選択回路DSW1、データバッファDBUF0およびデータバッファDBUF1が含まれる。
【００４８】
各メモリアレイARYx（ｘ＝0〜m）には、複数のメモリセルcelと、ビット線選択回路BSWx（ｘ＝0〜m）、センスアンプSAx（ｘ＝0〜m）およびライトドライバWDRx（ｘ＝0〜m）が含まれる。
【００４９】
制御信号CTLは、コマンド・ラッチイネーブルCLE、チップイネーブル信号CEB、アドレス・ラッチ信号ALE、ライトイネーブル信号WEB、リードイネーブル信号REB、レディビジー信号RBBから構成される。I/O信号は入出力信号であり、コマンド、アドレスおよび書き込みデータが入力され、読み出しデータが出力される。
【００５０】
［不揮発性メモリ装置への書き込み動作］
図６は、不揮発性メモリ装置NVM1x（ｘ＝0〜7）がＭバイトのデータを、データバッファDBUF0を介してメモリセルcelへ書き込む際の書き込み動作の例を示している。なお、図６および図７における「ｍ＊ｎ」等の「＊」は「×」（乗算）を意味するものである。
【００５１】
ロウ・レベルとなっているコマンド・ラッチイネーブル信号CLEをハイ・レベルに駆動し、ハイ・レベルとなっているチップイネーブル信号CEB及びアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動する。この後、書き込みコマンドW10を入出力線I/Ox（ｘ＝0〜7）を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって書き込みコマンドW10がアドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。また、コマンドW10には、データバッファDBUF0あるいはDBUF1を指定する情報も含まれており、図６の例ではデータバッファDBUF0を指定している。
【００５２】
次に、ハイ・レベルとなっているコマンド・ラッチイネーブル信号CLEをロウ・レベルへ、ロウ・レベルとなっているアドレス・ラッチイネーブル信号ALEをハイ・レベルに夫々駆動して、カラム・アドレスを２回（CA1、CA2）、ロウ・アドレスを３回（RA1、RA2、RA3）に分けて順に入力する。これらのアドレスは、ライトイネーブル信号WEBの立ち上がりエッジによって、アドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。
【００５３】
アドレス・コマンドインターフェース回路ADCMDIFにてアドレス、コマンドW10を解読した結果、メモリバンクBK0への読み出し命令であることを制御回路CONTLOGICへ伝えると、制御回路CONTLOGICは、メモリバンクBK0からデータを読み出すため、メモリバンクBK0を活性化する。
【００５４】
アドレス・コマンドインターフェース回路ADCMDIFへ入力されたロウアドレス（RA1、RA2、RA3）およびカラム・アドレスを（CA1、CA2）は制御回路CONTLOGICを通じて、それぞれ、活性化されたメモリバンクBK0のロウアドレスラッチ回路RADLTへ転送され、カラムアドレスラッチ回路CADLTへ転送される。この書き込み動作は最初に入力されたカラムアドレスから開始される。
【００５５】
ロウアドレスラッチ回路RADLTからロウアドレス（RA1、RA2、RA3）がロウデコーダROWDECへ転送され、ロウデコーダROWDECによってロウアドレス（RA1、RA2、RA3）に対応したワード線WLnが選択される。
【００５６】
次に、カラムアドレスラッチ回路CADLTからカラム・アドレス（CA1、CA2）がカラムデコーダCOLDECへ転送され、解読される。
【００５７】
カラムデコーダCOLDECからの解読結果は、各メモリアレイ（ARY0-m）のビット線選択回路BSW0-mへ入力され、メモリアレイ毎に一つのビット線BLが選択され、データ線DT0-mを介して書き込み（ライト）ドライバWDR0-mへ接続される。
【００５８】
書き込みドライバWDR0-mは、データ線DT0-mを介して、図１のような電流パルスによって、選択されたメモリセルcelを低抵抗状態や高抵抗状態にするための電流供給回路である。
【００５９】
メモリセルcelを高抵抗状態にする、すなわち記憶情報“0”を書き込む場合に、データ線DT0-nを介して印加するメモリセル電流Icellをリセット動作に必要な値Iresetに制御する。
【００６０】
メモリセルcelを低抵抗状態にする、すなわち記憶情報“1”を書き込む場合に、データ線DT0-nを介して印加するメモリセル電流Icellをセット動作に必要な値Isetに制御する。
【００６１】
一つのメモリバンクの中に、書き込みドライバWDRは合計ｍ×８個存在するため、一つのメモリバンクの中で、同時にｍバイトのメモリセルcelを書き込むことができる。
【００６２】
次に、ハイ・レベルとなっているアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動して、ライトイネーブル信号WEBの立ち上がりエッジに同期して、記憶情報DI(1)〜DI(M)が入出力線I/Ox（x＝0〜7）を介して、1バイト分のデータが順次データバッファDBUF0へ入力される。
【００６３】
データバッファDBUF0へnバイト分のデータが入力するたびに、n×8個分の書き込みドライバWDRを通じて、nバイト分のデータが書き込まれる。以下に、その動作を示す。
【００６４】
先ず、最初のnバイト分のデータの書き込み動作を説明する。
データバッファDBUF0へ最初のnバイト分のデータの中で、最初の1バイト分のデータが入力した時点で、書き込みドライバWDRを通じて、カラム・アドレス｛CA1、CA2｝によって選択された最初のnバイト分のメモリセルを低抵抗状態（消去：ERS0）する。次に、データバッファDBUF0へ最初のnバイト分のデータがすべて入力した時点で、データバッファDBUF0に保持されているデータの中で“0”のデータのみを書き込みドライバWDRによってメモリセルを高抵抗状態（プログラム：PROG1）にする。これによって、最初のnバイト分のデータ書き込みが行われる。
【００６５】
次に、２番目のnバイト分のデータの書き込み動作を説明する。
データバッファDBUF0へ２番目のnバイト分のデータの中で、最初の1バイト分のデータが入力した時点で、書き込みドライバWDRを通じて、カラム・アドレス｛｛CA1、CA2｝＋(n)｝によって選択された２番目のnバイト分のメモリセルを低抵抗状態（消去：ERS0）にする。次に、データバッファDBUF0へ２番目のnバイト分のデータがすべて入力した時点で、データバッファDBUF0に保持されているデータの中で“1”のデータのみを書き込みドライバWDRによってメモリセルを高抵抗状態（プログラム：PROG1）にする。これによって、２番目のnバイト分のデータ書き込みが行われる。
【００６６】
３番目のnバイト分のデータの書き込み動作も、上記の動作と同様に行われ、その際のカラム・アドレスは｛｛CA1、CA2｝＋(2n)｝となる。
【００６７】
このように、開始カラムアドレス｛CA1、CA2｝へ順にnの倍数を加算したカラムアドレスによって選択されたnバイト分のメモリセルcelへ消去（ERS0）とプログラム（PROG1）が実行される。
Ｍバイトのデータを書き込む際は、消去（ERS0）とプログラム（PROG1）がＭ／ｎ回生じる。
【００６８】
また、書き込みコマンドW10にてデータバッファDBUF1を指定した場合は、入出力線I/Ox（x＝0〜7）を介してデータバッファDBUF1へ入力され、データバッファDBUF1に保持されたデータがメモリセルcelへ書き込まれる。
【００６９】
以上説明したように不揮発性メモリ装置NVM1x（x＝0〜7）はＭバイトのデータを書き込む際には、要求されたＭバイトデータサイズだけの消去（ERS0）とプログラム（PROG1）動作を行う。
【００７０】
つまり、消去（ERS0）のデータサイズとプログラム（PROG1）のデータサイズは等しいため、余分なアドレスのデータを消去（ERS0）する必要が無いため、高速な書き込みを実現できる。
【００７１】
さらに、この書き込み動作において、上書きはせず、一旦、対象となるメモリセルcelを消去状態とすることで、メモリセルの抵抗値の均一化を図ることができ、安定した書き込みや読み出し動作を実現できる。
【００７２】
［不揮発性メモリ装置からの読み出し動作］
図７は、不揮発性メモリ装置NVM1x（x＝0〜7）から、指定されたデータサイズ分のデータを、データバッファDBUF0を介して読み出す際の読み出し動作の例を示している。
【００７３】
ロウ・レベルとなっているコマンド・ラッチイネーブル信号CLEをハイ・レベルに駆動し、ハイ・レベルとなっているチップイネーブル信号CEB及びアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動する。
【００７４】
次に、読み出しコマンドRD4を入出力線I/Ox（x＝0〜7）を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって、第一のセクター読み出しコマンドRD4がアドレス・コマンドインターフェース回路ADCOMIFへ取り込まれ、解読される。
【００７５】
次に、ハイ・レベルとなっているコマンド・ラッチイネーブル信号CLEをロウ・レベルへ、ロウ・レベルとなっているアドレス・ラッチイネーブル信号ALEをハイ・レベルに夫々駆動して、カラム・アドレスを２回（CA1、CA2）、ロウ・アドレスを３回（RA1、RA2、RA3）に分けて順に入力する。これらのアドレスは、ライトイネーブル信号WEBの立ち上がりエッジによって、アドレス・コマンドインターフェース回路ADCOMIFへ取り込まれ、解読される。
【００７６】
次にロウ・レベルとなっているコマンド・ラッチイネーブル信号CLEをハイ・レベルに駆動し、ハイ・レベルとなっているチップイネーブル信号CEB及びアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動する。
【００７７】
次に、第２のセクターデータ読み出しコマンドRD41を入出力線I/Ox（x＝0〜7）を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって、第２の読み出しコマンドRD41がアドレス・コマンドインターフェース回路ADCOMIFへ取り込まれ、解読される。
【００７８】
コマンドRD4およびRD41には、データバッファDBUF0あるいはDBUF1を指定する情報も含まれており、図７の例ではデータバッファDBUF0を指定している。
【００７９】
アドレス・コマンドインターフェース回路ADCOMIFにてアドレス、コマンドRD4およびコマンドRD41を解読した結果、メモリバンクBK0への読み出し命令であることを制御回路CONTLOGICへ伝えると、制御回路CONTLOGICは、メモリバンクBK0からデータを読み出すため、メモリバンクBK0を活性化する。
【００８０】
アドレス・コマンドインターフェース回路ADCOMIFへ入力されたロウアドレス（RA1、RA2、RA3）およびカラム・アドレスを（CA1、CA2）は制御回路CONTLOGICを通じて、それぞれ、活性化されたメモリバンクBK0のロウアドレスラッチ回路RADLTへ転送され、カラムアドレスラッチ回路CADLTへ転送される。
【００８１】
ロウアドレスラッチ回路RADLTからロウアドレス（RA1、RA2、RA3）がデコーダROWDECへ転送され、デコーダROWDECによってロウアドレス（RA1、RA2、RA3）に対応したワード線WLiが選択される。
【００８２】
次に、カラムアドレスラッチ回路CADLTからカラム・アドレスが（CA1、CA2）がカラムデコーダCOLDECへ転送され解読される。
カラムデコーダCOLDECからの解読結果は、各メモリアレイ（ARY0-m）のビット線選択回路BSW0-mへ入力され、メモリアレイ毎に一つのビット線BLiが選択され、データ線DT0-mを介しセンスアンプSA0-mへ接続される。これにより、メモリアレイ毎(ARY0-m)に１ビットのメモリcelが選択されるため、一つのメモリバンクの中で同時に合計(m+1)ビットのメモリセルcel(0ビット目からmビット目)が選択される。
【００８３】
メモリアレイ毎に選択されたメモリセルcel(0ビット目からmビット目)から、データ線をそれぞれのメモリアレイに設けられたセンスアンプSA0-mへ電流が流れ、その際の電圧を計測し、参照電圧と比較することにより、メモリセルcelへ記録されたデータm+1ビット分のデータDnbyteを検出する。つまり、カラム・アドレス｛CA1、CA2｝によって選択された最初のｎバイト（＝（m+1）/8）分のデータDnbyteがメモリセルcelから同時に検出される。
【００８４】
例えばメモリアレイARY0のワード線WLnとのビット線BL0上のメモリセルcelが情報“1”を記憶しており、低抵抗状態にある場合は、ビット線BL0及びデータ線DT0が充電され、センスアンプSAへその電圧が伝えられ、データ“1”が検出される。一方、メモリアレイARY1のワード線WLnとのビット線BL0上のメモリセルcelが情報“0”を記憶しており、高抵抗状態にある場合は、ビット線BL0及びデータ線DT1は、ほぼ接地電圧VSSに保持され、センスアンプSAへその電圧が伝えられ、データ“0”が検出される。
【００８５】
検出された1番目のnバイト（＝（m+1）/8）分のデータDnbyteは データ選択回路DSW1を介して、コマンドRD4およびRD41によって指定されたデータバッファDBUF0へ転送される。
【００８６】
次のnバイト分のデータは、カラム・アドレス{｛CA1、CA2｝＋(n)}によって選択され、データバッファDBUF0へ転送される。このように、メモリセルcelから開始カラムアドレス｛CA1、CA2｝へ順にnの倍数を加算したカラムアドレスによって選択されたnバイト分のデータが順にデータバッファDBUF0へ転送される。指定したデータサイズがk＊nバイトの時、モリセルアレイARYからデータバッファDBUF0へのデータ転送がk回生じる。
【００８７】
メモリセルcelからデータバッファDBUF0へデータ転送が行われている期間は、ハイ・レベルとなっているレディー／ビジー信号RBBはロウ・レベルとなる。このデータ転送が終了した時点で、ロウ・レベルとなっているレディー／ビジー信号RBBがハイ・レベルとなる。
【００８８】
入出力信号IOの信号数が8ビット（1バイト）の場合、データバッファDBUF0へ格納されたk*nバイト分のデータは読み出しイネーブル信号REBの立ち下がりエッジに同期して、入出力信号IOからDO(1)〜DO(k＊n)の順に出力される。例えば指定されたデータサイズが512バイトで、同時に選択されるメモリセルcelのデータサイズが16バイトで、入出力信号IOの信号数が8ビット（1バイト）の場合は、メモリセルcelからデータバッファDBUF0へは合計32回（＝512/16)のデータ転送が行われ、データバッファDBUF0から入出力信号IOを介してデータを出力する回数は512回となる。
【００８９】
また、コマンドRD4およびRD41にてデータバッファDBUF1を指定した場合は、同様に、不揮発性メモリ装置NVM1x（x＝0〜7）のメモリアレイから、指定したデータサイズ（ｋ＊ｎバイト）分のデータが、データバッファDBUF1を介して読み出される。
【００９０】
このように、任意のデータサイズを指定した読み出し動作では、必要なサイズ分のデータのみを効率的に読み出しことができるため、高速読み出しが実現できる。
【００９１】
［電源投入時の初期シーケンス］
図８は、実施例に係る情報処理システム装置の電源投入時の初期シーケンス例を示す。図８の（a）は、制御回路STRCT0内の不揮発性メモリNVM0へ格納されているSDDコンフィグレーション情報SDCFGを利用した場合における電源投入時の初期シーケンスを示す一例である。図８の（b）は、情報処理装置CPU_CHIPから送信されたSDDコンフィグレーション情報SDCFGを利用した場合における電源投入時の初期シーケンスを示す一例である。
【００９２】
先ず、図８の（a）に示す初期シーケンスを以下に説明する。Ｔ１の期間（PwOn）で情報処理装置CPU_CHIPと、メモリモジュールNVMSTR0内の不揮発性メモリ装置（NVM10からNVM17）と、ランダムアクセスメモリRAMと、制御回路STRCT0へ電源投入を行い、Ｔ２の期間（RST）でリセットを行う。リセットの方法は特に限定しないが、それぞれの内蔵回路で自動的にリセットを行う方法でも、外部にリセット端子(RSTSIG)を有し、このリセット信号によってリセット動作を行う方法でも、情報処理装置CPU_CHIPからインターフェース信号HDH_IFを通じて、リセット命令を制御回路STRCT0へ入力し、リセットを行う方法としても良い。
【００９３】
Ｔ２のリセット期間（Reset）では、情報処理装置CPU_CHIP、制御回路STRCT0、不揮発性メモリ装置（NVM10からNVM17）、ランダムアクセスメモリRAMと内部状態を初期設定する。
【００９４】
制御回路STRCT0は、ランダムアクセスメモリRAMへ格納されているアドレス範囲マップADMAP、アドレス変換テーブルLPTBL、物理セグメントテーブルPSEGTBL1、物理セグメントテーブルPSEGTBL2、物理アドレステーブルPADTBを初期化し、さらに不揮発性メモリ装置および書込み物理アドレステーブルNXPADTBLを初期化する。
【００９５】
Ｔ２の期間が終了した後のＴ３の期間（MAP）では、制御回路STRCT0はの不揮発性メモリNVM0へ格納されているSDDコンフィグレーション情報SDCFGを読み出し、レジスタMAPREGへ転送する。次に、レジスタMAPREG内のSSDコンフィグレーション情報SDCFGを読み出し、このSSDコンフィグレーション情報SDCFGを利用し、アドレスマップ範囲ADMAPを生成し、ランダムアクセスメモリRAMへ格納する。
【００９６】
さらに、制御回路STRCT0は、レジスタMAPREG内のSSDコンフィグレーション情報SDCFGの中の論理アドレス領域LRNG情報が、論理アドレス領域LRNG1とLRNG2に分かれていれば、これを認識し、書込み物理アドレステーブルNXPADTBL内を、論理アドレス領域LRNG1用の書込み物理アドレステーブルNXPADTBL1と、論理アドレス領域LRNG2用の書込み物理アドレステーブルNXPADTBL2とに切り分ける。
【００９７】
特に限定しないが、書込み物理アドレステーブルNXPADTBLが0エントリー目から（N-1）エントリー目までのN個分のエントリーで構成されている場合、0エントリー目から（N/2-1）エントリー目のN/2個分を書込み物理アドレステーブルNXPADTBL1とし、N/2エントリー目からNエントリー目の、残りのN/2個分を書込み物理アドレステーブルNXPADTBL2とすることもできる。
【００９８】
Ｔ３の期間が終了した後のＴ４の期間（SetUp）では、情報処理装置CPU_CHIPは制御回路STRCT0内の不揮発性メモリNVM0へ格納されているブートプログラムを読み出し、情報処理装置CPU_CHIPを立ち上げる。Ｔ４の期間が終了した後のＴ５の期間（Idle）以降は、メモリモジュールNVMSTR0はアイドル状態となり、情報処理装置CPU_CHIPからのリクエストを待つ状態となる。
【００９９】
次に、図８の(b)に示す初期シーケンスを説明する。Ｔ１１の期間（PwOn）と、Ｔ２１の期間(Reset)では、それぞれ、図８の(a)のＴ１の期間及びＴ２の期間と同様の動作を行う。
【０１００】
Ｔ２１の期間が終了した後のＴ３１の期間（H2D）では、情報処理装置CPU_CHIPはメモリモジュールNVMSTR0へSSDコンフィグレーション情報SDCFGを送信すると、制御回路STRCT0は、このSSDコンフィグレーション情報SDCFGを不揮発性メモリNVM0格納する。
【０１０１】
Ｔ３１の期間が終了した後のＴ４１の期間（MAP）、Ｔ５１の期間（SetUp）、Ｔ６１の期間（Idle）では、それぞれ、図８の(a)のＴ１の期間及びＴ２の期間と同様の動作を行う。
【０１０２】
このように、図８の(a)に示したように、SDDコンフィグレーション情報SDCFGがメモリモジュールNVMSTR0へ予めプログラムされていれば、高速に電源投入時の初期シーケンスを実行することができる。また、図８の(b)に示したように、SDDコンフィグレーション情報SDCFGを情報処理装置CPU_CHIPからメモリモジュールNVMSTR0へプログラムすることにより、実施形態に係る情報処理システム装置に、適切なメモリモジュールNVMSTR0を構成することができる。
【０１０３】
［物理アドレステーブル］
図９は、ランダムアクセスメモリRAMへ格納されている物理アドレステーブルPADTBLを示している。物理アドレステーブルPADTBLは、物理アドレスPAD(PAD[31：0])と、この物理アドレスに対応した物理アドレスの有効フラグPVLDと消去回数PERCから構成されランダムアクセスメモリRAMへ格納されている。有効フラグPVLD値が1の場合は、対応する物理アドレスPADが有効であることを示し、0の場合は無効であることを示す。
【０１０４】
また、情報処理回路MANAGERは、物理アドレスPADが“00000000”〜“027FFFFF”までを物理アドレス領域PRNG1として、物理アドレスPADが“02800000”〜“07FFFFFF”までを物理アドレス領域PRNG2として認識し、物理アドレステーブルPADTBLを管理する。
また、特に限定しないが物理アドレスPAD(PAD[31：0])は、物理セグメントアドレスSGAD(PAD[31：16])と、物理アドレスPPAD（PAD[15:0]）とから構成される。
【０１０５】
［物理セグメントテーブル］
図１０は、ランダムアクセスメモリRAMへ格納されている物理セグメントテーブルPSEGTBL1およびPSEGTBL2を示している。図１０の(a)は無効物理アドレスに関する物理セグメントテーブルPSEGTBL1を示し、図１０の(b)は有効物理アドレスに関する物理セグメントテーブルPSEGTBL2を示している。
【０１０６】
特に限定しないが、物理アドレスPAD(PAD[31：0])の上位PAD[31：16]は、物理セグメントアドレスSGADを示す。特に限定しないが１つの物理アドレスのメインデータサイズは512バイトで、1セグメントのメインデータサイズは65536個の物理アドレスが集まって32Mバイトとなる。
【０１０７】
まず、図１０の(a)を説明する。物理セグメントテーブルPSEGTBL1は、物理セグメントアドレスSGAD(PAD[31：16])と、この物理セグメントアドレスSGAD内の無効物理アドレス総数TNIPAと、セグメントアドレスSGAD内の無効物理アドレスの中で最大消去回数MXERCを持つ無効物理アドレスMXIPADと、最大消去回数MXERCと、セグメントアドレスSGAD内の無効物理アドレスの中で最小消去回数MNERCを持つ無効物理アドレスMNIPADと、最小消去回数MNERCから構成され、ランダムアクセスメモリRAMへ格納されている。
【０１０８】
次に、図１０の(b)を説明する。物理セグメントテーブルPSEGTBL2は、物理セグメントアドレスSGAD(PAD[31：16])と、この物理セグメントアドレスSGAD内の有効物理アドレス総数TNVPAGEと、セグメントアドレスSGAD内の有効物理アドレスの中で最大消去回数MXERCを持つ有効物理アドレスMXVPADと、最大消去回数MXERCと、セグメントアドレスSGAD内の有効物理アドレスの中で最小消去回数MNERCを持つ有効物理アドレスMNVPADと、最小消去回数MNERCから構成され、ランダムアクセスメモリRAMへ格納されている。
【０１０９】
［書込み物理アドレステーブル］
図１１は、制御回路STRCT0に格納されている書込み物理アドレステーブルNXPADTBLを示す。図１１の(a)には、装置使用開始時の初期状態の書込み物理アドレステーブルNXPADTBLの一例を示す。また、図１１の(b)には、内容の更新状態の書込み物理アドレステーブルNXPADTBLの一例を示す。書込み物理アドレステーブルNXPADTBLは、不揮発性メモリ装置（NVM10からNVM17）へデータを書き込む際の不揮発性メモリ装置の物理アドレスPADを決めるテーブルであり、複数（N）個の物理アドレスに対応している。
【０１１０】
物理アドレステーブルNXPADTBLは、エントリー番号ENUMと、物理アドレスNXPADと、この物理アドレスNXPADに対応した物理アドレスの有効フラグNXPVLDと、消去回数NXPERCから構成される。
【０１１１】
制御回路STRCT0は、SSDコンフィグレーション情報SDCFGの中の論理アドレス領域LRNG情報が、論理アドレス領域LRNG1とLRNG2に分割されていることを認識し、書込み物理アドレステーブルNXPADTBLの中で、エントリー番号0から（N/2-1）のN/2個分を書込み物理アドレステーブルNXPADTBL1とし、エントリー番号（N/2）からNまでの残りのN/2個分を書込み物理アドレステーブルNXPADTBL2として管理する。また、論理アドレス領域LRNG1への書き込み要求に対しては、書込み物理アドレステーブルNXPADTBL1を利用し、また、論理アドレス領域LRNG2への書き込み要求に対しては、書込み物理アドレステーブルNXPADTBL2を利用し、不揮発性メモリ装置（NVM10からNVM17）へデータを書き込む。
【０１１２】
エントリー番号ENUMは、複数（N）組のNXPADにおけるN値（0番〜N-1番）を示し、このN値は書込み優先度（登録数）を示す。論理アドレス領域LRNG1への書き込み要求に対しては、書込み物理アドレステーブルNXPADTBL1の中のN値が小さい順から優先で使用され、論理アドレス領域LRNG2への書き込み要求に対しては書込み物理アドレステーブルNXPADTBL2の中のN値が小さい順から優先で使用される。また、有効フラグNXPVLDの値が0の場合は、対象となる物理アドレスは無効であることを意味し、1の場合は対象となる物理アドレスは有効であることを意味する。
【０１１３】
図１１の(a)で、N＝32の場合について、書込み物理アドレステーブルNXPADTBLの初期設定（例えば図８のＴ１からＴ３）について説明する。
【０１１４】
エントリー番号ENUM＝0番から(32/2)-1番までは、順に、論理アドレス領域LRNG1へ対応している物理アドレス領域PRNG1の中の物理アドレスNXPADの“00000000”番地から”0000001E”番地まで１つ置きの物理アドレスNXPADが設定される。
【０１１５】
エントリー番号ENUM＝(32/2)番から(32-1)番までは、順に、論理アドレス領域LRNG2へ対応している物理アドレス領域PRNG2の中の物理アドレスNXPADの“02800000”番地から“0280000F”まで、順に、物理アドレスNXPADが設定される。
【０１１６】
そして、これらの物理アドレスNXPAに対応する有効フラグNXPVLD及び消去回数NXPERCはすべて0に設定される。
【０１１７】
書込み物理アドレステーブルNXPADTBLが図１１の(a)で示す状態である際に、情報処理装置CPU_CHIPからインターフェース信号HDH_IFを通じ、このメモリモジュールNVMSTR0の論理アドレス領域LRNG1へ、セクタカウントSEC値1（512バイト）のライトリクエストWTREQがN/2回入力した場合、それぞれのライトリクエストWTREQに含まれるデータは物理アドレスPADの“00000000”番地から“0000001E”番地まで１つ置きに不揮発性メモリ装置へ書き込まれる。
【０１１８】
さらに、情報処理装置CPU_CHIPからインターフェース信号HDH_IFを通じ、このメモリモジュールNVMSTR0の論理アドレス領域LRNG2へセクタカウントSEC値１（512バイト）のライトリクエストWTREQがN/2回入力した場合、それぞれのライトリクエストWTREQに含まれるデータは物理アドレスPADの“02800000”番地から“0280000F”番地まで、順に、不揮発性メモリ装置へ書き込まれる。
【０１１９】
また、別の動作例を挙げれば以下になる。情報処理装置CPU_CHIPからインターフェース信号HDH_IFを通じ、このメモリモジュールNVMSTR0の論理アドレス領域LRNG1へ、セクタカウントSEC値16（8Kバイト）のライトリクエストWTREQが1回入力した場合、このライトリクエストWTREQに含まれるデータは512バイト毎の物理アドレスPADへ分解され、物理アドレスPADの“00000000”番地から“0000001E”番地まで１つ置きに不揮発性メモリ装置へ書き込まれる。
【０１２０】
報処理装置CPU_CHIPからインターフェース信号HDH_IFを通じて、このメモリモジュールNVMSTR0の論理アドレス領域LRNG2へ、セクタカウントSEC値16（８Kバイト）のライトリクエストWTREQが１回入力した場合、このライトリクエストWTREQに含まれるデータは512バイト毎の物理アドレスPADへ分解され、物理アドレスPADの”02800000”番地から”0280000F”番地まで、順に、不揮発性メモリ装置へ書き込まれる。
【０１２１】
［アドレス変換テーブルの初期設定値例と不揮発性メモリ装置の初期設定値例］
図１２の(a)に、電源投入直後（時間Ｔ０）に制御回路STRCT0が設定するアドレス変換テーブルLPTBLの初期設定状態例を示し、図１２の(b)に、電源投入直後に制御回路STRCT0が設定する不揮発性メモリ装置の初期設定状態例を示す。
【０１２２】
アドレス変換テーブルLPTBLの全論理アドレスLADに対する全物理アドレスCPADと物理アドレス有効フラグCVFは0に初期設定される。また、不揮発性メモリ装置の全データDATAと、全論理アドレスLADと、全データ有効フラグDVFは0に初期設定される。
【０１２３】
［SSDコンフィグレーション情報］
図１３には、STRCT0内の不揮発性メモリNVM0へ格納されているSSDコンフィグレーション情報SDCFGの一例を示す。図中、LRNGは論理アドレス領域であり、セクタ単位（512Ｂ）の論理アドレスLADでの範囲を示す。CAPは論理アドレス領域LRNGにて定められた範囲の論理データの容量を、RELLVLは信頼性のレベルを示す。
【０１２４】
論理アドレス領域LRNG1は、16進数で“0000_0000”〜“007F_FFFF”の論理アドレスLAD空間を占め、4Gバイトの容量を持つ。また、論理アドレス領域LRNG2は、16進数で“0080_0000”〜“037F_FFFF”の論理アドレス空間を占め、32Gバイトの大きさをもつ。
【０１２５】
INTVLDCELLは、メインデータ領域内のメモリセルの中で、幾つ置きにメモリセルの書込みを許可するかを示している。INTVLDCELLが“1”であれば、物理的なメモリセルの位置に対して、1個置きに書込みができることを意味し、INTVLDCELLが“0”であれば、0個置きに、つまり、物理的な位置が隣接するメモリセルへ書込みできることを意味する。
【０１２６】
INTVLRCELLは、冗長データ領域内のメモリセルの中で、幾つ置きにメモリセルの書込みを許可するかを示している。INTVLRCELLが“1”であれば、1個置きにメモリセルへの書込みを許可し、INTVLRCELLが“0”であれば、0個置きに、つまり、全メモリセルの書込みを許可することを意味する。
【０１２７】
BODRCELLは、連続して書込みを禁止するメモリセルの領域BDRを定めるために必要な情報である。BODRCELLが3の場合は、３つのワード線数分のメモリセル領域に対して書込みを禁止する。
【０１２８】
TESTCELL情報は、テスティングを行うための連続したメモリセル領域TAREAを定めるために必要な情報である。TESTCELLが5の場合は、メモリセル領域TAREAの大きさは、５つのビット線数メモリセル容量となる。
【０１２９】
MONICELLは、メモリセルの抵抗値や、メモリセルへ書き込まれたデータ値（“１”あるいは“０”）などをモニタリングするためのメモリセルの数を示す。MONICELLが1の場合、テスティングを行うためのメモリセル領域TAREA内に1ビット分のメモリセルをモニタリングするためのメモリセルとする。
【０１３０】
メモリセルがリセット状態の場合のメモリセルの値を“０”とし、セット状態の場合のメモリセルの値を“１”とした場合、制御回路STRCT0は、先ず、電源投入時の初期シーケンスの終了直後に、メモリセル領域TAREA内のメモリセルをセット状態とする。つまりメモリセルは“１”を保持する。次に、MONICELLにて指定されたモニタリングするためのメモリセル（図１６で示すMONI1およびMONI2など）へ、“０”のデータを書込む、つまりリセット状態とする。次に、制御回路STRCT0は、定期的に、このモニタリングするためのメモリセルからデータを読み出す。制御回路STRCT0は読み出したデータが“０”であるかをチェックする。もし、読み出したデータが“０”でなければ、SSDコンフィグレーション情報SDCFG内のMONICELLに対応している論理アドレス領域LRNG内のメモリセルの信頼性が低下している可能性があると判定する。
【０１３１】
次に、制御回路STRCT0は、再度メモリセル領域TAREA内のメモリセルをセット状態とし、MONICELLにて指定されたモニタリングするためのメモリセルをリセット状態とする。さらに、再度、制御回路STRCT0は、定期的に、このモニタリングするためのメモリセルからデータを読み出し、読み出したデータが“０”であるかをチェックする。
【０１３２】
制御回路STRCT0は、モニタリングするためのメモリセルから読み出したデータが“０”ではなかった場合の回数もカウントしており、この回数を利用することで、メモリセルの信頼性を把握でき、メモリモジュールNVMSTR0の信頼度をある一定レベルに保たせることができる。
【０１３３】
また、制御回路STRCT0は、モニタリングするためのメモリセルから読み出したデータが“０”ではなかった場合、信頼性低下の可能性を示すワーニング情報と、SSDコンフィグレーション情報SDCFG内のMONICELLに対応している論理アドレス領域LRNGの値を情報処理装置CPU_CHIPへ送信することもできる。
【０１３４】
情報処理装置CPU_CHIPは、制御回路STRCT0から受け取った論理アドレス領域LRNGの値とワーニング情報および、その受け取った回数を利用し、メモリモジュールNVMSTR0の信頼度を把握し、メモリモジュールNVMSTR0の信頼度をある一定レベルに保たせることができる。
【０１３５】
このように、MONICELLにて指定されたモニタリングするためのメモリセルを設け、このメモリセルのデータを定期的に読み出すことにより、メモリモジュールNVMSTR0の信頼度を把握できるため、高信頼でメモリモジュールNVMSTR0を動作できる。
【０１３６】
ECCFLGはECCを行う際のデータの単位を示している。特に限定しないが、ECCFLGが0の場合は、512Ｂデータを単位としてECCを行い、ECCFLGが1の場合は、2048Ｂデータを単位としてECCを行い、ECCFLGが2の場合は、4096Ｂデータを単位としてECCを行い、ECCFLGが3の場合は、8192Ｂデータを単位としてECCを行うことを示し、ECCFLGが4の場合は、16384Ｂデータを単位としてECCを行うことを示し、ECCFLGが5の場合は、32Ｂデータを単位としてECCを行うことを示し、ECCFLGが6の場合は、64Ｂデータを単位としてECCを行うことを示し、ECCFLGが7の場合は、128Ｂデータを単位としてECCを行うことを示し、ECCFLGが8の場合は、256Ｂデータを単位としてECCを行うことを示している。
【０１３７】
記憶装置には、ハードディスク、SSD（Solid State Drive）、キャッシュメモリ及びメインメモリなど様々な記憶装置があり、データの読み出しや書込みの単位が異なる。例えばハードディスクやSSDなどのストレージでは、512Ｂ以上のデータ単位で読み出しや書き込みが行われる。また、キャッシュメモリでは、そのラインサイズ単位（32Ｂや64Ｂなど）でメインメモリとの間でデータ読み出しやデータ書込みが行われる。このように、データ単位が異なる場合においても、ECCFLGによって、異なるデータ単位へECCを行うことができ、メモリモジュールNVMSTR0への要求に対して柔軟に対応できる。
【０１３８】
ライト方法選択情報WRTFLGは、書込み時の書込み方法を示している。特に限定しないが、ライト方法選択情報WRTFLGが0の場合は通常方法にて書き込みを行い、WRTFLGが1の場合は反転データを書込み、ライト方法選択情報WRTFLGが2の場合は、データの書き込み前に一旦データを読み出し、その後、データを書込むことを示す。
【０１３９】
TDCL情報は、メインデータ領域内のメモリセルの中で、余分に設けるメモリセルの領域DTMPATREAを定めるために必要な情報である。TDCLが4の場合は、DTMPATREAは4つのビット線数分のメモリセル領域と、4つのワード線数分のメモリセル領域のいずれかの領域に属するメモリセルの領域を示す。
【０１４０】
TRCL情報は、冗長データ領域内のメモリセルの中で、余分に設けるメモリセルの領域RTMPATREAを定めるために必要な情報である。TRCLが4の場合は、RTMPATREAは4つのビット線数分のメモリセル領域と、4つのワード線数分のメモリセル領域のいずれかの領域に属するメモリセルの領域を示す。
【０１４１】
DTMPATREAとRTMPATREAが存在することにより、メモリモジュールNVMSTR0の書換え寿命を延ばすことができる。
【０１４２】
［書き込みデータの構成例］
以下、DTMPATREAを利用した書き換え方法を説明するが、RTMPATREAを利用した書換え方法にも適用できることは言うまでも無い。SSDコンフィグレーション情報SDCFGはプログラム可能であり、メモリモジュールNVMSTR0が要求される機能、性能及び信頼性のレベルに合わせて柔軟に対応することができる。
【０１４３】
図１４は、制御回路STRCT0が不揮発性メモリ装置（NVM10からNVM17の中）へ書き込むデータPAGEDATAの構成を示している。特に限定しないが、データPAGEDATAはメインデータDArea（512バイト）と、冗長データRArea（16バイト）から構成される。冗長データRAreaには、データ反転フラグINVFLG、ライトフラグWRITFLG、ECCフラグECCFLG、ECCコードECC、ステート情報STATE、信頼性レベル情報RELIABLE、バッドブロック情報BADBLK、モニターセル情報MONITOR、予備領域RSVが含まれる。
【０１４４】
データ反転フラグINVFLGは、制御回路STRCT0が不揮発性メモリ装置（NVM10からNVM17の中）へ書き込んだメインデータDAreaが元の書き込みデータの各ビットを反転させたデータかどうかを示す。データ反転フラグINVFLGに0が書き込まれた場合、元のメインデータの各ビットを反転させずにデータが書き込まれたことを示し、1が書き込まれた場合、元のメインデータの各ビットを反転させたデータが書き込まれたことを示す。
【０１４５】
WRITFLGは、制御回路STRCT0が不揮発性メモリ装置（NVM10からNVM17の中）へメインデータDAreaを書込む際に実行した書込み方法を示している。特に限定しないが、WRITFLGへ0が書き込まれた場合、通常方法にてメインデータDAeaが書き込まれたことを示し、WRTFLGへ1が書き込まれた場合、元のメインデータの各ビットを反転させたデータが書き込まれたことを示す。WRTFLGへ2が書き込まれた場合、データを書き込む前にデータを一旦読み出し、その後、書き換える必要のあるデータのみが書き込まれたことを示す。
【０１４６】
ECCFLGは、制御回路STRCT0が不揮発性メモリ装置（NVM10からNVM17の中）へメインデータDAreaを書込む際に、どの程度のメインデータDAreaのサイズに対して、ECCコードを生成したかを示している。特に限定しないが、ECCFLGへ0が書き込まれた場合、512バイトのデータサイズに対してコードを生成したことを示し、ECCFLGへ1が書き込まれた場合、1024バイトのデータサイズに対してコードを生成したことを示す。ECCFLGへ2が書き込まれた場合、2048バイトのデータサイズに対してコードを生成したことを示し、ECCFLGへ3が書き込まれた場合、32バイトのデータサイズに対してコードを生成したことを示す。
【０１４７】
ECCコードECCは、メインデータDAreaのエラーを検出し修正するために必要なデータである。ECCは、制御回路STRCT0が不揮発性メモリ装置（NVM10からNVM17の中）へメインデータDAreaを書込む際に、制御回路STRCT0によってメインデータDAreaに対応して生成され、冗長データRAreaへ書き込まれる。
【０１４８】
ステート情報STATEは、不揮発性メモリ装置（NVM10からNVM17の中）へ書き込まれたメインデータDAreaが、有効状態か、無効状態か、消去状態かを示す。特に限定しないが、ステート情報STATEへ0が書き込まれた場合、メインデータDAreaは無効状態であることを示し、ステート情報STATEへ1が書き込まれた場合、メインデータDAreaは有効状態であることを示し、ステート情報STATEへ3が書き込まれた場合、メインデータDAreaは消去状態であることを示す。
【０１４９】
信頼性レベル情報RELIABLEは、不揮発性メモリ装置（NVM10からNVM17の中）へ書き込まれたメインデータDAreaの信頼性レベルを示す。特に限定しないが、信頼性レベル情報RELIABLEの数値が高いほど、メインデータDAreaの信頼性レベルが高いことを示す。信頼性レベル情報RELIABLEへ0が書き込まれた場合、メインデータDAreaの信頼性レベルは「標準」であることを示し、信頼性レベル情報RELIABLEへ1が書き込まれた場合、メインデータDAreaの信頼性レベルは「高信頼」であることを示す。信頼性レベル情報RELIABLEへ2が書き込まれた場合、メインデータDAreaの信頼性レベルは「より高信頼」であることを示す。
【０１５０】
モニターセル情報MONITORは、不揮発性メモリ装置（NVM10からNVM17の中）へ書き込まれたメインデータDAreaの中にモニターセルが含まれているかどうかを示す。モニターセル情報MONITORへ0が書き込まれた場合、メインデータDAreaの中にモニターセルが含まれていないことを示し、1が書き込まれた場合、メインデータDAreaの中にモニターセルが含まれていることを示す。
【０１５１】
バッドブロック情報BADBLKは、不揮発性メモリ装置（NVM10からNVM17の中）へ書き込まれたメインデータDAreaが利用可能かどうかを示す。特に限定しないが、バッドブロック情報BADBLKへ0が書き込まれた場合、メインデータDAreaは利用可能であり、1が書き込まれた場合、メインデータDAreaは利用不可能であることを示す。ECCによるエラー訂正が可能である場合、バッドブロック情報BADBLKは0となり、エラー訂正が不可能である場合、バッドブロック情報BADBLKは1となる。
予備領域RSVは、制御回路STRCT0が自由に定義できる領域として存在する。
【０１５２】
［書き込み可能なメモリセルの配置例］
図１５は、制御回路STRCT0が図１３の(a)に示すSSDコンフィグレーション情報を利用して生成し、ランダムアクセスメモリRAMへ格納したアドレスマップ範囲ADMAPの一例を示す。また、図１６は、図１３の（a）に示すSSDコンフィグレーション情報と図１５に示すアドレスマップ範囲ADMAPとを利用して制御回路STRCT0が定めたデータの書込み対象としての不揮発性メモリ装置内の一つのメモリセルアレイARYにおける書き込み可能なメモリセルの配置例を示す。図１６では、ワード線WL0〜WLiとビット線BL0〜BLjとの交点がメモリセルを表している。また、図１６では、物理アドレス領域PRNG1内のワード線WL0〜WLm内の偶数番目のワード線WLn(ｎ＝偶数)と、ビット線BL0〜BLj内の偶数番目のビット線BLm(ｍ＝偶数)との交点を示す◎は、データの書込みが行われる第１書込み許可メモリセルを示す。ワード線WL0〜WLm内の偶数番目のワード線WLn(ｎ＝偶数)と、ビット線BL0〜BLj内の奇数番目のビット線BLm(ｍ＝奇数)との交点を示す○は、データの書込みが行われる第２書込み許可メモリセルを示す。ワード線WL0〜WLm内の奇数番目のワード線WLn(ｎ＝奇数)と、ビット線BL0〜BLj内の偶数番目のビット線BLm(ｍ＝偶数)との交点を示す○は、データの書込みが行われる第３書込み許可メモリセルを示す。ワード線WL0〜WLm内の奇数番目のワード線WLn(ｎ＝奇数)と、ビット線BL0〜BLj内の奇数番目のビット線BLm(ｍ＝奇数)との交点を示す○は、データの書込みが行われる第４書込み許可メモリセルを示す。また、太線で示す□はモニタリング用のメモリセルを示す。また、物理アドレス領域PRNG2内のワード線WLm+4〜WLiとビット線BL0〜BLjとの交点を示す◎は、データの書込みが行われる第１書込み許可メモリセルを示す。
【０１５３】
図１６における書込み禁止領域BDRは、ワード線WLm+1からWLm+3に接続されるメモリセル領域で３×ビット線数（BLj+1）分のメモリセル含む。SSDコンフィグレーション情報のBODRCELL情報値“３”を利用し、制御回路STRCT0が生成したアドレスマップ範囲ADMAP情報により、この書込み禁止領域BDRが定められている。
【０１５４】
書込み禁止領域BDRは、物理アドレス領域PRNG1とPRNG２の分離を行い、データ書込時にメモリセルが受けるジュール熱の熱履歴の影響をより小さくするための領域であり、図１３のSSDコンフィグレーション情報SDCFG中のBODRCELLの値により決まる。
【０１５５】
また、図１６におけるテスティング領域TAREAは、ビット線BLn+1からBLn+5に接続されるメモリセル領域を示し、５×ワード線数（WLi+1）分のメモリセルを含む。
【０１５６】
SSDコンフィグレーション情報のTESTCEL情報値“５”を利用し、制御回路STRCT0が生成したアドレスマップ範囲ADMAP情報により、テスティング領域TAREAが定められている。テスティング領域TAREAには、２つのモニタリング用のメモリセルMONI1およびMONI2が存在する。
【０１５７】
図１５のLADは、情報処理装置CPU_CHIPからメモリモジュールNVMSTR0へ入力される512バイトデータを単位とした論理アドレスである。また、PADは物理アドレスであり、制御回路STRCT0から不揮発性メモリ装置（NVM10からNVM17）へ入力されるアドレスである。この形態例の場合、PADは、512バイトのメインデータDAreaと16バイト冗長データRAreaの和を単位とした物理アドレスで与えられる。制御回路STRCT0回路は、論理アドレスLADを物理アドレスPADへ変換し、不揮発性メモリ装置（NVM10からNVM17）へデータを書き込む。
【０１５８】
論理アドレス領域LRNG1は、16進数で“0000_0000”〜“007F_FFFF”の論理アドレスLAD空間を占め、4Ｇバイトの容量を持つ。また論理アドレス領域LRNG2は、16進数で”0080_0000”〜“037F_FFFF”の論理アドレス空間を占め、32Ｇバイトの大きさをもつ。
【０１５９】
論理アドレス領域LRNG1へ対応する物理アドレス領域PRNG1は、16進数で“0000_0000”〜“027F_FFFF”の物理アドレスPAD空間を持っている。この物理アドレス領域PRNG1に対応する物理アドレスPAD空間内へ存在する全メモリセルの容量は、メインデータDAreaが20Ｇバイトで、冗長データRAreaが640Ｍバイトである。
【０１６０】
物理アドレスPADは、特に限定しないが、上位ビットからバンクアドレスBKAD、ロウアドレスROWAD（ワード線WLアドレス）、カラムアドレスCOLAD、チップアドレスCHIPADにて構成される。
【０１６１】
物理アドレス領域PRNG1の物理アドレスPADに対応する不揮発性メモリ装置のアドレスは、上位ビットからバンクアドレスBKAD3〜BKAD0、ロウアドレスROWADm〜ROWAD0（ワード線WLm〜WL0）、カラムアドレスCOLADi〜COLADn+6（ビット線BLi〜BLn+6）及びカラムアドレスCOLADi〜COLADn（ビット線BLn〜BL0）、チップアドレスCHIPAD7からCHIPAD0にて構成される。
【０１６２】
論理アドレス領域LRNG2へ対応する物理アドレス領域PRNG2は、16進数で“0280_0000”〜“0F7F_FFFF”の物理アドレスPAD空間を持っている。この物理アドレス領域PRNG2に対応する物理アドレスPAD空間内へ存在する全メモリセルの容量はメインデータDAreaが44Ｇバイトで、冗長データRAreaが1384Ｍバイトである。
【０１６３】
物理アドレスPADは、特に限定しないが、上位ビットからバンクアドレスBKAD、ロウアドレスROWAD（ワード線WLアドレス）、カラムアドレスCOLAD、チップアドレスCHIPADにて構成される。
【０１６４】
物理アドレス領域PRNG2の物理アドレスPADに対応する不揮発性メモリ装置のアドレスは、上位ビットからバンクアドレスBKAD3〜BKAD0、ロウアドレスROWADi〜ROWADm+4（ワード線WLi〜WLm+4）、カラムアドレスCOLADi〜COLADn+6（ビット線BLi〜BLn+6）及びカラムアドレスCOLADi〜COLADn（ビット線BLn〜BL0）、チップアドレスCHIPAD7からCHIPAD0にて構成されている。
【０１６５】
図１６にて、図１３の(a)のSSDコンフィグレーション情報SDCFG及び図１５のアドレスマップ範囲ADMAPによる物理アドレス領域PRNG1及び物理アドレス領域PRNG2に対応するメモリセルの配置を示せば以下となる。図１６で、物理アドレス領域PRNG1へは、ワード線WL0からWLmに接続されているメモリセルのうち、テスティング領域TAREAに定められたメモリセル（ビット線BLn+1からBLn+5）を除いたメモリセル領域が対応している。
【０１６６】
また、SSDコンフィグレーション情報の中で論理アドレス領域LRNG1のINTVLDCELL情報が1（図１３）であることから、論理アドレス領域LRNG1に対応する物理アドレス領域PRNG1内のメモリセルに対して１個置きに書込む許可を与えている。
【０１６７】
より具体的には、ワード線WL0からWLmの中で、１個置きに選択されるワード線と、ビット線BL0〜BLnおよびBLn+6〜BLjの中で１個置きに選択されるビット線の交点に位置するメモリセル◎へ書き込みが行われる。
【０１６８】
また、物理アドレス領域PRNG1への書込み方法の一例を示せば以下となる。まず、物理アドレス領域PRNG1の◎で示されている第１書込み許可メモリセルに対して書き込みが行われる。
【０１６９】
次に、第１書込み許可メモリセルへの書込み回数がその上限値へ近づいた場合、第１書込み許可メモリセルから、第２書込み許可メモリセルへ書き込みを行う。次に、第２書込み許可メモリセルへの書込み回数がその上限値へ近づいた場合、第２書込み許可メモリセルから第３書込み許可メモリセルへ書き込みを行う。次に、第３書込み許可メモリセルへの書込み回数がその上限値へ近づいた場合、第３書込み許可メモリセルから第４書込み許可メモリセルへ書き込みを行う。
【０１７０】
このように書込みを制御する行うことにより、物理アドレス領域PRNG1内の全メモリセルに対して１個置きにデータを書き込むことができる。このため、データ書込時にメモリセルが受けるジュール熱の熱履歴の影響をより小さくし、高信頼化を実現できる。また、物理アドレス領域PRNG1内の全メモリセルの総書込み回数まで書き込みが可能となり、長寿命化を実現できる。
【０１７１】
図１７には、図１６で説明した物理アドレス領域PRNG1への書込み方法において、物理アドレス領域PRNG1内の第１書込み許可メモリセルに、データを書きこんだ時点での不揮発性メモリ装置内のメモリセルアレイＡＲＹの一例を示す。●がデータを書き込んだメモリセルを示す。この図が示すように、物理アドレス領域PRNG1内のワード線WL0からWLmの中で１個置きに選択されるワード線と、ビット線BL0〜BLn及びBLn+6〜BLjの中で１個置きに選択されるビット線の交点に位置するメモリセルへ書き込みが行われたことが分かる。
【０１７２】
図１６の場合、物理アドレス領域PRNG2にはワード線WLm+4からWLiに接続されているメモリセルのうちテスティング領域TAREAに定められたメモリセル（ビット線BLn+1からBLn+5）を除いたメモリセル領域が対応している。
【０１７３】
また、SSDコンフィグレーション情報の中で、論理アドレス領域LRNG2のINTVLDCELL情報が0であることから、論理アドレス領域LRNG2に対応する物理アドレス領域PRNG2内の全メモリセルへ書込む許可を与えている。
【０１７４】
そのため、物理アドレス領域PRNG2の◎で示されている第１書込み許可メモリセルに対して書き込みが行われる。より具体的には、選択されたワード線WLm+4からWLiと、ビット線BL0〜BLn及びBLn+6〜BLjが選択された交点に位置するメモリセルへ書き込みが行われる。
【０１７５】
物理アドレス領域PRNG2に対応する物理アドレスPAD空間内へ存在する全メモリセルの容量は44Ｇバイト＋1384Ｍバイトある。
【０１７６】
図１８には、図１６で説明した物理アドレス領域PRNG2への書込み方法において、物理アドレス領域PRNG2内の第１書込み許可メモリセルに“1”のビットデータを書き込んだ際の不揮発性メモリ装置内のメモリセルアレイＡＲＹの一例を示す。●がデータを書き込んだメモリセルを示す。
この図が示すように、物理アドレス領域PRNG2内の全メモリセルへ書き込みが行われたことが分かる。
【０１７７】
以上説明したように、物理アドレス領域PRNG1のメモリセルに対して１個置きに書き込む許可を与え、データを書き込むことにより、物理アドレス領域PRNG1に対するデータ書込時にメモリセルが受けるジュール熱の熱履歴の影響を小さくでき、高信頼で長寿命のメモリモジュールNVMSTR0を提供できる。
【０１７８】
また、図１３に示すSSDコンフィグレーション情報SDCFG内のINTVLDCELLの値を２に設定すると、メモリセルに対して２個置きに書込む許可を与えデータを書き込むことができる。この場合、データ書込時にメモリセルが受けるジュール熱の熱履歴の影響を、１個置きの場合に比してより小さくでき、高信頼で長寿命のメモリモジュールNVMSTR0を提供することができる。
【０１７９】
以上説明したように、SSDコンフィグレーション情報SDCFGはプログラム可能であり、メモリモジュールNVMSTR0が要求される信頼性のレベルに合わせて柔軟に対応することができる。
【０１８０】
［書き込み動作］
図１９は、情報処理装置CPU_CHIPからメモリモジュールNVMSTR0へ書き込みリクエストWREQ01が入力された際に、メモリモジュールNVMSTR0が行うデータの書込み動作の一例を示す。情報処理回路MANAGERは、特に限定しないが512バイトのメインデータDAreaと16バイトの冗長データRAreaのサイズ毎に、１個の物理アドレスを対応させ、不揮発性メモリ装置（NVM10からNVM17の中）へ書き込みを行っている。
【０１８１】
情報処理装置CPU_CHIPから論理アドレス値LAD0、データ書込み命令WRT、セクタカウント値SEC1、512バイトの書込みデータWDATA0が含まれるライトリクエストWTREQ01が制御回路STRCT0へ入力すると、インターフェース回路HOST_IFは、ライトリクエストWTREQ01に埋め込まれているクロック情報を取り出し、シリアルデータ化されたライトリクエストWTREQ01パラレルデータに変換し、バッファ装置BUF0および情報処理回路MANAGERへ転送する（Step1）。
【０１８２】
次に、情報処理回路MANAGERは、論理アドレス値LAD0、データ書込み命令WRT及びセクタカウントSEC1を解読し、ランダムアクセスメモリRAM内のアドレス変換テーブルLPTBLを検索して、アドレスLAD0番地に格納されている現在の物理アドレス値CPAD0と、この物理アドレス値CPAD0に対応した有効フラグCVF値を読み出す。さらに、情報処理回路MANAGERは、ランダムアクセスメモリRAM内の物理テーブルPADTBLからアドレス変換テーブルLPTBLを検索し、読み出した物理アドレス値CPAD0に対応する消去回数値PERC500および有効フラグPVLD値を読み出す（Step2）。
【０１８３】
次に、情報処理回路MANAGERは、ランダムアクセスメモリRAMへ格納したアドレスマップ範囲ADMAPを利用し、情報処理装置CPU_CHIPから制御回路STRCT0へ入力した論理アドレス値LAD0が、論理アドレス領域LRNG1内の論理アドレス値であるか、又は、論理アドレス領域LRNG2内の論理アドレス値であるかを判断する。
【０１８４】
論理アドレス値LAD0が論理アドレス領域LRNG1内の論理アドレス値の場合は、図１１に示す書込み物理アドレステーブルNXPADTBL1から、また、論理アドレス値LAD0が論理アドレス領域LRNG2内の論理アドレス値の場合は、書込み物理アドレステーブルNXPADTBL2から、書込み優先度の高い順に、セクタカウント値SEC1で指定された個数分だけ、この場合は１個分だけの書込み物理アドレスNXPAD100と、この次の書込み物理アドレスNXPAD100に対応した有効フラグNXPVLD値と、消去回数値NXPERCとを読み出す（Step3）。
【０１８５】
次に、現在の物理アドレス値CPAD0と次の書込み物理アドレスNXPAD100とが等しい場合、情報処理回路MANAGERはStep5を実行し、異なる場合はStep8を実行する。
【０１８６】
Step5では、情報処理回路MANAGERは、不揮発性メモリ装置（NVM10からNVM17の中）のアドレスNXPAD100番地へデータWDATA0と、物理アドレスNXPAD100に対応している論理アドレス値LAD0と、有効フラグDVF値1を書き込む。
【０１８７】
Step6では、情報処理回路MANAGERは、アドレス変換テーブルLPTBLの中のアドレスLAD0番地へ論理アドレス値LAD0に対応している物理アドレス値NXPAD100及び有効フラグCVF値1を書き込む。
【０１８８】
Step8では、情報処理回路MANAGERは、物理テーブルPADTBLから読み出した物理アドレス値CPAD0に対応した有効フラグCPVLD値が0であるかを判定する。
【０１８９】
有効フラグCPVLD値が0の場合、論理アドレスLAD0に対応する不揮発性メモリ装置（NVM10からNVM17の中）の物理アドレスCPAD0は無効であることを示し、これは論理アドレスLAD0に対応する物理アドレスは新しいNXPAD100しか存在しないことを示す。このStep8の後、情報処理回路MANAGERは、Step5を実行する。
【０１９０】
これに対し、有効フラグCPVLD値が１の場合、論理アドレスLAD0に対応する物理アドレスCPAD0が未だに有効であることを示す。この場合、情報処理回路MANAGERは、Step9を実行する。
【０１９１】
Step9では、情報処理回路MANAGERは、論理アドレスLAD0に対応する新しい物理アドレスNXPAD100にデータWDATA0を書き込むため、アドレス変換テーブルLPTBL内の物理アドレスCPAD0に対応する有効フラグCVF値を0に変更し、さらに、物理アドレステーブルPADTBL内の物理アドレスCPAD0に対応する物理アドレスの有効フラグPVLDを0にする。
【０１９２】
Step9で論理アドレスLAD0に対応する物理アドレスCPAD0を無効にした後、情報処理回路MANAGERは、Step5を実行する。
【０１９３】
次のStep7では、情報処理回路MANAGERは、物理アドレスNXPAD100に対応する消去回数値NXPERCを1つ増加させた新たな消去回数値NXPERCを生成させ、ランダムアクセスメモリRAMへ格納されている物理アドレステーブルPADTBL内の物理アドレスNXPAD100に対応する消去回数PERCを、この新たな消去回数値NXPERCへ書き換え、物理アドレスの有効フラCPVLDを1とする。
【０１９４】
Step10では、情報処理回路MANAGERは、書込み物理アドレステーブルNXPADTBLへ格納されている全物理アドレスNXPADへの書き込みが完了したかどうかを判定する。特に、書込み物理アドレステーブルNXPADTBLへ格納されている全物理アドレスNXPADへの書き込みが完了した場合はStep11を行い、未完了の場合は情報処理装置CPU_CHIPからメモリモジュールNVMSTR0へ書き込みリクエストを待つ。
【０１９５】
Step11では、書込み物理アドレステーブルNXPADTBLへ格納されている全物理アドレスNXPADに対する書き込みが完了した時点で、情報処理回路MANAGERは、物理アドレステーブルPADTBLの物理アドレスの有効フラグCPVLDと消去回数PERCを利用し、物理セグメントアドレスSGAD内の無効物理アドレス総数TNIPAと、セグメントアドレスSGAD内の無効物理アドレスの中で最大消去回数MXERCを持つ無効物理アドレスMXIPADと、最大消去回数MXERCと、セグメントアドレスSGAD内の無効物理アドレスの中で最小消去回数MNERCを持つ無効物理アドレスMNIPADと、最小消去回数MNERCを求め、物理セグメントテーブルPSEGTBL1を更新する。さらに、情報処理回路MANAGERは、物理セグメントアドレスSGAD内の有効物理アドレス総数TNVPAGEと、セグメントアドレスSGAD内の有効物理アドレスの中で最大消去回数MXERCを持つ有効物理アドレスMXVPADと、最大消去回数MXERCと、セグメントアドレスSGAD内の有効物理アドレスの中で最小消去回数MNERCを持つ有効物理アドレスMNVPADと、最小消去回数MNERCを求め、物理セグメントテーブルPSEGTBL2を更新する。
【０１９６】
さらに、情報処理回路MANAGERは、物理アドレステーブルNXPADTBLを更新する。物理アドレステーブルNXPADTBLの更新が終了した場合、情報処理装置CPU_CHIPからメモリモジュールNVMSTR0への書き込みリクエストを待つ。制御回路STRCT0が装備する書込み物理アドレステーブルNXPADTBLが１つの場合について示したが、図４に示すように、制御回路STRCT0が、書込み物理アドレステーブルNXPADTBL0-3を複数個装備する場合、情報処理回路MANAGERはそれぞれの書込み物理アドレステーブルを独立に管理・更新できるので、不揮発性メモリ装置（NVM10からNVM17）への書き込みデータ転送速度が向上する。
【０１９７】
図２０では、情報処理回路MANAGERがデータを不揮発性メモリへ書き込むために必要な書込み物理アドレステーブルNXPADTBLの更新方法を示す。
【０１９８】
図１１に示すように、情報処理回路MANAGERは、書込み物理アドレステーブルNXPADTBLの中において、エントリー番号0から（N/2-1）のN/2個分を、書込み物理アドレステーブルNXPADTBL1とし、エントリー番号（N/2）からNまでの残りのN/2個分を書込み物理アドレステーブルNXPADTBL2として管理する。
【０１９９】
また、図１５のアドレス範囲マップADMAPでは、物理アドレスPADが“00000000”から”027FFFFF”までは、物理アドレス領域PRNG1を示し、物理アドレスPADが“02800000”から“07FFFFFF”までは、物理アドレス領域PRNG2を示す。従って、物理アドレス領域PRNG1の物理セグメントアドレスSGAの範囲は“0000”から“027F”となり、物理アドレス領域PRNG2の物理セグメントアドレスSGAの範囲は“0280”から“07FF”となる。
【０２００】
情報処理回路MANAGERは、物理アドレス領域PRNG1の範囲内の物理アドレスPADに対して書込み物理アドレステーブルNXPADTBL1を利用し、これを更新し、物理アドレス領域PRNG2の範囲内の物理アドレスPADに対して書込み物理アドレステーブルNXPADTBL2を利用し、これを更新する。
【０２０１】
書込み物理アドレステーブルNXPADTBLを更新するために、まず物理セグメントアドレスを決定し、次に決定された物理セグメントアドレス内の物理アドレスを決定する。
【０２０２】
図１０に示すように、ランダムアクセスメモリRAM内の物理セグメントテーブルPSEGTBL1へは、物理セグメントアドレスSGA毎に、無効状態の物理アドレスの総数TNIPAと、有効状態の物理アドレスの総数TNVPAGEと、無効状態の物理アドレスCPADの中で消去回数の最小値MCPADERCを持つ物理アドレスMCPADと、その物理アドレスMCPADに対応する最小消去回数値MCPADERCとが格納されている。
【０２０３】
まず、情報処理回路MANAGERは、ランダムアクセスメモリRAMから、物理セグメントアドレスSGA毎に、無効状態の物理アドレスの総数TNIPAと、これら物理アドレスMCPADと最小消去回数値MCPADERCを読み出す（Step21）。
【０２０４】
次に、ランダムアクセスメモリRAMから読み出された物理セグメントアドレスSGA毎の無効状態の物理アドレスの総数TNIPAGEが書込み物理アドレステーブルNXPADTBLの登録数Nより大きな物理セグメントアドレスSGAを選択する（Step22）。さらに、この選択された物理セグメントアドレスSGA毎の最小消去回数値MCPADERCを比較し、その最小消去回数値MCPADERCの中の最小値MMCPADERCを求める（Step23）。
【０２０５】
次に、最小値MMCPADERCを持つ物理セグメントアドレスSGAと物理アドレスMCPADを、物理アドレステーブルNXPADTBLを更新するための物理セグメントアドレスTSGADと物理アドレスTMCPADとに決定する（Step24）。
【０２０６】
Step22で選択される物理セグメントアドレスSGAを存在させるには、物理アドレス空間の大きさを論理アドレス空間の大きさより、少なくとも書込み物理アドレステーブルNXPADTBLが登録できるアドレス分の大きさ以上にすると良い。
【０２０７】
次に、情報処理回路MANAGERは、物理セグメントアドレスTSGA内の物理アドレスTMCPADに対応する消去回数PERC値をランダムアクセスメモリRAMから読み出し、消去回数閾値ERCthと比較する（Step25）。消去回数PERC値が消去回数閾値ERCth以下の場合、情報処理回路MANAGERは、現在の物理アドレス物理アドレスTMCPADへの書込みを許可し、Step26を行う。
【０２０８】
消去回数PERC値が消去回数閾値ERCthより大きい場合、情報処理回路MANAGERは、現在の物理アドレスTMCPADへの書込みを禁止し、Step29を行う。
【０２０９】
Step29で、情報処理回路MANAGERは、現在の物理セグメントアドレス内で、消去回数閾値ERCth以下の消去回数を持つ無効状態の物理アドレスの数Ninvが、書込み物理アドレステーブルNXPADTBLが登録できるアドレス数Nより小さいかどうか（Ninv＜N）を判定し、小さい場合はStep30を行い、大きい場合はStep31を行う。
【０２１０】
Step31において、情報処理回路MANAGERは、現在の物理アドレスTMCPADへ演算を行い、新物理アドレスTMCPADを生成し、Step25を再度実行する。Step31の演算方法の一例を、図２１に示す。図２１については、後段にて説明する。
【０２１１】
Step30では、情報処理回路MANAGERは、消去回数閾値ERCthへ、ある値アルファα分だけ加算した新消去回数閾値ERCthを生成し、Step25を再度実行する。
【０２１２】
Step26では、情報処理回路MANAGERが、書込み物理アドレステーブルNXPADTBLへ、現在の物理アドレスTMCPPADと、この物理アドレスPPADに対応した有効フラグPVLD値と消去回数PERC値を登録する。書込み物理アドレステーブルNXPADTBLには、N組の登録が可能であり、特に限定しないが、エントリ番号ENUMの小さな番号から順に登録される。書込み物理アドレステーブルNXPADTBLの登録組数は、情報処理回路MANAGERによって任意に設定可能であり、不揮発性メモリ装置（NVM10からNVM17）への書込み速度が最大となるように設定すると良い。
【０２１３】
次のStep27では、情報処理回路MANAGERは、書込み物理アドレステーブルNXPADTBLへの全N組の登録が完了したか否かをチェックする。全N組の登録が完了していなければ、Step29を実行する。全N組の登録が完了していれば、書込み物理アドレステーブルNXPADTBLの更新を完了する（Step28）。
【０２１４】
図２２は、制御回路STRCT0が不揮発性メモリ装置（NVM10からNVM17）へデータを書き込む際のアドレス変換テーブルLPTBLの更新方法及び不揮発性メモリ装置へデータ更新方法の一例を示している。
【０２１５】
アドレス変換テーブルLPTBLは、情報処理装置CPU_CHIPから制御回路STRCT0へ入力された論理アドレスLADを不揮発性メモリ装置の物理アドレスPADへ転換するためのテーブルである。また、アドレス変換テーブルLPTBLは、論理アドレスLADに対応した物理アドレスCPADと物理アドレス有効フラグCVFから構成される。また、このアドレス変換テーブルLPTBLはランダムアクセスメモリRAMへ格納される。
【０２１６】
不揮発性メモリ装置には、物理アドレスPADに対応したデータDATAと、論理アドレスLADと、データ有効フラグDVFが格納される。
【０２１７】
図２２の(a)は、時間Ｔ０より後に、情報処理装置CPU_CHIPから制御回路STRCT0へ論理アドレス領域LRNG1へのライトリクエストWTREQ0、WTREQ１、WTREQ２及びWTREQ３が入力され、これらのライトリクエストのデータが不揮発性メモリ装置の物理アドレス領域PRNG1へ書き込まれた後の時間Ｔ１におけるアドレス変換テーブルLPTBL及び不揮発性メモリ装置が格納するアドレス、データおよび有効フラグを示している。
【０２１８】
ライトリクエストWTREQ0には論理アドレスLAD値0、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA0が含まれる。
【０２１９】
ライトリクエストWTREQ1には論理アドレスLAD値1、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA1が含まれる。
【０２２０】
ライトリクエストWTREQ2には論理アドレスLAD値2、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA2が含まれる。
【０２２１】
ライトリクエストWTREQ3には論理アドレスLAD値3、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA3が含まれる。
【０２２２】
ライトリクエストWTREQ0、WTREQ1、WTREQ2及びWTREQ3が制御回路STRCT0へ入力した際は、インターフェース回路HOST_IFは、これらのライトリクエストをバッファ装置BUF0へ転送する。
【０２２３】
次に、情報処理回路MANAGERは、バッファ装置BUF0へ格納されているライトリクエストWTREQ0、WTREQ1、WTREQ2及びWTREQ3を順に読み出す。
【０２２４】
次に、情報処理回路MANAGERは、ライトリクエストWTREQ0、WTREQ1、WTREQ2及びWTREQ3の論理アドレスLAD値は、それぞれ0、1、2および3であるため、メモリ制御装置RAMCを通じてランダムアクセスメモリRAMへ保存されているアドレス変換テーブルLPTBLの論理アドレスLADの0番地、1番地、2番地および3番地から物理アドレス値CPADおよび有効フラグCVF値を読みだす。
【０２２５】
最初は、図１２に示したように、読み出された全ての有効フラグCVF値は0であるため、論理アドレスLADの0番地、1番地、2番地および3番地には物理アドレスCPADが割り当てられていないことがわかる。
【０２２６】
次に、情報処理回路MANAGERは、ライトリクエストWTREQ0、1、2および3のそれぞれの書込みデータDATA0、1、2および3に対するECCコードECC0、1、2および3を生成し、図１４に示すデータフォーマットに従い、書込みデータDATA0、1、2および3をメインデータDArea0、1、2および3とし、これらメインデータDArea0、1、2および3へ対応した冗長データRArea0、1、2および3を生成する。
【０２２７】
不揮発性メモリ装置への書込みデータWDATA0は、メインデータDArea0と冗長データRArea0から構成され、書込みデータWDATA1はメインデータDArea1と冗長データRArea1から構成され、書込みデータWDATA2はメインデータDArea2と冗長データRArea2から構成され、書込みデータWDATA3はメインデータDArea3と冗長データRArea3から構成される。
【０２２８】
情報処理回路MANAGERにより、書込みデータWDATA0、1、2および3は、それぞれ、不揮発性メモリ装置の一つの物理アドレスへ書き込まれる。
【０２２９】
冗長データRArea0、1、2および3には、それぞれECCコードECC0、1、2および3が含まれ、さらに、共通に、データ反転フラグINVFLG値0、ライトフラグWRITFLG値0、、ECCフラグECCFLG値0、ステート情報STATE値1、信頼性レベル情報RELIABLE値1、バッドブロック情報BADBLK値0、モニターセル情報MONITOR値0、予備領域RSV値0が含まれる。
【０２３０】
次に、情報処理回路MANAGERは、書込み物理アドレステーブルNXPADTBL1のエントリー番号ENUMの0番から3番までに格納されている物理アドレスNXPAD値0、2、4、6を読み出し、論理アドレスLADの0番地、1番地、2番地および3番地に割り当てる。
【０２３１】
さらに、情報処理回路MANAGERは、物理アドレスNXPAD1値0、2、4および6に従い、調停回路ARBとメモリ制御装置（NVCT10からNVCT17）を通じ、不揮発性メモリ装置の物理アドレスPADの0番地へはライトリクエストWTREQ0のデータDATA0が含まれる書込みデータWDATA0、論理アドレスLAD値0及びデータ有効フラグDVF値1を書き込み、物理アドレスPADの2番地へはライトリクエストWTREQ1のデータDATA1が含まれる書込みデータWDATA1、論理アドレスLAD値1およびデータ有効フラグDVF値1を書き込み、物理アドレスPADの4番地へはライトリクエストWTREQ2のデータDATA2が含まれる書込みデータWDATA2、論理アドレスLAD値2およびデータ有効フラグDVF値1を書き込み、物理アドレスPADの6番地へはライトリクエストWTREQ3のデータDATA3が含まれる書込みデータWDATA3、論理アドレスLAD値3およびデータ有効フラグDVF値1を書き込む。
【０２３２】
最後に、情報処理回路MANAGERは、メモリ制御装置RAMCを通じてランダムアクセスメモリRAMへ保存されているアドレス変換テーブルLPTBLの論理アドレスLADの0番地へは物理アドレスNXPAD値0および有効フラグCVF値1を書き込み、論理アドレスLADの1番地へは物理アドレスNXPAD値2および有効フラグCVF値1を書き込み、論理アドレスLADの2番地へは物理アドレスNXPAD値4および有効フラグCVF値1を書き込み、論理アドレスLADの3番地へは物理アドレスNXPAD値6および有効フラグCVF値1を書き込む。
【０２３３】
図２２の(b)は、時間Ｔ１より後に、情報処理装置CPU_CHIPから制御回路STRCT0へライトリクエストWTREQ4、WTREQ5、WTREQ6、WTREQ7、WTREQ8およびWTREQ9が入力し、これらのライトリクエストのデータが不揮発性メモリ装置の物理アドレス領域PRNG1へ書き込まれた後の時間Ｔ２におけるアドレス変換テーブルLPTBLおよび不揮発性メモリ装置が格納するアドレス、データおよび有効フラグを示している。
【０２３４】
ライトリクエストWTREQ4には、論理アドレスLAD値0、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA4が含まれる。
【０２３５】
ライトリクエストWTREQ5には、論理アドレスLAD値1、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA5が含まれる。
【０２３６】
ライトリクエストWTREQ6には、論理アドレスLAD値4、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA6が含まれる。
【０２３７】
ライトリクエストWTREQ7には、論理アドレスLAD値5、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA7が含まれる。
【０２３８】
ライトリクエストWTREQ8には、論理アドレスLAD値2、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA8が含まれる。
【０２３９】
ライトリクエストWTREQ8には、論理アドレスLAD値3、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA9が含まれる。
【０２４０】
ライトリクエストWTREQ4、WTREQ5、WTREQ6、WTREQ7、WTREQ8およびWTREQ9が制御回路STRCT0へ入力した際は、インターフェース回路HOST_IFは、これらのライトリクエストをバッファ装置BUF0へ転送する。
【０２４１】
次に、情報処理回路MANAGERは、バッファ装置BUF0へ格納されているライトリクエストWTREQ4、WTREQ5、WTREQ6、WTREQ7、WTREQ8およびWTREQ9を順に読み出す。
【０２４２】
次に、情報処理回路MANAGERは、ライトリクエストWTREQ4、5、6および7のそれぞれの書込みデータDATA4、5、6および7に対するECCコードECC4、5、6および7を生成し、図１４に示すデータフォーマットに従い、書込みデータDATA4、5、6および7をメインデータDArea4、5、6および7とし、これらメインデータDArea4、5、6および7へ対応した冗長データRArea4、5、6および7を生成する。
【０２４３】
不揮発性メモリ装置への書込みデータWDATA4はメインデータDArea4と冗長データRArea4から構成され、書込みデータWDATA5はメインデータDArea5と冗長データRArea5から構成され、書込みデータWDATA6はメインデータDArea6と冗長データRArea6から構成され、書込みデータWDATA7はメインデータDArea7と冗長データRArea7から構成される。
【０２４４】
情報処理回路MANAGERにより、書込みデータWDATA4、5、6および7は、それぞれ、不揮発性メモリ装置の一つの物理アドレスへ書き込まれる。
【０２４５】
冗長データRArea4、5、6および7には、それぞれECCコードECC4、5、6および7が含まれ、さらに、共通に、データ反転フラグINVFLG値0、書き込み方法選択情報WRITFLG値0、ECCフラグECCFLG値0、ステート情報STATE値1、信頼性レベル情報RELIABLE値1、バッドブロック情報BADBLK値0、モニターセル情報MONITOR値0、予備領域RSV値0が含まれる。
【０２４６】
次に、情報処理回路MANAGERは、ライトリクエストWTREQ4のWTREQ5、WTREQ6、WTREQ7、WTREQ8およびWTREQ9の論理アドレスLAD値は、それぞれ0、1、4、5、2および3であるため、メモリ制御装置RAMCを通じてランダムアクセスメモリRAMへ保存されているアドレス変換テーブルLPTBLの論理アドレスLADの0番地、1番地、4番地、5番地、2番地および3番地から、それぞれ物理アドレスCPAD値および有効フラグＣＶＦ値を読みだす。
【０２４７】
アドレス変換テーブルLPTBLの論理アドレスLADの0番地の物理アドレスCPAD値は0、有効フラグCVF値は1であり、既に書き込まれている物理アドレスPAD0番地のデータを無効にするため、物理アドレスPAD0番地の有効フラグDVF値を0に設定する（101 → 111）。
【０２４８】
アドレス変換テーブルLPTBLの論理アドレスLADの1番地の物理アドレスCPAD値は2、有効フラグCVF値は1であり、既に書き込まれている物理アドレスPAD1番地のデータを無効にするため、物理アドレスPAD1番地の有効フラグDVF値を0に設定する（102 → 112）。
【０２４９】
アドレス変換テーブルLPTBLの論理アドレスLADの4番地の物理アドレスCPAD値は0、有効フラグCVF値は0であり、論理アドレスLAD4番地には、物理アドレスCPADが割り当てられていないことがわかる。
【０２５０】
アドレス変換テーブルLPTBLの論理アドレスLADの5番地の物理アドレスCPAD値は0、有効フラグCVF値は0であり、論理アドレスLAD5番地には、物理アドレスCPADが割り当てられていないことがわかる。
【０２５１】
アドレス変換テーブルLPTBLの論理アドレスLADの2番地の物理アドレスCPAD値は4、有効フラグCVF値は1であり、既に書き込まれている物理アドレスPAD4番地のデータを無効にするため、物理アドレスPAD4番地の有効フラグDVF値を0に設定する（103 → 113）。
【０２５２】
アドレス変換テーブルLPTBLの論理アドレスLADの3番地の物理アドレスCPAD値は6、有効フラグCVF値は1であり、既に書き込まれている物理アドレスPAD6番地のデータを無効にするため、物理アドレスPAD6番地の有効フラグDVF値を0に設定する（104 → 114）。
【０２５３】
次に、情報処理回路MANAGERは、ライトリクエストWTREQ4、WTREQ5、WTREQ6、WTREQ7、WTREQ8およびWTREQ9の論理アドレスLAD値は、それぞれ0、1、4、5、2および3であるため、書込み物理アドレステーブルNXPADTBL1のエントリー番号ENUMの4番から9番までに格納されている物理アドレスNXPAD値8、10、12、14、16および18を読み出し、論理アドレスLADの0番地、1番地、4番地、5番地、2番地および3番地に割り当てる。
【０２５４】
さらに、情報処理回路MANAGERは、物理アドレスNXPAD値8、10、12、14、16および18に従い、調停回路ARBとメモリ制御装置（NVCT10からNVCT1７）を通じて、不揮発性メモリ装置（NVM10−17）の物理アドレスPADの8番地へはライトリクエストWTREQ4のデータDATA4が含まれる書込みデータWDATA4、論理アドレスLAD値0およびデータ有効フラグDVF値1を書き込み、物理アドレスPADの10番地へはライトリクエストWTREQ5のデータDATA5が含まれる書込みデータWDATA5、論理アドレスLAD値1およびデータ有効フラグDVF値1を書き込み、物理アドレスPADの12番地へはライトリクエストWTREQ2のデータDATA6が含まれる書込みデータWDATA6、論理アドレスLAD値4およびデータ有効フラグDVＦ値1を書き込み、物理アドレスPADの14番地へはライトリクエストWTREQ2のデータDATA7が含まれる書込みデータWDATA7、論理アドレスLAD値5およびデータ有効フラグDVF値1を書き込み、物理アドレスPADの16番地へはライトリクエストWTREQ2のデータDATA8が含まれる書込みデータWDATA8、論理アドレスLAD値2およびデータ有効フラグDVFLD値1を書き込み、物理アドレスPADの18番地へはライトリクエストWTREQ3のデータDATA9が含まれる書込みデータWDATA9、論理アドレスLAD値3およびデータ有効フラグDVF値1を書き込む。
【０２５５】
図２３は、制御回路STRCT0が不揮発性メモリ装置（NVM10からNVM17）の物理アドレス領域LRNG2にデータを書き込む際のアドレス変換テーブルLPTBLの更新方法および不揮発性メモリ装置へのデータ更新方法の一例を示している。
【０２５６】
アドレス変換テーブルLPTBLは、情報処理装置CPU_CHIPから制御回路STRCT0へ入力された論理アドレスLADを不揮発性メモリ装置の物理アドレスPADへ転換するためのテーブルである。アドレス変換テーブルLPTBLは、論理アドレスLADに対応した物理アドレスPADと物理アドレス有効フラグCVFから構成される。また、このアドレス変換テーブルLPTBLは、ランダムアクセスメモリRAMに格納される。
【０２５７】
不揮発性メモリ装置には、物理アドレスPADに対応したデータDATAと、論理アドレスLADと、データ有効フラグDVFが格納される。
【０２５８】
図２３の(a)は、時間Ｔ０より後に、情報処理装置CPU_CHIPから制御回路STRCT0へ、論理アドレス領域LRNG2へのライトリクエストWTREQ0、WTREQ1、WTREQ2およびWTREQ3が入力し、これらのライトリクエストのデータが不揮発性メモリ装置の物理アドレス領域PRNG2へ書き込まれた後の時間Ｔ１におけるアドレス変換テーブルLPTBLおよび不揮発性メモリ装置が格納するアドレス、データおよび有効フラグを示している。
【０２５９】
ライトリクエストWTREQ0には16進数で論理アドレスLAD値“800000”、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA0が含まれる。
【０２６０】
ライトリクエストWTREQ1には16進数で論理アドレスLAD値“800001”、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA1が含まれる。
【０２６１】
ライトリクエストWTREQ2には、16進数で論理アドレスLAD値“800002”、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA2が含まれる。
【０２６２】
ライトリクエストWTREQ3には、16進数で論理アドレスLAD値“800003”、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA3が含まれる。
【０２６３】
ライトリクエストWTREQ0、WTREQ1、WTREQ2およびWTREQ3が制御回路STRCT0へ入力した際、インターフェース回路HOST_IFは、これらのライトリクエストをバッファ装置BUF0へ転送する。
【０２６４】
次に、情報処理回路MANAGERは、バッファ装置BUF0へ格納されているライトリクエストWTREQ0、WTREQ1、WTREQ2およびWTREQ3を順に読み出す。
【０２６５】
次に、情報処理回路MANAGERは、ライトリクエストWTREQ0、WTREQ1、WTREQ2およびWTREQ3の論理アドレスLAD値がそれぞれ0、1、2および3であるため、メモリ制御装置RAMCを通じてランダムアクセスメモリRAMへ保存されているアドレス変換テーブルLPTBLの論理アドレスLADの“800000”番地、“800001”番地、“800002”番地および“800003”番地から物理アドレス値CPADおよび有効フラグCVF値を読み出す。
【０２６６】
最初は、図１２のように読み出された全ての有効フラグCVF値は0であるため、論理アドレスLAD“800000”番地、“800001”番地、“800002”番地および“800003”番地には物理アドレスCPADが割り当てられていないことが分かる。
【０２６７】
次に、情報処理回路MANAGERは、ライトリクエストWTREQ0、1、2および3のそれぞれの書込みデータDATA0、1、2および3に対するECCコードECC0、1、2および3を生成し、図１４に示すデータフォーマットに従い、書込みデータDATA0、1、2および3をメインデータDArea0、1、2および3とし、これらメインデータDArea0、1、2および3へ対応した冗長データRArea0、1、2および3を生成する。
【０２６８】
不揮発性メモリ装置への書込みデータWDATA0は、メインデータDArea0と冗長データRArea0から構成され、書込みデータWDATA1はメインデータDArea1と冗長データRArea1から構成され、書込みデータWDATA2はメインデータDArea2と冗長データRArea2から構成され、書込みデータWDATA3はメインデータDArea3と冗長データRArea3から構成される。
【０２６９】
情報処理回路MANAGERにより、書込みデータWDATA0、1、2および3は、それぞれ、不揮発性メモリ装置の一つの物理アドレスへ書き込まれる。
【０２７０】
冗長データRArea0、1、2および3には、それぞれECCコードECC0、1、2および3が含まれ、さらに共通に、データ反転フラグINVFLG値0、ライトフラグWRITFLG値0、ECCフラグECCFLG値0、ステート情報STATE値1、信頼性レベル情報RELIABLE値0、バッドブロック情報BADBLK値0、モニターセル情報MONITOR値0、予備領域RSV値0が含まれる。
【０２７１】
次に、情報処理回路MANAGERは、書込み物理アドレステーブルNXPADTBL2のエントリー番号ENUMの16番から19番までに格納されている物理アドレスNXPAD値2800000、2800001、2800002、2800003を読み出し、論理アドレスLADの“800000”番地、“800001”番地、“800002”番地および“800003”番地に割り当てる。
【０２７２】
さらに、情報処理回路MANAGERは、物理アドレスNXPAD値2800000、2800001、2800002および2800003に従い、調停回路ARBとメモリ制御装置（NVCT10からNVCT17）を通じ、不揮発性メモリ装置の物理アドレスPADの“2800000”番地へはライトリクエストWTREQ0のデータDATA0が含まれる書込みデータWDATA0、論理アドレスLAD値800000およびデータ有効フラグDVF値1を書き込み、物理アドレスPADの“2800001”番地へはライトリクエストWTREQ1のデータDATA1が含まれる書込みデータWDATA1、論理アドレスLAD値800001およびデータ有効フラグDVF値1を書き込み、物理アドレスPADの“2800002”番地へはライトリクエストWTREQ2のデータDATA2が含まれる書込みデータWDATA2、論理アドレスLAD値800002およびデータ有効フラグDVF値1を書き込み、物理アドレスPADの“2800003”番地へはライトリクエストWTREQ3のデータDATA3が含まれる書込みデータWDATA3、論理アドレスLAD値800003およびデータ有効フラグDVF値1を書き込む。
【０２７３】
最後に、情報処理回路MANAGERは、メモリ制御装置RAMCを通じ、ランダムアクセスメモリRAMへ保存されているアドレス変換テーブルLPTBLの論理アドレスLADの“800000”番地へは物理アドレスNXPAD値2800000および有効フラグCVF値1を書き込み、論理アドレスLADの“800001”番地へは物理アドレスNXPAD値2800001および有効フラグCVF値1を書き込み、論理アドレスLADの“800002”番地へは物理アドレスNXPAD値2800002および有効フラグCVF値1を書き込み、論理アドレスLADの“800003”番地へは物理アドレスNXPAD値2800003および有効フラグCVF値1を書き込む。
【０２７４】
図２３の(b)は、時間Ｔ１より後に、情報処理装置CPU_CHIPから制御回路STRCT0へ、ライトリクエストWTREQ4、WTREQ5、WTREQ6、WTREQ7、WTREQ8およびWTREQ9が入力され、これらのライトリクエストのデータが不揮発性メモリ装置の物理アドレス領域PRNG2へ書き込まれた後の時間Ｔ２におけるアドレス変換テーブルLPTBLおよび不揮発性メモリ装置が格納するアドレス、データおよび有効フラグを示している。
【０２７５】
ライトリクエストWTREQ4には、論理アドレスLAD値800000、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA4が含まれる。ライトリクエストWTREQ5には、論理アドレスLAD値800001、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA5が含まれる。ライトリクエストWTREQ6には、論理アドレスLAD値800004、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA6が含まれる。ライトリクエストWTREQ7には論理アドレスLAD値800005、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA7が含まれる。ライトリクエストWTREQ8には、論理アドレスLAD値800002、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA8が含まれる。ライトリクエストWTREQ8には、論理アドレスLAD値800003、データ書込み命令WRT、セクタカウントSEC値1、書込みデータDATA9が含まれる。
【０２７６】
ライトリクエストWTREQ4、WTREQ5、WTREQ6、WTREQ7、WTREQ8およびWTREQ9が制御回路STRCT0へ入力された際、インターフェース回路HOST_IFは、これらのライトリクエストをバッファ装置BUF0へ転送する。
【０２７７】
次に、情報処理回路MANAGERは、バッファ装置BUF0へ格納されているライトリクエストWTREQ4、WTREQ5、WTREQ6、WTREQ7、WTREQ8およびWTREQ9を順に読み出す。
【０２７８】
次に、情報処理回路MANAGERは、ライトリクエストWTREQ4、5、6および7のそれぞれの書込みデータDATA4、5、6および7に対するECCコードECC4、5、6および7を生成し、図１４に示すデータフォーマットに従い、書込みデータDATA4、5、6および7をメインデータDArea4、5、6および7とし、これらメインデータDArea4、5、6および7へ対応した冗長データRArea4、5、6および7を生成する。
【０２７９】
不揮発性メモリ装置への書込みデータWDATA4はメインデータDArea4と冗長データRArea4から構成され、書込みデータWDATA5はメインデータDArea5と冗長データRArea5から構成され、書込みデータWDATA6はメインデータDArea6と冗長データRArea6から構成され、書込みデータWDATA7はメインデータDArea7と冗長データRArea7から構成される。
【０２８０】
情報処理回路MANAGERにより、書込みデータWDATA4、5、6および7は、それぞれ、不揮発性メモリ装置の一つの物理アドレスへ書き込まれる。
【０２８１】
冗長データRArea4、5、6および7には、それぞれECCコードECC4、5、6および7が含まれ、さらに共通に、データ反転フラグINVFLG値0、ライトフラグWRITFLG値0、ECCフラグECCFLG値0、ステート情報STATE値1、信頼性レベル情報RELIABLE値0、バッドブロック情報BADBLK値0、モニターセル情報MONITOR値0、予備領域RSV値0が含まれる。
【０２８２】
次に、情報処理回路MANAGERは、ライトリクエストWTREQ4のWTREQ5、WTREQ6、WTREQ7、WTREQ8およびWTREQ9の論理アドレスLAD値は、それぞれ800000、800001、800004、800005、800002および800003であるため、メモリ制御装置RAMCを通じてランダムアクセスメモリRAMへ保存されているアドレス変換テーブルLPTBLの論理アドレスLADの“800000”番地、“800001”番地、“800004”番地、“800005”番地、“800002”番地および“800003”番地から、それぞれ物理アドレスCPAD値および有効フラグCVF値を読み出す。
【０２８３】
アドレス変換テーブルLPTBLの論理アドレスLADの“800000”番地の物理アドレスCPAD値は2800000、有効フラグCVF値は1であり、既に書き込まれている物理アドレスPAD0番地のデータを無効にするため、物理アドレスPAD“800000”番地の有効フラグDVF値を0に設定する（201 → 211）。
【０２８４】
アドレス変換テーブルLPTBLの論理アドレスLADの“800001”番地の物理アドレスCPAD値は2800001、有効フラグCVF値は1であり、既に書き込まれている物理アドレスPAD“800001”番地のデータを無効にするため、物理アドレスPAD“2800001”番地の有効フラグDVF値を0に設定する（202 → 212）。
【０２８５】
アドレス変換テーブルLPTBLの論理アドレスLADの“800004”番地の物理アドレスCPAD値は0、有効フラグCVF値は0であり、論理アドレスLAD“800004”番地には、物理アドレスCPADが割り当てられていないことが分かる。
【０２８６】
アドレス変換テーブルLPTBLの論理アドレスLADの“800005”番地の物理アドレスCPAD値は0、有効フラグCVF値は0であり、論理アドレスLAD“800005”番地には、物理アドレスCPADが割り当てられていないことが分かる。
【０２８７】
アドレス変換テーブルLPTBLの論理アドレスLADの“800002”番地の物理アドレスCPAD値は2800002、有効フラグCVF値は1であり、既に書き込まれている物理アドレスPAD“2800002”番地のデータを無効にするため、物理アドレスPAD4番地の有効フラグDVF値を0に設定する（203 → 213）。
【０２８８】
アドレス変換テーブルLPTBLの論理アドレスLADの“800003”番地の物理アドレスCPAD値は2800003、有効フラグCVF値は1であり、既に書き込まれている物理アドレスPAD“2800003”番地のデータを無効にするため、物理アドレスPAD“2800003”番地の有効フラグDVF値を0に設定する（204 → 214）。
【０２８９】
次に、情報処理回路MANAGERは、ライトリクエストWTREQ4、WTREQ5、WTREQ6、WTREQ7、WTREQ8およびWTREQ9の論理アドレスLAD値は、それぞれ800000、800001、800004、800005、800002および800003であるため、書込み物理アドレステーブルNXPADTBL2のエントリー番号ENUMの20番から25番までに格納されている物理アドレスNXPAD値2800004、2800005、2800006、2800007、2800008および2800009を読み出し、論理アドレスLADの“800000”番地、“800001”番地、“800004”番地、“800005”番地、“800002”番地および“800003”番地に割り当てる。
【０２９０】
さらに、情報処理回路MANAGERは、物理アドレスNXPAD値2800004、2800005、2800006、2800007、2800008および2800009に従い、調停回路ARBとおよびメモリ制御装置（NVCT10からNVCT17）を通じ、不揮発性メモリ装置（NVM10-17）の物理アドレスPADの“2800004”番地へはライトリクエストWTREQ4のデータDATA4が含まれる書込みデータWDATA4、論理アドレスLAD値800000およびデータ有効フラグDVF値1を書き込み、物理アドレスPADの“2800005”番地へはライトリクエストWTREQ5のデータDATA5が含まれる書込みデータWDATA5、論理アドレスLAD値800001およびデータ有効フラグDVF値1を書き込み、物理アドレスPADの“2800006”番地へはライトリクエストWTREQ2のデータDATA6が含まれる書込みデータWDATA6、論理アドレスLAD値800004およびデータ有効フラグDVF値1を書き込み、物理アドレスPADの“2800007”番地へはライトリクエストWTREQ2のデータDATA7が含まれる書込みデータWDATA7、論理アドレスLAD値800005およびデータ有効フラグDVF値1を書き込み、物理アドレスPADの“2800008”番地へはライトリクエストWTREQ2のデータDATA8が含まれる書込みデータWDATA8、論理アドレスLAD値800002およびデータ有効フラグDVFLD値1を書き込み、物理アドレスPADの“2800009”番地へはライトリクエストWTREQ3のデータDATA9が含まれる書込みデータWDATA9、論理アドレスLAD値800003およびデータ有効フラグDVF値1を書き込む。
【０２９１】
図２４では、情報処理回路MANAGERが実行する相変化メモリの物理アドレス毎のデータ消去回数のバラツキを抑え平準化する別の方法を示す。
【０２９２】
図１１に示すように、情報処理回路MANAGERは、書込み物理アドレステーブルNXPADTBLの中で、エントリー番号0から（N/2-1）のN/2個分を書込み物理アドレステーブルNXPADTBL1とし、エントリー番号（N/2）からNまでの残りのN/2個分を書込み物理アドレステーブルNXPADTBL2として管理する。
【０２９３】
図１９および図２０で説明した物理アドレス毎の消去回数の平準化方法は、無効状態の物理アドレスに対する動的な消去回数の平準化方法である。この動的な消去回数の平準化方法では、無効状態の物理アドレスの消去回数と有効状態の物理アドレスの消去回数の差が大きくなる場合があるため、図２４では、無効状態の物理アドレスの消去回数と有効状態の物理アドレスの消去回数のバラツキを抑える静的な消去回数平準化法を示す。
【０２９４】
また、図１５のアドレス範囲マップADMAPでは、物理アドレスPADが“00000000”から“027FFFFF”までは、物理アドレス領域PRNG1を示し、物理アドレスPADが“02800000”から“07FFFFFF”までは、物理アドレス領域PRNG2を示す。従って、物理アドレス領域PRNG1の物理セグメントアドレスSGAの範囲は“0000”から“027F”となり、物理アドレス領域PRNG2の物理セグメントアドレスSGAの範囲は“0280”から“07FF”となる。
【０２９５】
情報処理回路MANAGERは、物理アドレス領域PRNG1および物理アドレス領域PRNG2の範囲内のそれぞれで、図２４に示す静的な消去回数の平準化方法を行う。
【０２９６】
情報処理回路MANAGERは、Step51で以下を行う。Step51において、情報処理回路MANAGERは、図１０に示す物理セグメントテーブルPSEGTBL1内の無効物理アドレスに関する最大消去回数MXERCの中の最大値MXIVERCと、物理セグメントテーブルPSEGTBL2内の有効物理アドレスに関する最小消去回数MNERCの中の最小値MNVLERCとの差DIFEC（＝MXIVERC−MNVLERC）を求める。
【０２９７】
次のStep52で、情報処理回路MANAGERは、無効状態の物理アドレスの消去回数と、有効状態の物理アドレスの消去回数の差の閾値DERCthを設定し、この閾値DERCthと消去回数差DIFECを比較する。
【０２９８】
消去回数差DIFECが閾値DERCthより大きい場合、情報処理回路MANAGERは、消去回数の平準化行うためStep53を行い、小さい場合はStep58を行う。
【０２９９】
Step58において、情報処理回路MANAGERは、物理セグメントテーブルPSEGTBL1又はPSEGTBL2が更新されたか否かを判定し、更新された場合はStep51にて再度、消去回数差DIFECを求め、いずれの物理セグメントテーブルも更新されていない場合は、再度Step58を行う。
【０３００】
Step53で、情報処理回路MANAGERは、物理セグメントテーブルPSEGTBL2内の有効物理アドレスに関する最小消去回数MNERCの中で最も小さな消去回数から順にM個分の物理アドレスSPAD1〜Mを選択する。
【０３０１】
Step54では、情報処理回路MANAGERは、物理セグメントテーブルPSEGTBL1内の無効物理アドレスに関する最大消去回数MXERCの中で最も小さな消去回数から順にM個分の物理アドレスDPAD1〜Mを選択する。
【０３０２】
Step55では、情報処理回路MANAGERは、選択された物理アドレスDPAD1〜Mが、書込み物理アドレステーブルNXPADTBLへ登録されているかを調べる。もし、選択された物理アドレスDPAD1〜Mが、書込み物理アドレステーブルNXPADTBLへ登録されていれば、Step59において現在の選択された物理アドレスDPAD1〜Mを、最小値MXNERCを持つ物理アドレスの候補から外し、再度Step54を行う。もし、選択された物理アドレスDPAD1〜Mが、書込み物理アドレステーブルNXPADTBLへ登録されていなければStep56を行う。
【０３０３】
Step56では、情報処理回路MANAGERは、物理アドレスSPAD1〜Mのデータを物理アドレスDPAD1〜Mへ移動させる。
【０３０４】
Step57では、情報処理回路MANAGERは、物理アドレスSPAD1〜Mのデータを物理アドレスDPAD1〜Mへ移動させたことにより、更新する必要のある全テーブルを更新する。
【０３０５】
この例では、M個分の物理アドレスのデータを移動した例を示したが、Mの値は、目標性能に応じて情報処理回路MANAGERによってプログラム可能であり、書込み物理アドレステーブルNXPADTBLの登録数Nとすると１≦Ｍ≦Ｎに設定すると良い。
【０３０６】
［パイプライン書込み動作］
図２５は、情報処理装置CPU_CHIPからメモリモジュールNVMSTR0へ連続してライトリクエストが発生した場合のメモリモジュールNVMSTR0内部でパイプライン的に実行されるデータの書込み動作の一例を示す。特に限定しないが、制御回路STRCT0のバッファ装置BUF0から3には、それぞれN×512バイトの書込みデータが格納できる。
【０３０７】
バッファ転送動作WTBUF0、1、2および3は、ライトリクエストWTREQを、バッファ装置BUF0、1、2、および3へそれぞれ転送し、事前準備動作PREOP0、1、2および3は、バッファ装置BUF0、1、2、および3に転送された書込みデータを、それぞれ不揮発性メモリ装置NVMへ書込むための事前準備動作を示し、データ書込み動作WTNVM0、1、2および3は、バッファ装置BUF0、1、2、および3に格納された書込みデータを、それぞれ不揮発性メモリ装置NVMへ書き込む動作を示す。
【０３０８】
バッファ転送動作WTBUF0、1、2および3と、事前準備動作PREOP0、1、2および3と、データ書込み動作WTNVM0、1、2および3とは、制御回路STRCT0によってパイプライン動作が実現されるため書込み速度を向上することができる。
【０３０９】
時間Ｔ０からＴ２の期間に発生したN回のライトリクエストWTREQ(1)−WTREQ(N)はインターフェース回路HOST_IFにおいて、先ず、バッファ装置BUF0へ転送される（WTBUF0）。バッファ装置BUF0へ書き込みデータが格納できなくなると、時間Ｔ２からＴ４の期間に発生したN回のライトリクエストWTREQ(N+1)−WTREQ(2N)はバッファ装置BUF1へ転送される（WTBUF1）。
【０３１０】
バッファ装置BUF1へ書き込みデータが格納できなくなると、時間Ｔ４からＴ６の期間に発生したN回のライトリクエストWTREQ(2N+1)−WTREQ(3N)はバッファ装置BUF2へ転送される（WTBUF2）。
【０３１１】
バッファ装置BUF2へ書き込みデータが格納できなくなると、時間Ｔ６からＴ８の期間に発生したN回のライトリクエストWTREQ(3N+1)−WTREQ(4N)はバッファ装置BUF3へ転送される（WTBUF3）。
【０３１２】
情報処理回路MANAGERは、時間Ｔ１からＴ３の期間において、バッファ装置BUF0に格納されている書込みデータを不揮発性メモリ装置NVMへ書込むための事前準備（PREOP0）を行う。情報処理回路MANAGERが行う事前準備（PREOP0）の動作内容を以下に示す。
【０３１３】
(1) ライトリクエストWTREQ(1)−WTREQ(N)へ含まれる論理アドレスLAD値を利用し、アドレス変換テーブルLPTBLから物理アドレスPADを読み出し、必要に応じてこの物理アドレスPADの有効フラグDVLD値を0にし、データを無効にする。
(2) アドレス変換テーブルLPTBLを更新する。
(3) ライトリクエストWTREQ(1)−WTREQ(N)へ含まれる論理アドレスLAD値を利用し、アドレス変換テーブルLPTBLから物理アドレスPADを読み出し、必要に応じてこの物理アドレスPADの有効フラグDVLD値を0にし、データを無効にする。
(4) アドレス変換テーブルLPTBLを更新する。
(5) 書込み物理アドレステーブルNXPADTBLに格納されている物理アドレスNXPADを読み出し、この物理アドレスNXPADへライトリクエストWTREQ(1)−WTREQ(N)へ含まれる論理アドレスLADを割り当てる。
(6) 物理セグメントテーブルPSEGTBLを更新する。
(7) 物理テーブルPADTBを更新する。
(8) 次の書込みに備えて、書込み物理アドレステーブルNXPADTBLを更新する。
他の事前準備動作PREOP1、2、3も事前準備動作PREOP0と同様の動作を行う。
【０３１４】
次に、情報処理回路MANAGERは、時間Ｔ３からＴ５の期間において、バッファ装置BUF0に格納されている書込みデータを不揮発性メモリ装置NVMのへ書込む（WTNVM0）。この際に、データが書き込まれた不揮発性メモリ装置NVMの物理アドレスは上記(4)での物理アドレスNXPAD値と等しい。
他のデータ書込み動作WTNVM1、2、3もデータ書込み動作WTNVM0と同様の動作を行う。
【０３１５】
［読み出し動作］
図２６は、情報処理装置CPU_CHIPからメモリモジュールNVMSTR0へリードリクエストRDREQ01が入力された際にメモリモジュールNVMSTR0が行うデータの読み出し動作の一例を示している。
【０３１６】
情報処理装置CPU_CHIPから論理アドレス値LAD0、データ読み出し命令RD、セクタカウント値SEC1が含まれるリードリクエストRDREQ01が制御回路STRCT0へ入力されると、インターフェース回路HOST_IFは、ライトリクエストWTREQ01に埋め込まれているクロック情報を取り出し、シリアルデータ化されたリードリクエストRDREQ01をパラレルデータへ変換し、バッファ装置BUF0および情報処理回路MANAGERへ転送する（Step61）。
【０３１７】
次に、情報処理回路MANAGERは、論理アドレス値LAD0、データ読み出し命令RDおよびセクタカウントSEC1を解読し、ランダムアクセスメモリRAMへ保存されているアドレス変換テーブルLPTBL内のアドレスLAD0番地に格納されている物理アドレス値CPAD0と、この物理アドレス値CPAD0に対応した有効フラグCVF値を読み出す（Step62）。次に、読み出した有効フラグCVF値が1であるかどうかをチェックする（Step63）。
【０３１８】
もし、有効フラグCVF値が0の場合、情報処理回路MANAGERは、論理アドレスLAD0番地には物理アドレスCPADが割り当てられていないことを示し、不揮発性メモリ装置NVMからデータを読み出すことができないため、エラーが発生したことをインターフェース回路HOST_IFを通じて情報処理装置CPU_CHIPへ伝える（Step65）。
【０３１９】
もし、有効フラグCVF値が1の場合、情報処理回路MANAGERは、論理アドレスLAD0番地には物理アドレスCPAD0番地が対応していることを示すため、調停回路ARBとおよびメモリ制御装置（NVCT10〜NVCT17）を通じて不揮発性メモリ装置（NVM10〜17）のアドレスCPAD0番地からデータRDATA0を読み出す。データRDATA0には、メインデータDArea0と冗長データRArea0が含まれ、さらに冗長データRArea0には、ライト方法選択情報WRTFLGおよびECCコードECC0が含まれる（Step64）。
【０３２０】
次に、情報処理回路MANAGERは、不揮発性メモリNVM0へ格納されているSSDコンフィグレーション情報SDCFG内の論理アドレス領域LRNGと、この論理アドレス領域LRNGに対応したライト方法選択情報WRTFLGを読み出し、論理アドレス値LAD0がどの論理アドレス領域LRNGの論理アドレスかを調べ、これに対応したライト方法選択情報WRTFLGを求める。さらに、ライト方法選択情報WRTFLG値が1かどうかをチェックする（Step66）。
【０３２１】
ライト方法選択情報WRTFLG値が1であれば、メインデータDArea0およびECCコードECC0の各ビットを反転させ、メインデータIDArea0およびECCコードIECC0を生成する（Step67）。
【０３２２】
次に、情報処理回路MANAGERは、ECCコードIECC0を利用して、メインデータIDArea0にエラーがあるかをチェックし、エラーがあれば訂正を行い（Step68）、インターフェース回路HOST_IFを通じて情報処理装置CPU_CHIPへ転送する（Step69）。
【０３２３】
ライト方法選択情報WRTFLG値が1でなければ、情報処理回路MANAGERは、ECCコードECC0を利用して、メインデータDArea0にエラーがあるかをチェックし、エラーがあれば訂正を行い（Step68）、インターフェース回路HOST_IFを通じて情報処理装置CPU_CHIPへ転送する（Step69）。
【０３２４】
［書込み方法］
図２７は、図１３の（b）に示しているSSDコンフィグレーション情報の中のライト方法選択情報WRTFLGにより選択された書込み方法を説明する。
【０３２５】
図１３の（b）では、論理アドレス領域LRNG1のライト方法選択情報WRTFLGは0へ設定され、論理アドレス領域LRNG2のライト方法選択情報WRTFLGは1に設定されている。
【０３２６】
また、特に限定しないが、セット状態のメモリセルは“0”のビットデータを表し、リセット状態のメモリセルは“1”のビットデータを表す。
【０３２７】
情報処理装置CPU_CHIPから論理アドレス値LAD、データ書込み命令WRT、セクタカウント値SEC1、512バイトの書込みデータDATA0が含まれるライトリクエストWTREQ01がインターフェース回路HOST_IFを通じて情報処理回路MANAGERへ入力されると（Step71）、情報処理回路MANAGERは、ランダムアクセスメモリRAMへ格納したアドレスマップ範囲ADMAPを利用し、論理アドレス値LADが、論理アドレス領域LRNG1内の論理アドレス値であるか、あるいは、論理アドレス領域LRNG2内の論理アドレス値であるかを判断し、それぞれの論理アドレス領域LRNG1およびLRNG2のライト方法選択情報WRTFLGをチェックする（Step72）。
【０３２８】
ライトリクエストWTREQ01に含まれる論理アドレスLADが論理アドレス領域LRNG1内の論理アドレスLADであれば、論理アドレス領域LRNG1のライト方法選択情報WRTFLGが0へ設定されているので、書込みデータDATA0および書込みデータDATA0に対応する冗長データRArea0は、図１６の物理アドレス領域PRNG1内の◎で示される書込み許可メモリセルに書き込まれる（Step76）。
【０３２９】
ライトリクエストWTREQ01に含まれる論理アドレスLADが論理アドレス領域LRNG2内の論理アドレスLADであれば、論理アドレス領域LRNG2のライト方法選択情報WRTFLGが1へ設定されているので、Step73からStep76を実行する。
【０３３０】
情報処理回路MANAGERは、Step73で、512バイト（512 ｘ 8 ビット）の書込みデータDATA0の中で、“0”のビットデータおよび“1”のビットデータを数え（Step73）、“0”のビットデータの数と“1”のビットデータの数を比較する（Step74）。
【０３３１】
次に、情報処理回路MANAGERは、“1”のビットデータの数が“0”のビットデータの数より大きい場合は、書込みデータDATA0の各ビットを反転させ（Step75）、図１６の物理アドレス領域PRNG2内の◎で示される書込み許可メモリセルへ書き込む（Step76）。
【０３３２】
書込みデータDATA0の各ビットを反転させることで、“1”のビットデータの数は、512バイト（512 ｘ 8 ビット）の内、常に2048ビット（＝4096/2）以下となる。
【０３３３】
メモリセルへ512バイト（512 ｘ 8 ビット）データを書き込むには、一旦、512バイト（512 ｘ 8 ビット）のメモリセルをセット状態にし（“0”ビットデータによる消去）、その後、必要なメモリセルをリセット状態へ書き換える（“1”ビットデータによる書込み）。
【０３３４】
書込みデータの各ビットを反転させることで、書込みデータの中の“1”のビットデータの数が常に1/2以下となり、書き込むデータ量を半減できる。
【０３３５】
これにより、図１６の物理アドレス領域PRNG2内の◎で示される書込み許可メモリセルに対して、“1”のビットデータを1個置きに書き込むことができ、データ書込時にメモリセルが受けるジュール熱の熱履歴の影響を小さくでき、高信頼で長寿命のSSDを提供できる。
【０３３６】
図２８には、図２７で説明したライト方法選択情報WRTFLGが1の場合の書込み方法により、物理アドレス領域PRNG2内のメモリセルにデータを書きこんだ際の不揮発性メモリ装置内のメモリセルアレイARYの使用例を示す。
【０３３７】
ワード線WL0〜WLiと、ビット線BL0〜BLjとの交点がメモリセルを表しており、◎は書き込みが許可されたデータ書込みが行われる第１の書込み許可メモリセルを示す。TAREAはテスティングを行うための連続したメモリセル領域を示す。また、□はモニタリング用のメモリセルMONI1およびMONI2を示す。
図２７で説明したライト方法選択情報WRTFLGが1の場合の書込み方法にて書き込んだ“1”のビットデータが●を示す。
【０３３８】
この図に示すように、物理アドレス領域PRNG2内の◎で示される書込み許可メモリセルに対して、“1”のビットデータを千鳥格子状に書き込むことで、実効的なメモリ容量を変えることなく、メモリセルが受けるジュール熱の熱履歴の影響を小さくでき、高信頼で長寿命の情報処理装置を提供できる。
【０３３９】
なお、図２７で説明したライト方法選択情報WRTFLGが2の場合、指定された領域からデータが読み出され（step77）、その後、書き込みデータとビット単位で比較され（step78）、違いが見つかった書き換えの必要があるデータだけ書き換えが実行される（step79）。
【０３４０】
図２９は、図５に示す不揮発性メモリNVMEMのメモリバンクBK0〜BK3のそれぞれが、３次元で、立体的に４層に重なり合っている際の不揮発性メモリ装置内のメモリセルアレイARYの一例を示す。
【０３４１】
特に限定しないが、メモリバンクBK0は第0層目へ形成され、メモリバンクBK1は第0層目の下層の第1層目へ形成され、メモリバンクBK2は第1層目の下層の第2層目へ形成され、メモリバンクBK3は第2層目の下層の第3層目へ形成される。ワード線WL0〜WLiとビット線BL0〜BLjとの交点がメモリセルを表し、●はデータを書き込まれたメモリセルを示す。
【０３４２】
第0層目のメモリバンクBK0と第1層目のメモリバンクBK1は物理アドレス領域PRNG1を形成し、第2層目のメモリバンクBK2と第3層目のメモリバンクBK3は物理アドレス領域PRNG2を形成する。
【０３４３】
TAREA0、TAREA1、TAREA2およびTAREA3はテスティングを行うための連続したメモリセル領域示す。また、□はモニタリング用のメモリセルMONI1-0、MONI1-1、MONI2-0およびMONI2-1を示す。
【０３４４】
第0層目のメモリバンクBK0には、ワード線WL0〜WLiの中の偶数番目のワード線WLn(ｎ＝偶数)と、ビット線BL0〜BLjの中の偶数番目のビット線BLm(ｍ＝偶数)との交点である第１書込み許可メモリセルへデータが書き込まれており、第1層目のメモリバンクBK1には、ワード線WL0〜WLiの中の奇数番目のワード線WLn(ｎ＝偶数)と、ビット線BL0〜BLjの中の奇数番目のビット線BLm(ｍ＝偶数)との交点である第４書込み許可メモリセルへデータが書き込まれており、第2層目のメモリバンクBK2には、ワード線WL0〜WLiと、ビット線BL0〜BLjのの交点である第１書込み許可メモリセルへデータが書き込まれており、第3層目のメモリバンクBK3には、ワード線WL0〜WLiと、ビット線BL0〜BLjの交点である第１書込み許可メモリセルへデータが書き込まれている。
【０３４５】
このように、不揮発性メモリNVMEMのメモリバンクBK0〜BK3のそれぞれを、３次元に、すなわち立体的に重ね合わせることで、不揮発性メモリNVMEMのチップ面積を小さくでき、低コストかつ大容量の不揮発性メモリを実現できる。
【０３４６】
また、第0層目のメモリバンクBK0では第１書込み許可メモリセルへデータを書き込み、また、第1層目のメモリバンクBK0では第４書込み許可メモリセルへデータを書き込むことで、層間において書き込むメモリセルが重ならないようにデータを書き込むことができ、メモリセルが受けるジュール熱の熱履歴の影響を小さくでき、高信頼で長寿命の情報処理装置を提供できる。
【０３４７】
図２１の(a)は、物理アドレスCPADと、不揮発性メモリNVM10〜17のチップアドレスCHIPA[2:0]と、それぞれの不揮発性メモリチップ(NVM10〜17)内のメモリアドレスBK[1:0]、ロウアドレスROWと、カラムアドレスCOLとの対応関係を示している。このアドレス対応付けは情報処理回路MANAGERが行う。
【０３４８】
ロウアドレスROWの値が活性化されるワード線WL番号を示し、カラムアドレスCOLの値が活性化されるビット線BL番号を示す。つまり、ロウアドレスROWの値がiのとき、i番目のワード線WLiが活性化され、カラムアドレスCOLの値がjのとき、j番目のビット線BLjが活性化される。
【０３４９】
図２１の(b)は、図２０にて説明した情報処理回路MANAGERがデータを不揮発性メモリへ書き込むために必要な書込み物理アドレステーブルNXPADTBLを更新する際に、新たな物理アドレスを生成する方法（図２０のStep31）の一例について説明する。
【０３５０】
図１３へ示されているSSDコンフィグレーション情報SDCFG内のINTVLDCELLの値をmiとする。ビット線BLimaxはimax番目のビット線BLimaxであり、imaxはビット線番号の中で最大値を示す。
【０３５１】
情報処理回路MANAGERが、現在の物理アドレスCPADを、チップアドレスCHIPAと、バンクアドレスBK、ロウアドレスROWと、カラムアドレスCOLへ変換する（Step42）。
【０３５２】
次に、変換されたロウアドレスROWの値ciにて指定されたワード線番号がWLciで、カラムアドレスCOLの値cjにて指定されたビット線番号がBLcjの場合、ビット線番号BLcjが最大ビット線番号BLimaxとINTVLDCELL値miの差以上かどうかを判定する（Step43）。
【０３５３】
ビット線番号BLcjが、この差以上であればStep44を実行し、ビット線番号BLcjが、この差より小さければStep46を実行する。
【０３５４】
Step44では、新たな物理アドレスに対応するワード線番号WLnxとビット線番号BLnxを計算する。計算方法を以下に示す。
ワード線番号WLnx ＝ ワード線番号WLci ＋ INTVLDCELL値mi ＋ 1
最初にデータを書き込んだビット線番号が0の場合：ビット線番号BLnx ＝ 0
最初にデータを書き込んだビット線番号が1の場合：ビット線番号BLnx ＝ 1
【０３５５】
Step46では、新たな物理アドレスに対応するワード線番号WLnxとビット線番号BLnxを計算する。計算方法を以下に示す。
ワード線番号WLnx ＝ ワード線番号WLci
ビット線番号BLnx ＝ ビット線番号BLcj ＋ INTVLDCELL値mi ＋ １
【０３５６】
Step45では、ワード線番号WLnxとビット線番号BLnxから新たな物理アドレスCPADnxを決定する。先ず、ワード線番号WLnxは新たなロウアドレスROWnx値となり、ビット線番号BLnxは新たなカラムアドレスCOLnx値となる。
【０３５７】
次に、情報処理回路MANAGERは、図２１の(a)に示すアドレス対応付けに従い、チップアドレスCHIPAと、バンクアドレスBK、ロウアドレスROWnxと、カラムアドレスCOLnxから、新たな物理アドレスCPADnxを求める。
【０３５８】
図３０は、図１３の（c）に示すSSDコンフィグレーション情報の中のTDCL情報によって設けられたDTMPAREAと、図１５に示すアドレスマップ範囲ADMAPを利用し、物理アドレス領域PRNG1内への書込み方法について説明する。
【０３５９】
先ず、図３０の(a)について説明する。図１３の（c）に示すSSDコンフィグレーション情報の中で、TDCL値が４であることから、ワード線WLi-3からWLiの４つ分のワード線に接続されているメモリセル領域と、ビット線BLj-3からBLjの４つ分のビット線に接続されているメモリセル領域のいずれかに含まれるメモリセル領域がDTMPAREAであり、点線にて囲まれたメモリセル領域が、このDTMPAREAを示す。
【０３６０】
また、図１３の（c）に示すSSDコンフィグレーション情報の中で、論理アドレス領域LRNG1のINTVLDCELL情報が1であることから、論理アドレス領域LRNG1に対応する物理アドレス領域PRNG1内のメモリセルに対して1個置きに書き込むことができる。ワード線WL0〜WLiとビット線BL0〜BLjとの交点がメモリセルを表す。
【０３６１】
具体的には、物理アドレス領域PRNG1内のワード線WL0〜WLiの中の偶数番目のワード線WLn(ｎ＝偶数)と、ビット線BL0〜BLjの中の偶数番目のビット線BLm(ｍ＝偶数)の交点は、データ書込みが行われる第１書込み許可メモリセルを示し、ワード線WL0〜WLiの中の偶数番目のワード線WLn(ｎ＝偶数)と、ビット線BL0〜BLjの中の奇数番目のビット線BLm(ｍ＝奇数)との交点は、データ書込みが行われる第２書込み許可メモリセルを示し、ワード線WL0〜WLiの中の奇数番目のワード線WLn(ｎ＝奇数)と、ビット線BL0〜BLjの中の偶数番目のビット線BLm(ｍ＝偶数)との交点は、データ書込みが行われる第３書込み許可メモリセルを示し、ワード線WL0〜WLiの中の奇数番目のワード線WLn(ｎ＝奇数)と、ビット線BL0〜BLjの中の奇数番目のビット線BLm(ｍ＝奇数)との交点は、データ書込みが行われる第４書込み許可メモリセルを示す。
【０３６２】
このように、論理アドレス領域LRNG1に対して物理アドレス領域PRNG1が４倍以上の大きさがある場合、第１書き込み許可メモリセルから第４書き込み許可メモリセルを設定することで、１つの論理アドレスに対して４つの物理アドレスを割り当てることが可能となる。
【０３６３】
図３０の(a)は、物理アドレス領域PRNG1内でDTMPAREA領域以外の全ての第１書込み許可メモリセルにデータが書き込まれた様子を示す。●はデータが書き込まれ、有効となっているメモリセルを示す。
【０３６４】
次に、図３０の（b）および(c)は、１つの論理アドレスに対して割り当てるメモリセルを第１書き込み許可メモリセルから第２書き込み許可メモリセルへ移行しながら、データを書き込む方法を示す。
【０３６５】
先ず、図３０の（b）を説明する。図３０の（a）で示した状態から、メモリセルが、ワード線WL0とビット線BL0とで選択される第１書込み許可メモリセルW0BL0CELと、ワード線WL0とビット線BL2とで選択される第１書込み許可メモリセルW0BL2CELのそれぞれに対応した論理アドレスLADへの書き込みが発生した場合、第１書込み許可メモリセルW0BL0CELへはデータ書き込まず、DTMPAREA領域内のワード線WL0と、ビット線BLj-2とで選択される第２書込み許可メモリセルW0BLj-2CELへ書き込む。
【０３６６】
同様に、第１書込み許可メモリセルW0BL2CELへはデータ書き込まず、DTMPAREA領域内の、ワード線WL0と、ビット線BLjとで選択される第２書込み許可メモリセルW0BLjCELへ書き込む。
【０３６７】
図３０の（c）は、図３０の（b）での書き込み方法を繰り返し行った結果、データを書き込まれたメモリセルが、第１書込み許可メモリセルから第２書込み許可メモリセルへ移行した様子を示す。
【０３６８】
次に、図３１の（a）および(b)において、１つの論理アドレスに対して割り当てるメモリセルを第２書き込み許可メモリセルから第３書き込み許可メモリセルへ移行しながら、データを書き込む方法を示す。
【０３６９】
先ず、図３１の（a）を説明する。図３０の（c）で示した状態から、ワード線WL0とビット線BL1とで選択される第２書込み許可メモリセルW0BL1CELとワード線WL0と、ビット線BL3とで選択される第２書込み許可メモリセルW0BL3CELのそれぞれに対応した論理アドレスLADへの書き込みが発生した場合、第２書込み許可メモリセルW0BL1CELへはデータを書き込まず、DTMPAREA領域内のワード線WLi-1と、ビット線BL0とで選択される第３書込み許可メモリセルWi-1BL0CELへ書き込む。同様に、第２書込み許可メモリセルW0BL3CELへはデータを書き込まず、DTMPAREA領域内のワード線WLi-1と、ビット線BL2とで選択される第３書込み許可メモリセルWi-1BL2CELへ書き込む。
【０３７０】
図３１の（b）は、図３１の（a）での書き込み方法を繰り返し行った結果、データを書き込まれたメモリセルが、第２書込み許可メモリセルから第３書込み許可メモリセルへ移行した様子を示す。
【０３７１】
次に、図３２の（a）および(b)に、１つの論理アドレスに対して割り当てるメモリセルを第３書き込み許可メモリセルから第４書き込み許可メモリセルへ移行しながら、データを書き込む方法を示す。
【０３７２】
先ず、図３２の（a）を説明する。図３１の（b）で示した状態から、ワード線WL1とビット線BL0とで選択される第３書込み許可メモリセルW1BL0CELと、ワード線WL1とビット線BL2とで選択される第３書込み許可メモリセルW1BL2CELのそれぞれに対応した論理アドレスLADへの書き込みが発生した場合、第３書込み許可メモリセルW1BL0CELへはデータを書き込まず、DTMPAREA領域内の、ワード線WL1と、ビット線BLj-2とで選択される第４書込み許可メモリセルWL1BLj-2CELへデータを書き込む。
【０３７３】
同様に、前記第3書込み許可メモリセルWL1BL2CELへはデータを書き込まず、DTMPAREA領域内のワード線WL1とビット線BLjとで選択される第４書込み許可メモリセルWL1BLjCELへデータを書き込む。
【０３７４】
図３２の（b）は、図３２の（a）による書き込み方法を繰り返し行った結果、データが書き込まれたメモリセルが第３書込み許可メモリセルから第４書込み許可メモリセルへ移行した様子を示す。勿論、１つの論理アドレスに対して割り当てるメモリセルを第４書き込み許可メモリセルから第１書き込み許可メモリセルへ移行しながら、データを書き込むこともできることは言うまでも無い。
【０３７５】
以上説明したように、論理アドレス領域LRNG1に対応するメモリセルの数は、論理アドレス領域LRNG1の４倍以上となっているため、１つの論理アドレスに対して複数の物理アドレスへ割り当てることが可能となり、物理的に１つ以上離れたメモリセルへ書き込みながら、データを書き込む対象のメモリセルを第１書込み許可メモリセルから第２書込み許可メモリセルへ、第２書込み許可メモリセルから第３書込み許可メモリセルへ、第３書込み許可メモリセルから第４書込み許可メモリセルへ、第４書込み許可メモリセルから第１書込み許可メモリセルへ、順番に移行することで、データ書込時にメモリセルが受けるジュール熱の熱履歴の影響を小さくでき高信頼の情報処理装置を提供でき、さらに、１つの論理アドレスLADに対して複数の物理アドレスCPADを順番に割り当て、１つの論理アドレスLADに対する書換え回数の制限値を増大させ、長寿命の情報処理装置を提供できる。
【０３７６】
図３３は、図５に示す不揮発性メモリNVMEMのメモリバンクBK0〜BK3のそれぞれが、３次元で、すなわち立体的に４層に重なり合っている際の不揮発性メモリ装置内のデータが書き込まれたメモリセルの別の一例を示す。
【０３７７】
特に限定しないが、メモリバンクBK0は第0層目へ形成され、メモリバンクBK1は第0層目の下層の第1層目へ形成され、メモリバンクBK2は第1層目の下層の第2層目へ形成され、メモリバンクBK3は第2層目の下層の第3層目へ形成される。ワード線WL0〜WLiとビット線BL0〜BLjとの交点がメモリセルを表し、●はデータを書き込まれたメモリセルを示している。図３３は、SSDコンフィグレーション情報の中のライト方法選択情報WRTFLGが1の場合の書込み方法により、物理的に、千鳥格子状にメモリセルへ書き込まれている。
【０３７８】
また、第0層目のメモリバンクBK0から、第3層目のメモリバンクBK3は物理アドレス領域PRNG2を形成する。
第0層のメモリバンクBK0と、第2層目のメモリバンクBK2には、ワード線WL0〜WLiの中の偶数番目のワード線WLn(ｎ＝偶数)と、ビット線BL0〜BLjの中の偶数番目のビット線BLm(ｍ＝偶数)との交点であるメモリセルWLevenBLevenへデータが書き込まれており、第1層目のメモリバンクBK1と、第3層目のメモリバンクBK3には、ワード線WL0〜WLiの中の奇数番目のワード線WLn(ｎ＝偶数)と、ビット線BL0〜BLjの中の奇数番目のビット線BLm(ｍ＝偶数)との交点であるメモリセルWLoddBLoddへデータが書き込まれている。
【０３７９】
このように、不揮発性メモリNVMEMのメモリバンクBK0〜BK3のそれぞれを、３次元に立体的に重ね合わせることで不揮発性メモリNVMEMのチップ面積を小さくでき、低コストかつ大容量の不揮発性メモリを実現できる。
【０３８０】
また、第0層目から第3層目の層間にて書き込むメモリセルが重ならないように、データを書き込むことができ、メモリセルが受けるジュール熱の熱履歴の影響を小さくでき高信頼で長寿命の情報処理装置を提供できる。
【０３８１】
図３４は、図２０にて説明した情報処理回路MANAGERがデータを不揮発性メモリへ書き込むために必要な書込み物理アドレステーブルNXPADTBLを更新する際に、新たな物理アドレスを生成する方法（図２０のStep31）の一例について説明する。
【０３８２】
また、情報処理回路MANAGERは、図２１の（a）に示される物理アドレスCPADと、不揮発性メモリの各種アドレス（チップアドレスCHIPA、メモリバンクアドレスBK、ロウアドレスROW、カラムアドレスCOL）との対応付けを行う。
【０３８３】
さらに、図１３の(c)に示すSSDコンフィグレーション情報の中のライト方法選択情報WRTFLGが1の場合の書込み方法にて、データを物理的に千鳥格子状にメモリセルへ書き込む。なお、ビット線BLimaxは、imax番目のビット線BLimaxであり、imaxはビット線番号の中で最大値を示す。
【０３８４】
情報処理回路MANAGERが、現在の物理アドレスCPAD（Step81）を、チップアドレスCHIPAと、バンクアドレスBKcと、ロウアドレスROWと、カラムアドレスCOLへ変換する（Step82）。
【０３８５】
次に、変換されたロウアドレスROWの値ciにて指定されたワード線番号WLciが偶数かどうかを判定する（Step83）。ワード線番号WLciが偶数であれば、Step84を実行し、奇数であればStep88を実行する。
【０３８６】
Step84では、カラムアドレスCOLの値cjで指定されたビット線番号がBLcjの場合、ビット線番号BLcjが最大ビット線番号BLimaxと1との差以上かどうかを判定する。
【０３８７】
ビット線番号BLcjが、この差以上であればStep85を実行し、ビット線番号BLcjが、この差より小さければStep87を実行する。
【０３８８】
Step85および87では、新たな物理アドレスに対応するワード線番号WLnxとビット線番号BLnxを計算する。計算方法を以下に示す。
Step85では、ワード線番号WLnx ＝ ワード線番号WLci+1、ビット線番号BLnx ＝ 1となる。Step87では、ワード線番号WLnx ＝ ワード線番号WLci、ビット線番号BLnx ＝ BLcj+2となる。
【０３８９】
Step88では、カラムアドレスCOLの値cjにて指定されたビット線番号がBLcjの場合、ビット線番号BLcjが最大ビット線番号BLimax以上かどうかを判定する。
【０３９０】
ビット線番号BLcjが、この差以上であればStep89を実行し、ビット線番号BLcjが、この差より小さければStep90を実行する。
【０３９１】
Step89および90では、新たな物理アドレスに対応するワード線番号WLnxとビット線番号BLnxを計算する。計算方法を以下に示す。
Step89では、ワード線番号WLnx ＝ ワード線番号WLci+1、ビット線番号BLnx ＝ 0となる。Step90では、ワード線番号WLnx ＝ ワード線番号WLci、ビット線番号BLnx ＝ BLcj+2となる。
【０３９２】
Step86では、情報処理回路MANAGERがワード線番号WLnxとビット線番号BLnxから新たな物理アドレスCPADnxを決定する。先ず、ワード線番号WLnxは新たなロウアドレスROWnx値となり、ビット線番号BLnxは新たなカラムアドレスCOLnx値となり、次に、情報処理回路MANAGERは図２１の(a)に示すアドレス対応付けに従い、チップアドレスCHIPAと、バンクアドレスBK、ロウアドレスROWnxと、カラムアドレスCOLnxから、新たな物理アドレスCPADnxを求める。
【０３９３】
図３５は、図１３の（c）に示すSSDコンフィグレーション情報の中のライト方法選択情報WRTFLGと、TDCL情報によって設けられたDTMPAREAと、図１５に示すアドレスマップ範囲ADMAPを利用し、物理アドレス領域PRNG2内への書込み方法について説明する。
【０３９４】
先ず、図３５の(a)について説明する。図１３の（c）に示すSSDコンフィグレーション情報の中でTDCL値が４であることから、ワード線WLi-3からWLiの４つ分のワード線に接続されているメモリセル領域と、ビット線BLj-3からBLjの４つ分のビット線に接続されているメモリセル領域のいずれかに含まれるメモリセル領域がDTMPAREAであり、点線にて囲まれたメモリセル領域が、このDTMPAREAを示す。
【０３９５】
図１３の（c）に示すSSDコンフィグレーション情報の中のライト方法選択情報WRTFLGが1であることから、図２７に示す書込み方法にて、データが千鳥格子状にメモリセルへ書き込まれている。
【０３９６】
具体的には、物理アドレス領域PRNG2内のワード線WL0〜WLiの中の偶数番目のワード線WLn(ｎ＝偶数)と、ビット線BL0〜BLjの中の偶数番目のビット線BLm(ｍ＝偶数)の交点のメモリセルWLevenBLevenCELへデータが書込まれ、ワード線WL0〜WLiの中の奇数番目のワード線WLn(ｎ＝奇数)と、ビット線BL0〜BLjの中の偶数番目のビット線BLm(ｍ＝偶数)との交点のメモリセルWLoddBLoddCELへデータが書込まれている。●はデータが書き込まれ、有効となっているメモリセルを示す。
【０３９７】
また、物理アドレス領域Prng2内のワード線WL0〜WLiの中の偶数番目のワード線WLn(ｎ＝偶数)と、ビット線BL0〜BLjの中の奇数番目のビット線BLm(ｍ＝奇数)の交点のメモリセルWLevenBLoddCELと、ワード線WL0〜WLiの中の奇数番目のワード線WLn(ｎ＝奇数)と、ビット線BL0〜BLjの中の偶数番目のビット線BLm(ｍ＝偶数)との交点のメモリセルWloddBLevenCELへはデータが書込まれていない。
【０３９８】
このように、１回の書込みで、実効的にデータが書き込まれるメモリセル数は、全体の半分となり、１つの論理アドレスに対して２つの物理アドレスを割り当てることが可能となる。
【０３９９】
そこで、図３５の（b）および(c)では、１つの論理アドレスに対して割り当てるメモリセルをメモリセルWLevenBLevenCELからメモリセルWLoddBLevenCELへ、メモリセルWLoddBLoddCELからメモリセルWLevenBLoddCELへ移行しながらデータを書き込む方法を示す。
【０４００】
以下に図３５の（b）を説明する。図３５の（a）で示した状態から、ワード線WL0とビット線BL0とで選択されるメモリセルWL0BL0CELおよびワード線WL1とビット線BL1とで選択されるメモリセルWL1BL1CELのそれぞれに対応した論理アドレスLADへの書き込みが発生した場合、メモリセルWL0BL0CELへはデータを書き込まず、DTMPAREA領域内にある奇数番目のワード線WLi-2と、ビット線BL0とで選択されるメモリセルWLi-2BL0CELへデータを書き込む。
【０４０１】
また、メモリセルWL1BL1CELへはデータを書き込まず、DTMPAREA領域内にある偶数番目のワード線WLi-1と、ビット線BL1とで選択されるメモリセルWLi-1BL1CELへデータを書き込む。これによってデータを書込むメモリセルをメモリセルWLevenBLevenCELからメモリセルWLoddBLevenCELへ、メモリセルWLoddBLoddCELからメモリセルWLevenBLoddCELへ移行することができる。
【０４０２】
図３５の（b）は、図３５の（a）での書き込み方法を繰り返し行った結果、データを書き込まれたメモリセルがメモリセルWLevenBLevenCELからメモリセルWLoddBLevenCELへ、メモリセルWLoddBLoddCELからメモリセルWLevenBLoddCELへ移行したことを示す。
【０４０３】
以上説明したように、図１３の（c）に示すSSDコンフィグレーション情報の中のライト方法選択情報WRTFLG値1で選択された書き込み方法を適用すると、１回の書込みで、実効的にデータが書き込まれるメモリセル数は、全体の半分となる。そのため、１つの論理アドレスLADに対して２つの物理アドレスPADを割り当てることが可能となり、千鳥格子状に離れたメモリセルへ書き込みながら、データを書き込む対象のメモリセルをメモリセルWLevenBLevenCELからメモリセルWLoddBLevenCELへ、メモリセルWLoddBLoddCELからメモリセルWLevenBLoddCELへ移行することで、データ書込時にメモリセルが受けるジュール熱の熱履歴の影響を小さくでき高信頼の情報処理装置を提供でき、さらに、１つの論理アドレスLADに対して複数の物理アドレスCPADを順番に割り当て、１つの論理アドレスLADに対する書換え回数の制限値を増大させ、長寿命の情報処理装置を提供できる。
【０４０４】
［まとめ］
以上説明した実施の形態により得られる主な効果は以下の通りである。
第１に、コントローラによって、相変化メモリのメモリセルに対してN個置きに書き込むことができ、データ書込時にメモリセルが受けるジュール熱の熱履歴の影響を小さくできる、高信頼で長寿命の情報処理装置を提供できる。
【０４０５】
第２に、コントローラによって、相変化メモリのメモリセルに対して複数の書込み許可をN個置きに書き込むことができ、データ書込時にメモリセルが受けるジュール熱の熱履歴の影響を小さくできる、高信頼で長寿命の情報処理装置を提供できる。
【０４０６】
第３に、コントローラによって、相変化メモリのメモリセルに対して、書込みを禁止したメモリセルを物理的に連続した領域に配置することができ、データ書込時にメモリセルが受けるジュール熱の熱履歴の影響を小さくできる、高信頼で長寿命の情報処理装置を提供できる。
【０４０７】
第４に、SDDコンフィグレーション情報SDCFGはプログラム可能なため、柔軟に、情報処理システム装置にあわせた高信頼で長寿命の情報処理装置を提供できる。
【０４０８】
第５に、コントローラによって、データを圧縮し、メモリセルへ書込みすることで、実効的なメモリ容量を変えることなくデータ書込時にメモリセルが受けるジュール熱の熱履歴の影響を小さくできる相変化メモリを含む、高信頼で長寿命の情報処理装置を提供できる。
【０４０９】
第６に、コントローラによって、ホストからの論理アドレスに対応する物理アドレスをシーケンシャルに割り当てることにより、相変化メモリのアドレス毎のデータ消去回数のバラツキを抑えることができ、高信頼で長寿命の情報処理装置を提供できる。
【０４１０】
第７に、コントローラはライトリクエストのバッファへの格納と、書込み事前準備と、相変化メモリへの書き込み動作をパイプライン的に処理するため、高性能な情報処理装置を提供できる。
【産業上の利用可能性】
【０４１１】
本発明に係る半導体装置は、不揮発性メモリセルに対して、物理的にN個置きに書き込むことができ、データ書込時にメモリセルが受けるジュール熱の熱履歴の影響を小さくできる。従って、高信頼で長寿命が要求される情報処理装置へ適用できる。また、メモリモジュールの構成を決定するSDDコンフィグレーション情報はプログラム可能である。従って、半導体装置の記憶領域の構成を情報処理装置の用途等に応じて柔軟に対応できる。また、論理アドレスに対応する物理アドレスをシーケンシャルに割り当てることで、相変化メモリのアドレス毎のデータ消去回数のバラツキを抑えるとこができる。よって、半導体装置は、高い信頼性が要求される情報処理装置に適用できる。さらに、本発明に係る半導体装置は、ライトリクエストのバッファへの格納と、書込み事前準備と、相変化メモリへの書き込み動作をパイプライン的に処理するため、高性能な情報処理装置に適用できる。
【符号の説明】
【０４１２】
CPU_CHIP…情報処理装置、
NVMSTR0…モリモジュール、
NVM10〜NVM17、RAM、NVM17、NVM0…メモリ装置、
STRCT0、STRCT01…制御回路、
HOST_IF…インターフェース回路、
RSTSIG…リセット信号、
REFCLK…リファレンスクロック、
BUF0〜BUF3…バッファ装置、
ARB…調停回路、
MANAGER…情報処理回路、
RAMC、NVCT0〜NVCT7…メモリ制御装置、
NXPTBL、NXPTBL0、NXPTBL1、NXPTBL2、NXPTBL3…書込み物理アドレステーブル、
PSEGTBL1、PSEGTBL2…物理セグメントテーブル、
PADTBL…物理テーブル、
LPTBL…アドレス変換テーブル、
SYMD…クロック生成回路、
STREG…ステータスレジスタ、
ADCOMIF…アドレスおよびコマンドインターフェース回路、
IOBUF…IOバッファ、
CONTLOGIC…制御回路、
THMO…温度センサ、
DATACTL…データ制御回路、
BK0〜BK7…メモリバンク、
ARY0〜m…メモリアレイ、
RADLT…ロウアドレスラッチ、
CADLT…カラムアドレスラッチ、
ROWDEC…ロウデコーダ、
COLDEC…カラムデコーダ、
DSW1…データ選択回路、
DBUF0、DBUF1…データバッファ、
cel…メモリセル、
BSW0〜m…ビット線選択回路、
SA0〜m…センスアンプ、
WDR0〜m…ライトドライバ、
CLE…コマンド・ラッチイネーブル信号、
CEB…チップイネーブル信号、
ALE…アドレス・ラッチ信号、
WEB…ライトイネーブル信号、
REB…リードイネーブル信号、
IO[7:0]…入出力信号。
【図１】
0005792019.tif 000002
【図２】
0005792019.tif 000003
【図３】
0005792019.tif 000004
【図４】
0005792019.tif 000005
【図５】
0005792019.tif 000006
【図６】
0005792019.tif 000007
【図７】
0005792019.tif 000008
【図８】
0005792019.tif 000009
【図９】
0005792019.tif 000010
【図１０】
0005792019.tif 000011
【図１１】
0005792019.tif 000012
【図１２】
0005792019.tif 000013
【図１３】
0005792019.tif 000014
【図１４】
0005792019.tif 000015
【図１５】
0005792019.tif 000016
【図１６】
0005792019.tif 000017
【図１７】
0005792019.tif 000018
【図１８】
0005792019.tif 000019
【図１９】
0005792019.tif 000020
【図２０】
0005792019.tif 000021
【図２１】
0005792019.tif 000022
【図２２】
0005792019.tif 000023
【図２３】
0005792019.tif 000024
【図２４】
0005792019.tif 000025
【図２５】
0005792019.tif 000026
【図２６】
0005792019.tif 000027
【図２７】
0005792019.tif 000028
【図２８】
0005792019.tif 000029
【図２９】
0005792019.tif 000030
【図３０】
0005792019.tif 000031
【図３１】
0005792019.tif 000032
【図３２】
0005792019.tif 000033
【図３３】
0005792019.tif 000034
【図３４】
0005792019.tif 000035
【図３５】
0005792019.tif 000036