JPH09503609A - ビット・マッピングの装置および方法 - Google Patents

ビット・マッピングの装置および方法

Info

Publication number
JPH09503609A
JPH09503609A JP7522084A JP52208495A JPH09503609A JP H09503609 A JPH09503609 A JP H09503609A JP 7522084 A JP7522084 A JP 7522084A JP 52208495 A JP52208495 A JP 52208495A JP H09503609 A JPH09503609 A JP H09503609A
Authority
JP
Japan
Prior art keywords
storage means
address
bit
entry
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP7522084A
Other languages
English (en)
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 JPH09503609A publication Critical patent/JPH09503609A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • 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/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • 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/90348Query processing by searching ordered data, e.g. alpha-numerically ordered data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computational Linguistics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 内容アドレス可能メモリ(CAM)を使用しない高速nビット−kビット変換装置またはマッピング装置が記載される。これは、本質的に2つの従来の記憶装置(RAM)を使用することを特徴とする。第一の記憶装置(3)内には、nビット・ワードが、好ましくは2進探索キーによって決定された順序で記憶される。第2の記憶装置(4)は、対応するkビット変換を保持する。どちらの記憶装置も、入力nビット・ワードと第1の記憶装置の内容との一致を見つけるために実行される探索中に確立される本質的に同じアドレスによってアドレス指定される。本発明の変形例では、並列比較の使用およびパイプラインの使用が示される。

Description

