(57)【特許請求の範囲】
【請求項１】
データに処理を施す処理部と、
前記データが記憶されるメモリチップを複数の階層に実装した記憶部とを有し、
前記記憶部は、
記憶している前記データの検査を行い、シングルビットエラーが検出された場合には前記データに訂正処理を施す検査訂正部と、
第１階層のメモリチップでシングルビットエラーが検出された場合、該シングルビットエラーが発生した位置に基づいて他の階層のメモリチップでの検査領域を決定し、前記検査訂正部による前記検査領域におけるデータの検査を実行させる診断制御部とを有することを特徴とする情報処理装置。
【請求項２】
前記診断制御部は、さらに前記第１階層とは異なる第２階層のメモリチップでシングルビットエラーが検出された場合、前記第１階層のメモリチップでシングルビットエラーが発生した位置と前記第２階層のメモリチップでシングルビットエラーが発生した位置とに基づいて他の階層のメモリチップでの前記検査領域を決定することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記診断制御部は、前記第１階層のメモリチップでシングルビットエラーが発生した位置と前記第２階層のメモリチップでシングルビットエラーが発生した位置とを結ぶ直線上を中心に他の階層のメモリチップでの前記検査領域を決定することを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記診断制御部は、前記第１階層のメモリチップでシングルビットエラーが発生した位置を中心に他の階層のメモリチップでの前記検査領域を決定し、前記第１階層から離れるほど前記検査領域を広くすることを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記シングルビットエラーが発生した位置の情報を有するエラー情報を保持する情報保持部を有し、
前記診断制御部は、前記情報保持部に保持されている前記エラー情報を用いて他の階層のメモリチップでの前記検査領域を決定することを特徴とする請求項１〜４の何れか１項に記載の情報処理装置。
【請求項６】
前記エラー情報は、前記シングルビットエラーが検出されたか否かを示す情報を有し、
前記診断制御部は、他の階層のメモリチップでの前記検査領域におけるデータの検査の実行が完了した場合、前記シングルビットエラーが検出されていない状態に前記エラー情報を更新することを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記検査領域の大きさを任意に設定可能であることを特徴とする請求項１〜６の何れか１項に記載の情報処理装置。
【請求項８】
前記診断制御部が決定した前記検査領域に対する前記検査訂正部によるデータの検査を、一定時間内に前記記憶部のすべての記憶領域に対するデータの検査を行う通常のパトロール動作に優先して実行させることを特徴とする請求項１〜７の何れか１項に記載の情報処理装置。
【請求項９】
複数の階層に実装され、データをそれぞれ記憶する複数のメモリチップと、
記憶している前記データの検査を行い、シングルビットエラーが検出された場合には前記データに訂正処理を施す検査訂正部と、
第１階層のメモリチップでシングルビットエラーが検出された場合、該シングルビットエラーが発生した位置に基づいて他の階層のメモリチップでの検査領域を決定し、前記検査訂正部による前記検査領域におけるデータの検査を実行させる診断制御部とを有することを特徴とする半導体装置。
【請求項１０】
前記データに処理を施す処理部と、前記処理部と前記複数のメモリチップとの間で前記データを保持するキャッシュメモリとを有するチップをさらに有することを特徴とする請求項９記載の半導体装置。
【請求項１１】
複数の階層に実装され、データをそれぞれ記憶する複数のメモリチップを有する半導体装置のメモリ検査方法であって、
前記半導体装置の診断制御部が、第１階層のメモリチップでシングルビットエラーが検出された場合、該シングルビットエラーが発生した位置に基づいて他の階層のメモリチップでの検査領域を決定し、
前記診断制御部が、前記半導体装置の検査訂正部による前記検査領域におけるデータの検査を実行させ、
前記検査訂正部が、前記検査領域におけるデータの検査を行い、シングルビットエラーが検出された場合には前記データに訂正処理を施すことを特徴とするメモリ検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、半導体装置、及びメモリ検査方法に関する。
【背景技術】
【０００２】
ＤＲＡＭ（Dynamic Random Access Memory）等のＲＡＭセルは、中性子線等の影響によりビット反転が発生することがある。複数のＲＡＭセルを有するメモリでは、複数のビットからなるデータの１ビットがビット反転してしまったシングルビットエラー状態を放置すると、さらに他のビットがビット反転等してマルチビットエラー状態に進行する懸念がある。そのため、シングルビットエラーを早期に検出し訂正できるように、一定時間内にメモリのすべてのＲＡＭセルに対する診断アクセスを行うパトロール動作が行われている。また、メモリを積層した３次元メモリが提案されている（例えば、特許文献１〜３参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３３４８４５号公報
【特許文献２】特表２０１５−５１５０６１号公報
【特許文献３】特開２０１５−１３５５７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＲＡＭセルを有するメモリチップを複数の階層に実装している（３次元実装している）半導体装置では、中性子線等の影響によるビット反転が複数のメモリチップで同時発生する可能性がある。発生したエラーがシングルビットエラーであればＥＣＣ（Error Checking and Correcting）等で検出し訂正できるが、検出し訂正するまでにシングルビットエラーがマルチビットエラーに進行しシステムダウン等に至る懸念があるため、早期にシングルビットエラーを検出し訂正する必要がある。しかし、メモリチップを３次元実装している半導体装置において、ビット反転が複数のメモリチップで同時発生した場合、それによる複数のメモリチップでのシングルビットエラーのすべてがパトロール動作によって検出されるまでに時間がかかる。１つの側面では、本発明の目的は、メモリチップを複数の階層に実装した半導体装置で同時発生した複数のメモリチップでのシングルビットエラーを早期に検出できるようにする。
【課題を解決するための手段】
【０００５】
情報処理装置の一態様は、データに処理を施す処理部と、データが記憶されるメモリチップを複数の階層に実装した記憶部とを有する。記憶部は、データの検査を行い、シングルビットエラーが検出された場合にはデータに訂正処理を施す検査訂正部と、第１階層のメモリチップでシングルビットエラーが検出された場合、該シングルビットエラーが発生した位置に基づいて他の階層のメモリチップでの検査領域を決定し、検査訂正部による検査領域におけるデータの検査を実行させる診断制御部とを有する。
【発明の効果】
【０００６】
発明の一態様においては、シングルビットエラーが発生した位置に基づいて他の階層での検査領域を決定しデータの検査を実行させることで、同時発生した複数のメモリチップでのシングルビットエラーを早期に検出可能になり信頼性を向上させることができる。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態における情報処理装置の構成例を示す図である。
【図２】第１の実施形態におけるメモリの構成例を示す図である。
【図３】第１の実施形態におけるメモリチップの実装例を示す図である。
【図４】第１の実施形態におけるメモリの動作を説明する図である。
【図５】第１の実施形態における優先パトロールを説明する図である。
【図６】第１の実施形態における優先パトロール制御部の例を示す図である。
【図７】第２の実施形態における優先パトロールを説明する図である。
【図８】第２の実施形態における優先パトロール制御部の例を示す図である。
【図９】ＣＰＵチップとメモリチップとの実装例を示す図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態を図面に基づいて説明する。
【０００９】
（第１の実施形態）
本発明の第１の実施形態について説明する。
図１は、第１の実施形態における情報処理装置の構成例を示すブロック図である。本実施形態における情報処理装置は、処理部（ＣＰＵ：Central Processing Unit）１及びメモリ（主記憶）４を有する。処理部１は、メモリ４からデータを読み出して処理を施したり、処理結果として得られたデータをメモリ４に書き込んだりする。処理部１は、命令に応じた処理を行うＣＰＵコア２と、メモリ４のデータを保持するキャッシュ部３とを有する。メモリ４は、処理部１での処理に係るデータ等を記憶する。
【００１０】
図２は、第１の実施形態におけるメモリ４の構成例を示す図である。本実施形態におけるメモリ４は、後述するように複数のメモリチップを有し、それらメモリチップが複数の階層に実装（３次元実装）されている。本実施形態では、一例として３つのメモリチップを有するものとし、上側から順に１層目、２層目、３層目とする。本実施形態におけるメモリ４は、優先パトロール制御部１０、エラー情報保持部２０、アクセス制御部３０、メモリ部４０、エラーチェック・訂正部５０、及びエラーチェックコード生成部６０を有する。
【００１１】
エラー情報保持部２０には、メモリ４が有するメモリチップにおいて検出されたシングルビットエラーに係るエラー情報が保持される。エラー情報保持部２０は、１層目（最も上側に配されたメモリチップ）のエラー情報２１−１、２層目（中間に配されたメモリチップ）のエラー情報２１−２、及び３層目（最も下側に配されたメモリチップ）のエラー情報２１−３を保持する領域をそれぞれ有する。
【００１２】
エラー情報は、バリッドフラグ（Ｖａｌｉｄ）及びシングルビットエラー位置情報（ＳＥ位置情報）を有する。バリッドフラグ（Ｖａｌｉｄ）は、シングルビットエラーが検出されたか否かを示すものであり、リードアクセス又は通常のパトロールの動作でシングルビットエラーが検出された場合、シングルビットエラーが検出されたメモリチップに対応するバリッドフラグが設定される。また、シングルビットエラー位置情報（ＳＥ位置情報）はシングルビットエラーが発生した位置を示すものであり、シングルビットエラーが検出されたＲＡＭセル（メモリセル）の位置を示す情報がシングルビットエラー位置情報として保持される。
【００１３】
ここで、エラー情報における位置情報は、一般的にはプログラムによってアクセスされるときのメモリアドレスとは異なり、メモリチップでのＲＡＭセルの物理的な位置を示している。例えば、プログラムがアクセスするメモリアドレスを実際の物理的な位置を示す情報にメモリ４内で変換することにより得られる。なお、パトロールとは、メモリにおけるエラーの検出を行うための診断アクセスである。
【００１４】
優先パトロール制御部１０は、エラー情報保持部２０に保持されたエラー情報に基づいて優先パトロールの動作に係る制御を行う。優先パトロールは、通常のパトロールとは異なるパトロールの動作であり、リードアクセス又は通常のパトロールでシングルビットエラーが検出された場合に、検出されたシングルビットエラーの情報に基づいて領域を決定し診断アクセスが実行される。
【００１５】
優先パトロール制御部１０は、領域サイズ設定部１１、範囲決定部１２、実行制御部１３、及びエラー情報更新部１４を有する。領域サイズ設定部１１は、優先パトロールを実行する領域（検査領域）の大きさが設定される。なお、優先パトロールを実行する領域の大きさは、設定により可変可能である。範囲決定部１２は、エラー情報保持部２０に保持されているエラー情報及び領域サイズ設定部１１に設定された領域の大きさに応じて、優先パトロールを実行する領域（検査領域）を決定する。
【００１６】
実行制御部１３は、範囲決定部１２により決定された領域に対するパトロールの動作の実行を制御する。実行制御部１３は、例えば範囲決定部１２により決定された優先パトロールを実行する領域に基づいて、診断アクセスを行うアドレスの生成や更新を行ったり、診断アクセスの実行を指示したりする。エラー情報更新部１４は、実行制御部１３から優先パトロールの実行結果を受けて、エラー情報保持部２０に保持されているエラー情報を更新する。
【００１７】
アクセス制御部３０は、メモリ部４０に対するアクセスを制御する。アクセス制御部３０は、処理部１等からのメモリ４に対するリードアクセスやライトアクセス等のメモリアクセス、優先パトロール、及び通常のパトロールの実行を所定の優先順位に従って制御する。アクセス制御部３０は、第１のマルチプレクサ３１及び第２のマルチプレクサ３２を有する。
【００１８】
第１のマルチプレクサ３１は、優先パトロールの実行タイミング信号ＳＰＴＥが活性化されている場合には優先パトロールの実行要求ＳＰＴを出力し、それ以外の場合には通常パトロールの実行要求ＮＰＴを出力する。第２のマルチプレクサ３２は、メモリアクセスの実行タイミング信号ＭＡＣＥが活性化されている場合にはメモリアクセスの実行要求ＭＡＣを出力し、それ以外の場合には第１のマルチプレクサ３１から出力される実行要求を出力する。すなわち、アクセス制御部３０は、メモリアクセスの実行タイミングではメモリアクセスを実行させ、メモリアクセスの実行タイミングではなく且つ優先パトロールの実行タイミングでは優先パトロールを実行させる。
【００１９】
メモリ部４０は、図３に示すように複数の階層に実装された（３次元実装された）複数のメモリチップ４１−１、４１−２、４１−３を有する。図３は、第１の実施形態におけるメモリチップの実装例を示す図であり、１層目におけるメモリチップ４１−１、２層目におけるメモリチップ４１−２、３層目におけるメモリチップ４１−３が積層されるように３次元実装されている。メモリチップ４１−１〜４１−３のそれぞれは複数のＲＡＭセル（メモリセル）を有する。
【００２０】
メモリ部４０の各メモリチップ４１−１〜４１−３が有するＲＡＭセルは、例えばＤＲＡＭセル又はＳＲＡＭ（Static Random Access Memory）セルであるが、これに限定されるものではない。本実施形態は、中性子線等の影響によるビット反転など、外部要因によりエラーが発生するようなメモリセル（例えば、電荷をデータ記憶に用いるメモリセル等）を有するメモリチップを複数の階層に実装したメモリに対して適用可能である。
【００２１】
エラーチェック・訂正部５０は、メモリ部４０から読み出されたデータＲＤＴＡに対してエラー検査を行い、必要に応じてエラー訂正処理を施したデータＲＤＴＢをリードデータとして出力する。また、エラーチェック・訂正部５０は、リードアクセス又は通常のパトロールの動作でシングルビットエラーを検出した場合、データにエラー訂正処理を施すとともに、エラー情報保持部２０にエラー情報を設定する。
【００２２】
エラーチェックコード生成部６０は、データＲＤＴＢ又は通常のメモリアクセスに係るライトデータＭＡＷＤＴに基づいてＥＣＣ等のエラーチェックコードを生成する。エラーチェックコード生成部６０により生成されたエラーチェックコードは、データＲＤＴＢ又はデータＭＡＷＤＴに付加されてメモリ部４０に書き込まれる。なお、本実施形態においてエラーチェックコードはＥＣＣ等に限定されるものではなく、シングルビットエラーを検出し訂正可能なエラーチェックコードが適用可能である。本実施形態では、例えば図２に示した各機能部が１つの半導体装置に集積されていて、半導体装置内の機能部でメモリ部に対するパトロールを実行する。
【００２３】
図４（Ａ）は、第１の実施形態におけるメモリアクセス時の優先順位を説明するフローチャートである。まず、通常のメモリアクセスが発生しているか否かが判定され（４０１）、通常のメモリアクセスが発生している場合、通常のメモリアクセスが実行される（４０２）。通常のメモリアクセスが発生していなければ、次に優先パトロールが発生しているか否かが判定され（４０３）、優先パトロールが発生している場合、優先パトロールが実行される（４０４）。通常のメモリアクセス及び優先パトロールがともに発生していなければ、次に通常のパトロールが発生しているか否かが判定され（４０５）、通常のパトロールが発生している場合、通常のパトロールが実行される（４０６）。
【００２４】
このように本実施形態では、メモリ部４０に対するアクセスは、通常のメモリアクセスが最優先で行われ、通常のメモリアクセスが発生しないタイミングで優先パトロールが行われる。また、通常のメモリアクセス及び優先パトロールが行われないタイミングで、通常のパトロールが行われる。
【００２５】
例えば、図４（Ｂ）に一例を示すように、通常パトロール−Ａに示すタイミング４１１−１、４１１−２、４１１−３で、通常のメモリアクセスや優先パトロールがなければ通常のパトロールを実施するものとする。それに対して、通常メモリアクセスに示すタイミング４１２で通常のメモリアクセスが発生し、優先パトロールに示すタイミング４１３で優先パトロールが発生したとする。
【００２６】
この場合には、通常のメモリアクセスが発生したタイミングと重なっているタイミング４１１−２での通常のパトロールは次のタイミングに実施され、優先パトロールが発生したタイミングと重なっているタイミング４１１−３での通常のパトロールは次のタイミングに実施されることになる。すなわち、通常パトロール−Ｂに示すように、タイミング４１４−１、４１４−２、４１４−３で通常のパトロールが実施される。
【００２７】
第１の実施形態では、複数のメモリチップでシングルビットエラーが検出された場合に優先パトロールを実行する。検出されたシングルビットエラーが中性子線等の影響により発生したと仮定し、優先パトロール制御部１０が、各メモリチップにおいてシングルビットエラーが検出された位置から中性子線等の進行方向を推定し、他の階層のメモリチップにおいて優先パトロールを行う検査領域を決定し実行する。
【００２８】
図５（Ａ）及び図５（Ｂ）を参照して、第１の実施形態における優先パトロールを説明する。図５（Ａ）は、メモリ部４０のメモリチップ４１−１〜４１−３を立体的に示しており、図５（Ｂ）は、メモリ部４０のメモリチップ４１−１〜４１−３を上部から重ねて見た様子を示している。
【００２９】
例えば、図５（Ａ）に示すように１層目のメモリチップ４１−１及び２層目のメモリチップ４１−２でシングルビットエラーが検出されたとする。このとき、優先パトロール制御部１０は、エラー情報に基づいてシングルビットエラーが発生した１層目及び２層目のＲＡＭセルの位置５０１、５０２を通る直線と３層目のメモリチップ４１−３との交点を求め、３層目における優先パトロールの実施領域の中心位置５０３とする。
【００３０】
続いて、優先パトロール制御部１０は、図５（Ｂ）に示すように、中心位置５０３と、設定されている横方向の領域サイズΔＨｃ及び縦方向の領域サイズΔＶｃとから、優先パトロールの開始位置（スタート座標）ＳＰ及び終了位置（エンド座標）ＥＰをそれぞれ求めることで優先パトロールを実行する領域５０４を決定する。そして、優先パトロール制御部１０は、決定した領域５０４での優先パトロールを実行し、領域内のすべてのＲＡＭセルに対する診断アクセスを行う。
【００３１】
第１の実施形態における優先パトロール制御部１０の動作について説明する。図６は、第１の実施形態における優先パトロール制御部１０の例を示す図である。メモリ部４０が有する複数のメモリチップでシングルビットエラーが検出されると、シングルビットエラーが検出されていない他の階層の優先パトロールが起動される。優先パトロール制御部１０の範囲決定部１２では、選択部６０１、６０２、６０３が、エラー情報２１−１〜２１−３のバリッドフラグＶ１〜Ｖ３に基づいて位置情報としての座標を出力する。
【００３２】
すなわち、選択部６０１、６０２、６０３のそれぞれは、設定されているバリッドフラグに応じて、シングルビットエラーが検出されたＲＡＭセルの座標を選択し出力する。選択部６０１が出力する座標（Ｘａ，Ｙａ）及び選択部６０２が出力する座標（Ｘｂ，Ｙｂ）は、シングルビットエラーが検出されたＲＡＭセルの座標の差分（図５に示す例では位置５０１と位置５０２との差分）を計算するために使用される。また、選択部６０３が出力する座標（Ｘｃ，Ｙｃ）は、優先パトロールを実行する領域の中心位置５０３を計算するために使用される。
【００３３】
したがって、例えば１層目及び２層目でシングルビットエラーが検出された場合、すなわちバリッドフラグＶ１、Ｖ２が設定されている場合、選択部６０１はエラー情報２１−１における座標（Ｘ１、Ｙ１）を座標（Ｘａ，Ｙａ）として出力し、選択部６０２はエラー情報２１−２における座標（Ｘ２、Ｙ２）を座標（Ｘｂ，Ｙｂ）として出力する。選択部６０３は、エラー情報２１−１における座標（Ｘ１、Ｙ１）又はエラー情報２１−２における座標（Ｘ２、Ｙ２）の何れかを座標（Ｘｃ，Ｙｃ）として出力する。
【００３４】
また、例えば１層目及び３層目でシングルビットエラーが検出された場合、すなわちバリッドフラグＶ１、Ｖ３が設定されている場合、選択部６０１はエラー情報２１−１における座標（Ｘ１、Ｙ１）を座標（Ｘａ，Ｙａ）として出力し、選択部６０２はエラー情報２１−３における座標（Ｘ３、Ｙ３）を座標（Ｘｂ，Ｙｂ）として出力する。選択部６０３は、エラー情報２１−１における座標（Ｘ１、Ｙ１）又はエラー情報２１−３における座標（Ｘ３、Ｙ３）の何れかを座標（Ｘｃ，Ｙｃ）として出力する。
【００３５】
また、例えば２層目及び３層目でシングルビットエラーが検出された場合、すなわちバリッドフラグＶ２、Ｖ３が設定されている場合、選択部６０１はエラー情報２１−２における座標（Ｘ２、Ｙ２）を座標（Ｘａ，Ｙａ）として出力し、選択部６０２はエラー情報２１−３における座標（Ｘ３、Ｙ３）を座標（Ｘｂ，Ｙｂ）として出力する。選択部６０３は、エラー情報２１−２における座標（Ｘ２、Ｙ２）又はエラー情報２１−３における座標（Ｘ３、Ｙ３）の何れかを座標（Ｘｃ，Ｙｃ）として出力する。
【００３６】
次に、範囲決定部１２では、演算部６０４が、選択部６０１から出力された座標（Ｘａ，Ｙａ）と選択部６０２から出力された座標（Ｘｂ，Ｙｂ）とから、Ｘ座標の差分値ΔＸｄ（＝Ｘａ−Ｘｂ）及びＹ座標の差分値ΔＹｄ（＝Ｙａ−Ｙｂ）を計算する。続いて、範囲決定部１２では、演算部６０５が、演算部６０４で計算された差分値ΔＸｄ、ΔＹｄと、選択部６０３から出力された座標（Ｘｃ，Ｙｃ）と、領域サイズ設定部１１に設定されている領域サイズΔＨｃ、ΔＶｃとから、優先パトロールを実行する領域を決定する。
【００３７】
演算部６０５は、まず、演算部６０４で計算された差分値ΔＸｄ、ΔＹｄと、選択部６０３から出力された座標（Ｘｃ，Ｙｃ）とから、優先パトロールを実行する領域の中心位置５０３の座標（Ｘ０，Ｙ０）を計算する。メモリ部４０におけるチップの実装間隔が等間隔である場合、座標（Ｘ０，Ｙ０）は、座標（Ｘｃ，Ｙｃ）に対して差分値ΔＸｄ、ΔＹｄ（又はその整数倍）を加算又は減算することで算出される。
【００３８】
例えば、１層目及び２層目でシングルビットエラーが検出され、座標（Ｘｃ，Ｙｃ）としてエラー情報２１−１における座標（Ｘ１、Ｙ１）が出力されている場合、座標（Ｘ０，Ｙ０）は、Ｘ０＝Ｘｃ＋２ΔＸｄ、Ｙ０＝Ｙｃ＋２ΔＹｄで求められる。また、例えば、１層目及び２層目でシングルビットエラーが検出され、座標（Ｘｃ，Ｙｃ）としてエラー情報２１−２における座標（Ｘ２、Ｙ２）が出力されている場合、座標（Ｘ０，Ｙ０）は、Ｘ０＝Ｘｃ＋ΔＸｄ、Ｙ０＝Ｙｃ＋ΔＹｄで求められる。なお、メモリ部４０におけるチップの実装間隔が等間隔でない場合には、間隔の違いに応じて差分値ΔＸｄ、ΔＹｄを適宜補正すればよい。
【００３９】
続いて、演算部６０５は、算出された座標（Ｘ０，Ｙ０）と、領域サイズ設定部１１に設定されている領域サイズΔＨｃ、ΔＶｃとから、優先パトロールを実行する領域の開始位置ＳＰを示すスタート座標（ＸＳ，ＹＳ）及び終了位置ＥＰを示すエンド座標（ＸＥ，ＹＥ）をそれぞれ計算する。スタート座標（ＸＳ，ＹＳ）は、ＸＳ＝Ｘ０−ΔＨｃ、ＹＳ＝Ｙ０−ΔＶｃで求められ、エンド座標（ＸＥ，ＹＥ）は、ＸＥ＝Ｘ０＋ΔＨｃ、ＹＥ＝Ｙ０＋ΔＶｃで求められる。このようにして、演算部６０５は、優先パトロールを実行する領域を決定する。
【００４０】
優先パトロールを実行する領域が範囲決定部１２により決定されると、実行制御部１３は、範囲決定部１２で算出されたスタート座標（ＸＳ，ＹＳ）及びエンド座標（ＸＥ，ＹＥ）に従って優先パトロールを実行する。実行制御部１３は、スタート座標（ＸＳ，ＹＳ）からエンド座標（ＸＥ，ＹＥ）まで座標を順次更新しつつ、座標をアドレスに変換して領域内のすべてのＲＡＭセルに対する診断アクセスを行う。この診断アクセスにおいて、シングルビットエラーが検出された場合、エラーチェック・訂正部５０によるエラー訂正処理が施されてメモリ部４０にデータが書き戻される。
【００４１】
エンド座標（ＸＥ，ＹＥ）に達し領域内のすべてのＲＡＭセルに対する診断アクセスが完了すると、実行制御部１３は、優先パトロールの完了をエラー情報更新部１４に通知する。その通知を受けたエラー情報更新部１４は、エラー情報２１−１〜２１−３に設定されているバリッドフラグをクリアする。以上のようにして、優先パトロールが終了する。
【００４２】
第１の実施形態によれば、複数のメモリチップでシングルビットエラーが検出された場合、その位置に基づいて他の階層のメモリチップにおいてシングルビットエラーが発生しうる領域を推定して、通常のパトロールよりも優先してパトロールを実行する。これにより、シングルビットエラーが検出された場合に他の階層のメモリチップでのシングルビットエラーを早期に検出可能になりメモリの信頼性を向上させることができる。
【００４３】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。第２の実施形態における情報処理装置及びメモリの構成は第１の実施形態と同様である。以下の説明では、第２の実施形態において、第１の実施形態と同様の点については説明を省略する。
【００４４】
第２の実施形態では、複数のメモリチップの内の何れか１つのメモリチップでシングルビットエラーが検出された場合に優先パトロールを実行する。シングルビットエラーが検出された位置を中心位置とし、シングルビットエラーが検出されたメモリチップとの距離（間隔長）が大きくなるにつれて優先パトロールを行う領域を広げるようにして、他の階層のメモリチップでの優先パトロールを実行する。すなわち、シングルビットエラーが検出されたメモリチップから離れるほど他の階層のメモリチップでの優先パトロールを行う領域を広くする。
【００４５】
図７（Ａ）及び図７（Ｂ）を参照して、第２の実施形態における優先パトロールを説明する。図７（Ａ）は、メモリ部４０のメモリチップ４１−１〜４１−３を立体的に示しており、図７（Ｂ）は、メモリ部４０のメモリチップ４１−１〜４１−３を上部から重ねて見た様子を示している。
【００４６】
例えば、図７（Ａ）に示すように１層目のメモリチップ４１−１でシングルビットエラーが検出されたとする。このとき、優先パトロール制御部１０は、エラー情報に基づいてシングルビットエラーが発生した１層目のＲＡＭセルの位置７０１を、他の階層で優先パトロールを実行する際の中心位置とする。そして、優先パトロール制御部１０は、図７（Ｂ）に示すように、中心位置７０１と、設定されている横方向の領域サイズΔＨｃ２及び縦方向の領域サイズΔＶｃ２とから、２層目における優先パトロールの開始位置（スタート座標）ＳＰ２及び終了位置（エンド座標）ＥＰ２をそれぞれ求めることで優先パトロールを実行する領域７０２を決定する。
【００４７】
また、優先パトロール制御部１０は、中心位置７０１と、設定されている横方向の領域サイズΔＨｃ３及び縦方向の領域サイズΔＶｃ３とから、３層目における優先パトロールの開始位置（スタート座標）ＳＰ３及び終了位置（エンド座標）ＥＰ３をそれぞれ求めることで優先パトロールを実行する領域７０３を決定する。ここで、本実施形態では、シングルビットエラーが検出されたメモリチップからより遠いため、領域サイズΔＨｃ３、ΔＶｃ３の大きさは、領域サイズΔＨｃ２、ΔＶｃ２の大きさよりも大きく設定されている。なお、領域サイズΔＨｃ２、ΔＶｃ２及び領域サイズΔＨｃ３、ΔＶｃ３は、設定により可変可能である。
【００４８】
第２の実施形態における優先パトロール制御部１０の動作について説明する。図８は、第２の実施形態における優先パトロール制御部１０の例を示す図である。以下では、１層目のメモリチップでシングルビットエラーが検出され、２層目及び３層目のメモリチップで優先パトロールを実行する場合を例に説明する。なお、２層目のメモリチップでシングルビットエラーが検出された場合には、１層目及び３層目のメモリチップに同様な大きさの検査領域を決定して優先パトロールを実行すればよい。また、３層目のメモリチップでシングルビットエラーが検出された場合には、２層目よりも１層目の検査領域を広くするようにして２層目及び１層目のメモリチップに検査領域を決定して優先パトロールを実行すればよい。
【００４９】
１層目のメモリチップでシングルビットエラーが検出されると、エラー情報２１−１のバリッドフラグＶ１が設定されるとともに、エラーが検出されたＲＡＭセルの位置を示す座標（Ｘ１，Ｙ１）が保持される。エラー情報２１−１のバリッドフラグＶ１が設定されたことで、１層目を除く他の階層の優先パトロールが起動される。範囲決定部１２では、演算部８０１が、エラー情報２１−１における座標（Ｘ１，Ｙ１）と、領域サイズ設定部１１に設定されている領域サイズΔＨｃ２、ΔＶｃ２とから、２層目で優先パトロールを実行する領域を決定する。
【００５０】
演算部８０１は、座標（Ｘ１，Ｙ１）及び設定されている領域サイズΔＨｃ２、ΔＶｃ２を基に、２層目で優先パトロールを実行する領域の開始位置ＳＰ２を示すスタート座標（ＸＳ２，ＹＳ２）及び終了位置ＥＰ２を示すエンド座標（ＸＥ２，ＹＥ２）をそれぞれ計算する。スタート座標（ＸＳ２，ＹＳ２）は、ＸＳ２＝Ｘ１−ΔＨｃ２、ＹＳ２＝Ｙ１−ΔＶｃ２で求められ、エンド座標（ＸＥ２，ＹＥ２）は、ＸＥ２＝Ｘ１＋ΔＨｃ２、ＹＥ２＝Ｙ１＋ΔＶｃ２で求められる。
【００５１】
優先パトロールを実行する領域が範囲決定部１２により決定されると、実行制御部１３では、実行部８０２が、範囲決定部１２で算出されたスタート座標（ＸＳ２，ＹＳ２）及びエンド座標（ＸＥ２，ＹＥ２）に従って２層目での優先パトロールを実行する。実行部８０２は、スタート座標（ＸＳ２，ＹＳ２）からエンド座標（ＸＥ２，ＹＥ２）まで座標を順次更新しつつ、座標をアドレスに変換して領域内のすべてのＲＡＭセルに対する診断アクセスを行う。この診断アクセスにおいて、シングルビットエラーが検出された場合、エラーチェック・訂正部５０によるエラー訂正処理が施されてメモリ部４０にデータが書き戻される。
【００５２】
エンド座標（ＸＥ２，ＹＥ２）に達し２層目での優先パトロールが完了すると、範囲決定部１２では、演算部８０３が、エラー情報２１−１における座標（Ｘ１，Ｙ１）と、領域サイズ設定部１１に設定されている領域サイズΔＨｃ３、ΔＶｃ３とから、３層目で優先パトロールを実行する領域を決定する。
【００５３】
演算部８０３は、座標（Ｘ１，Ｙ１）及び設定されている領域サイズΔＨｃ３、ΔＶｃ３を基に、３層目で優先パトロールを実行する領域の開始位置ＳＰ３を示すスタート座標（ＸＳ３，ＹＳ３）及び終了位置ＥＰ３を示すエンド座標（ＸＥ３，ＹＥ３）をそれぞれ計算する。スタート座標（ＸＳ３，ＹＳ３）は、ＸＳ３＝Ｘ１−ΔＨｃ３、ＹＳ３＝Ｙ１−ΔＶｃ３で求められ、エンド座標（ＸＥ３，ＹＥ３）は、ＸＥ３＝Ｘ１＋ΔＨｃ３、ＹＥ３＝Ｙ１＋ΔＶｃ３で求められる。
【００５４】
優先パトロールを実行する領域が範囲決定部１２により決定されると、実行制御部１３では、実行部８０４が、範囲決定部１２で算出されたスタート座標（ＸＳ３，ＹＳ３）及びエンド座標（ＸＥ３，ＹＥ３）に従って３層目での優先パトロールを実行する。実行部８０４は、スタート座標（ＸＳ３，ＹＳ３）からエンド座標（ＸＥ３，ＹＥ３）まで座標を順次更新しつつ、座標をアドレスに変換して領域内のすべてのＲＡＭセルに対する診断アクセスを行う。この診断アクセスにおいて、シングルビットエラーが検出された場合、エラーチェック・訂正部５０によるエラー訂正処理が施されてメモリ部４０にデータが書き戻される。
【００５５】
エンド座標（ＸＥ３，ＹＥ３）に達し３層目での優先パトロールが完了し、すべての層での優先パトロールが完了すると、実行制御部１３は、優先パトロールの完了をエラー情報更新部１４に通知する。その通知を受けたエラー情報更新部１４は、エラー情報２１−１に設定されているバリッドフラグＶ１をクリアする。以上のようにして、優先パトロールが終了する。
【００５６】
なお、前述した説明では、２層目での優先パトロールを実行した後に３層目での優先パトロールを実行するようにしているが、優先パトロールを実行する順序は任意である。シングルビットエラーが検出された階層のメモリチップとは異なるすべての階層のメモリチップで、検出されたシングルビットエラーに基づく優先パトロールが実行されればよい。
【００５７】
第２の実施形態によれば、複数のメモリチップの何れか１つのメモリチップでシングルビットエラーが検出された場合、その位置に基づいて他の階層のメモリチップにおけるパトロール領域を決定し、通常のパトロールよりも優先してパトロールを実行する。これにより、シングルビットエラーが検出された場合に他の階層のメモリチップでのシングルビットエラーを早期に検出可能になりメモリの信頼性を向上させることができる。
【００５８】
なお、前述した実施形態では、複数のメモリチップを複数の階層に実装した例を示したが、これに限定されるものではない。例えば、図９に示すようにＣＰＵチップ９０１とメモリチップ９０３、９０４とが複数の階層に実装されており、ＣＰＵチップ９０１内にＲＡＭマクロで構成され、コア部とメモリチップ９０３、９０４との間でデータを保持するキャッシュメモリ９０２を有する場合にも、同様に適用可能である。また、キャッシュメモリに限らず、ＲＡＭマクロで構成されたローカルメモリやレジスタバッファ等を有するチップとメモリチップとが３次元実装されている場合にも前述した実施形態は適用可能である。
【００５９】
また、前述した第１の実施形態に示した優先パトロールに係る機能と第２の実施形態に示した優先パトロールに係る機能とを１つの半導体装置（メモリ）に備えるようにしてもよい。この場合には、第１の実施形態に示した優先パトロールを実行するか、第２の実施形態に示した優先パトロールを実行するかを、モード設定等に応じて切り替えできるようにすればよい。
【００６０】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６１】
１  処理部（ＣＰＵ）
２  ＣＰＵコア
３  キャッシュメモリ
４  メモリ
１０  優先パトロール制御部
１１  領域サイズ設定部
１２  範囲決定部
１３  実行制御部
１４  エラー情報更新部
２０  エラー情報保持部
３０  アクセス制御部
４０  メモリ部
４１−１〜４１−３  メモリチップ
５０  エラーチェック・訂正部
６０  エラーチェックコード生成部
【図１】
0006520755.tif 000002
【図２】
0006520755.tif 000003
【図３】
0006520755.tif 000004
【図４】
0006520755.tif 000005
【図５】
0006520755.tif 000006
【図６】
0006520755.tif 000007
【図７】
0006520755.tif 000008
【図８】
0006520755.tif 000009
【図９】
0006520755.tif 000010