JP3850773B2 - 出力ポート判定装置 - Google Patents

出力ポート判定装置 Download PDF

Info

Publication number
JP3850773B2
JP3850773B2 JP2002243148A JP2002243148A JP3850773B2 JP 3850773 B2 JP3850773 B2 JP 3850773B2 JP 2002243148 A JP2002243148 A JP 2002243148A JP 2002243148 A JP2002243148 A JP 2002243148A JP 3850773 B2 JP3850773 B2 JP 3850773B2
Authority
JP
Japan
Prior art keywords
address
signal
output
data
port information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002243148A
Other languages
English (en)
Other versions
JP2004088202A (ja
Inventor
智一 青木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2002243148A priority Critical patent/JP3850773B2/ja
Priority to US10/404,154 priority patent/US7464200B2/en
Publication of JP2004088202A publication Critical patent/JP2004088202A/ja
Application granted granted Critical
Publication of JP3850773B2 publication Critical patent/JP3850773B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明はデータの出力ポートを判定する出力ポート判定装置に関し、特にノードアドレスと最長一致するネットワークアドレスを有するネットワークと接続された出力ポートを判定する出力ポート判定装置に関する。
【0002】
【従来の技術】
IPルータは、異なるネットワーク同士を相互接続しパケット通信を行う。ルータは、ネットワーク同士で通信されるパケットのヘッダ部を解析し、IPアドレスに基づいてパケットのネットワーク経路を選択する。
【0003】
IPルータは、高速にパケット通信をするよう、IPアドレスと最長一致するネットワークアドレスを検索し、最短の通信路でパケットを送信するようにする。IPアドレスに最長一致するネットワークアドレスの検索は、ソフトウェア、又はハードウェアによって実現される。なお、ハードウェアによって、最長一致検索を行う装置として、特開平11−261647に示すような装置がある。
【0004】
【発明が解決しようとする課題】
しかしながら、従来の最長一致検索を行う装置では、ネットワークアドレスの最長一致検索をするのに、内部で演算処理を行う連想記憶装置(CAM:Contents Associated Memory)を使用し、ハードウェア構成が複雑であるという問題点があった。
【0005】
本発明はこのような点に鑑みてなされたものであり、記憶装置内部での演算処理を不要とし、簡単なハードウェア構成による最長一致判定が可能な出力ポート判定装置を提供することを目的とする。
【0006】
【課題を解決するための手段】
本発明では、上記課題を解決するために、図1に示すデータの出力ポートを判定する出力ポート判定装置1において、ネットワーク7a〜7nに接続される複数の出力ポート3a〜3nと、接続先ノードを一意に特定するノードアドレスを構成するビットに対応した信号線を有するアドレスバス2aaと、ネットワーク7a〜7nのネットワークアドレスのビット数と同数の前記信号線が接続され、ネットワークアドレスに対応したメモリアドレスに、データを出力すべき出力ポート3a〜3nを示すポート情報が格納された複数の記憶装置4a〜4mと、ノードアドレスをアドレスバス2aaに出力するアドレスレジスタ5と、ノードアドレスに応じて複数の記憶装置4a〜4mから出力されるポート情報のうち、最も多くの信号線が接続された記憶装置のポート情報を選択して出力する選択回路6と、を有することを特徴とする出力ポート判定装置1が提供される。
【0007】
このような出力ポート判定装置1によれば、アドレスバス2aaにノードアドレスを出力したとき、記憶装置4a〜4mから出力されるポート情報のうち、最も多くの本数の信号線が接続された記憶装置から出力されたポート情報が、ネットワークアドレスが最も長いネットワークに接続された出力ポートを示すこととなる。これにより、記憶装置4a〜4m内部での演算が不要となる。
【0008】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明の原理を説明する原理図である。図1に示すように出力ポート判定装置1は、制御回路2、出力ポート3a〜3n、記憶装置4a〜4m、アドレスレジスタ5、及び選択回路6を有している。
【0009】
出力ポート判定装置1は、ネットワーク7a〜7n、及び図示しないその他のネットワークと接続されている。ネットワーク7a〜7nには、ネットワークアドレスが付与される。出力ポート判定装置1は、ネットワーク7a〜7n又はその他のネットワークから、接続先ノードを一意に特定するノードアドレスを有するデータを受信する。出力ポート判定装置1は、ノードアドレスに含まれるネットワークアドレスに従って、データをネットワーク7a〜7nに送信する。
【0010】
制御回路2は、アドレスバス2aと接続されている。また、制御回路2は、データの送受信を行うデータバス2bと接続されている。制御回路2は、ネットワーク7a〜7nから受信したデータが有するノードアドレスを、アドレスバス2aを介してアドレスレジスタ5に出力する。また、制御回路2は、選択回路6から出力される、データを出力すべき出力ポート3a〜3nを示したポート情報に従って、受信したデータを出力ポート3a〜3nに送信する。
【0011】
出力ポート3a〜3nは、データバス2bと接続されている。また、出力ポート3a〜3nは、ネットワーク7a〜7nと接続されている。出力ポート3a〜3nは、制御回路2から送信されるデータを受信し、ネットワーク7a〜7nに送信する。
【0012】
記憶装置4a〜4mは、ノードアドレスを構成するビットに対応したアドレスバス2aaと接続されている。記憶装置4a〜4mは、アドレスバス2aaの信号線が互いに異なる本数となるように接続されている。記憶装置4a〜4mのうち、ネットワーク7a〜7nのネットワークアドレスのビット数と同数の信号線が接続された記憶装置は、そのネットワークアドレスに対応したメモリアドレスに、そのネットワークアドレスが付与されたネットワークと接続された出力ポートを示すポート情報が格納されている。
【0013】
例えば、ノードアドレスがXビットで示されるとする。Xビットのノードアドレスのうち、Yビットがネットワークアドレスを示すとする(X>Y)。この場合、Y本の信号線と接続された記憶装置が、ネットワークアドレスのビット数と同数の信号線が接続された記憶装置となる。そして、このY本の信号線と接続された記憶装置の、ネットワークアドレスに対応したメモリアドレスに、そのネットワークアドレスが付与されたネットワークと接続された出力ポートのポート情報が格納されている。
【0014】
記憶装置4a〜4mは、アドレスレジスタ5によって指定されたメモリアドレスにおけるデータを選択回路6に出力する。
アドレスレジスタ5は、アドレスバス2a、アドレスバス2aaと接続されている。アドレスレジスタ5は、制御回路2から出力されるノードアドレスをアドレスバス2aaに出力する。
【0015】
選択回路6は、記憶装置4a〜4mと接続されている。また、選択回路6は、データバス2bと接続されている。選択回路6は、記憶装置4a〜4mから出力されるポート情報のうち、最も多くのアドレスバス2aaの信号線と接続された記憶装置4a〜4mから出力されるポート情報を選択して、データバス2bに出力する。
【0016】
以下、出力ポート判定装置1の動作について説明する。
まず、制御回路2は、ネットワーク7a〜7n、又は他のネットワークから送信されてきたデータのノードアドレスをアドレスレジスタ5に出力する。アドレスレジスタ5は、ノードアドレスをアドレスバス2aaに出力する。
【0017】
記憶装置4a〜4mは、アドレスバス2aaに出力されているノードアドレスに応じて、格納されているポート情報を選択回路6に出力する。なお、最も多くの本数の信号線が接続された記憶装置から出力されたポート情報が、ネットワークアドレスが最も長いネットワークに接続された出力ポートを示す。
【0018】
選択回路6は、記憶装置4a〜4mから出力されるポート情報のうち、最も多くの信号線が接続された記憶装置のポート情報を選択して出力する。
制御回路2は、選択回路6から出力されたポート情報に従って、データを出力ポート3a〜3nに出力する。データを受け取った出力ポートは、そのデータをネットワーク7a〜7nに送信する。
【0019】
このように、最長一致するネットワークアドレスと接続された出力ポートを、記憶装置4a〜4mの内部で、演算処理を行うことなく判定でき、簡単なハードウェア構成による最長一致判定が可能となる。
【0020】
次に、本発明の第1の実施の形態を、TCP/IPプロトコルに従って、パケット通信を行うルータに適用した場合について説明する。
図2は、第1の実施の形態に係るルータをネットワーク同士の相互接続に適用したときの図である。図には、ルータ10a〜10f、ネットワーク11a〜11fが示してある。また、ネットワーク11a〜11fのネットワークアドレスが示してある。以下、特に断らない限り、32ビットデータを4つの256進数で(x1,x2,x3,x4)と表現する。
【0021】
図2の例では、ネットワーク11aのネットワークアドレスは、(91,*,*,*)である。ネットワーク11bのネットワークアドレスは、(92,*,*,*)である。ネットワーク11cのネットワークアドレスは、(93,*,*,*)である。ネットワーク11dのネットワークアドレスは、(92,1,*,*)である。ネットワーク11eのネットワークアドレスは、(92,2,*,*)である。ネットワーク11fのネットワークアドレスは、(92,1,1,*)である。なお、‘*’は、ネットワークアドレスのマスク部分(不定部分)を示す。
【0022】
ルータ10a〜10fは、パケットを受信すると、パケットに付されているIPアドレスに従って、受信したパケットをネットワーク11a〜11fに出力する。ルータ10a〜10fは、IPアドレスと最長一致するネットワークアドレスを持つネットワーク11a〜11fにパケットを出力する。
【0023】
例えば、ルータ10aがIPアドレス(92,1,1,4)のパケットを受信したとする。この場合、ネットワーク11b、11d、11fは、このパケットの送信先として全て正しいが、ルータ10aは、最長一致するネットワークアドレス(92,1,1,*)を持つネットワーク11fのルータ10fにパケットを出力する。
【0024】
このように、ルータ10aは、最長一致するネットワークアドレスにパケットを送信する。
図3は、ルータの回路ブロック図を示す。図に示すルータ10aは、CPU20、アドレスレジスタ30、RAM−リード/ライト回路40、ライトデータレジスタ50、RAM60−0〜60−31、セレクタ回路70、及び出力ポート80a〜80eを有している。
【0025】
CPU20は、32ビットのアドレスバス21、32ビットのデータバス22と接続されている。CPU20は、ネットワーク11a〜11f、又は他のネットワークから送信されてくるパケットのIPアドレスをアドレスバス21に出力する。また、CPU20は、接続先のネットワーク11b〜11fのネットワークアドレスに対応したRAM60−0〜60−31のメモリアドレスに、パケットを出力すべき出力ポート80a〜80eを示すポート情報を書き込む。
【0026】
アドレスレジスタ30は、32ビットのレジスタである。アドレスレジスタ30は、アドレスバス21、データバス22を介して、CPU20と接続されている。また、アドレスレジスタ30は、32ビットのアドレスバス31と接続されている。ここで、アドレスバス31の各ビットにおける信号線を信号線A<x>で示す。また、アドレスバス31の複数の信号線を信号線A<x:y>で示す。例えば、アドレスバス31のビット31の信号線を示すときは、信号線A<31>で示す。アドレスバス31のビット31からビット20の信号線を示すときは、信号線A<31:20>で示す。
【0027】
アドレスレジスタ30は、CPU20からパケットのIPアドレスが出力されると、そのIPアドレスをアドレスバス31に出力する。アドレスバス31の各信号線は、IPアドレスの各ビットに対応している。信号線A<31>は、IPアドレスの31ビットに対応している。信号線A<30>は、IPアドレスの30ビットに対応している。以下同様に、信号線A<29>〜A<0>は、IPアドレスの29ビットから0ビットに対応している。
【0028】
RAM−リード/ライト回路40は、アドレスバス21、データバス22を介して、CPU20と接続されている。また、RAM−リード/ライト回路40は、32ビットのセレクトバス41と接続されている。また、RAM−リード/ライト回路40は、信号線R,Wを介して、RAM60−0〜60−31と接続されている。また、RAM−リード/ライト回路40は、信号線Clrを介してセレクタ回路70と接続されている。なお、信号線A<x>、信号線A<31:0>と同様に、セレクトバス41の各信号線を信号線Sel<x>で示し、複数の信号線を信号線Sel<x:y>で示す。
【0029】
RAM−リード/ライト回路40は、出力ポート80a〜80eと接続されているネットワークアドレスの有効アドレス長がCPU20によって書き込まれ、その有効アドレス長に対応する信号線Selにセレクト信号を出力する。例えば、図2で示した、ネットワーク11bのネットワークアドレスは、(92,*,*,*)である。このネットワークアドレスの有効アドレス長は、8ビットである。CPU20が、RAM−リード/ライト回路40に有効アドレス長‘8’を書き込むと、RAM−リード/ライト回路40は、信号線Sel<7>にセレクト信号を出力する。
【0030】
ライトデータレジスタ50は、8ビットのレジスタである。ライトデータレジスタ50は、データバス22を介して、CPU20と接続されている。また、ライトデータレジスタ50は、8ビットのデータバス51と接続されている。ライトデータレジスタ50は、CPU20によって書き込まれたデータをデータバス51に出力する。
【0031】
RAM60−0〜60−31は、アドレスバス31の上位ビットから順に下位ビットの信号線が1本ずつ追加されて接続されている。RAM60−0は、信号線A<31>が接続されている。RAM60−1は、信号線A<31:30>が接続されている。RAM60−2は、信号線A<31:29>が接続されている。以下同様に、アドレスバス31の下位のビットの信号線Aが1本ずつ追加されて接続され、RAM60−31には、信号線A<31:0>が接続されている。
【0032】
また、RAM60−0〜60−31には、セレクトバス41の下位ビットから順に上位の信号線が接続されている。RAM60−0は、信号線Sel<0>と接続されている。RAM60−1は、信号線Sel<1>と接続されている。RAM60−2は、信号線Sel<2>と接続されている。以下、セレクトバス41の上位のビットの信号線が順に接続され、RAM60−31には、信号線Sel<31>が接続されている。また、RAM60−0〜60−31には、信号線R,Wが接続されている。
【0033】
RAM60−0〜60−31のうち、ネットワーク11b〜11fのネットワークアドレスのビット数と同数の信号線A<31>〜A<0>が接続されたRAM60−0〜60−31は、そのネットワークアドレスに対応したメモリアドレスに、そのネットワークアドレスを持つネットワーク11b〜11fと接続された出力ポート80a〜80eを示すポート情報が格納されている。
【0034】
例えば、ネットワークアドレス(92,*,*,*)は、2進数表現において、8ビット必要である。RAM60−0〜60−31のうち、8ビットの信号線と接続されているのは、RAM60−8である。そして、256進数の‘92’に対応するメモリアドレス、すなわち2進数で(0,1,0,1,1,1,0,0)のメモリアドレスには、ネットワークアドレス(92,*,*,*)を持つネットワーク11bと接続された出力ポート80aを示すポート情報が格納される。
【0035】
セレクタ回路70は、RAM60−0〜60−31の各々と、8ビットのデータバス71−0〜71−31を介して接続されている。なお、信号線A<x>、信号線A<31:0>と同様に、データバス71−0〜71−31の信号線を、信号線D0<7:0>、信号線D31<7:0>で示す。
【0036】
セレクタ回路70は、RAM60−0〜60−31から出力されるポート情報のうち、最も多くの信号線が接続されたRAMのポート情報を選択して、データバス22に出力する。CPU20は、ポート情報に従って、パケットを出力ポート80a〜80eに出力する。また、セレクタ回路70は、ライトデータレジスタ50に書き込まれたデータを信号線D0<7:0>〜D31<7:0>に出力する。
【0037】
出力ポート80aは、図2で示したネットワーク11bと接続されている。出力ポート80bは、ネットワーク11cと接続されている。出力ポート80cは、ネットワーク11dと接続されている。出力ポート80dは、ネットワーク11eと接続されている。出力ポート80eは、ネットワーク11fと接続されている。出力ポート80a〜80eは、CPU20からパケットが送信されると接続先のネットワーク11b〜11fに出力する。
【0038】
以下、図3のルータ10aの動作について説明する。
まず、RAM60−0〜60−31を初期化する動作について説明する。CPU20は、ライトデータレジスタ50に初期化データ、例えば‘0’を書き込む。セレクタ回路70は、ライトデータレジスタ50に書き込まれた初期化データ‘0’をデータバス71−0〜71−31に出力する。
【0039】
CPU20は、初期化対象のネットワークアドレスをアドレスレジスタ30に書き込む。アドレスレジスタ30は、CPU20によって書き込まれた初期化対象のネットワークアドレスをアドレスバス31に出力する。
【0040】
CPU20は、ネットワークアドレスの有効アドレス長をRAM−リード/ライト回路40に書き込む。RAM−リード/ライト回路40は、CPU20によって書き込まれた有効アドレス長に対応する信号線Selに、セレクト信号を出力する。すなわち、ネットワークアドレスを指定するのに、必要な信号線A<31>〜A<0>が接続されたRAMが選択される。
【0041】
例えば、初期化対象のネットワークアドレスを(92,*,*,*)とする。256進数の‘92’は、2進数の8ビットで表現すると(0,1,0,1,1,1,0,0)である。これにより、信号線A<31>には、‘0’が出力される。信号線A<30>には、‘1’が出力される。信号線A<29>には、‘0’が出力される。信号線A<28>には、‘1’が出力される。信号線A<27>には、‘1’が出力される。信号線A<26>には、‘1’が出力される。信号線A<25>には、‘0’が出力される。信号線A<24>には、‘0’が出力される。信号線A<23:0>は、不定であり、どのような値が出力されてもよい。
【0042】
ネットワークアドレス(92,*,*,*)は、2進数表現において、上位8ビットがネットワークアドレスを示し、下位24ビットは、不定を示す。従って、有効アドレス長は、8ビットであり、RAM−リード/ライト回路40は、信号線Sel<7>にセレクト信号を出力する。すなわち、この例では、ネットワークアドレスを指定するのに8本の信号線が必要であり、8本の信号線A<31:24>と接続されたRAM60−7が選択される。そして、信号線A<31:24>には、ネットワークアドレスの‘92’が出力される。
【0043】
RAM−リード/ライト回路40は、信号線Wに書き込み信号を出力する。信号線Selによって選択されているRAMは、RAM−リード/ライト回路40から書き込み信号が出力されることにより、データバス71−0〜71−31に出力されている初期化データが書き込まれる。
【0044】
上記のネットワークアドレス(92,*,*,*)の例では、RAM60−7がセレクト信号によって選択されている。RAM−リード/ライト回路40から書き込み信号が出力されることによって、RAM60−7は、ネットワークアドレス(92,*,*,*)に対応するメモリアドレスに、データバス71−7に出力されている初期化データが書き込まれる。
【0045】
このようにして、RAM60−0〜60−31は、初期化データに初期化される。
なお、ポート情報と識別されるように、出力ポート80a〜80eと接続されているネットワークのネットワークアドレスに対応するメモリアドレス以外のアドレスには、初期化データを格納するようにする。
【0046】
また、上記の全RAMにおける初期化手順を簡略化するために、リセット機能(全メモリアドレスのデータを初期化する)を持つRAMを使用するようにしてもよい。RAMにデータをリセットするための信号を全RAMに入力するようにし、この信号によってRAMの全データを初期化するようにする。
【0047】
次に、ネットワークアドレスに対応する、RAM60−0〜60−31のメモリアドレスに、ポート情報を格納する動作について説明する。CPU20は、出力ポート80a〜80eの接続先ネットワーク11b〜11fのネットワークアドレスをアドレスレジスタ30に書き込む。アドレスレジスタ30は、CPU20によって書き込まれたネットワークアドレスをアドレスバス31に出力する。
【0048】
CPU20は、アドレスレジスタ30に書き込まれたネットワークアドレスを持つネットワーク11b〜11fと接続された出力ポート80a〜80eを示すポート情報をライトデータレジスタ50に書き込む。なお、ポート情報の7ビット目には、自ポート情報が有効であることを示す‘1’が設定される。また、ポート情報の6〜0ビットで、パケットを出力すべき出力ポートのポート情報が設定される。
【0049】
セレクタ回路70は、ライトデータレジスタ50に書き込まれたポート情報をデータバス71−0〜71−31に出力する。
CPU20は、ネットワークアドレスの有効アドレス長をRAM−リード/ライト回路40に書き込む。RAM−リード/ライト回路40は、CPU20によって書き込まれた有効アドレス長に対応する信号線Selに、セレクト信号を出力する。すなわち、ネットワークアドレスを指定するのに必要なビット数と同数の信号線Aが接続されたRAMが選択される。
【0050】
RAM−リード/ライト回路40は、信号線Wに書き込み信号を出力する。信号線Selによって選択されているRAMは、RAM−リード/ライト回路40から書き込み信号が出力されることにより、データバス71−0〜71−31に出力されているポート情報が書き込まれる。
【0051】
例えば、CPU20は、ネットワーク11bのネットワークアドレス(92,*,*,*)をアドレスレジスタ30に書き込んだとする。アドレスレジスタ30は、CPU20によって書き込まれたネットワークアドレスをアドレスバス31に出力する。
【0052】
CPU20は、ネットワーク11bと接続されている出力ポート80aを示すポート情報をライトデータレジスタ50に書き込む。セレクタ回路70は、ライトデータレジスタ50に書き込まれたポート情報をデータバス71−0〜71−31に出力する。
【0053】
ネットワークアドレス(92,*,*,*)を32ビットの2進数表現にすると、上位31ビットから24ビットは、(0,1,0,1,1,1,0,0)で表される。23ビットから0ビットは、不定であるので、どのような値が出力されてもよい。
【0054】
これにより、信号線A<31>には、‘0’が出力される。信号線A<30>には、‘1’が出力される。信号線A<29>には、‘0’が出力される。信号線A<28>には、‘1’が出力される。信号線A<27>には、‘1’が出力される。信号線A<26>には、‘1’が出力される。信号線A<25>には、‘0’が出力される。信号線A<24>には、‘0’が出力される。信号線A<23:0>には、どのような値が出力されてもよい。
【0055】
ネットワークアドレス(92,*,*,*)は、2進数表現において、上位8ビットがネットワークアドレスを示し、下位24ビットは、不定である。従って、有効アドレス長は、8ビットであり、RAM−リード/ライト回路40は、信号線Sel<7>にセレクト信号を出力する。すなわち、この例では、ネットワークアドレスを指定するのに8本の信号線が必要であり、8本の信号線A<31:24>と接続されたRAM60−7が選択される。そして、信号線A<31:24>には、ネットワークアドレスの‘92’が出力されている。
【0056】
RAM−リード/ライト回路40から書き込み信号が出力されることによってRAM60−7は、ネットワークアドレス‘92’に対応するメモリアドレスに、データバス71−7に出力されているポート情報が書き込まれる。
【0057】
すなわち、ネットワークアドレス(92,*,*,*)に対応するメモリアドレスには、ネットワークアドレス(92,*,*,*)を持つネットワーク11bと接続された出力ポート80aを示すポート情報が格納される。
【0058】
以上の動作を繰り返して、ネットワーク11c〜11fのネットワークアドレスに対応した、RAM60−0〜60−31のメモリアドレスに、出力ポートを示すポート情報を格納していく。
【0059】
次に、最長一致するネットワークアドレスを検索してパケットを送信する動作について説明する。CPU20は、ネットワーク11a〜11f、又はその他のネットワークから送信されてくるパケットを受信する。CPU20は、パケットに付されるIPアドレスをアドレスレジスタ30に書き込む。
【0060】
アドレスレジスタ30は、書き込まれたIPアドレスをアドレスバス31に出力する。RAM60−0〜60−31は、信号線Rに読み出し信号が出力されたとき、各信号線Aに出力されているIPアドレスに応じたメモリアドレスに格納されている情報をデータバス70−0〜70−31に出力する。
【0061】
セレクタ回路70は、RAM60−0〜60−31から出力された情報の7ビット目を参照し、7ビット目が‘1’であるポート情報を選択する。セレクタ回路70は、選択したポート情報のうち、最も多くの信号線Aが接続されたRAMが出力したポート情報をさらに選択する。選択されたポート情報は、ネットワークアドレスが最も長いネットワークに接続された出力ポートを示す。セレクタ回路70は、選択したポート情報をデータバス22に出力する。
【0062】
CPU20は、セレクタ回路70から出力されるポート情報を参照して、パケットをポート出力80a〜80eに出力する。出力ポート80a〜80eは、接続先のネットワーク11a〜11fにパケットを送信する。
【0063】
例えば、CPU20が、IPアドレス(92,1,2,3)のパケットを受信したとする。CPU20は、IPアドレス(92,1,2,3)をアドレスレジスタ30に書き込む。アドレスレジスタ30は、IPアドレスをアドレスバス31に出力する。
【0064】
ところで、図2のネットワーク11bのネットワークアドレス(92,*,*,*)は、8ビットで示される。よって、8ビットの信号線と接続されたRAM60−7のメモリアドレス‘92’には、ネットワーク11bと接続された出力ポート80aを示すポート情報が格納されている。ネットワーク11cのネットワークアドレス(93,*,*,*)は、8ビットで示される。よって、8ビットの信号線と接続されたRAM60−7のメモリアドレス‘93’には、ネットワーク11cと接続された出力ポート80bを示すポート情報が格納されている。ネットワーク11dのネットワークアドレス(92,1,*,*)は、16ビットで示される。よって、16ビットの信号線と接続されたRAM60−15のメモリアドレス‘92,1’には、ネットワーク11dと接続された出力ポート80cを示すポート情報が格納されている。ネットワーク11eのネットワークアドレス(92,2,*,*)は、16ビットで示される。よって、16ビットの信号線と接続されたRAM60−15のメモリアドレス‘92,2’には、ネットワーク11eと接続された出力ポート80dを示すポート情報が格納されている。ネットワーク11fのネットワークアドレス(92,1,1,*)は、24ビットで示される。よって、24ビットの信号線と接続されたRAM60−23のメモリアドレス‘92,1,1’には、ネットワーク11fと接続された出力ポート80eを示すポート情報が格納されている。なお、その他のメモリアドレスには、初期化データが格納されている。
【0065】
従って、アドレスレジスタ30にIPアドレス(92,1,2,3)が書き込まれた場合、RAM60−7のメモリアドレス‘92’と、RAM60−15のメモリアドレス‘92,1’からポート情報が出力される。その他のRAMからは、初期化データが出力される。
【0066】
セレクタ回路70は、ポート情報の7ビット目の‘1’によって、ポート情報と初期化データを識別し、識別したポート情報のうち、最も多くの信号線が接続されたRAM60−15のポート情報を選択してデータバス22に出力する。
【0067】
CPU20は、セレクタ回路70から出力されたポート情報に従って、パケットを出力ポート80cに出力する。
このように、最長一致するネットワークアドレスと接続された出力ポートを、RAMの内部で、演算処理を行うことなく判定できるので、市販されている通常のメモリを使用した最長一致判定が可能となる。
【0068】
また、市販されている通常のメモリを使用することによって、コストを低減することができる。
なお、上記のルータ10aは、1チップの半導体装置によっても実現される。
【0069】
次に、図3に示す各レジスタ、回路の動作を詳細に説明する。
図4は、図3のアドレスレジスタと入出力される信号を示した図である。図4に示すように、アドレスレジスタ30は、アドレスバス21を介して、CPU20からアドレス信号が入力される。アドレスレジスタ30は、CPU20のメモリ空間に割り当てられており、CPU20のアドレス信号によってセレクトされる。
【0070】
アドレスレジスタ30は、データバス22を介して、CPU20からデータ信号が入力される。なお、アドレスレジスタ30に入力されるデータ信号は、32ビットのIPアドレスである。
【0071】
アドレスレジスタ30は、図3に示してないが、制御バスを介して、CPU20からライト信号が入力される。アドレスレジスタ30は、制御バスを介して、例えば、ルータ10aの内部で発生するシステムリセットSRが入力される。アドレスレジスタ30は、図3に示してないが、クロック線を介して、システムクロックSCが入力される。
【0072】
アドレスレジスタ30は、CPU20のアドレス信号によってセレクトされる。そして、アドレスレジスタ30は、CPU20からデータ信号、すなわちIPアドレスが入力される。このとき、アドレスレジスタ30は、CPU20からライト信号を受信すると、入力されたIPアドレスの値を保持して、アドレスバス31に出力する。
【0073】
図5は、アドレスレジスタのタイミングチャートを示す。アドレスレジスタ30は、図に示すシステムクロックSCに同期して動作する。アドレスレジスタ30は、CPU20からアドレス信号が入力される。アドレスレジスタ30は、CPU20からアドレス信号に遅れてデータ信号が入力される。図の例においては、データ信号は、アドレス信号より、システムクロックSCの1クロック分遅れてCPU20から出力されている。
【0074】
アドレスレジスタ30は、CPU20からデータ信号に遅れてライト信号が入力される。図の例においては、ライト信号は、データ信号より、システムクロックSCの1クロック分遅れてCPU20から出力されている。アドレスレジスタ30は、矢印Aで示すライト信号の立ち上がりで、入力されているデータ信号を保持し、データ信号をアドレスバス31に出力する。
【0075】
アドレスレジスタ30は、システムリセットSRが入力されると、保持していたデータ信号をリセットする(例えば‘0’にする)。
このように、アドレスレジスタ30は、CPU20のアドレス信号によってデコードされる。そして、アドレスレジスタ30は、CPU20からデータ信号、すなわちIPアドレスが入力される。アドレスレジスタ30は、このときCPU20からライト信号を受信すると、送られてきたIPアドレスの値を保持して、アドレスバス31に出力する。
【0076】
図6は、図3のRAM−リード/ライト回路と入出力される信号を示した図である。RAM−リード/ライト回路40は、アドレスバス21を介して、CPU20からアドレス信号が入力される。RAM−リード/ライト回路40は、CPU20のメモリ空間に割り当てられており、CPU20のアドレス信号によってセレクトされる。
【0077】
RAM−リード/ライト回路40は、データバス22を介して、CPU20から32ビットのデータ信号が入力される。データ信号には、所定のビット位置のビット信号で、RAM−リード/ライト回路40の動作を決定するコマンドが設定される。なお、コマンドについては、後述詳細する。
【0078】
RAM−リード/ライト回路40は、制御バスを介して、CPU20からライト信号が入力される。RAM−リード/ライト回路40は、制御バスを介して、例えば、ルータ10aの内部で発生するシステムリセットSRが入力される。RAM−リード/ライト回路40は、クロック線を介して、システムクロックSCが入力される。
【0079】
RAM−リード/ライト回路40は、CPU20のアドレス信号によってデコードされる。そして、RAM−リード/ライト回路40は、CPU20からデータ信号が入力される。このとき、RAM−リード/ライト回路40は、CPU20からライト信号を受信すると、入力されたデータ信号を保持して、コマンドに応じて、セレクト信号、クリア信号、読み出し信号、及び書き込み信号を出力する。
【0080】
図7は、RAM−リード/ライト回路のタイミングチャートを示す。RAM−リード/ライト回路40は、図に示すシステムクロックSCに同期して動作する。RAM−リード/ライト回路40は、CPU20からアドレス信号が入力される。RAM−リード/ライト回路40は、CPU20からアドレス信号に遅れてデータ信号が入力される。図の例においては、データ信号は、アドレス信号より、システムクロックSCの1クロック分遅れてCPU20から出力されている。
【0081】
RAM−リード/ライト回路40は、データ信号に遅れてライト信号が入力される。図の例においては、ライト信号は、データ信号より、システムクロックSCの1クロック分遅れてCPU20から出力されている。RAM−リード/ライト回路40は、ライト信号の立ち上がりで、データ信号を入力する。
【0082】
RAM−リード/ライト回路40は、ライト信号の立ち上がりから、矢印B1に示すコマンド解析期間の間に、入力したデータ信号のコマンドを解析する。RAM−リード/ライト回路40は、データ信号のコマンドに従って、セレクト信号、クリア信号、読み出し信号、及び書き込み信号を出力する。
【0083】
図8は、RAM−リード/ライト回路のコマンド一覧を示す図である。図のコマンド一覧90に示すように、RAM−リード/ライト回路40は、32ビットのデータ信号の0〜4ビットによって、ネットワークアドレスの有効アドレス長が設定される。データ信号の5ビットによって、RAM60−0〜60−31を全部選択するか否かが設定される。データ信号の6ビットによって、信号線Rに読み出し信号を出力するか、又は信号線Wに書き込み信号を出力するかが設定される。データ信号の7〜9ビットによって、信号線Rに出力する読み出し信号のサイクル数が設定される。データ信号の10〜11ビットによって、信号線Wに出力する書き込み信号の、図7に示す矢印B2のフェーズW0におけるサイクル数が設定される。データ信号の12〜13ビットによって、信号線Wに出力する書き込み信号の、図7に示す矢印B3のフェーズW1におけるサイクル数が設定される。データ信号の14〜15ビットによって、信号線Wに出力する書き込み信号の、図7に示す矢印B4のフェーズW2におけるサイクル数が設定される。
【0084】
RAM−リード/ライト回路40は、データ信号の0〜4ビットに設定された有効アドレス長に従って、セレクトバス41の信号線Selにセレクト信号を出力する。例えば、有効アドレス長(0,0,0,0,0)(2進表記)が設定された場合、RAM−リード/ライト回路40は、セレクトバス41の信号線Sel<0>にセレクト信号を出力する。有効アドレス長(0,0,0,0,1)が設定された場合、RAM−リード/ライト回路40は、セレクトバス41の信号線Sel<1>にセレクト信号を出力する。有効アドレス長(1,1,1,1,1)が設定された場合、RAM−リード/ライト回路40は、セレクトバス41の信号線Sel<31>にセレクト信号を出力する。
【0085】
RAM−リード/ライト回路40は、データ信号の5ビットに設定されるビット信号に従って、RAM60−0〜60−31を全部選択する。例えば、‘1’が設定された場合、RAM−リード/ライト回路40は、セレクトバス41の信号線S<31:0>にセレクト信号を出力する。
【0086】
RAM−リード/ライト回路40は、データ信号の6ビットに設定されるビット信号に従って、信号線Rに読み出し信号を出力し、又は信号線Wに書き込み信号を出力する。例えば、‘1’が設定された場合、RAM−リード/ライト回路40は、信号線Wに書き込み信号を出力する。
【0087】
RAM−リード/ライト回路40は、データ信号の10〜11ビットに設定されるサイクル数に従って、書き込み信号の、図6に示す矢印B2のフェーズW0におけるサイクル数を設定する。これにより、コマンド解析後からライト信号が立ち下がるまでの期間が設定される。
【0088】
RAM−リード/ライト回路40は、データ信号の12〜13ビットに設定されるサイクル数に従って、書き込み信号の、図6に示す矢印B3のフェーズW1におけるサイクル数を設定する。これにより、書き込み信号の立ち下がり期間が設定される。
【0089】
RAM−リード/ライト回路40は、データ信号の14〜15ビットに設定されるサイクル数に従って、書き込み信号の、図6に示す矢印B4のフェーズW2におけるサイクル数を設定する。これにより、RAM−リード/ライト回路40は、設定されたフェーズW2のサイクルを待って、CPU20からの新たなデータ信号の入力が可能となる。クリア信号は、セレクタ回路70の内部に保持されているデータをクリアするため、リード/ライト動作の前に、1サイクルアサートされる。
【0090】
図9は、RAM−リード/ライト回路のステートマシンを示す図である。図に示すように、状態C1では、RAM−リード/ライト回路40は、CPU20からのデータ信号の入力待ち状態となる(Idle状態)。RAM−リード/ライト回路40は、データ信号が入力されると、状態C2に遷移し、データ信号に含まれるコマンドを解釈する。
【0091】
コマンドが、セレクト信号の書き込みであれば、RAM−リード/ライト回路40は、状態C3に遷移し、フェーズW0の期間、書き込み信号の出力待機状態となる。フェーズW0の期間が経過すると、RAM−リード/ライト回路40は、状態C4に遷移し、フェーズW1の期間、書き込み信号を出力する状態となる。フェーズW1の期間が経過すると、RAM−リード/ライト回路40は、状態C5に遷移し、フェーズW2の期間、データ信号を受け付けない状態となる。フェーズW2の期間が経過すると、状態C1に遷移し、CPU20からのデータ信号の入力待ち状態となる(Idle状態)。
【0092】
コマンドが、ポート情報読み出しであれば、RAM−リード/ライト回路40は、状態C6に遷移し、読み出し信号をデータ信号のコマンドに従って、出力し続ける状態となる。その後、RAM−リード/ライト回路40は、状態C1に遷移し、CPU20からのデータ信号の入力待ち状態となる(Idle状態)。
【0093】
このように、RAM−リード/ライト回路40は、CPU20のアドレス信号によって選択され、IPアドレスであるデータ信号が入力される。そして、RAM−リード/ライト回路40は、データ信号に含まれるコマンドを解釈し、セレクト信号、読み出し信号、書き込み信号、及びクリア信号を出力する。
【0094】
図10は、図3のライトデータレジスタと入出力される信号を示した図である。図10に示すように、ライトデータレジスタ50は、アドレスバス21を介して、CPU20からアドレス信号が入力される。ライトデータレジスタ50は、CPU20のメモリ空間に割り当てられており、CPU20のアドレス信号によってセレクトされる。
【0095】
ライトデータレジスタ50は、データバス22を介して、CPU20からデータ信号が入力される。なお、ライトデータレジスタ50に送られてくるデータ信号は、8ビットのポート情報、又はRAM60−0〜60−31を初期化する初期化データである。
【0096】
ライトデータレジスタ50は、図3に示してないが、制御バスを介して、CPU20からライト信号が入力される。ライトデータレジスタ50は、制御バスを介して、例えば、ルータ10a内で発生するシステムリセットSRが入力される。ライトデータレジスタ50は、図3に示してないが、クロック線を介して、システムクロックSCが入力される。
【0097】
ライトデータレジスタ50は、CPU20のアドレス信号によってセレクトされる。そして、ライトデータレジスタ50は、CPU20からデータ信号、すなわちポート情報、又は初期化データが入力される。このとき、ライトデータレジスタ50は、CPU20からライト信号を受信すると、入力されたポート情報、又は初期化データの値を保持して、セレクタ回路70に出力する。
【0098】
図11は、ライトデータレジスタのタイミングチャートを示す。ライトデータレジスタ50は、図に示すシステムクロックSCに同期して動作する。ライトデータレジスタ50は、CPU20からアドレス信号が入力される。ライトデータレジスタ50は、CPU20からアドレス信号に遅れてデータ信号が入力される。図の例においては、データ信号は、アドレス信号より、システムクロックSCの1クロック分遅れてCPU20から出力されている。
【0099】
ライトデータレジスタ50は、データ信号に遅れてライト信号が入力される。図の例においては、ライト信号は、データ信号より、システムクロックSCの1クロック分遅れてCPU20から出力されている。ライトデータレジスタ50は、矢印Dで示すライト信号の立ち上がりで、入力されているデータ信号を保持し、データ信号をセレクタ回路70に出力する。
【0100】
ライトデータレジスタ50は、システムリセットSRが入力されると、保持していたデータ信号をリセットする(例えば‘0’にする)。
このように、ライトデータレジスタ50は、CPU20のアドレス信号によってデコードされる。そして、ライトデータレジスタ50は、CPU20からデータ信号、すなわちポート情報、又は初期化データが入力される。ライトデータレジスタ50は、このときCPU20からライト信号を受信すると、送られてきたポート情報、又は初期化データを保持して、セレクタ回路70に出力する。
【0101】
図12は、図3のセレクタ回路と入出力される信号を示した図である。図4に示すように、セレクタ回路70は、アドレスバス21を介して、CPU20からアドレス信号が入力される。セレクタ回路70は、CPU20のメモリ空間に割り当てられており、CPU20のアドレス信号によってセレクトされる。
【0102】
セレクタ回路70は、データバス22を介して、CPU20にデータ信号を出力する。なお、データ信号は、RAM60−0〜60−31から出力された8ビットのポート情報である。
【0103】
セレクタ回路70は、図3に示してないが、制御バスを介して、CPU20のリード信号が入力される。セレクタ回路70は、制御バスを介して、CPU20のシステムリセットSRが入力される。セレクタ回路70は、図3に示してないが、クロック線を介して、システムクロックSCが入力される。
【0104】
セレクタ回路70は、RAM−リード/ライト回路40からクリア信号が入力される。セレクタ回路70は、RAM−リード/ライト回路40からセレクト信号が入力される。セレクタ回路70は、RAM−リード/ライト回路40から読み出し信号、書き込み信号が入力される。セレクタ回路70は、ポート情報、又は初期化データをRAM60−0〜60−31に出力し、又はRAM60−0〜60−31が格納するポート情報が入力される。セレクタ回路70は、ライトデータレジスタ50が出力するポート情報、又は初期化データが入力される。
【0105】
図13は、セレクタ回路の回路ブロック図である。図に示すようにセレクタ回路70は、アドレスデコーダ70a、データ選択回路70b、一致データ選択回路70c、及び一致データ読み出しレジスタ70dを有している。セレクタ回路70は、システムクロックSCに同期して動作する。
【0106】
アドレスデコーダ70aは、CPU20からデコードされたアドレス信号が入力される。アドレスデコーダ70aは、アドレス信号が入力されると一致データ読み出しレジスタ70dをセレクトする。
【0107】
データ選択回路70bは、信号線Wと接続されている。データ選択回路70bは、データバス51と接続されている。データ選択回路70bは、信号線Sel<31:0>と接続されている。データ選択回路70bは、信号線Wから書き込み信号が入力されると、データバス51を介して入力されたポート情報、又は初期化データを、データバス71−0〜71−31のうち、セレクト信号が選択しているRAMと接続されたデータバス71−0〜71−31に出力する。
【0108】
一致データ選択回路70cは、データバス71−0〜71−31と接続されている。一致データ選択回路70cは、信号線Rと接続されている。一致データ選択回路70cは、信号線Sel<31:0>と接続されている。一致データ選択回路70cは、信号線Rから読み出し信号が入力されると、RAM60−0〜60−31がデータバス71−0〜71−31に出力しているポート情報を入力する。一致データ選択回路70cは、入力したポート情報の7ビット目を参照し、7ビット目が‘1’であるポート情報を選択する。そして、そのポート情報のうち、最も多くの信号線Aと接続されたRAMが出力したポート情報を選択して、一致データ読み出しレジスタ70dに出力する。
【0109】
一致データ読み出しレジスタ70dは、一致データ選択回路70cから出力されたポート情報を保持する。一致データ読み出しレジスタ70dは、アドレスデコーダ70aによってセレクトされ、CPU20からリード信号を受信すると、保持しているポート情報(データ信号)をデータバス22に出力する。一致データ読み出しレジスタ70dは、信号線Clrと接続され、クリア信号を受信すると、保持していたポート情報をクリアする(例えば‘0’にする)。
【0110】
以下、セレクタ回路70の動作について説明する。
まず、RAM60−0〜60−31を初期化するときの動作について説明する。データ選択回路70bは、データバス51から初期化データが入力される。また、初期化するRAM60−0〜60−31を選択するセレクト信号が、信号線Sel<31:0>を介して入力される。データ選択回路70bは、信号線Wから書き込み信号を受けると、初期化データをセレクト信号によって選択されるRAMと接続されたデータバス71−0〜71〜31に出力する。
【0111】
このように、セレクタ回路70は、初期化データ、セレクト信号が入力される。そして、書き込み信号が入力されたとき、セレクト信号によって選択されるRAMと接続されたデータバス71−0〜71−31に初期化データを出力し、RAM60−0〜60−31を初期化する。
【0112】
次に、RAM60−0〜60−31にポート情報を設定するときの動作について説明する。データ選択回路70bは、データバス51を介して、RAMに設定するポート情報が入力される。また、ポート情報を設定するRAM60−0〜60−31を選択するセレクト信号が、信号線Sel<31:0>を介して入力される。データ選択回路70bは、信号線Wから書き込み信号を受けると、ポート情報をセレクト信号によって選択されるRAMと接続されたデータバス71−0〜71−31に出力する。
【0113】
このように、セレクタ回路70は、RAMに格納すべきポート情報が入力される。そして、書き込み信号が入力されたとき、セレクト信号によって選択されるRAMと接続されたデータバス71−0〜71−31にポート情報を出力し、RAM60−0〜60−31にポート情報を書き込む。
【0114】
次に、RAM60−0〜60−31からポート情報が出力されたときの動作について説明する。一致データ選択回路70cは、読み出し信号が入力されたとき、RAM60−0〜60−31から出力されているポート情報を入力する。一致データ選択回路70cは、RAM60−0〜60−31から出力されるポート情報の7ビット目を参照し、7ビット目が‘1’であるポート情報を選択する。そして、そのポート情報のうち、最も多くの信号線Aと接続されたRAMが出力したポート情報を選択して、一致データ読み出しレジスタ70dに出力する。
【0115】
一致データ読み出しレジスタ70dは、一致データ選択回路70cから出力されたポート情報を保持する。一致データ読み出しレジスタ70dは、アドレスデコーダ70aによってデコードされ、CPU20からリード信号を受信すると、保持しているポート情報をデータバス22に出力する。
【0116】
このように、セレクタ回路70は、RAM60−0〜60−31から出力されるポート情報を入力する。そして、各々のポート情報の7ビット目を参照して、最も多くの信号線A<31:0>と接続されたRAM60−0〜60−31が出力するポート情報を選択し、データバス22に出力する。
【0117】
次に、本発明の第2の実施の形態について説明する。
図14は、第2の実施の形態に係るルータの回路ブロック図を示す。図に示すルータ100は、CPU110、デコーダ120、RAM130−0〜130−31、セレクタ回路140、及び出力ポート150a〜150eを有している。
【0118】
CPU110は、64ビットのアドレスバス111、32ビットのデータバス112、及び制御バス113と接続されている。CPU110は、図2で示したネットワーク11a〜11f、又は他のネットワークから送信されてくるパケットのIPアドレスをアドレスバス111の下位32ビットに出力する。CPU110は、RAM130−0〜130−31を選択するためのセレクト信号をアドレスバス111の上位32ビットに出力する。CPU110は、制御バス113に書き込み信号、読み出し信号を出力する。また、接続先のネットワークのネットワークアドレスに対応した、RAM130−0〜130−31のアドレスに出力ポートのポート情報を書き込む。また、CPU110は、初期化すべきRAM60−0〜60−31に初期化データ、例えば‘0’を書き込む。
【0119】
デコーダ120は、アドレスバス111の上位32ビットと接続されている。デコーダ120は、CPU110から出力されたセレクト信号を保持して、32ビットのセレクトバス121に出力する。第1の実施の形態と同様に32ビットのセレクトバス121の信号線を信号線Sel<31:0>で示す。
【0120】
RAM130−0〜130−31は、アドレスバス111の下位32ビットにおける、上位ビットから順に下位ビットの信号線Aが1本ずつ追加されて接続されている。第1の実施の形態と同様に32ビットのアドレスバス111の信号線を信号線A<31:0>で示す。RAM130−0は、信号線A<31>が接続されている。RAM130−1は、信号線A<31:30>が接続されている。RAM130−2は、信号線A<31:29>が接続されている。以下、アドレスバス111の下位のビットの信号線Aが1本ずつ追加されて接続され、RAM130−31には、信号線A<31:0>が接続されている。なお、信号線A<31:0>は、IPアドレスを構成するビットに対応している。
【0121】
また、RAM130−0〜130−31は、セレクトバス121の下位ビットから順に上位の信号線Selが接続されている。RAM130−0は、信号線Sel<0>と接続されている。RAM130−1は、信号線Sel<1>と接続されている。RAM130−2は、信号線Sel<2>と接続されている。以下同様に、セレクトバス121の上位のビットの信号線が順に接続され、RAM130−31には、信号線Sel<31>が接続されている。また、RAM130−0〜130−31には、制御バス113の信号線R,Wが接続されている。
【0122】
セレクタ回路140は、8ビットのデータバス140−0〜140−31を介してRAM130−0〜130−31と接続されている。データバス140−0〜140−31の信号線を第1の実施の形態と同様にD0<7:0>〜D31<7:0>で示す。セレクタ回路140は、制御バス113の信号線R,Wと接続されている。また、セレクタ回路140は、データバス112と接続されている。
【0123】
セレクタ回路140は、RAM130−0〜130−31から出力されるポート情報のうち、最も多くの信号線が接続されたRAMのポート情報を選択して、データバス112に出力する。また、セレクタ回路140は、CPU110からRAM130−0〜130−31に設定すべきポート情報、又は初期化データが入力され、そのポート情報、又は初期化データをデータバス140−0〜140−31に出力する。
【0124】
出力ポート150aは、図2におけるネットワーク11bと接続されている。出力ポート150bは、ネットワーク11cと接続されている。出力ポート150cは、ネットワーク11dと接続されている。出力ポート150dは、ネットワーク11eと接続されている。出力ポート150eは、ネットワーク11fと接続されている。出力ポート150a〜150eは、CPU110から送られてくるパケットを接続先のネットワーク11b〜11fに出力する。
【0125】
以下、図14のルータ100の動作について説明する。
まず、RAM130−0〜130−31を初期化する動作について説明する。CPU110は、初期化対象のネットワークアドレスをアドレスバス111の下位32ビットに出力する。CPU110は、アドレスバス111の上位32ビットに、初期化対象のネットワークアドレスのビット数と同数の信号線が接続されたRAM130−0〜130−31を選択するセレクト信号を出力する。アドレスバス111の上位32ビットに出力されたセレクト信号は、デコーダ120に入力され、デコーダ120は、セレクト信号を保持して信号線Sel<31:0>に出力する。
【0126】
CPU110は、データバス112に初期化データ、例えば、2進8ビットの‘0’を出力する。CPU110は、制御バス113に書き込み信号を出力する。
【0127】
セレクタ回路140は、制御バス113の信号線Wを介して、書き込み信号が入力されると、データバス112に出力されている初期化データをデータバス140−0〜140−31に出力する。
【0128】
セレクト信号で選択されているRAM130−0〜130−31は、制御バス113の信号線Wを介して書き込み信号が入力されると、データバス140−0〜140−31に出力されている初期化データを格納する。
【0129】
このようにして、RAM130−0〜130−31は、初期化データに初期化される。
なお、ポート情報と識別されるように、出力ポート150a〜150eと接続されているネットワークのネットワークアドレスに対応するメモリアドレス以外のアドレスには、初期化データを格納するようにする。
【0130】
次に、ネットワークアドレスに対応する、RAM130−0〜130−31のメモリアドレスにポート情報を設定する動作について説明する。CPU110は、出力ポート150a〜150eの接続先ネットワーク11b〜11fのネットワークアドレスをアドレスバス111の下位32ビットに出力する。CPU110は、アドレスバス111の下位32ビットに出力したネットワークアドレスのビット数と同数の信号線Aと接続されたRAM130−0〜130−31を選択するためのセレクト信号をアドレスバス111の上位32ビットに出力する。デコーダ120は、CPU110から出力されたセレクト信号を保持して、セレクトバス121に出力する。
【0131】
CPU110は、データバス112にポート情報を書き込む。データバス112には、アドレスバス111の下位32ビットに出力されたネットワークアドレスを持つネットワーク11b〜11fと接続された出力ポート150a〜150eを示すポート情報が出力される。なお、ポート情報の7ビット目には、自ポート情報が有効であることを示す‘1’が設定される。また、ポート情報の6〜0ビットで、パケットを出力すべき出力ポートのポート情報が設定される。
【0132】
セレクタ回路140は、CPU110から出力されたポート情報をデータバス140−0〜140−31に出力する。
CPU110から書き込み信号が信号線Wに出力されると、セレクト信号で選択されているRAM130−0〜130−31は、データバス140−0〜140−31に出力されているポート情報を格納する。
【0133】
このようにして、出力ポート150a〜150eの先に接続されたネットワークのネットワークアドレスに対応するメモリアドレスに、出力ポート150a〜150eを示すポート情報が格納される。
【0134】
次に、最長一致するネットワークアドレスを検索してパケットを送信する動作について説明する。CPU110は、ネットワークから送信されてくるパケットを受信する。CPU110は、パケットに含まれるIPアドレスをアドレスバス111の下位32ビットに出力する。
【0135】
RAM130−0〜130−31は、信号線Rに読み出し信号が出力されたとき、各信号線Aに出力されているIPアドレスに応じたメモリアドレスに格納されている情報をデータバス140−0〜140−31に出力する。
【0136】
セレクタ回路140は、RAM130−0〜130−31からデータバス140−0〜140−31に出力される情報の7ビット目を参照し、7ビット目が‘1’であるポート情報を選択する。セレクタ回路140は、選択したポート情報のうち、最も多くの信号線Aが接続されたRAMのポート情報を選択する。すなわち、IPアドレスに最長一致するネットワークアドレスを持つネットワークと接続された出力ポートを示すポート情報が選択される。セレクタ回路140は、選択したポート情報をデータバス112に出力する。
【0137】
CPU110は、セレクタ回路140から出力されるポート情報を参照して、パケットを出力ポート150a〜150eに出力する。出力ポート150a〜150eは、接続先のネットワークにパケットを送信する。
【0138】
このように、最長一致するネットワークアドレスと接続された出力ポートを、RAMの内部で、演算処理を行うことなく判定できるので、市販されている通常のメモリを使用した最長一致判定が可能となる。
【0139】
また、市販されている通常のメモリを使用することによって、コストを低減することができる。
また、64ビットあるアドレス空間のうち、下位32ビットをIPアドレスに最長一致するネットワークアドレスの検索に使用し、上位32ビットをRAM130−0〜130−31の選択に使用することによって、アドレスを保持するためのアドレスレジスタや、データを保持するためのデータレジスタが不要となり部品を低減することができる。
【0140】
なお、上記のルータ100は、1チップの半導体装置によっても実現される。
次に、CPU110のアドレス空間について説明する。
図15は、CPUのアドレス空間を示す図である。なお、以下では、アドレスを16進数で表記する。CPU110は、64ビットのアドレス空間を持つ。CPU110は、アドレスバス111と接続され、そのアドレスバス111の下位32ビットは、RAM130−0〜130−31と接続されている。従って、図15のアドレス空間160に示すように、CPU110のアドレス空間0_00000000から0_ffffffffは、IPアドレスに対応するネットワークアドレスを検索するためのメモリ空間となる。
【0141】
CPU110の上位32ビットは、デコーダ120と接続されている。CPU110は、上位32ビットを使用して、RAM130−0〜130−31を選択する。従って、図15のアドレス空間160に示すように、CPU110のアドレス空間1_00000000から1_ffffffffは、RAM130−31の選択に使用される。以下同様にして、CPU110の上位32ビットは、RAM130−0〜130−30の選択に使用される。
【0142】
なお、RAM130−31は、信号線A<31:0>と接続され、アドレス空間幅は、2の32乗である。RAM130−30は、信号線A<31:1>と接続され、アドレス空間幅は、2の31乗である。順に、RAM130−0まで、信号線Aの本数は順に減少し、RAM130−0のアドレス空間幅は、2の1乗となる。
【0143】
このように、IPアドレスより大きいアドレス空間を持つCPUを使用することによって、IPアドレスのアドレス空間より大きいアドレス空間で、RAMを選択することができ、アドレスレジスタや、データを保持するためのデータレジスタが不要となり、ルータ100を構成する部品を低減することができる。
【0144】
次にセレクタ回路140の詳細について説明する。
図16は、セレクタ回路の回路ブロック図である。図に示すようにセレクタ回路140は、データ選択回路140a、一致データ選択回路140b、及び一致データ読み出しレジスタ140cを有している。セレクタ回路140は、システムクロックSCが入力され、システムクロックSCに同期して動作する。
【0145】
データ選択回路140aは、信号線Wと接続されている。データ選択回路140aは、データバス112と接続されている。データ選択回路140aは、信号線Sel<31:0>と接続されている。データ選択回路140aは、信号線Wから書き込み信号が入力されると、データバス112から入力されるポート情報、又は初期化データを、データバス140−0〜140−31のうち、セレクト信号が選択しているRAMと接続されたデータバス140−0〜140−31に出力する。
【0146】
一致データ選択回路140bは、データバス140−0〜140−31と接続されている。一致データ選択回路140bは、信号線Rと接続されている。一致データ選択回路140bは、信号線Sel<31:0>と接続されている。一致データ選択回路140bは、信号線Rから読み出し信号が入力されると、RAM130−0〜130−31がデータバス140−0〜140−31に出力しているポート情報を入力する。一致データ選択回路140bは、入力したポート情報の7ビット目を参照し、7ビット目が‘1’であるポート情報を選択する。そして、そのポート情報のうち、最も多くの信号線Aと接続されたRAMが出力したポート情報を選択して、一致データ読み出しレジスタ140cに出力する。
【0147】
一致データ読み出しレジスタ140cは、一致データ選択回路140bから出力されたポート情報を保持する。一致データ読み出しレジスタ140cは、読み出し信号を受信すると、保持しているポート情報(データ信号)をデータバス22に出力する。
【0148】
以下、セレクタ回路140の動作について説明する。
まず、RAM130−0〜130−31を初期化するときの動作について説明する。データ選択回路140aは、データバス112から初期化データが入力される。また、初期化するRAM130−0〜130−31を選択するセレクト信号が、信号線Sel<31:0>を介して入力される。データ選択回路140aは、信号線Wから書き込み信号を受けると、初期化データをセレクト信号によって選択されるRAMと接続されたデータバス140−0〜140〜31に出力する。
【0149】
このように、セレクタ回路140は、初期化データ、セレクト信号が入力される。そして、書き込み信号が入力されたとき、セレクト信号によって選択されるRAMと接続されたデータバス140−0〜140−31に初期化データを出力し、RAM130−0〜130−31を初期化する。
【0150】
次に、RAM130−0〜130−31にポート情報を設定するときの動作について説明する。データ選択回路140aは、データバス112を介して、RAMに設定するポート情報が入力される。また、ポート情報を設定するRAM130−0〜130−31を選択するセレクト信号が、信号線Sel<31:0>を介して入力される。データ選択回路140aは、信号線Wから書き込み信号を受けると、ポート情報をセレクト信号によって選択されたRAMと接続されたデータバス140−0〜140〜31に出力する。
【0151】
このように、セレクタ回路140は、RAMに格納すべきポート情報が入力される。そして、書き込み信号が入力されたとき、セレクト信号によって選択されるRAMと接続されたデータバス140−0〜140−31にポート情報を出力し、RAM130−0〜130−31にポート情報を書き込む。
【0152】
次に、RAM130−0〜130−31からポート情報が出力されたときの動作について説明する。一致データ選択回路140bは、読み出し信号が入力されたとき、RAM130−0〜130−31から出力されているポート情報を入力する。一致データ選択回路140bは、RAM130−0〜130−31から出力されるポート情報の7ビット目を参照し、7ビット目が‘1’であるポート情報を選択する。そして、そのポート情報のうち、最も多くの信号線Aと接続されたRAMが出力したポート情報を選択して、一致データ読み出しレジスタ140cに出力する。
【0153】
一致データ読み出しレジスタ140cは、一致データ選択回路140bから出力されたポート情報を保持する。一致データ読み出しレジスタ140cは、信号線Rから読み出し信号を受信すると、保持しているポート情報をデータバス112に出力する。
【0154】
このように、セレクタ回路140は、RAM130−0〜130−31から出力されるポート情報を入力する。そして、各々のポート情報の7ビット目を参照して、最も多くの信号線A<31:0>と接続されたRAM130−0〜130−31が出力するポート情報を選択し、データバス112に出力する。
【0155】
(付記1) データの出力ポートを判定する出力ポート判定装置において、
ネットワークに接続される複数の出力ポートと、
接続先ノードを一意に特定するノードアドレスを構成するビットに対応した信号線を有するアドレスバスと、
前記ネットワークのネットワークアドレスのビット数と同数の前記信号線が接続され、前記ネットワークアドレスに対応したメモリアドレスに、データを出力すべき前記出力ポートを示すポート情報が格納された複数の記憶装置と、
前記ノードアドレスを前記アドレスバスに出力するアドレスレジスタと、
前記ノードアドレスに応じて前記複数の記憶装置から出力される前記ポート情報のうち、最も多くの前記信号線が接続された前記記憶装置の前記ポート情報を選択して出力する選択回路と、
を有することを特徴とする出力ポート判定装置。
【0156】
(付記2) 前記複数の記憶装置は、前記アドレスバスの上位ビットから下位ビットの前記信号線が順に追加されて接続されることを特徴とする付記1記載の出力ポート判定装置。
【0157】
(付記3) 前記ポート情報に基づいて、前記ネットワークに出力するデータを前記出力ポートに出力する制御回路を有することを特徴とする付記1記載の出力ポート判定装置。
【0158】
(付記4) 前記記憶装置の前記ネットワークアドレスに対応するメモリアドレス以外のアドレスには、前記ポート情報と識別されるための初期化情報が格納されていることを特徴とする付記1記載の出力ポート判定装置。
【0159】
(付記5) 前記ポート情報は、自情報がポート情報であることを識別される識別情報を有することを特徴とする付記1記載の出力ポート判定装置。
(付記6) 前記選択回路は、前記識別情報によって前記ポート情報を識別し、最も多くの前記信号線が接続された前記記憶装置の前記ポート情報を選択することを特徴とする付記5記載の出力ポート判定装置。
【0160】
(付記7) 前記記憶装置を指定する指定回路と、
前記指定された記憶装置の前記ネットワークアドレスに対応するメモリアドレスに前記ポート情報を書き込む書き込み回路と、
を有することを特徴とする付記1記載の出力ポート判定装置。
【0161】
(付記8) 前記書き込み回路は、前記記憶装置の前記ネットワークアドレスに対応するメモリアドレス以外のアドレスに前記ポート情報と識別されるための初期化情報を格納することを特徴とする付記7記載の出力ポート判定装置。
【0162】
(付記9) 前記ノードアドレスのノードアドレス空間以上のアドレス空間を有し、前記ノードアドレス空間以上のアドレス空間で前記ネットワークアドレスのビット数と同数の信号線が接続された前記記憶装置を指定し、前記ノードアドレス空間内で前記記憶装置の前記ネットワークアドレスに対応するメモリアドレスを指定する中央演算処理装置を有することを特徴とする付記1記載の出力ポート判定装置。
【0163】
(付記10) 前記中央演算処理装置は、前記記憶装置の前記ネットワークアドレスに対応するメモリアドレスに前記ポート情報を書き込むことを特徴とする付記9記載の出力ポート判定装置。
【0164】
(付記11) 前記中央演算処理装置は、前記記憶装置の前記ネットワークアドレスに対応するメモリアドレス以外のアドレスに前記ポート情報と識別されるための初期化情報を書き込むことを特徴とする付記9記載の出力ポート判定装置。
【0165】
(付記12) データの出力ポートを判定する半導体装置において、
ネットワークに接続される複数の出力ポートと、
接続先ノードを一意に特定するノードアドレスを構成するビットに対応した信号線を有するアドレスバスと、
前記ネットワークのネットワークアドレスのビット数と同数の前記信号線が接続され、前記ネットワークアドレスに対応したメモリアドレスに、データを出力すべき前記出力ポートを示すポート情報が格納された複数の記憶装置と、
前記ノードアドレスを前記アドレスバスに出力するアドレスレジスタと、
前記ノードアドレスに応じて前記複数の記憶装置から出力される前記ポート情報のうち、最も多くの前記信号線が接続された前記記憶装置の前記ポート情報を選択して出力する選択回路と、
を有することを特徴とする半導体装置。
【0166】
(付記13) データの出力ポートを判定する出力ポート判定方法において、接続先ノードを一意に特定するノードアドレスを接続先のネットワークから受信し、
前記ノードアドレスを構成するビットに対応した信号線を有するアドレスバスに、前記ノードアドレスを出力し、
前記ネットワークのネットワークアドレスのビット数と同数の前記信号線が接続され、前記ネットワークアドレスに対応したメモリアドレスに、データを出力すべき前記出力ポートを示すポート情報が格納された複数の記憶装置の前記ノードアドレスに応じて出力される前記ポート情報のうち、最も多くの前記信号線が接続された前記記憶装置の前記ポート情報を選択して出力する、
ことを特徴とする出力ポート判定方法。
【0167】
【発明の効果】
以上説明したように本発明では、複数の記憶装置に対し、出力ポートの先に接続されたネットワークのネットワークアドレスに対応するメモリアドレスに、出力ポートのポート情報を格納した。さらに、各記憶装置には、格納されたポート情報の出力ポートに対応するネットワークアドレスのビット数と同数のアドレスバスの信号線を接続した。そして、アドレスバスにノードアドレスを出力したときに各記憶装置から出力されるポート情報のうち最も多くの信号線が接続された記憶装置のポート情報を選択するようにした。記憶装置に接続された信号線の本数は、ネットワークアドレスのビット数に一致するため、出力されるポート情報のうち、最も多くの本数の信号線が接続された記憶装置から出力されたポート情報が、ネットワークアドレスが最も長いネットワークに接続された出力ポートを示すこととなる。この結果、記憶装置内部で演算を行う必要がなくなり、簡単なハードウェア構成による最長一致判定が可能となる。
【図面の簡単な説明】
【図1】本発明の原理を説明する原理図である。
【図2】第1の実施の形態に係るルータをネットワーク同士の相互接続に適用したときの図である。
【図3】第1の実施の形態に係るルータの回路ブロック図を示す。
【図4】図3のアドレスレジスタと入出力される信号を示した図である。
【図5】アドレスレジスタのタイミングチャートを示す。
【図6】図3のRAM−リード/ライト回路と入出力される信号を示した図である。
【図7】RAM−リード/ライト回路のタイミングチャートを示す。
【図8】RAM−リード/ライト回路のコマンド一覧を示す図である。
【図9】RAM−リード/ライト回路のステートマシンを示す図である。
【図10】図3のライトデータレジスタと入出力される信号を示した図である。
【図11】ライトデータレジスタのタイミングチャートを示す。
【図12】図3のセレクタ回路と入出力される信号を示した図である。
【図13】セレクタ回路の回路ブロック図である。
【図14】第2の実施の形態に係るルータの回路ブロック図を示す。
【図15】CPUのアドレス空間を示す図である。
【図16】セレクタ回路の回路ブロック図である。
【符号の説明】
1 出力ポート判定装置
2 制御回路
2a,2aa,21,31,111 アドレスバス
2b,22,51,112 データバス
3a〜3n,80a〜80e,150a〜150e 出力ポート
4a〜4m 記憶装置
5,30 アドレスレジスタ
6 選択回路
7a〜7n,11a〜11f ネットワーク
10a〜10f,100 ルータ
40 RAM−リード/ライト回路
41,121 セレクトバス
50 ライトデータレジスタ
70,140 セレクタ回路
70a アドレスデコーダ
70b,140a データ選択回路
70c,140b 一致データ選択回路
70d,140c 一致データ読み出しレジスタ
113 制御バス
120 デコーダ

Claims (10)

  1. データの出力ポートを判定する出力ポート判定装置において、
    ネットワークに接続される複数の出力ポートと、
    接続先ノードを一意に特定するノードアドレスを構成するビットに対応した信号線を有するアドレスバスと、
    前記ネットワークのネットワークアドレスのビット数と同数の前記信号線が接続され、前記ネットワークアドレスに対応したメモリアドレスに、データを出力すべき前記出力ポートを示すポート情報が格納された複数の記憶装置と、
    前記ノードアドレスを前記アドレスバスに出力するアドレスレジスタと、
    前記ノードアドレスに応じて前記複数の記憶装置から出力される前記ポート情報のうち、最も多くの前記信号線が接続された前記記憶装置の前記ポート情報を選択して出力する選択回路と、
    を有することを特徴とする出力ポート判定装置。
  2. 前記複数の記憶装置は、前記アドレスバスの上位ビットから下位ビットの前記信号線が順に追加されて接続されることを特徴とする請求項1記載の出力ポート判定装置。
  3. 前記記憶装置の前記ネットワークアドレスに対応するメモリアドレス以外のアドレスには、前記ポート情報と識別されるための初期化情報が格納されていることを特徴とする請求項1記載の出力ポート判定装置。
  4. 前記ポート情報は、自情報がポート情報であることを識別される識別情報を有することを特徴とする請求項1記載の出力ポート判定装置。
  5. 前記選択回路は、前記識別情報によって前記ポート情報を識別し、最も多くの前記信号線が接続された前記記憶装置の前記ポート情報を選択することを特徴とする請求項4記載の出力ポート判定装置。
  6. 前記記憶装置を指定する指定回路と、
    前記指定された記憶装置の前記ネットワークアドレスに対応するメモリアドレスに前記ポート情報を書き込む書き込み回路と、
    を有することを特徴とする請求項1記載の出力ポート判定装置。
  7. 前記書き込み回路は、前記記憶装置の前記ネットワークアドレスに対応するメモリアドレス以外のアドレスに前記ポート情報と識別されるための初期化情報を格納することを特徴とする請求項6記載の出力ポート判定装置。
  8. 前記ノードアドレスのノードアドレス空間以上のアドレス空間を有し、前記ノードアドレス空間以上のアドレス空間で前記ネットワークアドレスのビット数と同数の信号線が接続された前記記憶装置を指定し、前記ノードアドレス空間内で前記記憶装置の前記ネットワークアドレスに対応するメモリアドレスを指定する中央演算処理装置を有することを特徴とする請求項1記載の出力ポート判定装置。
  9. 前記中央演算処理装置は、前記記憶装置の前記ネットワークアドレスに対応するメモリアドレスに前記ポート情報を書き込むことを特徴とする請求項8記載の出力ポート判定装置。
  10. 前記中央演算処理装置は、前記記憶装置の前記ネットワークアドレスに対応するメモリアドレス以外のアドレスに前記ポート情報と識別されるための初期化情報を書き込むことを特徴とする請求項8記載の出力ポート判定装置。
JP2002243148A 2002-08-23 2002-08-23 出力ポート判定装置 Expired - Fee Related JP3850773B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002243148A JP3850773B2 (ja) 2002-08-23 2002-08-23 出力ポート判定装置
US10/404,154 US7464200B2 (en) 2002-08-23 2003-04-02 Output port determining apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002243148A JP3850773B2 (ja) 2002-08-23 2002-08-23 出力ポート判定装置

Publications (2)

Publication Number Publication Date
JP2004088202A JP2004088202A (ja) 2004-03-18
JP3850773B2 true JP3850773B2 (ja) 2006-11-29

Family

ID=31884605

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002243148A Expired - Fee Related JP3850773B2 (ja) 2002-08-23 2002-08-23 出力ポート判定装置

Country Status (2)

Country Link
US (1) US7464200B2 (ja)
JP (1) JP3850773B2 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5150464A (en) * 1990-06-06 1992-09-22 Apple Computer, Inc. Local area network device startup process
EP0537408B1 (en) * 1991-10-14 1997-08-06 International Business Machines Corporation Routing in a network of bridge-connected LAN segments
US5457679A (en) * 1993-12-08 1995-10-10 At&T Corp. Channel sharing and memory sharing in a packet switching system
US5761440A (en) * 1994-09-15 1998-06-02 International Business Machines Corporation System and method utilizing multiple search trees to route data within a data processing network
JP2770782B2 (ja) * 1995-05-31 1998-07-02 日本電気株式会社 Lan間接続装置
US6496510B1 (en) * 1997-11-14 2002-12-17 Hitachi, Ltd. Scalable cluster-type router device and configuring method thereof
JP3166700B2 (ja) 1998-03-12 2001-05-14 日本電気株式会社 ルータ及び最長一致検索装置
US6308220B1 (en) * 1999-01-29 2001-10-23 Neomagic Corp. Circulating parallel-search engine with random inputs for network routing table stored in a wide embedded DRAM

Also Published As

Publication number Publication date
US20040039853A1 (en) 2004-02-26
US7464200B2 (en) 2008-12-09
JP2004088202A (ja) 2004-03-18

Similar Documents

Publication Publication Date Title
US6654823B2 (en) Packet-data processing apparatus
US5917821A (en) Look-up engine for packet-based network
US7916632B1 (en) Systems and methods for handling packet fragmentation
US8874767B2 (en) Enqueuing received network packets based, at least in part, on at least one programmable mask
US7680116B1 (en) Optimized buffer loading for packet header processing
US7782857B2 (en) Logical separation and accessing of descriptor memories
US6732227B1 (en) Network translation circuit and method using a segmentable content addressable memory
US7089407B2 (en) Packet processing device processing input packet data in a packet routing device
JP2003308262A (ja) ハードウェアプロトコルプロセシングロジックで実現されたインタネット通信プロトコル装置、及びその装置を用いたデータ並列処理方法
WO1996034479A1 (en) Packet switching engine
JP2001251349A (ja) パケットプロセッサ
CA2265302C (en) High-speed flexible longest match retrieval
US7937495B2 (en) System and method for modifying data transferred from a source to a destination
US6279097B1 (en) Method and apparatus for adaptive address lookup table generator for networking application
JPH10171750A (ja) メモリ間データ転送システム
US7239630B1 (en) Dedicated processing resources for packet header generation
US6112294A (en) Concurrent execution of multiple instructions in cyclic counter based logic component operation stages
US7158520B1 (en) Mailbox registers for synchronizing header processing execution
JP3850773B2 (ja) 出力ポート判定装置
JP2003092591A (ja) パケット処理プロセッサ及びパケット処理プロセッサシステム
US20040030814A1 (en) Reflective mirror for lithographic exposure and production method
JP3233353B2 (ja) ヘッダ処理装置とそのヘッダ処理方法
JPH10255485A (ja) 連想メモリおよびネットワークフレーム中継器
US20010007559A1 (en) Interleaved processing system for processing frames within a network router
JP2014209764A (ja) オンチップルータ及びそれを用いたマルチコアシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060821

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060830

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20090908

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20090908

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100908

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100908

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110908

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110908

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20110908

Year of fee payment: 5

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20110908

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120908

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120908

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130908

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees