JPH1075180A - ディジタル符号化記号列の記憶方法および記憶装置 - Google Patents

ディジタル符号化記号列の記憶方法および記憶装置

Info

Publication number
JPH1075180A
JPH1075180A JP9064331A JP6433197A JPH1075180A JP H1075180 A JPH1075180 A JP H1075180A JP 9064331 A JP9064331 A JP 9064331A JP 6433197 A JP6433197 A JP 6433197A JP H1075180 A JPH1075180 A JP H1075180A
Authority
JP
Japan
Prior art keywords
digitally encoded
symbol
encoded symbol
stored
memory
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.)
Granted
Application number
JP9064331A
Other languages
English (en)
Other versions
JP3316160B2 (ja
Inventor
George Kneuer Joseph
ジョージ ニューアー ジョセフ
Alexander John Shaw
ジョン シャウ アレキサンダー
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.)
Nokia of America Corp
Original Assignee
Lucent Technologies 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 Lucent Technologies Inc filed Critical Lucent Technologies Inc
Publication of JPH1075180A publication Critical patent/JPH1075180A/ja
Application granted granted Critical
Publication of JP3316160B2 publication Critical patent/JP3316160B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • 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/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • 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/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

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

Abstract

(57)【要約】 【課題】 高速で、容易に実装可能であり、効率的な破
棄判断基準を利用する、有限な順次パターンメモリを実
現する。 【解決手段】 ディジタル信号ストリームから以前に形
成されたディジタル信号列に応答してトークンが出力さ
れる。各ディジタル信号列が以前に形成されたかどうか
の判断には、メモリロケーションのサブセットの内容の
検査が含まれる。形成されたディジタル信号列を表す情
報がサブセット内に見つからない場合、そのような情報
を記憶するためにサブセット内のロケーションが選択さ
れる。この選択プロセスは、サブセット内のすべてのロ
ケーションから1つのロケーションを選択する。親ロケ
ーションの情報の上書きから生じる従来技術の問題点を
回避するために、それぞれの記憶されるエントリの作成
の時刻の指示子を利用して、以前に捨てられた親の子か
ら情報が出力されないようにする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、メモリ探索および
記憶管理に関し、特に、適応順次パターンメモリのため
のそのような技術に関する。
【0002】
【従来の技術】順次パターンメモリは、あるロケーショ
ン(「子(child)」ロケーションという)に記憶される
情報が、他のロケーションに以前に記憶された情報と関
係するような、多くの情報記憶ロケーションを有するメ
モリの一種である。他のロケーションのほうを「親」と
いう。この親子関係において、各子はただ1つの親を有
するが、各親は多くの子を有する可能性がある。
【0003】適応順次パターンメモリは、データ圧縮な
どのさまざまなアプリケーションで用いられる。Lempel
-Ziv-Welch(LZW)アルゴリズムは、大量のデータに
対する証明可能な最大圧縮に漸近的に到達するため、特
に好ましい周知のデータ圧縮技術である。符号器では、
このアルゴリズムの作用は、符号器が入力ディジタル信
号ストリームを受け取り、ディジタル信号列を表す「ト
ークン」あるいはこのストリームから形成される「スト
リング」が出力されるということにより要約することが
できる。このプロセスが続くにつれて、送信される各ト
ークンはますます長いストリングを表すことにより、デ
ータ圧縮が達成される。復号器では、送信されたトーク
ンが復号されて、ディジタル信号ストリームを再生成す
る。実用的なアプリケーションでは、このアルゴリズム
の実装は、さまざまなストリングを表すトークンを記憶
するためのメモリの使用を伴う。
【0004】メモリの探索とは、与えられた入力信号パ
ターンに対応する記憶されている情報を見つけるために
メモリの内容を検査する作用のことである。LZWアル
ゴリズムなどを利用するデータ圧縮アプリケーションで
は、情報を記憶するメモリロケーションの数は急速に増
大する。この増大の1つの問題点は、探索すべきメモリ
が大きくなればなるほど、探索時間が長くなることであ
る。LZWのような、いくつかのデータ圧縮アルゴリズ
ムでのもう1つの問題点は、メモリが無限であると仮定
されることである。明らかに、実際のアプリケーション
では、メモリサイズは有限であり、いったん一杯になる
と、メモリに記憶されているどの情報を捨てて(破棄し
て)、まだ記憶されていない新しい情報で置換すべきか
を判断するための何らかの用意をしなければならない。
この判断は、親ロケーションの情報を捨てることにより
この親の子に記憶されている情報が不正になるというこ
とにより複雑になる。さらに、捨てられる親のすべての
子を探索して捨てる作業は時間のかかるプロセスになる
ことがある。
【0005】データ圧縮アプリケーションにおいてメモ
リを更新するための1つの従来技術では、パフォーマン
スが悪くなり始めたらメモリ内のすべてを捨てるその結
果、データ圧縮パフォーマンスは、メモリが符号器およ
び復号器の両方において再構築されるまでは低い。他の
技術は、価値が最も少ないとみなされる情報を捨てる判
断基準に基づいて情報を捨てる。このような手続きで
は、捨てられる親の子を探索し除去するという時間のか
かるプロセスを我慢せずには親ロケーションの情報を捨
てることができないため、最適な判断基準よりずっと低
い判断基準を利用しなければならない。
【0006】
【発明が解決しようとする課題】従って、高速で、容易
に実装可能であり、効率的な破棄判断基準を利用する、
有限な順次パターンメモリのための技術が開発されるこ
とが所望される。
【0007】
【課題を解決するための手段】一般に、本発明は、探索
および更新の動作を提供するためにメモリロケーション
のサブセットの概念を利用することによって、従来技術
のメモリの探索および更新の技術の限界を克服する。サ
ブセットは、メモリロケーションの総数より実質的に少
ない一定数のメモリロケーションを含む。各探索動作
は、関連する1個のサブセットのみに対して実行され、
必要な更新動作は、このサブセットからメモリロケーシ
ョンを選択することによって提供される。その結果、各
探索または更新のプロセスは1回の読み出し/書き込み
動作で実行可能である。
【0008】データ圧縮符号器に関する本発明の実施例
では、ディジタル信号ストリームから以前に形成された
ディジタル信号列に応答してトークンが出力される。各
ディジタル信号列が以前に形成されたかどうかの判断に
は、メモリロケーションのサブセットの内容の検査が含
まれる。形成されたディジタル信号列を表す情報がサブ
セット内に見つからない場合、そのような情報を記憶す
るためにサブセット内のロケーションが選択される。こ
の選択プロセスは、サブセット内のすべてのロケーショ
ンから1つのロケーションを選択する。親ロケーション
の情報の上書きから生じる従来技術の問題点を回避する
ために、それぞれの記憶されるエントリの作成の時刻の
指示子を利用して、以前に捨てられた親の子から情報が
出力されないようにする。データ展開復号器では、ディ
ジタル信号ストリームが、送信されたトークンから再生
される。符号器で用いられるサブセット選択と同じ考え
を用いて、符号器のメモリと一致するように復号器メモ
リを更新する。
【0009】
【発明の実施の形態】まず、LZW圧縮アルゴリズムの
基本動作について簡単に検討し、本発明によって克服さ
れる欠点について説明する。
【0010】LZW符号器は、合意した基本文字(代表
的にはそれぞれ8ビット)の入力シーケンスを1つ以上
のトークンに変換する。合意した基本文字の全体を「ネ
イティブ文字セット」という。このようなシーケンスを
符号化するプロセスには、シーケンス内の文字を一度に
1個ずつ取得して一連の「文字列」を形成することが含
まれる。次に、符号器・復号器のメモリを検索し、現在
の文字列(カレント文字列)内の文字のシーケンスを記
憶しているかどうかを判断する。文字列内の文字のシー
ケンスがメモリ内に見つかった場合は、最後に一致した
文字列(最終一致文字列)に入力信号シーケンス内の次
の文字を追加することによって形成される新たな文字列
に対して検索プロセスを繰り返す。しかし、カレント文
字列内の文字のシーケンスがメモリ内に記憶されていな
い場合、この不一致文字列を表す情報が記憶され、最終
一致文字列のトークンが出力される。さらに、不一致文
字列の最後の文字のみを含む新たな文字列を形成し、こ
の新たな文字列に対してメモリ検索プロセスを再開す
る。
【0011】大きいメモリの検索に伴う長い検索時間の
手続きにおける上記の問題点は、本発明によれば、メモ
リのサブセットのみを検査して各文字列の有無を判断す
ることにより解決される。このサブセットは、メモリロ
ケーションの総数よりもずっと少ない所定数のメモリロ
ケーションを含む。実施例では、各サブセットには4個
のメモリロケーションがある。検査される個々のサブセ
ットは、カレント文字列の関数であり、実施例では、周
知のハッシュ技術を利用して各文字列を対応する複数の
メモリアドレスに変換することによって決定される。さ
らに具体的には、実施例では、ハッシュ文字列は、複数
のメモリアドレスの行を定める。カレント文字列と、検
査中のメモリロケーションのうちの1つに記憶されてい
るデータが同一である場合、入力文字シーケンス内の次
の文字を最終一致文字列に連結することによって新たな
文字列を形成する。次に、この新たな文字列に対して検
索プロセスを繰り返す。もし、検査中のメモリロケーシ
ョンの情報と、カレント文字列が一致しない場合、不一
致文字列は検査中のメモリロケーションのうちの1つに
記憶され、不一致文字列の最後の文字のみを含む新たな
文字列を形成する。すべての検査中のメモリロケーショ
ンが既に情報を記憶している場合、本発明は、ある判断
基準を利用して、サブセット内のいずれのメモリロケー
ションが最も価値の低い情報を記憶しているかを判断
し、この情報を、不一致文字列を表す情報で置き換え
る。特に、各メモリロケーションの情報が文字列に最後
に一致した時刻を示すタイムスタンプが保持される。こ
のタイムスタンプを以下では変数TIME_OF_LAST_MATCH
(最終一致時刻)で表す。この場合、検査中のサブセッ
トにおいて、アクセスの時刻が最も古い情報が最も価値
の低い情報と判断される。この判断基準を以下では「最
長時間未使用」(LRU)判断基準という。また、もう
1つのタイムスタンプ(以下「作成時刻」という)を用
いて、以前に捨てられた親の子ロケーションからの情報
の出力によるエラーを防ぐ。
【0012】図1に、例示的なメモリ100に対する本
発明の動作を示す。図示のように、メモリ100は複数
の行(左側の垂直列に番号0,1,2,...,1ffで
示す)と、複数の列(上部の水平行に0,1,2および
3で示す)を有する。まず、符号器メモリの所定部分の
相異なるメモリ記憶ロケーションにはそれぞれ、ネイテ
ィブ文字セットの合意された基本記号が対応すると仮定
する。図1では、行0〜3fはネイティブ文字セットの
ために予約され、文字Aはメモリロケーション10−1
(この番号表示は、このロケーションが第10行第1列
にあることを指定する)に記憶される。同様に、図示の
ように、文字B、C、およびDはそれぞれ、ロケーショ
ン10−2、10−3、および11−0に割り当てられ
る。従って、メモリのこの部分は、ただ1つの文字を有
するすべての可能な文字列を記憶する。対応する基本文
字に対してこれらのロケーションのそれぞれに記憶され
る情報はメモリアドレスのみであり、従って、メモリの
この部分は実際の応用では単なる仮想的なメモリであ
る。すなわち、実際のメモリロケーションを使用する必
要はない。
【0013】行アドレス40によって示されるメモリの
部分は特殊コードのために予約される。このようなコー
ドは当業者に周知であり、入力ディジタル信号ストリー
ムが同じ文字シーケンスの反復を含むときに生じる可能
性のある矛盾を解決するために利用される。本発明は、
このような特殊コードを従来技術と同様に利用する。
【0014】行41〜行1ffまでのメモリの部分は、
1つ以上の文字を含む以前に受け取った(既知の)文字
列を記憶する辞書の動的部分を定義する。
【0015】ここで、時刻99に文字Cが入力シーケン
スに現れ、その直後の時刻100に文字Aが来たと仮定
する。第1の文字Cが取得され、第1の文字列を形成す
る。この単一文字文字列は直接メモリロケーション10
−3にマップされる。LZWアルゴリズムによれば、文
字Cのトークンが最終一致トークンとして保存される。
その後、次の文字Aが、前の文字列に追加されて、カレ
ント文字列「CA」を形成する。ハッシュコード生成器
への入力は、文字Cのメモリロケーションに「A」を追
加したもの、すなわち、10−3−Aである。
【0016】説明のために、値10−3−Aに対するハ
ッシュコードがb3であると仮定する。注意すべき点で
あるが、このハッシュコードは複数のメモリロケーショ
ンを含むサブセットを定義する。今の場合、このサブセ
ットは行b3の4個のメモリロケーション、すなわち、
ロケーションb3−0、b3−1、b3−2およびb3
−3である。本発明によれば、この定義されたメモリロ
ケーションのサブセットのみが、カレント文字列「C
A」の存在を求めて検索される。ここで、この文字列が
見つからず、サブセット内の空ロケーションb3−1
が、カレント文字列「CA」を表す情報を記憶するため
に選択されると仮定する。この情報は10−3−Aであ
り、ハッシュコード生成器への入力となる。注意すべき
点であるが、この情報は、最終一致があったメモリロケ
ーションすなわち10−3と、追加された文字Aを示
す。作成時刻「100」もまた記憶され、図では「@1
00」で示されている。説明のために、「CA」の復号
値もまた、このメモリロケーションエントリの中段行に
示されている(以下同様)。しかし、理解されるべき点
であるが、これらの図示されている復号値は単なる説明
のためのものであり、このような文字は、本発明の符号
器および復号器のいずれの実施例でも記憶されない。
【0017】次に、時刻145に、カレント文字列が
「CAT」であると仮定する。この文字列は行5bにハ
ッシュされ、この行には見つからないため、メモリロケ
ーション5b−2に記憶される。次に、その後の時刻2
07に、カレント文字列は「CATS」となる。この文
字列は行13aにハッシュされ、メモリロケーション1
3a−0に記憶される。注意すべき点であるが、文字列
「CAT」は、文字列「CA」の記憶の直後に記憶され
るわけではない。その理由は、LZWアルゴリズムで
は、文字列がメモリ内に見つからないと、それは記憶さ
れ、最終不一致文字のみを含む新たな文字列が形成され
るためである。従って、文字列「CA」が見つからない
場合、次の文字列は文字Aのみを含む。
【0018】次に図2を参照する。図2では、動作の系
列を継続し、「作成時刻」の概念を用いて、不正な記憶
情報を認識しその使用をしないようにする。後の時刻7
52(これは、図1で用いられた時刻の後である)で、
文字列「DO」(11−0−Oで表す)が現れ、行9a
にハッシュされる。この情報は、行9aの4個のメモリ
ロケーションに見つからないため、この行のメモリロケ
ーションのうちの1つに記憶される。LRUなどの判断
基準を用いることができる。いずれの場合でも、決定さ
れたメモリロケーションは9a−3であると仮定する。
このロケーションへのカレント文字列を表す情報の記憶
は、図1で説明した以前に記憶した文字列を表す情報と
衝突しない。しかし、時刻831に、カレント文字列は
「DOG」となり、行5bにハッシュされる。LRUの
ような判断基準を用いて、メモリロケーション5b−2
が、文字列「DOG」を記憶するために選択される。従
って、文字列「DOG」を表す情報(すなわち、9a−
3−G)は、このメモリロケーションの以前に記憶され
た情報b3−1−Tと置き換わる。この以前に記憶され
た情報は文字列「CAT」を表す。その後、時刻207
に、文字列「DOGS」に遭遇し、行13aにハッシュ
される。ここで、メモリロケーション13a−0の内容
5b−2−Sは、文字列「DOGS」に一致することが
分かる。しかし、これはエラーである。その理由は、ロ
ケーション13a−0に記憶されている情報は文字列
「CATS」を表し「DOGS」ではないからである。
さらに、メモリロケーション13a−0の内容に対応す
るトークンの出力は復号器においてエラーを生じる。こ
のような、以前に捨てられた親の不正な子を出力するこ
とによって引き起こされるエラーを防ぐため、本発明
は、カレント文字列に一致すると考えられる情報の作成
時刻を、以前に一致した文字列の作成時刻(例えば、図
2の「DOG」@831)と比較する。以前に一致した
文字列の作成時刻が、カレント文字列に一致する記憶情
報の作成時刻より後である場合、記憶情報は誤りであ
る。その理由は、この情報は以前に置換された親の子を
表す(すなわち、「CATS」は以前に置換された親
「CAT」の子である)ためである。このような作成時
刻がある場合、本発明はそのメモリロケーションが不正
であるとみなし、このようなロケーションを、上書きさ
れるべきものとして選択する。図2で、ロケーション1
3a−0は、文字列「DOGS」を表す情報を記憶する
メモリロケーションとして選択され、以前に記憶された
情報は置換(上書き)される。その結果、本発明によれ
ば、以前に捨てられた親子の子孫の情報の出力は実行時
に防止される。すなわち、このような不正な情報は、カ
レント文字列との信頼すべき一致により検出される。
【0019】次に図3を参照する。処理はステップ30
1から開始される。ステップ301で、メモリは、すべ
てのメモリロケーションをUNUSED(未使用)とマークす
ることによって初期化され、シーケンサ変数TIMEが0に
設定される。ステップ302で、入力シーケンスの第1
文字(FIRST)を取得し、ステップ303で、変数CURRENT
_STRING(カレント文字列)に、基本文字セットのこの
単一文字の所定のメモリロケーションをロードする。変
数CURRENT_STRINGに記憶される値は常に現在の入力文字
列のトークンであり、図1および図2を参照して既に説
明したようなメモリロケーションの値にほかならない。
ステップ303で、変数CREATEDも0に設定する。単一
の基本文字からなる文字列は時刻0に存在する。さら
に、変数TIMEを1だけインクリメントする。ステップ3
04で、CURRENT_STRINGの値を変数LAST_MATCH(最終一
致)にロードする。次に、ステップ305で、入力シー
ケンスの次の文字(NEXT)を取得し、ステップ306で、
CURRENT_STRINGと連結して新たなEXTENDED_STRING(拡
張文字列)を形成する。連結は図では「+」演算子で表
している。ステップ307では、ステップ306で形成
されたEXTENDED_STRINGをハッシュして、検査したサブ
セット内のメモリロケーションの行アドレスを定義す
る。この行アドレスは変数SUBSETで表す。ハッシュのプ
ロセスは周知であり、さまざまなハッシュコードが利用
可能である。実施例では、単純な組合せ論理を用いて生
成可能なハッシュコードを用いる。ステップ308で、
いくつかの演算を並列に処理する。第1に、ステップ3
06のEXTENDED_STRINGを、ステップ307で決定され
たメモリ行アドレスの各USED(使用済み)(UNUSEDでは
なく)メモリロケーションに記憶されている情報と比較
する。変数CELL_MARK(これは、各メモリロケーション
に1ビットある)が、USEDおよびUNUSEDのセルを表す。
変数STRING_OKが、検査中のサブセット内の各メモリロ
ケーションごとに形成され、変数STRING_OKが真(TRUE)
であることは、メモリロケーションの記憶情報がEXTEND
ED_STRINGと一致することを示す。第2に、検査中のサ
ブセット内の各メモリロケーションごとに、変数CREATE
Dを変数RAM_CREATEDと比較することによって変数AGE_OK
を形成する。変数CREATEDは、最終一致記憶情報の作成
時刻を表し、変数RAM_CREATEDは、検査中のサブセット
内の各メモリロケーションに情報が記憶された時刻を表
す。RAM_CREATEDはステップ311(後述)で設定され
る。メモリロケーションについて、変数AGE_OKがTRUE状
態(すなわち、RAM_CREATEDがCREATEDよりも時間的に後
である)であり、かつ、変数STRING_OKがTRUE状態であ
ることは、正しい情報がそのロケーションに記憶されて
いることを示す。変数AGE_OKが偽(FALSE)状態であり、
かつ、変数STRING_OKがTRUE状態であることは、カレン
ト文字列と、検査中のサブセットの1つのメモリロケー
ションに記憶されている情報が一致したが、このメモリ
ロケーションの情報は、実際には、以前に捨てられた親
の不正な子であることを示す。検査中のサブセット内の
特定のメモリロケーションに対して変数STRING_OKとAGE
_OKがともにTRUE状態であることにより、そのメモリロ
ケーションに対してパラメータMATCHが設定される。こ
のパラメータは、検査中のサブセット内の特定のメモリ
ロケーションに記憶されている情報とEXTENDED_STRING
の間の正しい一致を示す。INVALIDというもう1つのパ
ラメータは、検査中のサブセット内のメモリロケーショ
ンに対する、変数STRING_OKのTRUE状態と、変数AGE_OK
のFALSE状態の組合せを表す。INVALIDは、対応するメモ
リロケーションが不正な情報を記憶していることを示
す。
【0020】ステップ309で、検査中のサブセット内
のメモリロケーションに対してパラメータMATCHが存在
するかどうかを判断する。この判断の結果がYES(肯
定)である場合、ステップ314で、MATCHに対応する
メモリロケーションに対して、変数TIME_OF_LAST_MATCH
に現在時刻をロードする。この動作により、各メモリロ
ケーションには、そのロケーション内の情報がカレント
文字列に対してパラメータMATCHを最後に生成した時刻
が記憶される。TIME_OF_LAST_MATCHは、ステップ310
に関して説明するように、検査中のサブセット内の最も
価値の低い情報を決定するために用いられる。さらに、
MATCHに対応するメモリロケーションの列部分が変数MAT
CHING_COLUMNにロードされる。ステップ315で、変数
RAM_CREATEDに記憶されている値が変数CREATEDにロード
され、CURRENT_STRINGの値が、変数SUBSETをMATCHING_C
OLUMNに連結したものに設定される。ステップ315か
ら、処理はステップ304に戻る。
【0021】ステップ309での判断がNO(否定)であ
る場合、ステップ306のEXTENDED_STRINGを、検査中
のサブセット内のメモリロケーションのうちの1つに記
憶しなければならない。EXTENDED_STRINGを記憶するメ
モリロケーションを選択するため、順序づけられた判定
の系列が実行される。第1に、パラメータINVALIDに対
応するメモリロケーションがある場合、そのロケーショ
ンを選択する。第2に、INVALIDパラメータに対応する
ロケーションがない場合、空のロケーションを選択す
る。最後に、すべてのメモリロケーションが使用中であ
り、どのメモリロケーションにもパラメータINVALIDが
ない場合、最長時間未使用のTIME_OF_LAST_MATCHを有す
るロケーションを選択する。この最後の判断基準は、最
も価値の低い情報はカレント文字列に一致する最長時間
未使用のものであることを仮定している。これらの3つ
の順序づけられた判断基準のうちに同じ結果のものがあ
る場合、サブセット内で列番号の最も小さいメモリロケ
ーションを選択する。
【0022】次に、記憶するメモリロケーションの選択
をした後、ステップ311で、不一致のEXTENDED_STRIN
Gを、パラメータRAM_STRINGで表す選択したロケーショ
ンに記憶する。現在のTIMEをRAM_CREATED、すなわち、
この記憶情報の作成時刻と、TIME_OF_LAST_MATCHにロー
ドする。また、選択されたメモリロケーションは、パラ
メータCELL_MARKがUSEDに設定される。
【0023】ステップ312において、ステップ304
で設定された最終一致文字列のトークンを出力する。こ
のトークンの値は、基本も時または最後に一致したEXTE
NDED_STRINGのいずれかのメモリアドレスである。後者
(EXTENDED_STRING)は、ステップ309の直前の動作列
によって決定される。ステップ313で、カレント文字
列を、ステップ305で取得した次の文字に設定し、変
数CREATEDに0をロードし、変数TIMEを1だけインクリ
メントする。ステップ313から、処理はステップ30
4に戻る。
【0024】次に図4を参照する。図4は、本発明に従
って動作する回路400の概略ブロック図である。回路
400は符号器または復号器で利用可能であり、さまざ
まなデータ圧縮・伸張アルゴリズムを利用可能である
が、例として、回路動作は、まず図3の流れ図を利用す
る符号器に関して説明する。符号器として動作する場
合、入力文字シーケンスはバス401で受け取られ、符
号器出力はバス402に供給される。シーケンサ403
は、周知の論理デバイスにより有限状態マシン(FS
M)として実装可能である。シーケンサは、バス401
から連続する文字を取得することによって前述の連続す
る文字列を形成する。これらの文字列はそれぞれ適当な
時刻にバス405およびハッシュコード生成器406に
送られる。メモリに送られるハッシュされた行アドレス
は、ステップ315で使用するためにシーケンサも読み
取ることができる。この能力は復号器(後述)にも要求
される。その理由は、この能力は、ハッシュ演算を迂回
し、直接「非ハッシュ」RAMアドレスを生成する能力
であるためである。生成器406の出力は、各文字列に
対して検査されるメモリのサブセットを決定する。これ
はバス408によってメモリ407に送られる。図4に
おいて、メモリは4個のN×1エントリのRAMを有す
る。ただし、Nは、メモリ内の行数となる所定の整数で
ある。これらのRAMを409−0〜409−3で表
す。メモリに対する読み出し/書き込み信号はシーケン
サによって生成され、バス410を介してメモリに送ら
れる。
【0025】比較回路411−0〜411−3には各文
字列が供給され、各比較回路は対応するバス412を介
してそれぞれのRAMに接続される。各比較回路は、ス
テップ308に記載した比較を行い、それらの比較の結
果を対応するバス413を介してセレクタ414に送
る。セレクタは、検索した文字列が検査中のサブセット
内に見つからないときに書き込むメモリロケーションを
決定する。この決定は、適当なバス413を介してこの
メモリロケーションに対応する比較回路に返される。そ
の場合、不一致文字列が、バス410上の書き込み信号
の発生に応じて、決定されたメモリロケーションに記憶
される。各比較回路のパラメータMATCHの状態は、バス
405を介してシーケンサ403にも送られる。この状
態は、形成される次の文字列を決定する。カレント文字
列が一致したという表示を受信するごとに、シーケンサ
403は、この文字列をレジスタもロードし、最終一致
文字列としてそれを保持する。
【0026】図5に、本発明を組み込んだ復号器によっ
て実行される動作500の系列を示す。この系列は、復
号器によって出力されたトークンを受け取り、各トーク
ンを、入力文字列へと復号する。ステップ501で、復
号器メモリの適応部分内のすべてのメモリロケーション
に対する変数CELL_MARKをUNUSEDに設定し、シーケンサ
変数TIMEに0をロードする。ステップ502で、最初の
トークンを取得し、変数FIRST_TOKENとしてロードし、
ステップ503で、このトークンの末尾文字を抽出す
る。実施例では、FIRST_TOKENは基本文字および仮想メ
モリアドレスを表すため、FIRST_TOKENの末尾文字(関
数TAIL_CHAR(FIRST_TOKEN)で表す)は、FIRST_TOKENの
最後の8ビットを抽出することによって形成することが
できる。他のトークンについては、トークンの関数TAIL
_CHARは、トークンの値に等しいメモリアドレスの内容
を検査し、そのアドレスに記憶されている情報の最後の
8ビットを抽出することによって形成することができ
る。
【0027】ステップ503で、関数TAIL_CHAR(FIRST_
TOKEN)をスタック上に置き、ステップ504でこのスタ
ックをダンプする。任意の引数に対するTAIL_CHARは常
に単一の文字であるため、スタックがインクリメントさ
れるごとに、単一の文字がスタック上に置かれる。スタ
ックがダンプされるとき(すなわち、ステップ504
で、および、その後ステップ511で)には、スタック
上の文字は後入れ先出し順序で出力される。FIRST_TOKE
Nについては、ステップ504におけるスタックのダン
プは単一の文字のみを生成する。
【0028】ステップ505で、パラメータLAST_TOKEN
にFIRST_TOKENをロードし、ステップ506で、変数TIM
Eを1だけインクリメントする。ステップ507で、変
数NEXT_TOKENに、符号器から受信した次のトークンをロ
ードする。ステップ508で、変数DECODE_TOKENにNEXT
_TOKENをロードする。NEXT_TOKENは実際のメモリアドレ
スであるため、DECODE_TOKENもまたそのようなアドレス
である。ステップ508で、変数CREATEDに、変数NEXT_
TOKENに対するRAM_CREATEDの値をロードする。RAM_CREA
TEDの値は、DECODE_TOKENを用いて復号器メモリをアド
レスし、復号情報がこのアドレスに記憶された時刻を示
す、このアドレスに記憶されている時刻を抽出すること
によって得られる。基本文字を表すトークンについて
は、変数RAM_CREATEDは0である。ステップ509で、D
ECODE_TOKENが基本文字を表すかどうかを判断する。実
施例では、この判断は、12ビットトークンの最初の4
ビットを検査することによってなされる。基本文字を表
すトークンについては、この最初の4ビットはすべて0
である。
【0029】ステップ509で、DECODE_TOKENが基本文
字を表すか否かに応じて、処理は2つの経路のうちの1
つをとる。DECODE_TOKENが基本文字を表していない場
合、処理はステップ517に進む。このステップで、DE
CODE_TOKENを用いて復号器メモリをアドレスし、このア
ドレスに記憶されている復号情報を抽出する。実施例で
は、このアドレスにある最後の8ビットが関数TAIL_CHA
R(DECODE_TOKEN)であり、これらのビットは、復号器文
字列に追加される最後の文字を表す。ステップ517
で、これらの最後の8ビットをスタック上に置く。ステ
ップ518で、現在時刻に1を加えたものを変数TIME_O
F_LAST_MATCHにロードする。この1だけずらすことは、
符号器と復号器のメモリエントリの間に一貫性を持たせ
るために必要である。DECODE_TOKENの値によって指示さ
れるアドレスに記憶されている復号情報のうち末尾文字
以外の部分をプレフィクス(PREFIX)と呼ぶ。これは別の
メモリアドレスである。ステップ519でプレフィクス
をDECODE_TOKENにロードする。ステップ519から、処
理はステップ509に戻る。
【0030】ステップ509における判断で、DECODE_T
OKENが基本文字を表している場合、処理はステップ51
0に進み、ステップ503で実行したのと同じ動作を行
う。すなわち、DECODE_TOKENの末尾文字をスタック上に
置き、ステップ511で、このスタックを後入れ先出し
順序でダンプする。注意すべき点であるが、DECODE_TOK
ENはステップ510に到達するためには基本文字を表し
ていなければならないため、メモリ抽出はこのステップ
では不要である。ステップ512で、DECODE_TOKENの末
尾文字をLAST_TOKENに付加し、変数EXTENDED_STRINGと
してロードする。その後、ステップ513で、この変数
をハッシュして、EXTENDED_STRINGの値を記憶するメモ
リ内のサブセット(SUBSET)を決定(DETERMINE)する。ス
テップ514は、符号器で用いられるのと同じ判断基準
を用いてこのメモリロケーションを決定する。すなわ
ち、第1に不正なロケーションを選択し、その後、空の
ロケーションを選択し、その後、以上の判断基準がいず
れも適用できない場合、LRU判断基準を用いる。ステ
ップ515で、ステップ411と同様に、カレント文字
列を、選択したメモリロケーションにロードし、図5に
示されているように、変数RAM_STRINGにロードする。さ
らに、現在時刻をこのロケーションに対する変数RAM_CR
EATEDおよびTIME_OF_LAST_MATCHにロードする。最後
に、このロケーションに対するパラメータCELL_MARKをU
SEDとマークする。その後、処理はステップ516に進
み、LAST_TOKENに、ステップ507で取得したNEXT_TOK
ENをロードする。ステップ516から、処理はステップ
509に戻る。
【0031】再び回路400のブロック図を示す図4を
参照する。既に、本発明による符号器としての動作を説
明した。回路400は、図5の流れ図に関して以下で説
明するように、復号器としての動作にも同様に適用可能
である。
【0032】復号器として動作する場合、入力トークン
シーケンスをバス402で受け取り、復号された文字シ
ーケンスはバス401に出力される。シーケンサ403
は、バス402から連続するトークンを取得することに
よって、連続する伸張文字ストリームを形成する。基本
文字(先頭の4ビットがすべて0)に対応するトークン
は、図5のブロック503および510のように、RA
Mを参照せずにトークンの8個の下位ビットからシーケ
ンサ403によって直接復号される。
【0033】トークンが「非基本」であると判定された
場合(図5のブロック509)、シーケンサは、トーク
ンのメモリ記憶行としてバス408へハッシュせずにト
ークンの上位10ビットを通過させる。このハッシュな
しの接続は、ハッシュコード生成器を一時的に無効にし
た後にハッシュコード生成器にビットを通すことによっ
てなされる。同時に、シーケンサはバス405を介して
トークンの第11ビットおよび第12ビットを通過させ
ることにより、対応する比較回路411−1、411−
2、411−3、または411−4が、復号のためにバ
ス405を介してRAMの行−列エントリの内容を返す
ようにする。
【0034】図5のブロック517で、このRAMエン
トリから復号された末尾文字がシーケンサ403によっ
て復号される。選択したエントリに対するRAMのTIME
_OF_LAST_MATCHは値TIME+1に更新され(ブロック51
8)、シーケンサは、RAMエントリのプレフィクス部
分を用いてDECODE_TOKENを更新し(ブロック519)、
ブロック509のテストを反復する。注意すべき点であ
るが、ブロック509からブロック517〜519への
ループにより、末尾文字は、符号器から受信されたのと
逆順で復号器によって抽出される。シーケンサ403
は、復号される各末尾文字が置かれる(図5のブロック
503、510および517)1つ以上の「スタック」
(後入れ先出し記憶領域)を有し、これは、復号したシ
ーケンスを正しい順序で返す。
【0035】実施例では、そのようなスタックが複数個
設けられ、それぞれシーケンサ403によって充填さ
れ、以前に充填されたスタックの内容は正しい順序でバ
ス401を介して出力される。シーケンサの進行阻止を
回避するのに必要なスタックの数は、符号化ストリーム
の期待される圧縮特性と、バス402上とバス401上
の最大転送レートの比によって決定される。
【0036】シーケンサは、スタックをダンプのために
解放した(ブロック511)後、流れ図のブロック51
2〜515に従って新たなメモリエントリを形成する。
本発明によれば、復号器のメモリエントリは対応する符
号器のエントリと正確に一致することが本質的であり、
回路400において、シーケンサ403は、上記の符号
器の場合に説明したのと同じ要素、すなわち、ハッシュ
コード生成器401、比較回路411−1、411−
2、411−3、および411−4、ならびにセレクタ
414を利用して、符号器での動作を正確に再生して、
バス405、408、および410上でこれらの要素を
制御しデータを交換する。
【0037】ある符号化・復号アプリケーションでは、
入力ディジタル信号ストリームは実質的に無限の長さを
有することがある。その結果、シーケンサ403におけ
る時間ベースのエントリTIMEおよびその他の時間ベース
のエントリと、RAM_CREATEDおよびTIME_OF_LAST_MATCH
の使用は、時間追跡装置の長さが有限であることにより
問題となる。この制限を克服するため、実施例における
時間ベースの変数を18ビットの2進整数として表す。
図3および図5の流れ図に戻ると、明らかに、時間値
は、218の新たなエントリが作られた後にオーバフロー
することになる。すべての時間エントリの一貫性を保つ
ため、実施例は、2進表現の最上位ビットの値によって
識別される「現在」および「過去」の時期の概念を利用
する。現在時期は、グローバルレジスタTIMEの最上位ビ
ットによって定義される。このレジスタは「ラップアラ
ウンド」(最後から最初に戻る)ことが可能であり、シ
ーケンサレジスタおよびメモリにおける他のすべての時
刻表現は現在時期または過去時期に属するものと解釈さ
れる。現在時期は、時間ベースの変数に対応するレジス
タに記憶されている最上位ビットと、グローバルレジス
タTIMEの最上位ビットが等しいことによって認識され
る。過去時期は、これらの同じ最上位ビットが等しくな
いことによって認識される。現在時期のかなりの部分が
経過した後、現在時期の満了の十分前に、符号器および
復号器でバックグラウンドプロセスが開始され、RAM_CR
EATEDの最上位ビットが過去時期のものであることを示
しているメモリ内のすべてのエントリをUNUSEDとマーク
する。これらのバックグラウンドプロセスには、現在時
期の満了前にすべての過去時期のエントリを確実に除去
するように十分な時間が与えられる。さらに、これらの
2つの「掃除」プロセスは、符号器と復号器のメモリの
一貫性を維持するために、これらの2つのユニットで一
致する。この方法の実装は当業者には明らかである。
【0038】以上、本発明の実施例について説明した
が、さまざまな変形が可能である。例えば、図3および
図5に示した動作は直列に行われるように説明したが、
これらの動作の多くは並列に実行することも可能であ
る。さらに、符号化動作が連続的でないようなアプリケ
ーションでは、復号器には、メモリ内に余分なエントリ
を作成しないように、符号器動作の中断が知らされなけ
ればならない。このような余分なエントリの作成を防ぐ
には、符号器動作の中断を示す特殊なトークンを符号器
から復号器へ送信する。この技術も当業者には周知であ
る。
【0039】
【発明の効果】以上述べたごとく、本発明によれば、高
速で、容易に実装可能であり、効率的な破棄判断基準を
利用する、有限な順次パターンメモリが実現される。
【図面の簡単な説明】
【図1】本発明に従って動作する順次パターンメモリの
例の図である。
【図2】本発明に従って動作する順次パターンメモリの
例の図である。
【図3】本発明による符号化装置によって実行される動
作の系列を示す流れ図である。
【図4】本発明を組み込んだ符号化装置または復号装置
の概略ブロック図である。
【図5】本発明による復号装置によって実行される動作
の系列を示す流れ図である。
【符号の説明】
100 メモリ 400 回路 401 バス 402 バス 403 シーケンサ 405 バス 406 ハッシュコード生成器 407 メモリ 408 バス 409 RAM 410 バス 411 比較回路 412 バス 413 バス 414 セレクタ
───────────────────────────────────────────────────── フロントページの続き (71)出願人 596077259 600 Mountain Avenue, Murray Hill, New Je rsey 07974−0636U.S.A. (72)発明者 アレキサンダー ジョン シャウ アメリカ合衆国,07730 ニュージャージ ー,ハズレット,ミシガン アヴェニュー 6

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 ディジタル符号化された記号からなる複
    数のディジタル符号化記号列をメモリデバイスに記憶す
    る方法において、 (a)前記メモリデバイスを複数の記憶セットに分割す
    るステップと、 (b)各記憶セットを複数のスロットに分割するステッ
    プとからなり、 各スロットは、1個のディジタル符号化記号と、該ディ
    ジタル符号化記号に関連する制御情報とを記憶すること
    を特徴とする、ディジタル符号化記号列の記憶方法。
  2. 【請求項2】 前記制御情報はディジタル符号化記号の
    有無を指定し、 ディジタル符号化記号が存在する場合、前記制御情報は
    さらに、 (a)前記ディジタル符号化記号が前記メモリデバイス
    にロードされた時刻と、 (b)前記メモリデバイスが前記ディジタル記号の検索
    に最後に成功した時刻と、 (c)前記ディジタル符号化記号がディジタル符号化記
    号列の最初の記号でない場合、該ディジタル符号化記号
    列で直前のディジタル符号化記号の、記憶セットのアド
    レスと、該記憶セット内のスロットのアドレスとを指定
    することを特徴とする請求項1の方法。
  3. 【請求項3】 ディジタル符号化された記号からなる複
    数のディジタル符号化記号列を記憶する装置において、 該装置は複数の記憶セットに分割されたメモリデバイス
    からなり、 各記憶セットは複数のスロットに分割され、 各スロットは、1個のディジタル符号化記号と、該ディ
    ジタル符号化記号に関連する制御情報とを記憶すること
    を特徴とする、ディジタル符号化記号列の記憶装置。
  4. 【請求項4】 前記制御情報はディジタル符号化記号の
    有無を指定し、 ディジタル符号化記号が存在する場合、前記制御情報は
    さらに、 (a)前記ディジタル符号化記号が前記メモリデバイス
    にロードされた時刻と、 (b)前記メモリデバイスが前記ディジタル記号の検索
    に最後に成功した時刻と、 (c)前記ディジタル符号化記号がディジタル符号化記
    号列の最初の記号でない場合、該ディジタル符号化記号
    列で直前のディジタル符号化記号の、記憶セットのアド
    レスと、該記憶セット内のスロットのアドレスとを指定
    することを特徴とする請求項3の装置。
  5. 【請求項5】 前記装置はさらに、 (a)ディジタル符号化記号列の連続する各ディジタル
    符号化記号が記憶される記憶セットを指定するハッシュ
    デバイスと、 (b)新しいディジタル符号化記号が挿入される記憶セ
    ット内のスロットを選択する選択デバイスと、 (c)記憶されているディジタル符号化記号がディジタ
    ル符号化記号列内の与えられたディジタル符号化記号と
    一致するか否かを判断する比較デバイスと、 (d)記憶されているディジタル符号化記号が妥当であ
    るか否かを判断する記号妥当性判断デバイスとを有し、 前記選択デバイスは、記憶セット内のすべてのロケーシ
    ョンが占有されているときに置換されるべき現在記憶さ
    れているディジタル符号化記号を選択する手段を有し、 前記選択デバイスは、最長時間未使用判断基準に基づい
    て、置換されるべきディジタル符号化記号を選択し、 前記記号妥当性判断デバイスは、記憶されているディジ
    タル符号化記号がディジタル符号化記号列内のディジタ
    ル符号化記号と一致する場合にも記憶されているディジ
    タル符号化記号が妥当である判断し、記憶されているデ
    ィジタル符号化記号は、前記選択デバイスによって既に
    置換のために選択されている場合に妥当でないと判断さ
    れることを特徴とする請求項4の装置。
  6. 【請求項6】 前記比較デバイスは、記憶されているデ
    ィジタル符号化記号と、ディジタル符号化記号列内の与
    えられたディジタル符号化記号を比較して、 (a)前記記憶されているディジタル符号化記号が、デ
    ィジタル符号化記号列内の前記与えられたディジタル符
    号化記号と一致すること、および、 (b)前記記憶されているディジタル符号化記号に関連
    し直前の記号の記憶セットおよびスロットを指定する制
    御情報が、前記ディジタル符号化記号列の直前の記号の
    記憶セットおよびスロットを指定すること、を判断する
    ことによって、前記記憶されているディジタル符号化記
    号と、前記ディジタル符号化記号列内の与えられたディ
    ジタル符号化記号が一致していると認識することを特徴
    とする請求項5の装置。
  7. 【請求項7】 前記記号妥当性判断デバイスは、記憶さ
    れているディジタル符号化記号に関連する制御情報に基
    づいて該記憶されているディジタル符号化記号の妥当性
    を判断する際に、 (a)前記記憶されているディジタル符号化記号の制御
    情報に示される直前の記号の記憶セットおよびスロット
    が、ディジタル符号化記号列内の直前の記号の記憶セッ
    トおよびスロットと一致しないこと、もしくは、 (b)前記制御情報によって指定される、前記記憶され
    ているディジタル符号化記号が前記メモリデバイスにロ
    ードされた時刻が、ディジタル符号化記号列の直前の記
    号が前記メモリデバイスにロードされた時刻より早いこ
    と、のいずれか一方または両方が成り立つ場合に、前記
    記憶されているディジタル符号化記号が妥当であると判
    断することを特徴とする請求項5の装置。
  8. 【請求項8】 前記装置はさらに、ディジタル符号化記
    号列の連続する記号がある記憶セットを検索する検索デ
    バイスを有し、該検索デバイスは、 (a)前記ディジタル符号化記号列内の直前のディジタ
    ル符号化記号の記憶セットと、 (b)該記憶セットにおける該直前の記号のスロット
    と、 (c)前記ディジタル符号化記号列の連続する記号の直
    後の記号のディジタル符号化表現と、の連結を用いて前
    記記憶セットを検索し、 (a)、(b)および(c)の連結は、アドレス生成デ
    バイスへの入力を表すことを特徴とする請求項5の装
    置。
  9. 【請求項9】 前記アドレス生成デバイスは、電子メモ
    リデバイスに記憶されているハッシュ符号化テーブルで
    あることを特徴とする請求項8の装置。
  10. 【請求項10】 ディジタル符号化記号が前記メモリデ
    バイスにロードされた時刻と、前記メモリデバイスが前
    記ディジタル記号の検索に最後に成功した時刻は、有限
    整数符号化を用いて表現されることにより、時間値を生
    成し、時間値のオーバフローは、時間値の最上位ビット
    に基づいて時間値を第1時期と第2時期に分割し、現在
    時期を第1時期または第2時期のいずれかとして定義し
    て、現在時期の時間値が残りの時期の時間値の後に処理
    されるようにすることによって解決されることを特徴と
    する請求項4の装置。
  11. 【請求項11】 最上位ビットの各ロールオーバの後
    に、残りの時期のすべての記憶セットを置換のために選
    択することを特徴とする請求項10の装置。
