(57)【要約】【課題】マルチコアプロセッサの割り込み応答特性の向上を達成する。【解決手段】マルチコアプロセッサ８０には、割り込みコントローラ１、排他ロック機構部２、マイクロコントローラユニット３乃至６、及びバス７が設けられる。割り込みコントローラ１は、外部に設けられる入出力部８を介して割り込み要求が入力され、マイクロコントローラユニット３乃至６への割り込み処理を実行する。排他ロック機構部２は、マイクロコントローラユニット３乃至６をロック解放、ロック一時停止、或いはロック獲得の状態に設定する。【選択図】  図１
2011159135.tif 000002
【特許請求の範囲】
【請求項１】
演算処理を実行する複数のマイクロコントローラユニットと、
既にロックが獲得されているマイクロコントローラユニットにロック獲得要求が発生した場合、前記マイクロコントローラユニットへロック獲得失敗の通知を行い、同時に前記マイクロコントローラユニットをロック一時停止の状態に移行し、ロック獲得中のマイクロコントローラユニットがロックを解放したときに、ロック一時停止中の他のマイクロコントローラユニットを直ちにロック状態にする排他ロック機構部と、
を具備することを特徴とするマルチコアプロセッサ。
【請求項２】
演算処理を実行する複数のマイクロコントローラユニットと、
前記マイクロコントローラユニットからのロック獲得要求に対して、ロック獲得或いはロック獲得失敗の判定を行い、判定結果を前記マイクロコントローラユニットへ通知し、ロック獲得失敗の場合、前記マイクロコントローラユニットをロック一時停止の状態に移行する排他ロック機構部と、
割り込み要求に基づいて、前記マイクロコントローラユニットに対して割り込み処理を行い、ロック獲得中或いはロック一時停止中のマイクロコントローラユニットへの割込みが発生した場合、割込み処理を他のマイクロコントローラユニットへ委譲する割込みコントローラと、
を具備することを特徴とするマルチコアプロセッサ。
【請求項３】
前記割込みコントローラは、前記マイクロコントローラユニットがロック獲得すると同時に、ロック獲得期間中での前記マイクロコントローラユニットへの割込み処理を禁止することを特徴とする請求項２に記載のマルチコアプロセッサ。
【請求項４】
前記複数のマイクロコントローラユニット、前記排他ロック機構部、及び前記割込みコントローラは、バスを介して互いに接続されることを特徴とする請求項２又は３に記載のマルチコアプロセッサ。
【請求項５】
前記マイクロコントローラユニットには、プロセッサコアと内部割込みコントローラが設けられることを特徴とする請求項１乃至４のいずれか１項に記載のマルチコアプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチコアプロセッサに関する。
【背景技術】
【０００２】
マルチコアプロセッサでは、各プロセッサコアからある共有変数にアクセスする場合には排他ロックが通常使用される（例えば、特許文献１参照。）。
【０００３】
特許文献１に記載されるマルチコアプロセッサでは、ロック獲得後に排他ロックがクリティカルセクションとして実行される。ところが、実際にはロック獲得による排他性は他プロセッサコアからのアクセスだけである。ロック獲得したプロセッサコアからの割り込みは別途禁止する必要がある。このため、割り込み禁止にしてプロセッサコアを動作させた場合、割り込み応答性能の劣化につながるという問題点がある。また、排他ロックは、通常ロックが取得できるまでスピンロックにてロック変数を監視する必要がある。ただ監視するだけなのにＣＰＵ（Central Processing Unit）が駆動し続けるので、消費電力が増大するという問題点がある。また、処理性能の側面においても監視のために常にバスを利用することになるため、他のプロセッサコアコアによるアクセスを妨げる結果となり、マルチコアプロセッサの性能が劣化するという問題点がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１８５３４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、割り込み応答特性が向上したマルチコアプロセッサを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一態様のマルチコアプロセッサは、演算処理を実行する複数のマイクロコントローラユニットと、既にロックが獲得されているマイクロコントローラユニットにロック獲得要求が発生した場合、前記マイクロコントローラユニットへロック獲得失敗の通知を行い、同時に前記マイクロコントローラユニットをロック一時停止の状態に移行し、ロック獲得中のマイクロコントローラユニットがロックを解放したときに、ロック一時停止中の他のマイクロコントローラユニットを直ちにロック状態にする排他ロック機構部とを具備することを特徴とする。
【０００７】
更に、本発明の他態様のマルチコアプロセッサは、演算処理を実行する複数のマイクロコントローラユニットと、前記マイクロコントローラユニットからのロック獲得要求に対して、ロック獲得或いはロック獲得失敗の判定を行い、判定結果を前記マイクロコントローラユニットへ通知し、ロック獲得失敗の場合、前記マイクロコントローラユニットをロック一時停止の状態に移行する排他ロック機構部と、割り込み要求に基づいて、前記マイクロコントローラユニットに対して割り込み処理を行い、ロック獲得中或いはロック一時停止中のマイクロコントローラユニットへの割込みが発生した場合、割込み処理を他のマイクロコントローラユニットへ委譲する割込みコントローラとを具備することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、割り込み応答特性が向上したマルチコアプロセッサを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施例１に係るマルチコアプロセッサを示すブロック図。
【図２】本発明の実施例１に係るプロセッサコアのロック状態の管理テーブル例を示す図。
【図３】本発明の実施例１に係る排他ロック機構部の動作説明図、図３（ａ）は排他ロック機構部のコミュニケーション例を示す図、図３（ｂ）はコミュニケーション例を示すフローチャート。
【図４】本発明の実施例１に係る処理シーケンス例を示す図。
【図５】本発明の実施例１に係るロック獲得処理を示す模式図。
【図６】本発明の実施例１に係るロック獲得処理における消費電力を示す模式図。
【図７】本発明の実施例１に係る割り込みコントローラと排他ロック機構部の関係を示す図。
【図８】本発明の実施例１に係るロック期間中に割り込みが発生した場合の処理を示す模式図。
【図９】本発明の実施例１に係る割り込み要求処理例を示す図。
【図１０】本発明の実施例２に係るマルチコアプロセッサを示すブロック図。
【図１１】本発明の実施例２に係るプロセッサコアのロック状態の管理テーブル例を示す図。
【図１２】本発明の実施例２に係る該当マイクロコントローラユニットへの割り込み禁止例を示す図。
【発明を実施するための形態】
【００１０】
以下本発明の実施例について図面を参照しながら説明する。
【実施例１】
【００１１】
まず、本発明の実施例１に係るマルチコアプロセッサについて、図面を参照して説明する。図１はマルチコアプロセッサを示すブロック図、図２はプロセッサコアのロック状態の管理テーブル例を示す図である。本実施例では、マルチコアプロセッサに排他ロック機構部と割り込みコントローラを設けている。
【００１２】
図１に示すように、マルチコアプロセッサ８０には、割り込みコントローラ１、排他ロック機構部２、マイクロコントローラユニット（ＭＣＵ  microcontroller unit）３乃至６、及びバス７が設けられる。マルチコアプロセッサ８０は、移動体機器、据え置き型民生機器、パソコン等などに適用される。割り込みコントローラ１、排他ロック機構部２、及びマイクロコントローラユニット３乃至６は、バス７を介して互いに接続される。また、割り込みコントローラ１と排他ロック機構部２の間では、情報のやり取りが行われる。
【００１３】
マルチコアプロセッサ８０のハードウエアとして、割り込みコントローラ１、排他ロック機構部２、マイクロコントローラユニット３乃至６が設けられる。マルチコアプロセッサ８０のソフトウエアとして、ロック獲得、ロック解放、ロック一時停止、及び割り込みの処理が行われる。
【００１４】
マイクロコントローラユニット３には、プロセッサコア１１と内部割込みコントローラ２１が設けられる。マイクロコントローラユニット４には、プロセッサコア１２と内部割込みコントローラ２２が設けられる。マイクロコントローラユニット５には、プロセッサコア１３と内部割込みコントローラ２３が設けられる。マイクロコントローラユニット６には、プロセッサコア１４と内部割込みコントローラ２４が設けられる。プロセッサコア１１乃至１４は、それぞれ演算処理を実行する。内部割込みコントローラ２１乃至２４は、それぞれ割り込み要求に対してプロセッサコアへの割り込み処理を実行する。
【００１５】
割り込みコントローラ１は、マルチコアプロセッサ８０外に設けられる入出力部８を介して割り込み要求が入力され、マイクロコントローラユニット３乃至６への割り込み処理を実行する。
【００１６】
排他ロック機構部２は、プロセッサコア１１乃至１４に対して３つの状態を管理する。図２に示すように、３つの状態とはロック解放中、ロック一時停止中、ロック獲得中である。例えば、プロセッサコア１１及び１４がロック一時停止中、プロセッサコア１２がロック獲得中、プロセッサコア１３がロック解放中である。ロック解放中とは、マイクロコントローラユニットが通常動作中の状態を言う。ロック一時停止とは、低消費電力状態のスタイバイ（例えば、sleepやhaltなど）を含めた状態を総称している。
【００１７】
なお、本実施例ではロックがジャイアントロックである場合について詳述しているので、図２に示す管理テーブルを１つ設けている。複数の種類のロックを使用する場合、各ロック毎に管理テーブルを設けてもよい。
【００１８】
次に、排他ロック機構部２の機能及び役割について図３乃至図６を参照して説明する。
【００１９】
図３は、排他ロック機構部の動作説明図、図３（ａ）は排他ロック機構部のコミュニケーション例を示す図、図３（ｂ）はコミュニケーション例を示すフローチャートである。図４は、処理シーケンス例を示す図である。なお、図４はハードウエアとソフトウエアに機能分類表示したものである。
【００２０】
図３（ｂ）及び図４に示すように、まず、マイクロコントローラユニット３からロック獲得要求が排他ロック機構部２に入力される。ここでは、マイクロコントローラユニット４乃至６から排他ロック機構部２に排他ロック獲得要求がまだ来ていない場合である（ステップＳ１）。
【００２１】
次に、マイクロコントローラユニット３からの排他ロック獲得要求を受けて、排他ロック機構部２がマイクロコントローラユニット３をロック状態する（ステップＳ２）。
【００２２】
続いて、排他ロック機構部２は、マイクロコントローラユニット３のロック獲得通知を割り込みコントローラ１に連絡する（ステップＳ３）。
【００２３】
そして、マイクロコントローラユニット４から排他ロック獲得要求が排他ロック機構部２に入力される（ステップＳ４）。
【００２４】
次に、マイクロコントローラユニット４からの排他ロック獲得要求を受けて、排他ロック機構部２がマイクロコントローラユニット４をロック獲得失敗状態（ロック一時停止状態）にする（ステップＳ５）。
【００２５】
続いて、排他ロック機構部２は、マイクロコントローラユニット４のロック獲得失敗通知を割り込みコントローラ１に連絡する（ステップＳ６）。
【００２６】
そして、マイクロコントローラユニット３がロック解放を行う。マイクロコントローラユニット３から排他ロック解放の連絡が排他ロック機構部２に入力されると、排他ロック機構部２はロック獲得失敗状態（ロック一時停止状態）であるマイクロコントローラユニット４に対してロック一時停止の解除を通知する（ステップＳ７）。
【００２７】
次に、排他ロック機構部２がマイクロコントローラユニット４をロック状態にする（ステップＳ８）。
【００２８】
続いて、排他ロック機構部２は、マイクロコントローラユニット４のロック獲得通知を割り込みコントローラ１に連絡する（ステップＳ９）。
【００２９】
ここで、ロック獲得処理及びロック解放処理のソフトウエアの記述について説明する。ロック獲得のための擬似コードとして、例えば
ｄｏ｛
ａｃｒｕｉｒｅ＿ｌｏｃｋ（ｌｏｃｋ＿ｎｏ）；
ｗｈｉｌｅ（！ｉｓ＿ｌｏｃｋ＿ａｃｑｕｉｒｅｄ（ｌｏｃｋ＿ｎｏ）；
と記述される。
【００３０】
ロック解放のための擬似コードとして、例えば
ｒｅｌｅａｓｅ＿ｌｏｃｋ（ｌｏｃｋ＿ｎｏ）；
と記述される。
【００３１】
図５は、ロック獲得処理を示す模式図である。図５に示すように、本実施例のマルチコアプロセッサ８０では、マイクロコントローラユニット３及び４の一連のロック処理期間が同程度になっている。例えば、ロック獲得中、ロック一時停止中、及びロック解放中の期間が同程度になっている。
【００３２】
次に、マイクロコントローラユニット３及び４からロック獲得要求があった場合を例にしてマルチコアプロセッサの消費電力ついて説明する。図６は、ロック獲得処理における消費電力を示す模式図である。図６に示すように、本実施例では、例えばマイクロコントローラユニット３がロック獲得中の場合にマイクロコントローラユニット４がロック一時停止中となる。マイクロコントローラユニット３がロック解放中（通常処理中）の場合にマイクロコントローラユニット４がロック獲得中となる。
【００３３】
このため、ロック獲得に要する本実施例のマルチコアプロセッサ８０は、ロック獲得、ロック一時停止、及びロック解放の３つの状態が適宜設定されない比較例のマルチコアプロセッサよりも消費電力を１／４削減することができる。
【００３４】
次に、割り込みコントローラ１の委譲ポリシーについて説明する。本実施例のマルチコアプロセッサ８０では、割り込みコントローラ１の委譲有無のポリシー、委譲先のポリシー、及びロック委譲先の優先度が以下のような設定が選択可能となっている。
【００３５】
委譲有無のポリシーは、まず、ロック獲得中のプロセッサコアでは割り込み要求が発生した場合、他のプロセッサコアへ割り込み処理が委譲される。この設定により、割り込み応答特性の向上と排他ロック期間の最小化が図れる。次に、ロック一時停止中のプロセッサコアでは割り込み要求が発生した場合、他のプロセッサコアへ割り込み処理が委譲される。この設定により、低消費電力状態が可能な限り延長される。続いて、ロック獲得中のプロセッサコアでは割り込み要求が禁止される。この設定により、割り込みにより発生する処理（タスク）は自プロセッサコアでしか実行できない場合、委譲せずに割り込み応答特性を犠牲にしても延長した方が効率的となる。
【００３６】
委譲先のポリシーは、まず、ロック獲得中のプロセッサコアでは他のプロセッサコアからの割り込み委譲を受け付けない。この設定により、割り込み応答特性の向上と排他ロック期間の最小化が図れる。次に、ロック一時停止中のプロセッサコアでは他のプロセッサコアからの割り込み委譲を受け付けない。この設定により、低消費電力状態が可能な限り延長される。
【００３７】
ロック委譲先の優先度は、同じ受け付け可能な状態のプロセッサコアが複数あった場合、受け付け優先順位が設定される。
【００３８】
その他のポリシーとして、まず、マスターであるプロセッサコアが割り込み禁止中ではそのプロセッサコアへの割り込み要求はペンディングされる（委譲されない）。次に、全てのプロセッサコアで委譲が受け付けられない状態の場合、委譲そのものがペンディングされる。或いはロック委譲先の優先度が低いプロセッサコアに処理が回される。なお、基本的には他のプロセッサコアから、直接プロセッサ間割り込みの委譲はない。各ポリシーは、割り込み毎に適宜設定してもよいし、各プロセッサコア毎に一意に設定してもよい。
【００３９】
次に、割り込みコントローラ１の機能及び役割について図７乃至図９を参照して説明する。
【００４０】
図７は、割り込みコントローラと排他ロック機構部の関係を示す図である。図７に示すように、割り込みコントローラ１と排他ロック機構部２の間では、プロセッサコアの番号等の情報が共有化される。排他ロック機構部２からは、ロック、一時停止、及び解放の情報が伝達される。割り込みコントローラ１からは、割り込み通知が伝達される。つまり、割り込みコントローラ１は、排他ロック機構部２から各マイクロコントローラユニット３乃至６の少なくとも１つ状態変更があった場合、その情報を受信する。一方、排他ロック機構部２は、割り込みコントローラ１が割り込みの発生の必要性が生じた場合、割り込み通知を受信する。
【００４１】
図８は、ロック期間中に割り込みが発生した場合の処理を示す模式図である。図８に示すように、比較例のマルチコアプロセッサでは、プロセッサコアがロック中で割り込みが許可される場合、ロック期間中のプロセッサコアに割り込み処理が優先的に挿入される。このため、ロック獲得期間が延長される。プロセッサコアがロック中で割り込みが禁止される場合、プロセッサコアのロック獲得期間後に割り込み処理が挿入される。このため、割り込み処理が、例えば数μ秒乃至数十μ秒程度遅延する。
【００４２】
一方、本実施例のマルチコアプロセッサ８０では、例えばプロセッサコア１１がロック期間中に割り込みが発生した場合、ロック期間中ではないプロセッサコア１２に割り込みが委譲され、割り込み要求と同時期にプロセッサコア１２で割り込み処理が開始される。このため、ロック獲得期間の延長も割り込み遅延も発生することがない。
【００４３】
図９は、割り込み要求処理例を示す図である。なお、図９はハードウエアとソフトウエアに機能分類表示し、ロック一時停止中に割り込みを受けても委譲を行わない委譲有無ポリシーで、ロック一時停止中に割り込みが発生した場合の処理を示す図である。また、ロック関連のシーケンスをＳＥ２１ａ乃至２１ｃで示し、割り込み関連のシーケンスをＳＥ２２ａ乃至２２ｅで示している。
【００４４】
図９に示すように、まず、例えばプロセッサコア４から排他ロック機構部２に排他ロック獲得要求が入力される。既に他のプロセッサコアから排他ロック機構部２に排他ロック獲得要求が入力されているので、排他ロック機構部２はロック獲得失敗をプロセッサコア４に通知し、プロセッサコア４をロック一時停止状態とする。排他ロック機構部２はプロセッサコア４のロック獲得失敗について割り込みコントローラ１に通知する。このため、プロセッサコア４のソフトウエア及びハードウエア共ロック一時停止状態となる。
【００４５】
次に、入出力部８から割り込みコントローラ１に割り込み要求が入力されると、委譲有無ポリシーにしたがって以下の処理が行われる。即ち、割り込みコントローラ１はプロセッサコア４に対して割り込みが発生したことを排他ロック機構部２に通知する。排他ロック機構部２はプロセッサコア４に対してロック一時停止状態の解放要求を行う。プロセッサコア４のロック解放後、割り込みコントローラ１はプロセッサコア４に割り込み処理を実行させる。
【００４６】
上述したように、本実施例のマルチコアプロセッサでは、割り込みコントローラ１、排他ロック機構部２、マイクロコントローラユニット３乃至６、及びバス７が設けられる。割り込みコントローラ１、排他ロック機構部２、及びマイクロコントローラユニット３乃至６は、バス７を介して接続される。割り込みコントローラ１は、外部に設けられる入出力部８を介して割り込み要求が入力され、マイクロコントローラユニット３乃至６への割り込み処理を実行する。排他ロック機構部２は、ロック状態の管理テーブルが設けられ、マイクロコントローラユニット３乃至６をロック解放、ロック一時停止、或いはロック獲得の状態に設定する。
【００４７】
このため、ロック獲得中或いはロック一時停止中のマイクロコントローラユニットに割り込み要求が発生した場合、他のマイクロコントローラユニットへ割り込みを委譲するので、割り込み応答特性を向上させることができる。また、ロック獲得中のマイクロコントローラユニットに割り込み要求が発生した場合、割り込みを抑制するので排他ロック期間を最小化することができる。また、ロック獲得できるまでの間の消費電力を抑制することができる。更に、ロック獲得に伴うバス７の使用量を低減することができる。
【００４８】
したがって、マルチコアプロセッサ８０のオーバーヘッドや不具合の発生を抑制することができる。また、キャッシュなどが設けられなくともマルチコアプロセッサ８０に要求される性能や低消費電力化を達成することができる。
【００４９】
なお、本実施例では、マルチコアプロセッサ８０にマイクロコントローラユニット３乃至６（４つのＭＣＵ）を設けているが必ずしもこれに限定されるものではなく、適宜マイクロコントローラユニットの数を変更してもよい。また、マイクロコントローラユニットの数が増加した場合、複数のマイクロコントローラユニットを１つのグループにして、そのグループに対して１つの割り込みコントローラと１つの排他ロック機構部を割り当ててもよい。また、マイクロコントローラユニット３乃至６には、内部割込みコントローラをそれぞれ設けているが適宜省略してもよい。
【実施例２】
【００５０】
次に、本発明の実施例２に係るマルチコアプロセッサについて、図面を参照して説明する。図１０はマルチコアプロセッサを示すブロック図、図１１はプロセッサコアのロック状態の管理テーブル例を示す図である。本実施例では、排他ロック機構部の機能を拡張している。
【００５１】
以下、実施例１と同一構成部分には、同一符号を付してその部分の説明を省略し、異なる部分のみ説明する。
【００５２】
図１０に示すように、マルチコアプロセッサ８１には、割り込みコントローラ１、排他ロック機構部２ａ、マイクロコントローラユニット（ＭＣＵ  microcontroller unit）３乃至６、及びバス７が設けられる。マルチコアプロセッサ８１は、移動体機器、据え置き型民生機器、パソコン等などに適用される。割り込みコントローラ１、排他ロック機構部２ａ、及びマイクロコントローラユニット３乃至６は、バス７を介して互いに接続される。また、割り込みコントローラ１と排他ロック機構部２ａの間では、情報のやり取りが行われる。
【００５３】
排他ロック機構部２ａは、プロセッサコア１１乃至１４に対して３つの状態を管理する。図１１に示すように、排他ロック機構部２ａは、例えば４つのロック状態を管理テーブルとして管理している。
【００５４】
ロック１の状態では、プロセッサコア１１がロック一時停止中、プロセッサコア１２及び１３がロック解放中、プロセッサコア１４がロック獲得中として管理される。ロック２の状態では、プロセッサコア１１乃至１３がロック解放中、プロセッサコア１４がロック獲得中として管理される。ロック３の状態では、プロセッサコア１１及び１４がロック解放中、プロセッサコア１２がロック一時停止中、プロセッサコア１３がロック獲得中として管理される。ロック４の状態では、プロセッサコア１１がロック獲得中、プロセッサコア１２乃至１４がロック解放中として管理される。
【００５５】
つまり、この管理テーブルからロック１乃至４の状態によらず、各プロセッサコアでは少なくとも１つのロック一時停止状態或いはロック解放状態しか設定されないことがわかる。
【００５６】
排他ロック機構部２ａは、３つの機能を有している。１番目の機能は、ロック獲得が失敗してもロック一時停止へ遷移させないモードである。この機能はジャイアントロックの際に有効である。また、細粒度の場合、一瞬で処理が終了するロックが存在するので、現在あるスピンロックによる対応要求に有効となる。
【００５７】
２番目の機能は、ロック獲得或いはロック解放の通知を割り込みコントローラ１に送付しないモードである。具体的には、既にあるロックを獲得している状態で他のロックを獲得した場合と、複数のロックを獲得している状態で１つのロックを解放する場合とに対応する。
【００５８】
３番目の機能は、あるプロセッサコアがロックを解放する場合、次に与えるロックを既にロックを獲得しているプロセッサコアに優先して割り当てるモードである。
【００５９】
次に、マイクロコントローラユニットへの割り込み禁止について図１２を参照して説明する。図１２は該当マイクロコントローラユニットへの割り込み禁止例を示す図である。ここでは、ロック獲得後に割り込みを禁止している。本実施例では、プロセッサコア４のロック獲得失敗までのシーケンス（ＳＥ３１ａ乃至３１ｃ）は実施例１と同様なので説明を省略する。
【００６０】
図１２に示すように、他のプロセッサコアでロックが解放されると、排他ロック機構部２ａはプロセッサコア４にロック獲得通知を送付し、プロセッサコア４をロック状態にする。排他ロック機構部２ａはプロセッサコア４がロック獲得中であることを割り込みコントローラ１に通知する。コントローラ１は、プロセッサコア４のロック獲得通知を受けて、プロセッサコア４への割り込みを禁止する。
【００６１】
次に、プロセッサコア４からのロック獲得確認通知が排他ロック機構部２ａに入力される。続いて、プロセッサコア４からの排他ロック解放依頼が排他ロック機構部２ａに入力されると、排他ロック機構部２ａはプロセッサコア４のロックを解放し、ロック開放の情報を割り込みコントローラ１に通知する。
【００６２】
続いて、割り込みコントローラ１はロック開放の情報を受けて、プロセッサコア４の割り込み禁止を解除する。
【００６３】
上述したように、本実施例のマルチコアプロセッサでは、割り込みコントローラ１、排他ロック機構部２ａ、マイクロコントローラユニット３乃至６、及びバス７が設けられる。割り込みコントローラ１、排他ロック機構部２ａ、及びマイクロコントローラユニット３乃至６は、バス７を介して接続される。割り込みコントローラ１は、外部に設けられる入出力部８を介して割り込み要求が入力され、マイクロコントローラユニット３乃至６への割り込み処理を実行する。排他ロック機構部２ａは、４種類のロック状態の管理テーブルが設けられ、マイクロコントローラユニット３乃至６をロック解放、ロック一時停止、或いはロック獲得の状態に設定する。
【００６４】
このため、実施例１の効果の他に、ロック範囲をプロセッサコア間で共有する変数に対して排他したい場合など、きめ細かな粒度での排他ロックに適用することができる。
【００６５】
本発明は、上記実施例に限定されるものではなく、発明の趣旨を逸脱しない範囲で、種々、変更してもよい。
【００６６】
実施例では、割り込みコントローラ１と排他ロック機構部２を別構成にしているが必ずしもこれに限定されるものではない。割り込みコントローラ１と排他ロック機構部２を１つの構成内（１つのモジュール）に設けてもよい。この場合、部品点数、配線量、配線長などが削減できるのでマルチコアプロセッサのコストを低減することができる。また、実施例１及び２のマルチコアプロセッサではＬ１キャッシュやＬ２キャッシュについて記載していないが、Ｌ１キャッシュやＬ２キャッシュが設けられている場合でも同様の効果を達成することができる。
【００６７】
本発明は、以下の付記に記載されているような構成が考えられる。  
（付記１）  プロセッサコア及び内部割込みコントローラが設けられ、演算処理を実行する複数のマイクロコントローラユニットと、前記マイクロコントローラユニットからのロック獲得要求に対して、ロック獲得或いはロック獲得失敗の判定を行い、判定結果を前記マイクロコントローラユニットへ通知し、ロック獲得失敗の場合、前記マイクロコントローラユニットをロック一時停止の状態に移行する排他ロック機構部と、割り込み要求に基づいて、前記マイクロコントローラユニットに対して割り込み処理を行い、ロック獲得中或いはロック一時停止中のマイクロコントローラユニットへの割込みが発生した場合、割込み処理を他のマイクロコントローラユニットへ委譲する割込みコントローラとを具備し、前記プロセッサコアは前記排他ロック機構部によりロック解放状態、ロック獲得状態、或いはロック一時停止状態に設定されるマルチコアプロセッサ。
【００６８】
（付記２）  前記割り込み要求は、入出力部を介して前記割り込みコントローラに入力される付記１に記載のマルチコアプロセッサ。
【符号の説明】
【００６９】
１  割り込みコントローラ
２、２ａ  排他ロック機構部
３〜６  マイクロコントローラユニット
７  バス
８  入出力部
１１〜１４  プロセッサコア
２１〜２４  内部割り込みコントローラ
８０、８１  マルチコアプロセッサ
【図１】
2011159135.tif 000003
【図２】
2011159135.tif 000004
【図３】
2011159135.tif 000005
【図４】
2011159135.tif 000006
【図５】
2011159135.tif 000007
【図６】
2011159135.tif 000008
【図７】
2011159135.tif 000009
【図８】
2011159135.tif 000010
【図９】
2011159135.tif 000011
【図１０】
2011159135.tif 000012
【図１１】
2011159135.tif 000013
【図１２】
2011159135.tif 000014