(57)【要約】【課題】処理をしているときも従来より低消費電力のマルチプロセッサシステムを提供すること。【解決手段】プロセッサ切り替え装置は、複数のプロセッサのうち、マスタプロセッサを特定する識別子を記憶するマスタプロセッサ記憶手段と、マスタプロセッサを切り替えるタイミングを示すスケジュールを記憶するスケジュール記憶手段と、スケジュールにより示されるタイミングで、現時点のマスタプロセッサからレジスタに記憶されたデータまたはカーネルメモリに記憶されたデータを取得する取得手段と、マスタプロセッサ記憶手段に記憶される識別子をスケジュールに従って更新するマスタプロセッサ更新手段と、次のマスタプロセッサとなることが示されるプロセッサに対し、取得手段により取得されたデータを送信する送信手段と、更新前のマスタプロセッサへの電力供給を停止させる信号を出力する電力制御手段とを有する。【選択図】図１
2009075910.tif 000002
【特許請求の範囲】
【請求項１】
各々がレジスタを有するかまたは共通のカーネルメモリにアクセス可能な複数のプロセッサのうち、処理を行うプロセッサをマスタプロセッサとして特定する識別子を記憶するマスタプロセッサ記憶手段と、
前記マスタプロセッサを切り替えるタイミングを示すスケジュールを記憶するスケジュール記憶手段と、
前記スケジュールにより示されるタイミングで、現時点のマスタプロセッサから前記レジスタに記憶されたデータまたは前記カーネルメモリに記憶されたデータを取得する取得手段と、
前記取得手段が前記データを取得すると、前記マスタプロセッサ記憶手段に記憶される識別子を前記スケジュールに従って更新するマスタプロセッサ更新手段と、
前記マスタプロセッサ記憶手段に記憶された識別子により次のマスタプロセッサとなることが示されるプロセッサに対し、前記取得手段により取得されたデータを送信する送信手段と、
前記送信手段がデータを送信すると、更新前のマスタプロセッサへの電力供給を停止させる信号を出力する電力制御手段と
を有するプロセッサ切り替え装置。
【請求項２】
前記電力制御手段は、前記送信手段が前記次のマスタプロセッサに対し前記データを送る前に前記次のマスタプロセッサへの電力供給を開始させる信号を出力する
ことを特徴とする請求項１に記載のプロセッサ切り替え装置。
【請求項３】
前記送信手段は、前記次のマスタプロセッサが起動した後で前記データを送信する
ことを特徴とする請求項２に記載のプロセッサ切り替え装置。
【請求項４】
一方を前記複数のプロセッサ間で送受信される信号を伝送するバスに接続され、他方を前記複数のプロセッサの各々に接続されたバス調停装置に、前記マスタプロセッサ記憶手段に記憶された識別子を送信する識別子送信手段
を有する請求項１に記載のプロセッサ切り替え装置。
【請求項５】
前記複数のプロセッサと、
請求項１−４のいずれかの項に記載のプロセッサ切り替え装置と、
前記複数のプロセッサのうち１つのプロセッサにより制御され、情報を表示する表示体と
を有する情報表示装置。
【請求項６】
各々がレジスタを有するかまたは共通のカーネルメモリにアクセス可能な複数のプロセッサと、
前記複数のプロセッサに接続されたプロセッサ切り替え装置と、
一方を前記複数のプロセッサ間で送受信される信号を伝送するバスに接続され、他方を前記複数のプロセッサの各々に接続されたバス調停装置と
を有し、
前記プロセッサ切り替え装置は、
前記複数のプロセッサのうち処理を行うプロセッサをマスタプロセッサとして特定する識別子を記憶するマスタプロセッサ記憶手段と、
前記マスタプロセッサを切り替えるタイミングを示すスケジュールを記憶するスケジュール記憶手段と、
前記スケジュールにより示されるタイミングで、現時点のマスタプロセッサから前記レジスタに記憶されたデータまたは前記カーネルメモリに記憶されたデータを取得する取得
手段と、
前記取得手段が前記データを取得すると、前記マスタプロセッサ記憶手段に記憶される識別子を前記スケジュールに従って更新するマスタプロセッサ更新手段と、
前記マスタプロセッサ記憶手段に記憶された識別子により次のマスタプロセッサとなることが示されるプロセッサに対し、前記取得手段により取得されたデータを送信するデータ送信手段と、
前記マスタプロセッサ記憶手段に記憶された識別子を前記バス調停装置に送信する識別子送信手段と、
前記データ送信手段がデータを送信すると、更新前のマスタプロセッサへの電力供給を停止させる信号を出力する電力制御手段と
を有し、
前記バス調停装置は、
前記プロセッサ切り替え装置から送信されたマスタプロセッサの識別子を記憶する識別子記憶手段と、
前記マスタプロセッサからバス権限の要求があった場合、前記マスタプロセッサにバス権限を送信するバス権限送信手段と
を有する
ことを特徴とするマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを切り替える技術に関する。
【背景技術】
【０００２】
従来、複数のプロセッサを有するコンピュータシステムすなわちマルチプロセッサシステムとして、対称型マルチプロセッサシステム（Symmetric Multiple Processor 、以下
「ＳＭＰ」という）や非対称型マルチプロセッサシステム（Asymmetric Multiple Processor、以下「ＡＭＰ」という）が知られている。
【０００３】
ＳＭＰにおいては、複数のプロセッサが同等の立場で処理を分担する。ＳＭＰはサーバなどによく用いられる。ＳＭＰは、複数のプロセッサと、各プロセッサに接続されたキャッシュと、キャッシュ間を接続するバスを有する。このように、ＳＭＰはキャッシュ間でデータをやりとりする仕組みを有する。ただし、各キャッシュの一貫性を保つ仕組みはＯＳ（Operating System）やデバイスドライバなどで実装する必要がある。
【０００４】
ＡＭＰにおいては、プロセッサコアの種類や処理能力が異なる複数のプロセッサが処理を分担する。したがって、処理内容に応じて分担するタスクがあらかじめ決められている必要がある。例えばあるプロセッサはＯＳを処理し、別のプロセッサはアプリケーションを処理するといった分担がされる。この場合、プロセッサコアの種類が異なるため、割り込み処理をそれぞれ別に用意する必要がある。
【０００５】
ＳＭＰやＡＭＰの例として、例えば特許文献１−２がある。特許文献１は、シングルプロセッサ用のＯＳやアプリケーションが動作するマルチプロセッサシステムを開示している。特許文献２は、マルチプロセッサシステムにおける電力制御を開示している。
【０００６】
【特許文献１】特開２００４−３５５１５３号公報
【特許文献２】特開２００５−２５７２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載された技術は、複数のプロセッサで並列処理を行うことを目的とするものであり、省電力化を目的とした電力制御を行うものではなかった。特許文献２はプロセッサコアを停止させるものであり、プロセッサコアの停止中に処理を行うことはできなかった。
これに対し本発明は、処理をしているときも従来より低消費電力のマルチプロセッサシステムを提供するものである。
【課題を解決するための手段】
【０００８】
上述の課題を解決するため、本発明は、各々がレジスタを有するかまたは共通のカーネルメモリにアクセス可能な複数のプロセッサのうち、処理を行うプロセッサをマスタプロセッサとして特定する識別子を記憶するマスタプロセッサ記憶手段と、前記マスタプロセッサを切り替えるタイミングを示すスケジュールを記憶するスケジュール記憶手段と、前記スケジュールにより示されるタイミングで、現時点のマスタプロセッサから前記レジスタに記憶されたデータまたは前記カーネルメモリに記憶されたデータを取得する取得手段と、前記取得手段が前記データを取得すると、前記マスタプロセッサ記憶手段に記憶される識別子を前記スケジュールに従って更新するマスタプロセッサ更新手段と、前記マスタプロセッサ記憶手段に記憶された識別子により次のマスタプロセッサとなることが示され
るプロセッサに対し、前記取得手段により取得されたデータを送信する送信手段と、前記送信手段がデータを送信すると、更新前のマスタプロセッサへの電力供給を停止させる信号を出力する電力制御手段とを有するプロセッサ切り替え装置を提供する。
このプロセッサ切り替え装置によれば、タスクスケジュールに従ってデータが前のマスタプロセッサから次のマスタプロセッサに引き継がれる。また、マスタプロセッサが切り替えられると前のマスタプロセッサへの電力供給が停止される。
【０００９】
好ましい態様において、前記電力制御手段は、前記送信手段が前記次のマスタプロセッサに対し前記データを送る前に前記次のマスタプロセッサへの電力供給を開始させる信号を出力してもよい。
このプロセッサ切り替え装置によれば、マスタプロセッサが切り替えられる前に次のマスタプロセッサへの電力供給が開始される。
【００１０】
別の好ましい態様において、前記送信手段は、前記次のマスタプロセッサが起動した後で前記データを送信してもよい。
このプロセッサ切り替え装置によれば、次のマスタプロセッサが起動した後にマスタプロセッサが切り替えられる。
【００１１】
さらに別の好ましい態様において、このプロセッサ切り替え装置は、一方を前記複数のプロセッサ間で送受信される信号を伝送するバスに接続され、他方を前記複数のプロセッサの各々に接続されたバス調停装置に、前記マスタプロセッサ記憶手段に記憶された識別子を送信する識別子送信手段を有してもよい。
このプロセッサ切り替え装置によれば、マスタプロセッサの識別子がバス調停装置に送信される。
【００１２】
また、本発明は、前記複数のプロセッサと、上記いずれかのプロセッサ切り替え装置と、前記複数のプロセッサのうち１つのプロセッサにより制御され、情報を表示する表示体とを有する情報表示装置を提供する。
この情報表示装置によれば、タスクスケジュールに従ってデータが前のマスタプロセッサから次のマスタプロセッサに引き継がれる。また、マスタプロセッサが切り替えられると前のマスタプロセッサへの電力供給が停止される。
【００１３】
さらに、本発明は、各々がレジスタを有するかまたは共通のカーネルメモリにアクセス可能な複数のプロセッサと、前記複数のプロセッサに接続されたプロセッサ切り替え装置と、一方を前記複数のプロセッサ間で送受信される信号を伝送するバスに接続され、他方を前記複数のプロセッサの各々に接続されたバス調停装置とを有し、前記プロセッサ切り替え装置は、前記複数のプロセッサのうち処理を行うプロセッサをマスタプロセッサとして特定する識別子を記憶するマスタプロセッサ記憶手段と、前記マスタプロセッサを切り替えるタイミングを示すスケジュールを記憶するスケジュール記憶手段と、前記スケジュールにより示されるタイミングで、現時点のマスタプロセッサから前記レジスタに記憶されたデータまたは前記カーネルメモリに記憶されたデータを取得する取得手段と、前記取得手段が前記データを取得すると、前記マスタプロセッサ記憶手段に記憶される識別子を前記スケジュールに従って更新するマスタプロセッサ更新手段と、前記マスタプロセッサ記憶手段に記憶された識別子により次のマスタプロセッサとなることが示されるプロセッサに対し、前記取得手段により取得されたデータを送信するデータ送信手段と、前記マスタプロセッサ記憶手段に記憶された識別子を前記バス調停装置に送信する識別子送信手段と、前記送信手段がデータを送信すると、更新前のマスタプロセッサへの電力供給を停止させる信号を出力する電力制御手段とを有し、前記バス調停装置は、前記プロセッサ切り替え装置から送信されたマスタプロセッサの識別子を記憶する識別子記憶手段と、前記マスタプロセッサからバス権限の要求があった場合、前記マスタプロセッサにバス権限を送
信するバス権限送信手段とを有することを特徴とするマルチプロセッサシステムを提供する。
このマルチプロセッサシステムによれば、タスクスケジュールに従ってデータが前のマスタプロセッサから次のマスタプロセッサに引き継がれる。また、マスタプロセッサが切り替えられると前のマスタプロセッサへの電力供給が停止される。
【発明を実施するための最良の形態】
【００１４】
１．構成
図１は、一実施形態に係るマルチプロセッサシステムの機能構成を示す図である。マルチプロセッサシステムは、ｎ個のプロセッサ２０（プロセッサ２０−１〜２０−ｎ）と、ｎ個のプロセッサ２０の中からマスタプロセッサを選択し切り替える切り替え装置１００と、バス権限を与えるバス調停装置３００とを有する。「マスタプロセッサ」とはｎ個のプロセッサのうち主たるプロセッサ、具体的には後述するコンテキストを有するプロセッサをいう。プロセッサ２０は、それぞれレジスタを有する。マスタプロセッサ記憶部１１は、マスタプロセッサを特定する識別子を記憶する。スケジュール記憶部１２は、タスクスケジュールを記憶する。「タスクスケジュール」とは、マスタプロセッサを切り替えるタイミングを示す情報、例えば、マスタプロセッサとなるプロセッサの識別子と、マスタプロセッサが実行すべき処理と、その処理のタイミングとを示す情報をいう。コンテキスト取得部１３は、タスクスケジュールが示すタイミングで、その時点のマスタプロセッサからコンテキストを取得する。「コンテキスト」とは、マスタプロセッサのレジスタに記憶されたデータおよびカーネルメモリに記憶されたデータの少なくともいずれか一方をいう。コンテキスト送信部１４は、タスクスケジュールにより次のマスタプロセッサとなることが示されるプロセッサに対しコンテキストを送信する。マスタプロセッサ更新部１５は、マスタプロセッサ記憶部１１に記憶される識別子を次のマスタプロセッサに更新する。電力制御部１６は、コンテキスト送信部１４がコンテキストを送信すると、更新前のマスタプロセッサへの電力供給を停止させる信号を出力する。マスタプロセッサＩＤ送信部１７は、マスタプロセッサ記憶部１１に記憶された識別子をバス調停装置３００に送信する。マスタプロセッサＩＤ記憶部３２は、切り替え装置１００から送信されたマスタプロセッサＩＤを記憶する。バス権限送信部３１は、マスタプロセッサからバス権限の要求があった場合、マスタプロセッサにバス権限を送信する。
【００１５】
図２は、本実施形態に係るマルチプロセッサシステムを有する電子機器１の構成を示す図である。この例で、電子機器１は、情報を表示する表示体を有する情報表示装置、例えば電子ペーパである。「電子ペーパ」とは、コレステリック液晶・ＥＰＤ（Electrophoretic Display）・エレクトロクロミックディスプレイなど、記憶性表示体を有する装置を
いう。「記憶性」とは、電力を与えなくても表示を維持できる特性をいう。
【００１６】
この例で、電子機器１は３つのプロセッサ、すなわちＣＰＵ２０１・ＣＰＵ２０２・ＣＰＵ２０３を有する。ＣＰＵ２０１−２０３は、共通のプロセッサコアを有する。別の例において、ＣＰＵ２０１−２０３は、共通のプロセッサコアを有しなくても、共通の命令セットおよびレジスタ構成を有していてもよい。このマルチプロセッサシステムにおいては、ＣＰＵ２０１−２０３のうち単一のＣＰＵすなわちマスタプロセッサのみが処理を行う。ＣＰＵ２０１−２０３は、共通のオペレーティングシステムＯＳおよび共通のアプリケーションプログラムＡＰを実行可能である。共通のオペレーティングシステムを実行可能であるということは、共通のカーネルメモリにアクセスできるということである。
【００１７】
ＣＰＵ２０１−２０３にはそれぞれ、割り込み制御回路７０１・割り込み制御回路７０２・割り込み制御回路７０３が接続されている。割り込み制御回路７０１−７０３は、入出力装置５０１などの周辺機器からの割り込み要求をＣＰＵ２０１−２０３に出力する装置である。割り込み制御回路７０１−７０３は、ＣＰＵ２０１−２０３とバス調停装置３
００との間に接続される。ＣＰＵと割り込み制御回路とにより、ＣＰＵモジュールが構成される。ＣＰＵモジュールは図２において破線で示される。以下「ＣＰＵ」というときはＣＰＵモジュールを指す。
【００１８】
バス調停装置３００は、バス（この例ではＣＰＵバス４０１および割り込みバス４０２）を制御する権限（以下「バス権限」という）をプロセッサに与える装置である。また、バス調停装置３００は、バスブリッジとしても機能する。
ＣＰＵバス４０１は、ＣＰＵ２０１−２０３とＲＡＭ５０２およびＲＯＭ５０３との間でデータ・アドレス・命令などを示す信号を伝送するための経路である。割り込みバス４０２は、ＣＰＵ２０１−２０３と入出力装置５０１との間で信号を伝送するための経路である。
【００１９】
入出力装置５０１は、電子機器１に対しデータを入力する装置（例えばボタン・キーボード・マウスなど）あるいは電子機器１からデータを出力する装置（例えばディスプレイ・プリンタ・スピーカなど）である。ＲＡＭ５０２は、ＣＰＵ２０１−２０３がプログラムを実行する際にワークエリアとして機能する記憶装置である。ＲＯＭ５０３は、電子機器１の動作に必要なプログラムやデータを記憶した不揮発性の記憶装置である。
【００２０】
ＣＰＵ２０１には周辺回路６０１が、ＣＰＵ２０２には周辺回路６０２が、ＣＰＵ２０３には表示体制御回路６０３が接続されている。すなわちこの例でＣＰＵ２０１−２０３はそれぞれ、制御する対象が異なっている。周辺回路６０１・周辺回路６０２は、それぞれある特定の機能を有する回路である。表示体制御回路６０３は、周辺回路の一種であり、特に、電子機器１の表示体を制御する回路である。
【００２１】
２．動作
図３は、マルチプロセッサシステムの動作の概要を示す図である。切り替え装置１００は、タスクスケジュールに応じてＣＰＵ２０１−２０３に起動要求・休止要求・コンテキスト・マスタ権限を送信する。これに対しＣＰＵ２０１−２０３は、コンテキスト・切り替え要求・ステータスを送信する。「起動要求」は、ＣＰＵの起動を要求する信号である。「休止要求」は、ＣＰＵの休止すなわちＣＰＵへの電力供給を休止することを要求する信号である。「マスタ権限」は、マスタプロセッサであることを示す信号である。「切り替え要求」は、マスタプロセッサの切り替えを要求する信号である。「ステータス」は、ＣＰＵが起動・アイドル・休止のどの状態にあるかを示す信号である。「起動」とはプロセッサに電力が供給され、命令を実行する状態をいう。「アイドル」とは、プロセッサに電力は供給されているものの命令を実行しない状態をいう。「休止」とはプロセッサに電力が供給されない状態をいう。また、切り替え装置１００は、バス調停装置３００に対しマスタプロセッサＩＤを送信する。「マスタプロセッサＩＤ」は、マスタプロセッサを特定する識別子である。バス調停装置３００は、バス権限を必要とするプロセッサに対しバス権限を出力する。
【００２２】
本実施形態において、マルチプロセッサシステムは、単一のＣＰＵすなわちマスタプロセッサのみが処理を行う「シングル動作モード」、およびマスタプロセッサ以外のプロセッサも含めた複数のＣＰＵが並列処理を行う「並列処理モード」の２つの動作モードで動作することが可能である。
【００２３】
２−１．シングル動作モード
図４Ａ−Ｃは、シングル動作モードの詳細を示す図である。ステップＳ１０１において、切り替え装置１００はタスクスケジュールを取得する。この例でタスクスケジュールは、実行中のプログラムに基づいて、切り替え装置１００が作成する。切り替え装置１００はメモリ空間のアドレスとそのアドレスに対応するＣＰＵの識別子を記録したテーブルを
記憶している。切り替え装置１００は、メモリ空間の特定のアドレスがアクセスされるときは、そのアドレスに対応するＣＰＵをマスタプロセッサとして特定する。マスタプロセッサとなるＣＰＵがそれまでのマスタプロセッサと異なるときは、そのアドレスへのアクセスに先立ってマスタプロセッサの切り替えが行われるようなタスクスケジュールが作成される。ここでは、ＣＰＵ２０１、ＣＰＵ２０２、ＣＰＵ２０３、ＣＰＵ２０１の順でマスタプロセッサが切り替わるタスクスケジュールが取得された場合を例に説明する。
【００２４】
まず、切り替え装置１００は、タスクスケジュールに従ってマスタプロセッサの識別子を内部メモリに記憶する。最初にマスタプロセッサになるのはＣＰＵ２０１である。切り替え装置１００は、ＣＰＵ２０１に対し起動要求を送信する（ステップＳ１０２）。起動要求を受信すると、ＣＰＵ２０１は、起動処理を行う（ステップＳ１０３）。起動が完了すると、ＣＰＵ２０１は、起動したことを示すステータス（以下「起動ステータス」という）を切り替え装置１００に送信する（ステップＳ１０４）。起動ステータスを受信すると、切り替え装置１００は、ＣＰＵ２０１に対しマスタ権限を送信する（ステップＳ１０５）。さらに、切り替え装置１００は、ＣＰＵ２０１に対しコンテキストを送信する（ステップＳ１０６）。コンテキストがレジスタに記憶されたデータである場合、ＣＰＵ２０１は受信したコンテキストを自身のレジスタにコピーする。コンテキストがカーネルメモリに記憶されたデータである場合、ＣＰＵ２０１はカーネルメモリへのアクセス権を取得する。こうしてＣＰＵ２０１はマスタプロセッサとなる。
【００２５】
コンテキストの初期値、すなわち電子機器１を起動したときのコンテキストはあらかじめ決められており、切り替え装置１００により生成される。別の例で、コンテキストの初期値は切り替え装置１００以外の装置、例えばＣＰＵ２０１−２０３のいずれかにより生成されてもよい。
【００２６】
コンテキストを送信した後、切り替え装置１００は、バス調停装置３００に対しマスタプロセッサＩＤを送信する。バス調停装置３００は、受信したマスタプロセッサＩＤを内部メモリに記憶する。これ以降、バス調停装置３００は、マスタプロセッサからバス権限の要求があったときは、マスタプロセッサにバス権限を送信する。
【００２７】
コンテキストを取得すると、ＣＰＵ２０１は、バス調停装置３００に対しバス権限要求を送信する（ステップＳ１０７）。バス権限要求を受信するとバス調停装置３００は、ＣＰＵ２０１にバス権限を送信する（ステップＳ１０８）。バス権限を受信すると、ＣＰＵ２０１は、割り込みの初期化処理を行う（ステップＳ１０９）。初期化が完了すると、ＣＰＵ２０１は割り込み処理の監視を行う（ステップＳ１１０）。
【００２８】
切り替え装置１００は、タスクスケジュールに従ってＣＰＵ２０１に対しタスク処理を要求する（ステップＳ１１１）。タスク処理の要求を受信すると、ＣＰＵ２０１は、要求されたタスクを処理する（ステップＳ１１２）。要求されたタスクを処理すると、ＣＰＵ２０１は、コンテキストを切り替え装置１００に送信する（ステップＳ１１３）。コンテキストを送信すると、ＣＰＵ２０１は、バス調停装置３００に対しバスの開放を要求する（ステップＳ１１４）。この要求を受信すると、バス調停装置３００はバスを開放する。
【００２９】
コンテキストを受信すると、切り替え装置１００は受信したコンテキストを記憶する。また、コンテキストの受信を契機として、切り替え装置１００は、内部メモリに記憶したマスタプロセッサＩＤを更新する。すなわち、コンテキストの受信はマスタプロセッサの切り替え要求として機能する。内部メモリは、現時点のマスタプロセッサＩＤと１つ前のマスタプロセッサＩＤとの２つの識別子を記憶する。この例において、切り替え装置１００は、現時点のマスタプロセッサＩＤをＣＰＵ２０２の識別子とし、前のマスタプロセッサＩＤをＣＰＵ２０１の識別子とする。
【００３０】
記憶しているマスタプロセッサＩＤを更新すると、切り替え装置１００は、ＣＰＵ２０２に対し起動要求を送信する（ステップＳ１１５）。ＣＰＵ２０２は、タスクスケジュールにより次にマスタプロセッサになることが示されるプロセッサである。起動要求を受信すると、ＣＰＵ２０２は、起動処理を行う（ステップＳ１１６）。起動が完了すると、ＣＰＵ２０２は、起動ステータスを切り替え装置１００に送信する（ステップＳ１１７）。起動ステータスを受信すると、切り替え装置１００は、それまでマスタプロセッサであったＣＰＵ２０１に対し休止要求を送信する（ステップＳ１１８）。休止要求を受信すると、ＣＰＵ２０１は、休止処理を行う（ステップＳ１１９）。休止処理を行うと、ＣＰＵ２０１は、切り替え装置１００に休止ステータスを送信する（ステップＳ１２０）。休止ステータスを受信すると、切り替え装置１００は、次のマスタプロセッサであるＣＰＵ２０２に対しマスタ権限を送信する（ステップＳ１２１）。さらに、切り替え装置１００は、ＣＰＵ２０２に対しコンテキストを送信する（ステップＳ１２２）。ＣＰＵ２０２はＣＰＵ２０１と同様にコンテキストの処理を行う。こうしてＣＰＵ２０２はマスタプロセッサとなる。
【００３１】
コンテキストを取得すると、ＣＰＵ２０２は、バス調停装置３００に対しバス権限要求を送信する（ステップＳ１２３）。バス権限要求を受信するとバス調停装置３００は、ＣＰＵ２０２にバス権限を送信する（ステップＳ１２４）。バス権限を受信すると、ＣＰＵ２０２は、割り込みの初期化処理を行う（ステップＳ１２５）。初期化が完了すると、ＣＰＵ２０２は割り込み処理の監視を行う（ステップＳ１２６）。
【００３２】
切り替え装置１００は、タスクスケジュールに従ってＣＰＵ２０２に対しタスク処理を要求する（ステップＳ１２７）。タスク処理の要求を受信すると、ＣＰＵ２０２は、要求されたタスクを処理する（ステップＳ１２８）。要求されたタスクを処理すると、ＣＰＵ２０２は、コンテキストを切り替え装置１００に送信する（ステップＳ１２９）。コンテキストを送信すると、ＣＰＵ２０２は、バス調停装置３００に対しバスの開放を要求する（ステップＳ１３０）。この要求を受信すると、バス調停装置３００はバスを開放する。
【００３３】
コンテキストを受信すると、切り替え装置１００は受信したコンテキストを記憶する。また、切り替え装置１００は、内部メモリに記憶したマスタプロセッサＩＤを更新する。記憶しているマスタプロセッサＩＤを更新すると、切り替え装置１００は、ＣＰＵ２０３に対し起動要求を送信する（ステップＳ１３１）。ＣＰＵ２０３は、タスクスケジュールにより次にマスタプロセッサになることが示されるプロセッサである。起動要求を受信すると、ＣＰＵ２０３は、起動処理を行う（ステップＳ１３２）。起動が完了すると、ＣＰＵ２０３は、起動ステータスを切り替え装置１００に送信する（ステップＳ１３３）。起動ステータスを受信すると、切り替え装置１００は、それまでマスタプロセッサであったＣＰＵ２０２に対し休止要求を送信する（ステップＳ１３４）。休止要求を受信すると、ＣＰＵ２０２は、休止処理を行う（ステップＳ１３５）。休止処理を行うと、ＣＰＵ２０２は、切り替え装置１００に休止ステータスを送信する（ステップＳ１３６）。休止ステータスを受信すると、切り替え装置１００は、次のマスタプロセッサであるＣＰＵ２０３に対しマスタ権限を送信する（ステップＳ１３７）。さらに、切り替え装置１００は、ＣＰＵ２０３に対しコンテキストを送信する（ステップＳ１３８）。ＣＰＵ２０３はＣＰＵ２０１と同様にコンテキストの処理を行う。こうしてＣＰＵ２０３はマスタプロセッサとなる。
【００３４】
コンテキストを取得すると、ＣＰＵ２０３は、バス調停装置３００に対しバス権限要求を送信する（ステップＳ１３９）。バス権限要求を受信するとバス調停装置３００は、ＣＰＵ２０３にバス権限を送信する（ステップＳ１４０）。バス権限を受信すると、ＣＰＵ２０３は、割り込みの初期化処理を行う（ステップＳ１４１）。初期化が完了すると、Ｃ
ＰＵ２０３は割り込み処理の監視を行う（ステップＳ１４２）。
【００３５】
切り替え装置１００は、タスクスケジュールに従ってＣＰＵ２０３に対しタスク処理を要求する（ステップＳ１４３）。タスク処理の要求を受信すると、ＣＰＵ２０３は、要求されたタスクを処理する（ステップＳ１４４）。要求されたタスクを処理すると、ＣＰＵ２０３は、コンテキストを切り替え装置１００に送信する（ステップＳ１４５）。コンテキストを送信すると、ＣＰＵ２０３は、バス調停装置３００に対しバスの開放を要求する（ステップＳ１４６）。この要求を受信すると、バス調停装置３００はバスを開放する。
【００３６】
コンテキストを受信すると、切り替え装置１００は、ＣＰＵ２０１に対し起動要求を送信する（ステップＳ１４７）。ＣＰＵ２０１は、タスクスケジュールにより次にマスタプロセッサになることが示されるプロセッサである。起動要求を受信すると、ＣＰＵ２０１は、起動処理を行う（ステップＳ１４８）。起動が完了すると、ＣＰＵ２０１は、起動ステータスを切り替え装置１００に送信する（ステップＳ１４９）。起動ステータスを受信すると、切り替え装置１００は、それまでマスタプロセッサであったＣＰＵ２０３に対し休止要求を送信する（ステップＳ１５０）。休止要求を受信すると、ＣＰＵ２０３は、休止処理を行う（ステップＳ１５１）。休止処理を行うと、ＣＰＵ２０３は、切り替え装置１００に休止ステータスを送信する（ステップＳ１５２）。休止ステータスを受信すると、切り替え装置１００は、次のマスタプロセッサであるＣＰＵ２０１に対しマスタ権限を送信する（ステップＳ１５３）。さらに、切り替え装置１００は、ＣＰＵ２０１に対しコンテキストを送信する（ステップＳ１５４）。こうしてＣＰＵ２０１はマスタプロセッサとなる。
【００３７】
以上で説明したようにシングル動作モードによれば、タスクスケジュールに従ってコンテキストが前のマスタプロセッサから次のマスタプロセッサに引き継がれる。これによりシングルプロセッサシステムと同様にオペレーティングシステムやアプリケーションが動作する。また、マスタプロセッサが切り替えられると前のマスタプロセッサへの電力供給が停止される。これにより、この構成を有しない場合と比較して消費電力がより低減される。
【００３８】
２−２．並列動作モード
図５Ａ−Ｂは、並列動作モードの詳細を示す図である。ステップＳ２０１において、切り替え装置１００はタスクスケジュールを取得する。ここでは、ＣＰＵ２０１をマスタプロセッサとし、ＣＰＵ２０２およびＣＰＵ２０３がマスタプロセッサと並列処理を行うタスクスケジュールが取得された場合を例に説明する。
【００３９】
タスクスケジュールに従って、まず、切り替え装置１００は、ＣＰＵ２０１に対し起動要求を送信する（ステップＳ２０２）。起動要求を受信すると、ＣＰＵ２０１は、起動処理を行う（ステップＳ２０３）。起動が完了すると、ＣＰＵ２０１は、起動ステータスを切り替え装置１００に送信する（ステップＳ２０４）。起動ステータスを受信すると、切り替え装置１００は、ＣＰＵ２０１に対しマスタ権限を送信する（ステップＳ２０５）。さらに、切り替え装置１００は、ＣＰＵ２０１に対しコンテキストを送信する（ステップＳ２０６）。こうしてＣＰＵ２０１はマスタプロセッサとなる。
【００４０】
コンテキストを取得すると、ＣＰＵ２０１は、バス調停装置３００に対しバス権限要求を送信する（ステップＳ２０７）。バス権限要求を受信するとバス調停装置３００は、ＣＰＵ２０１にバス権限を送信する（ステップＳ２０８）。バス権限を受信すると、ＣＰＵ２０１は、割り込みの初期化処理を行う（ステップＳ２０９）。初期化が完了すると、ＣＰＵ２０１は割り込み処理の監視を行う（ステップＳ２１０）。また、ＣＰＵ２０１は、自分で処理可能なタスクを処理する（ステップＳ２１１）。タスクを処理すると、ＣＰＵ
２０１は、バス調停装置３００に対しバスの開放を要求する（ステップＳ２１２）。バス調停装置３００は、要求に従ってバスを開放する。
【００４１】
切り替え装置１００は、タスクスケジュールに従ってＣＰＵ２０２およびＣＰＵ２０３に起動要求を送信する（ステップＳ２１３およびＳ２１４）。起動要求を受信すると、ＣＰＵ２０２およびＣＰＵ２０３は、起動処理を行う（ステップＳ２１５およびＳ２１６）。起動が完了すると、ＣＰＵ２０２およびＣＰＵ２０３は、起動ステータスを切り替え装置１００に送信する（ステップＳ２１７およびＳ２１８）。こうして、マスタプロセッサであるＣＰＵ２０１と、マスタプロセッサではないＣＰＵ２０２およびＣＰＵ２０３とが並列して起動される。
【００４２】
自分で処理できないタスクについては、ＣＰＵ２０１は、他のプロセッサに処理を要求する。どのプロセッサにどのタスクを処理させるかの決定は、タスクスケジュールの作成と同様に行われる。あるいは、マスタプロセッサが切り替え装置１００からタスクスケジュールを取得し、取得したタスクスケジュールに従ってどのプロセッサにどのタスクを処理させるかを決定してもよい。マスタプロセッサであるＣＰＵ２０１は、この決定に従って、ＣＰＵ２０２およびＣＰＵ２０３にタスクを処理させることを切り替え装置１００に要求する（ステップＳ２１９およびＳ２２０）。この要求を受信すると、切り替え装置１００は、要求されたプロセッサすなわちＣＰＵ２０２およびＣＰＵ２０３に対し、タスクを処理するよう要求する（ステップＳ２２１およびＳ２２２）。
【００４３】
ＣＰＵ２０２は、要求された処理にはバス権限が必要なので、バス調停装置３００に対しバス権限を要求する（ステップＳ２２３）。要求を受信すると、バス調停装置３００は、要求元であるＣＰＵ２０２にバス権限を送信する（ステップＳ２２４）。並列処理モードにおいて、バス調停装置３００は、マスタプロセッサ以外のプロセッサにもバス権限を送信する。バス権限を得ると、ＣＰＵ２０２は、要求された処理を行う（ステップＳ２２５）。処理を完了すると、ＣＰＵ２０２は、バス調停装置３００に対しバスの開放を要求する（ステップＳ２２６）。バス調停装置３００は、要求に従ってバスを開放する。
ＣＰＵ２０３は、要求された処理を行う（ステップＳ２２７）。
【００４４】
ＣＰＵ２０２およびＣＰＵ２０３は、要求されたタスクを終了すると、その旨を切り替え装置１００に通知する（ステップＳ２２８およびＳ２２９）。タスクが終了したことを通知すると、ＣＰＵ２０２およびＣＰＵ２０３は、アイドル状態にあることを示すステータス（以下「アイドルステータス」という）を切り替え装置１００に送信する（ステップＳ２３０およびＳ２３１）。アイドルステータスを受信すると、切り替え装置１００は、ＣＰＵ２０２およびＣＰＵ２０３に対し休止要求を送信する（ステップＳ２３２およびＳ２３３）。休止要求を受信すると、ＣＰＵ２０２およびＣＰＵ２０３は休止処理を行う（ステップＳ２３４およびＳ２３５）。休止処理を行うと、ＣＰＵ２０２およびＣＰＵ２０３は、切り替え装置１００に休止ステータスを送信する（ステップＳ２３６およびＳ２３７）。
【００４５】
以上で説明したように並列処理モードによれば、マスタプロセッサを含む複数のプロセッサにより処理が行われる。したがって、消費電力は高いもののタスクをより高速に処理できる。また、シングル動作モードと並列処理モードとを切り替えることにより、消費電力を抑えたい場合や処理を高速にしたい場合など、ユーザの要求に応じた動作をすることができる。シングル動作モードと並列処理モードとの切り替えは、ユーザの指示により切り替えられる。あるいは、モード切り替えは、オペレーティングシステムやアプリケーションにより指示されてもよい。
【００４６】
３．他の実施形態
本発明は上述の実施形態に限定されるものではなく種々の変形実施が可能である。以下、変形例をいくつか説明する。以下において、実施形態と共通する要素については共通の参照符号を用いて説明する。また、以下の変形例のうち、２つ以上のものが組み合わせて用いられてもよい。
【００４７】
３−１．変形例１
上述の実施形態において、バス権限は各ＣＰＵが要求した。しかし、バス権限を要求する主体はＣＰＵに限定されない。切り替え装置１００がタスクスケジュールに従って、バス調停装置３００に対してバス権限の切り替えを要求してもよい。この場合、要求を受信したバス調停装置３００は、要求されたプロセッサに対してバス権限を送信する。
【００４８】
３−２．変形例２
タスクスケジュールは、マスタプロセッサとなるプロセッサの識別子とその切り替えタイミングを含む情報であってもよい。要は、マスタプロセッサを特定するのに必要な情報（タスク・メモリ空間のアドレス・プロセッサの識別子など）と、そのタイミングを含むものであればどのような情報であってもよい。また、タスクスケジュールは、あるＣＰＵが複数のタスクを連続して処理する場合でも、タスク毎に形式的にマスタプロセッサを切り替えるものでもよい。
【００４９】
３−３．変形例３
上述の実施形態においては、コンテキストの送信がマスタプロセッサの切り替え要求としても機能していたが、コンテキストの送信とは別の信号がプロセッサの切り替え要求として機能してもよい。
【００５０】
３−４．変形例４
上述の実施形態においては、バス調停装置３００はマスタプロセッサからバス権限が要求された場合にはバス権限を送信した。しかし、バス調停装置３００は、マスタプロセッサからの要求がなくても、切り替え装置１００からマスタプロセッサＩＤを受信した後でマスタプロセッサに対しバス権限を送信してもよい。
【００５１】
３−５．変形例５
マルチプロセッサシステムの動作について、前後関係が特に明記されていない２つの処理の順序は図４Ａ−Ｃおよび図５Ａ−Ｂに示したものに限定されない。例えば、マスタプロセッサがバスを開放する処理（Ｓ１３０など）と切り替え装置１００が次のマスタプロセッサに起動要求を送信する処理（Ｓ１３１など）とについて、実施形態では前者が先で後者が後の順序で記載されているが、これらの処理間の前後関係についての記載は無い。すなわち、ステップＳ１３１の処理がＳ１３０の処理を契機をとして行われるといった記載は無い。このような場合、ステップＳ１３１の処理が先に、Ｓ１３０の処理が後に行われてもよい。
【００５２】
３−６．変形例６
上述の実施形態においてはコンテキストとは別にマスタ権限が送信された。しかし、コンテキストがマスタ権限としての機能を兼ね備えていてもよい。
【００５３】
３−７．変形例７
切り替え装置１００からマスタプロセッサへのタスク処理の要求は、割り込み処理の初期化が完了した等、マスタプロセッサからの通知を契機として行われてもよい。
【００５４】
３−８．変形例８
タスクスケジュールは、切り替え装置１００以外の他の要素が作成してもよい。例えば
、切り替え装置があるＣＰＵにタスクスケジュールを作成するように命じ、ＣＰＵがそれに応じてタスクスケジュールを作成してもよい。あるいは、タスクスケジュールは、アプリケーションなどプログラム自体に記述されていてもよい。この場合、アプリケーションは内部データとしてタスクスケジュールを有している。切り替え装置１００は、内部データからタスクスケジュールを取得する。
【図面の簡単な説明】
【００５５】
【図１】一実施形態に係るマルチプロセッサシステムの機能構成を示す図である。
【図２】マルチプロセッサシステムを有する電子機器１の構成を示す図である。
【図３】マルチプロセッサシステムの動作の概要を示す図である。
【図４Ａ】シングル動作モードの詳細を示す図である。
【図４Ｂ】シングル動作モードの詳細を示す図である。
【図４Ｃ】シングル動作モードの詳細を示す図である。
【図５Ａ】並列動作モードの詳細を示す図である。
【図５Ｂ】並列動作モードの詳細を示す図である。
【符号の説明】
【００５６】
１…電子機器、１１…マスタプロセッサ記憶部、１２…スケジュール記憶部、１３…コンテキスト取得部、１４…コンテキスト送信部、１５…マスタプロセッサ更新部、１６…電力制御部、１７…マスタプロセッサＩＤ送信部、２０…プロセッサ、３１…バス権限送信部、３２…マスタプロセッサＩＤ記憶部、１００…切り替え装置、２０１…ＣＰＵ、２０２…ＣＰＵ、２０３…ＣＰＵ、３００…バス調停装置、４０１…ＣＰＵバス、４０１…ＣＰＵ、４０２…割り込みバス、５０１…入出力装置、５０２…ＲＡＭ、５０３…ＲＯＭ、６０１…周辺回路、６０２…周辺回路、６０３…表示体制御回路、７０１…割り込み制御回路、７０２…割り込み制御回路、７０３…割り込み制御回路
【図１】
2009075910.tif 000003
【図２】
2009075910.tif 000004
【図３】
2009075910.tif 000005
【図４Ａ】
2009075910.tif 000006
【図４Ｂ】
2009075910.tif 000007
【図４Ｃ】
2009075910.tif 000008
【図５Ａ】
2009075910.tif 000009
【図５Ｂ】
2009075910.tif 000010