JP5259784B2 - 情報処理装置およびプログラム実行制御方法 - Google Patents

情報処理装置およびプログラム実行制御方法 Download PDF

Info

Publication number
JP5259784B2
JP5259784B2 JP2011161936A JP2011161936A JP5259784B2 JP 5259784 B2 JP5259784 B2 JP 5259784B2 JP 2011161936 A JP2011161936 A JP 2011161936A JP 2011161936 A JP2011161936 A JP 2011161936A JP 5259784 B2 JP5259784 B2 JP 5259784B2
Authority
JP
Japan
Prior art keywords
processor
program module
information processing
execute
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011161936A
Other languages
English (en)
Other versions
JP2011210282A (ja
Inventor
創 園部
玄 渡辺
剛 西田
和義 桑原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2011161936A priority Critical patent/JP5259784B2/ja
Publication of JP2011210282A publication Critical patent/JP2011210282A/ja
Application granted granted Critical
Publication of JP5259784B2 publication Critical patent/JP5259784B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本発明はパーソナルコンピュータのような情報処理装置および同情報処理装置におけるプログラムの実行を制御するプログラム実行制御方法に関する。
近年、バッテリ駆動可能なパーソナルコンピュータが開発されている。この種のパーソナルコンピュータにおいては、電力消費の低減を図るためのパワーマネージメント技術が利用されている。
また、最近では、パーソナルコンピュータにおいては、動画データのようなマルチメディアデータをリアルタイムに処理する必要性等から、処理性能の向上が求められている。このため、パーソナルコンピュータにおいても、マルチプロセッサシステム構成の採用が進められている。
特許文献1には、複数のCPUを含むマルチプロセッサシステムにおいて、多くの処理能力を必要としない場合に、一つまたは複数のCPUを停止またはサスペンドすることにより、システムが必要とする処理能力を満たした上でシステム全体の消費電力を削減する技術が開示されている。
特開平11−202988号公報
しかし、特許文献1の技術はシステムが多くの処理能力を必要としない場合に省電力効果を得るという仕組みであり、システムが多くの処理能力を必要としている場合には何等省電力効果を得ることはできない。
また、特許文献1のシステムは、複数のCPUが同一のアーキテクチャを有するものである場合を前提としており、互いに種類の異なる複数のプロセッサを含むヘテロジニアスマルチプロセッサシステムについては何等考慮されていない。
ヘテロジニアスマルチプロセッサシステムにおいては、個々のプロセッサが担当すべき主たる役割が予め決められており、ある特定種の処理は、その処理性能に優れたプロセッサにのみ割り当てられる。また、通常、各プロセッサが有する命令セットの種類も異なる。このため、ある命令セットを用いて記述された処理は、その命令セットに対応するプロセッサでしか実行することができない。
したがって、あるプロセッサの動作を単純に停止させると、そのプロセッサがサポートする命令セットを用いて記述された処理はもはや実行することが出来なくなってしまう。よって、あるプロセッサがサポートする命令セットを用いて記述された処理の実行が必要な場合には、たとえシステムの電力消費量を低減させることが必要な状況下においても、当該プロセッサを実際上停止することはできない。
また、同一種の処理の量が多い場合には、それら処理の記述に用いられた命令セットをサポートする特定のプロセッサにのみ負荷が集中してしまう。この場合、例えば、動画像データの再生処理のようなリアルタイム性が要求される処理を正常に実行することが出来なくなる可能性もある。
本発明は上述の事情を考慮してなされたものであり、互いに種類の異なる複数のプロセッサを含むシステムにおける省電力化やシステム処理効率の向上を実現することが可能な情報処理装置およびプログラム実行制御方法を提供することを目的とする。
上述の課題を解決するため、本発明の情報処理装置は、第1の命令セットを有し、圧縮符号化された動画像データをデコードするデコード処理を実行可能な第1のプロセッサと、前記第1の命令セットとは異なる第2の命令セットを有し、前記第1のプロセッサよりも前記デコード処理を高速に実行するように構成される第2のプロセッサと、前記第2の命令セットを用いて記述され前記デコード処理を前記第2のプロセッサに実行させるための第1のプログラムモジュール、および前記第1の命令セットを用いて記述され前記デコード処理を前記第1のプロセッサに実行させるための第2のプログラムモジュールを含み、圧縮符号化された動画像データを再生する動画再生処理を実行するためのプログラムを格納する記憶部と、前記プログラムによって前記動画再生処理を実行する場合、情報処理装置が前記情報処理装置内に設けられたバッテリまたは外部電源のどちらによって駆動されているかを判別する手段と、前記情報処理装置が前記外部電源によって駆動されている場合、前記第1のプログラムモジュールを前記第2のプロセッサに割り当てることによって前記デコード処理を前記第2のプロセッサに実行させ、前記情報処理装置が前記バッテリによって駆動されている場合、前記第2のプログラムモジュールを前記第1のプロセッサに割り当てることによって前記デコード処理を前記第1のプロセッサに実行させる制御手段とを具備することを特徴とする。
また、本発明の情報処理装置は、第1の命令セットを有し、汎用処理、ベクトル演算を含むグラフィクス演算処理、および圧縮符号化された動画像データをデコードするデコード処理を実行可能なメインプロセッサと、第2の命令セットを有し、前記グラフィクス演算処理および前記デコード処理を実行可能であり、且つ前記メインプロセッサよりも前記グラフィクス演算処理および前記デコード処理を高速に実行するように構成された第1のサブプロセッサと、第3の命令セットを有し、前記グラフィクス演算処理および前記デコード処理を実行可能であり、且つ前記第1のサブプロセッサよりも前記デコード処理を高速に実行するように構成され、且つ前記第1のサブプロセッサよりも前記グラフィクス演算処理の処理性能が低い第2のサブプロセッサと、前記第3の命令セットを用いて記述され圧縮符号化された動画像データをデコードするためのデコード処理を前記第2のサブプロセッサに実行させるための第1のプログラムモジュールと、前記第2の命令セットを用いて記述され前記デコード処理を前記第1のサブプロセッサに実行させるための第2のプログラムモジュールと、前記第2の命令セットを用いて記述され前記デコード処理によってデコードされた動画像データに対して施すべき所定の映像処理を前記第1のサブプロセッサに実行させる第3のプログラムモジュールと、前記第1の命令セットを用いて記述された制御用プログラムモジュールとを含み、圧縮符号化された動画像データを再生する動画再生処理を実行するためのプログラムを格納する記憶部と、前記プログラムによって前記動画再生処理を実行する場合、情報処理装置が前記情報処理装置内に設けられたバッテリまたは外部電源のどちらによって駆動されているかを判別する手段と、前記制御用プログラムモジュールを前記メインプロセッサに実行させることによって前記第1乃至第3のプログラムモジュールの実行を制御する制御手段であって、前記情報処理装置が前記外部電源によって駆動されている場合には、前記第1のプログラムモジュールを前記第2のサブプロセッサに割り当てると共に、前記第3のプログラムモジュールを前記第1のサブプロセッサに割り当て、前記情報処理装置が前記バッテリによって駆動されている場合には、前記第2のプログラムモジュールを前記第1のサブプロセッサに割り当てると共に、前記第2および第3のプログラムモジュールを前記第1のサブプロセッサに割り当て、且つ前記第2のサブプロセッサを動作状態から前記動作状態よりも電力消費の少ない状態に移行させる制御手段とを具備することを特徴とする。
本発明によれば、互いに種類の異なる複数のプロセッサを含むシステムにおける省電力化やシステム処理効率の向上を実現することが可能となる。
本発明の一実施形態に係るコンピュータの概観を示す斜視図。 図1のコンピュータのシステム構成の例を示すブロック図。 図1のコンピュータで実行されるAVアプリケーションプログラムの機能構成の例を示す図。 図1のコンピュータのシステム構成の他の例を示すブロック図。 図1のコンピュータに設けられた各プロセッサの特徴を説明するための図。 図1のコンピュータに各プロセッサに対する処理の割り当ての例を示す図。 図1のコンピュータに各プロセッサに対する処理の割り当ての別の例を示す図。 図1のコンピュータによって実行される動画再生処理の手順を示すフローチャート。 図1のコンピュータにおけるソフトウェアとハードウェアとの関係の例を示す図。 図1のコンピュータのさらに他のシステム構成の例を示す図。 図10のシステムに適用される動画再生処理の手順を示すフローチャート。
以下、図面を参照して、本発明の実施形態を説明する。
まず、図1および図2を参照して、本発明の一実施形態に係る情報処理装置の構成について説明する。この情報処理装置は、例えば、バッテリ駆動可能なノートブック型の携帯型パーソナルコンピュータ10として実現されている。
図1はコンピュータ10のディスプレイユニットを開いた状態における斜視図である。本コンピュータ10は、コンピュータ本体11と、ディスプレイユニット12とから構成されている。ディスプレイユニット12には、LCD(Liquid Crystal Display)17から構成される表示装置が組み込まれている。
ディスプレイユニット12は、コンピュータ本体11に対して、コンピュータ本体11の上面が露出される開放位置と上面がディスプレイユニット12によって覆われる閉塞位置との間を回動自在に取り付けられている。コンピュータ本体11はバッテリが取り外し自在に装着可能な薄い箱形の筐体を有している。
コンピュータ本体11の上面にはキーボード13、本コンピュータ1をパワーオン/オフするためのパワーボタンスイッチ14、およびタッチパッド15などが配置されている。
次に、図2を参照して、本コンピュータ10のシステム構成について説明する。
本コンピュータ10は、図2に示されているように、CPU111、ノースブリッジ114、システムメモリ(主メモリと称されることもある)115、グラフィクスプロセッシングユニット(GPU)116、サウスブリッジ117、BIOS−ROM120、ハードディスクドライブ(HDD)121、光ディスクドライブ(ODD)122、メディアプロセッシングユニット(MPU)123、ローカルメモリ124、TVチューナ125、エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)140、および電源回路141等を備えている。
このように、本コンピュータ10は、CPU111、GPU116、およびMPU123という3つの異なる種類のプロセッサが設けられたヘテロジニアスマルチプロセッサシステムである。CPU111、GPU116、およびMPU123は互いに異なる命令セットを有しており、またCPU111、GPU116、およびMPU123それぞれのアーキテクチャも互いに異なっている。
CPU111は本コンピュータ10の動作を制御するために設けられたプロセッサ(メインプロセッサ)であり、HDD121からシステムメモリ115にロードされる、オペレーティングシステムおよび各種アプリケーションプログラムを実行する。本コンピュータ10においては、システムメモリ115にロードされて実行されるアプリケーションプログラムの一つとして、AVアプリケーションプログラム101が予めHDD121のような記憶部にインストールされている。このAVアプリケーションプログラム101は、放送番組データの再生・録画処理、およびDVDタイトルのような動画像データの再生等を実行するためのプログラムである。
CPU111は汎用のプロセッサとして機能し、ベクトル演算のような特別な演算処理ではなく、通常のアプリケーション/オペレーティングシステムの処理のような制御処理を主として実行する。また、CPU111は、BIOS−ROM120に格納されたBIOS(Basic Input Output System)も実行する。BIOSはハードウェア制御のためのプログラムである。このBIOSは、本コンピュータ10の各種システム状態を管理する機能も有している。
ノースブリッジ114はCPU111のローカルバスとサウスブリッジ117との間を接続するブリッジデバイスである。ノースブリッジ114には、主メモリ115をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ114には、PCI Expressバスなどを介してGPU116にも接続されている。
GPU116は、グラフィクス演算機能を有しており、本コンピュータ10のディスプレイモニタとして使用されるLCD17等の表示装置に表示されるべき画面を形成する映像信号を生成するグラフィクス処理プロセッサ(サブプロセッサ)である。GPU116は、汎用プロセッサであるCPU111とは異なる命令セットを有しており、ベクトル演算を含む2次元または3次元のグラフィクス演算処理をCPU111よりも高速に実行することが出来る。また、GPU116は、表示装置に表示されるべき映像の画質を改善するための画質改善処理(例えば、平滑化のためのフィルタリング処理、白/黒伸張処理、インターレース/プログレッシブ変換処理、スケーリング処理、LCDオーバードライブ処理、等)、圧縮符号化された動画像データをデコードするデコード処理、動画像データを圧縮符号化するエンコード処理、等も実行することができる。GPU116にベクトル演算・画質改善・動画デコード・動画エンコードなどの処理を実行させるためには、GPU116の命令セットを用いて記述された専用のプログラムモジュール(バイナリコード)が必要となる。ビデオメモリ(VRAM)116AはGPU116の作業メモリとして用いられる。
サウスブリッジ117は、ハードディスクドライブ(HDD)121および光ディスクドライブ(ODD)122を制御するためのIDE(Integrated Drive Electronics)コントローラやSerial ATAコントローラを内蔵している。また、サウスブリッジ117には、MPU123およびTVチューナ125が接続されている。
MPU123は、主に動画デコード・動画エンコードなどを処理するプロセッサ(サブプロセッサ)であり、CPU111およびGPU116それぞれとは異なる命令セットを有している。MPU123は、動画像データストリームを処理するための演算処理(動画デコード・動画エンコードなど)をCPU111およびGPU116よりも高速に実行するように構成されている。ローカルメモリ124はMPU123の作業用メモリとして用いられる。MPU123に動画像データストリームを処理するための演算処理を実行させるためには、MPU123の命令セットを用いて記述された専用のプログラムモジュール(バイナリコード)が必要となる。
TVチューナ125は、放送信号によって放送される放送番組データを受信する。TVチューナ125は、アナログ放送信号によって放送される放送番組データを受信するアナログTVチューナ、または地上波デジタル放送信号によって放送される放送番組データを受信するデジタルTVチューナから構成されている。
エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)140は、電力管理のためのエンベデッドコントローラと、キーボード(KB)13およびタッチパッド15を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。EC/KBC140には、本コンピュータ10が電源オフされた状態においても、電源回路141から常に動作電源が供給される。
このEC/KBC140は、ユーザによるパワーボタンスイッチ14の操作に応じて本コンピュータ10をパワーオン/パワーオフする機能を有している。本コンピュータ10のパワーオン/パワーオフの制御は、EC/KBC140と電源回路141との共同動作によって実行される。電源回路141は、コンピュータ本体11に装着されたバッテリ142からの電力、またはコンピュータ本体11に外部電源として接続されるACアダプタ143からの電力を用いて、各コンポーネントへの動作電源を生成する。
本コンピュータ10は、バッテリ142によって駆動されるバッテリ駆動モードと、外部電源によって駆動されるACアダプタ駆動モード(または単にAC駆動モードと云う)との両モードを有している。ACアダプタ143が本コンピュータ10に接続されている場合つまり外部電源が本コンピュータ10に供給されている場合には、電源回路141はACアダプタ143からの電力を用いて動作電源を生成し、これによって本コンピュータ10はACアダプタ駆動モードで動作する。一方、ACアダプタ143が本コンピュータ10に接続されていない場合つまり外部電源が本コンピュータ10に供給されていない場合には、電源回路141はバッテリ142からの電力を用いて動作電源を生成し、これによって本コンピュータ10はバッテリ駆動モードで動作する。
EC/KBC140には、本コンピュータ10がバッテリ駆動モード/ACアダプタ駆動モードのどちらのモードで現在動作しているかを示すステータスデータを格納するレジスタが設けられており、OSおよびアプリケーションプログラムグラムから当該ステータスデータを参照することが可能である。
通常、バッテリ駆動時は、ACアダプタ駆動時と比較して、放電容量の制限によりシステム全体の消費電力を低い状態に維持する必要がある。たとえば、ACアダプタ駆動時には100%の性能で動作させられても、バッテリ駆動時には70%の性能に抑えることが必要とされる。このため、本コンピュータ10においては、バッテリ駆動モードにおいては、複数のプロセッサの内の一つ、例えば、MPU123を、その通常動作状態よりも電力消費の少ない状態(スリープ状態)に設定する機能が設けられている。スリープ状態はMPU123が動作停止されている状態であり、MPU123は命令/処理を実行しない。この場合、MPU123に割り当てられるべき、例えば動画像デコード処理のような処理は、別のプロセッサ、例えば、GPU116によって実行される。
これを実現するため、AVアプリケーションプログラム101には、MPU123に所定の演算処理を含む処理(デコード処理等)を実行させるための第1のプログラムモジュールと、同一の処理をGPU116に実行させるための第2のプログラムモジュールとが含まれている。第1のプログラムモジュールはMPU123の命令セットを用いて記述されており、また第2のプログラムモジュールはGPU116の命令セットを用いて記述されている。AVアプリケーションプログラム101は、第1のプログラムモジュールをMPU123に割れ当てることによって動画像デコード処理等をMPU123に実行させるモード(第1モード)と、第2のプログラムモジュールをGPU116に割り当てることによって動画像デコード処理等をGPU116に実行させるモード(第2モード)とを有しており、これら2つのモードを選択的に切り替えることができる。これにより、ACアダプタ駆動モードにおいては第1モードを選択して、動画像デコード処理等をMPU123に実行させることにより、システム性能を最大限に活用でき、またバッテリ駆動モードにおいては第2モードを選択して、動画像デコード処理等をGPU116に実行させることにより、リアルタイム処理が必要な動画像再生処理に破綻を来すことなく、MPU123を動作停止させて省電力化を図ることが可能となる。
次に、図3を参照して、AVアプリケーションプログラム101の具体的な機能構成の例について説明する。
AVアプリケーションプログラム101は、デコード用プログラムモジュール201、デコード用プログラムモジュール202、画質改善用プログラムモジュール203、制御用プログラムモジュール204、およびエンコード用プログラムモジュール205等を備えている。
デコード用プログラムモジュール201は、MPU123に動画像デコード処理を実行させるためのプログラムモジュール(タスク)であり、MPU123がサポートする命令セットを用いて記述されている。デコード用プログラムモジュール202は、GPU116に動画像デコード処理を実行させるためのプログラムモジュール(タスク)であり、GPU116がサポートする命令セットを用いて記述されている。
画質改善用プログラムモジュール203は、動画像デコード処理によってデコードされた動画像データに施すべき映像処理としての画質改善処理をGPU116に実行させるためのプログラムモジュールであり、GPU116がサポートする命令セットを用いて記述されている。
制御用プログラムモジュール204は、AVアプリケーションプログラム101の振る舞い、すなわち動画像デコード処理および画質改善処理等の処理の制御をCPU111に実行させるためのプログラムモジュールであり、GPU116がサポートする命令セットを用いて記述されている。この制御用プログラムモジュール204は、システムステータスデータ等に応じて、AVアプリケーションプログラム101を実行するためのモードを、デコード用プログラムモジュール201をMPU123に割り当てる第1モードと、デコード用プログラムモジュール202をGPU116に割り当てる第2モードとの間で切り替えることが出来る。
エンコード用プログラムモジュール205は、MPU123に動画像データを圧縮符号化するための動画像エンコード処理を実行させるためのプログラムモジュール(タスク)であり、MPU123がサポートする命令セットを用いて記述されている。
例えば、放送番組データを再生しながら録画する場合のように、動画像デコード処理と動画像エンコード処理を同時に実行する必要がある場合においては、もし動画像デコード処理と動画像エンコード処理の双方をMPU123に割り当てると、MPU123に負荷が集中し、これによって録画・再生処理をリアルタイムに実行できなくなる場合がある。このため、動画像デコード処理と動画像エンコード処理を同時に実行する必要がある場合においては、制御用プログラムモジュール204は、デコード用プログラムモジュール201をMPU123に割り当てる代わりに、デコード用プログラムモジュール202をGPU116に割り当てる。これにより、録画・再生処理をリアルタイムに実行することが可能となる。
図4には、本コンピュータ10のシステム構成の他の例が示されている。
図4においては、CPU111、GPU116、およびMPU123が1チップ上に集積形成されたヘテロジニアスマルチコアプロセッサ100が設けられている。CPU111、GPU116、およびMPU123はそれぞれコアとして実現されている。ヘテロジニアスマルチコアプロセッサ100にはメモリインタフェース301も内蔵されており、CPU111、GPU116、およびMPU123はメモリインタフェース301を介してシステムメモリ115をアクセスする。
図4の構成においても、バッテリ駆動時においては、例えば、MPU123へのクロック信号の供給を停止したり、MPU123への動作電源の供給を停止すること等により、MPU123を動作停止させることができる。
次に、図5を参照して、3つのプロセッサ、つまりCPU111、GPU116、およびMPU123それぞれの特徴について説明する。
上述したように、CPU111は汎用プロセッサであるので、OSや通常アプリケーションのような汎用処理については高速に実行することができるが、ベクトル演算、動画像デコード、動画像エンコードの処理速度は低速であり、また画質改善処理は実際上実行することはできない。
またGPU116は、ベクトル演算、画質改善処理については高速に実行することができ、また動画像デコード、動画像エンコードも処理可能であるが、高い柔軟性が必要とされる汎用処理については実際上実行することはできない。
またMPU123は、動画像デコード、動画像エンコードについてはCPU111およびGPU116よりも高速に実行することができ、またベクトル演算、画質改善処理についてはMPU123よりも処理速度は低いものの処理可能であるが、高い柔軟性が必要とされる汎用処理については実際上実行することはできない。
図6は、本コンピュータ10の電源接続状態に応じた各プロセッサの動作を示している。
ACアダプタ駆動時には、システムは100%の性能を使用することができるため、MPU123を動作させることができる。このため、動画再生処理を行う場合には、TVアプリケーションプログラム101は、デコード用プログラムモジュール201をMPU123に割り当てることによって動画デコード処理をMPU123に処理させ、画質改善用プログラムモジュール203をGPU116に割り当てることによって画質改善処理をGPU116に処理させる。これにより、好適な画質で動画を再生させることが可能になる。
一方、バッテリ駆動時には、バッテリ容量の制限によりMPU123を動作させることは困難である。また、動画デコード処理はリアルタイムでの処理が必要であり、CPU111に処理させるとコマ落ちなどの不具合が発生する。このため、TVアプリケーションプログラム101は、デコード用プログラムモジュール202をGPU116に割り当てることによって動画デコード処理をGPU116に処理させると共に、GPU116によって実行すべき画質改善処理の中の少なくとも一部の処理を省略する。このように、ACアダプタ駆動時にはMPU123で行っていた処理を、バッテリ駆動時にはGPU116に振り分け、且つGPU116によって実行すべき画質改善処理の中の少なくとも一部の処理を省略することにより、画質は劣るもののリアルタイム処理を維持することが可能となる。
図7は、動画を再生する場合、および動画の再生・録画を同時に実行する場合それぞれに対応する各プロセッサの動作を示している。
たとえACアダプタ起動時であっても、各プロセッサの処理性能には限界がある。このため、動画の再生と録画を同時にリアルタイムに行うことができない場合がある。動画再生のみを行う場合には、動画デコード処理はMPU123によって実行されるが、録画と同時に再生を行う場合には、動画デコード処理(再生)はGPU116に処理させ、動画エンコード処理(録画)はMPU123に処理させる。また、GPU116によって処理すべき画質改善処理の中の少なくとも一部の処理は省略する。これにより、画質は劣るものの録画・再生のリアルタイム処理を実行することが可能となる。
また、バッテリ駆動時においては、動画の再生と録画を同時にリアルタイムに行うことはできないので、例えば放送銀組等の録画を優先させる場合には、動画エンコード処理(録画)をMPU123に実行させ、動画再生処理、つまり動画デコード処理および画質改善処理については中止される。
次に、図8のフローチャートを参照して、AVアプリケーションプログラム101によって実行される動画再生処理の手順を説明する。
動画再生処理を実行する場合、まず、CPU111によってAVアプリケーションプログラム101がHDD121から入力され、システムメモリ115にロードされる。そして、CPU111は、AVアプリケーションプログラム101の制御用プログラムモジュール204を実行する。
制御用プログラムモジュール204は、まず、EC/KBC140内のレジスタを参照して、本コンピュータ10がACアダプタ駆動モードおよびバッテリ駆動モードのどちらで動作しているかを判別する(ステップS101)。
ACアダプタ駆動モードである場合には、制御用プログラムモジュール204は、MPU123用のデコードプログラムであるデコード用プログラムモジュール201をコールして、そのデコード用プログラムモジュール201を例えばOSを介してMPU123に割り当てることにより、動画デコード処理をMPU123に実行させる(ステップS102)。ステップS102では、例えば、CPU111またはMPU123によって、システムメモリ115上のデコード用プログラムモジュール201がMPU123のローカルメモリ124に転送され、そして、MPU123によってデコード用プログラムモジュール201が実行される。
そして、制御用プログラムモジュール204は、画質改善用プログラムモジュール203をコールして、その画質改善用プログラムモジュール203を例えばOSを介してGPU116に割り当てることにより、デコードされた動画像データに施すべき映像処理である画質改善処理をGPU116に実行させる(ステップS103)。ステップS103では、例えば、CPU111またはMPU123によって、システムメモリ115上の画質改善用プログラムモジュール203がGPU116またはVRAM116Aに転送され、そして、GPU116によって画質改善用プログラムモジュール203が実行される。
これにより、MPU123とGPU116との共同動作により、動画再生処理が実行される(ステップS107)。
一方、バッテリ駆動モードである場合には、制御用プログラムモジュール204は、例えば、BIOSまたはOSと共同して、MPU123をスリープ状態に設定する(ステップS104)。制御用プログラムモジュール204は、GPU116用のデコードプログラムであるデコード用プログラムモジュール202をコールして、そのデコード用プログラムモジュール202を例えばOSを介してGPU116に割り当てることにより、動画デコード処理をGPU116に実行させる(ステップS105)。ステップS105では、例えば、CPU111またはMPU123によって、システムメモリ115上のデコード用プログラムモジュール202がGPU116またはVRAM116Aに転送され、そして、GPU116によってデコード用プログラムモジュール202が実行される。
そして、制御用プログラムモジュール204は、画質改善用プログラムモジュール203をコールして、その画質改善用プログラムモジュール203を例えばOSを介してGPU116に割り当てることにより、デコードされた動画像データに施すべき映像処理である画質改善処理をGPU116に実行させる(ステップS106)。この場合、例えば制御用プログラムモジュール204の制御の下、画質改善処理内の少なくとも一部の処理の実行は必要に応じて省略される。このような省略は、例えば、画質改善用プログラムモジュール203内に特定の処理をスキップさせる機能を持たせること等によって実行することが出来る。もちろん、制御用プログラムモジュール204の制御の下、画質改善処理全ての機能を無効化してもよい。
このようにして、GPU116によって動画再生処理が実行される(ステップS107)。
動画再生処理中にACアダプタの着脱のような電源ソースの切替が発生すると、例えば、EC/KBC140からCPU111にシステム管理割り込み信号SMIが発行される。この割り込み信号SMIの発生に応答して、BIOSは電源ソースの切替が発生したことを制御用プログラムモジュール204に通知する。この通知に応答して、制御用プログラムモジュール204は電源ソースの切替の有無を判定する。電源ソースの切替が発生したならば(ステップS108のYES)、制御用プログラムモジュール204は、ステップS101の処理に戻り、現在の電源モードがACアダプタ駆動モードおよびバッテリ駆動モードのいずれであるかを判別し、そして、その判別結果に応じて、デコード処理を実行すべきプロセッサをGPU116とMPU123との間で切り替えると共に、必要に応じて画質改善処理の内容を変更する。
図9には、ソフトウェアとハードウェアとの関係の例が示されている。
AVアプリケーションプログラム101は、OSを介して、または直接に、GPU116、MPU123、およびEC/KBC140等にアクセスすることができる。また、AVアプリケーションプログラム101はBIOSとのインタフェースも有しており、BIOSから現在の電源モードのような様々なシステム情報を取得することができる。
図10は、本コンピュータ10のシステム構成の他の例が示されている。
図10においては、MPU123およびローカルメモリ124は、コンピュータ本体11が取り外し自在に装着可能な拡張ユニットであるドッキングステーション20内に設けられている。コンピュータ本体11がドッキングステーション20に装着された状態においては、MPU123およびローカルメモリ124をコンピュータ10のハードウェアリソースとして使用することが出来、またドッキングステーション20に接続されたACアダプタ143から供給される電力によって、コンピュータ10はAC駆動モードで動作する。
この構成においては、ドッキングの有無に応じて、各プロセッサに割り当てる処理の内容が変更される。
以下、図11のフローチャートを参照して、図10のシステム構成に適用される動画再生処理の手順を説明する。
AVアプリケーションプログラム101の制御用プログラムモジュール204は、まず、BIOS等との通信によって、本コンピュータ10にドッキングステーション20が接続されているか否かを判別する(ステップS201)。
ドッキングステーション20が接続されている場合には、制御用プログラムモジュール204は、MPU123用のデコードプログラムであるデコード用プログラムモジュール201をコールして、そのデコード用プログラムモジュール201を例えばOSを介してMPU123に割り当てることにより、動画デコード処理をMPU123に実行させる(ステップS202)。そして、制御用プログラムモジュール204は、画質改善用プログラムモジュール203をコールして、その画質改善用プログラムモジュール203を例えばOSを介してGPU116に割り当てることにより、デコードされた動画像データに施すべき映像処理である画質改善処理をGPU116に実行させる(ステップS203)。これにより、MPU123とGPU116との共同動作により、動画再生処理が実行される(ステップS206)。
一方、ドッキングステーション20が接続されていない場合には、制御用プログラムモジュール204は、GPU116用のデコードプログラムであるデコード用プログラムモジュール202をコールして、そのデコード用プログラムモジュール202を例えばOSを介してGPU116に割り当てることにより、動画デコード処理をGPU116に実行させる(ステップS204)。そして、制御用プログラムモジュール204は、画質改善用プログラムモジュール203をコールして、その画質改善用プログラムモジュール203を例えばOSを介してGPU116に割り当てることにより、デコードされた動画像データに施すべき映像処理である画質改善処理をGPU116に実行させる(ステップS205)。この場合、例えば制御用プログラムモジュール204の制御の下、画質改善処理内の少なくとも一部の処理の実行は必要に応じて省略される。もちろん、画質改善処理全ての機能を無効化してもよい。このようにして、GPU116によって動画再生処理が実行される(ステップS206)。
動画再生処理中にドッキングステーション20の着脱のようなドッキング状態の変化が発生すると、例えば、EC/KBC140からCPU111にシステム管理割り込み信号SMIが発行される。この割り込み信号SMIの発生に応答して、BIOSはドッキング状態の変化が発生したことを制御用プログラムモジュール204に通知する。この通知に応答して、制御用プログラムモジュール204は、ドッキング状態の変化の有無を判別する。ドッキング状態の変化が発生したならば(ステップS207のYES)、制御用プログラムモジュール204は、ステップS201の処理に戻り、現在のドッキング状態を判別し、そして、その判別結果に応じて、デコード処理を実行すべきプロセッサをGPU116とMPU123との間で切り替えると共に、必要に応じて画質改善処理の内容を変更する。
以上のように、本実施形態においては、電源ソース、MPUの有無、およびMPUの負荷のような各種システム状態に応じて、動画像デコード処理等の特定の処理をGPU116とMPU123とに選択的に割り当てて実行させることが出来る。よって、MPU123を動作停止させた状態でも動画像データの再生処理を正常に実行することが可能となり、システムの省電力化を実現できる。さらに、動画像デコード処理をGPU116に実行させる場合には、デコードされた動画像データに施すべき映像処理の一部または全てを省略してGPU116の負荷を低減させることで、GPU116の性能を動画像デコード処理に集中させることができ、コマ落ちの発生等を防止することができる。
また、動画像の録画と再生を同時に実行する場合には、動画像デコード処理を実行すべはプロセッサをMPU123からGPU116に変更すると共に、MPU123に動画像エンコード処理を実行させることで、MPU123の負荷の増大を防止することが可能となり、システム全体としてのシステム処理効率の向上を図ることが可能となる。
なお、本実施形態では、デコード処理をMPU123またはGPU116に選択的に実行させる場合を説明したが、デコード処理に限らず、GPUとMPUとで演算処理性能の異なる処理であれば、当該処理をMPU123またはGPU116に選択的に実行させることにより、同様の効果を得ることができる。
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
10…コンピュータ、111…CPU、116…GPU、123…MPU、201,202…デコード用プログラムモジュール、203…画質改善用プログラムモジュール、204…制御用プログラムモジュール。