【発明の詳細な説明】 ビット・マッピングの装置および方法 キーワード、アドレス、識別子などのnビット幅ワードの部分集合からkビッ ト幅ワード(k<n)の集合への写像を仮定すれば、本発明は、所与のnビット ・ワードに対応するkビット・ワードを迅速に探索する方法および装置に関する 。さらに詳細には、本発明は、特に高速並列処理や遠隔通信などデジタル・デー タの高速転送を必要とするアプリケーションで使用するためのnビット−kビッ ト変換装置またはマッピング装置の作成、使用および維持に関する。さらに詳細 には、本発明は、デジタル・データが探索キーによって指定された順序でその中 に記憶されるランダム・アクセス・メモリを使用するn−kビット・マッピング の装置および方法に関する。 [背景技術] 計算および通信では、例えば命令、メモリ位置、ノードまたはホストのアドレ スを表わすnビットを有する2n個の可能なワードのうち、かなり小さい部分集 合だけが実際に特定の場所または時間においてサポートまたは使用される状況に 遭遇することが多い。本発明を説明するために、ワードのこの小さい数を2kに よって示す。kはnより小さい整数である。 不要な支出および資源の未使用を回避するために、局所的または一時的なアプリ ケーションで使用されるnビット・ワードをkビット・ワードへ変換することに よってこの状況を解決することができる。関連技術分野に関連する用語では、こ の変換を「ルックアップ」機能または「マッピング」機能と呼ぶ。以下に示すA TM型スイッチング・システム内でのヘッダ変換についての説明は、この一般概 念の例となるであろう。 現在、ATMスイッチング技法はすべての大手通信装置メーカが開発中である 。ATMは、非同期転送モードの頭字語である。このスイッチング技術では、顧 客の構内から来るデジタル・データ、例えば家やオフィスから、ローカル・エリ ア・ネットワーク(LAN)から、または他のスイッチ、ルータまたはゲートウ ェイからの接続から来るデジタルデータを交換することができる。ATMで転送 されたデータは、セルと呼ばれる標準サイズのパケットに分割される。各セルは 、受取人と受信側のノードまたはユーザに関する情報を含むヘッダを具備する必 要がある。現在有効な規格によれば、ATMセルの受信者を識別するビット列は 、28ビット幅であり、仮想パス識別子(VPI)フィールドと仮想チャネル識 別子(VCI)フィールドに分割される。この可能な228個のアドレスのうち最 新技術のATM交換機は一度に約10000個のアドレスをサポートする。kは 13または14の値をとると仮定する。したがって、このスイッチでは、2k個 の入り VPI/VCIを新しいVPI/VCIに変換し、次いで、例えばそれぞれのデ ータ・パケットをその最終宛先アドレスへ「ホップ」させることができる。 このヘッダ変換は、着信VPI/VCIを識別し、それと対になるVPI/V CIに変換するルックアップ・テーブルを使って実施される。サポートされるV PI/VCIの数(2k)を可能なVPI/VCIの数(2n、n=28)と比較 すると、nビット・ワードを対にする簡単なルックアップ・テーブルは、圧倒的 な数のエントリに対応物がないので効果のないことがすぐに分かる。 この問題は、交換機によってサポートされるnビット・アドレスをkビット・ ワードに(中間)変換し、第2のルックアップ・ステップにおいて2k個のエン トリのみを有するテーブル内でnビット・ワードへ(最終)送変換することによ って解決される。この第2のルックアップ・ステップは容易に実施できるので、 従来技術では、サポートされるnビット・ワードをkビット・ワードにマッピン グまたは変換する問題に焦点を絞っている。 n−kビット変換では一般に内容アドレス可能メモリ(CAM)を使用する。 この技法の例は、nビットVPI/VCIを着信ATMセルのヘッダから抽出し 、CAM内に入れるヨーロッパ特許明細書EP−A−0500238号に記載さ れている。CAMのkビット出力ワードを使用して、発信ATMセルに付与すべ き新しいVPI/VCIを保持する従来 のランダム・アクセス・メモリ(RAM)をアドレス指定する。高性能インター ネット・ルータ用の類似の方法がIBMのTechnical Disclosure Bulletin,Vol .36,No.02、1993年2月、pp.151−153に提案されている。本明細 書に記載のインターネット・プロトコル(PI)ネットワークでは、そのノード 用に32ビット・アドレスを使用するが、根本的な問題は変わらない。 CAMの広くは、原理的に実施が容易であるが、そのコストによって普及が妨 げられている。CAMは、同時nビット幅比較動作用に特別に設計する必要があ り、その結果ランダム・アクセス・メモリと比較してビット当たりのトランジス タの数が著しく多くなる。このため、高価なCAMの代わりにそれほど高価でな いRAMを使用するいくつかの試みが企てられた。 本発明は広義にはCAMの代わりにRAMを使用する新しい方法と考えられる ので、そのような置換についての従来の提案を以下に簡単に要約する。 ヨーロッパ特許明細書EP−A−0459703号には、RAMアレイおよび カウンタを含む内容アドレス可能メモリが記載されている。このカウンタは、デ コーダを使用してメモリ・アレイのすべてのエントリを循環する。メモリの出力 は連続的に入力信号値と比較される。比較器は、一致が生じたか否かを示す信号 を発生する。入力信号値と現在RAMから選択された値が一致した場合、適切な カウンタ値がスタッ ク・バッファに加えられる。このスタック・バッファは、一致したRAMのエン トリに対応するカウンタの値を記憶するために使用する。この説明によれば、ス タックは待ち行列として編成することもでき、また、単一の値を記憶する単一レ ジスタでもよい。入力値を変換する方法は記載されていない。さらに、ヨーロッ パ特許明細書EP−A−0459703号では、RAMに記憶されるエントリの 特定の配列について示唆されていない。 ハイブリッドCAM/RAM回路はヨーロッパ特許明細書EP−A−0228 917号から周知である。被比較数を搬送する信号バスを、CAMセクションに 加えられる第1の部分と、比較器に記憶される第2の部分とに分割する。比較が 順調に行われた場合、CAMセクションは、一致信号と、RAMセクション内の エントリを指すポインタとを生成する。このエントリを被比較数の第2の部分と 比較する。RAMセクション内のエントリをCAMセクションによって発生され たポインタに従って記憶する。エントリの具体的な順序については記載されてい ない。 探索キーに従って分類リスト内のレコードを維持することが可能なメモリ構造 が、PCTのもとで発表された国際出願WO90/04849号に記載されてい る。メモリ構造の1つの具体的な用途は、内容アドレス可能メモリのコアとして 使用することである。本質的に、レコードの定義された順序を複数の隣接するメ モリ位置に保持する、高速挿入動作およ び高速削除動作が記載されている。エントリの分類リストは、適切な探索アルゴ リズムによって探索できる。探索アルゴリズムの例として、二分探索が記載され ている。 上記の従来技術に鑑みて、本発明の目的は、内容アドレス可能メモリを使用し ない高速nビット−kビット変換装置またはマッピング装置を提供することであ る。広範囲のアプリケーションが可能なようにkビット・ワードの選択に関する 制約はない。本発明の具体的目的は、特にVCI/VPI変換用の、100Mb psを超えるデータ・スループットを有するデータ交換機用の高速nビット−k ビット変換を可能にすることである。 [発明の開示] 本発明の基本的な特徴には、本明細書ではそれそれ探索RAMおよびルックア ップRAMと呼ぶ2つのランダム・アクセス・メモリ(RAM)が含まれる。探 索RAMへのエントリはnビット幅であり、一方、ルックアップRAMに記憶さ れるデータはそのエントリのkビット変換を表す。着信nビット・ワードは探索 RAM内のエントリと比較され、一致した場合、対応するkビット変換がルック アップRAMから読み出される。 この目的で、探索RAM内のnビット・エントリも、ルックアップRAM内の そのそれぞれのkビット変換も、同じアドレスによって直接アドレス可能である 。「直接アドレス可 能」という用語は、両方のRAMのアドレス間の任意の固定した関係を含むこと を意味する。すなわち、探索RAMに記憶されたnビット・ワードのアドレスが 見つかると、対応するkビット変換のアドレスが直ちに得られ、あるいは迅速か つ簡単に計算することができる。探索RAMの一致するエントリのアドレスをそ のエントリのkビット変換として単に使用するのは、最も迅速な変換方法である が、本発明ではフレキシビリティを大きくするためにこの方法を公表しない。探 索RAM内の一致するnビット・エントリの確立されたアドレスを、ルックアッ プRAMに記憶された実際のkビット変換を指す中間ポインタとして使用すると 、このkビット変換が、探索プロセスによって課せられる制約なしに選択できる 。 この好ましい探索プロセスはそれ自体二分探索と呼ばれるが、エントリ数が少 ない場合は他の探索プロセスも実施可能である。二分探索は、特定のエントリに ついて、そのエントリがその中にあることが分かっているテーブルの1/2を連 続的に見ることによって、順序付き稠密テーブル(すなわち、テーブルのあらゆ るセルがエントリを含む)を迅速に探索する、確立された方法である。 本発明の範囲内で、探索RAMのエントリを二分探索の要件に従って配列させ る。本発明の基本的実施形態では、探索RAMのエントリを昇順(または降順) に記憶する。本発明の他の実施形態では、並列比較に適合するように、または下 記で説明するようにルックアヘッド/パイプライン変形が可 能なように、この順序を変更する。 探索動作は、探索エンジンまたは探索マシンによって制御される。「マシン」 または「エンジン」という用語は、当技術分野においてホストまたは専用マイク ロプロセッサ上で実行されるソフトウェアかまたは特注ハードウェアである装置 を記述するのに普通に使用されることに留意されたい。しかしながら、高速スイ ッチング技術では、ハードウェアとして有限状態マシンの形での実施のみが実施 可能である。 探索エンジンは、着信nビット・ワードと一致する探索RAM内のエントリの アドレスおよびルックアップRAMに記憶されたそれぞれのkビット変換のアド レスを決定する。この目的で、探索エンジンでは二分探索機構を使用する。アド レス・レジスタの内容は、比較動作の結果に従って変更される。新しいアドレス は、前の探索ステップの後に残る探索可能なエントリのテーブルの中央を指示す る。 本発明の基本的変形例では、探索RAMの中央のエントリを入力値と比較する 。この比較の結果(およびエントリのテーブルが昇順で記憶されているか降順で 記憶されているか)に応じて、探索RAMアドレス空間の上側半分または下側半 分の中央をアドレス指定する。このプロセスは、探索された値に迅速に集束し、 あるいは一致するエントリが探索RAM内に記憶されていないことを示す。 本発明の他の実施形態では、番号iの比較を並列で行い、二分探索が大幅に加 速される。この実施形態では、1つのi ×nビット幅探索RAMを使用するか、またはデータ幅のより小さい適切な数の 探索RAMを使用する必要がある。さらに、探索エンジンは、並列比較の結果を 識別し、それに応じてアドレスを修正する手段を有する。 本発明の他の実施形態では、パイプライン/ルックアヘッド機構を使用する。 すなわち、探索RAMをアドレス指定するステップを、アドレス指定されたエン トリを比較するステップから分離し、両方のステップを同じ命令サイクル内で実 施する。この実施形態の実施速度は、もはや両方のステップを実施する時間に左 右されず、遅い方のステップに左右される。 上述のように、2つの条件に注意する必要がある。第一に、探索RAMのエン トリを、二分探索機構によって規定される順序に保つ必要がある。第二に、ルッ クアップRAMのエントリを、探索RAMの対応するエントリのアドレスによっ て直接アドレス可能にしておく必要がある。したがって、探索RAMのすべての 更新にルックアップRAMの対応する更新が伴う。 探索プロセスのためのRAMの操作容易性を維持するために、更新自体、すな わち両方のRAMへのエントリの挿入および削除を「リップリング」モードで行 うことが好ましい。二分探索では隣接するエントリが等しい場合でも正しい結果 が得られることを利用して、更新プロセスを段階的に行う。 リップリング・モードでは、更新プロセスを段階的に行う。 エントリを挿入する場合、テーブルの一番上のエントリをすぐ下の位置へ複写す る。次いで、すぐ下のエントリを一番上のエントリの元の位置へ複写し、新しい エントリを挿入すべき位置に達するまでこれを繰り返す。次いで、そのエントリ をそのアドレスの位置に複写する。このプロセスでは、上述の探索プロセス間で 使用できる時間間隔を使用する。 エントリを削除する場合、基本的に挿入プロセスの逆転を行う。削除すべきエ ントリをすぐ下の分類位置のエントリによって上書きし、テーブル全体が再配列 されるまでこれを繰り返す。このプロセスも、探索プロセス間で使用できる時間 間隔で実行できる。更新頻度は通常探索プロセスの頻度よりも数桁小さいので、 挿入も削除もプログラム式マイクロプロセッサによってまたはハードウエアによ って容易に実施できる。「リップリング」プロセスを通常探索プロセスにインタ ーリーグすることができない場合、一方が更新され、他方が動作する2対の探索 /ルックアップRAMを使用することができる。RAMの両方の対の間のトグル は、適切に制御されたマルチプレクシング・デバイスによって容易に行える。 本発明の特徴であると考えられる上記その他の新規の特徴は、添付の請求の範 囲に示す。しかしながら、本発明自体、ならびに好ましい使用方法、および本発 明の他の目的および利点は、添付の図面を参照しながら例示的実施形態について の以下の詳しい説明を読めば最もよく理解できよう。 以下の図面を参照しながら本発明について詳細に説明する。 [図面の簡単な説明] 第1図は、1つの比較器を含む本発明の基本構成要素を示すブロック図である 。 第2図は、並列比較が可能な本発明の実施形態のブロック図である。 第3図は、パイプライン/ルックアヘッド機構を使用する本発明の実施形態の ブロック図である。 第4図は、可能な変換が少数の場合に適した本発明の基本構成要素を示すブロ ック図である。 [発明の好ましい実施例] 第1の例は、ATMスイッチ環境(図示せず)内で実施されるVPI/VCI 変換の重要な特徴を示す。ATMセルのヘッダから、28ビットVPI/VCI デジタル・データ・シーケンスを抽出し、次いで第1図を参照して、それを信号 バス1を介して28ビット比較器2に引加する。さらに第1図を参照すると、2 つのランダム・アクセス・メモリが示されている。そのうちの探索RAM3と呼 ばれる第1のランダム・アクセス・メモリは16384×28ビット・アレイと して編成されている。その出力データ線は28ビット比較器2に接続されている 。探索RAM3はスイッチによって一度にサポートされるすべてのVPI/VC Iを含む。 ルッタアップRAMと呼ばれる第2のランダム・アクセス・メモリ4は163 84×14ビット・アレイとして編成さ れている。その14ビット・エントリは例えば入力VPI/VCIがそこから抽 出したATMセルに付与すべき新しい28ビットVPI/VCIを含む他のメモ リ・アレイを指すポインタを表す。 両方のRAM3、4のアドレス・バス5は14ビット・レジスタ6に接続され ている。このアドレス・レジスタのビットは探索エンジン7によって設定される 。 探索エンジンの動作について説明する前に、探索RAM3に記憶されるエント リまたはレコードは単調な順序で並べられていることに留意されたい。本明細書 では単調を数学的な意味で定義する。すなわち、各エントリは隣接するメモリ・ アドレスにあるその先行アドレスよりも大きいかそれに等しい。本質的に、探索 RAMは、エントリがその数値に従って並べられたアレイを含む。探索RAMが 上述のように配列され、ルックアップRAM4が探索RAMのそれぞれのエント リと同じアドレスに記憶されている場合、探索エンジン7は、以下のサイクルに よって記述される動作を実施する。本明細書では、レジスタ6の内容をADDR REGと呼び、数の2進表現にはその前に「B」を付ける。 サイクル0 B「1」にセットされた最上位ビットを除いて、レジスタ6内のADDR R EGの全ての値を0にセットする。ADDR REGの値は探索RAM3へ伝播 し、探索RAMの出 力が線1によって供給されるnビット・ワードと比較される。 サイクル1 ADDR REGの新しい値を次のように決定する。サイクル0の比較の結果 が、nビット入力ワードが探索RAM出力よりも小さかった場合、ADDR R EGのビット0(最上位ビット)がB「0」にリセットされる。比較と無関係に 、kビット幅レジスタのビット1はB「1」にセットされる。 サイクルi(0<i<k−1の場合) nビット入力ワードがサイクルi−1の探索RAM出力よりも小さい場合、ビ ットi−1はB「0」にリセットされ、ADDR REGのビットiは常にB「 1」にセットされる。ADDR REGの他のビットは不変である。 サイクルk−1 nビット入力ワードがサイクルk−2の探索RAM内容ルックアップよりも小 さい場合、ADDR REGのビットk−1がB「0」にリセットされる。 サイクルk nビット入力ワードがサイクルk−1の探索RAM内容ルックアップに等しい 場合、出力信号線8がB「1」(VALID)にセットされ、そうでない場合は B「0」にリセット される。 この動作は、入力nビット・ワードのkビット変換を表すルックアップRAM 4の出力9によって完了する。n−kビット・ルックアップを実行するのに必要 なサイクルの数は、せいぜいK+1である。探索RAM3に記憶されたテーブル 内にnビット・ワードが存在しない場合、信号線8は0のままとなる。 次に、第2図を参照すると、並列になった3つの比較器221、222、22 3で動作する本発明の例が示されている。探索RAM23は、8つの行と3つの 列を有するマトリクスとして編成されている。この例のエントリの数は、その基 本原理が容易に理解できるように、15個に制限されている。それぞれ括弧内に 序数を付けたそれら15個のエントリが、提示の方式に従って探索RAM23内 に記憶される。さらに、理解しやすいように行の2進アドレスが与えられている 。エントリは、テーブル全体の中央エントリ(8)の同時比較だけでなく、レジ スタ26を介して第1のアドレス(本発明の例ではB「100」)が印加された ときに、テーブルの上半分と下半分の中央エントリ(12)(4)の同時比較も 可能なように配列されている。他のエントリも、後続の探索ステップ中に印加さ れるアドレスについて同様に配列されている。 探索エンジン27は、アドレス・レジスタ261をセットする他に、一致が生 じた行に従って最下位ビット(LSB) レジスタ262から2つのビットを付加して、ルックアップRAM24に印加さ れたkビット・アドレス25を完成する。前と同様に、探索エンジン27は、ル ックアップRAMの出力29が有効な変換を表わすことを示すために信号線28 上に「有効」フラグを提供する。 以下に、探索エンジン27によって実行される命令を詳細に示す。 サイクル0 初期ADDR REGをB「100」にセットする。線28を0にセットする 。 サイクル1 次のようにRAMからの3つの出力を並列にnビット入力ワードと比較する。 バス21のnビット入力ワードをiv、(1)の探索RAM23の内容をC1 などとする。 (iv=C4)または(iv=C8)または(iv=C12)の場合、fou ndへジャンプする。 (iv<C4)の場合、ADDR REGをB「001」にセットする。 (iv<C8)かつ(iv>C4)の場合、ADDR REGをB「011」 にセットする。 (iv<C12)かつ(iv>C8)の場合、ADDR REGをB「101」にセットする。 (iv>C12)の場合、ADDR REGをB「111」にセットする。 サイクル2(サイクル1で(iv>C12)と仮定する) (iv=C13)または(iv=C14)または(iv=C15)の場合、f oundへジャンプする。 そうでなければexitへジャンプする。 found 一致 =真、 ルックアップRAM24のアドレス(LUR ADDR)は、 LUR ADDR=ADDR REGに 右側位置での一致の場合は、B「00」 中央位置での一致の場合は、B「01」 左側位置での一致の場合は、B「10」 を付加したものとなる。 exit 一致を示すために信号線28を1にセットする。 LUR ADDRを出力する。 以下に、アドレス・レジスタADDR REGをpビット の任意の長さでカバーするように、探索エンジンの上記命令サイクルを変更する 。この場合、探索RAMは3つの列それぞれに2P個のエントリを有する。探索 RAMの右側、中央および左側の列の出力をそれぞれCR、CMおよびCLで示 す。ADDR REGのビット位置をp−1、p−2、...1、0で示す。前 と同様に、2進数に接頭辞「B」を付ける。 サイクル0 アドレス・レジスタADDR REG(p−1、p−2、...1、0)をB 「10000...00」に初期設定する。 サイクル1 (iv=CR)または(iv=CM)または(iv=CL)の場合、foun dへジャンプする。 一致が見つからなかった場合、ADDR REGの新しい値を次のように決定 する。 q=p−2と置く (iv<CR)の場合、ADDR REG(q+1、q)=B「00」 (iv<CM)かつ(iv>CR)の場合、ADDR REG(q+1、q) =B「01」 (iv<CL)かつ(iv>CM)の場合、ADDR REG(q+1、q) =B「10」 (iv>CL)の場合、ADDR REG(q+1、q) =B「11」 ADDR REG(q−1)=B「1」にセットする ADDR REGの他のすべてのビット=(不変) サイクルi (iv=CR)または(iv=CM)または(iv=CL)の場合、foun dへジャンプする。 一致が見つからなかった場合、ADDR REGの新しい値を次のように決定 する。 q=p−2*iと置く (iv<CR)の場合、ADDR REG(q+1、q)=B「00」 (iv<CM)かつ(iv>CR)の場合、ADDR REG(q+1、q) =B「01」 (iv<CL)かつ(iv>CM)の場合、ADDR REG(q+1、q) =B「10」 (iv>CL)の場合、ADDR REG(q+1、q)=B「11」 ADDR REG(q−1)=B「1」にセットする ADDR REGの他のすべてのビット=(不変) サイクルk 探索RAMが深さ2Pエントリである場合、最後のサイクルはサイクル番号を 有する(pが偶数であると仮定する):最 後のサイクル番号=p/2、 (iv=CR)または(iv=CM)または(iv=CL)の場合、 foundへジャンプする。 そうでなければexitへジャンプする found 一致 =真、信号線28を1にセットする。 ルックアップRAMのアドレス(LUR ADDR)は、LUR ADDR= ADDR REGに、 右側位置での一致の場合は、B「00」 中央位置での一致の場合は、B「01」 左側位置での一致の場合は、B「10」 を付加したものとなる。 exit LUR ADDRを出力する。 上記の概念は所望の任意の幅に拡張できる。並列/直列2進探索の場合、並列 に使用される比較器の数は2m−1個となる。mは整数、すなわち1、3、7、 15または31などである。m=1およびm=2の場合の探索命令を示した。当 業者なら2よりも大きい値についての命令を容易に導出できよう。 並列比較による探索時間の短縮は、以下の式に従って計算できる。 search time(m)=(search time(m=1)/m) の次に大きい整数 m=2(3つのしきい値)の場合、探索時間は1/2に短縮される。必要なR AMの量は、三重比較の場合、単一比較の場合と比較して50%だけ増加する。 本発明の他の例では、パイプライン/ルックアヘッド機構の実施態様を示す。 前の例の場合と同様に、エントリ15個の簡略化したテーブルを使用する。また 、探索RAM33の行の2進アドレスをそれぞれ各行に示す(第3図参照)。 パイプライン効果を達成するため、テーブルの中心のエントリを別個のレジス タ331内に記憶する。このエントリは、直ちに、すなわち第1の命令サイクル 中に、比較器320(C0)において入力ワードと比較される。次の各サイクル では、探索RAMアドレス指定されたエントリとの比較を行い、同時に次の比較 のためのアドレスを探索RAMに印加することができる。 さらに第3図を参照すると、探索RAM33は、エントリの2つの行を含む。 行(CR、CL)の出力は、2つの比較器321、322に接続される。3つの 比較器320、321、322はすべて、nビット幅データ・バス31から入力 nビット・ワードを受け取る。他の構成要素は、前の例ですでに示されたものと 同じである。また、値の表記法は、それが適切な場合、前の例と一致させてある 。ただし、探索エンジン37のサイクルは変更されている。入力データを探索R AMエントリ(3)に等しくすることによって結果が導出される。 サイクル0 RAMをADDR REG=B「100」にアドレス指定し、入力ワードを分 類テーブルの中央のエントリと比較する。このエントリを右側に示した別個のレ ジスタ内に記憶する。入力ワードがこのエントリよりも大きい場合、フラグF0 を1にセットし、そうでなければ0にセットする。 (結果:F0=0) サイクル1 RAMをADDR REG=B「F0、10」にアドレス指定する。同時に、 (前のサイクル中に)アドレスB「100」から読み出された2つのRAMエン トリを入力ワードと比較する。フラグF1は、F1=(F0かつ(iv>CL)) または((F0)でなくかつ(iv>CR))によって導出される(結果:F1= (0かつ0)または(1かつ0)=0) サイクル2 探索RAMをADDR REG=B「F0、F1、1」にアドレス指定する。同 時に、前のサイクル中に読み出された2つの探索RAMエントリを入力ワードお よび新しいフラグと比較する。F2を導出する。 (結果:アドレスB「001」はすでに一致エントリ(3)に達している。より 一般的な場合、テーブルが空になるまでこの手順を続ける。) 一致が見つかった場合、exitステップへのジャンプを開始し、信号線38 を1にセットする。 exit ルックアップRAM34の最後のアドレス、LUR ADDRは、一致エント リに、入力ワードがCLと一致した場合はB「1」、また入力ワードがCRと一 致した場合はB「0」を付加して得られるエントリを指すアドレスに等しくなる 。 より大きいサイズの探索テーブルへのこの例の拡張は容易に導出できる。 しかしながら、より小さいサイズの探索テーブルも、第4図に示す本発明の他 の実施形態に従って実施できる。この実施形態では、探索RAM43のnビット ・エントリが任意の方法で記憶できる。それぞれのkビット変換が、ルックアッ プRAM44内の同じアドレスに記憶される。探索RAMも ルックアップRAMもn+kビット幅RAM40の一部である。本質的に、探索 エンジン47はデコーダ472に接続されたカウンタ471から構成される。こ のカウンタを使用して0から2k−1までの値、すなわちすべてのエントリを走 査する。組合せ型の探索/ルックアップRAM40の適切なアドレスは、デコー ダ472によって与えられる。比較器42の信号線48がデータ・バス41上の 入力ワードと探索RAM43の出力の一致を示した場合、ルックアップRAMの 出力は入力ワードの対応するkビット変換を表す。
【手続補正書】 【提出日】1996年8月23日 【補正内容】 請求の範囲 1.複数のnビット・シーケンスを対応するkビット・シーケンス(k<n)に 変換する装置において、 前記nビット・シーケンスを動作中に2進探索キーによって決定された第1の アドレスに所定の順序で記憶する第1の記憶手段(3;23;33、331;4 3)と、 前記kビット・シーケンスを、前記第1のアドレスから直接導出できる、好ま しくは前記第1のアドレスに等しい第2のアドレスに所定の順序で記憶する第2 の記憶手段(4;24;34;44)と、 前記第1の記憶手段(3;23;33、331;43)および前記第2の記憶 手段(4;24;34;44)をアドレス指定するアドレス・レジスタ手段(6 ;261、262;361、362)と、 前記第1の記憶手段(3;23;33、331;43)の出力をnビット入力 シーケンスと比較する比較手段(2;221−223;320−322;42) と、 前記比較手段(2;221−223;320−322;42)の出力における 比較の結果に従って前記アドレス・レジスタ手段(6;261、262;361 、362)を増分または減分することによって2進探索を実行する手段(7;2 7;37;47)とを含む装置。 2.第1の記憶手段または第2の記憶手段(3、4;23、 24;33、34;43、44)がランダム・アクセス・メモリである請求項1 に記載の装置。 3.第1の記憶手段および第2の記憶手段(43、44)が単一のメモリ・ユニ ット(40)の一部である請求項1に記載の装置。 4.前記第1の記憶手段内に記憶されたいくつかのnビット・シーケンスとの入 力nビット・シーケンスの並列比較が可能なように、第1の記憶手段(23;3 3;331)と比較手段(221−223;320−322)が分割されている 請求項1に記載の装置。 5.アドレス・レジスタ手段(6;261、262;361、362)が、第1 の記憶手段および第2の記憶手段(23、24;33、34)をアドレス指定す る第1の部分(261;361)と、前記第2の記憶手段(24、34)のみを アドレス指定する第2の部分(262;362)とを含むことを特徴とする請求 項4に記載の装置。 6.さらに、同じクロック・サイクル中に比較手段(321、322)を使用し て、第1の記憶手段(33)にアクセスするパイプライン手段(331、320 )を含む請求項1に記載の装置。 7.パイプライン手段(331、320)が、動作中に少なくとも1つのnビッ ト・シーケンスを記憶するレジスタ手段(331)と、前記レジスタ手段(33 1)に接続され、前記1つのnビット・シーケンスを入力nビット・シーケンス と直接比較する比較手段(320)とを含む請求項6に記載の装置。 8.さらに、新しいエントリ用に使用されるターゲット・アドレスまですべての エントリを隣接するアドレスに連続的に複写し、前記ターゲット・アドレスのエ ントリを新しいエントリで置き換えることによって、新しいエントリを第1の記 憶手段(3;23;33、331;43)および第2の記憶手段(4;24;3 4、44)に記憶する挿入手段と、前記古いエントリを隣接するエントリのコピ ーにより前記記憶手段(3;23;33、331;43、4;24;34;44 )内の最後のエントリに達するまで連続的に上書きすることによって、前記記憶 手段(3;23;33、331;43、4;24;34;44)の古いエントリ を消去する削除手段とを含む請求項1ないし7のいずれか一項に記載の装置。 9.上記の請求の範囲のいずれか一項に記載の装置を含む、特に非同期転送モー ド(ATM)伝送用のデータ・スイッチ。 10.nビット・シーケンスを対応するkビット・シーケンス(k<n)に変換 する方法において、 前記複数のnビット・シーケンスを第1の記憶手段(3;23;33、331 ;43)内の2進探索キーによって決定された第1のアドレスに所定の順序で記 憶するステップと、 対応するkビット・シーケンスを第2の記憶手段(4;24;34;44)内 の前記第1のアドレスから直接導出できる、好ましくは前記第1のアドレスに等 しい第2のアドレス に所定の順序で記憶するステップと、 入力nビット・シーケンスとの一致を見つけるために前記第1の記憶手段(3 ;23;33、331;43)内で2進探索を実行するステップとを含み、前記 2進探索が、前記nビットと前記第1の記憶手段との比較の結果に従ってアドレ ス・レジスタ手段を増分または減分し、前記入力nビット・シーケンスに対応す るkビット変換シーケンスを出力するために、前記第2の記憶手段(4;24; 34;44)をアドレス指定する前記一致のアドレスを印加するステップを含む 方法。 11.探索中、第1の記憶手段(23;33)内に記憶されたi個のnビット・ シーケンスをアドレス指定し、入力nビット・シーケンスと並列に比較し、 2進数をiの各値に関係付け、 前記2進数を、第2の記憶手段(24;34)をアドレス指定する一致のアド レスと組み合わせる請求項10に記載の方法。 12.新しいnビット・シーケンスをアドレス指定するステップと、同じクロッ ク・サイクル中に前にアドレス指定されたnビット・シーケンスを入力シーケン スと比較するステップとを実行することによってパイプラインされた請求項11 に記載の方法。 13.新しいエントリ用に使用されるターゲット・アドレスまですべてのエント リを隣接するアドレスに連続的に複写し、 前記ターゲット・アドレスにあるエントリを新しいエントリで置き換えることに よって、第1の記憶手段(3;23;33、331;43)および第2の記憶手 段(4;24;34、44)内の新しいエントリを挿入し、 前記古いエントリを隣接するエントリのコピーにより前記記憶手段(3;23 ;33、331;43、4;24;34;44)内の最後のエントリに達するま で連続的に上書きすることによって、前記記憶手段(3;23;33、331; 43、4;24;34、44)の古いエントリを消去する請求項10ないし12 のいずれか一項に記載の方法。

