(57)【特許請求の範囲】
【請求項１】
ネットワーク通信ノードで受信されたデータを処理する方法であって、ネットワーク通信ノードが、所与の宛先にそれらのデータをルーティングするように所与の通信層において前記データを処理することを狙いとした複数のプロセッサを備える、方法において、
受信したデータを処理する少なくとも１つの通信層を決定するステップ（６．２）、
決定された通信層に従ってデータを処理するための所与の数のプロセッサを選択するステップ（６．３）、
選択されたプロセッサを、受信したデータに適用される決定された通信層を処理するためのアクティブモードに切り替えるステップ（６．４）、
処理が実行されたら、選択されたプロセッサを低消費モードに切り替えるステップ（６．５）
を含み、
プロセッサが、ノード内の位置的に近いプロセッサの複数のクラスタに集められており、所与の通信層を処理するために選択されるプロセッサが、同一クラスタ内のプロセッサを最大限使用するために、同一クラスタ内で優先的に選択されることを特徴とする、データ処理方法。
【請求項２】
所与の数のプロセッサの選択が定期的に実施され、このプロセッサが、異なる時間に異なる通信層の処理に割り当てられていることを特徴とする、請求項１に記載のデータ処理方法。
【請求項３】
受信したデータが、前記ノードによって処理されるべき少なくとも１つの通信層を識別する情報に関連付けられていることを特徴とする、請求項１または２に記載のデータ処理方法。
【請求項４】
受信したデータがいくつかの通信層によって処理され、選択ステップが、第１の通信層を実施するプロセッサの第１のグループおよび少なくとも第２の通信層を実施する少なくともプロセッサの第２のグループを選択することを含むことを特徴とする、請求項１から３のいずれか一項に記載のデータ処理方法。
【請求項５】
各層を処理するグループ内のプロセッサの数が、プロセッサのグループによるデータ処理の時間が明らかに同じになるように選択されることを特徴とする、請求項４に記載のデータ処理方法。
【請求項６】
所与の通信層における処理が、いくつかのデータパケットを所与の宛先にまとめて送るために、それらのデータパケットを結合することを含むことを特徴とする、請求項１から５のいずれか一項に記載のデータ処理方法。
【請求項７】
受信したデータを処理するネットワーク通信ノード（１０２、１０３、１０４、１０５）であって、所与の宛先にそれらのデータをルーティングするように所与の通信層において前記データを処理することを狙いとした複数のプロセッサを含むネットワーク通信ノードにおいて、
受信したデータを処理する少なくとも１つの通信層を決定するための手段、
決定された通信層に従って所与の数のプロセッサを選択するための手段、
選択されたプロセッサを、受信したデータに適用される決定された通信層を処理するためのアクティブモードに切り替え、かつ処理が実行されたら、選択されたプロセッサを低消費モードに切り替えるためのアクティブ化手段
を備え、
プロセッサが、ノード内の位置的に近いプロセッサの複数のクラスタに集められており、所与の通信層を処理するために選択されるプロセッサが、同一クラス内のプロセッサを最大限使用するために、同一クラスタ内で優先的に選択されることを特徴とする、ネットワーク通信ノード（１０２、１０３、１０４、１０５）。
【請求項８】
所与の数のプロセッサの選択が定期的に実施され、このプロセッサが、異なる時間に異なる通信層の処理に割り当てられていることを特徴とする、請求項７に記載のネットワーク通信ノード（１０２、１０３、１０４、１０５）。
【請求項９】
ノードによって処理されるべき少なくとも１つの通信層を識別する受信したデータに関連付けられている情報を受け取るための手段を備えることを特徴とする、請求項７または８に記載のネットワーク通信ノード（１０２、１０３、１０４、１０５）。
【請求項１０】
受信したデータがいくつかの通信層によって処理され、プロセッサの第１のグループが第１の通信層を実施するために選択され、かつ少なくともプロセッサの第２のグループが少なくとも第２の通信層を実施するために選択されることを特徴とする、請求項７から９のいずれか一項に記載のネットワーク通信ノード（１０２、１０３、１０４、１０５）。
【請求項１１】
各層を実施するグループ内のプロセッサの数が、プロセッサのグループによるデータ処理の時間が明らかに同じになるように選択されることを特徴とする、請求項１０に記載のネットワーク通信ノード（１０２、１０３、１０４、１０５）。
【請求項１２】
所与の通信層のために選択されたプロセッサが、いくつかのデータパケットを所与の宛先にまとめて送るために、それらのデータパケットの結合を実施することを特徴とする、請求項７から１１のいずれか一項に記載のネットワーク通信ノード（１０２、１０３、１０４、１０５）。
【請求項１３】
通信ノードが、同一時間における通信層ごとの最大のトラフィックの処理に必要な全プロセッサから計算されたいくつかのプロセッサを備えていることを特徴とする、請求項７から１２のいずれか一項に記載のネットワーク通信ノード（１０２、１０３、１０４、１０５）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データ通信に関し、より詳細には、データ通信ネットワーク内のデータパケットの処理およびルート変更をするための方法および装置に関する。
【背景技術】
【０００２】
データ通信ネットワークは一般に、エンドユーザ間でデータを移送するために使用される。発信元デバイスは、データ通信ネットワーク内で確立された接続によって、データパケット群またはデータストリームを受信側デバイスに送る。データ通信ネットワークのノードは基本的に、種々の細分性レベルで、すなわち、結合体ごとの種々のトラフィック量ならびに結合体を扱うために必要なさまざまな程度の知識および労力でパケットストリームの移送データを処理する。たとえば、いくつかのＶＬＡＮ低層の結合体は、局所的な重要性および極めて単純なスイッチングテーブルを有するに過ぎないが、終端間のＩＰアドレス対を有する結合されていないフローは、ネットワークノードが行うべきことを突き止めるための巨大なルーティングテーブルを必要とする可能性がある。逆に、理想的なネットワークノードは、電力効率は極めて高いが規模の大きい光波長スイッチングから、電力消費は大きいが、極めてきめの細かい世界中に及ぶＩＰルーティングに至るまでのネットワーキングのすべての層が、所要のハードウェアおよび要求に比例する電力消費を正確に受けるように、そのリソースを自動的に再構成するものである。
【０００３】
さしあたり、次世代ネットワークの新たな層は容易に統合されるべきである。さらに、通過トラフィックに関する追加および減少トラフィックの多重化／多重分離を管理するパケットグルーミングタスクは、最適な層およびパイプサイズで、最もエネルギー効率の高い最下層においてできるだけ多くのトラフィックを維持することにより、最高の効率で機能すべきである。電子的な実装は、現在ほとんどが層によって分離している。並列プロセッサは、データ負荷が極めて大きいときに過負荷状態を避けることによって、巨大なルーティングトーク（ｔａｌｋ）を処理することを可能にする。
【０００４】
しかし、大域的な結合タスクは、コアネットワークノードでの大域的な消費の多さを招いている。従来の機器はしばしば、電力消費の大きいチップおよびモジュールの相互接続（バックプレーンラインドライバ、並直列変換器／直並列変換器など）を使用して、パケットをネットワーク層ごとに１つ、専用のカードおよび棚で逐次的に処理する。しかしながら、電力効率を高めるために、層状のネットワーク編成を損なわずに代替の解決策が提案されなくてはならない。汎用型マルチプロトコルラベルスイッチング（Ｇｅｎｅｒａｌｉｚｅｄ  Ｍｕｌｔｉ−Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）（ＧＭＰＬＳ）などのマルチ層制御プレーンは、異なる供給業者の機器間の全インターフェースを介するそのような新たなデータプレーン解決策を統合する規格である。
【０００５】
ここで、パケットを処理する機器のエネルギー消費を減少させる解決策を開発することが有用である。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の１つの目的は、データ通信ネットワークのノードの処理能力を改善し、パケットを処理する機器のエネルギー消費を減少させることである。
【課題を解決するための手段】
【０００７】
これは、ネットワーク通信ノードで受信されたデータを処理する方法であって、このネットワーク通信ノードが、所与の宛先にそれらのデータをルーティングするように所与の通信層において前記データを処理することを狙いとした複数のプロセッサを備える、方法によって実現され、この方法は、以下のステップを含むことを特徴とする：
−  受信したデータを処理する少なくとも１つの通信層を決定するステップ
−  決定された通信層に従ってデータを処理するための所与の数のプロセッサを選択するステップ
−  選択されたプロセッサを、受信したデータに適用される決定された通信層を処理するためのアクティブモードに切り替えるステップ
−  処理が実行されたら、選択されたプロセッサを低消費モードに切り替えるステップ
このようにして、本発明は、より優れた機能的ブロックを設計し、そのリソースを複数の層で共有可能かつ動的に構成可能にすることを提案する。とりわけ、このような解決策は、機能中のアクティブなプロセッサの数を、処理すべき通信層に適応させることによって、エネルギー消費の減少を可能にする。
【０００８】
本発明の一態様によれば、所与の数のプロセッサの選択が定期的に実施され、このプロセッサは、異なる時間に異なる通信層の処理に割り当てられている。このようにして、プロセッサは、いつでもノードの大域的な必要性に従って割り当てられ得る。
【０００９】
本発明のさらに別の態様によれば、受信したデータが、前記ノードによって処理されるべき少なくとも１つの通信層を識別する情報に関連付けられている。このようにして、ノードは処理すべき通信層を容易に識別する。
【００１０】
本発明の別の態様によれば、受信したデータがいくつかの通信層によって処理され、選択ステップが、第１の通信層を実施するプロセッサの第１のグループおよび少なくとも第２の通信層を実施する少なくともプロセッサの第２のグループを選択することを含む。このようにして、ノードは、そのリソース、すなわち利用可能なプロセッサを、実施すべき異なる通信層に従って構成する。本発明のさらなる態様によれば、各層を処理するグループ内のプロセッサの数が、プロセッサのグループによるデータ処理の時間が明らかに同じになるように選択される。このようにして、使用されるプロセッサの数が最適化される。
【００１１】
本発明の別の態様によれば、所与の通信層における処理が、いくつかのデータパケットを所与の宛先にまとめて送るために、それらのデータパケットを結合することを含む。このようにして、データのいくつかのパケットがノードにおいてまとめて処理され、次のノードへまとめて送られる。
【００１２】
本発明のさらに別の態様によれば、プロセッサが、ノード内の位置的に近いプロセッサの複数のクラスタに集められており、所与の通信層を処理するために選択されるプロセッサが、同一クラスタ内で優先的に選択される。このようにして、同一通信層を実施するプロセッサ間の処理が最適化される。
【００１３】
本発明はまた、受信したデータを処理するネットワーク通信ノードであって、所与の宛先にそれらのデータをルーティングするように所与の通信層において前記データを処理することを狙いとした複数のプロセッサを含むネットワーク通信ノードに関し、このノードは、以下を備えることを特徴とする：
−  受信したデータを処理する少なくとも１つの通信層を決定するための手段
−  決定された通信層に従って所与の数のプロセッサを選択するための手段
−  選択されたプロセッサを、受信したデータに適用される決定された通信層を処理するためのアクティブモードに切り替え、かつ処理が実行されたら、選択されたプロセッサを低消費モードに切り替えるためのアクティブ化手段
【図面の簡単な説明】
【００１４】
【図１】データがノードによって内部で処理される通信データシステムを示すブロック図である。
【図２】ノード内にある様々なタイプのトラフィックおよび層を示す図である。
【図３】システムの中間ノードにおける層内で分岐するトラフィックを示す図である。
【図４】中間ノードを通る結合処理を示す図である。
【図５】本発明の特定の実施形態による、タスクを処理するための横断層並列アーキテクチャを示す図である。
【図６】中間ノードにおける例示的な実施形態の方法例のフローチャートである。
【図７】タスクを処理するための横断層並列アーキテクチャの改良形態を示す図である。
【図８】本発明の特定の実施形態による、中間ノードにおけるパケットプロセッサ管理およびタスクスケジューリングを示す図である。
【発明を実施するための形態】
【００１５】
本発明の実施形態は、エネルギー消費電力を大域的に減少させるために通信ノードに備えられた複数のプロセッサの使用に関するものである。
【００１６】
図１は、複数のノード１０１−１０６を含むデータ通信システム１００の全体的なブロック図を示す。ノード１０１−１０６は、システム１００に含まれるノード間でデータ通信を可能にするように相互接続されている。一例では、エンドポイントＡとエンドポイントＢの間で接続が確立され得る。エンドポイントＡからエンドポイントＢに送信されるデータは、ノード１０１から出発して、ノード１０２および１０３を通過し、最終的にノード１０６に到達することにより、ネットワークを横断することができる。中間ノード１０２−１０５は相互接続されているので、データは多くの異なる進路を進むことができる。データパケットが同じノードに向かって進む場合、中間ノードにおいて結合させられてもよい。ノード間の通信は有線（光または電気）であっても無線であってもよい。
【００１７】
中間ノード１０２−１０５のそれぞれにおいて、データパケットが分析される。データに施される処理に従って、データは物理層の上にある１つまたは複数の論理層を横断する。ファイバのトポロジおよび波長のルートを含む光学層の上には、イーサネット（登録商標）、仮想ローカルエリアネットワーク（ＶＬＡＮ）、ＭＰＬＳ、ＩＰなどの異なる電子ネットワーク層が存在する。これらの層は、図２に示されるように編成されている。各層は、それ自体のパケットヘッダおよびそれ自体のネットワーク近傍のビューを有する。層が高くなるほど、「ラインカード」と称されるインターフェースエレクトロニクスにおいて一般に行われなければならない１パケット当たりの仕事が多くなる。特に、パケットヘッダは、近傍の各層間で結合処理や結合解除が次々に行われる中で、追加および削除、または修正が行われる。
【００１８】
たとえばコアルータなどの現在の機器においては、パケット転送処理は、層ごとの少なくとも専用処理ユニット（カード）によって、各層で独立に実施される。典型的には、追加パケットまたは削減パケットのフローは、層横断ジョブに対応する中間カードを横断する。カード間の複数の相互接続は、銅線の駆動、並列データの直列化、および専用の誤り訂正技術による各データ送信の保護が必要であるため、エネルギー効率が損なわれる元であることをここで強調しておかなければならない。
【００１９】
新たなパケットヘッダに対応する新たなネットワーク層が次世代ネットワーク用に開発される可能性がある。たとえば、現在のインターネットは、それらを踏まえた些細な用途でしかなくなる可能性がある。ハードウェアは、現在のまたは将来の層をプロセッサへ任意に割り当てられるように、完全な柔軟性を実現している。省電力設計の原理に従えば、多くの低周波低電圧回路が、わずかな高周波プロセッサに取って代わるのが有利である。
【００２０】
図２は、中間ネットワークノードに生じる異なるタイプのトラフィックを示す。データは、以下のように分割されたいくつかのサブ層を横断することができる：
−  純粋な光学通過トラフィック。これは、電子的な処理は何も要求せず（最も電力効率が高い処理）、したがって、最も下位の（物理）層を流れる。これを「層１」とする。
−  （ＩＰパケットレベルからの、またはそこへの）追加または減少トラフィック。これは、すべての層、したがって、すべてのグルーミング段階（最も電力効率が低いケース）を通ることを必要とする。
−  たとえば２つのネットワークドメインの境界においてデータ処理が電子機器を必要とする中間のケース。
−  ＩＰレベルからのデータの切り替えは、巨大なテーブルを使うので、最もコストのかかる処理である。一方、単一の波長に結合させられるものをはじめとする下位の層の通過トラフィックは、電子的な作業は全く要求しないことがほとんどである。上記を「層３」とする。
【００２１】
本発明によれば、インターフェースモジュール、すなわちラインカードは共通して、リソースをスケジューリングすることによって駆動され、任意のタイプのパケットに割り当てられる普遍的にプログラム可能な多くのプロセッサと、割り当てられたプロセッサを通るプログラム可能なローカル経路を使用する。
【００２２】
図３は、中間ノード１０２−１０５における各層間でのトラフィック分割を示す。最下部のワイヤ（層１）のレベルでは、ある波長で結合させられたトラフィックは、光／電気／光（Ｏ／Ｅ／Ｏ／）変換を伴わずに通り抜ける。中央のワイヤのレベルでは、Ｏ／Ｅ／Ｏ／変換が必要で、データは層２のラインカードにおいて処理される。最上部のワイヤのレベルでは、完全なノード機能を要求するＩＰ層までに結合が完了される。
【００２３】
本発明によれば、データが横断する層に応じてある数のプロセッサがアクティブ化される。それをなすために、処理リソースの汎用的なプールが、多くの異なる転送タスクおよび横断層結合タスクを実施するために共有されている。たとえば、層２および層３における処理は、論理層の分離を維持しながら、単一の共通処理プラットフォームを使用する。
【００２４】
図４は、本発明の特定の実施形態による、中間ノードを通る結合処理を示す。入力ラインカードおよび出力ラインカードは、以下の４つの基本的な機能を順次行う：
−  メディアアクセス制御
−  パケットのフレーミング
−  パケットの分類
−  トラフィックの待ち行列の管理
【００２５】
より多くの処理が上位レベルの層で行われるほど、そのリソース消費への寄与も大きくなる。リソースの最大の消費は、ＩＰルーティングなど、より上位のネットワーク層によって使用される。本発明は、より優れた機能ブロックを設計し、そのリソースを複数の層で共有可能かつ動的に構成可能にすることを提案する。
【００２６】
図５は、本発明の特定の実施形態による、タスクを処理するための横断層並列アーキテクチャを示す。
【００２７】
中間ノード１０２−１０５は、パケット処理カード上で互いに近接している複数のプロセッサを含む。カード、すなわちモジュールにおいて、以下の３つの組のオブジェクトが協働する：
−  プロセッサ（処理ユニットとも呼ばれる）の組
−  タスクの組（各タスクはネットワーキング層または層横断イベントに関連付けられている）
−  ユニットを流れるパケットフローの組
【００２８】
モジュールを通るパケットは、一連のタスクを経験し、異なるプロセッサまで経路に沿って移動することができる。スイッチマトリックスは、異なるパケットからデータを収集することを可能にし、データを単一のパケットに収める。次いで、このパケットは、様々なフォーマットステップを通り、フローの中に入れられる。
【００２９】
中間ノードのレベルでは、後続のタスクが、同一プロセッサ上または好ましくは互いに近傍の様々なプロセッサ上で動作することができる。最もよくあるものとして設計される最も単純なケースでは、パケットは、１つの短いタスク、１個のプロセッサのみを経験する。プロセッサへのタスクの動的な割り当て、および対（タスク、プロセッサ）の経路へのパケットの割り当ては、タスクスケジューラを最適化するジョブである。パケットのモジュール内でのさまざまな経路、すなわちルートは、よく知られているパケットパイプラインを一般化したものである。たとえこの設計が、すべてのネットワーク層を同一チップ上で混合しているように見えても、タスクは、層ごとに論理的に独立するように設計されている。たとえば、層Ｎのタスクは、層Ｎ用のパケットヘッダに触れるだけであり、Ｎ＋１からＮへ遷移するタスクは、層Ｎ用のヘッダの部分を追加し、ＮからＮ＋１へ遷移するタスクは、Ｎに属するヘッダを取り除く。ソフトウェア設計は、ネットワークの層編成をきちんと考慮するが、ハードウェアはあらゆることをほぼどこでも行うことができる。これは、アーキテクチャの特許請求される電力効率の理由であり、これは、特殊ボード間の長い伝送線およびそれらのシリアル化／非シリアル化を不要とするものである。
【００３０】
図５の左側には、データテーブルおよびボード上の処理タスクに対応する層の集まりが示されている。層の集まりおよび対応するタスクの向かいに、図５は、プロセッサのプール、たとえば３０個のプロセッサを管理するタスクスケジューラを示す。所与の時間に、各プロセッサは、アイドル状態であるか、またはタスクおよびパケットの処理に割り当てられる。図５は、ＭＰＬＳ層の処理に割り当てられた４個のプロセッサのグループを示し、このグループは、ＩＰ層のレベルで処理するデータを、６個のプロセッサのグループに送る。横断層制御プレーンは、プロセッサボードに実際の結合／解体要件を通知し、かつ転送テーブルを関連する層に提供する。タスクスケジューラは、各層で必要な処理量を評価する。タスクスケジューラは、すべての結合タスクを連続的に処理するために、サブ層ごとに処理リソースを確保し、プロセッサボード内のローカル経路を構築する。データは、すべてのタスクが達成されるまでの間、プロセッサボード内にとどまる。
【００３１】
図５は、中間ノードを通るパケットの移動経路も示している。第１段階では、イーサネットＭＡＣヘッダを取り除き、次の段階では、ＶＬＡＮおよび取り除かれるべき対応するヘッダを終了させる。第３段階では、ＭＰＬＳヘッダが使用されなければならないことが確認され、ラベル切り替えにより、パケットが現在いずれのトンネルを通過しているはずであるかが決定される。そのようなパケットは、移動中に２つの層横断タスクに加えて、特定の層における１つのスイッチングタスクを経験する。パケットは図５でチップから出ていくが、当然ながら後続のオンチップ段階では、ＶＬＡＮの有無は問わず、たとえば別の１０Ｇｂイーサネットなどのある他の広いパイプ内に再び多重化される。アクティブなプロセッサは図５に灰色で示されている。検討されている時間フレーム内でアクティブでないプロセッサは、タスクスケジューラ（図では白で示す）によってオフにされる（または低電力消費であるアイドルモードにセット）される。
【００３２】
図６は、中間ノードにおける例示的な実施形態に対応する処理例のフローチャートを示す。データパケットが中間ノードによって受信される（ステップ６．１）。各着信データパケットは、処理に要求される層または層間の数（またはタスク識別子）を決定するために、分析される（ステップ６．２）。次いで、ステップ６．３において、タスクスケジューラは、各タスク（すなわち使用される層）に対し、適切な数のプロセッサを割り当てる。選択されたプロセッサは、アイドルモードからアクティブモードへ切り替わる（ステップ６．４）。１つまたは複数のプロセッサに割り当てられたタスクが終了されたとき、プロセッサは、オフに切り替えられ、アイドルモードにされる。
【００３３】
タスクスケジューラは、以下のいくつかの制約に従って、あるタスクに割り当てられるプロセッサの数を決定する：
−  タスク割り当てがないプロセッサは省電力スリープ状態になる。
−  タスク（または層）ごとのプロセッサの数は、トラフィック要求の確率過程に対して十分に大きく、したがって、最小時間（サービス品質ＱｏＳ次第で数マイクロ秒）を超えてフリーのプロセッサを待つパケットはない。
−  パケットは、層を移るとき、２個以上のプロセッサのパイプラインを通ることがある。これは、より上位の層の入力からより下位の層のパイプ内への結合、または結合解除処理の場合はその逆に対応する、トラフィックの追加および減少の場合である。
−  プロセッサのタスク切り替え時間、すなわちスリープ状態からの立ち上がり遅延は短く、典型的には１０マイクロ秒となるはずである。
−  毎秒のタスク切り替えおよび立ち上がりの数は、１０００未満程度（電力効率のモデルに関連して規定される）となるはずである。
−  同一のマイクロフローのパケット、あるいは、発信元と宛先アドレスの同一対は、順序が乱れて処理されることはないはず（または所与の確率未満）である。
【００３４】
トラフィックの統計値、たとえばそのバースト伝送は連続的に監視される。各層を処理するために利用可能なプロセッサの数は、バッファリングを避ける安全マージンが過度にプロビジョニングされている。小さなオンチップメモリ上にいくつかのバッファがあり、外部のＲＡＭのオーバーヘッド（遅延、電力消費）が大きくなりすぎる。有利には、中間ノードは、チップに対するメモリバッファよりも多くのプロセッサを含む。トラフィック要求が、サービス品質（ＱｏＳ）に適合する許容可能な負荷レベルを超過し、かつスリープ中のリソースに利用可能なものがない場合、新たなトラフィックはいずれも廃棄され、適切な信号がネットワーク内の関連した近傍装置および制御プレーンに送られる。
【００３５】
例を挙げよう。特定の時間において、図５に示された中間ノードは、以下の表のように区分することができる３０個のプロセッサのプールを含む：
【００３６】
【表１】
0005789679.tif 000002
【００３７】
各グループに割り当てられた上記の数のプロセッサは、極めて短時間（典型的には１ミリ秒）におけるイメージであり、次の瞬間には、各グループのプロセッサの数は大域的に変更されている可能性があり、所与のプロセッサは、別の層の処理に割り当てられる。上記の例は、トラフィックの大部分がより下位の層（層２−イーサネット）の中に進むことができるノードインターフェースに対応しており、ここでの処理は、より上位の層（層３）に比べて、１パケット当たりの時間（およびエネルギー）をわずか１０％しか必要としていない。「より下位の層のバイパス」の良好な共有を管理するのは、インテリジェント制御プレーンのジョブである。このようにして、ノードエレクトロニクスは、追加、減少、アクセス、結合および解体のタスクを実行するために絶対的に要求されるときのみ、より上位の層におけるパケットに触れる。上記の例では、中間ノードは、アイドルモードのプロセッサが７個あるので、過負荷にはならない。
【００３８】
共用データフローにおける多重化利得のような、共用プロセッサでの多重化利得は、以下のように概略的に表現することができる。所与の時間において、結合タスク全体に対する処理リソース必要数は次のようになる：
【００３９】
【数１】
0005789679.tif 000003
【００４０】
各層につき、プロセッサの最大数は、製造業者によって、所与の時間における所与のトラフィックに対して指定されている。プールのプロセッサの数は、所与の時間における所与のトラフィックに対して層ごとに指定されるプロセッサの最大数の和以下である。本発明のために開示されるアーキテクチャでは、プロセッサの数は、任意の時間の間に層を処理する最大数に関して最適化されていてもよい。
【００４１】
機能拡張された制御プレーンは、受け取ったパケットフローごとに処理タスクのタイプを識別するＧＭＰＬＳ情報を送信する。実施形態の簡単な態様によれば、ＧＭＰＬＳ情報は、層が中間ノードによって処理される必要があることを指定している２進フラグフィールドであり得る。この情報を用いて、タスクスケジューラは、リソースを、中間ノードのレベルにおいて識別された層を処理することに割り当てる。この方法で、様々な層間でプロセッサを共有するタスクスケジューラは、各データパケットが横断する必要がある層がどれであるかが分かる。変形形態によれば、制御プレーンは、タスクスケジューラに、要求されるスイッチングテーブルおよびパケット扱い規則を供給することもできる。それは、ネットワークのトラフィック要求および物理的リソースを電力効率の高い層状の論理トポロジに対応付けるグローバルオンライン最適化ソフトウェアに結合されていてもよい。可能な限り、下位の層のバイパス経路が形成され、タスクスケジューラは更新された決定参照テーブルを制御プレーンから受け取る。トップダウン制御により、プロセッサの同じグループは、きれいに分離した様々な層でパケットを扱うことができる。
【００４２】
本発明の主な態様によれば、使用されていないプロセッサは、電力消費をさらに低下させるためにオフにされる。タスクマネージャは、それぞれの層／サブ層において、プロセッサの状態をトラフィック検出器によって定期的に走査することで、タスクスケジューラがプロセッサ間でタスクを共有できるようにし、かつ使用されていないプロセッサをアイドルモードに切り替える。典型的には、タスクマネージャはトラフィックを毎秒１０００回走査する。
【００４３】
パケットは典型的には、通過トラフィック（同一層での入力および出力）、追加トラフィック（より上位の層で入力、次いでより下位の層の出力ストリームへ多重化）または減少トラフィック（下位の層の結合体をより上位の層の部分結合に多重化解除する）として扱われ得る。節電量は、第一に、下位の層の経路の形成および寸法決めを行う上述のオプティマイザソフトウェアの品質にも依存する。そのような最適化はここでは説明していないが、光学経路とパケット移送オプティマイザを統合し、さらにはＧＭＰＬＳ制御プレーンを関連するメッセージタイプで機能強化するために進行中の他の研究が存在する。
【００４４】
タスクスケジューラは、入力データの分析を管理し、処理を決定する。決定は、パケットイベント、すなわち、物理的インターフェースからの着信パケットまたは「パイプライン経路」に沿ってチップの内側を移動するパケットのいずれかによって引き起こされる。タスクマネージャは以下のタスクを実行する：
−  層のタイプ、すなわち、関連パケットヘッダのタイプを確認する。
−  ハッシュ値を計算し、次いでこの対（層、ハッシュ値）に割り当てられているプロセッサを検索する。このようにして、粘性スケジューラは、いくつかのプロセッサ上でタスクを共有することができる。
−  プロセッサが割り当てられていない場合、スリープ中のプロセッサを立ち上げ、ハッシュ値対コアの対応付けを更新する。
−  割り当てられているプロセッサは使用中であるが、バッファスペースは利用可能である場合、そのプロセッサ用のパケットを待ち行列に入れる。
−  プロセッサもバッファも利用可能でない場合、パケットを廃棄し、アラームを出す。
【００４５】
タスクスケジューラの処理を簡単にするために、アクティブ化させるプロセッサの数の決定が参照テーブルによって駆動される。層がより下位にいくほど、テーブルはより簡単になる。受信パケットごとに、以下のタスクが実行される：
−  パケットヘッダのフィールドを使用してテーブルにアドレスする。
−  現在のヘッダの修正方法（たとえば、いくつかのフィールドをプッシュ、ポップ、スワップ）や、パケットに対する次のステップ（オンチップで継続、特定のカードインターフェースに転送、成形、監視（ｐｏｌｉｃｅ）、廃棄など）であるアクションコードを読み出す。
−  任意の選択された成形／監視フィルタ（例：リーキーバケット）を適用する。
−  統計値カウンタを更新する。
【００４６】
タスクスケジューラによる決定に基づいて、プロセッサのプールは特殊メッセージを受け取り、送出する。特に、大半のテーブル入力項目は、制御プレーンの「転送情報ベース（Ｆｏｒｗａｒｄｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）」から供給されている。タスクスケジューラによって送られるイベントは以下の通り：
−  アラームを出す、層ごとの統計値に関する問合せに回答する。
−  制御プレーンによって要求されたときは必ず、層および参照テーブルの項目を作成、修正、破壊する。
−  要求に応じて、ＱｏＳに関するパラメータ（たとえばフィルタ内の）を修正する。
【００４７】
さらに、プロセッサコアの各プロセッサのレベルでタイムアウトイベントが実行される。たとえば、プロセッサまたはバッファスペースが一定時間を超えて使用されていない場合、それらはスリープ状態にされ、ハッシュ値のそれらのハードウェアに対する対応付けが消去される。
【００４８】
図７は、本発明の改良による横断層並列アーキテクチャを示す。タスクスケジューラは、処理効率を最大にするために、あるタスクに関連付けられたプロセッサの数を決定すると、プロセッサの許容量の戦略に従い、（カードアーキテクチャの点から見た）それらの近接度に基づいて、それらのプロセッサを合わせて選択する。たとえば、粘性スケジューラが、タスクを処理するために５個のプロセッサを必要とする場合、プール内にある５つの位置的に近いプロセッサを選択する。この改良によれば、タスクスケジューラは、たとえば通信ノード内における位置的な近接度という事実から、協働することを最初に意図されたプロセッサのいくつかのクラスタを定義する。プロセッサが近接していると、データがプロセッサ間の短い距離を流れるので、エネルギーの消費に関して有利である。たとえば、プロセッサのプールが、５０個のプロセッサからなるクラスタ１０個に分割され、所与の時間に各クラスタ内で以下の一定個数のプロセッサがアクティブ化されると仮定する。
【００４９】
【表２】
0005789679.tif 000004
【００５０】
新たなデータパケットの着信に８個のプロセッサのアクティブ化が必要である場合、タスクスケジューラは、好ましくは同一クラスタ、たとえばクラスタ２、４、６、７または１０にある８個のプロセッサをアクティブ化する。そのクラスタ内のプロセッサを最大限使用するために、ひいてはその他のクラスタにできるだけ多くの可能性を残せるようにするために、クラスタ６が優先的に選択される。
【００５１】
図８は、中間ノードにおけるパケットプロセッサ管理およびタスクスケジューリングを示す。４個のプロセッサが示されている。それらは、プログラムコード、参照テーブル、トラフィック監視結果などの共通リソースにアクセスし、管理する。着信パケットは、それらが属する最初の層を定める単純な論理部において事前に分類される。最終的に、意図された層に対するプロセッサまたは層−遷移が利用可能でない場合、パケットはバッファリングされる。プロセッサは実装された層のうちの１つのパケットタスクに割り当てられ、あるいはいずれのプロセッサも必要ない場合、プロセッサはアイドル省電力状態に動的に割り当てられる。改良によれば、プロセッサのプログラムコードは、決定された層の処理用に構成されるべきメモリからダウンロードされる。
【００５２】
パケットは、層固有のプログラムコードおよび参照データを用いて、層の転送ジョブを行うプロセッサにルーティングされる。構成によっては、パケットは処理中に層を移ることができ、２個以上のプロセッサによってルーティングされてもよい。たとえば、パケットがプロセッサＰ３を介して層Ｌ１に入り、プロセッサＰ３は次いでパケットをＬ２からＰ４に渡し、パケットは最終的に、層コードＬ１の別の変形を使用してＰ１にルーティングされ、処理される。これは、やや複雑な切り替え動作、すなわち、大きいＬ１トラフィック結合体から多重化解除し、続いて別の大きい結合体に再多重化することに対応する。タスクスケジューラは、どのプロセッサがどの層または層対に（いくつかの分岐がある場合、最終的には層上のどのサブプログラムに）割り当てられるかを定義する。
【００５３】
分かりやすくするために、制御プレーンに対するインターフェースは図８には示していない。タスクスケジューラは事前分類器（ｐｒｅｃｌａｓｓｉｆｅｒ）に、最初のプロセッサが利用可能なパケットを通知する。タスクは、パケットの主たる分類、パケットの層に応じたヘッダ挿入／削除／修正、および宛先経路、転送クラス、待ち行列の検索の役割を担い得る。パケットプロセッサ管理は、ネットワーキングの新たな中間の層が追加されるという確度の高いケースに備えて、完全に再構成可能であってもよい。さらに、それらに加えて、旧来のインターネットプロトコルは従来の特定用途に単に格下げしてもよい。機器は、リソースの共有および再利用によって、より小型かつ電力効率の高いものになり得るが、整然と分離されたネットワーク層および最小のインターフェースの論理は厳密に保存されている。
【００５４】
構成要素（たとえば、アセンブリ、デバイス、メモリなど）が上記で参照されている場合、別段の記載がない限り、その構成要素を指す言葉は、記載された構成要素の機能を実行する（すなわち記載された構成要素と機能的に等価な）任意の構成要素であって、（「手段」を指す言葉を含む）本発明の図示した例示的な実施形態における機能を実行する開示された構造と構造的に非等価な構成要素を含む構成要素を指す言葉であると解釈されるべきである。
【００５５】
方法中のステップが上記で参照されている場合、別段の記載がない限り、そのステップを指す言葉は、そのステップと同じ結果を実現する（すなわち、記載したステップと機能的に等しい）任意のステップであって、述べた結果を、本発明の図示した例示的な実施形態において開示されたものとは異なる方法で実現するステップを含むステップを指す言葉であると解釈されるべきである。上記の開示に鑑みれば当業者には明らかとなるように、本発明の実施においては多くの変更形態および修正形態が可能である。
【図１】
0005789679.tif 000005
【図２】
0005789679.tif 000006
【図３】
0005789679.tif 000007
【図４】
0005789679.tif 000008
【図５】
0005789679.tif 000009
【図６】
0005789679.tif 000010
【図７】
0005789679.tif 000011
【図８】
0005789679.tif 000012