Claims (9)

  1. 第1の命令セットを有し、圧縮符号化された動画像データをデコードするデコード処理を実行可能な第1のプロセッサと、
    前記第1の命令セットとは異なる第2の命令セットを有し、前記第1のプロセッサよりも前記デコード処理を高速に実行するように構成される第2のプロセッサと、
    前記第2の命令セットを用いて記述され前記デコード処理を前記第2のプロセッサに実行させるための第1のプログラムモジュール、および前記第1の命令セットを用いて記述され前記デコード処理を前記第1のプロセッサに実行させるための第2のプログラムモジュールを含み、圧縮符号化された動画像データを再生する動画再生処理を実行するためのプログラムを格納する記憶部と、
    前記プログラムによって前記動画再生処理を実行する場合、情報処理装置が前記情報処理装置内に設けられたバッテリまたは外部電源のどちらによって駆動されているかを判別する手段と、
    前記情報処理装置が前記外部電源によって駆動されている場合、前記第1のプログラムモジュールを前記第2のプロセッサに割り当てることによって前記デコード処理を前記第2のプロセッサに実行させ、前記情報処理装置が前記バッテリによって駆動されている場合、前記第2のプログラムモジュールを前記第1のプロセッサに割り当てることによって前記デコード処理を前記第1のプロセッサに実行させる制御手段とを具備することを特徴とする情報処理装置。
  2. 前記制御手段は、前記情報処理装置が前記バッテリによって駆動されている場合、前記第2のプロセッサを動作状態から前記動作状態よりも電力消費の少ない状態に移行させることを特徴とする請求項記載の情報処理装置。
  3. 前記プログラムは、前記第1の命令セットを用いて記述され、前記デコード処理によってデコードされた動画像データに対して施すべき所定の映像処理を前記第1のプロセッサに実行させる第3のプログラムモジュールをさらに含み、
    前記制御手段は、前記情報処理装置が前記外部電源によって駆動されている場合、前記第1のプログラムモジュールを前記第2のプロセッサに割り当てることによって前記デコード処理を前記第2のプロセッサに実行させると共に前記第3のプログラムモジュールを前記第1のプロセッサに割り当てることによって前記映像処理を前記第1のプロセッサに実行させ、前記情報処理装置が前記バッテリによって駆動されている場合、前記第2のプログラムモジュールを前記第1のプロセッサに割り当てることによって前記デコード処理を前記第1のプロセッサに実行させると共に前記第1のプロセッサによって実行すべき前記映像処理の中の少なくとも一部の処理を省略することを特徴とする請求項記載の情報処理装置。
  4. 前記第1のプロセッサは、表示装置に表示されるべき画面を形成する映像信号を生成するグラフィクス処理プロセッサであり、
    前記第2のプロセッサは、動画像データストリームを処理するように構成されたメディア処理プロセッサであることを特徴とする請求項記載の情報処理装置。
  5. 第1の命令セットを有し、汎用処理、ベクトル演算を含むグラフィクス演算処理、および圧縮符号化された動画像データをデコードするデコード処理を実行可能なメインプロセッサと、
    第2の命令セットを有し、前記グラフィクス演算処理および前記デコード処理を実行可能であり、且つ前記メインプロセッサよりも前記グラフィクス演算処理および前記デコード処理を高速に実行するように構成された第1のサブプロセッサと、
    第3の命令セットを有し、前記グラフィクス演算処理および前記デコード処理を実行可能であり、且つ前記第1のサブプロセッサよりも前記デコード処理を高速に実行するように構成され、且つ前記第1のサブプロセッサよりも前記グラフィクス演算処理の処理性能が低い第2のサブプロセッサと、
    前記第3の命令セットを用いて記述され圧縮符号化された動画像データをデコードするためのデコード処理を前記第2のサブプロセッサに実行させるための第1のプログラムモジュールと、前記第2の命令セットを用いて記述され前記デコード処理を前記第1のサブプロセッサに実行させるための第2のプログラムモジュールと、前記第2の命令セットを用いて記述され前記デコード処理によってデコードされた動画像データに対して施すべき所定の映像処理を前記第1のサブプロセッサに実行させる第3のプログラムモジュールと、前記第1の命令セットを用いて記述された制御用プログラムモジュールとを含み、圧縮符号化された動画像データを再生する動画再生処理を実行するためのプログラムを格納する記憶部と、
    前記プログラムによって前記動画再生処理を実行する場合、情報処理装置が前記情報処理装置内に設けられたバッテリまたは外部電源のどちらによって駆動されているかを判別する手段と、
    前記制御用プログラムモジュールを前記メインプロセッサに実行させることによって前記第1乃至第3のプログラムモジュールの実行を制御する制御手段であって、前記情報処理装置が前記外部電源によって駆動されている場合には、前記第1のプログラムモジュールを前記第2のサブプロセッサに割り当てると共に、前記第3のプログラムモジュールを前記第1のサブプロセッサに割り当て、前記情報処理装置が前記バッテリによって駆動されている場合には、前記第2のプログラムモジュールを前記第1のサブプロセッサに割り当てると共に、前記第2および第3のプログラムモジュールを前記第1のサブプロセッサに割り当て、且つ前記第2のサブプロセッサを動作状態から前記動作状態よりも電力消費の少ない状態に移行させる制御手段とを具備することを特徴とする情報処理装置。
  6. 前記制御手段は、前記情報処理装置が前記バッテリによって駆動されている場合には、前記第1のサブプロセッサによって実行すべき前記映像処理の中の少なくとも一部の処理を省略することを特徴とする請求項記載の情報処理装置。
  7. 第1の命令セットを有し、圧縮符号化された動画像データをデコードするデコード処理を実行可能な第1のプロセッサと、前記第1の命令セットとは異なる第2の命令セットを有し、前記第1のプロセッサよりも前記デコード処理を高速に実行するように構成される第2のプロセッサとを有する情報処理装置におけるプログラムの実行を制御するプログラム実行制御方法であって、
    前記第2の命令セットを用いて記述され前記デコード処理を前記第2のプロセッサに実行させるための第1のプログラムモジュール、および前記第1の命令セットを用いて記述され前記デコード処理を前記第1のプロセッサに実行させるための第2のプログラムモジュールを含み、圧縮符号化された動画像データを再生する動画再生処理を実行するためのプログラムを入力するステップと、
    前記プログラムによって前記動画再生処理を実行する場合、情報処理装置が前記情報処理装置内に設けられたバッテリまたは外部電源のどちらによって駆動されているかを判別するステップと、
    前記情報処理装置が前記外部電源によって駆動されている場合、前記第1のプログラムモジュールを前記第2のプロセッサに割り当てることによって前記デコード処理を前記第2のプロセッサに実行させ、前記情報処理装置が前記バッテリによって駆動されている場合、前記第2のプログラムモジュールを前記第1のプロセッサに割り当てることによって前記デコード処理を前記第1のプロセッサに実行させる制御ステップとを具備することを特徴とするプログラム実行制御方法。
  8. 前記制御ステップは、前記情報処理装置が前記バッテリによって駆動されている場合、前記第2のプロセッサを動作状態から前記動作状態よりも電力消費の少ない状態に移行させることを特徴とする請求項記載のプログラム実行制御方法。
  9. 前記プログラムは、前記第1の命令セットを用いて記述され、前記デコード処理によってデコードされた動画像データに対して施すべき所定の映像処理を前記第1のプロセッサに実行させる第3のプログラムモジュールをさらに含み、
    前記制御ステップは、前記情報処理装置が前記外部電源によって駆動されている場合、前記第1のプログラムモジュールを前記第2のプロセッサに割り当てることによって前記デコード処理を前記第2のプロセッサに実行させると共に前記第3のプログラムモジュールを前記第1のプロセッサに割り当てることによって前記映像処理を前記第1のプロセッサに実行させ、前記情報処理装置が前記バッテリによって駆動されている場合、前記第2のプログラムモジュールを前記第1のプロセッサに割り当てることによって前記デコード処理を前記第1のプロセッサに実行させると共に前記第1のプロセッサによって実行すべき前記映像処理の中の少なくとも一部の処理を省略することを特徴とする請求項記載のプログラム実行制御方法。
