この発明の実施の形態を説明する。図1は、実施の形態としてのマルチプロセッサシステム100の構成を示している。このマルチプロセッサシステム100は、2つのマルチプロセッサ部100A,100Bからなっている。
マルチプロセッサ部100Aは、3個のプロセッサユニット(CPUユニット)U1a,U2a,U3aと、1個のメモリユニットU7aが、光バス120Aに接続されて構成されている。これらプロセッサユニットU1a,U2a,U3aおよびメモリユニットU7aは、それぞれノードを構成している。
プロセッサユニットU1aは、CPU(Central Processing Unit)1とキャッシュ(キャッシュメモリ)11とで構成されている。プロセッサユニットU2aは、CPU2とキャッシュ21とで構成されている。プロセッサユニットU3aは、CPU3とキャッシュ31とで構成されている。これらプロセッサユニットU1a,U2aU3aは、光信号を送信する光送信装置110および光信号を受信する光受信装置111を有している。また、メモリユニットU7aは、メモリコントローラ7と、メモリ71,72とで構成されている。このメモリユニットU7aも、光送信装置110および光受信装置111を有している。
本実施の形態において、光信号を送受信する方式として、フレーム同期方式が用いられる。そのため、光送信装置110より出力される光信号は、フレームフォーマットの光信号とされる。図2は、そのフレームフォーマットを示している。すなわち、フレームは、SOF(Start Of Frame)で始まり、EOF(End Of Frame)で終わる。これらSOFおよびEOFの間には、ヘッダ、ペイロード(情報)およびCRC(Cyclic Redundancy Check)が配置される。ヘッダには、送信先のノードのアドレス、送信元のノードのアドレスなどが入る。CRCでは、エラーのチェックが行われる。
光バス120Aは、光結合装置5、光分岐装置6、光スイッチ4および光導波路9,9a,10a,10により構成されている。光結合装置5は、プロセッサユニットU1a,U2a,U3aおよびメモリユニットU7aの光送信装置110から出力される複数の光信号St1,St2,St3およびSt7を結合して一つの光信号Stを得る装置である。光分岐装置6は、一つの光信号Srを分岐してプロセッサユニットU1a,U2a,U3aおよびメモリユニットU7aの光受信装置111にそれぞれ入力するための光信号Sr1,Sr2,Sr3およびSr7を得る装置である。
これら光結合装置5および光分岐装置6は、それぞれ、例えばファイバカプラを用いて実現できる。図3はファイバカプラFCで構成された光結合装置5を示し、図4はファイバカプラFCで構成された光分岐装置6を示している。このファイバカプラとして、例えば、トヨクニ電機株式会社製の「スタンダードツリーカプラ」を使用できる。
光導波路9は4チャネル分備えられている。これら4チャネル分の光導波路9は、プロセッサユニットU1a,U2a,U3aおよびメモリユニットU7aの光送信装置110から出力される複数の光信号St1,St2,St3およびSt7をそれぞれ光結合装置5に入力するためのものであって、第1の光導波路を構成している。光導波路9aは1チャネル分備えられている。この1チャネル分の光導波路9aは、光結合装置5で得られた一つの光信号Stを光スイッチ4に入力するためのものであって、第2の光導波路を構成している。
光導波路10aは1チャネル分備えられている。この1チャネル分の光導波路10aは、光スイッチ4より出力された一つの光信号Srを光分岐装置6に入力するためのものであって、第3の光導波路を構成している。光導波路10は4チャネル分備えられている。これら4チャネル分の光導波路10は、光分岐装置6で得られた光信号Sr1,Sr2,Sr3およびSr7をそれぞれプロセッサユニットU1a,U2a,U3aおよびメモリユニットU7aの光受信装置111に入力するためのものであって、第4の光導波路を構成している。
なお、図1において、光導波路9,9a,10a,10bは、1チャネル当たり一本の線で描かれている。しかし、1チャネル当たり複数本の光導波路から構成されていてもよい。これにより、データを並列データとして転送でき、例えばフレームフォーマットのデータの転送時間を短くできる。また、光導波路9,9a,10a,10bは、光ファイバでもよく、ガラス基板上、または電気回路上に構築された光導波路でもよい。
また、4チャネル分の光導波路9の長さは同一とされると共に、4チャネル分の光導波路10の長さは同一とされる。プロセッサユニットU1a,U2a,U3aおよびメモリユニットU7aのいずれかの光送信装置110から出力される光信号は、それぞれ同一の時間を経てプロセッサユニットU1a,U2a,U3aおよびメモリユニットU7aの光受信装置111に入力される。そのため、ある送信から次の送信までの待ち時間を短くでき、例えばプロセッサユニットU1a,U2a,U3aおよびメモリユニットU7aのサイクルを短くでき、これらノード間のスムーズなデータ転送が可能となる。
因みに、光導波路の長さが同一でないときは、プロセッサユニットU1a,U2a,U3aおよびメモリユニットU7aのいずれかの光送信装置110から出力される光信号は、それぞれ異なった時間を経てプロセッサユニットU1a,U2a,U3aおよびメモリユニットU7aの光受信装置111に入力される。この場合、ある送信から次の送信までの待ち時間は、最も長い光伝送時間を考慮して決定されるため、長くなる。
光スイッチ4は、少なくとも、第1の切り替え状態と、第2の切り替え状態とに切り替え可能とされている。光スイッチ4は、第1の切り替え状態では、光結合装置5からの光信号Stを、光分岐装置6に入力する光信号Srとして出力する。第2の切り替え状態では、光結合装置5からの光信号Stを、他の光スイッチ、すなわちマルチプロセッサ部100Bの光バス120Bを構成する光スイッチ4に入力する光信号Siとして出力すると共に、この他の光スイッチからの光信号Sjを光分岐装置6に入力する光信号Srとして出力する。
光スイッチ4は、光結合装置5から入力される光信号Stの送信先に応じて、第1の切り替え状態、または第2の切り替え状態となる。すなわち、光結合装置5から入力される光信号Stの送信先が、光バス120Aに接続されているプロセッサユニットU1a,U2a,U3aおよびメモリユニットU7aのいずれかである場合には、第1の切り替え状態となる。一方、光結合装置5から入力される光信号Stの送信先が、光バス120Bに接続されているプロセッサユニットU1b,U2b,U3bおよびメモリユニットU7bのいずれかである場合には、第2の切り替え状態となる。
マルチプロセッサ部100Bは、3個のプロセッサユニット(CPUユニット)U1b,U2b,U3bと、1個のメモリユニットU7bが、光バス120Bに接続されて構成されている。これらプロセッサユニットU1b,U2b,U3bおよびメモリユニットU7bは、それぞれノードを構成している。プロセッサユニットU1b,U2b,U3bおよびメモリユニットU7bは、詳細説明は省略するが、それぞれ上述したマルチプロセッサ部100AにおけるプロセッサユニットU1a,U2a,U3aおよびメモリユニットU7aと同様に構成されている。
光バス120Bは、上述したマルチプロセッサ部100Aにおける光バス120Aと同様に、光結合装置5、光分岐装置6、光スイッチ4および光導波路9,9a,10a,10により構成されている。
光結合装置5は、プロセッサユニットU1b,U2b,U3bおよびメモリユニットU7bの光送信装置110から出力される複数の光信号St1,St2,St3およびSt7を結合して一つの光信号Stを得る装置である。光分岐装置6は、一つの光信号Srを分岐してプロセッサユニットU1b,U2b,U3bおよびメモリユニットU7bの光受信装置111にそれぞれ入力するための光信号Sr1,Sr2,Sr3およびSr7を得る装置である。
プロセッサユニットU1b,U2b,U3bおよびメモリユニットU7bの光送信装置110と光結合装置5との間に、それぞれ光導波路9が配置され、光結合装置5と光スイッチ4との間に光導波路9aが配置され、光スイッチ4と光分岐装置6との間に光導波路10aが配置され、光分岐装置6とプロセッサユニットU1b,U2b,U3bおよびメモリユニットU7bの光受信装置111との間に、それぞれ光導波路10が配置されている。
また、マルチプロセッサ部100A,100Bにおける光バス120A,120Bの光スイッチ4,4は、光導波路20aおよび光導波路20bで接続されている。光導波路20aは、光バス120Aの光スイッチ4より出力される光信号Siを、光バス120Bの光スイッチ4に光信号Sjとして入力するためのものである。光導波路20bは、光バス120Bの光スイッチ4より出力される光信号Siを、光バス120Aの光スイッチ4に光信号Sjとして入力するためのものである。
図1に示すマルチプロセッサシステム100の動作例を説明する。
まず、光バス120Aに接続されているプロセッサユニットU1aが、この光バス120Aに接続されているメモリユニットU7aにあるデータを読み出す場合について説明する。
この場合、プロセッサユニットU1aの光送信装置110から、メモリアドレスを含む読み出し命令に係る光信号St1が出力される。この光信号St1は光導波路9、光結合装置5および光導波路9aを介して光スイッチ4に入力される。このとき、光スイッチ4は第1の切り替え状態になっており、この光スイッチ4からは、入力された光信号Stが光分岐装置6に入力する光信号Srとして出力される。
このように光スイッチ4から出力される光信号Srは光導波路10aを介して光分岐装置6に入力されて分岐され、4つの光信号Sr1,Sr2,Sr3およびSr7が得られる。これら光信号Sr1,Sr2,Sr3およびSr7は、それぞれ、光導波路10を介してプロセッサユニットU1a,U2a,U3aおよびメモリユニットU7aの光受信装置111に入力される。
メモリユニットU7aではその光信号Sr7に含まれるメモリアドレスのデータがメモリ71,72から読み出され、その光送信装置110からその読み出しデータを含む光信号St7が出力される。この光信号St7は光導波路9、光結合装置5および光導波路9aを介して光スイッチ4に入力される。このとき、光スイッチ4は第1の切り替え状態になっており、この光スイッチ4からは、入力された光信号Stが光分岐装置6に入力する光信号Srとして出力される。
このように光スイッチ4から出力される光信号Srは光導波路10aを介して光分岐装置6に入力されて分岐され、4つの光信号Sr1,Sr2,Sr3およびSr7が得られる。これら光信号Sr1,Sr2,Sr3およびSr7は、それぞれ、光導波路10を介してプロセッサユニットU1a,U2a,U3aおよびメモリユニットU7aの光受信装置111に入力される。これにより、プロセッサユニットU1aでは、メモリユニットU7aにあるデータが取得される。
このように光バス120Aに接続されているプロセッサユニットU1a,U2a,U3aとメモリユニットU7aの間で命令とデータのやり取りが行われる場合、それに係る光信号Sr1,Sr2,Sr3が光分岐装置6からプロセッサユニットU1a,U2a,U3aの光受信装置111に入力され、プロセッサユニットU1a,U2a,U3aのそれぞれはその命令とデータのやり取りを全て知ることででき、キャッシュコヒーレンシを保つための適切な処理を行うことが可能となる。これは、光バス120Bに接続されているプロセッサユニットU1b,U2b,U3bとメモリユニットU7bの間で命令とデータのやり取りが行われる場合においても同様である。
次に、光バス120Aに接続されているプロセッサユニットU1aが、光バス120Bに接続されているメモリユニットU7bにあるデータを読み出す場合について説明する。
この場合、プロセッサユニットU1aの光送信装置110から、メモリアドレスを含む読み出し命令に係る光信号St1が出力される。この光信号St1は光導波路9、光結合装置5および光導波路9aを介して光スイッチ4に入力される。このとき、光スイッチ4は第1の切り替え状態になっており、この光スイッチ4からは、入力された光信号Stが光分岐装置6に入力する光信号Srとして出力される。
このように光スイッチ4から出力される光信号Srは光導波路10aを介して光分岐装置6に入力されて分岐され、4つの光信号Sr1,Sr2,Sr3およびSr7が得られる。これら光信号Sr1,Sr2,Sr3およびSr7は、それぞれ、光導波路10を介してプロセッサユニットU1a,U2a,U3aおよびメモリユニットU7aの光受信装置111に入力される。
また、光スイッチ4では、光信号Stを受信し、この光信号Stに含まれる情報、すなわち光バス120Bに接続されているメモリユニットU7bにあるデータの読み出し命令が取得される。そして、この光バス120A側の光スイッチ4から、その読み出し命令を光バス120B側に伝えるための光信号Siが出力される。この光信号Siは、光導波路20aを介して、光バス120B側の光スイッチ4に、光信号Sjとして入力される。
光バス120B側の光スイッチ4では、その光信号Sjに含まれる情報、すなわちメモリユニットU7bにあるデータの読み出し命令が取得される。そして、この光バス120Bでは、その読み出し命令に係る光信号Srが出力されると共に、光バス120A側の光スイッチ4に第2の切り替え状態に切り替えるように要求するための光信号Siが出力される。
この光バス120B側の光スイッチ4から出力される光信号Srは光分岐装置6に入力されて分岐され、4つの光信号Sr1,Sr2,Sr3およびSr7が得られる。これら光信号Sr1,Sr2,Sr3およびSr7は、それぞれ、光導波路10を介してプロセッサユニットU1b,U2b,U3bおよびメモリユニットU7bの光受信装置111に入力される。
また、この光バス120B側の光スイッチ4から出力される光信号Siは、光導波路20bを介して、光バス120A側の光スイッチ4に、光信号Sjとして入力される。光バス120A側の光スイッチ4では、その光信号Sjに含まれる情報、切り替え要求が取得される。光バス120A側の光スイッチ4は、この切り替え要求に基づいて、第2の切り替え状態とされる。一方、光バス120B側の光スイッチ4も、第2の切り替え状態とされる。
この状態で、メモリユニットU7bでは光信号Sr7に含まれるメモリアドレスのデータがメモリ71,72から読み出され、その光送信装置110からその読み出しデータを含む光信号St7が出力される。この光信号St7は、光導波路9、光結合装置5および光導波路9aを介して光スイッチ4に入力される。このとき、光スイッチ4は第2の切り替え状態になっており、この光スイッチ4からは、入力された光信号Stが他の光スイッチに入力する光信号Siとして出力される。
このように光バス120B側の光スイッチ4から出力される光信号Siは、光導波路20bを介して、光バス120A側の光スイッチ4に、光信号Sjとして入力される。光バス120A側の光スイッチ4では、この光信号Sjが、光分岐装置6に入力される光信号Srとして出力される。
この光信号Srは光導波路10aを介して光分岐装置6に入力されて分岐され、4つの光信号Sr1,Sr2,Sr3およびSr7が得られる。これら光信号Sr1,Sr2,Sr3およびSr7は、それぞれ、光導波路10を介してプロセッサユニットU1a,U2a,U3aおよびメモリユニットU7aの光受信装置111に入力される。これにより、光バス120Aに接続されたプロセッサユニットU1aでは、光バス120Bに接続されたメモリユニットU7bにあるデータが取得される。
なお、このようにデータの転送が行われた後、光バス120A側の光スイッチ4および光バス120B側の光スイッチ4は、それぞれ第1の切り替え状態に戻される。
このように光バス120Aに接続されているプロセッサユニットU1a,U2a,U3aと光バス120Bに接続されているメモリユニットU7bとの間で命令とデータのやり取りが行われる場合、マルチプロセッサ部100A側では、それに係る光信号Sr1,Sr2,Sr3が光分岐装置6からプロセッサユニットU1a,U2a,U3aの光受信装置111に入力され、プロセッサユニットU1a,U2a,U3aのそれぞれはその命令とデータのやり取りを全て知ることででき、キャッシュコヒーレンシを保つための適切な処理を行うことができる。
また、光バス120Aに接続されているプロセッサユニットU1a,U2a,U3aと光バス120Bに接続されているメモリユニットU7bとの間で命令とデータのやり取りが行われる場合、マルチプロセッサ部100B側では、読み出し命令に係る光信号Sr1,Sr2,Sr3が光分岐装置6からプロセッサユニットU1b,U2b,U3bの光受信装置111に入力される。
また、マルチプロセッサ部100B側では、上述せずも、第2の切り替え状態でメモリユニットU7bの光送信装置110から出力される読み出しデータを含む光信号Sr7の情報が、光スイッチ4内に蓄えられる。その後、光スイッチ4では、その蓄えられた情報に基づいて、読み出しデータを含む光信号Srが出力される。この光信号Srは光分岐装置6に入力されて分岐され、4つの光信号Sr1,Sr2,Sr3およびSr7が得られる。これら光信号Sr1,Sr2,Sr3およびSr7は、それぞれ、光導波路10を介してプロセッサユニットU1b,U2b,U3bおよびメモリユニットU7bの光受信装置111に入力される。
これにより、マルチプロセッサ部100B側でも、プロセッサユニットU1b,U2b,U3bのそれぞれはその命令とデータのやり取りを全て知ることででき、キャッシュコヒーレンシを保つための適切な処理を行うことができる。
図1に示すマルチプロセッサシステム100においては、ある光バス(光バス120Aまたは光バス120B)に接続された複数のノード(ユニットU1a,U2a,U3a,U7aまたはユニットU1b,U2b,U3b,U7b)は、光スイッチ4を介して、他の光バス(光バス120Bまたは光バス120A)に接続できる。これにより、光バス(光バス120Aまたは光バス120B)に、より多くのノードの接続が可能となる。この場合、光分岐装置6における分岐数が増大するものではなく、光量の減衰が問題となることはない。また、各ノードの出力側に光スイッチを設置するものではなく、また各ノードの出力側には1チャネル分の光導波路9を接続するものであり、大きなコスト増を招くことはない。
次に、光スイッチ4の詳細を説明する。図5は、光スイッチ4の構成を示している。光スイッチ4は、光路切り替え部4aと、制御部4bとを有している。制御部4bは、光送信装置200および光受信装置201、さらには光送信装置210および光受信装置211を有し、これら各装置の制御を行う。光路切り替え部4aは、2個のミラーM3,M4で構成される。これらミラーM3,M4は、例えばMEMS(Micro Electromechanical System:微小電気機械システム)ミラーを応用することで実現できる。
光導波路9aから、光信号Bin(St)が入射(入力)される。この光信号BinはコリメータレンズLcにより平行光とされた後、ビームスプリッタBS1により、二つの光路Bin1,Bin2に分岐される。光信号Bin2は、遅延線DLに入射される。この遅延線DLから所定時間だけ遅延されて出射される光信号Bin2はビープスプリッタBS2を透過し、集光レンズLfにより集光され、光導波路10aに入射される。
遅延線DLの遅延時間は、この光スイッチ4から他の光スイッチ4までの光信号の遅延時間に相当するものとされる。この遅延線DLは、例えば、図6に示すように、光導波路DL1を用いて構成される。この光導波路DL1の長さは、この光スイッチ4から他の光スイッチ4までの信号線(図1の光導波路20a,20b参照)の長さと等しくされる。光信号Bin2は、集光レンズLfにより集光され、光導波路DL1に入射される。そして、この光導波路DL1より出射される光信号はコリメータレンズLcにより平行光とされ、遅延線DLの出力信号となる。
図5に戻って、光信号Bin1は、ミラーM1により光路を曲げられ、制御部4bの光受信装置201に入射される。これにより、制御部4bは、光結合装置5から光スイッチ4に入力される光信号Bin(St)に含まれる情報を取得でき、常にその情報をモニタ(監視)できる。これにより、例えば、複数のノードのいずれかが、他の光バスに接続されているノードからのデータ転送、あるいは他の光バスに接続されているノードへのデータ転送を要求している場合、制御部4bはそれを直ちに認識でき、そのことを通信手段(光送信装置210)を介して他の光バスの光スイッチ4に伝達できる。
また、制御部4bの光送信装置200から出力される光信号Bout1は、ミラーM2で光路を曲げられ、ビームスプリッタBS2で反射され、集光レンズLfにより集光され、光導波路10aに光信号Srとして入射される。この光信号Bout1も、フレームフォーマットの光信号とされる(図2参照)。これにより、制御部4bの光送信装置200および光受信装置201では、フレーム同期による光信号の送受信が可能となる。
また、光スイッチ4は、ノードとしてのバス調停器BAを有している。各ノードは、フレームに同期して、データの送受信を行う。その際に、バス調停器BAは、光バス上の各ノードの送受信管理を行う。制御部4bの光送信装置200は、バス調停器BAの制御のもと、光信号Bout1として、複数のノード(ユニットU1a,U2a,U3a,U7aまたはユニットU1b,U2b,U3b,U7b)の光送信装置110(図1参照)における光信号の出力タイミングを制御するための光信号を出力する。
本実施の形態において、この光信号は、複数のノードを順次ポーリングするための光信号とされる。バス調停器BAは、各ノード宛てにバスリクエストの有無を問い合わせるポーリングを行う。この場合、光スイッチ4に関しては、自分自身のノードであるので、ポーリングする必要はない。
これにより、バス調停が行われ、複数のノードの光送信装置110からの光信号が光バス(光バス120Aまたは光バス120B)上で競合することを回避できる。またこのように、光スイッチ4でバス調整を行うようにしているので、第1の光バス(光バス120Aまたは光バス120B)に接続されているノードと第2の光バス(光バス120Bまたは光バス120A)に接続されているノードとの間でデータの転送を行う場合の光スイッチ4の切り替えを容易に行うことができる。
制御部4bの光送信装置210は、光バス120A,120Bで用いられる光信号、つまり複数のノード(ユニットU1a,U2a,U3a,U7aおよびユニットU1b,U2b,U3b,U7b)で取り扱われる光信号の波長(第1の波長)λaとは異なる波長(第2の波長)λbの光信号Bout_bを出力する。同様に、制御部4bの光受信装置211も、光送信装置210から出力される光信号Bout_bと同じ波長λbの光信号Bin_bだけを受信する。これら光送信装置210および光受信装置211は、他の光スイッチ4との間で通信を行う光通信手段を構成している。
このように光通信手段を持つことで、第1の光バス(光バス120Aまたは光バス120B)に接続されているノードと第2の光バス(光バス120Bまたは光バス120A)に接続されているノードとの間でデータの転送を行う場合、それぞれの光バスにおける光スイッチ4の切り替え等をスムーズに行うことができる。また、この光通信手段で、光バスに接続された複数のノードで取り扱われる光信号の波長λaとは異なる波長λbの光信号を取り扱うことで、第1の光バス(光バス120Aまたは光バス120B)に接続されているノードから第2の光バス(光バス120Bまたは光バス120A)に接続されているノードにデータを送信している期間であっても、同一の光導波路20a,20bを介して、光通信手段により光スイッチ4,4間で通信を良好に行うことができる。
制御部4bの制御のもと、光送信装置210からは、他の光スイッチ4に送信すべき情報を含む、波長λbの光信号Bout_bが出力される。この光信号Bout_bは、ダイクロイックミラーDM1に入射される。ダイクロイックミラーとは、特定の波長の光信号のみを反射し、それ以外の波長の光信号を透過する性質を持つミラーである。通常は、誘電体多層膜をガラス基板にコーティングすることで作成できる。ここで、ダイクロイックミラーDM1は、波長λbの光信号を反射し、それ以外の波長の光信号を透過する性質を持つようにされる。このダイクロイックミラーDM1で反射された光信号Bout_bは、集光レンズLfにより集光されて、光導波路20aに光信号Siとして入射され、他の光スイッチ4へと送信される。
また、他の光スイッチ4から光導波路20bを介して送信されてくる光信号Bin_bは光信号Sjとして光スイッチ4に入力される。この光信号Bin_bは、コリメータレンズLcにより平行光とされた後、ダイクロイックミラーDM2に入射される。このダイクロイックミラーDM2は、上述したダイクロイックミラーDM1と同じ特性を持っている。そのため、光信号Bin_bは、ダイクロイックミラーDM2で反射され、光受信装置211に入射される。これにより、制御部4bは、光信号Bin_bに含まれる情報を取得できる。
上述した光信号Bout_b,Bin_bも、フレームフォーマットの光信号とされる(図2参照)。これにより、制御部4bの光送信装置210および光受信装置211では、フレーム同期による光信号の送受信が可能となる。
また、光路切り替え部4aは、第1の切り替え状態にあるときは、図5に示すように、位置(1)にあるが、第2の切り替え状態となるときは、図7に示すように、位置(1)から位置(2)に移動する。
上述したように、光スイッチ4は、第1の切り替え状態では、光結合装置5からの光信号Stを、光分岐装置6に入力する光信号Srとして出力する。第2の切り替え状態では、光結合装置5からの光信号Stを、他の光スイッチ4に入力する光信号Siとして出力すると共に、この他の光スイッチ4からの光信号Sjを光分岐装置6に入力する光信号Srとして出力する。
光路切り替え部4aが位置(2)に移動した場合、光信号Bin2(波長λa)はミラーM3で反射され、ダイクロイックミラーDM1に入射される。ダイクロイックミラーDM1は、波長λaの光信号を透過する性質を持っている。そのため、この光信号Bin2は、ダイクロイックミラーDM1を透過し、集光レンズLfにより集光されて、光導波路20aに光信号Siとして入射され、他の光スイッチ4へと送信される。この場合、光スイッチ間通信用の光信号Bout_b(波長λb)と光信号Bin2(λa)とは波長が異なるので、お互いに影響を及ぼすことはない。
また、他の光スイッチ4から光導波路20bを介して送信されてくる光信号Bout2(波長λa)は光スイッチ4に光信号Sjとして入力される。この光信号Bout2は、コリメータレンズLcにより平行光とされた後、ダイクロイックミラーDM2に入射される。このダイクロイックミラーDM2は、波長λaの光信号を透過する性質を持っている。そのため、この光信号Bout2は、ダイクロイックミラーDM2を透過し、さらにミラーM4で反射される。そして、ミラーM4で反射された光信号Bout2は、ビームスプリッタBS2を透過して、集光レンズLfで集光され、光導波路10aに光信号Srとして入射される。この場合も、光スイッチ間通信用の光信号Bin_b(波長λb)と光信号Bout2(λa)とは波長が異なるので、お互いに影響を及ぼすことはない。
上述したように、光スイッチ4は、第1の切り替え状態(光路切り替え部4aは位置(1)にある)で、光結合装置5からの光信号Bin(St)を光分岐装置6に入力する光信号Srとして出力する光信号経路に、他の光スイッチ4までの光信号の遅延時間に相当する遅延手段としての遅延線DLを有している。これにより、第1の切り替え状態から第2の切り替え状態となって、第1の光バス(光バス120Aまたは光バス120B)に接続されているノードから第2の光バス(光バス120Bまたは光バス120A)に接続されているノードにデータの転送を行う場合に、第2の光バス内で同期していた各ノードの同期がずれることを防止できる。
また、上述した制御部4bの光送信装置200は、第1の切り替え状態と第2の切り替え状態との間の切り替え動作時に、複数のノード(ユニットU1a,U2a,U3a,U7aおよびユニットU1b,U2b,U3b,U7b)の同期用の光信号を出力する。これにより、第1の切り替え状態と第2の切り替え状態との間の切り替え動作時にあっても、複数のノードは、光バス(光バス120Aまたは光バス120B)内での同期を確保できる。
また、バス調停器BAは、図示せずも、第2の切り替え状態(図7参照)にあるとき、光結合装置5(図1参照)から入力される光信号Binに含まれる情報を蓄える、記憶手段としてのバッファを有している。そして、第2の切り替え状態から第1の切り替え状態となった後に、制御部4bの制御のもと、光信号Bout1として、光送信装置200は、当該バッファに蓄えられた情報を含む光信号を出力する。
第2の切り替え状態にある場合、光結合装置5からの光信号Bin2は、光スイッチ4から、他の光スイッチ4に入力する光信号Siとして出力される。つまりこの場合、この光結合装置5からの光信号は光分岐装置6を介して複数のノードの光受信装置111に供給されない。そのため、CPU1〜3は光バス120A,120B上を流れるメモリアクセスをスヌーピング(監視)できず、キャッシュ11〜13に対して、キャッシュコヒーレンシを保つための適切な処置をとることができなくなる。
上述したように、第2の切り替え状態にあるとき、光結合装置5からの光信号Bin1に含まれる情報を蓄えておき、その後に、その情報を含む光信号Bout1を光分岐装置6に入力する光信号Srとして出力することで、CPU1〜3は、第2の切り替え状態にあるときに光バス120A,120B上を流れるメモリアクセスをスヌーピング(監視)でき、キャッシュに対して、キャッシュコヒーレンシを保つための適切な処置をとることができる。
次に、図8を参照して、光バス内でのデータ通信の動作例を説明する。ここでは、光バス120Aに接続されているプロセッサユニットU1aが、同じく光バス120Aに接続されているメモリユニットU7aの所定アドレスのデータを要求する場合の動作を説明する。
光スイッチ4のバス調停器BAが、プロセッサユニットU1a宛てにポーリングを行う(フェーズI)。この場合、制御部4bの光送信装置200は、ポーリング用のフレーム(プロセッサユニットU1a宛て)を、光信号Bout1として出力する。図において、実線で示した矢印がそのノード宛てであることを示し、破線の矢印は、他のノードへも同一のフレームが届けられることを示している。
また、フレーム転送時間は、フレームの出力開始から出力終了までの時間を表している。光伝送時間は、そのフレームが各ノードに到達するまでの時間を表している。ここでは、上述したように、ユニットU1a,U2a,U3aおよびU7aの光送信装置110から出力される複数の光信号St1,St2,St3およびSt7をそれぞれ光結合装置5に入力するための光導波路9を全て同一の長さとし、光分岐装置6で得られた光信号Sr1,Sr2,Sr3およびSr7をそれぞれユニットU1a,U2a,U3aおよびU7aの光受信装置111に入力するための光導波路10を全て同一の長さとしているので、各ユニットへの光伝送時間は同一である。
プロセッサユニットU1aは、ポーリングを受けた後、メモリユニットU7aにデータの要求をしたいので、そのデータが存在するメモリアドレスを持つフレーム(メモリユニットU7a宛て)を、光送信装置110より送信する(フェーズII)。そして、そのフレームをメモリユニットU7aが受信する。
次に、光スイッチ4のバス調停器BAは、プロセッサユニットU2a宛てにポーリングを行う(フェーズIII)。この場合、制御部4bの光送信装置200は、ポーリング用のフレーム(プロセッサユニットU2a宛て)を、光信号Bout1として出力する。ここでは、プロセッサユニットU2aはバスリクエストがないとする。プロセッサユニットU2aは、ポーリングを受けた後、ペイロードにバスリクエスト無しを示す情報を含むフレーム(光スイッチ4宛て)を、光送信装置110より送信する(フェーズIV)。
次に、光スイッチ4のバス調停器BAは、メモリユニットU7a宛てにポーリングを行う(フェーズV)。この場合、制御部4bの光送信装置200は、ポーリング用のフレーム(プロセッサユニットU7a宛て)を、光信号Bout1として出力する。
メモリユニットU7aは、プロセッサユニットU1aに送信すべきデータがあるので、ポーリングを受けた後、ペイロードにそのデータを含むフレーム(プロセッサユニットU1a宛て)を、光送信装置110より送信する(フェーズVI)。そして、そのフレームをプロセッサユニットU1aが受信する。これにより、プロセッサユニットU1aは、メモリユニットU7aの所定アドレスのデータを取得できたことになる。
なお、上述の動作では、光スイッチ4の切り替え状態は、光路切り換え部4aが位置(1)にある第1の切り替え状態のままとされる。また、光スイッチ4のバス調停器BAによるポーリングの順番は、プロセッサユニットU1aからはじまり、プロセッサユニットU2aへと順に、いわゆる「ラウンドロビン」で行われる。一通り、ポーリングした後は、再びプロセッサユニットU1aのポーリングに戻る。
次に、図9、図10を参照して、光バス間でのデータ通信の動作例を説明する。ここでは、光バス120Aに接続されているプロセッサユニットU1aが、光バス120Bに接続されているメモリユニットU7bの所定アドレスのデータを要求する場合の動作を説明する。
光バス120A内では、光スイッチ4のバス調停器BAが、プロセッサユニットU1a宛てにポーリングを行う(図9のフェーズI)。この場合、制御部4bの光送信装置200は、ポーリング用のフレーム(プロセッサユニットU1a宛て)を、光信号Bout1として出力する。図において、実線で示した矢印がそのノード宛てであることを示し、破線の矢印は、他のノードへも同一のフレームが届けられることを示している。
プロセッサユニットU1aは、ポーリングを受けた後、光バス120Bに接続されているメモリユニットU7bにデータの要求をしたいので、そのデータが存在するメモリアドレスを持つフレーム(光スイッチ4宛て)を、光送信装置110より送信する(図9のフェーズII)。
次に、光バス120A内では、光スイッチ4のバス調停器BAは、プロセッサユニットU2a宛てにポーリングを行う(図9のフェーズIII)。この場合、制御部4bの光送信装置200は、ポーリング用のフレーム(プロセッサユニットU2a宛て)を、光信号Bout1として出力する。また、このフェーズIIIでは、光バス120A側の光スイッチ4は、上述のプロセッサユニットU1aのデータ要求に係るバスリクエストのフレームを、光送信装置210より送信する。
ここでは、プロセッサユニットU2aはバスリクエストがないとする。プロセッサユニットU2aは、ポーリングを受けた後、ペイロードにバスリクエスト無しを示す情報を含むフレーム(光スイッチ4宛て)を、光送信装置110より送信する(図9のフェーズIV)。また、このフェーズIVでは、光バス120B側の光スイッチ4は、光バス120A内において、バス調停器BA以外のノードの送信を停止することを要求するフレームを、光送信装置210より送信する。なお、光バス120B内においても、ポーリングされたユニットはバスリクエストがないとする。
次に、光バス120A内では、光スイッチ4のバス調停器BAの制御のもと、その制御部4bの光送信装置200は、全ノード宛てに、送信停止要求のフレームを光信号Bout1として出力する(図9のフェーズV)。また、このフェーズVでは、光バス120B内では、光スイッチ4のバス調停器BAの制御のもと、その制御部4bの光送信装置200は、プロセッサユニットU1aのデータ要求のフレーム(メモリユニットU7b宛て)を、光信号Bout1として出力する。さらに、このフェーズVでは、光バス120Bの光スイッチ4は、第1の切り替え状態から第2の切り替え状態への光スイッチ4の切り替え要求のフレームを、光送信装置210より送信する。
次に、光バス120A内および光バス120B内では、光スイッチ4が、それぞれ第1の切り替え状態(図5参照)から第2の切り替え状態(図7参照)に切り替えられる(図9のフェーズVI)。この場合、光路切り替え部4aは、位置(1)から位置(2)に移動する。このフェーズVIでは、光バス120Aの光スイッチ4と光バス120Bの光スイッチ120Bとの間で通信が行われる。一方、このフェーズVIでは、バス調停器BA以外のノードからの送信は行われない。さらに、このフェーズVIでは、光バス120A内および光バス120B内では、光スイッチ4のバス調停器BAの制御のもと、その制御部4bの光送信装置200は、各ノードのフレーム同期を確保するためのフレームを、光信号Bout1として出力する。
次に、光バス120B内では、メモリユニットU7bは、プロセッサユニットU1aの要求に係るデータをペイロードに含むフレーム(プロセッサユニットU1a宛て)を、光送信装置110より送信する(図9のフェーズVII)。このフレームは、光バス120B側の光スイッチ4、光導波路20b、光バス120A側の光スイッチ4を介して、プロセッサユニットU1aが受信する。これにより、プロセッサユニットU1aは、メモリユニットU7bの所定アドレスのデータを取得できたことになる。なお、このフェーズVIIでは、光バス120B内では、光スイッチ4のバス調停器BAの制御のもと、その制御部4bの光送信装置200は、各ノードのフレーム同期を確保するためのフレームを、光信号Bout1として出力する。
また、このフェーズVIIでは、複数の光バス間でもキャッシュコヒーレンシを保つ工夫がされる。すなわち、光バス120B内の光スイッチ4のバス調停器BAは、メモリユニットU7bからの光信号St3に含まれる情報を、内蔵のバッファに蓄える。上述したように、光結合装置5から光スイッチ4に入力される光信号Bin1は、全て制御部4bによりモニタされている。そのため、異なる光バスへの送信時には、送信されるデータやアドレス等を送信元の光バス内のバス調停器BAのバッファに蓄えることが可能である。
次に、上述のフェーズVIIの状態、つまりバス間通信から、通常のバス内通信への移行について説明する。図10のフェーズ1は、図9のフェーズVIIと同じ状態を示している。光バス120Bに接続されているメモリユニットU7bからの送信が完了すると、光バス120A側の光スイッチ4および光バス120B側の光スイッチ4は、メモリユニットU7bからの送信が完了したことを認識する。この認識は、それぞれの光スイッチ4内の制御部4bにより行われる。
これに伴って、それぞれの光スイッチ4は、第2の切り替え状態(図7参照)から第1の切り替え状態(図5参照)に切り替えられる(図10のフェーズII)。この場合、光路切り替え部4aは、位置(2)から位置(1)に戻る。このフェーズIIでは、光バス120A内および光バス120B内において、光スイッチ4のバス調停器BAの制御のもと、その制御部4bの光送信装置200は、各ノードのフレーム同期を確保するためのフレームを、光信号Bout1として出力する。
この場合、光バス120B内では、光スイッチ4のバス調停器BAのバッファに蓄えられた情報を、そのフレームに含むようにされる。これにより、光バス120Bに接続されているプロセッサユニットU1b,U2b,U3bのCPU1〜3は、第2の切り替え状態にあるときに光バス120B上を流れるメモリアクセスをスヌーピング(監視)でき、キャッシュに対して、キャッシュコヒーレンシを保つための適切な処置をとることができる。
次に、光バス120A内および光バス120B内の光スイッチ4の切り替えが動作が完了すると、光バス120A内および光バス120B内の動作は、光スイッチ4の切り替わる前の動作に戻り、再びポーリングを始める(図10のフェーズIII)。ポーリングをすることで、それぞれのノードは送信停止状態が解除されることになる。
なお、上述実施の形態においては、光スイッチ4が第2の切り替え状態となるとき、図7に示すように、光結合装置5からの光信号Bin2は、ミラーM3で全て反射される。そのため、この光信号Bin2が光分岐装置6に入力されることはなく、プロセッサユニットを構成するCPU1〜3は、光バス上を流れるメモリアクセスをスヌーピング(監視)できない。この場合、ミラーM3,M4の代わりに、ビームスプリッタを用いて、光信号Bin2の一部が光分岐装置6に入力されるように構成し、プロセッサユニットを構成するCPU1〜3が、光バス上を流れるメモリアクセスをスヌーピング(監視)できるようにしてもよい。
これによれば、光スイッチ4が第2の切り替え状態となるとき、バス調停器BAのバッファに、光結合装置5からの光信号Bin1に含まれる情報を蓄えてき、その後この情報を含むフレームを出力し、プロセッサユニットを構成するCPU1〜3が光バス上を流れるメモリアクセスをスヌーピング(監視)できるようにするという操作を不要とできる。
また、上述実施の形態は、2つのマルチプロセッサ部100A,100Bからなっているマルチプロセッサシステム100である。さらに、3つ以上のマルチプロセッサ部からなるマルチプロセッサシステムも同様に構成することができる。その場合、各マルチプロセッサ部を構成する光バス内の光スイッチを、光導波路で相互に接続することで構成できる。
また、上述実施の形態においては、この発明を共有メモリ型のマルチプロセッサシステムに適用したものであるが、この発明は分散メモリ型のマルチプロセッサシステムにも同様に適用できる。
また、上述実施の形態においては、この発明をマルチプロセッサシステムに適用したものであるが、この発明は、LAN(ローカル・エリア・ネットワーク)、クラスター、SAN(ストレージ・エリア・ネットワーク)等における各種情報のやり取りを行うための通信系統などにも同様に適用できることは勿論である。
1〜3・・・CPU、4・・・光スイッチ、4a・・・光路切り替え部、4b・・・制御部、5・・・光結合装置、6・・・光分岐装置、7・・・メモリコントローラ、9・・・第1の光導波路、9a・・・第2の光導波路、10・・・第4の光導波路、10a・・・第3の光導波路、11,21,31・・・キャッシュ、20a,20b・・・光導波路、71,72・・・メモリ、100・・・マルチプロセッサシステム、100A,100B・・・マルチプロセッサ部、110・・・光送信装置、111・・・光受信装置、120A,120B・・・光バス、200,210・・・光送信装置、201,211・・・光受信装置、BA・・・バス調停器、BS1,BS2・・・ビームスプリッタ、DL・・・遅延線、DM1,DM2・・・ダイクロイックミラー、Lc・・・コリメータレンズ、Lf・・・集光レンズ、M1〜M4・・・ミラー、U1a〜U3a,U1b〜U3b・・・プロセッサユニット、U7a,U7b・・・メモリユニット