Claims (1)

  1. 【特許請求の範囲】 1.複数のnビット・シーケンスを対応するkビット・シーケンス(k<n)に 変換する装置において、 −前記nビット・シーケンスを動作中に第1のアドレスに記憶する第1の記憶手 段(3;23;33、331;43)と、 −前記kビット・シーケンスを、前記第1のアドレスから直接導出できる、好ま しくは前記第1のアドレスに等しい第2のアドレスに記憶する第2の記憶手段( 4;24;34;44)と、 −前記第1のアドレス手段および前記第2のアドレス手段をアドレス指定するア ドレス・レジスタ手段(6;261、262;361、362)と、 −前記第1の記憶手段の出力をnビット入力シーケンスと比較する比較手段(2 ;221−223;320−322;42)と、 −前記比較手段の出力に従って前記アドレス・レジスタ手段のビットをセットす る手段(7;27;37;47)とを含む装置。 2.第1のアドレスを2進探索キーによって決定する請求項1に記載の装置。 3.第1の記憶手段または第2の記憶手段(3、4;23、24;33、34; 43、44)がランダム・アクセス・メモリである請求項1に記載の装置。 4.第1の記憶手段および第2の記憶手段(43、44)が単一のメモリ・ユニ ット(40)の一部である請求項1に記載の装置。 5.前記第1の記憶手段内に記憶されたいくつかのnビット・シーケンスと入力 nビット・シーケンスの並列比較が可能なように、第1の記憶手段(23;33 ;331)と比較手段(221−223;320−322)が分割されている請 求項1に記載の装置。 6.アドレス・レジスタ手段が、第1の記憶手段および第2の記憶手段(23、 24;33、34)をアドレス指定する第1の部分(261;361)と、前記 第2の記憶手段のみをアドレス指定する第2の部分(262;362)とを含む ことを特徴とする請求項5に記載の装置。 7.さらに、同じクロック・サイクル中に比較手段(321、322)を使用し て、第1の記憶手段(33)にアクセスするパイプライン手段(331、320 )を含む請求項1に記載の装置。 8.パイプライン手段が、動作中に少なくとも1つのnビット・シーケンスを記 憶するレジスタ手段(331)と、前記レジスタ手段に接続され、前記1つのn ビット・シーケンスを入力nビット・シーケンスと直接比較する比較手段(32 0)とを含む請求項7に記載の装置。 9.さらに、新しいエントリ用に使用されるターゲット・アドレスまですべての エントリを隣接するアドレスに連続的に 複写し、ターゲット・アドレスのエントリを新しいエントリで置き換えることに よって、新しいエントリを第1の記憶手段および第2の記憶手段に記憶する挿入 手段と、前記古いエントリを隣接するエントリのコピーにより前記記憶手段内の 最後のエントリに達するまで連続的に上書きすることによって、前記記憶手段の 古いエントリを消去する削除手段とを含む請求項1に記載の装置。 10.上記の請求の範囲のいずれか一項に記載の装置を含む、特に非同期転送モ ードATM伝送用のデータ・スイッチ。 11.nビット・シーケンスを対応するkビット・シーケンス(k<n)に変換 する方法において、 −前記複数のnビット・シーケンスを第1の記憶手段(3;23;33、331 ;43)内の第1のアドレスに記憶するステップと、 −対応するkビット・シーケンスを第2の記憶手段(4;24;34;44)内 の前記第1のアドレスから直接導出できる、好ましくは前記第1のアドレスに等 しい第2のアドレスに記憶するステップと、 −入力nビット・シーケンスとの一致を見つけるために前記第1の記憶手段内で 探索を実行するステップと、 −前記入力nビット・シーケンスに対応するkビット変換を出力するために、前 記第2の記憶手段をアドレス指定するアドレスを前記一致に適用するステップと を含む方法。 12.第1のアドレスを2進探索キーによって決定し、2進 探索が第1の記憶手段内で行われる請求項11に記載の方法。 13.探索中、 −第1の記憶手段(23;33)内に記憶されたi個のnビット・シーケンスを アドレス指定し、入力nビット・シーケンスと並列に比較し、 −2進数をiの各値に関係付け、 −前記2進数を、第2の記憶手段(24;34)をアドレス指定する一致のアド レスと組み合わせる請求項11に記載の方法。 14.新しいnビット・シーケンスをアドレス指定するステップと、同じクロッ ク・サイクル中に前にアドレス指定されたnビット・シーケンスを入力シーケン スと比較するステップとを実行することによってパイプラインされた請求項13 に記載の方法。 15.−新しいエントリ用に使用されるターゲット・アドレスまですべてのエン トリを隣接するアドレスに連続的に複写し、ターゲット・アドレスにあるエント リを新しいエントリで置き換えることによって、第1の記憶手段および第2の記 憶手段内の新しいエントリを挿入し、 −前記古いエントリを隣接するエントリのコピーにより前記記憶手段内の最後の エントリに達するまで連続的に上書きすることによって、前記記憶手段の古いエ ントリを消去する請求項11に記載の方法。
