(57)【要約】【課題】ＣＡＭのように入力されたサーチキーに一致するデータ列が格納された記憶領域を検索結果として出力する記憶媒体を利用して検索結果に応じた処理を実行する場合に、適切な処理をより迅速に開始することを可能にする記憶媒体制御装置、記憶媒体制御方法および記憶媒体制御プログラムを得ること。【解決手段】パケット情報記憶処理部２３２は、送信の対象となるパケットに記述されたＩＰアドレスをＣＡＭである第１のデータ記憶部２１２の複数のセルに、問い合わせた物理アドレスを第２のデータ記憶部２１３に記憶させ、第１のデータ記憶部２１２の複数のセルのそれぞれを第２のデータ記憶部２１３の物理アドレスに対応付けておく。物理アドレス取得処理部２３１は、新たに送信の対象となるＩＰアドレスを第１のデータ記憶部２１２で検索し、対応する物理アドレスを第２のデータ記憶部２１３から取得する。【選択図】図２
2007034732.tif 000002
【特許請求の範囲】
【請求項１】
検索の対象とすべきデータ列を、所定の記憶媒体の異なる複数の記憶領域のそれぞれに格納させるデータ列格納手段と、
このデータ列格納手段がデータ列を格納させた前記複数の記憶領域のそれぞれに対応付けて、その格納が行われたデータ列に一致するデータ列が入力されたときに対応して実行すべき処理内容を記憶する処理内容記憶手段と、
データ列が入力されると、そのデータ列に一致するデータ列を前記記憶媒体で検索する記憶媒体検索手段と、
この記憶媒体検索手段によって入力された前記データ列に一致するデータ列が検索されると、そのデータ列が格納された記憶領域に対応付けて前記処理内容記憶手段が記憶する処理内容を実行する処理内容実行手段
とを具備することを特徴とする記憶媒体制御装置。
【請求項２】
前記データ列格納手段が前記記憶媒体へと格納させるデータ列のそれぞれに、データ誤りを検出するための冗長データを付加する冗長データ付加手段と、
前記記憶媒体検索手段によって入力された前記データ列に一致するデータ列が検索されると、そのデータ列を前記記憶媒体から読み出すデータ列読出手段と、
このデータ列読出手段が読み出したデータ列にデータ誤りが発生しているか否かをそのデータ列に付加された前記冗長データを基に判別するデータ誤り有無判別手段とを更に具備し、
前記処理内容実行手段は、このデータ誤り有無判別手段によってデータ誤りが発生していないと判別されるときのみ該当する処理内容を実行する手段であることを特徴とする請求項１記載の記憶媒体制御装置。
【請求項３】
前記冗長データ付加手段が付加する前記冗長データはデータ誤りを検出および訂正するためのデータであり、
前記データ誤り有無判別手段によってデータ誤りが発生していると判別されると、前記記憶媒体に格納された該当するデータ列のデータ誤りをそのデータ列に付加された前記冗長データを基に訂正するデータ誤り訂正手段を更に具備することを特徴とする請求項２記載の記憶媒体制御装置。
【請求項４】
前記データ誤り有無判別手段によってデータ誤りが発生していると判別されると、前記データ列格納手段が該当する記憶領域に格納したデータ列と同じデータ列を格納した他の記憶領域からデータ列を読み出す他データ列読出手段と、
この他データ列読出手段が読み出したデータ列にデータ誤りが発生しているか否かをそのデータ列に付加された前記冗長データを基に判別する他データ誤り有無判別手段と、
この他データ誤り有無判別手段によってデータ誤りが発生していないと判別されると、そのデータ列で前記データ誤り有無判別手段によってデータ誤りが発生していると判別されたデータ列が格納されている記憶領域の内容を更新するデータ列更新手段とを更に具備することを特徴とする請求項２記載の記憶媒体制御装置。
【請求項５】
前記記憶媒体は検索キーが入力されるとその検索キーに一致するデータ列が格納された記憶領域のメモリアドレスを１つ出力するＣＡＭであり、前記データ列格納手段はメモリアドレスの指定によって前記ＣＡＭにデータ列を格納させる手段であり、処理内容記憶手段はメモリアドレスに対応付けて処理内容を記憶する手段であり、前記記憶媒体検索手段は入力されたデータ列を検索キーとして前記ＣＡＭに入力し、このＣＡＭから対応して出力されるメモリアドレスを取得する手段であり、前記処理内容実行手段はこの記憶媒体検索手段が取得したメモリアドレスに対応付けて前記処理内容記憶手段が記憶する処理内容を実行する手段であることを特徴とする請求項１記載の記憶媒体制御装置。
【請求項６】
前記データ列格納手段が前記ＣＡＭへと格納させるデータ列のそれぞれに、データ誤りを検出および訂正するための冗長データを付加する冗長データ付加手段と、
前記記憶媒体検索手段がメモリアドレスを取得すると、そのメモリアドレスに該当する記憶領域に格納されたデータ列を読み出すデータ列読出手段と、
このデータ列読出手段が読み出したデータ列にデータ誤りが発生しているか否かをそのデータ列に付加された前記冗長データを基に判別するデータ誤り有無判別手段と、
このデータ誤り有無判別手段によってデータ誤りが発生していると判別されると、前記ＣＡＭに格納された該当するデータ列のデータ誤りをそのデータ列に付加された前記冗長データを基に訂正するデータ誤り訂正手段と、
このデータ誤り訂正手段がデータ誤りの訂正を行うと、前記記憶媒体検索手段に対して再度同じ検索キーを前記ＣＡＭに入力させる再検索実行手段とを更に具備し、
前記処理内容実行手段は、前記データ誤り有無判別手段によってデータ誤りが発生していないと判別されるときのみ該当する処理内容を実行する手段であることを特徴とする請求項５記載の記憶媒体制御装置。
【請求項７】
前記データ列格納手段が前記ＣＡＭへと格納させるデータ列のそれぞれに、データ誤りを検出するための冗長データを付加する冗長データ付加手段と、
前記記憶媒体検索手段がメモリアドレスを取得すると、そのメモリアドレスに該当する記憶領域に格納されたデータ列を読み出すデータ列読出手段と、
このデータ列読出手段が読み出したデータ列にデータ誤りが発生しているか否かをそのデータ列に付加された前記冗長データを基に判別するデータ誤り有無判別手段と、
このデータ誤り有無判別手段によってデータ誤りが発生していると判別されると、前記データ列格納手段が該当する記憶領域に格納したデータ列と同じデータ列を格納した前記ＣＡＭの他の記憶領域からデータ列を読み出す他データ列読出手段と、
この他データ列読出手段が読み出したデータ列にデータ誤りが発生しているか否かをそのデータ列に付加された前記冗長データを基に判別する他データ誤り有無判別手段と、
この他データ誤り有無判別手段によってデータ誤りが発生していないと判別されると、そのデータ列で前記データ誤り有無判別手段によってデータ誤りが発生していると判別されたデータ列が格納されている記憶領域の内容を更新するデータ列更新手段と、
このデータ列更新手段が記憶領域の内容を更新すると、前記記憶媒体検索手段に対して再度同じ検索キーを前記ＣＡＭに入力させる再検索実行手段とを更に具備し、
前記処理内容実行手段は、前記データ誤り有無判別手段によってデータ誤りが発生していないと判別されるときのみ該当する処理内容を実行する手段であることを特徴とする請求項５記載の記憶媒体制御装置。
【請求項８】
検索キーが入力されるとその検索キーに一致するデータ列が格納された記憶領域のメモリアドレスを１つ出力する記憶媒体としての所定のＣＡＭでの検索の対象とすべきデータ列を、異なる複数のメモリアドレスを指定してこのＣＡＭの異なる複数の記憶領域のそれぞれに格納させるデータ列格納ステップと、
このデータ列格納ステップでデータ列を格納させるときに指定した前記複数のメモリアドレスのそれぞれに対応付けて、その格納が行われたデータ列に一致するデータ列が入力されたときに対応して実行すべき処理内容を記憶する処理内容記憶ステップと、
データ列が入力されると、そのデータ列を検索キーとして前記ＣＡＭに入力する記憶媒体検索ステップと、
この記憶媒体検索ステップに対応して前記ＣＡＭからメモリアドレスが出力されると、前記処理内容記憶ステップでそのメモリアドレスに対応付けて記憶された処理内容を実行する処理内容実行ステップ
とを具備することを特徴とする記憶媒体制御方法。
【請求項９】
検索キーが入力されるとその検索キーに一致するデータ列が格納された記憶領域のメモリアドレスを１つ出力する記憶媒体としてのＣＡＭを備えた装置のコンピュータに、
前記ＣＡＭでの検索の対象とすべきデータ列を、異なる複数のメモリアドレスを指定してこのＣＡＭの異なる複数の記憶領域のそれぞれに格納させるデータ列格納処理と、
このデータ列格納処理でデータ列を格納させるときに指定した前記複数のメモリアドレスのそれぞれに対応付けて、その格納が行われたデータ列に一致するデータ列が検索キーとして入力されたときに対応して実行すべき処理内容を記憶する処理内容記憶処理と、
データ列が入力されると、そのデータ列を検索キーとして前記ＣＡＭに入力する記憶媒体検索処理と、
この記憶媒体検索処理に対応して前記ＣＡＭからメモリアドレスが出力されると、前記処理内容記憶処理でそのメモリアドレスに対応付けて記憶された処理内容を実行する処理内容実行処理
とを具備することを特徴とする記憶媒体制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえばＣＡＭのように、入力されたサーチキーに一致するデータ列が格納された記憶領域を検索結果として出力する記憶媒体を利用して各種の処理を行う記憶媒体制御装置、記憶媒体制御方法および記憶媒体制御プログラムに係わり、特にサーチキーを入力したときの検索結果に応じて各種の処理を行う記憶媒体制御装置、記憶媒体制御方法および記憶媒体制御プログラムに関する。
【背景技術】
【０００２】
ＣＡＭ（Content Addressable Memory）は、高速なテーブル検索処理を実現する記憶媒体であり、通信端末のＡＲＰ（Address Resolution Protocol）テーブルやデータベース等、様々な分野で使用されている。ＣＡＭでは、あるデータ列がサーチキー（search key）として入力されると、記憶領域のセルごとに設けられた専用回路が個別にそれぞれのセルの格納データと比較し、一致するデータ列が格納されている場合にはそのセルのメモリアドレスが出力されるようになっている。ＣＡＭの各セルのメモリアドレスを、ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic Random Access Memory）といった他の記憶媒体に格納された対応する情報に対応付けておくことによって、サーチキーに対応する情報が出力されるテーブル検索を実現することができる。
【０００３】
ところが、ＣＡＭで使用されている半導体にアルファ線や中性子が飛び込むことによって、格納データにビット反転が生じたり電荷の発生により信号レベルが変化するなどして、セルの格納データが本来とは異なったものに変化してしまうことがある。本来サーチされるべきセルの格納データに誤りが生じると、正しいメモリアドレスが出力されないといった事態が発生する。また、ＣＡＭは、サーチキーに一致するデータ列が複数のセルに格納されていたとしても、値が最も小さいメモリアドレスのみを出力するという特性を有している。したがって、本来サーチされるべきセルよりも小さい値のメモリアドレスのセルで、データ誤りによってたまたま格納データがサーチキーに一致するデータ列に変化してしまっていると、誤ったサーチ結果が出力されてしまう。
【０００４】
ＳＲＡＭやＤＲＡＭも同様に半導体を使用しているが、格納データをテーブル検索結果として出力するため、たとえばそれぞれの格納データに予めデータ誤り検出のための冗長データを付加させておけば、そのデータ誤りを検出することができる。しかしながら、ＣＡＭでは格納データではなくメモリアドレスが照合結果として出力されるという特性上、ＣＡＭの格納データのデータ誤りに起因してテーブル検索の結果が誤ったものとなっても、これを検出することができない。
【０００５】
ＣＡＭでは、セルのメモリアドレスをポインタ（Pointer）で指定することによって、該当するセルの格納データを出力させることも可能となっている。そこで、ＣＡＭのそれぞれの格納データに予めデータ誤り検出のための冗長データを付加させておき、定期的に各セルのアドレスを指定して格納データを出力させてチェックすることで、このような格納データのデータ誤りを検出することが可能である。しかしながら、この手法では、たとえば５分間隔で全セルのチェックが行われるとすると、データ誤りが発生してから検出されるまでに最悪で５分掛かることになる。すなわち、最大で５分間、誤ったデータを基に後に続く処理が行われてしまう。
【０００６】
そこで、サーチキーとの照合と同じように、セルごとにデータ誤りの検出を行うための専用回路を設けるようにすることが従来より提案されている（たとえば特許文献１参照）。この第１の提案を適用すれば、各セルを順にチェックしていくのに比べてより迅速にデータ誤りを検出することが可能となる。
【０００７】
また、サーチキーとの照合が行われるセルにデータを格納するときに、他の記憶媒体にも同じデータを格納しておき、格納データとこの他の記憶媒体に格納されたデータとの比較を行うことによってデータ誤りの発生の有無を判別することも従来より提案されている（たとえば特許文献２参照）。この第２の提案では、サーチキーとの照合の対象となる第１の記憶媒体のいずれかのセルにデータを格納するときに、サーチキーとの照合の対象ではない第２の記憶媒体の対応するセルに同じデータを格納させる。そして、第１の記憶媒体でサーチキーと一致すると判別されたセルの格納データと、第２の記憶媒体の対応するセルに格納されたデータが一致するか否かを判別する。一致しない場合には、検索結果に該当する格納データにデータ誤りが生じている可能性があるとして、検索エラーを示す信号を出力するようにしている。これにより、誤ったサーチ結果が後続する処理に使用されるのを防ぐことができる。
【特許文献１】特開２００３−３１６６６２号公報（第００２７段落、図４）
【特許文献２】特開平１０−１３４５８３号公報（第００１９段落、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、第１の提案では、該当する格納データの訂正を行ってからでなければ正しい検索結果を出力することができない。すなわち、本来サーチされるべきセルの格納データに誤りが発生しているときには、正しい検索結果が出力されるのに時間が掛かってしまう。また、第２の提案では、データ誤りが発生しているのが第２の記憶媒体の方であって第１の記憶媒体には正しいデータが格納されていたとしてもこれを判別することができない。このため、サーチ結果に該当するセルの格納データを出力させ、なんらかの手法によりデータの正否を判別する処理が必要となり、更にデータ誤りが判別された場合にはこれを訂正して検索処理を再実行しなければならず、やはり正しい検索結果が出力されるのに時間が掛かってしまう。すなわち、いずれの提案も、上記したテーブル検索のようにＣＡＭを利用してサーチキーに応じた内容の処理を行うときには、この処理を迅速に開始することができない。
【０００９】
そこで本発明の目的は、ＣＡＭのように入力されたサーチキーに一致するデータ列が格納された記憶領域を検索結果として出力する記憶媒体を利用して検索結果に応じた処理を実行する場合に、適切な処理をより迅速に開始することを可能にする記憶媒体制御装置、記憶媒体制御方法および記憶媒体制御プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明では、（イ）検索の対象とすべきデータ列を、所定の記憶媒体の異なる複数の記憶領域のそれぞれに格納させるデータ列格納手段と、（ロ）このデータ列格納手段がデータ列を格納させた複数の記憶領域のそれぞれに対応付けて、その格納が行われたデータ列に一致するデータ列が入力されたときに対応して実行すべき処理内容を記憶する処理内容記憶手段と、（ハ）データ列が入力されるとそのデータ列に一致するデータ列を記憶媒体で検索する記憶媒体検索手段と、（ニ）この記憶媒体検索手段によって入力されたデータ列に一致するデータ列が検索されると、そのデータ列が格納された記憶領域に対応付けて処理内容記憶手段が記憶する処理内容を実行する処理内容実行手段とを記憶媒体制御装置に具備させる。
【００１１】
すなわち本発明では、検索の対象とすべきデータ列を所定の記憶媒体に格納させ、その格納が行われたデータ列に一致するデータ列が入力されたときに対応して実行すべき処理内容を、格納が行われた記憶領域に対応付けて記憶しておく。データ列が入力されると記憶媒体で検索し、一致するデータ列が検索されると、そのデータ列が格納された記憶領域に対応付けて記憶しておいた処理内容を実行するようにしている。これにより、データ列が入力される度に、適切な処理内容を実行することが可能となる。ところが、記憶媒体の１つの記憶領域にのみ格納を行った場合、その唯一のデータ列に誤りが生じたときにはそのデータ列の誤りを検出して訂正を行ってからでなければ適切な処理内容を実行することができない。そこで、本発明では、記憶媒体の異なる複数の記憶領域のそれぞれにデータ列を格納させるとともに、複数の記憶領域のそれぞれに対応付けて適切な処理内容を記憶しておく。これにより、いずれかの記憶領域のデータ列に誤りが生じても他の記憶領域に格納された誤りが生じていないデータ列によってこれを補うことができ、より迅速に適切な処理を開始することができる。
【００１２】
また本発明では、（イ）検索キーが入力されるとその検索キーに一致するデータ列が格納された記憶領域のメモリアドレスを１つ出力する記憶媒体としての所定のＣＡＭでの検索の対象とすべきデータ列を、異なる複数のメモリアドレスを指定してこのＣＡＭの異なる複数の記憶領域のそれぞれに格納させるデータ列格納ステップと、（ロ）このデータ列格納ステップでデータ列を格納させるときに指定した複数のメモリアドレスのそれぞれに対応付けて、その格納が行われたデータ列に一致するデータ列が入力されたときに対応して実行すべき処理内容を記憶する処理内容記憶ステップと、（ハ）データ列が入力されると、そのデータ列を検索キーとしてＣＡＭに入力する記憶媒体検索ステップと、（ニ）この記憶媒体検索ステップに対応してＣＡＭからメモリアドレスが出力されると、処理内容記憶ステップでそのメモリアドレスに対応付けて記憶された処理内容を実行する処理内容実行ステップとを記憶媒体制御方法に具備させる。
【００１３】
すなわち本発明では、所定のＣＡＭでの検索の対象とすべきデータ列を、異なる複数のメモリアドレスを指定してこのＣＡＭの異なる複数の記憶領域のそれぞれに格納させ、そのデータ列に一致するデータ列が入力されたときに対応して実行すべき処理内容をそれぞれのメモリアドレスに対応付けた形で記憶しておく。そして、データ列が入力されると、そのデータ列を検索キーとしてＣＡＭに入力し、これに対応してＣＡＭからメモリアドレスが出力されると、そのメモリアドレスに対応付けて記憶しておいた処理内容を実行する。これにより、ＣＡＭを利用してデータ列が入力されるごとに適切な処理を実行することができる。更に、ＣＡＭの記憶領域のいずかに格納されたデータ列に誤りが生じていても、同じデータ列の格納が行われた他の記憶領域に格納された誤りが生じていないデータ列によってこれを補わせることができ、より迅速に適切な処理を開始することができる。
【００１４】
また本発明では、検索キーが入力されるとその検索キーに一致するデータ列が格納された記憶領域のメモリアドレスを１つ出力する記憶媒体としてのＣＡＭを備えた装置のコンピュータに、（イ）ＣＡＭでの検索の対象とすべきデータ列を、異なる複数のメモリアドレスを指定してこのＣＡＭの異なる複数の記憶領域のそれぞれに格納させるデータ列格納処理と、（ロ）このデータ列格納処理でデータ列を格納させるときに指定した複数のメモリアドレスのそれぞれに対応付けて、その格納が行われたデータ列に一致するデータ列が検索キーとして入力されたときに対応して実行すべき処理内容を記憶する処理内容記憶処理と、（ハ）データ列が入力されると、そのデータ列を検索キーとしてＣＡＭに入力する記憶媒体検索処理と、（ニ）この記憶媒体検索処理に対応してＣＡＭからメモリアドレスが出力されると、処理内容記憶処理でそのメモリアドレスに対応付けて記憶された処理内容を実行する処理内容実行処理とを記憶媒体制御プログラムにより実行させる。
【００１５】
すなわち本発明では、ＣＡＭを備えた装置のコンピュータに、ＣＡＭでの検索の対象とすべきデータ列を異なる複数のメモリアドレスを指定してこのＣＡＭの異なる複数の記憶領域のそれぞれに格納させ、そのデータ列に一致するデータ列が入力されたときに対応して実行すべき処理内容をそれぞれのメモリアドレスに対応付けた形で記憶させる。そして、データ列が入力されると、そのデータ列を検索キーとしてＣＡＭに入力させ、これに対応してＣＡＭからメモリアドレスが出力されると、そのメモリアドレスに対応付けて記憶しておいた処理内容を実行させる。これにより、ＣＡＭを備えた装置に対して、データ列が入力されるごとに適切な処理を実行させることができる。更に、ＣＡＭの記憶領域のいずれかに格納されたデータ列に誤りが生じていても、同じデータ列の格納が行われた他の記憶領域に格納された誤りが生じていないデータ列によってこれを補わせることができ、より迅速に適切な処理を開始させることができる。
【発明の効果】
【００１６】
以上説明したように本発明によれば、ＣＡＭ等の記憶媒体に検索の対象となるデータ列を格納させるときに、異なる複数の記憶領域のそれぞれに格納させるとともに、それぞれの記憶領域を適切な処理内容に対応付けておく。これにより、入力されたデータ列を記憶媒体で検索する際に、検索結果として特定されるはずの記憶領域のデータ列にデータ誤りが発生していても、同じデータ列の格納が行われデータ誤りが発生していない他の記憶領域が特定され、適切な処理を迅速に開始することができる。
【発明を実施するための最良の形態】
【００１７】
以下実施例につき本発明を詳細に説明する。
【実施例１】
【００１８】
図１は、本発明の一実施例による通信システムの構成を表わしたものである。この通信システム２００では、通信端末２０１がＬＡＮ（Local Area Network）２０２に接続されている。本実施例の場合、通信端末２０１はパーソナルコンピュータであり、ＬＡＮ２０２への送信の対象となるアプリケーションデータを格納したパケットを生成するパケット生成部２０３と、生成されたパケットの解析を行うパケット解析部２０４およびＬＡＮ２０２に接続してパケットの送信を行う送信処理部２０５を備えている。
【００１９】
パケット生成部２０３には送信の相手先の装置のＩＰ（Internet Protocol）アドレスが宛先として記述されるが、送信を行うためにはその相手先に至る経路上の同一サブネット内の通信機器の物理アドレスを特定しなければならない。パケット解析部２０４は、パケットに付加された宛先ＩＰアドレス（以下、単にＩＰアドレスという。）を基に、この物理アドレスの特定を行うようになっている。
【００２０】
この物理アドレスの特定には、ＬＡＮ２０２の同一サブネット内にブロードキャストで問い合わせる手法と、通信端末２０１で記憶しておいた過去の問い合わせ結果を利用する手法の２パターンがある。本実施例では記憶媒体に格納しておいた過去の問い合わせ結果に関するデータにデータ誤りが発生した場合でも、再度の問い合わせを行うことなく適切な物理アドレスを迅速に特定できるように、後に説明する工夫を行っている。また、ＬＡＮ２０２ではＩＰｖ４（IP version 4）が適用されており、アドレス資源は３２ビットで管理されているものとする。
【００２１】
図２は、図１に示したパケット解析部の構成を表わしたものである。パケット解析部２０４には、送信の対象となるパケットに対して各種の解析処理を行うパケットプロセッサ部２１１が備えられている。また、送信処理を行った各パケットに記述されたＩＰアドレスを記憶するための第１のデータ記憶部２１２と、各パケットの送信の際に取得された物理アドレスを記憶するための第２のデータ記憶部２１３が備えられており、それぞれパケットプロセッサ部２１１に接続されている。
【００２２】
第１のデータ記憶部２１２には、それぞれ独立した記憶領域である複数のセルにより構成される第１のデータアレイ部２２１が備えられている。また、パケットプロセッサ部２１１から受け取ったＩＰアドレスを、この第１のデータアレイ部２２１の指定されたメモリアドレスに該当するセルに格納させる第１のデータ格納処理部２２２が備えられている。更に、パケットプロセッサ部２１１から受け取ったサーチキーに一致するデータが格納されているか否かを第１のデータアレイ部２２１の各セルで検索し、一致するデータが格納されたセルのメモリアドレスを返す第１のメモリアドレス出力処理部２２３を備えている。また、これとは逆に、いずれかのメモリアドレスが指定されると該当するセルに格納された格納データを返す第１のデータ出力処理部２２４が備えられている。
【００２３】
パケットプロセッサ部２１１には、送信の対象となるパケットについてそのＩＰアドレスに対応する物理アドレスを取得する物理アドレス取得処理部２３１が備えられている。また、この物理アドレス取得処理部２３１によって過去に取得された物理アドレスとその基となるＩＰアドレスとを、それぞれ第２のデータ記憶部２１３および第１のデータ記憶部２１２に記憶させるパケット情報記憶処理部２３２が備えられている。
【００２４】
第２のデータ記憶部２１３には、複数のセルにより構成される第２のデータアレイ部２４１と、パケットプロセッサ部２１１から受け取った物理アドレスをこの第２のデータアレイ部２４１の指定されたメモリアドレスに該当するセルに格納させる第２のデータ格納処理部２４２が備えられている。更に、パケットプロセッサ部２１１からいずれかのメモリアドレスが指定されると第２のデータアレイ部２４１の該当するセルに格納された物理アドレスを返す第２のデータ出力処理部２４３が備えられている。
【００２５】
通信端末２０１は、図示しないＣＰＵ（中央処理装置）と制御プログラムを格納したＲＯＭ（Read Only Memory）等の記憶媒体およびＲＡＭ（Random Access Memory）等の作業用メモリを備えており、このパケット解析部２０４のパケットプロセッサ部２１１で実現される機能は制御プログラムをＣＰＵが実行することによって実現される。また、第１のデータ記憶部２１２および第２のデータ記憶部２１３は、それぞれ既存のハードウェアとしてのＣＡＭとＲＡＭにより実現される機能部である。
【００２６】
図３は、物理アドレス取得処理部の物理アドレス取得処理の流れを表わしたものである。物理アドレス取得処理部２３１は、送信の対象となるパケットを図１に示すパケット生成部２０３から受け取ると（ステップＳ２５１：Ｙ）、そのパケットに記述されたＩＰアドレスを第１のデータ記憶部２１２へ渡す（ステップＳ２５２）。第１のデータ記憶部２１２では、受け取ったＩＰアドレスをサーチキーとして第１のデータアレイ部２２１で検索を行うが、これについては後に詳しく説明する。第１のデータ記憶部２１２は、受け取ったＩＰアドレスに一致するデータが無かった場合、物理アドレス取得処理部２３１に対してその旨を通知するようになっている。
【００２７】
ここで、パケット生成部２０３から受け取ったパケットに、過去に送信先として指定されたことのない宛先ＩＰアドレスが記述されていたとする。この場合、そのＩＰアドレスに関する情報はまだ第１のデータ記憶部２１２に格納されていないため、第１のデータ記憶部２１２からはメモリアドレスは渡されずに該当データなしとする内容が通知される（ステップＳ２５３：Ｎ）。この場合、物理アドレス取得処理部２３１は送信処理部２０５を介してＬＡＮ２０２の同一サブネット内に宛先ＩＰアドレスに対応する物理アドレスを問い合わせるＡＲＰ要求をブロードキャストし、同一サブネット内の各通信機器に対して該当する物理アドレスを問い合わせる。たとえば、同一サブネット内にブロードキャストした宛先ＩＰアドレスに該当する通信端末が配置されていれば、その通信端末が自己の物理アドレスを返してくることになる。そして、問い合わせの結果得られた物理アドレスをステップＳ２５１で受け取ったパケットに宛先として付加し、送信処理部２０５に渡してＬＡＮ２０２へと送出させる（ステップＳ２５４）。
【００２８】
以降に同じＩＰアドレスが記述されたパケットを受け取ったときに、この問い合わせ結果を再利用すれば送信処理の高速化を図ることができる。そこで、パケット情報記憶処理部２３２にＩＰアドレスと得られた物理アドレスとを渡し、ＩＰアドレスを第１のデータ記憶部２１２に記憶させるとともに、物理アドレスを第２のデータ記憶部２１３に記憶させるように指示する（ステップＳ２５５）。そして、再び新たなパケットを受け取るのを待機する（リターン）。すなわち、ＣＡＭである第１のデータ記憶部２１２でパケットのＩＰアドレスを高速で検索し、ＲＡＭである第２のデータ記憶部２１３でその検索結果に対応する物理アドレスを出力させることができるようにし、ＡＲＰ要求の問い合わせ結果を記憶するＡＲＰテーブルを実現させる。
【００２９】
ただし、従来のようにＣＡＭである第１のデータ記憶部２１２のセルの１つのみにＩＰアドレスを格納した場合、その唯一のＩＰアドレスにデータ誤りが生じると、既に説明したようにその本来のＩＰアドレスに一致するＩＰアドレスがサーチキーとして入力されてもサーチされない。すなわち、正しいメモリアドレスがサーチ結果として出力されない。したがって、正しいメモリアドレス出力させるためには、そのデータ誤りの訂正を行う必要がある。すると、適切な物理アドレスが出力されるまでに時間が掛かり、ＡＲＰテーブルによる処理の高速化という効果が半減してしまう。そこで、この実施例のパケット情報記憶処理部２３２は、物理アドレス取得処理部２３１から渡されたＩＰアドレスを第１のデータ記憶部２１２の複数のセルに格納させるとともに、それぞれのメモリアドレスを同じく物理アドレス取得処理部２３１から渡された物理アドレスに対応付けるようにしている。これにより、本来の問い合わせ結果が複数格納されるようになり、いずれかのＩＰアドレスにデータ誤りが発生してしまっても、他がこれを補う形で、正しいサーチ結果をデータ誤りの訂正を行う前に出力させることが可能となる。
【００３０】
図４は、パケット情報記憶処理部のパケット情報記憶処理の流れを表わしたものである。パケット情報記憶処理部２３２は、物理アドレス取得処理部２３１から図３のステップＳ２５５に対応してＩＰアドレスと物理アドレスとを受け取ると（ステップＳ２７１：Ｙ）、受け取ったＩＰアドレスを第１のデータ記憶部２１２に渡し、第１のデータアレイ部２２１に格納させる。ただし、後にデータ誤りの発生を検出できるように、データ誤りの検出および訂正を行うための符号であるＥＣＣ（Error Correcting Code）を生成してＩＰアドレスに付加させる。更に、従来とは異なり、第１のデータアレイ部２２１の格納先のセルとして偶数で開始する連続した２つのメモリアドレスをポインタで指定して第１のデータ記憶部２１２へと渡すようになっている（ステップＳ２７２）。第１のデータアレイ部２２１のセルは１６３８４個用意されており、メモリアドレスは値「０」から開始される整数値が昇順で割り当てられている。このため、ステップＳ２７２のメモリアドレスの指定は、ポインタが値「０」から２値ずつ昇順で移動し、値「１６３８３」に達すると再び値「０」に戻る形で行われるようになっている。
【００３１】
第１のデータアレイ部２２１の各セルには、３２ビットの宛先ＩＰアドレスのデータが被照合データとして格納される。そこで、物理アドレス取得処理部２３１は、８ビットのＥＣＣを生成して各被照合データに付加し、被照合データに１ビットのデータ誤りが発生してもこれを検出するだけでなく訂正できるようにする。説明の簡便化のため、この実施例ではＩＰアドレスに発生するデータ誤りは最大で１ビットであるものとする。
【００３２】
パケット情報記憶処理部２３２は、更に、ステップＳ２７１で受け取った物理アドレスを第２のデータ記憶部２１３に渡して第２のデータアレイ部２４１に格納させるが、その格納先のセルのメモリアドレスとして、ステップＳ２７２で第１のデータアレイ部２２１について指定したのと同じ２値を指定する（ステップＳ２７３）。そして、再び物理アドレス取得処理部２３１からの指示を待機する（リターン）。これにより、第１のデータアレイ部２２１のＩＰアドレスと、これに対応して格納された第２のデータアレイ部２４１の物理アドレスとを、メモリアドレスによって関連付けることができる。ただし、対応テーブルを別に用意して第１のデータアレイ部２２１のメモリアドレスと第２のデータアレイ部２４１のメモリアドレスとの対応付けを別途行うようにすれば、必ずしも同一の値とする必要はない。更にいえば、第１のデータアレイ部２２１の２つのメモリアドレスに第２のデータアレイ部２４１の１つのメモリアドレスを対応付けるようにしてもよい。
【００３３】
図５は、第１のデータアレイ部に格納される内容を表わしたものである。第１のデータアレイ部２２１は、前記したように１６３８４個のセルが用意されており、値「０」から開始される整数のメモリアドレスが割り当てられている。それぞれのセルには、パケット情報記憶処理部２３２によって、３２ビットのＩＰアドレスと８ビットのＥＣＣとにより構成されるデータ（以下、エントリという。）が格納される。このエントリのうち、ＩＰアドレスは物理アドレス取得処理部２３１によって送信の対象となるパケットから取得されたものであり、ＥＣＣはパケット情報記憶処理部２３２によって生成されたものである。図４で説明したように、偶数メモリアドレスとこれよりも値が１つ大きい奇数メモリアドレスが示す２つの連続したセルには、同じ内容のエントリが格納されることになる。ここでは、たとえばメモリアドレス「２」とメモリアドレス「３」の領域には、同図に示すように第２のＥＣＣと第２のＩＰアドレスとにより構成される同じエントリが格納されている。以下、偶数メモリアドレスが示すセルに格納されたエントリを偶数エントリ、奇数メモリアドレスが示すセルに格納されたエントリを奇数エントリという。
【００３４】
図６は、第２のデータアレイ部に格納される内容を表わしたものである。第２のデータアレイ部２４１にも、第１のデータアレイ部２２１と同様に１６３８４個のセルが用意されており、値「０」から開始される整数のメモリアドレスが割り当てられている。それぞれのセルには、物理アドレス取得処理部２３１によって送信の対象となるパケットから取得された物理アドレスが、パケット情報記憶処理部２３２によって格納される。ここでは、たとえばメモリアドレス「２」とメモリアドレス「３」の領域には、同図に示すように同じ第２の物理アドレスが格納されている。これらは、図５の第１のデータアレイ部２２１のメモリアドレス「２」とメモリアドレス「３」の領域に格納された第２のＩＰアドレスに対応して格納されたものである。
【００３５】
第１のデータ記憶部２１２の第１のメモリアドレス出力処理部２２３は、パケットプロセッサ部２１１からＩＰアドレスを受け取ると、これをサーチキーとして各エントリで一致するデータが格納されているかを判別する。そして、一致するデータが格納されたエントリが存在する場合には、そのエントリのメモリアドレスをパケットプロセッサ部２１１へと返すようになっている。ただし、該当エントリが複数存在する場合には最も小さい値のメモリアドレスのみを出力するようになっている。これは、ＣＡＭの特徴の１つであり、通常は格納されるエントリはセルごとに異なることから検索結果は１つ以下であるという前提で、無駄な検索処理の低減および装置の簡略化を図るものである。たとえば、図５に示した第１のデータアレイ部２２１にデータ誤りが発生していない状態で第２のＩＰアドレスがサーチキーとして送られてきた場合には、一致するデータが格納されているエントリのメモリアドレスとして値「２」のみを出力する。また、サーチキーに一致するデータがいずれのエントリにも存在しない場合には、パケットプロセッサ部２１１に対して該当なしと通知する。
【００３６】
図３に戻って説明を続ける。ここで、パケット解析部２０４が送信処理の対象として新たに受け取ったパケットの宛先ＩＰアドレスが、図５に示した第１のデータアレイ部２２１に格納されている第２のＩＰアドレスと一致していたとする。この場合には、上記したように第１のデータ記憶部２１２の第１のメモリアドレス出力処理部２２３から、該当するデータが存在したとしてメモリアドレス「２」を受け取ることになる（ステップＳ２５３：Ｙ）。
【００３７】
従来ではここで取得したメモリアドレスをそのままパケット情報処理部２３２へ渡して対応する物理アドレスの取得を行うが、既に説明したように、第１のデータアレイ部２２１に生じたデータ誤りによって本来出力されるべきではないメモリアドレスが出力されている可能性がある。たとえば、図５に示す第１のデータアレイ部２２１のメモリアドレス「０」のエントリにデータ誤りが発生し、第１のＩＰアドレスが変化して第２のＩＰアドレスに一致してしまい、サーチ結果としてメモリアドレス「０」が出力されるケースが考えられる。
【００３８】
そこで、この実施例では物理アドレスの取得を行う前に取得したメモリアドレスを第１のデータ記憶部２１２へ渡し、第１のデータアレイ部２２１の該当するメモリアドレスが割り当てられたエントリを読み出す（ステップＳ２５６）。そして、ＥＣＣを使用して該当するエントリにデータ誤りが生じているか否かを判別する（ステップＳ２５７）。データ誤りが生じていない場合には（Ｎ）、サーチ結果であるメモリアドレスそのものは正しいということになる。したがって、サーチ結果として得られたメモリアドレスをパケット情報記憶処理部２３２へ渡す（ステップＳ２５８）。
【００３９】
図４に戻って説明を続ける。パケット情報記憶処理部２３２は、ＩＰアドレスと物理アドレスだけでなく、図３のステップＳ２５８に対応して物理アドレス取得処理部２３１から送られてくるメモリアドレスについても待機している（ステップＳ２７４）。メモリアドレスを受け取ると（Ｙ）、そのメモリアドレスを第２のデータ記憶部２１３に渡し、第２のデータアレイ部２４１の該当するメモリアドレスのセルに格納された物理アドレスを出力させる（ステップＳ２７５）。第２のデータ出力処理部２４３は、ここではメモリアドレス「２」を受け取ると、図６に示すように第２のデータアレイ部２４１のメモリアドレス「２」に該当する第２の物理アドレスをパケット情報記憶処理部２３２へと渡す。パケット情報記憶処理部２３２は、受け取った第２の物理アドレスを物理アドレス取得処理部２３１へと渡し（ステップＳ２７６）、再び物理アドレス取得処理部２３１からの指示を待機する（リターン）。
【００４０】
図３に戻って説明を続ける。物理アドレス取得処理部２３１は、パケット情報記憶処理部２３２へメモリアドレスを渡すと物理アドレスが送られてくるので、その物理アドレスをステップＳ２５１で受け取ったパケットに付加して送信処理部２０５へと渡し、ＬＡＮ２０２への送信を行う（ステップＳ２５９）。そして、後に説明するサーチ結果正常時処理を実行し（ステップＳ２６０）、再び新たなパケットの受け取りを待機する（リターン）。また、ＥＣＣによりデータ誤りが生じていると判別された場合には（ステップＳ２５７：Ｙ）、サーチ結果として得られたメモリアドレスは誤っているとして、該当するエントリのＩＰアドレスのデータを訂正する（ステップＳ２６１）。そして、ステップＳ２５２へ戻って再びＩＰアドレスのサーチを行う。
【００４１】
正しいサーチ結果に該当するエントリよりもメモリアドレスの値が小さい他のエントリにデータ誤りが発生し、たまたまサーチキーに一致するデータとなってしまったような場合には、誤ったメモリアドレスがステップＳ２５３で取得されることになる。そこで、本実施例ではステップＳ２５２からステップＳ２６１までの処理によって、この誤ったメモリアドレスが使用されて誤ったサーチ結果が出力されてしまうのを防ぐようにしている。
【００４２】
図７は、図３のステップＳ２６０に示した物理アドレス取得処理部のサーチ結果正常時処理の流れを表わしたものである。ここで、まず第１のデータアレイ部２２１のメモリアドレス「２」のＩＰアドレスにのみデータ誤りが発生している場合について考える。この場合、メモリアドレス「２」のデータは第２のＩＰアドレスに一致しないため、図３のステップＳ２５３でサーチ結果としてメモリアドレス「３」が取得される。すなわち、サーチ結果が奇数メモリアドレスの場合には、対応する偶数エントリにデータ誤りが発生していることになる。そのまま放置して奇数エントリにもデータ誤りが発生すると、正常なサーチ結果を得ることができなくなる。
【００４３】
次に、第１のデータアレイ部２２１のメモリアドレス「３」のＩＰアドレスにのみデータ誤りが発生している場合について考える。この場合、図３のステップＳ２５３でサーチ結果としてメモリアドレス「２」が取得されるが、メモリアドレス「３」にデータ誤りが発生していることは検出されない。そのまま放置して偶数エントリにもデータ誤りが発生すると、やはり正常なサーチ結果を得ることができなくなる。
【００４４】
そこで、物理アドレス取得処理部２３１は、図３のステップＳ２５３で取得したメモリアドレスの値が偶数か否かを判別し（図７ステップＳ２９１）、偶数ではなく奇数の場合には（Ｎ）、該当する偶数エントリについてそのＥＣＣを用いてデータ誤りの訂正を行う（ステップＳ２９２）。そして、処理を終了する（エンド）。取得したメモリアドレスの値が偶数の場合には（ステップＳ２９１：Ｙ）、該当する奇数エントリを読み出し（ステップＳ２９３）、そのＥＣＣを使用してデータ誤りが発生しているか否かを判別する（ステップＳ２９４）。データ誤りが発生していない場合には（Ｎ）、そのまま処理を終了する（エンド）。データ誤りが発生している場合には（Ｙ）、その奇数エントリについてＥＣＣを用いてデータ誤りの訂正を行う（ステップＳ２９４）。そして、処理を終了する（エンド）。すなわち、同一のデータが格納された偶数エントリと奇数エントリについて、サーチされなかった方にデータ誤りが発生している場合に、これを訂正することができる。
【００４５】
以上説明したように本実施例によれば、物理アドレスの問い合わせを行ったＩＰアドレスを被照合データとしてＣＡＭの複数のセルに格納するとともに、それぞれを問い合わせ結果として得られた物理アドレスに対応付けておく。これにより、いずれかのセルにデータ誤りが生じていても、同じＩＰアドレスの格納が行われてデータ誤りが生じていない他のセルにこれを補わせることができ、より迅速に適切な物理アドレスを出力させることができる。また、各ＩＰアドレスにＥＣＣを付加させて、サーチされたメモリアドレスが指し示すエントリについてデータ誤りの有無の検出を行うようにしている。これにより、データ誤りが発生していずれかのエントリのＩＰアドレスが他のエントリのＩＰアドレスにたまたま一致してしまったときに、誤った物理アドレスが出力されるのを防ぐことができる。
【００４６】
また、同じデータが格納された複数のエントリを互いに対応付けており、いずれかのメモリアドレスが正しいサーチ結果として出力されたときに他のエントリについてのデータ誤りの検出および訂正を行うので、サーチされる頻度が高いほど、正しいデータを複数のエントリに存在させた状態をより確実に保持させることができる。更に、偶数メモリアドレスとこれよりも値が１つ大きい奇数メモリアドレスが示す２つの連続したセルに同一のデータを格納するようにしている。これにより、該当データが複数存在する場合には最も小さい値のメモリアドレスのみを出力するというＣＡＭの特徴を利用して、奇数メモリアドレスがサーチ結果として出力された場合には、対応する偶数エントリにデータ誤りが発生していることを迅速に検出することができる。
【００４７】
＜発明の変形例＞
【００４８】
エントリのデータ誤りの検出を、ＥＣＣではなく、より高速にデータ誤りの有無を判別することができるパリティチェック（parity check）によって行う場合について説明する。パリティチェックではデータ誤りが１ビットであっても訂正ができないため、同じＩＰアドレスの格納が行われたデータ誤りが発生していない他方のエントリのＩＰアドレスで上書きをする。
【００４９】
図８は、本発明の変形例によるパケット解析部の構成を表わしたものであり、実施例の図２に対応するものである。そこで、図２と同一部分には同一符号を付し、これについての説明を省略する。このパケット解析部４０４は、図示しないが実施例と同様の構成を有する通信端末に備えられており、図１に示したパケット生成部２０３と送信処理部２０５に接続されてパケットの解析処理を行う装置部である。このパケット解析部４０４には、図２の物理アドレス取得処理部２３１およびパケット情報記憶処理部２３２に替えて、これらとはそれぞれ異なる内容の処理を行う物理アドレス取得処理部４３１およびパケット情報記憶処理部４３２が備えられている。また、これに対応して、図２のパケットプロセッサ部２１１に替えてパケットプロセッサ部４１１が備えられている。
【００５０】
図９は、パケット情報記憶処理部のパケット情報記憶処理の流れを表わしたものであり、実施例の図４に対応するものである。そこで、図４と同一部分には同一ステップ番号を付し、これについての説明を省略する。パケット情報記憶処理部４３２は、ステップＳ２７１で物理アドレス取得処理部４３１からＩＰアドレスと物理アドレスを受け取ると（Ｙ）、偶数で開始する連続した２つのメモリアドレスを指定してＩＰアドレスを第１のデータ記憶部２１２へ渡すが、実施例とは異なり、ＥＣＣではなく１ビットのパリティビットを付加するようになっている（ステップＳ４２１）。そして、ステップＳ２７３へと進む。
【００５１】
図１０は、第１のデータアレイ部に格納される内容を表わしたものであり、実施例の図５に対応するものである。図５とは異なり、第１のデータアレイ部２２１には、それぞれ異なるメモリアドレスが割り当てられた３２ビットのＩＰアドレスと１ビットのパリティビットとにより構成されるデータ（以下、エントリという。）が格納される。ただし、偶数メモリアドレスで始まる２つの連続したエントリに同じ内容のデータが格納されるのは図５と同様である。
【００５２】
図１１は、物理アドレス取得処理部の物理アドレス取得処理の流れを表わしたものであり、実施例の図３に対応するものである。そこで、同一部分には同一ステップ番号を付し、これについての説明を省略する。物理アドレス取得処理部２３１は、ステップＳ２５６で第１のデータ記憶部２１２から出力されたメモリアドレスが指し示すエントリを読み出すと、付加されているパリティビットを使用してデータ誤りが発生しているか否かを判別する（ステップＳ４３１）。データ誤りが発生していない場合には（Ｎ）、ステップＳ２５８、Ｓ２５９へと進むが、ステップＳ２５９の次には実施例とは異なる内容のサーチ結果正常時処理を実行するようになっている（ステップＳ４３２）。また、データ誤りが発生している場合には（ステップＳ４３１：Ｙ）、サーチ結果誤り時処理を実行して（ステップＳ４３３）、ステップＳ２５２へと戻るようになっている。
【００５３】
図１２は、物理アドレス取得処理部のサーチ結果正常時処理の流れを表わしたものであり、図７に対応するものである。そこで、図７と同一部分には同一ステップ番号を付す。パリティチェックの場合、ＥＣＣよりも高速にデータ誤りの検出を行うことができるが、ＥＣＣのようにデータ誤りの訂正を行うことはできない。そこで、取得されたメモリアドレスの値が奇数の場合には（ステップＳ２９１：Ｎ）、偶数エントリにデータ誤りが発生しているとして、図１０のステップＳ２５６で読み出された奇数エントリのデータを対応する偶数エントリに上書きし（ステップＳ４４１）、処理を終了する（エンド）。この上書きは、偶数エントリのメモリアドレスを指定して、奇数エントリのデータを第１のデータ記憶部２１２へ渡すことによって行われる。
【００５４】
取得されたメモリアドレスの値が偶数の場合には（ステップＳ２９１：Ｙ）、対応する奇数エントリを読み出して（ステップＳ２９３）、データ誤りが発生しているかをそのパリティビットを使用して判別する（ステップＳ４４２）。データ誤りが発生していない場合には（Ｎ）、そのまま処理を終了する（エンド）。データ誤りが発生している場合には（Ｙ）、図１０のステップＳ２５６で読み出された偶数エントリのデータをその奇数エントリに上書きし（ステップＳ４４３）、処理を終了する（エンド）。
【００５５】
図１３は、物理アドレス取得処理部のサーチ結果誤り時処理の流れを表わしたものである。図１１のステップＳ２５３で取得されたメモリアドレスの値が奇数の場合には（ステップＳ４５１：Ｎ）、対応する偶数エントリを読み出して（ステップＳ４５２）、付加されたパリティビットを使用してデータ誤りの有無を判別する（ステップＳ４５３）。データ誤りが発生していない場合には（Ｎ）、読み出した偶数エントリのデータを図１１のステップＳ４３１でデータ誤りが検出された奇数エントリに上書きし（ステップＳ４５４）、処理を終了する（エンド）。
【００５６】
図１１のステップＳ２５３で取得されたメモリアドレスの値が偶数の場合には（ステップＳ４５１：Ｙ）、対応する奇数エントリを読み出して（ステップＳ４５５）、付加されたパリティビットを使用してデータ誤りの有無を判別する（ステップＳ４５６）。データ誤りが発生していない場合には（Ｎ）、読み出した奇数エントリのデータを図１１のステップＳ４３１でデータ誤りが検出された対応する偶数エントリに上書きし（ステップＳ４５７）、処理を終了する（エンド）。
【００５７】
図１１のステップＳ４３１でデータ誤りが検出されたエントリだけでなく、同じデータが格納された他方のエントリにもデータ誤りが検出された場合には（ステップＳ４５３：ＹあるいはステップＳ４５６：Ｙ）、図１の通信端末のパケット生成部２０３を使用してデータ送信を行う図示しないソフトウェアにＡＲＰテーブルにエラーが生じていることを通知する（ステップＳ４５８）。そして、処理を終了するが、図１１のステップＳ２５２へは戻らず、新たな送信の対象となるパケットを待機する。ただし、図１１のステップＳ２５４へ進み、ＡＲＰ要求によってＬＡＮ２０２に物理アドレスの問い合わせを行うようにしてもよい。
【００５８】
以上説明したように本発明の変形例では、ＥＣＣではなく、パリティビットを各ＩＰアドレスに付加してデータ誤りのチェックを行うようにしている。これにより、ＥＣＣよりも高速にデータ誤りの有無を判別することができ、正しいサーチ結果をより高速に取得することができる。また、同じサイズのデータに対して必要なビット数がより少なく済むので、第１のデータアレイ２２１に必要な容量を小さくすることができる。更に、同一のデータの格納が行われた他のエントリに正しいデータが格納されているときには、これをデータ誤りの発生したエントリに上書きするので、データ誤りが発生してもこれを迅速に訂正することができる。
【００５９】
なお、本発明の実施例ではＩＰアドレスに発生するデータ誤りを最大で１ビットとしたが、変形例のように同一のデータの格納を行った他のエントリのデータで上書きを行うような処理を適用すれば、２ビットのデータ誤りが発生する場合にも対応させることが可能である。また、データ誤りの検出に、他の各種手法を適用できることは当然である。また、同一のデータを格納するセルは奇数メモリアドレスとこれに続く偶数メモリアドレスの２つとしてもよく、この場合には偶数メモリアドレスが正しいサーチ結果として得られた場合には奇数エントリにデータ誤りが発生していると判別するようにすればよい。また、同一のデータを格納するセルは３つ以上であったり、メモリアドレスが連続していなくてもよい。この場合には、これら複数のセルの各メモリアドレスを対応付けておくとともに、そのサーチされる優先順位を記憶するようにする必要がある。また、第２のデータ記憶部から物理アドレスを取得する処理を、物理アドレス取得処理部で行うようにしてもよい。この場合には、ＩＰアドレスが格納されるセルのメモリアドレスと物理アドレスが格納されるセルのメモリアドレスとの対応付けを物理アドレス取得処理部に記憶させる必要がある。更に、本発明の実施例および変形例では、ＡＲＰテーブルを使用してパケットの送信を行う通信端末への適用を例として説明したが、ＣＡＭのように入力されたサーチキーを自己の記憶領域で検索して一致するデータが格納されたの記憶領域を出力する記憶媒体を使用する各種装置に適用できることはもちろんである。
【図面の簡単な説明】
【００６０】
【図１】本発明の一実施例による通信端末の構成を表わした構成図である。
【図２】本発明の実施例によるパケット解析部の構成を表わした構成図である。
【図３】本発明の実施例による物理アドレス取得処理部の物理アドレス取得処理の流れを表わした流れ図である。
【図４】本発明の実施例によるパケット情報記憶処理部のパケット情報記憶処理の流れを表わした流れ図である。
【図５】本発明の実施例による第１のデータアレイ部に格納される内容を表わした説明図である。
【図６】本発明の実施例による第２のデータアレイ部に格納される内容を表わした説明図である。
【図７】本発明の実施例による物理アドレス取得処理部のサーチ結果正常時処理の流れを表わした流れ図である。
【図８】本発明の変形例によるパケット解析部の構成を表わした構成図である。
【図９】本発明の変形例によるパケット情報記憶処理部のパケット情報記憶処理の流れを表わした流れ図である。
【図１０】本発明の変形例による第１のデータアレイ部に格納される内容を表わした説明図である。
【図１１】本発明の変形例による物理アドレス取得処理部の物理アドレス取得処理の流れを表わした流れ図である。
【図１２】本発明の変形例による物理アドレス取得処理部のサーチ結果正常時処理の流れを表わした流れ図である。
【図１３】本発明の変形例による物理アドレス取得処理部のサーチ結果誤り時処理の流れを表わした流れ図である。
【符号の説明】
【００６１】
２００  通信システム
２０１  通信端末
２０２  ＬＡＮ
２０３  パケット生成部
２０４、４０４  パケット解析部
２０５  送信処理部
２１１、４１１  パケットプロセッサ部
２１２  第１のデータ記憶部
２１３  第２のデータ記憶部
２２１  第１のデータアレイ部
２２２  第１のデータ格納処理部
２２３  第１のメモリアドレス出力処理部
２２４  第１のデータ出力処理部
２３１、４３１  物理アドレス取得処理部
２３２、４３２  パケット情報記憶処理部
２４１  第２のデータアレイ部
２４２  第２のデータ格納処理部
２４３  第２のデータ出力処理部
【図１】
2007034732.tif 000003
【図２】
2007034732.tif 000004
【図３】
2007034732.tif 000005
【図４】
2007034732.tif 000006
【図５】
2007034732.tif 000007
【図６】
2007034732.tif 000008
【図７】
2007034732.tif 000009
【図８】
2007034732.tif 000010
【図９】
2007034732.tif 000011
【図１０】
2007034732.tif 000012
【図１１】
2007034732.tif 000013
【図１２】
2007034732.tif 000014
【図１３】
2007034732.tif 000015