(57)【特許請求の範囲】
【請求項１】
ｎ×ｍの行列状（ｎ及びｍは、共に２以上の自然数）に配置される複数のブロックを備え、前記複数のブロックの各ブロックが独立に書き込み、読み出し又は消去動作を行うことが可能なメモリセルアレイと、
前記複数のブロックのうちの第１のブロックに対して前記書き込み、読み出し又は消去動作を行う第１のサイクルを行い、
前記第１のサイクルを行うことによって上昇した前記第１のブロック及び前記第１のブロックの周りの温度が緩和する温度緩和時間が経過するまで、前記第１のブロックから一定距離の範囲内を選択禁止領域に設定し、前記複数のブロックのうちの前記選択禁止領域以外の領域を第２のブロックと設定して前記第２のブロックに対して前記書き込み、読み出し又は消去動作を行う第２のサイクルを行う制御部と、
を備える半導体記憶装置。
【請求項２】
前記第１のブロックの前記温度緩和時間は、前記第１のサイクルにおいて前記第１のブロックが前記書き込み、読み出し又は消去動作を行う動作時間に基づいて決定される請求項１に記載の半導体記憶装置。
【請求項３】
前記第１のブロックの前記温度緩和時間をtrelaxとし、前記第１のサイクルにおいて前記第１のブロックが前記書き込み、読み出し又は消去動作を行う動作時間をtsetとしたとき、trelax=K×tset、但し、kは、係数である、請求項２に記載の半導体記憶装置。
【請求項４】
前記第１のブロックの前記温度緩和時間は、前記第１のサイクルにおいて前記第１のブロックが行う動作の種類に基づき、予め作成された前記第１のブロックが行う動作と前記温度緩和時間との関係を示すテーブルを参照することにより決定される請求項１に記載の半導体記憶装置。
【請求項５】
前記一定距離は、前記第１のサイクルにおいて前記第１のブロックが行う動作の種類に基づき、予め作成された前記第１のブロックが行う動作と前記一定距離との関係を示すテーブルを参照することにより決定される請求項１に記載の半導体記憶装置。
【請求項６】
前記制御部は、前記第１のブロックの位置を示すブロック情報を記憶する記憶部を備え、前記ブロック情報は、前記第１のブロックの前記書き込み、読み出し又は消去動作の終了時点から前記温度緩和時間が経過した後に消去される請求項１に記載の半導体記憶装置。
【請求項７】
前記制御部は、前記ブロック情報を消去するか否かの判断を前記温度緩和時間よりも短い一定間隔で定期的に行う請求項６に記載の半導体記憶装置。
【請求項８】
前記制御部は、前記第１のブロックの中心点から前記一定距離の範囲内を前記選択禁止領域に設定し、前記選択禁止領域内に中心点があるブロックを選択禁止ブロックに設定し、前記第２のブロックを前記選択禁止ブロック以外のブロックから選択する請求項１に記載の半導体記憶装置。
【請求項９】
前記制御部は、前記選択禁止ブロックの位置を示す選択禁止ブロック情報を記憶する記憶部を備え、前記選択禁止ブロック情報は、前記第１のブロックの前記書き込み、読み出し又は消去動作の終了時点から前記温度緩和時間が経過した後に消去される請求項８に記載の半導体記憶装置。
【請求項１０】
前記制御部は、前記第２のブロックを選択するときに、前記複数のブロックの全てが前記選択禁止領域内にあるときは、一定期間の待機後に、再び、前記第２のブロックを選択する請求項１に記載の半導体記憶装置。
【請求項１１】
前記第１及び第２のブロックは、前記複数のブロックを選択するために予め作成された複数のパターンを含むテンプレートから選択される請求項１に記載の半導体記憶装置。
【請求項１２】
前記第１のブロックの前記温度緩和時間は、前記第１のブロックのパターン及び前記第１のサイクルにおいて前記第１のブロックが行う前記書き込み、読み出し又は消去動作の動作時間に基づき、予め作成された前記複数のパターンと前記動作時間と前記温度緩和時間との関係を示すテーブルを参照することにより決定される請求項１１に記載の半導体記憶装置。
【請求項１３】
前記一定距離は、前記第１のブロックのパターンに基づき、予め作成された前記複数のパターンと前記一定距離との関係を示すテーブルを参照することにより決定される請求項１１に記載の半導体記憶装置。
【請求項１４】
前記制御部は、前記第２のブロックを前記選択禁止領域以外の領域から選択する温度緩和動作と、前記第２のブロックを前記複数のブロックから任意に選択する通常動作とを切り替える機能を有し、前記メモリセルアレイを含むチップの温度が第１の閾値を超えたときに前記温度緩和動作を実行し、前記チップの温度が前記第１の閾値よりも低い第２の閾値を下回ったときに前記通常動作を実行する
請求項１に記載の半導体記憶装置。
【請求項１５】
前記チップの温度を検出する温度センサーをさらに具備し、
前記通常動作と前記温度緩和動作の切り替えは、前記温度センサーにより検出される前記チップの温度に基づいて判断される請求項１４に記載の半導体記憶装置。
【請求項１６】
前記複数のブロックの各々は、互いに交差するワード線及びビット線と、前記ワード線及び前記ビット線間に接続される抵抗変化素子とを備える請求項１に記載の半導体記憶装置。
【請求項１７】
前記制御部は、前記メモリセルアレイと同一チップ内に配置されるステートマシーンである請求項１に記載の半導体記憶装置。
【請求項１８】
前記制御部は、前記メモリセルアレイと異なるチップ内に配置されるコントローラである請求項１に記載の半導体記憶装置。
【請求項１９】
ｎ×ｍの行列状（ｎ及びｍは、共に２以上の自然数）に配置される複数のブロックを備え、前記複数のブロックの各ブロックが独立に書き込み、読み出し又は消去動作を行うことが可能なメモリセルアレイと、前記複数のブロックを制御する制御部と、を備える半導体記憶装置の制御方法であって、
前記制御部は、前記複数のブロックのうちの第１のブロックに対して前記書き込み、読み出し又は消去動作を行う第１のサイクルを行うステップと、
前記第１のサイクルを行うことによって上昇した前記第１のブロック及び前記第１のブロックの周りの温度が緩和する温度緩和時間が経過するまで、前記第１のブロックから一定距離の範囲内を選択禁止領域に設定し、前記複数のブロックのうちの前記選択禁止領域以外の領域を第２のブロックと設定して前記第２のブロックに対して前記書き込み、読み出し又は消去動作を行う第２のサイクルを行うステップと、
を備える半導体記憶装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、半導体記憶装置及びその制御方法に関する。
【背景技術】
【０００２】
半導体記憶装置（チップ）の熱対策は、内部回路を正確に動作させるために必要不可欠な技術である。特に、近年では、ReRAM (Resistive Random Access Memory)、MRAM (Magnetic Random Access Memory)、BiCS (Bit Cost Scalable)-NANDなどの３次元構造を有する積層型メモリ内での発熱による動作不良及び素子破壊が問題となっている。
【０００３】
しかし、従来の熱対策は、例えば、設計時に、半導体記憶装置の総消費電力から半導体記憶装置内で発生し得る最大温度を見積もり、その最大温度が許容値を超えないように回路設計を行うというものである。この方法では、半導体記憶装置の実動作時の局所的な温度分布を考慮した回路設計が行えないため、半導体記憶装置の熱対策としては不十分である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−４０１１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
実施形態は、半導体記憶装置の実動作時の局所的な温度分布を考慮した熱対策技術を提案する。
【課題を解決するための手段】
【０００６】
実施形態によれば、半導体記憶装置は、ｎ×ｍの行列状（ｎ及びｍは、共に２以上の自然数）に配置される複数のブロックを備え、前記複数のブロックの各ブロックが独立に書き込み、読み出し又は消去動作を行うことが可能なメモリセルアレイと、前記複数のブロックのうちの第１のブロックに対して前記書き込み、読み出し又は消去動作を行う第１のサイクルを行い、前記第１のサイクルを行うことによって上昇した前記第１のブロック及び前記第１のブロックの周りの温度が緩和する温度緩和時間が経過するまで、前記第１のブロックから一定距離の範囲内を選択禁止領域に設定し、前記複数のブロックのうちの前記選択禁止領域以外の領域を第２のブロックと設定して前記第２のブロックに対して前記書き込み、読み出し又は消去動作を行う第２のサイクルを行う制御部と、を備える。
【図面の簡単な説明】
【０００７】
【図１】基本構成を示す図。
【図２】温度緩和時間に関するテーブルを示す図。
【図３】温度緩和時間の求め方を示す図。
【図４】制御部の動作を示すフローチャート。
【図５】特定動作の種類を特定するフラグを示す図。
【図６】選択ブロックのパターン例を示す図。
【図７】シミュレーションによるチップ温度分布を示す図。
【図８】最小距離Rminに関するテーブルを示す図。
【図９】選択ブロックの位置に関する選択ブロック情報を示す図。
【図１０】選択禁止領域を示す図。
【図１１】選択禁止領域を示す図。
【図１２】制御部の動作を示すフローチャート。
【図１３】制御部の動作を示すフローチャート。
【図１４】適用例としての不揮発性半導体メモリを示す図。
【図１５】メモリセルアレイの例を示す図。
【図１６】メモリセルアレイの例を示す図。
【図１７】メモリセルの例を示す図。
【図１８】メモリセルアレイの等価回路を示す図。
【図１９】選択ブロックの電圧関係を示す図。
【図２０】特定動作の１サイクルを示す図。
【図２１】制御部をステートマシーンとするときの書き込み動作を示す図。
【図２２】制御部をステートマシーンとするときの消去／読み出し動作を示す図。
【図２３】制御部をコントローラとするときの書き込み動作を示す図。
【図２４】制御部をコントローラとするときの消去／読み出し動作を示す図。
【図２５】１サイクル選択ブロック数決定部の詳細を示す図。
【図２６】１サイクル選択ブロック数決定部の変形例を示す図。
【図２７】選択ブロックのテンプレートを示す図。
【図２８】最小距離Rminに関するテーブルを示す図。
【図２９】温度緩和時間trelaxに関するテーブルを示す図。
【図３０】選択禁止領域を示す図。
【図３１】温度センサーを有する不揮発性半導体メモリの例を示す図。
【図３２】温度センサーを有する不揮発性半導体メモリの例を示す図。
【図３３】温度センサーを有する不揮発性半導体メモリの例を示す図。
【図３４】通常動作と温度緩和動作の切り替え動作を示す図。
【図３５】通常動作と温度緩和動作の切り替え方法を示す図。
【発明を実施するための形態】
【０００８】
以下、図面を参照しながら実施形態を説明する。
【０００９】
図１は、半導体記憶装置の基本構成を示している。
【００１０】
メモリセルアレイ部１１は、ｎ×ｍの行列状に配置される複数のブロックを備える。但し、ｎ及びｍは、共に２以上の自然数である。各ブロックは、独立に、データの書き込み／消去／読み出し動作が可能である。また、各ブロックは、２次元構造のメモリセルアレイを備えていてもよいし、３次元構造のメモリセルアレイを備えていてもよい。
【００１１】
制御部１２は、メモリセルアレイ部１１に対するデータの書き込み／消去／読み出し動作を制御する。制御部１２は、書き込み／消去／読み出しのサイクル毎に、書き込み／消去／読み出しの対象となる選択ブロック（ブロックとも称する）、及び、その選択ブロックの温度緩和時間をそれぞれ記憶する記憶部１３を有する。
【００１２】
ここで、温度緩和時間とは、１つのブロックに対して特定動作をＸサイクル繰り返し行ったときに、その１つのブロックの温度の最大値が常に許容値以下となるための特定動作の終了時点から次の特定動作の開始時点までの冷却時間のことである。
【００１３】
但し、１つのブロックの温度は、１つのサイクルが終了した時点で最大値となり、この最大値は、許容値以下であるものとする。また、Ｘ及び許容値は、半導体記憶装置の仕様により決められる一定値であるものとする。
【００１４】
駆動部１４は、制御部１２の制御の下で、実際に、１つのサイクルにおいて、少なくとも１つの選択ブロックを選択し、その少なくとも１つの選択ブロック内のメモリセルに対して、書き込み／消去／読み出し動作を実行する。
【００１５】
尚、メモリセルアレイ部１１、制御部１２及び駆動部１４は、１チップ（１つの半導体記憶装置）内に混載されていてもよいし、異なるチップ内に別々に設けられていてもよい。
【００１６】
図２は、温度緩和時間に関するテーブルを示している。
【００１７】
温度緩和時間は、特定動作の種類（書き込み／消去／読み出し動作）で、それぞれ異なる値を有する。本例では、書き込み動作の温度緩和時間をtrelax-Wとし、消去動作の温度緩和時間をtrelax-Eとし、読み出し動作の温度緩和時間をtrelax-Rとする。
【００１８】
温度緩和時間trelax-W，trelax-E，trelax-Rは、特定動作を開始する前に、予め、記憶部１３内に記憶しておく。例えば、記憶部１３内に、ＲＯＭデータとして温度緩和時間trelax-W，trelax-E，trelax-Rを常に記憶しておいてもよいし、特定動作を開始する前に、記憶部１３内に、温度緩和時間trelax-W，trelax-E，trelax-Rを記憶させてもよい。
【００１９】
図３は、温度緩和時間の求め方の例を示している。
【００２０】
本例は、１つのブロックに対して特定動作を９サイクル繰り返し行った場合である。特定動作は、書き込み動作、消去動作又は読み出し動作である。
【００２１】
半導体記憶装置の温度上昇値の許容値tlimitは、４５℃である。１サイクル目の特定動作の開始時点S1の温度上昇値は、０℃であるが、２サイクル目以降の特定動作の開始時点S2, S3,…S9の温度上昇値は、前サイクルの蓄熱が存在するために０℃とはならない。このため、サイクル数が増えるに従い、１サイクル内での温度上昇値の最小値（開始時点Si）及び最大値（終了時点Ei）も次第に増加する。但し、iは、1〜9のうちの1つである。
【００２２】
そこで、特定動作の温度緩和時間trelaxを変化させ、特定動作を９サイクル連続して行った後においても、その特定動作を行っている１つのブロックの温度上昇値の最大値tmaxが、常に温度上昇値の許容値tlimit以下となるような温度緩和時間trelaxの最小値を求める。そして、この最小値を、特定動作の温度緩和時間trelaxとして、図１の記憶部１３内に記憶する。
【００２３】
尚、特定動作の開始時点から終了時点までの動作時間をtsetとし、特定動作の温度緩和時間をtrelaxとすると、両者の関係は、  
trelax = K×tset  …(1)  
となる。但し、Kは、係数である。
【００２４】
Kは、概ね１となるため、特定動作の動作時間tsetと同程度の温度緩和時間trelaxを設けることにより（例えば、tset=trelax=約10 msec）、特定動作を９サイクル連続して行った後においても、その特定動作を行っている１つのブロックの温度上昇値の最大値tmaxは、常に温度上昇値の許容値tlimit以下となる。
【００２５】
温度緩和時間trelaxは、例えば、半導体記憶装置のテスト時に、特定動作を実行することにより求めることができる。
【００２６】
また、例えば、trelax=tsetとし、特定動作を行う度に、tsetからtrelaxを求め、この値を図１の記憶部１３に記憶させてもよい。この場合、特定動作の動作時間tsetの変化に応じて適切な温度緩和時間trelaxを、その都度、求めることができるため、実動作時の温度管理の制度を向上させることができる。
【００２７】
尚、特定動作の動作時間tsetが変化する場合とは、後述するように、特定動作（書き込み／消去／読み出し動作）を、ブロックよりも小さい単位であるページで行うような場合である。この場合、特定動作の１サイクルの間隔は、選択ブロック内において選択される選択ページの数により変化する。
【００２８】
図４は、図１の制御部１２の動作を示している。
【００２９】
この動作の特徴は、半導体記憶装置の実動作時の局所的な温度分布を考慮して、特定動作の対象となる選択ブロックの数及び位置を決定することにより、その特定動作を複数サイクル繰り返し行っても、半導体記憶装置の温度の最大値が常に許容値以下となる熱対策技術にある。
【００３０】
まず、特定動作を判定する（ステップＳＴ１）。
【００３１】
特定動作の判定は、動作モードを示す制御信号（例えば、書き込み／消去／読み出しイネーブル信号など）により行うことができる。特定動作が判定されたら、例えば、図５に示すように、これから行う動作に対応するフラグを“Ｌ”から“Ｈ”にする。特定動作以外のフラグは、“Ｌ”のままである。
【００３２】
次に、最初（１サイクル目）に選択する選択ブロックの数及び位置を決定する（ステップＳＴ２）。
【００３３】
選択ブロックの数及び位置は、それら選択ブロック内で発生する熱によって注目ブロックの温度上昇値の最大値tmaxが許容値tlimitを超えないことを条件（温度条件）に決定される。ここで、注目ブロックとは、選択ブロックが１つのときは、そのブロック、選択ブロックが２以上であるときは、それら選択ブロックのうち、上述の温度条件を満たすか否かを判定する１つのブロックを意味する。
【００３４】
尚、１サイクル目の選択ブロックの数及び位置は、図１のｎ×ｍの行列状に配置される複数のブロックから任意に決定してもよいし、予め、いくつかのテンプレートを用意しておき、そのテンプレートのなかから選択してもよい。
【００３５】
例えば、選択ブロックの数及び位置を任意に決定する場合は、図６に示すように、まず、ブロックB1を選択する。そして、ブロックB1を注目ブロックとし、ブロックB1の温度上昇値の最大値tmaxが許容値tlimitを超えないことを条件に、さらに追加のブロックを選択する。
【００３６】
本例では、追加のブロックとして、ブロックB1から一定距離Rにある４つのブロックB2〜B5を選択する。この距離Rは、５つの選択ブロックB1〜B5内で発生する熱によって注目ブロックであるブロックB1の温度上昇値の最大値tmaxが許容値tlimitを超えない最小距離Rmin又はそれよりも大きい値に設定される。
【００３７】
この最小距離Rminは、図７に示すように、予めシミュレーションにより決定される。
【００３８】
図７は、図１のメモリセルアレイ部１１の面内温度分布を示している。同図において、点線で示す格子枠は、それぞれブロックを表している。
【００３９】
選択ブロックB1〜B5の温度上昇値は、正規分布関数で表すことができる。従って、注目ブロックであるブロックB1の温度上昇値ttotalは、式(1)に示すように、これら選択ブロックB1〜B5の正規分布の重ね合わせによって求めることが可能である。
【数１】
0005624573.tif 000002
【００４０】
但し、式(1)において、iは、ブロックの番号(1〜n)に相当し、nは5である。また、特定動作における各ブロックの総発熱量は同じであり、W1は、１つのブロックの総発熱量である。d1は、半導体記憶装置（チップ）の基板の厚さである。ΔXi及びΔYiは、図７に示す二次元座標において、注目ブロックとしてのブロックB1の中心点Ｏから残りの複数のブロックB2〜B5のうちの１つの中心点までの距離である。C0、C1、σ0x、σ0y、σ1x及びσ1yは、それぞれ、デバイス構造やチップ熱伝達率などによって定まる係数である。
【００４１】
式(1)から明らかなように、各選択ブロックB1〜B5の温度上昇値は、その選択ブロック内で発生するリーク電流による発熱を含む総発熱量に比例する。また、注目ブロックとしてのブロックB1の温度上昇値は、半導体記憶装置の構造、材料、パッケージなどに依存する。特に、半導体記憶装置の基板（例えば、Si基板）が十分に厚い場合、ブロックB1の温度上昇値は、基板の厚さに反比例する。
【００４２】
この式に基づき、ブロックB1から各ブロックB2〜B5までの距離がRであるとき温度分布を求め、ブロックB1の温度上昇値の最大値tmaxが許容値tlimitを超えるか否かを検証する。そして、ブロックB1の温度上昇値の最大値tmaxが許容値tlimitを超えない距離Rの最小値を最小距離Rminとする。
【００４３】
この最小距離Rminは、例えば、図８に示すように、特定動作の種類に応じて異なるため、特定動作毎に、この最小距離Rminを予め求めておき、これを、例えば、図１の制御部１２内の記憶部１３内に記憶させる。例えば、チップサイズを18 mm × 12 mmとし、基板の厚さを70 μmとし、パッケージの熱抵抗値を120 k/Wとし、特定動作における各ブロックの総発熱量を0.3 Wとし、許容値tlimitを45 ℃としたとき、最小距離Rminは、約2 mmとなる。但し、この値は、半導体記憶装置の仕様などに応じて修正される。
【００４４】
このようにして、注目ブロックとしての選択ブロックB1を決定した後、記憶部１３に記憶された最小距離Rminに基づいて、さらに追加のブロックB2〜B5を選択することにより、選択ブロックB1の温度上昇値の最大値tmaxが許容値tlimitを超えないことを条件に、例えば、５つの選択ブロックB1〜B5を選択することができる。
【００４５】
また、１サイクル目の選択ブロックの数及び位置を、予め用意された複数のテンプレートから選択するときは、そのテンプレートの全ては、最小距離Rminに基づき、注目ブロックの温度上昇値の最大値tmaxが許容値tlimitを超えないような選択ブロックの数及び位置に設定されている。
【００４６】
次に、選択ブロック情報の記録を行う（ステップＳＴ３）。
【００４７】
１サイクル目に選択された選択ブロックB1〜B2は、選択ブロック情報として、例えば、図１の制御部１２内の記憶部１３内に記憶させる。
【００４８】
選択ブロック情報は、例えば、図９に示すように、選択ブロックのブロックアドレスであり、これを記憶部１３内に記憶させる。本例では、１サイクル目に選択される選択ブロックは、B1〜B5であるため、これら選択ブロックB1〜B5のブロックアドレスがサイクル数＝１の欄に記憶される。
【００４９】
尚、選択ブロック情報の記録は、以下に説明する特定動作の実行中又は実行後に行ってもよい。
【００５０】
次に、特定動作を実行する（ステップＳＴ４）。  
特定動作は、選択ブロックB1〜B5内のメモリセルに対して並行に実行される。
【００５１】
次に、全てのデータについて特定動作を完了したか否かについて判定する（ステップＳＴ５）。
【００５２】
全てのデータについて特定動作を完了しているときは、図１の制御部１２内の記憶部１３内に記憶されている選択ブロック情報を消去（リセット）し、本動作を終了する（ステップＳＴ６）。
【００５３】
本例では、選択ブロック情報の消去を、全てのデータについて特定動作を完了していると判断された後に行っているが、温度緩和時間が経過したサイクルに関する選択ブロック情報は、温度緩和時間が経過した直後に消去してもよい。
【００５４】
全てのデータについて特定動作を完了していないときは、次のサイクル（２サイクル目）に選択する選択ブロックの数及び位置を決定する（ステップＳＴ２）。
【００５５】
２サイクル目以降においては、選択ブロックの数及び位置は、１サイクル目と同様に、それら選択ブロック内で発生する熱によって注目ブロックの温度上昇値の最大値tmaxが許容値tlimitを超えないことを条件に決定される。
【００５６】
また、２サイクル目以降においては、図１の制御部１２内の記憶部１３内に記憶された選択ブロック情報及び温度緩和時間により、選択可能なブロックが制限される。
【００５７】
例えば、２サイクル目の開始時点が、１サイクル目に選択された選択ブロックB1〜B5の温度緩和時間trelaxが経過する前であるときは、２サイクル目の選択ブロックの選択において選択禁止領域（選択禁止ブロック）が設定される。
【００５８】
選択禁止ブロックは、１サイクル目に選択された各選択ブロックB1〜B5の中心点から最小距離Rminよりも小さい円の範囲内に中心点があるブロックとする。
【００５９】
例えば、図１０に示すように、１サイクル目に選択された選択ブロックがB1〜B5であるときは、それら選択ブロックB1〜B5の中心点から最小距離Rminよりも小さい円（点線）の範囲内に中心点があるブロック（Ｘ印）を選択禁止ブロックとする。
【００６０】
これは、１サイクル目に選択された選択ブロックB1〜B5の温度緩和時間trelaxが経過する前に、それら選択ブロックB1〜B5の中心点から最小距離Rminよりも小さい円の範囲内に中心点があるブロックを選択すると、注目ブロックの温度上昇値の最大値tmaxが許容値tlimitを超えてしまう場合があるからである。
【００６１】
従って、本例では、例えば、２サイクル目においては、選択ブロックB1〜B5の中心点から最小距離Rmin以上に中心点がある６つのブロックB6〜B11を選択ブロックとして選択する。
【００６２】
次に、選択ブロック情報の記録を行う（ステップＳＴ３）。
【００６３】
選択ブロック情報は、例えば、図９に示すように、選択ブロックのブロックアドレスであり、これを記憶部１３内に記憶させる。本例では、２サイクル目に選択される選択ブロックは、B6〜B11であるため、これら選択ブロックB6〜B11のブロックアドレスがサイクル数＝２の欄に記憶される。
【００６４】
次に、特定動作を実行する（ステップＳＴ４）。  
特定動作は、選択ブロックB6〜B11内のメモリセルに対して並行に実行される。
【００６５】
次に、全てのデータについて特定動作を完了したか否かについて判定する（ステップＳＴ５）。
【００６６】
全てのデータについて特定動作を完了しているときは、図１の制御部１２内の記憶部１３内に記憶されている選択ブロック情報を消去（リセット）し、本動作を終了する（ステップＳＴ６）。
【００６７】
全てのデータについて特定動作を完了していないときは、次のサイクル（３サイクル目）に選択する選択ブロックの数及び位置を決定する（ステップＳＴ２）。
【００６８】
３サイクル目においても、２サイクル目と同様に、選択ブロック情報及び温度緩和時間により、選択可能なブロックが制限される。
【００６９】
例えば、３サイクル目の開始時点が、２サイクル目に選択された選択ブロックB6〜B11の温度緩和時間trelaxが経過する前であるときは、３サイクル目の選択ブロックの選択において選択禁止領域（選択禁止ブロック）が設定される。
【００７０】
また、３サイクル目の開始時点が、１サイクル目に選択された選択ブロックB1〜B5の温度緩和時間trelaxが経過する前でもあるときは、３サイクル目においても２サイクル目と同じ選択禁止領域（選択禁止ブロック）が設定される。
【００７１】
本例では、３サイクル目の開始時点が、１サイクル目に選択された選択ブロックB1〜B5の温度緩和時間trelaxが経過した後である場合について説明する。
【００７２】
この場合、選択禁止ブロックは、２サイクル目に選択された各選択ブロックB6〜B11の中心点から最小距離Rminよりも小さい円の範囲内に中心点があるブロックとする。
【００７３】
例えば、図１１に示すように、２サイクル目に選択された選択ブロックがB6〜B11であるときは、それら選択ブロックB6〜B11の中心点から最小距離Rminよりも小さい円（点線）の範囲内に中心点があるブロック（Ｘ印）を選択禁止ブロックとする。
【００７４】
従って、本例では、例えば、３サイクル目においては、選択ブロックB6〜B11の中心点から最小距離Rmin以上に中心点がある４つのブロックB12〜B15を選択ブロックとして選択する。
【００７５】
次に、選択ブロック情報の記録を行う（ステップＳＴ３）。
【００７６】
選択ブロック情報は、例えば、図９に示すように、選択ブロックのブロックアドレスであり、これを記憶部１３内に記憶させる。本例では、３サイクル目に選択される選択ブロックは、B12〜B15であるため、これら選択ブロックB12〜B15のブロックアドレスがサイクル数＝３の欄に記憶される。
【００７７】
次に、特定動作を実行する（ステップＳＴ４）。  
特定動作は、選択ブロックB12〜B15内のメモリセルに対して並行に実行される。
【００７８】
以上のように、全てのデータについて特定動作を完了するまで、半導体記憶装置の実動作時の局所的な温度分布を考慮して、特定動作の対象となる選択ブロックの数及び位置を決定することにより、その特定動作を複数サイクル繰り返し行っても、半導体記憶装置の温度上昇値の最大値が常に許容値以下となる熱対策技術を実現できる。
【００７９】
尚、上述の動作において、１サイクルの間隔（例えば、１回目のサイクルの開始時点から２回目のサイクルの開始時点までの時間）を温度緩和時間trelax以上にすることで、上述のような２サイクル目以降における選択可能なブロックの制限を解除することも可能である。しかし、この場合、１サイクルの間隔を延ばすことにより、特定動作を完了させるまでの時間が長くなり、半導体記憶装置の特性を劣化させる。
【００８０】
本例に示すように、１サイクルの間隔を温度緩和時間trelaxよりも短くすることで、特定動作（書き込み／消去／読み出し動作）の高速化を図ることができると共に、上述の条件に従い、２サイクル目以降の選択ブロックを制限することで、半導体記憶装置の温度上昇値が許容値tlimitを超えることによる信頼性の低下を防ぐことができる。
【００８１】
図１２は、図４の動作の第１の変形例を示している。
【００８２】
この変形例は、温度緩和時間が経過したサイクルに関する選択ブロック情報を、温度緩和時間が経過した直後に消去する点に特徴を有する。
【００８３】
例えば、１つのサイクルが終了し、全てのデータについて特定動作を完了していないと判断された後に、温度緩和時間が経過したサイクルに関する選択ブロック情報を消去する（ステップＳＴ５及びＳＴ７）。
【００８４】
このような構成によれば、温度緩和時間が経過したサイクルに関する選択ブロック情報を消去することにより、選択ブロック情報を記憶するための記憶部１３の容量を小さくすることができるため、制御部のパフォーマンスを向上させることができる。
【００８５】
尚、全てのデータについて特定動作を完了していると判断されたときは、全ての選択ブロック情報を消去する（ステップＳＴ５〜ＳＴ６）。
【００８６】
それ以外の動作（ステップ）については、図４の動作と同じであるため、ここでの説明を省略する。
【００８７】
図１３は、図４の動作の第２の変形例を示している。
【００８８】
この変形例は、選択ブロック情報ではなく、選択ブロック情報により求められる選択禁止ブロック（選択ブロックを含む）に関する情報、即ち、選択禁止ブロック情報を、図１の記憶部１３に記憶させる点に特徴を有する。
【００８９】
１つのサイクルにおいて、選択可能なブロックの制限は、それよりも前のサイクルにおける選択ブロック情報に基づいて決定される選択禁止ブロックに基づく。このため、前のサイクルにおいて、予め、選択禁止ブロックを求めておき、これを記憶部１３に記憶させておけば、１のサイクルにおいて選択禁止ブロックを求める作業が省略でき、特定動作のさらなる高速化を図ることができる。
【００９０】
また、本例でも、第１の変形例と同様に、温度緩和時間が経過したサイクルに関する選択禁止ブロック情報を、温度緩和時間が経過した直後に消去する。
【００９１】
例えば、１つのサイクルが終了し、全てのデータについて特定動作を完了していないと判断された後に、温度緩和時間が経過したサイクルに関する選択禁止ブロック情報を消去する（ステップＳＴ５及びＳＴ７）。
【００９２】
これにより、第１の変形例と同様に、選択禁止ブロック情報を記憶するための記憶部１３の容量を小さくし、制御部のパフォーマンスを向上させることができる。
【００９３】
尚、全てのデータについて特定動作を完了していると判断されたときは、全ての選択禁止ブロック情報を消去する（ステップＳＴ５〜ＳＴ６）。
【００９４】
それ以外の動作（ステップ）については、図４の動作と同じであるため、ここでの説明を省略する。
【００９５】
図１４は、適用例としての不揮発性半導体メモリを示している。
【００９６】
図１の基本構成は、ReRAM (Resistive Random Access Memory)、MRAM (Magnetic Random Access Memory)、BiCS (Bit Cost Scalable)-NANDなどの積層型不揮発性半導体メモリに適用するのが有効である。これらのメモリは、３次元構造による大容量化を特徴とする次世代メモリとして位置付けされるが、これを実現するためには、チップの発熱による動作不良及び素子破壊の問題を解決しなければならないからである。
【００９７】
不揮発性半導体メモリ１０及びコントローラ２０は、互いにバスを介して接続される。
【００９８】
メモリセルアレイ１は、図１のメモリセルアレイ１１に対応し、ｎ×ｍの行列状に配置される複数のブロックを備える。但し、ｎ及びｍは、共に２以上の自然数である。メモリセルアレイ１は、互いに交差するワード線ＷＬ及びビット線ＢＬを備える。例えば、１つのメモリセルは、ワード線ＷＬとビット線ＢＬの交差部に配置される。
【００９９】
ロウ駆動回路２は、メモリセルアレイ１内のワード線ＷＬの電位を制御し、カラム駆動回路３は、メモリセルアレイ１内のビット線ＢＬの電位を制御する。ロウ駆動回路２及びカラム駆動回路３は、図１の駆動部１４に対応する。
【０１００】
データ入出力バッファ４は、例えば、コントローラ２０との間で書き込み／読み出しデータの入出力を実行するために設けられる。また、データ入出力バッファ４は、コントローラ２０から、アドレスデータやコマンドデータなどを受け取る。
【０１０１】
コマンドインターフェイス回路５は、例えば、コントローラ２０から、書き込み／消去／読み出しイネーブル信号などの制御信号を受け取り、これに基づいて、データ入出力バッファ４に入力されたコマンドデータをステートマシーン６に転送する。
【０１０２】
ステートマシーン６は、不揮発性半導体メモリ１０全体の管理を行う。即ち、ステートマシーン６は、コントローラ２０からのコマンドデータに基づき、特定動作（書き込み／消去／読み出し動作）の手順を管理する。
【０１０３】
また、コントローラ２０は、ステートマシーン６が管理するステータス情報を受け取ることにより、特定動作の動作結果を判断する。
【０１０４】
アドレスレジスタ７は、アドレスデータを一時的に保持し、このアドレスデータをロウ駆動回路２及びカラム駆動回路３に転送する。
【０１０５】
パルスジェネレータ８は、不揮発性半導体メモリ１０内における特定動作のタイミングを制御するクロックパルスを生成する。
【０１０６】
ここで、図１の制御部１２は、例えば、不揮発性半導体メモリ１０内に設けることも可能であるし、コントローラ２０内に設けることも可能である。図１の制御部１２を不揮発性半導体メモリ１０内に設けるときは、図１の制御部１２の機能を、ステートマシーン６内に設けることができる。
【０１０７】
図１５は、メモリセルアレイの一例を示している。
【０１０８】
ここでは、メモリセルが抵抗変化素子を備える抵抗変化メモリ（ReRAM、MRAMなど）を例とする。
【０１０９】
半導体チップ３０上には、ワード線ＷＬ及びビット線ＢＬが配置され、これらの交差部にメモリセルＭＣが配置される。このようなメモリセルアレイは、クロスポイント型と呼ばれる。
【０１１０】
クロスポイント型の特長は、メモリセルＭＣに個別にＭＯＳトランジスタを接続する必要がないため、高集積化に有利な点にある。例えば、図１６に示すように、メモリセルＭＣを積み重ねて、メモリセルアレイを３次元構造にすることも可能である。
【０１１１】
メモリセルＭＣは、例えば、図１７に示すように、記憶層（抵抗変化素子）ＶＲ、非オーミック層（整流素子）ＮＯ及び電極層ＥＬ１，ＥＬ２，ＥＬ３を備える。記憶層ＶＲの抵抗値は、ワード線ＷＬ及びビット線ＢＬの電位により制御可能である。
【０１１２】
メモリセルＭＣは、記憶層ＶＲの抵抗状態を２値又はそれ以上に制御することにより、１ビット又は複数ビットを記憶する。
【０１１３】
図１８は、図１５のメモリセルアレイの等価回路を示している。
【０１１４】
この例では、メモリセルＭＣ内の非オーミック層ＮＯをダイオードとしている。特定動作（書き込み／消去／読み出し動作）は、ロウ駆動回路２及びカラム駆動回路３により、ワード線ＷＬ及びビット線ＢＬの電位を個別に制御することにより行うことができる。
【０１１５】
図１９は、図１４〜図１８のメモリセルアレイを、図１の基本構成に合わせて、複数のブロックに分割した場合の例を示している。
【０１１６】
ここでは、一例として、９個のブロックB1〜B9を示す。
【０１１７】
１つのブロックとは、ワード線ＷＬ及びビット線を共通にする複数のメモリセルのグループを意味する。１つのブロックに対しては、他のブロックとは独立に、特定動作（書き込み／消去／読み出し動作）を行うことができる。
【０１１８】
１本のワード線ＷＬに接続されるメモリセル数は、例えば、8,000個、１本のビット線ＢＬに接続されるメモリセル数は、例えば、2,000個である。この場合、１つのブロック内のメモリセルの合計数は、16,000,000個となる。
【０１１９】
ブロックB9を選択ブロックとし、ブロックB9内の選択メモリセルＭＣ-selに対して特定動作を実行する場合を説明する。この場合、非選択ブロックB1〜B8のワード線ＷＬ及びビット線ＢＬは、例えば、全て接地電位Vssに設定される。
【０１２０】
書き込み／消去動作においては、選択ワード線ＷＬ-selにV1（例えば、3V）を印加し、選択ビット線ＢＬ-selにV2（例えば、0V）を印加する。また、選択ワード線ＷＬ-sel以外の残りの全てのワード線にV2を印加し、選択ビット線ＢＬ-sel以外の残りの全てのビット線にV1を印加する。
【０１２１】
この時、選択メモリセルＭＣ-selに第１極性のバイアス電圧（V1-V2）が印加され、選択メモリセルＭＣ-selに対してデータの書き込み／消去（高抵抗状態→低抵抗状態又は低抵抗状態→高抵抗状態）が実行される。
【０１２２】
尚、書き込みと消去とは、選択メモリセルＭＣ-selに印加されるバイアス電圧の極性を変えることなく、選択メモリセルＭＣ-selに印加されるバイアス電圧の大きさ（抵抗変化素子に流れる電流の値）を変えることにより制御可能である（モノポーラ動作）。
【０１２３】
また、選択ワード線ＷＬ-selに接続される非選択メモリセル及び選択ビット線ＢＬ-selに接続される非選択メモリセルには、バイアス電圧が印加されないが、非選択ワード線及び非選択ビット線の双方に接続される非選択メモリセルには、第１極性とは逆向きの第２極性のバイアス電圧（V2-V1）が印加される。
【０１２４】
第２極性のバイアス電圧（V2-V1）が印加される非選択メモリセルでは、非オーミック素子としてのダイオードが逆バイアス状態となるように配置されているため、それら非選択メモリセルに対してデータの書き込み／消去が実行されることはない。しかし、非選択メモリセル内のダイオードに逆バイアスが印加されることにより、その非選択メモリセルにリーク電流が発生する。
【０１２５】
既に述べたように、例えば、１本のワード線ＷＬに接続されるメモリセル数を8,000個、１本のビット線ＢＬに接続されるメモリセル数を2,000個とすると、このリーク電流が発生する非選択メモリセルの数は、15,990,001個となる。即ち、１ブロック内のほとんど全ての非選択メモリセルにリーク電流が流れる。
【０１２６】
このように、特に、クロスポイント型の抵抗変化メモリでは、選択メモリセルＭＣ-selに流れる電流に加えて、非選択メモリセルに流れるリーク電流が多大となるため、チップ内の選択ブロックの温度上昇が問題となる。
【０１２７】
読み出し動作においては、選択ワード線ＷＬ-selにV1（例えば、1V）を印加し、選択ビット線ＢＬ-selにV2（例えば、0V）を印加する。また、選択ワード線ＷＬ-sel以外の残りの全てのワード線にV2を印加し、選択ビット線ＢＬ-sel以外の残りの全てのビット線にV1を印加する。
【０１２８】
読み出し動作では、V1の値を、書き込み／消去動作でのV1の値よりも十分に小さくすることにより、読み出し時の誤書き込み／誤消去を防止する。
【０１２９】
図１４乃至図１９の適用例において、図４、図１２又は図１３の動作を行う場合の実施例について以下説明する。
【０１３０】
図１４乃至図１９の適用例に係わる不揮発性半導体メモリでは、例えば、書き込み動作及び読み出し動作は、１本のワード線ＷＬに接続される複数のメモリセル単位（ページ単位）で実行される。また、消去動作は、ページ単位又はブロック単位で実行される。
【０１３１】
特定動作（書き込み／消去／読み出し動作）をページ単位で行う場合、いままで説明してきた特定動作の１サイクルは、選択ブロック内での複数のページ（選択ページ）に対する複数回の特定動作を含むものとする。
【０１３２】
例えば、図２０に示すように、選択ブロックにおいて、特定動作の１サイクルは、複数のページを順次選択する動作を含む。
【０１３３】
まず、書き込み／消去／読み出しの対象となる複数の選択ページを決定する（ステップＳＴ１）。次に、複数の選択ページのうちの１つに対して、ページ書き込み／ページ消去／ページ読み出しを実行する（ステップＳＴ２）。
【０１３４】
この後、全ての選択ページに対して、書き込み／消去／読み出しが完了したか否かを判定し、全ての選択ページに対して、書き込み／消去／読み出しが完了しているときは、特定動作を終了する（ステップＳＴ３）。
【０１３５】
また、全ての選択ページに対して、書き込み／消去／読み出しが完了していないときは、選択ページをシフトさせ（ステップＳＴ３〜ＳＴ４）、再び、複数の選択ページのうちの１つに対して、ページ書き込み／ページ消去／ページ読み出しを実行する（ステップＳＴ２）。
【０１３６】
本例では、このように、特定動作の１サイクルが、選択ブロック内での複数のページ（選択ページ）に対する複数回の特定動作を含むことを前提とする。この場合、既に述べたように、特定動作の温度緩和時間は、１サイクル毎に、特定動作の動作時間から求めるのが望ましいため、以下では、そのような場合について説明する。
【０１３７】
但し、これは、例えば、特定動作の温度緩和時間を、予め、固定値として記憶部に記憶させておくことを排除するものではない。
【０１３８】
図２１及び図２２は、不揮発性半導体メモリ１０内のステートマシーン６に、図４、図１２又は図１３の動作を行う機能を付加した実施例を示している。
【０１３９】
ステートマシーン６は、全てのデータの書き込み／消去／読み出しに必要とされる選択ブロックの総数を決定する選択ブロック総数決定部６−１、選択ブロック情報、温度緩和時間などの情報を記憶する情報記憶部６−２、１サイクルでの選択ブロック数を決定する１サイクル選択ブロック数決定部６−３、及び、書き込み／消去／読み出しの対象となるデータの論理アドレスと物理アドレスとの関連付けを行う論理／物理アドレス変換部６−４を備える。
【０１４０】
尚、図２１は、書き込み動作時のデータの流れを示し、図２２は、消去／読み出し動作時のデータの流れを示している。
【０１４１】
まず、書き込み動作について、図２１を参照しながら説明する。
【０１４２】
図１４のコントローラ２０から不揮発性半導体メモリ１０に書き込み動作が指示されると、書き込みデータに関する情報がデータ入出力バッファ４を介して選択ブロック総数決定部６−１に入力される。選択ブロック総数決定部６−１は、書き込みデータに関する情報に基づいて、全てのデータの書き込みに必要な選択ブロックの総数を決定する。
【０１４３】
また、１サイクル選択ブロック数決定部６−３は、選択ブロックの総数と、情報記録部６−２からの選択ブロック情報及び温度緩和時間とに基づき、１サイクルでの選択ブロック数を決定する。
【０１４４】
１サイクル選択ブロック数決定部６−３は、例えば、図２５に示す構成を有する。
【０１４５】
選択禁止ブロック判定部６−３ａは、情報記録部６−２からの過去に選択したブロックを示す選択ブロック情報に基づき、チップの温度上昇値が許容値tlimitを超えないために、選択してはならない選択禁止ブロックを判定する。
【０１４６】
選択禁止ブロックは、例えば、過去に選択したブロックの中心から最小距離Rminの範囲内にあるブロックとすることができる。最小距離Rminは、上述した式(1)に基づいて、選択禁止ブロック判定部６−３ａで計算することも可能であるし、図８に示すようなルックアップテーブルから選択することも可能である。
【０１４７】
選択可能ブロック判定部６−３ｂは、選択禁止ブロックに基づいて、これから行う特定動作の１サイクルにおいて、選択可能な選択可能ブロックを判定する。選択可能ブロック判定部６−３ｂは、選択可能ブロックが存在しないときに、仮選択ブロック判定部６−３ｃに対して、仮選択ブロックが存在するか否かを判定するように指示を出す。
【０１４８】
仮選択ブロック判定部６−３ｃは、仮選択ブロックが存在しないときは、待機部６−３ｄに対して一定期間の待機命令を出す。
【０１４９】
待機部６−３ｄは、一定期間の待機後に、選択禁止ブロック判定部６−３ａに対して再び選択禁止ブロックの判定を行うように指示する。
【０１５０】
一方、情報記録部６−２に記憶された選択ブロック情報は、時間の経過と共に変化する。例えば、情報制御部６−３ｈは、過去に選択された選択ブロック、その選択ブロックにおける書き込み動作の動作終了時刻tend及びその選択ブロックの温度緩和時間trelaxを、それぞれ、情報記憶部６−２に記憶する。また、情報制御部６−３ｈは、例えば、タイマーを有し、書き込み動作の動作終了時刻tendから温度緩和時間trelaxが経過した選択ブロックの情報を、情報記憶部６−２から消去する。
【０１５１】
従って、選択可能ブロックが存在せず、かつ、仮選択ブロックが存在しないときは、待機部６−３ｄにより一定の待機期間を設けることにより、選択禁止ブロック判定部６−３ａが、再度、選択禁止ブロックの判定を行うときに、必ず、選択可能ブロックが存在するようになる。
【０１５２】
また、仮選択ブロック判定部６−３ｃは、選択可能ブロックが存在せず、かつ、仮選択ブロックが存在するときは、待機部６−３ｄに対して待機命令を出すことなく、仮選択ブロックを最終決定された選択ブロックとし、さらに、選択ブロック位置出力部６−３ｆに対して、この最終決定された選択ブロックの位置を出力するように指示を出す。
【０１５３】
この時点での選択ブロック数は、全てのデータの書き込みに必要な選択ブロック総数に達していない。
【０１５４】
そこで、繰り返し判定部６−３ｇは、いままで選択してきた選択ブロック数の合計が選択ブロック総数に達したか否かを判定する。また、繰り返し判定部６−３ｅは、選択ブロック数の合計が選択ブロック総数に達していないときに、再び、選択禁止ブロック判定部６−３ａに対して、選択禁止ブロックの判定を行うように指示する。
【０１５５】
このように、繰り返し判定部６−３ｅからの指示により次のサイクルが行われるか否かが判定される。
【０１５６】
選択可能ブロック判定部６−３ｂは、選択可能ブロックが存在するとき、選択可能ブロックを仮選択部６−３eに通知する。
【０１５７】
仮選択部６−３eは、選択ブロック総数決定部６−１からの選択ブロック総数、及び、選択可能ブロック判定部６−３ｂからの選択可能ブロックに基づいて、仮選択ブロックの数及び位置を決定する。
【０１５８】
仮選択部６−３eは、選択可能ブロックが選択ブロック総数よりも多いときは、この時点で、全てのデータの書き込みに必要な選択ブロックの全てを選択可能であるため、それらを全て選択し、選択ブロック位置出力部６−３ｆに対して、選択ブロックの位置情報を出力するように指示を出す。
【０１５９】
この時点では、繰り返し判定部６−３ｅは、選択ブロック数の合計が選択ブロック総数に達しているため、再び、選択禁止ブロック判定部６−３ａに対して、選択禁止ブロックの判定を行うように指示することはない。
【０１６０】
仮選択部６−３eは、選択可能ブロックが選択ブロック総数よりも少ないときは、この時点で、全てのデータの書き込みに必要な選択ブロックの全てを選択不可能であるため、１つ以上の仮選択ブロックを決定し、再び、選択可能ブロック判定部６−３ｂに対して、選択可能ブロックが存在するか否かを判定するように指示を出す。
【０１６１】
選択可能ブロック判定部６−３ｂは、仮選択部６−３ｅからの指示に従い、再び、選択禁止ブロックに基づいて、選択可能な選択可能ブロックを判定する。
【０１６２】
情報制御部６−３ｈは、１つのサイクルで選択された選択ブロック、その選択ブロックにおける書き込み動作の動作終了時刻tend及びその選択ブロックの温度緩和時間trelaxを、それぞれ、新たに情報記憶部６−２に記憶する。
【０１６３】
ここで、情報制御部６−３ｆは、例えば、特定動作（書き込み動作）の動作時間tsetに等しい温度緩和時間trelaxを情報記憶部６−２に記憶する。
【０１６４】
また、情報制御部６−３ｆは、既に述べたように、温度緩和時間trelaxを管理し、書き込み動作の動作終了時刻tendから温度緩和時間trelaxが経過した選択ブロックの情報を、情報記憶部６−２から消去する。
【０１６５】
尚、温度緩和時間trelaxが経過したか否かを判断するタイミングは、温度緩和時間trelaxよりも短い一定間隔で定期的に行うのが望ましい。
【０１６６】
そして、１サイクル選択ブロック数決定部６−３で決定された選択ブロックは、１サイクル毎に、論理／物理アドレス変換部６−４に通知される。
【０１６７】
論理／物理アドレス変換部６−４は、書き込み対象となるデータの論理アドレスと物理アドレスとの関連付けを行う。
【０１６８】
また、書き込み対象となるデータの物理アドレスは、アドレスレジスタ７に一時的に保持される。ロウ／カラム駆動回路２，３は、アドレスレジスタ７に保持された物理アドレスに基づき、選択ブロック内のメモリセルを選択する。
【０１６９】
以上により、書き込み動作を実行する。
【０１７０】
次に、消去／読み出し動作について、図２２を参照しながら説明する。
【０１７１】
図１４のコントローラ２０から不揮発性半導体メモリ１０に書き込み動作が指示されると、消去／読み出しデータに関する情報がデータ入出力バッファ４を介して選択ブロック総数決定部６−１に入力される。
【０１７２】
論理／物理アドレス変換部６−４は、消去／読み出しデータに関する情報に基づいて、論理アドレスと物理アドレスとの関連付けを行い、消去／読み出し対象となる選択ブロックを決定する。
【０１７３】
選択ブロック総数決定部６−１は、論理／物理アドレス変換部６−４で決定された選択ブロックに基づいて、全てのデータの消去／読み出しに必要な選択ブロックの総数を決定する。
【０１７４】
また、１サイクル選択ブロック数決定部６−３は、選択ブロックの総数と、情報記録部６−２からの選択ブロック情報及び温度緩和時間とに基づき、１サイクルでの選択ブロック数を決定する。
【０１７５】
１サイクル選択ブロック数決定部６−３は、例えば、書き込み動作と同様に、図２５に示す構成を有する。図２５に示す１サイクル選択ブロック数決定部６−３の消去／読み出し時の動作については、書き込み時の動作と同じであるので、ここでの説明を省略する。
【０１７６】
そして、１サイクル選択ブロック数決定部６−３で決定された選択ブロックの物理アドレスは、１サイクル毎に、アドレスレジスタ７に一時的に保持される。
【０１７７】
ロウ／カラム駆動回路２，３は、アドレスレジスタ７に保持された物理アドレスに基づき、選択ブロック内のメモリセルを選択する。
【０１７８】
以上により、消去／読み出し動作を実行する。
【０１７９】
図２３及び図２４は、不揮発性半導体メモリ１０を制御するコントローラ２０に、図４、図１２又は図１３の動作を行う機能を付加した実施例を示している。
【０１８０】
コントローラ２０は、全てのデータの書き込み／消去／読み出しに必要とされる選択ブロックの総数を決定する選択ブロック総数決定部６−１、選択ブロック情報、温度緩和時間などの情報を記憶する情報記憶部６−２、１サイクルでの選択ブロック数を決定する１サイクル選択ブロック数決定部６−３、及び、書き込み／消去／読み出しの対象となるデータの論理アドレスと物理アドレスとの関連付けを行う論理／物理アドレス変換部６−４を備える。
【０１８１】
尚、図２３は、書き込み動作時のデータの流れを示し、図２４は、消去／読み出し動作時のデータの流れを示している。
【０１８２】
まず、書き込み動作について、図２３を参照しながら説明する。
【０１８３】
選択ブロック総数決定部６−１は、書き込みデータに関する情報に基づいて、全てのデータの書き込みに必要な選択ブロックの総数を決定する。また、１サイクル選択ブロック数決定部６−３は、選択ブロックの総数と、情報記録部６−２からの選択ブロック情報及び温度緩和時間とに基づき、１サイクルでの選択ブロック数を決定する。
【０１８４】
１サイクル選択ブロック数決定部６−３は、例えば、図２５に示す構成を有する。図２５に示す１サイクル選択ブロック数決定部６−３の動作については、既に説明したので、ここでの説明を省略する。
【０１８５】
そして、１サイクル選択ブロック数決定部６−３で決定された選択ブロックは、１サイクル毎に、論理／物理アドレス変換部６−４に通知される。
【０１８６】
論理／物理アドレス変換部６−４は、書き込み対象となるデータの論理アドレスと物理アドレスとの関連付けを行う。
【０１８７】
また、書き込み対象となるデータの物理アドレスは、不揮発性半導体メモリ１０に転送される。不揮発性半導体メモリ１０は、コントローラ２０からの物理アドレスに基づき、選択ブロック内のメモリセルを選択する。
【０１８８】
以上により、書き込み動作を実行する。
【０１８９】
次に、消去／読み出し動作について、図２４を参照しながら説明する。
【０１９０】
論理／物理アドレス変換部６−４は、消去／読み出しデータに関する情報に基づいて、論理アドレスと物理アドレスとの関連付けを行い、消去／読み出し対象となる選択ブロックを決定する。
【０１９１】
選択ブロック総数決定部６−１は、論理／物理アドレス変換部６−４で決定された選択ブロックに基づいて、全てのデータの消去／読み出しに必要な選択ブロックの総数を決定する。
【０１９２】
また、１サイクル選択ブロック数決定部６−３は、選択ブロックの総数と、情報記録部６−２からの選択ブロック情報及び温度緩和時間とに基づき、１サイクルでの選択ブロック数を決定する。
【０１９３】
１サイクル選択ブロック数決定部６−３は、例えば、図２５に示す構成を有する。図２５に示す１サイクル選択ブロック数決定部６−３の動作については、既に説明したので、ここでの説明を省略する。
【０１９４】
そして、１サイクル選択ブロック数決定部６−３で決定された選択ブロックの物理アドレスは、１サイクル毎に、不揮発性半導体メモリ１０に転送される。不揮発性半導体メモリ１０は、コントローラ２０からの物理アドレスに基づき、選択ブロック内のメモリセルを選択する。
【０１９５】
以上により、消去／読み出し動作を実行する。
【０１９６】
図２６は、図２１〜図２５において説明した書き込み／消去／読み出し動作の第１の変形例を示している。
【０１９７】
この変形例は、情報記憶部６−２に、選択ブロックテンプレート、Rminルックアップテーブル、及び、trelaxルックアップテーブルを、それぞれ、記憶させた点に特徴を有する。
【０１９８】
選択ブロックテンプレートは、例えば、図２７に示すように、１つのサイクルで選択し得る選択ブロックのパターンを予め定めたものである。本例では、４つのテンプレートのみを示すが、これ以外のパターン、例えば、複数の選択ブロックが互いに離れているパターンなどをテンプレートとすることも可能である。
【０１９９】
実際のメモリ動作においては、書き込み／消去時に複数の選択ブロックを互いに隣接して配置させるのが望ましい場合がある。このような場合には、図２７に示すように、互いに隣接する複数のパターンを予めテンプレートとして登録しておくのが有効である。
【０２００】
Rminルックアップテーブルは、例えば、図２８に示すように、予め、図２７のテンプレートに応じた最小距離Rminを定めたものである。最小距離Rminは、１つのテンプレートを構成する複数のブロックの中心点Ｏを基準に決められる。また、最小距離Rminは、設計時やテスト動作時などに、予め、上述の式(1)に基づき、シミュレーションにより定めておくのが望ましい。
【０２０１】
trelaxルックアップテーブルは、例えば、図２９に示すように、予め、図２７のテンプレート及び特定動作の動作時間tsetに応じた温度緩和時間trelaxを定めたものである。この場合、温度緩和時間trelaxは、テンプレートの種類及び特定動作の動作時間tsetに応じて変化する。
【０２０２】
実際のメモリ動作においては、既に述べたように、ページ単位での書き込み／消去／読み出しを行う場合など、１サイクルにおける特定動作の動作時間tsetが変化する場合がある。このような場合には、図２９に示すように、予め、trelaxルックアップテーブルを登録しておくのが有効である。
【０２０３】
また、テンプレートの種類及び特定動作の動作時間tsetに応じた温度緩和時間trelaxは、設計時やテスト動作時などに、予め、上述の式(1)に基づき、シミュレーションにより定めておくのが望ましい。
【０２０４】
この変形例における１サイクル選択ブロック数決定部６−３の動作を説明する。
【０２０５】
選択禁止ブロック判定部６−３ａは、情報記録部６−２からの過去に選択したブロックを示す選択ブロック情報に基づき、チップの温度上昇値が許容値tlimitを超えないために、選択してはならない選択禁止ブロックを判定する。
【０２０６】
選択禁止ブロックは、例えば、図３０に示すように、過去に選択したブロック（図２７のテンプレートのうちの１つ）の中心点Ｏから最小距離Rminの範囲内にあるブロックとすることができる。最小距離Rminは、情報記憶部６−２内に記憶されたRminルックアップテーブル、例えば、図２８のRminルックアップテーブルから選択することができる。
【０２０７】
選択可能ブロック判定部６−３ｂは、選択禁止ブロックに基づいて、これから行う特定動作の１サイクルにおいて、選択可能な選択可能ブロックを判定する。選択可能ブロック判定部６−３ｂは、選択可能ブロックが存在しないときに、仮選択ブロック判定部６−３ｃに対して、仮選択ブロックが存在するか否かを判定するように指示を出す。
【０２０８】
仮選択ブロック判定部６−３ｃは、仮選択ブロックが存在しないときは、待機部６−３ｄに対して一定期間の待機命令を出す。
【０２０９】
待機部６−３ｄは、一定期間の待機後に、選択禁止ブロック判定部６−３ａに対して再び選択禁止ブロックの判定を行うように指示する。
【０２１０】
一方、情報記録部６−２に記憶された選択ブロック情報は、時間の経過と共に変化する。例えば、情報制御部６−３ｈは、過去に選択された選択ブロック（図２７のテンプレートのうちの１つ）、及び、その選択ブロックにおける特定動作の動作終了時刻tendを、それぞれ、選択ブロック情報として、情報記憶部６−２に記憶する。また、情報制御部６−３ｈは、例えば、タイマーを有し、特定動作の動作終了時刻tendから温度緩和時間trelaxが経過した選択ブロック情報を、情報記憶部６−２から消去する。
【０２１１】
従って、選択可能ブロックが存在せず、かつ、仮選択ブロックが存在しないときは、待機部６−３ｄにより一定の待機期間を設けることにより、選択禁止ブロック判定部６−３ａが、再度、選択禁止ブロックの判定を行うときに、必ず、選択可能ブロックが存在するようになる。
【０２１２】
また、仮選択ブロック判定部６−３ｃは、選択可能ブロックが存在せず、かつ、仮選択ブロックが存在するときは、待機部６−３ｄに対して待機命令を出すことなく、仮選択ブロックを最終決定された選択ブロックとし、さらに、選択ブロック位置出力部６−３ｆに対して、この最終決定された選択ブロックの位置を出力するように指示を出す。
【０２１３】
この時点での選択ブロック数は、全てのデータの書き込みに必要な選択ブロック総数に達していない。
【０２１４】
そこで、繰り返し判定部６−３ｇは、いままで選択してきた選択ブロック数の合計が選択ブロック総数に達したか否かを判定する。また、繰り返し判定部６−３ｅは、選択ブロック数の合計が選択ブロック総数に達していないときに、再び、選択禁止ブロック判定部６−３ａに対して、選択禁止ブロックの判定を行うように指示する。
【０２１５】
このように、繰り返し判定部６−３ｅからの指示により次のサイクルが行われるか否かが判定される。
【０２１６】
選択可能ブロック判定部６−３ｂは、選択可能ブロックが存在するとき、選択可能ブロックを仮選択部６−３eに通知する。
【０２１７】
仮選択部６−３eは、例えば、図３０に示すように、選択ブロック総数決定部６−１からの選択ブロック総数、及び、選択可能ブロック判定部６−３ｂからの選択可能ブロックに基づいて、仮選択ブロック（図２７のテンプレートのうちの１つ）を決定する。
【０２１８】
仮選択部６−３eは、全てのデータの書き込みに必要な選択ブロックの全てを選択可能であるときは、それらを全て選択し、選択ブロック位置出力部６−３ｆに対して、選択ブロックの位置情報を出力するように指示を出す。
【０２１９】
この時点では、繰り返し判定部６−３ｅは、選択ブロック数の合計が選択ブロック総数に達しているため、再び、選択禁止ブロック判定部６−３ａに対して、選択禁止ブロックの判定を行うように指示することはない。
【０２２０】
仮選択部６−３eは、全てのデータの書き込みに必要な選択ブロックの全てを選択不可能であるときは、再び、選択可能ブロック判定部６−３ｂに対して、選択可能ブロックが存在するか否かを判定するように指示を出す。
【０２２１】
選択可能ブロック判定部６−３ｂは、仮選択部６−３ｅからの指示に従い、再び、選択禁止ブロックに基づいて、選択可能な選択可能ブロックを判定する。
【０２２２】
情報制御部６−３ｆは、このサイクルで選択された選択ブロック（図２７のテンプレートのうちの１つ）、及び、その選択ブロックにおける特定動作の動作終了時刻tendを、新たに、選択ブロック情報として、情報記憶部６−２に記憶する。
【０２２３】
また、情報制御部６−３ｆは、既に述べたように、温度緩和時間trelaxを管理し、書き込み動作の動作終了時刻tendから温度緩和時間trelaxが経過した選択ブロック情報を、情報記憶部６−２から消去する。
【０２２４】
尚、温度緩和時間trelaxが経過したか否かを判断するタイミングは、温度緩和時間trelaxよりも短い一定間隔で定期的に行うのが望ましい。
【０２２５】
本例では、情報記憶部６−２に、選択ブロックテンプレート、Rminルックアップテーブル、及び、trelaxルックアップテーブルを、それぞれ、記憶させるため、情報記憶部６−２のメモリ容量が大きくなる。
【０２２６】
また、図２１及び図２２の例の場合のように、ステートマシーンにより温度制御する場合、情報記憶部６−２のメモリ容量が制限される場合がある。この場合には、選択ブロックテンプレート、Rminルックアップテーブル、及び、trelaxルックアップテーブルを、メモリチップを制御するコントローラ内に記憶させることも可能である。
【０２２７】
図３１は、図２１〜図２５において説明した書き込み／消去／読み出し動作の第２の変形例に係わる不揮発性半導体メモリを示している。
【０２２８】
この不揮発性半導体メモリの特徴は、チップ内に温度センサー９を有する点にある。温度センサー９は、例えば、ダイオードセンサーであり、チップ温度をリアルタイムに検出する。この変形例で説明する動作は、温度センサー９により検出されるチップの温度上昇値（特定動作の温度上昇値の最大値tmax）に基づいて、通常動作と温度緩和動作とを切り替えることに特徴を有する。
【０２２９】
尚、図３１の例では、温度センサー９は、チップに内蔵されるが、不揮発性半導体メモリ（メモリチップ）の外部に温度センサー９を設けてもよい。
【０２３０】
例えば、図３２の例では、プリント回路基板３１上に、コントローラ２０及びメモリチップ１０が積層される。また、メモリチップ１０上に温度センサー９が配置される。さらに、メモリチップ１０、コントローラ２０及び温度センサー９は、パッケージ３２により封止される。
【０２３１】
また、例えば、図３３の例では、プリント回路基板３１上に、メモリチップ１０及びコントローラ２０が並んで配置される。また、メモリチップ１０に隣接する位置に温度センサー９が配置される。
【０２３２】
図３４は、通常動作と温度緩和動作とを切り替えるための構成を示している。
【０２３３】
この構成は、不揮発性半導体メモリ内のステートマシーン６又はコントローラ２０により実現することができる。
【０２３４】
温度センサー９でリアルタイムに得られるチップの温度上昇値は、ステートマシーン６又はコントローラ２０に転送される。ステートマシーン６又はコントローラ２０は、この温度情報に基づいて以下の動作を行う。
【０２３５】
まず、チップの温度上昇値、具体的には、チップの温度上昇値の最大値tmaxが第１の閾値thighを越えるか否かを判断する。第１の閾値thighは、既に述べた温度上昇値の許容値tlimitよりも若干低い値である。例えば、温度上昇値の許容値tlimitが45℃のときは、第１の閾値thighは40℃とするのが望ましい。
【０２３６】
そして、温度上昇値の最大値tmaxが第１の閾値thigh以下であれば、通常動作を行い、書き込み／消去／読み出し動作の高速化を図る。また、温度上昇値の最大値tmaxが第１の閾値thighを越えるときは、既に説明した温度緩和動作を行うことにより、チップの温度上昇値が許容値tlimitを超えることを防止する。
【０２３７】
例えば、図３５に示すように、通常動作では、書き込み／消去／読み出し動作が、温度緩和動作を経ることなく、連続して行われるため、動作の高速化には貢献できるが、チップの温度上昇値の最大値tmaxは、次第に上昇していく。
【０２３８】
そこで、チップの温度上昇値の最大値tmaxが、許容値であるtlimitの少し手前である第１の閾値tlimitを越えたときに、通常動作から温度緩和動作に移行する。
【０２３９】
書き込み／消去／読み出し動作の１サイクルを終えた後に、温度緩和動作が挿入されると、チップの温度上昇値の最大値tmaxは、次第に下降していく。このため、チップの温度上昇値の最大値tmaxがチップの温度上昇値の許容値tlimitを超えることはない。
【０２４０】
また、温度緩和動作を常に行っていると、書き込み／消去／読み出し動作の高速化には不利となるため、第１の閾値thighよりも低い第２の閾値tlowを設ける。
【０２４１】
そして、チップの温度上昇値、具体的には、チップの温度上昇値の最大値tmaxが第２の閾値tlowを下回るか否かを判断する。第２の閾値tlowは、低過ぎても、高過ぎてもよくないため、シミュレーションにより最適値を予め決めておく。例えば、チップの温度上昇値の許容値tlimitが45℃のときは、第２の閾値tlowは35℃とするのが望ましい。
【０２４２】
温度上昇値の最大値tmaxが第２の閾値tlowを下回れば、温度緩和動作から通常動作に移行し、書き込み／消去／読み出し動作の高速化を図る。また、温度上昇値の最大値tmaxが第２の閾値tlow以上であるときは、続けて温度緩和動作を行うことにより、チップの温度上昇値が許容値tlimitを超えることを防止する。
【０２４３】
尚、本例では、通常動作と温度緩和動作との切り替えを、第１及び第２の閾値thigh, tlowを用いて行ったが、これに限られることはなく、様々な変形が可能である。例えば、通常動作を連続して所定のサイクル又は所定時間行った後に、通常動作から温度緩和動作へ移行してもよい。同様に、温度緩和動作を連続して所定のサイクル又は所定時間行った後に、温度緩和動作から通常動作へ移行してもよい。
【０２４４】
また、温度センサー９により検出されるチップの温度上昇値は、チップ内の大域的な温度値となるため、この大域的な温度値からチップ内の局所的な温度値に変換する補正処理を行ってもよい。この補正処理は、シミュレーション又はテスト時の実測に基づき、予め、大域的な温度値と局所的な温度値との関係を求めておくことにより実現する。
【０２４５】
以上のように、通常動作と温度緩和動作とを切り替えることにより、例えば、書き込み／消去／読み出しデータ量が少ないときは、高速動作を行い、書き込み／消去／読み出しデータ量が多いときは、通常動作から温度緩和動作に移行可能なシステムを作ることができ、より安定動作を行うことが可能となる。
【０２４６】
本例の温度センサー９は、読み出し時の大域的な温度依存性の補正に使用することも可能である。読み出し時の大域的な温度依存性の補正について説明する。チップ温度の変化に伴い、集積回路を構成するダイオードなどの内部素子の電気特性が変化することにより、読み出し時の電流値が変動する現象が発生する。
【０２４７】
そこで、予め、温度変化に伴う内部素子の電気特性の変化を求めておき、温度センサー９の温度情報を元に、内部素子の電気特性の補正を行うことにより、温度変化に伴う読み出し時の電流値の変動を防止し、正しいメモリ情報を取得することが可能となる。
【０２４８】
また、温度センサー９により得られる情報は、大域的な情報であるので、これに加えて、選択ブロックの周辺の局所的な温度上昇値を上述の式(1)から予想し、その局所的な温度上昇値を用いて内部素子の電気特性の補正を行うことも可能である。
【０２４９】
以上、実施形態によれば、半導体記憶装置の実動作時の局所的な温度分布を考慮した熱対策技術を実現できる。
【０２５０】
尚、上述の実施形態に係わるアルゴリズムを効率的に行うためには、チップ内に書き込まれるデータは、チップ内で、互いに離れている複数のブロックに分散されることが望ましい。また、既にチップ内に書き込まれているデータのうち、互いに隣接する複数のブロックに密集しているデータについては、チップ内でのデータ移動により、互いに離れている複数のブロックに分散させることも可能である。
【０２５１】
また、低レートのデータ書き込み時に、書き込みデータを互いに離れている複数のブロックに分散して記憶させることにより、これらデータの消去時に、これらデータを含む複数のブロックを同時に選択して消去を行うことも可能である。
【０２５２】
また、コントローラにより本実施形態の温度管理動作を制御する場合、コントローラとメモリチップとは、１つのＬＳＩ装置（例えば、メモリカードや、ＵＳＢのような電子機器）内に搭載されることも可能であるし、これとは別に、コントローラとして、パソコンなどのホスト機器を用いることも可能である。
【０２５３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０２５４】
１：  メモリセルアレイ、  ２：  ロウ駆動回路、  ３：  カラム駆動回路、  ４：  データ入出力バッファ、  ５：  コマンドインターフェイス回路、  ６：  ステートマシーン、  ７：  アドレスレジスタ、  ８：  パルスジェネレータ、  ９：  温度センサー、  １０：  不揮発性半導体メモリ、  １１：  メモリセルアレイ部、  １２：  制御部、  １３：  記憶部、  １４：  駆動部、  ２０：  コントローラ、  ３０：  半導体基板、  ３１：  プリント回路基板、  ３２：  パッケージ。
【図１】
0005624573.tif 000003
【図２】
0005624573.tif 000004
【図３】
0005624573.tif 000005
【図４】
0005624573.tif 000006
【図５】
0005624573.tif 000007
【図６】
0005624573.tif 000008
【図７】
0005624573.tif 000009
【図８】
0005624573.tif 000010
【図９】
0005624573.tif 000011
【図１０】
0005624573.tif 000012
【図１１】
0005624573.tif 000013
【図１２】
0005624573.tif 000014
【図１３】
0005624573.tif 000015
【図１４】
0005624573.tif 000016
【図１５】
0005624573.tif 000017
【図１６】
0005624573.tif 000018
【図１７】
0005624573.tif 000019
【図１８】
0005624573.tif 000020
【図１９】
0005624573.tif 000021
【図２０】
0005624573.tif 000022
【図２１】
0005624573.tif 000023
【図２２】
0005624573.tif 000024
【図２３】
0005624573.tif 000025
【図２４】
0005624573.tif 000026
【図２５】
0005624573.tif 000027
【図２６】
0005624573.tif 000028
【図２７】
0005624573.tif 000029
【図２８】
0005624573.tif 000030
【図２９】
0005624573.tif 000031
【図３０】
0005624573.tif 000032
【図３１】
0005624573.tif 000033
【図３２】
0005624573.tif 000034
【図３３】
0005624573.tif 000035
【図３４】
0005624573.tif 000036
【図３５】
0005624573.tif 000037