JP3007819B2 - データ圧縮用検索装置 - Google Patents

データ圧縮用検索装置

Info

Publication number
JP3007819B2
JP3007819B2 JP7213852A JP21385295A JP3007819B2 JP 3007819 B2 JP3007819 B2 JP 3007819B2 JP 7213852 A JP7213852 A JP 7213852A JP 21385295 A JP21385295 A JP 21385295A JP 3007819 B2 JP3007819 B2 JP 3007819B2
Authority
JP
Japan
Prior art keywords
signal
comparison
address
output
orfb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP7213852A
Other languages
English (en)
Other versions
JPH08242176A (ja
Inventor
証 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP7213852A priority Critical patent/JP3007819B2/ja
Priority to US08/578,314 priority patent/US5877714A/en
Publication of JPH08242176A publication Critical patent/JPH08242176A/ja
Application granted granted Critical
Publication of JP3007819B2 publication Critical patent/JP3007819B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3086Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ圧縮用検索装置に
係り、特に、テキストデータ等で構成される元データの
長さを圧縮するために、前記元データ中に存在する繰り
返しデータを検索するデータ圧縮用検索装置に関する。
【0002】
【従来の技術】近年、マルチメディア化が進み、各種の
システムにおいて画像データ、音声データ、文書デー
タ、プログラム等の様々なデータを大量に取り扱う必要
が生じている。大量のデータを記憶装置に記憶したり転
送する等の処理は、データを圧縮してから行なうことが
コストや処理速度の点で非常に有効であり、データ圧縮
技術の重要性は急速に高まってきている。特に無損失圧
縮は、復元したデータが圧縮前の元のデータと完全に一
致し、情報の損失が生ずることがないので、適用範囲が
広い。
【0003】無損失圧縮の一種として、レンペルとジブ
(Lemple and Ziv)によって1977年に提案された圧縮ア
ルゴリズムLZ1(以下、単にLZ1という) は、広く知ら
れている Huffman符号等のエントロピー符号と比較し
て、種々のデータに対して高い圧縮率が得られる有用な
圧縮方法である。LZ1は、基本的には元データに含まれ
る繰り返しデータを検索し、繰り返しデータを別の符号
(既に出現した同一データの位置を指し示すポインタ及
び繰り返しデータのデータ長)に置き換えて冗長性を除
くことによって圧縮するものであるが、前記繰り返しデ
ータは長さが不定の可変長データであるので検索処理が
複雑であり、この繰り返しデータの検索を含む圧縮処理
をハードウェア化して処理を高速化することが困難であ
った。
【0004】このため特開平5-233212号公報には、検索
等に利用されるハードウェアとしての連想メモリ(Cont
ent Addressable Memory、以下CAMという) により繰
り返しデータの検索(及びデータの圧縮)を行うように
したデータを圧縮するための装置が提案されている。一
般的なメモリは記憶位置のアドレスが指定されると前記
アドレスに対応する記憶領域に記憶しているデータを出
力するものであるが、CAMはデータが入力されると該
データを記憶している記憶領域のアドレスを出力するも
のであり、具体的には所定ビット長(例えば8ビット)
のデータを記憶する各記憶部毎に比較回路が設けられて
おり(以下では、記憶部と比較回路の対をCAMセル列
という)、各比較回路は記憶部に記憶されているデータ
と入力されたデータとを比較し、比較結果に応じた信号
を出力する。
【0005】特開平5-233212号公報に示された装置で
は、テキストデータ等の元データに対し、所定ビット長
の単位データ(例えば1文字分の文字データ)を元デー
タの先頭から順に取り出して各CAMセル列に検索文字
として入力し、各CAMセル列で毎回比較を行わせると
共に、各CAMセル列の比較回路から出力される信号に
基づいて繰り返し文字列の有無を判断している。各CA
Mセル列の比較回路から出力される信号に基づく繰り返
し文字列の有無の判断は、具体的には図16に示す回路
によって行われる。
【0006】図16において、検索データは書込みバッ
ファに保持され、CAMセル列の各々に同時に入力され
る。繰り返し文字列の有無を判断する回路は、単文字比
較結果保持用のラッチML0〜MLN、信号生成回路150
0 〜150N 、文字列検索結果保持用のラッチPS0〜PS
N及びOR回路158、160を備えている。各CAM
セル列にはマッチ線MATCH0〜MATCHNが接続されており、
入力された検索文字に対し常に一度だけ比較を行い、比
較結果が「一致」であれば対応するマッチ線をハイレベ
ルにし、「不一致」であれば対応するマッチ線をローレ
ベルにする。マッチ線のレベルはラッチML0〜MLNに一
旦保持された後に、信号生成回路1500 〜150N
出力される。
【0007】なお図16では信号生成回路1501 のみ
内部構成を示しているが、信号生成回路1500 〜15
N は同一の構成である。信号生成回路1501 では、
OR回路160から出力されるフィードバック信号ORFB
がローレベルであれば、ラッチML1から出力された信号
(単文字の検索結果に相当)をラッチPS1に出力し、フ
ィードバック信号ORFBがハイレベルであれば、前段のラ
ッチPS0から出力された信号とラッチML1から出力され
た信号との論理積に相当する信号(2文字以上の長さの
文字列の検索結果に相当)がラッチPS1に出力される。
ラッチPS1に保持された信号は、次の周期で第1プライ
オリティエンコーダ162及び次段の信号生成回路15
2 に出力される。
【0008】OR回路160から出力されるフィードバ
ック信号ORFBは、信号生成回路1500 〜150N のA
ND回路1540 〜154N から各々出力された、ラッ
チMLの出力信号と前段のラッチPSの出力信号との論理積
を表す信号の論理和をとったものである。ラッチML及び
ラッチPSから各信号生成回路に信号が入力され、各AN
D回路から各々信号が出力されると、各信号生成回路か
らOR回路158、160を通って各信号生成回路に戻
る信号経路をクロック信号の1周期に相当する期間内に
信号が伝播し、フィードバック信号ORFBとして各信号生
成回路に入力される。
【0009】フィードバック信号ORFBは検索装置全体で
2文字以上の長さの繰り返し文字列が発見されたか否か
を意味しており、信号生成回路1500 〜150N は、
フィードバック信号ORFBがハイレベルであれば前回迄の
比較で発見された繰り返し文字列に今回の検索文字を追
加した文字列が存在しているか否かを表す信号を出力
し、フィードバック信号ORFBがローレベルであれば今回
の検索文字から始まる繰り返し文字列の検索を行うため
にラッチMLから入力された信号をラッチPSにそのまま出
力する。
【0010】第1プライオリティエンコーダ162で
は、一致信号MSIG1 としてラッチPS0〜PSNから入力さ
れた信号の論理和に相当する信号を、一致アドレスMADR
1 としてハイレベルの信号を出力したラッチPSのアドレ
スを、各々第2プライオリティエンコーダ164に出力
する。第2プライオリティエンコーダ164には複数の
CAMで繰り返し文字列の検索を並行して行う場合に他
のCAMの第1プライオリティエンコーダからも同様の
信号が入力され、入力された各信号に応じて複数のCA
M全体の一致信号MSIG及び一致アドレスMADRを図示しな
いコントローラに出力する。複数のCAMで繰り返し文
字列の検索を並行して行う場合は、他のCAMの信号生
成回路からOR回路160にも信号が入力される。
【0011】なお、図16の回路において、現在のサイ
クルをm、アドレスnのCAMセル列から出力された比
較信号をML(n,m) 、論理積を×、論理和を+、アドレス
nの最大値をN、アドレスnが0のときのn−1をN、
比較結果「一致」を1、「不一致」を0で表したとする
と、フィードバック信号ORFB、ラッチPSに保持される信
号PS及び一致信号MSIGは、次の(1)式で表される。
【0012】 ORFB={ ML(0,m)×PS(N,m) }+{ ML(1,m)×PS(0,m) } +…+{ ML(N,m)×PS(N-1,m) } ORFB=1のときには、PS(n,m+1) = ML(n,m)×PS(n-1,m) ORFB=0のときには、PS(n,m+1) = ML(n,m) MSIG=PS(0,m) +PS(1,m) +…+PS(N,m) …(1) また参考までに、比較結果「一致」を0、「不一致」を
1で表したとすると、フィードバック信号ORFB、信号PS
及び一致信号MSIGは、次の(2)式のようになる。
【0013】 ORFB={ ML(0,m)+PS(N,m) }×{ ML(1,m)+PS(0,m) } ×…×{ ML(N,m)+PS(N-1,m) } ORFB=1のときには、PS(n,m+1) = ML(n,m)+PS(n-1,m) ORFB=0のときには、PS(n,m+1) = ML(n,m) MSIG=PS(0,m) ×PS(1,m) ×…×PS(N,m) …(2) また、図16の回路において一例としてアドレス「0」
〜「5」のCAMセル列に既に「ABABBC」の文字
データ列が昇順に記憶されており、かつ検索データとし
て「ABBBC…」の順に文字データが入力された場合
の各ラッチが保持しているレベル、各信号のレベルの推
移を図17に、そのときのタイミングチャートを図18
に各々示す。
【0014】
【発明が解決しようとする課題】しかしながら、上記で
はCAMセル列毎に設けられた多数の信号生成回路15
0から出力された信号よりフィードバック信号ORFBを生
成し、生成したフィードバック信号ORFBを各信号生成回
路150に入力するために、各信号生成回路150から
出力された信号をOR回路158、160に導く多数本
の信号線、及びOR回路160から出力されたフィード
バック信号ORFBを多数の信号生成回路に導く多数本の信
号線を設ける必要があるので、この信号線を配設した部
分が回路全体のうちの非常に大きな面積を占めている
(全体の10%程度) 。従って回路の規模が大きく、装置
を小型化することが困難であるという問題があった。
【0015】なお、ラッチPS0〜PSNの各々からプライ
オリティエンコーダに入力された信号より、これらの論
理和に相当する一致信号MSIGを生成する部分について
も、回路全体のうちの比較的大きな面積を占めている。
【0016】また上記では、各信号生成回路からOR回
路158、160を通って各信号生成回路に至る信号経
路の物理的な長さが長いため、前記信号経路を信号が通
過するには比較的長い時間がかかり(図18の「遅延」
参照)、前記信号経路が図16の検索装置のクリティカ
ルパスとなっている。図16の検索装置の信号生成回路
では、信号が各信号生成回路からOR回路158、16
0を通って各信号生成回路に戻る信号経路をクロック信
号の1周期に相当する期間内に伝播し、フィードバック
信号ORFBとして各信号生成回路に入力されるようにする
必要があるので、フィードバック信号ORFBが生成される
のに要する時間に合わせて回路全体の動作速度(具体的
にはクロック信号の周期)を定めており、処理速度が低
いという問題もあった。
【0017】上記事実を考慮し、本発明の第1の目的
は、装置の小型化が可能なデータ圧縮用検索装置を得る
ことである。
【0018】また本発明の第2の目的は、データの圧縮
を高速化することが可能なデータ圧縮用検索装置を得る
ことである。
【0019】
【課題を解決するための手段】上記第1の目的を達成す
るために本発明は、所定ビット長のデータから成る単位
データを記憶する複数の記憶手段と、前記記憶手段に対
応して設けられ、記憶手段に記憶された単位データと入
力された単位データとを比較し、比較結果を表す比較信
号を出力する複数の比較手段と、所定数の単位データで
構成された元データから隣合う単位データを順次取り出
し前記記憶装置の複数の比較手段の各々に順次入力する
と共に、複数の比較手段の各々に入力した単位データを
各記憶手段と比較手段との対に付与されたアドレスの昇
順に順次記憶手段に記憶させる制御手段と、複数の比較
手段の各々に単位データが入力される毎に各比較手段か
ら出力される比較信号に対し、現在のサイクルをm、ア
ドレスnの比較手段から出力される比較信号をML(n,m)
、論理和を+、論理積を×、アドレスnの最大値を
N、アドレスnが0のときのn−1をN、比較結果「一
致」を1、「不一致」を0で表したとすると、 PE(n,m) = ML(n,m)×PS(n-1,m) MSIG=PE(0,m) +PE(1,m) +…+PE(N,m) MSIG=1の場合は、PS(n,m+1) = ML(n,m)×PS(n-1,m) MSIG=0の場合は、PS(n,m+1) = ML(n,m) 比較結果「一致」を0、「不一致」を1で表したとする
と、 PE(n,m) = ML(n,m)+PS(n-1,m) MSIG=PE(0,m) ×PE(1,m) ×…×PE(N,m) MSIG=0の場合は、PS(n,m+1) = ML(n,m)+PS(n-1,m) MSIG=1の場合は、PS(n,m+1) = ML(n,m) なる演算を各サイクルで各々行って、各比較手段に対応
する第1中間信号PS及び第2中間信号PEと、信号MSIG
と、を生成し、比較結果として信号MSIGを出力する比較
結果制御手段と、を含んで構成している。
【0020】また上記において、比較結果制御手段を、
複数の比較手段に対応して各々設けられ、各々対応する
アドレスnの比較手段から出力された比較信号ML(n,m)
を保持する複数の第1信号保持手段と、複数の比較手段
に対応して各々設けられ、各々対応するアドレスnの第
1信号保持手段に保持された比較信号ML(n,m) 、アドレ
スn−1の第1中間信号PS(n-1,m) 及び信号MSIGが入力
され、アドレスnの第1中間信号PS(n,m+1) 及び第2中
間信号PE(n,m) を生成する複数の第1信号生成手段と、
複数の比較手段に対応して各々設けられ、各々対応する
アドレスnの第1信号生成手段から出力された第1中間
信号PS(n,m) を保持し、アドレスn+1の第1信号生成
手段に出力する複数の第2信号保持手段と、前記複数の
第1信号生成手段から各々入力された第2中間信号PE
(n,m) に基づいて信号MSIGを生成し出力する第2信号生
成手段と、で構成することができる。
【0021】また第1の目的を達成するために本発明
は、所定ビット長のデータから成る単位データを記憶す
る複数の記憶手段と、前記記憶手段に対応して設けら
れ、記憶手段に記憶された単位データと入力された単位
データとを比較し、比較結果を表す比較信号を出力する
複数の比較手段と、所定数の単位データで構成された元
データから隣合う単位データを順次取り出し前記記憶装
置の複数の比較手段の各々に順次入力すると共に、複数
の比較手段の各々に入力した単位データを各記憶手段と
比較手段との対に付与されたアドレスの降順に順次記憶
手段に記憶させる制御手段と、複数の比較手段の各々に
単位データが入力される毎に各比較手段から出力される
比較信号に対し、現在のサイクルをm、アドレスnの比
較手段から出力される比較信号をML(n,m) 、論理和を
+、論理積を×、アドレスnの最大値をN、アドレスn
がNのときのn+1を0、比較結果「一致」を1、「不
一致」を0で表したとすると、 PE(n,m) = ML(n,m)×PS(n+1,m) MSIG=PE(0,m) +PE(1,m) +…+PE(N,m) MSIG=1の場合は、PS(n,m+1) = ML(n,m)×PS(n+1,m) MSIG=0の場合は、PS(n,m+1) = ML(n,m) 比較結果「一致」を0、「不一致」を1で表したとする
と、 PE(n,m) = ML(n,m)+PS(n+1,m) MSIG=PE(0,m) ×PE(1,m) ×…×PE(N,m) MSIG=0の場合は、PS(n,m+1) = ML(n,m)+PS(n+1,m) MSIG=1の場合は、PS(n,m+1) = ML(n,m) なる演算を各サイクルで各々行って、各比較手段に対応
する第1中間信号PS及び第2中間信号PEと、信号MSIG
と、を生成し、比較結果として信号MSIGを出力する比較
結果制御手段と、を含んで構成している。
【0022】また上記において、比較結果制御手段を、
複数の比較手段に対応して各々設けられ、各々対応する
アドレスnの比較手段から出力された比較信号ML(n,m)
を保持する複数の第1信号保持手段と、複数の比較手段
に対応して各々設けられ、各々対応するアドレスnの第
1信号保持手段に保持された比較信号ML(n,m) 、アドレ
スn+1の第1中間信号PS(n+1,m) 及び信号MSIGが入力
され、アドレスnの第1中間信号PS(n,m+1) 及び第2中
間信号PE(n,m) を生成する複数の第1信号生成手段と、
複数の比較手段に対応して各々設けられ、各々対応する
アドレスnの第1信号生成手段から出力された第1中間
信号PS(n,m) を保持し、アドレスn−1の第1信号生成
手段に出力する複数の第2信号保持手段と、前記複数の
第1信号生成手段から各々入力された第2中間信号PE
(n,m) に基づいて信号MSIGを生成し出力する第2信号生
成手段と、で構成することができる。
【0023】また第2の目的を達成するために本発明
は、所定ビット長のデータから成る単位データを記憶す
る複数の記憶手段と、前記記憶手段に対応して設けら
れ、記憶手段に記憶された単位データと入力された単位
データとを比較し、比較結果を表す比較信号を出力する
複数の比較手段と、所定数の単位データで構成された元
データから隣合う単位データを順次取り出し前記記憶装
置の複数の比較手段の各々に順次入力すると共に、複数
の比較手段の各々に入力した単位データを各記憶手段と
比較手段との対に付与されたアドレスの昇順に順次記憶
手段に記憶させる制御手段と、複数の比較手段の各々に
単位データが入力される毎に各比較手段から出力される
比較信号に対し、現在のサイクルをm、アドレスnの比
較手段から出力される比較信号をML(n,m) 、論理和を
+、論理積を×、アドレスnの最大値をN、アドレスn
が0のときのn−1をN、比較結果「一致」を1、「不
一致」を0で表したとすると、 MX(n,m+1) = ML(n,m) ORFB=PX(0,m) +PX(1,m) +…+PX(N,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)×PX(n-1,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)×MX(n-1,m) MSIG=PX(0,m) +PX(1,m) +…+PX(N,m) 比較結果「一致」を0、「不一致」を1で表したとする
と、 MX(n,m+1) = ML(n,m) ORFB=PX(0,m) ×PX(1,m) ×…×PX(N,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)+PX(n-1,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)+MX(n-1,m) MSIG=PX(0,m) ×PX(1,m) ×…×PX(N,m) なる演算を各サイクルで各々行って、各比較手段に対応
する第3中間信号MX(n,m) 及び第4中間信号PX(n,m)
と、フィードバック信号ORFBと、信号MSIGと、を生成
し、比較結果として信号MSIGを出力する比較結果制御手
段と、を含んで構成している。
【0024】また上記において、比較結果制御手段を、
複数の比較手段に対応して各々設けられ、各々対応する
アドレスnの比較手段から出力された比較信号ML(n,m)
を保持する複数の第3信号保持手段と、複数の比較手段
に対応して各々設けられ、各々対応するアドレスnの第
3信号保持手段に一旦保持された比較信号ML(n,m) を第
3中間信号MX(n,m+1) として保持する複数の第4信号保
持手段と、複数の比較手段に対応して各々設けられ、対
応するアドレスnの第3信号保持手段に保持された比較
信号ML(n,m) 、アドレスn−1の第4信号保持手段に保
持された第3中間信号MX(n-1,m) 、アドレスn−1の第
4中間信号PX(n-1,m) 及びフィードバック信号ORFBが入
力され、第4中間信号PX(n,m+1) を生成する複数の第3
信号生成手段と、複数の比較手段に対応して各々設けら
れ、各々対応するアドレスnの第3信号生成手段から出
力された第4中間信号PX(n,m) を保持し、アドレスn+
1の第3信号生成手段に出力する複数の第5信号保持手
段と、前記複数の第3信号生成手段から各々入力された
第4中間信号PX(n,m)に基づいてフィードバック信号ORF
Bを生成し複数の第3信号生成手段の各々に出力するフ
ィードバック信号生成手段と、複数の第3信号生成手段
から各々出力された第4中間信号PX(n,m) を前記フィー
ドバック信号生成手段に導く第1信号線と、フィードバ
ック信号生成手段から出力されたフィードバック信号OR
FBを複数の第3信号生成手段の各々に導く第2信号線
と、を含む信号経路の略中間点に設けられ、前記信号経
路を通過する信号の通過時間を調整する調整手段と、を
含んで構成することができる。
【0025】また第2の目的を達成するために本発明
は、所定ビット長のデータから成る単位データを記憶す
る複数の記憶手段と、前記記憶手段に対応して設けら
れ、記憶手段に記憶された単位データと入力された単位
データとを比較し、比較結果を表す比較信号を出力する
複数の比較手段と、所定数の単位データで構成された元
データから隣合う単位データを順次取り出し前記記憶装
置の複数の比較手段の各々に順次入力すると共に、複数
の比較手段の各々に入力した単位データを各記憶手段と
比較手段との対に付与されたアドレスの降順に順次記憶
手段に記憶させる制御手段と、複数の比較手段の各々に
単位データが入力される毎に各比較手段から出力される
比較信号に対し、現在のサイクルをm、アドレスnの比
較手段から出力される比較信号をML(n,m) 、論理和を
+、論理積を×、アドレスnの最大値をN、アドレスn
がNのときのn+1を0、比較結果「一致」を1、「不
一致」を0で表したとすると、 MX(n,m+1) = ML(n,m) ORFB=PX(0,m) +PX(1,m) +…+PX(N,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)×PX(n+1,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)×MX(n+1,m) MSIG=PX(0,m) +PX(1,m) +…+PX(N,m) 比較結果「一致」を0、「不一致」を1で表したとする
と、 MX(n,m+1) = ML(n,m) ORFB=PX(0,m) ×PX(1,m) ×…×PX(N,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)+PX(n+1,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)+MX(n+1,m) MSIG=PX(0,m) ×PX(1,m) ×…×PX(N,m) なる演算を各サイクルで各々行って、各比較手段に対応
する第3中間信号MX(n,m) 及び第4中間信号PX(n,m)
と、フィードバック信号ORFBと、信号MSIGと、を生成
し、比較結果として信号MSIGを出力する比較結果制御手
段と、を含んで構成している。
【0026】また上記において、比較結果制御手段を、
複数の比較手段に対応して各々設けられ、各々対応する
アドレスnの比較手段から出力された比較信号ML(n,m)
を保持する複数の第3信号保持手段と、複数の比較手段
に対応して各々設けられ、各々対応するアドレスnの第
3信号保持手段に一旦保持された比較信号ML(n,m) を第
3中間信号MX(n,m+1) として保持する複数の第4信号保
持手段と、複数の比較手段に対応して各々設けられ、対
応するアドレスnの第3信号保持手段に保持された比較
信号ML(n,m) 、アドレスn+1の第4信号保持手段に保
持された第3中間信号MX(n+1,m) 、アドレスn+1の第
4中間信号PX(n+1,m) 及びフィードバック信号ORFBが入
力され、第4中間信号PX(n,m+1) を生成する複数の第3
信号生成手段と、複数の比較手段に対応して各々設けら
れ、各々対応するアドレスnの第3信号生成手段から出
力された第4中間信号PX(n,m) を保持し、アドレスn−
1の第3信号生成手段に出力する複数の第5信号保持手
段と、前記複数の第3信号生成手段から各々入力された
第4中間信号PX(n,m)に基づいてフィードバック信号ORF
Bを生成し複数の第3信号生成手段の各々に出力するフ
ィードバック信号生成手段と、複数の第3信号生成手段
から各々出力された第4中間信号PX(n,m) を前記フィー
ドバック信号生成手段に導く第1信号線と、フィードバ
ック信号生成手段から出力されたフィードバック信号OR
FBを複数の第3信号生成手段の各々に導く第2信号線
と、を含む信号経路の略中間点に設けられ、前記信号経
路を通過する信号の通過時間を調整する調整手段と、を
含んで構成することができる。
【0027】また第2の目的を達成するために本発明
は、所定ビット長のデータから成る単位データを記憶す
る複数の記憶手段と、前記記憶手段に対応して設けら
れ、記憶手段に記憶された単位データと入力された単位
データとを比較し、比較結果を表す比較信号を出力する
複数の比較手段と、所定数の単位データで構成された元
データから隣合う単位データを順次取り出し前記記憶装
置の複数の比較手段の各々に順次入力すると共に、複数
の比較手段の各々に入力した単位データを各記憶手段と
比較手段との対に付与されたアドレスの昇順に順次記憶
手段に記憶させる制御手段と、複数の比較手段の各々に
単位データが入力される毎に各比較手段から出力される
比較信号に対し、現在のサイクルをm、アドレスnの比
較手段から出力される比較信号をML(n,m) 、論理和を
+、論理積を×、否定を!、アドレスnの最大値をN、
アドレスnが0のときのn−1をN、比較結果「一致」
を1、「不一致」を0で表したとすると、 MX(n,m+1) = ML(n,m) ORMX(m)=(ML(0,m)×MX(N,m)) +(ML(1,m)×MX(0,m)) +
…+(ML(N,m)×MX(N-1,m)) ORPX(m)=(ML(0,m)×PX(N,m)) +(ML(1,m)×PX(0,m)) +
…+(ML(N,m)×PX(N-1,m)) ORFB=ORPX(m) +(ORMX(m) × !ORPX(m-1)) ORFB=1の場合は、PX(n,m+1) = ML(n,m)×PX(n-1,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)×MX(n-1,m) MSIG=PX(0,m) +PX(1,m) +…+PX(N,m) 比較結果「一致」を0、「不一致」を1で表したとする
と、 MX(n,m+1) = ML(n,m) ORMX(m)=(ML(0,m)+MX(N,m)) ×(ML(1,m)+MX(0,m)) ×
…×(ML(N,m)+MX(N-1,m)) ORPX(m)=(ML(0,m)+PX(N,m)) ×(ML(1,m)+PX(0,m)) ×
…×(ML(N,m)+PX(N-1,m)) ORFB=ORPX(m) ×( ORMX(m) + !ORPX(m-1) ) ORFB=0の場合は、PX(n,m+1) = ML(n,m)+PX(n-1,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)+MX(n-1,m) MSIG=PX(0,m) ×PX(1,m) ×…×PX(N,m) なる演算を各サイクルで各々行って、各比較手段に対応
する第5中間信号MX(n,m) 及び第6中間信号PX(n,m)
と、第7中間信号ORMX(m) と、第8中間信号ORPX(m)
と、フィードバック信号ORFBと、信号MSIGと、を生成
し、比較結果として信号MSIGを出力する比較結果制御手
段と、を含んで構成している。
【0028】また上記において、比較結果制御手段を、
複数の比較手段に対応して各々設けられ、各々対応する
アドレスnの比較手段から出力された比較信号ML(n,m)
を保持する複数の第6信号保持手段と、複数の比較手段
に対応して各々設けられ、各々対応するアドレスnの第
6信号保持手段に一旦保持された比較信号ML(n,m) を第
5中間信号MX(n,m+1) として保持する複数の第7信号保
持手段と、複数の比較手段に対応して各々設けられ、対
応するアドレスnの第6信号保持手段に保持された比較
信号ML(n,m) 、アドレスn−1の第7信号保持手段に保
持された第5中間信号MX(n-1,m) 、アドレスn−1の第
7中間信号PX(n-1,m) 及びフィードバック信号ORFBが入
力され、第6中間信号PX(n,m+1) を生成する複数の第4
信号生成手段と、複数の比較手段に対応して各々設けら
れ、各々対応するアドレスnの第4信号生成手段から出
力された第6中間信号PX(n,m) を保持し、アドレスn+
1の第4信号生成手段に出力する複数の第8信号保持手
段と、複数の比較手段に対応して各々設けられ、対応す
るアドレスnの第6信号保持手段に保持された比較信号
ML(n,m) とアドレスn−1の第7信号保持手段に保持さ
れた第5中間信号MX(n-1,m) が入力され、第7中間信号
ORMX(m) を生成する第5信号生成手段と、アドレスnの
第6信号保持手段に保持された比較信号ML(n,m) とアド
レスn−1の第8信号保持手段に保持された第6中間信
号PX(n-1,m) が入力され、第8中間信号ORPX(m) を生成
する第6信号生成手段と、前記第5信号生成手段から出
力された第7中間信号ORMX(m) と、前記第6信号生成手
段から出力された第8中間信号ORPX(m) と、1サイクル
遅延させた第8中間信号ORPX(m-1) に基づいてフィード
バック信号ORFBを生成し複数の第4信号生成手段の各々
に出力するフィードバック信号生成手段と、複数の第6
信号保持手段から出力された比較信号ML(n,m) と複数の
第7信号保持手段から出力された第5中間信号MX(n-1,
m) を前記第5信号生成手段に導く第3信号線と、第5
信号生成手段から出力された第7中間信号ORMX(m) を前
記フィードバック生成手段に導く第4信号線と、フィー
ドバック生成手段から出力されたフィードバック信号OR
FBを複数の第4信号生成手段の各々に導く第5信号線
と、を含む信号経路の略中間点に設けられ、前記信号経
路を通過する信号の通過時間を調整する第2調整手段
と、複数の第6信号保持手段から出力された比較信号ML
(n,m) と複数の第8信号保持手段から出力された第6中
間信号MX(n-1,m) を前記第6信号生成手段に導く第6信
号線と、第6信号生成手段から出力された第8中間信号
ORPX(m) を前記フィードバック生成手段に導く第7信号
線と、フィードバック生成手段から出力されたフィード
バック信号ORFBを複数の第4信号生成手段の各々に導く
第5信号線と、を含む信号経路の略中間点に設けられ、
前記信号経路を通過する信号の通過時間を調整する第3
調整手段と、を含んで構成することができる。
【0029】また第2の目的を達成するために本発明
は、所定ビット長のデータから成る単位データを記憶す
る複数の記憶手段と、前記記憶手段に対応して設けら
れ、記憶手段に記憶された単位データと入力された単位
データとを比較し、比較結果を表す比較信号を出力する
複数の比較手段と、所定数の単位データで構成された元
データから隣合う単位データを順次取り出し前記記憶装
置の複数の比較手段の各々に順次入力すると共に、複数
の比較手段の各々に入力した単位データを各記憶手段と
比較手段との対に付与されたアドレスの降順に順次記憶
手段に記憶させる制御手段と、複数の比較手段の各々に
単位データが入力される毎に各比較手段から出力される
比較信号に対し、現在のサイクルをm、アドレスnの比
較手段から出力される比較信号をML(n,m) 、論理和を
+、論理積を×、否定を!、アドレスnの最大値をN、
アドレスnがNのときのn+1を0、比較結果「一致」
を1、「不一致」を0で表したとすると、 MX(n,m+1) = ML(n,m) ORMX(m)=(ML(0,m)×MX(1,m)) +(ML(1,m)×MX(2,m)) +
…+(ML(N,m)×MX(0,m)) ORPX(m)=(ML(0,m)×PX(1,m)) +(ML(1,m)×PX(2,m)) +
…+(ML(N,m)×PX(0,m)) ORFB=ORPX(m) +(ORMX(m) × !ORPX(m-1)) ORFB=1の場合は、PX(n,m+1) = ML(n,m)×PX(n+1,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)×MX(n+1,m) MSIG=PX(0,m) +PX(1,m) +…+PX(N,m) 比較結果「一致」を0、「不一致」を1で表したとする
と、 MX(n,m+1) = ML(n,m) ORMX(m)=(ML(0,m)+MX(1,m)) ×(ML(1,m)+MX(2,m)) ×
…×(ML(N,m)+MX(0,m)) ORPX(m)=(ML(0,m)+PX(1,m)) ×(ML(1,m)+PX(2,m)) ×
…×(ML(N,m)+PX(0,m)) ORFB=ORPX(m) ×( ORMX(m) + !ORPX(m-1) ) ORFB=0の場合は、PX(n,m+1) = ML(n,m)+PX(n+1,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)+MX(n+1,m) MSIG=PX(0,m) ×PX(1,m) ×…×PX(N,m) なる演算を各サイクルで各々行って、各比較手段に対応
する第5中間信号MX(n,m) 及び第6中間信号PX(n,m)
と、第7中間信号ORMX(m) と、第8中間信号ORPX(m)
と、フィードバック信号ORFBと、信号MSIGと、を生成
し、比較結果として信号MSIGを出力する比較結果制御手
段と、を含んで構成している。
【0030】また上記において、比較結果制御手段を、
複数の比較手段に対応して各々設けられ、各々対応する
アドレスnの比較手段から出力された比較信号ML(n,m)
を保持する複数の第6信号保持手段と、複数の比較手段
に対応して各々設けられ、各々対応するアドレスnの第
6信号保持手段に一旦保持された比較信号ML(n,m) を第
5中間信号MX(n,m+1) として保持する複数の第7信号保
持手段と、複数の比較手段に対応して各々設けられ、対
応するアドレスnの第6信号保持手段に保持された比較
信号ML(n,m) 、アドレスn+1の第7信号保持手段に保
持された第5中間信号MX(n+1,m) 、アドレスn+1の第
7中間信号PX(n+1,m) 及びフィードバック信号ORFBが入
力され、第6中間信号PX(n,m+1) を生成する複数の第4
信号生成手段と、複数の比較手段に対応して各々設けら
れ、各々対応するアドレスnの第4信号生成手段から出
力された第6中間信号PX(n,m) を保持し、アドレスn−
1の第4信号生成手段に出力する複数の第8信号保持手
段と、複数の比較手段に対応して各々設けられ、対応す
るアドレスnの第6信号保持手段に保持された比較信号
ML(n,m) とアドレスn+1の第7信号保持手段に保持さ
れた第5中間信号MX(n+1,m) が入力され、第7中間信号
ORMX(m) を生成する第5信号生成手段と、アドレスnの
第6信号保持手段に保持された比較信号ML(n,m) とアド
レスn+1の第8信号保持手段に保持された第6中間信
号PX(n+1,m) が入力され、第8中間信号ORPX(m) を生成
する第6信号生成手段と、前記第5信号生成手段から出
力された第7中間信号ORMX(m) と、前記第6信号生成手
段から出力された第8中間信号ORPX(m) と、1サイクル
遅延させた第8中間信号ORPX(m-1) に基づいてフィード
バック信号ORFBを生成し複数の第4信号生成手段の各々
に出力するフィードバック信号生成手段と、複数の第6
信号保持手段から出力された比較信号ML(n,m) と複数の
第7信号保持手段から出力された第5中間信号MX(n+1,
m) を前記第5信号生成手段に導く第3信号線と、第5
信号生成手段から出力された第7中間信号ORMX(m) を前
記フィードバック生成手段に導く第4信号線と、フィー
ドバック生成手段から出力されたフィードバック信号OR
FBを複数の第4信号生成手段の各々に導く第5信号線
と、を含む信号経路の略中間点に設けられ、前記信号経
路を通過する信号の通過時間を調整する第2調整手段
と、複数の第6信号保持手段から出力された比較信号ML
(n,m) と複数の第8信号保持手段から出力された第6中
間信号MX(n+1,m) を前記第6信号生成手段に導く第6信
号線と、第6信号生成手段から出力された第8中間信号
ORPX(m) を前記フィードバック生成手段に導く第7信号
線と、フィードバック生成手段から出力されたフィード
バック信号ORFBを複数の第4信号生成手段の各々に導く
第5信号線と、を含む信号経路の略中間点に設けられ、
前記信号経路を通過する信号の通過時間を調整する第3
調整手段と、を含んで構成することができる。
【0031】また本発明は、複数の記憶手段及び複数の
比較手段を連想メモリで構成することができる。
【0032】
【作用】特開平5-233212号公報に開示された検索装置で
は、順次入力する検索データに対する比較結果が1回
「一致」(すなわち単文字一致)となった段階で、プラ
イオリティエンコーダから外部へ出力される一致信号MS
IGが「一致」に対応するレベルに変化する。しかしなが
ら、圧縮アルゴリズムLZ1では、複数の単位データが連
なって構成される繰り返しデータを別の符号に変換する
ものであり、単一の単位データから成る繰り返しデータ
に対しては、比較結果が「不一致」であった場合と同じ
く符号への変換を行う必要はない。本願発明者は上記事
実に着目し、単位データに対する比較結果が1回「一
致」となった段階では比較結果として「一致」を出力す
る必要の無いことに想到し、本発明を成すに至った。
【0033】このため本発明では、制御手段が、複数の
比較手段の各々に入力した単位データを、各記憶手段と
比較手段との対に付与されたアドレスの昇順に順次記憶
手段に記憶させる場合、複数の比較手段の各々に単位デ
ータが入力される毎に各比較手段から出力される比較信
号に対し、現在のサイクルをm、アドレスnの比較手段
から出力される比較信号をML(n,m) 、論理和を+、論理
積を×、アドレスnの最大値をN、アドレスnが0のと
きのn−1をN、比較結果「一致」を1、「不一致」を
0で表したとすると、 PE(n,m) = ML(n,m)×PS(n-1,m) MSIG=PE(0,m) +PE(1,m) +…+PE(N,m) MSIG=1の場合は、PS(n,m+1) = ML(n,m)×PS(n-1,m) MSIG=0の場合は、PS(n,m+1) = ML(n,m) …(3) なる演算を各サイクルで各々行って、各比較手段に対応
する第1中間信号PS及び第2中間信号PEと、信号MSIG
と、を生成し、比較結果として信号MSIGを出力する比較
結果制御手段を設けている。
【0034】(3)式を前述の(1)式と比較すると、
(3)式における信号MSIGは(1)式におけるフィード
バック信号ORFBと論理的に等しく、単位データに対する
比較結果が1回「一致」となった段階では1とはなら
ず、複数の単位データが連なって構成される繰り返しデ
ータが発見された場合に1(一致)となる。従って、
(3)式においてこの信号MSIGが1か0かに応じて値が
定まる第1中間信号PSについても、(1)式におけるラ
ッチPSに保持される信号PSと論理的に等しい。
【0035】一方、本発明では、前述したように単位デ
ータに対する比較結果が1回「一致」となったのみでは
比較結果として「一致」を出力する必要がないことか
ら、従来の検索装置におけるフィードバック信号の代わ
りとして用いる信号MSIGを、比較結果としても出力す
る。これにより、従来の検索装置と比較してフィードバ
ック信号ORFBを生成するための信号線及びOR回路(具
体的には図16におけるOR回路158、160)が不
要となる。従って、従来の検索装置と比較して回路の規
模を小さくすることができ、本発明に係るデータ圧縮用
検索装置を小型化することが可能となる。
【0036】なお、上記では便宜的に比較結果「一致」
を1、「不一致」を0で表していたが、「一致」を0、
「不一致」を1で表したとすると、比較結果制御手段で PE(n,m) = ML(n,m)+PS(n-1,m) MSIG=PE(0,m) ×PE(1,m) ×…×PE(N,m) MSIG=0の場合は、PS(n,m+1) = ML(n,m)+PS(n-1,m) MSIG=1の場合は、PS(n,m+1) = ML(n,m) …(4) なる演算を各サイクルで各々行って、各比較手段に対応
する第1中間信号PS及び第2中間信号PEと、信号MSIG
と、を生成し、比較結果として信号MSIGを出力すればよ
い。上記(4)式は(3)式と論理的に等価であり、
(4)式の演算を行うように比較結果制御手段を構成し
た場合にも同様の効果が得られる。
【0037】また、上述した比較結果制御手段は、具体
的には、複数の比較手段に対応して各々設けられ、各々
対応するアドレスnの比較手段から出力された比較信号
ML(n,m) を保持する複数の第1信号保持手段と、複数の
比較手段に対応して各々設けられ、各々対応するアドレ
スnの第1信号保持手段に保持された比較信号ML(n,m)
、アドレスn−1の第1中間信号PS(n-1,m) 及び信号M
SIGが入力され、アドレスnの第1中間信号PS(n,m+1)
及び第2中間信号PE(n,m) を生成する複数の第1信号生
成手段と、複数の比較手段に対応して各々設けられ、各
々対応するアドレスnの第1信号生成手段から出力され
た第1中間信号PS(n,m) を保持し、アドレスn+1の第
1信号生成手段に出力する複数の第2信号保持手段と、
複数の第1信号生成手段から各々入力された第2中間信
号PE(n,m) に基づいて信号MSIGを生成し出力する第2信
号生成手段と、で構成することができる。
【0038】上記構成において、第1信号保持手段及び
第2信号保持手段は例えばラッチ等で構成することがで
き、第1信号生成手段は図16に示した従来の検索装置
の信号生成回路と同様のごく簡単な構成の回路によって
実現できる。また、第2信号生成手段はOR回路又はA
ND回路で構成することができる。従って本発明を適用
することで回路構成が複雑となって逆に回路規模が大き
くなることはなく、上記構成からも明らかなように、従
来の検索装置と比較してフィードバック信号ORFBを生成
するための信号線及びOR回路等を省略できるので、装
置を小型化できることが明らかである。
【0039】更に、制御手段が、複数の比較手段の各々
に入力した単位データを、各記憶手段と比較手段との対
に付与されたアドレスの昇順に順次記憶手段に記憶させ
る場合は、アドレスnがNのときのn+1を0、比較結
果「一致」を1、「不一致」を0で表したとすると、 PE(n,m) = ML(n,m)×PS(n+1,m) MSIG=PE(0,m) +PE(1,m) +…+PE(N,m) MSIG=1の場合は、PS(n,m+1) = ML(n,m)×PS(n+1,m) MSIG=0の場合は、PS(n,m+1) = ML(n,m) …(5) 比較結果「一致」を0、「不一致」を1で表したとする
と、 PE(n,m) = ML(n,m)+PS(n+1,m) MSIG=PE(0,m) ×PE(1,m) ×…×PE(N,m) MSIG=0の場合は、PS(n,m+1) = ML(n,m)+PS(n+1,m) MSIG=1の場合は、PS(n,m+1) = ML(n,m) …(6) なる演算を比較結果制御手段で行うようにすればよい。
上記(5)式は(3)式と、(6)式は(4)式と等価
であり、(5)式又は(6)式の演算を行うように比較
結果制御手段を構成した場合にも同様の効果が得られ
る。
【0040】(5)式又は(6)式の演算を行う比較結
果制御手段は、具体的には、前記複数の第1信号生成手
段が、各々対応するアドレスnの第1信号保持手段に保
持された比較信号ML(n,m) 、アドレスn+1の第1中間
信号PS(n+1,m) 及び信号MSIGが入力され、アドレスnの
第1中間信号PS(n,m+1) 及び第2中間信号PE(n,m) を生
成し、複数の第2信号保持手段が、各々対応するアドレ
スnの第1信号生成手段から出力された第1中間信号PS
(n,m) を保持し、アドレスn−1の第1信号生成手段に
出力するように構成することで実現できる。
【0041】ところで、例えばデジタル回路において、
クロック信号の1周期で信号が通過すべき複数の信号経
路のうち、所定の信号経路がクリティカルパスとなって
いる場合には、該所定の信号経路をクロック信号の複数
周期で通過すべき経路とみなしてクロック信号の周期を
短く(周波数を高く)すれば、回路の動作を高速化する
ことができる。しかし、従来の検索装置では、クリティ
カルパスとなっているフィードバック信号ORFBを生成出
力するための信号経路を、信号がクロック信号の1周期
に相当する期間内に通過することを前提としており、ク
ロック信号の周期を短くすることはできない。
【0042】このため本発明は、制御手段が、複数の比
較手段の各々に入力した単位データを、各記憶手段と比
較手段との対に付与されたアドレスの昇順に順次記憶手
段に記憶させる場合、複数の比較手段の各々に単位デー
タが入力される毎に各比較手段から出力される比較信号
に対し、現在のサイクルをm、アドレスnの比較手段か
ら出力される比較信号をML(n,m) 、論理和を+、論理積
を×、アドレスnの最大値をN、アドレスnが0のとき
のn−1をN、比較結果「一致」を1、「不一致」を0
で表したとすると、 MX(n,m+1) = ML(n,m) ORFB=PX(0,m) +PX(1,m) +…+PX(N,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)×PX(n-1,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)×MX(n-1,m) MSIG=PX(0,m) +PX(1,m) +…+PX(N,m) …(7) なる演算を各サイクルで各々行って、各比較手段に対応
する第3中間信号MX(n,m) 及び第4中間信号PX(n,m)
と、フィードバック信号ORFBと、を生成し、比較結果と
して信号MSIGを出力する比較結果制御手段を設けてい
る。
【0043】上記においても、単位データに対する比較
結果が1回「一致」となった段階では比較結果として
「一致」を出力する必要がないことを利用しており、
(7)式より明らかなように信号MSIGは、2個以上の単
位データが連なって構成される繰り返しデータが発見さ
れた場合にのみ1(一致)となる。またフィードバック
信号ORFBは、従来の検索装置におけるフィードバック信
号ORFB((1)式参照) と論理的に等しい。
【0044】ところで、フィードバック信号ORFBの伝播
をクロック信号の1周期分遅らせた場合、所定の周期で
2個の単位データが連なって構成される繰り返しデータ
が発見されたとしても、この周期ではフィードバック信
号ORFBが1とならず、次の周期でフィードバック信号OR
FBが1に変化する。また所定の周期で2個以上の単位デ
ータが連なって構成される繰り返しデータの末尾が検知
されたとしても、この周期ではフィードバック信号ORFB
が0とならず、次の周期でフィードバック信号ORFBが0
に変化する。
【0045】これに対し(7)式では、2個の単位デー
タが連なって構成される繰り返しデータが発見されると
(すなわち ML(n,m)×MX(n-1,m) =1)、フィードバッ
ク信号ORFBが0であってもこれが第4中間信号PX(n,m)
に反映される。また、2個以上の単位データが連なって
構成される繰り返しデータの末尾が検知された場合(す
なわち ML(n,m)×PX(n-1,m) =0)には、このときの比
較信号ML(n,m) は第3中間信号MX(n,m+1) として保持さ
れ、次の周期でアドレスn+1の比較信号 ML(n,m)との
論理積を演算することが可能である。
【0046】上記処理を実現するためには、少なくとも
第3中間信号MXを保持する信号保持手段を新たに設ける
必要があるので回路規模は若干大きくなるが、フィード
バック信号ORFBの伝播をクロック信号の1周期分遅らせ
ることができるので、クロック信号の周期を半分(周波
数を2倍)にすることができる。従って装置の動作速度
を2倍とすることができ、データ圧縮を高速で行うこと
ができる。
【0047】なお、上記では便宜的に比較結果「一致」
を1、「不一致」を0で表していたが、「一致」を0、
「不一致」を1で表したとすると、比較結果制御手段で
MX(n,m+1) = ML(n,m) ORFB=PX(0,m) ×PX(1,m) ×…×PX(N,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)+PX(n-1,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)+MX(n-1,m) MSIG=PX(0,m) ×PX(1,m) ×…×PX(N,m) …(8) なる演算を各サイクルで各々行って、各比較手段に対応
する第1中間信号PS及び第2中間信号PEと、信号MSIG
と、を生成し、比較結果として信号MSIGを出力すればよ
い。上記(8)式は(7)式と論理的に等価であり、
(7)式の演算を行うように比較結果制御手段を構成し
た場合にも同様の効果が得られる。
【0048】なお、上述した比較結果制御手段は、具体
的には、複数の比較手段に対応して各々設けられ、各々
対応するアドレスnの比較手段から出力された比較信号
ML(n,m) を保持する複数の第3信号保持手段と、複数の
比較手段に対応して各々設けられ、各々対応するアドレ
スnの第3信号保持手段に一旦保持された比較信号ML
(n,m) を第3中間信号MX(n,m+1) として保持する複数の
第4信号保持手段と、複数の比較手段に対応して各々設
けられ、各々対応するアドレスnの第3信号保持手段に
保持された比較信号ML(n,m) 、アドレスn−1の第4信
号保持手段に保持された第3中間信号MX(n-1,m) 、アド
レスn−1の第4中間信号PX(n-1,m) 及びフィードバッ
ク信号ORFBが入力され、第4中間信号PX(n,m+1) を生成
する複数の第3信号生成手段と、複数の比較手段に対応
して各々設けられ、各々対応するアドレスnの第3信号
生成手段から出力された第4中間信号PX(n,m) を保持
し、アドレスn+1の第3信号生成手段に出力する複数
の第5信号保持手段と、前記複数の第3信号生成手段か
ら各々入力された第4中間信号PX(n,m)に基づいてフィ
ードバック信号ORFBを生成し複数の第3信号生成手段の
各々に出力するフィードバック信号生成手段と複数の第
3信号生成手段から各々出力された第4中間信号PX(n,
m) を前記フィードバック信号生成手段に導く第1信号
線と、フィードバック信号生成手段から出力されたフィ
ードバック信号ORFBを複数の第3信号生成手段の各々に
導く第2信号線と、を含む信号経路の略中間点に設けら
れ、前記信号経路を通過する信号の通過時間を調整する
調整手段と、で構成することができる。
【0049】なお調整手段は、信号経路を通過する信号
の通過時間を調整することにより、複数の第3信号生成
手段にフィードバック信号ORFBが入力されるタイミング
を調整するためのものであり、例えばラッチ等のように
信号を遅延させる手段で構成することができる。
【0050】更に、制御手段が、複数の比較手段の各々
に入力した単位データを、各記憶手段と比較手段との対
に付与されたアドレスの昇順に順次記憶手段に記憶させ
る場合は、アドレスnがNのときのn+1を0、比較結
果「一致」を1、「不一致」を0で表したとすると、 MX(n,m+1) = ML(n,m) ORFB=PX(0,m) +PX(1,m) +…+PX(N,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)×PX(n+1,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)×MX(n+1,m) MSIG=PX(0,m) +PX(1,m) +…+PX(N,m) …(9) 比較結果「一致」を0、「不一致」を1で表したとする
と、 MX(n,m+1) = ML(n,m) ORFB=PX(0,m) ×PX(1,m) ×…×PX(N,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)+PX(n+1,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)+MX(n+1,m) MSIG=PX(0,m) ×PX(1,m) ×…×PX(N,m) …(10) なる演算を比較結果制御手段で行うようにすればよい。
上記(9)式は(7)式と、(10)式は(8)式と等価
であり、(9)式又は(10)式の演算を行うように比較
結果制御手段を構成した場合にも同様の効果が得られ
る。
【0051】(9)式又は(10)式の演算を行う比較結
果制御手段は、具体的には、前記複数の第3信号生成手
段が、対応するアドレスnの第3信号保持手段に保持さ
れた比較信号ML(n,m) 、アドレスn+1の第4信号保持
手段に保持された第3中間信号MX(n+1,m) 、アドレスn
+1の第4中間信号PX(n+1,m) 及びフィードバック信号
ORFBが入力され、第4中間信号PX(n,m+1) を生成し、前
記複数の第5信号保持手段が、各々対応するアドレスn
の第3信号生成手段から出力された第4中間信号PX(n,
m) を保持し、アドレスn−1の第3信号生成手段に出
力するように構成することで実現できる。
【0052】また本発明は、制御手段が、複数の比較手
段の各々に入力した単位データを、各記憶手段と比較手
段との対に付与されたアドレスの昇順に順次記憶手段に
記憶させる場合、複数の比較手段の各々に単位データが
入力される毎に各比較手段から出力される比較信号に対
し、現在のサイクルをm、アドレスnの比較手段から出
力される比較信号をML(n,m) 、論理和を+、論理積を
×、否定を!、アドレスnの最大値をN、アドレスnが
0のときのn−1をN、比較結果「一致」を1、「不一
致」を0で表したとすると、 MX(n,m+1) = ML(n,m) ORMX(m)=(ML(0,m)×MX(N,m)) +(ML(1,m)×MX(0,m)) +…+(ML(N,m)×MX(N-1 ,m)) ORPX(m)=(ML(0,m)×PX(N,m)) +(ML(1,m)×PX(0,m)) +…+(ML(N,m)×PX(N-1 ,m)) ORFB=ORPX(m) +(ORMX(m) × !ORPX(m-1)) ORFB=1の場合は、PX(n,m+1) = ML(n,m)×PX(n-1,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)×MX(n-1,m) MSIG=PX(0,m) +PX(1,m) +…+PX(N,m) …(11) なる演算を各サイクルで各々行って、各比較手段に対応
する第5中間信号MX(n,m) 及び第6中間信号PX(n,m)
と、第7中間信号ORMX(m) と、第8中間信号ORPX(m)
と、フィードバック信号ORFBと、信号MSIGと、を生成
し、比較結果として信号MSIGを出力する比較結果制御手
段とを設けている。
【0053】上記においても、(7)式と同様、単位デ
ータに対する比較結果が1回「一致」となった段階では
比較結果として「一致」を出力する必要がないことを利
用しており、2個の単位データが連なって構成される繰
り返しデータが発見されると(すなわち ML(n,m)×MX(n
-1,m) =1)、フィードバック信号ORFBが0であっても
これが第4中間信号PX(n,m)に反映される。また、2個
以上の単位データが連なって構成される繰り返しデータ
の末尾が検知された場合(すなわち ML(n,m)×PX(n-1,
m) =0)には、このときの比較信号ML(n,m) は第3中
間信号MX(n,m+1)として保持され、次の周期でアドレス
n+1の比較信号 ML(n,m)との論理積を演算することが
可能である。
【0054】上記処理を実現するためには、(3)式の
方法に比べ、第3中間信号MXを保持する信号保持手段を
新たに設ける他に、フィードバック経路がORMX(m)とORP
X(m)の2系統となるため回路規模が大きくなるが、
(7)式の方法とと同様フィードバック信号ORFBの伝播
をクロック信号の1周期分遅らせることができるので、
クロック信号の周期を半分(周波数を2倍)にすること
ができる。従って装置の動作速度を2倍とすることがで
き、データ圧縮を高速で行うことができる。
【0055】なお、上記では便宜的に比較結果「一致」
を1、「不一致」を0で表していたが、「一致」を0、
「不一致」を1で表したとすると、比較結果制御手段で
比較結果「一致」を0、「不一致」を1で表したとする
と、 MX(n,m+1) = ML(n,m) ORMX(m)=(ML(0,m)+MX(N,m)) ×(ML(1,m)+MX(0,m)) ×…×(ML(N,m)+MX(N-1 ,m)) ORPX(m)=(ML(0,m)+PX(N,m)) ×(ML(1,m)+PX(0,m)) ×…×(ML(N,m)+PX(N-1 ,m)) ORFB=ORPX(m) ×( ORMX(m) + !ORPX(m-1) ) ORFB=0の場合は、PX(n,m+1) = ML(n,m)+PX(n-1,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)+MX(n-1,m) MSIG=PX(0,m) ×PX(1,m) ×…×PX(N,m) …(12) なる演算を各サイクルで各々行って、各比較手段に対応
する第1中間信号PS及び第2中間信号PEと、信号MSIG
と、を生成し、比較結果として信号MSIGを出力すればよ
い。上記(12)式は(11)式と論理的に等価であり、
(11)式の演算を行うように比較結果制御手段を構成し
た場合にも同様の効果が得られる。
【0056】なお、上述した比較結果制御手段は、具体
的には、複数の比較手段に対応して各々設けられ、各々
対応するアドレスnの比較手段から出力された比較信号
ML(n,m) を保持する複数の第6信号保持手段と、複数の
比較手段に対応して各々設けられ、各々対応するアドレ
スnの第6信号保持手段に一旦保持された比較信号ML
(n,m) を第5中間信号MX(n,m+1) として保持する複数の
第7信号保持手段と、複数の比較手段に対応して各々設
けられ、対応するアドレスnの第6信号保持手段に保持
された比較信号ML(n,m) 、アドレスn−1の第7信号保
持手段に保持された第5中間信号MX(n-1,m) 、アドレス
n−1の第7中間信号PX(n-1,m) 及びフィードバック信
号ORFBが入力され、第6中間信号PX(n,m+1) を生成する
複数の第4信号生成手段と、複数の比較手段に対応して
各々設けられ、各々対応するアドレスnの第4信号生成
手段から出力された第6中間信号PX(n,m) を保持し、ア
ドレスn+1の第4信号生成手段に出力する複数の第8
信号保持手段と、複数の比較手段に対応して各々設けら
れ、対応するアドレスnの第6信号保持手段に保持され
た比較信号ML(n,m) とアドレスn−1の第7信号保持手
段に保持された第5中間信号MX(n-1,m) が入力され、第
7中間信号ORMX(m) を生成する第5信号生成手段と、ア
ドレスnの第6信号保持手段に保持された比較信号ML
(n,m) とアドレスn−1の第8信号保持手段に保持され
た第6中間信号PX(n-1,m) が入力され、第8中間信号OR
PX(m) を生成する第6信号生成手段と、前記第5信号生
成手段から出力された第7中間信号ORMX(m) と、前記第
6信号生成手段から出力された第8中間信号ORPX(m)
と、1サイクル遅延させた第8中間信号ORPX(m-1) に基
づいてフィードバック信号ORFBを生成し複数の第4信号
生成手段の各々に出力するフィードバック信号生成手段
と、複数の第6信号保持手段から出力された比較信号ML
(n,m) と複数の第7信号保持手段から出力された第5中
間信号MX(n-1,m) を前記第5信号生成手段に導く第3信
号線と、第5信号生成手段から出力された第7中間信号
ORMX(m) を前記フィードバック生成手段に導く第4信号
線と、フィードバック生成手段から出力されたフィード
バック信号ORFBを複数の第4信号生成手段の各々に導く
第5信号線と、を含む信号経路の略中間点に設けられ、
前記信号経路を通過する信号の通過時間を調整する第2
調整手段と、複数の第6信号保持手段から出力された比
較信号ML(n,m) と複数の第8信号保持手段から出力され
た第6中間信号MX(n-1,m) を前記第6信号生成手段に導
く第6信号線と、第6信号生成手段から出力された第8
中間信号ORPX(m) を前記フィードバック生成手段に導く
第7信号線と、フィードバック生成手段から出力された
フィードバック信号ORFBを複数の第4信号生成手段の各
々に導く第5信号線と、を含む信号経路の略中間点に設
けられ、前記信号経路を通過する信号の通過時間を調整
する第3調整手段と、で構成することができる。
【0057】更に、制御手段が、複数の比較手段の各々
に入力した単位データを各記憶手段と比較手段との対に
付与されたアドレスの降順に順次記憶手段に記憶させる
場合は、アドレスnの最大値をN、アドレスnがNのと
きのn+1を0、比較結果「一致」を1、「不一致」を
0で表したとすると、 MX(n,m+1) = ML(n,m) ORMX(m)=(ML(0,m)×MX(1,m)) +(ML(1,m)×MX(2,m)) +…+(ML(N,m)×MX(0,m )) ORPX(m)=(ML(0,m)×PX(1,m)) +(ML(1,m)×PX(2,m)) +…+(ML(N,m)×PX(0,m )) ORFB=ORPX(m) +(ORMX(m) × !ORPX(m-1)) ORFB=1の場合は、PX(n,m+1) = ML(n,m)×PX(n+1,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)×MX(n+1,m) MSIG=PX(0,m) +PX(1,m) +…+PX(N,m) …(13) 比較結果「一致」を0、「不一致」を1で表したとする
と、 MX(n,m+1) = ML(n,m) ORMX(m)=(ML(0,m)+MX(1,m)) ×(ML(1,m)+MX(2,m)) ×…×(ML(N,m)+MX(0,m )) ORPX(m)=(ML(0,m)+PX(1,m)) ×(ML(1,m)+PX(2,m)) ×…×(ML(N,m)+PX(0,m )) ORFB=ORPX(m) ×( ORMX(m) + !ORPX(m-1) ) ORFB=0の場合は、PX(n,m+1) = ML(n,m)+PX(n+1,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)+MX(n+1,m) MSIG=PX(0,m) ×PX(1,m) ×…×PX(N,m) …(14) なる演算を比較結果制御手段で行うようにすればよい。
上記(13)式は(11)式と、(14)式は(12)式と等価
であり、(13)式又は(14)式の演算を行うように比較
結果制御手段を構成した場合にも同様の効果が得られ
る。
【0058】(13)式又は(14)式の演算を行う比較結
果制御手段は、具体的には、前記複数の第4信号生成手
段が、対応するアドレスnの第6信号保持手段に保持さ
れた比較信号ML(n,m) 、アドレスn+1の第7信号保持
手段に保持された第5中間信号MX(n+1,m) 、アドレスn
+1の第7中間信号PX(n+1,m) 及びフィードバック信号
ORFBが入力され、第6中間信号PX(n,m+1) を生成し、前
記複数の第8信号保持手段が、各々対応するアドレスn
の第4信号生成手段から出力された第6中間信号PX(n,
m) を保持し、アドレスn−1の第4信号生成手段に出
力し、アドレスnの第6信号保持手段に保持された比較
信号ML(n,m) とアドレスn+1の第7信号保持手段に保
持された第5中間信号MX(n+1,m) が入力され、第7中間
信号ORMX(m) を生成する第5信号生成手段と、アドレス
nの第6信号保持手段に保持された比較信号ML(n,m) と
アドレスn+1の第8信号保持手段に保持された第6中
間信号PX(n+1,m) が入力され、第8中間信号ORPX(m) を
生成する第6信号生成手段と、前記第7中間信号ORMX
(m) と、第8中間信号ORPX(m) と、1サイクル遅延させ
た第8中間信号ORPX(m-1) に基づいてフィードバック信
号ORFBを生成するように構成することで実現できる。
【0059】また(3)式、(4)式、(7)式、
(8)式、(11)式、(12)式ではアドレスnが0のと
きのn−1をNとしており、アドレスnが0のときの第
1中間信号PS(n-1,m) 、第3中間信号MX(n-1,m) 及び第
4中間信号PX(n-1,m) として、PS(N,m) 、第3中間信号
MX(N,m) 及び第4中間信号PX(N,m) が用いられる。これ
により、複数の記憶手段による記憶容量よりも元データ
が大きい場合に、複数の記憶手段の全てに単位データを
記憶した後にアドレスnが0の記憶手段に単位データを
記憶させて、複数の記憶手段を所謂リングバッファとし
て用いることができる。
【0060】また(5)式、(6)式、(9)式、(1
0)式、(13)式、(14)式ではアドレスnがNのときの
n+1を0 としており、アドレスnがNのときの第1中
間信号PS(n+1,m) 、第3中間信号MX(n+1,m) 及び第4中
間信号PX(n+1,m) として、PS(0,m) 、第3中間信号MX
(0,m) 及び第4中間信号PX(0,m) が用いられる。これに
より、複数の記憶手段による記憶容量よりも元データが
大きい場合に、上記と同様に複数の記憶手段の全てに単
位データを記憶した後にアドレスnがNの記憶手段に単
位データを記憶させて、複数の記憶手段を所謂リングバ
ッファとして用いることができる。
【0061】一方、元データの大きさに比較して複数の
記憶手段による記憶容量が充分に大きいことが予め分か
っている場合には、(3)式、(4)式、(7)式、
(8)式、(11)式、(12)式においてアドレスn=0
に対応する第1中間信号PS(n-1,m) 、第3中間信号MX(n
-1,m) 及び第4中間信号PX(n-1,m) 、(5)式、(6)
式、(9)式、(10)式、(13)式、(14)式において
アドレスn=Nに対応する第1中間信号PS(n+1,m) 、第
3中間信号MX(n+1,m) 及び第4中間信号PX(n+1,m) を
「不一致」に対応する一定値としてもよい。
【0062】また、上記では便宜的に比較結果「一致」
を1、「不一致」を0、又は比較結果「一致」を0、
「不一致」を1で表し、(3)式乃至(14)式によって
本発明を規定していたが、本発明は、「一致」「不一
致」に応じて信号のレベルを変化させる実施態様に限定
されるものではなく、例えば各信号を2ビットのデータ
とし、例えば「一致」は(10)2 、「不一致」は(01)
2 (( )2 は ( )内の数値が2進数であることを表す)に
値を変化させる実施態様も含んでいる。但し、装置構成
が複雑になることを考慮すると、信号のレベルを「一
致」「不一致」に対応させることが好ましい。
【0063】
【実施例】以下、図面を参照して本発明の実施例を詳細
に説明する。
【0064】〔第1実施例〕図1には本第1実施例に係
る、本発明が適用されたマイクロコンピュータ10の構
成(一部)が示されている。マイクロコンピュータ10
はCPU12、ROM14、RAM16を備えており、
これらはアドレスバス、データバス、コントロールバス
等から成るバス18を介して互いに接続されている。
【0065】またマイクロコンピュータ10は、本発明
に係るデータ圧縮用検索装置としての複数の繰り返しデ
ータ検索装置20A、20B、…を備えており、これら
は繰り返しデータ検索装置の作動を制御するデータ圧縮
コントローラ22を介してバス18に接続されている。
なお、繰り返しデータ検索装置20A、20B、…は各
々同一の構成であり、本実施例ではP+1個の繰り返し
データ検索装置が設けられている。以下ではP+1個の
繰り返しデータ検索装置を「繰り返しデータ検索装置2
0」と総称してその構成を説明すると共に、個々の繰り
返しデータ検索装置については「ブロック0」〜「ブロ
ックP」と称して区別する。
【0066】図2に示すように、繰り返しデータ検索装
置20は図2に「○」で示す多数の連想メモリセル(以
下、連想メモリをCAMという)28がマトリクス状に
配置されて構成されたCAMセルアレイ26を備えてい
る。CAMセルアレイ26にはN+1本のワード線WL0
〜WLN 、N+1本のマッチ線MATCH0〜MATCHN、M+1組
のビット線対BL0,BL0'〜BLM,BLM'が各々マトリクス状に
配置されており、各CAMセル28は、ワード線WL0 〜
WLN の何れか、マッチ線MATCH0〜MATCHNの何れか及びビ
ット線対BL0,BL0'〜BLM,BLM'の何れかに各々接続されて
いる。
【0067】前記多数のCAMセル28は各々同一の構
成とされている。図3に示すように、CAMセル28は
互いの入力端と出力端とが接続された2個のNOT回路
30、32を備えている。このNOT回路30、32の
ループによって1ビットのデータを記憶する記憶回路
(SRAM型)が構成されている。NOT回路30の出
力端はN-MOSFET34のソースに、NOT回路32の出力
端は同じくN-MOSFET36のソースに各々接続されてお
り、N-MOSFET34、36のゲートは各々ワード線WLに接
続されている。
【0068】またN-MOSFET34、36のドレインは各々
ビット線BL,BL'に接続されている。CAMセル28に1
ビットのデータを書き込む場合には、ワード線WLはハイ
レベルとされ、ビット線BLは書き込むデータDに対応し
たレベル(Dが「1」の場合はハイレベル、「0」の場
合はローレベル)とされ、ビット線BL' はビット線BLの
レベルに対して反転したレベル(ビット線BLがハイレベ
ルの場合はローレベル、ビット線BLがローレベルの場合
はハイレベル)とされる。これにより、N-MOSFET34、
36がオンし、ビット線BL又はBL' を介して供給された
データがNOT回路30、32のループに保持される。
【0069】また、NOT回路30の出力端はN-MOSFET
38のゲートに、NOT回路32の出力端はN-MOSFET4
0のゲートに各々接続されている。なお、NOT回路3
2からはデータDを反転したデータ(Q’)が出力さ
れ、NOT回路30からはデータQ’を反転したデータ
Q(=D)が出力される。N-MOSFET38、40のドレイ
ンは各々ビット線BL',BLに接続されており、ソースはN-
MOSFET42のゲートに接続されている。N-MOSFET42の
ドレインはマッチ線MATCH に接続され、ソースは接地さ
れている。
【0070】なお本実施例では、同一のワード線及びマ
ッチ線に、一例として M+1個のCAMセル28を接続し
ており、同一のワード線及びマッチ線に接続された複数
のCAMセル28(以下、これらをCAMセル列とい
う)に M+1ビットのデータを記憶できるようになってい
る。また、CAMセルアレイ26ではCAMセル列毎に
アドレスが付与されている。また、単一のCAMセル列
を構成する各CAMセル28のNOT回路30、32の
ループは本発明の記憶手段に、各CAMセルのN-MOSFET
38、40、42は本発明の比較手段に各々対応してい
る。
【0071】一方、図2に示すように、繰り返しデータ
検索装置20はタイミングコントローラ50を備えてい
る。タイミングコントローラ50はデータ圧縮コントロ
ーラ22に接続されている。データ圧縮コントローラ2
2からタイミングコントローラ50に検索指示SEARCHが
入力されると、繰り返しデータ検索装置20は、入力さ
れた検索データをCAMセルアレイ26の各CAMセル
列に記憶されたデータと比較し、次に前記検索データを
CAMセルアレイ26の何れかのCAMセル列に書き込
むことを繰り返す「検索」モードを実行する。
【0072】タイミングコントローラ50にはデータ圧
縮コントローラ22からシステムクロックCLOCK が入力
され、システムクロックCLOCK と同期したクロックSRを
生成し出力する。クロックSRはタイミングコントローラ
50に接続された書込みバッファ56に出力される。
【0073】書込みバッファ56はデータ圧縮コントロ
ーラ22に接続されており、コントーラ22から検索デ
ータ(本発明における元データから取り出した単位デー
タに相当)が順次入力される。書込みバッファ56には
ビット線対BL0,BL0'〜BLM,BLM'が各々接続されており、
入力された検索データを保持すると共にタイミングコン
トローラ50から入力されたクロックSRに同期したタイ
ミングで、保持している検索データの値に応じてビット
線対BL0,BL0'〜BLM,BLM'のレベルを変化させる(ビット
線対を駆動する)。書込みバッファ56が所定の検索デ
ータに応じて各ビット線対を駆動している間に、各CA
Mセル列に記憶されたデータと前記所定の検索データと
の比較、及び所定のCAMセル列への所定の検索データ
の書込みが行われる。
【0074】タイミングコントローラ50にはアドレス
デコーダ52も接続されており、クロックSRはアドレス
デコーダ52にも出力される。アドレスデコーダ52は
データ圧縮コントローラ22に接続されており、データ
圧縮コントローラ22から検索データの書込みを行なう
CAMセル列のアドレス(書込みアドレスWADR) が指定
される。アドレスデコーダ52にはワード線WL0 〜WLN
が接続されており、クロックSRと同期したタイミング
で、より詳しくは書込みバッファ56が所定の検索デー
タに応じて各ビット線対を駆動している期間内で、かつ
各CAMセル列に記憶されたデータと所定の検索データ
との比較が行われた後に、指定された書込みアドレスWA
DRに対応するCAMセル列のワード線をアサートし(イ
ネーブルとし)、所定の検索データを指定されたアドレ
スに対応するCAMセル列に書き込む。
【0075】またタイミングコントローラ50には、各
々マッチ線MATCH0〜MATCHNに接続されたN+1個のマッ
チ線コントローラ580 〜58N も各々接続されてお
り、クロックSRはマッチ線コントローラ580 〜58N
の各々にも出力される。マッチ線コントローラ580
58N は、入力されたクロックSRに基づき各CAMセル
列に記憶されたデータと検索データとの比較に先立って
マッチ線MATCH0〜MATCHNをハイレベルにチャージ(プリ
チャージ)する。このマッチ線コントローラ580 〜5
N によるマッチ線のプリチャージは、書込みバッファ
56が所定の検索データに応じた各ビット線対の駆動を
終了してから、次の検索データに応じた各ビット線対の
駆動を開始する迄の期間内に行われる。
【0076】またマッチ線MATCH0〜MATCHNは、本発明の
比較結果制御手段の一部を構成する比較結果制御回路6
0に各々接続されている。図4に示すように、比較結果
制御回路60は第1の信号保持手段としてのラッチ62
0 〜62N 、第1の信号生成手段としての信号生成回路
640 〜64N 、第2の信号保持手段としてのラッチ6
0 〜66N を備えている。なお図4では、マッチ線コ
ントローラ580 〜58N の図示を省略している。ま
た、図4では信号生成回路640 〜64N のうち、マッ
チ線MATCH1に接続された信号生成回路641 についての
み具体的な構成を示しているが、他の信号生成回路も各
々同一の構成であり、以下では比較結果制御回路60の
うちマッチ線MATCH1に対応する回路部分についてのみ説
明する。
【0077】マッチ線MATCH1はラッチ621 の入力端に
接続されており、ラッチ621 の出力端は信号生成回路
641 のAND回路681 、701 に各々2個設けられ
た入力端の一方に各々接続されている。AND回路68
1 の2個の入力端の他方にはOR回路721 の出力端が
接続されており、OR回路721 の2個の入力端の一
方、及びAND回路701 の2個の入力端の他方は前段
のラッチ660 の出力端に各々接続されている。AND
回路681 の出力端はラッチ661 の入力端に接続され
ており、ラッチ661 の出力端は前記と同様に、次段の
信号生成回路642 の図示しないOR回路722 及びA
ND回路722 の入力端に各々接続されている。またA
ND回路701 の出力端は第1プライオイティエンコー
ダ74の入力端に接続されている。
【0078】なお、図4にはブロック0の繰り返しデー
タ検索装置20の比較結果制御回路60を示しており、
信号生成回路640 のOR回路720 の2個の入力端の
一方は、ブロックPの比較結果制御回路60のラッチ6
N の出力端に接続されている。また、ブロック0の比
較結果制御回路60のラッチ66N の出力端は、ブロッ
ク1の比較結果制御回路60のOR回路720 の2個の
入力端の一方に接続されている(図2も参照)。
【0079】第1プライオリティエンコーダ74の出力
端は第2プライオリティエンコーダ76の入力端に接続
されている。第1プライオリティエンコーダ74は、比
較結果制御回路60のAND回路700 〜70N から各
々入力された信号(信号PE0〜PEN)のうち「検索」動
作を行った後に入力信号がハイレベルとなっている信号
に対応するアドレスをエンコードして一致アドレスMADR
0として第2プライオリティエンコーダ76に出力する
と共に、信号PE0〜PENの論理和を一致信号MSIG0とし
て第2プライオリティエンコーダ76に出力する。な
お、入力された信号PE0〜PENのうちの複数の信号がハ
イレベルであった場合には、一致アドレスMADR0とし
て、予め定められた基準に従って優先順位の高い連想メ
モリセル列のアドレス、例えば最も低いアドレスを出力
する。
【0080】一例として、8個の入力信号に対し3ビッ
トの一致アドレスMADR(MADR0 〜MADR2 ) 及び一致信号
MSIGを出力する8ビットのプライオリティエンコーダの
具体的な構成を図5に示し、該プライオリティエンコー
ダへの8個の入力信号のレベルの組み合わせと出力(一
致アドレスMADR及び一致信号MSIG)の関係を示す真理値
表を次の表1に示す。
【0081】
【表1】
【0082】なお表1において「H」はハイレベル、
「L」はローレベルを表し、空欄の部分は、入力信号の
レベルの高低に拘わらず一致アドレスMADR及び一致信号
MSIGが変化しないことを表している。表1からも明らか
なように、図5に一例として示したプライオリティエン
コーダは、一致アドレスMADRとして、レベルがハイの入
力信号のアドレスを出力すると共に、ハイレベルの信号
が複数入力された場合は最も低いアドレスを出力する。
また、図5からも明らかなように、一致信号MSIGとして
8個の入力信号の論理和を表す信号が出力される。
【0083】また、第2プライオリティエンコーダ76
の入力端には、他の繰り返しデータ検索装置20の第1
プライオリティエンコーダ74から出力された一致アド
レスMADR及び一致信号MSIGも入力される。第2のプライ
オリティエンコーダ76の出力端はデータ圧縮コントロ
ーラ22に接続されている。
【0084】第2プライオリティエンコーダ76は第1
プライオリティエンコーダ74とほぼ同様の構成であ
り、複数の第1プライオリティエンコーダ74から各々
入力されたアドレスMADR0〜MADRPのうち、MSIG0〜MS
IGPがハイレベルであるものの中から予め定められた基
準に従い優先順位の高いアドレス、例えば最も低いアド
レスにそのブロックのアドレス(複数の繰り返しデータ
検索装置に各々付与されたアドレス)を付加したものを
一致アドレスMADR0としてデータ圧縮コントローラ22
に出力すると共に、複数の第1プライオリティエンコー
ダ74から各々入力された一致信号MSIG0〜MSIGPの論
理和を表す信号を一致信号MSIGとしてデータ圧縮コント
ローラ22に出力する。なお、第1プライリティエンコ
ーダ74及び第2プライオリティエンコーダ76におい
て、一致信号MSIGを生成する部分の回路は、本発明の第
2の信号生成手段に相当している。
【0085】第2プライオリティエンコーダ76の一致
信号出力端は、信号生成回路640〜64 N の各々のO
R回路720 〜72N の入力端に図示しないインバータ
を介して接続されており(OR回路721 のみ図示)、
OR回路720 〜72N には一致信号MSIGが反転されて
入力される。従って、図4からも明らかなように、本第
1実施例の比較結果制御回路60では、フィードバック
信号ORFBを生成するための信号線及びOR回路が省略さ
れている。従来の検索装置では、前記信号線を配設した
部分が回路全体のうちの非常に大きな面積を占めている
ので、これらが省略されることにより、従来の検索装置
と比較して回路の規模は大幅に小さくなっている。
【0086】次に本第1実施例の作用として、まず繰り
返しデータ検索装置20における比較動作について説明
する。被圧縮データ(元データ)の圧縮を行う場合、デ
ータ圧縮コントローラ22は後述するように元データか
ら所定ビット長の単位データを検索データとして順次取
り出し、検索指示SEARCH、書込みアドレスWADRと共に繰
り返しデータ検索装置20に順次出力する。
【0087】検索指示SEARCHが入力されると、繰り返し
データ検索装置20ではタイミングコントローラ50か
ら書込みバッファ56、アドレスデコーダ52及びマッ
チ線コントローラ580 〜58N にクロックSRが出力さ
れ、マッチ線コントローラ58ではCAMセルアレイ2
6における比較動作に先立ってマッチ線MATCH0〜MATCHN
のプリチャージを行い、書込みバッファ56では入力さ
れた検索データを保持すると共に、検索データに応じて
ビット線対BL0,BL0'〜BLM,BLM'を駆動する。
【0088】CAMセルアレイ26の各CAMセル28
では、NOT回路30から出力されるデータQが「1」
(ハイレベル)であればN-MOSFET38がオンしており、
NOT回路32から出力されるデータQ’が「1」であ
ればN-MOSFET40がオンしている。従って、NOT回路
30、32のループに保持されているデータQ(Q’)
とビット線対BL,BL'を介して供給されるデータD(D')
とが一致している場合にはN-MOSFET42はオンしない
が、不一致の場合にはN-MOSFET38、40のうちオンし
ている方のN-MOSFETのドレインからソースに電流が流
れ、N-MOSFET42がオンする。これにより、前記プリチ
ャージされたマッチ線MATCH のレベルはローレベルに低
下される(ディスチャージ)。
【0089】上記のデータの比較はCAMセル28の各
々で同時に行なわれる。ところで、1本のマッチ線MATC
H には複数のCAMセル28(CAMセル列)が接続さ
れているので、クロックSRの1周期のほぼ前半で、CA
Mセル列に記憶されている文字データと入力された文字
データとを比較する比較動作が完了し、各マッチ線は、
接続されている全てのCAMセル28でN-MOSFET42が
オンしなかった場合、すなわちCAMセル列に記憶され
ている文字データと書込みバッファ56に入力された文
字データとが一致していた場合にのみハイレベルの状態
で維持され、不一致であった場合にはローレベルとされ
ることになる。
【0090】クロックSRの1周期の後半には、アドレス
デコーダ52により前記入力された書込みアドレスWADR
に対応するCAMセル列のワード線がアサートされ(イ
ネーブルとされ)、該CAMセル列に検索データが書き
込まれる。そして前記CAMセル列への検索データの書
込みが終了しワード線がローレベルにされると共に書込
みバッファ56による各ビット線対の駆動が停止される
と、マッチ線コントローラ58により各マッチ線のプリ
チャージが再び行われる。
【0091】以上の動作(比較動作)はクロックSRの1
周期の間に行われ、データ圧縮コントローラ22からの
検索データ、検索指示SEARCH、書込みアドレスWADRの入
力に同期して繰り返される。
【0092】次に比較結果制御回路60の動作につい
て、図6を参照して説明する。なお、図6では元データ
がテキストデータであり、アドレス「0」〜「5」のC
AMセル列に既に「ABABBC」の文字データ列が順
に記憶されており、かつ検索データとして「ABBBC
…」の順に文字データが入力された場合を例として示し
ており、ラッチ620 〜625 をML0〜ML5、ラッチ6
0 〜665 をPS0〜PS5、AND回路700 〜705
から出力される信号をPE0〜PE5と称している。また、
以下では他の繰り返しデータ検索装置においては比較動
作の結果が連続して「不一致」となっているものとす
る。
【0093】図6(A)に示すように、検索データとし
て、まず「A」の文字データが入力されると、アドレス
「0」及び「2」のCAMセル列(図6ではハッチング
で示す)で比較結果が「一致」となり、マッチ線MATCH0
〜MATCH5のうちマッチ線MATCH0及びMATCH2以外はローレ
ベルにディスチャージされ、マッチ線MATCH0及びMATCH2
のみがハイレベルのまま維持される。各マッチ線MATCH0
〜MATCH5のレベルは比較結果制御回路60のラッチML0
〜ML5に各々保持された後に、次の周期で信号生成回路
640 〜645 に各々出力される。
【0094】図6(A)に示すように、このときはラッ
チPS0〜PS5に保持されているレベルがローレベル(図
6では「0」:図示していないラッチPS6〜PSN、及び
他のブロックのラッチPS0〜PSNについても同様とす
る)であるので、AND回路700 〜705 から出力さ
れる信号PE0〜PE5は何れもローレベルとなり、第1プ
ライオリティエンコーダ74から出力される一致信号MS
IG0及び第2プライオリティエンコーダ76から出力さ
れる一致信号MSIGもローレベルとなる。このように本第
1実施例では、1文字のみ一致したのみ、すなわち1回
の比較動作で比較結果が「一致」となったCAMセル列
が有ったのみでは一致信号MSIGはハイレベルとはならな
い。また一致信号MSIGがローレベルであるので、OR回
路720 〜725 の出力は何れもハイレベルとなり、ラ
ッチML0〜ML5から出力された信号のレベルはラッチPS
0〜PS5にそのまま保持される(図6(B)参照)。
【0095】図6(B)に示すように、次の検索データ
として「B」の文字データが入力されると、アドレス
「1」、「3」、「4」のCAMセル列で比較結果が
「一致」となり、各マッチ線のレベル (マッチ線MATCH
1,3,5のみがハイレベル) はラッチML0〜ML5に各々保
持される。そして次の周期では、ラッチML1、ML3、ML
5の出力が各々ハイレベルになると共に、ラッチPS0、
PS2(すなわちラッチML1、ML3の前段のラッチPS)の
出力が各々ハイレベルとなるので、図6(B)に示すよ
うに信号PE1、PE3(AND回路701 、703 の出
力)がハイレベルとなり、第1プライオリティエンコー
ダ74から出力される一致信号MSIG0、第2プライオリ
ティエンコーダ76から出力される一致信号MSIGが各々
ハイレベルになる。
【0096】このように、一致信号MSIGは2文字以上連
続して一致した場合、すなわち続けて入力された複数の
検索データから成るデータ列がCAMセルアレイ26に
記憶されていた場合にのみハイレベルとなる。なお、第
1プライオリティエンコーダ74が一致アドレスMADR0
として最も低いアドレスを出力するものであるとする
と、一致アドレスMADR0は信号PE1に対応するアドレス
「1」となる。また、第2プライオリティエンコーダ7
6から出力される一致アドレスMADRについては、他の繰
り返しデータ検索装置から入力される一致アドレスの値
にも依存するが、他の繰り返しデータ検索装置でデータ
が一致していない場合には、一致アドレスMADRの下位側
のビットの値は一致アドレスMADR0の値に等しくなる。
また一致アドレスMADRの上位側のビットの値は、一致し
たエンコーダブロックのアドレス(複数の繰り返しデー
タ検索装置の各々に付与されたアドレス)、この場合は
アドレス0のブロックなので全て0となる。
【0097】図6(C)に示すように、次の検索データ
として「B」の文字データが入力されると、前回と同じ
マッチ線がハイレベルとなり、各マッチ線のレベルがラ
ッチML0〜ML5に各々一旦保持された後に、信号生成回
路640 〜645 に各々出力される。このときには、出
力がハイレベルとなるラッチML1、ML3、ML4のうち前
段のラッチPSの出力もハイレベルであるラッチはラッチ
ML4のみであるので、信号PE0〜PE5のうちAND回路
704 から出力される信号PE4のみがハイレベルとな
る。従って、第1プライオリティエンコーダ74から出
力される一致信号MSIG0はハイレベルで維持され、一致
アドレスMADR0は信号PE4に対応するアドレス「4」と
なる。
【0098】また、一致信号MSIGがハイレベルで維持さ
れるので、現在のサイクルをmとすると、アドレスnの
ラッチPSには、アドレスnのラッチMLの出力ML(n,m)
と、前段のラッチPSの出力PS(n-1,m) と、の論理積に相
当する信号が出力される。この結果、ラッチPS4のみハ
イレベルを保持することになる。
【0099】続いて図6(D)に示すように、次の検索
データとして「B」の文字データが入力される。この場
合、ラッチML0〜ML5に各々一旦保持された後に信号生
成回路640 〜645 に各々入力される各マッチ線のレ
ベルは前回と同じであるが、ハイレベルの信号を出力す
るラッチML1、ML3、ML4の何れについても、前段のラ
ッチPSから出力される信号がローレベルであるので、信
号PE0〜PE5は何れもローレベルとなり、一致信号MSIG
0及び一致信号MSIGもローレベルとなる。また一致信号
MSIGがローレベルになると、各信号生成回路640 〜6
5 のOR回路720 〜725 の出力信号が各々ハイレ
ベルとなるので、ラッチML1〜ML5から出力された信号
のレベルはラッチPS0〜PS5にそのまま保持される。
【0100】更に、図6(E)に示すように次の検索デ
ータとして「C」の文字データが入力されるとマッチ線
MATCH5のみがハイレベルとなり、各マッチ線のレベルが
ラッチML0〜ML5に各々一旦保持された後に、信号生成
回路640 〜645 に各々出力される。このときには、
ラッチML5からのみハイレベルの信号が出力され、前段
のラッチPS4からもハイレベルの信号が出力されるの
で、信号PE0〜PE5のうちAND回路705 から出力さ
れる信号PE5のみがハイレベルとなる。従って、第1プ
ライオリティエンコーダ74から出力される一致信号MS
IG0はハイレベルで維持され、一致アドレスMADR0は信
号PE5に対応するアドレス「5」となる。
【0101】ところで、上述した繰り返しデータ検索装
置20の動作において、マッチ線MATCH2〜MATCH5のレベ
ル、ラッチML2〜ML5及びラッチPS2〜PS5から出力さ
れる信号のレベル、AND回路702 〜705 から出力
される信号PE2〜PE5のレベルは、各々図7に示すタイ
ミングで変化する。なお図7では、マッチ線のプリチャ
ージによるレベルの変化の図示を省略している。
【0102】先に説明した図6では、各ラッチが保持し
ているレベルの変化、信号PE及び一致信号MSIGのレベル
の変化、及び一致アドレスMADRの値の変化を順次入力さ
れる各検索データと対応させ、図6(A)〜(E)に分
けて示していたが、実際には図7にも示すように、検索
データはクロックSRの1周期毎に順次入力され、入力さ
れた検索データについての比較結果に応じた各信号のレ
ベルの変化は、クロックSRの1周期毎にパイプライン方
式で順次伝播していくようになっている。
【0103】なお一致信号MSIGについては、全ての繰り
返しデータ検索装置の第1プライオリティエンコーダ7
4に入力された信号PEの論理和に相当する信号であるた
め、信号が通過する信号線の長さが非常に長く、図7に
も示すように信号PEの変化に対して遅延する。クロック
SRの周波数は、この遅延時間を考慮し、1周期の長さが
前記遅延時間よりも長くなるように定められている。
【0104】本第1実施例に係る比較結果制御回路60
では、信号生成回路64から出力された信号PEが、従来
の検索装置のようにラッチを介することなく第1プライ
オリティエンコーダ74に入力されるので、図7を従来
の検索装置におけるタイミングチャートを示す図16と
比較しても明らかなように、第1プライオリティエンコ
ーダ74に入力される信号PEのレベルの変化は、従来の
検索装置における信号PSと比較して1クロック早く、ま
た1文字のみ一致した段階では信号PEはハイレベルにな
らない。従って、第2プライオリティエンコーダ76か
ら出力される一致アドレスMADRの値の変化が、従来の検
索装置における一致アドレスMADRと比較して1クロック
早くなる。
【0105】また第2プライオリティエンコーダ76か
ら出力される一致信号MSIGについても、従来の検索装置
における一致信号MSIGよりも1クロック早く、かつ2文
字以上連続して一致した場合にのみハイレベルとなり、
従来の検索装置のフィードバック信号ORFBと同じタイミ
ングで同じようにレベルが変化することになる。
【0106】次にデータ圧縮コントローラ22における
処理について、図8のフローチャートを参照して説明す
る。なお、図8に示した処理は、データ圧縮コントロー
ラ22にバス18を介して圧縮すべきデータ(元デー
タ)が転送され、CPU12から元データの圧縮が指示
されると実行される。
【0107】ステップ200では繰り返しデータ検索装
置20の比較結果制御回路60のラッチ620 〜6
N 、ラッチ660 〜66N を各々リセットする。ステ
ップ202では一致長MLENを「1」に、書込みアドレス
WADRを「0」に各々初期設定する。ステップ204では
繰り返しデータ検索装置20への元データの出力が終了
したか否か判定する。判定が否定された場合には、元デ
ータから先頭の1文字に対応する文字Cのデータを検索
データとして取り出し、繰り返しデータ検索装置20に
検索指示SEARCH、書込みアドレスWADRと共に出力する。
これにより、繰り返しデータ検索装置20では前述した
検索動作が行われる。
【0108】次のステップ208では、第2プライオリ
ティエンコーダ76から出力される一致信号MSIGがハイ
レベルになったか否か判定する。このときには、先のス
テップ200で各ラッチ62及び各ラッチ66をリセッ
トしたことに伴って一致信号MSIGはローレベルで維持さ
れるので、判定が否定されてステップ210へ移行す
る。ステップ210では今回の比較動作が所定の元デー
タに対する第1回目の比較動作であるか否か判定し、判
定が否定された場合はステップ212で圧縮データの出
力処理を行うことなくステップ214へ移行する。前述
したように一致信号MSIGは2文字以上連続して一致しな
いとハイレベルにならないため、比較結果「不一致」が
続いている場合は後述するように圧縮データとして前回
検索した文字を出力する。従って、この時点では圧縮デ
ータとして出力すべきデータがないためステップ212
を実行しない。
【0109】ステップ214では一致長MLENに「1」を
代入してステップ219へ移行する。ステップ219で
は前回検索文字Cxに今回の文字Cのデータを設定し、
次のステップ220では現在の書込みアドレスWADR(第
1回目の比較動作では0)に対応するCAMセル列に文
字Cのデータを書き込む。この書込み処理は、実際には
アドレスデコーダ52によって書込みアドレスWADRに対
応するCAMセル列のワード線をアサートする(イネー
ブルにする)ことにより行われる。ステップ222では
次の書込みアドレスWADRとして、書込みアドレスWADRに
1を加算し(従って文字データはCAMセル列のアドレ
スの昇順に書き込まれる)、CAMセルアレイ26のサ
イズm(本実施例ではm=N+1)で除した余りを設定
する。
【0110】これにより全てのCAMセル列にデータを
書き込んだ後は、アドレス「0」のCAMセル列にデー
タが書き込まれるので、CAMセルアレイ26が所謂リ
ングバッファとして用いられ、CAMセルアレイ26の
オーバフロー等が発生することはない。
【0111】ステップ222の処理を行った後はステッ
プ204へ戻る。ステップ204の判定が否定された場
合にはステップ206以降の処理を再度実行するが、ス
テップ206では前回検索文字Cxに続く文字Cのデー
タが検索データとして元データから取り出され、検索指
示SEARCH、書込みアドレスWADRと共に繰り返しデータ検
索装置20へ出力される。そしてステップ208の判定
が否定された場合はステップ210へ移行し、この判定
が肯定されることによりステップ212の圧縮データ出
力処理が行われる。図9に示すように、この圧縮データ
出力処理ではステップ230で一致長MLENが1か否か判
定する。前回の比較結果が「一致」でない場合は判定が
否定され、ステップ234で圧縮データとして前回検索
文字Cxのデータを出力した後に図8のフローチャート
のステップ214へ移行する。
【0112】ところで、図8のフローチャートにおいて
ステップ208の判定が肯定された場合にはステップ2
18へ移行し、一致長MLENをカウントアップすると共
に、第2プライオリティエンコーダ76から出力された
一致アドレスMADRを前回一致アドレスMADRx に代入した
後にステップ219へ移行する。従って一致信号MSIGが
ハイレベルとなっている間は圧縮データの出力は行われ
ない。
【0113】また、前回の比較動作でハイレベルとなっ
ていた一致信号MSIGがローレベルに変化してステップ2
10の判定が肯定された場合は、2文字以上の長さの繰
り返し文字列の末尾が検出された場合であるので、ステ
ップ212で圧縮データ出力処理が行われる。このとき
は、先に説明したステップ218で一致長MLENがカウン
トアップされているのでステップ230の判定が否定さ
れ、ステップ232へ移行する。
【0114】ステップ 32では、繰り返し文字列を圧
縮するための圧縮コードを求める。本実施例では、繰り
返し文字列の長さを表す第1のコードと、既に出力され
た前記繰り返し文字列と同一の文字列の位置を指し示す
ポインタを表す第2のコードと、で構成された圧縮コー
ドを用いており、第1のコードとして一致長MLENを、第
2のコードとして前回一致アドレスMADRx と一致長MLEN
との差(MADRx − MLEN)を各々設定し、出力する。これ
により、データ圧縮コントローラ22から出力される圧
縮データの長さは、元データよりも短くなる。
【0115】なお、この圧縮コードを出力するにあた
り、圧縮した文字列を復元する際に圧縮コードと文字デ
ータとを区別できるようにするために、データ圧縮コン
トローラ22は文字データと圧縮コードとの間に区切り
を表すコードも挿入する。このように、繰り返し文字列
が発見される毎にステップ232が実行され、発見され
た繰り返し文字列が圧縮コードに変換されて出力される
ことにより、元データの冗長性が取り除かれ、元データ
が圧縮データに圧縮されることになる。
【0116】上述の処理を繰り返し、元データからの文
字Cのデータの取り出し位置が元データの末尾に到達す
るとステップ204の判定が肯定され、ステップ224
で圧縮データ出力処理が再び行われる。このとき、一致
長MLENの値が2以上であればステップ232で圧縮コー
ドの出力が行われるが、一致長MLENの値が1の場合に
は、ステップ234で圧縮データとして前回検索文字C
x のデータを出力し、処理を終了する。
【0117】なお、第1回目の比較動作を含む圧縮処理
の途中で、文字データを書き込んでいないCAMセル列
において比較動作の結果が「一致」となることがある。
これは圧縮処理前にCAMセル列に記憶されていたデー
タが検索データに偶然一致した場合に発生する。これに
よる不都合を防止するためには、一例として本願発明者
が既に特願平5-319944号でも提案しているように、全て
のCAMセル列にはデータを書き込んでいない段階で一
致信号MSIGがハイレベルとなった場合には入力された一
致アドレスMADRと書込みアドレスWADRとを比較し、一致
アドレスMADRの方が大きいか等しい場合には今回の比較
動作の結果を無効とすればよい。
【0118】また、上記では文字データをCAMセル列
のアドレスの昇順に書込み、かつ比較結果「一致」を1
(ハイレベル)、「不一致」を0(ローレベル)とした
場合の構成((3)式に示した演算を行う構成)の一例を
説明したが、比較結果制御回路60の構成は上記に限定
されるものではなく、本発明は(3) 〜(6)式に示し
た何れかの演算を実現する全ての回路構成を含むもので
ある。
【0119】〔第2実施例〕次に本発明の第2実施例に
ついて説明する。なお、第1実施例と同一の部分には同
一の符号を付し、説明を省略する。本第2実施例では、
第1実施例で説明した比較結果制御回路60(図4参
照)に代えて、図10及び図11にも示すように比較結
果制御回路80を用いている。
【0120】図11に示すように、比較結果制御回路8
0は第3信号保持手段としてのラッチ820 〜82N
第4信号保持手段としてのラッチ840 〜84N 、第3
信号生成手段としての信号生成回路860 〜86N 、第
5信号保持手段としてのラッチ880 〜88N 、フィー
ドバック信号生成手段としてのOR回路90、94、調
整手段としてのラッチ92を備えている。ラッチ92は
クロックSRに同期して動作し、ラッチ92を通過する信
号はクロックSRの1周期分遅延される。
【0121】なお図11においてもマッチ線コントロー
ラ580 〜58N の図示を省略している。また、図11
では信号生成回路860 〜86N のうち、マッチ線MATC
H1に接続された信号生成回路861 についてのみ具体的
な構成を示しているが、他の比較結果制御回路も各々同
一の構成であり、以下では比較結果制御回路80のうち
マッチ線MATCH1に対応する回路部分についてのみ説明す
る。
【0122】マッチ線MATCH1はラッチ821 の入力端に
接続されており、ラッチ821 の出力端はラッチ841
の入力端及び信号生成回路861 のAND回路1001
の3個の入力端の1つに各々接続されている。AND回
路1001 の3個の入力端のうちの残りの2個は、信号
生成回路861 のOR回路961 及びOR回路981
出力端に各々接続されている。OR回路961 の2個の
入力端の一方は、前段のラッチ840 の出力端に接続さ
れている。またOR回路981 の2個の入力端の一方
は、前段のラッチ880 の出力端に接続されている。
【0123】AND回路1001 の出力端はラッチ88
1 の入力端に接続されており、ラッチ881 の出力端
は、第1プライオリティエンコーダ74の入力端及び次
段の信号生成回路862 のOR回路982 (図示省略)
の入力端に接続されている。また、OR回路90には多
数の入力端が設けられており、AND回路1000 〜1
00N の出力端が接続されている。OR回路90の出力
端はラッチ92の入力端に接続されており、ラッチ92
の出力端は、OR回路94に複数設けられた入力端の1
つに接続されている。
【0124】なお、図10にはブロック0の繰り返しデ
ータ検索装置20の比較結果制御回路80を示してお
り、OR回路94の残りの入力端は、他のブロック(ブ
ロック1〜ブロックP)の比較結果制御回路80のラッ
チ92の出力端に接続されている。また、信号生成回路
860 のOR回路980 の2個の入力端の一方は、ブロ
ックPの比較結果制御回路80のラッチ88N の出力端
に接続されており、ブロック0の比較結果制御回路80
のラッチ88N の出力端は、ブロック1の比較結果制御
回路80のOR回路980 の2個の入力端の一方に接続
されている(図10も参照)。
【0125】またOR回路94の出力端は、OR回路9
0 〜96N の各々の入力端に接続されており、また図
示しないインバータを介してOR回路980 〜98N
各々の入力端に接続されている。また図示は省略する
が、OR回路94の出力端は他のブロック(ブロック1
〜ブロックP)の比較結果制御回路80の信号生成回路
860 〜86N の各々にも上記と同様に接続されてい
る。なお、前述したラッチ92は、AND回路1000
〜100N の出力端から、OR回路90、94を経てO
R回路960 〜96N の入力端、OR回路980 〜98
N の入力端に至る信号経路のほぼ中間点に配置されてい
る。
【0126】次に本第2実施例の作用として、まず比較
結果制御回路80の動作について、図12及び図13を
参照して説明する。なお、図12及び図13は先に説明
した図6と同様に、アドレス「0」〜「5」のCAMセ
ル列に既に「ABABBC」の文字データ列が順に記憶
されており、かつ検索データとして「ABBBC…」の
順に文字データが入力された場合を例として示してお
り、ラッチ820 〜825 をML0〜ML5、ラッチ840
〜845 をMX0〜MX5、ラッチ880 〜885 をPX0〜
PX5、OR回路90から出力される信号を信号ORI 、ラ
ッチ92から出力される信号を信号OR、OR回路94か
ら出力される信号をフィードバック信号ORFBと称してい
る。
【0127】図12(A)に示すように、検索データと
して、まず「A」の文字データが入力されると(図13
における期間0)、アドレス「0」及び「2」のCAMセ
ル列で比較結果が「一致」となり、マッチ線MATCH0〜MA
TCH5のうちマッチ線MATCH0及びMATCH2のみがハイレベル
のまま維持される。各マッチ線のレベルは比較結果制御
回路80のラッチML0〜ML5に各々保持された後に、次
の周期(図13における期間1)でラッチMX0〜MX5及び
信号生成回路860 〜865 に各々出力される。
【0128】ラッチML0〜ML5から出力された信号のレ
ベルは、図12(B)に示すようにラッチMX0〜MX5に
保持される。また、この段階ではフィードバック信号OR
FBがローレベルであり、ラッチMX0〜MX5から出力され
る信号についても何れもローレベル(図示していないラ
ッチMX6〜MXN、及び他のブロックのラッチMX0〜MXN
についても同様とする)であるので、信号生成回路86
0 〜865 のOR回路960 〜96N 、AND回路10
0 〜100N の出力信号もローレベルとなり、OR回
路90、92、94を介して出力されるフィードバック
信号ORFBのレベル及びラッチPX0〜PX5に保持されるレ
ベルもローとなる(図12(B)参照)。
【0129】従って、更に次の周期(図13における期
間2)でラッチPX0〜PX5から出力された信号により生成
される一致信号MSIGもローレベルとなる。このように本
第2実施例においても、1文字のみ一致したのみ、すな
わち1回の比較動作で比較結果が「一致」となったCA
Mセル列が有ったのみでは一致信号MSIGはハイレベルと
はならない。
【0130】一方、図12(B)に示すように、次の検
索データとして「B」の文字データが入力されると(図
13における期間1)、アドレス「1」、「3」、「4」
のCAMセル列で比較結果が「一致」となり、各マッチ
線のレベル (マッチ線MATCH1,3,5のみがハイレベル) は
ラッチML0〜ML5に各々保持される。そして次の周期
(図13における期間2)では、ラッチML1、ML3、ML5
の出力信号が各々ハイレベルになり、ラッチML0〜ML5
から出力された信号のレベルがラッチMX0〜MX5に保持
されると共に、ラッチMX0、MX2(すなわちラッチML
1、ML3の前段のラッチMX)の出力が各々ハイレベルと
なり、OR回路961 、963 の出力がハイレベルとな
る。また、後述するようにフィードバック信号ORFBのレ
ベルの変化はクロックSRの1周期分遅延するので、この
周期(期間2)ではローレベルを維持しておりOR回路9
0 〜98N の出力はハイレベルとなる。
【0131】これにより、AND回路1001 、100
3 の出力がハイレベルとなり、このハイレベルの信号が
図12(C)に示すようにラッチPX1、PX3に保持され
る。このように、本第2実施例の比較結果制御回路80
では2文字一致が検出されると、フィードバック信号OR
FBがローレベルであってもAND回路100の出力に反
映される。従って、次の周期(図13における期間3)で
ラッチPX0〜PX5から第1プライオリティエンコーダ7
4に入力される信号により生成される一致信号MSIG0及
び一致信号MSIGもハイレベルとなる。このように、一致
信号MSIGは2文字以上連続して一致した場合、すなわち
続けて入力された複数の検索データから成るデータ列が
CAMセルアレイ26に記憶されていた場合にのみハイ
レベルとなる。
【0132】なお、AND回路100から出力される信
号は、繰り返しデータ検索装置20に順次入力される検
索データについての比較結果に対し第1実施例で説明し
た信号PEと同様に変化するが、第1プライオリティエン
コーダ74へはラッチPXを介して出力されるので、ラッ
チPXから第1プライオリティエンコーダ74へ出力され
る信号のレベルの変化は信号PEに対して1クロック遅れ
ている。また、第1実施例でも説明したように一致信号
MSIG0及び一致信号MSIGを生成するための信号経路の長
さが長いので、図13にも示すように一致信号MSIGのレ
ベルの変化はラッチPX3の出力信号のレベルの変化に対
して遅延する。
【0133】また、AND回路1000 〜100N から
出力された信号はOR回路90、92、94を介してフ
ィードバック信号ORFBとして出力されるが、フィードバ
ック信号ORFBを生成するための信号経路についても長さ
が長く、また本第2実施例では新たに追加したラッチ9
2によって前記信号経路を信号が通過する時間を調整し
ているため、図13を図7と比較しても明らかなよう
に、フィードバック信号ORFBのレベルの変化も、第1実
施例における一致信号MSIGに対してクロックSRの1周期
分遅延する。
【0134】一方、図12(C)に示すように、次の検
索データとして「B」の文字データが入力されると(図
13における期間2)、前回と同じマッチ線がハイレベル
となり、各マッチ線のレベルがラッチML0〜ML5に各々
一旦保持された後に、次の周期(図13における期間3)
でラッチMX0〜MX5及び信号生成回路860 〜865
各々出力される。図13に示すように、この期間3では
OR回路94から出力されるフィードバック信号ORFBが
ハイレベルとなり、OR回路96の出力信号は前段のラ
ッチMXから入力される信号のレベルに拘わらずハイレベ
ルとなり、OR回路98の出力信号は前段のラッチPX
から入力される信号のレベルに一致することになる。
【0135】このときには、図12(C)にハッチング
で示すように、出力がハイレベルとなるラッチML1、ML
3、ML4のうち前段のラッチPXの出力もハイレベルであ
るラッチはラッチML4のみであるので、信号生成回路8
4 のAND回路1004 の出力信号のみがハイレベル
となる。この結果はラッチPX0〜PX5に保持されると共
に、次の周期(図13における期間4)で第1プライオリ
ティエンコーダ74に出力され、一致信号MSIG0及び一
致信号MSIGがハイレベルを維持すると共に、一致アドレ
スMADRの値がラッチPX4のアドレス「4」となる(図1
2(D)参照)。また、フィードバック信号ORFBもハイ
レベルで維持される。
【0136】また、図12(D)に示すように、次の検
索データとして「B」の文字データが入力されると(図
13における期間3)、各マッチ線のレベルはラッチML0
〜ML5に各々一旦保持された後に次の周期(期間4)で信
号生成回路860 〜865 に各々入力されるが、このレ
ベルは前回と同じであり、フィードバック信号ORFBもハ
イレベルとなっているが、ハイレベルの信号を出力する
ラッチML1、ML3、ML4の何れについても、前段のラッ
チPXから出力される信号がローレベルであるので、AN
D回路1000 〜100N から出力される信号が何れも
ローレベルとなり、一致信号MSIG0、一致信号MSIG及び
フィードバック信号ORFBは次の周期(期間5)でローレベ
ルに変化する。
【0137】更に、図12(E)に示すように次の検索
データとして「C」の文字データが入力されると(期間
4)マッチ線MATCH5のみがハイレベルとなり、各マッチ
線のレベルがラッチML0〜ML5に各々一旦保持された後
に、次の周期(期間5)に信号生成回路860 〜865
に各々出力される。この期間5にはフィードバック信号
ORFBがローレベルに変化するので、OR回路98の出力
信号は前段のラッチPXから入力される信号のレベルに拘
わらずハイレベルとなり、OR回路96の出力信号は前
段のラッチMXから入力される信号のレベルに一致するこ
とになる。
【0138】この期間ではラッチML5からのみハイレベ
ルの信号が出力され、前段のラッチMX4からもハイレベ
ルの信号が出力されるので、AND回路1005 から出
力される信号のみがハイレベルとなる。従って、一致信
号MSIG0、一致信号MSIG及びフィードバック信号ORFB
は、次の周期(期間6)にはハイレベルに変化し、一致ア
ドレスMADR0の値もハイレベルの信号を出力したラッチ
PX5のアドレス「5」となる。
【0139】このように、2文字以上の長さの繰り返し
文字列の末尾が検知された周期(期間4)にはフィードバ
ック信号ORFBはローレベルとならず次の周期でローレベ
ルとなるが、前記末尾が検知された周期でラッチML0〜
MLNから出力されていたレベル(単文字の検索結果)
は、フィードバック信号ORFBがローレベルとなる次の周
期でラッチMX0〜MXNから出力されるので、前記末尾が
検知された周期で単文字一致した文字を先頭とする2文
字以上の長さの繰り返し文字列が存在していた場合(図
12の例ではアドレス「4」「5」のCAMセル列に記
憶されている文字列「BC」が相当する)にも、該繰り
返し文字列を検索することができる。
【0140】上述したように、本第2実施例に係る比較
結果制御回路80では、フィードバック信号ORFBのレベ
ルの変化が従来の検索装置及び第1実施例の検索装置と
比較してクロックSRの1周期分遅れることが許容され、
信号生成回路86のAND回路100から出力された信
号は、フィードバック信号ORFBを生成するための信号経
路(信号生成回路86から出力されOR回路90、9
2、94を通って信号生成回路86に至る信号経路)を
クロックSRの2周期分の通過時間で通過する。従って、
クロックSRの周期を約半分の長さ(約2倍の周波数)と
することができるので、従来と比較して比較結果制御回
路80を約2倍の速度で動作させることができ、データ
圧縮処理を高速で行うことができる。
【0141】次に、本第2実施例においてデータ圧縮コ
ントローラ22で行われる処理について、図14のフロ
ーチャートを参照し、第1実施例と異なる部分について
のみ説明する。本第2実施例では、第1実施例のステッ
プ210に代えて、ステップ211では現在の比較動作
が、所定の元データに対する第1回目又は第2回目の比
較動作か否か判定し、判定が肯定された場合には圧縮デ
ータ出力処理を行うことなくステップ214へ移行す
る。
【0142】本第2実施例のフィードバック信号ORFBが
第1実施例の一致信号MSIGと同様に2文字以上連続して
一致しないとハイレベルにならず、かつレベルの変化が
第1実施例の一致信号MSIGに対してクロックSRの1周期
分遅れるため、比較結果「不一致」が続いている場合は
後述するように圧縮データとして前々回検索した文字を
出力する。従って、ステップ211が肯定されていると
きには圧縮データとして出力すべきデータがないので、
圧縮データ出力処理は行われない。
【0143】また、ステップ214の処理を行った後は
ステップ217へ移行し、圧縮データとして前々回検索
文字C2を出力できるようにするために、前回検索文字
C1のデータを前々回検索文字C2に設定した後にステ
ップ218へ移行し、今回の検索文字C0のデータを前
回検索文字C1に設定する。
【0144】次に図15のフローチャートを参照し、本
第2実施例に係る圧縮データ出力処理について説明す
る。ステップ230の判定が肯定(一致長MLENが1)さ
れた場合、ステップ236では圧縮データとして前々回
検索文字C2のデータを出力し、次のステップ238で
元データが終了したか否か判定する。元データの最後の
文字Cが2文字以上の長さの繰り返し文字列の末尾であ
れば、前記最後の文字Cはステップ232で圧縮コード
として出力されるが、それ以外の場合にはステップ23
8の判定が肯定され、ステップ240で前記最後の文字
Cのデータは前回の検索文字C1に設定されているの
で、この前回の検索文字C1のデータを圧縮データとし
て出力する。
【0145】なお、上記では文字データをCAMセル列
のアドレスの昇順に書込み、かつ比較結果「一致」を1
(ハイレベル)、「不一致」を0(ローレベル)とした
場合の構成((7)式に示した演算を行う構成)の一例を
説明したが、比較結果制御回路80の構成は上記に限定
されるものではなく、本発明は(7) 〜(10)式に示し
た何れかの演算を実現する全ての回路構成を含むもので
ある。
【0146】〔第3実施例〕次に本発明の第3実施例に
ついて説明する。なお、第1実施例および第2実施例と
同一の部分には同一の符号を付し、説明を省略する。本
第3実施例では、第1実施例で説明した比較結果制御回
路60(図2及び図4参照),第2実施例で説明した比
較制御回路80(図10及び図11参照)に代えて、図
19及び図20にも示すように比較結果制御回路110
を用いている。
【0147】図19に示すように、比較結果制御回路1
10は第6信号保持手段としてのラッチ1120 〜11
N 、第7信号保持手段としてのラッチ1140 〜11
N、第4信号生成手段としての信号生成回路1160
〜116N 、第8信号保持手段としてのラッチ1180
〜118N 、フィードバック信号生成手段としてのOR
回路120、121、124、125、AND回路13
0 〜132N 、1340 〜134N 、ラッチ136、
AND138、OR回路140、及び調整手段としての
ラッチ124、125を備えている。ラッチ136、1
24、125はクロックSRに同期して動作し、通過する
信号はクロックSRの1周期分遅延される。
【0148】なお図20においてもマッチ線コントロー
ラ580 〜58N の図示を省略している。また、図20
では信号生成回路1160 〜116N のうち、マッチ線
MATCH1に接続された信号生成回路1161 についてのみ
具体的な構成を示しているが、他の比較結果制御回路も
各々同一の構成であり、以下では比較結果制御回路11
0のうちマッチ線MATCH1に対応する回路部分についての
み説明する。
【0149】マッチ線MATCH1はラッチ1121 の入力端
に接続されており、ラッチ1121の出力端はラッチ1
141 の入力端及び信号生成回路1161 のAND回路
1301 の、フィードバック信号生成手段のAND回路
1321 、1341 に各々接続されている。ラッチ11
1 の出力端は次段のAND回路1322 の入力端に接
続されている.AND回路1301 の3個の入力端のう
ちの残りの2個は、信号生成回路1161 のOR回路1
261 及びOR回路1281 の出力端に各々接続されて
いる。OR回路1261 の2個の入力端の一方は、前段
のラッチ1140 の出力端に接続されている。またOR
回路1281 の2個の入力端の一方は、前段のラッチ1
180 の出力端に接続されている。AND回路1321
の2個の入力端の一方は、前段のラッチ1140 の出力
端に、AND回路1341 の2個の入力端の一方は、前
段のラッチ1180 の出力端に各々接続されている。
【0150】AND回路1301 の出力端はラッチ11
1 の入力端に接続されており、ラッチ1181 の出力
端は、第1プライオリティエンコーダ74の入力端、次
段の信号生成回路1162 のOR回路1282 (図示省
略)、及び次段のAND回路1342 の入力端に接続さ
れている。また、OR回路120には多数の入力端が設
けられており、AND回路1320 〜132N の出力端
が接続されている。OR回路120の出力端はラッチ1
22の入力端に接続されており、ラッチ122の出力端
は、OR回路124に複数設けられた入力端の1つに接
続されている。また、OR回路121には多数の入力端
が設けられており、AND回路1340〜134N の出
力端が接続されている。OR回路121の出力端はラッ
チ122の入力端に接続されており、ラッチ122の出
力端は、OR回路125に複数設けられた入力端の1つ
に接続されている。OR回路124の出力は、AND回
路138の2つの入力端の1つに接続されている。AN
D回路138の他方の入力端にはラッチ136の出力端
が図示しないインバータを介して接続されている。OR
回路125の出力端はラッチ136の入力端、及びOR
回路140の2つの入力の1つに各々入力端に接続され
ている。OR回路140の入力端の他方には、AND回
路138の出力端が接続されている。
【0151】なお、図19にはブロック0の繰り返しデ
ータ検索装置20の比較結果制御回路110を示してお
り、OR回路124の残りの入力端は、他のブロック
(ブロック1〜ブロックP)の比較結果制御回路110
のラッチ122の出力端に、OR回路125の残りの入
力端は、他のブロックの比較結果制御回路110のラッ
チ123の出力端に接続されている。信号生成回路11
0 のOR回路1260の2個の入力端の一方は、ブロ
ックPの比較結果制御回路110のラッチ114N の出
力端に接続されており、ブロック0の比較結果制御回路
110のラッチ114N の出力端は、ブロック1の比較
結果制御回路110のOR回路1260 の2個の入力端
の一方に接続されている(図19も参照)。また、信号
生成回路1160 のOR回路1280 の2個の入力端の
一方は、ブロックPの比較結果制御回路110のラッチ
118N の出力端に接続されており、ブロック0の比較
結果制御回路110のラッチ118N の出力端は、ブロ
ック1の比較結果制御回路110のOR回路1280
2個の入力端の一方に接続されている。
【0152】またOR回路140の出力端は、OR回路
1260 〜126N の各々の入力端に接続されており、
また図示しないインバータを介してOR回路1280
128N の各々の入力端に接続されている。また図示は
省略するが、OR回路140の出力端は他のブロック
(ブロック1〜ブロックP)の比較結果制御回路110
の信号生成回路1160 〜116N の各々にも上記と同
様に接続されている。なお、前述したラッチ122は、
AND回路1320 〜132N の出力端から、OR回路
120、124を経てOR回路1260 〜126N の入
力端、OR回路1280 〜128N の入力端に至る信号
経路のほぼ中間点に配置されている。また、ラッチ12
3は、AND回路1340 〜134N の出力端から、O
R回路121、125を経てOR回路1260 〜126
N の入力端、OR回路1280 〜128N の入力端に至
る信号経路のほぼ中間点に配置されている。
【0153】次に本第3実施例の作用として、まず比較
結果制御回路110の動作について、図21及び図22
を参照して説明する。なお、図21及び図22は先に説
明した図6、12と同様に、アドレス「0」〜「5」の
CAMセル列に既に「ABABBC」の文字データ列が
順に記憶されており、かつ検索データとして「ABBB
C…」の順に文字データが入力された場合を例として示
しており、ラッチ1120 〜1125 をML0〜ML5、ラ
ッチ1140 〜1145 をMX0〜MX5、ラッチ1180
〜1185 をPX0〜PX5、OR回路124から出力され
る信号を信号ORMX 、OR回路125化ら出力される信
号をORPS、OR回路140から出力される信号をフィー
ドバック信号ORFBと称している。
【0154】図21(A)に示すように、検索データと
して、まず「A」の文字データが入力されると(図22
における期間0)、アドレス「0」及び「2」のCAMセ
ル列で比較結果が「一致」となり、マッチ線MATCH0〜MA
TCH5のうちマッチ線MATCH0及びMATCH2のみがハイレベル
のまま維持される。各マッチ線のレベルは比較結果制御
回路110のラッチML0〜ML5に各々保持された後に、
次の周期(図22における期間1)でラッチMX0〜MX5,
信号生成回路1160 〜1165 及びフィードバック信
号生成手段としてのAND回路1320 〜1325 、1
340 〜1345 に各々出力される。
【0155】ラッチML0〜ML5から出力された信号のレ
ベルは、図21(B)に示すようにラッチMX0〜MX5に
保持される。また、この段階ではフィードバック信号OR
FBがローレベルであり、ラッチMX0〜MX5から出力され
る信号についても何れもローレベル(図示していないラ
ッチMX6〜MXN、及び他のブロックのラッチMX0〜MXN
についても同様とする)であるので、信号生成回路11
0 〜1165 のOR回路1260 〜126N 、AND
回路1300 〜130N の出力信号もローレベルとな
り、ラッチPX0〜PX5に保持されるレベルもローとなる
(図21(B)参照)。
【0156】従って、更に次の周期(C)(図22にお
ける期間2)でラッチPX0〜PX5から出力された信号によ
り生成される一致信号MSIGもローレベルとなる。このよ
うに本第3実施例においても、1文字のみ一致したの
み、すなわち1回の比較動作で比較結果が「一致」とな
ったCAMセル列が有ったのみでは一致信号MSIGはハイ
レベルとはならない。
【0157】一方、図21(B)に示すように、次の検
索データとして「B」の文字データが入力されると(図
22における期間1)、アドレス「1」、「3」、「4」
のCAMセル列で比較結果が「一致」となり、各マッチ
線のレベル (マッチ線MATCH1,3,5のみがハイレベル) は
ラッチML0〜ML5に各々保持される。そして次の周期
(図22における期間2)では、ラッチML1、ML3、ML5
の出力信号が各々ハイレベルになり、ラッチML0〜ML5
から出力された信号のレベルがラッチMX0〜MX5に保持
されると共に、ラッチMX0、MX2(すなわちラッチML
1、ML3の前段のラッチMX)の出力が各々ハイレベルと
なり、OR回路1261 、1263 の出力がハイレベル
となる。また、後述するようにフィードバック信号ORFB
のレベルの変化はクロックSRの1周期分遅延するので、
この周期(期間2)ではローレベルを維持しておりOR回
路1280 〜128N の出力はハイレベルとなる。
【0158】これにより、AND回路1301 、130
3 の出力がハイレベルとなり、このハイレベルの信号が
図21(C)に示すようにラッチPX1、PX3に保持され
る。このように、本第3実施例の比較結果制御回路11
0では2文字一致が検出されると、フィードバック信号
ORFBがローレベルであってもAND回路130の出力に
反映される。従って、次の周期(図22における期間3)
でラッチPX0〜PX5から第1プライオリティエンコーダ
74に入力される信号により生成される一致信号MSIG0
及び一致信号MSIGもハイレベルとなる。このように、一
致信号MSIGは2文字以上連続して一致した場合、すなわ
ち続けて入力された複数の検索データから成るデータ列
がCAMセルアレイ26に記憶されていた場合にのみハ
イレベルとなる。
【0159】なお、AND回路130から出力される信
号は、繰り返しデータ検索装置20に順次入力される検
索データについての比較結果に対し第1実施例で説明し
た信号PEと同様に変化するが、第1プライオリティエン
コーダ74へはラッチPXを介して出力されるので、ラッ
チPXから第1プライオリティエンコーダ74へ出力され
る信号のレベルの変化は信号PEに対して1クロック遅れ
ている。また、第1実施例でも説明したように一致信号
MSIG0及び一致信号MSIGを生成するための信号経路の長
さが長いので、図22にも示すように一致信号MSIGのレ
ベルの変化はラッチPX3の出力信号のレベルの変化に対
して遅延する。
【0160】また、AND回路1320 〜132N 及び
1320 〜134N から出力された信号は、、OR回路
120、122、121、123及びAND回路13
8、OR回路140を介してフィードバック信号ORFBと
して出力されるが、フィードバック信号ORFBを生成する
ための信号経路についても長さが長く、また本第3実施
例では新たに追加したラッチ122、123によって前
記信号経路を信号が通過する時間を調整しているため、
図22を図7と比較しても明らかなように、フィードバ
ック信号ORFBのレベルの変化も、第1実施例における一
致信号MSIGに対してクロックSRの1周期分遅延する。
【0161】一方、図21(C)に示すように、次の検
索データとして「B」の文字データが入力されると(図
22における期間2)、前回と同じマッチ線がハイレベル
となり、各マッチ線のレベルがラッチML0〜ML5に各々
一旦保持された後に、次の周期(図22における期間3)
でラッチMX0〜MX5及び信号生成回路1160 〜116
5 に各々出力される。図22に示すように、この期間3
ではOR回路140から出力されるフィードバック信号
ORFBがハイレベルとなり、OR回路126の出力信号は
前段のラッチMXから入力される信号のレベルに拘わらず
ハイレベルとなり、OR回路128の出力信号は前段の
ラッチPXから入力される信号のレベルに一致することに
なる。
【0162】このときには、図21(C)にハッチング
で示すように、出力がハイレベルとなるラッチML1、ML
3、ML4のうち前段のラッチPXの出力もハイレベルであ
るラッチはラッチML4のみであるので、信号生成回路1
164 のAND回路1304の出力信号のみがハイレベ
ルとなる。この結果はラッチPX0〜PX5に保持されると
共に、次の周期(図21における期間4)で第1プライオ
リティエンコーダ74に出力され、一致信号MSIG0及び
一致信号MSIGがハイレベルを維持すると共に、一致アド
レスMADRの値がラッチPX4のアドレス「4」となる(図
21(D)参照)。また、フィードバック信号ORFBもハ
イレベルで維持される。
【0163】また、図21(D)に示すように、次の検
索データとして「B」の文字データが入力されると(図
22における期間3)、各マッチ線のレベルはラッチML0
〜ML5に各々一旦保持された後に次の周期(期間4)で信
号生成回路1160 〜1165 に各々入力されるが、こ
のレベルは前回と同じであり、フィードバック信号ORFB
もハイレベルとなっているが、ハイレベルの信号を出力
するラッチML1、ML3、ML4の何れについても、前段の
ラッチPXから出力される信号がローレベルであるので、
AND回路1300 〜130N から出力される信号が何
れもローレベルとなり、一致信号MSIG0、一致信号MSIG
及びフィードバック信号ORFBは次の周期(期間5)でロー
レベルに変化する。
【0164】更に、図21(E)に示すように次の検索
データとして「C」の文字データが入力されると(期間
4)マッチ線MATCH5のみがハイレベルとなり、各マッチ
線のレベルがラッチML0〜ML5に各々一旦保持された後
に、次の周期(期間5)に信号生成回路1160 〜11
5 に各々出力される。この期間5にはフィードバック
信号ORFBがローレベルに変化するので、OR回路128
の出力信号は前段のラッチPXから入力される信号のレベ
ルに拘わらずハイレベルとなり、OR回路126の出力
信号は前段のラッチMXから入力される信号のレベルに一
致することになる。
【0165】この期間ではラッチML5からのみハイレベ
ルの信号が出力され、前段のラッチMX4からもハイレベ
ルの信号が出力されるので、AND回路1305 から出
力される信号のみがハイレベルとなる。従って、一致信
号MSIG0、一致信号MSIG及びフィードバック信号ORFB
は、次の周期(期間6)にはハイレベルに変化し、一致ア
ドレスMADR0の値もハイレベルの信号を出力したラッチ
PX5のアドレス「5」となる。
【0166】このように、2文字以上の長さの繰り返し
文字列の末尾が検知された周期(期間4)にはフィードバ
ック信号ORFBはローレベルとならず次の周期でローレベ
ルとなるが、前記末尾が検知された周期でラッチML0〜
MLNから出力されていたレベル(単文字の検索結果)
は、フィードバック信号ORFBがローレベルとなる次の周
期でラッチMX0〜MXNから出力されるので、前記末尾が
検知された周期で単文字一致した文字を先頭とする2文
字以上の長さの繰り返し文字列が存在していた場合(図
21の例ではアドレス「4」「5」のCAMセル列に記
憶されている文字列「BC」が相当する)にも、該繰り
返し文字列を検索することができる。
【0167】上述したように、本第3実施例に係る比較
結果制御回路110では、フィードバック信号ORFBのレ
ベルの変化が従来の検索装置及び第1実施例の検索装置
と比較してクロックSRの1周期分遅れることが許容さ
れ、フィードバック信号ORFBを生成するための信号経路
(AND回路1320 〜132N 及び1340 〜134
N から出力され、それぞれOR回路120、124及び
121、125を通り、AND138、OR回路140
を経て信号生成回路116に至る信号経路)をクロック
SRの2周期分の通過時間で通過する。従って、クロック
SRの周期を約半分の長さ(約2倍の周波数)とすること
ができるので、従来と比較して比較結果制御回路110
を約2倍の速度で動作させることができ、データ圧縮処
理を高速で行うことができる。
【0168】本第3実施例におけるデータ圧縮コントロ
ーラ22で行われる処理は、図14のフローチャートに
おける第2実施例と同じとなる.
【0169】また第1〜3の全ての実施例において、フ
ィ−ドバック経路以外の全ての経路は任意の段数のパイ
プライン構成を取ることができるので、周波数を2倍に
したことによって処理が間に合わなくなった部分にはラ
ッチを挿入して1段パイプラインを増やすことで容易に
対処できる.パイプラインの段数を増やしたときには、
入力された検索デ−タに対する圧縮デ−タが出力される
までのサイクルが伸びるので、それに応じたサイクル分
の文字データやアドレスをセーブしておく必要がある。
また入力データが無くなってもすぐに終了するのではな
く、パイプラインに溜まっているデータを押し出すため
に更に数サイクル回路を動作させなくてはならない。な
お図7、図13及び図22では検索データが入力された
次のサイクルでラッチML2〜ML5から検索結果が出力さ
れるが、簡単のため図6、図12、図21及び図8、図
14のフローチャートでは、検索データの入力直後に検
索結果がラッチML2〜ML5から出力されることとし、パ
イプラインの段数を1段減らしている。また図14のフ
ローチャートの終了時に、パイプライン内のデータを押
し出す操作も省略している。
【0170】なお、上記では文字データをCAMセル列
のアドレスの昇順に書込み、かつ比較結果「一致」を1
(ハイレベル)、「不一致」を0(ローレベル)とした
場合の構成((11)式に示した演算を行う構成)の一例を
説明したが、比較結果制御回路110の構成は上記に限
定されるものではなく、本発明は(11) 〜(14)式に示
した何れかの演算を実現する全ての回路構成を含むもの
である。
【0171】
【発明の効果】以上説明したように本発明は、装置を小
型化することが可能になる、という優れた効果を有す
る。
【0172】また本発明は、データの圧縮を高速化する
ことが可能になる、という優れた効果を有する。
【図面の簡単な説明】
【図1】本実施例に係るマイクロコンピュータの概略構
成を示すブロック図である。
【図2】第1実施例の繰り返しデータ検索装置の概略構
成を示すブロック図である。
【図3】CAMセルの構成を示す回路図である。
【図4】第1実施例の比較結果制御回路の概略構成を示
すブロック図である。
【図5】プライオリティエンコーダの構成の一例を示す
回路図である。
【図6】(A)乃至(E)は第1実施例の比較結果制御
回路の動作を説明するための概念図である。
【図7】第1実施例の比較結果制御回路の動作を説明す
るためのタイミングチャートである。
【図8】第1実施例においてデータ圧縮コントローラで
実行される処理を説明するフローチャートである。
【図9】図8のフローチャートにおける圧縮データ出力
処理の内容を説明するフローチャートである。
【図10】第2実施例の繰り返しデータ検索装置の概略
構成を示すブロック図である。
【図11】第2実施例の比較結果制御回路の概略構成を
示すブロック図である。
【図12】(A)乃至(E)は第2実施例の比較結果制
御回路の動作を説明するための概念図である。
【図13】第2実施例の比較結果制御回路の動作を説明
するためのタイミングチャートである。
【図14】第2実施例においてデータ圧縮コントローラ
で実行される処理を説明するフローチャートである。
【図15】図14のフローチャートにおける圧縮データ
出力処理の内容を説明するフローチャートである。
【図16】従来の検索装置の概略構成を示すブロック図
である。
【図17】(A)乃至(E)は、図16に示した検索装
置の動作を示す概念図である。
【図18】図16に示した検索装置の動作を示すタイミ
ングチャートである。
【図19】第3実施例の繰り返しデータ検索装置の概略
構成を示すブロック図である。
【図20】第3実施例の比較結果制御回路の概略構成を
示すブロック図である。
【図21】(A)乃至(E)は第3実施例の比較結果制
御回路の動作を説明するための概念図である。
【図22】第3実施例の比較結果制御回路の動作を説明
するためのタイミングチャートである。
【符号の説明】 20 繰り返しデータ検索装置 22 データ圧縮コントローラ 26 CAMセルアレイ 60 比較結果制御回路 62 ラッチ 64 信号生成回路 66 ラッチ 80 比較結果制御回路 82 ラッチ 84 ラッチ 86 信号生成回路 88 ラッチ 92 ラッチ 110 比較結果制御回路 112 ラッチ 114 ラッチ 116 信号生成回路 118 ラッチ 122 ラッチ 123 ラッチ 136 ラッチ
フロントページの続き (56)参考文献 特開 平2−233025(JP,A) 特開 平5−233212(JP,A) 特開 平7−114577(JP,A) (58)調査した分野(Int.Cl.7,DB名) H03M 7/40 G06F 17/30

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】 所定ビット長のデータから成る単位デー
    タを記憶する複数の記憶手段と、 前記記憶手段に対応して設けられ、記憶手段に記憶され
    た単位データと入力された単位データとを比較し、比較
    結果を表す比較信号を出力する複数の比較手段と、 所定数の単位データで構成された元データから隣合う単
    位データを順次取り出し前記記憶装置の複数の比較手段
    の各々に順次入力すると共に、複数の比較手段の各々に
    入力した単位データを各記憶手段と比較手段との対に付
    与されたアドレスの昇順に順次記憶手段に記憶させる制
    御手段と、 複数の比較手段の各々に単位データが入力される毎に各
    比較手段から出力される比較信号に対し、現在のサイク
    ルをm、アドレスnの比較手段から出力される比較信号
    をML(n,m) 、論理和を+、論理積を×、アドレスnの最
    大値をN、アドレスnが0のときのn−1をN、比較結
    果「一致」を1、「不一致」を0で表したとすると、 PE(n,m) = ML(n,m)×PS(n-1,m) MSIG=PE(0,m) +PE(1,m) +…+PE(N,m) MSIG=1の場合は、PS(n,m+1) = ML(n,m)×PS(n-1,m) MSIG=0の場合は、PS(n,m+1) = ML(n,m) 比較結果「一致」を0、「不一致」を1で表したとする
    と、 PE(n,m) = ML(n,m)+PS(n-1,m) MSIG=PE(0,m) ×PE(1,m) ×…×PE(N,m) MSIG=0の場合は、PS(n,m+1) = ML(n,m)+PS(n-1,m) MSIG=1の場合は、PS(n,m+1) = ML(n,m) なる演算を各サイクルで各々行って、各比較手段に対応
    する第1中間信号PS及び第2中間信号PEと、信号MSIG
    と、を生成し、比較結果として信号MSIGを出力する比較
    結果制御手段と、 を含むデータ圧縮用検索装置。
  2. 【請求項2】 前記比較結果制御手段を、 前記複数の比較手段に対応して各々設けられ、各々対応
    するアドレスnの比較手段から出力された比較信号ML
    (n,m) を保持する複数の第1信号保持手段と、 複数の比較手段に対応して各々設けられ、各々対応する
    アドレスnの第1信号保持手段に保持された比較信号ML
    (n,m) 、アドレスn−1の第1中間信号PS(n-1,m) 及び
    信号MSIGが入力され、アドレスnの第1中間信号PS(n,m
    +1) 及び第2中間信号PE(n,m) を生成する複数の第1信
    号生成手段と、 複数の比較手段に対応して各々設けられ、各々対応する
    アドレスnの第1信号生成手段から出力された第1中間
    信号PS(n,m) を保持し、アドレスn+1の第1信号生成
    手段に出力する複数の第2信号保持手段と、 前記複数の第1信号生成手段から各々入力された第2中
    間信号PE(n,m) に基づいて信号MSIGを生成し出力する第
    2信号生成手段と、 で構成したことを特徴とする請求項1記載のデータ圧縮
    用検索装置。
  3. 【請求項3】 所定ビット長のデータから成る単位デー
    タを記憶する複数の記憶手段と、 前記記憶手段に対応して設けられ、記憶手段に記憶され
    た単位データと入力された単位データとを比較し、比較
    結果を表す比較信号を出力する複数の比較手段と、 所定数の単位データで構成された元データから隣合う単
    位データを順次取り出し前記記憶装置の複数の比較手段
    の各々に順次入力すると共に、複数の比較手段の各々に
    入力した単位データを各記憶手段と比較手段との対に付
    与されたアドレスの降順に順次記憶手段に記憶させる制
    御手段と、 複数の比較手段の各々に単位データが入力される毎に各
    比較手段から出力される比較信号に対し、現在のサイク
    ルをm、アドレスnの比較手段から出力される比較信号
    をML(n,m) 、論理和を+、論理積を×、アドレスnの最
    大値をN、アドレスnがNのときのn+1を0、比較結
    果「一致」を1、「不一致」を0で表したとすると、 PE(n,m) = ML(n,m)×PS(n+1,m) MSIG=PE(0,m) +PE(1,m) +…+PE(N,m) MSIG=1の場合は、PS(n,m+1) = ML(n,m)×PS(n+1,m) MSIG=0の場合は、PS(n,m+1) = ML(n,m) 比較結果「一致」を0、「不一致」を1で表したとする
    と、 PE(n,m) = ML(n,m)+PS(n+1,m) MSIG=PE(0,m) ×PE(1,m) ×…×PE(N,m) MSIG=0の場合は、PS(n,m+1) = ML(n,m)+PS(n+1,m) MSIG=1の場合は、PS(n,m+1) = ML(n,m) なる演算を各サイクルで各々行って、各比較手段に対応
    する第1中間信号PS及び第2中間信号PEと、信号MSIG
    と、を生成し、比較結果として信号MSIGを出力する比較
    結果制御手段と、 を含むデータ圧縮用検索装置。
  4. 【請求項4】 前記比較結果制御手段を、 前記複数の比較手段に対応して各々設けられ、各々対応
    するアドレスnの比較手段から出力された比較信号ML
    (n,m) を保持する複数の第1信号保持手段と、 複数の比較手段に対応して各々設けられ、各々対応する
    アドレスnの第1信号保持手段に保持された比較信号ML
    (n,m) 、アドレスn+1の第1中間信号PS(n+1,m) 及び
    信号MSIGが入力され、アドレスnの第1中間信号PS(n,m
    +1) 及び第2中間信号PE(n,m) を生成する複数の第1信
    号生成手段と、 複数の比較手段に対応して各々設けられ、各々対応する
    アドレスnの第1信号生成手段から出力された第1中間
    信号PS(n,m) を保持し、アドレスn−1の第1信号生成
    手段に出力する複数の第2信号保持手段と、 前記複数の第1信号生成手段から各々入力された第2中
    間信号PE(n,m) に基づいて信号MSIGを生成し出力する第
    2信号生成手段と、 で構成したことを特徴とする請求項3記載のデータ圧縮
    用検索装置。
  5. 【請求項5】 所定ビット長のデータから成る単位デー
    タを記憶する複数の記憶手段と、 前記記憶手段に対応して設けられ、記憶手段に記憶され
    た単位データと入力された単位データとを比較し、比較
    結果を表す比較信号を出力する複数の比較手段と、 所定数の単位データで構成された元データから隣合う単
    位データを順次取り出し前記記憶装置の複数の比較手段
    の各々に順次入力すると共に、複数の比較手段の各々に
    入力した単位データを各記憶手段と比較手段との対に付
    与されたアドレスの昇順に順次記憶手段に記憶させる制
    御手段と、 複数の比較手段の各々に単位データが入力される毎に各
    比較手段から出力される比較信号に対し、現在のサイク
    ルをm、アドレスnの比較手段から出力される比較信号
    をML(n,m) 、論理和を+、論理積を×、アドレスnの最
    大値をN、アドレスnが0のときのn−1をN、比較結
    果「一致」を1、「不一致」を0で表したとすると、 MX(n,m+1) = ML(n,m) ORFB=PX(0,m) +PX(1,m) +…+PX(N,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)×PX(n-1,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)×MX(n-1,m) MSIG=PX(0,m) +PX(1,m) +…+PX(N,m) 比較結果「一致」を0、「不一致」を1で表したとする
    と、 MX(n,m+1) = ML(n,m) ORFB=PX(0,m) ×PX(1,m) ×…×PX(N,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)+PX(n-1,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)+MX(n-1,m) MSIG=PX(0,m) ×PX(1,m) ×…×PX(N,m) なる演算を各サイクルで各々行って、各比較手段に対応
    する第3中間信号MX(n,m) 及び第4中間信号PX(n,m)
    と、フィードバック信号ORFBと、信号MSIGと、を生成
    し、比較結果として信号MSIGを出力する比較結果制御手
    段と、 を含むデータ圧縮用検索装置。
  6. 【請求項6】 前記比較結果制御手段を、 前記複数の比較手段に対応して各々設けられ、各々対応
    するアドレスnの比較手段から出力された比較信号ML
    (n,m) を保持する複数の第3信号保持手段と、 複数の比較手段に対応して各々設けられ、各々対応する
    アドレスnの第3信号保持手段に一旦保持された比較信
    号ML(n,m) を第3中間信号MX(n,m+1) として保持する複
    数の第4信号保持手段と、 複数の比較手段に対応して各々設けられ、対応するアド
    レスnの第3信号保持手段に保持された比較信号ML(n,
    m) 、アドレスn−1の第4信号保持手段に保持された
    第3中間信号MX(n-1,m) 、アドレスn−1の第4中間信
    号PX(n-1,m) 及びフィードバック信号ORFBが入力され、
    第4中間信号PX(n,m+1) を生成する複数の第3信号生成
    手段と、 複数の比較手段に対応して各々設けられ、各々対応する
    アドレスnの第3信号生成手段から出力された第4中間
    信号PX(n,m) を保持し、アドレスn+1の第3信号生成
    手段に出力する複数の第5信号保持手段と、 前記複数の第3信号生成手段から各々入力された第4中
    間信号PX(n,m)に基づいてフィードバック信号ORFBを生
    成し複数の第3信号生成手段の各々に出力するフィード
    バック信号生成手段と、 複数の第3信号生成手段から各々出力された第4中間信
    号PX(n,m) を前記フィードバック信号生成手段に導く第
    1信号線と、フィードバック信号生成手段から出力され
    たフィードバック信号ORFBを複数の第3信号生成手段の
    各々に導く第2信号線と、を含む信号経路の略中間点に
    設けられ、前記信号経路を通過する信号の通過時間を調
    整する第1調整手段と、 を含んで構成したことを特徴とする請求項5記載のデー
    タ圧縮用検索装置。
  7. 【請求項7】 所定ビット長のデータから成る単位デー
    タを記憶する複数の記憶手段と、 前記記憶手段に対応して設けられ、記憶手段に記憶され
    た単位データと入力された単位データとを比較し、比較
    結果を表す比較信号を出力する複数の比較手段と、 所定数の単位データで構成された元データから隣合う単
    位データを順次取り出し前記記憶装置の複数の比較手段
    の各々に順次入力すると共に、複数の比較手段の各々に
    入力した単位データを各記憶手段と比較手段との対に付
    与されたアドレスの降順に順次記憶手段に記憶させる制
    御手段と、 複数の比較手段の各々に単位データが入力される毎に各
    比較手段から出力される比較信号に対し、現在のサイク
    ルをm、アドレスnの比較手段から出力される比較信号
    をML(n,m) 、論理和を+、論理積を×、アドレスnの最
    大値をN、アドレスnがNのときのn+1を0、比較結
    果「一致」を1、「不一致」を0で表したとすると、 MX(n,m+1) = ML(n,m) ORFB=PX(0,m) +PX(1,m) +…+PX(N,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)×PX(n+1,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)×MX(n+1,m) MSIG=PX(0,m) +PX(1,m) +…+PX(N,m) 比較結果「一致」を0、「不一致」を1で表したとする
    と、 MX(n,m+1) = ML(n,m) ORFB=PX(0,m) ×PX(1,m) ×…×PX(N,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)+PX(n+1,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)+MX(n+1,m) MSIG=PX(0,m) ×PX(1,m) ×…×PX(N,m) なる演算を各サイクルで各々行って、各比較手段に対応
    する第3中間信号MX(n,m) 及び第4中間信号PX(n,m)
    と、フィードバック信号ORFBと、信号MSIGと、を生成
    し、比較結果として信号MSIGを出力する比較結果制御手
    段と、 を含むデータ圧縮用検索装置。
  8. 【請求項8】 前記比較結果制御手段を、 前記複数の比較手段に対応して各々設けられ、各々対応
    するアドレスnの比較手段から出力された比較信号ML
    (n,m) を保持する複数の第3信号保持手段と、 複数の比較手段に対応して各々設けられ、各々対応する
    アドレスnの第3信号保持手段に一旦保持された比較信
    号ML(n,m) を第3中間信号MX(n,m+1) として保持する複
    数の第4信号保持手段と、 複数の比較手段に対応して各々設けられ、対応するアド
    レスnの第3信号保持手段に保持された比較信号ML(n,
    m) 、アドレスn+1の第4信号保持手段に保持された
    第3中間信号MX(n+1,m) 、アドレスn+1の第4中間信
    号PX(n+1,m) 及びフィードバック信号ORFBが入力され、
    第4中間信号PX(n,m+1) を生成する複数の第3信号生成
    手段と、 複数の比較手段に対応して各々設けられ、各々対応する
    アドレスnの第3信号生成手段から出力された第4中間
    信号PX(n,m) を保持し、アドレスn−1の第3信号生成
    手段に出力する複数の第5信号保持手段と、 前記複数の第3信号生成手段から各々入力された第4中
    間信号PX(n,m)に基づいてフィードバック信号ORFBを生
    成し複数の第3信号生成手段の各々に出力するフィード
    バック信号生成手段と、 複数の第3信号生成手段から各々出力された第4中間信
    号PX(n,m) を前記フィードバック信号生成手段に導く第
    1信号線と、フィードバック信号生成手段から出力され
    たフィードバック信号ORFBを複数の第3信号生成手段の
    各々に導く第2信号線と、を含む信号経路の略中間点に
    設けられ、前記信号経路を通過する信号の通過時間を調
    整する第1調整手段と、 を含んで構成したことを特徴とする請求項7記載のデー
    タ圧縮用検索装置。
  9. 【請求項9】 所定ビット長のデータから成る単位デー
    タを記憶する複数の記憶手段と、 前記記憶手段に対応して設けられ、記憶手段に記憶され
    た単位データと入力された単位データとを比較し、比較
    結果を表す比較信号を出力する複数の比較手段と、 所定数の単位データで構成された元データから隣合う単
    位データを順次取り出し前記記憶装置の複数の比較手段
    の各々に順次入力すると共に、複数の比較手段の各々に
    入力した単位データを各記憶手段と比較手段との対に付
    与されたアドレスの昇順に順次記憶手段に記憶させる制
    御手段と、 複数の比較手段の各々に単位データが入力される毎に各
    比較手段から出力される比較信号に対し、現在のサイク
    ルをm、アドレスnの比較手段から出力される比較信号
    をML(n,m) 、論理和を+、論理積を×、否定を!、アド
    レスnの最大値をN、アドレスnが0のときのn−1を
    N、比較結果「一致」を1、「不一致」を0で表したと
    すると、 MX(n,m+1) = ML(n,m) ORMX(m)=(ML(0,m)×MX(N,m)) +(ML(1,m)×MX(0,m)) +
    …+(ML(N,m)×MX(N-1,m)) ORPX(m)=(ML(0,m)×PX(N,m)) +(ML(1,m)×PX(0,m)) +
    …+(ML(N,m)×PX(N-1,m)) ORFB=ORPX(m) +(ORMX(m) × !ORPX(m-1)) ORFB=1の場合は、PX(n,m+1) = ML(n,m)×PX(n-1,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)×MX(n-1,m) MSIG=PX(0,m) +PX(1,m) +…+PX(N,m) 比較結果「一致」を0、「不一致」を1で表したとする
    と、 MX(n,m+1) = ML(n,m) ORMX(m)=(ML(0,m)+MX(N,m)) ×(ML(1,m)+MX(0,m)) ×
    …×(ML(N,m)+MX(N-1,m)) ORPX(m)=(ML(0,m)+PX(N,m)) ×(ML(1,m)+PX(0,m)) ×
    …×(ML(N,m)+PX(N-1,m)) ORFB=ORPX(m) ×( ORMX(m) + !ORPX(m-1) ) ORFB=0の場合は、PX(n,m+1) = ML(n,m)+PX(n-1,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)+MX(n-1,m) MSIG=PX(0,m) ×PX(1,m) ×…×PX(N,m) なる演算を各サイクルで各々行って、各比較手段に対応
    する第5中間信号MX(n,m) 及び第6中間信号PX(n,m)
    と、第7中間信号ORMX(m) と、第8中間信号ORPX(m)
    と、フィードバック信号ORFBと、信号MSIGと、を生成
    し、比較結果として信号MSIGを出力する比較結果制御手
    段と、 を含むデータ圧縮用検索装置。
  10. 【請求項10】 前記比較結果制御手段を、 前記複数の比較手段に対応して各々設けられ、各々対応
    するアドレスnの比較手段から出力された比較信号ML
    (n,m) を保持する複数の第6信号保持手段と、 複数の比較手段に対応して各々設けられ、各々対応する
    アドレスnの第6信号保持手段に一旦保持された比較信
    号ML(n,m) を第5中間信号MX(n,m+1) として保持する複
    数の第7信号保持手段と、 複数の比較手段に対応して各々設けられ、対応するアド
    レスnの第6信号保持手段に保持された比較信号ML(n,
    m) 、アドレスn−1の第7信号保持手段に保持された
    第5中間信号MX(n-1,m) 、アドレスn−1の第7中間信
    号PX(n-1,m) 及びフィードバック信号ORFBが入力され、
    第6中間信号PX(n,m+1) を生成する複数の第4信号生成
    手段と、 複数の比較手段に対応して各々設けられ、各々対応する
    アドレスnの第4信号生成手段から出力された第6中間
    信号PX(n,m) を保持し、アドレスn+1の第4信号生成
    手段に出力する複数の第8信号保持手段と、 複数の比較手段に対応して各々設けられ、対応するアド
    レスnの第6信号保持手段に保持された比較信号ML(n,
    m) とアドレスn−1の第7信号保持手段に保持された
    第5中間信号MX(n-1,m) が入力され、第7中間信号ORMX
    (m) を生成する第5信号生成手段と、 アドレスnの第6信号保持手段に保持された比較信号ML
    (n,m) とアドレスn−1の第8信号保持手段に保持され
    た第6中間信号PX(n-1,m) が入力され、第8中間信号OR
    PX(m) を生成する第6信号生成手段と、 前記第5信号生成手段から出力された第7中間信号ORMX
    (m) と、前記第6信号生成手段から出力された第8中間
    信号ORPX(m) と,1サイクル遅延させた第8中間信号OR
    PX(m-1) に基づいてフィードバック信号ORFBを生成し複
    数の第4信号生成手段の各々に出力するフィードバック
    信号生成手段と、 複数の第6信号保持手段から出力された比較信号ML(n,
    m) と複数の第7信号保持手段から出力された第5中間
    信号MX(n-1,m) を前記第5信号生成手段に導く第3信号
    線と、第5信号生成手段から出力された第7中間信号OR
    MX(m) を前記フィードバック生成手段に導く第4信号線
    と、フィードバック生成手段から出力されたフィードバ
    ック信号ORFBを複数の第4信号生成手段の各々に導く第
    5信号線と、を含む信号経路の略中間点に設けられ、前
    記信号経路を通過する信号の通過時間を調整する第2調
    整手段と、 複数の第6信号保持手段から出力された比較信号ML(n,
    m) と複数の第8信号保持手段から出力された第6中間
    信号MX(n-1,m) を前記第6信号生成手段に導く第6信号
    線と、第6信号生成手段から出力された第8中間信号OR
    PX(m) を前記フィードバック生成手段に導く第7信号線
    と、フィードバック生成手段から出力されたフィードバ
    ック信号ORFBを複数の第4信号生成手段の各々に導く第
    5信号線と、を含む信号経路の略中間点に設けられ、前
    記信号経路を通過する信号の通過時間を調整する第3調
    整手段と、 を含んで構成したことを特徴とする請求項9記載のデー
    タ圧縮用検索装置。
  11. 【請求項11】 所定ビット長のデータから成る単位デ
    ータを記憶する複数の記憶手段と、 前記記憶手段に対応して設けられ、記憶手段に記憶され
    た単位データと入力された単位データとを比較し、比較
    結果を表す比較信号を出力する複数の比較手段と、 所定数の単位データで構成された元データから隣合う単
    位データを順次取り出し前記記憶装置の複数の比較手段
    の各々に順次入力すると共に、複数の比較手段の各々に
    入力した単位データを各記憶手段と比較手段との対に付
    与されたアドレスの降順に順次記憶手段に記憶させる制
    御手段と、 複数の比較手段の各々に単位データが入力される毎に各
    比較手段から出力される比較信号に対し、現在のサイク
    ルをm、アドレスnの比較手段から出力される比較信号
    をML(n,m) 、論理和を+、論理積を×、否定を!、アド
    レスnの最大値をN、アドレスnがNのときのn+1を
    0、比較結果「一致」を1、「不一致」を0で表したと
    すると、 MX(n,m+1) = ML(n,m) ORMX(m)=(ML(0,m)×MX(1,m)) +(ML(1,m)×MX(2,m)) +
    …+(ML(N,m)×MX(0,m)) ORPX(m)=(ML(0,m)×PX(1,m)) +(ML(1,m)×PX(2,m)) +
    …+(ML(N,m)×PX(0,m)) ORFB=ORPX(m) +(ORMX(m) × !ORPX(m-1)) ORFB=1の場合は、PX(n,m+1) = ML(n,m)×PX(n+1,m) ORFB=0の場合は、PX(n,m+1) = ML(n,m)×MX(n+1,m) MSIG=PX(0,m) +PX(1,m) +…+PX(N,m) 比較結果「一致」を0、「不一致」を1で表したとする
    と、 MX(n,m+1) = ML(n,m) ORMX(m)=(ML(0,m)+MX(1,m)) ×(ML(1,m)+MX(2,m)) ×
    …×(ML(N,m)+MX(0,m)) ORPX(m)=(ML(0,m)+PX(1,m)) ×(ML(1,m)+PX(2,m)) ×
    …×(ML(N,m)+PX(0,m)) ORFB=ORPX(m) ×( ORMX(m) + !ORPX(m-1) ) ORFB=0の場合は、PX(n,m+1) = ML(n,m)+PX(n+1,m) ORFB=1の場合は、PX(n,m+1) = ML(n,m)+MX(n+1,m) MSIG=PX(0,m) ×PX(1,m) ×…×PX(N,m) なる演算を各サイクルで各々行って、各比較手段に対応
    する第5中間信号MX(n,m) 及び第6中間信号PX(n,m)
    と、第7中間信号ORMX(m) と、第8中間信号ORPX(m)
    と、フィードバック信号ORFBと、信号MSIGと、を生成
    し、比較結果として信号MSIGを出力する比較結果制御手
    段と、 を含むデータ圧縮用検索装置。
  12. 【請求項12】 前記比較結果制御手段を、 前記複数の比較手段に対応して各々設けられ、各々対応
    するアドレスnの比較手段から出力された比較信号ML
    (n,m) を保持する複数の第6信号保持手段と、 複数の比較手段に対応して各々設けられ、各々対応する
    アドレスnの第6信号保持手段に一旦保持された比較信
    号ML(n,m) を第5中間信号MX(n,m+1) として保持する複
    数の第7信号保持手段と、 複数の比較手段に対応して各々設けられ、対応するアド
    レスnの第6信号保持手段に保持された比較信号ML(n,
    m) 、アドレスn+1の第7信号保持手段に保持された
    第5中間信号MX(n+1,m) 、アドレスn+1の第7中間信
    号PX(n+1,m) 及びフィードバック信号ORFBが入力され、
    第6中間信号PX(n,m+1) を生成する複数の第4信号生成
    手段と、 複数の比較手段に対応して各々設けられ、各々対応する
    アドレスnの第4信号生成手段から出力された第6中間
    信号PX(n,m) を保持し、アドレスn−1 の第4信号生
    成手段に出力する複数の第8信号保持手段と、 複数の比較手段に対応して各々設けられ、対応するアド
    レスnの第6信号保持手段に保持された比較信号ML(n,
    m) とアドレスn+1の第7信号保持手段に保持された
    第5中間信号MX(n+1,m) が入力され、第7中間信号ORMX
    (m) を生成する第5信号生成手段と、 アドレスnの第6信号保持手段に保持された比較信号ML
    (n,m) とアドレスn+1の第8信号保持手段に保持され
    た第6中間信号PX(n+1,m) が入力され、第8中間信号OR
    PX(m) を生成する第6信号生成手段と、 前記第5信号生成手段から出力された第7中間信号ORMX
    (m) と、前記第6信号生成手段から出力された第8中間
    信号ORPX(m) と、1サイクル遅延させた第8中間信号OR
    PX(m-1) に基づいてフィードバック信号ORFBを生成し複
    数の第4信号生成手段の各々に出力するフィードバック
    信号生成手段と、 複数の第6信号保持手段から出力された比較信号ML(n,
    m) と複数の第7信号保持手段から出力された第5中間
    信号MX(n+1,m) を前記第5信号生成手段に導く第3信号
    線と、第5信号生成手段から出力された第7中間信号OR
    MX(m) を前記フィードバック生成手段に導く第4信号線
    と、フィードバック生成手段から出力されたフィードバ
    ック信号ORFBを複数の第4信号生成手段の各々に導く第
    5信号線と、を含む信号経路の略中間点に設けられ、前
    記信号経路を通過する信号の通過時間を調整する第2調
    整手段と、 複数の第6信号保持手段から出力された比較信号ML(n,
    m) と複数の第8信号保持手段から出力された第6中間
    信号MX(n+1,m) を前記第6信号生成手段に導く第6信号
    線と、第6信号生成手段から出力された第8中間信号OR
    PX(m) を前記フィードバック生成手段に導く第7信号線
    と、フィードバック生成手段から出力されたフィードバ
    ック信号ORFBを複数の第4信号生成手段の各々に導く第
    5信号線と、を含む信号経路の略中間点に設けられ、前
    記信号経路を通過する信号の通過時間を調整する第3調
    整手段と、 を含んで構成したことを特徴とする請求項11記載のデ
    ータ圧縮用検索装置。
  13. 【請求項13】 前記複数の記憶手段及び複数の比較手
    段を連想メモリで構成したことを特徴とする請求項1又
    は請求項3又は請求項5又は請求項7記載又は請求項9
    又は請求項11のデータ圧縮用検索装置。
