(57)【特許請求の範囲】
【請求項１】
バスを介してメモリコントローラに並列に接続される複数の半導体記憶装置を有するメモリシステムであって、前記複数の半導体記憶装置の各々は、
自身を特定する識別子を格納する識別子レジスタと、
前記メモリコントローラからの前記バスを介して与えられるテスト実行コマンドに従って自身の半導体記憶装置の内部回路のテストを行うためのテスト回路手段と、
前記テスト回路手段のテスト結果を示す情報を格納するテスト結果格納手段と、
前記メモリコントローラからの前記バスを介して与えられるテスト結果送信コマンドに従って前記テスト結果格納手段に格納されたテスト結果情報を前記メモリコントローラへ転送する手段とを備え、テスト結果が不良を示す半導体記憶装置は、前記メモリコントローラにより、前記識別子レジスタへの識別子の発行および格納対象から除外される、メモリシステム。
【請求項２】
前記バスは、前記テスト結果実行コマンドおよび前記テスト結果送信コマンドが伝送される第１のリンクと、前記第１のリンクとは異なり、前記テスト結果情報を伝送する第２のリンクとを含む、請求項１記載のメモリシステム。
【請求項３】
前記半導体記憶装置の各々は、前記メモリシステム内で一意的に定められる識別子を格納する手段を含み、前記テスト結果送信コマンドは前記識別子とともに与えられ、
前記半導体記憶装置の各々はさらに、
前記メモリコントローラから与えられた識別子が前記識別子格納手段に格納された識別子と一致したときに前記テスト結果送信コマンドを実行する手段を含む、請求項１または２記載のメモリシステム。
【請求項４】
前記テスト実行コマンドは、前記複数の半導体記憶装置に対して共通に発行されて同時に実行されるブロードキャストコマンドである、請求項１記載のメモリシステム。
【請求項５】
メモリシステム内で用いられる半導体記憶装置であって、
内部回路のテストを行なうためのテスト回路手段、
前記テスト回路手段のテスト結果情報を格納するためのテスト結果格納手段、バスを介して与えられるテスト実行コマンドに応答して前記テスト回路手段を活性化させて前記内部回路のテストを行なわせるための手段、
識別子入力許可を示す識別子入力イネーブルノードと識別子設定完了を示すための識別子出力イネーブルノード、
前記識別子入力イネーブルノードおよび前記識別子出力イネーブルノードがそれぞれ活性状態および非活性状態のときイネーブル状態とされ、前記バスを介して与えられる識別子を受けて格納するための識別子格納手段、および
前記テスト結果格納手段のテスト結果情報が前記内部回路の不良を示すとき前記識別子入力イネーブルノードと前記識別子出力イネーブルノードとを電気的に結合して前記識別子格納手段への識別子格納を禁止するための手段を備える、半導体記憶装置。
【請求項６】
メモリシステム内で用いられる半導体記憶装置であって、
該半導体記憶装置の内部回路のテストを行なうためのテスト回路手段と、
前記テスト回路手段のテスト結果情報を格納するためのテスト結果格納手段と、
バスを介して与えられるテスト実行コマンドに応答して前記テスト回路手段を活性化する手段と、
識別子入力許可を示す識別子入力イネーブルノードと、
前記識別子の設定完了を示すための識別子出力イネーブルノードと、
前記識別子入力イネーブルノードおよび前記識別子出力イネーブルノードがそれぞれ活性状態および非活性状態のときイネーブル状態とされ、前記バスを介して与えられる識別子を受けて格納するための識別子格納手段と、
前記テスト結果格納手段のテスト結果情報が前記内部回路の不良を示すとき前記識別子出力イネーブルノードを非活性状態に固定する手段とを備える、半導体記憶装置。
【請求項７】
前記メモリシステムは前記バスを介して並列に接続される複数の前記半導体記憶装置を含み、
前記識別子入力イネーブルノードは前記メモリシステムの前段の半導体記憶装置の識別子出力イネーブルノードに接続され、かつ前記識別子出力イネーブルノードは前記メモリシステムにおける次段の半導体記憶装置の識別子入力イネーブルノードに接続される、請求項５または６に記載の半導体記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はメモリシステムおよびそれに用いるための半導体記憶装置に関し、特に高速でデータを転送することのできるメモリシステムおよびそのための半導体記憶装置に関する。より特定的には、この発明は、「シンクリンクＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）」に関する。
【０００２】
【従来の技術】
マイクロプロセサの性能が高くなり、また記憶装置としてのＤＲＡＭの記憶容量も大きくなってきている。しかしながら、ＤＲＡＭの動作速度がマイクロプロセサの動作速度よりも遅く、マイクロプロセサが要求する大量のデータ（命令を含む）を高速でＤＲＡＭとプロセサとの間で転送することができない。この高速データ転送という要求を満たすために、メモリコントローラに対して複数のＤＲＡＭをバスを介して並列に接続し、クロック信号に同期して連続的にデータ転送を行なう高速メモリシステムが種々提案されている。以下、高速メモリシステムの一例として、記憶装置として「シンクリンクＤＲＡＭ」を用いるメモリシステムについて説明する。
【０００３】
図１０（Ａ）は、現在提案されているメモリシステムの構成を概略的に示す図である。図１０（Ａ）において、メモリシステムは、メモリコントローラ１と、複数の並列に接続される複数の半導体記憶装置（以下、ＤＲＡＭと称す）ＤＭ０〜ＤＭ３と、これらのＤＲＡＭ  ＤＭ０〜ＤＭ３に共通に接続され、コントローラ１からのコマンド、アドレスおよびデータを転送するセンドリンク１０と、ＤＲＡＭ  ＤＭ０〜ＤＭ３に共通に接続され、これらのＤＲＡＭ  ＤＭ０〜ＤＭ３から読出されたデータをコントローラ１へ転送するためのシンクリンク２０と、ＤＲＡＭ  ＤＭ０〜ＤＭ３に対し、識別子（スレーブＩＤ）を設定するための制御信号を順次転送する制御信号線３０を含む。
【０００４】
ＤＲＡＭは、最大６３個まで設けることができる。センドリンク１０およびシンクリンク２０は、コントローラ１からのアクセス要求（リクエスト）経路とコントローラ１に対するアクセス応答（レスポンス：データ返送）経路の和が等しくなるように各ＤＲＡＭ  ＤＭ０〜ＤＭ３に接続される。すなわち、シンクリンク２０は、ＤＲＡＭ  ＤＭ０〜ＤＭ３それぞれに接続され、データをＤＲＡＭ
ＤＭ０からＤＲＡＭ  ＤＭ３方向へ転送する部分と、ＤＲＡＭ  ＤＭ３からコントローラ１方向へデータ（レスポンス）を転送する部分とを含む。
【０００５】
この図１０（Ａ）に示すメモリシステムにおいては、ＤＲＡＭ  ＤＭ０〜ＤＭ３は、それぞれ固有の識別子（スレーブＩＤ）が割当てられる。コントローラ１は、このスレーブＩＤを用いてＤＲＡＭ  ＤＭ０〜ＤＭ３にアクセスする。このメモリシステムにおいては、センドリンク１０およびシンクリンク２０においては、すべて情報がパケットの形態で送出される。またセンドリンク１０は、８ビットまたは９ビット幅を有し、シンクリンク２０は、１６ビットまたは１８ビットの幅を備える。センドリンクは、図示しないクロックの立上がりエッジおよび立下がりエッジの両エッジに同期して情報を送出し、シンクリンクは、このクロック信号の一方のエッジに同期して情報を送信する。またセンドリンク１０およびシンクリンク２０という２つのバスを用いて情報を転送するため、ＤＲＡＭ
ＤＭ０〜ＤＭ３に対するセンドリンク１０を介してのアクセス要求発生時に、シンクリンク２０を介して別のＤＲＡＭからのデータを読出を行なうことができ、高速データ転送が可能となる。このメモリシステムのスレーブＩＤの設定は以下のようにして行なわれる。以下、このスレーブＩＤの設定シーケンスについて図１０（Ａ）〜（Ｄ）を参照して説明する。
【０００６】
図１０（Ａ）において、コントローラ１は、ブロードキャストモードで、ハードリセットコマンドｒｓｔＨＲＤをセンドリンク１０上に送出する。このハードリセットコマンドに従ってＤＲＡＭ  ＤＭ０〜ＤＭ３は、自身のスレーブＩＤを初期値（６２）に設定する。
【０００７】
ＤＲＡＭ  ＤＭ０〜ＤＭ３は、識別子入力イネーブル入力ノードとしてのセレクト入力ＳＩＮおよび識別子設定完了イネーブル出力ノードとしてのセレクト出力ＳＯＵＴを有する。このセレクト入力ＳＩＮおよびセレクト出力ＳＯＵＴは、ＤＲＡＭ  ＤＭ０〜ＤＭ３を介して制御信号線３０により相互接続される。ＤＲＡＭはセレクト入力ＳＩＮが“１”にあり、かつセレクト出力ＳＯＵＴが“０”のときに、センドリンク１０上に与えられた値を自身の識別子として取込むことができる。
【０００８】
ＤＲＡＭ  ＤＭ０〜ＤＭ３は、スレーブＩＤが６２の初期値の間、このセレクト出力ＳＯＵＴを“０”の値に維持する。
【０００９】
図１０（Ｂ）において、コントローラ１は、ＤＲＡＭ  ＤＭ０〜ＤＭ３の初期化（リセット）の後、識別子設定コマンドｃｆｇＨＲＤをセンドリンク１０上に送出する。この識別子設定コマンドｃｆｇＨＲＤはパケットの形態で送出され、このパケットは、スレーブＩＤの番号を示すノードと、識別子として取込むべき値とを含む。コントローラ１は、また制御信号線３０上に、“１”の信号を送出し、ＤＲＡＭ  ＤＭ０のセレクト入力ＳＩＮを活性状態とする。ＤＲＡＭ  ＤＭ０は、そのセレクト入力ＳＩＮが“１”の活性状態にあり、またセレクト出力ＳＯＵＴは“０”の非活性状態にあるため、このコマンドｃｆｇＨＲＤに従って、初期設定されたスレーブＩＤの値６２をセンドリンク１０上に与えられた値０に更新する。ＤＲＡＭ  ＤＭ０は、このスレーブＩＤを“０”に設定した後、セレクト出力ＳＯＵＴ上に“１”の信号を送出する。これにより、ＤＲＡＭ  ＤＭ０は、自身の識別子の設定が完了したことを示し、次段のＤＲＡＭ  ＤＭ１に対し、スレーブＩＤの入力を可能にする。
【００１０】
ＤＲＡＭ  ＤＭ１〜ＤＭ３は、ＤＲＡＭ  ＤＭ０におけるスレーブＩＤの設定時においては、そのセレクト入力ＳＩＮおよびセレクト出力ＳＯＵＴがともに“０”であるため、このセンドリンク１０上に送出されたコマンドに従う識別子設定動作は行なわない。
【００１１】
この図１０（Ｂ）に示す動作が、ＤＲＡＭ  ＤＭ１に対しても行なわれる。
次いで図１０（Ｃ）に示すように、コントローラ１は、再びセンドリンク１０上に、識別子設定コマンドｃｆｇＨＲＤを送出する。このコマンドを含むパケットにおいては、ノード番号および識別子番号（値）が含まれている。ＤＲＡＭ
ＤＭ２は、そのセレクト入力ＳＩＮが“１”であり、またセレクト出力ＳＯＵＴが“０”であるため、この初期値設定コマンドｃｆｇＨＲＤに従って、スレーブＩＤを６２から２に更新し、このスレーブＩＤの更新の後、セレクト出力ＳＯＵＴを“１”の状態に設定する。
【００１２】
次いで、図１０（Ｄ）に示すように、所定時間経過後（ＤＲＡＭ  ＤＭ２において、スレーブＩＤの設定に要する時間経過後）、コントローラ１は、再び識別子設定コマンドｃｆｇＨＲＤを送出し、またノード番号６２および識別子としての値３を併せて送出する。ＤＲＡＭ  ＤＭ３は、このセンドリンク１０上の識別子設定コマンドｃｆｇＨＲＤに従って自身のスレーブＩＤを６２から３に更新し、セレクト出力ＳＯＵＴ上に“１”の信号を出力する。コントローラ１は、この制御信号線３０を介して“１”の信号が返送されたことを検出すると、すべてのＤＲＡＭ  ＤＭ０〜ＤＭ３のスレーブＩＤの設定が完了したことを了解する。
【００１３】
すなわち、コントローラ１は、制御信号線３０を介して“１”の信号が返送されるまで、この識別子設定コマンドをその値を順次増分して繰返し送出する。
【００１４】
この制御信号線３０を介して“１”の信号すなわち識別子設定完了信号をコントローラ１へ返送することにより、コントローラ１は、メモリシステムに含まれるＤＲＡＭの数を知らなくても、このメモリシステムに含まれるＤＲＡＭに対しスレーブＩＤを順次設定することができる。また、この制御信号線３０を介して識別子設定完了信号をコントローラ１へ返送することにより、コントローラ１は、このメモリシステムに含まれるＤＲＡＭの数および識別子設定完了を認識することができる。
【００１５】
【発明が解決しようとする課題】
従来のメモリシステムにおいては、コントローラ１は、スレーブＩＤを順次０から増分している。このスレーブＩＤに１を加えた値が、コントローラ１とＤＲＡＭとの距離を示す。したがってコントローラ１は、このメモリシステム使用中において、アクセス不良が生じたと判定した場合、そのアクセス不良を生じたＤＲＡＭのスレーブＩＤをコントローラ１が利用者に知らせれば、利用者は、この不良を生じたＤＲＡＭを取替えることができる。
【００１６】
しかしながら、コントローラ１がこの不良を検出しない場合、不良ＤＲＡＭが使用されることになり、システムの誤動作が生じる。また、コントローラ１が、アクセス不良を検出したとしても、そのアクセス不良検出までに、不良ＤＲＡＭが使用されており、それまでにおいて、正確な処理が行なわれている保証はなく、システムの性能が劣化するという問題が生じる。
【００１７】
特に、ＤＲＡＭのスレーブＩＤ設定シーケンスにおいては、セレクト入力ＳＩＮおよびセレクト出力ＳＯＵＴがそれぞれ“１”および“０”に設定されると、ＤＲＡＭは、その内部回路の良／不良にかかわらず、スレーブＩＤが設定される。したがって、メモリシステム動作前から既に不良を生じているＤＲＡＭに対しても、スレーブＩＤが設定され、不良ＤＲＡＭが使用されるため、メモリシステム動作開始時から、システム誤動作が生じるという問題があった。
【００１８】
それゆえ、この発明の目的は、不良メモリ装置を確実に排除することのできるメモリシステムおよびそのための半導体記憶装置を提供することである。
【００１９】
この発明の他の目的は、メモリ装置の不良に起因するシステム誤動作を確実に予防することのできるメモリシステムおよびそのための半導体記憶装置を提供することである。
【００２０】
【課題を解決するための手段】
第１の発明においては、メモリ装置に埋込みテスト回路を設け、メモリコントローラからの指示に従ってこの埋込テスト回路を動作させ、そのテスト結果を、メモリコントローラへ知らせる。このテスト結果が不良を示す半導体記憶装置は、メモリコントローラにより識別子の識別子レジスタへの発行および格納対象から除外される。
【００２１】
第２の発明においては、メモリ装置各々に埋込テスト回路を設け、メモリシステム初期設定時において、このテスト結果が不良の場合には、該メモリ装置へのスレーブＩＤ（識別子）の設定を禁止する。
【００２２】
第３の発明においては、メモリ装置各々に埋込テスト回路を設け、この埋込テスト回路が不良の場合には、該メモリ装置のセレクト出力を非活性状態（“０”）に固定する。
【００２３】
第１の発明においては、埋込テスト回路のテスト結果がコントローラへ送出されるため、システム初期設定時に不良メモリ装置をコントローラが認識することができ、これによりコントローラは不良メモリ装置へのアクセスを禁止することができ、不良メモリ装置に起因するシステム誤動作を防止することができる。
【００２４】
第２の発明においては、セレクト出力ノードは、システム初期設定時に埋込テスト回路により、セレクト入力ノードに結合されるため、システム初期設定時に不良メモリ装置へのスレーブＩＤ（識別子）の設定が禁止され、不良メモリ装置はコントローラにより無視されて使用されないため、この不良メモリ装置に起因するシステム誤動作を防止することができる。
【００２５】
第３の発明においては、不良メモリ装置のセレクト出力イネーブル端子は、埋込テスト回路により、非活性状態（“０”）に固定されるため、コントローラは、スレーブＩＤ（識別子）の最大値送出後もスレーブＩＤ設定完了信号が返送されないため、このメモリシステムにおける不良メモリ装置の存在を初期設定時に認識することができ、使用者によるこの不良メモリ装置の交換または排除により、実際の処理動作時における不良メモリ装置の使用を防止することができる。
【００２６】
【発明の実施の形態】
［実施の形態１］
図１は、この発明の実施の形態１に従う半導体記憶装置の構成を概略的に示す図である。図１において、半導体記憶装置ＤＭは、センドリンク１０に結合され、このセンドリンク１０上に伝達される情報を入力するインタフェースとして作用する入力バッファ５０と、入力バッファ５０を介して与えられるコマンドをデコードし、指定された動作モードを判断し、該判断結果に基づいて各種制御信号を発生するコマンドデコーダ５２と、セレクト入力ＳＩＮがＨレベル（“１”）にありかつセレクト出力ノードＳＯＵＴがＬレベル（“０”）にあるときにイネーブル状態とされ、センドリンク１０を介してメモリコントローラから伝達されるスレーブＩＤを入力バッファ５０を介して受けて格納する識別子レジスタ５４と、コマンドデコーダ５２の制御の下に、活性／非活性化され、入力バッファ５０から与えられるアドレス／書込データを受けてメモリセル選択動作、データ読出およびデータ書込を行なうメモリ部５６と、コマンドデコーダ５２の制御の下に活性化され、このメモリ部５６に対するテスト動作を行なう組込テスト回路５８と、コマンドデコーダ５２の制御の下に、メモリ部５６および組込テスト回路５８の出力の一方を選択して所定のタイミングでシンクリンク２０へ伝達する出力バッファ６０を含む。
【００２７】
コマンドデコーダ５２は、識別子レジスタ５４に格納されたスレーブＩＤ（識別子）とセンドリンク１０を介して与えられる識別子とを比較し、これらの比較結果が一致を示すときにセンドリンク１０を介して与えられたコマンドのデコード動作を行なって必要とされる内部制御信号を発生する。
【００２８】
メモリ部５６は、複数のメモリセルが配置されるメモリアレイおよびこのメモリアレイにおけるメモリセルの選択およびデータの書込／読出を制御する周辺制御回路両者を含む。組込テスト回路５８は、テストプログラムを記憶しており、起動時このテストプログラムに従って必要とされるテストデータを発生してメモリ部５６へ与える。この組込テスト回路５８は、またテスト時においてメモリ部５６の周辺制御回路へ制御信号を与えてメモリ部５６を動作させる。出力バッファ６０は、データラッチ機能を備えており、コマンドデコーダ５２からの制御信号に従ってメモリ部５６から読出されたデータおよび組込テスト回路５８のテスト結果情報の一方をラッチし、通常動作時においては、メモリ部５６から読出されたデータを選択し、後に説明する初期設定時においては、組込テスト回路５８からのテスト結果情報を出力する。
【００２９】
図２は、センドリンク１０を介して与えられるパケットの構成を概略的に示す図である。図２において、パケットは、スレーブＩＤを格納する識別子エリア６２と、コマンドを格納するコマンドエリア６４と、アドレス、データサイズ、書込データなどの情報を格納する情報エリア６６を含む。この図２に示すパケットがクロック信号（図示せず）に同期してセンドリンク１０上に伝送される。シンクリンク２０上にも、同様情報のみからなるパケットが送出される。メモリシステムの構成は、図１０に示すメモリシステムのそれと同じである。次に動作について、図３に示すフロー図を参照して説明する。
【００３０】
まず、コントローラは、メモリシステムに含まれる半導体記憶装置（メモリ）のスレーブＩＤの設定を行なう初期化シーケンスを実行する（ステップＳ１）。このスレーブＩＤの設定は、先の図１０において示したシーケンスと同じシーケンスで実行される。メモリシステムに含まれるすべての半導体記憶装置（メモリ）のスレーブＩＤが設定が完了したか否かが判別される（ステップＳ２）。このステップＳ１およびＳ２が、すべての半導体記憶装置のスレーブＩＤの設定が完了するまで実行される。
【００３１】
すべての半導体記憶装置のスレーブＩＤの設定が完了すると、次いでコントローラは、センドバス１０上にテストコマンドをスレーブＩＤとともに発行する（ステップＳ３）。このスレーブＩＤは、０から始まる。
【００３２】
メモリシステムにおいては、このセンドバス１０上に送出されるスレーブＩＤと同じスレーブＩＤを有する半導体記憶装置（メモリ）が起動され、コマンドデコーダ５２が組込テスト回路５８を起動する。組込テスト回路５８は、このコマンドデコーダ５２からのテスト実行指令に従ってメモリ部５６を所定のシーケンスで動作させてこのメモリ部５６が、正常に動作しているか否かを判別する。この組込テスト回路５８が行なうテスト動作としては、メモリ部５６に含まれるメモリセルがすべて正常にデータを記憶するか否かの判別を行なうテストモードがある。この場合、組込テスト回路５８は、書込データを発生して、メモリ部５６へ与えて、このメモリ部５６へ含まれるメモリセルに順次書込データを書込み、次いでメモリ部５６からメモリセルに記憶されたデータを読出し、この読出したデータが書込データと一致しているか否かを判別する。
【００３３】
この組込テスト回路５８は、テスト結果を出力バッファ６０へ送出し、そこにラッチされる（このテスト結果のラッチは、組込テスト回路５８に含まれるレジスタに格納されてもよい）。次いで、メモリ（半導体記憶装置）ＤＭは、コマンドデコーダ５２の制御の下に、出力バッファ６０を介して、このテスト結果情報をシンクリンク２０上に送出する。コントローラは、このシンクリンク２０を介して与えられるテスト実行結果を受け、このメモリが正常であるか否かを判別する（ステップＳ４）。次いで、コントローラは、すべてのメモリのテストが完了したか否かを判別する（ステップＳ５）。またすべてのメモリが完了していない場合には、コントローラは、スレーブＩＤを１増分し、再びテストコマンドをセンドリンク１０上に伝達する（ステップＳ６）。ステップＳ５において、すべてのメモリのテスト動作およびテスト実行結果の受信が完了すると、メモリシステムに含まれる半導体記憶装置ＤＭの良／不良が識別される。なお、テスト結果はスレーブＩＤとともに送出されてもよい。
【００３４】
メモリコントローラ１は、この半導体記憶装置の良／不良判別結果に基づいて、動作時においては、この不良の半導体記憶装置へのアクセスは行なわない。
【００３５】
なお上述の説明においては、ステップＳ３においてテストコマンドを発行した場合、このテストコマンドに従って、半導体記憶装置（メモリ）は、出力バッファ６０を介して所定時間経過後に、そのテスト結果をシンクリンク２０上に送出するように説明している。しかしながら、この場合、コントローラからのテスト結果送出コマンドが新たに発行され、このテスト結果送出コマンドに従って半導体記憶装置（メモリ）ＤＭがその組込テスト回路５８のテスト結果情報を出力バッファ６０を介してシンクリンク２０上に送出するように構成されてもよい（図３において（）で示す）。
【００３６】
図４は、コントローラに含まれるアクセス制御部の構成を概略的に示す図である。図４において、コントローラは、メモリ管理テーブル７０と、このメモリ管理テーブル７０を参照して、コマンドの発行を行なうコントロールユニット７５を含む。メモリ管理テーブル７０は、スレーブＩＤ格納エリア７１と、パス／フェイルフラグ格納エリア７２を含む。このメモリ管理テーブル７０は、スレーブＩＤそれぞれに１つのエントリＥＮを形成しており、各スレーブエントリＥＮ（ＥＮ１〜ＥＮＭＸ）は、スレーブＩＤとパス／フェイルフラグＰ／Ｆを格納する。最大のスレーブＩＤのＭＸは、この最大のスレーブＩＤのＭＸ発行前に、メモリシステムから、スレーブＩＤ設定完了信号が信号線３０を介して与えられており、このスレーブＩＤ  ＭＸは対応する半導体記憶装置を持っていない。したがってこの最大のスレーブＩＤ  ＭＸのパス／フェイルフラグは、フェイル状態ＦＡＩＬに設定され、この最大のスレーブＩＤ  ＭＸの発行は禁止される。同様、このパス／フェイルフラグ格納エリア７２において、フェイル状態に設定されたエントリに対応するスレーブＩＤの発行は禁止される。したがって、コントローラは、不良メモリへのアクセスは行なうことがなく、常に正常なメモリのみを用いて処理動作を行なうことができ、不良メモリに起因するシステム誤動作を防止することができる。
【００３７】
［変更例］
図５は、この発明の実施の形態１の変更例の動作を示すフロー図である。以下、図５に示すフロー図を参照して、この発明の実施の形態１の変更例の動作について説明する。
【００３８】
メモリコントローラは、メモリシステムにおける半導体記憶装置（メモリ）に対するスレーブＩＤの設定シーケンスが完了すると（図３のステップＳ１およびＳ２）、ブロードキャストモードでテスト実行コマンドをセンドリンク１０上に送出する（ステップＳ１０）。ブロードキャストモードにおいては、メモリシステムに含まれるすべてのメモリ（半導体記憶装置）が与えられたコマンドを実行する。したがって、半導体記憶装置ＤＭにおいて、コマンドデコーダ５２の制御の下に、組込テスト回路５８が動作し、メモリ部５６に対する所定のテスト動作を実行する。このテスト結果は、組込テスト回路５８を介して出力バッファ６０に伝達されてそこでラッチされる。したがって、このステップＳ１０におけるテスト実行コマンドにより、メモリシステムにおけるすべてのメモリ（半導体記憶装置）が同時に組込テスト回路によりテストを実行し、そのテスト結果を出力バッファ（または自身の内部レジスタ）において保持している。
【００３９】
次いで、所定時間が経過すると、コントローラ１は、テスト結果送信コマンドをスレーブＩＤ（識別子）とともにセンドリンク１０上に送出する（ステップＳ１２）。メモリシステムにおいては、このスレーブＩＤにより指定されたメモリ（半導体記憶装置）ＤＭがテスト結果送信コマンドをデコードし、その出力バッファまたは組込テスト回路にラッチされているテスト結果情報を自身のスレーブＩＤとともにシンクリンク２０上に送出する。コントローラは、この送出されたテスト結果情報に基づいて図４に示すメモリ管理テーブルを作成する。次いで、コントローラは、この返送されたスレーブＩＤまたは発行コマンドに含まれるスレーブＩＤに従って、メモリシステムに含まれるすべてのメモリからのテスト結果が送出されたか否かを判定する（ステップＳ１４）。テスト結果を送信していないメモリ（半導体記憶装置）が存在する場合には、コントローラは、スレーブＩＤを１増分し、再びテスト結果送信コマンドとともにセンドリンク１０上に送出する（ステップＳ１６）。ステップＳ１４において、すべてのメモリ（半導体記憶装置）ＤＭのテスト結果送信動作が完了すると、メモリ（半導体記憶装置）ＤＭの良／不良認識シーケンスが終了する。スレーブＩＤは特に返送されなくてもよい。
【００４０】
この図５に示す動作シーケンスの場合、メモリシステムに含まれるメモリは、すべて同時にその組込テスト回路によりメモリ部（内部回路）に対するテスト動作を実行する。したがって、メモリシステムにおけるメモリのテストをコントローラからのテスト実行コマンドに従って逐次行なう場合に比べて、テストに要する時間を短縮することができ、メモリの良／不良判別に要する時間を短縮することができる。
【００４１】
以上のように、この発明の実施の形態１に従えば、初期設定シーケンスにおいて、メモリ内の組込テスト回路に従って各メモリの内部回路（メモリ部）の良／不良を判定し、該判定結果をコントローラへ送出するように構成しているため、通常使用時において、不良メモリが使用されることはなく、不良メモリによるシステム誤動作を防止することができ、信頼性の高いメモリシステムを構築することができる。
【００４２】
［実施の形態２］
図６は、この発明の実施の形態２に従う半導体記憶装置の要部の構成を示す図である。図６において、半導体記憶装置は、セレクト入力ＳＩＮに与えられた信号を増幅する（バッファ処理する）バッファ７５と、クロック信号（システムクロック）ＣＬＫに同期して動作し、バッファ７５から与えられた信号を所定時間遅延する遅延回路７６と、バッファ７５の出力信号と遅延回路７６の出力信号の一方を組込テスト回路５８のテスト結果指示信号ＢＩＴに従って選択する選択回路７７と、選択回路７７の出力信号をバッファ処理して（増幅して）セレクト出力ノードＳＯＵＴへ伝達するバッファ７８を含む。
【００４３】
識別子レジスタ５４は、このバッファ７５の出力信号がＨレベルであり、かつバッファ７８の出力信号がＬレベルのときにイネーブル状態とされ、コマンドデコーダ５２の制御の下に、センドバスを介して与えられたスレーブＩＤを格納する。組込テスト回路５８は、コマンドデコーダ５２の制御の下に、メモリ部５６に対し所定のテストを行ない、該テスト結果を図示しないラッチ（またはレジスタ）に格納し、テスト結果情報指示信号ＢＩＴを出力する。
【００４４】
選択回路７７は、この組込テスト回路５８からのテスト結果指示信号ＢＩＴが不良を示すときには、この入力ノードａに与えられるバッファ７５の出力信号を選択し、テスト結果指示信号ＢＩＴが正常を示すときには、選択回路７７は、その入力ノードｂに与えられた遅延回路７６の出力信号を選択する。次にこの図６に示す半導体記憶装置の動作を図７に示すフロー図を参照して説明する。
【００４５】
まず、コントローラからのスレーブＩＤ初期化コマンド（ｒｓｔＨＲＤ）に従って、識別子レジスタ５４に格納されるスレーブＩＤが初期値（６２）に設定される（ステップＳ２０）。
【００４６】
このスレーブＩＤの初期値（６２）への設定の後、コントローラは、テスト実行コマンドを発行する（ステップＳ２２）。このテスト実行コマンドの発行は、スレーブＩＤを初期値（６２）として発行されてもよく、またブロードキャストモードで発行されてもよい。このテスト実行コマンドに従って、コマンドデコーダ５２の制御の下に、組込テスト回路５８がメモリ部５６に対するテスト動作を行なう。このテスト結果に従って、組込テスト回路５８は、テスト結果指示信号ＢＩＴを良／不良のいずれかの状態に設定する。メモリ部５６が正常の場合、選択回路７７は、遅延回路７６の出力信号を選択し、一方メモリ部５６が不良の場合には、選択回路７７は、このテスト結果指示信号ＢＩＴに従ってバッファ７５の出力信号を選択する。
【００４７】
次いで、コントローラから、各メモリのスレーブＩＤの設定コマンド（ｃｆｇＨＲＤ）が発行される。識別子レジスタ５４は、バッファ７５の出力信号がＨレベルであり、かつバッファ７８の出力信号がＬレベルのときにスレーブＩＤを格納することができる。したがって、このメモリ部５６が不良であり、組込テスト回路５８からのテスト結果指示信号ＢＩＴに従って、選択回路７７がバッファ７５の出力信号を選択している場合、セレクト入力ノードＳＩＮがＨレベルとされると、応じてセレクト出力ノードＳＯＵＴもＨレベルとされる。したがって、この場合においては、識別子レジスタ５４へのスレーブＩＤの書込は禁止され、次段のメモリ（半導体記憶装置）に対するスレーブＩＤの書込が行なわれる。すなわち、不良メモリ（半導体記憶装置）に対しては、識別子が割当てられず、コントローラは、この不良メモリを無視することになり、不良メモリのアクセスは防止される。
【００４８】
このスレーブＩＤの設定は、すべてのメモリに対して行なわれたか否かの判定が行なわれる（ステップＳ２６）。この判定動作は、先の実施の形態１と同様、制御信号線３０から完了信号がＨレベルとされて返送されたか否かにより判定される（ステップＳ２６）。スレーブＩＤの設定が行なわれていないメモリが存在する場合、次いでスレーブＩＤが１増分されて、再びスレーブＩＤの設定コマンドが発行される（ステップＳ２８）。すべてのメモリのスレーブＩＤの設定が完了すると、不良メモリの識別を含む初期化シーケンスが完了する。
【００４９】
上述のように、組込テスト回路５８の出力信号に従って、バッファ７５および遅延回路７６の一方の出力信号を選択する構成とすることにより、不良メモリへのスレーブＩＤの割当を禁止することができ、コントローラがメモリシステムにおいては、この不良メモリは存在しないとして動作するため、不良メモリによるシステム誤動作を防止することができる（不良メモリがアクセスされることがないため）。
【００５０】
なお遅延回路７６の有する遅延時間は、識別子設定コマンド（ｃｆｇＨＲＤ）が発行され、識別子レジスタ５４にスレーブＩＤが格納されるまでに必要とされる時間である。この遅延回路７６を用いる構成に代えて、識別子レジスタ５４にフラグ格納部を設け、このフラグをスレーブＩＤ格納後Ｈレベルに設定する（コマンドデコーダ５２の制御の下に）構成が用いられてもよい。
【００５１】
また、図７に示すフロー図において、テスト実行コマンドが発行された後に、従来と同様のメモリのスレーブＩＤの設定シーケンスが発行されてもよい。すなわち、ステップＳ２０とステップＳ２２とが入替えられてもよい。
【００５２】
また、テスト実行コマンドが発行されず、システム立上げ時において各メモリにおいて、組込テスト回路５８がその初期化シーケンスとしてテスト動作を行なうように構成されてもよい。
【００５３】
この実施の形態２においては、コントローラは、図４に示すようなメモリ管理テーブル７０において、良／不良タグ（パス／フェイルフラグ）Ｐ／Ｆを格納するエリアを設ける必要はない。
【００５４】
以上のように、この発明の実施の形態２に従えば、各メモリに設けられた組込テスト回路による内部回路（メモリ部）の良／不良の判別結果に従って、セレクト入力ノードへ与えられた信号を直接セレクト出力ノードへ伝達する（セレクト入力ノードとセレクト出力ノードを電気的に直接結合する）ようにしているため、不良メモリに対するスレーブＩＤの設定（割当）が禁止され、不良メモリがアクセスされるのを防止することができ、不良メモリ動作によるシステム誤動作を防止することができ、信頼性の高いメモリシステムを構築することができる。
【００５５】
［実施の形態３］
図８は、この発明の実施の形態３に従うメモリ（半導体記憶装置）の要部の構成を概略的に示す図である。図８に示す構成においては、セレクト出力ノードＳＯＵＴを駆動するバッファ７８の前段に、組込テスト回路５８からのテスト結果指示信号ＢＩＴに従って遅延回路７６の出力信号と接地電位の一方を選択する選択回路８０が設けられる。他の構成は、図６に示す構成と同じであり、対応する部分には同一の参照番号を付し、その詳細説明は省略する。
【００５６】
選択回路８０は、テスト結果指示信号ＢＩＴがメモリ部５６における不良を示すときには、ノードａに与えられた接地電位を選択し、一方、テスト結果指示信号ＢＩＴがメモリ部５６の正常を示すときには、選択回路８０は入力ノードｂに与えられた遅延回路７６の出力信号を選択する。この図８に示す構成において、メモリ部５６に不良が存在した場合、選択回路８０はＬレベル（接地電位レベル）を出力し、したがってセレクト出力ノードＳＯＵＴは常時非活性状態のＬレベルに固定される。したがってこの半導体記憶装置の識別子レジスタ５４へのスレーブＩＤの格納は行なわれるものの、メモリシステムにおける次段のメモリのセレクト入力ＳＩＮはＬレベルの非活性状態に固定されるため、次段以降のメモリに対するスレーブＩＤの設定は禁止される。次にこの図８に示すメモリを有するメモリシステムの動作を図９に示すフローを参照して説明する。
【００５７】
まずコントローラは、センドリンクを介して初期化コマンドｒｓｔＨＲＤをブロードキャストモードで送信し、メモリシステムに含まれる全メモリ（半導体記憶装置）のスレーブＩＤを初期値（６２）に設定する（ステップＳ３０）。
【００５８】
次いで、コントローラは、ブロードキャストモードでテスト実行コマンドをセンドリンク上に発行する（ステップＳ３１）。このテスト実行コマンドに従って、コマンドデコーダ５２からのテスト動作活性化信号に従って組込テスト回路５８が活性化され、メモリ部５６に対し所定のテスト動作を行ない、該テスト結果に従って、テスト結果指示信号ＢＩＴを対応する状態に設定する。メモリ部５６が正常な場合には、選択回路８０は、遅延回路７６の出力信号を選択し、一方メモリ部５６が不良の場合には、選択回路８０は、接地電位レベルのＬレベルの信号を選択する。
【００５９】
所定時間（テスト動作に必要な時間）が経過すると、コントローラはこのメモリシステムに含まれるメモリに対するスレーブＩＤの設定コマンド（ｃｆｇＨＲＤ）を発行する（ステップＳ３２）。この設定コマンド発行時において、コントローラは、先に図１０を参照して説明したように、隣接メモリのセレクト入力ＳＩＮにＨレベルの信号を出力する。これにより、スレーブＩＤ（識別子）で指定されたメモリに対するスレーブＩＤの識別子レジスタ５４への格納が行なわれる。
【００６０】
コントローラは、メモリシステムから返送されるスレーブＩＤ設定完了信号（メモリシステムの最終段のセレクト出力ノードＳＯＵＴから信号線３０上に伝達される信号）がＨレベルとされたか否かを見ることにより、メモリシステムに含まれるすべてのメモリに対するスレーブＩＤの設定が完了したか否かを判定する（ステップＳ３３）。図１０に示す信号線３０を介して与えられる信号がＨレベルのときには、コントローラは、メモリシステムに含まれるメモリのすべてのスレーブＩＤの設定が完了したと判定し、初期化シーケンスを終了する。
【００６１】
一方、この信号線３０を介して与えられる信号がＬレベルのときには、コントローラはまだすべてのメモリに対するスレーブＩＤの設定は完了していないと判定する。次いでコントローラは、現在発行中のスレーブＩＤは最大値（６２）であるか否かの判定を行なう。スレーブＩＤが最大値（６２）でありかつ図１０に示す信号線３０から与えられる信号がＬレベルに固定されている場合、メモリシステムにおいて、少なくとも１つの不良メモリが存在していることを示している。すなわち、不良メモリの次段の（１つ大きなスレーブＩＤを有するメモリ）のセレクト入力ノードＳＩＮはＬレベルに固定されており、したがってそのセレクト出力ノードＳＯＵＴもＬレベルに固定されている。または不良メモリのセレクト出力ノードはＬレベルに固定されている。この場合には、コントローラは、不良指示を発生し、使用者にメモリシステムにおける不良メモリが存在することを知らせる（ステップＳ３５）。
【００６２】
一方、スレーブＩＤが最大値でない場合には、コントローラはスレーブＩＤを１増分し、再びステップＳ３２へ戻り、スレーブＩＤ設定コマンドｃｆｇＨＲＤを発行する。
【００６３】
この実施の形態３においては、不良指示が与えられたとき、使用者は、このメモリシステムの全体を交換してもよく、またコントローラに指令を与えて、実施の形態１のように、組込テスト回路５８のテスト結果指示信号ＢＩＴをシンクリンクへ送出し、不良メモリを同定することが行なわれてもよい。不良メモリにおいて、スレーブＩＤが識別子レジスタ５４に格納されているため、この不良メモリは識別することができる。
なお、この図９に示すフロー図においても、ステップＳ３０とステップＳ３１とを交換し、システム起動時にテスト実行コマンドが発行された後にすべてのメモリのスレーブＩＤを初期値を設定するシーケンスが行なわれてもよい。
【００６４】
［他の適用例］
上述の説明においては、メモリとしては、ＤＲＡＭを述べているが、このメモリとしては、他の不揮発性メモリ（フラッシュメモリ）などのメモリであってもよい。
【００６５】
また、メモリシステムのバス構造は、センドリンクおよびシンクリンクを有するバス構造でなくてもよく、コントローラに対しバスを介して複数のメモリが並列に接続され、これら複数のメモリが識別子により識別されるメモリシステムであれば本発明は適用可能である。
【００６６】
また書込テスト回路の内部構成は詳細には説明していないが、標準のＤＲＡＭに搭載されている組込テスト回路（ＢＩＳＴ：ビルトイン・セルフテスト回路）であれば利用可能である。
【００６７】
またコントローラは、その初期化シーケンスとして、図示しない内蔵のカウンタを順次インクリメントすることによりスレーブＩＤの値を送出する構成が用いられればよく、その内部構成は任意である。
【００６８】
またコントローラは、メモリそれぞれにおいてスレーブＩＤが格納されて、そのメモリのセレクト出力ノードＳＯＵＴがＨレベルとされるのに要する期間（レイテンシー）が経過後に、次のスレーブＩＤ設定コマンドを発行することができればよく、これは内蔵のタイマでクロック信号をカウントすることによりこの送出タイミングは調整することができる。
【００６９】
また、このコントローラは、プロセサそのものであってもよい。またコントローラがシステムバスを介してプロセサに接続されてもよい。
【００７０】
【発明の効果】
以上のように、この発明に従えば、メモリシステムに含まれる各メモリに組込テスト回路を設け、メモリシステムの初期化時に、この組込テスト回路のテスト結果をコントローラ／プロセサへ通知するように構成しているため、システム動作時において不良メモリを使用することがなく、不良メモリに起因するシステム誤動作を防止することができ、信頼性の高いメモリシステムを構築することができる。
【００７１】
すなわち、請求項１に係る発明に従えば、半導体記憶装置の各々は、メモリコントローラからのバスを介して与えられるテスト実行コマンドに従って該半導体記憶装置の内部回路のテストを行うためのテスト回路手段と、このメモリコントローラからのバスを介して与えられるテスト結果送信指令に従ってこのテスト回路手段からのテスト結果指示信号をメモリコントローラへ転送して、不良記憶装置はメモリコントローラにより識別子レジスタへの識別子の発行および格納対象から除外するように構成したため、メモリコントローラにおいて、不良メモリ装置をアクセス対象から除外することができ、不良メモリを不使用状態とすることができ、不良メモリによるシステム誤動作を防止することができる。
【００７２】
請求項２に係る発明に従えば、このメモリシステムはコマンドが伝達される第１のリンクとその第１のリンクと異なる第２のリンクへテスト結果情報を転送しており、二重バス構造のメモリシステムにおいて、正確に不良メモリシステムを識別することができる。
【００７３】
請求項３に係る発明に従えば、メモリコントローラから与えられた識別子が識別子格納手段に格納された識別子と一致したときにのみ与えられたテスト結果転送動作を実行しており、正確に、メモリコントローラは不良メモリを識別することができる。
【００７４】
請求項４に係る発明に従えば、テスト実行コマンドは、メモリシステムに含まれる複数の半導体記憶装置において共通に同時に実行されており、テスト実行に要する時間を短縮することができ、不良メモリ検出に要する時間を短縮することができる。
【００７５】
請求項５に係る発明に従えば、半導体記憶装置にテスト回路を内蔵し、このテスト回路のテスト結果に従って、識別子入力イネーブルノードおよび識別子出力イネーブルノードの接続状況を変更しているため、不良メモリセルへの識別子の割当を禁止することができ、メモリシステムで不良メモリが使用されるのを抑制することができる。
【００７６】
請求項６に係る発明に従えば、メモリシステムの半導体記憶装置に組込テスト回路を設け、この組込テスト回路の出力信号に従って、識別子入力イネーブルノードおよび識別子出力イネーブルノードの接続経路を変更し、不良の場合には、識別子出力イネーブルノードを常時非活性状態とするため、この不良メモリ以降のメモリ（半導体記憶装置）への識別子の割当を禁止することができ、応じてメモリコントローラは、不良メモリの存在を容易に識別することができる。
【００７７】
請求項７に係る発明に従えば、複数の半導体記憶装置の識別子入力イネーブルノードおよび識別子出力イネーブルノードはメモリコントローラを始点および終点としてループ状に相互接続されているため、確実にこれらの半導体記憶装置の良／不良に応じて不良メモリセルの識別子の割当禁止および以降のメモリへの識別子の割当の禁止を行なうことができる。
【図面の簡単な説明】
【図１】  この発明の実施の形態１に従う半導体記憶装置の全体の構成を概略的に示す図である。
【図２】  この発明が適用されるメモリシステムにおいて用いられるパケットの構成を概略的に示す図である。
【図３】  この発明の実施の形態１の動作を示すフロー図である。
【図４】  この発明の実施の形態１におけるコントローラのメモリ管理手法の一例を示す図である。
【図５】  この発明の実施の形態１の変更例の動作を示すフロー図である。
【図６】  この発明の実施の形態２に従う半導体記憶装置の要部の構成を概略的に示す図である。
【図７】  この発明の実施の形態２の動作を示すフロー図である。
【図８】  この発明の実施の形態３に従う半導体記憶装置の要部の構成を概略的に示す図である。
【図９】  この発明の実施の形態３に従うメモリシステムの動作を示すフロー図である。
【図１０】  従来のメモリシステムの構成および初期化シーケンスを示す図である。
【符号の説明】
ＤＭ  半導体記憶装置、５０  入力バッファ、５２  コマンドデコーダ、５４識別子レジスタ、５６  メモリ部、５８  組込テスト回路、６０  出力バッファ、７０  メモリ管理テーブル、７６  コントロールユニット、７５，７８  バッファ、７７  選択回路、８０  選択回路。
【図１】
0003850067.tif 000002
【図２】
0003850067.tif 000003
【図３】
0003850067.tif 000004
【図４】
0003850067.tif 000005
【図５】
0003850067.tif 000006
【図６】
0003850067.tif 000007
【図７】
0003850067.tif 000008
【図８】
0003850067.tif 000009
【図９】
0003850067.tif 000010
【図１０】
0003850067.tif 000011