(57)【特許請求の範囲】
【請求項１】
複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに１対１に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第１のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第２のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、各々の前記検出線上に出力された前記ヒットフラグまたは前記エンプティフラグを検出するセンス回路と、このセンス回路によって検出された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、１つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。
【請求項２】
複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに１対１に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第１のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第２のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、各々の前記検出線上に出力された前記ヒットフラグまたは前記エンプティフラグを検出するセンス回路と、このセンス回路によって検出された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、１つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。
【請求項３】
複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに１対１に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第１のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第２のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、各々の前記検出線上に出力された前記ヒットフラグまたは前記エンプティフラグを検出するセンス回路と、このセンス回路によって検出された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、１つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。
【請求項４】
複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに１対１に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第１のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第２のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、各々の前記検出線上に出力された前記ヒットフラグまたは前記エンプティフラグを検出するセンス回路と、このセンス回路によって検出された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、１つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。
【請求項５】
複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに１対１に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第１のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第２のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前の優先順位の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化している間に、前記検出線上に出力される次の優先順位の前記ヒットフラグまたは前記エンプティフラグを予め保持しておくプリフェッチ回路と、このプリフェッチ回路に保持されている前記前の優先順位の各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、１つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。
【請求項６】
複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに１対１に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第１のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第２のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前の優先順位の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化している間に、前記検出線上に出力される次の優先順位の前記ヒットフラグまたは前記エンプティフラグを予め保持しておくプリフェッチ回路と、このプリフェッチ回路に保持されている前記前の優先順位の各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、１つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。
【請求項７】
複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに１対１に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第１のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第２のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前の優先順位の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化している間に、前記検出線上に出力される次の優先順位の前記ヒットフラグまたは前記エンプティフラグを予め保持しておくプリフェッチ回路と、このプリフェッチ回路に保持されている前記前の優先順位の各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、１つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。
【請求項８】
複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに１対１に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第１のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第２のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前の優先順位の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化している間に、前記検出線上に出力される次の優先順位の前記ヒットフラグまたは前記エンプティフラグを予め保持しておくプリフェッチ回路と、このプリフェッチ回路に保持されている前記前の優先順位の各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、１つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。
【請求項９】
前記ヒットフラグと前記エンプティフラグとで前記検出線を共用することを特徴とする請求項１〜８のいずれかに記載の符号化回路。
【請求項１０】
請求項１〜９のいずれかに記載の符号化回路であって、
前記メインプライオリティエンコーダは、さらに、前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化するか、あるいは、前記ヒットフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化するのかを決定する選択手段を有することを特徴とする符号化回路。
【請求項１１】
前記サブプライオリティエンコーダは、各々の前記連想メモリサブブロックから出力される前記サブブロックヒット信号または前記サブブロックエンプティ信号を保持するデータラッチ回路と、このデータラッチ回路に保持された各々の前記サブブロックヒット信号または前記サブブロックエンプティ信号の内、優先順位に応じて、１つの前記サブブロックヒット信号または前記サブブロックエンプティ信号だけをアクティブ状態として順次出力するサブプライオリティ回路と、このサブプライオリティ回路から順次出力されるアクティブ状態とされた前記サブブロックヒット信号または前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックのアドレスを順次符号化するサブエンコード回路とを有することを特徴とする請求項１〜１０のいずれかに記載の符号化回路。
【請求項１２】
前記サブプライオリティエンコーダは、各々の前記連想メモリサブブロックから出力される、ただ１つのアクティブ状態である前記サブブロックヒット信号を保持するデータラッチ回路と、このデータラッチ回路から出力される、ただ１つのアクティブ状態である前記サブブロックヒット信号に対応した前記連想メモリサブブロックのアドレスを符号化するサブエンコード回路とを有することを特徴とする請求項１〜１０のいずれかに記載の符号化回路。
【請求項１３】
請求項１〜１２のいずれかに記載の連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックを選択し、そのアドレスを符号化するサブエンコーダと、この選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前記検出線に出力された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化するメインエンコーダとを有することを特徴とする符号化回路。
【請求項１４】
前記メインエンコーダは、１つのアクティブ状態のヒットフラグに対応するメモリワードのアドレスを符号化し、アクティブ状態のエンプティフラグの内、優先順位に応じて、１つのエンプティフラグだけを順次アクティブ状態とし、このアクティブ状態のエンプティフラグに対応するメモリワードのアドレスを順次符号化することを特徴とする請求項１３に記載の符号化回路。
【請求項１５】
前記メインエンコーダは、優先順位に応じて、アクティブ状態のエンプティフラグの内、１つのエンプティフラグだけを順次アクティブ状態として出力するプライオリティ回路を有することを特徴とする請求項１３に記載の符号化回路。
【請求項１６】
前記連想メモリ装置は、
さらに、各々の前記連想メモリサブブロック内の同一の前記メモリワードに各々対応して設けられ、各々の前記メモリワードに対応する前記ヒットフラグおよび各々の前記エンプティフラグのいずれかが各々共通に出力される検出線と、
各々の前記ヒットフラグまたは各々の前記エンプティフラグのいずれかを各々対応する前記検出線に出力するスイッチ回路とを有することを特徴とする請求項１〜１５のいずれかに記載の符号化回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の連想メモリサブブロックに分割された大容量連想メモリ装置（associative memory）に適用され、検索データと各メモリワードの内容との一致検索結果であるヒットフラグに対応したアドレスを、あるいは、各メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグに対応したアドレスを、予め定められた優先順位に従って順番に効率良く符号化するための符号化回路に関するものである。
【０００２】
【従来の技術】
従来より検索データと記憶データとの一致検出を全ビット並行に行い、一致したデータの記憶アドレスまたはデータを出力する機能を有する半導体記憶装置として、連想メモリすなわち完全並列型ＣＡＭ（Content Addressable Memory：内容アドレス式メモリ）が良く知られている（菅野卓雄監修、飯塚哲哉編「ＣＭＯＳ超ＬＳＩの設計」培風館、Ｐ１７６〜Ｐ１７７参照）。
【０００３】
連想メモリ（ＣＡＭ）は物理的なメモリアドレスによってではなく、内容によって検索される。従って、ＣＡＭの基本機能は、例えば通常のメモリとは逆に検索データを入力し、その検索データと一致したデータが記憶されているワードのアドレスを出力するものである。しかし、一致するワードは１つに限られているわけではなく、複数のワードで一致する場合がある。このように複数のワードで一致が得られた場合には、普通の符号化回路（エンコーダ）では正しい符号化出力が得られない。このため、ＣＡＭには複数の一致信号（ヒット信号）を所定の優先順位に従って符号化出力する優先順位付符号化回路（プライオリティ・エンコーダ）が用いられている。
【０００４】
ところで、大容量ＣＡＭでは、一般にワード長に対してワード数が非常に大きくなっている。このため、セルアレイが複数のブロックに分割されるが、そこではプライオリティ・エンコーダの配置が重要な問題となる。すなわち、もし仮にＣＡＭの各ブロック全てにプライオリティ・エンコーダを付けるとすると、プライオリティ・エンコーダ回路の占有面積が大きくなるし、消費電力も増大する。そして、分割するブロックの数が増大すると、これに比例して、前記占有面積および消費電力はさらに増大する。
【０００５】
このため、複数のブロックに対して１つのメインプライオリティ・エンコーダを設け、このプライオリティ・エンコーダによってエンコード（符号化）を行うブロックは別途設けられたブロックプライオリティエンコーダによって行うように構成した連想メモリ装置が提案されている。
【０００６】
この連想メモリ（ＣＡＭ）を図３０に示す。図３０に示すように、連想メモリ２００は４つの連想メモリブロック２０２に分割され、この連想メモリブロック２０２はさらに８つの連想メモリサブブロック２０４に分割されている。そして、プライオリティエンコーダ２１０は、これらの８つの連想メモリサブブロック２０４からなる１つの連想メモリブロック２０２毎に１つの、すなわち全部で４個設けられるメインプライオリティエンコーダ２１２と、４つの連想メモリブロック２０２に対して１個設けられるサブブロックプライオリティエンコーダ２１４とを備えた階層的プライオリティエンコーダの構成が採られている。ここで、図３１に示すように連想メモリサブブロック２０４は、所定ワード長の連想メモリワードを所定数配列したＣＡＭサブアレイ２０６とその制御部からなり、この制御部には検索データと連想メモリワードとのヒット信号を保持するヒット信号レジスタ２０８が含まれる。
【０００７】
この連想メモリブロック２０２において、一致検索時には、まず、各連想メモリサブブロック２０４毎にこのサブブロック内の全ワードのヒット信号がヒット信号レジスタ２０８に保持されると同時に各連想メモリサブブロック２０４の制御部のＯＲ回路（図示せず）によってこのサブブロック２０４内に一致ワードの存在を示すサブブロックヒット信号を発生する。続いて、サブブロックプライオリティエンコーダ２１４がその信号を受けて最も優先順位の高い連想メモリサブブロック２０４を示すサブロックセレクト信号を発生し、同時にサブブロックプライオリティエンコーダ２１４は、符号化（コード化）されたサブブロックアドレスを生成する。
【０００８】
次に、選択されたサブブロックのスイッチ回路（図示せず）が前記ブロックセレクト信号を受けて活性化し、ヒット信号レジスタ２０８に保持されているデータ（ヒット信号）を出力信号としてメインプライオリティエンコーダ２１２に転送する。そしてこの後、メインプライオリティエンコーダ２１２は転送されたヒット信号を予め定められた優先順位に従って符号化し、連想メモリサブブロック２０４内のヒットメモリワードアドレスを生成する。このヒットメモリワードアドレスと前述のサブブロックアドレスとを合わせてＣＡＭメモリ２００のヒットメモリワードの符号化論理アドレスをプライオリティエンコーダ２１０は出力する。
【０００９】
図３０および図３１に示す従来のＣＡＭメモリ２００においては、プライオリティエンコーダ（符号化回路）２１０を複数の連想メモリサブブロック２０４を受け持つメインプライオリティエンコーダ（優先順位付符号化回路）２１２と符号化を行う連想メモリサブブロック２０４の優先順位を付けるサブブロックプライオリティエンコーダ２１４とで構成し、この複数のサブブロック２０４の内でまず、優先順位を決めて、優先されたサブブロック２０４の出力信号をメインプライオリティエンコーダ２１２に入力し、符号化（エンコード）することにより、符号化回路構成全体を比較的小さくでき、ＣＡＭメモリ２００全体の回路規模に対する回路面積を縮小し、高集積化を図ることが可能なものとしている。
【００１０】
しかしながら、優先された連想メモリサブブロック２０４からの出力信号（ヒット信号データ）が全てメインプライオリティエンコーダ２１２によって符号化され、この符号化が終了し、符号化されたデータが出力されてから、次の優先サブブロック２０４からの出力信号（ヒット信号データ（以下、フラグデータともいう））の符号化を開始するまでの間にはサブブロック間のヒット信号の切り換え時間が必要となる。すなわち、メインプライオリティエンコーダ２１２による符号化アドレスの出力後、次の優先サブブロック２０４のヒット信号レジスタ２０８からヒット信号データがメインプライオリティエンコーダまで転送される時間が必要であり、効率よく符号化できないという問題があった。
【００１１】
一方、連想メモリを使用した装置では、連想メモリの各メモリワードの使用効率を最大限に向上させるために、例えば一致検索の結果、検索データと一致した複数のメモリワードの内容を保持し、一致しなかったメモリワードの内容を消去した後、この消去したメモリワードの箇所に順次新しいデータを書き込むことにより、メモリワードの内容を更新するという動作が頻繁に行われる。
【００１２】
例えば、複数のコンピュータを接続し、統合されたネットワーク環境を構築するスイッチングハブ等の装置では、連想メモリを使用して、パケットデータのヘッダー部に存在するＭＡＣアドレスに対応するポート番号等の付属データを取得し、これに基づいて、送信元のコンピュータから転送されてきたパケットデータを、取得したポート番号に対応したポートから出力することにより、受信先のコンピュータに正しく転送している。
【００１３】
ここで、あるコンピュータを接続するポートをポート１からポート３に変更した場合、このコンピュータに対応するＭＡＣアドレスのデータが格納されたメモリワードの付属データに格納されたポート番号をポート１からポート３に更新しておかなければ、このコンピュータへ転送されるパケットデータは、実際に接続されているポート３ではなく、このコンピュータが以前に接続されていたポート１から出力されてしまう。これを防止するために、それぞれのコンピュータが接続されているポート番号を常時最新の情報に更新しておく必要がある。
【００１４】
また、連想メモリのメモリワードのワード数は、ネットワーク上の全体のコンピュータの台数よりも少ないのが一般的であり、各メモリワードには、選択的に特定のコンピュータの情報だけが格納される。例えば、連想メモリ装置の使用効率を向上するために、付属データとして使用時間を管理するためのタイムスタンプ情報を格納し、このタイムスタンプ情報を常に更新して、使用頻度の高いコンピュータの情報だけをメモリワードに登録している。従って、各メモリワードのタイムスタンプ情報を常時最新の情報に更新しておく必要がある。
【００１５】
このように、連想メモリを使用した装置においては、連想メモリの各メモリワードの内容を更新するという動作が頻繁に行われる。
【００１６】
しかしながら、連想メモリの各メモリワードの内容を更新するためには、内容を消去したメモリワードのアドレスを管理する必要があるが、内容を消去するメモリワードのアドレスはランダムに発生するため、従来の連想メモリ装置では、内容を消去した無効なメモリワードのアドレスを管理することができず、例えば連想メモリの外部で内容を消去したメモリワードのアドレスを管理しなければならないという問題点があった。
【００１７】
【発明が解決しようとする課題】
本発明の目的は、上記従来技術の問題点を解消し、大容量データに対する高速処理を必要とする、複数の連想メモリサブブロックから構成される連想メモリブロックからなる大容量連想メモリ装置に適用可能であって、内容を消去した無効なメモリワードを管理し、そのアドレスを効率よく符号化することができる符号化回路を提供することにある。
また、本発明の他の目的は、上記目的に加えてさらに、複数の連想メモリサブブロック間の切り換わりに時間遅れ（待ち時間）がなく多数の連想メモリサブブロックからの出力信号を所定のサイクルで連続して効率よく符号化することのできる符号化回路を提供することにある。
【００１８】
【課題を解決するための手段】
上記目的を達成するために、本発明は、複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに１対１に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第１のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第２のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、各々の前記検出線上に出力された前記ヒットフラグまたは前記エンプティフラグを検出するセンス回路と、このセンス回路によって検出された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、１つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路を提供するものである。
【００１９】
また、本発明は、複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに１対１に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第１のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第２のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、各々の前記検出線上に出力された前記ヒットフラグまたは前記エンプティフラグを検出するセンス回路と、このセンス回路によって検出された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、１つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路を提供する。
【００２０】
また、本発明は、複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに１対１に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第１のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第２のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、各々の前記検出線上に出力された前記ヒットフラグまたは前記エンプティフラグを検出するセンス回路と、このセンス回路によって検出された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、１つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路を提供する。
【００２１】
また、本発明は、複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに１対１に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第１のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第２のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、各々の前記検出線上に出力された前記ヒットフラグまたは前記エンプティフラグを検出するセンス回路と、このセンス回路によって検出された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、１つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路を提供する。
【００２２】
また、本発明は、複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに１対１に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第１のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第２のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前の優先順位の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化している間に、前記検出線上に出力される次の優先順位の前記ヒットフラグまたは前記エンプティフラグを予め保持しておくプリフェッチ回路と、このプリフェッチ回路に保持されている前記前の優先順位の各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、１つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路を提供する。
【００２３】
また、本発明は、複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに１対１に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第１のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第２のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前の優先順位の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化している間に、前記検出線上に出力される次の優先順位の前記ヒットフラグまたは前記エンプティフラグを予め保持しておくプリフェッチ回路と、このプリフェッチ回路に保持されている前記前の優先順位の各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、１つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路を提供する。
【００２４】
また、本発明は、複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに１対１に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第１のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第２のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前の優先順位の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化している間に、前記検出線上に出力される次の優先順位の前記ヒットフラグまたは前記エンプティフラグを予め保持しておくプリフェッチ回路と、このプリフェッチ回路に保持されている前記前の優先順位の各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、１つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路を提供する。
【００２５】
また、本発明は、複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに１対１に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第１のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第２のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前の優先順位の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化している間に、前記検出線上に出力される次の優先順位の前記ヒットフラグまたは前記エンプティフラグを予め保持しておくプリフェッチ回路と、このプリフェッチ回路に保持されている前記前の優先順位の各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、１つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路を提供する。
【００２６】
ここで、前記ヒットフラグと前記エンプティフラグとで前記検出線を共用することが好ましい。
【００２７】
さらに、上記のいずれかに記載の符号化回路であって、
前記メインプライオリティエンコーダは、さらに、前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化するか、あるいは、前記ヒットフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化するのかを決定する選択手段を有することが好ましい。
【００２９】
また、前記サブプライオリティエンコーダは、各々の前記連想メモリサブブロックから出力される前記サブブロックヒット信号または前記サブブロックエンプティ信号を保持するデータラッチ回路と、このデータラッチ回路に保持された各々の前記サブブロックヒット信号または前記サブブロックエンプティ信号の内、優先順位に応じて、１つの前記サブブロックヒット信号または前記サブブロックエンプティ信号だけをアクティブ状態として順次出力するサブプライオリティ回路と、このサブプライオリティ回路から順次出力されるアクティブ状態とされた前記サブブロックヒット信号または前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックのアドレスを順次符号化するサブエンコード回路とを有するのが好ましい。
【００３０】
また、前記サブプライオリティエンコーダは、各々の前記連想メモリサブブロックから出力される、ただ１つのアクティブ状態である前記サブブロックヒット信号を保持するデータラッチ回路と、このデータラッチ回路から出力される、ただ１つのアクティブ状態である前記サブブロックヒット信号に対応した前記連想メモリサブブロックのアドレスを符号化するサブエンコード回路とを有するのも好ましい。
【００３１】
また、上記のいずれかに記載の連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックを選択し、そのアドレスを符号化するサブエンコーダと、この選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前記検出線に出力された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化するメインエンコーダとを有することが好ましい。
【００３２】
また、前記メインエンコーダは、１つのアクティブ状態のヒットフラグに対応するメモリワードのアドレスを符号化し、アクティブ状態のエンプティフラグの内、優先順位に応じて、１つのエンプティフラグだけを順次アクティブ状態とし、このアクティブ状態のエンプティフラグに対応するメモリワードのアドレスを順次符号化することが好ましい。
【００３３】
また、前記メインエンコーダは、優先順位に応じて、アクティブ状態のエンプティフラグの内、１つのエンプティフラグだけを順次アクティブ状態として出力するプライオリティ回路を有することが好ましい。
【００３４】
また、前記連想メモリ装置は、
さらに、各々の前記連想メモリサブブロック内の同一の前記メモリワードに各々対応して設けられ、各々の前記メモリワードに対応する前記ヒットフラグおよび各々の前記エンプティフラグのいずれかが各々共通に出力される検出線と、
各々の前記ヒットフラグまたは各々の前記エンプティフラグのいずれかを各々対応する前記検出線に出力するスイッチ回路とを有することが好ましい。
【００３５】
【発明の実施の形態】
以下に、添付の図面に示す好適実施例に基づいて、まず、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路およびこれが適用される連想メモリ装置についての説明を順次行い、最後に、本発明の連想メモリ装置に適用される符号化回路についての詳細な説明を行う。
【００３６】
まず、図１〜図７を参照して、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路の一例について詳細に説明する。
【００３７】
図示例の連想メモリ装置においては、一致検索時に連想メモリ装置を構成する連想メモリブロックに検索データが入力されると、複数の連想メモリサブブロックの第１番目から順次一致検索が行われる。この時、各連想メモリサブブロック毎にその結果、すなわち複数の連想メモリワードに前記検索データと一致する一致信号（ヒット信号）が保持されるとともに、優先順位付サブブロック符号化回路によって最も優先順位の高い連想メモリサブブロックが選択され、そのヒット信号が優先順位付符号化回路に転送され、このヒット信号をこの優先順位付符号化回路は符号化し、ヒットアドレスを出力する。一方、このヒット信号の符号化中に、前記優先順位付サブブロック符号化回路によって選択された次の優先順位の連想メモリサブブロックのヒット信号は、プリフェッチ回路に入力される。そして、前記優先順位付符号化回路では先の優先順位の連想メモリサブブロックのヒット信号の符号化が終了した後、直ちに、プリフェッチ回路に入力されている次の優先順位の連想メモリサブブロックのヒット信号の符号化を開始する。この後、空きを生じた前記プリフェッチ回路にさらに次の優先順位の連想メモリサブブロックのヒット信号をプリフェッチ回路に先読みする。これらの手順を順次繰り返して、前記連想メモリブロック全体のヒット信号の符号化、すなわちアドレス出力を行う。
【００３８】
この符号化回路によれば、上述したように、次に符号化すべき連想メモリサブブロックのヒット信号が、前の連想メモリサブブロックのヒット信号の符号化中にプリフェッチ回路に入力されているので、前記ヒット信号を連想メモリサブブロックから優先順位付符号化回路まで転送する時間を符号化時間の他にとる必要がないので、連想メモリブロック全体ひいては連想メモリ全体の符号化時間を短縮することができ、連想メモリの一致検索動作を高速化できる。
【００３９】
以下に、本発明の前提となる符号化回路を添付の図面に示す好適実施例に基づいて詳細に説明する。
【００４０】
図１は、本発明の前提となる符号化回路が適用された連想メモリブロックの一実施例の概略図である。図示例の符号化回路１０は、先読みバッファ回路付優先順位付符号化回路（以下、メインプライオリティエンコーダあるいはメインエンコーダという）１２と、優先順位付サブブロック符号化回路１４（以下、サブブロックプライオリティエンコーダまたはサブブロックエンコーダという）とを有し、メインエンコーダ１２は、先読みバッファ回路１６と、データラッチ回路１８と、プライオリティ回路２０と、エンコード回路２２とを有し、サブブロックエンコーダ１４は、ラッチ回路２４と、プライオリティ回路２６と、エンコード回路２８とを有する。
【００４１】
メインエンコーダ１２は、連想メモリブロック（以下、メモリブロックという）３０に対して設けられる。連想メモリブロック３０は複数（図示例ではｎ個）の連想メモリサブブロック（以下、サブブロックという）３２（Ｂ1 、Ｂ2 、…、Ｂn ）からなり、サブブロック３２は、所定数のＣＡＭメモリセルがアレイ状に配列された、すなわち所定ワード長の連続した論理アドレスを持つ複数（図示例ではｍ＋１個）の連想メモリワード（以下、ワードという）３４（Ｗ0 、Ｗ1 、…、Ｗm ）から構成されるサブアレイ（ＣＡＭセルサブアレイ）部と、各ワード３４における検索データとの一致検索結果、例えば一致‘１’信号（ヒット信号）、不一致‘０’信号を各ワード３４毎に保持するレジスタ３６（Ｒ0 、Ｒ1 、Ｒ2 、…、Ｒm ）とを有し、また上記各ワード３４の一致検索結果（以下、ヒット信号データという）のＯＲ（論理和）をとるＯＲ回路を有し、このＯＲ回路の出力は、後述するサブブロックエンコーダ１４のラッチ回路２４に各サブブロック毎に保持される。
【００４２】
図２にメインエンコーダ１２の一実施例の構成図を示す。同図において、メインエンコーダ１２の先読みバッファ回路１６は、メインエンコーダ１２のプライオリティ回路２０およびエンコード回路２２が、より優先順位の高いサブブロック３２のヒット信号を所定の優先順位（ワード）に従って一致ワード３４のアドレスを符号化（エンコード）している間に、次の優先順位のサブブロック３２のレジスタ３６に保持されているヒット信号データを各ワード３４（Ｗ0 、Ｗ1 、…、Ｗm ）毎に入力しておくためのものであり、ｍ＋１個の‘０’または‘１’の１ビットデータを一時的に保持可能なものであれば何でもよく、データラッチ回路やデータレジスタなどでよい。先読みバッファ回路１６は、メインエンコーダ１２のエンコード出力（エンコードアドレス出力）によって、ラッチホールドしていた各ワード３４のヒット信号データをデータラッチ回路１８にパラレル出力した後、このヒット信号データがメインエンコーダ１２によって符号化されている間にサブブロックエンコーダ１４によって選択された次の優先順位のサブブロック３２のヒット信号データを各ワード３４毎にそれぞれ取り込む。
【００４３】
データラッチ回路１８は、先読みバッファ回路１６と同様にｍ＋１個の１ビットデータをラッチホールドするためのもので、各ワード３４（Ｗ0 、Ｗ1 、…、Ｗm ）のヒット信号データ、特に複数のヒット信号を持つヒット信号データから所定の優先順位に従って、プライオリティ回路２０が１つのワードアドレスのみにヒット信号（‘１’）を持つデータを選び出し、これをエンコード回路２２が符号化することを繰り返し、すべてのヒット信号（‘１’）が符号化されるまでの間前記ヒット信号データを保持しておくためのものである。このデータラッチ回路１８は、優先順位の高いワードアドレスのヒット信号（‘１’）が符号化される毎にこのワードアドレスのヒット信号（‘１’）はリセットされるように構成される。
【００４４】
プライオリティ回路２０は、図２に示すように複数のヒット信号を持つヒット信号データが入力された時、すなわち、複数の一致信号を有する全ワード３４のｍ＋１個の入力信号を受けて、ただ１つのヒット信号が所定のプライオリティ（優先順位）付けされて含まれる出力信号を所定の優先順位に従って順次出力するもので、ｍ＋１個のプライオリティ回路要素４０（４０0 、４０1 、…、４０m ）を含む。ここで１つのプライオリティ回路要素（以下、回路要素という）４０は、第２回路要素４０1 を代表例として説明すると、入力端子Ｉ1 に入力される入力信号を反転するインバータ４２と、インバータ４２の出力とそのゲート電極とが接続され、入力信号によって互いに排他的（逆）に制御されるＮチャンネルＭＯＳトランジスタ４４（Ｎ1 ）およびＰチャンネルＭＯＳトランジスタ４６（Ｐ1 ）と、ＮＭＯＳトランジスタ４４のソース電極およびドレイン電極とを入力とし、出力端子Ｏ1 を出力とする論理演算回路４８とを有する。
【００４５】
ここで、ＮＭＯＳトランジスタＮ1 の一方の電極（例えば、ソース電極）はノードＱ0 で上位回路要素４０0 のＮＭＯＳトランジスタＮ0 の他方の電極（例えば、ドレイン電極）に接続され、ＮＭＯＳトランジスタＮ1 の他方の電極（例えば、ドレイン電極）は、ノードＱ1 で下位回路要素４０2 のＭＯＳトランジスタＮ2 の一方の電極（例えば、ソース電極）に接続される。こうして、ＮＭＯＳトランジスタＮ0 、Ｎ1 、Ｎ2 、…、Ｎm はノードＱ0 、Ｑ1 、Ｑ2 、…、Ｑm-1 によってシリアルに接続される。ＮＭＯＳトランジスタＮm の下側のノードＱm はＯＲ出力端子ｏｒに接続され、このＯＲ出力端子ｏｒはデータラッチ回路１８の各回路にインバータ４９を介して接続される。また、最上段のＮＭＯＳトランジスタＮ0 の上側（一方）の電極（例えば、ソース電極）は‘０’を示す電位（信号状態）に固定、あるいは接地される。一方、ＰＭＯＳトランジスタＰ0 、Ｐ1 、Ｐ2 、…、Ｐm の一方の電極（例えば、ソース電極）は‘１’を示す電位（信号状態）に固定されるか、あるいは電源Ｖddに接続され、他方の電極（例えば、ドレイン電極）は、それぞれノードＱ0 、Ｑ1 、Ｑ2 、…、Ｑm に接続される。ここで、このＮＭＯＳトランジスタ間の電極（ソース電極とドレイン電極）の接続の方向は、ＮＭＯＳトランジスタＮ0 、Ｎ1 、Ｎ2 、…、Ｎm がシリアル接続できれば逆方向であってもよい。ＰＭＯＳトランジスタＰ0 〜Ｐm についても同様である。このようにしてｍ＋１入力、ｍ＋１出力のプライオリティ回路２０は構成される。
【００４６】
次に、このプライオリティ回路２０のプライオリティ（優先順位）付け動作、すなわち複数のヒット信号（一致信号）‘１’がＩ0 〜Ｉm から入力されても、最も優先度の高いアドレスのみが一致信号‘１’である優先度付出力信号の出力動作について説明する。このユニット回路２０の回路要素４０1 に注目すると、Ｉ1 入力が‘１’であればＮ1 トランジスタ４４がＯＦＦし、Ｐ1 トランジスタ４６がＯＮする。従って、このＰ1 トランジスタ４６によってＱ1 ノードは‘１’に設定される。Ｉ1 入力が‘０’であればＮ1 トランジスタ４４がＯＮし、Ｐ1 トランジスタ４６はＯＦＦする。従って、Ｑ1 ノードは１つ上のＱ0 ノードの論理値と同じになる。もし、Ｉk 入力が‘１’であれば、Ｑk が‘１’になるので、それ以後のＱn （ｊ≧ｋ＋１）はＩj が‘１’であろうと‘０’であろうと‘１’にしかなりえない。すなわち、Ｉk+1 ＝‘１’であれば、ノードＱk+1 （の信号状態）は‘１’、一方Ｉk+1 ＝‘０’であればＱk+1 ＝Ｑk で、Ｑk ＝‘１’よりＱk+1 ＝‘１’となる。
【００４７】
この結果、図２において、複数のＩ入力が‘１’であって、それに対応するシリアル接続ＮＭＯＳトランジスタ４４（Ｎ）がＯＦＦしているときに、一番上側にあるＮＭＯＳトランジスタ４４にまでは伝搬制御信号である‘０’が伝わるが、それより下側の各Ｑノードには伝搬制御信号‘０’が伝わらず、すべて１となる。従って、制御信号‘０’がどこまで伝わっているかを論理演算回路４８で検出すればよい。このプライオリティ回路２０のＩ0 〜Ｉm のｍ＋１入力がすべて‘０’となればＯＲ出力端子ｏｒにまで制御信号‘０’が伝わり、全ｍ＋１入力信号に‘１’がないことになり、このサブブロックのヒット信号データの全ヒット信号のプライオリティ付けが終了し、先読みバッファ回路１６にラッチホールドされている次の優先順位のヒット信号データのデータラッチ回路１８への入力を可能としたことを知らせ、その後サブブロックエンコーダ１４によって選択された次の次の優先順位のヒット信号データの先読みバッファ回路１６への読み込みが可能なことを知らせる。
【００４８】
ここで、図２に示す論理演算回路４８は、シリアル接続されるＮＭＯＳトランジスタ４４（Ｎ1 ）のドレイン−ソース間の信号状態、すなわちノードＱ0 とノードＱ1 との間の論理値の排他的論理和（イクスクルーシブＯＲ：Exclusive ＯＲ）をとるイクスクルーシブＯＲゲート（Exclusive ＯＲゲート：反一致回路）４８ａから構成される。この論理演算回路４８では、ノードＱ0 とノードＱ1 が不一致、すなわち、回路要素４０1 のＮＭＯＳトランジスタ４４（Ｎ1 ）のノードＱ0 までは伝搬制御信号‘０’が伝搬されているが、ノードＱ1 までは伝搬制御信号‘０’が伝搬されていない場合、Exclusive ＯＲゲート４８ａが‘１’を出力する。ノードＱ0 とノードＱ1 が一致（‘０’）であれば出力端子Ｏ1 の出力は‘０’である。論理演算回路４８は、図２に示す例に限定されず、種々のゲートを組み合わせて、所望の論理演算を行うように構成すればよい。また、論理演算回路４８の入力は、ノードＱ0 とノードＱ1 との間に限定されず、このいずれか一方と入力信号またはその反転値であってもよく、その論理演算の内容も、信号値に応じ適宜選択すればよい。
【００４９】
次に、複数のヒット信号を持つ入力信号（Ｉ）から１つのヒット信号を持つ、最も優先度の高い優先順位の出力信号（Ｏ）が出力された時に、次に優先順位の高いヒット信号のアドレスが同一のサブブロック３２にある場合には、最高優先順位出力信号を用いて入力側をリセットしてやればよい。すなわち、例えば、図２に示すプライオリティ回路２０において、Ｉ1 ＝‘１’、Ｉ2 ＝‘１’だったとすると、ノードＱ0 ＝‘０’、ノードＱ1 ＝Ｑ2 ＝…＝Ｑm ＝‘１’となるので、出力Ｏ1 ＝‘１’となり、出力Ｏ0 ＝Ｏ2 ＝…＝Ｏm ＝‘０’となる。このＯ1 出力値をデータラッチ回路１８（１８1 ）のリセット端子に入力してリセットしてやれば、Ｉ1 ＝‘０’、従って、Ｎトランジスタ４４（Ｎ1 ）はオン、Ｐトランジスタ４６（Ｐ1 ）はオフとなってノードＱ1 ＝Ｑ0 ＝‘０’、ここで、ＮトランジスタＮ2 はオフしているのでノードＱ0 ＝Ｑ1 ＝‘０’、ノードＱ2 ＝…＝Ｑm ＝‘１’となり、次の優先度のＩ2 ＝‘１’が次の出力信号として選ばれることになる。
【００５０】
こうして、１度にメインエンコーダ１２に入力された同一サブブロック３２のヒット信号データ中の複数のヒット信号が、予め定められた優先順位に従って、１つのヒット信号のみをもつ出力信号としてプライオリティ回路２０によって順次エンコード回路２２に出力されるとともに、‘１’出力に対応するワードアドレスのデータラッチ回路１８のリセット端子に‘１’出力が入力され、データラッチ回路１８にラッチホールドされていたヒット信号（‘１’）を順次リセットしていく。こうして、最後のヒット信号がプライオリティ付けされ、エンコード回路２２に出力されるとともにリセットされると、図中最下端のノードＱm にはデータ‘０’が伝達され、ＯＲ出力端子ｏｒから出力され、インバータ４９で反転され、その反転値‘１’がデータラッチ回路１８の全回路に入力され、先読みバッファ回路１６にラッチホールドされていた次の優先順位のサブブロック３２のヒット信号データがデータラッチ回路１８の各々対応する回路に入力（シフト）されて保持された後、空いた先読みバッファ回路１６には、予めサブブロックエンコーダ１４によって選択されていた次の次の優先順位のサブブロック３２のヒット信号データがレジスタ３６から読み込まれ、ラッチホールドされる。こうして、プライオリティ回路２０は、先の優先順位のサブブロックのヒット信号データの処理を終了してから、次の優先順位のサブブロックのヒット信号データがそのサブブロック３２のレジスタ３６から転送されてくる間、待機する必要がないので、エンコードを効率よく行うことができる。
【００５１】
エンコード回路２２は、プライオリティ回路２０から順次出力される出力信号にただ１つ存在する一致信号のアドレスをコード化するためのもので、各ワード３４（Ｗ0 、Ｗ1 、Ｗ2 、…、Ｗm ）に対応する出力端子Ｏ0 、Ｏ1 、Ｏ2 、…、Ｏm 各々のワードアドレスを符号化するためのもので、ｍ＋１≦２L となる最小の自然数Ｌに対し、Ｌ＋１ビットのコード化をするためのＬ＋１本のアドレス線５０（５０0 、５０1 、５０2 、…、５０L ）と、各々のアドレス線５０に取り付けられ、そのゲート電極が各出力端子Ｏ0 、Ｏ1 、Ｏ2 、…、Ｏm からの出力線に接続される接地トランジスタ５２からなる。ここで、Ｌ＋１本のすべてのアドレス線５０0 、５０1 、５０2 、…、５０L は一端側にそれぞれ抵抗ｒ0 、ｒ1 、ｒ2 、…、ｒL を介して電源に接続され（または‘１’電位に固定され）、ＡL …Ａ2 Ａ1 Ａ0 のＬ＋１ビットのコード出力が得られるようにトランジスタ５２が取り付けられる。
【００５２】
すなわち、出力端子Ｏ0 からの出力線はＬ＋１本すべてのアドレス線５０0 〜５０L に接続されるＬ＋１個の接地トランジスタ５２のすべてのゲート電極に接続される。ここで、例えば出力端子Ｏ0 の出力が‘１’（一致信号）であり、残りはすべて‘０’である時、ＡL ＝…＝Ａ2 ＝Ａ1 ＝Ａ0 ＝０となって、（ＡL …Ａ2 Ａ1 Ａ0 ）＝（０…０００）を表わす。次に、２番目および３番目のワードアドレスＷ1 に対応する出力端子Ｏ1 およびＯ2 の出力線は、それぞれアドレス線５０0 および５０1 を除くＬ本のアドレス線５０1 〜５０L および５０0 、５０2 〜５０L に接続されるＬ個の接地トランジスタ５２のゲート電極に接続され、出力端子Ｏ1 およびＯ2 のみが‘１’になった時、それぞれ（ＡL …Ａ2 Ａ1 Ａ0 ）＝（０…００１）および（０…０１０）を表わす。以下同様にしてそれぞれのコードアドレスを表わすように接地トランジスタ５２が各アドレス線５０に接続される。例えば、ｍ＋１＝２L の時、最後の出力端子Ｏm の出力線は、アドレス線５０L のみに取り付けられる接地トランジスタ５２のみに接続され、出力端子Ｏm のみ‘１’の時、（ＡL …Ａ2 Ａ1 Ａ0 ）＝（０１…１１１）（最初のＬ＋１桁目が‘０’で残りのＬ桁がすべて‘１’）を表わす。そして、すべての出力端子Ｏ0 、Ｏ1 、Ｏ2 、…、Ｏm が‘０’の時、（ＡL …Ａ2 Ａ1 Ａ0 ）＝（１…１１１）（全部１）を表わす。エンコード回路２２は基本的に以上のように構成される。ここでエンコード回路２２は、特に図示のものに限定されず、１つのワードアドレスのみに‘１’出力を持つ入力信号を受けて、‘１’出力のアドレスを符号化（コード化）して出力することができるものであれば、特に限定はなく、従来公知のものも用いることができる。メインエンコーダ１２は基本的には以上のように構成される。
【００５３】
次に、図３にサブブロックエンコーダ１４の一実施例のブロック図を示す。なお、同図に示すデータラッチ回路２４、プライオリティ回路２６およびエンコード回路２８は、各々構成するユニットの数がｍ＋１個に対しｎ個である点を除き、基本的には図２に示すデータラッチ回路１８、プライオリティ回路２０およびエンコード回路２２の構成と同様の構成を示すものであるので、詳細な回路構成は省略する。ここで、サブブロックエンコーダ１４では、連想メモリサブブロック３２（Ｂ1 、Ｂ2 、…、Ｂn ）毎に行われる一致検索時に、各メモリサブブロック３２における一致検索結果、すなわちヒット信号データがレジスタ３６に保持されるとともに、サブブロック３２内の図示しないＯＲ回路などによって、サブブロック３２内に検索データと一致を示したワード３４（ヒットワード、またはマッチワード）が存在するか否かを示すサブブロックヒット信号を発生させ、これを対応するサブブロック３２のデータラッチ回路２４に保持させる。こうして、次々とサブブロック３２の一致検索が順次行われ、そのサブブロック３２のレジスタ３６にヒット信号データが保持されるのに伴って、ブロックヒット信号がデータラッチ回路２４にラッチホールドされて行く。
【００５４】
一方、このサブブロックエンコーダ１４のサブプライオリティ回路２６では、所定の優先順位に従って、図示例では左側から右側に向って、データラッチ回路２４にラッチホールドされたブロックヒット信号がヒット信号（‘１’）であるサブブロック３２を選択し、そのブロックアドレスのみに‘１’を持つプライオリティ付出力信号を出力する。この出力信号は、後段のサブエンコード回路２８によって符号化されエンコード出力されるとともに、当該サブブロック３２の制御部に戻され、制御部内のゲート回路５４をオンしてレジスタ３６内のヒット信号データをメインエンコーダ１２のプリフェッチ回路１６が空きの状態になった後に入力する。このようにして、サブブロックエンコーダ１４は所定の優先順位に従って、次に符号化すべき優先順位のサブブロック３２を選択し、メインエンコーダ１２が先の優先順位のサブブロック３２のヒット信号データからヒット信号のワードアドレスを符号化している間に、空きとなったプリフェッチ回路１６に次の優先順位のサブブロック３２のヒット信号データを転送し、ラッチホールドさせておく。
【００５５】
ここで、図示例の符号化回路１０は、サブブロックエンコーダ１４のサブエンコード回路２８からの符号化されたブロックアドレス出力とメインエンコーダ１２のメインエンコード回路２２からの符号化されたワードアドレス出力とを両方合わせて符号化論理アドレスとして順次出力していく。そして、最終サブブロック３２または最低優先順位のサブブロック３２が選択されると、サブブロックエンコーダ１４の処理は終了し、メインエンコーダによる全ヒット信号の符号化が終ると、符号化回路１０は、すべての連想メモリサブブロック３０のすべてのメモリワード３４のヒット信号を論理アドレスとして出力して、一致検索動作を終了する。なお、図示例の符号化回路１０は、複数の連想メモリサブブロック３２をもつ連想メモリブロック３０に対し、１つのメインエンコーダ１２と１つのサブブロックエンコーダ１４とを設けた例を示しているが、これに限定されず、図３０に示す連想メモリ２００に適用される従来の符号化回路２１０と同様に複数の連想メモリブロック３０に対して１つのサブブロックエンコーダ１４を設ける構成であってもよい。
【００５６】
次に、図示例の符号化回路１０に用いられるプリフェッチ回路１６の具体的回路構成およびその動作に必要な各サブブロック３２の制御のためのスイッチ回路１６０ならびにプリチャージ回路１６２を図４に示す。
【００５７】
同図に示すようにスイッチ回路１６０は、サブブロック３２（Ｂ1 ）のレジスタ３６（Ｒ0 ）に接続される１つ（Ｓ0 ）を代表例として説明すると、２つのＮＭＯＳトランジスタ１６３，１６４を直列に接続して構成される。各スイッチ回路１６０（Ｓ0 ，Ｓ1 ，…，Ｓm ）の一方のトランジスタ１６３の電極（例えば、ドレイン電極）はそれぞれ対応する検出線１６５（Ｌ0 ，Ｌ1 ，…，Ｌm ）に各サブブロック３２（Ｂ1 ，Ｂ2 ，…，Ｂn ）毎に並列に結線され、検出線Ｌはプリフェッチ回路１６に接続される。各スイッチ回路１６０（Ｓ0 ，Ｓ1 ，…，Ｓm ）のトランジスタ１６３のゲート電極は各サブブロック３２内においてブロック選択線１６７に並列にＡＮＤ回路１６６に接続される。また、各スイッチ回路１６０（Ｓ0 ，Ｓi ，…，Ｓm ）の他方のトランジスタ１６４のゲート電極はそれぞれ対応するレジスタ３６（Ｒ0 ，Ｒ1 ，…，Ｒm ）の出力端に接続され、このトランジスタ１６４の他方の電極（例えば、ソース電極）は接地される。また、プリチャージ回路１６２は、各検出線１６５（Ｌ0 ，Ｌ1 ，…，Ｌm ）の電位を所定電位（例えば、電源電位）にプリチャージするプリチャージトランジスタであるＰＭＯＳトランジスタ１６８（ＰＣ0 ，ＰＣ1 ，…，ＰＣm ）からなり、各ＰＭＯＳ１６８（ＰＣ0 ，ＰＣ1 ，…，ＰＣm ）の一方の電極は所定電位源（電源）に、他方の電極は各検出線１６５（Ｌ0 ，Ｌ1 ，…，Ｌm ）に、ゲート電極はプリチャージ信号線１６９に接続される。
【００５８】
プリフェッチ回路１６は、互いに逆向きに並列接続される２個のインバータ１７０および１７２と、インバータ１７０および１７２の出力状態を制御するためのコントロール信号を入力するためのラッチ信号線１７４および１７５とから構成される（ｍ＋１）個のデータラッチ回路を有する。並列接続インバータ１７０および１７２の入力側端は対応する入力線１６５（Ｌi ) に、出力側端はデータラッチ回路１８の対応する回路要素に接続される。また、ラッチ信号線１７４はインバータ１７０のコントロール信号端子およびインバータ１７２の反転コントロール信号端子に接続され、ラッチ信号線１７５はインバータ１７２のコントロール信号端子およびインバータ１７０の反転コントロール信号端子に接続される。
【００５９】
また、ＡＮＤ回路１６６の一方の入力端子はサブブロックエンコーダ１４のデータラッチ回路２４（もしくはサブプライオリティ回路２６）の対応する回路要素に接続され、他方の入力端子は、ブロック選択線１６７の選択タイミングを制御する制御信号線１７６に接続される。制御信号線１７６、プリチャージ信号線１６９、ラッチ信号線１７４および１７５は、各回路の動作タイミングを制御するタイミング制御回路１７８に接続される。
【００６０】
次に、プリフェッチ回路１６のプリフェッチ（先読み）動作について説明する。
まず、プリチャージ信号線１６９をＬとしてＰＭＯＳ１６８（ＰＣ0 ，ＰＣ1 ，…，ＰＣm ）をすべてオンして、プリフェッチ回路１６の（ｍ＋１）本の検出線１６５（Ｌ0 ，Ｌ1 ，…，Ｌm ）を所定電位にプリチャージする。
【００６１】
次に、タイミング制御回路１７８によってプリチャージ信号線１６９をＨとして（ｍ＋１）個のＰＭＯＳ１６８をオフとするとともに、制御線１７６を‘１’（Ｈ）としてサブブロックエンコーダ１４のデータラッチ回路２４にブロックヒット信号‘１’がラッチホールドされている次の優先順位（メインエンコーダ１２がエンコードしているサブブロックの次の優先順位）のサブブロック３２（Ｂi ）のブロックヒット信号‘１’をＡＮＤ回路１６６に入力し、当該サブブロック３２（Ｂi ）のブロック選択線１６７をオンする。
【００６２】
次の優先順位のサブブロック３２（Ｂi ）が選択され、対応するＡＮＤ回路１６６によってブロック選択線１６７がＨ（ハイレベル）になると、レジスタ３６のうちヒット信号（‘１’）を保持していたレジスタ３６（Ｒi ）にそのゲート電極が接続されたトランジスタ１６４およびこれに接続されたトランジスタ１６３はオンし、検出線１６５（Ｌi ）を接地して、この検出線１６５（Ｌi ）にプリチャージされていた電荷を引き抜き、その電位を低下させる。一方、保持データが‘０’（不一致信号）であるレジスタ３６（Ｒj ）にそのゲートが接続されたトランジスタ１６４は、オンせずオフしたままであるので、たとえブロック選択線がＨになっても、対応する検出線１６５（Ｌj ）の電位は変化せず、プリチャージ電位を維持する。
【００６３】
こうして、選択されたサブブロック３２（Ｂi ）の格納レジスタ３６（Ｒ0 ，Ｒ1 ，…，Ｒm ）の格納された値（‘１’：ヒット信号、‘０’：ミスヒット信号）に従って、検出線１６５（Ｌ0 ，Ｌ1 ，…，Ｌm ）の電位が変化し、極性が逆極性となる。
【００６４】
ここで、プリフェッチ回路１６のラッチ信号線１７４および１７５にラッチ信号を与えて、プリフェッチ回路１６の並列接続インバータ１７０および１７２にラッチさせる。ここでインバータ１７０および１７２の入力側の検出線はレジスタ３６と逆極性であるが、出力側は反転されるので同極性となる。従って、メインエンコーダ１２の最優先順位のサブブロック３２のエンコードが終了すると同時に、プリフェッチ回路１６にラッチされていた次の優先順位のサブブロック３２のヒット信号データがデータラッチ回路１８に入力される。この後、プリフェッチ回路１６は上述した動作を繰り返して次の次の優先順位のサブブロック３２の格納レジスタ３６のヒット信号データをプリフェッチする。
符号化回路１０は、基本的に以上のように構成される。
【００６５】
優先順位付符号化回路１０は、図２および図３に示すプライオリティ回路２０、２６およびエンコード回路２２、２８からなるものに限定されず、従来公知のプライオリティ回路およびエンコード回路を用いてもよいが、プライオリティ付けおよび符号化そのものの速度を上げるために、図４、５および６に示すプライオリティ回路１８０およびエンコード回路１９０を用いるものであってもよい。もちろん、プライオリティ回路１８０と図２に示すメインエンコード回路２２とを組み合わせてもよい。
【００６６】
図５に示すプライオリティ回路１８０は、３階層からなり、最下位の階層は、１６個の４入力の小単位のプライオリティ回路（以下、ユニット回路という）１８２からなり、中間階層は４個の同様な４入力の小単位プライオリティ回路１８４からなり、最上位の階層は、１個の同様な４入力小単位プライオリティ回路１８６からなる。従って、プライオリティ回路１８０は、最下位階層の１６個のユニット回路１８２によって６４の入力を持つことができる。すなわち、このプライオリティ回路１８０の６４の入力は、１グループに４つずつの１６グループにグループ化されていることになる。そして、１つのグループの４入力を単位とする小単位プライオリティ回路１８２が構成され、１６個用いられる。この１６個の小単位プライオリティ回路１８２は、それぞれ４つのグループにグループ化され、１つのグループは４つのユニット回路１８２からなり、この１グループを構成する４つのユニット回路１８２は中間階層を構成する１つの小単位プライオリティ回路１８４と接続される。そして、この４つのユニット回路１８４は、１つのグループとなって最上位階層の小単位プライオリティ回路１８６に接続される。
【００６７】
図５に示すプライオリティ回路１８０は、６４入力を持ち、４入力のユニット回路１８２、１８４および１８６を構成単位とする３階層構造を有しているが、これに限定されず、入力数、ユニット回路の素子数および階層数は必要に応じて適宜選択することができるが、全入力数と、用いるユニット回路の入力数に応じて階層構造を適宜選択すればよい。また、各階層を構成するユニット回路１８２、１８４および１８６は同一の入力数のものを用いているが、これに限定されず、異なっていてもよい。ユニット回路の入力数は少ないほうが、プライオリティの変化速度を上げるのには都合がよいが、あまり少ないと、必要なユニット回路の数が大きくなり必要な階層も増えるため、さらに附随する素子や周辺回路が増えるので好ましくない。従って、全入力数と各階層に用いることのできるユニット回路の入力数（１種類でも多種類でもよい）とを選択し、これに適合するように階層数を定め、多階層の構成とすればよい。
【００６８】
小単位プライオリティ回路１８２は、図６（ａ）に示すように、上側、すなわち上位が優先度が高くなるように構成され、４つの入力端子Ｉ0 ，Ｉ1 ，Ｉ2 およびＩ3 と４つの出力端子Ｏ0 ，Ｏ1 ，Ｏ2 およびＯ3 と、イネーブル信号入力端子ｅと論理和（ＯＲ）出力端子ｏｒと、４つのプライオリティ回路要素１８８（１８８0 ，１８８1 ，１８８2 および１８８3 ）を有する。ここに示す回路要素１８８は、用いられる論理演算回路４８が、イネーブル信号入力端子ｅを有し、ここから入力されるイネーブル信号によって活性化される論理演算回路構成である点を除き、図２に示す回路要素４０と全く同様の構成を有しているので同一の構成要素には同一の番号を付し、その説明は省略する。
【００６９】
図６（ａ）に示す論理演算回路４８の具体的構成例を図７に示す。図７に示す論理演算回路４８は、イクスクルーシブＯＲゲート４８ａと、このイクスクルーシブＯＲゲート４８ａの出力とイネーブル信号ｅとの論理積をとるＡＮＤゲート４８ｂから構成される。この論理演算回路４８は、入力信号が不一致、すなわちノードＱ0 とノードＱ1 が不一致の時、イクスクルーシブＯＲゲート４８ａは‘１’を出力し、同時に、イネーブル信号ｅが‘１’（アクティブ）であれば、ＡＮＤゲート４８ｂは出力端子Ｏ1 に‘１’を出力し、入力信号が一致あるいはイネーブル信号ｅが‘０’であれば出力端子Ｏ1 の出力は‘０’である。
【００７０】
図６（ｂ）および（ｃ）は、それぞれ中間階層および最上位階層をそれぞれ構成するユニット回路１８４および１８６の概略図である。同図に示すユニット回路１８４および１８６は、入出力信号端子に入出力される信号を除けば図６（ａ）に示す最下位階層のユニット回路１８２と全く同様の構成を有するものであるので、その構成の図示は省略する。図６（ｂ）に示すユニット回路１８４の入力端子ｏｒ0 、ｏｒ1 、ｏｒ2 、ｏｒ3 は、図５に示す最下位階層を構成する４つのユニット回路１８２の各々のＯＲ出力ｏｒである。このユニット回路１８４の出力Ｏｔk （ｋ＝０、１、２、３）をそれぞれの入力信号ｏｒk に対応するユニット回路１８２k のイネーブル端子ｅk に接続すればＯｔk ＝‘１’となったときだけ、ｋ番目の回路１８２k を選択的に活性化できる。従って、このユニット回路１８４のｏｒ入力の中に‘１’があるかないかをＯＲ出力で見ることができ、このＯＲ出力は結局、ユニット回路１８４の支配下に複数のユニット回路１８２の全てのＩ入力信号の中に‘１’となっているものがあるかどうかを示すことになる。
【００７１】
さらに、ユニット回路１８４のＯＲ出力を入力とするもう１つの上位階層のユニット回路１８６を図６（ｃ）に示すが、このユニット回路１８６の構成は図６（ａ）および（ｂ）にそれぞれ示すユニット回路１８２および１８４と全く同様の構成でよいことは前述した通りである。図６（ｃ）に示すユニット回路１８６は、中間階層を構成する全ての４つのユニット回路１８４のＯＲ出力をＯＲ入力ＯＲk （ｋ＝０、１、２、３）入力とするもので、このＯＲ入力ＯＲk に対応する出力ＯＵＴ0 、ＯＵＴ1 、ＯＵＴ2 、ＯＵＴ3 は中間階層の全４つのユニット回路１８４の各々のイネーブル信号としてそれぞれのイネーブル信号入力Ｅに入力される。こうして、このユニット回路１８６のＯＲ入力ＯＲk の中に‘１’があるかないかを、このユニット回路１８６のＯＲ出力ＧＯＲで見ることができる。このユニット回路１８６自身のイネーブル信号ＥＮＢはＯＵＴk がすべて‘０’出力するまで、すなわち、ＯＲ出力ＧＯＲが‘０’になるまで所定のクロック信号が別途入力される。逆に、ユニット回路１８６の出力ＯＵＴk が‘１’を出力している間は、プライオリティ回路１８０の入力信号から選択される、最も優先度の高いアドレスに唯一の‘１’を有する信号（以下、優先度付出力信号という）の出力が終了しておらず、‘１’を出力するアドレスに相当する下位のグループに、‘１’（一致信号）を持つ小単位プライオリティ回路が存在していることを示す。
【００７２】
以上のような構成の小単位のプライオリティ回路１８２、１８４および１８６を用いて、このように階層的にプライオリティ選択を行うプライオリティ回路１８０の回路構成を実現すると、図２に示すプライオリティ回路２０のように単階層にしてＮトランジスタ４４を全てシリアルにつなぐ場合に比べて非常に高速化できる。ここで、ｏｒ出力やＯＲ出力としては、図６に示すようにプライオリティ回路１８２の最下位（下側）の回路要素１８８3 のノードＱ3 の信号状態（論理値）を用いることができる。このようにノードＱ3 の論理値を用いるものでは、論理和出力（ＯＲ出力）を得るための特別の回路が不要であるという大きな利点があるが、これに限定されるわけではなく、さらに高速化するために、入力信号から直接ＯＲ出力を得るために、通常のＯＲゲートなどを用いてもよい。
【００７３】
このようなｏｒ出力やＯＲ出力を用いることにより、異なる小単位プライオリティ回路１８２に連続する優先順位のヒット信号が存在していたとしても、優先順位の高いヒット信号が優先度付出力信号として出力され、この出力信号で入力信号がリセットされてそのＯＲ出力が‘０’になるまでは、たとえ優先順位の低いワードアドレスのヒット信号のあるユニット回路１８２から‘１’出力が可能なものであっても、上位階層のユニット回路１８４の出力信号が‘１’出力となることはなく、従ってユニット回路１８２のイネーブル信号も‘１’（すなわちアクティブ）になることはなく、ユニット回路１８２は‘１’出力ができない。しかし、先の優先順位のユニット回路１８２のＯＲ出力が‘０’になれば、次の優先順位のユニット回路１８２のＯＲ出力は‘１’出力であるので、上位階層のユニット回路１８４も‘１’出力する。従って次の優先順位のユニット回路１８２のイネーブル信号は‘１’となり、このユニット回路１８２は‘１’出力できる。このように異なるユニット回路１８２間にヒット信号が跨っていても、すばやい切り換えが可能である。
【００７４】
図５に示すプライオリティ回路１８０は６４入力であるので、アドレスのコード変換には６ビットが必要で、６本のアドレス線が必要になる。図２に示すメインエンコード回路２２のような従来のアドレスエンコーダを使う場合は、この６本のアドレス線と最下位階層の１６個のプライオリティ回路１８２の各４本の出力線と、すなわち、全６４本の出力線とを上述した所定の方法に従って、接地トランジスタ５２を介して接続することにより６ビットのアドレスエンコーダを構成することができる。このように図５に示すプライオリティ回路１８０には従来のエンコード回路も適用可能であるが、出力線とアドレス線を接続する接地トランジスタの数は入力が増すほど増大する。
【００７５】
このため図５に示すエンコード回路１９０は、前述の３階層構造のプライオリティ回路１８０の各階層毎に２ビットをコード化するアドレスエンコーダ構成としている。一致出力（ヒット信号）が含まれている場合優先度付出力信号を出力するが、この時、プライオリティ回路１８０は各階層を構成する各小単位プライオリティ回路１８２、１８４、１８６のうち、各階層毎に‘１’Ｈ（ハイ）を出力する出力端子が１つずつ存在する。従って、最下位階層の１６個の小単位プライオリティ回路１８２は下位２ビットのＡ1 、Ａ0 を決定する２本のアドレス線１９２1 、１９２0 に接続される。中間階層４個のプライオリティ回路１８４は中間の２ビットのＡ3 、Ａ2 を決定する２本のアドレス線１９２3 、１９２2 に接続される。最上位階層１個のプライオリティ回路１８６は上位２ビットのＡ5 、Ａ4 を決定する２本のアドレス線１９２5 、１９２4 に接続される。
【００７６】
ここで毎階層において、１個のプライオリティ回路と２本のアドレス線との接続は同一であるので代表的に最下位階層のプライオリティ回路１８２0 とアドレス線１９２1 、１９２0 との接続を代表例として説明する。プライオリティ回路１８２0 の第１出力線Ｏ0 はアドレス線１９２1 、１９２0 をそれぞれ接地（または‘０’電位に固定）する２つの接地トランジスタ５２のゲート電極に接続される。従って、第１出力線Ｏ0 の出力のみが‘１’［（Ｏ0 、Ｏ1 、Ｏ2 、Ｏ3 ）＝（１、０、０、０）］の場合は２つの接地トランジスタ５２はオンし、Ａ0 ＝Ａ1 ＝０となる。次に、プライオリティ回路１８２0 の第２出力線Ｏ1 はアドレス線１９２1 を接地（または‘０’電位に固定）する接地トランジスタ５２のゲート電極に接続される。このため、第２出力線Ｏ1 のみが‘１’［（Ｏ0 、Ｏ1 、Ｏ2 、Ｏ3 ）＝（０、１、０、０）］の場合には接地トランジスタ５２がオンし、（Ａ1 、Ａ0 ）＝（０、１）となる。さらにプライオリティ回路１８２0 の第３出力線Ｏ2 は、アドレス線１９２0 を接地（または‘０’電位に固定）する接地トランジスタ５２のゲート電極に接続される。従って、第３出力線Ｏ2 のみが‘１’［（Ｏ0 、Ｏ1 、Ｏ2 、Ｏ3 ）＝（０、０、１、０）］の場合には接地トランジスタ５２がオンし、（Ａ1 、Ａ0 ）＝（１、０）となる。ここで、第４出力線Ｏ3 のみが‘１’［（Ｏ0 、Ｏ1 、Ｏ2 、Ｏ3 ）＝（０、０、０、１）］の場合には（Ａ1 、Ａ0 ）＝（１、１）となる。
【００７７】
このような接続を各階層毎に２本のアドレス線に対し、各プライオリティ回路毎に行うことによりエンコード回路１９０を構成することができる。ここでエンコード回路１９０において、アドレス線１９２0 〜１９２5 と各プライオリティ回路１８２，１８４，１８６との接続に用いられる接地トランジスタ５２の数は１つのプライオリティ回路に対して４個であるので、最下位階層では６４個、中間階層で１６個、最上位階層で４個であり、合計８４個でよいのに対し、図２に示すアドレスエンコーダのように６本のアドレス線のすべてを最下位階層の１６個のメインプライオリティ回路２０に接続するものでは１９２個が必要となる。従って図５に示すエンコード回路１９０ではエンコード動作の高速化の効果が得られる。
【００７８】
本発明の前提となる符号化回路のメインエンコーダおよびサブブロックエンコーダを構成するプライオリティ回路として、図２および図６（ａ）に示すようなＮチャンネルトランジスタをシリアル接続する構成のものを代表例に挙げて、これを用いて説明したが、これに限定されず、Ｐチャンネルトランジスタをシリアル接続する構成のプライオリティ回路を用いてもよいし、あるいは双方向のプライオリティが可能な構成としてもよいし、メインエンコーダにプリフェッチ回路が設けられる構成であれば、メインエンコーダおよびサブブロックエンコーダとしては従来公知のものも使用可能である。
【００７９】
以上、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路を種々の例を挙げて説明したが、図示例に限定されるわけではなく、メインエンコーダおよびサブブロックエンコーダを構成するプリフェッチ回路、データラッチ回路、プライオリティ回路、エンコード回路の入力数や構成など、設計の変更および様々な改良が可能なことは勿論である。
【００８０】
以上詳述したように、図示例の符号化回路においては、連想メモリ装置の連想メモリブロックの検索データとの一致検索を行う際、この連想メモリブロックを構成する複数の連想メモリサブブロックのうちの第１番目の連想メモリサブブロックの一致検索結果、例えば複数の連想メモリワードに前記検索データと一致する一致信号（ヒット信号）が、例えばレジスタ等の保持手段に保持されるとともに前記連想メモリサブブロックに前記検索データと一致する連想メモリワードの存在を示すブロックヒット信号を発生する。続いて、優先順位付サブブロック符号化回路がこのブロックヒット信号を受けて最も優先順位の高い連想メモリサブブロックを選択し、サブブロックアドレスを発生する。そして、この選択された最高優先順位のサブブロックのヒット信号（全ワードについて同時に）が優先順位付符号化回路に転送される。この後、優先順位付符号化回路は、所定の優先順位で前記ヒット信号を符号化し、ワードアドレスを出力する。この符号化中に、次の優先順位の連想メモリサブブロックを前記優先順位付サブブロック符号化回路によって選択し、このサブブロックのレジスタ等の保持手段に保持されているヒット信号データを前記優先順位付符号化回路内に設けられているプリフェッチ回路に入力する。こうして、前記優先順位付符号化回路は、前記ヒット信号の符号化を終了した後、直ちに先にプリフェッチ回路に入力されていた次の優先順位のサブブロックのヒット信号データの符号化を開始し、符号化し、ワードアドレスを出力する。このワードアドレス出力とサブブロックアドレス出力とを合わせて論理アドレスを出力する。
【００８１】
従って、この符号化回路によれば、複数の連想メモリサブブロックから構成される連想メモリブロックであっても、複数の連想メモリサブブロック間の切り換わりに時間遅れ（待ち時間）がなく多数の連想メモリサブブロックからの出力信号を効率のよく符号化することができる。この結果、大容量データに対する高速処理を必要とする、複数の連想メモリサブブロックから構成される連想メモリブロックからなる大容量連想メモリ装置にも適用することができる。
【００８２】
次に、図８〜図１１を参照して、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる別の符号化回路およびこれに適用可能な個数検出回路である半導体集積回路について詳細に説明する。
【００８３】
図示例の連想メモリ装置においては、一致検索時に連想メモリ装置を構成する連想メモリブロックに検索データが入力されると、複数の連想メモリサブブロックにわたって一致検索が行われる。この時、各連想メモリサブブロック毎にその結果、すなわち複数の連想メモリワードに前記検索データと一致する一致信号（ヒット信号）を含むフラグデータが保持されるとともに、優先順位付サブブロック符号化回路によって最も優先順位の高い連想メモリサブブロックが選択され、そのフラグデータが優先順位付メイン符号化回路のフラグレジスタに転送され、保持される。このフラグレジスタ内に記憶されたフラグデータ中のヒット信号をこの優先順位付メイン符号化回路は所定の優先順位に従って符号化し、ヒットアドレスを出力する。一方、このフラグデータの符号化中に、前記優先順位付サブブロック符号化回路によって選択された次の優先順位の連想メモリサブブロックのフラグデータは、プリフェッチ回路に入力される。そして、前記優先順位付メイン符号化回路では先の優先順位の連想メモリサブブロックのフラグデータ内のヒット信号が順次符号化され、ヒットアドレスが出力されるに伴ってフラグレジスタ内のヒット信号が順次リセットされていく。
【００８４】
この時、このフラグレジスタのヒット信号の終わりを予め検知するタイミング検知制御回路手段によりフラグレジスタ内に保持されているヒット信号の個数を検知する。例えば、この残存するヒット信号の個数が最後の１個になった時、このヒット信号の符号化終了を待って直ちに、プリフェッチ回路に入力されている次の優先順位の連想メモリサブブロックのフラグデータをフラグレジスタに移して、このフラグデータ中のヒット信号の符号化を開始する。この後、空きを生じた前記プリフェッチ回路にさらに次の優先順位の連想メモリサブブロックのフラグデータをプリフェッチ回路に先読みする。これらの手順を順次繰り返して、前記連想メモリブロック全体のヒット信号の符号化、すなわちアドレス出力を行う。
【００８５】
図示例の符号化回路によれば、上述したように、次に符号化すべき連想メモリサブブロックのフラグデータ中のヒット信号が、先の連想メモリサブブロックのフラグデータのヒット信号の符号化中にプリフェッチ回路に入力されているので、前記ヒット信号を連想メモリサブブロックから優先順位付メイン符号化回路のフラグレジスタまで転送する時間をなくすことができるとともにフラグレジスタ内のフラグデータの最後のヒット信号の符号化開始直後にヒット信号が最後の１個になったことを検出してプリフェッチ回路に保持されているフラグデータをフラグレジスタに移送し、次の符号化サイクルでは、移送されたフラグデータ中のヒット信号の符号化を行うことができるので、符号化サイクルにロスが生じることがないので、連想メモリブロック全体ひいては連想メモリ全体の符号化時間を短縮することができ、連想メモリ装置の一致検索動作を高速化できる。
【００８６】
以下に、本発明の前提となる符号化回路およびこれに適用可能な半導体集積回路を添付の図面に示す好適実施例に基づいて詳細に説明する。
【００８７】
図８は、本発明の前提となる符号化回路が適用された連想メモリブロックの一実施例の概略図である。同図に示す符号化回路１１は、メインエンコーダ１２内に本発明の前提となる半導体集積回路が適用されたタイミング制御回路６０を有し、その出力でフラグレジスタ（データラッチ回路）１８の初期値設定を行う点を除き、図１に示す符号化回路と基本的には同一の構成を有しているので、同一の構成要素には同一の番号を付し、その詳細な説明は省略する。
【００８８】
同図に示す符号化回路１１は、プリフェッチ回路付優先順位付符号化回路（以下、メインプライオリティエンコーダあるいはメインエンコーダという）１２と、優先順位付サブブロック符号化回路（以下、サブブロックプライオリティエンコーダまたはサブブロックエンコーダという）１４とを有し、メインエンコーダ１２は、プリフェッチ回路（プリフェッチ回路）１６とフラグレジスタ回路１８と、メインプライオリティ回路２０と、メインエンコード回路２２と、タイミング制御回路６０とを有し、サブブロックエンコーダ１４は、データラッチ回路２４と、サブプライオリティ回路２６と、サブエンコード回路２８とを有する。
【００８９】
図９に、符号化回路１１のメインエンコーダ１２の一実施例の構成図を示す。同図において、メインエンコーダ１２のプリフェッチ回路１６は、メインエンコーダ１２のメインプライオリティ回路２０およびメインエンコード回路２２が、より優先順位の高いサブブロック３２のフラグデータ中のヒット信号を所定の優先順位（ワード）に従って一致メモリワード３４のアドレスを符号化（エンコード）している間に、次の優先順位のサブブロック３２のレジスタ３６に保持されているフラグデータを各メモリワード３４（Ｗ0 、Ｗ1 、…、Ｗm ）毎に入力しておくためのものであり、（ｍ＋１）個の‘０’または‘１’の１ビットデータを一時的に保持可能なものであれば何でもよく、データラッチ回路やデータレジスタなどでよい。プリフェッチ回路１６からのフラグデータは、タイミング制御回路６０の切換タイミング出力（検出出力）によって、フラグレジスタ１８にパラレル入力される。また、このフラグデータがメインエンコーダ１２によって符号化されている間にサブブロックエンコーダ１４によって選択された次の優先順位のサブブロック３２のフラグデータがプリフェッチ回路１６に各メモリワード３４毎にそれぞれ取り込まれる。
【００９０】
すなわち、図９に示すメインエンコーダ１２においては、タイミング制御回路６０によって、フラグレジスタ１８内に保持されているフラグデータ（ヒット信号）の個数、例えば最後の１個を検出して、フラグレジスタ１８に切換タイミング信号（初期値設定信号）を出力し、フラグレジスタ１８にプリフェッチ回路１６のフラグデータを入力するものである。これに対し、図２に示すメインエンコーダ１２では、フラグレジスタ１８に保持されたフラグデータの最後のヒット信号をリセットした後、プライオリティ回路のノードＱm から出力されるＯＲ出力である終了データ‘０’を使ってフラグレジスタ１８のフラグデータをプリフェッチ回路１６にラッチホールドされている次の優先順位のサブブロック３２のフラグデータと切り換えることを提案している。すなわち、これでは、このノードＱm 出力‘０’をインバータで反転し、その反転値‘１’をプリフェッチ回路１６の全回路に入力し、ここにラッチホールドされていた次の優先順位のサブブロック３２のフラグデータをフラグレジスタ回路１８の各々対応する回路に入力（シフト）して保持することになる。この後、図２に示すメインエンコーダ１２も図９に示すメインエンコーダ１２と同様に、空いたプリフェッチ回路１６には、予めサブブロックエンコーダ１４によって選択されていた次の次の優先順位のサブブロック３２のフラグデータがレジスタ３６から読み込まれ、ラッチホールドされる。こうして、図２のメインエンコーダ１２の方法でも図９のメインエンコーダ１２と同様にメインプライオリティ回路２０は、先の優先順位のサブブロックのフラグデータの処理を終了してから、次の優先順位のサブブロックのフラグデータがそのサブブロック３２のレジスタ３６から転送されてくる間、待機する必要がないので、エンコードを効率よく行うことができる。しかしながら、図２のメインエンコーダ１２では、フラグレジスタに保持されている先の優先順位のサブブロックのフラグデータの最後のヒット信号がリセットされてから、フラグレジスタ１８の内容をプリフェッチ回路に保持されている次の優先順位のフラグデータと切り換えるので、リセットによって開始されるプライオリティエンコードサイクルにおいて、サブブロックのフラグデータの切り換え時にエンコードできないサイクルを生じてしまい、エンコード出力をできない時間が生じることとなる。
【００９１】
従って、図９のメインエンコーダ１２においては、後述するようにタイミング制御回路６０によって、フラグレジスタ１８内のフラグデータのヒット信号の個数を検知しておき、最後の１個になったことを検出して、この検出結果を入力信号として、メインプライオリティ回路２０における最後のヒット信号をリセットするかわりに、プリフェッチ回路１６に保持されていた次の優先順位のサブブロック３２のフラグデータをフラグレジスタ１８にシフト（入力）している。従って、図９のメインエンコーダ１２では同一サブブロックのフラグデータにおいても、サブブロックのフラグデータの切り換え時であっても、同じサイクルでプライオリティエンコードを行うことができる。もちろん、図９のメインエンコーダ１２においてはフラグレジスタ１８におけるサブブロックのフラグデータの切り換えによって空きが生じたプリフェッチ回路１６には予めサブブロックエンコーダ１４によって選択されていた次の次の優先順位のサブブロック３２のフラグデータをレジスタ３６から先に読み込んでラッチホールドすることにより、この読み込みの時間（フラグデータを各サブブロック３２からメインエンコーダ１２まで転送する時間）をエンコード処理と無関係なものとし、エンコードの効率を上げることができる。なお、図９のメインエンコーダ１２においては、フラグレジスタ１８のフラグデータの最後のヒット信号はリセットを行う必要はない。
【００９２】
図１０に、図示例の符号化回路１１の最も特徴的な部分である本発明の前提となる半導体集積回路が適用されたタイミング制御回路６０の一実施例の具体的回路図を示す。
【００９３】
図１０に示すタイミング制御回路６０は、第１信号線（信号電流検出線）６２と第２信号線（基準電流駆動線）６４と、第１信号線６２に各々並列にフラグレジスタ１８のｍ＋１個のデータラッチ回路１８0 ，１８1 ，…，１８m の各々に対して設けられたｍ＋１個の電流駆動回路（電流駆動手段）６６0 ，６６1 ，…，６６m と、第２の信号線６４に設けられたリファレンス電流駆動回路（基準電流駆動手段）６８と、第１信号線６２と第２信号線６４に流れる電流の差、すなわち差電流を検出する差電流検出回路（差電流検出手段）７０と、このタイミング制御回路の動作タイミングを制御する、すなわち、電流駆動回路６６（６６0 ，６６1 ，…，６６m ）、リファレンス電流駆動回路６８および差電流検出回路７０などを制御するプリチャージ制御信号線７２とを有している。
【００９４】
さらに、図示例のタイミング制御回路６０においては、回路の電気容量などの電気特性のバランスをとるため、第２信号線６４には第１信号線６２に設けられた電流駆動回路６６（６６0 ，６６1 ，…，６６m ）に対応してダミー回路７４（７４0 ，７４1 ，…，７４m ）が設けられ、第１信号線６２には第２信号線６４に設けられたリファレンス電流駆動回路６８に対応してダミー回路７６が設けられる。また、第１信号線６２および第２信号線６４の一方の端部は共に差電流検出回路７０に接続されている。更に、この第１信号線６２および第２信号線６４は、プリチャージトランジスタ７８および等電位化トランジスタ７９が接続されており、この２つの信号線を例えば５Ｖに初期化する働きをする。ここでトランジスタ７８，７９はいずれもＰチャンネルＭＯＳトランジスタからなり、これらのゲート電極はプリチャージ制御信号線７２に接続される。ここで、ダミー回路７４（７４0 ，７４1 ，…，７４m ）のうち１つをリファレンス電流駆動回路６８とすることも可能である。このとき、ダミー回路７６は不要となる。
【００９５】
電流駆動回路６６は、１つを代表例として説明すると、２つの直列接続された共にＮチャンネルＭＯＳトランジスタより構成される制御トランジスタ６７ａおよび信号電圧印加トランジスタ６７ｂからなり、トランジスタ６７ａは第１信号線６２に接続され、トランジスタ６７ｂは接地され、トランジスタ６７ａのゲート電極は制御信号線７２に、トランジスタ６７ｂのゲート電極はフラグレジスタ１８の各々対応するデータラッチ回路に出力端子Ｑと接続される。
【００９６】
電流駆動回路６６は、検出時にはトランジスタ６７ａがオン状態になっており、トランジスタ６７ｂのゲート電極にフラグレジスタ１８からヒット信号‘１’が入力された時にトランジスタ６７ｂをオンし、所定の電流ｉ0 を流すように構成されている。この駆動電流ｉ0 はすべての電流駆動回路６６0 ，６６1 ，…，６６m で同じとなるように構成されるが、用いられるトランジスタ６７ａ，６７ｂのばらつき、例えばプロセスによるばらつき程度のばらつきは存在する。ダミー回路７４も、電流駆動回路６６と同様の構成を有し、一方が第２信号線６４に接続され、他方が接地される２個の直列接続ＮチャンネルＭＯＳトランジスタ７５ａ，７５ｂからなり、トランジスタ７５ａのゲート電極は同様に制御信号線７２に接続されるが、トランジスタ７５ｂのゲート電極は接地され、常時オンしないように構成される。
【００９７】
これに対し、リファレンス電流駆動回路６８は、第２信号線６４に所定のリファレンス電流（基準電流）ｉr を流すためのもので、２個の直列接続されたＮチャンネルトランジスタ６９ａ、６９ｂからなり、トランジスタ６９ａは第２信号線６４に、そのゲート電極は制御信号線７２に接続され、トランジスタ６９ｂは接地され、そのゲート電極は所定のＨ（ハイ）電位の電源に接続され、常にトランジスタ６９ｂをオンするように構成される。一方、ダミー回路７６は、第１信号線６２に接続されている以外はダミー回路７４と全く同様の構成のＮチャンネルＭＯＳトランジスタ７７ａ、７７ｂからなる。リファレンス電流ｉr の値は、電流駆動回路６６（６６0 ，６６1 ，…，６６m ）が流すことのできる電流値ｉ0 と検出するヒット信号の個数に応じて適宜決めればよいが、最後の１個のヒット信号を検出するためには、ｉ0 超２ｉ0 未満であって後述する差電流検出回路７０が差電流を検出可能な電流値とすればよい。この電流値ｉr は構成するトランジスタ６７ａ，６７ｂ、６９ａ，６９ｂなどの回路素子のばらつきを考慮して決めればよいが、例えば、ｉr ＝１．２ｉ0 〜１．８ｉ0 とするのが好ましい。
【００９８】
差電流検出回路７０は、両信号線６２および６４を流れる電流の大小を検出し、その電流の大きい方の側をＬ（ロウ）状態に、小さい側をＨ（ハイ）状態にラッチホールドするための電流駆動型ラッチ回路であって、両信号線６２と６４の他端側の電源と同じ所定の電位、例えば５Ｖ電源に接続されるＰチャンネルＭＯＳトランジスタ（ＰＭＯＳ）８０ａ、８０ｂと、これらにそれぞれ直列接続されるＮチャンネルＭＯＳトランジスタ（ＮＭＯＳ）８２ａ、８２ｂと、ＰＭＯＳからなる２個のプリチャージトランジスタ８３からなる。第１信号線６２に接続されるトランジスタ８２ａと８０ａのゲート電極は互いに接続され、トランジスタ８０ｂと８２ｂとの間の接点Ｂにおいて接続される。また、第２信号線６４に接続されるトランジスタ８２ｂと８０ｂのゲート電極は互いに接続され、トランジスタ８０ａと８２ａとの間の接点Ａにおいて接続される。接点Ｂからは出力線が延出し、インバータ８４を介して出力端子８５に接続される。
【００９９】
次に、タイミング制御回路６０の検出動作を、フラグレジスタ１８のフラグデータのヒット信号が最後の１個となったこと、すなわち最後のヒット信号を検出する際の作用を代表例として説明する。ここで、フラグレジスタ１８には複数のヒット信号（‘１’）を持つフラグデータが保持されており、リファレンス電流ｉr は、１つの電流駆動回路６６の駆動電流ｉ0 の１．５倍、すなわち１．５ｉ0 に設定されているものとする。
【０１００】
まず、検出に先だって、プリチャージ制御信号線７２をＬ（ロウ：‘０’）とし、両プリチャージトランジスタ７８とトランジスタ７９をオンして第１および第２の信号線６２および６４を、従って接点ａとｂも同一のＨ（ハイ）電位（例えば５Ｖ）にプリチャージするとともに、両プリチャージトランジスタ８３をオンして、差電流検出回路７０内の接点ＡおよびＢを同様にＨ（ハイ）電位（例えば５Ｖ）にプリチャージしておく。なお、差電流検出回路７０のトランジスタ８２ａ，８２ｂ、全ての電流駆動回路６６のトランジスタ６７ａ、リファレンス電流駆動回路６８のトランジスタ６８ａはオフの状態である。
【０１０１】
次に、プリチャージ制御信号線７２をＨ（ハイ：‘１’）とし、ＰＭＯＳトランジスタ７８、７９，８３をオフして、ＮＭＯＳトランジスタ６７ａ，６９ａ，７５ａ，７７ａをオンする。従って、リファレンス電流駆動回路６８の２つのトランジスタ６９ａ，６９ｂは共にオンすることになり、第２信号線６４にはリファレンス電流ｉr （＝１．５ｉ0 ）が流れ接点ｂの電位を低下させる。一方、ｍ＋１個の電流駆動回路６６（６６0 ，６６1 ，…，６６m ）のうち、フラグレジスタ１８のフラグデータがヒット信号‘１’であるデータラッチ回路１８j に接続されたゲート電極をもつトランジスタ６７ｂはオンし、トランジスタ６７ａはオンしていることから、この電流駆動回路６６j には第１信号線６２から駆動電流ｉ0 が流れる。ところで、フラグレジスタ１８のフラグデータにはヒット信号‘１’が複数例えばｋ（ｋ≧２）個あることから、第１信号線６２にはｋｉ0 の電流が流れることになり、接点ａの電位もそれに応じて低下する。
【０１０２】
ここで、ｋが２より大の時は、第１信号線６２に流れる電流ｋｉ0 は第２信号線６４に流れるリファレンス電流ｉr （＝１．５ｉ0 ）より大きいため、接点ｂの電位に比べ接点ａの電位の方が早く低下する。ここで、ＮＭＯＳ８２ａのゲート電位（接点Ｂの電位）とソース電位（接点ａの電位）の差が、ＮＭＯＳ８２ａの基板バイアスされたしきい値電圧（例えば１．４Ｖ）より大きくなる、即ち接点ａが３．６Ｖ以下になると、ＮＭＯＳ８２ａはオンし、接点Ａの電位が低下する。一方、この時、接点ｂの電位はＮＭＯＳ８２ａをオンさせる程低下しておらず、このままオフ状態が維持される。この後、両信号線６２および６４にさらに電流が流れて、接点Ａおよびａはさらに電位が低下するが、接点Ａ電位の低下の方が接点ｂの電位低下より大きいため、ＮＭＯＳ８２ｂはオフ状態を保つ。こうして接点Ａは‘０’となるが接点Ｂは‘１’のままであり、インバータ８４の出力は‘０’を保つことになる。
【０１０３】
次に、フラグレジスタ１８内の複数のヒット信号‘１’がエンコードされるに従って１つ１つ‘０’にリセットされ、残存するヒット信号が１個になった時に、タイミング制御回路６０の検出動作を行うと、すなわち、はじめにプリチャージ制御信号線７２に‘０’を入力して、プリチャージし、次に‘１’を入力すると、上述したのと同様にして、第１信号線６２には電流ｉ0 が、第２信号線６４にはリファレンス電流ｉr （＝１．５ｉ0 ）が流れることになる。この時、第２信号線６４に流れる電流の方が大きいため、接点ｂの電位の方が接点ａの電位よりも早く低下し、上述とは逆にＮＭＯＳ８２ａはオフ状態を保ち、ＮＭＯＳ８２ｂはオン状態となる。従って、接点Ｂの電位は低下し、これがインバータ８４によって反転され、出力端子８５からは‘１’が出力される。なお、両信号線６２，６４をあらかじめ電源電位（５Ｖ）までプリチャージしておくことは差電流検出回路７０の安定動作のためには、極めて重要な意味がある。つまり、５Ｖまでプリチャージし、この差電流検出回路７０の動作電位である３．６Ｖまでいずれかの信号線６２，６４が降下してくるまでのタイミングマージンを作り出すことで、ラッチ型の差電流検出回路の動作タイミングに余裕をもたせることになり、制御線の切り換えノイズ等の影響を除去することが可能となるためである。
【０１０４】
以上から、タイミング制御回路６０の出力端子８５から出力される出力信号が‘０’であればフラグレジスタ１８内に保持されているヒット信号‘１’は２個以上、出力信号が‘１’であればヒット信号は１個以下であることがわかる。従って出力信号が‘０’から‘１’に変化した時に、この検出結果、例えば‘１’信号または信号の変化を使ってフラグレジスタ１８内のフラグデータをプリフェッチ回路１６内のフラグデータに切り換えればよい。もちろんここで出力信号は接点Ａからとり出してもよい。
【０１０５】
図示例のタイミング制御回路６０を用いたエンコードタイミングのタイムチャートを図１１に示す。
同図において（ａ）はメインエンコーダ１２のエンコードタイミングを示す。（ｂ）はフラグレジスタ１８のヒット信号‘１’のリセットタイミングを示す。（ｃ）はタイミング制御回路６０の検出タイミングを示す。（ｄ）はタイミング制御回路６０の出力信号の変化を示し、（ｅ）はプリフェッチ回路１６のフラグデータをフラグレジスタ１８へシフトするタイミングを示す。
【０１０６】
このように、フラグレジスタ１８内に保持されていた同じフラグデータ内のヒット信号を所定のプライオリティでエンコードしている間はヒット信号のリセットパルスの立ち上がりのタイミングから所定時間してエンコードサイクルが開始される（立ち上がる）ように構成されている。しかし、タイミング制御回路６０がエンコードパルスによって起動される検出タイミングにおいて最後のヒット信号を検出し、その出力信号（ｄ）が‘０’から‘１’に変化すると、本来リセットパルスが発生するタイミングでプリフェッチ回路１６のフラグデータをフラグレジスタ１８に入れ換えるためのパルスが図１０に示すパルス回路８７によって発生され、フラグレジスタ１８のフラグデータの切り換えを行なう。そして、連続するエンコードサイクルにおいて、このフラグデータを用いてプライオリティ回路２０およびエンコード回路２２によるエンコード動作を行ない、エンコードアドレスを出力する。こうしてメインエンコーダは、連続した所定のサイクルでエンコード動作を行ない、エンコード出力をする。メインエンコーダ１２は基本的には以上のように構成される。
【０１０７】
以上詳述したように図示例の符号化回路においては、図１の符号化回路の効果に加え、優先順位付符号化回路が、データ切換タイミング制御回路によって前記ヒット信号の符号化を終了した後、連続したサイクルで直ちに先にプリフェッチ回路に入力されていた次の優先順位のサブブロックのフラグ信号データの符号化を開始し、符号化し、ワードアドレスを出力することができる。
【０１０８】
従って、図示例の符号化回路によれば、複数の連想メモリサブブロックから構成される連想メモリブロックであっても、複数の連想メモリサブブロック間の切り換わりに時間遅れ（待ち時間）がなく多数の連想メモリサブブロックからの出力信号を効率のよく連続したサイクルで符号化することができる。この結果、大容量データに対する高速処理を必要とする、複数の連想メモリサブブロックから構成される連想メモリブロックからなる大容量連想メモリ装置にも適用することができる。
また、本発明の前提となる半導体集積回路によれば、電流駆動手段に入力されるデータ‘０’または‘１’の個数が予め設定された個数となったことを正確かつ迅速に検出することができる。
【０１０９】
次に、図１２〜図１４を参照して、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる別の半導体集積回路について詳細に説明する。この半導体集積回路は、図８に示す符号化回路にタイミング制御のための個数検出回路として適用可能なものである。
【０１１０】
図示例の半導体集積回路では、まず第１の信号線、すなわち信号電流検出線に各々並列に設けられたＭ（Ｍ≧１）個の電流駆動手段をそれぞれ制御するデータ入力線に入力されるデータ‘１’または‘０’のうち、検出したいデータの個数ｋ0 （Ｍ＞ｋ0 ≧０）に応じて第２の信号線である基準電流駆動線に設けられた基準電流駆動手段に流す基準電流（リファレンス電流）値ｉr 、すなわち、１個の電流駆動手段に流れる電流値ｉ0 のｋ0 倍より大きくｋ0 ＋１倍より小さい電流値（ｋ0 ｉ0 ＜ｉr ＜（ｋ0 ＋１）ｉ0 ）を予め設定しておく。ここで、この半導体集積回路の各電流駆動手段は、データ入力線がそのゲート電極に接続された信号電圧印加トランジスタと、この半導体集積回路の動作タイミングを制御する制御トランジスタとを有し、信号電圧印加トランジスタが信号電流検出線側に設けられている。
【０１１１】
このため、図示例の半導体集積回路において、動作タイミングに応じて、全電流駆動手段の制御トランジスタおよび基準電流駆動手段の制御トランジスタが制御され、これらがオンすると、データ入力線に所要のデータが入力されたすべての電流駆動手段の信号電圧印加トランジスタはオンしているので、これらの各々の電流駆動手段には電流ｉ0 が流れるので、その個数ｋ（Ｍ＞ｋ≧０）に応じた電流ｉ（ｉ＝ｋｉ0 ）が信号電流検出線に流れるのに対し、基準電流駆動線には基準電流駆動手段によって基準電流値ｉr が流れる。この両信号線に流れる電流値ｉとｉr との差電流を差電流検出手段によって検出し、この差電流の符号の逆転、すなわち両電流値ｉとｉr との大小関係の逆転（タイミング）を出力する。こうして、各データ入力線に入力されるデータのうちの所要のデータの個数ｋが予め設定された検出すべきデータの個数ｋ0 となったことを検出する。こうして図示例の半導体集積回路はデータ入力線に入力された所要のデータの個数を検出することができる。
【０１１２】
この時、電流駆動手段の制御トランジスタが信号電圧印加トランジスタより電流信号検出線側に設けられていると、たとえデータ入力線に入力されたデータが所要のデータでなく信号電圧印加トランジスタがオフしたままであっても、この半導体集積回路が動作タイミングになって、全電流駆動手段の制御トランジスタがオンする時に、信号電流検出線から制御トランジスタに一時的な電流の流入が生じるため、動作開始時点で信号電流検出線にも電流が流れる。このため、検出が必要な逆転時にこの検出線に流れる電流と基準電流駆動線に流れる基準電流との差電流が小さくなってしまい、差電流検出手段による差電流の逆転の迅速な検出が困難であり、ノイズ等の影響を受けやすく、安定して正確な検出を迅速に行えないことがある。
【０１１３】
これに対し、図示例の半導体集積回路は、信号電圧印加トランジスタが制御トランジスタよりも信号電流検出線側に設けられているため、たとえ、全電流駆動手段の制御トランジスタがオンしても、信号電圧印加トランジスタがオンしないかぎり信号電流検出線からの電流は流入しない。従って、電圧印加トランジスタがオンしたことによって信号電流検出線に流れる電流と基準電流との差電流を検出が必要な逆転時にも比較的大きくとることができる。その結果、差電流検出手段による差電流の逆転の検出を安定して正確かつ迅速に行うことができる。
【０１１４】
図１２に、本発明の前提となる半導体集積回路が適用されたタイミング制御回路６１の別の実施例の具体的回路図を示す。ここで、同図に示すタイミング制御回路６１は図８に示す符号化回路１１に適用されるものであって、図１０に示すタイミング制御回路６０と、電流駆動回路６６の信号印加トランジスタ６７ｃと制御トランジスタ６７ｄ、およびリファレンス電流駆動回路６８のトランジスタ６９ｃと６９ｄの構成が異なる点を除き全く同一であるので、同一の構成要素には同一の番号を付し、その詳細な説明は省略する。
【０１１５】
図１２に示すタイミング制御回路６１において、最も特徴とする部分である電流駆動回路６６は、１つを代表例として説明すると、２つの直列接続された共にＮチャンネルＭＯＳトランジスタより構成される信号電圧印加トランジスタ６７ｃおよび制御トランジスタ６７ｄからなり、信号電圧印加トランジスタ６７ｃは第１信号線６２に接続され、制御トランジスタ６７ｄは接地され、信号電圧印加トランジスタ６７ｃのゲート電極はフラグレジスタ１８の各々対応するデータラッチ回路の出力端子Ｑに、制御トランジスタ６７ｄのゲート電極は制御信号線７２に接続される。
【０１１６】
電流駆動回路６６は、検出時には制御トランジスタ６７ｄがオン状態になっており、信号電圧印加トランジスタ６７ｃのゲート電極にフラグレジスタ１８からヒット信号‘１’が入力された時に信号電圧印加トランジスタ６７ｃをオンし、第１信号線６２から所定の電流ｉ0 を流すように構成されている。この駆動電流ｉ0 はすべての電流駆動回路６６0 ，６６1 ，…，６６m で同じとなるように構成されるが、用いられるトランジスタ６７ｃ，６７ｄのばらつき、例えばプロセスによるばらつき程度のばらつきは存在する。ダミー回路７４も、電流駆動回路６６と同様の構成を有し、一方が第２信号線６４に接続され、他方が接地される２個の直列接続ＮチャンネルＭＯＳトランジスタ７５ｃ，７５ｄからなり、接地側のトランジスタ７５ｄのゲート電極は同様に制御信号線７２に接続されるが、第２信号線６４側のトランジスタ７５ｃのゲート電極は接地され、常時オンしないように構成される。
【０１１７】
これに対し、リファレンス電流駆動回路６８は、第２信号線に所定のリファレンス電流（基準電流）ｉr を流すためのもので、２個の直列接続されたＮチャンネルトランジスタ６９ｃ、６９ｄからなり、トランジスタ６９ｃは第２信号線に、そのゲート電極は常にトランジスタ６９ｃをオンするように所定のＨ（ハイ）電位の電源に接続され、トランジスタ６９ｄは接地され、そのゲート電極は制御信号線７２に接続される。また、このリファレンス電流駆動回路６８のダミー回路７６は、第１信号線６２に接続されている。リファレンス電流ｉr の値は、電流駆動回路６６（６６0 ，６６1 ，…，６６m ）が流すことのできる電流値ｉ0 と検出するヒット信号の個数に応じて適宜決めればよいが、最後の１個のヒット信号を検出するためには、ｉ0 超２ｉ0 未満であって後述する差電流検出回路７０が差電流を検出可能な電流値とすればよい。この電流値ｉr は構成するトランジスタ６７ｃ，６７ｄ、６９ｃ，６９ｄなどの回路素子のばらつきを考慮して決めればよいが、例えば、ｉr ＝１．２ｉ0 〜１．８ｉ0 とするのが好ましい。
【０１１８】
差電流検出回路７０の接点Ｂからは出力線が延出し、インバータ８４を介してアンド回路８８に接続される。アンド回路８８のもう一方の入力には、前述のフラグレジスタ１８のリセット信号が入力される。アンド回路８８の出力は前述のフラグレジスタ１８のクロック端子に接続される。
【０１１９】
次に、図示例のタイミング制御回路６１の検出動作を、フラグレジスタ１８のフラグデータのヒット信号が最後の１個となったこと、すなわち最後のヒット信号を検出する際の作用を代表例として説明する。ここで、フラグレジスタ１８には複数のヒット信号（‘１’）を持つフラグデータが保持されており、リファレンス電流ｉr は、１つの電流駆動回路６６の駆動電流ｉ0 の１．５倍、すなわち１．５ｉ0 に設定されているものとする。
【０１２０】
まず、検出に先だって、プリチャージ制御信号線７２をＬ（ロウ：‘０’）とし、両プリチャージトランジスタ７８とトランジスタ７９をオンして第１および第２の信号線６２および６４を、従って接点（ノード）ａとｂも同一のＨ（ハイ）電位（例えば５Ｖ）にプリチャージするとともに、両プリチャージトランジスタ８３をオンして、差電流検出回路７０内の接点ＡおよびＢを同様にＨ（ハイ）電位（例えば５Ｖ）にプリチャージしておく。なお、差電流検出回路７０のトランジスタ８２ａ，８２ｂ、全ての電流駆動回路６６のトランジスタ６７ｄ、リファレンス電流駆動回路６８のトランジスタ６９ｄはオフの状態である。
【０１２１】
次に、プリチャージ制御信号線７２をＨ（ハイ：‘１’）とし、ＰＭＯＳトランジスタ７８、７９，８３をオフして、ＮＭＯＳトランジスタ６７ｄ，６９ｄ，７５ｄ，７７ｄをオンする。従って、リファレンス電流駆動回路６８の２つのトランジスタ６９ｃ，６９ｄは共にオンすることになり、第２信号線６４にはリファレンス電流ｉr （＝１．５ｉ0 ）が流れ接点ｂの電位を低下させる。一方、（ｍ＋１）個の電流駆動回路６６（６６0 ，６６1 ，…，６６m ）のうち、フラグレジスタ１８のフラグデータがヒット信号‘１’であるデータラッチ回路１８j に接続されたゲート電極をもつ信号電圧印加トランジスタ６７ｃはオンし、制御トランジスタ６７ｄはオンしていることから、この電流駆動回路６６j には第１信号線６２から駆動電流ｉ0 が流れる。ところで、フラグレジスタ１８のフラグデータにはヒット信号‘１’が複数例えばｋ（ｋ≧２）個あることから、第１信号線６２にはｋｉ0 の電流が流れることになり、接点ａの電位もそれに応じて低下する。
【０１２２】
ここで、ｋが２より大の時は、第１信号線６２に流れる電流ｋｉ0 は第２信号線６４に流れるリファレンス電流ｉr （＝１．５ｉ0 ）より大きいため、接点ｂの電位に比べ接点ａの電位の方が早く低下する。ここで、ＮＭＯＳ８２ａのゲート電位（接点Ｂの電位）とソース電位（接点ａの電位）の差が、ＮＭＯＳ８２ａの基板バイアスされたしきい値電圧（例えば１．４Ｖ）より大きくなると、（例えば、接点Ｂの電位が５Ｖのとき接点ａの電位が３．６Ｖまで下がると）ＮＭＯＳ８２ａはオンし、接点Ａの電位が低下する。一方、この時、接点ｂの電位はＮＭＯＳ８２ｂをオンさせる程低下しておらず、このままオフ状態が維持される。この後、両信号線６２および６４にさらに電流が流れて、接点Ａおよびａはさらに電位が低下するが、接点ａの電位の低下、すなわち接点Ａ電位の低下の方が接点ｂの電位低下より大きいため、ＮＭＯＳ８２ｂはオフ状態を保つ。こうして接点Ｂは‘１’を保ち、これに接続されているインバータ８４によってアンド回路８８に‘０’が出力されることになる。一方、接点Ａは‘０’となる。
【０１２３】
次に、フラグレジスタ１８内の複数のヒット信号‘１’がエンコードされるに従って１つ１つ‘０’にリセットされ、残存するヒット信号が１個になった時に、図示例のタイミング制御回路６１の検出動作を行うと、すなわち、はじめにプリチャージ制御信号線７２に‘０’を入力して、プリチャージし、次に‘１’を入力すると、上述したのと同様にして、第１信号線６２には電流ｉ0 が、第２信号線６４にはリファレンス電流ｉr （＝１．５ｉ0 ）が流れることになる。この時、第２信号線６４に流れる電流の方が大きいため、接点ｂの電位の方が接点ａの電位よりも早く低下し、上述とは逆にＮＭＯＳ８２ａはオフ状態を保ち、ＮＭＯＳ８２ｂはオン状態となる。従って、接点Ｂの電位がロウレベルに低下し、インバータ８４に反転され、前述のアンド回路８８に‘１’が出力される。接点Ａの電位はＨ（ハイ）電位に維持される。
【０１２４】
以上から、図示例のタイミング制御回路６１のインバータ８４から出力される出力信号が‘０’であればフラグレジスタ１８内に保持されているヒット信号‘１’は２個以上、この出力信号が‘１’であればヒット信号は１個以下であることがわかる。従ってこの出力信号が‘０’から‘１’に変化した時に、アンド回路８８によってこの検出結果、すなわち‘１’信号と前述のフラグレジスタ１８のリセット信号とから切り換え制御信号を得、この切り換え制御信号を使ってフラグレジスタ１８内のフラグデータをプリフェッチ回路１６内のフラグデータに切り換えればよい。もちろん、ここで出力信号は接点Ａのみまたは接点ＡおよびＢの両方からとり出してもよい。
【０１２５】
ここで、上述したように、図１０に示すタイミング制御回路６０は、図１２に示すタイミング回路６１と、電流駆動回路６６（６６0 ，６６1 ，…，６６m ）の制御トランジスタ６７ａと信号電圧印加トランジスタ６７ｂとの配置およびダミー回路７４（７４0 ，７４1 ，…，７４m ）の制御トランジスタ７５ａとゲート接地トランジスタ７５ｂの配置が入れ換っている点を除いて全く同一であり、全く同様にして信号電圧印加トランジスタ６７ｂのゲート電極に入力されるフラグレジスタ１８のデータラッチ回路の保持するヒット信号‘１’の個数が、所定の数、例えば最後の１個になったことを検出することができるものである。
【０１２６】
両タイミング制御回路６０および６１のいずれにおいても、上述したようにタイミング検出動作が開始されると、信号電流検出線（第１の信号線）６２にはフラグレジスタ１８のヒット信号（‘１’）の個数に応じた電流が流れ、基準電流駆動線（第２の信号線）６４には所定のリファレンス電流が流れる。そこで、差電流検出回路７０は、両信号線６２および６４に流れる電流の差によって生じる接点ａ，ｂの小さな電位差を、一方（接点ａ，ｂの高電位側）がプリチャージ電圧（例えばＶｄｄ）に保持され、他方（低電位側）が接地レベル（例えばほぼＯＶ）まで低下する接点Ａ，Ｂの大きな電位差として検出するためのものである。
【０１２７】
ここで、はじめに同一電位（例えばＶｄｄ＝５Ｖ）にプリチャージされていた接点ＡとＢの電位のその後の変化は、トランジスタ８２ａと８２ｂとのどちらがオンするかどうかで決まる。すなわち、上述したように、タイミング検出動作の間に、第１および第２の信号線６２および６４に電流が流れ、両信号線６２，６４の接点ａおよびｂの電位が低下し、接点Ｂと接点ａの電位差、接点Ａと接点ｂの電位差のいずれかが基板バイアスされたしきい値（例えば、１．４Ｖ）より大きくなると、すなわち、両信号線６２および６４の電位（接点ａおよびｂの電位）のいずれかが上記しきい値（例えば、１．４Ｖ）を超えて（３．６Ｖより）低下すると、トランジスタ８２ａおよび８２ｂのいずれかがオンする。その結果、オンしたトランジスタ８２ａまたは８２ｂ側のそれぞれの接点ＡまたはＢの一方は、直ちにそれぞれ低下した接点ａまたはｂの電位に等しくなり、その後、接地レベル（ＯＶ）まで一緒に低下する。他方、オンしなかったトランジスタ８２ａまたは８２ｂ側のそれぞれの接点ＡまたはＢはプリチャージされた電位（５Ｖ）に保たれる。
【０１２８】
こうして、接点Ｂの電位を検出信号とし、インバータ８４を介して出力信号として取り出すことで、所定個数（例えば最後の１個）のヒット信号となったことを検出することができる。すなわち、接点Ｂの先にはインバータ８４が接続されているので、トランジスタ８２ｂがオンし、接点Ｂの電位が低下して、インバータ８４のしきい値（例えば、約２．５Ｖ）より下がった時に、出力信号‘１’が得られることになる。
【０１２９】
以上から分かるように上述の差電流検出回路７０では、接点ＡとＢとが分かれ始める時の接点ａとｂとの電位差が小さすぎると、トランジスタ８２ａおよび８２ｂのオン動作が接点ａ，ｂの電位差と無関係に起ってしまう、すなわち誤動作が生じる可能性が高くなる。従って、両接点ａとｂとの電位差は大きい方が、ノイズの影響を受けにくく、常に正確かつ安定したタイミング検出を行うことができる。
【０１３０】
しかし、図１０に示すタイミング制御回路６０では、電流駆動回路６６の制御トランジスタ６７ａが信号電流検出線である第１信号線６２に接続され、制御トランジスタ６７ａに直列に接続される信号電圧印加トランジスタ６７ｂの他方の電極が接地され、ダミー回路７４の制御トランジスタ７５ａが基準電流駆動線である第２信号線に接続され、この制御トランジスタ７５ａに直列に接続されるゲート接地トランジスタ７５ｂの他方の電極が接地される。このため、プリチャージ制御信号線７２をプリチャージ動作のロウ（Ｌ：‘０’）レベルからタイミング検出動作のハイ（Ｈ：‘１’）レベルに変化させると、フラグレジスタ１８の各データラッチ回路１８j （ｊ＝０，…，ｍ）の保持データにかかわらず、電流駆動回路６６の制御トランジスタ６７ａはオンし、制御トランジスタ６７ａおよび信号電圧印加トランジスタ６７ｂ間に一時的な電荷の流入が生じ、また、同様にダミー回路７４の制御トランジスタ７５ａはオンし、制御トランジスタ７５ａおよびゲート接地トランジスタ７５ｂ間に一時的な電荷の流入が生じる。
【０１３１】
その結果、図１４（ｂ）に示すように、タイミング検出動作の初期に、第１および第２の信号線６２および６４から電流駆動回路６６およびダミー回路７４の制御トランジスタ６７ａおよび７５ａに電流が流れ、各信号線６２、６４の接点ａおよびｂの電位が同時に低下する。特に、フラグレジスタ１８のデータラッチ回路の数が多く対応する電流駆動回路６６およびダミー回路７４の数が多いと、検出初期に第１および第２の信号線６２および６４に流れる電流が大きくなり、接点ａおよびｂの電位が同時に大きく低下する。このため、信号電圧印加トランジスタ６７ｂのオンによる接点ａとｂの電位に差が生じるのが遅くなり、その時の両者の電位が低くなってしまう。すなわち、両信号線６２および６４の電位（接点ａおよびｂの電位）のいずれかが所定値（例えば、３．６Ｖ）を超えて低下し、トランジスタ８２ａおよび８２ｂのいずれかをオンさせる時の接点ａおよびｂの電位差が小さくなってしまう。
【０１３２】
これに対し、図１２のタイミング制御回路６１では、電流駆動回路６６の信号電圧印加トランジスタ６７ｃが第１信号線６２側、制御トランジスタ６７ｄが接地側に設けられ、同様にダミー回路７４のゲート接地トランジスタ７５ｃが第２信号線側、制御トランジスタ７５ｄが接地側に設けられている。従って、タイミング検出動作が開始されても、信号電圧印加トランジスタ６７ｃがオンしない電流駆動回路６６の制御トランジスタ６７ｄはすべてオンしないし、ダミー回路７４の制御トランジスタ７５ｄはすべてオンしないので、検出動作初期に両信号線６２、６４に制御トランジスタ６７ｄ，７５ｄを充電するための電流が流れることはない。その結果、ヒット信号‘１’が保持されているフラグレジスタ１８のデータラッチ回路に対応するすべての電流駆動回路６６の信号電圧印加トランジスタ６７ｃおよび制御トランジスタ６７ｄのみがオンし、その数に応じた電流のみが第１信号線６２には流れ、第２信号線にはリファレンス電流駆動回路６８のトランジスタ６９ｃ，６９ｄのみがオンし、第２信号線にはリファレンス電流のみが流れる。従って、図１４（ａ）に示すように接点ａおよびｂの電位差は検出動作直後から、すなわち両接点ａ，ｂの電位が少し低下した時点から生じ、しかもこれらの接点ａ，ｂの電位のいずれかが所定値（例えば３．６Ｖ）を切る時の両接点の電位差は大きくとることができる。
【０１３３】
このように、図１０および図１２に示すタイミング制御回路６０および６１では、接点ａまたはｂのいずれか一方が所定値（例えば３．６Ｖ）を切る時の両接点ａ，ｂの電位差が異なる。例えば、図１４（ａ）および（ｂ）に示す例（それぞれ図１２および図１０に示すタイミング制御回路６１および６０の例である）について説明すると、接点ＡとＢとが分かれ始める点である接点ｂが３．６Ｖを切る時点で、両接点ａとｂとの電位差は図１４（ａ）の場合は約０．３Ｖであるのに対し、図１４（ｂ）の場合は約０．１Ｖである。従って、図１４（ａ）に示すタイミング制御回路６１の方がノイズマージンが大きく、その結果、ノイズの影響を受けても、差電流検出回路７０が誤動作する可能性は小さく、常に正確かつ安定したタイミング検出を行うことができる。
【０１３４】
また、この図１４（ａ）および（ｂ）では、両信号線６２，６４をあらかじめプリチャージすることによって、接点ａおよびｂが３．６Ｖを切る時点での両接点の電位差を大きくとっている。しかし、ここでもし両信号線６２，６４をプリチャージせずに動作させるならば、全く接点ａ、ｂの電位差はなく、正常動作は期待できない。従って、同図（ａ）および（ｂ）の場合いずれも、プリチャージされてから動作することに大きな意味をもつ。
【０１３５】
なお、図１４（ａ）および（ｂ）は、それぞれ図１２および図１０に示すタイミング制御回路６１および６０において、電源電圧（Ｖdd）が５Ｖ、電流駆動回路６６およびダミー回路７４の数（ｍ＋１）が２５６個であり、リファレンス電流ｉr が１．５ｉ0 の時、検出タイミング（プリチャージ制御信号線７２の電圧の変化）と、フラグレジスタ１８に保持されているヒット信号‘１’が最後の１個の場合の検出タイミングと接点ａ，ｂおよび接点Ａ，Ｂの電位の変化ならびにインバータ８４の出力信号（out  put）を示すものである。
タイミング制御回路６１は、基本的に以上のように構成される。
【０１３６】
タイミング制御回路６１を用いた図８に示す符号化回路１１のメインエンコーダ１２のエンコードタイミングのタイムチャートを図１３に示す。
【０１３７】
同図において（ａ）はメインエンコーダ１２のエンコードタイミングを示すエンコード信号を表わす。（ｂ）はフラグレジスタ１８のヒット信号‘１’のリセットタイミングを示すリセットパルスを表わす。（ｃ）は図１２のタイミング制御回路６１の検出動作タイミングを示す検出動作信号（プリチャージ制御信号線７２の印加電圧）を表わす。（ｄ）はタイミング制御回路６１の接点Ｂの電位の変化を示す検出出力信号を表わし、（ｅ）は、（ｄ）の検出出力信号をインバータ８４で反転した出力信号を示し、（ｆ）はプリフェッチ回路１６のフラグデータをフラグレジスタ１８へシフトするタイミングを示すフラグデータ切り換え制御信号を表わす。
【０１３８】
このように、フラグレジスタ１８内に保持されていた同じフラグデータ内のヒット信号を所定のプライオリティでエンコードしている間は、すなわち、検出出力信号（ｄ）がハイレベル（Ｈ）であればヒット信号のリセットパルス（ｂ）の立ち上がりのタイミングから所定時間してエンコードサイクルが開始される（立ち上がる）ように構成されている。しかし、図示例のタイミング制御回路６１がエンコードパルス（ａ）によって起動される検出タイミングにおいて最後のヒット信号を検出し、その検出出力信号（ｄ）がハイレベル（Ｈ）‘１’からロウレベル（Ｌ）‘０’に変化すると、その反転出力信号（ｅ）が‘０’から‘１’に変化する。ここで、図１２に示すアンド回路８８は、検出出力信号（ｄ）の反転出力信号（ｅ）とリセットパルス（ｂ）の論理積をとり、プリフェッチ回路１６のフラグデータをフラグレジスタ１８に入れ換えるための切り換え制御パルス（ｆ）を発生する。こうして切り換え制御パルス（ｆ）によってフラグレジスタ１８のフラグデータの切り換えが行なわれる。
【０１３９】
以上詳述したように、図示例の半導体集積回路によれば、電流駆動手段の信号電圧印加トランジスタを信号電流検出線側に、制御トランジスタを接地側に設けたので、検出動作タイミングにおいても、信号電圧印加トランジスタがオンしないかぎり制御トランジスタがオンしないので、信号電流検出線から全ての制御トランジスタを充電するための電荷の流出がなく、差電流検出手段の検出不能や誤動作を生じることがない。従って、基準電流駆動線と信号電流検出線との差電流を安定して、正確かつ迅速に検出することができ、連想メモリなどの符号化回路の符号化終了を予測するタイミング制御回路として好適に用いることができる。
【０１４０】
次に、図１５〜１７を参照して、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となるさらに別の半導体集積回路について詳細に説明する。図示例の半導体集積回路は、図１０および図１２に示す半導体集積回路と同様に、図８に示す符号化回路にタイミング制御用個数検出回路として適用可能なものである。
【０１４１】
図示例の半導体集積回路では、まず第１の信号線、すなわち信号電流検出線に各々並列に設けられたＭ（Ｍ≧１）個の電流駆動手段をそれぞれ制御するデータ入力線に入力されるデータ‘１’または‘０’のうち、検出したいデータの個数ｋ0 （Ｍ＞ｋ0 ≧０）に応じて第２の信号線である基準電流駆動線に設けられた基準電流駆動手段に流す基準電流（リファレンス電流）値ｉr 、すなわち、１個の電流駆動手段に流れる電流値ｉ0 のｋ0 倍より大きくｋ0 ＋１倍より小さい電流値（ｋ0 ｉ0 ＜ｉr ＜（ｋ0 ＋１）ｉ0 ）を予め設定しておく。ここで、この半導体集積回路の各電流駆動手段は、データ入力線がそのゲート電極に接続された信号電圧印加トランジスタと、この半導体集積回路の動作タイミングを制御する制御トランジスタとを有している。
【０１４２】
このため、図示例の半導体集積回路において、動作タイミングに応じて、基準電流駆動手段およびデータ入力線に所要のデータが入力されたすべての電流駆動手段がオンすると、基準電流駆動線には基準電流駆動手段によって基準電流値ｉr が流れる。これに対し、各々の電流駆動手段には電流ｉ0 が流れ、その結果、信号電流検出線にはその個数ｋ（Ｍ＞ｋ≧０）に応じた電流ｉ（ｉ＝ｋｉ0 ）が流れる。この両信号線に流れる電流値ｉとｉr との電流差を差電流検出手段によって検出し、この差電流の符号の逆転、すなわち両電流値ｉとｉr との大小関係の逆転（タイミング）を出力する。こうして、各データ入力線に入力されるデータのうちの所要のデータの個数ｋが予め設定された検出すべきデータの個数ｋ0 となったことを検出する。こうして図示例の半導体集積回路はデータ入力線に入力された所要のデータの個数を検出することができる。
【０１４３】
この時、基準電流駆動線（リファレンス電流線）と信号電流検出線（検出線）との両信号線は予め一定の電圧レベル（Ｖ0 ）に設定されている。従って、リファレンス電流線を流れるリファレンス電流ｉr と検出線を流れる全信号電流ｉ（ｋｉ0 ）との電流差によって生じる両信号線の電圧レベルの差（電圧差）は、検出動作開始時、すなわち両信号線の電圧が設定された一定電圧レベル（Ｖ0 ）に近い時より、検出動作開始後所定時間経過後、すなわち設定電圧レベル（Ｖ0 ）より所定電圧低下または上昇した電圧レベルの時の方がより大きくなる。これは、流れた積算電流の差がより大きくなるためである。従って、差電流検出手段（回路）の検出開始電圧レベルを設定電圧レベル（Ｖ0 ）に設定するより、この設定レベル（Ｖ0 ）に対して相対的に差のある所定電圧低下または上昇した電圧レベルに設定する方が、両信号線の電流差、すなわち、電圧差の検出を正確にかつ安定して行うことができ、検出結果がノイズ等の外乱の影響を受けにくい。
【０１４４】
ところで、図示例の半導体集積回路は、差電流検出手段が検出開始レベル設定手段を有しており、これにより、検出開始電圧レベルを、信号電流検出線とリファレンス電流線との両信号線に同一に予め設定される電圧レベル（例えば、プリチャージ電圧レベル）と差の大きい（所定電圧レベル離れた）電圧レベルに設定することができるので、両信号線の電流差検出時の両信号線の電圧差を比較的大きくとることができる。従って、信号電流検出線に流れる電流とリファレンス電流との差電流の検出が最も重要で、両信号線の差電流が最も小さくなる差電流の逆転時にも両信号線の電圧差を比較的大きくとることができる。その結果、差電流検出手段による差電流の検出、およびその逆転時期（タイミング）の検出を安定して正確かつ迅速に行うことができる。
【０１４５】
図１５に、本発明の前提となる半導体集積回路が適用されたタイミング制御回路９０のさらに別の実施例の具体的回路図を示す。ここで、同図に示すタイミング制御回路９０は、図８に示す符号化回路１１に適用されるものであって、図１０に示すタイミング制御回路６０と、検出回路レベル設定手段となるトランジスタ８６と、両信号線６２，６４の一端側の接点ａ，ｂをそれぞれプリチャージするプリチャージトランジスタ７８と、他端側において両信号線６２，６４を同一電位化するトランジスタ７９とが設けられている点を除いて全く同一であり、全く同様にして信号電圧印加トランジスタ６７ｂのゲート電極に入力されるフラグレジスタ１８のデータラッチ回路の保持するヒット信号‘１’の個数が、所定の数、例えば最後の１個になったことを検出することができるものであるので、同一の構成要素には同一の番号を付し、その詳細な説明は省略する。
【０１４６】
図１５に示すタイミング制御回路９０において、最も特徴的な部分である差電流検出回路７０は、両信号線６２および６４の他端側の電源と同じ所定の電位、例えば５Ｖの電源に接続されるＰチャンネルＭＯＳトランジスタ（ＰＭＯＳ）８６と、このＰＭＯＳトランジスタ８６に接続される８０ａ、８０ｂと、これらにそれぞれ直列接続されるＮチャンネルＭＯＳトランジスタ（ＮＭＯＳ）８２ａ、８２ｂと、ＰＭＯＳからなる２個のプリチャージトランジスタ８３からなる。ここで、電源に接続されるＰＭＯＳトランジスタ８６は、検出開始レベル設定手段を構成し、そのソース電極は電源に接続され、そのゲート電極は自己のドレイン電極に接続される。第１信号線に接続されるトランジスタ８２ａと８０ａのゲート電極は互いに接続され、トランジスタ８０ｂと８２ｂとの間の接点Ｂにおいて接続される。また、第２信号線に接続されるトランジスタ８２ｂと８０ｂのゲート電極は互いに接続され、トランジスタ８０ａと８２ａとの間の接点Ａにおいて接続される。接点Ｂからは出力線が延出し、インバータ８４を介してアンド回路８８に接続される。アンド回路８８のもう一方の入力には、前述のフラグレジスタ１８のリセット信号が入力される。アンド回路８８の出力は前述のフラグレジスタ１８のクロック端子に接続される。
【０１４７】
ここで、ＰＭＯＳトランジスタ８６のソース電極が接続される電源電圧Ｖddが所定電位、例えば５Ｖであり、しきい値電圧ＶTHが所定電圧、例えば約０．７Ｖであるとすると、このＰＭＯＳトランジスタ８６はそのゲート電圧が電源電圧からしきい値電圧を差し引いた電圧（Ｖdd−ＶTH、例えば５−０．７＝４．３Ｖ）よりも低い間はオンしているが、これより高くなるとオフしてしまう。従って、ゲート電極と接続されたドレイン電極の電圧は、電源電圧−しきい値電圧（Ｖdd−ＶTH、例えば４．３Ｖ）までしか上昇しない。すなわち、ＰＭＯＳトランジスタ８６は、プリチャージトランジスタ８３を介してプリチャージする時の接点ＡおよびＢのプリチャージ電圧を上述のＶdd−ＶTHとし、電源電圧Ｖddから低下させる手段として機能する。詳しくは、後述するが、接点Ａ，Ｂのプリチャージ電位が低下するので、トランジスタ８２ａ，８２ｂのプリチャージされたゲート電圧が低下し、タイミング検出動作時にトランジスタ８２ａ，８２ｂのいずれか一方をオンする時の接点ａ，ｂの電位、すなわち検出開始電圧レベルを低下させる。すなわち、ＰＭＯＳトランジスタ８６は検出開始レベル設定手段として機能する。
【０１４８】
次に、図示例のタイミング制御回路９０の検出動作を、フラグレジスタ１８のフラグデータのヒット信号が最後の１個となったこと、すなわち最後のヒット信号を検出する際の作用を代表例として説明する。ここで、プリチャージに用いられる電源電位は同一、例えば５Ｖであり、フラグレジスタ１８には複数のヒット信号（‘１’）を持つフラグデータが保持されており、リファレンス電流ｉr は、１つの電流駆動回路６６の駆動電流ｉ0 の１．５倍、すなわち１．５ｉ0 に設定されているものとする。
【０１４９】
まず、検出に先だって、プリチャージ制御信号線７２をＬ（ロウ：‘０’）とし、両信号線６２，６４の両端のプリチャージトランジスタ７８とトランジスタ７９をオンして第１および第２の信号線６２および６４を、従って接点ａおよびｂをも同一の所定電位、例えば電源電位（例えば５Ｖ）にプリチャージするとともに、差電流検出回路７０の両プリチャージトランジスタ８３をオンして、差電流検出回路７０内の接点ＡおよびＢをプリチャージ電圧、すなわち所定のＨ（ハイ）電位（例えば４．３Ｖ）にプリチャージする。なお、差電流検出回路７０のトランジスタ８２ａ，８２ｂ、全ての電流駆動回路６６のトランジスタ６７ａ、リファレンス電流駆動回路６８のトランジスタ６８ａはオフの状態である。ここで、はじめに電源に接続されたトランジスタ８６がオフした状態では、そのドレイン電位は、しきい値電圧によって電源電位−しきい値電位（Ｖdd−ＶTH、例えば４．３Ｖ）に保たれているが、プリチャージトランジスタ８３がオンした結果、トランジスタ８６のドレイン電位Ｖdd−ＶTHより下がると、トランジスタ８６がオンして接点Ａ，Ｂをプリチャージする。こうして、接点Ａ，Ｂの電位、すなわちトランジスタ８６のゲート電位（ドレイン電位）が、プリチャージ電圧、すなわちＶdd−ＶTH（例えば４．３Ｖ）に達するまでトランジスタ８６はオンして、接点Ａ，Ｂのプリチャージを続け、プリチャージ電圧に達した後トランジスタ８６はオフする。
【０１５０】
次に、プリチャージ制御信号線７２をＨ（ハイ：‘１’）とし、ＰＭＯＳトランジスタ７８，７９，８３をオフして、ＮＭＯＳトランジスタ６７ａ，６９ａ，７５ａ，７７ａをオンする。従って、リファレンス電流駆動回路６８の２つのトランジスタ６９ａ，６９ｂは共にオンすることになり、第２信号線６４にはリファレンス電流ｉr （＝１．５ｉ0 ）が流れ接点ｂの電位を低下させる。一方、（ｍ＋１）個の電流駆動回路６６（６６0 ，６６1 ，…，６６m ）のうち、フラグレジスタ１８のフラグデータがヒット信号‘１’であるデータラッチ回路１８j に接続されたゲート電極をもつトランジスタ６７ｂはオンし、トランジスタ６７ａはオンしていることから、この電流駆動回路６６j には第１信号線６２から駆動電流ｉ0 が流れる。ところで、フラグレジスタ１８のフラグデータにはヒット信号‘１’が複数例えばｋ（ｋ≧２）個あることから、第１信号線６２にはｋｉ0 の電流が流れることになり、接点ａの電位もそれに応じて低下する。
【０１５１】
ここで、ｋが２より大の時は、第１信号線６２に流れる電流ｋｉ0 は第２信号線６４に流れるリファレンス電流ｉr （＝１．５ｉ0 ）より大きいため、接点ｂの電位に比べ接点ａの電位の方が早く低下する。ここで、ＮＭＯＳ８２ａのゲート電位（接点Ｂの電位）とソース電位（接点ａの電位）の差（ゲート−ソース電圧）が、ＮＭＯＳ８２ａの基板バイアスされたしきい値電圧（例えば１．４Ｖ）より大きくなると、すなわち、接点ａの電位が検出開始電圧ＶON（プリチャージ電圧から上述のしきい値電圧を差し引いた電圧）を超えて低下すると（例えば、接点Ｂの電位が４．３Ｖのとき接点ａの電位が２．９Ｖまで低下すると）、ＮＭＯＳ８２ａはオンし、接点Ａの電位が低下する。一方、この時、接点ｂの電位はＮＭＯＳ８２ｂをオンさせる程低下しておらず、このままオフ状態が維持される。この後、両信号線６２および６４にさらに電流が流れて、接点Ａおよびａはさらに電位が低下するが、接点ａの電位の低下、すなわち接点Ａの電位の低下の方が接点ｂの電位低下より大きいため、ＮＭＯＳ８２ｂはオフ状態を保つ。こうして接点Ｂは‘１’を保ち、これに接続されているインバータ８４によってアンド回路８８に‘０’が出力されることになる。一方、接点Ａは‘０’となる。
【０１５２】
次に、フラグレジスタ１８内の複数のヒット信号‘１’がエンコードされるに従って１つ１つ‘０’にリセットされ、残存するヒット信号が１個になった時に、図示例のタイミング制御回路９０の検出動作を行うと、すなわち、はじめにプリチャージ制御信号線７２に‘０’を入力して、プリチャージし、次に‘１’を入力すると、上述したのと同様にして、第１信号線６２には電流ｉ0 が、第２信号線６４にはリファレンス電流ｉr （＝１．５ｉ0 ）が流れることになる。この時、第２信号線６４に流れる電流の方が大きいため、接点ｂの電位の方が接点ａの電位よりも早く低下し、上述とは逆にＮＭＯＳ８２ａはオフ状態を保ち、ＮＭＯＳ８２ｂはオン状態となる。従って、接点Ｂの電位がロウレベルに低下し、インバータ８４に反転され、前述のアンド回路８８に‘１’が出力される。一方、接点Ａの電位はＨ（ハイ）電位に維持される。
【０１５３】
以上から、図示例のタイミング制御回路９０のインバータ８４から出力される出力信号が‘０’であればフラグレジスタ１８内に保持されているヒット信号‘１’は２個以上、出力信号が‘１’であればヒット信号は１個以下であることがわかる。従ってこの出力信号が‘０’から‘１’に変化した時に、アンド回路８８によってこの検出結果、すなわち‘１’信号と前述のフラグレジスタのリセット信号とから切り換え制御信号を得て、この切り換え制御信号を使ってフラグレジスタ１８内のフラグデータをプリフェッチ回路１６内のフラグデータに切り換えればよい。もちろん、ここで出力信号は接点Ａのみまたは接点ＡおよびＢの両方からとり出してもよい。
【０１５４】
ところで、図示例のタイミング制御回路９０においては、上述したようにタイミング検出動作が開始されると、信号電流検出線（第１の信号線）６２にはフラグレジスタ１８のヒット信号（‘１’）の個数に応じた電流が流れ、基準電流駆動線（第２の信号線）６４には所定のリファレンス電流が流れる。そこで、差電流検出回路７０は、両信号線６２および６４に流れる電流の差によって生じる接点ａ，ｂの小さな電位差を、一方（接点ａ，ｂの高電位側）がプリチャージ電圧（例えばＶｄｄ）に保持され、他方（低電位側）が接地レベル（例えばほぼ０Ｖ）まで低下する接点Ａ，Ｂの大きな電位差として検出する。
【０１５５】
ここで、はじめに同一のプリチャージ電位（例えば４．３Ｖ）にプリチャージされていた接点ＡとＢの電位のその後の変化は、トランジスタ８２ａと８２ｂとのどちらがオンするかどうかで決まる。すなわち、上述したように、タイミング検出動作の間に、第１および第２の信号線６２および６４に電流が流れ、両信号線６２，６４の接点ａおよびｂの電位が低下し、接点Ｂと接点ａの電位差、接点Ａと接点ｂの電位差のいずれかが基板バイアスされたしきい値（例えば、１．４Ｖ）より大きくなると、すなわち、両信号線６２および６４の電位（接点ａおよびｂの電位）のいずれかが検出開始電圧（プリチャージ電位から前述のしきい値電圧を差し引いた電位）ＶON（例えば、２．９Ｖ）を超えて低下すると、トランジスタ８２ａおよび８２ｂのいずれかがオンする。その結果、オンしたトランジスタ８２ａまたは８２ｂ側のそれぞれの接点ＡまたはＢの一方は、直ちにそれぞれ低下した接点ａまたはｂの電位に等しくなり、その後、接地レベル（０Ｖ）まで一緒に低下する。他方、オンしなかったトランジスタ８２ａまたは８２ｂ側のそれぞれの接点ＡまたはＢはプリチャージ電位（４．３Ｖ）に保たれる。
【０１５６】
こうして、接点Ｂの電位を検出信号とし、インバータ８４を介して出力信号として取り出すことで、所定個数（例えば最後の１個）のヒット信号となったことを検出することができる。すなわち、接点Ｂの先にはインバータ８４が接続されているので、トランジスタ８２ｂがオンし、接点Ｂの電位が低下して、インバータ８４のしきい値（例えば、約２．５Ｖ）より下がった時に、出力信号‘１’が得られることになる。
【０１５７】
以上から分かるように上述の差電流検出回路７０では、接点ＡとＢとが分かれ始める時の接点ａとｂとの電位差が小さすぎると、トランジスタ８２ａおよび８２ｂのオン動作が接点ａ，ｂの電位差と無関係に起ってしまう、すなわち誤動作が生じる可能性が高くなる。従って、両接点ａとｂとの電位差は大きい方が、ノイズの影響を受けにくく、常に正確かつ安定したタイミング検出を行うことができる。
【０１５８】
ここで、両信号線６２，６４の各接点ａ，ｂの等しくプリチャージされた電位は、タイミング検出動作（プリチャージ制御信号線７２がハイレベル（Ｈ：‘１’）である時）の初期には各電流駆動回路６６、リファレンス電流駆動回路６８、各ダミー回路７４，７６などのオンした制御トランジスタ６７ａ，６９ａ，７５ａ，７７ａへの電荷の一時的な流入が生じるため、同様に低下する。しかし、フラグレジスタ１８に保持されているヒット信号（‘１’）の数に応じて信号電圧印加トランジスタ６７ｂがオンした電流駆動回路６６を通して第１信号線６２を流れる全信号電流ｉと、トランジスタ６９ｂがオンした基準電流駆動回路６８を通して第２信号線６４を流れるリファレンス電流ｉr には差があるため、検出開始後所定時間経過するとこの電流差によって接点ａとｂには電位差が生じる。この電位差は、両信号線６２，６４を流下した積算電流の差が大きいほど大きいので、検出開始後所定時間までは大きくなる。しかし、電流が流れるに伴って予めプリチャージされていた両信号線６２，６４の電位が低下し、その保持していた電荷が減少してゆくので、保持していた電荷が少なくなり、電位がほぼ接地レベルに近づくと電流が流れにくくなり、最終的には流れなくなるため、十分な時間経過後には両信号線６２，６４の電位、すなわち両接点ａ，ｂの電位はほぼ同一の接地レベルとなる。
【０１５９】
従って、図示例の半導体集積回路においては、両接点ａとｂの電位が接地レベル近傍まで低下していなければ、プリチャージされた電位から低下しているほど、接点ａとｂとの電位差は大きい。従って、両接点ａとｂとの電位がより低下し、両接点ａとｂとにより大きい電位差が生じた時点で、接点ａおよびｂの電位のうち低い方の電位がトランジスタ８２ａおよび８２ｂのいずれか一方をオンする検出開始電圧となるように、両接点ａおよびｂ、すなわち両信号線６２および６４のプリチャージ電圧とトランジスタ８２ａ，８２ｂがオンする検出開始電圧レベルとの差をできるだけ大きくとれるようにしておくのが好ましい。このためには、両信号線６２，６４のプリチャージ電圧を上げるか、検出開始電圧レベルを下げるかいずれかの方法がある。両信号線６２，６４のプリチャージ電圧を上げるためには、昇圧回路を用いればよいが、昇圧回路は回路面積の増大やコストアップを伴うため、検出開始電圧レベルを低下させる手段を設けるのが好ましい。検出開始電圧は、トランジスタ８２ａ、または８２ｂがオンする時のソース電圧、すなわち接点ａまたはｂの電位であり、トランジスタ８２ａ，８２ｂのゲート−ソース間のしきい値（例えば約１．４Ｖ）が定まっていることから、トランジスタ８２ａ，８２ｂのゲート電極の電位を下げることによって検出開始電圧レベルを下げることができる。
【０１６０】
図１５に示すタイミング制御回路９０では、ＰＭＯＳトランジスタを用いる検出開始レベル設定トランジスタ８６によって両トランジスタ８２ａ，８２ｂのゲート電極に接続された接点Ａ，Ｂのプリチャージ電位を電源電位（例えば５Ｖ）から所定電位（例えば４．３Ｖ）までＰＭＯＳトランジスタのしきい値電圧の分だけ低下させているが、これに限定されず、例えば図１６に示すタイミング制御回路９２のように検出開始レベル設定トランジスタ８６をＮＭＯＳトランジスタによって構成することもできる。ＮＭＯＳトランジスタの基板バイアスされたゲート−ソース間のしきい値電圧ＶTHが例えば、約１．４Ｖであるとすると、電源電圧Ｖddが５ＶであるときＮＭＯＳトランジスタ８６のドレイン電極とゲート電極を接続して電源に接続することで、ソース電極の電位の上昇をＶdd−ＶTH、すなわち約３．６Ｖまでにすることができる。このため、接点Ａ，Ｂのプリチャージ電圧は約３．６Ｖとなり、ＮＭＯＳトランジスタ８２ａ，８２ｂのゲート−ソース間のしきい値電圧ＶTHも約１．４Ｖであるので、これらのトランジスタ８２ａ，８２ｂがオンする検出開始電圧ＶONを約２．２Ｖ（３．６−１．４Ｖ）とすることができる。
【０１６１】
ところで、図示例の半導体集積回路を符号化回路のタイミング制御回路として適用する際に、タイミング検出動作開始後、両信号線６２，６４の各接点ａとｂとの電位差を早く、すなわち接点ａ，ｂの電位の低下が少なくてもより大きくするために、図１５に示すタイミング制御回路９０とは逆に図１６に示すタイミング制御回路９２のように電流駆動回路６６の信号電圧印加トランジスタ６７ｃを第１信号線（信号電流検出線）６２側に、制御トランジスタ６７ｄを接地側に設け、かつダミー回路７４のゲート接地トランジスタ７５ｃを第２信号線（リファレンス電流駆動線）側に、制御トランジスタ７５ｄを接地側に設けてもよい。こうすることにより、信号電圧印加トランジスタ６７ｃがオンした電流駆動回路６６の制御トランジスタ６７ｄだけをオンさせ、トランジスタ６７ｃがオンしないすべての制御トランジスタ６７ｄおよびすべてのダミー回路７４の制御トランジスタ７５ｄをオンさせることがないので、タイミング検出動作の初期にこれらの制御トランジスタ６７ｄ，７５ｄに流入する電荷をなくすことができ、両信号線６２，６４、すなわち両接点ａ，ｂのタイミング検出動作初期の同時低下を防止し、両接点ａとｂとの電位差そのものを大きくすることができる。
【０１６２】
しかし、図１０に示すタイミング制御回路６０では、プリチャージトランジスタ８３は電源に直接接続されているため、接点ＡおよびＢは電源電位Ｖdd（例えば、５Ｖ）にプリチャージされる。接点Ａ，Ｂのプリチャージ電圧が電源電位Ｖddであるため、ゲート−ソース間のしきい値電圧がＶTH（例えば１．４Ｖ）であるトランジスタ８２ａ，８２ｂがオンする検出開始電圧ＶONはＶdd−ＶTH（例えば３．６Ｖ）となる。これに対し、図１５および図１６に示すタイミング制御回路９０および９２の検出開始レベル（電圧）ＶONは、同一電源電位（５Ｖ）に対しそれぞれ約２．９Ｖおよび２．２Ｖであるので、図３に示すタイミング制御回路６０に比べて検出開始電圧レベルＶONを下げることができ、両信号線６２と６４との、すなわち接点ａとｂとの電位差がより大きくなるより低い電位でトランジスタ８２ａまたは８２ｂを正確かつ安定して行うことができる。その結果、図１５および図１６に示すタイミング制御回路９０および９２は図３に示すものに比べてノイズの影響を受けても、差電流検出回路７０が誤動作する可能性は小さく、常に正確かつ安定したタイミング検出を高いノイズマージンで行うことができる。
【０１６３】
図１７（ａ）、（ｂ）は、それぞれ図１６に示すタイミング制御回路９２の回路動作シミュレーション波形と図１０に示すタイミング制御回路６０の回路動作シミュレーション波形を示す。
【０１６４】
各々、ノードＡ点およびノードＢ点が分岐する動作点でのノードａおよびノードｂの電圧差が、０．６Ｖと０．１Ｖであり同図（ａ）の方がマージンが大きいことがわかる。
なお、タイミング制御回路９０が適用された図８に示す符号化回路１１のメインエンコーダ１２のエンコード動作は図１３に示すタイミングチャートと同様であるのでその説明は省略する。
図８に示す符号化回路１１に適用されるタイミング制御回路９０、９２は、基本的に以上のように構成される。
【０１６５】
また、図示例の半導体集積回路によれば、差電流検出手段に検出開始電圧と第１および第２の信号線に予め同一に設定される電圧との差を相対的に大きくすることのできる検出開始レベル設定手段を設けたので、検出動作タイミングにおいても、信号電流検出線と基準電流駆動線との両信号線の電位が十分に低下し、その電位差が十分に大きくなったところで、その差をダイナミックに検出することができる。このため、差電流検出手段の検出不能や誤動作を生じることがない。従って、基準電流駆動線と信号電流検出線との差電流を低消費電力で安定して、正確かつ迅速に高いノイズマージンで検出することができ、また、コンパクトな回路構成とすることができ、連想メモリなどの符号化回路の符号化終了を予測するタイミング制御回路として好適に用いることができる。
【０１６６】
次に、図１８〜図２２を参照して、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となるさらに別の半導体集積回路について詳細に説明する。図示例の半導体集積回路は、図８に示す符号化回路にタイミング制御用個数検出回路として適用可能なものである。
【０１６７】
図示例の半導体集積回路では、まず第１の信号線、すなわち信号電流検出線に各々並列に設けられたＭ（Ｍ≧１）個の電流駆動手段をそれぞれ制御するデータ入力線に入力されるデータ‘１’または‘０’のうち、検出したいデータの個数ｋ0 （Ｍ＞ｋ0 ≧０）に応じて第２の信号線である基準電流駆動線に設けられた基準電流駆動手段に流す基準電流（リファレンス電流）値ｉr 、すなわち、１個の電流駆動手段に流れる電流値ｉ0 のｋ0 倍より大きくｋ0 ＋１倍より小さい電流値（ｋ0 ｉ0 ＜ｉr ＜（ｋ0 ＋１）ｉ0 ）を予め設定しておく。また、検出に先立って、第１および第２の両信号線は所定の同電位にプリチャージされる。従ってこれらの信号線に直列または並列に接続される第１および第２の両インバータの入力も反転出力も同一であり、差電流検出手段への両入力も同一とされる。
【０１６８】
このため、図示例の半導体集積回路において、動作タイミングに応じて、データ入力線に所定のデータが入力され、すべての電流駆動手段がアクティブとなると、これらの電流駆動手段にはそれぞれ電流ｉ0 が流れるので、その個数ｋ（Ｍ＞ｋ≧０）に応じた電流ｉ（ｉ＝ｋｉ0 ）が信号電流検出線に流れる。これに対し、基準電流駆動線には基準電流駆動手段によって基準電流値ｉr が流れる。その結果、予め所定電位にプリチャージされていた信号電流検出線および基準電流駆動線の電位が低下し始め、アクティブとなっている電流駆動手段の個数ｋがｋ0 より大きい時信号電流検出線の電位の方が早く低下し、他方ｋ0 以下の時基準電流駆動線の電位の方が早く低下する。
【０１６９】
ところで、図示例の半導体集積回路においては、どちらか一方の信号線の電位がこの信号線に接続されたインバータのしきい値を超えて低下すると、このインバータの出力は反転する。ここで、図示例の半導体集積回路では、この信号線に直列に接続されたインバータの反転出力の反転を直接的に差電流検出手段によって検出することができる。また、図示例の半導体集積回路においては、その信号線に並列に接続されたインバータの反転出力の反転により、その信号線に直列に接続され（インバータと並列に接続され）たトランジスタのみをオンさせて、その信号線に電流を流下し、その電位を低下させることができ、差電流検出手段によってその入力電位の低下を検出することができる。従って、上記第１および第２の両信号線に流れる電流値ｉとｉr との差電流を差電流検出手段によって検出し、この差電流の符号の逆転、すなわち両電流値ｉとｉr との大小関係の逆転（タイミング）を出力する。こうして、各データ入力線に入力されるデータのうちの所要のデータの個数ｋが予め設定された検出すべきデータの個数ｋ0 となったことを検出する。こうして図示例の半導体集積回路はデータ入力線に入力された所要のデータの個数を検出することができる。
【０１７０】
ここで、両信号線に接続されるインバータのしきい値を調整することにより、両信号線の差電流の検出時にこれによる両信号線の電位の差を比較的大きくとることができる。従って、この時、安定して、正確かつ迅速に一方のインバータのみの反転出力を反転できる。また、インバータは自分自身で駆動能力を有しているので、図示例の半導体集積回路においては、一方のインバータの反転によって、差電流検出手段への入力信号の初期値の電圧レベルを上げることができ、検出開始時の両信号線の差電流による２つの入力信号の電圧差を大きくとることができ、その検出動作を確実かつ安定して行うことができる。さらに、図示例の半導体集積回路においては、インバータの反転によってトランジスタをオンし、先に、一方の信号線を差電流検出手段の入力と確実に導通させることができるので、その検出動作を安定して、正確に行うことができる。その結果、差電流検出手段による両信号線の差電流の逆転の検出を安定して正確かつ迅速に行うことができる。
【０１７１】
図１８に、本発明の前提となる半導体集積回路が適用されたタイミング制御回路１００のさらに別の実施例の具体的回路図を示す。ここで、同図に示すタイミング制御回路１００は、図８に示す符号化回路１１に適用されるものであって、図１２に示すタイミング制御回路６１と、インバータ列１０２ａ，１０４ａおよび１０２ｂ，１０４ｂおよびトランジスタ１０３ａ，１０３ｂが設けられている点を除いて全く同一であるので、同一の構成要素には同一の番号を付し、その詳細な説明は省略する。
【０１７２】
図１８に示すタイミング制御回路１００は、第１信号線（信号電流検出線）６２と第２信号線（基準電流駆動線）６４と、第１信号線６２に各々並列にフラグレジスタ１８の（ｍ＋１）個のデータラッチ回路１８0 ，１８1 ，…，１８m の各々に対して設けられた（ｍ＋１）個の電流駆動回路（電流駆動手段）６６0 ，６６1 ，…，６６m と、第２の信号線６４に設けられたリファレンス電流駆動回路（基準電流駆動手段）６８と、第１信号線６２と第２信号線６４に流れる電流の差、すなわち差電流を検出する差電流検出回路（差電流検出手段）７０と、第１信号線６２および第２信号線６４と差電流検出回路７０との間に設けられるインバータ１０２ａ，１０４ａおよび１０２ｂ，１０４ｂと、このタイミング制御回路の動作タイミングを制御する、すなわち、電流駆動回路６６（６６0 ，６６1 ，…，６６m ）、リファレンス電流駆動回路６８および差電流検出回路７０などを制御するプリチャージ制御信号線７２とを有している。
【０１７３】
さらに、このタイミング制御回路１００においては、第１信号線６２および第２信号線６４の一方の端部接点ｐおよび接点ｑはそれぞれインバータ１０２ａおよび１０２ｂに接続され、さらにインバータ１０４ａおよび１０４ｂを介して、接点ａおよびｂにおいて差電流検出回路７０に接続され、他方の端部は共にプリチャージトランジスタ７８を介して所定電位、例えば５Ｖ電源に接続される。なお、リファレンス電流駆動回路６８に流れるリファレンス電流ｉr の値は、電流駆動回路６６（６６0 ，６６1 ，…，６６m ）が流すことのできる電流値ｉ0 と検出するヒット信号の個数に応じて適宜決めればよいが、最後の１個のヒット信号を検出するためには、ｉ0 超２ｉ0 未満であってインバータ１０２ａおよび１０２ｂの反転タイミングを明確に区別でき、この反転によって差電流検出回路７０が差電流を検出可能な電流値とすればよい。
【０１７４】
インバータ１０２ａおよび１０４ａは第１信号線６２と差電流検出回路７０との間に接続され、他方、インバータ１０２ｂおよび１０４ｂは第２信号線と差電流検出回路７０との間に接続される。さらにインバータ１０２ａと１０４ａとの間およびインバータ１０２ｂと１０４ｂとの間にはそれぞれ所定低電位（例えば接地電位）に接続されたＮＭＯＳトランジスタ１０３ａおよび１０３ｂが接続され、これらのゲート電極はそれぞれ接点ａ（インバータ１０４ａと差電流検出回路７０との接点）および接点ｂ（インバータ１０４ｂと差電流検出回路７０との接点）に接続される。ここで、インバータ１０２ａおよび１０２ｂの出力反転が生じるしきい値電圧は、インバータを構成するＰＭＯＳおよびＮＭＯＳのトランジスタ幅又はしきい値電圧により調整される。この反転出力のしきい値電圧を調整することで、一方のインバータのみの出力反転時における接点ｐとｑとの差電流による電位差を比較的大きくすることが可能となり、動作マージンを大きくできる。
【０１７５】
次に、図示例のタイミング制御回路１００の検出動作を、フラグレジスタ１８のフラグデータのヒット信号が最後の１個となったこと、すなわち最後のヒット信号を検出する際の作用を代表例として説明する。ここで、フラグレジスタ１８には複数のヒット信号（‘１’）を持つフラグデータが保持されており、リファレンス電流ｉr は、１つの電流駆動回路６６の駆動電流ｉ0 の１．５倍、すなわち１．５ｉ0 に設定されているものとする。
【０１７６】
まず、検出に先だって、プリチャージ制御信号線７２をＬ（ロウ：‘０’）とし、両プリチャージトランジスタ７８およびトランジスタ７９をオンして第１および第２の信号線６２および６４を、従って接点（ノード）ｐとｑも同一のＨ（ハイ）電位（例えば５Ｖ）にプリチャージするとともに、両プリチャージトランジスタ８３をオンして、差電流検出回路７０内の接点ＡおよびＢを同様にＨ（ハイ）電位（例えば５Ｖ）にプリチャージしておく。従って、インバータ１０２ａおよび１０２ｂによって、インバータ１０２ａと１０４ａおよび１０２ｂと１０４ｂとの両接続点はＬ（ロウ）電位であり、インバータ１０４ａおよび１０４ｂによって接点ａおよびｂは共にＨ（ハイ）電位となる。従って、トランジスタ１０３ａおよび１０３ｂはオンし、両インバータ１０２ａと１０４ａおよび１０２ｂと１０４ｂとの両接続点電位を確実にＬ（ロウ）電位に固定する。なお、差電流検出回路７０のトランジスタ８２ａ，８２ｂ、全ての電流駆動回路６６のトランジスタ６７ｄ、リファレンス電流駆動回路６８のトランジスタ６９ｄはオフの状態である。
【０１７７】
次に、プリチャージ制御信号線７２をＨ（ハイ：‘１’）とし、ＰＭＯＳトランジスタ７８，７９，８３をオフして、ＮＭＯＳトランジスタ６７ｄ，６９ｄ，７５ｄ，７７ｄをオンする。従って、リファレンス電流駆動回路６８の２つのトランジスタ６９ｃ，６９ｄは共にオンすることになり、第２信号線６４にはリファレンス電流ｉr （＝１．５ｉ0 ）が流れ接点ｑの電位を低下させる。一方、（ｍ＋１）個の電流駆動回路６６（６６0 ，６６1 ，…，６６m ）のうち、フラグレジスタ１８のフラグデータがヒット信号‘１’であるデータラッチ回路１８j に接続されたゲート電極をもつ信号電圧印加トランジスタ６７ｃはオンし、制御トランジスタ６７ｄはオンしていることから、この電流駆動回路６６j には第１信号線６２から駆動電流ｉ0 が流れる。ところで、フラグレジスタ１８のフラグデータにはヒット信号‘１’が複数例えばｋ（ｋ≧２）個あることから、第１信号線６２にはｋｉ0 の電流が流れることになり、接点ｐの電位もそれに応じて低下する。
【０１７８】
ここで、ｋが２より大の時は、第１信号線６２に流れる電流ｋｉ0 は第２信号線６４に流れるリファレンス電流ｉr （＝１．５ｉ0 ）より大きいため、接点ｑの電位に比べ接点ｐの電位の方が早く低下する。このため、接点ｐの方が接点ｑよりも早くインバータの出力反転電位（しきい値）に達し、インバータ１０２ａの出力反転がインバータ１０２ｂの出力反転よりも早く起こり、インバータ１０４ａが早く出力反転する。すなわち、インバータ１０２ａおよび１０４ａのみが先に出力反転し、接点ａの電位降下が発生し、差電流検出回路７０のＮＭＯＳ８２ａのゲート電位（接点Ｂの電位）とソース電位（接点ａの電位）の差が、ＮＭＯＳ８２ａの基板バイアスされたしきい値電圧（例えば１．４Ｖ）より大きくなり、（例えば、接点Ｂの電位が５Ｖのとき接点ａの電位が３．６Ｖより下がり）ＮＭＯＳ８２ａはオンし、接点Ａの電位が低下し、Ｌ（ロウ）状態となる。なお、接点ａの電位低下によってＮＭＯＳ１０３ａはオフし、インバータ１０２ａと１０２ｂとの接続点をＨ（ハイ）状態に保つ。一方、この時、接点ｑ（第２信号線６４）はインバータ１０２ｂの出力反転電位（しきい値）に達しておらず、両インバータ１０２ｂおよび１０４ｂの出力反転は起こらず、接点ｂの電位はＨ（ハイ）状態のまま維持され、ＮＭＯＳ８２ｂはオフ状態が維持され、接点ＢはＨ（ハイ）状態のまま維持される。
【０１７９】
この後、両信号線６２および６４にさらに電流が流れて、接点ｐおよびｑの電位が低下し、接点ｑの電位がインバータ１０２ｂのしきい値を超えて低下し、その出力反転が生じ、インバータ１０４ｂの出力反転を生じさせ、接点ｂの電位低下が生じても、ＮＭＯＳ８２ｂのゲート電位（接点Ａの電位）はＬ（ロウ）状態が維持されているので、ＮＭＯＳ８２ｂはオフ状態が維持され、接点Ｂの電位はＨ（ハイ）状態のまま維持される。こうして、差電流検出回路７０のラッチ動作により、設定はＨ（ハイ）‘１’を保ち、これに接続されているインバータ８４によって反転されアンド回路８８にＬ（ロウ）‘０’が出力されることになる。一方、接点ＡはＬ（ロウ）‘０’を保つ。
【０１８０】
次に、フラグレジスタ１８内の複数のヒット信号‘１’がエンコードされるに従って１つ１つ‘０’にリセットされ、残存するヒット信号が１個になった時に、図示例のタイミング制御回路１００の検出動作を行うと、すなわち、はじめにプリチャージ制御信号線７２に‘０’を入力して、プリチャージし、次に‘１’を入力すると、上述したのと同様にして、第１信号線６２には電流ｉ0 が、第２信号線６４にはリファレンス電流ｉr （＝１．５ｉ0 ）が流れることになる。この時、第２信号線６４に流れる電流の方が大きいため、接点ｑの電位の方が接点ｐの電位よりも早く低下し、上述とは逆にインバータ１０２ｂおよび１０４ｂの出力反転が生じ、接点ｂのみが先に低下し、ＮＭＯＳ８２ｂがオンするが、ＮＭＯＳ８２ａはオフ状態を保つ。従って、接点Ｂの電位がＬ（ロウ）レベルに低下し、インバータ８４に反転され、前述のアンド回路８８にＨ（ハイ）‘１’が出力される。一方、接点Ａの電位はＨ（ハイ）‘１’電位に維持される。
【０１８１】
以上から、タイミング制御回路１００のインバータ８４から出力される出力信号が‘０’であればフラグレジスタ１８内に保持されているヒット信号‘１’は２個以上、この出力信号が‘１’であればヒット信号は１個以下であることがわかる。従ってこの出力信号が‘０’から‘１’に変化した時に、アンド回路８８によってこの検出結果、すなわち‘１’信号と前述のフラグレジスタ１８のリセット信号とから切り換え制御信号を得、この切り換え制御信号を使ってフラグレジスタ１８内のフラグデータをプリフェッチ回路１６内のフラグデータに切り換えればよい。もちろん、ここで出力信号は接点Ａのみまたは接点ＡおよびＢの両方からとり出してもよい。
【０１８２】
上述したように、両信号線６２および６４に接続されるインバータ１０２ａおよび１０２ｂのしきい値電圧を適切に調整することにより、両信号線６２および６４の差電流によって生じる両接点ｐおよびｑの電位低下の差を、たとえ小さくても確実に検出し、必ず先に一方のインバータのみを出力反転させることができる。インバータは駆動能力を有しているので、出力反転によって接点ａとｂとの電位を上げることができ、差電流検出回路７０による検出開始時における接点ａとｂの電位差を大きくとることができ、ＮＭＯＳ８２ａおよび８２ｂの一方のみを確実にオンさせることができる。従って、差電流検出回路７０の検出動作を安定して確実に行うことができる。すなわち、差電流検出回路７０の検出開始時における接点ａとｂとの電位差が両信号線の接点ｐとｑとの電位差に比較して大きくとれるので、トランジスタ８２ａおよび８２ｂのいずれか一方のオン動作が誤動作となることがない。従って、図示例のタイミング回路１００は、ノイズマージンが大きく、ノイズの影響を受けにくいので、常に正確かつ安定したタイミング検出を行うことができる。もちろんインバータ１０２ａ，１０２ｂの出力変化のための入力しきい値電圧を低く調整することで、一方のインバータが働きはじめる時の接点ｐとｑの電圧差をより大きくし、さらに安定な動作が可能となることはいうまでもない。
【０１８３】
なお、図示例のタイミング回路１００は、両信号線６２および６４と差電流検出回路７０との間にそれぞれ２段のインバータ１０２ａと１０４ａおよび１０２ｂと１０４ｂを用い、ＮＭＯＳ８２ａおよび８２ｂによる接点ＡおよびＢのいずれか一方の電位の引き落としによって検出するものであるが、これに限定されず、インバータを１段とし、ＰＭＯＳトランジスタによって接点ＡおよびＢのいずれか一方の電位を引き上げる差電流検出回路によって構成してもよい。
タイミング制御回路１００は、基本的に以上のように構成される。
【０１８４】
次に、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となるさらに別の半導体集積回路について説明する。
図１９に本発明の前提となる半導体集積回路が適用されたタイミング制御回路のさらに別の実施例を示す。図１９に示すタイミング制御回路１０６は、図１８に示すタイミング制御回路１００と、２段インバータ１０２ａ，１０４ａおよび１０２ｂ，１０４ｂの代わりにインバータ１０８ａ，１０８ｂおよびトランジスタ１０９ａ，１０９ｂが設けられている点を除き、全く同一の構成を有するので、同一の構成要素には同一の番号を付し、その詳細な説明は省略する。
【０１８５】
図１９に示すタイミング制御回路１０６において、第１信号線６２の一方の端部接点ｐと差電流検出回路７０のＮＭＯＳ８２ａのソース電極側接点ａとの間にはＮＭＯＳトランジスタ１０９ａが接続され、ＮＭＯＳ１０９ａのゲート電極と接点ｐとの間にはインバータ１０８ａが接続され、第２信号線の端部接点ｑとＮＭＯＳ８２ｂのソース電極側接点ｂとの間にはＮＭＯＳトランジスタ１０９ｂが接続され、ＮＭＯＳ１０９ｂのゲート電極と接点ｑとの間にはインバータ１０８ｂが接続される。ここで、インバータ１０８ａおよび１０８ｂのしきい値は、インバータ１０２ａおよび１０２ｂと同様に調整される。
【０１８６】
図１８に示すタイミング制御回路１００と同様に、図１９に示すタイミング制御回路１０６においても、まずプリチャージ制御信号線７２のＬ信号によって、接点Ａ，Ｂ，ａ，ｂ，ｐ，ｑはすべてＨ状態にプリチャージされる（例えば、接点Ａ，Ｂ，ｐ，ｑは電源電圧（Ｖｄｄ、例えば５Ｖ）、接点ａ，ｂはＮＭＯＳ８２ａ，８２ｂの基板バイアスされたしきい値（例えば１．４Ｖ）によって３．６Ｖにプリチャージされる）。次いで、信号線７２をＨとすることにより、第１信号線６２には、フラグレジスタ１８のヒット信号‘１’によってアクティブとなる電流駆動回路６６によってヒット信号の個数ｋに応じたｋｉ0 の電流引き込みが発生し、それに応じて電圧が降下し、第２信号線６４にはリファレンス電流駆動回路６８によるｉr （１．５ｉ0 ）の電流引き込みが発生し、それに応じて電圧が降下する。
【０１８７】
この時、アクティブとなる電流駆動回路６６の個数ｋが２以上の時には第１信号線６２の方が第２信号線６４よりも電圧降下が早い。従って、接点ｂの方が接点ｑよりも早くインバータのしきい値電圧に達し、インバータ１０８ａの出力反転がインバータ１０８ｂの出力反転よりも早く起こる。このため、ＮＭＯＳ１０９ａがＮＭＯＳ１０９ｂよりも先にオンする。このため、接点ａの電位降下が発生し、差電流検出回路７０のＮＭＯＳ８２ａがオンし、接点Ａの電位はＬ（ロウ）レベルとなる。その結果、この後、接点ｑの電位がさらに低下し、インバータ１０８ｂが出力反転し、トランジスタ１０９ｂがオンして、接点ｂの電位降下が発生しても、ＮＭＯＳ８２ｂのゲート電位（接点Ａの電位）がすでにＬとなっているのでＮＭＯＳ８２ｂはオンすることはなくオフ状態を保ち、接点Ｂの電位はＨ状態を保つことになる。従って、接点Ｂの出力はインバータ８４で反転されて、タイミング制御回路１０６の出力であるインバータ８４の出力はＬ（ロウ）ホールドとなる。
【０１８８】
逆に、アクティブとなる電流駆動回路６６の個数ｋが１個以下の時には、逆に第２信号線６４の流下電流ｉr の方が第１信号線６２の流下電流ｉより大きく、接点ｐより接点ｑの電位降下の方が大きい。このため、インバータ１０８ｂが出力反転し、トランジスタ１０９ｂがオンし、接点ｂの電位降下が発生し、続いてＮＭＯＳ８２ｂがオンして接点Ｂの電位がＬレベルとなる。一方、ＮＭＯＳ８２ａはそのゲート電極（接点Ｂ）の電位がＬレベルであるので、接点ａの電位にかかわらず、すなわち、接点ｐの電位降下が発生し、インバータ１０８ａが出力反転し、トランジスタ１０９ａがオンして接点ａの電位が降下してもＮＭＯＳ８２ａはオンすることはない。従って、接点Ａの電位はＨレベルに維持される。その結果、接点Ｂの電位がインバータ８４によって反転され、タイミング制御回路１０６の出力はＨレベルに変化する。こうして、フラグレジスタ１８内のヒット信号‘１’が残りの１個になったことを検出することができる。
【０１８９】
図示例のタイミング制御回路１０６においては、インバータ１０８ａおよび１０８ｂのしきい値を調整することにより、差電流検出回路７０の検出動作開始時、すなわち、ＮＭＯＳ８２ａおよび８２ｂのいずれか一方がオンする時点での接点ａとｂの電位差を設定することが可能となり、ノイズマージンの大きい常に安定した正確なタイミング検出を行うことができる。
【０１９０】
本発明の前提となるさらに別の半導体集積回路が適用されたタイミング制御回路が図２０に示される。同図に示すタイミング制御回路１１０は、図１９に示すタイミング制御回路１０６に、さらに接点ａおよびｂの電位を所定電位、例えば電源電位Ｖｄｄ（例えば５Ｖ）までプリチャージするプリチャージＰＭＯＳトランジスタ７８、７８および同電位とするために両接点ａとｂを接続するＰＭＯＳ７９を付加したものである。これらのＰＭＯＳ７８，７８，７９のゲート電極はプリチャージ制御線７２に接続される。
【０１９１】
ここで、図１９に示すタイミング制御回路１０６において、はじめに接点Ａ，Ｂ，ｐ，ｑが電源電位５ＶのＨ状態にプリチャージされると、接点ａおよびｂの電位は３．６ＶのＨ状態となるのに対し、図２０に示すタイミング制御回路１１０においては、接点ａおよびｂの電位も５Ｖまで引き上げておくことができる。このため、差電流検出回路７０の検出動作開始時点、ＮＭＯＳ８２ａおよび８２ｂのいずれか一方がオンする時点での接点ｐとｑとの電位差を図１９に示すタイミング制御回路１０６よりもさらに大きくすることができる。従って、図２０に示すタイミング制御回路１１０は、さらにノイズマージンが大で、常に正確かつ安定したタイミング検出を行うことができる。
【０１９２】
また、図２１に示すタイミング制御回路１１２のように電流駆動回路６６とリファレンス電流駆動回路６８の制御トランジスタ６７ｄ，６９ｄ，７５ｄ，７７ｄをマージして共通化した制御トランジスタ６７ｅ，７７ｅを使用しても良いことはいうまでもない。
【０１９３】
なお、フラグレジスタ１８の初期値設定のためには図２２に示す初期値設定信号を受けたＯＲ論理回路１１４をＡＮＤ回路８８とフラグレジスタ１８との間に挿入する。
また、タイミング制御回路１００，１０６，１１０，１１２が適用された図８に示す符号化回路１１のメインエンコーダ１２のエンコード動作は図１３に示すタイミングチャートと同様であるのでその説明は省略する。
本発明の前提となる半導体集積回路を適用したタイミング制御回路は基本的に以上のように構成される。
【０１９４】
以上詳述したように、図示例の半導体集積回路によれば、第１および第２の信号線と差電流検出手段との間にそれぞれインバータを直列または並列に設け、インバータの出力反転のしきい値電圧を調整することにより、差電流検出手段の検出開始時における差電流検出手段への２つの入力信号の電位差を比較的任意に設定することができるので、差電流検出手段の検出不能や誤動作を生じることがない。従って、この半導体集積回路によれば常に正確かつ安定した両信号線間の差電流の大小および逆転タイミングの検出動作を行うことができる。すなわち、図示例の半導体集積回路は、ノイズの影響を受けにくい、動作マージンの大きな安定した回路であり、連想メモリなどの符号化回路の符号化終了を予測するタイミング制御回路として好適に用いることができる。
【０１９５】
ここで、図１８の半導体集積回路によれば、インバータが出力反転した後、第１および第２信号線の電位の変化と無関係に差電流検出手段の検出動作を行わせることができる。また、図２０の半導体集積回路によれば、図１９の半導体集積回路に比べ動作マージンをさらに大きくとることができる。
【０１９６】
次に、図２３を参照して、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となるさらに別の半導体集積回路について詳細に説明する。図示例の半導体集積回路は、図８に示す符号化回路にタイミング制御回路用個数検出回路として適用可能なものである。
【０１９７】
この半導体集積回路では、まず、データレジスタに保持されているデータ‘０’または‘１’のうちの一方のデータの検出したい個数ｋ0 （Ｍ＞ｋ0 ≧０：ここでＭ（Ｍ≧１）はデータレジスタに保持可能なデータの個数）に等しい個数のデータをリファレンス電流制御レジスタに保持させる。例えば、データレジスタに保持されているデータ‘１’がｋ0 個になったことを検出するのであれば、リファレンス電流制御レジスタにｋ0 個のデータ‘１’を保持させる。
【０１９８】
ここで、第１の信号線、すなわち信号電流検出線に各々並列に設けられ、データレジスタに保持されているデータによって制御されるＭ個の信号用単位電流駆動手段と第２の信号線であるリファレンス電流駆動線に各々並列に設けられ、リファレンス電流制御レジスタに保持されたデータによって制御されるＮ個のリファレンス用単位電流駆動手段の各々に流れる電流は各々同一の単位電流ｉ0 とし、リファレンス電流駆動線に設けられたリファレンスオフセット電流駆動手段に流れるオフセット電流ｉosを単位電流ｉ0 より小さい電流値（ｉ0 ＞ｉos＞０）に予め設定しておく。従って、ｋ0 個のリファレンス用単位電流駆動手段およびリファレンスオフセット電流駆動手段を介してリファレンス電流駆動線に流れるリファレンス電流ｉr （＝ｋ0 ｉ0 ＋ｉos）はｋ0 ｉ0 より大きく（ｋ0 ＋１）ｉ0 より小さい電流値（ｋ0 ｉ0 ＜ｉr ＜（ｋ0 ＋１）ｉ0 ）となる。
【０１９９】
このため、図示例の半導体集積回路において、動作タイミングに応じて、所要のデータが保持されているデータレジスタに対応するすべての信号用単位電流駆動手段にはそれぞれ単位電流ｉ0 が流れるので、その個数ｋ（Ｍ＞ｋ≧０）に応じた電流ｉ（ｉ＝ｋｉ0 ）が信号電流検出線に流れるのに対し、リファレンス電流駆動線には上述したようにリファレンス電流値ｉr が流れる。この両信号線に流れる電流値ｉとｉr との差電流を差電流検出手段によって検出し、この差電流の符号の逆転、すなわち両電流値ｉとｉr との大小関係の逆転（タイミング）を出力する。こうして、各データ入力線に入力されるデータのうちの所要のデータの個数ｋが予め設定された検出すべきデータの個数ｋ0 となったことを検出する。こうして図示例の半導体集積回路はデータレジスタに保持されている所要のデータの個数を検出することができる。また、このデータの検出個数は、リファレンス電流制御レジスタに設定保持させる所要のデータの個数を変えることにより、任意に設定することができる。
【０２００】
図２３に、本発明の前提となる半導体集積回路が適用されたタイミング制御回路１１６のさらに別の実施例の具体的回路図を示す。ここで、同図に示すタイミング制御回路１１６は、図８に示す符号化回路に適用されるものであって、図１２に示すタイミング制御回路６１と、リファレンス電流制御レジスタ１１８およびオア（ＯＲ）回路１１４が設けられている点を除いて全く同一であるので、同一の構成要素には同一の番号を付し、その詳細な説明は省略する。直列接続トランジスタ７５ｃおよび７５ｄは、図１２に示すタイミング制御回路６１では、ダミー回路７４として用いられているが、図２３に示すタイミング制御回路１１６においては、ＮＭＯＳトランジスタ７５ｃのゲートをリファレンス電流制御レジスタ１１８の出力に接続し、リファレンス単位電流駆動回路７４として機能させている。
【０２０１】
同図に示すタイミング制御回路１１６は、（ｍ＋１）個のデータラッチ回路１１８0 ，１１８1 ，…，１１８m からなるリファレンス電流制御レジスタ１１８と、第１信号線（信号電流検出線）６２と第２信号線（リファレンス電流駆動線）６４と、第１信号線６２に各々並列にフラグレジスタ１８の（ｍ＋１）個のデータラッチ回路１８0 ，１８1 ，…，１８m の各々に対して設けられた（ｍ＋１）個の信号用単位電流駆動回路（信号用単位電流駆動手段）６６0 ，６６1 ，…，６６m と、第２の信号線に各々並列にリファレンス電流制御レジスタ１１８の（ｍ＋１）個のデータラッチ回路１１８0 ，１１８1 ，…，１１８m の各々に対して設けられた（ｍ＋１）個のリファレンス用単位電流駆動回路（リファレンス用単位電流駆動手段）７４0 ，７４1 ，…，７４m と、第２の信号線６４に設けられたリファレンスオフセット電流駆動回路（リファレンスオフセット電流駆動手段）６８と、第１信号線６２と第２信号線６４に流れる電流の差、すなわち差電流を検出する差電流検出回路（差電流検出手段）７０と、このタイミング制御回路の動作タイミングを制御する、すなわち、単位電流駆動回路６６（６６0 ，６６1 ，…，６６m ）および７４（７４0 ，７４1 ，…，７４m ）、リファレンスオフセット電流駆動回路６８および差電流検出回路７０などを制御するプリチャージ制御信号線７２とを有している。
【０２０２】
リファレンス電流制御レジスタ１１８は、フラグレジスタ１８と同様の構成を有し、（ｍ＋１）個のデータラッチ回路１１８0 ，１１８1 ，…，１１８m からなり、フラグレジスタ１８の各々のデータラッチ回路１８0 ，１８1 ，…，１８m に個々に保持されているフラグデータ（ヒット信号‘１’）の検出すべき個数ｋ0 （（ｍ＋１）＞ｋ0 ≧０）に応じてｋ0 個のデータ（ヒット信号）‘１’をｋ0 個のデータラッチ回路１１８j に保持させるためのものである。レジスタ１１８のデータラッチ回路１１８j に保持させるデータ（ヒット信号）‘１’の個数は外部から任意に設定することも可能であり、検出個数ｋ0 も必要に応じて任意に設定することができる。また、レジスタ１１８のデータラッチ回路１１８0 ，１１８1 ，…，１１８m のうちどのｋ0 個のデータラッチ回路１１８j にデータ‘１’を保持させるかも任意である。
【０２０３】
リファレンス用単位電流駆動回路７４は、単位電流駆動回路６６と全く同様の構成を有し、一方が第２信号線６４に接続され、他方が接地される２個の直列接続ＮチャンネルＭＯＳトランジスタより構成される信号印加トランジスタ７５ｃおよび制御トランジスタ７５ｄからなり、信号線６４側の信号印加トランジスタ７５ｃのゲート電極はリファレンス電流制御レジスタ１１８の各々対応するデータラッチ回路１１８j の出力端子Ｑに接続され、接地側の制御トランジスタ７５ｄのゲート電極は制御信号線７２に接続される。また単位電流駆動回路７４は、単位電流駆動回路６６と全く同様に、検出時であって制御トランジスタ７５ｄがオンし、かつ信号印加トランジスタ７５ｃはそのゲート電極にリファレンス電流制御レジスタ１１８からヒット信号‘１’が入力された時にオンした時に、第２信号線６４から単位電流ｉ0 を流すように構成されている。従って、検出個数がｋ0 個の時、リファレンス電流制御レジスタ１１８にはｋ0 個のヒット信号‘１’が保持されているので、ｋ0 個のリファレンス用単位電流駆動回路７４がオンし、全回路でｋ0 ｉ0 の電流が第２信号線に流れることになる。この単位電流ｉ0 はすべての単位電流駆動回路６６0 ，６６1 ，…，６６m および７４0 ，７４1 ，…，７４m で同一となるように構成されるが、用いられるトランジスタ６７ｃ，６７ｄおよび７５ｃ，７５ｄのばらつき、例えばプロセスによるばらつき程度のばらつきは存在してもよい。
【０２０４】
これに対し、リファレンスオフセット電流駆動回路６８は、第２信号線に所定のリファレンスオフセット電流ｉOSを流すためのものである。リファレンスオフセット電流ｉOSの値は、単位電流ｉ0 より小さい電流値（ｉ0 ＞ｉOS＞０）であって後述する差電流検出回路７０が差電流を検出可能な電流値とすればよい。この電流値ｉOSは単位電流ｉ0 および単位電流駆動回路６６および７４を構成するトランジスタ６７ｃ，６７ｄ，７５ｃ，７５ｄならびにリファレンスオフセット電流駆動回路６８を構成するトランジスタ６９ｃ，６９ｄなどの回路素子のばらつきを考慮して決めればよいが、例えば、ｉos＝０．２ｉ0 〜０．８ｉ0 とするのが好ましい。
【０２０５】
この結果、検出時に第２信号線に流れるリファレンス電流ｉr の値は、検出個数（検出するヒット信号個数）ｋ0 に応じてオンするｋ0 個の単位電流駆動回路７４に流れる電流値ｋ0 ｉ0 とリファレンスオフセット電流駆動回路６８に流れるリファレンスオフセット電流値ｉosとの和（ｋ0 ｉ0 ＋ｉos）として与えられ、単位電流値ｉ0 のｋ0 倍より大きくｋ0 ＋１倍より小さい電流値（ｋ0 ｉ0 ＜ｉr ＜（ｋ0 ＋１）ｉ0 ）となる。例えば、最後の１個のヒット信号を検出するためには、リファレンス電流値ｉr はｉ0 超２ｉ0 未満となるが、上述したように構成回路素子のばらつきと、差電流検出回路７０のマージンを考慮して、ｉr ＝１．２ｉ0 〜１．８ｉ0 とするのがよい。
【０２０６】
差電流検出回路７０のアンド回路８８の出力は前述のフラグレジスタ１８のクロック端子に接続される。さらに、このアンド回路の出力がオア回路１１４の１入力に接続され、このオア回路１１４の他方は初期値設定信号に接続されている。
【０２０７】
次に、図示例のタイミング制御回路１１６の検出動作を、フラグレジスタ１８のフラグデータのヒット信号が最後の１個となったこと、すなわち最後のヒット信号を検出する際の作用を代表例として説明する。ここで、フラグレジスタ１８には複数のデータラッチ回路１８j にヒット信号（‘１’）を持つフラグデータが保持されており、リファレンス電流制御レジスタ１１８には１個のデータラッチ回路１１８j にヒット信号（‘１’）を持つデータが保持され、各単位電流駆動回路６６および７４の単位電流値はｉ0 であり、リファレンスオフセット電流駆動回路６８のリファレンスオフセット電流値ｉosは０．５ｉ0 に設定され、従って、リファレンス電流ｉr は、単位電流ｉ0 の１．５倍、すなわち１．５ｉ0 に設定されているものとする。
【０２０８】
まず、検出に先だって、リファレンス電流制御レジスタ１１８の１個のデータラッチ回路１１８j にヒット信号‘１’をラッチホールドさせておく。また、プリチャージ制御信号線７２をＬ（ロウ：‘０’）とし、第１および第２の信号線６２および６４、従って接点（ノード）ａとｂおよび差電流検出回路７０内の接点ＡおよびＢを同様にＨ（ハイ）電位（例えば５Ｖ）にプリチャージしておく。
【０２０９】
次に、プリチャージ制御信号線７２をＨ（ハイ：‘１’）とし、ＰＭＯＳトランジスタ７８，７９，８３をオフして、制御トランジスタ６７ｄ，６９ｄ，７５ｄ，７７ｄをオンする。従って、リファレンス電流制御レジスタ１１８のヒット信号‘１’を保持している１個のデータラッチ回路１１８j に対応する単位電流駆動回路７４j の２つのＮＭＯＳトランジスタ７５ｃおよび７５ｄならびにリファレンスオフセット電流駆動回路６８の２つのＮＭＯＳトランジスタ６９ｃおよび６９ｄは共にオンすることになり、第２信号線６４にはリファレンス電流ｉr （＝１．５ｉ0 ）が流れ接点ｂの電位を低下させる。一方、（ｍ＋１）個の単位電流駆動回路６６（６６0 ，６６1 ，…，６６m ）のうち、フラグレジスタ１８のフラグデータがヒット信号‘１’であるデータラッチ回路１８j に接続された単位電流駆動回路６６j には第１信号線６２から単位電流ｉ0 が流れる。ところで、フラグレジスタ１８のフラグデータにはヒット信号‘１’が複数例えばｋ（ｋ≧２）個あることから、第１信号線６２にはｋｉ0 の電流が流れることになり、接点ａの電位もそれに応じて低下する。
【０２１０】
ここで、ｋが２より大の時は、第１信号線６２に流れる電流ｋｉ0 は第２信号線６４に流れるリファレンス電流ｉr （＝１．５ｉ0 ）より大きいため、接点Ａの電位が低下し、‘０’となるが、一方、この時、接点Ｂは‘１’を保ち、これに接続されているインバータ８４によってアンド回路８８に‘０’が出力されることになる。
【０２１１】
次に、フラグレジスタ１８内の残存するヒット信号が１個になった時に、タイミング制御回路１１６の検出動作を行うと、接点Ｂの電位がロウレベルに低下し、インバータ８４に反転され、前述のアンド回路８８に‘１’が出力される。これに対し、接点Ａの電位はＨ（ハイ）電位に維持される。
【０２１２】
以上から、タイミング制御回路１１６のインバータ８４から出力される出力信号が‘０’から‘１’に変化した時に、アンド回路８８によってこの検出結果、すなわち‘１’信号と前述のフラグレジスタ１８のリセット信号とから切り換え制御信号を得、この切り換え制御信号を使ってフラグレジスタ１８内のフラグデータをプリフェッチ回路１６内のフラグデータに切り換えればよい。
【０２１３】
なお、図２３に示すタイミング制御回路１１６では、単位電流駆動回路６６および７４ならびにリファレンスオフセット電流駆動回路６８およびダミー回路７６において、信号印加トランジスタ６７ｃおよび常オフトランジスタ７７ｃを第１信号線６２側ならびに信号印加トランジスタ７５ｃおよび常オントランジスタ６９ｃを第２信号線６４側に設け、制御トランジスタ６７ｄ，７５ｄ，６９ｄおよび７７ｄを接地側に設けているが、これに限定されず、逆に配置してもよい。しかし、図示例の配置とするほうが好ましく、こうすることにより検出動作開始時において、第１信号線６２および第２信号線６４からオンしていない（ヒット信号‘１’がゲート電極に入力されていない）トランジスタ６７ｃ，７７ｃおよび７５ｃにそれぞれ接続されている制御トランジスタ６７ｄ，７７ｄおよび７５ｄへのオン電流により第１および第２信号線６２および６４の電圧の低下を防止し、接点ＡおよびＢの分離開始時、すなわち接点ａまたはｂの電位が３．６Ｖを切る時点での接点ａおよび接点ｂの電位差を大きくして、差電流検出回路７０の動作を安定かつ確実なものとすることができる。
【０２１４】
また、上述の例では、両単位電流駆動回路６６および７４を流れる単位電流は同一の単位電流ｉ0 であるが、これに限定されず、異なっていてもよい。この時は、リファレンスオフセット電流ｉosの値に応じて、リファレンス電流ｉr を定めればよい。また、リファレンスオフセット電流値ｉosを単位電流ｉ0 より小さい値としているが、これに限定されず、リファレンス電流制御レジスタ１１８においてヒット信号‘１’を保持させるデータラッチ回路の個数および１つのリファレンス用単位電流駆動回路７４に流すリファレンス用単位電流の値に応じて適宜決めてもよい。
タイミング制御回路１１６は、基本的に以上のように構成される。
【０２１５】
図示例のタイミング制御回路１１６は、図８に示す符号化回路１１に適用することができるが、これに限定されず、複数の検出ノードの任意個数の検出を必要とする回路に適用可能である。
【０２１６】
以上詳述したように、図示例の半導体集積回路によれば、第２の信号線に設けられるリファレンス用単位電流駆動手段を制御するための、所定個数の所定データ、例えばデータ‘１’をリファレンス電流制御レジスタに保持させることにより、第１の信号線に設けられる信号用単位電流駆動手段を制御するための、データレジスタの所定データの個数を検知することができる。従って、図示例の半導体集積回路は、連想メモリなどの符号化回路の符号化終了を予測するタイミング制御回路として好適に用いることができる。
【０２１７】
次に、図２４〜図２７を参照して、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となるさらに別の符号化回路について説明する。
【０２１８】
図示例の連想メモリにおては、一致検索時に連想メモリ装置を構成する連想メモリブロックに検索データが入力されると、複数の連想メモリサブブロックにわたって一致検索が行われる。この時、各連想メモリサブブロック毎にその結果、すなわち複数の連想メモリワードに前記検索データと一致する一致信号（ヒット信号）を含むフラグデータが保持されるとともに、優先順位付サブブロック符号化回路によって最も優先順位の高い連想メモリサブブロックが選択され、そのフラグデータが優先順位付メイン符号化回路のフラグレジスタに転送され、保持される。このフラグレジスタ内に記憶されたフラグデータ中のヒット信号をこの優先順位付メイン符号化回路は所定の優先順位に従って符号化し、ヒットアドレスを出力する。そして、この優先順位付メイン符号化回路では、このヒットアドレスの出力に伴ってフラグレジスタ内のヒット信号が順次リセットされている。
【０２１９】
一方、このフラグデータの符号化中に、前記優先順位付サブブロック符号化回路によって選択された次の優先順位の連想メモリサブブロックのフラグデータを先の優先順位の連想メモリサブブロックのフラグデータの全ヒット信号の終了に先だってフラグレジスタに入力する準備をするために、このフラグレジスタのヒット信号の終了を予め検知するタイミング検知制御回路によりフラグレジスタ内に保持されているヒット信号の個数を検知する。例えば、この残存するヒット信号の個数が最後の１個になった時、この検知信号に応じて各連想メモリワード毎に設けられるフラグデータセンス回路によって次の優先順位の連想メモリサブブロックのフラグデータを検出し、このフラグデータの全ヒット信号の符号化終了を待って直ちに次の優先順位の連想メモリサブブロックのフラグデータをフラグレジスタに入力して、このフラグデータ内のヒット信号の符号化を開始する。これらの手順を順次繰り返して、前記連想メモリブロック全体のヒット信号の符号化、すなわちアドレス出力を行う。
【０２２０】
図示例の符号化回路によれば、上述したように、次に符号化すべき連想メモリサブブロックのフラグデータ中のヒット信号が、先の連想メモリサブブロックのフラグデータのヒット信号の符号化中にフラグデータセンス（検出）回路によってフラグレジスタへの入力の準備がなされているので、前記ヒット信号を連想メモリサブブロックから優先順位付メイン符号化回路のフラグレジスタまで転送する時間をなくすことができるし、フラグレジスタ内のフラグデータの最後のヒット信号の符号化開始直前にヒット信号が最後の１個になったことを検出してフラグデータセンス回路によって次の優先順位の連想メモリサブブロックのフラグデータを検出し、次の符号化サイクルでこれを取り込み、入力されたフラグデータ中のヒット信号の符号化を行うことができるので、符号化サイクルにロスが生じることがないので、連想メモリブロック全体ひいては連想メモリ全体の符号化時間を短縮することができ、連想メモリ装置の一致検索動作を高速化できる。
【０２２１】
すなわち、図示例の符号化回路は、１つの連想メモリサブブロックのフラグデータを符号化しているときに符号化すべきフラグデータのヒット信号数が最後の１つになると、次に符号化すべき連想メモリサブブロックのフラグデータが検出線に取り出され、符号化の終了とともにフラグレジスタに取り込まれる。このため、フラグデータを効率的に速やかに符号化でき、また、プリフェッチ回路等が不要でチップ上の占有面積も小さくできる。
【０２２２】
以下に、本発明の前提となる符号化回路を添付の図面に示す好適実施例に基づいて詳細に説明する。
【０２２３】
図２４から図２７は、本発明の前提となるさらに別の実施例にかかる符号化回路を表し、図２４は本発明の前提となる符号化回路の連想メモリ部分を含む構成図、図２５が部分回路図、図２６がその主要回路の回路図、図２７がタイミングチャートである。これらの図に示す符号化回路１２０が、図８〜１０に示す符号化回路１１と異なる点は、プリフェッチ回路１６がないだけで、基本的に同一の構成を有しているので、同一の構成要素には同一の番号を付し、その説明を省略する。なお、図２４には、フラグデータセンス回路１２６に関して少し詳しく述べられているが、この構成も符号化回路１０と異なるものではない。また、同図には所要のサブブロック３２のレジスタ３６を選択するためのスイッチ回路１２４およびＡＮＤ回路１２８が図示されている。
【０２２４】
図２４は、本発明の前提となる符号化回路が適用された連想メモリブロックのさらに別の実施例の概略図である。同図に示すように、符号化回路１２０は、優先順位付符号化回路（以下、メインプライオリティエンコーダあるいはメインエンコーダという）１２２と、優先順位付サブブロック符号化回路（以下、サブブロックプライオリティエンコーダまたはサブブロックエンコーダという）１４と、フラグデータを検出するためのスイッチ回路１２４、フラグデータセンス回路１２６およびＡＮＤ回路１２８とを有し、メインエンコーダ１２２は、フラグレジスタ回路１８と、メインプライオリティ回路２０と、メインエンコード回路２２と、タイミング制御回路６０とを有し、サブブロックエンコーダ１４は、データラッチ回路２４と、サブプライオリティ回路２６と、サブエンコード回路２８とを有する。
【０２２５】
図２４において、３０は連想メモリブロック（以下、メモリブロックという）であり、前述したように、メモリブロック３０は複数（本実施例ではｎ個、Ｂ1 ，Ｂ2 ，…，Ｂn ）の連想メモリサブブロック（以下、サブブロックという）３２を有する。メモリブロック３０には、各サブブロック３２についてｎ個（Ａ1 ，Ａ2 ，…，Ａn ）のＡＮＤ回路１２８が設けられ、また、各サブブロック３２の後述する連想メモリワードに対応して（ｍ＋１）個（Ｃ0 ，Ｃ2 ，…，Ｃm ）のフラグデータセンス回路１２６が設けられる。
【０２２６】
まず、図示例の符号化回路１２０において、最も特徴的な部分であるフラグデータ検出のためのスイッチ回路１２４、フラグデータセンス回路１２６およびＡＮＤ回路１２８について説明する。
【０２２７】
スイッチ回路１２４は、サブブロック３２（Ｂ1 ）のレジスタ３６（Ｒ0 ）に接続される１つ（Ｓ0 ）を代表例として図示するように、２つのＮＭＯＳトランジスタ１２４ａ，１２４ｂを直列に接続して構成される。各スイッチ回路１２４はそれぞれ、一方のトランジスタ１２４ａの電極（例えば、ドレイン電極）が対応する検出線Ｌ（Ｌ0 ，Ｌ1 ，…，Ｌm ）に並列に結線され検出線Ｌを介してフラグデータセンス回路１２６に接続され、このトランジスタ１２４ａのゲート電極は各サブブロック３２において並列にＡＮＤ回路１２８に接続される。また、他方のトランジスタ１２４ｂはゲート電極が対応するレジスタ３６の出力端に接続され、このトランジスタ１２４ｂの電極（例えば、ソース電極）が接地される。このスイッチ回路１２４は、レジスタ３６がヒット信号（‘１’）を出力し、かつ、ＡＮＤ回路１２８からハイレベル信号‘１’が入力されるときに、両トランジスタ１２４ａ、１２４ｂはオンし、検出線Ｌを接地して電荷を放出し検出線Ｌの電位を低下させる。一方、レジスタ３６の保持データが‘０’であるとき、たとえＡＮＤ回路１２８からハイレベル信号‘１’が入力されても、スイッチ回路１２４のトランジスタ１２４ｂがＯＦＦしたままであるので、検出線Ｌの電位はこのスイッチ回路１２４によって変化しない。
【０２２８】
フラグデータセンス回路１２６は、自己駆動型のセンスアンプにより構成され、検出線Ｌを予め所定電位にプリチャージするとともに、このプリチャージされた検出線の電位（電位の変動）を検出して、レジスタ３６内に保持されていたデータ（ヒット信号‘１’または不一致信号‘０’）を検出するためのものである。このフラグデータセンス回路１２６は、それぞれ、１つ（Ｃ0 ）を代表例として符号を付すように、検出線Ｌに設けられ、２つのＰＭＯＳトランジスタ１２６ａ，１２６ｂと、インバータ１２６ｃとを有する。これらフラグデータセンス回路１２６は、各ＰＭＯＳトランジスタ１２６ａ，１２６ｂの一方の電極（例えばドレイン）が電源に、他方の電極（例えばソース）が検出線Ｌに接続され、一方のトランジスタ１２６ａのゲートが並列にメインエンコーダ１２２の図２６に示すタイミング回路６０に、他方のトランジスタ１２６ｂのゲートが検出線Ｌにインバータ１２６ｃの出力側で接続する。インバータ１２６ｃは、検出線Ｌに介設され、反転信号をメインエンコーダ１２２のフラグレジスタ回路１８に出力する。このフラグデータセンス回路１２６は、後述するタイミング回路６０の出力レベル（ＣＳ１）がローレベル（Ｌ：‘０’）時にＰＭＯＳトランジスタ１２６ａ，１２６ｂをＯＮして検出線Ｌをプリチャージする。
【０２２９】
この後、タイミング回路６０が１つのサブブロック３２のフラグデータの符号化終了タイミング予告信号、例えば現在符号化中のサブブロック３２のフラグデータ中のヒット信号が最後の１個であることを示す信号を出力し、出力レベル（ＣＳ１）がハイレベル（Ｈ：‘１’）となると、フラグデータセンス回路１２６はトランジスタ１２６ａをＯＦＦし、検索線Ｌをプリチャージされたハイ（Ｈ）の状態に保持する。なお、この時トランジスタ１２６ｂはＯＮ状態である。一方、この時には、出力レベル（ＣＳ１）がハイレベルであるので、サブブロックエンコーダ１４のデータラッチ回路２４に‘１’がラッチされている次の優先順位のサブブロック３２に対応して設けられたＡＮＤ回路１２８からはハイレベル信号（Ｈ：‘１’）が出力される。その結果、選択されたサブブロック３２のレジスタ３６中のデータがヒット信号‘１’であるワードのスイッチ回路１２４の両トランジスタ１２４ａ，１２４ｂがＯＮされ、プリチャージされていた電荷が検索線Ｌからディスチャージされ、検索線Ｌの電位が低下し、ハイ（Ｈ）の状態からロウ（Ｌ）の状態に変化する。フラグデータセンス回路１２６は、この検索線Ｌの電位の低下（変化）を検知し、レジスタ３６のヒット信号をフラグレジスタ回路１８に出力する。すなわち、インバータ１２６ｃは検索線Ｌのロウ（Ｌ）電位を反転し、ＰＭＯＳトランジスタ１２６ｂをＯＦＦし、ハイ（Ｈ）電位のヒット信号‘１’をメインエンコーダ１２２のフラグレジスタ１８の入力信号線に入力する。一方、タイミング回路６０の出力レベル（ＣＳ１）がハイ（Ｈ）レベルである間にも、選択されたサブブロック３２のレジスタ３６中のデータが不一致信号‘０’である場合には、スイッチ回路１２４がＯＮしないので、検索線Ｌの電位は変化せず、フラグデータセンス回路１２６のＰＭＯＳトランジスタ１２６ａ，１２６ｂはＯＮしたままであるので、フラグデータセンス回路１２６からはインバータ１２６ｃで反転されたロウ（Ｌ）状態の不一致信号‘０’をメインエンコーダ１２２のフラグレジスタ１８の入力信号線に入力する。
【０２３０】
こうして、フラグデータセンス回路１２６によって、先の優先順位のサブブロック３２のフラグデータの符号化されるヒット信号が最後の１個になってからこの最後のヒット信号の符号化が終了するまでの間に、次の優先順位のサブブロック３２のフラグデータを検出する。この後、最後のヒット信号の符号化が終了し、その信号がフラグレジスタ１８のクロック端子に入力されると、この検出されたフラグデータがフラグレジスタ１８にただちに入力され、ラッチされる。
【０２３１】
ＡＮＤ回路１２８は、タイミング回路６０からの符号化終了タイミング予告信号（ＣＳ１）とサブブロックエンコーダ１４のデータラッチ回路のラッチデータ（またはリセット出力）との論理積を演算し、対応するサブブロック３２の全スイッチ回路１２４を制御するためのもので、予告信号（ＣＳ１）およびラッチデータが共にハイ（Ｈ）レベル‘１’であるときのみ、ＡＮＤ回路１２８の出力もハイ（Ｈ）レベル‘１’となり各スイッチ回路１２４のトランジスタ１２４ａをオンする。この時、サブブロック３２のレジスタ３６に保持されているデータがヒット信号（‘１’）であればトランジスタ１２４ｂもオンし、スイッチ回路１２４がオンして、検索線Ｌは接地され、電位が低下してハイレベルからロウレベルに変化するが、他方、不一致信号（‘０’）であればトランジスタ１２４ｂはオフしたままであり、スイッチ回路１２４はオンせず、検索線Ｌの電位は変化しない。
【０２３２】
メインエンコーダ１２２は、図２４および図２５に示すようにフラグレジスタ回路１８、メインプライオリティ回路２０、メインエンコード回路２２およびタイミング回路６０を有する。フラグレジスタ１８は、検出線Ｌに対応した（ｍ＋１）個のデータラッチ部分（便宜上、検出線Ｌに対応した添字を付す）を有し、これらラッチ部分がそれぞれタイミング回路６０からタイミング信号に応じ所定の優先順位で入力する検出線Ｌのデータを保持し、メインプライオリティ回路２０から入力する信号でリセットされる。このフラグレジスタ回路１８は、メインエンコード回路２２が全てのヒット信号をエンコードするまでの間フラグデータを保持し、優先順位の高いワードアドレスのヒット信号が符号化される毎にワードアドレスのヒット信号をリセットする。
【０２３３】
なお、この実施例ではフラグレジスタ１８はＤラッチを用いるが、１ビットを一時的に保持できるものであれば任意に選択できる。
【０２３４】
ところで、図示例の符号化回路１２０に用いられる、図２５に示すメインエンコーダ１２２と図１に示す符号化回路１０に用いられる、図２に示すメインエンコーダ１２とは、タイミング回路６０を有している点とプライオリティ回路２０のノードＱm （ＯＲ出力）がインバータ４９を介してフラグレジスタ１８に接続されていない点で異なる。
【０２３５】
すなわち、図２に示すメインエンコーダのプライオリティ回路２０は、フラグレジスタ１８に保持されたフラグデータの最後のヒット信号をリセットした後ノードＱm から出力される終了データ‘０’を使ってフラグレジスタ１８のフラグデータをプリフェッチ回路１６にあらかじめラッチホールドされている次の優先順位のサブブロック３２のフラグデータと切り換えている。すなわち、図２に示すメインエンコーダ１２では、このノードＱm 出力‘０’をインバータ４９で反転し、その反転値‘１’をフラグレジスタ１８に入力し、プリフェッチ回路１６にラッチホールドされていた次の優先順位のサブブロック３２のフラグデータをフラグレジスタ回路１８の各々対応する回路に入力して保持することになる。この後、空いた前記プリフェッチ回路１６には、予めサブブロックエンコーダ１４によって選択されていた次の次の優先順位のサブブロック３２のフラグデータがレジスタ３６から読み込まれ、ラッチホールドされる。こうして、プライオリティ回路２０は、先の優先順位のサブブロックのフラグデータの処理を終了してから、次の優先順位のサブブロックのフラグデータがそのサブブロック３２のレジスタ３６から転送されてくる間、待機する必要がないので、エンコードを効率よく行うことができる。しかしながら、この方法では、フラグレジスタ１８に保持されている先の優先順位のサブブロック３２のフラグデータの最後のヒット信号がリセットされてから、フラグレジスタ１８の内容をプリフェッチ回路１６に保持されている次の優先順位のフラグデータと切り換えるので、リセットによって開始されるプライオリティエンコードサイクルにおいて、サブブロックのフラグデータの切り換え時にエンコードできないサイクルを生じてしまい、エンコード出力をできない時間が生じる恐れがある。
【０２３６】
これに対して、図示例の符号化回路１２０においては、図２６に示すタイミング制御回路６０によって、フラグレジスタ１８内のフラグデータのヒット信号の個数を検知しておき、最後の１個になったことを検出して、この検出結果（符号化終了予告信号）を入力信号として、メインプライオリティ回路２０における最後のヒット信号をリセットするかわりに、最後の１個のヒット信号の符号化中にフラグデータセンス回路１２６によって次の優先順位のサブブロック３２のフラグデータを検出し、符号化終了と同時にフラグレジスタ１８に入力する。従って、図示例の符号化回路１２０では同一サブブロックのフラグデータにおいても、サブブロックのフラグデータの切り換え時であっても、同じサイクルでプライオリティエンコードを行うことができる。もちろん、図示例の符号化回路１２０においてはフラグレジスタ１８におけるサブブロックのフラグデータの最後の１個のヒット信号の符号化中にフラグデータセンス回路１２６によって、予めサブブロックエンコーダ１４によって選択された次の優先順位のサブブロック３２のレジスタ３６のフラグデータの内容を検出し、符号化終了時にフラグレジスタ１８に入力することができるので、プリフェッチ回路が不要であるばかりか、フラグデータの読み込みの時間（フラグデータを各サブブロック３２からメインエンコーダ１２まで転送する時間）をなくし、エンコード処理と無関係なものとし、エンコードの効率を上げることができる。なお、図示例の符号化回路１２０においては、フラグレジスタ１８のフラグデータの最後のヒット信号はリセットを行わなくてもよい。
【０２３７】
図示例の符号化回路１２０の特徴的な部分の１つであるタイミング制御回路６０が図２６に示される。
【０２３８】
同図に示すタイミング制御回路６０は、図１０に示すタイミング制御回路６０と同一の構成を有する。このタイミング制御回路６０において、この接点Ｂからは出力線が延出し、インバータ８４を介してアンド回路８８に入力され、この出力がオア回路１１４を介して前述したフラグレジスタ１８の各データラッチ回路１８0 ，１８1 ，…，１８m のクロックに接続されている。各オア回路１１４のもう一方の入力にはフラグレジスタ１８の初期値設定のための初期値設定信号が入力される。また、このインバータ８４の出力は、オア回路１３０を介して各ＡＮＤ回路１２８に接続される。なお、アンド回路８８のもう一方の入力には、前述のフラグレジスタ１８のリセット信号が入力されている。
【０２３９】
前述したようにタイミング制御回路６０によるフラグレジスタ１８内に保持されているフラグデータのヒット信号‘１’の個数検出が行われるが、タイミング制御回路６０のインバータ８４から出力される出力信号が‘０’であればフラグレジスタ１８内に保持されているヒット信号‘１’が２個以上、出力信号が‘１’であればヒット信号‘１’が１個以下であることが分かる。そして、図示例では、オア回路１３０から出力されるＣＳ１信号をＡＮＤ回路１２８およびフラグデータセンス回路１２６に導き、ＣＳ１信号が‘１’である時、すなわち、残存する最後の１個のヒット信号‘１’をエンコードしている時に、次のメモリサブブロック３２のフラグデータをスイッチ回路１２４、ＡＮＤ回路１２８およびフラグデータセンス回路１２６によって検出するために、メモリサブブロック３２のフラグデータの読み出しおよび切り換えを速やかに行える。
【０２４０】
一方、サブブロックエンコーダ１４では、連想メモリサブブロック３２（Ｂ1 ，Ｂ2 ，…，Ｂn ）毎に行われる一致検索時に、各メモリサブブロック３２における一致検索結果すなわちフラグデータがレジスタ３６に保持されるとともに、サブブロック３２内の図示しないＯＲ回路等によって、サブブロック３２内に検索データと一致を示したメモリワード３４（ヒットワード、またはマッチワード）が存在するか否かを示すサブブロックヒット信号を発生させ、これを対応するサブブロック３２のデータラッチ回路２４に保持させる。
【０２４１】
一方、このサブブロックエンコーダ１４のサブプライオリティ回路２６では、所定の優先順位に従って、図示例では左側から右側に向って、データラッチ回路２４にラッチホールドされたブロックヒット信号がヒット信号（‘１’）であるサブブロック３２を選択し、そのブロックアドレスのみに‘１’を持つプライオリティ付出力信号を出力する。この出力信号は、後段のサブエンコード回路２８によって符号化されエンコード出力されるとともに、当該サブブロック３２に対応したＡＮＤ回路１２８に出力される。そして、前述したように、このＡＮＤ回路１２８は、ブロックヒット信号が‘１’であるとともに前記タイミング回路６０からハイレベル信号が入力される時にのみスイッチ回路１２４にハイレベル信号を出力する。この結果、ヒット信号‘１’のメモリワード３４に対応したスイッチ回路１２４は検出線Ｌを接地する。こうして予めフラグデータセンス回路１２６により検出線Ｌにチャージされた電荷をディスチャージし、フラグデータセンス回路１２６は検出線Ｌの電位の低下、すなわちハイ電位からロウ電位への変化を検出し、そのインバータ１２６ｃにより反転したハイ電位のヒット信号がフラグレジスタ１８に入力される。この後、メインエンコーダ１２２の最後の１個のヒット信号の終了信号によって、これらのヒット信号（フラグデータ）はフラグレジスタ１８に入力される。
【０２４２】
次に、図示例のタイミング制御回路６０を用いたメインエンコーダ１１２のエンコードタイミングのタイムチャートの一例を図２７に示し、これを参照して、符号化回路１２０の符号化動作を説明する。
【０２４３】
なお、同図において、（ａ）はメインエンコーダ１２のエンコードタイミングを示すエンコード信号、（ｂ）はフラグレジスタ１８のヒット信号‘１’のリセットタイミングを示すリセット信号、（ｃ）はタイミング検出回路６０のヒット信号の残存個数の検出タイミングを示す検出信号、（ｄ）はタイミング検出回路６０の検出出力信号（終了予告信号）、（ｅ）はタイミング検出回路６０からオア回路１３０を介してＡＮＤ回路１２８およびフラグデータセンス回路１２６に入力する信号（ＣＳ１）、（ｆ）は次の優先順位のサブブロック３２のフラグセンス出力信号（フラグデータセンス回路１２６の出力データ信号）、（ｇ）は次のフラグデータのフラグレジスタ１８へのシフトタイミングを示すフラグデータ切り換え制御信号（終了信号）を表わす。
【０２４４】
同図から明らかなように、フラグレジスタ１８内に保持されていた同じフラグデータ内のヒット信号を所定のプライオリティでエンコードしている間はヒット信号のリセットパルス（ｂ）の立上がりのタイミングから所定時間してエンコードサイクル（ａ）および検出サイクル（ｃ）が開始される（立ち上がる）ように構成されている。しかし、タイミング制御回路６０がエンコードパルス（ａ）またはリセットパルス（ｂ）およびインプットパルス（ｇ）によって起動される検出タイミング（ｃ）において最後のヒット信号を検出し、終了予告信号である接点Ｂからの検出出力信号（ｄ）が図２７（ｄ）のようにロウレベルに変化すると、ＡＮＤ回路１２８およびフラグデータセンス回路１２６に検出出力信号（ｄ）の反転信号である図２７（ｅ）に示すＣＳ１信号（ｅ）が入力される。このため、フラグデータセンス回路１２６は検出線Ｌを予めプリチャージした後、また、ＡＮＤ回路１２８からハイレベル信号が入力されたスイッチ回路１２４がレジスタ３６にヒット信号を保持しているワードに対応する検出線Ｌを接地してプリチャージされた電荷をディスチャージし他方、ヒット信号を保持していないワードに対応する検出線Ｌの電位は変化せず、プリチャージされた電荷は変化せず、検出線Ｌはレジスタ３６内のフラグデータと逆にその電位を変化させ、図２７（ｆ）に示すように出力信号が確定される。なお、図２７（ｆ）に示すフラグセンス出力（ｆ）において、ヒット信号‘１’を持つフラグデータおよびヒット信号を持たないフラグデータを合わせて示す。
【０２４５】
そして、切り換え制御信号（ｇ）に同期してフラグデータセンス回路１２６の出力信号が、フラグレジスタ１８に取り込まれ、連続するエンコードサイクルにおいて、このフラグデータを用いてメインプライオリティ回路２０およびメインエンコード回路２２によるエンコード動作を行い、エンコードアドレスを出力する。こうしてメインエンコーダ１２２は連続した所定のサイクルでエンコード動作を行い、エンコード出力をする。ここで、切り換え制御信号（ｇ）は、検出出力（ｄ）の反転データとリセット（ｂ）のＡＮＤ（論理積）により出力される。
【０２４６】
この後は、サブブロックエンコーダ１４のサブエンコード回路２８からの符号化されたブロックアドレス出力と、メインエンコーダ１２２のメインエンコード回路２２からの符号化されたワードアドレスとを両方合わせて符号化論理アドレスとして順次出力していく。そして、最終サブブロック３２または最低優先順位のサブブロック３２が選択されると、サブブロックエンコーダ１４の処理は終了し、メインエンコーダ１２２による全ヒット信号の符号化が終わると、全ての連想メモリサブブロック３０の全てのメモリワード３４のヒット信号を論理アドレスとして出力して、一致検索動作を終了する。
【０２４７】
以上詳述したように、図示例の符号化回路によれば、連想メモリ装置の連想メモリブロックの検索データとの一致検索を行う際、この連想メモリブロックを構成する複数の連想メモリサブブロックのうちの第１番目の連想メモリサブブロックの一致検索結果、例えば複数の連想メモリワードに前記検索データと一致する一致信号（ヒット信号）が、例えばレジスタ等の保持手段に保持されるとともに前記連想メモリサブブロックに前記検索データと一致する連想メモリワードの存在を示すブロックヒット信号を発生する。続いて、優先順位付サブブロック符号化回路がこのブロックヒット信号を受けて最も優先順位の高い連想メモリサブブロックを選択し、サブブロックアドレスを発生する。そして、この選択された最高優先順位のサブブロックのヒット信号（全ワードについて同時に）が優先順位付符号化回路に転送される。この後、優先順位付符号化回路は、所定の優先順位で前記ヒット信号を符号化し、ワードアドレスを出力する。この符号化中に、次の優先順位の連想メモリサブブロックを前記優先順位付サブブロック符号化回路によって選択し、データ切換タイミング制御回路によって検知して、先の優先順位のサブブロックのフラグデータのエンコード終了までの間に、例えばエンコードすべきヒット信号が最後の１つになってから、エンコード終了後直ちにこのサブブロックのレジスタ等の保持手段に保持されているヒット信号データを検出し、エンコード終了と同時に優先順位付符号化回路のデータ保持回路に入力する。こうして、前記優先順位付符号化回路は、前記ヒット信号の符号化を終了した後、連続したサイクルで直ちに次の優先順位のサブブロックのフラグ信号データの符号化を開始し、符号化し、ワードアドレスを出力する。このワードアドレス出力とサブブロックアドレス出力とを合わせて論理アドレスを出力する。
【０２４８】
従って、図示例の符号化回路によれば、複数の連想メモリサブブロックから構成される連想メモリブロックであっても、複数の連想メモリサブブロック間の切り換わりに時間遅れ（待ち時間）がなく高速処理が可能となり、多数の連想メモリサブブロックからの出力信号を効率のよく連続したサイクルで符号化することができる。また、図示例の符号化回路によれば、プリフェッチ回路等のバッファが不要でチップ上の占有面積を小さくでき、さらに、消費電力も低減できる。
【０２４９】
以上、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となるプリフェッチ回路付符号化回路および本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路およびこれをタイミング制御回路として用いるプリフェッチ回路付およびフラグデータセンス回路付の符号化回路は基本的に以上のように構成されるが、これらは上述した実施例に限定されるわけではない。すなわち、タイミング回路は、連想メモリ（ＣＡＭ）の符号化回路に適用され、最後の１個のヒット信号を予め検出するものに限定されず、検出するヒット信号の個数はいくつであってもよいし、適用される回路もＳＲＡＭ、ＤＲＡＭなどのメモリの符号化回路であってもよい。また、タイミング制御回路は、ダミー回路を有しているが、これらのダミー回路は必ずしも設ける必要はない。さらに、タイミング制御回路は、フラグレジスタ１８に保持されているヒット信号‘１’の個数を検出するものであるが、信号‘０’の個数を検出するものであってもよい。さらに、タイミング制御回路は、ヒット信号‘１’が入力される電流駆動手段により信号線のディスチャージを検出しているが、逆に、検出タイミングで、電流駆動手段によるチャージアップを検出してもよい。この場合は、差電流検出手段は、２本の信号線の電位の低下ではなく、上昇で差電流を検出するように構成することができる。
【０２５０】
また、図示例の種々の半導体集積回路を組み合わせて用いてもよいし、また、これらを図示例の種々の符号化回路に組み合わせてもよいことはもちろんである。
さらに、本発明の前提となる半導体集積回路は、符号化回路のタイミング制御回路として用いられるものに限定されず、単に、少なくとも１つの電流駆動手段が接続された信号電流検出線と基準電流駆動手段が接続された基準電流駆動線とに流れる差電流を検出して、その変化タイミングを検出するセンスアンプとして用いてもよい。また、ＤＲＡＭおよびＳＲＡＭなどのメモリの読み出し用センスアンプとして用いてもよい。
【０２５１】
次に、図１〜図２７に示す本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路および半導体集積回路を参考にしながら、図２８および図２９を参照して、本発明の連想メモリ装置に適用される符号化回路について詳細に説明する。
【０２５２】
本発明の符号化回路を適用する連想メモリ装置において、検索データと各メモリワードの内容との一致検索が終了すると、その一致検索結果であるヒットフラグが各メモリワードに対応したレジスタに格納される。レジスタに格納されたヒットフラグは、各サブブロック毎にサブブロック内の全てのヒットフラグの論理和が取られ、各サブブロックのサブブロックヒット信号としてサブエンコーダに保持される。
【０２５３】
サブエンコーダでは、各サブブロックのサブブロックヒット信号の内、優先順位に応じて、１つのアクティブ状態のサブブロックヒット信号だけがアクティブ状態として順次出力され、優先順位に応じたサブブロックのヒットフラグを選択するためのＡＮＤ回路に入力されるとともに、このアクティブ状態のサブブロックヒット信号に対応したサブブロックのアドレスが順次符号化される。
【０２５４】
ここで、メインエンコーダのタイミング制御回路の制御によって、１つだけアクティブ状態として出力されたサブブロックヒット信号に対応したＡＮＤ回路の出力信号がアクティブ状態となり、このＡＮＤ回路に対応したサブブロックの各レジスタに対応したスイッチ回路が選択される。選択されたスイッチ回路に対応したヒットフラグが検出線に出力され、検出線上に出力されたヒットフラグがセンス回路によって検出され、タイミング制御回路から出力されるタイミング制御信号によって、センス回路によって検出されたヒットフラグがメインエンコーダに保持される。
【０２５５】
メインエンコーダでは、保持されたヒットフラグの内、優先順位に応じて、１つのアクティブ状態のヒットフラグだけがアクティブ状態として順次出力され、このアクティブ状態のヒットフラグに対応したメモリワードのアドレスが順次符号化される。
このようにして、本発明の符号化回路においては、サブブロックのアドレスとメモリワードのアドレスとを合わせて、ヒットフラグに対応したメモリワードのアドレスが順次出力される。
【０２５６】
また、本発明の符号化回路を適用する連想メモリ装置には、メモリワードの内容が一致検索の対象となる有効なものか、あるいは、無効なものかを示すエンプティフラグを格納するためのレジスタが、各メモリワードに対応して設けられており、上記ヒットフラグに対応したメモリワードのアドレスを出力させる場合と同じように、エンプティフラグに対応したメモリワードのアドレスを順次出力することができる。
【０２５７】
以下に、添付の図面に示す好適実施例に基づいて、本発明の連想メモリ装置に適用される符号化回路を詳細に説明する。
【０２５８】
図２８は、本発明の符号化回路が適用された連想メモリブロックの一実施例の概略図である。
同図において、まず、連想メモリブロック（以下、メモリブロックという）３０は、複数個の連想メモリサブブロック（以下、サブブロックという）３２（Ｂ1 ，Ｂ2 ，…，Ｂn ）を有する。また、それぞれのサブブロック３２は、複数個の連想メモリワード（以下、メモリワードという）３４（Ｗ0，Ｗ1 ，…，Ｗm ）と、各メモリワード３４のヒットフラグを各メモリワード３４毎に保持するレジスタ３６ａ（Ｒ0a，Ｒ1a，…，Ｒma）と、各メモリワード３４のエンプティフラグを各メモリワード３４毎に保持するレジスタ３６ｂ（Ｒ0b，Ｒ1b，…，Ｒmb）とを有する。
【０２５９】
ここで、ヒットフラグは、各メモリワード３４の内容と検索データとの一致検索の結果を示すもので、一致検索の後、各メモリワード３４に対応したレジスタ３６ａに保持される。なお、ヒットフラグは、この実施例においては、例えば一致するときに‘１’（アクティブ状態）、不一致のときに‘０’（非アクティブ状態）になるものとする。
【０２６０】
また、エンプティフラグは、メモリワード３４の内容が、検索の対象となる有効なものか、あるいは、検索の対象とはならない無効なものかを示すもので、例えばメモリワード３４の内容が消去された時に、あるいは、メモリワード３４に新しいデータが書き込まれた時に、各メモリワード３４に対応したレジスタ３６ｂに保持される。エンプティフラグは、ここでは、例えばメモリワード３４に有効なデータが保持されている時に‘０’（非アクティブ状態）、保持されていない、すなわち、メモリワード３４の内容が消去された時に‘１’（アクティブ状態）になるものとする。
【０２６１】
なお、図示を省略しているが、各々のサブブロック３２は、各サブブロック３２内の全メモリワード３４のヒットフラグの論理和を取り、これをサブブロックヒット信号として出力するＯＲ回路、および、各サブブロック３２内の全メモリワード３４のエンプティフラグの論理和を取り、これをサブブロックエンプティ信号として出力するＯＲ回路を有しており、これらのＯＲ回路の出力であるサブブロックヒット信号およびサブブロックエンプティ信号は、それぞれ後述する２つのサブエンコーダのデータラッチ回路に保持される。
メモリブロック３０は、基本的に、以上のようなものである。
【０２６２】
次に、符号化回路１０ａは、メモリワード３４のアドレスを符号化するメインプライオリティエンコーダ（以下、メインエンコーダという）１２ａと、サブブロック３２のアドレスを符号化する２つのサブプライオリティエンコーダ（以下、サブエンコーダという）１４ａ，１４ｂと、最優先順位のサブブロック３２のヒットフラグまたはエンプティフラグ（以下、これらをまとめてフラグデータという）を選択的に出力するためのスイッチ回路（切換回路）１２４（Ｓ0a，Ｓ1a，…，Ｓna），１２５（Ｓ0b，Ｓ1b，…，Ｓnb）、センス回路１２６（Ｃ0 ，Ｃ1 ，…，Ｃm ）、ＯＲ回路１２７およびＡＮＤ回路（選択回路）１２８（Ａ1a，Ａ2a，…，Ａna），１２９（Ａ1b，Ａ2b，…，Ａnb）とを有する。
【０２６３】
符号化回路１０ａにおいて、メインエンコーダ１２ａは、フラグレジスタ回路１８と、メインプライオリティ回路２０と、メインエンコード回路２２と、タイミング制御回路６０ａとを有する。
【０２６４】
ここで、フラグレジスタ回路１８は、最優先順位のサブブロック３２から出力される（ｍ＋１）個のフラグデータを保持するものである。フラグレジスタ回路１８に保持されたフラグデータの内、アクティブ状態のフラグデータに対応するメモリワード３４のアドレスが順次符号化される。符号化が終了したフラグデータは非アクティブ状態にリセットされ、全てのアクティブ状態のフラグデータに対応したメモリワード３４のアドレスが符号化された後、フラグレジスタ回路１８には、次の優先順位のサブブロック３２の（ｍ＋１）個のフラグデータが保持される。なお、フラグレジスタ回路１８としては、（ｍ＋１）個の１ビットのデータを一時的に保持し、１ビット毎にリセットすることができるものであれば何でもよく、例えばラッチやレジスタ等を用いることができる。
【０２６５】
メインプライオリティ回路２０は、フラグレジスタ回路１８に保持された（ｍ＋１）個のフラグデータを受け取り、例えば最優先順位のアクティブ状態のフラグデータだけをアクティブ状態として出力するものである。最優先順位のアクティブ状態のフラグデータだけをアクティブ状態として出力した後、このアクティブ状態として出力したフラグレジスタ回路１８のフラグデータを非アクティブ状態にリセットし、以下同様にして、フラグレジスタ回路１８に保持されたアクティブ状態の全てのフラグデータについて、ただ１つのフラグデータだけをアクティブ状態として順次出力する。なお、メインプライオリティ回路２０としては、例えば図２に示されるように、プライオリティ回路要素を一列に配置した構成のものでもよいし、あるいは、図５〜図７に示されるように、ユニット回路を階層的に配置した構成のものでもよい。
【０２６６】
また、メインエンコード回路２２は、例えば図２に示されるように、メインプライオリティ回路２０から出力されるフラグデータの内、ただ１つだけアクティブ状態とされた最優先順位のフラグデータに対応したメモリワード３４のアドレスを符号化するものである。なお、メインエンコード回路２２は、ただ１つだけアクティブ状態とされたフラグデータに対応したメモリワード３４のアドレスを符号化することができるものであれば特に限定されず、従来より公知のものを用いることができる。
【０２６７】
タイミング制御回路６０ａは、フラグレジスタ回路１８に保持されたフラグデータの内、まだ符号化が終了していないアクティブ状態のフラグデータの個数、例えばまだ符号化が終了していないアクティブ状態のフラグデータが最後の１個になったことを検出して、出力信号ＣＳ１，ＣＳ２およびタイミング制御信号を出力し、フラグレジスタ回路１８に次の優先順位のサブブロックの（ｍ＋１）個のフラグデータを保持させるものである。なお、タイミング制御回路６０ａは、図１０、図１２、図１５、図１６、図１８、図１９、図２０、図２１、図２３または図２６に例示したどの構成のものであってもよい。
【０２６８】
メインエンコーダ１２ａにおいては、メインプライオリティ回路２０によって、フラグレジスタ回路１８に保持された（ｍ＋１）個のフラグデータの内、例えば最優先順位のアクティブ状態のフラグデータだけがアクティブ状態とされて出力され、メインエンコード回路２２によって、ただ１つだけアクティブ状態とされた最優先順位のフラグデータに対応したメモリワード３４のアドレスが符号化される。符号化された最優先順位のアクティブ状態のフラグデータは、メインプライオリティ回路２０によって非アクティブ状態にリセットされて、次の優先順位のアクティブ状態のフラグデータが最優先順位のアクティブ状態のフラグデータとされ、以下同様にして、フラグレジスタ回路１８に保持された（ｍ＋１）個のアクティブ状態のフラグデータに対応したメモリワードのアドレスが順次符号化される。タイミング制御回路６０ａによって、フラグレジスタ回路１８に保持された（ｍ＋１）個のフラグデータの内、まだ符号化が終了していないアクティブ状態のフラグデータが最後の１個になったことが検出されると、出力信号ＣＳ１，ＣＳ２およびタイミング制御信号が出力されて次の優先順位のサブブロック３２の（ｍ＋１）個のフラグデータがフラグレジスタ回路１８に保持され、以下同様に上述する動作が繰り返し行われる。
メインエンコーダ１２ａは、基本的に、以上のようなものである。
【０２６９】
続いて、サブエンコーダ１４ａは、ヒットフラグに対応したサブブロック３２のアドレスを符号化するもので、データラッチ回路２４ａと、サブプライオリティ回路２６ａと、サブエンコード回路２８ａとを有する。同様に、サブエンコーダ１４ｂは、エンプティフラグに対応したサブブロック３２のアドレスを符号化するもので、データラッチ回路２４ｂと、サブプライオリティ回路２６ｂと、サブエンコード回路２８ｂとを有する。なお、サブエンコーダ１４ａ，１４ｂは、データラッチ回路２４ａ，２４ｂに保持されるサブブロック信号の違いを除いて、その構成および作用は同じであるから、以下、言及しない限りサブエンコーダ１４ａを代表例として説明する。
【０２７０】
まず、データラッチ回路２４ａは、各サブブロック３２から出力される合計ｎ個のサブブロックヒット信号を保持するものである。
【０２７１】
ここで、サブブロックヒット信号とは、検索データと各サブブロック３２の各メモリワード３４の内容との一致検索の結果、各サブブロック３２内のメモリワード３４に、検索データと一致した内容が格納されたメモリワード３４が存在するかどうかを示すもので、この実施例においては、例えばサブブロック３２内に検索データと一致した内容が格納されたメモリワード３４が存在するときに‘１’（アクティブ状態）、存在しないときに‘０’（非アクティブ状態）になるものとする。なお、サブブロックヒット信号は、各サブブロック３２内の図示していないＯＲ回路によって、各サブブロック３２の全メモリワード３４のヒットフラグの論理和を取ることにより生成される。
【０２７２】
データラッチ回路２４ａに保持されたサブブロックヒット信号の内、アクティブ状態のサブブロックヒット信号に対応するサブブロック３２のアドレスが順次符号化される。データラッチ回路２４ａに保持されたサブブロックヒット信号の内、アクティブ状態のサブブロックヒット信号に対応したサブブロック３２のアドレスが順次符号化され、符号化が終了したサブブロックヒット信号は非アクティブ状態にリセットされる。
【０２７３】
また、データラッチ回路２４ｂは、各サブブロック３２から出力される合計ｎ個のサブブロックエンプティ信号を保持するものである。
【０２７４】
ここで、サブブロックエンプティ信号とは、各サブブロック３２内のメモリワード３４に、検索の対象とはならない無効なメモリワード３４が存在するかどうかを示すもので、この実施例においては、例えばサブブロック３２内に検索の対象とはならない無効なメモリワード３４が存在するときに‘１’（アクティブ状態）、存在しないときに‘０’（非アクティブ状態）になるものとする。なお、サブブロックエンプティ信号は、各サブブロック３２内の図示していないＯＲ回路によって、各サブブロック３２の全メモリワード３４のエンプティフラグの論理和を取ることにより生成される。
【０２７５】
データラッチ回路２４ｂに保持されたサブブロックエンプティ信号の内、アクティブ状態のサブブロックエンプティ信号に対応するサブブロック３２のアドレスが順次符号化される。データラッチ回路２４ｂに保持されたサブブロックエンプティ信号の内、アクティブ状態のサブブロックエンプティ信号に対応したサブブロック３２のアドレスが順次符号化され、符号化が終了したサブブロックエンプティ信号は非アクティブ状態にリセットされる。
【０２７６】
なお、データラッチ回路２４ａ，２４ｂとしては、ｎ個の１ビットのデータを一時的に保持し、１ビット毎にリセットすることができれば何でもよく、例えばラッチやレジスタ等を用いることができる。
【０２７７】
サブプライオリティ回路２６ａ，２６ｂおよびエンコード回路２８ａ，２８ｂは、各々構成するユニットの数が（ｍ＋１）個ではなくｎ個である点を除いて、基本的に、メインエンコーダ１２ａのメインプライオリティ回路２０およびメインエンコード回路２２と同じ構成および作用を有するものであるから、ここでは詳細な説明は省略する。
【０２７８】
サブエンコーダ１４ａにおいては、サブプライオリティ回路２６ａによって、データラッチ回路２４ａに保持されたｎ個のサブブロックヒット信号の内、例えば最優先順位のアクティブ状態のサブブロックヒット信号だけがアクティブ状態とされて出力され、サブエンコード回路２８ａによって、ただ１つだけアクティブ状態とされた最優先順位のサブブロックヒット信号に対応したサブブロック３２のアドレスが符号化される。符号化された最優先順位のアクティブ状態のサブブロックヒット信号は、サブプライオリティ回路２６ａによって非アクティブ状態にリセットされて、次の優先順位のアクティブ状態のサブブロック信号が最優先順位のアクティブ状態のサブブロック信号とされ、以下同様にして、データラッチ回路２４ａに保持されたｎ個のアクティブ状態のサブブロックヒット信号に対応したサブブロック３２のアドレスが順次符号化される。
サブエンコーダ１４ａ，１４ｂは、基本的に、以上のようなものである。
【０２７９】
次に、本発明の最も特徴的な部分である最優先順位のサブブロック３２のフラグデータを選択的に出力するためのスイッチ回路１２４，１２５、センス回路１２６、ＯＲ回路１２７およびＡＮＤ回路１２８，１２９について説明する。
【０２８０】
まず、スイッチ回路１２４は、最優先順位のサブブロック３２の各レジスタ３６ａから出力される（ｍ＋１）個のヒットフラグを、各サブブロック３２の同一メモリワード３４に対して共通に設けられた検出線Ｌ（Ｌ0 ，Ｌ1 ，…，Ｌm ）の内、メモリワード３４に対応する検出線Ｌに出力するためのものである。それぞれのスイッチ回路１２４は、各サブブロック３２の各レジスタ３６ａに１対１に対応して設けられており、直列接続された２つのＮ型ＭＯＳトランジスタ（以下、ＮＭＯＳという）１２４ａ，１２４ｂを有する。ＮＭＯＳ１２４ｂのゲートには、レジスタ３６ａの出力であるヒットフラグが入力され、そのソースはグランドに接続されている。また、ＮＭＯＳ１２４ａのゲートには、ＡＮＤ回路１２８の出力信号が入力され、そのドレインは、各メモリワード３４に対応した検出線Ｌに接続されている。
【０２８１】
スイッチ回路１２４は、ヒットフラグが‘１’で、なおかつ、ＡＮＤ回路１２８の出力信号が‘１’の時に、ＮＭＯＳ１２４ａ，１２４ｂの両方がオン状態となり、検出線Ｌにプリチャージされた電荷は、このＡＮＤ回路１２８の出力信号がＮＭＯＳ１２４ａのゲートに入力された（ｍ＋１）個のスイッチ回路１２４のＮＭＯＳ１２４ａ，１２４ｂを介してディスチャージされる。一方、ヒットフラグまたはＡＮＤ回路１２８の出力信号の少なくとも一方が‘０’の時には、ＮＭＯＳ１２４ａまたはＮＭＯＳ１２４ｂの少なくとも一方がオフ状態となるため、検出線Ｌのレベルは、プリチャージされたままの状態とされる。すなわち、検出線Ｌは、出力信号が‘１’のＡＮＤ回路１２８によって選択された（ｍ＋１）個のスイッチ回路１２４により、この（ｍ＋１）個のスイッチ回路１２４に入力されるヒットフラグの反転レベルになる。
【０２８２】
また、スイッチ回路１２５は、最優先順位のサブブロック３２の各レジスタ３６ｂから出力される（ｍ＋１）個のエンプティフラグを、メモリワード３４に対応する検出線Ｌに出力するためのものである。なお、スイッチ回路１２５の構成および作用は、スイッチ回路１２４と同じであるから、ここでは、詳細な説明は省略する。
【０２８３】
続いて、センス回路１２６は、スイッチ回路１２４によって検出線Ｌに出力されたヒットフラグ、あるいは、スイッチ回路１２５によって検出線Ｌに出力されたエンプティフラグのレベルを検出するものである。それぞれのセンス回路１２６は、検出線Ｌに１対１に対応して設けられており、電源と検出線Ｌとの間に並列接続された２つのＰ型ＭＯＳトランジスタ（以下、ＰＭＯＳという）１２６ａ，１２６ｂと、インバータ１２６ｃとを有する。また、ＰＭＯＳ１２６ａのゲートにはＯＲ回路１２７の出力信号が入力され、ＰＭＯＳ１２６ｂのゲートにはインバータ１２６ｃの出力信号が入力されている。また、インバータ１２６ｃには検出線Ｌが入力され、インバータ１２６ｃの出力はメインエンコーダ１２ａのフラグレジスタ回路１８に入力されている。
【０２８４】
センス回路１２６は、ＯＲ回路１２７の出力信号が‘０’の時に、ＰＭＯＳ１２６ａがオン状態となり、全ての検出線ＬがＰＭＯＳ１２６ａを介してプリチャージされる。検出線Ｌのレベルはインバータ１２６ｃにより反転される。インバータ１２６ｃの出力信号が‘０’になった時に、ＰＭＯＳ１２６ｂがオン状態となり、検出線Ｌのレベルは、ＰＭＯＳ１２６ｂを介してチャージアップされ、ＯＲ回路１２７の出力信号が‘１’になった後も‘１’に保持される。ＯＲ回路１２７の出力信号が‘１’になった後、スイッチ回路１２４またはスイッチ回路１２５のいずれかによって検出線Ｌがディスチャージされた場合、インバータ１２６ｃの出力信号が‘１’となってＰＭＯＳ１２６ｂがオフ状態となり、検出線Ｌへのチャージアップが停止される。これにより、検出線Ｌにプリチャージされた電荷は、スイッチ回路１２４またはスイッチ回路１２５のいずれかを介してディスチャージされ、インバータ１２６ｃの出力信号は‘１’となる。一方、検出線Ｌがディスチャージされず、プリチャージされたままの状態を保持した場合、インバータ１２６ｃの出力信号は‘０’の状態を保持する。すなわち、センス回路１２６の出力信号であるインバータ１２６ｃの出力信号は、出力信号が‘１’のＡＮＤ回路１２８によって選択された（ｍ＋１）個のスイッチ回路１２４またはスイッチ回路１２５に入力されるフラグデータと等しいレベルになる。
【０２８５】
ＯＲ回路１２７は、メインエンコーダ１２ａのタイミング制御回路６０ａの出力信号ＣＳ１，ＣＳ２の論理和を演算するものである。ＯＲ回路１２７の出力信号は、タイミング制御回路６０ａの出力信号ＣＳ１，ＣＳ２がいずれも‘０’の時に‘０’となり、全てのセンス回路１２６のＰＭＯＳ１２６ａのオンオフが制御される。
【０２８６】
ＡＮＤ回路１２８は、メインエンコーダ１２ａのタイミング制御回路６０ａの出力信号ＣＳ１とサブエンコーダ１４ａのサブプライオリティ回路２６ａの出力信号との論理積を演算するもので、各サブブロック３２に１対１に対応して設けられている。ＡＮＤ回路１２８の出力信号は、タイミング制御回路６０ａの出力信号ＣＳ１が‘１’で、なおかつ、サブプライオリティ回路２６ａの出力信号が‘１’の時に‘１’となり、これに対応するサブブロック３２の（ｍ＋１）個のスイッチ回路１２４が選択される。
【０２８７】
ＡＮＤ回路１２９は、メインエンコーダ１２ａのタイミング制御回路６０ａの出力信号ＣＳ２とサブエンコーダ１４ｂのサブプライオリティ回路２６ｂの出力信号との論理積を演算するものである。なお、ＡＮＤ回路１２９の構成および作用は、ＡＮＤ回路１２８と同じであるから、ここでは、詳細な説明は省略する。
【０２８８】
次に、本発明の連想メモリ装置に適用される符号化回路の動作について説明する。
【０２８９】
検索データと各サブブロック３２の各メモリワード３４の内容との一致検索が終了した時に、ヒットフラグが、各メモリワード３４に対応した各レジスタ３６ａに格納される。レジスタ３６ａに格納されたヒットフラグは、各サブブロック３２内の図示していないＯＲ回路により、各サブブロック３２毎に、全メモリワード３４に対応したヒットフラグの論理和が取られ、各サブブロック３２から出力される合計ｎ個のサブブロックヒット信号として、サブエンコーダ１４ａのデータラッチ回路２４ａに保持される。
【０２９０】
サブエンコーダ１４ａにおいては、データラッチ回路２４ａに保持されたｎ個のサブブロックヒット信号の内、優先順位に応じて、１つのサブブロックヒット信号だけがアクティブ状態である‘１’として順次出力され、ＡＮＤ回路１２８に入力されるとともに、このアクティブ状態のサブブロックヒット信号に対応したサブブロック３２のアドレスが順次符号化される。
【０２９１】
ここで、メインエンコーダ１２ａのタイミング制御回路６０ａの出力信号ＣＳ１が‘１’になり、１つだけアクティブ状態として出力されたサブブロックヒット信号に対応したＡＮＤ回路１２８の出力信号が‘１’となり、このＡＮＤ回路１２８に対応したサブブロック３２の（ｍ＋１）個のスイッチ回路１２４が選択される。選択されたスイッチ回路１２４によって、ヒットフラグの反転レベルが検出線Ｌに出力され、センス回路１２６によって反転されてヒットフラグと等しいレベルとされた後、タイミング制御回路６０ａから出力されるタイミング制御信号によって、検出線Ｌ上の（ｍ＋１）個のヒットフラグが、メインエンコーダ１０ａのフラグレジスタ回路１８に格納される。
【０２９２】
メインエンコーダ１２ａにおいては、優先順位に応じて、１つのヒットフラグだけがアクティブ状態である‘１’として順次出力され、このアクティブ状態のヒットフラグに対応したメモリワード３４のアドレスが順次符号化される。
【０２９３】
本発明の連想メモリ装置に適用される符号化回路においては、サブエンコーダ１４ａから出力されるサブブロック３２のアドレス、および、メインエンコーダ１２ａから出力されるメモリワード３４のアドレスを合わせて、各ヒットフラグに対応したメモリワードのアドレスとして順次出力される。
本発明の連想メモリ装置に適用される符号化回路は、基本的に、以上のように動作する。
【０２９４】
なお、上記実施例では、ヒットフラグに対応したメモリワード３４のアドレスを出力させる場合を例に挙げて説明したが、連想メモリを使用したシステムでは、メモリワード３４の使用効率を最大限に向上させるために、一致検索の結果、検索データと一致した複数のメモリワード３４の内容を保持し、なおかつ、一致しなかったメモリワード３４の内容を消去し、この消去したメモリワード３４の箇所に順次新しいデータを書き込むことにより、メモリワード３４の内容を更新するという動作が頻繁に行われる。
【０２９５】
しかしながら、このとき問題になるのは、従来の技術の欄でも述べたように、内容を消去するメモリワード３４のアドレスがランダムに発生するため、内容を消去した無効なメモリワード３４のアドレスが管理しづらいことである。
【０２９６】
この問題点を解決するために、本発明の連想メモリ装置に適用される符号化回路においては、まず、ヒットフラグが格納されるレジスタ３６ａと全く同じ構成のエンプティフラグが格納されるレジスタ３６ｂを設けている。これにより、ヒットフラグに対応したメモリワード３４のアドレスを出力させる場合と全く同じように、優先順位に応じて、エンプティフラグに対応した無効なメモリワード３４のアドレスを順次出力させることができ、無効なメモリワード３４の管理が容易であるという利点がある。なお、ヒットフラグに対応したアドレスを符号化するのか、エンプティフラグに対応したアドレスを符号化するのかは、タイミング制御回路６０ａの出力信号ＣＳ１およびＣＳ２によって決定される。すなわち、出力信号ＣＳ１によって、ヒットフラグに対応したアドレスが符号化され、出力信号ＣＳ２によって、エンプティフラグに対応したアドレスが符号化される。
【０２９７】
また、一致検索の結果、検索データと一致したデータが格納されたメモリワード３４のアドレスを出力させる必要がある時と、新しいデータを書き込むために、無効なメモリワード３４のアドレスを出力させる必要がある時は一般的に異なる場合が多い。これに基づいて、本発明の連想メモリ装置に適用される符号化回路では、ヒットフラグおよびエンプティフラグが出力される検出線Ｌを共用化している。これにより、連想メモリのレイアウト面積が削減され、高密度な連想メモリを作り上げることができるという利点もある。
【０２９８】
なお、ヒットフラグに対応したアドレスの符号化に関しては、さらに出力の高速化の要求がある。これに対し、例えば一致検索の結果、ただ１つのメモリワード３４に対応したヒットフラグだけがアクティブ状態になるという限定（使用条件）の下では、メインプライオリティ回路２０およびサブプライオリティ回路２６ａを不要とすることができ、ヒットフラグに対応したアドレスを符号化するに際して、これらのメインプライオリティ回路２０およびサブプライオリティ回路２６ａを機能させないようにすることで、従来の２倍程度の動作速度の改善を期待することができる。
【０２９９】
ここで、図２９に、一致検索の結果、ただ１つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定の下で、動作速度が高速化されるように適合された本発明の符号化回路の別の実施例の概略図を示す。
なお、図示例の符号化回路１０ｂは、図２８に示した符号化回路１０ａと比較して、メインエンコーダ１２ｂがセレクト回路２１を有する点、タイミング制御回路６０ｂが出力信号ＣＳ３を出力する点、および、サブエンコーダ１４ａとＡＮＤ回路１２８との間にＯＲ回路１３０を有する点を除いて同じであるから、これらの３点以外の同一構成要素には同一符号を付し、ここでは、その詳細な説明は省略する。
【０３００】
すなわち、符号化回路１０ｂは、メインエンコーダ１２ｂと、サブエンコーダ１４ａ、１４ｂと、スイッチ回路１２４、１２５、センス回路１２６、ＯＲ回路１２７およびＡＮＤ回路１２８と、ＯＲ回路１３０（Ｏ1 ，Ｏ2 ，…，Ｏn ）とを有する。
【０３０１】
符号化回路１０ｂにおいて、まず、メインエンコーダ１２ｂは、フラグレジスタ回路１８と、メインプライオリティ回路２０と、セレクト回路２１と、メインエンコード回路２２と、タイミング制御回路６０ｂとを有する。
【０３０２】
ここで、セレクト回路２１は、タイミング制御回路６０ｂの出力信号ＣＳ３の制御によって、フラグレジスタ回路１８に保持されたフラグデータ、または、メインプライオリティ回路２０から出力されるフラグデータのいずれかを選択出力するものである。セレクト回路２１は、図示例においては、出力信号ＣＳ３が‘０’のときに、メインプライオリティ回路２０から出力されるフラグデータを選択出力し、出力信号ＣＳ３が‘１’のときには、メインプライオリティ回路２０をバイパスして、フラグレジスタ回路１８に保持されたフラグデータを選択出力する。すなわち、タイミング制御回路６０ｂの出力信号ＣＳ３が‘１’のときには、メインプライオリティ回路２０をバイパスして、フラグレジスタ回路１８に保持されたフラグデータがメインエンコード回路２２に直接入力される。
【０３０３】
また、タイミング制御回路６０ｂは、出力信号ＣＳ３を発生する点を除いて、基本的に、図２８に示したタイミング制御回路６０ａと同じ機能を有するものである。
【０３０４】
ここで、例えば複数のコンピュータが接続されたネットワーク環境において、各々のコンピュータには固有のネットワークアドレスが与えられることにより、個々のコンピュータは一意に識別される。スイッチングハブ等の装置では、例えば個々のコンピュータのネットワークアドレスとこのコンピュータが接続されたスイッチングハブのポート番号とを連想メモリの各々のメモリワードに格納しておき、送信元のコンピュータから出力されたパケットデータのヘッダー部に存在する受信先のコンピュータのネットワークアドレスを用いて一致検索を行い、この受信先のコンピュータが接続されたスイッチングハブのポート番号を取得する。このように、例えばネットワークアドレスを管理する場合、連想メモリのメモリワードには、個々のコンピュータに固有のネットワークアドレスが格納されるため、一致検索の結果、ただ１つのメモリワードに対応したヒットフラグだけがアクティブ状態になるという使用条件が発生する。
【０３０５】
タイミング制御回路６０ｂから出力される出力信号ＣＳ３は、上述するように、一致検索の結果、ただ１つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定（使用条件）の下で、かつ、ただ１つのアクティブ状態のヒットフラグに対応したアドレスを符号化する時にだけ‘１’が出力され、これ以外の場合には‘０’が出力される。
【０３０６】
上述するように、一致検索の結果、ただ１つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定の下で、かつ、ただ１つのアクティブ状態のヒットフラグに対応したアドレスを符号化する時には、タイミング制御回路６０ｂから出力される出力信号ＣＳ３を‘１’にすることによって、メインエンコーダ１２ｂのフラグレジスタ回路１８に保持されたヒットフラグが、メインプライオリティ回路２０をバイパスしてメインエンコード回路２２に直接入力され、このヒットフラグに対応したメモリワード３４のアドレスが符号化される。このため、メインプライオリティ回路２０の信号処理による遅延を排除することができ、ヒットフラグに対応したアドレスの符号化を高速化することができる。なお、出力信号ＣＳ３が‘０’の場合の動作は、図２８に示した本発明の符号化回路１０ａの動作と全く同じである。
【０３０７】
続いて、ＯＲ回路１３０は、メインエンコーダ１２ｂのタイミング制御回路６０ｂの出力信号ＣＳ３とサブエンコーダ１４ａのサブプライオリティ回路２６ａの出力信号との論理和を演算するもので、各サブブロック３２に対応して設けられている。ＯＲ回路１３０の出力信号は、タイミング制御回路６０ｂの出力信号ＣＳ３またはサブプライオリティ回路２６ａの出力信号の少なくとも一方が‘１’の時に‘１’となる。すなわち、タイミング制御回路６０ｂの出力信号ＣＳ３を‘１’にすることによって、サブプライオリティ回路２６ａの出力信号に係わらず、ＯＲ回路１３０の出力信号を‘１’にすることができる。
【０３０８】
上記ＯＲ回路１３０が追加されたことによって、ＡＮＤ回路１２８は、タイミング制御回路６０ｂの出力信号ＣＳ１とＯＲ回路１３０の出力信号との論理積を演算することになる。ＡＮＤ回路１２８の出力信号は、タイミング制御回路６０ｂの出力信号ＣＳ１および出力信号ＣＳ３の両方が‘１’の時に、サブプライオリティ回路２６ａの出力信号に係わらず、全てのＡＮＤ回路１２８の出力信号が‘１’となり、全てのサブブロック３２の全てのスイッチ回路１２４が同時に選択される。なお、出力信号ＣＳ３が‘０’の場合のＡＮＤ回路１２８の動作は、図２８に示した符号化回路１０ａにおけるＡＮＤ回路１２８の動作と全く同じである。
【０３０９】
上述するように、一致検索の結果、ただ１つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定の下で、かつ、ただ１つのアクティブ状態のヒットフラグに対応したアドレスを符号化する時には、タイミング制御回路６０ｂの出力信号ＣＳ１および出力信号ＣＳ３の両方を‘１’にすることによって、サブプライオリティ回路２６ａの出力信号を無効化し、全てのＡＮＤ回路１２８の出力信号を‘１’にすることができる。これにより、ただ１つのアクティブ状態であるヒットフラグが直ちに検出線Ｌに出力され、このヒットフラグに対応したメモリワード３４のアドレスが符号化される。このため、サブエンコーダ１４ａにおける信号処理による内部遅延を排除することができ、ヒットフラグに対応したアドレスの符号化を高速化することができる。
【０３１０】
以下、符号化回路１０ｂの動作について簡単に説明する。
符号化回路１０ｂにおいては、一致検索の結果、ヒットフラグが、各メモリワード３４に対応した各レジスタ３６ａに格納される。
【０３１１】
各々のレジスタ３６ａに格納されたヒットフラグは、各サブブロック３２毎に全てのヒットフラグの論理和が取られ、各々のサブブロック３２のサブブロックヒット信号とされる。ここで、一致検索の結果、ただ１つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定の下では、ただ１つのサブブロックヒット信号だけがアクティブ状態となるため、サブエンコーダ１４ａでは、ただ１つのアクティブ状態であるサブブロックヒット信号に対応したサブブロック３２のアドレスが符号化される。
【０３１２】
一方、ヒットフラグが各々のレジスタ３６ａに格納された後、メインエンコーダ１２ｂのタイミング制御回路６０ｂの出力信号ＣＳ１および出力信号ＣＳ３の両方が‘１’とされ、サブエンコーダ１４ａのサブプライオリティ回路２６ａの出力信号に係わらず、全てのＡＮＤ回路１２８の出力信号が‘１’となり、全てのスイッチ回路１２４が同時に選択される。これにより、サブエンコーダ１４ａの内部動作に係わらず、直ちにヒットフラグが検出線Ｌに出力され、メインエンコーダ１２ｂにおいて、ただ１つのアクティブ状態であるヒットフラグに対応したメモリワード３４のアドレスが符号化される。
【０３１３】
符号化回路１０ｂからは、サブエンコーダ１４ａから出力されるサブブロックのアドレス、および、メインエンコーダ１２ｂから出力されるメモリワードのアドレスを合わせて、ただ１つのアクティブ状態であるヒットフラグに対応したメモリワードのアドレスが出力される。
【０３１４】
なお、上記実施例においては、一致検索の結果、ただ１つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定の下で、ただ１つのアクティブ状態であるヒットフラグに対応したアドレスを符号化する場合を例に挙げて、本発明の符号化回路１０ｂの動作について説明したが、これ以外の動作については、図２８に示した本発明の符号化回路１０ａの動作と全く同じである。
【０３１５】
このように、本発明の符号化回路１０ｂによれば、一致検索の結果、ただ１つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定の下では、メインエンコーダ１２ｂのメインプライオリティ回路２０における内部処理、ならびに、サブエンコーダ１４ａのサブプライオリティ回路２６ａにおける内部処理の両方を省くことができるため、ヒットフラグに対応するメモリワード３４のアドレスの符号化を高速化することができる。一致検索の結果、ただ１つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定は、既に述べたように、例えば連想メモリを用いてネットワークアドレスを管理する場合等においてはごく当然のことであり、この限定の下で、ヒットフラグに対応するメモリワード３４のアドレスの符号化を高速化できることは、ヒットフラグに対応するメモリワード３４のアドレスの符号化の高速化を望むユーザーにとっては非常に望ましいことである。
【０３１６】
しかしながら、エンプティフラグに対応したアドレスの符号化に関しては、連想メモリの同一デバイス中で、複数の無効（エンプティ）なメモリワード３４が存在することはごく普通に起こり得ることであるため、メインプライオリティ回路２０およびサブプライオリティ回路２６ｂを省くことはできず、メインプライオリティ回路２０およびサブプライオリティ回路２６ｂによる処理の後に符号化を行う必要があることは言うまでもないことである。
【０３１７】
以上、本発明の符号化回路について詳細に説明したが、本発明は上記実施例だけに限定されるものではない。
【０３１８】
例えば、図２８および図２９に示す本発明の符号化回路１０ａ，１０ｂは、図２４に示す符号化回路１２０に本発明を適用したものであるが、もちろん図１および図８に示す符号化回路１０，１１に対しても適用可能である。
【０３１９】
また、上記実施例においては、メモリワードのヒットフラグをエンコードする際に、ただ１つのメモリワードがヒットする場合と、複数のメモリワードがヒットする場合とで、出力信号ＣＳ３により切り替えて制御する例を示した。すなわち、この両機能をサポートしてヒットフラグをエンコードするために、サブエンコーダ１４ａの中にサブプライオリティ回路２６ａを設けているが、本発明はこれに限定されず、常にヒットフラグが１つしかアクティブ状態にならない場合に限定すれば、このサブプライオリティ回路２６ａが不要となり、より面積効率の良い半導体チップを設計することができる。
【０３２０】
また、図２８および図２９に示す本発明の符号化回路１０ａ，１０ｂにおいては、サブエンコーダ１４ａによって、サブブロックヒット信号に対応したサブブロック３２のアドレスを符号化し、サブエンコーダ１４ｂによって、サブブロックエンプティ信号に対応したサブブロック３２のアドレスを符号化する場合の一例を示したが、本発明はこれに限定されず、例えば１つのサブエンコーダを共用して、サブブロックヒット信号またはサブブロックエンプティ信号のいずれかに対応したサブブロック３２のアドレスを選択的に符号化するようにしてもよいし、あるいは、サブエンコーダ１４ａおよび１４ｂにおいて、サブブロックヒット信号およびサブブロックエンプティ信号で１つのデータラッチ回路を共用したり、１つのサブエンコード回路を共用したりするようにしてもよい。
【０３２１】
また、常にヒットフラグが１つしかアクティブ状態にならない用途では、より高速なエンコードのために、セレクト回路２１を省略し、エンプティフラグ専用のメインエンコーダとヒットフラグ専用のメインエンコーダとを別々に設けることも可能である。この場合、常にヒットフラグが１つしかアクティブ状態にならないヒットフラグ専用のメインエンコーダには、メインプライオリティ回路２０は不要である。
【０３２２】
また、上記実施例においては、アクティブ状態のヒットフラグに対応するメモリワードのアドレスを符号化する場合を例に挙げて説明したが、本発明はこれに限定されず、例えば非アクティブ状態のヒットフラグに対応するメモリワードのアドレスを符号化することもできるし、同様に、アクティブ状態および非アクティブ状態のエンプティフラグに対応するメモリワードのアドレスを符号化することも可能である。
【０３２３】
また、上記実施例では、フラグデータを保持する２つのレジスタ３６ａ，３６ｂを備える場合を例に挙げて説明したが、本発明はこれに限定されず、例えばヒットフラグに対応するメモリワード３４のアドレスを符号化出力する必要がないのであれば、必ずしもヒットフラグを保持するレジスタ３６ａを設ける必要はなく、エンプティフラグを保持するレジスタ３６ｂだけを設けるようにしてもよい。これにより、連想メモリのレイアウト面積をさらに削減することができる。
【０３２４】
また、本発明の符号化回路を適用する連想メモリ装置においては、ヒットフラグを保持するレジスタ３６ａやエンプティフラグを保持するレジスタ３６ｂを有するスタティックな回路構成のものであってもよいし、あるいは、レジスタ３６ａ，３６ｂを持たないダイナミックな回路構成のものであってもよい。
【０３２５】
また、メインエンコーダおよびサブエンコーダを構成するプリフェッチ回路、データラッチ回路、プライオリティ回路、エンコード回路の入力数や構成、またＰｃｈＭＯＳトランジスタ、ＮｃｈＭＯＳトランジスタを始めとして、種々の回路素子を入れ換えても様々に組み合わせてもよいし、プライオリティ回路で符号化が終了したフラグデータは、非アクティブ状態にするためにリセットするのではなく、例えばフラグレジスタ回路に対応する無効化ビットフラグ回路を設け、プライオリティ回路で符号化が終了したフラグデータに対応する無効化ビットフラグ回路のビットをセットすることにより、プライオリティ回路で符号化が終了したフラグデータを非アクティブ状態とすることも可能であるなど、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【０３２６】
【発明の効果】
以上詳細に説明した様に、本発明の連想メモリ装置に適用される符号化回路によれば、優先順位に応じて、エンプティフラグに対応した無効なメモリワードのアドレスを順次出力させることができるため、無効なメモリワードの管理が容易である。また、本発明の連想メモリ装置に適用される符号化回路では、ヒットフラグおよびエンプティフラグが出力される検出線を共用化したため、連想メモリ装置のレイアウト面積が削減され、高密度な連想メモリを構成することができる。
また、本発明の連想メモリ装置に適用される符号化回路によれば、一致検索の結果、ただ１つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定（使用条件）の下では、メインエンコーダのメインプライオリティ回路およびサブエンコーダのサブプライオリティ回路の内部処理を省くことができるため、ヒットフラグに対応するメモリワードのアドレスの符号化を高速化することができる。
【図面の簡単な説明】
【図１】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路およびこれが適用される連想メモリブロックの一実施例の構成図である。
【図２】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられるプリフェッチ回路付優先順位付符号化回路の一実施例の構成図である。
【図３】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられる優先順位付サブブッロク符号化回路の一実施例の構成図である。
【図４】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられるプリフェッチ回路の一実施例の構成図である。
【図５】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられるプライオリティ回路およびエンコード回路の別の実施例の構成図である。
【図６】  （ａ）、（ｂ）および（ｃ）は、図５に示すプライオリティ回路に用いられる小単位のプライオリティ回路の一実施例の概略構成図である。
【図７】  図５に示す小単位のプライオリティ回路に用いられる論理演算回路の一実施例の構成図である。
【図８】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路およびこれが適用される連想メモリブロックの別の実施例の構成図である。
【図９】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられるプリフェッチ回路付優先順位付符号化回路の別の実施例の構成図である。
【図１０】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられるタイミング制御回路回路の一実施例の構成図である。
【図１１】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられるプリフェッチ回路付優先順位付符号化回路の各部のタイミングを示すタイムチャートである。
【図１２】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路であるタイミング制御回路の別の実施例の構成図である。
【図１３】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路が適用される符号化回路のプリフェッチ回路付優先順位付符号化回路の各部のタイミングを示すタイムチャートである。
【図１４】  （ａ），（ｂ）は、それぞれ、図１２および図１０に示すタイミング回路の検出結果を示すグラフである。
【図１５】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路であるタイミング制御回路の別の実施例の構成図である。
【図１６】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路であるタイミング制御回路の別の実施例の構成図である。
【図１７】  （ａ）、（ｂ）は、それぞれ図１５および図１０に示すタイミング回路の検出結果を示すグラフである。
【図１８】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路が適用されたタイミング制御回路の別の実施例の構成図である。
【図１９】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路が適用されたタイミング制御回路の他の実施例の構成図である。
【図２０】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路が適用されたタイミング制御回路の他の実施例の構成図である。
【図２１】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路が適用されたタイミング制御回路の他の実施例の構成図である。
【図２２】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路が適用される符号化回路の優先順位付サブブッロク符号化回路部品の一実施例の構成図である。
【図２３】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路であるタイミング制御回路の他の実施例の構成図である。
【図２４】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路およびこれが適用される連想メモリブロックの一実施例の構成図である。
【図２５】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられる優先順位付符号化回路の一実施例の構成図である。
【図２６】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられるタイミング制御回路の一実施例の構成図である。
【図２７】  本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路の作用を説明するためのタイミングチャートである。
【図２８】  本発明の符号化回路およびこれが適用される連想メモリブロックの一実施例の構成図である。
【図２９】  本発明の符号化回路およびこれが適用される連想メモリブロックの別の実施例の構成図である。
【図３０】  従来の符号化回路を適用した連想メモリ装置の全体構成図である。
【図３１】  従来の符号化回路を適用した連想メモリブロックの全体構成図である。
【符号の説明】
１０，１０ａ，１０ｂ，１１，１２０  符号化回路
１２，１２ａ，１２ｂ，１２２，２１２  メインプライオリティエンコーダ
１４，１４ａ，１４ｂ，２１４  サブブロックプライオリティエンコーダ
１６  プリフェッチ回路
１８，２４，２４ａ，２４ｂ  データラッチ回路
２０  メインプライオリティ回路
２１  セレクト回路
２２  メインエンコード回路
２６，２６ａ，２６ｂ  サブプライオリティ回路
２８，２８ａ，２８ｂ  サブエンコード回路
３０，２０２  連想メモリブロック
３２，２０４  連想メモリサブブロック
３４  連想メモリワード
３６，３６ａ，３６ｂ  レジスタ
４０，１８８  プライオリティ回路要素
４２，４９，８４，１０２ａ，１０２ｂ，１０４ａ，１０４ｂ，１０８ａ，１０８ｂ，１２６ｃ，１７０，１７２  インバータ
４４，５２，６９ａ，６９ｂ，６９ｃ，６９ｄ，７５ａ，７５ｂ，７５ｃ，７５ｄ，７７ａ，７７ｂ，７７ｃ，７７ｄ，８２ａ，８２ｂ，１０３ａ，１０３ｂ，１０９ａ，１０９ｂ，１２４ａ，１２４ｂ，１６３，１６４  ＮチャンネルＭＯＳトランジスタ
４６，８０ａ，８０ｂ，８６，１２６ａ，１２６ｂ，１６８  ＰチャンネルＭＯＳトランジスタ
４８  論理演算回路
４８ｂ，８８，１２８，１２９，１６６  ＡＮＤ回路
４８ａ  ＥＸＯＲゲート
５０，１９２  アドレス線
５４  ゲート回路
６０，６０ａ，６０ｂ，６１，９０，９２，１００，１０６，１１０，１１２，１１６，１７８  タイミング制御回路
６２  信号電流検出線
６４  基準電流駆動線
６６  電流駆動回路
６７ａ，６７ｄ  制御トランジスタ
６７ｂ，６７ｃ  信号電圧印加トランジスタ
６８  リファレンス電流駆動回路
７０  差電流検出回路
７２  プリチャージ制御信号線
７４，７６  ダミー回路
７８，８３  プリチャージトランジスタ
７９  等電位化トランジスタ
８５  出力端子
８７  パルス回路
１１４，１２７，１３０  ＯＲ回路
１１８  リファレンス電流制御レジスタ
１２４，１２５，１６０  スイッチ回路
１２６  センス回路
１６２  プリチャージ回路
１６５  検出線
１６７  ブロック選択線
１６９  プリチャージ信号線
１７４，１７５  ラッチ信号線
１７６  制御信号線
１８０  プライオリティ回路
１８２，１８４，１８６  小単位プライオリティ回路
１９０  エンコード回路
２００  連想メモリ
２０６  ＣＡＭサブアレイ
２０８  ヒット信号レジスタ
２１０  プライオリティエンコーダ
【図１】
0003819120.tif 000002
【図２】
0003819120.tif 000003
【図３】
0003819120.tif 000004
【図４】
0003819120.tif 000005
【図５】
0003819120.tif 000006
【図６】
0003819120.tif 000007
【図７】
0003819120.tif 000008
【図８】
0003819120.tif 000009
【図９】
0003819120.tif 000010
【図１０】
0003819120.tif 000011
【図１１】
0003819120.tif 000012
【図１２】
0003819120.tif 000013
【図１３】
0003819120.tif 000014
【図１４】
0003819120.tif 000015
【図１５】
0003819120.tif 000016
【図１６】
0003819120.tif 000017
【図１７】
0003819120.tif 000018
【図１８】
0003819120.tif 000019
【図１９】
0003819120.tif 000020
【図２０】
0003819120.tif 000021
【図２１】
0003819120.tif 000022
【図２２】
0003819120.tif 000023
【図２３】
0003819120.tif 000024
【図２４】
0003819120.tif 000025
【図２５】
0003819120.tif 000026
【図２６】
0003819120.tif 000027
【図２７】
0003819120.tif 000028
【図２８】
0003819120.tif 000029
【図２９】
0003819120.tif 000030
【図３０】
0003819120.tif 000031
【図３１】
0003819120.tif 000032