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
Links
- 230000015654 memory Effects 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 16
- 230000003111 delayed effect Effects 0.000 claims description 5
- 230000003252 repetitive effect Effects 0.000 claims 2
- 238000012544 monitoring process Methods 0.000 claims 1
- 230000011664 signaling Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 19
- 238000013144 data compression Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- ORQBXQOJMQIAOY-UHFFFAOYSA-N nobelium Chemical compound [No] ORQBXQOJMQIAOY-UHFFFAOYSA-N 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3086—Compression; 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90339—Query processing by using parallel associative memories or content-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/02—Indexing scheme relating to groups G06F7/02 - G06F7/026
- G06F2207/025—String search, i.e. pattern matching, e.g. find identical word or best match in a string
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern 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
する。
別のデータ・ストリングの文字に対して符合(match)
させるものであつて、統計的マルチプレクサ及びモデム
を使用するデータ通信システムにおけるような例えばデ
ータ圧縮アルゴリズムに有用である。
的なデータ通信システム10において、送信機12からのデ
ータは圧縮を受け、圧縮されたデータは通信チヤンネル
16(第1図ではエラーのない通信チヤンネルであるとす
る)を介して送信される。該チヤンネルの他端では、圧
縮されたデータはデコンプレス20され、元のデータ・ス
トリームが再生される。
縮の実質的な利点は、圧縮及びデコンプレシヨンの過程
に関連した計算コストによつて相殺されがちである。
′77アルゴリズム(ZL77)があり、これは、可変長入
力・固定長出力の部類(V−F類)のデータ圧縮アルゴ
リズムに属する。
おいては、1度より多く発生するデータがあり、特に、
データ・ストリームの局部領域においては1度より多く
発生するという単純な観察に基づいている。例えば、テ
キスト・データのストリームにおいては、「the」とい
う語は頻繁に出現する傾向にある。データ源が最近送出
したデータの履歴を(いわゆる履歴バツフアに該データ
を記憶することによつて)監視するならば、送出すべき
現在のデータの連続的な要素を記憶された履歴データの
連続的な要素と比較することにより、データ源は一連の
データの余剰な発生を見出すことができる。圧縮過程は
可変長ストリング符合と呼ばれる。符合が見出される
と、送信機は、全部の冗長な列を再送出する代りに、履
歴バツフアでの冗長データ列の以前の発生の場所を指す
コードワードとして該列を符号化し、その長さに注目す
る。コードワードを表すのに必要なビツト数が冗長デー
タ列を表すのに必要なビツト数より少ないならば、デー
タ圧縮が達成される。チヤンネルの他端では、最近送出
したデータの履歴バツフアを同じように保持するデコー
ダは履歴バツフアでの特定された場所に注目することに
よつてコードワードを復号する。
ストリームの文字が現われた順序を示すように番号が付
けられた16個のセル13(小さな番号のセルの方が最近の
データを保持する)を有する。送出を待つデータ文字は
履歴バツフアの右に示されている。送出されるべき次の
文字はSUPERBである。ZL77により、待つている文字の中
の最初の5文字SUPERが履歴バツフアの同様のストリン
グと冗長であり、インデツクスと長さとイノベーシヨン
文字フイールドとから成るコードワード15として符号化
することができると決定される。インデツクス17は、履
歴バツフアにおいて何個の文字を逆戻りすると符合した
ストリングが始まるかを示す値12を有し、長さ19は符合
した文字の長さを示す値5を有し、イノベーシヨン文字
21は、待つている入力ストリングの文字の中で履歴バツ
フアのストリングと符号しなかつた最初の文字である。
タ23を有効に左ヘスライドさせ、最新の入力データを履
歴バツフアの右へ挿入させることによつて、データ源は
その履歴バツフアを更新する。そこで、データ源が次の
入力データを符号化する過程が開始される。
歴バツフア25を保持し、送信機がその履歴バツフアを更
新するのと同一のやり方で履歴バツフア25を更新する。
コードワードを受信すると、データ受信機はインデツク
ス・フイールドを使つて最長の符合の場所を見出し、長
さを使つて履歴バツフアから読み出すべき文字の個数を
決定し、更らに、当該コードワードに現われたときのイ
ノベーシヨン文字を取り出す。そこで、第5図に示すよ
うに、コードワードの復号が完了すると、履歴バツフア
の文字を有効に左ヘスライドさせ、復号された文字とイ
ノベーシヨン文字とを右から挿入することによつて、デ
ータ受信機はその履歴バツフアを更新する。
1つのハードウエア・アーキテクチヤはコンテント・ア
ドレサブル・メモリ(content addressable memory;CA
M)である。CAMは、データを記憶しその内容によつてア
クセスすることができる多数のセルから成る。読み出し
サイクル期間に、CAMはデータを取り込み、該データが
見出されるアドレスを出力する。
れた列内に、所与のデータ要素のデータ・ストリングと
符合する、記憶されたデータ要素の最長のストリングを
見出すステツプであつて、当該符合する列がデータ要素
の列を記憶することによつて見出されるステツプと、前
記データ・ストリングのデータ要素を前記列の対応する
要素と比較するステツプと、符合が見出されたときに信
号を発するステツプと、前記の比較を反復して行わせる
ステツプであつて、各々の反復が前記データ・ストリン
グデータの要素と記憶場所のデータ要素との比較を含む
ステツプと、反復が比較回路による符合信号の発出を結
果しないときに基づいて最長の符合したストリングを決
定するステツプとを特徴とする。
い、各々の記憶場所は前記列のデータ要素の1つを保持
する。前記列の全てのデータ要素は前記データ・ストリ
ングの所与のデータ要素と比較される。比較の結果とし
て発生される信号は一時記憶され、その後、前記列のそ
の隣接するデータ要素を前記データ・ストリングの次の
所与のデータ要素と比較するのに利用される。符合信号
の発生は、隣接するデータ要素のために一時的に記憶さ
れた信号が符合を指示する場合を除いて禁止される。反
復回数が計数され、符合信号を結果として生じない反復
で終了する。符合する最長のストリングのデータ要素数
がこの計数に基づいて決定される。計数器が所定値に達
した後に反復は停止される。以上の構成は連想コンテン
ト・アドレサブル・メモリによつて実行される。データ
要素は8ビツト・バイトである。最長のストリングはコ
ードワードとして符号化され、その後に復号化されて最
長のストリングが再生される。
た列内で、データ要素の所与のストリングと符合するデ
ータ要素のストリングを識別し、符合するストリングが
絶対的アドレスによつて識別されることを特徴とする。
ての記憶された要素は前記ストリングの所与のデータ要
素と比較され、符合を有する1個のアドレス可能な記憶
場所の絶対アドレスが比較過程の各反復において保持さ
れる。1個のアドレス可能な記憶場所は各反復に課され
る任意の規則によつて任意に選択される。符合する前記
ストリングのコードワードとしての符号化は絶対アドレ
スに基づく。コードワードは符合されたストリングの長
さと場所とを指示する値を含む。
符号化及び復号を可能にする。ストリング符合に必要と
されるステツプの数は、符合されるストリングの長さに
依存する。コンテント・アドレサブル・メモリ技術を用
い、VLSIチツプ上で実行可能である。
び特許請求の範囲から明確になろう。
における符合するストリングの場所のインデツクスを与
えることにより修正される。第6図を参照すると、コー
ドワード32のインデツクス部30は、ここでは値4を有す
る。この値は最長の符合が始まる履歴バツフアでの絶対
場所を特定しており、古典的ZL77アルゴリズムにおける
ような、履歴バツフアにおける最も新らしい文字に対す
る場所を特定するものではない。長さ34は値5を有する
ので、送信機はコードワード4,5を送信する。受信機
は、相対的インデツクス操作に必要な減算をする必要が
なく、履歴バツフアに対するポインタとしてインデツク
スを使用する。
合、送信機はデータ列の8ビツトの生まの文字(例え
ば、ASCII又はEBCIDICメツセージ)をインデツクス・フ
イールドに挿入し、長さフイールドに0を置く。長さ0
を検出すると、受信機は、履歴バツフアから読み出さず
に、及び、データをポインタと区別するためのフラグを
必要とすることなく、インデツクス・フイールドから生
まの文字を取り出す。本発明においては、イノベーシヨ
ン文字はコードワードの一部として符号化されない。む
しろ、第7図を参照するに、イノベーシヨン文字は符号
化されるべき次の入力ストリングの最初の文字36とな
る。
ムは履歴バツフアを維持し探索するための機構として、
修正されたコンテスト・アドレサブル・メモリを使用す
る。第8図において、履歴バツフアは0〜7までの番号
が付けられた8個の単純なプロセツサ40の列38として形
成されている。各プロセツサは比較器とローカル・メモ
リ(図示せず)を有する。全部のプロセツサは文字スト
リームが出現する共通データ・バス(図示せず)への同
時アクセスを有する。
グ(文字ストリーム)がabcdであるとする。プロセツサ
は同時に周期的に作動する。いわゆる比較(COMPARE)
サイクルでは、(1)プロセツサのメモリにおける文字
がデータ・バス上の現在の文字と符合し、(2)該プロ
セツサの左隣りのプロセツサが前の比較サイクルにヒツ
ト(hit)を宣言(assert)した場合、当該プロセツサ
はヒツトを宣言する。〔修正されたアルゴリズムは各プ
ロセツサにヒツトを宣言させることによつて前記列を初
期化する(初期化サイクル)。ヒツトは第8図ではプロ
セツサの下側の矢印で示されている。〕文字Fa」がデー
タ・バスを介して全部のプロセツサへ送られると(比較
「a」サイクル)、プロセツサ0,1,4,7はヒツト(矢
印)を示す。なぜなら、それらの内容は文字「a」と符
合し、それらの左隣りは前の(初期化)サイクルでヒツ
トを持つたからである。次いて、修正されたアルゴリズ
ムは符合長を監視する長さ計数器42を増分する。同時
に、ヒツトを持つセルの1つのインデツクス44が記録さ
れる。複数のセルがヒツトを持つことがあるので、規定
どおりに、修正されたアルゴリズムはヒツトを持つ最左
端のプロセツサのインデツクスを単に記録する。
データ・バスを介して送出され、プロセツサ2のみがヒ
ツトを持つ。再びアルゴリズムは長さ計数器を増分し、
ヒツトを持つ最左端のプロセツサ(2)のインデツクス
を記録する。
データ・バスを介して送出され、プロセツサ6が「c」
を収容しているけれども、プロセツサ3のみがヒツトを
宣言する。これは、プロセツサ6の左隣りのプロセツサ
5が前の比較サイクルでヒツトを宣言しなかつたからで
ある。再び、アルゴリズムは長さ計数器を増分し、ヒツ
トした最左端のプロセツサのインデツクスを記録する。
データ・バスを介して送出される。ヒツトを宣言するプ
ロセツサはなく、これは最長の符合が見出されたことを
示すことになる。
字がどこで見出されたかを示している。最初の符合した
文字は絶対インデツクスから符合長を差し引き、1を加
えることによつて見出される。この例においては、最長
の符合はインデツクス=3−3+1即ち1で始まる。し
たがつて、送信機は「abc」を1,3として符号化して送信
する。
ると、最長の符合である可能性を持つストリングが分離
される。有意義なことに、探索時間は履歴バツフアのサ
イズではなく符合長に依存する。例えば、Lが符合長で
あれば、最長の符合を見出すのに(L+1)個の文字を
比較るれば足り、従来のハツシング(hashing)即ちツ
リー探索データ構造よりもずつと高速である。
レー・インプリメンテーシヨン(systolicarray implem
entation;M.E.ゴンザレス・スミス及びJ.A.ストーラー
著「データ圧縮のための並行アルゴリズム」コンピユー
タ機械協会誌、第32巻第2号、1985年4月、第344〜373
ページに記載されている)と比較して、このアルゴリズ
ムは著しく低い潜伏(latency)を持つ。全部のCAMセル
はそれらの内容を同一の入力文字と同時に比較するの
で、最長の符合が見出されると直ちにコードワードを生
成することができる。古典的なシストリツク・アレーに
おいては、潜伏(latency)は履歴バツフアのサイズに
常に比例するが、応用によつては受容不可能なほど長い
ことがある。
示している。
ウエア・アーキテクチヤはコンセント・アドレサブル・
メモリ(CAM)である。連想メモリとしても知られてい
るCAMは、データを記憶することができるセルであつ
て、(従来のメモリのようにアドレスではなく)その内
容によつてアクセスすることができ、データが見出され
たアドレスを伝えるセルを有する。
(第8図の単純なプロセツサの1つに対応する)各CAM
セル100はメモリ要素102と比較器104の両方を有する。
各セルにアドレスすることができる。CAMセルに接続さ
れたグローバル・データ・バス106はデータ(文字スト
リーム)を全てのセルへ運ぶ。CAMメモリ要素のデータ
がバスで送られたデータ108と整合すると、CAMセルは符
合を示すヒツト信号を宣言する。
CAMセル122は、遅延されたヒツトを各セルがその右隣り
のセルへ伝えることができるようにする遅延回路124
(フリツプフロツプ)を含む。それぞれの比較器は論理
和で結合されついで遅延回路に結合される。各セルはラ
イン126により左隣りのセルから遅延された符合の結果
を受け取る。
サイクル(t−1)での左隣りのセル(n−1)のヒツ
ト信号との論理積130である。ヒツトn−1,t−1は前の
比較サイクルでの左隣りのセルの符合の結果であり、ヒ
ツトn,t−1は前の比較サイクルでのCAMセルnの符合の
結果である。遅延回路124は1比較サイクル後にその入
力信号をその出力へ伝える。
信号126はその隣りのセルとのみ相互接続される。これ
らの修正は2つの基準を実施する。追加の制御論理は最
長の符合のアドレスを決定するのに必要とされる。
リング符合器(variable length string matcher;VLS
M)130の一部を成す。
には、4つの別個の動作、即ち「初期化」(INIT)、
「比較」(COMPARE)、「出力」(OUTPUT)及び「更
新」(UPDATE)が必要である。
の比較サイクルに対して設定させるように符号化する各
ストリングに対して1度しか使用されない。「初期化」
はセルの内容をクリヤしない。比較サイクルにおいて、
入力ストリングの文字はチエツクのために全てのCAMセ
ルに対してデータ・バスに置かれる。少くとも1つの符
合が生じると、別の比較サイクルが入力ストリングの次
の文字で始まる。インデツクスと長さとの要素から成る
コードワードが出力サイクル期間に生成される。最後
に、各更新サイクルにより、1個の文字が履歴バツフア
に挿入される。全部の符合したストリングが履歴バツフ
アに書き込まれるまで、これらが反復される。
ち、文字(バイト)のストリームを運ぶ8ビツトのデー
タ・バス「データ〔7:0〕」、(1024セル長の履歴バツ
フアであるとして)10ビツトのアドレス・バス「アドレ
ス〔9:0〕」、イネーブル線及び2本の選択線S1,S0。
「データ〔7:0〕」は比較又は更新されるべき文字を含
む。「アドレス〔9:0〕」は文字(バイト)が挿入され
る履歴バツフア場所を特定する。
号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(有限状態マシンによつて実施される)
によつて監視され、比較サイクルが接続されるべきか否
かが決定される。
htforward)である。最長の符合を見出すために、制御
器132は初期化命令を選択する。その次のサイクルにお
いて、入力ストリングの最初の文字はデータ・バスに乗
せられ、比較モードが選択される。「CAM−ヒツト」が
宣言されると、次の文字がデータ・バスに乗せられ、別
の比較命令が発せられる。比較サイクル後に「CAM−ヒ
ツト」が宣言されなくなるまで、制御器132は以上のス
テツプを反復する。また、「CAM−ヒツト」は長さ計数
器133をクロツクする。それまでに、CAMの最長の符合し
たストリングの最後の文字に対する「インデツクス」が
レデイになるので、制御器は「出力」を発して「インデ
ツクス」をフエツチする。履歴バツフアの1つの文字を
更新するために、制御器は「データ〔7:0〕」に文字を
乗せ、更新モードを選択する。更新サイクルを以下に詳
述する。
は入力FIFOから除去され、場所5で始まる(第14図の例
における)履歴バツフアに挿入される。履歴バツフアの
変化は第14図の右下に太い文字で示される。場所0−7
の文字は入力ストリングabcのために空きを作る左ヘシ
フトされることはない。これは、こうした更らなるデー
タ転送は履歴バツフアへ最古の文字を書き込むことによ
つて回避されるからである。
イト連想CAMワード・アレー134(第12図に対応)を内部
的に含む。アレー134は履歴バツフアとして動作し、並
列比較を実行する。アレー134には、行符号器136、行復
号器138、行符号器140、行復号器142が接続される。デ
ータ・バツフア144はアレーとデータ・バス146との間に
接続される。また、VLSM130はフリツプフロツプ(FFと
表示されている)、制御機能モード復号器148、マルチ
プレクサなどの支持論理部を含んでいる。
ると、入力としてS1及びS2を取り、4つの線「初期
化」、「比較」、「書込み」、「読取りADDR」のうちの
1つを適宜宣言する。「初期化」はアレーの全てのCAM
ワードをスルーさせる。
器の出力側の「符号化」線を選択し、アドレス符号化の
目的で行を選択する。また、COMPは行復号器への入力を
「アドレス〔9:4〕」と行符号器の出力との間で切り換
える。「書込み」は更新サイクルで宣言される。「書込
み」は「選択」線とデータ書込みのために1個のCAMワ
ードのアドレスを指定する列復号器とをイネーブルす
る。最後に、「読出し−ADDR」は三状態装置154に対す
る出力イネーブルとして動作する。第15図には示されて
いないが、2つの重複しないクロツク信号phi1,phi2が
各CAMワードをスルーさせる。
と行復号器へ行く6ビツト部分とに分解される。イネー
ブルされると、行復号器は64本の線の1つを宣言する。
「書込み」が宣言されると、これらの線は、書込みサイ
クル中は行イネーブルとして動作する64本の「選択」線
に接続される。「比較」が宣言されると、64本の「符号
化」線は行復号器の出力を運ぶ。
線と列符号器へ行く16本の垂直「V−符合」線を生成す
る。符号器はそれぞれ6本及び4本のアドレス線を生成
し、これらは結合されて10ビツトの「インデツクス」を
形成する。また、行符号器は「CAM−ヒツト」信号を発
生する。
24)個のワード・セルがあり、そのうちの代表的な3×
3(=9)個のワード・セルが図示されている。この2
次元的な配列は、特に多数のワード・セルに対する小型
なVLSIレイアウトにとつて望ましい。
ト・バイト・ストリーム)は全てのワード・セルに達し
ている。「選択」線は更新サイクル期間のみ使用され、
その他の期間は高インピーダンスである。「選択」線は
更新サイクル期間には行アドレス復号器の出力に接続さ
れ、データ書込みのために1つの行をイネーブルする。
「初期化」は復号器148の出力であり、全てのワード・
セルに供給される(第18図)。
合」線は同一の行又は列上の他の全てのCAMワードとワ
イヤード・オアされ、phi1の期間はハイにプリチヤージ
される。各「H−符合」線は、当該行の少くとも1個の
CAMワードがphi2の期間に符合を持つならば、ローに下
げられる。
力である。更らに、最も大きい番号のワード・セルから
の「ヒツト」は最も小さい番号のワード・セルへの入力
である。例えば、ワード・セル8の「ヒツト」出力はワ
ード・セル0の「ヒツト」入力に接続される。一貫した
アドレス指定を維持するために、行の最後のワードから
の「ヒツト」は次の行の最初のワードへ送られなければ
ならない。大きなアレーの場合、線が極めて長いので、
不要な伝搬遅延が生じることがである。しかし、線の長
さはアレーを水平に“折り畳む”ことができるならば最
小としうる。
セルである。このCAMビツト・セルは上部に標準的な6
個のトランジスタのスタテイツクRAMセル・トポロジを
有し、下半分に、等価論理機能を実行する3個の別のト
ランジスタを有する。
合サイクルの期間に、「ビツト」線上のデータがセルに
記憶されたビツト値と同一であるならば、Mはハイを維
持する。その他の場合、Mはローに下げられて非符合を
指示する。宣言されると、「選択」線は「ビツト」線及
び「ビツト*」線上の値を記憶素子に書き込ませる。
M符合セルを形成する。線Mは8ビツト構成においてワ
イヤ・アンドされる。したがつて、少くとも1個のビツ
ト・セルが非符合を検出すると、線Mはローとなる。
高いレベルにある。第18図はCAMワード・セルの内部構
造を示している。CAM符合セルはワード・セルの最大の
要素である。残りのものはランダム論理部と制御線であ
る。
の比較サイクルでの左のワード・セルの符合結果である
「ヒツト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が形成され、これは正しい。
化」線の存在を説明する。第18図において、「H−符
合」線は比較サイクル期間に行符号器に入る。符号化さ
れた行アドレスは行復号器へ送られる。同じアイクルに
おいて、行復号器の出力は「符号化」線に接続され、そ
れにより、1個の「符号化」線のみが宣言される(即
ち、1つの行がイネーブルされる)。ワード・セルの
「V−符合」は、当該行に対する「符号化」線が宣言さ
れ、「ヒツトn」も宣言された場合にのみローになる。
この制限なしには、最も小さい番号のワード・セルの正
しいアドレスを符号化することはできない。第20図はア
ドレス符号化シーケンスを要約したものである。
プリチヤージされ、同一の行のワード・セルとワイヤー
ドオアされている。これは、それぞれの垂直「V−符
合」線についても同じである(ただし、同一の行のワー
ド・セルとワイヤードオアされている点で違いがあ
る)。
レスの符号化が最初に行われなければならない。その結
果の行アドレスは行復号器へ送られる。行復号器の出力
は「符号化」線へ送られ、1つの行をイネーゴルしてそ
の垂直「V−符合」線を列アドレス符号器へ伝搬し、垂
直アドレスを符号化する。アドレス符号器は独特なアド
レスを符号化するために多重符合を解消する責任を有す
る。同時応答を仲裁する方法はいくつかある。設計上実
行される一つの方法は優先符号化、即ち、最低のアドレ
スを有するCAMワードを符号化することである。
状に構成される。その規則性はVLSMの実施に特に適して
いる。さらに、リツプル・チエイン(ripple chain)手
法よりも広い面積をとるが、かなり高速な回路である。
第21図の設計は、同一構造に優先順位付けと2進符号化
とを組合せたものである。
ジされる。2進表示の特質を利用するために、アドレス
の最上位ビツト(例えば、第21図のA3)が最初に符号化
される。次いで、ランダム論理は最上位のアドレス線の
値に依存するよう設計することができる。例えば、A0上
の論理「符合14」はA3,A2,A1、「符合14」に依存する。
さらに一般的な場合には、上側の8本の「符合」線(0
〜7までの2進アドレスを符号化し、4ビツト・アドレ
スの最上位ビツト即ちA3は0である)の任意の1つが宣
言されたならば、下側の8本の「符合」線はA3とアンド
されるためにターン・オフされる。論理の適切な配置に
より、符号器は多重応答の場合に最低アドレスを符号化
することができる。
されてから評価される。これを行うのには2つの理由が
ある。まず、「符合」線はワイヤ・アンドされているの
で、その論理レベルを保持するためにバツフアを必要と
するからであり、次に、符号化論理を働かせるために
は、「符合」線は正論理をとるからである。しかし、CA
Mアレーにおいては、「符合」線は整合が生じるとロー
に下げられる。インバータを使うことにより、それを正
しい極性に戻すことができる。
任を持つ。この列も、phi1の期間ハイにプリチヤージさ
れるワイヤ・オアされた構造である。任意の1つの「符
合」線がハイであると、「CAM−ヒツト」はローに下げ
られる。この構造は行アドレス符号器にのみ備えられ
る。
(packing)及びアンパキング(unpacking)が必要とな
る。ビツト・パツキングは、通常はバイト・サイズでな
いコードワードをバイト又はワード量へ束ねることを意
味する。ビツト・アンパツキングはバイト列からコード
ワードを抽出するという逆の操作である。これらの操作
は最長の符合を見出す操作ほど複雑ではないが、ごく一
般的であるから、スピードアツプにより全体のスループ
ツトを改善することができる。
化入力FIFO(フアースト・イン・フアースト・アウト)
242に入り、VLSM244、ビツト・パツカー(bit packer)
246を通つて、最終的に符号化出力FIFO248に至る。符号
器は符号器FSM250と呼ばれる有限状態機械によつて制御
される。
り、外部機器によつて書き込まれ、符号器によつて読み
出される。FIFOは外部機器によつて必要とされるメモリ
管理オーバーヘツド(memory management overhead)を
最小とするように設計され、FIFO読出し又は書込みが生
じるたび毎にFIFOアドレス・ポインタを更新するための
内部論理を収容している。更らに、内部論理は非同期ハ
ンドシエーク信号ばがりでなくFIFOの状態にも応答す
る。例えば、RD−RDY信号がFIFOによつて宣言された場
合にRD信号を宣言することにより、バイトを読み出すこ
とができる。同様に、WRが外部機器によつて宣言される
と、WR−RDYが正である期間にバイトがFIFOに書き込ま
れる。FIFOが空き又はほとんど空きの場合、「EI−空
き」信号が発生され、FIFOを使用する外部機器に警告を
与える。
発生し、最長の符合を暗黙のうちに見出させ、コードワ
ードを生成させる。
でバイトにバツクする。その出力は符号化出力FIFOに直
接に接続される。したがつて、ビツト・パツカーはFIFO
ともハンドシエークするよう設計されている。図示のよ
うに、4ビツトの「符合長」と10ビツトの「インデツク
ス」はビツト・パツカーへの入力としてハードワイヤー
ド(hard−wired)される。三状態レジスタの出力もビ
ツト・パツカーへ入力される。三状態レジスタはVLSMへ
与えられる入力文字を常にラツチする。全く整合がな
い、即ち「符合長」が0に等しいならば、当該文字はコ
ードワードのインデツクス部で保管さるる。この場合、
VLSMの「出力」命令は符号器FSMによつて発せられるこ
とはなく、その代りに、三状態レジスタの内容が「符合
長」(0である)の他にビツト・パツカーに供給され
る。
るが、128バイトであり、ビツト・パツカーによつて書
き込まれ、外部機器によつて読み出される。ビツト・パ
ツカーは信号WRを発生し、FIFOへの書き込みを行わせ
る。「EO−充満」信号は該FIFOが充満又はほゞ充満の状
態のときに発生される。
である。「CAM−ヒツト」は該計数器のアツプ・カウン
ト・クロツクであり、DECはダウン・カウント・クロツ
クとして働く。長さ計数器の4ビツト出力はビツト・パ
ツカー及びオア・ゲートへ入力される。出力が全部ゼロ
であれば、「終了*」はローになり、符号器FSMへの入
力として用いられる。
へ挿入されるべき次の位置を常に指示する履歴バツフア
・ポインタである。この10ビツトの2進計数器は、VLSM
に対する更新命令が実行されるときには常に1だけ増分
される。1023まで計数すると、該計数器は0へ戻り再ス
タートする。信号CLRが宣言されると、アドレス計数器
はリセツトされる。
ることができる。これが必要とされるのは、コードワー
ドが発生された後に、それぞれの符号化された入力文字
はVLSMへ書き込まれなければならないからである。バツ
フア計数器256がクイヤされてから、新しい符号化サイ
クルが始まる。それぞれの入力文字が符号化入力FIFOか
ら読み出されると、VLSMへ与えられると共に文字バツフ
アに書き込まれ、バツフア計数器は次の位置を指示する
ように増分される。文字がVLSMへほぼ挿入されると、バ
ツフア計数器はリセツトされ、最初の文字を指示する。
更新サイクル期間において、各入力文字が文字バツフア
から読み出され、アドレス計数器によつて特定されたVL
SMの場所に書き込まれると、長さ計数器は減分される。
符号器FSMは「終了*」信号を使つて、更新活動をいつ
終るべきかを決定する。
比較サイクルは誤りが生じたとき、即ち、「CAM−ヒツ
ト」が宣言されないときに停止される。その時点におい
て、最長の符合の一部をなしていない最後の文字はまだ
三状態レジスタにある。FSMは、次の符号化サイクルに
おいて最初の文字が必ずFIFOからではなく三状態レジス
タから来るようにしなければならない。
と、最長の符合が見出されなくとも、コードワードが発
生されなければならない。換言すれば、符号器FSMはデ
ータの終了を認識し、出力命令を出させてインデツクス
を求めることにより、通常のVLSM動作サイクルを破る。
長さ計数器の内容と共に、コードワードがビツト・パツ
カーに供給される。ビツト・パツカーFSMはこうした状
態に応答する。即ち、もし信号「EN−停止」(ビツト・
パツカーへの入力)が宣言されるならば、ビツト・パツ
カーは8ビツトで満たされていなくとも、バイト・テン
プレート(byyte template)を出力する。
その場合、全ての計数器はクリアされ、FSMはスタンバ
イ(standby)モードになる。
状態図の形で示されている。
ツフアし、次いで読み出してVLSMを更新することを必要
とする。代りの手法は、入力文字を比較サイクルの直後
にVLSMに挿入し、どこかにセーブする必要をなくすもの
である。
ることになろう。前述の手法においては、2の符合長に
対して次の命令を必要とする: 初期化(INIT)、比較(COMPARE)、比較、比較、出
力(OUTPUT)、更新(UPDATE)、更新。
である: 初期化、比較、更新、比較、更新 次の比較サイクルはすぐ次のサイクルではなく1サイ
クル後に到来するので、符合結果をもう1サイクル遅延
させるために、各VLSMワード・セルにもう1つのフリツ
プフロツプが必要となる。
器アーキテクチヤは、文字バツフアとバツフア計数器と
が除去されるため、一層すつきりしたものになる。その
うえ、現在の符号化プロセスの出力サイクルと次の符号
化プロセスの初期化サイクルとが組み合わされることを
見るのが容易になる。
ング符合はデータ圧縮ではない応用、例えば、所望の文
字ストリングを見出すためのテキスト文字ストリングの
探索に使用することができる。VLSM機器は、単一のVLSM
機器によつて与えられるよりも長い履歴バツフアを持つ
が望ましい場合に連結されうる。
ロツク図、第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図
は符号器の状態図である。
Claims (10)
- 【請求項1】記憶された第1データ要素列内に、所与の
第2データ要素列のデータ・ストリングと符合する、記
憶されたデータ要素の最長のストリングを見出すための
装置において、 前記第1データ要素の列を記憶するための記憶装置; 第1データ要素列の多重データ要素を前記第2データ要
素列の単一データ要素と比較し、符合が見出されたとき
に信号を発する比較回路;および 前記データ・ストリングのデータ要素と記憶場所におけ
るデータ要素との比較を含む反復動作を前記比較回路に
反復的に行わせ、前記比較回路による符号信号の発生を
結果的に生じないのはいつかに基づいて最長の符合した
ストリングを決めるための制御回路(124,130); 少なくとも前記記憶装置および前記比較回路を含む複数
のセル(122)のそれぞれにおいて、近接セル間の信号
によって関係される前記セル,比較のため前記第2デー
タ要素列の前記データ要素それぞれの反復を提供する前
記セルおよびそれぞれの位置に前記第1データ要素列の
前記データ要素の1つを保持するように構成される前記
記憶装置; 前記比較回路であって、直列の比較器がそれぞれに異な
った前記セルの1つによって構成され、前記比較器は前
記第1データ要素列の前記データ要素の1つを所与の前
記第2列と比較し、符合を見つけた場合に符合信号を発
行する、比較器;および 前記比較器によって発行された前記符合信号を一時的に
記憶するための遅延回路であって、異なる前記セルのそ
れぞれ1つが前記第2データ要素列内の次のデータ要素
上で次の反復を行うために使用し、前記記憶装置および
前記比較回路はアドレッサブル・メモリの内容の組合せ
によって構成され、コードワードの場合前記最長列を符
号化するために充てられる符号回路および前記最長列を
回復し前記コードワードを復号するために充てられる符
号器によって更に構成され、最長符合列の長さの表示値
を含むコードワードの場合、前記最長列の符号化するた
めに充てられる前記符号回路によって構成される、遅延
回路; を具備する装置。 - 【請求項2】前記制御回路が、前記反復動作の回数を計
数し、所定の反復動作回数後に比較を終了するための手
段を含む請求項1記載の装置。 - 【請求項3】前記記憶装置が前記第1データ要素の列の
前記データ要素の1つをそれぞれ保持するための記憶場
所を有し、 前記比較回路が、前記第1データ要素の列の1つと前記
第2データ要素の列の所与のデータ要素とを比較し、符
合が見出されたときに符合信号を発行する比較器の列に
よって構成される、前記比較回路;および 遅延回路が、前記比較器によって発行された前記信号を
一時的に記憶し、その後で前記列の隣接する比較器と結
合し、前記第2のデータ要素列の次のデータ要素の比較
において前記隣接する比較器が使用するように結合す
る、遅延回路;によって構成されることを特徴とする請
求項1記載の装置。 - 【請求項4】前記比較回路が、前記隣接する比較器から
の前記遅延回路によって利用可能とされる遅延された信
号が符合を指示する場合の除いて、前記符合信号の発出
を禁止する論理部を含む請求項3記載の装置。 - 【請求項5】最初の反復動作で始まり、符合信号を生じ
ない反復動作で終わる反復動作回数を計数し、この計数
された回数に基づいて、前記最長の符合したストリング
におけるデータ要素の数を決定する計数回路をさらに備
える請求項3記載の装置。 - 【請求項6】計数回路であって、第1反復に始まり、符
合信号で終わらない反復で終了するまで前記反復回数の
計数をするために充てられ、計数された数に基づいて前
記最長符合列の中の前記データ要素の数を判断する、計
数回路によって更に構成される請求項3記載の装置。 - 【請求項7】前記計数回路であって、前記数が予め決め
られる反復回数に達した場合前記反復を終了する信号を
発行する、計数回路によって構成されることを特徴とす
る請求項4記載の装置。 - 【請求項8】記憶された第1データ要素列内に、所与の
第2データ要素列のデータ・ストリングと符合する、記
憶されたデータ要素の最長のストリングを見出すための
方法であって、 前記第1データ要素の列を記憶する段階; 第1データ要素列の多重データ要素を前記第2データ要
素列の単一データ要素と比較する段階; 符合が見出されたときに信号を発行する段階; 前記比較する段階を反復して実行する段階であって、そ
れぞれ反復が前記第2列のデータ要素と前記記憶された
第1列の多重データ要素と比較を行なう、実行する段
階;および、 前記第2データ要素列と符合が発生すると前記記憶され
たデータ要素の最長ストリングを決定する段階であっ
て、符合信号の発生を結果的に生じないのはいつかに基
づいて最長の符合したストリングを決める、決定段階; 前記記憶する段階,前記比較する段階及び前記比較を実
行する段階は、個々のセルで実行され、信号は関連する
隣接セルに利用され、前記セルは比較のために前記第2
データ要素列をそれぞれ反復して並列に提供し、記憶す
る段階は前記第1データ要素列の前記データ要素の1つ
を保持する記憶位置を含んで記憶する段階であって: 直列の比較器がそれぞれに異なった前記セルの1つによ
って構成され、前記比較器は前記第1データ要素列の前
記データ要素の1つを所与の前記第2列と比較し、符合
を見つけた場合に符合信号を発行する、比較段階;およ
び 前記比較段階によって発行された前記符合信号を一時的
に記憶する段階を含んで構成される比較段階を実行する
段階において、各符合信号が前記第2データ要素列内の
次のデータ要素上で次の反復を行うために前記セルの異
なる一つを使用する実行段階; によって構成されることを特徴とする方法。 - 【請求項9】データ要素の記憶された列内において、デ
ータ要素の所与のデータ・ストリングと符合するデータ
要素のストリングを識別するための装置において、 前記列の前記データ要素を保持し、絶対アドレスによっ
てアドレスを指定することができる記憶場所と、 記憶されたデータ要素の前記ストリングの符合をどの記
憶場所が保持するかを決定し、絶対アドレスによって該
記憶場所を識別するための回路とを具備する請求項1記
載の装置。 - 【請求項10】前記の決定するための回路が、アドレス
可能な記憶場所に保持されている前記列の前記データ要
素の各々を前記データ・ストリングの所与のデータ要素
を比較する比較器と、符合を指示する少なくとも1つの
前記アドレス可能な記憶場所の絶対アドレスを決定し且
つ監視するアドレス回路とを備える請求項9記載の装
置。
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)
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)
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 |
-
1989
- 1989-12-20 AU AU47040/89A patent/AU624205B2/en not_active Expired
-
1990
- 1990-01-04 CA CA002007168A patent/CA2007168C/en not_active Expired - Lifetime
- 1990-01-23 EP EP90300689A patent/EP0380294B1/en not_active Expired - Lifetime
- 1990-01-23 DE DE69030519T patent/DE69030519D1/de not_active Expired - Lifetime
- 1990-01-23 AT AT90300689T patent/ATE152260T1/de not_active IP Right Cessation
- 1990-01-23 JP JP2013453A patent/JP2830280B2/ja not_active Expired - Lifetime
-
1992
- 1992-11-13 US US07/976,298 patent/US5329405A/en not_active Expired - Lifetime
-
1998
- 1998-06-27 HK HK98107180A patent/HK1009317A1/xx not_active IP Right Cessation
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 |