JP3819120B2 - Encoding circuit applied to associative memory device - Google Patents
Encoding circuit applied to associative memory device Download PDFInfo
- 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
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 A1 A0 のL+1ビットのコード出力が得られるようにトランジスタ52が取り付けられる。
【0052】
すなわち、出力端子O0 からの出力線はL+1本すべてのアドレス線500 〜50L に接続されるL+1個の接地トランジスタ52のすべてのゲート電極に接続される。ここで、例えば出力端子O0 の出力が‘1’(一致信号)であり、残りはすべて‘0’である時、AL =…=A2 =A1 =A0 =0となって、(AL …A2 A1 A0 )=(0…000)を表わす。次に、2番目および3番目のワードアドレスW1 に対応する出力端子O1 およびO2 の出力線は、それぞれアドレス線500 および501 を除くL本のアドレス線501 〜50L および500 、502 〜50L に接続されるL個の接地トランジスタ52のゲート電極に接続され、出力端子O1 およびO2 のみが‘1’になった時、それぞれ(AL …A2 A1 A0 )=(0…001)および(0…010)を表わす。以下同様にしてそれぞれのコードアドレスを表わすように接地トランジスタ52が各アドレス線50に接続される。例えば、m+1=2L の時、最後の出力端子Om の出力線は、アドレス線50L のみに取り付けられる接地トランジスタ52のみに接続され、出力端子Om のみ‘1’の時、(AL …A2 A1 A0 )=(01…111)(最初のL+1桁目が‘0’で残りのL桁がすべて‘1’)を表わす。そして、すべての出力端子O0 、O1 、O2 、…、Om が‘0’の時、(AL …A2 A1 A0 )=(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 i0 <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 i0 <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 i0 <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 i0 +ios)はk0 i0 より大きく(k0 +1)i0 より小さい電流値(k0 i0 <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 i0 の電流が第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 i0 とリファレンスオフセット電流駆動回路68に流れるリファレンスオフセット電流値iosとの和(k0 i0 +ios)として与えられ、単位電流値i0 のk0 倍より大きくk0 +1倍より小さい電流値(k0 i0 <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
[0007]
In the
[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
[0009]
In the
[0010]
However, all the output signals (hit signal data) from the prioritized
[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
[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
[0041]
The
[0042]
FIG. 2 shows a configuration diagram of an embodiment of the
[0043]
The
[0044]
As shown in FIG. 2, the
[0045]
Here, NMOS transistor N1One electrode (for example, source electrode) of the0In the
[0046]
Next, a priority (priority order) assigning operation of the
[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
[0048]
Here, the
[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
[0050]
Thus, a plurality of hit signals in the hit signal data of the
[0051]
The
[0052]
That is, the output terminal O0Output lines from all L + 1
[0053]
Next, FIG. 3 shows a block diagram of an embodiment of the
[0054]
On the other hand, in the
[0055]
Here, the
[0056]
Next, FIG. 4 shows a specific circuit configuration of the
[0057]
As shown in the figure, the
[0058]
[0059]
One input terminal of the AND
[0060]
Next, the prefetch (prefetch) operation of the
First, the
[0061]
Next, the
[0062]
Subblock 32 (Bi) Is selected, and the
[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
The
[0065]
The prioritized
[0066]
The
[0067]
The
[0068]
As shown in FIG. 6A, the small
[0069]
FIG. 7 shows a specific configuration example of the
[0070]
FIGS. 6B and 6C are schematic diagrams of
[0071]
Furthermore, another upper
[0072]
Using the
[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
[0074]
Since the
[0075]
For this reason, the
[0076]
Here, since the connection between one priority circuit and two address lines is the same in each hierarchy, the
[0077]
The
[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
[0088]
The
[0089]
FIG. 9 shows a configuration diagram of an embodiment of the
[0090]
That is, in the
[0091]
Therefore, in the
[0092]
FIG. 10 shows a specific circuit diagram of an embodiment of the
[0093]
The
[0094]
Further, in the
[0095]
The
[0096]
In the
[0097]
On the other hand, the reference
[0098]
The difference
[0099]
Next, the detection operation of the
[0100]
First, prior to the detection, the precharge
[0101]
Next, the precharge
[0102]
Here, when k is larger than 2, the current ki flowing in the
[0103]
Next, as the plurality of hit signals “1” in the
[0104]
From the above, if the output signal output from the
[0105]
FIG. 11 shows a time chart of encoding timing using the
FIG. 4A shows the encoding timing of the
[0106]
In this way, while the hit signal in the same flag data held in the
[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
[0115]
In the
[0116]
In the
[0117]
On the other hand, the reference
[0118]
An output line extends from the contact B of the differential
[0119]
Next, the detection operation of the
[0120]
First, prior to the detection, the precharge
[0121]
Next, the precharge
[0122]
Here, when k is larger than 2, the current ki flowing in the
[0123]
Next, as the plurality of hit signals “1” in the
[0124]
From the above, if the output signal output from the
[0125]
Here, as described above, the
[0126]
In both the
[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
[0128]
Thus, by detecting the potential of the contact B as a detection signal and taking it out as an output signal via the
[0129]
As can be seen from the above, in the above-described differential
[0130]
However, in the
[0131]
As a result, as shown in FIG. 14B, current flows from the first and
[0132]
On the other hand, in the
[0133]
As described above, in the
[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
[0135]
14 (a) and 14 (b) show the power supply voltage (V) in the
The
[0136]
A time chart of the encoding timing of the
[0137]
In the figure, (a) represents an encode signal indicating the encode timing of the
[0138]
As described above, while the hit signal in the same flag data held in the
[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
[0146]
In the
[0147]
Here, the power supply voltage V to which the source electrode of the
[0148]
Next, the detection operation of the
[0149]
First, prior to detection, the precharge
[0150]
Next, the precharge
[0151]
Here, when k is larger than 2, the current ki flowing in the
[0152]
Next, as the plurality of hit signals “1” in the
[0153]
From the above, if the output signal output from the
[0154]
By the way, in the
[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
[0156]
Thus, by detecting the potential of the contact B as a detection signal and taking it out as an output signal via the
[0157]
As can be seen from the above, in the above-described differential
[0158]
Here, the equally precharged potentials of the contacts a and b of the
[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
[0160]
In the
[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
[0162]
However, in the
[0163]
FIGS. 17A and 17B show the circuit operation simulation waveform of the
[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
The
[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
[0172]
The
[0173]
Furthermore, in this
[0174]
[0175]
Next, the detection operation of the
[0176]
First, prior to detection, the precharge
[0177]
Next, the precharge
[0178]
Here, when k is larger than 2, the current ki flowing in the
[0179]
Thereafter, a further current flows through both
[0180]
Next, as the plurality of hit signals “1” in the
[0181]
From the above, if the output signal output from the
[0182]
As described above, by appropriately adjusting the threshold voltages of the
[0183]
The
The
[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
[0185]
In the
[0186]
Similarly to the
[0187]
At this time, when the number k of active
[0188]
Conversely, when the number k of active
[0189]
In the
[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
[0191]
Here, in the
[0192]
Further, like the
[0193]
In order to set the initial value of the
The encoding operation of the
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
[0201]
The
[0202]
The reference
[0203]
The reference unit
[0204]
On the other hand, the reference offset
[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
[0206]
The output of the AND
[0207]
Next, the detection operation of the
[0208]
First, prior to detection, one
[0209]
Next, the precharge
[0210]
Here, when k is larger than 2, the current ki flowing in the
[0211]
Next, when the detection operation of the
[0212]
From the above, when the output signal output from the
[0213]
In the
[0214]
In the above example, the unit currents flowing through both unit
The
[0215]
The
[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
[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
[0225]
In FIG. 24,
[0226]
First, the
[0227]
The
[0228]
The flag
[0229]
After this, the
[0230]
In this way, the flag
[0231]
The AND
[0232]
The
[0233]
In this embodiment, the
[0234]
By the way, the
[0235]
That is, the
[0236]
On the other hand, in the illustrated
[0237]
FIG. 26 shows a
[0238]
The
[0239]
As described above, the number of flag data hit signals “1” held in the
[0240]
On the other hand, in the
[0241]
On the other hand, in the
[0242]
Next, FIG. 27 shows an example of a timing chart of the encoding timing of the
[0243]
In the figure, (a) is an encode signal indicating the encode timing of the
[0244]
As can be seen from the figure, while the hit signal in the same flag data held in the
[0245]
Then, the output signal of the flag
[0246]
Thereafter, both the encoded block address output from the
[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
[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
[0259]
Here, the hit flag indicates the result of the match search between the contents of each
[0260]
The empty flag indicates whether the content of the
[0261]
Although not shown, each sub-block 32 takes an OR of hit flags of all
The
[0262]
Next, the
[0263]
In the
[0264]
Here, the
[0265]
The
[0266]
For example, as shown in FIG. 2, the
[0267]
The
[0268]
In the
The
[0269]
Subsequently, the sub-encoder 14a encodes the address of the sub-block 32 corresponding to the hit flag, and includes a
[0270]
First, the
[0271]
Here, the sub-block hit signal is a result of matching search between the search data and the contents of each
[0272]
Of the sub-block hit signals held in the
[0273]
The
[0274]
Here, the sub-block empty signal indicates whether or not there is an
[0275]
Of the sub-block empty signals held in the
[0276]
The data latch
[0277]
The
[0278]
In the sub-encoder 14a, of the n sub-block hit signals held in the
The sub-encoders 14a and 14b are basically as described above.
[0279]
Next,
[0280]
First, the
[0281]
In the
[0282]
The
[0283]
Subsequently, the
[0284]
In the
[0285]
The OR
[0286]
The AND
[0287]
The AND
[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
[0290]
In the sub-encoder 14a, of the n sub-block hit signals held in the
[0291]
Here, the output signal CS1 of the
[0292]
In the
[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
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
[0295]
However, the problem at this time is that the address of the
[0296]
In order to solve this problem, in the encoding circuit applied to the associative memory device of the present invention, first, a
[0297]
Further, as a result of the match search, it is necessary to output the address of the
[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
[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
[0300]
That is, the
[0301]
In the
[0302]
Here, the
[0303]
The
[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
[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
[0307]
Subsequently, the
[0308]
By adding the
[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
[0310]
Hereinafter, the operation of the
In the
[0311]
The hit flags stored in the
[0312]
On the other hand, after the hit flag is stored in each
[0313]
From the
[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
[0315]
As described above, according to the
[0316]
However, with respect to the encoding of the address corresponding to the empty flag, the presence of a plurality of
[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
[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
[0320]
In the
[0321]
Also, in applications where only one hit flag is always active, the
[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
[0324]
The associative memory device to which the encoding circuit of the present invention is applied may have a static circuit configuration having a
[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つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。 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つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。 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つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。 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つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。 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つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。 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つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了したことを検出する終了検出手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。 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つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了した後、前記フラグレジスタ回路内の符号化の終了した前記ヒットフラグまたは前記エンプティフラグを順次リセットするリセット手段と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。 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つの前記ヒットフラグまたは前記エンプティフラグだけをアクティブ状態として順次出力するメインプライオリティ回路と、このメインプライオリティ回路から順次出力されるアクティブ状態とされた前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを順次符号化するメインエンコード回路と、前記フラグレジスタ回路に保持された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が終了したか否かを示す無効化ビットフラグ回路と、前記フラグレジスタ回路に保持された前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスの符号化が全て終了するタイミングを予め検知し、前記センス回路によって検出された次の優先順位の前記ヒットフラグまたは前記エンプティフラグを前記フラグレジスタ回路に保持させるタイミング制御手段とを有し、
前記メインプライオリティエンコーダは、さらに、前記フラグレジスタ回路に保持された前記ヒットフラグ、あるいは、前記メインプライオリティ回路から出力される前記ヒットフラグのいずれかを前記メインエンコード回路に対して選択出力するセレクト回路を有し、
前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化し、前記エンプティフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化することを特徴とする符号化回路。 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.
前記メインプライオリティエンコーダは、さらに、前記ヒットフラグを、前記メインプライオリティ回路を介さず、前記フラグレジスタ回路から前記メインエンコード回路に直接入力して符号化するか、あるいは、前記ヒットフラグを、前記フラグレジスタ回路から前記メインプライオリティ回路を介して前記メインエンコード回路に入力して符号化するのかを決定する選択手段を有することを特徴とする符号化回路。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.
各々の前記連想メモリサブブロック内の全ての前記ヒットフラグの論理和であるサブブロックヒット信号、または、各々の前記連想メモリサブブロック内の全ての前記エンプティフラグの論理和であるサブブロックエンプティ信号に対応して前記連想メモリサブブロックを選択し、そのアドレスを符号化するサブエンコーダと、この選択された前記連想メモリサブブロックから出力される各々の前記ヒットフラグまたは前記エンプティフラグを各々対応する検出線に出力するスイッチ回路と、前記検出線に出力された各々の前記ヒットフラグまたは前記エンプティフラグに対応した前記メモリワードのアドレスを符号化するメインエンコーダとを有することを特徴とする符号化回路。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〜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.
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)
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 |
-
1997
- 1997-08-26 JP JP22873897A patent/JP3819120B2/en not_active Expired - Fee Related
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 |