(57)【特許請求の範囲】
【請求項１】
それぞれの書き込み動作回数が管理されるＮ個（Ｎ≧２）の第一メモリ領域を含み、前記Ｎ個の第一メモリ領域毎の書き込み動作回数に基づいて前記Ｎ個の第一メモリ領域の間で記憶データの入れ替えが行われる不揮発性メモリを有し、
前記Ｎ個の第一メモリ領域のそれぞれの容量は、外部からの１回の書き込み命令に伴い書き込まれるデータの容量に等しく、
前記不揮発性メモリは、更に、前記Ｎ個の第一メモリ領域を１個の第二メモリ領域としてＭ（Ｍ≧２）個の第二メモリ領域を含み、前記Ｍ個の第二メモリ領域毎に、それぞれに含まれる前記Ｎ個の第一メモリ領域毎の書き込み動作回数の中からいずれか一つを代表値とすることで、前記Ｍ個の第二メモリ領域毎の書き込み動作回数が管理され、
前記Ｎ個の第一メモリ領域毎の書き込み動作回数に基づいて前記Ｎ個の第一メモリ領域の間で記憶データの入れ替えが行われると共に、更に、前記Ｍ個の第二メモリ領域毎の書き込み動作回数に基づいて前記Ｍ個の第二メモリ領域の間で記憶データの入れ替えが行われることを特徴とする半導体装置。
【請求項２】
請求項１記載の半導体装置において、
前記不揮発性メモリは、抵抗値の違いによって情報を弁別する相変化メモリであることを特徴とする半導体装置。
【請求項３】
請求項１記載の半導体装置において、
前記Ｎ個の第一メモリ領域に対して１個の基準書き込み動作回数が設けられ、
前記Ｎ個の第一メモリ領域毎の書き込み動作回数は、前記基準書き込み動作回数の差分値として管理されることを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置に関し、特に、カルコゲナイド材料の状態変化に伴う抵抗値の差を利用して情報を記憶する相変化メモリ等を含んだ半導体装置に適用して有益な技術に関するものである。
【背景技術】
【０００２】
例えば、ＮＡＮＤ型フラッシュメモリでは、メモリセル駆動に必要な電圧を供給する制御線を複数のメモリセルで共有している。このため、データのプログラム動作及び読出し動作はページと呼ばれる複数ビット単位で、消去動作は複数のページからなるブロックと呼ばれる単位で夫々行われる。このようなＮＡＮＤ型フラッシュメモリでは、局所的な書き込みに伴う局所的なメモリ領域の劣化を防止する目的などから、通常、動作履歴の管理が行われている。
【０００３】
図２は、２ギガ・ビットＮＡＮＤ型フラッシュメモリを例としてメモリのアドレス割付け方法の一例を図示したものである。ページは、２０４８バイトのメイン領域ＭＦＤと６４バイトのスペア領域ＳＦＤとで構成され、１２ビットのカラムアドレス信号ＣＡ[１１：０]を用いてバイト単位で活性化される。メイン領域ＭＦＤは、さらに四つのセクタに分割されている。以下ではこれら四つのセクタの夫々を、第一セクタまたはＡ領域、第二セクタまたはＢ領域、第三セクタまたはＣ領域、第四セクタまたはＤ領域と呼ぶことにする。セクタとは、アプリケーションやオペレーティング・システムが情報を取り扱う際の管理単位であり、その容量は一般に５１２バイトである。これらのセクタには、ユーザーが扱う情報が記憶される。
【０００４】
スペア領域ＳＦＤは、メイン領域ＭＦＤのセクタ数に応じて四つの領域で構成される。Ｅ領域は第一セクタのスペア領域、Ｆ領域は第二セクタのスペア領域、Ｇ領域は第三セクタのスペア領域、Ｈ領域は第四セクタのスペア領域である。これらのＥ領域〜Ｈ領域には、夫々１６バイトが割り当てられ、メイン領域ＭＦＤの不良ビットが置換されたり、誤り訂正符号の冗長ビットが記憶されたりする。ブロックは、このような構成のページを６４個用いて構成される。ページは６ビットのページアドレス信号ＰＡ[５：０]、ブロックは１１ビットのブロックアドレス信号ＢＡ[１６：６]を用いて選択される。
【０００５】
図３は、任意のブロックにおけるプログラム動作及び消去動作の例を示している。ここでは説明を簡単にするために、各ページ（ここではＰａｇｅ０〜Ｐａｇｅ６３）からスペア領域が省略されている。３００は、ユーザーが当該ブロックに初めて情報を書き込んだ状態である。この例では、ページ０のＡ領域〜Ｃ領域に、ファイルＸ０〜ファイルＺ０が夫々保存されている。書き込まれたファイルの情報量は、夫々５１２バイト以下である。ページ０のＤ領域と、ページ１〜ページ６３は空き状態（ｅｍｐｔｙ）である。ファイルを示す記号の添え字は、ファイルの履歴を示すものとする。例えば、ファイルＸｎはファイルＸ０がｎ回書換えられた状態にあること、すなわちｎ回更新された状態にあることを示す。状態３００の時点での書き込み命令の受信回数は１回、プログラム動作（ｐｒｏｇｒａｍ）回数は１回、消去（ｅｒａｓｅ）回数は０回である。
【０００６】
３０１は、ファイルＸ０がＸ１に更新された状態を示している。空いていたページ１のＡ領域に新たなファイルＸ１が書き込まれ、Ｂ領域〜Ｃ領域には元のファイルＹ０、Ｚ０が夫々転写される。この際、古いファイルが書き込まれていたページ０は無効化される。この時点での書き込み命令の受信回数は２回、プログラム動作（ｐｒｏｇｒａｍ）回数は２回、消去（ｅｒａｓｅ）回数は０回である。以降、順次、ファイルの更新が行われる。３０２は、ファイルＸ２０がＸ２１に更新された状態を示している。これまでに、ファイルＹ０、Ｚ０もＹ２１、Ｚ２１に夫々更新されている。これらのファイルが、ブロック内の最後のページ６３に書き込まれる。状態３０２での書き込み命令の受信回数は６４回、プログラム動作（ｐｒｏｇｒａｍ）回数は６４回、消去（ｅｒａｓｅ）回数は０回である。
【０００７】
さらに、ファイルＸ２１の更新が生じた場合には、最新のファイルを書き込むための空き領域を生み出す処理が行われる。具体的には、ページ６３の記憶情報をメモリアレイの外に設けられたレジスタ（３１０）に一旦退避させておいて、ブロック内の記憶情報を消去する（状態３０３）。その後、先頭のページ０のＡ領域に新たなファイルＸ２２を書き込み、Ｂ領域〜Ｃ領域には元のファイルＹ２１、Ｚ２１を夫々転写する。この結果、状態３０４での書き込み命令の受信回数は６５回、プログラム動作（ｐｒｏｇｒａｍ）回数は６５回、消去（ｅｒａｓｅ）回数は１回となる。
【０００８】
ＮＡＮＤ型フラッシュメモリがプログラム動作及び消去動作を繰り返し実行すると、メモリセルにおけるトンネル酸化膜の絶縁性が徐々に劣化し、情報の記憶に支障を来たす。そこで、メモリセルの劣化を遅らせるために、所定の消去回数に達したブロックに記憶された情報を、消去回数の少ない空きブロックに転写する処理が行われている。このような処理をｗｅａｒ  ｌｅｖｅｌｉｎｇ、または消去回数の平準化という。ｗｅａｒ  ｌｅｖｅｌｉｎｇを行うには、消去動作の実行回数を記録するためのテーブルが必要である。このテーブルは、例えば、特許文献１の図１０に記載されている。本明細書の図４は、同文献と同様の消去回数テーブル１４を示しており、これにはブロック毎の消去回数が記憶される。
【０００９】
一方、本発明者等が検討した相変化メモリを含む半導体装置においては、以下の技術が考えられる。記憶素子は、少なくともアンチモン（Ｓｂ）とテルル（Ｔｅ）を含むＧｅ−Ｓｂ−Ｔｅ系、Ａｇ−Ｉｎ−Ｓｂ−Ｔｅ系などのカルコゲナイド材料（または、相変化材料）を記録層の材料として用いている。また、選択素子はダイオードを用いている。カルコゲナイド材料とダイオードを用いた相変化メモリのアレイ構成は、例えば、非特許文献１で述べられている。
【００１０】
図５は、非特許文献１のＦｉｇ．２に記載されたメモリコア構成に基づき、ローカル・セル・アレイＬＣＡの構成例を示した図である。（ｎ＋１）本のローカル・ビット線ＬＢＬ０〜ＬＢＬｎと、（ｎ＋１）本のワード線ＷＬ０〜ＷＬｎとの交点に、相変化材料を用いた抵抗性記憶素子Ｒと選択用ダイオードＤとが直列接続されたメモリセルＭＣ００〜ＭＣｎｎが配置される。ローカル・ビット線ＬＢＬ０〜ＬＢＬｎの各々は、ＮＭＯＳトランジスタＭＮＹＳ０〜ＭＮＹＳｎを介してグローバル・ビット線ＧＢＬ０に接続される。トランジスタＭＮＹＳ０〜ＭＮＹＳｎは、夫々のゲート電極に接続されたローカル・カラム選択信号ＬＹ０〜ＬＹｎによって制御される。すなわち、トランジスタＭＮＹＳ０〜ＭＮＹＳｎの何れか一つが活性化されて導通することにより、ローカル・ビット線ＬＢＬ０〜ＬＢＬｎの何れか一つがグローバル・ビット線ＧＢＬ０に電気的に接続される。なお、ローカル・ビット線ＬＢＬ０〜ＬＢＬｎと接地電極ＶＳＳとの間には、ＮＭＯＳトランジスタＭＮＤ０〜ＭＮＤｎが夫々挿入される。トランジスタＭＮＤ０〜ＭＮＤｎは、夫々のゲート電極に接続されたローカル・ビット線放電信号ＬＢＬＤＩＳにより制御される。
【００１１】
また、非特許文献２のＦｉｇ．６には、プログラム動作におけるアルゴリズムが記載されている。このアルゴリズムは、初期化動作とベリファイ書き込み動作とで構成される。初期化動作では、一旦セット動作をした後にリセットパルスが印加される。また、このアルゴリズムを用いた書き込み動作の耐久性は最大１０万回と推定されている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００６−２３５９６０号公報
【非特許文献】
【００１３】
【非特許文献１】「アイ・イー・イー・イー、インターナショナル・ソリッド・ステート・サーキット・カンファレンス、ダイジェスト・オブ・テクニカル・ペーパーズ（ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｏｌｉｄ-Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ  Ｃｏｎｆｅｒｅｎｃｅ、  Ｄｉｇｅｓｔ  ｏｆ  Ｔｅｃｈｎｉｃａｌ  Ｐａｐｅｒｓ）」、（米国）、２００７年、ｐ．４７２−４７３
【非特許文献２】「アイ・イー・イー・イー、インターナショナル・ソリッド・ステート・サーキット・カンファレンス、ダイジェスト・オブ・テクニカル・ペーパーズ（ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｏｌｉｄ-Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ  Ｃｏｎｆｅｒｅｎｃｅ、  Ｄｉｇｅｓｔ  ｏｆ  Ｔｅｃｈｎｉｃａｌ  Ｐａｐｅｒｓ）」、（米国）、２００７年、ｐ．４２８−４２８
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明者等は、本願に先立ち、カルコゲナイド材料からなる記録層とダイオードを用いた相変化メモリの大容量化を検討した。非特許文献２によれば、相変化メモリの耐久性は１０万回と言われているので、チップの延命すなわち信頼度向上にはｗｅａｒ ｌｅｖｅｌｉｎｇの適用が不可欠であると考えた。そこで、ＮＡＮＤ型フラッシュメモリにおけるプログラム動作及び消去動作を見直した。
【００１５】
ＮＡＮＤ型フラッシュメモリにおけるファイルの更新は、新しいファイルが元のファイルに上書き（ｏｖｅｒｗｒｉｔｅ）されるのではなく、図３に示したように同一ページの他のファイルと共にブロック内の空きページに書き込まれていた。言い換えると、ＮＡＮＤ型フラッシュでは、予め用意されていた代替領域（ここでは空きページ）に新たなファイルが書き込まれていた。このように代替領域を確保する必要があるため、実際に記憶できる情報量、すなわち実効的なメモリ容量は、物理的なメモリ容量よりも小さくなってしまう虞があることが判明した。よって、相変化メモリでは、その動作原理に則して、効率の良いメモリアレイ動作とｗｅａｒ ｌｅｖｅｌｉｎｇを実現することが重要であることが分かった。以下では、これらの点を留意して、相変化メモリの動作とメモリセル劣化の監視方法における課題を説明する。
【００１６】
相変化メモリは現在記憶している情報に関係なく、元のファイルを新しいファイルが書き換える動作が可能である。すなわち、上書き動作（ｏｖｅｒｗｒｉｔｅ）が可能であるため、ＮＡＮＤ型フラッシュメモリのような消去動作が不要である。本明細書では、ＮＡＮＤ型フラッシュのプログラム動作と区別するために、相変化メモリで実行される書き込み動作を上書き動作と呼ぶことにする。消去動作が不要なため、メモリセル駆動に必要な電圧を供給する制御線を共有するメモリセル数の自由度が上がり、図２に示したメモリのアドレス割付けからブロック階層を取り除くことができる。究極的にはページ階層も取り除き、例えば読出し専用メモリ（ＲＯＭ：Ｒｅａｄ ｏｎｌｙ ｍｅｍｏｒｙ）で広く行われている２バイト（＝１６ビット）単位での上書き動作や、１ビット単位での上書き動作も可能である。しかし、大容量相変化メモリを固体ストレージに適用することと、ＮＡＮＤ型フラッシュメモリとの違いが容易に理解できるようにすることを念頭に置いて、５１２バイト単位（セクタ単位）での上書き動作をページ単位で管理する場合を考えた。
【００１７】
図６は、相変化メモリのページｊ〜ページ（ｊ＋１）における上書き動作の例を示している。ここでは、図３と同様に説明を簡単にするために、スペア領域が省略されている。６００は、ユーザーが初めて情報を書き込んだ状態である。ページｊのＡ領域〜Ｃ領域には、ファイルＸ０〜ファイルＺ０が保存されている。書き込まれたファイルの情報量は、夫々５１２バイト以下である。ページｊのＤ領域と、ページ（ｊ＋１）は空き状態（ｅｍｐｔｙ）である。状態６００の時点での書き込み命令受信回数は１回、ファイルＸ０系の上書き動作（ｏｖｅｒｗｒｉｔｅ）回数は０回、ファイルＹ０系の上書き動作（ｏｖｅｒｗｒｉｔｅ）回数は０回、ファイルＺ０系の上書き動作（ｏｖｅｒｗｒｉｔｅ）回数は０回である。
【００１８】
６０１は、ファイルＸ０がＸ１に更新された状態を示している。ページｊのＡ領域に新たなファイルＸ１が上書きされ、Ｂ領域〜Ｃ領域には元のファイルＹ０、Ｚ０が保持される。この時点での書き込み命令受信回数は２回、ファイルＸ０系の上書き動作（ｏｖｅｒｗｒｉｔｅ）回数は１回、ファイルＹ０系の上書き動作（ｏｖｅｒｗｒｉｔｅ）回数は０回、ファイルＺ０系の上書き動作（ｏｖｅｒｗｒｉｔｅ）回数は０回である。以降、順次、ファイルの更新が行われる。
【００１９】
６０２は、Ｘ０系のファイルがＸ２１に、Ｙ０系のファイルがＹ２１に、Ｚ０系のファイルがＺ２１に夫々更新された状態を示している。この時点での書き込み命令受信回数は６４回、ファイルＸ０系の上書き動作（ｏｖｅｒｗｒｉｔｅ）回数は２１回、ファイルＹ０系の上書き動作（ｏｖｅｒｗｒｉｔｅ）回数は２１回、ファイルＺ０系の上書き動作（ｏｖｅｒｗｒｉｔｅ）回数は２１回である。
【００２０】
次に、ファイルＸ２１の更新が生じた場合には、ページｊのＡ領域に新たなファイルＸ２２が上書きされ、Ｂ領域〜Ｃ領域には元のファイルＹ２１、Ｚ２１が保持される（状態６０３）。相変化メモリは１０万回まで上書き動作が可能であるため、図３に示したＮＡＮＤ型フラッシュメモリのような空きページ（ここではページ（ｊ＋１））への書き込みは不要である。この時点での書き込み命令受信回数は６５回、ファイルＸ０系の上書き動作（ｏｖｅｒｗｒｉｔｅ）回数は２２回、ファイルＹ０系の上書き動作（ｏｖｅｒｗｒｉｔｅ）回数は２１回、ファイルＺ０系の上書き動作（ｏｖｅｒｗｒｉｔｅ）回数は２１回である。
【００２１】
状態６０４では、さらにファイルの更新が繰り返され、Ａ領域にはファイルＸ９９９５７、Ｂ領域にはファイルＹ２１、Ｃ領域にはファイルＺ２１が夫々記憶されている。この時、ページｊの書き込み命令受信回数は１０万回、ファイルＸ０系の上書き動作（ｏｖｅｒｗｒｉｔｅ）回数は９９９５７回、ファイルＹ０系の上書き動作（ｏｖｅｒｗｒｉｔｅ）回数は２１回、ファイルＺ０系の上書き動作（ｏｖｅｒｗｒｉｔｅ）回数は２１回である。
【００２２】
引き続いて、ページｊ内のファイルの更新が生じると、書き込み命令受信回数は１０万回を超えるので、空きページ（ｊ＋１）への移動が行われる。すなわち、新たなファイルＸ９９９５８がページ（ｊ＋１）に記憶され、ページｊに記憶されていたファイルＹ２１、Ｚ２１がページ（ｊ＋１）へ夫々転写される。その際に、ページｊが無効化される。
【００２３】
以上のことから、相変化メモリの書き込み動作の特徴は、現在使用しているページを上書き動作回数の上限近くまで使い切ってから、新たな空きページに書き込んでいく点にある。ＮＡＮＤ型フラッシュメモリのように、予め複数の代替領域が確保されることはないので、実効的なメモリ容量の増加が期待できる。しかし、状態６０４から状態６０５への遷移に見られるように、特定のファイル（ここではファイルＸ０系）に更新が集中すると、更新頻度の低いファイル（ここでは、ファイルＹ２１、Ｚ２１）が記憶されている領域（ここではＢ領域、Ｃ領域）では、上書き動作の頻度が低いにも関わらず、新たなページへの転写が行われる。すなわち、メモリセルの劣化が進まぬうちに、当該ページ（ここではページｊ）の無効化が行われる。この処理は、更新頻度の低い領域にとっては本来無用のものである。
【００２４】
本発明は、このようなことを鑑みてなされたものであり、前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００２５】
本願において開示される発明のうち、代表的な実施の形態の概要を簡単に説明すれば、次のとおりである。
【００２６】
本実施の形態による半導体装置は、メモリ領域の書き込み動作回数が階層的に管理され、これに基づいて記憶データの入れ替えが行われる不揮発性メモリを有するものとなっている。すなわち、メモリ領域が、複数の第一メモリ領域に分割管理され、各第一メモリ領域が、複数の第二メモリ領域に分割管理される。各第一メモリ領域内では、その中の複数の第二メモリ領域毎の書き込み動作回数に基づいてこの複数の第二メモリ領域の間で記憶データの入れ替えが行われる。さらに、各第一メモリ領域に対して、その中に含まれる複数の第二メモリ領域毎の書き込み動作回数のいずれか１つが代表的な書き込み動作回数として設定され、これによって複数の第一メモリ領域毎に設定された書き込み動作回数に基づいてこの複数の第一メモリ領域の間で記憶データの入れ替えが行われる。
【００２７】
このように階層的に書き込み動作回数を管理することで、メモリ領域の書き込み動作回数の木目細かな平準化を行うことが可能となる。また、この木目細かな平準化を効率的に行うことが可能となる。その結果、メモリの寿命低下の抑制や、メモリ使用効率の向上などが図れる。
【００２８】
ここで、複数の第一メモリ領域の１個に含まれる複数の第二メモリ領域毎の書き込み動作回数は、この複数の第二メモリ領域のいずれか１個の第二メモリ領域内に書き込まれることで管理されることが望ましい。すなわち、１個の第一メモリ領域に含まれる複数の第二メモリ領域において、そのいずれか一つの領域に、自身を含めたこの複数の第二メモリ領域毎の書き込み動作回数を記憶させ、他の領域に任意のユーザーデータを記憶させる。この際に、書き込み動作回数が記憶された領域とユーザーデータが記憶された領域は、その各領域の書き込み動作回数に応じて記憶データの入れ替えが行われることもある。
【００２９】
このように、複数の第二メモリ領域のいずれか一つの領域に書き込み動作回数を記憶させることで、この書き込み動作回数を例えば外部メモリで管理するような場合と比較して、この外部メモリの容量を削減できる。すなわち、書き込み動作回数の管理単位を小さくすればするほど、その管理に必要なメモリ容量が増加し、コストの増大を招くことになるが、このメモリ容量を外部メモリではなく自身に確保するためコストの増大を抑制することができる。さらに、この管理に必要なメモリ容量は、各第二メモリ領域毎の書き込み動作回数そのものを記憶させるのではなく、ある基準の書き込み動作回数を設けて、これとの差分値として記憶させるとよい。これによって、必要なメモリ容量の低減が図れる。
【発明の効果】
【００３０】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、書き込み動作回数の木目細かな平準化を実現でき、メモリ使用効率の向上が図れる。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施の形態１の半導体装置において、相変化メモリのページに記憶されるメタデータの例を示す図である。
【図２】２ギガ・ビットＮＡＮＤ型フラッシュメモリのアドレス割付けの一例を示す図である。
【図３】ＮＡＮＤ型フラッシュメモリのプログラム動作及び消去動作の例を示す図である。
【図４】ＮＡＮＤ型フラッシュメモリにおける消去回数テーブルの例を示す図である。
【図５】相変化メモリにおけるローカル・セル・アレイの構成例を示す図である。
【図６】相変化メモリの上書き動作の例を示す図である。
【図７】本発明の実施の形態１の半導体装置における、相変化メモリを用いたメモリモジュールの構成例を示す図である。
【図８】本発明の実施の形態１の半導体装置において、相変化メモリの概略構成例を示す要部ブロック図である。
【図９】本発明の実施の形態１の半導体装置において、相変化メモリの最小上書き動作回数テーブルの例を示す図である。
【図１０】本発明の実施の形態１の半導体装置において、相変化メモリのページ構成例を示す図である。
【図１１】本発明の実施の形態１の半導体装置において、相変化メモリの別のページ構成例を示す図である。
【図１２】本発明の実施の形態１の半導体装置において、相変化メモリモジュールの動作シーケンスの一例を示すフローチャートである。
【図１３】図１２に記載の相変化メモリモジュールの動作シーケンスに基づいた書き込み動作の実行例を示す図である。
【図１４】本発明の実施の形態２の半導体装置において、相変化メモリのページ構成例を示す図である。
【図１５】本発明の実施の形態２の半導体装置において、相変化メモリの別のページ構成例を示す図である。
【図１６】本発明の実施の形態３の半導体装置において、相変化メモリのメタデータの配置の例を示す図である。
【図１７】本発明の実施の形態３の半導体装置において、相変化メモリのメタデータの内容の例を示す図である。
【図１８】本発明の実施の形態４の半導体装置において、相変化メモリモジュールの動作シーケンスの一例を示すフローチャートである。
【図１９】図１８に記載の相変化メモリモジュールの動作シーケンスに基づいた書き込み動作の実行例を示す図である。
【図２０】本発明の実施の形態５の半導体装置において、相変化メモリモジュールの動作シーケンスの一例を示すフローチャートである。
【図２１】本発明の実施の形態６の半導体装置において、相変化メモリの上書き動作回数テーブルの例を示す図である。
【図２２】本発明の実施の形態６の半導体装置において、相変化メモリモジュールの動作シーケンスの一例を示すフローチャートである。
【図２３】本発明の実施の形態７の半導体装置において、相変化メモリの上書き動作回数テーブルの例を示す図である。
【図２４】本発明の実施の形態７の半導体装置において、相変化メモリモジュールの動作シーケンスの一例を示すフローチャートである。
【図２５】本発明の実施の形態８の半導体装置において、相変化メモリモジュールの動作シーケンスの一例を示すフローチャートである。
【図２６】本発明の実施の形態９の半導体装置における、相変化メモリを用いたメモリモジュールの構成例を示す図である。
【図２７】本発明の実施の形態１０の半導体装置における、相変化メモリを用いた応用機器の構成例を示す図である。
【図２８】本発明の実施の形態１１の半導体装置における、相変化メモリの構成例を示す図である。
【発明を実施するための形態】
【００３２】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００３３】
（実施の形態１）
本実施の形態１では、相変化メモリのｗｅａｒ ｌｅｖｅｌｉｎｇ方法を提供する。このｗｅａｒ ｌｅｖｅｌｉｎｇに際しては、ＮＡＮＤ型フラッシュメモリのように書き込み単位（例えばセクタ単位）と異なる単位（ブロック単位）を管理単位とするのではなく、書き込み単位（例えばセクタ単位）を管理単位として上書き動作回数を監視することが主要な特徴となっている。これによって、例えば、前述した図６を例として、更新頻度が高い領域（領域Ａ）と低い領域（領域Ｂまたは領域Ｃ）を入れ替えることができ、メモリ全体としての劣化を遅らせ、結果として、メモリ使用効率の向上などが図れる。
【００３４】
ただし、このように木目細かく上書き動作回数を監視しようとすると、上書き動作回数管理テーブルの情報量が増えてしまう。具体的には、ページ単位で監視する場合の上書き動作回数テーブルの情報量は、ＮＡＮＤ型フラッシュメモリにおいてブロック単位で監視されていた消去回数テーブル（図４）と比べて例えば６４倍となる。さらに、セクタ単位で監視する場合の上書き動作回数テーブルの情報量は、前述したブロック単位の場合と比べて２５６倍となる。このような管理テーブル規模の増大は、管理テーブルが通常置かれるＲＡＭ等のメモリ容量の増加に直結して、コストの増大を招く虞がある。また、この管理テーブルを用いたｗｅａｒ ｌｅｖｅｌｉｎｇを行う際に、参照する情報量の多さからその処理時間の増大を招く虞がある。
【００３５】
そこで、本実施の形態１におけるｗｅａｒ ｌｅｖｅｌｉｎｇ方法の他の主要な特徴は、階層的な上書き動作回数の監視を用いる点にある。そして、この階層的な上書き動作回数の監視によって、上書き頻度の高い領域に記憶されたファイルを、上書き頻度の低い領域に記憶されたファイルと交換する。ここで、階層的な上書き動作回数の監視の意味するところは、例えば上位階層はページを指し、図２に示したメモリのアドレス割付けにおいて、該当するページの構成要素である４つのセクタで実行された上書き動作回数のうち、最小の値が監視される。また、下位階層はページの構成要素である４つのセクタを指し、各セクタで実行された上書き動作回数の各々が監視される。以下、これらの特徴を含む半導体装置の詳細について説明する。
【００３６】
《相変化メモリモジュールと相変化メモリの構成》
まず、本実施の形態１における相変化メモリモジュールと相変化メモリの構成を夫々説明する。図７は、本発明による実施の形態１の半導体装置における、相変化メモリを用いたメモリモジュールの構成例を示す図である。図７の相変化メモリモジュールＰＣＭＭＤＬは、相変化メモリＰＣＭ、外付けのランダム・アクセス・メモリＲＡＭ１、コントローラブロックＣＴＬＲＢＬＫで構成される。外付けのランダム・アクセス・メモリＲＡＭ１は、ＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）またはＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）である。コントローラブロックＣＴＬＲＢＬＫは、マイクロ・プロセッサ・ユニットＭＰＵ、ランダム・アクセス・メモリＲＡＭ０、読出し専用メモリ（リード・オンリー・メモリ）ＲＯＭ、相変化メモリインタフェイスＰＣＭＩＦ、ホスト機器インタフェイスＨＯＳＴＩＦで構成される。
【００３７】
ランダム・アクセス・メモリＲＡＭ０は、ＳＲＡＭまたはＤＲＡＭである。外付けのランダム・アクセス・メモリＲＡＭ１やランダム・アクセス・メモリＲＡＭ０は、相変化メモリＰＣＭから読出した記憶情報や、相変化メモリＰＣＭへ新たに書き込む情報を一時的に保持する。Ｗｅａｒ ｌｅｖｅｌｉｎｇや誤り訂正などを行うプログラムは、読出し専用メモリＲＯＭに記憶される。マイクロ・プロセッサ・ユニットＭＰＵは、このプログラムを読み出して、Ｗｅａｒ ｌｅｖｅｌｉｎｇを実行する。コントローラブロックＣＴＬＲＢＬＫの各ユニットは、相変化メモリインタフェイスＰＣＭＩＦから相変化メモリ信号群ＰＣＭＳＩＧを介して相変化メモリＰＣＭと接続される。また、ＲＡＭ信号群ＲＡＭＳＩＧを介して外付けのランダム・アクセス・メモリＲＡＭ１と接続される。さらに、ホスト機器インタフェイスＨＯＳＴＩＦからホスト機器信号群ＨＯＳＴＳＩＧを介してホスト機器ＨＯＳＴと接続される。
【００３８】
図８は、図７の相変化メモリＰＣＭの概略構成例を示す要部ブロック図である。図８の相変化メモリは、ユーザー領域ＵＦＤとベンダ領域ＶＦＤの二つの領域で構成される。両領域は例えば図５に示したように、カルコゲナイド材料からなる記録層とセル選択用のダイオードで構成されたメモリセルがアレイ状に配置された構成である。図８に示したように、メイン領域ＭＦＤとスペア領域ＳＦＤを用いて、ページＰＧが形成される。ユーザー領域ＵＦＤやベンダ領域ＶＦＤは、８本の入出力線ＩＯ０〜ＩＯ７を介して図７に示したコントローラブロックＣＴＬＲＢＬＫとの間で記憶情報の授受を行う。ベンダ領域ＶＦＤは、チップベンダやメモリモジュール・ベンダによって、ハード的またはソフト的に設定されるものである。例えば、ユーザー領域ＵＦＤに不良ビットが含まれている際の置換先に指定される。あるいは、管理テーブルの保存や、上書き動作回数が上限に達したユーザー領域に保持されていた情報をさらに更新する際の新たな記憶場所に使用される。
【００３９】
《ファイル更新情報》
次に、ファイル書換えに伴う上書き動作回数などの更新情報を説明する。図９は、本実施の形態１における相変化メモリの最小上書き動作回数テーブル９１の例を示している。このテーブルは、前述の通り各ページの構成要素である４つのセクタで実行された上書き動作回数のうち、最小の値が記録されている。この最小上書き動作回数は、図７に示した相変化メモリモジュールＰＣＭＭＤＬの電源が遮断されている場合、後述するメタデータの構成要素として相変化メモリＰＣＭの各ページに分散して記憶される。或いは、これに加えて、メタデータの中から最小上書き動作回数のみを抽出して纏めたものとなる図９に示すような最小上書き動作回数テーブル９１を、ベンダ領域ＶＦＤに別途保存しておいてもよい。
【００４０】
一方、このような最小上書き動作回数は、相変化メモリモジュールＰＣＭＭＤＬが起動している場合、相変化メモリＰＣＭから読み出され、図７に示したランダム・アクセス・メモリＲＡＭ０または、外付けのランダム・アクセス・メモリＲＡＭ１に記憶される。このランダム・アクセス・メモリ上に記憶された最小上書き動作回数は、後述するメタデータ上の最小上書き動作回数が更新された際に併せて更新される。そして、上書き動作回数の上限に達したページの置換や、ページ間におけるｗｅａｒ ｌｅｖｅｌｉｎｇ等を実施する際の参照データとして扱われる。
【００４１】
すなわち、コントローラブロックＣＴＬＢＬＫは、最小上書き動作回数テーブル９１を参照することにより上書き動作回数の上限に達したページを判別し、当該ページに記憶されているファイルを代替領域に転写する。このような動作により、将来更新されたファイルを確実に書込み、記憶することができる。また、各ページの上書き動作回数を比較することにより、所定の回数差に達したページを互いに入れ替える。このような動作により、特定ページへの上書きを抑えることができる。すなわち、ページ間でのｗｅａｒ ｌｅｖｅｌｉｎｇを実現することが可能となる。これらのページ管理は、従来のフラッシュメモリで広く行われているブロック入替えと同様な制御であるが、入替え単位がページに縮小されている点が異なる。後述するようなページ内でのセクタ間のｗｅａｒ ｌｅｖｅｌｉｎｇと組み合わせれば、より木目細かなｗｅａｒ ｌｅｖｅｌｉｎｇが実現される。特に情報量の小さなファイル（例えば一つのセクタで記憶できるような５１２バイト未満のファイル）を記憶する場合に、ファイル容量に等しい単位でｗｅａｒ ｌｅｖｅｌｉｎｇが実施されるので、フラッシュメモリのように必要のない領域までも置換されたり、入れ替えられたりすることがない。極論するとファイルが書き込まれたセクタだけにｗｅａｒｌｅｖｅｌｉｎｇが実施されるので、それ以外のセクタにおいて書換え回数が消耗されることがなくなる。よって、長寿命の相変化メモリを実現可能となる。
【００４２】
図１は、ページ毎のメタデータの例を示している。１００は、前述した最小上書き動作回数である。１１０〜１１３は、第一セクタ〜第四セクタ（すなわちＡ領域〜Ｄ領域）での上書き動作回数を記録するカウンタである。１２０〜１２３は、各セクタに記憶されている内容がファイルであるか、メタデータであるかを示す識別子である。または、各セクタ毎の論理アドレス割付を示す識別子である。
【００４３】
このようなメタデータは、ファイルＸ０〜Ｚ０と共にページ内に記憶される。図２のページ構成に則れば、例えば図１０のように第一セクタ〜第三セクタ（すなわちＡ領域〜Ｃ領域、１０００〜１００２）にはファイルＸ０〜Ｚ０、第四セクタ（すなわちＤ領域、１００３）にはメタデータが記憶される。ここで、Ｅ領域〜Ｈ領域（１０１０〜１０１３）は、メイン領域ＭＦＤにおける第一セクタ〜第四セクタ（１０００〜１００３）に対するスペア領域ＳＦＤである。
【００４４】
メイン領域ＭＦＤとスペア領域ＳＦＤの割り付けは、図１０に示した形態のほかにも種々の変形が可能である。例えば図１１に示すようにメイン領域とスペア領域を分割して、対となるＡ領域とＥ領域、Ｂ領域とＦ領域、Ｃ領域とＧ領域、Ｄ領域とＨ領域の夫々を隣接させて、第一セクタから第四セクタの順に配置することも可能である。セクタ単位でのｗｅａｒ  ｌｅｖｅｌｉｎｇでは、メイン領域とスペア領域を対にして記憶情報の入れ換えが行われる。よって、本実施の形態１によるｗｅａｒ  ｌｅｖｅｌｉｎｇの手順を容易に理解できるようにするために、以下では図１１のページ構成を前提に説明する。
【００４５】
《相変化メモリモジュールの動作シーケンス及びｗｅａｒ  ｌｅｖｅｌｉｎｇ手順》
図１２に従い、本実施の形態１による相変化メモリモジュールＰＣＭＭＤＬの動作シーケンスを説明する。図７に示した相変化メモリモジュールＰＣＭＭＤＬが起動すると、コントローラブロックＣＴＬＲＢＬＫからの命令により、直ちに管理テーブルが相変化メモリからランダム・アクセス・メモリＲＡＭ０または外付けランダム・アクセス・メモリＲＡＭ１に読み出される（１２０１）。この管理テーブルは、例えばユーザー領域ＵＦＤやベンダ領域ＶＦＤの設定である。または、図７に示したようなホスト機器ＨＯＳＴに組み込まれたアプリケーションやオペレーションシステムが扱う論理アドレスと、コントローラブロックＣＴＬＲＢＬＫが扱う相変化メモリの物理アドレス（ここではページアドレス）との対応表、すなわち論理アドレス−物理アドレス変換テーブルである。さらには、図９に示したような最小上書き動作回数テーブル９１である。このような管理テーブルの読み出しを完了すると、待機状態になる（１２０２）。この後、ホスト機器ＨＯＳＴからの命令に応じた動作を行う。
【００４６】
相変化メモリモジュールＰＣＭＭＤＬがホスト機器ＨＯＳＴからシステム電源遮断命令を受信した場合（１２０３）、ランダム・アクセス・メモリに読み出していた管理テーブルを相変化メモリ（例えば図８のベンダ領域ＶＦＤ）に書き込んでから（１２０４）、電源を遮断する。一方、待機状態（１２０２）において読出し命令を受信した場合（１２１０）、指定されたページ内のセクタに記憶されたファイルを、ランダム・アクセス・メモリＲＡＭ０または外付けランダム・アクセス・メモリＲＡＭ１に読み出す（１２１１）。読出し動作を完了した後、再び待機状態に戻る（１２０２）。
【００４７】
また、待機状態（１２０２）において相変化メモリモジュールＰＣＭＭＤＬがホスト機器ＨＯＳＴから書き込み命令を受信した場合、書き込み動作の前にｗｅａｒ ｌｅｖｅｌｉｎｇ１２３０を実行する。まず、書き込み命令で指定されたセクタが所属するページを読み出す（１２２０）。そして、コントローラブロックＣＴＬＲＢＬＫは、図１に示したメタデータに記録された各セクタの上書き動作回数がｗｅａｒ ｌｅｖｅｌｉｎｇを実施するような値になっているか否かの解析を行う（１２３１）。ここでは、ｗｅａｒ ｌｅｖｅｌｉｎｇ実行条件の例として、次の二つの条件を定める。
【００４８】
（条件１）上書き動作回数の最大値と最小値の差が、３以上であること。
【００４９】
（条件２）メタデータを記憶しているセクタの上書き動作回数が、上位２番以内にあること。
【００５０】
条件１は、セクタ間の上書き動作回数差を一定の値に保つための条件である。条件２は、メタデータを当該領域に留めるための条件である。メタデータは常に更新されるので、メタデータを記憶する領域の上書き動作回数は、このメタデータが属するページのいずれかのセクタに書き込み命令が発行される度に１増加する。後述するＷｅａｒ ｌｅｖｅｌｉｎｇが実行されると、メタデータは上書き頻度の低い領域に移動させられる。ここでメタデータの特質を鑑みて条件２を加えることよって、メタデータが記憶された領域を、その領域の上書き動作回数が他の領域の上書き動作回数と同程度に引き上げられるまで固定することが可能になる。これにより、メタデータが上書き頻度の低い領域に移動させられた直後に再び上書き頻度の高い領域に移動させられるような事態を防止できる。
【００５１】
上記二つの条件を満足する場合は、ｗｅａｒ ｌｅｖｅｌｉｎｇを実行する。すなわち、上書き頻度の高いファイル及びメタデータと、上書き頻度の低いファイルとの交換をランダム・アクセス・メモリ上で行う。また、この入れ替え作業に伴って上書き動作が実行されるので、メタデータにおける該当セクタの上書き動作回数カウンタの値を１増加する（１２３２）。さらに、最小上書き動作回数を更新する。続いて、交換されたファイルと更新されたメタデータを相変化メモリに書き込む（１２３３）。
【００５２】
次に、ランダム・アクセス・メモリ上のページ、すなわちファイルとメタデータを更新し（１２４１）、ここで更新されたファイルとメタデータを相変化メモリに書き込む（１２４２）。なお、ここでは、ｗｅａｒ ｌｅｖｅｌｉｎｇを行った後に相変化メモリへの書戻しを行い（１２３３）、ファイルの更新およびこれに伴うメタデータの更新を行った後に再度相変化メモリへの書き込みを行っているが（１２４２）、勿論、これらを１回の相変化メモリへの書き込みで行うことも可能である。この場合、コントローラブロックＣＴＬＲＢＬＫが書き込み対象となっているページのデータをランダム・アクセス・メモリに読み出した後、ｗｅａｒ ｌｅｖｅｌｉｎｇと共にファイルの更新も行い、その結果を相変化メモリの当該ページに書き込むことになる。書き込み動作を完了した後、再び待機状態に戻る（１２０２）。
【００５３】
次に、このような動作シーケンスを用いた時の、書き込み動作の実行例を説明する。図１３は一例として、ファイルＺ０系に更新が集中した場合の状態遷移を示している。同図では、説明を簡単にするために、スペア領域は省略されている。第一列は、ホスト機器ＨＯＳＴから受信した書き込み命令の数を示している。第二列〜第五列は、第一セクタ〜第四セクタに記憶されている情報を示している。第一の書き込み命令によって書き込まれた情報は、第一セクタにはファイルＸ０、第二セクタにはファイルＹ０、第三セクタにはファイルＺ０、第四セクタにはメタデータＭＤである。
【００５４】
第六列〜第十四列はメタデータＭＤの内容を示している。これらは、図１に示したメタデータに対応している。すなわち、第六列は、当該ページに含まれる４つのセクタの上書き動作回数のうち、最小の値である。第一の書き込み命令を実行した時点では、０回である。第七列〜第十列は各セクタの上書きカウンタの値である。第一の書き込み命令を実行した時点では、０回である。第十一列〜第十四列は、各セクタに記憶されている情報の属性に対応する識別子である。識別子は１０進数で記載されており、ファイルＸ０は０、ファイルＹ０は１、ファイルＺ０は２、メタデータＭＤは３である。この識別子は、ホスト機器ＨＯＳＴから入力される論理アドレスの上位部分をページアドレス、下位部分をセクタアドレスとして、このセクタアドレスを表すものとなる。
【００５５】
さて、このような初期状態（ここでは、書き込み命令の受信回数が１の状態）から、ファイルＺ０の更新を連続して行う。２回目の書き込み命令によって、第三セクタのファイルがＺ１に更新される。これに伴い、第四セクタに記憶されているメタデータも更新される。すなわち、第三及び第四の上書きカウンタの値が１に更新される。同様の動作が、３回目及び４回目の書き込み命令でも繰り返される。
【００５６】
次に５回目の書き込み命令を受信すると、上書きカウンタの確認において（図１１の手順１２３１）、第一及び第二上書きカウンタの値が０で、第三及び第四上書きカウンタの値が３であるので、前述の条件１及び条件２を満たす。すなわち、上書きカウンタの最大値と最小値の差が３であり（条件１）、メタデータを記憶するセクタ（ここでは第四セクタ）の上書き動作回数が上位２番以内にある（条件２）。したがって、ｗｅａｒ  ｌｅｖｅｌｉｎｇ（１２３０）が行われる。具体的には、上書き頻度の高い第四セクタに記憶されているメタデータＭＤが、上書き頻度の低い第一セクタに記憶されているファイルＸ０と交換される。同様に、上書き頻度の高い第三セクタに記憶されているファイルＺ３が、上書き頻度の低い第二セクタに記憶されているファイルＹ０と交換される。この交換作業に伴って、各セクタで上書き動作が行われるので、メタデータＭＤにおける上書きカウンタの各々は、１増加される。同時に、最小上書き動作回数も１増加される。また、第一セクタ識別子はメタデータを示す３（１０進数）、第二セクタ識別子はファイルＺ０系を示す２（１０進数）、第三セクタ識別子はファイルＹ０系を示す１（１０進数）、第四セクタ識別子はファイルＸ０系を示す０（１０進数）に更新される（１２３２）。そして、これらの結果が、相変化メモリに書き込まれる（１２３３）。
【００５７】
このようなｗｅａｒ  ｌｅｖｅｌｉｎｇを完了した後に、ファイルＺ３を記憶している第二セクタに新たなファイルＺ４が上書きされる。これに伴い、第一及び第二上書きカウンタが１増加され、さらに上書きカウンタの最小値も１増加される。そして、これらの結果が相変化メモリに書き込まれる（１２４２）。以降、６回目から１０回目の書き込み命令においても、Ｚ０系のファイルとメタデータが同様に更新される。
【００５８】
引き続き、１１回目の書き込み命令を受信すると、上書きカウンタの確認において（図１２の手順１２３１）、第一及び第二上書きカウンタの値が７で、第三及び第四上書きカウンタの値が４であるので、前述の条件１及び条件２を満たす。すなわち、上書きカウンタの最大値と最小値の差が３であり（条件１）、メタデータＭＤを記憶するセクタの上書き動作回数が上位２番以内にある（条件２）。したがって、ｗｅａｒ  ｌｅｖｅｌｉｎｇが行われる。具体的には、上書き頻度の高い第一セクタに記憶されているメタデータＭＤが、上書き頻度の低い第三セクタに記憶されているファイルＹ０と交換される。同様に、上書き頻度の高い第二セクタに記憶されているファイルＺ９が、上書き頻度の低い第四セクタに記憶されているファイルＸ０と交換される。この交換作業に伴って、各セクタで上書き動作が行われるので、メタデータにおける上書きカウンタの各々は、１増加される。同時に、最小上書き動作回数も１増加される。また、第一セクタ識別子はファイルＹ０系を示す１（１０進数）、第二セクタ識別子はファイルＸ０系を示す０（１０進数）、第三セクタ識別子はメタデータを示す３（１０進数）、第四セクタ識別子はファイルＺ０系を示す２（１０進数）に更新される（１２３２）。そして、これらの結果が、相変化メモリに書き込まれる（１２３３）。
【００５９】
このようなｗｅａｒ  ｌｅｖｅｌｉｎｇを完了した後に、ファイルＺ９を記憶している第四セクタに新たなファイルＺ１０が上書きされる。これに伴い、第三及び第四上書きカウンタが１増加され、さらに上書きカウンタの最小値も１増加される。そして、これらの結果が、相変化メモリに書き込まれる（１２４２）。以降、１２回目から１６回目の書き込み命令においても、Ｚ０系のファイルとメタデータが同様に更新される。
【００６０】
以上、本実施の形態１の半導体装置を用いることにより、例えば、次の五つの効果を得ることができる。
【００６１】
第一に、各セクタの上書き動作回数を、そのセクタが属するページのメタデータとして記憶することにより、コントローラブロックＣＴＬＲＢＬＫ内のランダム・アクセス・メモリまたは外付けランダム・アクセス・メモリに展開する管理テーブルの容量を抑制することが可能となる。よって、ランダム・アクセス・メモリ容量を抑制することが可能となり、相変化メモリモジュールの製造コストを低減することができる。
【００６２】
第二に、前述のメタデータにより、各ページにおけるセクタ間のｗｅａｒ  ｌｅｖｅｌｉｎｇを実現することが可能となる。図１２及び図１３に示したように、各セクタの上書き動作回数の差が所定の値（ここでは３）になった時点でｗｅａｒ  ｌｅｖｅｌｉｎｇを実行することにより、同一ページ内での各セクタ間の上書き動作回数差を抑制することが可能となる。すなわち、特定のセクタへの上書き動作の集中を回避することができる。
【００６３】
第三に、ユーザーが更新するファイルに加えて、メタデータもファイルと同様に記憶場所を変えることにより、常時更新されるメタデータを記憶するセクタでの上書き動作回数を抑制することが可能となる。よって、前記の第二の効果と合わせて、各セクタで均等に上書き動作を行うことが可能となり、相変化メモリの使用効率を向上させることができる。
【００６４】
第四に、最小上書き動作回数テーブルを用いたページ間でのｗｅａｒ ｌｅｖｅｌｉｎｇと、メタデータを用いたページ内でのセクタ間のｗｅａｒ ｌｅｖｅｌｉｎｇと組み合わせた階層的なｗｅａｒ ｌｅｖｅｌｉｎｇによって、従来のフラッシュメモリで広く行われているブロック単位でのｗｅａｒ ｌｅｖｅｌｉｎｇよりも木目細かなｗｅａｒ ｌｅｖｅｌｉｎｇを実現することが可能となる。このようなｗｅａｒ ｌｅｖｅｌｉｎｇでは、特に情報量の小さなファイル（例えば一つのセクタで記憶できるような５１２バイト未満のファイル）の記憶を行う際に、必要な領域だけを入れ替える動作が可能になるので、フラッシュメモリで見られるように、データを記憶していない領域をも巻き込んだｗｅａｒ ｌｅｖｅｌｉｎｇを回避することができる。よって、不必要な書換え回数の消耗が抑制されるので、長寿命の相変化メモリが実現可能となる。
【００６５】
第五に、前述したような階層的なｗｅａｒ ｌｅｖｅｌｉｎｇを用いることで、階層構造を用いない場合と比べて木目細かなｗｅａｒ ｌｅｖｅｌｉｎｇを効率的に実現可能になる。すなわち、便宜上、仮に１２８ページ構成で各ページが４セクタ構成であったとすると、セクタ階層のみでｗｅａｒ ｌｅｖｅｌｉｎｇを実施した場合、５１２個のセクタを対象として書換え回数を比較することになるため処理量が増大する。一方、本実施の形態のような階層構造を用いると、１個のページ内の４個のセクタと、１２８個のページとを対象として書換え回数を比較すればよいため、処理量を低減できる。
【００６６】
なお、ここでは、ページとセクタからなる２階層でｗｅａｒ ｌｅｖｅｌｉｎｇの管理を行ったが、３階層以上で管理を行うように構成することも可能である。また、ここでは、ページ間でｗｅａｒ ｌｅｖｅｌｉｎｇを管理する際に最小上書き動作回数テーブルを用いたが、必ずしも最小上書き動作回数である必要はなく、例えば、１個のページに含まれる複数のセクタにおける書換え回数のいずれか１個を代表値として、それを当該ページの上書き動作回数として管理してもよい。
【００６７】
（実施の形態２）
本実施の形態２では、相変化メモリのページ構成の別の例を説明する。図１４は、本実施の形態２におけるページ構成例を示している。このページ構成の特徴は、相変化メモリの書き込み単位が細分化されたことに応じて、メイン領域ＭＦＤが２５６バイト単位に８つのＡ領域〜Ｈ領域（第一ユニット〜第八ユニット（１４００〜１４０７））に分割されている点にある。また、メイン領域ＭＦＤの構成に応じて、スペア領域ＳＦＤも８つのａ領域〜ｈ領域（第一ユニット〜第八ユニット（１４１０〜１４１７））領域に分割される点にある。ここで、Ａ領域〜Ｈ領域（ａ領域〜ｈ領域）のいずれか一つ（例えばＨ領域（ｈ領域））が、メタデータ用に割り当てられる。このメタデータは、図１を拡張して８つの領域を管理するような構造となっている。
【００６８】
このようなページ構成を用いることにより、情報量の小さなファイルを数多く記憶することが可能となる。また、実施の形態１よりも、木目細かなｗｅａｒ ｌｅｖｅｌｉｎｇを行うことが可能となる。これらの効果により、相変化メモリの使用効率をさらに向上させることができる。
【００６９】
なお、ページ構成は、図１４の形態に限定されることなく、種々の変形が可能である。例えば図１５に示すように、図１１と同様に書き込み単位毎にメイン領域とスペア領域を隣接配置することも可能である。また、メイン領域ＭＦＤの分割数は、８に限定されること無く、種々の変形が可能である。例えば、１２８バイト単位に１６分割することも可能であり、これによって、さらに木目細かなｗｅａｒ ｌｅｖｅｌｉｎｇを行うことも可能となる。さらに、スペア領域のビット数は１２８バイトに限定されることなく、種々の変形が可能である。例えば、誤り訂正符号の冗長ビット数に応じて、書き込み単位毎に一定量のスペア領域を確保しなければならない時は、ａ領域〜ｈ領域の夫々を実施の形態１と同様に３２バイトとし、合計で２５６バイトのスペア領域とすることも可能である。このような構成により、相変化メモリの動作信頼性を向上させることができる。
【００７０】
（実施の形態３）
本実施の形態３では、メタデータの配置及び構成の別の例を説明する。図１６は、本実施の形態３におけるメタデータの配置を示している。この配置の特徴は、二つのページ毎にメタデータを配置する点にある。同図では、ページｋとページ（ｋ＋１）に共通なメタデータが、ページ（ｋ＋１）のＤ（ｋ＋１）領域（１６０７）に記憶される例が示されている。ページｋのＡ領域〜Ｄ領域（１６００〜１６０３）とページ（ｋ＋１）のＡ領域〜Ｃ領域（１６０４〜１６０６）には、ファイルＴ０〜Ｚ０が順に記憶されている。なお、１６１０〜１６１７は、メイン領域が分割された領域１６００〜１６０７に対応するスペア領域である。このような配置に応じて、メタデータには二つのページに含まれる八つのセクタ情報が記憶される。すなわち、図１７に示すように、最小上書き動作回数１７００の他に、八つのセクタに関する上書き動作回数１７１０〜１７１７とファイル識別子１７２０〜１７２７が記憶される。
【００７１】
このようなメタデータの配置及び構成により、各セクタにおける上書き動作回数の増加を抑制することができる。あるいは、情報量が５１２バイトよりも大きなファイルを記憶する場合でも、効率良いｗｅａｒ ｌｅｖｅｌｉｎｇを実現することが可能となる。例えば５１２バイト以上１０２４バイト未満のファイルを記憶する場合であれば、二つのページに三つのファイルを記憶することができるので、実施の形態１と同様の効果を得ることができる。
【００７２】
（実施の形態４）
前述した実施の形態１において、メモリセルの上書き動作回数の上限が１０万回の場合、メタデータの上書きカウンタは、セクタ毎に１７ビット必要であった。例えば、従来のＮＡＮＤ型フラッシュメモリのように、管理単位がブロック単位のように大きい場合には、このようなビット数は特に問題とならない。しかしながら、管理単位が、セクタ単位や更に細分化された単位（例えば図１４のように細分化された書き込み単位）になってくると、上書きカウンタに要するビット数、ひいてはメタデータの情報量が倍増してしまう。そこで、本実施の形態４では、上書きカウンタのビット数を削減した場合のｗｅａｒ ｌｅｖｅｌｉｎｇの例を説明する。図１８は、その動作シーケンスを示すフローチャートである。この特徴は、ｗｅａｒ ｌｅｖｅｌｉｎｇ（１８３０）の前に、上書きカウンタの減算（１８５０）を行う点にある。同図に示したフローチャートでは、図１２の手順を踏襲しているものについては、図１２と同じ手順番号が記載されている。よって、以下では、図１２との相違点に焦点を当てて説明する。
【００７３】
本実施の形態４では、上書きカウンタのビット数を一例として４ビットとする。４ビットのカウンタは、上書き動作を１５回までしか記録することができない。よって、ｗｅａｒ ｌｅｖｅｌｉｎｇ（１８３０）の前に、上書きカウンタのオーバーフローを回避するための減算（１８５０）を行う。まず、書き込み命令で指定されたセクタが所属するページを読み出す（１２２０）。次に、メタデータ内のカウンタが１５以上になっているか否かを確認する。１５未満であれば、ｗｅａｒ ｌｅｖｅｌｉｎｇ（１８３０）に進む。１５以上の場合は、カウンタの減算を行う。すなわち、４つのセクタのカウンタのうち最小値を選び出し、図１に示した最小上書き動作回数（１００）に加える（１８５２）。次に、各カウンタから、選び出した最小値を引き、メタデータを更新する（１８５３）。
【００７４】
続いて行うｗｅａｒ ｌｅｖｅｌｉｎｇ（１８３０）では、ファイルの交換と共に、ファイルの交換を行ったセクタのカウンタの値を１増加する（１８３２）。この手順１８３２の際には、図１２の手順１２３２の場合と異なり、最小上書き動作回数（１００）の更新は行わない。また、その後に行われる手順１８４１の際にも、図１２の手順１２４１の場合と異なり、最小上書き動作回数（１００）の更新は行わない。
【００７５】
図１９は、図１８に示した動作シーケンスに基づいた動作例を示している。同図では、図１３と同様にファイルＺ０系に更新が集中した場合の状態遷移を示している。１番目〜１６番目の書き込み命令を処理した結果は、第六列の最小上書き動作回数の値が０（ゼロ）である以外は、図１３と同じである。１７番目〜２２番目の書き込み命令についても、同様のｗｅａｒ ｌｅｖｅｌｉｎｇと書き込み動作が行われる。２３番目の書き込み命令では、第一及び第二セクタのカウンタの値が１５なので、カウンタの減算処理が行われる。すなわち、４つのカウンタのうち、最小値である１２を最小上書き動作回数に加算する。そして、４つのカウンタから１２を引く。この結果、第一及び第二セクタのカウンタは３、第三及び第四セクタのカウンタは０となる。
【００７６】
引き続き、ｗｅａｒ ｌｅｖｅｌｉｎｇを行う。カウンタ間の差が３以上であるので、上書き頻度が高い第一及び第二セクタに記憶されているメタデータＭＤ及びファイルＺ２１と、上書き頻度が低い第三及び第四セクタに記憶されているファイルＹ０及びＸ０を交換する。この結果、第一及び第二セクタのカウンタは４、第三及び第四セクタのカウンタは１となる。さらに、ファイルＺ２１をファイルＺ２２に更新することにより、第一及び第二セクタのカウンタは４、第三及び第四セクタのカウンタは２となる。
【００７７】
以上のカウンタ構成と動作シーケンスにより、４ビットカウンタの値を１５以下に抑制しながら、セクタ間の上書き動作回数の相対値を記録することが可能となる。また、最小上書きカウンタと併用することにより、小容量のメタデータでセクタ単位（またはそれよりも小さい書き込み単位）での上書き動作回数を監視しながら、ページ内でのｗｅａｒｌｅｖｅｌｉｎｇを実現することが可能となる。よって、本実施の形態４の半導体装置は、図１４や図１５に示したように、ページが多分割されて書き込み単位数が増えた場合に、特に好適である。
【００７８】
（実施の形態５）
本実施の形態５では、書き込み動作における別の動作シーケンスを説明する。図２０は、本実施の形態５による動作シーケンスを示すフローチャートである。同図では、前述の図１８と同一の手順については同図と同じ手順番号が記載されている。よって、以下では、前述のフローチャートとの相違点に焦点を当てて説明する。
【００７９】
まず、書き込み命令で指定されたセクタが所属するページを読み出す（１２２０）。次に、ファイルとメタデータの更新を行う（１８４１）。続いて、後続のｗｅａｒ ｌｅｖｅｌｉｎｇやファイル更新にて各カウンタの値がオーバーフローしないように、減算処理（１８５０）を行ってから、更新されたファイルとメタデータを相変化メモリに書き込む（１２４２）。この後、ｗｅａｒ ｌｅｖｅｌｉｎｇを行う（２０３０）。ここでも、後続のファイル更新にてカウンタの値がオーバーフローしないように、手順１８３２と手順１２３３との間に、減算処理（１８５０）を行う。
【００８０】
以上の動作シーケンスにより、書き込み命令を受信してから短時間で新しいファイルを相変化メモリに書き込むことが可能となる。よって、例えば予期せぬ電源遮断が発生した場合におけるデータ消滅の可能性を低減でき、信頼性の向上が図れる。
【００８１】
（実施の形態６）
本実施の形態６では、上書き動作回数管理方法の別の例を説明する。図２１は、本実施の形態６における相変化メモリの上書き動作回数テーブルの例を示している。同図の特徴は、図１に示したメタデータを廃止し、図９に示した最小上書き動作回数テーブル９１に加えて、セクタ毎の上書き動作回数テーブル２１２が併用される点にある。これらの上書き動作回数テーブルは、図７に示した相変化メモリモジュールＰＣＭＭＤＬの電源が遮断されている場合、他の管理テーブルと共に図８に示した相変化メモリのベンダ領域ＶＦＤに記憶される。一方、相変化メモリモジュールＰＣＭＭＤＬが起動中は、相変化メモリＰＣＭから読み出され、図７に示したランダム・アクセス・メモリＲＡＭ０または、外付けのランダム・アクセス・メモリＲＡＭ１に一時的に記憶される。そして、実施の形態１で述べたように、上書き動作回数の上限に達したページの置換や、ページ内でｗｅａｒ ｌｅｖｅｌｉｎｇを実施する際の参照データとして扱われる。
【００８２】
図２２は、図２１に示した上書き動作回数テーブル２１２を用いた動作シーケンスのフローチャートの例を示している。図１２との相違点は、書き込み命令で指定されたセクタが所属するページから読み出した情報は、全てファイルである点にある（２２２０）。また、ｗｅａｒ ｌｅｖｅｌｉｎｇ（２２３０）においては、上書き動作の頻度が高いファイルと上書き動作の頻度が低いファイルとの交換のみを行い（２２３１）、その結果のみを相変化メモリに書き込む（２２３２）点にある。この時、更新される上書き動作回数は、前述のランダム・アクセス・メモリに書き込まれる。また、手順２２３１の際には、上書き動作回数テーブル２１２において、書き込み対象となっているページに属するセクタ分のデータ（例えばページ０の場合セクタ番号０Ａ〜０Ｄ）が参照される。この後、ファイルを更新し（２２４１）、新たなファイルを相変化メモリに書き込むと共に、このファイル更新に伴いランダム・アクセス・メモリ上の上書き動作回数も更新する（２２４２）。
【００８３】
以上のような上書きテーブルの管理方法と動作シーケンスによって、次の三つの効果が得られる。第一に、実施の形態１でも述べたように、ページ毎の最小上書き動作回数とセクタ毎の最小上書き動作回数を階層的に管理することにより、ページ単位あるいはセクタ単位の木目細かなｗｅａｒ ｌｅｖｅｌｉｎｇを実現することが可能となる。また、これを効率的に実現することが可能となる。第二に、上書き動作回数をベンダ領域ＶＦＤに一括保存することにより、ユーザー領域ＵＦＤから図１に示したようなメタデータを除外することができて、より多くのファイルを記憶することが可能となる。ただし、その分、ランダム・アクセス・メモリの容量を確保する必要がある。第三に、上書き動作回数を他の管理テーブルと共にシステム起動時に読み出しておくことにより、書き込み命令を受信時に相変化メモリから読み出す情報量を削減することが可能となる。よって、書き込み動作を短時間で行うことができる。
【００８４】
なお、これまでの説明では、ページ毎の最小上書き動作回数テーブル９１とセクタ毎の上書き動作回数テーブル２１２の二つをベンダ領域ＶＦＤに一括保存することを説明してきたが、これらの管理テーブルの保存方法はこの限りではなく、種々の変形が可能である。例えば、電源遮断時に相変化メモリのベンダ領域ＶＦＤに保存しておく情報を、セクタ毎の上書き動作回数テーブル２１２のみとすることも可能である。この場合、相変化メモリから読み出したセクタ毎の上書き動作回数テーブル２１２をコントローラブロックＣＴＬＲＢＬＫが解析して、ページ毎の最小上書き動作回数テーブル９１を生成すれば良い。このような記憶方法によって、ベンダ領域ＶＦＤに記憶する情報量を削減できる。削減した分を他の管理テーブルに活用することにより、相変化メモリの機能を向上させることができる。
【００８５】
（実施の形態７）
本実施の形態７では、上書き動作回数管理方法のさらに別の例を説明する。図２３は、本実施の形態７における相変化メモリの上書き動作回数テーブルの例を示している。同図の特徴は、図９に示した最小上書き動作回数テーブル９１に加えて、４ビット幅のセクタ上書き動作回数テーブル２３２が併用される点にある。これらの上書き動作回数テーブルは、図７に示した相変化メモリモジュールＰＣＭＭＤＬの電源が遮断されている場合、他の管理テーブルと共に図８に示した相変化メモリのベンダ領域ＶＦＤに記憶される。一方、相変化メモリモジュールＰＣＭＭＤＬが起動中は、相変化メモリＰＣＭから読み出され、図７に示したランダム・アクセス・メモリＲＡＭ０または、外付けのランダム・アクセス・メモリＲＡＭ１に一時的に記憶される。そして、実施の形態１で述べたように、上書き動作回数の上限に達したページの置換や、ページ階層におけるｗｅａｒ ｌｅｖｅｌｉｎｇを実施する際の参照データとして扱われる。
【００８６】
図２４は、図２３に示した上書き動作回数テーブルを用いた動作シーケンスのフローチャートの一例を示している。図２２との相違点は、ｗｅａｒ ｌｅｖｅｌｉｎｇ（２２３０）の前に、上書き動作回数カウンタの減算処理（２４５０）を実行する点にある。これは、図１８で説明したように、上書き動作回数テーブル２３２の構成要素である４ビット・カウンタのオーバーフローを防ぐための処理である。上書き動作回数テーブル２３２にて、選択されたページに対応するセクタの上書き動作回数を確認し（２４５１）、差が１５以上であったら最小上書き動作回数テーブル９１への加算（２４５２）と上書き動作回数テーブル２３２での減算処理（２４５３）を行う。これらの処理は、上書き動作回数テーブルが一時記憶されているランダム・アクセス・メモリ上で行われる。
【００８７】
以上のような上書きテーブルの管理方法と動作シーケンスによって、上書きテーブルの情報量を削減することが可能となる。よって、削減した分を他の管理テーブルに活用することにより、相変化メモリの機能を向上させることができる。また、相変化メモリモジュール内のランダム・アクセス・メモリ容量を低減することが可能となり、システムのコストを削減することができる。
【００８８】
（実施の形態８）
本実施の形態８では、書き込み動作における別の動作シーケンスを説明する。図２５は、本実施の形態８による動作シーケンスの一例を示すフローチャートである。同図では、前述の図２４と同一の手順については同図と同じ手順番号が記載されている。よって、以下では、前述のフローチャートとの相違点に焦点を当てて説明する。
【００８９】
まず、書き込み命令で指定されたセクタが所属するページを読み出す（２２２０）。次に、ファイルの更新を行う（２２４１）。続いて、後続のｗｅａｒ ｌｅｖｅｌｉｎｇやファイル更新にて各カウンタの値がオーバーフローしないように、図２４と同様の減算処理（２４５０）を行ってから、更新されたファイルを相変化メモリに書き込む（２２４２）。この後、ｗｅａｒ ｌｅｖｅｌｉｎｇを行う（２５３０）。ここでも、後続のファイル更新にてカウンタの値がオーバーフローしないように、手順２２３１と手順２２３２との間に、減算処理（２４５０）を行う。
【００９０】
以上の動作シーケンスにより、書き込み命令を受信してから短時間で新しいファイルを相変化メモリに書き込むことが可能となる。よって、例えば予期せぬ電源遮断が発生した場合におけるデータ消滅の可能性を低減できる。
【００９１】
（実施の形態９）
本実施の形態９では、相変化メモリモジュールの別の構成例を説明する。図２６は、本実施の形態９による相変化メモリモジュールＰＣＭＭＤＬ１の構成例を示している。この構成の特徴は、図７に示したホスト機器ＨＯＳＴとコントローラブロックＣＴＬＢＬＫが同一チップのコントローラＣＴＬＲに集積化された点にある。
【００９２】
コントローラＣＴＬＲは、より具体的にはマイクロ・プロセッサ・ユニットＭＰＵ１、内蔵ランダム・アクセス・メモリＲＡＭ２、内蔵読出し専用メモリ（リード・オンリー・メモリ）ＲＯＭ１、内蔵相変化メモリインタフェイスＰＣＭＩＦ１、内蔵ホスト機器インタフェイスＨＯＳＴＩＦ１に加えて、特定用途の集積回路ＳＰＩＣとで構成される。この特定用途の集積回路ＳＰＩＣの数は一つに限定されず、用途に応じて機能の異なる回路を複数個搭載しても良い。このような構成により、デバイス点数を削減することが可能となり、相変化メモリＰＣＭを用いたシステムのコストを抑制することができる。また、コントローラＣＴＬＲ、相変化メモリＰＣＭ、外付けランダム・アクセス・メモリＲＡＭ１を一つのパッケージに封入すれば、より実装面積を削減することが可能となり、よりシステムのコストを抑制することができる。
【００９３】
（実施の形態１０）
本実施の形態１０では、実施の形態１〜実施の形態９で説明してきた相変化メモリを用いた応用機器の例を説明する。図２７は、本実施の形態１０による携帯型音楽再生機器の構成例を示している。この機器は、マイクロ・プロセッサ・ユニットＭＰＵ、音声コーデックＡＣＤ、読出し専用メモリ（Ｒｅａｄ ｏｎｌｙ ｍｅｍｏｒｙ）ＲＯＭ、ダイナミック・ランダム・アクセス・メモリＤＲＡＭ、コントローラＣＴＲＬ、相変化メモリＰＣＭ、液晶パネルＬＣＰＮＬ、ドライバ集積回路ＤＲＶＩＣ、タッチ・センサＴＣＨＳＮＳＲ、ＤＣ−ＤＣコンバータＤＣＤＣＣ、電源制御用集積回路ＶＣＴＬ、リチウム・イオン二次電池ＢＴＬＹ、ユニバーサル・シリアル・バス端子ＵＳＢ、ヘッドホン端子ＨＤＰＨＮで構成される。このような構成において、実施の形態１〜実施の形態９で説明してきた相変化メモリを用いることにより、メモリ使用効率を向上させることが可能となる。
【００９４】
（実施の形態１１）
本実施の形態１１では、実施の形態１〜実施の形態８で説明してきた相変化メモリモジュールを一つのチップに集積化した場合の相変化メモリの構成例を説明する。図２８は、本実施の形態１１による相変化メモリＰＣＭ１の構成例を示している。このチップは、相変化メモリアレイＰＣＭＡＲＹ、内蔵ランダム・アクセス・メモリＲＡＭ３、レジスタＲＥＧ、内蔵ホスト機器インタフェイスＨＯＳＴＩＦ２、ステートマシーンＳＭ、誤り訂正＆ｗｅａｒｌｅｖｅｌｉｎｇ論理回路ＥＷＬ、マイクロ・プロセッサ・ユニットＭＰＵ２で構成される。ＰＣＭＡＲＹ、ＳＭ、ＥＷＬ、ＭＰＵ２、ＲＡＭ３、ＲＥＧの各々は、入出力線群ＩＯＢＵＳで接続される。なお、ＭＰＵ２は、データ信号群ＤＴＢＵＳ及びコマンド信号群ＣＭＤＢＵＳにも接続されており、外部機器との間で記憶情報やコマンドの授受も行う。
【００９５】
相変化メモリアレイＰＣＭＡＲＹは、図８に示した構成と同様にユーザー領域ＵＦＤとベンダ領域ＶＦＤとで構成される。このうち、ベンダ領域ＶＦＤには、既に図８で説明した管理テーブルの他に、前述の実施の形態で述べたｗｅａｒ ｌｅｖｅｌｉｎｇ処理のうち、主にｗｅａｒ  ｌｅｖｅｌｉｎｇの実施の判断を行う実行プログラムが記憶されている。内蔵ランダム・アクセス・メモリＲＡＭ３は、例えばスタティック・ランダム・アクセス・メモリである。この内蔵ランダム・アクセス・メモリＲＡＭ３には、相変化メモリアレイＰＣＭＡＲＹから読出した記憶情報や、相変化メモリアレイＰＣＭＡＲＹへ新たに書き込む情報が、一時的に保持される。レジスタＲＥＧは、アドレスやコマンドなどを一時記憶する。内蔵ランダム・アクセス・メモリＲＡＭ３は、データ信号群ＤＴＢＵＳから内蔵ホスト機器インタフェイスＨＯＳＴＩＦ２を介して外部ホスト機器との間で記憶情報の授受を行う。レジスタＲＥＧは、コマンド信号群ＣＭＤＢＵＳから内蔵ホスト機器インタフェイスＨＯＳＴＩＦ２を介して外部ホスト機器との間でアドレスやコマンドなどの授受を行う。
【００９６】
ステートマシーンＳＭは、外部ホスト機器から受信したコマンドに従い、相変化メモリＰＣＭ１の動作を調停する。また、誤り訂正＆ｗｅａｒｌｅｖｅｌｉｎｇ論理回路ＥＷＬは、誤り訂正処理の加えて、ｗｅａｒ ｌｅｖｅｌｉｎｇ処理のうちの主に入れ替え処理を専門に行う。マイクロ・プロセッサ・ユニットＭＰＵ２は主に、ベンダ領域ＶＦＤに格納された前述の実行プログラムを実行し、適宜ＥＷＬを用いながらｗｅａｒ ｌｅｖｅｌｉｎｇを行う。
【００９７】
このような構成を用いることで、チップ点数を削減でき、前述のｗｅａｒ ｌｅｖｅｌｉｎｇを適用した高信頼な大容量相変化メモリＰＣＭ１を用いたシステムを安価に実現することができる。また、誤り訂正処理やｗｅａｒ ｌｅｖｅｌｉｎｇ処理を同一チップ内で実行することにより、チップ外部のデバイスとの読み書き動作を省略することが可能となり、処理時間の短縮を実現することができる。
【００９８】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、複数の実施の形態を組み合わせることにより、各々の効果を一度に得ることができる。また、例えば、記憶素子にカルコゲナイド材料を用いた相変化メモリを前提に説明を行ったが、記憶素子の材料はカルコゲナイド材料に限定されず、消去動作が不要な記憶素子であれば、本実施の形態を適用することが可能である。例えば、ＭＲＡＭ（マグネトロレジスティブ・ランダム・アクセス・メモリ）に利用されているような磁気抵抗を用いたメモリにも適用可能である。さらに、フラッシュメモリであっても、プログラム動作と消去動作における選択セル数が同数であるようなアレイ構成とすれば、本実施の形態を適用することが可能である。この場合、これまでの実施の形態で述べた上書き動作が「消去動作＋プログラム動作」に置き換わることになる。
【００９９】
また、本実施の形態の半導体装置は、一回のコマンド入力により書き込み動作が行われるメモリ領域のビット数と、書き込み動作回数などの動作履歴や記憶情報の物理アドレスなどの属性が監視されるメモリ領域のビット数とを等しく構成することが可能な半導体記憶装置を含んだものに適用可能である。
【産業上の利用可能性】
【０１００】
本実施の形態による半導体装置は、相変化メモリのページを構成する複数のセクタへの上書き動作回数が、当該ページ毎にメタデータとして記憶され、上書き動作回数が所定の回数に達したら、記憶されているファイルの交換作業が行われる。一般に、相変化メモリの記憶素子は、上書き動作回数を重ねると記憶素子特性が劣化し、情報の記憶に支障をきたすことが知られている。しかし、本実施の形態によれば、上書き動作回数すなわち更新回数に応じて、ファイルの記憶場所が変更されることにより、上書き動作が特定のセクタに集中しないように制御されるので、記憶素子の劣化の進行を遅らせることが可能となり、メモリ使用効率を向上することができる。また、上書き動作回数をメタデータとして相変化メモリ内に記憶することにより、セクタ毎の上書き動作回数テーブルを新たに用意する必要がなくなるので、このようなテーブルを一時記憶するためのメモリが不要となる。よって、特に、相変化メモリを用いた大容量、高信頼度の半導体装置を、低コストで実現するのに適している。
【符号の説明】
【０１０１】
ＬＣＡ  ローカル・セル・アレイ
ＬＢＬ０〜ＬＢＬｎ  ローカル・ビット線
ＷＬ０〜ＷＬｎ  ワード線
Ｒ  抵抗性記憶素子
Ｄ  選択用ダイオード
ＭＣ００〜ＭＣｎｎ  メモリセル
ＰＣＭ，ＰＣＭ１  相変化メモリ
ＰＣＭＭＤＬ，ＰＣＭＭＤＬ１  相変化メモリモジュール
ＭＮＹＳ０〜ＭＮＹＳｎ，ＭＮＤ０〜ＭＮＤｎ  ＮＭＯＳトランジスタ
ＧＢＬ０  グローバル・ビット線
ＬＹ０〜ＬＹｎ  ローカル・カラム選択信号
ＬＢＬＤＩＳ  ローカル・ビット線放電信号
ＢＡ［１６：６］  ブロックアドレス信号
ＰＡ［５：０］  ページアドレス信号
ＣＡ［１１：０］  カラムアドレス信号
ＭＦＤ  メイン領域
ＳＦＤ  スペア領域
ＵＦＤ  ユーザー領域
ＶＦＤ  ベンダ領域
ＩＯ［７：０］  入出力線
ＣＴＬＲＢＬＫ  コントローラブロック
ＣＴＬＲ  コントローラ
ＭＰＵ，ＭＰＵ１，ＭＰＵ２  マイクロ・プロセッサ・ユニット
ＲＡＭ０  ランダム・アクセス・メモリ
ＲＡＭ１  外付けのランダム・アクセス・メモリ
ＲＡＭ２，ＲＡＭ３  内蔵ランダム・アクセス・メモリ
ＲＯＭ  読出し専用メモリ（リード・オンリー・メモリ）
ＲＯＭ１  内蔵読出し専用メモリ（リード・オンリー・メモリ）
ＰＣＭＩＦ  相変化メモリインタフェイス
ＨＯＳＴＩＦ  ホスト機器インタフェイス
ＨＯＳＴＩＦ１，ＨＯＳＴＩＦ２  内蔵ホスト機器インタフェイス
ＰＣＭＩＦ１  内蔵相変化メモリインタフェイス
ＰＣＭＳＩＧ  相変化メモリ信号群
ＲＡＭＳＩＧ  ＲＡＭ信号群
ＨＯＳＴＳＩＧ  ホスト機器信号群
ＳＰＩＣ  特定用途の集積回路
ＡＣＤ  音声コーデック
ＤＲＡＭ  ダイナミック・ランダム・アクセス・メモリ
ＬＣＰＮＬ  液晶パネル
ＤＲＶＩＣ  ドライバ集積回路
ＴＣＨＳＮＳＲ  タッチ・センサ
ＤＣＤＣＣ  ＤＣ−ＤＣコンバータ
ＶＣＴＬ  電源制御用集積回路
ＢＴＬＹ  リチウム・イオン二次電池
ＵＳＢ  ユニバーサル・シリアル・バス端子
ＨＤＰＨＮ  ヘッドホン端子
ＰＣＭＡＲＹ  相変化メモリアレイ
ＲＥＧ  レジスタ
ＳＭ  ステートマシーン
ＥＷＬ  誤り訂正＆ｗｅａｒｌｅｖｅｌｉｎｇ論理回路
ＩＯＢＵＳ  入出力線群
【図１】
0005603448.tif 000002
【図２】
0005603448.tif 000003
【図３】
0005603448.tif 000004
【図４】
0005603448.tif 000005
【図５】
0005603448.tif 000006
【図６】
0005603448.tif 000007
【図７】
0005603448.tif 000008
【図８】
0005603448.tif 000009
【図９】
0005603448.tif 000010
【図１０】
0005603448.tif 000011
【図１１】
0005603448.tif 000012
【図１２】
0005603448.tif 000013
【図１３】
0005603448.tif 000014
【図１４】
0005603448.tif 000015
【図１５】
0005603448.tif 000016
【図１６】
0005603448.tif 000017
【図１７】
0005603448.tif 000018
【図１８】
0005603448.tif 000019
【図１９】
0005603448.tif 000020
【図２０】
0005603448.tif 000021
【図２１】
0005603448.tif 000022
【図２２】
0005603448.tif 000023
【図２３】
0005603448.tif 000024
【図２４】
0005603448.tif 000025
【図２５】
0005603448.tif 000026
【図２６】
0005603448.tif 000027
【図２７】
0005603448.tif 000028
【図２８】
0005603448.tif 000029