(57)【要約】【課題】リアルタイムに動的でハードウェア加速器とソフトウェア加速器との間でスイッチング可能なシステムオンチップと該システムオンチップの動作方法を提供する。【解決手段】システムオンチップの動作方法は、アプリケーションプログラムの実行によって生成された加速要請信号を受信する段階と、前記加速要請信号の受信に応答して、ＣＰＵの現在使用量と基準使用量とを比較し、比較信号を生成する段階と、前記比較信号に応答して、前記アプリケーションプログラムによって実行されるマルチメディアを加速するために、異種の加速器の間でスイッチングを行う段階とを有する。【選択図】      図８
2013050953.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムの実行によって生成された加速要請信号を受信する段階と、
前記加速要請信号の受信に応答して、ＣＰＵの現在使用量と基準使用量とを比較し、比較信号を生成する段階と、
前記比較信号に応答して、前記アプリケーションプログラムによって実行されるマルチメディアを加速するために、異種の加速器の間でスイッチングを行う段階とを有することを特徴とするシステムオンチップの動作方法。
【請求項２】
前記異種の加速器は、ハードウェア装置として具現されたハードウェア加速器と、前記ＣＰＵで実行可能なプログラムコードとして具現されたソフトウェア加速器とを含み、
前記ソフトウェア加速器は、メモリから前記ＣＰＵに読み込まれた後に実行されることを特徴とする請求項１に記載のシステムオンチップの動作方法。
【請求項３】
前記比較信号を生成する段階は、前記アプリケーションプログラムに対してデフォルトとして設定された加速器が、前記ハードウェア加速器であり、前記ハードウェア加速器が動作中である時に行われることを特徴とする請求項２に記載のシステムオンチップの動作方法。
【請求項４】
前記比較信号を生成する段階は、前記アプリケーションプログラムに対してデフォルトとして設定された加速器が、前記ソフトウェア加速器である時に行われることを特徴とする請求項２に記載のシステムオンチップの動作方法。
【請求項５】
前記ＣＰＵの現在使用量と前記ＣＰＵの基準使用量のそれぞれは、前記現在使用量と前記基準使用量のそれぞれに対応する前記ＣＰＵの遊休時間（ｉｄｌｅ  ｔｉｍｅ）であることを特徴とする請求項１に記載のシステムオンチップの動作方法。
【請求項６】
前記ＣＰＵの現在使用量と前記ＣＰＵの基準使用量のそれぞれは、前記ＣＰＵの動作電圧と前記ＣＰＵの動作周波数とのうちの少なくとも１つであることを特徴とする請求項１に記載のシステムオンチップの動作方法。
【請求項７】
アプリケーションプログラムの実行によって生成された加速要請信号を受信する段階と、
前記加速要請信号によって、前記アプリケーションプログラムによって実行されるマルチメディアを加速するためのデフォルト加速器が、ハードウェア加速器であるか、またはＣＰＵで実行可能なプログラムとして具現されたソフトウェア加速器であるかを判断する段階と、
前記デフォルト加速器が、前記ソフトウェア加速器である時、または前記ハードウェア加速器でありながら、他のマルチメディアを加速している時、前記ＣＰＵの現在使用量と基準使用量とを比較し、比較信号を生成する段階と、
前記比較信号によって、前記デフォルト加速器を非デフォルト（ｎｏｎ−ｄｅｆａｕｌｔ）加速器に変更する段階とを有することを特徴とするシステムオンチップの動作方法。
【請求項８】
前記デフォルト加速器が、ハードウェア加速器であるかソフトウェア加速器であるかを判断する段階は、テーブルに保存された加速器情報に基づいて判断することを特徴とする請求項７に記載のシステムオンチップの動作方法。
【請求項９】
異種の加速器と、
アプリケーションプログラムによって実行されるマルチメディアを加速するために、前記異種の加速器の間でスイッチングを行うための比較信号を生成する加速器コントローラモジュールを実行させるＣＰＵとを有し、
前記加速器コントローラモジュールは、
前記ＣＰＵの現在使用量と基準使用量とを比較して、前記比較信号を出力し、
前記異種の加速器は、ハードウェア装置として具現されたハードウェア加速器と、前記ＣＰＵで実行可能なプログラムコードとして具現されたソフトウェア加速器とを含み、
前記ソフトウェア加速器は、メモリから前記ＣＰＵに読み込まれた後に実行されることを特徴とするシステムオンチップ。
【請求項１０】
前記ハードウェア加速器が、前記マルチメディアを加速するためのデフォルト加速器として設定され、他のマルチメディアを加速している時、
前記加速器コントローラモジュールは、
前記ＣＰＵの現在使用量に対応する前記ＣＰＵの遊休時間が、前記ＣＰＵの基準使用量に対応する前記ＣＰＵの遊休時間より長い時に生成された前記比較信号によって、前記マルチメディアを加速するための加速器を、前記ハードウェア加速器から前記ソフトウェア加速器に変更することを特徴とする請求項９に記載のシステムオンチップ。
【請求項１１】
前記ソフトウェア加速器が、前記マルチメディアを加速するためのデフォルト加速器として設定されている時、
前記加速器コントローラモジュールは、
前記ＣＰＵの現在使用量に対応する前記ＣＰＵの遊休時間が、前記ＣＰＵの基準使用量に対応する前記ＣＰＵの遊休時間より短い時に生成された前記比較信号によって、前記マルチメディアを加速するための加速器を、前記ソフトウェア加速器から前記ハードウェア加速器に変更することを特徴とする請求項９に記載のシステムオンチップ。
【請求項１２】
前記ハードウェア加速器が、前記マルチメディアを加速するためのデフォルト加速器として設定され、他のマルチメディアを加速している時、
前記加速器コントローラモジュールは、
前記ＣＰＵの現在使用量に対応する前記ＣＰＵの動作周波数が、前記ＣＰＵの基準使用量に対応する前記ＣＰＵの周波数より低い時に生成された前記比較信号によって、前記マルチメディアを加速するための加速器を、前記ハードウェア加速器から前記ソフトウェア加速器に変更することを特徴とする請求項９に記載のシステムオンチップ。
【請求項１３】
前記ソフトウェア加速器が、前記マルチメディアを加速するためのデフォルト加速器として設定されている時、
前記加速器コントローラモジュールは、
前記ＣＰＵの現在使用量に対応する前記ＣＰＵの動作周波数が、前記ＣＰＵの基準使用量に対応する前記ＣＰＵの周波数より高い時に生成された前記比較信号によって、前記マルチメディアを加速するための加速器を、前記ソフトウェア加速器から前記ハードウェア加速器に変更することを特徴とする請求項９に記載のシステムオンチップ。
【請求項１４】
前記ＣＰＵの現在使用量と前記ＣＰＵの基準使用量のそれぞれは、前記現在使用量と前記基準使用量のそれぞれに対応する前記ＣＰＵの遊休時間であることを特徴とする請求項９に記載のシステムオンチップ。
【請求項１５】
前記ＣＰＵの現在使用量と前記ＣＰＵの基準使用量のそれぞれは、前記ＣＰＵの動作電圧と前記ＣＰＵの動作周波数とのうちの少なくとも１つであることを特徴とする請求項９に記載のシステムオンチップ。
【請求項１６】
マルチメディアを保存する不揮発性メモリと、
ディスプレイと、
異種の加速器と、
アプリケーションプログラムによって実行される前記マルチメディアを加速するために、前記異種の加速器の間でスイッチングを行うための比較信号を生成する加速器コントローラモジュールを実行させるＣＰＵとを有し、
前記加速器コントローラモジュールは、
前記ＣＰＵの現在使用量と基準使用量とを比較して、前記比較信号を出力し、
前記異種の加速器のうち、前記比較信号によって選択された加速器は、加速したマルチメディアを前記ディスプレイを通じて表示し、
前記異種の加速器は、ハードウェア装置として具現されたハードウェア加速器と、前記ＣＰＵで実行可能なプログラムコードとして具現されたソフトウェア加速器とを含み、
前記ソフトウェア加速器は、メモリから前記ＣＰＵに読み込まれた後に実行されることを特徴とする携帯用装置。
【請求項１７】
ハードウェア加速器と、
アプリケーションプログラム、加速器制御モジュール、及びソフトウェア加速器を保存するメモリと、
前記ハードウェア加速器と前記メモリとを制御するためのＣＰＵとを有し、
前記ＣＰＵによって、前記アプリケーションプログラム、前記加速器制御モジュール、及び前記ソフトウェア加速器が実行されることによって、
前記加速器制御モジュールは、
前記アプリケーションプログラムの実行によって生成された加速要請信号を受信し、
前記加速要請信号によって、前記アプリケーションプログラムによって実行されるマルチメディアを加速するためのデフォルト加速器が、ハードウェア加速器であるか、または前記ＣＰＵで実行可能なプログラムとして具現されたソフトウェア加速器であるかを判断し、
前記デフォルト加速器が、前記ソフトウェア加速器である時、または前記ハードウェア加速器でありながら、他のマルチメディアを加速している時、前記ＣＰＵの現在使用量と基準使用量とを比較して、比較信号を生成し、
前記比較信号によって、前記デフォルト加速器を非デフォルト加速器に変更することを特徴とするシステムオンチップ。
【請求項１８】
前記加速器制御モジュールは、前記メモリに保存され、前記デフォルト加速器についての加速器情報に基づいて、前記デフォルト加速器を判断することを特徴とする請求項１７に記載のシステムオンチップ。
【請求項１９】
前記加速器制御モジュールは、ユーザ入力インターフェースから入力された情報に基づいて、前記基準使用量を調節することを特徴とする請求項１７に記載のシステムオンチップ。
【請求項２０】
加速器制御モジュールが、アプリケーションプログラムの実行によって生成された加速要請信号を受信する段階と、
前記加速器制御モジュールが、前記加速要請信号によって、テーブルから加速器情報を読み取る段階と、
前記加速器情報に基づいて、前記加速器制御モジュールが、前記アプリケーションプログラムによって実行されるマルチメディアを加速するために、ハードウェア装置として具現されたハードウェア加速器と、ＣＰＵで実行可能なプログラムコードとして具現されたソフトウェア加速器とのうちの何れか１つを選択的に駆動させる段階とを有し、
前記加速器情報は、前記ハードウェア加速器の加速時間と前記ソフトウェア加速器の加速時間とのうち、短い加速時間を有する加速器を表わすことを特徴とするシステムオンチップの動作方法。
【請求項２１】
変更信号を受信する段階と、
前記変更信号が、電力消費量を基準に選択されたデフォルト加速器を選択する指示信号であるか、または性能を基準に選択されたデフォルト加速器を選択する指示信号であるかを判断する段階と、
前記判断の結果に基づいて、複数のテーブルのうちの何れか１つに保存された加速器情報を参照する段階と、
前記加速器情報に基づいて、ハードウェア装置として具現されたハードウェア加速器と、ＣＰＵで実行可能なプログラムコードとして具現されたソフトウェア加速器との内からデフォルトとして設定された加速器を前記デフォルト加速器として駆動させる段階とを有することを特徴とするシステムオンチップの動作方法。
【請求項２２】
前記変更信号が、電力消費量を基準に選択されたデフォルト加速器を選択する指示信号である時、前記ＣＰＵの現在使用量と基準使用量とを比較し、比較信号を生成させる段階と、
前記比較信号によって、前記デフォルト加速器を非デフォルト加速器に変更する段階とをさらに有することを特徴とする請求項２１に記載のシステムオンチップの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、加速器（ａｃｃｅｌｅｒａｔｏｒ）選択技術に関し、特に、消費電力又は性能に基づいて、ハードウェア加速器とソフトウェア加速器との間でスイッチング（ｓｗｉｔｃｈｉｎｇ）可能なシステムオンチップと、該システムオンチップの動作方法とに関する。
【背景技術】
【０００２】
グラフィック、オーディオ、ビデオ、アニメーション、ゲーム、及びテキストを含むマルチメディア（ｍｕｌｔｉｍｅｄｉａ）を支援するデータ処理システムは、オーディオコーデック（ａｕｄｉｏ  ｃｏｄｅｃ）、ビデオコーデック（ｖｉｄｅｏ  ｃｏｄｅｃ）、２次元加速器（２−ｄｉｍｅｎｓｉｏｎａｌ  ａｃｃｅｌｅｒａｔｏｒ）、及び／又は３次元加速器（３−ｄｉｍｅｎｓｉｏｎａｌ  ａｃｃｅｌｅｒａｔｏｒ）のような多種の加速器を含む。
【０００３】
上記加速器のそれぞれは、ハードウェアまたはソフトウェアとして具現可能である。
ハードウェア加速器は、ＣＰＵより迅速に多様な機能を行うために、専用ハードウェア又は専用ハードウェア装置を使う。すなわち、ハードウェア加速器は、ＣＰＵの負荷（ｌｏａｄ）を増加させずに迅速にマルチメディアを加速することができるが、別途のハードウェアを必要とするので、製造コストが増加するという短所がある。
【０００４】
コンピュータ実行可能なプログラムとして具現可能なソフトウェア加速器は、プログラム変更が容易であり、別途のハードウェアなしで、少ない電力を消費しながら、マルチメディアを加速することができるという長所があるが、ＣＰＵの全体負荷（ｔｏｔａｌ  ｌｏａｄ）が大きい場合、データ処理システム全体の動作速度又は反応速度を減少させるという短所がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
そこで、本発明は上記従来の加速器選択技術における問題点に鑑みてなされたものであって、本発明の目的は、マルチメディアを加速するために、リアルタイムに動的（ｄｙｎａｍｉｃ）でハードウェア加速器とソフトウェア加速器との間でスイッチング可能なシステムオンチップと、該システムオンチップの動作方法、並びにこれらを有する携帯用装置とを提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するためになされた本発明によるシステムオンチップの動作方法は、アプリケーションプログラムの実行によって生成された加速要請信号を受信する段階と、前記加速要請信号の受信に応答して、ＣＰＵの現在使用量と基準使用量とを比較し、比較信号を生成する段階と、前記比較信号に応答して、前記アプリケーションプログラムによって実行されるマルチメディアを加速するために、異種の加速器の間でスイッチングを行う段階とを有することを特徴とする。
【０００７】
前記異種の加速器は、ハードウェア装置として具現されたハードウェア加速器と、前記ＣＰＵで実行可能なプログラムコードとして具現されたソフトウェア加速器とを含み、前記ソフトウェア加速器は、メモリから前記ＣＰＵに読み込まれた後に実行されることが好ましい。
前記比較信号を生成する段階は、前記アプリケーションプログラムに対してデフォルトとして設定された加速器が、前記ハードウェア加速器であり、前記ハードウェア加速器が動作中である時に行われることが好ましい。
前記比較信号を生成する段階は、前記アプリケーションプログラムに対してデフォルトとして設定された加速器が、前記ソフトウェア加速器である時に行われることが好ましい。
前記ＣＰＵの現在使用量と前記ＣＰＵの基準使用量のそれぞれは、前記現在使用量と前記基準使用量のそれぞれに対応する前記ＣＰＵの遊休時間（ｉｄｌｅ  ｔｉｍｅ）であることが好ましい。
前記ＣＰＵの現在使用量と前記ＣＰＵの基準使用量のそれぞれは、前記ＣＰＵの動作電圧と前記ＣＰＵの動作周波数とのうちの少なくとも１つであることが好ましい。
【０００８】
また、上記目的を達成するためになされた本発明によるシステムオンチップの動作方法は、アプリケーションプログラムの実行によって生成された加速要請信号を受信する段階と、前記加速要請信号によって、前記アプリケーションプログラムによって実行されるマルチメディアを加速するためのデフォルト加速器が、ハードウェア加速器であるか、またはＣＰＵで実行可能なプログラムとして具現されたソフトウェア加速器であるかを判断する段階と、前記デフォルト加速器が、前記ソフトウェア加速器である時、または前記ハードウェア加速器でありながら、他のマルチメディアを加速している時、前記ＣＰＵの現在使用量と基準使用量とを比較し、比較信号を生成する段階と、前記比較信号によって、前記デフォルト加速器を非デフォルト（ｎｏｎ−ｄｅｆａｕｌｔ）加速器に変更する段階とを有することを特徴とする。
【０００９】
前記デフォルト加速器が、ハードウェア加速器であるかソフトウェア加速器であるかを判断する段階は、テーブルに保存された加速器情報に基づいて判断することが好ましい。
【００１０】
上記目的を達成するためになされた本発明によるシステムオンチップは、異種の加速器と、アプリケーションプログラムによって実行されるマルチメディアを加速するために、前記異種の加速器の間でスイッチングを行うための比較信号を生成する加速器コントローラモジュールを実行させるＣＰＵとを有し、前記加速器コントローラモジュールは、前記ＣＰＵの現在使用量と基準使用量とを比較して、前記比較信号を出力し、前記異種の加速器は、ハードウェア装置として具現されたハードウェア加速器と、前記ＣＰＵで実行可能なプログラムコードとして具現されたソフトウェア加速器とを含み、前記ソフトウェア加速器は、メモリから前記ＣＰＵに読み込まれた後に実行されることを特徴とする。
【００１１】
前記ハードウェア加速器が、前記マルチメディアを加速するためのデフォルト加速器として設定され、他のマルチメディアを加速している時、前記加速器コントローラモジュールは、前記ＣＰＵの現在使用量に対応する前記ＣＰＵの遊休時間が、前記ＣＰＵの基準使用量に対応する前記ＣＰＵの遊休時間より長い時に生成された前記比較信号によって、前記マルチメディアを加速するための加速器を、前記ハードウェア加速器から前記ソフトウェア加速器に変更することが好ましい。
前記ソフトウェア加速器が、前記マルチメディアを加速するためのデフォルト加速器として設定されている時、前記加速器コントローラモジュールは、前記ＣＰＵの現在使用量に対応する前記ＣＰＵの遊休時間が、前記ＣＰＵの基準使用量に対応する前記ＣＰＵの遊休時間より短い時に生成された前記比較信号によって、前記マルチメディアを加速するための加速器を、前記ソフトウェア加速器から前記ハードウェア加速器に変更することが好ましい。
前記ハードウェア加速器が、前記マルチメディアを加速するためのデフォルト加速器として設定され、他のマルチメディアを加速している時、前記加速器コントローラモジュールは、前記ＣＰＵの現在使用量に対応する前記ＣＰＵの動作周波数が、前記ＣＰＵの基準使用量に対応する前記ＣＰＵの周波数より低い時に生成された前記比較信号によって、前記マルチメディアを加速するための加速器を、前記ハードウェア加速器から前記ソフトウェア加速器に変更することが好ましい。
前記ソフトウェア加速器が、前記マルチメディアを加速するためのデフォルト加速器として設定されている時、前記加速器コントローラモジュールは、前記ＣＰＵの現在使用量に対応する前記ＣＰＵの動作周波数が、前記ＣＰＵの基準使用量に対応する前記ＣＰＵの周波数より高い時に生成された前記比較信号によって、前記マルチメディアを加速するための加速器を、前記ソフトウェア加速器から前記ハードウェア加速器に変更することが好ましい。
前記ＣＰＵの現在使用量と前記ＣＰＵの基準使用量のそれぞれは、前記現在使用量と前記基準使用量のそれぞれに対応する前記ＣＰＵの遊休時間であることが好ましい。
前記ＣＰＵの現在使用量と前記ＣＰＵの基準使用量のそれぞれは、前記ＣＰＵの動作電圧と前記ＣＰＵの動作周波数とのうちの少なくとも１つであることが好ましい。
【００１２】
上記目的を達成するためになされた本発明による携帯用装置は、マルチメディアを保存する不揮発性メモリと、ディスプレイと、異種の加速器と、アプリケーションプログラムによって実行される前記マルチメディアを加速するために、前記異種の加速器の間でスイッチングを行うための比較信号を生成する加速器コントローラモジュールを実行させるＣＰＵとを有し、前記加速器コントローラモジュールは、前記ＣＰＵの現在使用量と基準使用量とを比較して、前記比較信号を出力し、前記異種の加速器のうち、前記比較信号によって選択された加速器は、加速したマルチメディアを前記ディスプレイを通じて表示し、前記異種の加速器は、ハードウェア装置として具現されたハードウェア加速器と、前記ＣＰＵで実行可能なプログラムコードとして具現されたソフトウェア加速器とを含み、前記ソフトウェア加速器は、メモリから前記ＣＰＵに読み込まれた後に実行されることを特徴とする。
【００１３】
また、上記目的を達成するためになされた本発明によるシステムオンチップは、ハードウェア加速器と、アプリケーションプログラム、加速器制御モジュール、及びソフトウェア加速器を保存するメモリと、前記ハードウェア加速器と前記メモリとを制御するためのＣＰＵとを有し、前記ＣＰＵによって、前記アプリケーションプログラム、前記加速器制御モジュール、及び前記ソフトウェア加速器が実行されることによって、前記加速器制御モジュールは、前記アプリケーションプログラムの実行によって生成された加速要請信号を受信し、前記加速要請信号によって、前記アプリケーションプログラムによって実行されるマルチメディアを加速するためのデフォルト加速器が、ハードウェア加速器であるか、または前記ＣＰＵで実行可能なプログラムとして具現されたソフトウェア加速器であるかを判断し、前記デフォルト加速器が、前記ソフトウェア加速器である時、または前記ハードウェア加速器でありながら、他のマルチメディアを加速している時、前記ＣＰＵの現在使用量と基準使用量とを比較して、比較信号を生成し、前記比較信号によって、前記デフォルト加速器を非デフォルト加速器に変更することを特徴とする。
【００１４】
前記加速器制御モジュールは、前記メモリに保存され、前記デフォルト加速器についての加速器情報に基づいて、前記デフォルト加速器を判断することが好ましい。
前記加速器制御モジュールは、ユーザ入力インターフェースから入力された情報に基づいて、前記基準使用量を調節することが好ましい。
【００１５】
また、上記目的を達成するためになされた本発明によるシステムオンチップの動作方法は、加速器制御モジュールが、アプリケーションプログラムの実行によって生成された加速要請信号を受信する段階と、前記加速器制御モジュールが、前記加速要請信号によって、テーブルから加速器情報を読み取る段階と、前記加速器情報に基づいて、前記加速器制御モジュールが、前記アプリケーションプログラムによって実行されるマルチメディアを加速するために、ハードウェア装置として具現されたハードウェア加速器と、ＣＰＵで実行可能なプログラムコードとして具現されたソフトウェア加速器とのうちの何れか１つを選択的に駆動させる段階とを有し、前記加速器情報は、前記ハードウェア加速器の加速時間と前記ソフトウェア加速器の加速時間とのうち、短い加速時間を有する加速器を表わすことを特徴とする。
【００１６】
また、上記目的を達成するためになされた本発明によるシステムオンチップの動作方法は、変更信号を受信する段階と、前記変更信号が、電力消費量を基準に選択されたデフォルト加速器を選択する指示信号であるか、または性能を基準に選択されたデフォルト加速器を選択する指示信号であるかを判断する段階と、前記判断の結果に基づいて、複数のテーブルのうちの何れか１つに保存された加速器情報を参照する段階と、前記加速器情報に基づいて、ハードウェア装置として具現されたハードウェア加速器と、ＣＰＵで実行可能なプログラムコードとして具現されたソフトウェア加速器との内からデフォルトとして設定された加速器を前記デフォルト加速器として駆動させる段階とを有することを特徴とする。
【００１７】
前記変更信号が、電力消費量を基準に選択されたデフォルト加速器を選択する指示信号である時、前記ＣＰＵの現在使用量と基準使用量とを比較し、比較信号を生成させる段階と、前記比較信号によって、前記デフォルト加速器を非デフォルト加速器に変更する段階とをさらに有することが好ましい。
【発明の効果】
【００１８】
本発明に係るシステムオンチップ及びその動作方法並びに携帯用装置によれば、加速器制御モジュールを用いてアプリケーションプログラムによって実行されるマルチメディアを加速するために、異種の加速器の間でスイッチングすることができるという効果がある。
異種の加速器を含むシステムオンチップで、電力消耗量及び／または性能に基づいて、上記スイッチングが行われることによって、システムオンチップの電力消耗量を減少させながら、性能を向上させることができるという効果がある。
また、マルチ加速を行い、異種の加速器を含むシステムオンチップは、異種の加速器を同時に駆動させることができ、したがって、加速能力が増加するという効果がある。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態によるデータ処理システムを示すブロック図である。
【図２】図１に示したデータ処理システムの動作方法を説明するためのブロック図である。
【図３】本発明の実施形態によるハードウェア加速器とソフトウェア加速器との間のスイッチング方法を説明するための概念図である。
【図４】本発明の一実施形態による、消費電力を基準にアプリケーションプログラム別にデフォルト加速器を選択する方法を説明するためのフローチャートである。
【図５】図４に示した方法によってアプリケーションプログラム別に設定されたデフォルト加速器についての選択情報を含むテーブルの例を示す図である。
【図６】図１に示したデータ処理システムの動作方法の一実施形態を説明するためのフローチャートである。
【図７】図１に示したデータ処理システムの動作方法の他の実施形態を説明するためのフローチャートである。
【図８】図１に示したデータ処理システムの動作方法のさらに他の実施形態を説明するためのフローチャートである。
【図９】本発明の他の実施形態によって、性能をアプリケーションプログラム別にデフォルト加速器を選択する方法を説明するためのフローチャートである。
【図１０】図１に示したデータ処理システムの動作方法のさらに他の実施形態を説明するためのフローチャートである。
【発明を実施するための形態】
【００２０】
次に、本発明に係るシステムオンチップ及びその動作方法並びに携帯用装置を実施するための形態の具体例を図面を参照しながら説明する。
【００２１】
本明細書で記載する加速器（ａｃｃｅｌｅｒａｔｏｒ）は、次の加速器を含む。
ハードウェア加速器又はソフトウェア加速器として具現可能なビデオコーデックは、デジタルビデオ（ｄｉｇｉｔａｌ  ｖｉｄｅｏ）を圧縮（ｃｏｍｐｒｅｓｓｉｏｎ）及び／又は復元（ｄｅｃｏｍｐｒｅｓｓｉｏｎ）することができる装置又はソフトウェアを意味する。
【００２２】
ソフトウェア加速器として具現可能なオーディオコーデックは、与えられたオーディオファイルフォーマット又はストリーミングオーディオフォーマットによって、デジタルオーディオデータを圧縮及び／又は復元することができるアルゴリズム（ａｌｇｏｒｉｔｈｍ）を具現したコンピュータプログラムを意味する。
また、ハードウェア加速器として具現可能なオーディオコーデックは、アナログオーディオをデジタル信号にエンコードし、デジタル信号をアナログオーディオにデコードすることができる１つの装置を意味する。
【００２３】
ソフトウェア加速器として具現可能なダウンロード加速器又はダウンロードマネージャーは、ダウンローディング（ｄｏｗｎｌｏａｄｉｎｇ）のための専用ソフトウェアを意味する。
ハードウェア加速器として具現可能なグラフィックスプロセッシングユニット又はグラフィックス加速器は、専用グラフィックスレンダリング装置を意味する。
ソフトウェア加速器として具現可能な加速器（ライブラリー（ｌｉｂｒａｒｙ））は、グラフィックスプロセッシングユニットのためのプログラムが書き込まれるライブラリーを意味する。
【００２４】
ハードウェア加速器又はソフトウェア加速器として具現可能な暗号加速器（ｃｒｙｐｔｏｇｒａｐｈｉｃ  ａｃｃｅｌｅｒａｔｏｒ）は、暗号化（ｅｎｃｒｙｐｔｉｎｇ）及び／又は復号化（ｄｅｃｒｙｐｔｉｎｇ）を行うことができる装置またはソフトウェアを意味する。
ハードウェア加速器として具現可能なウェブ加速器（ｗｅｂ  ａｃｃｅｌｅｒａｔｏｒ）は、ウェブサイトを迅速にアクセスできるプロキシサーバを意味する。
【００２５】
ＭＰ３プレーヤー又はＭＰ４プレーヤーは、ハードウェア又はソフトウェアとして具現可能である。また、２Ｄ又は３Ｄ加速器は、ハードウェア又はソフトウェアとして具現可能である。
【００２６】
上述した加速器以外に、マルチメディア（または、マルチメディアデータ）を加速することができる加速器は、ハードウェア又はソフトウェアとして具現可能である。
また、オーディオエンコーダ、オーディオデコーダ、ビデオエンコーダ、及びビデオデコーダも、加速器に含まれうる。
【００２７】
すなわち、本発明の実施形態によるデータ処理システムは、異種の加速器、例えば、ハードウェア加速器とソフトウェア加速器とを共に含んでおり、ＣＰＵの現在使用量（ｃｕｒｒｅｎｔ  ｕｓａｇｅ）と基準使用量（ｒｅｆｅｒｅｎｃｅ  ｕｓａｇｅ）との比較結果を表わす比較信号によって、異種の加速器の間でスイッチング又は選択することができる。
【００２８】
図１は、本発明の実施形態によるデータ処理システムを示すブロック図である。
図１を参照すると、データ処理システム１は、携帯電話、スマートフォン、タブレットコンピュータ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、ＥＤＡ（ＥｎｔｅｒｐｒｉｓｅＤｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、デジタルスチルカメラ、デジタルビデオカメラ、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、ＰＮＤ（Ｐｅｒｓｏｎａｌ  Ｎａｖｉｇａｔｉｏｎ  Ｄｅｖｉｃｅ、またはＰｏｒｔａｂｌｅ  Ｎａｖｉｇａｔｉｏｎ  Ｄｅｖｉｃｅ）、携帯用ゲームコンソール、またはイーブック（ｅ−ｂｏｏｋ）ような携帯用装置として具現可能である。
【００２９】
データ処理システム１は、システムオンチップ（ｓｙｓｔｅｍ−ｏｎ  ｃｈｉｐ：以下、ＳｏＣ）１０、メモリ２１、及びディスプレイ２６を含む。例えば、ＳｏＣ１０、及びメモリ２１は、システムＰＣＢ（Ｐｒｉｎｔｅｄ  Ｃｉｒｃｕｉｔ  Ｂｏａｒｄ）として具現可能である。
【００３０】
ＳｏＣ１０は、ＣＰＵ１２、ＲＯＭ１４、ＲＡＭ１６、ハードウェア加速器１８、入出力インターフェース２０、バス（ｂｕｓ）２２、及びディスプレイコントローラ２４を含む。
プロセッサ（ｐｒｏｃｅｓｓｏｒ）とも呼ばれるＣＰＵ１２は、ＲＯＭ１４又はＲＡＭ１６に保存されたプログラム及び／又はデータを処理または実行することができる。
例えば、ＣＰＵ１２は、クロック信号発生器（図示せず）から出力されたクロック信号に応答して、プログラム及び／又はデータを処理または実行することができる。
【００３１】
ＣＰＵ１２は、マルチコアプロセッサ（ｍｕｌｔｉ−ｃｏｒｅ  ｐｒｏｃｅｓｓｏｒ）として具現可能である。マルチコアプロセッサは、２つ又はそれ以上の独立した実質的なプロセッサ（“コア（ｃｏｒｅ）”と呼ばれる）を有する１つのコンピューティングコンポーネントであり、コアプロセッサのそれぞれは、プログラム命令を読み取って実行することができる。マルチコアプロセッサは、複数の加速器を同時に駆動することができるので、マルチコアプロセッサを含むデータ処理システムは、マルチ加速（ｍｕｌｔｉ−ａｃｃｅｌｅｒａｔｉｏｎ）を行うことができる。
【００３２】
ＲＯＭ１４又はＲＡＭ１６に保存されたプログラム及び／又はデータは、必要に応じて、ＣＰＵ１２のメモリ、例えば、キャッシュ（ｃａｃｈｅ）メモリにロードされる。
ＲＯＭ１４は、恒久的なプログラム及び／又はデータを保存することができる。ＲＯＭ１４は、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）又はＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）として具現可能である。
【００３３】
ＲＡＭ１６は、プログラム、データ、又は命令を一時的に保存することができる。例えば、ＲＯＭ１４又はメモリ２１に保存されたプログラム及び／又はデータは、ＣＰＵ１２の制御又はＲＯＭ１４に保存されたブーティングコード（ｂｏｏｔｉｎｇ  ｃｏｄｅ）によってＲＡＭ１６に一時的に保存することができる。ＲＡＭ１６は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）又はＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）として具現可能である。
【００３４】
ハードウェア加速器１８は、マルチメディア（又は、マルチメディアデータ）、例えば、テキスト、オーディオ、静止画像、アニメーション、ビデオ、２次元データ、又は３次元データの処理能力を向上させるためのハードウェア装置またはコプロセッサ（ｃｏ−ｐｒｏｃｅｓｓｏｒ）を意味する。
図１では、説明の便宜上、１つのハードウェア加速器１８のみを示すが、実施形態によっては、ＳｏＣ１０は、１つ又はそれ以上のハードウェア加速器を含みうる。例えば、少なくとも１つのアプリケーションプログラムは、１つのハードウェア加速器を実行させることができる。
【００３５】
ＳｏＣ１０とメモリ２１は、入出力インターフェース２０を通じてデータを送受信する。
メモリ２１は、ＣＰＵ１２によって処理されるプログラム、機能（ｆｕｎｃｔｉｏｎｓ）及び／又はマルチメディアデータを保存することができる。メモリ２１は、不揮発性メモリとして具現可能である。不揮発性メモリは、フラッシュ（ｆｌａｓｈ）メモリ又は抵抗性メモリとして具現可能である。この際、入出力インターフェース２０は、メモリコントローラとして具現可能である。
【００３６】
各構成要素（符号１２、１４、１６、１８、２０、及び２４）は、バス２２を通じて互いに通信することができる。
【００３７】
ディスプレイ２６の動作を制御することができるディスプレイコントローラ２４は、ＣＰＵ１２にロードされたソフトウェア加速器又はハードウェア加速器１８によって加速された（または、処理された）マルチメディアデータをディスプレイすることができる。
【００３８】
図２は、図１に示したデータ処理システムの動作方法を説明するためのブロック図であり、図３は、本発明の実施形態によるハードウェア加速器とソフトウェア加速器との間のスイッチング方法を説明するための概念図である。
【００３９】
図１〜図３を参照すると、ＣＰＵ１２のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）は、ＣＰＵ１２の動作を全般的に制御する。例えば、アプリケーションプログラム（または、マルチメディアプレーヤー）（１２−１）が、ＣＰＵ１２のメモリにロードされて実行されれば、アプリケーションプログラム（１２−１）は、加速要請信号ＡＣＣ＿ＲＥＱを生成させる。実施形態によって、アプリケーションプログラム（１２−１）が、ユーザによって実行されれば、ＲＡＭ１６にロードされたアプリケーションプログラム（１２−１）は、ＣＰＵ１２のメモリにロードされうる。
【００４０】
各プログラム（１２−１〜１２−６）は、ＲＯＭ１４又はメモリ２１からＲＡＭ１６にロードされる。ＲＡＭ１６にロードされていた加速コントローラモジュール（または、加速コントロールコード）（１２−２）は、バス２２を通じてＣＰＵ１２のメモリにロードされ、ＲＡＭ１６にロードされていたテーブル（１２−３）は、ＣＰＵ１２のキャッシュメモリにロードされる。
【００４１】
加速コントローラモジュール（１２−２）は、加速要請信号ＡＣＣ＿ＲＥＱに応答して、アプリケーションプログラム（１２−１）によって実行される機能（例えば、マルチメディアデータ、暗号データ、又は復号データを処理する機能、グラフィックをレンダリングする機能、及び／又はウェブブラウジング（ｗｅｂ−ｂｒｏｗｓｉｎｇ）の速度を高める機能を加速するために、デフォルトとして設定されたデフォルト加速器が、ハードウェア装置として具現されたハードウェア加速器であるか、またはＣＰＵ１２で実行可能なプログラムとして具現されたソフトウェア加速器であるかを判断する。
この際、加速コントローラモジュール（１２−２）は、テーブル（１２−３）に保存された加速器情報を参照して、デフォルト加速器を判断することができる。
【００４２】
例えば、アプリケーションプログラム（１２−１）に対してデフォルトとして設定されたデフォルト加速器が、ハードウェア加速器１８である時、ＲＡＭ１６にロードされたハードウェア加速器ドライバー（１２−５）は、加速コントローラモジュール（１２−２）からの制御信号ＡＣＣ＿ＣＴＲによってＣＰＵ１２にロードされ、ハードウェア加速器１８は、ＣＰＵ１２にロードされたハードウェア加速器ドライバー（１２−５）の制御によって駆動する。
したがって、ハードウェア加速器１８は、アプリケーションプログラム（１２−１）によって要求される（または、実行される）マルチメディアを加速し、該加速されたマルチメディアをディスプレイコントローラ２４を通じてディスプレイ２６に伝送する。
【００４３】
しかし、アプリケーションプログラム（１２−１）に対してデフォルトとして設定されたデフォルト加速器が、ソフトウェア加速器である時、ＲＡＭ１６にロードされたソフトウェア加速器（１２−４）は、加速コントローラモジュール（１２−２）からの制御信号ＡＣＣ＿ＣＴＲによってＣＰＵ１２にロードされ、ＣＰＵ１２にロードされたソフトウェア加速器（１２−４）は、加速コントローラモジュール（１２−２）からの制御信号ＡＣＣ＿ＣＴＲによって実行又は駆動される。
したがって、ソフトウェア加速器（１２−４）は、アプリケーションプログラム（１２−１）によって要求される（または、実行される）マルチメディアを加速し、該加速されたマルチメディアをディスプレイコントローラ２４を通じてディスプレイ２６に伝送する。
【００４４】
図４は、本発明の一実施形態による、消費電力を基準にアプリケーションプログラム別にデフォルト加速器を選択する方法を説明するためのフローチャートであり、図５は、図４に示した方法によって、アプリケーションプログラム別に設定されたデフォルト加速器についての加速器情報を含むテーブルの例を示す図である。
【００４５】
図４と図５とを参照すると、加速器設定動作が始まれば、ＣＰＵ１２にロードされた加速コントローラモジュール（１２−２）は、第１アプリケーションプログラムＡＰＰ１に割り当てられたハードウェア加速器が実行される時、消費する電力Ｐｈｗを測定（又は、予測）する（ステップＳ１０）。
【００４６】
次に、加速コントローラモジュール（１２−２）は、第１アプリケーションプログラムＡＰＰ１に割り当てられたソフトウェア加速器が実行される時、消費する電力Ｐｓｗを測定（または、予測）する（ステップＳ２０）。
図４では、ステップＳ１０が、ステップＳ２０より先行される実施形態を示すが、実施形態によっては、ステップＳ１０よりステップＳ２０が先行されることもある。
【００４７】
次に、加速コントローラモジュール（１２−２）は、第１アプリケーションプログラムＡＰＰ１に割り当てられたハードウェア加速器の消費電力Ｐｈｗとソフトウェア加速器の消費電力Ｐｓｗとを互いに比較する（ステップＳ３０）。
例えば、ソフトウェア加速器の消費電力Ｐｓｗが、ハードウェア加速器の消費電力Ｐｈｗより多い時、加速コントローラモジュール（１２−２）は、第１アプリケーションプログラムＡＰＰ１に対しハードウェア加速器ＡＣＣｈｗをデフォルト加速器ＡＣＣｄｅｆ＿ｐｏｗとして選択する（ステップＳ４０）。
【００４８】
しかし、ソフトウェア加速器の消費電力Ｐｓｗが、ハードウェア加速器の消費電力Ｐｈｗより少ない時、加速コントローラモジュール（１２−２）は、第１アプリケーションプログラムＡＰＰ１に対しソフトウェア加速器ＡＣＣｓｗをデフォルト加速器ＡＣＣｄｅｆ＿ｐｏｗとして選択する（ステップＳ５０）。
【００４９】
すなわち、加速コントローラモジュール（１２−２）は、ソフトウェア加速器とハードウェア加速器とのうち、少ない電力を消費する加速器を第１アプリケーションプログラムＡＰＰ１に対するデフォルト加速器として選択する。
加速コントローラモジュール（１２−２）は、ステップＳ４０の結果又はステップＳ５０の結果によって選択された加速器情報ＳＩをテーブル（１２−３）に保存する（ステップＳ６０）。
【００５０】
図１のＳｏＣ１０が、ｎ（ｎは、自然数）個のアプリケーションプログラムとｎ個のハードウェア加速器とｎ個のソフトウェア加速器とを含む時、加速コントローラモジュール（１２−２）は、図４を参照して説明したように、消費電力を基準に、ｎ個のアプリケーションプログラムのそれぞれに対するデフォルト加速器を選択し、該選択された加速器についての加速器情報ＳＩをテーブル（１２−３）に保存することができる。
【００５１】
図５に示すように、加速コントローラモジュール（１２−２）は、第１アプリケーションプログラムＡＰＰ１に対するデフォルト加速器としてハードウェア加速器ＡＣＣｈｗを選択し、加速器情報ＳＩ（例えば、１）をテーブル（１２−３）に保存する。
【００５２】
同様にして、加速コントローラモジュール（１２−２）は、第２アプリケーションプログラムＡＰＰ２に対するデフォルト加速器としてハードウェア加速器ＡＣＣｈｗを選択し、加速器情報ＳＩ（例えば、１）をテーブル（１２−３）に保存する。
また、加速コントローラモジュール（１２−２）は、第３アプリケーションプログラムＡＰＰ３に対するデフォルト加速器としてソフトウェア加速器ＡＣＣｓｗを選択し、加速器情報ＳＩ（例えば、０）をテーブル（１２−３）に保存する。加速コントローラモジュール（１２−２）は、第ｎアプリケーションプログラムＡＰＰｎに対するデフォルト加速器としてソフトウェア加速器ＡＣＣｓｗを選択し、加速器情報ＳＩ（例えば、０）をテーブル（１２−３）に保存する。
【００５３】
加速器情報ＳＩを含むテーブル（１２−３）は、ＲＯＭ１４又はメモリ２１に保存することができる。ＲＯＭ１４又はメモリ２１に保存されたテーブル（１２−３）は、ＳｏＣ１０がブーティング（ｂｏｏｔｉｎｇ）される時、又は特定アプリケーションプログラムが実行される度に、ＲＡＭ１６にロードされた後、ＣＰＵ１２のメモリにロードされる。
したがって、テーブル（１２−３）は、加速コントローラモジュール（１２−２）によって参照されうる。
【００５４】
図６は、図１に示したデータ処理システムの動作方法の一実施形態を説明するためのフローチャートである。
図６に示した動作方法は、電力消費量を基準にハードウェア加速器とソフトウェア加速器とのうちの何れか１つをデフォルト加速器として設定した後、各加速器の性能を基準に、デフォルト加速器を非デフォルト加速器にスイッチングする動作を表わす。
【００５５】
図１、図２、図５、及び図６を参照すると、加速コントローラモジュール（１２−２）は、第１アプリケーションプログラムＡＰＰ１（１２−１）が実行されることによって、第１アプリケーションプログラム（１２−１）によって生成された加速要請信号ＡＣＣ＿ＲＥＱを受信する（ステップＳ１１０）。
【００５６】
加速コントローラモジュール（１２−２）は、加速要請信号ＡＣＣ＿ＲＥＱによって、テーブル（１２−３）から第１アプリケーションプログラム（１２−１）についての加速器情報ＳＩを読み取る。したがって、加速コントローラモジュール（１２−２）は、加速器情報ＳＩに基づいて、第１アプリケーションプログラム（１２−１）によって実行されるマルチメディアを加速することができるデフォルト加速器を判断することができる。
【００５７】
加速コントローラモジュール（１２−２）は、加速要請信号ＡＣＣ＿ＲＥＱによって、ＣＰＵ１２の現在使用量と基準使用量（または、基準値）とを比較し、該比較の結果によって、比較信号を生成する（ステップＳ１１２）。
比較信号は、異種の加速器（ハードウェア加速器１８とソフトウェア加速器１２−４）間のスイッチングのための信号（例えば、ＡＣＣ＿ＣＴＲ）として使われる。
【００５８】
比較信号によって、加速コントローラモジュール（１２−２）は、第１アプリケーションプログラム（１２−１）に対してデフォルトとして設定されたデフォルト加速器（例えば、ハードウェア加速器ＡＣＣｈｗ）を非デフォルト加速器（例えば、ソフトウェア加速器ＡＣＣｓｗ）に変更し（ステップＳ１１４）、非デフォルト加速器を駆動することができる。
これにより、非デフォルト加速器は、第１アプリケーションプログラム（１２−１）に対応するマルチメディアを加速することができる。
【００５９】
他の例として、加速コントローラモジュール（１２−２）は、第３アプリケーションプログラムＡＰＰ３が実行されることによって、第３アプリケーションプログラムＡＰＰ３によって生成された加速要請信号を受信する（ステップＳ１１０）。
加速コントローラモジュール（１２−２）は、加速要請信号によって、テーブル（１２−３）から第３アプリケーションプログラムＡＰＰ３についての加速器情報ＳＩを読み取る。したがって、加速コントローラモジュール（１２−２）は、加速器情報ＳＩに基づいて、第３アプリケーションプログラムＡＰＰ３によって実行されるマルチメディアを加速することができるデフォルト加速器を判断することができる。
【００６０】
加速コントローラモジュール（１２−２）は、加速要請信号によって、ＣＰＵ１２の現在使用量と基準使用量とを比較し（ステップＳ１１２）、該比較の結果によって、第３アプリケーションプログラムＡＰＰ３に対してデフォルトとして設定されたデフォルト加速器（例えば、ソフトウェア加速器ＡＣＣｓｗ）を非デフォルト加速器（例えば、ハードウェア加速器ＡＣＣｈｗ）に変更し（ステップＳ１１４）、非デフォルト加速器を駆動することができる。
これにより、非デフォルト加速器は、第３アプリケーションプログラムＡＰＰ３に対応するマルチメディアを加速することができる。
【００６１】
すなわち、加速コントローラモジュール（１２−２）は、各加速器の性能を比較し、該比較の結果によって、異種の加速器（ハードウェア加速器１８とソフトウェア加速器１２−４）間のスイッチングをすることができる（ステップＳ１１４）。
現在使用量と基準使用量のそれぞれは、ＣＰＵ１２の遊休時間（ｉｄｌｅ  ｔｉｍｅ）であり得る。
また、現在使用量と基準使用量のそれぞれは、ＣＰＵ１２の動作電圧とＣＰＵ１２の動作周波数とのうちの少なくとも１つであり得る。
【００６２】
図６に示したデータ処理システムの動作方法を、図７又は図８に基づいてさらに詳しく説明する。
図７は、図１に示したデータ処理システムの動作方法の他の実施形態を説明するためのフローチャートである。
上述したように、デフォルト加速器ＡＣＣｄｅｆは、ハードウェア加速器の電力消費量とソフトウェア加速時の電力消費量との比較の結果によって決定された加速器である。
【００６３】
図１、図２、及び図７を参照すると、加速コントローラモジュール（１２−２）が、要請者、例えば、第１アプリケーションプログラム（１２−１）によって生成された加速要請信号ＡＣＣ＿ＲＥＱを受信すれば（ステップＳ２１０）、加速コントローラモジュール（１２−２）は、テーブル（１２−３）に保存された加速器情報ＳＩに基づいて、第１アプリケーションプログラム（１２−１）によって実行されるマルチメディアを加速するためのデフォルト加速器ＡＣＣｄｅｆが、ハードウェア加速器（ＡＣＣｈｗ）１８であるか、またはソフトウェア加速器（１２−４）であるかを判断する（ステップＳ２１２）。
【００６４】
デフォルト加速器ＡＣＣｄｅｆが、ハードウェア加速器（ＡＣＣｈｗ）１８である時、加速コントローラモジュール（１２−２）は、ハードウェア加速器（ＡＣＣｈｗ）１８の現在の状態、すなわち、他のマルチメディアを加速しているか否かを判断する（ステップＳ２１４）。
【００６５】
ハードウェア加速器（ＡＣＣｈｗ）１８が、現在動作していない時、加速コントローラモジュール（１２−２）は、ハードウェア加速器ドライバー（１２−５）を用いてハードウェア加速器（ＡＣＣｈｗ）１８を駆動させる（ステップＳ２１６）。
【００６６】
しかし、ハードウェア加速器（ＡＣＣｈｗ）１８が、現在動作中である時、すなわち、他のアプリケーションプログラムに対応するマルチメディアを加速している時、加速コントローラモジュール（１２−２）は、ＣＰＵ１２の現在使用量を判断し、該判断の結果によって、ハードウェア加速器（ＡＣＣｈｗ）１８を使うか、又はハードウェア加速器（ＡＣＣｈｗ）１８の代わりに、ソフトウェア加速器（１２−４）を使うかを判断する（ステップＳ２１８）。
【００６７】
より具体的には、加速コントローラモジュール（１２−２）は、ＣＰＵ１２の現在使用量に対応する現在遊休時間を確認又は計算する（ステップＳ２２０）。遊休時間が短ければ短いほど、ＣＰＵ１２の負荷（ｌｏａｄ）は増加する。
加速コントローラモジュール（１２−２）は、現在遊休時間Ｉｄｌｅ＿ｃｕｒと基準使用量に対応する基準遊休時間Ｉｄｌｅ＿ｔｈｒとを互いに比較する（ステップＳ２２２）。
【００６８】
現在遊休時間Ｉｄｌｅ＿ｃｕｒが、基準遊休時間Ｉｄｌｅ＿ｔｈｒより短ければ、加速コントローラモジュール（１２−２）は、ハードウェア加速器ＡＣＣｈｗ１８の動作が終了するまで待った後（ステップＳ２２４）、ハードウェア加速器ドライバー（１２−５）を実行させる。
すなわち、加速コントローラモジュール（１２−２）は、ＣＰＵ１２の過負荷（ｏｖｅｒ  ｌｏａｄ）を避けるために、ソフトウェア加速器（１２−４）の代わりに、ハードウェア加速器（ＡＣＣｈｗ）１８を選択する。したがって、ハードウェア加速器ドライバー（１２−５）は、第１アプリケーションプログラム（１２−１）に対応するマルチメディアを加速するために、ハードウェア加速器（ＡＣＣｈｗ）１８を駆動させる。
【００６９】
しかし、現在遊休時間Ｉｄｌｅ＿ｃｕｒが、基準遊休時間Ｉｄｌｅ＿ｔｈｒより長ければ、加速コントローラモジュール（１２−２）は、ソフトウェア加速器（１２−４）を駆動させるために、ソフトウェア加速器（１２−４）が、現在動作中であるか否かを判断する（ステップＳ２２６）。
【００７０】
判断の結果、ソフトウェア加速器（１２−４）が、現在動作していない場合、加速コントローラモジュール（１２−２）は、ソフトウェア加速器（ＡＣＣｓｗ）（１２−４）を実行させる（ステップＳ２２８）。
しかし、ソフトウェア加速器（１２−４）が、現在動作中である場合、すなわち、他のアプリケーションプログラムに対応するマルチメディアを加速している時、ソフトウェア加速器（１２−４）は、加速動作が終了するまで待った後（ステップＳ２３０）、加速コントローラモジュール（１２−２）からの制御信号ＡＣＣ＿ＣＴＲによって、ソフトウェア加速器（１２−４）は、第１アプリケーションプログラム（１２−１）に対応するマルチメディアを加速する。
【００７１】
図８は、図１に示したデータ処理システムの動作方法のさらに他の実施形態を説明するためのフローチャートである。上述したように、デフォルト加速器ＡＣＣｄｅｆは、ハードウェア加速器の電力消費量とソフトウェア加速時の電力消費量との比較の結果によって決定された加速器である。
【００７２】
図１、図２、及び図８を参照すると、ＳｏＣ１０に電源が供給されれば、ＲＯＭ１４又はメモリ２１に保存されていた動的電圧と周波数スケーリング（ｄｙｎａｍｉｃ  ｖｏｌｔａｇｅ  ａｎｄ  ｆｒｅｑｕｅｎｃｙ  ｓｃａｌｉｎｇ：以下、ＤＶＦＳ）プログラム（１２−６）は、ＲＡＭ１６にロードされた後、ＣＰＵ１２のキャッシュメモリにロードされる。
ＤＶＦＳプログラム（１２−６）は、ＣＰＵ１２の負荷を考慮して、ＣＰＵ１２の動作電圧と動作周波数とを制御することができる。
【００７３】
加速コントローラモジュール（１２−２）が、要請者、例えば、第１アプリケーションプログラム（１２−１）によって生成された加速要請信号ＡＣＣ＿ＲＥＱを受信すれば（ステップＳ３１０）、加速コントローラモジュール（１２−２）は、テーブル（１２−３）に保存された加速器情報ＳＩに基づいて、第１アプリケーションプログラム（１２−１）に対するデフォルト加速器ＡＣＣｄｅｆが、ハードウェア加速器（ＡＣＣｈｗ）１８であるか、又はソフトウェア加速器（１２−４）であるかを判断する（ステップＳ３１２）。
【００７４】
デフォルト加速器ＡＣＣｄｅｆが、ハードウェア加速器（ＡＣＣｈｗ）１８である時、加速コントローラモジュール（１２−２）は、ハードウェア加速器（ＡＣＣｈｗ）１８の現在の状態、すなわち、現在動作中であるか否かを判断する（ステップＳ３１４）。
【００７５】
ハードウェア加速器（ＡＣＣｈｗ）１８が、現在動作していない時、加速コントローラモジュール（１２−２）は、ハードウェア加速器ドライバー（１２−５）を用いてハードウェア加速器（ＡＣＣｈｗ）１８を駆動させる（ステップＳ３１６）。
【００７６】
しかし、ハードウェア加速器（ＡＣＣｈｗ）１８が、現在動作中である時、すなわち、他のアプリケーションプログラムに対応するマルチメディアを処理中である時、加速コントローラモジュール（１２−２）は、ＣＰＵ１２の現在使用量と基準使用量とを比較し、該比較の結果によって、ハードウェア加速器（ＡＣＣｈｗ）１８を使うか、又はハードウェア加速器（ＡＣＣｈｗ）１８の代わりに、ソフトウェア加速器（１２−４）を使うかを判断する（ステップＳ３１８）。
【００７７】
予め設定された基準使用量は、ＲＯＭ１４又はメモリ２１に保存することができる。また、加速コントローラモジュール（１２−２）は、バス２２を通じて通信することができるユーザ入力インターフェース（図示せず）を通じて入力された情報に基づいて、基準使用量を調節することができる。
【００７８】
より具体的には、加速コントローラモジュール（１２−２）は、ＤＶＦＳプログラム（１２−６）が実行中であるか否かを判断する（ステップＳ３２０）。
ＤＶＦＳプログラム（１２−６）が、実行中である時、加速コントローラモジュール（１２−２）は、ＤＶＦＳプログラム（１２−６）からＣＰＵ１２の現在動作電圧についての情報とＣＰＵ１２の現在動作周波数についての情報とを得て、ＣＰＵ１２の負荷を確認する。
【００７９】
加速コントローラモジュール（１２−２）は、ＣＰＵ１２の現在使用量に対応する動作周波数Ｆｒｅ＿ｃｕｒと基準使用量に対応する基準周波数Ｆｒｅ＿ｔｈｒとを比較し、比較信号を出力する（ステップＳ３２２）。
【００８０】
動作周波数Ｆｒｅ＿ｃｕｒが、基準周波数Ｆｒｅ＿ｔｈｒより高い場合、加速コントローラモジュール（１２−２）は、この時に発生した比較信号に応答して、ハードウェア加速器（ＡＣＣｈｗ）１８の動作が終了するまで待った後（ステップＳ３２４）、ハードウェア加速器ドライバー（１２−５）を実行させる。すなわち、ＣＰＵ１２の過負荷を減らすために、加速コントローラモジュール（１２−２）は、ソフトウェア加速器（１２−４）の代わりに、ハードウェア加速器（ＡＣＣｈｗ）１８を選択する。
したがって、ハードウェア加速器ドライバー（１２−５）は、第１アプリケーションプログラム（１２−１）に対応するマルチメディアを加速するために、ハードウェア加速器（ＡＣＣｈｗ）１８を駆動させる（ステップＳ３１６）。
【００８１】
動作周波数Ｆｒｅ＿ｃｕｒが、基準周波数Ｆｒｅ＿ｔｈｒより低い場合、加速コントローラモジュール（１２−２）は、この時に発生した比較信号に応答して、ソフトウェア加速器（１２−４）の現在の状態、すなわち、ソフトウェア加速器（１２−４）が、現在動作中であるか否かを判断する（ステップＳ３２６）。
【００８２】
判断の結果、ソフトウェア加速器（１２−４）が、現在動作していない場合、加速コントローラモジュール（１２−２）は、ソフトウェア加速器（ＡＣＣｓｗ）（１２−４）を実行させる（ステップＳ３２８）。
【００８３】
しかし、ソフトウェア加速器（１２−４）が、現在動作中である場合、すなわち、他のアプリケーションプログラムに対応するマルチメディアを処理中である時、ソフトウェア加速器（１２−４）は、処理が終了するまで待った後（ステップＳ３３０）、加速コントローラモジュール（１２−２）からの制御信号ＡＣＣ＿ＣＴＲによって、第１アプリケーションプログラム（１２−１）に対応するマルチメディアを加速する（ステップＳ３２８）。
【００８４】
ＤＶＦＳプログラム（１２−６）が実行されていない場合（ステップＳ３２０）、加速コントローラモジュール（１２−２）は、ＣＰＵ１２の現在遊休時間Ｉｄｌｅ＿ｃｕｒを確認する（ステップＳ３３２）。
遊休時間が短ければ短いほど、ＣＰＵ１２の負荷は増加する。
【００８５】
加速コントローラモジュール（１２−２）は、現在使用量に対応する現在遊休時間Ｉｄｌｅ＿ｃｕｒと基準使用量に対応する基準遊休時間Ｉｄｌｅ＿ｔｈｒとを互いに比較する（ステップＳ３３４）。
【００８６】
現在遊休時間Ｉｄｌｅ＿ｃｕｒが、基準遊休時間Ｉｄｌｅ＿ｔｈｒより短ければ、加速コントローラモジュール（１２−２）は、ハードウェア加速器（ＡＣＣｈｗ）１８の動作が終了するまで待った後（ステップＳ３２４）、ハードウェア加速器ドライバー（１２−５）を実行させる。
したがって、ハードウェア加速器ドライバー（１２−５）は、第１アプリケーションプログラム（１２−１）に対応するマルチメディアを加速するために、ハードウェア加速器（ＡＣＣｈｗ）１８を駆動させる（ステップＳ３１６）。
【００８７】
しかし、現在遊休時間Ｉｄｌｅ＿ｃｕｒが、基準遊休時間Ｉｄｌｅ＿ｔｈｒより長ければ、加速コントローラモジュール（１２−２）は、ソフトウェア加速器（１２−４）が現在動作中であるか否かを判断する（ステップＳ３２６）。
判断の結果、ソフトウェア加速器（１２−４）が、現在動作していない場合、加速コントローラモジュール（１２−２）は、ソフトウェア加速器（１２−４）を実行させる（ステップＳ３２８）。
【００８８】
しかし、ソフトウェア加速器（１２−４）が、現在動作中である場合、すなわち、他のアプリケーションプログラムに対応するマルチメディアを処理中である時、ソフトウェア加速器（１２−４）は、処理が終了するまで待った後（ステップＳ３３０）、加速コントローラモジュール（１２−２）からの制御信号ＡＣＣ＿ＣＴＲによって実行される（ステップＳ３２８）。したがって、ソフトウェア加速器（１２−４）は、第１アプリケーションプログラム（１２−１）に対応するマルチメディアを加速する。
【００８９】
上述したように、本発明の実施形態による加速コントローラモジュール（１２−２）は、アプリケーションプログラム別に消費電力を基準にデフォルトとして設定されたデフォルト加速器をデフォルト加速器の現在の状態とＣＰＵ１２の現在使用量とによって、動的及び／又はリアルタイムで異種の加速器間でスイッチングすることができる。
【００９０】
すなわち、加速コントローラモジュール（１２−２）は、データ処理システム１又はＳｏＣ１０の品質を左右する主要ファクター（ｆａｃｔｏｒ）である電力消費量を基準に、異種の加速器のうちの何れか１つをデフォルト加速器を設定した後、デフォルト加速器の性能と非デフォルト加速器の性能とを比較し、該比較の結果によって、デフォルト加速器を非デフォルト加速器にスイッチング又は変更することができる。
例えば、ＭＰ３プレーヤーとビデオプレーヤーとを同時に実行させる時、ＭＰ３プレーヤーのためのＭＰ３デコーダ加速器とビデオプレーヤーとが実行される時、オーディオを再生するための別途のＭＰ３デコーダ加速器は、同時に駆動されてマルチ加速が可能である。
【００９１】
図９は、本発明の他の実施形態によって、性能をアプリケーションプログラム別にデフォルト加速器を選択する方法を説明するためのフローチャートである。
図９に示したフローチャートは、ハードウェア加速器の性能とソフトウェア加速器の性能との比較結果を基準にデフォルト加速器を設定する方法を示す。
【００９２】
図１、図２、及び図９を参照すると、加速器設定動作が始まれば、ＣＰＵ１２にロードされた加速コントローラモジュール（１２−２）は、アプリケーションプログラムに割り当てられたハードウェア加速器が、加速動作を行うのに必要な加速時間Ｔｈｗを測定（又は、予測）する（ステップＳ４１０）。
そして、加速コントローラモジュール（１２−２）は、アプリケーションプログラムに割り当てられたソフトウェア加速器が、加速動作を行うのに必要な加速時間Ｔｓｗを測定（又は、予測）する（ステップＳ４２０）。
【００９３】
図９では、ステップＳ４１０が、ステップＳ４２０より先行される実施形態を示すが、実施形態によっては、ステップＳ４１０よりステップＳ４２０が先行されることもある。
【００９４】
加速コントローラモジュール（１２−２）は、アプリケーションプログラムに割り当てられたハードウェア加速器の加速時間Ｔｈｗとソフトウェア加速器の加速時間Ｔｓｗとを互いに比較する（ステップＳ４３０）。
例えば、ハードウェア加速器の加速時間Ｔｈｗが、ソフトウェア加速器の加速時間Ｔｓｗより長い時、加速コントローラモジュール（１２−２）は、アプリケーションプログラムに対しソフトウェア加速器ＡＣＣｓｗをデフォルト加速器ＡＣＣｄｅｆ＿ｐｅｒｆとして選択する（ステップＳ４４０）。
【００９５】
しかし、ハードウェア加速器の加速時間Ｔｈｗが、ソフトウェア加速器の加速時間Ｔｓｗより短い時、加速コントローラモジュール（１２−２）は、アプリケーションプログラムに対しハードウェア加速器ＡＣＣｈｗをデフォルト加速器ＡＣＣｄｅｆ＿ｐｏｒｆとして選択する（ステップＳ４５０）。
すなわち、加速コントローラモジュール（１２−２）は、ソフトウェア加速器の加速時間とハードウェア加速器の加速時間とのうち、短い加速時間を有する加速器をアプリケーションプログラムに対するデフォルト加速器として選択する。
【００９６】
加速コントローラモジュール（１２−２）は、ステップＳ４４０の結果又はステップＳ４５０の結果によって選択された加速器情報をテーブルに保存する（ステップＳ４６０）。
例えば、テーブルは、テーブル（１２−３）と別途のテーブルであり、同じテーブルでもあり得る。テーブルは、ＲＯＭ１４又はメモリ２１に保存された後、ＲＡＭ１６にロードされた後、ＣＰＵ１２にロードされうる。
【００９７】
例えば、図１のＳｏＣ１０が、ｎ（ｎは、自然数）個のアプリケーションプログラムとｎ個のハードウェア加速器とｎ個のソフトウェア加速器とを含む時、加速コントローラモジュール（１２−２）は、性能、例えば、加速時間を基準に、ｎ個のアプリケーションプログラムのそれぞれに対するデフォルト加速器を選択し、該選択された加速器についての加速器情報をテーブル（１２−３）と同じテーブル又は相違するテーブルとに保存することができる。
【００９８】
したがって、電力消費を基準とする第１アプリケーションプログラムＡＰＰ１に対するデフォルト加速器が、ハードウェア加速器として設定されているとしても、性能を基準とする第１アプリケーションプログラムＡＰＰ１に対するデフォルト加速器は、ソフトウェア加速器として設定しうる。
【００９９】
図１０は、図１に示したデータ処理システムの動作方法のさらに他の実施形態を説明するためのフローチャートである。
図１〜図１０を参照すると、加速コントローラモジュール（１２−２）は、プログラム又はユーザの要請信号によって、図４の電力消費を基準に設定されたデフォルト加速器を選択するか、または図９の性能を基準に設定されたデフォルト加速器を選択することができる。
【０１００】
例えば、加速コントローラモジュール（１２−２）は、変更信号ＡＣＣ＿ｆａｃを受信する（ステップＳ５１０）。
変更信号ＡＣＣ＿ｆａｃは、ユーザインターフェースを通じて入力された信号であるか、又はＣＰＵ１２から出力された信号であり得る。
【０１０１】
加速コントローラモジュール（１２−２）は、変更信号ＡＣＣ＿ｆａｃに応答して、デフォルト加速器が、電力消費を基準に設定されたか、または性能を基準に設定されたかを判断する（ステップＳ５２０）。
デフォルト加速器が、電力消費を基準に設定されたか、または性能を基準に設定されるかについての情報は、ＲＯＭ１４又はメモリ２１に保存することができる。
したがって、加速コントローラモジュール（１２−２）は、ブーティング時又はアプリケーションプログラムが実行される時、ＲＯＭ１４又はメモリ２１に保存された情報を参照して、アプリケーションプログラムに対するデフォルト加速器が、電力消費量を基準に設定されたか、又は性能を基準に設定されたかを判断する。
【０１０２】
例えば、変更信号ＡＣＣ＿ｆａｃが、電力消費量ＰＷＲを基準に設定されたデフォルト加速器を選択せよとの指示信号である場合（ステップＳ５２０）、加速コントローラモジュール（１２−２）は、電力消費量を基準に選択されたデフォルト加速器ＡＣＣｄｅｆ＿ｐｏｗをテーブルを参照して選択する。
【０１０３】
しかし、変更信号ＡＣＣ＿ｆａｃが、性能を基準に設定されたデフォルト加速器を選択せよとの指示信号である場合、加速コントローラモジュール（１２−２）は、性能を基準に選択されたデフォルト加速器ＡＣＣｄｅｆ＿ｐｅｒｆをテーブルを参照して選択する。
例えば、図７又は図８に示したように、各デフォルト加速器ＡＣＣｄｅｆ＿ｐｏｗ又はＡＣＣｄｅｆ＿ｐｅｒｆは、非デフォルト加速器にスイッチングされる。
【０１０４】
上述したように、本発明の概念による加速コントローラモジュール（１２−２）は、次のような動作を行うことができる。
ｉ）電力消費量を基準に選択されたデフォルト加速器ＡＣＣｄｅｆ＿ｐｏｗを選択、
ｉｉ）性能を基準に選択されたデフォルト加速器ＡＣＣｄｅｆ＿ｐｅｒｆを選択、
ｉｉｉ）電力消耗量を基準に選択されたデフォルト加速器ＡＣＣｄｅｆ＿ｐｏｗ、例えば、ハードウェア加速器とソフトウェア加速器とのうちの何れか１つをハードウェア加速器とソフトウェア加速器のそれぞれの性能によって、非デフォルト加速器、例えば、ハードウェア加速器とソフトウェア加速器とのうち、他の１つに変更、
ｉｖ）性能を基準に選択されたデフォルト加速器ＡＣＣｄｅｆ＿ｐｅｒｆ、例えば、ハードウェア加速器とソフトウェア加速器とのうちの何れか１つをハードウェア加速器とソフトウェア加速器のそれぞれの電力消費量によって、非デフォルト加速器、例えば、ハードウェア加速器とソフトウェア加速器とのうち、他の１つに変更。
【０１０５】
ＣＰＵ１２が、複数の独立したコアを含むマルチコアプロセッサである時、各コアに対するハードウェア加速器とソフトウェア加速器とのうちの何れか１つをデフォルト加速器として設定する方法は、上述したように、各コアの電力消費量または性能によって決定されうる。
この場合、加速コントローラモジュール（１２−２）は、上述した４種の方法を行うことができる。
【０１０６】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【産業上の利用可能性】
【０１０７】
本発明は、ハードウェア加速器及びソフトウェア加速器を有する装置のシステムオンチップ又はそれを含む携帯用装置に好適に使用される。
【符号の説明】
【０１０８】
１    データ処理システム
１０    ＳｏＣ（システムオンチップ）
１２    ＣＰＵ
１２−１    （第１）アプリケーションプログラム
１２−２    加速コントローラモジュール
１２−３    テーブル
１２−４    ソフトウェア加速器
１２−５    ハードウェア加速器ドライバー
１２−６    ＤＶＦＳプログラム
１４    ＲＯＭ
１６    ＲＡＭ
１８    ハードウェア加速器
２１    メモリ
２２    バス
２４    ディスプレイコントローラ
２６    ディスプレイ
【図１】
2013050953.tif 000003
【図２】
2013050953.tif 000004
【図３】
2013050953.tif 000005
【図４】
2013050953.tif 000006
【図５】
2013050953.tif 000007
【図６】
2013050953.tif 000008
【図７】
2013050953.tif 000009
【図８】
2013050953.tif 000010
【図９】
2013050953.tif 000011
【図１０】
2013050953.tif 000012