JP7213852A 1994-12-28 1995-08-22 データ圧縮用検索装置 Expired - Fee Related JP3007819B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7213852A JP3007819B2 (ja) 1994-12-28 1995-08-22 データ圧縮用検索装置
US08/578,314 US5877714A (en) 1994-12-28 1995-12-26 Search circuit for data compression

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP32784894 1994-12-28
JP6-327848 1994-12-28
JP7213852A JP3007819B2 (ja) 1994-12-28 1995-08-22 データ圧縮用検索装置

Publications (2)

Publication Number Publication Date
JPH08242176A JPH08242176A (ja) 1996-09-17
JP3007819B2 true JP3007819B2 (ja) 2000-02-07

Family

ID=26520013

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7213852A Expired - Fee Related JP3007819B2 (ja) 1994-12-28 1995-08-22 データ圧縮用検索装置

Country Status (2)

Country Link
US (1) US5877714A (ja)
JP (1) JP3007819B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11607021B2 (en) 2018-10-24 2023-03-21 Shedrain Corporation Umbrella having anti-inversion mechanism
US11903465B2 (en) 2020-11-06 2024-02-20 Shedrain Corporation Umbrella having anti-inversion mechanism

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828324A (en) * 1996-06-17 1998-10-27 Hewlett-Packard Company Match and match address signal generation in a content addressable memory encoder
US6069573A (en) * 1996-06-17 2000-05-30 Hewlett-Packard Company Match and match address signal prioritization in a content addressable memory encoder
JP3421700B2 (ja) 1998-01-22 2003-06-30 富士通株式会社 データ圧縮装置及び復元装置並びにその方法
US6191710B1 (en) * 1998-12-30 2001-02-20 Intel Corp. Data compression and decompression method and system for data compression and decompression
US6615310B1 (en) * 2000-05-18 2003-09-02 International Business Machines Corporation Lossless data compressor with all CAM words available
US6348881B1 (en) * 2000-08-29 2002-02-19 Philips Electronics No. America Corp. Efficient hardware implementation of a compression algorithm
US7111123B1 (en) * 2001-12-27 2006-09-19 Netlogic Microsystems, Inc. Circuit and method to allow searching beyond a designated address of a content addressable memory
US7301961B1 (en) 2001-12-27 2007-11-27 Cypress Semiconductor Corportion Method and apparatus for configuring signal lines according to idle codes
US6650575B1 (en) * 2001-12-28 2003-11-18 Netlogic Microsystems, Inc. Programmable delay circuit within a content addressable memory
US6944040B1 (en) 2001-12-28 2005-09-13 Netlogic Microsystems, Inc. Programmable delay circuit within a content addressable memory
US7171595B1 (en) * 2002-05-28 2007-01-30 Netlogic Microsystems, Inc. Content addressable memory match line detection
US6771525B2 (en) * 2002-05-31 2004-08-03 Mosaid Technologies Incorporated Method and apparatus for performing variable word width searches in a content addressable memory
US7187570B2 (en) * 2003-03-20 2007-03-06 Stmicroelectronics Pvt. Ltd. Content addressable memory architecture providing improved speed
JP4556766B2 (ja) * 2005-05-23 2010-10-06 ソニー株式会社 文字列検索回路及び文字列検索方法
JP4806054B2 (ja) 2009-05-13 2011-11-02 インターナショナル・ビジネス・マシーンズ・コーポレーション データが記憶された位置を選択する装置及び方法
JP4945618B2 (ja) * 2009-09-18 2012-06-06 株式会社東芝 A/dコンバータ
GB2500524A (en) * 2010-12-28 2013-09-25 Ibm Apparatus and method for processing sequence of data element
DE112011104633B4 (de) 2010-12-28 2016-11-10 International Business Machines Corporation Einheit zum Ermitteln des Ausgangspunkts für eine Suche

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07114577A (ja) * 1993-07-16 1995-05-02 Internatl Business Mach Corp <Ibm> データ検索装置、データ圧縮装置及び方法
US5602764A (en) * 1993-12-22 1997-02-11 Storage Technology Corporation Comparing prioritizing memory for string searching in a data compression system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11607021B2 (en) 2018-10-24 2023-03-21 Shedrain Corporation Umbrella having anti-inversion mechanism
US11903465B2 (en) 2020-11-06 2024-02-20 Shedrain Corporation Umbrella having anti-inversion mechanism

