(57)【要約】      （修正有）【課題】  ヒューズ情報を維持するためスキャンラッチを用いる必要性を回避し、従来よりも小さい空間で高速に動作する方法および構造を提供する。 【解決手段】  ＳＲＡＭアレイは、スキャンチェーンの一部であり、スキャンチェーンを構成する上流および下流のラッチに接続されている。スキャンチェーンに、データがシリアルに読み込まれると、埋め込みＤＲＡＭ構造に読み込まれたビット数をカウントする。カウンタ１２０が、スキャンチェーンにおける全ての下流スキャンラッチの格納ビット数と等しい量をカウントした後、本発明は、ヒューズ情報をシフトレジスタにロードする。シフトレジスタがいっぱいになると、シフトレジスタの内容をＳＲＡＭラインにロードする。シフトレジスタおよびＳＲＡＭラインの長さは、１つのヒューズワードに等しい。ＳＲＡＭアレイがいっぱいになるまで、シフトレジスタのロードおよびＳＲＡＭアレイのロードのプロセスを繰り返す。【選択図】  図１
2005339752.tif 000002
【特許請求の範囲】
【請求項１】
埋め込みダイナミックランダムアクセスメモリ（ＤＲＡＭ）構造内のスタティックランダムアクセスメモリ（ＳＲＡＭ）アレイに対するヒューズ情報のシリアルな格納および検索の方法において、前記ＳＲＡＭアレイは、スキャンチェーンを構成する上流および下流のラッチに接続されており、前記方法は、
前記スキャンチェーンにデータをシリアルに読み込むステップと、
カウンタを用いて前記埋め込みＤＲＡＭ構造に読み込まれたビット数をカウントするステップと、
前記カウンタが、前記スキャンチェーンにおける全ての下流スキャンラッチの格納ビット数に等しい量をカウントした後、前記ヒューズ情報をシフトレジスタにロードするステップと、
前記シフトレジスタがいっぱいになった場合、前記シフトレジスタの内容を前記ＳＲＡＭアレイのＳＲＡＭラインにロードするステップと、
前記ＳＲＡＭアレイがいっぱいになるまで、前記シフトレジスタのロードおよび前記ＳＲＡＭアレイのロードの前記プロセスを繰り返すステップと、
前記ＳＲＡＭアレイにおけるアドレスを指定することによって、前記ＳＲＡＭアレイから前記ヒューズ情報を読み取るステップと、
を有する、方法。
【請求項２】
前記シフトレジスタおよび前記ＳＲＡＭラインにおけるビット数はヒューズワードにおけるビット数と等しい、請求項１の方法。
【請求項３】
並列動作で前記ＳＲＡＭアレイにデータが書き込まれる、請求項１の方法。
【請求項４】
前記下流スキャンラッチは前記埋め込みＤＲＡＭ構造の下流である、請求項１の方法。
【請求項５】
前記ＳＲＡＭラインに前記シフトレジスタの前記内容をロードする前記プロセスは、第２のカウンタにおいて前記シフトレジスタにロードされたビットをカウントするステップと、いったん前記第２のカウンタの値が前記ＳＲＡＭラインのサイズと等しくなったら、前記シフトレジスタからの前記ビットの全てを同時に前記ＳＲＡＭラインに並列にロードするステップとを有する、請求項１の方法。
【請求項６】
埋め込みダイナミックランダムアクセスメモリ（ＤＲＡＭ）構造内のスタティックランダムアクセスメモリ（ＳＲＡＭ）アレイにヒューズ情報をシリアルに格納する方法において、前記ＳＲＡＭアレイは、スキャンチェーンを構成する上流および下流のラッチに接続されており、前記方法は、
前記スキャンチェーンにシリアルにデータを読み込むステップと、
前記スキャンチェーンにデータを読み込まなくなるまで、先入れ先出し（ＦＩＦＯ）動作を用いて前記ＳＲＡＭアレイに前記データを格納するステップと、
を有する、方法。
【請求項７】
前記ＦＩＦＯ動作は、データの各ビットが前記ＳＲＡＭアレイに読み込まれるとアドレスカウンタを増分し、受信したデータの各ビットを前記ＳＲＡＭアレイ内の以降のビットに書き込むようになっているステップを有する、請求項６の方法。
【請求項８】
前記ＦＩＦＯ動作は、
前記ＳＲＡＭアレイの第１のビットアドレスに第１のビットに書き込むステップと、
前記ＳＲＡＭアレイの追加のアドレスに追加のビットを書き込むステップと、
各追加ビットを前記ＳＲＡＭアレイに書き込むとカウンタを増分するステップと、
を有し、前記カウンタが前記ＳＲＡＭアレイの最大サイズに達した場合、前記方法は、
前記第１のビットを前記下流ラッチに出力するステップと、
前記第１のビットを最も新しい受信ビットによって上書きするステップと、
追加ビットを受信する際に、前記ＳＲＡＭアレイにおける以降の各ビットについて前記出力および前記上書きを繰り返すステップと、
を有する、請求項６の方法。
【請求項９】
書き込みプロセスが完了した後、前記ＳＲＡＭアレイは最も新しい受信ビットのみを含む、請求項８の方法。
【請求項１０】
埋め込みダイナミックランダムアクセスメモリ（ＤＲＡＭ）構造内のスタティックランダムアクセスメモリ（ＳＲＡＭ）アレイからヒューズ情報を検索する方法において、前記ＳＲＡＭアレイは、スキャンチェーンを構成する上流および下流のラッチに接続されており、前記ＳＲＡＭアレイにおけるＳＲＡＭラインの長さはヒューズワードと等しく、前記ＳＲＡＭアレイに格納されたヒューズワードは２つのＳＲＡＭラインをまたぐ場合があり、前記方法は、
オフセットを計算するステップと、
所望のヒューズワード要求内の第１のビットの物理位置を、前記所望のヒューズワードの前記第１のビットの論理アドレスを前記オフセットに加えることによって求めるステップと、
２つのＳＲＡＭラインを読み取って、前記第１のビットの前記物理位置を含む第１のＳＲＡＭラインおよび前記第１のＳＲＡＭラインの直後の第２のＳＲＡＭラインを読み取るステップと、
前記第１のＳＲＡＭラインの終端を前記第２のＳＲＡＭラインの先頭と結合して前記所望のヒューズワードを出力するステップと、
を有する、方法。
【請求項１１】
前記オフセットを計算する前記ステップは、データが前記ＳＲＡＭアレイに書き込まれる際に前記ＳＲＡＭアレイにおけるビット数までカウントし次いでリセットするオフセットカウンタを維持するステップを有し、前記ＳＲＡＭアレイへの書き込みの終了時に前記オフセットカウンタに残っている値が前記オフセットを表す、請求項１０の方法。
【請求項１２】
前記第１のＳＲＡＭラインの前記終端は、前記物理位置から前記第１のＳＲＡＭラインの最下位ビットまでの前記第１のＳＲＡＭラインのビットを有し、前記第２のＳＲＡＭラインの前記先頭は、前記第２のＳＲＡＭラインの最上位ビットから、前記第１のＳＲＡＭラインにおける前記物理位置の有効ビット位置よりも１少ない有効ビット位置までの前記第２のＳＲＡＭラインのビットを有する、請求項１０の方法。
【請求項１３】
前記２つのＳＲＡＭラインを読み取る前記ステップは単一のシステムクロックサイクルにおいて行われる、請求項１０の方法。
【請求項１４】
前記結合プロセスは単一のヒューズワードを出力する、請求項１０の方法。
【請求項１５】
埋め込みダイナミックランダムアクセスメモリ（ＤＲＡＭ）構造内のスタティックランダムアクセスメモリ（ＳＲＡＭ）アレイにおいてヒューズ情報を再整合する方法において、前記ＳＲＡＭアレイは、スキャンチェーンを構成する上流および下流のラッチに接続されており、前記ＳＲＡＭアレイにおけるＳＲＡＭラインの長さはヒューズワードと等しく、前記ＳＲＡＭアレイに格納されたヒューズワードは２つのＳＲＡＭラインをまたぐ場合があり、前記方法は、
オフセットを計算するステップと、
第１のヒューズワードの第１のビットの物理位置を、前記第１のヒューズワードの前記第１のビットの論理アドレスを前記オフセットに加えることによって求めるステップと、
２つのＳＲＡＭラインを読み取って、前記物理位置を含む第１のＳＲＡＭラインおよび前記第１のＳＲＡＭラインの直後の第２のＳＲＡＭラインを読み取るステップと、
前記第１のＳＲＡＭラインの終端からのビットを第１のデータレジスタに格納するステップと、
前記第２のＳＲＡＭラインの先端からのビットを第２のデータレジスタに格納するステップと、
前記第１のＳＲＡＭラインの前記終端を前記第２のＳＲＡＭラインの前記先頭と結合して単一のヒューズワードを出力するステップと、
前記単一のヒューズワードを前記第１のＳＲＡＭラインに格納して、前記第１のＳＲＡＭラインを前記ヒューズワードによって上書きするステップと、
全ての残りのヒューズワードについて、前記求めるプロセスから前記単一のヒューズワードを格納する前記プロセスまでの処理を繰り返すステップと、
を有する、方法。
【請求項１６】
前記オフセットを計算する前記ステップは、データが前記ＳＲＡＭアレイに書き込まれる際に前記ＳＲＡＭアレイにおけるビット数までカウントし次いでリセットするオフセットカウンタを維持するステップを有し、前記ＳＲＡＭアレイへの書き込みの終了時に前記オフセットカウンタに残っている値が前記オフセットを表す、請求項１５の方法。
【請求項１７】
前記第１のＳＲＡＭラインの前記終端は、前記物理位置から前記第１のＳＲＡＭラインの最下位ビットまでの前記第１のＳＲＡＭラインのビットを有し、前記第２のＳＲＡＭラインの前記先頭は、前記第２のＳＲＡＭラインの最上位ビットから、前記第１のＳＲＡＭラインにおける前記物理位置の有効ビット位置よりも１少ない有効ビット位置までの前記第２のＳＲＡＭラインのビットを有する、請求項１５の方法。
【請求項１８】
前記第１のヒューズワードは、前記ＳＲＡＭアレイに格納されたヒューズワードの第１の論理ヒューズワードを有する、請求項１５の方法。
【請求項１９】
前記繰り返すステップが完了した後、全てのヒューズワードをＳＲＡＭアレイワードと整合する、請求項１５の方法。
【請求項２０】
埋め込みダイナミックランダムアクセスメモリ（ＤＲＡＭ）構造内の多数のスタティックランダムアクセスメモリ（ＳＲＡＭ）アレイにヒューズ情報をシリアルに格納する方法において、前記ＳＲＡＭアレイは、スキャンチェーンを構成する上流および下流のラッチに接続されており、前記方法は、
前記スキャンチェーンにデータをシリアルに読み込むステップと、
先入れ先出し（ＦＩＦＯ）動作を用いて前記ＳＲＡＭアレイに前記データを格納するステップと、
を有し、前記ＦＩＦＯ動作は、まず、第１のＳＲＡＭアレイの第１のラインに書き込みを行い、いったん前記第１のＳＲＡＭアレイの前記第１のラインがいっぱいになると、第２のＳＲＡＭアレイの同じ第１のラインに受信した追加ビットを書き込み、前記ＦＩＦＯ動作は、前記第２のＳＲＡＭアレイの前記第１のラインがいっぱいになった後にのみ、前記第１のラインに続く前記第１のＳＲＡＭアレイの以降のラインに書き込みを行う、方法。
【請求項２１】
前記ＦＩＦＯ動作は、データの各ビットが前記ＳＲＡＭアレイに読み込まれるとアドレスカウンタを増分し、受信したデータの各ビットを前記ＳＲＡＭアレイ内の以降のビットに書き込むようになっているステップを有する、請求項２０の方法。
【請求項２２】
前記ＦＩＦＯ動作は、
前記第１のＳＲＡＭアレイの前記第１のラインの第１のビットアドレスに第１のビットに書き込むステップと、
前記第１のＳＲＡＭアレイの前記第１のライン内の追加のアドレスに追加のビットを書き込むステップと、
各追加ビットを前記第１のＳＲＡＭアレイの前記第１のラインに書き込むと第１のカウンタを増分するステップと、
を有し、前記第１のカウンタが前記第１のＳＲＡＭアレイの前記第１のラインの最大サイズに達した場合、前記方法は、前記第２のＳＲＡＭアレイの前記第１のラインについて前記増分および書き込みプロセスを繰り返し、
前記カウンタが前記第２のＳＲＡＭアレイの前記第１のラインの最大サイズに達した場合、前記方法は、双方の前記ＳＲＡＭアレイの以降のラインについて、前記増分、書き込み、および繰り返しプロセスを繰り返す、請求項２０の方法。
【請求項２３】
前記方法は、更に、
各ビットを前記第ＳＲＡＭアレイに書き込むと第２のカウンタを増分するステップを有し、前記第２のカウンタが双方の前記ＳＲＡＭアレイの最大サイズに達した場合、前記方法は、
前記第１のＳＲＡＭアレイの前記第１のラインの前記第１のビットアドレスにおける前記第１のビットを前記下流ラッチに出力するステップと、
前記第１のＳＲＡＭアレイの前記第１のラインの前記第１のビットアドレスにおける前記第１のビットを最も新しい受信ビットによって上書きするステップと、
追加ビットを受信すると、前記ビットを前記ＳＲＡＭアレイに書き込んだ順序で、前記ＳＲＡＭアレイにおける以降の各ビットについて、前記出力および前記上書きステップを繰り返すステップと、
を有する、請求項２２の方法。
【請求項２４】
書き込みプロセスが完了した後、前記ＳＲＡＭアレイは最も新しい受信ビットのみを含む、請求項２３の方法。
【請求項２５】
埋め込みダイナミックランダムアクセスメモリ（ＤＲＡＭ）構造内の多数のスタティックランダムアクセスメモリ（ＳＲＡＭ）アレイからヒューズ情報を検索する方法において、前記ＳＲＡＭアレイは、スキャンチェーンを構成する上流および下流のラッチに接続されており、前記ＳＲＡＭアレイにおけるＳＲＡＭラインの長さはヒューズワードと等しく、前記ＳＲＡＭに格納されたヒューズワードは異なるＳＲＡＭアレイにおける２つのＳＲＡＭラインをまたぐ場合があり、前記方法は、
オフセットを計算するステップと、
前記オフセットを用いて、所望のヒューズワード要求内の第１のビットの物理位置を求めるステップと、
単一の読み取りサイクルにおいて前記ＳＲＡＭアレイの各々から１つのＳＲＡＭラインを読み取って、前記単一の読み取りサイクル内で第１のＳＲＡＭラインおよびその次の第２のＳＲＡＭラインを読み取るステップと、
前記第１のＳＲＡＭラインの終端を前記第２のＳＲＡＭラインの先頭と結合して単一のヒューズワードを出力するステップであって、前記第１のＳＲＡＭラインの前記終端は、前記物理位置から前記第１のＳＲＡＭラインの最下位ビットまでの前記第１のＳＲＡＭラインのビットを有し、前記第２のＳＲＡＭラインの前記先頭は、前記第２のＳＲＡＭラインの最上位ビットから、前記第１のＳＲＡＭラインにおける前記物理位置の有効ビット位置よりも１少ない有効ビット位置までの前記第２のＳＲＡＭラインのビットを有するものである、ステップと、
方法。
【請求項２６】
前記オフセットを計算する前記ステップは、データが前記ＳＲＡＭに書き込まれる際に双方の前記ＳＲＡＭアレイにおけるビット数までカウントし次いでリセットするオフセットカウンタを維持するステップを有し、前記ＳＲＡＭへの書き込みの終了時に前記オフセットカウンタに残っている値が前記オフセットを表す、請求項２５の方法。
【請求項２７】
所望のヒューズワード要求内の第１のビットの物理位置を求める前記プロセスは、
前記所望のヒューズワードの論理アドレスを前記オフセットに加えて総物理位置を生成するステップと、
前記総物理位置を、前記ＳＲＡＭアレイの１つにおけるラインのビット数の２倍である除数によって除算して整数および余りを生成するステップであって、前記整数は前記物理アドレスの行を表し、前記余りは列アドレスを表し、前記余りが前記ＳＲＡＭアレイの１つの前記ラインの前記ビット数よりも大きい場合、前記列アドレスは前記第２のＳＲＡＭアレイ内にあり、前記余りから前記ＳＲＡＭアレイの１つの前記ラインにおける前記ビット数を引いたものに等しく、前記余りが前記ＳＲＡＭアレイの１つの前記ラインにおける前記ビット数以下である場合、前記列アドレスは前記第１のＳＲＡＭアレイ内にあり、前記余りと等しいものである、ステップと、
を有する、請求項２５の方法。
【請求項２８】
前記読み取りプロセスは、
前記列アドレスが前記第１のＳＲＡＭアレイ内にある場合、第１のＳＲＡＭアレイから第１のラインを読み取り、その後、第２のＳＲＡＭアレイから同じ第１のラインを読み取り、前記第１のＳＲＡＭアレイからの前記第１のラインが前記第１のＳＲＡＭラインを有し、前記第２のＳＲＡＭアレイからの前記第１のラインが前記第２のＳＲＡＭラインを有するようになっている、ステップと、
前記列アドレスが前記第２のＳＲＡＭアレイ内にある場合、第２のＳＲＡＭアレイから前記第１のラインを読み取り、その後、前記第１のＳＲＡＭアレイにおける前記第１のラインの直後にある前記第１のＳＲＡＭアレイの第２のラインを読み取り、前記第２のＳＲＡＭアレイからの前記第１のラインが前記第１のＳＲＡＭラインを有し、前記第１のＳＲＡＭアレイからの前記第１のラインが前記第２のＳＲＡＭラインを有するようになっている、ステップと、
のうち１つを有する、請求項２７の方法。
【請求項２９】
前記ＳＲＡＭアレイは単一の多ポートＳＲＡＭを有する、請求項２５の方法。
【請求項３０】
ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイスであって、
複数の上流ビットラッチに接続されたシリアルビットストリーム入力と、
複数の下流ビットラッチに接続されたシリアルビットストリーム出力と、
前記ＤＲＡＭデバイスのためのヒューズ情報を維持するＳＲＡＭアレイと、
を有する、ＤＲＡＭデバイス。
【請求項３１】
前記ＳＲＡＭアレイは多数のＳＲＡＭアレイを有する、請求項３０のＤＲＡＭデバイス。  
【請求項３２】
前記ＳＲＡＭアレイは多ポートＳＲＡＭを有する、請求項３０のＤＲＡＭデバイス。
【請求項３３】
機械によって読み取り可能なプログラム格納デバイスであって、前記機械によって実行可能な命令のプログラムを明白に具現化して、埋め込みダイナミックランダムアクセスメモリ（ＤＲＡＭ）構造内のスタティックランダムアクセスメモリ（ＳＲＡＭ）アレイにおいてヒューズ情報を再整合する方法を実行するプログラムにおいて、前記ＳＲＡＭアレイは、スキャンチェーンを構成する上流および下流のラッチに接続されており、前記ＳＲＡＭアレイにおけるＳＲＡＭラインの長さはヒューズワードと等しく、前記ＳＲＡＭに格納されたヒューズワードは２つのＳＲＡＭラインをまたぐ場合があり、前記方法は、
オフセットを計算するステップと、
第１のヒューズワードにおける第１のビットの物理位置を、前記第１のヒューズワードの前記第１のビットの論理アドレスを前記オフセットに加えることによって求めるステップと、
２つのＳＲＡＭラインを読み取って、前記物理位置を含む第１のＳＲＡＭラインおよび前記第１のＳＲＡＭラインの直後の第２のＳＲＡＭラインを読み取るステップと、
前記第１のＳＲＡＭラインの終端からのビットを第１のデータレジスタに格納するステップと、
前記第２のＳＲＡＭラインの先端からのビットを第２のデータレジスタに格納するステップと、
前記第１のＳＲＡＭラインの前記終端を前記第２のＳＲＡＭラインの前記先頭と結合して単一のヒューズワードを出力するステップと、
前記単一のヒューズワードを前記第１のＳＲＡＭラインに格納して、前記第１のＳＲＡＭラインを前記ヒューズワードによって上書きするステップと、
全ての残りのヒューズワードについて、前記求めるプロセスから前記単一のヒューズワードを格納する前記プロセスまでの処理を繰り返すステップと、
を有する、方法。
【請求項３４】
前記オフセットを計算する前記ステップは、データが前記ＳＲＡＭアレイに書き込まれる際に前記ＳＲＡＭアレイにおけるビット数までカウントし次いでリセットするオフセットカウンタを維持するステップを有し、前記ＳＲＡＭアレイへの書き込みの終了時に前記オフセットカウンタに残っている値が前記オフセットを表す、請求項３３の方法。
【請求項３５】
前記第１のＳＲＡＭラインの前記終端は、前記物理位置から前記第１のＳＲＡＭラインの最下位ビットまでの前記第１のＳＲＡＭラインのビットを有し、前記第２のＳＲＡＭラインの前記先頭は、前記第２のＳＲＡＭラインの最上位ビットから、前記第１のＳＲＡＭラインにおける前記物理位置の有効ビット位置よりも１少ない有効ビット位置までの前記第２のＳＲＡＭラインのビットを有する、請求項３３の方法。
【請求項３６】
前記第１のヒューズワードは、前記ＳＲＡＭアレイに格納されたヒューズワードの第１の論理ヒューズワードを有する、請求項３３の方法。
【請求項３７】
前記繰り返すステップが完了した後、全てのヒューズワードをＳＲＡＭアレイワードと整合する、請求項３３の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ヒューズ情報の格納に関し、更に特定すれば、埋め込みＤＲＡＭ構造（embedded DRAM structure）内の非走査可能（non-scannable）スタティックランダムアクセスメモリ（ＳＲＡＭ）アレイに対するシリアルなヒューズ情報の格納および検索のための構造および方法に関する。
【背景技術】
【０００２】
埋め込みアプリケーションにおいて用いられるダイナミックランダムアクセスメモリ（ＤＲＡＭ）アレイは、ヒューズに格納される情報（通常は冗長情報）に依存する。この情報は、通常動作が開始可能となる前に、起動時に埋め込みＤＲＡＭマクロにおけるヒューズラッチにロードしなければならない。この情報は、従来、ヒューズラッチ間に接続されたスキャン経路を用いてシリアルにロードされる。いくつかのアプリケーションでは、ヒューズ情報（冗長情報）のための集中配置が有用であるか、またはヒューズ情報に専用の領域を小さくすることが望まれる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、かかる情報を保持するために用いられるスキャンラッチは、ＤＲＡＭ構造内で大量の空間を消費する。以下に説明する本発明は、ヒューズ情報を維持するためのスキャンラッチを用いる必要性を回避し、従来の構造と比較した場合に著しい空間の節約を達成する。更に、以下に説明する本発明は、従来の非局在スキャンラッチに基づくデバイスよりも高速で動作する。
【課題を解決するための手段】
【０００４】
本発明は、埋め込みＤＲＡＭ構造内の非走査可能スタティックランダムアクセスメモリ（ＳＲＡＭ）アレイに対するヒューズ情報のシリアルな格納および検索のための構造および方法を提供する。ＳＲＡＭアレイは、スキャンチェーンの一部であり、スキャンチェーンを構成する上流および下流ラッチに接続されている。スキャンチェーンに、様々なデータがシリアルに読み込まれる。データが全スキャンチェーンを流れると、本発明は、カウンタを用いて、埋め込みＤＲＡＭ構造に読み込まれたビット数をカウントする。カウンタは、埋め込みＤＲＡＭ構造内に含ませることができる。カウンタが、スキャンチェーンにおける全ての下流スキャンラッチの格納ビット数と等しい量をカウントした後、本発明は、ヒューズ情報をシフトレジスタにロードする。シフトレジスタがいっぱいになると、本発明は、シフトレジスタの内容をＳＲＡＭラインにロードする。シフトレジスタおよびＳＲＡＭラインの長さは、１つのヒューズワードに等しい。本発明は、ＳＲＡＭアレイがいっぱいになるまで、シフトレジスタのロードおよびＳＲＡＭアレイのロードのプロセスを繰り返す。ヒューズ情報は、単にＳＲＡＭアレイにおいてアドレスを指定することによって、ＳＲＡＭアレイから読み出される。
【０００５】
ヒューズ情報は、活性化されたヒューズ（ＤＲＡＭアレイ内の適切に動作するデバイスによって不良のデバイスを置換するため、とんだヒューズ）のリストを含む。シフトレジスタを用いて、シリアルに受信したデータを収集し、次いで、ＳＲＡＭにパラレルに多数ビットをロードする（なぜなら、データは、シリアルでなくパラレル動作でＳＲＡＭアレイに書き込まれるのが好ましいからである）。シフトレジスタの内容をＳＲＡＭラインにロードするプロセスは、おそらくは第２のカウンタにおいて、シフトレジスタにロードされたビットをカウントすることを含む。いったん第２のカウンタの値がＳＲＡＭラインのサイズと等しくなったら、シフトレジスタからの全ビットを同時にＳＲＡＭラインにパラレルにロードする。
【０００６】
スキャンチェーンの下流の長さが未知である場合に有用な本発明の別の実施形態は、ＦＩＦＯ動作を利用する。この実施形態は、スキャンチェーンにデータが読み込まれなくなるまで、先入れ先出し（first-in, first-out（ＦＩＦＯ））動作を用いて、ＳＲＡＭアレイにデータを連続的に格納する。更に具体的には、ＦＩＦＯ動作は、第１のビットをＳＲＡＭアレイの第１のアドレスに書き込み、ＳＲＡＭアレイに各ビットが書き込まれると、アドレスカウンタを増分する。アドレスカウンタがＳＲＡＭアレイの最大サイズに達するまで、ＦＩＦＯ動作によって、追加のビットをＳＲＡＭアレイの追加のアドレスに書き込み続ける。いったんＳＲＡＭアレイがいっぱいになると、本発明は、アレイに書き込まれた最初のビットを読み出して、下流ラッチに出力する。次いで、本発明は、第１のビットを、最も新しい受信ビットによって上書きする。これらの出力および上書きのプロセスは、追加のビットを受信する際に、ＳＲＡＭアレイにおける後続の各ビットごとに繰り返される。
【０００７】
従って、この実施形態では、データがスキャンチェーンに沿って受信される際に、シリアルに受信したデータをＳＲＡＭアレイ内の各アドレスに書き込む。ＳＲＡＭアレイがいっぱいになった後、プロセスは、データの最も新しい受信ビットによって最も古いビット（第１の書き込みビット）をオーバーライドする。このオーバーライドプロセスによって、いったんスキャンチェーンに対するデータ入力が停止したら、ＳＲＡＭアレイにはスキャンチェーンに入力されたデータの最後の部分のみが維持されることが確実となる。
【０００８】
前述の実施形態では、ＳＲＡＭアレイの２つのライン間に１つのヒューズワードが分割されるという状況が生じる場合がある。従って、本発明の次の２つの機構は、ＳＲＡＭアレイの２つのライン間に１つのヒューズラインが分割されることに対応する検索および再整合プロセスを提供する。各々の状況において、ＳＲＡＭアレイにおけるＳＲＡＭラインの長さは、１つのヒューズワードに等しい。
【０００９】
検索プロセスは、最初に、アドレスカウントレジスタから最後の値を読むことによって、オフセットを計算する（このレジスタは、ＳＲＡＭの最大ビット数をカウントし、次いでリセットし、再びゼロからカウントを始めるカウンタを維持する）。オフセットカウンタの値の直後のデータが、最も古い受信ビットを表すのに対し、オフセットカウンタの直前のデータは、最も新しい受信データを表す。最も古いデータビットは、ヒューズ情報の第１ビットを表す。従って、ヒューズ情報のビットのアドレスに対する要求が行われると、そのビットの物理アドレスを突き止めるため、オフセットをアドレスに追加しなければならない。
【００１０】
この実施形態は、２つのＳＲＡＭラインを単一の読み取りで読む。より具体的には、本発明は、物理アドレスを含むＳＲＡＭラインおよび（それに続く）直後のラインを読む。このため、本発明は、単一のシステムクロック読み取りサイクル内で、「第１の」ＳＲＡＭラインおよびそれに続く「第２の」ＳＲＡＭラインを読む。なぜなら、本発明では、そのヒューズワードが２つのライン間にまたがることが予想されるからである。本発明は、物理アドレスをＳＲＡＭライン長で除算することで、ヒューズワードが２つのライン間にまたがるかどうか、およびどのようにまたがるかを計算する。除算プロセスは、整数および余りを生じる。余りは、物理アドレスが位置する第１のＳＲＡＭライン内のビットを示す（最上位ビットと最下位ビットとの間）。
【００１１】
本発明は、第１のＳＲＡＭラインの終端を、第２のＳＲＡＭラインの先頭と結合して、単一のヒューズワードを出力する。第１のＳＲＡＭラインの終端は、物理アドレスから第１のＳＲＡＭラインの最下位ビットまでの第１のＳＲＡＭラインのビットを含む。第２のＳＲＡＭラインの先頭は、第２のＳＲＡＭラインの最上位ビットから、第１のＳＲＡＭラインにおける物理アドレスの有効ビット位置よりも１少ない有効ビット位置までの、第２のＳＲＡＭラインのビットを含む（上述の余りの値から１を減算することで求められる）。
【００１２】
あるいは、ＳＲＡＭアレイに全ヒューズ情報を読んだ直後、本発明は、数クロックサイクルをかけてＳＲＡＭアレイを再整合し、全ヒューズワードが、単一のＳＲＡＭライン内で現れ、これによってＳＲＡＭラインと「整合」されるようにする。本発明のこの態様は、先のプロセスと同様であり、上述のようにオフセットを計算することによって開始する。次いで、本発明のこの態様は、２つのＳＲＡＭラインを読み取る（例えば「第１の」ＳＲＡＭラインおよび隣接する「第２の」ＳＲＡＭラインを読む）。本発明は、第１のＳＲＡＭラインの終端からのビットを、第１のデータレジスタに格納する。このプロセスは、次いで、第１のＳＲＡＭラインの終端を第２のＳＲＡＭラインの先頭と結合して、単一のヒューズワードを生成し、読み取りプロセスの間に第１のＳＲＡＭラインを読み取ったアドレスに、この単一のヒューズワードを格納（上書き）する。このプロセスは、ＳＲＡＭアレイにおける後続の各ラインごとに繰り返され、これによって、ＳＲＡＭアレイの各ラインが単一のヒューズワードを含むことを保証する。
【００１３】
また、本発明は、各埋め込みＤＲＡＭ構造内に多数のＳＲＡＭアレイを利用する実施形態も含む。かかる実施形態では、ＳＲＡＭアレイは、スキャンチェーンを構成する上流および下流ラッチに接続されている。上述のものとやや類似したプロセスでは、本発明のこの態様は、シリアルにスキャンチェーンにシリアルにスキャンデータを読み込み、先入れ先出し（ＦＩＦＯ）動作を用いて、ＳＲＡＭアレイにデータを格納する。このＦＩＦＯ動作が、先に説明したＦＩＦＯ動作といくぶん異なる点は、このプロセスが最初に第１のＳＲＡＭアレイのラインに書き込みを行い、いったん第１のＳＲＡＭアレイのラインがいっぱいになると、第２のＳＲＡＭアレイの同じラインに受信した追加ビットを書き込むことである。ＦＩＦＯ動作では、第２のＳＲＡＭアレイの以前のラインがいっぱいになった後に初めて、第１のＳＲＡＭアレイの以降のラインに書き込みを行う。
【００１４】
この状況において、１つのヒューズワードが、別個のＳＲＡＭアレイの隣接するライン間に分割される場合がある。従って、ヒューズ情報を検索するプロセスが、この潜在的な状況に対応する。この場合も、ＳＲＡＭアレイにおけるＳＲＡＭラインの長さは１つのヒューズワードに等しく、このプロセスは、ヒューズワードサイズの２倍をカウントし次いでリセットするオフセットカウンタを維持することで、ヒューズワードとＳＲＡＭラインとの間のオフセットを計算することによって開始する。ここでも、ＳＲＡＭへの書き込みの終了時にオフセットカウンタに残る値が、オフセットを表す。
【００１５】
本発明は、単一の読みとリサイクルにおいてＳＲＡＭアレイの各々から１つのＳＲＡＭラインを読み取る。このため、本発明は、単一の読み取りサイクル内で、アレイの１つから「第１の」ＳＲＡＭラインを読み取り、他方のアレイから後続の「第２の」ＳＲＡＭラインを読み取る。これは、第１のＳＲＡＭアレイからラインを読み取り、この後、第２のＳＲＡＭアレイから同じラインを読み取ることを含むことができる。あるいは、この読み取りプロセスは、第２のＳＲＡＭアレイから１つのラインを読み取り、この後、第１のＳＲＡＭアレイの後続のラインを読み取ることができる。本発明は、次いで、第１のＳＲＡＭラインの終端を第２のＳＲＡＭラインの先頭と結合して、上述のものと同様に単一のヒューズワードを出力する。
【００１６】
本発明は、従来の埋め込みＤＲＡＭ構造と比較した場合に、多数の利点を生じる。本発明は、以前はパラレルにしかロードすることができなかった非走査可能メモリ要素を、シリアルにロードすることができる走査可能メモリ要素に変換することができる。この変換によって、メモリ要素のロード／アンロードのためのシリアルな方法を必要とする環境において、以前は非走査可能であったメモリ要素を用いることができる。非走査可能メモリ要素は通常、走査可能メモリ要素に比べて、密度が高く、速度の利点を有する。本発明は、埋め込みＤＲＡＭ構造においてこれらの利点を可能とする。特に、ヒューズ情報格納レジスタは、過去においては、シリアルロードが要求されたために、大きくて遅い走査可能要素を用いた実施に限定されていた。
【００１７】
本発明は、図面を参照した本発明の好適な実施形態の以下の詳細な説明から、より良く理解されよう。
【発明を実施するための最良の形態】
【００１８】
先に述べたように、ヒューズ情報は、従来、ヒューズラッチ間に接続されたスキャン経路を用いてシリアルにロードされる。いくつかのアプリケーションでは、ヒューズ情報ラッチのための集中配置が有用である（冗長情報）か、またはヒューズ情報に専用の領域を小さくすることが望まれる。スキャンラッチを用いる代わりに、本発明は、ＳＲＡＭにヒューズ情報を格納する。
【００１９】
ここで考察する１実施形態は、スタンドアロンのＤＲＡＭと共に用いると有用である。この実施形態では、シフトレジスタが、いっぱいになるまでヒューズ情報を蓄積し、次いでそれをＳＲＡＭにロードする。ヒューズ情報のロードは、そのＤＲＡＭ専用の情報によって開始および停止する。しかしながら、スキャンチェーン内に埋め込まれたＤＲＡＭでは、状況は異なる。かかる状況では、ヒューズ情報は、スキャンチェーン内の上流および下流デバイス／ラッチ用の情報の前または後に、スキャンチェーンをシリアルに流れていく。従って、埋め込みアプリケーションで用いられるＤＲＡＭにおいては、ヒューズ情報のロードは、通常、ヒューズ情報を用いる多数のＤＲＡＭマクロおよび様々な他のマクロに及ぶので、問題が生じる。特定のＤＲＡＭマクロについて正しいヒューズ情報をＳＲＡＭにうまくロードするためには、いくつかの問題に対処しなければならない。
【００２０】
第１に、ＳＲＡＭおよびそのインタフェースは、ヒューズスキャンチェーンに接続された個別のラッチの集合に類似し、全ての後続のヒューズラッチとの適合性を維持しなければならない。これによって、全てのスキャン情報が、ＳＲＡＭにおけるビット数と長さが等しい仮想スキャンチェーンに入る（そして通過する）ことができる。これが失敗すると、ヒューズスキャンチェーンにおけるＳＲＡＭの後段の全ラッチに、適切な情報がロードされない。
【００２１】
第２に、個別のラッチからのヒューズ情報の読み取りにいくぶん類似させるため、ＳＲＡＭに格納された情報は、単一のクロックサイクル内にアクセス可能でなければならない（ここで、クロックサイクルは、ヒューズ情報にアクセスし解釈する関連論理によって用いられるものと定義する）。情報アクセスは、ＳＲＡＭにおけるヒューズ情報の実際の物理位置とは無関係でなければならない。
【００２２】
以下に概説する方法は、これらの問題に対処し、集中配置において小さい空間でヒューズ情報格納のためにＳＲＡＭを用いる手段を提供する。ＳＲＡＭおよびインタフェース論理の最終回路は、面積を大幅に節約しつつ、レジストリアレイのようにロードしアドレスすることができる。以下に説明する本発明の異なる実施形態は、全て、上述の２つの要求を満たす。更に具体的には、ヒューズロードの間、ＳＲＡＭは別個のラッチの仮想スキャンチェーンとして機能し、ＳＲＡＭ内の実際の物理位置を知らなくても、１システムクロックサイクル内で、ＳＲＡＭからヒューズ情報にアクセスすることができる。
【００２３】
図１に示す第１の実施形態は、実施のための最も簡単な方式を表し、対象のＳＲＡＭアレイ１１０に続くヒューズラッチチェーン１０５のビット数に関する情報を回路に提供することが必要である。プログラマブルＳＲＡＭロード開始カウンタ１２２は、このビット数までカウントする。この時点の後、以降の（下流の）ビットは全て通過し、ＳＲＡＭ１１０のワード幅と等しい幅のシフトレジスタ１２３にロードされることになる。シフトレジスタ１２３がいっぱいになると、現アドレスにロードされるため、ＳＲＡＭ１１０のワード幅当たり１つの情報ヒューズワードが保証される。開始カウンタ１２２は、以降の（下流の）ビットの合計数にプログラムされている。アドレスカウンタ１２１およびビットカウンタ１２０を用いて、シフトジレスタ１２３は、図１に示すように、その桁上げ時にＳＲＡＭ１１０に書き込まれる。そして、ＳＲＡＭ１１０からヒューズ情報に対するアクセスは、単に、正しいアドレスを供給し、読み取った情報が出力されるのを待つことによって行われる。
【００２４】
スキャンチェーンの下流の長さが未知である場合に有用な本発明の別の実施形態は、先入れ先出し（ＦＩＦＯ）動作を利用するものであり、これを図２に示す。この実施形態は、スキャンチェーンにデータを読み込まなくなるまで、ＦＩＦＯ動作を用いてＳＲＡＭアレイにデータを連続的に格納する。この実施形態では、以降のヒューズラッチスキャンチェーンに関する知識は必要ない。ＳＲＡＭ１１０に対するインタフェース論理は、ロードおよび情報アクセスのための仮想レジスタアレイを生成する。
【００２５】
アドレスカウンタ１２１は、ＳＲＡＭ１１０の行空間を通して連続的に増分し、一方、ビットカウンタ２００は、ＳＲＡＭ１１０のワード幅を通して連続的に増分する。各ヒューズスキャンクロックサイクルにおいて、現アドレスにおける現データを、クロックサイクルの前半でＳＲＡＭ１１０から読み、次いで、ヒューズスキャンクロックサイクルの後半の間に書き込み、ビットカウンタが示した位置に最新のスキャン情報ビットを挿入する。この位置における以前のビットは、ＳＲＡＭ１１０ヒューズブロックのスキャン出力２０１として送出される。
【００２６】
このため、ＦＩＦＯ動作は、ＳＲＡＭアレイ１１０の第１のアドレスに第１のビットを書き込み、ビットカウンタ１２０によって各ビットが検出されるとアドレスカウンタ１２１を増分する。アドレスカウンタ１２１がＳＲＡＭアレイ１１０における最大サイズのビット数に達するまで、ＦＩＦＯ動作は、ＳＲＡＭアレイ１１０の追加のアドレスに追加のビットを書き込み続ける。いったんＳＲＡＭアレイ１１０がいっぱいになると、本発明は、アレイに書き込まれた第１のビット（最も古いビット）を読み出し、スキャン出力２０１を用いて下流ラッチ１０５に出力する。これを、読み出しビット選択論理と呼ぶ。そして、本発明は、第１のビットを最も新しい受信ビットで上書きする。これを、スキャンおよびビット挿入論理と呼ぶ。これらの出力および上書きプロセスは、追加のビットが受信される際に、ＳＲＡＭアレイにおける以降の各ビットごとに繰り返される。このプロセスがＳＲＡＭアレイの終端に達するたびに、最初に戻って再び開始する。
【００２７】
従って、この実施形態は、スキャンチェーンに沿ってデータが受信されると、ＳＲＡＭアレイ内で個々のアドレスにシリアルに受信データを書き込む。ＳＲＡＭアレイがいっぱいになった後、プロセスは、最も古いビット（第１の書き込みビット）を、データの最も新しい受信ビット（最も新しいビット）でオーバーライドする。このオーバーライドプロセスによって、いったんスキャンチェーンへのデータ入力が停止すると、ＳＲＡＭアレイにはスキャンチェーンに入力されたデータの最後の部分（受信した最新のデータ）のみが維持されることが確実となる。このデータの最後の部分は、所与のＳＲＡＭに対して適切なデータである。なぜなら、上流のラッチは、かかる上流のラッチ用のシリアルデータを維持する（そして転送しない）からである。このため、対象のＳＲＡＭが受信したデータの最後の部分は、特定の埋め込みＤＲＡＭに関連したヒューズ情報である。
【００２８】
この実施形態によって、以降の（下流の）スキャンビットは、あたかもＳＲＡＭブロック１１０が個々のシリアル化スキャンラッチから成るように、このブロック１１０を通過することができる。また、スキャン初期化の最後に、ヒューズ情報の全ての必要なビットがＳＲＡＭ１１０内にあることが保証される。
【００２９】
図３は、図２に示したＳＲＡＭ１１０内にデータを書き込む際の様々な信号のタイミング図を示す。ＳＲＡＭクロックは、ヒューズクロックおよび読み取り／書き込みクロックの速度の２倍で動作する。なぜなら、ＳＲＡＭクロックは、スキャンおよびビット挿入論理入力２００によって単一の読み取りが行われる時間中に読み取りおよび書き込みを行わなければならないからである。上述のように、ＳＲＡＭ１１０は対象のアドレスから古いビットを読み取り、単一のヒューズクロック読み取り／書き込みサイクル内で、読み出しビット選択論理出力２０１を通して出力し、更に、新しいビットを同じアドレスに書き込むことを可能としなければならない。ヒューズクロックおよび読み取り／書き込みクロックは同期を取っており、アレイ選択信号は常にオンである。これは、ＳＲＡＭを介したスキャンデータフローが、全スキャン動作にわたって継続することを示す。
【００３０】
ＳＲＡＭ１１０に対するアクセスは、より複雑である。なぜなら、通常はＳＲＡＭ１１０の単一のラインに含まれるヒューズワードが、ヒューズスキャンチェーンにおける以降のビット数に応じて、２つの隣接するＳＲＡＭライン間に分割される場合があるからである。換言すると、下流ビット数がＳＲＡＭ１１０のビット数の偶数倍である可能性は低いので、ヒューズ情報の最後のビットがＳＲＡＭ１１０の論理的にアドレスされた最後のビットとなる可能性は低い。
【００３１】
不整合ＳＲＡＭ１１０の読み取りにおける最初の手法では、ＳＲＡＭ１１０が、アクセスする論理のシステムクロックのクロック速度の２倍で動作することを必要とする（図５のタイミング図に示す）。これによって、各システムクロック読み取りサイクルで、メモリに２回アクセスすることができる。これは、ヒューズワードが２つのＳＲＡＭライン間に分割されていた場合にＳＲＡＭから２つの隣接ラインを読み取るために必要である。物理アドレスオフセットデバイス４００によって、アドレスカウントレジスタ１２１に格納した最後の値（以前にＳＲＡＭ１１０にロードするため用いた）をここでオフセット値として用い、これを通常の論理入力アドレスに加えて、ヒューズワード開始の真の物理位置を与える。
【００３２】
ヒューズ情報は、この物理アドレスから読み取られ、第１のデータレジスタ４０２（データレジスタＡ）に格納される。次いで、読み取られたばかりのラインに続く次のＳＲＡＭラインが読み取られ、データマッピング論理結合器４０３において、第１のデータレジスタ４０２からの情報と結合される。アドレスカウントレジスタ１２１に格納された最後の値（以前にＳＲＡＭアレイ１１０にロードするため用いた）を、ビットオフセットとして用いて、２つの部分的ラインのＳＲＡＭデータ（現在のＳＲＡＭ出力と共にレジスタＡに格納したデータ）から、真のヒューズワードを構築する。
【００３３】
このため、図４に示す実施形態では、検索プロセスは、最初に、アドレスカウンタレジスタ１２１（これは、ＳＲＡＭにおける最大ビット数までカウントし、次いでリセットし、ゼロから再びカウントを始めるカウンタを維持する）から最後の値を読み取ることによってオフセットを計算する。従って、アドレスカウントレジスタ１２１は、スキャンデータがＳＲＡＭを循環する際に最新のデータビットが書き込まれたＳＲＡＭの位置を維持する。ＳＲＡＭへの書き込みの終了時にアドレスカウントレジスタ１２１に残っている値が、オフセットを表す。
【００３４】
上述のように、ＳＲＡＭ内の格納位置（ビット）数は、ヒューズデータ情報内のビット数とは異なる場合がある。従って、ヒューズ情報のワードは、ＳＲＡＭ内のラインと完璧には整合しないことがある。このため、オフセットカウンタはＳＲＡＭの中央の行（線）の中間で停止する可能性がある。オフセットカウンタの値の直後のデータは最も古い受信ビットを表し、一方、オフセットカウンタの直前のデータは最も新しい受信データを表す。最も古いデータビットは、ヒューズ情報の第１のビットを表す。従って、ヒューズ情報の第１ビットのアドレスに対する要求が行われると、物理アドレスを突き止めるために、アドレスにオフセットを加えなければならない。
【００３５】
論理アドレスおよびオフセットを合計したらＳＲＡＭのサイズを超えた結果が生じた場合、これは、ヒューズ情報の物理アドレスが、実際にはＳＲＡＭアレイの先頭に配置されることを示す。これが起こる理由は、上述のように、ＳＲＡＭアレイに書き込みを行うと、ＳＲＡＭアレイの終端に達するたびに、古いビットは下流のスキャンラッチに出力され、アドレスカウンタ１２１がＳＲＡＭアレイの先頭に戻って古いビットを上書きするからである。従って、かかる状況では、本発明は、計算した物理アドレスがＳＲＡＭアレイのサイズより大きい量を決定する。この過剰な量は、ＳＲＡＭアレイの先頭からの正しい物理アドレスを表す。
【００３６】
この実施形態は、単一の読み取りで２つのＳＲＡＭラインを読み取る。より具体的には、本発明は、物理アドレスを含むＳＲＡＭラインおよびその直後の（それに続く）ラインを読み取る。このため、本発明は、単一のシステムクロック読み取りサイクル内で、「第１の」ＳＲＡＭラインおよびそれに続く「第２の」ＳＲＡＭラインを読み取る。なぜなら、本発明は、ヒューズワードが２つのライン間にまたがることを予測するからである。本発明は、物理アドレスをＳＲＡＭライン長で除算することによって、ヒューズワードが２つのライン間にまたがるか否か、およびどのようにまたがるかを計算する。除算プロセスでは、整数および余りが生じる。整数は、物理アドレスが位置する行を表す。余りは、物理アドレスが位置する第１のＳＲＡＭライン内（例えば列）のビットを示す（最上位ビットと最下位ビットとの間）。
【００３７】
本発明は、第１のＳＲＡＭラインの終端を第２のＳＲＡＭラインの先頭と結合して、単一のヒューズワードを出力する。第１のＳＲＡＭラインの終端は、物理アドレスから第１のＳＲＡＭラインの最下位ビットまでの第１のＳＲＡＭラインのビットを含む。第２のＳＲＡＭラインの先頭は、第２のＳＲＡＭラインの最上位ビットから、第１のＳＲＡＭラインにおける物理アドレスの有効ビット位置よりも１少ない有効ビット位置までの、第２のＳＲＡＭラインのビットを含む（上述の余りの値から１を減算することで求められる）。
【００３８】
図５は、前述の実施形態で説明した方法において、ＳＲＡＭからヒューズ情報を読み取るために用いる信号タイミング図を示す。図５に示す信号は、図３に示すものと同様であるが、ヒューズ冗長情報の読み取り全体を通して読み取り／書き込みクロックを活性化し維持する点が異なる。ＳＲＡＭクロックは、システムクロックの速度の２倍で動作する。なぜなら、ＳＲＡＭクロックは、冗長情報に対する全システムクロック駆動要求に対して２回の読み取りを実行しなければならないからである。上述のように、ＳＲＡＭ１１０は、場合によっては、２つのＳＲＡＭワードから単一のヒューズワードを再構築しなければならない。
【００３９】
あるいは、ＳＲＡＭアレイに全ヒューズ情報を読み込んだ直後、本発明は、数クロックサイクルをかけてＳＲＡＭアレイを再整合し、全ヒューズワードが、単一のＳＲＡＭライン内に現れ、これによってＳＲＡＭラインと「整合」されるようにする。ＳＲＡＭアレイを再整合することによって、この実施形態は、ヒューズワードにアクセスするたびに２ラインの読み取りおよび整合（先の実施形態で述べた）を行わなければならない必要性を回避する。また、これによって、読み取りのためシステムクロック速度の２倍でＳＲＡＭクロックを動作させる必要性がなくなる。
【００４０】
この実施形態では、ヒューズ情報をロードした後、多数のクロックサイクルを（一度に）用いてヒューズワードを調整し、それらがＳＲＡＭワード境界に重ならないようにする。本発明のこの態様は、先のプロセスと類似しており、上述のようにオフセットを計算することによって開始する。そして、本発明は、上述のプロセスを用いて、第１のヒューズワードの物理アドレスを求める。本発明は、この場合も、２つのＳＲＡＭラインを読み取る（例えば「第１の」ＳＲＡＭラインおよび隣接した「第２の」ＳＲＡＭラインを読み取る）。本発明は、第１のＳＲＡＭラインの終端からのビットを、第１のデータレジスタに格納する。そして、このプロセスは、第１のＳＲＡＭラインの終端を第２のＳＲＡＭラインの先頭に結合して、単一のヒューズワードを生成し、この単一のヒューズワードを、読み取りプロセス中に第１のＳＲＡＭラインが読み取られたアドレスに格納（上書き）する。第１のＳＲＡＭラインの先頭部分をオーバーライドする前に、本発明は、これらの最初のビット（これは、ヒューズワードが完全にＳＲＡＭアレイをいっぱいにするならば、最終的に、最後のヒューズワードにおける第２のＳＲＡＭラインの先頭を含む）を格納することができる。
【００４１】
このプロセスは、ＳＲＡＭアレイにおける後続の各ラインごとに繰り返され、これによって、ＳＲＡＭアレイの各ラインが単一のヒューズワードを含むことが確実となる。ヒューズワードの再構成は、図６に示す、８状態有限状態機械（ＦＳＭ：finite state machine）６００を含む構造を用いて達成される。不必要なデータ整合を回避するため、本発明のこの態様は、固定アドレスカウンタ６０１を含み、これは、ゼロからカウントを開始しヒューズワードの数までカウントし、その後、整合プロセスは停止する。ヒューズワード位置を固定するために必要なサイクル数（固定アドレスカウンタ６０１がカウントする）は、３＊ｎにほぼ固定され、ここでｎはＳＲＡＭワードの数である。ＳＲＡＭのワード数がヒューズワード数と等しい場合、ＦＳＭ６００は、ＳＲＡＭにおける各ワードごとに、読み取り動作（状態４）、整合ワード構築動作（状態５）、および書き込み動作（状態６）を実行しなければならない。この結果、各ヒューズワードを整合するために３つの動作が必要となる。
【００４２】
この再整合動作は、「固定」信号がアクティブになることで開始する。この信号は、外部から供給することができ、または、ヒューズのロードの終了またはＢＩＳＴシステム試験の開始によって自動的に発生させることができる。ＦＳＭは、終了すると、「固定終了」信号を供給し、この信号は、マクロがリセットするまでアクティブのままであり、ＦＳＭはその停止状態にとどまる。次いで、通常／試験動作が開始可能となる。
【００４３】
図７の状態図に示すように、ＦＳＭは、先に説明したプロセスと極めて類似した動作を行う。アドレスを発生し、元のアドレスカウントレジスタに含まれるアドレスオフセットを結合する（状態１）。このアドレスからのデータを、一時格納レジスタＡに読み取る（状態２）。次いで、このデータを、第２の一時レジスタＢにシフトし（状態３）、次のＳＲＡＭワードの別の読み取りが行われ（状態４）、その結果を第１の（からになった）一時レジスタＡに格納する（状態５）。ビットカウントレジスタに含まれるビットオフセットを用いて、レジスタＡおよびＢのデータから実際のヒューズワードを生成し、これをＳＲＡＭアレイ１１０に書き込む（これも状態５）。次いで、レジスタＡのデータをレジスタＢにシフトし（状態６）、ＳＲＡＭ１１０は再びレジスタＡに読み取られる（矢印が状態４に戻る）。このプロセスのタイミング信号を図８に示す。システムクロックはＳＲＡＭクロックと一致している。状態４で読み取り動作を実行し、状態４および５の双方の間アレイ選択はアクティブであり、次のＳＲＡＭラインを読み取ることができ、次いで整合したヒューズワードをＳＲＡＭに書き込むことができる。このプロセスは、全てのヒューズワードを固定してＳＲＡＭワード境界に一致させる（状態７）まで、ＳＲＡＭ１１０アレイの全ワードについて繰り返される。
【００４４】
ヒューズワードをＳＲＡＭワードと整合させた後、ＳＲＡＭアレイは、各通常読み取りアクセス入力ごとに１度アクセスすることができる。物理ＳＲＡＭアドレスは、やはり、アドレスカウントレジスタに格納されたオフセットを通常の論理入力アドレスと組み合わせることによって計算される。しかしながら、この実施形態では、オフセットは、物理アドレスが対応するＳＲＡＭラインの最上位ビットで開始するように調整されている。先の実施形態では、オフセットをＳＲＡＭライン内のビット数で除算し、その除算プロセスでの余りは、ヒューズワードが開始する所与のＳＲＡＭライン内のビット位置を表す。しかしながら、この実施形態では、ヒューズワードをＳＲＡＭワードラインによって再整合するので、オフセットからこの余りを減じて、オフセットを論理ヒューズワードアドレスに追加した場合に、生成される物理アドレスが対応するＳＲＡＭラインの最上位ビットで開始するようになっている。
【００４５】
また、本発明は図９および１１に示すように、各埋め込みＤＲＡＭ構造内の多ＳＲＡＭアレイ９００、９０１を利用する更に別の実施形態も含む。かかる実施形態では、ＳＲＡＭアレイ９００、９０１は、スキャンチェーンを構成する上流および下流ラッチ１０５に接続されている。上述したものとやや類似するプロセスでは、本発明のこの態様は、データをシリアルにスキャンチェーンに読み込み、先入れ先出し（ＦＩＦＯ）動作を用いて、ＳＲＡＭアレイ９００、９０１にデータを格納する。このＦＩＦＯ動作が先に説明したＦＩＦＯ動作とやや異なる点は、このプロセスでは、まず、第１のＳＲＡＭアレイ９００のラインに書き込み、いったん第１のＳＲＡＭアレイのラインがいっぱいになると、第２のＳＲＡＭアレイ９０１の同じラインに、受信した追加のビットを書き込むという点である。換言すると、この実施形態は、隣接するＳＲＡＭアレイ９００、９０１の横に並んだラインを、１つの２倍サイズのＳＲＡＭワードラインとして扱う。ＦＩＦＯ動作では、第２のＳＲＡＭアレイ９０２の前のラインがいっぱいになった後にのみ、第１のＳＲＡＭアレイ９００の後続のラインに書き込みを行う。
【００４６】
この実施形態によって、ヒューズ情報をロードした直後にＳＲＡＭ１１０にアクセスすることができ、所望の論理ヒューズワードの物理ワードアドレスを生成するのに必要なのは何らかの簡単な論理だけである。この実施形態は、（上述のように）多数クロックでＳＲＡＭ１１０を実行する必要をなくし、さらに、ヒューズワードをＳＲＡＭ１１０ワードラインで再整合する必要をなくす。
【００４７】
これによって、２回の同時読み取り／書き込みを可能とする２つのＳＲＡＭまたは単一の多ポートＳＲＡＭのいずれかが使用可能となる。２つの別個のＳＲＡＭを用いることは、図面に例示する。しかしながら、本発明はこれに限定されず、多ポートＳＲＡＭの使用も同様であることは（この開示を読んだ後に）当業者には理解されよう。多ポートＳＲＡＭでは、ＳＲＡＭ間の読み取り／書き込みの代わりに、この方法は、同じＳＲＡＭの上半分と下半分との間で読み取り／書き込みを行う（仮想的に２つのＳＲＡＭを生成する）。
【００４８】
ＳＲＡＭアレイへのロードは、図２に関連して上述した方法に極めて類似している。図９に示す実施形態での１つの相違は、ここでは、ビットカウントが、ヒューズワード／ＳＲＡＭ１１０ワード幅の２倍までカウントし、２Ｘカウント９０３を必要とすることである。これにより、ＳＲＡＭアレイの各ラインにおいて、ＳＲＡＭ９００の最上位ビットからのビットがＳＲＡＭ９０１の最下位ビットに有効に書き込まれる（横に並んだラインを単一の２倍サイズのラインとして扱う）。このプロセスを用いて、ヒューズワードは、単一のＳＲＡＭワードに含まれるか、または、ＳＲＡＭ９００およびＳＲＡＭ９０１からのワード間に分割されることになる。しかしながら、この実施形態は、（先の実施形態におけるように）システムクロックの速度の２倍で単一のＳＲＡＭメモリから連続的にラインを読み取る必要性をなくす。なぜなら、２つの隣接するＳＲＡＭラインは、常に、同時に（並列に）読み取ることができる別個のＳＲＡＭアレイ９００、９０１内にあるからである。従って、この実施形態は、単一のクロック読み取りサイクルにおいて、部分的ヒューズワードの先頭および終端を含む場合がある隣接ＳＲＡＭワードラインを並列に読み取ることができる。図１０の信号タイミング図は、データがＳＲＡＭ９００およびＳＲＡＭ９０１に書き込まれる際の信号を示し、単一のＳＲＡＭ１１０へのデータのロードを例示した図３のタイミング図と同一である。アレイ選択信号がアクティブである間、ＳＲＡＭクロックは、ヒューズおよび読み取り／書き込みクロックの周波数の２倍で動作する。なぜなら、ＳＲＡＭクロックは、スキャンおよびビット挿入論理入力２００によって単一の読み取りを行う時間中に読み取りおよび書き込みを行わなければならないからである。上述のように、ＳＲＡＭ（９００または９０１）は、対象のアドレスから古いビットを読み取って、単一のヒューズクロック読み取り／書き込みにおいて、読み出しビット選択論理出力２０１を介して出力すると共に、同じアドレスに新しいビットを書き込むことができなければならない。
【００４９】
この実施形態では、本発明は、第１ＳＲＡＭアレイの第１ラインの第１ビットアドレスに第１ビットを書き込み、次いで、第１ＳＲＡＭアレイの第１ライン内の追加アドレスに追加ビットを書き込む。各追加ビットを第１ＳＲＡＭアレイの第１ラインに書き込む際に、第１のカウンタを増分する。第１のカウンタが第１ＳＲＡＭアレイの第１ラインの最大サイズ（例えばワードラインサイズ）に達すると、この方法は、第２ＳＲＡＭアレイの第１ラインについて、増分および書き込みプロセスを繰り返す。同様に、カウンタが、第２ＳＲＡＭアレイの第１ラインの最大サイズに達すると、この方法は、双方のＳＲＡＭアレイにおける以降のラインについて、増分、書き込み、および繰り返しプロセスを繰り返す。
【００５０】
上述の書き込みプロセスの間、本発明は、各ビットがＳＲＡＭアレイに書き込まれる際に、同時に第２のカウンタを増分する。第２のカウンタが双方のＳＲＡＭアレイの最大サイズに達すると、この方法は、第１ＳＲＡＭアレイの第１ラインの第１ビットアドレスにおける第１のビットを下流ラッチに出力し、第１ＳＲＡＭアレイの第１ラインの第１ビットアドレスにおける第１のビットを、最も新しい受信ビットによって上書きする。そして、本発明は、全てのヒューズデータを受信するまで、追加ビットを受信する際に、（ビットがＳＲＡＭアレイに書き込まれた順序で）ＳＲＡＭアレイにおける後続の各ビットごとに出力および上書きを繰り返す。先に述べたプロセスと同様、これによって、双方のＳＲＡＭアレイでは、シリアルビットストリーム内の最も新しい受信ビットにヒューズ情報が含まれる。
【００５１】
ヒューズワードに対するアクセスは、単に、論理ヒューズワードアドレスに基づいて、（アドレスカウントレジスタに格納された最終値をオフセットとして用いて）ヒューズワードのための物理アドレスを発生することで行われる。また、次のＳＲＡＭワードは、対向するＳＲＡＭ１１０から同時に読み取られる。次いで、ビットカウントレジスタに格納されたビットオフセットに基づいて、２つのＳＲＡＭ１１０ワードから実際のヒューズワードが構築される。
【００５２】
更に具体的には、アクセスプロセスは、オフセットを計算するため、データがＳＲＡＭに書き込まれる際に、双方のＳＲＡＭアレイ９００、９０１のビット数までカウントし次いでリセットするオフセットカウンタ４００を維持する。ＳＲＡＭに対する書き込みの終了時にオフセットカウンタに残っている値が、オフセットを表す。本発明は、図１１に示すように、アドレスマルチプレクサ１１００およびアドレス増分器１１０１を用いて、所望のヒューズワード要求内で第１ビットの物理位置を求める。
【００５３】
これらのデバイス１１００、１１０１は、所望のヒューズワードの論理アドレスをオフセットに加えて、総物理位置を生成する。次いで、デバイス１１００、１１０１は、総物理位置を除数によって分割し（これはＳＲＡＭワードラインにおけるビット数の２倍に等しい）、整数および余りが生じる。整数は物理アドレスの行を表し、余りは列アドレスを表す。余りがＳＲＡＭワードラインにおけるビット数よりも大きい場合、列アドレスは、第２のＳＲＡＭアレイ内にあり、余りからＳＲＡＭワードラインにおけるビット数を減じたものに等しい。このため、この状況では、マルチプレクサ１１００は第２のＳＲＡＭ９０１を選択するであろう。余りがＳＲＡＭワードラインにおけるビット数以下である場合、列アドレスは、第１のＳＲＡＭアレイ内にあり、余りと等しい。従って、この状況では、マルチプレクサ１１００は第１のＳＲＡＭ９００を選択するであろう。
【００５４】
そして、本発明は、単一の読みとリサイクルにおいてＳＲＡＭアレイの各々から１つのＳＲＡＭラインを同時に読み取って、第１のＳＲＡＭラインおよびその後の第２のＳＲＡＭラインを読み取る。列アドレス（上述のように求める）が第１のＳＲＡＭアレイ９００内にある場合、本発明は、第１のＳＲＡＭアレイ９００から第１のラインを読み取り、その後、第２のＳＲＡＭアレイ９０１から同じ第１のラインを読み取る。かかる状況において、第１のＳＲＡＭアレイ９００から読み取ったラインは、「第１の」ＳＲＡＭラインを含み、第２のＳＲＡＭアレイ９０１から読み取ったラインは、「第２の」ＳＲＡＭラインを含む。あるいは、列アドレスが第２のＳＲＡＭアレイ９０１内にある場合、本発明は、第２のＳＲＡＭアレイ９０１から第１のラインを読み取り、その後、第１ＳＲＡＭアレイ９００における第１ラインの直後の第１ＳＲＡＭライン９００における第２ラインを読み取る。以前の例とは異なり、この状況では、第２のＳＲＡＭアレイ９０１からの第１のラインは、「第１の」ＳＲＡＭラインを含み、第１のＳＲＡＭアレイ９０１からの第１のラインは、「第２の」ＳＲＡＭラインを含む。
【００５５】
データマルチプレクサ１１０２を用いて、本発明は、「第１の」ＳＲＡＭラインの終端を「第２の」ＳＲＡＭラインの先頭と結合して、単一のヒューズワードをデータマッピング論理４０３に出力する。第１のＳＲＡＭラインの終端は、物理位置から第１のＳＲＡＭラインの最下位ビットまでの第１のＳＲＡＭラインのビットを含み、第２のＳＲＡＭラインの先頭は、第２のＳＲＡＭラインの最上位ビットから、第１のＳＲＡＭラインにおける物理位置の有効ビット位置よりも１少ない有効ビット位置までの第２のＳＲＡＭラインのビットを含む。
【００５６】
図１２の信号タイミング図は、読み取り動作を実行する際の信号を示す。信号は、図１０に示すものと同様であるが、本発明は動作中に連続的に読み取りを行うので、読み取り／書き込み信号はプロセスの間ずっとアクティブ位置に維持される。それ以外の信号は、図１０に関連して上述したものと同様に作用する。
【００５７】
本発明は、以前はパラレルにしかロードできなかった非走査可能メモリ要素をシリアルにロードすることができる走査可能メモリ要素に変換することができる。この変換は、スキャンチェーンを通してロード可能な、より高速、高密度のメモリを実施する際に極めて有用である。埋め込みメモリ構造に対する局所的なヒューズ情報の格納は、本発明の１つの用途である。本発明は、埋め込みＤＲＡＭメモリだけでなく、埋め込みＳＲＡＭ、ＣＡＭ、およびその他のメモリタイプにおいて、ヒューズ情報の格納を改善することができる。本発明の別の重要な用途は、スキャンによって初期化可能な小型のリードオンリメモリを、個別の走査可能要素から、より高速で高密度のＳＲＡＭに変換することである。これらの走査可能リードオンリメモリ（ＳＲＯＭ）は、典型的に、ＢＩＳＴマイクロコード命令を格納するために用いられ、全てのＢＩＳＴ性能は、ＳＲＯＭを走査可能ＳＲＡＭに変換することによって大きく改善することができる。
【００５８】
本発明について好適な実施形態に関して説明してきたが、当業者は、特許請求の範囲および精神内で本発明を変更して実施可能であることを認めよう。
【図面の簡単な説明】
【００５９】
【図１】ＳＲＡＭ内にヒューズ情報を含む本発明の埋め込みＤＲＡＭ構造の１実施形態の概略図である。
【図２】ＳＲＡＭ内にヒューズ情報を含む本発明の埋め込みＤＲＡＭ構造の１実施形態の概略図である。
【図３】図２に示す構造においてヒューズ情報を格納するために用いる信号を例示する信号タイミング図である。
【図４】ＳＲＡＭ内にヒューズ情報を含む本発明の埋め込みＤＲＡＭ構造の１実施形態の概略図である。
【図５】図４に示す構造においてヒューズ情報を検索するために用いる信号を例示する信号タイミング図である。
【図６】ＳＲＡＭ内にヒューズ情報を含む本発明の埋め込みＤＲＡＭ構造の１実施形態の概略図である。
【図７】図６に示す状態機械内の状態の概略図である。
【図８】図６に示す構造においてヒューズ情報を整合するために用いる信号を例示する信号タイミング図である。
【図９】２つのＳＲＡＭアレイ内にヒューズ情報を含む本発明の埋め込みＤＲＡＭ構造の１実施形態の概略図である。
【図１０】図９に示す構造においてヒューズ情報を格納するために用いる信号を例示する信号タイミング図である。
【図１１】ＳＲＡＭ内にヒューズ情報を含む本発明の埋め込みＤＲＡＭ構造の１実施形態の概略図である。
【図１２】図１１に示す構造においてヒューズ情報を検索するために用いる信号を例示する信号タイミング図である。
【図１】
2005339752.tif 000003
【図２】
2005339752.tif 000004
【図３】
2005339752.tif 000005
【図４】
2005339752.tif 000006
【図５】
2005339752.tif 000007
【図６】
2005339752.tif 000008
【図７】
2005339752.tif 000009
【図８】
2005339752.tif 000010
【図９】
2005339752.tif 000011
【図１０】
2005339752.tif 000012
【図１１】
2005339752.tif 000013
【図１２】
2005339752.tif 000014