JP3819120B2 - Encoding circuit applied to associative memory device - Google Patents

Encoding circuit applied to associative memory device Download PDF

Info

Publication number
JP3819120B2
JP3819120B2 JP22873897A JP22873897A JP3819120B2 JP 3819120 B2 JP3819120 B2 JP 3819120B2 JP 22873897 A JP22873897 A JP 22873897A JP 22873897 A JP22873897 A JP 22873897A JP 3819120 B2 JP3819120 B2 JP 3819120B2
Authority
JP
Japan
Prior art keywords
circuit
flag
sub
hit
empty
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP22873897A
Other languages
Japanese (ja)
Other versions
JPH1166867A (en
Inventor
正人 米田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kawasaki Microelectronics Inc
Original Assignee
Kawasaki Microelectronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kawasaki Microelectronics Inc filed Critical Kawasaki Microelectronics Inc
Priority to JP22873897A priority Critical patent/JP3819120B2/en
Publication of JPH1166867A publication Critical patent/JPH1166867A/en
Application granted granted Critical
Publication of JP3819120B2 publication Critical patent/JP3819120B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、複数の連想メモリサブブロックに分割された大容量連想メモリ装置(associative memory)に適用され、検索データと各メモリワードの内容との一致検索結果であるヒットフラグに対応したアドレスを、あるいは、各メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグに対応したアドレスを、予め定められた優先順位に従って順番に効率良く符号化するための符号化回路に関するものである。
【0002】
【従来の技術】
従来より検索データと記憶データとの一致検出を全ビット並行に行い、一致したデータの記憶アドレスまたはデータを出力する機能を有する半導体記憶装置として、連想メモリすなわち完全並列型CAM(Content Addressable Memory:内容アドレス式メモリ)が良く知られている(菅野卓雄監修、飯塚哲哉編「CMOS超LSIの設計」培風館、P176〜P177参照)。
【0003】
連想メモリ(CAM)は物理的なメモリアドレスによってではなく、内容によって検索される。従って、CAMの基本機能は、例えば通常のメモリとは逆に検索データを入力し、その検索データと一致したデータが記憶されているワードのアドレスを出力するものである。しかし、一致するワードは1つに限られているわけではなく、複数のワードで一致する場合がある。このように複数のワードで一致が得られた場合には、普通の符号化回路(エンコーダ)では正しい符号化出力が得られない。このため、CAMには複数の一致信号(ヒット信号)を所定の優先順位に従って符号化出力する優先順位付符号化回路(プライオリティ・エンコーダ)が用いられている。
【0004】
ところで、大容量CAMでは、一般にワード長に対してワード数が非常に大きくなっている。このため、セルアレイが複数のブロックに分割されるが、そこではプライオリティ・エンコーダの配置が重要な問題となる。すなわち、もし仮にCAMの各ブロック全てにプライオリティ・エンコーダを付けるとすると、プライオリティ・エンコーダ回路の占有面積が大きくなるし、消費電力も増大する。そして、分割するブロックの数が増大すると、これに比例して、前記占有面積および消費電力はさらに増大する。
【0005】
このため、複数のブロックに対して1つのメインプライオリティ・エンコーダを設け、このプライオリティ・エンコーダによってエンコード(符号化)を行うブロックは別途設けられたブロックプライオリティエンコーダによって行うように構成した連想メモリ装置が提案されている。
【0006】
この連想メモリ(CAM)を図30に示す。図30に示すように、連想メモリ200は4つの連想メモリブロック202に分割され、この連想メモリブロック202はさらに8つの連想メモリサブブロック204に分割されている。そして、プライオリティエンコーダ210は、これらの8つの連想メモリサブブロック204からなる1つの連想メモリブロック202毎に1つの、すなわち全部で4個設けられるメインプライオリティエンコーダ212と、4つの連想メモリブロック202に対して1個設けられるサブブロックプライオリティエンコーダ214とを備えた階層的プライオリティエンコーダの構成が採られている。ここで、図31に示すように連想メモリサブブロック204は、所定ワード長の連想メモリワードを所定数配列したCAMサブアレイ206とその制御部からなり、この制御部には検索データと連想メモリワードとのヒット信号を保持するヒット信号レジスタ208が含まれる。
【0007】
この連想メモリブロック202において、一致検索時には、まず、各連想メモリサブブロック204毎にこのサブブロック内の全ワードのヒット信号がヒット信号レジスタ208に保持されると同時に各連想メモリサブブロック204の制御部のOR回路(図示せず)によってこのサブブロック204内に一致ワードの存在を示すサブブロックヒット信号を発生する。続いて、サブブロックプライオリティエンコーダ214がその信号を受けて最も優先順位の高い連想メモリサブブロック204を示すサブロックセレクト信号を発生し、同時にサブブロックプライオリティエンコーダ214は、符号化(コード化)されたサブブロックアドレスを生成する。
【0008】
次に、選択されたサブブロックのスイッチ回路(図示せず)が前記ブロックセレクト信号を受けて活性化し、ヒット信号レジスタ208に保持されているデータ(ヒット信号)を出力信号としてメインプライオリティエンコーダ212に転送する。そしてこの後、メインプライオリティエンコーダ212は転送されたヒット信号を予め定められた優先順位に従って符号化し、連想メモリサブブロック204内のヒットメモリワードアドレスを生成する。このヒットメモリワードアドレスと前述のサブブロックアドレスとを合わせてCAMメモリ200のヒットメモリワードの符号化論理アドレスをプライオリティエンコーダ210は出力する。
【0009】
図30および図31に示す従来のCAMメモリ200においては、プライオリティエンコーダ(符号化回路)210を複数の連想メモリサブブロック204を受け持つメインプライオリティエンコーダ(優先順位付符号化回路)212と符号化を行う連想メモリサブブロック204の優先順位を付けるサブブロックプライオリティエンコーダ214とで構成し、この複数のサブブロック204の内でまず、優先順位を決めて、優先されたサブブロック204の出力信号をメインプライオリティエンコーダ212に入力し、符号化(エンコード)することにより、符号化回路構成全体を比較的小さくでき、CAMメモリ200全体の回路規模に対する回路面積を縮小し、高集積化を図ることが可能なものとしている。
【0010】
しかしながら、優先された連想メモリサブブロック204からの出力信号(ヒット信号データ)が全てメインプライオリティエンコーダ212によって符号化され、この符号化が終了し、符号化されたデータが出力されてから、次の優先サブブロック204からの出力信号(ヒット信号データ(以下、フラグデータともいう))の符号化を開始するまでの間にはサブブロック間のヒット信号の切り換え時間が必要となる。すなわち、メインプライオリティエンコーダ212による符号化アドレスの出力後、次の優先サブブロック204のヒット信号レジスタ208からヒット信号データがメインプライオリティエンコーダまで転送される時間が必要であり、効率よく符号化できないという問題があった。
【0011】
一方、連想メモリを使用した装置では、連想メモリの各メモリワードの使用効率を最大限に向上させるために、例えば一致検索の結果、検索データと一致した複数のメモリワードの内容を保持し、一致しなかったメモリワードの内容を消去した後、この消去したメモリワードの箇所に順次新しいデータを書き込むことにより、メモリワードの内容を更新するという動作が頻繁に行われる。
【0012】
例えば、複数のコンピュータを接続し、統合されたネットワーク環境を構築するスイッチングハブ等の装置では、連想メモリを使用して、パケットデータのヘッダー部に存在するMACアドレスに対応するポート番号等の付属データを取得し、これに基づいて、送信元のコンピュータから転送されてきたパケットデータを、取得したポート番号に対応したポートから出力することにより、受信先のコンピュータに正しく転送している。
【0013】
ここで、あるコンピュータを接続するポートをポート1からポート3に変更した場合、このコンピュータに対応するMACアドレスのデータが格納されたメモリワードの付属データに格納されたポート番号をポート1からポート3に更新しておかなければ、このコンピュータへ転送されるパケットデータは、実際に接続されているポート3ではなく、このコンピュータが以前に接続されていたポート1から出力されてしまう。これを防止するために、それぞれのコンピュータが接続されているポート番号を常時最新の情報に更新しておく必要がある。
【0014】
また、連想メモリのメモリワードのワード数は、ネットワーク上の全体のコンピュータの台数よりも少ないのが一般的であり、各メモリワードには、選択的に特定のコンピュータの情報だけが格納される。例えば、連想メモリ装置の使用効率を向上するために、付属データとして使用時間を管理するためのタイムスタンプ情報を格納し、このタイムスタンプ情報を常に更新して、使用頻度の高いコンピュータの情報だけをメモリワードに登録している。従って、各メモリワードのタイムスタンプ情報を常時最新の情報に更新しておく必要がある。
【0015】
このように、連想メモリを使用した装置においては、連想メモリの各メモリワードの内容を更新するという動作が頻繁に行われる。
【0016】
しかしながら、連想メモリの各メモリワードの内容を更新するためには、内容を消去したメモリワードのアドレスを管理する必要があるが、内容を消去するメモリワードのアドレスはランダムに発生するため、従来の連想メモリ装置では、内容を消去した無効なメモリワードのアドレスを管理することができず、例えば連想メモリの外部で内容を消去したメモリワードのアドレスを管理しなければならないという問題点があった。
【0017】
【発明が解決しようとする課題】
本発明の目的は、上記従来技術の問題点を解消し、大容量データに対する高速処理を必要とする、複数の連想メモリサブブロックから構成される連想メモリブロックからなる大容量連想メモリ装置に適用可能であって、内容を消去した無効なメモリワードを管理し、そのアドレスを効率よく符号化することができる符号化回路を提供することにある。
また、本発明の他の目的は、上記目的に加えてさらに、複数の連想メモリサブブロック間の切り換わりに時間遅れ(待ち時間)がなく多数の連想メモリサブブロックからの出力信号を所定のサイクルで連続して効率よく符号化することのできる符号化回路を提供することにある。
【0018】
【課題を解決するための手段】
上記目的を達成するために、本発明は、複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロック、複数のメモリワードと、各々の前記メモリワードに1対1に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第1のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第2のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、各々の前記検出線上に出力された前記ヒットフラグまたは前記エンプティフラグを検出するセンス回路と、このセンス回路によって検出された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、1つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路を提供するものである。
【0019】
また、本発明は、複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに1対1に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第1のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第2のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、各々の前記検出線上に出力された前記ヒットフラグまたは前記エンプティフラグを検出するセンス回路と、このセンス回路によって検出された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、1つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路を提供する。
【0020】
また、本発明は、複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに1対1に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第1のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第2のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、各々の前記検出線上に出力された前記ヒットフラグまたは前記エンプティフラグを検出するセンス回路と、このセンス回路によって検出された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、1つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路を提供する。
【0021】
また、本発明は、複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに1対1に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第1のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第2のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、各々の前記検出線上に出力された前記ヒットフラグまたは前記エンプティフラグを検出するセンス回路と、このセンス回路によって検出された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、1つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路を提供する。
【0022】
また、本発明は、複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに1対1に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第1のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第2のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前の優先順位の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化している間に、前記検出線上に出力される次の優先順位の前記ヒットフラグまたは前記エンプティフラグを予め保持しておくプリフェッチ回路と、このプリフェッチ回路に保持されている前記前の優先順位の各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、1つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路を提供する。
【0023】
また、本発明は、複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに1対1に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第1のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第2のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前の優先順位の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化している間に、前記検出線上に出力される次の優先順位の前記ヒットフラグまたは前記エンプティフラグを予め保持しておくプリフェッチ回路と、このプリフェッチ回路に保持されている前記前の優先順位の各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、1つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路を提供する。
【0024】
また、本発明は、複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに1対1に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第1のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第2のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前の優先順位の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化している間に、前記検出線上に出力される次の優先順位の前記ヒットフラグまたは前記エンプティフラグを予め保持しておくプリフェッチ回路と、このプリフェッチ回路に保持されている前記前の優先順位の各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、1つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路を提供する。
【0025】
また、本発明は、複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロックが、複数のメモリワードと、各々の前記メモリワードに1対1に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第1のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第2のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前の優先順位の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化している間に、前記検出線上に出力される次の優先順位の前記ヒットフラグまたは前記エンプティフラグを予め保持しておくプリフェッチ回路と、このプリフェッチ回路に保持されている前記前の優先順位の各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、1つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路を提供する。
【0026】
ここで、前記ヒットフラグと前記エンプティフラグとで前記検出線を共用することが好ましい。
【0027】
さらに、上記のいずれかに記載の符号化回路であって、
前記メインプライオリティエンコーダは、さらに、前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化するか、あるいは、前記ヒットフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化するのかを決定する選択手段を有することが好ましい。
【0029】
また、前記サブプライオリティエンコーダは、各々の前記連想メモリサブブロックから出力される前記サブブロックヒット信号または前記サブブロックエンプティ信号を保持するデータラッチ回路と、このデータラッチ回路に保持された各々の前記サブブロックヒット信号または前記サブブロックエンプティ信号の内、優先順位に応じて、1つの前記サブブロックヒット信号または前記サブブロックエンプティ信号だけをアクティブ状態として順次出力するサブプライオリティ回路と、このサブプライオリティ回路から順次出力されるアクティブ状態とされた前記サブブロックヒット信号または前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックのアドレスを順次符号化するサブエンコード回路とを有するのが好ましい。
【0030】
また、前記サブプライオリティエンコーダは、各々の前記連想メモリサブブロックから出力される、ただ1つのアクティブ状態である前記サブブロックヒット信号を保持するデータラッチ回路と、このデータラッチ回路から出力される、ただ1つのアクティブ状態である前記サブブロックヒット信号に対応した前記連想メモリサブブロックのアドレスを符号化するサブエンコード回路とを有するのも好ましい。
【0031】
また、上記のいずれかに記載の連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックを選択し、そのアドレスを符号化するサブエンコーダと、この選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前記検出線に出力された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化するメインエンコーダとを有することが好ましい。
【0032】
また、前記メインエンコーダは、1つのアクティブ状態のヒットフラグに対応するメモリワードのアドレスを符号化し、アクティブ状態のエンプティフラグの内、優先順位に応じて、1つのエンプティフラグだけを順次アクティブ状態とし、このアクティブ状態のエンプティフラグに対応するメモリワードのアドレスを順次符号化することが好ましい
【0033】
また、前記メインエンコーダは、優先順位に応じて、アクティブ状態のエンプティフラグの内、1つのエンプティフラグだけを順次アクティブ状態として出力するプライオリティ回路を有することが好ましい
【0034】
また、前記連想メモリ装置は、
さらに、各々の前記連想メモリサブブロック内の同一の前記メモリワードに各々対応して設けられ、各々の前記メモリワードに対応する前記ヒットフラグおよび各々の前記エンプティフラグのいずれかが各々共通に出力される検出線と、
各々の前記ヒットフラグまたは各々の前記エンプティフラグのいずれかを各々対応する前記検出線に出力するスイッチ回路とを有することが好ましい
【0035】
【発明の実施の形態】
以下に、添付の図面に示す好適実施例に基づいて、まず、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路およびこれが適用される連想メモリ装置についての説明を順次行い、最後に、本発明の連想メモリ装置に適用される符号化回路についての詳細な説明を行う。
【0036】
まず、図1〜図7を参照して、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路の一例について詳細に説明する。
【0037】
図示例の連想メモリ装置においては、一致検索時に連想メモリ装置を構成する連想メモリブロックに検索データが入力されると、複数の連想メモリサブブロックの第1番目から順次一致検索が行われる。この時、各連想メモリサブブロック毎にその結果、すなわち複数の連想メモリワードに前記検索データと一致する一致信号(ヒット信号)が保持されるとともに、優先順位付サブブロック符号化回路によって最も優先順位の高い連想メモリサブブロックが選択され、そのヒット信号が優先順位付符号化回路に転送され、このヒット信号をこの優先順位付符号化回路は符号化し、ヒットアドレスを出力する。一方、このヒット信号の符号化中に、前記優先順位付サブブロック符号化回路によって選択された次の優先順位の連想メモリサブブロックのヒット信号は、プリフェッチ回路に入力される。そして、前記優先順位付符号化回路では先の優先順位の連想メモリサブブロックのヒット信号の符号化が終了した後、直ちに、プリフェッチ回路に入力されている次の優先順位の連想メモリサブブロックのヒット信号の符号化を開始する。この後、空きを生じた前記プリフェッチ回路にさらに次の優先順位の連想メモリサブブロックのヒット信号をプリフェッチ回路に先読みする。これらの手順を順次繰り返して、前記連想メモリブロック全体のヒット信号の符号化、すなわちアドレス出力を行う。
【0038】
この符号化回路によれば、上述したように、次に符号化すべき連想メモリサブブロックのヒット信号が、前の連想メモリサブブロックのヒット信号の符号化中にプリフェッチ回路に入力されているので、前記ヒット信号を連想メモリサブブロックから優先順位付符号化回路まで転送する時間を符号化時間の他にとる必要がないので、連想メモリブロック全体ひいては連想メモリ全体の符号化時間を短縮することができ、連想メモリの一致検索動作を高速化できる。
【0039】
以下に、本発明の前提となる符号化回路を添付の図面に示す好適実施例に基づいて詳細に説明する。
【0040】
図1は、本発明の前提となる符号化回路が適用された連想メモリブロックの一実施例の概略図である。図示例の符号化回路10は、先読みバッファ回路付優先順位付符号化回路(以下、メインプライオリティエンコーダあるいはメインエンコーダという)12と、優先順位付サブブロック符号化回路14(以下、サブブロックプライオリティエンコーダまたはサブブロックエンコーダという)とを有し、メインエンコーダ12は、先読みバッファ回路16と、データラッチ回路18と、プライオリティ回路20と、エンコード回路22とを有し、サブブロックエンコーダ14は、ラッチ回路24と、プライオリティ回路26と、エンコード回路28とを有する。
【0041】
メインエンコーダ12は、連想メモリブロック(以下、メモリブロックという)30に対して設けられる。連想メモリブロック30は複数(図示例ではn個)の連想メモリサブブロック(以下、サブブロックという)32(B1 、B2 、…、Bn )からなり、サブブロック32は、所定数のCAMメモリセルがアレイ状に配列された、すなわち所定ワード長の連続した論理アドレスを持つ複数(図示例ではm+1個)の連想メモリワード(以下、ワードという)34(W0 、W1 、…、Wm )から構成されるサブアレイ(CAMセルサブアレイ)部と、各ワード34における検索データとの一致検索結果、例えば一致‘1’信号(ヒット信号)、不一致‘0’信号を各ワード34毎に保持するレジスタ36(R0 、R1 、R2 、…、Rm )とを有し、また上記各ワード34の一致検索結果(以下、ヒット信号データという)のOR(論理和)をとるOR回路を有し、このOR回路の出力は、後述するサブブロックエンコーダ14のラッチ回路24に各サブブロック毎に保持される。
【0042】
図2にメインエンコーダ12の一実施例の構成図を示す。同図において、メインエンコーダ12の先読みバッファ回路16は、メインエンコーダ12のプライオリティ回路20およびエンコード回路22が、より優先順位の高いサブブロック32のヒット信号を所定の優先順位(ワード)に従って一致ワード34のアドレスを符号化(エンコード)している間に、次の優先順位のサブブロック32のレジスタ36に保持されているヒット信号データを各ワード34(W0 、W1 、…、Wm )毎に入力しておくためのものであり、m+1個の‘0’または‘1’の1ビットデータを一時的に保持可能なものであれば何でもよく、データラッチ回路やデータレジスタなどでよい。先読みバッファ回路16は、メインエンコーダ12のエンコード出力(エンコードアドレス出力)によって、ラッチホールドしていた各ワード34のヒット信号データをデータラッチ回路18にパラレル出力した後、このヒット信号データがメインエンコーダ12によって符号化されている間にサブブロックエンコーダ14によって選択された次の優先順位のサブブロック32のヒット信号データを各ワード34毎にそれぞれ取り込む。
【0043】
データラッチ回路18は、先読みバッファ回路16と同様にm+1個の1ビットデータをラッチホールドするためのもので、各ワード34(W0 、W1 、…、Wm )のヒット信号データ、特に複数のヒット信号を持つヒット信号データから所定の優先順位に従って、プライオリティ回路20が1つのワードアドレスのみにヒット信号(‘1’)を持つデータを選び出し、これをエンコード回路22が符号化することを繰り返し、すべてのヒット信号(‘1’)が符号化されるまでの間前記ヒット信号データを保持しておくためのものである。このデータラッチ回路18は、優先順位の高いワードアドレスのヒット信号(‘1’)が符号化される毎にこのワードアドレスのヒット信号(‘1’)はリセットされるように構成される。
【0044】
プライオリティ回路20は、図2に示すように複数のヒット信号を持つヒット信号データが入力された時、すなわち、複数の一致信号を有する全ワード34のm+1個の入力信号を受けて、ただ1つのヒット信号が所定のプライオリティ(優先順位)付けされて含まれる出力信号を所定の優先順位に従って順次出力するもので、m+1個のプライオリティ回路要素40(400 、401 、…、40m )を含む。ここで1つのプライオリティ回路要素(以下、回路要素という)40は、第2回路要素401 を代表例として説明すると、入力端子I1 に入力される入力信号を反転するインバータ42と、インバータ42の出力とそのゲート電極とが接続され、入力信号によって互いに排他的(逆)に制御されるNチャンネルMOSトランジスタ44(N1 )およびPチャンネルMOSトランジスタ46(P1 )と、NMOSトランジスタ44のソース電極およびドレイン電極とを入力とし、出力端子O1 を出力とする論理演算回路48とを有する。
【0045】
ここで、NMOSトランジスタN1 の一方の電極(例えば、ソース電極)はノードQ0 で上位回路要素400 のNMOSトランジスタN0 の他方の電極(例えば、ドレイン電極)に接続され、NMOSトランジスタN1 の他方の電極(例えば、ドレイン電極)は、ノードQ1 で下位回路要素402 のMOSトランジスタN2 の一方の電極(例えば、ソース電極)に接続される。こうして、NMOSトランジスタN0 、N1 、N2 、…、Nm はノードQ0 、Q1 、Q2 、…、Qm-1 によってシリアルに接続される。NMOSトランジスタNm の下側のノードQm はOR出力端子orに接続され、このOR出力端子orはデータラッチ回路18の各回路にインバータ49を介して接続される。また、最上段のNMOSトランジスタN0 の上側(一方)の電極(例えば、ソース電極)は‘0’を示す電位(信号状態)に固定、あるいは接地される。一方、PMOSトランジスタP0 、P1 、P2 、…、Pm の一方の電極(例えば、ソース電極)は‘1’を示す電位(信号状態)に固定されるか、あるいは電源Vddに接続され、他方の電極(例えば、ドレイン電極)は、それぞれノードQ0 、Q1 、Q2 、…、Qm に接続される。ここで、このNMOSトランジスタ間の電極(ソース電極とドレイン電極)の接続の方向は、NMOSトランジスタN0 、N1 、N2 、…、Nm がシリアル接続できれば逆方向であってもよい。PMOSトランジスタP0 〜Pm についても同様である。このようにしてm+1入力、m+1出力のプライオリティ回路20は構成される。
【0046】
次に、このプライオリティ回路20のプライオリティ(優先順位)付け動作、すなわち複数のヒット信号(一致信号)‘1’がI0 〜Im から入力されても、最も優先度の高いアドレスのみが一致信号‘1’である優先度付出力信号の出力動作について説明する。このユニット回路20の回路要素401 に注目すると、I1 入力が‘1’であればN1 トランジスタ44がOFFし、P1 トランジスタ46がONする。従って、このP1 トランジスタ46によってQ1 ノードは‘1’に設定される。I1 入力が‘0’であればN1 トランジスタ44がONし、P1 トランジスタ46はOFFする。従って、Q1 ノードは1つ上のQ0 ノードの論理値と同じになる。もし、Ik 入力が‘1’であれば、Qk が‘1’になるので、それ以後のQn (j≧k+1)はIj が‘1’であろうと‘0’であろうと‘1’にしかなりえない。すなわち、Ik+1 =‘1’であれば、ノードQk+1 (の信号状態)は‘1’、一方Ik+1 =‘0’であればQk+1 =Qk で、Qk =‘1’よりQk+1 =‘1’となる。
【0047】
この結果、図2において、複数のI入力が‘1’であって、それに対応するシリアル接続NMOSトランジスタ44(N)がOFFしているときに、一番上側にあるNMOSトランジスタ44にまでは伝搬制御信号である‘0’が伝わるが、それより下側の各Qノードには伝搬制御信号‘0’が伝わらず、すべて1となる。従って、制御信号‘0’がどこまで伝わっているかを論理演算回路48で検出すればよい。このプライオリティ回路20のI0 〜Im のm+1入力がすべて‘0’となればOR出力端子orにまで制御信号‘0’が伝わり、全m+1入力信号に‘1’がないことになり、このサブブロックのヒット信号データの全ヒット信号のプライオリティ付けが終了し、先読みバッファ回路16にラッチホールドされている次の優先順位のヒット信号データのデータラッチ回路18への入力を可能としたことを知らせ、その後サブブロックエンコーダ14によって選択された次の次の優先順位のヒット信号データの先読みバッファ回路16への読み込みが可能なことを知らせる。
【0048】
ここで、図2に示す論理演算回路48は、シリアル接続されるNMOSトランジスタ44(N1 )のドレイン−ソース間の信号状態、すなわちノードQ0 とノードQ1 との間の論理値の排他的論理和(イクスクルーシブOR:Exclusive OR)をとるイクスクルーシブORゲート(Exclusive ORゲート:反一致回路)48aから構成される。この論理演算回路48では、ノードQ0 とノードQ1 が不一致、すなわち、回路要素401 のNMOSトランジスタ44(N1 )のノードQ0 までは伝搬制御信号‘0’が伝搬されているが、ノードQ1 までは伝搬制御信号‘0’が伝搬されていない場合、Exclusive ORゲート48aが‘1’を出力する。ノードQ0 とノードQ1 が一致(‘0’)であれば出力端子O1 の出力は‘0’である。論理演算回路48は、図2に示す例に限定されず、種々のゲートを組み合わせて、所望の論理演算を行うように構成すればよい。また、論理演算回路48の入力は、ノードQ0 とノードQ1 との間に限定されず、このいずれか一方と入力信号またはその反転値であってもよく、その論理演算の内容も、信号値に応じ適宜選択すればよい。
【0049】
次に、複数のヒット信号を持つ入力信号(I)から1つのヒット信号を持つ、最も優先度の高い優先順位の出力信号(O)が出力された時に、次に優先順位の高いヒット信号のアドレスが同一のサブブロック32にある場合には、最高優先順位出力信号を用いて入力側をリセットしてやればよい。すなわち、例えば、図2に示すプライオリティ回路20において、I1 =‘1’、I2 =‘1’だったとすると、ノードQ0 =‘0’、ノードQ1 =Q2 =…=Qm =‘1’となるので、出力O1 =‘1’となり、出力O0 =O2 =…=Om =‘0’となる。このO1 出力値をデータラッチ回路18(181 )のリセット端子に入力してリセットしてやれば、I1 =‘0’、従って、Nトランジスタ44(N1 )はオン、Pトランジスタ46(P1 )はオフとなってノードQ1 =Q0 =‘0’、ここで、NトランジスタN2 はオフしているのでノードQ0 =Q1 =‘0’、ノードQ2 =…=Qm =‘1’となり、次の優先度のI2 =‘1’が次の出力信号として選ばれることになる。
【0050】
こうして、1度にメインエンコーダ12に入力された同一サブブロック32のヒット信号データ中の複数のヒット信号が、予め定められた優先順位に従って、1つのヒット信号のみをもつ出力信号としてプライオリティ回路20によって順次エンコード回路22に出力されるとともに、‘1’出力に対応するワードアドレスのデータラッチ回路18のリセット端子に‘1’出力が入力され、データラッチ回路18にラッチホールドされていたヒット信号(‘1’)を順次リセットしていく。こうして、最後のヒット信号がプライオリティ付けされ、エンコード回路22に出力されるとともにリセットされると、図中最下端のノードQm にはデータ‘0’が伝達され、OR出力端子orから出力され、インバータ49で反転され、その反転値‘1’がデータラッチ回路18の全回路に入力され、先読みバッファ回路16にラッチホールドされていた次の優先順位のサブブロック32のヒット信号データがデータラッチ回路18の各々対応する回路に入力(シフト)されて保持された後、空いた先読みバッファ回路16には、予めサブブロックエンコーダ14によって選択されていた次の次の優先順位のサブブロック32のヒット信号データがレジスタ36から読み込まれ、ラッチホールドされる。こうして、プライオリティ回路20は、先の優先順位のサブブロックのヒット信号データの処理を終了してから、次の優先順位のサブブロックのヒット信号データがそのサブブロック32のレジスタ36から転送されてくる間、待機する必要がないので、エンコードを効率よく行うことができる。
【0051】
エンコード回路22は、プライオリティ回路20から順次出力される出力信号にただ1つ存在する一致信号のアドレスをコード化するためのもので、各ワード34(W0 、W1 、W2 、…、Wm )に対応する出力端子O0 、O1 、O2 、…、Om 各々のワードアドレスを符号化するためのもので、m+1≦2L となる最小の自然数Lに対し、L+1ビットのコード化をするためのL+1本のアドレス線50(500 、501 、502 、…、50L )と、各々のアドレス線50に取り付けられ、そのゲート電極が各出力端子O0 、O1 、O2 、…、Om からの出力線に接続される接地トランジスタ52からなる。ここで、L+1本のすべてのアドレス線500 、501 、502 、…、50L は一端側にそれぞれ抵抗r0 、r1 、r2 、…、rL を介して電源に接続され(または‘1’電位に固定され)、AL …A2 1 0 のL+1ビットのコード出力が得られるようにトランジスタ52が取り付けられる。
【0052】
すなわち、出力端子O0 からの出力線はL+1本すべてのアドレス線500 〜50L に接続されるL+1個の接地トランジスタ52のすべてのゲート電極に接続される。ここで、例えば出力端子O0 の出力が‘1’(一致信号)であり、残りはすべて‘0’である時、AL =…=A2 =A1 =A0 =0となって、(AL …A2 1 0 )=(0…000)を表わす。次に、2番目および3番目のワードアドレスW1 に対応する出力端子O1 およびO2 の出力線は、それぞれアドレス線500 および501 を除くL本のアドレス線501 〜50L および500 、502 〜50L に接続されるL個の接地トランジスタ52のゲート電極に接続され、出力端子O1 およびO2 のみが‘1’になった時、それぞれ(AL …A2 1 0 )=(0…001)および(0…010)を表わす。以下同様にしてそれぞれのコードアドレスを表わすように接地トランジスタ52が各アドレス線50に接続される。例えば、m+1=2L の時、最後の出力端子Om の出力線は、アドレス線50L のみに取り付けられる接地トランジスタ52のみに接続され、出力端子Om のみ‘1’の時、(AL …A2 1 0 )=(01…111)(最初のL+1桁目が‘0’で残りのL桁がすべて‘1’)を表わす。そして、すべての出力端子O0 、O1 、O2 、…、Om が‘0’の時、(AL …A2 1 0 )=(1…111)(全部1)を表わす。エンコード回路22は基本的に以上のように構成される。ここでエンコード回路22は、特に図示のものに限定されず、1つのワードアドレスのみに‘1’出力を持つ入力信号を受けて、‘1’出力のアドレスを符号化(コード化)して出力することができるものであれば、特に限定はなく、従来公知のものも用いることができる。メインエンコーダ12は基本的には以上のように構成される。
【0053】
次に、図3にサブブロックエンコーダ14の一実施例のブロック図を示す。なお、同図に示すデータラッチ回路24、プライオリティ回路26およびエンコード回路28は、各々構成するユニットの数がm+1個に対しn個である点を除き、基本的には図2に示すデータラッチ回路18、プライオリティ回路20およびエンコード回路22の構成と同様の構成を示すものであるので、詳細な回路構成は省略する。ここで、サブブロックエンコーダ14では、連想メモリサブブロック32(B1 、B2 、…、Bn )毎に行われる一致検索時に、各メモリサブブロック32における一致検索結果、すなわちヒット信号データがレジスタ36に保持されるとともに、サブブロック32内の図示しないOR回路などによって、サブブロック32内に検索データと一致を示したワード34(ヒットワード、またはマッチワード)が存在するか否かを示すサブブロックヒット信号を発生させ、これを対応するサブブロック32のデータラッチ回路24に保持させる。こうして、次々とサブブロック32の一致検索が順次行われ、そのサブブロック32のレジスタ36にヒット信号データが保持されるのに伴って、ブロックヒット信号がデータラッチ回路24にラッチホールドされて行く。
【0054】
一方、このサブブロックエンコーダ14のサブプライオリティ回路26では、所定の優先順位に従って、図示例では左側から右側に向って、データラッチ回路24にラッチホールドされたブロックヒット信号がヒット信号(‘1’)であるサブブロック32を選択し、そのブロックアドレスのみに‘1’を持つプライオリティ付出力信号を出力する。この出力信号は、後段のサブエンコード回路28によって符号化されエンコード出力されるとともに、当該サブブロック32の制御部に戻され、制御部内のゲート回路54をオンしてレジスタ36内のヒット信号データをメインエンコーダ12のプリフェッチ回路16が空きの状態になった後に入力する。このようにして、サブブロックエンコーダ14は所定の優先順位に従って、次に符号化すべき優先順位のサブブロック32を選択し、メインエンコーダ12が先の優先順位のサブブロック32のヒット信号データからヒット信号のワードアドレスを符号化している間に、空きとなったプリフェッチ回路16に次の優先順位のサブブロック32のヒット信号データを転送し、ラッチホールドさせておく。
【0055】
ここで、図示例の符号化回路10は、サブブロックエンコーダ14のサブエンコード回路28からの符号化されたブロックアドレス出力とメインエンコーダ12のメインエンコード回路22からの符号化されたワードアドレス出力とを両方合わせて符号化論理アドレスとして順次出力していく。そして、最終サブブロック32または最低優先順位のサブブロック32が選択されると、サブブロックエンコーダ14の処理は終了し、メインエンコーダによる全ヒット信号の符号化が終ると、符号化回路10は、すべての連想メモリサブブロック30のすべてのメモリワード34のヒット信号を論理アドレスとして出力して、一致検索動作を終了する。なお、図示例の符号化回路10は、複数の連想メモリサブブロック32をもつ連想メモリブロック30に対し、1つのメインエンコーダ12と1つのサブブロックエンコーダ14とを設けた例を示しているが、これに限定されず、図30に示す連想メモリ200に適用される従来の符号化回路210と同様に複数の連想メモリブロック30に対して1つのサブブロックエンコーダ14を設ける構成であってもよい。
【0056】
次に、図示例の符号化回路10に用いられるプリフェッチ回路16の具体的回路構成およびその動作に必要な各サブブロック32の制御のためのスイッチ回路160ならびにプリチャージ回路162を図4に示す。
【0057】
同図に示すようにスイッチ回路160は、サブブロック32(B1 )のレジスタ36(R0 )に接続される1つ(S0 )を代表例として説明すると、2つのNMOSトランジスタ163,164を直列に接続して構成される。各スイッチ回路160(S0 ,S1 ,…,Sm )の一方のトランジスタ163の電極(例えば、ドレイン電極)はそれぞれ対応する検出線165(L0 ,L1 ,…,Lm )に各サブブロック32(B1 ,B2 ,…,Bn )毎に並列に結線され、検出線Lはプリフェッチ回路16に接続される。各スイッチ回路160(S0 ,S1 ,…,Sm )のトランジスタ163のゲート電極は各サブブロック32内においてブロック選択線167に並列にAND回路166に接続される。また、各スイッチ回路160(S0 ,Si ,…,Sm )の他方のトランジスタ164のゲート電極はそれぞれ対応するレジスタ36(R0 ,R1 ,…,Rm )の出力端に接続され、このトランジスタ164の他方の電極(例えば、ソース電極)は接地される。また、プリチャージ回路162は、各検出線165(L0 ,L1 ,…,Lm )の電位を所定電位(例えば、電源電位)にプリチャージするプリチャージトランジスタであるPMOSトランジスタ168(PC0 ,PC1 ,…,PCm )からなり、各PMOS168(PC0 ,PC1 ,…,PCm )の一方の電極は所定電位源(電源)に、他方の電極は各検出線165(L0 ,L1 ,…,Lm )に、ゲート電極はプリチャージ信号線169に接続される。
【0058】
プリフェッチ回路16は、互いに逆向きに並列接続される2個のインバータ170および172と、インバータ170および172の出力状態を制御するためのコントロール信号を入力するためのラッチ信号線174および175とから構成される(m+1)個のデータラッチ回路を有する。並列接続インバータ170および172の入力側端は対応する入力線165(Li ) に、出力側端はデータラッチ回路18の対応する回路要素に接続される。また、ラッチ信号線174はインバータ170のコントロール信号端子およびインバータ172の反転コントロール信号端子に接続され、ラッチ信号線175はインバータ172のコントロール信号端子およびインバータ170の反転コントロール信号端子に接続される。
【0059】
また、AND回路166の一方の入力端子はサブブロックエンコーダ14のデータラッチ回路24(もしくはサブプライオリティ回路26)の対応する回路要素に接続され、他方の入力端子は、ブロック選択線167の選択タイミングを制御する制御信号線176に接続される。制御信号線176、プリチャージ信号線169、ラッチ信号線174および175は、各回路の動作タイミングを制御するタイミング制御回路178に接続される。
【0060】
次に、プリフェッチ回路16のプリフェッチ(先読み)動作について説明する。
まず、プリチャージ信号線169をLとしてPMOS168(PC0 ,PC1 ,…,PCm )をすべてオンして、プリフェッチ回路16の(m+1)本の検出線165(L0 ,L1 ,…,Lm )を所定電位にプリチャージする。
【0061】
次に、タイミング制御回路178によってプリチャージ信号線169をHとして(m+1)個のPMOS168をオフとするとともに、制御線176を‘1’(H)としてサブブロックエンコーダ14のデータラッチ回路24にブロックヒット信号‘1’がラッチホールドされている次の優先順位(メインエンコーダ12がエンコードしているサブブロックの次の優先順位)のサブブロック32(Bi )のブロックヒット信号‘1’をAND回路166に入力し、当該サブブロック32(Bi )のブロック選択線167をオンする。
【0062】
次の優先順位のサブブロック32(Bi )が選択され、対応するAND回路166によってブロック選択線167がH(ハイレベル)になると、レジスタ36のうちヒット信号(‘1’)を保持していたレジスタ36(Ri )にそのゲート電極が接続されたトランジスタ164およびこれに接続されたトランジスタ163はオンし、検出線165(Li )を接地して、この検出線165(Li )にプリチャージされていた電荷を引き抜き、その電位を低下させる。一方、保持データが‘0’(不一致信号)であるレジスタ36(Rj )にそのゲートが接続されたトランジスタ164は、オンせずオフしたままであるので、たとえブロック選択線がHになっても、対応する検出線165(Lj )の電位は変化せず、プリチャージ電位を維持する。
【0063】
こうして、選択されたサブブロック32(Bi )の格納レジスタ36(R0 ,R1 ,…,Rm )の格納された値(‘1’:ヒット信号、‘0’:ミスヒット信号)に従って、検出線165(L0 ,L1 ,…,Lm )の電位が変化し、極性が逆極性となる。
【0064】
ここで、プリフェッチ回路16のラッチ信号線174および175にラッチ信号を与えて、プリフェッチ回路16の並列接続インバータ170および172にラッチさせる。ここでインバータ170および172の入力側の検出線はレジスタ36と逆極性であるが、出力側は反転されるので同極性となる。従って、メインエンコーダ12の最優先順位のサブブロック32のエンコードが終了すると同時に、プリフェッチ回路16にラッチされていた次の優先順位のサブブロック32のヒット信号データがデータラッチ回路18に入力される。この後、プリフェッチ回路16は上述した動作を繰り返して次の次の優先順位のサブブロック32の格納レジスタ36のヒット信号データをプリフェッチする。
符号化回路10は、基本的に以上のように構成される。
【0065】
優先順位付符号化回路10は、図2および図3に示すプライオリティ回路20、26およびエンコード回路22、28からなるものに限定されず、従来公知のプライオリティ回路およびエンコード回路を用いてもよいが、プライオリティ付けおよび符号化そのものの速度を上げるために、図4、5および6に示すプライオリティ回路180およびエンコード回路190を用いるものであってもよい。もちろん、プライオリティ回路180と図2に示すメインエンコード回路22とを組み合わせてもよい。
【0066】
図5に示すプライオリティ回路180は、3階層からなり、最下位の階層は、16個の4入力の小単位のプライオリティ回路(以下、ユニット回路という)182からなり、中間階層は4個の同様な4入力の小単位プライオリティ回路184からなり、最上位の階層は、1個の同様な4入力小単位プライオリティ回路186からなる。従って、プライオリティ回路180は、最下位階層の16個のユニット回路182によって64の入力を持つことができる。すなわち、このプライオリティ回路180の64の入力は、1グループに4つずつの16グループにグループ化されていることになる。そして、1つのグループの4入力を単位とする小単位プライオリティ回路182が構成され、16個用いられる。この16個の小単位プライオリティ回路182は、それぞれ4つのグループにグループ化され、1つのグループは4つのユニット回路182からなり、この1グループを構成する4つのユニット回路182は中間階層を構成する1つの小単位プライオリティ回路184と接続される。そして、この4つのユニット回路184は、1つのグループとなって最上位階層の小単位プライオリティ回路186に接続される。
【0067】
図5に示すプライオリティ回路180は、64入力を持ち、4入力のユニット回路182、184および186を構成単位とする3階層構造を有しているが、これに限定されず、入力数、ユニット回路の素子数および階層数は必要に応じて適宜選択することができるが、全入力数と、用いるユニット回路の入力数に応じて階層構造を適宜選択すればよい。また、各階層を構成するユニット回路182、184および186は同一の入力数のものを用いているが、これに限定されず、異なっていてもよい。ユニット回路の入力数は少ないほうが、プライオリティの変化速度を上げるのには都合がよいが、あまり少ないと、必要なユニット回路の数が大きくなり必要な階層も増えるため、さらに附随する素子や周辺回路が増えるので好ましくない。従って、全入力数と各階層に用いることのできるユニット回路の入力数(1種類でも多種類でもよい)とを選択し、これに適合するように階層数を定め、多階層の構成とすればよい。
【0068】
小単位プライオリティ回路182は、図6(a)に示すように、上側、すなわち上位が優先度が高くなるように構成され、4つの入力端子I0 ,I1 ,I2 およびI3 と4つの出力端子O0 ,O1 ,O2 およびO3 と、イネーブル信号入力端子eと論理和(OR)出力端子orと、4つのプライオリティ回路要素188(1880 ,1881 ,1882 および1883 )を有する。ここに示す回路要素188は、用いられる論理演算回路48が、イネーブル信号入力端子eを有し、ここから入力されるイネーブル信号によって活性化される論理演算回路構成である点を除き、図2に示す回路要素40と全く同様の構成を有しているので同一の構成要素には同一の番号を付し、その説明は省略する。
【0069】
図6(a)に示す論理演算回路48の具体的構成例を図7に示す。図7に示す論理演算回路48は、イクスクルーシブORゲート48aと、このイクスクルーシブORゲート48aの出力とイネーブル信号eとの論理積をとるANDゲート48bから構成される。この論理演算回路48は、入力信号が不一致、すなわちノードQ0 とノードQ1 が不一致の時、イクスクルーシブORゲート48aは‘1’を出力し、同時に、イネーブル信号eが‘1’(アクティブ)であれば、ANDゲート48bは出力端子O1 に‘1’を出力し、入力信号が一致あるいはイネーブル信号eが‘0’であれば出力端子O1 の出力は‘0’である。
【0070】
図6(b)および(c)は、それぞれ中間階層および最上位階層をそれぞれ構成するユニット回路184および186の概略図である。同図に示すユニット回路184および186は、入出力信号端子に入出力される信号を除けば図6(a)に示す最下位階層のユニット回路182と全く同様の構成を有するものであるので、その構成の図示は省略する。図6(b)に示すユニット回路184の入力端子or0 、or1 、or2 、or3 は、図5に示す最下位階層を構成する4つのユニット回路182の各々のOR出力orである。このユニット回路184の出力Otk (k=0、1、2、3)をそれぞれの入力信号ork に対応するユニット回路182k のイネーブル端子ek に接続すればOtk =‘1’となったときだけ、k番目の回路182k を選択的に活性化できる。従って、このユニット回路184のor入力の中に‘1’があるかないかをOR出力で見ることができ、このOR出力は結局、ユニット回路184の支配下に複数のユニット回路182の全てのI入力信号の中に‘1’となっているものがあるかどうかを示すことになる。
【0071】
さらに、ユニット回路184のOR出力を入力とするもう1つの上位階層のユニット回路186を図6(c)に示すが、このユニット回路186の構成は図6(a)および(b)にそれぞれ示すユニット回路182および184と全く同様の構成でよいことは前述した通りである。図6(c)に示すユニット回路186は、中間階層を構成する全ての4つのユニット回路184のOR出力をOR入力ORk (k=0、1、2、3)入力とするもので、このOR入力ORk に対応する出力OUT0 、OUT1 、OUT2 、OUT3 は中間階層の全4つのユニット回路184の各々のイネーブル信号としてそれぞれのイネーブル信号入力Eに入力される。こうして、このユニット回路186のOR入力ORk の中に‘1’があるかないかを、このユニット回路186のOR出力GORで見ることができる。このユニット回路186自身のイネーブル信号ENBはOUTk がすべて‘0’出力するまで、すなわち、OR出力GORが‘0’になるまで所定のクロック信号が別途入力される。逆に、ユニット回路186の出力OUTk が‘1’を出力している間は、プライオリティ回路180の入力信号から選択される、最も優先度の高いアドレスに唯一の‘1’を有する信号(以下、優先度付出力信号という)の出力が終了しておらず、‘1’を出力するアドレスに相当する下位のグループに、‘1’(一致信号)を持つ小単位プライオリティ回路が存在していることを示す。
【0072】
以上のような構成の小単位のプライオリティ回路182、184および186を用いて、このように階層的にプライオリティ選択を行うプライオリティ回路180の回路構成を実現すると、図2に示すプライオリティ回路20のように単階層にしてNトランジスタ44を全てシリアルにつなぐ場合に比べて非常に高速化できる。ここで、or出力やOR出力としては、図6に示すようにプライオリティ回路182の最下位(下側)の回路要素1883 のノードQ3 の信号状態(論理値)を用いることができる。このようにノードQ3 の論理値を用いるものでは、論理和出力(OR出力)を得るための特別の回路が不要であるという大きな利点があるが、これに限定されるわけではなく、さらに高速化するために、入力信号から直接OR出力を得るために、通常のORゲートなどを用いてもよい。
【0073】
このようなor出力やOR出力を用いることにより、異なる小単位プライオリティ回路182に連続する優先順位のヒット信号が存在していたとしても、優先順位の高いヒット信号が優先度付出力信号として出力され、この出力信号で入力信号がリセットされてそのOR出力が‘0’になるまでは、たとえ優先順位の低いワードアドレスのヒット信号のあるユニット回路182から‘1’出力が可能なものであっても、上位階層のユニット回路184の出力信号が‘1’出力となることはなく、従ってユニット回路182のイネーブル信号も‘1’(すなわちアクティブ)になることはなく、ユニット回路182は‘1’出力ができない。しかし、先の優先順位のユニット回路182のOR出力が‘0’になれば、次の優先順位のユニット回路182のOR出力は‘1’出力であるので、上位階層のユニット回路184も‘1’出力する。従って次の優先順位のユニット回路182のイネーブル信号は‘1’となり、このユニット回路182は‘1’出力できる。このように異なるユニット回路182間にヒット信号が跨っていても、すばやい切り換えが可能である。
【0074】
図5に示すプライオリティ回路180は64入力であるので、アドレスのコード変換には6ビットが必要で、6本のアドレス線が必要になる。図2に示すメインエンコード回路22のような従来のアドレスエンコーダを使う場合は、この6本のアドレス線と最下位階層の16個のプライオリティ回路182の各4本の出力線と、すなわち、全64本の出力線とを上述した所定の方法に従って、接地トランジスタ52を介して接続することにより6ビットのアドレスエンコーダを構成することができる。このように図5に示すプライオリティ回路180には従来のエンコード回路も適用可能であるが、出力線とアドレス線を接続する接地トランジスタの数は入力が増すほど増大する。
【0075】
このため図5に示すエンコード回路190は、前述の3階層構造のプライオリティ回路180の各階層毎に2ビットをコード化するアドレスエンコーダ構成としている。一致出力(ヒット信号)が含まれている場合優先度付出力信号を出力するが、この時、プライオリティ回路180は各階層を構成する各小単位プライオリティ回路182、184、186のうち、各階層毎に‘1’H(ハイ)を出力する出力端子が1つずつ存在する。従って、最下位階層の16個の小単位プライオリティ回路182は下位2ビットのA1 、A0 を決定する2本のアドレス線1921 、1920 に接続される。中間階層4個のプライオリティ回路184は中間の2ビットのA3 、A2 を決定する2本のアドレス線1923 、1922 に接続される。最上位階層1個のプライオリティ回路186は上位2ビットのA5 、A4 を決定する2本のアドレス線1925 、1924 に接続される。
【0076】
ここで毎階層において、1個のプライオリティ回路と2本のアドレス線との接続は同一であるので代表的に最下位階層のプライオリティ回路1820 とアドレス線1921 、1920 との接続を代表例として説明する。プライオリティ回路1820 の第1出力線O0 はアドレス線1921 、1920 をそれぞれ接地(または‘0’電位に固定)する2つの接地トランジスタ52のゲート電極に接続される。従って、第1出力線O0 の出力のみが‘1’[(O0 、O1 、O2 、O3 )=(1、0、0、0)]の場合は2つの接地トランジスタ52はオンし、A0 =A1 =0となる。次に、プライオリティ回路1820 の第2出力線O1 はアドレス線1921 を接地(または‘0’電位に固定)する接地トランジスタ52のゲート電極に接続される。このため、第2出力線O1 のみが‘1’[(O0 、O1 、O2 、O3 )=(0、1、0、0)]の場合には接地トランジスタ52がオンし、(A1 、A0 )=(0、1)となる。さらにプライオリティ回路1820 の第3出力線O2 は、アドレス線1920 を接地(または‘0’電位に固定)する接地トランジスタ52のゲート電極に接続される。従って、第3出力線O2 のみが‘1’[(O0 、O1 、O2 、O3 )=(0、0、1、0)]の場合には接地トランジスタ52がオンし、(A1 、A0 )=(1、0)となる。ここで、第4出力線O3 のみが‘1’[(O0 、O1 、O2 、O3 )=(0、0、0、1)]の場合には(A1 、A0 )=(1、1)となる。
【0077】
このような接続を各階層毎に2本のアドレス線に対し、各プライオリティ回路毎に行うことによりエンコード回路190を構成することができる。ここでエンコード回路190において、アドレス線1920 〜1925 と各プライオリティ回路182,184,186との接続に用いられる接地トランジスタ52の数は1つのプライオリティ回路に対して4個であるので、最下位階層では64個、中間階層で16個、最上位階層で4個であり、合計84個でよいのに対し、図2に示すアドレスエンコーダのように6本のアドレス線のすべてを最下位階層の16個のメインプライオリティ回路20に接続するものでは192個が必要となる。従って図5に示すエンコード回路190ではエンコード動作の高速化の効果が得られる。
【0078】
本発明の前提となる符号化回路のメインエンコーダおよびサブブロックエンコーダを構成するプライオリティ回路として、図2および図6(a)に示すようなNチャンネルトランジスタをシリアル接続する構成のものを代表例に挙げて、これを用いて説明したが、これに限定されず、Pチャンネルトランジスタをシリアル接続する構成のプライオリティ回路を用いてもよいし、あるいは双方向のプライオリティが可能な構成としてもよいし、メインエンコーダにプリフェッチ回路が設けられる構成であれば、メインエンコーダおよびサブブロックエンコーダとしては従来公知のものも使用可能である。
【0079】
以上、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路を種々の例を挙げて説明したが、図示例に限定されるわけではなく、メインエンコーダおよびサブブロックエンコーダを構成するプリフェッチ回路、データラッチ回路、プライオリティ回路、エンコード回路の入力数や構成など、設計の変更および様々な改良が可能なことは勿論である。
【0080】
以上詳述したように、図示例の符号化回路においては、連想メモリ装置の連想メモリブロックの検索データとの一致検索を行う際、この連想メモリブロックを構成する複数の連想メモリサブブロックのうちの第1番目の連想メモリサブブロックの一致検索結果、例えば複数の連想メモリワードに前記検索データと一致する一致信号(ヒット信号)が、例えばレジスタ等の保持手段に保持されるとともに前記連想メモリサブブロックに前記検索データと一致する連想メモリワードの存在を示すブロックヒット信号を発生する。続いて、優先順位付サブブロック符号化回路がこのブロックヒット信号を受けて最も優先順位の高い連想メモリサブブロックを選択し、サブブロックアドレスを発生する。そして、この選択された最高優先順位のサブブロックのヒット信号(全ワードについて同時に)が優先順位付符号化回路に転送される。この後、優先順位付符号化回路は、所定の優先順位で前記ヒット信号を符号化し、ワードアドレスを出力する。この符号化中に、次の優先順位の連想メモリサブブロックを前記優先順位付サブブロック符号化回路によって選択し、このサブブロックのレジスタ等の保持手段に保持されているヒット信号データを前記優先順位付符号化回路内に設けられているプリフェッチ回路に入力する。こうして、前記優先順位付符号化回路は、前記ヒット信号の符号化を終了した後、直ちに先にプリフェッチ回路に入力されていた次の優先順位のサブブロックのヒット信号データの符号化を開始し、符号化し、ワードアドレスを出力する。このワードアドレス出力とサブブロックアドレス出力とを合わせて論理アドレスを出力する。
【0081】
従って、この符号化回路によれば、複数の連想メモリサブブロックから構成される連想メモリブロックであっても、複数の連想メモリサブブロック間の切り換わりに時間遅れ(待ち時間)がなく多数の連想メモリサブブロックからの出力信号を効率のよく符号化することができる。この結果、大容量データに対する高速処理を必要とする、複数の連想メモリサブブロックから構成される連想メモリブロックからなる大容量連想メモリ装置にも適用することができる。
【0082】
次に、図8〜図11を参照して、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる別の符号化回路およびこれに適用可能な個数検出回路である半導体集積回路について詳細に説明する。
【0083】
図示例の連想メモリ装置においては、一致検索時に連想メモリ装置を構成する連想メモリブロックに検索データが入力されると、複数の連想メモリサブブロックにわたって一致検索が行われる。この時、各連想メモリサブブロック毎にその結果、すなわち複数の連想メモリワードに前記検索データと一致する一致信号(ヒット信号)を含むフラグデータが保持されるとともに、優先順位付サブブロック符号化回路によって最も優先順位の高い連想メモリサブブロックが選択され、そのフラグデータが優先順位付メイン符号化回路のフラグレジスタに転送され、保持される。このフラグレジスタ内に記憶されたフラグデータ中のヒット信号をこの優先順位付メイン符号化回路は所定の優先順位に従って符号化し、ヒットアドレスを出力する。一方、このフラグデータの符号化中に、前記優先順位付サブブロック符号化回路によって選択された次の優先順位の連想メモリサブブロックのフラグデータは、プリフェッチ回路に入力される。そして、前記優先順位付メイン符号化回路では先の優先順位の連想メモリサブブロックのフラグデータ内のヒット信号が順次符号化され、ヒットアドレスが出力されるに伴ってフラグレジスタ内のヒット信号が順次リセットされていく。
【0084】
この時、このフラグレジスタのヒット信号の終わりを予め検知するタイミング検知制御回路手段によりフラグレジスタ内に保持されているヒット信号の個数を検知する。例えば、この残存するヒット信号の個数が最後の1個になった時、このヒット信号の符号化終了を待って直ちに、プリフェッチ回路に入力されている次の優先順位の連想メモリサブブロックのフラグデータをフラグレジスタに移して、このフラグデータ中のヒット信号の符号化を開始する。この後、空きを生じた前記プリフェッチ回路にさらに次の優先順位の連想メモリサブブロックのフラグデータをプリフェッチ回路に先読みする。これらの手順を順次繰り返して、前記連想メモリブロック全体のヒット信号の符号化、すなわちアドレス出力を行う。
【0085】
図示例の符号化回路によれば、上述したように、次に符号化すべき連想メモリサブブロックのフラグデータ中のヒット信号が、先の連想メモリサブブロックのフラグデータのヒット信号の符号化中にプリフェッチ回路に入力されているので、前記ヒット信号を連想メモリサブブロックから優先順位付メイン符号化回路のフラグレジスタまで転送する時間をなくすことができるとともにフラグレジスタ内のフラグデータの最後のヒット信号の符号化開始直後にヒット信号が最後の1個になったことを検出してプリフェッチ回路に保持されているフラグデータをフラグレジスタに移送し、次の符号化サイクルでは、移送されたフラグデータ中のヒット信号の符号化を行うことができるので、符号化サイクルにロスが生じることがないので、連想メモリブロック全体ひいては連想メモリ全体の符号化時間を短縮することができ、連想メモリ装置の一致検索動作を高速化できる。
【0086】
以下に、本発明の前提となる符号化回路およびこれに適用可能な半導体集積回路を添付の図面に示す好適実施例に基づいて詳細に説明する。
【0087】
図8は、本発明の前提となる符号化回路が適用された連想メモリブロックの一実施例の概略図である。同図に示す符号化回路11は、メインエンコーダ12内に本発明の前提となる半導体集積回路が適用されたタイミング制御回路60を有し、その出力でフラグレジスタ(データラッチ回路)18の初期値設定を行う点を除き、図1に示す符号化回路と基本的には同一の構成を有しているので、同一の構成要素には同一の番号を付し、その詳細な説明は省略する。
【0088】
同図に示す符号化回路11は、プリフェッチ回路付優先順位付符号化回路(以下、メインプライオリティエンコーダあるいはメインエンコーダという)12と、優先順位付サブブロック符号化回路(以下、サブブロックプライオリティエンコーダまたはサブブロックエンコーダという)14とを有し、メインエンコーダ12は、プリフェッチ回路(プリフェッチ回路)16とフラグレジスタ回路18と、メインプライオリティ回路20と、メインエンコード回路22と、タイミング制御回路60とを有し、サブブロックエンコーダ14は、データラッチ回路24と、サブプライオリティ回路26と、サブエンコード回路28とを有する。
【0089】
図9に、符号化回路11のメインエンコーダ12の一実施例の構成図を示す。同図において、メインエンコーダ12のプリフェッチ回路16は、メインエンコーダ12のメインプライオリティ回路20およびメインエンコード回路22が、より優先順位の高いサブブロック32のフラグデータ中のヒット信号を所定の優先順位(ワード)に従って一致メモリワード34のアドレスを符号化(エンコード)している間に、次の優先順位のサブブロック32のレジスタ36に保持されているフラグデータを各メモリワード34(W0 、W1 、…、Wm )毎に入力しておくためのものであり、(m+1)個の‘0’または‘1’の1ビットデータを一時的に保持可能なものであれば何でもよく、データラッチ回路やデータレジスタなどでよい。プリフェッチ回路16からのフラグデータは、タイミング制御回路60の切換タイミング出力(検出出力)によって、フラグレジスタ18にパラレル入力される。また、このフラグデータがメインエンコーダ12によって符号化されている間にサブブロックエンコーダ14によって選択された次の優先順位のサブブロック32のフラグデータがプリフェッチ回路16に各メモリワード34毎にそれぞれ取り込まれる。
【0090】
すなわち、図9に示すメインエンコーダ12においては、タイミング制御回路60によって、フラグレジスタ18内に保持されているフラグデータ(ヒット信号)の個数、例えば最後の1個を検出して、フラグレジスタ18に切換タイミング信号(初期値設定信号)を出力し、フラグレジスタ18にプリフェッチ回路16のフラグデータを入力するものである。これに対し、図2に示すメインエンコーダ12では、フラグレジスタ18に保持されたフラグデータの最後のヒット信号をリセットした後、プライオリティ回路のノードQm から出力されるOR出力である終了データ‘0’を使ってフラグレジスタ18のフラグデータをプリフェッチ回路16にラッチホールドされている次の優先順位のサブブロック32のフラグデータと切り換えることを提案している。すなわち、これでは、このノードQm 出力‘0’をインバータで反転し、その反転値‘1’をプリフェッチ回路16の全回路に入力し、ここにラッチホールドされていた次の優先順位のサブブロック32のフラグデータをフラグレジスタ回路18の各々対応する回路に入力(シフト)して保持することになる。この後、図2に示すメインエンコーダ12も図9に示すメインエンコーダ12と同様に、空いたプリフェッチ回路16には、予めサブブロックエンコーダ14によって選択されていた次の次の優先順位のサブブロック32のフラグデータがレジスタ36から読み込まれ、ラッチホールドされる。こうして、図2のメインエンコーダ12の方法でも図9のメインエンコーダ12と同様にメインプライオリティ回路20は、先の優先順位のサブブロックのフラグデータの処理を終了してから、次の優先順位のサブブロックのフラグデータがそのサブブロック32のレジスタ36から転送されてくる間、待機する必要がないので、エンコードを効率よく行うことができる。しかしながら、図2のメインエンコーダ12では、フラグレジスタに保持されている先の優先順位のサブブロックのフラグデータの最後のヒット信号がリセットされてから、フラグレジスタ18の内容をプリフェッチ回路に保持されている次の優先順位のフラグデータと切り換えるので、リセットによって開始されるプライオリティエンコードサイクルにおいて、サブブロックのフラグデータの切り換え時にエンコードできないサイクルを生じてしまい、エンコード出力をできない時間が生じることとなる。
【0091】
従って、図9のメインエンコーダ12においては、後述するようにタイミング制御回路60によって、フラグレジスタ18内のフラグデータのヒット信号の個数を検知しておき、最後の1個になったことを検出して、この検出結果を入力信号として、メインプライオリティ回路20における最後のヒット信号をリセットするかわりに、プリフェッチ回路16に保持されていた次の優先順位のサブブロック32のフラグデータをフラグレジスタ18にシフト(入力)している。従って、図9のメインエンコーダ12では同一サブブロックのフラグデータにおいても、サブブロックのフラグデータの切り換え時であっても、同じサイクルでプライオリティエンコードを行うことができる。もちろん、図9のメインエンコーダ12においてはフラグレジスタ18におけるサブブロックのフラグデータの切り換えによって空きが生じたプリフェッチ回路16には予めサブブロックエンコーダ14によって選択されていた次の次の優先順位のサブブロック32のフラグデータをレジスタ36から先に読み込んでラッチホールドすることにより、この読み込みの時間(フラグデータを各サブブロック32からメインエンコーダ12まで転送する時間)をエンコード処理と無関係なものとし、エンコードの効率を上げることができる。なお、図9のメインエンコーダ12においては、フラグレジスタ18のフラグデータの最後のヒット信号はリセットを行う必要はない。
【0092】
図10に、図示例の符号化回路11の最も特徴的な部分である本発明の前提となる半導体集積回路が適用されたタイミング制御回路60の一実施例の具体的回路図を示す。
【0093】
図10に示すタイミング制御回路60は、第1信号線(信号電流検出線)62と第2信号線(基準電流駆動線)64と、第1信号線62に各々並列にフラグレジスタ18のm+1個のデータラッチ回路180 ,181 ,…,18m の各々に対して設けられたm+1個の電流駆動回路(電流駆動手段)660 ,661 ,…,66m と、第2の信号線64に設けられたリファレンス電流駆動回路(基準電流駆動手段)68と、第1信号線62と第2信号線64に流れる電流の差、すなわち差電流を検出する差電流検出回路(差電流検出手段)70と、このタイミング制御回路の動作タイミングを制御する、すなわち、電流駆動回路66(660 ,661 ,…,66m )、リファレンス電流駆動回路68および差電流検出回路70などを制御するプリチャージ制御信号線72とを有している。
【0094】
さらに、図示例のタイミング制御回路60においては、回路の電気容量などの電気特性のバランスをとるため、第2信号線64には第1信号線62に設けられた電流駆動回路66(660 ,661 ,…,66m )に対応してダミー回路74(740 ,741 ,…,74m )が設けられ、第1信号線62には第2信号線64に設けられたリファレンス電流駆動回路68に対応してダミー回路76が設けられる。また、第1信号線62および第2信号線64の一方の端部は共に差電流検出回路70に接続されている。更に、この第1信号線62および第2信号線64は、プリチャージトランジスタ78および等電位化トランジスタ79が接続されており、この2つの信号線を例えば5Vに初期化する働きをする。ここでトランジスタ78,79はいずれもPチャンネルMOSトランジスタからなり、これらのゲート電極はプリチャージ制御信号線72に接続される。ここで、ダミー回路74(740 ,741 ,…,74m )のうち1つをリファレンス電流駆動回路68とすることも可能である。このとき、ダミー回路76は不要となる。
【0095】
電流駆動回路66は、1つを代表例として説明すると、2つの直列接続された共にNチャンネルMOSトランジスタより構成される制御トランジスタ67aおよび信号電圧印加トランジスタ67bからなり、トランジスタ67aは第1信号線62に接続され、トランジスタ67bは接地され、トランジスタ67aのゲート電極は制御信号線72に、トランジスタ67bのゲート電極はフラグレジスタ18の各々対応するデータラッチ回路に出力端子Qと接続される。
【0096】
電流駆動回路66は、検出時にはトランジスタ67aがオン状態になっており、トランジスタ67bのゲート電極にフラグレジスタ18からヒット信号‘1’が入力された時にトランジスタ67bをオンし、所定の電流i0 を流すように構成されている。この駆動電流i0 はすべての電流駆動回路660 ,661 ,…,66m で同じとなるように構成されるが、用いられるトランジスタ67a,67bのばらつき、例えばプロセスによるばらつき程度のばらつきは存在する。ダミー回路74も、電流駆動回路66と同様の構成を有し、一方が第2信号線64に接続され、他方が接地される2個の直列接続NチャンネルMOSトランジスタ75a,75bからなり、トランジスタ75aのゲート電極は同様に制御信号線72に接続されるが、トランジスタ75bのゲート電極は接地され、常時オンしないように構成される。
【0097】
これに対し、リファレンス電流駆動回路68は、第2信号線64に所定のリファレンス電流(基準電流)ir を流すためのもので、2個の直列接続されたNチャンネルトランジスタ69a、69bからなり、トランジスタ69aは第2信号線64に、そのゲート電極は制御信号線72に接続され、トランジスタ69bは接地され、そのゲート電極は所定のH(ハイ)電位の電源に接続され、常にトランジスタ69bをオンするように構成される。一方、ダミー回路76は、第1信号線62に接続されている以外はダミー回路74と全く同様の構成のNチャンネルMOSトランジスタ77a、77bからなる。リファレンス電流ir の値は、電流駆動回路66(660 ,661 ,…,66m )が流すことのできる電流値i0 と検出するヒット信号の個数に応じて適宜決めればよいが、最後の1個のヒット信号を検出するためには、i0 超2i0 未満であって後述する差電流検出回路70が差電流を検出可能な電流値とすればよい。この電流値ir は構成するトランジスタ67a,67b、69a,69bなどの回路素子のばらつきを考慮して決めればよいが、例えば、ir =1.2i0 〜1.8i0 とするのが好ましい。
【0098】
差電流検出回路70は、両信号線62および64を流れる電流の大小を検出し、その電流の大きい方の側をL(ロウ)状態に、小さい側をH(ハイ)状態にラッチホールドするための電流駆動型ラッチ回路であって、両信号線62と64の他端側の電源と同じ所定の電位、例えば5V電源に接続されるPチャンネルMOSトランジスタ(PMOS)80a、80bと、これらにそれぞれ直列接続されるNチャンネルMOSトランジスタ(NMOS)82a、82bと、PMOSからなる2個のプリチャージトランジスタ83からなる。第1信号線62に接続されるトランジスタ82aと80aのゲート電極は互いに接続され、トランジスタ80bと82bとの間の接点Bにおいて接続される。また、第2信号線64に接続されるトランジスタ82bと80bのゲート電極は互いに接続され、トランジスタ80aと82aとの間の接点Aにおいて接続される。接点Bからは出力線が延出し、インバータ84を介して出力端子85に接続される。
【0099】
次に、タイミング制御回路60の検出動作を、フラグレジスタ18のフラグデータのヒット信号が最後の1個となったこと、すなわち最後のヒット信号を検出する際の作用を代表例として説明する。ここで、フラグレジスタ18には複数のヒット信号(‘1’)を持つフラグデータが保持されており、リファレンス電流ir は、1つの電流駆動回路66の駆動電流i0 の1.5倍、すなわち1.5i0 に設定されているものとする。
【0100】
まず、検出に先だって、プリチャージ制御信号線72をL(ロウ:‘0’)とし、両プリチャージトランジスタ78とトランジスタ79をオンして第1および第2の信号線62および64を、従って接点aとbも同一のH(ハイ)電位(例えば5V)にプリチャージするとともに、両プリチャージトランジスタ83をオンして、差電流検出回路70内の接点AおよびBを同様にH(ハイ)電位(例えば5V)にプリチャージしておく。なお、差電流検出回路70のトランジスタ82a,82b、全ての電流駆動回路66のトランジスタ67a、リファレンス電流駆動回路68のトランジスタ68aはオフの状態である。
【0101】
次に、プリチャージ制御信号線72をH(ハイ:‘1’)とし、PMOSトランジスタ78、79,83をオフして、NMOSトランジスタ67a,69a,75a,77aをオンする。従って、リファレンス電流駆動回路68の2つのトランジスタ69a,69bは共にオンすることになり、第2信号線64にはリファレンス電流ir (=1.5i0 )が流れ接点bの電位を低下させる。一方、m+1個の電流駆動回路66(660 ,661 ,…,66m )のうち、フラグレジスタ18のフラグデータがヒット信号‘1’であるデータラッチ回路18j に接続されたゲート電極をもつトランジスタ67bはオンし、トランジスタ67aはオンしていることから、この電流駆動回路66j には第1信号線62から駆動電流i0 が流れる。ところで、フラグレジスタ18のフラグデータにはヒット信号‘1’が複数例えばk(k≧2)個あることから、第1信号線62にはki0 の電流が流れることになり、接点aの電位もそれに応じて低下する。
【0102】
ここで、kが2より大の時は、第1信号線62に流れる電流ki0 は第2信号線64に流れるリファレンス電流ir (=1.5i0 )より大きいため、接点bの電位に比べ接点aの電位の方が早く低下する。ここで、NMOS82aのゲート電位(接点Bの電位)とソース電位(接点aの電位)の差が、NMOS82aの基板バイアスされたしきい値電圧(例えば1.4V)より大きくなる、即ち接点aが3.6V以下になると、NMOS82aはオンし、接点Aの電位が低下する。一方、この時、接点bの電位はNMOS82aをオンさせる程低下しておらず、このままオフ状態が維持される。この後、両信号線62および64にさらに電流が流れて、接点Aおよびaはさらに電位が低下するが、接点A電位の低下の方が接点bの電位低下より大きいため、NMOS82bはオフ状態を保つ。こうして接点Aは‘0’となるが接点Bは‘1’のままであり、インバータ84の出力は‘0’を保つことになる。
【0103】
次に、フラグレジスタ18内の複数のヒット信号‘1’がエンコードされるに従って1つ1つ‘0’にリセットされ、残存するヒット信号が1個になった時に、タイミング制御回路60の検出動作を行うと、すなわち、はじめにプリチャージ制御信号線72に‘0’を入力して、プリチャージし、次に‘1’を入力すると、上述したのと同様にして、第1信号線62には電流i0 が、第2信号線64にはリファレンス電流ir (=1.5i0 )が流れることになる。この時、第2信号線64に流れる電流の方が大きいため、接点bの電位の方が接点aの電位よりも早く低下し、上述とは逆にNMOS82aはオフ状態を保ち、NMOS82bはオン状態となる。従って、接点Bの電位は低下し、これがインバータ84によって反転され、出力端子85からは‘1’が出力される。なお、両信号線62,64をあらかじめ電源電位(5V)までプリチャージしておくことは差電流検出回路70の安定動作のためには、極めて重要な意味がある。つまり、5Vまでプリチャージし、この差電流検出回路70の動作電位である3.6Vまでいずれかの信号線62,64が降下してくるまでのタイミングマージンを作り出すことで、ラッチ型の差電流検出回路の動作タイミングに余裕をもたせることになり、制御線の切り換えノイズ等の影響を除去することが可能となるためである。
【0104】
以上から、タイミング制御回路60の出力端子85から出力される出力信号が‘0’であればフラグレジスタ18内に保持されているヒット信号‘1’は2個以上、出力信号が‘1’であればヒット信号は1個以下であることがわかる。従って出力信号が‘0’から‘1’に変化した時に、この検出結果、例えば‘1’信号または信号の変化を使ってフラグレジスタ18内のフラグデータをプリフェッチ回路16内のフラグデータに切り換えればよい。もちろんここで出力信号は接点Aからとり出してもよい。
【0105】
図示例のタイミング制御回路60を用いたエンコードタイミングのタイムチャートを図11に示す。
同図において(a)はメインエンコーダ12のエンコードタイミングを示す。(b)はフラグレジスタ18のヒット信号‘1’のリセットタイミングを示す。(c)はタイミング制御回路60の検出タイミングを示す。(d)はタイミング制御回路60の出力信号の変化を示し、(e)はプリフェッチ回路16のフラグデータをフラグレジスタ18へシフトするタイミングを示す。
【0106】
このように、フラグレジスタ18内に保持されていた同じフラグデータ内のヒット信号を所定のプライオリティでエンコードしている間はヒット信号のリセットパルスの立ち上がりのタイミングから所定時間してエンコードサイクルが開始される(立ち上がる)ように構成されている。しかし、タイミング制御回路60がエンコードパルスによって起動される検出タイミングにおいて最後のヒット信号を検出し、その出力信号(d)が‘0’から‘1’に変化すると、本来リセットパルスが発生するタイミングでプリフェッチ回路16のフラグデータをフラグレジスタ18に入れ換えるためのパルスが図10に示すパルス回路87によって発生され、フラグレジスタ18のフラグデータの切り換えを行なう。そして、連続するエンコードサイクルにおいて、このフラグデータを用いてプライオリティ回路20およびエンコード回路22によるエンコード動作を行ない、エンコードアドレスを出力する。こうしてメインエンコーダは、連続した所定のサイクルでエンコード動作を行ない、エンコード出力をする。メインエンコーダ12は基本的には以上のように構成される。
【0107】
以上詳述したように図示例の符号化回路においては、図1の符号化回路の効果に加え、優先順位付符号化回路が、データ切換タイミング制御回路によって前記ヒット信号の符号化を終了した後、連続したサイクルで直ちに先にプリフェッチ回路に入力されていた次の優先順位のサブブロックのフラグ信号データの符号化を開始し、符号化し、ワードアドレスを出力することができる。
【0108】
従って、図示例の符号化回路によれば、複数の連想メモリサブブロックから構成される連想メモリブロックであっても、複数の連想メモリサブブロック間の切り換わりに時間遅れ(待ち時間)がなく多数の連想メモリサブブロックからの出力信号を効率のよく連続したサイクルで符号化することができる。この結果、大容量データに対する高速処理を必要とする、複数の連想メモリサブブロックから構成される連想メモリブロックからなる大容量連想メモリ装置にも適用することができる。
また、本発明の前提となる半導体集積回路によれば、電流駆動手段に入力されるデータ‘0’または‘1’の個数が予め設定された個数となったことを正確かつ迅速に検出することができる。
【0109】
次に、図12〜図14を参照して、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる別の半導体集積回路について詳細に説明する。この半導体集積回路は、図8に示す符号化回路にタイミング制御のための個数検出回路として適用可能なものである。
【0110】
図示例の半導体集積回路では、まず第1の信号線、すなわち信号電流検出線に各々並列に設けられたM(M≧1)個の電流駆動手段をそれぞれ制御するデータ入力線に入力されるデータ‘1’または‘0’のうち、検出したいデータの個数k0 (M>k0 ≧0)に応じて第2の信号線である基準電流駆動線に設けられた基準電流駆動手段に流す基準電流(リファレンス電流)値ir 、すなわち、1個の電流駆動手段に流れる電流値i0 のk0 倍より大きくk0 +1倍より小さい電流値(k0 0 <ir <(k0 +1)i0 )を予め設定しておく。ここで、この半導体集積回路の各電流駆動手段は、データ入力線がそのゲート電極に接続された信号電圧印加トランジスタと、この半導体集積回路の動作タイミングを制御する制御トランジスタとを有し、信号電圧印加トランジスタが信号電流検出線側に設けられている。
【0111】
このため、図示例の半導体集積回路において、動作タイミングに応じて、全電流駆動手段の制御トランジスタおよび基準電流駆動手段の制御トランジスタが制御され、これらがオンすると、データ入力線に所要のデータが入力されたすべての電流駆動手段の信号電圧印加トランジスタはオンしているので、これらの各々の電流駆動手段には電流i0 が流れるので、その個数k(M>k≧0)に応じた電流i(i=ki0 )が信号電流検出線に流れるのに対し、基準電流駆動線には基準電流駆動手段によって基準電流値ir が流れる。この両信号線に流れる電流値iとir との差電流を差電流検出手段によって検出し、この差電流の符号の逆転、すなわち両電流値iとir との大小関係の逆転(タイミング)を出力する。こうして、各データ入力線に入力されるデータのうちの所要のデータの個数kが予め設定された検出すべきデータの個数k0 となったことを検出する。こうして図示例の半導体集積回路はデータ入力線に入力された所要のデータの個数を検出することができる。
【0112】
この時、電流駆動手段の制御トランジスタが信号電圧印加トランジスタより電流信号検出線側に設けられていると、たとえデータ入力線に入力されたデータが所要のデータでなく信号電圧印加トランジスタがオフしたままであっても、この半導体集積回路が動作タイミングになって、全電流駆動手段の制御トランジスタがオンする時に、信号電流検出線から制御トランジスタに一時的な電流の流入が生じるため、動作開始時点で信号電流検出線にも電流が流れる。このため、検出が必要な逆転時にこの検出線に流れる電流と基準電流駆動線に流れる基準電流との差電流が小さくなってしまい、差電流検出手段による差電流の逆転の迅速な検出が困難であり、ノイズ等の影響を受けやすく、安定して正確な検出を迅速に行えないことがある。
【0113】
これに対し、図示例の半導体集積回路は、信号電圧印加トランジスタが制御トランジスタよりも信号電流検出線側に設けられているため、たとえ、全電流駆動手段の制御トランジスタがオンしても、信号電圧印加トランジスタがオンしないかぎり信号電流検出線からの電流は流入しない。従って、電圧印加トランジスタがオンしたことによって信号電流検出線に流れる電流と基準電流との差電流を検出が必要な逆転時にも比較的大きくとることができる。その結果、差電流検出手段による差電流の逆転の検出を安定して正確かつ迅速に行うことができる。
【0114】
図12に、本発明の前提となる半導体集積回路が適用されたタイミング制御回路61の別の実施例の具体的回路図を示す。ここで、同図に示すタイミング制御回路61は図8に示す符号化回路11に適用されるものであって、図10に示すタイミング制御回路60と、電流駆動回路66の信号印加トランジスタ67cと制御トランジスタ67d、およびリファレンス電流駆動回路68のトランジスタ69cと69dの構成が異なる点を除き全く同一であるので、同一の構成要素には同一の番号を付し、その詳細な説明は省略する。
【0115】
図12に示すタイミング制御回路61において、最も特徴とする部分である電流駆動回路66は、1つを代表例として説明すると、2つの直列接続された共にNチャンネルMOSトランジスタより構成される信号電圧印加トランジスタ67cおよび制御トランジスタ67dからなり、信号電圧印加トランジスタ67cは第1信号線62に接続され、制御トランジスタ67dは接地され、信号電圧印加トランジスタ67cのゲート電極はフラグレジスタ18の各々対応するデータラッチ回路の出力端子Qに、制御トランジスタ67dのゲート電極は制御信号線72に接続される。
【0116】
電流駆動回路66は、検出時には制御トランジスタ67dがオン状態になっており、信号電圧印加トランジスタ67cのゲート電極にフラグレジスタ18からヒット信号‘1’が入力された時に信号電圧印加トランジスタ67cをオンし、第1信号線62から所定の電流i0 を流すように構成されている。この駆動電流i0 はすべての電流駆動回路660 ,661 ,…,66m で同じとなるように構成されるが、用いられるトランジスタ67c,67dのばらつき、例えばプロセスによるばらつき程度のばらつきは存在する。ダミー回路74も、電流駆動回路66と同様の構成を有し、一方が第2信号線64に接続され、他方が接地される2個の直列接続NチャンネルMOSトランジスタ75c,75dからなり、接地側のトランジスタ75dのゲート電極は同様に制御信号線72に接続されるが、第2信号線64側のトランジスタ75cのゲート電極は接地され、常時オンしないように構成される。
【0117】
これに対し、リファレンス電流駆動回路68は、第2信号線に所定のリファレンス電流(基準電流)ir を流すためのもので、2個の直列接続されたNチャンネルトランジスタ69c、69dからなり、トランジスタ69cは第2信号線に、そのゲート電極は常にトランジスタ69cをオンするように所定のH(ハイ)電位の電源に接続され、トランジスタ69dは接地され、そのゲート電極は制御信号線72に接続される。また、このリファレンス電流駆動回路68のダミー回路76は、第1信号線62に接続されている。リファレンス電流ir の値は、電流駆動回路66(660 ,661 ,…,66m )が流すことのできる電流値i0 と検出するヒット信号の個数に応じて適宜決めればよいが、最後の1個のヒット信号を検出するためには、i0 超2i0 未満であって後述する差電流検出回路70が差電流を検出可能な電流値とすればよい。この電流値ir は構成するトランジスタ67c,67d、69c,69dなどの回路素子のばらつきを考慮して決めればよいが、例えば、ir =1.2i0 〜1.8i0 とするのが好ましい。
【0118】
差電流検出回路70の接点Bからは出力線が延出し、インバータ84を介してアンド回路88に接続される。アンド回路88のもう一方の入力には、前述のフラグレジスタ18のリセット信号が入力される。アンド回路88の出力は前述のフラグレジスタ18のクロック端子に接続される。
【0119】
次に、図示例のタイミング制御回路61の検出動作を、フラグレジスタ18のフラグデータのヒット信号が最後の1個となったこと、すなわち最後のヒット信号を検出する際の作用を代表例として説明する。ここで、フラグレジスタ18には複数のヒット信号(‘1’)を持つフラグデータが保持されており、リファレンス電流ir は、1つの電流駆動回路66の駆動電流i0 の1.5倍、すなわち1.5i0 に設定されているものとする。
【0120】
まず、検出に先だって、プリチャージ制御信号線72をL(ロウ:‘0’)とし、両プリチャージトランジスタ78とトランジスタ79をオンして第1および第2の信号線62および64を、従って接点(ノード)aとbも同一のH(ハイ)電位(例えば5V)にプリチャージするとともに、両プリチャージトランジスタ83をオンして、差電流検出回路70内の接点AおよびBを同様にH(ハイ)電位(例えば5V)にプリチャージしておく。なお、差電流検出回路70のトランジスタ82a,82b、全ての電流駆動回路66のトランジスタ67d、リファレンス電流駆動回路68のトランジスタ69dはオフの状態である。
【0121】
次に、プリチャージ制御信号線72をH(ハイ:‘1’)とし、PMOSトランジスタ78、79,83をオフして、NMOSトランジスタ67d,69d,75d,77dをオンする。従って、リファレンス電流駆動回路68の2つのトランジスタ69c,69dは共にオンすることになり、第2信号線64にはリファレンス電流ir (=1.5i0 )が流れ接点bの電位を低下させる。一方、(m+1)個の電流駆動回路66(660 ,661 ,…,66m )のうち、フラグレジスタ18のフラグデータがヒット信号‘1’であるデータラッチ回路18j に接続されたゲート電極をもつ信号電圧印加トランジスタ67cはオンし、制御トランジスタ67dはオンしていることから、この電流駆動回路66j には第1信号線62から駆動電流i0 が流れる。ところで、フラグレジスタ18のフラグデータにはヒット信号‘1’が複数例えばk(k≧2)個あることから、第1信号線62にはki0 の電流が流れることになり、接点aの電位もそれに応じて低下する。
【0122】
ここで、kが2より大の時は、第1信号線62に流れる電流ki0 は第2信号線64に流れるリファレンス電流ir (=1.5i0 )より大きいため、接点bの電位に比べ接点aの電位の方が早く低下する。ここで、NMOS82aのゲート電位(接点Bの電位)とソース電位(接点aの電位)の差が、NMOS82aの基板バイアスされたしきい値電圧(例えば1.4V)より大きくなると、(例えば、接点Bの電位が5Vのとき接点aの電位が3.6Vまで下がると)NMOS82aはオンし、接点Aの電位が低下する。一方、この時、接点bの電位はNMOS82bをオンさせる程低下しておらず、このままオフ状態が維持される。この後、両信号線62および64にさらに電流が流れて、接点Aおよびaはさらに電位が低下するが、接点aの電位の低下、すなわち接点A電位の低下の方が接点bの電位低下より大きいため、NMOS82bはオフ状態を保つ。こうして接点Bは‘1’を保ち、これに接続されているインバータ84によってアンド回路88に‘0’が出力されることになる。一方、接点Aは‘0’となる。
【0123】
次に、フラグレジスタ18内の複数のヒット信号‘1’がエンコードされるに従って1つ1つ‘0’にリセットされ、残存するヒット信号が1個になった時に、図示例のタイミング制御回路61の検出動作を行うと、すなわち、はじめにプリチャージ制御信号線72に‘0’を入力して、プリチャージし、次に‘1’を入力すると、上述したのと同様にして、第1信号線62には電流i0 が、第2信号線64にはリファレンス電流ir (=1.5i0 )が流れることになる。この時、第2信号線64に流れる電流の方が大きいため、接点bの電位の方が接点aの電位よりも早く低下し、上述とは逆にNMOS82aはオフ状態を保ち、NMOS82bはオン状態となる。従って、接点Bの電位がロウレベルに低下し、インバータ84に反転され、前述のアンド回路88に‘1’が出力される。接点Aの電位はH(ハイ)電位に維持される。
【0124】
以上から、図示例のタイミング制御回路61のインバータ84から出力される出力信号が‘0’であればフラグレジスタ18内に保持されているヒット信号‘1’は2個以上、この出力信号が‘1’であればヒット信号は1個以下であることがわかる。従ってこの出力信号が‘0’から‘1’に変化した時に、アンド回路88によってこの検出結果、すなわち‘1’信号と前述のフラグレジスタ18のリセット信号とから切り換え制御信号を得、この切り換え制御信号を使ってフラグレジスタ18内のフラグデータをプリフェッチ回路16内のフラグデータに切り換えればよい。もちろん、ここで出力信号は接点Aのみまたは接点AおよびBの両方からとり出してもよい。
【0125】
ここで、上述したように、図10に示すタイミング制御回路60は、図12に示すタイミング回路61と、電流駆動回路66(660 ,661 ,…,66m )の制御トランジスタ67aと信号電圧印加トランジスタ67bとの配置およびダミー回路74(740 ,741 ,…,74m )の制御トランジスタ75aとゲート接地トランジスタ75bの配置が入れ換っている点を除いて全く同一であり、全く同様にして信号電圧印加トランジスタ67bのゲート電極に入力されるフラグレジスタ18のデータラッチ回路の保持するヒット信号‘1’の個数が、所定の数、例えば最後の1個になったことを検出することができるものである。
【0126】
両タイミング制御回路60および61のいずれにおいても、上述したようにタイミング検出動作が開始されると、信号電流検出線(第1の信号線)62にはフラグレジスタ18のヒット信号(‘1’)の個数に応じた電流が流れ、基準電流駆動線(第2の信号線)64には所定のリファレンス電流が流れる。そこで、差電流検出回路70は、両信号線62および64に流れる電流の差によって生じる接点a,bの小さな電位差を、一方(接点a,bの高電位側)がプリチャージ電圧(例えばVdd)に保持され、他方(低電位側)が接地レベル(例えばほぼOV)まで低下する接点A,Bの大きな電位差として検出するためのものである。
【0127】
ここで、はじめに同一電位(例えばVdd=5V)にプリチャージされていた接点AとBの電位のその後の変化は、トランジスタ82aと82bとのどちらがオンするかどうかで決まる。すなわち、上述したように、タイミング検出動作の間に、第1および第2の信号線62および64に電流が流れ、両信号線62,64の接点aおよびbの電位が低下し、接点Bと接点aの電位差、接点Aと接点bの電位差のいずれかが基板バイアスされたしきい値(例えば、1.4V)より大きくなると、すなわち、両信号線62および64の電位(接点aおよびbの電位)のいずれかが上記しきい値(例えば、1.4V)を超えて(3.6Vより)低下すると、トランジスタ82aおよび82bのいずれかがオンする。その結果、オンしたトランジスタ82aまたは82b側のそれぞれの接点AまたはBの一方は、直ちにそれぞれ低下した接点aまたはbの電位に等しくなり、その後、接地レベル(OV)まで一緒に低下する。他方、オンしなかったトランジスタ82aまたは82b側のそれぞれの接点AまたはBはプリチャージされた電位(5V)に保たれる。
【0128】
こうして、接点Bの電位を検出信号とし、インバータ84を介して出力信号として取り出すことで、所定個数(例えば最後の1個)のヒット信号となったことを検出することができる。すなわち、接点Bの先にはインバータ84が接続されているので、トランジスタ82bがオンし、接点Bの電位が低下して、インバータ84のしきい値(例えば、約2.5V)より下がった時に、出力信号‘1’が得られることになる。
【0129】
以上から分かるように上述の差電流検出回路70では、接点AとBとが分かれ始める時の接点aとbとの電位差が小さすぎると、トランジスタ82aおよび82bのオン動作が接点a,bの電位差と無関係に起ってしまう、すなわち誤動作が生じる可能性が高くなる。従って、両接点aとbとの電位差は大きい方が、ノイズの影響を受けにくく、常に正確かつ安定したタイミング検出を行うことができる。
【0130】
しかし、図10に示すタイミング制御回路60では、電流駆動回路66の制御トランジスタ67aが信号電流検出線である第1信号線62に接続され、制御トランジスタ67aに直列に接続される信号電圧印加トランジスタ67bの他方の電極が接地され、ダミー回路74の制御トランジスタ75aが基準電流駆動線である第2信号線に接続され、この制御トランジスタ75aに直列に接続されるゲート接地トランジスタ75bの他方の電極が接地される。このため、プリチャージ制御信号線72をプリチャージ動作のロウ(L:‘0’)レベルからタイミング検出動作のハイ(H:‘1’)レベルに変化させると、フラグレジスタ18の各データラッチ回路18j (j=0,…,m)の保持データにかかわらず、電流駆動回路66の制御トランジスタ67aはオンし、制御トランジスタ67aおよび信号電圧印加トランジスタ67b間に一時的な電荷の流入が生じ、また、同様にダミー回路74の制御トランジスタ75aはオンし、制御トランジスタ75aおよびゲート接地トランジスタ75b間に一時的な電荷の流入が生じる。
【0131】
その結果、図14(b)に示すように、タイミング検出動作の初期に、第1および第2の信号線62および64から電流駆動回路66およびダミー回路74の制御トランジスタ67aおよび75aに電流が流れ、各信号線62、64の接点aおよびbの電位が同時に低下する。特に、フラグレジスタ18のデータラッチ回路の数が多く対応する電流駆動回路66およびダミー回路74の数が多いと、検出初期に第1および第2の信号線62および64に流れる電流が大きくなり、接点aおよびbの電位が同時に大きく低下する。このため、信号電圧印加トランジスタ67bのオンによる接点aとbの電位に差が生じるのが遅くなり、その時の両者の電位が低くなってしまう。すなわち、両信号線62および64の電位(接点aおよびbの電位)のいずれかが所定値(例えば、3.6V)を超えて低下し、トランジスタ82aおよび82bのいずれかをオンさせる時の接点aおよびbの電位差が小さくなってしまう。
【0132】
これに対し、図12のタイミング制御回路61では、電流駆動回路66の信号電圧印加トランジスタ67cが第1信号線62側、制御トランジスタ67dが接地側に設けられ、同様にダミー回路74のゲート接地トランジスタ75cが第2信号線側、制御トランジスタ75dが接地側に設けられている。従って、タイミング検出動作が開始されても、信号電圧印加トランジスタ67cがオンしない電流駆動回路66の制御トランジスタ67dはすべてオンしないし、ダミー回路74の制御トランジスタ75dはすべてオンしないので、検出動作初期に両信号線62、64に制御トランジスタ67d,75dを充電するための電流が流れることはない。その結果、ヒット信号‘1’が保持されているフラグレジスタ18のデータラッチ回路に対応するすべての電流駆動回路66の信号電圧印加トランジスタ67cおよび制御トランジスタ67dのみがオンし、その数に応じた電流のみが第1信号線62には流れ、第2信号線にはリファレンス電流駆動回路68のトランジスタ69c,69dのみがオンし、第2信号線にはリファレンス電流のみが流れる。従って、図14(a)に示すように接点aおよびbの電位差は検出動作直後から、すなわち両接点a,bの電位が少し低下した時点から生じ、しかもこれらの接点a,bの電位のいずれかが所定値(例えば3.6V)を切る時の両接点の電位差は大きくとることができる。
【0133】
このように、図10および図12に示すタイミング制御回路60および61では、接点aまたはbのいずれか一方が所定値(例えば3.6V)を切る時の両接点a,bの電位差が異なる。例えば、図14(a)および(b)に示す例(それぞれ図12および図10に示すタイミング制御回路61および60の例である)について説明すると、接点AとBとが分かれ始める点である接点bが3.6Vを切る時点で、両接点aとbとの電位差は図14(a)の場合は約0.3Vであるのに対し、図14(b)の場合は約0.1Vである。従って、図14(a)に示すタイミング制御回路61の方がノイズマージンが大きく、その結果、ノイズの影響を受けても、差電流検出回路70が誤動作する可能性は小さく、常に正確かつ安定したタイミング検出を行うことができる。
【0134】
また、この図14(a)および(b)では、両信号線62,64をあらかじめプリチャージすることによって、接点aおよびbが3.6Vを切る時点での両接点の電位差を大きくとっている。しかし、ここでもし両信号線62,64をプリチャージせずに動作させるならば、全く接点a、bの電位差はなく、正常動作は期待できない。従って、同図(a)および(b)の場合いずれも、プリチャージされてから動作することに大きな意味をもつ。
【0135】
なお、図14(a)および(b)は、それぞれ図12および図10に示すタイミング制御回路61および60において、電源電圧(Vdd)が5V、電流駆動回路66およびダミー回路74の数(m+1)が256個であり、リファレンス電流ir が1.5i0 の時、検出タイミング(プリチャージ制御信号線72の電圧の変化)と、フラグレジスタ18に保持されているヒット信号‘1’が最後の1個の場合の検出タイミングと接点a,bおよび接点A,Bの電位の変化ならびにインバータ84の出力信号(out put)を示すものである。
タイミング制御回路61は、基本的に以上のように構成される。
【0136】
タイミング制御回路61を用いた図8に示す符号化回路11のメインエンコーダ12のエンコードタイミングのタイムチャートを図13に示す。
【0137】
同図において(a)はメインエンコーダ12のエンコードタイミングを示すエンコード信号を表わす。(b)はフラグレジスタ18のヒット信号‘1’のリセットタイミングを示すリセットパルスを表わす。(c)は図12のタイミング制御回路61の検出動作タイミングを示す検出動作信号(プリチャージ制御信号線72の印加電圧)を表わす。(d)はタイミング制御回路61の接点Bの電位の変化を示す検出出力信号を表わし、(e)は、(d)の検出出力信号をインバータ84で反転した出力信号を示し、(f)はプリフェッチ回路16のフラグデータをフラグレジスタ18へシフトするタイミングを示すフラグデータ切り換え制御信号を表わす。
【0138】
このように、フラグレジスタ18内に保持されていた同じフラグデータ内のヒット信号を所定のプライオリティでエンコードしている間は、すなわち、検出出力信号(d)がハイレベル(H)であればヒット信号のリセットパルス(b)の立ち上がりのタイミングから所定時間してエンコードサイクルが開始される(立ち上がる)ように構成されている。しかし、図示例のタイミング制御回路61がエンコードパルス(a)によって起動される検出タイミングにおいて最後のヒット信号を検出し、その検出出力信号(d)がハイレベル(H)‘1’からロウレベル(L)‘0’に変化すると、その反転出力信号(e)が‘0’から‘1’に変化する。ここで、図12に示すアンド回路88は、検出出力信号(d)の反転出力信号(e)とリセットパルス(b)の論理積をとり、プリフェッチ回路16のフラグデータをフラグレジスタ18に入れ換えるための切り換え制御パルス(f)を発生する。こうして切り換え制御パルス(f)によってフラグレジスタ18のフラグデータの切り換えが行なわれる。
【0139】
以上詳述したように、図示例の半導体集積回路によれば、電流駆動手段の信号電圧印加トランジスタを信号電流検出線側に、制御トランジスタを接地側に設けたので、検出動作タイミングにおいても、信号電圧印加トランジスタがオンしないかぎり制御トランジスタがオンしないので、信号電流検出線から全ての制御トランジスタを充電するための電荷の流出がなく、差電流検出手段の検出不能や誤動作を生じることがない。従って、基準電流駆動線と信号電流検出線との差電流を安定して、正確かつ迅速に検出することができ、連想メモリなどの符号化回路の符号化終了を予測するタイミング制御回路として好適に用いることができる。
【0140】
次に、図15〜17を参照して、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となるさらに別の半導体集積回路について詳細に説明する。図示例の半導体集積回路は、図10および図12に示す半導体集積回路と同様に、図8に示す符号化回路にタイミング制御用個数検出回路として適用可能なものである。
【0141】
図示例の半導体集積回路では、まず第1の信号線、すなわち信号電流検出線に各々並列に設けられたM(M≧1)個の電流駆動手段をそれぞれ制御するデータ入力線に入力されるデータ‘1’または‘0’のうち、検出したいデータの個数k0 (M>k0 ≧0)に応じて第2の信号線である基準電流駆動線に設けられた基準電流駆動手段に流す基準電流(リファレンス電流)値ir 、すなわち、1個の電流駆動手段に流れる電流値i0 のk0 倍より大きくk0 +1倍より小さい電流値(k0 0 <ir <(k0 +1)i0 )を予め設定しておく。ここで、この半導体集積回路の各電流駆動手段は、データ入力線がそのゲート電極に接続された信号電圧印加トランジスタと、この半導体集積回路の動作タイミングを制御する制御トランジスタとを有している。
【0142】
このため、図示例の半導体集積回路において、動作タイミングに応じて、基準電流駆動手段およびデータ入力線に所要のデータが入力されたすべての電流駆動手段がオンすると、基準電流駆動線には基準電流駆動手段によって基準電流値ir が流れる。これに対し、各々の電流駆動手段には電流i0 が流れ、その結果、信号電流検出線にはその個数k(M>k≧0)に応じた電流i(i=ki0 )が流れる。この両信号線に流れる電流値iとir との電流差を差電流検出手段によって検出し、この差電流の符号の逆転、すなわち両電流値iとir との大小関係の逆転(タイミング)を出力する。こうして、各データ入力線に入力されるデータのうちの所要のデータの個数kが予め設定された検出すべきデータの個数k0 となったことを検出する。こうして図示例の半導体集積回路はデータ入力線に入力された所要のデータの個数を検出することができる。
【0143】
この時、基準電流駆動線(リファレンス電流線)と信号電流検出線(検出線)との両信号線は予め一定の電圧レベル(V0 )に設定されている。従って、リファレンス電流線を流れるリファレンス電流ir と検出線を流れる全信号電流i(ki0 )との電流差によって生じる両信号線の電圧レベルの差(電圧差)は、検出動作開始時、すなわち両信号線の電圧が設定された一定電圧レベル(V0 )に近い時より、検出動作開始後所定時間経過後、すなわち設定電圧レベル(V0 )より所定電圧低下または上昇した電圧レベルの時の方がより大きくなる。これは、流れた積算電流の差がより大きくなるためである。従って、差電流検出手段(回路)の検出開始電圧レベルを設定電圧レベル(V0 )に設定するより、この設定レベル(V0 )に対して相対的に差のある所定電圧低下または上昇した電圧レベルに設定する方が、両信号線の電流差、すなわち、電圧差の検出を正確にかつ安定して行うことができ、検出結果がノイズ等の外乱の影響を受けにくい。
【0144】
ところで、図示例の半導体集積回路は、差電流検出手段が検出開始レベル設定手段を有しており、これにより、検出開始電圧レベルを、信号電流検出線とリファレンス電流線との両信号線に同一に予め設定される電圧レベル(例えば、プリチャージ電圧レベル)と差の大きい(所定電圧レベル離れた)電圧レベルに設定することができるので、両信号線の電流差検出時の両信号線の電圧差を比較的大きくとることができる。従って、信号電流検出線に流れる電流とリファレンス電流との差電流の検出が最も重要で、両信号線の差電流が最も小さくなる差電流の逆転時にも両信号線の電圧差を比較的大きくとることができる。その結果、差電流検出手段による差電流の検出、およびその逆転時期(タイミング)の検出を安定して正確かつ迅速に行うことができる。
【0145】
図15に、本発明の前提となる半導体集積回路が適用されたタイミング制御回路90のさらに別の実施例の具体的回路図を示す。ここで、同図に示すタイミング制御回路90は、図8に示す符号化回路11に適用されるものであって、図10に示すタイミング制御回路60と、検出回路レベル設定手段となるトランジスタ86と、両信号線62,64の一端側の接点a,bをそれぞれプリチャージするプリチャージトランジスタ78と、他端側において両信号線62,64を同一電位化するトランジスタ79とが設けられている点を除いて全く同一であり、全く同様にして信号電圧印加トランジスタ67bのゲート電極に入力されるフラグレジスタ18のデータラッチ回路の保持するヒット信号‘1’の個数が、所定の数、例えば最後の1個になったことを検出することができるものであるので、同一の構成要素には同一の番号を付し、その詳細な説明は省略する。
【0146】
図15に示すタイミング制御回路90において、最も特徴的な部分である差電流検出回路70は、両信号線62および64の他端側の電源と同じ所定の電位、例えば5Vの電源に接続されるPチャンネルMOSトランジスタ(PMOS)86と、このPMOSトランジスタ86に接続される80a、80bと、これらにそれぞれ直列接続されるNチャンネルMOSトランジスタ(NMOS)82a、82bと、PMOSからなる2個のプリチャージトランジスタ83からなる。ここで、電源に接続されるPMOSトランジスタ86は、検出開始レベル設定手段を構成し、そのソース電極は電源に接続され、そのゲート電極は自己のドレイン電極に接続される。第1信号線に接続されるトランジスタ82aと80aのゲート電極は互いに接続され、トランジスタ80bと82bとの間の接点Bにおいて接続される。また、第2信号線に接続されるトランジスタ82bと80bのゲート電極は互いに接続され、トランジスタ80aと82aとの間の接点Aにおいて接続される。接点Bからは出力線が延出し、インバータ84を介してアンド回路88に接続される。アンド回路88のもう一方の入力には、前述のフラグレジスタ18のリセット信号が入力される。アンド回路88の出力は前述のフラグレジスタ18のクロック端子に接続される。
【0147】
ここで、PMOSトランジスタ86のソース電極が接続される電源電圧Vddが所定電位、例えば5Vであり、しきい値電圧VTHが所定電圧、例えば約0.7Vであるとすると、このPMOSトランジスタ86はそのゲート電圧が電源電圧からしきい値電圧を差し引いた電圧(Vdd−VTH、例えば5−0.7=4.3V)よりも低い間はオンしているが、これより高くなるとオフしてしまう。従って、ゲート電極と接続されたドレイン電極の電圧は、電源電圧−しきい値電圧(Vdd−VTH、例えば4.3V)までしか上昇しない。すなわち、PMOSトランジスタ86は、プリチャージトランジスタ83を介してプリチャージする時の接点AおよびBのプリチャージ電圧を上述のVdd−VTHとし、電源電圧Vddから低下させる手段として機能する。詳しくは、後述するが、接点A,Bのプリチャージ電位が低下するので、トランジスタ82a,82bのプリチャージされたゲート電圧が低下し、タイミング検出動作時にトランジスタ82a,82bのいずれか一方をオンする時の接点a,bの電位、すなわち検出開始電圧レベルを低下させる。すなわち、PMOSトランジスタ86は検出開始レベル設定手段として機能する。
【0148】
次に、図示例のタイミング制御回路90の検出動作を、フラグレジスタ18のフラグデータのヒット信号が最後の1個となったこと、すなわち最後のヒット信号を検出する際の作用を代表例として説明する。ここで、プリチャージに用いられる電源電位は同一、例えば5Vであり、フラグレジスタ18には複数のヒット信号(‘1’)を持つフラグデータが保持されており、リファレンス電流ir は、1つの電流駆動回路66の駆動電流i0 の1.5倍、すなわち1.5i0 に設定されているものとする。
【0149】
まず、検出に先だって、プリチャージ制御信号線72をL(ロウ:‘0’)とし、両信号線62,64の両端のプリチャージトランジスタ78とトランジスタ79をオンして第1および第2の信号線62および64を、従って接点aおよびbをも同一の所定電位、例えば電源電位(例えば5V)にプリチャージするとともに、差電流検出回路70の両プリチャージトランジスタ83をオンして、差電流検出回路70内の接点AおよびBをプリチャージ電圧、すなわち所定のH(ハイ)電位(例えば4.3V)にプリチャージする。なお、差電流検出回路70のトランジスタ82a,82b、全ての電流駆動回路66のトランジスタ67a、リファレンス電流駆動回路68のトランジスタ68aはオフの状態である。ここで、はじめに電源に接続されたトランジスタ86がオフした状態では、そのドレイン電位は、しきい値電圧によって電源電位−しきい値電位(Vdd−VTH、例えば4.3V)に保たれているが、プリチャージトランジスタ83がオンした結果、トランジスタ86のドレイン電位Vdd−VTHより下がると、トランジスタ86がオンして接点A,Bをプリチャージする。こうして、接点A,Bの電位、すなわちトランジスタ86のゲート電位(ドレイン電位)が、プリチャージ電圧、すなわちVdd−VTH(例えば4.3V)に達するまでトランジスタ86はオンして、接点A,Bのプリチャージを続け、プリチャージ電圧に達した後トランジスタ86はオフする。
【0150】
次に、プリチャージ制御信号線72をH(ハイ:‘1’)とし、PMOSトランジスタ78,79,83をオフして、NMOSトランジスタ67a,69a,75a,77aをオンする。従って、リファレンス電流駆動回路68の2つのトランジスタ69a,69bは共にオンすることになり、第2信号線64にはリファレンス電流ir (=1.5i0 )が流れ接点bの電位を低下させる。一方、(m+1)個の電流駆動回路66(660 ,661 ,…,66m )のうち、フラグレジスタ18のフラグデータがヒット信号‘1’であるデータラッチ回路18j に接続されたゲート電極をもつトランジスタ67bはオンし、トランジスタ67aはオンしていることから、この電流駆動回路66j には第1信号線62から駆動電流i0 が流れる。ところで、フラグレジスタ18のフラグデータにはヒット信号‘1’が複数例えばk(k≧2)個あることから、第1信号線62にはki0 の電流が流れることになり、接点aの電位もそれに応じて低下する。
【0151】
ここで、kが2より大の時は、第1信号線62に流れる電流ki0 は第2信号線64に流れるリファレンス電流ir (=1.5i0 )より大きいため、接点bの電位に比べ接点aの電位の方が早く低下する。ここで、NMOS82aのゲート電位(接点Bの電位)とソース電位(接点aの電位)の差(ゲート−ソース電圧)が、NMOS82aの基板バイアスされたしきい値電圧(例えば1.4V)より大きくなると、すなわち、接点aの電位が検出開始電圧VON(プリチャージ電圧から上述のしきい値電圧を差し引いた電圧)を超えて低下すると(例えば、接点Bの電位が4.3Vのとき接点aの電位が2.9Vまで低下すると)、NMOS82aはオンし、接点Aの電位が低下する。一方、この時、接点bの電位はNMOS82bをオンさせる程低下しておらず、このままオフ状態が維持される。この後、両信号線62および64にさらに電流が流れて、接点Aおよびaはさらに電位が低下するが、接点aの電位の低下、すなわち接点Aの電位の低下の方が接点bの電位低下より大きいため、NMOS82bはオフ状態を保つ。こうして接点Bは‘1’を保ち、これに接続されているインバータ84によってアンド回路88に‘0’が出力されることになる。一方、接点Aは‘0’となる。
【0152】
次に、フラグレジスタ18内の複数のヒット信号‘1’がエンコードされるに従って1つ1つ‘0’にリセットされ、残存するヒット信号が1個になった時に、図示例のタイミング制御回路90の検出動作を行うと、すなわち、はじめにプリチャージ制御信号線72に‘0’を入力して、プリチャージし、次に‘1’を入力すると、上述したのと同様にして、第1信号線62には電流i0 が、第2信号線64にはリファレンス電流ir (=1.5i0 )が流れることになる。この時、第2信号線64に流れる電流の方が大きいため、接点bの電位の方が接点aの電位よりも早く低下し、上述とは逆にNMOS82aはオフ状態を保ち、NMOS82bはオン状態となる。従って、接点Bの電位がロウレベルに低下し、インバータ84に反転され、前述のアンド回路88に‘1’が出力される。一方、接点Aの電位はH(ハイ)電位に維持される。
【0153】
以上から、図示例のタイミング制御回路90のインバータ84から出力される出力信号が‘0’であればフラグレジスタ18内に保持されているヒット信号‘1’は2個以上、出力信号が‘1’であればヒット信号は1個以下であることがわかる。従ってこの出力信号が‘0’から‘1’に変化した時に、アンド回路88によってこの検出結果、すなわち‘1’信号と前述のフラグレジスタのリセット信号とから切り換え制御信号を得て、この切り換え制御信号を使ってフラグレジスタ18内のフラグデータをプリフェッチ回路16内のフラグデータに切り換えればよい。もちろん、ここで出力信号は接点Aのみまたは接点AおよびBの両方からとり出してもよい。
【0154】
ところで、図示例のタイミング制御回路90においては、上述したようにタイミング検出動作が開始されると、信号電流検出線(第1の信号線)62にはフラグレジスタ18のヒット信号(‘1’)の個数に応じた電流が流れ、基準電流駆動線(第2の信号線)64には所定のリファレンス電流が流れる。そこで、差電流検出回路70は、両信号線62および64に流れる電流の差によって生じる接点a,bの小さな電位差を、一方(接点a,bの高電位側)がプリチャージ電圧(例えばVdd)に保持され、他方(低電位側)が接地レベル(例えばほぼ0V)まで低下する接点A,Bの大きな電位差として検出する。
【0155】
ここで、はじめに同一のプリチャージ電位(例えば4.3V)にプリチャージされていた接点AとBの電位のその後の変化は、トランジスタ82aと82bとのどちらがオンするかどうかで決まる。すなわち、上述したように、タイミング検出動作の間に、第1および第2の信号線62および64に電流が流れ、両信号線62,64の接点aおよびbの電位が低下し、接点Bと接点aの電位差、接点Aと接点bの電位差のいずれかが基板バイアスされたしきい値(例えば、1.4V)より大きくなると、すなわち、両信号線62および64の電位(接点aおよびbの電位)のいずれかが検出開始電圧(プリチャージ電位から前述のしきい値電圧を差し引いた電位)VON(例えば、2.9V)を超えて低下すると、トランジスタ82aおよび82bのいずれかがオンする。その結果、オンしたトランジスタ82aまたは82b側のそれぞれの接点AまたはBの一方は、直ちにそれぞれ低下した接点aまたはbの電位に等しくなり、その後、接地レベル(0V)まで一緒に低下する。他方、オンしなかったトランジスタ82aまたは82b側のそれぞれの接点AまたはBはプリチャージ電位(4.3V)に保たれる。
【0156】
こうして、接点Bの電位を検出信号とし、インバータ84を介して出力信号として取り出すことで、所定個数(例えば最後の1個)のヒット信号となったことを検出することができる。すなわち、接点Bの先にはインバータ84が接続されているので、トランジスタ82bがオンし、接点Bの電位が低下して、インバータ84のしきい値(例えば、約2.5V)より下がった時に、出力信号‘1’が得られることになる。
【0157】
以上から分かるように上述の差電流検出回路70では、接点AとBとが分かれ始める時の接点aとbとの電位差が小さすぎると、トランジスタ82aおよび82bのオン動作が接点a,bの電位差と無関係に起ってしまう、すなわち誤動作が生じる可能性が高くなる。従って、両接点aとbとの電位差は大きい方が、ノイズの影響を受けにくく、常に正確かつ安定したタイミング検出を行うことができる。
【0158】
ここで、両信号線62,64の各接点a,bの等しくプリチャージされた電位は、タイミング検出動作(プリチャージ制御信号線72がハイレベル(H:‘1’)である時)の初期には各電流駆動回路66、リファレンス電流駆動回路68、各ダミー回路74,76などのオンした制御トランジスタ67a,69a,75a,77aへの電荷の一時的な流入が生じるため、同様に低下する。しかし、フラグレジスタ18に保持されているヒット信号(‘1’)の数に応じて信号電圧印加トランジスタ67bがオンした電流駆動回路66を通して第1信号線62を流れる全信号電流iと、トランジスタ69bがオンした基準電流駆動回路68を通して第2信号線64を流れるリファレンス電流ir には差があるため、検出開始後所定時間経過するとこの電流差によって接点aとbには電位差が生じる。この電位差は、両信号線62,64を流下した積算電流の差が大きいほど大きいので、検出開始後所定時間までは大きくなる。しかし、電流が流れるに伴って予めプリチャージされていた両信号線62,64の電位が低下し、その保持していた電荷が減少してゆくので、保持していた電荷が少なくなり、電位がほぼ接地レベルに近づくと電流が流れにくくなり、最終的には流れなくなるため、十分な時間経過後には両信号線62,64の電位、すなわち両接点a,bの電位はほぼ同一の接地レベルとなる。
【0159】
従って、図示例の半導体集積回路においては、両接点aとbの電位が接地レベル近傍まで低下していなければ、プリチャージされた電位から低下しているほど、接点aとbとの電位差は大きい。従って、両接点aとbとの電位がより低下し、両接点aとbとにより大きい電位差が生じた時点で、接点aおよびbの電位のうち低い方の電位がトランジスタ82aおよび82bのいずれか一方をオンする検出開始電圧となるように、両接点aおよびb、すなわち両信号線62および64のプリチャージ電圧とトランジスタ82a,82bがオンする検出開始電圧レベルとの差をできるだけ大きくとれるようにしておくのが好ましい。このためには、両信号線62,64のプリチャージ電圧を上げるか、検出開始電圧レベルを下げるかいずれかの方法がある。両信号線62,64のプリチャージ電圧を上げるためには、昇圧回路を用いればよいが、昇圧回路は回路面積の増大やコストアップを伴うため、検出開始電圧レベルを低下させる手段を設けるのが好ましい。検出開始電圧は、トランジスタ82a、または82bがオンする時のソース電圧、すなわち接点aまたはbの電位であり、トランジスタ82a,82bのゲート−ソース間のしきい値(例えば約1.4V)が定まっていることから、トランジスタ82a,82bのゲート電極の電位を下げることによって検出開始電圧レベルを下げることができる。
【0160】
図15に示すタイミング制御回路90では、PMOSトランジスタを用いる検出開始レベル設定トランジスタ86によって両トランジスタ82a,82bのゲート電極に接続された接点A,Bのプリチャージ電位を電源電位(例えば5V)から所定電位(例えば4.3V)までPMOSトランジスタのしきい値電圧の分だけ低下させているが、これに限定されず、例えば図16に示すタイミング制御回路92のように検出開始レベル設定トランジスタ86をNMOSトランジスタによって構成することもできる。NMOSトランジスタの基板バイアスされたゲート−ソース間のしきい値電圧VTHが例えば、約1.4Vであるとすると、電源電圧Vddが5VであるときNMOSトランジスタ86のドレイン電極とゲート電極を接続して電源に接続することで、ソース電極の電位の上昇をVdd−VTH、すなわち約3.6Vまでにすることができる。このため、接点A,Bのプリチャージ電圧は約3.6Vとなり、NMOSトランジスタ82a,82bのゲート−ソース間のしきい値電圧VTHも約1.4Vであるので、これらのトランジスタ82a,82bがオンする検出開始電圧VONを約2.2V(3.6−1.4V)とすることができる。
【0161】
ところで、図示例の半導体集積回路を符号化回路のタイミング制御回路として適用する際に、タイミング検出動作開始後、両信号線62,64の各接点aとbとの電位差を早く、すなわち接点a,bの電位の低下が少なくてもより大きくするために、図15に示すタイミング制御回路90とは逆に図16に示すタイミング制御回路92のように電流駆動回路66の信号電圧印加トランジスタ67cを第1信号線(信号電流検出線)62側に、制御トランジスタ67dを接地側に設け、かつダミー回路74のゲート接地トランジスタ75cを第2信号線(リファレンス電流駆動線)側に、制御トランジスタ75dを接地側に設けてもよい。こうすることにより、信号電圧印加トランジスタ67cがオンした電流駆動回路66の制御トランジスタ67dだけをオンさせ、トランジスタ67cがオンしないすべての制御トランジスタ67dおよびすべてのダミー回路74の制御トランジスタ75dをオンさせることがないので、タイミング検出動作の初期にこれらの制御トランジスタ67d,75dに流入する電荷をなくすことができ、両信号線62,64、すなわち両接点a,bのタイミング検出動作初期の同時低下を防止し、両接点aとbとの電位差そのものを大きくすることができる。
【0162】
しかし、図10に示すタイミング制御回路60では、プリチャージトランジスタ83は電源に直接接続されているため、接点AおよびBは電源電位Vdd(例えば、5V)にプリチャージされる。接点A,Bのプリチャージ電圧が電源電位Vddであるため、ゲート−ソース間のしきい値電圧がVTH(例えば1.4V)であるトランジスタ82a,82bがオンする検出開始電圧VONはVdd−VTH(例えば3.6V)となる。これに対し、図15および図16に示すタイミング制御回路90および92の検出開始レベル(電圧)VONは、同一電源電位(5V)に対しそれぞれ約2.9Vおよび2.2Vであるので、図3に示すタイミング制御回路60に比べて検出開始電圧レベルVONを下げることができ、両信号線62と64との、すなわち接点aとbとの電位差がより大きくなるより低い電位でトランジスタ82aまたは82bを正確かつ安定して行うことができる。その結果、図15および図16に示すタイミング制御回路90および92は図3に示すものに比べてノイズの影響を受けても、差電流検出回路70が誤動作する可能性は小さく、常に正確かつ安定したタイミング検出を高いノイズマージンで行うことができる。
【0163】
図17(a)、(b)は、それぞれ図16に示すタイミング制御回路92の回路動作シミュレーション波形と図10に示すタイミング制御回路60の回路動作シミュレーション波形を示す。
【0164】
各々、ノードA点およびノードB点が分岐する動作点でのノードaおよびノードbの電圧差が、0.6Vと0.1Vであり同図(a)の方がマージンが大きいことがわかる。
なお、タイミング制御回路90が適用された図8に示す符号化回路11のメインエンコーダ12のエンコード動作は図13に示すタイミングチャートと同様であるのでその説明は省略する。
図8に示す符号化回路11に適用されるタイミング制御回路90、92は、基本的に以上のように構成される。
【0165】
また、図示例の半導体集積回路によれば、差電流検出手段に検出開始電圧と第1および第2の信号線に予め同一に設定される電圧との差を相対的に大きくすることのできる検出開始レベル設定手段を設けたので、検出動作タイミングにおいても、信号電流検出線と基準電流駆動線との両信号線の電位が十分に低下し、その電位差が十分に大きくなったところで、その差をダイナミックに検出することができる。このため、差電流検出手段の検出不能や誤動作を生じることがない。従って、基準電流駆動線と信号電流検出線との差電流を低消費電力で安定して、正確かつ迅速に高いノイズマージンで検出することができ、また、コンパクトな回路構成とすることができ、連想メモリなどの符号化回路の符号化終了を予測するタイミング制御回路として好適に用いることができる。
【0166】
次に、図18〜図22を参照して、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となるさらに別の半導体集積回路について詳細に説明する。図示例の半導体集積回路は、図8に示す符号化回路にタイミング制御用個数検出回路として適用可能なものである。
【0167】
図示例の半導体集積回路では、まず第1の信号線、すなわち信号電流検出線に各々並列に設けられたM(M≧1)個の電流駆動手段をそれぞれ制御するデータ入力線に入力されるデータ‘1’または‘0’のうち、検出したいデータの個数k0 (M>k0 ≧0)に応じて第2の信号線である基準電流駆動線に設けられた基準電流駆動手段に流す基準電流(リファレンス電流)値ir 、すなわち、1個の電流駆動手段に流れる電流値i0 のk0 倍より大きくk0 +1倍より小さい電流値(k0 0 <ir <(k0 +1)i0 )を予め設定しておく。また、検出に先立って、第1および第2の両信号線は所定の同電位にプリチャージされる。従ってこれらの信号線に直列または並列に接続される第1および第2の両インバータの入力も反転出力も同一であり、差電流検出手段への両入力も同一とされる。
【0168】
このため、図示例の半導体集積回路において、動作タイミングに応じて、データ入力線に所定のデータが入力され、すべての電流駆動手段がアクティブとなると、これらの電流駆動手段にはそれぞれ電流i0 が流れるので、その個数k(M>k≧0)に応じた電流i(i=ki0 )が信号電流検出線に流れる。これに対し、基準電流駆動線には基準電流駆動手段によって基準電流値ir が流れる。その結果、予め所定電位にプリチャージされていた信号電流検出線および基準電流駆動線の電位が低下し始め、アクティブとなっている電流駆動手段の個数kがk0 より大きい時信号電流検出線の電位の方が早く低下し、他方k0 以下の時基準電流駆動線の電位の方が早く低下する。
【0169】
ところで、図示例の半導体集積回路においては、どちらか一方の信号線の電位がこの信号線に接続されたインバータのしきい値を超えて低下すると、このインバータの出力は反転する。ここで、図示例の半導体集積回路では、この信号線に直列に接続されたインバータの反転出力の反転を直接的に差電流検出手段によって検出することができる。また、図示例の半導体集積回路においては、その信号線に並列に接続されたインバータの反転出力の反転により、その信号線に直列に接続され(インバータと並列に接続され)たトランジスタのみをオンさせて、その信号線に電流を流下し、その電位を低下させることができ、差電流検出手段によってその入力電位の低下を検出することができる。従って、上記第1および第2の両信号線に流れる電流値iとir との差電流を差電流検出手段によって検出し、この差電流の符号の逆転、すなわち両電流値iとir との大小関係の逆転(タイミング)を出力する。こうして、各データ入力線に入力されるデータのうちの所要のデータの個数kが予め設定された検出すべきデータの個数k0 となったことを検出する。こうして図示例の半導体集積回路はデータ入力線に入力された所要のデータの個数を検出することができる。
【0170】
ここで、両信号線に接続されるインバータのしきい値を調整することにより、両信号線の差電流の検出時にこれによる両信号線の電位の差を比較的大きくとることができる。従って、この時、安定して、正確かつ迅速に一方のインバータのみの反転出力を反転できる。また、インバータは自分自身で駆動能力を有しているので、図示例の半導体集積回路においては、一方のインバータの反転によって、差電流検出手段への入力信号の初期値の電圧レベルを上げることができ、検出開始時の両信号線の差電流による2つの入力信号の電圧差を大きくとることができ、その検出動作を確実かつ安定して行うことができる。さらに、図示例の半導体集積回路においては、インバータの反転によってトランジスタをオンし、先に、一方の信号線を差電流検出手段の入力と確実に導通させることができるので、その検出動作を安定して、正確に行うことができる。その結果、差電流検出手段による両信号線の差電流の逆転の検出を安定して正確かつ迅速に行うことができる。
【0171】
図18に、本発明の前提となる半導体集積回路が適用されたタイミング制御回路100のさらに別の実施例の具体的回路図を示す。ここで、同図に示すタイミング制御回路100は、図8に示す符号化回路11に適用されるものであって、図12に示すタイミング制御回路61と、インバータ列102a,104aおよび102b,104bおよびトランジスタ103a,103bが設けられている点を除いて全く同一であるので、同一の構成要素には同一の番号を付し、その詳細な説明は省略する。
【0172】
図18に示すタイミング制御回路100は、第1信号線(信号電流検出線)62と第2信号線(基準電流駆動線)64と、第1信号線62に各々並列にフラグレジスタ18の(m+1)個のデータラッチ回路180 ,181 ,…,18m の各々に対して設けられた(m+1)個の電流駆動回路(電流駆動手段)660 ,661 ,…,66m と、第2の信号線64に設けられたリファレンス電流駆動回路(基準電流駆動手段)68と、第1信号線62と第2信号線64に流れる電流の差、すなわち差電流を検出する差電流検出回路(差電流検出手段)70と、第1信号線62および第2信号線64と差電流検出回路70との間に設けられるインバータ102a,104aおよび102b,104bと、このタイミング制御回路の動作タイミングを制御する、すなわち、電流駆動回路66(660 ,661 ,…,66m )、リファレンス電流駆動回路68および差電流検出回路70などを制御するプリチャージ制御信号線72とを有している。
【0173】
さらに、このタイミング制御回路100においては、第1信号線62および第2信号線64の一方の端部接点pおよび接点qはそれぞれインバータ102aおよび102bに接続され、さらにインバータ104aおよび104bを介して、接点aおよびbにおいて差電流検出回路70に接続され、他方の端部は共にプリチャージトランジスタ78を介して所定電位、例えば5V電源に接続される。なお、リファレンス電流駆動回路68に流れるリファレンス電流ir の値は、電流駆動回路66(660 ,661 ,…,66m )が流すことのできる電流値i0 と検出するヒット信号の個数に応じて適宜決めればよいが、最後の1個のヒット信号を検出するためには、i0 超2i0 未満であってインバータ102aおよび102bの反転タイミングを明確に区別でき、この反転によって差電流検出回路70が差電流を検出可能な電流値とすればよい。
【0174】
インバータ102aおよび104aは第1信号線62と差電流検出回路70との間に接続され、他方、インバータ102bおよび104bは第2信号線と差電流検出回路70との間に接続される。さらにインバータ102aと104aとの間およびインバータ102bと104bとの間にはそれぞれ所定低電位(例えば接地電位)に接続されたNMOSトランジスタ103aおよび103bが接続され、これらのゲート電極はそれぞれ接点a(インバータ104aと差電流検出回路70との接点)および接点b(インバータ104bと差電流検出回路70との接点)に接続される。ここで、インバータ102aおよび102bの出力反転が生じるしきい値電圧は、インバータを構成するPMOSおよびNMOSのトランジスタ幅又はしきい値電圧により調整される。この反転出力のしきい値電圧を調整することで、一方のインバータのみの出力反転時における接点pとqとの差電流による電位差を比較的大きくすることが可能となり、動作マージンを大きくできる。
【0175】
次に、図示例のタイミング制御回路100の検出動作を、フラグレジスタ18のフラグデータのヒット信号が最後の1個となったこと、すなわち最後のヒット信号を検出する際の作用を代表例として説明する。ここで、フラグレジスタ18には複数のヒット信号(‘1’)を持つフラグデータが保持されており、リファレンス電流ir は、1つの電流駆動回路66の駆動電流i0 の1.5倍、すなわち1.5i0 に設定されているものとする。
【0176】
まず、検出に先だって、プリチャージ制御信号線72をL(ロウ:‘0’)とし、両プリチャージトランジスタ78およびトランジスタ79をオンして第1および第2の信号線62および64を、従って接点(ノード)pとqも同一のH(ハイ)電位(例えば5V)にプリチャージするとともに、両プリチャージトランジスタ83をオンして、差電流検出回路70内の接点AおよびBを同様にH(ハイ)電位(例えば5V)にプリチャージしておく。従って、インバータ102aおよび102bによって、インバータ102aと104aおよび102bと104bとの両接続点はL(ロウ)電位であり、インバータ104aおよび104bによって接点aおよびbは共にH(ハイ)電位となる。従って、トランジスタ103aおよび103bはオンし、両インバータ102aと104aおよび102bと104bとの両接続点電位を確実にL(ロウ)電位に固定する。なお、差電流検出回路70のトランジスタ82a,82b、全ての電流駆動回路66のトランジスタ67d、リファレンス電流駆動回路68のトランジスタ69dはオフの状態である。
【0177】
次に、プリチャージ制御信号線72をH(ハイ:‘1’)とし、PMOSトランジスタ78,79,83をオフして、NMOSトランジスタ67d,69d,75d,77dをオンする。従って、リファレンス電流駆動回路68の2つのトランジスタ69c,69dは共にオンすることになり、第2信号線64にはリファレンス電流ir (=1.5i0 )が流れ接点qの電位を低下させる。一方、(m+1)個の電流駆動回路66(660 ,661 ,…,66m )のうち、フラグレジスタ18のフラグデータがヒット信号‘1’であるデータラッチ回路18j に接続されたゲート電極をもつ信号電圧印加トランジスタ67cはオンし、制御トランジスタ67dはオンしていることから、この電流駆動回路66j には第1信号線62から駆動電流i0 が流れる。ところで、フラグレジスタ18のフラグデータにはヒット信号‘1’が複数例えばk(k≧2)個あることから、第1信号線62にはki0 の電流が流れることになり、接点pの電位もそれに応じて低下する。
【0178】
ここで、kが2より大の時は、第1信号線62に流れる電流ki0 は第2信号線64に流れるリファレンス電流ir (=1.5i0 )より大きいため、接点qの電位に比べ接点pの電位の方が早く低下する。このため、接点pの方が接点qよりも早くインバータの出力反転電位(しきい値)に達し、インバータ102aの出力反転がインバータ102bの出力反転よりも早く起こり、インバータ104aが早く出力反転する。すなわち、インバータ102aおよび104aのみが先に出力反転し、接点aの電位降下が発生し、差電流検出回路70のNMOS82aのゲート電位(接点Bの電位)とソース電位(接点aの電位)の差が、NMOS82aの基板バイアスされたしきい値電圧(例えば1.4V)より大きくなり、(例えば、接点Bの電位が5Vのとき接点aの電位が3.6Vより下がり)NMOS82aはオンし、接点Aの電位が低下し、L(ロウ)状態となる。なお、接点aの電位低下によってNMOS103aはオフし、インバータ102aと102bとの接続点をH(ハイ)状態に保つ。一方、この時、接点q(第2信号線64)はインバータ102bの出力反転電位(しきい値)に達しておらず、両インバータ102bおよび104bの出力反転は起こらず、接点bの電位はH(ハイ)状態のまま維持され、NMOS82bはオフ状態が維持され、接点BはH(ハイ)状態のまま維持される。
【0179】
この後、両信号線62および64にさらに電流が流れて、接点pおよびqの電位が低下し、接点qの電位がインバータ102bのしきい値を超えて低下し、その出力反転が生じ、インバータ104bの出力反転を生じさせ、接点bの電位低下が生じても、NMOS82bのゲート電位(接点Aの電位)はL(ロウ)状態が維持されているので、NMOS82bはオフ状態が維持され、接点Bの電位はH(ハイ)状態のまま維持される。こうして、差電流検出回路70のラッチ動作により、設定はH(ハイ)‘1’を保ち、これに接続されているインバータ84によって反転されアンド回路88にL(ロウ)‘0’が出力されることになる。一方、接点AはL(ロウ)‘0’を保つ。
【0180】
次に、フラグレジスタ18内の複数のヒット信号‘1’がエンコードされるに従って1つ1つ‘0’にリセットされ、残存するヒット信号が1個になった時に、図示例のタイミング制御回路100の検出動作を行うと、すなわち、はじめにプリチャージ制御信号線72に‘0’を入力して、プリチャージし、次に‘1’を入力すると、上述したのと同様にして、第1信号線62には電流i0 が、第2信号線64にはリファレンス電流ir (=1.5i0 )が流れることになる。この時、第2信号線64に流れる電流の方が大きいため、接点qの電位の方が接点pの電位よりも早く低下し、上述とは逆にインバータ102bおよび104bの出力反転が生じ、接点bのみが先に低下し、NMOS82bがオンするが、NMOS82aはオフ状態を保つ。従って、接点Bの電位がL(ロウ)レベルに低下し、インバータ84に反転され、前述のアンド回路88にH(ハイ)‘1’が出力される。一方、接点Aの電位はH(ハイ)‘1’電位に維持される。
【0181】
以上から、タイミング制御回路100のインバータ84から出力される出力信号が‘0’であればフラグレジスタ18内に保持されているヒット信号‘1’は2個以上、この出力信号が‘1’であればヒット信号は1個以下であることがわかる。従ってこの出力信号が‘0’から‘1’に変化した時に、アンド回路88によってこの検出結果、すなわち‘1’信号と前述のフラグレジスタ18のリセット信号とから切り換え制御信号を得、この切り換え制御信号を使ってフラグレジスタ18内のフラグデータをプリフェッチ回路16内のフラグデータに切り換えればよい。もちろん、ここで出力信号は接点Aのみまたは接点AおよびBの両方からとり出してもよい。
【0182】
上述したように、両信号線62および64に接続されるインバータ102aおよび102bのしきい値電圧を適切に調整することにより、両信号線62および64の差電流によって生じる両接点pおよびqの電位低下の差を、たとえ小さくても確実に検出し、必ず先に一方のインバータのみを出力反転させることができる。インバータは駆動能力を有しているので、出力反転によって接点aとbとの電位を上げることができ、差電流検出回路70による検出開始時における接点aとbの電位差を大きくとることができ、NMOS82aおよび82bの一方のみを確実にオンさせることができる。従って、差電流検出回路70の検出動作を安定して確実に行うことができる。すなわち、差電流検出回路70の検出開始時における接点aとbとの電位差が両信号線の接点pとqとの電位差に比較して大きくとれるので、トランジスタ82aおよび82bのいずれか一方のオン動作が誤動作となることがない。従って、図示例のタイミング回路100は、ノイズマージンが大きく、ノイズの影響を受けにくいので、常に正確かつ安定したタイミング検出を行うことができる。もちろんインバータ102a,102bの出力変化のための入力しきい値電圧を低く調整することで、一方のインバータが働きはじめる時の接点pとqの電圧差をより大きくし、さらに安定な動作が可能となることはいうまでもない。
【0183】
なお、図示例のタイミング回路100は、両信号線62および64と差電流検出回路70との間にそれぞれ2段のインバータ102aと104aおよび102bと104bを用い、NMOS82aおよび82bによる接点AおよびBのいずれか一方の電位の引き落としによって検出するものであるが、これに限定されず、インバータを1段とし、PMOSトランジスタによって接点AおよびBのいずれか一方の電位を引き上げる差電流検出回路によって構成してもよい。
タイミング制御回路100は、基本的に以上のように構成される。
【0184】
次に、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となるさらに別の半導体集積回路について説明する。
図19に本発明の前提となる半導体集積回路が適用されたタイミング制御回路のさらに別の実施例を示す。図19に示すタイミング制御回路106は、図18に示すタイミング制御回路100と、2段インバータ102a,104aおよび102b,104bの代わりにインバータ108a,108bおよびトランジスタ109a,109bが設けられている点を除き、全く同一の構成を有するので、同一の構成要素には同一の番号を付し、その詳細な説明は省略する。
【0185】
図19に示すタイミング制御回路106において、第1信号線62の一方の端部接点pと差電流検出回路70のNMOS82aのソース電極側接点aとの間にはNMOSトランジスタ109aが接続され、NMOS109aのゲート電極と接点pとの間にはインバータ108aが接続され、第2信号線の端部接点qとNMOS82bのソース電極側接点bとの間にはNMOSトランジスタ109bが接続され、NMOS109bのゲート電極と接点qとの間にはインバータ108bが接続される。ここで、インバータ108aおよび108bのしきい値は、インバータ102aおよび102bと同様に調整される。
【0186】
図18に示すタイミング制御回路100と同様に、図19に示すタイミング制御回路106においても、まずプリチャージ制御信号線72のL信号によって、接点A,B,a,b,p,qはすべてH状態にプリチャージされる(例えば、接点A,B,p,qは電源電圧(Vdd、例えば5V)、接点a,bはNMOS82a,82bの基板バイアスされたしきい値(例えば1.4V)によって3.6Vにプリチャージされる)。次いで、信号線72をHとすることにより、第1信号線62には、フラグレジスタ18のヒット信号‘1’によってアクティブとなる電流駆動回路66によってヒット信号の個数kに応じたki0 の電流引き込みが発生し、それに応じて電圧が降下し、第2信号線64にはリファレンス電流駆動回路68によるir (1.5i0 )の電流引き込みが発生し、それに応じて電圧が降下する。
【0187】
この時、アクティブとなる電流駆動回路66の個数kが2以上の時には第1信号線62の方が第2信号線64よりも電圧降下が早い。従って、接点bの方が接点qよりも早くインバータのしきい値電圧に達し、インバータ108aの出力反転がインバータ108bの出力反転よりも早く起こる。このため、NMOS109aがNMOS109bよりも先にオンする。このため、接点aの電位降下が発生し、差電流検出回路70のNMOS82aがオンし、接点Aの電位はL(ロウ)レベルとなる。その結果、この後、接点qの電位がさらに低下し、インバータ108bが出力反転し、トランジスタ109bがオンして、接点bの電位降下が発生しても、NMOS82bのゲート電位(接点Aの電位)がすでにLとなっているのでNMOS82bはオンすることはなくオフ状態を保ち、接点Bの電位はH状態を保つことになる。従って、接点Bの出力はインバータ84で反転されて、タイミング制御回路106の出力であるインバータ84の出力はL(ロウ)ホールドとなる。
【0188】
逆に、アクティブとなる電流駆動回路66の個数kが1個以下の時には、逆に第2信号線64の流下電流ir の方が第1信号線62の流下電流iより大きく、接点pより接点qの電位降下の方が大きい。このため、インバータ108bが出力反転し、トランジスタ109bがオンし、接点bの電位降下が発生し、続いてNMOS82bがオンして接点Bの電位がLレベルとなる。一方、NMOS82aはそのゲート電極(接点B)の電位がLレベルであるので、接点aの電位にかかわらず、すなわち、接点pの電位降下が発生し、インバータ108aが出力反転し、トランジスタ109aがオンして接点aの電位が降下してもNMOS82aはオンすることはない。従って、接点Aの電位はHレベルに維持される。その結果、接点Bの電位がインバータ84によって反転され、タイミング制御回路106の出力はHレベルに変化する。こうして、フラグレジスタ18内のヒット信号‘1’が残りの1個になったことを検出することができる。
【0189】
図示例のタイミング制御回路106においては、インバータ108aおよび108bのしきい値を調整することにより、差電流検出回路70の検出動作開始時、すなわち、NMOS82aおよび82bのいずれか一方がオンする時点での接点aとbの電位差を設定することが可能となり、ノイズマージンの大きい常に安定した正確なタイミング検出を行うことができる。
【0190】
本発明の前提となるさらに別の半導体集積回路が適用されたタイミング制御回路が図20に示される。同図に示すタイミング制御回路110は、図19に示すタイミング制御回路106に、さらに接点aおよびbの電位を所定電位、例えば電源電位Vdd(例えば5V)までプリチャージするプリチャージPMOSトランジスタ78、78および同電位とするために両接点aとbを接続するPMOS79を付加したものである。これらのPMOS78,78,79のゲート電極はプリチャージ制御線72に接続される。
【0191】
ここで、図19に示すタイミング制御回路106において、はじめに接点A,B,p,qが電源電位5VのH状態にプリチャージされると、接点aおよびbの電位は3.6VのH状態となるのに対し、図20に示すタイミング制御回路110においては、接点aおよびbの電位も5Vまで引き上げておくことができる。このため、差電流検出回路70の検出動作開始時点、NMOS82aおよび82bのいずれか一方がオンする時点での接点pとqとの電位差を図19に示すタイミング制御回路106よりもさらに大きくすることができる。従って、図20に示すタイミング制御回路110は、さらにノイズマージンが大で、常に正確かつ安定したタイミング検出を行うことができる。
【0192】
また、図21に示すタイミング制御回路112のように電流駆動回路66とリファレンス電流駆動回路68の制御トランジスタ67d,69d,75d,77dをマージして共通化した制御トランジスタ67e,77eを使用しても良いことはいうまでもない。
【0193】
なお、フラグレジスタ18の初期値設定のためには図22に示す初期値設定信号を受けたOR論理回路114をAND回路88とフラグレジスタ18との間に挿入する。
また、タイミング制御回路100,106,110,112が適用された図8に示す符号化回路11のメインエンコーダ12のエンコード動作は図13に示すタイミングチャートと同様であるのでその説明は省略する。
本発明の前提となる半導体集積回路を適用したタイミング制御回路は基本的に以上のように構成される。
【0194】
以上詳述したように、図示例の半導体集積回路によれば、第1および第2の信号線と差電流検出手段との間にそれぞれインバータを直列または並列に設け、インバータの出力反転のしきい値電圧を調整することにより、差電流検出手段の検出開始時における差電流検出手段への2つの入力信号の電位差を比較的任意に設定することができるので、差電流検出手段の検出不能や誤動作を生じることがない。従って、この半導体集積回路によれば常に正確かつ安定した両信号線間の差電流の大小および逆転タイミングの検出動作を行うことができる。すなわち、図示例の半導体集積回路は、ノイズの影響を受けにくい、動作マージンの大きな安定した回路であり、連想メモリなどの符号化回路の符号化終了を予測するタイミング制御回路として好適に用いることができる。
【0195】
ここで、図18の半導体集積回路によれば、インバータが出力反転した後、第1および第2信号線の電位の変化と無関係に差電流検出手段の検出動作を行わせることができる。また、図20の半導体集積回路によれば、図19の半導体集積回路に比べ動作マージンをさらに大きくとることができる。
【0196】
次に、図23を参照して、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となるさらに別の半導体集積回路について詳細に説明する。図示例の半導体集積回路は、図8に示す符号化回路にタイミング制御回路用個数検出回路として適用可能なものである。
【0197】
この半導体集積回路では、まず、データレジスタに保持されているデータ‘0’または‘1’のうちの一方のデータの検出したい個数k0 (M>k0 ≧0:ここでM(M≧1)はデータレジスタに保持可能なデータの個数)に等しい個数のデータをリファレンス電流制御レジスタに保持させる。例えば、データレジスタに保持されているデータ‘1’がk0 個になったことを検出するのであれば、リファレンス電流制御レジスタにk0 個のデータ‘1’を保持させる。
【0198】
ここで、第1の信号線、すなわち信号電流検出線に各々並列に設けられ、データレジスタに保持されているデータによって制御されるM個の信号用単位電流駆動手段と第2の信号線であるリファレンス電流駆動線に各々並列に設けられ、リファレンス電流制御レジスタに保持されたデータによって制御されるN個のリファレンス用単位電流駆動手段の各々に流れる電流は各々同一の単位電流i0 とし、リファレンス電流駆動線に設けられたリファレンスオフセット電流駆動手段に流れるオフセット電流iosを単位電流i0 より小さい電流値(i0 >ios>0)に予め設定しておく。従って、k0 個のリファレンス用単位電流駆動手段およびリファレンスオフセット電流駆動手段を介してリファレンス電流駆動線に流れるリファレンス電流ir (=k0 0 +ios)はk0 0 より大きく(k0 +1)i0 より小さい電流値(k0 0 <ir <(k0 +1)i0 )となる。
【0199】
このため、図示例の半導体集積回路において、動作タイミングに応じて、所要のデータが保持されているデータレジスタに対応するすべての信号用単位電流駆動手段にはそれぞれ単位電流i0 が流れるので、その個数k(M>k≧0)に応じた電流i(i=ki0 )が信号電流検出線に流れるのに対し、リファレンス電流駆動線には上述したようにリファレンス電流値ir が流れる。この両信号線に流れる電流値iとir との差電流を差電流検出手段によって検出し、この差電流の符号の逆転、すなわち両電流値iとir との大小関係の逆転(タイミング)を出力する。こうして、各データ入力線に入力されるデータのうちの所要のデータの個数kが予め設定された検出すべきデータの個数k0 となったことを検出する。こうして図示例の半導体集積回路はデータレジスタに保持されている所要のデータの個数を検出することができる。また、このデータの検出個数は、リファレンス電流制御レジスタに設定保持させる所要のデータの個数を変えることにより、任意に設定することができる。
【0200】
図23に、本発明の前提となる半導体集積回路が適用されたタイミング制御回路116のさらに別の実施例の具体的回路図を示す。ここで、同図に示すタイミング制御回路116は、図8に示す符号化回路に適用されるものであって、図12に示すタイミング制御回路61と、リファレンス電流制御レジスタ118およびオア(OR)回路114が設けられている点を除いて全く同一であるので、同一の構成要素には同一の番号を付し、その詳細な説明は省略する。直列接続トランジスタ75cおよび75dは、図12に示すタイミング制御回路61では、ダミー回路74として用いられているが、図23に示すタイミング制御回路116においては、NMOSトランジスタ75cのゲートをリファレンス電流制御レジスタ118の出力に接続し、リファレンス単位電流駆動回路74として機能させている。
【0201】
同図に示すタイミング制御回路116は、(m+1)個のデータラッチ回路1180 ,1181 ,…,118m からなるリファレンス電流制御レジスタ118と、第1信号線(信号電流検出線)62と第2信号線(リファレンス電流駆動線)64と、第1信号線62に各々並列にフラグレジスタ18の(m+1)個のデータラッチ回路180 ,181 ,…,18m の各々に対して設けられた(m+1)個の信号用単位電流駆動回路(信号用単位電流駆動手段)660 ,661 ,…,66m と、第2の信号線に各々並列にリファレンス電流制御レジスタ118の(m+1)個のデータラッチ回路1180 ,1181 ,…,118m の各々に対して設けられた(m+1)個のリファレンス用単位電流駆動回路(リファレンス用単位電流駆動手段)740 ,741 ,…,74m と、第2の信号線64に設けられたリファレンスオフセット電流駆動回路(リファレンスオフセット電流駆動手段)68と、第1信号線62と第2信号線64に流れる電流の差、すなわち差電流を検出する差電流検出回路(差電流検出手段)70と、このタイミング制御回路の動作タイミングを制御する、すなわち、単位電流駆動回路66(660 ,661 ,…,66m )および74(740 ,741 ,…,74m )、リファレンスオフセット電流駆動回路68および差電流検出回路70などを制御するプリチャージ制御信号線72とを有している。
【0202】
リファレンス電流制御レジスタ118は、フラグレジスタ18と同様の構成を有し、(m+1)個のデータラッチ回路1180 ,1181 ,…,118m からなり、フラグレジスタ18の各々のデータラッチ回路180 ,181 ,…,18m に個々に保持されているフラグデータ(ヒット信号‘1’)の検出すべき個数k0 ((m+1)>k0 ≧0)に応じてk0 個のデータ(ヒット信号)‘1’をk0 個のデータラッチ回路118j に保持させるためのものである。レジスタ118のデータラッチ回路118j に保持させるデータ(ヒット信号)‘1’の個数は外部から任意に設定することも可能であり、検出個数k0 も必要に応じて任意に設定することができる。また、レジスタ118のデータラッチ回路1180 ,1181 ,…,118m のうちどのk0 個のデータラッチ回路118j にデータ‘1’を保持させるかも任意である。
【0203】
リファレンス用単位電流駆動回路74は、単位電流駆動回路66と全く同様の構成を有し、一方が第2信号線64に接続され、他方が接地される2個の直列接続NチャンネルMOSトランジスタより構成される信号印加トランジスタ75cおよび制御トランジスタ75dからなり、信号線64側の信号印加トランジスタ75cのゲート電極はリファレンス電流制御レジスタ118の各々対応するデータラッチ回路118j の出力端子Qに接続され、接地側の制御トランジスタ75dのゲート電極は制御信号線72に接続される。また単位電流駆動回路74は、単位電流駆動回路66と全く同様に、検出時であって制御トランジスタ75dがオンし、かつ信号印加トランジスタ75cはそのゲート電極にリファレンス電流制御レジスタ118からヒット信号‘1’が入力された時にオンした時に、第2信号線64から単位電流i0 を流すように構成されている。従って、検出個数がk0 個の時、リファレンス電流制御レジスタ118にはk0 個のヒット信号‘1’が保持されているので、k0 個のリファレンス用単位電流駆動回路74がオンし、全回路でk0 0 の電流が第2信号線に流れることになる。この単位電流i0 はすべての単位電流駆動回路660 ,661 ,…,66m および740 ,741 ,…,74m で同一となるように構成されるが、用いられるトランジスタ67c,67dおよび75c,75dのばらつき、例えばプロセスによるばらつき程度のばらつきは存在してもよい。
【0204】
これに対し、リファレンスオフセット電流駆動回路68は、第2信号線に所定のリファレンスオフセット電流iOSを流すためのものである。リファレンスオフセット電流iOSの値は、単位電流i0 より小さい電流値(i0 >iOS>0)であって後述する差電流検出回路70が差電流を検出可能な電流値とすればよい。この電流値iOSは単位電流i0 および単位電流駆動回路66および74を構成するトランジスタ67c,67d,75c,75dならびにリファレンスオフセット電流駆動回路68を構成するトランジスタ69c,69dなどの回路素子のばらつきを考慮して決めればよいが、例えば、ios=0.2i0 〜0.8i0 とするのが好ましい。
【0205】
この結果、検出時に第2信号線に流れるリファレンス電流ir の値は、検出個数(検出するヒット信号個数)k0 に応じてオンするk0 個の単位電流駆動回路74に流れる電流値k0 0 とリファレンスオフセット電流駆動回路68に流れるリファレンスオフセット電流値iosとの和(k0 0 +ios)として与えられ、単位電流値i0 のk0 倍より大きくk0 +1倍より小さい電流値(k0 0 <ir <(k0 +1)i0 )となる。例えば、最後の1個のヒット信号を検出するためには、リファレンス電流値ir はi0 超2i0 未満となるが、上述したように構成回路素子のばらつきと、差電流検出回路70のマージンを考慮して、ir =1.2i0 〜1.8i0 とするのがよい。
【0206】
差電流検出回路70のアンド回路88の出力は前述のフラグレジスタ18のクロック端子に接続される。さらに、このアンド回路の出力がオア回路114の1入力に接続され、このオア回路114の他方は初期値設定信号に接続されている。
【0207】
次に、図示例のタイミング制御回路116の検出動作を、フラグレジスタ18のフラグデータのヒット信号が最後の1個となったこと、すなわち最後のヒット信号を検出する際の作用を代表例として説明する。ここで、フラグレジスタ18には複数のデータラッチ回路18j にヒット信号(‘1’)を持つフラグデータが保持されており、リファレンス電流制御レジスタ118には1個のデータラッチ回路118j にヒット信号(‘1’)を持つデータが保持され、各単位電流駆動回路66および74の単位電流値はi0 であり、リファレンスオフセット電流駆動回路68のリファレンスオフセット電流値iosは0.5i0 に設定され、従って、リファレンス電流ir は、単位電流i0 の1.5倍、すなわち1.5i0 に設定されているものとする。
【0208】
まず、検出に先だって、リファレンス電流制御レジスタ118の1個のデータラッチ回路118j にヒット信号‘1’をラッチホールドさせておく。また、プリチャージ制御信号線72をL(ロウ:‘0’)とし、第1および第2の信号線62および64、従って接点(ノード)aとbおよび差電流検出回路70内の接点AおよびBを同様にH(ハイ)電位(例えば5V)にプリチャージしておく。
【0209】
次に、プリチャージ制御信号線72をH(ハイ:‘1’)とし、PMOSトランジスタ78,79,83をオフして、制御トランジスタ67d,69d,75d,77dをオンする。従って、リファレンス電流制御レジスタ118のヒット信号‘1’を保持している1個のデータラッチ回路118j に対応する単位電流駆動回路74j の2つのNMOSトランジスタ75cおよび75dならびにリファレンスオフセット電流駆動回路68の2つのNMOSトランジスタ69cおよび69dは共にオンすることになり、第2信号線64にはリファレンス電流ir (=1.5i0 )が流れ接点bの電位を低下させる。一方、(m+1)個の単位電流駆動回路66(660 ,661 ,…,66m )のうち、フラグレジスタ18のフラグデータがヒット信号‘1’であるデータラッチ回路18j に接続された単位電流駆動回路66j には第1信号線62から単位電流i0 が流れる。ところで、フラグレジスタ18のフラグデータにはヒット信号‘1’が複数例えばk(k≧2)個あることから、第1信号線62にはki0 の電流が流れることになり、接点aの電位もそれに応じて低下する。
【0210】
ここで、kが2より大の時は、第1信号線62に流れる電流ki0 は第2信号線64に流れるリファレンス電流ir (=1.5i0 )より大きいため、接点Aの電位が低下し、‘0’となるが、一方、この時、接点Bは‘1’を保ち、これに接続されているインバータ84によってアンド回路88に‘0’が出力されることになる。
【0211】
次に、フラグレジスタ18内の残存するヒット信号が1個になった時に、タイミング制御回路116の検出動作を行うと、接点Bの電位がロウレベルに低下し、インバータ84に反転され、前述のアンド回路88に‘1’が出力される。これに対し、接点Aの電位はH(ハイ)電位に維持される。
【0212】
以上から、タイミング制御回路116のインバータ84から出力される出力信号が‘0’から‘1’に変化した時に、アンド回路88によってこの検出結果、すなわち‘1’信号と前述のフラグレジスタ18のリセット信号とから切り換え制御信号を得、この切り換え制御信号を使ってフラグレジスタ18内のフラグデータをプリフェッチ回路16内のフラグデータに切り換えればよい。
【0213】
なお、図23に示すタイミング制御回路116では、単位電流駆動回路66および74ならびにリファレンスオフセット電流駆動回路68およびダミー回路76において、信号印加トランジスタ67cおよび常オフトランジスタ77cを第1信号線62側ならびに信号印加トランジスタ75cおよび常オントランジスタ69cを第2信号線64側に設け、制御トランジスタ67d,75d,69dおよび77dを接地側に設けているが、これに限定されず、逆に配置してもよい。しかし、図示例の配置とするほうが好ましく、こうすることにより検出動作開始時において、第1信号線62および第2信号線64からオンしていない(ヒット信号‘1’がゲート電極に入力されていない)トランジスタ67c,77cおよび75cにそれぞれ接続されている制御トランジスタ67d,77dおよび75dへのオン電流により第1および第2信号線62および64の電圧の低下を防止し、接点AおよびBの分離開始時、すなわち接点aまたはbの電位が3.6Vを切る時点での接点aおよび接点bの電位差を大きくして、差電流検出回路70の動作を安定かつ確実なものとすることができる。
【0214】
また、上述の例では、両単位電流駆動回路66および74を流れる単位電流は同一の単位電流i0 であるが、これに限定されず、異なっていてもよい。この時は、リファレンスオフセット電流iosの値に応じて、リファレンス電流ir を定めればよい。また、リファレンスオフセット電流値iosを単位電流i0 より小さい値としているが、これに限定されず、リファレンス電流制御レジスタ118においてヒット信号‘1’を保持させるデータラッチ回路の個数および1つのリファレンス用単位電流駆動回路74に流すリファレンス用単位電流の値に応じて適宜決めてもよい。
タイミング制御回路116は、基本的に以上のように構成される。
【0215】
図示例のタイミング制御回路116は、図8に示す符号化回路11に適用することができるが、これに限定されず、複数の検出ノードの任意個数の検出を必要とする回路に適用可能である。
【0216】
以上詳述したように、図示例の半導体集積回路によれば、第2の信号線に設けられるリファレンス用単位電流駆動手段を制御するための、所定個数の所定データ、例えばデータ‘1’をリファレンス電流制御レジスタに保持させることにより、第1の信号線に設けられる信号用単位電流駆動手段を制御するための、データレジスタの所定データの個数を検知することができる。従って、図示例の半導体集積回路は、連想メモリなどの符号化回路の符号化終了を予測するタイミング制御回路として好適に用いることができる。
【0217】
次に、図24〜図27を参照して、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となるさらに別の符号化回路について説明する。
【0218】
図示例の連想メモリにおては、一致検索時に連想メモリ装置を構成する連想メモリブロックに検索データが入力されると、複数の連想メモリサブブロックにわたって一致検索が行われる。この時、各連想メモリサブブロック毎にその結果、すなわち複数の連想メモリワードに前記検索データと一致する一致信号(ヒット信号)を含むフラグデータが保持されるとともに、優先順位付サブブロック符号化回路によって最も優先順位の高い連想メモリサブブロックが選択され、そのフラグデータが優先順位付メイン符号化回路のフラグレジスタに転送され、保持される。このフラグレジスタ内に記憶されたフラグデータ中のヒット信号をこの優先順位付メイン符号化回路は所定の優先順位に従って符号化し、ヒットアドレスを出力する。そして、この優先順位付メイン符号化回路では、このヒットアドレスの出力に伴ってフラグレジスタ内のヒット信号が順次リセットされている。
【0219】
一方、このフラグデータの符号化中に、前記優先順位付サブブロック符号化回路によって選択された次の優先順位の連想メモリサブブロックのフラグデータを先の優先順位の連想メモリサブブロックのフラグデータの全ヒット信号の終了に先だってフラグレジスタに入力する準備をするために、このフラグレジスタのヒット信号の終了を予め検知するタイミング検知制御回路によりフラグレジスタ内に保持されているヒット信号の個数を検知する。例えば、この残存するヒット信号の個数が最後の1個になった時、この検知信号に応じて各連想メモリワード毎に設けられるフラグデータセンス回路によって次の優先順位の連想メモリサブブロックのフラグデータを検出し、このフラグデータの全ヒット信号の符号化終了を待って直ちに次の優先順位の連想メモリサブブロックのフラグデータをフラグレジスタに入力して、このフラグデータ内のヒット信号の符号化を開始する。これらの手順を順次繰り返して、前記連想メモリブロック全体のヒット信号の符号化、すなわちアドレス出力を行う。
【0220】
図示例の符号化回路によれば、上述したように、次に符号化すべき連想メモリサブブロックのフラグデータ中のヒット信号が、先の連想メモリサブブロックのフラグデータのヒット信号の符号化中にフラグデータセンス(検出)回路によってフラグレジスタへの入力の準備がなされているので、前記ヒット信号を連想メモリサブブロックから優先順位付メイン符号化回路のフラグレジスタまで転送する時間をなくすことができるし、フラグレジスタ内のフラグデータの最後のヒット信号の符号化開始直前にヒット信号が最後の1個になったことを検出してフラグデータセンス回路によって次の優先順位の連想メモリサブブロックのフラグデータを検出し、次の符号化サイクルでこれを取り込み、入力されたフラグデータ中のヒット信号の符号化を行うことができるので、符号化サイクルにロスが生じることがないので、連想メモリブロック全体ひいては連想メモリ全体の符号化時間を短縮することができ、連想メモリ装置の一致検索動作を高速化できる。
【0221】
すなわち、図示例の符号化回路は、1つの連想メモリサブブロックのフラグデータを符号化しているときに符号化すべきフラグデータのヒット信号数が最後の1つになると、次に符号化すべき連想メモリサブブロックのフラグデータが検出線に取り出され、符号化の終了とともにフラグレジスタに取り込まれる。このため、フラグデータを効率的に速やかに符号化でき、また、プリフェッチ回路等が不要でチップ上の占有面積も小さくできる。
【0222】
以下に、本発明の前提となる符号化回路を添付の図面に示す好適実施例に基づいて詳細に説明する。
【0223】
図24から図27は、本発明の前提となるさらに別の実施例にかかる符号化回路を表し、図24は本発明の前提となる符号化回路の連想メモリ部分を含む構成図、図25が部分回路図、図26がその主要回路の回路図、図27がタイミングチャートである。これらの図に示す符号化回路120が、図8〜10に示す符号化回路11と異なる点は、プリフェッチ回路16がないだけで、基本的に同一の構成を有しているので、同一の構成要素には同一の番号を付し、その説明を省略する。なお、図24には、フラグデータセンス回路126に関して少し詳しく述べられているが、この構成も符号化回路10と異なるものではない。また、同図には所要のサブブロック32のレジスタ36を選択するためのスイッチ回路124およびAND回路128が図示されている。
【0224】
図24は、本発明の前提となる符号化回路が適用された連想メモリブロックのさらに別の実施例の概略図である。同図に示すように、符号化回路120は、優先順位付符号化回路(以下、メインプライオリティエンコーダあるいはメインエンコーダという)122と、優先順位付サブブロック符号化回路(以下、サブブロックプライオリティエンコーダまたはサブブロックエンコーダという)14と、フラグデータを検出するためのスイッチ回路124、フラグデータセンス回路126およびAND回路128とを有し、メインエンコーダ122は、フラグレジスタ回路18と、メインプライオリティ回路20と、メインエンコード回路22と、タイミング制御回路60とを有し、サブブロックエンコーダ14は、データラッチ回路24と、サブプライオリティ回路26と、サブエンコード回路28とを有する。
【0225】
図24において、30は連想メモリブロック(以下、メモリブロックという)であり、前述したように、メモリブロック30は複数(本実施例ではn個、B1 ,B2 ,…,Bn )の連想メモリサブブロック(以下、サブブロックという)32を有する。メモリブロック30には、各サブブロック32についてn個(A1 ,A2 ,…,An )のAND回路128が設けられ、また、各サブブロック32の後述する連想メモリワードに対応して(m+1)個(C0 ,C2 ,…,Cm )のフラグデータセンス回路126が設けられる。
【0226】
まず、図示例の符号化回路120において、最も特徴的な部分であるフラグデータ検出のためのスイッチ回路124、フラグデータセンス回路126およびAND回路128について説明する。
【0227】
スイッチ回路124は、サブブロック32(B1 )のレジスタ36(R0 )に接続される1つ(S0 )を代表例として図示するように、2つのNMOSトランジスタ124a,124bを直列に接続して構成される。各スイッチ回路124はそれぞれ、一方のトランジスタ124aの電極(例えば、ドレイン電極)が対応する検出線L(L0 ,L1 ,…,Lm )に並列に結線され検出線Lを介してフラグデータセンス回路126に接続され、このトランジスタ124aのゲート電極は各サブブロック32において並列にAND回路128に接続される。また、他方のトランジスタ124bはゲート電極が対応するレジスタ36の出力端に接続され、このトランジスタ124bの電極(例えば、ソース電極)が接地される。このスイッチ回路124は、レジスタ36がヒット信号(‘1’)を出力し、かつ、AND回路128からハイレベル信号‘1’が入力されるときに、両トランジスタ124a、124bはオンし、検出線Lを接地して電荷を放出し検出線Lの電位を低下させる。一方、レジスタ36の保持データが‘0’であるとき、たとえAND回路128からハイレベル信号‘1’が入力されても、スイッチ回路124のトランジスタ124bがOFFしたままであるので、検出線Lの電位はこのスイッチ回路124によって変化しない。
【0228】
フラグデータセンス回路126は、自己駆動型のセンスアンプにより構成され、検出線Lを予め所定電位にプリチャージするとともに、このプリチャージされた検出線の電位(電位の変動)を検出して、レジスタ36内に保持されていたデータ(ヒット信号‘1’または不一致信号‘0’)を検出するためのものである。このフラグデータセンス回路126は、それぞれ、1つ(C0 )を代表例として符号を付すように、検出線Lに設けられ、2つのPMOSトランジスタ126a,126bと、インバータ126cとを有する。これらフラグデータセンス回路126は、各PMOSトランジスタ126a,126bの一方の電極(例えばドレイン)が電源に、他方の電極(例えばソース)が検出線Lに接続され、一方のトランジスタ126aのゲートが並列にメインエンコーダ122の図26に示すタイミング回路60に、他方のトランジスタ126bのゲートが検出線Lにインバータ126cの出力側で接続する。インバータ126cは、検出線Lに介設され、反転信号をメインエンコーダ122のフラグレジスタ回路18に出力する。このフラグデータセンス回路126は、後述するタイミング回路60の出力レベル(CS1)がローレベル(L:‘0’)時にPMOSトランジスタ126a,126bをONして検出線Lをプリチャージする。
【0229】
この後、タイミング回路60が1つのサブブロック32のフラグデータの符号化終了タイミング予告信号、例えば現在符号化中のサブブロック32のフラグデータ中のヒット信号が最後の1個であることを示す信号を出力し、出力レベル(CS1)がハイレベル(H:‘1’)となると、フラグデータセンス回路126はトランジスタ126aをOFFし、検索線Lをプリチャージされたハイ(H)の状態に保持する。なお、この時トランジスタ126bはON状態である。一方、この時には、出力レベル(CS1)がハイレベルであるので、サブブロックエンコーダ14のデータラッチ回路24に‘1’がラッチされている次の優先順位のサブブロック32に対応して設けられたAND回路128からはハイレベル信号(H:‘1’)が出力される。その結果、選択されたサブブロック32のレジスタ36中のデータがヒット信号‘1’であるワードのスイッチ回路124の両トランジスタ124a,124bがONされ、プリチャージされていた電荷が検索線Lからディスチャージされ、検索線Lの電位が低下し、ハイ(H)の状態からロウ(L)の状態に変化する。フラグデータセンス回路126は、この検索線Lの電位の低下(変化)を検知し、レジスタ36のヒット信号をフラグレジスタ回路18に出力する。すなわち、インバータ126cは検索線Lのロウ(L)電位を反転し、PMOSトランジスタ126bをOFFし、ハイ(H)電位のヒット信号‘1’をメインエンコーダ122のフラグレジスタ18の入力信号線に入力する。一方、タイミング回路60の出力レベル(CS1)がハイ(H)レベルである間にも、選択されたサブブロック32のレジスタ36中のデータが不一致信号‘0’である場合には、スイッチ回路124がONしないので、検索線Lの電位は変化せず、フラグデータセンス回路126のPMOSトランジスタ126a,126bはONしたままであるので、フラグデータセンス回路126からはインバータ126cで反転されたロウ(L)状態の不一致信号‘0’をメインエンコーダ122のフラグレジスタ18の入力信号線に入力する。
【0230】
こうして、フラグデータセンス回路126によって、先の優先順位のサブブロック32のフラグデータの符号化されるヒット信号が最後の1個になってからこの最後のヒット信号の符号化が終了するまでの間に、次の優先順位のサブブロック32のフラグデータを検出する。この後、最後のヒット信号の符号化が終了し、その信号がフラグレジスタ18のクロック端子に入力されると、この検出されたフラグデータがフラグレジスタ18にただちに入力され、ラッチされる。
【0231】
AND回路128は、タイミング回路60からの符号化終了タイミング予告信号(CS1)とサブブロックエンコーダ14のデータラッチ回路のラッチデータ(またはリセット出力)との論理積を演算し、対応するサブブロック32の全スイッチ回路124を制御するためのもので、予告信号(CS1)およびラッチデータが共にハイ(H)レベル‘1’であるときのみ、AND回路128の出力もハイ(H)レベル‘1’となり各スイッチ回路124のトランジスタ124aをオンする。この時、サブブロック32のレジスタ36に保持されているデータがヒット信号(‘1’)であればトランジスタ124bもオンし、スイッチ回路124がオンして、検索線Lは接地され、電位が低下してハイレベルからロウレベルに変化するが、他方、不一致信号(‘0’)であればトランジスタ124bはオフしたままであり、スイッチ回路124はオンせず、検索線Lの電位は変化しない。
【0232】
メインエンコーダ122は、図24および図25に示すようにフラグレジスタ回路18、メインプライオリティ回路20、メインエンコード回路22およびタイミング回路60を有する。フラグレジスタ18は、検出線Lに対応した(m+1)個のデータラッチ部分(便宜上、検出線Lに対応した添字を付す)を有し、これらラッチ部分がそれぞれタイミング回路60からタイミング信号に応じ所定の優先順位で入力する検出線Lのデータを保持し、メインプライオリティ回路20から入力する信号でリセットされる。このフラグレジスタ回路18は、メインエンコード回路22が全てのヒット信号をエンコードするまでの間フラグデータを保持し、優先順位の高いワードアドレスのヒット信号が符号化される毎にワードアドレスのヒット信号をリセットする。
【0233】
なお、この実施例ではフラグレジスタ18はDラッチを用いるが、1ビットを一時的に保持できるものであれば任意に選択できる。
【0234】
ところで、図示例の符号化回路120に用いられる、図25に示すメインエンコーダ122と図1に示す符号化回路10に用いられる、図2に示すメインエンコーダ12とは、タイミング回路60を有している点とプライオリティ回路20のノードQm (OR出力)がインバータ49を介してフラグレジスタ18に接続されていない点で異なる。
【0235】
すなわち、図2に示すメインエンコーダのプライオリティ回路20は、フラグレジスタ18に保持されたフラグデータの最後のヒット信号をリセットした後ノードQm から出力される終了データ‘0’を使ってフラグレジスタ18のフラグデータをプリフェッチ回路16にあらかじめラッチホールドされている次の優先順位のサブブロック32のフラグデータと切り換えている。すなわち、図2に示すメインエンコーダ12では、このノードQm 出力‘0’をインバータ49で反転し、その反転値‘1’をフラグレジスタ18に入力し、プリフェッチ回路16にラッチホールドされていた次の優先順位のサブブロック32のフラグデータをフラグレジスタ回路18の各々対応する回路に入力して保持することになる。この後、空いた前記プリフェッチ回路16には、予めサブブロックエンコーダ14によって選択されていた次の次の優先順位のサブブロック32のフラグデータがレジスタ36から読み込まれ、ラッチホールドされる。こうして、プライオリティ回路20は、先の優先順位のサブブロックのフラグデータの処理を終了してから、次の優先順位のサブブロックのフラグデータがそのサブブロック32のレジスタ36から転送されてくる間、待機する必要がないので、エンコードを効率よく行うことができる。しかしながら、この方法では、フラグレジスタ18に保持されている先の優先順位のサブブロック32のフラグデータの最後のヒット信号がリセットされてから、フラグレジスタ18の内容をプリフェッチ回路16に保持されている次の優先順位のフラグデータと切り換えるので、リセットによって開始されるプライオリティエンコードサイクルにおいて、サブブロックのフラグデータの切り換え時にエンコードできないサイクルを生じてしまい、エンコード出力をできない時間が生じる恐れがある。
【0236】
これに対して、図示例の符号化回路120においては、図26に示すタイミング制御回路60によって、フラグレジスタ18内のフラグデータのヒット信号の個数を検知しておき、最後の1個になったことを検出して、この検出結果(符号化終了予告信号)を入力信号として、メインプライオリティ回路20における最後のヒット信号をリセットするかわりに、最後の1個のヒット信号の符号化中にフラグデータセンス回路126によって次の優先順位のサブブロック32のフラグデータを検出し、符号化終了と同時にフラグレジスタ18に入力する。従って、図示例の符号化回路120では同一サブブロックのフラグデータにおいても、サブブロックのフラグデータの切り換え時であっても、同じサイクルでプライオリティエンコードを行うことができる。もちろん、図示例の符号化回路120においてはフラグレジスタ18におけるサブブロックのフラグデータの最後の1個のヒット信号の符号化中にフラグデータセンス回路126によって、予めサブブロックエンコーダ14によって選択された次の優先順位のサブブロック32のレジスタ36のフラグデータの内容を検出し、符号化終了時にフラグレジスタ18に入力することができるので、プリフェッチ回路が不要であるばかりか、フラグデータの読み込みの時間(フラグデータを各サブブロック32からメインエンコーダ12まで転送する時間)をなくし、エンコード処理と無関係なものとし、エンコードの効率を上げることができる。なお、図示例の符号化回路120においては、フラグレジスタ18のフラグデータの最後のヒット信号はリセットを行わなくてもよい。
【0237】
図示例の符号化回路120の特徴的な部分の1つであるタイミング制御回路60が図26に示される。
【0238】
同図に示すタイミング制御回路60は、図10に示すタイミング制御回路60と同一の構成を有する。このタイミング制御回路60において、この接点Bからは出力線が延出し、インバータ84を介してアンド回路88に入力され、この出力がオア回路114を介して前述したフラグレジスタ18の各データラッチ回路180 ,181 ,…,18m のクロックに接続されている。各オア回路114のもう一方の入力にはフラグレジスタ18の初期値設定のための初期値設定信号が入力される。また、このインバータ84の出力は、オア回路130を介して各AND回路128に接続される。なお、アンド回路88のもう一方の入力には、前述のフラグレジスタ18のリセット信号が入力されている。
【0239】
前述したようにタイミング制御回路60によるフラグレジスタ18内に保持されているフラグデータのヒット信号‘1’の個数検出が行われるが、タイミング制御回路60のインバータ84から出力される出力信号が‘0’であればフラグレジスタ18内に保持されているヒット信号‘1’が2個以上、出力信号が‘1’であればヒット信号‘1’が1個以下であることが分かる。そして、図示例では、オア回路130から出力されるCS1信号をAND回路128およびフラグデータセンス回路126に導き、CS1信号が‘1’である時、すなわち、残存する最後の1個のヒット信号‘1’をエンコードしている時に、次のメモリサブブロック32のフラグデータをスイッチ回路124、AND回路128およびフラグデータセンス回路126によって検出するために、メモリサブブロック32のフラグデータの読み出しおよび切り換えを速やかに行える。
【0240】
一方、サブブロックエンコーダ14では、連想メモリサブブロック32(B1 ,B2 ,…,Bn )毎に行われる一致検索時に、各メモリサブブロック32における一致検索結果すなわちフラグデータがレジスタ36に保持されるとともに、サブブロック32内の図示しないOR回路等によって、サブブロック32内に検索データと一致を示したメモリワード34(ヒットワード、またはマッチワード)が存在するか否かを示すサブブロックヒット信号を発生させ、これを対応するサブブロック32のデータラッチ回路24に保持させる。
【0241】
一方、このサブブロックエンコーダ14のサブプライオリティ回路26では、所定の優先順位に従って、図示例では左側から右側に向って、データラッチ回路24にラッチホールドされたブロックヒット信号がヒット信号(‘1’)であるサブブロック32を選択し、そのブロックアドレスのみに‘1’を持つプライオリティ付出力信号を出力する。この出力信号は、後段のサブエンコード回路28によって符号化されエンコード出力されるとともに、当該サブブロック32に対応したAND回路128に出力される。そして、前述したように、このAND回路128は、ブロックヒット信号が‘1’であるとともに前記タイミング回路60からハイレベル信号が入力される時にのみスイッチ回路124にハイレベル信号を出力する。この結果、ヒット信号‘1’のメモリワード34に対応したスイッチ回路124は検出線Lを接地する。こうして予めフラグデータセンス回路126により検出線Lにチャージされた電荷をディスチャージし、フラグデータセンス回路126は検出線Lの電位の低下、すなわちハイ電位からロウ電位への変化を検出し、そのインバータ126cにより反転したハイ電位のヒット信号がフラグレジスタ18に入力される。この後、メインエンコーダ122の最後の1個のヒット信号の終了信号によって、これらのヒット信号(フラグデータ)はフラグレジスタ18に入力される。
【0242】
次に、図示例のタイミング制御回路60を用いたメインエンコーダ112のエンコードタイミングのタイムチャートの一例を図27に示し、これを参照して、符号化回路120の符号化動作を説明する。
【0243】
なお、同図において、(a)はメインエンコーダ12のエンコードタイミングを示すエンコード信号、(b)はフラグレジスタ18のヒット信号‘1’のリセットタイミングを示すリセット信号、(c)はタイミング検出回路60のヒット信号の残存個数の検出タイミングを示す検出信号、(d)はタイミング検出回路60の検出出力信号(終了予告信号)、(e)はタイミング検出回路60からオア回路130を介してAND回路128およびフラグデータセンス回路126に入力する信号(CS1)、(f)は次の優先順位のサブブロック32のフラグセンス出力信号(フラグデータセンス回路126の出力データ信号)、(g)は次のフラグデータのフラグレジスタ18へのシフトタイミングを示すフラグデータ切り換え制御信号(終了信号)を表わす。
【0244】
同図から明らかなように、フラグレジスタ18内に保持されていた同じフラグデータ内のヒット信号を所定のプライオリティでエンコードしている間はヒット信号のリセットパルス(b)の立上がりのタイミングから所定時間してエンコードサイクル(a)および検出サイクル(c)が開始される(立ち上がる)ように構成されている。しかし、タイミング制御回路60がエンコードパルス(a)またはリセットパルス(b)およびインプットパルス(g)によって起動される検出タイミング(c)において最後のヒット信号を検出し、終了予告信号である接点Bからの検出出力信号(d)が図27(d)のようにロウレベルに変化すると、AND回路128およびフラグデータセンス回路126に検出出力信号(d)の反転信号である図27(e)に示すCS1信号(e)が入力される。このため、フラグデータセンス回路126は検出線Lを予めプリチャージした後、また、AND回路128からハイレベル信号が入力されたスイッチ回路124がレジスタ36にヒット信号を保持しているワードに対応する検出線Lを接地してプリチャージされた電荷をディスチャージし他方、ヒット信号を保持していないワードに対応する検出線Lの電位は変化せず、プリチャージされた電荷は変化せず、検出線Lはレジスタ36内のフラグデータと逆にその電位を変化させ、図27(f)に示すように出力信号が確定される。なお、図27(f)に示すフラグセンス出力(f)において、ヒット信号‘1’を持つフラグデータおよびヒット信号を持たないフラグデータを合わせて示す。
【0245】
そして、切り換え制御信号(g)に同期してフラグデータセンス回路126の出力信号が、フラグレジスタ18に取り込まれ、連続するエンコードサイクルにおいて、このフラグデータを用いてメインプライオリティ回路20およびメインエンコード回路22によるエンコード動作を行い、エンコードアドレスを出力する。こうしてメインエンコーダ122は連続した所定のサイクルでエンコード動作を行い、エンコード出力をする。ここで、切り換え制御信号(g)は、検出出力(d)の反転データとリセット(b)のAND(論理積)により出力される。
【0246】
この後は、サブブロックエンコーダ14のサブエンコード回路28からの符号化されたブロックアドレス出力と、メインエンコーダ122のメインエンコード回路22からの符号化されたワードアドレスとを両方合わせて符号化論理アドレスとして順次出力していく。そして、最終サブブロック32または最低優先順位のサブブロック32が選択されると、サブブロックエンコーダ14の処理は終了し、メインエンコーダ122による全ヒット信号の符号化が終わると、全ての連想メモリサブブロック30の全てのメモリワード34のヒット信号を論理アドレスとして出力して、一致検索動作を終了する。
【0247】
以上詳述したように、図示例の符号化回路によれば、連想メモリ装置の連想メモリブロックの検索データとの一致検索を行う際、この連想メモリブロックを構成する複数の連想メモリサブブロックのうちの第1番目の連想メモリサブブロックの一致検索結果、例えば複数の連想メモリワードに前記検索データと一致する一致信号(ヒット信号)が、例えばレジスタ等の保持手段に保持されるとともに前記連想メモリサブブロックに前記検索データと一致する連想メモリワードの存在を示すブロックヒット信号を発生する。続いて、優先順位付サブブロック符号化回路がこのブロックヒット信号を受けて最も優先順位の高い連想メモリサブブロックを選択し、サブブロックアドレスを発生する。そして、この選択された最高優先順位のサブブロックのヒット信号(全ワードについて同時に)が優先順位付符号化回路に転送される。この後、優先順位付符号化回路は、所定の優先順位で前記ヒット信号を符号化し、ワードアドレスを出力する。この符号化中に、次の優先順位の連想メモリサブブロックを前記優先順位付サブブロック符号化回路によって選択し、データ切換タイミング制御回路によって検知して、先の優先順位のサブブロックのフラグデータのエンコード終了までの間に、例えばエンコードすべきヒット信号が最後の1つになってから、エンコード終了後直ちにこのサブブロックのレジスタ等の保持手段に保持されているヒット信号データを検出し、エンコード終了と同時に優先順位付符号化回路のデータ保持回路に入力する。こうして、前記優先順位付符号化回路は、前記ヒット信号の符号化を終了した後、連続したサイクルで直ちに次の優先順位のサブブロックのフラグ信号データの符号化を開始し、符号化し、ワードアドレスを出力する。このワードアドレス出力とサブブロックアドレス出力とを合わせて論理アドレスを出力する。
【0248】
従って、図示例の符号化回路によれば、複数の連想メモリサブブロックから構成される連想メモリブロックであっても、複数の連想メモリサブブロック間の切り換わりに時間遅れ(待ち時間)がなく高速処理が可能となり、多数の連想メモリサブブロックからの出力信号を効率のよく連続したサイクルで符号化することができる。また、図示例の符号化回路によれば、プリフェッチ回路等のバッファが不要でチップ上の占有面積を小さくでき、さらに、消費電力も低減できる。
【0249】
以上、本発明の連想メモリ装置に適用される符号化回路を理解するための前提となるプリフェッチ回路付符号化回路および本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路およびこれをタイミング制御回路として用いるプリフェッチ回路付およびフラグデータセンス回路付の符号化回路は基本的に以上のように構成されるが、これらは上述した実施例に限定されるわけではない。すなわち、タイミング回路は、連想メモリ(CAM)の符号化回路に適用され、最後の1個のヒット信号を予め検出するものに限定されず、検出するヒット信号の個数はいくつであってもよいし、適用される回路もSRAM、DRAMなどのメモリの符号化回路であってもよい。また、タイミング制御回路は、ダミー回路を有しているが、これらのダミー回路は必ずしも設ける必要はない。さらに、タイミング制御回路は、フラグレジスタ18に保持されているヒット信号‘1’の個数を検出するものであるが、信号‘0’の個数を検出するものであってもよい。さらに、タイミング制御回路は、ヒット信号‘1’が入力される電流駆動手段により信号線のディスチャージを検出しているが、逆に、検出タイミングで、電流駆動手段によるチャージアップを検出してもよい。この場合は、差電流検出手段は、2本の信号線の電位の低下ではなく、上昇で差電流を検出するように構成することができる。
【0250】
また、図示例の種々の半導体集積回路を組み合わせて用いてもよいし、また、これらを図示例の種々の符号化回路に組み合わせてもよいことはもちろんである。
さらに、本発明の前提となる半導体集積回路は、符号化回路のタイミング制御回路として用いられるものに限定されず、単に、少なくとも1つの電流駆動手段が接続された信号電流検出線と基準電流駆動手段が接続された基準電流駆動線とに流れる差電流を検出して、その変化タイミングを検出するセンスアンプとして用いてもよい。また、DRAMおよびSRAMなどのメモリの読み出し用センスアンプとして用いてもよい。
【0251】
次に、図1〜図27に示す本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路および半導体集積回路を参考にしながら、図28および図29を参照して、本発明の連想メモリ装置に適用される符号化回路について詳細に説明する。
【0252】
本発明の符号化回路を適用する連想メモリ装置において、検索データと各メモリワードの内容との一致検索が終了すると、その一致検索結果であるヒットフラグが各メモリワードに対応したレジスタに格納される。レジスタに格納されたヒットフラグは、各サブブロック毎にサブブロック内の全てのヒットフラグの論理和が取られ、各サブブロックのサブブロックヒット信号としてサブエンコーダに保持される。
【0253】
サブエンコーダでは、各サブブロックのサブブロックヒット信号の内、優先順位に応じて、1つのアクティブ状態のサブブロックヒット信号だけがアクティブ状態として順次出力され、優先順位に応じたサブブロックのヒットフラグを選択するためのAND回路に入力されるとともに、このアクティブ状態のサブブロックヒット信号に対応したサブブロックのアドレスが順次符号化される。
【0254】
ここで、メインエンコーダのタイミング制御回路の制御によって、1つだけアクティブ状態として出力されたサブブロックヒット信号に対応したAND回路の出力信号がアクティブ状態となり、このAND回路に対応したサブブロックの各レジスタに対応したスイッチ回路が選択される。選択されたスイッチ回路に対応したヒットフラグが検出線に出力され、検出線上に出力されたヒットフラグがセンス回路によって検出され、タイミング制御回路から出力されるタイミング制御信号によって、センス回路によって検出されたヒットフラグがメインエンコーダに保持される。
【0255】
メインエンコーダでは、保持されたヒットフラグの内、優先順位に応じて、1つのアクティブ状態のヒットフラグだけがアクティブ状態として順次出力され、このアクティブ状態のヒットフラグに対応したメモリワードのアドレスが順次符号化される。
このようにして、本発明の符号化回路においては、サブブロックのアドレスとメモリワードのアドレスとを合わせて、ヒットフラグに対応したメモリワードのアドレスが順次出力される。
【0256】
また、本発明の符号化回路を適用する連想メモリ装置には、メモリワードの内容が一致検索の対象となる有効なものか、あるいは、無効なものかを示すエンプティフラグを格納するためのレジスタが、各メモリワードに対応して設けられており、上記ヒットフラグに対応したメモリワードのアドレスを出力させる場合と同じように、エンプティフラグに対応したメモリワードのアドレスを順次出力することができる。
【0257】
以下に、添付の図面に示す好適実施例に基づいて、本発明の連想メモリ装置に適用される符号化回路を詳細に説明する。
【0258】
図28は、本発明の符号化回路が適用された連想メモリブロックの一実施例の概略図である。
同図において、まず、連想メモリブロック(以下、メモリブロックという)30は、複数個の連想メモリサブブロック(以下、サブブロックという)32(B1 ,B2 ,…,Bn )を有する。また、それぞれのサブブロック32は、複数個の連想メモリワード(以下、メモリワードという)34(W0,W1 ,…,Wm )と、各メモリワード34のヒットフラグを各メモリワード34毎に保持するレジスタ36a(R0a,R1a,…,Rma)と、各メモリワード34のエンプティフラグを各メモリワード34毎に保持するレジスタ36b(R0b,R1b,…,Rmb)とを有する。
【0259】
ここで、ヒットフラグは、各メモリワード34の内容と検索データとの一致検索の結果を示すもので、一致検索の後、各メモリワード34に対応したレジスタ36aに保持される。なお、ヒットフラグは、この実施例においては、例えば一致するときに‘1’(アクティブ状態)、不一致のときに‘0’(非アクティブ状態)になるものとする。
【0260】
また、エンプティフラグは、メモリワード34の内容が、検索の対象となる有効なものか、あるいは、検索の対象とはならない無効なものかを示すもので、例えばメモリワード34の内容が消去された時に、あるいは、メモリワード34に新しいデータが書き込まれた時に、各メモリワード34に対応したレジスタ36bに保持される。エンプティフラグは、ここでは、例えばメモリワード34に有効なデータが保持されている時に‘0’(非アクティブ状態)、保持されていない、すなわち、メモリワード34の内容が消去された時に‘1’(アクティブ状態)になるものとする。
【0261】
なお、図示を省略しているが、各々のサブブロック32は、各サブブロック32内の全メモリワード34のヒットフラグの論理和を取り、これをサブブロックヒット信号として出力するOR回路、および、各サブブロック32内の全メモリワード34のエンプティフラグの論理和を取り、これをサブブロックエンプティ信号として出力するOR回路を有しており、これらのOR回路の出力であるサブブロックヒット信号およびサブブロックエンプティ信号は、それぞれ後述する2つのサブエンコーダのデータラッチ回路に保持される。
メモリブロック30は、基本的に、以上のようなものである。
【0262】
次に、符号化回路10aは、メモリワード34のアドレスを符号化するメインプライオリティエンコーダ(以下、メインエンコーダという)12aと、サブブロック32のアドレスを符号化する2つのサブプライオリティエンコーダ(以下、サブエンコーダという)14a,14bと、最優先順位のサブブロック32のヒットフラグまたはエンプティフラグ(以下、これらをまとめてフラグデータという)を選択的に出力するためのスイッチ回路(切換回路)124(S0a,S1a,…,Sna),125(S0b,S1b,…,Snb)、センス回路126(C0 ,C1 ,…,Cm )、OR回路127およびAND回路(選択回路)128(A1a,A2a,…,Ana),129(A1b,A2b,…,Anb)とを有する。
【0263】
符号化回路10aにおいて、メインエンコーダ12aは、フラグレジスタ回路18と、メインプライオリティ回路20と、メインエンコード回路22と、タイミング制御回路60aとを有する。
【0264】
ここで、フラグレジスタ回路18は、最優先順位のサブブロック32から出力される(m+1)個のフラグデータを保持するものである。フラグレジスタ回路18に保持されたフラグデータの内、アクティブ状態のフラグデータに対応するメモリワード34のアドレスが順次符号化される。符号化が終了したフラグデータは非アクティブ状態にリセットされ、全てのアクティブ状態のフラグデータに対応したメモリワード34のアドレスが符号化された後、フラグレジスタ回路18には、次の優先順位のサブブロック32の(m+1)個のフラグデータが保持される。なお、フラグレジスタ回路18としては、(m+1)個の1ビットのデータを一時的に保持し、1ビット毎にリセットすることができるものであれば何でもよく、例えばラッチやレジスタ等を用いることができる。
【0265】
メインプライオリティ回路20は、フラグレジスタ回路18に保持された(m+1)個のフラグデータを受け取り、例えば最優先順位のアクティブ状態のフラグデータだけをアクティブ状態として出力するものである。最優先順位のアクティブ状態のフラグデータだけをアクティブ状態として出力した後、このアクティブ状態として出力したフラグレジスタ回路18のフラグデータを非アクティブ状態にリセットし、以下同様にして、フラグレジスタ回路18に保持されたアクティブ状態の全てのフラグデータについて、ただ1つのフラグデータだけをアクティブ状態として順次出力する。なお、メインプライオリティ回路20としては、例えば図2に示されるように、プライオリティ回路要素を一列に配置した構成のものでもよいし、あるいは、図5〜図7に示されるように、ユニット回路を階層的に配置した構成のものでもよい。
【0266】
また、メインエンコード回路22は、例えば図2に示されるように、メインプライオリティ回路20から出力されるフラグデータの内、ただ1つだけアクティブ状態とされた最優先順位のフラグデータに対応したメモリワード34のアドレスを符号化するものである。なお、メインエンコード回路22は、ただ1つだけアクティブ状態とされたフラグデータに対応したメモリワード34のアドレスを符号化することができるものであれば特に限定されず、従来より公知のものを用いることができる。
【0267】
タイミング制御回路60aは、フラグレジスタ回路18に保持されたフラグデータの内、まだ符号化が終了していないアクティブ状態のフラグデータの個数、例えばまだ符号化が終了していないアクティブ状態のフラグデータが最後の1個になったことを検出して、出力信号CS1,CS2およびタイミング制御信号を出力し、フラグレジスタ回路18に次の優先順位のサブブロックの(m+1)個のフラグデータを保持させるものである。なお、タイミング制御回路60aは、図10、図12、図15、図16、図18、図19、図20、図21、図23または図26に例示したどの構成のものであってもよい。
【0268】
メインエンコーダ12aにおいては、メインプライオリティ回路20によって、フラグレジスタ回路18に保持された(m+1)個のフラグデータの内、例えば最優先順位のアクティブ状態のフラグデータだけがアクティブ状態とされて出力され、メインエンコード回路22によって、ただ1つだけアクティブ状態とされた最優先順位のフラグデータに対応したメモリワード34のアドレスが符号化される。符号化された最優先順位のアクティブ状態のフラグデータは、メインプライオリティ回路20によって非アクティブ状態にリセットされて、次の優先順位のアクティブ状態のフラグデータが最優先順位のアクティブ状態のフラグデータとされ、以下同様にして、フラグレジスタ回路18に保持された(m+1)個のアクティブ状態のフラグデータに対応したメモリワードのアドレスが順次符号化される。タイミング制御回路60aによって、フラグレジスタ回路18に保持された(m+1)個のフラグデータの内、まだ符号化が終了していないアクティブ状態のフラグデータが最後の1個になったことが検出されると、出力信号CS1,CS2およびタイミング制御信号が出力されて次の優先順位のサブブロック32の(m+1)個のフラグデータがフラグレジスタ回路18に保持され、以下同様に上述する動作が繰り返し行われる。
メインエンコーダ12aは、基本的に、以上のようなものである。
【0269】
続いて、サブエンコーダ14aは、ヒットフラグに対応したサブブロック32のアドレスを符号化するもので、データラッチ回路24aと、サブプライオリティ回路26aと、サブエンコード回路28aとを有する。同様に、サブエンコーダ14bは、エンプティフラグに対応したサブブロック32のアドレスを符号化するもので、データラッチ回路24bと、サブプライオリティ回路26bと、サブエンコード回路28bとを有する。なお、サブエンコーダ14a,14bは、データラッチ回路24a,24bに保持されるサブブロック信号の違いを除いて、その構成および作用は同じであるから、以下、言及しない限りサブエンコーダ14aを代表例として説明する。
【0270】
まず、データラッチ回路24aは、各サブブロック32から出力される合計n個のサブブロックヒット信号を保持するものである。
【0271】
ここで、サブブロックヒット信号とは、検索データと各サブブロック32の各メモリワード34の内容との一致検索の結果、各サブブロック32内のメモリワード34に、検索データと一致した内容が格納されたメモリワード34が存在するかどうかを示すもので、この実施例においては、例えばサブブロック32内に検索データと一致した内容が格納されたメモリワード34が存在するときに‘1’(アクティブ状態)、存在しないときに‘0’(非アクティブ状態)になるものとする。なお、サブブロックヒット信号は、各サブブロック32内の図示していないOR回路によって、各サブブロック32の全メモリワード34のヒットフラグの論理和を取ることにより生成される。
【0272】
データラッチ回路24aに保持されたサブブロックヒット信号の内、アクティブ状態のサブブロックヒット信号に対応するサブブロック32のアドレスが順次符号化される。データラッチ回路24aに保持されたサブブロックヒット信号の内、アクティブ状態のサブブロックヒット信号に対応したサブブロック32のアドレスが順次符号化され、符号化が終了したサブブロックヒット信号は非アクティブ状態にリセットされる。
【0273】
また、データラッチ回路24bは、各サブブロック32から出力される合計n個のサブブロックエンプティ信号を保持するものである。
【0274】
ここで、サブブロックエンプティ信号とは、各サブブロック32内のメモリワード34に、検索の対象とはならない無効なメモリワード34が存在するかどうかを示すもので、この実施例においては、例えばサブブロック32内に検索の対象とはならない無効なメモリワード34が存在するときに‘1’(アクティブ状態)、存在しないときに‘0’(非アクティブ状態)になるものとする。なお、サブブロックエンプティ信号は、各サブブロック32内の図示していないOR回路によって、各サブブロック32の全メモリワード34のエンプティフラグの論理和を取ることにより生成される。
【0275】
データラッチ回路24bに保持されたサブブロックエンプティ信号の内、アクティブ状態のサブブロックエンプティ信号に対応するサブブロック32のアドレスが順次符号化される。データラッチ回路24bに保持されたサブブロックエンプティ信号の内、アクティブ状態のサブブロックエンプティ信号に対応したサブブロック32のアドレスが順次符号化され、符号化が終了したサブブロックエンプティ信号は非アクティブ状態にリセットされる。
【0276】
なお、データラッチ回路24a,24bとしては、n個の1ビットのデータを一時的に保持し、1ビット毎にリセットすることができれば何でもよく、例えばラッチやレジスタ等を用いることができる。
【0277】
サブプライオリティ回路26a,26bおよびエンコード回路28a,28bは、各々構成するユニットの数が(m+1)個ではなくn個である点を除いて、基本的に、メインエンコーダ12aのメインプライオリティ回路20およびメインエンコード回路22と同じ構成および作用を有するものであるから、ここでは詳細な説明は省略する。
【0278】
サブエンコーダ14aにおいては、サブプライオリティ回路26aによって、データラッチ回路24aに保持されたn個のサブブロックヒット信号の内、例えば最優先順位のアクティブ状態のサブブロックヒット信号だけがアクティブ状態とされて出力され、サブエンコード回路28aによって、ただ1つだけアクティブ状態とされた最優先順位のサブブロックヒット信号に対応したサブブロック32のアドレスが符号化される。符号化された最優先順位のアクティブ状態のサブブロックヒット信号は、サブプライオリティ回路26aによって非アクティブ状態にリセットされて、次の優先順位のアクティブ状態のサブブロック信号が最優先順位のアクティブ状態のサブブロック信号とされ、以下同様にして、データラッチ回路24aに保持されたn個のアクティブ状態のサブブロックヒット信号に対応したサブブロック32のアドレスが順次符号化される。
サブエンコーダ14a,14bは、基本的に、以上のようなものである。
【0279】
次に、本発明の最も特徴的な部分である最優先順位のサブブロック32のフラグデータを選択的に出力するためのスイッチ回路124,125、センス回路126、OR回路127およびAND回路128,129について説明する。
【0280】
まず、スイッチ回路124は、最優先順位のサブブロック32の各レジスタ36aから出力される(m+1)個のヒットフラグを、各サブブロック32の同一メモリワード34に対して共通に設けられた検出線L(L0 ,L1 ,…,Lm )の内、メモリワード34に対応する検出線Lに出力するためのものである。それぞれのスイッチ回路124は、各サブブロック32の各レジスタ36aに1対1に対応して設けられており、直列接続された2つのN型MOSトランジスタ(以下、NMOSという)124a,124bを有する。NMOS124bのゲートには、レジスタ36aの出力であるヒットフラグが入力され、そのソースはグランドに接続されている。また、NMOS124aのゲートには、AND回路128の出力信号が入力され、そのドレインは、各メモリワード34に対応した検出線Lに接続されている。
【0281】
スイッチ回路124は、ヒットフラグが‘1’で、なおかつ、AND回路128の出力信号が‘1’の時に、NMOS124a,124bの両方がオン状態となり、検出線Lにプリチャージされた電荷は、このAND回路128の出力信号がNMOS124aのゲートに入力された(m+1)個のスイッチ回路124のNMOS124a,124bを介してディスチャージされる。一方、ヒットフラグまたはAND回路128の出力信号の少なくとも一方が‘0’の時には、NMOS124aまたはNMOS124bの少なくとも一方がオフ状態となるため、検出線Lのレベルは、プリチャージされたままの状態とされる。すなわち、検出線Lは、出力信号が‘1’のAND回路128によって選択された(m+1)個のスイッチ回路124により、この(m+1)個のスイッチ回路124に入力されるヒットフラグの反転レベルになる。
【0282】
また、スイッチ回路125は、最優先順位のサブブロック32の各レジスタ36bから出力される(m+1)個のエンプティフラグを、メモリワード34に対応する検出線Lに出力するためのものである。なお、スイッチ回路125の構成および作用は、スイッチ回路124と同じであるから、ここでは、詳細な説明は省略する。
【0283】
続いて、センス回路126は、スイッチ回路124によって検出線Lに出力されたヒットフラグ、あるいは、スイッチ回路125によって検出線Lに出力されたエンプティフラグのレベルを検出するものである。それぞれのセンス回路126は、検出線Lに1対1に対応して設けられており、電源と検出線Lとの間に並列接続された2つのP型MOSトランジスタ(以下、PMOSという)126a,126bと、インバータ126cとを有する。また、PMOS126aのゲートにはOR回路127の出力信号が入力され、PMOS126bのゲートにはインバータ126cの出力信号が入力されている。また、インバータ126cには検出線Lが入力され、インバータ126cの出力はメインエンコーダ12aのフラグレジスタ回路18に入力されている。
【0284】
センス回路126は、OR回路127の出力信号が‘0’の時に、PMOS126aがオン状態となり、全ての検出線LがPMOS126aを介してプリチャージされる。検出線Lのレベルはインバータ126cにより反転される。インバータ126cの出力信号が‘0’になった時に、PMOS126bがオン状態となり、検出線Lのレベルは、PMOS126bを介してチャージアップされ、OR回路127の出力信号が‘1’になった後も‘1’に保持される。OR回路127の出力信号が‘1’になった後、スイッチ回路124またはスイッチ回路125のいずれかによって検出線Lがディスチャージされた場合、インバータ126cの出力信号が‘1’となってPMOS126bがオフ状態となり、検出線Lへのチャージアップが停止される。これにより、検出線Lにプリチャージされた電荷は、スイッチ回路124またはスイッチ回路125のいずれかを介してディスチャージされ、インバータ126cの出力信号は‘1’となる。一方、検出線Lがディスチャージされず、プリチャージされたままの状態を保持した場合、インバータ126cの出力信号は‘0’の状態を保持する。すなわち、センス回路126の出力信号であるインバータ126cの出力信号は、出力信号が‘1’のAND回路128によって選択された(m+1)個のスイッチ回路124またはスイッチ回路125に入力されるフラグデータと等しいレベルになる。
【0285】
OR回路127は、メインエンコーダ12aのタイミング制御回路60aの出力信号CS1,CS2の論理和を演算するものである。OR回路127の出力信号は、タイミング制御回路60aの出力信号CS1,CS2がいずれも‘0’の時に‘0’となり、全てのセンス回路126のPMOS126aのオンオフが制御される。
【0286】
AND回路128は、メインエンコーダ12aのタイミング制御回路60aの出力信号CS1とサブエンコーダ14aのサブプライオリティ回路26aの出力信号との論理積を演算するもので、各サブブロック32に1対1に対応して設けられている。AND回路128の出力信号は、タイミング制御回路60aの出力信号CS1が‘1’で、なおかつ、サブプライオリティ回路26aの出力信号が‘1’の時に‘1’となり、これに対応するサブブロック32の(m+1)個のスイッチ回路124が選択される。
【0287】
AND回路129は、メインエンコーダ12aのタイミング制御回路60aの出力信号CS2とサブエンコーダ14bのサブプライオリティ回路26bの出力信号との論理積を演算するものである。なお、AND回路129の構成および作用は、AND回路128と同じであるから、ここでは、詳細な説明は省略する。
【0288】
次に、本発明の連想メモリ装置に適用される符号化回路の動作について説明する。
【0289】
検索データと各サブブロック32の各メモリワード34の内容との一致検索が終了した時に、ヒットフラグが、各メモリワード34に対応した各レジスタ36aに格納される。レジスタ36aに格納されたヒットフラグは、各サブブロック32内の図示していないOR回路により、各サブブロック32毎に、全メモリワード34に対応したヒットフラグの論理和が取られ、各サブブロック32から出力される合計n個のサブブロックヒット信号として、サブエンコーダ14aのデータラッチ回路24aに保持される。
【0290】
サブエンコーダ14aにおいては、データラッチ回路24aに保持されたn個のサブブロックヒット信号の内、優先順位に応じて、1つのサブブロックヒット信号だけがアクティブ状態である‘1’として順次出力され、AND回路128に入力されるとともに、このアクティブ状態のサブブロックヒット信号に対応したサブブロック32のアドレスが順次符号化される。
【0291】
ここで、メインエンコーダ12aのタイミング制御回路60aの出力信号CS1が‘1’になり、1つだけアクティブ状態として出力されたサブブロックヒット信号に対応したAND回路128の出力信号が‘1’となり、このAND回路128に対応したサブブロック32の(m+1)個のスイッチ回路124が選択される。選択されたスイッチ回路124によって、ヒットフラグの反転レベルが検出線Lに出力され、センス回路126によって反転されてヒットフラグと等しいレベルとされた後、タイミング制御回路60aから出力されるタイミング制御信号によって、検出線L上の(m+1)個のヒットフラグが、メインエンコーダ10aのフラグレジスタ回路18に格納される。
【0292】
メインエンコーダ12aにおいては、優先順位に応じて、1つのヒットフラグだけがアクティブ状態である‘1’として順次出力され、このアクティブ状態のヒットフラグに対応したメモリワード34のアドレスが順次符号化される。
【0293】
本発明の連想メモリ装置に適用される符号化回路においては、サブエンコーダ14aから出力されるサブブロック32のアドレス、および、メインエンコーダ12aから出力されるメモリワード34のアドレスを合わせて、各ヒットフラグに対応したメモリワードのアドレスとして順次出力される。
本発明の連想メモリ装置に適用される符号化回路は、基本的に、以上のように動作する。
【0294】
なお、上記実施例では、ヒットフラグに対応したメモリワード34のアドレスを出力させる場合を例に挙げて説明したが、連想メモリを使用したシステムでは、メモリワード34の使用効率を最大限に向上させるために、一致検索の結果、検索データと一致した複数のメモリワード34の内容を保持し、なおかつ、一致しなかったメモリワード34の内容を消去し、この消去したメモリワード34の箇所に順次新しいデータを書き込むことにより、メモリワード34の内容を更新するという動作が頻繁に行われる。
【0295】
しかしながら、このとき問題になるのは、従来の技術の欄でも述べたように、内容を消去するメモリワード34のアドレスがランダムに発生するため、内容を消去した無効なメモリワード34のアドレスが管理しづらいことである。
【0296】
この問題点を解決するために、本発明の連想メモリ装置に適用される符号化回路においては、まず、ヒットフラグが格納されるレジスタ36aと全く同じ構成のエンプティフラグが格納されるレジスタ36bを設けている。これにより、ヒットフラグに対応したメモリワード34のアドレスを出力させる場合と全く同じように、優先順位に応じて、エンプティフラグに対応した無効なメモリワード34のアドレスを順次出力させることができ、無効なメモリワード34の管理が容易であるという利点がある。なお、ヒットフラグに対応したアドレスを符号化するのか、エンプティフラグに対応したアドレスを符号化するのかは、タイミング制御回路60aの出力信号CS1およびCS2によって決定される。すなわち、出力信号CS1によって、ヒットフラグに対応したアドレスが符号化され、出力信号CS2によって、エンプティフラグに対応したアドレスが符号化される。
【0297】
また、一致検索の結果、検索データと一致したデータが格納されたメモリワード34のアドレスを出力させる必要がある時と、新しいデータを書き込むために、無効なメモリワード34のアドレスを出力させる必要がある時は一般的に異なる場合が多い。これに基づいて、本発明の連想メモリ装置に適用される符号化回路では、ヒットフラグおよびエンプティフラグが出力される検出線Lを共用化している。これにより、連想メモリのレイアウト面積が削減され、高密度な連想メモリを作り上げることができるという利点もある。
【0298】
なお、ヒットフラグに対応したアドレスの符号化に関しては、さらに出力の高速化の要求がある。これに対し、例えば一致検索の結果、ただ1つのメモリワード34に対応したヒットフラグだけがアクティブ状態になるという限定(使用条件)の下では、メインプライオリティ回路20およびサブプライオリティ回路26aを不要とすることができ、ヒットフラグに対応したアドレスを符号化するに際して、これらのメインプライオリティ回路20およびサブプライオリティ回路26aを機能させないようにすることで、従来の2倍程度の動作速度の改善を期待することができる。
【0299】
ここで、図29に、一致検索の結果、ただ1つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定の下で、動作速度が高速化されるように適合された本発明の符号化回路の別の実施例の概略図を示す。
なお、図示例の符号化回路10bは、図28に示した符号化回路10aと比較して、メインエンコーダ12bがセレクト回路21を有する点、タイミング制御回路60bが出力信号CS3を出力する点、および、サブエンコーダ14aとAND回路128との間にOR回路130を有する点を除いて同じであるから、これらの3点以外の同一構成要素には同一符号を付し、ここでは、その詳細な説明は省略する。
【0300】
すなわち、符号化回路10bは、メインエンコーダ12bと、サブエンコーダ14a、14bと、スイッチ回路124、125、センス回路126、OR回路127およびAND回路128と、OR回路130(O1 ,O2 ,…,On )とを有する。
【0301】
符号化回路10bにおいて、まず、メインエンコーダ12bは、フラグレジスタ回路18と、メインプライオリティ回路20と、セレクト回路21と、メインエンコード回路22と、タイミング制御回路60bとを有する。
【0302】
ここで、セレクト回路21は、タイミング制御回路60bの出力信号CS3の制御によって、フラグレジスタ回路18に保持されたフラグデータ、または、メインプライオリティ回路20から出力されるフラグデータのいずれかを選択出力するものである。セレクト回路21は、図示例においては、出力信号CS3が‘0’のときに、メインプライオリティ回路20から出力されるフラグデータを選択出力し、出力信号CS3が‘1’のときには、メインプライオリティ回路20をバイパスして、フラグレジスタ回路18に保持されたフラグデータを選択出力する。すなわち、タイミング制御回路60bの出力信号CS3が‘1’のときには、メインプライオリティ回路20をバイパスして、フラグレジスタ回路18に保持されたフラグデータがメインエンコード回路22に直接入力される。
【0303】
また、タイミング制御回路60bは、出力信号CS3を発生する点を除いて、基本的に、図28に示したタイミング制御回路60aと同じ機能を有するものである。
【0304】
ここで、例えば複数のコンピュータが接続されたネットワーク環境において、各々のコンピュータには固有のネットワークアドレスが与えられることにより、個々のコンピュータは一意に識別される。スイッチングハブ等の装置では、例えば個々のコンピュータのネットワークアドレスとこのコンピュータが接続されたスイッチングハブのポート番号とを連想メモリの各々のメモリワードに格納しておき、送信元のコンピュータから出力されたパケットデータのヘッダー部に存在する受信先のコンピュータのネットワークアドレスを用いて一致検索を行い、この受信先のコンピュータが接続されたスイッチングハブのポート番号を取得する。このように、例えばネットワークアドレスを管理する場合、連想メモリのメモリワードには、個々のコンピュータに固有のネットワークアドレスが格納されるため、一致検索の結果、ただ1つのメモリワードに対応したヒットフラグだけがアクティブ状態になるという使用条件が発生する。
【0305】
タイミング制御回路60bから出力される出力信号CS3は、上述するように、一致検索の結果、ただ1つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定(使用条件)の下で、かつ、ただ1つのアクティブ状態のヒットフラグに対応したアドレスを符号化する時にだけ‘1’が出力され、これ以外の場合には‘0’が出力される。
【0306】
上述するように、一致検索の結果、ただ1つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定の下で、かつ、ただ1つのアクティブ状態のヒットフラグに対応したアドレスを符号化する時には、タイミング制御回路60bから出力される出力信号CS3を‘1’にすることによって、メインエンコーダ12bのフラグレジスタ回路18に保持されたヒットフラグが、メインプライオリティ回路20をバイパスしてメインエンコード回路22に直接入力され、このヒットフラグに対応したメモリワード34のアドレスが符号化される。このため、メインプライオリティ回路20の信号処理による遅延を排除することができ、ヒットフラグに対応したアドレスの符号化を高速化することができる。なお、出力信号CS3が‘0’の場合の動作は、図28に示した本発明の符号化回路10aの動作と全く同じである。
【0307】
続いて、OR回路130は、メインエンコーダ12bのタイミング制御回路60bの出力信号CS3とサブエンコーダ14aのサブプライオリティ回路26aの出力信号との論理和を演算するもので、各サブブロック32に対応して設けられている。OR回路130の出力信号は、タイミング制御回路60bの出力信号CS3またはサブプライオリティ回路26aの出力信号の少なくとも一方が‘1’の時に‘1’となる。すなわち、タイミング制御回路60bの出力信号CS3を‘1’にすることによって、サブプライオリティ回路26aの出力信号に係わらず、OR回路130の出力信号を‘1’にすることができる。
【0308】
上記OR回路130が追加されたことによって、AND回路128は、タイミング制御回路60bの出力信号CS1とOR回路130の出力信号との論理積を演算することになる。AND回路128の出力信号は、タイミング制御回路60bの出力信号CS1および出力信号CS3の両方が‘1’の時に、サブプライオリティ回路26aの出力信号に係わらず、全てのAND回路128の出力信号が‘1’となり、全てのサブブロック32の全てのスイッチ回路124が同時に選択される。なお、出力信号CS3が‘0’の場合のAND回路128の動作は、図28に示した符号化回路10aにおけるAND回路128の動作と全く同じである。
【0309】
上述するように、一致検索の結果、ただ1つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定の下で、かつ、ただ1つのアクティブ状態のヒットフラグに対応したアドレスを符号化する時には、タイミング制御回路60bの出力信号CS1および出力信号CS3の両方を‘1’にすることによって、サブプライオリティ回路26aの出力信号を無効化し、全てのAND回路128の出力信号を‘1’にすることができる。これにより、ただ1つのアクティブ状態であるヒットフラグが直ちに検出線Lに出力され、このヒットフラグに対応したメモリワード34のアドレスが符号化される。このため、サブエンコーダ14aにおける信号処理による内部遅延を排除することができ、ヒットフラグに対応したアドレスの符号化を高速化することができる。
【0310】
以下、符号化回路10bの動作について簡単に説明する。
符号化回路10bにおいては、一致検索の結果、ヒットフラグが、各メモリワード34に対応した各レジスタ36aに格納される。
【0311】
各々のレジスタ36aに格納されたヒットフラグは、各サブブロック32毎に全てのヒットフラグの論理和が取られ、各々のサブブロック32のサブブロックヒット信号とされる。ここで、一致検索の結果、ただ1つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定の下では、ただ1つのサブブロックヒット信号だけがアクティブ状態となるため、サブエンコーダ14aでは、ただ1つのアクティブ状態であるサブブロックヒット信号に対応したサブブロック32のアドレスが符号化される。
【0312】
一方、ヒットフラグが各々のレジスタ36aに格納された後、メインエンコーダ12bのタイミング制御回路60bの出力信号CS1および出力信号CS3の両方が‘1’とされ、サブエンコーダ14aのサブプライオリティ回路26aの出力信号に係わらず、全てのAND回路128の出力信号が‘1’となり、全てのスイッチ回路124が同時に選択される。これにより、サブエンコーダ14aの内部動作に係わらず、直ちにヒットフラグが検出線Lに出力され、メインエンコーダ12bにおいて、ただ1つのアクティブ状態であるヒットフラグに対応したメモリワード34のアドレスが符号化される。
【0313】
符号化回路10bからは、サブエンコーダ14aから出力されるサブブロックのアドレス、および、メインエンコーダ12bから出力されるメモリワードのアドレスを合わせて、ただ1つのアクティブ状態であるヒットフラグに対応したメモリワードのアドレスが出力される。
【0314】
なお、上記実施例においては、一致検索の結果、ただ1つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定の下で、ただ1つのアクティブ状態であるヒットフラグに対応したアドレスを符号化する場合を例に挙げて、本発明の符号化回路10bの動作について説明したが、これ以外の動作については、図28に示した本発明の符号化回路10aの動作と全く同じである。
【0315】
このように、本発明の符号化回路10bによれば、一致検索の結果、ただ1つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定の下では、メインエンコーダ12bのメインプライオリティ回路20における内部処理、ならびに、サブエンコーダ14aのサブプライオリティ回路26aにおける内部処理の両方を省くことができるため、ヒットフラグに対応するメモリワード34のアドレスの符号化を高速化することができる。一致検索の結果、ただ1つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定は、既に述べたように、例えば連想メモリを用いてネットワークアドレスを管理する場合等においてはごく当然のことであり、この限定の下で、ヒットフラグに対応するメモリワード34のアドレスの符号化を高速化できることは、ヒットフラグに対応するメモリワード34のアドレスの符号化の高速化を望むユーザーにとっては非常に望ましいことである。
【0316】
しかしながら、エンプティフラグに対応したアドレスの符号化に関しては、連想メモリの同一デバイス中で、複数の無効(エンプティ)なメモリワード34が存在することはごく普通に起こり得ることであるため、メインプライオリティ回路20およびサブプライオリティ回路26bを省くことはできず、メインプライオリティ回路20およびサブプライオリティ回路26bによる処理の後に符号化を行う必要があることは言うまでもないことである。
【0317】
以上、本発明の符号化回路について詳細に説明したが、本発明は上記実施例だけに限定されるものではない。
【0318】
例えば、図28および図29に示す本発明の符号化回路10a,10bは、図24に示す符号化回路120に本発明を適用したものであるが、もちろん図1および図8に示す符号化回路10,11に対しても適用可能である。
【0319】
また、上記実施例においては、メモリワードのヒットフラグをエンコードする際に、ただ1つのメモリワードがヒットする場合と、複数のメモリワードがヒットする場合とで、出力信号CS3により切り替えて制御する例を示した。すなわち、この両機能をサポートしてヒットフラグをエンコードするために、サブエンコーダ14aの中にサブプライオリティ回路26aを設けているが、本発明はこれに限定されず、常にヒットフラグが1つしかアクティブ状態にならない場合に限定すれば、このサブプライオリティ回路26aが不要となり、より面積効率の良い半導体チップを設計することができる。
【0320】
また、図28および図29に示す本発明の符号化回路10a,10bにおいては、サブエンコーダ14aによって、サブブロックヒット信号に対応したサブブロック32のアドレスを符号化し、サブエンコーダ14bによって、サブブロックエンプティ信号に対応したサブブロック32のアドレスを符号化する場合の一例を示したが、本発明はこれに限定されず、例えば1つのサブエンコーダを共用して、サブブロックヒット信号またはサブブロックエンプティ信号のいずれかに対応したサブブロック32のアドレスを選択的に符号化するようにしてもよいし、あるいは、サブエンコーダ14aおよび14bにおいて、サブブロックヒット信号およびサブブロックエンプティ信号で1つのデータラッチ回路を共用したり、1つのサブエンコード回路を共用したりするようにしてもよい。
【0321】
また、常にヒットフラグが1つしかアクティブ状態にならない用途では、より高速なエンコードのために、セレクト回路21を省略し、エンプティフラグ専用のメインエンコーダとヒットフラグ専用のメインエンコーダとを別々に設けることも可能である。この場合、常にヒットフラグが1つしかアクティブ状態にならないヒットフラグ専用のメインエンコーダには、メインプライオリティ回路20は不要である。
【0322】
また、上記実施例においては、アクティブ状態のヒットフラグに対応するメモリワードのアドレスを符号化する場合を例に挙げて説明したが、本発明はこれに限定されず、例えば非アクティブ状態のヒットフラグに対応するメモリワードのアドレスを符号化することもできるし、同様に、アクティブ状態および非アクティブ状態のエンプティフラグに対応するメモリワードのアドレスを符号化することも可能である。
【0323】
また、上記実施例では、フラグデータを保持する2つのレジスタ36a,36bを備える場合を例に挙げて説明したが、本発明はこれに限定されず、例えばヒットフラグに対応するメモリワード34のアドレスを符号化出力する必要がないのであれば、必ずしもヒットフラグを保持するレジスタ36aを設ける必要はなく、エンプティフラグを保持するレジスタ36bだけを設けるようにしてもよい。これにより、連想メモリのレイアウト面積をさらに削減することができる。
【0324】
また、本発明の符号化回路を適用する連想メモリ装置においては、ヒットフラグを保持するレジスタ36aやエンプティフラグを保持するレジスタ36bを有するスタティックな回路構成のものであってもよいし、あるいは、レジスタ36a,36bを持たないダイナミックな回路構成のものであってもよい。
【0325】
また、メインエンコーダおよびサブエンコーダを構成するプリフェッチ回路、データラッチ回路、プライオリティ回路、エンコード回路の入力数や構成、またPchMOSトランジスタ、NchMOSトランジスタを始めとして、種々の回路素子を入れ換えても様々に組み合わせてもよいし、プライオリティ回路で符号化が終了したフラグデータは、非アクティブ状態にするためにリセットするのではなく、例えばフラグレジスタ回路に対応する無効化ビットフラグ回路を設け、プライオリティ回路で符号化が終了したフラグデータに対応する無効化ビットフラグ回路のビットをセットすることにより、プライオリティ回路で符号化が終了したフラグデータを非アクティブ状態とすることも可能であるなど、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【0326】
【発明の効果】
以上詳細に説明した様に、本発明の連想メモリ装置に適用される符号化回路によれば、優先順位に応じて、エンプティフラグに対応した無効なメモリワードのアドレスを順次出力させることができるため、無効なメモリワードの管理が容易である。また、本発明の連想メモリ装置に適用される符号化回路では、ヒットフラグおよびエンプティフラグが出力される検出線を共用化したため、連想メモリ装置のレイアウト面積が削減され、高密度な連想メモリを構成することができる。
また、本発明の連想メモリ装置に適用される符号化回路によれば、一致検索の結果、ただ1つのメモリワードに対応したヒットフラグだけがアクティブ状態となるという限定(使用条件)の下では、メインエンコーダのメインプライオリティ回路およびサブエンコーダのサブプライオリティ回路の内部処理を省くことができるため、ヒットフラグに対応するメモリワードのアドレスの符号化を高速化することができる。
【図面の簡単な説明】
【図1】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路およびこれが適用される連想メモリブロックの一実施例の構成図である。
【図2】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられるプリフェッチ回路付優先順位付符号化回路の一実施例の構成図である。
【図3】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられる優先順位付サブブッロク符号化回路の一実施例の構成図である。
【図4】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられるプリフェッチ回路の一実施例の構成図である。
【図5】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられるプライオリティ回路およびエンコード回路の別の実施例の構成図である。
【図6】 (a)、(b)および(c)は、図5に示すプライオリティ回路に用いられる小単位のプライオリティ回路の一実施例の概略構成図である。
【図7】 図5に示す小単位のプライオリティ回路に用いられる論理演算回路の一実施例の構成図である。
【図8】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路およびこれが適用される連想メモリブロックの別の実施例の構成図である。
【図9】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられるプリフェッチ回路付優先順位付符号化回路の別の実施例の構成図である。
【図10】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられるタイミング制御回路回路の一実施例の構成図である。
【図11】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられるプリフェッチ回路付優先順位付符号化回路の各部のタイミングを示すタイムチャートである。
【図12】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路であるタイミング制御回路の別の実施例の構成図である。
【図13】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路が適用される符号化回路のプリフェッチ回路付優先順位付符号化回路の各部のタイミングを示すタイムチャートである。
【図14】 (a),(b)は、それぞれ、図12および図10に示すタイミング回路の検出結果を示すグラフである。
【図15】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路であるタイミング制御回路の別の実施例の構成図である。
【図16】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路であるタイミング制御回路の別の実施例の構成図である。
【図17】 (a)、(b)は、それぞれ図15および図10に示すタイミング回路の検出結果を示すグラフである。
【図18】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路が適用されたタイミング制御回路の別の実施例の構成図である。
【図19】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路が適用されたタイミング制御回路の他の実施例の構成図である。
【図20】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路が適用されたタイミング制御回路の他の実施例の構成図である。
【図21】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路が適用されたタイミング制御回路の他の実施例の構成図である。
【図22】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路が適用される符号化回路の優先順位付サブブッロク符号化回路部品の一実施例の構成図である。
【図23】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる半導体集積回路であるタイミング制御回路の他の実施例の構成図である。
【図24】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路およびこれが適用される連想メモリブロックの一実施例の構成図である。
【図25】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられる優先順位付符号化回路の一実施例の構成図である。
【図26】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路に用いられるタイミング制御回路の一実施例の構成図である。
【図27】 本発明の連想メモリ装置に適用される符号化回路を理解するための前提となる符号化回路の作用を説明するためのタイミングチャートである。
【図28】 本発明の符号化回路およびこれが適用される連想メモリブロックの一実施例の構成図である。
【図29】 本発明の符号化回路およびこれが適用される連想メモリブロックの別の実施例の構成図である。
【図30】 従来の符号化回路を適用した連想メモリ装置の全体構成図である。
【図31】 従来の符号化回路を適用した連想メモリブロックの全体構成図である。
【符号の説明】
10,10a,10b,11,120 符号化回路
12,12a,12b,122,212 メインプライオリティエンコーダ
14,14a,14b,214 サブブロックプライオリティエンコーダ
16 プリフェッチ回路
18,24,24a,24b データラッチ回路
20 メインプライオリティ回路
21 セレクト回路
22 メインエンコード回路
26,26a,26b サブプライオリティ回路
28,28a,28b サブエンコード回路
30,202 連想メモリブロック
32,204 連想メモリサブブロック
34 連想メモリワード
36,36a,36b レジスタ
40,188 プライオリティ回路要素
42,49,84,102a,102b,104a,104b,108a,108b,126c,170,172 インバータ
44,52,69a,69b,69c,69d,75a,75b,75c,75d,77a,77b,77c,77d,82a,82b,103a,103b,109a,109b,124a,124b,163,164 NチャンネルMOSトランジスタ
46,80a,80b,86,126a,126b,168 PチャンネルMOSトランジスタ
48 論理演算回路
48b,88,128,129,166 AND回路
48a EXORゲート
50,192 アドレス線
54 ゲート回路
60,60a,60b,61,90,92,100,106,110,112,116,178 タイミング制御回路
62 信号電流検出線
64 基準電流駆動線
66 電流駆動回路
67a,67d 制御トランジスタ
67b,67c 信号電圧印加トランジスタ
68 リファレンス電流駆動回路
70 差電流検出回路
72 プリチャージ制御信号線
74,76 ダミー回路
78,83 プリチャージトランジスタ
79 等電位化トランジスタ
85 出力端子
87 パルス回路
114,127,130 OR回路
118 リファレンス電流制御レジスタ
124,125,160 スイッチ回路
126 センス回路
162 プリチャージ回路
165 検出線
167 ブロック選択線
169 プリチャージ信号線
174,175 ラッチ信号線
176 制御信号線
180 プライオリティ回路
182,184,186 小単位プライオリティ回路
190 エンコード回路
200 連想メモリ
206 CAMサブアレイ
208 ヒット信号レジスタ
210 プライオリティエンコーダ
[0001]
BACKGROUND OF THE INVENTION
  The present invention is applied to a large-capacity associative memory device (associative memory) divided into a plurality of associative memory sub-blocks, and an address corresponding to a hit flag, which is a match search result between the search data and the contents of each memory word, Alternatively, the present invention relates to an encoding circuit for efficiently encoding an address corresponding to an empty flag indicating whether or not the content of each memory word is a valid match search target in order according to a predetermined priority order. Is.
[0002]
[Prior art]
Conventionally, an associative memory, that is, a fully parallel type CAM (Content Addressable Memory), is used as a semiconductor memory device having a function of detecting coincidence between search data and stored data in parallel in all bits and outputting the storage address or data of the matched data. Address type memory) is well known (see Takuo Ishino, edited by Tetsuya Iizuka, “Design of CMOS VLSI”, Baifukan, P176-P177).
[0003]
The content addressable memory (CAM) is searched by content, not by physical memory address. Accordingly, the basic function of the CAM is to input search data contrary to a normal memory, for example, and output the address of a word in which data matching the search data is stored. However, the number of matching words is not limited to one, and a plurality of words may match. Thus, when a match is obtained in a plurality of words, a normal encoded circuit (encoder) cannot obtain a correct encoded output. For this reason, a priority-order encoding circuit (priority encoder) that encodes and outputs a plurality of coincidence signals (hit signals) according to a predetermined priority is used for the CAM.
[0004]
By the way, in a large-capacity CAM, the number of words is generally very large with respect to the word length. For this reason, although the cell array is divided into a plurality of blocks, the arrangement of priority encoders is an important problem. That is, if priority encoders are attached to all the blocks of the CAM, the area occupied by the priority encoder circuit is increased, and the power consumption is also increased. When the number of blocks to be divided increases, the occupied area and power consumption further increase in proportion to this.
[0005]
Therefore, an associative memory device is proposed in which one main priority encoder is provided for a plurality of blocks, and blocks that are encoded (encoded) by the priority encoder are performed by a separately provided block priority encoder. Has been.
[0006]
This associative memory (CAM) is shown in FIG. As shown in FIG. 30, the associative memory 200 is divided into four associative memory blocks 202, and the associative memory block 202 is further divided into eight associative memory sub-blocks 204. Then, the priority encoder 210 corresponds to the main priority encoder 212 provided for each of the eight associative memory blocks 202 including the eight associative memory sub-blocks 204, that is, a total of four associative memory blocks 202 and four associative memory blocks 202. A hierarchical priority encoder having a single sub-block priority encoder 214 is employed. Here, as shown in FIG. 31, the associative memory sub-block 204 includes a CAM sub-array 206 in which a predetermined number of associative memory words having a predetermined word length are arranged and its control unit. The control unit includes search data, associative memory words, A hit signal register 208 for holding the hit signals is included.
[0007]
In the associative memory block 202, when searching for a match, first, the hit signals of all the words in this sub block are held in the hit signal register 208 for each associative memory sub block 204 and at the same time, the control of each associative memory sub block 204 is performed. A sub-block hit signal indicating the presence of a matching word in this sub-block 204 is generated by an OR circuit (not shown). Subsequently, the sub-block priority encoder 214 receives the signal and generates a sub-block select signal indicating the highest priority associative memory sub-block 204. At the same time, the sub-block priority encoder 214 is encoded (coded). Generate sub-block addresses.
[0008]
Next, the switch circuit (not shown) of the selected sub-block receives and activates the block select signal, and the data (hit signal) held in the hit signal register 208 is output to the main priority encoder 212 as an output signal. Forward. Thereafter, the main priority encoder 212 encodes the transferred hit signal in accordance with a predetermined priority order, and generates a hit memory word address in the associative memory sub-block 204. The priority encoder 210 outputs the encoded logical address of the hit memory word of the CAM memory 200 by combining the hit memory word address and the sub-block address.
[0009]
In the conventional CAM memory 200 shown in FIGS. 30 and 31, a priority encoder (encoding circuit) 210 performs encoding with a main priority encoder (priority-encoding circuit) 212 that handles a plurality of associative memory sub-blocks 204. A sub-block priority encoder 214 for assigning priorities to the associative memory sub-block 204. The sub-block priority encoder 214 first determines a priority among the plurality of sub-blocks 204, and outputs an output signal of the prioritized sub-block 204 to the main priority encoder. By inputting into 212 and encoding (encoding), the entire encoding circuit configuration can be made relatively small, the circuit area with respect to the circuit scale of the entire CAM memory 200 can be reduced, and high integration can be achieved. Yes.
[0010]
However, all the output signals (hit signal data) from the prioritized associative memory sub-block 204 are encoded by the main priority encoder 212, the encoding is completed, and the encoded data is output. It takes time to switch the hit signal between the sub-blocks until encoding of the output signal (hit signal data (hereinafter also referred to as flag data)) from the priority sub-block 204 is started. That is, after the encoded address is output by the main priority encoder 212, it takes time for the hit signal data to be transferred from the hit signal register 208 of the next priority sub-block 204 to the main priority encoder. was there.
[0011]
On the other hand, in an apparatus using an associative memory, in order to maximize the use efficiency of each memory word of the associative memory, for example, as a result of a match search, the contents of a plurality of memory words that match the search data are retained and stored. After erasing the contents of the memory word that has not been performed, the operation of updating the contents of the memory word is frequently performed by sequentially writing new data to the location of the erased memory word.
[0012]
For example, in a device such as a switching hub that connects a plurality of computers and constructs an integrated network environment, an associative memory is used, and attached data such as a port number corresponding to the MAC address existing in the header portion of the packet data. Based on this, the packet data transferred from the transmission source computer is output from the port corresponding to the acquired port number, so that it is correctly transferred to the reception destination computer.
[0013]
Here, when the port for connecting a computer is changed from port 1 to port 3, the port number stored in the attached data of the memory word storing the data of the MAC address corresponding to this computer is changed from port 1 to port 3. If not updated, the packet data transferred to this computer will be output from port 1 to which this computer was previously connected, not to port 3 to which it is actually connected. In order to prevent this, it is necessary to constantly update the port number to which each computer is connected to the latest information.
[0014]
The number of memory words in the associative memory is generally smaller than the total number of computers on the network, and only information on a specific computer is selectively stored in each memory word. For example, in order to improve the use efficiency of the associative memory device, time stamp information for managing the use time is stored as attached data, and this time stamp information is constantly updated so that only information on a computer that is frequently used is stored. Registered in memory word. Therefore, it is necessary to always update the time stamp information of each memory word to the latest information.
[0015]
Thus, in an apparatus using an associative memory, an operation of updating the contents of each memory word in the associative memory is frequently performed.
[0016]
However, in order to update the contents of each memory word of the associative memory, it is necessary to manage the address of the memory word from which the contents are erased. However, since the address of the memory word from which the contents are erased is randomly generated, The associative memory device cannot manage the address of an invalid memory word whose contents are erased. For example, the address of a memory word whose contents are erased must be managed outside the associative memory.
[0017]
[Problems to be solved by the invention]
  The object of the present invention is applicable to a large-capacity associative memory device composed of associative memory blocks composed of a plurality of associative memory sub-blocks, which solves the above-mentioned problems of the prior art and requires high-speed processing for large-capacity data. An object of the present invention is to provide an encoding circuit capable of managing invalid memory words whose contents have been erased and encoding their addresses efficiently.
  In addition to the above object, another object of the present invention is that there is no time delay (waiting time) in switching between a plurality of associative memory sub-blocks, and output signals from a plurality of associative memory sub-blocks are transmitted in a predetermined cycle. It is an object of the present invention to provide an encoding circuit capable of encoding continuously and efficiently.
[0018]
[Means for Solving the Problems]
  To achieve the above object, the present invention provides a plurality of associative memory sub-blocks.HaveEach said associative memory sub-blockButA first register holding a hit flag which is a match search result between the search data and the contents of each of the memory words in a one-to-one correspondence with each of the plurality of memory words; and A second register that holds an empty flag indicating whether or not the contents of each of the memory words are valid ones to be matched.An encoding circuit applied to an associative memory device,
  A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, a sub-priority encoder that determines the priority of the associative memory sub-block, and the associative memory sub-corresponding to the sub-block hit signal of the priority determined by the sub-priority encoder or the sub-block empty signal A selection circuit for selecting a block; a switch circuit for outputting each of the hit flag or empty flag output from the associative memory sub-block selected by the selection circuit to a corresponding detection line; and each of the detections Output on line A sense circuit for detecting the hit flag or the empty flag, and the addresses of the memory words corresponding to the hit flag or the empty flag detected by the sense circuit are sequentially encoded according to the priority order. A main priority encoder,
The main priority encoder has a flag register circuit for holding each hit flag or the empty flag, and one of the hit flags or the empty flags held in the flag register circuit according to the priority order. A main priority circuit that sequentially outputs only the hit flag or the empty flag as an active state, and an address of the memory word corresponding to the hit flag or the empty flag that is sequentially output from the main priority circuit. A main encoding circuit that sequentially encodes the address of the memory word corresponding to each of the hit flag or the empty flag held in the flag register circuit; Reset means for sequentially resetting the hit flag or the empty flag after encoding in the flag register circuit, and the sign of the address of the memory word corresponding to the hit flag or the empty flag held in the flag register circuit And an end detection means for detecting that the conversion is complete.
The main priority encoder further includes a select circuit that selectively outputs either the hit flag held in the flag register circuit or the hit flag output from the main priority circuit to the main encode circuit. Have
The hit flag is directly input from the flag register circuit to the main encoding circuit and encoded without passing through the main priority circuit, and the empty flag is encoded from the flag register circuit through the main priority circuit. Coding circuit characterized by being inputted to circuit and codingIs to provide.
[0019]
  The present invention also provides:A plurality of associative memory sub-blocks, each of the associative memory sub-blocks corresponding to each of the plurality of memory words, one to one for each of the memory words, search data, contents of each of the memory words, A first register that holds a hit flag that is a match search result, and a second register that holds an empty flag indicating whether or not the contents of each of the memory words are valid search targets HaveAn encoding circuit applied to an associative memory device,
  A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, a sub-priority encoder that determines the priority of the associative memory sub-block, and the associative memory sub-corresponding to the sub-block hit signal of the priority determined by the sub-priority encoder or the sub-block empty signal A selection circuit for selecting a block, and each hit flag or empty flag output from the associative memory sub-block selected by the selection circuit is output to a corresponding detection line.switchCircuit, a sense circuit for detecting the hit flag or the empty flag output on each of the detection lines, and an address of the memory word corresponding to each of the hit flag or the empty flag detected by the sense circuit A main priority encoder that sequentially encodesHave
  The main priority encoder has a flag register circuit for holding each hit flag or the empty flag, and one of the hit flags or the empty flags held in the flag register circuit according to the priority order. A main priority circuit that sequentially outputs only the hit flag or the empty flag as an active state, and an address of the memory word corresponding to the hit flag or the empty flag that is sequentially output from the main priority circuit. A main encoding circuit that sequentially encodes whether or not the encoding of the address of the memory word corresponding to each of the hit flag or the empty flag held in the flag register circuit is completed Has a disable bit flag circuit, and an end detection means for encoding the address of the memory word corresponding to the hit flag or the empty flag held in the flag register circuit detects that it has completed showing,
The main priority encoder further includes a select circuit that selectively outputs either the hit flag held in the flag register circuit or the hit flag output from the main priority circuit to the main encode circuit. Have
The hit flag is directly input from the flag register circuit to the main encoding circuit and encoded without passing through the main priority circuit, and the empty flag is encoded from the flag register circuit through the main priority circuit. Input to the circuit and encodeAn encoding circuit is provided.
[0020]
  AlsoThe present inventionA plurality of associative memory sub-blocks, each of the associative memory sub-blocks corresponding to each of the plurality of memory words, one to one for each of the memory words, search data, contents of each of the memory words, A first register that holds a hit flag that is a match search result, and a second register that holds an empty flag indicating whether or not the contents of each of the memory words are valid search targets HaveAn encoding circuit applied to an associative memory device,
  A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, a sub-priority encoder that determines the priority of the associative memory sub-block, and the associative memory sub-corresponding to the sub-block hit signal of the priority determined by the sub-priority encoder or the sub-block empty signal A selection circuit for selecting a block, and each hit flag or empty flag output from the associative memory sub-block selected by the selection circuit is output to a corresponding detection line.switchCircuit,A sense circuit for detecting the hit flag or the empty flag output on each of the detection lines, and a sense circuit detected by the sense circuit;A main priority encoder that sequentially encodes the addresses of the memory words corresponding to the hit flags or the empty flags in accordance with the priority order;Have
  The main priority encoder has a flag register circuit for holding each hit flag or the empty flag, and one of the hit flags or the empty flags held in the flag register circuit according to the priority order. A main priority circuit that sequentially outputs only the hit flag or the empty flag as an active state, and an address of the memory word corresponding to the hit flag or the empty flag that is sequentially output from the main priority circuit. A main encoding circuit that sequentially encodes the address of the memory word corresponding to each of the hit flag or the empty flag held in the flag register circuit; Reset means for sequentially resetting the hit flag or the empty flag after encoding in the flag register circuit, and the sign of the address of the memory word corresponding to the hit flag or the empty flag held in the flag register circuit Timing control means for detecting in advance the timing at which all the conversion ends, and holding the hit flag or the empty flag of the next priority detected by the sense circuit in the flag register circuit,
The main priority encoder further includes a select circuit that selectively outputs either the hit flag held in the flag register circuit or the hit flag output from the main priority circuit to the main encode circuit. Have
The hit flag is directly input from the flag register circuit to the main encoding circuit and encoded without passing through the main priority circuit, and the empty flag is encoded from the flag register circuit through the main priority circuit. Input to the circuit and encodeAn encoding circuit is provided.
[0021]
  The present invention further includes a plurality of associative memory sub-blocks, each of the associative memory sub-blocks corresponding to each of the plurality of memory words, the search data, and each of the memory words. A first register that holds a hit flag that is a match search result with the contents of the memory word, and an empty flag that indicates whether the contents of each memory word are valid search targets An encoding circuit applied to an associative memory device having a second register,
A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, a sub-priority encoder that determines the priority of the associative memory sub-block, and the associative memory sub-corresponding to the sub-block hit signal of the priority determined by the sub-priority encoder or the sub-block empty signal A selection circuit for selecting a block; a switch circuit for outputting each of the hit flag or empty flag output from the associative memory sub-block selected by the selection circuit to a corresponding detection line; and each of the detections Output on line A sense circuit for detecting the hit flag or the empty flag, and the addresses of the memory words corresponding to the hit flag or the empty flag detected by the sense circuit are sequentially encoded according to the priority order. A main priority encoder,
The main priority encoder has a flag register circuit for holding each hit flag or the empty flag, and one of the hit flags or the empty flags held in the flag register circuit according to the priority order. A main priority circuit that sequentially outputs only the hit flag or the empty flag as an active state, and an address of the memory word corresponding to the hit flag or the empty flag that is sequentially output from the main priority circuit. A main encoding circuit that sequentially encodes whether or not the encoding of the address of the memory word corresponding to each of the hit flag or the empty flag held in the flag register circuit is completed The timing of the end of the encoding of the address of the memory word corresponding to the hit flag or the empty flag held in the flag register circuit is detected in advance and detected by the sense circuit. Timing control means for holding the hit flag or the empty flag of the next priority in the flag register circuit,
The main priority encoder further includes a select circuit that selectively outputs either the hit flag held in the flag register circuit or the hit flag output from the main priority circuit to the main encode circuit. Have
The hit flag is directly input from the flag register circuit to the main encoding circuit and encoded without passing through the main priority circuit, and the empty flag is encoded from the flag register circuit through the main priority circuit. Provided is an encoding circuit which is characterized by being input to a circuit for encoding.
[0022]
  Also,The present invention has a plurality of associative memory sub-blocks, and each of the associative memory sub-blocks corresponds to a plurality of memory words and a one-to-one correspondence with each of the memory words. A first register holding a hit flag which is a result of a match search with the content of a word, and a first register holding an empty flag indicating whether or not the content of each memory word is a valid search target An encoding circuit applied to an associative memory device having two registers,
  A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, a sub-priority encoder that determines the priority of the associative memory sub-block, and the associative memory sub-corresponding to the sub-block hit signal of the priority determined by the sub-priority encoder or the sub-block empty signal A selection circuit for selecting a block, a switch circuit for outputting each hit flag or empty flag output from the content addressable memory sub-block selected by the selection circuit to a corresponding detection line, and a previous priority The hit of A prefetch circuit that holds the hit flag or the empty flag of the next priority output on the detection line in advance while encoding the address of the memory word corresponding to the lag or the empty flag; A main priority encoder that sequentially encodes the addresses of the memory words corresponding to the hit flags or empty flags of each of the previous priorities held in the prefetch circuit according to the priorities;
  The main priority encoder has a flag register circuit for holding each hit flag or the empty flag, and one of the hit flags or the empty flags held in the flag register circuit according to the priority order. A main priority circuit that sequentially outputs only the hit flag or the empty flag as an active state, and an address of the memory word corresponding to the hit flag or the empty flag that is sequentially output from the main priority circuit. A main encoding circuit that sequentially encodes the address of the memory word corresponding to each of the hit flag or the empty flag held in the flag register circuit; Reset means for sequentially resetting the hit flag or the empty flag after encoding in the flag register circuit, and the sign of the address of the memory word corresponding to the hit flag or the empty flag held in the flag register circuit An end detection means for detecting that the conversion is complete.Have
  The main priority encoder further includes a select circuit that selectively outputs either the hit flag held in the flag register circuit or the hit flag output from the main priority circuit to the main encode circuit. Have
The hit flag is directly input from the flag register circuit to the main encoding circuit and encoded without passing through the main priority circuit, and the empty flag is encoded from the flag register circuit through the main priority circuit. Provided is an encoding circuit which is characterized by being input to a circuit for encoding.
[0023]
  Also,The present invention has a plurality of associative memory sub-blocks, and each of the associative memory sub-blocks corresponds to a plurality of memory words and a one-to-one correspondence with each of the memory words. A first register holding a hit flag which is a result of a match search with the content of a word, and a first register holding an empty flag indicating whether or not the content of each memory word is a valid search target An encoding circuit applied to an associative memory device having two registers,
A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, a sub-priority encoder that determines the priority of the associative memory sub-block, and the associative memory sub-corresponding to the sub-block hit signal of the priority determined by the sub-priority encoder or the sub-block empty signal A selection circuit for selecting a block, a switch circuit for outputting each hit flag or empty flag output from the content addressable memory sub-block selected by the selection circuit to a corresponding detection line, and a previous priority The hit of A prefetch circuit that holds the hit flag or the empty flag of the next priority output on the detection line in advance while encoding the address of the memory word corresponding to the lag or the empty flag; A main priority encoder that sequentially encodes the addresses of the memory words corresponding to the hit flags or empty flags of each of the previous priorities held in the prefetch circuit according to the priorities;
  The main priority encoder has a flag register circuit for holding each hit flag or the empty flag, and one of the hit flags or the empty flags held in the flag register circuit according to the priority order. A main priority circuit that sequentially outputs only the hit flag or the empty flag as an active state, and an address of the memory word corresponding to the hit flag or the empty flag that is sequentially output from the main priority circuit. A main encoding circuit that sequentially encodes whether or not the encoding of the address of the memory word corresponding to each of the hit flag or the empty flag held in the flag register circuit is completed And disabling bit flag circuit shown, the end detection means for encoding the address of the memory word corresponding to the hit flag or the empty flag held in the flag register circuit detects that it has completedHave
  The main priority encoder further includes a select circuit that selectively outputs either the hit flag held in the flag register circuit or the hit flag output from the main priority circuit to the main encode circuit. Have
The hit flag is directly input from the flag register circuit to the main encoding circuit and encoded without passing through the main priority circuit, and the empty flag is encoded from the flag register circuit through the main priority circuit. Provided is an encoding circuit which is characterized by being input to a circuit for encoding.
[0024]
  Also,The present invention has a plurality of associative memory sub-blocks, and each of the associative memory sub-blocks corresponds to a plurality of memory words and a one-to-one correspondence with each of the memory words. A first register holding a hit flag which is a result of a match search with the content of a word, and a first register holding an empty flag indicating whether or not the content of each memory word is a valid search target An encoding circuit applied to an associative memory device having two registers,
  A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, a sub-priority encoder that determines the priority of the associative memory sub-block, and the associative memory sub-corresponding to the sub-block hit signal of the priority determined by the sub-priority encoder or the sub-block empty signal A selection circuit for selecting a block, a switch circuit for outputting each hit flag or empty flag output from the content addressable memory sub-block selected by the selection circuit to a corresponding detection line, and a previous priority The hit of A prefetch circuit that holds the hit flag or the empty flag of the next priority output on the detection line in advance while encoding the address of the memory word corresponding to the lag or the empty flag; A main priority encoder that sequentially encodes the addresses of the memory words corresponding to the hit flags or empty flags of each of the previous priorities held in the prefetch circuit according to the priorities;
  The main priority encoder has a flag register circuit for holding each hit flag or the empty flag, and one of the hit flags or the empty flags held in the flag register circuit according to the priority order. A main priority circuit that sequentially outputs only the hit flag or the empty flag as an active state, and an address of the memory word corresponding to the hit flag or the empty flag that is sequentially output from the main priority circuit. A main encoding circuit that sequentially encodes the address of the memory word corresponding to each of the hit flag or the empty flag held in the flag register circuit; Reset means for sequentially resetting the hit flag or the empty flag after encoding in the flag register circuit, and the sign of the address of the memory word corresponding to the hit flag or the empty flag held in the flag register circuit Timing control means for detecting in advance the timing at which all the digitization ends, and for causing the flag register circuit to hold the hit flag or the empty flag of the next priority detected by the sense circuitHave
  The main priority encoder further includes a select circuit that selectively outputs either the hit flag held in the flag register circuit or the hit flag output from the main priority circuit to the main encode circuit. Have
The hit flag is directly input from the flag register circuit to the main encoding circuit and encoded without passing through the main priority circuit, and the empty flag is encoded from the flag register circuit through the main priority circuit. Provided is an encoding circuit which is characterized by being input to a circuit for encoding.
[0025]
  Also,The present invention has a plurality of associative memory sub-blocks, and each of the associative memory sub-blocks corresponds to a plurality of memory words and a one-to-one correspondence with each of the memory words. A first register holding a hit flag which is a result of a match search with the content of a word, and a first register holding an empty flag indicating whether or not the content of each memory word is a valid search target An encoding circuit applied to an associative memory device having two registers,
  A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, a sub-priority encoder that determines the priority of the associative memory sub-block, and the associative memory sub-corresponding to the sub-block hit signal of the priority determined by the sub-priority encoder or the sub-block empty signal A selection circuit for selecting a block, a switch circuit for outputting each hit flag or empty flag output from the content addressable memory sub-block selected by the selection circuit to a corresponding detection line, and a previous priority The hit of A prefetch circuit that holds the hit flag or the empty flag of the next priority output on the detection line in advance while encoding the address of the memory word corresponding to the lag or the empty flag; A main priority encoder that sequentially encodes the addresses of the memory words corresponding to the hit flags or empty flags of each of the previous priorities held in the prefetch circuit according to the priorities;
  The main priority encoder has a flag register circuit for holding each hit flag or the empty flag, and one of the hit flags or the empty flags held in the flag register circuit according to the priority order. A main priority circuit that sequentially outputs only the hit flag or the empty flag as an active state, and an address of the memory word corresponding to the hit flag or the empty flag that is sequentially output from the main priority circuit. A main encoding circuit that sequentially encodes whether or not the encoding of the address of the memory word corresponding to each of the hit flag or the empty flag held in the flag register circuit is completed The timing of the end of the encoding of the address of the memory word corresponding to the hit flag or the empty flag held in the flag register circuit is detected in advance and detected by the sense circuit. Timing control means for holding the hit flag or the empty flag of the next priority in the flag register circuit;Have
  The main priority encoder further includes a select circuit that selectively outputs either the hit flag held in the flag register circuit or the hit flag output from the main priority circuit to the main encode circuit. Have
The hit flag is directly input from the flag register circuit to the main encoding circuit and encoded without passing through the main priority circuit, and the empty flag is encoded from the flag register circuit through the main priority circuit. Provided is an encoding circuit which is characterized by being input to a circuit for encoding.
[0026]
  Here, the detection line is shared by the hit flag and the empty flag.Is preferred.
[0027]
  In addition, the aboveIn any ofAn encoding circuit comprising:
  The main priority encoder further encodes the hit flag by directly inputting the hit flag from the flag register circuit to the main encode circuit without passing through the main priority circuit, or the hit flag is input to the flag register. Selection means for determining whether to input and encode from the circuit to the main encoding circuit via the main priority circuitthingIs preferred.
[0029]
The sub-priority encoder includes a data latch circuit that holds the sub-block hit signal or the sub-block empty signal that is output from each of the content addressable memory sub-blocks, and each of the sub-holds that is held in the data latch circuit. A sub-priority circuit that sequentially outputs only one sub-block hit signal or the sub-block empty signal as an active state according to the priority order among the block hit signal or the sub-block empty signal, and the sub-priority circuit sequentially And a sub-encoding circuit that sequentially encodes the addresses of the associative memory sub-blocks corresponding to the sub-block hit signal or the sub-block empty signal that is output in an active state.
[0030]
The sub-priority encoder outputs only one sub-block hit signal which is output from each of the associative memory sub-blocks, and outputs from the data latch circuit. It is also preferable to have a sub-encoding circuit that encodes the address of the associative memory sub-block corresponding to the sub-block hit signal in one active state.
[0031]
  Also,Any of the aboveAssociative memory deviceEncoding circuit applied toBecause
  A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, the associative memory sub-block is selected, the sub-encoder for encoding the address, and the detection flag corresponding to each of the hit flag or the empty flag output from the selected associative memory sub-block And a main encoder that encodes the address of the memory word corresponding to each hit flag or empty flag output to the detection line.Is preferred.
[0032]
  The main encoder encodes an address of a memory word corresponding to one active hit flag, and sequentially sets only one empty flag in an active state in accordance with the priority among the active state empty flags, It is preferable to sequentially encode the addresses of the memory words corresponding to the active state empty flag..
[0033]
  The main encoder preferably has a priority circuit that sequentially outputs only one empty flag as an active state among empty flags in an active state according to priority..
[0034]
  The associative memory device includes:
Further, each of the associative memory sub-blocks is provided corresponding to the same memory word, and either the hit flag or the empty flag corresponding to the memory word is output in common. Detection line
Preferably, each of the hit flags or each of the empty flags has a switch circuit that outputs each of the hit flags to the corresponding detection line..
[0035]
DETAILED DESCRIPTION OF THE INVENTION
  Hereinafter, based on a preferred embodiment shown in the accompanying drawings, first, an encoding circuit as a premise for understanding an encoding circuit applied to an associative memory device of the present invention and an associative memory device to which the same is applied The encoding circuit applied to the content addressable memory device of the present invention will be described in detail.
[0036]
  First, an example of an encoding circuit that is a premise for understanding the encoding circuit applied to the content addressable memory device of the present invention will be described in detail with reference to FIGS.
[0037]
In the associative memory device of the illustrated example, when search data is input to the associative memory block constituting the associative memory device at the time of matching search, matching search is sequentially performed from the first of the plurality of associative memory sub-blocks. At this time, as a result of each associative memory sub-block, that is, a match signal (hit signal) matching the search data is held in a plurality of associative memory words, and the highest priority is assigned by the sub-block coding circuit with priority. The associative memory sub-block having a higher value is selected, the hit signal is transferred to the priority order encoding circuit, the hit order encoding circuit encodes the hit signal, and the hit address is output. On the other hand, during the encoding of the hit signal, the hit signal of the next priority content addressable memory sub-block selected by the prioritized sub-block encoding circuit is input to the prefetch circuit. Then, after the encoding of the hit signal of the prioritized associative memory sub-block is completed in the prioritized encoding circuit, the hit of the next priority associative memory sub-block input to the prefetch circuit is immediately performed. Start encoding the signal. After that, the hit signal of the associative memory sub-block having the next priority is prefetched to the prefetch circuit in the prefetch circuit in which the empty space is generated. These procedures are sequentially repeated to encode the hit signal of the entire associative memory block, that is, to output an address.
[0038]
According to this encoding circuit, as described above, the hit signal of the associative memory sub-block to be encoded next is input to the prefetch circuit during the encoding of the hit signal of the previous associative memory sub-block. Since it is not necessary to take the time for transferring the hit signal from the associative memory sub-block to the prioritized encoding circuit in addition to the encoding time, the encoding time of the entire associative memory block and the entire associative memory can be shortened. The associative memory match search operation can be speeded up.
[0039]
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, an encoding circuit which is a premise of the present invention will be described in detail based on a preferred embodiment shown in the accompanying drawings.
[0040]
FIG. 1 is a schematic diagram of an embodiment of an associative memory block to which an encoding circuit as a premise of the present invention is applied. The encoding circuit 10 of the illustrated example includes a pre-order buffered circuit with priority order (hereinafter referred to as a main priority encoder or main encoder) 12 and a priority-attached sub-block encoding circuit 14 (hereinafter referred to as sub-block priority encoder or The main encoder 12 includes a prefetch buffer circuit 16, a data latch circuit 18, a priority circuit 20, and an encoding circuit 22. The sub block encoder 14 includes a latch circuit 24, , A priority circuit 26 and an encoding circuit 28.
[0041]
The main encoder 12 is provided for an associative memory block (hereinafter referred to as a memory block) 30. The associative memory block 30 includes a plurality (n in the illustrated example) of associative memory sub-blocks (hereinafter referred to as sub-blocks) 32 (B1, B2... BnThe sub-block 32 includes a plurality of (m + 1 in the illustrated example) associative memory words (hereinafter referred to as words) having a predetermined number of CAM memory cells arranged in an array, that is, having a continuous logical address of a predetermined word length. 34) (W0, W1... Wm) And the sub-array (CAM cell sub-array) unit configured with the search data in each word 34, for example, a match “1” signal (hit signal) and a mismatch “0” signal are held for each word 34. Register 36 (R0, R1, R2... RmAnd an OR circuit that takes an OR (logical sum) of the match search results (hereinafter referred to as hit signal data) of each word 34, and the output of this OR circuit is a sub-block encoder 14 described later. The latch circuit 24 holds each sub-block.
[0042]
FIG. 2 shows a configuration diagram of an embodiment of the main encoder 12. In the figure, the look-ahead buffer circuit 16 of the main encoder 12 is such that the priority circuit 20 and the encoding circuit 22 of the main encoder 12 match the hit signal of the sub-block 32 with a higher priority according to a predetermined priority (word). The hit signal data held in the register 36 of the next priority sub-block 32 is stored in each word 34 (W0, W1... Wm), And any data can be used as long as it can temporarily hold m + 1 '0' or '1' 1-bit data, such as a data latch circuit or a data register. . The prefetch buffer circuit 16 outputs the hit signal data of each word 34 latched and held in parallel to the data latch circuit 18 by the encode output (encode address output) of the main encoder 12, and then the hit signal data is sent to the main encoder 12. The hit signal data of the next priority sub-block 32 selected by the sub-block encoder 14 during the encoding by the sub-block encoder 14 is fetched for each word 34.
[0043]
The data latch circuit 18 latches and holds m + 1 1-bit data as in the prefetch buffer circuit 16, and each word 34 (W0, W1... Wm), Particularly hit signal data having a plurality of hit signals, the priority circuit 20 selects data having a hit signal ('1') only in one word address in accordance with a predetermined priority order, and encodes the data. This is for holding the hit signal data until all the hit signals ('1') are encoded by repeating the encoding of 22. The data latch circuit 18 is configured to reset the word address hit signal ('1') every time a high priority word address hit signal ('1') is encoded.
[0044]
As shown in FIG. 2, the priority circuit 20 receives only m + 1 input signals of all words 34 having a plurality of coincidence signals when hit signal data having a plurality of hit signals is input. Output signals including hit signals with predetermined priorities (priorities) are sequentially output according to predetermined priorities, and m + 1 priority circuit elements 40 (400, 401..., 40m)including. Here, one priority circuit element (hereinafter referred to as a circuit element) 40 is a second circuit element 40.1As a representative example, the input terminal I1The inverter 42 for inverting the input signal inputted to the N-channel MOS transistor 44, and the output of the inverter 42 and its gate electrode are connected to each other, and the N-channel MOS transistor 44 (N1) And P-channel MOS transistor 46 (P1) And the source and drain electrodes of the NMOS transistor 44 as inputs, and an output terminal O1And a logical operation circuit 48 that outputs.
[0045]
Here, NMOS transistor N1One electrode (for example, source electrode) of the0In the upper circuit element 400NMOS transistor N0Connected to the other electrode (for example, drain electrode) of the NMOS transistor N1The other electrode (for example, drain electrode) of the1In the lower circuit element 402MOS transistor N2Are connected to one of the electrodes (for example, the source electrode). Thus, the NMOS transistor N0, N1, N2..., NmIs node Q0, Q1, Q2... Qm-1Is connected serially. NMOS transistor NmNode Q belowmIs connected to an OR output terminal or, which is connected to each circuit of the data latch circuit 18 via an inverter 49. In addition, the uppermost NMOS transistor N0The upper electrode (for example, the source electrode) is fixed at a potential (signal state) indicating “0” or grounded. On the other hand, PMOS transistor P0, P1, P2... PmOne of the electrodes (for example, the source electrode) is fixed to a potential (signal state) indicating ‘1’ or the power source VddThe other electrode (for example, drain electrode) is connected to the node Q, respectively.0, Q1, Q2... QmConnected to. Here, the connection direction of the electrodes (source electrode and drain electrode) between the NMOS transistors is determined by the NMOS transistor N0, N1, N2..., NmAs long as serial connection is possible, the direction may be reversed. PMOS transistor P0~ PmThe same applies to. In this way, the priority circuit 20 with m + 1 inputs and m + 1 outputs is configured.
[0046]
Next, a priority (priority order) assigning operation of the priority circuit 20, that is, a plurality of hit signals (match signals) '1' is I0~ ImThe output operation of the priority-added output signal in which only the address with the highest priority is the coincidence signal ‘1’ even if input from the above will be described. Circuit element 40 of this unit circuit 201Paying attention to I1N if the input is '1'1Transistor 44 turns off and P1The transistor 46 is turned on. Therefore, this P1Transistor 46 allows Q1The node is set to '1'. I1N if the input is '0'1Transistor 44 is turned on and P1The transistor 46 is turned off. Therefore, Q1The node is one Q above0The same as the logical value of the node. If IkIf the input is '1', QkBecomes ‘1’, so Q after thatn(J ≧ k + 1) is IjWhether it is ‘1’ or ‘0’, it cannot be set to ‘1’. That is, Ik + 1= '1', node Qk + 1(Signal state) is ‘1’ while Ik + 1= Q if '0'k + 1= QkQk= Q from ‘1’k + 1= 1
[0047]
As a result, in FIG. 2, when the plurality of I inputs are “1” and the corresponding serial connection NMOS transistor 44 (N) is OFF, it propagates to the uppermost NMOS transistor 44. The control signal “0” is transmitted, but the propagation control signal “0” is not transmitted to each Q node below the control signal, and becomes “1”. Therefore, it is only necessary to detect to what extent the control signal ‘0’ is transmitted by the logic operation circuit 48. I of this priority circuit 200~ ImIf all the m + 1 inputs become “0”, the control signal “0” is transmitted to the OR output terminal or, and there is no “1” in all m + 1 input signals. Is notified that the hit signal data of the next priority level latched and held in the look-ahead buffer circuit 16 can be input to the data latch circuit 18, and then selected by the sub-block encoder 14. It is notified that the hit signal data of the next next priority can be read into the prefetch buffer circuit 16.
[0048]
Here, the logical operation circuit 48 shown in FIG. 2 includes an NMOS transistor 44 (N1) Signal state between the drain and the source, that is, the node Q0And node Q1And an exclusive OR gate (Exclusive OR gate: anti-matching circuit) 48a that takes an exclusive OR of the logical values between them. In this logical operation circuit 48, the node Q0And node Q1Does not match, ie, the circuit element 401NMOS transistor 44 (N1) Node Q0Until the propagation control signal ‘0’ is propagated, the node Q1Until the propagation control signal '0' is not propagated, the exclusive OR gate 48a outputs '1'. Node Q0And node Q1Output terminal O if they match ('0')1The output of “0” is “0”. The logic operation circuit 48 is not limited to the example shown in FIG. 2, and may be configured to perform a desired logic operation by combining various gates. The input of the logic operation circuit 48 is connected to the node Q.0And node Q1The input signal or an inverted value thereof may be used, and the content of the logical operation may be appropriately selected according to the signal value.
[0049]
Next, when the output signal (O) having the highest priority and having one hit signal is output from the input signal (I) having a plurality of hit signals, the hit signal having the next highest priority is output. If the addresses are in the same sub-block 32, the input side may be reset using the highest priority output signal. That is, for example, in the priority circuit 20 shown in FIG.1= '1', I2= If it was '1', node Q0= '0', node Q1= Q2= ... = Qm= “1”, so output O1= ‘1’ and output O0= O2= ... = Om= 0. This O1The output value is input to the data latch circuit 18 (181) Input to the reset terminal to reset I1= '0', therefore, N transistor 44 (N1) Is on, P transistor 46 (P1) Is off and node Q1= Q0= '0', where N transistor N2Is off so node Q0= Q1= '0', node Q2= ... = Qm= ‘1’ and the next priority is I2= '1' is selected as the next output signal.
[0050]
Thus, a plurality of hit signals in the hit signal data of the same sub-block 32 input to the main encoder 12 at a time are output by the priority circuit 20 as output signals having only one hit signal according to a predetermined priority order. The hit signal (') that is sequentially output to the encode circuit 22 and' 1 'output is input to the reset terminal of the data latch circuit 18 of the word address corresponding to the' 1 'output. 1 ') is reset sequentially. Thus, when the last hit signal is prioritized and output to the encoding circuit 22 and reset, the lowest node Q in the figure is displayed.mIs transmitted from the OR output terminal or, inverted by the inverter 49, and the inverted value “1” is input to all the circuits of the data latch circuit 18 and latched and held in the prefetch buffer circuit 16. After the hit signal data of the next sub-block 32 of the next priority level is inputted (shifted) to each corresponding circuit of the data latch circuit 18 and held, the empty pre-read buffer circuit 16 is preliminarily stored in the sub-block encoder 14. The hit signal data of the next sub-block 32 of the next priority selected by is read from the register 36 and latched and held. Thus, after the priority circuit 20 finishes processing the hit signal data of the sub-block of the previous priority, the hit signal data of the sub-block of the next priority is transferred from the register 36 of the sub-block 32. Since there is no need to wait for a while, encoding can be performed efficiently.
[0051]
The encoding circuit 22 is for encoding the address of the coincidence signal that exists only in the output signal sequentially output from the priority circuit 20, and each word 34 (W0, W1, W2... Wm) Corresponding to the output terminal O0, O1, O2... OmFor encoding each word address, m + 1 ≦ 2LL + 1 address lines 50 (50) for encoding L + 1 bits for the smallest natural number L0, 501, 502..., 50L) And the gate electrode of each output line O.0, O1, O2... OmFrom a ground transistor 52 connected to the output line from Here, all L + 1 address lines 500, 501, 502..., 50LEach has resistance r on one end side0, R1, R2... rLConnected to the power supply via (or fixed at the '1' potential)L... A2A1A0The transistor 52 is attached so that the L + 1 bit code output can be obtained.
[0052]
That is, the output terminal O0Output lines from all L + 1 address lines 500~ 50LAre connected to all the gate electrodes of L + 1 ground transistors 52 connected to each other. Here, for example, the output terminal O0Output is ‘1’ (coincidence signal) and the rest are all ‘0’, AL= ... = A2= A1= A0= 0 and (AL... A2A1A0) = (0... 000). Next, the second and third word addresses W1Output terminal O corresponding to1And O2Output lines are address lines 50, respectively.0And 501L address lines 50 excluding1~ 50LAnd 500, 502~ 50LConnected to the gate electrodes of the L ground transistors 52 connected to the output terminal O.1And O2When only becomes ‘1’, (AL... A2A1A0) = (0... 001) and (0... 010). Similarly, the ground transistor 52 is connected to each address line 50 so as to represent each code address. For example, m + 1 = 2LThe last output terminal OmOutput line is the address line 50LOnly to the ground transistor 52 attached only to the output terminal OmOnly when ‘1’, (AL... A2A1A0) = (01... 111) (the first L + 1 digit is “0” and the remaining L digits are all “1”). And all output terminals O0, O1, O2... OmWhen ‘0’, (AL... A2A1A0) = (1... 111) (all 1). The encoding circuit 22 is basically configured as described above. Here, the encoding circuit 22 is not particularly limited to the one shown in the figure, and receives an input signal having a “1” output for only one word address, and encodes (encodes) an address of the “1” output. If it can do, there will be no limitation in particular, A conventionally well-known thing can also be used. The main encoder 12 is basically configured as described above.
[0053]
Next, FIG. 3 shows a block diagram of an embodiment of the sub-block encoder 14. The data latch circuit 24, the priority circuit 26, and the encoding circuit 28 shown in FIG. 2 are basically the data latch circuit shown in FIG. 2 except that the number of units constituting each is n with respect to m + 1. 18, since the configuration similar to that of the priority circuit 20 and the encoding circuit 22 is shown, a detailed circuit configuration is omitted. Here, in the sub-block encoder 14, the associative memory sub-block 32 (B1, B2... Bn) When a match search is performed every time, a match search result in each memory sub-block 32, that is, hit signal data is held in the register 36 and is searched in the sub-block 32 by an OR circuit (not shown) in the sub-block 32. A sub-block hit signal indicating whether or not there is a word 34 (hit word or match word) indicating coincidence with data is generated and held in the data latch circuit 24 of the corresponding sub-block 32. Thus, the subblock 32 is successively searched for coincidence, and the hit signal data is held in the register 36 of the subblock 32, and the block hit signal is latched and held in the data latch circuit 24.
[0054]
On the other hand, in the sub-priority circuit 26 of the sub-block encoder 14, the block hit signal latched and held in the data latch circuit 24 from the left side to the right side in the illustrated example is a hit signal ('1') according to a predetermined priority order. The sub-block 32 is selected and an output signal with priority having “1” only in the block address is output. This output signal is encoded and output by the sub-encoding circuit 28 in the subsequent stage, and is returned to the control unit of the sub-block 32, and the gate circuit 54 in the control unit is turned on to obtain the hit signal data in the register 36. Input after the prefetch circuit 16 of the main encoder 12 becomes empty. In this way, the sub-block encoder 14 selects the sub-block 32 having the priority to be encoded next in accordance with the predetermined priority, and the main encoder 12 selects the hit signal from the hit signal data of the sub-block 32 having the previous priority. While the first word address is being encoded, the hit signal data of the sub-block 32 of the next priority is transferred to the prefetch circuit 16 which has become empty and latched and held.
[0055]
Here, the encoding circuit 10 in the illustrated example outputs the encoded block address output from the sub-encoding circuit 28 of the sub-block encoder 14 and the encoded word address output from the main encoding circuit 22 of the main encoder 12. Both are sequentially output as encoded logical addresses. Then, when the last sub-block 32 or the sub-block 32 with the lowest priority is selected, the processing of the sub-block encoder 14 ends, and when the encoding of all hit signals by the main encoder is completed, the encoding circuit 10 The hit signals of all the memory words 34 in the associative memory sub-block 30 are output as logical addresses, and the match search operation is terminated. The encoding circuit 10 in the illustrated example shows an example in which one main encoder 12 and one sub-block encoder 14 are provided for the associative memory block 30 having a plurality of associative memory sub-blocks 32. The present invention is not limited to this, and a configuration in which one sub-block encoder 14 is provided for a plurality of associative memory blocks 30 as in the conventional encoding circuit 210 applied to the associative memory 200 shown in FIG.
[0056]
Next, FIG. 4 shows a specific circuit configuration of the prefetch circuit 16 used in the illustrated encoding circuit 10 and a switch circuit 160 and a precharge circuit 162 for controlling each sub-block 32 necessary for the operation thereof.
[0057]
As shown in the figure, the switch circuit 160 includes the sub-block 32 (B1) Register 36 (R0) Connected to one (S0) As a representative example, two NMOS transistors 163 and 164 are connected in series. Each switch circuit 160 (S0, S1, ..., Sm) Of one of the transistors 163 (for example, the drain electrode) corresponds to the corresponding detection line 165 (L0, L1, ..., Lm) In each sub-block 32 (B1, B2, ..., Bn) And the detection line L is connected to the prefetch circuit 16. Each switch circuit 160 (S0, S1, ..., SmThe gate electrode of the transistor 163 is connected to the AND circuit 166 in parallel with the block selection line 167 in each sub-block 32. Each switch circuit 160 (S0, Si, ..., Sm) Of the other transistor 164 is connected to the corresponding register 36 (R0, R1, ..., Rm) And the other electrode (for example, the source electrode) of the transistor 164 is grounded. The precharge circuit 162 is connected to each detection line 165 (L0, L1, ..., Lm) PMOS transistor 168 (PC) which is a precharge transistor for precharging the potential to a predetermined potential (for example, power supply potential).0, PC1, ..., PCm) And each PMOS 168 (PC0, PC1, ..., PCm) One electrode to a predetermined potential source (power source) and the other electrode to each detection line 165 (L0, L1, ..., Lm), The gate electrode is connected to the precharge signal line 169.
[0058]
Prefetch circuit 16 includes two inverters 170 and 172 connected in parallel in opposite directions, and latch signal lines 174 and 175 for inputting a control signal for controlling the output state of inverters 170 and 172. (M + 1) data latch circuits. The input side ends of the parallel connection inverters 170 and 172 are connected to the corresponding input line 165 (LiThe output side end is connected to a corresponding circuit element of the data latch circuit 18. The latch signal line 174 is connected to the control signal terminal of the inverter 170 and the inverted control signal terminal of the inverter 172, and the latch signal line 175 is connected to the control signal terminal of the inverter 172 and the inverted control signal terminal of the inverter 170.
[0059]
One input terminal of the AND circuit 166 is connected to a corresponding circuit element of the data latch circuit 24 (or the sub priority circuit 26) of the sub block encoder 14, and the other input terminal is used to select the selection timing of the block selection line 167. It is connected to a control signal line 176 to be controlled. The control signal line 176, the precharge signal line 169, and the latch signal lines 174 and 175 are connected to a timing control circuit 178 that controls the operation timing of each circuit.
[0060]
Next, the prefetch (prefetch) operation of the prefetch circuit 16 will be described.
First, the precharge signal line 169 is set to L and the PMOS 168 (PC0, PC1, ..., PCm) Are turned on, and (m + 1) detection lines 165 (L0, L1, ..., Lm) To a predetermined potential.
[0061]
Next, the timing control circuit 178 sets the precharge signal line 169 to H, turns off (m + 1) PMOSs 168, and sets the control line 176 to '1' (H) to block the data latch circuit 24 of the sub-block encoder 14. Sub-block 32 (B) of the next priority (the next priority of the sub-block encoded by the main encoder 12) in which the hit signal “1” is latched and heldi) Block hit signal ‘1’ is input to the AND circuit 166, and the sub-block 32 (Bi) Block selection line 167 is turned on.
[0062]
Subblock 32 (Bi) Is selected, and the block selection line 167 is set to H (high level) by the corresponding AND circuit 166, the register 36 (R) that holds the hit signal ('1') in the register 36.i) And the transistor 163 connected to the gate electrode thereof are turned on, and the detection line 165 (Li) Is grounded, and this detection line 165 (Li) To remove the precharged charge and lower its potential. On the other hand, the register 36 (RjThe transistor 164 whose gate is connected to the transistor 164 is not turned on but remains off. Therefore, even if the block selection line becomes H, the corresponding detection line 165 (Lj) Does not change, and the precharge potential is maintained.
[0063]
Thus, the selected sub-block 32 (Bi) Storage register 36 (R0, R1, ..., Rm) In accordance with the stored value ('1': hit signal, '0': miss hit signal), the detection line 165 (L0, L1, ..., Lm) Changes, and the polarity is reversed.
[0064]
Here, a latch signal is applied to the latch signal lines 174 and 175 of the prefetch circuit 16 to cause the parallel connection inverters 170 and 172 of the prefetch circuit 16 to latch. Here, the detection lines on the input side of the inverters 170 and 172 have a polarity opposite to that of the register 36, but the output side is inverted and thus has the same polarity. Therefore, at the same time as the encoding of the subblock 32 with the highest priority of the main encoder 12 is completed, the hit signal data of the subblock 32 with the next priority that has been latched in the prefetch circuit 16 is input to the data latch circuit 18. Thereafter, the prefetch circuit 16 repeats the above-described operation to prefetch hit signal data in the storage register 36 of the next next priority sub-block 32.
The encoding circuit 10 is basically configured as described above.
[0065]
The prioritized encoding circuit 10 is not limited to the priority circuits 20 and 26 and the encoding circuits 22 and 28 shown in FIG. 2 and FIG. 3, and a conventionally known priority circuit and encoding circuit may be used. In order to increase the speed of the prioritization and encoding itself, the priority circuit 180 and the encoding circuit 190 shown in FIGS. 4, 5 and 6 may be used. Of course, the priority circuit 180 may be combined with the main encoding circuit 22 shown in FIG.
[0066]
The priority circuit 180 shown in FIG. 5 is composed of three layers, the lowest layer is composed of 16 4-input small unit priority circuits (hereinafter referred to as unit circuits) 182, and the intermediate layer is composed of four similar layers. It consists of a 4-input small unit priority circuit 184, and the highest hierarchy consists of one similar 4-input small unit priority circuit 186. Therefore, the priority circuit 180 can have 64 inputs by the 16 unit circuits 182 in the lowest hierarchy. That is, the 64 inputs of the priority circuit 180 are grouped into 16 groups, 4 groups. A small unit priority circuit 182 having 4 inputs of one group as a unit is configured and 16 pieces are used. The 16 small unit priority circuits 182 are grouped into four groups, and one group is composed of four unit circuits 182. The four unit circuits 182 constituting the one group constitute an intermediate layer 1 Are connected to two small unit priority circuits 184. The four unit circuits 184 are connected to the small unit priority circuit 186 in the highest hierarchy as a group.
[0067]
The priority circuit 180 shown in FIG. 5 has a three-layer structure having 64 inputs and four-input unit circuits 182, 184, and 186 as a structural unit, but is not limited to this. The number of elements and the number of layers can be appropriately selected as necessary, but the hierarchical structure may be appropriately selected according to the total number of inputs and the number of inputs of the unit circuit to be used. The unit circuits 182, 184, and 186 constituting each layer use the same number of inputs, but are not limited to this and may be different. It is convenient to increase the speed of priority change if the number of inputs to the unit circuit is small. However, if the number is too small, the number of necessary unit circuits increases and the number of necessary layers increases. Is not preferable because it increases. Therefore, if the total number of inputs and the number of unit circuit inputs that can be used for each layer (either one type or multiple types) are selected, the number of layers is determined so as to conform to this, and a multi-layer configuration is obtained. Good.
[0068]
As shown in FIG. 6A, the small unit priority circuit 182 is configured such that the upper side, that is, the upper side has a higher priority, and has four input terminals I.0, I1, I2And IThreeAnd four output terminals O0, O1, O2And OThreeAn enable signal input terminal e, a logical sum (OR) output terminal or, and four priority circuit elements 188 (188)018811882And 188Three). The circuit element 188 shown in FIG. 2 is the same as that shown in FIG. 2 except that the logical operation circuit 48 used has an enable signal input terminal e and is activated by an enable signal input therefrom. Since the circuit element 40 has the same configuration as that of the circuit element 40 shown, the same components are denoted by the same reference numerals and description thereof is omitted.
[0069]
FIG. 7 shows a specific configuration example of the logical operation circuit 48 shown in FIG. The logical operation circuit 48 shown in FIG. 7 includes an exclusive OR gate 48a and an AND gate 48b that takes the logical product of the output of the exclusive OR gate 48a and the enable signal e. This logical operation circuit 48 has a mismatch in input signals, that is, a node Q0And node Q1Is not coincident, the exclusive OR gate 48a outputs "1", and at the same time, if the enable signal e is "1" (active), the AND gate 48b outputs the output terminal O1If the input signal matches or the enable signal e is ‘0’, the output terminal O1The output of “0” is “0”.
[0070]
FIGS. 6B and 6C are schematic diagrams of unit circuits 184 and 186 respectively constituting the intermediate hierarchy and the highest hierarchy. The unit circuits 184 and 186 shown in the figure have the same configuration as the unit circuit 182 in the lowest hierarchy shown in FIG. 6A except for signals input to and output from the input / output signal terminals. The illustration of the configuration is omitted. The input terminal or of the unit circuit 184 shown in FIG.0, Or1, Or2, OrThreeIs the OR output or of each of the four unit circuits 182 constituting the lowest layer shown in FIG. Output Ot of this unit circuit 184k(K = 0, 1, 2, 3) to each input signal orkUnit circuit 182 corresponding tokEnable terminal ekConnect to Otk= K'th circuit 182 only when '1'kCan be selectively activated. Therefore, it can be seen from the OR output whether or not there is a “1” in the or input of this unit circuit 184, and this OR output is eventually controlled by all the I's of the plurality of unit circuits 182 under the control of the unit circuit 184. This indicates whether there is an input signal that is '1'.
[0071]
Furthermore, another upper layer unit circuit 186 that receives the OR output of the unit circuit 184 is shown in FIG. 6C. The configuration of the unit circuit 186 is shown in FIGS. 6A and 6B, respectively. As described above, the unit circuits 182 and 184 may have exactly the same configuration. The unit circuit 186 shown in FIG. 6C receives the OR outputs of all four unit circuits 184 constituting the intermediate hierarchy as an OR input OR.k(K = 0, 1, 2, 3) input, this OR input ORkOutput OUT corresponding to0, OUT1, OUT2, OUTThreeAre input to the respective enable signal inputs E as enable signals of all four unit circuits 184 in the intermediate layer. Thus, the OR input OR of this unit circuit 186kIt can be seen from the OR output GOR of this unit circuit 186 whether or not there is '1'. The enable signal ENB of the unit circuit 186 itself is OUTkA predetermined clock signal is separately input until all output signals are "0", that is, until the OR output GOR becomes "0". Conversely, the output OUT of the unit circuit 186kWhile “1” is being output, an output of a signal having a unique “1” at the highest priority address (hereinafter referred to as an output signal with priority) selected from the input signal of the priority circuit 180. Indicates that a small unit priority circuit having “1” (match signal) exists in a lower group corresponding to an address that outputs “1”.
[0072]
Using the priority units 182, 184, and 186 of the small unit configured as described above, when the circuit configuration of the priority circuit 180 that performs hierarchical selection in this way is realized, a priority circuit 20 shown in FIG. 2 is obtained. Compared with the case where all the N transistors 44 are serially connected in a single layer, the speed can be greatly increased. Here, as the or output and the OR output, as shown in FIG. 6, the lowest-order (lower) circuit element 188 of the priority circuit 182ThreeNode Q ofThreeThe signal state (logical value) can be used. Thus, node QThreeHowever, the present invention is not limited to this, and it is not limited to this, and the input is required to further increase the speed. In order to obtain an OR output directly from the signal, a normal OR gate or the like may be used.
[0073]
By using such an or output or an OR output, even if there are consecutive hit signals with different priority levels in different small unit priority circuits 182, a hit signal with a higher priority level is output as an output signal with priority. Until the input signal is reset by this output signal and the OR output becomes “0”, “1” output is possible from the unit circuit 182 having the hit signal of the low priority word address. However, the output signal of the upper layer unit circuit 184 does not become “1” output. Therefore, the enable signal of the unit circuit 182 does not become “1” (ie, active), and the unit circuit 182 has “1”. Cannot output. However, if the OR output of the unit circuit 182 of the previous priority level becomes “0”, the OR output of the unit circuit 182 of the next priority level is “1” output, so that the unit circuit 184 of the upper layer is also “1”. 'Output. Therefore, the enable signal of the next priority unit circuit 182 is “1”, and this unit circuit 182 can output “1”. Thus, even if hit signals are straddling between different unit circuits 182, quick switching is possible.
[0074]
Since the priority circuit 180 shown in FIG. 5 has 64 inputs, 6 bits are required for address code conversion, and 6 address lines are required. When a conventional address encoder such as the main encoding circuit 22 shown in FIG. 2 is used, the six address lines and the four output lines of the sixteen priority circuits 182 in the lowest hierarchy, that is, a total of 64 lines are used. A 6-bit address encoder can be configured by connecting the output lines to each other via the ground transistor 52 in accordance with the predetermined method described above. As described above, a conventional encoding circuit can be applied to the priority circuit 180 shown in FIG. 5, but the number of ground transistors connecting the output line and the address line increases as the input increases.
[0075]
For this reason, the encoding circuit 190 shown in FIG. 5 has an address encoder configuration that encodes 2 bits for each layer of the above-described priority circuit 180 having the three-layer structure. When a coincidence output (hit signal) is included, an output signal with a priority is output. At this time, the priority circuit 180 selects each hierarchical level among the small unit priority circuits 182, 184, and 186 constituting each hierarchical level. There is one output terminal that outputs' 1'H (high). Accordingly, the 16 small unit priority circuits 182 in the lowest hierarchy are divided into the lower 2 bits A1, A0Two address lines 192 for determining11920Connected to. The middle layer four priority circuits 184 are intermediate two bits AThree, A2Two address lines 192 for determiningThree1922Connected to. The priority circuit 186 of the highest hierarchy is composed of the upper 2 bits AFive, AFourTwo address lines 192 for determiningFive192FourConnected to.
[0076]
Here, since the connection between one priority circuit and two address lines is the same in each hierarchy, the priority circuit 182 in the lowest hierarchy is representative.0And address line 19211920As a representative example, the connection to the terminal will be described. Priority circuit 1820First output line O0Is the address line 19211920Are respectively connected to the gate electrodes of the two ground transistors 52 that are grounded (or fixed to the “0” potential). Therefore, the first output line O0Only the output of ‘1’ [(O0, O1, O2, OThree) = (1, 0, 0, 0)], the two ground transistors 52 are turned on, and A0= A1= 0. Next, the priority circuit 1820Second output line O1Is the address line 1921Is connected to the gate electrode of the grounding transistor 52 that grounds (or is fixed to the “0” potential). For this reason, the second output line O1Only “1” [(O0, O1, O2, OThree) = (0, 1, 0, 0)], the ground transistor 52 is turned on and (A1, A0) = (0, 1). Furthermore, the priority circuit 1820Third output line O2Address line 1920Is connected to the gate electrode of the grounding transistor 52 that grounds (or is fixed to the “0” potential). Therefore, the third output line O2Only “1” [(O0, O1, O2, OThree) = (0, 0, 1, 0)], the ground transistor 52 is turned on and (A1, A0) = (1, 0). Here, the fourth output line OThreeOnly “1” [(O0, O1, O2, OThree) = (0, 0, 0, 1)] (A1, A0) = (1, 1).
[0077]
The encoding circuit 190 can be configured by performing such a connection for each priority circuit with respect to two address lines for each layer. Here, in the encoding circuit 190, the address line 1920~ 192FiveThe number of ground transistors 52 used to connect each of the priority circuits 182, 184 and 186 is 4 for one priority circuit, so that 64 are the lowest hierarchy, 16 are the middle hierarchy, and the highest hierarchy is The total number is 84, and the total number may be 84. On the other hand, in the case of connecting all six address lines to the 16 main priority circuits 20 in the lowest hierarchy as in the address encoder shown in FIG. Is required. Therefore, the encoding circuit 190 shown in FIG. 5 can achieve the effect of speeding up the encoding operation.
[0078]
As a priority example of the priority circuit constituting the main encoder and sub-block encoder of the encoding circuit which is the premise of the present invention, a configuration in which N channel transistors are serially connected as shown in FIG. 2 and FIG. 6A is given as a representative example. However, the present invention is not limited to this, and a priority circuit configured to serially connect P-channel transistors may be used, or a configuration capable of bidirectional priority may be used. As long as the prefetch circuit is provided in the main encoder and the sub-block encoder, conventionally known ones can be used.
[0079]
  As mentioned above, although the encoding circuit used as the premise for understanding the encoding circuit applied to the content addressable memory device of the present invention has been described with various examples, it is not limited to the illustrated examples. It goes without saying that the design can be changed and various improvements can be made, such as the number of inputs and the configuration of the prefetch circuit, data latch circuit, priority circuit, and encoding circuit constituting the sub-block encoder.
[0080]
As described above in detail, in the encoding circuit of the illustrated example, when performing a match search with the search data of the associative memory block of the associative memory device, of the plurality of associative memory sub-blocks constituting the associative memory block. A match search result of the first associative memory sub-block, for example, a match signal (hit signal) that matches the search data in a plurality of associative memory words is held in holding means such as a register and the associative memory sub-block. A block hit signal indicating the presence of an associative memory word matching the search data is generated. Subsequently, the prioritized sub-block encoding circuit receives the block hit signal, selects the associative memory sub-block having the highest priority, and generates a sub-block address. Then, the hit signal of the selected highest priority sub-block (simultaneously for all words) is transferred to the coding circuit with priority. Thereafter, the coding circuit with priority order codes the hit signal with a predetermined priority order and outputs a word address. During this encoding, the associative memory sub-block having the next priority is selected by the sub-block encoding circuit with priority, and the hit signal data held in the holding means such as a register of this sub-block is selected as the priority. The data is input to a prefetch circuit provided in the encoding circuit. Thus, after the encoding of the hit signal is completed, the encoding circuit with priority order immediately starts to encode the hit signal data of the next priority sub-block input to the prefetch circuit immediately before, Encode and output word address. The word address output and the sub-block address output are combined to output a logical address.
[0081]
Therefore, according to this encoding circuit, even in an associative memory block composed of a plurality of associative memory sub-blocks, there is no time delay (waiting time) in switching between the plurality of associative memory sub-blocks, and a large number of associative memory The output signal from the memory sub-block can be efficiently encoded. As a result, the present invention can also be applied to a large-capacity associative memory device including an associative memory block composed of a plurality of associative memory sub-blocks that require high-speed processing for large-capacity data.
[0082]
  Next, referring to FIG. 8 to FIG. 11, there are another encoding circuit as a premise for understanding the encoding circuit applied to the associative memory device of the present invention and a number detection circuit applicable thereto. The semiconductor integrated circuit will be described in detail.
[0083]
In the associative memory device of the illustrated example, when search data is input to the associative memory block constituting the associative memory device at the time of matching search, matching search is performed across a plurality of associative memory sub-blocks. At this time, as a result of each associative memory sub-block, that is, flag data including a match signal (hit signal) that matches the search data is held in a plurality of associative memory words, and a priority sub-block encoding circuit As a result, the associative memory sub-block having the highest priority is selected, and the flag data is transferred to and held in the flag register of the main coding circuit with priority. The priority-added main encoding circuit encodes the hit signal in the flag data stored in the flag register according to a predetermined priority, and outputs a hit address. On the other hand, during the encoding of the flag data, the flag data of the associative memory sub-block of the next priority selected by the prioritized sub-block encoding circuit is input to the prefetch circuit. In the prioritized main encoding circuit, hit signals in the flag data of the prioritized associative memory sub-block are sequentially encoded, and the hit signal in the flag register is sequentially output as the hit address is output. It will be reset.
[0084]
At this time, the number of hit signals held in the flag register is detected by timing detection control circuit means for detecting the end of the hit signal of the flag register in advance. For example, when the number of the remaining hit signals becomes the last one, the flag data of the associative memory sub-block of the next priority inputted to the prefetch circuit immediately after the end of the encoding of the hit signal Is moved to the flag register, and encoding of the hit signal in the flag data is started. Thereafter, the flag data of the associative memory sub-block of the next priority is prefetched to the prefetch circuit in the prefetch circuit in which a space is generated. These procedures are sequentially repeated to encode the hit signal of the entire associative memory block, that is, to output an address.
[0085]
According to the encoding circuit of the illustrated example, as described above, the hit signal in the flag data of the associative memory sub-block to be encoded next is being encoded during the encoding of the hit signal of the flag data of the previous associative memory sub-block. Since it is input to the prefetch circuit, it is possible to eliminate the time for transferring the hit signal from the associative memory sub-block to the flag register of the main coding circuit with priority, and the last hit signal of the flag data in the flag register can be eliminated. Immediately after the start of encoding, it is detected that the hit signal has become the last one, and the flag data held in the prefetch circuit is transferred to the flag register. In the next encoding cycle, the flag data in the transferred flag data is transferred. Since the hit signal can be encoded, there is no loss in the encoding cycle. It is possible to shorten the coding time for the entire entire triblock therefore associative memory can speed up the match search operation of the CAM device.
[0086]
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, an encoding circuit which is a premise of the present invention and a semiconductor integrated circuit applicable thereto will be described in detail based on preferred embodiments shown in the accompanying drawings.
[0087]
FIG. 8 is a schematic diagram of an embodiment of an associative memory block to which the encoding circuit as the premise of the present invention is applied. The encoding circuit 11 shown in the figure has a timing control circuit 60 to which a semiconductor integrated circuit as a premise of the present invention is applied in a main encoder 12, and an initial value of a flag register (data latch circuit) 18 is output from the timing control circuit 60. Since the configuration is basically the same as that of the encoding circuit shown in FIG. 1 except that the setting is performed, the same components are denoted by the same reference numerals, and detailed description thereof is omitted.
[0088]
The encoding circuit 11 shown in FIG. 1 includes a priority-added encoding circuit with a prefetch circuit (hereinafter referred to as a main priority encoder or a main encoder) 12 and a priority-added sub-block encoding circuit (hereinafter referred to as a sub-block priority encoder or a sub-encoder). The main encoder 12 includes a prefetch circuit (prefetch circuit) 16, a flag register circuit 18, a main priority circuit 20, a main encode circuit 22, and a timing control circuit 60. The sub block encoder 14 includes a data latch circuit 24, a sub priority circuit 26, and a sub encode circuit 28.
[0089]
FIG. 9 shows a configuration diagram of an embodiment of the main encoder 12 of the encoding circuit 11. In the figure, the prefetch circuit 16 of the main encoder 12 is configured so that the main priority circuit 20 and the main encode circuit 22 of the main encoder 12 receive the hit signal in the flag data of the sub-block 32 having a higher priority with a predetermined priority (word ), The flag data held in the register 36 of the next priority sub-block 32 is stored in each memory word 34 (W0, W1... Wm), And any data can be used as long as it can temporarily hold (m + 1) 1-bit data of “0” or “1”, such as a data latch circuit or a data register. It's okay. The flag data from the prefetch circuit 16 is input in parallel to the flag register 18 by the switching timing output (detection output) of the timing control circuit 60. In addition, while the flag data is encoded by the main encoder 12, the flag data of the sub-block 32 of the next priority selected by the sub-block encoder 14 is taken into the prefetch circuit 16 for each memory word 34. .
[0090]
That is, in the main encoder 12 shown in FIG. 9, the timing control circuit 60 detects the number of flag data (hit signals) held in the flag register 18, for example, the last one, and stores it in the flag register 18. A switching timing signal (initial value setting signal) is output, and the flag data of the prefetch circuit 16 is input to the flag register 18. In contrast, in the main encoder 12 shown in FIG. 2, after resetting the last hit signal of the flag data held in the flag register 18, the node Q of the priority circuit is reset.mProposed to switch the flag data of the flag register 18 to the flag data of the next priority sub-block 32 latched and held in the prefetch circuit 16 using the end data '0' which is the OR output output from Yes. That is, this node QmThe output “0” is inverted by the inverter, the inverted value “1” is input to all the circuits of the prefetch circuit 16, and the flag data of the subblock 32 of the next priority level latched and held here is used as the flag register circuit 18. Each is input (shifted) to a corresponding circuit and held. After that, the main encoder 12 shown in FIG. 2 also has the next pre-priority sub-block 32 previously selected by the sub-block encoder 14 in the free prefetch circuit 16 as in the main encoder 12 shown in FIG. Are read from the register 36 and latched and held. In this way, in the method of the main encoder 12 of FIG. 2, as with the main encoder 12 of FIG. 9, the main priority circuit 20 ends the processing of the flag data of the previous priority sub-block and then the next priority sub-block. Since it is not necessary to wait while the flag data of the block is transferred from the register 36 of the sub-block 32, encoding can be performed efficiently. However, in the main encoder 12 of FIG. 2, the contents of the flag register 18 are held in the prefetch circuit after the last hit signal of the flag data of the previous priority sub-block held in the flag register is reset. Therefore, in the priority encoding cycle started by reset, a cycle in which encoding cannot be performed at the time of switching of flag data in the sub-block occurs, and time in which encoding output cannot be performed occurs.
[0091]
Therefore, in the main encoder 12 of FIG. 9, the number of flag data hit signals in the flag register 18 is detected by the timing control circuit 60 as will be described later, and it is detected that it has become the last one. Thus, instead of resetting the last hit signal in the main priority circuit 20 by using this detection result as an input signal, the flag data of the sub-block 32 of the next priority stored in the prefetch circuit 16 is shifted to the flag register 18. (Input). Therefore, in the main encoder 12 of FIG. 9, priority encoding can be performed in the same cycle even when the flag data of the same sub-block or the flag data of the sub-block is switched. Of course, in the main encoder 12 of FIG. 9, the next pre-priority sub-block previously selected by the sub-block encoder 14 is preliminarily selected in the pre-fetch circuit 16 which has become empty due to the switching of the flag data of the sub-block in the flag register 18. 32 flag data is read first from the register 36 and latched and held, so that this read time (time for transferring flag data from each sub-block 32 to the main encoder 12) is irrelevant to the encoding process. Efficiency can be increased. In the main encoder 12 of FIG. 9, the last hit signal of the flag data in the flag register 18 does not need to be reset.
[0092]
FIG. 10 shows a specific circuit diagram of an embodiment of the timing control circuit 60 to which the semiconductor integrated circuit as the premise of the present invention, which is the most characteristic part of the encoding circuit 11 of the illustrated example, is applied.
[0093]
The timing control circuit 60 shown in FIG. 10 includes m + 1 flag registers 18 in parallel with the first signal line (signal current detection line) 62, the second signal line (reference current drive line) 64, and the first signal line 62, respectively. Data latch circuit 180, 181, ..., 18mM + 1 current drive circuits (current drive means) 66 provided for each of0, 661, ..., 66mAnd a reference current driving circuit (reference current driving means) 68 provided on the second signal line 64, and a difference between currents flowing in the first signal line 62 and the second signal line 64, that is, a difference current for detecting the difference current. The operation timing of the detection circuit (difference current detection means) 70 and the timing control circuit is controlled, that is, the current drive circuit 66 (660, 661, ..., 66m), And a precharge control signal line 72 for controlling the reference current drive circuit 68, the difference current detection circuit 70, and the like.
[0094]
Further, in the timing control circuit 60 of the illustrated example, in order to balance the electric characteristics such as the electric capacity of the circuit, the second signal line 64 includes a current driving circuit 66 (66) provided in the first signal line 62.0, 661, ..., 66m) Corresponding to the dummy circuit 74 (740741, ..., 74m) And a dummy circuit 76 corresponding to the reference current driving circuit 68 provided on the second signal line 64 is provided on the first signal line 62. One end of each of the first signal line 62 and the second signal line 64 is connected to the differential current detection circuit 70. Further, the first signal line 62 and the second signal line 64 are connected to a precharge transistor 78 and an equipotential transistor 79, and function to initialize the two signal lines to 5V, for example. Here, the transistors 78 and 79 are both P-channel MOS transistors, and their gate electrodes are connected to the precharge control signal line 72. Here, the dummy circuit 74 (740741, ..., 74m) May be used as the reference current driving circuit 68. At this time, the dummy circuit 76 becomes unnecessary.
[0095]
The current driving circuit 66 will be described as one representative example. The current driving circuit 66 includes a control transistor 67a and a signal voltage applying transistor 67b, both of which are connected in series and composed of N-channel MOS transistors. The transistor 67a is a first signal line 62. The transistor 67b is grounded, the gate electrode of the transistor 67a is connected to the control signal line 72, and the gate electrode of the transistor 67b is connected to the corresponding data latch circuit of the flag register 18 and the output terminal Q.
[0096]
In the current driving circuit 66, the transistor 67a is turned on at the time of detection, and when the hit signal “1” is input from the flag register 18 to the gate electrode of the transistor 67b, the transistor 67b is turned on, and a predetermined current i0Is configured to flow. This drive current i0Are all current drive circuits 660, 661, ..., 66mHowever, there are variations in the transistors 67a and 67b used, such as variations due to process variations. The dummy circuit 74 has a configuration similar to that of the current drive circuit 66, and includes two series-connected N-channel MOS transistors 75a and 75b, one of which is connected to the second signal line 64 and the other of which is grounded. Similarly, the gate electrode of the transistor 75b is connected to the control signal line 72, but the gate electrode of the transistor 75b is grounded and is not always turned on.
[0097]
On the other hand, the reference current drive circuit 68 supplies a predetermined reference current (reference current) i to the second signal line 64.rThe N-channel transistors 69a and 69b are connected in series. The transistor 69a is connected to the second signal line 64, the gate electrode is connected to the control signal line 72, and the transistor 69b is grounded. The gate electrode is connected to a power supply having a predetermined H (high) potential, and is configured to always turn on the transistor 69b. On the other hand, the dummy circuit 76 includes N-channel MOS transistors 77a and 77b having the same configuration as that of the dummy circuit 74 except that the dummy circuit 76 is connected to the first signal line 62. Reference current irThe value of the current drive circuit 66 (660, 661, ..., 66m) Can be passed through the current value i0Can be appropriately determined according to the number of hit signals to be detected, but in order to detect the last hit signal, i0Super 2i0The difference current detection circuit 70 to be described later may be set to a current value that can detect the difference current. This current value irMay be determined in consideration of variations in circuit elements such as the transistors 67a, 67b, 69a, and 69b.r= 1.2i0~ 1.8i0Is preferable.
[0098]
The difference current detection circuit 70 detects the magnitude of the current flowing through the signal lines 62 and 64, and latches and holds the larger current side in the L (low) state and the smaller side in the H (high) state. P-channel MOS transistors (PMOS) 80a and 80b connected to the same potential as the power supply on the other end of both signal lines 62 and 64, for example, 5V power supply, N channel MOS transistors (NMOS) 82a and 82b connected in series and two precharge transistors 83 made of PMOS are included. The gate electrodes of the transistors 82a and 80a connected to the first signal line 62 are connected to each other and are connected at a contact point B between the transistors 80b and 82b. Further, the gate electrodes of the transistors 82b and 80b connected to the second signal line 64 are connected to each other and are connected at a contact A between the transistors 80a and 82a. An output line extends from the contact B and is connected to the output terminal 85 via the inverter 84.
[0099]
Next, the detection operation of the timing control circuit 60 will be described as a representative example of the action of detecting the last hit signal of the flag data in the flag register 18, that is, the last hit signal. Here, flag data having a plurality of hit signals ('1') is held in the flag register 18, and the reference current irIs the drive current i of one current drive circuit 6601.5 times that is 1.5i0It is assumed that it is set to.
[0100]
First, prior to the detection, the precharge control signal line 72 is set to L (low: '0'), both the precharge transistors 78 and 79 are turned on, and the first and second signal lines 62 and 64, and hence the contact points. a and b are also precharged to the same H (high) potential (for example, 5 V), both precharge transistors 83 are turned on, and the contacts A and B in the differential current detection circuit 70 are similarly set to the H (high) potential. (For example, 5V) is precharged. Note that the transistors 82a and 82b of the differential current detection circuit 70, the transistors 67a of all the current drive circuits 66, and the transistor 68a of the reference current drive circuit 68 are off.
[0101]
Next, the precharge control signal line 72 is set to H (high: '1'), the PMOS transistors 78, 79, 83 are turned off, and the NMOS transistors 67a, 69a, 75a, 77a are turned on. Accordingly, the two transistors 69a and 69b of the reference current driving circuit 68 are both turned on, and the reference current i is supplied to the second signal line 64.r(= 1.5i0) Flows to lower the potential of the contact b. On the other hand, m + 1 current driving circuits 66 (660, 661, ..., 66m) Of the data latch circuit 18 in which the flag data of the flag register 18 is the hit signal ‘1’.jSince the transistor 67b having the gate electrode connected to is turned on and the transistor 67a is turned on, the current driving circuit 66jIncludes a driving current i from the first signal line 62.0Flows. By the way, the flag data of the flag register 18 includes a plurality of, for example, k (k ≧ 2) hit signals “1”, so that the first signal line 62 has ki.0Current flows, and the potential of the contact a also decreases accordingly.
[0102]
Here, when k is larger than 2, the current ki flowing in the first signal line 620Is the reference current i flowing through the second signal line 64r(= 1.5i0) Is larger than the potential of the contact b, the potential of the contact a is lowered more quickly. Here, the difference between the gate potential of the NMOS 82a (the potential of the contact B) and the source potential (the potential of the contact a) becomes larger than the substrate biased threshold voltage (for example, 1.4V) of the NMOS 82a. When the voltage is 3.6 V or less, the NMOS 82a is turned on, and the potential of the contact A is lowered. On the other hand, at this time, the potential of the contact b is not lowered enough to turn on the NMOS 82a, and the off state is maintained as it is. Thereafter, further current flows through both signal lines 62 and 64, and the potentials of the contacts A and a further decrease. However, since the decrease in the potential of the contact A is larger than the decrease in the potential of the contact b, the NMOS 82b is turned off. keep. Thus, the contact A becomes ‘0’, but the contact B remains ‘1’, and the output of the inverter 84 remains ‘0’.
[0103]
Next, as the plurality of hit signals “1” in the flag register 18 are encoded, each of them is reset to “0” one by one, and when the number of remaining hit signals becomes one, the detection operation of the timing control circuit 60 In other words, when “0” is first input to the precharge control signal line 72 and then precharged and then “1” is input, the first signal line 62 is connected to the first signal line 62 in the same manner as described above. Current i0However, the second signal line 64 has a reference current i.r(= 1.5i0) Will flow. At this time, since the current flowing through the second signal line 64 is larger, the potential at the contact b drops earlier than the potential at the contact a. It becomes. Accordingly, the potential of the contact B is lowered and inverted by the inverter 84, and “1” is output from the output terminal 85. Note that precharging both the signal lines 62 and 64 to the power supply potential (5 V) in advance is extremely important for the stable operation of the differential current detection circuit 70. That is, by precharging up to 5V and creating a timing margin until any one of the signal lines 62 and 64 drops to 3.6V which is the operating potential of the difference current detection circuit 70, a latch-type difference current is generated. This is because a margin is given to the operation timing of the detection circuit, and the influence of control line switching noise and the like can be eliminated.
[0104]
From the above, if the output signal output from the output terminal 85 of the timing control circuit 60 is “0”, two or more hit signals “1” are held in the flag register 18 and the output signal is “1”. If there is, it can be seen that the number of hit signals is one or less. Therefore, when the output signal changes from “0” to “1”, the flag data in the flag register 18 can be switched to the flag data in the prefetch circuit 16 by using this detection result, for example, a “1” signal or a change in signal. That's fine. Of course, the output signal may be taken out from the contact A here.
[0105]
FIG. 11 shows a time chart of encoding timing using the timing control circuit 60 of the illustrated example.
FIG. 4A shows the encoding timing of the main encoder 12. (B) shows the reset timing of the hit signal ‘1’ of the flag register 18. (C) shows the detection timing of the timing control circuit 60. (D) shows the change of the output signal of the timing control circuit 60, and (e) shows the timing of shifting the flag data of the prefetch circuit 16 to the flag register 18.
[0106]
In this way, while the hit signal in the same flag data held in the flag register 18 is encoded with a predetermined priority, the encoding cycle is started at a predetermined time from the rising timing of the reset pulse of the hit signal. It is configured to stand up. However, when the timing control circuit 60 detects the last hit signal at the detection timing activated by the encode pulse and the output signal (d) changes from “0” to “1”, the reset pulse is originally generated. A pulse for replacing the flag data of the prefetch circuit 16 into the flag register 18 is generated by the pulse circuit 87 shown in FIG. 10, and the flag data of the flag register 18 is switched. Then, in successive encoding cycles, the flag circuit is used to perform an encoding operation by the priority circuit 20 and the encoding circuit 22, and an encode address is output. In this way, the main encoder performs an encode operation in a predetermined continuous cycle and outputs an encode. The main encoder 12 is basically configured as described above.
[0107]
As described above in detail, in the coding circuit of the illustrated example, in addition to the effect of the coding circuit of FIG. 1, the coding circuit with priority order has finished coding the hit signal by the data switching timing control circuit. The encoding of the flag signal data of the next priority sub-block which has been input to the prefetch circuit immediately before in a continuous cycle can be started, encoded, and a word address can be output.
[0108]
Therefore, according to the encoding circuit of the illustrated example, even in an associative memory block composed of a plurality of associative memory sub-blocks, there is no time delay (waiting time) in switching between the plurality of associative memory sub-blocks, and there are many The output signal from the associative memory sub-block can be efficiently encoded in successive cycles. As a result, the present invention can also be applied to a large-capacity associative memory device including an associative memory block composed of a plurality of associative memory sub-blocks that require high-speed processing for large-capacity data.
In addition, according to the semiconductor integrated circuit which is the premise of the present invention, it is possible to accurately and quickly detect that the number of data “0” or “1” input to the current driving means has become a preset number. Can do.
[0109]
  Next, with reference to FIGS. 12 to 14, another semiconductor integrated circuit which is a premise for understanding the encoding circuit applied to the associative memory device of the present invention will be described in detail. This semiconductor integrated circuit is applicable to the encoding circuit shown in FIG. 8 as a number detection circuit for timing control.
[0110]
In the semiconductor integrated circuit of the illustrated example, first, data input to data input lines for controlling M (M ≧ 1) current driving means provided in parallel with the first signal line, that is, the signal current detection line, respectively. Number of data to be detected out of '1' or '0' k0(M> k0Reference current (reference current) value i to be supplied to the reference current drive means provided in the reference current drive line as the second signal line in response to ≧ 0)rThat is, the current value i flowing through one current driving means0K0Greater than double k0Current value smaller than +1 times (k0i0<Ir<(K0+1) i0) Is set in advance. Here, each current driving means of this semiconductor integrated circuit has a signal voltage application transistor having a data input line connected to its gate electrode, and a control transistor for controlling the operation timing of this semiconductor integrated circuit. The application transistor is provided on the signal current detection line side.
[0111]
For this reason, in the semiconductor integrated circuit of the illustrated example, the control transistor of the all current driving means and the control transistor of the reference current driving means are controlled according to the operation timing, and when these are turned on, the required data is input to the data input line. Since the signal voltage application transistors of all the current driving means are turned on, each of these current driving means has a current i0Current i (i = ki) corresponding to the number k (M> k ≧ 0).0) Flows in the signal current detection line, while the reference current drive line has a reference current value i by the reference current drive means.rFlows. The current values i and i flowing in both signal linesrIs detected by the difference current detecting means, and the sign of the difference current is reversed, that is, both current values i and irOutputs the reversal (timing) of the magnitude relationship with. In this way, the number k of required data among the data input to each data input line is preset, and the number k of data to be detected is preset.0It detects that it became. Thus, the semiconductor integrated circuit of the illustrated example can detect the number of required data input to the data input line.
[0112]
At this time, if the control transistor of the current driving means is provided on the current signal detection line side from the signal voltage application transistor, even if the data input to the data input line is not the required data, the signal voltage application transistor remains off. However, when this semiconductor integrated circuit is at the operation timing and the control transistor of the all current driving means is turned on, a temporary current flows from the signal current detection line to the control transistor. A current also flows through the signal current detection line. For this reason, the difference current between the current flowing in the detection line and the reference current flowing in the reference current drive line at the time of reversal that requires detection becomes small, and it is difficult to quickly detect the reversal of the difference current by the difference current detection means. Yes, it is easily affected by noise or the like, and stable and accurate detection may not be performed quickly.
[0113]
In contrast, in the semiconductor integrated circuit of the illustrated example, since the signal voltage application transistor is provided on the signal current detection line side of the control transistor, even if the control transistor of all current driving means is turned on, the signal voltage The current from the signal current detection line does not flow unless the application transistor is turned on. Therefore, when the voltage application transistor is turned on, the difference current between the current flowing through the signal current detection line and the reference current can be made relatively large even during reverse rotation that requires detection. As a result, the detection of the reversal of the difference current by the difference current detection means can be performed stably and accurately and quickly.
[0114]
FIG. 12 shows a specific circuit diagram of another embodiment of the timing control circuit 61 to which the semiconductor integrated circuit as the premise of the present invention is applied. Here, the timing control circuit 61 shown in the figure is applied to the encoding circuit 11 shown in FIG. 8, and controls the timing control circuit 60 shown in FIG. 10 and the signal application transistor 67c of the current drive circuit 66. Since the transistors 67d and the transistors 69c and 69d of the reference current drive circuit 68 are exactly the same except for the differences, the same components are denoted by the same reference numerals, and detailed description thereof is omitted.
[0115]
In the timing control circuit 61 shown in FIG. 12, the current drive circuit 66, which is the most characteristic part, will be described as one representative example. A signal voltage application composed of two N-channel MOS transistors connected in series is described. The signal voltage application transistor 67c is connected to the first signal line 62, the control transistor 67d is grounded, and the gate electrode of the signal voltage application transistor 67c is a data latch circuit corresponding to each of the flag registers 18. The gate electrode of the control transistor 67 d is connected to the control signal line 72.
[0116]
In the current driving circuit 66, the control transistor 67d is turned on at the time of detection, and the signal voltage application transistor 67c is turned on when the hit signal “1” is input from the flag register 18 to the gate electrode of the signal voltage application transistor 67c. , A predetermined current i from the first signal line 620Is configured to flow. This drive current i0Are all current drive circuits 660, 661, ..., 66mHowever, there are variations in the transistors 67c and 67d used, such as variations due to process variations. The dummy circuit 74 has the same configuration as that of the current drive circuit 66, and includes two series-connected N-channel MOS transistors 75c and 75d, one of which is connected to the second signal line 64 and the other of which is grounded. Similarly, the gate electrode of the transistor 75d is connected to the control signal line 72, but the gate electrode of the transistor 75c on the second signal line 64 side is grounded and is not always turned on.
[0117]
On the other hand, the reference current drive circuit 68 applies a predetermined reference current (reference current) i to the second signal line.rThe N-channel transistors 69c and 69d are connected in series. The transistor 69c is connected to the second signal line, and the gate electrode thereof is set to a predetermined H (high) so that the transistor 69c is always turned on. The transistor 69 d is connected to a potential power source, and its gate electrode is connected to the control signal line 72. The dummy circuit 76 of the reference current driving circuit 68 is connected to the first signal line 62. Reference current irThe value of the current drive circuit 66 (660, 661, ..., 66m) Can be passed through the current value i0Can be appropriately determined according to the number of hit signals to be detected, but in order to detect the last hit signal, i0Super 2i0The difference current detection circuit 70 to be described later may be set to a current value that can detect the difference current. This current value irMay be determined in consideration of variations in circuit elements such as the transistors 67c, 67d, 69c, and 69d.r= 1.2i0~ 1.8i0Is preferable.
[0118]
An output line extends from the contact B of the differential current detection circuit 70 and is connected to the AND circuit 88 through the inverter 84. The other input of the AND circuit 88 receives the reset signal of the flag register 18 described above. The output of the AND circuit 88 is connected to the clock terminal of the flag register 18 described above.
[0119]
Next, the detection operation of the timing control circuit 61 in the illustrated example will be described by taking the action of detecting the last hit signal of the flag data of the flag register 18, that is, the action of detecting the last hit signal as a representative example. To do. Here, flag data having a plurality of hit signals ('1') is held in the flag register 18, and the reference current irIs the drive current i of one current drive circuit 6601.5 times that is 1.5i0It is assumed that it is set to.
[0120]
First, prior to the detection, the precharge control signal line 72 is set to L (low: '0'), both the precharge transistors 78 and 79 are turned on, and the first and second signal lines 62 and 64, and hence the contact points. (Nodes) a and b are also precharged to the same H (high) potential (for example, 5 V), both precharge transistors 83 are turned on, and the contacts A and B in the differential current detection circuit 70 are similarly set to H ( High) Precharged to a potential (for example, 5 V). Note that the transistors 82a and 82b of the difference current detection circuit 70, the transistors 67d of all the current drive circuits 66, and the transistor 69d of the reference current drive circuit 68 are off.
[0121]
Next, the precharge control signal line 72 is set to H (high: '1'), the PMOS transistors 78, 79, 83 are turned off, and the NMOS transistors 67d, 69d, 75d, 77d are turned on. Accordingly, the two transistors 69c and 69d of the reference current driving circuit 68 are both turned on, and the second signal line 64 has a reference current i.r(= 1.5i0) Flows to lower the potential of the contact b. On the other hand, (m + 1) current drive circuits 66 (660, 661, ..., 66m) Of the data latch circuit 18 in which the flag data of the flag register 18 is the hit signal ‘1’.jSince the signal voltage application transistor 67c having the gate electrode connected to is turned on and the control transistor 67d is turned on, the current drive circuit 66jIncludes a driving current i from the first signal line 62.0Flows. By the way, the flag data of the flag register 18 includes a plurality of, for example, k (k ≧ 2) hit signals “1”, so that the first signal line 62 has ki.0Current flows, and the potential of the contact a also decreases accordingly.
[0122]
Here, when k is larger than 2, the current ki flowing in the first signal line 620Is the reference current i flowing through the second signal line 64r(= 1.5i0) Is larger than the potential of the contact b, the potential of the contact a is lowered more quickly. Here, when the difference between the gate potential of the NMOS 82a (the potential of the contact B) and the source potential (the potential of the contact a) is larger than the substrate biased threshold voltage (eg, 1.4V) of the NMOS 82a (for example, the contact). When the potential of the contact a drops to 3.6 V when the potential of B is 5 V), the NMOS 82a is turned on, and the potential of the contact A is lowered. On the other hand, at this time, the potential of the contact b is not lowered enough to turn on the NMOS 82b, and the off state is maintained as it is. Thereafter, a further current flows through both signal lines 62 and 64, and the potentials of the contacts A and a further decrease. However, the decrease in the potential of the contact a, that is, the decrease in the potential of the contact A is lower than the potential decrease of the contact b. Since it is large, the NMOS 82b is kept off. In this way, the contact B maintains “1”, and “0” is output to the AND circuit 88 by the inverter 84 connected thereto. On the other hand, the contact A is “0”.
[0123]
Next, as the plurality of hit signals “1” in the flag register 18 are encoded, each of them is reset to “0” one by one, and when the number of remaining hit signals becomes one, the timing control circuit 61 of the illustrated example. In other words, when “0” is first input to the precharge control signal line 72 to perform precharge and then “1” is input, the first signal line is the same as described above. 62 has a current i0However, the second signal line 64 has a reference current i.r(= 1.5i0) Will flow. At this time, since the current flowing through the second signal line 64 is larger, the potential at the contact b drops earlier than the potential at the contact a. It becomes. Accordingly, the potential of the contact B is lowered to the low level, inverted by the inverter 84, and "1" is output to the AND circuit 88 described above. The potential of the contact A is maintained at the H (high) potential.
[0124]
From the above, if the output signal output from the inverter 84 of the timing control circuit 61 in the illustrated example is “0”, there are two or more hit signals “1” held in the flag register 18, and this output signal is “ If it is 1 ', it turns out that the hit signal is one or less. Accordingly, when this output signal changes from “0” to “1”, the AND circuit 88 obtains the switching control signal from the detection result, that is, the “1” signal and the reset signal of the flag register 18 described above. The flag data in the flag register 18 may be switched to the flag data in the prefetch circuit 16 using a signal. Of course, the output signal here may be taken out from only the contact A or from both the contacts A and B.
[0125]
Here, as described above, the timing control circuit 60 shown in FIG. 10 includes the timing circuit 61 shown in FIG. 12 and the current drive circuit 66 (660, 661, ..., 66m) Of the control transistor 67a and the signal voltage applying transistor 67b and the dummy circuit 74 (74).0741, ..., 74mThe data latch circuit of the flag register 18 is exactly the same except that the arrangement of the control transistor 75a and the grounded gate transistor 75b in FIG. It is possible to detect that the number of hit signals '1' held by a predetermined number is, for example, the last one.
[0126]
In both the timing control circuits 60 and 61, when the timing detection operation is started as described above, the signal current detection line (first signal line) 62 has a hit signal ('1') of the flag register 18. A current corresponding to the number of currents flows, and a predetermined reference current flows through the reference current drive line (second signal line) 64. Therefore, the difference current detection circuit 70 has a small potential difference between the contacts a and b caused by the difference between the currents flowing through the signal lines 62 and 64, and one (the high potential side of the contacts a and b) is a precharge voltage (for example, Vdd). And the other (low potential side) is detected as a large potential difference between the contacts A and B which decreases to the ground level (for example, approximately OV).
[0127]
Here, the subsequent change in the potentials of the contacts A and B, which are precharged to the same potential (for example, Vdd = 5V) first, is determined by which of the transistors 82a and 82b is turned on. That is, as described above, during the timing detection operation, a current flows through the first and second signal lines 62 and 64, the potentials of the contacts a and b of both signal lines 62 and 64 are lowered, and the contact B and When either the potential difference of the contact a or the potential difference between the contact A and the contact b becomes larger than the substrate biased threshold value (for example, 1.4 V), that is, the potentials of both the signal lines 62 and 64 (the contact points of the contact points a and b). When any of the potentials exceeds the threshold value (for example, 1.4V) and drops (below 3.6V), one of the transistors 82a and 82b is turned on. As a result, one of the contacts A or B on the transistor 82a or 82b side that is turned on immediately becomes equal to the potential of the lowered contact a or b, respectively, and then drops together to the ground level (OV). On the other hand, each contact A or B on the side of the transistor 82a or 82b that has not been turned on is kept at the precharged potential (5V).
[0128]
Thus, by detecting the potential of the contact B as a detection signal and taking it out as an output signal via the inverter 84, it is possible to detect that a predetermined number (for example, the last one) of hit signals has been obtained. That is, since the inverter 84 is connected to the tip of the contact B, the transistor 82b is turned on, and when the potential of the contact B decreases and falls below the threshold value of the inverter 84 (for example, about 2.5V). The output signal “1” is obtained.
[0129]
As can be seen from the above, in the above-described differential current detection circuit 70, if the potential difference between the contacts a and b when the contacts A and B start to separate is too small, the on-operation of the transistors 82a and 82b causes the potential difference between the contacts a and b. The possibility of malfunction occurring, that is, malfunction is increased. Therefore, the larger the potential difference between the two contacts a and b, the less susceptible to noise, and always accurate and stable timing detection can be performed.
[0130]
However, in the timing control circuit 60 shown in FIG. 10, the control transistor 67a of the current drive circuit 66 is connected to the first signal line 62 which is a signal current detection line, and the signal voltage application transistor 67b connected in series to the control transistor 67a. The other electrode of the dummy circuit 74 is grounded, the control transistor 75a of the dummy circuit 74 is connected to the second signal line which is a reference current drive line, and the other electrode of the gate grounded transistor 75b connected in series to the control transistor 75a is grounded. Is done. Therefore, when the precharge control signal line 72 is changed from the low (L: “0”) level of the precharge operation to the high (H: “1”) level of the timing detection operation, each data latch circuit of the flag register 18 is changed. 18jRegardless of the retained data of (j = 0,..., M), the control transistor 67a of the current drive circuit 66 is turned on, and a temporary charge flows between the control transistor 67a and the signal voltage application transistor 67b. Similarly, the control transistor 75a of the dummy circuit 74 is turned on, and a temporary charge flows between the control transistor 75a and the grounded gate transistor 75b.
[0131]
As a result, as shown in FIG. 14B, current flows from the first and second signal lines 62 and 64 to the control transistors 67a and 75a of the current drive circuit 66 and the dummy circuit 74 at the beginning of the timing detection operation. The potentials of the contacts a and b of the signal lines 62 and 64 are simultaneously reduced. In particular, if the number of data latch circuits in the flag register 18 is large and the corresponding number of current driving circuits 66 and dummy circuits 74 are large, the currents flowing in the first and second signal lines 62 and 64 at the initial stage of detection increase. The potentials of the contacts a and b are greatly reduced at the same time. For this reason, the difference between the potentials of the contacts a and b due to the turning on of the signal voltage applying transistor 67b is delayed, and the potentials of both of them are lowered. That is, when either of the potentials of the signal lines 62 and 64 (the potentials of the contacts a and b) drops below a predetermined value (for example, 3.6 V), the contact when turning on one of the transistors 82a and 82b. The potential difference between a and b becomes small.
[0132]
On the other hand, in the timing control circuit 61 of FIG. 12, the signal voltage application transistor 67c of the current drive circuit 66 is provided on the first signal line 62 side, and the control transistor 67d is provided on the ground side. 75c is provided on the second signal line side, and the control transistor 75d is provided on the ground side. Therefore, even if the timing detection operation is started, all the control transistors 67d of the current drive circuit 66 in which the signal voltage application transistor 67c is not turned on are not turned on, and all the control transistors 75d of the dummy circuit 74 are not turned on. The current for charging the control transistors 67d and 75d does not flow through the signal lines 62 and 64. As a result, only the signal voltage application transistors 67c and the control transistors 67d of all the current drive circuits 66 corresponding to the data latch circuits of the flag register 18 in which the hit signal “1” is held are turned on, and the current corresponding to the number thereof Only flows to the first signal line 62, only the transistors 69c and 69d of the reference current drive circuit 68 are turned on to the second signal line, and only the reference current flows to the second signal line. Therefore, as shown in FIG. 14 (a), the potential difference between the contacts a and b occurs immediately after the detection operation, that is, from the time when the potentials of both the contacts a and b slightly decrease. The potential difference between the two contacts when the power cuts a predetermined value (for example, 3.6 V) can be made large.
[0133]
As described above, in the timing control circuits 60 and 61 shown in FIGS. 10 and 12, the potential difference between the contacts a and b when either one of the contacts a or b cuts a predetermined value (for example, 3.6 V) is different. For example, the examples shown in FIGS. 14A and 14B (examples of the timing control circuits 61 and 60 shown in FIGS. 12 and 10 respectively) will be described. When b is less than 3.6V, the potential difference between the contacts a and b is about 0.3V in FIG. 14 (a), whereas it is about 0.1V in FIG. 14 (b). is there. Therefore, the timing control circuit 61 shown in FIG. 14A has a larger noise margin, and as a result, even if it is affected by noise, the possibility that the differential current detection circuit 70 malfunctions is small and always accurate and stable. Timing detection can be performed.
[0134]
Further, in FIGS. 14A and 14B, the potential difference between the two contacts at the time when the contacts a and b cut 3.6 V is increased by precharging both signal lines 62 and 64 in advance. . However, if the signal lines 62 and 64 are operated without being precharged, there is no potential difference between the contacts a and b, and normal operation cannot be expected. Therefore, in both cases (a) and (b) of the figure, it is significant to operate after being precharged.
[0135]
14 (a) and 14 (b) show the power supply voltage (V) in the timing control circuits 61 and 60 shown in FIGS. 12 and 10, respectively.dd) Is 5V, the number (m + 1) of current driving circuits 66 and dummy circuits 74 is 256, and the reference current ir1.5i0At this time, the detection timing (change in the voltage of the precharge control signal line 72), the detection timing when the last hit signal '1' held in the flag register 18 is one, the contacts a, b, and the contact A , B and the output signal (out put) of the inverter 84 are shown.
The timing control circuit 61 is basically configured as described above.
[0136]
A time chart of the encoding timing of the main encoder 12 of the encoding circuit 11 shown in FIG. 8 using the timing control circuit 61 is shown in FIG.
[0137]
In the figure, (a) represents an encode signal indicating the encode timing of the main encoder 12. (B) represents a reset pulse indicating the reset timing of the hit signal ‘1’ of the flag register 18. (C) represents a detection operation signal (voltage applied to the precharge control signal line 72) indicating the detection operation timing of the timing control circuit 61 of FIG. (D) represents a detection output signal indicating a change in potential of the contact B of the timing control circuit 61, (e) represents an output signal obtained by inverting the detection output signal of (d) by the inverter 84, and (f) represents A flag data switching control signal indicating timing for shifting the flag data of the prefetch circuit 16 to the flag register 18 is represented.
[0138]
As described above, while the hit signal in the same flag data held in the flag register 18 is encoded with a predetermined priority, that is, if the detection output signal (d) is at a high level (H), the hit signal is hit. The encoding cycle is started (rises) at a predetermined time from the rising timing of the signal reset pulse (b). However, the timing control circuit 61 in the illustrated example detects the last hit signal at the detection timing activated by the encode pulse (a), and the detection output signal (d) changes from the high level (H) '1' to the low level (L ) When it changes to “0”, its inverted output signal (e) changes from “0” to “1”. Here, the AND circuit 88 shown in FIG. 12 calculates the logical product of the inverted output signal (e) of the detection output signal (d) and the reset pulse (b), and replaces the flag data of the prefetch circuit 16 with the flag register 18. The switching control pulse (f) is generated. Thus, the flag data of the flag register 18 is switched by the switching control pulse (f).
[0139]
As described in detail above, according to the semiconductor integrated circuit of the illustrated example, the signal voltage application transistor of the current driving means is provided on the signal current detection line side, and the control transistor is provided on the ground side. Since the control transistor is not turned on unless the voltage application transistor is turned on, there is no outflow of charge for charging all the control transistors from the signal current detection line, and detection of the difference current detection means and malfunction do not occur. Therefore, the difference current between the reference current drive line and the signal current detection line can be stably and accurately detected quickly, and is suitable as a timing control circuit for predicting the end of encoding of an encoding circuit such as an associative memory. Can be used.
[0140]
  Next, with reference to FIGS. 15 to 17, another semiconductor integrated circuit which is a premise for understanding the encoding circuit applied to the content addressable memory device of the present invention will be described in detail. The semiconductor integrated circuit of the illustrated example can be applied to the encoding circuit shown in FIG. 8 as a number control circuit for timing control, similarly to the semiconductor integrated circuit shown in FIGS.
[0141]
In the semiconductor integrated circuit of the illustrated example, first, data input to data input lines for controlling M (M ≧ 1) current driving means provided in parallel with the first signal line, that is, the signal current detection line, respectively. Number of data to be detected out of '1' or '0' k0(M> k0Reference current (reference current) value i to be supplied to the reference current drive means provided in the reference current drive line as the second signal line in response to ≧ 0)rThat is, the current value i flowing through one current driving means0K0Greater than double k0Current value smaller than +1 times (k0i0<Ir<(K0+1) i0) Is set in advance. Here, each current driving means of this semiconductor integrated circuit has a signal voltage application transistor having a data input line connected to its gate electrode, and a control transistor for controlling the operation timing of this semiconductor integrated circuit.
[0142]
For this reason, in the semiconductor integrated circuit of the illustrated example, when all the current driving means in which required data is input to the reference current driving means and the data input line are turned on according to the operation timing, the reference current driving line has a reference current. Reference current value i by the driving meansrFlows. On the other hand, each current driving means has a current i.0As a result, the current i corresponding to the number k (M> k ≧ 0) is applied to the signal current detection line (i = ki).0) Flows. The current values i and i flowing in both signal linesrIs detected by the difference current detection means, and the sign of the difference current is reversed, that is, both current values i and irOutputs the reversal (timing) of the magnitude relationship with. In this way, the number k of required data among the data input to each data input line is preset, and the number k of data to be detected is preset.0It detects that it became. Thus, the semiconductor integrated circuit of the illustrated example can detect the number of required data input to the data input line.
[0143]
At this time, both signal lines of the reference current drive line (reference current line) and the signal current detection line (detection line) have a predetermined voltage level (V0) Is set. Therefore, the reference current i flowing through the reference current linerAnd the total signal current i (ki0The difference between the voltage levels of both signal lines (voltage difference) caused by the current difference from the signal line) at the start of the detection operation, that is, the constant voltage level (V0), When a predetermined time has elapsed after the start of the detection operation, that is, the set voltage level (V0) At a predetermined voltage drop or increased voltage level. This is because the difference between the accumulated currents that flowed becomes larger. Therefore, the detection start voltage level of the difference current detection means (circuit) is set to the set voltage level (V0This setting level (V0), It is possible to accurately and stably detect the current difference between the two signal lines, that is, the voltage difference, by setting the voltage level to a predetermined voltage drop or increased voltage level that is relatively different. The result is less susceptible to noise and other disturbances.
[0144]
By the way, in the semiconductor integrated circuit of the illustrated example, the differential current detection means has the detection start level setting means, so that the detection start voltage level is the same for both the signal current detection line and the reference current line. Can be set to a voltage level having a large difference (separated from a predetermined voltage level) from a preset voltage level (for example, a precharge voltage level). The difference can be made relatively large. Therefore, detection of the difference current between the current flowing through the signal current detection line and the reference current is most important, and the voltage difference between the two signal lines is relatively large even when the difference current is reversed so that the difference current between the two signal lines becomes the smallest. be able to. As a result, the detection of the difference current by the difference current detection means and the detection of the reverse timing (timing) can be stably and accurately performed.
[0145]
FIG. 15 shows a specific circuit diagram of still another embodiment of the timing control circuit 90 to which the semiconductor integrated circuit as the premise of the present invention is applied. Here, the timing control circuit 90 shown in the figure is applied to the encoding circuit 11 shown in FIG. 8, and includes a timing control circuit 60 shown in FIG. 10 and a transistor 86 serving as detection circuit level setting means. A precharge transistor 78 for precharging the contacts a and b on one end side of the signal lines 62 and 64 and a transistor 79 for setting the signal lines 62 and 64 to the same potential on the other end side are provided. The number of hit signals '1' held by the data latch circuit of the flag register 18 input to the gate electrode of the signal voltage application transistor 67b is exactly the same, except for Since it can be detected that the number is one, the same number is assigned to the same component, and the detailed description thereof is omitted.
[0146]
In the timing control circuit 90 shown in FIG. 15, the difference current detection circuit 70, which is the most characteristic part, is connected to the same predetermined potential as the power supply on the other end side of both signal lines 62 and 64, for example, a 5 V power supply. A P-channel MOS transistor (PMOS) 86, 80a and 80b connected to the PMOS transistor 86, N-channel MOS transistors (NMOS) 82a and 82b connected in series to the PMOS transistor 86, and two precharges comprising PMOS A transistor 83 is provided. Here, the PMOS transistor 86 connected to the power supply constitutes a detection start level setting means, and its source electrode is connected to the power supply, and its gate electrode is connected to its own drain electrode. The gate electrodes of the transistors 82a and 80a connected to the first signal line are connected to each other and are connected at a contact point B between the transistors 80b and 82b. Further, the gate electrodes of the transistors 82b and 80b connected to the second signal line are connected to each other and are connected at a contact A between the transistors 80a and 82a. An output line extends from the contact B and is connected to the AND circuit 88 via the inverter 84. The other input of the AND circuit 88 receives the reset signal of the flag register 18 described above. The output of the AND circuit 88 is connected to the clock terminal of the flag register 18 described above.
[0147]
Here, the power supply voltage V to which the source electrode of the PMOS transistor 86 is connected.ddIs a predetermined potential, for example, 5V, and the threshold voltage VTHIs a predetermined voltage, for example, about 0.7 V, the PMOS transistor 86 has a gate voltage obtained by subtracting a threshold voltage from the power supply voltage (Vdd-VTHFor example, it is turned on while lower than 5-0.7 = 4.3 V), but it is turned off when higher than this. Therefore, the voltage of the drain electrode connected to the gate electrode is the power supply voltage minus the threshold voltage (Vdd-VTHFor example, 4.3V). That is, the PMOS transistor 86 sets the precharge voltage at the contacts A and B when precharging through the precharge transistor 83 to the above-described Vdd-VTHAnd supply voltage VddFunctions as a means to lower As will be described in detail later, since the precharge potential at the contacts A and B is lowered, the precharged gate voltage of the transistors 82a and 82b is lowered, and one of the transistors 82a and 82b is turned on during the timing detection operation. The potential of the contacts a and b at the time, that is, the detection start voltage level is lowered. That is, the PMOS transistor 86 functions as detection start level setting means.
[0148]
Next, the detection operation of the timing control circuit 90 in the illustrated example will be described with reference to a representative example of the action when the last hit signal of the flag data in the flag register 18 is detected, that is, the last hit signal. To do. Here, the power supply potential used for precharging is the same, for example, 5 V, and flag data having a plurality of hit signals ('1') is held in the flag register 18, and the reference current irIs the drive current i of one current drive circuit 6601.5 times that is 1.5i0It is assumed that it is set to.
[0149]
First, prior to detection, the precharge control signal line 72 is set to L (low: '0'), the precharge transistors 78 and 79 at both ends of both signal lines 62 and 64 are turned on, and the first and second signals are turned on. The lines 62 and 64, and hence the contacts a and b, are also precharged to the same predetermined potential, for example, a power supply potential (for example, 5V), and both precharge transistors 83 of the difference current detection circuit 70 are turned on to detect the difference current. The contacts A and B in the circuit 70 are precharged to a precharge voltage, that is, a predetermined H (high) potential (for example, 4.3 V). Note that the transistors 82a and 82b of the differential current detection circuit 70, the transistors 67a of all the current drive circuits 66, and the transistor 68a of the reference current drive circuit 68 are off. Here, in the state where the transistor 86 connected to the power source is first turned off, the drain potential is set to the power source potential-threshold potential (Vdd-VTH, For example, 4.3 V), but as a result of the precharge transistor 83 being turned on, the drain potential V of the transistor 86 isdd-VTHWhen it is further lowered, the transistor 86 is turned on to precharge the contacts A and B. In this way, the potential of the contacts A and B, that is, the gate potential (drain potential) of the transistor 86 becomes the precharge voltage, that is, Vdd-VTHThe transistor 86 is turned on until reaching (for example, 4.3 V), and the precharge of the contacts A and B is continued. After reaching the precharge voltage, the transistor 86 is turned off.
[0150]
Next, the precharge control signal line 72 is set to H (high: '1'), the PMOS transistors 78, 79, 83 are turned off, and the NMOS transistors 67a, 69a, 75a, 77a are turned on. Accordingly, the two transistors 69a and 69b of the reference current driving circuit 68 are both turned on, and the reference current i is supplied to the second signal line 64.r(= 1.5i0) Flows to lower the potential of the contact b. On the other hand, (m + 1) current drive circuits 66 (660, 661, ..., 66m) Of the data latch circuit 18 in which the flag data of the flag register 18 is the hit signal ‘1’.jSince the transistor 67b having the gate electrode connected to is turned on and the transistor 67a is turned on, the current driving circuit 66jIncludes a driving current i from the first signal line 62.0Flows. By the way, the flag data of the flag register 18 includes a plurality of, for example, k (k ≧ 2) hit signals “1”, so that the first signal line 62 has ki.0Current flows, and the potential of the contact a also decreases accordingly.
[0151]
Here, when k is larger than 2, the current ki flowing in the first signal line 620Is the reference current i flowing through the second signal line 64r(= 1.5i0) Is larger than the potential of the contact b, the potential of the contact a is lowered more quickly. Here, the difference (gate-source voltage) between the gate potential of the NMOS 82a (the potential at the contact point B) and the source potential (the potential at the contact point a) is larger than the substrate biased threshold voltage (for example, 1.4 V) of the NMOS 82a. That is, that is, the potential of the contact a is the detection start voltage VONWhen the voltage drops beyond (the voltage obtained by subtracting the above threshold voltage from the precharge voltage) (for example, when the potential at the contact B drops to 2.9 V when the potential at the contact B is 4.3 V), the NMOS 82a is turned on. As a result, the potential of the contact A decreases. On the other hand, at this time, the potential of the contact b is not lowered enough to turn on the NMOS 82b, and the off state is maintained as it is. Thereafter, a further current flows through both signal lines 62 and 64, and the potentials of the contacts A and a further decrease. However, the potential of the contact a decreases, that is, the potential of the contact A decreases. Since it is larger, the NMOS 82b remains off. In this way, the contact B maintains “1”, and “0” is output to the AND circuit 88 by the inverter 84 connected thereto. On the other hand, the contact A is “0”.
[0152]
Next, as the plurality of hit signals “1” in the flag register 18 are encoded, each of them is reset to “0” one by one, and when the remaining hit signals become one, the timing control circuit 90 in the illustrated example is shown. In other words, when “0” is first input to the precharge control signal line 72 to perform precharge and then “1” is input, the first signal line is the same as described above. 62 has a current i0However, the second signal line 64 has a reference current i.r(= 1.5i0) Will flow. At this time, since the current flowing through the second signal line 64 is larger, the potential at the contact b drops earlier than the potential at the contact a. It becomes. Accordingly, the potential of the contact B is lowered to the low level, inverted by the inverter 84, and "1" is output to the AND circuit 88 described above. On the other hand, the potential of the contact A is maintained at the H (high) potential.
[0153]
From the above, if the output signal output from the inverter 84 of the timing control circuit 90 in the illustrated example is “0”, two or more hit signals “1” are held in the flag register 18 and the output signal is “1”. If it is', it turns out that the hit signal is 1 or less. Therefore, when this output signal changes from “0” to “1”, the AND circuit 88 obtains a switching control signal from the detection result, that is, the “1” signal and the reset signal of the flag register, and this switching control. The flag data in the flag register 18 may be switched to the flag data in the prefetch circuit 16 using a signal. Of course, the output signal here may be taken out from only the contact A or from both the contacts A and B.
[0154]
By the way, in the timing control circuit 90 in the illustrated example, when the timing detection operation is started as described above, the hit signal ('1') of the flag register 18 is applied to the signal current detection line (first signal line) 62. A current corresponding to the number of currents flows, and a predetermined reference current flows through the reference current drive line (second signal line) 64. Therefore, the difference current detection circuit 70 has a small potential difference between the contacts a and b caused by the difference between the currents flowing through the signal lines 62 and 64, and one (the high potential side of the contacts a and b) is a precharge voltage (for example, Vdd). And the other (low potential side) is detected as a large potential difference between the contacts A and B which decreases to the ground level (for example, approximately 0 V).
[0155]
Here, the subsequent change in the potentials of the contacts A and B that were initially precharged to the same precharge potential (for example, 4.3 V) is determined by which of the transistors 82a and 82b is turned on. That is, as described above, during the timing detection operation, a current flows through the first and second signal lines 62 and 64, the potentials of the contacts a and b of both signal lines 62 and 64 are lowered, and the contact B and When either the potential difference of the contact a or the potential difference between the contact A and the contact b becomes larger than the substrate biased threshold value (for example, 1.4 V), that is, the potentials of both the signal lines 62 and 64 (the contact points of the contact points a and b). Any of the potentials) is a detection start voltage (a potential obtained by subtracting the aforementioned threshold voltage from the precharge potential) VONWhen the voltage exceeds (for example, 2.9 V), one of the transistors 82a and 82b is turned on. As a result, one of the contacts A or B on the side of the transistor 82a or 82b that is turned on immediately becomes equal to the potential of the contact a or b that has dropped, and then drops together to the ground level (0 V). On the other hand, each contact A or B on the side of the transistor 82a or 82b that is not turned on is kept at the precharge potential (4.3 V).
[0156]
Thus, by detecting the potential of the contact B as a detection signal and taking it out as an output signal via the inverter 84, it is possible to detect that a predetermined number (for example, the last one) of hit signals has been obtained. That is, since the inverter 84 is connected to the tip of the contact B, the transistor 82b is turned on, and when the potential of the contact B decreases and falls below the threshold value of the inverter 84 (for example, about 2.5V). The output signal “1” is obtained.
[0157]
As can be seen from the above, in the above-described differential current detection circuit 70, if the potential difference between the contacts a and b when the contacts A and B start to separate is too small, the on-operation of the transistors 82a and 82b causes the potential difference between the contacts a and b. The possibility of malfunction occurring, that is, malfunction is increased. Therefore, the larger the potential difference between the two contacts a and b, the less susceptible to noise, and always accurate and stable timing detection can be performed.
[0158]
Here, the equally precharged potentials of the contacts a and b of the signal lines 62 and 64 are the initial values of the timing detection operation (when the precharge control signal line 72 is at the high level (H: '1')). In this case, a temporary inflow of charge to the control transistors 67a, 69a, 75a, and 77a that are turned on, such as the current drive circuit 66, the reference current drive circuit 68, and the dummy circuits 74 and 76, occurs. However, the total signal current i flowing through the first signal line 62 through the current driving circuit 66 in which the signal voltage applying transistor 67b is turned on according to the number of hit signals ('1') held in the flag register 18 and the transistor 69b. The reference current i flowing through the second signal line 64 through the reference current driving circuit 68 turned onrTherefore, when a predetermined time elapses after the start of detection, a potential difference occurs between the contacts a and b due to this current difference. This potential difference increases as the difference between the integrated currents flowing down the signal lines 62 and 64 increases, and therefore increases until a predetermined time after the start of detection. However, as the current flows, the potentials of the two signal lines 62 and 64 that have been precharged in advance decrease, and the retained charges decrease. Therefore, the retained charges decrease, and the potential is reduced. Since the current hardly flows when it approaches the ground level and eventually stops flowing, the potentials of both signal lines 62 and 64, that is, the potentials of both contacts a and b, are substantially equal to the ground level after a sufficient time has elapsed. Become.
[0159]
Therefore, in the semiconductor integrated circuit of the illustrated example, the potential difference between the contacts a and b increases as the potential decreases from the precharged potential unless the potentials at both contacts a and b decrease to near the ground level. . Therefore, when the potential between the contacts a and b is further lowered and a larger potential difference is generated between the contacts a and b, the lower potential of the contacts a and b is one of the transistors 82a and 82b. The difference between the precharge voltage of both contacts a and b, that is, both signal lines 62 and 64, and the detection start voltage level at which the transistors 82a and 82b are turned on can be made as large as possible so that the detection start voltage for turning on one of them is obtained. It is preferable to keep it. For this purpose, there is a method of either increasing the precharge voltage of both signal lines 62 and 64 or decreasing the detection start voltage level. In order to increase the precharge voltage of both signal lines 62 and 64, a booster circuit may be used. However, since the booster circuit increases the circuit area and costs, it is necessary to provide means for lowering the detection start voltage level. preferable. The detection start voltage is the source voltage when the transistor 82a or 82b is turned on, that is, the potential of the contact a or b, and the threshold value between the gate and source of the transistors 82a and 82b (for example, about 1.4 V) is determined. Therefore, the detection start voltage level can be lowered by lowering the potentials of the gate electrodes of the transistors 82a and 82b.
[0160]
In the timing control circuit 90 shown in FIG. 15, the precharge potential of the contacts A and B connected to the gate electrodes of both transistors 82a and 82b by the detection start level setting transistor 86 using a PMOS transistor is predetermined from the power supply potential (for example, 5V). Although the voltage is reduced to the potential (for example, 4.3 V) by the threshold voltage of the PMOS transistor, the present invention is not limited to this. For example, the detection start level setting transistor 86 is set to NMOS like the timing control circuit 92 shown in FIG. A transistor can also be used. NMOS transistor substrate biased gate-source threshold voltage VTHIs about 1.4V, for example, the power supply voltage VddIs 5 V, the drain electrode and the gate electrode of the NMOS transistor 86 are connected and connected to the power source, so that the increase in the potential of the source electrode is Vdd-VTHThat is, up to about 3.6V. Therefore, the precharge voltage at the contacts A and B is about 3.6 V, and the threshold voltage V between the gate and source of the NMOS transistors 82a and 82b.THIs about 1.4V, so that the detection start voltage V at which these transistors 82a and 82b are turned on isONCan be about 2.2V (3.6-1.4V).
[0161]
By the way, when the semiconductor integrated circuit of the illustrated example is applied as a timing control circuit of an encoding circuit, the potential difference between the contacts a and b of both signal lines 62 and 64 is increased early after the timing detection operation is started, that is, the contacts a and In order to increase the potential of the potential b even if it is small, the signal voltage application transistor 67c of the current drive circuit 66 is changed to a first one like a timing control circuit 92 shown in FIG. 16 in contrast to the timing control circuit 90 shown in FIG. The control transistor 67d is provided on the ground side on the 1 signal line (signal current detection line) 62 side, the gate ground transistor 75c of the dummy circuit 74 is provided on the second signal line (reference current drive line) side, and the control transistor 75d is grounded. It may be provided on the side. By doing this, only the control transistor 67d of the current drive circuit 66 in which the signal voltage application transistor 67c is turned on is turned on, and all the control transistors 67d in which the transistor 67c is not turned on and the control transistors 75d of all the dummy circuits 74 are turned on. Therefore, it is possible to eliminate charges flowing into the control transistors 67d and 75d at the initial stage of the timing detection operation, and to prevent simultaneous deterioration at the beginning of the timing detection operation of both the signal lines 62 and 64, that is, both the contacts a and b. In addition, the potential difference between the contacts a and b can be increased.
[0162]
However, in the timing control circuit 60 shown in FIG. 10, since the precharge transistor 83 is directly connected to the power supply, the contacts A and B are connected to the power supply potential Vdd(For example, 5 V). The precharge voltage at contacts A and B is the power supply potential VddTherefore, the threshold voltage between the gate and the source is VTHDetection start voltage V at which the transistors 82a and 82b (for example, 1.4V) are turned onONIs Vdd-VTH(For example, 3.6V). In contrast, the detection start level (voltage) V of the timing control circuits 90 and 92 shown in FIGS.ONAre about 2.9 V and 2.2 V, respectively, for the same power supply potential (5 V), so that the detection start voltage level V is higher than that of the timing control circuit 60 shown in FIG.ONThe transistor 82a or 82b can be accurately and stably performed at a lower potential at which the potential difference between the signal lines 62 and 64, that is, the contact points a and b becomes larger. As a result, even if the timing control circuits 90 and 92 shown in FIGS. 15 and 16 are affected by noise compared to that shown in FIG. 3, the difference current detection circuit 70 is less likely to malfunction and is always accurate and stable. The detected timing can be performed with a high noise margin.
[0163]
FIGS. 17A and 17B show the circuit operation simulation waveform of the timing control circuit 92 shown in FIG. 16 and the circuit operation simulation waveform of the timing control circuit 60 shown in FIG.
[0164]
It can be seen that the voltage difference between the node a and the node b at the operating point where the node A point and the node B point respectively are 0.6 V and 0.1 V, and the margin of FIG.
Note that the encoding operation of the main encoder 12 of the encoding circuit 11 shown in FIG. 8 to which the timing control circuit 90 is applied is the same as that in the timing chart shown in FIG.
The timing control circuits 90 and 92 applied to the encoding circuit 11 shown in FIG. 8 are basically configured as described above.
[0165]
Further, according to the semiconductor integrated circuit of the illustrated example, the difference current detecting means can detect the difference between the detection start voltage and the voltage set in advance in the first and second signal lines relatively large. Since the start level setting means is provided, even in the detection operation timing, the potential of both signal lines of the signal current detection line and the reference current drive line is sufficiently lowered and the potential difference is sufficiently increased. It can be detected dynamically. For this reason, there is no possibility that the differential current detection means cannot be detected or malfunctions. Therefore, the difference current between the reference current drive line and the signal current detection line can be stably detected with low power consumption, accurately and quickly with a high noise margin, and a compact circuit configuration can be achieved. It can be suitably used as a timing control circuit that predicts the end of encoding of an encoding circuit such as an associative memory.
[0166]
  Next, with reference to FIG. 18 to FIG. 22, another semiconductor integrated circuit which is a premise for understanding the encoding circuit applied to the content addressable memory device of the present invention will be described in detail. The semiconductor integrated circuit of the illustrated example can be applied to the encoding circuit shown in FIG. 8 as a timing control number detection circuit.
[0167]
In the semiconductor integrated circuit of the illustrated example, first, data input to data input lines for controlling M (M ≧ 1) current driving means provided in parallel with the first signal line, that is, the signal current detection line, respectively. Number of data to be detected out of '1' or '0' k0(M> k0Reference current (reference current) value i to be supplied to the reference current drive means provided in the reference current drive line as the second signal line in response to ≧ 0)rThat is, the current value i flowing through one current driving means0K0Greater than double k0Current value smaller than +1 times (k0i0<Ir<(K0+1) i0) Is set in advance. Prior to detection, both the first and second signal lines are precharged to a predetermined same potential. Accordingly, both the input and the inverted output of the first and second inverters connected in series or in parallel to these signal lines are the same, and both the inputs to the differential current detecting means are also the same.
[0168]
For this reason, in the semiconductor integrated circuit of the illustrated example, when predetermined data is input to the data input line in accordance with the operation timing and all the current driving units are activated, each of these current driving units has a current i.0Current i (i = ki) corresponding to the number k (M> k ≧ 0).0) Flows in the signal current detection line. On the other hand, the reference current drive line is supplied with the reference current value i by the reference current drive means.rFlows. As a result, the potentials of the signal current detection line and the reference current drive line that have been precharged to a predetermined potential start to drop, and the number k of current drive units that are active becomes k.0When the value is larger, the potential of the signal current detection line decreases earlier, while k0In the following cases, the potential of the reference current drive line decreases more quickly.
[0169]
By the way, in the semiconductor integrated circuit of the illustrated example, when the potential of either one of the signal lines decreases beyond the threshold value of the inverter connected to the signal line, the output of the inverter is inverted. Here, in the semiconductor integrated circuit of the illustrated example, the inversion of the inversion output of the inverter connected in series to the signal line can be directly detected by the differential current detection means. In the semiconductor integrated circuit of the illustrated example, only the transistor connected in series with the signal line (connected in parallel with the inverter) is turned on by inverting the inverted output of the inverter connected in parallel with the signal line. Thus, the current can flow down to the signal line and the potential can be lowered, and the drop in the input potential can be detected by the differential current detecting means. Therefore, the current values i and i flowing through both the first and second signal lines are as follows.rIs detected by the difference current detecting means, and the sign of the difference current is reversed, that is, both current values i and irOutputs the reversal (timing) of the magnitude relationship with. In this way, the number k of required data among the data input to each data input line is preset, and the number k of data to be detected is preset.0It detects that it became. Thus, the semiconductor integrated circuit of the illustrated example can detect the number of required data input to the data input line.
[0170]
Here, by adjusting the threshold value of the inverter connected to both signal lines, the difference in potential between the two signal lines can be made relatively large when detecting the difference current between the two signal lines. Therefore, at this time, the inverted output of only one inverter can be inverted stably and accurately. Further, since the inverter has its own drive capability, in the semiconductor integrated circuit of the illustrated example, the voltage level of the initial value of the input signal to the differential current detecting means can be increased by inversion of one of the inverters. In addition, the voltage difference between the two input signals due to the difference current between the two signal lines at the start of detection can be increased, and the detection operation can be performed reliably and stably. Furthermore, in the semiconductor integrated circuit of the illustrated example, the transistor is turned on by inversion of the inverter, so that one of the signal lines can be reliably connected to the input of the difference current detection means first, so that the detection operation is stabilized. Can be done accurately. As a result, the detection of the reversal of the difference current between the two signal lines by the difference current detecting means can be stably and accurately performed.
[0171]
FIG. 18 shows a specific circuit diagram of still another embodiment of the timing control circuit 100 to which the semiconductor integrated circuit as a premise of the present invention is applied. Here, the timing control circuit 100 shown in the figure is applied to the encoding circuit 11 shown in FIG. 8, and includes the timing control circuit 61 shown in FIG. 12, the inverter trains 102a, 104a and 102b, 104b, and Since the transistors 103a and 103b are exactly the same except that the transistors 103a and 103b are provided, the same components are denoted by the same reference numerals, and detailed description thereof is omitted.
[0172]
The timing control circuit 100 shown in FIG. 18 includes the first signal line (signal current detection line) 62, the second signal line (reference current drive line) 64, and the (m + 1) of the flag register 18 in parallel with the first signal line 62. Data latch circuit 180, 181, ..., 18m(M + 1) current drive circuits (current drive means) 66 provided for each of0, 661, ..., 66mAnd a reference current driving circuit (reference current driving means) 68 provided on the second signal line 64, and a difference between currents flowing in the first signal line 62 and the second signal line 64, that is, a difference current for detecting the difference current. Detection circuit (difference current detection means) 70, inverters 102a, 104a and 102b, 104b provided between first signal line 62 and second signal line 64 and difference current detection circuit 70, and operation of this timing control circuit The timing is controlled, that is, the current driving circuit 66 (660, 661, ..., 66m), And a precharge control signal line 72 for controlling the reference current drive circuit 68, the difference current detection circuit 70, and the like.
[0173]
Furthermore, in this timing control circuit 100, one end contact p and contact q of the first signal line 62 and the second signal line 64 are connected to the inverters 102a and 102b, respectively, and further via the inverters 104a and 104b, The contacts a and b are connected to the differential current detection circuit 70, and the other end is connected to a predetermined potential, for example, a 5V power source via the precharge transistor 78. The reference current i flowing in the reference current drive circuit 68rThe value of the current drive circuit 66 (660, 661, ..., 66m) Can be passed through the current value i0Can be appropriately determined according to the number of hit signals to be detected, but in order to detect the last hit signal, i0Super 2i0The inversion timings of the inverters 102a and 102b can be clearly distinguished and the difference current detection circuit 70 may have a current value that can detect the difference current by this inversion.
[0174]
Inverters 102a and 104a are connected between first signal line 62 and difference current detection circuit 70, while inverters 102b and 104b are connected between second signal line and difference current detection circuit 70. Further, NMOS transistors 103a and 103b connected to a predetermined low potential (for example, ground potential) are connected between inverters 102a and 104a and between inverters 102b and 104b, respectively, and their gate electrodes are connected to contact a (inverter 104a and contact point of difference current detection circuit 70) and contact point b (contact point of inverter 104b and difference current detection circuit 70). Here, the threshold voltage causing the output inversion of the inverters 102a and 102b is adjusted by the transistor width or threshold voltage of the PMOS and NMOS constituting the inverter. By adjusting the threshold voltage of the inverted output, the potential difference due to the difference current between the contacts p and q at the time of output inversion of only one inverter can be made relatively large, and the operation margin can be increased.
[0175]
Next, the detection operation of the timing control circuit 100 in the illustrated example will be described with reference to a representative example of the action when the last hit signal of the flag data in the flag register 18 is detected, that is, the last hit signal. To do. Here, flag data having a plurality of hit signals ('1') is held in the flag register 18, and the reference current irIs the drive current i of one current drive circuit 6601.5 times that is 1.5i0It is assumed that it is set to.
[0176]
First, prior to detection, the precharge control signal line 72 is set to L (low: '0'), both the precharge transistors 78 and 79 are turned on, and the first and second signal lines 62 and 64, and hence the contact points. (Nodes) p and q are also precharged to the same H (high) potential (for example, 5 V), both precharge transistors 83 are turned on, and the contacts A and B in the differential current detection circuit 70 are similarly set to H ( High) Precharged to a potential (for example, 5 V). Therefore, both the connection points of the inverters 102a and 104a and 102b and 104b are L (low) potential by the inverters 102a and 102b, and the contacts a and b are both H (high) potential by the inverters 104a and 104b. Accordingly, the transistors 103a and 103b are turned on, and both node potentials of the inverters 102a and 104a and 102b and 104b are reliably fixed to the L (low) potential. Note that the transistors 82a and 82b of the difference current detection circuit 70, the transistors 67d of all the current drive circuits 66, and the transistor 69d of the reference current drive circuit 68 are off.
[0177]
Next, the precharge control signal line 72 is set to H (high: '1'), the PMOS transistors 78, 79, 83 are turned off, and the NMOS transistors 67d, 69d, 75d, 77d are turned on. Accordingly, the two transistors 69c and 69d of the reference current driving circuit 68 are both turned on, and the second signal line 64 has a reference current i.r(= 1.5i0) Flows to lower the potential of the contact q. On the other hand, (m + 1) current drive circuits 66 (660, 661, ..., 66m) Of the data latch circuit 18 in which the flag data of the flag register 18 is the hit signal ‘1’.jSince the signal voltage application transistor 67c having the gate electrode connected to is turned on and the control transistor 67d is turned on, the current drive circuit 66jIncludes a driving current i from the first signal line 62.0Flows. By the way, the flag data of the flag register 18 includes a plurality of, for example, k (k ≧ 2) hit signals “1”, so that the first signal line 62 has ki.0Current flows, and the potential of the contact point p also decreases accordingly.
[0178]
Here, when k is larger than 2, the current ki flowing in the first signal line 620Is the reference current i flowing through the second signal line 64r(= 1.5i0), The potential at the contact point p decreases more quickly than the potential at the contact point q. For this reason, the contact p reaches the inverter output inversion potential (threshold value) earlier than the contact q, the output inversion of the inverter 102a occurs earlier than the output inversion of the inverter 102b, and the inverter 104a inverts the output earlier. That is, only the inverters 102a and 104a invert the output first, the potential drop of the contact a occurs, and the difference between the gate potential of the NMOS 82a (potential of the contact B) and the source potential (potential of the contact a) of the differential current detection circuit 70. Becomes larger than the substrate biased threshold voltage (eg, 1.4V) of the NMOS 82a (eg, the potential of the contact a drops below 3.6V when the potential of the contact B is 5V), and the NMOS 82a is turned on. The potential of A is lowered to enter the L (low) state. Note that the NMOS 103a is turned off by the potential drop of the contact a, and the connection point between the inverters 102a and 102b is kept in the H (high) state. On the other hand, the contact q (second signal line 64) does not reach the output inversion potential (threshold value) of the inverter 102b, the output inversion of both the inverters 102b and 104b does not occur, and the potential of the contact b is H The NMOS 82b is maintained in the OFF state, and the contact B is maintained in the H (high) state.
[0179]
Thereafter, a further current flows through both signal lines 62 and 64, the potentials of the contacts p and q are lowered, the potential of the contact q is lowered beyond the threshold value of the inverter 102b, and the output inversion occurs. Even if the output inversion of 104b is caused and the potential of the contact b is lowered, the gate potential of the NMOS 82b (potential of the contact A) is maintained in the L (low) state, so that the NMOS 82b is maintained in the off state. The potential of B is maintained in the H (high) state. In this way, the setting is maintained at H (high) '1' by the latch operation of the difference current detection circuit 70 and is inverted by the inverter 84 connected thereto, and L (low) '0' is output to the AND circuit 88. It will be. On the other hand, the contact A maintains L (low) ‘0’.
[0180]
Next, as the plurality of hit signals “1” in the flag register 18 are encoded, each of them is reset to “0” one by one, and when the number of remaining hit signals becomes one, the timing control circuit 100 in the illustrated example. In other words, when “0” is first input to the precharge control signal line 72 to perform precharge and then “1” is input, the first signal line is the same as described above. 62 has a current i0However, the second signal line 64 has a reference current i.r(= 1.5i0) Will flow. At this time, since the current flowing through the second signal line 64 is larger, the potential of the contact q drops earlier than the potential of the contact p, and the output inversion of the inverters 102b and 104b occurs, contrary to the above, Only b decreases first, and the NMOS 82b is turned on, but the NMOS 82a is kept off. Accordingly, the potential of the contact B is lowered to L (low) level, inverted by the inverter 84, and H (high) ‘1’ is output to the AND circuit 88 described above. On the other hand, the potential of the contact A is maintained at the H (high) “1” potential.
[0181]
From the above, if the output signal output from the inverter 84 of the timing control circuit 100 is “0”, the number of hit signals “1” held in the flag register 18 is two or more, and this output signal is “1”. If there is, it can be seen that the number of hit signals is one or less. Accordingly, when this output signal changes from “0” to “1”, the AND circuit 88 obtains the switching control signal from the detection result, that is, the “1” signal and the reset signal of the flag register 18 described above. The flag data in the flag register 18 may be switched to the flag data in the prefetch circuit 16 using a signal. Of course, the output signal here may be taken out from only the contact A or from both the contacts A and B.
[0182]
As described above, by appropriately adjusting the threshold voltages of the inverters 102a and 102b connected to the two signal lines 62 and 64, the potentials of the two contacts p and q generated by the difference current between the two signal lines 62 and 64 are obtained. Even if the difference in decrease is small, it can be reliably detected, and the output of only one inverter can be inverted first. Since the inverter has driving capability, the potential between the contacts a and b can be increased by output inversion, and the potential difference between the contacts a and b at the start of detection by the differential current detection circuit 70 can be increased. Only one of the NMOSs 82a and 82b can be reliably turned on. Therefore, the detection operation of the differential current detection circuit 70 can be performed stably and reliably. That is, the potential difference between the contacts a and b at the start of detection of the differential current detection circuit 70 can be made larger than the potential difference between the contacts p and q of both signal lines, so that either one of the transistors 82a and 82b is turned on. Will not malfunction. Therefore, since the timing circuit 100 in the illustrated example has a large noise margin and is not easily affected by noise, the timing circuit 100 can always perform accurate and stable timing detection. Of course, by adjusting the input threshold voltage for the output change of the inverters 102a and 102b to a low value, the voltage difference between the contacts p and q when one inverter starts to work can be increased, and a more stable operation can be achieved. Needless to say.
[0183]
The timing circuit 100 in the illustrated example uses two stages of inverters 102a, 104a, 102b, and 104b between the signal lines 62 and 64 and the difference current detection circuit 70, respectively, and contacts A and B of the NMOSs 82a and 82b. This is detected by dropping one of the potentials. However, the present invention is not limited to this, and is configured by a differential current detection circuit that has one inverter and raises the potential of one of the contacts A and B by a PMOS transistor. Also good.
The timing control circuit 100 is basically configured as described above.
[0184]
  Next, another semiconductor integrated circuit which is a premise for understanding the encoding circuit applied to the content addressable memory device of the present invention will be described.
  FIG. 19 shows still another embodiment of the timing control circuit to which the semiconductor integrated circuit as the premise of the present invention is applied. The timing control circuit 106 shown in FIG. 19 is different from the timing control circuit 100 shown in FIG. 18 except that inverters 108a and 108b and transistors 109a and 109b are provided instead of the two-stage inverters 102a, 104a and 102b and 104b. Since they have exactly the same configuration, the same components are denoted by the same reference numerals, and detailed description thereof is omitted.
[0185]
In the timing control circuit 106 shown in FIG. 19, an NMOS transistor 109a is connected between one end contact p of the first signal line 62 and the source electrode side contact a of the NMOS 82a of the differential current detection circuit 70. An inverter 108a is connected between the gate electrode and the contact p, an NMOS transistor 109b is connected between the end contact q of the second signal line and the source electrode side contact b of the NMOS 82b, and the gate electrode of the NMOS 109b An inverter 108b is connected between the contact q. Here, the threshold values of inverters 108a and 108b are adjusted similarly to inverters 102a and 102b.
[0186]
Similarly to the timing control circuit 100 shown in FIG. 18, in the timing control circuit 106 shown in FIG. 19, all the contacts A, B, a, b, p, q are first set to H by the L signal of the precharge control signal line 72. (E.g., contacts A, B, p, q are power supply voltage (Vdd, e.g., 5V), and contacts a, b are driven by substrate biased thresholds (e.g., 1.4V) of NMOSs 82a, 82b). Precharged to 3.6V). Next, by setting the signal line 72 to H, the first signal line 62 has a ki corresponding to the number k of hit signals by the current drive circuit 66 activated by the hit signal ‘1’ of the flag register 18.0Current draw occurs, the voltage drops accordingly, and the second signal line 64 is connected to i by the reference current drive circuit 68.r(1.5i0) Current draw occurs, and the voltage drops accordingly.
[0187]
At this time, when the number k of active current driving circuits 66 is 2 or more, the voltage drop of the first signal line 62 is faster than that of the second signal line 64. Therefore, the contact point b reaches the inverter threshold voltage earlier than the contact point q, and the output inversion of the inverter 108a occurs earlier than the output inversion of the inverter 108b. Therefore, the NMOS 109a is turned on before the NMOS 109b. For this reason, the potential drop of the contact a occurs, the NMOS 82a of the differential current detection circuit 70 is turned on, and the potential of the contact A becomes L (low) level. As a result, after that, even if the potential at the contact q further decreases, the output of the inverter 108b is inverted, the transistor 109b is turned on, and the potential drop at the contact b occurs, the gate potential of the NMOS 82b (the potential at the contact A) Is already L, the NMOS 82b is not turned on and remains off, and the potential at the contact B remains H. Therefore, the output of the contact B is inverted by the inverter 84, and the output of the inverter 84, which is the output of the timing control circuit 106, becomes L (low) hold.
[0188]
Conversely, when the number k of active current driving circuits 66 is 1 or less, the flowing current i of the second signal line 64 is reversed.rIs larger than the flowing current i of the first signal line 62, and the potential drop of the contact q is larger than that of the contact p. As a result, the output of the inverter 108b is inverted, the transistor 109b is turned on, the potential drop of the contact b occurs, the NMOS 82b is subsequently turned on, and the potential of the contact B becomes L level. On the other hand, since the potential of the gate electrode (contact B) of the NMOS 82a is L level, regardless of the potential of the contact a, that is, the potential drop of the contact p occurs, the inverter 108a inverts the output, and the transistor 109a is turned on. Even if the potential at the contact a drops, the NMOS 82a does not turn on. Therefore, the potential of the contact A is maintained at the H level. As a result, the potential of the contact B is inverted by the inverter 84, and the output of the timing control circuit 106 changes to H level. Thus, it can be detected that the hit signal “1” in the flag register 18 is the remaining one.
[0189]
In the timing control circuit 106 in the illustrated example, by adjusting the threshold values of the inverters 108a and 108b, the detection operation of the differential current detection circuit 70 is started, that is, at the time when one of the NMOSs 82a and 82b is turned on. The potential difference between the contacts a and b can be set, and stable and accurate timing detection with a large noise margin can always be performed.
[0190]
FIG. 20 shows a timing control circuit to which still another semiconductor integrated circuit as a premise of the present invention is applied. The timing control circuit 110 shown in the figure further adds to the timing control circuit 106 shown in FIG. 19 precharge PMOS transistors 78 and 78 for precharging the potentials of the contacts a and b to a predetermined potential, for example, a power supply potential Vdd (for example, 5 V). In order to obtain the same potential, a PMOS 79 for connecting both contacts a and b is added. The gate electrodes of these PMOSs 78, 78 and 79 are connected to the precharge control line 72.
[0191]
Here, in the timing control circuit 106 shown in FIG. 19, when the contacts A, B, p, q are first precharged to the H state of the power supply potential 5V, the potentials of the contacts a and b are set to the H state of 3.6V. In contrast, in the timing control circuit 110 shown in FIG. 20, the potentials of the contacts a and b can be raised to 5V. Therefore, the potential difference between the contacts p and q at the time when the detection operation of the difference current detection circuit 70 is started and when one of the NMOSs 82a and 82b is turned on can be made larger than that of the timing control circuit 106 shown in FIG. it can. Therefore, the timing control circuit 110 shown in FIG. 20 has a larger noise margin and can always perform accurate and stable timing detection.
[0192]
Further, like the timing control circuit 112 shown in FIG. 21, the control transistors 67e and 77e obtained by merging the control transistors 67d, 69d, 75d, and 77d of the current drive circuit 66 and the reference current drive circuit 68 may be used. It goes without saying that it is good.
[0193]
In order to set the initial value of the flag register 18, an OR logic circuit 114 that has received the initial value setting signal shown in FIG. 22 is inserted between the AND circuit 88 and the flag register 18.
The encoding operation of the main encoder 12 of the encoding circuit 11 shown in FIG. 8 to which the timing control circuits 100, 106, 110, and 112 are applied is the same as the timing chart shown in FIG.
The timing control circuit to which the semiconductor integrated circuit as the premise of the present invention is applied is basically configured as described above.
[0194]
As described in detail above, according to the semiconductor integrated circuit of the illustrated example, an inverter is provided in series or in parallel between the first and second signal lines and the differential current detecting means, respectively, and the inverter output inversion threshold is set. By adjusting the value voltage, the potential difference between the two input signals to the difference current detection means at the start of detection of the difference current detection means can be set relatively arbitrarily, so that the difference current detection means cannot be detected or malfunctions. Will not occur. Therefore, according to this semiconductor integrated circuit, it is possible to always accurately and stably detect the magnitude of the difference current between the two signal lines and the reverse timing. That is, the semiconductor integrated circuit of the illustrated example is a stable circuit that is not easily affected by noise and has a large operation margin, and is preferably used as a timing control circuit that predicts the end of encoding of an encoding circuit such as an associative memory. it can.
[0195]
Here, according to the semiconductor integrated circuit of FIG. 18, after the output of the inverter is inverted, the detection operation of the difference current detecting means can be performed regardless of the change in the potential of the first and second signal lines. Further, according to the semiconductor integrated circuit of FIG. 20, the operation margin can be further increased as compared with the semiconductor integrated circuit of FIG.
[0196]
  Next, with reference to FIG. 23, another semiconductor integrated circuit which is a premise for understanding the encoding circuit applied to the content addressable memory device of the present invention will be described in detail. The semiconductor integrated circuit of the illustrated example can be applied to the encoding circuit shown in FIG. 8 as a timing control circuit number detection circuit.
[0197]
In this semiconductor integrated circuit, first, the desired number k of data “0” or “1” held in the data register is to be detected.0(M> k0≧ 0: The number of data equal to M (M ≧ 1) is the number of data that can be held in the data register) is held in the reference current control register. For example, data ‘1’ held in the data register is k0If it is detected that the number has become, the reference current control register has k0Pieces of data ‘1’ are held.
[0198]
Here, there are M signal unit current driving means and a second signal line which are provided in parallel to the first signal line, that is, the signal current detection line, and are controlled by data held in the data register. The currents flowing in each of the N reference unit current driving means provided in parallel to the reference current driving lines and controlled by the data held in the reference current control register are the same unit current i.0And the offset current i flowing in the reference offset current drive means provided in the reference current drive lineosThe unit current i0Smaller current value (i0> Ios> 0) in advance. Therefore, k0Reference current i flowing in the reference current drive line via the reference unit current drive means and the reference offset current drive meansr(= K0i0+ Ios) Is k0i0Larger (k0+1) i0Smaller current value (k0i0<Ir<(K0+1) i0)
[0199]
For this reason, in the semiconductor integrated circuit of the illustrated example, the unit current i is supplied to all the signal unit current driving means corresponding to the data registers holding the required data according to the operation timing.0Current i (i = ki) corresponding to the number k (M> k ≧ 0).0) Flows in the signal current detection line, whereas the reference current drive line has the reference current value i as described above.rFlows. The current values i and i flowing in both signal linesrIs detected by the difference current detecting means, and the sign of the difference current is reversed, that is, both current values i and irOutputs the reversal (timing) of the magnitude relationship with. In this way, the number k of required data among the data input to each data input line is preset, and the number k of data to be detected is preset.0It detects that it became. In this way, the semiconductor integrated circuit of the illustrated example can detect the number of required data held in the data register. The number of detected data can be arbitrarily set by changing the number of required data to be set and held in the reference current control register.
[0200]
FIG. 23 shows a specific circuit diagram of still another embodiment of the timing control circuit 116 to which the semiconductor integrated circuit as a premise of the present invention is applied. Here, the timing control circuit 116 shown in the figure is applied to the encoding circuit shown in FIG. 8, and includes a timing control circuit 61, a reference current control register 118, and an OR circuit shown in FIG. Since it is exactly the same except that 114 is provided, the same components are denoted by the same reference numerals, and detailed description thereof is omitted. The serially connected transistors 75c and 75d are used as the dummy circuit 74 in the timing control circuit 61 shown in FIG. 12, but the gate of the NMOS transistor 75c is connected to the reference current control register 118 in the timing control circuit 116 shown in FIG. The reference unit current drive circuit 74 is made to function.
[0201]
The timing control circuit 116 shown in the figure includes (m + 1) data latch circuits 118.0, 1181, ..., 118mA reference current control register 118, a first signal line (signal current detection line) 62, a second signal line (reference current drive line) 64, and (m + 1) of the flag register 18 in parallel with the first signal line 62, respectively. Data latch circuits 180, 181, ..., 18m(M + 1) signal unit current drive circuits (signal unit current drive means) 66 provided for each of0, 661, ..., 66mAnd (m + 1) data latch circuits 118 of the reference current control register 118 in parallel with the second signal line, respectively.0, 1181, ..., 118m(M + 1) reference unit current drive circuits (reference unit current drive means) 74 provided for each of0741, ..., 74mAnd a reference offset current drive circuit (reference offset current drive means) 68 provided in the second signal line 64, and a difference between currents flowing in the first signal line 62 and the second signal line 64, that is, a difference current is detected. The differential current detection circuit (differential current detection means) 70 and the operation timing of this timing control circuit are controlled, that is, the unit current drive circuit 66 (660, 661, ..., 66m) And 74 (740741, ..., 74m), And a precharge control signal line 72 for controlling the reference offset current drive circuit 68, the difference current detection circuit 70, and the like.
[0202]
The reference current control register 118 has the same configuration as the flag register 18 and (m + 1) data latch circuits 118.0, 1181, ..., 118mEach data latch circuit 18 of the flag register 18.0, 181, ..., 18mThe number of flag data (hit signal ‘1’) to be detected individually stored in0((M + 1)> k0≧ 0) depending on k0Pieces of data (hit signal) ‘1’ to k0Data latch circuits 118jIt is for making it hold. Data latch circuit 118 of register 118jThe number of data (hit signal) '1' to be stored in can be arbitrarily set from the outside, and the detected number k0Can also be set arbitrarily as required. In addition, the data latch circuit 118 of the register 1180, 1181, ..., 118mWhich k0Data latch circuits 118jIt is also optional to hold data ‘1’.
[0203]
The reference unit current drive circuit 74 has the same configuration as the unit current drive circuit 66, and is composed of two series-connected N-channel MOS transistors, one of which is connected to the second signal line 64 and the other is grounded. The signal application transistor 75c and the control transistor 75d are connected to each other.jThe gate electrode of the ground-side control transistor 75 d is connected to the control signal line 72. The unit current drive circuit 74 is exactly the same as the unit current drive circuit 66, and the control transistor 75d is turned on at the time of detection, and the signal application transistor 75c has a hit signal '1 Unit current i from the second signal line 64 when turned on when '0Is configured to flow. Therefore, the detected number is k0The reference current control register 118 has k0Since the number of hit signals ‘1’ are held, k0Unit current drive circuits 74 for reference are turned on and k0i0Current flows in the second signal line. This unit current i0Are all unit current drive circuits 660, 661, ..., 66mAnd 740741, ..., 74mHowever, there may be variations in the transistors 67c and 67d and 75c and 75d used, for example, variations of variations due to processes.
[0204]
On the other hand, the reference offset current drive circuit 68 supplies a predetermined reference offset current i to the second signal line.OSIt is for flowing. Reference offset current iOSIs the unit current i0Smaller current value (i0> IOS> 0), and a current value that can be detected by the differential current detection circuit 70 described later may be used. This current value iOSIs the unit current i0It may be determined in consideration of variations in circuit elements such as the transistors 67c, 67d, 75c, 75d constituting the unit current drive circuits 66 and 74 and the transistors 69c, 69d constituting the reference offset current drive circuit 68. ios= 0.2i0~ 0.8i0Is preferable.
[0205]
As a result, the reference current i flowing in the second signal line at the time of detectionrThe value of is the number of detections (number of hit signals to be detected) k0Turn on according to0Current value k flowing through each unit current drive circuit 740i0And reference offset current value i flowing through the reference offset current drive circuit 68osAnd sum (k0i0+ Ios) And unit current value i0K0Greater than double k0Current value smaller than +1 times (k0i0<Ir<(K0+1) i0) For example, in order to detect the last one hit signal, the reference current value irIs i0Super 2i0However, as described above, i is considered in consideration of the variation of the constituent circuit elements and the margin of the difference current detection circuit 70.r= 1.2i0~ 1.8i0It is good to do.
[0206]
The output of the AND circuit 88 of the differential current detection circuit 70 is connected to the clock terminal of the flag register 18 described above. Further, the output of the AND circuit is connected to one input of the OR circuit 114, and the other of the OR circuit 114 is connected to the initial value setting signal.
[0207]
Next, the detection operation of the timing control circuit 116 in the illustrated example will be described with reference to a representative example of the action when the last hit signal of the flag data in the flag register 18 is detected, that is, the last hit signal. To do. Here, the flag register 18 includes a plurality of data latch circuits 18.jFlag data having a hit signal ('1') is held in the reference current control register 118, and one data latch circuit 118 is stored in the reference current control register 118.jHolds the data having the hit signal ('1'), and the unit current values of the unit current drive circuits 66 and 74 are i.0Reference offset current value i of the reference offset current drive circuit 68osIs 0.5i0Therefore, the reference current irIs the unit current i01.5 times that is 1.5i0It is assumed that it is set to.
[0208]
First, prior to detection, one data latch circuit 118 of the reference current control register 118 is used.jThe hit signal “1” is latched and held. Further, the precharge control signal line 72 is set to L (low: '0'), the first and second signal lines 62 and 64, and therefore the contacts (nodes) a and b, and the contacts A and B in the difference current detection circuit 70 Similarly, B is precharged to an H (high) potential (for example, 5 V).
[0209]
Next, the precharge control signal line 72 is set to H (high: '1'), the PMOS transistors 78, 79, 83 are turned off, and the control transistors 67d, 69d, 75d, 77d are turned on. Therefore, one data latch circuit 118 holding the hit signal “1” of the reference current control register 118.jUnit current drive circuit 74 corresponding tojThe two NMOS transistors 75c and 75d and the two NMOS transistors 69c and 69d of the reference offset current driving circuit 68 are both turned on, and the second signal line 64 has a reference current i.r(= 1.5i0) Flows to lower the potential of the contact b. On the other hand, (m + 1) unit current drive circuits 66 (660, 661, ..., 66m) Of the data latch circuit 18 in which the flag data of the flag register 18 is the hit signal ‘1’.jUnit current drive circuit 66 connected tojIncludes a unit current i from the first signal line 62.0Flows. By the way, the flag data of the flag register 18 includes a plurality of, for example, k (k ≧ 2) hit signals “1”, so that the first signal line 62 has ki.0Current flows, and the potential of the contact a also decreases accordingly.
[0210]
Here, when k is larger than 2, the current ki flowing in the first signal line 620Is the reference current i flowing through the second signal line 64r(= 1.5i0), The potential of the contact A drops to “0”. On the other hand, at this time, the contact B keeps “1”, and the AND circuit 88 is connected to the AND circuit 88 by the inverter 84 connected thereto. Will be output.
[0211]
Next, when the detection operation of the timing control circuit 116 is performed when the number of remaining hit signals in the flag register 18 is 1, the potential at the contact B is lowered to the low level and inverted to the inverter 84, and the above AND operation is performed. “1” is output to the circuit 88. On the other hand, the potential of the contact A is maintained at the H (high) potential.
[0212]
From the above, when the output signal output from the inverter 84 of the timing control circuit 116 changes from “0” to “1”, the AND circuit 88 resets the detection result, that is, the “1” signal and the flag register 18 described above. The switching control signal may be obtained from the signal, and the flag data in the flag register 18 may be switched to the flag data in the prefetch circuit 16 using this switching control signal.
[0213]
In the timing control circuit 116 shown in FIG. 23, in the unit current drive circuits 66 and 74 and the reference offset current drive circuit 68 and the dummy circuit 76, the signal application transistor 67c and the normally-off transistor 77c are connected to the first signal line 62 side and the signal. The application transistor 75c and the normally-on transistor 69c are provided on the second signal line 64 side, and the control transistors 67d, 75d, 69d, and 77d are provided on the ground side. However, the arrangement of the illustrated example is preferable, and by doing so, at the start of the detection operation, the first signal line 62 and the second signal line 64 are not turned on (the hit signal “1” is input to the gate electrode). No) The ON currents to the control transistors 67d, 77d and 75d connected to the transistors 67c, 77c and 75c respectively prevent the voltage drop of the first and second signal lines 62 and 64, and the separation of the contacts A and B The potential difference between the contact a and the contact b at the start, that is, when the potential of the contact a or b drops below 3.6 V can be increased, and the operation of the differential current detection circuit 70 can be made stable and reliable.
[0214]
In the above example, the unit currents flowing through both unit current drive circuits 66 and 74 are the same unit current i.0However, it is not limited to this and may be different. At this time, the reference offset current iosDepending on the value of the reference current irCan be determined. Reference offset current value iosThe unit current i0The value is smaller, but the present invention is not limited to this. The number of data latch circuits that hold the hit signal “1” in the reference current control register 118 and the value of the reference unit current that flows to one reference unit current drive circuit 74 It may be determined appropriately depending on the situation.
The timing control circuit 116 is basically configured as described above.
[0215]
The timing control circuit 116 in the illustrated example can be applied to the encoding circuit 11 illustrated in FIG. 8, but is not limited thereto, and can be applied to a circuit that requires detection of an arbitrary number of a plurality of detection nodes. .
[0216]
As described above in detail, according to the semiconductor integrated circuit of the illustrated example, a predetermined number of predetermined data, for example, data '1' for controlling the reference unit current driving means provided in the second signal line is referred to. By holding the current control register, it is possible to detect the number of predetermined data in the data register for controlling the signal unit current driving means provided in the first signal line. Therefore, the semiconductor integrated circuit of the illustrated example can be suitably used as a timing control circuit that predicts the end of encoding of an encoding circuit such as an associative memory.
[0217]
  Next, with reference to FIGS. 24 to 27, another encoding circuit which is a premise for understanding the encoding circuit applied to the associative memory device of the present invention will be described.
[0218]
In the associative memory of the illustrated example, when search data is input to the associative memory block constituting the associative memory device at the time of matching search, matching search is performed across a plurality of associative memory sub-blocks. At this time, as a result of each associative memory sub-block, that is, flag data including a match signal (hit signal) that matches the search data is held in a plurality of associative memory words, and a priority sub-block encoding circuit As a result, the associative memory sub-block having the highest priority is selected, and the flag data is transferred to and held in the flag register of the main coding circuit with priority. The priority-added main encoding circuit encodes the hit signal in the flag data stored in the flag register according to a predetermined priority, and outputs a hit address. In the prioritized main encoding circuit, hit signals in the flag register are sequentially reset with the output of the hit address.
[0219]
On the other hand, during the encoding of the flag data, the flag data of the next priority associative memory sub-block selected by the prioritized sub-block encoding circuit is changed to the flag data of the previous priority associative memory sub-block. In order to prepare for input to the flag register prior to the end of all hit signals, the number of hit signals held in the flag register is detected by a timing detection control circuit that detects the end of the hit signal of the flag register in advance. . For example, when the number of remaining hit signals becomes the last one, the flag data of the next priority associative memory sub-block is generated by the flag data sense circuit provided for each associative memory word according to the detection signal. The flag data of the next associative memory sub-block is input to the flag register immediately after the completion of encoding of all hit signals of this flag data, and the hit signal in this flag data is encoded. Start. These procedures are sequentially repeated to encode the hit signal of the entire associative memory block, that is, to output an address.
[0220]
According to the encoding circuit of the illustrated example, as described above, the hit signal in the flag data of the associative memory sub-block to be encoded next is being encoded during the encoding of the hit signal of the flag data of the previous associative memory sub-block. Since the flag data sense (detection) circuit is prepared for input to the flag register, time for transferring the hit signal from the associative memory sub-block to the flag register of the prioritized main encoding circuit can be eliminated. The flag data of the associative memory sub-block of the next priority is detected by the flag data sense circuit after detecting that the last hit signal has become one immediately before the start of encoding of the last hit signal of the flag data in the flag register Is detected in the next encoding cycle, and the sign of the hit signal in the input flag data It is possible to perform, since no loss in coding cycle occurs, it is possible to reduce the encoding time of the entire associative memory block whole turn associative memory can speed up the match search operation of the CAM device.
[0221]
That is, when the number of hit signals of the flag data to be encoded becomes the last one when the flag data of one associative memory sub-block is encoded, the encoding circuit of the illustrated example has the next associative memory to be encoded. The sub-block flag data is taken out to the detection line, and taken into the flag register at the end of encoding. For this reason, the flag data can be efficiently and quickly encoded, and a prefetch circuit or the like is not required, and the occupied area on the chip can be reduced.
[0222]
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, an encoding circuit which is a premise of the present invention will be described in detail based on a preferred embodiment shown in the accompanying drawings.
[0223]
24 to 27 show an encoding circuit according to still another embodiment as a premise of the present invention. FIG. 24 is a configuration diagram including an associative memory portion of the encoding circuit as a premise of the present invention. FIG. FIG. 26 is a partial circuit diagram, FIG. 26 is a circuit diagram of the main circuit, and FIG. 27 is a timing chart. The difference between the encoding circuit 120 shown in these drawings and the encoding circuit 11 shown in FIGS. 8 to 10 is that there is basically no difference between the prefetch circuit 16 and the same configuration. Elements are given the same numbers and their explanation is omitted. In FIG. 24, the flag data sense circuit 126 is described in some detail, but this configuration is not different from the encoding circuit 10. Also shown in the figure are a switch circuit 124 and an AND circuit 128 for selecting the register 36 of the required sub-block 32.
[0224]
FIG. 24 is a schematic diagram of still another embodiment of an associative memory block to which the encoding circuit as the premise of the present invention is applied. As shown in the figure, the encoding circuit 120 includes a priority order encoding circuit (hereinafter referred to as a main priority encoder or main encoder) 122 and a priority order sub block encoding circuit (hereinafter referred to as a sub block priority encoder or sub encoder). 14), a switch circuit 124 for detecting flag data, a flag data sense circuit 126, and an AND circuit 128. The main encoder 122 includes a flag register circuit 18, a main priority circuit 20, The sub-block encoder 14 includes a data latch circuit 24, a sub-priority circuit 26, and a sub-encode circuit 28.
[0225]
In FIG. 24, reference numeral 30 denotes an associative memory block (hereinafter referred to as a memory block). As described above, a plurality of memory blocks 30 (n in this embodiment, B1, B2, ..., Bn) Associative memory sub-block (hereinafter referred to as sub-block) 32. The memory block 30 includes n (A1, A2, ..., An) AND circuit 128 and (m + 1) (C + 1) (C0, C2, ..., Cm) Flag data sense circuit 126 is provided.
[0226]
First, the switch circuit 124 for detecting flag data, the flag data sense circuit 126, and the AND circuit 128, which are the most characteristic parts in the encoding circuit 120 shown in the drawing, will be described.
[0227]
The switch circuit 124 includes the sub-block 32 (B1) Register 36 (R0) Connected to one (S0) As a representative example, two NMOS transistors 124a and 124b are connected in series. Each switch circuit 124 has a detection line L (L (L) corresponding to an electrode (for example, drain electrode) of one transistor 124a).0, L1, ..., LmAnd the gate electrode of the transistor 124a is connected in parallel to the AND circuit 128 in each sub-block 32. The other transistor 124b has a gate electrode connected to the output terminal of the corresponding register 36, and an electrode (for example, a source electrode) of the transistor 124b is grounded. In the switch circuit 124, when the register 36 outputs a hit signal ('1') and the high level signal '1' is input from the AND circuit 128, both the transistors 124a and 124b are turned on, and the detection line. L is grounded to release the charge, and the potential of the detection line L is lowered. On the other hand, when the data held in the register 36 is “0”, even if the high level signal “1” is input from the AND circuit 128, the transistor 124 b of the switch circuit 124 remains OFF. The potential is not changed by the switch circuit 124.
[0228]
The flag data sense circuit 126 is configured by a self-driven sense amplifier, precharges the detection line L to a predetermined potential in advance, and detects the potential (fluctuation in potential) of the precharged detection line, This is to detect the data (hit signal “1” or mismatch signal “0”) held in 36. Each flag data sense circuit 126 (C0) Is provided on the detection line L so as to be denoted by a representative example, and includes two PMOS transistors 126a and 126b and an inverter 126c. In the flag data sense circuit 126, one electrode (for example, drain) of each of the PMOS transistors 126a and 126b is connected to the power source, the other electrode (for example, source) is connected to the detection line L, and the gate of one transistor 126a is connected in parallel. In the timing circuit 60 shown in FIG. 26 of the main encoder 122, the gate of the other transistor 126b is connected to the detection line L on the output side of the inverter 126c. The inverter 126 c is interposed in the detection line L and outputs an inverted signal to the flag register circuit 18 of the main encoder 122. The flag data sense circuit 126 precharges the detection line L by turning on the PMOS transistors 126a and 126b when an output level (CS1) of a timing circuit 60 described later is at a low level (L: '0').
[0229]
After this, the timing circuit 60 signals that the end of the encoding of the flag data of one sub-block 32, such as a signal indicating that the hit signal in the flag data of the sub-block 32 currently being encoded is the last one. When the output level (CS1) becomes high level (H: '1'), the flag data sense circuit 126 turns off the transistor 126a and holds the search line L in the precharged high (H) state. To do. At this time, the transistor 126b is in an ON state. On the other hand, at this time, since the output level (CS1) is at the high level, the data latch circuit 24 of the sub-block encoder 14 is provided corresponding to the sub-block 32 of the next priority in which “1” is latched. The AND circuit 128 outputs a high level signal (H: '1'). As a result, both transistors 124a and 124b of the switch circuit 124 of the word whose data in the register 36 of the selected sub-block 32 is the hit signal “1” are turned on, and the precharged charge is discharged from the search line L. As a result, the potential of the search line L decreases and changes from a high (H) state to a low (L) state. The flag data sense circuit 126 detects a decrease (change) in the potential of the search line L and outputs a hit signal from the register 36 to the flag register circuit 18. That is, the inverter 126c inverts the low (L) potential of the search line L, turns off the PMOS transistor 126b, and inputs the high (H) potential hit signal “1” to the input signal line of the flag register 18 of the main encoder 122. To do. On the other hand, when the data in the register 36 of the selected sub-block 32 is the mismatch signal “0” while the output level (CS1) of the timing circuit 60 is high (H) level, the switch circuit 124 is used. Does not turn on, the potential of the search line L does not change, and the PMOS transistors 126a and 126b of the flag data sense circuit 126 remain on. Therefore, the flag data sense circuit 126 is inverted by the inverter 126c. ) The state mismatch signal “0” is input to the input signal line of the flag register 18 of the main encoder 122.
[0230]
In this way, the flag data sense circuit 126 is used until the last hit signal is encoded after the last hit signal encoded in the flag data of the sub-block 32 of the previous priority level becomes one. Next, the flag data of the sub-block 32 of the next priority is detected. Thereafter, when the encoding of the last hit signal is completed and the signal is input to the clock terminal of the flag register 18, the detected flag data is immediately input to the flag register 18 and latched.
[0231]
The AND circuit 128 calculates the logical product of the encoding end timing notice signal (CS1) from the timing circuit 60 and the latch data (or reset output) of the data latch circuit of the sub-block encoder 14, and outputs the corresponding sub-block 32. This is for controlling all the switch circuits 124. Only when the warning signal (CS1) and the latch data are both high (H) level '1', the output of the AND circuit 128 is also high (H) level '1'. The transistor 124a of each switch circuit 124 is turned on. At this time, if the data held in the register 36 of the sub-block 32 is a hit signal ('1'), the transistor 124b is also turned on, the switch circuit 124 is turned on, the search line L is grounded, and the potential is lowered. Then, the level changes from the high level to the low level. On the other hand, if it is a mismatch signal ('0'), the transistor 124b remains off, the switch circuit 124 does not turn on, and the potential of the search line L does not change.
[0232]
The main encoder 122 includes a flag register circuit 18, a main priority circuit 20, a main encoding circuit 22, and a timing circuit 60 as shown in FIGS. The flag register 18 has (m + 1) data latch portions corresponding to the detection lines L (for convenience, subscripts corresponding to the detection lines L are attached). These latch portions are respectively determined in accordance with timing signals from the timing circuit 60. The data of the detection line L that is input in the order of priority is held, and is reset by a signal input from the main priority circuit 20. The flag register circuit 18 holds flag data until the main encoding circuit 22 encodes all hit signals, and each time a high priority word address hit signal is encoded, Reset.
[0233]
In this embodiment, the flag register 18 uses a D latch, but can be arbitrarily selected as long as it can temporarily hold 1 bit.
[0234]
By the way, the main encoder 122 shown in FIG. 25 and the main encoder 12 shown in FIG. 2 used in the encoding circuit 120 shown in FIG. And the node Q of the priority circuit 20mThe difference is that (OR output) is not connected to the flag register 18 via the inverter 49.
[0235]
That is, the priority circuit 20 of the main encoder shown in FIG. 2 resets the last hit signal of the flag data held in the flag register 18 and then resets the node QmIs used to switch the flag data of the flag register 18 to the flag data of the next priority sub-block 32 latched and held in the prefetch circuit 16 in advance. That is, in the main encoder 12 shown in FIG.mThe output “0” is inverted by the inverter 49, the inverted value “1” is input to the flag register 18, and the flag data of the next priority sub-block 32 latched and held in the prefetch circuit 16 is stored in the flag register circuit 18. Each is input to and held in a corresponding circuit. Thereafter, the vacant prefetch circuit 16 reads the flag data of the next priority sub-block 32 previously selected by the sub-block encoder 14 from the register 36 and latches and holds it. Thus, after the priority circuit 20 finishes processing the flag data of the sub-block of the previous priority, the flag data of the sub-block of the next priority is transferred from the register 36 of the sub-block 32. Since there is no need to wait, encoding can be performed efficiently. However, in this method, the content of the flag register 18 is held in the prefetch circuit 16 after the last hit signal of the flag data of the sub-block 32 of the previous priority level held in the flag register 18 is reset. Since it is switched to the flag data of the next priority order, in the priority encoding cycle started by reset, a cycle in which encoding cannot be performed at the time of switching the flag data of the sub-block may occur, and there may be a time during which encoding output cannot be performed.
[0236]
On the other hand, in the illustrated encoding circuit 120, the number of hit signals of flag data in the flag register 18 is detected by the timing control circuit 60 shown in FIG. Instead of resetting the last hit signal in the main priority circuit 20 using this detection result (encoding end notice signal) as an input signal, the flag data is encoded during the encoding of the last one hit signal. The sense circuit 126 detects the flag data of the sub-block 32 of the next priority, and inputs it to the flag register 18 simultaneously with the end of encoding. Therefore, the encoding circuit 120 of the illustrated example can perform priority encoding in the same cycle even when the flag data of the same sub-block is switched even when the flag data of the sub-block is switched. Of course, in the encoding circuit 120 of the illustrated example, the next one previously selected by the subblock encoder 14 by the flag data sense circuit 126 during the encoding of the last one hit signal of the flag data of the subblock in the flag register 18. Since the contents of the flag data in the register 36 of the sub-block 32 of the priority order are detected and can be input to the flag register 18 at the end of encoding, the prefetch circuit is not necessary, and the time for reading the flag data ( The time for transferring the flag data from each sub-block 32 to the main encoder 12 is eliminated, and the processing is unrelated to the encoding process, so that the encoding efficiency can be improved. In the illustrated encoding circuit 120, the last hit signal of the flag data in the flag register 18 need not be reset.
[0237]
FIG. 26 shows a timing control circuit 60 that is one of the characteristic parts of the encoding circuit 120 in the illustrated example.
[0238]
The timing control circuit 60 shown in the figure has the same configuration as the timing control circuit 60 shown in FIG. In the timing control circuit 60, an output line extends from the contact B and is input to the AND circuit 88 through the inverter 84, and this output is supplied to each data latch circuit 18 of the flag register 18 through the OR circuit 114.0, 181, ..., 18mConnected to the clock. An initial value setting signal for setting the initial value of the flag register 18 is input to the other input of each OR circuit 114. The output of the inverter 84 is connected to each AND circuit 128 via the OR circuit 130. Note that the reset signal of the flag register 18 described above is input to the other input of the AND circuit 88.
[0239]
As described above, the number of flag data hit signals “1” held in the flag register 18 by the timing control circuit 60 is detected, but the output signal output from the inverter 84 of the timing control circuit 60 is “0”. If it is "2", it can be seen that there are two or more hit signals "1" held in the flag register 18, and if the output signal is "1", there are one or less hit signals "1". In the illustrated example, the CS1 signal output from the OR circuit 130 is guided to the AND circuit 128 and the flag data sense circuit 126. When the CS1 signal is “1”, that is, the last one hit signal remaining ” In order to detect the flag data of the next memory sub-block 32 by the switch circuit 124, the AND circuit 128 and the flag data sense circuit 126 when encoding 1 ', the flag data of the memory sub-block 32 is read and switched. It can be done quickly.
[0240]
On the other hand, in the sub-block encoder 14, the associative memory sub-block 32 (B1, B2, ..., BnAt the time of a match search performed every time, the match search result in each memory sub-block 32, that is, flag data is held in the register 36, and the search data and A subblock hit signal indicating whether or not there is a memory word 34 (hit word or match word) indicating a match is generated and held in the data latch circuit 24 of the corresponding subblock 32.
[0241]
On the other hand, in the sub-priority circuit 26 of the sub-block encoder 14, the block hit signal latched and held in the data latch circuit 24 from the left side to the right side in the illustrated example is a hit signal ('1') according to a predetermined priority order. The sub-block 32 is selected and an output signal with priority having “1” only in the block address is output. This output signal is encoded and encoded by the subsequent sub-encoding circuit 28 and also output to the AND circuit 128 corresponding to the sub-block 32. As described above, the AND circuit 128 outputs a high level signal to the switch circuit 124 only when the block hit signal is “1” and a high level signal is input from the timing circuit 60. As a result, the switch circuit 124 corresponding to the memory word 34 of the hit signal “1” grounds the detection line L. Thus, the charge previously charged to the detection line L by the flag data sense circuit 126 is discharged, and the flag data sense circuit 126 detects a decrease in the potential of the detection line L, that is, a change from the high potential to the low potential, and the inverter 126c. The high potential hit signal inverted by the above is input to the flag register 18. Thereafter, these hit signals (flag data) are input to the flag register 18 by the end signal of the last one hit signal of the main encoder 122.
[0242]
Next, FIG. 27 shows an example of a timing chart of the encoding timing of the main encoder 112 using the timing control circuit 60 of the illustrated example, and the encoding operation of the encoding circuit 120 will be described with reference to this.
[0243]
In the figure, (a) is an encode signal indicating the encode timing of the main encoder 12, (b) is a reset signal indicating the reset timing of the hit signal '1' of the flag register 18, and (c) is a timing detection circuit 60. (D) is a detection output signal (end notice signal) of the timing detection circuit 60, and (e) is an AND circuit 128 from the timing detection circuit 60 via the OR circuit 130. The signals (CS1) and (f) input to the flag data sense circuit 126 are the flag sense output signals (output data signals of the flag data sense circuit 126) of the next priority sub-block 32, and (g) is the next flag. A flag data switching control signal indicating the timing of shifting the data to the flag register 18 (end It represents the signal).
[0244]
As can be seen from the figure, while the hit signal in the same flag data held in the flag register 18 is encoded with a predetermined priority, a predetermined time has elapsed from the rising timing of the reset pulse (b) of the hit signal. Thus, the encoding cycle (a) and the detection cycle (c) are configured to start (rise). However, the timing control circuit 60 detects the last hit signal at the detection timing (c) activated by the encode pulse (a) or the reset pulse (b) and the input pulse (g), and from the contact B which is the end notice signal. When the detection output signal (d) of FIG. 27 changes to the low level as shown in FIG. 27 (d), the CS1 shown in FIG. 27 (e) is an inverted signal of the detection output signal (d) to the AND circuit 128 and the flag data sense circuit 126. A signal (e) is input. For this reason, after the flag data sense circuit 126 precharges the detection line L in advance, the switch circuit 124 to which the high level signal is input from the AND circuit 128 corresponds to the word in which the register 36 holds the hit signal. The detection line L is grounded to discharge the precharged charge, while the potential of the detection line L corresponding to the word that does not hold the hit signal does not change, the precharged charge does not change, and the detection line L changes its potential opposite to the flag data in the register 36, and the output signal is determined as shown in FIG. In the flag sense output (f) shown in FIG. 27 (f), flag data having a hit signal “1” and flag data not having a hit signal are shown together.
[0245]
Then, the output signal of the flag data sense circuit 126 is taken into the flag register 18 in synchronization with the switching control signal (g), and the main priority circuit 20 and the main encode circuit 22 are used by using the flag data in successive encode cycles. Performs encoding operation according to, and outputs the encoding address. In this way, the main encoder 122 performs an encode operation in a predetermined continuous cycle and outputs an encode. Here, the switching control signal (g) is output by AND (logical product) of the inverted data of the detection output (d) and the reset (b).
[0246]
Thereafter, both the encoded block address output from the sub-encoding circuit 28 of the sub-block encoder 14 and the encoded word address from the main encoding circuit 22 of the main encoder 122 are combined as an encoded logical address. Output sequentially. When the last sub-block 32 or the sub-block 32 with the lowest priority is selected, the processing of the sub-block encoder 14 is finished, and when all the hit signals are encoded by the main encoder 122, all associative memory sub-blocks are processed. The hit signals of all 30 memory words 34 are output as logical addresses, and the match search operation is terminated.
[0247]
As described in detail above, according to the encoding circuit of the illustrated example, when performing a match search with the search data of the associative memory block of the associative memory device, among the plurality of associative memory sub-blocks constituting the associative memory block A match search result of the first associative memory sub-block, for example, a match signal (hit signal) that matches the search data in a plurality of associative memory words is held in holding means such as a register and the associative memory sub-block A block hit signal indicating the presence of an associative memory word matching the search data is generated in the block. Subsequently, the prioritized sub-block encoding circuit receives the block hit signal, selects the associative memory sub-block having the highest priority, and generates a sub-block address. Then, the hit signal of the selected highest priority sub-block (simultaneously for all words) is transferred to the coding circuit with priority. Thereafter, the coding circuit with priority order codes the hit signal with a predetermined priority order and outputs a word address. During this encoding, the associative memory sub-block of the next priority is selected by the prioritized sub-block encoding circuit, detected by the data switching timing control circuit, and the flag data of the previous priority sub-block is stored. Before the end of encoding, for example, after the hit signal to be encoded becomes the last one, the hit signal data held in the holding means such as the register of this sub-block is detected immediately after the end of encoding, and the encoding ends. At the same time, the data is input to the data holding circuit of the coding circuit with priority. Thus, after the encoding of the hit signal is completed, the encoding circuit with priority order immediately starts encoding the flag signal data of the next priority sub-block in a continuous cycle, encodes the word address Is output. The word address output and the sub-block address output are combined to output a logical address.
[0248]
Therefore, according to the encoding circuit of the illustrated example, even in an associative memory block composed of a plurality of associative memory sub-blocks, there is no time delay (waiting time) in switching between the plurality of associative memory sub-blocks. Processing becomes possible, and output signals from a large number of associative memory sub-blocks can be efficiently encoded in successive cycles. Further, according to the encoding circuit of the illustrated example, a buffer such as a prefetch circuit is not required, the area occupied on the chip can be reduced, and power consumption can be reduced.
[0249]
  As described above, the coding circuit with a prefetch circuit, which is a premise for understanding the coding circuit applied to the content addressable memory device of the present invention, and the premise for understanding the coding circuit applied to the content addressable memory device of the present invention. The semiconductor integrated circuit and the encoding circuit with the prefetch circuit and the flag data sense circuit using this as a timing control circuit are basically configured as described above, but these are not limited to the above-described embodiments. Absent. In other words, the timing circuit is applied to an encoding circuit of a content addressable memory (CAM) and is not limited to the one that detects the last one hit signal in advance, and any number of hit signals may be detected. The applied circuit may also be a memory encoding circuit such as SRAM or DRAM. The timing control circuit includes dummy circuits, but these dummy circuits are not necessarily provided. Further, the timing control circuit detects the number of hit signals ‘1’ held in the flag register 18, but may detect the number of signals ‘0’. Further, the timing control circuit detects the discharge of the signal line by the current driving unit to which the hit signal “1” is input, but conversely, the charge control by the current driving unit may be detected at the detection timing. . In this case, the difference current detection means can be configured to detect the difference current not by lowering the potentials of the two signal lines but by raising them.
[0250]
In addition, various semiconductor integrated circuits in the illustrated example may be used in combination, and these may be combined with various encoding circuits in the illustrated example.
Further, the semiconductor integrated circuit which is a premise of the present invention is not limited to the one used as the timing control circuit of the encoding circuit, but simply the signal current detection line and the reference current driving means to which at least one current driving means is connected. May be used as a sense amplifier that detects a difference current flowing in a reference current drive line to which the is connected and detects the change timing. Further, it may be used as a sense amplifier for reading a memory such as a DRAM or SRAM.
[0251]
  Next, referring to FIG. 28 and FIG. 29 with reference to the encoding circuit and the semiconductor integrated circuit, which are prerequisites for understanding the encoding circuit applied to the content addressable memory device of the present invention shown in FIGS. The encoding circuit applied to the associative memory device of the present invention will be described in detail.
[0252]
  In the associative memory device to which the encoding circuit of the present invention is applied, when the search for matching between the search data and the contents of each memory word is completed, a hit flag as a result of the match search is stored in a register corresponding to each memory word. . The hit flag stored in the register is logically ORed with all hit flags in each sub-block for each sub-block, and is held in the sub-encoder as a sub-block hit signal for each sub-block.
[0253]
In the sub-encoder, only one sub-block hit signal in the active state is sequentially output as the active state according to the priority among the sub-block hit signals of each sub-block, and the sub-block hit flag corresponding to the priority is set. While being input to the AND circuit for selection, subblock addresses corresponding to the active subblock hit signal are sequentially encoded.
[0254]
Here, under the control of the timing control circuit of the main encoder, the output signal of the AND circuit corresponding to the sub-block hit signal output as only one active state becomes active, and each register of the sub-block corresponding to this AND circuit A switch circuit corresponding to is selected. The hit flag corresponding to the selected switch circuit is output to the detection line, the hit flag output on the detection line is detected by the sense circuit, and detected by the sense circuit by the timing control signal output from the timing control circuit A hit flag is held in the main encoder.
[0255]
In the main encoder, only one hit flag in the active state is sequentially output as the active state in accordance with the priority order among the held hit flags, and the addresses of the memory words corresponding to the hit flag in the active state are sequentially encoded. It becomes.
In this way, in the encoding circuit of the present invention, the address of the memory word corresponding to the hit flag is sequentially output by combining the address of the sub block and the address of the memory word.
[0256]
  The associative memory device to which the encoding circuit of the present invention is applied has a register for storing an empty flag indicating whether the contents of the memory word are valid or invalid to be searched for coincidence. The address of the memory word corresponding to the empty flag can be sequentially output in the same manner as in the case of outputting the address of the memory word corresponding to the hit flag.
[0257]
  Hereinafter, an encoding circuit applied to an associative memory device of the present invention will be described in detail based on a preferred embodiment shown in the accompanying drawings.
[0258]
  FIG. 28 is a schematic diagram of an embodiment of an associative memory block to which the encoding circuit of the present invention is applied.
  In the figure, first, an associative memory block (hereinafter referred to as a memory block) 30 includes a plurality of associative memory sub-blocks (hereinafter referred to as sub-blocks) 32 (B1 , B2 , ..., Bn ). Each sub-block 32 includes a plurality of associative memory words (hereinafter referred to as memory words) 34 (W0, W1 , ..., Wm ) And a register 36a (R for holding the hit flag of each memory word 34 for each memory word 34)0a, R1a, ..., Rma), And a register 36b (R for holding the empty flag of each memory word 34 for each memory word 34)0b, R1b, ..., Rmb).
[0259]
Here, the hit flag indicates the result of the match search between the contents of each memory word 34 and the search data, and is held in the register 36a corresponding to each memory word 34 after the match search. In this embodiment, it is assumed that the hit flag is, for example, “1” (active state) when they match and “0” (inactive state) when they do not match.
[0260]
The empty flag indicates whether the content of the memory word 34 is valid to be searched or invalid that is not to be searched. For example, the content of the memory word 34 is erased. Sometimes, or when new data is written to the memory word 34, it is held in the register 36b corresponding to each memory word 34. Here, for example, the empty flag is “0” (inactive state) when valid data is held in the memory word 34, for example, “1” when the content of the memory word 34 is erased. (Active state).
[0261]
Although not shown, each sub-block 32 takes an OR of hit flags of all memory words 34 in each sub-block 32 and outputs this as a sub-block hit signal, and An OR circuit that takes the logical sum of the empty flags of all the memory words 34 in each sub-block 32 and outputs it as a sub-block empty signal is provided. The block empty signal is held in data latch circuits of two sub-encoders described later.
The memory block 30 is basically as described above.
[0262]
Next, the encoding circuit 10a includes a main priority encoder (hereinafter referred to as main encoder) 12a that encodes the address of the memory word 34, and two sub priority encoders (hereinafter referred to as sub encoders) that encode the address of the sub block 32. 14a and 14b, and a switch circuit (switching circuit) 124 (S) for selectively outputting hit flags or empty flags (hereinafter collectively referred to as flag data) of the sub-block 32 having the highest priority.0a, S1a, ..., Sna), 125 (S0b, S1b, ..., Snb), Sense circuit 126 (C0, C1, ..., Cm), OR circuit 127 and AND circuit (selection circuit) 128 (A1a, A2a, ..., Ana), 129 (A1b, A2b, ..., Anb).
[0263]
In the encoding circuit 10a, the main encoder 12a includes a flag register circuit 18, a main priority circuit 20, a main encoding circuit 22, and a timing control circuit 60a.
[0264]
Here, the flag register circuit 18 holds (m + 1) pieces of flag data output from the sub-block 32 having the highest priority. Of the flag data held in the flag register circuit 18, the address of the memory word 34 corresponding to the flag data in the active state is sequentially encoded. After completion of encoding, the flag data is reset to the inactive state, and after the addresses of the memory word 34 corresponding to all the flag data in the active state are encoded, the flag register circuit 18 stores the next priority sub-data. (M + 1) pieces of flag data of the block 32 are held. The flag register circuit 18 may be anything as long as it can temporarily hold (m + 1) 1-bit data and reset the data for each bit. For example, a latch or a register may be used. it can.
[0265]
The main priority circuit 20 receives (m + 1) pieces of flag data held in the flag register circuit 18 and outputs, for example, only the flag data in the active state having the highest priority as the active state. After only the flag data in the active state having the highest priority is output as the active state, the flag data of the flag register circuit 18 output as the active state is reset to the inactive state, and thereafter held in the flag register circuit 18 in the same manner. For all the flag data in the active state, only one flag data is sequentially output as the active state. The main priority circuit 20 may have a configuration in which priority circuit elements are arranged in a line as shown in FIG. 2, for example. Alternatively, as shown in FIGS. It may be a configuration with a specific arrangement.
[0266]
For example, as shown in FIG. 2, the main encoding circuit 22 is a memory word corresponding to the flag data of the highest priority order in which only one of the flag data output from the main priority circuit 20 is active. 34 addresses are encoded. The main encoding circuit 22 is not particularly limited as long as it can encode the address of the memory word 34 corresponding to only one flag data in the active state, and a conventionally known one is used. be able to.
[0267]
The timing control circuit 60a stores the number of flag data in the active state that has not yet been encoded among the flag data held in the flag register circuit 18, for example, flag data in the active state that has not yet been encoded. Detecting that it is the last one, outputting the output signals CS1 and CS2 and the timing control signal, and causing the flag register circuit 18 to hold (m + 1) flag data of the next priority sub-block It is. The timing control circuit 60a may have any configuration illustrated in FIGS. 10, 12, 15, 16, 18, 18, 19, 20, 23, or 26.
[0268]
In the main encoder 12a, of the (m + 1) flag data held in the flag register circuit 18 by the main priority circuit 20, for example, only the flag data in the active state having the highest priority is made active and outputted. The main encode circuit 22 encodes the address of the memory word 34 corresponding to the flag data with the highest priority, which is only in the active state. The encoded flag data of the highest priority active state is reset to the inactive state by the main priority circuit 20, and the flag data of the next priority active state becomes the flag data of the highest priority active state. Similarly, the addresses of the memory words corresponding to the (m + 1) pieces of flag data in the active state held in the flag register circuit 18 are sequentially encoded. The timing control circuit 60a detects that the flag data in the active state that has not been encoded yet is the last one of the (m + 1) flag data held in the flag register circuit 18. Then, the output signals CS1 and CS2 and the timing control signal are output, and (m + 1) pieces of flag data of the next priority sub-block 32 are held in the flag register circuit 18, and the above operation is repeated in the same manner. .
The main encoder 12a is basically as described above.
[0269]
Subsequently, the sub-encoder 14a encodes the address of the sub-block 32 corresponding to the hit flag, and includes a data latch circuit 24a, a sub-priority circuit 26a, and a sub-encoding circuit 28a. Similarly, the sub encoder 14b encodes the address of the sub block 32 corresponding to the empty flag, and includes a data latch circuit 24b, a sub priority circuit 26b, and a sub encode circuit 28b. Since the sub-encoders 14a and 14b have the same configuration and operation except for the difference in sub-block signals held in the data latch circuits 24a and 24b, the sub-encoder 14a is a representative example unless otherwise mentioned. explain.
[0270]
First, the data latch circuit 24a holds a total of n sub-block hit signals output from each sub-block 32.
[0271]
Here, the sub-block hit signal is a result of matching search between the search data and the contents of each memory word 34 of each sub-block 32, and the contents matching the search data are stored in the memory word 34 in each sub-block 32. In this embodiment, for example, when there is a memory word 34 in which the content matched with the search data is stored in the sub-block 32, “1” (active State), “0” (inactive state) when not present. The sub block hit signal is generated by ORing hit flags of all memory words 34 in each sub block 32 by an OR circuit (not shown) in each sub block 32.
[0272]
Of the sub-block hit signals held in the data latch circuit 24a, the addresses of the sub-blocks 32 corresponding to the active sub-block hit signals are sequentially encoded. Of the sub-block hit signals held in the data latch circuit 24a, the address of the sub-block 32 corresponding to the sub-block hit signal in the active state is sequentially encoded, and the sub-block hit signal that has been encoded is set to the inactive state. Reset.
[0273]
The data latch circuit 24b holds a total of n sub-block empty signals output from each sub-block 32.
[0274]
Here, the sub-block empty signal indicates whether or not there is an invalid memory word 34 that is not a search target in the memory word 34 in each sub-block 32. In this embodiment, for example, a sub-block empty signal is used. It is assumed that “1” (active state) is set when there is an invalid memory word 34 not to be searched in the block 32, and “0” (inactive state) when there is no invalid memory word 34. The sub-block empty signal is generated by ORing the empty flags of all the memory words 34 in each sub-block 32 by an OR circuit (not shown) in each sub-block 32.
[0275]
Of the sub-block empty signals held in the data latch circuit 24b, the addresses of the sub-blocks 32 corresponding to the active sub-block empty signals are sequentially encoded. Of the sub-block empty signals held in the data latch circuit 24b, the address of the sub-block 32 corresponding to the sub-block empty signal in the active state is sequentially encoded, and the sub-block empty signal that has been encoded is set to the inactive state. Reset.
[0276]
The data latch circuits 24a and 24b may be anything as long as they can temporarily hold n pieces of 1-bit data and can reset each bit. For example, a latch or a register can be used.
[0277]
The sub-priority circuits 26a and 26b and the encoding circuits 28a and 28b basically have the main priority circuit 20 and the main encoder 12a of the main encoder 12a except that the number of units constituting each is n instead of (m + 1). Since it has the same configuration and operation as the encoding circuit 22, detailed description thereof is omitted here.
[0278]
In the sub-encoder 14a, of the n sub-block hit signals held in the data latch circuit 24a by the sub-priority circuit 26a, for example, only the sub-block hit signal in the active state with the highest priority is made active and output. Then, the sub-encoding circuit 28a encodes the address of the sub-block 32 corresponding to the highest-priority sub-block hit signal in which only one is activated. The encoded highest priority active sub-block hit signal is reset to the inactive state by the sub-priority circuit 26a, and the next highest priority active sub-block signal becomes the highest priority active sub-block signal. In the same manner, the addresses of the sub-blocks 32 corresponding to the n active sub-block hit signals held in the data latch circuit 24a are sequentially encoded.
The sub-encoders 14a and 14b are basically as described above.
[0279]
Next, switch circuits 124 and 125, a sense circuit 126, an OR circuit 127, and AND circuits 128 and 129 for selectively outputting flag data of the highest priority sub-block 32, which is the most characteristic part of the present invention. Will be described.
[0280]
First, the switch circuit 124 has (m + 1) hit flags output from the registers 36a of the sub-block 32 with the highest priority in the detection line provided in common for the same memory word 34 of each sub-block 32. L (L0, L1, ..., Lm) For outputting to the detection line L corresponding to the memory word 34. Each switch circuit 124 is provided in a one-to-one correspondence with each register 36a of each sub-block 32, and has two N-type MOS transistors (hereinafter referred to as NMOS) 124a and 124b connected in series. A hit flag, which is an output of the register 36a, is input to the gate of the NMOS 124b, and its source is connected to the ground. The output signal of the AND circuit 128 is input to the gate of the NMOS 124a, and the drain thereof is connected to the detection line L corresponding to each memory word 34.
[0281]
In the switch circuit 124, when the hit flag is “1” and the output signal of the AND circuit 128 is “1”, both the NMOSs 124a and 124b are turned on, and the charge precharged to the detection line L is The output signal of the AND circuit 128 is discharged through the NMOSs 124a and 124b of the (m + 1) switch circuits 124 input to the gate of the NMOS 124a. On the other hand, when at least one of the hit flag and the output signal of the AND circuit 128 is “0”, at least one of the NMOS 124a and the NMOS 124b is turned off, so that the level of the detection line L remains in a precharged state. The That is, the detection line L is set to the inversion level of the hit flag input to the (m + 1) switch circuits 124 by the (m + 1) switch circuits 124 selected by the AND circuit 128 whose output signal is “1”. Become.
[0282]
The switch circuit 125 is for outputting (m + 1) empty flags output from the registers 36b of the highest priority sub-block 32 to the detection line L corresponding to the memory word 34. Note that since the configuration and operation of the switch circuit 125 are the same as those of the switch circuit 124, detailed description thereof is omitted here.
[0283]
Subsequently, the sense circuit 126 detects the level of the hit flag output to the detection line L by the switch circuit 124 or the level of the empty flag output to the detection line L by the switch circuit 125. Each sense circuit 126 is provided in a one-to-one correspondence with the detection line L, and two P-type MOS transistors (hereinafter referred to as PMOS) 126a, connected in parallel between the power source and the detection line L, 126b and an inverter 126c. The output signal of the OR circuit 127 is input to the gate of the PMOS 126a, and the output signal of the inverter 126c is input to the gate of the PMOS 126b. Further, the detection line L is input to the inverter 126c, and the output of the inverter 126c is input to the flag register circuit 18 of the main encoder 12a.
[0284]
In the sense circuit 126, when the output signal of the OR circuit 127 is “0”, the PMOS 126a is turned on, and all the detection lines L are precharged via the PMOS 126a. The level of the detection line L is inverted by the inverter 126c. When the output signal of the inverter 126c becomes “0”, the PMOS 126b is turned on, and the level of the detection line L is charged up via the PMOS 126b, and even after the output signal of the OR circuit 127 becomes “1”. It is held at “1”. If the detection line L is discharged by either the switch circuit 124 or the switch circuit 125 after the output signal of the OR circuit 127 becomes “1”, the output signal of the inverter 126c becomes “1” and the PMOS 126b is turned off. The charge-up to the detection line L is stopped. As a result, the charge precharged to the detection line L is discharged through either the switch circuit 124 or the switch circuit 125, and the output signal of the inverter 126c becomes ‘1’. On the other hand, when the detection line L is not discharged and remains in the precharged state, the output signal of the inverter 126c maintains the state of “0”. That is, the output signal of the inverter 126c, which is the output signal of the sense circuit 126, is the flag data input to the (m + 1) switch circuits 124 or the switch circuit 125 selected by the AND circuit 128 whose output signal is “1”. Equal level.
[0285]
The OR circuit 127 calculates a logical sum of the output signals CS1 and CS2 of the timing control circuit 60a of the main encoder 12a. The output signal of the OR circuit 127 becomes “0” when the output signals CS1 and CS2 of the timing control circuit 60a are both “0”, and the on / off of the PMOS 126a of all the sense circuits 126 is controlled.
[0286]
The AND circuit 128 calculates a logical product of the output signal CS1 of the timing control circuit 60a of the main encoder 12a and the output signal of the sub-priority circuit 26a of the sub-encoder 14a, and corresponds to each sub-block 32 on a one-to-one basis. Is provided. The output signal of the AND circuit 128 becomes “1” when the output signal CS1 of the timing control circuit 60a is “1” and the output signal of the sub-priority circuit 26a is “1”. (M + 1) switch circuits 124 are selected.
[0287]
The AND circuit 129 calculates a logical product of the output signal CS2 of the timing control circuit 60a of the main encoder 12a and the output signal of the sub priority circuit 26b of the sub encoder 14b. Since the configuration and operation of the AND circuit 129 are the same as those of the AND circuit 128, a detailed description thereof is omitted here.
[0288]
  Next, the operation of the encoding circuit applied to the associative memory device of the present invention will be described.
[0289]
When the match search between the search data and the contents of each memory word 34 of each sub-block 32 is completed, a hit flag is stored in each register 36 a corresponding to each memory word 34. The hit flag stored in the register 36a is logically ORed with the hit flag corresponding to all the memory words 34 for each subblock 32 by an OR circuit (not shown) in each subblock 32. A total of n sub-block hit signals output from 32 are held in the data latch circuit 24a of the sub-encoder 14a.
[0290]
In the sub-encoder 14a, of the n sub-block hit signals held in the data latch circuit 24a, only one sub-block hit signal is sequentially output as '1' in the active state according to the priority order. While being input to the AND circuit 128, the addresses of the sub blocks 32 corresponding to the sub block hit signals in the active state are sequentially encoded.
[0291]
Here, the output signal CS1 of the timing control circuit 60a of the main encoder 12a becomes “1”, and the output signal of the AND circuit 128 corresponding to the sub-block hit signal outputted as only one active state becomes “1”. The (m + 1) switch circuits 124 of the sub-block 32 corresponding to the AND circuit 128 are selected. By the selected switch circuit 124, the inversion level of the hit flag is output to the detection line L, inverted by the sense circuit 126 to be equal to the hit flag, and then the timing control signal output from the timing control circuit 60a. The (m + 1) hit flags on the detection line L are stored in the flag register circuit 18 of the main encoder 10a.
[0292]
In the main encoder 12a, only one hit flag is sequentially output as “1” in an active state according to the priority order, and the addresses of the memory words 34 corresponding to the hit flag in the active state are sequentially encoded. .
[0293]
  In the encoding circuit applied to the content addressable memory device of the present invention, the hit flag is set by combining the address of the sub block 32 output from the sub encoder 14a and the address of the memory word 34 output from the main encoder 12a. Are sequentially output as addresses of memory words corresponding to.
  The encoding circuit applied to the content addressable memory device of the present invention basically operates as described above.
[0294]
In the above embodiment, the case where the address of the memory word 34 corresponding to the hit flag is output has been described as an example. However, in the system using the associative memory, the use efficiency of the memory word 34 is improved to the maximum. Therefore, as a result of the match search, the contents of the plurality of memory words 34 that match the search data are retained, and the contents of the memory words 34 that did not match are erased, and new ones are sequentially added to the locations of the erased memory words 34. The operation of updating the contents of the memory word 34 is frequently performed by writing data.
[0295]
However, the problem at this time is that the address of the memory word 34 from which the contents are erased is randomly generated as described in the section of the prior art, so that the address of the invalid memory word 34 from which the contents are erased is managed. It is difficult.
[0296]
  In order to solve this problem, in the encoding circuit applied to the associative memory device of the present invention, first, a register 36b for storing an empty flag having the same configuration as the register 36a for storing a hit flag is provided. ing. As a result, in the same manner as when the address of the memory word 34 corresponding to the hit flag is output, the address of the invalid memory word 34 corresponding to the empty flag can be sequentially output according to the priority order. There is an advantage that the management of the memory word 34 is easy. Whether to encode the address corresponding to the hit flag or the address corresponding to the empty flag is determined by the output signals CS1 and CS2 of the timing control circuit 60a. That is, an address corresponding to the hit flag is encoded by the output signal CS1, and an address corresponding to the empty flag is encoded by the output signal CS2.
[0297]
  Further, as a result of the match search, it is necessary to output the address of the memory word 34 in which data matching the search data is stored, and to write an invalid memory word 34 address in order to write new data. Sometimes it is generally different. Based on this, in the encoding circuit applied to the associative memory device of the present invention, the detection line L to which the hit flag and empty flag are output is shared. Thereby, the layout area of the associative memory is reduced, and there is an advantage that a high-density associative memory can be formed.
[0298]
In addition, regarding the encoding of the address corresponding to the hit flag, there is a further demand for higher output. On the other hand, the main priority circuit 20 and the sub-priority circuit 26a are unnecessary under the limitation (use condition) that only the hit flag corresponding to only one memory word 34 becomes active as a result of the match search, for example. When encoding the address corresponding to the hit flag, it is expected that the operation speed of the main priority circuit 20 and the sub-priority circuit 26a is not functioned so that the operation speed is improved by about twice as compared with the conventional one. Can do.
[0299]
Here, FIG. 29 shows a code of the present invention adapted to increase the operation speed under the limitation that only the hit flag corresponding to only one memory word becomes active as a result of the match search. FIG. 3 shows a schematic diagram of another embodiment of a circuit.
The encoding circuit 10b in the illustrated example is different from the encoding circuit 10a shown in FIG. 28 in that the main encoder 12b has a select circuit 21, the timing control circuit 60b outputs an output signal CS3, and , Except that the OR circuit 130 is provided between the sub-encoder 14a and the AND circuit 128, the same components other than these three points are denoted by the same reference numerals, and detailed description thereof will be given here. Is omitted.
[0300]
That is, the encoding circuit 10b includes a main encoder 12b, sub-encoders 14a and 14b, switch circuits 124 and 125, a sense circuit 126, an OR circuit 127, an AND circuit 128, and an OR circuit 130 (O1, O2, ..., On).
[0301]
In the encoding circuit 10b, first, the main encoder 12b includes a flag register circuit 18, a main priority circuit 20, a select circuit 21, a main encode circuit 22, and a timing control circuit 60b.
[0302]
Here, the select circuit 21 selectively outputs either the flag data held in the flag register circuit 18 or the flag data output from the main priority circuit 20 under the control of the output signal CS3 of the timing control circuit 60b. Is. In the illustrated example, the select circuit 21 selectively outputs flag data output from the main priority circuit 20 when the output signal CS3 is “0”, and the main priority circuit 20 when the output signal CS3 is “1”. And the flag data held in the flag register circuit 18 is selectively output. That is, when the output signal CS3 of the timing control circuit 60b is ‘1’, the main priority circuit 20 is bypassed, and the flag data held in the flag register circuit 18 is directly input to the main encoding circuit 22.
[0303]
The timing control circuit 60b basically has the same function as the timing control circuit 60a shown in FIG. 28 except that the output signal CS3 is generated.
[0304]
Here, for example, in a network environment in which a plurality of computers are connected, each computer is uniquely identified by being given a unique network address. In a device such as a switching hub, for example, the network address of each computer and the port number of the switching hub to which the computer is connected are stored in each memory word of the associative memory, and the packet output from the transmission source computer A match search is performed using the network address of the receiving computer present in the header of the data, and the port number of the switching hub to which the receiving computer is connected is obtained. In this way, for example, when managing network addresses, the network address unique to each computer is stored in the memory word of the associative memory. Therefore, as a result of matching search, only the hit flag corresponding to one memory word is stored. A usage condition occurs that becomes active.
[0305]
As described above, the output signal CS3 output from the timing control circuit 60b is subject to the limitation (usage condition) that only the hit flag corresponding to one memory word becomes active as a result of the match search, and “1” is output only when an address corresponding to only one hit flag in the active state is encoded, and “0” is output in other cases.
[0306]
As described above, the address corresponding to only one hit flag in the active state is encoded under the limitation that only the hit flag corresponding to only one memory word is in the active state as a result of the match search. Sometimes, by setting the output signal CS3 output from the timing control circuit 60b to “1”, the hit flag held in the flag register circuit 18 of the main encoder 12b bypasses the main priority circuit 20 and the main encoding circuit 22 The address of the memory word 34 corresponding to the hit flag is encoded. For this reason, the delay due to the signal processing of the main priority circuit 20 can be eliminated, and the encoding of the address corresponding to the hit flag can be speeded up. The operation when the output signal CS3 is "0" is exactly the same as the operation of the encoding circuit 10a of the present invention shown in FIG.
[0307]
Subsequently, the OR circuit 130 calculates a logical sum of the output signal CS3 of the timing control circuit 60b of the main encoder 12b and the output signal of the sub priority circuit 26a of the sub encoder 14a, and corresponds to each sub block 32. Is provided. The output signal of the OR circuit 130 becomes ‘1’ when at least one of the output signal CS3 of the timing control circuit 60b or the output signal of the sub-priority circuit 26a is ‘1’. That is, by setting the output signal CS3 of the timing control circuit 60b to “1”, the output signal of the OR circuit 130 can be set to “1” regardless of the output signal of the sub-priority circuit 26a.
[0308]
By adding the OR circuit 130, the AND circuit 128 calculates the logical product of the output signal CS1 of the timing control circuit 60b and the output signal of the OR circuit 130. The output signals of the AND circuits 128 are all output signals of the AND circuits 128 regardless of the output signal of the sub-priority circuit 26a when both the output signal CS1 and the output signal CS3 of the timing control circuit 60b are “1”. 1 'and all switch circuits 124 of all sub-blocks 32 are selected simultaneously. The operation of the AND circuit 128 when the output signal CS3 is “0” is exactly the same as the operation of the AND circuit 128 in the encoding circuit 10a shown in FIG.
[0309]
As described above, the address corresponding to only one hit flag in the active state is encoded under the limitation that only the hit flag corresponding to only one memory word is in the active state as a result of the match search. Sometimes, by setting both the output signal CS1 and the output signal CS3 of the timing control circuit 60b to "1", the output signal of the sub-priority circuit 26a is invalidated and the output signals of all the AND circuits 128 are set to "1". be able to. As a result, the hit flag in only one active state is immediately output to the detection line L, and the address of the memory word 34 corresponding to this hit flag is encoded. For this reason, an internal delay due to signal processing in the sub-encoder 14a can be eliminated, and the encoding of the address corresponding to the hit flag can be speeded up.
[0310]
Hereinafter, the operation of the encoding circuit 10b will be briefly described.
In the encoding circuit 10b, as a result of the match search, the hit flag is stored in each register 36a corresponding to each memory word 34.
[0311]
The hit flags stored in the respective registers 36a are logically ORed with all hit flags for each sub-block 32, and used as a sub-block hit signal for each sub-block 32. Here, as a result of the match search, only one sub-block hit signal is in an active state under the limitation that only a hit flag corresponding to one memory word is in an active state. The address of the sub-block 32 corresponding to the sub-block hit signal which is only one active state is encoded.
[0312]
On the other hand, after the hit flag is stored in each register 36a, both the output signal CS1 and the output signal CS3 of the timing control circuit 60b of the main encoder 12b are set to “1”, and the output of the sub priority circuit 26a of the sub encoder 14a. Regardless of the signal, the output signals of all the AND circuits 128 become “1”, and all the switch circuits 124 are simultaneously selected. Thus, regardless of the internal operation of the sub-encoder 14a, the hit flag is immediately output to the detection line L, and the address of the memory word 34 corresponding to the hit flag which is only one active state is encoded in the main encoder 12b. The
[0313]
From the encoding circuit 10b, the memory word corresponding to the hit flag which is only one active state is obtained by combining the address of the sub block output from the sub encoder 14a and the address of the memory word output from the main encoder 12b. Is output.
[0314]
In the above embodiment, as a result of the matching search, only the hit flag corresponding to only one memory word becomes active, and the address corresponding to only one hit flag is encoded. The operation of the encoding circuit 10b of the present invention has been described by taking as an example the case of the encoding, but other operations are the same as those of the encoding circuit 10a of the present invention shown in FIG.
[0315]
As described above, according to the encoding circuit 10b of the present invention, the main priority circuit 20 of the main encoder 12b is limited under the limitation that only the hit flag corresponding to only one memory word is activated as a result of the match search. Since both the internal processing in FIG. 5 and the internal processing in the sub-priority circuit 26a of the sub-encoder 14a can be omitted, the encoding of the address of the memory word 34 corresponding to the hit flag can be speeded up. As described above, the limitation that only the hit flag corresponding to only one memory word becomes active as a result of the matching search is quite natural, for example, when managing a network address using an associative memory. Under this limitation, the speed of encoding of the address of the memory word 34 corresponding to the hit flag is very high for a user who wants to speed up the encoding of the address of the memory word 34 corresponding to the hit flag. This is desirable.
[0316]
However, with respect to the encoding of the address corresponding to the empty flag, the presence of a plurality of invalid memory words 34 in the same device of the associative memory is very likely to occur. Needless to say, 20 and the sub-priority circuit 26b cannot be omitted, and it is necessary to perform encoding after the processing by the main priority circuit 20 and the sub-priority circuit 26b.
[0317]
Although the encoding circuit of the present invention has been described in detail above, the present invention is not limited to the above embodiment.
[0318]
For example, the encoding circuits 10a and 10b of the present invention shown in FIGS. 28 and 29 are obtained by applying the present invention to the encoding circuit 120 shown in FIG. 24. Of course, the encoding circuits shown in FIGS. 10 and 11 are also applicable.
[0319]
In the above embodiment, when encoding the hit flag of the memory word, an example in which only one memory word hits and a case where a plurality of memory words hit is switched by the output signal CS3 and controlled. showed that. That is, the sub-priority circuit 26a is provided in the sub-encoder 14a in order to support the both functions and encode the hit flag. However, the present invention is not limited to this, and only one hit flag is always active. If it is limited to the case where it does not become a state, this subpriority circuit 26a becomes unnecessary, and a semiconductor chip with higher area efficiency can be designed.
[0320]
In the encoding circuits 10a and 10b of the present invention shown in FIGS. 28 and 29, the sub-encoder 14a encodes the address of the sub-block 32 corresponding to the sub-block hit signal, and the sub-encoder 14b generates the sub-block empty. Although an example in the case of encoding the address of the sub-block 32 corresponding to the signal has been shown, the present invention is not limited to this. For example, the sub-block hit signal or the sub-block empty signal is shared by sharing one sub-encoder. The address of the sub-block 32 corresponding to either one may be selectively encoded, or one data latch circuit is shared by the sub-block hit signal and the sub-block empty signal in the sub-encoders 14a and 14b. Or one sub-encoding It may be or share the circuit.
[0321]
Also, in applications where only one hit flag is always active, the select circuit 21 is omitted and a main encoder dedicated to the empty flag and a main encoder dedicated to the hit flag are provided separately for faster encoding. Is also possible. In this case, the main priority circuit 20 is not required for a main encoder dedicated to hit flags, in which only one hit flag is always active.
[0322]
In the above embodiment, the case where the address of the memory word corresponding to the hit flag in the active state is encoded has been described as an example. However, the present invention is not limited to this, for example, the hit flag in the inactive state It is also possible to encode the address of the memory word corresponding to, and similarly, the address of the memory word corresponding to the empty flag in the active state and inactive state can be encoded.
[0323]
In the above embodiment, the case where the two registers 36a and 36b for holding flag data are provided has been described as an example. However, the present invention is not limited to this. For example, the address of the memory word 34 corresponding to the hit flag. Is not necessarily provided, the register 36a for holding the hit flag is not necessarily provided, and only the register 36b for holding the empty flag may be provided. Thereby, the layout area of the associative memory can be further reduced.
[0324]
The associative memory device to which the encoding circuit of the present invention is applied may have a static circuit configuration having a register 36a for holding a hit flag and a register 36b for holding an empty flag, or a register It may have a dynamic circuit configuration without 36a and 36b.
[0325]
Also, the number and configuration of inputs of the prefetch circuit, data latch circuit, priority circuit, and encoding circuit that constitute the main encoder and sub encoder, and various combinations of circuit elements including PchMOS transistors and NchMOS transistors can be combined. Alternatively, flag data that has been encoded by the priority circuit is not reset to be in an inactive state. For example, an invalidation bit flag circuit corresponding to the flag register circuit is provided so that the priority circuit can encode the flag data. By setting the bit of the invalidation bit flag circuit corresponding to the completed flag data, it is possible to inactivate the flag data that has been encoded by the priority circuit, so that it does not depart from the gist of the present invention. To range There are, of course possible to make various improvements and modifications.
[0326]
【The invention's effect】
  As described in detail above, according to the encoding circuit applied to the associative memory device of the present invention, it is possible to sequentially output the addresses of invalid memory words corresponding to the empty flag according to the priority order. Easy management of invalid memory words. In the encoding circuit applied to the associative memory device of the present invention, since the detection lines for outputting the hit flag and the empty flag are shared, the layout area of the associative memory device is reduced, and a high-density associative memory is configured. can do.
  Further, according to the encoding circuit applied to the associative memory device of the present invention, under the limitation (usage condition) that only the hit flag corresponding to only one memory word becomes active as a result of matching search, Since the internal processing of the main priority circuit of the main encoder and the sub priority circuit of the sub encoder can be omitted, the encoding of the address of the memory word corresponding to the hit flag can be speeded up.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of an embodiment of an encoding circuit as a premise for understanding an encoding circuit applied to an associative memory device of the present invention and an associative memory block to which the encoding circuit is applied.
FIG. 2 is a configuration diagram of an embodiment of a priority-added encoding circuit with a prefetch circuit used in an encoding circuit as a premise for understanding the encoding circuit applied to the associative memory device of the present invention.
FIG. 3 is a configuration diagram of an embodiment of a priority sub-block encoding circuit used in an encoding circuit as a premise for understanding the encoding circuit applied to the content addressable memory device of the present invention;
FIG. 4 is a configuration diagram of an embodiment of a prefetch circuit used in an encoding circuit as a premise for understanding the encoding circuit applied to the content addressable memory device of the present invention.
FIG. 5 is a configuration diagram of another embodiment of a priority circuit and an encoding circuit used in an encoding circuit as a premise for understanding the encoding circuit applied to the content addressable memory device of the present invention.
6A, 6B, and 6C are schematic configuration diagrams of an embodiment of a small unit priority circuit used in the priority circuit shown in FIG.
7 is a configuration diagram of one embodiment of a logical operation circuit used in the small unit priority circuit shown in FIG. 5; FIG.
FIG. 8 is a configuration diagram of another embodiment of an encoding circuit as a premise for understanding an encoding circuit applied to an associative memory device of the present invention and an associative memory block to which the encoding circuit is applied;
FIG. 9 is a configuration diagram of another embodiment of a prioritized encoding circuit with a prefetch circuit used in an encoding circuit as a premise for understanding the encoding circuit applied to the content addressable memory device of the present invention. .
FIG. 10 is a configuration diagram of an embodiment of a timing control circuit used in an encoding circuit which is a premise for understanding the encoding circuit applied to the associative memory device of the present invention.
FIG. 11 is a time chart showing timings of respective parts of a priority-added encoding circuit with a prefetch circuit used in an encoding circuit as a premise for understanding the encoding circuit applied to the content addressable memory device of the present invention. .
FIG. 12 is a configuration diagram of another embodiment of a timing control circuit which is a semiconductor integrated circuit which is a premise for understanding an encoding circuit applied to the content addressable memory device of the present invention.
FIG. 13 shows the timing of each part of a coding circuit with priority with a prefetch circuit of a coding circuit to which a semiconductor integrated circuit as a premise for understanding the coding circuit applied to the content addressable memory device of the present invention is applied. It is a time chart which shows.
14A and 14B are graphs showing detection results of the timing circuits shown in FIGS. 12 and 10, respectively.
FIG. 15 is a configuration diagram of another embodiment of a timing control circuit which is a semiconductor integrated circuit which is a premise for understanding an encoding circuit applied to the content addressable memory device of the present invention.
FIG. 16 is a configuration diagram of another embodiment of a timing control circuit which is a semiconductor integrated circuit which is a premise for understanding an encoding circuit applied to an associative memory device of the present invention.
FIGS. 17A and 17B are graphs showing detection results of the timing circuits shown in FIGS. 15 and 10, respectively.
FIG. 18 is a configuration diagram of another embodiment of a timing control circuit to which a semiconductor integrated circuit as a premise for understanding an encoding circuit applied to the content addressable memory device of the present invention is applied.
FIG. 19 is a configuration diagram of another embodiment of a timing control circuit to which a semiconductor integrated circuit as a premise for understanding an encoding circuit applied to the content addressable memory device of the present invention is applied.
FIG. 20 is a configuration diagram of another embodiment of a timing control circuit to which a semiconductor integrated circuit as a premise for understanding an encoding circuit applied to the associative memory device of the present invention is applied.
FIG. 21 is a configuration diagram of another embodiment of a timing control circuit to which a semiconductor integrated circuit as a premise for understanding an encoding circuit applied to the content addressable memory device of the present invention is applied;
FIG. 22 shows a configuration of an embodiment of a sub-block encoding circuit component with priorities of an encoding circuit to which a semiconductor integrated circuit as a premise for understanding the encoding circuit applied to the associative memory device of the present invention is applied. FIG.
FIG. 23 is a configuration diagram of another embodiment of a timing control circuit which is a semiconductor integrated circuit which is a premise for understanding an encoding circuit applied to the content addressable memory device of the present invention.
FIG. 24 is a configuration diagram of an embodiment of an encoding circuit as a premise for understanding an encoding circuit applied to an associative memory device of the present invention and an associative memory block to which the encoding circuit is applied.
FIG. 25 is a configuration diagram of an embodiment of a prioritized encoding circuit used in an encoding circuit as a premise for understanding the encoding circuit applied to the content addressable memory device of the present invention.
FIG. 26 is a configuration diagram of an embodiment of a timing control circuit used in an encoding circuit as a premise for understanding the encoding circuit applied to the associative memory device of the present invention.
FIG. 27 is a timing chart for explaining the operation of the encoding circuit as a premise for understanding the encoding circuit applied to the content addressable memory device of the present invention;
FIG. 28 is a block diagram of an embodiment of an encoding circuit of the present invention and an associative memory block to which the encoding circuit is applied.
FIG. 29 is a configuration diagram of another embodiment of the encoding circuit of the present invention and an associative memory block to which the encoding circuit is applied.
FIG. 30 is an overall configuration diagram of an associative memory device to which a conventional encoding circuit is applied.
FIG. 31 is an overall configuration diagram of an associative memory block to which a conventional encoding circuit is applied.
[Explanation of symbols]
  10, 10a, 10b, 11, 120 Coding circuit
  12, 12a, 12b, 122, 212 Main priority encoder
  14, 14a, 14b, 214 Sub-block priority encoder
  16 Prefetch circuit
  18, 24, 24a, 24b Data latch circuit
  20 Main priority circuit
  21 Select circuit
  22 Main encoding circuit
  26, 26a, 26b Sub-priority circuit
  28, 28a, 28b Sub-encoding circuit
  30,202 associative memory block
  32,204 associative memory sub-block
  34 associative memory words
  36, 36a, 36b registers
  40,188 priority circuit elements
  42, 49, 84, 102a, 102b, 104a, 104b, 108a, 108b, 126c, 170, 172 Inverter
  44, 52, 69a, 69b, 69c, 69d, 75a, 75b, 75c, 75d, 77a, 77b, 77c, 77d, 82a, 82b, 103a, 103b, 109a, 109b, 124a, 124b, 163, 164 N-channel MOS Transistor
  46, 80a, 80b, 86, 126a, 126b, 168 P-channel MOS transistor
  48 logic operation circuit
  48b, 88, 128, 129, 166 AND circuit
  48a EXOR gate
  50,192 Address line
  54 Gate circuit
  60, 60a, 60b, 61, 90, 92, 100, 106, 110, 112, 116, 178 Timing control circuit
  62 Signal current detection line
  64 Reference current drive line
  66 Current drive circuit
  67a, 67d control transistor
  67b, 67c Signal voltage application transistor
  68 Reference current drive circuit
  70 Differential current detection circuit
  72 Precharge control signal line
  74,76 Dummy circuit
  78,83 Precharge transistor
  79 Equipotential transistor
  85 Output terminal
  87 Pulse circuit
  114, 127, 130 OR circuit
  118 Reference current control register
  124, 125, 160 switch circuit
  126 sense circuit
  162 Precharge circuit
  165 detection line
  167 Block selection line
  169 Precharge signal line
  174, 175 Latch signal line
  176 Control signal line
  180 priority circuit
  182, 184, 186 Small unit priority circuit
  190 Encoding circuit
  200 associative memory
  206 CAM subarray
  208 Hit signal register
  210 priority encoder

Claims (16)

複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロック、複数のメモリワードと、各々の前記メモリワードに1対1に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第1のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第2のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、各々の前記検出線上に出力された前記ヒットフラグまたは前記エンプティフラグを検出するセンス回路と、このセンス回路によって検出された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、1つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。
A plurality of CAM subblock, each of said content addressable memory subblocks, and a plurality of memory words, in one-to-one correspondence to each said memory words, and the contents of the memory words of the search data and each A first register that holds a hit flag that is a match search result, and a second register that holds an empty flag indicating whether or not the contents of each of the memory words are valid search targets An encoding circuit applied to an associative memory device having
A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, a sub-priority encoder that determines the priority of the associative memory sub-block, and the associative memory sub-corresponding to the sub-block hit signal of the priority determined by the sub-priority encoder or the sub-block empty signal A selection circuit for selecting a block; a switch circuit for outputting each of the hit flag or empty flag output from the associative memory sub-block selected by the selection circuit to a corresponding detection line; and each of the detections Output on line A sense circuit for detecting the hit flag or the empty flag, and the addresses of the memory words corresponding to the hit flag or the empty flag detected by the sense circuit are sequentially encoded according to the priority order. A main priority encoder ,
The main priority encoder has a flag register circuit for holding each hit flag or the empty flag, and one of the hit flags or the empty flags held in the flag register circuit according to the priority order. A main priority circuit that sequentially outputs only the hit flag or the empty flag as an active state, and an address of the memory word corresponding to the hit flag or the empty flag that is sequentially output from the main priority circuit. A main encoding circuit that sequentially encodes the address of the memory word corresponding to each of the hit flag or the empty flag held in the flag register circuit; Reset means for sequentially resetting the hit flag or the empty flag after encoding in the flag register circuit, and the sign of the address of the memory word corresponding to the hit flag or the empty flag held in the flag register circuit And an end detection means for detecting that the conversion is complete .
The main priority encoder further includes a select circuit that selectively outputs either the hit flag held in the flag register circuit or the hit flag output from the main priority circuit to the main encode circuit. Have
The hit flag is directly input from the flag register circuit to the main encoding circuit and encoded without passing through the main priority circuit, and the empty flag is encoded from the flag register circuit through the main priority circuit. An encoding circuit which inputs into a circuit and encodes.
複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロック、複数のメモリワードと、各々の前記メモリワードに1対1に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第1のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第2のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、各々の前記検出線上に出力された前記ヒットフラグまたは前記エンプティフラグを検出するセンス回路と、このセンス回路によって検出された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、1つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。
A plurality of CAM subblock, each of said content addressable memory subblocks, and a plurality of memory words, in one-to-one correspondence to each said memory words, and the contents of the memory words of the search data and each A first register that holds a hit flag that is a match search result, and a second register that holds an empty flag indicating whether or not the contents of each of the memory words are valid search targets An encoding circuit applied to an associative memory device having
A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, a sub-priority encoder that determines the priority of the associative memory sub-block, and the associative memory sub-corresponding to the sub-block hit signal of the priority determined by the sub-priority encoder or the sub-block empty signal A selection circuit for selecting a block; a switch circuit for outputting each of the hit flag or empty flag output from the associative memory sub-block selected by the selection circuit to a corresponding detection line; and each of the detections Output on line A sense circuit for detecting the hit flag or the empty flag, and the addresses of the memory words corresponding to the hit flag or the empty flag detected by the sense circuit are sequentially encoded according to the priority order. A main priority encoder ,
The main priority encoder has a flag register circuit for holding each hit flag or the empty flag, and one of the hit flags or the empty flags held in the flag register circuit according to the priority order. A main priority circuit that sequentially outputs only the hit flag or the empty flag as an active state, and an address of the memory word corresponding to the hit flag or the empty flag that is sequentially output from the main priority circuit. A main encoding circuit that sequentially encodes whether or not the encoding of the address of the memory word corresponding to each of the hit flag or the empty flag held in the flag register circuit is completed Has a disable bit flag circuit, and an end detection means for encoding the address of the memory word corresponding to the hit flag or the empty flag held in the flag register circuit detects that it has completed showing,
The main priority encoder further includes a select circuit that selectively outputs either the hit flag held in the flag register circuit or the hit flag output from the main priority circuit to the main encode circuit. Have
The hit flag is directly input from the flag register circuit to the main encoding circuit and encoded without passing through the main priority circuit, and the empty flag is encoded from the flag register circuit through the main priority circuit. An encoding circuit which inputs into a circuit and encodes.
複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロック、複数のメモリワードと、各々の前記メモリワードに1対1に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第1のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第2のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、各々の前記検出線上に出力された前記ヒットフラグまたは前記エンプティフラグを検出するセンス回路と、このセンス回路によって検出された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、1つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。
A plurality of CAM subblock, each of said content addressable memory subblocks, and a plurality of memory words, in one-to-one correspondence to each said memory words, and the contents of the memory words of the search data and each A first register that holds a hit flag that is a match search result, and a second register that holds an empty flag indicating whether or not the contents of each of the memory words are valid search targets An encoding circuit applied to an associative memory device having
A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, a sub-priority encoder that determines the priority of the associative memory sub-block, and the associative memory sub-corresponding to the sub-block hit signal of the priority determined by the sub-priority encoder or the sub-block empty signal A selection circuit for selecting a block; a switch circuit for outputting each of the hit flag or empty flag output from the associative memory sub-block selected by the selection circuit to a corresponding detection line; and each of the detections Output on line A sense circuit for detecting the hit flag or the empty flag, and the addresses of the memory words corresponding to the hit flag or the empty flag detected by the sense circuit are sequentially encoded according to the priority order. A main priority encoder ,
The main priority encoder has a flag register circuit for holding each hit flag or the empty flag, and one of the hit flags or the empty flags held in the flag register circuit according to the priority order. A main priority circuit that sequentially outputs only the hit flag or the empty flag as an active state, and an address of the memory word corresponding to the hit flag or the empty flag that is sequentially output from the main priority circuit. A main encoding circuit that sequentially encodes the address of the memory word corresponding to each of the hit flag or the empty flag held in the flag register circuit; Reset means for sequentially resetting the hit flag or the empty flag after encoding in the flag register circuit, and the sign of the address of the memory word corresponding to the hit flag or the empty flag held in the flag register circuit Timing control means for detecting in advance the timing at which all the conversion ends, and holding the hit flag or the empty flag of the next priority detected by the sense circuit in the flag register circuit ,
The main priority encoder further includes a select circuit that selectively outputs either the hit flag held in the flag register circuit or the hit flag output from the main priority circuit to the main encode circuit. Have
The hit flag is directly input from the flag register circuit to the main encoding circuit and encoded without passing through the main priority circuit, and the empty flag is encoded from the flag register circuit through the main priority circuit. An encoding circuit which inputs into a circuit and encodes.
複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロック、複数のメモリワードと、各々の前記メモリワードに1対1に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第1のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第2のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、各々の前記検出線上に出力された前記ヒットフラグまたは前記エンプティフラグを検出するセンス回路と、このセンス回路によって検出された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、1つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。
A plurality of CAM subblock, each of said content addressable memory subblocks, and a plurality of memory words, in one-to-one correspondence to each said memory words, and the contents of the memory words of the search data and each A first register that holds a hit flag that is a match search result, and a second register that holds an empty flag indicating whether or not the contents of each of the memory words are valid search targets An encoding circuit applied to an associative memory device having
A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, a sub-priority encoder that determines the priority of the associative memory sub-block, and the associative memory sub-corresponding to the sub-block hit signal of the priority determined by the sub-priority encoder or the sub-block empty signal A selection circuit for selecting a block; a switch circuit for outputting each of the hit flag or empty flag output from the associative memory sub-block selected by the selection circuit to a corresponding detection line; and each of the detections Output on line A sense circuit for detecting the hit flag or the empty flag, and the addresses of the memory words corresponding to the hit flag or the empty flag detected by the sense circuit are sequentially encoded according to the priority order. A main priority encoder ,
The main priority encoder has a flag register circuit for holding each hit flag or the empty flag, and one of the hit flags or the empty flags held in the flag register circuit according to the priority order. A main priority circuit that sequentially outputs only the hit flag or the empty flag as an active state, and an address of the memory word corresponding to the hit flag or the empty flag that is sequentially output from the main priority circuit. A main encoding circuit that sequentially encodes whether or not the encoding of the address of the memory word corresponding to each of the hit flag or the empty flag held in the flag register circuit is completed The timing of the end of the encoding of the address of the memory word corresponding to the hit flag or the empty flag held in the flag register circuit is detected in advance and detected by the sense circuit. Timing control means for causing the flag register circuit to hold the hit flag or the empty flag of the next priority ,
The main priority encoder further includes a select circuit that selectively outputs either the hit flag held in the flag register circuit or the hit flag output from the main priority circuit to the main encode circuit. Have
The hit flag is directly input from the flag register circuit to the main encoding circuit and encoded without passing through the main priority circuit, and the empty flag is encoded from the flag register circuit through the main priority circuit. An encoding circuit which inputs into a circuit and encodes.
複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロック、複数のメモリワードと、各々の前記メモリワードに1対1に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第1のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第2のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前の優先順位の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化している間に、前記検出線上に出力される次の優先順位の前記ヒットフラグまたは前記エンプティフラグを予め保持しておくプリフェッチ回路と、このプリフェッチ回路に保持されている前記前の優先順位の各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、1つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。
A plurality of CAM subblock, each of said content addressable memory subblocks, and a plurality of memory words, in one-to-one correspondence to each said memory words, and the contents of the memory words of the search data and each A first register that holds a hit flag that is a match search result, and a second register that holds an empty flag indicating whether or not the contents of each of the memory words are valid search targets An encoding circuit applied to an associative memory device having
A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, a sub-priority encoder that determines the priority of the associative memory sub-block, and the associative memory sub-corresponding to the sub-block hit signal of the priority determined by the sub-priority encoder or the sub-block empty signal A selection circuit for selecting a block, a switch circuit for outputting each hit flag or empty flag output from the content addressable memory sub-block selected by the selection circuit to a corresponding detection line, and a previous priority The hit of A prefetch circuit for pre-holding the hit flag or the empty flag of the next priority output on the detection line while encoding the address of the memory word corresponding to the lag or the empty flag; A main priority encoder that sequentially encodes the addresses of the memory words corresponding to the hit flags or empty flags of each of the previous priorities held in the prefetch circuit according to the priorities ;
The main priority encoder has a flag register circuit for holding each hit flag or the empty flag, and one of the hit flags or the empty flags held in the flag register circuit according to the priority order. A main priority circuit that sequentially outputs only the hit flag or the empty flag as an active state, and an address of the memory word corresponding to the hit flag or the empty flag that is sequentially output from the main priority circuit. A main encoding circuit that sequentially encodes the address of the memory word corresponding to each of the hit flag or the empty flag held in the flag register circuit; Reset means for sequentially resetting the hit flag or the empty flag after encoding in the flag register circuit, and the sign of the address of the memory word corresponding to the hit flag or the empty flag held in the flag register circuit And an end detection means for detecting that the conversion is complete .
The main priority encoder further includes a select circuit that selectively outputs either the hit flag held in the flag register circuit or the hit flag output from the main priority circuit to the main encode circuit. Have
The hit flag is directly input from the flag register circuit to the main encoding circuit and encoded without passing through the main priority circuit, and the empty flag is encoded from the flag register circuit through the main priority circuit. An encoding circuit which inputs into a circuit and encodes.
複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロック、複数のメモリワードと、各々の前記メモリワードに1対1に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第1のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第2のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前の優先順位の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化している間に、前記検出線上に出力される次の優先順位の前記ヒットフラグまたは前記エンプティフラグを予め保持しておくプリフェッチ回路と、このプリフェッチ回路に保持されている前記前の優先順位の各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、1つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。
A plurality of CAM subblock, each of said content addressable memory subblocks, and a plurality of memory words, in one-to-one correspondence to each said memory words, and the contents of the memory words of the search data and each A first register that holds a hit flag that is a match search result, and a second register that holds an empty flag indicating whether or not the contents of each of the memory words are valid search targets An encoding circuit applied to an associative memory device having
A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, a sub-priority encoder that determines the priority of the associative memory sub-block, and the associative memory sub-corresponding to the sub-block hit signal of the priority determined by the sub-priority encoder or the sub-block empty signal A selection circuit for selecting a block, a switch circuit for outputting each hit flag or empty flag output from the content addressable memory sub-block selected by the selection circuit to a corresponding detection line, and a previous priority The hit of A prefetch circuit for pre-holding the hit flag or the empty flag of the next priority output on the detection line while encoding the address of the memory word corresponding to the lag or the empty flag; A main priority encoder that sequentially encodes the addresses of the memory words corresponding to the hit flags or empty flags of each of the previous priorities held in the prefetch circuit according to the priorities ;
The main priority encoder has a flag register circuit for holding each hit flag or the empty flag, and one of the hit flags or the empty flags held in the flag register circuit according to the priority order. A main priority circuit that sequentially outputs only the hit flag or the empty flag as an active state, and an address of the memory word corresponding to the hit flag or the empty flag that is sequentially output from the main priority circuit. A main encoding circuit that sequentially encodes whether or not the encoding of the address of the memory word corresponding to each of the hit flag or the empty flag held in the flag register circuit is completed Has a disable bit flag circuit, and an end detection means for encoding the address of the memory word corresponding to the hit flag or the empty flag held in the flag register circuit detects that it has completed showing,
The main priority encoder further includes a select circuit that selectively outputs either the hit flag held in the flag register circuit or the hit flag output from the main priority circuit to the main encode circuit. Have
The hit flag is directly input from the flag register circuit to the main encoding circuit and encoded without passing through the main priority circuit, and the empty flag is encoded from the flag register circuit through the main priority circuit. An encoding circuit which inputs into a circuit and encodes.
複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロック、複数のメモリワードと、各々の前記メモリワードに1対1に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第1のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第2のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前の優先順位の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化している間に、前記検出線上に出力される次の優先順位の前記ヒットフラグまたは前記エンプティフラグを予め保持しておくプリフェッチ回路と、このプリフェッチ回路に保持されている前記前の優先順位の各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、1つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。
A plurality of CAM subblock, each of said content addressable memory subblocks, and a plurality of memory words, in one-to-one correspondence to each said memory words, and the contents of the memory words of the search data and each A first register that holds a hit flag that is a match search result, and a second register that holds an empty flag indicating whether or not the contents of each of the memory words are valid search targets An encoding circuit applied to an associative memory device having
A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, a sub-priority encoder that determines the priority of the associative memory sub-block, and the associative memory sub-corresponding to the sub-block hit signal of the priority determined by the sub-priority encoder or the sub-block empty signal A selection circuit for selecting a block, a switch circuit for outputting each hit flag or empty flag output from the content addressable memory sub-block selected by the selection circuit to a corresponding detection line, and a previous priority The hit of A prefetch circuit for pre-holding the hit flag or the empty flag of the next priority output on the detection line while encoding the address of the memory word corresponding to the lag or the empty flag; A main priority encoder that sequentially encodes the addresses of the memory words corresponding to the hit flags or empty flags of each of the previous priorities held in the prefetch circuit according to the priorities ;
The main priority encoder has a flag register circuit for holding each hit flag or the empty flag, and one of the hit flags or the empty flags held in the flag register circuit according to the priority order. A main priority circuit that sequentially outputs only the hit flag or the empty flag as an active state, and an address of the memory word corresponding to the hit flag or the empty flag that is sequentially output from the main priority circuit. A main encoding circuit that sequentially encodes the address of the memory word corresponding to each of the hit flag or the empty flag held in the flag register circuit; Reset means for sequentially resetting the hit flag or the empty flag after encoding in the flag register circuit, and the sign of the address of the memory word corresponding to the hit flag or the empty flag held in the flag register circuit Timing control means for detecting in advance the timing at which all the conversion ends, and holding the hit flag or the empty flag of the next priority detected by the sense circuit in the flag register circuit ,
The main priority encoder further includes a select circuit that selectively outputs either the hit flag held in the flag register circuit or the hit flag output from the main priority circuit to the main encode circuit. Have
The hit flag is directly input from the flag register circuit to the main encoding circuit and encoded without passing through the main priority circuit, and the empty flag is encoded from the flag register circuit through the main priority circuit. An encoding circuit which inputs into a circuit and encodes.
複数の連想メモリサブブロックを有し、各々の前記連想メモリサブブロック、複数のメモリワードと、各々の前記メモリワードに1対1に対応して、検索データと各々の前記メモリワードの内容との一致検索結果であるヒットフラグを保持する第1のレジスタ、および、各々の前記メモリワードの内容が一致検索の対象となる有効なものか否かを示すエンプティフラグを保持する第2のレジスタとを有する連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックの優先順位を決定するサブプライオリティエンコーダと、このサブプライオリティエンコーダによって決定された優先順位の前記サブブロックヒット信号、または、前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックを選択する選択回路と、この選択回路によって選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前の優先順位の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化している間に、前記検出線上に出力される次の優先順位の前記ヒットフラグまたは前記エンプティフラグを予め保持しておくプリフェッチ回路と、このプリフェッチ回路に保持されている前記前の優先順位の各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを優先順位に応じて順次符号化するメインプライオリティエンコーダとを有し、
前記メインプライオリティエンコーダは、各々の前記ヒットフラグまたは前記エンプティフラグを保持するフラグレジスタ回路と、このフラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグの内、優先順位に応じて、1つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。
A plurality of CAM subblock, each of said content addressable memory subblocks, and a plurality of memory words, in one-to-one correspondence to each said memory words, and the contents of the memory words of the search data and each A first register that holds a hit flag that is a match search result, and a second register that holds an empty flag indicating whether or not the contents of each of the memory words are valid search targets An encoding circuit applied to an associative memory device having
A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, a sub-priority encoder that determines the priority of the associative memory sub-block, and the associative memory sub-corresponding to the sub-block hit signal of the priority determined by the sub-priority encoder or the sub-block empty signal A selection circuit for selecting a block, a switch circuit for outputting each hit flag or empty flag output from the content addressable memory sub-block selected by the selection circuit to a corresponding detection line, and a previous priority The hit of A prefetch circuit for pre-holding the hit flag or the empty flag of the next priority output on the detection line while encoding the address of the memory word corresponding to the lag or the empty flag; A main priority encoder that sequentially encodes the addresses of the memory words corresponding to the hit flags or empty flags of each of the previous priorities held in the prefetch circuit according to the priorities ;
The main priority encoder has a flag register circuit for holding each hit flag or the empty flag, and one of the hit flags or the empty flags held in the flag register circuit according to the priority order. A main priority circuit that sequentially outputs only the hit flag or the empty flag as an active state, and an address of the memory word corresponding to the hit flag or the empty flag that is sequentially output from the main priority circuit. A main encoding circuit that sequentially encodes whether or not the encoding of the address of the memory word corresponding to each of the hit flag or the empty flag held in the flag register circuit is completed The timing of the end of the encoding of the address of the memory word corresponding to the hit flag or the empty flag held in the flag register circuit is detected in advance and detected by the sense circuit. Timing control means for causing the flag register circuit to hold the hit flag or the empty flag of the next priority ,
The main priority encoder further includes a select circuit that selectively outputs either the hit flag held in the flag register circuit or the hit flag output from the main priority circuit to the main encode circuit. Have
The hit flag is directly input from the flag register circuit to the main encoding circuit and encoded without passing through the main priority circuit, and the empty flag is encoded from the flag register circuit through the main priority circuit. An encoding circuit which inputs into a circuit and encodes.
前記ヒットフラグと前記エンプティフラグとで前記検出線を共用することを特徴とする請求項1〜8のいずれかに記載の符号化回路。Encoding circuit according to claim 1, characterized in that sharing the detecting lines and the empty flag and the hit flag. 請求項1〜9のいずれかに記載の符号化回路であって、
前記メインプライオリティエンコーダは、さらに、前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化するか、あるいは、前記ヒットフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化するのかを決定する選択手段を有することを特徴とする符号化回路。
An encoding circuit according to any one of claims 1 to 9 ,
The main priority encoder further encodes the hit flag by directly inputting the hit flag from the flag register circuit to the main encode circuit without passing through the main priority circuit, or the hit flag is input to the flag register. An encoding circuit comprising: selection means for determining whether to input and encode from the circuit to the main encoding circuit via the main priority circuit.
前記サブプライオリティエンコーダは、各々の前記連想メモリサブブロックから出力される前記サブブロックヒット信号または前記サブブロックエンプティ信号を保持するデータラッチ回路と、このデータラッチ回路に保持された各々の前記サブブロックヒット信号または前記サブブロックエンプティ信号の内、優先順位に応じて、1つの前記サブブロックヒット信号または前記サブブロックエンプティ信号だけをアクティブ状態として順次出力するサブプライオリティ回路と、このサブプライオリティ回路から順次出力されるアクティブ状態とされた前記サブブロックヒット信号または前記サブブロックエンプティ信号に対応した前記連想メモリサブブロックのアドレスを順次符号化するサブエンコード回路とを有することを特徴とする請求項1〜10のいずれかに記載の符号化回路。The sub-priority encoder includes a data latch circuit that holds the sub-block hit signal or the sub-block empty signal output from each of the content addressable memory sub-blocks, and each of the sub-block hits held in the data latch circuit. Of the signal or the sub-block empty signal, the sub-priority circuit that sequentially outputs only the one sub-block hit signal or the sub-block empty signal as an active state according to the priority order and the sub-priority circuit sequentially And a sub-encoding circuit that sequentially encodes the addresses of the associative memory sub-blocks corresponding to the sub-block hit signal or the sub-block empty signal in the active state. Encoding circuit as claimed in any one of claim 1 to 10. 前記サブプライオリティエンコーダは、各々の前記連想メモリサブブロックから出力される、ただ1つのアクティブ状態である前記サブブロックヒット信号を保持するデータラッチ回路と、このデータラッチ回路から出力される、ただ1つのアクティブ状態である前記サブブロックヒット信号に対応した前記連想メモリサブブロックのアドレスを符号化するサブエンコード回路とを有することを特徴とする請求項1〜10のいずれかに記載の符号化回路。The sub-priority encoder has a data latch circuit that outputs only one active state of the sub-block hit signal that is output from each of the associative memory sub-blocks, and only one output that is output from the data latch circuit. encoding circuit according to claim 1, characterized in that it comprises a sub-encoder circuit to encode the address of the content addressable memory sub block corresponding to the sub-block hit signal is active. 請求項1〜12のいずれかに記載の連想メモリ装置に適用される符号化回路であって、
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックを選択し、そのアドレスを符号化するサブエンコーダと、この選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前記検出線に出力された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化するメインエンコーダとを有することを特徴とする符号化回路。
An encoding circuit applied to the associative memory device according to any one of claims 1 to 12 ,
A sub-block hit signal that is a logical sum of all the hit flags in each of the associative memory sub-blocks, or a sub-block empty signal that is a logical sum of all the empty flags in each of the associative memory sub-blocks. Correspondingly, the associative memory sub-block is selected, the sub-encoder for encoding the address, and the detection flag corresponding to each of the hit flag or the empty flag output from the selected associative memory sub-block And a main encoder for encoding an address of the memory word corresponding to each of the hit flag or the empty flag output to the detection line.
前記メインエンコーダは、1つのアクティブ状態のヒットフラグに対応するメモリワードのアドレスを符号化し、アクティブ状態のエンプティフラグの内、優先順位に応じて、1つのエンプティフラグだけを順次アクティブ状態とし、このアクティブ状態のエンプティフラグに対応するメモリワードのアドレスを順次符号化することを特徴とする請求項13に記載の符号化回路。The main encoder encodes the address of a memory word corresponding to one active hit flag, and sequentially sets only one empty flag in the active state according to the priority order. 14. The encoding circuit according to claim 13 , wherein the address of the memory word corresponding to the empty flag of the state is sequentially encoded. 前記メインエンコーダは、優先順位に応じて、アクティブ状態のエンプティフラグの内、1つのエンプティフラグだけを順次アクティブ状態として出力するプライオリティ回路を有することを特徴とする請求項13に記載の符号化回路。The encoding circuit according to claim 13 , wherein the main encoder has a priority circuit that sequentially outputs only one empty flag as an active state among empty flags in an active state according to priority. 前記連想メモリ装置
さらに、各々の前記連想メモリサブブロック内の同一の前記メモリワードに各々対応して設けられ、各々の前記メモリワードに対応する前記ヒットフラグおよび各々の前記エンプティフラグのいずれかが各々共通に出力される検出線と、
各々の前記ヒットフラグまたは各々の前記エンプティフラグのいずれかを各々対応する前記検出線に出力するスイッチ回路とを有することを特徴とする請求項1〜15のいずれかに記載の符号化回路
The associative memory device includes :
Further, each of the associative memory sub-blocks is provided corresponding to the same memory word, and either the hit flag or the empty flag corresponding to the memory word is output in common. Detection line
16. The encoding circuit according to claim 1, further comprising: a switch circuit that outputs each of the hit flags or each of the empty flags to the corresponding detection line.
JP22873897A 1997-08-26 1997-08-26 Encoding circuit applied to associative memory device Expired - Fee Related JP3819120B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22873897A JP3819120B2 (en) 1997-08-26 1997-08-26 Encoding circuit applied to associative memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22873897A JP3819120B2 (en) 1997-08-26 1997-08-26 Encoding circuit applied to associative memory device

Publications (2)

Publication Number Publication Date
JPH1166867A JPH1166867A (en) 1999-03-09
JP3819120B2 true JP3819120B2 (en) 2006-09-06

Family

ID=16881055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22873897A Expired - Fee Related JP3819120B2 (en) 1997-08-26 1997-08-26 Encoding circuit applied to associative memory device

Country Status (1)

Country Link
JP (1) JP3819120B2 (en)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5774889A (en) * 1980-10-28 1982-05-11 Nippon Telegr & Teleph Corp <Ntt> Associative memory device
JP2631591B2 (en) * 1991-10-29 1997-07-16 コマツ電子金属株式会社 Semiconductor single crystal manufacturing method and manufacturing apparatus
JP3103448B2 (en) * 1992-01-10 2000-10-30 川崎製鉄株式会社 Encoding circuit
JP2728824B2 (en) * 1992-01-13 1998-03-18 川崎製鉄株式会社 Associative memory device
JP3129575B2 (en) * 1992-06-26 2001-01-31 川崎製鉄株式会社 Semiconductor integrated circuit
JP3130736B2 (en) * 1993-07-22 2001-01-31 川崎製鉄株式会社 Usage of associative memory and associative memory
JP3605168B2 (en) * 1994-02-10 2004-12-22 川崎マイクロエレクトロニクス株式会社 Associative memory
JPH08124386A (en) * 1994-10-20 1996-05-17 Kawasaki Steel Corp Associative memory

Also Published As

Publication number Publication date
JPH1166867A (en) 1999-03-09

Similar Documents

Publication Publication Date Title
US5726942A (en) Hierarchical encoder including timing and data detection devices for a content addressable memory
US5999434A (en) Hierarchical encoder including timing and data detection devices for a content addressable memory
EP1470554B1 (en) Circuit and method for reducing power usage in a content addressable memory
US7848129B1 (en) Dynamically partitioned CAM array
US6418042B1 (en) Ternary content addressable memory with compare operand selected according to mask value
US6760242B1 (en) Content addressable memory (CAM) devices having speed adjustable match line signal repeaters therein
RU2406167C2 (en) Content-addressable memory with compound parallel-serial search
US6081441A (en) Content-addressable memory
US6539455B1 (en) Method and apparatus for determining an exact match in a ternary content addressable memory device
JPH10501361A (en) Flash memory bit map addressing techniques
WO2020247505A1 (en) Sram with burst mode operation
KR100680520B1 (en) Multi-port memory cell with preset
JPH1069794A (en) Matrix memory
US7095641B1 (en) Content addressable memory (CAM) devices having priority class detectors therein that perform local encoding of match line signals
EP0858077B1 (en) Content addressable memory
JPS62146481A (en) Semiconductor memory
JPH076594A (en) Eeprom memory systematized in plurality of bit word
JP3819120B2 (en) Encoding circuit applied to associative memory device
JP3129575B2 (en) Semiconductor integrated circuit
US6879532B1 (en) Content addressable and random access memory devices having high-speed sense amplifiers therein with low power consumption requirements
US6125057A (en) Segmented source memory array
JP3421297B2 (en) Encoding circuit
US6236603B1 (en) High speed charging of core cell drain lines in a memory device
JP3103448B2 (en) Encoding circuit
US5894431A (en) Low power output block for large ROM

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060306

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060614

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090623

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100623

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110623

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110623

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120623

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees