JPH07114577A - データ検索装置、データ圧縮装置及び方法 - Google Patents

データ検索装置、データ圧縮装置及び方法

Info

Publication number
JPH07114577A
JPH07114577A JP5319944A JP31994493A JPH07114577A JP H07114577 A JPH07114577 A JP H07114577A JP 5319944 A JP5319944 A JP 5319944A JP 31994493 A JP31994493 A JP 31994493A JP H07114577 A JPH07114577 A JP H07114577A
Authority
JP
Japan
Prior art keywords
data
output
unit
unit data
input
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.)
Pending
Application number
JP5319944A
Other languages
English (en)
Inventor
Akashi Sato
証 佐藤
Hideto Niijima
秀人 新島
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 JP5319944A priority Critical patent/JPH07114577A/ja
Priority to EP94304954A priority patent/EP0634839A1/en
Priority to US08/275,471 priority patent/US5448733A/en
Publication of JPH07114577A publication Critical patent/JPH07114577A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • 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/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • 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
    • 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing

Landscapes

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

Abstract

(57)【要約】 【目的】 データの検索を高速で行う。 【構成】 連想メモリ26の連想メモリセル列に順に記憶
された被検索文字列(BABCABB…)に対して検索文字列(A
BCA)を検索する場合、バッファ56に検索文字列の最初の
文字(A) のデータが入力され全てのセル列で比較動作が
行なわれる。次の文字(B) との比較動作は前回一致した
セル列と隣り合うアドレス(2),(5) のセル列のみで行な
われる。同様に次の文字(C) との比較動作はアドレス
(3),(6) のセル列のみで行なわれる。更に最後の文字
(A) に対しては、前回一致したアドレス(3) のセル列に
隣り合うアドレス(4) のセル列のみで行なわれる。上記
では、検索文字列の長さが可変長であっても比較動作の
繰り返し回数が変化するのみであり、特に被検索文字列
が長大である場合に、従来と比較して極めて短時間で検
索処理が終了する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ検索装置に係り、
特に、文字列等の被検索データの中から検索データを検
索するデータ検索装置に関する。また本発明はデータ圧
縮装置及び方法に係り、特に、文字列等の元データの中
の繰り返しデータを探索して前記元データの長さを圧縮
するデータ圧縮装置及び方法に関する。
【0002】
【従来の技術及び発明が解決しようとする課題】コンピ
ュータ等の分野では、検索対象としての文字列等の被検
索データの中から所定の検索データを検索することが頻
繁に行われる(一例として後述するデータ圧縮等)。こ
の検索はソフトウェアによって実行されることが多い
が、処理時間を短縮するためにはハードウェアによって
検索を行わせることが有効である。被検索データの中か
ら検索データを検索する検索回路としては、従来より種
種の構成のものが提案されている。検索回路の一例を図
17(A)に示す。
【0003】図17(A)に示す検索回路500は、検
索データS0 〜Sn を格納する複数のレジスタ502
と、被検索データD0 …の一部を保持するシフトレジス
タ504と、レジスタ502に保持されたデータとシフ
トレジスタ504に保持されたデータとを比較し一致し
ている場合にハイレベルとなる比較信号を出力する複数
の比較器506と、複数の比較器506の各々から出力
される比較信号が入力されるAND回路508と、から
構成されている。この検索回路500では、シフトレジ
スタ504に保持させるデータをシフトすることによっ
て被検索データが順次検索回路500に入力される。被
検索データの中から検索データが発見されると、全ての
比較器506から出力される比較信号がハイレベルにな
り、AND回路508から出力される信号がハイレベル
になるので、検索データが発見されたことが検知され
る。
【0004】ところで、検索等に利用されるハードウェ
アの一例として、従来より連想メモリ(Content Addres
sable Memory:CAM) が知られている。一般的なメモリ
は、記憶位置のアドレスが指定されると前記アドレスに
対応する記憶領域に記憶しているデータを出力するもの
であるが、これに対し前述の連想メモリでは、データが
指定されると該データを記憶している記憶領域のアドレ
スを出力するようになっている。従来より提案されてい
る連想メモリを利用したデータ検索装置(一例として特
開平 2-66671号公報等参照)は、概念的には図17
(B)に示す検索回路510のように、図17(A)の
レジスタ502及び比較器506を、連想メモリ装置5
12を構成する連想メモリ部514に各々置き換えた構
成となっている(所謂Associative Memory:AM法)。
【0005】連想メモリ部514はメモリ及び比較回路
を備えており、所定長さのデータを記憶すると共に、記
憶しているデータと入力されたデータとを比較する。こ
の連想メモリ部514に検索データを記憶させておき、
シフトレジスタ504に保持されている被検索データを
入力して比較を行なわせることによって検索データの検
索が行なわれる。各連想メモリ部514の比較結果を出
力する端子は各々マッチ線516に接続されている。マ
ッチ線516は各連想メモリ部514が比較を行なう前
に図示しない外部回路によって予めハイレベルにチャー
ジされる(所謂プリチャージ)。各連想メモリ部514
は、記憶している検索データとシフトレジスタ504に
保持されている被検索データとを比較し、不一致の場合
にはマッチ線516をローレベルにする(チャージを引
き抜く)。従って、全ての連想メモリ部514の比較結
果が「一致」の場合にのみマッチ線516はハイレベル
に保持されるので、マッチ線516のレベルに基づいて
検索データの発見を検知できる。
【0006】しかしながら、図17(B)に示す検索回
路510において、検索データとして長さが不定のデー
タ(以下、これを可変長データという)を検索する場合
には、シフトレジスタ504が記憶可能なデータの長さ
を検索データの最大長に対応させ、連想メモリ装置51
2の連想メモリ部514を前記最大長に対応する個数設
ける必要がある。また、検索データの長さが短い場合に
は、不要な(データの検索に寄与しない)連想メモリ回
路が生じ、この不要な連想メモリ回路が無駄に電力を消
費するという欠点があった。
【0007】また前記不要な連想メモリ回路の数は検索
データの数に応じて変化するので、不要な連想メモリ回
路から出力される比較結果が検索回路510の検索結果
に影響を及ぼさないようにするためには、例えば前記不
要な連想メモリ回路から強制的に「一致」の比較結果を
出力させる、又は出力された比較結果を無視すると共
に、検索データの長さに応じて対象とする連想メモリ回
路の数を変化させる等のドントケア(Don't Care:DC)処
理を行なう回路を付加する必要があるが、このようなD
C処理機能を付与した連想メモリ装置は、汎用の連想メ
モリと比較して高い集積度で集積回路化することが困難
であるので、結果的に装置を小型化することが難しい。
このように、連想メモリを用いて可変長検索データの検
索を行なおうとすると種々の問題が生ずる。
【0008】さらに、長さが一定の固定長検索データの
検索を行なう場合にも生ずるAM法特有の欠点として、シ
フトレジスタ504に被検索データを逐次入力して検索
を行なうので、被検索データの長さに比例して検索時間
が増大し、例えばデータベースにおける検索等のように
被検索データが長大であった場合には膨大な検索時間が
必要となるという問題があった。
【0009】ところで、近年マルチメディア化が進み、
各種のシステムにおいて画像データ、音声データ、文書
データ、プログラム等の様々なデータを大量に取り扱う
必要が生じている。大量のデータを記憶装置に記憶した
り転送する等の処理は、データを圧縮してから行なうこ
とがコストや処理速度の点で非常に有効であり、データ
圧縮技術の重要性は急速に高まってきている。
【0010】データ圧縮技術としては従来より種々のも
のが提案されているが、損失圧縮と無損失圧縮の2種類
に大別できる。損失圧縮は高い圧縮率が得られるが、デ
ータの圧縮及び圧縮データの復元の過程で情報が損失す
るので、適用できる範囲は特定の分野に限定される。一
方、無損失圧縮は圧縮率は比較的低いが、データの圧縮
及び圧縮データの復元の過程で情報が損失することがな
く、復元したデータが圧縮前の元のデータと完全に一致
するため適用範囲が広い。
【0011】無損失圧縮の一種として、レンペルとジブ
(Lemple and Ziv)によって1977年に提案された辞書技
術に基づく汎用圧縮アルゴリズムLZ77(以下、単にLZ77
という) は、広く知られている Huffman符号等のエント
ロピー符号と比較して圧縮率が非常に高く、有用な圧縮
方法である。LZ77の基本的なアイディアは、元データに
含まれる繰り返しデータを検索し、繰り返しデータを別
の符号(既に出現した同一データの位置を指し示すポイ
ンタ及び繰り返しデータのデータ長)に置き換えて冗長
性を除くことによって圧縮するものである。LZ77では、
圧縮したデータを圧縮前の元のデータに復元することは
比較的容易に行なうことができるが、前記繰り返しデー
タも長さが不定の可変長データであるので、データを圧
縮する際に繰り返しデータの検索に非常に手間がかかる
という問題があった。
【0012】LZ77のアイディアに基づいてデータの圧縮
を行なうソフトウェアは従来より複数存在している。こ
れらのソフトウェアでは、元データを木構造のデータに
変換して繰り返しデータの検索を行なっているが、木構
造のデータに変換するアルゴリズムは非常に複雑である
ので処理に時間がかかると共にCPUに大きな負荷がか
かっていた。これを解決するためには、前述のソフトウ
ェアによって行なっていた処理をハードウェアに置き換
えて実行させることが考えられるが、前述のようにアル
ゴリズムが複雑であるため実現は容易ではなかった。ま
た、木構造のデータへの変換は、元データの内容によっ
て木構造が異なるので圧縮に要する時間が一定しないと
いう問題もあった。
【0013】本発明は上記事実を考慮して成されたもの
で、データの検索を高速で行なうことができるデータ検
索装置を得ることが目的である。
【0014】また本発明は、データの圧縮を高速で行な
うことができるデータ圧縮装置及びデータ圧縮方法を得
ることが目的である。
【0015】
【課題を解決するための手段】上記目的を達成するため
に請求項1記載の発明に係るデータ検索装置は、所定ビ
ット長のデータから成る単位データを記憶する複数の記
憶手段と、前記記憶手段に対応して設けられ記憶手段に
記憶された単位データと入力された単位データとが一致
しているときに一致信号を出力する複数の比較手段と、
を備え、複数の単位データから成る被検索データを前記
複数の記憶手段に単位データに分けて所定の順番に記憶
した記憶装置と、所定数の単位データで構成された検索
データから特定の単位データを取り出して前記記憶装置
の複数の比較手段の各々に入力した後に、検索データか
らの取り出し位置を移動させて単位データを取り出し、
一致信号が出力された比較手段と隣り合っている比較手
段に前記取り出した単位データを入力する、ことを繰り
返して検索する制御手段と、を含んで構成している。
【0016】また、請求項1記載の発明において、記憶
装置は単位データに分けた被検索データを複数の記憶手
段に付与されたアドレスの昇順に記憶手段に記憶し、制
御手段は、単位データの取り出し位置を検索データの先
頭から末尾側へ所定ビット長ずつ移動させながら単位デ
ータを取り出すと共に、対応する記憶手段のアドレスが
前記一致信号が出力された比較手段と隣り合っている比
較手段に、取り出した単位データを入力することができ
る。
【0017】また請求項1記載の発明において、記憶装
置は単位データに分けた被検索データを複数の記憶手段
に付与されたアドレスの降順に記憶手段に記憶し、制御
手段は、単位データの取り出し位置を検索データの先頭
から末尾側へ所定ビット長ずつ移動させながら単位デー
タを取り出すと共に、対応する記憶手段のアドレスが前
記一致信号が出力された比較手段と隣り合っている比較
手段に、取り出した単位データを入力することができ
る。
【0018】請求項4記載の発明に係るデータ圧縮装置
は、所定ビット長のデータから成る単位データを記憶す
る複数の記憶手段と、前記記憶手段に対応して設けられ
記憶手段に記憶された単位データと入力された単位デー
タとが一致しているときに一致信号を出力する複数の比
較手段と、を備えた記憶装置と、所定数の単位データで
構成された元データから特定の単位データを取り出して
前記記憶装置の複数の比較手段の各々に入力した後に、
一致信号が出力された場合には、前記取り出した単位デ
ータを記憶手段に付与されたアドレスの昇順又は降順に
記憶手段に記憶させた後に前記取り出した単位データと
隣り合っている単位データを取り出して前記一致信号が
出力された比較手段と隣り合っている比較手段に入力
し、一致信号が出力されなかった場合には、前記取り出
した単位データを圧縮データとして出力すると共に前記
アドレスの昇順又は降順に記憶手段に記憶させた後に前
記取り出した単位データと隣り合っている単位データを
取り出して比較手段の各々に入力し、一致信号が出力さ
れていた状態から一致信号が出力されなくなった場合に
は、前記一致信号が出力されていた状態で記憶手段に記
憶された単位データを所定の符号に置き換えて圧縮デー
タとして出力し、前記取り出した単位データを圧縮デー
タとして出力すると共に前記アドレスの昇順又は降順に
記憶手段に記憶させ、前記取り出した単位データと隣り
合っている単位データを取り出して比較手段の各々に入
力する、ことを繰り返し、元データを前記圧縮データに
圧縮して出力する制御手段と、を含んで構成している。
【0019】請求項5記載の発明に係るデータ圧縮装置
は、所定ビット長のデータから成る単位データを記憶す
る複数の記憶手段と、前記記憶手段に対応して設けられ
記憶手段に記憶された単位データと入力された単位デー
タとが一致しているときに一致信号を出力する複数の比
較手段と、を備えた記憶装置と、所定数の単位データで
構成された元データから特定の単位データを取り出して
前記記憶装置の複数の比較手段の各々に入力した後に、
一致信号が出力された場合には、前記取り出した単位デ
ータを記憶手段に付与されたアドレスの昇順又は降順に
記憶手段に記憶させた後に前記取り出した単位データと
隣り合っている単位データを取り出して前記一致信号が
出力された比較手段と隣り合っている比較手段に入力
し、一致信号が出力されなかった場合には、前記取り出
した単位データを圧縮データとして出力すると共に前記
アドレスの昇順又は降順に記憶手段に記憶させた後に前
記取り出した単位データと隣り合っている単位データを
取り出して比較手段の各々に入力し、一致信号が出力さ
れていた状態から一致信号が出力されなくなった場合に
は、前記一致信号が出力されていた状態で記憶手段に記
憶された単位データを所定の符号に置き換えて圧縮デー
タとして出力し、前記取り出した単位データを再び比較
手段の各々に入力する、ことを繰り返し、元データを前
記圧縮データに圧縮して出力する制御手段と、を含んで
構成している。
【0020】また、請求項4又は請求項5記載の発明に
おいて、制御手段は、記憶装置の全ての記憶手段に単位
データを記憶させた後に、単位データを書き込む記憶手
段のアドレスを先頭または末尾に戻して記憶させること
が好ましい。
【0021】また、請求項4又は請求項5記載の発明に
おいて、制御手段は、比較手段から一致信号が出力され
た回数を計数する計数手段を備え、計数手段によって計
数された回数及び一致信号が出力された比較手段に対応
する記憶手段のアドレスを用いて前記所定の符号を生成
することが好ましい。
【0022】また、請求項4又は請求項5記載の発明に
おいて、比較手段から一致信号が出力された場合に、記
憶装置における単位データが記憶された領域と単位デー
タが記憶されていない領域との境界アドレス及び前記比
較手段に対応する記憶手段のアドレスに基づいて、前記
比較手段に対応する記憶手段が前記単位データが記憶さ
れていない領域に含まれる場合には前記比較手段から出
力された一致信号を無効とする無効制御手段を備えるこ
とが好ましい。
【0023】また、請求項4又は請求項5記載の発明に
おいて、記憶装置の記憶手段に対応して設けられ元デー
タから取り出された単位データが記憶手段に記憶された
か否かを表す情報を保持する保持手段と、記憶手段に対
応して設けられ保持手段に保持された情報に基づいて元
データから取り出された単位データが記憶手段に記憶さ
れていない場合には前記比較手段から出力される一致信
号を無効とする無効制御手段と、を更に備えることが好
ましい。
【0024】また、請求項4又は請求項5記載の発明に
おいて、制御手段は、記憶装置の複数の記憶手段に圧縮
データから既に復元した元データを一時的に記憶させ、
該記憶させた元データを用いて、前記既に元データへの
復元を行った圧縮データに続く圧縮データを元データに
復元することができる。
【0025】請求項11記載の発明に係るデータ圧縮方
法は、所定ビット長のデータから成る単位データを記憶
する複数の記憶手段と、前記記憶手段に対応して設けら
れ記憶手段に記憶された単位データと入力された単位デ
ータとが一致しているときに一致信号を出力する複数の
比較手段と、を備えた記憶装置を用い、所定数の単位デ
ータで構成された元データから特定の単位データを取り
出して前記記憶装置の複数の比較手段の各々に入力した
後に、一致信号が出力された場合には、前記取り出した
単位データを記憶手段に付与されたアドレスの昇順又は
降順に記憶手段に記憶させた後に前記取り出した単位デ
ータと隣り合っている単位データを取り出して前記一致
信号が出力された比較手段と隣り合っている比較手段に
入力し、一致信号が出力されなかった場合には、前記取
り出した単位データを圧縮データとして出力すると共に
前記アドレスの昇順又は降順に記憶手段に記憶させた後
に前記取り出した単位データと隣り合っている単位デー
タを取り出して比較手段の各々に入力し、一致信号が出
力されていた状態から一致信号が出力されなくなった場
合には、前記一致信号が出力されていた状態で記憶手段
に記憶された単位データを所定の符号に置き換えて圧縮
データとして出力し、前記取り出した単位データを圧縮
データとして出力すると共に前記アドレスの昇順又は降
順に記憶手段に記憶させ、前記取り出した単位データと
隣り合っている単位データを取り出して比較手段の各々
に入力する、ことを繰り返し、元データを前記圧縮デー
タに圧縮して出力する。
【0026】請求項12記載の発明に係るデータ圧縮方
法は、所定ビット長のデータから成る単位データを記憶
する複数の記憶手段と、前記記憶手段に対応して設けら
れ記憶手段に記憶された単位データと入力された単位デ
ータとが一致しているときに一致信号を出力する複数の
比較手段と、を備えた記憶装置を用い、所定数の単位デ
ータで構成された元データから特定の単位データを取り
出して前記記憶装置の複数の比較手段の各々に入力した
後に、一致信号が出力された場合には、前記取り出した
単位データを記憶手段に付与されたアドレスの昇順又は
降順に記憶手段に記憶させた後に前記取り出した単位デ
ータと隣り合っている単位データを取り出して前記一致
信号が出力された比較手段と隣り合っている比較手段に
入力し、一致信号が出力されなかった場合には、前記取
り出した単位データを圧縮データとして出力すると共に
前記アドレスの昇順又は降順に記憶手段に記憶させた後
に前記取り出した単位データと隣り合っている単位デー
タを取り出して比較手段の各々に入力し、一致信号が出
力されていた状態から一致信号が出力されなくなった場
合には、前記一致信号が出力されていた状態で記憶手段
に記憶された単位データを所定の符号に置き換えて圧縮
データとして出力し、前記取り出した単位データを再び
比較手段の各々に入力する、ことを繰り返し、元データ
を前記圧縮データに圧縮して出力する。
【0027】
【作用】データ検索では、例えばデータベースにおける
文字列の検索等に代表されるように、検索データが長さ
が不定の可変長データであることが多く、かつ当然では
あるが被検索データと比較して長さが短い。このため請
求項1記載の発明では、単位データを記憶する複数の記
憶手段と、記憶手段に記憶された単位データと入力され
た単位データとが一致しているときに一致信号を出力す
る複数の比較手段と、を備えた記憶装置に、複数の単位
データから成る被検索データを複数の記憶手段に単位デ
ータに分けて所定の順番に記憶している。
【0028】そして、所定数の単位データで構成された
検索データから特定の単位データを取り出して記憶装置
の複数の比較手段の各々に入力した後に、検索データか
らの取り出し位置を移動させて単位データを取り出して
比較手段に取り出した単位データを入力することが繰り
返される。なお、単位データの長さ(ビット長)は、例
えば検索データ及び被検索データが、ASCIIコー
ド、またはISOコードで表される文字列データの場合
には8ビットとすることができ、漢字等を含む日本語の
文字列データの場合には16ビットとすることができ
る。
【0029】これにより、記憶手段に記憶された単位デ
ータと入力された単位データとの比較動作が各比較手段
で並列に行なわれ、検索データを単位データ毎に分けて
順に入力することによって検索データの検索が完了する
ので、検索に要する処理時間(具体的には比較動作の繰
り返し回数)は検索データの長さに応じて変化する。こ
のため、従来のように比較動作の繰り返し回数が被検索
データの長さに応じて変化する場合と比較して、特に被
検索データの長さが長大である場合に極めて短時間でデ
ータの検索を行なうことができる。
【0030】また、検索データが長さが不定の可変長デ
ータであるとしても、検索データの長さに応じて比較手
段への単位データの入力回数が変化するのみであり、検
索データの長さの最大値に合わせて回路構成を変更した
りする必要はない。更に、検索データの長さが最大値よ
りも短い場合には、従来は検索データの長さに応じてそ
の数が変化する不要な比較器又は連想メモリ部(本発明
では比較手段)の比較結果を無効とするDC処理を行な
う回路が付加された連想メモリセルやRAMセルを用い
る必要があったが、本発明では検索データの数が変化し
ても比較手段への単位データの入力回数が変化するのみ
であるので、DC処理を行なう回路が付加された連想メ
モリセルやRAMセル等を用いる必要がない。従って、
集積度の高い汎用の連想メモリセルやRAMセル等を用
いてデータ検索装置の記憶装置を構成することができ、
装置を小型化することができる。
【0031】さらに、請求項1の発明では、検索データ
から取り出した特定の単位データを記憶装置の複数の比
較手段の各々に入力した後は、検索データからの取り出
し位置を移動させて取り出した単位データを一致信号が
出力された比較手段と隣り合っている比較手段に入力す
ることを繰り返す。従って、被検索データ及び検索デー
タが全て同じ単位データから構成されている等の特殊な
場合を除き、比較手段に単位データを入力することを繰
り返すに従って単位データを入力する比較手段の数が少
なくなる。単位データが入力されなかった比較手段では
一致信号の出力やデータの単位データの比較等が行なわ
れないので、消費電力は非常に小さくて済み、特に検索
データの長さが長大である場合に消費電力を低減するこ
とができる。
【0032】なお、記憶装置は、単位データに分けた被
検索データを、記憶手段に付与されたアドレスの昇順又
は降順に各記憶手段に記憶することができる。また、検
索データからの単位データの取り出しは、通常は検索デ
ータの先頭から末尾側へ前記所定ビット長ずつ移動させ
ながら行なうことが多いが、検索データの末尾から先頭
側へ前記所定ビット長ずつ移動させながら行なってもよ
い。
【0033】例えば、単位データに分けた被検索データ
を、記憶手段に付与されたアドレスの昇順に各記憶手段
に記憶し、かつ検索データからの単位データの取り出し
を検索データの先頭から末尾側へ所定ビット長ずつ移動
させながら行なう場合には、請求項2にも記載したよう
に、検索データから取り出した単位データを、対応する
記憶手段のアドレスが一致信号が出力された比較手段と
隣り合っている比較手段に入力することができる。また
例えば、単位データに分けた被検索データを、記憶手段
に付与されたアドレスの降順に各記憶手段に記憶し、か
つ検索データからの単位データの取り出しを検索データ
の先頭から末尾側へ前記所定ビット長ずつ移動させなが
ら行なう場合には、請求項3にも記載したように、検索
データから取り出した単位データを、対応する記憶手段
のアドレスが一致信号が出力された比較手段と隣り合っ
ている比較手段に入力することができる。
【0034】請求項4記載の発明では、所定数の単位デ
ータで構成された元データから単位データを取り出して
記憶装置の比較手段に入力した後に、取り出した単位デ
ータを記憶手段に付与されたアドレスの昇順又は降順に
記憶手段に記憶させることが繰り返される。従って、元
データが単位データ毎に取り出され、既に記憶手段に記
憶された単位データと一致しているか否かが比較される
ことになる。また本発明では、元データから特定の単位
データを取り出して複数の比較手段の各々に入力した後
に、一致信号が出力されなかった場合と、一致信号が出
力された場合と、一致信号が出力されていた状態から一
致信号が出力されなくなった場合と、で各々異なる処理
を行なうことを繰り返して元データを圧縮する。
【0035】すなわち、一致信号が出力されなかった場
合には、比較手段に入力した単位データは既に記憶手段
に記憶された単位データと一致していないので、前記単
位データを圧縮データとして出力すると共に記憶手段に
記憶させた後に、前記単位データと隣り合っている単位
データを取り出して比較手段の各々に入力する。これに
より、前記単位データと隣り合っている単位データが既
に記憶手段に記憶された単位データと一致しているか否
かが複数の比較手段の各々で比較されることになる。
【0036】また、一致信号が出力された場合には、比
較手段に入力した単位データが既に記憶手段に記憶され
た単位データと一致しており、前記入力した単位データ
は元データの複数箇所に存在するデータ(これを繰り返
しデータという)であると判断できる。このため、前記
単位データを元データとして出力することは行なわず、
前記単位データを記憶手段に記憶させた後に前記単位デ
ータと隣り合っている単位データを取り出して一致信号
が出力された比較手段と隣り合っている比較手段に入力
する。
【0037】これは、既に記憶手段に記憶された単位デ
ータと一致していた単位データに隣り合っている単位デ
ータが、前記一致信号が出力された比較手段に隣り合っ
ている比較手段に対応する記憶手段に記憶されているか
否かを比較させることに相当する。従って、連続して一
致信号が出力された場合には、この一致信号に対応する
複数の単位データは連続した繰り返しデータであり、複
数の単位データから成る繰り返しデータが検出されたこ
とになる。
【0038】また、一致信号が出力されていた状態から
一致信号が出力されなくなった場合には、検出されてい
た繰り返しデータの末尾が検出されたと判断できる。こ
のため、一致信号が出力されていた状態で記憶手段に記
憶された単位データ(すなわち繰り返しデータ)を所定
の符号に置き換えて圧縮データとして出力し、取り出し
た単位データを圧縮データとして出力すると共に記憶手
段に記憶させ、前記取り出した単位データと隣り合って
いる単位データを取り出して比較手段の各々に入力す
る。
【0039】上記処理が繰り返されることにより、元デ
ータに含まれる繰り返しデータが所定の符号に置き換え
られた圧縮データが出力される。上記より明らかなよう
に、請求項4の発明では元データを単位データ毎に分け
て順に入力することによって元データの圧縮が完了する
ので、元データの長さに応じた一定時間、かつ元データ
を木構造のデータに変換して繰り返しデータの検索を行
なう場合と比較して非常に短い時間でデータの圧縮を行
なうことができる。
【0040】なお上記では、一致信号が出力されていた
状態から一致信号が出力されなくなり、検出されていた
繰り返しデータの末尾が検出されたと判断された場合
に、比較手段に入力した単位データを圧縮データとして
出力すると共にアドレスの昇順又は降順に記憶手段に記
憶させ、前記単位データと隣り合っている単位データを
取り出して比較手段の各々に入力するので、前記検出さ
れた繰り返しデータの末尾に隣接する単位データが別の
繰り返しデータであった場合に、この単位データを繰り
返しデータとして検出することができず、元データに含
まれる全ての繰り返しデータを検出できない場合があ
る、という問題がある。
【0041】これを解決するためには、請求項5に記載
したように、一致信号が出力されていた状態から一致信
号が出力されなくなった場合に、一致信号が出力されて
いた状態で記憶手段に記憶された単位データを所定の符
号に置き換えて圧縮データとして出力すると共に、取り
出した単位データを再び比較手段の各々に入力すること
が好ましい。これにより、元データ内に異なる繰り返し
データが隣接して存在していたとしても、この隣接して
存在する繰り返しデータの両方を検出することができる
ので、元データに含まれる全ての繰り返しデータを検出
することができ、元データの圧縮率が更に向上する、と
いう効果が得られる。
【0042】なお、請求項6に記載したように、制御手
段は、記憶装置の全ての記憶手段に単位データを記憶さ
せた後に、単位データを書き込む記憶手段のアドレスを
先頭または末尾に戻して記憶させることが好ましい。本
発明では元データを圧縮することが目的であり、記憶手
段には必ずしも全ての元データを記憶させる必要はない
ので、上記のように記憶装置の記憶手段を、所謂リング
バッファのように用いることにより、記憶装置の記憶手
段の数、すなわち記憶容量を低減することができる。
【0043】また、本発明において前述したLZ77に準
じ、繰り返しデータを、既に出現した同一データの位置
を指し示すポインタ及び繰り返しデータのデータ長を表
す所定の符号に置き換える場合には、請求項7に記載し
たように、比較手段から一致信号が出力された回数を計
数する計数手段を設け、計数手段によって計数された回
数及び一致信号が出力された比較手段に対応する記憶手
段のアドレスを用いて前記所定の符号を生成することが
できる。
【0044】また、本発明では元データから取り出した
単位データを記憶装置の記憶手段に順に記憶するので、
前述のように記憶装置の記憶手段をリングバッファとし
て用いたとしても、圧縮処理を開始したときには単位デ
ータを記憶していない記憶手段が存在する。この記憶手
段に対応する比較手段に単位データが入力されると、記
憶手段に記憶されているデータが不定であるので一致信
号が偶然に出力される可能性がある。これによる不都合
を防止するためには、請求項8にも記載したように、比
較手段から一致信号が出力された場合に記憶装置におけ
る単位データが記憶された領域と単位データが記憶され
ていない領域との境界アドレス及び一致信号が出力され
た比較手段に対応する記憶手段のアドレスに基づいて、
前記比較手段に対応する記憶手段が前記単位データが記
憶されていない領域に含まれる場合には前記比較手段か
ら出力された一致信号を無効とする無効制御手段を備え
ることが好ましい。これにより、前記偶然に出力された
一致信号を無効とすることができる。
【0045】また、請求項9に記載したように、元デー
タから取り出された単位データが記憶手段に記憶された
か否かを表す情報を保持する保持手段を記憶装置の記憶
手段に対応して設けると共に、保持手段に保持された情
報に基づいて元データから取り出されたデータが記憶手
段に記憶されていない場合には前記比較手段から出力さ
れる一致信号を無効とする無効制御手段を記憶手段に対
応させて設けるようにしてもよい。但し、請求項9では
記憶手段毎に保持手段及び無効制御手段を設ける必要が
あるので、記憶装置を集積回路化する場合の集積度は若
干低下することになる。
【0046】なお、制御手段によって圧縮データを元デ
ータに復元する場合には、請求項10にも記載したよう
に、制御手段は、記憶装置の複数の記憶手段に圧縮デー
タから既に復元した元データを一時的に記憶させ、該記
憶させた元データを用いて、前記既に元データへの復元
を行った圧縮データに続く圧縮データを元データに復元
することができる。
【0047】請求項11記載の発明では、所定ビット長
のデータから成る単位データを記憶する複数の記憶手段
と、前記記憶手段に対応して設けられ記憶手段に記憶さ
れた単位データと入力された単位データとが一致してい
るときに一致信号を出力する複数の比較手段と、を備え
た記憶装置を用い、所定数の単位データで構成された元
データから特定の単位データを取り出して前記記憶装置
の複数の比較手段の各々に入力した後に、一致信号が出
力された場合には、前記取り出した単位データを記憶手
段に付与されたアドレスの昇順又は降順に記憶手段に記
憶させた後に前記取り出した単位データと隣り合ってい
る単位データを取り出して前記一致信号が出力された比
較手段と隣り合っている比較手段に入力し、一致信号が
出力されなかった場合には、前記取り出した単位データ
を圧縮データとして出力すると共に前記アドレスの昇順
又は降順に記憶手段に記憶させた後に前記取り出した単
位データと隣り合っている単位データを取り出して比較
手段の各々に入力し、一致信号が出力されていた状態か
ら一致信号が出力されなくなった場合には、前記一致信
号が出力されていた状態で記憶手段に記憶された単位デ
ータを所定の符号に置き換えて圧縮データとして出力
し、前記取り出した単位データを圧縮データとして出力
すると共に前記アドレスの昇順又は降順に記憶手段に記
憶させ、前記取り出した単位データと隣り合っている単
位データを取り出して比較手段の各々に入力する、こと
を繰り返し、元データを前記圧縮データに圧縮して出力
するようにしたので、請求項4記載の発明と同様に、元
データの長さに応じた一定時間、かつ従来と比較して非
常に短い時間でデータの圧縮を行なうことができる。
【0048】更に、請求項12に記載した発明では、上
記請求項11の発明において、一致信号が出力されてい
た状態から一致信号が出力されなくなった場合に、一致
信号が出力されていた状態で記憶手段に記憶された単位
データを所定の符号に置き換えて圧縮データとして出力
し、取り出した単位データを再び比較手段の各々に入力
するようにしたので、請求項5記載の発明と同様に、元
データに含まれる全ての繰り返しデータを検出すること
ができ、元データの圧縮率が更に向上する、という効果
が得られる。
【0049】
【実施例】以下、図面を参照して本発明の実施例を詳細
に説明する。なお、以下では被検索データ、検索デー
タ、元データの一例として文字列データの検索、圧縮を
行なう場合について説明する。
【0050】〔第1実施例〕図1には本第1実施例に係
る、本発明が適用されたマイクロコンピュータ10の構
成(一部)が示されている。マイクロコンピュータ10
はCPU12、ROM14、RAM16を備えており、
これらはアドレスバス、データバス、コントロールバス
等から成るバス18を介して互いに接続されている。ま
たマイクロコンピュータ10は本発明に係る文字列検索
装置20を備えており、この文字列検索装置20は文字
列検索装置20の作動を制御するコントローラ22を介
してバス18に接続されている。
【0051】図2に示すように、文字列検索装置20は
図2に「○」で示す多数の連想メモリセル(単位セル)
28がマトリクス状に配置されて構成された連想メモリ
セルアレイ26を備えている。連想メモリセルアレイ2
6にはM+1本のワード線WL0 〜WLM 、M+1本のマッ
チ線MATCH0〜MATCHM、N+1組のビット線対BL0,BL0'〜
BLN,BLN'が各々マトリクス状に配置されており、各連想
メモリセル28は、ワード線WL0 〜WLM の何れか、マッ
チ線MATCH0〜MATCHMの何れか及びビット線対BL0,BL0'〜
BLN,BLN'の何れかに各々接続されている。
【0052】前記多数の連想メモリセル28は各々同一
の構成とされている。図3に示すように、連想メモリセ
ル28は互いの入力端と出力端とが接続された2個のN
OT回路30、32を備えている。このNOT回路3
0、32のループによって1ビットのデータを記憶する
記憶回路(SRAM型)が構成されている。NOT回路
30の出力端はNチャンネル型のMOSFET34のソ
ースに、NOT回路32の出力端は同じくNチャンネル
型のMOSFET36のソースに各々接続されており、
MOSFET34、36のゲートは各々ワード線WLに接
続されている。
【0053】また、MOSFET34、36のドレイン
は各々ビット線BL,BL'に接続されている。連想メモリセ
ル28に1ビットのデータを書き込む場合(後述する
「書込み」モード)には、ワード線WLはハイレベルとさ
れ、ビット線BLは書き込むデータDに対応したレベル
(Dが「1」の場合はハイレベル、「0」の場合はロー
レベル)とされ、ビット線BL' はビット線BLのレベルに
対して反転したレベル(ビット線BLがハイレベルの場合
はローレベル、ビット線BLがローレベルの場合はハイレ
ベル)とされる。これにより、MOSFET34、36
がオンし、ビット線対BL又はBL' を介して供給されたデ
ータがNOT回路30、32のループに保持される。な
お、連想メモリセル28に記憶されたデータを読み取る
ことも可能となっている(後述する「読取り」モー
ド)。
【0054】また、NOT回路30の出力端はMOSF
ET38のゲートに、NOT回路32の出力端はMOS
FET40のゲートに各々接続されている。なお、NO
T回路32からはデータDを反転したデータ(Q’)が
出力され、NOT回路30からはデータQ’を反転した
データQ(=D)が出力される。MOSFET38、4
0のドレインは各々ビット線BL',BLに接続されており、
ソースはMOSFET42のゲートに接続されている。
MOSFET42のドレインはマッチ線MATCHに接続さ
れ、ソースは接地されている。
【0055】なお、本実施例において、同一のワード線
及びマッチ線に接続される連想メモリセル28の数は、
被検索文字列を構成する1文字を表すビット数(例えば
アスキーコード、ISOコード等の場合は8ビット)と
一致されており、同一のワード線及びマッチ線に接続さ
れる複数の連想メモリセル28(以下、これらを連想メ
モリセル列という)によって1文字分の文字データが記
憶される。また、連想メモリセルアレイ26では連想メ
モリセル列毎にアドレスが付与されている。
【0056】また、単一の連想メモリセル列を構成する
各連想メモリセル28のNOT回路30、32のループ
は本発明の記憶手段に対応しており、各連想メモリセル
28のMOSFET38、40、42は本発明の比較手
段に対応している。
【0057】一方、図2に示すように、文字列検索装置
20はタイミングコントローラ50を備えている。文字
列検索装置20は動作モードとして、連想メモリセルア
レイ26に記憶されたデータを読み取る「読取り」モー
ド、連想メモリセルアレイ26にデータを書き込む「書
込み」モード、連想メモリセルアレイ26に記憶された
データに対して検索を行なう「検索」モードが設けられ
ている。タイミングコントローラ50はコントローラ2
2に接続されており、前記動作モードは、コントローラ
22からタイミングコントローラ50に各々入力される
読取り指示READ、書込み指示WRITE 、検索指示SEARCHに
応じて切り替わる。
【0058】また、タイミングコントローラ50にはコ
ントローラ22からシステムクロックCLOCK が入力さ
れ、システムクロックCLOCK と同期した4つのクロック
(クロックRD、クロックWT-SR 、クロックRD-WT 及びク
ロックSR)を、3つの動作モードに応じて生成し出力す
る。クロックRD-WT は、「読取り」及び「書込み」時に
タイミングコントローラ50に接続されたアドレスデコ
ーダ52に出力され、アドレスデコーダ52を作動させ
る。アドレスデコーダ52はコントローラ22に接続さ
れており、コントローラ22からデータの読取り又は書
込みを行なう連想メモリセル列のアドレスが指定され
る。アドレスデコーダ52にはワード線WL0〜WLM が接
続されており、指定されたアドレスに対応する連想メモ
リ列のワード線をハイレベルとする。
【0059】タイミングコントローラ50にはセンスア
ンプ54及び書込みバッファ56が接続されており、ク
ロックRDは「読取り」時にセンスアンプ54に出力され
てセンスアンプ54を作動させ、クロックWT-SR は「書
込み」及び「検索」時に書込みバッファ56に出力され
て書込みバッファ56を作動させる。ビット線対BL0,BL
0'〜BLN,BLN'はセンスアンプ54及び書込みバッファ5
6に各々接続されている。またセンスアンプ54及び書
込みバッファ56はコントローラ22に接続されてい
る。
【0060】センスアンプ54は「読取り」時に、連想
メモリセル列の各々の連想メモリセル28に記憶された
データに応じて変化されたビット線対BL0,BL0'〜BLN,BL
N'のレベル(これが読取りデータを表す)を増幅してコ
ントローラ22に出力する。書込みバッファ56は「書
込み」及び「検索」時に、コントローラ22から入力さ
れてバッファに記憶されたデータに応じてビット線対BL
0,BL0'〜BLN,BLN'のレベルを変化させる(ビット線対を
駆動する)。なお、「検索」時には、前述のようにアド
レスデコーダ52が作動されずワード線WL0 〜WLM は何
れもローレベルとされているので、検索データに応じて
変化されたビット線対のレベルが連想メモリセル28に
取り込まれる、すなわち連想メモリセル28に検索デー
タが書き込まれることはない。
【0061】また、タイミングコントローラ50にはM
+1個のプリチャージコントローラ580 〜58M が各
々接続されており、クロックSRは「検索」動作時にプリ
チャージコントローラ580 〜58M に出力され、プリ
チャージコントローラ580〜58M を各々作動させ
る。プリチャージコントローラ580 は端子66を介し
てコントローラ22に接続されると共にマッチ線MATCH0
に接続されており、プリチャージコントローラ581
マッチ線MATCH0及びマッチ線MATCH1に接続されている。
プリチャージコントローラ582 以降はプリチャージコ
ントローラ581と同様に隣接する2本のマッチ線に接
続されている。また、プリチャージコントローラ58M
はマッチ線MATCHMを介してコントローラ22に接続され
ている。
【0062】プリチャージコントローラ580 〜58M
は同一の構成とされている。図4に示すように、プリチ
ャージコントローラ58はNOR回路70を備えてお
り、NOR回路70の一方の入力端は前段側のマッチ線
(例えばプリチャージコントローラ581 の場合はマッ
チ線MATCH0)に接続されている。但しプリチャージコン
トローラ580 は端子66を介してコントローラ22に
接続されており、コントローラ22から入力信号CONTRO
L-INとして常にローレベルの信号が入力される。また他
方の入力端はNAND回路64(図2参照)の出力端に
接続されており、信号SET が入力される。NOR回路7
0の出力端はPチャンネル型MOSFET72のソース
に接続されている。MOSFET72のゲートはタイミ
ングコントローラ50に接続されており(図4では図示
省略)、「検索」時にはクロックSRが入力される。
【0063】また、MOSFET72のドレインにはN
OT回路74の入力端及びNOT回路76の出力端が接
続されており、このNOT回路74の出力端及びNOT
回路76の入力端はNチャンネル型MOSFET78の
ドレインに各々接続されている。従ってNOT回路7
4、76によって記憶回路が構成される。MOSFET
78のゲートはタイミングコントローラ50に接続され
ており、「検索」時にクロックSRが入力される。MOS
FET78のソースはNAND回路80の一方の入力端
に接続されており、NAND回路80の他方の入力端は
タイミングコントローラ50に接続されている。
【0064】NAND回路80の出力端はPチャンネル
型MOSFET82のゲートに接続されている。MOS
FET82のソースは図示しない電源に接続されてお
り、ドレインは次段側のマッチ線(例えばプリチャージ
コントローラ581 の場合はマッチ線MATCH1)に接続さ
れている。また、タイミングコントローラ50はPチャ
ンネル型MOSFET84のゲートにも接続されてい
る。MOSFET84のソースは図示しない電源に、ド
レインはNOT回路86の入力端に各々接続されてい
る。NOT回路86の入力端はMOSFET78のソー
スにも接続されている。NOT回路86の出力端はNチ
ャンネル型MOSFET88のゲートに接続されてお
り、MOSFET88のソースは前述の次段側のマッチ
線に接続され、ドレインは接地されている。
【0065】一方、マッチ線MATCH0〜MATCHMは各々プラ
イオリティエンコーダ60に接続されている。後述する
ように、「検索」モードにおいて比較動作を1回行なっ
た後にマッチ線がハイレベルとなっている連想メモリセ
ル列は、記憶しているデータと供給されたデータとが一
致した連想メモリセル列である。プライオリティエンコ
ーダ60はコントローラ22に接続されており、「検
索」動作を行なってマッチ線がハイレベルとなっている
連想メモリセル列のアドレスMATCH-ADDRESS をコントロ
ーラ22に出力する。但し、複数本のマッチ線がハイレ
ベルとなっていた場合には、予め定められた基準に従っ
て優先順位の高い連想メモリセル列のアドレス、例えば
最も低いアドレスをアドレスMATCH-ADDRESS として出力
する。
【0066】またマッチ線MATCH0〜MATCHMは、OR回路
62の入力端にも各々接続されている。OR回路62の
出力端はコントローラ22に接続されており、マッチ線
MATCH0〜MATCHMの少なくとも1つがハイレベルであるか
否かを表す信号、すなわち検索データが連想メモリセル
アレイ26に記憶されているデータと一致したか否かを
表す信号ENTIRE-MATCHが出力される。またOR回路62
の出力端はNAND回路64の一方の入力端にも接続さ
れており、NAND回路64に前述の信号ENTIRE-MATCH
が入力される。NAND回路64の他方の入力端はコン
トローラ22に接続されており、通常はハイレベルでマ
ッチ線MATCH0〜MATCHMを全てハイレベルにチャージ(プ
リチャージ)するときにローレベルとされる信号SET'が
入力される。NAND回路64から出力された信号SET
はプリチャージコントローラ58に供給される。
【0067】次に本第1実施例の作用として、「検索」
モードにおける検索処理の一例として文字列の検索処理
を図5のフローチャート等を参照して説明する。なお、
図5のフローチャートは、CPU12からの検索処理の
実行が指示された場合にコントローラ22で実行され
る。また、このときには連想メモリセルアレイ26の各
連想メモリセル28には、既に被検索データとしての文
字列データが記憶されているものとする。ステップ20
0ではRAM16等に記憶されている検索文字列を表す
文字列データの取り込みを行なう。次のステップ202
では取り込んだ検索文字列データの先頭から1文字分の
文字データを取り出す。ステップ204では、NAND
回路64に出力する信号SET'を一旦アクティブ(ローレ
ベル)とする。
【0068】信号SET'が一旦ローレベルになると、NA
ND回路64からプリチャージコントローラ580 〜5
M のNOR回路70に各々入力される信号SET が一旦
ハイレベルとなり、NOR回路70から出力される信号
がローレベルとなる。MOSFET72はPチャンネル
型であるのでクロックSRがローレベルの間はオンしてお
り、NOR回路70から出力された信号はNOT回路7
4に入力され、NOT回路74、76のループに保持さ
れる。
【0069】また次のステップ206では、前記検索文
字列データから取り出した文字データを書込みバッファ
56へ出力すると共に、前記信号SET'を一旦ローレベル
とするのに同期して、タイミングコントローラ50に検
索指示SEARCHを出力する。これにより、タイミングコン
トローラ50からは書込みバッファ56にクロックWT-S
R が出力されると共に、プリチャージコントローラ58
0 〜58M にクロックSRが出力されることになる。これ
により、プリチャージコントローラ58ではマッチ線MA
TCH のプリチャージが行なわれる。
【0070】すなわち、クロックSRがプリチャージコン
トローラ58に入力されると、クロックSRがハイレベル
のときにはMOSFET72がオフすると共にMOSF
ET78がオンする。これにより、前述のようにNOT
回路74からハイレベルの信号が出力され、NAND回
路80の一方の入力端に入力される。NAND回路80
の他方の入力端にもハイレベルの信号が入力されるの
で、NAND回路80から出力される信号がローレベル
となりMOSFET82がオンしてマッチ線MATCH が図
示しない電源に接続される。このとき、MOSFET8
8はオフしているのでマッチ線MATCH はハイレベルとな
る。
【0071】更に、クロックSRがローレベルになると、
NAND回路80の一方の入力端がローレベルになるの
でNAND回路80から出力される信号がハイレベルと
なり、MOSFET82がオフする。また、MOSFE
T78がオフすると共にMOSFET84がオンするの
で、NOT回路86に図示しない電源からハイレベルの
信号が供給され、MOSFET88はオフ状態で維持さ
れる。従って、マッチ線MATCH はハイレベルの状態でプ
リチャージコントローラ58から電気的に切り離される
ことになる。上記の動作がプリチャージコントローラ5
0 〜58M で各々行なわれることにより、マッチ線MA
TCH0〜MATCHMがハイレベルにチャージされた状態(プリ
チャージされた状態)となる。
【0072】一方、書込みバッファ56ではクロックWT
-SR が入力されると、入力された文字データに応じてビ
ット線対BL0,BL0'〜BLN,BLN'を駆動する。連想メモリセ
ルアレイ26の各連想メモリセル28では、NOT回路
30から出力されるデータQが「1」(ハイレベル)で
あればMOSFET38がオンしており、NOT回路3
2から出力されるデータQ’が「1」であればMOSF
ET40がオンしている。従って、NOT回路30、3
2のループに保持されているデータQ(Q’)とビット
線対BL,BL'を介して供給されるデータD(D')とが一致
している場合にはMOSFET42はオンしないが、不
一致の場合にはMOSFET38、40のうちオンして
いる方のMOSFETのドレインからソースに電流が流
れ、MOSFET42がオンする。これにより、前記プ
リチャージされたマッチ線MATCHのレベルはローレベル
に低下される(ディスチャージ)。
【0073】上記のデータの比較は、クロックSRがロー
レベルとなっている間に連想メモリセル28の各々で同
時に行なわれる。従って、クロックSRの1周期の間にプ
リチャージ及びデータの比較が行なわれることになる。
ところで、1本のマッチ線MATCH には複数の連想メモリ
セル28(連想メモリセル列)が接続されているので、
クロックSRの1周期の間に、連想メモリセル列に記憶さ
れている文字データと入力された文字データとを比較す
る比較動作が完了し、各マッチ線は、接続されている全
ての連想メモリセル28でMOSFET42がオンしな
かった場合、すなわち連想メモリセル列に記憶されてい
る文字データと書込みバッファ56に入力された文字デ
ータとが一致していた場合にのみハイレベルの状態で維
持され、不一致であった場合にはローレベルとされるこ
とになる。
【0074】従って、書込みバッファ56に入力された
文字データが連想メモリセル列の少なくとも何れか1つ
に記憶されていた場合には、OR回路62を介して出力
される信号ENTIRE-MATCHがハイレベルとなり、プライオ
リティエンコーダ60からは書込みバッファ56に入力
された文字データを記憶している連想メモリセル列のア
ドレスがアドレスMATCH-ADDRESS として出力される。ま
た、連想メモリセル列で比較動作が行なわれている間、
クロックSRはローレベルとなっておりプリチャージコン
トローラ58ではMOSFET72がオンするので、各
連想メモリセル列の比較結果に応じて変化される各マッ
チ線MATCH のレベルは、次段のプリチャージコントロー
ラ58のNOT回路74、76に伝達されて保持される
ことになる(例えばマッチ線MATCH0のレベルはプリチャ
ージコントローラ581 に伝達される)。
【0075】上記により、次にクロックSRがハイレベル
になるとMOSFET78がオンし、前記プリチャージ
の場合と同様に、NOT回路74から出力される信号が
ハイレベルであれば、MOSFET82がオンしてマッ
チ線MATCH がハイレベルにチャージされる。また、NO
T回路74から出力される信号がローレベルの場合に
は、NOT回路86から出力される信号がハイレベルと
なるので、MOSFET88がオンし、マッチ線MATCH
はローレベルとされる。このようにして、前段のマッチ
線がハイレベルであれば次段のマッチ線がハイレベルと
され、前段のマッチ線がローレベルであれば次段のマッ
チ線がローレベルとされることになる。なお、マッチ線
MATCH0については、コントローラ22からプリチャージ
コントローラ580 に入力される入力信号CONTROL-INに
より、1回比較動作を行なった後は必ずローレベルとさ
れる。
【0076】一方、次のステップ210ではOR回路6
2から出力された信号ENTIRE-MATCHがハイレベルか否か
判定する。ステップ210の判定が肯定された場合には
ステップ212へ移行し、プライオリティエンコーダ6
0から出力されたアドレスMATCH-ADDRESS を取り込んで
記憶する。ステップ214では検索が終了したか否か、
すなわち検索文字列を構成する全ての文字の文字データ
を書込みバッファ56へ出力したか否か判定する。ステ
ップ214の判定が否定された場合には、ステップ21
6で検索文字列データから取り出す文字データを1文字
分シフトして取り出し、書込みバッファ56へ出力す
る。これにより、前記でハイレベルとされたマッチ線に
接続されている連想メモリセル列において書込みバッフ
ァ56に出力した文字データに対して比較が行なわれ
る。
【0077】書込みバッファ56へ文字データを出力す
るとステップ210へ戻り、以下、信号ENTIRE-MATCHが
ハイレベルの間はステップ214の判定が肯定されるま
でステップ210〜216の処理が繰り返され、ステッ
プ212が実行される毎に記憶しているアドレス(MATC
H-ADDRESS)が更新される。この間の動作について、図6
を参照し具体例に基づいて更に説明する。図6では連想
メモリセル列を模式的に「□」で示しており、連想メモ
リセルアレイ26の連想メモリセル列に順に記憶された
被検索文字列「BABCABB…」に対して検索文字列
「ABCA」を検索する場合を説明している。
【0078】図6(A)は前記検索文字列の最初の文字
「A」との比較を行なうときの状態が示されており、書
き込みバッファ56に文字「A」を表す文字データが入
力される。また、プリチャージコントローラ58に入力
される信号SET が一旦ハイレベルとされることによって
全てのマッチ線がハイレベルとされ、全ての連想メモリ
セル列で比較動作が行なわれる。比較動作の結果、マッ
チ線がハイレベルで維持されるのはアドレス「1」及び
「4」の連想メモリセル列に対応するマッチ線のみであ
る。この結果が次段のプリチャージコントローラ58に
入力され(図6(B)参照)、次の文字「B」との比較
を行なう際にはアドレス「2」及び「5」の連想メモリ
セル列に対応するマッチ線のみがハイレベルとされ、ア
ドレス「2」及び「5」の連想メモリセル列のみで比較
動作が行なわれる。
【0079】アドレス「2」及び「5」の連想メモリセ
ル列は、何れも文字「B」を記憶しているので、対応す
るマッチ線は比較動作を行なった後もハイレベルに維持
され、この結果が次段のプリチャージコントローラ58
に入力される(図6(C)参照)。従って、次の文字
「C」との比較を行なう際にはアドレス「3」及び
「6」の連想メモリセル列に対応するマッチ線のみがハ
イレベルとされる。ここでアドレス「6」の連想メモリ
セル列が記憶している文字は「C」ではないので、アド
レス「3」の連想メモリセル列に対応するマッチ線のみ
がハイレベルに維持され、この結果が次段のプリチャー
ジコントローラ58に入力される(図6(D)参照)。
【0080】従って、検索文字列の最後の文字「D」の
文字データが書込みバッファ56に入力された際に比較
動作を行なうのはアドレス「4」の連想メモリセル列の
みである。アドレス「4」の連想メモリセル列で比較動
作が行なわれ、対応するマッチ線がハイレベルに維持さ
れると検索が終了する(図5のフローチャートではステ
ップ214の判定が肯定される)。以上の動作からも明
らかではあるが、例えば検索文字列が「ABCAB」で
あった場合には、上記動作に加えて更に書込みバッファ
56に文字「B」の文字データを入力して比較動作を行
なわせればよい。
【0081】従って、検索文字列の長さが変化しても比
較動作の繰り返し回数が変化するのみであり、従来のよ
うに検索文字列の最大長さに合わせて回路構成を変更し
たりする必要はない。また、検索のための比較動作を各
連想メモリセル列で並列に行なっており、被検索文字列
の長さに拘わらず、比較動作を検索文字列の文字数回行
なえば検索処理が終了するので、特に被検索文字列が長
大である場合に、従来と比較して極めて短時間で検索処
理が完了する。
【0082】また、従来は検索文字列の長さに応じて比
較結果を無効とする回路の数が変化するので、検索文字
列の長さに応じて特定の回路からの比較結果を無効とす
る、又は前記特定の回路の比較結果を強制的に「一致」
とさせるDC処理を行なう回路が付加された連想メモリ
セル等を用いる必要があるが、本実施例では検索文字列
の長さが変化しても特別な処理を行なう必要がないの
で、DC処理を行なう回路が付加された連想メモリセル
等を用いる必要はなく、装置を小型化できる。
【0083】更に、前段の連想メモリセル列の比較結果
が「不一致」であった連想メモリセル列に対してはマッ
チ線をローレベルとし、比較動作を行なわせないので、
比較動作を繰り返すに従って比較動作を行なわない連想
メモリセル列の数が増加し、消費電力を低減することが
できる。特にC−MOS(complimentary MOS)は論
理状態が変化するときに過渡電流が流れ、大きな電力を
消費するので、上記により大幅に消費電力が低減され
る。
【0084】一方、図5のフローチャートでステップ2
14の判定が肯定されると、ステップ218では記憶し
ているアドレスMATCH-ADDRESS をCPU12に送信して
処理を終了する。また、ステップ210〜216の処理
を繰り返している途中で信号ENTIRE-MATCHがローレベル
となった場合には、検索文字列が連想メモリセルアレイ
26に記憶されていないと判断できる。このため、ステ
ップ220でCPU12に検索が失敗した旨を通知し、
ステップ222で別の検索文字列が有るか否か判定す
る。
【0085】ステップ222の判定が肯定された場合に
はステップ200へ戻り、上記処理を繰り返す。なお、
信号ENTIRE-MATCHがローレベルになると、信号SET'のレ
ベルに拘わらずNAND回路64から出力される信号SE
T がハイレベルとなるので、ステップ204で信号SET'
をアクティブ(ローレベル)にすることなく新たに検索
処理を開始することができる。また、ステップ222の
判定が否定された場合には検索処理を終了する。
【0086】なお、図5のフローチャートに示した検索
処理は単なる一例であり、例えば検索文字列に最も長く
一致する文字列を記憶している連想メモリセル列群のア
ドレスを求めることも可能である。また、連想メモリセ
ル28は図3に示すSRAM型の構成に限定されるもの
ではなく、図7に示すようなDRAM型とすることもで
きる。
【0087】また、文字列検索装置20を複数個設け、
各々の連想メモリセルアレイ26で同一文字データとの
比較動作を同時に行なうようにしてもよい。この場合に
は、複数設けられた文字列検索装置20の各々に、検索
データとして同一のデータを入力すると共に、かつ前段
側の文字列検索装置20のプリチャージコントローラ5
M のCONTROL-OUT(図2参照)と後段側の文字列検索装
置20のプリチャージコントローラ580 の端子66
(CONTROL-IN)とを接続することによって、複数設けら
れた文字列検索装置20のプリチャージコントローラ5
0 〜58M を各々連結すればよい。
【0088】〔第2実施例〕次に本発明の第2実施例を
説明する。なお、第1実施例と同一の部分には同一の符
号を付し、説明を省略する。図8には本第2実施例に係
る文字列検索装置100が示されている。
【0089】文字列検索装置100は、第1実施例の連
想メモリセルアレイに代えて、RAMセル(単位セル)
104がマトリクス状に配置されて構成されたRAMセ
ルアレイ102が設けられている。RAMセルアレイ1
02にはマッチ線に代えてM+1本のデータ線DATA0 〜
DATAM が設けられており、更にN+1本のビットセレク
ト線BSL0〜BSLNが設けられている。ビットセレクト線BS
L0〜BSLNはビットセレクタ116に各々接続されてい
る。ビットセレクタ116はタイミングコントローラ5
0に接続されており、「検索」時にクロックSRが入力さ
れる。また、ビットセレクタ116はコントローラ22
に接続されており、「検索」時にコントローラ22から
入力されたデータを保持する。なお、本第2実施例で
は、書込みバッファ56には「書込み」時にのみクロッ
クWTが入力される。
【0090】ビットセレクタ116は、クロックSRが入
力されるとこれに同期してビットセレクト線BSL0〜BSLN
を1本づつ順にハイレベルとする。データ線DATA0 〜DA
TAMは、比較器1060 〜106M の2個の入力端の一
方に接続されており、ビットセレクタ116によってビ
ットセレクト線BSL0〜BSLNの何れか1本がハイレベルと
されると、ハイレベルとされたビットセレクト線BSL に
接続されたRAMセル104に記憶されているデータ
が、データ線DATA0 〜DATAM を介して比較器1060
106M に出力される。
【0091】比較器1060 〜106M の他方の入力端
はビットセレクタ116に接続されている。ビットセレ
クタ116は「検索」時に、前述のようにビットセレク
ト線BSL0〜BSLNを1本づつ順にハイレベルにすると共
に、コントローラ22から入力されて保持している文字
データのうちの対応するビットのデータを比較器106
0 〜106M へ順次出力する。一例として、図9に示す
ように、ビットセレクト線BSL1をハイレベルとしている
ときは、保持している文字データのうち2番目のビット
のデータを出力する。これにより、各RAMセル列及び
ビットセレクタ116からは、各々に記憶又は保持され
ている文字データのうち同一ビット位置の1ビットデー
タが順に比較器1060 〜106M へ出力される。
【0092】比較器1060 〜106M はタイミングコ
ントローラ50に各々接続されており、「検索」時には
タイミングコントローラ50からクロックSRが入力され
る。これにより、ビットセレクタ116から入力された
1ビットのデータとデータ線DATA0 〜DATAM を介して入
力された1ビットのデータとの比較を行い、一致してい
た場合には出力信号をハイレベルとし、不一致の場合に
は出力信号をローレベルとする。比較器106には前述
のようにビットセレクタ116及びデータ線DATA0 〜DA
TAM から文字データが1ビット毎に順次入力されるの
で、比較器106からは各ビットの比較結果が順次出力
される。
【0093】比較器1060 〜106M の出力端はAN
D回路1080 〜108M の3個の入力端の1個に各々
接続されている。AND回路1080 〜108M の出力
端は各々ラッチ1100 〜110M の入力端に接続され
ており、ラッチ1100 〜110M の出力端はAND回
路1080 〜108M の入力端に接続されている。ラッ
チ1100 〜110M は後述するサーチコントローラ1
14に接続されており(図示省略)、サーチコントロー
ラ114からのリセット信号が入力されると、ハイレベ
ルを保持している状態にリセットされる。
【0094】従って、ラッチ110に保持されているレ
ベル及びAND回路108から出力される信号のレベル
は、ラッチ1100 〜110M がリセットされた後に比
較器106から順次出力される各ビットの比較結果が常
にハイレベルの場合には何れもハイレベルを維持する
が、比較結果が1回でもローレベルになるとローレベル
となる。但し、AND回路108の残りの入力端にロー
レベルの信号が入力された場合には、各ビットの比較結
果が常にハイレベルであっても、AND回路108から
出力される信号及びラッチ110に保持されるレベルは
ローレベルとなる。
【0095】また、AND回路1080 〜108M の出
力端はラッチ1120 〜112M の入力端にも接続され
ている。ラッチ1120 〜112M の出力端及び制御端
はサーチコントローラ114に接続されている。ラッチ
1120 〜112M はラッチ1100 〜110M と同様
にリセット信号が入力されると、ハイレベルを保持して
いる状態にリセットされる。また、サーチコントローラ
114から取込み指示が入力された場合にのみデータを
取り込むように構成されている。また、ラッチ1120
〜112M の出力端は各々次段側のデータ線に接続され
たAND回路108の入力端に順次接続されている。
【0096】サーチコントローラ114はタイミングコ
ントローラ50に接続されており、「検索」時にタイミ
ングコントローラ50からクロックSRが入力される。サ
ーチコントローラ114は入力されたクロックSRのパル
ス数をカウントし、ビットセレクタ116に保持された
文字データとの比較動作が完了したか否か判定し、比較
動作が完了した場合には各ラッチ1120 〜112M
前記取込み指示を出力する。なお、前述のようにデータ
の比較は1ビット毎に行なわれるので、例えばデータが
8ビットであれば8パルスカウントした時点で比較動作
が完了したと判断し、取込み指示を出力する。これによ
り、ビットセレクタ116に保持された文字データとの
比較が完了した時点におけるAND回路108の出力信
号のレベルがラッチ112に保持されることになる。
【0097】ラッチ112に保持されるレベルは、第1
実施例において比較動作が完了したときのマッチ線のレ
ベルと同じ意味を持ち、RAMセル列に記憶された文字
データがビットセレクタ116に保持された文字データ
に一致していた場合にのみハイレベルとなる。ラッチ1
12に保持されたレベルがローレベルであった場合に
は、比較動作の次のサイクルでAND回路108から出
力される信号が常にローレベルとなる。
【0098】このように、本発明は連想メモリセルアレ
イ26を用いることに限定されるものではなく、記憶手
段をRAMセルアレイの各RAMセル列で構成すると共
に、比較手段を比較器で構成するようにしてもよい。
【0099】なお、本第2実施例に係る文字列検索装置
100についても、これを複数個設け、各々で同一文字
データとの比較動作を同時に行なうことができる。この
場合には、前段側の文字列検索装置100のサーチコン
トローラ114のCONTROL-OUT(図8参照)と後段側の文
字列検索装置100のサーチコントローラ114のCONT
ROL-IN(図8参照)とを接続し、複数の文字列検索装置
100の各々に、検索データとして同一のデータを入力
すればよい。
【0100】〔第3実施例〕次に本発明の第3実施例を
説明する。なお、第1実施例と同一の部分には同一の符
号を付し、説明を省略する。本第3実施例では第1実施
例のコントローラ22に代えて、図10に示すような文
字列圧縮コントローラ120が設けられている。
【0101】文字列圧縮コントローラ120には、シス
テムクロックCLOCK 、圧縮処理を行なう際にローレベル
となる信号ENABLE' 及び被圧縮文字列データ(元デー
タ)TEXT-INPUTが入力される。文字列圧縮コントローラ
120に入力された信号ENABLE' はデータ入力コントロ
ーラ136、データ出力コントローラ138及び初期設
定回路140に各々供給され、圧縮処理を行なう際に前
記各回路を作動させる。また文字列圧縮コントローラ1
20に入力された被圧縮文字列データTEXT-INPUTは、デ
ータ入力コントローラ136に供給される。
【0102】データ入力コントローラ136は文字列検
索装置122及びデータ出力コントローラ138に接続
されている。データ入力コントローラ136では、供給
された被圧縮文字列データの先頭から1文字分の文字デ
ータを取り出して書込みバッファ56及びデータ出力コ
ントローラ138に出力すると共に、文字列検索装置2
0に検索指示SEARCH、書込み指示WRITE を順に出力する
ことを、文字データの取り出し位置を文字列データの末
尾側へ1文字分ずつシフトしながら繰り返す。これによ
り、文字列検索装置20では、前記検索指示SEARCHによ
り、前記書込みバッファ56に出力されて保持された文
字データに対して各連想メモリセル列に記憶している文
字データの比較動作が行なわれ、次に前記書込み指示WR
ITE により、前記保持された文字データが連想メモリセ
ルアレイ26に書き込まれることになる。
【0103】一方、初期設定回路140には書込みアド
レスカウンタ142が接続されており、更にAND回路
150を介して文字列検索装置20に接続されている。
初期設定回路140は信号ENABLE' がローレベルになる
と、出力信号を一旦アクティブ(ローレベル)とする。
これにより、AND回路150から出力される信号SET'
が一旦ローレベルになる。書込みアドレスカウンタ14
2は文字列検索装置20及びガベージアドレスコントロ
ーラ148に接続されている。
【0104】書込みアドレスカウンタ142は、連想メ
モリセルアレイ26のうちの特定の連想メモリセル列の
アドレスをカウント値として保持しており、このカウン
ト値をアドレスR/W-ADDRESS として文字列検索装置20
及びガベージアドレスコントローラ148へ出力する。
また書込みアドレスカウンタ142は、初期設定回路1
40から入力された信号がローレベルになると、保持し
ているアドレスを「0」(連想メモリセルアレイ26の
先頭の連想メモリセル列のアドレス)にリセットすると
共に、連想メモリセルアレイ26に対するデータの書込
みが行なわれる毎にカウント値(アドレス)をカウント
アップする。
【0105】従って、前述の書込み指示WRITE に従って
書込みバッファ56に保持された文字データが連想メモ
リセルアレイ26に書き込まれる際には、アドレスR/W-
ADDRESS のカウントアップに伴って前記文字データが書
き込まれる連想メモリセル列が順次シフトしていくこと
になる。なお、書込みアドレスカウンタ142がワード
線WLM に接続された連想メモリセル列(連想メモリセル
アレイの末尾の連想メモリセル列)のアドレスを保持し
ている状態で、連想メモリセルアレイ26へのデータの
書込みが行なわれた場合にも、書込みアドレスカウンタ
142はカウント値を「0」にリセットする。
【0106】一方、ガベージアドレスコントローラ14
8は文字列検索装置20に接続されており、文字列検索
装置20から信号ENTIRE-MATCH及びアドレスMATCH-ADDR
ESSが入力される(なお、文字列検索装置20は複数の
連想メモリセル列で比較結果が「一致」であった場合に
は、第1実施例でも説明したようにアドレスMATCH-ADDR
ESS として最も低いアドレスを出力する)。ガベージア
ドレスコントローラ148は、文字列検索装置20にお
ける比較動作の結果、信号ENTIRE-MATCHがハイレベルに
維持されていた場合に、書込みアドレスカウンタ142
から入力されたアドレスR/W-ADDRESS とアドレスMATCH-
ADDRESS とを比較する。そして、アドレスMATCH-ADDRES
S の方が大きい場合には、今回の比較動作の結果が無効
か否かを表す出力信号FOUND をアクティブ(ローレベ
ル:無効を表す)とする。なお、ガベージアドレスコン
トローラ148は、文字列圧縮処理が開始される際にも
信号FOUND をローレベルとする。
【0107】ガベージアドレスコントローラ148には
一致長カウンタ144及びデータ出力コントローラ13
8が接続されており、信号FOUND は一致長カウンタ14
4及びデータ出力コントローラ138各々に入力され
る。また、ガベージアドレスコントローラ148は前述
の信号FOUND をAND回路150を介して信号SET'とし
て文字列検索装置20に出力する。
【0108】一致長カウンタ144は、文字列検索装置
20で比較動作が行われた後に、ガベージアドレスコン
トローラ148から入力された信号FOUND がハイレベル
の場合にはカウント値(一致長さ)をカウントアップ
し、信号FOUND がローレベルの場合、すなわち文字列圧
縮処理が開始される際及び今回の比較動作の結果が無効
であった場合にはカウント値を「0」にリセットするよ
うになっている。一致長カウンタ144にはデータ出力
コントローラ138が接続されており、データ出力コン
トローラ138に前記カウント値を一致長M-LEN として
出力する。
【0109】また、文字列検索装置20にはアドレスレ
ジスタ146が接続されている。アドレスレジスタ14
6は文字列検索装置20からアドレスMATCH-ADDRESS が
入力され、これを保持すると共にアドレスS-ADR として
データ出力コントローラ138へ出力する。
【0110】データ出力コントローラ138は、一致長
カウンタ144から出力された一致長M-LEN 及びアドレ
スレジスタ146から出力されたアドレスS-ADR を保持
すると共に、入力された信号FOUND が文字列検索装置2
0で比較動作が行われた後もハイレベルの状態で継続し
ている場合には、次回以降の比較動作後に信号FOUNDが
ローレベルに遷移するか、又はデータ入力コントローラ
136が被圧縮文字列データから取り出す文字データが
被圧縮文字列データの末尾に到達するまでは、入力され
た文字データの出力を停止する。
【0111】そして次回以降の比較動作後に信号FOUND
がローレベルに遷移するか、又は被圧縮文字列データか
ら取り出す文字データが被圧縮文字列データの末尾に到
達した場合には前記保持しているアドレスS-ADR 及びデ
ータM-REN に基づいて、前記出力を停止していた間にデ
ータ入力コントローラ136から入力されたデータを、
別のデータに置き換えて(圧縮して)、圧縮文字列デー
タCOMP-DATA として出力する。なお、前回比較動作が行
われた後の信号FOUND がローレベルでかつ今回比較動作
が行われた後の信号FOUND もローレベルである場合に
は、データ入力コントローラ136から入力されたデー
タをそのまま出力する。
【0112】次に本第3実施例の作用として、文字列圧
縮コントローラ120及び文字列検索装置20により行
なわれる圧縮処理を図11に示すフローチャートを参照
して説明する。
【0113】ステップ250では、圧縮処理を開始する
指示として、信号ENABLE' 及び被圧縮文字列を表す被圧
縮文字列データTEXT-INPUTが入力される。これにより、
前記被圧縮文字列データはデータ入力コントローラ13
6に保持される。また、初期設定回路140から書込み
アドレスカウンタ142及び一致長カウンタ148にリ
セット信号が出力され、各カウンタのカウント値が
「0」にリセットされる。また初期設定回路140から
AND回路150を介して文字列検索装置20へ入力さ
れる信号SET'が一旦ローレベルとされる。これにより、
NAND回路64から出力される信号SET が一旦ハイレ
ベルとなり、プリチャージコントローラ58に入力され
る。第1実施例でも説明したように、プリチャージコン
トローラ58では信号SET がハイレベルになると、クロ
ックSRと同期してマッチ線をハイレベルとする。
【0114】ステップ252では、データ入力コントロ
ーラ136において圧縮処理が終了したか否かが判定さ
れる。圧縮処理が終了していない場合には、保持してい
る被圧縮文字列データから先頭の1文字に対応する文字
データが取り出されて文字列検索装置20の書込みバッ
ファ56に出力される。さらにデータ入力コントローラ
136から検索指示SEARCHが出力される。これにより、
文字列検索装置20のタイミングコントローラ50から
クロックSR及びクロックWT-SR が出力され、第1実施例
と同様に連想メモリセル列毎に比較動作が行なわれる。
次のステップ258では、データ出力コントローラ13
8において比較結果が「一致」となった連想メモリセル
列が有るか否か、すなわち信号FOUND がハイレベルか否
かが判定される。
【0115】ところで、この最初の比較動作では連想メ
モリセルアレイ26の各連想メモリセル28に文字デー
タを書き込んでいないので、各連想メモリセル28に記
憶されているデータは不定であり、比較結果が「一致」
となった連想メモリセル列があった(信号ENTIRE-MATCH
がハイレベルに維持されていた)としても偶然である。
本第3実施例では、ガベージアドレスコントローラ14
8において、信号ENTIRE-MATCHがハイレベルに維持され
ていた場合に入力されたアドレスR/W-ADDRESSとアドレ
スMATCH-ADDRESS とを比較し、アドレスMATCH-ADDRESS
の方が大きい場合には今回の比較動作の結果は無効であ
るとして、信号FOUND をローレベル(「無効」を表す)
とする。従って、この時点ではステップ258の判定が
否定されてステップ260へ移行する。
【0116】ステップ260では、データ出力コントロ
ーラ138において、一致長カウンタ144から入力さ
れて保持している一致長さを表すカウント値M-LEN が
「2」よりも大きいか否か、すなわち過去2回の比較動
作で何れも「有効」を表す信号FOUND が出力されたか否
かが判定される。この時点では、保持している一致長M-
LEN は「0」であるのでステップ260の判定が否定さ
れ、ステップ266でデータ入力コントローラ136か
らデータ出力コントローラ138に入力された文字デー
タ、すなわち書込みバッファ56に保持された文字デー
タが圧縮データCOMP-DATとして出力される。
【0117】次のステップ268では、データ入力コン
トローラ136から書込み指示WRITE が出力される。こ
れにより、書込みバッファ56に保持された文字データ
が連想メモリセルアレイ26に書き込まれる。なお、文
字データが書き込まれる連想メモリセル列は、書込みア
ドレスカウンタ142に保持されているアドレス(この
ときは「0」)に対応する連想メモリセル列である。
【0118】ステップ270ではローレベルの信号FOUN
D がAND回路150を介して信号SET'として文字列検
索装置20に供給され、これによりNAND回路64を
介して出力される信号SET のレベルがハイレベルとな
り、プリチャージコントローラ58では各マッチ線をハ
イレベルにチャージする。これに伴って信号SET はロー
レベルに戻る。次のステップ272では書込みアドレス
カウンタ142でカウント値のカウントアップが行なわ
れ、ステップ252へ戻る。
【0119】このように、ステップ258、260の判
定が否定されている間は、書込みバッファ56に保持さ
れた文字データが、データ出力コントローラ138から
圧縮文字列データCOMP-DATA として出力されると共に連
想メモリセルアレイ26に記憶される。また、文字デー
タを書き込む連想メモリセル列のアドレスは、前述の書
込みアドレスカウンタ142のカウント値がカウントア
ップに伴って比較動作が行われる毎に順次シフトされ
る。
【0120】一方、書込みバッファ56に保持された文
字データと何れかの連想メモリセル列に記憶された文字
データとが一致した場合には、ガベージアドレスコント
ローラ148から出力される信号FOUND がハイレベル
(「有効」を表す)となり、ステップ258の判定が肯
定される。この場合にはステップ266のようにデータ
の出力は行なわれず、一致長カウンタ144に「有効」
を表す信号FOUND が入力されることによりカウント値が
カウントアップされ、このカウント値が一致長M-LEN と
してデータ出力コントローラ138に保持される。
【0121】またステップ274では、連想メモリセル
アレイ26への文字データの書込みがステップ268と
同様にして行なわれる。ステップ276では、比較動作
後マッチ線がハイレベルに維持されている連想メモリ列
の次段の連想メモリ列のマッチ線のみがハイレベルとさ
れ、それ以外の連想メモリ列はマッチ線がローレベルと
される。次のステップ278では書込みアドレスカウン
タ142でカウント値のカウントアップが行なわれ、ス
テップ252へ戻る。
【0122】このように、ステップ258の判定が繰り
返し肯定されている間は、連想メモリセルアレイ26へ
の文字データの書込み及び一致長M-LEN のカウントアッ
プのみが繰り返し行われる。ところで、ステップ258
の判定が2回以上繰り返し肯定される場合は、書込みバ
ッファ56に連続して入力された文字データから成る文
字列が連想メモリセルアレイ26にも記憶されていた場
合、すなわち被圧縮文字列の中に2文字以上の文字で構
成される繰り返し文字列が発見された場合である。ステ
ップ274乃至278の処理が2回以上繰り返された後
にステップ258の判定が否定された場合、すなわち過
去2回の比較動作では比較結果が「一致」となった連想
メモリセル列が有りかつ今回の比較動作では比較結果が
「一致」となった連想メモリセル列が無かった場合には
次のステップ260の判定も肯定され、ステップ262
へ移行する。
【0123】ステップ262ではデータ出力コントロー
ラ138において、上記で発見された繰り返し文字列を
圧縮するための圧縮コードを求める。本第3実施例で
は、既に出力された前記繰り返し文字列と同一の文字列
の位置を指し示すポインタを表す圧縮コードAと、繰り
返し文字列の長さを表す圧縮コードBと、で構成された
圧縮コードを用いており、データ出力コントローラ13
8が保持しているアドレスS-ADR と一致長M-LEN との差
(S-ADR − M-LEN) を圧縮コードAとし、一致長M-LEN
を圧縮コードBとする。更に次のステップ264では上
記で求めた圧縮コードA、圧縮コードBを出力する。
【0124】なお、この圧縮コードを出力するにあた
り、圧縮した文字列を復元する際に圧縮コードと文字デ
ータとを区別できるようにするために、データ出力コン
トローラ138は、文字データと圧縮コードとの間に区
切りを表すコードを挿入する。これにより、データ出力
コントローラ138から出力される圧縮文字列データCO
MP-DATA の長さは、文字列圧縮コントローラ120に入
力された被圧縮文字列データTEXT-INNPUT よりも短くな
る。上記処理を繰り返すことによって被圧縮文字列デー
タTEXT-INNPUT が圧縮文字列データCOMP-DATA に変換さ
れて出力されることになる。
【0125】上記圧縮処理について、図12及び図13
を参照し被圧縮文字列「あらあらあらま」を圧縮する場
合を例に更に具体的に説明する。文字列圧縮コントロー
ラ120に被圧縮文字列「あらあらあらま」を表す被圧
縮文字列データTEXT-INPUTが入力されると、図12
(A)に示すように、被圧縮文字列の先頭の文字「あ」
に対応する文字データが、書込みバッファ56には保持
されると共にデータ出力コントローラ138に出力され
る。なお、このとき書込みアドレスカウンタ142及び
一致長カウンタ148のカウント値が「0」にリセット
されており、全てのマッチ線がハイレベルにチャージさ
れている。従って、文字列検索装置20へ検索指示SEAR
CHが出力されると、全ての連想メモリセル列で比較動作
が行なわれる(図においてハッチングで示す部分は、マ
ッチ線がハイレベルとなっている連想メモリセル列を表
している)。
【0126】前記比較動作を行った後に信号ENTIRE-MAT
CHがハイレベルで維持されていたとしても、前述のよう
に書込みアドレスカウンタ142に保持されているアド
レスR/W-ADDRESS が「0」であるので、アドレスMATCH-
ADDRESS がアドレスR/W-ADDRESS 以下となることはな
く、図12(B)に示すようにガベージアドレスコント
ローラ148から出力される信号FOUND はローレベル
(すなわち「無効」、図では「0」で表す)となる。こ
れにより、書込みバッファ56に保持されていた「あ」
の文字データは、データ出力コントローラ138から圧
縮文字列データCOMP-DATA として出力されると共に、連
想メモリセルアレイ26のアドレス「0」の連想メモリ
セル列に書き込まれる。
【0127】次に図12(B)に示すように、2番目の
文字「ら」の文字データが書込みバッファ56に保持さ
れ、全てのマッチ線がハイレベルとされた後に全ての連
想メモリセル列で比較動作が行われる。なおこの時点で
はアドレスカウンタ142に保持されているアドレスR/
W-ADDRESS が「1」にカウントアップされている。この
比較動作でガベージアドレスコントローラ148から
「有効」を表す信号FOUND が出力されるのは、書込みバ
ッファ56に保持された文字データとアドレス「0」の
連想メモリセル列に記憶された文字データとが一致した
場合であるが、図12(C)では一致していないので信
号FOUND はローレベルとなる(図12(D)参照)。こ
れにより、「ら」の文字データがデータ出力コントロー
ラ138から出力されると共に、連想メモリセルアレイ
26のアドレス「1」に書き込まれる。
【0128】図12(E)に示すように、次に3番目の
文字「あ」の文字データが書込みバッファ56に保持さ
れ、全てのマッチ線がハイレベルとされた後に全ての連
想メモリセル列で比較動作が行われる。このときは書込
みバッファ56に保持された文字データがアドレス
「0」の連想メモリセル列に記憶された文字データと一
致しており、MATCH-ADDRESS が「0」となるので、図1
2(F)に示すようにガベージアドレスコントローラ1
48から出力される信号FOUND がハイレベル(図では
「1」で表す)となる。これにより、データ出力コント
ローラ138では文字データの出力は行われず、書込み
バッファ56に保持された文字データは連想メモリセル
アレイ26のアドレス「2」に書き込まれる。また、一
致長M-LEN は「1」にカウントアップされる。
【0129】次に、図12(G)に示すように4番目の
文字「ら」の文字データが書込みバッファ56に保持さ
れ、文字データが一致したアドレスの次のアドレス(ア
ドレス「1」)のマッチ線のみがハイレベルとされて、
アドレス「1」の連想メモリセル列でのみ比較動作が行
われる。この比較動作の結果も「一致」であるので、図
12(H)に示すように信号FOUND はハイレベルで継続
し、データ出力コントローラ138では文字データの出
力は行われず、書込みバッファ56に保持された文字デ
ータは連想メモリセルアレイ26のアドレス「3」に書
き込まれる。また、一致長さを表す一致長M-LEN は
「2」にカウントアップされる。
【0130】更に、図13(A)に示すように5番目の
文字「あ」の文字データが書込みバッファ56に保持さ
れ、アドレス「2」のマッチ線のみがハイレベルとされ
て比較動作が行われる。この比較動作の結果も「一致」
であり、図13(B)に示すように信号FOUND はハイレ
ベルで継続し、データ出力コントローラ138では文字
データの出力は行われず、書込みバッファ56に保持さ
れた文字データは連想メモリセルアレイ26のアドレス
「4」に書き込まれ、一致長M-LEN は「3」にカウント
アップされる。
【0131】次に図13(C)に示すように6番目の文
字「ら」の文字データが書込みバッファ56に保持さ
れ、アドレス「3」のマッチ線のみがハイレベルとされ
て比較動作が行われる。この比較結果も「一致」であ
り、図13(D)に示すように信号FOUND はハイレベル
で継続し、データ出力コントローラ138では文字デー
タの出力は行われず、書込みバッファ56に保持された
文字データは連想メモリセルアレイ26のアドレス
「4」に書き込まれ、一致長M-LEN は「4」にカウント
アップされる。
【0132】次に図13(E)に示すように最後の文字
「ま」の文字データが書込みバッファ56に保持され、
アドレス「4」のマッチ線のみがハイレベルとされて比
較動作が行われる。この比較結果は「不一致」となり、
図13(F)に示すように信号FOUND がローレベルに遷
移する。このとき、データ出力コントローラ138では
保持している一致長M-LEN が「4」(すなわち「2」以
上)であるので、今まで出力しなかった文字列(繰り返
し文字列)を圧縮コードA及び圧縮コードBに置き換え
て出力する。
【0133】具体的には、データ出力コントローラ13
8で保持しているアドレスS-ADR が「4 」、一致長さを
表す一致長M-LEN も「4」であるので、既に圧縮文字列
データCOMP-DATA として出力された文字列のうち前記繰
り返し文字列と同一の文字列の先頭位置は、S-ADR − M
-LEN=0であり、図13(F)に示すように、文字列の
先頭位置「0」を表す圧縮コードA(図では「(0) 」で
示す)を出力する。次に図13(G)に示すように、繰
り返し文字列の長さ「4」を表す圧縮コードB(図では
「(4) 」で示す)を出力する。
【0134】次に、図13(H)に示すように書込みバ
ッファ56に保持されている「ま」の文字データがデー
タ出力コントローラ138から出力されると共に、連想
メモリセルアレイ26のアドレス「6」に書き込まれ、
一致長M-LEN が「0」にリセットされることによって圧
縮処理が完了する。
【0135】なお、以上の動作からも明らかではある
が、例えば被圧縮文字列が「あらあらあらまあ」であっ
た場合には、上記動作に加えて更に書込みバッファ56
に文字「あ」を入力して比較動作を行なわせればよく、
被圧縮文字列の長さが変化しても比較動作の繰り返し回
数が変化するのみであり、非常に短くかつ一定の処理時
間で被圧縮文字列の圧縮を行うことができる。また、被
圧縮文字列の長さが長大で、そのデータ量が連想メモリ
セルアレイ26の記憶容量よりも大きい場合にも、本実
施例のように書込みアドレスが連想メモリセルアレイ2
6の最終アドレスに到達した場合には書込みアドレスを
「0」に戻し、連想メモリセルアレイ26をリングバッ
ファとして用いて文字データを書き込むようにすればよ
く、記憶容量の大きな連想メモリセルアレイを用いる必
要はない。
【0136】また、連想メモリセルアレイ26の記憶容
量は、データの圧縮率の点からもあまり大きくしないこ
とが好ましい。すなわち、連想メモリセルアレイ26の
記憶容量を大きくすると、1度に記憶できるデータ量が
大きくなるので、比較動作において「一致」との比較結
果が出力される確率が高くなる。しかしながら、あまり
大きくし過ぎると、アドレスMATCH-ADDSRESSを表すため
のビット数が大きくなるので、圧縮コードAのビット数
が増加し、圧縮率が低下する。
【0137】本発明者等は、一例として連想メモリセル
列の記憶容量が1バイトの場合にはアドレスに12ビット
を割当て、連想メモリセルアレイ26の記憶容量を212
=4096バイトとする程度を適当な記憶容量としている。
また、日本語テキストは1文字が2バイトで表わされて
いるので、日本語テキストの圧縮を行う場合には連想メ
モリセル列の記憶容量を2バイトとした方が効率が良
く、この場合に連想メモリセルアレイ26の記憶容量を
前記と同じ4096バイトとすれば、アドレスを11ビットで
表すことができる。
【0138】〔第4実施例〕次に本発明の第4実施例に
ついて説明する。なお、第3実施例と同一の部分には同
一の符号を付し、説明を省略する。
【0139】本第4実施例に係るデータ出力コントロー
ラ138では、前回の比較動作後の信号FOUND のレベル
がハイレベルであり、今回の比較動作後に信号FOUND が
ローレベルに遷移した場合に、データ入力コントローラ
136から入力された文字データの出力を停止すると共
に、文字列検索装置20への書込み指示WRITE の出力を
禁止する制御信号をデータ入力コントローラ136に出
力(信号線の図示は省略)する。これにより、書込みバ
ッファ56に保持されている文字データに対し、全ての
連想メモリセル列に記憶されている文字データとの比較
が行われることになる。
【0140】本第4実施例の圧縮処理を図14に示すフ
ローチャートを参照して更に説明すると、今回の比較動
作で比較結果が「一致」となった連想メモリセル列が無
く、ステップ258の判定が否定された場合に、次のス
テップ260の判定が否定されるか、又はステップ26
0の判定が肯定されてステップ262及びステップ26
4の処理が行われた後に、ステップ265で前回の比較
動作では比較結果が「一致」となった連想メモリセル列
が有るか否かがデータ出力コントローラ138で判定さ
れる。この判定は、具体的には一致長M-LEN が「1」以
上か否かを判断することによって行うことができる。
【0141】前回の比較動作で比較結果が「一致」とな
った連想メモリセル列が無く、ステップ265の判定が
否定された場合には、今回の比較動作で書込みバッファ
56に保持されている文字データに対し、全ての連想メ
モリセル列に記憶されている文字データとの比較を行っ
ているので、第3実施例で説明したようにステップ26
6〜ステップ272の処理を行ってステップ252へ戻
るが、前回の比較動作で比較結果で比較結果が一致とな
った連想メモリセルが有った場合には、今回の比較動作
では、書込みバッファ56に保持されている文字データ
に対し、特定の連想メモリセル列に記憶されている文字
データのみと比較しており、書込みバッファ56に保持
されている文字データが、今回の比較動作で比較を行っ
ていない連想メモリセル列に記憶されている文字データ
に一致している可能性がある。
【0142】このため、データ出力コントローラ138
は、データ入力コントローラ136から入力された文字
データの出力を停止し、文字列検索装置20への書込み
指示WRITE の出力を禁止する制御信号をデータ入力コン
トローラ136に出力する。これにより、ステップ27
4にも示すように、今回の比較動作で比較結果が「一
致」となった連想メモリセル列が無く信号FOUND がロー
レベルに遷移することに伴って全てのマッチ線がハイレ
ベルにチャージされるが、書込みバッファ56に保持さ
れている文字データの書換えは行われず、ステップ25
6へ戻ってデータ入力コントローラ136から検索指示
SEARCHが出力され、書込みバッファ56に保持されてい
る文字データに対し全ての連想メモリセル列に記憶され
ている文字データとの比較が行われる。
【0143】上記により、被圧縮文字列データTEXT-INP
UTに各々2文字分以上の長さの繰り返し文字列データが
隣接して存在していた場合にも、これらを繰り返し文字
列データとして全文字分検出することができ、被圧縮文
字列データTEXT-INPUTに含まれる全ての繰り返し文字列
を漏れなく検出することができる。これにより、第3実
施例の圧縮処理と比較しても圧縮率が向上する、という
効果が得られる。
【0144】なお、更に圧縮率の向上を図るために、連
想メモリセルアレイに書込んだデータの長さに応じてア
ドレスを表すためのビット数を適宜変化させるようにし
てもよい。例えば前述のように連想メモリセル列の記憶
容量を1バイトとした場合には、連想メモリセルアレイ
に 256バイトのデータが書き込まれるまでの間はアドレ
ッシングに必要なビット数は「8」であり、1024バイト
のデータが書込まれるまでの間は前記必要なビット数は
「10」で済むので、これを利用すれば圧縮率を向上させ
ることができる。
【0145】また、上記では繰り返し文字列の長さが
「2文字」以上の場合に圧縮コードに置き換えるように
していたが、この基準値をさらに長くしてもよい。な
お、前記基準値を「1文字」としていないのは、上記で
1文字一致しただけで圧縮コードに置き換えると高い圧
縮率が得られないためであり、前記基準値としては2文
字以上の長さが好ましい。
【0146】また、被圧縮文字列データを連想メモリセ
ル列へアドレスの降順に書き込む(末尾から書き込む)
場合には、プライオリティエンコーダ60は複数本のマ
ッチ線がハイレベルとなっていたときに、最も高いアド
レスをアドレスMATCH-ADDRESS として出力することが好
ましい。
【0147】なお、圧縮文字列データCOMP-DATA を被圧
縮文字列データに復元する場合、文字列圧縮コントロー
ラ120は、圧縮文字列データCOMP-DATA から被圧縮文
字列データへの復元を行いながら、圧縮データCOMP-DAT
A から既に復元した被圧縮文字列データを連想メモリセ
ル28に一時的に記憶させ、該記憶させた被圧縮文字列
データを用いて、既に被圧縮文字列データへの復元を行
った圧縮文字列データに続く圧縮文字列データを被圧縮
文字列データに復元することができる。
【0148】〔第5実施例〕次に本発明の第5実施例に
ついて説明する。なお、第3実施例と同一の部分には同
一の符号を付し、説明を省略する。本第5実施例では図
15に示すようにガベージアドレスコントローラ148
及びAND回路150が省略されており、これに代え
て、図16に示すガベージアドレス制御回路124がプ
リチャージコントローラ580 〜58M に各々接続され
ている。また、一致長カウンタ144は初期設定回路1
40に接続されており、初期設定回路140からリセッ
ト信号が入力されると、カウント値を「0」にリセット
する。
【0149】ガベージアドレス制御回路124は、互い
の入力端と出力端とが接続された2個のNOT回路12
6、128から成るラッチを備えている。NOT回路1
26の出力端はMOSFET130のドレインに接続さ
れている。MOSFET130のゲートはワード線WLに
接続されており、ソースは接地されている。また、NO
T回路128の出力端はMOSFET132のドレイン
に接続されている。MOSFET132のゲートはNO
T回路135の出力端に接続されている。NOT回路1
35には信号SET'が入力され、MOSFET132のゲ
ートには信号SET'が反転された信号が入力される。MO
SFET132のソースは接地されている。
【0150】また、NOT回路128の出力端(以下、
NOT回路128から出力される信号を信号VALID とい
う)はAND回路134の2個の入力端の一方に接続さ
れており、AND回路134の他方の入力端はマッチ線
に接続されている。AND回路134の出力端は2つに
分岐されており、一方はプライオリティエンコーダ60
(図2参照)に接続されており、他方は次段のプリチャ
ージコントローラ58のNAND回路70(図4参照)
に接続されている。
【0151】圧縮処理を開始する際、文字列検索装置2
0に信号SET'が入力されると、ガベージアドレス制御回
路124の各々では、NOT回路135を介して入力さ
れた信号SET'の反転信号によってMOSFET132が
オンし、NOT回路126の入力側がローレベルとさ
れ、NOT回路126、128によってこの状態(信号
VALID がローレベルの状態)が保持される。ガベージア
ドレス制御回路124から出力される信号VALID がロー
レベルの状態では、AND回路134から出力される信
号が必ずローレベルとなるので、データが書き込まれて
いないすなわち記憶しているデータが不定の連想メモリ
セル列における比較動作の結果が信号ENTIRE-MATCH及び
アドレスMATCH-ADDRESS に影響を及ぼすことはない。
【0152】また、特定の連想メモリセル列へのデータ
の書込みが行われるときには、前記特定の連想メモリセ
ル列に接続されたワード線WLがハイレベルとされる。こ
れにより、ガベージアドレス制御回路124のMOSF
ET130がオンし、NOT回路128の入力側がロー
レベルとなり、NOT回路126、128によってこの
状態(信号VALID がハイレベルの状態)が保持される。
従って、全てのマッチ線がハイレベルにチャージされた
としても、比較結果がプライオリティエンコーダ60及
びOR回路62に出力される連想メモリセル列はデータ
が書き込まれたセル列のみであり、データが書き込まれ
ていないセル列は実質的には比較動作が停止された状態
とされる。
【0153】なお、データが書込まれていない連想メモ
リセル列から出力される比較結果を排除する方法は、上
記のようにガベージアドレスコントローラ148を設け
たり、又はプリチャージコントローラ58の各々にガベ
ージアドレス制御回路124を設けることに限定される
ものではなく、例えば、初期設定において、データの圧
縮及び復元に先立ち、予め定められた一定のデータを連
想メモリセルアレイ26の全ての連想メモリセル列に毎
回記憶させることで、データが書込まれていない連想メ
モリセル列から「一致」との比較結果が出力されること
を防止することも可能である。
【0154】なお、上記ではデータとして文字列を例に
説明したが、本発明はこれに限定されるものではなく、
画像データ、音声データ、文書データ、実行形式のプロ
グラム等のような様々なデータを対象として処理を行う
ことが可能である。
【0155】また、上記ではLZ77に準じたアルゴリズム
によって圧縮処理を行っていたが、本発明は上記で説明
した圧縮アルゴリズムに限定されるものではなく、検索
を必要とする種々の圧縮アルゴリズムに適用可能するこ
とが可能である。
【0156】
【発明の効果】以上説明したように請求項1記載の発明
は、単位データを記憶する複数の記憶手段と、記憶手段
に記憶された単位データと入力された単位データとが一
致しているときに一致信号を出力する複数の比較手段
と、を備えた記憶装置に、複数の単位データから成る被
検索データを単位データに分けて記憶手段に所定の順番
に記憶し、所定数の単位データで構成された検索データ
から特定の単位データを取り出して記憶装置の複数の比
較手段の各々に入力した後に、検索データからの取り出
し位置を移動させて単位データを取り出し、一致信号が
出力された比較手段と隣り合っている比較手段に前記取
り出した単位データを入力する、ことを繰り返して検索
するようにしたので、データの検索を高速で行なうこと
ができる、という優れた効果が得られる。
【0157】請求項4記載の発明及び請求項11記載の
発明は、所定数の単位データで構成された元データから
単位データを取り出して記憶装置の比較手段に入力した
後に、取り出した単位データを記憶手段に付与されたア
ドレスの昇順又は降順に記憶手段に記憶させることを繰
り返すと共に、一致信号が比較手段から出力されていた
状態から一致信号が出力されなくなった場合には、前記
一致信号が出力されていた状態で記憶手段に記憶された
単位データを所定の符号に置き換えて圧縮データとして
出力するようにしたので、データの圧縮を高速で行なう
ことができる、という優れた効果が得られる。
【0158】請求項5記載の発明及び請求項12記載の
発明では、請求項4及び請求項11の発明において、一
致信号が出力されていた状態から一致信号が出力されな
くなった場合に、取り出した単位データを圧縮データと
して出力することに代えて、取り出した単位データを再
び比較手段の各々に入力するようにしたので、元データ
に含まれる全ての繰り返しデータを検出することがで
き、元データの圧縮率が更に向上する、という優れた効
果が得られる。
【図面の簡単な説明】
【図1】第1実施例のマイクロコンピュータの概略構成
を示すブロック図である。
【図2】第1実施例に係る文字列検索装置の概略構成を
示すブロック図である。
【図3】連想メモリの単位セルの構成の一例を示す回路
図である。
【図4】プリチャージ回路の構成を示す回路図である。
【図5】第1実施例におけるメインコントローラの動作
を説明するためのフローチャートである。
【図6】(A)乃至(D)は第1実施例における検索動
作を説明するための概念図である。
【図7】連想メモリの単位セルの構成の他の例を示す回
路図である。
【図8】第2実施例に係る文字列検索装置の概略構成を
示すブロック図である。
【図9】第2実施例において文字データをビット毎に比
較する処理を説明するための概念図である。
【図10】第3実施例の文字列圧縮コントローラの概略
構成を示すブロック図である。
【図11】第3実施例の作用を説明するフローチャート
である。
【図12】(A)乃至(H)は第3実施例における圧縮
動作を説明するための概念図である。
【図13】(A)乃至(H)は第3実施例における圧縮
動作を説明するための概念図である。
【図14】第4実施例の作用を説明するフローチャート
である。
【図15】第5実施例の文字列圧縮コントローラの概略
構成を示すブロック図である。
【図16】第5実施例に係る文字列検索回路に付加され
るガベージ制御回路の構成を示す回路図である。
【図17】(A)は従来のデータ検索回路の概略構成を
示すブロック図、(B)は(A)の回路の一部を連想メ
モリに置き換えた検索回路の概略構成を示すブロック図
【符号の説明】
20 文字列検索装置 22 コントローラ 26 連想メモリセルアレイ 28 連想メモリセル 104 RAMセル 106 比較器 120 文字列圧縮コントローラ 124 ガベージアドレス制御回路 136 データ入力コントローラ 138 データ出力コントローラ 142 書込みアドレスカウンタ 144 一致長カウンタ 148 ガベージアドレスコントローラ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成6年5月31日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正内容】
【書類名】 明細書
【発明の名称】 データ検索装置、データ圧縮装置
及び方法
【特許請求の範囲】
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ検索装置に係り、
特に、文字列等の被検索データの中から検索データを検
索するデータ検索装置に関する。また本発明はデータ圧
縮装置及び方法に係り、特に、文字列等の元データの中
の繰り返しデータを探索して前記元データの長さを圧縮
するデータ圧縮装置及び方法に関する。
【0002】
【従来の技術及び発明が解決しようとする課題】コンピ
ュータ等の分野では、検索対象としての文字列等の被検
索データの中から所定の検索データを検索することが頻
繁に行われる(一例として後述するデータ圧縮等)。こ
の検索はソフトウェアによって実行されることが多い
が、処理時間を短縮するためにはハードウェアによって
検索を行わせることが有効である。被検索データの中か
ら検索データを検索する検索回路としては、従来より種
種の構成のものが提案されている。検索回路の一例を図
17(A)に示す。
【0003】図17(A)に示す検索回路500は、検
索データS0 〜Sn を格納する複数のレジスタ502
と、被検索データD0 …の一部を保持するシフトレジス
タ504と、レジスタ502に保持されたデータとシフ
トレジスタ504に保持されたデータとを比較し一致し
ている場合にハイレベルとなる比較信号を出力する複数
の比較器506と、複数の比較器506の各々から出力
される比較信号が入力されるAND回路508と、から
構成されている。この検索回路500では、シフトレジ
スタ504に保持させるデータをシフトすることによっ
て被検索データが順次検索回路500に入力される。被
検索データの中から検索データが発見されると、全ての
比較器506から出力される比較信号がハイレベルにな
り、AND回路508から出力される信号がハイレベル
になるので、検索データが発見されたことが検知され
る。
【0004】ところで、検索等に利用されるハードウェ
アの一例として、従来より連想メモリ(Content Addres
sable Memory:CAM) が知られている。一般的なメモリ
は、記憶位置のアドレスが指定されると前記アドレスに
対応する記憶領域に記憶しているデータを出力するもの
であるが、これに対し前述の連想メモリでは、データが
指定されると該データを記憶している記憶領域のアドレ
スを出力するようになっている。従来より提案されてい
る連想メモリを利用したデータ検索装置(一例として特
開平 2-66671号公報等参照)は、概念的には図17
(B)に示す検索回路510のように、図17(A)の
レジスタ502及び比較器506を、連想メモリ装置5
12を構成する連想メモリ部514に各々置き換えた構
成となっている(所謂Associative Memory:AM法)。
【0005】連想メモリ部514はメモリ及び比較回路
を備えており、所定長さのデータを記憶すると共に、記
憶しているデータと入力されたデータとを比較する。こ
の連想メモリ部514に検索データを記憶させておき、
シフトレジスタ504に保持されている被検索データを
入力して比較を行なわせることによって検索データの検
索が行なわれる。各連想メモリ部514の比較結果を出
力する端子は各々マッチ線516に接続されている。マ
ッチ線516は各連想メモリ部514が比較を行なう前
に図示しない外部回路によって予めハイレベルにチャー
ジされる(所謂プリチャージ)。各連想メモリ部514
は、記憶している検索データとシフトレジスタ504に
保持されている被検索データとを比較し、不一致の場合
にはマッチ線516をローレベルにする(チャージを引
き抜く)。従って、全ての連想メモリ部514の比較結
果が「一致」の場合にのみマッチ線516はハイレベル
に保持されるので、マッチ線516のレベルに基づいて
検索データの発見を検知できる。
【0006】しかしながら、図17(B)に示す検索回
路510において、検索データとして長さが不定のデー
タ(以下、これを可変長データという)を検索する場合
には、シフトレジスタ504が記憶可能なデータの長さ
を検索データの最大長に対応させ、連想メモリ装置51
2の連想メモリ部514を前記最大長に対応する個数設
ける必要がある。また、検索データの長さが短い場合に
は、不要な(データの検索に寄与しない)連想メモリ回
路が生じ、この不要な連想メモリ回路が無駄に電力を消
費するという欠点があった。
【0007】また前記不要な連想メモリ回路の数は検索
データの数に応じて変化するので、不要な連想メモリ回
路から出力される比較結果が検索回路510の検索結果
に影響を及ぼさないようにするためには、例えば前記不
要な連想メモリ回路から強制的に「一致」の比較結果を
出力させる、又は出力された比較結果を無視すると共
に、検索データの長さに応じて対象とする連想メモリ回
路の数を変化させる等のドントケア(Don't Care:DC)処
理を行なう回路を付加する必要があるが、このようなD
C処理機能を付与した連想メモリ装置は、汎用の連想メ
モリと比較して高い集積度で集積回路化することが困難
であるので、結果的に装置を小型化することが難しい。
このように、連想メモリを用いて可変長検索データの検
索を行なおうとすると種々の問題が生ずる。
【0008】さらに、長さが一定の固定長検索データの
検索を行なう場合にも生ずるAM法特有の欠点として、シ
フトレジスタ504に被検索データを逐次入力して検索
を行なうので、被検索データの長さに比例して検索時間
が増大し、例えばデータベースにおける検索等のように
被検索データが長大であった場合には膨大な検索時間が
必要となるという問題があった。
【0009】ところで、近年マルチメディア化が進み、
各種のシステムにおいて画像データ、音声データ、文書
データ、プログラム等の様々なデータを大量に取り扱う
必要が生じている。大量のデータを記憶装置に記憶した
り転送する等の処理は、データを圧縮してから行なうこ
とがコストや処理速度の点で非常に有効であり、データ
圧縮技術の重要性は急速に高まってきている。
【0010】データ圧縮技術としては従来より種々のも
のが提案されているが、損失圧縮と無損失圧縮の2種類
に大別できる。損失圧縮は高い圧縮率が得られるが、デ
ータの圧縮及び圧縮データの復元の過程で情報が損失す
るので、適用できる範囲は特定の分野に限定される。一
方、無損失圧縮は圧縮率は比較的低いが、データの圧縮
及び圧縮データの復元の過程で情報が損失することがな
く、復元したデータが圧縮前の元のデータと完全に一致
するため適用範囲が広い。
【0011】無損失圧縮の一種として、レンペルとジブ
(Lemple and Ziv)によって1977年に提案された辞書技
術に基づく汎用圧縮アルゴリズムLZ77(以下、単にLZ77
という) は、広く知られている Huffman符号等のエント
ロピー符号と比較して圧縮率が非常に高く、有用な圧縮
方法である。LZ77の基本的なアイディアは、元データに
含まれる繰り返しデータを検索し、繰り返しデータを別
の符号(既に出現した同一データの位置を指し示すポイ
ンタ及び繰り返しデータのデータ長)に置き換えて冗長
性を除くことによって圧縮するものである。LZ77では、
圧縮したデータを圧縮前の元のデータに復元することは
比較的容易に行なうことができるが、前記繰り返しデー
タも長さが不定の可変長データであるので、データを圧
縮する際に繰り返しデータの検索に非常に手間がかかる
という問題があった。
【0012】LZ77のアイディアに基づいてデータの圧縮
を行なうソフトウェアは従来より複数存在している。こ
れらのソフトウェアでは、元データを木構造のデータに
変換して繰り返しデータの検索を行なっているが、木構
造のデータに変換するアルゴリズムは非常に複雑である
ので処理に時間がかかると共にCPUに大きな負荷がか
かっていた。これを解決するためには、前述のソフトウ
ェアによって行なっていた処理をハードウェアに置き換
えて実行させることが考えられるが、前述のようにアル
ゴリズムが複雑であるため実現は容易ではなかった。ま
た、木構造のデータへの変換は、元データの内容によっ
て木構造が異なるので圧縮に要する時間が一定しないと
いう問題もあった。
【0013】本発明は上記事実を考慮して成されたもの
で、データの検索を高速で行なうことができるデータ検
索装置を得ることが目的である。
【0014】また本発明は、データの圧縮を高速で行な
うことができるデータ圧縮装置及びデータ圧縮方法を得
ることが目的である。
【0015】
【課題を解決するための手段】上記目的を達成するため
に請求項1記載の発明に係るデータ検索装置は、所定ビ
ット長のデータから成る単位データを記憶する複数の記
憶手段と、前記記憶手段に対応して設けられ記憶手段に
記憶された単位データと入力された単位データとが一致
しているときに一致信号を出力する複数の比較手段と、
を備え、複数の単位データから成る被検索データを前記
複数の記憶手段に単位データに分けて所定の順番に記憶
した記憶装置と、所定数の単位データで構成された検索
データから特定の単位データを取り出して前記記憶装置
の複数の比較手段の各々に入力した後に、検索データか
らの取り出し位置を移動させて単位データを取り出し、
一致信号が出力された比較手段と隣り合っている比較手
段に前記取り出した単位データを入力する、ことを繰り
返して検索する制御手段と、を含んで構成している。
【0016】また、請求項1記載の発明において、記憶
装置は単位データに分けた被検索データを複数の記憶手
段に付与されたアドレスの昇順に記憶手段に記憶し、制
御手段は、単位データの取り出し位置を検索データの先
頭から末尾側へ所定ビット長ずつ移動させながら単位デ
ータを取り出すと共に、対応する記憶手段のアドレスが
前記一致信号が出力された比較手段と隣り合っている比
較手段に、取り出した単位データを入力することができ
る。
【0017】また請求項1記載の発明において、記憶装
置は単位データに分けた被検索データを複数の記憶手段
に付与されたアドレスの降順に記憶手段に記憶し、制御
手段は、単位データの取り出し位置を検索データの先頭
から末尾側へ所定ビット長ずつ移動させながら単位デー
タを取り出すと共に、対応する記憶手段のアドレスが前
記一致信号が出力された比較手段と隣り合っている比較
手段に、取り出した単位データを入力することができ
る。
【0018】請求項4記載の発明に係るデータ圧縮装置
は、所定ビット長のデータから成る単位データを記憶す
る複数の記憶手段と、前記記憶手段に対応して設けられ
記憶手段に記憶された単位データと入力された単位デー
タとが一致しているときに一致信号を出力する複数の比
較手段と、を備えた記憶装置と、所定数の単位データで
構成された元データから特定の単位データを取り出して
前記記憶装置の複数の比較手段の各々に入力した後に、
一致信号が出力された場合には、前記取り出した単位デ
ータを記憶手段に付与されたアドレスの昇順又は降順に
記憶手段に記憶させた後に前記取り出した単位データと
隣り合っている単位データを取り出して前記一致信号が
出力された比較手段と隣り合っている比較手段に入力
し、一致信号が出力されなかった場合には、前記取り出
した単位データを圧縮データとして出力すると共に前記
アドレスの昇順又は降順に記憶手段に記憶させた後に前
記取り出した単位データと隣り合っている単位データを
取り出して比較手段の各々に入力し、一致信号が出力さ
れていた状態から一致信号が出力されなくなった場合に
は、前記一致信号が出力されていた状態で記憶手段に記
憶された単位データを所定の符号に置き換えて圧縮デー
タとして出力し、前記取り出した単位データを圧縮デー
タとして出力すると共に前記アドレスの昇順又は降順に
記憶手段に記憶させ、前記取り出した単位データと隣り
合っている単位データを取り出して比較手段の各々に入
力する、ことを繰り返し、元データを前記圧縮データに
圧縮して出力する制御手段と、を含んで構成している。
【0019】請求項5記載の発明に係るデータ圧縮装置
は、所定ビット長のデータから成る単位データを記憶す
る複数の記憶手段と、前記記憶手段に対応して設けられ
記憶手段に記憶された単位データと入力された単位デー
タとが一致しているときに一致信号を出力する複数の比
較手段と、を備えた記憶装置と、所定数の単位データで
構成された元データから特定の単位データを取り出して
前記記憶装置の複数の比較手段の各々に入力した後に、
一致信号が出力された場合には、前記取り出した単位デ
ータを記憶手段に付与されたアドレスの昇順又は降順に
記憶手段に記憶させた後に前記取り出した単位データと
隣り合っている単位データを取り出して前記一致信号が
出力された比較手段と隣り合っている比較手段に入力
し、一致信号が出力されなかった場合には、前記取り出
した単位データを圧縮データとして出力すると共に前記
アドレスの昇順又は降順に記憶手段に記憶させた後に前
記取り出した単位データと隣り合っている単位データを
取り出して比較手段の各々に入力し、一致信号が出力さ
れていた状態から一致信号が出力されなくなった場合に
は、前記一致信号が出力されていた状態で記憶手段に記
憶された単位データを所定の符号に置き換えて圧縮デー
タとして出力し、前記取り出した単位データを再び比較
手段の各々に入力する、ことを繰り返し、元データを前
記圧縮データに圧縮して出力する制御手段と、を含んで
構成している。
【0020】また、請求項4又は請求項5記載の発明に
おいて、制御手段は、記憶装置の全ての記憶手段に単位
データを記憶させた後に、単位データを書き込む記憶手
段のアドレスを先頭または末尾に戻して記憶させること
が好ましい。
【0021】また、請求項4又は請求項5記載の発明に
おいて、制御手段は、比較手段から一致信号が出力され
た回数を計数する計数手段を備え、計数手段によって計
数された回数及び一致信号が出力された比較手段に対応
する記憶手段のアドレスを用いて前記所定の符号を生成
することが好ましい。
【0022】また、請求項4又は請求項5記載の発明に
おいて、比較手段から一致信号が出力された場合に、記
憶装置における単位データが記憶された領域と単位デー
タが記憶されていない領域との境界アドレス及び前記比
較手段に対応する記憶手段のアドレスに基づいて、前記
比較手段に対応する記憶手段が前記単位データが記憶さ
れていない領域に含まれる場合には前記比較手段から出
力された一致信号を無効とする無効制御手段を備えるこ
とが好ましい。
【0023】また、請求項4又は請求項5記載の発明に
おいて、記憶装置の記憶手段に対応して設けられ元デー
タから取り出された単位データが記憶手段に記憶された
か否かを表す情報を保持する保持手段と、記憶手段に対
応して設けられ保持手段に保持された情報に基づいて元
データから取り出された単位データが記憶手段に記憶さ
れていない場合には前記比較手段から出力される一致信
号を無効とする無効制御手段と、を更に備えることが好
ましい。
【0024】また、請求項4又は請求項5記載の発明に
おいて、制御手段は、記憶装置の複数の記憶手段に圧縮
データから既に復元した元データを一時的に記憶させ、
該記憶させた元データを用いて、前記既に元データへの
復元を行った圧縮データに続く圧縮データを元データに
復元することができる。
【0025】また、請求項4又は請求項5記載の発明に
おいて、制御手段は、単位データを記憶している記憶手
段の数に応じて前記所定の符号のビット数を変化させる
ことが好ましい。
【0026】請求項12記載の発明に係るデータ圧縮方
法は、所定ビット長のデータから成る単位データを記憶
する複数の記憶手段と、前記記憶手段に対応して設けら
れ記憶手段に記憶された単位データと入力された単位デ
ータとが一致しているときに一致信号を出力する複数の
比較手段と、を備えた記憶装置を用い、所定数の単位デ
ータで構成された元データから特定の単位データを取り
出して前記記憶装置の複数の比較手段の各々に入力した
後に、一致信号が出力された場合には、前記取り出した
単位データを記憶手段に付与されたアドレスの昇順又は
降順に記憶手段に記憶させた後に前記取り出した単位デ
ータと隣り合っている単位データを取り出して前記一致
信号が出力された比較手段と隣り合っている比較手段に
入力し、一致信号が出力されなかった場合には、前記取
り出した単位データを圧縮データとして出力すると共に
前記アドレスの昇順又は降順に記憶手段に記憶させた後
に前記取り出した単位データと隣り合っている単位デー
タを取り出して比較手段の各々に入力し、一致信号が出
力されていた状態から一致信号が出力されなくなった場
合には、前記一致信号が出力されていた状態で記憶手段
に記憶された単位データを所定の符号に置き換えて圧縮
データとして出力し、前記取り出した単位データを圧縮
データとして出力すると共に前記アドレスの昇順又は降
順に記憶手段に記憶させ、前記取り出した単位データと
隣り合っている単位データを取り出して比較手段の各々
に入力する、ことを繰り返し、元データを前記圧縮デー
タに圧縮して出力する。
【0027】請求項13記載の発明に係るデータ圧縮方
法は、所定ビット長のデータから成る単位データを記憶
する複数の記憶手段と、前記記憶手段に対応して設けら
れ記憶手段に記憶された単位データと入力された単位デ
ータとが一致しているときに一致信号を出力する複数の
比較手段と、を備えた記憶装置を用い、所定数の単位デ
ータで構成された元データから特定の単位データを取り
出して前記記憶装置の複数の比較手段の各々に入力した
後に、一致信号が出力された場合には、前記取り出した
単位データを記憶手段に付与されたアドレスの昇順又は
降順に記憶手段に記憶させた後に前記取り出した単位デ
ータと隣り合っている単位データを取り出して前記一致
信号が出力された比較手段と隣り合っている比較手段に
入力し、一致信号が出力されなかった場合には、前記取
り出した単位データを圧縮データとして出力すると共に
前記アドレスの昇順又は降順に記憶手段に記憶させた後
に前記取り出した単位データと隣り合っている単位デー
タを取り出して比較手段の各々に入力し、一致信号が出
力されていた状態から一致信号が出力されなくなった場
合には、前記一致信号が出力されていた状態で記憶手段
に記憶された単位データを所定の符号に置き換えて圧縮
データとして出力し、前記取り出した単位データを再び
比較手段の各々に入力する、ことを繰り返し、元データ
を前記圧縮データに圧縮して出力する。
【0028】
【作用】データ検索では、例えばデータベースにおける
文字列の検索等に代表されるように、検索データが長さ
が不定の可変長データであることが多く、かつ当然では
あるが被検索データと比較して長さが短い。このため請
求項1記載の発明では、単位データを記憶する複数の記
憶手段と、記憶手段に記憶された単位データと入力され
た単位データとが一致しているときに一致信号を出力す
る複数の比較手段と、を備えた記憶装置に、複数の単位
データから成る被検索データを複数の記憶手段に単位デ
ータに分けて所定の順番に記憶している。
【0029】そして、所定数の単位データで構成された
検索データから特定の単位データを取り出して記憶装置
の複数の比較手段の各々に入力した後に、検索データか
らの取り出し位置を移動させて単位データを取り出して
比較手段に取り出した単位データを入力することが繰り
返される。なお、単位データの長さ(ビット長)は、例
えば検索データ及び被検索データが、ASCIIコー
ド、またはISOコードで表される文字列データの場合
には8ビットとすることができ、漢字等を含む日本語の
文字列データの場合には16ビットとすることができ
る。
【0030】これにより、記憶手段に記憶された単位デ
ータと入力された単位データとの比較動作が各比較手段
で並列に行なわれ、検索データを単位データ毎に分けて
順に入力することによって検索データの検索が完了する
ので、検索に要する処理時間(具体的には比較動作の繰
り返し回数)は検索データの長さに応じて変化する。こ
のため、従来のように比較動作の繰り返し回数が被検索
データの長さに応じて変化する場合と比較して、特に被
検索データの長さが長大である場合に極めて短時間でデ
ータの検索を行なうことができる。
【0031】また、検索データが長さが不定の可変長デ
ータであるとしても、検索データの長さに応じて比較手
段への単位データの入力回数が変化するのみであり、検
索データの長さの最大値に合わせて回路構成を変更した
りする必要はない。更に、検索データの長さが最大値よ
りも短い場合には、従来は検索データの長さに応じてそ
の数が変化する不要な比較器又は連想メモリ部(本発明
では比較手段)の比較結果を無効とするDC処理を行な
う回路が付加された連想メモリセルやRAMセルを用い
る必要があったが、本発明では検索データの数が変化し
ても比較手段への単位データの入力回数が変化するのみ
であるので、DC処理を行なう回路が付加された連想メ
モリセルやRAMセル等を用いる必要がない。従って、
集積度の高い汎用の連想メモリセルやRAMセル等を用
いてデータ検索装置の記憶装置を構成することができ、
装置を小型化することができる。
【0032】さらに、請求項1の発明では、検索データ
から取り出した特定の単位データを記憶装置の複数の比
較手段の各々に入力した後は、検索データからの取り出
し位置を移動させて取り出した単位データを一致信号が
出力された比較手段と隣り合っている比較手段に入力す
ることを繰り返す。従って、被検索データ及び検索デー
タが全て同じ単位データから構成されている等の特殊な
場合を除き、比較手段に単位データを入力することを繰
り返すに従って単位データを入力する比較手段の数が少
なくなる。単位データが入力されなかった比較手段では
一致信号の出力やデータの単位データの比較等が行なわ
れないので、消費電力は非常に小さくて済み、特に検索
データの長さが長大である場合に消費電力を低減するこ
とができる。
【0033】なお、記憶装置は、単位データに分けた被
検索データを、記憶手段に付与されたアドレスの昇順又
は降順に各記憶手段に記憶することができる。また、検
索データからの単位データの取り出しは、通常は検索デ
ータの先頭から末尾側へ前記所定ビット長ずつ移動させ
ながら行なうことが多いが、検索データの末尾から先頭
側へ前記所定ビット長ずつ移動させながら行なってもよ
い。
【0034】例えば、単位データに分けた被検索データ
を、記憶手段に付与されたアドレスの昇順に各記憶手段
に記憶し、かつ検索データからの単位データの取り出し
を検索データの先頭から末尾側へ所定ビット長ずつ移動
させながら行なう場合には、請求項2にも記載したよう
に、検索データから取り出した単位データを、対応する
記憶手段のアドレスが一致信号が出力された比較手段と
隣り合っている比較手段に入力することができる。また
例えば、単位データに分けた被検索データを、記憶手段
に付与されたアドレスの降順に各記憶手段に記憶し、か
つ検索データからの単位データの取り出しを検索データ
の先頭から末尾側へ前記所定ビット長ずつ移動させなが
ら行なう場合には、請求項3にも記載したように、検索
データから取り出した単位データを、対応する記憶手段
のアドレスが一致信号が出力された比較手段と隣り合っ
ている比較手段に入力することができる。
【0035】請求項4記載の発明では、所定数の単位デ
ータで構成された元データから単位データを取り出して
記憶装置の比較手段に入力した後に、取り出した単位デ
ータを記憶手段に付与されたアドレスの昇順又は降順に
記憶手段に記憶させることが繰り返される。従って、元
データが単位データ毎に取り出され、既に記憶手段に記
憶された単位データと一致しているか否かが比較される
ことになる。また本発明では、元データから特定の単位
データを取り出して複数の比較手段の各々に入力した後
に、一致信号が出力されなかった場合と、一致信号が出
力された場合と、一致信号が出力されていた状態から一
致信号が出力されなくなった場合と、で各々異なる処理
を行なうことを繰り返して元データを圧縮する。
【0036】すなわち、一致信号が出力されなかった場
合には、比較手段に入力した単位データは既に記憶手段
に記憶された単位データと一致していないので、前記単
位データを圧縮データとして出力すると共に記憶手段に
記憶させた後に、前記単位データと隣り合っている単位
データを取り出して比較手段の各々に入力する。これに
より、前記単位データと隣り合っている単位データが既
に記憶手段に記憶された単位データと一致しているか否
かが複数の比較手段の各々で比較されることになる。
【0037】また、一致信号が出力された場合には、比
較手段に入力した単位データが既に記憶手段に記憶され
た単位データと一致しており、前記入力した単位データ
は元データの複数箇所に存在するデータ(これを繰り返
しデータという)であると判断できる。このため、前記
単位データを元データとして出力することは行なわず、
前記単位データを記憶手段に記憶させた後に前記単位デ
ータと隣り合っている単位データを取り出して一致信号
が出力された比較手段と隣り合っている比較手段に入力
する。
【0038】これは、既に記憶手段に記憶された単位デ
ータと一致していた単位データに隣り合っている単位デ
ータが、前記一致信号が出力された比較手段に隣り合っ
ている比較手段に対応する記憶手段に記憶されているか
否かを比較させることに相当する。従って、連続して一
致信号が出力された場合には、この一致信号に対応する
複数の単位データは連続した繰り返しデータであり、複
数の単位データから成る繰り返しデータが検出されたこ
とになる。
【0039】また、一致信号が出力されていた状態から
一致信号が出力されなくなった場合には、検出されてい
た繰り返しデータの末尾が検出されたと判断できる。こ
のため、一致信号が出力されていた状態で記憶手段に記
憶された単位データ(すなわち繰り返しデータ)を所定
の符号に置き換えて圧縮データとして出力し、取り出し
た単位データを圧縮データとして出力すると共に記憶手
段に記憶させ、前記取り出した単位データと隣り合って
いる単位データを取り出して比較手段の各々に入力す
る。
【0040】上記処理が繰り返されることにより、元デ
ータに含まれる繰り返しデータが所定の符号に置き換え
られた圧縮データが出力される。上記より明らかなよう
に、請求項4の発明では元データを単位データ毎に分け
て順に入力することによって元データの圧縮が完了する
ので、元データの長さに応じた一定時間、かつ元データ
を木構造のデータに変換して繰り返しデータの検索を行
なう場合と比較して非常に短い時間でデータの圧縮を行
なうことができる。
【0041】なお上記では、一致信号が出力されていた
状態から一致信号が出力されなくなり、検出されていた
繰り返しデータの末尾が検出されたと判断された場合
に、比較手段に入力した単位データを圧縮データとして
出力すると共にアドレスの昇順又は降順に記憶手段に記
憶させ、前記単位データと隣り合っている単位データを
取り出して比較手段の各々に入力するので、前記検出さ
れた繰り返しデータの末尾に隣接する単位データが別の
繰り返しデータであった場合に、この単位データを繰り
返しデータとして検出することができず、元データに含
まれる全ての繰り返しデータを検出できない場合があ
る、という問題がある。
【0042】これを解決するためには、請求項5に記載
したように、一致信号が出力されていた状態から一致信
号が出力されなくなった場合に、一致信号が出力されて
いた状態で記憶手段に記憶された単位データを所定の符
号に置き換えて圧縮データとして出力すると共に、取り
出した単位データを再び比較手段の各々に入力すること
が好ましい。これにより、元データ内に異なる繰り返し
データが隣接して存在していたとしても、この隣接して
存在する繰り返しデータの両方を検出することができる
ので、元データに含まれる全ての繰り返しデータを検出
することができ、元データの圧縮率が更に向上する、と
いう効果が得られる。
【0043】なお、請求項6に記載したように、制御手
段は、記憶装置の全ての記憶手段に単位データを記憶さ
せた後に、単位データを書き込む記憶手段のアドレスを
先頭または末尾に戻して記憶させることが好ましい。本
発明では元データを圧縮することが目的であり、記憶手
段には必ずしも全ての元データを記憶させる必要はない
ので、上記のように記憶装置の記憶手段を、所謂リング
バッファのように用いることにより、記憶装置の記憶手
段の数、すなわち記憶容量を低減することができる。
【0044】また、本発明において前述したLZ77に準
じ、繰り返しデータを、既に出現した同一データの位置
を指し示すポインタ及び繰り返しデータのデータ長を表
す所定の符号に置き換える場合には、請求項7に記載し
たように、比較手段から一致信号が出力された回数を計
数する計数手段を設け、計数手段によって計数された回
数及び一致信号が出力された比較手段に対応する記憶手
段のアドレスを用いて前記所定の符号を生成することが
できる。
【0045】また、本発明では元データから取り出した
単位データを記憶装置の記憶手段に順に記憶するので、
前述のように記憶装置の記憶手段をリングバッファとし
て用いたとしても、圧縮処理を開始したときには単位デ
ータを記憶していない記憶手段が存在する。この記憶手
段に対応する比較手段に単位データが入力されると、記
憶手段に記憶されているデータが不定であるので一致信
号が偶然に出力される可能性がある。
【0046】これによる不都合を防止するためには、請
求項8にも記載したように、比較手段から一致信号が出
力された場合に記憶装置における単位データが記憶され
た領域と単位データが記憶されていない領域との境界ア
ドレス及び一致信号が出力された比較手段に対応する記
憶手段のアドレスに基づいて、前記比較手段に対応する
記憶手段が前記単位データが記憶されていない領域に含
まれる場合には前記比較手段から出力された一致信号を
無効とする無効制御手段を備えることが好ましい。これ
により、前記偶然に出力された一致信号を無効とするこ
とができる。
【0047】また、請求項9に記載したように、元デー
タから取り出された単位データが記憶手段に記憶された
か否かを表す情報を保持する保持手段を記憶装置の記憶
手段に対応して設けると共に、保持手段に保持された情
報に基づいて元データから取り出されたデータが記憶手
段に記憶されていない場合には前記比較手段から出力さ
れる一致信号を無効とする無効制御手段を記憶手段に対
応させて設けるようにしてもよい。但し、請求項9では
記憶手段毎に保持手段及び無効制御手段を設ける必要が
あるので、記憶装置を集積回路化する場合の集積度は若
干低下することになる。
【0048】なお、制御手段によって圧縮データを元デ
ータに復元する場合には、請求項10にも記載したよう
に、制御手段は、記憶装置の複数の記憶手段に圧縮デー
タから既に復元した元データを一時的に記憶させ、該記
憶させた元データを用いて、前記既に元データへの復元
を行った圧縮データに続く圧縮データを元データに復元
することができる。
【0049】また、請求項4又は請求項5記載の発明に
おいて、制御手段は、請求項11にも記載したように、
単位データを記憶している記憶手段の数に応じて所定の
符号のビット数を変化させることが好ましい。前述のよ
うに、所定の符号は一例として、既に出現した同一デー
タの位置を指し示すポインタ及び繰り返しデータのデー
タ長を表す符号で構成することができるが、前記ポイン
タ情報及びデータ長情報は何れも、単位データを記憶し
ている記憶手段の数が少ないときには、単位データを記
憶している記憶手段の数が多い場合と比較して少ないビ
ット数で表すことができる。従って、単位データを記憶
している記憶手段の数に応じて所定の符号のビット数を
変化させることにより、更に詳しくは、単位データを記
憶している記憶手段の数が少ないときに所定の符号のビ
ット数が少なくなるように所定の符号のビット数を変化
させることにより、元データの圧縮率が更に向上する。
【0050】請求項12記載の発明では、所定ビット長
のデータから成る単位データを記憶する複数の記憶手段
と、前記記憶手段に対応して設けられ記憶手段に記憶さ
れた単位データと入力された単位データとが一致してい
るときに一致信号を出力する複数の比較手段と、を備え
た記憶装置を用い、所定数の単位データで構成された元
データから特定の単位データを取り出して前記記憶装置
の複数の比較手段の各々に入力した後に、一致信号が出
力された場合には、前記取り出した単位データを記憶手
段に付与されたアドレスの昇順又は降順に記憶手段に記
憶させた後に前記取り出した単位データと隣り合ってい
る単位データを取り出して前記一致信号が出力された比
較手段と隣り合っている比較手段に入力し、一致信号が
出力されなかった場合には、前記取り出した単位データ
を圧縮データとして出力すると共に前記アドレスの昇順
又は降順に記憶手段に記憶させた後に前記取り出した単
位データと隣り合っている単位データを取り出して比較
手段の各々に入力し、一致信号が出力されていた状態か
ら一致信号が出力されなくなった場合には、前記一致信
号が出力されていた状態で記憶手段に記憶された単位デ
ータを所定の符号に置き換えて圧縮データとして出力
し、前記取り出した単位データを圧縮データとして出力
すると共に前記アドレスの昇順又は降順に記憶手段に記
憶させ、前記取り出した単位データと隣り合っている単
位データを取り出して比較手段の各々に入力する、こと
を繰り返し、元データを前記圧縮データに圧縮して出力
するようにしたので、請求項4記載の発明と同様に、元
データの長さに応じた一定時間、かつ従来と比較して非
常に短い時間でデータの圧縮を行なうことができる。
【0051】更に、請求項13に記載した発明では、上
記請求項12の発明において、一致信号が出力されてい
た状態から一致信号が出力されなくなった場合に、一致
信号が出力されていた状態で記憶手段に記憶された単位
データを所定の符号に置き換えて圧縮データとして出力
し、取り出した単位データを再び比較手段の各々に入力
するようにしたので、請求項5記載の発明と同様に、元
データに含まれる全ての繰り返しデータを検出すること
ができ、元データの圧縮率が更に向上する、という効果
が得られる。
【0052】
【実施例】以下、図面を参照して本発明の実施例を詳細
に説明する。なお、以下では被検索データ、検索デー
タ、元データの一例として文字列データの検索、圧縮を
行なう場合について説明する。
【0053】〔第1実施例〕図1には本第1実施例に係
る、本発明が適用されたマイクロコンピュータ10の構
成(一部)が示されている。マイクロコンピュータ10
はCPU12、ROM14、RAM16を備えており、
これらはアドレスバス、データバス、コントロールバス
等から成るバス18を介して互いに接続されている。ま
たマイクロコンピュータ10は本発明に係る文字列検索
装置20を備えており、この文字列検索装置20は文字
列検索装置20の作動を制御するコントローラ22を介
してバス18に接続されている。
【0054】図2に示すように、文字列検索装置20は
図2に「○」で示す多数の連想メモリセル(単位セル)
28がマトリクス状に配置されて構成された連想メモリ
セルアレイ26を備えている。連想メモリセルアレイ2
6にはM+1本のワード線WL0 〜WLM 、M+1本のマッ
チ線MATCH0〜MATCHM、N+1組のビット線対BL0,BL0'〜
BLN,BLN'が各々マトリクス状に配置されており、各連想
メモリセル28は、ワード線WL0 〜WLM の何れか、マッ
チ線MATCH0〜MATCHMの何れか及びビット線対BL0,BL0'〜
BLN,BLN'の何れかに各々接続されている。
【0055】前記多数の連想メモリセル28は各々同一
の構成とされている。図3に示すように、連想メモリセ
ル28は互いの入力端と出力端とが接続された2個のN
OT回路30、32を備えている。このNOT回路3
0、32のループによって1ビットのデータを記憶する
記憶回路(SRAM型)が構成されている。NOT回路
30の出力端はNチャンネル型のMOSFET34のソ
ースに、NOT回路32の出力端は同じくNチャンネル
型のMOSFET36のソースに各々接続されており、
MOSFET34、36のゲートは各々ワード線WLに接
続されている。
【0056】また、MOSFET34、36のドレイン
は各々ビット線BL,BL'に接続されている。連想メモリセ
ル28に1ビットのデータを書き込む場合(後述する
「書込み」モード)には、ワード線WLはハイレベルとさ
れ、ビット線BLは書き込むデータDに対応したレベル
(Dが「1」の場合はハイレベル、「0」の場合はロー
レベル)とされ、ビット線BL' はビット線BLのレベルに
対して反転したレベル(ビット線BLがハイレベルの場合
はローレベル、ビット線BLがローレベルの場合はハイレ
ベル)とされる。これにより、MOSFET34、36
がオンし、ビット線対BL又はBL' を介して供給されたデ
ータがNOT回路30、32のループに保持される。な
お、連想メモリセル28に記憶されたデータを読み取る
ことも可能となっている(後述する「読取り」モー
ド)。
【0057】また、NOT回路30の出力端はMOSF
ET38のゲートに、NOT回路32の出力端はMOS
FET40のゲートに各々接続されている。なお、NO
T回路32からはデータDを反転したデータ(Q’)が
出力され、NOT回路30からはデータQ’を反転した
データQ(=D)が出力される。MOSFET38、4
0のドレインは各々ビット線BL',BLに接続されており、
ソースはMOSFET42のゲートに接続されている。
MOSFET42のドレインはマッチ線MATCHに接続さ
れ、ソースは接地されている。
【0058】なお、本実施例において、同一のワード線
及びマッチ線に接続される連想メモリセル28の数は、
被検索文字列を構成する1文字を表すビット数(例えば
アスキーコード、ISOコード等の場合は8ビット)と
一致されており、同一のワード線及びマッチ線に接続さ
れる複数の連想メモリセル28(以下、これらを連想メ
モリセル列という)によって1文字分の文字データが記
憶される。また、連想メモリセルアレイ26では連想メ
モリセル列毎にアドレスが付与されている。
【0059】また、単一の連想メモリセル列を構成する
各連想メモリセル28のNOT回路30、32のループ
は本発明の記憶手段に対応しており、各連想メモリセル
28のMOSFET38、40、42は本発明の比較手
段に対応している。
【0060】一方、図2に示すように、文字列検索装置
20はタイミングコントローラ50を備えている。文字
列検索装置20は動作モードとして、連想メモリセルア
レイ26に記憶されたデータを読み取る「読取り」モー
ド、連想メモリセルアレイ26にデータを書き込む「書
込み」モード、連想メモリセルアレイ26に記憶された
データに対して検索を行なう「検索」モードが設けられ
ている。タイミングコントローラ50はコントローラ2
2に接続されており、前記動作モードは、コントローラ
22からタイミングコントローラ50に各々入力される
読取り指示READ、書込み指示WRITE 、検索指示SEARCHに
応じて切り替わる。
【0061】また、タイミングコントローラ50にはコ
ントローラ22からシステムクロックCLOCK が入力さ
れ、システムクロックCLOCK と同期した4つのクロック
(クロックRD、クロックWT-SR 、クロックRD-WT 及びク
ロックSR)を、3つの動作モードに応じて生成し出力す
る。クロックRD-WT は、「読取り」及び「書込み」時に
タイミングコントローラ50に接続されたアドレスデコ
ーダ52に出力され、アドレスデコーダ52を作動させ
る。アドレスデコーダ52はコントローラ22に接続さ
れており、コントローラ22からデータの読取り又は書
込みを行なう連想メモリセル列のアドレスが指定され
る。アドレスデコーダ52にはワード線WL0〜WLM が接
続されており、指定されたアドレスに対応する連想メモ
リ列のワード線をハイレベルとする。
【0062】タイミングコントローラ50にはセンスア
ンプ54及び書込みバッファ56が接続されており、ク
ロックRDは「読取り」時にセンスアンプ54に出力され
てセンスアンプ54を作動させ、クロックWT-SR は「書
込み」及び「検索」時に書込みバッファ56に出力され
て書込みバッファ56を作動させる。ビット線対BL0,BL
0'〜BLN,BLN'はセンスアンプ54及び書込みバッファ5
6に各々接続されている。またセンスアンプ54及び書
込みバッファ56はコントローラ22に接続されてい
る。
【0063】センスアンプ54は「読取り」時に、連想
メモリセル列の各々の連想メモリセル28に記憶された
データに応じて変化されたビット線対BL0,BL0'〜BLN,BL
N'のレベル(これが読取りデータを表す)を増幅してコ
ントローラ22に出力する。書込みバッファ56は「書
込み」及び「検索」時に、コントローラ22から入力さ
れてバッファに記憶されたデータに応じてビット線対BL
0,BL0'〜BLN,BLN'のレベルを変化させる(ビット線対を
駆動する)。なお、「検索」時には、前述のようにアド
レスデコーダ52が作動されずワード線WL0 〜WLM は何
れもローレベルとされているので、検索データに応じて
変化されたビット線対のレベルが連想メモリセル28に
取り込まれる、すなわち連想メモリセル28に検索デー
タが書き込まれることはない。
【0064】また、タイミングコントローラ50にはM
+1個のプリチャージコントローラ580 〜58M が各
々接続されており、クロックSRは「検索」動作時にプリ
チャージコントローラ580 〜58M に出力され、プリ
チャージコントローラ580〜58M を各々作動させ
る。プリチャージコントローラ580 は端子66を介し
てコントローラ22に接続されると共にマッチ線MATCH0
に接続されており、プリチャージコントローラ581
マッチ線MATCH0及びマッチ線MATCH1に接続されている。
プリチャージコントローラ582 以降はプリチャージコ
ントローラ581と同様に隣接する2本のマッチ線に接
続されている。また、プリチャージコントローラ58M
はマッチ線MATCHMを介してコントローラ22に接続され
ている。
【0065】プリチャージコントローラ580 〜58M
は同一の構成とされている。図4に示すように、プリチ
ャージコントローラ58はNOR回路70を備えてお
り、NOR回路70の一方の入力端は前段側のマッチ線
(例えばプリチャージコントローラ581 の場合はマッ
チ線MATCH0)に接続されている。但しプリチャージコン
トローラ580 は端子66を介してコントローラ22に
接続されており、コントローラ22から入力信号CONTRO
L-INとして常にローレベルの信号が入力される。また他
方の入力端はコントローラ22に接続されており、通常
はローレベルでマッチ線MATCH0〜MATCHMを全てハイレベ
ルにチャージ(プリチャージ)するときにハイレベルと
される信号SET (図2参照)が、コントローラ22から
プリチャージコントローラ580 〜58M の各々に入力
される。NOR回路70の出力端はPチャンネル型MO
SFET72のソースに接続されている。MOSFET
72のゲートはタイミングコントローラ50に接続され
ており(図4では図示省略)、「検索」時にはクロック
SRが入力される。
【0066】また、MOSFET72のドレインにはN
OT回路74の入力端及びNOT回路76の出力端が接
続されており、このNOT回路74の出力端及びNOT
回路76の入力端はNチャンネル型MOSFET78の
ドレインに各々接続されている。従ってNOT回路7
4、76によって記憶回路が構成される。MOSFET
78のゲートはタイミングコントローラ50に接続され
ており、「検索」時にクロックSRが入力される。MOS
FET78のソースはNAND回路80の一方の入力端
に接続されており、NAND回路80の他方の入力端は
タイミングコントローラ50に接続されている。
【0067】NAND回路80の出力端はPチャンネル
型MOSFET82のゲートに接続されている。MOS
FET82のソースは図示しない電源に接続されてお
り、ドレインは次段側のマッチ線(例えばプリチャージ
コントローラ581 の場合はマッチ線MATCH1)に接続さ
れている。また、タイミングコントローラ50はPチャ
ンネル型MOSFET84のゲートにも接続されてい
る。MOSFET84のソースは図示しない電源に、ド
レインはNOT回路86の入力端に各々接続されてい
る。NOT回路86の入力端はMOSFET78のソー
スにも接続されている。NOT回路86の出力端はNチ
ャンネル型MOSFET88のゲートに接続されてお
り、MOSFET88のソースは前述の次段側のマッチ
線に接続され、ドレインは接地されている。
【0068】一方、マッチ線MATCH0〜MATCHMは各々プラ
イオリティエンコーダ60に接続されている。後述する
ように、「検索」モードにおいて比較動作を1回行なっ
た後にマッチ線がハイレベルとなっている連想メモリセ
ル列は、記憶しているデータと供給されたデータとが一
致した連想メモリセル列である。プライオリティエンコ
ーダ60はコントローラ22に接続されており、「検
索」動作を行なってマッチ線がハイレベルとなっている
連想メモリセル列のアドレスMATCH-ADDRESS をコントロ
ーラ22に出力する。但し、複数本のマッチ線がハイレ
ベルとなっていた場合には、予め定められた基準に従っ
て優先順位の高い連想メモリセル列のアドレス、例えば
最も低いアドレスをアドレスMATCH-ADDRESS として出力
する。
【0069】またマッチ線MATCH0〜MATCHMは、OR回路
62の入力端にも各々接続されている。OR回路62の
出力端はコントローラ22に接続されており、マッチ線
MATCH0〜MATCHMの少なくとも1つがハイレベルであるか
否かを表す信号、すなわち検索データが連想メモリセル
アレイ26に記憶されているデータと一致したか否かを
表す信号ENTIRE-MATCHが出力される。
【0070】次に本第1実施例の作用として、「検索」
モードにおける検索処理の一例として文字列の検索処理
を図5のフローチャート等を参照して説明する。なお、
図5のフローチャートは、CPU12からの検索処理の
実行が指示された場合にコントローラ22で実行され
る。また、このときには連想メモリセルアレイ26の各
連想メモリセル28には、既に被検索データとしての文
字列データが記憶されているものとする。ステップ20
0ではRAM16等に記憶されている検索文字列を表す
文字列データの取り込みを行なう。次のステップ202
では取り込んだ検索文字列データの先頭から1文字分の
文字データを取り出す。ステップ204では、プリチャ
ージコントローラ580 〜58M に出力する信号SET
一旦アクティブ(ハイレベル)とする。
【0071】プリチャージコントローラ580 〜58M
のNOR回路70に各々入力される信号SET が一旦ハイ
レベルとなると、NOR回路70から出力される信号が
ローレベルとなる。MOSFET72はPチャンネル型
であるのでクロックSRがローレベルの間はオンしてお
り、NOR回路70から出力された信号はNOT回路7
4に入力され、NOT回路74、76のループに保持さ
れる。
【0072】また次のステップ206では、前記検索文
字列データから取り出した文字データを書込みバッファ
56へ出力すると共に、前記信号SET を一旦ハイレベル
とするのに同期して、タイミングコントローラ50に検
索指示SEARCHを出力する。これにより、タイミングコン
トローラ50からは書込みバッファ56にクロックWT-S
R が出力されると共に、プリチャージコントローラ58
0 〜58M にクロックSRが出力されることになる。これ
により、プリチャージコントローラ58ではマッチ線MA
TCH のプリチャージが行なわれる。
【0073】すなわち、クロックSRがプリチャージコン
トローラ58に入力されると、クロックSRがハイレベル
のときにはMOSFET72がオフすると共にMOSF
ET78がオンする。これにより、前述のようにNOT
回路74からハイレベルの信号が出力され、NAND回
路80の一方の入力端に入力される。NAND回路80
の他方の入力端にもハイレベルの信号が入力されるの
で、NAND回路80から出力される信号がローレベル
となりMOSFET82がオンしてマッチ線MATCH が図
示しない電源に接続される。このとき、MOSFET8
8はオフしているのでマッチ線MATCH はハイレベルとな
る。
【0074】更に、クロックSRがローレベルになると、
NAND回路80の一方の入力端がローレベルになるの
でNAND回路80から出力される信号がハイレベルと
なり、MOSFET82がオフする。また、MOSFE
T78がオフすると共にMOSFET84がオンするの
で、NOT回路86に図示しない電源からハイレベルの
信号が供給され、MOSFET88はオフ状態で維持さ
れる。従って、マッチ線MATCH はハイレベルの状態でプ
リチャージコントローラ58から電気的に切り離される
ことになる。上記の動作がプリチャージコントローラ5
0 〜58M で各々行なわれることにより、マッチ線MA
TCH0〜MATCHMがハイレベルにチャージされた状態(プリ
チャージされた状態)となる。
【0075】一方、書込みバッファ56ではクロックWT
-SR が入力されると、入力された文字データに応じてビ
ット線対BL0,BL0'〜BLN,BLN'を駆動する。連想メモリセ
ルアレイ26の各連想メモリセル28では、NOT回路
30から出力されるデータQが「1」(ハイレベル)で
あればMOSFET38がオンしており、NOT回路3
2から出力されるデータQ’が「1」であればMOSF
ET40がオンしている。従って、NOT回路30、3
2のループに保持されているデータQ(Q’)とビット
線対BL,BL'を介して供給されるデータD(D')とが一致
している場合にはMOSFET42はオンしないが、不
一致の場合にはMOSFET38、40のうちオンして
いる方のMOSFETのドレインからソースに電流が流
れ、MOSFET42がオンする。これにより、前記プ
リチャージされたマッチ線MATCHのレベルはローレベル
に低下される(ディスチャージ)。
【0076】上記のデータの比較は、クロックSRがロー
レベルとなっている間に連想メモリセル28の各々で同
時に行なわれる。従って、クロックSRの1周期の間にプ
リチャージ及びデータの比較が行なわれることになる。
ところで、1本のマッチ線MATCH には複数の連想メモリ
セル28(連想メモリセル列)が接続されているので、
クロックSRの1周期の間に、連想メモリセル列に記憶さ
れている文字データと入力された文字データとを比較す
る比較動作が完了し、各マッチ線は、接続されている全
ての連想メモリセル28でMOSFET42がオンしな
かった場合、すなわち連想メモリセル列に記憶されてい
る文字データと書込みバッファ56に入力された文字デ
ータとが一致していた場合にのみハイレベルの状態で維
持され、不一致であった場合にはローレベルとされるこ
とになる。
【0077】従って、書込みバッファ56に入力された
文字データが連想メモリセル列の少なくとも何れか1つ
に記憶されていた場合には、OR回路62を介して出力
される信号ENTIRE-MATCHがハイレベルとなり、プライオ
リティエンコーダ60からは書込みバッファ56に入力
された文字データを記憶している連想メモリセル列のア
ドレスがアドレスMATCH-ADDRESS として出力される。ま
た、連想メモリセル列で比較動作が行なわれている間、
クロックSRはローレベルとなっておりプリチャージコン
トローラ58ではMOSFET72がオンするので、各
連想メモリセル列の比較結果に応じて変化される各マッ
チ線MATCH のレベルは、次段のプリチャージコントロー
ラ58のNOT回路74、76に伝達されて保持される
ことになる(例えばマッチ線MATCH0のレベルはプリチャ
ージコントローラ581 に伝達される)。
【0078】上記により、次にクロックSRがハイレベル
になるとMOSFET78がオンし、前記プリチャージ
の場合と同様に、NOT回路74から出力される信号が
ハイレベルであれば、MOSFET82がオンしてマッ
チ線MATCH がハイレベルにチャージされる。また、NO
T回路74から出力される信号がローレベルの場合に
は、NOT回路86から出力される信号がハイレベルと
なるので、MOSFET88がオンし、マッチ線MATCH
はローレベルとされる。このようにして、前段のマッチ
線がハイレベルであれば次段のマッチ線がハイレベルと
され、前段のマッチ線がローレベルであれば次段のマッ
チ線がローレベルとされることになる。なお、マッチ線
MATCH0については、コントローラ22からプリチャージ
コントローラ580 に入力される入力信号CONTROL-INに
より、1回比較動作を行なった後は必ずローレベルとさ
れる。
【0079】一方、次のステップ210ではOR回路6
2から出力された信号ENTIRE-MATCHがハイレベルか否か
判定する。ステップ210の判定が肯定された場合には
ステップ212へ移行し、プライオリティエンコーダ6
0から出力されたアドレスMATCH-ADDRESS を取り込んで
記憶する。ステップ214では検索が終了したか否か、
すなわち検索文字列を構成する全ての文字の文字データ
を書込みバッファ56へ出力したか否か判定する。ステ
ップ214の判定が否定された場合には、ステップ21
6で検索文字列データから取り出す文字データを1文字
分シフトして取り出し、書込みバッファ56へ出力す
る。これにより、前記でハイレベルとされたマッチ線に
接続されている連想メモリセル列において書込みバッフ
ァ56に出力した文字データに対して比較が行なわれ
る。
【0080】書込みバッファ56へ文字データを出力す
るとステップ210へ戻り、以下、信号ENTIRE-MATCHが
ハイレベルの間はステップ214の判定が肯定されるま
でステップ210〜216の処理が繰り返され、ステッ
プ212が実行される毎に記憶しているアドレス(MATC
H-ADDRESS)が更新される。この間の動作について、図6
を参照し具体例に基づいて更に説明する。図6では連想
メモリセル列を模式的に「□」で示しており、連想メモ
リセルアレイ26の連想メモリセル列に順に記憶された
被検索文字列「BABCABB…」に対して検索文字列
「ABCA」を検索する場合を説明している。
【0081】図6(A)は前記検索文字列の最初の文字
「A」との比較を行なうときの状態が示されており、書
き込みバッファ56に文字「A」を表す文字データが入
力される。また、プリチャージコントローラ58に入力
される信号SET が一旦ハイレベルとされることによって
全てのマッチ線がハイレベルとされ、全ての連想メモリ
セル列で比較動作が行なわれる。比較動作の結果、マッ
チ線がハイレベルで維持されるのはアドレス「1」及び
「4」の連想メモリセル列に対応するマッチ線のみであ
る。この結果が次段のプリチャージコントローラ58に
入力され(図6(B)参照)、次の文字「B」との比較
を行なう際にはアドレス「2」及び「5」の連想メモリ
セル列に対応するマッチ線のみがハイレベルとされ、ア
ドレス「2」及び「5」の連想メモリセル列のみで比較
動作が行なわれる。
【0082】アドレス「2」及び「5」の連想メモリセ
ル列は、何れも文字「B」を記憶しているので、対応す
るマッチ線は比較動作を行なった後もハイレベルに維持
され、この結果が次段のプリチャージコントローラ58
に入力される(図6(C)参照)。従って、次の文字
「C」との比較を行なう際にはアドレス「3」及び
「6」の連想メモリセル列に対応するマッチ線のみがハ
イレベルとされる。ここでアドレス「6」の連想メモリ
セル列が記憶している文字は「C」ではないので、アド
レス「3」の連想メモリセル列に対応するマッチ線のみ
がハイレベルに維持され、この結果が次段のプリチャー
ジコントローラ58に入力される(図6(D)参照)。
【0083】従って、検索文字列の最後の文字「D」の
文字データが書込みバッファ56に入力された際に比較
動作を行なうのはアドレス「4」の連想メモリセル列の
みである。アドレス「4」の連想メモリセル列で比較動
作が行なわれ、対応するマッチ線がハイレベルに維持さ
れると検索が終了する(図5のフローチャートではステ
ップ214の判定が肯定される)。以上の動作からも明
らかではあるが、例えば検索文字列が「ABCAB」で
あった場合には、上記動作に加えて更に書込みバッファ
56に文字「B」の文字データを入力して比較動作を行
なわせればよい。
【0084】従って、検索文字列の長さが変化しても比
較動作の繰り返し回数が変化するのみであり、従来のよ
うに検索文字列の最大長さに合わせて回路構成を変更し
たりする必要はない。また、検索のための比較動作を各
連想メモリセル列で並列に行なっており、被検索文字列
の長さに拘わらず、比較動作を検索文字列の文字数回行
なえば検索処理が終了するので、特に被検索文字列が長
大である場合に、従来と比較して極めて短時間で検索処
理が完了する。
【0085】また、従来は検索文字列の長さに応じて比
較結果を無効とする回路の数が変化するので、検索文字
列の長さに応じて特定の回路からの比較結果を無効とす
る、又は前記特定の回路の比較結果を強制的に「一致」
とさせるDC処理を行なう回路が付加された連想メモリ
セル等を用いる必要があるが、本実施例では検索文字列
の長さが変化しても特別な処理を行なう必要がないの
で、DC処理を行なう回路が付加された連想メモリセル
等を用いる必要はなく、装置を小型化できる。
【0086】更に、前段の連想メモリセル列の比較結果
が「不一致」であった連想メモリセル列に対してはマッ
チ線をローレベルとし、比較動作を行なわせないので、
比較動作を繰り返すに従って比較動作を行なわない連想
メモリセル列の数が増加し、消費電力を低減することが
できる。特にC−MOS(complimentary MOS)は論
理状態が変化するときに過渡電流が流れ、大きな電力を
消費するので、上記により大幅に消費電力が低減され
る。
【0087】一方、図5のフローチャートでステップ2
14の判定が肯定されると、ステップ218では記憶し
ているアドレスMATCH-ADDRESS をCPU12に送信して
処理を終了する。また、ステップ210〜216の処理
を繰り返している途中で信号ENTIRE-MATCHがローレベル
となった場合には、検索文字列が連想メモリセルアレイ
26に記憶されていないと判断できる。このため、ステ
ップ220でCPU12に検索が失敗した旨を通知し、
ステップ222で別の検索文字列が有るか否か判定す
る。
【0088】ステップ222の判定が肯定された場合に
はステップ200へ戻り、上記処理を繰り返す。また
ステップ222の判定が否定された場合には検索処理を
終了する。
【0089】なお、図5のフローチャートに示した検索
処理は単なる一例であり、例えば検索文字列に最も長く
一致する文字列を記憶している連想メモリセル列群のア
ドレスを求めることも可能である。また、連想メモリセ
ル28は図3に示すSRAM型の構成に限定されるもの
ではなく、図7に示すようなDRAM型とすることもで
きる。
【0090】また、文字列検索装置20を複数個設け、
各々の連想メモリセルアレイ26で同一文字データとの
比較動作を同時に行なうようにしてもよい。この場合に
は、複数設けられた文字列検索装置20の各々に、検索
データとして同一のデータを入力すると共に、かつ前段
側の文字列検索装置20のプリチャージコントローラ5
M のCONTROL-OUT(図2参照)と後段側の文字列検索装
置20のプリチャージコントローラ580 の端子66
(CONTROL-IN)とを接続することによって、複数設けら
れた文字列検索装置20のプリチャージコントローラ5
0 〜58M を各々連結し、更に複数の文字列検索装置
20の各々の一致信号ENTIRE-MATCHのORをとり、全体
の一致信号を生成すればよい。
【0091】〔第2実施例〕次に本発明の第2実施例を
説明する。なお、第1実施例と同一の部分には同一の符
号を付し、説明を省略する。図8には本第2実施例に係
る文字列検索装置100が示されている。
【0092】文字列検索装置100は、第1実施例の連
想メモリセルアレイに代えて、RAMセル(単位セル)
104がマトリクス状に配置されて構成されたRAMセ
ルアレイ102が設けられている。RAMセルアレイ1
02にはマッチ線に代えてM+1本のデータ線DATA0 〜
DATAM が設けられており、更にN+1本のビットセレク
ト線BSL0〜BSLNが設けられている。ビットセレクト線BS
L0〜BSLNはビットセレクタ116に各々接続されてい
る。ビットセレクタ116はタイミングコントローラ5
0に接続されており、「検索」時にクロックSRが入力さ
れる。また、ビットセレクタ116はコントローラ22
に接続されており、「検索」時にコントローラ22から
入力されたデータを保持する。なお、本第2実施例で
は、書込みバッファ56には「書込み」時にのみクロッ
クWTが入力される。
【0093】ビットセレクタ116は、クロックSRが入
力されるとこれに同期してビットセレクト線BSL0〜BSLN
を1本づつ順にハイレベルとする。データ線DATA0 〜DA
TAMは、比較器1060 〜106M の2個の入力端の一
方に接続されており、ビットセレクタ116によってビ
ットセレクト線BSL0〜BSLNの何れか1本がハイレベルと
されると、ハイレベルとされたビットセレクト線BSL に
接続されたRAMセル104に記憶されているデータ
が、データ線DATA0 〜DATAM を介して比較器1060
106M に出力される。
【0094】比較器1060 〜106M の他方の入力端
はビットセレクタ116に接続されている。ビットセレ
クタ116は「検索」時に、前述のようにビットセレク
ト線BSL0〜BSLNを1本づつ順にハイレベルにすると共
に、コントローラ22から入力されて保持している文字
データのうちの対応するビットのデータを比較器106
0 〜106M へ順次出力する。一例として、図9に示す
ように、ビットセレクト線BSL1をハイレベルとしている
ときは、保持している文字データのうち2番目のビット
のデータを出力する。これにより、各RAMセル列及び
ビットセレクタ116からは、各々に記憶又は保持され
ている文字データのうち同一ビット位置の1ビットデー
タが順に比較器1060 〜106M へ出力される。
【0095】比較器1060 〜106M はタイミングコ
ントローラ50に各々接続されており、「検索」時には
タイミングコントローラ50からクロックSRが入力され
る。これにより、ビットセレクタ116から入力された
1ビットのデータとデータ線DATA0 〜DATAM を介して入
力された1ビットのデータとの比較を行い、一致してい
た場合には出力信号をハイレベルとし、不一致の場合に
は出力信号をローレベルとする。比較器106には前述
のようにビットセレクタ116及びデータ線DATA0 〜DA
TAM から文字データが1ビット毎に順次入力されるの
で、比較器106からは各ビットの比較結果が順次出力
される。
【0096】比較器1060 〜106M の出力端はAN
D回路1080 〜108M の3個の入力端の1個に各々
接続されている。AND回路1080 〜108M の出力
端は各々ラッチ1100 〜110M の入力端に接続され
ており、ラッチ1100 〜110M の出力端はAND回
路1080 〜108M の入力端に接続されている。ラッ
チ1100 〜110M は後述するサーチコントローラ1
14に接続されており(図示省略)、サーチコントロー
ラ114からのリセット信号が入力されると、ハイレベ
ルを保持している状態にリセットされる。
【0097】従って、ラッチ110に保持されているレ
ベル及びAND回路108から出力される信号のレベル
は、ラッチ1100 〜110M がリセットされた後に比
較器106から順次出力される各ビットの比較結果が常
にハイレベルの場合には何れもハイレベルを維持する
が、比較結果が1回でもローレベルになるとローレベル
となる。但し、AND回路108の残りの入力端にロー
レベルの信号が入力された場合には、各ビットの比較結
果が常にハイレベルであっても、AND回路108から
出力される信号及びラッチ110に保持されるレベルは
ローレベルとなる。
【0098】また、AND回路1080 〜108M の出
力端はラッチ1120 〜112M の入力端にも接続され
ている。ラッチ1120 〜112M の出力端及び制御端
はサーチコントローラ114に接続されている。ラッチ
1120 〜112M はラッチ1100 〜110M と同様
にリセット信号が入力されると、ハイレベルを保持して
いる状態にリセットされる。また、サーチコントローラ
114から取込み指示が入力された場合にのみデータを
取り込むように構成されている。また、ラッチ1120
〜112M の出力端は各々次段側のデータ線に接続され
たAND回路108の入力端に順次接続されている。
【0099】サーチコントローラ114はタイミングコ
ントローラ50に接続されており、「検索」時にタイミ
ングコントローラ50からクロックSRが入力される。サ
ーチコントローラ114は入力されたクロックSRのパル
ス数をカウントし、ビットセレクタ116に保持された
文字データとの比較動作が完了したか否か判定し、比較
動作が完了した場合には各ラッチ1120 〜112M
前記取込み指示を出力する。なお、前述のようにデータ
の比較は1ビット毎に行なわれるので、例えばデータが
8ビットであれば8パルスカウントした時点で比較動作
が完了したと判断し、取込み指示を出力する。これによ
り、ビットセレクタ116に保持された文字データとの
比較が完了した時点におけるAND回路108の出力信
号のレベルがラッチ112に保持されることになる。
【0100】ラッチ112に保持されるレベルは、第1
実施例において比較動作が完了したときのマッチ線のレ
ベルと同じ意味を持ち、RAMセル列に記憶された文字
データがビットセレクタ116に保持された文字データ
に一致していた場合にのみハイレベルとなる。ラッチ1
12に保持されたレベルがローレベルであった場合に
は、比較動作の次のサイクルでAND回路108から出
力される信号が常にローレベルとなる。
【0101】このように、本発明は連想メモリセルアレ
イ26を用いることに限定されるものではなく、記憶手
段をRAMセルアレイの各RAMセル列で構成すると共
に、比較手段を比較器で構成するようにしてもよい。
【0102】なお、本第2実施例に係る文字列検索装置
100についても、これを複数個設け、各々で同一文字
データとの比較動作を同時に行なうことができる。この
場合には、前段側の文字列検索装置100のサーチコン
トローラ114のCONTROL-OUT(図8参照)と後段側の文
字列検索装置100のサーチコントローラ114のCONT
ROL-IN(図8参照)とを接続し、複数の文字列検索装置
100の各々に、検索データとして同一のデータを入力
ると共に、全体の一致信号として複数の文字列検索装
置100の各々の一致信号ENTIRE-MATCHのORをとった
信号を用いればよい。
【0103】〔第3実施例〕次に本発明の第3実施例を
説明する。なお、第1実施例と同一の部分には同一の符
号を付し、説明を省略する。本第3実施例では第1実施
例のコントローラ22に代えて、図10に示すような文
字列圧縮コントローラ120が設けられている。
【0104】文字列圧縮コントローラ120には、シス
テムクロックCLOCK 、圧縮処理を行なう際にローレベル
となる信号ENABLE' 及び被圧縮文字列データ(元デー
タ)TEXT-INPUTが入力される。文字列圧縮コントローラ
120に入力された信号ENABLE' はデータ入力コントロ
ーラ136、データ出力コントローラ138及び初期設
定回路140に各々供給され、圧縮処理を行なう際に前
記各回路を作動させる。また文字列圧縮コントローラ1
20に入力された被圧縮文字列データTEXT-INPUTは、デ
ータ入力コントローラ136に供給される。
【0105】データ入力コントローラ136は文字列検
索装置122及びデータ出力コントローラ138に接続
されている。データ入力コントローラ136では、供給
された被圧縮文字列データの先頭から1文字分の文字デ
ータを取り出して書込みバッファ56及びデータ出力コ
ントローラ138に出力すると共に、文字列検索装置2
0に検索指示SEARCH、書込み指示WRITE を順に出力する
ことを、文字データの取り出し位置を文字列データの末
尾側へ1文字分ずつシフトしながら繰り返す。これによ
り、文字列検索装置20では、前記検索指示SEARCHによ
り、前記書込みバッファ56に出力されて保持された文
字データに対して各連想メモリセル列に記憶している文
字データの比較動作が行なわれ、次に前記書込み指示WR
ITE により、前記保持された文字データが連想メモリセ
ルアレイ26に書き込まれることになる。
【0106】一方、初期設定回路140には書込みアド
レスカウンタ142が接続されており、更にAND回
路150を介して文字列検索装置20に接続されてい
る。初期設定回路140は信号ENABLE' がローレベルに
なると、出力信号を一旦アクティブ(ローレベル)とす
る。これにより、AND回路150から出力される信
SET が一旦ハイレベルになる。書込みアドレスカウン
タ142は文字列検索装置20及びガベージアドレスコ
ントローラ148に接続されている。
【0107】書込みアドレスカウンタ142は、連想メ
モリセルアレイ26のうちの特定の連想メモリセル列の
アドレスをカウント値として保持しており、このカウン
ト値をアドレスR/W-ADDRESS として文字列検索装置20
及びガベージアドレスコントローラ148へ出力する。
また書込みアドレスカウンタ142は、初期設定回路1
40から入力された信号がローレベルになると、保持し
ているアドレスを「0」(連想メモリセルアレイ26の
先頭の連想メモリセル列のアドレス)にリセットすると
共に、連想メモリセルアレイ26に対するデータの書込
みが行なわれる毎にカウント値(アドレス)をカウント
アップする。
【0108】従って、前述の書込み指示WRITE に従って
書込みバッファ56に保持された文字データが連想メモ
リセルアレイ26に書き込まれる際には、アドレスR/W-
ADDRESS のカウントアップに伴って前記文字データが書
き込まれる連想メモリセル列が順次シフトしていくこと
になる。なお、書込みアドレスカウンタ142がワード
線WLM に接続された連想メモリセル列(連想メモリセル
アレイの末尾の連想メモリセル列)のアドレスを保持し
ている状態で、連想メモリセルアレイ26へのデータの
書込みが行なわれた場合にも、書込みアドレスカウンタ
142はカウント値を「0」にリセットする。
【0109】一方、ガベージアドレスコントローラ14
8は文字列検索装置20に接続されており、文字列検索
装置20から信号ENTIRE-MATCH及びアドレスMATCH-ADDR
ESSが入力される(なお、文字列検索装置20は複数の
連想メモリセル列で比較結果が「一致」であった場合に
は、第1実施例でも説明したようにアドレスMATCH-ADDR
ESS として最も低いアドレスを出力する)。ガベージア
ドレスコントローラ148は、書込みアドレスが一巡し
ていないときに、文字列検索装置20における比較動作
の結果、信号ENTIRE-MATCHがハイレベルに維持されてい
た場合に、書込みアドレスカウンタ142から入力さ
れたアドレスR/W-ADDRESS とアドレスMATCH-ADDRESS と
を比較する。そして、アドレスMATCH-ADDRESS の方が大
きいか等しい場合には、今回の比較動作の結果が無効か
否かを表す出力信号FOUND をアクティブ(ローレベル:
無効を表す)とする。なお、ガベージアドレスコントロ
ーラ148は、文字列圧縮処理が開始される際にも信号
FOUND をローレベルとする。
【0110】ガベージアドレスコントローラ148には
一致長カウンタ144及びデータ出力コントローラ13
8が接続されており、信号FOUND は一致長カウンタ14
4及びデータ出力コントローラ138各々に入力され
る。また、ガベージアドレスコントローラ148は前述
の信号FOUND をAND回路150を介して信号SET
して文字列検索装置20に出力する。
【0111】一致長カウンタ144は、文字列検索装置
20で比較動作が行われた後に、ガベージアドレスコン
トローラ148から入力された信号FOUND がハイレベル
の場合にはカウント値(一致長さ)をカウントアップ
し、信号FOUND がローレベルの場合、すなわち文字列圧
縮処理が開始される際及び今回の比較動作の結果が無効
であった場合にはカウント値を「0」にリセットするよ
うになっている。一致長カウンタ144にはデータ出力
コントローラ138が接続されており、データ出力コン
トローラ138に前記カウント値を一致長M-LEN として
出力する。
【0112】また、文字列検索装置20にはアドレスレ
ジスタ146が接続されている。アドレスレジスタ14
6は文字列検索装置20からアドレスMATCH-ADDRESS が
入力され、これを保持すると共にアドレスS-ADR として
データ出力コントローラ138へ出力する。
【0113】データ出力コントローラ138は、一致長
カウンタ144から出力された一致長M-LEN 及びアドレ
スレジスタ146から出力されたアドレスS-ADR を保持
すると共に、入力された信号FOUND が文字列検索装置2
0で比較動作が行われた後もハイレベルの状態で継続し
ている場合には、次回以降の比較動作後に信号FOUNDが
ローレベルに遷移するか、又はデータ入力コントローラ
136が被圧縮文字列データから取り出す文字データが
被圧縮文字列データの末尾に到達するまでは、入力され
た文字データの出力を停止する。
【0114】そして次回以降の比較動作後に信号FOUND
がローレベルに遷移するか、又は被圧縮文字列データか
ら取り出す文字データが被圧縮文字列データの末尾に到
達した場合には前記保持しているアドレスS-ADR 及びデ
ータM-REN に基づいて、前記出力を停止していた間にデ
ータ入力コントローラ136から入力されたデータを、
別のデータに置き換えて(圧縮して)、圧縮文字列デー
タCOMP-DATA として出力する。なお、前回比較動作が行
われた後の信号FOUND がローレベルでかつ今回比較動作
が行われた後の信号FOUND もローレベルである場合に
は、データ入力コントローラ136から入力されたデー
タをそのまま出力する。
【0115】次に本第3実施例の作用として、文字列圧
縮コントローラ120及び文字列検索装置20により行
なわれる圧縮処理を図11に示すフローチャートを参照
して説明する。
【0116】ステップ250では、圧縮処理を開始する
指示として、信号ENABLE' 及び被圧縮文字列を表す被圧
縮文字列データTEXT-INPUTが入力される。これにより、
前記被圧縮文字列データはデータ入力コントローラ13
6に保持される。また、初期設定回路140から書込み
アドレスカウンタ142及び一致長カウンタ148にリ
セット信号が出力され、各カウンタのカウント値が
「0」にリセットされる。また初期設定回路140から
AND回路150を介して文字列検索装置20へ入力
される信号SET が一旦ハイレベルとされてプリチャージ
コントローラ58に入力される。第1実施例でも説明し
たように、プリチャージコントローラ58では信号SET
がハイレベルになると、クロックSRと同期してマッチ線
をハイレベルとする。
【0117】ステップ252では、データ入力コントロ
ーラ136において圧縮処理が終了したか否かが判定さ
れる。圧縮処理が終了していない場合には、保持してい
る被圧縮文字列データから先頭の1文字に対応する文字
データが取り出されて文字列検索装置20の書込みバッ
ファ56に出力される。さらにデータ入力コントローラ
136から検索指示SEARCHが出力される。これにより、
文字列検索装置20のタイミングコントローラ50から
クロックSR及びクロックWT-SR が出力され、第1実施例
と同様に連想メモリセル列毎に比較動作が行なわれる。
次のステップ258では、データ出力コントローラ13
8において比較結果が「一致」となった連想メモリセル
列が有るか否か、すなわち信号FOUND がハイレベルか否
かが判定される。
【0118】ところで、この最初の比較動作では連想メ
モリセルアレイ26の各連想メモリセル28に文字デー
タを書き込んでいないので、各連想メモリセル28に記
憶されているデータは不定であり、比較結果が「一致」
となった連想メモリセル列があった(信号ENTIRE-MATCH
がハイレベルに維持されていた)としても偶然である。
本第3実施例では、書込みアドレスが一巡していないと
きに、ガベージアドレスコントローラ148において、
信号ENTIRE-MATCHがハイレベルに維持されていた場合に
入力されたアドレスR/W-ADDRESS とアドレスMATCH-AD
DRESS とを比較し、アドレスMATCH-ADDRESS の方が大き
か等しい場合には今回の比較動作の結果は無効である
として、信号FOUND をローレベル(「無効」を表す)と
する。従って、この時点ではステップ258の判定が否
定されてステップ260へ移行する。
【0119】ステップ260では、データ出力コントロ
ーラ138において、一致長カウンタ144から入力さ
れて保持している一致長さを表すカウント値M-LEN が
「2」よりも大きいか否か、すなわち過去2回の比較動
作で何れも「有効」を表す信号FOUND が出力されたか否
かが判定される。この時点では、保持している一致長M-
LEN は「0」であるのでステップ260の判定が否定さ
れ、ステップ266でデータ入力コントローラ136か
らデータ出力コントローラ138に入力された文字デー
タ、すなわち書込みバッファ56に保持された文字デー
タが圧縮データCOMP-DATとして出力される。
【0120】次のステップ268では、データ入力コン
トローラ136から書込み指示WRITE が出力される。こ
れにより、書込みバッファ56に保持された文字データ
が連想メモリセルアレイ26に書き込まれる。なお、文
字データが書き込まれる連想メモリセル列は、書込みア
ドレスカウンタ142に保持されているアドレス(この
ときは「0」)に対応する連想メモリセル列である。
【0121】ステップ270ではローレベルの信号FOUN
D が、NAND回路150を介してハイレベルの信号SE
T として文字列検索装置20に入力され、これによりプ
リチャージコントローラ58では各マッチ線をハイレベ
ルにチャージする。次のステップ272では書込みアド
レスカウンタ142でカウント値のカウントアップが行
なわれ、ステップ252へ戻る。
【0122】このように、ステップ258、260の判
定が否定されている間は、書込みバッファ56に保持さ
れた文字データが、データ出力コントローラ138から
圧縮文字列データCOMP-DATA として出力されると共に連
想メモリセルアレイ26に記憶される。また、文字デー
タを書き込む連想メモリセル列のアドレスは、前述の書
込みアドレスカウンタ142のカウント値カウントア
ップに伴って比較動作が行われる毎に順次シフトされ
る。
【0123】一方、書込みバッファ56に保持された文
字データと何れかの連想メモリセル列に記憶された文字
データとが一致した場合には、ガベージアドレスコント
ローラ148から出力される信号FOUND がハイレベル
(「有効」を表す)となり、ステップ258の判定が肯
定される。この場合にはステップ266のようにデータ
の出力は行なわれず、一致長カウンタ144に「有効」
を表す信号FOUND が入力されることによりカウント値が
カウントアップされ、このカウント値が一致長M-LEN と
してデータ出力コントローラ138に保持される。
【0124】またステップ274では、連想メモリセル
アレイ26への文字データの書込みがステップ268と
同様にして行なわれる。ステップ276では、比較動作
後マッチ線がハイレベルに維持されている連想メモリ列
の次段の連想メモリ列のマッチ線のみがハイレベルとさ
れ、それ以外の連想メモリ列はマッチ線がローレベルと
される。次のステップ278では書込みアドレスカウン
タ142でカウント値のカウントアップが行なわれ、ス
テップ252へ戻る。
【0125】このように、ステップ258の判定が繰り
返し肯定されている間は、連想メモリセルアレイ26へ
の文字データの書込み及び一致長M-LEN のカウントアッ
プのみが繰り返し行われる。ところで、ステップ258
の判定が2回以上繰り返し肯定される場合は、書込みバ
ッファ56に連続して入力された文字データから成る文
字列が連想メモリセルアレイ26にも記憶されていた場
合、すなわち被圧縮文字列の中に2文字以上の文字で構
成される繰り返し文字列が発見された場合である。ステ
ップ274乃至278の処理が2回以上繰り返された後
にステップ258の判定が否定された場合、すなわち過
去2回の比較動作では比較結果が「一致」となった連想
メモリセル列が有りかつ今回の比較動作では比較結果が
「一致」となった連想メモリセル列が無かった場合には
次のステップ260の判定も肯定され、ステップ262
へ移行する。
【0126】ステップ262ではデータ出力コントロー
ラ138において、上記で発見された繰り返し文字列を
圧縮するための圧縮コードを求める。本第3実施例で
は、既に出力された前記繰り返し文字列と同一の文字列
の位置を指し示すポインタを表す圧縮コードAと、繰り
返し文字列の長さを表す圧縮コードBと、で構成された
圧縮コードを用いており、データ出力コントローラ13
8が保持しているアドレスS-ADR と一致長M-LEN との差
(S-ADR − M-LEN) を圧縮コードAとし、一致長M-LEN
を圧縮コードBとする。更に次のステップ264では上
記で求めた圧縮コードA、圧縮コードBを出力する。
【0127】なお、この圧縮コードを出力するにあた
り、圧縮した文字列を復元する際に圧縮コードと文字デ
ータとを区別できるようにするために、データ出力コン
トローラ138は、文字データと圧縮コードとの間に区
切りを表すコードを挿入する。これにより、データ出力
コントローラ138から出力される圧縮文字列データCO
MP-DATA の長さは、文字列圧縮コントローラ120に入
力された被圧縮文字列データTEXT-INNPUT よりも短くな
る。上記処理を繰り返すことによって被圧縮文字列デー
タTEXT-INNPUT が圧縮文字列データCOMP-DATA に変換さ
れて出力されることになる。
【0128】上記圧縮処理について、図12及び図13
を参照し被圧縮文字列「あらあらあらま」を圧縮する場
合を例に更に具体的に説明する。文字列圧縮コントロー
ラ120に被圧縮文字列「あらあらあらま」を表す被圧
縮文字列データTEXT-INPUTが入力されると、図12
(A)に示すように、被圧縮文字列の先頭の文字「あ」
に対応する文字データが、書込みバッファ56には保持
されると共にデータ出力コントローラ138に出力され
る。なお、このとき書込みアドレスカウンタ142及び
一致長カウンタ148のカウント値が「0」にリセット
されており、全てのマッチ線がハイレベルにチャージさ
れている。従って、文字列検索装置20へ検索指示SEAR
CHが出力されると、全ての連想メモリセル列で比較動作
が行なわれる(図においてハッチングで示す部分は、マ
ッチ線がハイレベルとなっている連想メモリセル列を表
している)。
【0129】前記比較動作を行った後に信号ENTIRE-MAT
CHがハイレベルで維持されていたとしても、前述のよう
に書込みアドレスカウンタ142に保持されているアド
レスR/W-ADDRESS が「0」であるので、アドレスMATCH-
ADDRESS がアドレスR/W-ADDRESS 以下となることはな
く、図12(B)に示すようにガベージアドレスコント
ローラ148から出力される信号FOUND はローレベル
(すなわち「無効」、図では「0」で表す)となる。こ
れにより、書込みバッファ56に保持されていた「あ」
の文字データは、データ出力コントローラ138から圧
縮文字列データCOMP-DATA として出力されると共に、連
想メモリセルアレイ26のアドレス「0」の連想メモリ
セル列に書き込まれる。
【0130】次に図12(B)に示すように、2番目の
文字「ら」の文字データが書込みバッファ56に保持さ
れ、全てのマッチ線がハイレベルとされた後に全ての連
想メモリセル列で比較動作が行われる。なおこの時点で
はアドレスカウンタ142に保持されているアドレスR/
W-ADDRESS が「1」にカウントアップされている。この
比較動作でガベージアドレスコントローラ148から
「有効」を表す信号FOUND が出力されるのは、書込みバ
ッファ56に保持された文字データとアドレス「0」の
連想メモリセル列に記憶された文字データとが一致した
場合であるが、図12(C)では一致していないので信
号FOUND はローレベルとなる(図12(D)参照)。こ
れにより、「ら」の文字データがデータ出力コントロー
ラ138から出力されると共に、連想メモリセルアレイ
26のアドレス「1」に書き込まれる。
【0131】図12(E)に示すように、次に3番目の
文字「あ」の文字データが書込みバッファ56に保持さ
れ、全てのマッチ線がハイレベルとされた後に全ての連
想メモリセル列で比較動作が行われる。このときは書込
みバッファ56に保持された文字データがアドレス
「0」の連想メモリセル列に記憶された文字データと一
致しており、MATCH-ADDRESS が「0」となるので、図1
2(F)に示すようにガベージアドレスコントローラ1
48から出力される信号FOUND がハイレベル(図では
「1」で表す)となる。これにより、データ出力コント
ローラ138では文字データの出力は行われず、書込み
バッファ56に保持された文字データは連想メモリセル
アレイ26のアドレス「2」に書き込まれる。また、一
致長M-LEN は「1」にカウントアップされる。
【0132】次に、図12(G)に示すように4番目の
文字「ら」の文字データが書込みバッファ56に保持さ
れ、文字データが一致したアドレスの次のアドレス(ア
ドレス「1」)のマッチ線のみがハイレベルとされて、
アドレス「1」の連想メモリセル列でのみ比較動作が行
われる。この比較動作の結果も「一致」であるので、図
12(H)に示すように信号FOUND はハイレベルで継続
し、データ出力コントローラ138では文字データの出
力は行われず、書込みバッファ56に保持された文字デ
ータは連想メモリセルアレイ26のアドレス「3」に書
き込まれる。また、一致長さを表す一致長M-LEN は
「2」にカウントアップされる。
【0133】更に、図13(A)に示すように5番目の
文字「あ」の文字データが書込みバッファ56に保持さ
れ、アドレス「2」のマッチ線のみがハイレベルとされ
て比較動作が行われる。この比較動作の結果も「一致」
であり、図13(B)に示すように信号FOUND はハイレ
ベルで継続し、データ出力コントローラ138では文字
データの出力は行われず、書込みバッファ56に保持さ
れた文字データは連想メモリセルアレイ26のアドレス
「4」に書き込まれ、一致長M-LEN は「3」にカウント
アップされる。
【0134】次に図13(C)に示すように6番目の文
字「ら」の文字データが書込みバッファ56に保持さ
れ、アドレス「3」のマッチ線のみがハイレベルとされ
て比較動作が行われる。この比較結果も「一致」であ
り、図13(D)に示すように信号FOUND はハイレベル
で継続し、データ出力コントローラ138では文字デー
タの出力は行われず、書込みバッファ56に保持された
文字データは連想メモリセルアレイ26のアドレス
「4」に書き込まれ、一致長M-LEN は「4」にカウント
アップされる。
【0135】次に図13(E)に示すように最後の文字
「ま」の文字データが書込みバッファ56に保持され、
アドレス「4」のマッチ線のみがハイレベルとされて比
較動作が行われる。この比較結果は「不一致」となり、
図13(F)に示すように信号FOUND がローレベルに遷
移する。このとき、データ出力コントローラ138では
保持している一致長M-LEN が「4」(すなわち「2」以
上)であるので、今まで出力しなかった文字列(繰り返
し文字列)を圧縮コードA及び圧縮コードBに置き換え
て出力する。
【0136】具体的には、データ出力コントローラ13
8で保持しているアドレスS-ADR が「4 」、一致長さを
表す一致長M-LEN も「4」であるので、既に圧縮文字列
データCOMP-DATA として出力された文字列のうち前記繰
り返し文字列と同一の文字列の先頭位置は、S-ADR − M
-LEN=0であり、図13(F)に示すように、文字列の
先頭位置「0」を表す圧縮コードA(図では「(0) 」で
示す)を出力する。次に図13(G)に示すように、繰
り返し文字列の長さ「4」を表す圧縮コードB(図では
「(4) 」で示す)を出力する。
【0137】次に、図13(H)に示すように書込みバ
ッファ56に保持されている「ま」の文字データがデー
タ出力コントローラ138から出力されると共に、連想
メモリセルアレイ26のアドレス「6」に書き込まれ、
一致長M-LEN が「0」にリセットされることによって圧
縮処理が完了する。
【0138】なお、以上の動作からも明らかではある
が、例えば被圧縮文字列が「あらあらあらまあ」であっ
た場合には、上記動作に加えて更に書込みバッファ56
に文字「あ」を入力して比較動作を行なわせればよく、
被圧縮文字列の長さが変化しても比較動作の繰り返し回
数が変化するのみであり、非常に短くかつ一定の処理時
間で被圧縮文字列の圧縮を行うことができる。また、被
圧縮文字列の長さが長大で、そのデータ量が連想メモリ
セルアレイ26の記憶容量よりも大きい場合にも、本実
施例のように書込みアドレスが連想メモリセルアレイ2
6の最終アドレスに到達した場合には書込みアドレスを
「0」に戻し、連想メモリセルアレイ26をリングバッ
ファとして用いて文字データを書き込むようにすればよ
く、記憶容量の大きな連想メモリセルアレイを用いる必
要はない。
【0139】また、連想メモリセルアレイ26の記憶容
量は、データの圧縮率の点からもあまり大きくしないこ
とが好ましい。すなわち、連想メモリセルアレイ26の
記憶容量を大きくすると、1度に記憶できるデータ量が
大きくなるので、比較動作において「一致」との比較結
果が出力される確率が高くなる。しかしながら、あまり
大きくし過ぎると、アドレスMATCH-ADDSRESSを表すため
のビット数が大きくなるので、圧縮コードAのビット数
が増加し、圧縮率が低下する。
【0140】本発明者等は、一例として連想メモリセル
列の記憶容量が1バイトの場合にはアドレスに12ビット
を割当て、連想メモリセルアレイ26の記憶容量を212
=4096バイトとする程度を適当な記憶容量としている。
また、日本語テキストは1文字が2バイトで表わされて
いるので、日本語テキストの圧縮を行う場合には連想メ
モリセル列の記憶容量を2バイトとした方が効率が良
く、この場合に連想メモリセルアレイ26の記憶容量を
前記と同じ4096バイトとすれば、アドレスを11ビットで
表すことができる。
【0141】〔第4実施例〕次に本発明の第4実施例に
ついて説明する。なお、第3実施例と同一の部分には同
一の符号を付し、説明を省略する。
【0142】本第4実施例に係るデータ出力コントロー
ラ138では、前回の比較動作後の信号FOUND のレベル
がハイレベルであり、今回の比較動作後に信号FOUND が
ローレベルに遷移した場合に、データ入力コントローラ
136から入力された文字データの出力を停止すると共
に、文字列検索装置20への書込み指示WRITE の出力を
禁止する制御信号をデータ入力コントローラ136に出
力(信号線の図示は省略)する。これにより、書込みバ
ッファ56に保持されている文字データに対し、全ての
連想メモリセル列に記憶されている文字データとの比較
が行われることになる。
【0143】本第4実施例の圧縮処理を図14に示すフ
ローチャートを参照して更に説明すると、今回の比較動
作で比較結果が「一致」となった連想メモリセル列が無
く、ステップ258の判定が否定された場合に、次のス
テップ260の判定が否定されるか、又はステップ26
0の判定が肯定されてステップ262及びステップ26
4の処理が行われた後に、ステップ265で前回の比較
動作では比較結果が「一致」となった連想メモリセル列
が有るか否かがデータ出力コントローラ138で判定さ
れる。この判定は、具体的には一致長M-LEN が「1」以
上か否かを判断することによって行うことができる。
【0144】前回の比較動作で比較結果が「一致」とな
った連想メモリセル列が無く、ステップ265の判定が
否定された場合には、今回の比較動作で書込みバッファ
56に保持されている文字データに対し、全ての連想メ
モリセル列に記憶されている文字データとの比較を行っ
ているので、第3実施例で説明したようにステップ26
6〜ステップ272の処理を行ってステップ252へ戻
るが、前回の比較動作で比較結果で比較結果が一致とな
った連想メモリセルが有った場合には、今回の比較動作
では、書込みバッファ56に保持されている文字データ
に対し、特定の連想メモリセル列に記憶されている文字
データのみと比較しており、書込みバッファ56に保持
されている文字データが、今回の比較動作で比較を行っ
ていない連想メモリセル列に記憶されている文字データ
に一致している可能性がある。
【0145】このため、データ出力コントローラ138
は、データ入力コントローラ136から入力された文字
データの出力を停止し、文字列検索装置20への書込み
指示WRITE の出力を禁止する制御信号をデータ入力コン
トローラ136に出力する。これにより、ステップ2
にも示すように、今回の比較動作で比較結果が「一
致」となった連想メモリセル列が無く信号FOUND がロー
レベルに遷移することに伴って全てのマッチ線がハイレ
ベルにチャージされるが、書込みバッファ56に保持さ
れている文字データの書換えは行われず、ステップ25
6へ戻ってデータ入力コントローラ136から検索指示
SEARCHが出力され、書込みバッファ56に保持されてい
る文字データに対し全ての連想メモリセル列に記憶され
ている文字データとの比較が行われる。
【0146】上記により、被圧縮文字列データTEXT-INP
UTに各々2文字分以上の長さの繰り返し文字列データが
隣接して存在していた場合にも、これらを繰り返し文字
列データとして全文字分検出することができ、被圧縮文
字列データTEXT-INPUTに含まれる全ての繰り返し文字列
を漏れなく検出することができる。これにより、第3実
施例の圧縮処理と比較しても圧縮率が向上する、という
効果が得られる。
【0147】なお、更に圧縮率の向上を図るために、連
想メモリセルアレイに書込んだデータの長さに応じてア
ドレスを表すためのビット数を適宜変化させるようにし
てもよい。例えば前述のように連想メモリセル列の記憶
容量を1バイトとした場合には、連想メモリセルアレイ
に 256バイトのデータが書き込まれるまでの間はアドレ
ッシングに必要なビット数は「8」であり、1024バイト
のデータが書込まれるまでの間は前記必要なビット数は
「10」で済むので、これを利用すれば圧縮率を向上させ
ることができる。
【0148】なお、更に圧縮率の向上を図るために、連
想メモリセルアレイに書込んだデータの長さに応じて
繰り返し文字列と同一の文字列の位置を指し示すポイン
タを表す符号(圧縮コードA)のビット数、更には繰り
返し文字列の長さを表す符号(圧縮コードB)のビット
を適宜変化させるようにしてもよい。例えば、前述の
ように連想メモリセル列の記憶容量を1バイトとした場
合、連想メモリセルアレイに 256バイトのデータが書き
込まれるまでの間はアドレッシングに必要なビット
、すなわち前記繰り返し文字列と同一の文字列の位置
を指し示すために必要なビット数は「8」であり、1024
バイトのデータが書込まれるまでの間は前記必要なビッ
ト数は「10」で済む。また、繰り返し文字列の長さにつ
いても、その最大値は連想メモリセルアレイに書込まれ
たデータの量に応じて変化する。
【0149】従って、連想メモリセルアレイに記憶され
たデータの量が少ないときには圧縮コードA及び圧縮コ
ードBのビット数を少なくできるので、圧縮処理を開始
するときには圧縮コードA及び圧縮コードBのビット数
を少なくしておき、連想メモリセルアレイに書き込まれ
たデータ量の増加に応じて圧縮コードA及び圧縮コード
Bのビット数を増加させることにより、被圧縮文字列デ
ータTEXT-INPUTの圧縮率を向上させることができる。
【0150】また、上記では繰り返し文字列の長さが
「2文字」以上の場合に圧縮コードに置き換えるように
していたが、この基準値をさらに長くしてもよい。な
お、前記基準値を「1文字」としていないのは、上記で
1文字一致しただけで圧縮コードに置き換えると高い圧
縮率が得られないためであり、前記基準値としては2文
字以上の長さが好ましい。
【0151】また、被圧縮文字列データを連想メモリセ
ル列へアドレスの降順に書き込む(末尾から書き込む)
場合には、プライオリティエンコーダ60は複数本のマ
ッチ線がハイレベルとなっていたときに、最も高いアド
レスをアドレスMATCH-ADDRESS として出力することが好
ましい。
【0152】なお、圧縮文字列データCOMP-DATA を被圧
縮文字列データに復元する場合、文字列圧縮コントロー
ラ120は、圧縮文字列データCOMP-DATA から被圧縮文
字列データへの復元を行いながら、圧縮データCOMP-DAT
A から既に復元した被圧縮文字列データを連想メモリセ
ル28に一時的に記憶させ、該記憶させた被圧縮文字列
データを用いて、既に被圧縮文字列データへの復元を行
った圧縮文字列データに続く圧縮文字列データを被圧縮
文字列データに復元することができる。
【0153】〔第5実施例〕次に本発明の第5実施例に
ついて説明する。なお、第3実施例と同一の部分には同
一の符号を付し、説明を省略する。本第5実施例では図
15に示すようにガベージアドレスコントローラ148
が省略されかつNAND回路150に代えてNOT回路
151が設けられており、更に図16に示すガベージア
ドレス制御回路124がプリチャージコントローラ58
0 〜58M に各々接続されている。また、一致長カウン
タ144は初期設定回路140に接続されており、初期
設定回路140からリセット信号が入力されると、カウ
ント値を「0」にリセットする。
【0154】ガベージアドレス制御回路124は、互い
の入力端と出力端とが接続された2個のNOT回路12
6、128から成るラッチを備えている。NOT回路1
26の出力端はMOSFET130のドレインに接続さ
れている。MOSFET130のゲートはワード線WLに
接続されており、ソースは接地されている。また、NO
T回路128の出力端はMOSFET132のドレイン
に接続されている。MOSFET132のゲートはコン
トローラ22に接続されており、MOSFET132の
ゲートには信号SET が入力される。MOSFET132
のソースは接地されている。
【0155】また、NOT回路128の出力端(以下、
NOT回路128から出力される信号を信号VALID とい
う)はAND回路134の2個の入力端の一方に接続さ
れており、AND回路134の他方の入力端はマッチ線
に接続されている。AND回路134の出力端は2つに
分岐されており、一方はプライオリティエンコーダ60
(図2参照)に接続されており、他方は次段のプリチャ
ージコントローラ58のNOR回路70(図4参照)に
接続されている。
【0156】圧縮処理を開始する際、文字列検索装置2
0に信号SET'が入力されると、ガベージアドレス制御回
路124の各々では、入力された信号SET によってMO
SFET132がオンし、NOT回路126の入力側が
ローレベルとされ、NOT回路126、128によって
この状態(信号VALID がローレベルの状態)が保持され
る。ガベージアドレス制御回路124から出力される信
号VALID がローレベルの状態では、AND回路134か
ら出力される信号が必ずローレベルとなるので、データ
が書き込まれていないすなわち記憶しているデータが不
定の連想メモリセル列における比較動作の結果が信号EN
TIRE-MATCH及びアドレスMATCH-ADDRESSに影響を及ぼす
ことはない。
【0157】また、特定の連想メモリセル列へのデータ
の書込みが行われるときには、前記特定の連想メモリセ
ル列に接続されたワード線WLがハイレベルとされる。こ
れにより、ガベージアドレス制御回路124のMOSF
ET130がオンし、NOT回路128の入力側がロー
レベルとなり、NOT回路126、128によってこの
状態(信号VALID がハイレベルの状態)が保持される。
従って、全てのマッチ線がハイレベルにチャージされた
としても、比較結果がプライオリティエンコーダ60及
びOR回路62に出力される連想メモリセル列はデータ
が書き込まれたセル列のみであり、データが書き込まれ
ていないセル列は実質的には比較動作が停止された状態
とされる。
【0158】なお、データが書込まれていない連想メモ
リセル列から出力される比較結果を排除する方法は、上
記のようにガベージアドレスコントローラ148を設け
たり、又はプリチャージコントローラ58の各々にガベ
ージアドレス制御回路124を設けることに限定される
ものではなく、例えば、初期設定において、データの圧
縮及び復元に先立ち、予め定められた一定のデータを連
想メモリセルアレイ26の全ての連想メモリセル列に毎
回記憶させることで、データが書込まれていない連想メ
モリセル列から「一致」との比較結果が出力されること
を防止することも可能である。
【0159】また、本第5実施例において、プライオリ
ティエンコーダ60を、複数の連想メモリセル列のマッ
チ線がハイレベルとなっていた場合に、アドレスMATCH-
ADDRESS として前記複数の連想メモリセル列のうち最も
新しく文字データが書き込まれた連想メモリセル列のア
ドレスを出力するように構成すると共に、アドレスレジ
スタ146を、アドレスS-ADR としてアドレスMATCH-AD
DRESS とアドレスR/W-ADDRESS との差(すなわち繰り返
し文字列と既に出現した同一文字列との隔たり)を出力
するように構成してもよい。
【0160】これは、文字列圧縮コントローラ120か
ら文字列検索装置20のアドレスデコーダ52に入力さ
れるアドレスR/W-ADDRESS が、プライオリティエンコー
ダ60及びアドレスレジスタ146にも入力されるよう
に信号線を接続し、プライオリティエンコーダ60では
アドレスR/W-ADDRESS と文字データの書込み順序(アド
レスの昇順又は降順)とに基づいて、マッチ線がハイレ
ベルとなった複数の連想メモリセル列のアドレスのう
ち、最も新しく文字データが書き込まれた連想メモリセ
ル列のアドレスを判断し、アドレスレジスタ146では
アドレスMATCH-ADDRESS とアドレスR/W-ADDRESS との差
を演算して出力するようにすることで実現できる。
【0161】プライオリティエンコーダ60及びアドレ
スレジスタ146を上記のように構成すると、繰り返し
文字列と同一文字列が複数検出された場合にアドレスレ
ジスタ146から出力されるアドレスS-ADR は、繰り返
し文字列との隔たりが最小の同一文字列と、繰り返し文
字列と、の隔たりを表すデータ、すなわち繰り返し文字
列と複数の同一文字列との各々の隔たりの最小値とな
る。データ出力コントローラ138は圧縮コードAとし
て(S-ADR − M-REN)を演算して出力するが、アドレス
レジスタ146から入力されたアドレスS-ADR の値に応
じて圧縮コードAのビット数を変化、更に詳しくは、値
が小さければビット数を少なくし、値が大きければビッ
ト数を多くするようにデータ出力コントローラ138を
構成すれば、圧縮コードAとしてビット数の少ないデー
タが出力される確率が高くなる。これは、一般的に知ら
れているように、元データに含まれる繰り返しデータが
元データ上で比較的近い位置にある確率が高いためであ
る。これにより、被圧縮文字列データTEXT-INPUTの圧縮
率を向上させることができる。
【0162】なお、上記ではデータとして文字列を例に
説明したが、本発明はこれに限定されるものではなく、
画像データ、音声データ、文書データ、実行形式のプロ
グラム等のような様々なデータを対象として処理を行う
ことが可能である。
【0163】また、上記ではLZ77に準じたアルゴリズム
によって圧縮処理を行っていたが、本発明は上記で説明
した圧縮アルゴリズムに限定されるものではなく、検索
を必要とする種々の圧縮アルゴリズムに適用可能するこ
とが可能である。
【0164】
【発明の効果】以上説明したように請求項1記載の発明
は、単位データを記憶する複数の記憶手段と、記憶手段
に記憶された単位データと入力された単位データとが一
致しているときに一致信号を出力する複数の比較手段
と、を備えた記憶装置に、複数の単位データから成る被
検索データを単位データに分けて記憶手段に所定の順番
に記憶し、所定数の単位データで構成された検索データ
から特定の単位データを取り出して記憶装置の複数の比
較手段の各々に入力した後に、検索データからの取り出
し位置を移動させて単位データを取り出し、一致信号が
出力された比較手段と隣り合っている比較手段に前記取
り出した単位データを入力する、ことを繰り返して検索
するようにしたので、データの検索を高速で行なうこと
ができる、という優れた効果が得られる。
【0165】請求項4記載の発明及び請求項12記載の
発明は、所定数の単位データで構成された元データから
単位データを取り出して記憶装置の比較手段に入力した
後に、取り出した単位データを記憶手段に付与されたア
ドレスの昇順又は降順に記憶手段に記憶させることを繰
り返すと共に、一致信号が比較手段から出力されていた
状態から一致信号が出力されなくなった場合には、前記
一致信号が出力されていた状態で記憶手段に記憶された
単位データを所定の符号に置き換えて圧縮データとして
出力するようにしたので、データの圧縮を高速で行なう
ことができる、という優れた効果が得られる。
【0166】請求項5記載の発明及び請求項13記載の
発明では、請求項4及び請求項12の発明において、一
致信号が出力されていた状態から一致信号が出力されな
くなった場合に、取り出した単位データを圧縮データと
して出力することに代えて、取り出した単位データを再
び比較手段の各々に入力するようにしたので、元データ
に含まれる全ての繰り返しデータを検出することがで
き、元データの圧縮率が更に向上する、という優れた効
果が得られる。
【図面の簡単な説明】
【図1】第1実施例のマイクロコンピュータの概略構成
を示すブロック図である。
【図2】第1実施例に係る文字列検索装置の概略構成を
示すブロック図である。
【図3】連想メモリの単位セルの構成の一例を示す回路
図である。
【図4】プリチャージ回路の構成を示す回路図である。
【図5】第1実施例におけるメインコントローラの動作
を説明するためのフローチャートである。
【図6】(A)乃至(D)は第1実施例における検索動
作を説明するための概念図である。
【図7】連想メモリの単位セルの構成の他の例を示す回
路図である。
【図8】第2実施例に係る文字列検索装置の概略構成を
示すブロック図である。
【図9】第2実施例において文字データをビット毎に比
較する処理を説明するための概念図である。
【図10】第3実施例の文字列圧縮コントローラの概略
構成を示すブロック図である。
【図11】第3実施例の作用を説明するフローチャート
である。
【図12】(A)乃至(H)は第3実施例における圧縮
動作を説明するための概念図である。
【図13】(A)乃至(H)は第3実施例における圧縮
動作を説明するための概念図である。
【図14】第4実施例の作用を説明するフローチャート
である。
【図15】第5実施例の文字列圧縮コントローラの概略
構成を示すブロック図である。
【図16】第5実施例に係る文字列検索回路に付加され
るガベージ制御回路の構成を示す回路図である。
【図17】(A)は従来のデータ検索回路の概略構成を
示すブロック図、(B)は(A)の回路の一部を連想メ
モリに置き換えた検索回路の概略構成を示すブロック図
【符号の説明】 20 文字列検索装置 22 コントローラ 26 連想メモリセルアレイ 28 連想メモリセル 104 RAMセル 106 比較器 120 文字列圧縮コントローラ 124 ガベージアドレス制御回路 136 データ入力コントローラ 138 データ出力コントローラ 142 書込みアドレスカウンタ 144 一致長カウンタ 148 ガベージアドレスコントローラ
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図2
【補正方法】変更
【補正内容】
【図2】
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】変更
【補正内容】
【図5】
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】図8
【補正方法】変更
【補正内容】
【図8】
【手続補正5】
【補正対象書類名】図面
【補正対象項目名】図10
【補正方法】変更
【補正内容】
【図10】
【手続補正6】
【補正対象書類名】図面
【補正対象項目名】図14
【補正方法】変更
【補正内容】
【図14】
【手続補正7】
【補正対象書類名】図面
【補正対象項目名】図15
【補正方法】変更
【補正内容】
【図15】
【手続補正8】
【補正対象書類名】図面
【補正対象項目名】図16
【補正方法】変更
【補正内容】
【図16】
───────────────────────────────────────────────────── フロントページの続き (72)発明者 新島 秀人 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 大和事業所内

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 所定ビット長のデータから成る単位デー
    タを記憶する複数の記憶手段と、前記記憶手段に対応し
    て設けられ記憶手段に記憶された単位データと入力され
    た単位データとが一致しているときに一致信号を出力す
    る複数の比較手段と、を備え、複数の単位データから成
    る被検索データを前記複数の記憶手段に単位データに分
    けて所定の順番に記憶した記憶装置と、 所定数の単位データで構成された検索データから特定の
    単位データを取り出して前記記憶装置の複数の比較手段
    の各々に入力した後に、検索データからの取り出し位置
    を移動させて単位データを取り出し、一致信号が出力さ
    れた比較手段と隣り合っている比較手段に前記取り出し
    た単位データを入力する、ことを繰り返して検索する制
    御手段と、 を含むデータ検索装置。
  2. 【請求項2】 前記記憶装置は単位データに分けた被検
    索データを前記複数の記憶手段に付与されたアドレスの
    昇順に記憶手段に記憶し、前記制御手段は、前記単位デ
    ータの取り出し位置を前記検索データの先頭から末尾側
    へ前記所定ビット長ずつ移動させながら単位データを取
    り出すと共に、対応する記憶手段のアドレスが前記一致
    信号が出力された比較手段と隣り合っている比較手段
    に、前記取り出した単位データを入力することを特徴と
    する請求項1記載のデータ検索装置。
  3. 【請求項3】 前記記憶装置は単位データに分けた被検
    索データを前記複数の記憶手段に付与されたアドレスの
    降順に記憶手段に記憶し、前記制御手段は、前記単位デ
    ータの取り出し位置を前記検索データの先頭から末尾側
    へ前記所定ビット長ずつ移動させながら単位データを取
    り出すと共に、対応する記憶手段のアドレスが前記一致
    信号が出力された比較手段と隣り合っている比較手段
    に、前記取り出した単位データを入力することを特徴と
    する請求項1記載のデータ検索装置。
  4. 【請求項4】 所定ビット長のデータから成る単位デー
    タを記憶する複数の記憶手段と、前記記憶手段に対応し
    て設けられ記憶手段に記憶された単位データと入力され
    た単位データとが一致しているときに一致信号を出力す
    る複数の比較手段と、を備えた記憶装置と、 所定数の単位データで構成された元データから特定の単
    位データを取り出して前記記憶装置の複数の比較手段の
    各々に入力した後に、一致信号が出力された場合には、
    前記取り出した単位データを記憶手段に付与されたアド
    レスの昇順又は降順に記憶手段に記憶させた後に前記取
    り出した単位データと隣り合っている単位データを取り
    出して前記一致信号が出力された比較手段と隣り合って
    いる比較手段に入力し、一致信号が出力されなかった場
    合には、前記取り出した単位データを圧縮データとして
    出力すると共に前記アドレスの昇順又は降順に記憶手段
    に記憶させた後に前記取り出した単位データと隣り合っ
    ている単位データを取り出して比較手段の各々に入力
    し、一致信号が出力されていた状態から一致信号が出力
    されなくなった場合には、前記一致信号が出力されてい
    た状態で記憶手段に記憶された単位データを所定の符号
    に置き換えて圧縮データとして出力し、前記取り出した
    単位データを圧縮データとして出力すると共に前記アド
    レスの昇順又は降順に記憶手段に記憶させ、前記取り出
    した単位データと隣り合っている単位データを取り出し
    て比較手段の各々に入力する、ことを繰り返し、元デー
    タを前記圧縮データに圧縮して出力する制御手段と、 を含むデータ圧縮装置。
  5. 【請求項5】 所定ビット長のデータから成る単位デー
    タを記憶する複数の記憶手段と、前記記憶手段に対応し
    て設けられ記憶手段に記憶された単位データと入力され
    た単位データとが一致しているときに一致信号を出力す
    る複数の比較手段と、を備えた記憶装置と、 所定数の単位データで構成された元データから特定の単
    位データを取り出して前記記憶装置の複数の比較手段の
    各々に入力した後に、一致信号が出力された場合には、
    前記取り出した単位データを記憶手段に付与されたアド
    レスの昇順又は降順に記憶手段に記憶させた後に前記取
    り出した単位データと隣り合っている単位データを取り
    出して前記一致信号が出力された比較手段と隣り合って
    いる比較手段に入力し、一致信号が出力されなかった場
    合には、前記取り出した単位データを圧縮データとして
    出力すると共に前記アドレスの昇順又は降順に記憶手段
    に記憶させた後に前記取り出した単位データと隣り合っ
    ている単位データを取り出して比較手段の各々に入力
    し、一致信号が出力されていた状態から一致信号が出力
    されなくなった場合には、前記一致信号が出力されてい
    た状態で記憶手段に記憶された単位データを所定の符号
    に置き換えて圧縮データとして出力し、前記取り出した
    単位データを再び比較手段の各々に入力する、ことを繰
    り返し、元データを前記圧縮データに圧縮して出力する
    制御手段と、 を含むデータ圧縮装置。
  6. 【請求項6】 前記制御手段は、前記記憶装置の全ての
    記憶手段に単位データを記憶させた後に、前記単位デー
    タを書き込む記憶手段のアドレスを先頭または末尾に戻
    して記憶させることを特徴とする請求項4又は請求項5
    記載のデータ圧縮装置。
  7. 【請求項7】 前記制御手段は、比較手段から一致信号
    が出力された回数を計数する計数手段を備え、前記計数
    手段によって計数された回数及び一致信号が出力された
    比較手段に対応する記憶手段のアドレスを用いて前記所
    定の符号を生成することを特徴とする請求項4又は請求
    項5記載のデータ圧縮装置。
  8. 【請求項8】 比較手段から一致信号が出力された場合
    に、前記記憶装置における単位データが記憶された領域
    と単位データが記憶されていない領域との境界アドレス
    及び前記比較手段に対応する記憶手段のアドレスに基づ
    いて、前記比較手段に対応する記憶手段が前記単位デー
    タが記憶されていない領域に含まれる場合には前記比較
    手段から出力された一致信号を無効とする無効制御手段
    を備えることを特徴とする請求項4又は請求項5記載の
    データ圧縮装置。
  9. 【請求項9】 前記記憶装置の記憶手段に対応して設け
    られ元データから取り出された単位データが記憶手段に
    記憶されたか否かを表す情報を保持する保持手段と、 記憶手段に対応して設けられ前記保持手段に保持された
    情報に基づいて元データから取り出された単位データが
    前記記憶手段に記憶されていない場合には前記比較手段
    から出力される一致信号を無効とする無効制御手段と、 を更に備えることを特徴とする請求項4又は請求項5記
    載のデータ圧縮装置。
  10. 【請求項10】 前記制御手段は、前記記憶装置の複数
    の記憶手段に前記圧縮データから既に復元した元データ
    を一時的に記憶させ、該記憶させた元データを用いて、
    前記既に元データへの復元を行った圧縮データに続く圧
    縮データを元データに復元することを特徴とする請求項
    4又は請求項5記載のデータ圧縮装置。
  11. 【請求項11】 所定ビット長のデータから成る単位デ
    ータを記憶する複数の記憶手段と、前記記憶手段に対応
    して設けられ記憶手段に記憶された単位データと入力さ
    れた単位データとが一致しているときに一致信号を出力
    する複数の比較手段と、を備えた記憶装置を用い、 所定数の単位データで構成された元データから特定の単
    位データを取り出して前記記憶装置の複数の比較手段の
    各々に入力した後に、一致信号が出力された場合には、
    前記取り出した単位データを記憶手段に付与されたアド
    レスの昇順又は降順に記憶手段に記憶させた後に前記取
    り出した単位データと隣り合っている単位データを取り
    出して前記一致信号が出力された比較手段と隣り合って
    いる比較手段に入力し、一致信号が出力されなかった場
    合には、前記取り出した単位データを圧縮データとして
    出力すると共に前記アドレスの昇順又は降順に記憶手段
    に記憶させた後に前記取り出した単位データと隣り合っ
    ている単位データを取り出して比較手段の各々に入力
    し、一致信号が出力されていた状態から一致信号が出力
    されなくなった場合には、前記一致信号が出力されてい
    た状態で記憶手段に記憶された単位データを所定の符号
    に置き換えて圧縮データとして出力し、前記取り出した
    単位データを圧縮データとして出力すると共に前記アド
    レスの昇順又は降順に記憶手段に記憶させ、前記取り出
    した単位データと隣り合っている単位データを取り出し
    て比較手段の各々に入力する、ことを繰り返し、元デー
    タを前記圧縮データに圧縮して出力する、 データ圧縮方法。
  12. 【請求項12】 所定ビット長のデータから成る単位デ
    ータを記憶する複数の記憶手段と、前記記憶手段に対応
    して設けられ記憶手段に記憶された単位データと入力さ
    れた単位データとが一致しているときに一致信号を出力
    する複数の比較手段と、を備えた記憶装置を用い、 所定数の単位データで構成された元データから特定の単
    位データを取り出して前記記憶装置の複数の比較手段の
    各々に入力した後に、一致信号が出力された場合には、
    前記取り出した単位データを記憶手段に付与されたアド
    レスの昇順又は降順に記憶手段に記憶させた後に前記取
    り出した単位データと隣り合っている単位データを取り
    出して前記一致信号が出力された比較手段と隣り合って
    いる比較手段に入力し、一致信号が出力されなかった場
    合には、前記取り出した単位データを圧縮データとして
    出力すると共に前記アドレスの昇順又は降順に記憶手段
    に記憶させた後に前記取り出した単位データと隣り合っ
    ている単位データを取り出して比較手段の各々に入力
    し、一致信号が出力されていた状態から一致信号が出力
    されなくなった場合には、前記一致信号が出力されてい
    た状態で記憶手段に記憶された単位データを所定の符号
    に置き換えて圧縮データとして出力し、前記取り出した
    単位データを再び比較手段の各々に入力する、ことを繰
    り返し、元データを前記圧縮データに圧縮して出力す
    る、 データ圧縮方法。
JP5319944A 1993-07-16 1993-12-20 データ検索装置、データ圧縮装置及び方法 Pending JPH07114577A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP5319944A JPH07114577A (ja) 1993-07-16 1993-12-20 データ検索装置、データ圧縮装置及び方法
EP94304954A EP0634839A1 (en) 1993-07-16 1994-07-05 Data search device
US08/275,471 US5448733A (en) 1993-07-16 1994-07-14 Data search and compression device and method for searching and compressing repeating data

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP17673793 1993-07-16
JP5-176737 1993-07-16
JP5319944A JPH07114577A (ja) 1993-07-16 1993-12-20 データ検索装置、データ圧縮装置及び方法

Publications (1)

Publication Number Publication Date
JPH07114577A true JPH07114577A (ja) 1995-05-02

Family

ID=26497531

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5319944A Pending JPH07114577A (ja) 1993-07-16 1993-12-20 データ検索装置、データ圧縮装置及び方法

Country Status (3)

Country Link
US (1) US5448733A (ja)
EP (1) EP0634839A1 (ja)
JP (1) JPH07114577A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010268146A (ja) * 2009-05-13 2010-11-25 Internatl Business Mach Corp <Ibm> データが記憶された位置を選択する装置及び方法
WO2011102432A1 (ja) 2010-02-18 2011-08-25 Inoue Katsumi 情報絞り込み検出機能を備えたメモリ、このメモリを用いた情報検出方法、このメモリを含む装置、情報の検出方法、メモリの使用方法、およびメモリアドレス比較回路
WO2012090564A1 (ja) * 2010-12-28 2012-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーション データ要素列を処理する装置及び方法
WO2012090584A1 (ja) * 2010-12-28 2012-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 検索開始点を決定する装置及び方法
GB2501195A (en) * 2011-11-01 2013-10-16 Ibm Device and method for determining search starting point

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511159A (en) * 1992-03-18 1996-04-23 At&T Corp. Method of identifying parameterized matches in a string
US5694143A (en) 1994-06-02 1997-12-02 Accelerix Limited Single chip frame buffer and graphics accelerator
JPH10502181A (ja) * 1994-06-20 1998-02-24 ネオマジック・コーポレイション メモリインタフェースのないグラフィックスコントローラ集積回路
JP3007819B2 (ja) * 1994-12-28 2000-02-07 インターナショナル・ビジネス・マシーンズ・コーポレイション データ圧縮用検索装置
US5978885A (en) * 1996-06-17 1999-11-02 Hewlett Packard Co. Method and apparatus for self-timing associative data memory
US5946692A (en) * 1997-05-08 1999-08-31 At & T Corp Compressed representation of a data base that permits AD HOC querying
EP0977152A3 (en) * 1998-07-28 2000-12-27 Xerox Corporation Data compression apparatus using matching string
US6959300B1 (en) * 1998-12-10 2005-10-25 At&T Corp. Data compression method and apparatus
US6188333B1 (en) * 1999-08-12 2001-02-13 Unisys Corporation LZW data compression apparatus and method using look-ahead mathematical run processing
US6240000B1 (en) * 1999-08-18 2001-05-29 Lara Technology, Inc. Content addressable memory with reduced transient current
US6751701B1 (en) 2000-06-14 2004-06-15 Netlogic Microsystems, Inc. Method and apparatus for detecting a multiple match in an intra-row configurable CAM system
US6934795B2 (en) 1999-09-23 2005-08-23 Netlogic Microsystems, Inc. Content addressable memory with programmable word width and programmable priority
US6944709B2 (en) 1999-09-23 2005-09-13 Netlogic Microsystems, Inc. Content addressable memory with block-programmable mask write mode, word width and priority
US6324087B1 (en) * 2000-06-08 2001-11-27 Netlogic Microsystems, Inc. Method and apparatus for partitioning a content addressable memory device
US6763425B1 (en) 2000-06-08 2004-07-13 Netlogic Microsystems, Inc. Method and apparatus for address translation in a partitioned content addressable memory device
US6795892B1 (en) 2000-06-14 2004-09-21 Netlogic Microsystems, Inc. Method and apparatus for determining a match address in an intra-row configurable cam device
US6799243B1 (en) 2000-06-14 2004-09-28 Netlogic Microsystems, Inc. Method and apparatus for detecting a match in an intra-row configurable cam system
US6687785B1 (en) 2000-06-08 2004-02-03 Netlogic Microsystems, Inc. Method and apparatus for re-assigning priority in a partitioned content addressable memory device
US6262675B1 (en) 1999-12-21 2001-07-17 International Business Machines Corporation Method of compressing data with an alphabet
US6615210B1 (en) * 2000-02-04 2003-09-02 Broad Web Corporation Bit stream ternary match scheme
US6760821B2 (en) * 2001-08-10 2004-07-06 Gemicer, Inc. Memory engine for the inspection and manipulation of data
US7069386B2 (en) * 2001-08-10 2006-06-27 Connex Technology, Inc. Associative memory device
US7107478B2 (en) * 2002-12-05 2006-09-12 Connex Technology, Inc. Data processing system having a Cartesian Controller
US7383421B2 (en) * 2002-12-05 2008-06-03 Brightscale, Inc. Cellular engine for a data processing system
US7167471B2 (en) * 2001-08-28 2007-01-23 International Business Machines Corporation Network processor with single interface supporting tree search engine and CAM
US7301961B1 (en) 2001-12-27 2007-11-27 Cypress Semiconductor Corportion Method and apparatus for configuring signal lines according to idle codes
US20040111410A1 (en) * 2002-10-14 2004-06-10 Burgoon David Alford Information reservoir
US7136961B2 (en) * 2002-11-13 2006-11-14 Mosaid Technologies, Inc. Method and apparatus for wide word deletion in content addressable memories
US6958925B1 (en) 2003-12-24 2005-10-25 Cypress Semiconductor Corporation Staggered compare architecture for content addressable memory (CAM) device
US7149101B1 (en) 2004-12-15 2006-12-12 Netlogic Microsystems, Inc. Method and apparatus for smoothing current transients in a content addressable memory (CAM) device with dummy searches
US7366830B1 (en) 2005-09-01 2008-04-29 Netlogic Microsystems, Inc. Row expansion reduction by inversion for range representation in ternary content addressable memories
US7814266B1 (en) 2005-09-01 2010-10-12 Netlogic Microsystems, Inc. Partial row expansion by logically combining range representation values in content addressable memory
US7451293B2 (en) * 2005-10-21 2008-11-11 Brightscale Inc. Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing
EP1971956A2 (en) * 2006-01-10 2008-09-24 Brightscale, Inc. Method and apparatus for scheduling the processing of multimedia data in parallel processing systems
US20080059764A1 (en) * 2006-09-01 2008-03-06 Gheorghe Stefan Integral parallel machine
US20080059762A1 (en) * 2006-09-01 2008-03-06 Bogdan Mitu Multi-sequence control for a data parallel system
US20080055307A1 (en) * 2006-09-01 2008-03-06 Lazar Bivolarski Graphics rendering pipeline
US20080244238A1 (en) * 2006-09-01 2008-10-02 Bogdan Mitu Stream processing accelerator
US20080059763A1 (en) * 2006-09-01 2008-03-06 Lazar Bivolarski System and method for fine-grain instruction parallelism for increased efficiency of processing compressed multimedia data
US9563433B1 (en) 2006-09-01 2017-02-07 Allsearch Semi Llc System and method for class-based execution of an instruction broadcasted to an array of processing elements
US20080059467A1 (en) * 2006-09-05 2008-03-06 Lazar Bivolarski Near full motion search algorithm
KR100909703B1 (ko) * 2007-12-17 2009-07-29 한국전자통신연구원 2진값 입출력 처리 장치 및 방법
US20100057685A1 (en) * 2008-09-02 2010-03-04 Qimonda Ag Information storage and retrieval system
US7848129B1 (en) 2008-11-20 2010-12-07 Netlogic Microsystems, Inc. Dynamically partitioned CAM array
US7920399B1 (en) 2010-10-21 2011-04-05 Netlogic Microsystems, Inc. Low power content addressable memory device having selectable cascaded array segments
US8639870B2 (en) * 2011-01-14 2014-01-28 Oracle International Corporation String searching within peripheral storage devices
US8467213B1 (en) 2011-03-22 2013-06-18 Netlogic Microsystems, Inc. Power limiting in a content search system
JP6065914B2 (ja) * 2012-09-21 2017-01-25 富士通株式会社 制御プログラム、制御方法および制御装置
US9892789B1 (en) 2017-01-16 2018-02-13 International Business Machines Corporation Content addressable memory with match hit quality indication
CN109802685B (zh) * 2019-01-30 2022-12-27 上海兆芯集成电路有限公司 加速压缩方法以及加速压缩装置
CN116186739A (zh) * 2023-03-13 2023-05-30 广西柳州晨生信息科技有限公司 一种基于大数据的多媒体行为数据分析系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02233025A (ja) * 1989-01-23 1990-09-14 Codex Corp 可変長ストリング符合装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4152762A (en) * 1976-03-03 1979-05-01 Operating Systems, Inc. Associative crosspoint processor system
US4450520A (en) * 1981-03-11 1984-05-22 University Of Illinois Foundation Method and system for matching encoded characters
US4575818A (en) * 1983-06-07 1986-03-11 Tektronix, Inc. Apparatus for in effect extending the width of an associative memory by serial matching of portions of the search pattern
KR940003700B1 (ko) * 1986-02-14 1994-04-27 가부시기가이샤 히다찌세이사꾸쇼 검색방법 및 그 장치
US5212697A (en) * 1988-09-13 1993-05-18 Ricoh Company, Ltd. Variable length character string detection apparatus
US5319762A (en) * 1990-09-07 1994-06-07 The Mitre Corporation Associative memory capable of matching a variable indicator in one string of characters with a portion of another string
CA2077271C (en) * 1991-12-13 1998-07-28 David J. Craft Method and apparatus for compressing data
US5339076A (en) * 1992-04-27 1994-08-16 Integrated Information Technology Data compression using content addressable memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02233025A (ja) * 1989-01-23 1990-09-14 Codex Corp 可変長ストリング符合装置

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010268146A (ja) * 2009-05-13 2010-11-25 Internatl Business Mach Corp <Ibm> データが記憶された位置を選択する装置及び方法
US8677079B2 (en) 2009-05-13 2014-03-18 International Business Machines Corporation Selecting a position where data is stored
WO2011102432A1 (ja) 2010-02-18 2011-08-25 Inoue Katsumi 情報絞り込み検出機能を備えたメモリ、このメモリを用いた情報検出方法、このメモリを含む装置、情報の検出方法、メモリの使用方法、およびメモリアドレス比較回路
GB2500524A (en) * 2010-12-28 2013-09-25 Ibm Apparatus and method for processing sequence of data element
WO2012090584A1 (ja) * 2010-12-28 2012-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 検索開始点を決定する装置及び方法
DE112011104620T5 (de) 2010-12-28 2013-10-02 International Business Machines Corporation Vorrichtung und Verfahren zum Verarbeiten einer Datenelementsequenz
DE112011104633T5 (de) 2010-12-28 2013-10-02 International Business Machines Corp. Einheit und Verfahren zum Ermitteln des Ausgangspunkts für eine Suche
WO2012090564A1 (ja) * 2010-12-28 2012-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーション データ要素列を処理する装置及び方法
JP5520390B2 (ja) * 2010-12-28 2014-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーション データ要素列を処理する装置及び方法
JP5520391B2 (ja) * 2010-12-28 2014-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーション 検索開始点を決定する装置及び方法
US9043676B2 (en) 2010-12-28 2015-05-26 International Business Machines Corporation Parity error recovery method for string search CAM
US9372887B2 (en) 2010-12-28 2016-06-21 International Business Machines Corporation Compression ratio improvement by lazy match evaluation on the string search CAM
DE112011104633B4 (de) * 2010-12-28 2016-11-10 International Business Machines Corporation Einheit zum Ermitteln des Ausgangspunkts für eine Suche
US11120867B2 (en) 2010-12-28 2021-09-14 International Business Machines Corporation Hardware compression with search string matching
GB2501195A (en) * 2011-11-01 2013-10-16 Ibm Device and method for determining search starting point
GB2501195B (en) * 2011-11-01 2018-02-21 Ibm Apparatus and method for determining search start point

Also Published As

Publication number Publication date
EP0634839A1 (en) 1995-01-18
US5448733A (en) 1995-09-05

Similar Documents

Publication Publication Date Title
JPH07114577A (ja) データ検索装置、データ圧縮装置及び方法
US5339076A (en) Data compression using content addressable memory
US5485526A (en) Memory circuit for lossless data compression/decompression dictionary storage
CA2007168C (en) Variable length string matcher
US5440753A (en) Variable length string matcher
US5936560A (en) Data compression method and apparatus performing high-speed comparison between data stored in a dictionary window and data to be compressed
JP2534465B2 (ja) デ―タ圧縮装置および方法
JP3225638B2 (ja) データを圧縮するための装置及び方法並びにデータ処理システム
US9507811B2 (en) Compressed data page with uncompressed data fields
US20020101367A1 (en) System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
EP0573208A1 (en) Apparatus and method for managing multiple dictionaries in content addressable based data compression
US8677079B2 (en) Selecting a position where data is stored
JPH11126486A (ja) 連想記憶装置のエンコーダにおける一致信号及び一致アドレス信号の優先順位付け
US11120867B2 (en) Hardware compression with search string matching
US20060106870A1 (en) Data compression using a nested hierarchy of fixed phrase length dictionaries
US5877714A (en) Search circuit for data compression
JPH09180468A (ja) 連想記憶装置
JPH0746362B2 (ja) 文字列照合方法
JP2785168B2 (ja) 単語検索のための電子辞書圧縮方法及び装置
JPH07105092A (ja) 記憶装置
JP3171510B2 (ja) 辞書ベースのメモリ内のデータを圧縮および圧縮解除する方法
JP3103421B2 (ja) 符号化回路
JPH09180469A (ja) 連想記憶装置
SU1520547A1 (ru) Устройство дл поиска информации в пам ти
Satoh et al. Lempel‐Ziv‐type high‐speed data compression circuit using content addressable memory