JP2011161936A 2011-07-25 2011-07-25 情報処理装置およびプログラム実行制御方法 Active JP5259784B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011161936A JP5259784B2 (ja) 2011-07-25 2011-07-25 情報処理装置およびプログラム実行制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011161936A JP5259784B2 (ja) 2011-07-25 2011-07-25 情報処理装置およびプログラム実行制御方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007117382A Division JP2008276395A (ja) 2007-04-26 2007-04-26 情報処理装置およびプログラム実行制御方法

Publications (2)

Publication Number Publication Date
JP2011210282A JP2011210282A (ja) 2011-10-20
JP5259784B2 true JP5259784B2 (ja) 2013-08-07

Family

ID=44941184

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011161936A Active JP5259784B2 (ja) 2011-07-25 2011-07-25 情報処理装置およびプログラム実行制御方法

Country Status (1)

Country Link
JP (1) JP5259784B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7278067B2 (ja) * 2018-12-20 2023-05-19 キヤノン株式会社 データ処理装置及びその制御方法及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09138716A (ja) * 1995-11-14 1997-05-27 Toshiba Corp 電子計算機
JP3826859B2 (ja) * 2002-08-19 2006-09-27 ソニー株式会社 情報処理方法とその方法を実現するプログラム及び記録媒体
JP2004171234A (ja) * 2002-11-19 2004-06-17 Toshiba Corp マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム
JP2006155187A (ja) * 2004-11-29 2006-06-15 Sony Corp 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム。
JP2007013315A (ja) * 2005-06-28 2007-01-18 Toshiba Corp 情報処理装置および動画像再生方法

