(57)【要約】【課題】ダイナミックＲＡＭまたはスタティックＲＡＭのいずれかのランダム・アクセス・メモリにおいて、完全に統合された自己試験および修理機能により、データ列および行冗長を実施するための自己試験アーキテクチャを提供する。  【解決手段】本発明は、特に、コンパイル可能メモリおよびマイクロプロセッサまたは論理チップ内の埋め込みＲＡＭに適用可能であり、メモリの自己試験の２つのパスを用いる。自己試験の第１のパスは、最悪の故障列、固有の故障行アドレスが最も多い列を決定する。自己試験の第１のパス完了後、予備の列を割り当てて最悪の故障列を置換する。自己試験の第２のパスでは、ＢＩＳＴが、予備の行のみを有するメモリに対して現在行っているように、固有の故障行アドレスを収集する。自己試験の第２のパス完了時に、予備の行を割り当てる。いったん自己試験の第２のパスが完了すると、列および固有の故障行アドレスはｅヒューズ・マクロに転送され、チップ内に永続的に格納される。【選択図】  図１
2005085458.tif 000002
【特許請求の範囲】
【請求項１】
予備の列および予備の行を用いてランダム・アクセス・メモリ（ＲＡＭ）を自己試験、割り当て、および置換するための方法であって、
前記ＲＡＭメモリ上で自己試験の第１および第２のパスを実行するステップと、
前記自己試験の第１のパスにおいて、前記ＲＡＭメモリの最悪の故障列を決定するステップと、
前記自己試験の第１のパスの完了後、前記予備の列を割り当てて前記最悪の故障列を置換するステップと、
前記自己試験の第２のパスの完了後、前記予備の行を割り当てて故障行を置換するステップと、
を備える方法。
【請求項２】
前記自己試験の第２のパスの完了後、前記故障列および固有の故障行アドレスをｅヒューズ・マクロに転送して、前記ＲＡＭメモリに永続的に格納する、請求項１に記載の方法。
【請求項３】
前記最悪の故障列を決定するステップは、試験列を除いた全ての列をマスクし、非マスク試験列のみがデータ出力比較器においてエラーを生成可能であるようにすることで、前記試験列の固有故障行アドレス数をカウントしながら１度に１つの列を試験することを備える、請求項１に記載の方法。
【請求項４】
前記試験列を除いた全ての列をマスクするためにデコーダを用いる、請求項３に記載の方法。
【請求項５】
前記自己試験の第１のパスの間、組み込み自己試験（ＢＩＳＴ）が、選択および試験を行うメモリ内の特定の列を指定する列アドレス信号を発生し、これが前記デコーダに入力されて試験を行う前記特定の列を選択し、前記ＲＡＭの通常動作の間、前記デコーダによって格納された最悪列アドレス信号が復号されて、前記最悪試験列の代わりに前記冗長データ列を実施する、請求項４に記載の方法。
【請求項６】
前記データ出力比較器からの合格／失敗信号を用いて、故障アドレス・レジスタ（ＦＡＲ）が各固有の故障行アドレスを格納することができる、請求項３に記載の方法。
【請求項７】
各固有の故障行アドレスを格納すると、カウンタをイネーブルして、前記非マスク列の固有の故障行アドレス数をカウントし、前記非マスクの試験の終了時に、前記非マスク列のエラーカウント値が以前に試験した列からの以前に格納された高いエラーカウント値を超えている場合、前記非マスク列をその時点での最悪列と決定し、前記非マスク列の前記エラーカウント値をエラー・カウント・レジスタに格納し、前記非マスク列のビット・アドレスを修理レジスタに格納する、請求項３に記載の方法。
【請求項８】
前記自己試験の第１のパスの完了後、前記自己試験の第２のパスに先立って、前記修理レジスタに格納された前記格納ビット・アドレスを用いて、前記予備の列をイネーブルし、デコーダを用いて前記予備の列を実施するためのステアリング・マルチプレクサを選択する、請求項７に記載の方法。
【請求項９】
前記自己試験の第２のパスの間、前記ＦＡＲは固有の故障行アドレスを格納し、前記自己試験の第２のパスの終了時、前記ＦＡＲ値を用いて前記予備の行を割り当て実施する、請求項６に記載の方法。
【請求項１０】
組み込み自己試験（ＢＩＳＴ）が、選択および試験を行うメモリ内の特定の列を指定する列アドレス信号を発生し、これが第１のレジスタに入力され、前記第１のレジスタはＢＩＳＴ列試験の間、マルチプレクサを介してデコーダに前記列アドレス信号を出力して試験を行う前記特定の列を選択し、前記第１のレジスタは、最悪試験列アドレス信号を第２の修理レジスタに出力し、前記ＲＡＭの通常動作の間、前記第２の修理レジスタは前記格納された最悪列アドレスを前記マルチプレクサを介して前記デコーダに出力して前記最悪試験列の代わりに前記冗長データ列を実施する、請求項１に記載の方法。
【請求項１１】
前記自己試験の第１のパスの間、選択された試験列を除いた全ての列はマスクまたは切断されて、非マスクの選択された列のみがデータ出力比較器にエラーを生成可能であるようになっており、前記データ出力比較器からの合格／失敗信号を用いて、故障アドレス・レジスタ（ＦＡＲ）は、各固有の故障行アドレスを格納することができ、カウンタをイネーブルして、前記非マスク列の固有の故障行アドレス数をカウントする、請求項１に記載の方法。
【請求項１２】
前記非マスク列の試験の終了時、前記非マスク列の前記カウント値が以前に試験した列からの以前に格納された最悪カウント値を超えている場合、前記非マスク列をその時点での最悪列と決定し、前記非マスク列の前記カウント値をエラー・カウント・レジスタに格納し、前記非マスク・データ列のビット・アドレスを修理レジスタに格納する、請求項１１に記載の方法。
【請求項１３】
各非マスク列の試験後、次の列の試験前に前記ＦＡＲおよび故障列カウンタはクリアされ、前記格納されたカウント値は、この後、次の列の試験が完了した後に、前記次の列のカウント値と比較され、全ての列の試験の完了後、最悪列のビット・アドレスを格納しセーブする、請求項１２に記載の方法。
【請求項１４】
ワイドＲＡＭにおいて、前記ＲＡＭを隣接する列から成るセクションに分割し、各セクションは当該セクション内の最悪故障列を置換するためのそれ自身の冗長列を有し、各セクションは他のセクションの列と並列して試験される、請求項１に記載の方法。
【請求項１５】
２つの列における固有の故障行アドレス数が前記ＲＡＭにおける冗長行の数を超えている場合、前記ＲＡＭは修理不可能と示される、請求項１に記載の方法。
【請求項１６】
マイクロプロセッサまたは論理チップ内の埋め込みＲＡＭ上で実行される、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ：Dynamic Random Access Memory）またはスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：Static Random Access Memory）のいずれかのランダム・アクセス・メモリ（ＲＡＭ：Random Access Memory）においてデータ列冗長（data column redundancy）を実施するための自己試験アーキテクチャ（self-test architecture）に関し、具体的には、カーネル（kernel）と呼ばれる基本構築ブロックから設計およびコンパイルされたメモリであるコンパイル可能メモリに適用することができる。また、本発明は、特に、マイクロプロセッサまたは論理チップ内の埋め込みＲＡＭ（ｅＲＡＭ：embedded RAM）にも適用可能であるが、スタンドアロンのＲＡＭチップにも適用性がある。
【０００２】
更に具体的には、本発明は、完全に統合された自己試験および修理（self-test and repair）機能により、列および行の冗長を用いて、ＲＡＭにおいてデータ列冗長を実施するための自己試験アーキテクチャに関する。コンパイル可能な１ポートＳＲＡＭの特定の実施形態を開示するが、本発明は、一般的なＲＡＭメモリに更に広い適用性があり、ＳＲＡＭメモリにおいて、デュアルポートまたはマルチポートのＳＲＡＭメモリに更に広い適用性があることに注意されたい。
【背景技術】
【０００３】
コンパイル可能メモリは、カーネルと呼ばれる基本構築ブロックからカスタム設計およびコンパイルされたメモリである。コンパイル可能メモリは、多数のワード、ワード幅、および多数のビットラインの指定パラメータを有するように設計または指定される。これらのパラメータを指定し、次いで、構築ブロックのカーネルからコンパイル可能メモリの設計をアセンブルする。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来技術では、予備の行および予備の列の双方を用いて、埋め込みメモリにおいて多くの冗長の実施を使用している。行および列の双方の冗長を用いる場合、回路の設計者は、修理によって予備の行および列が最適に用いられるように、修理ソリューションをどのように最適に実施するかを決定しなければならない。いくつかのコンパイル可能メモリは、予備の列を提供しているが、自己試験、冗長割り当て、またはステアリング・マルチプレクサ（steering multiplexor）については何もサポートしていない。これらのメモリは、単に追加のデータ列をコンパイルするのみである。例えば、カスタマが１２８Ｋｘ３２のメモリを注文した場合、コンパイラは、実際には、カスタマに１２８Ｋｘ３３のメモリを提供する。次いで、カスタマは、不良の列をどのように試験して発見するかを考えなければならず、更に、ステアリング・ロジック（steering logic）および溶断サポート（fusingsupport circuit）回路を実施しなければならない。
【０００５】
また、従来技術では、コンパイル可能メモリ内に行冗長を含ませるためにＡＳＩＣ内で最新の開発が提供されている。
【課題を解決するための手段】
【０００６】
本発明は、一般に、ダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）のいずれかのＲＡＭ（ランダム・アクセス・メモリ）においてデータ列冗長を実施するための自己試験アーキテクチャに関し、具体的には、コンパイル可能メモリおよびマイクロプロセッサまたは論理チップ内の埋め込みＲＡＭ（ｅＲＡＭ）に適用することができる。メモリ上で、自己試験の２つのパス（pass）を用いる。自己試験の第１のパスは、最悪の故障列、固有の故障行アドレスが最も多い列を決定し、その後、予備の列を割り当てて最悪の故障列を置換する。自己試験の第２のパスでは、ＢＩＳＴ（Built In Self-Test）が、固有の故障行アドレスを収集する。自己試験の第２のパスの完了時に、予備の行を割り当てる。いったん自己試験の第２のパスが完了すると、列および固有の故障行アドレスはｅヒューズ・マクロに転送され、チップ内に永続的に格納される。
【０００７】
ＲＡＭにおいてデータ列冗長を実施する自己試験アーキテクチャのための本発明の前述の目的および利点は、そのいくつかの実施形態の以下の詳細な説明を、添付図面と関連付けて参照することで、当業者によって更に容易に理解することができる。いくつかの図面を通して、同様の要素は同一の参照番号によって示される。
【発明を実施するための最良の形態】
【０００８】
本発明は、ＲＡＭメモリ、特に、予備の行および列の双方を用いたコンパイル可能メモリの自己試験、割り当て、および修理の新しい手法を提供する。
【０００９】
本発明の新しい手法は、メモリの自己試験の２つのパスを用いる。自己試験の第１のパスは、最悪の故障列、固有の故障行アドレスが最も多い列を決定する。自己試験の第１のパスの完了時、予備の列を割り当てて最悪の故障列を置換する。自己試験の第２のパスでは、ＢＩＳＴ（Built In Self-Test）が、予備の行のみを有するメモリに対して現在行っているように、固有の故障行アドレスを収集する。自己試験の第２のパスの完了時に、予備の行を割り当てる。いったん自己試験の第２のパスが完了すると、その列および固有の故障行アドレスはｅヒューズ・マクロに転送され、チップ内に永続的に格納される。
【００１０】
図１は、自己試験の第１のパスにおいてメモリ内の最悪の故障列を決定するための本発明の手法を示し、ある列における固有の故障行アドレスの数をカウントしながら一度に１つの列を試験することを含む。図１は、多数のデータ列０、１・・・ｎ、および冗長データ列を有するコンパイル可能１ポートＳＲＡＭメモリを示す。冗長データ列を含むデータ列の１つを選択するため、および全ての残りの列をマスクするために、デコーダ１０（列マスクまたは冗長選択のため）が設けられている。
【００１１】
ＢＩＳＴは、選択および試験を行うメモリ内の特定の列を指定する列アドレス信号を発生し、第１のレジスタ１１に入力する。ＢＩＳＴの列試験の間、第１のレジスタは、マルチプレクサ１２を介してデコーダ１０に列アドレス信号を出力して、試験を行う特定の列を選択する。また、第１のレジスタ１１は、最悪の試験列アドレス信号を第２の修理レジスタ１３に出力し、通常動作において、第２の修理レジスタ１３は、格納した最悪列アドレス信号をマルチプレクサ１２を介して出力し、これは同じデコーダ１０によって復号されて、最悪試験列の代わりに冗長データ列を実施する。
【００１２】
自己試験の第１のパスの間、選択された試験列を除いた全ての列は、マスクされるかまたは切断されて、非マスクまたは選択された列のみがデータ出力比較器１４にエラーを生成可能であるようになっている。次いで、データ出力比較器１４からの合格／失敗信号を用いて、選択データ列のための故障アドレス・レジスタ（ＦＡＲ：Failing Address Register）１５は、各固有の故障行アドレスがすでに格納されていない場合、それを格納することができる。ＦＡＲレジスタは、図１に概略的に示すように、行アドレス０、行アドレス１、・・・行アドレスｎのためのレジスタ・エントリを含む。固有の故障行アドレスが格納されると、ＯＲゲート１７を介して故障行カウンタ１６がイネーブルされて、非マスク列の固有の故障行アドレスの数をカウントする。
【００１３】
非マスク列の試験が終了すると、比較器１８において、カウンタ１６内の非マスク列についてのカウント値を、エラーカウントレジスタ１９に格納されている以前に試験した列からの最悪のカウント値と比較する。カウンタ１６内の非マスク列のカウント値が、以前に試験した列からの先に格納された最悪カウント値よりも大きい場合、非マスク列を、その時点までに試験した最悪列と決定する。次いで、エラーカウントレジスタ１９に、非マスクレジスタの新しいカウント値を格納し、修理レジスタ１３に、非マスクデータ列のビットアドレスを格納する。ビットアドレスは、自己試験回路からデコーダに送られる二進値であり、デコーダの出力が非マスク列を識別し選択する手段を与えるようになっている。レジスタ１９に格納されたカウント値は、この後、次の列の試験が完了した後に、次の列のカウント値と比較される。各列を試験した後、ＦＡＲ１５および故障行カウンタ１６は、次の列の試験の前にクリアされる。全ての列を個別に試験し終わった後、最悪の列のビットアドレスを格納しセーブする。
【００１４】
代替的な実施形態では、最悪の列のカウント値が所与の閾値、例えば２を超えない限り、予備の列の使用を許可しない回路を実施することも可能である。
【００１５】
ワイドＲＡＭにおいて実施される実施形態では、ＲＡＭを隣接する列から成るセクションに分割することができ、各セクションは当該セクション内の最悪列を置換するためのそれ自身の冗長列を有し、各セクションは他のセクションの列と並列して試験することができる。
【００１６】
いくつかの実施形態では、２つの列内の固有の故障行アドレスの数がＲＡＭ内の冗長行の数を超えた場合、ＲＡＭを修理不可能と示す。例えば、所与の列内の固有の故障行の数がＲＡＭ内の冗長行の数を超えた場合にフラグをセットすることができ、第２の列がＲＡＭ内の冗長行数を超え、かつフラグがすでにセットされている場合、ＲＡＭを修理不可能と示す。
【００１７】
図２は、図１に示す列マスクまたは冗長選択ブロックのためのデコーダのセクションまたはビット・スライスを更に詳細に示し、このセクションまたはビット・スライスは、メモリの列の各々ごとに設けられる。ビット・バス２０は、８ビット・デコーダ２１に接続され、これは、ＮＯＲゲート２４を介して結合された第１および第２のＮＡＮＤゲート２２、２３を備える。ＮＯＲゲート２４は、ＢＡＤＢＩＴ（ｉ）を生成する。ここで、（ｉ）は（ｉ）で示される列を指し、（ｉ−１）は直前の列を指す。出力ＢＡＤＢＩＴ（ｉ）はＯＲゲート２５に入力し、これは第２の入力ＭＵＸＳＥＬ（ｉ−１）を受信し、第１のＡＮＤゲート２６に出力を生成する。通常動作に対して試験モードを示す入力ＴＥＳＴＭＯＤＥが、第３のＮＡＮＤゲート２７に入力し、これは、入力としてインバータ２８によって反転したＢＡＤＢＩＴ（ｉ）信号も受信し、更に、ＭＡＳＫＮ（ｉ）出力を生成し、これは非試験ビットをマスクするように機能する。また、ＴＥＳＴＭＯＤＥ信号は、インバータ２９によって反転し、反転信号は第１のＡＮＤゲート２６の第２の入力であり、これは出力ＭＵＸＳＥＬ（ｉ）信号を生成して、メモリに設けられた冗長マルチプレクサを選択および制御する。
【００１８】
次いで、自己試験の第２のパスに先立って、自己試験の第１のパスの終了時に修理レジスタ１３に格納された格納ビットアドレス値を用いて、予備の列をイネーブルする。次いで、マスク／非マスクのために用いた同じデコーダ１０を用いて、図２に示すように、予備の列を実施するためのステアリング・マルチプレクサを選択する。
【００１９】
ＦＡＲを用いて故障行アドレスを収集する第２のパスの間、予備の列内のメモリ・セルを試験する。自己試験の第２のパスの終了時、ＦＡＲ値を用いて、予備の行を割り当てて実施する。
【００２０】
図３は、本発明の自己試験の手順の論理フロー図を示す。システムは、３０において、図２の信号ＴＥＳＴＭＯＤＥによって示される列試験モードに入る。システムは、３２において第１の列の試験に進み、列当たりの固有の故障行アドレス数をカウントする。試験している列では、３４において、列内の各次の行アドレスを試験し、３６において、各故障した新しいワードラインのアドレスをＦＡＲにロードする。３８において、固有の故障行アドレス数をカウントするカウンタ１６を増分し、４０において、列内の最後のアドレスを試験するまで、列内の次のアドレスを試験する。４２では、試験列についてカウンタ１６がカウントした故障の合計数が記録された以前の故障最大数を超えた場合、４４において、試験列の列アドレスおよび故障数を、修理レジスタ１３およびレジスタ１９にそれぞれ格納する。４２において、試験列の故障合計数が記録した以前の故障最大数を超えていない場合、４６において、システムは、全ての列を試験したか否かを判定する。していない場合、４８においてＦＡＲレジスタをリセットし、５０において列故障カウンタ１６をリセットし、３２において次の列の試験を開始する。４６において全ての列の試験を完了した場合、システムは５２において最悪の列を実施し、最多の故障を有するデータ列レジスタの代わりに冗長データ列を用いる。
【００２１】
次いで、システムは、自己試験の第１のパス、列試験モードを出て、５４で自己試験の第２のパスに進み、通常の行試験パターンによってメモリを試験し、その後、５６において、列および行試験の結果を永続的に実施し、試験結果に対応するヒューズを切ることによって記録する。
【００２２】
ＲＡＭにおいてデータ列冗長を実施する自己試験アーキテクチャのための本発明のいくつかの実施形態および変形を詳細に説明したが、本発明の開示および教示は、当業者に多くの代替的な設計を提案することは明らかであろう。
【図面の簡単な説明】
【００２３】
【図１】自己試験の第１のパスにおいてメモリ内の最悪の故障列を決定するための本発明の手法を示し、固有の故障行の数をカウントしながら一度に１つの列を試験することを含む。
【図２】図１に示す列マスクまたは冗長選択ブロックのためのデコーダのセクションまたはビット・スライスを更に詳細に示し、このセクションまたはビット・スライスは、メモリの列の各々ごとに設けられる。
【図３】本発明の自己試験手順の論理フロー図を示す。
【図１】
2005085458.tif 000003
【図２】
2005085458.tif 000004
【図３】
2005085458.tif 000005