JP2000516776A - トランスフォームを生成する方法および装置 - Google Patents

トランスフォームを生成する方法および装置

Info

Publication number
JP2000516776A
JP2000516776A JP09531887A JP53188797A JP2000516776A JP 2000516776 A JP2000516776 A JP 2000516776A JP 09531887 A JP09531887 A JP 09531887A JP 53188797 A JP53188797 A JP 53188797A JP 2000516776 A JP2000516776 A JP 2000516776A
Authority
JP
Japan
Prior art keywords
transform
shifted
data string
bits
data
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
JP09531887A
Other languages
English (en)
Other versions
JP3394781B2 (ja
Inventor
ブランディン,クリストファー
Original Assignee
ネオ・コア・エルエルシー
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 ネオ・コア・エルエルシー filed Critical ネオ・コア・エルエルシー
Publication of JP2000516776A publication Critical patent/JP2000516776A/ja
Application granted granted Critical
Publication of JP3394781B2 publication Critical patent/JP3394781B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Complex Calculations (AREA)
  • Computer And Data Communications (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 トランスフォーム発生器(20)が入出力ポート(22)を有する。入出力ポート(22)には、コントローラ(24)が結合されている。入出力ポート(22)は、入力トランスフォームとデータ・ストリングとを受取り、新たなトランスフォームを出力する。索引メモリ(26)がコントローラ(24)に結合され、新たなトランスフォームを決定するために用いられる。シフト・モジュール(28)と結合器(30)もまたコントローラ(24)に結合され、メモリ(26)と共に用いられて新たなトランスフォームを決定する。

Description

【発明の詳細な説明】 トランスフォームを生成する方法および装置発明の分野 本発明は、巡回冗長コード、多項式コードおよびハッシュ・コード(hash ing code)のようなトランスフォーム(transform)の生成分 野に関し、特にトランスフォームを生成する方法および装置に関する。発明の背景 図1に、従来技術の例示的トランスフォーム発生器10が示されている。従来 技術のトランスフォーム発生器10は、データ・レジスタ(シフト・レジスタ) 12と中間剰余レジスタ(intermediate remainder r egister)14とを有する。図1の特定の発生器は、巡回冗長コード(C RC−16)を計算するように設計される。中間剰余レジスタ14における複数 のレジスタ16は、戦略的に複数の排他的OR18により結合される。データ・ ビットが、データ・レジスタ12から中間レジスタ14へシフトされる。データ ・ビットが中間レジスタ14へ完全にシフトされた時、中間レジスタはデータ・ ビットと関連するCRCを含んでいる。トランスフォーム発生器はまた、ソフト ウェアにおいてコード化されてきた。ハードウェアをエミュレートすることは、 ソフトウェアでトランスフォームを生じる不充分な方法であることが判っており 、従ってソフトウェア方式は一般にトランスフォームを一時に1バイトまたはニ ブル(4ビット)計算するため索引テーブルを使用する。索引テーブルは、任意 の大きさのデータ量(例えば、1ビット、10ビット、など)に対して設定する ことができる。 パケッタイザ(packetizer)はトランスフォーム発生器を用いて、 新たに形成されたデータ・パケットについてCRCを計算する。パケッタイザは 、色々なソースからパケット(データ)を受取る。受取ったかかるパケットは、 次に、その最終宛て先に従って分類される。2つの小さなパケットが同じ宛て先 を持つならば、これらは1つのパケットに組合わされ、次にその宛て先へ送られ る。 従来技術の用途においては、パケッタイザはCRCを両方のパケットから取去っ た後、両方のパケットの組合わされたデータに基いてCRCを再計算する。他の 状況においては、パケッタイザは、2つのより小さなパケットへ分けられる必要 のある1つの大きなパケットを受取る。従来技術の用途では、大きなパケットの CRCが排除され、両方のより小さなパケットに対するスクラッチ(scrat ch)から新たなCRCが計算される。このプロセスは、受取られたパケットか らのCRCが出てゆくパケットに対するCRCの計算時に有用な情報を含むので 、不充分である。 トランスフォーム発生器はまた、連想メモリにおいても用いられる。トランス フォーム発生器は、データ・パケットのアドレスを決定するため、ハッシュ・コ ードまたは多項式コードを計算する(Brandinの米国特許第4,527, 239号参照)。データ・パケットが2つの早期パケットの組合わせであるとき 、従来技術の連想メモリがスクラッチからの新たなデータ・パケットに対する新 たなトランスフォームを計算する。処理の利点は、古いトランスフォームを用い て新たなトランスフォームを計算することができるトランスフォーム発生器によ って達成することができる。 このように、基礎となるデータを用いることなくその時のトランスフォームか ら新たなトランスフォームを生成することができるトランスフォーム発生器に対 する必要が存続する。発明の概要 かかる問題を克服する方法は、第1のデータ・ストリングと関連する第1のト ランスフォームを受取ることによってトランスフォームを生成する。第2のデー タ・ストリングと関連する第2のトランスフォームもまた受取られる。この第2 のトランスフォームは第1のトランスフォームに付属して、第1−第2のデータ ・ストリングに対する第1−第2の組合わせトランスフォームを形成する。 当該方法を実施する装置は、コントローラに結合された入出力ポートを含んで いる。このコントローラはまた、索引メモリ、シフト・モジュールおよび結合器 (combiner)にも結合される。図面の簡単な説明 図1は、従来技術のトランスフォーム発生器の概略図、 図2は、本発明によるトランスフォーム発生器のブロック図、 図3は、図2のトランスフォーム発生器において用いられるシフト・モジュー ルの概略図、 図4は、図2のトランスフォーム発生器において用いられる結合器の概略図、 図5は、本発明によるトランスフォーム発生器の代替的な実施の形態のブロッ ク図、 図6は、シフト・モジュールのフローチャート、 図7は、アンシフト・モジュール(unshift module)のフロー チャート、 図8は、トランスフォーム・モジュールのフローチャート、 図9は、アントランスフォーム(untransform)・モジュールのフ ローチャート、 図10は、連想メモリのブロック図、 図11は、パケッタイザのブロック図、 図12は、汎用コンピュータと、コンピュータが読出し可能な命令(comp uter−readable instruction)を含むコンピュータ読 出し可能記憶媒体(computer−readable storage m edium)の概略図、 図13は、CRC−32多項式コードに対する索引テーブル、および 図14は、CRC−32多項式コードに対する逆索引テーブルである。図面の詳細な説明 図2は、本発明によるトランスフォーム発生器20のブロック図を示す。従来 技術のトランスフォーム発生器とは異なり、トランスフォーム発生器20は、基 礎となるデータを照合することなく、2つの前のトランスフォームに基いて新た なトランスフォームを計算することができる。トランスフォーム発生器20がど のように働くかについて理解するには、基礎となる数学の一部を理解することが 役立つ。基礎となる数学は、巡回冗長コードに限定されないがこれを含む多項式 コードに基くものである。これらコードは、下式により表わすことができる。 Xn-kM(X)=Q(X)G(X)+R(X) 但し、Xn-kは、桁送り項(shifting term)、 M(X)は、メッセージ多項式 G(X)は、発生器多項式 Q(X)は、メッセージが発生器多項式により除される時に結果として得 る商、および R(X)は、除算プロセスの剰余である。 剰余は、メッセージのCRC即ちトランスフォームである。上式から、排他的 OR(組合わせ)であった2つのメッセージのトランスフォームがこの2つのメ ッセージと関連する排他的ORされたトランスフォームに等しいことが示される 。第1のメッセージが“A”であり第2のメッセージが“B”であるならば、組 合わせメッセージは“AB”である。このメッセージの多項式は、 AB(X)=XZA(X)+B(X) 但し、Zは、メッセージBにおけるビット数に等しい。 かつ、 RAB(X)=R(XZA(X))+RB(X) このように、メッセージ“AB”に対するトランスフォームを生成するには、 “B”のトランスフォームを“A0”に対するトランスフォームと組合わせるだ けでよく、ここで、0はZナル(Z nulls)を表わす。“A”および“B ”に対するトランスフォームが既知であると、“A”に対するシフトされたトラ ンスフォームの値を計算してこれを“B”のトランスフォームと組合わせるだけ でよい。好都合にも、シフトされたトランスフォームを計算するための簡単なプ ロセスがある。 トランスフォーム発生器20は、上記の数学を用いて、現存するトランスフォ ームを用いて新たなトランスフォームを計算する。入出力ポート22は、現存す るトランスフォームを受取り新たなトランスフォームを出力するために用いられ る。入出力ポート22は、メモリ26、シフト・モジュール28および結合器3 0の諸機能を統合するコントローラ24に結合される。メモリは、トランスフォ ームのための索引テーブルを含んでいる。このような索引テーブルの一例が、図 13に示される。図13の表は、バイト単位でトランスフォームを計算するCR C−32トランスフォームに基くものである。他のテーブルは他の多項式に対し て発生される。本発明はCRC多項式に限定されるものでなく、広範囲の他の多 項式を許容し得る。特定の多項式は、トランスフォーム発生器の使用に依存する 。シフト・モジュール28は、シフトされたトランスフォームを決定する機能を 実施する。結合器は、例えば、シフトされた第1のトランスフォームと第2のト ランスフォームとを組合わせ(XOR)て、第1−第2のトランスフォームを形 成する。この第1−第2のトランスフォームは、第1−第2のデータ・ストリン グと関連するトランスフォームとして定義される(例えば、通信事例においては 、第1のデータ・ストリング;第1−第2のデータ・ストリングの直後に第2の データ・ストリングが送られる).第1のトランスフォームをシフトしてこれを 第2のトランスフォームと組合わせプロセスは、付加(appending)と 呼ばれる。トランスフォーム発生器は、ソフトウェアにおいて、あるいは、メモ リ、マイクロプロセッサ、および少数のシフト・レジスタおよび排他的ORゲー トからなるハードウェアにおいて実現することができる。 図3は、トランスフォーム発生器20により使用されるシフト・モジュール2 8の概略図を示している。シフトされたトランスフォームは、入力42とシフト 制御部44と出力46とを持つトランスフォーム・レジスタ40に記憶される。 出力46は、排他的ORゲート48に接続される。索引レジスタ50は、シフト されるトランスフォームから得たポインタを用いて選択された部材を含む。索引 レジスタ50は、入力52とシフト制御部54と出力56とを有する。出力56 は、排他的ORゲート48の第2の入力に結合されている。排他的ORゲートの 出力58は、出力レジスタ60に記憶される。適切な処理後に、出力レジスタ60 は、出力62を介してコントローラ24へ送られるシフトされたトランスフォー ムを含む。 図4は、トランスフォーム発生器20により使用される結合器30の概略図を 示す。第1のレジスタ70と第2のレジスタ72とは、排他的ORゲート74に 結合された3つの出力を有する。実施の一形態において、第1のレジスタ70は シフトされた第1のトランスフォームを含み、第2のレジスタ72は第2のトラ ンスフォームを含む。排他的ORゲート74の出力は、出力レジスタ76に接続 される。シフトされた第1のトランスフォームがいったん第2のトランスフォー ムと組合わされると、出力レジスタ76は第1−第2のトランスフォームを含む 。 図5は、本発明によるトランスフォーム発生器100の代替的な実施の形態の ブロック図である。トランスフォーム発生器100は、コントローラ24に結合 された入出力ポート22を有する。コントローラ24は、メモリ26、シフト・ モジュール28、アンシフト・モジュール104、トランスフォーム・モジュー ル106、非トランスフォーム・モジュール108および結合器30に対するバ ス102上で通信する。メモリ26は、索引テーブル(例えば、図13における 表)と、一例が図14に示される逆索引テーブルとの両者を含む。図14におけ る逆索引テーブルは、バイト単位で同じCRC−32に基くものである。図5の トランスフォーム発生器100は、図2のトランスフォーム発生器20のように 、トランスフォームを組合わせることができる。更に、トランスフォーム発生器 100は、第1のトランスフォームと第2のデータ・ストリングが与えられると 、あるいは第1のデータ・ストリングと第2のトランスフォームが与えられると 、第1−第2のトランスフォームを決定することができる。トランスフォーム発 生器100は、第1のトランスフォームを決定するため、第1−第2の組合わせ トランスフォームから第2のトランスフォームを除去することができる。トラン スフォーム発生器100は、実質的に、トランスフォームあるいはデータとして 充分な入力が与えられると、トランスフォームの完全な操作を可能にする。これ が行われる方法については、各モジュールを図6ないし図9に関して更に詳細に 説明した後に、更に詳細に説明する。 図6は、シフト・モジュールのフロー図である。当該シフト・モジュールは、 シフトされたモジュールに対するトランスフォームを決定する(即ち、“A0” −XZA(X))。当該プロセスは、ステップ124においてシフトされたトラ ンスフォーム122を受取ることによって始動する、即ちステップ120。次に 、ポインタ126がステップ128において取出される。次に、トランスフォー ム122は、ステップ130において、ポインタ126におけるビット数だけ右 方へ移動される。これは、移動されたポインタ132を形成する。右および左な る 用語は便宜上用いられ、最上位ビットが左方に置かれるという約束に基いている ことに注意されたい。異なる約束が用いられる時は、右および左なる用語をその 約束に適するように変更することが必要である。次に、移動されたトランスフォ ーム132が、ステップ136において、ポインタ126と関連する構成要素1 34と組合わされる(即ち、XORされる)。これはステップ140においてシ フトされたトランスフォーム138を形成し、これがステップ142においてプ ロセスを終了する。第1のトランスフォームをシフトする理由が第1−第2のト ランスフォームを生成することであるならば、第1のトランスフォームが第2の データ・ストリングにおけるビット数だけシフトされねばならないことに注目さ れたい。これは、シフト・モジュールをX回実行することにより行われ、ここで 、Xは、ポインタにおけるビット数で除される第2のデータ・ストリングにおけ るデータ・ビット数に等しい。シフト・モジュールを実現する別の方法が図1に おけるものと類似する多項式発生器(polynomial generato r)を用いることであることに注目されたい。第1のトランスフォーム122は 、中間剰余レジスタ14に置かれる。次に、第2のデータ・ストリングにおける データ・ビット数に等しい論理値ゼロ(ナル)の数が処理される。 図7は、アンシフト・モジュールのフロー図である。このモジュールが用いら れる時の一例は、データ・ストリング“AB”に対するトランスフォームがデー タ・ストリング“B”に対するトランスフォームと組合わされる時である。これ は、データ・ストリング“AO”に対するトランスフォーム、即ち、XZA(X )を残す。データ・ストリング“A”に対するトランスフォームを見出すために は、トランスフォームを“アンシフト(unshift)”することが必要であ る。プロセスは、ステップ154においてシフトされたトランスフォーム152 を受取ることによって始動する、即ち、ステップ150。ステップ156におい て、逆ポインタ158が取出される。この逆ポインタ158は、シフトされたト ランスフォーム152の最上位部分160に等しい。逆ポインタ158は、ステ ップ164において、逆索引テーブルにおけるポインタ162と関連している( 例えば、図14参照)。次に、ポインタ162と関連する構成要素166がステ ップ168においてシフトされたトランスフォームと組合わされる。これは、 ステップ172において中間結果(intermediate product )170を生じる。ステップ174において、中間結果170は左へ移動されて 移動された中間結果176を形成する。移動された中間結果176は、次に、ス テップ178においてポインタ162と組合わされてトランスフォーム180を 形成し、これがステップ182においてプロセスを終了する。“B”データ・ス トリング(z)におけるビット数がポインタにおけるビット数と等しくなければ 、アンシフト・モジュールはX回だけ実行される、ここでX=z/(ポインタに おけるビット数)。 図8は、トランスフォーム・モジュールのフローチャートである。トランスフ ォーム・モジュールは、第2のデータ・ストリングを第2のトランスフォームへ 最初にトランスフォームすることなく、第1のトランスフォームと第2のデータ ・ストリングが与えられると第1−第2のデータ・ストリングに対する第1−第 2のトランスフォームを決定することができる。プロセスは、ステップ194に おいて第1のトランスフォーム194の最下位部分192を取出すことによって 、開始する、即ちステップ190。これは、ステップ200において、第2のデ ータ・ストリング196と組合わされてポインタ198を形成する。次に、移動 された第1のトランスフォーム202は、ステップ206において、索引テーブ ル(例えば、図12)におけるポインタと関連する構成要素204と組合わされ る。ステップ210において組合わされたトランスフォーム208を生成し、こ れがプロセスを終了する、即ちステップ212。ポインタが1バイトの長さであ るならば、トランスフォームモジュールは一時に1バイトのデータを処理するこ とができるにすぎない。第2のデータ・ストリングが1バイトより長い時、全て の第2のデータ・ストリングが実行されるまで、トランスフォーム・モジュール が一時に1データ・バイト実行される。別の事例では、第1のトランスフォーム が全てゼロ(ナル)に等しいと仮定すると、組合わされたトランスフォームは第 2のデータ・ストリングに対するトランスフォームである。別の実施の形態では 、第1のトランスフォームはプレコンディションであり得、結果として生じるト ランスフォームはプレコンディションの第2のトランスフォームとなる。別の事 例では、第4のデータ・ストリングに対する第4のトランスフォームが望まし いと仮定しよう。この第4のデータ・ストリングの第1のデータ部分(例えば、 バイト)が実行される。これは、索引テーブルにおける1つの構成要素を指示す る。第4のデータ・ストリングが第1のデータ部分以上を含む時、次のデータ部 分が取出される。次のデータ部分が前記構成要素の最下位部分と組合わされて、 ポインタを形成する。この構成要素は、次のデータ部分におけるビット数により 右へ移動され、移動された構成要素を形成する。この移動された構成要素は、ポ インタと関連する第2の構成要素と組合わされる。このプロセスは、第4のデー タ・ストリング全てが処理されるまで反復される。 図9は、非トランスフォーム・モジュールのフローチャートである。この非ト ランスフォーム・モジュールは、第1−第2のトランスフォームと第2のデータ ・ストリングとが与えられると、第1のデータ・ストリングに対する第1のトラ ンスフォームを決定することができる。プロセスは、ステップ226において第 1−第2のトランスフォーム224の最上位部分222を取出すことによって、 始動する、即ちステップ220。最上位部分222は、逆索引テーブルにおける ポインタ228と関連する逆ポインタである。このポインタは、ステップ230 においてアクセスされる。次に、第1−第2のトランスフォーム224は、ステ ップ236において、ポインタと関連する構成要素232と組合わされて、中間 結果234を形成する。この中間結果は、ステップ238において、ポインタ2 28におけるビット数だけ左へ移動される。これは、移動された中間結果240 を形成する。次に、ポインタ228は、ステップ246において、第2のデータ ・ストリング242と組合わされて結果244を形成する。この結果244は、 ステップ250において移動された中間結果240と組合わされて第1のトラン スフォーム248を形成し、これがステップ252においてプロセスを終了する 。このモジュールは、第2のデータ・ストリングがポインタより長ければ、再び 複数回反復される。 トランスフォーム・モジュール100が実施可能なことの幾つかの事例は、第 1−第2−第3のトランスフォームと第1のトランスフォームとから第2−第3 のトランスフォームを決定することを含む。第1のトランスフォームは、第2− 第3のデータ・ストリングにおけるデータ・ビット数だけシフトされる。シフト された第1のトランスフォームは、第1−第2−第3のトランスフォームと組合 わされて、第2−第3のトランスフォームを形成する。別の事例においては、ト ランスフォーム発生器100は、第4のデータ・ストリングを受取った後に第1 −第2−第3−第4のトランスフォームを決定することができる。一例において 、トランスフォーム・モジュールは、(トランスフォーム・モジュールを用いて )第4のトランスフォームを最初に計算する。シフト・モジュールを用いて、第 1−第2のトランスフォームは、第4のデータ・ストリングにおけるデータ・ビ ット数だけシフトされる。次に、シフトされた第1−第2−第3のトランスフォ ームは、結合器を用いて第4のトランスフォームと組合わされる。 図10は、連想メモリ300のブロック図である。連想メモリ300は、トラ ンスフォーム発生器302を用いてデータ・ストリングをアドレスとコンファー マ(confirmer)と関連付ける。一般に、このアドレスはトランスフォ ームの半分であり、コンファーマはかかるトランスフォームの他の半分である。 カタログ(catalog)304は、アドレスとその関連するコンファーマと のリストと、必要に応じてリンクされたリストとを記憶する。リンクされたリス トは、何らかの矛盾を解明するために必要である。2つの異なるデータ・ストリ ングが同じアドレスへトランスフォームするならば、コンフリクト(confl ict)が生じる。リンクされたリストは、コンフリクトするデータ・ストリン グが記憶される別のアドレスを指示する。このコンファーマは、データ・ストリ ングと関連する正しいアドレスがアクセスされたことを検証するために用いられ る。前記カタログは、データ・ストリングがメモリ(ストア)306に記憶され るアドレスを示す。当該プロセスは、入出力ポート310を介して外部と通信す るコントローラ308によって制御される。全てのデータ・ストリングが固定長 であるならば、カタログ304の使用を排除することが可能である。トランスフ ォーム発生器302を用いることによって、第1のトランスフォームと第2のト ランスフォームを知ることによって第1−第2のデータ・ストリングが記憶され るかどうかを索引することは容易である。逆の順序に(即ち、第2−第1のデー タ・ストリング)迅速に探索することもまた可能である。当業者には、広範囲の 他の高速探索ルーチンが明らかであろう。連想メモリに対する基礎となる多項式 に対する要件は、CRCに対する要件と同じものではないことに注目されたい。 結果として、かかる用例では、他の多くの多項式発生器を用いることができる。 図11は、パケタイザ(packetizer)320のブロック図である。 パケタイザ320は、本文に述べるように、トランスフォーム発生器322を用 いる装置の別の事例である。一例では、パケタイザはルータの一部である。コン トローラ326は、入来するパケット324を受取る。コントローラ326は、 入来パケッタイザ324から出てゆくパケット328を形成する。一般に、出て ゆくパケット328は固定長であり、入来するパケット324は不定長さあるい は異なる長さのいずれかである。以前には、入来データはしばしばパケットには 形成されなかった。出てゆくパケット334は、同じ宛て先へゆく2つの小さな パケット330、332から形成することができる。データ・パケットは、デー タ部分(“A”または“B”)と、CRCまたはトランスフォーム[R(A)ま たはR(B)]とを含む。個々のパケット330、332のCRCが与えられる と、トランスフォーム発生器322を用いて、組合わされたパケットに対するC RC[R(AB)]を迅速に決定することができる。別の事例では、入来するパ ケット336は大きすぎ、2つのパケット338、340へ分けられねばならな い。この2つの新たなCRCは、2つのデータ・ストリングの短い方に対するト ランスフォーム(例えば、[r(C)])を最初に計算し、このトランスフォー ムを他のCRC[R(D)]を形成するように組合わされたトランスフォームか ら取出すことによって容易に計算することができる。CRCの更に異なる操作が 要求される他の事例を想像することができる。本文に述べる如きトランスフォー ム発生器は、基礎となるデータを用いるスクラッチからCRCを再計算すること なく、全てのかかる計算を行うことができる。 図12は、汎用コンピュータ350と、コンピュータが読出し可能な命令を含 むコンピュータ読出し可能記憶媒体352との概略図である。このコンピュータ 読出し可能な記憶媒体352は、コンピュータ350により実行される時トラン スフォーム発生器100の機能を行う命令を含んでいる。これらの命令は、連想 メモリ300の機能を行うかあるいはパケタイザ320の機能を行う単独のもの でよく、あるいは1組の命令の一部でもよい。 このように、基礎となるデータをアクセスすることなく複数の個々のトランス フォームから組合わされたトランスフォームを決定することができるトランスフ ォーム発生器が記述された。更に、当該トランスフォーム発生器は、パケタイザ および連想メモリに生じるトランスフォームの広範囲の他の操作を実施すること ができる。トランスフォーム発生器の利用は、本文述べた2つの事例(即ち、連 想メモリとパケタイザ)に限定されるものではない。他の多くの用例は、当業者 には明らかであろう。 本発明についてはその特定の実施の形態に関して記載したが、本文の記述に照 らせば多くの変更、修正およびバリエーションが当業者には明らかであることが 明瞭である。従って、かかる全ての変更、修正およびバリエーションを請求の範 囲に包含することが意図される。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),OA(BF,BJ,CF ,CG,CI,CM,GA,GN,ML,MR,NE, SN,TD,TG),AP(GH,KE,LS,MW,S D,SZ,UG),EA(AM,AZ,BY,KG,KZ ,MD,RU,TJ,TM),AL,AM,AT,AU ,AZ,BB,BG,BR,BY,CA,CH,CN, CZ,DE,DK,EE,ES,FI,GB,GE,H U,IL,IS,JP,KE,KG,KP,KR,KZ ,LK,LR,LS,LT,LU,LV,MD,MG, MK,MN,MW,MX,NO,NZ,PL,PT,R O,RU,SD,SE,SG,SI,SK,TJ,TM ,TR,TT,UA,UG,US,UZ,VN

Claims (1)

  1. 【特許請求の範囲】 1.トランスフォームを生成する方法において、 (a)第1のデータ・ストリングと関連する第1のトランスフォームを受取る ステップと、 (b)第2のデータ・ストリングと関連する第2のトランスフォームを受取る ステップと、 (c)第1−第2のデータ・ストリングに対して第1−第2の組合わされたト ランスフォームを生成するため、第1のトランスフォームに第2のトランスフォ ームを帰属させるステップと を含む方法。 2.(d)シフトされた第1のトランスフォームを形成するため、第1−第2の 組合わされたトランスフォームから第2のトランスフォームを除去するステップ と、 (e)第1のトランスフォームを形成するため、シフトされた第1のトランス フォームをアンシフトするステップと を更に含む請求項1記載の方法。 3.前記アンシフトステップが、 (i)シフトされた第1のトランスフォームから逆ポインタを取出すステップ と、 (ii)逆索引テーブルにおけるポインタを読出すステップと、 (iii)中間結果を形成するため、ポインタと関連する索引テーブルの構成要 素をシフトされた第1のトランスフォームと組合わせるステップと、 (iv)移動された中間結果を形成するため、前記中間結果を前記ポインタにお けるビット数だけ左へ移動するステップと、 (v)前記移動された中間結果を前記ポインタと組合わせるステップと を含む請求項2記載の方法。 4.前記ステップ(i)ないし(v)がX回だけ反復され、ここで、Xは前記ポ インタにおけるビット数で除された第2のデータ・ストリングにおけるビット数 に等しい請求項3記載の方法。 5.前記帰属させるステップが、 (i)シフトされた第1のトランスフォームを形成するため、第1のトランス フォームを第2のデータ・ストリングにおけるビット数だけ右へシフトするステ ップと、 (ii)シフトされた第1のトランスフォームを第2のトランスフォームと組合 わせるステップと を含む請求項1記載の方法。 6.前記トランスフォームが、データ・ストリングに適用された多項式コードの 結果である請求項1記載の方法。 7.前記多項式コードが巡回冗長コードである請求項6記載の方法。 8.(d)第1−第2−第3のデータ・ストリングと関連する第1−第2−第3 のトランスフォームを受取るステップと、 (e)シフトされた第1のトランスフォームを形成するため、前記第1のトラ ンスフォームを第2−第3のデータ・ストリングにおけるビット数だけシフトさ せるステップと、 (f)第2−第3のトランスフォームを形成するため、第1−第2−第3のト ランスフォームをシフトされた第1のトランスフォームと組合わせるステップと を更に含む請求項1記載の方法。 9.(g)第4のデータ・ストリングを受取るステップと、 (h)第4のトランスフォームを計算するステップと、 (i)シフトされた第1−第2−第3のトランスフォームを形成するため、第 1−第2−第3のトランスフォームを第4のデータ・ストリングにおけるビット 数だけシフトするステップと、 (j)第1−第2−第3−第4のトランスフォームを形成するため、前記シフ トされた第1−第2−第3のトランスフォームを第4のトランスフォームと組合 わせるステップと を更に含む請求項8記載の方法。 10.前記第4のトランスフォームを計算する前記ステップは、 (i)第4のデータ・ストリングの第1のデータ部分を取出すステップと、 (ii)メモリ索引テーブルにおける第1のデータ部分と関連する構成要素をア クセスするステップと、 (iii)第4のデータ・ストリングが前記第1のデータ部分より多くを含む時 、次のデータ部分を取出すステップと、 (iv)ポインタを形成するため、次のデータ部分を前記構成要素の最下位部分 と組合わせるステップと、 (v)移動された構成要素を形成するため、前記構成要素を前記次のデータ部 分におけるビット数だけ右へ移動するステップと、 (vi)前記移動された構成要素を前記ポインタと関連する第2の構成要素と組 合わせるステップと、 (vii)前記第4のデータ・ストリングの全てが処理されるまで、前記ステッ プ(iv)ないし(vi)を反復するステップと を含む請求項9記載の方法。 11.前記シフトするステップが、 (i)前記第1のトランスフォームからポインタを取出すステップと、 (ii)移動された第1のトランスフォームを形成するため、前記第1のトラン スフォームを前記ポインタにおけるビット数だけ右へ移動するステップと、 (iii)前記移動された第1のトランスフォームを前記ポインタと関連する索 引テーブルの構成要素と組合わせるステップと を含む請求項8記載の方法。 12.前記ステップ(i)ないし(iii)がX回反復され、ここで、Xは、前記 第2−第3のデータ・ストリングにおけるビット数で除されたポインタにおける ビット数に等しい請求項11記載の方法。 13.前記シフトするステップが、 (i)前記第1のトランスフォームを多項式発生器の中間レジスタに置くステ ップと、 (ii)前記第2−第3のデータ・ストリングにおけるビット数に等しい数の論 理値ゼロを処理するステップと を含む請求項8記載の方法。 14. (a)第1のデータ・ストリングと関連する第1のトランスフォームを受取る ステップと、 (b)第2のデータ・ストリングと関連する第2のトランスフォームを受取る ステップと、 (c)第1−第2のデータ・ストリングに対する第1−第2の組合わされたト ランスフォームを生成するため、前記第2のトランスフォームを前記第1のトラ ンスフォームに帰属させるステップと をコンピュータに挿入された時に、実施するコンピュータ読取り可能な命令を含 むコンピュータ読取り可能な記憶媒体。 15.(d)シフトされた第1のトランスフォームを形成するため、前記第2の トランスフォームを第1−第2の組合わされたトランスフォームから除去するス テップと、 (e)前記第1のトランスフォームを形成するため、シフトされた第1のトラ ンスフォームをアンシフトするステップと を更に含む請求項14記載のコンピュータ読取り可能な記憶媒体。 16.前記帰属させるステップが、 (i)シフトされた第1のトランスフォームを形成するため、前記第1のトラ ンスフォームを前記第2のデータ・ストリングにおけるビット数だけ右へシフト させるステップと、 (ii)前記シフトされた第1のトランスフォームを前記第2のトランスフォー ムと組合わせるステップとを含む請求項14記載のコンピュータ読取り可能な記 憶媒体。 17.入出力ポートと、 前記入出力ポートに結合されたコントローラと、 前記コントローラに結合された索引メモリと、 前記コントローラに結合されたシフト・モジュールと、 前記コントローラに結合された結合器と を備えるトランスフォーム発生器。 18.前記コントローラに結合されたアンシフト・モジュールを更に備える請求 項17記載の変換発生器。 19.前記コントローラに結合されたトランスフォーム・モジュールを更に備え る請求項17記載の変換発生器。 20.前記コントローラに結合された非トランスフォーム・モジュールを更に含 む請求項17記載の変換発生器。
JP53188797A 1996-03-08 1997-03-04 トランスフォームを生成する方法および装置 Expired - Fee Related JP3394781B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/613,037 1996-03-08
US08/613,037 US5942002A (en) 1996-03-08 1996-03-08 Method and apparatus for generating a transform
PCT/US1997/003355 WO1997033376A1 (en) 1996-03-08 1997-03-04 Method and apparatus for generating a transform

Publications (2)

Publication Number Publication Date
JP2000516776A true JP2000516776A (ja) 2000-12-12
JP3394781B2 JP3394781B2 (ja) 2003-04-07

Family

ID=24455615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53188797A Expired - Fee Related JP3394781B2 (ja) 1996-03-08 1997-03-04 トランスフォームを生成する方法および装置

Country Status (10)

Country Link
US (1) US5942002A (ja)
EP (1) EP0885488A4 (ja)
JP (1) JP3394781B2 (ja)
KR (1) KR19990087608A (ja)
CN (1) CN1103512C (ja)
AU (1) AU713403B2 (ja)
BR (1) BR9708157A (ja)
CA (1) CA2248339A1 (ja)
NZ (1) NZ331723A (ja)
WO (1) WO1997033376A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167400A (en) * 1998-07-31 2000-12-26 Neo-Core Method of performing a sliding window search
US6862588B2 (en) 2001-07-25 2005-03-01 Hewlett-Packard Development Company, L.P. Hybrid parsing system and method
CA2488228A1 (en) * 2002-06-03 2003-12-11 Myrio Corporation Method and system for storing mpeg-2 programs to media and playback
US7129958B2 (en) * 2003-08-28 2006-10-31 Canon Kabushiki Kaisha Color management with tiered caching scheme
GB2442783A (en) * 2006-10-13 2008-04-16 Fujitsu Ltd Wireless communication systems
US20120127003A1 (en) * 2009-08-06 2012-05-24 Youji Shibahara Coding method, decoding method, coding apparatus, and decoding apparatus
JP5353655B2 (ja) * 2009-11-18 2013-11-27 富士通株式会社 エラー検出・訂正符号生成回路及びその制御方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4527239A (en) * 1983-11-28 1985-07-02 Brandin Christopher L Digital data storage methods and apparatus
US4723243A (en) * 1985-12-02 1988-02-02 Advanced Micro Devices, Inc. CRC calculation machine with variable bit boundary
US4945475A (en) * 1986-10-30 1990-07-31 Apple Computer, Inc. Hierarchical file system to provide cataloging and retrieval of data
US5237678A (en) * 1987-05-08 1993-08-17 Kuechler William L System for storing and manipulating information in an information base
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US4937828A (en) * 1988-11-04 1990-06-26 Westinghouse Electric Corp. High speed parallel CRC device for concatenated data frames
JPH03505035A (ja) * 1989-02-16 1991-10-31 グラマン エアロスペース コーポレーション 超高速エラー検出ネットワーク
CA2067633C (en) * 1991-07-24 1996-10-01 Eric Jonathan Bauer Method and apparatus for accessing a computer-based file system
EP0582748B1 (en) * 1992-07-14 1997-03-05 ALCATEL BELL Naamloze Vennootschap Divider device to divide a first polynomial by a second one
JP2821324B2 (ja) * 1992-11-04 1998-11-05 三菱電機株式会社 誤り訂正回路
US5390196A (en) * 1992-11-12 1995-02-14 Bull Hn Information Systems Inc. Byte-wise determination of a checksum from a CRC-32 polynomial
US5418947A (en) * 1992-12-23 1995-05-23 At&T Corp. Locating information in an unsorted database utilizing a B-tree
AU659971B2 (en) * 1992-12-29 1995-06-01 Motorola, Inc. Efficient CRC remainder coefficient generation and checking device and method
JP3000811B2 (ja) * 1993-01-25 2000-01-17 日本電気株式会社 巡回符号化およびcrc装置とその処理方法

Also Published As

Publication number Publication date
EP0885488A1 (en) 1998-12-23
CA2248339A1 (en) 1997-09-12
KR19990087608A (ko) 1999-12-27
WO1997033376A1 (en) 1997-09-12
AU713403B2 (en) 1999-12-02
CN1103512C (zh) 2003-03-19
US5942002A (en) 1999-08-24
CN1219305A (zh) 1999-06-09
EP0885488A4 (en) 2000-11-15
JP3394781B2 (ja) 2003-04-07
AU1985897A (en) 1997-09-22
NZ331723A (en) 2000-01-28
BR9708157A (pt) 2000-01-04

Similar Documents

Publication Publication Date Title
JP4741134B2 (ja) 最長一致アドレスルックアップのための方法および装置
US6985483B2 (en) Methods and systems for fast packet forwarding
US6963924B1 (en) IP routing lookup scheme and system for multi-gigabit switching routers
WO2003069509A2 (en) Efficient ipv4/ipv6 best matching prefix method and apparatus
JP5960863B1 (ja) 検索装置、検索方法、プログラム、及び記録媒体
US6560691B2 (en) Modulus address generator and method for determining a modulus address
CN108460030B (zh) 一种基于改进的布隆过滤器的集合元素判断方法
JP2000516776A (ja) トランスフォームを生成する方法および装置
KR100268221B1 (ko) 순회 여분 검사를 이용한 랜 스위치의 맥 주소 해슁 방법 및장치
US20020053002A1 (en) System for associative processing
JP6205463B2 (ja) 検索装置、検索方法、プログラム、及び記録媒体
JPH0638264B2 (ja) ハツシユ回路
MXPA98007295A (en) Method and apparatus for generating a cam

Legal Events

Date Code Title Description
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: 20080131

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees