(57)【特許請求の範囲】
【請求項１】
１以上のコアを有する複数の固定コア群、及び、複数のコアを有するプールコア群、を有するマルチコアシステムにおいて、
前記固定コア群はそれぞれ専用メモリと接続され、前記プールコア群は全ての前記専用メモリと接続されており、
前記複数の固定コア群のうちの少なくとも１つ以上の所定固定コア群が実行する複数の処理の１つ以上を割り当てられた前記プールコア群の１以上の割り当てコアは、処理が割り当てられた前記所定固定コア群と接続された専用メモリのみにアクセスして割り当てられた処理を実行し、
前記所定固定コア群の１つ以上のコア、及び、前記所定固定コア群以外の固定コア群の１つ以上のコアは、それぞれの前記専用メモリへアクセスして各固定コア群が実行する複数の処理の１つ以上を実行し、
前記割り当てコア以外の前記プールコア群の１以上のコアは、前記所定固定コア群が該所定固定コア群と接続された前記専用メモリに記憶したデータを読み出して、前記所定固定コア群以外の固定コア群と接続された前記専用メモリに記憶し、又は、前記所定固定コア群以外の固定コア群が該固定コア群と接続された前記専用メモリに記憶したデータを読み出して、前記所定固定コア群と接続された前記専用メモリ若しくは読み出し元の前記専用メモリとは別の前記専用メモリに記憶する、
ことを特徴とするマルチコアシステム。
【請求項２】
前記割り当てコア以外の前記プールコア群のコアによりファイアウォールを実現する、ことを特徴とする請求項１記載のマルチコアシステム。
【請求項３】
前記割り当てコアの数、又は、前記専用メモリから別の前記専用メモリにデータを書き込む前記割り当てコア以外の前記プールコア群のコアの数は可変である、ことを特徴とする請求項１又は２記載のマルチコアシステム。
【請求項４】
前記プールコア群のコアは汎用コアである、ことを特徴とする請求項１〜３いずれか１項記載のマルチコアシステム。
【請求項５】
前記割り当てコアの数、又は、前記専用メモリから別の前記専用メモリにデータを書き込む前記割り当てコア以外の前記プールコア群のコアの数は、記憶部に記憶された設定情報により指定される、ことを特徴とする請求項３記載のマルチコアシステム。
【請求項６】
前記割り当てコアの数は、前記割り当てコアに処理が割り当てられる前記所定固定コア群の負荷状態に応じて動的に変更される、ことを特徴とする請求項３記載のマルチコアシステム。
【請求項７】
前記複数の固定コア群、前記プールコア群及び前記専用メモリが１チップにパッケージされている、ことを特徴とする請求項１〜６いずれか１項記載のマルチコアシステム。
【請求項８】
前記複数の固定コア群、前記プールコア群及び前記専用メモリのそれぞれが１チップにパッケージされている、ことを特徴とする請求項１〜６いずれか１項記載のマルチコアシステム。
【請求項９】
請求項１〜８いずれか１項記載のマルチコアシステムを有し、
該マルチコアシステムが、車載装置と外部との情報の送受信を中継する中継処理部を実現する、ことを特徴とする車両用ゲートウェイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコアを有するマルチコアシステムに関し、特に、コアをゾーンに分割しゾーン毎のコア数を可変としたマルチコアシステムに関する。
【背景技術】
【０００２】
１つのダイに１つのＣＰＵコアを搭載するシングルコアに対し、消費電力やリーク電流の低減、発熱抑制等のために、１つのダイに複数のＣＰＵコアを搭載するマルチコアシステムが知られている。マルチコアシステムは、ジョブに割り当てるＣＰＵコアの数により処理効率が増減するので、実行ジョブに応じて必要な個数のＣＰＵコアを割り当てる技術が提案されている（例えば、特許文献１参照。）。特許文献１には、ジョブクラス定義表に、ジョブクラス毎に同時使用されるＣＰＵコア数を登録しておき、管理プログラムが実行ジョブ毎に所定数のＣＰＵコアを割り当てるマルチコアシステムが記載されている。
【特許文献１】特許第３５４１２１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１記載のマルチコアシステムは単に所定数のＣＰＵコア数を割り当てるだけなので、異なる実行ジョブに割り当てられたＣＰＵコアのグループ（以下、ゾーンという）が他のゾーンと同じメモリにアクセスするおそれがある等、ゾーン間のデータ保護が十分でないという問題がある。例えば、マルチコアシステムにファイアウォールサーバの機能を実装し、１チップでファイアウォールのポリシーを動的に変更すると共にフィルタリングの高速化を図ることを考慮した場合、ゾーン間のデータアクセスが容易であるとセキュリティを確保しにくい。
【０００４】
本発明は、上記課題に鑑み、ゾーン毎のＣＰＵコア数を可変なマルチコアプロセッサシステムであって、ゾーン間のデータ保護を向上させたマルチコアシステム及び車両用ゲートウェイ装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題に鑑み、本発明は、１以上のコアを有する複数の固定コア群、及び、複数のコアを有するプールコア群、を有するマルチコアシステムにおいて、前記固定コア群はそれぞれ専用メモリと接続され、前記プールコア群は全ての前記専用メモリと接続されており、  前記複数の固定コア群のうちの少なくとも１つ以上の所定固定コア群が実行する複数の処理の1つ以上を割り当てられた前記プールコア群の１以上の割り当てコアは、処理が割り当てられた前記所定固定コア群と接続された専用メモリのみにアクセスして割り当てられた複数の処理の１つ以上を実行し、前記所定固定コア群の１つ以上のコア、及び、前記所定固定コア群以外の固定コア群の１つ以上のコアは、それぞれの前記専用メモリへアクセスして各固定コア群が実行する複数の処理の１つ以上を実行し、前記割り当てコア以外の前記プールコア群の１以上のコアは、前記所定固定コア群が該所定固定コア群と接続された前記専用メモリに記憶したデータを読み出して、前記所定固定コア群以外の固定コア群と接続された前記専用メモリに記憶し、又は、前記所定固定コア群以外の固定コア群が該固定コア群と接続された前記専用メモリに記憶したデータを読み出して、前記所定固定コア群と接続された前記専用メモリ若しくは読み出し元の前記専用メモリとは別の前記専用メモリに記憶する、ことを特徴とする。
【０００６】
本発明によれば、固定コア群では処理負荷が高い場合、プールコア群のコアを利用して処理できるのでマルチコアシステム全体の処理負荷を低減できる。また、固定コア群はそれぞれ専用メモリを有するので、固定コア群の間のセキュリティを確保しやすい。
【０００７】
また、本発明の一形態において、前記割り当てコア以外の前記プールコア群のコアによりファイアウォールを実現する、ことを特徴とする、ことを特徴とする。
【０００８】
本発明によれば、プールコア群がファイアウォールの機能を果たすので、固定コア群の間のセキュリティを確保できる。
【０００９】
前記割り当てコアの数、又は、前記専用メモリから別の前記専用メモリにデータを書き込む前記割り当てコア以外の前記プールコア群のコアの数は可変である、ことを特徴とする。本発明によれば、固定コア群が利用するコアの数を可変にできるので、データ処理量やハードウェアの変更（追加・削除）があっても、柔軟に対応することができる。
【００１０】
前記プールコア群のコアは汎用コアである、ことを特徴とする請求項１〜３いずれか１項記載のマルチコアシステム。本発明によれば、プールコア群で一般的なOSを実行できるので、ソフトウェアの移植性を高めることができる。
【００１１】
また、前記割り当てコアの数、又は、前記専用メモリから別の前記専用メモリにデータを書き込む前記割り当てコア以外の前記プールコア群のコアの数は、記憶部に記憶された設定情報により指定される、ことを特徴とする。本発明によれば、外部からコアＡの数及びコアＢの数を指定することができる。
【００１２】
前記割り当てコアの数は、前記割り当てコアに処理が割り当てられる前記所定固定コア群の負荷状態に応じて動的に変更される、ことを特徴とする。
【００１３】
本発明によれば、処理負荷によって必要最低限のコア数を確保できるため、他方の固定コア群から処理依頼が発生した場合でも、先に処理依頼した固定コア群がプールコア群のコアを占有することを防止できる。
【発明の効果】
【００１４】
ゾーン毎のＣＰＵコア数を可変なマルチコアプロセッサシステムであって、ゾーン間のデータ保護を向上させたマルチコアシステム及び車両用ゲートウェイ装置を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明を実施するための最良の形態について図面を参照しながら、実施例を挙げて説明する。
【実施例１】
【００１６】
図１は、本実施例のマルチコアシステム１００の構成図を示す。図１に示すように、本実施形態のマルチコアシステムは複数のコンピューティングゾーンＡとＢに分割され、コンピューティングゾーンＡ、Ｂのコア数を増減できると共に、ルーティングゾーン１４を経由してコンピューティングゾーンＡとＢの間でデータを受け渡すことで、ゾーン間を互いに保護する（以下、コンピューティングゾーンＡ、コンピューティングゾーンＢ及びルーティングゾーン１４を区別しない場合、単にゾーンという）。
【００１７】
図１のマルチコアシステム１００は、１つのダイ（以下、チップという）内に複数のＣＰＵコア及び複数のキャッシュを有する１チップ型である。マルチコアシステム１００は、１以上のＣＰＵコアを有するゾーン固定コア群１１Ａ、キャッシュ１３Ａ、複数のＣＰＵコアを有するプールゾーンコア群１２、１以上のＣＰＵコアを有するゾーン固定コア群１１Ｂ及びキャッシュ１３Ｂを備える。各ＣＰＵコアは演算回路（ＡＬＵ（Arithmetic  Logic  Unit））、プログラムカウンタ、内部キャッシュ及びレジスタ等を有する。
【００１８】
かかる構成において、マルチコアシステム１００は、例えば予め記憶されているコア構成情報１６に基づき、プールゾーンコア群１２のＣＰＵコアをゾーン固定コア群１１Ａ又はゾーン固定コア群１１Ｂのどちらに属するかを設定する（いずれにも割り当てられないＣＰＵコアがあり、割り当てられないＣＰＵコアが特許請求の範囲におけるＣＰＵコアＲに相当する。）。これにより、ゾーン固定コア群１１ＡのＣＰＵコアとプールゾーンコア群１２のＣＰＵコアが１つのコンピューティングゾーンＡを形成し、ゾーン固定コア群１１ＢのＣＰＵコアとプールゾーンコア群１２のＣＰＵコアが１つのコンピューティングゾーンＢを形成する。コンピューティングゾーンＡの各ＣＰＵコア、及び、コンピューティングゾーンＢの各ＣＰＵコアは、協働して一連の処理を実行する。
【００１９】
したがって、例えば所定の一連の処理に割り当てられる１つのゾーンに含まれるＣＰＵコアの数を増減することができる。なお、一連の処理とは、１つのＯＳや単一の機能を意味するのでなく、１つのＯＳ上の複数の処理、複数のＯＳを実行した場合のそれぞれのＯＳ上で実行される複数の処理を含む。ＯＳ上で仮想マシン（例えば、Java（登録商標）  VM）を実行してもよく、この場合、ＯＳに固有の実行環境を仮想マシンが吸収するので汎用コアに要請される汎用性を低くできる。
【００２０】
コア構成情報１６は、プールゾーンコア群１２の不揮発メモリに予め記憶されている。コア構成情報１６は例えば起動時の初期状態を定める。これにより、起動時にコンピューティングゾーンＡ及びＢに割り当てるＣＰＵコアの数を定めておくことができる。
【００２１】
図２（ａ）は、コア構成情報１６の一例を示す。図２（ａ）では各ＣＰＵコア毎に、コンピューティングゾーンＡ、コンピューティングゾーンＢ、又は、ルーティングゾーン１４への割り当てが定められている。
【００２２】
また、コア構成情報１６を外部から送信して記憶可能としてもよい。これにより、ＣＰＵコアの割り当てを外部から指定でき、コンピューティングゾーンＡ及びＢに割り当てるＣＰＵコアの数を可変にできる。
【００２３】
また、図２（ｂ）では、コンピューティングゾーンＡ、コンピューティングゾーンＢ、及び、ルーティングゾーン１４に割り当てられる初期状態のＣＰＵコアの個数が定められ、さらに増減の範囲が指定されている。図２（ｂ）のようなコア構成情報１６であれば、コンピューティングゾーンＡとＢに割り当てられる下限及び上限の数を保ちながら、負荷の大きい処理に割り当てられるＣＰＵコアの数を多くすることができる。なお、ＣＰＵコアの個数でなくパーセンテージなどの割り当て率で初期状態、下限及び上限のコア構成情報１６を定めてもよい。
【００２４】
また、図２（ａ）又は図２（ｂ）のように、初期状態のコンピューティングゾーンＡ及びＢに割り当てるＣＰＵコアの数をコア構成情報１６に設定することなく、プールゾーンコア群１２のルーティングゾーン１４に割り当てる最低１個のＣＰＵコア（特許請求の範囲のＣＰＵコアＲに相当）以外の全てを未割り当てにしておき、負荷状況に応じてコンピューティングゾーンＡ、Ｂ又はルーティングゾーン１４にＣＰＵコアを割り当ててもよい。
【００２５】
なお、図２（ａ）（ｂ）ではルーティングゾーン１４の割り当ても定めているが、コンピューティングゾーンＡ、Ｂのいずれにも割り当てられないＣＰＵコアをルーティングゾーン１４に割り当ててもよい。この場合、コア構成情報１６の容量を抑制できる。
【００２６】
キャッシュ１３Ａは固定ゾーンコア群１１Ａに専用のキャッシュメモリであり、キャッシュ１３Ｂは固定ゾーンコア群１１Ｂに専用のキャッシュメモリである。コンピューティングゾーンＡに割り当てられたプールゾーンコア群１２のＣＰＵコアは、キャッシュ１３Ａにのみアクセスすることが可能で、コンピューティングゾーンＢに割り当てられたプールゾーンコア群１２のＣＰＵコアは、キャッシュ１３Ｂにのみアクセスすることが可能である。したがって、プールゾーンコア群１２のＣＰＵコアが属するゾーンを可変にしても、処理の最中にコンピューティングゾーンＡからＢ（又はその逆）に直接、データ通信することはない。
【００２７】
また、プールゾーンコア群１２のＣＰＵコアは全てのキャッシュ１３Ａ及び１３Ｂに接続されている。そして、プールゾーンコア群１２はコンピューティングゾーンＡ又はＢのいずれにも割り当てられないＣＰＵコアにより、ルーティングゾーン１４を構成する。ルーティングゾーン１４のＣＰＵコアはキャッシュ１３Ａから１３Ｂ、又は、キャッシュ１３Ｂから１３Ａへのデータ通信を担い、コンピューティングゾーンＡとＢ間のデータ通信はルーティングゾーン１４にのみが実行できる。なお、ルーティングゾーン１４のＣＰＵコアの数も可変である。
【００２８】
ところで、マルチコアシステム１００では、少なくともプールゾーンコア群１２のＣＰＵコアは汎用コアで構成される。汎用コアとは例えば一般的なＯＳ（例えば、LINUX（登録商標）、Window（登録商標）、UNIX（登録商標））が稼働することをいい、必ずしも市場シェアや出荷数が多いことを意味しない。ゾーン固定コア群１１Ａと１１ＢのＣＰＵコアは汎用コアでもよいし、特定の処理に特化された専用コアでもよい。
【００２９】
また、ゾーン固定コア群１１Ａ又は１１ＢのＣＰＵコアは、それぞれが同じアーキテクチャのホモジニアスでもよいし、異なるアーキテクチャを用いたヘテロジニアスでもよい。プールゾーンコア群１２は全てが汎用コアのホモジニアスとなる。
【００３０】
かかる構成により、ゾーン間のデータ通信では必ずプールゾーンコア群１２を経由するので、ゾーン間のセキュリティを向上させることができる。コンピューティングゾーンＡ又はＢのＣＰＵコア数を増加できるので、負荷の変動に柔軟に対応することができる。ルーティングゾーン１４に割り当てるＣＰＵコアの数を増加させることができるので、ゾーン間のデータ通信の品質を向上できる。また、プールゾーンコア群１２のＣＰＵコアは、一般的なＯＳを動作させることができるので一般的なサーバのソフトウェア（例えば、ファイアウォール）を容易に移植することができる。
【００３１】
〔車両への適用例〕
マルチコアシステム１００の車両への適用例について説明する。図３（ａ）は、マルチコアシステム１００を有する車両用システム２００の概略図を示す。図２の車両用システム２００はマルチコアシステム１００により制御され、マルチコアシステム１００はプリント基板１１０に、Ｉ／Ｏ２７Ａ、２７Ｂ、外部メモリ１５Ａ、１５Ｂと共に固定されている。Ｉ／Ｏ２７Ａは、ＣＡＮ（controller  area  network）や専用線を介して通信装置２１と接続され、Ｉ／Ｏ２７Ｂは同様に車載装置２２と接続されている。
【００３２】
通信装置２１は、例えば携帯電話の基地局や無線ＬＡＮのアクセスポイントに接続して所定のサーバとの通信して交通情報や地図データ等の情報を受信する。路車間通信や車車間通信してもよい。例えば、携帯電話の基地局と通信する場合、通信装置２１は、例えば８００ＭＨｚ帯の無線電波を受信し、増幅、フィルタ処理、歪み補正等を行いベースバンド信号を取り出し、ＱＰＳＫ等に従い復調したあと、エラー訂正、プロトコル処理を行うことで情報を受信する。また、情報の送信時には、情報にプロトコル処理、誤り訂正処理、ベースバンド信号の生成処理、搬送波とのミキシング等を施し、この変調波をアンプで増幅してアンテナから送信する。
【００３３】
車載装置２２は、例えばエンジンやブレーキ等の制御系、メータ表示やドアのロック等のボディ系、ナビゲーション装置等の車載装置であり、マルチコアシステム１００により制御されるか又はマルチコアシステム１００が受信した情報を利用した制御を実行する。すなわち、車載装置２２はモータなど被制御装置及びＥＣＵ（Electronic  Control  Unit）などの制御装置を含む。
【００３４】
車両用システム２００の動作手順を図４のフローチャート図に基づき説明する。図４の動作手順では、プールゾーンコア群１２のＣＰＵコアの割り当てを動的に切り替える態様とした。
【００３５】
例えば、イグニッションオンによりマルチコアシステム１００が起動すると、プールゾーンコア群１２の各ＣＰＵコアはコア構成情報１６を読み出し、コンピューティングゾーンＡ、コンピューティングゾーンＢ及びルーティングゾーン１４のいずれに属するかを決定する（Ｓ１０）。
【００３６】
ゾーンが決定したら、コンピューティングゾーンＡ、コンピューティングゾーンＢ及びルーティングゾーン１４にそれぞれ定められた処理を実行するため、外部メモリ１５Ａ又は１５Ｂに記憶されたプログラムを読み出す（Ｓ２０）。本実施形態では、コンピューティングゾーンＡはサーバとの情報送受信部２３を実現し、コンピューティングゾーンＢは車載装置２２を制御する制御部２５を実現し、ルーティングゾーン１４はゲートウェイ２６及びリソース分配部２４を実現する。
【００３７】
図３（ｂ）は車両用システム２００の機能ブロック図を示す。起動後は、各機能ブロックが次述する処理をそれぞれ実行する（Ｓ３０）。機能ブロックの処理について説明する。
【００３８】
情報送受信部２３は、例えば、通信装置２１が基地局と通信可能な状態か否かを判定し、可能であればサーバから交通情報や道路地図の更新情報等のデータを受信する。
【００３９】
ゲートウェイ２６は、主にデータのフォーマット変換やフィルタリングを行いサーバと車載装置２２で送受信されるデータ構成や伝送速度の相違を吸収する（以下、中継処理という）。例えば、サーバから送信されるデータにＣＡＮ用のヘッダやエラー訂正符号を付し、所定のデータフレームを生成するフォーマット変換を施す。また、サーバから送信されるデータを全ての車載装置２２が必要とするわけでないので、予め定められたフィルタリングルールに則って所定の車載装置２２を指定する送信先情報をヘッダに含める。逆に、車両からサーバに情報を送信する場合、ＣＡＮ用のデータフレームからヘッダやエラー訂正符号等を削除しデータのみを取り出す。
【００４０】
ゲートウェイ２６は中継処理を施したデータを中継する場合、情報送受信部２３からデータが記憶されたキャッシュ１３Ａのアドレスを取得し、キャッシュ１３Ａから読み出したデータをキャッシュ１３Ｂに記憶する。制御部２５はキャッシュ１３Ｂのデータを読み出し、データに基づき車載装置２２を制御する。例えば、データが前方の見通しの悪いカーブの渋滞を知らせる情報であれば、ブレーキＥＣＵによる制動やメータランプの点灯等により運転者に注意喚起する。
【００４１】
また、車両がプローブカーとして自車両の車速及び位置情報をサーバに送信する場合、制御部２５は車載装置２２から所定のサイクル時間毎に車速と位置情報を取得し、ゲートウェイ２６に中継要求する。ゲートウェイ２６は制御部２５からデータが記憶されたキャッシュ１３Ｂのアドレスを取得し、キャッシュ１３Ｂから読み出したデータをキャッシュ１３Ａに記憶し、情報送受信部２３にサーバへの送信を要求する。
【００４２】
このように、コンピューティングゾーンＡとＢは共有メモリを介して通信するので、高速なデータ通信が可能である。
【００４３】
また、リソース分配部２４は、コンピューティングゾーンＡ及びＢの負荷状態を監視し、プールゾーンコア群１２のリソースをコンピューティングゾーンＡ及びＢに分配する（Ｓ４０）。なお、リソース分配部２４はゲートウェイ２６と同じＣＰＵコアが実行するプログラムにより実現できるので、ルーティングゾーン１４のＣＰＵコアは１つであってもよい。
【００４４】
リソース分配部２４は、コンピューティングゾーンＡの各ＣＰＵコアのＣＰＵ負荷率の例えば平均、コンピューティングゾーンＢの各ＣＰＵコアのＣＰＵ負荷率の例えば平均、を所定時間毎に算出し、プールゾーンコア群１２のＣＰＵコアをコンピューティングゾーンＡ又はＢに分配する。
【００４５】
・コンピューティングゾーンＡのＣＰＵ負荷率＞＞コンピューティングゾーンＢのＣＰＵ負荷率の場合
プールゾーンコア群１２に未割り当てのＣＰＵコアがある場合、リソース分配部２４は未割り当てのＣＰＵコアをコンピューティングゾーンＡに割り当てる。プールゾーンコア群１２に未割り当てのＣＰＵコアがない場合、リソース分配部２４はコンピューティングゾーンＢのＣＰＵコアをコンピューティングゾーンＡに割り当てる。
【００４６】
・コンピューティングゾーンＢのＣＰＵ負荷率＞＞コンピューティングゾーンＡのＣＰＵ負荷率の場合
プールゾーンコア群１２に未割り当てのＣＰＵコアがある場合、リソース分配部２４は未割り当てのＣＰＵコアをコンピューティングゾーンＢに割り当てる。プールゾーンコア群１２に未割り当てのＣＰＵコアがない場合、リソース分配部２４はコンピューティングゾーンＡのＣＰＵコアをコンピューティングゾーンＢに割り当てる。
【００４７】
なお、リソース分配部２４がＣＰＵコアの割り当てを判定するのでなく、コンピューティングゾーンＡ又はＢからのリクエストに応じて、プールゾーンコア群１２のＣＰＵコアを分配してもよい。この場合、リソース分配部２４は未割り当てのＣＰＵコアから優先的にリクエストのあったコンピューティングゾーンＡ又はＢに割り当て、未割り当てのＣＰＵコアがない場合、リクエストのない他方のコンピューティングゾーンの許可を受け、リクエストのあったコンピューティングゾーンにＣＰＵコアを割り当てる。
【００４８】
以上のように、マルチコアシステム１００はプールゾーンコア群１２のＣＰＵコアの割り当てを動的に切り替えながら、プログラムを実行する。プールコア群１２のＣＰＵコアは汎用コアであるため種々のプログラムを実行できるので、プログラムの処理負荷に応じてコンピューティングゾーンＡ及びＢに割り当てるＣＰＵコアの数を柔軟に増減することができる。
【００４９】
〔変形例〕
図３（ｂ）では、ルーティングゾーン１４でゲートウェイ２６を実現したが、ゲートウェイ２６でなく又はゲートウェイ２６と共にファイアウォールを実現してもよい。プールゾーンコア群１２のＣＰＵコアは汎用コアなので一般的なＯＳや仮想マシンで稼働するファイアウォール用のプログラムを実行でき移植性が高く、組み込みソフトに適用する上のコスト増を抑制できる。ファイアウォールは、内部から外部のサーバへのアクセスは許可するが、外部からのアクセスは、例えばＩＰパケットのヘッダ情報（アドレス、ポート番号など）に基づき制限する。ルーティングゾーン１４のファイアウォールは、この制限の態様を決定するファイアウォールのポリシーを動的に変更することができる。また、キャッシュ１３Ａ、１３Ｂに連想メモリを実装することで、１チップで高速なファイアウォールを実現できる。
【００５０】
また、本実施例ではコンピューティングゾーンＡ、Ｂの２つとしたが、コンピューティングゾーンは３以上でもよい。図５は３つのコンピューティングゾーンＡ，Ｂ、Ｃを有するマルチコアシステム１００の構成図を示す。なお、図５において図１と同一部分には同一の符号を付しその説明は省略する。
【００５１】
図５では、３つめのゾーン固定コア群１１C及びこれと一対の３つめのキャッシュ１３Ｃを有する。キャッシュ１３Ａ〜１３Ｃはそれぞれ独立しており、プールゾーンコア群１２はキャッシュ１３Ａ〜１３Ｃと接続されているので、上記の実施例と同様にゾーン間のデータ通信を保護することができる。コンピューティングゾーンが４以上でも同様に構成できる。
【００５２】
以上説明したように、マルチコアシステム１００は、ゾーン間のデータ通信を必ずプールゾーンコア群１２を経由するので、ゾーン間のセキュリティを向上させることができる。ゾーン間のデータ通信は、共有メモリ経由なので高速である。
【００５３】
プールゾーンコア群１２のＣＰＵコアの数の範囲内で、コンピューティングゾーンＡ又はＢのＣＰＵコア数を増加できるので、負荷の変動に柔軟に対応することができる。負荷が小さい場合は、いずれのコンピューティングゾーンＡ又はＢにもプールゾーンコア群１２のＣＰＵコアを割り当てないことで消費電力を低減できる。
【００５４】
また、コンピューティングゾーンＡ又はＢに割り当てないＣＰＵコアの数を増大させることで、ルーティングゾーン１４に割り当てるＣＰＵコア数を増加させることができるので、ゾーン間のデータ通信の品質（速度、中継処理、ファイアウォール処理等）を向上できる。
【００５５】
また、プールゾーンコア群１２のＣＰＵコアは、一般的なＯＳを動作させることができるのでソフトウェアの移植性が高い。
【実施例２】
【００５６】
実施例１ではマルチコアシステム１００を１つの半導体パッケージに封止する１チップ構成としたが、マルチコアシステム１００を複数の半導体パッケージに封止して、ＳＯＣ（System  On  a  Chip）又は基板上で実現してもよい。
【００５７】
図６（ａ）はＳＯＣのマルチコアシステム１００の斜視図を、図６（ｂ）は基板上に構成されたマルチコアシステム１００の斜視図をそれぞれ示す。図１と同一部分には同一の符号を付した。図６（ａ）又は（ｂ）のようにマルチコアシステム１００を１チップ構成にしなければ、チップの数を増やせばＣＰＵコアの数を多くすることができるので、回路の集積密度に頼らなくても本実施形態のマルチコアシステム１００を実現しやすくできる。
【００５８】
図７は、本実施例のマルチコアシステム１００の構成図を示す。図７において図１と同一部分には同一の符号を付しその説明は省略する。図７のマルチコアシステム１００は、ゾーン固定コア群１１Ａ、ゾーン固定コア群１１Ｂ、プールゾーンコア群１２、外部メモリ１５Ａ、外部メモリ１５Ｂが別体のチップに構成される。各チップ間は、ＳＯＣではボンディングワイヤ又はフリップチップ等で接続され、基板上ではプリント配線により接続される。
【００５９】
本実施例では、プールゾーンコア群１２が外部メモリ１５Ａ及び外部メモリ１５Ｂと接続されているので、外部メモリ１５Ａ及び１５Ｂを経由してコンピューティングゾーンＡとＢの間でデータ通信される。実施例１では外部メモリ１５Ａ及び１５Ｂでなくキャッシュメモリであったが、これはチップの外のメモリをキャッシュと称さない慣例に従ったもので、外部メモリ１５Ａ、１５Ｂの機能は実施例１のキャッシュ１３Ａ、１３Ｂと同じである。したがって、外部メモリ１５Ａ、１５ＢはＤＲＡＭ、ＦｅＲＡＭ（Ferroelectric  Random  Access  Memory），ＭＲＡＭ（Magnetoresistive  Random  Access  Memory）等、アクセス速度の速いメモリであることが好ましい。なお、各ＣＰＵコアはキャッシュメモリを備える。
【００６０】
また、本実施例では、ゾーン固定コア群１１Ａ、１１Ｂ及びプールゾーンコア群１２のＣＰＵコアは全て汎用コアである。これにより、コンピューティングゾーンＡ及びＢの構成が容易になる。
【００６１】
その他の構成は実施例１と同様である。すなわち、
・ゾーン固定コア群１１ＡのＣＰＵコアとプールゾーンコア群１２のＣＰＵコアが１つのコンピューティングゾーンＡを形成し、ゾーン固定コア群１１ＢのＣＰＵコアとプールゾーンコア群１２のＣＰＵコアが１つのコンピューティングゾーンＢを形成する。
・コア構成情報１６に基づき、プールゾーンコア群１２のＣＰＵコアはゾーン固定コア群１１Ａ又はゾーン固定コア群１１Ｂのどちらに属するかを決定する。
・各コンピューティングゾーンは専用の外部メモリを有する。
・プールゾーンコア群１２のＣＰＵコアは全ての外部メモリ１５Ａ、１５Ｂを共有可能である。
・プールゾーンコア群１２は、コンピューティングゾーンＡ及びＢのいずれにも未割り当てのＣＰＵコアを有し、ルーティングゾーン１４を形成する。
【００６２】
かかる構成により以下の効果を奏する。
・ゾーン間のデータ通信を必ずプールゾーンコア群１２を経由するので、ゾーン間のセキュリティを向上させることができる。
・ゾーン間のデータ通信は、外部メモリ１５Ａ、１５Ｂ経由なので高速である。
・また、コンピューティングゾーンＡ又はＢに割り当てられないＣＰＵコアの数を増大させることで、ルーティングゾーン１４に割り当てるＣＰＵコア数を増加させることができるので、ゾーン間のデータ通信の品質（速度、中継処理、ファイアウォール処理等）を向上できる。
・また、プールゾーンコア群１２のＣＰＵコアは、サーバで実行する一般的なＯＳを動作させることができるので、ソフトウェアの移植性が高い。
・プールゾーンコア群１２のＣＰＵコアの数の範囲内で、コンピューティングゾーンＡ又はＢのＣＰＵコア数を増加できるので、負荷の変動に柔軟に対応することができる。
【図面の簡単な説明】
【００６３】
【図１】マルチコアシステムの構成図である（実施例１）。
【図２】コア構成情報の一例を示す図である。
【図３】マルチコアシステムを有する車両用システムの概略図である。
【図４】マルチコアシステムの動作手順を示すフローチャート図である。
【図５】３つのコンピューティングゾーンを有するマルチコアシステムの構成図である。
【図６】ＳＯＣ又は基板に構成されたマルチコアシステムの斜視図である。
【図７】マルチコアシステムの構成図である（実施例２）。
【符号の説明】
【００６４】
１１Ａ〜Ｃ    ゾーン固定コア群
１２          プールゾーンコア群
１３Ａ〜Ｃ    キャッシュ
１４          ルーティングゾーン
１５Ａ、Ｂ    外部メモリ
１６          コア構成情報
１００        マルチコアシステム
【図１】
0005275673.tif 000002
【図２】
0005275673.tif 000003
【図３】
0005275673.tif 000004
【図４】
0005275673.tif 000005
【図５】
0005275673.tif 000006
【図６】
0005275673.tif 000007
【図７】
0005275673.tif 000008