JP7522084A 1994-02-25 1994-02-25 ビット・マッピングの装置および方法 Pending JPH09503609A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP1994/000538 WO1995023380A1 (en) 1994-02-25 1994-02-25 Bit mapping apparatus and method

Publications (1)

Publication Number Publication Date
JPH09503609A true JPH09503609A (ja) 1997-04-08

Family

ID=8165829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7522084A Pending JPH09503609A (ja) 1994-02-25 1994-02-25 ビット・マッピングの装置および方法

Country Status (5)

Country Link
US (1) US6023466A (ja)
EP (1) EP0746823B1 (ja)
JP (1) JPH09503609A (ja)
DE (1) DE69424315T2 (ja)
WO (1) WO1995023380A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09503609A (ja) * 1994-02-25 1997-04-08 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン ビット・マッピングの装置および方法
US5884297A (en) * 1996-01-30 1999-03-16 Telefonaktiebolaget L M Ericsson (Publ.) System and method for maintaining a table in content addressable memory using hole algorithms
US5809501A (en) * 1996-01-30 1998-09-15 Telefonaktiebolaget L M Ericsson (Publ) Method and system of database management in an asynchronous transfer mode (ATM) environment
US6161144A (en) 1998-01-23 2000-12-12 Alcatel Internetworking (Pe), Inc. Network switching device with concurrent key lookups
US6549519B1 (en) * 1998-01-23 2003-04-15 Alcatel Internetworking (Pe), Inc. Network switching device with pipelined search engines
US6920146B1 (en) 1998-10-05 2005-07-19 Packet Engines Incorporated Switching device with multistage queuing scheme
US6678269B1 (en) * 1998-10-05 2004-01-13 Alcatel Network switching device with disparate database formats
EP2252019B1 (en) * 1998-12-03 2014-07-09 Rockstar Consortium US LP Providing desired service policies to subscribers accessing internet
US6633563B1 (en) 1999-03-02 2003-10-14 Nortel Networks Limited Assigning cell data to one of several processors provided in a data switch
US6466976B1 (en) 1998-12-03 2002-10-15 Nortel Networks Limited System and method for providing desired service policies to subscribers accessing the internet
US20020039365A1 (en) * 1999-03-17 2002-04-04 Broadcom Corporation Pipelined searches with a cache table
JP3381687B2 (ja) * 1999-11-25 2003-03-04 日本電気株式会社 フロー識別装置、フロー処理装置、フロー識別方法及びフロー処理方法
US6606684B1 (en) * 2000-03-31 2003-08-12 Intel Corporation Multi-tiered memory bank having different data buffer sizes with a programmable bank select
IL136297A0 (en) * 2000-05-22 2001-05-20 Hywire Ltd The implementation of a content addressable memory using a ram-cell structure
EP1189394A3 (de) * 2000-09-19 2004-01-07 Siemens Aktiengesellschaft Verfahren und Vorrichtung für die Reduzierung von Adressen für ATM-bzw. IP-Netze
US7451216B2 (en) * 2001-06-14 2008-11-11 Invision Networks, Inc. Content intelligent network recognition system and method
US6807611B2 (en) 2002-04-05 2004-10-19 International Business Machine Corporation High speed selective mirroring of cached data
US6925464B2 (en) * 2002-06-13 2005-08-02 Intel Corporation Method and system for performing inserts and lookups in memory
KR100468742B1 (ko) * 2002-06-26 2005-01-29 삼성전자주식회사 이진 검색 기법을 이용한 jpeg 허프만 테이블 디코더및 그 방법
US7474653B2 (en) * 2003-12-05 2009-01-06 Hewlett-Packard Development Company, L.P. Decision cache using multi-key lookup
US11600320B2 (en) * 2019-12-17 2023-03-07 Flashsilicon Incorporation Perpectual digital perceptron

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1032675B (it) * 1975-04-16 1979-06-20 C Olivetti Ec Spa Ing Dispositivo per la ricerca di informazioni registrate sun un supporto di registratione ad accesso semicasuale
US5261090A (en) * 1990-06-12 1993-11-09 At&T Bell Laboratories Search arrangement adapted for data range detection
JP3001953B2 (ja) * 1990-10-20 2000-01-24 富士通株式会社 仮想識別子変換装置
GB2253118B (en) * 1991-02-20 1995-04-12 Roke Manor Research Improvements in or relating to asynchronous transfer mode switching system
US5696925A (en) * 1992-02-25 1997-12-09 Hyundai Electronics Industries, Co., Ltd. Memory management unit with address translation function
US5502828A (en) * 1992-12-18 1996-03-26 Advanced Micro Devices, Inc. Reducing memory access in a multi-cache multiprocessing environment with each cache mapped into different areas of main memory to avoid contention
TW265433B (ja) * 1993-07-16 1995-12-11 Philips Electronics Nv
AU1447295A (en) * 1993-12-30 1995-08-01 Connectix Corporation Virtual memory management system and method using data compression
JPH09503609A (ja) * 1994-02-25 1997-04-08 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン ビット・マッピングの装置および方法
US5696930A (en) * 1996-02-09 1997-12-09 Advanced Micro Devices, Inc. CAM accelerated buffer management

