(57)【要約】  複数のルータと複数のノードとがチップ上に配置され、複数のノードのそれぞれが、チップを複数の領域に分割した複数のパーティションのいずれかに属し、複数のノードのそれぞれが複数のルータのいずれかと、また、複数のルータのそれぞれが当該ルータに隣接するルータと通信媒体を介して接続され、複数のルータが、複数のノード間における通信で送受信されるデータを含むパケットを中継するオンチップ並列処理システムであって、通信媒体には、第１及び第２の通信チャネルが設定され、複数のルータのそれぞれ及び複数のノードのそれぞれは、同一のパーティションに属するノード間における通信では、第１の通信チャネルでパケットを送受信し、相互に異なるパーティションに属するノード間の通信では、第２の通信チャネルでパケットを送受信する。
2011070913.tif 000002
【特許請求の範囲】
【請求項１】
複数のルータと複数のノードとがチップ上に配置され、前記複数のノードのそれぞれが、前記チップを複数の領域に分割した複数のパーティションのいずれかに属し、前記複数のノードのそれぞれが前記複数のルータのいずれかと、また、前記複数のルータのそれぞれが当該ルータに隣接するルータと通信媒体を介して接続され、前記複数のルータが、前記複数のノード間における通信で送受信されるデータを含むパケットを中継するオンチップ並列処理システムであって、
前記通信媒体には、第１及び第２の通信チャネルが設定され、
前記複数のルータのそれぞれ及び前記複数のノードのそれぞれは、同一の前記パーティションに属するノード間における通信では、前記第１の通信チャネルでパケットを送受信し、相互に異なる前記パーティションに属するノード間の通信では、前記第２の通信チャネルでパケットを送受信するオンチップ並列処理システム。
【請求項２】
請求項１に記載のオンチップ並列処理システムにおいて、
前記複数のノードのそれぞれは、
データを生成し、該生成したデータを出力するブロック部と、
前記ブロック部から出力されたデータを受け付け、該受け付けたデータの宛先が、当該ノードと同一の前記パーティションに属するパーティション内ノードであるかどうかを判定する第１の判定を行い、該第１の判定の結果、当該データの宛先が前記パーティション内ノードである場合、当該データを含むパケットを、当該ノードと接続された前記ルータへ前記第１の通信チャネルで送信し、前記第１の判定の結果、当該データの宛先が前記パーティション内ノードでない場合、当該データの宛先が、当該ノードからのデータの送信が許可された送信許可ノードであるかどうかを判定する第２の判定を行い、該第２の判定の結果、当該データの宛先が前記送信許可ノードである場合、当該データを含むパケットを、当該ノードと接続された前記ルータへ前記第２の通信チャネルで送信するネットワークインターフェース部と、を有し、
前記複数のルータのそれぞれは、
当該ルータと接続された前記ルータまたは前記ノードから送信されたパケットを受信するパケット入力部と、
前記パケット入力部にて受信されたパケットのうち、前記第１の通信チャネルで送信されてきたパケットを記憶する第１のバッファと、
前記パケット入力部にて受信されたパケットのうち、前記第２の通信チャネルで送信されてきたパケットを記憶する第２のバッファと、
前記第１のバッファに記憶されたパケットを、該パケットの宛先に応じ、当該ルータと接続された前記ルータまたは前記ノードへ前記第１の通信チャネルで送信し、前記第２のバッファに記憶されたパケットを、該パケットの宛先に応じ、当該ルータに接続された前記ルータまたは前記ノードへ前記第２の通信チャネルで送信するパケット出力スイッチと、を有するオンチップ並列処理システム。
【請求項３】
請求項２に記載のオンチップ並列処理システムにおいて、
前記ネットワークインターフェース部は、前記第２の判定の結果、当該データの宛先が前記送信許可ノードでない場合、当該データを破棄するオンチップ並列処理システム。
【請求項４】
請求項３に記載のオンチップ並列処理システムにおいて、
前記ネットワークインターフェース部は、当該データを破棄した場合、前記複数のノードのうち予め決められたノードへその旨を通知するオンチップ並列処理システム。
【請求項５】
請求項２乃至４のいずれか１項に記載のオンチップ並列処理システムにおいて、
前記ネットワークインターフェース部は、前記複数のノードのうち予め決められたノードから送信され、前記第１及び第２の判定を行うための情報を含むパーティション定義情報を受信し、該受信したパーティション定義情報に基づいて前記第１及び第２の判定を行うオンチップ並列処理システム。
【請求項６】
請求項１乃至５のいずれか１項に記載のオンチップ並列処理システムにおいて、
前記第１及び第２の通信チャネルは、論理的な仮想チャネルであるオンチップ並列処理システム。
【請求項７】
複数のルータと複数のノードとがチップ上に配置され、前記複数のノードのそれぞれが、前記チップを複数の領域に分割した複数のパーティションのいずれかに属し、前記複数のノードのそれぞれが前記複数のルータのいずれかと、また、前記複数のルータのそれぞれが当該ルータに隣接するルータと通信媒体を介して接続され、前記複数のルータが、前記複数のノード間における通信で送受信されるデータを含むパケットを中継するオンチップ並列処理システムにおける通信方法であって、
前記複数のルータのそれぞれ及び前記複数のノードのそれぞれが、同一の前記パーティションに属するノード間における通信では、前記通信媒体に設定された第１及び第２の通信チャネルのうち、前記第１の通信チャネルでパケットを送受信し、相互に異なる前記パーティションに属するノード間の通信では、前記第２の通信チャネルでパケットを送受信する送受信処理を有する通信方法。
【請求項８】
請求項７に記載の通信方法において、
前記送受信処理は、
前記複数のノードのそれぞれが、データを生成する処理と、
前記複数のノードのそれぞれが、前記生成されたデータの宛先が、当該ノードと同一の前記パーティションに属するパーティション内ノードであるかどうかを判定する第１の判定処理と、
前記複数のノードのそれぞれが、前記第１の判定処理の結果、当該データの宛先が前記パーティション内ノードである場合、当該データを含むパケットを、当該ノードと接続された前記ルータへ前記第１の通信チャネルで送信する処理と、
前記複数のノードのそれぞれが、前記第１の判定処理の結果、当該データの宛先が前記パーティション内ノードでない場合、当該データの宛先が、当該ノードからのデータの送信が許可された送信許可ノードであるかどうかを判定する第２の判定処理と、
前記複数のノードのそれぞれが、前記第２の判定処理の結果、当該データの宛先が前記送信許可ノードである場合、当該データを含むパケットを、当該ノードと接続された前記ルータへ前記第２の通信チャネルで送信する処理と、
前記複数のルータのそれぞれが、当該ルータと接続された前記ルータまたは前記ノードから送信されたパケットを受信する処理と、
前記複数のルータのそれぞれが、前記受信されたパケットのうち前記第１の通信チャネルで送信されてきたパケットを、当該ルータに備えられた第１及び第２のバッファのうち前記第１のバッファにて記憶する処理と、
前記複数のルータのそれぞれが、前記受信されたパケットのうち前記第２の通信チャネルで送信されてきたパケットを前記第２のバッファにて記憶する処理と、
前記複数のルータのそれぞれが、前記第１のバッファに記憶されたパケットを、該パケットの宛先に応じ、当該ルータと接続された前記ルータまたは前記ノードへ前記第１の通信チャネルで送信する処理と、
前記複数のルータのそれぞれが、前記第２のバッファに記憶されたパケットを、該パケットの宛先に応じ、当該ルータに接続された前記ルータまたは前記ノードへ前記第２の通信チャネルで送信する処理と、を含む通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアプリケーションを並列処理するオンチップ並列処理システム及び通信方法に関する。
【背景技術】
【０００２】
電子機器の処理能力の更なる向上への要求と、半導体製造プロセスの微細化に対する努力とにより、システムオンチップ上で動作するオンチップ並列処理システムの製品化が実現するのもそう遠くはない。オンチップ並列処理システムとは、数十個またはそれ以上の個数のプロセッサが１つのチップに配置されたものである。【０００３】
これが実現されれば、電子機器の処理能力を向上させることができる。さらに、プロセッサの動作周波数を下げることによって動作電圧を下げることができれば、消費電力の低減にもつながる。なお、以降、システムオンチップのことをＳｏＣと表記する。【０００４】
現在、ＳｏＣではチップ上の接続方式としてバス方式が用いられている。ＳｏＣにおいてプロセッサは、メモリや周辺デバイスインターフェース等とバスによって接続されている。【０００５】
ここで、オンチップ並列処理システムにおけるプロセッサの個数が増加すれば、増加した個数の分だけ、チップ上を流れるデータ量は増加することが予想される。【０００６】
バス方式では、通信の送信側と受信側との間の通信経路が確立された後に、データが送受信される。そのため、処理時間のオーバーヘッドが大きい。つまり、バス方式は、チップ上に大量のデータが流れるオンチップ並列処理システムにおける接続方式としては適していない。【０００７】
このバス方式に対して、次世代向けの接続方式として考えられているのがネットワーク・オン・チップ（以降、ＮｏＣと表記する）である。ＮｏＣのアーキテクチャでは、通信の送信側は、通信の受信側との間の通信経路の確立を待たずに、連続してデータを送信することができる。そのため、ＮｏＣは、チップ上に大量のデータが流れるオンチップ並列処理システムにおける接続方式として適している。【０００８】
ＮｏＣのアーキテクチャにおいてチップは、複数のノードと複数のルータとそれらを接続するリンクとから構成される。つまり、ＮｏＣにおいては、ネットワークを介して通信が行われ、このネットワークはルータ及びリンクを介してノードで終端する。【０００９】
また、複数のノードのそれぞれは、プロセッサ、メモリ、周辺デバイスインターフェース等を１つ以上備えている。また、複数のノードのそれぞれは、ネットワーク内のルータとの間で通信を行うためのネットワークインターフェースを備えている。【００１０】
ネットワークインターフェースは、複数のノードのそれぞれから送信されるデータをパケット化してネットワークへ送信する。また、他のノードから送信されたパケットを受信し、受信したパケットに含まれるデータを抽出してノード内のブロック（プロセッサ、メモリ、周辺デバイスインターフェース等）へ出力する。【００１１】
ＳｏＣでは既に、１つのチップ上に複数のアプリケーションが搭載され、それら複数のアプリケーションの並列処理が実現されている。【００１２】
複数のアプリケーションの並列処理を実現するためには、複数のアプリケーション間の干渉を抑制する必要がある。具体的には、１つのチップ上に搭載される複数のアプリケーションの組合せによらずに、複数のアプリケーションそれぞれが所定の性能を安定的に満足しながら動作することが必要である。これは、チップを用いた製品の品質を維持するために必要な特性である。例えば、アプリケーションの不具合や悪意を持った者の行為により、あるアプリケーションが不正な動作を行った場合でも、その影響が他のアプリケーションに極力及ばないことが望ましい。【００１３】
複数のアプリケーション間の干渉を抑えるための方法としては、チップを複数の領域に分割した複数のパーティションを設けることが有効である。【００１４】
ＮｏＣによるオンチップ並列処理システムにおいては、それぞれのパーティションには１つ以上のノードとそれらを接続するネットワークとが含まれる。このとき、１つのアプリケーションが複数のパーティションに跨って実行されることも可能であり、また、複数のアプリケーションが１つのパーティション内で実行されることも可能である。【００１５】
さらに、パーティションに求められる要件として、パーティションの境界を動的に変更可能であることが挙げられる。これは、ＳｏＣを用いたデバイスの設計に自由度をもたらすとともに、コストダウン効果をもたらす。【００１６】
パーティションの境界を動的に変更可能であるということは、チップ上におけるプロセッサやメモリ等の物理的な配置とは関係なく、パーティションの境界を定めることができるということである。【００１７】
これにより、アプリケーションの設計中に、仕様変更や必要なハードウェアリソースの配分に変更が生じても、それらに対応することが可能となる。また、これを応用すれば同一のチップを複数の異なる製品に流用することも可能となる。【００１８】
このようなパーティションを実現できるオンチップ並列処理システムが例えば、特許文献１に開示されている。【００１９】
特許文献１に開示されているオンチップ並列処理システムは、複数のノードがＮｏＣによってオンチップで接続されたシステムである。ネットワークは、複数のパーティションに分割され、１つ以上のアプリケーションが１つ以上のパーティションで実行される。【００２０】
特許文献１には、パーティションの画定にあたっては、独自の物理メモリ・アドレス空間への排他的アクセスがパーティション内のルータ及びＩＰブロックに割り当てられるだけで十分であると記載されている。【００２１】
また、特許文献１には、以下のことが記載されている。【００２２】
パーティションの境界に沿っている各ルータは、そのルータで受信された通信パケットの発アドレスと宛先アドレスとを調べる。そして、そのパーティションの外側で生じたそのパーティション内のネットワーク位置へアドレス指定されているパケットを落とす。また、そのパーティション内で生じたそのパーティションの外側のネットワーク位置へアドレス指定されているパケットを落とす。【００２３】
また、特許文献１に開示されている技術では、仮想チャネルが設定されている。この仮想チャネルは、ネットワークインターフェースコントローラとルータとによって実現される。ネットワークインターフェースコントローラにより、ネットワークパケットフォーマット中の１フィールドに通信タイプが記録され、その後、ルータへ送信される。【００２４】
また、特許文献１に開示されている技術では、ルータは、ルーティングロジックと仮想チャネル制御ロジックと仮想チャネル・バッファとを含んでいる。仮想チャネル制御ロジックでは、各ルータが受信したパケットに割り当てられた通信タイプを調べる。そして、そのルータに隣接するルータへ受信したパケットを送信するために、受信したパケットは、その通信タイプのパケットを送信するためのバッファである発信仮想チャネル・バッファに置かれる。【００２５】
特許文献１において、通信タイプとして例示されているのは通信命令である。通信命令は具体的には、ＩＰブロック間ネットワーク・アドレス・ベース・メッセージ、リクエスト・メッセージ、対リクエスト応答メッセージ、キャッシュに向けられた無効化メッセージ、メモリ・ロード・メッセージ、メモリ・ストア・メッセージ、対メモリ・ロード応答メッセージ等とされている。【００２６】
ここで、ルータが短時間に多数のパケットを受信した場合、ルータ内のバッファが一杯になり、それ以上のパケットをバッファに記憶させておくことができなくなる可能性がある。この場合、ルータ間におけるデータの転送が滞ってしまう。【００２７】
このルータ間におけるデータの転送が滞った状態において、ルータに次のパケットが到着した場合、その滞ったパケットを破棄する処置か、パケットを破棄せずにルータ間におけるデータの転送のみを停止する処置のいずれかがとられるのが一般的である。【００２８】
ＮｏＣにおいては、上述した２つの処置のうち前者の処置をとってしまうと、破棄されたパケットの再送にかかる処理のオーバーヘッドの増加が問題となりやすい。オーバーヘッドの増加とは例えば、チップサイズの増加や処理時間の増加である。従って、ＮｏＣにおいては、後者の処置がとられやすい。【００２９】
特許文献１に開示されている技術においても、後者の処置がとられている。このとき、他の通信におけるデータの転送が滞らないようにするため、上記の仮想チャネルが用いられると特許文献１には記載されている。
【先行技術文献】
【特許文献】
【００３０】
【特許文献１】特開２００９−１２９４４７号公報
【発明の概要】
【発明が解決しようとする課題】
【００３１】
上述したように、複数のアプリケーション間の干渉を抑制するためには、チップを複数のパーティションに分割することが有効である。但し、チップをパーティションに分割した場合、そのことに起因して、複数のアプリケーションそれぞれが所定の性能を安定的に満足しながら動作できなくなってしまうことを回避しなければならない。【００３２】
そのためには、複数のアプリケーションそれぞれの設計と、複数のアプリケーション間の設計とにおいて独立性を保つ必要がある。【００３３】
ここで、パーティションの境界は、複数のアプリケーション間の境界の基準となるものである。従って、上記の独立性を保つためには、複数のパーティション間の干渉が抑制されている必要がある。【００３４】
すなわち、同一のパーティションに属するノード間の通信と、相互に異なるパーティションに属するノード間の通信とにおいて、一方の通信がもう一方の通信に影響を及ぼしにくいことが望ましい。【００３５】
上述した特許文献１に開示されている技術では、同一のパーティションに属するノード間の通信か、相互に異なるパーティションに属するノード間の通信かにかかわらず、ルータ内において同一のリソースが使用される。そのため、ルータ内において、それらの通信間でのリソースの競合が生じやすい。【００３６】
これを回避する手段として特許文献１には、仮想チャネルを導入する方法が記載されてはいる。しかし、同一のパーティションに属するノード間の通信と、相互に異なるパーティションに属するノード間の通信とがルータ内において区別されていない以上、依然として相互に影響を及ぼしやすいことに変わりはない。【００３７】
一例として、２つの仮想チャネルをサポートするＮｏＣを考えてみる。このとき、相互に異なるパーティションに属するノード間の通信のデータによってバッファが一杯になり、一方の仮想チャネルでのパケットの転送が一時的に不能となったとする。この場合でも、同じパーティションに属するノード間の通信は、もう一方の仮想チャネルで継続することが可能ではある。しかし、そのもう一方の仮想チャネルも、相互に異なるパーティションに属するノード間の通信のデータによって占有されていないという保証はない。【００３８】
つまり、同一のパーティションに属するノード間の通信と、相互に異なるパーティションに属するノード間の通信とにおいて、一方の通信がもう一方の通信に影響を及ぼしやすい。これにより、一方の通信の通信状況により、もう一方の通信の通信速度が低下してしまう可能性がある。【００３９】
また、上述した特許文献１に開示されている技術においては、不正なアドレスを指定されたパケットがあるノードから送信された場合、そのパケットは、幾つかのルータによって中継され、パーティションの境界のルータにたどり着くまで破棄されない。【００４０】
そのため、結果的に不要であるパケットのために、ルータの転送機能が占有されてしまう。特に、不正なアドレスを指定されたパケットが連続的に、あるノードから送信され続けた場合、そのパケットが破棄されるまでの経路上にあるルータ内のハードウェアリソースが連続して使用され続ける。つまり、そのハードウェアリソースを他の通信では使用できないこととなり、通信速度が低下してしまう可能性がある。【００４１】
また、１つのパーティション内で実行されるアプリケーションにおいて不正な通信が発生した場合、その不正な通信により、他のパーティション内で実行されるアプリケーションのデータが漏洩したり、改ざんされたりする可能性がある。なお、不正な通信とは例えば、アプリケーションの不具合によって発生するものや、悪意を持った者が故意に発生させるものが考えられる。【００４２】
このように、特許文献１に開示されている技術を用いた場合、通信速度の低下や、データの漏洩や改ざんの可能性がある。従って、オンチップ並列処理システムにおいて、複数のアプリケーションそれぞれが所定の性能を安定的に満足しながら動作することができないという問題点がある。【００４３】
本発明は、複数のアプリケーションそれぞれが所定の性能を安定的に満足しながら動作することを可能にするオンチップ並列処理システム及び通信方法を提供することを目的とする。
【課題を解決するための手段】
【００４４】
上記目的を達成するために本発明のオンチップ並列処理システムは、
複数のルータと複数のノードとがチップ上に配置され、前記複数のノードのそれぞれが、前記チップを複数の領域に分割した複数のパーティションのいずれかに属し、前記複数のノードのそれぞれが前記複数のルータのいずれかと、また、前記複数のルータのそれぞれが当該ルータに隣接するルータと通信媒体を介して接続され、前記複数のルータが、前記複数のノード間における通信で送受信されるデータを含むパケットを中継するオンチップ並列処理システムであって、
前記通信媒体には、第１及び第２の通信チャネルが設定され、
前記複数のルータのそれぞれ及び前記複数のノードのそれぞれは、同一の前記パーティションに属するノード間における通信では、前記第１の通信チャネルでパケットを送受信し、相互に異なる前記パーティションに属するノード間の通信では、前記第２の通信チャネルでパケットを送受信する。【００４５】
上記目的を達成するために本発明の通信方法は、
複数のルータと複数のノードとがチップ上に配置され、前記複数のノードのそれぞれが、前記チップを複数の領域に分割した複数のパーティションのいずれかに属し、前記複数のノードのそれぞれが前記複数のルータのいずれかと、また、前記複数のルータのそれぞれが当該ルータに隣接するルータと通信媒体を介して接続され、前記複数のルータが、前記複数のノード間における通信で送受信されるデータを含むパケットを中継するオンチップ並列処理システムにおける通信方法であって、
前記複数のルータのそれぞれ及び前記複数のノードのそれぞれが、同一の前記パーティションに属するノード間における通信では、前記通信媒体に設定された第１及び第２の通信チャネルのうち、前記第１の通信チャネルでパケットを送受信し、相互に異なる前記パーティションに属するノード間の通信では、前記第２の通信チャネルでパケットを送受信する送受信処理を有する。
【発明の効果】
【００４６】
本発明によれば、同一のパーティションに属するノード間における通信では、第１の通信チャネルでパケットが送受信され、相互に異なるパーティションに属するノード間における通信では、第２の通信チャネルでパケットが送受信される。【００４７】
これにより、通信速度の低下や、データの漏洩及び改ざんを抑制することができる。従って、オンチップ並列処理システムにおいて、複数のアプリケーションそれぞれが所定の性能を安定的に満足しながら動作することが可能となる。
【図面の簡単な説明】
【００４８】
【図１】本発明のオンチップ並列処理システムの実施の一形態の構成を示すブロック図である。
【図２】図１に示したルータの構成の一例を示すブロック図である。
【図３】図１に示したノードの構成の一例を示すブロック図である。
【図４】図３に示したネットワークインターフェース部の構成の一例を示すブロック図である。
【図５】図４に示したコンフィグレーションレジスタがパーティション定義情報を記憶するときの動作を説明するためのフローチャートである。
【図６】図１〜図４に示したオンチップ並列処理システムにおいて、ノードがデータを含むパケットを送信するときの動作を説明するためのフローチャートである。
【図７】図１〜図４に示したオンチップ並列処理システムにおいて、ノードがパケットを受信したときの動作を説明するためのフローチャートである。
【図８】図１〜図４に示したオンチップ並列処理システムにおいて、ルータがデータを含むパケットを受信したときの動作を説明するためのフローチャートである。
【発明を実施するための形態】
【００４９】
以下に、本発明の実施の形態について図面を参照して説明する。
【００５０】
図１は、本発明のオンチップ並列処理システムの実施の一形態の構成を示すブロック図である。
【００５１】
本実施形態のオンチップ並列処理システム１０１は図１に示すように、複数のルータ１０２と、複数のノード１０３とを備えている。そして、複数のルータ１０２と複数のノード１０３とは１つのチップ上に配置されている。
【００５２】
また、図１に示すように複数のノード１０３のそれぞれは、複数のルータ１０２のいずれかと通信媒体であるリンク１０４によって接続されている。また、複数のルータ１０２のそれぞれは、そのルータ１０２に隣接するルータ１０２とリンク１０４によって接続されている。そして、複数のルータ１０２のそれぞれは、複数のノード１０３間における通信で送受信されるデータを含むパケットを中継する。
【００５３】
以降、複数のノード１０３のそれぞれが接続されているルータ１０２のことを接続ルータといい、複数のルータ１０２のそれぞれに接続されているノード１０３のことを接続ノードという。また、複数のルータ１０２のそれぞれに隣接するルータ１０２のことを隣接ルータという。
【００５４】
また、本実施形態のオンチップ並列処理システム１０１においては図１に示すように、チップを複数の領域に分割した複数のパーティション１０が設定されている。そして、複数のノード１０３のそれぞれは、複数のパーティション１０のいずれかに属している。
【００５５】
リンク１０４には、第１の通信チャネルであるローカルチャネルと、第２の通信チャネルであるグローバルチャネルとの２つの通信チャネルが設定されている。なお、ローカルチャネル及びグローバルチャネルは、論理的な仮想チャネルである。また、ここでは、リンク１０４に設定される通信チャネルの数を２つとしているが、リンク１０４に設定される通信チャネルの数は２つに限定されるものではない。
【００５６】
ローカルチャネルは、同じパーティション１０に属するノード１０３間における通信で送受信されるデータを含むパケットの中継に用いられる。一方、グローバルチャネルは、相互に異なるパーティション１０に属するノード１０３間における通信で送受信されるデータを含むパケットの中継に用いられる。
【００５７】
図２は、図１に示したルータ１０２の構成の一例を示すブロック図である。
【００５８】
図１に示したルータ１０２は図２に示すように、第１のバッファであるローカル用バッファ２０１−１と、第２のバッファであるグローバル用バッファ２０１−２と、ローカル用バッファ２０１−１及びグローバル用バッファ２０１−２と接続されたパケット入力部２０４と、パケット出力スイッチ２０２と、ルーティング制御部２０３とを備えている。
【００５９】
なお、ここでは、リンク１０４に設定されている通信チャネルがローカルチャネルとグローバルチャネルとの２つであるため、ローカル用バッファ２０１−１とグローバル用バッファ２０１−２との２つのバッファが設けられている。但し、バッファは、少なくともリンク１０４に設定された通信チャネルの数の分だけ設けられる。
【００６０】
また、パケット入力部２０４、ローカル用バッファ２０１−１及びグローバル用バッファ２０１−２は、隣接ルータと接続ノードとを合計した数だけ複数設けられている。なお、図２では一例として、隣接ルータと接続ノードとの合計数が５つである場合を示している。
【００６１】
パケット入力部２０４は、隣接ルータまたは接続ノードからリンク１０４を介して送信されてきたパケットを受信する。そして、受信したパケットがローカルチャネルで送信されてきたパケットか、グローバルチャネルで送信されてきたパケットかを判定する。判定の結果、受信したパケットがローカルチャネルで送信されてきたパケットである場合、パケット入力部２０４は、受信したパケットをローカル用バッファ２０１−１へ出力する。一方、判定の結果、受信したパケットがグローバルチャネルで送信されてきたパケットである場合には、パケット入力部２０４は、受信したパケットをグローバル用バッファ２０１−２へ出力する。
【００６２】
ローカル用バッファ２０１−１は、パケット入力部２０４から出力されたパケットを受け付け、受け付けたパケットを一時的に記憶する。
【００６３】
グローバル用バッファ２０１−２は、パケット入力部２０４から出力されたパケットを受け付け、受け付けたパケットを一時的に記憶する。
【００６４】
ルーティング制御部２０３は、予め決められたタイミングと切り替えパターンとに基づき、パケットを送信するためのパケット送信指示をパケット出力スイッチ２０２へ出力する。
【００６５】
パケット出力スイッチ２０２は、隣接ルータと接続ノードとの合計した数だけの複数の出力部（不図示）を備えている。そして、パケット出力スイッチ２０２は、ルーティング制御部２０３から出力されたパケット送信指示に従い、ローカル用バッファ２０１−１及びグローバル用バッファ２０１−２に一時的に記憶されたパケットを、パケットの宛先に応じて隣接ルータまたは接続ノードへ送信する。このとき、パケット出力スイッチ２０２は具体的には、パケットの宛先に応じた出力部からパケットを送信する。また、このとき、ローカル用バッファ２０１−１に一時的に記憶されたパケットは、ローカルチャネルで送信され、グローバル用バッファ２０１−２に一時的に記憶されたパケットは、グローバルチャネルで送信される。
【００６６】
再度、図１を参照すると、複数のノード１０３のそれぞれは、通信の始点または終点となり、自ノード以外のノード１０３と通信を行う。その際、複数のノード１０３のそれぞれは、接続ルータとの間でデータを含むパケットの送受信を行う。
【００６７】
図３は、図１に示したノード１０３の構成の一例を示すブロック図である。
【００６８】
図１に示したノード１０３は図３に示すように、ネットワークインターフェース部３０１と、ブロック部であるプロセッサ３０２−１〜３０２−ｎ、ローカルメモリ３０３及び周辺デバイスインターフェース３０４とを備えている。なお、これらの構成要素は、複数のノード１０３において必ずしも共通でなくてもよい。例えば、周辺デバイスインターフェース３０４を備えていないノード１０３や、ローカルメモリ３０３を備えていないノード１０３が存在していてもよい。
【００６９】
また、ネットワークインターフェース部３０１と、プロセッサ３０２−１〜３０２−ｎと、ローカルメモリ３０３と、周辺デバイスインターフェース３０４とは、共有バス３０５を介して接続されている。
【００７０】
プロセッサ３０２−１〜３０２−ｎ、ローカルメモリ３０３及び周辺デバイスインターフェース３０４は、データを生成し、生成されたデータを共有バス３０５を介してネットワークインターフェース部３０１へ出力する。また、プロセッサ３０２−１〜３０２−ｎ、ローカルメモリ３０３及び周辺デバイスインターフェース３０４は、ネットワークインターフェース部３０１から出力されたデータを共有バス３０５を介して受け付ける。
【００７１】
ネットワークインターフェース部３０１は、ブロック部を構成するプロセッサ３０２−１〜３０２−ｎ等から出力されたデータを共有バス３０５を介して受け付ける。そして、受け付けたデータを含むパケットを生成し、接続ルータへ送信する。また、ネットワークインターフェース部３０１は、接続ルータから送信されたパケットを受信し、受信したパケットに含まれるデータを抽出する。そして、抽出したデータの宛先に応じ、プロセッサ３０２−１〜３０２−ｎ等へ抽出したデータを共有バス３０５を介して出力する。
【００７２】
図４は、図３に示したネットワークインターフェース部３０１の構成の一例を示すブロック図である。
【００７３】
図３に示したネットワークインターフェース部３０１は図４に示すように、パーティション識別部４０１と、コンフィグレーションレジスタ４０２と、ローカルパケット生成部４０３と、グローバルパケット生成部４０４と、グローバルパケット解析部４０５と、ローカルパケット解析部４０６と、スイッチ４０７，４０８と、データ入出力部４０９と、パケット入出力部４１０とを備えている。
【００７４】
コンフィグレーションレジスタ４０２は、予め決められたノード１０３が有する複数のプロセッサ３０２−１〜３０２−ｎのうち、予め決められたプロセッサから送信されたパーティション定義情報を受信する。そして、受信したパーティション定義情報を記憶する。以降、パーティション定義情報を送信するプロセッサのことをメインプロセッサという。
【００７５】
なお、パーティション定義情報には、後述するパーティション設定情報、送信許可情報及び受信許可情報を生成するための情報が含まれている。
【００７６】
ここで、図４に示したコンフィグレーションレジスタ４０２がパーティション定義情報を記憶するときの動作について説明する。
【００７７】
図５は、図４に示したコンフィグレーションレジスタ４０２がパーティション定義情報を記憶するときの動作を説明するためのフローチャートである。なお、図５のフローチャートに示す動作は、図１〜図４に示したオンチップ並列処理システムが起動されたときに実行される。
【００７８】
図１〜図４に示したオンチップ並列処理システムが起動されると、まず、メインプロセッサは、システムの起動コードを実行する（ステップＳ１）。
【００７９】
次に、メインプロセッサは、複数のノード１０３のそれぞれへ信号を送信することにより、コンフィグレーションレジスタ４０２からの読み出しとコンフィグレーションレジスタ４０２への書き込みとを許可するためのビット値を変更する。これにより、メインプロセッサ以外からのコンフィグレーションレジスタ４０２から読み出しと、コンフィグレーションレジスタ４０２への書き込みとが禁止される（ステップＳ２）。
【００８０】
次に、メインプロセッサは、複数のノード１０３毎に設定され、不揮発メモリ等に予め記憶されているパーティション定義情報を、複数のノード１０３のそれぞれのコンフィグレーションレジスタ４０２へ送信する。
【００８１】
メインプロセッサから送信されたパーティション定義情報を受信したコンフィグレーションレジスタ４０２は、受信したパーティション定義情報を記憶する（ステップＳ３）。
【００８２】
そして、メインプロセッサは、複数のノード１０３のそれぞれへ信号を送信することにより、ステップＳ２にて変更したビット値を元の値に戻す。これにより、メインプロセッサ以外からのコンフィグレーションレジスタ４０２からの読み出しと、コンフィグレーションレジスタ４０２への書き込みとの禁止が解除される（ステップＳ４）。
【００８３】
上述したような動作によってコンフィグレーションレジスタ４０２にパーティション定義情報を記憶させる。これにより、複数のノード１０３のそれぞれにおいて実行されるプログラムに不正があったとしても、パーティション定義情報が誤った内容に書き換えられることを回避することができる。なお、メインプロセッサを認識する方法としては例えば、メインプロセッサから送信されるパケットのヘッダに、メインプロセッサから送信されたことを示す所定の認証コードを含めておくというような方法が考えられる。
【００８４】
また、オンチップ並列処理システム１０１の動作中に、パーティション定義情報が変更された場合には、上述したステップＳ２〜Ｓ４の動作を行うことにより、パーティション定義情報を書き換えることが可能である。つまり、オンチップ並列処理システム１０１が動作している際にも、コンフィグレーションレジスタ４０２に記憶されたパーティション定義情報を変更することが可能である。
【００８５】
このとき、パーティション定義情報の変更に要する時間が、オンチップ並列処理システム１０１の動作を中断できる時間よりも短くなるようにする。これを実現するための方法としては例えば、２つのパーティション定義情報をコンフィグレーションレジスタ４０２に記憶することができるようにする方法がある。この方法では、１つのパーティション定義情報を使用している間に、変更後のパーティション情報を取得しておくことにより、非常に短い時間でパーティション情報の変更を行うことが可能となる。
【００８６】
再度、図４を参照すると、パーティション識別部４０１は、コンフィグレーションレジスタ４０２に記憶されたパーティション定義情報に基づき、パーティション設定情報、送信許可情報及び受信許可情報を生成する。そして、パーティション識別部４０１は、生成したパーティション設定情報をスイッチ４０７へ出力する。また、パーティション識別部４０１は、生成した送信許可情報をグローバルパケット生成部４０４へ出力する。また、パーティション識別部４０１は、生成した受信許可情報をグローバルパケット解析部４０５へ出力する。
【００８７】
ここで、パーティション設定情報とは、自ノードと同じパーティションに属するノード１０３であるパーティション内ノードを示す情報である。また、送信許可情報とは、自ノードからのデータの送信が許可されたノード１０３である送信許可ノードを示す情報である。また、受信許可情報とは、自ノードが受信するデータの送信元として許可されたノード１０３である受信許可ノードを示す情報である。
【００８８】
データ入出力部４０９は、ブロック部を構成するプロセッサ３０２−１〜３０２−ｎ等から出力されたデータを共有バス３０５を介して受け付け、受け付けたデータをスイッチ４０７へ出力する。
【００８９】
スイッチ４０７は、データ入出力部４０９から出力されたデータを受け付ける。そして、スイッチ４０７は、受け付けたデータに含まれ、そのデータの宛先のノード１０３を示す宛先情報と、パーティション識別部４０１から出力されたパーティション設定情報とから、受け付けたデータの宛先のノード１０３がパーティション内ノードであるかどうかを判定する。そして、判定の結果、受け付けたデータの宛先のノード１０３がパーティション内ノードである場合、スイッチ４０７は、受け付けたデータをローカルパケット生成部４０３へ出力する。一方、判定の結果、受け付けたデータの宛先のノード１０３がパーティション内ノードでない場合には、スイッチ４０７は、受け付けたデータをグローバルパケット生成部４０４へ出力する。
【００９０】
ローカルパケット生成部４０３は、スイッチ４０７から出力されたデータを受け付け、受け付けたデータを含むパケットを生成する。そして、生成されたパケットを、パケット入出力部４１０からローカルチャネルで接続ルータへ送信する。
【００９１】
グローバルパケット生成部４０４は、スイッチ４０７から出力されたデータを受け付ける。そして、グローバルパケット生成部４０４は、受け付けたデータに含まれる宛先情報と、パーティション識別部４０１から出力された送信許可情報とから、受け付けたデータの宛先のノード１０３が送信許可ノードであるかどうかを判定する。そして、判定の結果、受け付けたデータの宛先のノード１０３が送信許可ノードである場合、グローバルパケット生成部４０４は、受け付けたデータを含むパケットを生成する。そして、生成されたパケットを、パケット入出力部４１０からグローバルチャネルで接続ルータへ送信する。一方、判定の結果、受け付けたデータの宛先のノード１０３が送信許可ノードでない場合には、グローバルパケット生成部４０４は、受け付けたデータを破棄する。
【００９２】
パケット入出力部４１０は、接続ルータからリンク１０４を介して送信されてきたパケットを受信する。そして、受信したパケットがローカルチャネルで送信されてきたパケットが、グローバルチャネルで送信されてきたパケットかを判定する。判定の結果、受信したパケットがローカルチャネルで送信されてきたパケットである場合、パケット入出力部４１０は、受信したパケットをローカルパケット解析部４０６へ出力する。一方、判定の結果、受信したパケットがグローバルチャネルで送信されてきたパケットである場合には、受信したパケットをグローバルパケット解析部４０５へ出力する。
【００９３】
ローカルパケット解析部４０６は、パケット入出力部４１０から出力されたパケットを受け付ける。そして、受け付けたパケットに含まれるデータを抽出し、抽出されたデータをスイッチ４０８へ出力する。これにより、抽出されたデータは、ブロック部を構成するプロセッサ３０２−１〜３０２−ｎ等へ出力される。
【００９４】
グローバルパケット解析部４０５は、パケット入出力部４１０から出力されたパケットを受け付ける。そして、グローバルパケット解析部４０５は、受け付けたパケットに含まれ、データの送信元のノード１０３を示す送信元情報と、パーティション識別部４０１から出力された受信許可情報とから、そのデータの送信元のノード１０３が受信許可ノードであるかどうかを判定する。そして、判定の結果、そのデータの送信元のノード１０３が受信許可ノードである場合、グローバルパケット解析部４０５は、受け付けたパケットに含まれるデータを抽出する。そして、抽出されたデータをスイッチ４０８へ出力する。これにより、抽出されたデータは、ブロック部を構成するプロセッサ３０２−１〜３０２−ｎ等へ出力される。一方、判定の結果、そのデータの送信元のノード１０３が受信許可ノードでない場合には、グローバルパケット解析部４０５は、そのデータを破棄する。
【００９５】
なお、データの送受信の許可についてさらに詳細な制御が必要な場合、ノード１０３が有するプロセッサ３０２−１〜３０２−ｎ毎にデータの送受信の可否を判定するための情報をパーティション定義情報に含めてもよい。
【００９６】
また、プロセッサ３０２−１〜３０２−ｎ内のタスク毎にデータの送受信の可否を判定するための情報をパーティション定義情報に含めてもよい。なお、このタスク毎にデータの送受信の可否を判定するための情報は例えば、当該タスクが実行されているオペレーションシステム（以降、ＯＳという）に提供され、ＯＳによって送受信が拒否されるようにすることも可能である。
【００９７】
以下に、上記のように構成されたオンチップ並列処理システム１０１の動作について説明する。
【００９８】
まず、図１〜図４に示したオンチップ並列処理システム１０１において、ノード１０３がデータを含むパケットを送信するときの動作について説明する。
【００９９】
図６は、図１〜図４に示したオンチップ並列処理システム１０１において、ノード１０３がデータを含むパケットを送信するときの動作を説明するためのフローチャートである。
【０１００】
まず、ブロック部を構成するプロセッサ３０２−１〜３０２−ｎ等は、他のノード１０３へ送信するデータを生成する（ステップＳ２１）。
【０１０１】
次に、データを生成したプロセッサ３０２−１〜３０２−ｎ等は、生成したデータを共有バス３０５を介してネットワークインターフェース部３０１へ出力する。
【０１０２】
プロセッサ３０２−１〜３０２−ｎ等から出力されたデータを共有バス３０５を介して受け付けたネットワークインターフェース部３０１のデータ入出力部４０９は、受け付けたデータをスイッチ４０７へ出力する。
【０１０３】
スイッチ４０７は、データ入出力部４０９から出力されたデータを受け付ける。そして、受け付けたデータに含まれる宛先情報と、パーティション識別部４０１から出力されたパーティション設定情報とから、受け付けたデータの宛先のノード１０３がパーティション内ノードかどうかを判定する（ステップＳ２２）。
【０１０４】
ステップＳ２２における判定の結果、受け付けたデータの宛先のノード１０３がパーティション内ノードである場合、スイッチ４０７は、受け付けたデータをローカルパケット生成部４０３へ出力する。
【０１０５】
スイッチ４０７から出力されたデータを受け付けたローカルパケット生成部４０３は、受け付けたデータを含むパケットを生成する（ステップＳ２３）。
【０１０６】
そして、ローカルパケット生成部４０３は、生成されたパケットを、パケット入出力部４１０からローカルチャネルで接続ルータへ送信する（ステップＳ２４）。
【０１０７】
一方、ステップＳ２２における判定の結果、受け付けたデータの宛先のノード１０３がパーティション内ノードでない場合には、スイッチ４０７は、受け付けたデータをグローバルパケット生成部４０４へ出力する。
【０１０８】
グローバルパケット生成部４０４は、スイッチ４０７から出力されたデータを受け付ける。そして、グローバルパケット生成部４０４は、受け付けたデータに含まれる宛先情報と、パーティション識別部４０１から出力された送信許可情報とから、受け付けたデータの宛先のノード１０３が送信許可ノードであるかどうかを判定する（ステップＳ２５）。
【０１０９】
ステップＳ２５における判定の結果、受け付けたデータの宛先のノード１０３が送信許可ノードである場合、グローバルパケット生成部４０４は、受け付けたデータを含むパケットを生成する（ステップＳ２６）。
【０１１０】
そして、グローバルパケット生成部４０４は、生成されたパケットを、パケット入出力部４１０からグローバルチャネルで接続ルータへ送信する（ステップＳ２７）。
【０１１１】
一方、ステップＳ２５における判定の結果、受け付けたデータの宛先のノード１０３が送信許可ノードでない場合には、グローバルパケット生成部４０４は、受け付けたデータを破棄する（ステップＳ２８）。
【０１１２】
そして、グローバルパケット生成部４０４は、受け付けたデータを破棄したことを示す破棄情報を、複数のノード１０３のうち予め決められたノードへ通知する（ステップＳ２９）。ここで、予め決められたノードとは、オンチップ並列処理システム１０１全体におけるデータの破棄情報を管理するプロセッサを有するノードである。このプロセッサは、上述したメインプロセッサと同じでもよいし、異なっていてもよい。また、別の形態として、複数のノード１０３のそれぞれにおいて、プロセッサ３０２−１〜３０２−ｎのうち破棄情報を管理するプロセッサを決めておき、複数のノード１０３毎に破棄情報を管理するようにしてもよい。
【０１１３】
次に、図１〜図４に示したオンチップ並列処理システムにおいて、ノード１０３がパケットを受信したときの動作について説明する。
【０１１４】
図７は、図１〜図４に示したオンチップ並列処理システム１０１において、ノード１０３がパケットを受信したときの動作を説明するためのフローチャートである。
【０１１５】
まず、ネットワークインターフェース部３０１のパケット入出力部４１０は、接続ルータから送信されたパケットを受信する（ステップＳ４１）。
【０１１６】
そして、パケット入出力部４１０は、受信したパケットがローカルチャネルで送信されてきたパケットが、グローバルチャネルで送信されてきたパケットかを判定する（ステップＳ４２）。
【０１１７】
ステップＳ４２における判定の結果、受信したパケットがローカルチャネルで送信されてきたパケットである場合、パケット入出力部４１０は、受信したパケットをローカルパケット解析部４０６へ出力する。
【０１１８】
パケット入出力部４１０から出力されたパケットを受け付けたローカルパケット解析部４０６は、受け付けたパケットに含まれるデータを抽出する（ステップＳ４３）。
【０１１９】
そして、ローカルパケット解析部４０６は、抽出されたデータをスイッチ４０８へ出力する。これにより、抽出されたデータは、ブロック部を構成するプロセッサ３０２−１〜３０２−ｎ等へ出力される（ステップＳ４４）。
【０１２０】
一方、ステップＳ４２における判定の結果、受信したパケットがグローバルチャネルで送信されてきた場合には、パケット入出力部４１０は、受信したパケットをグローバルパケット解析部４０５へ出力する。
【０１２１】
グローバルパケット解析部４０５は、パケット入出力部４１０から出力されたパケットを受け付ける。そして、受け付けたパケットに含まれるデータの送信元情報と、パーティション識別部４０１から出力された受信許可情報とから、受け付けたパケットに含まれるデータの送信元のノード１０３が受信許可ノードかどうかを判定する。（ステップＳ４５）。
【０１２２】
ステップＳ４５における判定の結果、受け付けたパケットに含まれるデータの送信元のノード１０３が受信許可ノードである場合、グローバルパケット解析部４０５は、受け付けたパケットからデータを抽出する（ステップＳ４６）。
【０１２３】
そして、グローバルパケット解析部４０５は、抽出されたデータをスイッチ４０８へ出力する。これにより、抽出されたデータは、ブロック部を構成するプロセッサ３０２−１〜３０２−ｎ等へ出力される（ステップＳ４７）。
【０１２４】
一方、ステップＳ４５における判定の結果、受け付けたパケットに含まれるデータの送信元のノード１０３が受信許可ノードでない場合には、グローバルパケット解析部４０５は、受け付けたパケットを破棄する（ステップＳ４８）。
【０１２５】
そして、グローバルパケット解析部４０５は、受け付けたパケットに含まれるデータを破棄したことを示す破棄情報を、複数のノード１０３のうち予め決められたノードへ通知する（ステップＳ４９）。この場合も、別の形態として、複数のノード１０３のそれぞれにおいて、プロセッサ３０２−１〜３０２−ｎのうち破棄情報を管理するプロセッサを決めておき、複数のノード１０３毎に破棄情報を管理するようにしてもよい。
【０１２６】
次に、図１〜図４に示したオンチップ並列処理システム１０１において、ルータ１０２がデータを含むパケットを受信したときの動作を説明する。
【０１２７】
図８は、図１〜図４に示したオンチップ並列処理システム１０１において、ルータ１０２がデータを含むパケットを受信したときの動作を説明するためのフローチャートである。
【０１２８】
まず、ルータ１０２のパケット入力部２０４は、隣接ルータまたは接続ノードからリンク１０４を介して送信されてきたパケットを受信する（ステップＳ６１）。
【０１２９】
そして、パケット入力部２０４は、受信したバケットがローカルチャネルで送信されてきたか、グローバルチャネルで送信されてきたかを判定する（ステップＳ６２）。
【０１３０】
ステップＳ６２の判定の結果、受信したパケットがローカルチャネルで送信されてきたパケットである場合、パケット入力部２０４は、受信したパケットをローカル用バッファ２０１−１へ出力する。
【０１３１】
パケット入力部２０４から出力されたパケットを受け付けたローカル用バッファ２０１−１は、受け付けたパケットを一時的に記憶する（ステップＳ６３）。
【０１３２】
一方、ステップＳ６２の判定の結果、受信したパケットがグローバルチャネルで送信されてきたパケットである場合には、パケット入力部２０４は、受信したパケットをグローバル用バッファ２０１−２へ出力する。
【０１３３】
パケット入力部２０４から出力されたパケットを受け付けたグローバル用バッファ２０１−２は、受け付けたパケットを一時的に記憶する（ステップＳ６４）。
【０１３４】
次に、パケット出力スイッチ２０２は、ルーティング制御部２０３から出力されたパケット送信指示に従い、ローカル用バッファ２０１−１及びグローバル用バッファ２０１−２に一時的に記憶されたパケットを、パケットの宛先に応じた出力部から隣接ルータまたは接続ノードへ送信する。
【０１３５】
このとき、パケット出力スイッチ２０２は、ローカル用バッファ２０１−１に一時的に記憶されたパケットをローカルチャネルで送信する（ステップＳ６５）。
【０１３６】
また、パケット出力スイッチ２０２は、グローバル用バッファ２０１−２に一時的に記憶されたパケットをグローバルチャネルで送信する（ステップＳ６６）。
【０１３７】
このように本実施形態においては、同一のパーティション１０に属するノード間における通信では、ローカルチャネルでパケットが送受信され、相互に異なるパーティション１０に属するノード間における通信においては、グローバルチャネルでパケットが送受信される。
【０１３８】
これにより、通信速度の低下や、データの漏洩及び改ざんを抑制することができる。従って、オンチップ並列処理システム１０１において、複数のアプリケーションそれぞれが所定の性能を安定的に満足しながら動作することが可能となる。
【０１３９】
また、複数のノード１０３のそれぞれは、データの宛先が送信許可ノードでない場合、そのデータを送信せずに破棄する。これにより、不要なパケットが複数のルータ１０２によって中継されることがなくなり、オンチップ並列処理システム１０１の通信速度の低下を抑制することができる。これにより、アプリケーションの安定的な動作をさらに確実なものとすることができる。
【０１４０】
なお、本発明のオンチップ並列処理システムは、携帯電話機や携帯マルチメディア再生装置といった用途においてシステム全体を主となって制御する半導体チップに適用できる。また、パーソナルコンピュータやサーバといった用途において主たる制御を行う半導体チップが別に存在し、それに対する従の立場で部分的な処理を実行するアクセラレーターとして適用することもできる。もちろん、この主たる半導体チップと従たる半導体チップとは物理的に分断されている必要はなく、本発明のオンチップ並列処理システムが半導体チップ上の一部分で構成されることも可能である。
【０１４１】
以上、実施例を参照して本願発明を説明したが、本願発明は上記実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１４２】
この出願は、２００９年１２月７日に出願された日本出願特願２００９−２７７４０６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2011070913.tif 000003
【図２】
2011070913.tif 000004
【図３】
2011070913.tif 000005
【図４】
2011070913.tif 000006
【図５】
2011070913.tif 000007
【図６】
2011070913.tif 000008
【図７】
2011070913.tif 000009
【図８】
2011070913.tif 000010
【国際調査報告】
2011070913.tif 000011
2011070913.tif 000012
2011070913.tif 000013
2011070913.tif 000014