(57)【要約】      （修正有）【課題】テスト・データを連続的に保存するために単一の電気的ヒューズ（eFuse）バンクを使用するための装置および方法の提供。【解決手段】各テストからのアレイ冗長性データを同じ eFuse バンクにおいてエンコードおよび保存するために、各eFuse に対するプログラミング情報を保持するスキャン・チェーン上のラッチが使用される。このラッチは、各テスト・ステージ中、eFuse の一部分だけをプログラムすることを可能にする。更に、eFuse においてプログラムされたデータは、感知すること及びスキャン・チェーンの一部として読み取ることが可能である。従って、eFuse のバンクのどの部分が前のテスト・ステージによって既にプログラムされていたか、および次のデータ・セットをeFuse のバンクにプログラムする動作をどこで開始すべきかを容易に決定することが可能である。その結果、単一のeFuse バンクが複数のテスト・ステージからの複数セットのデータを保存する。【選択図】  図１
2007328853.tif 000002
【特許請求の範囲】
【請求項１】
集積回路デバイスにおいて、アレイ冗長性データを該集積回路デバイスに保存するための装置であって、
前記集積回路デバイスの複数のテスト・ステージに対するアレイ冗長性データの保存に専用の単一の記憶デバイス・バンクと、
前記単一の記憶デバイス・バンクに保存されているエンコードされたアレイ冗長性データのデコーディングを制御するための制御ロジックであって、前記単一の記憶デバイス・バンクに保存されている前記エンコードされたアレイ冗長性データが、前記集積回路デバイス上に設けられた１つまたは複数の装置アレイに関する複数のテスト・ステージによって生成されたアレイ冗長性データである、制御ロジックと、
を有する装置。
【請求項２】
前記単一の記憶デバイス・バンクが電子ヒューズ（eFuse）のバンクである、請求項１に記載の装置。
【請求項３】
前記エンコードされたアレイ冗長性データが、前記エンコードされたアレイ冗長性データの圧縮方法を識別するビット・コードを含む、請求項１に記載の装置。
【請求項４】
前記単一の記憶デバイス・バンクが記憶デバイスのスキャン・チェーンとして配列され、
前記記憶デバイスの各々が、当該記憶デバイスが予めプログラムされているかまたはプログラムされていないかを表す値を記憶する関連のラッチを有する、
請求項１に記載の装置。
【請求項５】
前記ビット・コードが、前記記憶デバイス・バンクの一部分をスキップするためのスキップ・ビット・コードを含み、それによって第１のテスト・ステージ以外のテスト・ステージに対するエンコードされたアレイ冗長性データをアクセスする、請求項３に記載の装置。
【請求項６】
前記１つまたは複数のデバイス・アレイにおける各デバイス・アレイが、前記アレイにおける他のデバイスに対して代用するための少なくとも１つの冗長なデバイスを含み、
前記アレイ冗長性データは、冗長なデバイスによる代用が必要である、前記１つまたは複数のデバイス・アレイにおける障害デバイスを識別する、
請求項１に記載の装置。
【請求項７】
前記制御ロジックが、前記エンコードされたアレイ冗長性データをデコードし、前記１つまたは複数のデバイス・アレイおいて１つまたは複数の修復アクションを行うために、デコードされたアレイ冗長性データを前記１つまたは複数のデバイス・アレイにロードする、請求項６に記載の装置。
【請求項８】
テスト・デバイスと、
前記１つまたは複数のデバイス・アレイおよび前記テスト・デバイスに結合されたテスト・インターフェースと、
を更に含み、前記テスト・デバイスが、前記テスト・インターフェースを介して前記１つまたは複数のデバイス・アレイに関する複数のテスト・ステージを実行し、それによって複数のアレイ冗長性データのセットを生成し、前記テスト・インターフェースを介して前記複数のアレイ冗長性データのセットを、分析のために外部コンピューティング・デバイスに出力する、請求項６に記載の装置。
【請求項９】
前記記憶デバイス・バンクおよび前記外部コンピューティング・デバイスに結合された記憶デバイスインターフェースを更に含み、
前記外部コンピューティング・デバイスにおける制御ロジックが前記アレイ冗長性データをエンコードし、前記記憶デバイスインターフェースを介して前記記憶デバイス・バンクに該エンコードされたアレイ冗長性データを書き込む、請求項８に記載の装置。
【請求項１０】
前記外部コンピューティング・デバイスにおける制御ロジックが、前記記憶デバイス・バンクにおける記憶デバイスに関連したラッチに保存された値を読み取ってプログラムされてない第１の記憶デバイスを識別し、テスト・ステージからのエンコードされたアレイ冗長性データを、プログラムされてない前記第１の記憶デバイスで始まる前記記憶デバイス・バンクに書き込む、請求項９に記載の装置。
【請求項１１】
データ処理システムにおいて、エンコードされたアレイ冗長性データを集積回路デバイスにおける単一の記憶デバイス・バンクに記憶するための方法であって、
エンコードされたアレイ冗長性データを外部コンピューティング・デバイスから受け取るステップであって、前記エンコードされたアレイ冗長性データが、前記集積回路デバイスにおける１つまたは複数のデバイス・アレイに関する複数のテスト・ステージにおける１つのテスト・ステージのためのものである、ステップと、
前記単一の記憶デバイス・バンクにおけるプログラムされてない第１の記憶デバイスを識別するステップと、
前記プログラムされてない第１の記憶デバイスで始まる前記単一の記憶デバイス・バンクに前記エンコードされたアレイ冗長性データを記憶するステップであって、前記単一の記憶デバイス・バンクが前記複数のテスト・ステージにおける各ステージに対するエンコードされたアレイ冗長性データを記憶する、ステップと、
を含む方法。
【請求項１２】
前記単一の記憶デバイス・バンクが電子ヒューズ（eFuse）のバンクである、請求項１１に記載の方法。
【請求項１３】
前記エンコードされたアレイ冗長性データが、前記エンコードされたアレイ冗長性データの圧縮方法を識別するビット・コードを含む、請求項１１に記載の方法。
【請求項１４】
前記単一の記憶デバイス・バンクが記憶デバイスのスキャン・チェーンとして配列され、
前記記憶デバイスの各々が、当該記憶デバイスが予めプログラムされているかまたはプログラムされていないかを表す値を記憶する関連のラッチを有し、
前記プログラムされてない第１の記憶デバイスの識別は、前記単一の記憶デバイス・バンクの前記ラッチに記憶された値を感知するためにスキャン・チェーンをスキャンすることを含む、
請求項１１に記載の方法。
【請求項１５】
前記ビット・コードが、前記記憶デバイス・バンクの一部分をスキップするためのスキップ・ビット・コードを含み、それによって第１のテスト・ステージ以外のテスト・ステージに対するエンコードされたアレイ冗長性データをアクセスする、請求項１３に記載の方法。
【請求項１６】
前記１つまたは複数のデバイス・アレイにおける各デバイス・アレイは、前記アレイにおける他のデバイスに対して代用するための少なくとも１つの冗長なデバイスを含み、
前記アレイ冗長性データは、冗長なデバイスによる代用が必要である、前記１つまたは複数のデバイス・アレイにおける障害デバイスを識別する、
請求項１１に記載の方法。
【請求項１７】
前記単一の記憶デバイス・バンクにおける前記エンコードされたアレイ冗長性データをデコードするステップと、
前記１つまたは複数のデバイス・アレイおいて１つまたは複数の修復アクションを行うために、デコードされたアレイ冗長性データを前記１つまたは複数のデバイス・アレイにロードするステップと
を更に含む、請求項１６に記載の方法。
【請求項１８】
前記デコードするステップおよび前記ロードするステップがパスにおいて実行され、前記パスの数が、単一の記憶デバイス・バンクに記憶された前記エンコードされたアレイ冗長性データを生成するために使用されるテスト・ステージの数に等しい、請求項１７に記載の方法。
【請求項１９】
電子ヒューズ（eFuse）のバンクと、
複数のメモリ・アレイであって、該メモリ・アレイの各々が複数のメモリ・セルを含み、該複数のメモリ・セルが少なくとも１つの冗長なメモリ・セルを含む、メモリ・アレイと、
前記eFuseのバンク、および前記複数のメモリ・アレイにおける少なくとも１つのメモリ・アレイに結合された電源オン制御及びアレイ冗長性圧縮解除ユニットと、
前記複数のメモリ・アレイに結合されたアレイ組込み型自己テスト（ＡＢＩＳＴ）ユニットと
を含む集積回路デバイスであって、前記ＡＢＩＳＴユニットは、アレイ冗長性データを生成するために前記複数のメモリ・アレイに関して複数のテスト・ステージを実行し、前記テスト・ステージのすべてに対するアレイ冗長性データが、エンコードされて前記eFuseのバンクに保存され、前記集積回路デバイスの電源オン時に、前記電源オン制御及びアレイ冗長性圧縮解除ユニットが前記eFuseのバンクにおけるエンコードされたアレイ冗長性データをデコードし、デコードされたアレイ冗長性データを前記複数のメモリ・アレイにロードして１つまたは複数の修復アクションを行わせる、集積回路デバイス。
【請求項２０】
前記複数のメモリ・アレイにおける前記少なくとも１つのメモリ・アレイに結合されたアレイ・テスト・インターフェースと、
前記eFuseのバンクに結合されたeFuseテスト・インターフェースと
を含み、前記アレイ・テスト・インターフェースがアレイ冗長性データを分析のために前記複数のメモリ・アレイから外部コンピューティング・デバイスに出力し、前記eFuseテスト・インターフェースが、エンコードされたアレイ冗長性データを前記外部コンピューティング・デバイスから、前記eFuseのバンクにおける保存のために受け取る、請求項１９に記載の集積回路デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して云えば、データ処理システムおよびデータ処理方法の改良に関するものである。詳しく云えば、本発明は、複数のテスト・ステージからのテスト・データを連続的に保存するために単一の電気的ヒューズ（eFuse）バンクを使用する装置および方法に関するものである。
【背景技術】
【０００２】
伝統的には、コンポーネントのアレイを有する複雑な集積回路の製造は、種々のコンポーネントのオペレーションをテストするために多数のテスト・ステージを使用する。例えば、製造業者は、先ず、ウェハー形式における集積回路のコンポーネントを正規の温度および電圧でテストすることがある。しかる後、製造業者は、良好なコンポーネントを、即ち、初期のテストに合格したコンポーネントを、加圧下で更にテストすることもある。しかる後、製造業者は、その集積回路をパッケージ化するときに再びそれをテストすることもある。種々の条件の下で集積回路のコンポーネントのオペレーションをチェックするために、別のテストがそのテスト形態に含まれることもある。
【０００３】
例えば、大型の集積回路およびプロセッサは、一般に、それらの設計の一部としてメモリ・セルの大型アレイを内蔵する。合理的な歩留まりを保証するために、これらのアレイは、完全なセルではないセルに対して代用される予備セル、即ち、冗長なセルを組み込んでいる。これらの大型のアレイがテストされるとき、メモリ・セルのアレイにおけるどのセルが予備セルまたは冗長なセルにマップされる必要があるかということが決定される。この情報は、アレイ冗長性データ（array redundancy data）と呼ばれるデータに変換される。
【０００４】
各セルの代用のために必要なデータは修復データと呼ばれ、このデータに基づいて行われる修正は修復アクションと呼ばれる。これらの修復アクションは、アレイにおける非機能的セルをスキップするために必要であり、冗長セルにマップされる。これらの修復アクションは、次々と順次にロードされる。一旦、アレイ・テスタが必要なアレイ冗長性データまたは必要な修復アクションを決定すると、このデータは、集積回路デバイスまたはプロセッサの電源オン時に再ロードされなければならない。
【０００５】
各テストは、電源オン時にコンポーネントのアレイを修正するために使用することが可能なアレイ冗長性データを生成することが可能である。一般に、このアレイ冗長性データは、一旦検証されると、レーザ・ヒューズ、電気的ヒューズ（eFuse）、または、他のタイプの記憶デバイス・バンクのような、テスト時にプログラムすることが可能な集積回路デバイスまたはプロセッサの領域に保存される。大型の集積回路デバイスまたはプロセッサには、大量のeFuse に対処し得る大量のアレイ冗長性データが存在する。多数の eFuse が集積回路デバイスの大きな領域を占める。
【０００６】
更に、各テスト・ステージに対して、集積回路に設けられた特定の専用の個別eFuse バンクが、そのテスト・ステージによって生成されたアレイ冗長性データを保存するために必要である。従って、これらの個別eFuse バンクの各々が、集積回路上にそれ自身の個別の装置領域およびそれ自身の制御ロジックを必要とする。更に、或るテスト・ステージから少しでも eFuse が残されている場合、如何なるその後のテスト・ステージにおいてもそれらを使用することはできない。
【０００７】
従って、集積回路デバイスの多数のテスト・ステージからのアレイ冗長性データを保存および使用するための既知の機構は、集積回路デバイスおよびプロセッサの過剰領域がeFuse のバンクに専用となり、或るテスト・ステージから次のテスト・ステージまでeFuse を利用することができないとき、結果的に無駄なスペースを生じる。これは、余分な領域およびロジックが集積回路またはプロセッサ全体の機能およびコストに影響するという点で望ましくない。更に、その装置がもっと大きい場合、それを動作させるためには更に大きな電力が必要である。
【０００８】
上記の説明からみて、eFuse のバンクを設けるために必要な集積回路デバイスにおける領域の量を少なくするための装置および方法を有することは有益であろう。更に、一連の多数のテスト・ステージにおいて１つのテストから次のテストまでeFuse を使用することができないことによって生じる無駄なスペースの量を少なくする装置および方法を有することも有益であろう。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、多数のテスト・ステージから導出されたテスト・データを連続的に保存するために、単一の電気的ヒューズ（eFuse）バンク、レーザ・ヒューズ・バンク、または他のタイプの記憶デバイス・バンクを使用するための装置および方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一実施例では、その装置および方法は、単一の eFuse バンクにおける多数のテスト・ステージから得られる圧縮されたアレイ冗長性データを保存するために使用される。
【００１１】
本発明の装置および方法によれば、その後の各テストからのアレイ冗長性データを同じ eFuse のバンクにおいてエンコードおよび保存するために、１対１を基準にして、スキャン・チェーンの eFuse に関連したラッチが各 eFuseに対するプログラミング情報を保持するために使用される。 これらのラッチは、どの eFuse が既にプログラムされているかを識別するための機構を提供する。従って、バンク内のeFuse の一部分しか各テスト・ステージ中にプログラムされる必要がない。多数のプログラムされてない eFuse は、未プログラム化値、例えば、論理「0.」をこれらのラッチに単にロードすることによって容易に識別することが可能である。
【００１２】
eFuse においてプログラムされたデータは、感知すること、およびスキャン・チェーンの一部として読み取ることも可能である。従って、eFuseのバンクのどの部分が前のテスト・ステージによって既にプログラムされていたか、および次のデータ・セットを eFuse のバンクにプログラムする動作をどこで開始すべきかを容易に決定することも可能である。その結果、単一のeFuse バンク が複数のテスト・ステージからの複数のデータ・セットを保存する。
【００１３】
更に、完全な冗長性リングを正確にエンコードするためのデータ圧縮エンコーディング手法が本発明によって提供される。詳しく云えば、データをeFuse のバンクに書き込むために、および／または、eFuse のバンクから読み取るために eFuse のバンクの適切な部分にスキップするためのスキップ・コマンドが提供される。スキップ・コマンドは次の２つの機能を果たす。即ち、
（１）それは、スキップすべきビットの数（２５５ビットまで、または１５ビットまで）を指定する８ビットまたは４ビットが後続する長いまたは短いスキップ・コマンドを介して、冗長性ビットが正確にエンコードされることを可能にする。
（２）それは、前のデータをそれらのコンポーネントに対する場所に残して、各パスが大きなデータ・グループを容易にスキップすることができるため、実際の冗長性リングをロードするときに多数のパスを可能にする。
【００１４】
従って、各テスト・ステージでは、全冗長性リングに対する冗長性データが単一の eFuse バンクにおいてエンコードされる。３つの異なるテストから冗長性データがエンコード及び保存されている場合、集積回路デバイスの電源オン時に、アレイ冗長性リングが３つのパスでロードされる。その後のパスは、スキップ・コマンドによって、前に書き込まれたいずれのデータも「スキップ」するであろうし、従って、追加の障害／修正だけが各パスによって追加される。
【００１５】
本発明の一実施例では、集積回路デバイスには、その集積回路デバイス上にアレイ冗長性データを保存するための装置が設けられる。その装置は、集積回路デバイスにおける複数のテスト・ステージのためのアレイ冗長性データを保存することに専用の単一の記憶デバイス・バンク、およびその単一の記憶デバイス・バンクに保存されているエンコードされたアレイ冗長性データのデコーディングを制御するための制御ロジックを含む。単一の記憶デバイス・バンクに保存されているエンコードされたアレイ冗長性データは、集積回路デバイス上に設けられた１つまたは複数の装置アレイに関する複数のテスト・ステージによって生成されたアレイ冗長性データである。
【００１６】
単一の記憶デバイス・バンクは電気的ヒューズ（eFuse）バンクであってもよい。単一の記憶デバイス・バンクは、記憶デバイスのスキャン・チェーンとして配列することが可能である。各記憶デバイスは、その記憶デバイスが予めプログラムされていたか、またはプログラムされていないかを表す値を記憶する関連のラッチをもつことも可能である。
【００１７】
エンコードされたアレイ冗長性データは、そのエンコードされたアレイ冗長性データの圧縮方法を識別するビット・コードを含むことも可能である。それらのビット・コードは、記憶デバイス・バンクの一部分をスキップするスキップ・ビット・コードを含み、それによって、エンコードされたアレイ冗長性データを第１テスト・ステージ以外のテスト・ステージのためにアクセスすることを可能にする。
【００１８】
１つまたは複数の装置アレイにおける各アレイの装置は、そのアレイにおける他の装置を代用するための少なくとも１つの冗長装置を含むことも可能である。更に、アレイ冗長性データは、冗長装置による代用を必要とする１つまたは複数の装置アレイにおける障害装置を識別することも可能である。制御ロジックがエンコードされたアレイ冗長性データをデコードすることも可能であり、１つまたは複数の装置アレイにおいて１つまたは複数の修復アクションを行うために、デコードされたアレイ冗長性データを１つまたは複数の装置アレイにロードすることも可能である。
【００１９】
その装置は、更に、テスト装置、および、１つまたは複数の装置アレイおよびテスト装置に結合されたテスト・インターフェースを含むことが可能である。テスト装置は、テスト・インターフェースを介して１つまたは複数の装置アレイに関する複数のテスト・ステージを行い、それによって複数セットのアレイ冗長性データを生成することが可能である。テスト装置は、テスト・インターフェースを介して、それら複数セットのアレイ冗長性データを外部コンピューティング・デバイスに、分析のために出力することも可能である。
【００２０】
その装置は、更に、記憶デバイス・バンクに結合された記憶デバイスインターフェースおよび外部コンピューティング・デバイスを含むことも可能である。外部コンピューティング・デバイスにおける制御ロジックはアレイ冗長性データをエンコードし、記憶デバイスインターフェースを介して記憶デバイス・バンクに、そのエンコードされたアレイ冗長性データを書き込むことも可能である。更に、外部コンピューティング・デバイスにおける制御ロジックは、記憶デバイス・バンクにおける記憶デバイスに関連したラッチに保存された値を読取り、プログラムされてない第１の記憶デバイスを識別して、テスト・ステージからのプログラムされてない第１の記憶デバイスにおいて始まる記憶デバイス・バンクにそのエンコードされたアレイ冗長性データを書き込むことも可能である。
【００２１】
本発明の別の実施例では、データ処理システムにおいて、エンコードされたアレイ冗長性データを集積回路デバイス上の単一の記憶デバイス・バンクに保存するための方法が提供される。その方法は、外部コンピューティング・デバイスからのエンコードされたアレイ冗長性データを受け取ることを含む。そのエンコードされたアレイ冗長性データは、集積回路デバイス上の１つまたは複数の装置アレイに関する複数のテスト・ステージにおける１つのテスト・ステージのためのものである。その方法は、更に、単一の記憶デバイス・バンクにおける第１のプログラムされてない記憶デバイスを識別すること、および第１のプログラムされてない記憶デバイスにおいて始まる単一の記憶デバイス・バンクにそのエンコードされたアレイ冗長性データを保存することを含む。単一の記憶デバイス・バンクは、複数のテスト・ステージにおけるの各ステージに対して、エンコードされたアレイ冗長性データを保存することも可能である。
【００２２】
本発明のもう１つの実施例では、電気的ヒューズ（eFuse）のバンク、複数のメモリ・アレイ、電源オン制御及びアレイ冗長性圧縮解除ユニット、並びにアレイ組込み型自己テスト・ユニットを含む集積回路デバイスが提供される。各メモリ・アレイは、少なくとも１つの冗長メモリ・セルを含む複数のメモリ・セルを含むことが可能である。電源オン制御及びアレイ冗長性圧縮解除ユニットは、eFuseのバンクおよび複数のメモリ・アレイにおける少なくとも１つのメモリ・アレイに結合することが可能である。アレイ組込み型自己テスト（ＡＢＩＳＴ）・ユニットはその複数のメモリ・アレイに結合することが可能である。
【００２３】
ＡＢＩＳＴユニットは、複数のメモリ・アレイ上で複数のテスト・ステージを行ってアレイ冗長性データを生成することが可能である。すべてのテスト・ステージに対するアレイ冗長性データがエンコードされ、eFuse のバンクに保存されることも可能である。集積回路デバイスの電源オン時に、電源オン制御及びアレイ冗長性圧縮解除ユニットが、そのエンコードされたアレイ冗長性データをeFuse のバンクにおいてデコードし、そのデコードされたアレイ冗長性データを複数のメモリ・アレイにロードして１つまたは複数の修復アクションを行わせることも可能である。
【００２４】
更に、集積回路デバイスは、複数のメモリ・アレイにおける少なくとも１つのメモリ・アレイに結合されたアレイ・テスト・インターフェース、および eFuse のバンクに結合された eFuse テスト・インターフェースを含むことが可能である。アレイ・テスト・インターフェースは、アレイ冗長性データを、複数のメモリ・アレイから外部コンピューティング・デバイスに、分析のために出力することが可能である。eFuseテスト・インターフェースは、外部コンピューティング・デバイスからのエンコードされたアレイ冗長性データを eFuse のバンクに保存するために受け取ることが可能である。
【００２５】
本発明のこれらのおよび他の特徴および利点は、好適な実施例に関する以下の詳細な説明において開示され、その詳細な説明から当業者には明らかとなるであろう。
【発明を実施するための最良の形態】
【００２６】
前述のように、本発明は、電子ヒューズ（eFuse）またはレーザ・ヒューズのような
単一の記憶デバイス・バンクを使用して、複数のテスト・ステージから取り出されたテスト・データを連続的に保存するための装置および方法に関するものである。本発明は、コンポーネントのアレイは、そのアレイにおけるコンポーネントの障害の場合、代用のためにそのアレイに設けられた１つまたは複数の冗長なコンポーネントを提供される装置と共に使用することが可能である。そのような装置は、例えば、集積回路デバイス、マイクロプロセッサ等の形を取ることが可能である。以下の実施例では、その装置は、複数のメモリ・アレイを有するマイクロプロセッサであると仮定する。しかし、これらは単なる実施例であって、本発明がそのような実施例に限定されないことは勿論である。
【００２７】
図１を参照すると、本発明の一実施例に従って、複数のメモリ・アレイを有する複合マイクロプロセッサのための修正されたアレイ冗長性データ・リング装置の例示的ブロック図を示す図が与えられる。図１に示されるように、処理ユニット１５０並びにメモリ・アレイ１３２、１３４、１３６、１３８、１３９、および１４０がマイクロプロセッサを形成する。テスト時に、メモリ・アレイ１３２、１３４、１３６、１３８、１３９、および１４０は、それらのセルのいずれかが非機能的であるかどうかを決定するためにテストされる。例えば、アレイ組込み型自己テスト（ＡＢＩＳＴ）エンジン１６０を動作させることによって、障害のあるセルを決定することが可能である。外部の製造テスタ・コンピューティング・デバイスが初期化し、アレイ・テスト・インターフェース１０２のようなインターフェースを介してメモリ・アレイ１３２〜１４０に関するテストを行い、その結果をＡＢＩＳＴエンジン１６０の内部に保存するであろう。一旦テストが終了すると、製造テスタ・コンピューティング・デバイスは、アレイ・テスト・インターフェース１０２のようなインターフェースを介してマイクロプロセッサから障害情報をスキャンするであろう。障害情報の分析は、外部の製造テスタ・コンピューティング・デバイスによってオフ・チップで行われる。最終結果は、どのメモリ・セルが予備セルまたは冗長なセルにマップされる必要があるかということに関する決定である。このデータは、アレイ冗長性データまたは修復アクション・データと呼ばれ、修復アクションを生じるために使用される。
【００２８】
そこで、そのエンコードされてないアレイ冗長性データまたは修復アクション・データは、アレイ冗長性リング・テスト・インターフェース１０６を介してアレイ冗長性データ・リング１０４に対して直接にスキャンされる。一旦このデータがアレイ冗長性データ・リング１０４に対してスキャンされると、ＡＢＩＳＴエンジン１６０は、その生じた修復アクションがメモリ・アレイ１３２〜１４０における障害メモリ・セルを修正することを確認するためにテストを再実行する。一旦、修復アクションが障害メモリ・セルを修正したことが決定されると、アレイ冗長性データ・リング１０４のイメージ、即ち、修復アクション・データまたはアレイ冗長性データが、図２に関連して後述される圧縮方法を使用してエンコードされる。
【００２９】
アレイ冗長性データのエンコーディングを終了すると、エンコードされたアレイ冗長性データが、eFuse テスト・インターフェース１１４を介して外部の製造テスタ・コンピューティング・デバイスによって eFuse １２０にプログラムされる。eFuseテスト・インターフェース１１４は、圧縮されたアレイ冗長性データを eFuse １２０に保存するために使用することが可能であり、更に、スキップされる必要がある欠陥データを含むことがあり得る非機能的eFuse １２０をテストするために使用することも可能である。
【００３０】
マイクロプロセッサ１００が機能的モードで電源オンされるとき、エンコードされたアレイ冗長性データ、即ち、修復アクション・データが、電源オン制御及びアレイ冗長性圧縮解除ユニット１１０によって読み込まれる。ユニット１１０は、図２において概説される方法を使用してそのエンコードされたデータをデコードする。そこで、圧縮解除されたアレイ冗長性データは、どのメモリ・セルが冗長なセルにマップされる必要があるかを決定するためにアレイ冗長性データ・リング１０４に再ロードすることが可能である。圧縮解除プロセスの後、アレイ冗長性データ・リング１０４は、完全にデコードされたアレイ冗長性データを含み、従って、障害メモリ・セルをメモリ・アレイ１３２〜１４０における冗長なメモリ・セルにマップすることが可能である。
【００３１】
図１には、２つのアレイ冗長性データ・リングが実際に示される。第１のアレイ冗長性データ・リングはメモリ・アレイ１３２〜１４０から成り、集合的にアレイ冗長性データ・リング１０４と呼ばれる。第２のアレイ冗長性データ・リングは、収集され、圧縮され、そして eFuse １２０に保存されたアレイ冗長性データの組合せであり、アレイ冗長性データ・リング１０４のテスト結果を表す。本発明は、アレイ冗長性データをeFuse １２０の第２のアレイ冗長性データ・リングに保存するために、およびアレイ冗長性データ・リング１０４のメモリ・アレイ１３２〜１４０を構成するためにeFuse １２０からこのデータを読み出すために、１つの圧縮方法を使用する。
【００３２】
本発明によって使用される圧縮方法は、２００４年１１月４日に出願された「Algorithm to Encode and Compress Array Redundancy Data」と題した米国特許出願番号１０／９８１,１５８の未決出願に開示されている。この米国特許出願に開示されているように、アレイ冗長性データの圧縮及びeFuse へのエンコードを行うために使用される４つの主要なタイプのコマンド、即ち、制御（control）、ゼロ・シフト（shift zero）、実データ・シフト（shiftactual data）、及びデータ・スキップ（skip data）、が存在する。３つの異なる制御コマンドも存在する。これらのタイプのコマンドが、図２において提供される例示的なテーブル２００に示される。
【００３３】
図２に示された制御コマンドは、前述のようなアレイ冗長性データ、即ち、修復アクション・データをエンコードするために、外部のコンピュータによって使用される。更に、制御コマンドは、例えば、エンコードされたアレイ冗長性データをデコードするために、電源オン制御及びアレイ冗長性圧縮解除ユニット１１０または別のユニットの一部である eFuse デコーダ（図示されてない）によって使用されることも可能である。種々の制御コマンドの説明のために、これらの制御コマンドがデコーディング中に変換される方法を説明することにする。アレイ冗長性データのエンコーディングを行うために、そのアレイ冗長性データが分析され、制御コードがアレイ冗長性データにおけるこれらの識別された部分をエンコードするために使用されるように、種々の制御コードに合致する条件が決定される。
【００３４】
図２の実施例に示されるように、３つの異なる制御コマンドが存在する。ビット・コード 0000 によって定義される制御コマンドは、eFuse データの終了を意味する。ビット 1110 は、eFuse １２０またはアレイ冗長性データ・リング１０４に保存され、次の４ビット・コードで始まるアレイ冗長性データ・リングのシフトの再開を意味する。ビット・コード1111 は、eFuse １２０に保存されたアレイ冗長性データを読み取るが、アレイ冗長性データ・リング１０４におけるデータをシフトしないことを意味する。これらの最後の２つのコマンドは、欠陥のあるeFuse データのスキップを制御する。障害または欠陥のある eFuse に保存されたデータは装置を使用不能にすることがある欠陥データである。 eFuse デコーダがその1111 コードに遭遇するとき、eFuse データは継続して読み取られが、データは無視され、即ち、アレイ冗長性データ・リング１０４にシフトされない。1110 制御コマンドが遭遇するとき、eFuseデコーダは正規のオペレーションを再開する。
【００３５】
前記米国特許出願番号１０／９８１,１５８の未決出願に示されたアルゴリズムは、アレイ冗長性データまたは修復アクション・データのほとんどが不必要である、即ち、合理的な量のアレイ冗長性データがゼロであろうという仮定に基づいている。修復アクション・データの性質は、「0」にいくつかの「0」が後続するということが修復アクションの不在を意味するというようなことである。それとは別に、「1」にアドレスが後続するということは修復アクションを意味する。
【００３６】
チップ上のアイランド間には更なるパイピング・ラッチ（タイミング用）が存在するので、或る修復アクション間には時々エクストラ・ダミー・ラッチが存在する。即ち、ギガヘルツ・ロジック信号でもって動作するとき、その信号をステージングすることなくポイントＡからポイントＢに進むことがいつも可能であるわけではない。長い距離を「ブリッジする」ために、パイプライン・ラッチがデータ・パスに挿入される。例えば、図１では、パイプライン・ラッチは、メモリ・アレイ１３６からメモリ・アレイ１３８へのアレイ冗長性データ・リング１０４を得ることを必要とされる。これらのエクストラ・ダミー・ラッチは、エンコーディング／デコーディング中も同様にスキップされなければならない。
【００３７】
第２グループのコマンドは、アレイ冗長性リングを、即ち、eFuse １２０におけるアレイ冗長性リングまたはアレイ冗長性データ・リング１０４をゼロ・シフトすることに関連する。ビット・コード0001 は、１個のゼロをアレイ冗長性リングにシフトすることを意味し、ビット・コード 0010 は、２個のゼロをアレイ冗長性リングにシフトすることを意味する。これらのコマンドは、わずか４ビットのコマンドを使用してアレイ冗長性データの境界を調節するために使用される。
【００３８】
ビット・コード 0011 は、７個のゼロをアレイ冗長性リングにシフトすることを意味し、ビット・コード 0100 は、８個のゼロをアレイ冗長性リングにシフトすることを意味する。ビット・コード0101 は、９個のゼロをアレイ冗長性リングにシフトすることを意味する。このエンコーディングの例は、これは、最後の３つのコマンドが７、８、および９個のゼロをアレイ冗長性リングにシフトすることに関連する。アレイ冗長性データ、即ち、修復アクション・データが異なる長さのものを含む場合、異なる数のゼロをアレイ冗長性リングにシフトすることも可能である。
【００３９】
第３グループのコマンドは、実際のデータをアレイ冗長性リングにシフトすることに関連する。ビット・コード 0110 は、次の７個の実ビットをアレイ冗長性リングにシフトすることを意味し、ビット・コード 0111 は、次の８個の実ビットをアレイ冗長性リングにシフトすることを意味する。ビット・コード1000 は、次の９個の実ビットをアレイ冗長性リングにシフトすることを意味し、ビット・コード 1001 は、次の１４個の実ビットをアレイ冗長性リングにシフトすることを意味する。ビット・コード1010 は、次の１６個の実ビットをアレイ冗長性リングにシフトすることを意味し、ビット・コード 1011 は、次の１８個の実ビットをアレイ冗長性リングにシフトすることを意味する。
【００４０】
前述のように、アレイ冗長性データ、即ち、修復アクション・データは、この実施例では、７、８、および９個のビットの長さを含むものである。従って、これらのコマンドは、７、８、９、１４、１６、及び１８個のビットをアレイ冗長性リングにシフトすることに関連する。従って、７ビットのシフトは、修復アクション・データの一部分をアレイ冗長性リングにシフトし、１４ビットのシフトは修復アクション・データの２つの部分をアレイ冗長性リングにシフトするであろう。
【００４１】
第４グループのコマンドは、eFuse １２０からのデータを読み取ってそのデータをアレイ冗長性データ・リング１０４にロードするとき、そのデータのビットをスキップすることに関連する。ビット・コード1100 は、次の４ビット・フィールドにおいて指定されたビットの数だけスキップすることを意味する（これは、ショート・スキップと呼ばれる）。ビット・コード1101 は、次の８ビット・フィールドにおいて指定されたビットの数だけスキップすることを意味する（これは、ロング・スキップと呼ばれる）。これらのコマンドの両方に対して、アレイ冗長性リングは単にシフトされるだけであり、新たなデータは挿入されない。アレイ冗長性リングは、常に最初に、ゼロとして初期設定される。従って、スキップは、大量のゼロをアレイ冗長性リングに効果的に移動させることが可能である。
【００４２】
これらの４つのタイプのコマンドは、圧縮されたアレイ冗長性データ、即ち、修復アクションが圧縮解除されてアレイ冗長性データ・リング１０４にシフトされることを可能にする。この圧縮アルゴリズムは、既知のアレイ冗長性データまたは修復アクション・データのサイズ及び簡易性に基づいているので、電源オン時にデコードすることは難しくない。このアルゴリズムも、圧縮／圧縮解除アルゴリズムの設計／具現化に影響することなく集積回路デバイスまたはマイクロプロセッサにおいて修正することも可能であるという点で融通性がある。
【００４３】
他の装置に対する修復アクションのサイズが異なる場合、基本ゼロおよび実際の圧縮コマンドのうちの或るものは、修正される必要があるかもしれない。従って、本発明は、上記の実施例に限定されないし、本発明の真意および範囲から逸脱することなく、多くの修正を行うことが可能である。
【００４４】
本発明は、更に、この圧縮／圧縮解除アルゴリズムを使用して、従来の装置では必要とされる複数の eFuse バンクにおけるテスト・ステージよりもむしろ単一の eFuse バンク における複数のテスト・ステージによって生成されたアレイ冗長性データの保存を可能にする。本発明によって、スキャン・チェーンにおける各eFuse が関連のラッチを有することによって、eFuse のバンクにおける複数の eFuse がスキャン・チェーンとして配列される。ラッチに保存された値は、関連のeFuse がプログラムされているか否かを表す。eFuse に関連したラッチの値に基づいて、アレイ冗長性データを eFuse のバンクにエンコードするとき、そのeFuse がスキップされるべきかまたは書き込まれるべきかに関する決定を、その eFuse のバンクに関連した制御ロジックが行うことも可能である。前述の圧縮解除方法は、コンポーネントのアレイ、例えば、アレイ冗長性データ・リング１０４におけるメモリ・セルのアレイにおいて実行されるべき修復アクションを決定するようにアレイ冗長性データをeFuse から読み取るために使用することも可能である。
【００４５】
図３は、本発明の一実施例に従って eFuse のバンクを示すブロック図である。図３に示されるように、eFuse のバンク３００は、コンポーネント・アレイに関するテストのステージの結果に基づいてプログラムすることが可能であるeFuse ３２０のスキャン・チェーン３１０を含む。前述のように、このテストのステージは、アレイにおける冗長なコンポーネントによって置換されるか又はそれによって代用される必要がある障害または欠陥のあるコンポーネントを識別する。このテスト・ステージの結果、この情報がアレイ冗長性データとして出力される。そのアレイ冗長性データは、集積回路デバイスの電源オン時にコンポーネントのアレイをロードする場合、その後の使用のためにeFuse のバンク３００のバンクの一部分に書き込まれる。この方法では、テスト中に識別された障害又は欠陥のあるコンポーネントに対して冗長なアレイ・コンポーネントを代用するために、修復アクションを実行することが可能である。
【００４６】
上述のように、テスト中、集積回路デバイスの電源オン時に、その後の使用に備えてその集積回路デバイスに保存される必要があるアレイ冗長性データを各々が生成する多くのテスト・ステージが存在する。既知の集積回路デバイスでは、そのようなアレイ冗長性データは、各テスト・ステージに専用の eFuse またはレーザ・ヒューズの個別のバンクに保存されなければならない。しかし、本発明によれば、複数のテスト・ステージからのこのアレイ冗長性データが同じ単一のeFuse バンク に保存されることを可能にするための機構が提供される。
【００４７】
図３に示されるように、読取りスキャン・チェーン３１０および書込みスキャン・チェーン３１５が設けられる。読取りスキャン・チェーン３１０は、何が eFuse ３２０に書き込まれたかを決定するために使用される。書込みスキャン・チェーン３１５は、eFuse ３２０に保存されたデータを更新するために使用される。
【００４８】
ラッチ３５０〜３８５を使用することは、更なるアレイ冗長性データを eFuse のバンク３００に書き込むとき、eFuse のバンク３００のどの部分がスキップされなければならないかを、テスト・コンピュータの制御ロジック３９９が決定することを可能にする。従って、例えば、第１テスト・ステージ中、スキャン・チェーン３１５は、eFuse３２０にプログラムされる（書き込まれる）冗長性データをロードすることが可能である。eFuse ３２０が読み取られるとき、ラッチ３５０〜３６０は、それらの対応するeFuse ３２０がアレイ冗長性データをプログラムされていることを表す保存されているエンコードされた値を戻す。その後のテスト・ステージにおいて、更なるアレイ冗長性データがeFuse のバンク３００に書き込まれる必要があることがある。そのようなアレイ冗長性データの書込みをどこで開始するかを決定する場合、制御ロジック３９９は、スキャン・チェーン３１０における第１のプログラムされてないeFuse ３２０が eFuse のバンク３００のどこに存在するかを決定するためにラッチ３５０〜３８５からそれらの値を読み取ることが可能である。それとは別に、特定のテスト・フェーズに対するデータの終了を表すために、例えば、コード「ＦＥ」を有するマーカを書き込むことも可能である。そこで、制御ロジック３９０は、第１のプログラムされてないeFuse ３２０におけるその後のテスト・ステージからのアレイ冗長性データの書込みを開始することも可能である。このプロセスは、複数のテスト・ステージからのアレイ冗長性データが単一のeFuse のバンク３００に保存されるようにその後の各テスト・ステージに対して繰り返すことも可能である。
【００４９】
eFuse のバンク３００へのアレイ冗長性データの書込み中、そのアレイ冗長性データは圧縮され、前述のコマンドを使用して eFuse のバンク３００のスキャン・チェーン３１５に保存される。しかる後、前述の種々のビット・コードが、エンコードされたアレイ冗長性データとしてeFuse のバンク３００に書き込まれる。このようにして、例えば、９ビットの実データが eFuse のバンク３００に書き込まれる場合、この実データに関連してビット・コード1000 が eFuse のバンク３００に書き込まれる。
【００５０】
圧縮解除およびロード時間のときにアレイ冗長性データ・リング内にゼロをシフトさせるために適正なビット・コードをメモリに単に書き込むことによって、eFuse のバンク３００にゼロの大きなグループを書き込む必要がないようにすることが可能である。従って、例えば、９個のゼロを eFuseのバンク３００に書き込むのではなく、ビット・コード 0101 を eFuse のバンク３００に書き込むことが可能である。それは、eFuse のバンク３００からゼロを読み取る必要なしにアレイ冗長性データ・リング内に９個のゼロをシフトさせる。これは、ゼロのストリングがその対応するビット・コードによって挿入されることによって、実データのストリングがeFuse のバンク３００に順次に保存されることを可能にする。従って、ゼロのストリングは、eFuse のバンク３００に書き込まれるデータから除去され、eFuseのバンク３００に保存されたアレイ冗長性データ全体が圧縮される。
【００５１】
eFuse に対するプログラムされてないデフォルト値は０である。特定のテスト・ステージに対するアレイ冗長性データすべてが eFuse のバンク３００に書き込まれるとき、対応する「eFuseデータの終了」ビット・コードが eFuse のバンク３００に書き込まれ、そのテスト・ステージに対するアレイ冗長性データの終了を意味する。データの終了を明瞭に定義するために、例えば、「ＦＥ」というマーカを使用することが可能である。このマーカは、単に制御ロジック３９９が特定のテスト・フェーズに対するデータの終了を明瞭に識別することを容易にするだけである。そこで、次のテスト・ステージに対するアレイ冗長性データが、次のプログラムされてないeFuse ３２０を同様に使用して、eFuse のバンク３００に書き込まれることが可能である。次のテスト・ステージのアレイ冗長性データを eFuse のバンク３００に書き込む場合、前のテスト・ステージからのアレイ冗長性データでもってプログラムされているeFuse はスキップされなければならない。その結果、このテスト・ステージに対して eFuse のバンク３００からアレイ冗長性データを読み出すときにスキップされるべきそのeFuse のバンク３００の一部分を常に識別するために使用される図２に示されたスキップ・コマンドが書かれることも可能である。従って、例えば、ビット・コード1101 を使用するロング・スキップ・コマンドは、その後のテスト・ステージからのアレイ冗長性データを圧縮解除およびロードするように、eFuse のバンク３００の一部分をスキップするために使用することが可能である。アレイ冗長性データの圧縮解除およびローディングは、eFuseのバンク３００のその部分に対して保存された特定セットのビット・コードに基づいて上記の方法と同じように開始することが可能である。
【００５２】
スキップ・コマンドは２つのことを行う。第１に、それは、スキップすべきビット数（２５５ビットまで、または１５ビットまで）を指定する８ビット又は４ビットが後続するロング又はショート・スキップ・コマンドを介してアレイ冗長性データが正確にエンコードされることを可能にする。第２に、それは、前のデータをそれのコンポーネントの代わりに残して、各パスが大きなデータ・グループを容易にスキップすることができるので、実際のアレイ冗長性データ・リングをロードするときには複数のパスを可能にする。従って、各テスト・ステージに対して、アレイ冗長性データ・リング全体に対する全アレイ冗長性データが eFuse のバンクにおいてエンコードされることが可能である。そこで、アレイ冗長性データを複数のパスでロードすることが可能である。その場合、アレイ冗長性データを生成するために、各テスト・ステージに対して１つのパスが使用される。その後のパスは、追加の障害／欠陥コンポーネントだけが各パスによってロードされるよう、前に書き込まれたいずれのデータもスキップするであろう。
【００５３】
従って、本発明によって、eFuse のバンクにおけるスキャン・チェーンの eFuse に関連したラッチは、どの eFuse が現在又は以前のテスト・ステージによって予めプログラムされていたかということに関する識別を可能にする。本発明のエンコーディング／デコーディング機構のスキップ・コマンドは、異なるテスト・ステージによって生成されたアレイ冗長性データをアクセスするようにeFuse のバンク３００の部分をスキップすることを可能にする。これらの２つの機構の組合せは、集積回路デバイスまたはマイクロプロセッサにおけるコンポーネントのアレイに関する複数のテスト・ステージによって生成されたアレイ冗長性データがeFuse の単一バンク３００に記憶されることを可能にする。本発明の機構によってエリア・オンチップが保持され、その結果、装置のより低いコストおよび装置を操作するためのより低い電力の必要性を生じる。
【００５４】
本発明の実施例の例示オペレーションとして、２パス・テスト・プロセスが存在し、そのテストにおける１つのパスでは、エンコードされてないアレイ冗長性データ・ストリングは次のようである。即ち、
0000RA000000000RARA00000000000000000000000000
ゼロはアレイ冗長性データ・リングのデフォルト値であり、従って、このデータを圧縮／エンコードするためにスキップ・コマンドを使用することが可能である。上記のアレイ冗長性データのエンコーディングは、その結果として
11001000 0111 RA 1100 1001 1010 RARA 1101 00011010
を生じるであろう。
【００５５】
そのテストの第２パスにおいて、メモリ・アレイにおける新たな障害が検出されることがある。例えば、第２パス中、エンコードされてないアレイ冗長性データ・ストリングは、
00000000RARA000000000[RA]000000000000000
となることがある。なお、新たな障害データは、[ ] で示される。このアレイ冗長性データのエンコーディングは、次のような結果を生じる。
11001000 0111 RA 1100 1001 1010 RARA 0101 RA 1100 1111
アレイ冗長性データ・リングのデフォルトはゼロであるので、シフト９ゼロ・コードがスキップ９コードであってもよかったことに留意すべきである。
【００５６】
上記の２つのパスによって、eFuse のバンクに書き込まれたデータは次のようになる。
11001000 0111 RA 1100 1001 1010 RARA 1101 0001 1010 [1100 1000 0111 RA 1100 1001 1010 RARA 0101 RA 11001111]
なお、[ ] 内のコードは、テストの第２パスのエンコードされたアレイ冗長性データを表す。
【００５７】
このエンコードされたアレイ冗長性データによって、電源オン制御及びアレイ冗長性圧縮解除ユニット１１０が eFuse １２０のバンクに保存されたアレイ冗長性リングを２回全探索し、メモリ・アレイ１３２〜１４０に関して修復アクションを行うためのアレイ冗長性データをデコードして、再ロードする。第１パス中、上記の[]内のデータが読み取られ、デコードされ、そしてアレイ冗長性データ・リング１０４にロードされる。第２パス中、上記の[ ]内のデータが読み取られ、デコードされ、そしてアレイ冗長性データ・リング１０４にロードされる。第３のテストが行われていた場合、このエンコードされたアレイ冗長性データは、冗長性データ・リングを３回全探索させるために上記のエンコードされたデータに連結することが可能である。
【００５８】
アレイ冗長性データ・リングの各エンコードに対して、デコーディングの目的でデータの整列を維持するように、アレイ冗長性リングがエンコードされる。上記の例は、その後のテスト・パスが、前のテスト・ステージからの前のエンコードされたデータに連結されるという単純なパスである。本発明のエンコーディング方式は、機能を提供することが更に複雑な更新を行うことをも可能にする。新たな障害データまたは新たな修復アクションを単に加えること、および／または、前の障害データ又は修復アクションを置換することが可能である。スキップ・コマンド、シフト・ゼロ・コマンド、およびシフト実データ・コマンドは、人がそのようなエンコーディング・アルゴリズムを作成することを可能にし得る。そのエンコーディング方式は融通性のあるものであり、マルチパス修復を作成する多くの方法を可能にする。
【００５９】
図４および図５は、本発明の一実施例に従ってアレイ冗長性データを単一の eFuse バンク に／単一の eFuse バンク から書き込むおよび読み取るためのオペレーションを示すフローチャートである。フローチャート表示の各ブロックおよびフローチャート表示におけるブロックの結合がコンピュータ・プログラム命令によって具現化し得ることは明らかであろう。プロセッサまたは他のプログラマブル・データ処理装置において実行される命令が、そのフローチャートのブロックで指定された機能を具現化するための手段を創出するようなマシンを提供するために、上記のコンピュータ・プログラム命令をそのプロセッサまたは他のプログラマブル・データ処理装置に具備するも可能である。特定の方法で機能するようにプロセッサまたは他のプログラマブル・データ処理装置に指示し得るこれらのコンピュータ・プログラム命令を、コンピュータ可読メモリまたは記憶媒体に保存することが可能であり、従って、コンピュータ可読メモリまたは記憶媒体に保存された命令は、フローチャートのブロックにおいて指定された機能を具現化する命令手段を含む生産物を作り出すことが可能である。
【００６０】
従って、フローチャート表示のブロックは、指定された機能を実行するための手段の組合せ、指定された機能を実行するためのステップの組合せ、および指定された機能を実行するためのプログラム命令手段をサポートする。フローチャート表示の各ブロックおよびフローチャート表示におけるブロックの組合せは、指定された機能またはステップを実行する特別目的のハードウェア・ベースのコンピュータ・システムによって、または特別目的のハードウェアおよびコンピュータ命令の組合せによって、具現化することが可能である。
【００６１】
図４は、本発明の実施例に従ってアレイ冗長性データを単一の eFuse バンク に保存するための例示的なオペレーションを概説するフローチャートである。図４に示されたオペレーションは、例えば、前に説明したように、エンコードされたアレイ冗長性データをeFuse のバンクに保存するためのテスト・コンピュータに関連した制御ロジックによって実行することが可能である。
【００６２】
図４に示されるように、オペレーションは、どのコンポーネントが不良であるかを決定するためにコンポーネント・アレイをテストすることによって開始する（ステップ４１０）。このステップは、例えば、この分野では一般的に知られている方法で、アレイ・テスト・インターフェース１０２を介して達成することが可能である。そこで、アレイ冗長性データ・リングが作成される（ステップ４２０）。アレイ冗長性データ・リングは、どの欠陥コンポーネントが、例えば、集積回路デバイス上の冗長なコンポーネントにマップされるかを決定するデータを含む。
【００６３】
しかる後、アレイ冗長性データは圧縮／エンコードされる（ステップ４３０）。この圧縮／エンコードは、例えば、図２に関連して上述したコマンドを使用して実行することが可能である。圧縮／エンコードの後、アレイ冗長性データは、後述するステップ４４０〜４８０において概説される方法で eFuse のバンクに書き込まれる。
【００６４】
eFuse のバンクにおける次の eFuse に関連したラッチに保存された値が読み取られる（ステップ４４０）。その eFuse が予めプログラムされていたことをその値が表すかどうかに関する決定が行われる（ステップ４５０）。それが肯定される場合、オペレーションはステップ４４０に戻り、次のeFuse に対するラッチの値を読み取る。このプロセスは、現在または次のテスト・ステージによって、プログラムされてない eFuse が識別されるまで継続する。
【００６５】
その eFuse が予めプログラムされてないことを、次の eFuse に関連したラッチに保存された値が表す場合、アレイ冗長性データが、識別された第１のプログラムされてないeFuse ロケーションで始まる eFuse のバンクに順次書き込まれる（ステップ４６０）。
【００６６】
次に、オペレーションは、このテスト・ステージに対するすべてのアレイ冗長性データが eFuse のバンクに書き込まれるときに終了する。このプロセスは、その後の各テスト・ステージに対してステップ４４０および４５０を繰り返され、その後のテスト・ステージからのアレイ冗長性データが同じバンクのeFuse における異なる部分に書き込まれることを保証する。
【００６７】
この分野では一般に知られているように、eFuse へのデータの書込みは、「１」を表すために eFuse を切ることおよび「０」を表すために eFuse をデフォルト状態に残すことを含む。しかし、eFuseを切ることが実際には電気的接触を可能にし、それによって「０」を表し、デフォルト状態が「１」を表すという eFuse の逆状態の場合において、正反対の方法をとることも可能である。単一のeFuse バンク の使用によって本発明を説明したが、本発明の機構は、更に、集積回路デバイスまたはマイクロプロセッサ装置自体に設けられるレーザ・ヒューズ、標準のメモリ装置等を含む他の記憶デバイスに適用することも可能である。
【００６８】
図５は、本発明の一実施例に従って、単一の eFuse バンクからアレイ冗長性データを読取ってそのアレイ冗長性データをアレイ冗長性データ・リングにロードするための例示的オペレーションを概説するフローチャートである。集積回路デバイスまたはマイクロプロセッサ装置が電源オンされるたびに、図５に示されたオペレーションが実行されることが可能である。図５に示されたオペレーションは、例えば、図１における電源オン制御及びアレイ冗長性データ圧縮解除ユニット１１０によって実行されることが可能である。
【００６９】
図５に示されるように、オペレーションが、集積回路デバイスまたはマイクロプロセッサ装置の電源オンによって開始する（ステップ５１０）。eFuse のバンク全体からのアレイ冗長性データが電源オン制御及びアレイ冗長性データ圧縮解除ユニットにロードされる（ステップ５２０）。しかる後、電源オン制御及びアレイ冗長性データ圧縮解除ユニットがデータを圧縮解除（デコード）し、そのデータをアレイ冗長性データ・リングに再ロードする（ステップ５３０）。
【００７０】
この圧縮解除（デコード）プロセスは、eFuse のバンクにおけるアレイ冗長性データに対するその eFuse のバンクに保存されたビット・コードに基づいてオペレーションを実行することを含む。図２に関連して上述した種々のコマンドが、種々のテスト・ステージからアレイ冗長性データを適正にアクセスするように、およびこのデータをアレイ冗長性データ・リングにロードするように実行されることも可能である。例えば、圧縮解除（デコード）プロセスが、eFuseのバンクに保存されたアレイ冗長性データを生成するために実行されたテスト・ステージの数に基づいた複数のパスにおいて実行されることも可能である。従って、アレイ冗長性データが３つのテスト・ステージに対してeFuse のバンクに保存される場合、アレイ冗長性データをアレイ冗長性データ・リングにロードする３つのパスを実行することも可能である。各パスは、前のテスト・ステージによって生成されたアレイ冗長性データをスキップするためにスキップ・コマンドを使用することも可能である。その結果、追加の障害／欠陥コンポーネント・データだけが各追加のパスを加えられる。
【００７１】
次に、アレイ冗長性データ・リングが、集積回路デバイスまたはマイクロプロセッサ装置における冗長なコンポーネントに欠陥コンポーネントをマップするために使用される（ステップ５４０）。そこで、オペレーションは終了する。
【００７２】
従って、本発明は、単一の eFuse バンク、レーザ・ヒューズ・バンク、または他の記憶デバイス・バンクが集積回路デバイスまたはマイクロプロセッサ装置の複数のテスト・ステージからのアレイ冗長性データを保存することを可能にするための機構を提供する。本発明のオペレーションは単一のeFuse バンク しか必要としないので、アレイ冗長性データを保存するためのチップ上の領域および無用なスペースが最小にされる。更に、装置のコストおよび消費電力も、チップ上のそのような記憶デバイスに対する必要な領域を減らすことによって最小にされる。
【００７３】
上述の回路は、集積回路チップに関する設計の一部である。チップの設計は、グラフィカル・コンピュータ・プログラミング言語で作成され、コンピュータ記憶媒体（例えば、ディスク、テープ、物理的ハード・ディスク、またはストレージ・アクセス・ネットワークのような仮想ディスク・ドライブ）に保存される。設計者は、チップ、またはチップを製造するために使用されるフォトリゾグラフ・マスクを製造しない場合、その結果生じた設計を物理的手段によって（例えば、その設計を保存する記憶媒体のコピーによって）または電子的に（例えば、インターネットを介して）そのようなエンティティに直接にまたは間接的に送る。そこで、その保存された設計は、フォトリゾグラフ・マスクの製造のために適した形体（例えば、ＧＤＳＩＩ）に変換される。なお、そのフォトリゾグラフ・マスクは、一般に、ウェハー上に形成されるべき当該チップ設計の複数コピーを含む。フォトリゾグラフ・マスクは、エッチングまたは別の方法で処理されるべきウェハー（および／または、その上の層）の領域を定義するために利用される。
【００７４】
その結果生じた集積回路チップは、ベア・ダイ（bare die）として生のウェハー形体で（即ち、複数の未パッケージ・チップを有する単一のウェハーのように）、またはパッケージ形体で製造業者が配布することが可能である。後者の場合、チップは、チップが単一のチップ・パッケージ（マザーボードまたは他の高レベル・キャリアに固定されたリードを有するプラスチック・キャリアのような）に、またはマルチチップ・パッケージ（サーフェイス・インターコネクションおよびベリード・インターコネクションの一方または両方を有するセラミック・キャリアのような）に装着される。いずれの場合も、チップは、
（ａ）マザーボードのような中間製品、または
（ｂ）最終製品
の一部として、他のチップ、独立した回路素子、および／または他の信号処理装置と統合される。最終製品は、玩具および他の低価格のアプリケーションからディスプレイ、キーボードまたは他の入力装置、および中央プロセッサを有する先進のコンピュータ製品に及ぶ集積回路チップを含む任意の製品である。
【００７５】
本発明のエンコーディング／デコーディング機構が、全体的にハードウェアの実施例、全体的にソフトウェアの実施例、またはハードウェア要素およびソフトウェア要素の両方を含む実施例の形を取り得ることも明らかであろう。更に、本発明のエンコーディング／デコーディング機構は、コンピュータまたは任意の命令実行システムにより或いはそれらに関連して使用するためのプログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセスし得るコンピュータ・プログラム製品の形を取ることも可能である。この説明のためには、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって或いはそれらに関連して使用するためのプログラムを含み、記憶し、通信し、伝播し、或いは搬送することができる任意の装置であってもよい。
【００７６】
媒体は、電子的システム、磁気的システム、光学的システム、電磁的システム、赤外線システム、または半導体システム（或いは、それらの装置またはデバイス）であってもよく、伝播媒体であってもよい。コンピュータ可読媒体の例は、半導体またはソリッド・ステート・メモリ、磁気テープ、取り外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、固定磁気ディスク、および光ディスクを含む。光ディスクの現行の例は、コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク・リード・ライト（ＣＤ−Ｒ／Ｗ）、およびＤＶＤを含む。
【００７７】
好適な実施例では、エンコーディング機構は、プログラム・コードを保存および／または実行するに適したデータ処理システムを含み、そのデータ処理システムは、システム・バスを介してメモリ素子に直接にまたは間接的に結合された少なくとも１つのプロセッサを含んでもよい。メモリ素子は、プログラム・コードの実際の実行中に使用されるローカル・メモリ、大容量記憶デバイス、および、プログラム・コードが実行中に大容量記憶デバイスから検索されなければならない回数を減らすために、少なくとも幾つかのプログラム・コードの一時的な保存を行うキャッシュ・メモリを含んでもよい。
【００７８】
図解および説明を目的として本発明を記述したが、それは、網羅的ではなく、開示された発明に限定されることを意図するものでもない。当業者には、更なる修正および変更点が明らかであろう。実施例は、発明の原理および実用的なアプリケーションを最もよく説明するために、および、意図された特定の用途に適するように種々の修正を持った種々の実施例に関して当業者が発明を理解することを可能にするために選択および記述された。
【図面の簡単な説明】
【００７９】
【図１】複数のメモリアレイを有する複合マルチプロセッサのための修正アレイ冗長性リング装置の実施例を示す概略図である。
【図２】本発明の一実施例に従って圧縮／圧縮解除アルゴリズムを具現化するために使用することが可能なコマンドのテーブルを示す概略図である。
【図３】本発明の一実施例に従って eFuse のバンクを示す概略図である。
【図４】本発明の一実施例に従って eFuse の単一バンクにアレイ冗長性データを記憶するための例示的オペレーションを概説するフローチャートである。
【図５】本発明の一実施例に従って eFuse の単一バンクからアレイ冗長性データを読み取り、アレイ冗長性データをアレイ冗長性データ・リングにロードするための例示的オペレーションを概説するフローチャートである。
【図１】
2007328853.tif 000003
【図２】
2007328853.tif 000004
【図３】
2007328853.tif 000005
【図４】
2007328853.tif 000006
【図５】
2007328853.tif 000007