Also Published As

Publication number Publication date
JP2011210282A (ja) 2011-10-20

Similar Documents

Publication Publication Date Title
JP2008276395A (ja) 情報処理装置およびプログラム実行制御方法
US9069553B2 (en) Switching tasks between heterogeneous cores
US9529646B2 (en) Power-efficient interaction between multiple processors
TWI452514B (zh) 電腦系統及組態該電腦系統之方法
US7917784B2 (en) Methods and systems for power management in a data processing system
TWI544322B (zh) 管理電源使用的技術
TWI431532B (zh) 用於經由一虛擬圖形裝置驅動程式於一顯示器上顯示一影像之方法、系統及儲存媒體
JP2006236159A (ja) 情報処理装置及びその省電力制御方法
US20130125126A1 (en) Information processing apparatus and method for controlling information processing apparatus
US9395803B2 (en) Multi-core processor system implementing migration of a task from a group of cores to another group of cores
JP2009289193A (ja) 情報処理装置
JP2009288430A (ja) 情報処理装置
KR20230073302A (ko) 멀티플렉서에서의 글리치리스 gpu 전환
JP2007295392A (ja) 情報処理装置、復号処理方法、およびプログラム
JP5259784B2 (ja) 情報処理装置およびプログラム実行制御方法
US10860083B2 (en) System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail
JP2008243049A (ja) 情報処理装置および同装置のメモリ制御方法
CN101408796B (zh) 具备运动图像播放模式的计算机及其播放运动图像时系统模式的设定方法
WO2020197725A1 (en) System, apparatus and method for adaptive interconnect routing
JP4703757B2 (ja) 情報処理装置
US11921564B2 (en) Saving and restoring configuration and status information with reduced latency
JP2011170874A (ja) 情報処理装置および情報処理装置におけるデータ退避高速化方法
JP2006163643A (ja) 電源制御装置、データ読出装置および電源制御方法
TWI772438B (zh) 用於計算設備中的動態緩衝器大小設定的系統和方法
JP2008140054A (ja) 情報処理装置およびその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130115

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130308

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130424

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160502

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5259784

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313121

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350