(57)【要約】【課題】同一構成の複数のプロセッサを効率的に使い分けることを実現した情報処理装置を提供する。【解決手段】タスクコントローラ１０２は、まず、認証コード付プログラム１０３をメインコア１１ａに割り当てる。このメインコア１１ａで動作を開始した認証コード付プログラム１０３は、コアコントローラ１０１との間で、予め定められた認証コードを使った認証処理を実行する。この認証の成立を条件に、コアコントローラ１０１は、拡張コア１１ｂを起動し、認証コード付プログラム１０３の拡張コア１１ｂへの再割り当てをタスクコントローラ１０２に指示する。【選択図】      図２
2008242948.tif 000002
【特許請求の範囲】
【請求項１】
複数の命令処理部を有するＣＰＵと、
前記複数の命令処理部を、特定のプログラムを割り当て可能な第１グループと、いずれのプログラムも割り当て可能な第２グループとに分けて管理する管理手段と、
を具備することを特徴とする情報処理装置。
【請求項２】
認証情報を保持する認証情報保持手段を具備し、
前記管理手段は、前記第１グループの命令処理部への割り当てを要求するプログラムとの間で、前記認証情報保持手段により保持された認証情報を用いた認証処理を実行する手段を含み、前記認証が成立した場合に、前記第１グループの命令処理部への割り当てを要求するプログラムを、前記第１グループの命令処理部への割り当てが可能な前記特定のプログラムであると判定することを特徴とする請求項１記載の情報処理装置。
【請求項３】
予め定められた優先度が付与されたプログラムを前記第１グループの命令処理部に割り当て、前記予め定められた優先度以外の優先度が付与されたプログラムを前記第２グループの命令処理部に割り当てるように設定可能なタスクコントローラを具備し、
前記管理手段は、前記認証が成立したプログラムの優先度を前記予め定められた優先度に変更して、当該プログラムの前記第１グループの命令処理部への割り当てを前記タスクコントローラに行わせる手段を含むことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記管理手段は、前記第１グループの命令処理部へ同時に割り当て可能なプログラム数を前記認証情報保持手段により保持される認証情報毎に管理する手段を含むことを特徴とする請求項２記載の情報処理装置。
【請求項５】
前記複数の命令処理部に対して動作用のクロックを個別に供給するクロックジェネレータを具備し、
前記管理手段は、前記第１グループのいずれかの命令処理部にプログラムが割り当てられるときに、当該命令処理部に対するクロックの供給を前記クロックジェネレータに指示することを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記複数の命令処理部に対して動作用の電力を供給する電源コントローラを具備し、
前記管理手段は、前記特定のプログラムが起動していないとき、前記第１グループの命令処理部に対する電力の供給停止を前記電源コントローラに指示することを特徴とする請求項１記載の情報処理装置。
【請求項７】
複数の命令処理部を有するＣＰＵを搭載する情報処理装置の動作制御方法であって、
前記複数の命令処理部を、特定のプログラムを割り当て可能な第１グループと、いずれのプログラムも割り当て可能な第２グループとに分けて管理し、
前記第１グループの命令処理部への割り当てを要求するプログラムとの間で、予め与えられた認証情報を用いた認証処理を実行し、この認証が成立した場合に、当該プログラムを前記第１グループの命令処理部への割り当てが可能な前記特定のプログラムであると判定して前記第１グループの命令処理部へ割り当てる、
ことを特徴とする動作制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばマルチコアＣＰＵなどと称される複数の命令処理部（コア）を有するＣＰＵを搭載するパーソナルコンピュータ等の情報処理装置に適用して好適な動作制御技術に関する。
【背景技術】
【０００２】
近年、例えばデスクトップタイプやノートブックタイプなど、様々なタイプのパーソナルコンピュータが広く普及している。この種のパーソナルコンピュータは、要求される機能が日々高度化する。最近では、例えばスクランブル化されて放送される番組データを視聴できるまでに至っている。そして、この高機能化を実現する一手法として、マルチプロセッサシステムが存在する。
【０００３】
マルチプロセッサシステムは、複数のプロセッサを搭載することで、多彩かつ高度な複数の処理を短時間に実行することを可能とするものである。複数のプロセッサを搭載するというマルチプロセッサの特性に着目して、この複数のプロセッサを効率的に利用するための提案もこれまで種々なされている（例えば特許文献１等参照）。
【特許文献１】特開２００２−３５３９６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
この特許文献１のマルチプロセッサシステムは、ヘテロなマルチプロセッサシステムと記載されている通り、通常プロセッサと、（プロセッサそのものに特殊な仕組みを備えている）セキュアプロセッサとのハードウェア的に異なる２つのプロセッサを搭載するものである。そして、この２つのプロセッサを使い分けることにより、混在する通常タスクとセキュアタスクとを効率的に実行する。
【０００５】
ところで、最近では、複数の命令処理部（コア）を有する、マルチコアＣＰＵなどと称される新しいタイプのＣＰＵが開発されるに至っている。これにより、マルチプロセッサシステムが１つのＣＰＵで実現可能となっている。
【０００６】
ハードウェア的に一つのチップであるマルチコアＣＰＵでは、あるプロセッサのみに他のプロセッサと異なる特殊な仕組みを備えさせることが困難である。従って、同一構成の複数のプロセッサで、例えば通常タスクとセキュアタスクとで使い分ける等の効率的な使い分けを行うための新たな動作制御の手法が望まれる。
【０００７】
この発明は、このような事情を考慮してなされたものであり、同一構成の複数のプロセッサを効率的に使い分けることを実現した情報処理装置および動作制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
この目的を達成するために、本発明の情報処理装置は、複数の命令処理部を有するＣＰＵと、前記複数の命令処理部を、特定のプログラムを割り当て可能な第１グループと、いずれのプログラムも割り当て可能な第２グループとに分けて管理する管理手段と、を具備することを特徴とする。
【０００９】
また、本発明の動作制御方法は、複数の命令処理部を有するＣＰＵを搭載する情報処理装置の動作制御方法であって、前記複数の命令処理部を、特定のプログラムを割り当て可能な第１グループと、いずれのプログラムも割り当て可能な第２グループとに分けて管理し、前記第１グループの命令処理部への割り当てを要求するプログラムとの間で、予め与えられた認証情報を用いた認証処理を実行し、この認証が成立した場合に、当該プログラムを前記第１グループの命令処理部への割り当てが可能な前記特定のプログラムであると判定して第１グループの命令処理部へ割り当てる、ことを特徴とする。
【発明の効果】
【００１０】
この発明によれば、同一構成の複数のプロセッサを効率的に使い分けることを実現した情報処理装置および動作制御方法を提供できる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して、この発明の一実施形態を説明する。図１には、本実施形態に係る情報処理装置のハードウェア構成例が示されている。この情報処理装置は、例えばバッテリ駆動可能で携行容易なノートブックタイプのパーソナルコンピュータ１として実現されている。
【００１２】
本コンピュータ１は、図１に示すように、コア（１）１１ａ，コア（２）１１ｂの２つの命令処理部（実行コア）を内蔵したＣＰＵ１１を搭載するデュアルコアＣＰＵ搭載システムである。デュアルコアＣＰＵは、マルチコアＣＰＵを代表する一態様であるが、本実施形態で説明する本発明の動作制御手法は、これに限定されず、他の態様のマルチコアＣＰＵ、即ち実行コアを３以上内蔵するＣＰＵを搭載するマルチコアＣＰＵ搭載システムにおいても適用可能である。
【００１３】
また、このＣＰＵ１１が内蔵するコア（１）１１ａ，コア（２）１１ｂは同一構成であるが、本コンピュータ１では、コア（１）１１ａをメインコア、コア（２）１１ｂを拡張コアと論理的に位置づける。メインコアは、いずれのプログラムも割り当て可能なコアであり、一方、拡張コアは、特定のプログラムを割り当て可能なコアである。
【００１４】
そして、図１に示すように、本コンピュータ１は、このＣＰＵ１１をはじめとして、ホストコントローラ１２、メインメモリ１３、表示コントローラ１４、表示装置１５、表示用メモリ１６、Ｉ／Ｏコントローラ１７、記憶装置１８、フラッシュＲＯＭ１９、電源コントローラ２０、クロックジェネレータ２１、キーボードコントローラ２２、キーボード２３等を備えている。
【００１５】
ＣＰＵ１１は、本コンピュータ１内の各部の動作を統合的に管理・制御するためのプロセッサであり、記憶装置１８からメインメモリ１３にロードされるオペレーティングシステム（ＯＳ）や、このＯＳの制御下で動作する、ユーティリティを含む各種アプリケーションプログラムを実行する。この各種アプリケーションプログラムの中には、後述するコアコントローラ１０１、タスクコントローラ１０２、認証コード付プログラム１０３等が含まれており、これらは予め記憶装置１８にインストールされている。
【００１６】
この認証コード付プログラム１０３が、ＣＰＵ１１のコア（２）１１ｂに割り当て可能な特定のプログラムである（勿論、ＣＰＵ１１のコア（１）１１ａへの割り当ても当然に可能である）。例えばスクランブル化されて放送される番組データを視聴するためのテレビジョン視聴用ソフトウェア等、他のプログラムと混在して実行されてもリアルタイム性を損なうことが許されないプログラムなどが該当する。
【００１７】
ホストコントローラ１２は、ＣＰＵ１１のローカルバスとＩ／Ｏコントローラ１７との間を接続するブリッジデバイスである。ホストコントローラ１２は、バスを介して表示コントローラ１４との通信を実行する機能を有しており、また、メインメモリ１３をアクセス制御するメモリコントローラも内蔵されている。
【００１８】
表示コントローラ１４は、本コンピュータ１のディスプレイモニタとして使用される表示装置１５を制御する。表示コントローラ１４には表示用メモリ１６が接続されており、ＯＳや各種アプリケーションプログラムによって表示用メモリ１６に書き込まれた画像データから表示装置１５に送出すべき表示信号を生成する。
【００１９】
Ｉ／Ｏコントローラ１７には、記憶装置１８を制御するためのコントローラと、フラッシュＲＯＭ１９をアクセス制御するコントローラとが内蔵されている。また、Ｉ／Ｏコントローラ１７は、電源コントローラ２０、クロックジェネレータ２１、キーボードコントローラ２３の制御も行う。
【００２０】
電源コントローラ２０は、ＣＰＵ１１の動作電圧を制御する。また、クロックジェネレータ２１は、ＣＰＵ１１の動作クロックを制御する。この電源コントローラ２０による動作電圧の制御およびクロックジェネレータ２１による動作クロックの制御は、Ｉ／Ｏコントローラ１７から出力される動作コマンドによって行われる。そして、キーボードコントローラ２２は、キーボード２３の操作内容をキーコード化してＣＰＵ１１に伝達する。
【００２１】
このようなハードウェア構成の本コンピュータ１上で動作するユーティリティソフトウェアであるコアコントローラ１０１は、フラッシュＲＯＭ１９に保持された認証コードを使って、認証コード付プログラム１０３との間で認証処理を実行する。そして、この認証が成立したら、コアコントローラ１０１は、コア（２）１１ｂへの動作電力の供給および動作クロックの供給を開始すべく、Ｉ／Ｏコントローラ１７を介して電源コントローラ２０およびクロックジェネレータ２１に指示を与える。本コンピュータ１におけるＣＰＵ１１の基本状態は、コア（２）１１ｂは停止状態にあって、コア（１）１１ａのみが動作状態にある状態である。なお、認証コードは、例えば製造時などの出荷前に、フラッシュＲＯＭ１９に書き込まれ、出荷後に、当該コアコントローラ１０１以外の外部プログラムによる読み取りはできないように保護されている。
【００２２】
また、同じく本コンピュータ１上で動作するユーティリティソフトウェアであるタスクコントローラ１０２は、認証コード付プログラム１０３を含む各種プログラムに付与された優先度（例えば０〜１０）に基づき、起動されたプログラムのコア（１）１１ａまたはコア（２）１１ｂへの割り当てを制御する。本コンピュータ１のタスクコントローラ１０２は、第１に、優先度１〜１０のプログラムをコア（１）１１ａに割り当て、優先度０のプログラムをコア（２）１１ｂに割り当てるという制御を行う。また、第２に、タスクコントローラ１０２は、あるコアに割り当て可能な実行待ち状態にあるプログラムが複数存在した場合、優先度の値が大きい方のプログラムを先に当該コアに割り当てるという制御を行う。そして、このタスクコントローラ１０２による第１の制御を利用して、コアコントローラ１０１は、認証が成立した認証コード付プログラム１０３の優先度を本来の値から０に変更することにより、コア（２）１１ｂへの割り当てを実行させる。
【００２３】
次に、図２を参照して、認証コード付プログラム１０３がＣＰＵ１１のコア（２）１１ｂ上で動作する原理を説明する。
【００２４】
認証コード付プログラム１０３は、例えば（フラッシュＲＯＭ１９に保持されることになっている）認証コードを保持し、かつ、この認証コードをコアコントローラ１０１に転送するためのプログラムをマクロ等としてソースプログラムに埋め込んでビルドすることによって作成される。また、この認証コード付プログラム１０３には、メインコア１１ａでの実行が即時に行われるように、付与される優先度の初期値として１０が定義されている。
【００２５】
従って、認証コード付プログラム１０３は、まず、メインコア１１ａによってメインメモリ１３にロードされて（図２の（２））、このメインコア１１ａ上で動作を開始する（図２の（３））。また、この際、この認証コード付プログラム１０３には、タスクコントローラ１０２によって初期値の優先度１０が付与される（図２の（３））、そして、メインコア１１ａで動作を開始した認証コード付プログラム１０３は、前述のマクロプログラム等によって認証コードをコアコントローラ１０１に転送する（図２の（４））。
【００２６】
一方、コアコントローラ１０１は、転送されてきた認証コードとフラッシュＲＯＭ１９に保持された認証コードとを比較することによって、認証コード付プログラム１０３の認証処理を実行する。そして、この認証が成立したら、コアコントローラ１０１は、拡張コア１１ｂへの動作電力の供給および動作クロックの供給を開始し（図２の（５））、認証コード付プログラム１０３の優先度を０に変更する旨をタスクコントローラ１０２に指示する（図２の（６））。
【００２７】
この指示に従い、タスクコントローラ１０２は、認証コード付プログラム１０３に優先度０を付与する（図２の（７））。これにより、これ以降、認証コード付プログラム１０３は、拡張コア１１ｂで動作することになる（図２の（８））。なお、認証が成立しなかった場合には、認証コード付プログラム１０３の優先度は変更されず、その結果、メインコア１１ａで動作が継続されることになる。
【００２８】
また、認証コード付プログラム１０３は、その処理を終了する際、拡張コア１１ｂを停止させる旨の指示を、前述のマクロプログラム等によってコアコントローラ１０１に送信する（図２の（９））。この指示を受けたコアコントローラ１０１は、認証コード付プログラム１０３に初期値である優先度１０に再変更する旨をタスクコントローラ１０２に指示する（図２の（１０））。この指示に従い、タスクコントローラ１０２は、認証コード付プログラム１０３に優先度１０を付与する（図２の（１１））。
【００２９】
そうすると、認証コード付プログラム１０３は、メインコア１１ａ上で動作を終了することになり（図２の（１２））、また、コアコントローラ１０１は、拡張コア１１ｂに対する動作電力の供給および動作クロックの供給を停止する（図２の（１３））。
【００３０】
図３は、本コンピュータ１で実行されるマルチコアＣＰＵにおけるコア利用制御の手順を示すフローチャートである。
【００３１】
まず、タスクコントローラ１０２が、認証コード付プログラム１０３をメインコア１１ａに割り当てる（ステップＡ１）。次に、このメインコア１１ａで動作を開始した認証コード付プログラム１０３とコアコントローラ１０１との間で、予め定められた認証コードを使った認証処理を実行する（ステップＡ２）。
【００３２】
この認証が成立すると（ステップＡ３のＹＥＳ）、コアコントローラ１０１は、拡張コア１１ｂを起動し（ステップＡ４）、認証コード付プログラム１０３の拡張コア１１ｂへの再割り当てをタスクコントローラ１０２に指示する（ステップＡ５）。
【００３３】
その後、この認証コード付プログラム１０３が終了処理を開始すると（ステップＡ６のＹＥＳ）、コアコントローラ１０１は、認証コード付プログラム１０３のメインコア１１ａへの再割り当てをタスクコントローラ１０２に指示し（ステップＡ７）、拡張コア１１ｂを停止させる（ステップＡ８）。
【００３４】
ところで、前述の手順では、例えば認証コード付プログラム１０３が複数起動された場合、各々で認証が成立するので、これらすべてが拡張コア１１ｂに割り当てられることになる。すると、たとえ他のプログラムと混在して実行されてもリアルタイム性を損なうこと等がないように、拡張コア１１ｂへの割り当てを特権的に与えられていたとしても、拡張コア１１ｂ上が高負荷状態となり、リアルタイム性を損なうおそれが生じてしまう。
【００３５】
そこで、さらに、本コンピュータ１では、認証コード付プログラム１０３の起動数を制限するための仕組みを備える。より具体的には、フラッシュＲＯＭ１９に保持される認証コードに、当該認証コードを用いた認証を経て実行される認証コード付プログラム１０３の同時実行可能数を付属させる。図４は、この付属情報を用いて本コンピュータ１が実行するマルチコアＣＰＵにおけるコア利用制御の手順を示すフローチャートである。
【００３６】
まず、タスクコントローラ１０２が、認証コード付プログラム１０３をメインコア１１ａに割り当てる（ステップＢ１）。次に、このメインコア１１ａで動作を開始した認証コード付プログラム１０３とコアコントローラ１０１との間で、予め定められた認証コードを使った認証処理を実行する（ステップＢ２）。
【００３７】
この認証が成立すると（ステップＢ３のＹＥＳ）、コアコントローラ１０１は、拡張コア１１ｂは起動中かどうかを調べ（ステップＢ４）、起動中でなければ（ステップＢ４のＮＯ）、拡張コア１１ｂを起動し（ステップＢ５）、認証コード付プログラム１０３の拡張コア１１ｂへの再割り当てをタスクコントローラ１０２に指示する（ステップＢ９）。
【００３８】
一方、拡張コア１１ｂが起動中であれば（ステップＢ４のＹＥＳ）、コアコントローラ１０１は、この認証コードによる同時実行可能数を調べ（ステップＢ６）、当該認証コード付プログラム１０３は実行可能かを判定する（ステップＢ７）。実行可能でなかったならば（ステップＢ７のＮＯ）、コアコントローラ１０１は、拡張コア１１ｂへの再割り当てを許可せず、メインコア１１ａでの動作を継続させる。また、実行可能であったならば（ステップＢ７のＹＥＳ）、コアコントローラ１０１は、この認証コード付プログラム１０３の拡張コア１１ｂへの再割り当てをタスクコントローラ１０２に指示する（ステップＢ８）。
【００３９】
その後、この認証コード付プログラム１０３が終了処理を開始すると（ステップＢ９のＹＥＳ）、コアコントローラ１０１は、認証コード付プログラム１０３のメインコア１１ａへの再割り当てをタスクコントローラ１０２に指示し（ステップＢ１０）、当該認証コード付プログラム１０３の終了によってすべての認証コード付プログラム１０３が終了となるのかどうかを調べる（ステップＢ１１）。そして、すべての認証コード付プログラム１０３が終了となる場合（ステップＢ１１のＹＥＳ）、コアコントローラ１０１は、拡張コア１１ｂを停止させる（ステップＢ１２）。
【００４０】
これにより、例えば非常に高負荷でリアルタイム性を損なうことなく同時に２つ動作させることが困難な認証コード付プログラム１０３について、同時実行可能数を１に設定しておけば、当該認証コード付プログラム１０３が拡張コア１１ｂにて２つ以上同時に実行されることを制限することができる。
【００４１】
以上のように、本コンピュータ１によれば、同一構成の複数のプロセッサを効率的に使い分けることが実現される。
【００４２】
なお、前述の実施形態においては、認証コード付プログラム１０３の割り当て有無に応じて、拡張コア１１ｂに対する動作電力の供給および動作クロックの供給を行う例を説明したが、例えば動作電力の供給有無については、（認証コード付プログラム１０３の割り当てよりも前段階の）認証コード付プログラム１０３の起動有無に応じて行うようにしてもよい。
【００４３】
また、認証の不成立時、または同時実行可能数を越える認証コード付プログラム１０３の動作時、拡張コア１１ｂへの再割り当てを許可せずにメインコア１１ａでの動作を継続させる例を説明したが、認証の不成立時点等において、その認証コード付プログラム１０３を停止させるようにしてもよい。
【００４４】
このように、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００４５】
【図１】この発明の一実施形態に係る情報処理装置（パーソナルコンピュータ）のハードウェア構成例を示す図
【図２】同実施形態のコンピュータにおいて認証コード付プログラムがＣＰＵの拡張コア上で動作する原理を説明するための図
【図３】同実施形態のコンピュータで実行されるマルチコアＣＰＵにおけるコア利用制御の手順を示すフローチャート
【図４】同実施形態のコンピュータが付属情報を用いて実行するマルチコアＣＰＵにおけるコア利用制御の手順を示すフローチャート
【符号の説明】
【００４６】
１…情報処理装置（パーソナルコンピュータ）、１１…ＣＰＵ、１１ａ…メインコア、１１ｂ…拡張コア、１２…ホストコントローラ、１３…メインメモリ、１４…表示コントローラ、１５…表示装置、１６…表示用メモリ、１７…Ｉ／Ｏコントローラ、１８…記憶装置、１９…フラッシュＲＯＭ、２０…電源コントローラ、２１…クロックジェネレータ、２２…キーボードコントローラ、２３…キーボード、１０１…コアコントローラ、１０２…タスクコントローラ、１０３…認証コード付プログラム。
【図１】
2008242948.tif 000003
【図２】
2008242948.tif 000004
【図３】
2008242948.tif 000005
【図４】
2008242948.tif 000006