Also Published As

Publication number Publication date
WO1995023380A1 (en) 1995-08-31
EP0746823B1 (en) 2000-05-03
US6023466A (en) 2000-02-08
EP0746823A1 (en) 1996-12-11
DE69424315D1 (de) 2000-06-08
DE69424315T2 (de) 2000-11-30

Similar Documents

Publication Publication Date Title
JPH09503609A (ja) ビット・マッピングの装置および方法
US5920886A (en) Accelerated hierarchical address filtering and translation using binary and ternary CAMs
US6956858B2 (en) Network routing table and packet routing method
US6430527B1 (en) Prefix search circuitry and method
US6223172B1 (en) Address routing using address-sensitive mask decimation scheme
US6665297B1 (en) Network routing table
US6522632B1 (en) Apparatus and method for efficient prefix search
JP5265378B2 (ja) 高性能正規表現パターンマッチングのための方法および装置
EP1551141B1 (en) Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware
US7043494B1 (en) Fast, deterministic exact match look-ups in large tables
US7415472B2 (en) Comparison tree data structures of particular use in performing lookup operations
US7334093B2 (en) Block programmable priority encoder in a CAM
EP1156432B1 (en) Apparatus, method, data structure and recording medium for data retrieval by accessing retrieval tables
US20040254909A1 (en) Programming routes and access control lists in comparison tree data structures and their use such as in performing lookup operations
IE20010248A1 (en) Prefix search method and data structure using compressed search tables
EP1016245A1 (en) Method and system for fast routing lookups
JP2000151691A (ja) インタ―ネット網等の高速通信網のノ―ドのル―ティング表構築のためのプレフィックス分析による情報探索用メモリ
US6490279B1 (en) Fast data base research and learning apparatus
US7249149B1 (en) Tree bitmap data structures and their use in performing lookup operations
US8599853B2 (en) System and method for an exact match search using pointer based pipelined multibit trie traversal technique
US6421660B1 (en) Enhanced searching method and apparatus for variable bit chains
Sun et al. An on-chip IP address lookup algorithm
JPH07118719B2 (ja) パターン探索方法及び装置
KR100460188B1 (ko) 인터넷 프로토콜 주소 룩-업 방법
Tang et al. CAM-based label search engine for MPLS over ATM networks