JP06433197A 1996-03-19 1997-03-18 ディジタル符号化記号列の記憶方法および記憶装置 Expired - Fee Related JP3316160B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US618163 1996-03-19
US08/618,163 US5913216A (en) 1996-03-19 1996-03-19 Sequential pattern memory searching and storage management technique

Publications (2)

Publication Number Publication Date
JPH1075180A true JPH1075180A (ja) 1998-03-17
JP3316160B2 JP3316160B2 (ja) 2002-08-19

Family

ID=24476569

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06433197A Expired - Fee Related JP3316160B2 (ja) 1996-03-19 1997-03-18 ディジタル符号化記号列の記憶方法および記憶装置

Country Status (5)

Country Link
US (1) US5913216A (ja)
JP (1) JP3316160B2 (ja)
KR (1) KR970066851A (ja)
BR (1) BR9701291A (ja)
CA (1) CA2186802A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6240428B1 (en) * 1997-10-31 2001-05-29 Oracle Corporation Import/export and repartitioning of partitioned objects
US6629112B1 (en) * 1998-12-31 2003-09-30 Nortel Networks Limited Resource management for CORBA-based applications
US20030088537A1 (en) * 2001-08-08 2003-05-08 Nec Eluminant Technologies, Inc. High speed data compression and decompression apparatus and method
US7343372B2 (en) * 2002-02-22 2008-03-11 International Business Machines Corporation Direct navigation for information retrieval
US7209932B2 (en) * 2002-03-25 2007-04-24 International Business Machines Corporation Method, system, and program for allocating tasks to a plurality of processors
US6959297B2 (en) * 2002-04-25 2005-10-25 Winnow Technology, Llc System and process for searching within a data stream using a pointer matrix and a trap matrix
US7486673B2 (en) 2005-08-29 2009-02-03 Connect Technologies Corporation Method and system for reassembling packets prior to searching
US10173718B2 (en) * 2013-07-19 2019-01-08 Steering Solutions Ip Holding Corporation Motor position filter for estimation of velocity using moving linear regression

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0378322A (ja) * 1989-08-22 1991-04-03 Fujitsu Ltd データ圧縮方式
JPH03204232A (ja) * 1989-12-28 1991-09-05 Internatl Business Mach Corp <Ibm> 圧縮データの符号化方法
JPH0795093A (ja) * 1993-07-08 1995-04-07 Internatl Business Mach Corp <Ibm> 順次データ圧縮アルゴリズムを実行する装置及び方法
JPH07297728A (ja) * 1994-04-15 1995-11-10 Internatl Business Mach Corp <Ibm> パターン一致を探索するための方法およびシステム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4197580A (en) * 1978-06-08 1980-04-08 Bell Telephone Laboratories, Incorporated Data processing system including a cache memory
US4322795A (en) * 1980-01-24 1982-03-30 Honeywell Information Systems Inc. Cache memory utilizing selective clearing and least recently used updating
US4458310A (en) * 1981-10-02 1984-07-03 At&T Bell Laboratories Cache memory using a lowest priority replacement circuit
US4607346A (en) * 1983-03-28 1986-08-19 International Business Machines Corporation Apparatus and method for placing data on a partitioned direct access storage device
DE3588212T2 (de) * 1984-08-22 1999-12-30 Hitachi, Ltd. Verfahren und Gerät zum Suchen von Daten
US4748439A (en) * 1985-08-13 1988-05-31 Fairchild Semiconductor Corporation Memory apparatus and method for retrieving sequences of symbols including variable elements
US4928239A (en) * 1986-06-27 1990-05-22 Hewlett-Packard Company Cache memory with variable fetch and replacement schemes
DE3801380A1 (de) * 1987-01-20 1988-07-28 Nec Corp Zeichenfolge-erkennungsvorrichtung mit einem speicher, dessen speicherbereiche selektiv zugreifbar sind
JPH0673114B2 (ja) * 1987-03-31 1994-09-14 日本電気株式会社 キヤツシユ制御装置
US5019971A (en) * 1987-04-13 1991-05-28 Prime Computer, Inc. High availability cache organization
US4996663A (en) * 1988-02-02 1991-02-26 Bell Communications Research, Inc. Methods and apparatus for decontaminating hash tables
US5287499A (en) * 1989-03-22 1994-02-15 Bell Communications Research, Inc. Methods and apparatus for information storage and retrieval utilizing a method of hashing and different collision avoidance schemes depending upon clustering in the hash table
WO1992009960A1 (en) * 1990-11-30 1992-06-11 Telematique International Laboratories Data retrieving device
US5371870A (en) * 1992-04-24 1994-12-06 Digital Equipment Corporation Stream buffer memory having a multiple-entry address history buffer for detecting sequential reads to initiate prefetching
WO1995012165A1 (en) * 1993-10-22 1995-05-04 Gestalt Technologies, Incorporated Distributed management in a partitioned memory system
US5633858A (en) * 1994-07-28 1997-05-27 Accton Technology Corporation Method and apparatus used in hashing algorithm for reducing conflict probability
US5606688A (en) * 1994-08-31 1997-02-25 International Business Machines Corporation Method and apparatus for dynamic cache memory allocation via single-reference residency times

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0378322A (ja) * 1989-08-22 1991-04-03 Fujitsu Ltd データ圧縮方式
JPH03204232A (ja) * 1989-12-28 1991-09-05 Internatl Business Mach Corp <Ibm> 圧縮データの符号化方法
JPH0795093A (ja) * 1993-07-08 1995-04-07 Internatl Business Mach Corp <Ibm> 順次データ圧縮アルゴリズムを実行する装置及び方法
JPH07297728A (ja) * 1994-04-15 1995-11-10 Internatl Business Mach Corp <Ibm> パターン一致を探索するための方法およびシステム

