JP2830280B2 - 可変長ストリング符合装置 - Google Patents

可変長ストリング符合装置

Info

Publication number
JP2830280B2
JP2830280B2 JP2013453A JP1345390A JP2830280B2 JP 2830280 B2 JP2830280 B2 JP 2830280B2 JP 2013453 A JP2013453 A JP 2013453A JP 1345390 A JP1345390 A JP 1345390A JP 2830280 B2 JP2830280 B2 JP 2830280B2
Authority
JP
Japan
Prior art keywords
data
string
data element
data elements
sign
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2013453A
Other languages
English (en)
Other versions
JPH02233025A (ja
Inventor
ブライアン・ターチェン・ホー
クレイグ・ディー・コーヘン
ジェームス・エイ・パスコ―アンダーソン
マイケル・ガットマン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of JPH02233025A publication Critical patent/JPH02233025A/ja
Application granted granted Critical
Publication of JP2830280B2 publication Critical patent/JP2830280B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3086Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/02Indexing scheme relating to groups G06F7/02 - G06F7/026
    • G06F2207/025String search, i.e. pattern matching, e.g. find identical word or best match in a string
    • 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/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Materials For Medical Uses (AREA)
  • Orthopedics, Nursing, And Contraception (AREA)
  • Polysaccharides And Polysaccharide Derivatives (AREA)
  • Ropes Or Cables (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Prostheses (AREA)
  • Liquid Crystal Substances (AREA)

Description

【発明の詳細な説明】 (産業上の利用分野) この発明はストリング符合(string matching)に関
する。
(従来の技術) ストリング符合は一つのデータ・ストリングの文字を
別のデータ・ストリングの文字に対して符合(match)
させるものであつて、統計的マルチプレクサ及びモデム
を使用するデータ通信システムにおけるような例えばデ
ータ圧縮アルゴリズムに有用である。
第1図を参照すると、データ圧縮技術を使用する古典
的なデータ通信システム10において、送信機12からのデ
ータは圧縮を受け、圧縮されたデータは通信チヤンネル
16(第1図ではエラーのない通信チヤンネルであるとす
る)を介して送信される。該チヤンネルの他端では、圧
縮されたデータはデコンプレス20され、元のデータ・ス
トリームが再生される。
高帯域通信ネツトワークにおいては、実時間データ圧
縮の実質的な利点は、圧縮及びデコンプレシヨンの過程
に関連した計算コストによつて相殺されがちである。
公知のデータ圧縮アルゴリズムの中にZiv−Lempel
′77アルゴリズム(ZL77)があり、これは、可変長入
力・固定長出力の部類(V−F類)のデータ圧縮アルゴ
リズムに属する。
ZL77アルゴリズムは、連続的なデータ・ストリームに
おいては、1度より多く発生するデータがあり、特に、
データ・ストリームの局部領域においては1度より多く
発生するという単純な観察に基づいている。例えば、テ
キスト・データのストリームにおいては、「the」とい
う語は頻繁に出現する傾向にある。データ源が最近送出
したデータの履歴を(いわゆる履歴バツフアに該データ
を記憶することによつて)監視するならば、送出すべき
現在のデータの連続的な要素を記憶された履歴データの
連続的な要素と比較することにより、データ源は一連の
データの余剰な発生を見出すことができる。圧縮過程は
可変長ストリング符合と呼ばれる。符合が見出される
と、送信機は、全部の冗長な列を再送出する代りに、履
歴バツフアでの冗長データ列の以前の発生の場所を指す
コードワードとして該列を符号化し、その長さに注目す
る。コードワードを表すのに必要なビツト数が冗長デー
タ列を表すのに必要なビツト数より少ないならば、デー
タ圧縮が達成される。チヤンネルの他端では、最近送出
したデータの履歴バツフアを同じように保持するデコー
ダは履歴バツフアでの特定された場所に注目することに
よつてコードワードを復号する。
第2図において、例えば、履歴バツフア11はデータ・
ストリームの文字が現われた順序を示すように番号が付
けられた16個のセル13(小さな番号のセルの方が最近の
データを保持する)を有する。送出を待つデータ文字は
履歴バツフアの右に示されている。送出されるべき次の
文字はSUPERBである。ZL77により、待つている文字の中
の最初の5文字SUPERが履歴バツフアの同様のストリン
グと冗長であり、インデツクスと長さとイノベーシヨン
文字フイールドとから成るコードワード15として符号化
することができると決定される。インデツクス17は、履
歴バツフアにおいて何個の文字を逆戻りすると符合した
ストリングが始まるかを示す値12を有し、長さ19は符合
した文字の長さを示す値5を有し、イノベーシヨン文字
21は、待つている入力ストリングの文字の中で履歴バツ
フアのストリングと符号しなかつた最初の文字である。
第3図を参照すると、コードワードの送信後、旧デー
タ23を有効に左ヘスライドさせ、最新の入力データを履
歴バツフアの右へ挿入させることによつて、データ源は
その履歴バツフアを更新する。そこで、データ源が次の
入力データを符号化する過程が開始される。
第4図を参照すると、データ受信機はそつくり同じ履
歴バツフア25を保持し、送信機がその履歴バツフアを更
新するのと同一のやり方で履歴バツフア25を更新する。
コードワードを受信すると、データ受信機はインデツク
ス・フイールドを使つて最長の符合の場所を見出し、長
さを使つて履歴バツフアから読み出すべき文字の個数を
決定し、更らに、当該コードワードに現われたときのイ
ノベーシヨン文字を取り出す。そこで、第5図に示すよ
うに、コードワードの復号が完了すると、履歴バツフア
の文字を有効に左ヘスライドさせ、復号された文字とイ
ノベーシヨン文字とを右から挿入することによつて、デ
ータ受信機はその履歴バツフアを更新する。
ストリング符合アルゴリズムを実行することができる
1つのハードウエア・アーキテクチヤはコンテント・ア
ドレサブル・メモリ(content addressable memory;CA
M)である。CAMは、データを記憶しその内容によつてア
クセスすることができる多数のセルから成る。読み出し
サイクル期間に、CAMはデータを取り込み、該データが
見出されるアドレスを出力する。
(発明が解決しようとする課題) 一つの特徴において、本発明は、データ要素の記憶さ
れた列内に、所与のデータ要素のデータ・ストリングと
符合する、記憶されたデータ要素の最長のストリングを
見出すステツプであつて、当該符合する列がデータ要素
の列を記憶することによつて見出されるステツプと、前
記データ・ストリングのデータ要素を前記列の対応する
要素と比較するステツプと、符合が見出されたときに信
号を発するステツプと、前記の比較を反復して行わせる
ステツプであつて、各々の反復が前記データ・ストリン
グデータの要素と記憶場所のデータ要素との比較を含む
ステツプと、反復が比較回路による符合信号の発出を結
果しないときに基づいて最長の符合したストリングを決
定するステツプとを特徴とする。
好ましい実施例は以下の特徴点を含む。記憶装置にお
い、各々の記憶場所は前記列のデータ要素の1つを保持
する。前記列の全てのデータ要素は前記データ・ストリ
ングの所与のデータ要素と比較される。比較の結果とし
て発生される信号は一時記憶され、その後、前記列のそ
の隣接するデータ要素を前記データ・ストリングの次の
所与のデータ要素と比較するのに利用される。符合信号
の発生は、隣接するデータ要素のために一時的に記憶さ
れた信号が符合を指示する場合を除いて禁止される。反
復回数が計数され、符合信号を結果として生じない反復
で終了する。符合する最長のストリングのデータ要素数
がこの計数に基づいて決定される。計数器が所定値に達
した後に反復は停止される。以上の構成は連想コンテン
ト・アドレサブル・メモリによつて実行される。データ
要素は8ビツト・バイトである。最長のストリングはコ
ードワードとして符号化され、その後に復号化されて最
長のストリングが再生される。
別の特徴において、本発明は、データ要素の記憶され
た列内で、データ要素の所与のストリングと符合するデ
ータ要素のストリングを識別し、符合するストリングが
絶対的アドレスによつて識別されることを特徴とする。
好ましい実施例は以下の特徴点を含む。データ列の全
ての記憶された要素は前記ストリングの所与のデータ要
素と比較され、符合を有する1個のアドレス可能な記憶
場所の絶対アドレスが比較過程の各反復において保持さ
れる。1個のアドレス可能な記憶場所は各反復に課され
る任意の規則によつて任意に選択される。符合する前記
ストリングのコードワードとしての符号化は絶対アドレ
スに基づく。コードワードは符合されたストリングの長
さと場所とを指示する値を含む。
本発明は迅速且つ有効な可変長ストリング符合操作、
符号化及び復号を可能にする。ストリング符合に必要と
されるステツプの数は、符合されるストリングの長さに
依存する。コンテント・アドレサブル・メモリ技術を用
い、VLSIチツプ上で実行可能である。
他の利点及び特徴は、以下の好ましい実施例の説明及
び特許請求の範囲から明確になろう。
(実 施 例) 構造及び動作 本発明において、ZL77アルゴリズムは、履歴バツフア
における符合するストリングの場所のインデツクスを与
えることにより修正される。第6図を参照すると、コー
ドワード32のインデツクス部30は、ここでは値4を有す
る。この値は最長の符合が始まる履歴バツフアでの絶対
場所を特定しており、古典的ZL77アルゴリズムにおける
ような、履歴バツフアにおける最も新らしい文字に対す
る場所を特定するものではない。長さ34は値5を有する
ので、送信機はコードワード4,5を送信する。受信機
は、相対的インデツクス操作に必要な減算をする必要が
なく、履歴バツフアに対するポインタとしてインデツク
スを使用する。
本発明においては、符合なし(即ち、長さ=0)の場
合、送信機はデータ列の8ビツトの生まの文字(例え
ば、ASCII又はEBCIDICメツセージ)をインデツクス・フ
イールドに挿入し、長さフイールドに0を置く。長さ0
を検出すると、受信機は、履歴バツフアから読み出さず
に、及び、データをポインタと区別するためのフラグを
必要とすることなく、インデツクス・フイールドから生
まの文字を取り出す。本発明においては、イノベーシヨ
ン文字はコードワードの一部として符号化されない。む
しろ、第7図を参照するに、イノベーシヨン文字は符号
化されるべき次の入力ストリングの最初の文字36とな
る。
発明の別の特徴において、修正されたZL77アルゴリズ
ムは履歴バツフアを維持し探索するための機構として、
修正されたコンテスト・アドレサブル・メモリを使用す
る。第8図において、履歴バツフアは0〜7までの番号
が付けられた8個の単純なプロセツサ40の列38として形
成されている。各プロセツサは比較器とローカル・メモ
リ(図示せず)を有する。全部のプロセツサは文字スト
リームが出現する共通データ・バス(図示せず)への同
時アクセスを有する。
第8図において、送信を待つ現在のデータ・ストリン
グ(文字ストリーム)がabcdであるとする。プロセツサ
は同時に周期的に作動する。いわゆる比較(COMPARE)
サイクルでは、(1)プロセツサのメモリにおける文字
がデータ・バス上の現在の文字と符合し、(2)該プロ
セツサの左隣りのプロセツサが前の比較サイクルにヒツ
ト(hit)を宣言(assert)した場合、当該プロセツサ
はヒツトを宣言する。〔修正されたアルゴリズムは各プ
ロセツサにヒツトを宣言させることによつて前記列を初
期化する(初期化サイクル)。ヒツトは第8図ではプロ
セツサの下側の矢印で示されている。〕文字Fa」がデー
タ・バスを介して全部のプロセツサへ送られると(比較
「a」サイクル)、プロセツサ0,1,4,7はヒツト(矢
印)を示す。なぜなら、それらの内容は文字「a」と符
合し、それらの左隣りは前の(初期化)サイクルでヒツ
トを持つたからである。次いて、修正されたアルゴリズ
ムは符合長を監視する長さ計数器42を増分する。同時
に、ヒツトを持つセルの1つのインデツクス44が記録さ
れる。複数のセルがヒツトを持つことがあるので、規定
どおりに、修正されたアルゴリズムはヒツトを持つ最左
端のプロセツサのインデツクスを単に記録する。
第2の比較サイクルにおいて、「b」が比較のために
データ・バスを介して送出され、プロセツサ2のみがヒ
ツトを持つ。再びアルゴリズムは長さ計数器を増分し、
ヒツトを持つ最左端のプロセツサ(2)のインデツクス
を記録する。
第3の比較サイクルにおいて、「c」が比較のために
データ・バスを介して送出され、プロセツサ6が「c」
を収容しているけれども、プロセツサ3のみがヒツトを
宣言する。これは、プロセツサ6の左隣りのプロセツサ
5が前の比較サイクルでヒツトを宣言しなかつたからで
ある。再び、アルゴリズムは長さ計数器を増分し、ヒツ
トした最左端のプロセツサのインデツクスを記録する。
第4の比較サイクルにおいて、「d」が比較のために
データ・バスを介して送出される。ヒツトを宣言するプ
ロセツサはなく、これは最長の符合が見出されたことを
示すことになる。
この時点で、絶対インデツクス44は最後の符合した文
字がどこで見出されたかを示している。最初の符合した
文字は絶対インデツクスから符合長を差し引き、1を加
えることによつて見出される。この例においては、最長
の符合はインデツクス=3−3+1即ち1で始まる。し
たがつて、送信機は「abc」を1,3として符号化して送信
する。
所与のプロセツサでの符合に対する2つの規準を用い
ると、最長の符合である可能性を持つストリングが分離
される。有意義なことに、探索時間は履歴バツフアのサ
イズではなく符合長に依存する。例えば、Lが符合長で
あれば、最長の符合を見出すのに(L+1)個の文字を
比較るれば足り、従来のハツシング(hashing)即ちツ
リー探索データ構造よりもずつと高速である。
同じく大きなスループツトを有するシストリツク・ア
レー・インプリメンテーシヨン(systolicarray implem
entation;M.E.ゴンザレス・スミス及びJ.A.ストーラー
著「データ圧縮のための並行アルゴリズム」コンピユー
タ機械協会誌、第32巻第2号、1985年4月、第344〜373
ページに記載されている)と比較して、このアルゴリズ
ムは著しく低い潜伏(latency)を持つ。全部のCAMセル
はそれらの内容を同一の入力文字と同時に比較するの
で、最長の符合が見出されると直ちにコードワードを生
成することができる。古典的なシストリツク・アレーに
おいては、潜伏(latency)は履歴バツフアのサイズに
常に比例するが、応用によつては受容不可能なほど長い
ことがある。
第9図は修正されたアルゴリズムのフローチヤートを
示している。
該アルゴリズムを実行することができる1つのハード
ウエア・アーキテクチヤはコンセント・アドレサブル・
メモリ(CAM)である。連想メモリとしても知られてい
るCAMは、データを記憶することができるセルであつ
て、(従来のメモリのようにアドレスではなく)その内
容によつてアクセスすることができ、データが見出され
たアドレスを伝えるセルを有する。
第10図を参照すると、古典的なCAM構造においては、
(第8図の単純なプロセツサの1つに対応する)各CAM
セル100はメモリ要素102と比較器104の両方を有する。
各セルにアドレスすることができる。CAMセルに接続さ
れたグローバル・データ・バス106はデータ(文字スト
リーム)を全てのセルへ運ぶ。CAMメモリ要素のデータ
がバスで送られたデータ108と整合すると、CAMセルは符
合を示すヒツト信号を宣言する。
第11図を参照すると、本発明においては、修正された
CAMセル122は、遅延されたヒツトを各セルがその右隣り
のセルへ伝えることができるようにする遅延回路124
(フリツプフロツプ)を含む。それぞれの比較器は論理
和で結合されついで遅延回路に結合される。各セルはラ
イン126により左隣りのセルから遅延された符合の結果
を受け取る。
ヒツト信号128は当該セルの内容の符合の結果と前の
サイクル(t−1)での左隣りのセル(n−1)のヒツ
ト信号との論理積130である。ヒツトn−1,t−1は前の
比較サイクルでの左隣りのセルの符合の結果であり、ヒ
ツトn,t−1は前の比較サイクルでのCAMセルの符合の
結果である。遅延回路124は1比較サイクル後にその入
力信号をその出力へ伝える。
第12図を参照すると、各CAMセルの遅延されたヒツト
信号126はその隣りのセルとのみ相互接続される。これ
らの修正は2つの基準を実施する。追加の制御論理は最
長の符合のアドレスを決定するのに必要とされる。
第13図を参照すると、第12図のCAM構造は可変長スト
リング符合器(variable length string matcher;VLS
M)130の一部を成す。
バイト連想CAMを用いる符号化・更新プロセスのため
には、4つの別個の動作、即ち「初期化」(INIT)、
「比較」(COMPARE)、「出力」(OUTPUT)及び「更
新」(UPDATE)が必要である。
「初期化」は、あるゆるCAMセルからのヒツトを最初
の比較サイクルに対して設定させるように符号化する各
ストリングに対して1度しか使用されない。「初期化」
はセルの内容をクリヤしない。比較サイクルにおいて、
入力ストリングの文字はチエツクのために全てのCAMセ
ルに対してデータ・バスに置かれる。少くとも1つの符
合が生じると、別の比較サイクルが入力ストリングの次
の文字で始まる。インデツクスと長さとの要素から成る
コードワードが出力サイクル期間に生成される。最後
に、各更新サイクルにより、1個の文字が履歴バツフア
に挿入される。全部の符合したストリングが履歴バツフ
アに書き込まれるまで、これらが反復される。
したがつて、VLSMは以下の入力と出力とを有する。即
ち、文字(バイト)のストリームを運ぶ8ビツトのデー
タ・バス「データ〔7:0〕」、(1024セル長の履歴バツ
フアであるとして)10ビツトのアドレス・バス「アドレ
ス〔9:0〕」、イネーブル線及び2本の選択線S1,S0。
「データ〔7:0〕」は比較又は更新されるべき文字を含
む。「アドレス〔9:0〕」は文字(バイト)が挿入され
る履歴バツフア場所を特定する。
イネーブルが宣言されると、2つの機能モード選択信
号S1,S0の組合せは、次の表に従つて4つの可能な命令
のうちの1つを実行するためにVLSMブロツク内で適切な
制御信号を発生させる。 S 0 S 1 機 能 0 0 INIT(初期化) 0 1 COMPARE(比較) 1 0 OUTPUT(出 力) 1 1 UPDATE(更 新) 「インデツクス〔9:0〕」は整合は持つ1つのCAMワー
ドの絶対アドレスである。これは通常はVLSM内にラツチ
され、出力モードが選択されたときに出力イネーブルさ
れる。少くとも1つのCAMワードが符合を有するとき、C
AM−ヒツトがVLSMによつて断言される。この出力信号は
外部制御器132(有限状態マシンによつて実施される)
によつて監視され、比較サイクルが接続されるべきか否
かが決定される。
第13図を参照すると、VLSMの制御はまつすぐ(straig
htforward)である。最長の符合を見出すために、制御
器132は初期化命令を選択する。その次のサイクルにお
いて、入力ストリングの最初の文字はデータ・バスに乗
せられ、比較モードが選択される。「CAM−ヒツト」が
宣言されると、次の文字がデータ・バスに乗せられ、別
の比較命令が発せられる。比較サイクル後に「CAM−ヒ
ツト」が宣言されなくなるまで、制御器132は以上のス
テツプを反復する。また、「CAM−ヒツト」は長さ計数
器133をクロツクする。それまでに、CAMの最長の符合し
たストリングの最後の文字に対する「インデツクス」が
レデイになるので、制御器は「出力」を発して「インデ
ツクス」をフエツチする。履歴バツフアの1つの文字を
更新するために、制御器は「データ〔7:0〕」に文字を
乗せ、更新モードを選択する。更新サイクルを以下に詳
述する。
更新期間中、前の比較サイクルの組で符合された文字
は入力FIFOから除去され、場所5で始まる(第14図の例
における)履歴バツフアに挿入される。履歴バツフアの
変化は第14図の右下に太い文字で示される。場所0−7
の文字は入力ストリングabcのために空きを作る左ヘシ
フトされることはない。これは、こうした更らなるデー
タ転送は履歴バツフアへ最古の文字を書き込むことによ
つて回避されるからである。
第15図を参照すると、VLSM130は主要な要素としてバ
イト連想CAMワード・アレー134(第12図に対応)を内部
的に含む。アレー134は履歴バツフアとして動作し、並
列比較を実行する。アレー134には、行符号器136、行復
号器138、行符号器140、行復号器142が接続される。デ
ータ・バツフア144はアレーとデータ・バス146との間に
接続される。また、VLSM130はフリツプフロツプ(FFと
表示されている)、制御機能モード復号器148、マルチ
プレクサなどの支持論理部を含んでいる。
復号器148は「イネーブル」によつてイネーブルされ
ると、入力としてS1及びS2を取り、4つの線「初期
化」、「比較」、「書込み」、「読取りADDR」のうちの
1つを適宜宣言する。「初期化」はアレーの全てのCAM
ワードをスルーさせる。
比較サイクルでCOMPで宣言される。「比較」は行復号
器の出力側の「符号化」線を選択し、アドレス符号化の
目的で行を選択する。また、COMPは行復号器への入力を
「アドレス〔9:4〕」と行符号器の出力との間で切り換
える。「書込み」は更新サイクルで宣言される。「書込
み」は「選択」線とデータ書込みのために1個のCAMワ
ードのアドレスを指定する列復号器とをイネーブルす
る。最後に、「読出し−ADDR」は三状態装置154に対す
る出力イネーブルとして動作する。第15図には示されて
いないが、2つの重複しないクロツク信号phi1,phi2が
各CAMワードをスルーさせる。
「アドレス〔9:0〕」は列復号器へ行く4ビツト部分
と行復号器へ行く6ビツト部分とに分解される。イネー
ブルされると、行復号器は64本の線の1つを宣言する。
「書込み」が宣言されると、これらの線は、書込みサイ
クル中は行イネーブルとして動作する64本の「選択」線
に接続される。「比較」が宣言されると、64本の「符号
化」線は行復号器の出力を運ぶ。
CAMアレーは行符号器へ行く64本の水平「H−符合」
線と列符号器へ行く16本の垂直「V−符合」線を生成す
る。符号器はそれぞれ6本及び4本のアドレス線を生成
し、これらは結合されて10ビツトの「インデツクス」を
形成する。また、行符号器は「CAM−ヒツト」信号を発
生する。
第16図を参照すると、CAMアレー134には64×16(=10
24)個のワード・セルがあり、そのうちの代表的な3×
3(=9)個のワード・セルが図示されている。この2
次元的な配列は、特に多数のワード・セルに対する小型
なVLSIレイアウトにとつて望ましい。
図示されているように、「データ〔7:0〕」(8ビツ
ト・バイト・ストリーム)は全てのワード・セルに達し
ている。「選択」線は更新サイクル期間のみ使用され、
その他の期間は高インピーダンスである。「選択」線は
更新サイクル期間には行アドレス復号器の出力に接続さ
れ、データ書込みのために1つの行をイネーブルする。
「初期化」は復号器148の出力であり、全てのワード・
セルに供給される(第18図)。
各行に対する「H−符合」線と各列に対する「V−符
合」線は同一の行又は列上の他の全てのCAMワードとワ
イヤード・オアされ、phi1の期間はハイにプリチヤージ
される。各「H−符合」線は、当該行の少くとも1個の
CAMワードがphi2の期間に符合を持つならば、ローに下
げられる。
CAMワードからの「ヒツト」出力はその右隣りへの入
力である。更らに、最も大きい番号のワード・セルから
の「ヒツト」は最も小さい番号のワード・セルへの入力
である。例えば、ワード・セル8の「ヒツト」出力はワ
ード・セル0の「ヒツト」入力に接続される。一貫した
アドレス指定を維持するために、行の最後のワードから
の「ヒツト」は次の行の最初のワードへ送られなければ
ならない。大きなアレーの場合、線が極めて長いので、
不要な伝搬遅延が生じることがである。しかし、線の長
さはアレーを水平に“折り畳む”ことができるならば最
小としうる。
最も原始的なCAM構造は第18図に示されるCAMビツト・
セルである。このCAMビツト・セルは上部に標準的な6
個のトランジスタのスタテイツクRAMセル・トポロジを
有し、下半分に、等価論理機能を実行する3個の別のト
ランジスタを有する。
線Mはphi1の期間にはハイにプリチヤージされる。符
合サイクルの期間に、「ビツト」線上のデータがセルに
記憶されたビツト値と同一であるならば、Mはハイを維
持する。その他の場合、Mはローに下げられて非符合を
指示する。宣言されると、「選択」線は「ビツト」線及
び「ビツト」線上の値を記憶素子に書き込ませる。
8個のビツト・セルをグループ化し、第17図に示すCA
M符合セルを形成する。線Mは8ビツト構成においてワ
イヤ・アンドされる。したがつて、少くとも1個のビツ
ト・セルが非符合を検出すると、線Mはローとなる。
CAMアレーを作るCAMセル164はアセンブリの中で次に
高いレベルにある。第18図はCAMワード・セルの内部構
造を示している。CAM符合セルはワード・セルの最大の
要素である。残りのものはランダム論理部と制御線であ
る。
論理部が示すように、「ヒツトn,t」はphi2とMと前
の比較サイクルでの左のワード・セルの符合結果である
「ヒツトn−1,t−1」との論理積である。正であれ
ば、「ヒツトn,t」は「H−符合」線を引下げ、このワ
ード・セルに対する符合を指示する。「ヒツ
n,t−1」は1サイクル遅延された「ヒツトn,t」信号
である。最長の符合したストリングを見出す際、CAMワ
ード・セルの左隣りが前の比較サイクルで符合を有し、
該セルの内容がそのデータと同一である場合にのみ、現
在の符合が許容される。入力ストリングは一時に1個の
文字のみをデータ・バス上に生じさせる。バイト連想は
前の符合結果をセーブするフリツプフロツプ166の使用
に依存する。
しかしながら、入力ストリングの最初の文字の符合
は、比較サイクルが生じていないので、左隣りが符合を
持つたという規則に従う必要はない。これが、新しいス
トリングの検索が始まるときには常に初期化命令が最初
に発せられる理由である。第19図は、第18図の遅延ブロ
ツク166の内部を示している。「初期化」がハイに宣言
されると、ワード・セルの「ヒツトn,t」の値ではな
く、このハイの値がフリツプフロツプに供給される。要
するに、比較サイクルが生じる時までに、各ワード・セ
ルの「ヒツトn,t−1」線がハイにされ、その結果、符
合を持つ全てのワードはそのことを指示することができ
る。
データが見出される単一のアドレスを出力することが
CAMの特性の一つであるから、VISM及びCAMにとつてアド
レス優先符号化は必要である。デジタル的には、N個の
アドレスのうちの1つを特定するのにlog2N個のビツト
が必要である。もし1個より多くの入力が同時にアクテ
イブであると、2進符号化が行われる前に、まず衝突を
解決する必要がある。換言すれば、順位付け器(priori
tizer)が必要である。
まず、行アドレスが符号化されるので、以前と同様に
行アドレス0が求まる。いま、行0において生じる列符
合のみを列符号器に入れ、他の行の列符合を禁止する。
行0において、列2,3が符合を有し、列符号器はアドレ
ス2を発生しなければならない。行及び列のアドレスを
組合わせると、アドレス2が形成され、これは正しい。
上記の手順は、第16図及び第18図に見出される「符号
化」線の存在を説明する。第18図において、「H−符
合」線は比較サイクル期間に行符号器に入る。符号化さ
れた行アドレスは行復号器へ送られる。同じアイクルに
おいて、行復号器の出力は「符号化」線に接続され、そ
れにより、1個の「符号化」線のみが宣言される(即
ち、1つの行がイネーブルされる)。ワード・セルの
「V−符合」は、当該行に対する「符号化」線が宣言さ
れ、「ヒツトn」も宣言された場合にのみローになる。
この制限なしには、最も小さい番号のワード・セルの正
しいアドレスを符号化することはできない。第20図はア
ドレス符号化シーケンスを要約したものである。
それぞれの水平「H−符合」線はphi1の期間はハイに
プリチヤージされ、同一の行のワード・セルとワイヤー
ドオアされている。これは、それぞれの垂直「V−符
合」線についても同じである(ただし、同一の行のワー
ド・セルとワイヤードオアされている点で違いがあ
る)。
アドレスを精確且つ独自に符号化するために、行アド
レスの符号化が最初に行われなければならない。その結
果の行アドレスは行復号器へ送られる。行復号器の出力
は「符号化」線へ送られ、1つの行をイネーゴルしてそ
の垂直「V−符合」線を列アドレス符号器へ伝搬し、垂
直アドレスを符号化する。アドレス符号器は独特なアド
レスを符号化するために多重符合を解消する責任を有す
る。同時応答を仲裁する方法はいくつかある。設計上実
行される一つの方法は優先符号化、即ち、最低のアドレ
スを有するCAMワードを符号化することである。
そうした符号器170は、第21図に示されるように格子
状に構成される。その規則性はVLSMの実施に特に適して
いる。さらに、リツプル・チエイン(ripple chain)手
法よりも広い面積をとるが、かなり高速な回路である。
第21図の設計は、同一構造に優先順位付けと2進符号化
とを組合せたものである。
ADDR線は垂直に走り、phi1の期間はハイにプリチヤー
ジされる。2進表示の特質を利用するために、アドレス
の最上位ビツト(例えば、第21図のA3)が最初に符号化
される。次いで、ランダム論理は最上位のアドレス線の
値に依存するよう設計することができる。例えば、A0上
の論理「符合14」はA3,A2,A1、「符合14」に依存する。
さらに一般的な場合には、上側の8本の「符合」線(0
〜7までの2進アドレスを符号化し、4ビツト・アドレ
スの最上位ビツト即ちA3は0である)の任意の1つが宣
言されたならば、下側の8本の「符合」線はA3とアンド
されるためにターン・オフされる。論理の適切な配置に
より、符号器は多重応答の場合に最低アドレスを符号化
することができる。
CAMアレーからの「符合」線はインバータでバツフア
されてから評価される。これを行うのには2つの理由が
ある。まず、「符合」線はワイヤ・アンドされているの
で、その論理レベルを保持するためにバツフアを必要と
するからであり、次に、符号化論理を働かせるために
は、「符合」線は正論理をとるからである。しかし、CA
Mアレーにおいては、「符合」線は整合が生じるとロー
に下げられる。インバータを使うことにより、それを正
しい極性に戻すことができる。
第21図の左端の列は「CAM−ヒツト」信号の発生に責
任を持つ。この列も、phi1の期間ハイにプリチヤージさ
れるワイヤ・オアされた構造である。任意の1つの「符
合」線がハイであると、「CAM−ヒツト」はローに下げ
られる。この構造は行アドレス符号器にのみ備えられ
る。
コードワードが形成されると、ビツト・バツキング
(packing)及びアンパキング(unpacking)が必要とな
る。ビツト・パツキングは、通常はバイト・サイズでな
いコードワードをバイト又はワード量へ束ねることを意
味する。ビツト・アンパツキングはバイト列からコード
ワードを抽出するという逆の操作である。これらの操作
は最長の符合を見出す操作ほど複雑ではないが、ごく一
般的であるから、スピードアツプにより全体のスループ
ツトを改善することができる。
第22図を参照すると、符号器において、データは符合
化入力FIFO(フアースト・イン・フアースト・アウト)
242に入り、VLSM244、ビツト・パツカー(bit packer)
246を通つて、最終的に符号化出力FIFO248に至る。符号
器は符号器FSM250と呼ばれる有限状態機械によつて制御
される。
符号化入力FIFOは奥行256ワード、巾8ビツトであ
り、外部機器によつて書き込まれ、符号器によつて読み
出される。FIFOは外部機器によつて必要とされるメモリ
管理オーバーヘツド(memory management overhead)を
最小とするように設計され、FIFO読出し又は書込みが生
じるたび毎にFIFOアドレス・ポインタを更新するための
内部論理を収容している。更らに、内部論理は非同期ハ
ンドシエーク信号ばがりでなくFIFOの状態にも応答す
る。例えば、RD−RDY信号がFIFOによつて宣言された場
合にRD信号を宣言することにより、バイトを読み出すこ
とができる。同様に、WRが外部機器によつて宣言される
と、WR−RDYが正である期間にバイトがFIFOに書き込ま
れる。FIFOが空き又はほとんど空きの場合、「EI−空
き」信号が発生され、FIFOを使用する外部機器に警告を
与える。
符号器FSM(第23図)はVLSMへの制御信号の論理列を
発生し、最長の符合を暗黙のうちに見出させ、コードワ
ードを生成させる。
パツカー246(第22図)は14ビツトの分量を取り込ん
でバイトにバツクする。その出力は符号化出力FIFOに直
接に接続される。したがつて、ビツト・パツカーはFIFO
ともハンドシエークするよう設計されている。図示のよ
うに、4ビツトの「符合長」と10ビツトの「インデツク
ス」はビツト・パツカーへの入力としてハードワイヤー
ド(hard−wired)される。三状態レジスタの出力もビ
ツト・パツカーへ入力される。三状態レジスタはVLSMへ
与えられる入力文字を常にラツチする。全く整合がな
い、即ち「符合長」が0に等しいならば、当該文字はコ
ードワードのインデツクス部で保管さるる。この場合、
VLSMの「出力」命令は符号器FSMによつて発せられるこ
とはなく、その代りに、三状態レジスタの内容が「符合
長」(0である)の他にビツト・パツカーに供給され
る。
符号化出力FIFOは符号化入力FIFOと同様の構造を有す
るが、128バイトであり、ビツト・パツカーによつて書
き込まれ、外部機器によつて読み出される。ビツト・パ
ツカーは信号WRを発生し、FIFOへの書き込みを行わせ
る。「EO−充満」信号は該FIFOが充満又はほゞ充満の状
態のときに発生される。
長さ計数器252はアツプ及びダウンのカウントが可能
である。「CAM−ヒツト」は該計数器のアツプ・カウン
ト・クロツクであり、DECはダウン・カウント・クロツ
クとして働く。長さ計数器の4ビツト出力はビツト・パ
ツカー及びオア・ゲートへ入力される。出力が全部ゼロ
であれば、「終了」はローになり、符号器FSMへの入
力として用いられる。
本質的に、アドレス計数器は、新たな入力文字がVLSM
へ挿入されるべき次の位置を常に指示する履歴バツフア
・ポインタである。この10ビツトの2進計数器は、VLSM
に対する更新命令が実行されるときには常に1だけ増分
される。1023まで計数すると、該計数器は0へ戻り再ス
タートする。信号CLRが宣言されると、アドレス計数器
はリセツトされる。
文字バツフア258は16個の入力文字までをバツフアす
ることができる。これが必要とされるのは、コードワー
ドが発生された後に、それぞれの符号化された入力文字
はVLSMへ書き込まれなければならないからである。バツ
フア計数器256がクイヤされてから、新しい符号化サイ
クルが始まる。それぞれの入力文字が符号化入力FIFOか
ら読み出されると、VLSMへ与えられると共に文字バツフ
アに書き込まれ、バツフア計数器は次の位置を指示する
ように増分される。文字がVLSMへほぼ挿入されると、バ
ツフア計数器はリセツトされ、最初の文字を指示する。
更新サイクル期間において、各入力文字が文字バツフア
から読み出され、アドレス計数器によつて特定されたVL
SMの場所に書き込まれると、長さ計数器は減分される。
符号器FSMは「終了」信号を使つて、更新活動をいつ
終るべきかを決定する。
特別な状況も取り扱われなければならない。例えば、
比較サイクルは誤りが生じたとき、即ち、「CAM−ヒツ
ト」が宣言されないときに停止される。その時点におい
て、最長の符合の一部をなしていない最後の文字はまだ
三状態レジスタにある。FSMは、次の符号化サイクルに
おいて最初の文字が必ずFIFOからではなく三状態レジス
タから来るようにしなければならない。
また、入力された列の最後の文字の比較が完了する
と、最長の符合が見出されなくとも、コードワードが発
生されなければならない。換言すれば、符号器FSMはデ
ータの終了を認識し、出力命令を出させてインデツクス
を求めることにより、通常のVLSM動作サイクルを破る。
長さ計数器の内容と共に、コードワードがビツト・パツ
カーに供給される。ビツト・パツカーFSMはこうした状
態に応答する。即ち、もし信号「EN−停止」(ビツト・
パツカーへの入力)が宣言されるならば、ビツト・パツ
カーは8ビツトで満たされていなくとも、バイト・テン
プレート(byyte template)を出力する。
最後に、符号器はリセット可能でなければならない。
その場合、全ての計数器はクリアされ、FSMはスタンバ
イ(standby)モードになる。
第23図を参照すると、符号器(FSM)の主要な活動が
状態図の形で示されている。
上記の符号図の設計は、入力文字を文字バツフアにバ
ツフアし、次いで読み出してVLSMを更新することを必要
とする。代りの手法は、入力文字を比較サイクルの直後
にVLSMに挿入し、どこかにセーブする必要をなくすもの
である。
VLSMに対して発される命令の列は、そのときには異な
ることになろう。前述の手法においては、2の符合長に
対して次の命令を必要とする: 初期化(INIT)、比較(COMPARE)、比較、比較、出
力(OUTPUT)、更新(UPDATE)、更新。
この代りの手法においては、命令の列は以下のとおり
である: 初期化、比較、更新、比較、更新 次の比較サイクルはすぐ次のサイクルではなく1サイ
クル後に到来するので、符合結果をもう1サイクル遅延
させるために、各VLSMワード・セルにもう1つのフリツ
プフロツプが必要となる。
修正されたVLSM設計によつて可能とされた代替の符号
器アーキテクチヤは、文字バツフアとバツフア計数器と
が除去されるため、一層すつきりしたものになる。その
うえ、現在の符号化プロセスの出力サイクルと次の符号
化プロセスの初期化サイクルとが組み合わされることを
見るのが容易になる。
他の実施例は特許請求の範囲内にある。可変長ストリ
ング符合はデータ圧縮ではない応用、例えば、所望の文
字ストリングを見出すためのテキスト文字ストリングの
探索に使用することができる。VLSM機器は、単一のVLSM
機器によつて与えられるよりも長い履歴バツフアを持つ
が望ましい場合に連結されうる。
【図面の簡単な説明】
第1図はデータ圧縮を使用するデータ伝送システムのブ
ロツク図、第2図〜第5図はZL77アルゴリズムにおける
データ圧縮・圧縮解除手順を説明するための図、第6図
は修正ZL77アルゴリズムの図、第7図は更新後の修正ZL
77アルゴリズムの図、第8図はシストリツク・アレーを
用いて実行される修正ZL77アルゴリズムの図、第9図は
修正アルゴリズムのフローチヤート、第10図は古典的な
CAMセル構造のブロツク図、第11図は修正されたCAMセル
構造の図、第12図は修正された完全並列CAM構造の図、
第13図はVLSMハードウエアの機能ブロツク図、第14図は
VLSM符号化アルゴリズムの図、第15図はVLSMハードウエ
アの機能ブロツク図の詳細図、第16図はCAMワード・ア
レーのブロツク図、第17図はCAMワード・セルのブロツ
ク図、第18図はCAM符合セルのブロツク図、第19図は遅
延構造のブロツク図、第20図は優先アドレス符号化アル
ゴリズムのブロツク図、第21図は優先アドレス符号化ハ
ードウエアの図、第22図は符号器のブロツク図、第23図
は符号器の状態図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェームス・エイ・パスコ―アンダーソ ン アメリカ合衆国マサチューセッツ州 02149,ニーダム,ハイランド・アベニ ュー 1061 (72)発明者 マイケル・ガットマン アメリカ合衆国マサチューセッツ州 02159,ニュートン,カーライル・プレ ース 11 (56)参考文献 特開 昭60−116228(JP,A) (58)調査した分野(Int.Cl.6,DB名) H03M 7/40

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】記憶された第1データ要素列内に、所与の
    第2データ要素列のデータ・ストリングと符合する、記
    憶されたデータ要素の最長のストリングを見出すための
    装置において、 前記第1データ要素の列を記憶するための記憶装置; 第1データ要素列の多重データ要素を前記第2データ要
    素列の単一データ要素と比較し、符合が見出されたとき
    に信号を発する比較回路;および 前記データ・ストリングのデータ要素と記憶場所におけ
    るデータ要素との比較を含む反復動作を前記比較回路に
    反復的に行わせ、前記比較回路による符号信号の発生を
    結果的に生じないのはいつかに基づいて最長の符合した
    ストリングを決めるための制御回路(124,130); 少なくとも前記記憶装置および前記比較回路を含む複数
    のセル(122)のそれぞれにおいて、近接セル間の信号
    によって関係される前記セル,比較のため前記第2デー
    タ要素列の前記データ要素それぞれの反復を提供する前
    記セルおよびそれぞれの位置に前記第1データ要素列の
    前記データ要素の1つを保持するように構成される前記
    記憶装置; 前記比較回路であって、直列の比較器がそれぞれに異な
    った前記セルの1つによって構成され、前記比較器は前
    記第1データ要素列の前記データ要素の1つを所与の前
    記第2列と比較し、符合を見つけた場合に符合信号を発
    行する、比較器;および 前記比較器によって発行された前記符合信号を一時的に
    記憶するための遅延回路であって、異なる前記セルのそ
    れぞれ1つが前記第2データ要素列内の次のデータ要素
    上で次の反復を行うために使用し、前記記憶装置および
    前記比較回路はアドレッサブル・メモリの内容の組合せ
    によって構成され、コードワードの場合前記最長列を符
    号化するために充てられる符号回路および前記最長列を
    回復し前記コードワードを復号するために充てられる符
    号器によって更に構成され、最長符合列の長さの表示値
    を含むコードワードの場合、前記最長列の符号化するた
    めに充てられる前記符号回路によって構成される、遅延
    回路; を具備する装置。
  2. 【請求項2】前記制御回路が、前記反復動作の回数を計
    数し、所定の反復動作回数後に比較を終了するための手
    段を含む請求項1記載の装置。
  3. 【請求項3】前記記憶装置が前記第1データ要素の列の
    前記データ要素の1つをそれぞれ保持するための記憶場
    所を有し、 前記比較回路が、前記第1データ要素の列の1つと前記
    第2データ要素の列の所与のデータ要素とを比較し、符
    合が見出されたときに符合信号を発行する比較器の列に
    よって構成される、前記比較回路;および 遅延回路が、前記比較器によって発行された前記信号を
    一時的に記憶し、その後で前記列の隣接する比較器と結
    合し、前記第2のデータ要素列の次のデータ要素の比較
    において前記隣接する比較器が使用するように結合す
    る、遅延回路;によって構成されることを特徴とする請
    求項1記載の装置。
  4. 【請求項4】前記比較回路が、前記隣接する比較器から
    の前記遅延回路によって利用可能とされる遅延された信
    号が符合を指示する場合の除いて、前記符合信号の発出
    を禁止する論理部を含む請求項3記載の装置。
  5. 【請求項5】最初の反復動作で始まり、符合信号を生じ
    ない反復動作で終わる反復動作回数を計数し、この計数
    された回数に基づいて、前記最長の符合したストリング
    におけるデータ要素の数を決定する計数回路をさらに備
    える請求項3記載の装置。
  6. 【請求項6】計数回路であって、第1反復に始まり、符
    合信号で終わらない反復で終了するまで前記反復回数の
    計数をするために充てられ、計数された数に基づいて前
    記最長符合列の中の前記データ要素の数を判断する、計
    数回路によって更に構成される請求項3記載の装置。
  7. 【請求項7】前記計数回路であって、前記数が予め決め
    られる反復回数に達した場合前記反復を終了する信号を
    発行する、計数回路によって構成されることを特徴とす
    る請求項4記載の装置。
  8. 【請求項8】記憶された第1データ要素列内に、所与の
    第2データ要素列のデータ・ストリングと符合する、記
    憶されたデータ要素の最長のストリングを見出すための
    方法であって、 前記第1データ要素の列を記憶する段階; 第1データ要素列の多重データ要素を前記第2データ要
    素列の単一データ要素と比較する段階; 符合が見出されたときに信号を発行する段階; 前記比較する段階を反復して実行する段階であって、そ
    れぞれ反復が前記第2列のデータ要素と前記記憶された
    第1列の多重データ要素と比較を行なう、実行する段
    階;および、 前記第2データ要素列と符合が発生すると前記記憶され
    たデータ要素の最長ストリングを決定する段階であっ
    て、符合信号の発生を結果的に生じないのはいつかに基
    づいて最長の符合したストリングを決める、決定段階; 前記記憶する段階,前記比較する段階及び前記比較を実
    行する段階は、個々のセルで実行され、信号は関連する
    隣接セルに利用され、前記セルは比較のために前記第2
    データ要素列をそれぞれ反復して並列に提供し、記憶す
    る段階は前記第1データ要素列の前記データ要素の1つ
    を保持する記憶位置を含んで記憶する段階であって: 直列の比較器がそれぞれに異なった前記セルの1つによ
    って構成され、前記比較器は前記第1データ要素列の前
    記データ要素の1つを所与の前記第2列と比較し、符合
    を見つけた場合に符合信号を発行する、比較段階;およ
    び 前記比較段階によって発行された前記符合信号を一時的
    に記憶する段階を含んで構成される比較段階を実行する
    段階において、各符合信号が前記第2データ要素列内の
    次のデータ要素上で次の反復を行うために前記セルの異
    なる一つを使用する実行段階; によって構成されることを特徴とする方法。
  9. 【請求項9】データ要素の記憶された列内において、デ
    ータ要素の所与のデータ・ストリングと符合するデータ
    要素のストリングを識別するための装置において、 前記列の前記データ要素を保持し、絶対アドレスによっ
    てアドレスを指定することができる記憶場所と、 記憶されたデータ要素の前記ストリングの符合をどの記
    憶場所が保持するかを決定し、絶対アドレスによって該
    記憶場所を識別するための回路とを具備する請求項1記
    載の装置。
  10. 【請求項10】前記の決定するための回路が、アドレス
    可能な記憶場所に保持されている前記列の前記データ要
    素の各々を前記データ・ストリングの所与のデータ要素
    を比較する比較器と、符合を指示する少なくとも1つの
    前記アドレス可能な記憶場所の絶対アドレスを決定し且
    つ監視するアドレス回路とを備える請求項9記載の装
    置。
JP2013453A 1989-01-23 1990-01-23 可変長ストリング符合装置 Expired - Lifetime JP2830280B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US29975989A 1989-01-23 1989-01-23
US299759 1989-01-23

Publications (2)

Publication Number Publication Date
JPH02233025A JPH02233025A (ja) 1990-09-14
JP2830280B2 true JP2830280B2 (ja) 1998-12-02

Family

ID=23156170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013453A Expired - Lifetime JP2830280B2 (ja) 1989-01-23 1990-01-23 可変長ストリング符合装置

Country Status (8)

Country Link
US (1) US5329405A (ja)
EP (1) EP0380294B1 (ja)
JP (1) JP2830280B2 (ja)
AT (1) ATE152260T1 (ja)
AU (1) AU624205B2 (ja)
CA (1) CA2007168C (ja)
DE (1) DE69030519D1 (ja)
HK (1) HK1009317A1 (ja)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5373290A (en) * 1991-09-25 1994-12-13 Hewlett-Packard Corporation Apparatus and method for managing multiple dictionaries in content addressable memory based data compression
CA2077271C (en) * 1991-12-13 1998-07-28 David J. Craft Method and apparatus for compressing data
FR2687004B1 (fr) * 1992-01-31 1994-03-18 France Telecom Architecture de memoire associative.
US5339076A (en) * 1992-04-27 1994-08-16 Integrated Information Technology Data compression using content addressable memory
US5488717A (en) * 1992-07-06 1996-01-30 1St Desk Systems, Inc. MTree data structure for storage, indexing and retrieval of information
NL9300310A (nl) * 1993-02-19 1994-09-16 Oce Nederland Bv Inrichting en werkwijze voor syntactische signaal-analyse.
US5475389A (en) * 1993-02-22 1995-12-12 Hyundai Electronics Industries Co., Ltd. Adaptive variable-length coding apparatus
US6000008A (en) * 1993-03-11 1999-12-07 Cabletron Systems, Inc. Method and apparatus for matching data items of variable length in a content addressable memory
US5454094A (en) * 1993-06-24 1995-09-26 Hal Computer Systems, Inc. Method and apparatus for detecting multiple matches in a content addressable memory
JPH07114577A (ja) * 1993-07-16 1995-05-02 Internatl Business Mach Corp <Ibm> データ検索装置、データ圧縮装置及び方法
SG44604A1 (en) * 1993-09-20 1997-12-19 Codex Corp Circuit and method of interconnecting content addressable memory
DE4334294C1 (de) * 1993-10-08 1995-04-20 Ibm Prozessor für Zeichenketten variabler Länge
US5563595A (en) * 1993-12-23 1996-10-08 International Business Machines Corporation Method and apparatus for compressing data
US5525982A (en) * 1994-04-15 1996-06-11 International Business Machines Corporation Method and means for character string pattern matching for compression and the like using minimal cycles per character
US5687254A (en) * 1994-06-06 1997-11-11 Xerox Corporation Searching and Matching unrecognized handwriting
US5535210A (en) * 1994-07-29 1996-07-09 Motorola, Inc. Method and system for resolution of channel access in data transmission systems
US5649149A (en) * 1994-08-01 1997-07-15 Cypress Semiconductor Corporation Integrated content addressable memory array with processing logical and a host computer interface
US5883975A (en) * 1994-09-12 1999-03-16 Nippon Steel Corporation Compression and decompression methods on two-dimensional image data
US5553272A (en) * 1994-09-30 1996-09-03 The University Of South Florida VLSI circuit structure for determining the edit distance between strings
JPH08223226A (ja) * 1994-11-23 1996-08-30 Internatl Business Mach Corp <Ibm> 短いデータ長メッセージの圧縮方法及びシステム
US5680601A (en) * 1994-12-14 1997-10-21 Hewlett-Packard Company Compression system for reducing the occurrence of a literal prefix
US5701256A (en) * 1995-05-31 1997-12-23 Cold Spring Harbor Laboratory Method and apparatus for biological sequence comparison
US5659755A (en) * 1995-11-20 1997-08-19 International Business Machines Corporation Method and system in a data processing system for efficiently compressing data using a sorting network
US5828324A (en) * 1996-06-17 1998-10-27 Hewlett-Packard Company Match and match address signal generation in a content addressable memory encoder
US5978885A (en) * 1996-06-17 1999-11-02 Hewlett Packard Co. Method and apparatus for self-timing associative data memory
US6069573A (en) * 1996-06-17 2000-05-30 Hewlett-Packard Company Match and match address signal prioritization in a content addressable memory encoder
US5654703A (en) * 1996-06-17 1997-08-05 Hewlett-Packard Company Parallel data compression and decompression
US5995963A (en) * 1996-06-27 1999-11-30 Fujitsu Limited Apparatus and method of multi-string matching based on sparse state transition list
US5749087A (en) * 1996-07-30 1998-05-05 International Business Machines Corporation Method and apparatus for maintaining n-way associative directories utilizing a content addressable memory
US5940825A (en) * 1996-10-04 1999-08-17 International Business Machines Corporation Adaptive similarity searching in sequence databases
JP3036467B2 (ja) * 1997-06-19 2000-04-24 日本電気株式会社 最長一致検出装置
US6151658A (en) * 1998-01-16 2000-11-21 Advanced Micro Devices, Inc. Write-buffer FIFO architecture with random access snooping capability
FR2783618B1 (fr) 1998-09-23 2002-01-04 France Telecom Procede de mise a jour d'une memoire associative de type trie, et routeur mettant en oeuvre un tel procede
NO309169B1 (no) 1998-11-13 2000-12-18 Interagon As Sokeprosessor
FR2789778B1 (fr) * 1999-02-12 2001-09-14 France Telecom Procede pour associer des references d'acheminement a des paquets de donnees au moyen d'une memoire trie, et routeur de paquets appliquant ce procede
US6678838B1 (en) 1999-08-23 2004-01-13 Advanced Micro Devices, Inc. Method to track master contribution information in a write buffer
IL151867A0 (en) * 2001-02-01 2003-04-10 Memcall Inc Memory system for searching a longest match
US7107478B2 (en) * 2002-12-05 2006-09-12 Connex Technology, Inc. Data processing system having a Cartesian Controller
US6760821B2 (en) * 2001-08-10 2004-07-06 Gemicer, Inc. Memory engine for the inspection and manipulation of data
US7383421B2 (en) * 2002-12-05 2008-06-03 Brightscale, Inc. Cellular engine for a data processing system
US7069386B2 (en) * 2001-08-10 2006-06-27 Connex Technology, Inc. Associative memory device
US6665202B2 (en) 2001-09-25 2003-12-16 Integrated Device Technology, Inc. Content addressable memory (CAM) devices that can identify highest priority matches in non-sectored CAM arrays and methods of operating same
US7149780B2 (en) * 2001-12-14 2006-12-12 Pitney Bowes Inc. Method for determining e-mail address format rules
US7134143B2 (en) * 2003-02-04 2006-11-07 Stellenberg Gerald S Method and apparatus for data packet pattern matching
US7508985B2 (en) * 2003-12-10 2009-03-24 International Business Machines Corporation Pattern-matching system
US20060235662A1 (en) * 2005-04-15 2006-10-19 Argentar David R Eliminating redundant patterns in a method using position indices of symbols to discover patterns in sequences of symbols
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
US7805392B1 (en) 2005-11-29 2010-09-28 Tilera Corporation Pattern matching in a multiprocessor environment with finite state automaton transitions based on an order of vectors in a state transition table
EP1971958A2 (en) * 2006-01-10 2008-09-24 Brightscale, Inc. Method and apparatus for processing algorithm steps of multimedia data in parallel processing systems
US7877401B1 (en) * 2006-05-24 2011-01-25 Tilera Corporation Pattern matching
WO2008027567A2 (en) * 2006-09-01 2008-03-06 Brightscale, Inc. Integral parallel machine
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
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
US20080059762A1 (en) * 2006-09-01 2008-03-06 Bogdan Mitu Multi-sequence control for a data parallel system
US20080244238A1 (en) * 2006-09-01 2008-10-02 Bogdan Mitu Stream processing accelerator
US20080055307A1 (en) * 2006-09-01 2008-03-06 Lazar Bivolarski Graphics rendering pipeline
US20080059467A1 (en) * 2006-09-05 2008-03-06 Lazar Bivolarski Near full motion search algorithm
US7849399B2 (en) * 2007-06-29 2010-12-07 Walter Hoffmann Method and system for tracking authorship of content in data
US8028125B2 (en) * 2007-08-27 2011-09-27 Comtech Ef Data Corp. Content-addressable memories and state machines for performing three-byte matches and for providing error protection
US10007486B2 (en) 2008-12-01 2018-06-26 Micron Technology, Inc. Systems and methods to enable identification of different data sets
US8281395B2 (en) * 2009-01-07 2012-10-02 Micron Technology, Inc. Pattern-recognition processor with matching-data reporting module
US9891842B2 (en) * 2015-09-08 2018-02-13 Micron Technology, Inc. Searching data in parallel using processor-in-memory devices
US11314807B2 (en) 2018-05-18 2022-04-26 Xcential Corporation Methods and systems for comparison of structured documents
US11954770B2 (en) 2021-11-12 2024-04-09 Rockwell Collins, Inc. System and method for recreating graphical image using character recognition to reduce storage space
US11915389B2 (en) 2021-11-12 2024-02-27 Rockwell Collins, Inc. System and method for recreating image with repeating patterns of graphical image file to reduce storage space
US11842429B2 (en) 2021-11-12 2023-12-12 Rockwell Collins, Inc. System and method for machine code subroutine creation and execution with indeterminate addresses
US11748923B2 (en) 2021-11-12 2023-09-05 Rockwell Collins, Inc. System and method for providing more readable font characters in size adjusting avionics charts
US11887222B2 (en) 2021-11-12 2024-01-30 Rockwell Collins, Inc. Conversion of filled areas to run length encoded vectors

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3465299A (en) * 1967-01-26 1969-09-02 Ibm Information translating data comparing systems
US3568156A (en) * 1967-08-09 1971-03-02 Bell Telephone Labor Inc Text matching algorithm
US4205302A (en) * 1977-10-28 1980-05-27 Einar Godo Word recognizing system
EP0001808A3 (en) * 1977-10-28 1979-05-30 Einar Godo Method and apparatus for binary word recognition
US4164025A (en) * 1977-12-13 1979-08-07 Bell Telephone Laboratories, Incorporated Spelled word input directory information retrieval system with input word error corrective searching
GB1588827A (en) * 1978-05-31 1981-04-29 System Dev Corp Data processor method and means for determining degree of match between two data arrays
US4285049A (en) * 1978-10-11 1981-08-18 Operating Systems, Inc. Apparatus and method for selecting finite success states by indexing
US4490811A (en) * 1979-03-14 1984-12-25 Yianilos Peter N String comparator device system circuit and method
JPS55157799A (en) * 1979-05-29 1980-12-08 Nippon Electric Co High efficiency pattern matching unit
US4355302A (en) * 1980-09-12 1982-10-19 Bell Telephone Laboratories, Incorporated Spelled word recognizer
US4422158A (en) * 1980-11-28 1983-12-20 System Development Corporation Method and means for interrogating a layered data base
JPS57127247A (en) * 1980-12-16 1982-08-07 Rca Corp Programmable comparator
US4450520A (en) * 1981-03-11 1984-05-22 University Of Illinois Foundation Method and system for matching encoded characters
CA1166706A (en) * 1981-06-23 1984-05-01 Ernst A. Munter Comparator circuit and method
GB2104264B (en) * 1981-07-27 1985-02-27 Standard Telephones Cables Ltd Code recognition circuit
JPS58103045A (ja) * 1981-12-15 1983-06-18 Sony Tektronix Corp 信号発生順序検出回路
US4453217A (en) * 1982-01-04 1984-06-05 Bell Telephone Laboratories, Incorporated Directory lookup method and apparatus
US4625295A (en) * 1982-01-25 1986-11-25 Skinner James T Textual comparison system for locating desired character strings and delimiter characters
US4689768A (en) * 1982-06-30 1987-08-25 International Business Machines Corporation Spelling verification system with immediate operator alerts to non-matches between inputted words and words stored in plural dictionary memories
US4539549A (en) * 1982-12-30 1985-09-03 International Business Machines Corporation Method and apparatus for determining minimum/maximum of multiple data words
US4558302A (en) * 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
US4550436A (en) * 1983-07-26 1985-10-29 At&T Bell Laboratories Parallel text matching methods and apparatus
US4760523A (en) * 1984-06-29 1988-07-26 Trw Inc. Fast search processor
DE3432837A1 (de) * 1984-09-06 1986-03-06 Dr. Gerald Knabe GmbH, 4052 Korschenbroich Datenkompressions- und datenexpandiereinrichtung zum uebertragen bzw. speichern von daten
AU7915387A (en) * 1986-09-09 1988-04-07 Inventronic Data Systems A.B. Arrangement for data compression
US5014327A (en) * 1987-06-15 1991-05-07 Digital Equipment Corporation Parallel associative memory having improved selection and decision mechanisms for recognizing and sorting relevant patterns
US4897814A (en) * 1988-06-06 1990-01-30 Arizona Board Of Regents Pipelined "best match" content addressable memory

Also Published As

Publication number Publication date
EP0380294A1 (en) 1990-08-01
US5329405A (en) 1994-07-12
CA2007168A1 (en) 1990-07-23
HK1009317A1 (en) 1999-05-28
EP0380294B1 (en) 1997-04-23
JPH02233025A (ja) 1990-09-14
CA2007168C (en) 1999-12-14
DE69030519D1 (de) 1997-05-28
ATE152260T1 (de) 1997-05-15
AU4704089A (en) 1990-07-26
AU624205B2 (en) 1992-06-04

Similar Documents

Publication Publication Date Title
JP2830280B2 (ja) 可変長ストリング符合装置
US5440753A (en) Variable length string matcher
US5410671A (en) Data compression/decompression processor
US5150430A (en) Lossless data compression circuit and method
US5485526A (en) Memory circuit for lossless data compression/decompression dictionary storage
JP3309028B2 (ja) 連想記憶メモリ内の複数辞書管理を改良したlempel−zivデータ圧縮のための装置、及び方法
US4314356A (en) High-speed term searcher
US5532693A (en) Adaptive data compression system with systolic string matching logic
EP0573208B1 (en) Apparatus and method for managing multiple dictionaries in content addressable based data compression
EP0568305A2 (en) Data compression
EP0470798B1 (en) Dictionary searching system
US4095283A (en) First in-first out memory array containing special bits for replacement addressing
US6760821B2 (en) Memory engine for the inspection and manipulation of data
JPH07249996A (ja) 圧縮符号復元方法及び装置
JP2979106B2 (ja) データ圧縮
US11120867B2 (en) Hardware compression with search string matching
US5930790A (en) String-match array for substitutional compression
JP3611319B2 (ja) データの圧縮に必要な時間を短縮するための方法および装置
JPS6345131B2 (ja)
EP0411691B1 (en) Memory architecture and circuit for hashing
JPH09246990A (ja) 可変長符号復号化器
JP3038234B2 (ja) データ圧縮装置の辞書検索方式
JP2535655B2 (ja) 辞書検索方式
Hou A VLSI architecture for a data compression engine in a communications network
Stauffer et al. Systolic self-organizing lists under transpose

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080925

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090925

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100925

Year of fee payment: 12

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100925

Year of fee payment: 12