(57)【特許請求の範囲】
【請求項１】
各格納データをそれぞれ記憶する複数のメモリワードを備え、これら複数のメモリワードそれぞれに各格納データを記憶しておき、検索データを入力し、入力された検索データに対応する格納データが記憶されたメモリワードを検索する連想メモリにおいて、
時系列的に順次入力される、前記検索データと同一ビット数もしくは前記検索データよりも少ないビット数の各単位データの集合からなる、前記検索データを含む時系列データの中から、前記各単位データをピックアップするか否かを定義するピックアップデータを格納するデータピックアップレジスタと、
前記検索データを、前記各単位データを単位として各単位毎に時系列的に格納する検索データレジスタと、
前記データピックアップレジスタに格納された前記ピックアップデータに基づいて、時系列的に順次入力されてきた前記各単位データを前記検索データレジスタに格納するか否かを制御するピックアップコントローラと、
前記検索データレジスタに格納された検索データを前記複数のメモリワードに入力して、該検索データに対応する格納データが記憶されたメモリワードを検索する検索回路とを備えたことを特徴とする連想メモリ。
【請求項２】
前記データピックアップレジスタが、時系列的に順次入力される前記各単位データに対応する、該各単位データをピックアップするか否かを示すピックアップフラグを、前記ピックアップデータとして格納するものであり、
前記ピックアップコントローラが、前記各単位データの入力と同期して前記ピックアップフラグを順次参照して、入力された前記各単位データを前記検索データレジスタに格納するか否かを制御するものであることを特徴とする請求項１記載の連想メモリ。
【請求項３】
時系列的に入力される前記各単位データの入力と同期した検索開始タイミングを定義する検索スタートデータを格納する検索スタートデータレジスタと、
前記検索スタートデータレジスタに格納された前記検索スタートデータに基づいて、前記検索回路に検索開始指令を出力する検索開始コントローラとを備えたことを特徴とする請求項１又は２記載の連想メモリ。
【請求項４】
前記検索スタートデータレジスタが、時系列的に順次入力される前記各単位データに対応する、該各単位データが入力された時点で検索を開始するか否かを示す検索スタートトリガフラグを、前記検索スタートデータとして格納するものであり、
前記検索開始コントローラが、前記各単位データの入力と同期して前記検索スタートトリガフラグを順次参照することにより検索開始指令を出力するタイミングを定めるものであることを特徴とする請求項３記載の連想メモリ。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、複数の格納データを記憶しておき、検索データを入力し、入力された検索データに対応する格納データを検索する連想メモリに関する。
【０００２】
【従来の技術】
従来より、上記のような検索機能を備えた連想メモリ（Ａｓｓｏｃｉａｔｉｖｅ  Ｍｅｍｏｒｙ，内容アドレス式メモリ；Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）が提案されている。
図２は、連想メモリの一例を表わした回路ブロック図である。
【０００３】
この連想メモリ１０には、例えば３２ビットを１ワードとする、互いに図の横方向に並ぶ３２ビットのメモリセルからなるメモリワード１１＿１，１１＿２，…，１１＿ｎが多数備えられている。またこの連想メモリ１０は、１ワードの検索データが入力されラッチされる検索データレジスタ１２および検索データをビット毎にマスクするマスクデータが格納されるマスクレジスタ１３を備え、検索データレジスタ１２にラッチされた検索データのうち、マスクレジスタ１３に格納されたマスクデータによりマスクされていない全部もしくは所定の一部のビットパターンと、各メモリワード１１＿１，１１＿２，…，１１＿ｎに記憶された格納データのうち上記ビットパターンと対応する部分のビットパターンとの一致不一致が比較され、各メモリワード１１＿１，１１＿２，…，１１＿ｎそれぞれに対応して備えられた一致線１４＿１，１４＿２，…，１４＿ｎのうちビットパターンが一致したメモリワード１１＿１，１１＿２，…，１１＿ｎに対する一致線１４＿１，１４＿２，…，１４＿ｎに論理‘１’の一致信号が出力される。それ以外の一致線１４＿１，１４＿２，…，１４＿ｎは論理‘０’にとどまる。
【０００４】
これらの一致線１４＿１，１４＿２，…，１４＿ｎに出力された信号は、各一致フラグレジスタ１５＿１，１５＿２，…，１５＿ｎに格納される。ここでは、一例として、図示のように、各一致フラグレジスタ１５＿１，１５＿２，…，１５＿ｎにそれぞれ‘０’，‘１’，‘１’，‘０’，…，‘０’，‘０’が格納されたものとする。これらの一致フラグレジスタ１５＿１，１５＿２，…，１５＿ｎに格納された信号はアドレスエンコーダ１６に入力され、このアドレスエンコーダ１６からは、論理‘１’の信号が格納された一致フラグレジスタ（ここでは一致フラグレジスタ１５＿２と一致フラグレジスタ１５＿３の２つ）のうちの優先度の最も高い一致フラグレジスタに対応するアドレス信号が出力される。ここでは、添字が若いほど優先順位が高いものとし、従ってここでは一致フラグレジスタ１５＿２に対応するメモリアドレスが出力される。このアドレスエンコーダ１６から出力されたアドレス信号ＡＤは、必要に応じてデコーダ１７に入力される。デコーダ１７ではこの入力されたアドレス信号ＡＤをデコードして各メモリワード１１＿１，１１＿２，…，１１＿ｎのそれぞれに対応して備えられたワード線１８＿１，１８＿２，…，１８＿ｎのうちの入力されたアドレス信号ＡＤに対応するいずれか１本のワード線（ここではワード線１８＿２）にアクセス信号を出力する。これによりアクセス信号の出力されたワード線１８＿２に対応するメモリワード１１＿２に記憶されているデータが出力レジスタ１９に読み出される。
【０００５】
図３は、図２に示す連想メモリ中の１つのメモリワードを表わした詳細回路図である。
このメモリワード１１は、同一構成の３２個のメモリセル１１＿１，１１＿２，…，１１＿３２から構成されている。各メモリセル１１＿１，１１＿２，…，１１＿３２には、互いの出力が互いの入力に接続された、第１インバータ２０＿１，２０＿２，…，２０＿３２と第２インバータ２１＿１，２１＿２，…，２１＿３２が備えられており、これらのインバータ２０＿１，２１＿１；２０＿２，２１＿２；…；２０＿３２，２１＿３２により各メモリセル１１＿１，１１＿２，…，１１＿３２に論理‘１’もしくは論理‘０’の１ビットの情報が記憶される。
【０００６】
また各メモリセル１１＿１，１１＿２，…，１１＿３２において、第１のインバータ２０＿１，２０＿２，…，２０＿３２の出力はトランジスタ２２＿１，２２＿２，…，２２＿３２を介してビット線２３＿１，２３＿２，…，２３＿３２と接続されており、このトランジスタ２２＿１，２２＿２，…，２２＿３２のゲートはワード線２４に接続されている。また第２のインバータ２１＿１，２１＿２，…，２１＿３２の出力はトランジスタ２５＿１，２５＿２，…，２５＿３２を介してビットバー線２６＿１，２６＿２，…，２６＿３２と接続されており、このトランジスタ２５＿１，２５＿２，…，２５＿３２のゲートもワード線２４に接続されている。さらに各メモリセル１１＿１，１１＿２，…，１１＿３２において、ビット線２３＿１，２３＿２，…，２３＿３２とビットバー線２６＿１，２６＿２，…，２６＿３２との間をつなぐように互いにシリーズに接続された２つのトランジスタ２７＿１，２８＿１；２７＿２，２８＿２；…；２７＿３２，２８＿３２が配置されており、これら２つのトランジスタ２７＿１，２８＿１；２７＿２，２８＿２；…；２７＿３２，２８＿３２のうちの一方のトランジスタ２７＿１，２７＿２，…，２７＿３２のゲートは第１のインバータ２０＿１，２０＿２，…，２０＿３２の出力、他方のトランジスタ２８＿１，２８＿２，…，２８＿３２のゲートは第２のインバータ２１＿１，２１＿２，…，２１＿３２の出力と接続されている。
【０００７】
また一致線１４０には、各メモリセル１１＿１，１１＿２，…，１１＿３２に対応して１つずつトランジスタ２９０＿１，２９０＿２，…，２９０＿３２が備えられており、それらのトランジスタ２９０＿１，２９０＿２，…，２９０＿３２は互いにシリーズに接続され、それらのトランジスタ２９０＿１，２９０＿２，…，２９０＿３２の各ゲートは、各２つのトランジスタ２７＿１，２８＿１；２７＿２，２８＿２；…；２７＿３２，２８＿３２の中点と接続されている。
【０００８】
またこの一致線１４０にはもう１つのトランジスタ２９０＿０がシリーズに接続されており、この一致線１４０の図５の左端はこのトランジスタ２９０＿０を介して接地されている。このトランジスタ２９０＿０のゲートは制御線３００に接続されている。さらにこの一致線の図５の右側にはインバータ３１０が備えられており、一致線１４０はこのインバータ３１０の出力側にも延びて各一致フラグレジスタ１５＿１，１５＿２，…，１５＿ｎ（図４参照）と接続されている。このインバータ３１０の入力と電源ＶＤＤとの間には２つのＰ型トランジスタ３２０，３３０が備えられており、それらのうちの一方のＰ型トランジスタ３２０のゲートは制御線３００と接続され、他方のＰ型トランジスタ３３０のゲートはインバータ３１０の出力と接続されている。
【０００９】
このような構造のメモリワード及びその周辺回路を備えた連想メモリにおいて、一致検索は以下のようにして行なわれる。
先ず制御線３００が論理‘０’となりＰ型トランジスタ３２０が導通状態となって一致線１４０がプリチャージされる。この際、トランジスタ２９０＿０は非導通状態となって一致線１４０が確実に接地ラインから切り離され、これにより確実にプリチャージが行なわれる。このようにして一致線１４０が先ずプリチャージされた後検索が行なわれる。
【００１０】
ここで、メモリセル１１＿１には、論理‘１’の情報が記憶されているものとする。即ちこの場合第１のインバータ２０＿１の出力側が論理‘１’、第２のインバータ２１＿１の出力側が論理‘０’の状態にある。
このメモリセル１１＿１に対して論理‘１’の検索が行なわれるものとする。即ち、ビット線２３＿１が論理‘１’、ビットバー線２６＿１が論理‘０’とされる。ワード線２４は論理‘０’のままの状態に保持されている。また制御線３００が論理‘１’となり、トランジスタ２９０＿０が導通状態となる。この場合トランジスタ２７＿１のゲートには論理‘１’の電圧が印加され、ビット線２３＿１の論理‘１’の信号がトランジスタ２９０＿１のゲートに印加され、これによりトランジスタ２９０＿１が導通状態となる。即ちメモリセル１１＿１に記憶されたビット情報とビット線２３＿１、ビットバー線２６＿１を経由して入力された検索データ中のビット情報が一致する場合に、対応するトランジスタ２９０＿１が導通状態となる。
【００１１】
また、メモリセル１１＿２には論理‘０’の情報が記憶されているものとする。この場合第１のインバータ２０＿２の出力側が論理‘０’、第２のインバータ２１＿２の出力側が論理‘１’の状態にある。
このメモリセル１１＿２に対してやはり論理‘１’の検索が行なわれるものとする。即ち、ビット線２３＿２が論理‘１’、ビットバー線２６＿２が論理‘０’とされ、制御線３００が論理‘１’とされる。この場合、トランジスタ２８＿２を経由して論理‘０’の状態にあるビットバー線２６＿２の信号がトランジスタ２９０＿２のゲートに印加され、したがってこのトランジスタ２９０＿２は非導通状態にととどまることになる。即ち不一致の場合、一致線１４にプリチャージされていた電荷はディスチャージされない。
【００１２】
また、マスクをかけたビットについては、メモリセル１１＿３２に示すように、ビット線２３＿３２、ビットバー線２６＿３２の双方とも論理‘１’とされる。この場合このメモリセル１１＿３２に論理‘１’の情報が記憶されているか論理‘０’の情報が記憶されているかに応じてトランジスタ２７＿３２もしくはトランジスタ２８＿３２のいずれかが導通状態となり、いずれの場合もトランジスタ２９０＿３２は導通状態となる。
【００１３】
このように、図３に示すメモリワードでは、メモリワードに記憶されたビットパターンとビット線２３＿１，２３＿２，…，２３＿３２、ビットバー線２６＿１，２６＿２，…，２６＿３２を経由して入力された検索データのビットパターンとが一致する（マスクのかけられたビットについては、上述のように一致しているものとみなされる）場合、一致線１４０にプリチャージされた電荷がトランジスタ２９０＿３２，…，２９０＿２，２９０＿１，２９０＿０を経由して流れ出し、これにより一致線１４０がディスチャージされ、この一致線１４０のうち図３におけるインバータ３１０の左側の部分は論理‘０’の状態となる。この論理‘０’がインバータ３１０で反転され、論理‘１’の一致信号がこのインバータ３１０から出力され、各一致フラグレジスタ１５＿１，１５＿２，…，１５＿３２（図２参照）に入力される。
【００１４】
またメモリワードに記憶されたビットパターンとビット線２３＿１，２３＿２，…，２３＿３２、ビットバー線２６＿１，２６＿２，…，２６＿３２を経由して入力された検索データのビットパターンとが不一致の場合には、一致線１４０はプリチャージによる論理‘１’の状態にとどまり、この論理‘１’がインバータ３１０で反転され、論理‘０’の不一致信号が出力される。
【００１５】
このように、図３に示すメモリワードは、検索に先立って一致線１４０がＰ型トランジスタ３２０を経由してプリチャージされ、検索により一致した場合にだけトランジスタ２９０＿０，２９０＿１，２９０＿２，…，２９０＿３２を経由してディスチャージされるように構成したため、各検索毎にディスチャージされるのは、ほとんどの場合多数の一致線のうちの極く一部であって、大部分の一致線はプリチャージされた状態にとどまり、したがって次の検索に先立ってプリチャージする必要のある一致線の本数は少なくて済み、検索に伴う消費電力が低く押えられる。
【００１６】
尚、図３に示す回路構成は一例に過ぎず、種々の構造のものが知られ、あるいは考えられている。
【００１７】
【発明が解決しようとする課題】
例えば上記のように構成された連想メモリを用いて、通信回線等を経由してきたデータをその連想メモリに入力して検索を行なうことを考える。
図４は、通信回線等を経由して送信されてきたデータの構造図である。
例えば８ビットパラレルの通信回路を経由して、各時刻ｔ１  ，ｔ２  ，ｔ３  ，…にそれぞれ８ビットの各単位データＤ１  ，Ｄ２  ，Ｄ３  ，…  が送信されてきたものとする。ところが、連想メモリにおける検索に用いられる検索データは、その検索データを３２ビットのデータとすると、典型的には４つの単位データ、例えば、図４に示す、斜線のほどこされた４つの単位データＤ２  ，Ｄ３  ，Ｄ５  ，Ｄ７  に分かれ、しかも、この図４に示すように、それらの単位データが連続しているとは限らず、図示のように不連続的に送信されてくる場合がある。
【００１８】
そのような場合、従来は、連想メモリとは別にマイクロプロセッサを備え、順次入力されてくる単位データをそのマイクロプロセッサ内部のバッファに一旦格納し、そのマイクロプロセッサで検索データを合成した後に、その合成した検索データを連想メモリに入力していた。このため、システムの複雑化、検索速度の低下を招いていた。
【００１９】
本発明は、上記事情に鑑み、上記のように検索データが複数の単位データに跨り、しかもその検索データを構成する単位データが連続して入力されないような状況が生じる場合であっても、高速検索を可能とする連想メモリを提供することを目的とする。
【００２０】
【課題を解決するための手段】
上記目的を達成する本発明の連想メモリは、各格納データをそれぞれ記憶する複数のメモリワードを備え、これら複数のメモリワードそれぞれに各格納データを記憶しておき、検索データを入力し、入力された検索データに対応する格納データが記憶されたメモリワードを検索する連想メモリにおいて、
（１）時系列的に順次入力される、検索データと同一ビット数もしくは検索データよりも少ないビット数の各単位データの集合からなる、検索データを含む時系列データの中から、各単位データをピックアップするか否かを定義するピックアップデータを格納するデータピックアップレジスタ
（２）検索データを、各単位データを単位として各単位毎に時系列的に格納する検索データレジスタ
（３）上記データピックアップレジスタに格納されたピックアップデータに基づいて、時系列的に順次入力されてきた各単位データを上記検索データレジスタに格納するか否かを制御するピックアップコントローラ
（４）上記検索データレジスタに格納された検索データを複数のメモリワードに入力して、その検索データに対応する格納データが記憶されたメモリワードを検索する検索回路
を備えたことを特徴とする。
【００２１】
ここで、上記（１）のデータピックアップレジスタが、時系列的に順次入力される各単位データに対応する、各単位データをピックアップするか否かを示すピックアップフラグを、上記ピックアップデータとして格納するものであり、上記（３）のピックアップコントローラが、各単位データの入力と同期して上記ピックアップフラグを順次参照して、入力された各単位データを上記検索データレジスタに格納するか否かを制御するものであってもよい。
【００２２】
また、上記本発明の連想メモリにおいて、上記（１）〜（４）に加え、
（５）時系列的に入力される各単位データの入力と同期した検索開始タイミングを定義する検索スタートデータを格納する検索スタートデータレジスタ
（６）検索スタートデータレジスタに格納された検索スタートデータに基づいて、上記検索回路に検索開始指令を出力する検索開始コントローラ
を備えることが好ましい。
【００２３】
ここで上記（５）の検索スタートデータレジスタが、時系列的に順次入力される各単位データに対応する、各単位データが入力された時点で検索を開始するか否かを示す検索スタートトリガフラグを、上記検索スタートデータとして格納するものであり、上記（６）の検索開始コントローラが、各単位データの入力と同期して上記検索スタートトリガフラグを順次参照することにより検索開始指令を出力するタイミングを定めるものであってもよい。
【００２４】
【作用】
本発明の連想メモリは、上記（１）のピックアップレジスタに、順次入力されてきた各単位データを、検索データもしくはその一部として、ピックアップするか否かを示すピックアップデータを格納しておき、上記（３）のピックアップコントローラにより、このピックアップデータに基づいて、順次入力されてきた各単位データを検索データレジスタに格納するか否か制御し、検索データレジスタに上記のようにして検索データを格納してその検索データを用いて検索を行なうものであり、時系列データを構成する各単位データは、検索データもしくはその一部であるか否かに拘らず順次この連想メモリに入力され、この連想メモリでは検索に必要なデータが揃った時点で検索を開始することができ、従来のように、データの配列、合成等のためのマイクロプロセッサを備える必要はなく、システムの簡単化、検索速度の向上が図られる。
【００２５】
ここで、例えば、３２ビットを１ワードとする構成の連想メモリを用いて検索を行なう場合において検索データの有効ビット数が、例えば１６ビット、２４ビット等、３２ビット未満の場合がある。本発明において、上記（５）の検索スタートデータレジスタおよび上記（６）の検索開始コントローラを備えた場合、検索スタートデータとして、検索データの有効ビット数が揃った時点を検索開始タイミングとして定義しておくことにより、検索に有効なデータが揃った時点で直ちに検索が開始され、一層の高速検索が可能となる。
【００２６】
【実施例】
以下、本発明の実施例について説明する。
図１は、本発明の連想メモリの一実施例の、本発明に特徴的な部分を示した回路ブロック図である。ここで説明する実施例は、１ワードが３２ビットの連想メモリであり、したがって検索データも３２ビットデータであるとする。またここでは、図４に示すように、各時刻ｔ１  ，ｔ２  ，…に各８ビットの単位データＤ１  ，Ｄ２  ，…が入力されるものとする。ただし、検索データとして有効な部分は、図４に示す単位データＤ２  ，Ｄ３  ，Ｄ５  の合計２４ビットであり、単位データＤ６  以降のデータ（単位データＤ７  を含む）は検索データとしては無効なデータであるとする。
【００２７】
図１に示す連想メモリには、上述した図４に示す時系列データを構成する各単位データＤｉ  が送信され、各単位データＤｉ  の送信と同期するライトイネーブル信号ＷＥ＿により、この連想メモリの内部に入力される。この連想メモリに入力された各単位データＤｉ  は、セレクタ１０１を経由して検索データレジスタ１０２に入力される。この検索データレジスタ１０２は、図２に示す検索データレジスタ１２に対応する。ただし、この検索データレジスタ１０２は、８ビットのデータを４回に分けて入力することができ、また１６ビットのデータを２回に分けて入力することもでき、３２ビットのデータを一度に入力することもできる。ここでは、通信回線を経由して入力されるデータが８ビットデータであることがあらかじめわかっており、検索データレジスタ１０２には、８ビット単位のデータが最大４回に分かれて入力される。セレクタ１０１にはプログラマブルカウンタ１０３が接続されている。このプログラマブルカウンタ１０３は、ライトイネーブル信号ＷＥ＿をカウントして、検索データの最下位の８ビットを構成する、図４に示す単位データＤ２  が入力されるタイミングでは、セレクタ１０１に入力された単位データＤ２  が検索データレジスタ１０２の最下位８ビットに入力されるようにセレクタ１０１の信号経路を切り換え、検索データの次の上位側の８ビットを構成する、図４に示す単位データＤ３  が入力されるタイミングではセレクタ１０１に入力された単位データＤ３  が検索データレジスタ１０２の次の上位側の８ビットに入力されるようにセレクタ１０１の信号経路を切り換えるものである。検索データのさらに上位側の部分についても同様である。この検索データレジスタ１０２に単位データを取り込むタイミングについては後述する。
【００２８】
検索データレジスタ１０２に検索データが格納されると、その検索データはマスクデータレジスタ１３（図２参照）を経由することにより必要に応じて部分的にマスクがかけられ、多数のメモリワード１１＿１，１１＿２，…，１１＿ｎ（図２参照）が配列されたメモリ領域１１に入力され、所定の検索開始指令を受けて、前述のようにして、検索が行なわれる。検索開始のタイミングについては後述する。
【００２９】
この連想メモリには、データピックアップレジスタ１０４が備えられている。このデータピックアップレジスタ１０４には、時系列的に順次入力される各単位データＤ１  ，Ｄ２  ，…に対応するピックアップフラグが格納されている。このピックアップフラグの格納は、この連想メモリを検索に使用する前の準備の段階で行なわれる。ここでは、データピックアップレジスタ１０４には、図示のように、右側から順に、‘０’，‘１’，‘１’，‘０’，‘１’，‘０’，‘０’，‘０’の各ピックアップフラグが格納されており、各ピックアップフラグは、この順に、各単位データＤ１  ，Ｄ２  ，…，Ｄ８  に対応している。
【００３０】
またこの連想メモリには、シフトレジスタ１０５が備えられている。このシフトレジスタ１０５には、検索のための時系列データが入力される直前に、図示のように、一番右側の１ビットのみ‘１’、他は全て‘０’となるようにプリセットされ、ライトイネーブル信号ＷＥ＿の各立ち上がりの時点で図の右から左に向けて１ビットずつデータがシフトされる。また、右から左に向けてデータがシフトされると、右側から順に‘０’が格納される。
【００３１】
データピックアップレジスタ１０４の各ビットと、シフトレジスタ１０５の各ビットは、図示のように各アンドゲート１０６＿１，１０６＿２，…，１０６＿８に入力され、それらのアンドゲート１０６＿１，１０６＿２，…，１０６＿８の出力は、全て、ノアゲート１０７に入力され、そのノアゲート１０７の出力とライトイネーブル信号ＷＥ＿がオアゲート１０８に入力され、そのオアゲート１０８の出力が、検索データレジスタ１０２にデータを取り込むためのデータ書込み信号ＩＮＷＥ＿１として検索データレジスタ１０２に入力される。検索データレジスタ１０２には、データ書込み信号ＩＮＷＥ＿１が立ち下がる毎に、セレクタ１０１を経由してきたデータが格納される。ただし以前に格納されたデータはそのまま保存される。尚、本実施例においては、シフトレジスタ１０５と、アンドゲート１０６＿１，１０６＿２，…，１０６＿８、ノアゲート１０７、およびオアゲート１０８からなる論理回路１０９との組合せが、本発明にいうデータピックアップコントローラと観念される。
【００３２】
各単位データＤ１  ，Ｄ２  ，…が順次入力されると、それと同期してライトイネーブル信号ＷＥ＿が入力される。先ず最初の単位データＤ１  が入力された時点ではデータピックアップレジスタ１０４、シフトレジスタ１０５にはそれぞれ図示のデータが格納されており、アンドゲート１０６＿１，１０６＿２，…，１０６＿８の全てから‘０’が出力され、したがってデータ書込み信号は‘１’にとどまり、したがって単位データＤ１  は検索データレジスタ１０２には取り込まれない。またシフトレジスタ１０５では、このとき入力されたライトイネーブル信号ＷＥ＿の立ち上がりの時点でデータが１ビットシフトされ、アンドゲート１０６＿２の出力が‘１’となり、ノアゲート１０７の出力が‘０’となる。ただし、オアゲート１０８にライトイネーブル信号ＷＥ＿が入力されているため、データ書込み信号は‘１’にとどまっている。
【００３３】
次に、単位データＤ２  が入力され、それと同期してライトイネーブル信号ＷＥ＿が入力されると、そのライトイネーブル信号ＷＥ＿の立ち下がりの時点でデータ書込み信号ＩＮＷＥ＿１も立ち下がり、入力された単位データＤ２  が検索データレジスタ１０２に取り込まれる。この時点では、セレクタ１０１は、プログラマブルカウンタ１０３により、セレクタ１０１に入力された単位データＤ２  を検索データレジスタ１０２の最下位（図示の右側）の８ビットに入力するように切り換えられており、したがって検索データレジスタの最下位の８ビットに単位データＤ２  が格納される。ライトイネーブル信号ＷＥ＿が立ち上がると、その時点でシフトレジスタ１０５のデータが１ビットシフトされる。以上を繰り返し、データピックアップレジスタ１０４に格納されたデータピックアップフラグに応じて、‘１’のデータピックアップフラグに対応する単位データＤ２  ，Ｄ３  ，Ｄ５  が順次検索データレジスタ１０２に取り込まれる。
【００３４】
次に、検索開始のタイミングについて説明する。
この連想メモリには、上述したデータピックアップレジスタ１０５と同一構成の、検索スタートデータレジスタ１１４が備えられており、この検索スタートデータレジスタ１１４には、検索に先立つ準備の段階で検索スタートトリガフラグが格納される。この検索スタートトリガフラグは、各ビットが各単位データＤ１  ，Ｄ２  ，…に対応しており、‘１’の検索スタートトリガフラグに対応する単位データ（図示の場合単位データＤ５  ）が入力された時点で検索が開始される。
【００３５】
またこの連想メモリには、上述したシフトレジスタ１０５と同一構成のシフトレジスタ１１５や、アンドゲート１０６＿１，１０６＿２，…，１０６＿８、ノアゲート１０７、オアゲート１０８からなる論理回路１０９と同一構成の論理回路１１９が備えられており、検索データレジスタ１０２に単位データＤ５  が取り込まれた時点で検索スタート信号ＩＮＷＥ＿２が立ち下がり、メモリ領域１１ではその検索スタート信号ＩＮＷＥ＿２の立ち下がりのタイミングで検索が開始される。尚、本実施例ではシフトレジスタ１１５と論理回路１１９との組合せが、本発明にいう検索開始コントローラと観念される。
【００３６】
したがって検索スタートデータレジスタ１１４に、検索データとして有効な部分が揃った時点で検索が開始されるように検索スタートトリガフラグを格納しておくことにより、検索データとして有効な部分（例えば図４の場合の３つの単位データＤ２  ，Ｄ３  ，Ｄ５  ）が揃うと直ちに検索が開始され、無駄な時間の発生が防止される。
【００３７】
図示の場合、検索データレジスタ１０２の上位８ビットの部分には、マスクデータレジスタ１３に格納されたマスクデータによりマスクがかけられる。尚、このマスクデータは、検索に先立つ準備の段階でマスクデータレジスタ１３に格納される。
尚、各単位データは８ビット単位であるとして説明したが、セレクタ１０１は、単位データが８ビット、１６ビット、３２ビットのいずれであっても、入力された単位データを検索データレジスタ１０２の適切な箇所へ入力するように構成されており、プログラマブルカウンタ１０３には、この連想メモリが８ビット、１６ビット、３２ビットのいずれの通信回線と接続されるかという情報があらかじめ入力され、セレクタ１０１は、プログラマブルカウンタ１０３により、その通信回線のビット数とライトイネーブル信号ＷＥ＿の入力数に応じてその信号伝達経路が切り換えられる。
【００３８】
図１に示す連想メモリは、上述のように構成されているため、従来のように、この連想メモリの外部にマイクロプロセッサを備え、順次送信されてきた単位データの中から検索データを抽出してこの連想メモリに入力するという煩雑な手順は不要であり、順次送信されてきた単位データをそのままこの連想メモリに入力するだけで検索データが抽出され、検索データの有効部分が揃った時点で直ちに検索が開始される。このように、この連想メモリによれば、システムの簡単化、検索の高速化が図られる。
【００３９】
尚、図１に示す連想メモリは、データピックアップレジスタ１０５、検索スタートデータレジスタ１０２として８ビットの構成のものを示したが、それらのビット数は時系列データとの関連で定められるものであり、実際は、例えば６４ビット程度のものが備えられる。
また、データピックアップレジスタ１０４および本実施例ではシフトレジスタ１０５と論理回路１０９との組合せからなる、本発明にいうピックアップコントローラは、図１に図示した構成のものに限られるものではなく、データピックアップレジスタは、順次入力されてくる各単位データをピックアップするか否かを定義するピックアップデータを格納するものであればよく、また、ピックアップコントローラは、そのピックアップデータに基づいて、順次入力されてきた各単位データを検索データレジスタに格納するか否かを制御するものであればよい。
【００４０】
また、検索スタートデータレジスタ１１４、および、本実施例ではシフトレジスタ１１５と論理回路１１９との組合せからなる、本発明にいう検索開始コントローラについても同様であり、それらは図１に図示した構成のものに限られるものではなく、検索スタートデータレジスタは、順次入力されてくる各単位データの入力と同期した検索開始タイミングを定義する検索スタートデータを格納するものであればよく、検索開始コントローラは、その検索スタートデータに基づいて検索開始指令を出力するものであればよい。
【００４１】
【発明の効果】
以上説明したように、本発明によれば、順次入力されてくる単位データをそのまま入力するだけで検索が行われ、システム構成が簡単化されるとともに高速検索が可能となる。
【図面の簡単な説明】
【図１】本発明の連想メモリの一実施例の、本発明に特徴的な部分を示した回路ブロック図である。
【図２】連想メモリの一例を表わした回路ブロック図である。
【図３】図２に示す連想メモリ中の１つのメモリワードを表わした詳細回路図である。
【図４】通信回路等を経由して送信されてきたデータの構造図である。
【符号の説明】
１０  連想メモリ
１１  メモリ領域
１１＿１，１１＿２，…，１１＿ｎ  メモリワード
１２  検索データレジスタ
１３  マスクデータレジスタ
１０１  セレクタ
１０２  検索データレジスタ
１０３  プログラマブルカウンタ
１０４  データピックアップレジスタ
１０５  シフトレジスタ
１０９  論理回路
１１４  検索スタートレジスタ
１１９  論理回路
【図１】
0003597881.tif 000002
【図２】
0003597881.tif 000003
【図３】
0003597881.tif 000004
【図４】
0003597881.tif 000005