(57)【要約】インターネットプロトコル(IP)ルーターのファンクションを、ホストコンピュータのチップセットに常駐するネットワーク処理ユニット(NPU)(210)へと一体化し、ホストコンピュータのリソースが個別のネットワークアプライアンスとして認知されるようにする新規なネットワークアーキテクチャー。ＮＰＵ(210)は、たとえ一実施形態においてそれが同じチップを共有していても、見掛け上、ホストコンピュータとは論理的に分離している。
2005526313.tif 000002
【特許請求の範囲】
【請求項１】
処理ユニットの分散型ネットワークを設ける方法において、
ａ）ネットワーク処理ユニットを設けるステップと、
ｂ）少なくとも１つのホストを設けるステップであって、前記少なくとも１つのホストは、中央処理ユニット(CPU)と、複数の補助処理ユニットとを備え、前記中央処理ユニットにはホストオペレーティングシステムがロードされ、且つ前記複数の補助処理ユニットは、前記ホストオペレーティングシステムをバイパスして、前記ネットワーク処理ユニットを経て互いに直接通信するようなステップと、
を備える方法。
【請求項２】
前記複数の補助処理ユニットは、ネットワークプロトコルを使用して前記ネットワーク処理ユニットと通信する、請求項１に記載の方法。
【請求項３】
前記複数の補助処理ユニットの各々は、媒体アクセスコントローラ(MAC)を経て前記ネットワーク処理ユニットと通信する、請求項２に記載の方法。
【請求項４】
前記ネットワークプロトコルは送信制御プロトコル／インターネットプロトコル(TCP/IP)である、請求項２に記載の方法。
【請求項５】
前記ネットワークプロトコルはユーザデータグラムプロトコル(UDP)である、請求項２に記載の方法。
【請求項６】
前記複数の補助処理ユニットの各々は個別のネットワークアプライアンスとして認知される、請求項１に記載の方法。
【請求項７】
前記複数の補助処理ユニットの１つは補助記憶処理ユニットである、請求項１に記載の方法。
【請求項８】
前記複数の補助処理ユニットの１つは補助オーディオ処理ユニットである、請求項１に記載の方法。
【請求項９】
前記複数の補助処理ユニットの１つは補助グラフィック処理ユニットである、請求項１に記載の方法。
【請求項１０】
前記複数の補助処理ユニットの１つは補助ビデオ処理ユニットである、請求項１に記載の方法。
【請求項１１】
前記複数の補助処理ユニットの１つは補助物理的処理ユニットである、請求項１に記載の方法。
【請求項１２】
前記少なくとも１つのホストは仮想ホストである、請求項１に記載の方法。
【請求項１３】
前記少なくとも１つのホストは複数の仮想ホストを備え、前記複数の仮想ホストの少なくとも２つには個別のオペレーティングシステムがロードされる、請求項１に記載の方法。
【請求項１４】
前記複数の仮想ホストの各々は、前記ネットワーク処理ユニットを経て前記複数の補助処理ユニットにアクセスできる、請求項１３に記載の方法。
【請求項１５】
前記複数の補助処理ユニットは、補助記憶処理ユニットと、補助オーディオ処理ユニットと、補助グラフィック処理ユニットと、補助ビデオ処理ユニットとを備える、請求項１に記載の方法。
【請求項１６】
処理ユニットの分散型ネットワーク(200)において、
ネットワーク処理ユニット(210)と、
少なくとも１つのホスト(250)であって、該少なくとも１つのホストは、中央処理ユニット(CPU)と、複数の補助処理ユニット(220,230)とを備え、前記中央処理ユニットにはホストオペレーティングシステムがロードされ、且つ前記複数の補助処理ユニット(220,230)は、前記ホストオペレーティングシステムをバイパスして、前記ネットワーク処理ユニットを経て互いに直接通信するような少なくとも１つのホストと、
を備える分散型ネットワーク。
【請求項１７】
前記複数の補助処理ユニットは、ネットワークプロトコルを使用して前記ネットワーク処理ユニットと通信する、請求項１６に記載のネットワーク。
【請求項１８】
前記複数の補助処理ユニットの各々は、媒体アクセスコントローラ(MAC)を経て前記ネットワーク処理ユニットと通信する、請求項１７に記載のネットワーク。
【請求項１９】
前記ネットワークプロトコルは送信制御プロトコル／インターネットプロトコル(TCP/IP)である、請求項１７に記載のネットワーク。
【請求項２０】
前記ネットワークプロトコルはユーザデータグラムプロトコル(UDP)である、請求項１７に記載のネットワーク。
【請求項２１】
前記複数の補助処理ユニットの各々は個別のネットワークアプライアンスとして認知される、請求項１６に記載のネットワーク。
【請求項２２】
前記複数の補助処理ユニットの１つは補助記憶処理ユニットである、請求項１６に記載のネットワーク。
【請求項２３】
前記複数の補助処理ユニットの１つは補助オーディオ処理ユニットである、請求項１６に記載のネットワーク。
【請求項２４】
前記複数の補助処理ユニットの１つは補助グラフィック処理ユニットである、請求項１６に記載のネットワーク。
【請求項２５】
前記複数の補助処理ユニットの１つは補助ビデオ処理ユニットである、請求項１６に記載のネットワーク。
【請求項２６】
前記複数の補助処理ユニットの１つは補助物理的処理ユニットである、請求項１６に記載のネットワーク。
【請求項２７】
前記少なくとも１つのホストは仮想ホストである、請求項１６に記載のネットワーク。
【請求項２８】
前記少なくとも１つのホストは複数の仮想ホストを備え、前記複数の仮想ホストの少なくとも２つには個別のオペレーティングシステムがロードされる、請求項１６に記載のネットワーク。
【請求項２９】
前記複数の仮想ホストの各々は、前記ネットワーク処理ユニットを経て前記複数の補助処理ユニットにアクセスできる、請求項２８に記載のネットワーク。
【請求項３０】
前記複数の補助処理ユニットは、補助記憶処理ユニットと、補助オーディオ処理ユニットと、補助グラフィック処理ユニットと、補助ビデオ処理ユニットとを備える、請求項１６に記載のネットワーク。
【請求項３１】
前記ネットワーク処理ユニットはチップセットにおいて実施される、請求項１６に記載のネットワーク。
【請求項３２】
前記複数の補助処理ユニットの少なくとも１つはチップセットにおいて実施される、請求項３１に記載のネットワーク。
【請求項３３】
処理ユニットの分散型ネットワークを設ける方法において、
ａ）ネットワーク処理ユニットを設けるステップと、
ｂ）少なくとも１つのホストを設けるステップであって、前記少なくとも１つのホストは、ホストオペレーティングシステムがロードされた中央処理ユニット(CPU)を含むようなステップと、
ｃ）複数の補助処理ユニットを設けるステップであって、前記複数の補助処理ユニットは、前記ホストオペレーティングシステムをバイパスして、前記ネットワーク処理ユニットを経て互いに直接通信するようなステップと、
を備える方法。
【請求項３４】
前記複数の補助処理ユニットは、ネットワークプロトコルを使用して前記ネットワーク処理ユニットと通信する、請求項３３に記載の方法。
【請求項３５】
前記複数の補助処理ユニットの各々は、媒体アクセスコントローラ(MAC)を経て前記ネットワーク処理ユニットと通信する、請求項３４に記載の方法。
【請求項３６】
前記ネットワークプロトコルは送信制御プロトコル／インターネットプロトコル(TCP/IP)である、請求項３４に記載の方法。
【請求項３７】
前記ネットワークプロトコルはユーザデータグラムプロトコル(UDP)である、請求項３４に記載の方法。
【請求項３８】
前記複数の補助処理ユニットの各々は個別のネットワークアプライアンスとして認知される、請求項３３に記載の方法。
【請求項３９】
前記複数の補助処理ユニットの１つは補助記憶処理ユニットである、請求項３３に記載の方法。
【請求項４０】
前記複数の補助処理ユニットの１つは補助オーディオ処理ユニットである、請求項３３に記載の方法。
【請求項４１】
前記複数の補助処理ユニットの１つは補助グラフィック処理ユニットである、請求項３３に記載の方法。
【請求項４２】
前記複数の補助処理ユニットの１つは補助ビデオ処理ユニットである、請求項３３に記載の方法。
【請求項４３】
前記複数の補助処理ユニットの１つは補助物理的処理ユニットである、請求項３３に記載の方法。
【請求項４４】
前記少なくとも１つのホストは仮想ホストである、請求項３３に記載の方法。
【請求項４５】
前記少なくとも１つのホストは複数の仮想ホストを備え、前記複数の仮想ホストの少なくとも２つには個別のオペレーティングシステムがロードされる、請求項３３に記載の方法。
【請求項４６】
前記複数の仮想ホストの各々は、前記ネットワーク処理ユニットを経て前記複数の補助処理ユニットにアクセスできる、請求項４５に記載の方法。
【請求項４７】
処理ユニットの分散型ネットワーク(200)において、
ネットワーク処理ユニット(210)と、
少なくとも１つのホスト(250)であって、ホストオペレーティングシステムがロードされた中央処理ユニット(CPU)を含むような少なくとも１つのホストと、
複数の補助処理ユニット(220,230)であって、前記ホストオペレーティングシステムをバイパスして、前記ネットワーク処理ユニットを経て互いに直接通信するような複数の補助処理ユニットと、
を備える分散型ネットワーク。
【請求項４８】
前記複数の補助処理ユニットは、ネットワークプロトコルを使用して前記ネットワーク処理ユニットと通信する、請求項４７に記載のネットワーク。
【請求項４９】
前記複数の補助処理ユニットの各々は、媒体アクセスコントローラ(MAC)を経て前記ネットワーク処理ユニットと通信する、請求項４８に記載のネットワーク。
【請求項５０】
前記ネットワークプロトコルは送信制御プロトコル／インターネットプロトコル(TCP/IP)である、請求項４８に記載のネットワーク。
【請求項５１】
前記ネットワークプロトコルはユーザデータグラムプロトコル(UDP)である、請求項４８に記載のネットワーク。
【請求項５２】
前記複数の補助処理ユニットの各々は個別のネットワークアプライアンスとして認知される、請求項３７に記載のネットワーク。
【請求項５３】
前記複数の補助処理ユニットの１つは補助記憶処理ユニットである、請求項４７に記載のネットワーク。
【請求項５４】
前記複数の補助処理ユニットの１つは補助オーディオ処理ユニットである、請求項４７に記載のネットワーク。
【請求項５５】
前記複数の補助処理ユニットの１つは補助グラフィック処理ユニットである、請求項４７に記載のネットワーク。
【請求項５６】
前記複数の補助処理ユニットの１つは補助ビデオ処理ユニットである、請求項４７に記載のネットワーク。
【請求項５７】
前記複数の補助処理ユニットの１つは補助物理的処理ユニットである、請求項４７に記載のネットワーク。
【請求項５８】
前記少なくとも１つのホストは仮想ホストである、請求項４７に記載のネットワーク。
【請求項５９】
前記少なくとも１つのホストは複数の仮想ホストを備え、前記複数の仮想ホストの少なくとも２つには個別のオペレーティングシステムがロードされる、請求項４７に記載のネットワーク。
【請求項６０】
前記複数の仮想ホストの各々は、前記ネットワーク処理ユニットを経て前記複数の補助処理ユニットにアクセスできる、請求項５９に記載のネットワーク。
【請求項６１】
前記ネットワーク処理ユニットはチップセットにおいて実施される、請求項４７に記載のネットワーク。
【請求項６２】
前記複数の補助処理ユニットの少なくとも１つはチップセットにおいて実施される、請求項６１に記載のネットワーク。
【請求項６３】
処理ユニット及びホストリソースの分散型ネットワークを設ける方法において、
ａ）ネットワーク処理ユニットを設けるステップと、
ｂ）少なくとも１つのホストを設けるステップであって、前記少なくとも１つのホストは、ホストオペレーティングシステムがロードされた中央処理ユニット(CPU)と、複数のホストリソースとを含み、該複数のホストリソースの各々は、前記中央処理ユニットにより前記ネットワーク処理ユニットを経て直接アクセスできるようなステップと、
を備える方法。
【請求項６４】
前記複数のホストリソースの１つは記憶装置である、請求項６３に記載の方法。
【請求項６５】
前記複数のホストリソースの１つはリードオンリメモリ(ROM)である、請求項６３に記載の方法。
【請求項６６】
前記複数のホストリソースの１つはランダムアクセスメモリ(RAM)である、請求項６３に記載の方法。
【請求項６７】
処理ユニット及びホストリソースの分散型ネットワーク(200)において、
ネットワーク処理ユニット(210)と、
少なくとも１つのホスト(250)であって、該少なくとも１つのホストは、ホストオペレーティングシステムがロードされた中央処理ユニット(CPU)と、複数のホストリソースとを含み、該複数のホストリソースの各々は、前記中央処理ユニットにより前記ネットワーク処理ユニットを経て直接アクセスできるような少なくとも１つのホストと、
を備える分散型ネットワーク。
【請求項６８】
前記複数のホストリソースの１つは記憶装置である、請求項６７に記載のネットワーク。
【請求項６９】
前記複数のホストリソースの１つはリードオンリメモリ(ROM)である、請求項６７に記載のネットワーク。
【請求項７０】
前記複数のホストリソースの１つはランダムアクセスメモリ(RAM)である、請求項６７に記載のネットワーク。
【請求項７１】
処理ユニット及びホストリソースの分散型ネットワークを設ける方法において、
ａ）第１ネットワーク処理ユニットを設けるステップと、
ｂ）第１ホストオペレーティングシステムがロードされた第１中央処理ユニット(CPU)と、複数の第１ホストリソースとを含む第１ホストを設けるステップと、
ｃ）第２ネットワーク処理ユニットを設けるステップと、
ｄ）第２ホストオペレーティングシステムがロードされた第２中央処理ユニット(CPU)と、複数の第２ホストリソースとを含む第２ホストを設けるステップであって、前記複数の第１ホストリソースの各々は、前記第１ホストオペレーティングシステムをバイパスすることにより前記第１及び第２ネットワーク処理ユニットを経てアクセスできるようにするステップと、
を備える方法。
【請求項７２】
前記複数の第２ホストリソースの各々は、前記第２ホストオペレーティングシステムをバイパスすることにより前記第１及び第２ネットワーク処理ユニットを経てアクセスできる、請求項７１に記載の方法。
【請求項７３】
ｅ）前記複数の第１ホストリソースの１つから前記第２ホストオペレーティングシステムへ媒体ストリームをリアルタイムで送給するステップを更に備える、請求項７１に記載の方法。
【請求項７４】
前記複数の第１ホストリソースは少なくとも１つの補助処理ユニットを含む、請求項７１に記載の方法。
【請求項７５】
前記少なくとも１つの補助処理ユニットは補助記憶処理ユニットである、請求項７４に記載の方法。
【請求項７６】
前記少なくとも１つの補助処理ユニットは補助オーディオ処理ユニットである、請求項７４に記載の方法。
【請求項７７】
前記少なくとも１つの補助処理ユニットは補助グラフィック処理ユニットである、請求項７４に記載の方法。
【請求項７８】
前記少なくとも１つの補助処理ユニットは補助ビデオ処理ユニットである、請求項７４に記載の方法。
【請求項７９】
前記少なくとも１つの補助処理ユニットは補助物理的処理ユニットである、請求項７４に記載の方法。
【請求項８０】
処理ユニット及びホストリソースの分散型ネットワーク(300a,300b)において、
第１ネットワーク処理ユニッ(310a)と、
第１ホストオペレーティングシステムがロードされた第１中央処理ユニット(CPU)と、複数の第１ホストリソースとを含む第１ホスト(350a)と、
第２ネットワーク処理ユニット(310b)と、
第２ホストオペレーティングシステムがロードされた第２中央処理ユニット(CPU)と、複数の第２ホストリソースとを含む第２ホスト(350b)と、
を備え、前記複数の第１ホストリソースの各々は、前記第１ホストオペレーティングシステムをバイパスすることにより前記第１及び第２ネットワーク処理ユニットを経てアクセスできるようにされた分配型ネットワーク。
【請求項８１】
前記複数の第２ホストリソースの各々は、前記第２ホストオペレーティングシステムをバイパスすることにより前記第１及び第２ネットワーク処理ユニットを経てアクセスできる、請求項８０に記載のネットワーク。
【請求項８２】
前記複数の第１ホストリソースの１つは、前記第２ホストオペレーティングシステムへ媒体ストリームをリアルタイムで送給する、請求項８０に記載のネットワーク。
【請求項８３】
前記複数の第１ホストリソースは少なくとも１つの補助処理ユニットを含む、請求項８０に記載のネットワーク。
【請求項８４】
前記少なくとも１つの補助処理ユニットは補助記憶処理ユニットである、請求項８３に記載のネットワーク。
【請求項８５】
前記少なくとも１つの補助処理ユニットは補助オーディオ処理ユニットである、請求項８３に記載のネットワーク。
【請求項８６】
前記少なくとも１つの補助処理ユニットは補助グラフィック処理ユニットである、請求項８３に記載のネットワーク。
【請求項８７】
前記少なくとも１つの補助処理ユニットは補助ビデオ処理ユニットである、請求項８３に記載のネットワーク。
【請求項８８】
前記少なくとも１つの補助処理ユニットは補助物理的処理ユニットである、請求項８３に記載のネットワーク。
【請求項８９】
処理ユニットの分散型ネットワークを設ける方法において、
ａ）ネットワーク処理ユニットを設けるステップと、
ｂ）少なくとも１つのホストを設けるステップであって、前記少なくとも１つのホストは、中央処理ユニット(CPU)と、少なくとも１つの補助処理ユニットとを備え、前記中央処理ユニットにはホストオペレーティングシステムがロードされ、且つ前記少なくとも１つの補助処理ユニットは、前記ホストオペレーティングシステムをバイパスして、前記ネットワーク処理ユニットと直接通信するようなステップと、
を備える方法。
【請求項９０】
前記少なくとも１つの補助処理ユニットは、ネットワークプロトコルを使用して前記ネットワーク処理ユニットと通信する、請求項８９に記載の方法。
【請求項９１】
前記少なくとも１つの補助処理ユニットは、媒体アクセスコントローラ(MAC)を経て前記ネットワーク処理ユニットと通信する、請求項９０に記載の方法。
【請求項９２】
処理ユニットの分散型ネットワーク(200)において、
ネットワーク処理ユニット(210)と、
少なくとも１つのホスト(250)であって、該少なくとも１つのホストは、中央処理ユニット(CPU)と、少なくとも１つの補助処理ユニット(220,230)とを備え、前記中央処理ユニットにはホストオペレーティングシステムがロードされ、且つ前記少なくとも１つの補助処理ユニットは、前記ホストオペレーティングシステムをバイパスして、前記ネットワーク処理ユニットと直接通信するような少なくとも１つのホストと、
を備える分散型ネットワーク。
【請求項９３】
前記少なくとも１つの補助処理ユニットは、ネットワークプロトコルを使用して前記ネットワーク処理ユニットと通信する、請求項９２に記載のネットワーク。
【請求項９４】
前記少なくとも１つの補助処理ユニットは、媒体アクセスコントローラ(MAC)を経て前記ネットワーク処理ユニットと通信する、請求項９３に記載のネットワーク。
【請求項９５】
ホストオペレーティングシステムがロードされた中央処理ユニット(CPU)を含む少なくとも１つのホストとインターフェイスするための処理ユニットの分散型ネットワークを設ける方法において、
ａ）ネットワーク処理ユニットを設けるステップと、
ｂ）少なくとも１つの補助処理ユニットを設けるステップであって、前記ネットワーク処理ユニット及び前記少なくとも１つの補助処理ユニットが、前記ホストオペレーティングシステムをバイパスして互いに直接通信するようなステップと、
を備える方法。
【請求項９６】
前記少なくとも１つの補助処理ユニットは、前記ホストオペレーティングシステムをバイパスして前記ネットワーク処理ユニットを経て互いに直接通信する２つの補助処理ユニットを含む、請求項９５に記載の方法。
【請求項９７】
前記少なくとも１つの補助処理ユニットは、ネットワークプロトコルを使用して前記ネットワーク処理ユニットと通信する、請求項９５に記載の方法。
【請求項９８】
前記少なくとも１つの補助処理ユニットは、媒体アクセスコントローラ(MAC)を経て前記ネットワーク処理ユニットと通信する、請求項９７に記載の方法。
【請求項９９】
前記ネットワークプロトコルは送信制御プロトコル／インターネットプロトコル(TCP/IP)である、請求項９７に記載の方法。
【請求項１００】
前記ネットワークプロトコルはユーザデータグラムプロトコル(UDP)である、請求項９７に記載の方法。
【請求項１０１】
前記少なくとも１つの補助処理ユニットは個別のネットワークアプライアンスとして認知される、請求項９５に記載の方法。
【請求項１０２】
前記少なくとも１つの補助処理ユニットは補助記憶処理ユニットである、請求項９５に記載の方法。
【請求項１０３】
前記少なくとも１つの補助処理ユニットは補助オーディオ処理ユニットである、請求項９５に記載の方法。
【請求項１０４】
前記少なくとも１つの補助処理ユニットは補助グラフィック処理ユニットである、請求項９５に記載の方法。
【請求項１０５】
前記少なくとも１つの補助処理ユニットは補助ビデオ処理ユニットである、請求項９５に記載の方法。
【請求項１０６】
前記少なくとも１つの補助処理ユニットは補助物理的処理ユニットである、請求項９５に記載の方法。
【請求項１０７】
前記少なくとも１つのホストは仮想ホストである、請求項９５に記載の方法。
【請求項１０８】
前記少なくとも１つのホストは複数の仮想ホストを備え、前記複数の仮想ホストの少なくとも２つには個別のオペレーティングシステムがロードされる、請求項９５に記載の方法。
【請求項１０９】
前記複数の仮想ホストの各々は、前記ネットワーク処理ユニットを経て前記複数の補助処理ユニットにアクセスできる、請求項１０８に記載の方法。
【請求項１１０】
前記少なくとも１つの補助処理ユニットは、補助記憶処理ユニットと、補助オーディオ処理ユニットと、補助グラフィック処理ユニットと、補助ビデオ処理ユニットとを備える、請求項９５に記載の方法。
【請求項１１１】
ホストオペレーティングシステムがロードされた中央処理ユニット(CPU)を含む少なくとも１つのホスト(250)とインターフェイスするための処理ユニットの分散型ネットワーク(200)において、
ネットワーク処理ユニット(210)と、
少なくとも１つの補助処理ユニット(220,230)であって、前記ネットワーク処理ユニット及び前記少なくとも１つの補助処理ユニットが、前記ホストオペレーティングシステムをバイパスして互いに直接通信するようにされた少なくとも１つの補助処理ユニットと、
を備える分散型ネットワーク。
【請求項１１２】
前記少なくとも１つの補助処理ユニットは、前記ホストオペレーティングシステムをバイパスして前記ネットワーク処理ユニットを経て互いに直接通信する２つの補助処理ユニットを含む、請求項１１１に記載のネットワーク。
【請求項１１３】
前記少なくとも１つの補助処理ユニットは、ネットワークプロトコルを使用して前記ネットワーク処理ユニットと通信する、請求項１１１に記載のネットワーク。
【請求項１１４】
前記少なくとも１つの補助処理ユニットは、媒体アクセスコントローラ(MAC)を経て前記ネットワーク処理ユニットと通信する、請求項１１３に記載のネットワーク。
【請求項１１５】
前記ネットワークプロトコルは送信制御プロトコル／インターネットプロトコル(TCP/IP)である、請求項１１３に記載のネットワーク。
【請求項１１６】
前記ネットワークプロトコルはユーザデータグラムプロトコル(UDP)である、請求項１１３に記載のネットワーク。
【請求項１１７】
前記少なくとも１つの補助処理ユニットは個別のネットワークアプライアンスとして認知される、請求項１１１に記載のネットワーク。
【請求項１１８】
前記少なくとも１つの補助処理ユニットは補助記憶処理ユニットである、請求項１１１に記載のネットワーク。
【請求項１１９】
前記少なくとも１つの補助処理ユニットは補助オーディオ処理ユニットである、請求項１１１に記載のネットワーク。
【請求項１２０】
前記少なくとも１つの補助処理ユニットは補助グラフィック処理ユニットである、請求項１１１に記載のネットワーク。
【請求項１２１】
前記少なくとも１つの補助処理ユニットは補助ビデオ処理ユニットである、請求項１１１に記載のネットワーク。
【請求項１２２】
前記少なくとも１つの補助処理ユニットは補助物理的処理ユニットである、請求項１１１に記載のネットワーク。
【請求項１２３】
前記少なくとも１つのホストは仮想ホストである、請求項１１１に記載のネットワーク。
【請求項１２４】
前記少なくとも１つのホストは複数の仮想ホストを備え、前記複数の仮想ホストの少なくとも２つには個別のオペレーティングシステムがロードされる、請求項１１１に記載のネットワーク。
【請求項１２５】
前記複数の仮想ホストの各々は、前記ネットワーク処理ユニットを経て前記少なくとも１つの補助処理ユニットにアクセスできる、請求項１２４に記載のネットワーク。
【請求項１２６】
前記少なくとも１つの補助処理ユニットは、補助記憶処理ユニットと、補助オーディオ処理ユニットと、補助グラフィック処理ユニットと、補助ビデオ処理ユニットとを備える、請求項１１１に記載のネットワーク。
【請求項１２７】
前記ネットワーク処理ユニットはチップセットにおいて実施される、請求項１１１に記載のネットワーク。
【請求項１２８】
前記複数の補助処理ユニットの前記少なくとも１つはチップセットにおいて実施される、請求項１２７に記載のネットワーク。
【請求項１２９】
処理ユニットの分散型ネットワークを設ける方法において、
ａ）ネットワーク処理ユニットを設けるステップと、
ｂ）少なくとも１つのホストを設けるステップであって、前記少なくとも１つのホストは、中央処理ユニット(CPU)と、複数の補助処理ユニットとを備え、前記中央処理ユニットにはホストオペレーティングシステムがロードされ、前記複数の補助処理ユニットは、前記ホストオペレーティングシステムをバイパスして、前記ネットワーク処理ユニットを経て互いに直接通信し、更に、前記複数の補助処理ユニットは、送信制御プロトコル／インターネットプロトコル(TCP/IP)を使用して前記ネットワーク処理ユニットと通信するようなステップと、
を備える方法。
【請求項１３０】
処理ユニットの分散型ネットワークを設ける方法において、
ａ）ネットワーク処理ユニットを設けるステップと、
ｂ）少なくとも１つのホストを設けるステップであって、前記少なくとも１つのホストは、中央処理ユニット(CPU)と、複数の補助処理ユニットとを備え、前記中央処理ユニットにはホストオペレーティングシステムがロードされ、前記複数の補助処理ユニットは、前記ホストオペレーティングシステムをバイパスして、前記ネットワーク処理ユニットを経て互いに直接通信し、更に、前記複数の補助処理ユニットは、ユーザデータグラムプロトコル(UDP)を使用して前記ネットワーク処理ユニットと通信するようなステップと、
を備える方法。
【請求項１３１】
処理ユニットの分散型ネットワーク(200)において、
ネットワーク処理ユニット(210)と、
少なくとも１つのホスト(250)であって、前記少なくとも１つのホストは、中央処理ユニット(CPU)と、複数の補助処理ユニット(220,230)とを備え、前記中央処理ユニットにはホストオペレーティングシステムがロードされ、前記複数の補助処理ユニットは、前記ホストオペレーティングシステムをバイパスして、前記ネットワーク処理ユニットを経て互いに直接通信し、更に、前記複数の補助処理ユニットは、送信制御プロトコル／インターネットプロトコル(TCP/IP)を使用して前記ネットワーク処理ユニットと通信するような少なくとも１つのホストと、
を備える分散型ネットワーク。
【請求項１３２】
処理ユニットの分散型ネットワーク(200)において、
ネットワーク処理ユニット(210)と、
少なくとも１つのホスト(250)であって、前記少なくとも１つのホストは、中央処理ユニット(CPU)と、複数の補助処理ユニット(220,230)とを備え、前記中央処理ユニットにはホストオペレーティングシステムがロードされ、前記複数の補助処理ユニット(220,230)は、前記ホストオペレーティングシステムをバイパスして、前記ネットワーク処理ユニットを経て互いに直接通信し、更に、前記複数の補助処理ユニットは、ユーザデータグラムプロトコル(UDP)を使用して前記ネットワーク処理ユニットと通信するような少なくとも１つのホストと、
を備える分散型ネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、新規なネットワークアーキテクチャーに係る。より詳細には、本発明は、インターネットプロトコル（ＩＰ）ルーターのファンクションを、ホストコンピュータのチップセットに常駐するネットワーク処理ユニットへと一体化し、ホストコンピュータのリソースが個別のネットワークアプライアンスとして認知されるようにする。
【開示の背景】
【０００２】
図１は、データルーティングファンクションがホスト中央処理ユニット（ＣＰＵ）及びそのオペレーティングシステム（ＯＳ）１１０により実行される慣習的な内部コンテンツソース及びデータパイプを示す。即ち、ホストコンピュータは、多数の記憶装置１２０と、複数の媒体エンジン１３０と、例えば、ユニバーサルシリーズバス（ＵＳＢ）等の入力／出力ポート１４０を経てアクセスできる複数の他の装置とを含むことができる。次いで、ホストコンピュータは、アプリケーションプログラミングインターフェイス（ＡＰＩ）及び媒体アクセスコントローラ（ＭＡＣ）を経てネットワーク１５０にアクセスすることができる。
【０００３】
しかしながら、このデータルーティングアーキテクチャーの大きな欠点は、ホストＣＰＵ／ＯＳを伴わないとホストコンピュータのリソース又は装置にアクセスできないことである。通常、外部コンピュータからホストリソースにアクセスすることが禁止されるか、或いは高レベルプロトコルを使用してホストコンピュータを介してアクセスを要求することが必要となる。ホストＣＰＵ／ＯＳに無理強いする場合には、データ流がＯＳスタックに積み上げられて実質的な待ち時間が生じることになる。
【０００４】
それ故、ホストコンピュータのリソースを個別のネットワークアプライアンスとして認知するのを許し、ホストコンピュータのＣＰＵ／ＯＳの干渉なしにアクセスすることのできる新規なネットワークアーキテクチャーが要望される。
【発明の概要】
【０００５】
本発明は、新規なネットワークアーキテクチャーに係る。より詳細には、本発明は、インターネットプロトコル（ＩＰ）ルーターのファンクションを、ホストコンピュータのチップセットに常駐するネットワーク処理ユニット（ＮＰＵ）へと一体化し、ホストコンピュータのリソースが個別のネットワークアプライアンスとして認知されるようにする。ＮＰＵは、たとえ一実施形態においてそれが同じチップを共有していても、見掛け上、ホストコンピュータとは論理的に分離している。ホストコンピュータの「チップセット」とは、種々のインターフェイス（例えば、メインメモリ、ハードディスク、フロッピー、ＵＳＢ、ＰＣＩ等）をなすようにＣＰＵに結合される１つ以上の集積回路で、インテル社のノースブリッジ及びサウスブリッジ集積回路によって例示されるものである。
【０００６】
オペレーションに際して、ホストコンピュータは、ネットワーク処理ユニットと通信する仮想ポート（即ち、ホストＭＡＣ）を有し、あたかも標準ネットワークプロトコルを使用した外部ネットワークアプライアンスであるかのようにＮＰＵと通信する。一実施形態では、ホストコンピュータは、ＮＰＵを経て、専用タスクを実行するように配備された１つ以上の補助又は専用処理ユニットと通信する。これらの補助処理ユニットは、ホストの一部分であってもよいし、異なるアプリケーション要求を満足するようにホストとは個別に配備されてもよい。例えば、これら補助処理ユニットの幾つかは、グラフィック処理ユニット（ＧＰＵ）、オーディオ処理ユニット（ＡＰＵ）、ビデオ処理ユニット（ＶＰＵ）、記憶処理ユニット（ＳＰＵ）、及び物理的処理ユニット（ＰＰＵ）を含むが、これらに限定されない。本開示では、これらの補助処理ユニットをＸＰＵと称し、「Ｘ」は、処理ユニットにより実行される特定のファンクションを表わすように置き換える。最後に、ネットワーク処理ユニットは、それ自体、ＸＰＵである。というのは、パケットをＸＰＵ間でルーティングするのに加えて、認証、暗号化、圧縮、ＴＣＰ、ＩＰＳｅｃ／ＶＰＮ／ＰＰＰカプセル化等の、これらパケットに対する種々の処理の加速化を実行できるからである。
【０００７】
本発明の１つの独特の態様では、ＸＰＵが、一体化ルーターとして効果的に働くＮＰＵに対する論理的直接アタッチメントを有し、これにより、ＸＰＵが個別のネットワークアプライアンスとして見られるのを許す。これらの補助処理ユニットは、この論理的ネットワークアーキテクチャーに第１クラス状態を有するので、ホストＣＰＵ／ＯＳを伴わずに、ＩＰ、ＴＣＰ、ＵＤＰ等の標準インターネットプロトコルを直接使用して、互いに又は外部コンピュータと（例えば、別のＮＰＵを経て）通信することが許される。この新規なアーキテクチャーを使用して、ＮＰＵは、分散型計算環境においてローカル（又はホスト）アクセス及びリモードアクセスの両方の加速化を与える。
【０００８】
更に、ホストコンピュータの残りのリソース、例えば、その物理的メモリ、ＲＯＭ、リアルタイムクロック、割り込み等を仮想化することにより、本発明は、単一のチップセットに多数の仮想ホストコンピュータを設けてその各々をこのＮＰＵにアタッチするのを許す。これら仮想コンピュータの各々又は仮想ホストは、同一又は異なるオペレーティングシステムのそれ自身のコピーを実行することができると共に、標準ネットワークプロトコルを使用して、他の仮想コンピュータ及び一体化ネットワーク接続アプライアンスと通信することができる。有効なことに、本発明は、標準ホストオペレーティングシステム及びホストコンピュータ定義の下に存在するそれ自身のハードウェアレベルのオペレーティングシステム及びグラフィックユーザインターフェイス（ＧＵＩ）を実施すると共に、コンピュータユーザが、そのホストコンピュータの標準的な定義を変更せずに、ネットワークを容易に構成したり又はある仮想コンピュータから別のものへスイッチしたりするのを許す。
【０００９】
本発明の教示は、添付図面を参照した以下の詳細な説明を考慮することにより容易に理解できよう。
【００１０】
理解を容易にするために、幾つかの図面に共通した同一の要素を指示するために、可能な限り、同じ参照番号を使用する。
【詳細な説明】
【００１１】
図２は、本発明の新規な内部コンテンツソース及びデータパイプ２００を示すブロック図である。図１とは異なり、このネットワークアーキテクチャーは、内部コンテンツソース及びデータパイプの中心に本発明のネットワーク処理ユニット２１０を有する。ホストＣＰＵ／ＯＳ２５０は、もはやデータルーティング機構の中心ではない。この新規なアーキテクチャーの１つの効果は、ＮＰＵ２１０がローカル又はホストアクセスとリモートアクセスとの両方の加速化を与えることである。
【００１２】
オペレーティングシステムとは、アプリケーションプログラムのためのソフトウェアプラットホームであり、その典型例は、マイクロソフトウインドウズ、ユニックス、及びアップルマッキントッシュＯＳである。オペレーティングシステムは、別のオペレーティングシステム（例えば、仮想オペレーティングシステム）、或いはおそらくアプリケーションプログラムのような別の基礎的なソフトウェアプラットホームの上部で実行することができる。
【００１３】
オペレーションに際して、ホストＣＰＵ／ＯＳ２５０は、ネットワーク処理ユニット２１０と通信する仮想ポート（即ち、ホストＭＡＣ）を有し、あたかも標準ネットワークプロトコル、例えば、ＴＣＰ／ＩＰプロトコルを使用した外部ネットワークアプライアンスであるかのようにＮＰＵと通信する。一実施形態では、ホストコンピュータは、ＮＰＵを経て、専用タスクを実行するように配備された１つ以上の補助又は専用処理ユニット２２０、２３０と通信する。これらの補助処理ユニットは、ホストの一部分であってもよいし、異なるアプリケーション要求を満足するようにホストとは個別に配備されてもよい。
【００１４】
例えば、これら補助処理ユニットの幾つかは、グラフィック処理ユニット（ＧＰＵ）、オーディオ処理ユニット（ＡＰＵ）、ビデオ処理ユニット（ＶＰＵ）、物理的処理ユニット（ＰＰＵ）、及び記憶処理ユニット（ＳＰＵ）２２０を含むが、これらに限定されない。これら補助処理ユニットの幾つかは、媒体エンジン２３０の一部分として配備することができる一方、ＳＰＵ２２０は、ホストの記憶装置と共に配備される。最後に、ネットワーク処理ユニットそれ自身は、ＸＰＵである。というのは、パケットをＸＰＵ間でルーティングするのに加えて、認証、暗号化、圧縮、ＴＣＰ、ＩＰＳｅｃ／ＶＰＮ／ＰＰＰカプセル化等の、これらパケットに対する種々の処理の加速化を実行できるからである。
【００１５】
一実施形態において、ＮＰＵ２１０は、ホストコンピュータ２５０と同じ「ボックス」又はシャーシ内、即ち通常は同じチップセット内に存在するネットワークルーターアプライアンスである。このＮＰＵは、次のような専用ファンクションを実行する種々の他の「ＸＰＵ」を接続するように働く。
【００１６】
１）記憶処理ユニット（ＳＰＵ）は、ファイルシステムを実施する補助処理ユニットで、このファイルシステムは、ホストによりローカルアクセスすることができるか、又はＮＰＵを経て外界にリモート接続することができる。このＳＰＵは、データ記憶のエンドポイントとして振舞うので、特殊なＸＰＵである。ストリームは、ＳＰＵファイルから発生するか、又はＳＰＵファイルで終了することができる。
【００１７】
２）オーディオ処理ユニット（ＡＰＵ）は、個々の「ボイス」に対してオーディオ効果を実施し、それらを少数のチャンネルへと混合する補助処理ユニットである。又、このＡＰＵは、ＮＰＵを経てネットワークにわたり送信／受信されたオーディオパケットのカプセル化／カプセル解除も実行する。
【００１８】
３）ビデオ処理ユニット（ＶＰＵ）は、圧縮されたビデオパケット（例えば、ＭＰＥＧ−２圧縮）に対して動作し、それらを圧縮するか又は圧縮解除する以外は、ＡＰＵと同様である補助処理ユニットである。又、このＶＰＵは、ビットストリーム又はネットワークビデオパケットへのカプセル化も実行する。
【００１９】
４）グラフィック処理ユニット（ＧＰＵ）は、グラフィックプリミティブを取り上げて、（部分）フレームバッファを形成する補助処理ユニットである。このＧＰＵは、レンダリングされたグラフィックプリミティブのエンドポイントとして働くので、特殊なＸＰＵである。ストリームは、ＧＰＵフレームバッファで終了するか、又はフレームバッファから生のピクセルとして発生することができる。
【００２０】
５）物理的処理ユニット（ＰＰＵ）は、オブジェクトの位置、現在速度ベクトル、及び力の方程式を取り上げて、新たな位置、速度ベクトル及び衝突情報を発生する補助処理ユニットである。
【００２１】
６）ネットワーク処理ユニット（ＮＰＵ）は、それ自体、ＸＰＵである。というのは、パケットをＸＰＵ間でルーティングするのに加えて、認証、暗号化、圧縮、ＴＣＰ、ＩＰＳｅｃ／ＶＰＮ／ＰＰＰカプセル化等の、これらパケットに対する種々の処理の加速化を実行できるからである。
【００２２】
前記ＸＰＵの幾つかは、ホスト２５０及びＮＰＵ２１０との関連性に関して多数の共通性を有する。第１に、ＸＰＵは、ホストＣＰＵ及びＯ／Ｓ２５０によりローカルリソースとして直接アクセスすることができる。即ち、直接ローカル通信チャンネルを使用することにより通信が行なわれる。
【００２３】
第２に、ＸＰＵは、ＮＰＵを経てネットワークに配置し、他のネットワークノードからリモートアクセスすることができる（図３に示すように）。これは、ＸＰＵが、ネットワークパケットにカプセル化された情報を処理できることを示す。
【００２４】
第３に、ＸＰＵは、ローカルホストからでも「リモートノード」としてアクセスすることができる。即ち、ネットワークプロトコルを使用することによりＮＰＵを経て通信が行なわれる。
【００２５】
第４に、ＸＰＵは、ホスト（ＣＰＵ＋Ｏ／Ｓ）が「オフ」状態にあるときでも、常に「オン」状態にある（ほとんどのアプライアンスと同様に）。この独特の特徴は、ＸＰＵがホストＣＰＵ／ＯＳを伴わずに動作するのを許し、例えば、ホストを伴わずにホストのディスクドライブからデータを抽出するのを許す。より重要なことに、たとえＣＰＵ／ＯＳが休眠状態、例えば、スリープモードにあるときでも、ホストのリソースを依然使用することができる。
【００２６】
第５に、ＸＰＵは、少なくとも２セットの処理待ち行列を有し、その１つは、非リアルタイムパケット用のもので、且つ少なくとも１つは、リアルタイムパケット用のものである。この二重の待ち行列と、ＮＰＵにおける同様のリアルタイム待ち行列とが組み合わされて、ＮＰＵ及びＸＰＵのシステムがリアルタイムストリームに対する待ち時間及び帯域巾を保証するのを許す。
【００２７】
第６に、ＸＰＵは、２つのソフトウェアドライバを有し、その１つは、ＸＰＵへのホスト側接続を管理し、もう１つは、ＸＰＵのリモートアクセスされる要素を管理する。オペレーションに際して、ＳＷドライバは、プッシュバッファ（ＰＢ）と称するアブストラクトコマンド待ち行列を使用してＸＰＵと通信する。各ドライバは、そのドライバからＸＰＵへ進む少なくとも１つのＰＢと、ＸＰＵからそのドライバへ進む少なくとも１つのＰＢとを有する。プッシュバッファは、参考としてここに援用する米国特許第６，０９２，１２４号に説明されている。
【００２８】
第７に、ＸＰＵは、ホスト側ではユーザレベルアプリケーションにより直接アクセスすることもできる。即ち、これは、Ｏ／Ｓによるユーザスペースバッファのレイジー・ピニング(lazy-pinning)を伴う。このレイジー・ピニングとは、要求時に、即ち特定のＸＰＵにより変換が必要とされたときに、メモリページの仮想−物理アドレス変換をロックすることを意味する。変換がもはや必要でなくなると、それらをアンロックして、オペレーティングシステムがそれらのページをページアウトするのを許す。これらバッファの仮想−物理マッピングは、ＸＰＵへ通される。個別の一対のＰＢがユーザのアドレススペースにリンクされ、Ｏ／Ｓドライバは、コンテキストスイッチをＸＰＵと整合する。
【００２９】
本発明は、ネットワーク処理ユニット２１０を使用して、ＣＰＵ／ＯＳを伴わずにルーティングファンクションを実行することを開示するが、ＣＰＵ／ＯＳ２５０は、そのリソース、例えば、記憶装置との別の直接通信チャンネル２５５を依然有している。これは、ＮＰＵを経て、或いはローカルアクセスチャンネル２６６又は２５７を経て直接的に、そのリソース又は媒体エンジンと通信する選択肢をホストＣＰＵ／ＯＳに与える。
【００３０】
実際に、ＣＰＵ／ＯＳは、一般的なルーティングファンクションには含まれないが、本発明の一実施形態では、例外的ルーティングの問題がホストＣＰＵ／ＯＳにより解決される。例えば、ＮＰＵが処理不能のパケットを受信した場合に、ＮＰＵは、そのパケットをホストＣＰＵ／ＯＳへ解決のために転送する。ＣＰＵ／ＯＳのこの限定使用は、異なる問題を解決するためにホストＣＰＵ／ＯＳの処理能力をより賢明に利用する選択肢を保持しながら、ホスト処理を加速するように働く。
【００３１】
更に、ホストＣＰＵ／ＯＳ２５０を伴わずに、ＮＰＵを経て、入力／出力通信チャンネル２４０、例えば、ＵＳＢを経て、ホストリソースにアクセスすることもできる。例えば、本アーキテクチャーは、ホストコンピュータ２５０の残りのリソース、例えば、その物理的メモリ、リードオンリメモリ（ＲＯＭ）、リアルタイムクロック、割り込み等々を仮想化することができ、単一のチップセットに多数の仮想ホストを設けてその各ホストがＮＰＵ２１０にアタッチされるのを許す。
【００３２】
本発明の１つの独特の態様では、ＸＰＵが、一体化ルーターとして効果的に働くＮＰＵに対する論理的直接アタッチメントを有し、これにより、ＸＰＵが個別のネットワークアプライアンスとして見られるのを許す。これらの補助処理ユニットは、この論理的ネットワークアーキテクチャーに第１クラス状態を有するので、ホストＣＰＵ／ＯＳを伴わずに、ＩＰ、ＴＣＰ、ＵＤＰ等の標準インターネットプロトコルを直接使用して、互いに又は外部コンピュータと（例えば、別のＮＰＵを経て）通信することが許される。この新規なアーキテクチャーを使用して、ＮＰＵは、分散型計算環境においてローカル（又はホスト）アクセス及びリモードアクセスの両方の加速化を与える。
【００３３】
図３は、ホストコンピュータ３００ａ−ｎのネットワークが複数のネットワーク処理ユニット３１０ａ−ｎを経て互いに通信するところを示すブロック図である。この独特の構成は、ホストアクセス及びリモートアクセスの両方の加速化を与える。加速されたファンクションは、パケット化ストリームに関して本発明を考察することにより最も良く理解できよう。
【００３４】
ＮＰＵ及びＸＰＵのこのシステムは、このシステム内に流れるパケット化データのストリームに関連して考察するのが最も良い。システムにより許される種々の形式のストリームが存在する。この説明において、「ホスト」という語は、Ｏ／Ｓカーネル又はユーザレベルプロセスに関連してホストＣＰＵ及びメモリを組み合せたものを意味する。「ノード」という語は、ＮＰＵに直結されたＭＡＣへの布線又はワイヤレス接続を経てＮＰＵにアタッチされるリモートネットワーク接続ホスト又は装置を指す（例えば、図４に示すように）。
【００３５】
ホスト対ＸＰＵストリームは、ホスト３５０ａからＸＰＵ３３０ａ直接流れるストリームである。これは、専用ＸＰＵ（例えば、通信経路３５７を経ての専用ＧＰＵ）に対する典型的な筋書きである。このストリームは、ＮＰＵ３１０ａを横断しない。
【００３６】
ＸＰＵ対ホストストリームは、ＸＰＵからホストへ直接流れるストリームである。その一例は、ＳＰＵ３２０ａから経路３５５を経て読み取られるローカルファイルである。このストリームは、ＮＰＵ３１０ａを横断しない。
【００３７】
ホスト対ＸＰＵ対ホストストリームは、ホスト３５０ａから処理のためにＸＰＵ３３０ａへ流れ、次いで、ホスト３５０ａへ返送されるストリームである。その一例は、ホストがボイスデータをＡＰＵへ直接転送し、ボイスを最終的な混合バッファへ処理し、これを、その後に経路３５７を経てホストへ返送する場合である。このストリームは、ＮＰＵ３１０ａを横断しない。
【００３８】
ホスト対ＮＰＵ対ＸＰＵストリームは、ホスト３５０ａからＮＰＵ３１０ａを経てＸＰＵ３３０ａ又は３２０ａへ流れるネットワークストリームである。３つの当事者が、標準ネットワークプロトコル、例えば、ＴＣＰ／ＩＰを使用してパケット化データを転送する。
【００３９】
ＸＰＵ対ＮＰＵ対ホストは、ＸＰＵ３３０ａ又は３２０ａからＮＰＵ３１０ａを経てホスト３５０ａへ流れるネットワークストリームである。３つの当事者が、標準ネットワークプロトコル、例えば、ＴＣＰ／ＩＰを使用してパケット化データを転送する。
【００４０】
ホスト対ＮＰＵ対ＸＰＵ対ＮＰＵ対ホストは、前記２つのストリームの組み合わせであるネットワークストリームである。３つの当事者が、標準ネットワークプロトコル、例えば、ＴＣＰ／ＩＰを使用してパケット化データを転送する。
【００４１】
ホスト対ＮＰＵ対ノードは、ホスト３５０ａからＮＰＵ３１０ａを経てリモートノード（例えば、ＮＰＵ３１０ｂ）へ流れるネットワークストリームである。これは、ローカルホスト３５０ａが第２のＮＰＵ３１０ｂを経て別のホストのＸＰＵ３３０ｂと通信しアクセスするのを許す。
【００４２】
ノード対ＮＰＵ対ホストは、リモートノード（例えば、ＮＰＵ３１０ｂ）からＮＰＵ３１０ａを経てホスト３５０ａへストリームが流れる逆ネットワークストリームである。これは、リモートＮＰＵ３５０ｂがローカルＮＰＵ３１０ａを経てローカルホスト３５０ａと通信するのを許す。
【００４３】
ノード対ＮＰＵ対ＸＰＵは、リモートノード３５０ｂからＮＰＵ３５０ａを経てＸＰＵ３３０ａへ流れ、そこで、終りとなるネットワークストリームである。これは、リモートＮＰＵ３１０ｂがローカルＮＰＵ３１０ａを経てローカルＸＰＵ３３０ａと通信するのを許す。
【００４４】
ＸＰＵ対ＮＰＵ対ノードは、ＸＰＵ３３０ａから流れて、ローカルＮＰＵ３１０ａを経てリモートノード（例えば、ＮＰＵ３１０ｂ）へ発生されるネットワークストリームである。
【００４５】
ノード０対ＮＰＵ対ＸＰＵ対ＮＰＵ対ノード１は、前記２つのストリームの組合せである。ノード０及びノード１は、同じでも異なってもよいことに注意されたい。例えば、ノード０は、３１０ａであり、ＮＰＵは、３１０ｂであり、ＸＰＵは、３３０ｂであり、ＮＰＵは、３１０ｂであり、更に、ノード１は、３１０ｎである。或いは又、ノード０は、３１０ａであり、ＮＰＵは、３１０ｂであり、ＸＰＵは、３３０ｂであり、ＮＰＵは、３１０ｂであり、更に、ノード１は、３１０ａである。
【００４６】
｛ホスト、ノード０、ＸＰＵ０｝対ＮＰＵ対ＸＰＵ１対ＮＰＵ対ＸＰＵ２対ＮＰＵ対｛ホスト、ノード１、ＸＰＵ３｝は、ホスト、リモートノード又はＸＰＵから発生し、ＮＰＵを経てある処理のために別のＸＰＵへ進み、次いで、ＮＰＵを経てある付加的な処理のために別のＸＰＵへ進み、次いで、ホスト、別のリモートノード又は別のＸＰＵで終了となるストリームである。一体化された処理ユニットのネットワークの本アーキテクチャーは、ホストアクセス及びリモートアクセスの両加速化が著しく向上されたパワフルで融通性のある分散型処理環境を提供することが明らかである。
【００４７】
本アーキテクチャーのもとでは、多数の効果が達成される。第１に、他のコンピュータ及びネットワークアプライアンスを同じチップセットへと緊密に一体化するのが有益である。第２に、ホストコンピュータのＩ／Ｏファンクションを、無理強いされたＣＰＵ／ＯＳに関連した慣習的な待ち時間が解消されるインテリジェントプロセッサの分散型ネットワークへとオフロードするのが非常に効果的である。第３に、これらの補助Ｉ／Ｏプロセッサに、ホストコンピュータの定義を変更せずに、チップセット（図２に破線で任意に示された）内の第１クラスネットワークアプライアンス状態を与えるのが効果的である。第４に、これらの補助Ｉ／Ｏプロセッサを、ホストコンピュータ、外部コンピュータ、並びに内部及び外部ネットワークアプライアンスの間で共有するのを許すのが効果的である。第５に、ホストコンピュータの残りのリソースを仮想化するのを許し、インテリジェントな補助Ｉ／Ｏプロセッサのネットワークを共有しつつ、ホストコンピュータの多数の仮想コピーを同じチップセット内に実施できるのが効果的である。最後に、ユーザがネットワークを構成すると共にホストコンピュータ又は仮想ホストの仮想コピー間でシームレスにスイッチするのを許すハードウェアレベルのオペレーティングシステム及びグラフィックユーザインターフェイス（ＧＵＩ）を使用するのが効果的である。
【００４８】
本発明の一実施形態では、一体化された処理ユニットの前記ネットワークを使用してリアルタイム媒体ストリーミングが実施される。より詳細には、媒体ストリーミングは、通常、多数のソフトウェア層を伴う。従って、特に、ソフトウェアが汎用コンピュータで実行されるときには、待ち時間を予想できない。より重要なことに、媒体ストリーミングは、通常、ホストコンピュータで実行される他のアプリケーションに甚だしい悪影響を及ぼす。
【００４９】
しかしながら、ＡＰＵ又はＧＰＵのような媒体装置をＮＰＵ＋ＳＰＵ組合体にアタッチすることにより、今や、待ち時間を最小にして保証すると共に、メインホストＣＰＵをオフロードすることができる。例えば、図３を参照すれば、リモート受信者３５０ｂ（通常ワイヤレスでアタッチされた）から制御要求が到着することがある。これらの制御要求は、再生、ストップ、巻き戻し、早送り、休止、タイトル選択、等々を含んでもよい。ストリームが設定されると、生のデータを、ＳＰＵ３２０ａで管理されたディスクからＮＰＵ３１０ａを経て行先クライアントへ直接的にストリーミングすることができる。或いは又、データは、ＧＰＵ３３０ａ又はＡＰＵ３３０ａにより予め処理された後に、ＮＰＵ３１０ａを経て送出されてもよい。この場合も、１つの重要な観点は、ホストＣＰＵ３５０ａを伴わずに、リアルタイム媒体ストリーミングを実行できることである。システム全体にわたる専用の待ち行列処理が待ち時間及び帯域巾を保証する。
【００５０】
この媒体ストリーミング実施形態は、本発明の能力及び融通性を明確に実証する。このリアルタイム媒体ストリーミング実施形態の１つの実施例は、集中型マルチ媒体ホストサーバー又はコンピュータが、記憶された媒体ストリームのライブラリーを含む大型の記憶装置を有するか、或いはＤＶＤプレーヤ、「ＰＶＲ」（パーソナルビデオレコーダー）又は「ＤＶＲ」（デジタルビデオレコーダー）に単に接続されるだけである家庭環境内にある。家庭全体に他のクライアント装置がある場合には、前記ネットワークアーキテクチャーを使用して、リアルタイム媒体ストリーミングを実施し、ホストコンピュータの記憶装置からの媒体ストリームを、家庭の異なる部分にある別のホストコンピュータ又はテレビ受像機に送信できるようにするのが効率的である。従って、リアルタイム媒体ストリーミングは、ホストコンピュータを伴わずに且つ保証された待ち時間及び帯域巾で実施される。
【００５１】
図４は、ホストコンピュータのリソースが本発明のネットワーク処理ユニット４１０を経てネットワーク接続されるところを示すブロック図である。より詳細には、ホスト４５０がＭＡＣ４１５（即ちホストＭＡＣ）を経てＮＰＵ４１０と通信する。次いで、複数のＸＰＵ及び他のホストリソース４３０ａが、ＮＰＵのＭＡＣインターフェイス（ＭＩ）（図示せず）とインターフェイスする複数のＭＡＣ４２５を経て、ＮＰＵに接続される。ＮＰＵの一例が、代理人ドケットＮＶＤＡ／Ｐ０００４１３号の「A Method And Apparatus For Performing Network Processing Functions」と題する米国特許出願に開示されている。
【００５２】
図５は、本発明のネットワーク処理ユニット５２０と通信する仮想パーソナルコンピュータ又は仮想ホストのネットワークを示すブロック図である。より詳細には、図５は、単一システム（又は単一シャーシ）５００における仮想パーソナルコンピュータ（ＶＰＣ）のネットワークを示し、この場合、システムは、単一パーソナルコンピュータ、セットトップボックス、ビデオゲームコンソール、等々でよい。
【００５３】
オペレーションにおいて、図５は、複数の仮想ホスト５１０ａ−ｅを示し、これらは、複数の異なるオペレーティングシステム（例えば、マイクロソフトコーポレーションのＷｉｎｄｏｗｓ（２つの別々のコピー５１０ａ及び５１０ｂ）、及びＬｉｎｕｘ５１０ｃ）、生のビデオゲームアプリケーション５１０ｄ、又は他の生のアプリケーション５１０ｅを含むことができ、この場合、仮想ホストは、記憶処理ユニット５３０を、物理的記憶装置５４０を有するリモートファイルサーバーとして処理する。本質的に、図５は、「ボックス内のＶＰＣのネットワーク」を示すものと考えることができる。
【００５４】
一実施形態では、ＮＰＵ５２０は、ＶＰＣごとにシステム内部の多数のＩＰアドレスを管理する。例えば、ＮＰＵ５２０には、パブリックＩＰアドレスが指定されてもよく、一方、ＶＰＣの各々には、例えば、ダイナミックホストコンフィギュレーションプロトコル（ＤＨＣＰ）に基づいてプライベートＩＰアドレスが指定される。従って、ＶＰＣの各々は、標準ネットワークプロトコルを使用して互いに且つＳＰＵと通信することができる。標準ネットワークプロトコルは、（この技術で知られた幾つかの例を挙げると）ＴＣＰ、ＴＣＰ／ＩＰ、ＵＤＰ、ＮＦＳ、ＨＴＴＰ、ＳＭＴＰ、ＰＯＰ、ＦＴＰ、ＮＮＴＰ、ＣＧＩ、ＤＨＣＰ、及びＡＲＰを含むが、これらに限定されない。
【００５５】
本発明のＸＰＵは、通信チャンネルを経てホストＣＰＵに結合された１つ以上の物理的装置として実施できることを理解されたい。或いは又、ＸＰＵは、１つ以上のソフトウェアアプリケーション（又は、例えば、特定用途向け集積回路（ＡＳＩＣ）を使用したソフトウェア及びハードウェアの組合体）により表わしたり設けたりすることもでき、この場合、ソフトウェアは、記憶媒体（例えば、ＲＯＭ、磁気又は光学ドライブ又はディスケット）からロードされ、コンピュータのメモリにおいて動作される。従って、本発明のＸＰＵ（関連する方法及びデータ構造を含む）は、コンピュータ読み取り可能な媒体、例えば、ＲＯＭ又はＲＡＭメモリ、磁気又は光学ドライブ又はディスケット等に記憶したり設けたりすることができる。或いは又、ＸＰＵは、制御ビットを有するフィールドプログラマブルゲートアレイ（ＦＰＧＡ）により表わすこともできる。
【００５６】
本発明の教示を組み込んだ種々の実施形態を図示して詳細に説明したが、当業者であれば、これらの教示を依然として組み込んだ他の多数の変形形態を容易に案出することができよう。請求の範囲において、方法の請求項の構成要件は、特定の順序で記載するが、たとえそれらが数字又はアルファベットで列挙されていても、本発明を実施する順序を意味するものではない。
【図面の簡単な説明】
【００５７】
【図１】従来の内部コンテンツソース及びデータパイプのブロック図である。
【図２】本発明の新規な内部コンテンツソース及びデータパイプのブロック図である。
【図３】ホストコンピュータのネットワークが複数のネットワーク処理ユニットを経て互いに通信するところを示すブロック図である。
【図４】ホストコンピュータのリソースが本発明のネットワーク処理ユニットを経てネットワーク接続されたところを示すブロック図である。
【図５】本発明のネットワーク処理ユニットと通信する仮想パーソナルコンピュータのネットワークを示すブロック図である。
【符号の説明】
【００５８】
２００・・・内部コンテンツソース及びデータパイプ、２１０・・・ネットワーク処理ユニットＮＰＵ、２２０・・・記憶処理ユニット（ＳＰＵ）、２３０・・・媒体エンジン、２４０・・・入力／出力通信チャンネル、２５０・・・ホストＣＰＵ／ＯＳ、２５５、２５７・・・ローカルアクセスチャンネル、３００ａ−ｎ・・・ホストコンピュータ、３１０ａ−ｎ・・・ネットワーク処理ユニットＮＰＵ、３２０ａ・・・ＳＰＵ、３２０ａ、３３０ａ・・・ＸＰＵ、３５０ａ・・・ホスト、３５０ｂ・・・リモートＮＰＵ、３５５、３５７・・・通信経路、４１０・・・ネットワーク処理ユニットＮＰＵ、４１５・・・ＭＡＣ、４５０・・・ホスト、５１０ａ−ｅ・・・仮想ホスト、５２０・・・ＮＰＵ、５３０・・・記憶処理ユニット、５４０・・・物理的記憶装置
【図１】
2005526313.tif 000003
【図２】
2005526313.tif 000004
【図３】
2005526313.tif 000005
【図４】
2005526313.tif 000006
【図５】
2005526313.tif 000007
【国際調査報告】
2005526313.tif 000008
2005526313.tif 000009