Also Published As

Publication number Publication date
JPH08242176A (ja) 1996-09-17
US5877714A (en) 1999-03-02

Similar Documents

Publication Publication Date Title
JP3007819B2 (ja) データ圧縮用検索装置
US11120867B2 (en) Hardware compression with search string matching
US5150430A (en) Lossless data compression circuit and method
EP0634839A1 (en) Data search device
US9647684B2 (en) Memory-based history search
US6392910B1 (en) Priority encoder with multiple match function for content addressable memories and methods for implementing the same
US6069573A (en) Match and match address signal prioritization in a content addressable memory encoder
US10025773B2 (en) System and method for natural language processing using synthetic text
US7441072B2 (en) Multilevel storage nonvolatile semiconductor memory device enabling high-speed data reading and high-speed data writing
JPH06324841A (ja) テキストを圧縮する装置と方法、及び連想記憶装置
JP3294032B2 (ja) 可変長符号の復号化装置
JPH1186567A (ja) 連想記憶装置
US8677079B2 (en) Selecting a position where data is stored
JP5520390B2 (ja) データ要素列を処理する装置及び方法
JP3853439B2 (ja) 高速可変長コード復号化装置及び高速可変長コード復号化方法
Satoh et al. Lempel‐Ziv‐type high‐speed data compression circuit using content addressable memory
JP2007274051A (ja) バイト列探索器及び探索方法
JP3103421B2 (ja) 符号化回路
JP3087488B2 (ja) データ復元回路
SU1324071A1 (ru) Ассоциативное оперативное запоминающее устройство
GB2501195A (en) Device and method for determining search starting point
JP2005260285A (ja) データ圧縮装置
KR19990050490A (ko) 가변 길이 디코딩 장치
KR19990050488A (ko) 효율적 면적의 가변길이 코덱 장치
Markas et al. On parallel implementations and experimentations of lossless data compression algorithms

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees