(57)【要約】      （修正有）【課題】複数のプロセッサに対する共有の入出力ポートを含むことにより、小型化及び製造コストの低下を図ったマルチプロセッサシステムを提供する。【解決手段】マルチプロセッサシステム１００は、複数のプロセッサ３０と、複数のプロセッサ３０で共有される共有入出力ポート１０と、共有入出力ポート１０に通信路を介して接続される複数のネットワークコネクタ２０とを含み、ネットワークコネクタ２０の各々には、複数のプロセッサ３０のうちの一つ、又は複数のプロセッサ３０のうちの一部の複数のプロセッサ３０が接続される。【選択図】図１
2011159130.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと、
前記複数のプロセッサで共有される共有入出力ポートと、
前記共有入出力ポートに通信路を介して接続される複数のネットワークコネクタと
を含み、前記ネットワークコネクタの各々には、前記複数のプロセッサのうちの一つ、又は前記複数のプロセッサのうちの一部の複数のプロセッサが接続される、マルチプロセッサシステム。
【請求項２】
前記複数のネットワークコネクタは、前記共有入出力ポートに対して論理レベルで分けられた複数の階層に割り当てられており、各ネットワークコネクタは、自己の属する論理レベルとは異なる論理レベルに属する他のネットワークコネクタ又は前記共有入出力ポートにデータを転送する、請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記ネットワークコネクタは、他のネットワークコネクタから転送されたデータが自己に接続されたプロセッサ宛のデータではない場合は、自己から見て当該他のネットワークコネクタの論理レベルとは反対の論理レベルのネットワークコネクタに当該データを転送する、請求項２に記載のマルチプロセッサシステム。
【請求項４】
前記ネットワークコネクタは、他のネットワークコネクタから転送されたデータの送信時刻が既に転送されたデータの送信時刻と一致する場合は、当該データを廃棄する、請求項１乃至３のいずれか一項に記載のマルチプロセッサシステム。
【請求項５】
前記共有入出力ポートは、前記ネットワークコネクタから転送されるデータのうち、当該データの送信時刻から所定時間以上経過したデータを廃棄する、請求項１乃至４のいずれか一項に記載のマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムに関する。
【背景技術】
【０００２】
従来より、ＣＰＵ（Central  Processing  Unit：中央演算処理装置）のようなプロセッサを複数有することにより、処理能力を大幅に向上させた種々のマルチプロセッサシステムがある。
【０００３】
例えば、複数のＣＰＵと、これらのＣＰＵと接続される複数のルートコンプレックスと、これらのルートコンプレックスと接続される複数の上流ＰＣＩエクスプレス−ブリッジと、これらの上流ＰＣＩエクスプレス−ブリッジとネットワークを介して接続される複数の下流ＰＣＩエクスプレス−ブリッジと、これらの下流ＰＣＩエクスプレス−ブリッジと接続される複数のＩ／Ｏ機器とを備え、ＣＰＵとＩ／Ｏ機器との間の共有設定を識別子を用いて行い、各ＣＰＵが必要とする複数の同じＩ／Ｏ機器毎に識別子を設定するシステムがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−７８８８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のマルチプロセッサシステムは、各ＣＰＵ（プロセッサ）がＩ／Ｏ機器（入出力ポート）を有するため、プロセッサの数が増えるほど入出力ポートの数も増える。
【０００６】
このように、プロセッサの数の増加に伴って入出力ポートの数が増加するため、処理能力を向上させるためにプロセッサの数を増やすと、マルチプロセッサシステムのチップが大型化するという問題点があった。また、入出力ポートの数が増加すると、入出力ポートを配置する領域が必要になるため、チップの製造コストが上昇するという問題点があった。
【０００７】
また、マルチプロセッサシステムのチップの大型化により、チップの筐体の大型化やコストアップが生じていた。
【０００８】
また、各入出力ポートにはデータの入出力処理に必要なソフトウェア（プログラム）等の周辺要素が必要になるため、入出力ポートの数の増加により、周辺要素の増加によるコストアップが生じていた。
【０００９】
そこで、複数のプロセッサに対する共有の入出力ポートを含むことにより、小型化及び製造コストの低下を図ったマルチプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の実施の形態のマルチプロセッサシステムは、複数のプロセッサと、前記複数のプロセッサで共有される共有入出力ポートと、前記共有入出力ポートに通信路を介して接続される複数のネットワークコネクタとを含み、前記ネットワークコネクタの各々には、前記複数のプロセッサのうちの一つ、又は前記複数のプロセッサのうちの一部の複数のプロセッサが接続される。
【００１１】
また、前記複数のネットワークコネクタは、前記共有入出力ポートに対して論理レベルで分けられた複数の階層に割り当てられており、各ネットワークコネクタは、自己の属する論理レベルとは異なる論理レベルに属する他のネットワークコネクタ又は前記共有入出力ポートにデータを転送してもよい。
【００１２】
また、前記ネットワークコネクタは、他のネットワークコネクタから転送されたデータが自己に接続されたプロセッサ宛のデータではない場合は、自己から見て当該他のネットワークコネクタの論理レベルとは反対の論理レベルのネットワークコネクタに当該データを転送してもよい。
【００１３】
また、前記ネットワークコネクタは、他のネットワークコネクタから転送されたデータの送信時刻が既に転送されたデータの送信時刻と一致する場合は、当該データを廃棄してもよい。
【００１４】
また、前記共有入出力ポートは、前記ネットワークコネクタから転送されるデータのうち、当該データの送信時刻から所定時間以上経過したデータを廃棄してもよい。
【発明の効果】
【００１５】
複数のプロセッサに対する共有の入出力ポートを含むことにより、小型化及び製造コストの低下を図ったマルチプロセッサシステムを提供できる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態のマルチプロセッサシステムの物理的構成を概略的に示す図である。
【図２】本実施の形態のマルチプロセッサシステムの論理的な接続構成を示す図である。
【図３】本実施の形態のマルチプロセッサシステムで用いるパケット形式データの構造を示す図である。
【図４】本実施の形態のマルチプロセッサシステムにおいて、ＮＷコネクタに他のＮＷコネクタからデータが転送された場合の処理内容を示すフローチャートである。
【図５】本実施の形態のマルチプロセッサシステムにおいて、ＮＷコネクタが他のＮＷコネクタにパケット形式データを転送する場合の処理を示すフローチャートである。
【図６】本実施の形態のマルチプロセッサシステムで用いるＮＷコネクタ同士の間でのデータの送受信、プロセッサとのデータの書き込み／読み出しを説明するための図である。
【発明を実施するための形態】
【００１７】
以下、本発明のマルチプロセッサシステムを適用した実施の形態について説明する。本実施の形態のマルチプロセッサシステムは、種々の情報処理装置に用いることができるが、ここでは、一例として、車両用のＥＣＵ（Electronic  Control  Unit）に利用する形態について説明する。
【００１８】
図１は、実施の形態のマルチプロセッサシステムの物理的構成を概略的に示す図である。
【００１９】
本実施の形態のマルチプロセッサシステム１００は、共有Ｉ／Ｏ（Input/Output）ポート１０、通信路１５で接続された複数のＮＷ（Network）コネクタ２０、及び、各ＮＷコネクタ２０に接続されたプロセッサ３０を含む。ここで、図１に示すコネクタ２０及びプロセッサ３０は、マルチプロセッサシステム１００に含まれるすべてのコネクタ２０及びプロセッサ３０のうちの一部である。なお、マルチプロセッサシステム１００は、例えば、一つのチップで構成される演算処理装置である。
【００２０】
共有Ｉ／Ｏポート１０は、マルチプロセッサシステム１００全体に対して一つ配設され、すべてのプロセッサ３０の共有の入出力ポートとして機能する。共有Ｉ／Ｏポート１０には通信路１５が接続されており、通信路１５を介してＮＷコネクタ２０が接続されている。また、共有Ｉ／Ｏポート１０には、例えば、車両のＣＡＮ（Controller  Area  Network）システムに接続され、車両の制御のために演算が必要なデータ等がマルチプロセッサシステム１００に入力される。
【００２１】
また、共有Ｉ／Ｏポート１０は、データの送信時刻を計時するためのタイマ１１と、通信路１５との接続部に配設されるＮＷコネクタ２０Ａとを有する。
【００２２】
なお、共有Ｉ／Ｏポート１０は、マルチプロセッサシステム１００に接続されるＣＡＮシステム等との間でデータの入出力処理を行うためのソフトウェア（プログラム）を有する。
【００２３】
ＮＷコネクタ２０は、通信路１５を介して互いに接続されるとともに、共有Ｉ／Ｏポート１０に接続されている。ＮＷコネクタ２０は、図１に示すようにマトリクス状に配列され、各々に１つのプロセッサ３０が接続されている。
【００２４】
ＮＷコネクタ２０は、パケット形式のデータ（以下、パケット形式データ）を転送する処理等を行う簡易型の演算処理部で構成される。各ＮＷコネクタ２０は、通信路１５を転送されるパケット形式データを監視し、自己に接続されたプロセッサ３０宛のデータだけを取り込み、自己に接続されたプロセッサ３０宛でないデータはそのまま他のＮＷコネクタ２０に転送する。ＮＷコネクタ２０の処理については後述する。
【００２５】
なお、共有Ｉ／Ｏポート１０に含まれるＮＷコネクタ２０Ａは、パケット形式データを作成する点やパケット形式データを転送する点では基本的に各プロセッサ３０に接続されるＮＷコネクタ２０と同一であるが、共有Ｉ／Ｏポート１０に含まれているために一部の処理が異なる。相違点・共通点については、以下で説明する。
【００２６】
プロセッサ３０は、ＣＰＵ（Central  Processing  Unit：中央演算処理装置）３１、メモリ３２、及びタイマ３３を有する。
【００２７】
ＣＰＵ３１は、共有Ｉ／Ｏポート１０から転送される指令等のデータに基づき、所定の演算処理を行う装置である。各ＣＰＵ３１には、それぞれのアドレスを表す番号（以下、アドレス番号）が割り振られている。
【００２８】
メモリ３２は、例えば、ＲＯＭ（Read  Only  Memory）、及びＲＡＭ（Random  Access  Memory）等で構成される。ＲＯＭにはＣＰＵ３１が実行するためのプログラムや、プログラムの実行に必要なデータ等が記憶される。ＲＡＭは、ＣＰＵ３１がプログラムを実行するときの作業エリアとなるメモリであり、高速処理可能な揮発性のメモリで構成される。
【００２９】
タイマ３３は、ＮＷコネクタ２０から共有Ｉ／Ｏポート１０にデータを送信する際の送信時刻を計時するためのタイマである。ＮＷコネクタ２０は、ＣＰＵ３１が処理を行ったデータをパケット形式データに変換して共有Ｉ／Ｏポート１０に送信する際に、タイマ３３を参照して送信時刻をパケット形式データに含ませる。
【００３０】
また、通信路１５は、双方向での高速通信が可能な通信路であればよく、本実施の形態ではパケット形式データを取り扱うため、高速でのパケット通信が可能な通信路であれば、その形式等は問わない。
【００３１】
なお、以下では、ＮＷコネクタ２０及びプロセッサ３０の対を「ノード」と称する場合がある。
【００３２】
次に、図２を用いて本実施の形態のマルチプロセッサシステム１００の論理的な接続構成について説明する。
【００３３】
図２は、本実施の形態のマルチプロセッサシステム１００の論理的な接続構成を示す図である。
【００３４】
マルチプロセッサシステム１００は、論理レベル毎に分けられた階層構造を有し、各論理レベルにＮＷコネクタ２０及びプロセッサ３０が割り当てられている。図２に示す例は、論理レベル０に共有Ｉ／Ｏポート１０が割り当てられ、論理レベル１以上に階層的にＮＷコネクタ２０及びプロセッサ３０が割り当てられている状態を示している。なお、図２には論理レベル２までのＮＷコネクタ２０及びプロセッサ３０を示すが、実際には、論理レベル３以上にもＮＷコネクタ２０及びプロセッサ３０は存在する。
【００３５】
このように、本実施の形態のマルチプロセッサシステム１００は、全体として共有の一つの共有Ｉ／Ｏポート１０を含み、論理レベル０の共有Ｉ／Ｏポート１０に対してコネクタ２０及びプロセッサ３０が階層的に接続され、データのやりとりを行えるように構成されている。
【００３６】
このような本実施の形態のマルチプロセッサシステム１００において、データ通信は、通信路１５を介してパケット形式で行われる。その際に、各ＮＷコネクタ２０は、次の基本的なルールに従ってデータ通信を行う。
（１）共有Ｉ／Ｏポート１０からＮＷコネクタ２０（に接続されたプロセッサ３０内のＣＰＵ３１宛）に転送されるデータは、論理レベルの低い方から高い方に向けて転送される。
（２）ＮＷコネクタ２０（に接続されたプロセッサ３０内のＣＰＵ３１から）共有Ｉ／Ｏポート１０に向けて転送されるデータは、論理レベルの高い方から低い方に向けて転送される。
【００３７】
このような基本的なルールに基づき、各ＮＷコネクタ２０は、データ通信を行う。ただし、上述の（１）、（２）のルールは代表的なルールであり、本実施の形態のマルチプロセッサシステム１００におけるデータ通信のルールは他にも存在する。データ通信のルールの詳細については、フローチャート（図４、図５）を用いて後述する。
【００３８】
次に、図３を用いて本実施の形態のマルチプロセッサシステム１００で用いるパケット形式データの構造について説明する。
【００３９】
図３は、本実施の形態のマルチプロセッサシステム１００で用いるパケット形式データの構造を示す図であり、（Ａ）はパケット形式データの全体の構造を示す図、（Ｂ）は（Ａ）に含まれるアドレスのデータ構造を示す図、（Ｃ）は（Ａ）に含まれる転送履歴のデータ構造を示す図である。
【００４０】
図３（Ａ）に示すように、パケット形式データは、転送先アドレス、転送元アドレス、コマンド、ステータス、転送履歴、送信時刻、データ、及びＣＲＣ（Cyclic  Redundancy  Check：巡回冗長検査）データを含み、先頭からこの順に並べられている。
【００４１】
転送先アドレスは、データの転送先となるＣＰＵ３１のアドレスを表し、ＣＰＵ３１のアドレス番号によって特定される。ＮＷコネクタ２０は、データが自己に接続されたＣＰＵ３１宛でないと判定した場合には、転送先アドレスを変更せずに、そのままパケット形式データを転送する。なお、アドレスのデータ構造については、図３（Ｂ）を用いて後述する。
【００４２】
転送元アドレスは、データの転送元となるＣＰＵ３１のアドレスを表す。各ＮＷコネクタ２０は、パケット形式データを転送する際に、転送元アドレスを自己に接続されたＣＰＵ３１のアドレス番号に書き換えるため、この転送元アドレスは直前のＮＷコネクタ２０に接続されたＣＰＵ３１のアドレスを表す。なお、アドレスのデータ構造については、図３（Ｂ）を用いて後述する。
【００４３】
コマンドには、ＣＰＵ３１から共有ポート１０へのコマンドと、共有ポート１０からＣＰＵ３１へのコマンドとがある。
【００４４】
ＣＰＵ３１から共有ポート１０へのコマンドとしては、例えば、データ送信要求、データ受信要求、再送要求等がある。
【００４５】
共有ポート１０からＣＰＵ３１へのコマンドとしては、入力割り込み、出力完了割り込み、再送要求等がある。
【００４６】
ステータスは、ＮＷコネクタ２０又はＣＰＵ３１の負荷状態を表し、例えば、Normal、Busy等を表す。
【００４７】
転送履歴は、パケット形式データが転送されてきた履歴を表すデータである。その詳細については、図３（Ｃ）を用いて後述する。
【００４８】
送信時刻は、共有Ｉ／Ｏポート１０がパケット形式データを送信した時刻、又は、いずれかのＣＰＵ３１からデータを読み込んだＮＷコネクタ２０がパケット形式データを送信した時刻を表す。共有Ｉ／Ｏポート１０がパケット形式データを送信した時刻は、共有Ｉ／Ｏポート１０のタイマ１１が計時する時刻である。また、ＣＰＵ３１からデータを読み込んだＮＷコネクタ２０がパケット形式データを送信した時刻は、そのＣＰＵ３１と同一のプロセッサ３０に含まれるタイマ３３によって計時される時刻である。
【００４９】
データは、転送先のＣＰＵ３１で演算処理が行われるデータであり、例えば、車両の制御のために演算処理が必要なデータであればよく、データの種類は問わない。
【００５０】
ＣＲＣデータは、自己に接続されたＣＰＵ３１宛のパケット形式データを受信したＮＷコネクタ２０が行うＣＲＣの結果を表すデータであり、例えば、転送過程でデータに変更が加えられていないかどうかを検査した結果を表す。
【００５１】
図３（Ｂ）に示すように、各ＣＰＵ３１のアドレス番号はビットに割り当てられている。例えば、ＣＰＵ３１が３０個あり、アドレスを３２ビットで表すとすると、ビット０はすべてのノードのＣＰＵ３１が転送先であることを表し、ビット１は共有Ｉ／Ｏポート１０が転送先又は転送元であることを表す。また、ビット２からビット３１は、３０個のＣＰＵ３１のそれぞれが転送先又は転送元であることを表す。
【００５２】
なお、ビット数は、ＣＰＵ３１の個数に応じて設定すればよく、また、ＣＰＵ３１の数が増えた場合には、アドレス領域のビット数を増やせばよい。
【００５３】
図３（Ｃ）に示すように、転送履歴のデータは、論理レベルの番号（以下、論理レベル番号）をビットに割り当てて表すように構成されている。例えば、論理レベルが０から７まであり、論理レベル番号を８ビットで表すとすると、ビット０は論理レベル０（共有Ｉ／Ｏポート１０）を表し、ビット１からビット７は、各階層の論理レベル１〜７を表す。
【００５４】
各ＮＷコネクタ２０は、パケット形式データを転送する際に、図３（Ｃ）に示す論理レベルのビットを立てるように構成されている。これにより、転送履歴のデータは、転送された論理レベルのビットが立った状態になるため、各ＮＷコネクタ２０は、パケット形式データが転送されてきた際に、上下どちらの論理レベルから送られてきたのかを判定することができる。
【００５５】
図４は、本実施の形態のマルチプロセッサシステム１００において、あるＮＷコネクタ２０に他のＮＷコネクタ２０からパケット形式データが転送された場合の処理内容を示すフローチャートである。
【００５６】
ＮＷコネクタ２０は、転送されたパケット形式データが既に届いたパケット形式データと同一であるか否かを判定する（ステップＳ１）。これは、図３（Ａ）に示すパケット形式データの送信時刻が同一であるか否かを判定することによって行われる処理である。
【００５７】
ＮＷコネクタ２０は、ステップＳ１において既に届いたデータであると判定した場合は、そのパケット形式データを破棄する（ステップＳ２Ｎ）。既に届いたパケット形式データと同一のデータを受け取った場合には、最初に受け取ってＣＲＣで合格したデータを正としているため、重複データは不要であり、また、某かのエラー等が原因でデータが転送された場合もあり得るため、破棄することとしたものである。
【００５８】
一方、ＮＷコネクタ２０は、ステップＳ１において既に届いたパケット形式データではないと判定した場合は、自己宛のパケット形式データであるか否かを判定する（ステップＳ２Ｙ）。自己宛のパケット形式データであれば、自己に接続されたＣＰＵ３１に受け渡す必要があるからである。
【００５９】
ＮＷコネクタ２０は、ステップＳ２Ｙにおいて自己宛のパケット形式データではないと判定した場合は、転送されてきたパケット形式データの転送元アドレスを自己に接続されたＣＰＵ３１のアドレス番号に書き換えるとともに、パケット形式データの転送履歴に自己の属する論理レベルを表すビットを立て、そのパケット形式データを転送する（ステップＳ３Ｎ）。自己に接続されたＣＰＵ３１宛ではないパケット形式データは処理の必要がないため、転送することとしたものである。
【００６０】
なお、このとき、ＮＷコネクタ２０は、自己の属する論理レベルとは異なる論理レベルの層（すなわち、論理レベルの高い層、又は低い層）に転送する。論理レベルの高い層、又は低い層のいずれに転送するかは、パケット形式データに含まれる転送履歴に基づいて判定が行われる。
【００６１】
ＮＷコネクタ２０は、他のＮＷコネクタ２０から転送されたパケット形式データが自己に接続されたＣＰＵ３１宛のパケット形式データではない場合は、自己から見て他のＮＷコネクタ２０の論理レベルとは反対の論理レベルのＮＷコネクタ２０に当該データを転送する。具体的には、ＮＷコネクタ２０は、転送履歴のビットが論理レベルの低い方から立てられていると判定した場合は、自己の属する論理レベルのビットを立てるとともに、パケット形式データを論理レベルの高い方に転送する。一方、ＮＷコネクタ２０は、転送履歴のビットが論理レベルの高い方から立てられていると判定した場合は、自己の属する論理レベルのビットを立てるとともに、パケット形式データを論理レベルの低い方に転送する。
【００６２】
ＮＷコネクタ２０は、ステップＳ２Ｙにおいて自己宛のパケット形式データであると判定した場合は、ＣＲＣを実行し、正常なパケット形式データであるか否かを判定する（ステップＳ３Ｙ）。例えば、転送過程でデータ内容が変化したような場合には、ＣＰＵ３１に処理を行わせることが適切ではないため、検査を実行することとしたものである。
【００６３】
ＮＷコネクタ２０は、ステップＳ３Ｙにおいて正常なパケット形式データであると判定した場合は、自己に接続されたプロセッサ３０のメモリ３２にデータを書き込む（ステップＳ４Ｙ）。メモリ３２に書き込まれたデータは、同じプロセッサ３０内のＣＰＵ３１によって処理が行われる。
【００６４】
一方、ＮＷコネクタ２０は、ステップＳ３Ｙにおいて正常なパケット形式データではないと判定した場合は、そのパケット形式データを破棄する（ステップＳ４Ｎ）。転送過程でデータ内容が変化したようなデータを用いた処理をＣＰＵ３１に実行させるのは適切ではないからである。
【００６５】
以上により、ＮＷコネクタ２０に他のＮＷコネクタ２０からデータが転送された場合の処理が終了する。
【００６６】
なお、図４では、各プロセッサ３０に接続されるＮＷコネクタ２０の処理内容について説明したが、共有Ｉ／Ｏポート１０に接続されたＮＷコネクタ２０Ａについても、既に届いたパケット形式データと同一のパケット形式データを破棄する処理、及びＣＲＣ処理を行うように構成してもよい。
【００６７】
次に、図５を用いて、本実施の形態のマルチプロセッサシステム１００において、ＣＰＵ３１からデータを受け取ったＮＷコネクタ２０が他のＮＷコネクタ２０にパケット形式データを転送する場合の処理について説明する。
【００６８】
図５は、本実施の形態のマルチプロセッサシステム１００において、ＮＷコネクタ２０が他のＮＷコネクタ２０にパケット形式データを転送する場合の処理を示すフローチャートである。
【００６９】
ＮＷコネクタ２０は、自己に接続されたＣＰＵ３１からデータを受信したか否かを判定する（ステップＳ１１）。ＣＰＵ３１からのデータの受信の有無は、例えば、割り込みの有無に基づいて判定すればよい。なお、ステップＳ１１の処理は、ＣＰＵ３１からのデータの受信が確認されるまで繰り返し実行される。
【００７０】
ＮＷコネクタ２０は、ＣＰＵ３１からデータを受信したと判定した場合は、受信したデータを含むパケット形式データを作成する（ステップＳ１２）。このステップＳ１２では、ＮＷコネクタ２０は、図３（Ａ）に示すように、転送先アドレス、転送元アドレス、コマンド、ステータス、転送履歴、送信時刻、データ、及びＣＲＣを含むパケット形式データを作成する。このうち、転送元アドレスは、自己のＮＷコネクタ２０に接続されるＣＰＵ３１のアドレスであるため、ＣＰＵ３１のアドレス番号に対応するビットが立てられることになる。また、ＮＷコネクタ２０で作成されて送信されるパケット形式データは、共有Ｉ／Ｏポート１０に送信されるため、転送先アドレスは、共有Ｉ／Ｏポート１０のアドレスに対応するビット１が立てられることになる。
【００７１】
次いで、ＮＷコネクタ２０は、自己よりも論理レベルが一つ低いＮＷコネクタ２０のうちのいずれかのＮＷコネクタ２０にパケット形式データを送信する（ステップＳ１３）。ＮＷコネクタ２０は、自己に接続されているＮＷコネクタ２０のマップ（物理的なマップと論理的なマップ）を有しており、このマップと転送先アドレスとを用いて送信先を選択する。これにより、最終的にデータが送られるＮＷコネクタ２０までの通信路に含まれるＮＷコネクタ２０が送信先として選択される。
【００７２】
ＮＷコネクタ２０は、ステップＳ１３の送信処理が終了すると、自己に接続されたＣＰＵ３１に割り込み処理を掛け、送信が完了した旨をＣＰＵ３１に通知する（ステップＳ１４）。
【００７３】
以上により、本実施の形態のマルチプロセッサシステム１００において、ＣＰＵ３１からデータを受け取ったＮＷコネクタ２０が他のＮＷコネクタ２０にパケット形式データを転送する場合の処理が終了する。
【００７４】
なお、図５では、各プロセッサ３０に接続されるＮＷコネクタ２０の処理内容について説明したが、共有Ｉ／Ｏポート１０のＮＷコネクタ２０Ａは、共有Ｉ／Ｏポート１０から受け取ったデータをパケット形式データに変換して送信を行う点において基本的に同一である。
【００７５】
また、最端のノードとなる一番論理レベルの高いＮＷコネクタ２０は、自己に接続されたプロセッサ３０のＣＰＵ３１宛でないパケット形式データが転送された場合には、そのパケット形式データを破棄する。また、同様に、共有Ｉ／Ｏポート１０のＮＷコネクタ２０Ａは、共有Ｉ／Ｏポート１０宛ではないパケット形式データが転送された場合には、そのパケット形式データを破棄する。
【００７６】
次に、図６を用いて、本実施の形態のマルチプロセッサシステム１００で用いるＮＷコネクタ２０同士の間でのパケット形式データの送受信、プロセッサ３０とのデータの書き込み／読み出しについて説明する。
【００７７】
図６（Ａ）は、本実施の形態のマルチプロセッサシステム１００で用いるＮＷコネクタ２０同士の間でのパケット形式データの送受信を説明するための図である。図６（Ｂ）は、本実施の形態のマルチプロセッサシステム１００で用いるＮＷコネクタ２０にパケット形式データが転送された場合のＮＷコネクタ２０での処理を説明するための図である。図６（Ｃ）は、本実施の形態のマルチプロセッサシステム１００で用いるＮＷコネクタ２０がプロセッサ３０からデータを読み出す処理を説明するための図である。
【００７８】
図６（Ａ）に示すように、本実施の形態のマルチプロセッサシステム１００で用いるＮＷコネクタ２０同士の間でのパケット形式データの送受信は、論理レベルｎ（ｎは自然数）のＮＷコネクタ２０と、論理レベルｎ＋１のＮＷコネクタ２０との間で双方向に行われる。
【００７９】
ＮＷコネクタ２０同士の間の通信は、ＮＷコネクタ２０の内部の演算処理部によって実行され、ＣＰＵ３１が処理を行う必要はない。このため、ＣＰＵ３１は、通信処理のために処理を中断する必要がない。
【００８０】
また、ＮＷコネクタ２０同士の間の通信はパケット単位で行われるため、通信処理を簡略化することができる。
【００８１】
なお、このようなＮＷコネクタ２０同士の間でのパケット形式データの送受信は、論理レベル１のＮＷコネクタ２０と、論理レベル０の共有Ｉ／Ｏポート１０との間でも同様に行われる。
【００８２】
ここで、共有Ｉ／Ｏポート１０は、パケット形式データ（図３（Ａ）参照）を監視しており、送信時刻から所定の時間以上経過したパケット形式データを廃棄する。これは、いずれかのＮＷコネクタ２０から共有Ｉ／Ｏポート１０に転送されたパケット形式データが、転送過程でのエラー等により、共有Ｉ／Ｏポート１０によって受信されない状態が生じた場合に対応するためである。
【００８３】
なお、送信時刻から所定の時間以上経過したパケット形式データの廃棄処理は、共有Ｉ／Ｏポート１０内のＮＷコネクタ２０Ａが行うようにしてもよい。
【００８４】
また、図６（Ｂ）に示すように、ＮＷコネクタ２０にパケット形式データが転送された場合は、ＮＷコネクタ２０が転送先アドレスを読み込み、自己に接続されたＣＰＵ３１のアドレス番号と一致しなければ、転送元アドレスを自己に接続されたＣＰＵ３１のアドレス番号に書き換えて、次の論理レベルのＮＷコネクタ２０に転送する。また、転送先アドレスと自己に接続されたＣＰＵ３１のアドレス番号とが一致した場合は、ＮＷコネクタ２０が実行するＣＲＣで正常と判定した場合にのみ、メモリ３２にデータを書き込む。なお、既に受信したパケット形式データと送信時刻が一致する場合は、ＮＷコネクタ２０は、書き込みを行わずに、そのパケット形式データを破棄する。これらは、図４に示すフローによって実現される処理である。
【００８５】
また、図６（Ｃ）に示すように、ＮＷコネクタ２０がプロセッサ３０からデータを読み出す場合は、ＮＷコネクタ２０はメモリ３２からデータを読み出し、パケット形式に変換し、転送先を共有Ｉ／Ｏポート１０のアドレス番号に設定して（ビット１を立てて）、論理レベルが一つ下のＮＷコネクタ２０に送信する。これは、図５に示すフローによって実現される処理である。
【００８６】
以上、本実施の形態のマルチプロセッサシステム１００によれば、すべてのＣＰＵ３１が共有する共有Ｉ／Ｏポート１０を設けることにより、プロセッサ毎にＩ／Ｏポートを設ける必要がなくなった。このため、マルチプロセッサシステムの小型化を図ることができ、コストアップも抑制することができる。
【００８７】
また、プロセッサの数が増加しても、マルチプロセッサシステムの小型化を図ることができ、コストダウンを図ることができる。また、チップの筐体を小型化してコストダウンを図ることができる。
【００８８】
また、パケット形式データの転送はＮＷコネクタ２０同士の間で行われ、ＣＰＵ３１は転送処理には関わらないので、転送に際してＣＰＵ３１の処理を中断する必要がなく、処理の高速化が可能になる。
【００８９】
また、従来のマルチプロセッサシステムでは、各プロセッサに設けられたＩ／ＯポートのドライバがＩ／Ｏポートの種類に応じたソフトウェア（プログラム）を有する必要があったが、本実施の形態のマルチプロセッサシステム１００では、ＣＰＵ３１が転送処理には関わらないので、共有Ｉ／Ｏポート１０だけがマルチプロセッサシステム１００に接続されるＣＡＮシステム等との間でデータの入出力処理を行うためのソフトウェア（プログラム）を有していればよい。このため、システムの簡略化を図ることができる。
【００９０】
また、各プロセッサ３０にＮＷコネクタ２０を配したことにより、共有Ｉ／Ｏポート１０から見ると、各プロセッサ３０が隠蔽されたことになるので、通信を暗号化する場合には共有Ｉ／Ｏポート１０とＮＷコネクタ２０との間だけを暗号化すれば済むため、従来よりも暗号化処理を容易に行うことができる。
【００９１】
以上では、１つのＮＷコネクタ２０に１つのプロセッサ３０が接続される形態について説明したが、ＮＷコネクタ２０とプロセッサ３０は必ずしも１対１である必要はなく、１つのＮＷコネクタ２０に複数のプロセッサ３０が接続されていてもよい。例えば、ＮＷコネクタ２０に２つのプロセッサ３０が接続されている場合は、ＮＷコネクタ２０で２つのプロセッサ３０のアドレスを識別可能に構成されていればよい。
【００９２】
また、本実施の形態のマルチプロセッサシステム１００は、内燃機関を動力源とする車両に限らず、ＨＶ（Hybrid  Vehicle）車両又はＥＶ（Electric  Vehicle）車両にも適用することができる。また、車両のＥＣＵに限らず、種々の情報処理装置に適用することができる。
【００９３】
以上、本発明の例示的な実施の形態のマルチプロセッサシステムについて説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００９４】
１０  共有Ｉ／Ｏポート
１５  通信路
２０  ＮＷコネクタ
３０  プロセッサ
３１  ＣＰＵ
３２  メモリ
３３  タイマ
１００  マルチプロセッサシステム
【図１】
2011159130.tif 000003
【図２】
2011159130.tif 000004
【図３】
2011159130.tif 000005
【図４】
2011159130.tif 000006
【図５】
2011159130.tif 000007
【図６】
2011159130.tif 000008