(57)【特許請求の範囲】
【請求項１】
回線より到来するパケットの宛先アドレスに応じたルーチングデータを求めてパケットに付加し、該ルーチングデータに基づいてパケットをスイッチングして所定の回線に送出するルーチング装置において、
ルーチングデータ発生部を備え、要求された宛先アドレスに応じたルーチングデータを発生して要求元に送出する主制御部、
回線より到来するパケットの宛先アドレスを抽出し、該宛先アドレスに応じたルーチングデータを通知するよう主制御部に要求し、主制御部より通知されたルーチングデータをパケットに付加して出力する回線インタフェース部、
所定の回線インタフェース部から入力する前記ルーチングデータ要求を主制御部に送出し、主制御部からのルーチングデータを要求元の回線インタフェース部に送出し、ルーチングデータ付きパケットを該ルーチングデータに基づいてスイッチングして別の回線インタフェース部に送出するスイッチ部、
を備え、前記主制御部は、回線速度に対応させてルーチングデータ発生部を備え、
前記回線インタフェース部は、回線より到来するパケットの宛先アドレスに応じたキーデータに回線識別子を付加して主制御部にルーチングデータを通知するよう要求し、
前記主制御部は、該通知要求により回線識別子の回線速度に応じたルーチングデータ発生部よりルーチングデータを発生して要求元の回線インタフェース部に送出する、
ことを特徴とするルーチング装置。
【請求項２】
回線インタフェース部に任意の回線速度の回線を接続する、
ことを特徴とする請求項１記載のルーチング装置。
【請求項３】
回線より到来するパケットの宛先アドレスに応じたルーチングデータを求めてパケットに付加し、該ルーチングデータに基づいてパケットをスイッチングして所定の回線に送出するルーチング装置において、
ルーチングデータ発生部を備え、要求された宛先アドレスに応じたルーチングデータを発生して要求元に送出する主制御部、
回線より到来するパケットの宛先アドレスを抽出し、該宛先アドレスに応じたルーチングデータを通知するよう主制御部に要求し、主制御部より通知されたルーチングデータをパケットに付加して出力する回線インタフェース部、
所定の回線インタフェース部から入力する前記ルーチングデータ要求を主制御部に送出し、主制御部からのルーチングデータを要求元の回線インタフェース部に送出し、ルーチングデータ付きパケットを該ルーチングデータに基づいてスイッチングして別の回線インタフェース部に送出するスイッチ部、
を備え、前記主制御部のルーチングデータ発生部は、
ルーチングデータを記憶する連想メモリ部、
宛先アドレスをキーデータとするとき、多数の宛先アドレスであるキーデータを記憶するキーデータ記憶部、
前記連想メモリ部とキーデータ記憶部を１つメモリアレイの連続領域で構成し、メモリアレイの１バイトセルの総数をｙ、キーデータ幅をｋバイト、ルーチングデータを含む連想データ幅をｒバイトとするとき、登録可能なキーデータ数および連想データ数であるエントリ数ｅを
ｅ＝ｙ／（ｋ＋ｒ）
により演算し、これらｋ，ｒ，ｅを記憶する記憶部、
第ｉ番目のキーデータが記憶されている前記キーデータ記憶部のセルバイトアドレスをi・k〜i・k+(k-1)とし、該キーデータ記憶部よりキーデータを順次読み出し、前記要求された宛先アドレスであるキーデータが該キーデータ記憶部に存在するか調べ、存在する場合には該キーデータを前記連想メモリ部の連想アドレスjに変換し、該連想アドレスjを前記連想メモリのセルバイトアドレスk・e+j・r〜k・e+j・r+(r-1)に変換するアドレス変換部、
前記連想メモリ部の前記セルバイトアドレスk・e+j・r〜k・e+j・r+(r-1)よりルーチングデータを読出して要求元である回線インタフェース部に送出するルーチングデータ送出部、
を備えたことを特徴とするルーチング装置。
【請求項４】
前記主制御部のルーチングデータ発生部は、更に、
前記要求された宛先アドレスであるキーデータと同一のキーデータ、あるいは、該宛先アドレスであるキーデータの非マスク部分と同一のキーデータがキーデータ記憶部に複数エントリされているとき、そのエントリ数、エントリキーデータを保持する保持部、
これらエントリ数、エントリキーデータを外部のプロセッサに通知する手段、
を備えたことを特徴とする請求項３記載のルーチング装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はInternet, ATM network等におけるルーチング処理に際してＣＡＭ(Content Addressable Memory)を使用するルーチング装置に係わり、特に、回線より到来するパケットの宛先アドレスに応じたルーチングデータをＣＡＭより求めてパケットに付加し、該ルーチングデータに基づいてパケットをスイッチングして所定の回線に送出するルーチング装置に関する。
【０００２】
【従来の技術】
昨今のInternet/ATM networkの爆発的な普及により、ルータ(router)/ATM交換機(ATM switch)の処理速度は高速化の一途をたどっている。また、回線の高集積化によりそのルーチング/スイッチングに必要となるデータ(ルーチングデータ)を検索するためのテーブルも大容量化してきている。
ルーチングデータの検索法はＣＡＭ(Content Addressable Memory)を使用した変換処理技術により達成されている。しかし、ＣＡＭは大容量化に伴い、従来の容量のものでは多数のテーブルが必要になり、通常のLSI内部に実装することが難しくなっている。又、大容量のものは、専用の LSIとして市販されるようになっている。
【０００３】
図１５は従来のルータの概略構成図であり、一般的なルータにおけるＣＡＭを使用した検索方法の概要を説明するものである。１は主制御部（CPU）、２はスイッチ部、３1〜３n,４1〜４mは回線とスイッチ間に設けられた回線カードである。回線におけるデータ伝送はPOS(Packet over SONET,Packet over SDH)を使った伝送が一般的であり、このPOSではSDH,SONETのペイロード部にIPパケットをマッピングして伝送する。図示しない回線終端部はPOS回線よりIPパケットを分離して、回線カード３1〜３nに入力する。各回線カード３1〜３nのパケットプロセッサ３ａはIPパケットの宛先アドレスを抽出し、該宛先アドレスに応じたルーチングデータをＣＡＭ ３ｂより取得し、該ルーチングデータをパケットに付加してスイッチ２に入力する。スイッチ２は各回線カード３1〜３nから入力するルーチングデータ付きパケットを該ルーチングデータに基づいてスイッチングして別の回線カード４1〜４mに入力する。回線カード４1〜４mのパケットプロセッサはルーチングデータを取り除き、しかる後、パケットをSDH,SONETフレームのペイロードにマッピングしてPOS回線に送出する。
【０００４】
図１６はＣＡＭ ３ｂをCAM LSI ３ｂ1と連想メモリ３ｂ2に分離して示す回線カードの構成図、図１７はＣＡＭ検索の流れ図である。CAM LSI ３ｂ1のキーデータ記憶部（図示せず）は多数の宛先アドレスに応じたキーデータを記憶し、又、連想メモリ３ｂ2はルーチングデータを記憶する。IPパケットのIPヘッダは宛先アドレスDA(destination address=IP address)を有しているから、回線カード３1〜３nのパケットプロセッサ３ａはＩＰパケットが入力すると（ステップ１０１）、該入ってきたIPパケットより宛先アドレスDAを抽出し（ステップ１０２）、該宛先アドレスをキーデータ（key data）として、予め変換テーブルを有するＣＡＭ ３ｂに転送する。ＣＡＭ ３ｂのCAM LSI ３ｂ1はこのキーデータに対応するIP addressがキーデータ記憶部に存在するかチェックし、存在すれば、該キーデータを前記連想メモリのアドレスに変換して連想メモリ３ｂ2に送出する（ステップ１０３）。RAM構成の連想メモリ３ｂ2は、入力したアドレスをもとにあらかじめ設定された連想データ、例えば、スイッチングに必要となるハイウェイ番号HW-No.(Highway No.)を出力する。パケットプロセッサ３ａは、IPパケットを出力する直前に該ハイウェイ番号HW_No.をパケットに付与してスイッチ部２に入力し、スイッチはハイウェイ番号HW_No.によりルーチング動作を行なう（ステップ１０４)。
【０００５】
図１８は従来のルータの詳細な構成図であり、図１５〜図１７と同一部分には同一符号を付している。主制御部１，１′は信頼性をあげるために二重化されており、同一の構成を備えている。すなわち、主制御部１，１′は、▲１▼メインプロセッサMPU １ａ,１ａ′、▲２▼メインメモリMM １ｂ,１ｂ′、▲３▼キャッシュメモリ(図示せず）、▲４▼各種I/OやＣＡＭ等のデバイスをメインプロセッサMPUに接続するためのMPU bus変換ブリッジ１ｃ，１ｃ′、▲５▼メインプロセッサが隣接するルータとの間で通信を行う際の出力ポート検索用ＣＡＭ １ｄ，１ｄ′、▲６▼スイッチ２とは別線にて各回線カード３1〜３nへ主制御部が作成したルーチングテーブルを転送するためのイーサネットスイッチングハブ(Ethernet Switching HUB）１ｅ，１ｅ′、▲７▼回線カードからスイッチ経由で到来する自局宛パケットをメインプロセッサ MPUに送出するためのMPU bus変換ブリッジ１ｆ，１ｆ′などを有している。
【０００６】
回線カード３1〜３nはSONET/SDH等の各種回線を収容するもので、同一の構成を備えている。ただし、回線カードが収容する各回線の速度は同一であるが、回線速度は回線カード毎に異なっている。パケットプロセッサ３ａは、(1) POS回線等を介して到来するパケットの宛先アドレスDAを抽出し、該宛先アドレスDAをルーチングデータ検索用のキーデータとしてＣＡＭへ送出したり、(2) パケットにルーチングデータ（ハイウェイ番号HW_No.）を付与してスイッチに送出したり、(3) スイッチングされたパケットよりルーチングデータを削除して回線へ送出する。ＣＡＭ ３ｂはCAM LSIおよび連想メモリを備え、キーデータとして入力される宛先アドレスDAよりルーチングデータ(ハイウェイ番号HW_No.)を求めたり、その逆を実行する。LAN制御部(LANC:Lan controllor)３ｃはメインプロセッサ  MPUとの間で通信を行なってルーチングテーブルを受信する。ローカルのプロセッサMPUはLAN制御部３ｃの制御、回線カード内部の各種設定(Configuration)制御を行う。
スイッチ２は回線カードと主制御部１，１′間でのパケットの交換制御を行なうと共に、各回線カード間でのパケットの交換制御を行なう。
【０００７】
図１９は従来のルータ装置のパケットの流れを示す説明図である。
1)POS回線から入力されたデータパケットは、回線カード３内の入力部分でパケットに分離される。
2) パケットプロセッサ３ａはパケットヘッダ内のIP宛先アドレスDAに基づいてＣＡＭ ３ｂからハイウェイ番号HW-No.、その他必要な情報α(QOS情報、フィルタリング情報など)を検索し、パケット(payload部分)にこれらHW-No.+αを付加してスイッチ２に転送する。
3) スイッチ２はルーチングデータHW-No.+αによりパケットをスイッチングして出側の回線カード４に入力する。回線カード４のパケットプロセッサ４ａはスイッチより入力するパケットからルーチングデータHW_No.+αを取り除く。
4) ついで、パケットプロセッサ４ａは最終的にパケットをSDH,SONETフレームのペイロードにマッピングしてPOS回線に送出する。以上により全てのルーチング処理が完了する。
【０００８】
図２０はCAM LSIの概略内部構造図である。CAM LSI ３ｂ1は、アドレスデコーダ５ａ、メモリアレイ５ｂ、インデックスレジスタ５ｃ、マスクレジスタ５ｄ、レスポンスレジスタ５ｅ、プライオリティエンコーダ５ｆを有している。
アドレスデコーダ５ａはアドレスデータをデコードし、別途入力するキーデータをメモリアレイの所定アドレスに格納し、あるいはメモリアレイよりキーデータを読出して出力する。メモリアレイ５ｂは多数の宛先アドレスに応じたキーデータを格納し、インデックスレジスタ５ｃは検索したいキーデータ(検索キーデータ)、すなわち、POS回線から受信したパケットの宛先アドレスに応じたキーデータを格納する。マスクレジスタ５ｄは検索キーデータのうちマスクするビット位置を指定する("1"でマスク)。レスポンスレジスタ５ｅは、(1) メモリアレイ５ｂに記憶されているキーデータと検索キーデータとのマッチング結果(比較結果)、あるいは、(2) メモリアレイ５ｂに記憶されているキーデータと検索キーデータの非マスク部分とのマッチング結果を格納する。プライオリティエンコーダ５ｆはレスポンスレジスタ５ｅのマッチング結果をもとに連想メモリ３ｂ2のアドレスを生成する。連想メモリ３ｂ2は入力するアドレスより連想データ（ルーチングデータ＋α）を出力する。
【０００９】
尚、図２０ではキーデータを８ビットとして示しているが、説明の都合によるもので実際にはキーデータは３２ビット等である。又、メモリアレイ５が８個のキーデータを記憶する場合を示しているが、メモリアレイは実際には非常に多くのキーデータを記憶する容量を有している。又、ＣＡＭ内部のメモリアレイ５ｂは、ＣＡＭ検索の用途に応じてビット幅が可変設定できるようになっており、メモリアレイの構成を変更するレジスタ（図示せず）を具備するが、連想メモリ  ３ｂ2については、ハードウェア設計時に連想用アドレスと連想データのビット幅が固定される。
【００１０】
【発明が解決しようとする課題】
従来のＣＡＭを用いたルーチング装置（ルータ）では、下記の問題がある。
1) CAM LSIのハイコスト
昨今のInternetの普及により、ＣＡＭのエントリ数が増加の一途をたどっている。CAM LSI一個当りで処理できるエントリ数は、1エントリ当り３６ビット必要とすると、せいぜい６４ｋ個程度である。ここで３６ビットは、IP_v4(IP-version 4)における宛先アドレスとして必要な３２ビットと制御ビットとしての４ビットの合計である。
【００１１】
2) CAM LSIの高い実装面占有率
上記のようにCAM LSI(4×4cm程度)として15個搭載する必要があるとすると、実装面占有率が高くなる。このため、回路カードを二階建て等の複雑な構造にしなければならなくなる。
3) ルーチングテーブルの転送時間
ルーチングテーブルを一元管理する主制御部のメインプロセッサから各回線カードへルーチングテーブルを転送する必要がある。例えば、システム立ち上げの際、各回線カード内に実装しているＣＡＭ へ主制御部のメインプロセッサからルーチングテーブルを転送する必要がある。このため、システム立ち上げに相当の時間がかかり、しかも、障害発生時のリカバリーにも時間がかかる。
【００１２】
4) 連想データのビット幅変更
ＣＡＭは、CAM LSIにRAM構成の連想メモリを外付けする構成になっている。このため、キーデータがIP_v4→IP_v6(4バイト→16バイト)等へ変更になると、ハードウェアの回路構成を変更する必要が発生し、新規回線カードを設計しなおさなければならない。
5) キーデータのマルチプルヒット（Multiple hit）
従来のＣＡＭは統計処理機能がないため、検索キーデータに複数のエントリキーデータがヒットするマルチプルヒット(Multiple hit)時に統計処理を実行できない。このため、主制御部のメインプロセッサMPUがメインメモリMM上でプログラム処理により統計情報を計算する必要がある。この統計処理はメインプロセッサに対し高負荷となる。
【００１３】
6) 回線速度とＣＡＭの関係
従来のルータは回線カードにＣＡＭを実装し、かつ、回線カードには同一速度の複数の回線を収容する(例えば、OC-12回線×４を搭載する）。このようにする理由は、回線カードに速度が異なる回線を収容する構成では、全ての回線カードに最高速度の高価なＣＡＭを必要とし、コストアップになるからである。しかし、回線カード毎に同一速度の回線を収容する従来構成のルータでは、各回線速度に応じた回線カードを用意する必要が有り、ネットワークによっては使用しない回線カードが発生したり、回線カードに収容する回線数が少ない場合が発生する。すなわち、従来のルーチング装置は回線カードの回線収容効率が悪く、コストアップになっている。
【００１４】
以上から本発明の目的は、安価で、かつ、コンパクトなルーチング装置を提供することである。
本発明の別の目的は、使用するＣＡＭの個数を削減してルーチング装置のコストダウンと実装効率を高めることである。
本発明の別の目的は、障害が発生しても運用継続可能にしてルーチング装置の信頼性を向上することである。
本発明の別の目的は、ＣＡＭ周辺の回路を設計変更しなくてもＣＡＭにおける連想データやキーデータのビット幅を可変制御できるルーチング装置を提供することである。
本発明の別の目的は、マルチプルヒット時の処理をCAM LSI内部にて実現できるようにしてメインプロセッサの統計処理を少なくし、該メインプロセッサの負荷を軽減することである。
本発明の別の目的は、速度の異なるＣＡＭを回線速度毎に使い分けれるようにし、かつ、回線カードに種々の回線速度の回線を収容できるようにして、ルーチング装置のコストダウンを図ることである。
本発明の別の目的は、電源投入時やリカバリー時におけるシステム立ち上げ時間を減少できるルーチング装置を提供することである。
【００１５】
【課題を解決するための手段】
本発明は、回線より到来するパケットの宛先アドレスに応じたルーチングデータを求めて該パケットに付加し、ルーチングデータに基づいてパケットをスイッチングして所定の回線に送出するルーチング装置であり、(1) ルーチングデータ発生部を備え、要求された宛先アドレスに応じたルーチングデータを発生して要求元に送出する主制御部、(2) 回線より到来するパケットの宛先アドレスを抽出し、該宛先アドレスに応じたルーチングデータを通知するよう主制御部に要求し、主制御部より通知されたルーチングデータをパケットに付加して出力する回線インタフェース部、(3) 所定の回線インタフェース部から入力する前記ルーチングデータ要求を主制御部に送出し、主制御部からのルーチングデータを要求元の回線インタフェース部に送出し、ルーチングデータ付きパケットを該ルーチングデータに基づいてスイッチングして別の回線インタフェース部に送出するスイッチ部、を備えている。
【００１６】
主制御部のルーチングデータ発生部は、(1) ルーチングデータを記憶する連想メモリ部、(2) 宛先アドレスをキーデータとするとき、多数の宛先アドレスであるキーデータを記憶するキーデータ記憶部、(3) 前記要求された宛先アドレスであるキーデータがキーデータ記憶部に存在するとき、該キーデータを前記連想メモリのアドレスに変換する変換部、(4) 連想メモリ部の該アドレスよりルーチングデータを読出して要求元である回線インタフェース部に送出するルーチングデータ送出部、を有している。
本発明のルーチング装置は、従来、個々の回線カードと主制御部の両方に配置していたＣＡＭ(ルーチングデータ発生部)を主制御部側に集約してルーチングテーブルを一元管理する。これにより、システム全体で使用しているＣＡＭの個数を削減でき、コストダウンと実装効率を向上することができる。
又、ＣＡＭを主制御部にのみ持たせるだけでよいため、システム立ち上げの際、主制御部のメインプロセッサから回線カードにルーチングテーブルを転送する必要がなく、電源投入時やリカバリー時における立ちシステム上げ時間を減少することができる
【００１７】
本発明のルーチング装置は、主制御部に各回線速度に対応させてルーチングデータ発生部(ＣＡＭ)をそれぞれ備える。主制御部は、回線インタフェース部から回線識別子付きのルーチングデータ要求があったとき、回線速度に応じたＣＡＭからルーチングデータを求めて要求元の回線インタフェース部に送出する。このようにすれば速度の異なるＣＡＭを回線速度毎に使い分けることが可能となり、しかも、回線カードに種々の速度の回線を収容することが可能となり、安価で低速のＣＡＭを使用でき、しかも、回線カードの回線収容効率を向上できるためルーチング装置のコストダウンを図ることができる。
【００１８】
本発明のルーチング装置は、連想メモリ部とキーデータ記憶部を１つのメモリアレイで構成し、該メモリアレイの連続する２つの領域をそれぞれ連想メモリ部、キーデータ記憶部とする。メモリアレイに対するアクセス部は、メモリアレイの１バイトセルの総数をｙ、キーデータ幅をｋバイト、ルーチングデータを含む連想データ幅をｒバイトとするとき、登録可能なキーデータ数および連想データ数であるエントリ数ｅを次式
ｅ＝ｙ／（ｋ＋ｒ）
により演算し、これらｋ，ｒ，ｅによりキーデータおよび連想データのメモリアレイへの読み／書き制御を行なう。このようにすれば、ＣＡＭ周辺の回路を設計変更しなくても、ｙ，ｋ，ｒをプログラマブルに変更するだけで連想データやキーデータのビット幅を可変制御できる。
本発明のルーチング装置は、主制御部のルーチングデータ発生部にマルチプルヒットしたエントリ数、エントリキーデータの管理を行なわせる。このようにすれば、マルチプルヒット時の処理をCAM LSI内部にて実現でき、メインプロセッサの統計処理を少なくして負荷を軽減することができる。
【００１９】
【発明の実施の形態】
（Ａ）システム構成
図１は本発明のルーチング装置のシステム構成図であり、１１、１１′は信頼性をあげるために二重化された同一構成の主制御部（０系、１系の主制御部）、１２はスイッチ部、１３1〜１３nはSONET/SDH、Ethernet等の各種回線を収容する回線カード(回線インタフェース部)である。
主制御部１１，１１′は、▲１▼メインプロセッサMPU １１ａ,１１ａ′、▲２▼メインメモリMM １１ｂ,１１ｂ′、▲３▼システムバスに接続された各種I/OやＣＡＭ等のデバイスをメインプロセッサMPUに接続するためのMPUバス変換ブリッジ１１ｃ，１１ｃ′、▲４▼他系のＣＡＭとの通信を行うためのクロスコネクト部１１ｄ，１１ｄ′、▲５▼回線速度対応に設けられ、回線速度によって選択可能な複数個のＣＡＭ１１ｅ1〜１１ｅn，１１ｅ1′〜１１ｅn′、▲６▼各回線カードからスイッチ経由で到来する自局宛データを取り込んでシステムバスに送出するバス変換ブリッジ１１ｆ，１１ｆ′などを有している。各回線カードやメインプロセッサMPUからＣＡＭへのアクセスはすべてシステムバス１１ｇ，１１ｇ′を介して行われる。尚、１１ｈ、１１ｈ′はMPUバスである。
【００２０】
ＣＡＭ１１ｅ1〜１１ｅn，１１ｅ1′〜１１ｅn′は、(1) ルーチングデータを記憶する連想メモリ部２１、(2) 宛先アドレスをキーデータとするとき、多数の宛先アドレスに応じたキーデータを記憶するキーデータ記憶部２２、(3) 各回線カードから要求された宛先アドレスDAに応じたキーデータ(検索キーデータ)がキーデータ記憶部２２に存在するとき、キーデータを連想メモリのアドレスに変換するアドレス変換部２３、(4) 連想メモリ２１の該アドレスよりルーチングデータを読出すメモリアクセス部２４を備えている。各ＣＡＭ１１ｅ1〜１１ｅn，１１ｅ1′〜１１ｅn′はブロック的に同一構成を備えているが、製造プロセスによりアクセス速度が異なり、サフィックス番号が大きくなる程、高速アクセス可能になっている。
【００２１】
回線カード１３1〜１３nは、パケットプロセッサ１３ａ、回線カード内部の各種設定(Configuration)を行うマイクロプロセッサMPU １３ｂを備えている。パケットプロセッサ１３ａは、(1)各回線より到来するパケットの宛先アドレスDAを抽出し、該宛先アドレスDAをルーチングデータ検索用のキーデータ（検索キーデータ）としてスイッチ１２を介して主制御部１１，１１′のＣＡＭへ送出したり、(2) 主制御部１１，１１′よりスイッチ１２を介して取得したルーチングデータ（ハイウェイ番号HW_No.）をパケットに付与してスイッチに送出したり、(3) スイッチングされて入力するパケットよりルーチングデータを削除して回線へ送出する機能を有している。尚、パケットプロセッサ１３ａは、スイッチが検索キーデータであるか、パケットであるかを識別できるようにするために、検索キーデータにキーフラグを付加し、パケットにはデータフラグを付加してスイッチ１２に送出する。
スイッチ１２は、(1) 所定の回線カード１３1〜１３nから入力するキーフラグ付きの検索キーデータを主制御部１１に送出し、(2) 主制御部１１のＣＡＭより求めたルーチングデータを要求元の回線カードに送出し、又、(3) データフラグ付きのパケットをルーチングデータに基づいてスイッチングして別の回線インタフェース部に送出する。
【００２２】
図１のルーチング装置は、以下の特徴を有している。
1) ＣＡＭ 実装位置
従来個々の回線カードと主制御部の両方に配置していた各ＣＡＭを主制御部１１側に集約し、ルーチングデータ要求、検索されたルーチングデータの送受を、パケットプロセッサ１３ａとスイッチ１２のパスを経由するin-band方式により行なう。また、ルーチングテーブル（キーデータ／連想データ）を主制御部１１のＣＡＭで一元管理し、従来各回線カードで重複管理していたキーデータを削減する。これにより、システム全体で使用しているＣＡＭの個数を削減でき、コストダウンと実装効率の向上を図ることができる。又、ＣＡＭを主制御部１１にのみ持たせるだけでよいため、電源投入時やリカバリー時におけるシステム立ち上げ時間を減少できる。
【００２３】
2) CAM LSIの二重化構成
ＣＡＭを主制御部１１へ集約した場合の障害発生時の信頼性を向上させるために主制御部を二重化し、０系／１系の主制御部１１，１１′間にＣＡＭ専用のクロスコネクトパス１４を設け、該クロスコネクトバスを介して両系のＣＡＭが保持するルーチングテーブルを一致させ、運用系のＣＡＭが障害になったときスタンバイ系のＣＡＭにてリカバリーを可能とする。
【００２４】
3) 回線速度対応ＣＡＭの導入
ＣＡＭはlatency（待ち時間）が小さい程、換言すればアクセス時間が短い程高価となる。このため、高速対応の単一品種のＣＡＭだけを使用する構成ではコストアップになる。本発明のルーチング装置は、回線速度対応に複数個のＣＡＭ１１ｅ1〜１１ｅnを主制御部１１に設け、回線速度によって使用するＣＡＭを使い分ける。これにより、ＣＡＭの数、ＣＡＭの種類を最適化して、ＣＡＭ資源の有効活用を図り、ルータのコストをさげる。
【００２５】
通常、回線単位でＣＡＭ検索に必要となる最低時間はパケット送信時間である。すなわち、1 パケット送信中にＣＡＭ検索を終わらせる必要があり、回線速度が高速で、転送データ数が短い程その時間は厳しくなっていく。図２（Ａ），（Ｂ）はPOS回線のＣＡＭ検索最低時間の例を示す図表であり、（Ａ）はOC-12Cの場合、（Ｂ）はOC-192Cの場合である。
OC-12Cの１ビット当りの転送時間は1.6nsであるから、トータルの転送時間は
1.6×(IPデータ変動分ｎ＋PPP+IPヘッダ固定分）
となり、IPデータ変動分を１〜1500バイトとすると、転送時間0.36ns〜19.64nsとなる。一方OC-192Cの場合には、１ビット当りの転送時間は0.1nsであるから、トータルの転送時間は
0.1×(IPデータ変動分ｎ＋PPP+IPヘッダ固定分）
となり、IPデータ変動分を１〜1500バイトとすると、転送時間0.02ns〜1.23nsとなる。１パケット送信中にＣＡＭ検索を終わらせる必要があるため、回線速度が高速であれば高価な高速アクセス可能なＣＡＭを使用し、回線速度が低速であれば安価な低速アクセスのＣＡＭを用いる。
【００２６】
（Ｂ）パケットプロセッサとＣＡＭ間の送受信処理
図３は回線カードが連想データ（ルーチングデータ）を取得するための、パケットプロセッサとＣＡＭ間の送受信処理フロー、図４はパケットプロセッサとＣＡＭ間の送受信データのデータフォーマット、図５はパケットプロセッサとＣＡＭ間の送受信データタイムチャートである。
回線カード１３のパケットプロセッサ１３ａは回線から受信したIPパケットのIPヘッダより宛先アドレスDAを検索し、該宛先アドレスDAを検索キーデータ５１（図４（Ａ）参照）として抽出する(ステップ２０１）。ついで、パケットプロセッサ１３ａは、スイッチ１２が検索キーデータであると認識できるようにするために該検索キーデータ５１にキーフラグ５２を付加すると共に、主制御部が回線速度を識別できるようにIPパケットが到来した回線の識別子(Line ID)５３を付与し（ステップ２０２）、検索キーデータをスイッチ１２に入力する（ステップ２０３）。
【００２７】
スイッチ１２は受信した転送データの先頭ビット（フラグ）を参照し（ステップ２０４）、先頭ビットがデータフラグであれば転送データはパケットであると判定し、ルーチングデータに基づいてパケットを所定の回線カードにスイッチングする（ステップ２０５）。
受信した転送データの先頭ビットがキーフラグであれば、スイッチ１２は0系、1系の主制御部１１，１１′のいずれが運用中であるか判断し（ステップ２０６）、運用中の主制御部にフラグを削除して回線識別子５３と検索キーデータ５１を送出する。例えば、０系の主制御部１１が運用中であるとすれば、スイッチ１２はフラグを削除して（回線識別子＋検索キーデータ）を主制御部１１のバスブリッジ１１ｆに送出する。尚、スイッチが二重化されている場合には、スイッチ１２は転送元スイッチを特定するスイッチ識別子SW ID５４をキーデータに付加する。
バスブリッジ１１ｆは、受信データに送り先(クロスコネクト部)のバスアドレス５５を付与してシステムバス１１ｇを介してクロスコネクト部１１ｄへ転送する（ステップ２０７）。
【００２８】
クロスコネクト部１１ｄは受信データより検索キーデータ５１、回線識別子５３を分離し（ステップ２０８）、回線識別子５３から使用するＣＡＭをデコードし、該当ＣＡＭが存在するか判別する(ステップ２０９）。すなわち、回線識別子５３に基づいて回線速度を求め、該回線速度に応じたＣＡＭを求め、該ＣＡＭが主制御部１１に実装されているかチェックする。該当ＣＡＭが主制御部１１に実装されていなければエラー処理し（ステップ２１０）、実装されていれば該当ＣＡＭをアクセス可能にイネーブルする(ステップ２１１）。ついで、クロスコネクト部１１ｄは検索キーデータ５１を該当ＣＡＭ １１ｅに転送する(ステップ２１２）。該当ＣＡＭ １１ｅは検索キーデータ５１に基づいて連想データ(ルーチングデータ)５６を検索し（ステップ２１３）、該連想データ(Associate Data)をクロスコネクト部１１ｄに返す。
【００２９】
クロックコネクタ部１１ｄは、連想データ５６に元の回線識別子５３、スイッチ識別子５４を付加すると共に送り先（バスブリッジ１１ｆ）のバスアドレス５７を付与してシステムバス１１ｇに送出する。バスブリッジ１１ｆはクロスコネクト部１１ｄから受信したデータよりバスアドレス５６、スイッチ識別子５４を削除し、スイッチ識別子が示すスイッチ１２に（回線識別子５３＋連想データ５６）を入力する。スイッチ１２は回線識別子５３を削除し、連想データ５６を所定回線カードのパケットプロセッサ１３ａに入力する（ステップ２１４）。
以上はステップ２０６において、０系の主制御部１１が運用中であるとした場合である。しかし、１系の主制御部１１′が運用中であるとすれば、１系主制御部１１′はステップ２１７〜２２４において０系主制御部１１のステップ２０７〜２１４と同様の処理を実行する。
【００３０】
(b) 通常パケットのスイッチング
パケットプロセッサ１３ａは連想データを受信すれば、ルーチングデータ（ハイウェイ番号HW No.）、その他の情報αを取り出し、これら情報（HW No.＋α）６１をIPパケット（ペイロード）６２に付加してスイッチ１２に入力する（図４（Ｂ）参照）。尚、先頭の1bitに一連の転送データがスイッチングすべき通常パケットであることを示すデータフラグ（Data Flag）６３を付与する（以上、ステップ２０２，２０３）。
スイッチ１２は受信した転送データの先頭ビット（フラグ）を参照し（ステップ２０４）、先頭ビットがデータフラグであれば転送データはパケットであると判定し、フラグを除去し、ルーチングデータ６１に基づいてパケットを所定の回線カードにスイッチングする（ステップ２０５）。該回線カードはスイッチ１２よりパケットを受信すれば、ルーチングデータを削除し、SONET/SDHのペイロードにマッピングして回線へ送出する。
【００３１】
図５のタイムチャートは横軸に時間をとったものである。本発明のルーチング装置は、スイッチ１２、システムバス１１ｇを経由するインバンド方式によりＣＡＭへアクセスする。このため、ルーチングデータを得るのに多少の時間を必要とする。しかし、システムバスの速度向上、スイッチの動作速度向上により、実際のアクセス時間を短くすることができ、従来型ルーチング装置のアクセス時間と遜色なく動作可能である。
【００３２】
（Ｃ）回線カードの異種回線の混在搭載
図１では各回線カード１３1〜１３nは同一構成であることを想定して説明したが、回線カードは複数のパケットプロセッサを備えていてもよく、又、収容する回線の速度は任意でよい。図６は異種回線の混在搭載を説明する説明図であり、回線カード１３1には１つのパケットプロセッサ１３ａと１つのMPU １３ｂが搭載され、4種類の速度の異なる回線OC-3, OC-12, OC-48， OC-192が収容されている。回線カード１３2には、２つのパケットプロセッサ１３ａ1，１３ａ2と１つのMPU １３ｂが搭載され、4種類の速度の異なる回線OC-3, OC-12, 100BT、Gi-etherが収容されている。回線カード１３nには、4つの同一回線OC-12が搭載されている。
【００３３】
本発明のルーチング装置は、主制御部１１に各回線速度に対応させてＣＡＭ１１ｅ1〜１１ｅnをそれぞれ備える。主制御部１１は回線カード１３1〜１３nから回線識別子が付加された検索キーデータを受信すれば、回線速度に応じたＣＡＭからルーチングデータを求めて要求元の回線カードに送出する。この結果、速度の異なるＣＡＭを回線速度毎に使い分けることが可能となり、しかも、図６に示すように回線カード１３1〜１３nに種々の速度の回線を収容することが可能となる。すなわち、本発明の類装置は、安価で低速のＣＡＭを使用でき、しかも、回線カードの回線収容効率を向上でき、コストダウンを図ることができる。
【００３４】
（Ｄ）ＣＡＭ周辺の構成
図７はＣＡＭ周辺の回路構成図であり、図１と同一部分には同一符号を付している。クロスコネクト部１１ｄ内のバスコントローラ３１は、システムバス１１ｇと連想データバス（Associate Data Bus)３２、キーデータバス（Key Data Bus)２３間のバス調停制御を行う。連想データバス３２は、クロスコネクト部内に設けられ、ＣＡＭ １１ｅ1〜１１ｅnを構成する連想メモリ２１（図１参照）から読出された連想データ等を伝送する。キーデータバス３３は、クロスコネクト部内に設けられ、ＣＡＭを構成するキーデータ記憶部２２や連想メモリ２１に書き込むキーデータ/連想データやルーチングデータ検索用のキーデータ（検索キーデータ）等を伝送する。すなわち、バスコントローラ３１は、メインプロセッサ１１ａからシステムバス１１ｇを介して入力するルーチングテーブル（キーデータ/連想データ）をキーデータバス３３に送出し、所定のＣＡＭに書き込む。又、ルーチングデータ検索時に、回線カードからシステムバス１１ｇを介して入力する検索キーデータをキーデータバス３３に送出する。又、ＣＡＭから読出された連想データ等を連想データバス３２を介してシステムバス１１ｇに送出する。
【００３５】
ＣＡＭセレクタ３４は、回線カード１３1〜１３nからインバンド方式で受信するデータより、▲１▼キーデータ５１、▲２▼回線識別子(Line ID)５３、▲３▼スイッチ識別子（SW ID）の分離を行い、キーデータをＣＡＭへ送出すると共に回線識別子、スイッチ識別子を保持し、後述のラインセレクタ３５に入力する。又、ＣＡＭセレクタ３４は、回線識別子５３からアクセスすべきＣＡＭを選択し、そのＣＡＭに対し制御線を介してアクセスイネーブル信号ACENを送出する。図８はルーチングデータ検索時におけるＣＡＭアクセスのタイムチャートである。ＣＡＭセレクタ３４は、クロックに同期してアクセスイネーブル信号ACENをハイレベルにし、しかる後、キーデータKDTをクロックに同期してＣＡＭに送出する。
ラインセレクタ３５は、ＣＡＭより検索した連想データ（Associate Data)にＣＡＭセレクタ３４から入力する回線識別子５３、スイッチ識別子５４を付与して連想データバス３２に送出する。
【００３６】
バスコントローラ３６は、クロスコネクトバス１４と連想データバス３２、キーデータバス２３間のバス調停制御を行う。運用系の主制御部１１のメインプロセッサ１１ａは、内部のＣＡＭ １１ｅ1〜１１ｅnのルーチングテーブルを更新するとき、あるいは、これらＣＡＭ １１ｅ1〜１１ｅnに新たにルーチングテーブルを書き込むとき、スタンバイ系の主制御部１１′内のＣＡＭ １１ｅ1′〜１１ｅn′にもルーチングテーブルの更新、書き込みを行なう。かかる場合、バスコントローラ３６はバス調停制御を行ってメインプロセッサ１１ａからのルーチングテーブルをクロスコネクトバス１４を介してスタンバイ系主制御部１１′に送出する。
【００３７】
（Ｅ）ＣＡＭの内部構成
図９はＣＡＭの内部構成図であり、図１と同一部分には同一符号を付している。Ｉ／Ｏ制御部２０はキーデータと連想データの入出力制御を行うもので、クロスコネクト部側から各種データ（キーデータ／連想データ／検索キーデータ）、制御信号、イネーブル信号が入力し、又、クロスコネクト部側へ連想データ／マルチプルヒット関連データ等を出力する。
連想メモリ部２１は連想データ(ルーチングデータHW-No.+α)を記憶し、キーデータ記憶部２２は宛先アドレスをキーデータとするとき、多数の宛先アドレスに応じたキーデータを記憶する。連想メモリ２１とキーデータ記憶部２２は１つメモリアレイの連続領域で構成され、プログラマブルに連想データのビット幅ｒやキーデータのビット幅ｋ、領域境界線を可変に設定できるようになっている。
【００３８】
アドレス変換部２３は各回線カードから要求された宛先アドレスDAに応じたキーデータ(検索キーデータ)がキーデータ記憶部２２に存在するとき、キーデータを連想メモリ２１のアドレスに変換するもので、レスポンスレジスタ２３ａ、プライオリティエンコーダ２３ｂを備えている。レスポンスレジスタ２３ａは、  (1) キーデータ記憶部２２に記憶されている円とキーデータと検索キーデータとのマッチング結果(比較結果)、あるいは、(2) キーデータ記憶部２２に記憶されているエントリキーデータと検索キーデータの非マスク部分とのマッチング結果を格納する。プライオリティエンコーダ２３ｂはレスポンスレジスタ２３ａのマッチング結果をもとに連想メモリ２１のアドレスを生成し、連想メモリ２１の該アドレスより連想データ（ルーチングデータHW-No.＋α）を出力する。キーデータ記憶部２２に記憶されている複数のキーデータが検索キーデータと一致する場合（マルチプルヒット）、プライオリティエンコーダ２３ｂは予め定められている基準に基づいて定まる１つのエントリキーデータに応じたアドレスを発生する。このアドレスから読出した連想データによりパケットを送ってみて、パケットが宛先に届かなければ要求により次のエントリキーデータに応じたアドレスを出力し、以後同様にシーケンシャルにアドレスを出力する。
【００３９】
メモリアクセス部２４は、メモリアレイへのキーデータ／連想データの書き込み制御、検索キーデータに応じた連想データの読出し制御をするもので、アドレスデコーダ２４ａ、インデックス／マスクレジスタ２４ｂ、モード設定レジスタ２４ｃを備えている。アドレスデコーダ２４ａは入力するアドレスデータをデコードしてメモリアレイの所定のアドレスにキーデータ／連想データを書き込み（ルーチングテーブル更新時）、あるいはメモリアレイの所定ドレスよりキーデータ／連想データを読み出す（ルーチングデータ検索時）。インデックス／マスクレジスタ２４ｂは検索キーデータおよびマスクデータを記憶する。モード設定レジスタ２４ｃはキーデータのビット幅ｋ／連想データのビット幅ｒ／エントリ数ｅを保持するもので、エントリ数ｅはメモリアレイに保存可能なキーデータ数（＝連想データ数）である。アドレスデコーダ２４ａはｋ，ｒ，ｅに基づいてアドレスデータに応じたキーデータ領域２２および連想データ領域２１におけるアドレスを発生してキーデータおよび連想データの読み／書き制御を行なう。このように、従来、CAM LSI外部に配置していたRAM構成の連想メモリをCAM LSI内部に配置することによりメモリアレイを有効に活用することが可能になり、又、キーデータ幅や連想データ幅が変更になってもモード設定レジスタ２４ｃの設定データのみの変更により対応することができる。
【００４０】
マルチプルヒット管理部２５は、キーデータ記憶部２２に記憶されている複数のキーデータが検索キーデータと一致する時（マルチプルヒット時）、ヒット数ＣHをヒットレジスタ２５ａに格納すると共に、検索キーデータとマッチングするエントリキーデータをキーデータレジスタ２５に格納し、適宜、ヒット数ＣHおよびエントリキーデータの組をＩ／Ｏコントローラ２０を介してメインプロセッサ１１ａに送出する。以上のように、マルチプルヒット管理部２５がヒット数およびエントリキーデータを管理するため、メインプロセッサ１１ａは必要に応じてこれら管理データを読みとって所定の処理を行なうだけでよいため、マルチプルヒット時におけるメインプロセッサの処理を軽減することができる。尚、メインプロセッサの処理としては、キーデータ記憶部２２に記憶されているキーデータの誤り検出処理等がある。
【００４１】
（Ｆ）メモリアレイおよび周辺回路
図１０はメモリアレイお及びその周辺回路の構成図であり、図９と同一部分には同一符号を付している。ＲＡＭ構成のメモリアレイＭＣＡの前半はキーデータ記憶領域２２、後半が連想メモリ領域２１になっている。メモリアレイＭＣＡの１バイトセルの総数をｙ、キーデータ幅をｋバイト、ルーチングデータを含む連想データ幅をｒバイトとするとき、メモリアレイに登録可能なキーデータおよび連想データの数（エントリ数）ｅは、キーデータ数と連想データ数が同じであるから次式
e＝y/(k+r)    (1)
により求まり、これらｋ，ｒ，ｅはモード設定レジスタ２４ｃに設定される。エントリ数ｅは例えばＩ／Ｏコントローラ２０（図９）が演算してモード設定レジスタ２４ｃに設定する。図１１はメモリアレイにおける１バイトセル数ｙ、キーデータ幅ｋ、連想データ幅ｒ、エントリ数ｅの関係図表であり、エントリ数は(1)式により求まる。図１１の図表において、左欄はメモリアレイのセルバイト数が1000、右欄はセルバイト数が16,384の場合におけるｙ，ｋ，ｒ，ｅの関係を示している。
【００４２】
キーデータ記憶領域２２の第ｉキーデータアドレスに対応するセルバイトアドレスはこれらｋ，ｒ，ｅより、以下
i・k〜i・k+(k-1)    (2)
で与えられる。又、連想メモリ領域２１の第ｊ連想データアドレスに対応するセルバイトアドレスは以下
k・e+j・r〜k・e+j・r+(r-1)    (3)
で与えられる。アドレスデコーダ２４ａはモード設定部２４ｃに設定されたｋ，ｒ，ｅを参照し、(2),(3)式により入力するアドレスデータをメモリアレイＭＣＡのバイトアドレスに変換する。
【００４３】
・キーデータの書き込み
メモリアレイＭＣＡに対すキーデータ書き込みに際して、キーデータがメモリアレイＭＣＡに入力し、キーデータの書き込みアドレスｉがアドレスデコーダ２４ａに入力すると、アドレスデコーダ２４ａはアドレスデータｉを(2)式に従ってデコードし、デコードにより求まるバイトアドレスが示すｋ個の１バイトセルにキーデータを書き込む。以後、同様に順次キーデータをメモリアレイＭＣＡのキーデータ記憶領域２２に書き込む。
・連想データの書き込み
メモリアレイＭＣＡに対する連想データの書き込みに際して、連想データがメモリアレイＭＣＡに入力し、連想データの書き込みアドレスｊがアドレスデコーダ２４ａに入力すると、アドレスデコーダ２４ａはアドレスデータｊを(3)式に従ってデコードし、デコードにより求まるバイトアドレスが示すｒ個の１バイトセルに連想データを書き込む。以後、同様に順次連想データをメモリアレイＭＣＡの連想メモリ領域２１に書き込む。
【００４４】
・検索キーデータに応じた連想データの読出し
検索キーデータに応じた連想データを出力するには、該検索キーデータをインデックス／マスクレジスタ２４ｂに入力して記憶すると共に、アドレスデコーダ２４ａにキーデータの読出しアドレスｉ＝１〜ｅを順次入力する。アドレスデコーダ２４ａはアドレスデータｉを(2)式に従ってデコードし、デコードされたバイトアドレスが示すｋ個のバイトセルからｋバイトのキーデータ（エントリキーデータ）を読み出し、ゲート２６を介してインデックス／マスクレジスタ２４ｂに入力する。インデックス／マスクレジスタ２４ｂはその比較機能により、検索キーデータとエントリキーデータを比較し、比較結果をレスポンスレジスタ２３ａに格納する。以後、同様に、アドレスデータｉを歩進し、ｉ＝１〜ｅが示すキーデータアドレスから読み取ったエントリキーデータと検索キーデータとの比較結果をレスポンスレジスタ２３ａに格納する。比較処理が終了すれば、プライオリティエンコーダ２３ｂは検索キーデータと一致したエントリキーデータを連想メモリ領域２１のアドレスｊに変換し、アドレスデコーダ２４ａに入力する。アドレスデコーダ２４ａは入力する連想データアドレスｊを(3)式に従ってデコードし、デコードにより得られたバイトアドレスの示すｒ個のバイトセルからｒバイトの連想データを読出し、ゲート２６を介して出力する。
以上のように、本発明のルーチング装置によれば、連想データやキーデータのビット幅を変更する際、変更後の連想データのビット幅ｒやキーデータのビット幅ｋを入力するだけでよく、ＣＡＭ周辺回路の設計変更をする必要がない。
【００４５】
（Ｇ）各ユニット間のデータの流れ
（ａ）ＣＡＭ-メインプロセッサ間のデータの流れ
図１２はＣＡＭ−メインプロセッサ間のデータの流れを説明する説明図である。運用系の主制御部１１のメインプロセッサ１１ａは、内部のＣＡＭ １１ｅ1〜１１ｅnにアクセスするとき、ルートＲ１を介して行なう。従って、メインプロセッサ１１ａがルーチングテーブル（キーデータ／連想データ）を内部のＣＡＭ１１ｅ1〜１１ｅnに書き込む際、該ルートＲ１を介して行なう。又、内部ＣＡＭより連想データ等を読み出すときにも該ルートＲ１を介して行なう。  又、運用系の主制御部１１のメインプロセッサ１１ａは、スタンバイ系主制御部１１′の内部のＣＡＭ １１ｅ1′〜１１ｅn′にアクセスするとき、図８のルートＲ２を介して行なう。従って、メインプロセッサ１１ａがルーチングテーブルを二重化するためにＣＡＭ １１ｅ1′〜１１ｅn′に該ルーチングテーブルを書き込む際、ルートＲ２を介して行なう。
【００４６】
（ｂ）ＣＡＭ−パケットプロセッサ間のデータの流れ
図１３はＣＡＭ−パケットプロセッサ間のデータの流れを説明する説明図である。運用系のＣＡＭと回線カードのパケットプロセッサ間のデータ送受はルートＲ１〜Ｒ３を介して行なわれる。ルートＲ１は回線カード１３1が検索キーデータを運用系のＣＡＭ １１ｅ1へ与えて検索結果(ルーチングデータ)を受信する場合のルートである。ルートＲ２は回線カード１３2が検索キーデータを運用系のＣＡＭ １１ｅnへ与えて検索結果(ルーチングデータ)を受信する場合のルートである。ルートＲ３は主制御部１１′が運用系になった場合、回線カード１３nが検索キーデータを運用系のＣＡＭ １１ｅ1′へ与えて検索結果(ルーチングデータ)を受信する場合のルートである。
【００４７】
（ｃ）障害時のＣＡＭ−パケットプロセッサ間のデータの流れ
図１４は障害時のＣＡＭ−パケットプロセッサ間のデータの流れを説明する説明図である。障害発生前は、回線カード１３1のパケットプロセッサ１３ａはルートＲ１を介して運用系主制御部１１のＣＡＭ １１ｅ1〜１１ｅnにアクセスしてルーチングデータを取得する。しかし、ＣＡＭ １１ｅ1〜１１ｅnに障害が発生して主制御部１１′が運用系になれば、パケットプロセッサ１３ａはルートＲ２を介して運用系の主制御部１１′のＣＡＭ １１ｅ1′〜１１ｅn′にアクセスしてルーチングデータを取得する。
【００４８】
・付記
（付記１）  回線より到来するパケットの宛先アドレスに応じたルーチングデータを求めてパケットに付加し、該ルーチングデータに基づいてパケットをスイッチングして所定の回線に送出するルーチング装置において、
ルーチングデータ発生部を備え、要求された宛先アドレスに応じたルーチングデータを発生して要求元に送出する主制御部、
回線より到来するパケットの宛先アドレスを抽出し、該宛先アドレスに応じたルーチングデータを通知するよう主制御部に要求し、主制御部より通知されたルーチングデータをパケットに付加して出力する回線インタフェース部、
所定の回線インタフェース部から入力する前記ルーチングデータ要求を主制御部に送出し、主制御部からのルーチングデータを要求元の回線インタフェース部に送出し、ルーチングデータ付きパケットを該ルーチングデータに基づいてスイッチングして別の回線インタフェース部に送出するスイッチ部、
を備えたことを特徴とするルーチング装置。
【００４９】
（付記２）  前記主制御部のルーチングデータ発生部は、
ルーチングデータを記憶する連想メモリ部、
宛先アドレスをキーデータとするとき、多数の宛先アドレスに応じたキーデータを記憶するキーデータ記憶部、
前記要求された宛先アドレスに応じたキーデータがキーデータ記憶部に存在するとき、該キーデータを前記連想メモリのアドレスに変換する変換部、
連想メモリ部の該アドレスよりルーチングデータを読出して要求元である回線インタフェース部に送出するルーチングデータ送出部、
を備えたことを特徴とする付記１記載のルーチング装置。
（付記３）  前記主制御部を二重化し、運用中の主制御部は前記各記憶部の記憶内容を更新するとき、スタンバイ中の主制御部の各記憶部の記憶内容も更新し、運用中の主制御部側に障害が発生したとき、スタンバイ中の制御部は新たに運用中制御部としてルーチング制御を継続する、
ことを特徴とする付記２記載ルーチング装置。
【００５０】
（付記４）前記主制御部は、回線速度に対応させてルーチングデータ発生部を備え、
前記回線インタフェース部は、回線より到来するパケットの宛先アドレスに応じたキーデータに回線識別子を付加して主制御部にルーチングデータを通知するよう要求し、
主制御部は、該通知要求により回線識別子の回線速度に応じたルーチングデータ発生部よりルーチングデータを発生して要求元の回線インタフェース部に送出する、
ことを特徴とする付記２記載のルーチング装置。
【００５１】
（付記５）  回線インタフェース部に任意の回線速度の回線を接続する、
ことを特徴とする付記４記載のルーチング装置。
（付記６）  各回線インタフェース部は、主制御部へ送出するルーチングデータ要求にキーフラグを付し、パケットにデータフラグを付してスイッチ部に入力し、
スイッチ部はキーフラグ付きデータを主制御部に送出し、データフラグ付きパケットをルーチングデータに基づいて出力側の回線インタフェース部に送出する、
ことを特徴とする付記２記載のルーチング装置。
【００５２】
（付記７）  前記連想メモリ部とキーデータ記憶部を１つメモリアレイの連続領域で構成し、
メモリアレイの１バイトセルの総数をｙ、キーデータ幅をｋバイト、ルーチングデータを含む連想データ幅をｒバイトとするとき、登録可能なキーデータ数および連想データ数であるエントリ数ｅを
ｅ＝ｙ／（ｋ＋ｒ）
により演算し、これらｋ，ｒ，ｅによりキーデータおよび連想データのキーデータ領域および連想データ領域への読み／書き制御を行なう、
ことを特徴とする付記２記載のルーチング装置。
（付記８）  前記ルーチングデータ発生部は、
前記キーデータ幅ｋ、連想データ幅ｒ、エントリ数ｅを保持するレジスタ、
ｋ，ｒ，ｅによりキーデータおよび連想データの読み／書き制御を行なうアドレスデコーダ、
を備えたことを特徴とする付記７記載のルーチング装置。
【００５３】
（付記９）  前記主制御部のルーチングデータ発生部は、更に、
前記要求された宛先アドレスに応じたキーデータと同一のキーデータ、あるいは、該宛先アドレスに応じたキーデータの非マスク部分と同一のキーデータがキーデータ記憶部に複数エントリされているとき、そのエントリ数、エントリキーデータを保持する保持部、
これらエントリ数、エントリキーデータを外部のプロセッサに通知する手段、
を備えたことを特徴とする付記２記載のルーチング装置。
以上、本発明を実施例により説明したが、本発明は請求の範囲に記載した本発明の主旨に従い種々の変形が可能であり、本発明はこれらを排除するものではない。
【００５４】
【発明の効果】
以上本発明によれば、従来、個々の回線カードと主制御部の両方に配置していたＣＡＭ(ルーチングデータ発生部)を主制御部側に集約してルーチングテーブルを一元管理するように構成したから、システム全体で使用しているＣＡＭの個数を削減でき、コストダウンと実装効率を向上することができる。
又、本発明によれば、ＣＡＭを主制御部にのみ持たせるだけでよいため、システム立ち上げの際、主制御部のメインプロセッサから回線カードにルーチングテーブルを転送する必要がなく、電源投入時やリカバリー時におけるシステム立ち上げ時間を減少することができる。
【００５５】
又、本発明によれば、主制御部は、回線インタフェース部から回線識別子付きのルーチングデータ要求があったとき、回線速度に応じたＣＡＭからルーチングデータを求めて要求元の回線インタフェース部に送出するように構成したから、速度の異なるＣＡＭを回線速度毎に使い分けることが可能となり、安価で低速のＣＡＭを使用でき、しかも、回線カードに種々の速度の回線を収容することが可能となり、回線カードの回線収容効率を向上できる。この結果、ルーチング装置のコストダウンを図ることができる。
又、本発明によれば、主制御部を二重化し、運用中の主制御部はＣＡＭの記憶内容(ルーチングテーブル)を更新するとき、スタンバイ中の主制御部の各ＣＡＭのルーチングテーブルも更新し、運用中の主制御部側に障害が発生したとき、スタンバイ中の制御部は新たに運用中制御部としてルーチング制御を継続するように構成したから、ＣＡＭをメインプロセッサへ集約した場合の障害発生時の信頼性を向上させることができる。
【００５６】
又、本発明によれば、連想メモリ部とキーデータ記憶部を１つのメモリアレイで構成し、該メモリアレイの連続する２つの領域をそれぞれ連想メモリ部、キーデータ記憶部とし、メモリアクセス部はメモリアレイの１バイトセルの総数ｙ、キーデータ幅ｋ、連想データ幅ｒより自動的にメモリアレイに登録可能なキーデータおよび連想データの数（エントリ数）ｅを求め、これらｙ，ｋ，ｒ，ｅに基づいてキーデータおよび連想データのメモリアレイへの読み／書き制御を行なう。このようにすれば、ＣＡＭ周辺回路の設計変更をしなくてもｙ，ｋ，ｒをプログラマブルに変更するだけで連想データやキーデータのビット幅を可変制御することができる。
又、本発明によれば、主制御部のルーチングデータ発生部にマルチプルヒットしたエントリ数（ヒット数）、エントリキーデータの管理を行なわせるようにしたから、マルチプルヒット時の処理をCAM LSI内部にて実現でき、メインプロセッサの処理を少なくして負荷を軽減することができる。
【図面の簡単な説明】
【図１】本発明におけるシステム構成図である。
【図２】ＣＡＭ検索最低時間を示す図表である。
【図３】連想データを取得するためのＣＡＭ−パケットプロセッサ間の動作処理フローである。
【図４】ＣＡＭーパケットプロセッサ間の送受信データフォーマットである。
【図５】ＣＡＭーパケットプロセッサ間の送受信タイムチャートである。
【図６】回線カードにおける複数異種回線の混在搭載説明図である。
【図７】ＣＡＭ周辺の構成図である。
【図８】ＣＡＭアクセスのタイムチャートである。
【図９】ＣＡＭの内部構成図である。
【図１０】メモリアレイと周辺回路の構成図である。
【図１１】ＲＡＭセル幅、キーデータ幅、連想データ幅、エントリ数の関係図表である。
【図１２】ＣＡＭ−メインプロセッサＭＰＵ間のデータの流れ説明図である。
【図１３】ＣＡＭ−パケットプロセッサ間のデータの流れ説明図である。
【図１４】障害時のＣＡＭ−パケットプロセッサ間のデータの流れ説明図である。
【図１５】従来のルータの概略構成図である。
【図１６】回線カードの構成図である。
【図１７】ＣＡＭ検索の流れ図である。
【図１８】従来のルータ装置の詳細な構成図である。
【図１９】従来のルータ装置のパケットの流れ説明図である。
【図２０】  CAM LSIの内部構造説明図である。
【符号の説明】
１１、１１′・・主制御部
１１ｅ1〜１１ｅn・・ＣＡＭ
１２・・スイッチ部
１３1〜１３n・・回線カード
１３ａ・・パケットプロセッサ
【図１】
0004290320.tif 000002
【図２】
0004290320.tif 000003
【図３】
0004290320.tif 000004
【図４】
0004290320.tif 000005
【図５】
0004290320.tif 000006
【図６】
0004290320.tif 000007
【図７】
0004290320.tif 000008
【図８】
0004290320.tif 000009
【図９】
0004290320.tif 000010
【図１０】
0004290320.tif 000011
【図１１】
0004290320.tif 000012
【図１２】
0004290320.tif 000013
【図１３】
0004290320.tif 000014
【図１４】
0004290320.tif 000015
【図１５】
0004290320.tif 000016
【図１６】
0004290320.tif 000017
【図１７】
0004290320.tif 000018
【図１８】
0004290320.tif 000019
【図１９】
0004290320.tif 000020
【図２０】
0004290320.tif 000021