(57)【要約】複数のＣＡＭブロック及びブロック選択回路を有するコンテント・アドレサブル・メモリ（ＣＡＭ）デバイス。ＣＡＭブロックのそれぞれは、コンフィギュレーション値によって決定される幅を有するデータ・ワードを格納するＣＡＭセルのアレイを含む。ブロック選択回路は、クラス・コードを受け取る入力と、複数のＣＡＭブロックへ複数の選択信号を出力する回路とを含む。選択信号のそれぞれは、クラス・コードがＣＡＭブロックのクラス割当と一致するかどうかに従って、複数のＣＡＭブロックのそれぞれのものが、比較動作にかかわることを選択的にディスエーブルにする。
2005501369.tif 000002
【特許請求の範囲】
【請求項１】
コンテント・アドレサブル・メモリ（ＣＡＭ）・デバイスであって、
コンフィギュレーション値に従って決定される幅を有するデータ・ワードを格納するＣＡＭセルのアレイをそれぞれが有する複数のＣＡＭブロックと、
クラス・コードを受け取る入力と、前記複数のＣＡＭブロックへ複数の選択信号を出力する回路とを有するブロック選択回路であって、それぞれの選択信号が、前記クラス・コードに従って前記複数のＣＡＭブロックのそれぞれの１つが比較動作に参加することを選択的にディスエーブルにする、ブロック選択回路と
を備えるコンテント・アドレサブル・メモリ・デバイス。
【請求項２】
請求項１に記載のＣＡＭデバイスであって、前記複数のＣＡＭブロックへ複数の選択信号を出力する前記回路が、複数の比較回路を含み、それぞれの比較回路が、前記クラス・コードと、前記複数のＣＡＭブロックの１つに対応するそれぞれの格納されたコードとを比較し、前記複数の選択信号のそれぞれの１つを、前記クラス・コードが前記格納されたコードと一致するかどうかに従って、第１状態または第２状態の何れかで出力するように適合される、ＣＡＭデバイス。
【請求項３】
請求項２に記載のＣＡＭデバイスであって、対応する前記選択信号が第１状態である前記複数のＣＡＭブロックのそれぞれが、前記比較動作への参加をディスエーブルにされる、ＣＡＭデバイス。
【請求項４】
請求項２に記載のＣＡＭデバイスであって、前記格納されたコードが前記コンフィギュレーション値を示す、ＣＡＭデバイス。
【請求項５】
請求項２に記載のＣＡＭデバイスであって、それぞれの格納されたコードがデータのクラスを示す、ＣＡＭデバイス。
【請求項６】
請求項２に記載のＣＡＭデバイスであって、前記格納されたコードが、前記ブロック選択回路内のメモリに格納される、ＣＡＭデバイス。
【請求項７】
請求項６に記載のＣＡＭデバイスであって、前記メモリがブロック・コンフィギュレーション・レジスタである、ＣＡＭデバイス。
【請求項８】
請求項２に記載のＣＡＭデバイスであって、前記格納されたコードを格納するデバイスコンフィギュレーション・レジスタを更に含む、ＣＡＭデバイス。
【請求項９】
請求項１に記載のＣＡＭデバイスであって、前記複数のＣＡＭブロックが２値ＣＡＭセルを含む、ＣＡＭデバイス。
【請求項１０】
請求項１に記載のＣＡＭデバイスであって、前記複数のＣＡＭブロックが３値ＣＡＭセルを含む、ＣＡＭデバイス。
【請求項１１】
請求項１に記載のＣＡＭデバイスであって、複数のブロック一致回路を更に備え、それぞれのブロック一致回路が、複数の一致信号線を介して前記複数のＣＡＭブロックの個々のＣＡＭブロックに結合され、前記ＣＡＭブロックが前記比較動作への参加をディスエーブルにされない場合、かつ前記比較動作中に前記一致信号線の少なくとも１つに一致信号がアサートされる場合に、ブロック一致信号を生成するように適合される、ＣＡＭデバイス。
【請求項１２】
請求項１に記載のＣＡＭデバイスであって、複数のブロック複数一致回路を更に含み、それぞれのブロック複数一致回路が、複数の一致信号線を介して前記複数のＣＡＭブロックの個々のＣＡＭブロックに結合され、前記ＣＡＭブロックが前記比較動作への参加をディスエーブルにされない場合、かつ前記比較動作中に前記一致信号線の少なくとも２つに一致信号がアサートされる場合に、ブロック一致信号を生成するように適合される、ＣＡＭデバイス。
【請求項１３】
請求項１に記載のＣＡＭデバイスであって、前記ブロック選択回路は、コンパランド値が前記複数のＣＡＭブロックの前記１つへ入力されないようにすることによって、前記複数のＣＡＭブロックの前記１つが前記比較動作に参加することを選択的にディスエーブルにするように適合される、ＣＡＭデバイス。
【請求項１４】
請求項１３に記載のＣＡＭデバイスであって、前記ブロック選択回路が、前記コンパランド値内の複数のビットをリセット状態にセットすることによって、前記コンパランド値が前記複数のＣＡＭブロックの前記１つへ入力されないようにする回路を含む、ＣＡＭデバイス。
【請求項１５】
請求項１に記載のＣＡＭデバイスであって、複数のブロック・フラグ回路を更に含み、それぞれのブロック・フラグ回路は、前記複数のＣＡＭブロックの対応する１つに結合され、対応する前記ＣＡＭブロックに格納される複数のデータ・ワードの何れかがコンパランド値と一致する場合に一致フラグ信号をアサートするように適合され、前記ブロック選択回路は、前記複数のＣＡＭブロックの前記１つが前記比較動作に参加することを、前記対応するブロック・フラグ回路が前記一致フラグ信号をアサートしないようにすることによって、選択的にディスエーブルにするように適合される、ＣＡＭデバイス。
【請求項１６】
請求項１に記載のＣＡＭデバイスであって、前記複数のＣＡＭブロックへ複数の選択信号を出力する前記回路がＣＡＭセルの複数の組を含み、ＣＡＭセルの各組が、前記複数のＣＡＭブロックの１つに対応するクラス値を格納するメモリ・エレメントと、格納された前記クラス値と前記クラス・コードとを比較し、前記クラス・コードが格納された前記クラス値と一致するかどうかに従って、第１状態または第２状態の何れかで前記複数の選択信号のそれぞれの１つを出力する比較回路とを含む、ＣＡＭデバイス。
【請求項１７】
請求項１６に記載のＣＡＭデバイスであって、前記ＣＡＭセルの複数の組の各ＣＡＭセルが、格納されたクラス値が１つより多くのクラス・コードと一致することを可能にするためにマスク状態を格納することができる３値ＣＡＭセルである、ＣＡＭデバイス。
【請求項１８】
請求項１に記載のＣＡＭデバイスであって、前記複数のＣＡＭブロックのうちの前記比較動作への参加をディスエーブルにされていない１つの中の記憶位置を示すインデックスを生成するための優先順位エンコーダ回路を更に含む、ＣＡＭデバイス。
【請求項１９】
コンテント・アドレサブル・メモリ（ＣＡＭ）・デバイス内の動作の方法であって、
クラス・コードを受け取るステップと、
前記クラス・コードを複数のブロック・コンフィギュレーション値のそれぞれと比較するステップであって、各ブロック・コンフィギュレーション値が、前記ＣＡＭデバイス内の複数の記憶ブロックの対応する１つの幅および深さコンフィギュレーションを示すものである、比較するステップと、
前記複数の記憶ブロックのうちの、前記対応するコンフィギュレーション値が前記クラス・コードと一致しない記憶ブロックが比較動作に参加することをディスエーブルにするステップと
を含む方法。
【請求項２０】
請求項１９に記載の方法であって、複数の前記ブロック・コンフィギュレーション値を前記ＣＡＭデバイス内に格納するステップを更に備える、方法。
【請求項２１】
請求項２０に記載の方法であって、複数の前記ブロック・コンフィギュレーション値を前記ＣＡＭデバイスのコンフィギュレーション・レジスタ内に格納するステップを更に含む、方法。
【請求項２２】
請求項２０に記載の方法であって、前記複数の記憶ブロックのうちの１つより多くのブロックについて、同じブロック・コンフィギュレーション値を前記ＣＡＭデバイス内に格納するステップを更に含む、方法。
【請求項２３】
請求項１９に記載の方法であって、前記複数の記憶ブロックのうちの、前記対応するコンフィギュレーション値が前記クラス・コードと一致しない記憶ブロックが比較動作に参加することをディスエーブルにする前記ステップが、複数の選択信号を生成するステップを含み、それぞれの選択信号が、前記複数の記憶ブロックのそれぞれの１つに結合され、それぞれの選択信号は、対応する前記コンフィギュレーション値が前記クラス・コードと一致しない場合に、前記複数の記憶ブロックのそれぞれの１つが前記比較動作へ参加することをディスエーブルにするために、第１状態にセットされる、方法。
【請求項２４】
コンテント・アドレサブル・メモリ（ＣＡＭ）・デバイスを制御する方法であって、
前記ＣＡＭデバイス内の複数の記憶ブロックへそれぞれの分類値を割り当てるステップと、
前記ＣＡＭデバイスへ比較命令を出力するステップであって、前記比較命令が、前記複数の記憶ブロックのうちの比較動作に参加するサブセットを選択するために前記分類値と比較されるクラス・コードを含む、出力するステップと
を含む方法。
【請求項２５】
請求項２４に記載の方法であって、前記複数の記憶ブロックへそれぞれの分類値を割り当てる前記ステップが、前記分類値を前記ＣＡＭデバイス内の少なくとも１つの記憶レジスタへ格納するために前記ＣＡＭデバイスへ命令を出力するステップを含む、方法。
【請求項２６】
請求項２４に記載の方法であって、前記複数の記憶ブロックへそれぞれの分類値を割り当てる前記ステップが、それぞれの前記記憶ブロックについて、前記記憶ブロックに格納されるデータ・ワードのサイズを示す値を格納するステップを含む、方法。
【請求項２７】
請求項２４に記載の方法であって、前記複数の記憶ブロックへそれぞれの分類値を割り当てる前記ステップが、それぞれの前記記憶ブロックについて、前記記憶ブロックの幅および深さコンフィギュレーションを示す値を格納するステップを含む、方法。
【請求項２８】
請求項２７に記載の方法であって、前記比較命令に含まれる前記クラス・コードが、特定の幅および深さコンフィギュレーションを指定する、方法。
【請求項２９】
請求項２４に記載の方法であって、前記クラス・コードが、前記比較命令の命令コード内に含まれる、方法。
【請求項３０】
請求項２４に記載の方法であって、前記クラス・コードが、前記比較命令に関連するオペランドの少なくとも一部を形成する、方法。
【請求項３１】
コンテント・アドレサブル・メモリ（ＣＡＭ）・デバイスを制御する方法であって、
それぞれの分類値を前記ＣＡＭデバイス内の複数の記憶ブロックへ割り当てるステップと、
前記ＣＡＭデバイスへクラス・コードを出力するステップと、
前記ＣＡＭデバイスへ比較命令を出力するステップであって、前記比較命令が、前記複数の記憶ブロックのうちの割り当てられた分類値が前記クラス・コードと一致する記憶ブロックのそれぞれに格納されたデータ・ワードとコンパランドが比較されることを示す、出力するステップと
を備える、方法。
【請求項３２】
請求項３１に記載の方法であって、それぞれの分類値を前記複数の記憶ブロックへ割り当てる前記ステップが、それぞれの前記記憶ブロックについて、前記記憶ブロックの幅および深さコンフィギュレーションを示す値を格納するステップを含む、方法。
【請求項３３】
請求項３２に記載の方法であって、クラス・コードを出力する前記ステップが、特定の幅および深さコンフィギュレーションを指定するクラス・コードを出力するステップを含む、方法。
【請求項３４】
コンテント・アドレサブル・メモリ（ＣＡＭ）デバイスであって、
ＣＡＭセルのアレイをそれぞれが有する複数のＣＡＭブロックと、
前記複数のＣＡＭブロックに結合され、それぞれのアドレスを格納する複数の記憶エレメントを含むアドレス回路であって、前記複数の記憶エレメントのそれぞれが、前記ＣＡＭデバイス内の複数のクラス・ベースの記憶区画のそれぞれの１つに対応し、それぞれのクラス・ベースの記憶区画が前記複数のＣＡＭブロックの少なくとも１つを含み、前記アドレス回路が、クラス・コード値に従って、対応する前記クラス・ベースの記憶区画へアクセスするためにアドレスを供給するための前記複数の記憶エレメントの１つを選択する選択回路を含む、アドレス回路と
を含むＣＡＭデバイス。
【請求項３５】
請求項３４に記載のＣＡＭデバイスであって、前記ＣＡＭデバイスが、複数のコンフィギュレーション値を格納する回路を含み、それぞれのコンフィギュレーション値が、前記複数のＣＡＭブロックのそれぞれのＣＡＭブロックに対応し、クラス・ベースの記憶区画のうちの前記ＣＡＭブロックを含むものを示す、ＣＡＭデバイス。
【請求項３６】
請求項３５に記載のＣＡＭデバイスであって、それぞれのコンフィギュレーション値が、対応する前記ＣＡＭブロックの幅および深さコンフィギュレーションを示し、同じ幅および深さコンフィギュレーションを有する１または複数のＣＡＭブロックの各組が、前記クラス・ベースの記憶区画のそれぞれの１つを形成する、ＣＡＭデバイス。
【請求項３７】
請求項３４に記載のＣＡＭデバイスであって、前記複数の記憶エレメントのそれぞれが、比較動作で少なくとも部分的にコンパランドと一致するデータ・ワードを含む前記対応するクラス・ベースの記憶区画内の記憶位置を示すように適合される、ＣＡＭデバイス。
【請求項３８】
請求項３４に記載のＣＡＭデバイスであって、
クラス・コードに従って、比較動作に参加するために前記クラス・ベースの記憶区画の１つを選択する選択回路と、
前記比較動作でコンパランドと一致すると判定されたデータ・ワードを含む前記クラス・ベースの記憶区画の前記選択された１つ内の記憶位置を示すインデックスを生成する優先順位エンコーダと、
前記クラス・ベースの記憶区画の前記選択された１つに対応する前記複数の記憶エレメントの１つの記憶エレメントへ前記インデックスをロードするロード制御回路と
を更に含む、ＣＡＭデバイス。
【請求項３９】
請求項３８に記載のＣＡＭデバイスであって、前記コンパランドが、前記クラス・ベースの記憶区画の前記選択された１つ内に格納されるデータ・ワードと一致すると判定される場合に、フラグ信号をアサートするフラグ回路を更に含み、前記ロード制御回路が、前記フラグ信号が前記フラグ回路によってアサートされる場合に前記１つの記憶エレメントへ前記インデックスをロードするように適合される、ＣＡＭデバイス。
【請求項４０】
請求項３４に記載のＣＡＭデバイスであって、前記複数の記憶エレメントのそれぞれが、前記クラス・ベースの記憶区画への書込アクセスでデータ・ワードをロードされるように使用可能な対応する前記クラス・ベースの記憶区画内のストレージ位置のアドレスを格納するように適合される、ＣＡＭデバイス。
【請求項４１】
請求項４０に記載のＣＡＭデバイスであって、書込動作で対応する前記クラス・ベースの記憶区画へアクセスするために、前記アドレス回路内の前記複数の記憶エレメントの１つを、その中に格納されたアドレスを出力するために選択する命令デコーダを更に含む、ＣＡＭデバイス。
【請求項４２】
請求項４１に記載のＣＡＭデバイスであって、前記命令デコーダが、ホスト・デバイスから受け取られるクラス・コードに従って前記アドレス回路内の前記複数の記憶エレメントの前記１つを選択するように適合される、ＣＡＭデバイス。
【請求項４３】
請求項４１に記載のＣＡＭデバイスであって、
有効なデータ・ワードを含まないと判定された前記クラス・ベースの記憶区画内の記憶位置を示すインデックスを生成する優先順位エンコーダと、
前記複数の記憶エレメントの選択された前記１つに前記インデックスをロードするロード制御回路と、
を更に含むＣＡＭデバイス。
【請求項４４】
請求項４３に記載のＣＡＭデバイスであって、前記クラス・ベースの記憶区画内の記憶位置が有効なデータ・ワードを含まないと判定される場合にフラグ信号をアサートするフラグ回路を更に含み、前記ロード制御回路が、前記フラグ信号が前記フラグ回路によってアサートされる場合に、前記複数の記憶エレメントの選択された前記１つに前記インデックスをロードするように適合される、ＣＡＭデバイス。
【請求項４５】
コンテント・アドレサブル・メモリ（ＣＡＭ）・デバイス内の動作の方法であって、
前記ＣＡＭデバイスにデータ・ワードを格納する命令を受け取るステップであって、前記命令が、前記ＣＡＭデバイス内の複数の記憶区画の１つを識別するクラス・コードを含む、受け取るステップと、
アドレスを出力するために、前記クラス・コードに従って、複数のアドレス記憶エレメントの１つを選択するステップと、
前記ＣＡＭデバイス内の、前記複数のアドレス記憶エレメントの前記１つによって出力される前記アドレスで前記データ・ワードを格納するステップと
を含む方法。
【請求項４６】
請求項４５に記載の方法であって、データ・ワードを格納する命令を受け取る前記ステップが、前記クラス・コードを含む動作コードを受け取るステップを含む、方法。
【請求項４７】
請求項４５に記載の方法であって、データ・ワードを格納する命令を受け取る前記ステップが、前記クラス・コードを含むオペランドを受け取るステップを含む、方法。
【請求項４８】
請求項４５に記載の方法であって、前記ＣＡＭデバイス内の、前記複数のアドレス記憶エレメントの前記１つによって出力される前記アドレスで前記データ・ワードを格納する前記ステップが、前記データ・ワードを前記複数の記憶区画の前記１つ内に格納するステップを含む、方法。
【請求項４９】
請求項４８に記載の方法であって、
前記複数の記憶区画の前記１つの中の有効なデータ値を含まない記憶位置を識別するステップと、
前記記憶位置のアドレスを前記複数のアドレス記憶エレメントの前記１つにロードするステップと
を更に含む方法。
【請求項５０】
請求項４５に記載の方法であって、前記複数のアドレス記憶エレメントの前記１つに新しいアドレスをロードするステップを更に含む方法。
【請求項５１】
請求項５０に記載の方法であって、前記複数のアドレス記憶エレメントの前記１つに新しいアドレスをロードする前記ステップが、前記複数のアドレス記憶エレメントの前記１つに、前記複数の記憶区画の前記１つ内の記憶位置を示す次の空きアドレスをロードするステップを含む、方法。
【請求項５２】
コンテント・アドレサブル・メモリ（ＣＡＭ）・デバイス内の動作の方法であって、
前記ＣＡＭデバイス内で比較動作を実行する命令を受け取るステップであって、前記命令が、前記ＣＡＭデバイス内の複数の記憶区画の１つを識別するクラス・コードを含む、受け取るステップと、
前記比較動作を実行するステップであって、コンパランドと一致するデータ・ワードを含む前記複数の記憶区画の前記１つ内の記憶位置のアドレスを生成するステップを含む、実行するステップと、
前記クラス・コードに従って複数の一致アドレスの記憶エレメントの１つを選択するステップと、
複数の一致アドレスの記憶エレメントの前記１つへ前記アドレスをロードするステップと
を備える方法。
【請求項５３】
請求項５２に記載の方法であって、比較動作を実行する命令を受け取る前記ステップが、前記クラス・コードを含む動作コードを受け取るステップを含む、方法。
【請求項５４】
請求項５２に記載の方法であって、比較動作を実行する命令を受け取る前記ステップが、前記クラス・コードを含むオペランドを受け取るステップを含む、方法。
【請求項５５】
請求項５２に記載の方法であって、比較動作を実行する命令を受け取る前記ステップが、最初に動作コードを受け取るステップと、２回目に前記クラス・コードを受け取るステップとを含み、前記動作コードが比較動作を示す、方法。
【請求項５６】
請求項５２に記載の方法であって、記憶位置のアドレスを生成する前記ステップが、最高優先順位の一致アドレスを生成するステップを含む、方法。
【請求項５７】
請求項５２に記載の方法であって、
前記ＣＡＭデバイス内に格納されるデータ・ワードを読み取る命令を受け取るステップであって、前記命令が、複数の記憶区画の前記１つを識別するクラス・コードを含む、受け取るステップと、
アドレスを出力するために、前記クラス・コードに従って、複数の一致アドレスの記憶エレメントの前記１つを選択するステップと、
前記複数の記憶区画の前記１つ内の、前記複数の一致アドレスの記憶エレメントの前記１つによって出力される前記アドレスの記憶位置から前記データ・ワードを読み取るステップと
を更に備える、方法。
【請求項５８】
ＣＡＭデバイス内の動作の方法であって、
前記ＣＡＭデバイス内に格納されたデータ・ワードを読み取る命令を受け取るステップであって、前記命令が、複数の記憶区画の１つを一意に識別するクラス・コードを含む、受け取るステップと、
アドレスを出力するために、前記クラス・コードに従って、複数のアドレス記憶エレメントの１つを選択するステップと、
前記複数の記憶区画の前記１つ内の、前記複数のアドレス記憶エレメントの前記１つによって出力される前記アドレスの記憶位置から前記データ・ワードを読み取るステップと
を含む方法。
【請求項５９】
請求項５８に記載の方法であって、データ・ワードを読み取る命令を受け取る前記ステップが、前記クラス・コードを含む動作コードを受け取るステップを含む、方法。
【請求項６０】
請求項５８に記載の方法であって、データ・ワードを読み取る命令を受け取る前記ステップが、前記クラス・コードを含むオペランドを受け取るステップを含む、方法。
【請求項６１】
請求項５８に記載の方法であって、データ・ワードを読み取る命令を受け取る前記ステップが、最初に動作コードを受け取るステップと、２回目に前記クラス・コードを受け取るステップを含み、前記動作コードがデータ読取動作を示す、方法。
【請求項６２】
ＣＡＭデバイス内の動作の方法であって、
第１クラス・コードに従って前記ＣＡＭデバイス内の第１記憶区画を選択するステップと、
前記第１記憶区画内の空き記憶位置を識別するステップと
を含む方法。
【請求項６３】
請求項６２に記載の方法であって、
第２クラス・コードに従って、前記ＣＡＭデバイス内の第２記憶区画を選択するステップと、
前記第２記憶区画内の空き記憶位置を識別するステップと
を更に備える方法。
【請求項６４】
請求項６３に記載の方法であって、前記第１記憶区画内の空き記憶位置を識別する前記ステップが、複数の妥当性信号に従って前記空き記憶位置を識別するステップを含み、それぞれの妥当性信号は、前記第１記憶区画内の対応する記憶位置に有効なデータ値が格納されているかどうかを示す、方法。
【請求項６５】
請求項６２に記載の方法であって、前記空き記憶位置のアドレスを示すインデックスを生成するステップを更に備える方法。
【請求項６６】
請求項６２に記載の方法であって、空き記憶位置を識別する前記ステップが、前記第１記憶区画が満杯でない場合に、前記第１記憶区画内の前記空き位置を識別するステップを含み、前記方法が、更に、前記第１記憶区画が満杯である場合に、前記第１記憶区画が満杯であることを示すフル・フラグ信号をアサートするステップを含む、方法。
【請求項６７】
ＣＡＭデバイス内の動作の方法であって、
クラス・コードに従って、前記ＣＡＭデバイス内の第１記憶区画を選択するステップと、
前記第１記憶区画内で、少なくとも部分的に第１コンパランド値と一致するデータ値を格納した記憶位置を識別するステップと
を備える方法。
【請求項６８】
請求項６７に記載の方法であって、
第２クラス・コードに従って前記ＣＡＭデバイス内の第２記憶区画を選択するステップと、
前記第２記憶区画内で、少なくとも部分的に第２コンパランド値と一致するデータ値を格納した第２記憶位置を識別するステップと、
を更に備える方法。
【請求項６９】
請求項６７に記載の方法であって、第１の記憶位置を識別する前記ステップが、複数の一致信号に従って前記第１の記憶位置を識別するステップを含み、それぞれの一致信号が、前記第１記憶区画内の対応する記憶位置が少なくとも部分的に前記第１コンパランド値と一致するデータ値を含むかどうかを示す、方法。
【請求項７０】
請求項６７に記載の方法であって、前記第１の記憶位置のアドレスを示すインデックスを生成するステップを更に備える方法。
【請求項７１】
請求項６７に記載の方法であって、前記第１記憶区画内で第１の記憶位置を識別する前記ステップが、少なくとも部分的に前記第１コンパランド値と一致するデータ値を含む記憶位置が前記第１記憶区画内で識別されたことを示す一致フラグ信号を、アサートするステップを含む、方法。
【請求項７２】
請求項６７に記載の方法であって、
前記第１記憶区画内で、少なくとも部分的に前記第１コンパランド値と一致するデータ値を格納した第２の記憶位置を識別するステップと、
少なくとも部分的に前記第１コンパランド値と一致するデータ値を含む１つより多くの記憶位置が前記第１記憶区画内で識別されたことを示す複数一致フラグを、アサートするステップと
を更に備える方法。
【請求項７３】
コンテント・アドレサブル・メモリ（ＣＡＭ）デバイスであって、
第１の幅および深さコンフィギュレーションにコンフィギュレーション可能な第１ＣＡＭブロックと、
第２の幅および深さコンフィギュレーションにコンフィギュレーション可能な第２ＣＡＭブロックと
を備えるＣＡＭデバイス。
【請求項７４】
請求項７３に記載のＣＡＭデバイスであって、クラス・コードを受け取る入力と、第１選択信号および第２選択信号を出力する回路とを有するブロック選択回路を更に備え、前記第１選択信号および第２選択信号のそれぞれが、前記第１ＣＡＭブロックおよび前記第２ＣＡＭブロックの前記幅および深さコンフィギュレーションに従って、前記第１ＣＡＭブロックおよび前記第２ＣＡＭブロックが比較動作に参加することを選択的にディスエーブルにする、ＣＡＭデバイス。
【請求項７５】
請求項７４に記載のＣＡＭデバイスであって、前記第１選択信号および前記第２選択信号のそれぞれが、前記第１ＣＡＭブロックおよび前記第２ＣＡＭブロックの前記１つが前記比較動作に参加することを、前記クラス・コードと格納されたコンフィギュレーション値とが一致しない場合にコンパランド値が前記第１ＣＡＭブロックおよび前記第２ＣＡＭブロックの前記１つへ入力されないようにすることによって、ディスエーブルにするように適合される、ＣＡＭデバイス。
【請求項７６】
請求項７４に記載のＣＡＭデバイスであって、前記第１選択信号および前記第２選択信号のそれぞれが、前記第１ＣＡＭブロックおよび前記第２ＣＡＭブロックの前記１つが前記比較動作に参加することを、前記クラス・コードと格納されたコンフィギュレーション値とが一致しない場合に前記第１ＣＡＭブロックおよび前記第２ＣＡＭブロックの前記１つに対応する一致信号がアサートされないようにすることによって、ディスエーブルにするように適合される、ＣＡＭデバイス。
【請求項７７】
請求項７３に記載のＣＡＭデバイスであって、前記複数のＣＡＭブロックが３値ＣＡＭセルを含む、ＣＡＭデバイス。
【請求項７８】
コンテント・アドレサブル・メモリ（ＣＡＭ）・デバイスであって、
データ・ワードを格納する複数の記憶手段であって、それぞれの記憶手段が、コンフィギュレーション値に従って決定される記憶幅を有する、記憶手段と、
クラス・コードに従って、前記複数の記憶手段の選択されたものが比較動作に参加すようにイネーブルにする選択手段と
を備えるＣＡＭデバイス。
【請求項７９】
請求項７８に記載のＣＡＭデバイスであって、前記選択手段が、
前記クラス・コードと、それぞれ前記複数の記憶手段に対応する複数の格納されたクラス値とを比較する比較手段と、
対応する前記格納されたクラス値が前記クラス・コードと一致するそれぞれの記憶手段が前記比較動作に参加するようにイネーブルにするイネーブル手段と
を備えるＣＡＭデバイス。
【請求項８０】
請求項７９に記載のＣＡＭデバイスであって、前記イネーブル手段が、コンパランド値を所定の状態にセットして、対応する前記格納されたクラス値と前記クラス・コードとが一致しない記憶手段が前記比較動作に参加しないようにするためのコンパランド・ディスエーブル手段を備える、ＣＡＭデバイス。
【請求項８１】
請求項７９に記載のＣＡＭデバイスであって、前記イネーブル手段が、対応する前記格納されたクラス値と前記クラス・コードとが一致しない記憶手段に対応する一致信号がアサートされないようにする一致ディスエーブル手段を備える、ＣＡＭデバイス。
【請求項８２】
請求項７８に記載のＣＡＭデバイスであって、前記複数の記憶手段のそれぞれが、複数の３値ＣＡＭセルを含む、ＣＡＭデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的には半導体メモリに関し、より詳細にはコンテント・アドレサブル・メモリに関する。
【背景技術】
【０００２】
関連する出願の相互参照
本願は、下記のそれぞれの米国特許出願の一部継続出願である。２０００年６月８日出願の第０９／５９０６４２号、２０００年６月８日出願の第０９／５９０４２８号、２０００年６月８日出願の第０９／５９０７７５号、２０００年６月１４日出願の第０９／５９４２０６号、２０００年６月１４日出願の第０９／５９４２０９号、２０００年６月１４日出願の第０９／５９４２０１号、２０００年６月１４日出願の第０９／５９４１９４号、および２０００年６月１４日出願の第０９／５９４２０２号。上記出願のそれぞれの全体を参照によって本明細書に組み入れる。
【０００３】
背景
コンテント・アドレサブル・メモリ（ｃｏｎｔｅｎｔ  ａｄｄｒｅｓｓａｂｌｅ  ｍｅｍｏｒｙ）（ＣＡＭ）は、インターネット・データ・ルーティングのアドレス・ルックアップ機能にしばしば使用される。例えば、ローカル・インターネット・サービス・プロバイダ（ＩＳＰ）によって使用されるルータは、通常、複数のインターネット・アドレスおよび、例えば対応するアドレス・ルーティング情報などのような関連するデータを格納する１または複数のＣＡＭを含む。データが、宛先アドレスへルーティングされる時に、宛先アドレスがＣＡＭアレイに格納されたすべてのＣＡＭワード、例えばインターネット・アドレス、と比較される。一致がある場合に、一致するＣＡＭワードに対応するルーティング情報が出力され、その後、データを送る（ルーティングする）のに使用される。
【０００４】
ＣＡＭデバイスは、行およびカラムのアレイに配置された複数のメモリ・セルを有するＣＡＭアレイを含む。各メモリ・セルに、ディジタル情報の１ビット、即ち、論理０または論理１の何れかが格納される。メモリ・セルの行内に格納されるビットによって、ＣＡＭワードが構成される。比較動作中に、コンパランド（ｃｏｍｐａｒａｎｄ）ワードが、ＣＡＭデバイスの適当な入力端子で受け取られ、コンパランド線を使用してＣＡＭアレイへ駆動され、デバイスのすべてのＣＡＭワードと比較される。コンパランド・ワードと一致するＣＡＭワードごとに、対応する一致線信号がアサートされて、一致状態が示される。コンパランド・ワードが、複数のＣＡＭワードと一致する場合には、一致するＣＡＭワードのそれぞれに対応する一致線がアサートされ、「複数一致」フラグもアサートされて複数一致状態を示す。各ＣＡＭブロックからの一致線信号が、優先順位エンコーダで組み合わされて、最高優先順位の一致するＣＡＭワードのアドレス、即ち、ＣＡＭインデックスが決定される。例えば、関連付けられたＲＡＭに格納されたＣＡＭインデックスに対応する連想情報も供給することができる。
【０００５】
一つのＣＡＭデバイスを使用して、それぞれが異なるクラスのデータを格納し維持する複数のテーブルを格納することができる。しかしながら、すべてのエントリが通常は比較動作に参加する。これによって、比較動作中に望ましくない量の電力が引き出される可能性がある。動作中の電力消費を減らすために、データの特定のクラスに関連するエントリだけに検索を制限することが望ましい。
【０００６】
通常のＣＡＭデバイスでは、データ・ワードの幅が、ＣＡＭアレイの１行あたりのメモリ・セル数に従って固定される。米国特許第５４４０７１５号に、ＣＡＭセルの単一行を超えてデータ・ワードの幅を拡張する技法が示されている。この行間コンフィギュレーション可能性によって、ＣＡＭセルの単一のアドレス可能行で使用可能な長さより長いデータ・ワードを格納するように、単一のＣＡＭアレイの使用での柔軟性がもたらされる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
複数アレイ・コンフィギュレーションで使用される単一ＣＡＭアレイの使用での追加の柔軟性をもたらすために、行内コンフィギュレーション可能性を含むＣＡＭシステムを有することが望ましい。行内コンフィギュレーション可能性とは、ＣＡＭセルの行の１または複数のセグメントにアクセスしそれにオペレーションを行う能力である。
【課題を解決するための手段】
【０００８】
概要
複数のＣＡＭブロックを有するＣＡＭデバイスを、複数の個々にサーチ可能な区画に区分するのに使用することができ、各区画にＣＡＭデバイスの１または複数のＣＡＭブロックを含めることができるようにする方法および装置を開示する。本発明の一実施形態によれば、各ＣＡＭブロックがブロック選択回路に接続され、ブロック選択回路は、データのどのクラスまたはタイプがブロックに格納されるかを示すクラス・コードを格納する。同一のクラス・コードを、任意の数のブロック選択回路に格納して、対応する数のＣＡＭブロックを含むものとして区画を定義することができる。被比較数（ｃｏｍｐａｒａｎｄ、コンパランド）ワードとＣＡＭデバイスに格納されたデータとの間の比較動作中に、サーチ・コードがブロック選択回路へ供給される。各ブロック選択回路は、そのクラス・コードとサーチ・コードとを比較し、それに応答して、比較動作について対応するＣＡＭブロックを選択的にイネーブルまたはディスエーブルにする。幾つかの実施形態では、ブロック選択回路は、サーチ・クラスがクラス・コードと一致する場合には、対応するＣＡＭブロックをイネーブルにし、逆に、サーチ・コードがクラス・コードと一致しない場合には、対応するＣＡＭブロックをディスエーブルにする。
【０００９】
一実施形態では、ブロック選択回路は、比較動作中に、ＣＡＭブロックのコンパランド線を所定の状態に駆動して、コンパランド・ワードがコンパランド線へ駆動されないようにすることによって、対応するＣＡＭブロックをディスエーブルにする。比較動作中にコンパランド・ワードを選択された（即ち、イネーブルにされた）ＣＡＭブロックのコンパランド線のみに駆動することによって、この実施形態は、クラス・コードに従ってＣＡＭブロックにわたる選択的サーチを可能にするだけではなく、そのような選択的比較動作中の選択されない（即ち、ディスエーブルにされた）ＣＡＭブロックの電力消費も低減する。
【００１０】
行内コンフィギュレーション可能性を有するＣＡＭシステムも開示される。一実施形態については、ＣＡＭシステムは、それそれが行セグメントにセグメント化される、ＣＡＭセルの複数の行を有するＣＡＭアレイを含む。各行セグメントは、対応する一致線セグメントに結合された複数のＣＡＭセルを含む。個々の行セグメントまたは行セグメントのグループは、ＣＡＭアレイの幅および深さのコンフィギュレーションを示すコンフィギュレーション情報に応答して、アドレス・ロジックによって一意にアドレス可能である。コンフィギュレーション情報を、コンフィギュレーション・レジスタに格納することができる。データを、データ・アクセス回路を使用して、アドレッシングされた行セグメントまたは行セグメントのグループと通信することができる。優先順位エンコード回路を含ませることができ、それにより、コンフィギュレーション情報に応答して、コンパランド・データと一致するデータを格納する行セグメントまたは行セグメントのグループのアドレスを生成することができる。一致フラグ・ロジックを含ませることができ、それにより、コンフィギュレーション情報に応答して、コンパランド・データが、行セグメントの１または行セグメントのグループの１つに格納されたデータと一致する時にそれを判定することもできる。更に、複数一致フラグ・ロジックを含ませることができ、それにより、コンフィギュレーション情報に応答して、コンパランド・データが複数の行セグメントのそれぞれに格納されたデータと一致する時にそれを判定し、コンパランド・データが行セグメントの複数のグループのそれぞれに格納されたデータと一致する時にそれを判定することができる。
【００１１】
一実施形態では、ＣＡＭシステムは、それぞれが関連するブロック選択回路を有する複数のＣＡＭブロックを含む。ＣＡＭブロックのそれぞれは、コンフィギュレーション値に従って決定される幅を有するデータ・ワードを格納するようにコンフィギュレーション可能であり、関連するブロック選択回路からのブロック選択信号に応答して、比較動作に参加するかまたは参加しない。それぞれの選択ブロック選択回路は、入力クラス・コードと格納された値とを比較し、比較結果に従って、関連するＣＡＭブロックに対してブロック選択信号をアサートまたはデアサートする。
【００１２】
本発明の上記および他の実施形態、特徴、および利点は、添付の図面および詳細な説明から明白になる。
本発明の特徴および利点を例によって示すが、これは、本発明の範囲を、示される特定の実施形態に制限することを意図したものではない。
【００１３】
類似の符号は、図面全体を通じて対応する部分を指す。
【発明を実施するための最良の形態】
【００１４】
以下の説明では、説明のために、本発明の完全な理解を提供するために特定の術語を示す。しかし、これらの特定の詳細が、本発明の実施に必要ではない可能性があることを、当業者は理解するであろう。他の場合において、本発明を不必要に不明瞭にしないようにするために、周知の回路および装置をブロック図形式で示す。更に、回路エレメントまたはブロックの間の相互接続を、バスまたは単一の信号線として示す場合がある。バスのそれぞれは、その代わりに単一の信号線とすることができ、単一の信号線のそれぞれを、その代わりにバスにすることができる。更に、下の説明でさまざまな信号に割り当てられる論理レベルは、任意であり、従って、所望のように変更（例えば、極性を逆にする）ことができる。
【００１５】
本発明の実施形態を、下記では、簡潔にする目的のみでＣＡＭデバイス１００に関して説明する。本発明の実施形態を、他のコンフィギュレーションを有する任意の適切なタイプのＣＡＭセルのＣＡＭ構造に同等に適用可能であることを理解されたい。更に、本発明のアーキテクチャのコンフィギュレーションは、例えば、ＲＡＭ、フラッシュ、およびＥＥＰＲＯＭなどの他のタイプのメモリ・ブロックで実施することができる。従って、本発明は、本明細書に記載の特定の例に制限されると解釈してはならず、本発明には、特許請求の範囲によって定義されるすべての実施形態が範囲内に含まれる。
【００１６】
クラス・ベースのパーティション（区画）を有するＣＡＭデバイス
図１は、ｎ個のＣＡＭブロック１０２（１）〜１０２（ｎ）、対応する数ｎ個のブロック選択回路１０６（１）〜１０６（ｎ）、および優先順位エンコーダ１０８を有する、本発明の一実施形態によるＣＡＭデバイス１００を示す。各ＣＡＭブロック１０２は、その中に複数のＣＡＭワードを格納するＣＡＭセルの複数の行を有するＣＡＭアレイ１０４を含み、対応するブロック選択回路１０６に接続される。各行は、有効なＣＡＭワードがその行に格納されているかどうかを示す１または複数の有効ビットを含むことができる。有効ビットは、ＣＡＭブロック１０２の満杯（フル）フラグを生成するために、周知の様式で使用することができる。ＣＡＭブロック１０２は、例えば、同期、非同期、２値、および３値のＣＡＭを含む任意の適切なタイプのＣＡＭブロックとすることができる。更に、各ＣＡＭブロック１０２は、任意の適切なサイズとすることができ、幾つかの実施形態では、異なるサイズとすることができる。一実施形態では、各ＣＡＭブロック１０２は、１ｋ（１０２４）行のＣＡＭセルを含む。
【００１７】
比較動作中に、各ＣＡＭブロック１０２は、コンパランド・バスＣＢＵＳからコンパランド・データを受け取る。比較動作中にＣＡＭデバイス１００へ供給される他の信号は、クロック信号ＣＬＫ、命令デコーダからの１または複数の命令（簡略化するために図示せず）、および他の制御信号とすることができる。幾つかの実施形態では、命令およびコンパランド・データを、同一のバスを介してＣＡＭブロック１０２（１）〜１０２（ｎ）へ供給することができる。ワード・イネーブル信号、リセット信号、およびイネーブル信号などの、ＣＡＭブロック１０２へ供給できる他の周知の信号は、簡略化するために示していない。
【００１８】
各ＣＡＭブロック１０２は、複数の一致線信号を、対応する一致線ＭＬを介して優先順位エンコーダ１０８へ供給する。一致線は、ＣＡＭアレイ１０４における一致状態を示す一致信号を搬送する。簡素化するために、各ＣＡＭブロック１０２からの複数の一致線ＭＬを、図１では集合的に表す。優先順位エンコーダ１０８は、デバイス１００における一致するＣＡＭワードの１つに対応するインデックスを生成する。一実施形態では、優先順位エンコーダ１０８は、最高の優先順位の一致したもののインデックスを出力する。最高優先順位の一致は、最低の番号のアドレス、最高の番号のアドレス、または任意の他の選択されたアドレスとすることができる。
【００１９】
本明細書の説明において、デバイス１００の最初のＣＡＭブロック１０２（１）は、最高の優先順位のブロックとして指定され、第２のＣＡＭブロック１０２（２）は、次に高い優先順位のブロックとして指定され、以下同様に指定され、最後のＣＡＭブロック（ｎ）は、最低の優先順位のブロックとして指定されるが、実際の実施形態では、優先順位を逆にするかまたは変更することができる。従って、最高の優先順位のＣＡＭブロック１０２（１）は、最低のＣＡＭアドレス（即ち、ＣＡＭアドレス０からｋ−１）を含むことができ、次に高い優先順位のブロック１０２（２）は、次に低いＣＡＭアドレス（即ち、ＣＡＭアドレスｋから２ｋ−１）を含むことができ、以下同様に含むことができ、最低の優先順位のＣＡＭブロック１０２（ｎ）は、最高のＣＡＭアドレス（即ち、ＣＡＭアドレス（ｎ−１）ｋからｎｋ−１）を含むことができる。
【００２０】
ブロック選択回路１０６（１）〜１０６（ｎ）は、対応するＣＡＭブロック１０２（１）〜１０２（ｎ）それぞれが比較動作に参加するかどうかを制御する。各ブロック選択回路１０６は、対応するＣＡＭブロック１０２のクラス・コードを格納し、これを用いて、１または複数の比較動作にＣＡＭブロックが参加することを選択的にディスエーブルし、従って、その比較動作の結果に影響しなくするようにできる。比較動作中に、コンパランド・ワードが、ＣＢＵＳを介してＣＡＭブロック１０２へ供給され、サーチ・コードが、バスＳＣを介してブロック選択回路１０６（１）〜１０６（ｎ）へ供給される。代替の実施形態では、サーチ・コードを、コンパランド・ワードの一部として供給することができ、その場合にはＣＢＵＳが、ブロック選択回路１０６に接続されるものであり、または、サーチ・コードを比較命令の一部として供給することができる。各ブロック選択回路１０６は、受け取ったサーチ・コードと、格納されたクラス・コードとを比較し、それに応答して、選択信号ＳＥＬを介して、対応するＣＡＭブロック１０２が比較動作に参加することを選択的にディスエーブルにする。一実施形態では、ブロック選択回路１０６は、それに対応するＣＡＭブロック１０２を、クラス・コードがサーチ・コードと一致する場合に、比較動作へ参加するようにイネーブルにし、クラス・コードがサーチ・コードと一致しない場合にはディスエーブルにする。代替の実施形態では、複数のＣＡＭブロック１０２によって、同一のブロック選択回路１０６を共用することができる。
【００２１】
ＣＡＭブロック１０２に割り当てられるクラス・コードを使用して、デバイス１００を、１または複数のＣＡＭブロック１０２の個別に選択可能な区画（パーティション）に区分することができる。例えば、一実施形態では、第１のＣＡＭブロック１０２（１）に格納されたデータを、第１のクラス・コードをブロック選択回路１０６（１）に格納することによって第１クラスに割り当てることができ、第２のＣＡＭブロック１０２（２）に格納されたデータを、第２のクラス・コードをブロック選択回路１０６（２）に格納することによって第２クラスに割り当てることができ、残りのＣＡＭブロック１０２（３）〜１０２（ｎ）に格納されたデータを、第３のクラス・コードをブロック選択回路１０６（３）〜１０６（ｎ）に格納することによって第３クラスに割り当てることができる。その後、例えば、ブロック選択回路１０６（１）に格納された第１クラス・コードと一致するようにサーチ・コードを設定することによって、第１のＣＡＭブロック１０２（１）に格納されたデータを、検索のために選択することができる。
【００２２】
サーチ・コードが第１クラス・コードと一致する時に、ブロック選択回路１０６（１）は、第１ＣＡＭブロック１０２（１）をイネーブルにして、コンパランド・ワードを、第１クラス・コードに対応するそれに格納されたデータと比較する。サーチ・コードが、第２および第３のクラス・コードと一致しない場合、残りのブロック選択回路１０６（２）〜１０６（ｎ）が、対応する選択されていないＣＡＭブロック１０２（２）〜１０２（ｎ）をディスエーブルにする。選択されていないＣＡＭブロック１０２（２）〜１０２（ｎ）は、ディスエーブルにされる時、コンパランド・ワードをそれらの個々のＣＡＭアレイ１０４へ比較動作のために駆動せず、これによって、第２および第３のクラス・コードに対応する選択されないデータとの比較が阻止される。このようにして、ＣＡＭブロック１０２（１）〜１０２（ｎ）を、クラス割当に従って選択的にサーチすることができ、これによって、動的に区分可能なＣＡＭデバイス１００が可能になる。
【００２３】
コンパランド・ワードは、ディスエーブルにされたＣＡＭブロック１０２（２）〜１０２（ｎ）に格納されたデータと比較されないので、ディスエーブルにされたＣＡＭブロック１０２（２）〜１０２（ｎ）は、比較動作中に、選択されイネーブルにされたＣＡＭブロック１０２（１）よりはるかに少ない電力を消費する。このようにして、この実施形態のクラス・コードによって、比較動作が、選択されたＣＡＭブロック内のデータに制限されるだけではなく、比較動作中の選択されないＣＡＭブロックの電力消費も最小になる。この実施形態によって達成される、比較動作中の選択されないＣＡＭブロックでの電力消費の低下という長所は、電力消費が懸念事項である応用例で特に有用であろう。
【００２４】
比較動作への参加について１または複数のＣＡＭブロックを選択的にイネーブルまたはディスエーブルにする能力は、一つのデバイス１００においてネットワークの異なるクラスに関するルーティング・ルックアップ機能を組み合わせるのに特に有用であろう。例えば、一実施形態では、第１の仮想プライベート・ネットワーク（ＶＰＮ）のルーティング情報を第１のＣＡＭブロック１０２（１）に格納し、第２ＶＰＮのルーティング情報を第２のＣＡＭブロック１０２（２）に格納し、ウェブ・サーチのルーティング情報を第３のブロック１０２（３）に格納し、ローカル・エリア・ネットワーク（ＬＡＮ）のルーティング情報を第４のＣＡＭブロック１０２（４）に格納することができる。４つの一意のクラス・コードを、対応するブロック選択回路１０６に格納することができる。もちろん、複数のブロック選択回路１０６に適当なクラス・コードを格納することによって、複数のＣＡＭブロックを特定のネットワークに割り当てることができる。比較動作中に、この４つのネットワークの１つのルーティング機能に対応するコンパランド・データを、適当なクラス・コードに一致するサーチ・コードを単にセットすることによって、対応するＣＡＭブロックに格納されたデータと排他的に比較することができる。幾つかの実施形態では、連想ＲＡＭを、ＣＡＭデバイス１００の４つのクラス定義されたパーティションに対応する４つのパーティションに区分することができる。
【００２５】
図２は、図１のＣＡＭアレイ１０４の一実施形態であるＣＡＭアレイ２００を示す。アレイ２００は、任意の数の行およびカラムに編成された複数のＣＡＭセル２０２を含む。ＣＡＭセル２０２の各行は、一致線ＭＬおよびワード線ＷＬに結合される。各ワード線ＷＬが、アドレス・デコーダ２０４によって駆動されて、書込または読取のために１または複数のＣＡＭセル２０２が選択される。代替の実施形態では、複数のＣＡＭブロックによってデコーダを共用することができる。各一致線ＭＬによって、比較動作の一致結果が優先順位エンコーダ１０８（図１も参照されたい）へ供給される。一致線ＭＬによって、行のすべてのＣＡＭセル２０２がコンパランド・データと一致する場合に限って、その行の一致状態が示される。各ＣＡＭセル２０２は、２値、３値、ＳＲＡＭベース、またはＤＲＡＭベースのＣＡＭセルとすることができる。幾つかの実施形態では、一致線ＭＬが、比較動作のためにプリチャージされる。行の何れかのＣＡＭセル２０２がコンパランド・データと一致しない場合、ＣＡＭセル２０２によって、一致線ＭＬがグラウンド電位（例えば論理ロー）の方へ放電される。逆に、全てのＣＡＭセル２０２がコンパランド・データと一致する場合、一致線ＭＬは、充電された状態（例えば論理ハイ）のままになる。ＣＡＭブロック１０２が、選択信号ＳＥＬに応答してディスエーブルにされるとき、コンパランド・ワードはアレイ２００へ駆動されず、不一致があるかどうかに関わらず、一致線ＭＬは比較動作中は充電された状態のままとなる。一致線は、後続の比較動作のためにプリチャージされる必要がない。選択されないＣＡＭブロックの一致線を、比較動作中に充電状態に維持する能力によって、従来技術のアーキテクチャよりもこの実施形態の電力消費を更に減らすことができる。
【００２６】
ＣＡＭセル２０２の各カラムは、ビット線ＢＬ、相補ビット線ＢＬ￣、コンパランド線ＣＬ、および相補コンパランド線ＣＬ￣に結合される（符号の右側に記載された「￣」は、符号の上側に付された線を示す）。ビット線ＢＬおよびＢＬ￣はセンス・アンプ２０６に結合され、センス・アンプ２０６は、ＣＡＭセル２０２の行へのデータの書込またはそれからの読取をイネーブルにすることができる。コンパランド線ＣＬおよびＣＬ￣は、コンパランド・ドライバ２０８に結合され、コンパランド・ドライバ２０８は、相補データ線ＤおよびＤ￣を介してコンパランド・レジスタ２１０に結合される。コンパランド・ドライバ２０８は、ブロック選択回路１０６によって供給される選択信号ＳＥＬに応答して、コンパランド・レジスタ２１０から相補データ線ＤおよびＤ￣を介して受け取られるコンパランド・ワードを、ＣＡＭセル２０２内のデータとの比較のために、相補コンパランド線ＣＬおよびＣＬ￣に駆動する。コンパランド・レジスタ２１０を、すべてのＣＡＭブロック１０２（１）〜１０２（ｎ）によって共用することができる。図１に関して上述したように、ブロック選択回路１０６は、サーチ・コードおよびそれに格納されたクラス・コードに応答して、選択信号ＳＥＬを生成する。
【００２７】
代替の実施形態では、他のＣＡＭアレイ・アーキテクチャを使用することができる。例えば、幾つかの実施形態では、ＣＡＭアレイ２００に、相補コンパランド線ＣＬおよびＣＬ￣を含めないようにでき、この場合、相補ビット線ＢＬおよびＢＬ￣を、コンパランド・ドライバ２０８に結合し、これを使用して、当技術分野で一般に既知の比較動作を実行することができる。例えば、比較サイクルの第１部分で、比較データをＢＬおよびＢＬ￣へ選択的に駆動することができ、比較サイクルの第２部分の間に、ＢＬおよびＢＬ￣を、ＣＡＭアレイ２００から出力されるデータを用いて駆動することができる。他の実施形態については、コンパランド線ＣＬおよびＣＬ￣ならびにビット線ＢＬおよびＢＬ￣の１つだけが必要である場合がある。
【００２８】
図３に、ブロック選択回路１０６の一実施形態であるブロック選択回路３００を示す。ブロック選択回路３００には、メモリ３０２および比較回路３０４が含まれる。メモリ３０２には、デバイス１００の対応するＣＡＭブロック１０２のクラス・コードが記憶され、メモリ３０２は、例えば、レジスタ、フリップフロップ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、ＳＲＡＭなどの適切なプログラマブル・メモリ・エレメントとすることができる。比較回路３０４によって、メモリ３０２から受け取られたクラス・コードと、バスＳＣから受け取られたサーチ・コードとが比較され、これに応答して、対応するＣＡＭブロック１０２を選択的にイネーブルまたはディスエーブルにする選択信号ＳＥＬが生成される。比較回路３０４は、例えば、排他的ＯＲ和型の論理ゲートまたはＣＡＭセルなどを含む、サーチ・コードとクラス・コードを比較する適切な回路とすることができる。
【００２９】
図４に、ブロック選択回路３００の一実施形態であるブロック選択回路４００を示す。ブロック選択回路４００は、３ビット・メモリ３０２および３ビット比較回路３０４を含むものとして示されているが、他の実施形態では、これより多数または少数のビットを使用することができる。メモリ３０２には、３つのデータ・フリップフロップ４０２（０）〜４０２（２）が含まれ、比較回路３０４には、３つの排他的ＮＯＲ（ＸＮＯＲ）ゲート４０４（０）〜４０４（２）およびＡＮＤゲート４０６が含まれる。各ＸＮＯＲゲート４０４（０）〜４０４（２）には、対応するサーチ・コード・ビットＳＣを受け取る第１入力端子、対応するフリップフロップ４０２から対応するクラス・コード・ビットＣＣを受け取る第２入力端子、およびＡＮＤゲート４０６に接続された出力端子が含まれる。３ビット・クラス・コードＣＣ［０：２］を、クロック信号ＣＬＫを使用してフリップフロップ４０２（０）〜４０２（２）のそれぞれにクロッキングすることができ、フリップフロップ４０２（０）には第１クラス・コード・ビットＣＣ［０］が格納され、フリップフロップ４０２（１）には第２クラス・コード・ビットＣＣ［１］が格納され、フリップフロップ４０２（２）には第３クラス・コード・ビットＣＣ［２］が格納される。
【００３０】
比較動作中に、ＸＮＯＲゲート４０４（０）〜４０４（２）によって、サーチ・コード・ビットＳＣ［０：２］がそれぞれのクラス・コード・ビットＣＣ［０：２］と比較され、一致がある場合、その出力端子が論理ハイに駆動される。逆に、不一致がある場合、ＸＮＯＲゲート４０４によって、その出力端子が論理ローに駆動される。すべてのサーチ・コード・ビットＳＣ［０：２］が、対応するクラス・コード・ビットＣＣ［０：２］と一致する場合、ＡＮＤゲート４０６によって、選択信号ＳＥＬが論理ハイにアサートされ、これによって、対応するＣＡＭブロック１０２が比較動作に参加することをイネーブルにされる。そうではなく、サーチ・コード・ビットＳＣ［０：２］の何れかが、対応するクラス・コード・ビットＣＣ［０：２］と一致しない場合に、ＡＮＤゲート４０６によって、選択信号が論理ローにデアサートされ、これによって、対応するＣＡＭブロック１０２が比較動作に参加することをディスエーブルにされる。クラス・コード・ビットは、比較動作の前にフリップフロップ４０２（０）〜４０２（２）へロードすることができるので、比較動作中の選択信号の生成に関連するゲート遅延は、ＸＮＯＲゲート４０４の１つとＡＮＤゲート４０６の１つとの２ゲートの遅延のみであり、従って、デバイスの性能に対しての影響は無視できる。
【００３１】
図５に、ブロック選択回路３００の別の実施形態であるブロック選択回路５００を示す。ここでは、論理回路５０２がＡＮＤゲート４０６の出力端子に結合されて、制御信号ＥＮおよびＳＥＬ＿ＯＶを使用して選択信号ＳＥＬの直接制御が可能になる。論理回路５０２には、ＯＲゲート５０４が含まれ、ＯＲゲート５０４は、第１端子をＡＮＤゲート４０６の出力端子に結合され、第２端子はＥＮを受け取るようにされ、出力端子はＡＮＤゲート５０８の第１入力端子に結合される。ＡＮＤゲート５０８には、ＳＥＬ＿ＯＶを受け取る第２入力端子および選択信号ＳＥＬを供給する出力端子が含まれる。信号ＥＮによって、対応するＣＡＭブロック１０２は、ＡＮＤゲート４０６の出力が論理ハイの時に、比較動作に参加することをイネーブルにされる。論理ハイにアサートされた時に、ＥＮによって、対応するＣＡＭブロック１０２が比較動作に関してイネーブルにされ、逆に、論理ローにデアサートされた時に、ＥＮによって、対応するＣＡＭブロック１０２が、一致状態の有無にかかわらず、比較動作に関してディスエーブルにされる。ＥＮ信号を使用して、例えば欠陥がある時に、ＣＡＭブロック１０２を選択的にディスエーブルにすることができる。信号ＥＮは、図５ではヒューズ５０６によって供給されるものとして示されているが、他の実施形態では、ＥＮを、例えば、レジスタ、フリップフロップ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＳＲＡＭなどのプログラマブル・メモリ・エレメントなどのような他の手段によって供給することができる。信号ＳＥＬ＿ＯＶは、選択オーバーライド信号であり、これは論理ハイにアサートされた時に、選択信号ＳＥＬを強制的に論理ハイにして、クラス一致の有無にかかわらず、対応するＣＡＭブロック１０２が比較動作に参加することをイネーブルにするのに使用することができる。代替の実施形態では、ＯＲゲート５０４およびＡＮＤゲート５０８の相対位置を逆にすることができ、ＳＥＬ＿ＯＶが論理ハイ状態にセットされる時に、クラス一致またはＥＮの論理状態に無関係に、ＳＥＬが論理ハイ状態にセットされる。
【００３２】
図６に、コンパランド・ドライバ２０８の一実施形態で使用される１ビット・コンパランド・ドライバ６００を示す。ドライバ６００には、ＡＮＤゲート６０２、６０４、および６０６が含まれ、バッファ６０８および６１０も含まれる。ＡＮＤゲート６０２には、クロック信号ＣＬＫを受け取る入力端子および選択信号ＳＥＬを受け取る入力端子と、ＡＮＤゲート６０４および６０６の第１入力端子に結合される出力端子が含まれる。ＡＮＤゲート６０４には、データ線Ｄに結合された第２入力端子およびバッファ６０８に結合された出力端子が含まれ、バッファ６０８はコンパランド線ＣＬを駆動する。ＡＮＤゲート６０６には、相補データ線Ｄ￣に結合された第２入力端子およびバッファ６１０に結合された出力端子が含まれ、バッファ６１０は相補コンパランド線ＣＬ￣を駆動する。バッファ６０８および６１０は、コンパランド・データをコンパランド線ＣＬおよびＣＬ￣に駆動する適切なバッファとすることができる。複数のドライバ６００によってＡＮＤゲート６０２を共用することができる。
【００３３】
比較動作中に、コンパランド・ビットがデータ線Ｄを介してＡＮＤゲート６０４へ供給され、相補コンパランド・ビットが相補データ線Ｄ￣を介してＡＮＤゲート６０６へ供給される。ＣＬＫが論理ハイである時に、選択信号ＳＥＬがＡＮＤゲート６０２を介してＡＮＤゲート６０４および６０６へ伝搬する。選択信号が論理ハイにアサートされる場合、ＡＮＤゲート６０６によって、コンパランド・ビットがバッファ６０８へ渡され、バッファ６０８によってコンパランド・ビットがコンパランド線ＣＬに駆動される。同様に、ＡＮＤゲート６０８によって相補コンパランド・ビットがバッファ６１０へ渡され、バッファ６１０によって相補コンパランド・ビットが相補コンパランド線ＣＬ￣に駆動される。従って、選択信号ＳＥＬがアサートされる時に、コンパランド・ドライバ６００によって、コンパランド線ＣＬおよびＣＬ￣が、データ線ＤおよびＤ￣を介してコンパランド・レジスタ２１０から受け取られたコンパランド・データによって駆動される。
【００３４】
逆に、選択信号ＳＥＬが論理ローにデアサートされて、対応するＣＡＭブロック１０２が比較動作に参加しないことが示される場合には、ＡＮＤゲート６０６および６０８によって、それらの個々の出力端子が強制的に論理ローにされる。これに応答して、バッファ６０８および６１０によって、それぞれコンパランド線ＣＬおよび相補コンパランド線ＣＬ￣が強制的に論理ローにされる。このようにして、選択信号ＳＥＬがデアサートされる時に、コンパランド・ドライバ６００は、相補コンパランド・データをコンパランド線ＣＬおよびＣＬ￣に駆動せず、これによって、対応するＣＡＭブロック１０２が比較動作に参加することから排除され、ＣＡＭブロックの電力消費が最小化される。
【００３５】
本発明は、デバイス内の欠陥のあるＣＡＭブロックをディスエーブルにすることによって、ＣＡＭデバイスの製造歩留まりを高めるのにも特に有用である。即ち、例えば、ｎ個のＣＡＭブロックを有するＣＡＭデバイスの製造中に、１または複数のＣＡＭブロックが、製造後に、欠陥があるか動作不能であることがわかる場合に、デバイス全体を破棄するのではなく、欠陥があるブロックを、上述のブロック選択回路を使用してディスエーブルにすることができ、残りの欠陥のないＣＡＭブロックを比較動作に使用することができる。例えば、ＣＡＭデバイスに８つのＣＡＭブロックが含まれ、各ＣＡＭブロックが１ｋ行のＣＡＭセルを有する実施形態では、ＣＡＭブロックの１つに欠陥がある場合に、そのＣＡＭブロックがディスエーブルにされ、残りの７つのＣＡＭブロックを７ｋＣＡＭデバイスとして使用することができる。従って、１または複数のＣＡＭブロックに欠陥がある時にＣＡＭデバイスを使用する能力によって、ＣＡＭデバイスの製造歩留まりが好適に高まる。
【００３６】
図７に、図１のデバイス１００の変更された実施形態であるＣＡＭデバイス７００を示し、この実施形態では、ＣＡＭ動作について１または複数の欠陥があるＣＡＭブロックをディスエーブルにでき、欠陥があるＣＡＭブロックのアドレス位置を欠陥のないＣＡＭブロックのアドレス位置に変換または再割り当てする回路も含む。デバイス７００には、アドレス・ロジック７０１、複数のＣＡＭブロック７０２（１）〜７０２（ｎ）、ＣＡＭブロック７０２（１）〜７０２（ｎ）にそれぞれ対応する複数のブロック選択回路７０６（１）〜７０６（ｎ）、優先順位エンコーダ７０８、およびフル・フラグ・ロジック７１０が含まれる。ブロック選択回路７０６（１）〜７０６（ｎ）のそれぞれは、対応するＣＡＭブロック７０２へ選択信号を供給し、この選択信号は、例えばＣＡＭブロック７０２に欠陥がある場合に、ＣＡＭブロック７０２をディスエーブルにするために上述のように使用することができる。
【００３７】
ブロック選択回路７０６は、論理ハイ（イネーブル）または論理ロー（ディスエーブル）の選択信号ＳＥＬを対応するＣＡＭブロック７０２へ供給する適切な回路とすることができる。幾つかの実施形態では、ブロック選択回路７０６に、ＳＥＬを表す２進値を格納するメモリ（図７に示さず）が含まれる。幾つかの実施形態では、ブロック選択回路７０６によって、対応するＣＡＭブロック７０２に欠陥がない場合には論理ハイのＳＥＬ信号が供給され、対応するＣＡＭブロック７０２に欠陥がある場合には論理ローのＳＥＬ信号が供給される。一実施形態では、ブロック選択回路７０６にブロック選択回路５００（図５）を含めることができ、この場合、信号ＳＥＬを介して欠陥のあるＣＡＭブロック７０２をディスエーブルにするために、ヒューズ５０６をとばすことによって信号ＥＮを論理ロー状態にセットすることができる。他の実施形態では、ブロック選択回路７０６を、ＣＡＭブロック７０２と電圧源との間に接続されたヒューズ（またはメモリ・エレメント）とすることができ、この場合、対応するＣＡＭブロック７０２をディスエーブルにするために、ヒューズをとばして論理ローのＳＥＬ信号を供給することができる。
【００３８】
デバイス７００の製造後に、ＣＡＭブロック７０２（１）〜７０２（ｎ）のそれぞれを適切な形でテストする。欠陥があることがわかったＣＡＭブロック７０２のそれぞれについて、対応するブロック選択回路７０６をコンフィギュレーションして、ＣＡＭブロック７０２に論理ローの選択信号ＳＥＬを供給して、そのＣＡＭブロックをディスエーブルにする。逆に、欠陥がないＣＡＭブロック７０２のそれぞれについて、対応するブロック選択回路７０６をコンフィギュレーションして、ＣＡＭブロックに論理ハイの選択信号を供給して、そのＣＡＭブロックをＣＡＭ動作に参加できるようにする。
【００３９】
ＳＥＬを供給するのにヒューズを使用する実施形態でのＣＡＭデバイスのＣＡＭブロックのテストおよびその後の欠陥のあるＣＡＭブロックの選択的ディスエーブルを、図８の流れ図に関して説明する。この図では、各ブロック選択回路７０６のヒューズ（図を簡単にするために示さず）が電圧源に結合され、従って、当初は、対応するＣＡＭブロック７０２をイネーブルにするためのアサートされた（例えば、論理ハイ）ＳＥＬが供給される。各ＣＡＭブロック７０２が、欠陥があるかどうかを判定するのに適切な様式でテストされる（ステップ７５０）。ステップ７５１のテストで、ＣＡＭブロックに欠陥があるとされた場合には、ヒューズをとばすことによって、ＳＥＬをデアサート（例えば、論理ロー）して、欠陥があるＣＡＭブロックをディスエーブルにする。そうではなく、ＣＡＭブロックに欠陥がない場合には、対応するヒューズはとばされず、対応するＣＡＭブロックはイネーブルにされたままになる。ステップ７５３で、すべてのＣＡＭブロックをテストしたと判定された場合には、処理を終了する（ステップ７５４）。そうでない場合には、次のＣＡＭブロックをテストし、その後、欠陥があるとわかった場合にディスエーブルにする（ステップ７５０から７５２）。
【００４０】
比較動作中に、各ＣＡＭブロック７０２は、図１のデバイス１００のＣＡＭブロック１０２と類似の様式で、コンパランド・バスＣＢＵＳからコンパランド・データを受け取る。比較動作中にデバイス７００へ供給される他の信号は、クロック信号ＣＬＫ、命令デコーダ（図を簡素化にするために示さず）からの１または複数の命令、および他の制御信号とすることができる。各ＣＡＭブロック７０２によって、対応する一致線ＭＬを介して優先順位エンコーダ７０８へ複数の一致線信号が供給される。一致線によって、ＣＡＭアレイ７０４における一致状態を表す一致信号が搬送される。簡素化するために、各ＣＡＭブロック７０２からの複数の一致線ＭＬは、図７では集合的に表されている。優先順位エンコーダ７０８によって、デバイス７００における一致するＣＡＭワードの１つに対応するインデックスが生成されるが、これは、上述のように、最高優先順位の一致するＣＡＭ行のインデックスとすることができる。
【００４１】
各ＣＡＭブロック７０２によって、ＣＡＭブロックが満杯であるかどうか、即ち、データの格納に使用可能な行がＣＡＭブロック７０２にあるかどうかを表すフル・フラグ信号ＦＦが、フル・フラグ・ロジック７１０へ供給される。フル・フラグ信号ＦＦは、ＣＡＭブロックの各行の１または複数の有効ビットを使用して周知の様式でＣＡＭブロック７０２に対して生成することができる。ＣＡＭブロック７０２（１）〜７０２（ｎ）によってそれぞれ生成されるフル・フラグ信号ＦＦ＿１〜ＦＦ＿ｎが、フル・フラグ・ロジック７１０で周知の様式で組み合わされて、デバイス７００に使用可能な行があるかどうかを示すデバイス・フル・フラグＦＦ＿ｄｅｖｉｃｅが生成される。ＣＡＭブロック７０２が、欠陥があるか初期の目的のために動作不能であることがわかった時に、そのＣＡＭブロック７０２を、アサートされたフル・フラグ信号ＦＦが維持されるようにコンフィギュレーションして、欠陥のあるＣＡＭブロック７０２が使用可能なメモリ位置を含まれないことを示すようにする。一実施形態では、欠陥があるＣＡＭブロックに対するフル・フラグ信号ＦＦを、そのアレイ７０４の有効ビットを強制的にアサート状態にすることによって、アサートされた状態に維持することができる。他の実施形態では、各ＣＡＭブロック７０２内にまたはこれに関連してヒューズを設けることができ、このヒューズがとばされた時に、対応するフル・フラグ信号ＦＦが強制的にアサートされる。
【００４２】
アドレス・ロジック７０１は、図７では、アドレス・バスＡＢＵＳおよびそれぞれのＣＡＭブロック７０２（１）〜７０２（ｎ）に結合されているように示されている。読取動作中および書込動作中に、デバイス７００へ供給されるアドレスを、アドレス・バスＡＢＵＳを介してアドレス・ロジック７０１に受け取ることができ、その後、これを使用して、読取動作または書込動作のためにＣＡＭブロック７０２（１）〜７０２（ｎ）の１つにおける１行を選択することができる。本発明によれば、アドレスによって参照されるＣＡＭブロック７０２に欠陥があり、従って、上述したように対応するブロック選択回路７０６を使用して動作がディスエーブルにされる場合、アドレス・ロジック７０１によって、アドレスが、欠陥がある又はディスエーブルにされたＣＡＭブロックから、欠陥のないＣＡＭブロックへと変換される。逆に、アドレスによって参照されるＣＡＭブロック７０２に欠陥がなく、従って、動作に関してイネーブルにされる場合、アドレス・ロジック７０１によって、アドレスが適当なＣＡＭブロック７０２へ送られる。以下の部分で詳細に説明するように、アドレス・ロジック７０１によって、１または複数のＣＡＭブロック７０２に欠陥がありディスエーブルにされる時に、欠陥のないＣＡＭブロック７０２が互いに隣接しない時であっても、ＣＡＭブロック７０２における連続的なアドレッシング方式が保証される。
【００４３】
代替の実施形態では、アドレス・ロジック７０１を省略することができる。一例として、ブロック７０２（１）から始まる連続した欠陥のないブロックをまだ使用することができる。他の実施形態では、任意の欠陥のないブロックを使用することができる。
【００４４】
図９に、ＣＡＭデバイス７００の一実施形態であるＣＡＭデバイス８００を示す。ＣＡＭデバイス８００は、アドレス変換ロジック８０１、４つのＣＡＭブロック８０２（０）〜８０２（３）、および主優先順位エンコーダ８０６を含むものとして示されている。各ＣＡＭブロック８０２に、ＣＡＭアレイ７０４（例えば、１ｋのＣＡＭアレイ）、ブロック優先順位エンコーダ８０４、および一致フラグ・ロジック８０５が含まれる。もちろん、他の実施形態では、任意の数のＣＡＭブロック８０２を設けることができ、各ＣＡＭブロック・アレイ７０４に、ＣＡＭセルの行を任意の数だけ含めることができる。アドレスＡに、任意の適切な数のビットを含めることができる。図９の実施形態では、図７の優先順位エンコーダ７０８の機能が、ＣＡＭブロック８０２（０）〜８０２（３）内の個々のブロック優先順位エンコーダ８０４と主優先順位エンコーダ８０６との間で分散される。読取動作中または書込動作中に、１４ビット・アドレスＡ［１３：０］を、アドレス・バスＡＢＵＳを介してデバイス８００へ供給することができる。最初の２つのアドレス・ビットＡ［１３：１２］は、ブロック・アドレス・ビットであり、アドレス変換ロジック８０１へ供給され、アドレス変換ロジック８０１は、ブロック選択信号ＢＳ＿０〜ＢＳ＿３のそれぞれを介して、読取動作または書込動作に関してＣＡＭブロック８０２（０）〜８０２（３）の１つを選択する。残りの１２個のアドレス・ビットＡ［１１：０］によって、動作についてアドレス変換ロジック８０１によって選択されたＣＡＭアレイ７０４の行が選択され、各ＣＡＭブロック８０２へ供給することができる。読取動作中または書込動作中に、アドレス変換ロジック８０１によって選択されたＣＡＭブロック８０２内の行アドレス・ビットＡ［１１：０］によって識別される行からデータを読み取るか又はその行へデータを書き込むことができる。
【００４５】
テスト中に欠陥があることがわかったＣＡＭブロック８０２を示す情報を使用して、アドレス変換ロジック８０１をコンフィギュレーションして、欠陥のないＣＡＭブロック８０２を再アドレッシングして、例えば、連続する最高優先順位アドレス空間（例えば、最低の番号のアドレス）を占有するようにできる。読取動作中または書込動作中に、アドレス変換ロジック８０１は、ブロック・アドレス・ビットＡ［１３：１２］を受け取る。ブロック・アドレス・ビットＡ［１３：１２］によって選択されるＣＡＭブロック８０２が、欠陥がないか又はイネーブルにされる場合には、アドレス変換ロジック８０１が、対応するブロック選択信号ＢＳをアサートし、選択されたＣＡＭブロック８０２を動作についてイネーブルにする。例えば、アドレス［１３：０］によって、最初のＣＡＭブロック８０２（０）の第１行が読取に対して選択され、ＣＡＭブロック８０２（０）に欠陥がない場合に、アドレス変換ロジック８０１がＢＳ＿０を論理ハイにアサートし、ＢＳ＿１、ＢＳ＿２、およびＢＳ＿３を論理ローのデアサート状態に維持する。アサートされたＢＳ＿０信号によって、行アドレス・ビットＡ［１１：０］が、最初のＣＡＭブロック８０２（０）にラッチされ、これによって、最初のＣＡＭブロック８０２（０）からの読取が促進される。
【００４６】
逆に、ブロック・アドレス・ビットＡ［１３：１２］によって選択されるＣＡＭブロック８０２が欠陥を有するか又はディスエーブルにされる場合に、アドレス変換ロジック８０１は、動作のために別のＣＡＭブロックを、対応するブロック選択信号ＢＳをアサートすることによって、選択する。例えば、アドレス［１３：０］によって最初のＣＡＭブロック８０２（０）の最初の行が読取に関して選択され、ＣＡＭブロック８０２（０）に欠陥があり、第２のＣＡＭブロック８０２（１）に欠陥がない場合に、アドレス変換ロジック８０１は、ＢＳ＿１を論理ハイにアサートし、ＢＳ＿０、ＢＳ＿２、およびＢＳ＿３を論理ローのデアサートの状態に維持することができる。アサートされたＢＳ＿１信号によって、行アドレス・ビットＡ［１１：０］が第２のＣＡＭブロック８０２（１）にラッチされ、これによって、第２のＣＡＭブロック８０２（１）からの読取が促進される。このようにして、アドレス変換ロジック８０１によって、読取動作または書込動作を、欠陥のあるＣＡＭブロックから欠陥のないＣＡＭブロックへと再アドレッシングすることができる。
【００４７】
幾つかの実施形態では、ＣＡＭブロック８０２へ供給されるブロック選択信号ＢＳを、アドレス・ゲーティング信号として使用して、この実施形態によるアドレス変換を促進することができる。例えば、図１０に、図７のアレイ７０４の一実施形態であるＣＡＭアレイ９００を示す。アレイ９００には、任意の数の行およびカラムに編成された複数のＣＡＭセル２０２が含まれ、図２に関して説明したＣＡＭアレイ２００と似た様式で動作する。即ち、比較動作中に、コンパランド・レジスタ２１０によって供給されるコンパランド・データが、ブロック選択回路７０６により供給される選択信号ＳＥＬに応答して相補コンパランド線ＣＬおよびＣＬ￣へ選択的に駆動される。アレイ９００に欠陥がない場合には、選択信号ＳＥＬが論理ハイにアサートされて、コンパランド・ワードをアレイ９００へと駆動できるようになり、そこに格納されたＣＡＭワードと比較するようにされる。逆に、テスト中にアレイ９００に欠陥があるとわかった場合には、ブロック選択回路７０６が、デアサートされた選択信号ＳＥＬをコンパランド・ドライバ２０８へ供給するようにコンフィギュレーションされて、コンパランド・データが相補コンパランド線ＣＬおよびＣＬ￣へ駆動されないようにして、これによってアレイ９００をディスエーブルにする。
【００４８】
アドレス・ビットＡ［１１：０］は、アドレス・バスＡＢＵＳからアドレス・デコーダ２０４に供給される。アドレス・ゲーティング・ロジック９０２が、アドレス・デコーダ２０４と、アレイ９００の対応するワード線ＷＬとの間で、ゲーティングされる線ＧＬを介して接続され、そして、ブロック選択信号ＢＳに応答してＡ［１１：０］によって識別されるワード線ＷＬが選択的を駆動する。例えば、読取動作中または書込動作中に、アドレス・デコーダ２０４によってＡ［１１：０］がデコードされて、動作に対してＣＡＭセル２０２の行が選択され、対応するゲーティングされた線ＧＬが論理ハイへ駆動される。ＢＳが論理ハイにアサートされる場合に、アドレス・ゲーティング・ロジック９０２は、対応するワード線ＷＬを駆動して、動作のためにＣＡＭセル２０２の行を選択する。逆に、ＢＳが論理ローにデアサートされる場合には、アドレス・ロジック９０２は、Ａ［１１：０］に無関係に、ワード線ＷＬの何れも論理ハイに駆動されず、これによって、アレイ内のＣＡＭセル２０２が動作に対してアドレッシングされないようにする。一実施形態では、アドレス・ゲーティング・ロジック９０２に、アレイ９００内のワード線ＷＬごとに、ワード線に結合された出力端子、対応するゲーティングされる線ＧＬに結合された第１入力端子、およびブロック選択信号ＢＳを受け取る第２入力端子を有するＡＮＤゲート（図示せず）を含めることができる。このようにして、ＡＮＤゲートを使用して、ＢＳに応答してブロック内のＣＡＭセルのアドレッシングを選択的にゲーティングすることができる。もちろん、他の実施形態では、他の適切なロジックを使用することができる。
【００４９】
図１１に、図９のアドレス変換ロジック８０１の一実施形態であるアドレス変換ロジック１０００を示す。ロジック１０００には、デコード・ロジック１００２、４つの４入力マルチプレクサ１００４（０）〜１００４（３）、および４つの対応するメモリ・エレメント１００６（０）〜１００６（３）がそれぞれ含まれる。デコード・ロジック１００２は、ブロック・アドレス・ビットＡ［１３：１２］を受け取る入力端子を有し、信号線１００８（０）〜１００８（３）を介してマルチプレクサ１００４（０）〜１００４（３）の対応する入力端子にそれぞれ結合された４つの出力端子を有する。デコード・ロジック１００２は、ブロック・アドレス・ビットＡ［１３：１２］をデコードし、これに応答して、出力線１００８（０）〜１００８（３）の１つを論理ハイにアサートする。例えば、アドレス・ビットＡ［１３：１２］が１０進値「０」と同等の「００」である場合に、デコード・ロジックは信号線１００８（０）をアサートし、アドレス・ビットＡ［１３：１２］が１０進値「１」と同等の「０１」である場合に、デコード・ロジック１００２は信号線１００８（１）をアサートし、アドレス・ビットＡ［１３：１２］が１０進値「２」と同等の「１０」である場合に、デコード・ロジック１００２は信号線１００８（２）をアサートし、アドレス・ビットＡ［１３：１２］が１０進値「３」と同等の「１１」である場合に、デコード・ロジック１００２は信号線１００８（３）をアサートする。
【００５０】
マルチプレクサ１００４（０）〜１００４（３）のそれぞれに、ＣＡＭブロック８０２（０）〜８０２（３）の対応する１つに結合される出力端子、およびメモリ・エレメント１００６（０）〜１００６（３）の対応する１つに結合される制御端子が含まれる。各メモリ・エレメント１００６にアドレス変換情報が格納され、このアドレス変換情報は、対応するマルチプレクサ１００４に供給される時に、デコード・ロジック１００２によって供給される信号の１つを選択して、ブロック選択信号ＢＳとして出力されるようにする。このようにして、マルチプレクサ１００４（０）〜１００４（３）によって、それぞれＣＡＭブロック８０２（０）〜８０２（３）にブロック・アドレス値を動的に割り当てることができる。
【００５１】
この実施形態によれば、メモリ・エレメント１００６（０）〜１００６（３）に格納されるアドレス変換情報を操作することによって、欠陥があるＣＡＭブロックへの読取動作または書込動作を、欠陥のないＣＡＭブロックへ再アドレッシングすることができる。幾つかの実施形態では、ＣＡＭブロック８０２（０）〜８０２（３）のすべてに欠陥がない場合に、メモリ・エレメント１００６（０）〜１００６（３）に、デフォルト・ブロック・アドレス値が格納されて、読取動作中または書込動作中にＣＡＭアドレッシングが変更されないようにする。即ち、デフォルト・ブロック・アドレス値によって、個々のマルチプレクサ１００４（０）〜１００４（３）が、信号線１００８（０）〜１００８（３）の対応する信号をそれぞれブロック選択信号ＢＳ＿０〜ＢＳ＿３として選択する。例えば、メモリ・エレメント１００６（０）にデフォルト・ブロック・アドレス値「０」を格納して、マルチプレクサ１００４（０）に信号線１００８（０）の信号をＢＳ＿０として選択させることができ、メモリ・エレメント１００６（１）にデフォルト・ブロック・アドレス値「１」を格納して、マルチプレクサ１００４（１）に信号線１００８（１）の信号をＢＳ＿１として選択させることができ、メモリ・エレメント１００６（２）にデフォルト・ブロック・アドレス値「２」を格納して、マルチプレクサ１００４（２）に信号線１００８（２）の信号をＢＳ＿２として選択させることができ、メモリ・エレメント１００６（３）にデフォルト・ブロック・アドレス値「３」を格納して、マルチプレクサ１００４（３）に信号線１００８（３）の信号をＢＳ＿３として選択させることができる。このようにして、アドレス変換ロジック１０００によって、読取動作または書込動作に対して、アドレス・ビットＡ［１３：１２］によって識別されるＣＡＭブロックが選択される。表１に、すべてのＣＡＭブロックに欠陥がない時の、４つのデフォルト・ブロック・アドレス／マルチプレクサ選択値（ＭＵＸ）および対応するアドレス空間を示す。
【００５２】
【表１】
2005501369.tif 000003
【００５３】
次に、ＣＡＭデバイス８００をテストして、何れかのＣＡＭブロックに欠陥があるかどうかを判定する。１または複数のＣＡＭブロックに欠陥があると判定される時には、メモリ・エレメント１００６（０）〜１００６（３）に格納される選択値を変更して、欠陥のないＣＡＭブロックを再アドレッシングすることができる。例えば、テスト後に、ＣＡＭブロック８０２（０）に欠陥があると判定され、その後、上述のように（図７も参照されたい）対応するブロック選択回路７０６を使用してディスエーブルにされる場合に、欠陥があるＣＡＭブロック８０２（０）の１ｋのＣＡＭ行は、もはや使用可能ではなく、従って、デバイス８００は、３ｋだけ使用可能なＣＡＭ行を有する。即ち、３つの欠陥がないＣＡＭブロック８０２（１）〜８０２（３）のそれぞれの１ｋ行を有する。第１のＣＡＭブロック８０２（０）が使用可能でないので、第２のＣＡＭブロック８０２（１）を最高優先順位のＣＡＭブロックにする（例えば、アドレス空間０からｋ−１を有する）ことと、第３のＣＡＭブロック８０２（２）を次に高い優先順位のＣＡＭブロックにする（例えば、アドレス空間ｋから２ｋ−１を有する）ことと、第４のＣＡＭブロック８０２（３）を次に高い優先順位のＣＡＭブロックにする（例えば、アドレス空間２ｋから３ｋ−１を有する）こととが望ましい。
【００５４】
対応するメモリ・エレメント１００６（０）〜１００６（３）に格納されたブロック・アドレス値を変更して、欠陥のないＣＡＭブロック８０２（１）〜８０２（３）の新しいアドレッシング方式を実施することができる。例えば、一実施形態では、メモリ・エレメント１００６（１）に格納されるブロック・アドレス値に「０」をセットして、その結果としてマルチプレクサ１００４（１）が、信号線１００８（０）の信号を、ＣＡＭブロック８０２（１）に供給されるＢＳ＿１として選択する。Ａ［１３：１２］が「００」と等しい時に、デコード・ロジック１００２によって信号線１００８（０）が論理ハイにアサートされ、これがマルチプレクサ１００６（１）を通過して、動作のために第２のＣＡＭブロック８０２（１）を選択する。このようにして、アドレス変換ロジック１０００は、アドレス空間０からｋ−１を、ＣＡＭブロック８０２（０）からＣＡＭブロック８０２（１）へ変換する。
【００５５】
同様に、メモリ・エレメント１００６（２）に格納されるブロック・アドレス値に「１」がセットされ、その結果、マルチプレクサ１００４（２）が信号線１００８（１）の信号をＢＳ＿２として選択してＣＡＭブロック８０２（２）へ供給されるようにする。Ａ［１３：１２］が「０１」と等しい時には、デコード・ロジック１００２によって信号線１００８（１）が論理ハイにアサートされ、これがマルチプレクサ１００４（２）を通して渡されて、動作に対して第３のＣＡＭブロック８０２（２）が選択され、これによって、アドレス空間ｋから２ｋ−１を、ＣＡＭブロック８０２（１）からＣＡＭブロック８０２（２）へ変換される。同様に、メモリ・エレメント１００６（３）に格納されるブロック・アドレス値に「２」がセットされ、その結果、マルチプレクサ１００４（３）が信号線１００８（２）の信号をＢＳ＿３として選択してＣＡＭブロック８０２（３）へ供給されるようにする。Ａ［１３：１２］が「１０」と等しい時に、デコード・ロジック１００２によって、信号線１００８（２）が論理ハイにアサートされ、これがマルチプレクサ１００４（３）通じて渡されて、動作に対して第４のＣＡＭブロック８０２（３）が選択され、これによって、アドレス空間２ｋから３ｋ−１が、ＣＡＭブロック８０２（２）からＣＡＭブロック８０２（３）へ変換される。表２に、ＣＡＭブロック８０２（０）に欠陥があり、ＣＡＭブロック８０２（１）〜８０２（３）に欠陥がない時の選択値をまとめる。
【００５６】
【表２】
2005501369.tif 000004
【００５７】
ＣＡＭブロック８０２（１）〜８０２（３）のアドレス空間を変換することによって、この実施形態では、欠陥がないＣＡＭブロック８０２（１）〜８０２（３）の行を、最高の優先順位のＣＡＭアドレス、例えば、行アドレス０から３ｋ−１を用いて、再アドレッシングすることができる。このようにして、デバイス８００の３つの欠陥がないＣＡＭブロック８０２（１）〜８０２（３）を、３ｋのＣＡＭアレイとして販売し、動作させることができる。これは、従来技術のＣＡＭデバイスと対照的であり、従来技術のＣＡＭデバイスでは、通常、その中のＣＡＭブロックの何れかに欠陥があるとわかった場合に破棄される。デバイス８００を破棄するのではなく、デバイス８００の欠陥のあるＣＡＭブロック８０２（０）を再アドレッシングして欠陥のないＣＡＭブロック８０２（１）〜８０２（３）を３ｋのＣＡＭアレイとして使用する能力によって、製造の歩留まりを大幅に改善することができる。
【００５８】
上記の例では、欠陥のあるＣＡＭブロック８０２（０）のアドレス空間が、メモリ・エレメント１００６（０）に格納される選択値を「０」から「３」へと変更することによって、行割当０〜ｋ−１から行割当３ｋ〜４ｋ−１へと変換される。これによって、欠陥のあるＣＡＭブロック８０２（０）が、読取動作中または書込動作中にアドレッシングされないことが保証される。即ち、３つの欠陥のないＣＡＭブロックが、アドレス空間０から３ｋ−１を有する３ｋＣＡＭアレイとして使用されるので、３ｋ−１より上位のアドレス空間が使用されず、従って、欠陥のあるＣＡＭブロック８０２（０）がアドレッシングされない。代替の実施形態では、ブロック選択信号ＢＳ＿０をロー論理状態にセットして、ブロック８０２（０）をディスエーブルにすることができる。１つの例については、特定の値がメモリ１００６にプログラムされる（またはその値がメモリ１００６において変更される）時に、ＢＳおよびそれに対応するブロックをディスエーブルにするようにコンフィギュレーションされたメモリ１００６および論理回路（例えば、ＡＮＤ、ＯＲ、ＸＯＲ、ＮＯＴ回路の１または複数）に、各ＭＵＸの出力を結合することができる。
【００５９】
他の実施形態では、メモリ・エレメント１００６（０）〜１００６（３）に格納されるブロック・アドレス値を変更して、欠陥のないＣＡＭブロックが互いに隣接しているかどうかに無関係に、任意の数ｎ個の欠陥のないＣＡＭブロックのアドレス空間を、０から（ｋ）ｎ−１の連続するアドレス空間へと変換することができる。従って、例えば、一実施形態において、ＣＡＭブロック８０２（０）および８０２（２）に欠陥があり、ＣＡＭブロック８０２（１）および８０２（３）に欠陥がない場合には、欠陥のないＣＡＭブロック８０２（１）および８０２（３）を、メモリ・エレメント１００６（１）および１００６（３）に対するブロック・アドレス値をそれぞれ「０」および「１」にセットすることによって、２ｋのＣＡＭアレイとして動作するようにコンフィギュレーションすることができる。このようにして、「００」と等しいＡ［１３：１２］に対応する最初の１ｋアドレス空間によってＣＡＭブロック８０２（１）が選択され、「０１」と等しいＡ［１３：１２］に対応する第２の１ｋアドレス空間によってＣＡＭブロック８０２（３）が選択される。メモリ・エレメント１００６（０）および１００６（２）のそれぞれに格納されるブロック・アドレス値は、動作中に選択されないように「２」または「３」の何れかとすることができる。なぜなら、２ｋ−１を超えるアドレス、即ち、「１０」または「１１」と等しいＡ［１３：１２］にそれぞれ対応する第３または第４の１ｋアドレス空間が使用されないからである。表３に、ＣＡＭブロック８０２（０）および８０２（２）に欠陥があり、ＣＡＭブロック８０２（１）および８０２（３）に欠陥がない時の、ブロック・アドレス値および対応するアドレス空間をまとめて示す。
【００６０】
【表３】
2005501369.tif 000005
【００６１】
各メモリ・エレメント１００６は、出力線１００８（０）〜１００８（３）のうちのブロック選択信号ＢＳとして渡される１つを選択するために、ブロック・アドレス値を対応するマルチプレクサ１００４へ供給するのに適切な構造とすることができる。幾つかの実施形態では、メモリ・エレメントを、フリップフロップ、レジスタ、ルックアップテーブル、あるいはＥＰＲＯＭやフラッシュ・メモリなどの不揮発性メモリとすることができる。他の実施形態では、メモリ・エレメント１００６に、１または複数のヒューズを含めて、ブロック・アドレス値を、対応するマルチプレクサ１００４へ供給することができる。
【００６２】
１つの例として、ＣＡＭデバイス８００の一実施形態では、各メモリ・エレメント１００６に、対応するマルチプレクサ１００４へ最初に２進値「１１」を供給するために電圧に結合された２つのヒューズが含まれる。この例では、各マルチプレクサ１００４が、当初は、２進ブロック・アドレス値「１１」に応答してその「３」入力に接続された信号線を選択するので、各マルチプレクサ１００４の「３」入力が、デコード・ロジック１００２から対応する番号の出力線１００８へ接続される。即ち、マルチプレクサ１００４（０）の入力３が信号線１００８（０）に接続され、マルチプレクサ１００４（１）の入力番号３が信号線１００８（１）に接続され、マルチプレクサ１００４（２）の入力番号３が信号線１００８（２）に接続され、マルチプレクサ１００４（３）の入力番号３が信号線１００８（３）に接続される。残りのマルチプレクサ入力０、１、および２は、適切なコンフィギュレーションで線１００８に接続することができる。このようにして、マルチプレクサ１００４（０）は、Ａ［１３：１２］が「００」と等しい時にＢＳ＿０をアサートし、マルチプレクサ１００４（１）は、Ａ［１３：１２］が「０１」と等しい時にＢＳ＿１をアサートし、マルチプレクサ１００４（２）は、Ａ［１３：１２］が「１０」と等しい時にＢＳ＿２をアサートし、マルチプレクサ１００４（３）は、Ａ［１３：１２］が「１１」と等しい時にＢＳ＿３をアサートする。その後、テストの後に、１または複数のＣＡＭブロック８０２に欠陥があることがわかった場合、各メモリ・エレメント１００８のヒューズを選択的に溶断して（とばして）、欠陥のあるＣＡＭブロックから欠陥のないＣＡＭブロック８０２へアドレス空間を変換して、上述の様式で連続的アドレッシングを促進することができる。更に、２つの論理１を一緒にしてＡＮＤをとり、１つの入力としてＡＮＤゲートに供給し、ＡＮＤゲートの他方の入力を、各ＭＵＸによって出力されるそれぞれのＢＳ信号に結合することができる。欠陥のある行が、「１１」以外の値にプログラムされる時、個々のＢＳ信号および対応するブロックがディスエーブルにされる。
【００６３】
欠陥のあるＣＡＭブロックのアドレス空間が欠陥のないＣＡＭブロックに変換される時に読取または書込の動作と、比較動作との間のアドレス一貫性を維持するために、読取または書込の動作中に使用されるアドレス変換情報が、比較動作中の一致するＣＡＭのアドレスまたはインデックスの計算にも使用される。従って、例えば、アドレス空間０〜ｋ−１がＣＡＭブロック８０２（０）から８０２（１）へ変換され、後続の比較動作中にＣＡＭブロック８０２（１）における一致がある場合に、優先順位エンコーダ８０６によって、ＣＡＭブロック８０２（１）からのその一致するインデックスが、アドレス空間ｋ〜２ｋ−１ではなくアドレス空間０〜ｋ−１にあることが保証される。このようにして、読取動作中または書込動作中に促進されるアドレス変換が、後続の比較動作中に反映される。
【００６４】
図９をもう一度参照すると、比較動作中に、ＣＢＵＳに供給されるコンパランド・ワードが、すべてのイネーブルにされた（例えば、欠陥のない）ＣＡＭブロック８０２に格納されたデータと比較される。イネーブルにされたＣＡＭブロック８０２のそれぞれについて、比較動作に応答して一致状態がある場合に、一致フラグ・ロジック８０５によって一致フラグ（ＭＦ＿０からＭＦ＿３）が論理ハイ状態にアサートされ、そのＣＡＭブロック８０２内の優先順位エンコーダ８０４によって、ブロック内の最高優先順位の一致するＣＡＭ行の１２ビット行インデックスＩ（またはアドレス）が出力される。一致がない場合には、一致フラグがアサートされない（即ち、一致フラグ・ロジック８０５によって、ＭＦがロー論理状態にセットされる）。一実施形態では、それぞれの一致フラグ・ロジックに、ＣＡＭブロックがディスエーブルにされる時にプログラムされるプログラマブル・エレメント（例えば、ヒューズまたは他のメモリ・エレメント）が含まれる。ＣＡＭブロック８０２（０）〜８０２（３）からの一致フラグＭＦ＿０〜ＭＦ＿３および行インデックスＩ０〜Ｉ３は、それぞれ、主優先順位エンコーダ８０６へ供給される。主優先順位エンコーダ８０６は、一意のブロック・インデックスを、ＣＡＭブロック８０２（０）〜８０２（３）によって供給される各行インデックスＩに付加し、対応するデバイス・インデックスを形成する。主優先順位エンコーダ８０６は、一致フラグ信号ＭＦ＿０〜ＭＦ＿３を使用して、ＣＡＭブロック８０２（０）〜８０２（３）から最高優先順位のデバイス・インデックスを選択してシステム・インデックスＩ＿ｓｙｓとして出力する。
【００６５】
主優先順位エンコーダ８０６はプログラマブルであり、ＣＡＭブロック８０２（０）〜８０２（３）のためのブロック・インデックスをメモリ（図９には図示せず）に格納する。ブロック・インデックスは、上述の読取動作または書込動作で説明したようにアドレス変換との一貫性を反映、即ち、維持するために、変更またはプログラムされることができる動的な値である。最初は、主優先順位エンコーダは、ＣＡＭブロック８０２（０）に対して「００」のブロック・インデックス、ＣＡＭブロック８０２（１）に対して「０１」のブロック・インデックス、ＣＡＭブロック８０２（２）に対して「１０」のブロック・インデックス、ＣＡＭブロック８０２（３）に対して「１１」のブロック・インデックスを格納する。これらの初期ブロック・インデックスは、ＣＡＭブロック８０２（０）〜８０２（３）のすべてがイネーブルにされる時に使用されるものであり、図１１のアドレス変換ロジック１０００のメモリ・エレメント１００６（１）〜１００６（３）に格納されるブロック・アドレス値をミラーする（映す）ものである。１または複数のＣＡＭブロック８０２が、欠陥があるとわかるか又はディスエーブルにされる場合には、主優先順位エンコーダ８０６に格納されたブロック・インデックスが、読取動作または書込動作中においてアドレス変換を反映するように修正される。例えば、ＣＡＭブロック８０２（０）および８０２（２）がディスエーブルにされ、欠陥のないＣＡＭブロック８０２（１）および８０２（３）のアドレス空間が、それぞれ、アドレス空間０〜ｋ−１およびアドレス空間ｋ〜２ｋ−１に変換される場合、主優先順位エンコーダ８０６は、「００」のブロック・インデックスを行インデックスＩ１に付加して、ＣＡＭブロック８０２（１）のデバイス・インデックスを生成し、「０１」のブロック・インデックスを行インデックスＩ３に付加して、ＣＡＭブロック８０２（３）のデバイス・インデックスを生成する。このようにして、読取／書込動作と比較動作との間のアドレス一貫性が維持される。
【００６６】
図１２に、図９の主優先順位エンコーダ８０６の一実施形態である優先順位デコーダ１２００を示す。優先順位デコーダ１２００には、４つのマルチプレクサ１２０２（０）〜１２０２（３）のチェーン、４つの対応するメモリ・エレメント１２０４（０）〜１２０４（３）、ならびに、インバータ１２０６とＯＲゲート１２０８および１２１０とを含む選択ロジックが含まれる。各メモリ・エレメント１２０４には、対応するＣＡＭブロック８０２の２ビット・ブロック・インデックスが格納される。メモリ・エレメント１２０４は、図１１のメモリ・エレメント１００６と同一とするか、または別々のメモリ・エレメントとすることができる。各マルチプレクサ１２０２には、チェーン内の先行するマルチプレクサ１２０２の出力に結合された第１入力（即ち、「１」入力）、対応するＣＡＭブロック８０２からの最高の優先順位の一致（有る場合）の１２ビット・インデックスＩと対応するメモリ・エレメント１２０４からの２ビット・ブロック・インデックスとの連結を受け取る第２入力（即ち、「０」入力）、次のマルチプレクサ１２０２の入力「１」に結合された出力、およびＣＡＭブロック８０２からの一致情報を受け取る選択端子が含まれる。
【００６７】
１２ビット行インデックスＩと２ビット・ブロック・インデックスとの連結によって、対応するＣＡＭブロック８０２からの最高優先順位の一致がある場合に、その１４ビット・デバイス・インデックスが形成される。第１のマルチプレクサ１２０２（０）の１入力は、デフォルトの２進「０」値を受け取る。ＭＦ＿０は、インバータ１２０６によって反転され、選択信号としてマルチプレクサ１２０２（０）に供給され、選択信号としてマルチプレクサ１２０２（１）に直接に供給される。ＭＦ＿０およびＭＦ＿１が、ＯＲゲート１２０８で組み合わされ、マルチプレクサ１２０２（２）に対する選択信号として供給される。ＭＦ＿２およびＯＲゲート１２０８からの結果（即ち、ＭＦ＿０＋ＭＦ＿１、ここで＋は論理ＯＲ関数を示す）が、ＯＲゲート１２１０で組み合わされ、マルチプレクサ１２０２（３）に対する選択信号として供給される。下記で説明するように、一致フラグＭＦによって、各マルチプレクサ１２０２が、前のＣＡＭブロックからの連結されたデバイス・インデックスを渡すか、または対応するＣＡＭブロックの連結されたデバイス・インデックスを渡すかが制御される。
【００６８】
この例では、ＣＡＭブロック８０２（０）が最高優先順位のブロックであり、ＣＡＭブロック８０２（１）が次に高い優先順位のブロックであり、以下同様に続く。各マルチプレクサ段について、対応するＣＡＭブロック８０２で一致がある場合に、行インデックスＩおよびブロック・インデックスが、前のまたはより高い優先順位のＣＡＭブロック８０２で一致状態がない場合に、次のステージ（段）へ転送される。より高い優先順位のＣＡＭブロック８０２で一致状態がある場合、より高い優先順位のＣＡＭブロック８０２からのブロック・インデックスと行インデックスＩとを足したものが次のステージへ転送される。
【００６９】
例えば、第１のＣＡＭブロック８０２（０）に一致状態がある場合に、ＣＡＭブロック８０２（０）の優先順位エンコーダ８０４によって、その最高の優先順位の一致の１２ビット行インデックスＩ０がマルチプレクサ１２０２（０）の入力０へ供給され、それがメモリ・エレメント１２０４（０）からのブロック・インデックスと連結されて、ＣＡＭブロック８０２（０）のデバイス・インデックスが生成される。一致フラグＭＦ＿０が、一致状態を示すために論理ハイにアサートされる。これに応答して、インバータ１０６によって、論理ローまたは「０」の選択信号がマルチプレクサ１２０２（０）へ供給され、マルチプレクサ１２０２（０）は、ＣＡＭブロック８０２（０）からのデバイス・インデックスを次のマルチプレクサ１２０４（１）へ転送する。論理ハイのＭＦ＿０信号によって、マルチプレクサ１２０４（１）が入力１を選択し、従って、ＣＡＭブロック８０２（０）からのデバイス・インデックスを次のマルチプレクサ１２０２（２）へ転送する。ＭＦ＿０は、ＯＲゲート１２０８および１２１０を介してリプルして、マルチプレクサ１２０２（２）および１２０２（３）に、Ｉ＿ｓｙｓとしてＣＡＭブロック８０２（０）からのデバイス・インデックスを出力させる。
【００７０】
対応するメモリ・エレメント１００６（０）〜１００６（３）およびメモリ・エレメント１２０４（０）〜１２０４（３）で同等の値を維持することによって、読取動作または書込動作と比較動作との間のアドレッシング一貫性が保証される。例えば、すべてのＣＡＭブロック８０２（０）〜８０２（３）が欠陥がないか又はイネーブルにされる場合の一実施形態では、メモリ・エレメント１２０４（０）〜１２０４（３）に、それぞれ、値「００」、「０１」、「１０」、および「１１」が格納される。このようにして、「００」が行インデックスＩ０に付加され、その結果、第１の１ｋアドレスが第１のブロック８０２（０）にマッピングされ、「０１」が行インデックスＩ１に付加され、その結果、第２の１ｋアドレスが第２のブロック８０２（１）にマッピングされ、「１０」が行インデックスＩ２に付加され、その結果、第３の１ｋアドレスが第３のブロック８０２（２）にマッピングされ、「１１」がブロック８０２（３）からの行インデックスＩ３に付加され、その結果、第４の１ｋアドレスが第４のブロック８０２（３）にマッピングされる。
【００７１】
メモリ・エレメント１２０４（０）〜１２０４（３）に格納されるブロック・インデックスは、１または複数のＣＡＭブロック８０２が、アドレッシング一貫性を維持するために変換される時に、変更することができる。例えば、ＣＡＭブロック８０２（０）に欠陥がある場合の一実施形態では、メモリ・エレメント１００６（１）、１００６（２）、および１００６（３）に、それぞれ、ブロック・アドレス値またはその２進数の同等物「０」、「１」、および「２」をセットすることによって、アドレス変換ロジック１０００（図１１）に関して上述したように、３ｋＣＡＭアレイとして動作するようにＣＡＭブロック８０２（１）〜８０２（３）をコンフィギュレーションすることができる。これによって、ＣＡＭブロック８０２（１）が、最高優先順位のアドレス空間、即ち、アドレス０〜ｋ−１を有するようにコンフィギュレーションされ、ＣＡＭブロック８０２（２）が次に高い優先順位のアドレス空間、即ち、アドレスｋ〜２ｋ−１を有するようにコンフィギュレーションされ、ＣＡＭブロック８０２（３）が最低優先順位のアドレス空間、即ち、アドレス２ｋ〜２ｋ−１を有するようにコンフィギュレーションされる。
【００７２】
本実施形態によれば、メモリ・エレメント１２０４（０）〜１２０４（３）に格納されるブロック・インデックスは、アドレス変換ロジック１０００で促進されるアドレス変換を反映するように変更される。ＣＡＭブロック８０２（０）がディスエーブルにされる（従って、アドレス空間を必要としない）ので、残りのイネーブルにされるＣＡＭブロック８０２（１）〜８０２（３）のブロック・インデックスを変更して、ＣＡＭデバイス８００のブロック優先順位を再割り当てすることができる。例えば、メモリ・エレメント１２０４（１）に格納されるブロック・インデックスに「００」をセットし、それにより、最高優先順位のＣＡＭブロック８０２（１）からの行インデックスＩ１と連結される時に、結果的なデバイス・インデックスが最高優先順位のアドレス空間、即ち、アドレス０からｋ−１に対応するようにできる。同様に、メモリ・エレメント１２０４（２）および１２０４（３）に格納されるブロック・インデックスを、それぞれ、「０１」および「１０」に変更して、それぞれ、アドレス空間ｋ〜２ｋ−１および２ｋ〜３ｋ−１を反映することができる。この実施形態では、３ｋを超えるアドレスが使用されないので、メモリ・エレメント１２０４（０）に格納されるブロック・インデックス（欠陥があるＣＡＭブロック８０２（０）に対応する）を「１１」にセットして、ディスエーブルにされたＣＡＭブロック８０２（０）がアドレッシングされないようにすることができる。ディスエーブルにされたＣＡＭブロックに対する一致フラグ信号がロー論理状態にセットされることに留意されたい。
【００７３】
行内コンフィギュレーション可能性を有するＣＡＭデバイス
行内コンフィギュレーション可能性を有するＣＡＭシステムを、図１３から図５８を参照して説明する。行内コンフィギュレーション可能性によって、単一のＣＡＭアレイを、多数の異なる幅および深さのコンフィギュレーションのうちの１つで動作するようにコンフィギュレーションできるようになる。例えば、各行がＷ個のＣＡＭセルのＺ個の行セグメントを有するＹ行のＣＡＭセルを有するＣＡＭアレイを、ｎ個の異なるＺＹ／ｎ深さおよびｎＷ幅のコンフィギュレーションにコンフィギュレーションすることができ、ここで、ｎは１からＺまでの整数である。例えば、このＣＡＭアレイを、ｎ＝１の時にＷ個セルのＺＹ行としてコンフィギュレーションでき、ｎ＝２の時に２Ｗ個セルのＺＹ／２行としてコンフィギュレーションでき、以下同様にして、ｎ＝Ｚの時のＺＷ個セルのＹ行までコンフィギュレーションにすることができる。ユーザは、ＣＡＭシステムへ特定のコンフィギュレーション情報をロードすることによって、コンフィギュレーションの１つを選択またはプログラムすることができる。この単一のＣＡＭシステムをコンフィギュレーションして、多数の異なる所望されるテーブル・コンフィギュレーションを保存し、維持することができる。また、ＣＡＭシステムを使用して、異なるサイズの複数のテーブルを保存し、維持することもできる。例えば、ＣＡＭアレイの第１部分を、その部分の各行が第１の数の行セグメントを有し、ＣＡＭアレイの第２部分を、その部分の各行が異なる数の行セグメントを有するようにコンフィギュレーションすることができる。
【００７４】
図１３は、本発明によるＣＡＭシステム１１００の一実施形態である。ＣＡＭシステム１１００にはＣＡＭアレイ１１０２が含まれ、ＣＡＭアレイ１１０２はＣＡＭセルのＹ行１１２２（０）〜１１２２（Ｙ−１）を含み、各行はそれぞれＷ個のＣＡＭセルのＺ個の行セグメントＳ１〜ＳＺにそれぞれがセグメント化されるものであり、ここでＷ、Ｙ、およびＺは任意の整数である。Ｗ個のＣＡＭセルは、２値および３値のＣＡＭセルを含む任意のタイプのＣＡＭセルとすることができる。１または複数の行セグメントに、異なる数のＣＡＭセルを含めることもできる。
【００７５】
ＣＡＭアレイ１１０２を、ｎ個の異なるＺＹ／ｎ幅およびｎＷ深さのコンフィギュレーションにコンフィギュレーションすることができ、ここで、ｎは１からＺの整数である。一実施形態では、Ｙ＝１０２４（１ｋ）行、Ｚ＝４セグメント、Ｗ＝７２セル／セグメントである。Ｗ、Ｙ、およびＺのこれらの値は、例示のみの目的で、本明細書全体を通じて使用される。１例として、このＣＡＭアレイは、３つの異なるコンフィギュレーション、即ち、（１）１ｋ×２８８、（２）２ｋ×１４４、および（３）４ｋ×７２で動作するようにコンフィギュレーションすることができ、従って、単一のＣＡＭアレイに、異なる動作モードのそれぞれで異なるテーブル・サイズを格納し維持することができる。
【００７６】
他の実施形態について、ＣＡＭアレイを、行ごとを基礎にまたはセクションごとを基礎にコンフィギュレーションして、ＣＡＭアレイの１または複数の行にわたる、×７２ビット、×１４４ビット、または×２８８ビットのデータ・ワードを格納することができる。例えば、ＣＡＭアレイの第１の半分を、５１２×２８８としてコンフィギュレーションし、次の４分の１を５１２×１４４としてコンフィギュレーションし、最後の４分の１を１ｋ×７２としてコンフィギュレーションすることができる。この柔軟性によって、ＣＡＭシステムに、異なるサイズの複数のテーブルを格納し維持することができるようになる。
【００７７】
コンフィギュレーション情報ＣＦＧを使用して、ＣＡＭシステム１１００をプログラムして、複数のアレイコンフィギュレーションの１つでＣＡＭアレイ１１０２を動作させる。コンフィギュレーション情報には、ＣＡＭアレイおよびＣＡＭシステムの動作コンフィギュレーションを示す１または複数の信号が含まれる。例えば、別々のコンフィギュレーションまたは制御信号を、システムの各コンフィギュレーションに関連付けることができる。コンフィギュレーション情報は、コンフィギュレーション・レジスタ１１１８に格納することができ、その後、バス１１２０を介して、アドレス・ロジック１１０４、優先順位エンコーダ・ロジック１１１２、一致フラグ・ロジック１１１４、および／または複数一致フラグ・ロジック１１１６へ供給することができる。または、コンフィギュレーション・レジスタ１１１８を省略し、コンフィギュレーション情報を、１または複数のさまざまな回路ブロックへ直接に供給することができる。別の実施形態については、コンフィギュレーション情報を、命令バスＩＢＵＳ上の読取命令、書込命令、または比較命令の一部として命令デコーダ１１０６へ供給することができる。
【００７８】
命令デコーダ１１０６によって、命令バスＩＢＵＳ上で供給されるさまざまな命令がデコードされる。命令には、ＣＡＭアレイの１または複数の行セグメントにデータを書き込む命令、ＣＡＭアレイの１または複数の行セグメントからデータを読み取る命令、ＣＡＭアレイの１または複数の行セグメントとコンパランド・データとを比較する命令を含めることができる。コンパランド・データは、コンパランド・バスＣＢＵＳへ供給することができ、コンパランド・レジスタ１１０８に格納するか、またはＣＡＭアレイ１１０２へ直接に供給することができる。ＣＡＭシステムには、ＣＡＭアレイ１１０２へ供給されるコンパランド・データに対する１または複数のグローバル・マスク・レジスタ（図示せず）も含めることができる。
【００７９】
命令デコーダは、ＣＡＭシステムが動作の１つを実行する時に制御を行うように、さまざまな制御信号をアドレス・ロジック、読取／書込回路、およびコンパランド・レジスタへ供給する。更に、命令デコーダによって、１または複数の制御信号が、ＣＡＭアレイ１１０２、優先順位エンコーダ・ロジック１１１２、一致フラグ・ロジック１１１４、複数一致フラグ・ロジック１１１６、およびコンフィギュレーション・レジスタ１１１８に供給されて、これらの回路が、関連する機能を適当な時に実行するようにイネーブルにされる。代替の実施形態では、命令デコーダ１１０６を省略することができ、さまざまな読取、書込、および比較の制御信号を、１または複数の回路ブロックへ直接に供給することができる。
【００８０】
データの読取りおよび書込み
データを、アドレス・ロジック１１０４および読取／書込（データ・アクセス）回路１１１０を使用して、さまざまな行セグメントと通信することができる。アドレス・ロジック１１０４は、コンフィギュレーション情報およびアドレス・バスＡＤＤＲで供給される入力アドレスに応答して、１つの行セグメントまたは行セグメントのグループを一意にアドレッシングする。アドレス・ロジックによって、入力アドレスがデコードされ、デコードされた行アドレスおよびデコードされたセグメント・アドレスが出力される。デコードされた行アドレスが、ワード線ＷＬ（０）〜ＷＬ（Ｙ−１）を介して、ＣＡＭセルの行の１つをイネーブルにし、そして、デコードされたセグメント・アドレスが、バス１１２４上で読取／書込回路へ供給されて、データ・バスＤＢＵＳとデータを通信するために１または複数の行セグメントを選択的にイネーブルにする。アドレス・ロジック１１０４に供給されるコンフィギュレーション情報によって、読取／書込回路に供給されるデコードされたセグメント・アドレスが、１つの行セグメントがデータ・バスと通信することをイネーブルにするか、または行セグメントのグループがデータ・バスと通信することをイネーブルにするかが決定される。例えば、ＣＡＭアレイが、ＺＹ（行）およびＷ（セル）のモード（例えば４ｋ×７２）でコンフィギュレーションされる時に、デコードされたセグメント・アドレスのそれぞれによって、選択された行の１つの行セグメントが一意にアドレッシングされ、データを特定の行セグメントに書き込む又はそこから読み取ることができるようにするが、それは、対応するワード線をアサートし、行セグメントが読取／書込回路１１１０を介してＤＢＵＳと通信するようにイネーブルにすることによってなされる。ＣＡＭアレイが他のコンフィギュレーションにコンフィギュレーションされる時には、デコードされるセグメント・アドレスのそれぞれによって、行セグメントのグループが一意にアドレッシングされる。データを、行セグメントのグループ全体と同時に通信することができ、あるいは、データを、アドレッシングされるグループ内のセグメントごとを基礎として通信することができる。
【００８１】
図１４に、図１３のアドレス・ロジック１１０４の一実施形態であるアドレス・ロジック１２８０を示す。アドレス・ロジック１２８０には、行デコーダ１２８２、行アドレス（ＲＡ）選択ロジック１２８３、セグメント・デコーダ１２８４、セグメント・アドレス（ＳＡ）選択ロジック１２８６が含まれる。行デコーダ１２８２によって、行アドレスＲＡが受け取られてデコードされ、ワード線ＷＬ（０）〜ＷＬ（Ｙ−１）の１つが選択されてイネーブルにされる。ワード線は、それぞれ、対応する行１１２２（０）〜１１２２（Ｙ−１）の１つの行の行セグメントのすべてに接続される。ワード線がイネーブルにされると、データを、従来の様式でＣＡＭセルに書き込むこと又はそれから読み取ることができる。代替の実施形態では、各行セグメントに、それ自体のワード線を接続することができる。コンフィギュレーション情報に応答して、ＲＡ選択ロジック１２８３は、ＡＤＤＲ上の入力アドレスの何れのアドレス信号がＲＡとして行デコーダへ供給されるかを決定する。
【００８２】
セグメント・デコーダ１２８４によって、セグメント・デコーダ入力アドレスＳＤＡが受け取られ、デコードされて、セグメント・イネーブル線ＳＥＮ１〜ＳＥＮＺの１つが選択され、イネーブルにされる。各セグメント・イネーブル線によって、対応する読取／書込回路ＲＷ１〜ＲＷＺが選択的にイネーブルにされて、ＤＢＵＳとＣＡＭセルの選択された行の対応する行セグメントＳ１〜ＳＺとの間で、それぞれ、データが通信される。読取／書込回路のそれぞれに、センス・アンプおよびデータ・ドライバなどの通常の読取回路および書込回路が含まれる。
【００８３】
セグメント・デコーダ１２８４によって、ＳＡ選択ロジック１２８６からＳＤＡが受け取られる。バス１１２０上のコンフィギュレーション情報に応答して、ＳＡ選択ロジック１２８６は、アドレス・バスＡＤＤＲに供給されるセグメント・アドレスＳＡ、セグメント選択信号ＳＳＥＬ、またはこの両方の組合せから、ＳＤＡを決定する。このセグメント・アドレスによって、ＣＡＭセルの選択された行の行セグメントまたは行セグメントのグループのアドレスが一意に識別される。セグメント選択信号を使用して、アドレッシングされた行セグメント・グループ内の行セグメントの１つを一意にアドレッシングし、アクセスすることができる。
【００８４】
アドレス・ロジック１２８０の動作を、更に、図１５に示す。図１５では、ＣＡＭアレイが、Ｙ＝１０２４個の行１１２２（０）〜１１２２（１０２３）、行ごとにＺ＝４個の行セグメントＳ１からＳ４を有し、各行セグメントが、Ｗ＝７２個のＣＡＭセルを有する。他のコンフィギュレーションを使用することもできる。ＣＡＭアレイは、コンフィギュレーション信号ＳＺ７２、ＳＺ１４４、およびＳＺ２８８に応答して、３つの異なるモードで動作するようにコンフィギュレーションすることができる。ＳＺ７２がイネーブルにされる時にはＣＡＭアレイは４ｋ×７２モードで動作し、ＳＺ１４４がイネーブルにされる時にはＣＡＭアレイは２ｋ×１４４モードで動作し、ＳＺ２８８がイネーブルにされる時にはＣＡＭアレイは１ｋ×２８８モードで動作する。この例で使用され生成される入力アドレス信号ＲＡ、ＳＡ、ＳＤＡ、およびＳＥＮ１〜ＳＥＮ４をまとめたものを、図１６および図１７の真理値表に示す。
【００８５】
アドレス・バス上の入力アドレスは１２ビット、Ａ１１〜Ａ０、を有する。４ｋ×７２モードでは、１２ビットＡ１１〜Ａ０のすべてが、ＣＡＭアレイ１１０２内の４ｋ行セグメントのそれぞれを一意にアドレッシングするのに使用される。ビットＡ１１からＡ２は、ＲＡ選択ロジック１２８３によって選択され、行デコーダ１２８２のための行アドレスとして、ＣＡＭ行の１つを選択するのに使用される。ビットＡ１からＡ０は、ＳＡ選択ロジック１２８６へ供給され、選択されたセル行の行セグメントの１つを選択するのに使用される。このモードでは、ＳＺ７２がイネーブルにされ、ＳＡ選択ロジック１２８６によって、セグメント・デコーダ１２８４へ、ＳＤ１およびＳＤ０としてＡ１およびＡ０がそれぞれ供給される。Ａ１およびＡ０は、セグメント・デコーダ１２８４によってデコードされて、ＳＥＮ１〜ＳＥＮ４が生成され、通信のために選択されたセル行の特定の行セグメントが選択される。
【００８６】
２ｋ×１４４モードでは、１１ビット、Ａ１０〜Ａ０、が、ＣＡＭアレイ１１０２の行セグメントの２ｋのグループのそれぞれを一意にアドレッシングするのに使用される。行セグメントの各グループには、２つの行セグメントが含まれる。最上位ビットＡ１１は、行セグメントのグループのアドレッシングにかかわらない。ビットＡ１０〜Ａ１は、ＲＡ選択ロジック１２８３によって行アドレスとして選択され、行デコーダ１２８２によって、ＣＡＭ行の１つを選択するのに使用される。ビットＡ０は、ＳＡ選択ロジック１２８６へ供給され、セルの選択された行の行セグメントのグループの１つを選択するのに使用される。このモードでは、ＳＺ１４４がイネーブルにされ、ＳＡ選択ロジック１２８６によって、Ａ０がＳＤ１としてセグメント・デコーダ１２８４へ供給され、ＳＳＥＬ０がＳＤ０としてセグメント・デコーダ１２８４へ供給される。Ａ０およびＳＳＥＬ０はセグメント・デコーダ１２８４によってデコードされ、ＳＥＮ１〜ＳＥＮ４が生成され、そして、Ａ０に応答して、セルの選択された行の行セグメントの特定のグループが通信のために選択され、ＳＳＥＬ０に応答して、選択されたグループの特定の行セグメントが通信のために選択される。従って、００００００００００００１という入力アドレスが、それぞれ、行１１２２（０）の行セグメントＳ３〜Ｓ４のグループをアドレッシングするために、Ａ１１〜Ａ０として供給される場合、Ａ１０〜Ａ１によって行１１２２（０）がアドレッシングされ、Ａ０によって行セグメントＳ３がアドレッシングされ、ＳＳＥＬ０を行セグメントＳ４を選択するのに使用することができる。
【００８７】
１ｋ×２８８モードでは、１０ビット、Ａ９〜Ａ０、が、ＣＡＭアレイ１１０２の行セグメントの１ｋのグループのそれぞれを一意にアドレッシングするのに使用される。行セグメントのグループのそれぞれに、４つの行セグメント（即ち、行全体）が含まれる。上位ビットＡ１１〜Ａ１０は、行セグメントのグループのアドレッシングにかかわらない。ビットＡ９〜Ａ０は、ＲＡ選択ロジック１２８３によって行アドレスとして選択され、行デコーダ１２８２によって、ＣＡＭ行の１つを選択するのに使用される。このモードでは、ＳＺ２８８がイネーブルにされ、ＳＡ選択ロジック１２８６によって、ＳＳＥＬ１およびＳＳＥＬ０がＳＤ１およびＳＤ０としてそれぞれセグメント・デコーダ１２８４へ供給される。ＳＳＥＬ１およびＳＳＥＬ０はセグメント・デコーダ１２８４によってデコードされて、ＳＥＮ１〜ＳＥＮ４が生成され、セルの選択された行の特定の行セグメントが通信のために選択される。従って、００００００００００００１という入力アドレスが、それぞれ、行１１２２（１）の行セグメントＳ１〜Ｓ４のグループをアドレッシングするために、Ａ１１〜Ａ０として供給される場合、Ａ９〜Ａ０によって行１１２２（１）がアドレッシングされ、ＳＳＥＬ１およびＳＳＥＬ０を、行セグメントＳ１〜Ｓ４のそれぞれを選択するのに使用することができる。
【００８８】
図１８Ａに、図１５のＳＡ選択ロジック１２８６の一実施形態であるマルチプレクサ１６００を示す。他の実施形態をＳＡ選択ロジック１２８６に使用することもできる。マルチプレクサ１６００には、Ａ１およびＡ０、Ａ０およびＳＳＥＬ０、ならびにＳＳＥＬ１およびＳＳＥＬ０をそれぞれに受け取る３つの入力ポート、ＩＰ１、ＩＰ２、およびＩＰ３が含まれる。ＳＺ７２がイネーブルにされる時、Ａ１およびＡ０が、ＳＤＡ１およびＳＤＡ０として出力ポートへ供給される。ＳＺ１４４がイネーブルにされる時、Ａ０およびＳＳＥＬ０が、ＳＤＡ１およびＳＤＡ０として出力ポートへ供給される。最後に、ＳＺ２８８がイネーブルにされる時、ＳＳＥＬ１およびＳＳＥＬ０が、ＳＤＡ１およびＳＤＡ０として出力ポートへ供給される。他の実施形態では、ＳＺ７２でＡ１およびＡ０の論理ＡＮＤがとられ、ＳＺ１４４でＡ０およびＳＳＥＬ０の論理ＡＮＤがとられ、ＳＺ２８８でＳＳＥＬ１およびＳＳＥＬ０の論理ＡＮＤがとられ、ＡＮＤ関数の結果が、一緒に論理ＯＲをとられてＳＥＮ１〜ＳＥＮ４が供給される、ＳＡ選択ロジック１２８６を実施することができる。
【００８９】
図１８Ｂに、図１５のＲＡ選択ロジック１２８３の一実施形態であるマルチプレクサ１６０１を示す。他の実施形態を、ＲＡ選択ロジック１２８６に使用することもできる。マルチプレクサ１６０１には、Ａ１１〜Ａ２、Ａ１０〜Ａ１、およびＡ９〜Ａ０をそれぞれに受け取る３つの入力ＩＰ１、ＩＰ２、およびＩＰ３が含まれる。ＳＺ７２がイネーブルにされる時、Ａ１１〜Ａ２がＲＡ９〜ＲＡ０として出力ポートに供給される。ＳＺ１４４がイネーブルにされる時、Ａ１０〜Ａ１がＲＡ９〜ＲＡ０として出力ポートに供給される。最後に、ＳＺ２８８がイネーブルにされる時、Ａ９〜Ａ０がＲＡ９〜ＲＡ０として出力ポートに供給される。他の実施形態では、ＳＺ７２でＡ１１〜Ａ２のそれぞれが論理ＡＮＤを取られ、ＳＺ１４４でＡ１０〜Ａ１のそれぞれが論理ＡＮＤをとられ、ＳＺ２８８でＡ９〜Ａ０のそれぞれが論理ＡＮＤを取られ、ＡＮＤ関数の結果が一緒に論理ＯＲをとられてＲＡ９〜ＲＡ０が供給されるように、ＲＡ選択ロジック１２８３を実施することができる。
【００９０】
図１５によって、特定の数の可能なＣＡＭアレイのコンフィギュレーションのためのデコーダ１２８０の動作の特定の例が開示された。図１５の例で使用される方法は、それぞれが任意の数のＣＡＭセルを有する任意の数の行セグメントを有する任意のサイズのＣＡＭアレイの任意の数のコンフィギュレーションに対処するように、簡単に拡張することができる。例えば、より多数の行セグメントを有するＣＡＭアレイには、ＳＡ選択ロジック１２８６（および／またはＲＡ選択ロジック１２８３）へより多数のアドレス・ビット（ＳＡ）、選択信号、およびコンフィギュレーション信号を供給し、ＳＤＡビットの数、セグメント・デコーダ１２８４のサイズ、およびセグメント・イネーブル信号の数を増やすことによって対処することができる。一般に、行アドレスは、Ｙ個のワード線の１つを選択するためにｌｏｇ2Ｙビットを有し、ＳＡアドレス、ＳＳＥＬ、およびＳＤＡのそれぞれは、Ｚ個のセグメント・イネーブル線の１つをアドレッシングするためにｌｏｇ2Ｚまでのビットを有する。
【００９１】
図１９に、図１３のアドレス・ロジック１１０４の別の実施形態であるアドレス・ロジック１７００を示す。アドレス・ロジック１７００には、行デコーダ１７０２、セグメント・デコーダ１７０４（１）〜１７０４（ｘ）、およびマルチプレクサ１７０６が含まれる。行デコーダ１７０２によって行アドレスＲＡが受け取られてデコードされて、ワード線ＷＬ（０）〜ＷＬ（Ｙ−１）の１つが選択されイネーブルにされる。セグメント・デコーダ１７０４（１）〜１７０４（ｘ）のそれぞれによって、対応するセグメント・アドレスＳＡ１〜ＳＡｘが受け取られてデコードされて、１または複数のセグメント・イネーブル線ＳＥＮ１〜ＳＥＮＺが選択されてイネーブルにされる。デコードされたセグメント・アドレスは、マルチプレクサ１７０６の入力ポートＩＰ１〜ＩＰ（ｘ−１）へ供給され、バス１１２０上のコンフィギュレーション情報に応答してＳＥＮ１〜ＳＥＮＺへ選択的に供給される。最後の入力ポートＩＰｘは、その入力のすべてを論理１状態に接続される。
【００９２】
各セグメント・アドレスＳＡ１〜ＳＡｘは、アドレス・バスＡＤＤＲ上の入力アドレスのアドレス・ビットの数が異なる。例えば、ＺＹ×Ｗモードでは、行アドレスＲＡによって、ｌｏｇ2Ｙビットの最上位アドレス・ビットが使用されて、ＣＡＭセルの行の１つがアドレッシングされ、ＳＡ１には、セグメント・デコーダ１７０４（１）によってＺ個の信号が生成されるように、ｌｏｇ2Ｚビットの最下位アドレス・ビットが含まれる。マルチプレクサ１７０６によって、ＺＹ×Ｗモードを示すコンフィギュレーション情報に応答して、Ｚ個の信号がＳＥＮ１〜ＳＥＮＺとして供給される。ＡＤＤＲ上の入力アドレスのアドレス・ビットの総数がｌｏｇ2Ｙとｌｏｇ2Ｚの合計と等しいことに留意されたい。
【００９３】
ＺＹ／２×２Ｗモードでは、行セグメントの各対が、一意にアドレス可能である。このモードでは、行アドレスＲＡによって、ＣＡＭセルの行の１つをアドレッシングするために、ｌｏｇ2Ｙビットの最上位アドレス・ビットが使用される。入力アドレス・ビット０は無視され（例えば、０論理状態にセットされる）、最下位アドレス・ビットの残りがＳＡ２（即ちｌｏｇ2（Ｚ／２）ビット）に対して使用され、セグメント・デコーダ１７０４（２）がＺ／２個の信号を生成するようにする。Ｚ／２個の信号は、入力ポートＩＰ２他の全ての入力に使用される。デコードされた信号のそれぞれが複製されて、図１９に示された入力ポートＩＰ２に対する他の入力が供給される。信号は、セグメント・イネーブル信号の対を同時にイネーブルにし、一意にアドレス可能な行セグメントの対とデータを同時に通信するために、複製される。マルチプレクサ１７０６は、ＺＹ／２×２Ｗモードを示すコンフィギュレーション情報に応答して、Ｚ個の信号をＳＥＮ１〜ＳＥＮＺとして供給する。
【００９４】
追加のコンフィギュレーションに関連するそれぞれの連続するＳＡは、ＳＡｘによってモードＺＹ／（Ｚ−１）×（Ｚ−１）Ｗに関連する最後のセグメント・デコーダ１７０４（ｘ）へ単一のアドレス・ビットが供給されるまで、１つ少ないアドレス・ビットを有する。このモードでは、セグメント・デコーダによって２つのデコードされた信号が供給される。第１のデコードされた信号は、選択された行に対してＳＥＮ１〜ＳＥＮ（Ｚ／２）を同時にイネーブルにするための入力ポートＩＰ（ｘ−１）への最初のＺ／２個の入力のために複製され、第２のデコードされた信号は、選択された行に対してＳＥＮ（Ｚ／２）〜ＳＥＮＺを同時にイネーブルにするための入力ポートＩＰ（ｘ−１）への第２のＺ／２個の入力のために複製される。最後の入力ポートＩＰｘは、Ｙ×ＺＷモードに関連し、すべての入力を論理ハイ状態に結び付けられて、すべてのセグメント・イネーブル信号をイネーブルにし、このモードの行セグメントの行全体をアドレッシングする。
【００９５】
アドレス・ロジック１７００の動作を更に図２０に示す。図２０では、ＣＡＭアレイがＹ＝１０２４個の行１１２２（０）〜１１２２（１０２３）、行ごとにＺ＝４個の行セグメントＳ１〜Ｓ４を有し、各行セグメントが、Ｗ＝７２個のＣＡＭセルを有する。他のコンフィギュレーションを使用することもできる。ＣＡＭアレイを、コンフィギュレーション信号ＳＺ７２、ＳＺ１４４、ＳＺ２８８に応答して、３つの異なるモードで動作するようにコンフィギュレーションすることができる。
【００９６】
４ｋ×７２モードでは、アドレス・バスＡＤＤＲ上の１２ビット、Ａ１１〜Ａ０、のすべてが、ＣＡＭアレイ１１０２の４ｋ行セグメントのそれぞれを一意にアドレッシングするのに使用される。最上位１０ビット、Ａ１１〜Ａ２は、行デコーダ１７０２のための行アドレスとして使用されてＣＡＭ行の１つが選択され、ビットＡ１〜Ａ０は、２対４セグメント・デコーダ１７０４（１）によってデコードされて、選択されたセル行の行セグメントの１つが選択される。このモードでは、ＳＺ７２がイネーブルにされ、マルチプレクサ１７０６によって、セグメント・デコーダ１７０４（１）の出力がセグメント・イネーブル線ＳＥＮ１〜ＳＥＮ４へ供給される。
【００９７】
２ｋ×１４４モードでは、１１ビット、Ａ１１〜Ａ１が、ＣＡＭアレイ１１０２の行セグメントの２ｋのグループのそれぞれを一意にアドレッシングするのに使用される。行セグメントの各グループに２つの行セグメントが含まれる。最上位の１０ビット、Ａ１１〜Ａ２は行デコーダ１７０２のための行アドレスとして使用されてＣＡＭ行の１つが選択され、ビットＡ１は１対２セグメント・デコーダ１７０４（１）によってデコードされて、選択されたセル行の行セグメントの１対が選択される。最下位ビットＡ０は、行セグメントのグループのアドレッシングにかかわらない。このモードでは、ＳＺ１４４がイネーブルにされ、マルチプレクサ１７０６によって、入力ポートＩＰ２の入力信号が、セグメント・イネーブル線ＳＥＮ１〜ＳＥＮ４へ供給される。従って、００００００００００００１という入力アドレスが、それぞれ、Ａ１１〜Ａ０として供給されて、行１１２２（０）の行セグメントＳ３〜Ｓ４のグループがアドレッシングされる場合、Ａ１１〜Ａ２によって行１１２２（０）がアドレッシングされ、ＳＥＮ３およびＳＥＮ４によって行セグメントＳ３およびＳ４との同時の通信がイネーブルにされる。
【００９８】
１ｋ×２８８モードでは、１０ビットＡ１１〜Ａ２が、ＣＡＭアレイ１１０２の行セグメントの１ｋのグループのそれぞれを一意にアドレッシングするのに使用される。行セグメントの各グループに、４つの行セグメント（即ち、行全体）が含まれる。最上位１０ビットＡ１１〜Ａ２が、行デコーダ１７０２のための行アドレスとして使用されて、ＣＡＭ行の１つが選択される。ＳＺ２８８に応答して、マルチプレクサ１７０６によって、入力ポートＩＰ３のすべて論理１の状態がＳＥＮ１〜ＳＥＮ４に供給される。これによって、選択された行全体を、同時にデータ・バスと通信することができる。最下位ビットＡ１およびＡ０は、行セグメントのグループのアドレッシングにかかわらない。
【００９９】
コンパランド・データのロード
再び図１３を参照する。コンパランド・データを、アレイ１１０２内の１または複数の行セグメントに格納されたデータと比較することができる。コンパランド・データは、コンパランド・バスＣＢＵＳに供給することができ、コンパランド・レジスタ１１０８に格納するか、又は比較のためにアレイ１１０２へ直接に供給することができる。
【０１００】
一実施形態について、ＣＢＵＳの幅は、ＣＡＭセルの１行のＣＡＭセルの総数（即ちＺＷビット）と同じである。システムがＺＹ×Ｗモードでコンフィギュレーションされる時、コンパランド・データのＺ個のコピーを、各行１１２２のＺ個のセグメントのそれぞれとの比較のために、コンパランド・レジスタにロードすることができる。同様に、ＺＹ／２×２Ｗモードでは、コンパランド・データのＺ／２個のコピーを、コンパランド・レジスタにロードすることができる。この方法は、Ｙ×ＺＷモードで、コンパランド・データが行１１２２全体の幅（同一のビット数）になるまで使用することができる。
【０１０１】
他の実施形態では、ＣＢＵＳが、行１１２２の総ビット数より少ないビット数を有することができる。１つの例として、ＣＢＵＳの幅を、行セグメント内のＣＡＭセルの数（即ち、Ｗビット）と同一にすることができ、コンパランド・データを、比較のために行セグメントＳ１〜ＳＺのそれぞれへ順次に連続して供給することができる。コンパランド・レジスタを、図２１に示されるように、それぞれが行１１２２の各行のＺ個の行セグメントの１つに対応するＺ個のセグメントに、セグメント化することができる。コンパランド・データを、イネーブル信号ＣＥＮ１〜ＣＥＮＺによってそれぞれコンパランド・レジスタのセグメントＣ１〜ＣＺのそれぞれに別々にロードすることができる。選択ロジック１９０２は、コンパランドセグメント選択信号ＣＳＳＥＬおよびコンフィギュレーション情報に応答して、イネーブル信号を生成する。ＣＳＳＥＬ信号は、比較命令に応答して命令デコーダ１１０６によって生成することができ、あるいは、ユーザによって別に生成することができる。システムがＺＹ×Ｗモードでコンフィギュレーションされる時、ＣＳＳＥＬ信号によって、選択ロジック１９０２がすべてのＣＥＮ信号をイネーブルにし、同じコンパランド・データがＣ１〜ＣＺのすべてに同時に書き込まれるようにする。ＺＹ／２×２Ｗモード（即ち、グループごとに２つの行セグメント）では、ＣＳＳＥＬ信号によって、選択ロジック１９０２が、奇数のＣＥＮ信号、ＣＥＮ１、ＣＥＮ３などをイネーブルにし、コンパランド・データの同じ第１部分が、第１行セグメントＳ１、Ｓ３などに関連する第１のコンパランドセグメントに書き込まれる。後続のサイクルで、ＣＳＳＥＬ信号によって、選択ロジック１９０２が、偶数のＣＥＮ信号、ＣＥＮ２、ＣＥＮ４などをイネーブルにし、コンパランド・データの同じ第２部分が、第２行セグメントＳ２、Ｓ４などに関連する第２のコンパランドセグメントに書き込まれる。コンパランド・データの第１部分および第２部分が一緒になって、コンパランド・データ全体（２Ｗ）が形成される。この方法は、１１２２個のＣＥＮ信号が順次イネーブルにされて、ＺＷ個のコンパランド・データの各部分（Ｗ）がＺ個のコンパランド・セグメントの１つに連続してロードされるまで、Ｙ×ＺＷモードで継続される。この実施形態の動作を、図２２の例によって更に説明する。
【０１０２】
図２２に、ＣＡＭアレイがＹ＝１０２４個の行１１２２（０）〜１１２２（１０２３）、行ごとにＺ＝４個の行セグメントＳ１〜Ｓ４を有し、各行セグメントがＷ＝７２個のＣＡＭセルを有する例を示す。ＣＢＵＳも、７２ビット幅であり、イネーブル信号ＣＥＮ１〜ＣＥＮ４の制御の下で、それぞれ、コンパランド・セグメントＣ１〜Ｃ４のそれぞれへ７２ビットのコンパランド・データを供給する。選択ロジック１９０２は、ＣＳＳＥＬ１およびＣＳＳＥＬ０ならびにコンフィギュレーション信号ＳＺ７２、ＳＺ１４４、およびＳＺ２８８に応答して、イネーブル信号を生成する。この実施形態の選択ロジック１９０２の動作の真理値表を図２３に示す。ＳＺ７２がイネーブルにされる時、ＣＡＭアレイは４ｋ×７２モードで動作し、ＣＥＮ１〜ＣＥＮ４のすべてがイネーブルにされて、ＣＢＵＳから同じ７２ビット・コンパランド・データを同時にロードする。ＳＺ１４４がイネーブルにされる時、ＣＡＭアレイは２ｋ×１４４モードで動作し、ＣＳＳＥＬ０によって、ＣＥＮ信号がイネーブルにされるかが決定される。まず、ＣＳＳＥＬが論理０状態の時に、Ｃ１およびＣ３がイネーブルにされて、コンパランド・データの第１部分が受け取られる。その後、ＣＳＳＥＬ０が論理１状態の時に、Ｃ２およびＣ４がイネーブルにされて、コンパランド・データの第２部分が受け取られる。ＳＺ２８８がイネーブルにされる時には、ＣＡＭアレイは１ｋ×２８８モードで動作し、ＣＳＳＥＬ１およびＣＳＳＥＬ０の両方は、ＣＥＮ信号のそれぞれがコンパランド・データが受け取るようにイネーブルにされる時を決定する。このモードでは、選択ロジック１９０２が２対４デコーダとして動作する。
【０１０３】
図２４に、図２３の真理値表を実施する図２２の選択ロジック１９０２の一実施形態であるマルチプレクサ２２００を示す。他の実施形態を使用することもできる。マルチプレクサ２２００には、３つの入力ポートＩＰ１、ＩＰ２、およびＩＰ３、ならびに出力ポートＯＰが含まれ、選択信号としてコンフィギュレーション信号が受け取られる。入力ポートＩＰ１は、その入力のすべてを論理１状態に接続される。入力ポートＩＰ２は、その入力を１対２デコーダ２２０２に結合される。デコーダ２２０２は、ＣＳＳＥＬ０をデコードし、第１のデコードされた出力をＩＰ２（１）およびＩＰ２（３）に接続し、第２のデコードされた出力をＩＰ２（２）およびＩＰ２（４）に接続する。入力ポート３は、その入力を２対４デコーダ２２０４に結合される。デコーダ２２０４によってＣＳＳＥＬ１およびＣＳＳＥＬ０がデコードされる。ＳＺ７２がイネーブルにされる時に、ＩＰ１によって、すべて論理１の状態が出力ポートに供給されて、ＣＥＮ１〜ＣＥＮ４がイネーブルにされる。ＳＺ１４４がイネーブルにされる時、ＩＰ２の入力が出力ポートに供給される。ＳＺ２８８がイネーブルにされる時、ＩＰ３の入力が出力ポートに供給される。
【０１０４】
図２５に、ＡＮＤ／ＯＲロジックを使用する、図２２の選択ロジック１９０２の別の実施形態を示す。他の実施形態を使用することもできる。選択ロジック２３００には、別々のＡＮＤ／ＯＲ回路が含まれ、図２３の真理値表に従って、ＣＳＳＥＬ１、ＣＳＳＥＬ０、ＳＺ７２、ＳＺ１４４、およびＳＺ２８８に応答してＣＥＮ信号を生成する。例えば、ＡＮＤゲート２３０２および２３０４ならびにＯＲゲート２３０６によってＣＥＮ１が生成される。ＡＮＤゲート２３０２は、ＳＺ１４４に結合された第１入力、ＣＳＳＥＬ０の論理補数に結合された第２入力、およびＯＲゲート２３０６の入力に結合された出力を有する。ＡＮＤゲート２３０４は、ＳＺ２８８に結合された第１入力、ＣＳＳＥＬ０の論理補数に結合された第２入力、ＣＳＳＥＬ１の論理補数に結合された第３入力、およびＯＲゲート２３０６のもう１つの入力に結合された出力を有する。また、ＯＲゲート２３０６はＳＺ７２を受け取り、ＣＥＮ１を出力する。ＡＮＤゲート２３１２および２３１４ならびにＯＲゲート２３１６によって、ＣＥＮ２が生成される。ＡＮＤゲート２３１２は、ＳＺ１４４に結合された第１入力、ＣＳＳＥＬ０に結合された第２入力、およびＯＲゲート２３１６の入力に結合された出力を有する。ＡＮＤゲート２３１４は、ＳＺ２８８に結合された第１入力、ＣＳＳＥＬ０に結合された第２入力、ＣＳＳＥＬ１の論理補数に結合された第３入力、およびＯＲゲート２３１６のもう１つの入力に結合された出力を有する。また、ＯＲゲート２３１６は、ＳＺ７２を受け取り、ＣＥＮ２を出力する。ＡＮＤゲート２３２２および２３２４ならびにＯＲゲート２３２６によって、ＣＥＮ３が生成される。ＡＮＤゲート２３２２は、ＳＺ１４４に結合された第１入力、ＣＳＳＥＬ０の論理補数に結合された第２入力、およびＯＲゲート２３２６の入力に結合された出力を有する。ＡＮＤゲート２３２４は、ＳＺ２８８に結合された第１入力、ＣＳＳＥＬ０の論理補数に結合された第２入力、ＣＳＳＥＬ１に結合された第３入力、およびＯＲゲート２３２６のもう１つの入力に結合された出力を有する。また、ＯＲゲート２３２６は、ＳＺ７２を受け取り、ＣＥＮ３を出力する。同様に、ＡＮＤゲート２３３２および２３３４ならびにＯＲゲート２３３６によって、ＣＥＮ４が生成される。ＡＮＤゲート２３３２は、ＳＺ１４４に結合された第１入力、ＣＳＳＥＬ０に結合された第２入力、およびＯＲゲート２３３６の入力に結合された出力を有する。ＡＮＤゲート２３３４は、ＳＺ２８８に結合された第１入力、ＣＳＳＥＬ０に結合された第２入力、ＣＳＳＥＬ１に結合された第３入力、およびＯＲゲート２３３６のもう１つの入力に結合された出力を有する。また、ＯＲゲート２３３６は、ＳＺ７２を受け取り、ＣＥＮ４を出力する。
【０１０５】
一致フラグ
再び図１３を参照する。コンパランド・データを、アレイ１１０２内の１または複数の行セグメントに格納されたデータと比較することができる。各行セグメントとの比較の一致結果は、対応する一致線セグメントで示される。ＣＡＭセルの１行に対するＺ個の一致線セグメント１１２６（０）〜１１２６（Ｙ−１）のそれぞれが、一致フラグ・ロジック１１１４に供給される。一致フラグ・ロジックは、アレイ１１２０においてコンパランド・データとの少なくとも１つの一致状態がある時にそれを示す一致フラグ信号ＭＦを生成する。一致フラグ・ロジック１１１４は、バス１１２０上のコンフィギュレーション情報にも応答し、ＭＦがシステム１１００の対応するコンフィギュレーションに対して適当にイネーブルにされるようにする。例えば、アレイ１１０２が、ＺＹ×Ｗモードである時、一致フラグ・ロジック１１１４は、コンパランド・データがアレイ１１０２の少なくとも１つの行セグメントに格納された有効なデータと一致するかどうかを判定する。アレイ１１０２が、行セグメントのグループを使用して別のモードでコンフィギュレーションされる時（即ち、ＺＹ／ｎ×ｎＷに関してｎが１より大きい）、一致フラグ・ロジック１１１４は、コンパランド・データがアレイ１１０２の行セグメントの少なくとも１つのグループに格納された有効な値と一致するかどうかを判定する。
【０１０６】
図２６に、図１３の一致フラグ・ロジック１１１４の一実施形態である一致フラグ・ロジック２４００を示す。一致フラグ・ロジック２４００には行一致回路２４０２（０）〜２４０２（Ｙ−１）が含まれ、それぞれがＣＡＭセルの対応する行１１２２（０）〜１１２２（Ｙ−１）に関連する。行一致回路のそれぞれによって、ＣＡＭセルの対応する行の一致線セグメントＭ１〜ＭＺのそれぞれから一致結果が受け取られる。一致線セグメントの一致結果およびコンフィギュレーション情報に応答して、行一致回路のそれぞれは、行一致信号ＭＲを生成する。行一致信号のそれぞれは、対応する行の１または複数の行セグメント（即ち、ＺＹ×Ｗモードに関して）、あるいは行セグメントの１または複数のグループ（即ち、ｎが１より大きいＺＹ／ｎ×ｎＷモードに関して）が、特定のコンフィギュレーションに関してのコンパランド・データと一致するデータを格納しているかどうかを示す。次に、行一致信号ＭＲ（０）〜ＭＲ（Ｙ−１）が、アレイ一致回路２４０４によって論理的に組み合わされて、アレイ１１０２全体に対するＭＦが生成される。一実施形態については、アレイ一致回路２４０４に、行一致信号ＭＲ０〜ＭＲ（Ｙ−１）の状態の論理ＯＲをとるＯＲロジックが含まれる。
【０１０７】
図２７に、図２６の行一致回路２４０２（０）の一実施形態である行一致回路２５００を示す。行一致回路２５００は、それぞれの行一致回路に使用することができる。行一致回路２５００には、１一致ロジック２５０２、グループ一致ロジック回路２５０４（１）〜２５０４（ｎ−１）、および一致コンフィギュレーション・ロジック２５０６が含まれる。１一致ロジック２５０２によって、ＺＹ×Ｗモードに関しての行１１２２（０）での一致状態が判定される。１一致ロジック２５０２は、行セグメントＳ１〜ＳＺからそれぞれ一致線セグメントＭ１〜ＭＺのそれぞれを受け取り、行セグメントの何れかにコンパランド・データと一致するデータが格納されているかどうかを示すＭＯＮＥを生成する。即ち、１一致ロジック２５０２は、Ｍ１〜ＭＺの少なくとも１つがイネーブルにされる時を判定する。コンフィギュレーション信号ＳＺ１がイネーブルにされる時、一致コンフィギュレーション・ロジック２５０６は、行一致信号ＭＲ０としてＭＯＮＥを出力する。一実施形態については、１一致ロジック２５０２が、図２８のＯＲゲート２６０２によって示されるように、Ｍ１〜ＭＺの論理状態を論理異的に組み合わせてＭＯＮＥを生成するＯＲロジック回路２６０２である。
【０１０８】
グループ一致ロジック回路２５０４（１）〜２５０４（ｎ−１）のそれぞれによって、ＣＡＭシステムの異なるコンフィギュレーションに関しての行１１２２（０）内の一致状態が判定される。グループ一致ロジック回路のそれぞれは、行セグメントＳ１〜ＳＺそれぞれからの一致線セグメントＭ１〜ＭＺのそれぞれを受け取り、一致線セグメントの一意のグループ化を論理的に組み合わせて、グループ一致信号ＭＧ（１）〜ＭＧ（ｎ−１）を生成する。一意のグループ化のそれぞれは、アレイ１１０２の所与のコンフィギュレーションに関してデータを格納するために一緒に連結される行セグメントの数に対応する。一実施形態については、行セグメントのｎ−１個のグループがあり、ここで、ｎ−１＝２Xであり、ｘは、１からｌｏｇ2Ｚまでの整数であり、ｘは、グループ一致回路ごとに一意の数である。例えば、ＺＹ／２×２Ｗモードでは、アレイ１１０２の行セグメントが、対（ペア）にグループ化される。グループ一致ロジック回路２５０４（１）は、一致線セグメントの１または複数の対、Ｍ１およびＭ２、Ｍ３およびＭ４などが、一致状態を示すかどうかを判定する。一致線セグメントのこの最初のグループ化に関して、一致コンフィギュレーション・ロジック２５０６は、ＳＺＧ（１）がイネーブルにされる時にＭＲ０としてＭＧ（１）を出力する。グループ一致ロジック２５０４（１）の一実施形態を図２９Ａに示すが、この実施形態にはＺ／２個のＡＮＤゲート２７０２（１）〜２７０２（Ｚ／２）が含まれ、それぞれが一致線セグメントの一意の対に結合された２つの入力を有する。ＡＮＤゲート２７０２の出力が、ＯＲゲート２７０４によって論理的に組み合わされ、ＭＧ（１）が生成される。
【０１０９】
同様に、ＺＹ／４×４Ｗモードでは、アレイ１１０２内の行セグメントが、１時に４セグメントずつグループ化される。グループ一致ロジック回路２５０４（２）は、一致線セグメントの１または複数の４つ組、Ｍ１〜Ｍ４、Ｍ５〜Ｍ７などが、一致状態を示すかどうかを判定する。一致線セグメントのこの第２のグループ化では、一致コンフィギュレーション・ロジック２５０６が、ＳＺＧ（２）がイネーブルにされる時にＭＲ０としてＭＧ（２）を出力する。グループ一致ロジック２５０４（２）の一実施形態を図２９Ｂに示すが、この実施形態にはＺ／４個のＡＮＤゲート２７０６（１）〜２７０６（Ｚ／４）が含まれ、それぞれが一意の連続する一致線セグメントの４つ組に結合された４つの入力を有する。ＡＮＤゲート２７０６の出力が、ＯＲゲート２７０８によって論理的に組み合わされて、ＭＧ（２）が生成される。
【０１１０】
この方法は、Ｙ×ＺＷモードで、アレイ１１０２の行セグメントが一度にＺセグメントずつグループ化されるまで継続される。グループ一致ロジック回路２５０４（ｎ−１）は、ＣＡＭセルの行に対する一致線セグメントＭ１〜ＭＺのすべてが一致状態を示すかどうかを判定する。一致線セグメントのこの最後のグループ化については、一致コンフィギュレーション・ロジック２５０６は、ＳＺＧ（ｎ−１）がイネーブルにされる時にＭＲ０としてＭＧ（ｎ−１）を出力する。グループ一致ロジック回路の一実施形態を、図２９Ｃに、Ｍ１〜ＭＺを組み合わせてＭＧ（ｎ−１）を出力するＡＮＤゲート２７１０として示す。
【０１１１】
図３０に、図２７の一致コンフィギュレーション・ロジック２５０６の一実施形態を示す。他の実施形態を使用することもできる。この実施形態については、ＡＮＤゲート２８０２は、ＭＯＮＥおよびＳＺ１の両方がイネーブルにされているかどうかを判定し、その結果をＯＲゲート２８０６に供給する。ＡＮＤゲート２８０４（１）〜２８０４（ｎ−１）は、グループ一致信号ＭＧ（１）〜ＭＧ（ｎ−１）の１つおよび対応するコンフィギュレーション信号ＳＺＧ（１）〜ＳＺＧ（ｎ−１）がイネーブルにされているかどうかを判定し、その結果がＯＲゲート２８０６へ供給される。ＯＲゲート２８０６はＭＲ０を供給する。もう１つの実施形態については、一致コンフィギュレーション・ロジック２５０６を、入力としてＭＯＮＥおよびＭＧ（１）〜ＭＧ（ｎ−１）、選択信号としてコンフィギュレーション信号、出力として行一致信号を有するマルチプレクサとすることができる。
【０１１２】
図３１に、Ｚ＝４個の行セグメントおよび４つの対応する一致線セグメントＭ１〜Ｍ４を有するＣＡＭシステムに関しての図２７の行一致回路２５００の一実施形態である行一致回路２９００を示す。１一致ロジックは、Ｍ１〜Ｍ４の論理状態のそれぞれの論理ＯＲをとってＭＯＮＥを生成するＯＲゲート２９０２によって表される。この実施形態は、２グループの一致ロジック回路を有する。第１グループには、ＡＮＤゲート２９０４および２９０６ならびにＯＲゲート２９０８が含まれる。第２グループには、ＡＮＤゲート２９０４、２９０６、および２９１０が含まれる。ＡＮＤゲート２９０４はＭ１およびＭ２に接続され、ＡＮＤゲート２９０６はＭ３およびＭ４に接続される。ＯＲゲート２９０８は、ＡＮＤゲート２９０４および２９０６の出力を組み合わせることによってＭＧ（１）を生成し、ＡＮＤゲート２９１０は、ＡＮＤゲート２９０４および２９０６の出力を組み合わせることによってＭＧ（２）を生成する。一致コンフィギュレーション・ロジックには、ＡＮＤゲート２９１２、２９１４、および２９１６ならびにＯＲゲート２９１８が含まれる。ＡＮＤゲート２９１２によってＳＺ１がＭＯＮＥと組み合わされ、ＡＮＤゲート２９１４によってＳＺＧ（１）がＭＧ（１）と組み合わされ、ＡＮＤゲート２９１６によってＳＺＧ（２）がＭＧ（２）と組み合わされて、ＯＲゲート２９１８に対する入力が供給される。ＯＲゲート２９１８によってＭＲ０が供給される。他の実施形態を使用することもできる。
【０１１３】
図３２に、図１３の一致フラグ・ロジック１１１４のもう１つの実施形態である一致フラグ・ロジック３０００を示す。一致フラグ・ロジック３０００には行一致回路３００２（０）〜３００２（Ｙ−１）が含まれ、それぞれＣＡＭセルの対応する行１１２２（０）〜１１２２（Ｙ−１）に関連する。行一致回路３００２のそれぞれには、図２７の１一致ロジック２５０２およびグループ一致ロジック回路２５０４（１）〜２５０４（ｎ−１）が含まれるが、一致コンフィギュレーション・ロジック２５０６が除外されている。その代わりに、行一致回路のそれぞれからのＭＯＮＥおよびグループ一致信号が、アレイ一致回路３００４へ供給される。アレイ一致回路３００４はまた、コンフィギュレーション情報ＣＦＧを受け取り、１または複数の行セグメントあるいは１または複数の行セグメント・グループが特定のコンフィギュレーションに関してのコンパランド・データと一致するデータが格納されているかどうかを判定する。
【０１１４】
図３３に、図３２のアレイ一致回路３００４の一実施形態であるアレイ一致回路３１００を示す。アレイ一致回路３１００には、ｎ個のＯＲロジック回路３１０２および３１０４（１）〜３１０４（ｎ−１）ならびに選択回路３１０６が含まれる。ｎ個のＯＲロジック回路によって、アレイ１１０２の可能なコンフィギュレーションに関しての一致状態を示すｎ個のコンポジット信号が生成される。ＯＲ回路３１０２は、行一致回路３００２（０）〜３００２（Ｙ−１）それぞれからのＭＯＮＥ信号ＭＯＮＥ（０）〜ＭＯＮＥ（Ｙ−１）を論理的に組み合わせて、コンポジット信号ＣＭＯＮＥを生成する。ＣＭＯＮＥは、ＺＹ×Ｗモードに関して、何れか１つの行セグメントにコンパランド・データと一致するデータが格納される時に一致状態を示す。即ち、ＯＲ回路３１０２は、ＣＡＭ行の何れかからのＭ１〜ＭＺの少なくとも１つがイネーブルにされる時にそれを判定する。選択ロジック３１０６は、コンフィギュレーション信号ＳＺ１がイネーブルにされる時に、ＭＦとしてＣＭＯＮＥを出力する。
【０１１５】
ＯＲ回路３１０４（１）〜３１０４（ｎ−１）のそれぞれは、ＣＡＭシステムの異なるコンフィギュレーションに関する一致状態を判定する。各ＯＲ回路３１０４によって、それぞれの行一致回路３００２からの対応するグループ一致信号が論理的に組み合わされて、コンポジット・グループ一致信号ＣＭＧが生成される。例えば、ＯＲ回路３１０４（１）によってＭＧ（１）（０）〜ＭＧ（１）（Ｙ−１）が組み合わされて、ＺＹ／２×２Ｗモードにおける行セグメントの第１のグループ化に対しての一致状態を示すＣＭＧ（１）が生成される。ＯＲゲート３１０４（２）によってＭＧ（２）（０）〜ＭＧ（２）（Ｙ−１）が組み合わされて、ＺＹ／４×４Ｗモードにおける行セグメントの第２のグループ化に対しての一致状態を示すＣＭＧ（２）が生成される。ＯＲゲート３１０４（ｎ−１）によってＭＧ（ｎ−１）（０）〜ＭＧ（ｎ−１）（Ｙ−１）が組み合わされて、Ｙ×ＺＷモードにおけるＺ個の行セグメントのグループ化に対しての一致状態を示すＣＭＧ（ｎ−１）が生成される。コンポジット・グループ一致信号の１つが、対応するコンフィギュレーション信号ＳＺＧ（１）〜ＳＺＧ（ｎ−１）に応答して、選択ロジック３１０６によってＭＦとして供給される。
【０１１６】
図３４に、選択回路３１０６の一実施形態を示す。この実施形態について、選択回路はマルチプレクサ３２０２であり、入力ポートにＣＭＯＮＥおよびＣＭＧ（１）〜ＣＭＧ（ｎ−１）が接続され、選択信号としてコンフィギュレーション信号を使用し、出力ポートにＭＦが接続される。
【０１１７】
図３５に、選択回路３１０６のもう１つの実施形態を示す。この実施形態については、ＡＮＤゲート３３０２によって、ＳＺ１とＣＭＯＮＥとが論理的に組み合わされ、その結果がＯＲゲート３３０６の入力へ供給される。ＡＮＤゲート３３０４（１）〜３３０４（ｎ−１）によって、コンポジット・グループ一致信号ＣＭＧ（１）〜ＣＭＧ（ｎ−１）の１つおよび対応するコンフィギュレーション信号ＳＺＧ（１）〜ＳＺＧ（ｎ−１）がイネーブルにされるかどうかが判定され、その結果がＯＲゲート３３０６へ供給される。ＯＲゲート３３０６はＭＦを供給する。
【０１１８】
図３６に、図３２のアレイ一致回路３００４のもう１つの実施形態であるアレイ一致回路３４００を示す。アレイ一致回路３４００には、ｎ個の認定ロジック回路３４０２および３４０４（１）〜３４０４（ｎ−１）、ならびにＯＲロジック３４０６が含まれる。ｎ個の認定ロジック回路によってｎ個の限定された信号が生成され、それぞれがアレイ１１０２の可能なコンフィギュレーションに対するＣＡＭセルの１行内の一致状態を示す。認定ロジック３４０２は、それぞれの行一致回路３００２（０）〜３００２（Ｙ−１）からのＭＯＮＥ信号ＭＯＮＥ（０）〜ＭＯＮＥ（Ｙ−１）を論理的に組み合わせ、その結果をコンフィギュレーション信号ＳＺ１を用いて認定し、認定されたＭＯＮＥ信号ＱＭＯＮＥ（０）〜ＱＭＯＮＥ（Ｙ−１）を生成する。１または複数のＱＭＯＮＥ信号がイネーブルにされるのは、ＺＹ×Ｗモードに関して行セグメントに一致状態があり、ＳＺ１がイネーブルにされている時だけである。ＱＭＯＮＥの１つがイネーブルにされる場合、選択ロジック３４０６はＭＦをイネーブルにする。
【０１１９】
認定ロジック回路３４０４（１）〜３４０４（ｎ−１）のそれぞれによって、ＣＡＭシステムの異なるコンフィギュレーションについての一致状態が判定される。それぞれの認定ロジック回路３４０４は、それぞれの行一致回路３４０２からの対応するグループ一致信号が論理的に組み合わせ、その結果を対応するグループコンフィギュレーション信号によって認定し、認定グループ一致信号ＱＣＭＧを生成する。例えば、認定ロジック３４０４（１）によって、ＭＧ（１）（０）〜ＭＧ（１）（Ｙ−１）がＳＺＧ（１）と組み合わされてＱＣＭＧ（１）（０）〜ＱＣＭＧ（１）（Ｙ−１）、即ち、ＳＺＧ（１）がイネーブルにされる場合に限って（即ち、ＺＹ／２×２Ｗモードにおいて）行セグメントの第１のグループに関するＣＡＭセルの行の一致状態をそれぞれが示すＱＣＭＧ（１）（０）〜ＱＣＭＧ（１）（Ｙ−１）が生成されるようにし、認定ロジック回路３４０４（２）によって、ＭＧ（２）（０）〜ＭＧ（２）（Ｙ−１）がＳＺＧ（２）と組み合わされてＱＣＭＧ（２）（０）〜ＱＣＭＧ（２）（Ｙ−１）、即ち、ＳＺＧ（２）がイネーブルにされる場合に限って（即ち、ＺＹ／４×４Ｗモードにおいて）行セグメントの第２のグループに関するＣＡＭセルの行の一致状態をそれぞれが示すＱＣＭＧ（２）（０）〜ＱＣＭＧ（２）（Ｙ−１）が生成されるようにし、認定ロジック回路３４０４（ｎ−１）によって、ＭＧ（ｎ−１）（０）〜ＭＧ（ｎ−１）（Ｙ−１）がＳＺＧ（ｎ−１）と組み合わされてＱＣＭＧ（ｎ−１）（０）〜ＱＣＭＧ（ｎ−１）（Ｙ−１）、即ち、Ｙ×ＺＷモードにおいてＺ個の行セグメントのグループに関する一致状態をそれぞれが示すＱＣＭＧ（ｎ−１）（０）〜ＱＣＭＧ（ｎ−１）（Ｙ−１）が生成されるようにする。認定グループ一致信号の１つがイネーブルにされる場合、選択ロジック３４０６はＭＦをイネーブルにする。
【０１２０】
図３７に、図３６のアレイ一致ロジック３４００の一実施形態であるアレイ一致ロジック３５００を示す。他の実施形態を使用することもできる。アレイ一致ロジックには、認定ロジック回路３５０２および３５０４（１）〜３５０４（ｎ−１）ならびにＯＲロジック３５０６が含まれる。認定ロジック回路３５０２および３５０４（１）〜３５０４（ｎ−１）は、それぞれ、ロジック回路３４０２および３４０４（１）〜３４０４（ｎ−１）の実施形態である。認定ロジック回路のそれぞれにＹ個の２入力ＡＮＤゲート３５０３が含まれ、各ＡＮＤゲート３５０３によって、対応するコンフィギュレーション信号とＭＯＮＥまたはグループ一致信号のそれぞれとの論理ＡＮＤをとられる。認定ロジック３５０２のＹ個のＡＮＤゲートの出力がＯＲゲート３５０８へ供給され、認定ロジック回路３５０４（１）〜３５０４（ｎ−１）のＹ個のＡＮＤゲートの出力がそれぞれにＯＲゲート３５１０（１）〜３５１０（ｎ−１）へ供給される。ＯＲゲートの出力がＯＲゲート３５１２へ供給されて、ＭＦが生成される。
【０１２１】
複数一致フラグ
再び図１３を参照する。複数一致フラグ・ロジック１１１６は、一致線セグメント１１２６（０）〜１１２６（Ｙ−１）での一致結果を監視し、ＺＹ×Ｗモード（コンフィギュレーション情報によって示される）においてコンパランド・データがアレイ１１０２における１つより多くの行セグメントに格納されたデータと一致する時、または他のコンフィギュレーションにおいてコンパランド・データがアレイ１１０２における１つより多くの行セグメント・グループに格納されたデータと一致する時に、複数一致フラグＭＭＦをイネーブルにする。
【０１２２】
図３８に、図１３の複数一致フラグ・ロジック１１１６の一実施形態である複数一致フラグ・ロジック３６００を示す。複数一致フラグ・ロジック３６００には、行一致回路３６０２と、ＣＡＭセルの行１１２２ごとの対応する行複数一致回路３６０４とが含まれる。
【０１２３】
それぞれの行一致回路３６０２は図２６の行一致回路２４０２と同じにすることができ、ＣＡＭセルの行の対応する一致線セグメントＭ１〜ＭＺのそれぞれから一致結果を受け取り、コンフィギュレーション情報に応答して、行一致信号ＭＲを生成する。それぞれの行一致信号は、行に対応する、１または複数の行セグメント（即ち、ＺＹ×Ｗモードに関して）または行セグメントの１または複数のグループ（即ち、ＺＹ／ｎ×ｎＷモード、ここでｎは１より大きい）に、特定のコンフィギュレーションに関するコンパランド・データと一致するデータが格納されるかどうかを示す。アレイ複数一致回路３６０６によって、行一致信号の一致結果が監視され、所与のコンフィギュレーションでのＣＡＭセルの異なる行において、１より多くの行セグメントまたは１より多くの行セグメント・グループに一致がある時に、ＭＭＦがイネーブルにされる。
【０１２４】
それぞれの行複数一致回路３６０４によって、ＣＡＭセルの行の対応する一致線セグメントＭ１〜ＭＺのそれぞれから一致結果が受け取られ、コンフィギュレーション情報に応答して、行複数一致信号ＭＭＲが生成される。それぞれの行複数一致信号は、行の対応する１より多くの行セグメント（即ち、ＺＹ×Ｗモードに関して）または１より多くの行セグメント・グループ（即ち、１＜ｎ＜ＺであるＺＹ／ｎ×ｎＷモードに関して）に、特定のコンフィギュレーションに関してコンパランド・データと一致するデータが格納されているかどうかを示す。アレイ複数一致回路３６０６によって、行複数一致信号の一致結果が監視され、所与のコンフィギュレーションについて少なくとも１つの行複数一致信号がイネーブルにされる時にＭＭＦがイネーブルにされる。
【０１２５】
図３９に、図３８の行複数一致回路３６０４（０）の一実施形態である行一致回路３７００を示す。行一致回路３７００は、それぞれの行複数一致回路に使用することができる。行一致回路３７００には、複数１一致ロジック３７０２、グループ複数一致ロジック回路３７０４（１）〜３７０４（ｎ−２）、および複数一致コンフィギュレーション・ロジック３７０６が含まれる。複数１一致ロジック３７０２によって、ＺＹ×Ｗモードに関して行１１２２（０）の複数一致状態が判定される。複数１一致ロジック３７０２によって、行セグメントＳ１〜ＳＺそれぞれから一致線セグメントＭ１〜ＭＺのそれぞれが受け取られ、１より多くの行セグメントにコンパランド・データと一致するデータが含まれるかどうかを示すＭＭＯＮＥが生成される。即ち、複数１一致ロジック３７０２は、２またはそれ以上のＭ１〜ＭＺがイネーブルにされる時にそれを判定する。コンフィギュレーション信号ＳＺ１がイネーブルにされる時、一致コンフィギュレーション・ロジック３７０６は、行複数一致信号ＭＭＲ０としてＭＭＯＮＥを出力する。任意の複数一致ロジック回路をロジック３７０２に使用して、複数一致状態を判定することもできる。複数１一致ロジックの一実施形態を図４０に示す。この実施形態について、ｒ個の２入力ＡＮＤゲート３８０２（１）〜３８０２（ｒ）のそれぞれによって一致線セグメントの２つの一致線セグメントの一意の組合せが受け取られるものであり、ここでｒは組合せ式ｒ＝Ｚ！／（２！（Ｚ−２）！）によって決定される。各ＡＮＤゲートの出力がＯＲゲート３８０４に供給されてＭＭＯＮＥＳが生成される。４つの行セグメントに関する図４０の手法の一例を図４１に示すが、この図では、一度に２つ取られる４つの一致線セグメントの組合せのすべてがＡＮＤゲート３９０２（１）〜３９０２（６）へ供給され、ＡＮＤゲートの出力がＯＲゲート３９０４へ供給される。
【０１２６】
それぞれのグループ複数一致ロジック回路３７０４（１）〜３７０４（ｎ−２）によって、ＣＡＭシステムの異なるコンフィギュレーションに関しての行１１２２（０）における複数一致状態が判定される。それぞれのグループ複数一致ロジック回路によって、行セグメントＳ１〜ＳＺそれぞれから一致線セグメントＭ１〜ＭＺのそれぞれが受け取られ、一致行セグメントの一意のグループが論理的に組み合わされて、グループ複数一致信号ＭＭＧ（１）〜ＭＭＧ（ｎ−２）が生成される。それぞれの一意のグループは、アレイ１１０２の所与のコンフィギュレーションに関してデータを格納するために一緒に連結される行セグメントの数に対応する。一実施形態については、行セグメントのｎ−２個のグループがあり、ここでｎ−２＝２xであり、ｘは１からｌｏｇ2Ｚまでの整数であり、ｘはそれぞれのグループ複数一致回路に一意の数である。例えば、ＺＹ／２×２Ｗモードでは、アレイ１１０２の行セグメントが対（ペア）によりグループ化される。グループ複数一致ロジック回路３７０４（１）によって、一致線セグメントの対Ｍ１およびＭ２、Ｍ３およびＭ４などの１より多くの対が一致状態を示すかどうかが判定される。一致線セグメントのこの第１のグループについて、複数一致コンフィギュレーション・ロジック３７０６は、ＳＺＧ（１）がイネーブルにされる時に、ＭＭＲ０としてＭＭＧ（１）を出力する。複数一致ロジック回路３７０４（１）の一実施形態を、図４２Ａに示すが、この実施形態ではＺ／２個のＡＮＤゲート４００２（１）〜４００２（Ｚ／２）が含まれ、ＡＮＤゲートのそれぞれが、一致線セグメントの一意の連続する対に結合される２つの入力を有する。ＡＮＤゲート４００２の出力は複数一致ロジック４００４へ供給され、ＭＭＧ（１）が生成される。ロジック４３０４は任意の複数一致ロジック回路とすることができる。
【０１２７】
同様に、ＺＹ／４×４Ｗモードでは、アレイ１１０２の行セグメントが、一度に４セグメントでグループ化される。グループ複数一致ロジック回路３７０４（２）によって、一致線セグメントの４つ組Ｍ１〜Ｍ４、Ｍ５〜Ｍ７などの１より多くの組が一致状態を示すかどうかが判定される。一致線セグメントのこの第２のグループ化について、複数一致コンフィギュレーション・ロジック３７０６は、ＳＺＧ（２）がイネーブルにされる時に、ＭＭＲ０としてＭＭＧ（２）を出力する。複数一致ロジック３７０４（２）の一実施形態を図４２Ｂに示し、この実施形態は、Ｚ／４個のＡＮＤゲート４００６（１）〜４００６（Ｚ／４）を含み、ＡＮＤゲートのそれぞれが、一致線セグメントの一意の連続する４つ組に結合される４つの入力を有する。ＡＮＤゲート４００６の出力が複数一致ロジック４００８へ供給されてＭＭＧ（２）が生成される。ロジック４００８は任意の複数一致ロジック回路とすることもできる。
【０１２８】
この方法は、ＺＹ／（Ｚ−１）×（Ｚ−１）Ｗモードにおいて、アレイ１１０２の行セグメントが一度にＺ／２セグメントずつグループ化されるまで継続される。グループ複数一致ロジック回路３７０４（ｎ−２）によって、一致線セグメントＭ１〜Ｍ（Ｚ／２）およびＭ（Ｚ／２＋１）〜ＭＺのＺ／２グループの両方が一致状態を示すかどうかが判定される。一致線セグメントのこのグループ化について、複数一致コンフィギュレーション・ロジック３７０６は、ＳＺＧ（ｎ−２）がイネーブルにされる時に、ＭＭＲ０としてＭＭＧ（ｎ−２）を出力する。複数一致ロジック３７０４（ｎ−２）の一実施形態を図４２Ｃに示すが、この実施形態には２つのＡＮＤロジック回路４０１０（１）および４０１０（２）が含まれ、ＡＮＤゲートのそれぞれが、Ｚ／２個の一致線セグメントの一意の連続するグループに結合されるＺ／２個の入力を有する。ＡＮＤゲート４０１０の出力が複数一致ロジック４０１２へ供給されてＭＭＧ（ｎ−２）が生成される。ロジック４０１２は任意の複数一致ロジック回路とすることができる。一実施形態については、複数一致ロジック４０１２を、ＡＮＤゲート４０１０の出力の論理ＡＮＤをとるＡＮＤロジックとすることができる。
【０１２９】
すべての行セグメントが所与の行についてグループ化される行セグメントの最後のグループ化（即ち、Ｙ×ＺＷモード）は、行一致回路によって対処され（後に説明する）、別々のグループ複数一致ロジック回路を必要としない。
【０１３０】
図４３に、Ｚ＝４個の行セグメントを有するＣＡＭセルの行に対するグループ複数一致回路の１つの実施形態を示す。この実施形態については、グループ複数一致回路を１つだけ使用して、コンパランド・データがグループＳ１〜Ｓ２（Ｍ１およびＭ２で示される）に格納されたデータおよびグループＳ３〜Ｓ４（Ｍ３およびＭ４で示される）に格納されたデータと一致する時にそれを判定することができる。従って、単一のＡＮＤロジック回路４１０２を使用してＭ１〜Ｍ４の論理状態の論理ＡＮＤをとって、行１１２２（０）の単一のグループ複数一致信号ＧＭＭ（１）を生成することができる。
【０１３１】
図４４に、図３９の複数一致コンフィギュレーション・ロジック３７０６の一実施形態を示す。他の実施形態を使用することもできる。この実施形態については、ＡＮＤゲート４２０２によって、ＭＭＯＮＥおよびＳＺ１の両方がイネーブルにされるかどうかが判定され、その結果がＯＲゲート４２０６に供給される。ＡＮＤゲート４２０４（１）〜４２０４（ｎ−２）によって、グループ複数一致信号ＭＭＧ（１）（１）〜ＭＭＧ（ｎ−２）の１つおよび対応するコンフィギュレーション信号ＳＺＧ（１）〜ＳＺＧ（ｎ−２）がイネーブルにされるかどうかが判定され、その結果がＯＲゲート４２０６へ供給される。ＯＲゲート４２０６によってＭＭＲ０が供給される。もう１つの実施形態については、複数一致コンフィギュレーション・ロジック３７０６を、入力としてＭＭＯＮＥおよびＭＭＧ（１）〜ＭＭＧ（ｎ−２）、選択信号としてコンフィギュレーション信号、および出力として行一致信号を有するマルチプレクサとすることができる。
【０１３２】
図４５に、図３８のアレイ複数一致ロジック３６０６の一実施形態であるアレイ複数一致回路４３００を示す。ロジック４３００には複数一致ロジック４３０２が含まれ、複数一致ロジック４３０２によって、行一致信号ＭＲ０〜ＭＲ（Ｙ−１）が受け取られ、所与のコンフィギュレーションに関してＣＡＭセルの異なる行における１より多くの行セグメントまたは１より多くの行セグメント・グループに一致がある時に、行間複数一致信号ＭＭＩが生成される。ＭＭＩは、ＯＲロジック４３０４の１入力へ供給される。ＯＲロジック４３０４によって、行複数一致信号ＭＭＲ０〜ＭＭＲ（Ｙ−１）も受け取られ、所与のコンフィギュレーションに関してのＣＡＭセルの行内の１より多くの行セグメントまたは１より多くの行セグメント・グループに一致がある時にＭＭＦがイネーブルにされる。
【０１３３】
一致アドレス／インデックス
再び度図１３を参照する。優先順位エンコーダ・ロジック１１１２によって、各ＣＡＭ行の一致線セグメント１１２６（０）〜１１２６（Ｙ−１）の一致結果が監視され、一致アドレスまたはインデックスＭＡが判定される。一致アドレスまたはインデックスＭＡは、コンパランド・データと一致するデータを格納する最高優先順位の行セグメントまたは行セグメント・グループ（コンフィギュレーション情報に依存する）のアドレスである。最高優先順位のアドレスは、最低の番号のアドレス、最高の番号のアドレス、または他の所定の優先順位とすることができる。
【０１３４】
図４６に、図１３の優先順位エンコーダ・ロジック１１１２の一実施形態である優先順位エンコーダ・ロジック４４００を示す。優先順位エンコーダ・ロジック４４００は、行一致回路４４０２および行優先順位エンコーダ４４０４を、ＣＡＭセルの対応する行１１２２ごとに対して含む。それぞれの行一致回路は図２６の行一致回路２４０２と同じとすることができ、ＣＡＭセルの行の対応する一致線セグメントＭ１〜ＭＺのそれぞれから一致結果を受け取り、コンフィギュレーション情報に応答して、行一致信号ＭＲを生成する。主優先順位エンコーダ４４０６によって、Ｙ個の行一致信号ＭＲ（０）〜ＭＲ（Ｙ−１）に反映される一致結果が監視され、ｌｏｇ2Ｙビットのアドレス・ビットを有する行一致アドレスＰＲＡが生成される。この行アドレスはＣＡＭセルの最高優先順位の行１１２２のアドレスに対応し、この行は、所与のコンフィギュレーションに関してコンパランド・データと一致するデータを格納する行セグメントまたは行セグメントのグループを有する。
【０１３５】
それぞれの行優先順位エンコーダによって、ＣＡＭセルの行の対応する一致線セグメントＭ１〜ＭＺのそれぞれから一致結果が受け取られ、コンフィギュレーション情報に応答して、所与のコンフィギュレーションに関するコンパランド・データと一致するデータが格納されたＣＡＭセルの特定の行内における行セグメントまたは行セグメントのグループのアドレスに対応するセグメント・アドレスＰＳＡが生成される。行アドレスＰＲＡおよびセグメント・アドレスＰＳＡ（０）〜ＰＳＡ（Ｙ−１）が選択ロジック４４０８へ供給されて、コンフィギュレーション情報に応答して一致アドレスが生成される。
【０１３６】
一実施形態については、各セグメント・アドレスは、対応する行（およびアレイ１１０２）のコンフィギュレーションに依存する異なる値を反映するｌｏｇ2Ｚのアドレス・ビットを有する。例えば、図４７に、Ｗ＝７２およびＺ＝４の実施形態の行優先順位エンコーダ４４０２（０）を示す。この例については、行優先順位エンコーダ４４０２（２）は、一致線セグメントＭ１〜Ｍ４の一致結果および行１１２２（０）に関する２つのコンフィギュレーション、即ち、×７２ビット・モードおよび×１４４ビット・モード、を示すコンフィギュレーション信号ＳＺ７２およびＳＺ１４４に応答して、セグメント・アドレス・ビットＰＳＡ０（１）およびＰＳＡ０（０）を出力する。行セグメントのすべてを１つのグループ全体として使用する×２８８ビット・モードは、別々のコンフィギュレーション信号を必要としない。なぜなら、セグメント・アドレス出力が無視され、行アドレスＰＲＡが一致アドレスＭＡを反映するからである。×７２モードでは、ＳＺ７２がイネーブルにされ、それぞれの行セグメントＳ１〜ＳＺが一意にアドレス可能であり、Ｓ１がアドレス０を有し、Ｓ２がアドレス１を有し、Ｓ３がアドレス２を有し、Ｓ４がアドレス３を有するようにする。図４８に、×７２モードの行優先順位エンコーダ４４０２（０）によって実施される真理値表の一実施形態を示す。×１４４モードでは、ＳＺ１４４がイネーブルにされ、２セグメントのグループＳ１〜Ｓ２およびＳ３〜Ｓ４のそれぞれが一意にアドレス可能であり、Ｓ１〜Ｓ２がアドレス０を有し、Ｓ３〜Ｓ４がアドレス１を有するようにされる。図４９に、ＰＳＡ０（１）が行セグメントの各グループのアドレスを反映するのに使用され、ＰＳＡ０（０）が無視されるようにされる×１４４モードに関する行優先順位エンコーダ４４０２（０）によって実施される真理値表の一実施形態を示す。他の実施形態については、ＰＳＡ０（０）を使用して、行セグメントの各グループのアドレスを反映することもできる。図４８および図３７（およびそれに従って生成される対応するロジック）について他の真理値表を使用することができ、真理値表に示された信号の１または複数のものを論理的に相補（コンプリメント）するものを含む。
【０１３７】
任意のロジックまたは回路を使用して、図４８および図４９の真理値表を実施することができる。図５０に、論理０状態に関するＰＳＡ０（０）の生成の一実施形態であるロジック４８００を示す。他の実施形態を使用して、論理１状態に対するＰＳＡ０（１）を生成することもできる。ロジック４８００には、ＮＡＮＤゲート４８０６および４８０８ならびにインバータ４８０２および４８０４が含まれる。ＮＡＮＤゲート４８０８は、一方の入力をＭ３に結合され、他方の入力をインバータ４８０４を介してＭ２の論理補数に結合される。ＮＡＮＤゲート４８０６は、一方の入力をＮＡＮＤゲート４８０８の出力に結合され、他方の入力をインバータ４８０２を介してＭ１の論理補数に結合される。ＮＡＮＤゲート４８０６の出力はＳＡ０（０）を供給する。
【０１３８】
図５１に、ＰＳＡ０（１）の生成の実施形態であるロジック４９００を示す。他の実施形態を使用することもできる。ロジック４９００には、ＮＡＮＤゲート４９０２、４９０４、４９０６、および４９１０ならびにＮＯＲゲート４９０８が含まれる。ＮＡＮＤゲート４９０２は、一方の入力をＭ１に結合され、もう１つの入力をＭ２に結合される。ＮＡＮＤゲート４９０４は、一方の入力をＮＡＮＤゲート４９０４の出力に結合され、他方の入力をＳＺ１４４に結合される。ＮＡＮＤゲート４９０６は、一方の入力をＮＡＮＤゲート４９０６の出力に結合され、他方の入力をＮＡＮＤゲート４９１０の出力に結合される。ＮＡＮＤゲート４９１０は、一方の入力をＳＺ７２に結合され、他方の入力をＮＯＲゲート４９０８の出力に結合される。ＮＯＲゲート４９０８は、一方の入力をＭ１に結合され、他方の入力をＭ２に結合される。
【０１３９】
上で示したように、行アドレスおよびセグメント・アドレスＰＳＡ（０）〜ＰＳＡ（Ｙ−１）が選択ロジック４４０８へ供給される。行アドレスＰＲＡおよびバス１１２０上のコンフィギュレーション情報に応答して、選択ロジック４４０８は、行アドレスＰＲＡのＣＡＭセルの行に関連するセグメント・アドレスの１つを選択し、アレイ１１０２全体に対しての最高優先順位の一致アドレスＭＡを生成する。Ｙ×ＺＷモードでは、行アドレスだけにより、一致するエントリを有する最高優先順位のアドレスを示し、選択ロジック４４０８がＭＡとしてＰＲＡを供給する。他のコンフィギュレーションでは、選択ロジック４４０８が、ＭＡの上位ビットとして行アドレス、ＭＡの下位ビットとして対応するセグメント・アドレスを出力する。
【０１４０】
図５２に、選択ロジック４４０８の一実施形態を示す。他の実施形態を使用することもできる。この実施形態については、選択ロジック４４０８に、デコーダ４４１４、マルチプレクサ４４１０、および変換ロジック４４１２が含まれる。デコーダ４４１４によって、行アドレスＰＲＡがデコードされ、デコードされた行アドレスが選択信号としてマルチプレクサ４４１０へ供給される。デコードされた行アドレスに応答して、マルチプレクサ４４１０は、行アドレスＰＲＡのＣＡＭセルの行と関連するセグメント・アドレスＰＳＡ（０）〜ＰＳＡ（Ｙ−１）の１つを選択し出力する。行アドレスおよび選択されたセグメント・アドレスが、一緒になって、内部一致アドレスＩＭＡを構成する。Ｙ×ＺＷモードでは、変換ロジック４４１２が、ＭＡとしてＩＭＡを供給する。しかし、他のコンフィギュレーションについては、一致アドレスＭＡの一部として、セグメント・アドレス・ビットの全てが使用されるのではなく（例えば、図４７〜図５１の例の×１４４ビット・モードにおける最下位ビットＳＡ０（０））、または、セグメント・アドレス・ビットの何れも使用されない（例えば、ＰＲＡだけがＭＡの生成に使用されるＺＹ×Ｗモードにおいて）。これらのコンフィギュレーションについては、変換ロジック４４１２によってＩＭＡのビットが変換またはシフトされ、一致アドレスがその最下位ビットから始まるようにされる。代替の実施形態については、ＭＡの使用されない下位ビットを単純に無視し、変換ロジック４４１２を省略することができる。
【０１４１】
図５３に、図５２の変換ロジック４４１２の実施形態であるマルチプレクサ５１００を示す。マルチプレクサ５１００によって、コンフィギュレーション信号ＳＺ１およびＳＺＧ（１）〜ＳＺＧ（ｎ−１）が受け取られて、ＰＲＡ／ＰＳＡの連結したものの１つが選択され、一致アドレスとして出力される。この実施形態では、一致アドレスが、ｑ＝ｌｏｇ2ＺＹのアドレス・ビットを有し、マルチプレクサ５１００が、ＰＲＡ／ＰＳＡ連結の１つを出力するが、ここにおいては、セグメント・アドレス・ビットが一致アドレスの最下位ビットで始まるようにされる。一致アドレスの使用されていないアドレス・ビットを、例えば、論理０状態にセットすることができる。Ｙ×ＺＷモードでは、ＳＺ１がイネーブルにされ、マルチプレクサ５１００が、ＰＲＡ、ＰＳＡ［ｐ−１：０］を選択して、ＭＡ［ｑ−１：０］として供給するが、ここで、ｐ＝ｌｏｇ2Ｚである。ＺＹ／２×２Ｗモードでは、ＳＺＧ（１）がイネーブルにされ、マルチプレクサ５１００が、ＰＲＡ、ＰＳＡ［ｐ−１：１］を選択して、ＭＡ［ｑ−２：０］として供給する。ＺＹ／（Ｚ−１）×（Ｚ−１）Ｗモードでは、ＳＺＧ（ｎ−１）がイネーブルにされ、マルチプレクサ５１００が、ＰＲＡ、ＰＳＡ［ｐ−１］を選択して、ＭＡ［ｌｏｇ2Ｙ：０］として供給する。最後に、ＺＹ×Ｗモードでは、マルチプレクサ５１００が、ＭＡ［ｌｏｇ2Ｙ−１：０］としてＰＲＡを供給する。もう１つの実施形態については、マルチプレクサ５１００をＡＮＤ論理ゲートおよびＯＲ論理ゲートで実施し、各コンフィギュレーション信号が、それに対応するＰＲＡ／ＰＳＡ組合せと論理ＡＮＤをとられ、ＡＮＤゲートの出力がＯＲロジックへ供給されてＭＡが生成されるようにすることができる。
【０１４２】
もう１つの実施形態については、変換ロジック４４１２をシフト・レジスタとすることができ、このシフト・レジスタによって、ＩＭＡを受け取り、コンフィギュレーション情報を使用して、シフト・レジスタから下位ビットをシフト・アウトする回数（例えば、２で割る）を示すことができる。一実施形態については、各コンフィギュレーションが所定のカウント値に関連付けられ、そのカウントは、カウントが０に達するまで、シフトのたびに減分される。他の実施形態を使用することもできる。
【０１４３】
図５４に、図１３の優先順位エンコーダ・ロジック１１１２のもう１つの実施形態である優先順位エンコーダ・ロジック５２００を示す。優先順位エンコーダ・ロジック５２００には、優先順位エンコーダ（ＰＥ）インターフェース回路５２０２（０）〜５２０２（Ｙ−１）、優先順位エンコーダ５２０４、および変換ロジック５２０６が含まれる。各インターフェース回路５２０２（０）〜５２０２（Ｙ−１）によって、ＣＡＭセルの行の対応する一致線セグメントＭ１〜ＭＺのそれぞれからの一致結果が受け取られ、コンフィギュレーション情報に応答して、優先順位エンコーダ５２０４のＺ個の優先順位エンコーダ入力信号が生成される。Ｙ個のインターフェース回路によって、合計ＺＹ個の入力信号ＰＥ（０）−ＰＥ（ＺＹ−１）が生成される。優先順位エンコーダ５２０４によって、ＺＹ個の優先順位エンコーダ入力信号がエンコードされ、ｌｏｇ2ＺＹのアドレス・ビットを有する内部または中間一致アドレスＩＭＡが生成される。ＩＭＡは、所与のコンフィギュレーションに関するコンパランド・データと一致するデータが格納された行セグメントまたは行セグメントのグループを有するＣＡＭセルの最高優先順位の行１１２２のアドレスに対応する。コンフィギュレーション情報に応答して、変換ロジック５２０６は、ＩＭＡまたはＩＭＡのビット変換されたものを、一致アドレスＭＡとして出力する。代替の実施形態については、ＩＭＡをＭＡとして供給することができ、ＭＡの使用していない下位ビットを単純に無視し、変換ロジック４２１２を省略することができる。
【０１４４】
優先順位エンコーダ・インターフェース回路の動作を、図５５のインターフェース回路５３００によって更に説明する。インターフェース回路５３００は、アレイ１１０２がＣＡＭセルのＹ＝１０２４個の行を有し、各行がＷ＝７２のＣＡＭセルのＺ＝４のセグメントを有する図５４のインターフェース回路５２０２（０）の一実施形態である。インターフェース回路５３００は、すべてのインターフェース回路に使用することもできる。インターフェース回路５３００には、ＡＮＤゲート５３０６〜５３０９およびＯＲゲート５３１０〜５３１１が含まれる。ＡＮＤゲート５３０３〜５３０６のそれぞれによって、コンフィギュレーション信号ＳＺ７２およびＭ１〜Ｍ４の１つが受け取られる。ＡＮＤゲート５３０３によってＰＥ（０）が供給され、ＡＮＤゲート５３０５によってＰＥ（２）が供給される。ＡＮＤゲート５３０７によってＭ１、Ｍ２、およびコンフィギュレーション信号ＳＺ１４４が受け取られる。ＯＲゲート５３１０は、ＡＮＤゲート５３０７および５３０３の出力に応答してＰＥ（１）を供給する。ＡＮＤゲート５３０８によって、Ｍ３、Ｍ４、およびコンフィギュレーション信号ＳＺ１４４が受け取られる。ＡＮＤゲート５３０９によって、Ｍ１〜Ｍ４およびコンフィギュレーション信号ＳＺ２８８が受け取られる。ＯＲゲート５３１１は、ＡＮＤゲート５３０６、５３０８、および５３０９の出力に応答してＰＥ（３）を供給する。
【０１４５】
４ｋ×７２モードでは、コンフィギュレーション信号ＳＺ７２がイネーブルにされて、ＡＮＤゲート５３０３〜５３０６ならびにＯＲゲート５３１０および５３１１がそれぞれＭ１〜Ｍ４の論理状態をＰＥ（０）〜ＰＥ（３）へ供給できるようになる。このモードでは、４ｋの個々の行セグメントのすべてが０から４ｋ−１の一意のアドレスを有する。
【０１４６】
２ｋ×１４４モードでは、コンフィギュレーション信号ＳＺ１４４がイネーブルにされ、行セグメントが、アドレス可能な対Ｓ１〜Ｓ２およびＳ３〜Ｓ４にグループ化される。このモードでは、コンフィギュレーション信号ＳＺ７２がディスエーブルにされ、ＰＥ（０）およびＰＥ（２）がディスエーブルにされるようにする。最初の対Ｓ１〜Ｓ２がコンパランド・データと一致するデータを格納する場合、Ｍ１およびＭ２がイネーブルにされ、ＡＮＤゲート５３０７およびＯＲゲート５３１０がＰＥ（１）をイネーブルにする。Ｓ１〜Ｓ２は行セグメントの最初にアドレス可能なグループなので、このコンフィギュレーションではアドレス０を有する。しかし、ＰＥ（１）がイネーブルにされる時、優先順位エンコーダ５２０４は、ＩＭＡとして１のアドレスが出力する。変換ロジック５２０６によって、ＩＭＡのビット位置が１つだけ変換またはシフトされ、ＩＭＡの最下位ビットが捨てられ、ＭＡが１ではなく０のアドレスを反映するようにされる。同様に、第２の対Ｓ３〜Ｓ４がコンパランド・データと一致するデータを格納する場合、Ｍ３およびＭがイネーブルにされ、ＡＮＤゲート５３０８およびＯＲゲート５３１１がＰＥ（３）をイネーブルにする。Ｓ３〜Ｓ４は、行セグメントの２番目のアドレス可能なグループなので、このコンフィギュレーションではアドレス１を有する。しかし、ＰＥ（３）がイネーブルにされる（そしてＰＥ（１）がイネーブルにされない）時、優先順位エンコーダ５２０４は、ＩＭＡとして２のアドレスを出力する。変換ロジック５２０６は、ＩＭＡのビット位置を１つだけ変換またはシフトし、ＩＭＡの最下位ビットが捨てられ、ＭＡが２ではなく１のアドレスを反映するようにする。
【０１４７】
最後に、１ｋ×２８８モードでは、コンフィギュレーション信号ＳＺ２８８がイネーブルにされ、行セグメントのすべてが一緒にグループ化されて、単一のアドレス可能な行が形成される。このモードでは、コンフィギュレーション信号ＳＺ７２およびＳＺ１４４がディスエーブルにされ、ＰＥ（０）〜ＰＥ（２）がディスエーブルにされるようにする。すべての行セグメントＳ１〜Ｓ４が、２８８ビット・コンパランド・データと一致するデータを格納する場合、Ｍ１〜Ｍ４がイネーブルにされ、ＡＮＤゲート５３０９およびＯＲゲート５３１１がＰＥ（３）をイネーブルにする。グループＳ１〜Ｓ４は、行セグメントの最初の（および唯一の）アドレス可能なグループなので、このコンフィギュレーションではアドレス０を有する。しかし、ＰＥ（３）がイネーブルにされる時、優先順位エンコーダ５２０４は、ＩＭＡとして３のアドレスを出力する。変換ロジック５２０６は、ＩＭＡのビット位置を２つだけ変換またはシフトし、ＩＭＡの最下位ビットが捨てられ、ＭＡは３ではなく０のアドレスを反映するようにする。
【０１４８】
図５６に、優先順位エンコーダ・インターフェース回路５２０２（０）〜５２０４（Ｙ−１）のそれぞれの全般的な機能を要約する。コンフィギュレーションＺＹ×Ｗでは、ＳＺ１がイネーブルにされ、ＰＥ入力に、それに対応する一致線セグメントの論理状態がセットされる。このモードでは、変換ロジック５２０６は、ＭＡとしてＩＭＡを供給する。コンフィギュレーションＺＹ／２×２Ｗ（即ち、ｎ＝２）では、ＳＺＧ（１）がイネーブルにされ、２個目ごと（ｎ番目）のＰＥ入力が、対応する最初のグループ一致結果にセットされる。他のすべてのＰＥ入力は不一致状態にセットされ、変換ロジック５２０６は、ＩＭＡ内のビット位置を１位置だけ変換またはシフトして、ＩＭＡの最下位ビットが捨てられてＭＡが生成されるようにする。コンフィギュレーションＺＹ／４×４（即ち、ｎ＝４）では、ＳＺＧ（１）がイネーブルにされ、４個目毎（ｎ番目）のＰＥ入力が、対応する第２のグループの一致結果にセットされる。他のすべてのＰＥ入力は不一致状態にセットされ、変換ロジック５２０６は、ＩＭＡ内のビット位置を２位置だけ変換またはシフトして、ＩＭＡの最下位２ビットが捨てられてＭＡが生成されるようにする。この処理は、コンフィギュレーションＹ×ＺＷ（即ち、ｎ＝Ｚ）では、ＳＺＧ（ｎ−１）がイネーブルにされ、Ｚ個目毎（ｎ番目）のＰＥ入力が、対応する行グループ一致結果にセットされるまで、継続される。他のすべてのＰＥ入力は不一致状態にセットされ、変換ロジック５２０６は、ＩＭＡ内のビット位置を（Ｚ−１）位置だけ変換またはシフトして、ＩＭＡの下位の（Ｚ−１）ビットが捨てられてＭＡが生成されるようにする。図５５に示されたロジックは、任意の数の行セグメントおよび任意の数のコンフィギュレーションに対処するように拡張することができる。代替案では、それぞれの優先順位インターフェース回路をマルチプレクサとすることができ、このマルチプレクサが、選択信号としてコンフィギュレーション信号を使用して、図５６に示されるように、一致線セグメントからの一致結果を選択するようにする。
【０１４９】
図５７に、図５４の変換ロジック５２０６の一実施形態であるマルチプレクサ５５００を示す。マルチプレクサ５５００によって、コンフィギュレーション信号ＳＺ１およびＳＺＧ（１）〜ＳＺＧ（ｎ−１）が受け取られて、ＩＭＡアドレス・ビット・ストリングの１つが選択されて一致アドレスとして出力される。この実施形態では、一致アドレスが、ｑ＝ｌｏｇ2ＺＹのアドレス・ビットを有し、マルチプレクサ５５００は、一致アドレスの最下位ビットで始まるＩＭＡビット・ストリングの１つを出力する。一致アドレスの使用していないアドレス・ビットに、論理０状態をセットすることができる。Ｙ×ＺＷモードでは、ＳＺ１がイネーブルにされ、マルチプレクサ５５００はＩＭＡ［ｑ−１：０］を選択してＭＡ［ｑ−１：０］として供給する。ＺＹ／２×２Ｗモードでは、ＳＺＧ（１）がイネーブルにされ、マルチプレクサ５５００はＩＭＡ［ｑ−１：１］を選択してＭＡ［ｑ−２：０］として供給する。ＺＹ／４×４Ｗモードでは、ＳＺＧ（２）がイネーブルにされ、マルチプレクサ５５００はＩＭＡ［ｑ−１：２］を選択してＭＡ［ｑ−３：０］として供給する。最後に、ＺＹ×Ｗモードでは、マルチプレクサ５５００がイネーブルにされ、マルチプレクサ５５００はＩＭＡ［ｑ−１：ｌｏｇ2Ｙ］を選択してＭＡ［ｌｏｇ2Ｙ−１：０］として供給する。もう１つの実施形態については、マルチプレクサ５１００をＡＮＤ論理ゲートおよびＯＲ論理ゲートで実施し、各コンフィギュレーション信号と、それに対応するＩＭＡビット・ストリングとの論理ＡＮＤをとり、ＡＮＤゲートの出力をＯＲロジックに供給するようにする。
【０１５０】
もう１つの実施形態については、変換ロジック５２０６をシフト・レジスタとして、このシフト・レジスタによって、ＩＭＡを受け取り、コンフィギュレーション情報を使用して、シフト・レジスタから最下位ビットをシフト・アウトする回数（例えば、２で割る）を示すことができる。一つの実施形態については、各コンフィギュレーションが所定のカウント値に関連付けられ、そのカウントが、カウントが０に達するまで、シフトのたびに減分される。他の実施形態を使用することもできる。
【０１５１】
図５８に、図５５の例に対して構成されたマルチプレクサ５５００の一実施形態を示す。この実施形態では、ＳＺ７２によってＩＭＡ［１１：０］が選択されてＭＡ［１１：０］として供給され、ＳＺ１４４によってＩＭＡ［１１：１］が選択されてＭＡ［１０：０］として供給され、ＳＺ２８８によってＩＭＡ［１１：２］が選択されてＭＡ［９：０］として供給される。この実施形態を、図５３の変換ロジック５１００に使用することもできる。
【０１５２】
行内コンフィギュレーション可能性を有する区分可能なＣＡＭデバイス
図５９にＣＡＭデバイス５９００の一実施形態を示し、このＣＡＭデバイス５９００は、図１〜図１２に関して説明した独立に選択可能なＣＡＭブロックによって形成されるＣＡＭアレイ５９１０を含み、図１３〜図５８に関して説明した行内コンフィギュレーション可能性（行内コンフィギュレーション能力）を有する。ＣＡＭデバイス５９００には、４つの独立の選択可能なコンフィギュレーション可能なＣＡＭブロック５９０９（０）〜５９０９（３）（代替の実施形態では、より多数または少数のブロックを設けることができる）、４つのブロック・フラグ回路５９１４（０）〜５９１４（３）、および４つのコンフィギュレーション可能なＣＡＭブロックに対応する４つのブロック優先順位エンコーダ５９１２（０）〜５９１２（３）によって形成されるＣＡＭアレイ５９１０と、グローバル優先順位エンコーダ５９１８と、グローバル・フラグ回路５９１６と、命令デコーダ５９０４と、ブロック選択回路５９０２と、アドレス回路５９０６とが含まれる。読取命令、書込命令、および比較命令などの命令は、命令バス５９０１を介してホスト・プロセッサ（図示せず）によって、ＣＡＭデバイス５９００へ発行される。読取命令および書込命令の場合、ホスト・プロセッサは、更に、アドレス・バス５９２５を介してＣＡＭデバイスへアドレス値を発行して、ＣＡＭアレイ５９１０内のアクセスされる位置を指定することができる。図５９に示されていない他の回路パスもＣＡＭデバイス５９００に結合することができ、これには、制限なしに、ＣＡＭデバイス５９００へホスト供給のコンパランド値を供給するコンパランド・バス、およびＣＡＭデバイス５９００からステータス情報を出力できるようにするステータス・バスが含まれる。また、ＣＡＭデバイス５９００に、図５９に示されていない多数の追加回路ブロックを含めることができ、これには、制限なしに、コンパランド・レジスタ、グローバル・マスク・レジスタ、コンフィギュレーション・レジスタ、ステータス・レジスタ、読取／書込回路、およびエラー検査回路が含まれる。
【０１５３】
命令デコーダ５９０４は、命令バス５９０１を介して受け取られる命令に応答して、指定された動作を実行するためにＣＡＭデバイス５９００内の他の回路ブロックへタイミング信号および制御信号を出力する。一実施形態では、入ってくる命令に、命令が向けられるＣＡＭアレイ内の記憶区画（即ち、ＣＡＭアレイ内の１または複数のブロックおよび／またはブロックの部分）を指定するクラス・コードを含めることができる。クラス・コードは、命令の命令コードの一部（例えば、命令コードにエンコードされる）、命令に関連するオペランドの一部、または命令に関連する別個のオペランドとすることができる。更に、所与の命令（例えば、命令コード、クラス・コード、他のオペランドなど）の異なる部分を、例えば、別個の伝送またはパケット・ベースの伝送で、異なる時に受け取ることができる。また、クラス・ベースの命令を、前に受け取られたクラス・コードに従って実行することもできる。例えば、ＣＡＭアレイの第１記憶区画を指定するクラス・コードを、ＣＡＭデバイスへ送ることができる。その後、特定のクラスを指定しないクラス・ベースの比較命令、読取命令、および書込命令によって、対応する比較動作、読取動作、および書込動作が、異なるクラス・コードがＣＡＭデバイス５９００へ発行されるまで、ＣＡＭアレイの第１記憶区画に対して実行される。
【０１５４】
一実施形態では、各クラス・コードは、ＣＡＭブロックの幅／深さコンフィギュレーションに対応し、それにより、異なるクラス・コードの数が、許容される幅／深さコンフィギュレーションの数によって決定される。代替の実施形態では、異なるクラス・コードを他の基準に従って割り当てることができ、制限するものではないが、その基準には、対応する記憶区画（記憶パーティション）に格納されるデータのタイプ（例えば、ＡＴＭ、ＩＰｖ４、ＩＰｖ４マルチキャスト、イーサネット（登録商標）、ＵＲＬ、ＭＰＬＳなど）や、対応する記憶区画に格納されるデータに対して実行されるオペレーションのタイプまたは目的（例えば、記憶区画のあるクラスを使用して転送アドレスを判定することができ、記憶区画の別のクラスを分類目的のために使用することができる）が含まれ、また、データ・タイプ、記憶コンフィギュレーション、または動作タイプ／目的の任意の組合せを用いて割り当てることができる。ＣＡＭデバイス５９００を参照すると、例えば、ＩＰｖ４値を、ＣＡＭブロック５９０９（０）に格納し、ＭＰＬＳ値をＣＡＭブロック５９０９（１）に格納することができる。ＩＰｖ４値およびＭＰＬＳ値に異なるクラス・コードを割り当てることによって、これらの値を含む特定のＣＡＭブロックに対して、これらのＣＡＭブロックの幅／深さコンフィギュレーションが同一であるか異なるかにかかわらずに、動作（例えば比較、書込、読取）を実行することが可能になる。一般に、記憶区画の間での区別のための任意の判断基準を、本発明の趣旨および範囲から逸脱せずに使用することができる。
【０１５５】
図５９の実施形態では、命令デコーダによって、クラス・コード５９０７がブロック選択回路５９０２へ出力され、それに応答するブロック選択回路５９０２によって、ブロック選択信号５９０５（０）〜５９０５（３）およびブロック・コンフィギュレーション信号５９０３（０）〜５９０３（３）がＣＡＭアレイ５９１０へ出力される。ブロック選択信号５９０５は、図１〜図１２に関して説明した様式で使用されて、対応するＣＡＭブロック５９０９が、比較動作への参加のために選択されるまたは選択されないようにする。一実施形態では、ブロック・コンフィギュレーション信号５９０３は、図１３〜図５８に関して説明したコンフィギュレーション信号に対応するものであり、ブロック優先順位エンコーダ５９１２およびブロック・フラグ回路５９１４へ供給されて、ブロック・フラグおよびブロック・インデックスの生成のためにアレイの幅および深を指定する。ブロック・フラグ回路５９１４（０）〜５９１４（３）のそれぞれによって、１または複数のブロック・フラグ信号５９１５（０）〜５９１５（３）が、グローバル・フラグ回路５９１６およびグローバル優先順位エンコーダ５９１８へ出力される。ブロック優先順位エンコード回路５９１２（０）〜５９１２（３）のそれぞれによって、ブロック・インデックス５９１７（０）〜５９１７（３）がグローバル優先順位エンコーダ５９１８へ出力される。グローバル・フラグ回路５９１６によって１または複数のデバイス・フラグ信号５９２２が生成され、グローバル優先順位エンコーダによってデバイス・インデックス５９２０が生成される。後に説明するように、ブロック・フラグ回路５９１４（０）〜５９１４（３）のそれぞれによって、ブロック複数一致フラグ信号（図示せず）をグローバル・フラグ回路５９１６へ出力することもでき、そのグローバル・フラグ回路５９１６によってデバイス複数一致フラグ信号５９２４が出力される。
【０１５６】
更に図５９を参照する。クラス・コード５９０７は、制御信号５９１３および選択信号５９１１と共にアドレス回路５９０６へ供給される。後に説明するが、アドレス回路５９０６に、クラス・ベースのアドレスを維持するレジスタ・バンクを含めることができ、このクラスベースのアドレスは、或る読取命令および書込命令に応答してＣＡＭアレイ５９１０にアクセスするのに使用されるものである。代替の実施形態では、クラス・コード５９０７を、命令バス５９０１から直接にブロック選択回路５９０２および／またはアドレス回路５９０６に直接に供給することができる。アドレス回路５９０６に、図７のアドレス・ロジック７０１および／または図１３のアドレス・ロジック１１０４を含めることもできる。更に、ブロック選択回路５９０２に、図１の選択回路１０６（１）〜１０６（ｎ）などのような複数の別々の選択回路を含めることができ、この選択回路のそれぞれは、それに対応するＣＡＭブロックのクラス・コードを格納するようにコンフィギュレーションされる。
【０１５７】
図６０に、一実施形態によるブロック選択回路５９０２を示す。このブロック選択回路５９０２には、ＣＡＭアレイのブロックごとに別々のサブ回路６００４（０）〜６００４（３）が含まれる。サブ回路６００４（０）〜６００４（３）のそれぞれ（例えば、図１の選択回路１０６（１）〜１０６（４）に対応する）に、ブロック・コンフィギュレーション・レジスタ６００２（０）〜６００２（３）（例えば、図３のメモリ３０２など）、比較器回路６００６（例えば、図３の比較回路３０４など）、およびゲーティング回路６００８が含まれる。ブロック・コンフィギュレーション・レジスタ６００２（０）〜６００２（３）は、図１３のコンフィギュレーション・レジスタ１１１８などのような、別個のレジスタ、または単一のレジスタの個々の部分とすることができる。それぞれの比較器回路６００６は、対応するブロック・コンフィギュレーション・レジスタ６００２からブロック・コンフィギュレーション信号を受け取り、命令デコーダから（または、その代わりに命令バスから直接に）クラス・コード５９０７を受け取るように結合される。比較器回路６００６のそれぞれには、入ってくるクラス・コード５９０７を、対応するブロック・コンフィギュレーション・レジスタ６００２の内容と比較して、ブロック選択信号５９０５（０）〜５９０５（３）（例えば、図１の選択信号ＳＥＬ＿１〜ＳＥＬ＿ｎなど）を生成する回路が含まれる。クラス・コード５９０７が、対応するブロック・コンフィギュレーション・レジスタ６００２の内容と一致する場合、比較器回路６００６によってブロック選択信号５９０５がアサートされる。逆に、クラス・コード５９０７が、対応するブロック・コンフィギュレーション・レジスタ６００２の内容と一致しない場合、比較器回路６００６によってブロック選択信号５９０５がデアサートされる。
【０１５８】
ゲーティング回路６００８のそれぞれが、対応する比較器回路６００６からそれぞれのブロック選択信号５９０５を受け取り、対応するブロック・コンフィギュレーション・レジスタ６００２からそれぞれのブロック・コンフィギュレーション信号を受け取るように結合される。各ゲーティング回路６００８には、ブロック・コンフィギュレーション信号５９０３（０）〜５９０３（３）の１つを、対応するブロック選択信号５９０５がアサートされる場合に出力するロジックが含まれる。対応するブロック選択信号５９０９がアサートされない場合、ブロック・コンフィギュレーション信号５９０３が、例えば、ブロック・コンフィギュレーション信号５９０３のすべてのコンポーネント信号（図６０に示さず）を強制的にリセット状態にすることによって、マスクされる。代替の実施形態では、ゲーティング回路６００８が省略され、それにより、ブロック・コンフィギュレーション信号５９０３（０）〜５９０３（３）が、対応するブロック選択信号５９０５（０）〜５９０５（３）の状態に無関係に、ブロック優先順位エンコーダおよびブロック・フラグ回路へ出力されるようになる。
【０１５９】
図６１に、一実施形態によるゲーティング回路６００８を示す。図に示すように、ブロック・コンフィギュレーション・レジスタ６００２に格納されたブロック・コンフィギュレーション値の各コンポーネント・ビットが、それぞれのＡＮＤ論理ゲート６１０２に入力され、ブロック選択信号５９０５と論理ＡＮＤをとられる。従って、ブロック選択信号５９０５がアサートされる場合（対応するＣＡＭブロックが、命令された動作に参加するために選択されることを示す）、ブロック・コンフィギュレーション信号５９０３のコンポーネント信号のそれぞれが、ゲーティング回路６００８によって出力される。逆に、ブロック選択信号５９０５がデアサートされる場合、ブロック・コンフィギュレーション信号５９０３のコンポーネント信号が強制的にリセット状態にされる。
【０１６０】
図６２に、一実施形態によるブロック・フラグ回路５９１４を示す。ブロック・フラグ回路５９１４には、複数の行フラグ回路６２０２（０）〜６２０２（Ｙ−１）が含まれ、この行フラグ回路のそれぞれが、ＣＡＭブロック５９０９の行６２２２（０）〜６２２２（Ｙ−１）それぞれからの一致信号Ｍ1〜ＭZおよび妥当性信号Ｖ1〜ＶZを受け取るように結合される。妥当性信号によって、ＣＡＭブロック５９０９内に格納された妥当性値の状態が表される。それぞれの妥当性値には１または複数のビットを含めることができ、ＣＡＭブロック５９０９の行６２２２（０）〜６２２２（Ｙ−１）内の行セグメントの１つに対応し、行セグメントが有効なＣＡＭワードを含むかどうかを示す。代替案では、行セグメントのグループによって、１または複数の妥当性信号を共用することができる。
【０１６１】
ブロック・コンフィギュレーション信号５９０３、および好ましくは命令デコーダによって生成される動作選択信号６２０８が、それぞれの行フラグ回路６２０２へ入力される。後に述べるように、動作選択信号６２０８は、入力信号の何れの組（即ち、一致信号Ｍ1〜ＭZまたは妥当性信号Ｖ1〜ＶZ）が行フラグ回路６２０２内のロジック回路によってオペレーションされるかを選択するのに使用される。一実施形態では、ブロック・コンフィギュレーション信号５９０３が、ＣＡＭブロックの幅／深さコンフィギュレーションに従って行フラグ回路から行フラグ信号６２０７を出力するための１または複数の論理回路を選択するために使用される。
【０１６２】
行フラグ回路６２０２（０）〜６２０２（Ｙ−１）によって出力される行フラグ信号６２０７（０）〜６２０７（Ｙ−１）はブロック・フラグ・ロジック６２０４へ入力され、ブロック・フラグ・ロジック６２０４はブロック・フラグ信号５９１５を生成する。一実施形態では、ブロック・フラグ・ロジック６２０４はＯＲ論理ゲートであり、行フラグ信号６２０７（０）〜６２０７（Ｙ−１）の何れかがアサートされる場合にブロック・フラグ信号５９１５をアサートする。従って、比較動作の場合、行フラグ回路６２０２（０）〜６２０２（Ｙ−１）の何れかによる行フラグ信号６２０７のアサート、即ち、対応するＣＡＭ行に格納された内容とコンパランドとの間の一致が示されることによって、ＣＡＭブロック５９０９に関する一致信号（即ち、ブロック・フラグ信号５９１５）のアサートがなされることとなる。同様に、書込動作の場合、行フラグ回路６２０２（０）〜６２０２（Ｙ−１）の何れかによる行フラグ信号６２０７のアサート、即ち、満杯でない行が示されることによって、ＣＡＭブロック５９０９に関する非満杯信号（即ち、ブロック・フラグ信号５９１５）のアサートがなされることとなる。非満杯信号は、デアサートされる時に、ブロックが満杯であることを示し、従って、フル（満杯）・フラグとみなすことができる。後に述べるように、ブロック・コンフィギュレーション信号５９０３がブロック選択信号５９１５によってゲーティングされる実施形態では、行フラグ回路６２０２内のロジックによって、対応するＣＡＭブロックが命令された動作（例えば、書込動作または比較動作）への参加のために選択されない場合に、行フラグ信号のアサートが防止される。従って、ＣＡＭブロック５９０５が動作への参加のために選択されない場合には、所与の行６２２２（０）〜６２２２（Ｙ−１）（またはその一部）の内容がコンパランドと一致するかどうかに無関係に、また、１または複数の行６２２２（０）〜６２２２（Ｙ−１）が満杯でないかどうかに無関係に、行フラグ信号６２０７（０）〜６２０７（Ｙ−１）はアサートされない。対照的に、ブロック・コンフィギュレーション信号５９０３がブロック選択信号５９０５によってゲーティングされない実施形態では、行フラグ回路６２０２（０）〜６２０２（Ｙ−１）は、対応するＣＡＭブロック５９０９が選択されないという事実にかかわらず、１または複数の行フラグ信号６２０７（０）〜６２０７（Ｙ−１）をアサートすることができる。従って、そのような実施形態では、ブロック選択信号５９０５をブロック・フラグ回路６２０４へ入力して、ブロックが所与の動作への参加のために選択されない場合にブロック選択信号５９１５のアサートを防ぐことが望ましい。これを、図６２の破線６２０９によって示す。代替案では、ブロック選択信号を行フラグ回路６２０２（０）〜６２０２（Ｙ−１）のそれぞれへ供給して、個々の行フラグ信号６２０７（０）〜６２０７（Ｙ−１）をゲーティングすることができる。
【０１６３】
図６３に、図６２からの行フラグ回路６２０２を詳細に示す。行フラグ回路６２０２は、ＣＡＭブロック内の行６２２２のセグメントＳ1〜ＳZからそれぞれ一致フラグ信号Ｍ1〜ＭZおよび妥当性信号Ｖ1〜ＶZを受け取る。一実施形態では、一致信号がアクティブ・ハイであり、論理「１」が、行６２２２の対応するセグメントがコンパランド（またはその一部）と一致することを示すようにし、そして、妥当性信号がアクティブ・ローであり、論理「１」が、行６２２２の対応するセグメントに有効なＣＡＭワードがロードされていないことを示すようにする。ある展望から、妥当性信号を、「非満杯」信号とみなすことができ、行６２２２自体が満杯であるか否かの判定に使用することができる。
【０１６４】
更に図６３を参照する。動作選択信号６２０８がマルチプレクサ６３０８（０）〜６３０８（ｎ−１）のそれぞれの選択入力へ印加されて、妥当性信号または一致信号の何れかが、ｎ個のフラグ・ロジック回路の対応する１つに対して出力される１組のフラグ信号Ｆ1〜ＦZとして選択される。ｎ個のフラグ・ロジック回路には、フラグ１ロジック回路６３０２およびグループ・フラグ・ロジック回路６３０４（１）〜６３０４（ｎ−１）が含まれる。代替の実施形態では、単一のマルチプレクサを使用して、一致信号と妥当性信号との間での選択を行うことができ、出力フラグ信号Ｆ１〜ＦＺは、ロジック回路６３０２および６３０４（１）〜６３０４（ｎ−１）のそれぞれへファン・アウトする。マルチプレクサ６３０８（０）〜６３０８（Ｎ−１）を、行フラグ回路６２０２内の残りの回路と別に見ることによって、行フラグ回路６２０２を図２６の一致フラグ・ロジック２４００または図３２の一致フラグ・ロジック３０００の何れかと同様に実施できることが理解される。図２６の一致フラグ・ロジック２４００を更に具体的に参照する。フラグ１ロジック回路６２０２は、図２７の１一致ロジック回路２５０２（即ち、図２８に関して説明したもの）と同様に実施することができ、グループ・フラグ・ロジック回路６３０４（１）〜６３０４（ｎ−１）のそれぞれは、グループ一致ロジック回路２５０４（１）〜２５０４（ｎ−１）（即ち、図２９Ａ、２９Ｂ、および２９Ｃに関して説明したもの）それぞれと同様に実施することができる。また、フラグ・ロジック回路のそれぞれの出力である信号６３０７（０）〜６３０７（ｎ−１）は行コンフィギュレーション・ロジック６３０６へ入力され、行コンフィギュレーション・ロジック６３０６は、図２７の一致コンフィギュレーション・ロジック２５０６と同様に実施することができる。即ち、行コンフィギュレーション・ロジック６３０６に、ブロック・コンフィギュレーション信号ＣＦＧのコンポーネント信号（即ち、コンポーネント信号ＳＺ１およびＳＺＧ（１）〜ＳＺＧ（ｎ−１））およびフラグ信号６３０７（０）〜６３０７（ｎ−１）に応答して、一致コンフィギュレーション・ロジック２５０６によって出力される行一致信号ＭＲ０に対応する行フラグ信号６２０７を生成する回路を含めることができる。具体的には、行コンフィギュレーション・ロジック６３０６は、例えば、図３０および図３１に示されるように、ＭＯＮＥの代わりに信号６３０７（０）（即ち、ＦＯＮＥ）、およびＭＧ（１）〜ＭＧ（ｎ−１）の代わりに信号６３０７（１）〜６３０７（ｎ−１）（即ち、ＦＧ（１）〜ＦＧ（ｎ−１））をそれぞれ用いることによって、実施することができる。代替の実施形態では、行コンフィギュレーション・ロジックを省略し、フラグ信号６３０７（０）〜６３０７（Ｎ−１）を、図３２のアレイ一致回路２４０４と同様に実施されるブロック・フラグ回路へ供給することができる。即ち、フラグ信号６３０７（０）〜６３０７（ｎ−１）を、アレイ一致回路３００４（即ち、図３３〜図３７に関してのさまざまな実施形態で説明したもの）と同様に実施されるブロック一致回路へ供給することができ、このブロック一致回路は、アレイ一致フ���グではなくブロック・フラグ信号（例えば、図５９の信号５９１５）を出力する。
【０１６５】
図５９、図６２、および図６３を参照する。動作選択信号６２０８信号が第１論理状態にある時、フラグ信号Ｆ１〜ＦＺは、各行６２２２からの一致信号Ｍ１〜ＭＺに対応する。フラグ信号は、このモードでは、所与のＣＡＭブロックおよびクラス・コードに関する一致状態または複数一致状態をシグナリングするのに使用される。例えば、一致信号が、行セグメント（またはそのグループ）の何れかがコンパランド値と一致することを示す時、その行に関する行フラグ信号６２０７は一致状態を示す。行フラグ信号６２０７（０）〜６２０７（Ｙ−１）の何れかが一致状態を示す場合、対応するブロック・フラグ回路６２０４は、ブロック・フラグ信号５９１５をアサートすることによって、ＣＡＭブロックおよびクラス・コードに対するブロック一致状態を示す。同じクラス・コードを有するブロックの何れかに対してブロック一致状態が示される場合には、グローバル・フラグ回路５９１６は、デバイス・フラグ信号５９２２をアサートすることによって、一致状態を示す。この構成によって、入来するクラス・コードに従ってのクラス毎ベースで、比較動作を実行することができ、一致状態（および複数一致状態）をシグナリングすることができる。
【０１６６】
動作選択信号６２０８が第２論理状態である時、フラグ信号Ｆ１〜ＦＺが、各行６２２２からの妥当性信号Ｖ１〜ＶＺに対応する。フラグ信号は、このモードでは、所与のブロックおよびクラス・コードに関しての非満杯（または満杯）状態を信号で示す（シグナリングする）のに使用することができる。例えば、すべての妥当性信号が、行セグメント（またはそのグループ）のすべてが有効な格納されたエントリを有することを示す時に、その行に対する行フラグ信号６２０７が満杯状態を示す。行フラグ信号６２０７（０）〜６２０７（Ｙ−１）のすべてが、所与のＣＡＭブロックおよびクラス・コードに関しての満杯状態を示す場合に、対応するブロック・フラグ回路６２０４は、ブロック・フラグ信号５９１５をデアサートすることによって、ブロック満杯状態を示す。同じクラス・コードを持つすべてのブロックが満杯と示される場合に、グローバル・フラグ回路５９１６は、デバイス・フラグ信号５９２２をデアサートすることによって、満杯状態を示す。従って、満杯／非満杯の状態を、入ってくるクラス・コードに従ってクラス・ベースで（クラス毎を基礎として）シグナリングすることができる。行、ブロック、またはデバイスの満杯状態あるいは一致状態を示すのに使用される信号の何れかまたはすべてを、代替の実施形態では異なる論理状態を有するものとすることができることに留意されたい。
【０１６７】
図６４および６５に、ブロック選択信号５９０５がブロック・フラグ信号５９１５のアサートをゲーティングするのに使用される、ブロック・フラグ・ロジックの代替実施形態を示す。図６４の実施形態では、行フラグ信号６２０７（０）〜６２０７（Ｙ−１）のそれぞれが、ＯＲゲート６４０２で論理ＯＲをとられて、信号６４０３が作られる。信号６４０３は、次に、ＡＮＤゲート６４０４でブロック選択信号５９０５と論理ＡＮＤをとられて、ブロック・フラグ信号５９１５が作られる。図６５の実施形態では、行フラグ信号６２０７（０）〜６２０７（Ｙ−１）のそれぞれが、それぞれのＡＮＤゲート６５０２（０）〜６５０２（Ｙ−１）でブロック選択信号５９０５と論理ＡＮＤをとられて、信号６５０３（０）〜６５０３（Ｙ−１）が作られる。信号６５０３（０）〜６５０３（Ｙ−１）は、次に、ＯＲゲート６５０４で論理ＯＲをとられて、ブロック・フラグ信号が作られる。ブロック・フラグ回路６２０４を実施するために図６４の実施形態を用いるか又は図６５の実施形態を用いるかに無関係に、ブロック選択信号５９０５のデアサートによって、ブロック・フラグ信号５９１５のアサートが防止される。また、代替実施形態では、ＣＡＭブロックに妥当性値が格納されず、非満杯信号（即ち、フル・フラグの補数）を生成するためのブロック・フラグ回路およびグローバル・フラグ回路内のロジックを省略することができる。ブロック・フラグ回路を、非満杯信号（フル・フラグの補数）または一致フラグ信号の何れかを生成できる回路に関して説明したが、代替実施形態で、別の回路を設けて非満杯信号と一致フラグ信号を生成できることに留意されたい。同様に、グローバル・フラグ回路に、別のデバイス・レベル一致フラグ信号および非満杯信号を生成する別の回路を含めることができる。
【０１６８】
図６６に、一実施形態によるブロック優先順位エンコーダ５９１２を示す。ブロック優先順位エンコーダ５９１２には、行フラグ回路６６０２（０）〜６６０２（Ｙ−１）および行優先順位エンコーダ６６０４（０）〜６６０４（Ｙ−１）が含まれ、これらのそれぞれは、ＣＡＭブロック５９０９のそれぞれの行６２２２（０）〜６２２２（Ｙ−１）から一致信号Ｍ1〜ＭZおよび妥当性信号Ｖ1〜ＶZを受け取るように結合される。一実施形態では、それぞれの行優先順位エンコーダおよびそれぞれの行フラグ回路内のマルチプレクサが、動作選択信号６２０８に従って一致信号と妥当性信号との間で選択を行うのに使用される。代替実施形態では、単一のマルチプレクサを使用して、ＣＡＭブロック５９０９の所与の行について一致信号と妥当性信号との間での選択を行うことができ、このマルチプレクサの出力は、行フラグ回路６６０２および行優先順位エンコーダ６６０４の両方へ供給される。ブロック・コンフィギュレーション信号５９０３が、それぞれの行フラグ回路６６０２およびそれぞれの行優先順位エンコーダ６６０４へ供給されて、それぞれ、行フラグ信号６６０７（０）〜６６０７（Ｙ−１）およびセグメント・アドレス６６０９（０）〜６６０９（Ｙ−１）の生成に使用される。行フラグ信号は、主優先順位エンコーダ６６０６へ入力され、主優先順位エンコーダ６６０６は行アドレス６６１１を生成する。行アドレス６６１１およびセグメント・アドレス６６０９（０）〜６６０９（Ｙ−１）は、選択ロジック６６０８へ入力され、選択ロジック６６０８はブロック・インデックス信号５９１７を生成する。
【０１６９】
一実施形態では、行フラグ回路６６０２（０）〜６６０２（Ｙ−１）のそれぞれが、図６２に関して説明した回路と同じである。即ち、図６２の行フラグ・ロジック回路６２０２によって行フラグ信号６２０７がブロック・フラグ・ロジック（図６２のエレメント６２０４）および主優先順位エンコーダ６６０６へ出力される。更に、行フラグ・ロジック回路６２０２内のマルチプレクサ６３０８（０）〜６３０８（Ｙ−１）（または単一のマルチプレクサ）によって出力されるフラグ信号Ｆ1〜ＦZを、対応する行の行優先順位エンコーダ６６０４へ供給でき、それによって、行優先順位エンコーダ６６０４へ入力される信号を選択する別のマルチプレクサが不要になる。
【０１７０】
一実施形態では、行優先順位エンコーダ６６０４（０）〜６６０４（Ｙ−１）のそれぞれは、入力フラグ信号（即ち、動作選択信号６２０８の状態に従っての一致信号または妥当性信号の何れか）を操作して、図４６〜図５１に関して上で説明した様式で、セグメント・アドレス信号ＰＳＡ０〜ＰＳＡ（Ｙ−１）を生成する回路を含む。主優先順位エンコーダ６６０６は、図４６に関して上で説明した主優先順位エンコーダ４４０６と同じ様式で動作することが好ましい。より具体的には、主優先順位エンコーダ６６０６は行フラグ信号６６０７（０）〜６６０７（Ｙ−１）を監視して、ｌｏｇ2Ｙのアドレス・ビットを有する行アドレス６６１１を生成するが、この行アドレスは、比較動作の場合、（例えば、各行からの一致信号Ｍ１〜ＭＺに応答して）コンパランドと一致する行セグメント（または行セグメントのグループ）を有するＣＡＭブロック５９０９の最高優先順位の行のアドレスに対応する。書込動作の場合には、行アドレス信号６６１１は、（例えば、各行からの妥当性信号Ｖ１〜ＶＺに応答して）満杯でない行セグメント（または行セグメントのグループ）を有するＣＡＭブロック５９０９の最高優先順位の行のアドレスに対応する。
【０１７１】
一実施形態では、選択ロジック６６０８は、上で説明した図４６および図５２の選択ロジック４４０８と同じ様式で動作するように設計される。即ち、行アドレス６６１１およびブロック・コンフィギュレーション信号５９０３に応答して、選択ロジック６６０８は、行アドレス６６１１によって指定されるＣＡＭセルの行に関連するセグメント・アドレス６６０９（０）〜６６０９（Ｙ−１）の１つを選択して、ブロック・インデックス信号５９１７を生成する。
【０１７２】
更に図６６を参照する。ブロック優先順位エンコーダ５９１２は、図４６〜５３の優先順位エンコーダ・ロジック４４００に対応する実施形態である。代替案として、ブロック優先順位エンコーダ５９１２を、図５４の優先順位エンコーダ・ロジック５２００に対応する様式で実施することもできる。
【０１７３】
図６７に、図５９のグローバル優先順位エンコーダ５９１８の一実施形態を示す。ポートＰ０〜Ｐ（ｎ−１）を有するマルチプレクサ６７０２によって、ブロック・インデックス選択回路６７０４から選択信号６７０５が受け取られ、ブロック・インデックス５９１７（０）〜５９１７（ｎ−１）および対応するブロック識別子６７０７（０）〜６７０７（ｎ−１）の１つが選択されて、デバイス・インデックス５９２０として出力される。上で述べたように、ブロック・インデックスは、比較動作または書込動作のどちらが実行されるかに従って、一致アドレスまたは非満杯アドレス（空きアドレスとも称する）を示す。従って、デバイス・インデックスは、比較動作中に最高の優先順位の一致アドレスを示し、書込動作中に最高優先順位の非満杯アドレス（即ち、「次の空きアドレス」）を示す。
【０１７４】
一実施形態では、ブロック識別子６７０７（０）〜６７０７（ｎ−１）が、２進コードにハードワイヤードで結合される。例えば、図５９の４ブロックのＣＡＭアレイについては、ブロック識別子を下記のようにハードワイヤードすることができる。
【０１７５】
ブロック０  ＩＤ：  ００
ブロック１  ＩＤ：  ０１
ブロック２  ＩＤ：  １０
ブロック３  ＩＤ：  １１
他の実施形態では他のブロック識別子コードを使用することができ、それには、デバイス電源投入時または工場テストの一部としてブロックＩＤをプログラム可能とするためのプログラマブル・コードをが含まれる（例えば、欠陥のあるブロックをバイパスするようにブロックＩＤをセットするためにヒューズをとばすことができる）。
【０１７６】
図６７の参照を続ける。ブロック・フラグ信号５９１５（０）〜５９１５（ｎ−１）がブロック・インデックス選択回路へ入力されて、選択信号６７０５が生成される。一実施形態では、ブロック・インデックス選択回路にロジック回路が含まれ、そのロジック回路が、アサートされたブロック・フラグ信号の中から最高優先順位のブロック・フラグ信号を識別し、識別されたブロック・フラグ信号に対応する２進コードを出力するようにする。一実施形態では、ブロック優先順位がハードワイヤードされ、ＣＡＭアレイの最低の番号のブロックに対応するブロック・フラグ信号が最高優先順位のブロック・フラグ信号として識別されるようにする。例えば、所与の動作中にブロック・フラグ信号５９１５（１）および５９１５（ｎ−１）がアサートされ、それ以外のものがアサートされない場合に、ブロック・フラグ信号５９１５（１）が最高優先順位のブロック・フラグ信号として選択され、２進コード０１が選択信号６７０５として出力されて、マルチプレクサ６７０２のポートＰ１が選択され、デバイス・インデックス５９２０が駆動される。
【０１７７】
グローバル優先順位エンコーダの代替実施形態では、ブロック識別子の値を省略することができ、その代わりに、選択信号６７０５を使用してデバイス・インデックス５９２０のブロック識別子の部分を供給することができる。
【０１７８】
上で図５９に関して述べたように、ブロック・フラグ回路５９１４のそれぞれに、ブロック複数一致フラグ信号を生成する回路も含めることができる。一実施形態では、ブロック・フラグ回路５９１４のそれぞれに、図３８のアレイ複数一致回路３６０６および図３８の行複数一致回路３６０４（０）〜３６０４（Ｙ−１）が含まれる。それぞれの行複数一致回路に論理回路が含まれ、この論理回路が、ＣＡＭブロックの対応する行について、コンパランドと、行の複数の個々のセグメントとの間の一致を示すＭＭＯＮＥＳ信号、およびコンパランドと、行内のセグメントの複数のグループとの間の一致を示すグループ一致信号ＭＭＧ（１）〜ＭＭＧ（ｎ−２）を生成するように構成するのが好ましい。そのような論理回路は、例えば、図４０から図４２Ｃに関して説明される。図４４に関して説明したように、ＭＭＯＮＥＳ信号およびグループ一致信号ＭＭＧ（１）〜ＭＭＧ（ｎ−２）を、個々のコンフィギュレーション信号ＳＺ１およびＳＺＧ（１）〜ＳＺＧ（ｎ−２）と論理ＡＮＤをとって、行複数一致信号ＭＭＲＸを作ることができる。ブロック選択信号がブロック・コンフィギュレーション信号のゲーティングに使用される実施形態では、図４４の行複数一致コンフィギュレーション・ロジックを、図５９のブロック・フラグ回路５９１４のそれぞれの中で使用して、行複数一致信号を生成することができる。ブロック選択信号が所与の動作についてアサートされない場合に、ブロック・コンフィギュレーション信号のコンポーネント信号の何れもアサートされず（即ち、ＳＺ１およびＳＺＧ（１）〜ＳＺＧ（ｎ−２）がリセットされる）、その結果、行複数一致信号は生成されない。
【０１７９】
図６８に、ブロック選択信号５９０５を対応するブロック・コンフィギュレーション信号５９０３のゲーティングに使用しない実施形態において図５９のブロック・フラグ回路５９１４内で使用することができる行複数一致コンフィギュレーション・ロジック（即ち、図３９のエレメント３７０６）の代替実施形態を示す。図６８の行複数一致コンフィギュレーション・ロジックは、図４４の行複数一致コンフィギュレーション・ロジックに似ており、似ている点は、ＡＮＤ論理ゲート６８０２および６８０４（１）〜６８０４（ｎ−２）をそれぞれ使用して、ＭＭＯＮＥＳ信号またはグループ複数一致信号ＭＭＧ（１）〜ＭＭＧ（ｎ−２）の１つが、信号をＯＲ論理ゲート６８０６へアサートするために、ブロック・コンフィギュレーション信号（即ち、ＳＺ１およびＳＺＧ（１）〜ＳＺＧ（ｎ−１））の対応するコンポーネントによってイネーブルにされるかどうかを判定するという点である。しかし、ＯＲ論理ゲート６８０６の出力を用いて行複数一致信号６８０９を直接に駆動するのではなく、ＯＲ論理ゲート６８０６の出力がＡＮＤ論理ゲート６８０８へ入力され、ブロック選択信号５９０５によってゲーティングされる。従って、ブロック選択信号５９０５がアサートされる時に、ＯＲ論理ゲート６８０６の出力が、行複数一致信号６８０９の駆動に使用される。ブロック選択信号５９０５がデアサートされる時、ＡＮＤ論理ゲート６８０８によって、ＯＲ論理ゲート６８０６の出力状態と無関係に、行複数一致信号６８０９が強制的にデアサートされた状態にされる。代替実施形態では、ブロック選択信号５９０５を、行複数一致コンフィギュレーション・ロジック内の他所へ印加して、行複数一致信号６８０９のアサートを防ぐ。例えば、ブロック選択信号５９０５を、ＡＮＤ論理ゲート６８０２のそれぞれへ、ブロック・コンフィギュレーション信号のコンポーネント信号（即ち、ＳＺ１およびＳＺＧ（１）〜ＳＺＧ（ｎ−２））と共に入力することができる。
【０１８０】
図６９に、ブロック複数一致フラグ６９０９を生成するためにブロック・フラグ回路５９１４のそれぞれの中で使用することができるブロック複数一致回路６９００の一実施形態を示す。一実施形態では、ブロック複数一致回路６９００を、図４５のアレイ複数一致ロジック４３００と同様に実施することができる。即ち、行フラグ信号６２０７（０）〜６２０７（Ｙ−１）が複数一致回路６９０２へ入力され、複数一致回路６９０２は、ＣＡＭブロックの異なる行の１より多くの行セグメント（または１グループより多くの行セグメント・グループ）で一致が示される時に、行間複数一致信号６９０３をアサートする。行間複数一致信号６９０３は、行複数一致信号６８０９（０）〜６８０９（Ｙ−１）と共に論理ＯＲ回路６９０４へ入力される。従って、行間複数一致信号６９０３、または行複数一致信号６８０９（０）〜６８０９（Ｙ−１）の何れかがアサートされる場合に、ブロック複数一致フラグ６９０９がアサートされる。
【０１８１】
図７０に、図５９のグローバル・フラグ回路５９１６の一実施形態を示す。グローバル・フラグ回路５９１６には、複数一致回路７００２およびＯＲ論理ゲート７００４によって形成されるグローバル複数一致回路、ならびにＯＲ論理ゲート７００６によって形成されるデバイス・フラグ・ジェネレータが含まれる。ブロック・フラグ信号５９１５（０）〜５９１５（ｎ−１）のそれぞれが、ＯＲ論理ゲート７００６へ入力され、ＯＲ論理ゲート７００６は、ブロック・フラグ信号５９１５（０）〜５９１５（ｎ−１）の１または複数のものがアサートされる時には必ずデバイス・フラグ信号５９２２をアサートする。
【０１８２】
複数一致回路７００２およびＯＲ論理ゲート７００４によって形成されるグローバル複数一致回路５９１６は、図６９のブロック複数一致回路６９００が行フラグ信号および行複数一致信号に対してオペレーションを行うのと同じ様式で、ブロック・フラグ信号５９１５（０）〜５９１５（ｎ−１）ならびにブロック複数一致フラグ信号６９０９（０）〜６９０９（ｎ−１）にオペレーションを行う。即ち、個々のブロック・フラグ信号５９１５（０）〜５９１５（Ｙ−１）が複数一致回路７００２へ入力され、複数一致回路７００２は、ＣＡＭアレイの１より多くのブロックに一致がある時に、ブロック間複数一致信号７００３をアサートする。ブロック間複数一致信号７００３は、ブロック複数一致信号６９０９（０）〜６９０９（ｎ−１）と共に、論理ＯＲ回路７００４へ入力される。従って、ブロック間複数一致信号７００３、またはブロック複数一致信号６９０９（０）〜６９０９（ｎ−１）の何れかがアサートされる場合に、デバイス複数一致フラグ５９２４がアサートされる。
【０１８３】
図５９、図６２、および図６３に関して上で述べたように、動作選択信号６２０８信号が、第１論理状態である時に、フラグ信号Ｆ１〜ＦＺは、各行６２２２からの一致信号Ｍ１〜ＭＺに対応し、これを使用して、所与のＣＡＭブロックおよびクラス・コードに関しての一致状態および複数一致状態を示すことができる。例えば、図５９、図６２、図６３、および図６８〜７０を参照すると、一致信号が、複数の行セグメント（またはそのグループ）がコンパランド値と一致することが示す時に、その行に対する行複数一致信号６８０９は複数一致状態を示す。複数の行フラグ信号６２０７（０）〜６２０７（Ｙ−１）が一致状態を示す場合、または行複数一致信号６８０９の何れかが複数一致状態を示す場合に、対応するブロック複数一致回路６９００は、ブロック複数一致信号６９０９をアサートすることによって、ＣＡＭブロックおよびクラス・コードに関するブロック複数一致状態を示す。ブロック複数一致状態が、同じクラス・コードを有するＣＡＭブロックの何れかについて示される場合、または同じクラス・コードを有する複数のＣＡＭブロックが一致状態を示す場合に、グローバル複数一致回路５９１６は、デバイス・フラグ信号５９２２をアサートすることによって複数一致状態を示す。この構成によって、複数一致状態を、入ってくるクラス・コードに従って、クラス・ベースで示すことができる。
【０１８４】
代替実施形態では、デバイス複数一致フラグが生成されず、行、ブロック、およびデバイス・レベルの複数一致信号を生成する回路を省略することができる。また、代替実施形態では、行、ブロック、およびグローバル・フラグ回路と別の専用の複数一致回路を使用することができる。
【０１８５】
図５９に関して上で述べたように、アドレス回路５９０６は、或る読取命令および書込命令に応答してＣＡＭアレイにアクセスするために、クラス・ベースのアドレスを維持するレジスタ・バンクを含むことができる。例えば、一実施形態では、アドレス回路５９０６は、最高優先順位一致（ＨＰＭ）レジスタのバンクを維持して、クラス・ベースの比較動作から生じるデバイス・インデックスを格納する。例えば、ＣＡＭアレイのブロックが３つの記憶クラス、Ａ、Ｂ、およびＣに区分される場合に、クラスＡの記憶での比較動作（即ち、クラスＡ比較）から生じるデバイス・インデックスを、クラスＡに対応するＨＰＭレジスタ・バンクのレジスタに格納することができる。同様に、クラスＢ比較から生じるデバイス・インデックスを、クラスＢに対応するＨＰＭレジスタ・バンクのレジスタに格納することができ、クラスＣ比較から生じるデバイス・インデックスを、クラスＣに対応するＨＰＭレジスタ・バンクのレジスタに格納することができる。この構成によって、クラス・ベースで最高優先順位一致アドレスを参照する読取動作をサポートすることができる。例えば、ホスト・プロセッサが、クラスＡ、Ｂ、およびＣでの比較動作のシーケンスを実行し、その後、所与のクラスの最高優先順位一致アドレスの内容を読み取ることを望む場合に、ホスト・プロセッサは、そのクラスに対するＨＰＭレジスタを参照する読取命令（ＲＥＡＤ＠ＨＰＭ＠ＣＬＡＳＳ命令と称する）を発行することができる。ＨＰＭレジスタ・バンク内の適当なＨＰＭレジスタが選択されて、読取動作のアドレスが供給される。
【０１８６】
図５９の参照を続ける。アドレス回路５９０６によって、次の空きアドレス（ＮＦＡ）レジスタ・バンクと称するクラス・ベースのレジスタ・バンクを維持して、クラス・ベースで、ＣＡＭアレイ内の最高優先順位の空き（即ち非満杯の）アドレスを格納することもできる。更に、記憶クラスＡ、Ｂ、およびＣに区分されるＣＡＭアレイの例に対して、ホスト・プロセッサがクラスＡへの書込動作を実行する場合に、デバイス・インデックスは、有効なＣＡＭワードによりまだ満杯にされていないクラスＡ内の最高優先順位のアドレス、即ち、クラスＡの次の空きアドレスを表す。従って、ＮＦＡレジスタ・バンク内の別々のレジスタを使用して、クラスＡ、Ｂ、Ｃなどに対しての次の空きアドレスを格納することができる。後に、プロセッサが所与のクラスに関する次の空きアドレスでＣＡＭに値を書き込む命令（即ち、ＷＲＩＴＥ＠ＮＦＡ＠ＣＬＡＳＳ命令）を発行する時に、ＮＦＡレジスタ・バンク内のそのクラスに対するＮＦＡレジスタを選択して、その書込動作に対するアドレスを供給することができる。
【０１８７】
図７１に、一実施形態による図５９のアドレス回路５９０６を示す。ＮＦＡレジスタ・バンク７１０２は複数のＮＦＡレジスタ、ＮＦＡ０〜ＮＦＡ（ｍ−１）、を含み、ＨＰＭレジスタ・バンク７１０４は複数のＨＰＭレジスタ、ＭＰＭ０〜ＨＰＭ（ｍ−１）、を含む。各ＮＦＡレジスタは、グローバル優先順位エンコーダに結合されてデバイス・インデックス５９２０を受け取り、また、ロード制御回路（図示せず）に結合されてレジスタ・ロード信号ＬＤＮＦＡ０〜ＬＤＮＦＡ（ｍ−１）のそれぞれを受け取る。各ＨＰＭレジスタは、同様に、グローバル優先順位エンコーダからデバイス・インデックスを受け取り、レジスタ・ロード信号ＬＤＨＰＭ０〜ＬＤＨＰＭ（ｍ−１）のそれぞれを受け取るように結合される。図７１には図示されていないが、ロード制御回路は、好ましくは、アドレス回路５９０６内で実施され、命令デコーダからの信号およびデバイス・フラグに応答して、レジスタ・ロード信号ＬＤＮＦＡ０〜ＬＤＮＦＡ（ｍ−１）およびＬＤＨＰＭ０〜ＬＤＨＭＰ（ｍ−１）を生成する。ロード制御回路の動作は下で詳細に説明する。
【０１８８】
ＮＦＡレジスタ・バンク７１０２内のＮＦＡレジスタのそれぞれは、ＮＦＡマルチプレクサ７１０６のそれぞれの入力ポートに結合される。ＮＦＡマルチプレクサ７１０６は、クラス・コードに応答して、アドレス・セレクタ７１１０へ入力されるＮＦＡレジスタの１つの内容を選択する。同様に、ＨＰＭレジスタ・バンク７１０４内のＨＰＭレジスタのそれぞれはＨＰＭマルチプレクサ７１０８のそれぞれの入力ポートに結合され、ＨＰＭマルチプレクサ７１０８は、クラス・コードに応答して、アドレス・セレクタ７１１０へ入力されるＨＰＭレジスタの１つのものの内容を選択する。アドレス・バス５９２５もアドレス・セレクタ７１１０の入力ポートに結合されて、或る読取動作および書込動作でのホスト供給のアドレスの選択を可能にする。代替実施形態では、追加のアドレス・ソースを、アドレス・セレクタ７１１０へ入力することもできる。
【０１８９】
或るクラスの次の空き位置への書込アクセスを示す命令が受け取られる時に、その命令のクラス・コード部分５９０７が存在する場合にはそれが使用されて、ＮＦＡレジスタの１つおよびＨＰＭレジスタの１つが選択されて、それぞれ、次の空きアドレスおよび最高優先順位一致アドレスがアドレス・セレクタ７１１０へ供給される。選択信号５９１１は実行される動作の性質を示し、ＣＡＭアレイへの読取アクセスまたは書込アクセスの場合には、この信号がアドレス・セレクタ７１１０内で用いられて適当なアドレス・ソースが選択される。例えば、ＷＲＩＴＥ＠ＮＦＡ＠ＣＬＡＳＳ命令の場合、クラス・コード５９０７によって、ＮＦＡレジスタ・バンク７１０２内のＮＦＡレジスタの１つのものの内容が、アドレス・セレクタ７１１０へ入力されるように選択され、そして、選択信号５９１１によって、選択されたクラスに対しての次の空きアドレスをアドレス・ロジック７１１２へ供給するためにＮＦＡレジスタが選択される。アドレス・ロジック７１１２によって入力アドレスがデコードされて、ＣＡＭアレイのブロック内の対応するワード線がアクティブにされる。同様に、ＲＥＡＤ＠ＨＰＭ＠ＣＬＡＳＳの場合、クラス・コード５９０７によって、ＨＰＭレジスタ・バンク７１０４内のＨＰＭレジスタの１つのものの内容が、アドレス・セレクタ７１１０へ入力されるように選択され、そして、選択信号５９１１によって、選択されたクラスに対しての最高優先順位一致アドレスをアドレス・ロジック７１１２へ供給するためにＨＰＭレジスタが選択される。
【０１９０】
図７２にロード制御回路７２００を示し、このロード制御回路７２００は、ＨＰＭレジスタ・ロード信号ＬＤＨＰＭ０〜ＬＤＨＰＭ（ｍ−１）およびＮＦＡレジスタ・ロード信号ＬＤＮＦＡ０〜ＬＤＮＦＡ（ｍ−１）を生成するためにアドレス回路５９０６内に設けることができる。図７２の実施形態では、ロード制御回路７２００は、命令デコーダから選択信号５９１１、制御信号５９１３、およびクラス・コード５９０７を受け取り、グローバル・フラグ回路からデバイス・フラグ５９２２を受け取る。上で述べたように、代替実施形態では、選択信号５９１１、制御信号５９１３、およびクラス・コード５９０７の何れかまたはすべてを、命令デコーダからではなく、命令バスから直接に受け取ることができる。一実施形態では、選択信号５９１１は、別々のコンポーネント信号ＳＥＬ＿ＮＦＡおよびＳＥＬ＿ＨＰＭを含み、新しいアドレスがロードされるレジスタを、ＮＦＡレジスタ・バンク内またはＨＰＭレジスタ・バンク内の何れかからそれぞれ選択する。また、例示的な実施形態では、ＣＡＭデバイスが４つのＣＡＭブロックを有し、このＣＡＭブロックのそれぞれが、それらの行内コンフィギュレーションに従って、３つの異なるクラスの１つに割り当てられる。例えば、ＣＡＭブロックは、それが７２ビット幅、または１４４ビット幅、または２８８ビット幅のＣＡＭワードを有するようにコンフィギュレーションされるかに従って、第１、第２、または第３のクラスに割り当てられる。これらのクラス割当は、各ＣＡＭブロックに対して格納されるブロック・コンフィギュレーション信号のコンポーネント信号ＳＺ７２、ＳＺ１４４、およびＳＺ２８８によって指定することができる。そのような実施形態では、ロード制御回路７２００は、下の表に従ったＮＦＡおよびＨＰＭのレジスタ・ロード信号を生成することができる。
【０１９１】
【表４】
2005501369.tif 000006
【０１９２】
示されるように、制御信号がデアサートされる時に、レジスタ・ロード信号はアサートされない。従って、入ってくる命令がデバイス・インデックスを作らない動作（例えば、読取動作）を指定する時に、命令デコーダは制御信号をデアサートして、ＨＰＭレジスタ・バンクおよびＮＦＡレジスタ・バンクがロードされないようにする。また、レジスタ・ロード信号は、デバイス・フラグ信号がデアサートされる時にはアサートされない。比較動作中に一致が検出される時、または書込動作後に記憶区画に少なくとも１つの満たされていない記憶位置がある時に、デバイス・フラグ信号がアサートされることを想起すると、逆に、アサートされないデバイス・フラグは、比較動作で一致が見つからないこと、または書込動作後に記憶区画が満杯であることを示す。どちらの場合でも、デバイス・インデクスは、デバイス・フラグがデアサートされる時、ＣＡＭアレイ内の有効なアドレスを表さない（即ち、一致アドレスおよび非満杯アドレスのどちらでもない）。従って、デバイス・フラグがアサートされない時には、レジスタ・ロード信号がアサートされない。
【０１９３】
代替実施形態では、レジスタ・バンク７１０２または７１０４へのレジスタ・ロード動作を、デバイス・フラグの状態に無関係に実行することができる。また、図７２のレジスタ・バンク７１０２または７１０４のそれぞれの中のレジスタの数は「ｍ」として示されているが、このｍは、記憶クラスの最大個数を表す整数である。一実施形態では、それぞれの記憶クラスがＣＡＭブロックの幅／深さコンフィギュレーションに対応し、それにより、記憶クラスの数が、許容される幅／深さコンフィギュレーションの数によって決定される。代替実施形態では、記憶クラスを他の基準によって定義することができる。制限するものではないが、この基準には、対応する記憶区画に格納されるデータのタイプ（例えば、ＡＴＭ、ＩＰｖ４、ＩＰｖ４マルチキャスト、イーサネット（登録商標）、ＵＲＬ、ＭＰＬＳなど）や、対応する記憶区画に格納されるデータに対して実行されるオペレーションのタイプまたは目的（例えば、或るクラスの記憶区画に、転送アドレスを判定するための比較動作に使用されるデータを格納することができ、別のクラスの記憶区画に、分類のための比較動作に使用されるデータを格納することができる）を含み、また、データ・タイプ、記憶コンフィギュレーション、または動作タイプ／目的の任意の組合せで定義することができる。より一般的には、記憶区画の間の区別のための任意の基準を、本発明の趣旨または範囲から逸脱せずに、使用することができる。
【０１９４】
図７３に、ＣＡＭアレイのクラス・ベースの区画の次の空きアドレスへの書込の命令（即ち、ＷＲＩＴＥ＠ＮＦＡ＠ＣＬＡＳＳ命令）に応答する、図５９の命令デコーダ５９０４の例示的動作を示す。ブロック７３０１で、命令デコーダは適当な選択信号およびクラス・コード信号をアドレス回路（例えば図５９のエレメント５９０６）へ発行して、ＣＡＭアレイへの書込アクセスのためのアドレスを供給するために、指定されたクラス・コードのＮＦＡレジスタを選択する。第１の所定の時間の後に、ブロック７３０３で、命令デコーダは、ＣＡＭデバイス内の書込回路（図５９に示さず）へ信号を与えて、アドレス回路によって選択されたＣＡＭアレイ位置へデータを書き込む。第２の所定の時間の後に、命令デコーダは制御信号をアサートして（クラス・コードはアサートされたままであり、選択信号はアサートされたままである）、デバイス・インデックスを、クラス・コードによって指定されるＮＦＡレジスタに格納できるようにする。図７２に関して述べたように、デバイス・フラグが、デバイス・インデックスが有効な非満杯アドレスを表すことを示す場合に、そのデバイス・インデックスがＮＦＡレジスタに格納される。
【０１９５】
図７４に、ＣＡＭアレイのクラス・ベースの区画の内容とコンパランドとを比較する命令（即ちＣＯＭＰＡＲＥ＠ＣＬＡＳＳ命令）に応答する、図５９の命令デコーダ５９０４の例示的動作を示す。ブロック７４０１で、命令デコーダは比較命令の実行を開始する。ブロック７４０３で、命令デコーダは、選択信号およびクラス・コード信号をアドレス回路（例えば、図５９のエレメント５９０６）へ送り、ロード動作のための準備に、指定されたクラスのＨＰＭレジスタを選択する。選択信号およびクラス・コード信号を、ブロック７４０１における比較動作の実行と並列にまたはその後に、アドレス回路へ発行できることに留意されたい。何れの場合でも、比較動作の開始から所定の時間の後に、命令デコーダによって制御信号がアサートされて、クラス・コードによって指定されるＨＰＭレジスタへデバイス・インデックスを格納できるようにされる。図７２に関して述べたように、デバイス・フラグが、デバイス・インデックスが有効な一致アドレスを表すことを示す場合に、デバイス・インデックスがＨＰＭレジスタに格納される。
【０１９６】
図７５に、ＣＡＭアレイのクラス・ベースの区画の最高優先順位の一致アドレスからＣＡＭワードを読み取る命令（即ち、ＲＥＡＤ＠ＨＰＭ＠ＣＬＡＳＳ命令）に応答する、図５９の命令デコーダ５９０４の例示的動作を示す。ブロック７５０１で、命令デコーダは、適当な選択信号およびクラス・コード信号をアドレス回路（例えば、図５９のエレメント５９０６）へ発行して、ＣＡＭアレイへの読取アクセスのためのアドレスを供給するための、指定されたクラス・コードのＨＰＭレジスタを選択する。第１の所定の時間の後に、ブロック７５０３において、命令デコーダは、ＣＡＭデバイス内の読取回路（図５９に示さず）へ信号を送り、アドレス回路によって選択されたＣＡＭアレイ位置から出力されたデータ出力を感知する。
【０１９７】
図７６に、図５９のＣＡＭデバイスで使用することができる代替のブロック選択回路７６０２を示す。このブロック選択回路は複数のＣＡＭセル組７６０１（０）〜７６０１（Ｎ−１）を含み、これらを用いて、ブロック・クラス値を格納し、ブロック・クラス値と入ってくるクラス・コード５９０７とを比較する。一実施形態では、それぞれのＣＡＭセル７６０１（０）〜７６０１（Ｎ−１）の組がワード線７６０５に結合され、また、それぞれのビット線（図示せず）の組にも結合される。従って、ワード線７６０５がアサートされる時、それぞれのブロック・クラス値がＣＡＭセルの組へ格納される。代替実施形態では、それぞれのＣＡＭセル７６０１（０）〜７６０１（Ｎ）の組をそれぞれの専用のワード線に結合することができ、従って、個別にアドレッシングして、対応するＣＡＭブロックに対するブロック・クラス値を格納することができる。
【０１９８】
更に図７６を参照する。それぞれのＣＡＭセル組７６０１（０）〜７６０１（Ｎ−１）は、ブロック選択信号５９０５（Ｎ−１）〜５９０５（０）を対応するＣＡＭブロックへ供給するのに使用されるそれぞれの一致線に結合される。従って、入ってくるクラス・コード５９０７が、ＣＡＭセル７６０１（０）〜７６０１（Ｎ−１）の所与の組の内容と一致すると判定される時、ブロック選択信号５９０５（０）〜５９０５（Ｎ−１）が対応する一致線にアサートされる。この構成によって、ＣＡＭセルの格納および比較の機能は、図６０に示されたブロック選択回路のブロック・コンフィギュレーション・レジスタ６００２および比較器回路６００６の機能を満たす。
【０１９９】
一実施形態では、ＣＡＭセル組７６０１（０）〜７６０１（Ｎ−１）の各ＣＡＭセルが、論理「１」、論理「０」、またはマスク状態（即ち、無関係状態）の何れかを格納できる３値ＣＡＭセルである。従って、ブロック・クラス値の選択されたビット（１または複数）をマスク状態にセットすることによって、ブロック・クラス値を、複数のクラス・コードに一致するように決定することができる。図７７を参照すると、例えば、データの２つのクラス、クラスＡおよびクラスＢが、ＣＡＭブロック５４０９に格納される場合に、２つのクラス・コードを区別するのに使用されるビット（１または複数）をマスクすることができ、それにより、ブロック５４０９は、何れのクラスにも向けられた比較動作に参加するために選択される。図示の例では、クラスＡのクラス・コードが「００１」であり、クラスＢのクラス・コードが「０００」である。従って、ブロック５４０９に対応するＣＡＭセル７６０１の組の最下位ビットをマスク状態にセットすることによって、格納されるブロック・クラス値を、クラスＡおよびクラスＢのクラス・コードの両方と一致するように判定することができる。ブロック５４０９に格納される各ＣＡＭワード内で１または複数のタグ・ビットをセットして、ＣＡＭワードを、クラスＡまたはクラスＢの何れかの記憶区画に属するものとして指定することができる（クラスＡおよびクラスＢの記憶区域を図７７では別個に示しているが、各記憶クラス内のＣＡＭワードは互いに散在させることができることに留意されたい）。例えば、各ＣＡＭワードの最上位ビットが、タグ・ビットとして使用され、クラスＡに対して「１」、クラスＢに対して「０」とセットされる場合に、入ってくるコンパランド値の対応する最上位ビットは、サーチされる記憶クラスを効果的に選択する。即ち、入ってくるコンパランドの最上位ビットが「１」である場合、クラスＢエントリの何れもコンパランドと一致せず、効果的にクラスＢが検索から除外される。逆に、入ってくるコンパランドの最上位ビットが「０」である場合、クラスＡエントリの何れもコンパランドと一致せず、効果的にクラスＡがサーチから除外される。図７７では左端のビット位置に示されているが、タグ・ビット（１または複数）は、行または行セグメントの任意のビット位置に配置することができる。
【０２００】
ブロック選択回路７６０２内で３値ＣＡＭセルを使用する代わりに（またはそれに追加して）、クラス・コード・マスク値７６０３（Ｎ−１）〜７６０３（０）の組を適用して、格納されたブロック・クラス値のそれぞれ（または何れか）を複数のクラス・コードと一致できるようにすることができる。クラス・コード・マスク値は、クラス・コード５９０７と一緒に、または別の伝送で、供給することができる。また、複数のクラス・コード・マスク値７６０３（Ｎ−１）〜７６０３（０）の代わりに、単一のクラス・コード・マスク値を代わりに適用して、クラス・コード５９０７を、クラス・コードがＣＡＭセル組７６０１（Ｎ−１）〜７６０１（０）に格納されたブロック・クラス・コードと比較される前に、マスクすることができる。
【０２０１】
前述の明細書で、本発明を、その特定の例示的実施形態に関して説明した。しかし、本発明の広義の趣旨および範囲から逸脱せずに、さまざまな改造および変更を行えることは明白である。従って、本明細書および図面は、制限ではなく例示とみなされねばならない。
【図面の簡単な説明】
【０２０２】
【図１】図１は、本発明の一実施形態による複数のＣＡＭブロックを含むＣＡＭデバイスのブロック図である。
【図２】図２は、図１のアレイの一実施形態のＣＡＭブロックのブロック図である。
【図３】図３は、図２のＣＡＭブロックの一実施形態のブロック選択回路のブロック図である。
【図４】図４は、図３のブロック選択回路の一実施形態の論理図である。
【図５】図５は、図３のブロック選択回路の別の実施形態の論理図である。
【図６】図６は、図２のＣＡＭブロックのコンパランド・ドライバの一実施形態の論理図である。
【図７】図７は、１または複数の欠陥があるＣＡＭブロックのアドレスを変換するようにコンフィギュレーションされた、本発明の別の実施形態による複数のＣＡＭブロックを含むＣＡＭデバイスのブロック図である。
【図８】図８は、一実施形態における欠陥があるＣＡＭブロックをディスエーブルにする流れ図である。
【図９】図９は、図７のＣＡＭデバイスの一実施形態のブロック図である。
【図１０】図１０は、図９のデバイスの一実施形態のＣＡＭブロックのブロック図である。
【図１１】図１１は、図１０のＣＡＭブロックの一実施形態のアドレス変換ロジックのブロック図である。
【図１２】図１２は、図９のデバイスの一実施形態の主優先順位デコーダの論理図である。
【図１３】図１３は、ＣＡＭアレイ、コンパランド・レジスタ、コンフィギュレーション・レジスタ、アドレス・ロジック、読取／書込回路、命令デコーダ、優先順位エンコーダ・ロジック、一致フラグ・ロジック、および複数一致フラグ・ロジックを含む、本発明によるコンフィギュレーション可能ＣＡＭシステムの一実施形態のブロック図である。
【図１４】図１４は、行デコーダ、行アドレス選択ロジック、セグメント・アドレス選択ロジック、およびセグメント・デコーダを含む図１３のアドレス・ロジックの一実施形態のブロック図である。
【図１５】図１５は、ＣＡＭシステムの特定のコンフィギュレーションに関する図１４のアドレス・ロジックの一例である。
【図１６】図１６は、図１５の選択ロジックの真理値表の一実施形態である。
【図１７】図１７は、図１５のセグメント・デコーダの真理値表の一実施形態である。
【図１８】図１８Ａは、図１５のセグメント・アドレス選択ロジックの一実施形態の論理図であり、図１８Ｂは、図１５の行アドレス選択ロジックの一実施形態の論理図である。
【図１９】図１９は、行デコーダ、セグメント・デコーダ、およびマルチプレクサを含む、図１３のアドレス・ロジックの別の実施形態のブロック図である。
【図２０】図２０は、ＣＡＭシステムの特定のコンフィギュレーションに関する図１９のアドレス・ロジックの一例である。
【図２１】図２１は、コンパランド・レジスタへコンパランド・データをロードする回路の一実施形態のブロック図である。
【図２２】図２２は、ＣＡＭシステムの特定のコンフィギュレーションに関する図２１のロジックの一例である。
【図２３】図２３は、図２２の選択ロジックの真理値表の一実施形態である。
【図２４】図２４は、図２３の真理値表に関する選択ロジックの一実施形態の論理図である。
【図２５】図２５は、図２３の真理値表に関する選択ロジックの別の実施形態の論理図である。
【図２６】図２６は、行一致回路およびアレイ一致回路を含む、図１３の一致フラグ・ロジックの一実施形態のブロック図である。
【図２７】図２７は、１一致ロジック、グループ一致回路、および一致コンフィギュレーション・ロジックを含む、図２６の行一致回路の一実施形態のブロック図である。
【図２８】図２８は、図２７の１一致ロジックの一実施形態の論理図である。
【図２９】図２９Ａ〜２９Ｃは、図２７のグループ一致回路の一実施形態の論理図である。
【図３０】図３０は、図２７の一致コンフィギュレーション・ロジックの一実施形態の論理図である。
【図３１】図３１は、図１３の一致フラグ・ロジックの一実施形態の論理図である。
【図３２】図３２は、行一致回路およびアレイ一致回路を含む、図１３の一致フラグ・ロジックの別の実施形態のブロック図である。
【図３３】図３３は、ＯＲロジックおよび選択回路を含む図３２のアレイ一致回路の一実施形態のブロック図である。
【図３４】図３４は、図３３の選択ロジックの一実施形態の論理図である。
【図３５】図３５は、図３３の選択ロジックの別の実施形態の論理図である。
【図３６】図３６は、認定ロジック回路およびＯＲロジックを含む図３２のアレイ一致回路の別の実施形態のブロック図である。
【図３７】図３７は、図３６の認定ロジック回路およびＯＲロジックの一実施形態の論理図である。
【図３８】図３８は、行一致回路、行複数一致回路、およびアレイ複数一致回路を含む図１３の複数一致フラグ・ロジックの一実施形態のブロック図である。
【図３９】図３９は、複数１一致ロジック、グループ複数一致ロジック回路、および複数一致コンフィギュレーション・ロジック回路を含む図３８の行複数一致回路の一実施形態のブロック図である。
【図４０】図４０は、図３９の複数１一致ロジックの一実施形態の論理図である。
【図４１】図４１は、４つの行セグメントに対する図４０の複数１一致ロジックの一実施形態の論理図である。
【図４２】図４２Ａ〜４２Ｃは、図３９のグループ複数一致ロジック回路の実施形態の論理図である。
【図４３】図４３は、４つの行セグメントに対するグループ複数一致回路の１つの一実施形態の論理図である。
【図４４】図４４は、図３９の複数一致コンフィギュレーション・ロジックの一実施形態の論理図である。
【図４５】４５図は、図３８のアレイ複数一致回路の一実施形態のブロック図である。
【図４６】図４６は、行一致回路、行優先順位エンコーダ回路、主優先順位エンコーダ、および選択ロジックを有する優先順位エンコーダ・ロジックの一実施形態を含む図１３のコンフィギュレーション可能ＣＡＭシステムのブロック図である。
【図４７】図４７は、ＣＡＭシステムの特定のコンフィギュレーションの行優先順位エンコーダ回路の１つのブロック図である。
【図４８】図４８は、図４７の行優先順位エンコーダ回路の１つの動作コンフィギュレーションの真理値表の一実施形態である。
【図４９】図４９は、図４７の行優先順位エンコーダ回路の別の動作コンフィギュレーションの真理値表の別の実施形態である。
【図５０】図５０は、１セグメント・アドレス・ビットを生成するための、図４７の行優先順位エンコーダ回路の一実施形態の論理図である。
【図５１】図５１は、別のセグメント・アドレス・ビットを生成するための、図４７の行優先順位エンコーダ回路の一実施形態の論理図である。
【図５２】図５２は、デコーダ、マルチプレクサ、および変換ロジックを有する選択回路の一実施形態を含む図１３のコンフィギュレーション可能ＣＡＭシステムのブロック図である。
【図５３】図５３は、図５２の変換ロジックの実施形態の論理図である。
【図５４】図５４は、優先順位エンコーダ・インターフェース回路、優先順位エンコーダ、および変換ロジックを有する優先順位エンコーダの別の実施形態を含む図１３のコンフィギュレーション可能ＣＡＭシステムのブロック図である。
【図５５】図５５は、ＣＡＭシステムの特定のコンフィギュレーションのための、図５４の優先順位エンコーダ・インターフェース回路の一実施形態の論理図である。
【図５６】図５６は、図５４の優先順位エンコーダ・インターフェース回路の機能を要約した表である。
【図５７】図５７は、図５４の変換ロジックの一実施形態の論理図である。
【図５８】図５８は、ＣＡＭシステムの特定のコンフィギュレーションに対する図５７の変換ロジックの論理図である。
【図５９】図５９は、独立に選択可能なＣＡＭブロックによって形成されるＣＡＭアレイを含み、行内コンフィギュレーション可能性を有するＣＡＭデバイスの一実施形態を示す。
【図６０】図６０は、一実施形態によるブロック選択回路を示す。
【図６１】図６１は、一実施形態によるゲーティング回路を示す。
【図６２】図６２は、一実施形態によるブロック・フラグ回路を示す。
【図６３】図６３は、図６２からの行フラグ回路を詳細に示す。
【図６４】図６４は、ブロック選択信号がブロック・フラグ信号のアサートのゲーティングに使用される、ブロック・フラグ・ロジックの一実施形態を示す。
【図６５】６５図は、ブロック選択信号がブロック・フラグ信号のアサートのゲーティングに使用される、ブロック・フラグ・ロジックの代替実施形態を示す。
【図６６】図６６は、一実施形態によるブロック優先順位エンコーダを示す。
【図６７】図６７は、図５９のグローバル優先順位エンコーダの一実施形態を示す。
【図６８】図６８は、図３９の行複数一致コンフィギュレーション・ロジックの代替実施形態を示す。
【図６９】図６９は、ブロック複数一致回路の一実施形態を示す。
【図７０】図７０は、図５９のグローバル・フラグ回路の一実施形態を示す。
【図７１】図７１は、一実施形態による図５９のアドレス回路を示す。
【図７２】図７２は、図７１のアドレス回路内に設けることができるロード制御回路を示す。
【図７３】図７３は、ＣＡＭアレイのクラスベースの区画の次の空きアドレスへの書込の命令に応答する、図５９の命令デコーダの例示的な動作を示す。
【図７４】図７４は、ＣＡＭアレイのクラスベースの区画の内容とコンパランドとを比較する命令に応答する、図５９の命令デコーダの例示的な動作を示す。
【図７５】図７５は、ＣＡＭアレイのクラスベースの区画の最高優先順位の一致アドレスからＣＡＭワードを読み取る命令に応答する、図５９の命令デコーダの例示的な動作を示す。
【図７６】図７６は、図５９のＣＡＭデバイスで使用することができる代替のブロック選択回路を示す。
【図７７】図７７は、データの２つのクラスが格納されたＣＡＭブロックを示す。
【図１】
2005501369.tif 000007
【図２】
2005501369.tif 000008
【図３】
2005501369.tif 000009
【図７】
2005501369.tif 000010
【図８】
2005501369.tif 000011
【図９】
2005501369.tif 000012
【図１０】
2005501369.tif 000013
【図１１】
2005501369.tif 000014
【図１３】
2005501369.tif 000015
【図１４】
2005501369.tif 000016
【図１５】
2005501369.tif 000017
【図１６】
2005501369.tif 000018
【図１７】
2005501369.tif 000019
【図１９】
2005501369.tif 000020
【図２０】
2005501369.tif 000021
【図２１】
2005501369.tif 000022
【図２２】
2005501369.tif 000023
【図２３】
2005501369.tif 000024
【図２４】
2005501369.tif 000025
【図２６】
2005501369.tif 000026
【図２７】
2005501369.tif 000027
【図３２】
2005501369.tif 000028
【図３３】
2005501369.tif 000029
【図３６】
2005501369.tif 000030
【図３８】
2005501369.tif 000031
【図３９】
2005501369.tif 000032
【図４２】
2005501369.tif 000033
【図４５】
2005501369.tif 000034
【図４６】
2005501369.tif 000035
【図４７】
2005501369.tif 000036
【図５２】
2005501369.tif 000037
【図５４】
2005501369.tif 000038
【図５６】
2005501369.tif 000039
【図５９】
2005501369.tif 000040
【図６０】
2005501369.tif 000041
【図６２】
2005501369.tif 000042
【図６３】
2005501369.tif 000043
【図６６】
2005501369.tif 000044
【図６７】
2005501369.tif 000045
【図６９】
2005501369.tif 000046
【図７０】
2005501369.tif 000047
【図７１】
2005501369.tif 000048
【図７２】
2005501369.tif 000049
【図７３】
2005501369.tif 000050
【図７４】
2005501369.tif 000051
【図７５】
2005501369.tif 000052
【図７６】
2005501369.tif 000053
【図７７】
2005501369.tif 000054
【国際公開パンフレット】
2005501369.tif 000055
2005501369.tif 000056
2005501369.tif 000057
2005501369.tif 000058
2005501369.tif 000059
2005501369.tif 000060
2005501369.tif 000061
2005501369.tif 000062
2005501369.tif 000063
2005501369.tif 000064
2005501369.tif 000065
2005501369.tif 000066
2005501369.tif 000067
2005501369.tif 000068
2005501369.tif 000069
2005501369.tif 000070
2005501369.tif 000071
2005501369.tif 000072
2005501369.tif 000073
2005501369.tif 000074
2005501369.tif 000075
2005501369.tif 000076
2005501369.tif 000077
2005501369.tif 000078
2005501369.tif 000079
2005501369.tif 000080
2005501369.tif 000081
2005501369.tif 000082
2005501369.tif 000083
2005501369.tif 000084
2005501369.tif 000085
2005501369.tif 000086
2005501369.tif 000087
2005501369.tif 000088
2005501369.tif 000089
2005501369.tif 000090
2005501369.tif 000091
2005501369.tif 000092
2005501369.tif 000093
2005501369.tif 000094
2005501369.tif 000095
2005501369.tif 000096
2005501369.tif 000097
2005501369.tif 000098
2005501369.tif 000099
2005501369.tif 000100
2005501369.tif 000101
2005501369.tif 000102
2005501369.tif 000103
2005501369.tif 000104
2005501369.tif 000105
2005501369.tif 000106
2005501369.tif 000107
2005501369.tif 000108
2005501369.tif 000109
2005501369.tif 000110
2005501369.tif 000111
2005501369.tif 000112
2005501369.tif 000113
2005501369.tif 000114
2005501369.tif 000115
2005501369.tif 000116
2005501369.tif 000117
2005501369.tif 000118
2005501369.tif 000119
2005501369.tif 000120
2005501369.tif 000121
2005501369.tif 000122
2005501369.tif 000123
2005501369.tif 000124
2005501369.tif 000125
2005501369.tif 000126
2005501369.tif 000127
2005501369.tif 000128
2005501369.tif 000129
2005501369.tif 000130
2005501369.tif 000131
2005501369.tif 000132
2005501369.tif 000133
2005501369.tif 000134
2005501369.tif 000135
2005501369.tif 000136
2005501369.tif 000137
2005501369.tif 000138
2005501369.tif 000139
2005501369.tif 000140
2005501369.tif 000141
2005501369.tif 000142
2005501369.tif 000143
2005501369.tif 000144
2005501369.tif 000145
2005501369.tif 000146
2005501369.tif 000147
2005501369.tif 000148
2005501369.tif 000149
2005501369.tif 000150
2005501369.tif 000151
2005501369.tif 000152
2005501369.tif 000153
2005501369.tif 000154
2005501369.tif 000155
2005501369.tif 000156
2005501369.tif 000157
2005501369.tif 000158
2005501369.tif 000159
2005501369.tif 000160
2005501369.tif 000161
2005501369.tif 000162
2005501369.tif 000163
2005501369.tif 000164
2005501369.tif 000165
2005501369.tif 000166
2005501369.tif 000167
2005501369.tif 000168
2005501369.tif 000169
2005501369.tif 000170
2005501369.tif 000171
2005501369.tif 000172
2005501369.tif 000173
2005501369.tif 000174
2005501369.tif 000175
2005501369.tif 000176
2005501369.tif 000177
2005501369.tif 000178
2005501369.tif 000179
2005501369.tif 000180
2005501369.tif 000181
2005501369.tif 000182
2005501369.tif 000183
2005501369.tif 000184
2005501369.tif 000185
2005501369.tif 000186
2005501369.tif 000187
2005501369.tif 000188
2005501369.tif 000189
2005501369.tif 000190
2005501369.tif 000191
2005501369.tif 000192
2005501369.tif 000193
2005501369.tif 000194
2005501369.tif 000195
【国際調査報告】
2005501369.tif 000196
2005501369.tif 000197