(57)【要約】【課題】互いに種類の異なる複数のプロセッサを含むシステムにおける省電力化やシステム処理効率の向上を実現する。【解決手段】ＡＶアプリケーションプログラム１０１は、２つのデコード用プログラムモジュール２０１，２０２を有している。プログラムモジュール２０１は、ＭＰＵ１２３に動画像デコード処理を実行させるためのプログラムモジュールであり、ＭＰＵ１２３の命令セットを用いて記述されている。プログラムモジュール２０２は、ＧＰＵ１１６に動画像デコード処理を実行させるためのプログラムモジュールであり、ＧＰＵ１１６の命令セットを用いて記述されている。制御用プログラムモジュール２０４は、デコード用プログラムモジュール２０１をＭＰＵ１２３に割り当てるモードと、デコード用プログラムモジュール２０２をＧＰＵ１１６に割り当てるモードとを選択的に切り替えることができる。【選択図】      図３
2011210282.tif 000002
【特許請求の範囲】
【請求項１】
圧縮符号化された動画像データをデコードするデコード処理を実行可能な第１のプロセッサと、
前記第１のプロセッサよりも前記デコード処理を高速に実行するように構成される第２のプロセッサと、
前記デコード処理を前記第１のプロセッサまたは前記第２のプロセッサに実行させるプログラムを格納する記憶部と、
情報処理装置が前記情報処理装置内に設けられたバッテリによって駆動されている場合、前記プログラムを使用して前記デコード処理を前記第１のプロセッサに実行させる制御手段とを具備することを特徴とする情報処理装置。
【請求項２】
前記制御手段は、前記情報処理装置が外部電源によって駆動されている場合、前記プログラムを使用して前記デコード処理を前記第２のプロセッサに実行させることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記第１のプロセッサは第１の命令セットを有し、前記第２のプロセッサは前記第１の命令セットとは異なる第２の命令セットを有し、
前記プログラムは、前記第２の命令セットを用いて記述され前記デコード処理を前記第２のプロセッサに実行させるための第１のプログラムモジュール、および前記第１の命令セットを用いて記述され前記デコード処理を前記第１のプロセッサに実行させるための第２のプログラムモジュールを含むことを特徴とする請求項１記載の情報処理装置。
【請求項４】
第１の命令セットを有し、圧縮符号化された動画像データをデコードするデコード処理を実行可能な第１のプロセッサと、
前記第１の命令セットとは異なる第２の命令セットを有し、前記第１のプロセッサよりも前記デコード処理を高速に実行するように構成される第２のプロセッサと、
前記第２の命令セットを用いて記述され前記デコード処理を前記第２のプロセッサに実行させるための第１のプログラムモジュール、および前記第１の命令セットを用いて記述され前記デコード処理を前記第１のプロセッサに実行させるための第２のプログラムモジュールを含み、圧縮符号化された動画像データを再生する動画再生処理を実行するためのプログラムを格納する記憶部と、
前記プログラムによって前記動画再生処理を実行する場合、情報処理装置が前記情報処理装置内に設けられたバッテリまたは外部電源のどちらによって駆動されているかを判別する手段と、
前記情報処理装置が前記外部電源によって駆動されている場合、前記第１のプログラムモジュールを前記第２のプロセッサに割り当てることによって前記デコード処理を前記第２のプロセッサに実行させ、前記情報処理装置が前記バッテリによって駆動されている場合、前記第２のプログラムモジュールを前記第１のプロセッサに割り当てることによって前記デコード処理を前記第１のプロセッサに実行させる制御手段とを具備することを特徴とする情報処理装置。
【請求項５】
前記制御手段は、前記情報処理装置が前記バッテリによって駆動されている場合、前記第２のプロセッサを動作状態から前記動作状態よりも電力消費の少ない状態に移行させることを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記プログラムは、前記第１の命令セットを用いて記述され、前記デコード処理によってデコードされた動画像データに対して施すべき所定の映像処理を前記第１のプロセッサに実行させる第３のプログラムモジュールをさらに含み、
前記制御手段は、前記情報処理装置が前記外部電源によって駆動されている場合、前記第１のプログラムモジュールを前記第２のプロセッサに割り当てることによって前記デコード処理を前記第２のプロセッサに実行させると共に前記第３のプログラムモジュールを前記第１のプロセッサに割り当てることによって前記映像処理を前記第１のプロセッサに実行させ、前記情報処理装置が前記バッテリによって駆動されている場合、前記第２のプログラムモジュールを前記第１のプロセッサに割り当てることによって前記デコード処理を前記第１のプロセッサに実行させると共に前記第１のプロセッサによって実行すべき前記映像処理の中の少なくとも一部の処理を省略することを特徴とする請求項４記載の情報処理装置。
【請求項７】
前記第１のプロセッサは、表示装置に表示されるべき画面を形成する映像信号を生成するグラフィクス処理プロセッサであり、
前記第２のプロセッサは、動画像データストリームを処理するように構成されたメディア処理プロセッサであることを特徴とする請求項４記載の情報処理装置。
【請求項８】
第１の命令セットを有し、汎用処理、ベクトル演算を含むグラフィクス演算処理、および圧縮符号化された動画像データをデコードするデコード処理を実行可能なメインプロセッサと、
第２の命令セットを有し、前記グラフィクス演算処理および前記デコード処理を実行可能であり、且つ前記メインプロセッサよりも前記グラフィクス演算処理および前記デコード処理を高速に実行するように構成された第１のサブプロセッサと、
第３の命令セットを有し、前記グラフィクス演算処理および前記デコード処理を実行可能であり、且つ前記第１のサブプロセッサよりも前記デコード処理を高速に実行するように構成され、且つ前記第１のサブプロセッサよりも前記グラフィクス演算処理の処理性能が低い第２のサブプロセッサと、
前記第３の命令セットを用いて記述され圧縮符号化された動画像データをデコードするためのデコード処理を前記第２のサブプロセッサに実行させるための第１のプログラムモジュールと、前記第２の命令セットを用いて記述され前記デコード処理を前記第１のサブプロセッサに実行させるための第２のプログラムモジュールと、前記第２の命令セットを用いて記述され前記デコード処理によってデコードされた動画像データに対して施すべき所定の映像処理を前記第１のサブプロセッサに実行させる第３のプログラムモジュールと、前記第１の命令セットを用いて記述された制御用プログラムモジュールとを含み、圧縮符号化された動画像データを再生する動画再生処理を実行するためのプログラムを格納する記憶部と、
前記プログラムによって前記動画再生処理を実行する場合、情報処理装置が前記情報処理装置内に設けられたバッテリまたは外部電源のどちらによって駆動されているかを判別する手段と、
前記制御用プログラムモジュールを前記メインプロセッサに実行させることによって前記第１乃至第３のプログラムモジュールの実行を制御する制御手段であって、前記情報処理装置が前記外部電源によって駆動されている場合には、前記第１のプログラムモジュールを前記第２のサブプロセッサに割り当てると共に、前記第３のプログラムモジュールを前記第１のサブプロセッサに割り当て、前記情報処理装置が前記バッテリによって駆動されている場合には、前記第２のプログラムモジュールを前記第１のサブプロセッサに割り当てると共に、前記第２および第３のプログラムモジュールを前記第１のサブプロセッサに割り当て、且つ前記第２のサブプロセッサを動作状態から前記動作状態よりも電力消費の少ない状態に移行させる制御手段とを具備することを特徴とする情報処理装置。
【請求項９】
前記制御手段は、前記情報処理装置が前記バッテリによって駆動されている場合には、前記第１のサブプロセッサによって実行すべき前記映像処理の中の少なくとも一部の処理を省略することを特徴とする請求項８記載の情報処理装置。
【請求項１０】
第１の命令セットを有し、圧縮符号化された動画像データをデコードするデコード処理を実行可能な第１のプロセッサと、前記第１の命令セットとは異なる第２の命令セットを有し、前記第１のプロセッサよりも前記デコード処理を高速に実行するように構成される第２のプロセッサとを有する情報処理装置におけるプログラムの実行を制御するプログラム実行制御方法であって、
前記第２の命令セットを用いて記述され前記デコード処理を前記第２のプロセッサに実行させるための第１のプログラムモジュール、および前記第１の命令セットを用いて記述され前記デコード処理を前記第１のプロセッサに実行させるための第２のプログラムモジュールを含み、圧縮符号化された動画像データを再生する動画再生処理を実行するためのプログラムを入力するステップと、
前記プログラムによって前記動画再生処理を実行する場合、情報処理装置が前記情報処理装置内に設けられたバッテリまたは外部電源のどちらによって駆動されているかを判別するステップと、
前記情報処理装置が前記外部電源によって駆動されている場合、前記第１のプログラムモジュールを前記第２のプロセッサに割り当てることによって前記デコード処理を前記第２のプロセッサに実行させ、前記情報処理装置が前記バッテリによって駆動されている場合、前記第２のプログラムモジュールを前記第１のプロセッサに割り当てることによって前記デコード処理を前記第１のプロセッサに実行させる制御ステップとを具備することを特徴とするプログラム実行制御方法。
【請求項１１】
前記制御ステップは、前記情報処理装置が前記バッテリによって駆動されている場合、前記第２のプロセッサを動作状態から前記動作状態よりも電力消費の少ない状態に移行させることを特徴とする請求項１０記載のプログラム実行制御方法。
【請求項１２】
前記プログラムは、前記第１の命令セットを用いて記述され、前記デコード処理によってデコードされた動画像データに対して施すべき所定の映像処理を前記第１のプロセッサに実行させる第３のプログラムモジュールをさらに含み、
前記制御ステップは、前記情報処理装置が前記外部電源によって駆動されている場合、前記第１のプログラムモジュールを前記第２のプロセッサに割り当てることによって前記デコード処理を前記第２のプロセッサに実行させると共に前記第３のプログラムモジュールを前記第１のプロセッサに割り当てることによって前記映像処理を前記第１のプロセッサに実行させ、前記情報処理装置が前記バッテリによって駆動されている場合、前記第２のプログラムモジュールを前記第１のプロセッサに割り当てることによって前記デコード処理を前記第１のプロセッサに実行させると共に前記第１のプロセッサによって実行すべき前記映像処理の中の少なくとも一部の処理を省略することを特徴とする請求項１１記載のプログラム実行制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパーソナルコンピュータのような情報処理装置および同情報処理装置におけるプログラムの実行を制御するプログラム実行制御方法に関する。
【背景技術】
【０００２】
近年、バッテリ駆動可能なパーソナルコンピュータが開発されている。この種のパーソナルコンピュータにおいては、電力消費の低減を図るためのパワーマネージメント技術が利用されている。
【０００３】
また、最近では、パーソナルコンピュータにおいては、動画データのようなマルチメディアデータをリアルタイムに処理する必要性等から、処理性能の向上が求められている。このため、パーソナルコンピュータにおいても、マルチプロセッサシステム構成の採用が進められている。
【０００４】
特許文献１には、複数のＣＰＵを含むマルチプロセッサシステムにおいて、多くの処理能力を必要としない場合に、一つまたは複数のＣＰＵを停止またはサスペンドすることにより、システムが必要とする処理能力を満たした上でシステム全体の消費電力を削減する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２０２９８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１の技術はシステムが多くの処理能力を必要としない場合に省電力効果を得るという仕組みであり、システムが多くの処理能力を必要としている場合には何等省電力効果を得ることはできない。
【０００７】
また、特許文献１のシステムは、複数のＣＰＵが同一のアーキテクチャを有するものである場合を前提としており、互いに種類の異なる複数のプロセッサを含むヘテロジニアスマルチプロセッサシステムについては何等考慮されていない。
【０００８】
ヘテロジニアスマルチプロセッサシステムにおいては、個々のプロセッサが担当すべき主たる役割が予め決められており、ある特定種の処理は、その処理性能に優れたプロセッサにのみ割り当てられる。また、通常、各プロセッサが有する命令セットの種類も異なる。このため、ある命令セットを用いて記述された処理は、その命令セットに対応するプロセッサでしか実行することができない。
【０００９】
したがって、あるプロセッサの動作を単純に停止させると、そのプロセッサがサポートする命令セットを用いて記述された処理はもはや実行することが出来なくなってしまう。よって、あるプロセッサがサポートする命令セットを用いて記述された処理の実行が必要な場合には、たとえシステムの電力消費量を低減させることが必要な状況下においても、当該プロセッサを実際上停止することはできない。
【００１０】
また、同一種の処理の量が多い場合には、それら処理の記述に用いられた命令セットをサポートする特定のプロセッサにのみ負荷が集中してしまう。この場合、例えば、動画像データの再生処理のようなリアルタイム性が要求される処理を正常に実行することが出来なくなる可能性もある。
【００１１】
本発明は上述の事情を考慮してなされたものであり、互いに種類の異なる複数のプロセッサを含むシステムにおける省電力化やシステム処理効率の向上を実現することが可能な情報処理装置およびプログラム実行制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述の課題を解決するため、本発明の情報処理装置は、圧縮符号化された動画像データをデコードするデコード処理を実行可能な第１のプロセッサと、前記第１のプロセッサよりも前記デコード処理を高速に実行するように構成される第２のプロセッサと、前記デコード処理を前記第１のプロセッサまたは前記第２のプロセッサに実行させるプログラムを格納する記憶部と、情報処理装置が前記情報処理装置内に設けられたバッテリによって駆動されている場合、前記プログラムを使用して前記デコード処理を前記第１のプロセッサに実行させる制御手段とを具備することを特徴とする。また本発明の情報処理装置は、第１の命令セットを有し、圧縮符号化された動画像データをデコードするデコード処理を実行可能な第１のプロセッサと、前記第１の命令セットとは異なる第２の命令セットを有し、前記第１のプロセッサよりも前記デコード処理を高速に実行するように構成される第２のプロセッサと、前記第２の命令セットを用いて記述され前記デコード処理を前記第２のプロセッサに実行させるための第１のプログラムモジュール、および前記第１の命令セットを用いて記述され前記デコード処理を前記第１のプロセッサに実行させるための第２のプログラムモジュールを含み、圧縮符号化された動画像データを再生する動画再生処理を実行するためのプログラムを格納する記憶部と、前記プログラムによって前記動画再生処理を実行する場合、情報処理装置が前記情報処理装置内に設けられたバッテリまたは外部電源のどちらによって駆動されているかを判別する手段と、前記情報処理装置が前記外部電源によって駆動されている場合、前記第１のプログラムモジュールを前記第２のプロセッサに割り当てることによって前記デコード処理を前記第２のプロセッサに実行させ、前記情報処理装置が前記バッテリによって駆動されている場合、前記第２のプログラムモジュールを前記第１のプロセッサに割り当てることによって前記デコード処理を前記第１のプロセッサに実行させる制御手段とを具備することを特徴とする。
【００１３】
また、本発明の情報処理装置は、第１の命令セットを有し、汎用処理、ベクトル演算を含むグラフィクス演算処理、および圧縮符号化された動画像データをデコードするデコード処理を実行可能なメインプロセッサと、第２の命令セットを有し、前記グラフィクス演算処理および前記デコード処理を実行可能であり、且つ前記メインプロセッサよりも前記グラフィクス演算処理および前記デコード処理を高速に実行するように構成された第１のサブプロセッサと、第３の命令セットを有し、前記グラフィクス演算処理および前記デコード処理を実行可能であり、且つ前記第１のサブプロセッサよりも前記デコード処理を高速に実行するように構成され、且つ前記第１のサブプロセッサよりも前記グラフィクス演算処理の処理性能が低い第２のサブプロセッサと、前記第３の命令セットを用いて記述され圧縮符号化された動画像データをデコードするためのデコード処理を前記第２のサブプロセッサに実行させるための第１のプログラムモジュールと、前記第２の命令セットを用いて記述され前記デコード処理を前記第１のサブプロセッサに実行させるための第２のプログラムモジュールと、前記第２の命令セットを用いて記述され前記デコード処理によってデコードされた動画像データに対して施すべき所定の映像処理を前記第１のサブプロセッサに実行させる第３のプログラムモジュールと、前記第１の命令セットを用いて記述された制御用プログラムモジュールとを含み、圧縮符号化された動画像データを再生する動画再生処理を実行するためのプログラムを格納する記憶部と、前記プログラムによって前記動画再生処理を実行する場合、情報処理装置が前記情報処理装置内に設けられたバッテリまたは外部電源のどちらによって駆動されているかを判別する手段と、前記制御用プログラムモジュールを前記メインプロセッサに実行させることによって前記第１乃至第３のプログラムモジュールの実行を制御する制御手段であって、前記情報処理装置が前記外部電源によって駆動されている場合には、前記第１のプログラムモジュールを前記第２のサブプロセッサに割り当てると共に、前記第３のプログラムモジュールを前記第１のサブプロセッサに割り当て、前記情報処理装置が前記バッテリによって駆動されている場合には、前記第２のプログラムモジュールを前記第１のサブプロセッサに割り当てると共に、前記第２および第３のプログラムモジュールを前記第１のサブプロセッサに割り当て、且つ前記第２のサブプロセッサを動作状態から前記動作状態よりも電力消費の少ない状態に移行させる制御手段とを具備することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、互いに種類の異なる複数のプロセッサを含むシステムにおける省電力化やシステム処理効率の向上を実現することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態に係るコンピュータの概観を示す斜視図。
【図２】図１のコンピュータのシステム構成の例を示すブロック図。
【図３】図１のコンピュータで実行されるＡＶアプリケーションプログラムの機能構成の例を示す図。
【図４】図１のコンピュータのシステム構成の他の例を示すブロック図。
【図５】図１のコンピュータに設けられた各プロセッサの特徴を説明するための図。
【図６】図１のコンピュータに各プロセッサに対する処理の割り当ての例を示す図。
【図７】図１のコンピュータに各プロセッサに対する処理の割り当ての別の例を示す図。
【図８】図１のコンピュータによって実行される動画再生処理の手順を示すフローチャート。
【図９】図１のコンピュータにおけるソフトウェアとハードウェアとの関係の例を示す図。
【図１０】図１のコンピュータのさらに他のシステム構成の例を示す図。
【図１１】図１０のシステムに適用される動画再生処理の手順を示すフローチャート。
【発明を実施するための形態】
【００１６】
以下、図面を参照して、本発明の実施形態を説明する。  
まず、図１および図２を参照して、本発明の一実施形態に係る情報処理装置の構成について説明する。この情報処理装置は、例えば、バッテリ駆動可能なノートブック型の携帯型パーソナルコンピュータ１０として実現されている。
【００１７】
図１はコンピュータ１０のディスプレイユニットを開いた状態における斜視図である。本コンピュータ１０は、コンピュータ本体１１と、ディスプレイユニット１２とから構成されている。ディスプレイユニット１２には、ＬＣＤ（Liquid Crystal Display）１７から構成される表示装置が組み込まれている。
【００１８】
ディスプレイユニット１２は、コンピュータ本体１１に対して、コンピュータ本体１１の上面が露出される開放位置と上面がディスプレイユニット１２によって覆われる閉塞位置との間を回動自在に取り付けられている。コンピュータ本体１１はバッテリが取り外し自在に装着可能な薄い箱形の筐体を有している。
【００１９】
コンピュータ本体１１の上面にはキーボード１３、本コンピュータ１をパワーオン／オフするためのパワーボタンスイッチ１４、およびタッチパッド１５などが配置されている。
【００２０】
次に、図２を参照して、本コンピュータ１０のシステム構成について説明する。
【００２１】
本コンピュータ１０は、図２に示されているように、ＣＰＵ１１１、ノースブリッジ１１４、システムメモリ（主メモリと称されることもある）１１５、グラフィクスプロセッシングユニット（ＧＰＵ）１１６、サウスブリッジ１１７、ＢＩＯＳ−ＲＯＭ１２０、ハードディスクドライブ（ＨＤＤ）１２１、光ディスクドライブ（ＯＤＤ）１２２、メディアプロセッシングユニット（ＭＰＵ）１２３、ローカルメモリ１２４、ＴＶチューナ１２５、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１４０、および電源回路１４１等を備えている。
【００２２】
このように、本コンピュータ１０は、ＣＰＵ１１１、ＧＰＵ１１６、およびＭＰＵ１２３という３つの異なる種類のプロセッサが設けられたヘテロジニアスマルチプロセッサシステムである。ＣＰＵ１１１、ＧＰＵ１１６、およびＭＰＵ１２３は互いに異なる命令セットを有しており、またＣＰＵ１１１、ＧＰＵ１１６、およびＭＰＵ１２３それぞれのアーキテクチャも互いに異なっている。
【００２３】
ＣＰＵ１１１は本コンピュータ１０の動作を制御するために設けられたプロセッサ（メインプロセッサ）であり、ＨＤＤ１２１からシステムメモリ１１５にロードされる、オペレーティングシステムおよび各種アプリケーションプログラムを実行する。本コンピュータ１０においては、システムメモリ１１５にロードされて実行されるアプリケーションプログラムの一つとして、ＡＶアプリケーションプログラム１０１が予めＨＤＤ１２１のような記憶部にインストールされている。このＡＶアプリケーションプログラム１０１は、放送番組データの再生・録画処理、およびＤＶＤタイトルのような動画像データの再生等を実行するためのプログラムである。
【００２４】
ＣＰＵ１１１は汎用のプロセッサとして機能し、ベクトル演算のような特別な演算処理ではなく、通常のアプリケーション／オペレーティングシステムの処理のような制御処理を主として実行する。また、ＣＰＵ１１１は、ＢＩＯＳ−ＲＯＭ１２０に格納されたＢＩＯＳ（Basic Input Output System）も実行する。ＢＩＯＳはハードウェア制御のためのプログラムである。このＢＩＯＳは、本コンピュータ１０の各種システム状態を管理する機能も有している。
【００２５】
ノースブリッジ１１４はＣＰＵ１１１のローカルバスとサウスブリッジ１１７との間を接続するブリッジデバイスである。ノースブリッジ１１４には、主メモリ１１５をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ１１４には、PCI Expressバスなどを介してＧＰＵ１１６にも接続されている。
【００２６】
ＧＰＵ１１６は、グラフィクス演算機能を有しており、本コンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７等の表示装置に表示されるべき画面を形成する映像信号を生成するグラフィクス処理プロセッサ（サブプロセッサ）である。ＧＰＵ１１６は、汎用プロセッサであるＣＰＵ１１１とは異なる命令セットを有しており、ベクトル演算を含む２次元または３次元のグラフィクス演算処理をＣＰＵ１１１よりも高速に実行することが出来る。また、ＧＰＵ１１６は、表示装置に表示されるべき映像の画質を改善するための画質改善処理（例えば、平滑化のためのフィルタリング処理、白／黒伸張処理、インターレース／プログレッシブ変換処理、スケーリング処理、ＬＣＤオーバードライブ処理、等）、圧縮符号化された動画像データをデコードするデコード処理、動画像データを圧縮符号化するエンコード処理、等も実行することができる。ＧＰＵ１１６にベクトル演算・画質改善・動画デコード・動画エンコードなどの処理を実行させるためには、ＧＰＵ１１６の命令セットを用いて記述された専用のプログラムモジュール（バイナリコード）が必要となる。ビデオメモリ（ＶＲＡＭ）１１６ＡはＧＰＵ１１６の作業メモリとして用いられる。
【００２７】
サウスブリッジ１１７は、ハードディスクドライブ（ＨＤＤ）１２１および光ディスクドライブ（ＯＤＤ）１２２を制御するためのＩＤＥ（Integrated Drive Electronics）コントローラやSerial ATAコントローラを内蔵している。また、サウスブリッジ１１７には、ＭＰＵ１２３およびＴＶチューナ１２５が接続されている。
【００２８】
ＭＰＵ１２３は、主に動画デコード・動画エンコードなどを処理するプロセッサ（サブプロセッサ）であり、ＣＰＵ１１１およびＧＰＵ１１６それぞれとは異なる命令セットを有している。ＭＰＵ１２３は、動画像データストリームを処理するための演算処理（動画デコード・動画エンコードなど）をＣＰＵ１１１およびＧＰＵ１１６よりも高速に実行するように構成されている。ローカルメモリ１２４はＭＰＵ１２３の作業用メモリとして用いられる。ＭＰＵ１２３に動画像データストリームを処理するための演算処理を実行させるためには、ＭＰＵ１２３の命令セットを用いて記述された専用のプログラムモジュール（バイナリコード）が必要となる。
【００２９】
ＴＶチューナ１２５は、放送信号によって放送される放送番組データを受信する。ＴＶチューナ１２５は、アナログ放送信号によって放送される放送番組データを受信するアナログＴＶチューナ、または地上波デジタル放送信号によって放送される放送番組データを受信するデジタルＴＶチューナから構成されている。
【００３０】
エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１４０は、電力管理のためのエンベデッドコントローラと、キーボード（ＫＢ）１３およびタッチパッド１５を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。ＥＣ／ＫＢＣ１４０には、本コンピュータ１０が電源オフされた状態においても、電源回路１４１から常に動作電源が供給される。
【００３１】
このＥＣ／ＫＢＣ１４０は、ユーザによるパワーボタンスイッチ１４の操作に応じて本コンピュータ１０をパワーオン／パワーオフする機能を有している。本コンピュータ１０のパワーオン／パワーオフの制御は、ＥＣ／ＫＢＣ１４０と電源回路１４１との共同動作によって実行される。電源回路１４１は、コンピュータ本体１１に装着されたバッテリ１４２からの電力、またはコンピュータ本体１１に外部電源として接続されるＡＣアダプタ１４３からの電力を用いて、各コンポーネントへの動作電源を生成する。
【００３２】
本コンピュータ１０は、バッテリ１４２によって駆動されるバッテリ駆動モードと、外部電源によって駆動されるＡＣアダプタ駆動モード（または単にＡＣ駆動モードと云う）との両モードを有している。ＡＣアダプタ１４３が本コンピュータ１０に接続されている場合つまり外部電源が本コンピュータ１０に供給されている場合には、電源回路１４１はＡＣアダプタ１４３からの電力を用いて動作電源を生成し、これによって本コンピュータ１０はＡＣアダプタ駆動モードで動作する。一方、ＡＣアダプタ１４３が本コンピュータ１０に接続されていない場合つまり外部電源が本コンピュータ１０に供給されていない場合には、電源回路１４１はバッテリ１４２からの電力を用いて動作電源を生成し、これによって本コンピュータ１０はバッテリ駆動モードで動作する。
【００３３】
ＥＣ／ＫＢＣ１４０には、本コンピュータ１０がバッテリ駆動モード／ＡＣアダプタ駆動モードのどちらのモードで現在動作しているかを示すステータスデータを格納するレジスタが設けられており、ＯＳおよびアプリケーションプログラムグラムから当該ステータスデータを参照することが可能である。
【００３４】
通常、バッテリ駆動時は、ＡＣアダプタ駆動時と比較して、放電容量の制限によりシステム全体の消費電力を低い状態に維持する必要がある。たとえば、ＡＣアダプタ駆動時には１００%の性能で動作させられても、バッテリ駆動時には７０%の性能に抑えることが必要とされる。このため、本コンピュータ１０においては、バッテリ駆動モードにおいては、複数のプロセッサの内の一つ、例えば、ＭＰＵ１２３を、その通常動作状態よりも電力消費の少ない状態（スリープ状態）に設定する機能が設けられている。スリープ状態はＭＰＵ１２３が動作停止されている状態であり、ＭＰＵ１２３は命令／処理を実行しない。この場合、ＭＰＵ１２３に割り当てられるべき、例えば動画像デコード処理のような処理は、別のプロセッサ、例えば、ＧＰＵ１１６によって実行される。
【００３５】
これを実現するため、ＡＶアプリケーションプログラム１０１には、ＭＰＵ１２３に所定の演算処理を含む処理（デコード処理等）を実行させるための第１のプログラムモジュールと、同一の処理をＧＰＵ１１６に実行させるための第２のプログラムモジュールとが含まれている。第１のプログラムモジュールはＭＰＵ１２３の命令セットを用いて記述されており、また第２のプログラムモジュールはＧＰＵ１１６の命令セットを用いて記述されている。ＡＶアプリケーションプログラム１０１は、第１のプログラムモジュールをＭＰＵ１２３に割れ当てることによって動画像デコード処理等をＭＰＵ１２３に実行させるモード（第１モード）と、第２のプログラムモジュールをＧＰＵ１１６に割り当てることによって動画像デコード処理等をＧＰＵ１１６に実行させるモード（第２モード）とを有しており、これら２つのモードを選択的に切り替えることができる。これにより、ＡＣアダプタ駆動モードにおいては第１モードを選択して、動画像デコード処理等をＭＰＵ１２３に実行させることにより、システム性能を最大限に活用でき、またバッテリ駆動モードにおいては第２モードを選択して、動画像デコード処理等をＧＰＵ１１６に実行させることにより、リアルタイム処理が必要な動画像再生処理に破綻を来すことなく、ＭＰＵ１２３を動作停止させて省電力化を図ることが可能となる。
【００３６】
次に、図３を参照して、ＡＶアプリケーションプログラム１０１の具体的な機能構成の例について説明する。
【００３７】
ＡＶアプリケーションプログラム１０１は、デコード用プログラムモジュール２０１、デコード用プログラムモジュール２０２、画質改善用プログラムモジュール２０３、制御用プログラムモジュール２０４、およびエンコード用プログラムモジュール２０５等を備えている。
【００３８】
デコード用プログラムモジュール２０１は、ＭＰＵ１２３に動画像デコード処理を実行させるためのプログラムモジュール（タスク）であり、ＭＰＵ１２３がサポートする命令セットを用いて記述されている。デコード用プログラムモジュール２０２は、ＧＰＵ１１６に動画像デコード処理を実行させるためのプログラムモジュール（タスク）であり、ＧＰＵ１１６がサポートする命令セットを用いて記述されている。
【００３９】
画質改善用プログラムモジュール２０３は、動画像デコード処理によってデコードされた動画像データに施すべき映像処理としての画質改善処理をＧＰＵ１１６に実行させるためのプログラムモジュールであり、ＧＰＵ１１６がサポートする命令セットを用いて記述されている。
【００４０】
制御用プログラムモジュール２０４は、ＡＶアプリケーションプログラム１０１の振る舞い、すなわち動画像デコード処理および画質改善処理等の処理の制御をＣＰＵ１１１に実行させるためのプログラムモジュールであり、ＧＰＵ１１６がサポートする命令セットを用いて記述されている。この制御用プログラムモジュール２０４は、システムステータスデータ等に応じて、ＡＶアプリケーションプログラム１０１を実行するためのモードを、デコード用プログラムモジュール２０１をＭＰＵ１２３に割り当てる第１モードと、デコード用プログラムモジュール２０２をＧＰＵ１１６に割り当てる第２モードとの間で切り替えることが出来る。
【００４１】
エンコード用プログラムモジュール２０５は、ＭＰＵ１２３に動画像データを圧縮符号化するための動画像エンコード処理を実行させるためのプログラムモジュール（タスク）であり、ＭＰＵ１２３がサポートする命令セットを用いて記述されている。
【００４２】
例えば、放送番組データを再生しながら録画する場合のように、動画像デコード処理と動画像エンコード処理を同時に実行する必要がある場合においては、もし動画像デコード処理と動画像エンコード処理の双方をＭＰＵ１２３に割り当てると、ＭＰＵ１２３に負荷が集中し、これによって録画・再生処理をリアルタイムに実行できなくなる場合がある。このため、動画像デコード処理と動画像エンコード処理を同時に実行する必要がある場合においては、制御用プログラムモジュール２０４は、デコード用プログラムモジュール２０１をＭＰＵ１２３に割り当てる代わりに、デコード用プログラムモジュール２０２をＧＰＵ１１６に割り当てる。これにより、録画・再生処理をリアルタイムに実行することが可能となる。
【００４３】
図４には、本コンピュータ１０のシステム構成の他の例が示されている。
【００４４】
図４においては、ＣＰＵ１１１、ＧＰＵ１１６、およびＭＰＵ１２３が１チップ上に集積形成されたヘテロジニアスマルチコアプロセッサ１００が設けられている。ＣＰＵ１１１、ＧＰＵ１１６、およびＭＰＵ１２３はそれぞれコアとして実現されている。ヘテロジニアスマルチコアプロセッサ１００にはメモリインタフェース３０１も内蔵されており、ＣＰＵ１１１、ＧＰＵ１１６、およびＭＰＵ１２３はメモリインタフェース３０１を介してシステムメモリ１１５をアクセスする。
【００４５】
図４の構成においても、バッテリ駆動時においては、例えば、ＭＰＵ１２３へのクロック信号の供給を停止したり、ＭＰＵ１２３への動作電源の供給を停止すること等により、ＭＰＵ１２３を動作停止させることができる。
【００４６】
次に、図５を参照して、３つのプロセッサ、つまりＣＰＵ１１１、ＧＰＵ１１６、およびＭＰＵ１２３それぞれの特徴について説明する。
【００４７】
上述したように、ＣＰＵ１１１は汎用プロセッサであるので、ＯＳや通常アプリケーションのような汎用処理については高速に実行することができるが、ベクトル演算、動画像デコード、動画像エンコードの処理速度は低速であり、また画質改善処理は実際上実行することはできない。
【００４８】
またＧＰＵ１１６は、ベクトル演算、画質改善処理については高速に実行することができ、また動画像デコード、動画像エンコードも処理可能であるが、高い柔軟性が必要とされる汎用処理については実際上実行することはできない。
【００４９】
またＭＰＵ１２３は、動画像デコード、動画像エンコードについてはＣＰＵ１１１およびＧＰＵ１１６よりも高速に実行することができ、またベクトル演算、画質改善処理についてはＭＰＵ１２３よりも処理速度は低いものの処理可能であるが、高い柔軟性が必要とされる汎用処理については実際上実行することはできない。
【００５０】
図６は、本コンピュータ１０の電源接続状態に応じた各プロセッサの動作を示している。
【００５１】
ＡＣアダプタ駆動時には、システムは１００%の性能を使用することができるため、ＭＰＵ１２３を動作させることができる。このため、動画再生処理を行う場合には、ＴＶアプリケーションプログラム１０１は、デコード用プログラムモジュール２０１をＭＰＵ１２３に割り当てることによって動画デコード処理をＭＰＵ１２３に処理させ、画質改善用プログラムモジュール２０３をＧＰＵ１１６に割り当てることによって画質改善処理をＧＰＵ１１６に処理させる。これにより、好適な画質で動画を再生させることが可能になる。
【００５２】
一方、バッテリ駆動時には、バッテリ容量の制限によりＭＰＵ１２３を動作させることは困難である。また、動画デコード処理はリアルタイムでの処理が必要であり、ＣＰＵ１１１に処理させるとコマ落ちなどの不具合が発生する。このため、ＴＶアプリケーションプログラム１０１は、デコード用プログラムモジュール２０２をＧＰＵ１１６に割り当てることによって動画デコード処理をＧＰＵ１１６に処理させると共に、ＧＰＵ１１６によって実行すべき画質改善処理の中の少なくとも一部の処理を省略する。このように、ＡＣアダプタ駆動時にはＭＰＵ１２３で行っていた処理を、バッテリ駆動時にはＧＰＵ１１６に振り分け、且つＧＰＵ１１６によって実行すべき画質改善処理の中の少なくとも一部の処理を省略することにより、画質は劣るもののリアルタイム処理を維持することが可能となる。
【００５３】
図７は、動画を再生する場合、および動画の再生・録画を同時に実行する場合それぞれに対応する各プロセッサの動作を示している。
【００５４】
たとえＡＣアダプタ起動時であっても、各プロセッサの処理性能には限界がある。このため、動画の再生と録画を同時にリアルタイムに行うことができない場合がある。動画再生のみを行う場合には、動画デコード処理はＭＰＵ１２３によって実行されるが、録画と同時に再生を行う場合には、動画デコード処理（再生）はＧＰＵ１１６に処理させ、動画エンコード処理（録画）はＭＰＵ１２３に処理させる。また、ＧＰＵ１１６によって処理すべき画質改善処理の中の少なくとも一部の処理は省略する。これにより、画質は劣るものの録画・再生のリアルタイム処理を実行することが可能となる。
【００５５】
また、バッテリ駆動時においては、動画の再生と録画を同時にリアルタイムに行うことはできないので、例えば放送銀組等の録画を優先させる場合には、動画エンコード処理（録画）をＭＰＵ１２３に実行させ、動画再生処理、つまり動画デコード処理および画質改善処理については中止される。
【００５６】
次に、図８のフローチャートを参照して、ＡＶアプリケーションプログラム１０１によって実行される動画再生処理の手順を説明する。
【００５７】
動画再生処理を実行する場合、まず、ＣＰＵ１１１によってＡＶアプリケーションプログラム１０１がＨＤＤ１２１から入力され、システムメモリ１１５にロードされる。そして、ＣＰＵ１１１は、ＡＶアプリケーションプログラム１０１の制御用プログラムモジュール２０４を実行する。
【００５８】
制御用プログラムモジュール２０４は、まず、ＥＣ／ＫＢＣ１４０内のレジスタを参照して、本コンピュータ１０がＡＣアダプタ駆動モードおよびバッテリ駆動モードのどちらで動作しているかを判別する（ステップＳ１０１）。
【００５９】
ＡＣアダプタ駆動モードである場合には、制御用プログラムモジュール２０４は、ＭＰＵ１２３用のデコードプログラムであるデコード用プログラムモジュール２０１をコールして、そのデコード用プログラムモジュール２０１を例えばＯＳを介してＭＰＵ１２３に割り当てることにより、動画デコード処理をＭＰＵ１２３に実行させる（ステップＳ１０２）。ステップＳ１０２では、例えば、ＣＰＵ１１１またはＭＰＵ１２３によって、システムメモリ１１５上のデコード用プログラムモジュール２０１がＭＰＵ１２３のローカルメモリ１２４に転送され、そして、ＭＰＵ１２３によってデコード用プログラムモジュール２０１が実行される。
【００６０】
そして、制御用プログラムモジュール２０４は、画質改善用プログラムモジュール２０３をコールして、その画質改善用プログラムモジュール２０３を例えばＯＳを介してＧＰＵ１１６に割り当てることにより、デコードされた動画像データに施すべき映像処理である画質改善処理をＧＰＵ１１６に実行させる（ステップＳ１０３）。ステップＳ１０３では、例えば、ＣＰＵ１１１またはＭＰＵ１２３によって、システムメモリ１１５上の画質改善用プログラムモジュール２０３がＧＰＵ１１６またはＶＲＡＭ１１６Ａに転送され、そして、ＧＰＵ１１６によって画質改善用プログラムモジュール２０３が実行される。
【００６１】
これにより、ＭＰＵ１２３とＧＰＵ１１６との共同動作により、動画再生処理が実行される（ステップＳ１０７）。
【００６２】
一方、バッテリ駆動モードである場合には、制御用プログラムモジュール２０４は、例えば、ＢＩＯＳまたはＯＳと共同して、ＭＰＵ１２３をスリープ状態に設定する（ステップＳ１０４）。制御用プログラムモジュール２０４は、ＧＰＵ１１６用のデコードプログラムであるデコード用プログラムモジュール２０２をコールして、そのデコード用プログラムモジュール２０２を例えばＯＳを介してＧＰＵ１１６に割り当てることにより、動画デコード処理をＧＰＵ１１６に実行させる（ステップＳ１０５）。ステップＳ１０５では、例えば、ＣＰＵ１１１またはＭＰＵ１２３によって、システムメモリ１１５上のデコード用プログラムモジュール２０２がＧＰＵ１１６またはＶＲＡＭ１１６Ａに転送され、そして、ＧＰＵ１１６によってデコード用プログラムモジュール２０２が実行される。
【００６３】
そして、制御用プログラムモジュール２０４は、画質改善用プログラムモジュール２０３をコールして、その画質改善用プログラムモジュール２０３を例えばＯＳを介してＧＰＵ１１６に割り当てることにより、デコードされた動画像データに施すべき映像処理である画質改善処理をＧＰＵ１１６に実行させる（ステップＳ１０６）。この場合、例えば制御用プログラムモジュール２０４の制御の下、画質改善処理内の少なくとも一部の処理の実行は必要に応じて省略される。このような省略は、例えば、画質改善用プログラムモジュール２０３内に特定の処理をスキップさせる機能を持たせること等によって実行することが出来る。もちろん、制御用プログラムモジュール２０４の制御の下、画質改善処理全ての機能を無効化してもよい。
【００６４】
このようにして、ＧＰＵ１１６によって動画再生処理が実行される（ステップＳ１０７）。
【００６５】
動画再生処理中にＡＣアダプタの着脱のような電源ソースの切替が発生すると、例えば、ＥＣ／ＫＢＣ１４０からＣＰＵ１１１にシステム管理割り込み信号ＳＭＩが発行される。この割り込み信号ＳＭＩの発生に応答して、ＢＩＯＳは電源ソースの切替が発生したことを制御用プログラムモジュール２０４に通知する。この通知に応答して、制御用プログラムモジュール２０４は電源ソースの切替の有無を判定する。電源ソースの切替が発生したならば（ステップＳ１０８のＹＥＳ）、制御用プログラムモジュール２０４は、ステップＳ１０１の処理に戻り、現在の電源モードがＡＣアダプタ駆動モードおよびバッテリ駆動モードのいずれであるかを判別し、そして、その判別結果に応じて、デコード処理を実行すべきプロセッサをＧＰＵ１１６とＭＰＵ１２３との間で切り替えると共に、必要に応じて画質改善処理の内容を変更する。
【００６６】
図９には、ソフトウェアとハードウェアとの関係の例が示されている。
【００６７】
ＡＶアプリケーションプログラム１０１は、ＯＳを介して、または直接に、ＧＰＵ１１６、ＭＰＵ１２３、およびＥＣ／ＫＢＣ１４０等にアクセスすることができる。また、ＡＶアプリケーションプログラム１０１はＢＩＯＳとのインタフェースも有しており、ＢＩＯＳから現在の電源モードのような様々なシステム情報を取得することができる。
【００６８】
図１０は、本コンピュータ１０のシステム構成の他の例が示されている。
【００６９】
図１０においては、ＭＰＵ１２３およびローカルメモリ１２４は、コンピュータ本体１１が取り外し自在に装着可能な拡張ユニットであるドッキングステーション２０内に設けられている。コンピュータ本体１１がドッキングステーション２０に装着された状態においては、ＭＰＵ１２３およびローカルメモリ１２４をコンピュータ１０のハードウェアリソースとして使用することが出来、またドッキングステーション２０に接続されたＡＣアダプタ１４３から供給される電力によって、コンピュータ１０はＡＣ駆動モードで動作する。
【００７０】
この構成においては、ドッキングの有無に応じて、各プロセッサに割り当てる処理の内容が変更される。
【００７１】
以下、図１１のフローチャートを参照して、図１０のシステム構成に適用される動画再生処理の手順を説明する。
【００７２】
ＡＶアプリケーションプログラム１０１の制御用プログラムモジュール２０４は、まず、ＢＩＯＳ等との通信によって、本コンピュータ１０にドッキングステーション２０が接続されているか否かを判別する（ステップＳ２０１）。
【００７３】
ドッキングステーション２０が接続されている場合には、制御用プログラムモジュール２０４は、ＭＰＵ１２３用のデコードプログラムであるデコード用プログラムモジュール２０１をコールして、そのデコード用プログラムモジュール２０１を例えばＯＳを介してＭＰＵ１２３に割り当てることにより、動画デコード処理をＭＰＵ１２３に実行させる（ステップＳ２０２）。そして、制御用プログラムモジュール２０４は、画質改善用プログラムモジュール２０３をコールして、その画質改善用プログラムモジュール２０３を例えばＯＳを介してＧＰＵ１１６に割り当てることにより、デコードされた動画像データに施すべき映像処理である画質改善処理をＧＰＵ１１６に実行させる（ステップＳ２０３）。これにより、ＭＰＵ１２３とＧＰＵ１１６との共同動作により、動画再生処理が実行される（ステップＳ２０６）。
【００７４】
一方、ドッキングステーション２０が接続されていない場合には、制御用プログラムモジュール２０４は、ＧＰＵ１１６用のデコードプログラムであるデコード用プログラムモジュール２０２をコールして、そのデコード用プログラムモジュール２０２を例えばＯＳを介してＧＰＵ１１６に割り当てることにより、動画デコード処理をＧＰＵ１１６に実行させる（ステップＳ２０４）。そして、制御用プログラムモジュール２０４は、画質改善用プログラムモジュール２０３をコールして、その画質改善用プログラムモジュール２０３を例えばＯＳを介してＧＰＵ１１６に割り当てることにより、デコードされた動画像データに施すべき映像処理である画質改善処理をＧＰＵ１１６に実行させる（ステップＳ２０５）。この場合、例えば制御用プログラムモジュール２０４の制御の下、画質改善処理内の少なくとも一部の処理の実行は必要に応じて省略される。もちろん、画質改善処理全ての機能を無効化してもよい。このようにして、ＧＰＵ１１６によって動画再生処理が実行される（ステップＳ２０６）。
【００７５】
動画再生処理中にドッキングステーション２０の着脱のようなドッキング状態の変化が発生すると、例えば、ＥＣ／ＫＢＣ１４０からＣＰＵ１１１にシステム管理割り込み信号ＳＭＩが発行される。この割り込み信号ＳＭＩの発生に応答して、ＢＩＯＳはドッキング状態の変化が発生したことを制御用プログラムモジュール２０４に通知する。この通知に応答して、制御用プログラムモジュール２０４は、ドッキング状態の変化の有無を判別する。ドッキング状態の変化が発生したならば（ステップＳ２０７のＹＥＳ）、制御用プログラムモジュール２０４は、ステップＳ２０１の処理に戻り、現在のドッキング状態を判別し、そして、その判別結果に応じて、デコード処理を実行すべきプロセッサをＧＰＵ１１６とＭＰＵ１２３との間で切り替えると共に、必要に応じて画質改善処理の内容を変更する。
【００７６】
以上のように、本実施形態においては、電源ソース、ＭＰＵの有無、およびＭＰＵの負荷のような各種システム状態に応じて、動画像デコード処理等の特定の処理をＧＰＵ１１６とＭＰＵ１２３とに選択的に割り当てて実行させることが出来る。よって、ＭＰＵ１２３を動作停止させた状態でも動画像データの再生処理を正常に実行することが可能となり、システムの省電力化を実現できる。さらに、動画像デコード処理をＧＰＵ１１６に実行させる場合には、デコードされた動画像データに施すべき映像処理の一部または全てを省略してＧＰＵ１１６の負荷を低減させることで、ＧＰＵ１１６の性能を動画像デコード処理に集中させることができ、コマ落ちの発生等を防止することができる。
【００７７】
また、動画像の録画と再生を同時に実行する場合には、動画像デコード処理を実行すべはプロセッサをＭＰＵ１２３からＧＰＵ１１６に変更すると共に、ＭＰＵ１２３に動画像エンコード処理を実行させることで、ＭＰＵ１２３の負荷の増大を防止することが可能となり、システム全体としてのシステム処理効率の向上を図ることが可能となる。
【００７８】
なお、本実施形態では、デコード処理をＭＰＵ１２３またはＧＰＵ１１６に選択的に実行させる場合を説明したが、デコード処理に限らず、ＧＰＵとＭＰＵとで演算処理性能の異なる処理であれば、当該処理をＭＰＵ１２３またはＧＰＵ１１６に選択的に実行させることにより、同様の効果を得ることができる。
【００７９】
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【符号の説明】
【００８０】
１０…コンピュータ、１１１…ＣＰＵ、１１６…ＧＰＵ、１２３…ＭＰＵ、２０１，２０２…デコード用プログラムモジュール、２０３…画質改善用プログラムモジュール、２０４…制御用プログラムモジュール。
【図１】
2011210282.tif 000003
【図２】
2011210282.tif 000004
【図３】
2011210282.tif 000005
【図４】
2011210282.tif 000006
【図５】
2011210282.tif 000007
【図６】
2011210282.tif 000008
【図７】
2011210282.tif 000009
【図８】
2011210282.tif 000010
【図９】
2011210282.tif 000011
【図１０】
2011210282.tif 000012
【図１１】
2011210282.tif 000013