(57)【要約】【課題】複数のプロセッサにより、それぞれ異なるＯＳが実行されるコンピュータにおいて他のプロセッサやＯＳの処理に影響を与えることなく、正確にデータを受信させることができるようにする。【解決手段】受信部２０１は、受信すべきＩＰパケットなどのデータを受信し、アドレス解析部２０２は、受信したＩＰパケットの宛先ＩＰアドレスをチェックし、テーブル管理部２０４により記憶されているテーブルを検索する。テーブル管理部２０４は、ＰＵ１４２−１乃至ＳＰＵ１４２−３のそれぞれのプロセッサで稼動するＯＳに付与されたＩＰアドレスとＳＮＲとを対応付けたテーブルを記憶しており、割り込み発生部２０３は、所定のＳＮＲに対してＩＰパケットの受信を通知することで割り込みを発生させる。本発明は、ネットワークインタフェースカードに適用することができる。【選択図】図８
2007206955.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して受信したデータを、複数のプロセッサにより実行されるそれぞれ個別のOS（Operating System）により処理させる情報処理装置であって、
前記ネットワークから所定の単位のデータを受信する受信手段と、
前記受信手段により受信されたデータに付加された識別データを解析する解析手段と、
前記識別データと、前記OSを実行するプロセッサの割り込みレジスタを特定する情報とを対応付けたテーブルを保持する保持手段と、
前記保持手段に保持されるテーブルに基づいて特定される前記解析手段により解析された前記識別データに対応する前記割り込みレジスタに、前記受信手段により受信されたデータを書き込むことで、前記プロセッサに対する割り込み処理を発生させる発生手段と
を備える情報処理装置。
【請求項２】
前記受信手段により受信されるデータがIPパケットであり、前記識別情報は、前記IPパケットの宛先IPアドレスである
請求項１に記載の情報処理装置。
【請求項３】
前記受信手段により受信されるデータがデータリンク層のフレームであり、前記識別情報は、前記フレームの宛先MACアドレスである
請求項１に記載の情報処理装置。
【請求項４】
前記イーサネット（登録商標）のフレームは、IEEE 802.1Qに適合する形式のフレームであり、前記識別情報は、前記フレームのタグに含まれるＶＬＡＮＩＤである
請求項１に記載の情報処理装置。
【請求項５】
前記複数のプロセッサは、単一のOSで実行されるそれぞれ個別のプロセスを実行し、
前記保持手段は、前記識別データと、前記プロセスを実行するプロセッサの割り込みレジスタを特定する情報とを対応付けたテーブルを保持する
請求項１に記載の情報処理装置。
【請求項６】
ネットワークを介して受信したデータを、複数のプロセッサにより実行されるそれぞれ個別のOS（Operating System）により処理させる情報処理装置の情報処理方法であって、
前記ネットワークから所定の単位のデータを受信し、
前記受信されたデータに付加された識別データを解析し、
前記識別データと、前記OSを実行するプロセッサの割り込みレジスタを特定する情報とを対応付けたテーブルに基づいて、前記解析された前記識別データに対応する前記割り込みレジスタを特定し、
特定された前記割り込みレジスタに、前記受信されたデータを書き込むことで、前記プロセッサに対する割り込み処理を発生させるステップ
を含む情報処理方法。
【請求項７】
ネットワークを介して受信したデータを、複数のプロセッサにより実行されるそれぞれ個別のOS（Operating System）により処理させる情報処理装置に情報処理方法を実行させるプログラムであって、
前記ネットワークから所定の単位のデータの受信を制御し、
前記受信されたデータに付加された識別データの解析を制御し、
前記識別データと、前記OSを実行するプロセッサの割り込みレジスタを特定する情報とを対応付けたテーブルに基づいて、前記解析された前記識別データに対応する前記割り込みレジスタの特定を制御し、
特定された前記割り込みレジスタに、前記受信されたデータを書き込むことで、前記プロセッサに対する割り込み処理の発生を制御するステップ
を含むコンピュータが読み取り可能なプログラム。
【請求項８】
請求項７に記載のプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、プログラム、並びに記録媒体に関し、特に、複数のプロセッサにより、それぞれ異なるＯＳが実行されるコンピュータにおいて他のプロセッサやＯＳの処理に影響を与えることなく、正確にデータを受信させることができるようにする情報処理装置および方法、プログラム、並びに記録媒体に関する。
【背景技術】
【０００２】
近年、プロセッサの速度向上などに伴い、単一の物理計算機上で複数の仮想計算機を動作させることが可能となってきている。このような場合、通常、各仮想計算機においては異なるＯＳ（Operating  System）が動作する。
【０００３】
このように、１つのＣＰＵ（Central Processing Unit）において複数のＯＳが稼動しているコンピュータなどが、他のコンピュータなどと通信を行う場合、送信されてきたパケットなどのデータがどのＯＳに対して受信させるべきパケットであるかを正しく判定する必要がある。このため、ＩＰアドレスやＭＡＣアドレスなどを用いて、当該パケットを受信させるべきＯＳを特定する技術が提案されている（例えば、特許文献１参照）。
【０００４】
図１は、１つのＣＰＵ（Central Processing Unit）において複数のＯＳが稼動しているコンピュータの、パケットの受信に関する処理を行う部分の機能的構成例を示すブロック図である。ここでは、ＩＰアドレスを用いて、当該パケットを受信させるべきＯＳが特定される例について説明する。
【０００５】
同図において、ネットワークカードインタフェース１１は、通信媒体上に送信された信号を受信し、自分が受信すべきデータのフレーム（例えば、イーサネット（登録商標）フレーム）を受信する。そしてネットワークインタフェースカード１１は、割り込みコントローラ１２に割り込みの通知を行う。
【０００６】
ＣＰＵ１３は、割り込みコントローラの制御に基づいて、割り込み処理を実行する。このとき、ＣＰＵ１３上で実行されるソフトウェアなどで構成されるマイクロカーネル１４が、ネットワークカードインタフェース１１により受信されたフレームに格納されていたデータに基づいてＩＰアドレスを解析し、当該フレームのデータ（パケット）を受信させるべきＯＳを特定する。ここで、ＯＳの特定は、例えば、図２に示されるテーブルなど参照して行われる。
【０００７】
図２は、予め設定されたＯＳとＩＰアドレスの対応付けを表すテーブルの例を示す図である。この例では、ＩＰアドレス「１９２．１６８．０．１０」に対してＯＳ０が対応付けられており、ＩＰアドレス「１９２．１６８．０．１１」に対してＯＳ１が対応付けられており、ＩＰアドレス「１９２．１６８．０．１２」に対してＯＳ２が対応付けられている。
【０００８】
このようにして特定されたＯＳ０乃至ＯＳ２のいずれかに当該パケットのデータが供給されることになる。
【０００９】
また、近年では複数のプロセッサを有する情報処理装置が普及してきている。図３は、複数のプロセッサを有するコンピュータの、パケットの受信に関する処理を行う部分の機能的構成例を示すブロック図である。
【００１０】
図３の例では、CPU０乃至CPU２により単一のＯＳが実行される構成とされており、いまの場合、自分が受信すべきデータのフレーム（例えば、イーサネット（登録商標）フレーム）を受信したネットワークインタフェースカード１１は、割り込みコントローラ１２に割り込みの通知が行われ、その後、CPU０乃至CPU２のいずれかによりパケットの受信が行われる。このとき、パケットの受信を行うCPUは、例えば、ラウンドロビン方式で選択されるようにしてもよいし、最も負荷の少ないCPUが選択されるようにしてもよいし、あるいは、予め設定されたCPUが常にパケットの受信を行うようにしてもよい。
【００１１】
【特許文献１】特開２００４−２５２７７６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、図４に示されるように複数のＣＰＵ（CPU０乃至CPU２）により、それぞれ異なるＯＳ（OS０乃至OS２）が実行される情報処理装置においては、ラウンドロビン方式で選択されるCPUに割り込みを通知しても、実際にパケットを受信すべきＯＳは、別のCPUにおいて実行されている場合がある。このため、CPUに割り込みを通知する前に、予めどのOSで受信されるべきパケットであるかを解析する処理を行う必要があるが、従来の技術では、複数のＣＰＵにより、それぞれ異なるＯＳが実行される情報処理装置において他のＣＰＵやＯＳの処理に影響を与えることなく、正確にデータを受信させることは困難であった。
【００１３】
本発明はこのような状況に鑑みてなされたものであり、複数のプロセッサにより、それぞれ異なるＯＳが実行されるコンピュータにおいて他のプロセッサやＯＳの処理に影響を与えることなく、正確にデータを受信させることができるようにするものである。
【課題を解決するための手段】
【００１４】
本発明の一側面の情報処理装置は、ネットワークを介して受信したデータを、複数のプロセッサにより実行されるそれぞれ個別のOS（Operating System）により処理させる情報処理装置であって、前記ネットワークから所定の単位のデータを受信する受信手段と、前記受信手段により受信されたデータに付加された識別データを解析する解析手段と、前記識別データと、前記OSを実行するプロセッサの割り込みレジスタを特定する情報とを対応付けたテーブルを保持する保持手段と、前記保持手段に保持されるテーブルに基づいて特定される前記解析手段により解析された前記識別データに対応する前記割り込みレジスタに、前記受信手段により受信されたデータを書き込むことで、前記プロセッサに対する割り込み処理を発生させる発生手段とを備える情報処理装置である。
【００１５】
前記受信手段により受信されるデータがIPパケットであり、前記識別情報は、前記IPパケットの宛先IPアドレスであるようにすることができる。
【００１６】
前記受信手段により受信されるデータがデータリンク層のフレームであり、前記識別情報は、前記フレームの宛先MACアドレスであるようにすることができる。
【００１７】
前記イーサネット（登録商標）のフレームは、IEEE 802.1Qに適合する形式のフレームであり、前記識別情報は、前記フレームのタグに含まれるＶＬＡＮＩＤであるようにすることができる。
【００１８】
前記複数のプロセッサは、単一のOSで実行されるそれぞれ個別のプロセスを実行し、前記保持手段は、前記識別データと、前記プロセスを実行するプロセッサの割り込みレジスタを特定する情報とを対応付けたテーブルを保持するようにすることができる。
【００１９】
本発明の一側面の情報処理方法は、ネットワークを介して受信したデータを、複数のプロセッサにより実行されるそれぞれ個別のOS（Operating System）により処理させる情報処理装置の情報処理方法であって、前記ネットワークから所定の単位のデータを受信し、前記受信されたデータに付加された識別データを解析し、前記識別データと、前記OSを実行するプロセッサの割り込みレジスタを特定する情報とを対応付けたテーブルに基づいて、前記解析された前記識別データに対応する前記割り込みレジスタを特定し、特定された前記割り込みレジスタに、前記受信されたデータを書き込むことで、前記プロセッサに対する割り込み処理を発生させるステップを含む情報処理方法である。
【００２０】
本発明の一側面のプログラムは、ネットワークを介して受信したデータを、複数のプロセッサにより実行されるそれぞれ個別のOS（Operating System）により処理させる情報処理装置に情報処理方法を実行させるプログラムであって、前記ネットワークから所定の単位のデータの受信を制御し、前記受信されたデータに付加された識別データの解析を制御し、前記識別データと、前記OSを実行するプロセッサの割り込みレジスタを特定する情報とを対応付けたテーブルに基づいて、前記解析された前記識別データに対応する前記割り込みレジスタの特定を制御し、特定された前記割り込みレジスタに、前記受信されたデータを書き込むことで、前記プロセッサに対する割り込み処理の発生を制御するステップを含むコンピュータが読み取り可能なプログラムである。
【００２１】
本発明の一側面においては、ネットワークから所定の単位のデータが受信され、前記受信されたデータに付加された識別データが解析され、前記識別データと、前記OSを実行するプロセッサの割り込みレジスタを特定する情報とを対応付けたテーブルに基づいて、前記解析された前記識別データに対応する前記割り込みレジスタが特定され、特定された前記割り込みレジスタに、前記受信されたデータを書き込むことで、前記プロセッサに対する割り込み処理が発生させられる。
【発明の効果】
【００２２】
本発明によれば、複数のプロセッサにより、それぞれ異なるＯＳが実行されるコンピュータにおいて他のプロセッサやＯＳの処理に影響を与えることなく、正確にデータを受信させることができる。
【発明を実施するための最良の形態】
【００２３】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２４】
本発明の一側面の情報処理装置は、ネットワークを介して受信したデータを、複数のプロセッサ（例えば、図６のPU１４２−１乃至SPU１４２−３）により実行されるそれぞれ個別のOS（Operating System）により処理させる情報処理装置（例えば、図８のネットワークインタフェースカード１０１）であって、前記ネットワークから所定の単位のデータを受信する受信手段（例えば、図８の受信部２０１）と、前記受信手段により受信されたデータに付加された識別データを解析する解析手段（例えば、図８のアドレス解析部２０２）と、前記識別データと、前記OSを実行するプロセッサの割り込みレジスタ（例えば、図６のSNR１４１−１乃至１４１−３）を特定する情報とを対応付けたテーブルを保持する保持手段（例えば、図８のテーブル管理部２０４）と、前記保持手段に保持されるテーブルに基づいて特定される前記解析手段により解析された前記識別データに対応する前記割り込みレジスタに、前記受信手段により受信されたデータを書き込むことで、前記プロセッサに対する割り込み処理を発生させる発生手段（例えば、図８の割り込み発生部２０３）とを備える。
【００２５】
この情報処理装置は、前記複数のプロセッサが、単一のOS（例えば、図１４のＯＳ１４３）で実行されるそれぞれ個別のプロセス（例えば、図１４のプロセス１５１−１乃至１５１−３）を実行し、前記保持手段は、前記識別データと、前記プロセスを実行するプロセッサの割り込みレジスタを特定する情報とを対応付けたテーブルを保持するようにすることができる。
【００２６】
本発明の一側面の情報処理方法は、ネットワークを介して受信したデータを、複数のプロセッサ（例えば、図６のPU１４２−１乃至SPU１４２−３）により実行されるそれぞれ個別のOS（Operating System）により処理させる情報処理装置（例えば、図８のネットワークインタフェースカード１０１）の情報処理方法であって、前記ネットワークから所定の単位のデータを受信し（例えば、図９のステップＳ１０１の処理）、前記受信されたデータに付加された識別データを解析し（例えば、図９のステップＳ１０２の処理）、前記識別データと、前記OSを実行するプロセッサの割り込みレジスタ（例えば、図６のSNR１４１−１乃至１４１−３）を特定する情報とを対応付けたテーブルに基づいて、前記解析された前記識別データに対応する前記割り込みレジスタを特定し（例えば、図９のステップＳ１０３の処理）、特定された前記割り込みレジスタに、前記受信されたデータを書き込むことで、前記プロセッサに対する割り込み処理を発生させる（例えば、図９のステップＳ１０４の処理）ステップを含む。
【００２７】
以下、図面を参照して、本発明の実施の形態について説明する。
【００２８】
図５は、本発明を適用したネットワークインタフェースカードの一実施形態に係る例を示す図である。
【００２９】
図５において、ネットワークインタフェースカード１０１は、例えば、パーソナルコンピュータやサーバなどの端末に組み込まれて使用されるように構成されている。ネットワークインタフェースカードは、自身にケーブルなどの通信媒体が接続されることで、例えば、イーサネット（登録商標）などのネットワーク１０２に接続され、ネットワーク１０２に送信される信号を取得する。
【００３０】
ネットワークインタフェースカード１０１は、ネットワーク１０２から取得した信号に対応するデータのうち、ネットワークインタフェースカード１０１が組み込まれた端末が受信すべきイーサネット（登録商標）フレームやＩＰパケットなどのデータを受信する。ネットワークインタフェースカード１０１が組み込まれた端末が受信すべきデータを受信した場合、ネットワークインタフェースカード１０１は、図示せぬ内部バスなどを介して端末のプロセッサ１０３に対して割り込みを通知する。
【００３１】
プロセッサ１０３は、ネットワークインタフェースカード１０１が組み込まれた端末における各種の処理を実行し、ネットワークインタフェースカード１０１から割り込みの通知を受けた場合、ネットワークインタフェースカード１０１から供給されるデータを、図示せぬメモリの所定のエリアに転送させるよう端末を構成する各部を制御する。
【００３２】
本発明を適用したネットワークインタフェースカード１０１は、自身がマルチコア方式の高性能プロセッサ「Ｃｅｌｌ」の技術を採用した端末に組み込み可能となるように構成されている。「Ｃｅｌｌ」の技術を採用したコンピュータなどにおいては、複数のプロセッサにより、それぞれ異なるＯＳ（Operating  System）を稼動させることが可能となる。
【００３３】
図６は、「Ｃｅｌｌ」の技術を採用したコンピュータの構成と、ネットワークインタフェースカード１０１の関係を説明する図である。このコンピュータ（端末）においては、複数（いまの場合、３）のプロセッサとしてPU（Processing Unit）１４２−１、ＳＰＵ（Synergitic Processing Unit）１４２−２、ＳＰＵ１４２−３が儲けられており、ＰＵ１４２−１乃至ＳＰＵ１４２−３において、ＯＳ１４３−１乃至ＯＳ１４３−３が稼動しており、複数のプロセッサにおいて個別のOSがそれぞれ稼動される構成とされている。
【００３４】
「Ｃｅｌｌ」の技術を採用したコンピュータにおいては、各プロセッサ間での同期をとるため、または各プロセッサと、コンピュータに組み込まれた各種のデバイスとの間での同期をとるためのレジスタである、ＳＮＲ（Signal Notification Register）がプロセッサ毎に設けられる。いまの場合、ＰＵ１４２−１乃至ＳＰＵ１４２−３に対応してＳＮＲ１４１−１乃至ＳＮＲ１４１−３が設けられている。
【００３５】
例えば、コンピュータに組み込まれた各種のデバイスが、所定のプロセッサに対して割り込みを行う場合、割り込みを行うべきプロセッサに対応するＳＮＲに割り込みが発生したこと表すデータなどを書き込む。そして、そのＳＮＲに対応するプロセッサがＳＮＲに書き込まれたデータに基づいて、例えば、デバイスから供給されるデータを図示せぬメモリの所定のエリアに移動させるなどの割り込み処理を実行する。
【００３６】
複数のプロセッサにより、それぞれ異なるＯＳが実行される端末においては、ネットワークインタフェースカード１０１がデータを受信した場合、プロセッサに割り込みを通知する前に、予めどのOSで受信されるべきデータであるかを特定する必要がある。そこで、本発明においては、図７に示されるようなテーブルを参照することで、ネットワークインタフェースカード１０１が予めどのOSで受信されるべきデータであるかを特定する。
【００３７】
なお、ここでは、ＯＳ１４３−１乃至ＯＳ１４３−３に対してそれぞれ異なるＩＰアドレスが付与されているものとする。すなわち、ＯＳ１４３−１には、ＩＰアドレス「１９２．１６８．０．１０」が付与されており、ＯＳ１４３−２には、ＩＰアドレス「１９２．１６８．０．１１」が付与されており、ＯＳ１４３−３には、ＩＰアドレス「１９２．１６８．０．１２」が付与されているものとする。
【００３８】
図７は、ＩＰアドレスとＳＮＲとを対応付けたテーブルの例を示す図である。同図において、ＳＮＲ０乃至ＳＮＲ２は、それぞれ図６のＳＮＲ１４１−１乃至ＳＮＲ１４１−３を特定するＩＤとされ、ＩＰアドレス「１９２．１６８．０．１０」に対してSNR０が対応付けられており、ＩＰアドレス「１９２．１６８．０．１１」に対してSNR１が対応付けられており、ＩＰアドレス「１９２．１６８．０．１２」に対してSNR２が対応付けられている。
【００３９】
ネットワークインタフェースカード１０１が図７に示されるようなテーブルを参照して受信したデータ（いまの場合、ＩＰパケット）に対応するＳＮＲを特定すれば、他のプロセッサやＯＳの処理に影響を与えることなく、正確にデータを受信させることが可能となる。
【００４０】
図８は、ネットワークインタフェースカード１０１の機能的構成例を示すブロック図である。
【００４１】
ネットワークインタフェースカード１０１の受信部２０１は、ネットワーク１０２に送信された信号を取得し、ネットワーク１０２から取得した信号に対応するデータのうち、ネットワークインタフェースカード１０１が組み込まれた端末が受信すべきイーサネット（登録商標）フレームやＩＰパケットなどのデータを受信する。
【００４２】
アドレス解析部２０２は、受信部２０１が受信したデータ（いまの場合、ＩＰパケット）の宛先ＩＰアドレスをチェックし、テーブル管理部２０４により記憶されているテーブルを検索する。
【００４３】
テーブル管理部２０４は、例えば、図７に示されるようなＩＰアドレスとＳＮＲとを対応付けたテーブルを記憶しており、ＰＵ１４２−１乃至ＳＰＵ１４２−３により、それぞれのプロセッサで稼動するＯＳに付与されたＩＰアドレスと、それぞれのプロセッサに対応して設けられたＳＮＲのＩＤに関する情報の供給を受けて、テーブルを生成または更新し、記憶する。
【００４４】
割り込み発生部２０３は、アドレス解析部２０２からの指令に基づいて、所定のＳＮＲに対してＩＰパケットの受信を通知することで割り込みを発生させる。すなわち、割り込み発生部２０３は、アドレス解析部２０２がテーブル管理部２０４により記憶されているテーブルに基づいて特定したＩＤ（例えば、ＳＮＲ２）に対応するＳＮＲ（例えば、ＳＮＲ１４１−３）にネットワークインタフェースカード１０１からの割り込みが発生したこと表すデータなどを書き込む。そして、そのＳＮＲに対応するプロセッサ（例えば、ＳＰＵ１４２−３）がＳＮＲに書き込まれたデータに基づいて、受信部２０１が受信したデータを図示せぬメモリの所定のエリアに移動させる割り込み処理を実行する。
【００４５】
図９は、ネットワークインタフェースカード１０１による割り込み処理を説明するフローチャートである。
【００４６】
ステップＳ１０１において、受信部２０１は、ネットワーク１０２に送信された信号を取得し、ネットワーク１０２から取得した信号に対応するデータのうち、ネットワークインタフェースカード１０１が組み込まれた端末が受信すべきＩＰパケットなどのデータを受信する。
【００４７】
ステップＳ１０２において、アドレス解析部２０２は、受信部２０１が受信したＩＰパケットの宛先ＩＰアドレスを解析する。
【００４８】
ステップＳ１０３において、アドレス解析部２０２は、テーブル管理部２０４により記憶されているテーブルを検索する。このとき、例えば、図７に示されるようなテーブルが参照され、ステップＳ１０２の処理で解析されたＩＰアドレスに対応するＳＮＲのＩＤが検索され、検索されたＳＮＲのＩＤが割り込み発生部２０３に供給される。
【００４９】
ステップＳ１０４において、割り込み発生部２０３は、ステップＳ１０３の処理で検索されたＳＮＲのＩＤに基づいて特定されたＳＮＲに対してＩＰパケットの受信を通知することで割り込みを発生させる。
【００５０】
このようにして割り込み通知処理が行われる。このようにすることで、他のプロセッサやＯＳの処理に影響を与えることなく、所定のＯＳに正確にデータを受信させることが可能となる。
【００５１】
以上においては、ＯＳ１４３−１乃至ＯＳ１４３−３に対してそれぞれ異なるＩＰアドレスが付与されている場合の例について説明したが、ＯＳ１４３−１乃至ＯＳ１４３−３に対してそれぞれ異なるＭＡＣアドレスが付与されている場合、テーブル管理部２０４により生成または更新されて記憶されるテーブルは、図１０に示されるようにすることがきる。
【００５２】
図１０は、ＭＡＣアドレスとＳＮＲとを対応付けたテーブルの例を示す図である。同図において、ＳＮＲ０乃至ＳＮＲ２は、それぞれ図６のＳＮＲ１４１−１乃至ＳＮＲ１４１−３を特定するＩＤとされ、ＭＡＣアドレス「08：00：46：EA：10：BE」に対してSNR０が対応付けられており、ＭＡＣアドレス「08：00：46：D2：10：C2」に対してSNR１が対応付けられており、ＭＡＣアドレス「08：00：46：54：42：F7」に対してSNR２が対応付けられている。
【００５３】
図７を参照して上述した場合と同様に、ネットワークインタフェースカード１０１が図１０に示されるようなテーブルを参照して受信したデータ（いまの場合、イーサネット（登録商標）などのフレーム）に対応するＳＮＲを特定すれば、他のプロセッサやＯＳの処理に影響を与えることなく、正確にデータを受信させることが可能となるが、図７の場合、ネットワーク層のパケットのアドレスを解析する必要があったのに対し、図１０の場合、ネットワーク層の下位の階層であるデータリンク層のフレームのアドレスを解析するだけでよいので、図７の場合と比較して、より負荷を軽減させることが可能となる。
【００５４】
図１１は、図１０の場合に対応した、ネットワークインタフェースカード１０１による割り込み処理を説明するフローチャートである。
【００５５】
ステップＳ１２１において、受信部２０１は、ネットワーク１０２に送信された信号を取得し、ネットワーク１０２から取得した信号に対応するデータのうち、ネットワークインタフェースカード１０１が組み込まれた端末が受信すべきイーサネット（登録商標）フレームなどのデータを受信する。
【００５６】
ステップＳ１２２において、アドレス解析部２０２は、受信部２０１が受信したフレームの宛先ＭＡＣアドレスを解析する。
【００５７】
ステップＳ１２３において、アドレス解析部２０２は、テーブル管理部２０４により記憶されているテーブルを検索する。このとき、例えば、図１０に示されるようなテーブルが参照され、ステップＳ１２２の処理で解析されたＭＡＣアドレスに対応するＳＮＲのＩＤが検索され、検索されたＳＮＲのＩＤが割り込み発生部２０３に供給される。
【００５８】
ステップＳ１２４において、割り込み発生部２０３は、ステップＳ１２３の処理で検索されたＳＮＲのＩＤに基づいて特定されたＳＮＲに対してフレームの受信を通知することで割り込みを発生させる。
【００５９】
このようにして割り込み通知処理が行われる。このようにすることで、やはり他のプロセッサやＯＳの処理に影響を与えることなく、所定のＯＳに正確にデータを受信させることが可能となる。
【００６０】
また、ネットワーク１０２がIEEE802.1Qに対応するネットワークである場合、ＯＳ１４３−１乃至ＯＳ１４３−３に対してそれぞれ異なるVLANIDが付与されていることもあり得る。IEEE802.1Ｑは、例えば、スイッチングハブを用いて構成されるバーチャルＬＡＮ（VLAN）に関する規格であり、IEEE802.1Qに適合した仕様を有するネットワーク機器により送受信される通信データおいては、イーサネット（登録商標）フレームの「Source  Address」のフィールドと「Type」のフィールドの間に「Tag」のフィールドが挿入される。そして、「Tag」のフィールドに含まれるVLANIDに基づいて、そのフレームが属するVLAN（Virtual LAN）が特定されることになる。
【００６１】
ＯＳ１４３−１乃至ＯＳ１４３−３に対してそれぞれ異なるVLANIDが付与されている場合、テーブル管理部２０４により生成または更新されて記憶されるテーブルは、図１２に示されるようにすることがきる。
【００６２】
図１２は、VLANIDとＳＮＲとを対応付けたテーブルの例を示す図である。同図において、ＳＮＲ０乃至ＳＮＲ２は、それぞれ図６のＳＮＲ１４１−１乃至ＳＮＲ１４１−３を特定するＩＤとされ、VLANID「１０」に対してSNR０が対応付けられており、VLANID「１１」に対してSNR１が対応付けられており、VLANID「１２」に対してSNR２が対応付けられている。
【００６３】
図１３は、図１２の場合に対応した、ネットワークインタフェースカード１０１による割り込み処理を説明するフローチャートである。
【００６４】
ステップＳ１４１において、受信部２０１は、ネットワーク１０２に送信された信号を取得し、ネットワーク１０２から取得した信号に対応するデータのうち、ネットワークインタフェースカード１０１が組み込まれた端末が受信すべきイーサネット（登録商標）フレームなどのデータを受信する。
【００６５】
ステップＳ１４２において、アドレス解析部２０２は、受信部２０１が受信したフレームのVLANIDを解析する。
【００６６】
ステップＳ１４３において、アドレス解析部２０２は、テーブル管理部２０４により記憶されているテーブルを検索する。このとき、例えば、図１２に示されるようなテーブルが参照され、ステップＳ１４２の処理で解析されたVLANIDに対応するＳＮＲのＩＤが検索され、検索されたＳＮＲのＩＤが割り込み発生部２０３に供給される。
【００６７】
ステップＳ１４４において、割り込み発生部２０３は、ステップＳ１４３の処理で検索されたＳＮＲのＩＤに基づいて特定されたＳＮＲに対してフレームの受信を通知することで割り込みを発生させる。
【００６８】
このようにして割り込み通知処理が行われる。このようにすることで、やはり他のプロセッサやＯＳの処理に影響を与えることなく、所定のＯＳに正確にデータを受信させることが可能となる。
【００６９】
ここまで、複数のOSに対してそれぞれ異なるIPアドレス、MACアドレス、またはVLANIDが付与されている場合の例について説明してきたが、例えば、単一のOSにおいて稼動する複数のプロセスに対してそれぞれ異なるIPアドレス、MACアドレス、またはVLANIDが付与される場合も考えられる。
【００７０】
例えば、「Ｃｅｌｌ」の技術を採用したコンピュータにおいて、図１４に示されるように、ＰＵ１４１−１乃至ＳＰＵ１４１−３において単一のＯＳ１４３が稼動しており、ＯＳ１４３の中で、プロセス１５１−１乃至１５１−３が稼動している場合も考えられる。
【００７１】
図１４に示されるような場合であっても、プロセス１５１−１乃至１５１−３に対してそれぞれ異なるIPアドレス、MACアドレス、またはVLANIDが付与されていれば、本発明を適用することが可能である。この場合、ＰＵ１４２−１乃至ＳＰＵ１４２−３からそれぞれのプロセッサで処理するプロセスに付与されたＩＰアドレス、MACアドレス、またはVLANIDと、それぞれのプロセッサに対応して設けられたＳＮＲのＩＤに関する情報をテーブル管理部２０４に供給し、図７、図１０、または図１２に示されるようなテーブルを生成または更新するようにすればよい。
【００７２】
なお、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。すなわち、上述したネットワークインタフェースカードを情報処理装置として構成し、その情報処理装置にインストールされたソフトウェアにより上述した一連の処理を実行させるようにすることも可能である。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、インターネットなどのネットワークや、リムーバブルメディアなどからなる記録媒体からインストールされる。
【００７３】
本明細書において上述した一連の処理を実行するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【００７４】
【図１】１つのCPUにおいて複数のＯＳが稼動しているコンピュータの、パケットの受信に関する処理を行う部分の機能的構成例を示すブロック図である。
【図２】図１の構成において用いられるＯＳとＩＰアドレスの対応付けを表すテーブルの例を示す図である。
【図３】複数のＣＰＵを有するコンピュータの、パケットの受信に関する処理を行う部分の機能的構成例を示すブロック図である。
【図４】複数のＣＰＵにより、それぞれ異なるＯＳが実行されるコンピュータの、パケットの受信に関する処理を行う部分の機能的構成例を示すブロック図である。
【図５】本発明を適用したネットワークインタフェースカードの一実施形態に係る例を示す図である。
【図６】図５のネットワークインタフェースカードを、複数のプロセッサにより、それぞれ異なるＯＳが実行される端末に組み込んだ例を示す図である。
【図７】図６の構成において用いられるSNRとＩＰアドレスの対応付けを表すテーブルの例を示す図である。
【図８】本発明のネットワークインタフェースカードの機能的構成例を示すブロック図である。
【図９】図７のテーブルを参照して行われる割り込み通知処理の例を説明するフローチャートである。
【図１０】図６の構成において用いられるSNRとMACアドレスの対応付けを表すテーブルの例を示す図である。
【図１１】図１０のテーブルを参照して行われる割り込み通知処理の例を説明するフローチャートである。
【図１２】図６の構成において用いられるSNRとVLANIDの対応付けを表すテーブルの例を示す図である。
【図１３】図１２のテーブルを参照して行われる割り込み通知処理の例を説明するフローチャートである。
【図１４】図５のネットワークインタフェースカードを、複数のプロセッサを有し、単一のOS内でそれぞれ異なるプロセスが実行される端末に組み込んだ例を示す図である。
【符号の説明】
【００７５】
１０１  ネットワークインタフェースカード，  １０２  ネットワーク，  １４１−１乃至１４１−３  ＳＮＲ，  １４２−１  PU，  １４２−２  ＳＰＵ，  １４２−３  ＳＰＵ，  １４３−１乃至１４３−３  ＯＳ，  １５１−１乃至１５１−３  プロセス，  ２０１  受信部，  ２０２  アドレス解析部，  ２０３  割り込み発生部，  ２０４  テーブル管理部
【図１】
2007206955.tif 000003
【図２】
2007206955.tif 000004
【図３】
2007206955.tif 000005
【図４】
2007206955.tif 000006
【図５】
2007206955.tif 000007
【図６】
2007206955.tif 000008
【図７】
2007206955.tif 000009
【図８】
2007206955.tif 000010
【図９】
2007206955.tif 000011
【図１０】
2007206955.tif 000012
【図１１】
2007206955.tif 000013
【図１２】
2007206955.tif 000014
【図１３】
2007206955.tif 000015
【図１４】
2007206955.tif 000016