Also Published As

Publication number Publication date
US5913216A (en) 1999-06-15
CA2186802A1 (en) 1997-09-20
BR9701291A (pt) 1998-08-11
KR970066851A (ko) 1997-10-13
JP3316160B2 (ja) 2002-08-19

Similar Documents

Publication Publication Date Title
US5339398A (en) Memory architecture and method of data organization optimized for hashing
US5410671A (en) Data compression/decompression processor
JP2502469B2 (ja) 文字デ―タを圧縮し圧縮済みデ―タを展開するための静的辞書構造を提供する方法および手段
US5150119A (en) Data compression method and apparatus
US5151697A (en) Data structure management tagging system
Czech et al. Perfect hashing
US5701459A (en) Method and apparatus for rapid full text index creation
JP2830280B2 (ja) 可変長ストリング符合装置
US5153591A (en) Method and apparatus for encoding, decoding and transmitting data in compressed form
US5848416A (en) Method and apparatus for storing and retrieving data and a memory arrangement
EP1866775B1 (en) Method for indexing in a reduced-redundancy storage system
US5239298A (en) Data compression
US20060271540A1 (en) Method and apparatus for indexing in a reduced-redundancy storage system
JP2979106B2 (ja) データ圧縮
US6760821B2 (en) Memory engine for the inspection and manipulation of data
JPH0697838A (ja) 復号化装置
JP3316160B2 (ja) ディジタル符号化記号列の記憶方法および記憶装置
US20020040361A1 (en) Memory based on a digital trie structure
US5815096A (en) Method for compressing sequential data into compression symbols using double-indirect indexing into a dictionary data structure
JP3644494B2 (ja) 情報検索装置
EP1201036B1 (en) Method and apparatus for reducing the time required for compressing data
US5614900A (en) Variable word length code decoding apparatus having plural decoding tables for decoding long words
US7256715B1 (en) Data compression using dummy codes
JPH0666050B2 (ja) ソート処理方法
EP0595539A1 (en) A sequential pattern memory searching and storage management technique

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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: 20080607

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090607

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100607

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110607

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110607

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120607

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120607

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130607

Year of fee payment: 11

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees