JPH09180469A - 連想記憶装置 - Google Patents

連想記憶装置

Info

Publication number
JPH09180469A
JPH09180469A JP7334744A JP33474495A JPH09180469A JP H09180469 A JPH09180469 A JP H09180469A JP 7334744 A JP7334744 A JP 7334744A JP 33474495 A JP33474495 A JP 33474495A JP H09180469 A JPH09180469 A JP H09180469A
Authority
JP
Japan
Prior art keywords
data
register
stored
code
address
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.)
Withdrawn
Application number
JP7334744A
Other languages
English (en)
Inventor
Tomoharu Ichikawa
智治 市川
Yutaka Aoki
裕 青木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Asahi Kasei Microsystems Co Ltd
Asahi Kasei Microdevices Corp
Original Assignee
Asahi Kasei Microsystems Co Ltd
Asahi Kasei Microdevices Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Asahi Kasei Microsystems Co Ltd, Asahi Kasei Microdevices Corp filed Critical Asahi Kasei Microsystems Co Ltd
Priority to JP7334744A priority Critical patent/JPH09180469A/ja
Publication of JPH09180469A publication Critical patent/JPH09180469A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】大容量の連想記憶装置を高速検索を可能としな
がら低消費電力とする。 【解決手段】ワード単位のメモリセルMC1 〜MCm
有するワードデータ記憶部WM1 〜WMn に例えばデー
タ圧縮アルゴリズムによって構築される動的辞書を表す
ストリングテーブルを検索対象データとしてワード単位
で格納し、このストリングテーブルをΩレジスタ3a及
びKレジスタ3bに保持された検索データをもとに参照
して、検索データと検索対象データとの一致を一致検出
回路CC1〜CCn でワード毎に独立に検出する。この
とき、検索対象データ絞り込み回路DS1 〜DSn でΩ
レジスタ3aの検索データにおける例えば最下位の1ビ
ットデータとこれに該当するメモリセルMCK のビット
データとを比較し、両者が一致するワードデータ記憶部
に対応する一致検出回路のみをアクティブ状態に制御す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、入力された検索デ
ータに基づいて多数の検索対象データを検索して同一又
は類似のデータの有無を出力する連想記憶装置に係り、
特に検索データに基づいて検索対象データを絞り込むこ
とができる連想記憶装置に関する。
【0002】
【従来の技術】従来のデータ検索機能を有する連想記憶
装置(CAM:Content AddressableMemory)として
は、例えば図9に示す構成のものが提案されている。こ
の従来例は、所定ビット数m(例えばm=32)のワー
ドデータでなる検索対象データを記憶する所定数n(例
えばn=128)のワードデータ記憶部WM 1 〜WMn
が並列に設けられ、各ワードデータ記憶部WM1 〜WM
n にはワードデータを記憶する所定ビット数に対応する
数のメモリセルMC1 〜MCm を有し、これら各メモリ
セルMC1 〜MCm はワード線W1 〜Wn によって活性
化されると共に、記憶データが検索データに対応するワ
ードを表すビット線B1 〜Bmによって読出される。
【0003】そして、各ビット線B1 〜Bm 及び各ワー
ドデータ記憶部WM1 〜WMn のメモリセルMC1 〜M
m から読出されたビットデータが一致検出回路CC1
〜CCn に供給されて一致判断が行われる。これら一致
検出回路CC1 〜CCn は、入力される共通の回路動作
信号線SC がアクティブであるときに各ビット線B1
m 及びメモリセルMC1 〜MCm の一致検出を行い、
ワード内の全てのビット線B1 〜Bm 及びメモリセルM
1 〜MCm のビットデータが一致したときに一致信号
線C1 〜Cn がアクティブとなる。
【0004】この構成によれば、予め各ワードデータ記
憶部WM1 〜WMn に検索対象データを格納しておき、
この状態で、検索を行う場合には、先ず各ワード線W1
〜W n をアクティブ状態とすると共に、ビット信号線B
1 〜Bm に検索データの各ビットを設定した状態で、回
路動作信号線SC をアクティブ状態とすることにより、
検索データとワードデータ記憶部WM1 〜WMn に格納
されている検索対象データとが一致した一致検出回路C
i (i=1,2……n)がアクティブ状態となって、
検索対象データから検索データと一致するデータを抽出
することができる。
【0005】
【発明が解決しようとする課題】しかしながら、上記従
来の連想記憶装置にあっては、各ワードデータ記憶部W
1 〜WMn 毎に一致検出回路CC1 〜CCn を有する
ので、一度の検索で検索対象データの全ワードを同時に
一致検出することができ、高速検索が可能であるが、全
ての一致検出回路CC1 〜CCn が同時に動作状態とな
るため、大容量の連想記憶装置においては消費電流が非
常に大きなものとなってしまうという未解決の課題があ
る。
【0006】そこで、本発明は、上記従来例の未解決の
課題に着目してなされたものであり、高速検索を可能と
しながら低消費電力とすることができる大容量の連想記
憶装置を提供することを目的としている。
【0007】
【課題を解決するための手段】上記目的を達成するため
に、請求項1に係る連想記憶装置は、入力された検索デ
ータに基づいてメモリセルアレイに格納された多数の検
索対象データを検索して同一又は類似のデータの有無を
出力する連想記憶装置において、前記検索データの一部
と検索対象データの一部とを比較して検索すべき検索対
象データを絞り込む検索対象絞り込み手段と、該検索対
象絞り込み手段で絞り込んだ前記検索対象データを検索
するデータ検索手段とを備えたことを特徴としている。
【0008】この請求項1の発明においては、検索対象
データ絞り込み手段で予め検索データの一部と検索対象
データの一部とを比較して検索すべき検索対象データを
絞り込み、この絞り込まれた検索対象データについての
みデータ検索手段で検索することにより、データ検索手
段に含まれる一致検出回路の動作数を限定して省電力化
を図る。
【0009】また、請求項2に係る連想記憶装置は、請
求項1の発明において、前記メモリセルアレイには、デ
ータ圧縮アルゴリズムによって検索データに対して過去
の文字列に専用のアドレスを割当てて辞書形式で登録さ
れる動的辞書が格納されていることを特徴としている。
この請求項2の発明においては、データ圧縮アルゴリズ
ムによってメモリセルアレイに構築される動的辞書の検
索範囲の絞り込みを簡単な構成で正確に行うことができ
る。
【0010】
【発明の実施の形態】以下、本発明の実施形態を図面に
基づいて説明する。図1は本発明の一実施形態を示すブ
ロック図である。図中、1は連想記憶装置であって、所
定ビット数m(例えばm=32)のワードデータでなる
検索対象データを記憶する所定数n(例えばn=12
8)のワードデータ記憶部WM1 〜WMn が並列に設け
られてメモリセルアレイが構成され、各ワードデータ記
憶部WM1 〜WMn にはワードデータを記憶する所定ビ
ット数に対応する数のメモリセルMC1 〜MCm を有
し、これら各メモリセルMC1 〜MCm はワード線W1
〜Wn によって活性化されると共に、記憶データが検索
データに対応するワードを表すビット線B1 〜Bm によ
って読出される。
【0011】ここで、ワードデータ記憶部WM1 〜WM
n のメモリセルMC1 〜MCm は、後述するデータ圧縮
アルゴリズムにおけるストリングテーブルに対応してお
り、メモリセルMC1 〜MCK (例えばk=16)でΩ
データを格納し、MCK+1 〜MCm でKデータを格納す
るように構成されている。また、ビット線B1 〜BK
Ωレジスタ3aに接続され、ビット線BK+1 〜B m はK
レジスタ3bに接続されている。
【0012】さらに、ワード線W1 〜Wn はワード線選
択回路4に接続されており、このワード線選択回路4で
ワードデータ記憶部WM1 〜WMn へのデータの格納時
にはテーブルポインタTP で指定される1つのワード線
i (i=1,2,……n)が選択されてアクティブ状
態となると共に、データの読出時には各ワード線W1
n の全てが選択されてアクティブ状態となる。
【0013】そして、各ビット線B1 〜Bm 及び各ワー
ドデータ記憶部WM1 〜WMn のメモリセルMC1 〜M
m から読出されたビットデータがデータ検索手段とし
ての一致検出回路CC1 〜CCn に供給されて一致判断
が行われる。これら一致検出回路CC1 〜CCn は、入
力される回路動作信号線SC1〜SCnがアクティブである
ときに各ビット線B1 〜Bm 及びメモリセルMC1 〜M
m の一致検出を行い、ワード内の全てのビット線B1
〜Bm 及びメモリセルMC1 〜MCm のビットデータが
一致したときに一致信号線C1 〜Cn がアクティブとな
る。
【0014】一方、一致検出回路CC1 〜CCn に入力
される回路動作信号線SC1〜SCnは、検索対象データ絞
り込み手段としての検索対象データ絞り込み回路DS1
〜DSn に接続されている。この検索対象データ絞り込
み回路DS1 〜DSn の夫々は、出力側が回路動作信号
線SC1〜SCnに接続され且つ一方の入力側に共通の検出
回路動作信号線SCCが接続されたアンド回路ANDと、
このアンド回路ANDの他方の入力側に接続された反転
出力端子を有する排他的論理和回路EXOとを備えてい
る。排他的論理和回路EXOの一方の入力側にはΩレジ
スタ3aの最下位の1ビットデータがビット線BX を介
して入力され、他方の入力側にΩレジスタ3aの最下位
の1ビットに対応するワードデータ記憶部WM1 〜WM
n のメモリセルMCK のビットデータがデータ線DX1
Xnを介して入力されている。
【0015】次に、上記連想記憶装置1を使用するデー
タ圧縮アルゴリズムの1つであるDCLZ(Data Compr
ession Limpel Ziv )アルゴリズム処理を図2を伴って
説明する。このDCLZアルゴリズムでは、検索データ
に対して過去の文字列に専用のコードを割当てて辞書形
式で登録する動的辞書を作成するようにしている。この
処理は、先ずステップS1で、ストリングテーブルの初
期化を行う。この初期化は、入力される全てのシングル
バイトストリング(非圧縮データバイト)をメモリに記
憶する。このとき、各データが記憶されているアドレス
をエントリーアドレスADDと称す。
【0016】次いで、ステップS2に移行して、非圧縮
データの最初の入力バイトのエントリーアドレスADD
をΩレジスタ3aに格納する。次いで、ステップS3に
移行して、現在の非圧縮データの入力バイトに続く入力
バイトが存在するか否かを判定する。ここで、続く入力
バイトが存在しないときには、ステップS4に移行して
最終ストリングを表すコードを出力して処理を終了し、
続く入力バイトが存在する場合には、ステップS5に移
行する。
【0017】このステップS5では、続く入力バイトを
Kレジスタ3bに格納してからステップS6に移行し、
ストリングΩKがストリングテーブルに存在するか否か
を判定する。この判定は、検索データΩKと検索対象デ
ータとの一致検出を行うもので、一致するデータが存在
しない場合は、ステップS7に移行してΩレジスタ3a
に格納されているエントリーアドレスADDを出力し、
次いでステップS8に移行して新たにストリングΩKを
ストリングテーブルに追加する。つまり、ストリングΩ
Kが新たな記憶データとなる。また、このとき出力され
るエントリーアドレスADDが、圧縮データとなる。
【0018】次いで、ステップS9に移行して、Kレジ
スタ3bに格納されている入力バイトのエントリーアド
レスADDをΩレジスタ3aに入力してからステップS
3に戻る。一方、ステップS6の判定結果が、ストリン
グΩKと一致するデータが存在するものであるときに
は、ステップS10に移行して、ストリングΩKのエン
トリーアドレスADDをΩレジスタ3aに格納してから
前記ステップS3に戻る。
【0019】以上のようなDCLZアルゴリズム処理を
使用して文字データの圧縮を行う場合を図3について説
明する。この図3では、a,b,cの3文字で構成され
た文字列「abcabcacacb」をデータ圧縮する
場合を説明する。ここで、図3(a)は、入力バイト、
Kレジスタ及びΩレジスタ、出力コードの内容を夫々表
し、図3(b)はメモリセルアレイ2に構築される辞書
の内容がアドレスに対してKレジスタの内容及びΩレジ
スタの内容とが対応付けられて表されている。
【0020】先ず、図2の処理が実行開始されると、先
ずステップS1で辞書の初期化が行われ、図3(b)に
示すように、アドレス“1”に対応するK記憶領域に
「a」、アドレス“2”に対応するK記憶領域に「b」
及びアドレス“3”に対応するK記憶領域に「c」が夫
々格納され、Ω記憶領域にはなにも格納されない。次い
でステップS2に移行して、先頭の入力バイト「a」に
対応する辞書のアドレス“1”がΩレジスタに書込まれ
る。
【0021】次いで、続く入力バイト「b」が存在する
ので、ステップS3からステップS5に移行して、入力
バイト「b」をKレジスタに書込み、次いでステップS
6に移行して両レジスタに書込まれたデータ「b,1」
が辞書内にあるか否かを判定し、辞書内に存在しないの
で、ステップS7に移行して、Ωレジスタのアドレスデ
ータ「1」を出力コードとして出力し、次いでステップ
S8で辞書の終端即ちアドレス“4”に対応するK記憶
領域に「b」をΩ記憶領域に「1」を夫々格納し、次い
でステップS9でKレジスタの内容「b」に対応する辞
書のアドレス“2”をΩレジスタ3aに格納してからス
テップS3に戻る。
【0022】ここで、続く入力バイト「c」が存在する
ことにより、前記と同様にステップS5に移行して、入
力バイト「c」をKレジスタに書込み、次いでステップ
S6に移行して、両レジスタに書込まれている「c,
2」が辞書内に存在するか否かを判定し、この場合も辞
書内に「c,2」が存在しないので、ステップS7に移
行して、Ωレジスタの内容“2”を出力コードとして出
力し、次いでステップS8に移行して辞書のアドレス
“5”に対応するK記憶領域に「c」を、Ω記憶領域に
「2」を夫々記憶し、次いでステップS9に移行してK
レジスタの内容「c」に対応する辞書のアドレス“3”
をΩレジスタに格納してから前記ステップS3に戻る。
【0023】このステップS3でも、続く入力バイト
「a」が存在することにより、これをKレジスタに格納
し、且つ「a,3」が辞書に存在しないことにより、こ
れを辞書のアドレス“6”に格納し、“3”を出力コー
ドとして出力し、Kレジスタに格納されている「a」に
対応する辞書のアドレス“1”をΩレジスタに格納して
からステップS3に戻る。
【0024】この場合も続く入力バイト「b」が存在す
ることから、これをKレジスタに格納し、「b,1」が
辞書に格納されているか否かを判定する。この場合に
は、辞書のアドレス“4”に「b,1」が格納されてい
るので、ステップS10に移行して、アドレス“4”を
Ωレジスタに格納してからステップS3に戻る。ここで
も、続く入力バイト「c」が存在するので、これをKレ
ジスタに格納すると共に、「c,4」が辞書にないの
で、“4”を出力コードとして出力すると共に、辞書の
アドレス“7”に「c,4」を格納し、且つKレジスタ
の内容「c」に対応するアドレス“3”をΩレジスタに
格納してからステップS3に戻る。
【0025】このように順次図2の処理を繰り返すこと
により、図3(a)に示すように出力コードが出力され
ると共に、図3(b)に示すように辞書が構築される。
次に、上記DCLZアルゴリズム処理を行う実施形態の
動作を図4〜図6を用いて簡単に説明する。これらの図
4〜図6では、Ωレジスタ3a及びKレジスタ3bに検
索データを保持すると共に、ストリングテーブルSTに
検索対象データを配置し、Ωレジスタ3a及びKレジス
タ3bに保持された検索データと完全に一致するものが
ストリングテーブルST中に存在するか否かを調べるこ
とを検索という。
【0026】図4〜図6の例では、ワードデータ記憶部
WM1 〜WMn には、アドレスとして“0”からADD
MAX までが設定され、テーブルポインタ(Table Ptr)は
ストリングテーブルの構築範囲の次の書込アドレスAW
又はAW+1 即ち未構築範囲の先頭アドレスを常に示して
おり、さらにワードデータ記憶部WM1 〜WMn のスト
リングテーブル構築範囲内におけるアドレスADD1
はデータΩ1 及びK1が既に書込まれているものとす
る。
【0027】そして、先ず図4に示すように、Ωレジス
タ3aにデータΩ1 が設定され、Kレジスタ3bにデー
タK1 が設定されると、これらデータΩ1 及びK1 の組
をストリングテーブルST上で検索する(ステップS
6)。このとき、ワード線選択回路4で全てのワード線
1 〜Wn をアクティブ状態とすると共に、共通の検出
回路動作信号線SCCをアクティブ状態とする。
【0028】このため、検索対象データ絞り込み回路D
1 〜DSn では、Ωレジスタに設定されているデータ
Ω1 の最下位の1ビットがビット線BX を介して排他的
論理和回路EXOに入力されていることにより、このデ
ータΩ1 の最下位ビットデータと等しいビットデータを
記憶しているメモリセルMCK を有するワードデータ記
憶部WM1 〜WMn に対応する検索対象データ絞り込み
回路DS1 〜DSn の排他的論理和回路EXOの出力の
みがアクティブ状態となり、これに応じて対応するアン
ド回路ANDの出力がアクティブ状態となることによ
り、対応する回路動作信号線SC1〜SCnがアクティブ状
態となって、一致検出回路CC1 〜CCnの絞り込みが
行われる。
【0029】したがって、図4で例えばアドレスADD
1 にはデータΩ1 が格納されているので、このアドレス
ADD1 に対応するワードデータ記憶部WMj (j=
1,2……n)に対応する一致検出回路CCj が動作状
態となると共に、他のデータΩ 1 の最下位ビットに一致
するビットデータを格納している一致検出回路CC1
CCn も動作状態となる。
【0030】この結果、ワードデータ記憶部WM1 〜W
n の内検索データΩ1 の最下位ビットと一致するデー
タを格納しているワードデータ記憶部に対応する一致検
出回路CC1 〜CCn のみが動作状態となり、他の一致
検出回路は非動作状態を維持することになるので、消費
電流を大幅に減少させることができる。この検索によっ
て、ストリングテーブルSTのアドレスADD1 に既に
データΩ1 及びK1 の組が書込まれているので、一致検
出回路CCj から検索データと検索対象データの一致を
表す一致信号線Cj がアクティブ状態となって、一致デ
ータを検出することができる。
【0031】このように一致が検出されたときには、ス
トリングテーブルSTに新たなデータは追加されないの
で、テーブルポインタTP の指すアドレスは変化せずそ
のまま維持される。そして、検索データに一致する検索
対象データが検出されると、図5に示すように、該当す
る検索対象データのアドレスADD1 がΩレジスタ3a
に設定され(ステップS10)、次いで後続の入力デー
タがあるか否かを判定し、後続入力データとしてデータ
2 があるときには、このデータK2 がKレジスタ3b
に設定される(ステップS5)。
【0032】そして、Ωレジスタ3a及びKレジスタ3
bに設定されたアドレスADD1 及びデータK2 の組を
ストリングテーブルST上で検索するが、このデータA
DD 1 及びK2 の組はストリングテーブルST上に存在
しない。そこで、図6に示すように、ストリングテーブ
ルSTに新たなデータを追加する。具体的には、ワード
線選択回路4でテーブルポインタTP の指すストリング
テーブルの未構築領域の先頭アドレスAW に対応ワード
データ記憶部WMW のワード線WW をアクティブ状態と
することにより、ワードデータ記憶部WMW の各メモリ
セルMC1 〜MCK 及びMCK+1 〜MCm にデータAD
1 及びK2 を書込み、テーブルポインタTP の指すア
ドレスを1つ増加させてアドレスAW +1に更新する
(ステップS8)。次いで、Kレジスタ3bに格納され
ているデータK2 のエントリーアドレスADD2 をΩレ
ジスタ3aに設定し、次の入力データK3 をKレジスタ
3bに設定する。
【0033】以上のようにΩレジスタ3a及びKレジス
タにデータが設定される毎にストリングテーブルを検索
して一致の検出を繰り返す。そして、例えばデータAD
1 及びK2 をストリングテーブルST内で検索したと
きに一致するデータが存在しない場合には、図6のよう
にアドレスADD1以降にデータADD1 及びK2 が書
込まれる。
【0034】このように、上記実施形態によると、デー
タΩを検索する場合に、検索対象データ絞り込み回路D
1 〜DSn によって検索対象データを絞り込んで、動
作させる一致検出回路を絞り込むようにしているので、
消費電流を大幅に低減することができ、しかも検索対象
データの絞り込みを検索対象データ絞り込み回路DS 1
〜DSn によってハードウェア的に行っているので、絞
り込みを時間を掛けることなく瞬時に行うことができる
という利点がある。
【0035】なお、ワードデータ記憶部WM1 〜WMn
上でストリングテーブルが構築されていない部分は、デ
ータ検索の対象とする必要がないことは明らかであり、
この部分はデータの検索対象から外すことができ、これ
によってさらに検索対象データの絞り込みを行うことが
でき、消費電流をより減少させることができる。なお、
上記実施形態においては、検索対象データ絞り込み回路
DS1 〜DSnでΩデータの最下位の1ビットデータと
これに対応するワードデータ記憶部WM 1 〜WMn のメ
モリセルMCK のビットデータとを比較する場合につい
て説明したが、これに限定されるものではなく、他の任
意の1ビットデータ同士を比較するようにしてもよく、
さらには任意の2つ以上のビット同士を比較するように
してもよく、この場合には絞り込み範囲をより狭くする
ことができる。
【0036】また、上記実施形態における図2のデータ
圧縮を行うDCLZアルゴリズムによって圧縮された圧
縮データを伸張するには、図7に示すようなデータ伸張
アルゴリズムを適用することが好ましい。このデータ伸
張アルゴリズムは、先ずステップS21でストリングテ
ーブルの初期化を行って、アドレス“1”,“2”及び
“3”のK格納領域に夫々データ“a”,“b”及び
“c”を格納すると共に、テーブルポインタをアドレス
“4”に設定し、次いでステップS22に移行して、最
初の入力コードをOLDCODEレジスタに格納する。
【0037】次いでステップS23に移行してストリン
グテーブルのOLDCODEレジスタに格納されている
コードに対応するアドレスのK格納領域のデータをKレ
ジスタ及びストリングテーブルのCODEレジスタに格
納されているコードに対応するアドレスにおけるΩ格納
領域及びK格納領域にデータが格納されていないときの
先頭シンボルデータを表すFレジスタに格納する。
【0038】次いで、ステップS24に移行して、Kレ
ジスタの値を出力してからステップS25に移行する。
このステップS25では、後続する有為な入力コードが
存在するか否かを判定し、後続する入力コードがない場
合にはデータ伸張処理を終了し、後続する入力コードが
ある場合には、ステップS26に移行する。
【0039】このステップS26では、入力コードをC
ODEレジスタ及びINCODEレジスタに格納し、次
いでステップS27に移行して、ストリングテーブルの
CODEレジスタに格納されているコードに対応するア
ドレスにおけるΩ格納領域及びK格納領域にデータが格
納されているか否かを判定し、該当するデータが格納さ
れていないときには、ステップS28に移行して、Fレ
ジスタに格納されているデータをLIFO(Last-in,Fir
st-out) メモリに格納し、次いでステップS29に移行
してOLDCODEレジスタに格納されているコードを
CODEレジスタに格納してからステップS30に移行
する。
【0040】ステップS30では、ストリングテーブル
のCODEレジスタに格納されているコードに対応する
アドレスのΩ格納領域が空状態ではないか即ちデータが
格納されているか否かを判定し、データが格納されてい
るときにはステップS31に移行する。このステップS
31では、ストリングテーブルのCODEレジスタに格
納されているコードに対応するアドレスのK格納領域の
値をKレジスタに格納し、次いでステップS32に移行
して、Kレジスタの値を前記LIFOメモリに格納し、
次いでステップS33に移行して、ストリングテーブル
のCODEレジスタに格納されているコードに対応する
Ω格納領域の値をCODEレジスタに格納してから前記
ステップS30に戻る。
【0041】一方、ステップS30の判定結果が、スト
リングテーブルのCODEレジスタに格納されているコ
ードに対応するアドレスのΩ格納領域が空き状態である
ときには、ステップS34に移行して、ストリングテー
ブルのCODEレジスタに格納されているコードに対応
するアドレスのK格納領域の値をKレジスタに格納し、
次いでステップS35に移行して、Kレジスタの値をL
IFOメモリに格納し、次いでステップS36に移行し
て、Kレジスタの値をFレジスタに格納してからステッ
プS37に移行する。
【0042】このステップS37では、LIFOメモリ
に格納されているデータがあるか否かを判定し、格納デ
ータがあるときには、ステップS38に移行して、最新
の格納データを読出して出力してからステップS37に
戻り、LIFOメモリに格納されているデータが無いと
きにはステップS39に移行する。このステップS39
では、OLDCODEレジスタに格納されているコード
及びKレジスタに格納されているデータを夫々ストリン
グテーブルにおけるテーブルポインタで指示されている
アドレスのΩ格納領域及びK格納領域に夫々登録した後
テーブルポインタを1つ歩進させ、次いでステップS4
0に移行してINCODEレジスタの値をOLDCOD
Eレジスタに格納してから前記ステップS25に戻る。
【0043】このデータ伸張アルゴリズムを使用して前
述したデータ圧縮アルゴリズムで圧縮したデータ「1,
2,3,4,6,8」を伸張する場合を図8を伴って説
明する。ここで、図8(a)は入力コードに対する内部
レジスタ及び出力バイトの関係を示しており、図8
(b)はメモリセルアレイ2に構築される動的辞書であ
るストリングテーブルのアドレスに対するΩ格納領域及
びK格納領域の内容の関係を示している。
【0044】先ず初期化によってストリングテーブルに
図8(b)に示すようにアドレス1〜3に対応するK格
納領域に夫々“a”〜“c”を書込むと共に、Ω格納領
域は空き状態(null)とし、さらにテーブルポインタをア
ドレス“4”に設定する(ステップS21)。次いで、
最初の入力コード“1”を、図8(a)に示すように、
OLDCODEレジスタに格納すると共に、ストリング
テーブルのOLDCODEレジスタに格納された入力コ
ードに対応するアドレス“1”におけるK格納領域に格
納されているデータ“a”をKレジスタ及びFレジスタ
に格納し、且つKレジスタに格納されたデータ“a”を
出力する(ステップS22〜S24)。
【0045】そして、後続の入力コードとして“2”が
存在するので、ステップS25からステップS26に移
行して、入力コード“2”を夫々CODEレジスタ及び
INCODEレジスタに格納し、次いでストリングテー
ブルのCODEレジスタに格納された入力コード“2”
に対応するアドレス“2”にはデータ“b”が格納され
ているので、直接ステップS30に移行する。
【0046】このとき、ストリングテーブルのCODE
レジスタに格納されている入力コード“2”に対応する
アドレス“2”のΩ格納領域が空であるので、ステップ
S30からステップS34に移行し、ストリングテーブ
ルにおけるアドレス“2”のK格納領域のデータ“b”
をKレジスタに格納し、次いでKレジスタの値をLIF
Oメモリ及びFレジスタに格納する。
【0047】そして、ステップS37の判定でLIFO
メモリがデータが格納されていると判断されるので、ス
テップS38に移行して、LIFOメモリからデータ
“b”を取出し、これを出力してからステップS37に
戻る。このとき、LIFOメモリからデータ“b”を取
出したことにより、このLIFOメモリが空となるの
で、ステップS39に移行して、OLDCODEレジス
タに格納されている入力コード“1”とKレジスタに格
納されているデータ“b”とを夫々テーブルポインタで
指示されるアドレス“4”のΩ格納領域及びK格納領域
に記憶し、且つテーブルポインタをアドレス“5”に更
新する。
【0048】次いで、INCODEレジスタに格納され
ている入力コード“2”をOLDCODEレジスタに格
納してからステップS25に戻る。そして、後続入力コ
ードとして“3”が存在するので、これをCODEレジ
スタ及びINCODEレジスタに格納し、CODEレジ
スタに格納されている入力コード“3”に対応するスト
リングテーブルにおけるアドレス“3”にデータが格納
されており、そのΩ格納領域が空であるので、前述と同
様にステップS30からステップS34に移行してスト
リングテーブルにおけるCODEレジスタに格納されて
いるコード“3”に対応するアドレス“3”のK格納領
域のデータ“c”をKレジスタに格納し、このKレジス
タに格納したデータ“c”をLIFOメモリに格納し、
これを取出して出力してから、OLDCODEレジスタ
に格納されている入力コード“2”及びKレジスタに格
納されているデータ“c”をストリングテーブルのテー
ブルポインタで指示されているアドレス“5”のΩ格納
領域及びK格納領域に格納し、次いでINCODEレジ
スタに格納されている入力コード“3”をOLDCOD
Eレジスタに格納してから前記ステップS25に戻る。
【0049】そして、後続する入力コード“4”が存在
するので、この入力コード“4”をCODEレジスタ及
びINCODEレジスタに格納し、ストリングテーブル
のCODEレジスタに格納されたコード“4”に対応す
るアドレス“4”にデータが格納されており、そのΩ格
納領域にコード“1”が格納されているので、ステップ
S30からステップS31に移行し、アドレス“4”の
K格納領域に格納されているデータ“b”をKレジスタ
に格納し、このKレジスタに格納したデータ“b”をL
IFOメモリに格納し、アドレス“4”のΩ格納領域の
コード“1”をCODEレジスタに格納してからステッ
プS30に戻る。
【0050】このとき、CODEレジスタに格納されて
いるコード“1”に対応するストリングテーブルのアド
レス“1”ではΩ格納領域が空であるので、ステップS
30を経てステップS34に移行し、アドレス“1”の
K格納領域に格納されているデータ“a”をKレジスタ
に格納すると共に、このデータ“a”をLIFOメモリ
及びFレジスタに格納する。ここで、LIFOメモリに
は、前回の処理時におけるデータ“b”に続いてデータ
“a”が格納されることになる。
【0051】このため、ステップS37からステップS
38に移行して、先ずLIFOメモリから先ず後から格
納したデータ“a”を取出して出力し、次いでデータ
“b”を取出して出力する。そして、LIFOメモリか
らのデータ取出しが終了して空の状態となると、ステッ
プS39に移行して、OLDCODEレジスタに格納さ
れている入力コード“3”及びKレジスタに格納されて
いるデータ“a”をストリングテーブルのテーブルポイ
ンタで指示されているアドレス“6”のΩ格納領域及び
K格納領域に格納し、次いでINCODEレジスタに格
納されている入力コード“4”をOLDCODEレジス
タに格納してから前記ステップS25に戻る。
【0052】このとき、後続する入力コード“6”が存
在するので、これがCODEレジスタ及びINCODE
レジスタに格納され、ストリングテーブルのCODEレ
ジスタに格納されたコード“6”に対応するアドレス
“6”にデータが格納されており、そのΩ格納領域が空
でないので、ステップS27,S30を経てステップS
31に移行し、CODEレジスタに格納されているコー
ド“6”に対応するアドレス“6”のK格納領域のデー
タ“a”をKレジスタに格納し、続いてこのKレジスタ
に格納されたデータ“a”をLIFOメモリに格納し、
次いでアドレス“6”のΩ格納領域に格納されているコ
ード“3”をCODEレジスタに格納してからステップ
S30に戻る。
【0053】このとき、CODEレジスタに格納されて
いるコード“3”に対応するストリングテーブルのアド
レス“3”にはK格納領域にデータ“c”が存在するこ
とにより、このデータ“c”をKレジスタに格納し、こ
のKレジスタに格納されたデータ“c”をLIFOメモ
リ及びFレジスタに格納してから、LIFOメモリから
データ“c”及び“a”をその順に取出してこれらを出
力する。
【0054】次いで、OLDCODEレジスタに格納さ
れているコード“4”及びKレジスタに格納されている
データ“c”を夫々ストリングテーブルのテーブルポイ
ンタで指示されているアドレス“7”のΩ格納領域及び
K格納領域に登録すると共に、テーブルポインタを
“8”に更新し、次いでINCODEレジスタに格納さ
れているコード“6”をOLDCODEレジスタに格納
してから前記ステップS25に戻る。
【0055】このとき、続いて入力コード“8”が存在
するので、この入力コード“8”をCODEレジスタ及
びINCODEレジスタに格納する。ここで、CODE
レジスタに格納されたコード“8”に対応するストリン
グテーブルのアドレス“8”には未だデータが格納され
ていないので、ステップS27からステップS28に移
行し、Fレジスタに格納されているデータ“c”をLI
FOメモリに格納し、次いでOLDCODEレジスタに
格納されているコード“6”をCODEレジスタに格納
してからステップS30に移行する。
【0056】ここで、CODEレジスタに格納されたコ
ード“6”に対応するストリングテーブルのアドレス
“6”におけるΩ格納領域にコード“3”が格納されて
おり空ではないので、ステップS31に移行し、アドレ
ス“6”のK格納領域のデータ“a”をKレジスタに格
納し、次いでデータ“a”をLIFOメモリに前記デー
タ“c”の後に格納し、次いでアドレス“6”のΩ格納
領域に格納されているコード“3”をCODEレジスタ
に格納してから前記ステップS30に戻る。
【0057】このとき、CODEレジスタに格納された
コード“3”に対応するストリングテーブルのアドレス
“3”はΩ格納領域が空であるので、ステップS30か
らステップS34に移行して、アドレス“3”のK格納
領域のデータ“c”をKレジスタに格納し、このKレジ
スタのデータ“c”をLIFOメモリ及びFレジスタに
格納する。
【0058】このとき、LIFOレジスタには、
“c”、“a”、“c”がその順に格納されているの
で、これらが新しいものから順に取出されて、これらが
出力され、LIFOレジスタが空になると、ステップS
39に移行して、OLDCODEレジスタに格納されて
いるコード“6”及びKレジスタに格納されているデー
タ“c”をストリングテーブルのテーブルポインタで指
示されているアドレス“8”に登録すると共に、テーブ
ルポインタをアドレス“9”に更新してからステップS
25に戻る。
【0059】このとき、後続の入力コードが存在しない
ため、データ伸張処理を終了する。この結果、出力は
「a,b,c,a,b,c,a,c,a,c」となり、
データ圧縮時の入力データに対して最後のデータ“b”
を除く全てが正確に復号化される。したがって、最後の
データ“b”を圧縮データに付加しておくことにより、
データの復号を正確に行うことができる。
【0060】なお、上記実施形態においては、DCLZ
アルゴリズムを実現する場合について説明したが、これ
に限定されるものではなく、他のデータ圧縮アルゴリズ
ムで構築された辞書やアルファベット順に構築された辞
書の検索にも利用することができる。
【0061】
【発明の効果】以上説明したように、請求項1の発明に
よれば、検索対象データ絞り込み手段で予め検索データ
の一部と検索対象データの一部とを比較して検索すべき
検索対象データを絞り込み、この絞り込まれた検索対象
データについてのみデータ検索手段で検索することによ
り、データ検索手段に含まれる一致検出回路の動作数を
限定して省電力化を図ることができるという効果が得ら
れる。
【0062】また、請求項2の発明によれば、メモリセ
ルアレイにデータ圧縮アルゴリズムによって動的辞書を
構築するので、メモリセルアレイに構築された動的辞書
の検索範囲の絞り込みを簡単な構成で正確に行うことが
できるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の一実施形態を示すブロック図である。
【図2】データ圧縮アルゴリズムを示すフローチャート
である。
【図3】図2の動作説明に供する説明図であって、
(a)は入力バイト、Kレジスタ及びΩレジスタ、出力
コードの内容を夫々表し、(b)はメモリセルアレイに
構築される辞書がアドレスに対してKレジスタの内容及
びΩレジスタの内容とが対応付けられて表されている。
【図4】図1の実施形態における動作の説明に供する説
明図である。
【図5】図1の実施形態における動作の説明に供する説
明図である。
【図6】図1の実施形態における動作の説明に供する説
明図である。
【図7】データ伸張アルゴリズムを示すフローチャート
である。
【図8】図7の動作説明に供する説明図であって、
(a)は入力コード、CODEレジスタ、INCODE
レジスタ、OLDCODEレジスタ、Kレジスタ、Fレ
ジスタ、出力の内容を夫々表し、(b)はメモリセルア
レイに構築される辞書がアドレスに対してKレジスタの
内容及びΩレジスタの内容とが対応付けられて表されて
いる。
【図9】従来例を示すブロック図である。
【符号の説明】
1 連想記憶装置 3a Ωレジスタ 3b Kレジスタ 4 ワード線選択回路 WM1 〜WMn ワードデータ記憶部 MC1 〜MCm メモリセル CC1 〜CCn 一致検出回路 DS1 〜DSn 検索対象データ絞り込み回路

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 入力された検索データに基づいてメモリ
    セルアレイに格納された多数の検索対象データを検索し
    て同一又は類似のデータの有無を出力する連想記憶装置
    において、前記検索データの一部と検索対象データの一
    部とを比較して検索すべき検索対象データを絞り込む検
    索対象絞り込み手段と、該検索対象絞り込み手段で絞り
    込んだ前記検索対象データを検索するデータ検索手段と
    を備えたことを特徴とする連想記憶装置。
  2. 【請求項2】 前記メモリセルアレイには、データ圧縮
    アルゴリズムによって検索データに対して過去の文字列
    に専用のアドレスを割当てて辞書形式で登録される動的
    辞書が格納されていることを特徴とする請求項1記載の
    連想記憶装置。
