(57)【要約】【課題】  リング型ネットワークに接続されたノードからのアクセスを、時分割多重を利用して効率良く処理するシステムおよび方法を提供する。【解決手段】  このシステムは、ノードに割り当てられた波長または位置空間の光信号のみを受信し、他のノードへは当該他のノードに割り当てられた波長等の光信号を送信可能な複数のノード２０と、複数の光信号を時分割多重化して伝送するリング型ネットワーク３０とを含む。リング型ネットワーク３０は、各波長等の光信号を伝送するスロットを形成し、各スロット内に伝送すべき光信号が存在するかを示す情報を含む。ノード２０は、光信号を受信するノードに対応したスロットに含まれる情報を確認することなく、当該情報を、光信号が存在することを示す情報に更新する更新手段２５と、更新手段２５が実行する情報の更新と同じクロック・サイクルで動作し、当該情報から光信号を送信するかを判断する判断手段２６とを含む。【選択図】  図５
2010258559.tif 000002
【特許請求の範囲】
【請求項１】
各ノードが異なる波長または伝送路の位置空間を割り当てられ、割り当てられた前記波長または位置空間の光信号のみを受信し、他のノードへは当該他のノードに割り当てられた前記波長または位置空間の光信号を送信可能な複数のノードと、前記複数のノードからの複数の前記光信号を時分割多重化して伝送するリング状に形成されたリング型ネットワークとを含む光ネットワーク・システムであって、
前記リング型ネットワークは、前記各ノードに割り当てられた前記波長または位置空間の光信号を伝送するための各時分割スロットを形成し、前記各時分割スロットが、当該各時分割スロット内に伝送すべき前記光信号が存在するか否かを示す情報を含み、
前記ノードは、当該ノードから光信号を受信するノードに対応した時分割スロットに含まれる前記情報を確認することなく、当該情報を、前記光信号が存在することを示す情報に更新する更新手段と、前記更新手段が実行する前記情報の更新と同じクロック・サイクルで動作し、更新前に前記情報を読み取り、前記更新手段による前記情報の更新と並列に、読み取った前記情報から前記光信号を送信するか否かを判断する判断手段とを含む、光ネットワーク・システム。
【請求項２】
前記更新手段は、前記時分割スロットに含まれる前記情報が、前記光信号が存在しないことを示す場合、前記光信号が存在することを示す情報に更新し、前記光信号が存在することを示す場合、前記光信号を存在することを示す情報を上書きする、請求項１に記載の光ネットワーク・システム。
【請求項３】
前記光信号は、当該光信号を送信したノードを識別するためのノード識別情報を含み、
前記システムは、一定時間内において、同じ前記ノード識別情報を受信した数が設定数を超える場合に、当該ノード識別情報により識別されるノードに対し、当該ノードに割り当てられた波長または位置空間の光信号の送信を保留させるための保留信号を送信する制御手段をさらに含む、請求項１に記載の光ネットワーク・システム。
【請求項４】
前記ノードは、前記制御手段からの前記保留信号を受信し、指定された前記波長または位置空間の光信号の送信を保留する保留手段を含む、請求項３に記載の光ネットワーク・システム。
【請求項５】
前記保留信号は、前記複数のノードに割り当てられていない波長または空間位置の光信号とされる、請求項３に記載の光ネットワーク・システム。
【請求項６】
各ノードが異なる波長または伝送路の位置空間を割り当てられ、割り当てられた前記波長または位置空間の光信号のみを受信して自己のノードが備えるメモリへのアクセスを可能にし、他のノードが備えるメモリへは当該他のノードに割り当てられた前記波長または位置空間の光信号を送信する複数のノード間で、前記複数のノードからの複数の前記光信号を時分割多重化して伝送するリング状に形成されたリング型ネットワークを介して行われるメモリ・アクセス方法であって、
前記各ノードに割り当てられた前記波長または位置空間の光信号を伝送するための各時分割スロットを形成し、前記各時分割スロットが、当該各時分割スロット内に伝送すべき前記光信号が存在するか否かを示す情報を含む前記リング型ネットワークにおいて、光信号を受信するノードに対応した時分割スロットに含まれる前記情報を確認することなく、当該情報を、前記光信号が存在することを示す情報に更新するステップと、
前記更新するステップで実行される前記情報の更新と同じクロック・サイクルで、更新前に前記情報を読み取り、前記更新するステップと並列に、読み取った前記情報から前記光信号を送信するか否かを判断するステップとを含む、メモリ・アクセス方法。
【請求項７】
前記更新するステップでは、前記時分割スロットに含まれる前記情報が、前記光信号が存在しないことを示す場合、前記光信号が存在することを示す情報に更新し、前記光信号が存在することを示す場合、前記光信号を存在することを示す情報を上書きする、請求項６に記載のメモリ・アクセス方法。
【請求項８】
前記光信号は、当該光信号を送信したノードを識別するためのノード識別情報を含み、
前記方法は、一定時間内において、同じ前記ノード識別情報を受信した数が設定数を超える場合に、当該ノード識別情報により識別されるノードに対し、当該ノードに割り当てられた波長または位置空間の光信号の送信を保留させるための保留信号を送信するステップを含む、請求項６に記載のメモリ・アクセス方法。
【請求項９】
前記保留信号を受信し、指定された前記波長または位置空間の光信号の送信を保留するステップを含む、請求項８に記載のメモリ・アクセス方法。
【請求項１０】
前記保留信号は、前記複数のノードに割り当てられていない波長または空間位置の光信号とされる、請求項８に記載のメモリ・アクセス方法。
【請求項１１】
各ノードが異なる波長または伝送路の位置空間を割り当てられ、割り当てられた前記波長または位置空間の光信号のみを受信して自己のノードが備えるメモリへのアクセスを可能にし、他のノードが備えるメモリへは当該他のノードに割り当てられた前記波長または位置空間の光信号を送信する複数のノード間で、前記複数のノードからの複数の前記光信号を時分割多重化して伝送するリング状に形成されたリング型ネットワークを介して行われるメモリ・アクセス方法を実行するためのコンピュータ可読なプログラムであって、
前記各ノードに割り当てられた前記波長または位置空間の光信号を伝送するための各時分割スロットを形成し、前記各時分割スロットが、当該各時分割スロット内に伝送すべき前記光信号が存在するか否かを示す情報を含む前記リング型ネットワークにおいて、光信号を受信するノードに対応した時分割スロットに含まれる前記情報を確認することなく、当該情報を、前記光信号が存在することを示す情報に更新するステップと、
前記更新するステップで実行される前記情報の更新と同じクロック・サイクルで、更新前に前記情報を読み取り、前記更新するステップと並列に、読み取った前記情報から前記光信号を送信するか否かを判断するステップとを実行させる、プログラム。
【請求項１２】
前記更新するステップでは、前記時分割スロットに含まれる前記情報が、前記光信号が存在しないことを示す場合、前記光信号が存在することを示す情報に更新し、前記光信号が存在することを示す場合、前記光信号を存在することを示す情報を上書きする、請求項１１に記載のプログラム。
【請求項１３】
前記光信号は、当該光信号を送信したノードを識別するためのノード識別情報を含み、
前記プログラムは、一定時間内において、同じ前記ノード識別情報を受信した数が設定数を超える場合に、当該ノード識別情報により識別されるノードに対し、当該ノードに割り当てられた波長または位置空間の光信号の送信を保留させるための保留信号を送信するステップをさらに実行させる、請求項１１に記載のプログラム。
【請求項１４】
前記保留信号を受信し、指定された前記波長または位置空間の光信号の送信を保留するステップをさらに実行させる、請求項１３に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、波長多重・空間多重を用いてリング状に形成された光ネットワークに接続されたノードから他のノードへのメモリ・アクセスを、時分割多重パケットを用いて効率良く行うシステムおよびそのメモリ・アクセス方法に関する。
【背景技術】
【０００２】
高性能サーバーを設計する際のメモリ・アーキテクチャとして、NUMA(NonUniform Memory Architecture)が主流となっている。NUMAは、複数のCPUが共有するメモリへのアクセス・コストが、メモリ領域とCPUに依存して均一ではないアーキテクチャである。このNUMAが主流とされているのは、CPUとメモリの総バンド幅を確保するために、CPUの並列化に伴い、メモリも集中型から分散型に移行することが必要不可欠と判断されてきたからである。
【０００３】
ここで、バンド幅とは、データを転送する際の転送速度をいい、集中型メモリとは、１つの大容量メモリに多数のCPUが接続されている処理形態をいい、分散型メモリとは、複数のCPUに分散してメモリを持たせる処理形態をいう。集中型メモリでは、CPUとメモリ間の転送がボトルネックとなり、CPUの数が増加しても性能向上が限られるため、CPUを並列化し、メモリを分散型にしたほうが、性能が向上すると考えられている。
【０００４】
しかしながら、NUMAの本質的な問題は、１つのCPUとそのCPUに直接接続される複数のメモリとから構成されるノード内のそれらメモリ（ローカル・メモリ）と、そのノード外にあるメモリ（リモート・メモリ）とのアクセス時間の差による性能のばらつきがあることである。このばらつきは、スケール・アップ型のマルチ・プロセッシング・サーバが進化を続ける上で、性能上の大きな問題の１つとなっている。
【０００５】
一方、データの転送速度とその転送距離の制約をなくす技術として、ボードやチップ同士を光技術により相互接続する光インター・コネクトが注目されている（例えば、特許文献１〜３参照）。この技術の進歩により、高バンド幅のCPUとメモリの相互接続を、必ずしもメモリをCPUの物理的近傍に配置しなくても実現することができるようになってきている。したがって、バンド幅の観点から見れば、大容量のメモリ・システムに、各CPUから光によりメモリ・アクセスを行うことで、集中型メモリのシステムに戻すことができるものと考えられ、それについて検討されている。
【０００６】
近年、並列処理を行わせる環境下において、プロセッサ・チップ全体での処理能力を向上させ、性能向上を図るため、１つのプロセッサ・パッケージ内に複数のプロセッサ・コアを封入したCPUのマルチ・コア化が進められている。このマルチ・コア化の流れは、メモリをコア毎に分割することにより問題を解決してきたNUMAの流れとはある意味で逆行するものである。
【０００７】
このマルチ・コアに接続されたメモリには、マルチ・コアの性能を使い切るために、部分的ではあるが、チップ単位で集中型メモリの構成となり、チップ当たり大きなバンド幅とメモリ容量が必要とされる。このようなマルチ・コアで構成されたノードを組み合わせてスケール・アップしていくと、総バンド幅だけではなく、OSのメモリ確保の任意性からくるローカル・メモリとリモート・メモリの性能差による影響を小さくすることが安定したシステム性能を実現する上で重要となる。
【０００８】
このローカル・メモリとリモート・メモリのアクセス時間の差を解消するためには、総バンド幅の向上だけではなく、電気的な多段スイッチを経由しながら、多くのCPUからのメモリのランダム・アクセスを効率良く行う必要がある。この点、波長分割多重方式(WDM)を採用した通信システムでは、光ファイバ１本当たりのバンド幅はもちろん、λ−スイッチングを使用して、光ネットワークを構築する技術が進んできている。この技術では、電気的なスイッチを使用しないため、送信側と受信側で特定の波長を使用して直接、高バンド幅のデータを転送することができる。なお、WDMは、波長の違う複数の光信号を同時に利用することで、光ファイバを多重利用する方式である。
【０００９】
図１に、WDM技術を利用したUMA(Uniform Memory Architecture)の構成例を示す。ここでは、各々が複数のプロセッサ・コアから構成される４つのCPU１０が、リングを形成するように光ファイバ１１で相互に接続され、各CPU１０にメモリ・バス１２を介して複数のメモリ１３が接続されている。
【００１０】
この構成例では、各CPU１０に接続されるメモリ１３には、そのメモリ１３をアクセスするために特定の波長が割り当てられ、その波長の光を使用してアクセスが行われる。WDMでは、波長の違う複数の光信号を同時に利用して光ファイバ１１を多重利用することができるため、ローカル・メモリとリモート・メモリのアクセス時間の差を解消することができる。これにより、将来のスケール・アップ型のサーバ・システムの性能を大きく向上させることができる。
【００１１】
図１に示すように、CPU間のデータ転送は、光ファイバ１１を利用し、CPUからメモリまでのデータ転送は、メモリ・バスを利用して行われる。複数のCPU１０が異なる波長でアクセスする場合には、アクセス・コンテンション（アクセス競合）は生じない。しかしながら、複数のCPU１０が特定の波長で同時にアクセスする場合は、アクセス・コンテンションが発生してしまう。このため、現実的なシステムを設計するにあたっては、多数のCPU１０からの任意の場所のメモリ１３に対するアクセスが発生することを考慮し、アクセス・コンテンションをいかに効率的に処理することができるかが鍵となる。
【００１２】
これは、入出力インタフェース等のI/Oデバイスを用いたネットワークと比較して、CPU-メモリ・ネットワークでは、それらの相互間での信頼性をend-to-endに保証する機構を、それらの間に組み込むことが難しいため、たとえアクセス・コンテンションによるパケット・ロスが発生する可能性が低い場合でも、一旦パケット・ロスが発生するとシステムの動作に致命的な影響を及ぼしかねない。
【００１３】
特許文献１〜３には、配線数を減少させるために光ファイバを利用し、波長多重で伝送する技術を開示するものの、上記のアクセス・コンテンションを、光ネットワークを使用して効率良く解消する方法を開示してはおらず、この実用的な方法はこれまで提案されていない。これは、光ネットワークが、スイッチ素子のスイッチング時間の制約からあまり頻繁なスイッチングを必要としないサーキット・スイッチをベースとした高バンド幅のデータ・プレーンには適しているが、スイッチングが頻繁で複雑な処理が必要となるコントロール・プレーンを含むパケット処理等では、適用範囲が限られていることが大きな理由の一つと考えられている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平７−１４１３１２号公報
【特許文献２】特開平７−２６４１６５号公報
【特許文献３】特開平１０−１０５５２８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
受信すべき光信号の波長またはその伝送路の位置空間が各ノードに割り当てられ、波長または位置空間に光信号を多重化して伝送する光ネットワーク・システムにおいて、一方向に光信号を伝送するリング状に形成された光ネットワークに接続されたノードから共用メモリへのアクセスを、時分割多重を利用して効率良く処理するシステムおよび方法を提供することを目的とする。ここで、時分割多重とは、異なる波長または位置空間の光信号を時間的に配列して、回線を共用する多重化の一方式である。
【課題を解決するための手段】
【００１６】
本発明は、上記課題に鑑み、時分割多重により共用回線を使用する時間が一定の長さに分割されてできた各スロット（時間枠）に対して、受信側ノード番号に対応した波長または位置空間で識別されるコンテンション・ビットを設け、このコンテンション・ビットへの各ノードからの上書きを許可することで、リング状に形成された光ネットワークでのコンテンションをパケット落ちなしに解消することができ、さらに、送信側ノードでの優先順位も制御することができることを見出すことによりなされたものである。
【００１７】
本発明において提供することができるシステムは、各ノードが異なる波長または伝送路の位置空間を割り当てられ、割り当てられた波長または位置空間の光信号のみを受信して自己が備えるメモリへのアクセスを可能にし、他のノードが備えるメモリへは当該他のノードに割り当てられた波長または位置空間の光信号を送信してアクセスする複数のノードと、複数のノードからの複数の光信号を時分割多重化して一定方向にのみ伝送可能なリング状に形成されたリング型ネットワークとを含む光ネットワーク・システムである。
【００１８】
リング型ネットワークは、各ノードに割り当てられた波長または位置空間の光信号を光パケットとして伝送する各時分割スロットを形成し、各時分割スロットが、各時分割スロット内に伝送すべき光パケットが存在するか否かを示す情報を含むように構成される。この情報は、スロットの先頭にある少なくとも１ビットからなるコンテンション・ビットとされ、スロット内に光パケットが存在する場合は、コンテンション・ビットが立てられる。
【００１９】
ノードは、そのノードから光パケットを受信するノードに対応した時分割スロットに含まれる前記情報を確認することなく、その情報を、光パケットが存在することを示す情報に更新する更新手段と、更新手段が実行する情報の更新と同じクロック・サイクルで動作し、更新前にその情報を読み取り、更新手段による情報の更新と並列に、読み取った情報から光パケットを送信するか否かを判断する判断手段とを含む。
【００２０】
すなわち、更新手段は、スロット内にコンテンション・ビットが立てられているか否かを確認することなく、コンテンション・ビットを立てるか、または上書きして更新する。
【００２１】
判断手段は、更新手段が情報の更新としてコンテンション・ビットを書き込むクロック・サイクルと同じクロック・サイクルで動作し、そのクロック・サイクルにおいて、更新手段がコンテンション・ビットを書き込む前に、コンテンション・ビットの値を読み、更新手段による情報の更新と並列に、光パケットが送信可能であるかを判断する処理を行う。その値がすでにコンテンション・ビットが立っていることを示す場合は、既にスロット内に光パケットが存在するので、光パケットの送信は不可と判断し、示さない場合は、スロット内に光パケットが存在しないので、光パケットの送信が可能と判断することができる。
【００２２】
このように、光通信を行う場合、既にビットが立っていて、ビットを上書きしても、受信側ノードの設定が適切である場合には、時分割スロットが特定のノードによって占有されるので、他のノードは、送信できないと判断し、次の時分割スロットまで送信キューに蓄積して送信を控えることができる。
【００２３】
光パケットは、その光パケットを送信したノードを識別するためのノード識別情報を含む。各ノードは、一定時間内において、同じノード識別情報を含む光パケットを受信した数が設定数を超える場合に、そのノード識別情報により識別されるノードに対し、自己に割り当てられた波長または位置空間の光パケットの送信を保留させるための保留信号を送信する制御手段をさらに含むことができる。
【００２４】
また、各ノードは、制御手段からの保留信号を受信し、保留信号により指定された波長または位置空間の光パケットの送信を保留する保留手段を含むことができる。なお、保留信号は、複数のノードに割り当てられていない波長または空間位置の光信号であることが好ましい。
【００２５】
本発明は、上記の光ネットワーク・システムのほか、そのシステムにより行われるメモリ・アクセス方法を提供することもでき、また、その方法を実現するためのコンピュータ可読なプログラムやそのプログラムが記録された記録媒体を提供することもできる。
【００２６】
これらのシステム、方法、プログラムを提供することにより、コンテンション・ビットが立っているか否かを確認することなく、光パケットを送信するか否かを判断するため、コンテンション・ビットの確認ステップがなくなり、効率良く処理することが可能となる。また、光パケットの送信が可能と判断した場合にのみ、光パケットを送信するので、パケット落ちがなくなる。さらに、光ネットワークによってもたらされる高バンド幅を、アクセス・コンテンションのオーバー・ヘッドなしに使い切ることができるため、複数のノードから構成される対称型マルチ・プロセッサ(SMP)の性能をノード間の通信バンド幅を使い切るところまで向上させることができる。
【図面の簡単な説明】
【００２７】
【図１】WDMを用いたUMAの構成例を示した図。
【図２】光ネットワーク・システムの構成例を示した図。
【図３】時分割スロットを例示した図。
【図４】光ネットワークに接続されるノードの構成例を示した図。
【図５】ノードの詳細な構成を例示した図。
【図６】メモリ・アクセスの流れを例示したフローチャート図。
【図７】メモリ・アクセスのスケジューリングを例示した図。
【図８】メモリ・アクセス時のリソースとピーク性能との関係を例示した図。
【発明を実施するための形態】
【００２８】
以下、本発明を図面に示した具体的な実施の形態に沿って説明するが、本発明は、後述する実施の形態に限定されるものではない。
【００２９】
図２は、本発明の光ネットワーク・システムの１つの構成例を示した図である。このシステムは、複数のノード２０と、光ファイバ・ケーブルによりこれらのノード２０を互いに接続してリング状に形成したリング型ネットワーク３０とから構成される。このリング型ネットワーク３０は、光信号の伝送方向が矢線Ｒに示すように一方向にすることが可能であるため、信号の衝突がないものである。これは、光が高い直進性を有することから可能となるものである。このケーブルは１本であってもよいが、障害が起きると、システム全体が停止してしまうため、例えば、二本のリング状の光ファイバ・ケーブルのそれぞれにノード２０を接続し、二重リング構造とすることもできる。ケーブルは、１本の光ファイバから構成されていてもよいし、複数の光ファイバから構成されていてもよい。
【００３０】
ノード２０の詳細な構成については、後述するが、ノード２０は、リング型ネットワーク３０を介して他のノードへ、情報の伝送単位である光パケットを送信し、他のノードからは光パケットを受信することができる。光パケットは、情報に加え、発信元と送信先のアドレス、パケットの種類、パケットの識別情報である番号等を付加したものとされる。
【００３１】
各ノード２０には、互いに異なる特定の波長または互いに異なる伝送路の位置空間が割り当てられ、この特定の波長または位置空間の光信号のみを受信し、自己が備えるメモリへのアクセスを可能にし、他のノードが備えるメモリへは、当該他のノードに割り当てられた波長または位置空間の光信号を送信してアクセスすることができる。このことから、各ノード２０が備えるメモリは、いずれのノードからもアクセス可能な共有メモリである。
【００３２】
共有メモリへのアクセスは、複数の異なる波長または位置空間の光信号を時間的に配列して伝送を行う時分割多重方式を利用して行うことができる。具体的には、図３に示す回線の使用時間をある一定の時間枠（スロット）４０に分割し、複数のチャネル、すなわち波長または位置空間に割り当てることで、仮想的に複数の伝送回線路を実現し、各スロット４０が備える各共有メモリへの同時アクセスを実現している。
【００３３】
例えば、あるノード２０に光パケット４１を送信する場合は、そのノード２０に割り当てられた波長または位置空間を使用し、その波長または位置空間が割り当てられたスロット４０において行う。このスロット４０が、２以上のノードから送信された光パケット４１により競合する場合があることから、各スロット４０にはコンテンション・ビット４２が設けられ、１のノードからの光パケット４１のみを伝送し、コンテンションを回避するように構成されている。
【００３４】
スロット４０は、光パケットの長さを考慮し、適切な単位で時分割され、その最初に図示しない１ビット以上の長さをもつコンテンション・フィールドが設けられる。光パケット４１は、このコンテンション・フィールドのあとに続く。図３（ａ）では、４つのノードの各々が受信する光パケットが入れられる各スロット４０が示され、その時間の方向である矢線に示す方向を先頭としてスロット４０内にコンテンション・フィールドが設けられている。光パケット４１が入れられたスロット４０には、コンテンション・フィールドにコンテンション・ビット４２が立てられている。
【００３５】
コンテンションは、各スロット４０に設けられる少なくとも１ビットの長さをもつコンテンション・フィールドにコンテンション・ビット４２を立てることにより排除することができる。コンテンション・ビット４２は、０から１へ変更することにより立てることができ、例えば、光強度の閾値を０．５として、この０．５以上の数値であれば、ビットが立っていると判断することができる。
【００３６】
なお、リング型ネットワーク３０内においては、図３（ｂ）に示すように、各ノード２０へ送信されるスロット４０が順に連結された形となる。
【００３７】
WDMを用いた光ネットワーク・システムでは、異なる特定の波長を各ノードに割り当て、その波長で、光パケットを送信し、また、受信することができる。空間分割多重方式(SDM)を用いる場合は、波長に代えて、特定の波長の光信号を伝送するための伝送路の位置空間を各ノードに割り当て、その位置空間で、光パケットを送信する。以下、WDMとして本発明を説明する。
【００３８】
各ノード２０に割り当てられる波長は、受信波長を定めたもので、送信波長は、送信先のノードに割り当てられた波長に任意に変更し、送信することができる。このため、波長可変の送信モジュールを備えることができ、送信モジュールは、波長可変レーザまたは波長の異なるレーザを集積し、合波器を経由して１本の光ファイバに集めて伝送することができる。各ノード２０とリング型ネットワーク３０は、Add-Dropマルチ・プレクサで接続することができる。このマルチ・プレクサは、低速回線をリング型の光ネットワークに参入(add)および除外(drop)させる機器である。
【００３９】
波長可変レーザまたは波長の異なるレーザは、半導体レーザに変調信号を入力し、半導体レーザを直接ON/OFFすることにより変調する直接変調、または、変調器に搬送波と変調信号とを入力することにより位相、振幅、偏波面等を変化させて変調する外部変調により生成することができる。
【００４０】
特定の波長の光信号のみを受信するために、電気−光の変換を行う光モジュレータや、特定の波長をブロックする光スイッチ素子を用いることができる。
【００４１】
ノード２０が備えるCPUがアクセス・プロトコルを使用してアクセスする際のパケット構成は、I/Oデバイスを介してアクセスする際のパケット構成と比較して、長さが規則的である。最も長いパケットでも、キャッシュ・ラインのFill（メモリの内容をキャッシュに読み込むこと）に使用されるバースト転送用のパケットである。このため、一定の短い長さに分割されたスロットに回線時間を区切り、各スロットのパケットを入れてほぼ同時に伝送する時分割多重化して伝送する光ネットワーク・システムを構成することは、比較的容易である。
【００４２】
図４を参照して、ノード２０の構成を詳細に説明する。ノード２０は、複数のCPUコアからなるCPU２１と、CPU２１および他のノードからアクセスされるメモリ２２と、他のノードに送信する光パケットを一時的に格納する送信キュー２３と、受信した光パケットを一時的に格納する受信キュー２４とを含んで構成される。
【００４３】
CPU２１は、光パケットを生成して送信するとともに、受信した光パケットを処理する。CPU２１は、これらの処理を、専用の付加ハードウェアで行うことが可能である。また、CPUが十分高速の場合は、メモリ２２からプログラムを読み出し実行することにより行うこともできる。CPU２１は、複数のCPUコアからなるマルチ・コアであり、それぞれのCPUコアが、独立して別個の処理を行うことができ、並列して処理を実行することができる。このため、迅速な処理を実現することができる。
【００４４】
メモリ２２は、各CPUコアからアクセス可能であり、さらには、他のノードが備える複数のCPUコアの各々からもアクセス可能な共有メモリである。メモリ２２は、時分割されたスロットにおいてノードからの光パケットによるアクセスを受け付け、データ等の記憶や読み出しを可能にする。このため、メモリ２２は、上記プログラムに加え、各種データやパラメータ等を記憶する。
【００４５】
送信キュー２３は、CPU２１により生成した光パケットを、そのノードに送信できない場合に、送信できるようになるまで一時的に格納し、送信を保留する。送信キュー２３は、このキューに入れられたパケット順に取り出され、対応するノードへ、対応するスロットにおいて送信する。
【００４６】
受信キュー２４は、他のノードによりメモリがアクセスされ、光パケットを処理している間、他の光パケットを受け付けた順に一時的に格納する。受信キュー２４は、このキューに入れられたパケット順に取り出され、メモリ２２へのアクセスが可能とされる。
【００４７】
これらの送信キュー２３および受信キュー２４は、先入れ先出しするFIFOキューとすることができる。ノード２０は、その他に、I/Oデバイス等の複数のデバイスを含むことができ、CPU２１と、メモリ２２やI/Oデバイス等とが、アドレス・バス、データ・バス、コントロール・バスにより接続され、CPU２１は、これらのバスを制御して、これらのデバイスとやり取りを行うことができる。これらのデバイスには、アドレスが付けられ、CPU２１は、このアドレスを基に、やり取りを行うことができる。
【００４８】
CPU２１は、専用ハードウェアを用いて、もしくはメモリ２２からプログラムを読み出し実行することで、図５に示す各手段として機能することができる。本発明では、更新手段２５、判断手段２６、処理手段２７として機能することができる。
【００４９】
更新手段２５は、光パケットを受信するノードに対応したスロットに含まれるコンテンション・ビットを確認することなく、そのコンテンション・ビットがまだ立っていない場合は立て、既に立っている場合は上書きする。
【００５０】
あるノードが、光パケットを送信したい場合、そのノードの上流にあるノードが既にコンテンション・フィールドにコンテンション・ビットを立てているかどうかに関わらず、そのノードが備える更新手段２５は、当該フィールドに書き込みを行い、コンテンション・ビットを立てる。ここで、上流にあるノードとは、光パケットを受信するノードを最下流とし、光パケットの伝送方向とは反対方向に遡り、そのノードよりさらに遡った位置にあるノードをいう。
【００５１】
ここで、電気信号でビットを立てる場合について説明しておくと、ビットは、所定の電圧を印加し、その電圧値になったところで立てられる。仮に、このビットの上書きが許可されると、競合するパケットがないことを示すことから、光パケットが送信可能と判断される。しかしながら、現実には存在するパケットと競合し、パケット落ちにつながる。このため、ビットを立てようとする際、通常ビットが既に立っているかを事前に確認する必要がある。その確認の結果、ビットが立っていない場合に、ビットを立てることができる。ビットは、スイッチをONにして電圧を印加することにより立てられる。電気信号でビットを立てる場合は、この事前の確認の必要性から、ノード毎に処理が１クロック・サイクル以上遅れてしまう。ここで、クロック・サイクルとは、１命令を完了するのにかかるクロック数である。
【００５２】
本発明のような光信号を使用する場合には、後述するように、競合するパケットの有無の判断と、コンテンション・ビットの更新とを同じクロック・サイクルで実行できることから、ビットが既に立っているかを確認することなく、ビットを立てることができる。したがって、特別なスイッチが不要で、スイッチの制御も不要である。また、ビットの確認ステップが不要であるため、処理効率を向上させることができる。
【００５３】
このため、判断手段２６は、更新手段２５がコンテンション・ビットを書き込むクロック・サイクルと同じクロック・サイクルで動作し、そのクロック・サイクルにおいて、更新手段２５がコンテンション・ビットを書き込む前に、更新前のコンテンション・ビットの値を読み、光パケットを送信するか否かを判断するように構成される。なお、この判断は、更新手段２５による書き込みと並列して行うことができる。
【００５４】
電気信号でビットを上書きする場合、信号の進行方向に対する制御が必ずしも十分でないので、更新手段２５による処理と判断手段２６による処理を同じクロック・サイクルで行うことは難しい。
【００５５】
これに対し、光信号では、光が高い直進性を有することから、リング内を一方向に進ませることが比較的簡単にできるため、リング内で、判断手段２６から出した信号のすぐ後に更新手段２５から出した信号を配置して、同じクロック・サイクルでこれらの処理を実施しても問題は起こらない。これは、判断手段２６によるコンテンション・ビットの値の読み込み、更新手段２５によるコンテンション・ビットの書き込みを、確実に、この順で行うことができるからである。
【００５６】
このように、光信号の場合、既にそれ以前のノードによりコンテンション・ビットが立っていても、そのスロットが既に特定の光パケットにより占有されていることを検知することと、これからそのスロットを占有する意思表示を同じクロック・サイクルで処理できるので、光パケットが送信できないと判断するのに無駄なクロック・サイクルを使うことなくコンテンションの制御が可能であり、次のスロットまで送信キュー２３に蓄積して送信を控えることができる。
【００５７】
その後は、次のスロットのコンテンション・ビットを書き込むクロック・サイクルと同じクロック・サイクルで、コンテンション・フィールドに書き込む前に、更新前のコンテンション・ビットの値を読み、光パケットを、送信可能か否かを判断する。送信可能であれば、コンテンション・ビットに続いて光パケットを送信し、送信不可であれば、送信キューに入れたままで、さらに次のスロットまで送信を控える。
【００５８】
処理手段２７は、判断手段２６からの判断結果を受けて、その判断結果に基づき、光パケットを送信するか、送信キュー２３に送る。また、処理手段２７は、他のノードから受信し、受信キュー２４に格納された光パケットを順に取り出し、それを処理する。その光パケットが、メモリ２２に格納されたデータへのアクセス要求である場合は、処理手段２７は、その光パケットを取り出し、解読した後、メモリ２２に格納されたそのデータを取り出し、そのデータを含む光パケットを生成し、要求元のノードへ送信する。
【００５９】
図６に示すフローチャート図を参照して、光ネットワーク・システムにおいて行われるメモリ・アクセスの流れについて説明する。あるノードが、特定のノードが備えるメモリに対してアクセスする場合、この処理を実行する。この処理は、ステップ６００から開始し、ステップ６１０において、更新手段２５が、その特定のノードに割り当てられた波長に対応したスロットに設けられたコンテンション・フィールドに、コンテンション・ビットが立てられているか否かを確認することなく、書き込み、コンテンション・ビットを立てる。このビットを立てた後、ステップ６５０へ進み、更新手段２５による処理は終了する。
【００６０】
ステップ６１０と並列に、ステップ６２０において、判断手段２６が、コンテンション・ビットの状態から、光パケットを、送信可能か否かを判断する。すなわち、コンテンション・フィールドのコンテンション・ビットがすでに立てられ、１になっているかを判断する。なお、コンテンション・ビットの状態は、ステップ６１０において更新手段２５が書き込みを行う前に、コンテンション・ビットの値を読み込むことで検知することができる。
【００６１】
１になっていない場合は、上書きではないので、ステップ６３０へ進み、光パケットの送信可能と判断し、光パケットを送信し、ステップ６５０で処理を終了する。
【００６２】
一方、１になっている場合は、既にスロット内に光パケットが存在するので、光パケットの送信が不可と判断し、ステップ６４０へ進み、光パケットを送信キューへ入れ、ステップ６１０へ戻り、その特定のノードに割り当てられた波長に対応した次のスロットに設けられたコンテンション・フィールドに、コンテンション・ビットが立てられているか否かを確認することなく、書き込み、コンテンション・ビットを立てる。
【００６３】
この処理は、光パケットが送信されるまで続けることができるが、任意に定めた時間内あるいは回数内に送信できなければ、中止し、その光パケットを破棄することもできる。
【００６４】
図７は、メモリ・アクセスのスケジューリングを例示した図である。光ネットワーク・システムでは、光パケットを受信するノードを最下流のノードとして、光パケットの伝送方向に基づき、最も上流のノードから順に優先順位がつけられる。例えば、図７（ａ）に示すように、ノードAが光パケットの受信側ノードとし、時計とは反対回りに光パケットが伝送されるとすれば、ノードB、C、Dの順に優先順位がつけられる。
【００６５】
このような優先順位で決定される場合、常にノードBが最も優先順位が高く、ノードDは常に最も優先順位が低くなってしまう。これでは、ノードBがノードAに対して光パケットを送信し続ける場合、その間、ノードCやDはノードAに対して光パケットを送信することができない。これでは、特定のノードBからのアクセスが集中し、下流のノードCからのアクセスがブロックされるという不均衡が発生してしまう。
【００６６】
ノードB、C、Dは、他のノードの状況を知ることはできない。一方、それらのノードからパケットを受信するノードAは、現在どのノードからパケットが送信されているかを知っている。このため、受信側ノードであるノードAが、特定のノードBからのアクセスが集中している場合、図７（ｂ）に示すように、そのノードBからのアクセスを一時的に保留させるhold信号をそのノードBに対して送り、光パケットの送信を保留させるように指示ことができる。CPUを制御手段として機能させ、その制御手段によりノードBへその指示を送ることができる。
【００６７】
そのhold信号を受信したノードBは、CPUを保留手段として機能させ、その保留手段により送信すべき光パケットを、自己の送信キューに入れ、保留を解除する信号を受信するまで送信を控える。これらの信号は、各ノードA、B、C、Dに割り当てられた特定の波長以外のOut-of-band（帯域外）の波長で送信されることが望ましい。同じ波長であると、デッドロックを起こしやすくなるためである。
【００６８】
その間、下流のノードCがノードAに対してパケットを送信し、ノードAが備えるメモリへアクセスすることができる。下流のノードCによるノードAへのアクセスは、上流のノードBの保留が解消されれば、再び上流のノードBが優先されるため、下流のノードCによるアクセスはブロックされる。
【００６９】
このようにして、各ノードからのアクセスを均等に配分し、全体としての処理効率を向上させることができる。なお、保留は、ノードAが、ノードCが所定数の光パケットを受信したところで、ノードBに対し、保留を解消すべき旨を指示する信号を送信することで解消することができる。この信号も、Out-of-band（帯域外）の波長で送信されることが望ましい。所定数は、いかなる数であってもよく、例えば、ノードBから１０パケット受信したら、ノードBからの送信を保留させ、ノードCから１０パケット受信したら、ノードBの保留を解消させるようにすることができる。なお、ノードDからノードAへ送信すべき光パケットがある場合は、ノードB、Cが上記のようにしてある程度の光パケットを送信した後、それらの送信を保留させることで、ノードDが光パケットを送信することができる。
【００７０】
上述した本発明のメモリ・アクセス方法を使用することで、従来の方法に比較してどの程度、処理効率が向上するかをシミュレーションした結果を図８に示す。なお、シミュレーションによる検討は、選択する問題によって結果にばらつきが大きいため、ここでは、論理的な考察を行った。
【００７１】
一般的に、コンピュータの処理は、システムの一部を改良したときに全体として期待できる性能向上の程度を知るためのアムダールの法則に代表されるように、CPUの処理能力とメモリ・サイズの間に一定の関係があると想定される。
【００７２】
ここで、簡素化するために、CPUコアを１つと、それに見合ったメモリ・サイズを１基本単位のリソースとして考えた場合、MCM単位の各ノードは、N個のCPUコアとそれに見合った１基本単位のメモリのN倍のメモリで構成されていると考えられる。ここで、MCMとは、複数のベア・チップを基板に直接搭載し、１つの機能モジュールとしてまとめたものである。
【００７３】
計算したい処理のWorking set（OSがあまり使われていないデータを物理メモリからHDDへスワップさせるが、ソフトウェアが使用しているメモリのうちスワップされていない部分のメモリ領域）がこの基本単位のN倍以内であれば、ソフトウェアでの並列化がうまくいっていると仮定することができる。処理能力は、Working setが使用する基本単位がN倍を超えない限り、ノード間の有効通信バンド幅にはあまり影響を受けず、破線に沿い、使用するリソースの基本単位数に従ってスケールする。
【００７４】
しかしながら、Working setが境界値として示されるこの基本単位を超えると、処理能力は、ノード間のバンド間のバンド幅に大きく依存し、曲線Ｙに示すように、破線から大きく外れ、使用するリソースの基本単位数に従ってスケールしなくなる。
【００７５】
一方、本発明のメモリ・アクセス方法を利用すると、アクセス・コンテンションを起こすことなく、ノード間の有効通信バンド幅を大きく改善することができるため、Working setの基本単位がN倍を超えても、ソフトウェアでの並列化がうまくいっていれば、処理能力は、曲線Ｚに示すように、破線に沿い、使用するリソースの基本単位数に従ってスケールさせることが可能となる。
【００７６】
このことは、光ネットワークによってもたらされる高バンド幅を、アクセス・コンテンションのオーバー・ヘッドなしに使い切ることが可能になることを示し、複数のノードから構成されるSMPの性能をノード間の通信バンド幅を使い切るところまで向上させることが可能となることを示した。
【００７７】
これまで、本発明の光ネットワーク・システムおよびメモリ・アクセス方法を、図面を参照して詳細に説明してきたが、他の実施形態や、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００７８】
１０…CPU、１１…光ファイバ、１２…メモリ・バス、１３…メモリ、２０…ノード、２１…CPU、２２…メモリ、２３…送信キュー、２４…受信キュー、２５…更新手段、２６…判断手段、２７…処理手段、３０…リング型ネットワーク、４０…スロット、４１…光パケット、４２…コンテンション・ビット
【図１】
2010258559.tif 000003
【図２】
2010258559.tif 000004
【図３】
2010258559.tif 000005
【図４】
2010258559.tif 000006
【図５】
2010258559.tif 000007
【図６】
2010258559.tif 000008
【図７】
2010258559.tif 000009
【図８】
2010258559.tif 000010