JP7334744A 1995-12-22 1995-12-22 連想記憶装置 Withdrawn JPH09180469A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7334744A JPH09180469A (ja) 1995-12-22 1995-12-22 連想記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7334744A JPH09180469A (ja) 1995-12-22 1995-12-22 連想記憶装置

Publications (1)

Publication Number Publication Date
JPH09180469A true JPH09180469A (ja) 1997-07-11

Family

ID=18280746

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7334744A Withdrawn JPH09180469A (ja) 1995-12-22 1995-12-22 連想記憶装置

Country Status (1)

Country Link
JP (1) JPH09180469A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6766317B2 (en) 2001-07-18 2004-07-20 Alliance Semiconductor Range check cell and a method for the use thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6766317B2 (en) 2001-07-18 2004-07-20 Alliance Semiconductor Range check cell and a method for the use thereof

Similar Documents

Publication Publication Date Title
JP2534465B2 (ja) デ―タ圧縮装置および方法
US5440753A (en) Variable length string matcher
JPH07114577A (ja) データ検索装置、データ圧縮装置及び方法
JP3016868B2 (ja) 連想メモリを使用するlzwデータ圧縮
JP3003915B2 (ja) 単語辞書検索装置
US7290084B2 (en) Fast collision detection for a hashed content addressable memory (CAM) using a random access memory
JP3141866B2 (ja) 連想記憶装置及び連想メモリ検索方法
JP2000305822A (ja) データベース管理装置,データベースレコード抽出装置,データベース管理方法及びデータベースレコード抽出方法
US6404362B1 (en) Method and apparatus for reducing the time required for decompressing compressed data
JPH09180468A (ja) 連想記憶装置
JPH11282852A (ja) データ検索装置
JPH09180469A (ja) 連想記憶装置
JPH04308B2 (ja)
WO2020045238A1 (ja) データ圧縮器、データ圧縮方法、データ圧縮プログラム、データ解凍器、データ解凍方法、データ解凍プログラムおよびデータ圧縮解凍システム
JP2880199B2 (ja) 記号列検索方法および検索装置
JP3038234B2 (ja) データ圧縮装置の辞書検索方式
JPH07105092A (ja) 記憶装置
JP2772124B2 (ja) 辞書検索方式
JPH0363094B2 (ja)
JPS6391774A (ja) テ−ブル変換方式
JPS5844437Y2 (ja) 情報検索装置
JP2000041065A (ja) データ検索回路
Satoh et al. Lempel‐Ziv‐type high‐speed data compression circuit using content addressable memory
JPS6373422A (ja) 情報検索装置
JPS60211540A (ja) デ−タ検索回路

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030304