JP6207818B2 - システムオンチップ及びその動作方法並びに携帯用装置 - Google Patents

システムオンチップ及びその動作方法並びに携帯用装置 Download PDF

Info

Publication number
JP6207818B2
JP6207818B2 JP2012189619A JP2012189619A JP6207818B2 JP 6207818 B2 JP6207818 B2 JP 6207818B2 JP 2012189619 A JP2012189619 A JP 2012189619A JP 2012189619 A JP2012189619 A JP 2012189619A JP 6207818 B2 JP6207818 B2 JP 6207818B2
Authority
JP
Japan
Prior art keywords
accelerator
cpu
default
software
application program
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
JP2012189619A
Other languages
English (en)
Other versions
JP2013050953A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2013050953A publication Critical patent/JP2013050953A/ja
Application granted granted Critical
Publication of JP6207818B2 publication Critical patent/JP6207818B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は、加速器(accelerator)選択技術に関し、特に、消費電力又は性能に基づいて、ハードウェア加速器とソフトウェア加速器との間でスイッチング(switching)可能なシステムオンチップと、該システムオンチップの動作方法とに関する。
グラフィック、オーディオ、ビデオ、アニメーション、ゲーム、及びテキストを含むマルチメディア(multimedia)を支援するデータ処理システムは、オーディオコーデック(audio codec)、ビデオコーデック(video codec)、2次元加速器(2−dimensional accelerator)、及び/又は3次元加速器(3−dimensional accelerator)のような多種の加速器を含む。
上記加速器のそれぞれは、ハードウェアまたはソフトウェアとして具現可能である。
ハードウェア加速器は、CPUより迅速に多様な機能を行うために、専用ハードウェア又は専用ハードウェア装置を使う。すなわち、ハードウェア加速器は、CPUの負荷(load)を増加させずに迅速にマルチメディアを加速することができるが、別途のハードウェアを必要とするので、製造コストが増加するという短所がある。
コンピュータ実行可能なプログラムとして具現可能なソフトウェア加速器は、プログラム変更が容易であり、別途のハードウェアなしで、少ない電力を消費しながら、マルチメディアを加速することができるという長所があるが、CPUの全体負荷(total load)が大きい場合、データ処理システム全体の動作速度又は反応速度を減少させるという短所がある。
そこで、本発明は上記従来の加速器選択技術における問題点に鑑みてなされたものであって、本発明の目的は、マルチメディアを加速するために、リアルタイムに動的(dynamic)でハードウェア加速器とソフトウェア加速器との間でスイッチング可能なシステムオンチップと、該システムオンチップの動作方法、並びにこれらを有する携帯用装置とを提供することにある。
上記目的を達成するためになされた本発明によるシステムオンチップの動作方法は、アプリケーションプログラムの実行によって生成された加速要請信号を受信する段階と、前記加速要請信号の受信に応答して、CPUの現在使用量と基準使用量とを比較し、比較信号を生成する段階と、前記比較信号に応答して、前記アプリケーションプログラムによって実行されるマルチメディアを加速するために、異種の加速器の間でスイッチングを行うことにより、前記アプリケーションプログラムのために用いる加速器を定める段階とを有し、前記CPUの現在使用量と前記CPUの基準使用量のそれぞれは、前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの遊休時間(idle time)、前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作電圧、又は前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作周波数のうちのいずれか1つであることを特徴とする。
前記異種の加速器は、ハードウェア装置として具現されたハードウェア加速器と、前記CPUで実行可能なプログラムコードとして具現されたソフトウェア加速器とを含み、前記ソフトウェア加速器は、メモリから前記CPUに読み込まれた後に実行されることが好ましい。
前記比較信号を生成する段階は、前記アプリケーションプログラムに対してデフォルトとして設定された加速器が、前記ハードウェア加速器であり、前記受信する段階において受信した前記加速要請信号が生成される原因となった前記アプリケーションプログラムとは異なるアプリケーションプログラムのために、前記ハードウェア加速器が動作中である時に行われることが好ましい。
前記比較信号を生成する段階は、前記アプリケーションプログラムに対してデフォルトとして設定された加速器が、前記ソフトウェア加速器である時に行われることが好ましい。
また、上記目的を達成するためになされた本発明によるシステムオンチップの動作方法は、アプリケーションプログラムの実行によって生成された加速要請信号を受信する段階と、前記加速要請信号によって、前記アプリケーションプログラムによって実行されるマルチメディアを加速するためのデフォルト加速器が、ハードウェア加速器であるか、またはCPUで実行可能なプログラムとして具現されたソフトウェア加速器であるかを判断する段階と、前記デフォルト加速器が、前記ソフトウェア加速器である時、または前記ハードウェア加速器でありながら、他のマルチメディアを加速している時、前記CPUの現在使用量と基準使用量とを比較し、比較信号を生成する段階と、前記比較信号によって、前記アプリケーションプログラムのために用いる加速器を、前記デフォルト加速器から、非デフォルト(non−default)加速器に変更する段階とを有し、前記CPUの現在使用量と前記CPUの基準使用量のそれぞれは、前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの遊休時間(idle time)、前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作電圧、又は前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作周波数のうちのいずれか1つであることを特徴とする。
前記デフォルト加速器が、ハードウェア加速器であるかソフトウェア加速器であるかを判断する段階は、テーブルに保存された加速器情報に基づいて判断することが好ましい。
上記目的を達成するためになされた本発明によるシステムオンチップは、異種の加速器と、アプリケーションプログラムによって実行されるマルチメディアを加速するために、前記異種の加速器の間でスイッチングを行って、前記アプリケーションプログラムのために用いる加速器を定めるための比較信号を生成するための加速器コントローラモジュールを実行るCPUとを有し、前記加速器コントローラモジュールを実行する前記CPUは、前記CPUの現在使用量と基準使用量とを比較して、前記比較信号を出力し、前記異種の加速器は、ハードウェア装置として具現されたハードウェア加速器と、前記CPUで実行可能なプログラムコードとして具現されたソフトウェア加速器とを含み、前記ソフトウェア加速器は、メモリから前記CPUに読み込まれた後に実行され、前記CPUの現在使用量と前記CPUの基準使用量のそれぞれは、前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの遊休時間、前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作電圧、又は前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作周波数のうちのいずれか1つであることを特徴とする。
前記ハードウェア加速器が、前記マルチメディアを加速するためのデフォルト加速器として設定され、他のマルチメディアを加速している時、前記加速器コントローラモジュールを実行する前記CPUは、前記CPUの現在使用量に対応する前記CPUの遊休時間が、前記CPUの基準使用量に対応する前記CPUの遊休時間より長い時に生成された前記比較信号によって、前記マルチメディアを加速するための加速器を、前記ハードウェア加速器から前記ソフトウェア加速器に変更することが好ましい。
前記ソフトウェア加速器が、前記マルチメディアを加速するためのデフォルト加速器として設定されている時、前記加速器コントローラモジュールを実行する前記CPUは、前記CPUの現在使用量に対応する前記CPUの遊休時間が、前記CPUの基準使用量に対応する前記CPUの遊休時間より短い時に生成された前記比較信号によって、前記マルチメディアを加速するための加速器を、前記ソフトウェア加速器から前記ハードウェア加速器に変更することが好ましい。
前記ハードウェア加速器が、前記マルチメディアを加速するためのデフォルト加速器として設定され、他のマルチメディアを加速している時、前記加速器コントローラモジュールを実行する前記CPUは、前記CPUの現在使用量に対応する前記CPUの動作周波数が、前記CPUの基準使用量に対応する前記CPUの周波数より低い時に生成された前記比較信号によって、前記マルチメディアを加速するための加速器を、前記ハードウェア加速器から前記ソフトウェア加速器に変更することが好ましい。
前記ソフトウェア加速器が、前記マルチメディアを加速するためのデフォルト加速器として設定されている時、前記加速器コントローラモジュールを実行する前記CPUは、前記CPUの現在使用量に対応する前記CPUの動作周波数が、前記CPUの基準使用量に対応する前記CPUの周波数より高い時に生成された前記比較信号によって、前記マルチメディアを加速するための加速器を、前記ソフトウェア加速器から前記ハードウェア加速器に変更することが好ましい。
上記目的を達成するためになされた本発明による携帯用装置は、マルチメディアを保存する不揮発性メモリと、ディスプレイと、異種の加速器と、アプリケーションプログラムによって実行される前記マルチメディアを加速するために、前記異種の加速器の間でスイッチングを行って、前記アプリケーションプログラムのために用いる加速器を定めるための比較信号を生成するための加速器コントローラモジュールを実行るCPUと、を有し、前記加速器コントローラモジュールを実行する前記CPUは、前記CPUの現在使用量と基準使用量とを比較して、前記比較信号を出力し、前記異種の加速器のうち、前記比較信号によって選択された加速器に基づいて処理されたマルチメディアデータは、前記ディスプレイを通じて表示され、前記異種の加速器は、ハードウェア装置として具現されたハードウェア加速器と、前記CPUで実行可能なプログラムコードとして具現されたソフトウェア加速器とを含み、前記ソフトウェア加速器は、メモリから前記CPUに読み込まれた後に実行され、前記CPUの現在使用量と前記CPUの基準使用量のそれぞれは、前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの遊休時間、前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作電圧、又は前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作周波数のうちのいずれか1つであることを特徴とする。
また、上記目的を達成するためになされた本発明によるシステムオンチップは、ハードウェア加速器と、アプリケーションプログラム、加速器制御モジュール、及びソフトウェア加速器を保存するメモリと、前記ハードウェア加速器と前記メモリとを制御するためのCPUとを有し、前記CPUによって、前記アプリケーションプログラム、前記加速器制御モジュール、及び前記ソフトウェア加速器が実行されることによって、前記加速器制御モジュールを実行する前記CPUは、前記アプリケーションプログラムの実行によって生成された加速要請信号を受信し、前記加速要請信号によって、前記アプリケーションプログラムによって実行されるマルチメディアを加速するためのデフォルト加速器が、ハードウェア加速器であるか、または前記CPUで実行可能なプログラムとして具現されたソフトウェア加速器であるかを判断し、前記デフォルト加速器が、前記ソフトウェア加速器である時、または前記ハードウェア加速器でありながら、他のマルチメディアを加速している時、前記CPUの現在使用量と基準使用量とを比較して、比較信号を生成し、前記比較信号によって、前記デフォルト加速器から非デフォルト加速器に変更し、前記CPUの現在使用量と前記CPUの基準使用量のそれぞれは、前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの遊休時間、前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作電圧、又は前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作周波数のうちのいずれか1つであることを特徴とする。
前記加速器制御モジュールを実行する前記CPUは、前記メモリに保存されている、前記デフォルト加速器についての加速器情報に基づいて、前記デフォルト加速器を判断することが好ましい。
前記加速器制御モジュールを実行する前記CPUは、ユーザ入力インターフェースから入力された情報に基づいて、前記基準使用量を調節することが好ましい。
また、上記目的を達成するためになされた本発明によるシステムオンチップの動作方法は、加速器制御モジュールが、アプリケーションプログラムの実行によって生成された加速要請信号を受信する段階と、前記加速器制御モジュールが、前記加速要請信号によって、テーブルから加速器情報を読み取る段階と、前記加速器情報に基づいて、前記加速器制御モジュールが、前記アプリケーションプログラムによって実行されるマルチメディアを加速するために、ハードウェア装置として具現されたハードウェア加速器と、CPUで実行可能なプログラムコードとして具現されたソフトウェア加速器とのうちの何れか1つを選択的に駆動させる段階とを有し、前記加速器情報は、前記ハードウェア加速器の加速時間と前記ソフトウェア加速器の加速時間とのうち、短い加速時間を有する加速器を表わすことを特徴とする。
また、上記目的を達成するためになされた本発明によるシステムオンチップの動作方法は、変更信号を受信する段階と、前記変更信号が、電力消費量を基準に選択されたデフォルト加速器を選択する指示信号であるか、または性能を基準に選択されたデフォルト加速器を選択する指示信号であるかを判断する段階と、前記判断の結果に基づいて、複数のテーブルのうちの何れか1つに保存された加速器情報を参照する段階と、前記加速器情報に基づいて、ハードウェア装置として具現されたハードウェア加速器と、CPUで実行可能なプログラムコードとして具現されたソフトウェア加速器との内からデフォルトとして設定された加速器を前記デフォルト加速器として駆動させる段階とを有することを特徴とする。
前記変更信号が、電力消費量を基準に選択されたデフォルト加速器を選択する指示信号である時、前記CPUの現在使用量と基準使用量とを比較し、比較信号を生成させる段階と、前記比較信号によって、用いる加速器を、前記デフォルト加速器から非デフォルト加速器に変更する段階とをさらに有することが好ましい。
本発明に係るシステムオンチップ及びその動作方法並びに携帯用装置によれば、加速器制御モジュールを用いてアプリケーションプログラムによって実行されるマルチメディアを加速するために、異種の加速器の間でスイッチングすることができるという効果がある。
異種の加速器を含むシステムオンチップで、電力消耗量及び/または性能に基づいて、上記スイッチングが行われることによって、システムオンチップの電力消耗量を減少させながら、性能を向上させることができるという効果がある。
また、マルチ加速を行い、異種の加速器を含むシステムオンチップは、異種の加速器を同時に駆動させることができ、したがって、加速能力が増加するという効果がある。
本発明の実施形態によるデータ処理システムを示すブロック図である。 図1に示したデータ処理システムの動作方法を説明するためのブロック図である。 本発明の実施形態によるハードウェア加速器とソフトウェア加速器との間のスイッチング方法を説明するための概念図である。 本発明の一実施形態による、消費電力を基準にアプリケーションプログラム別にデフォルト加速器を選択する方法を説明するためのフローチャートである。 図4に示した方法によってアプリケーションプログラム別に設定されたデフォルト加速器についての選択情報を含むテーブルの例を示す図である。 図1に示したデータ処理システムの動作方法の一実施形態を説明するためのフローチャートである。 図1に示したデータ処理システムの動作方法の他の実施形態を説明するためのフローチャートである。 図1に示したデータ処理システムの動作方法のさらに他の実施形態を説明するためのフローチャートである。 本発明の他の実施形態によって、性能をアプリケーションプログラム別にデフォルト加速器を選択する方法を説明するためのフローチャートである。 図1に示したデータ処理システムの動作方法のさらに他の実施形態を説明するためのフローチャートである。
次に、本発明に係るシステムオンチップ及びその動作方法並びに携帯用装置を実施するための形態の具体例を図面を参照しながら説明する。
本明細書で記載する加速器(accelerator)は、次の加速器を含む。
ハードウェア加速器又はソフトウェア加速器として具現可能なビデオコーデックは、デジタルビデオ(digital video)を圧縮(compression)及び/又は復元(decompression)することができる装置又はソフトウェアを意味する。
ソフトウェア加速器として具現可能なオーディオコーデックは、与えられたオーディオファイルフォーマット又はストリーミングオーディオフォーマットによって、デジタルオーディオデータを圧縮及び/又は復元することができるアルゴリズム(algorithm)を具現したコンピュータプログラムを意味する。
また、ハードウェア加速器として具現可能なオーディオコーデックは、アナログオーディオをデジタル信号にエンコードし、デジタル信号をアナログオーディオにデコードすることができる1つの装置を意味する。
ソフトウェア加速器として具現可能なダウンロード加速器又はダウンロードマネージャーは、ダウンローディング(downloading)のための専用ソフトウェアを意味する。
ハードウェア加速器として具現可能なグラフィックスプロセッシングユニット又はグラフィックス加速器は、専用グラフィックスレンダリング装置を意味する。
ソフトウェア加速器として具現可能な加速器(ライブラリー(library))は、グラフィックスプロセッシングユニットのためのプログラムが書き込まれるライブラリーを意味する。
ハードウェア加速器又はソフトウェア加速器として具現可能な暗号加速器(cryptographic accelerator)は、暗号化(encrypting)及び/又は復号化(decrypting)を行うことができる装置またはソフトウェアを意味する。
ハードウェア加速器として具現可能なウェブ加速器(web accelerator)は、ウェブサイトを迅速にアクセスできるプロキシサーバを意味する。
MP3プレーヤー又はMP4プレーヤーは、ハードウェア又はソフトウェアとして具現可能である。また、2D又は3D加速器は、ハードウェア又はソフトウェアとして具現可能である。
上述した加速器以外に、マルチメディア(または、マルチメディアデータ)を加速することができる加速器は、ハードウェア又はソフトウェアとして具現可能である。
また、オーディオエンコーダ、オーディオデコーダ、ビデオエンコーダ、及びビデオデコーダも、加速器に含まれうる。
すなわち、本発明の実施形態によるデータ処理システムは、異種の加速器、例えば、ハードウェア加速器とソフトウェア加速器とを共に含んでおり、CPUの現在使用量(current usage)と基準使用量(reference usage)との比較結果を表わす比較信号によって、異種の加速器の間でスイッチング又は選択することができる。
図1は、本発明の実施形態によるデータ処理システムを示すブロック図である。
図1を参照すると、データ処理システム1は、携帯電話、スマートフォン、タブレットコンピュータ、PDA(Personal Digital Assistant)、EDA(EnterpriseDigital Assistant)、デジタルスチルカメラ、デジタルビデオカメラ、PMP(Portable Multimedia Player)、PND(Personal Navigation Device、またはPortable Navigation Device)、携帯用ゲームコンソール、またはイーブック(e−book)ような携帯用装置として具現可能である。
データ処理システム1は、システムオンチップ(system−on chip:以下、SoC)10、メモリ21、及びディスプレイ26を含む。例えば、SoC10、及びメモリ21は、システムPCB(Printed Circuit Board)として具現可能である。
SoC10は、CPU12、ROM14、RAM16、ハードウェア加速器18、入出力インターフェース20、バス(bus)22、及びディスプレイコントローラ24を含む。
プロセッサ(processor)とも呼ばれるCPU12は、ROM14又はRAM16に保存されたプログラム及び/又はデータを処理または実行することができる。
例えば、CPU12は、クロック信号発生器(図示せず)から出力されたクロック信号に応答して、プログラム及び/又はデータを処理または実行することができる。
CPU12は、マルチコアプロセッサ(multi−core processor)として具現可能である。マルチコアプロセッサは、2つ又はそれ以上の独立した実質的なプロセッサ(“コア(core)”と呼ばれる)を有する1つのコンピューティングコンポーネントであり、コアプロセッサのそれぞれは、プログラム命令を読み取って実行することができる。マルチコアプロセッサは、複数の加速器を同時に駆動することができるので、マルチコアプロセッサを含むデータ処理システムは、マルチ加速(multi−acceleration)を行うことができる。
ROM14又はRAM16に保存されたプログラム及び/又はデータは、必要に応じて、CPU12のメモリ、例えば、キャッシュ(cache)メモリにロードされる。
ROM14は、恒久的なプログラム及び/又はデータを保存することができる。ROM14は、EPROM(Erasable Programmable Read−Only Memory)又はEEPROM(Electrically Erasable Programmable Read−Only Memory)として具現可能である。
RAM16は、プログラム、データ、又は命令を一時的に保存することができる。例えば、ROM14又はメモリ21に保存されたプログラム及び/又はデータは、CPU12の制御又はROM14に保存されたブーティングコード(booting code)によってRAM16に一時的に保存することができる。RAM16は、DRAM(Dynamic RAM)又はSRAM(Static RAM)として具現可能である。
ハードウェア加速器18は、マルチメディア(又は、マルチメディアデータ)、例えば、テキスト、オーディオ、静止画像、アニメーション、ビデオ、2次元データ、又は3次元データの処理能力を向上させるためのハードウェア装置またはコプロセッサ(co−processor)を意味する。
図1では、説明の便宜上、1つのハードウェア加速器18のみを示すが、実施形態によっては、SoC10は、1つ又はそれ以上のハードウェア加速器を含みうる。例えば、少なくとも1つのアプリケーションプログラムは、1つのハードウェア加速器を実行させることができる。
SoC10とメモリ21は、入出力インターフェース20を通じてデータを送受信する。
メモリ21は、CPU12によって処理されるプログラム、機能(functions)及び/又はマルチメディアデータを保存することができる。メモリ21は、不揮発性メモリとして具現可能である。不揮発性メモリは、フラッシュ(flash)メモリ又は抵抗性メモリとして具現可能である。この際、入出力インターフェース20は、メモリコントローラとして具現可能である。
各構成要素(符号12、14、16、18、20、及び24)は、バス22を通じて互いに通信することができる。
ディスプレイ26の動作を制御することができるディスプレイコントローラ24は、CPU12にロードされたソフトウェア加速器又はハードウェア加速器18によって加速された(または、処理された)マルチメディアデータをディスプレイすることができる。
図2は、図1に示したデータ処理システムの動作方法を説明するためのブロック図であり、図3は、本発明の実施形態によるハードウェア加速器とソフトウェア加速器との間のスイッチング方法を説明するための概念図である。
図1〜図3を参照すると、CPU12のOS(Operating System)は、CPU12の動作を全般的に制御する。例えば、アプリケーションプログラム(または、マルチメディアプレーヤー)(12−1)が、CPU12のメモリにロードされて実行されれば、アプリケーションプログラム(12−1)は、加速要請信号ACC_REQを生成させる。実施形態によって、アプリケーションプログラム(12−1)が、ユーザによって実行されれば、RAM16にロードされたアプリケーションプログラム(12−1)は、CPU12のメモリにロードされうる。
各プログラム(12−1〜12−6)は、ROM14又はメモリ21からRAM16にロードされる。RAM16にロードされていた加速コントローラモジュール(または、加速コントロールコード)(12−2)は、バス22を通じてCPU12のメモリにロードされ、RAM16にロードされていたテーブル(12−3)は、CPU12のキャッシュメモリにロードされる。
加速コントローラモジュール(12−2)は、加速要請信号ACC_REQに応答して、アプリケーションプログラム(12−1)によって実行される機能(例えば、マルチメディアデータ、暗号データ、又は復号データを処理する機能、グラフィックをレンダリングする機能、及び/又はウェブブラウジング(web−browsing)の速度を高める機能を加速するために、デフォルトとして設定されたデフォルト加速器が、ハードウェア装置として具現されたハードウェア加速器であるか、またはCPU12で実行可能なプログラムとして具現されたソフトウェア加速器であるかを判断する。
この際、加速コントローラモジュール(12−2)は、テーブル(12−3)に保存された加速器情報を参照して、デフォルト加速器を判断することができる。
例えば、アプリケーションプログラム(12−1)に対してデフォルトとして設定されたデフォルト加速器が、ハードウェア加速器18である時、RAM16にロードされたハードウェア加速器ドライバー(12−5)は、加速コントローラモジュール(12−2)からの制御信号ACC_CTRによってCPU12にロードされ、ハードウェア加速器18は、CPU12にロードされたハードウェア加速器ドライバー(12−5)の制御によって駆動する。
したがって、ハードウェア加速器18は、アプリケーションプログラム(12−1)によって要求される(または、実行される)マルチメディアを加速し、該加速されたマルチメディアをディスプレイコントローラ24を通じてディスプレイ26に伝送する。
しかし、アプリケーションプログラム(12−1)に対してデフォルトとして設定されたデフォルト加速器が、ソフトウェア加速器である時、RAM16にロードされたソフトウェア加速器(12−4)は、加速コントローラモジュール(12−2)からの制御信号ACC_CTRによってCPU12にロードされ、CPU12にロードされたソフトウェア加速器(12−4)は、加速コントローラモジュール(12−2)からの制御信号ACC_CTRによって実行又は駆動される。
したがって、ソフトウェア加速器(12−4)は、アプリケーションプログラム(12−1)によって要求される(または、実行される)マルチメディアを加速し、該加速されたマルチメディアをディスプレイコントローラ24を通じてディスプレイ26に伝送する。
図4は、本発明の一実施形態による、消費電力を基準にアプリケーションプログラム別にデフォルト加速器を選択する方法を説明するためのフローチャートであり、図5は、図4に示した方法によって、アプリケーションプログラム別に設定されたデフォルト加速器についての加速器情報を含むテーブルの例を示す図である。
図4と図5とを参照すると、加速器設定動作が始まれば、CPU12にロードされた加速コントローラモジュール(12−2)は、第1アプリケーションプログラムAPP1に割り当てられたハードウェア加速器が実行される時、消費する電力Phwを測定(又は、予測)する(ステップS10)。
次に、加速コントローラモジュール(12−2)は、第1アプリケーションプログラムAPP1に割り当てられたソフトウェア加速器が実行される時、消費する電力Pswを測定(または、予測)する(ステップS20)。
図4では、ステップS10が、ステップS20より先行される実施形態を示すが、実施形態によっては、ステップS10よりステップS20が先行されることもある。
次に、加速コントローラモジュール(12−2)は、第1アプリケーションプログラムAPP1に割り当てられたハードウェア加速器の消費電力Phwとソフトウェア加速器の消費電力Pswとを互いに比較する(ステップS30)。
例えば、ソフトウェア加速器の消費電力Pswが、ハードウェア加速器の消費電力Phwより多い時、加速コントローラモジュール(12−2)は、第1アプリケーションプログラムAPP1に対しハードウェア加速器ACChwをデフォルト加速器ACCdef_powとして選択する(ステップS40)。
しかし、ソフトウェア加速器の消費電力Pswが、ハードウェア加速器の消費電力Phwより少ない時、加速コントローラモジュール(12−2)は、第1アプリケーションプログラムAPP1に対しソフトウェア加速器ACCswをデフォルト加速器ACCdef_powとして選択する(ステップS50)。
すなわち、加速コントローラモジュール(12−2)は、ソフトウェア加速器とハードウェア加速器とのうち、少ない電力を消費する加速器を第1アプリケーションプログラムAPP1に対するデフォルト加速器として選択する。
加速コントローラモジュール(12−2)は、ステップS40の結果又はステップS50の結果によって選択された加速器情報SIをテーブル(12−3)に保存する(ステップS60)。
図1のSoC10が、n(nは、自然数)個のアプリケーションプログラムとn個のハードウェア加速器とn個のソフトウェア加速器とを含む時、加速コントローラモジュール(12−2)は、図4を参照して説明したように、消費電力を基準に、n個のアプリケーションプログラムのそれぞれに対するデフォルト加速器を選択し、該選択された加速器についての加速器情報SIをテーブル(12−3)に保存することができる。
図5に示すように、加速コントローラモジュール(12−2)は、第1アプリケーションプログラムAPP1に対するデフォルト加速器としてハードウェア加速器ACChwを選択し、加速器情報SI(例えば、1)をテーブル(12−3)に保存する。
同様にして、加速コントローラモジュール(12−2)は、第2アプリケーションプログラムAPP2に対するデフォルト加速器としてハードウェア加速器ACChwを選択し、加速器情報SI(例えば、1)をテーブル(12−3)に保存する。
また、加速コントローラモジュール(12−2)は、第3アプリケーションプログラムAPP3に対するデフォルト加速器としてソフトウェア加速器ACCswを選択し、加速器情報SI(例えば、0)をテーブル(12−3)に保存する。加速コントローラモジュール(12−2)は、第nアプリケーションプログラムAPPnに対するデフォルト加速器としてソフトウェア加速器ACCswを選択し、加速器情報SI(例えば、0)をテーブル(12−3)に保存する。
加速器情報SIを含むテーブル(12−3)は、ROM14又はメモリ21に保存することができる。ROM14又はメモリ21に保存されたテーブル(12−3)は、SoC10がブーティング(booting)される時、又は特定アプリケーションプログラムが実行される度に、RAM16にロードされた後、CPU12のメモリにロードされる。
したがって、テーブル(12−3)は、加速コントローラモジュール(12−2)によって参照されうる。
図6は、図1に示したデータ処理システムの動作方法の一実施形態を説明するためのフローチャートである。
図6に示した動作方法は、電力消費量を基準にハードウェア加速器とソフトウェア加速器とのうちの何れか1つをデフォルト加速器として設定した後、各加速器の性能を基準に、デフォルト加速器を非デフォルト加速器にスイッチングする動作を表わす。
図1、図2、図5、及び図6を参照すると、加速コントローラモジュール(12−2)は、第1アプリケーションプログラムAPP1(12−1)が実行されることによって、第1アプリケーションプログラム(12−1)によって生成された加速要請信号ACC_REQを受信する(ステップS110)。
加速コントローラモジュール(12−2)は、加速要請信号ACC_REQによって、テーブル(12−3)から第1アプリケーションプログラム(12−1)についての加速器情報SIを読み取る。したがって、加速コントローラモジュール(12−2)は、加速器情報SIに基づいて、第1アプリケーションプログラム(12−1)によって実行されるマルチメディアを加速することができるデフォルト加速器を判断することができる。
加速コントローラモジュール(12−2)は、加速要請信号ACC_REQによって、CPU12の現在使用量と基準使用量(または、基準値)とを比較し、該比較の結果によって、比較信号を生成する(ステップS112)。
比較信号は、異種の加速器(ハードウェア加速器18とソフトウェア加速器12−4)間のスイッチングのための信号(例えば、ACC_CTR)として使われる。
比較信号によって、加速コントローラモジュール(12−2)は、第1アプリケーションプログラム(12−1)に対してデフォルトとして設定されたデフォルト加速器(例えば、ハードウェア加速器ACChw)を非デフォルト加速器(例えば、ソフトウェア加速器ACCsw)に変更し(ステップS114)、非デフォルト加速器を駆動することができる。
これにより、非デフォルト加速器は、第1アプリケーションプログラム(12−1)に対応するマルチメディアを加速することができる。
他の例として、加速コントローラモジュール(12−2)は、第3アプリケーションプログラムAPP3が実行されることによって、第3アプリケーションプログラムAPP3によって生成された加速要請信号を受信する(ステップS110)。
加速コントローラモジュール(12−2)は、加速要請信号によって、テーブル(12−3)から第3アプリケーションプログラムAPP3についての加速器情報SIを読み取る。したがって、加速コントローラモジュール(12−2)は、加速器情報SIに基づいて、第3アプリケーションプログラムAPP3によって実行されるマルチメディアを加速することができるデフォルト加速器を判断することができる。
加速コントローラモジュール(12−2)は、加速要請信号によって、CPU12の現在使用量と基準使用量とを比較し(ステップS112)、該比較の結果によって、第3アプリケーションプログラムAPP3に対してデフォルトとして設定されたデフォルト加速器(例えば、ソフトウェア加速器ACCsw)を非デフォルト加速器(例えば、ハードウェア加速器ACChw)に変更し(ステップS114)、非デフォルト加速器を駆動することができる。
これにより、非デフォルト加速器は、第3アプリケーションプログラムAPP3に対応するマルチメディアを加速することができる。
すなわち、加速コントローラモジュール(12−2)は、各加速器の性能を比較し、該比較の結果によって、異種の加速器(ハードウェア加速器18とソフトウェア加速器12−4)間のスイッチングをすることができる(ステップS114)。
現在使用量と基準使用量のそれぞれは、CPU12の遊休時間(idle time)であり得る。
また、現在使用量と基準使用量のそれぞれは、CPU12の動作電圧とCPU12の動作周波数とのうちの少なくとも1つであり得る。
図6に示したデータ処理システムの動作方法を、図7又は図8に基づいてさらに詳しく説明する。
図7は、図1に示したデータ処理システムの動作方法の他の実施形態を説明するためのフローチャートである。
上述したように、デフォルト加速器ACCdefは、ハードウェア加速器の電力消費量とソフトウェア加速時の電力消費量との比較の結果によって決定された加速器である。
図1、図2、及び図7を参照すると、加速コントローラモジュール(12−2)が、要請者、例えば、第1アプリケーションプログラム(12−1)によって生成された加速要請信号ACC_REQを受信すれば(ステップS210)、加速コントローラモジュール(12−2)は、テーブル(12−3)に保存された加速器情報SIに基づいて、第1アプリケーションプログラム(12−1)によって実行されるマルチメディアを加速するためのデフォルト加速器ACCdefが、ハードウェア加速器(ACChw)18であるか、またはソフトウェア加速器(12−4)であるかを判断する(ステップS212)。
デフォルト加速器ACCdefが、ハードウェア加速器(ACChw)18である時、加速コントローラモジュール(12−2)は、ハードウェア加速器(ACChw)18の現在の状態、すなわち、他のマルチメディアを加速しているか否かを判断する(ステップS214)。
ハードウェア加速器(ACChw)18が、現在動作していない時、加速コントローラモジュール(12−2)は、ハードウェア加速器ドライバー(12−5)を用いてハードウェア加速器(ACChw)18を駆動させる(ステップS216)。
しかし、ハードウェア加速器(ACChw)18が、現在動作中である時、すなわち、他のアプリケーションプログラムに対応するマルチメディアを加速している時、加速コントローラモジュール(12−2)は、CPU12の現在使用量を判断し、該判断の結果によって、ハードウェア加速器(ACChw)18を使うか、又はハードウェア加速器(ACChw)18の代わりに、ソフトウェア加速器(12−4)を使うかを判断する(ステップS218)。
より具体的には、加速コントローラモジュール(12−2)は、CPU12の現在使用量に対応する現在遊休時間を確認又は計算する(ステップS220)。遊休時間が短ければ短いほど、CPU12の負荷(load)は増加する。
加速コントローラモジュール(12−2)は、現在遊休時間Idle_curと基準使用量に対応する基準遊休時間Idle_thrとを互いに比較する(ステップS222)。
現在遊休時間Idle_curが、基準遊休時間Idle_thrより短ければ、加速コントローラモジュール(12−2)は、ハードウェア加速器ACChw18の動作が終了するまで待った後(ステップS224)、ハードウェア加速器ドライバー(12−5)を実行させる。
すなわち、加速コントローラモジュール(12−2)は、CPU12の過負荷(over load)を避けるために、ソフトウェア加速器(12−4)の代わりに、ハードウェア加速器(ACChw)18を選択する。したがって、ハードウェア加速器ドライバー(12−5)は、第1アプリケーションプログラム(12−1)に対応するマルチメディアを加速するために、ハードウェア加速器(ACChw)18を駆動させる。
しかし、現在遊休時間Idle_curが、基準遊休時間Idle_thrより長ければ、加速コントローラモジュール(12−2)は、ソフトウェア加速器(12−4)を駆動させるために、ソフトウェア加速器(12−4)が、現在動作中であるか否かを判断する(ステップS226)。
判断の結果、ソフトウェア加速器(12−4)が、現在動作していない場合、加速コントローラモジュール(12−2)は、ソフトウェア加速器(ACCsw)(12−4)を実行させる(ステップS228)。
しかし、ソフトウェア加速器(12−4)が、現在動作中である場合、すなわち、他のアプリケーションプログラムに対応するマルチメディアを加速している時、ソフトウェア加速器(12−4)は、加速動作が終了するまで待った後(ステップS230)、加速コントローラモジュール(12−2)からの制御信号ACC_CTRによって、ソフトウェア加速器(12−4)は、第1アプリケーションプログラム(12−1)に対応するマルチメディアを加速する。
図8は、図1に示したデータ処理システムの動作方法のさらに他の実施形態を説明するためのフローチャートである。上述したように、デフォルト加速器ACCdefは、ハードウェア加速器の電力消費量とソフトウェア加速時の電力消費量との比較の結果によって決定された加速器である。
図1、図2、及び図8を参照すると、SoC10に電源が供給されれば、ROM14又はメモリ21に保存されていた動的電圧と周波数スケーリング(dynamic voltage and frequency scaling:以下、DVFS)プログラム(12−6)は、RAM16にロードされた後、CPU12のキャッシュメモリにロードされる。
DVFSプログラム(12−6)は、CPU12の負荷を考慮して、CPU12の動作電圧と動作周波数とを制御することができる。
加速コントローラモジュール(12−2)が、要請者、例えば、第1アプリケーションプログラム(12−1)によって生成された加速要請信号ACC_REQを受信すれば(ステップS310)、加速コントローラモジュール(12−2)は、テーブル(12−3)に保存された加速器情報SIに基づいて、第1アプリケーションプログラム(12−1)に対するデフォルト加速器ACCdefが、ハードウェア加速器(ACChw)18であるか、又はソフトウェア加速器(12−4)であるかを判断する(ステップS312)。
デフォルト加速器ACCdefが、ハードウェア加速器(ACChw)18である時、加速コントローラモジュール(12−2)は、ハードウェア加速器(ACChw)18の現在の状態、すなわち、現在動作中であるか否かを判断する(ステップS314)。
ハードウェア加速器(ACChw)18が、現在動作していない時、加速コントローラモジュール(12−2)は、ハードウェア加速器ドライバー(12−5)を用いてハードウェア加速器(ACChw)18を駆動させる(ステップS316)。
しかし、ハードウェア加速器(ACChw)18が、現在動作中である時、すなわち、他のアプリケーションプログラムに対応するマルチメディアを処理中である時、加速コントローラモジュール(12−2)は、CPU12の現在使用量と基準使用量とを比較し、該比較の結果によって、ハードウェア加速器(ACChw)18を使うか、又はハードウェア加速器(ACChw)18の代わりに、ソフトウェア加速器(12−4)を使うかを判断する(ステップS318)。
予め設定された基準使用量は、ROM14又はメモリ21に保存することができる。また、加速コントローラモジュール(12−2)は、バス22を通じて通信することができるユーザ入力インターフェース(図示せず)を通じて入力された情報に基づいて、基準使用量を調節することができる。
より具体的には、加速コントローラモジュール(12−2)は、DVFSプログラム(12−6)が実行中であるか否かを判断する(ステップS320)。
DVFSプログラム(12−6)が、実行中である時、加速コントローラモジュール(12−2)は、DVFSプログラム(12−6)からCPU12の現在動作電圧についての情報とCPU12の現在動作周波数についての情報とを得て、CPU12の負荷を確認する。
加速コントローラモジュール(12−2)は、CPU12の現在使用量に対応する動作周波数Fre_curと基準使用量に対応する基準周波数Fre_thrとを比較し、比較信号を出力する(ステップS322)。
動作周波数Fre_curが、基準周波数Fre_thrより高い場合、加速コントローラモジュール(12−2)は、この時に発生した比較信号に応答して、ハードウェア加速器(ACChw)18の動作が終了するまで待った後(ステップS324)、ハードウェア加速器ドライバー(12−5)を実行させる。すなわち、CPU12の過負荷を減らすために、加速コントローラモジュール(12−2)は、ソフトウェア加速器(12−4)の代わりに、ハードウェア加速器(ACChw)18を選択する。
したがって、ハードウェア加速器ドライバー(12−5)は、第1アプリケーションプログラム(12−1)に対応するマルチメディアを加速するために、ハードウェア加速器(ACChw)18を駆動させる(ステップS316)。
動作周波数Fre_curが、基準周波数Fre_thrより低い場合、加速コントローラモジュール(12−2)は、この時に発生した比較信号に応答して、ソフトウェア加速器(12−4)の現在の状態、すなわち、ソフトウェア加速器(12−4)が、現在動作中であるか否かを判断する(ステップS326)。
判断の結果、ソフトウェア加速器(12−4)が、現在動作していない場合、加速コントローラモジュール(12−2)は、ソフトウェア加速器(ACCsw)(12−4)を実行させる(ステップS328)。
しかし、ソフトウェア加速器(12−4)が、現在動作中である場合、すなわち、他のアプリケーションプログラムに対応するマルチメディアを処理中である時、ソフトウェア加速器(12−4)は、処理が終了するまで待った後(ステップS330)、加速コントローラモジュール(12−2)からの制御信号ACC_CTRによって、第1アプリケーションプログラム(12−1)に対応するマルチメディアを加速する(ステップS328)。
DVFSプログラム(12−6)が実行されていない場合(ステップS320)、加速コントローラモジュール(12−2)は、CPU12の現在遊休時間Idle_curを確認する(ステップS332)。
遊休時間が短ければ短いほど、CPU12の負荷は増加する。
加速コントローラモジュール(12−2)は、現在使用量に対応する現在遊休時間Idle_curと基準使用量に対応する基準遊休時間Idle_thrとを互いに比較する(ステップS334)。
現在遊休時間Idle_curが、基準遊休時間Idle_thrより短ければ、加速コントローラモジュール(12−2)は、ハードウェア加速器(ACChw)18の動作が終了するまで待った後(ステップS324)、ハードウェア加速器ドライバー(12−5)を実行させる。
したがって、ハードウェア加速器ドライバー(12−5)は、第1アプリケーションプログラム(12−1)に対応するマルチメディアを加速するために、ハードウェア加速器(ACChw)18を駆動させる(ステップS316)。
しかし、現在遊休時間Idle_curが、基準遊休時間Idle_thrより長ければ、加速コントローラモジュール(12−2)は、ソフトウェア加速器(12−4)が現在動作中であるか否かを判断する(ステップS326)。
判断の結果、ソフトウェア加速器(12−4)が、現在動作していない場合、加速コントローラモジュール(12−2)は、ソフトウェア加速器(12−4)を実行させる(ステップS328)。
しかし、ソフトウェア加速器(12−4)が、現在動作中である場合、すなわち、他のアプリケーションプログラムに対応するマルチメディアを処理中である時、ソフトウェア加速器(12−4)は、処理が終了するまで待った後(ステップS330)、加速コントローラモジュール(12−2)からの制御信号ACC_CTRによって実行される(ステップS328)。したがって、ソフトウェア加速器(12−4)は、第1アプリケーションプログラム(12−1)に対応するマルチメディアを加速する。
上述したように、本発明の実施形態による加速コントローラモジュール(12−2)は、アプリケーションプログラム別に消費電力を基準にデフォルトとして設定されたデフォルト加速器をデフォルト加速器の現在の状態とCPU12の現在使用量とによって、動的及び/又はリアルタイムで異種の加速器間でスイッチングすることができる。
すなわち、加速コントローラモジュール(12−2)は、データ処理システム1又はSoC10の品質を左右する主要ファクター(factor)である電力消費量を基準に、異種の加速器のうちの何れか1つをデフォルト加速器を設定した後、デフォルト加速器の性能と非デフォルト加速器の性能とを比較し、該比較の結果によって、デフォルト加速器を非デフォルト加速器にスイッチング又は変更することができる。
例えば、MP3プレーヤーとビデオプレーヤーとを同時に実行させる時、MP3プレーヤーのためのMP3デコーダ加速器とビデオプレーヤーとが実行される時、オーディオを再生するための別途のMP3デコーダ加速器は、同時に駆動されてマルチ加速が可能である。
図9は、本発明の他の実施形態によって、性能をアプリケーションプログラム別にデフォルト加速器を選択する方法を説明するためのフローチャートである。
図9に示したフローチャートは、ハードウェア加速器の性能とソフトウェア加速器の性能との比較結果を基準にデフォルト加速器を設定する方法を示す。
図1、図2、及び図9を参照すると、加速器設定動作が始まれば、CPU12にロードされた加速コントローラモジュール(12−2)は、アプリケーションプログラムに割り当てられたハードウェア加速器が、加速動作を行うのに必要な加速時間Thwを測定(又は、予測)する(ステップS410)。
そして、加速コントローラモジュール(12−2)は、アプリケーションプログラムに割り当てられたソフトウェア加速器が、加速動作を行うのに必要な加速時間Tswを測定(又は、予測)する(ステップS420)。
図9では、ステップS410が、ステップS420より先行される実施形態を示すが、実施形態によっては、ステップS410よりステップS420が先行されることもある。
加速コントローラモジュール(12−2)は、アプリケーションプログラムに割り当てられたハードウェア加速器の加速時間Thwとソフトウェア加速器の加速時間Tswとを互いに比較する(ステップS430)。
例えば、ハードウェア加速器の加速時間Thwが、ソフトウェア加速器の加速時間Tswより長い時、加速コントローラモジュール(12−2)は、アプリケーションプログラムに対しソフトウェア加速器ACCswをデフォルト加速器ACCdef_perfとして選択する(ステップS440)。
しかし、ハードウェア加速器の加速時間Thwが、ソフトウェア加速器の加速時間Tswより短い時、加速コントローラモジュール(12−2)は、アプリケーションプログラムに対しハードウェア加速器ACChwをデフォルト加速器ACCdef_porfとして選択する(ステップS450)。
すなわち、加速コントローラモジュール(12−2)は、ソフトウェア加速器の加速時間とハードウェア加速器の加速時間とのうち、短い加速時間を有する加速器をアプリケーションプログラムに対するデフォルト加速器として選択する。
加速コントローラモジュール(12−2)は、ステップS440の結果又はステップS450の結果によって選択された加速器情報をテーブルに保存する(ステップS460)。
例えば、テーブルは、テーブル(12−3)と別途のテーブルであり、同じテーブルでもあり得る。テーブルは、ROM14又はメモリ21に保存された後、RAM16にロードされた後、CPU12にロードされうる。
例えば、図1のSoC10が、n(nは、自然数)個のアプリケーションプログラムとn個のハードウェア加速器とn個のソフトウェア加速器とを含む時、加速コントローラモジュール(12−2)は、性能、例えば、加速時間を基準に、n個のアプリケーションプログラムのそれぞれに対するデフォルト加速器を選択し、該選択された加速器についての加速器情報をテーブル(12−3)と同じテーブル又は相違するテーブルとに保存することができる。
したがって、電力消費を基準とする第1アプリケーションプログラムAPP1に対するデフォルト加速器が、ハードウェア加速器として設定されているとしても、性能を基準とする第1アプリケーションプログラムAPP1に対するデフォルト加速器は、ソフトウェア加速器として設定しうる。
図10は、図1に示したデータ処理システムの動作方法のさらに他の実施形態を説明するためのフローチャートである。
図1〜図10を参照すると、加速コントローラモジュール(12−2)は、プログラム又はユーザの要請信号によって、図4の電力消費を基準に設定されたデフォルト加速器を選択するか、または図9の性能を基準に設定されたデフォルト加速器を選択することができる。
例えば、加速コントローラモジュール(12−2)は、変更信号ACC_facを受信する(ステップS510)。
変更信号ACC_facは、ユーザインターフェースを通じて入力された信号であるか、又はCPU12から出力された信号であり得る。
加速コントローラモジュール(12−2)は、変更信号ACC_facに応答して、デフォルト加速器が、電力消費を基準に設定されたか、または性能を基準に設定されたかを判断する(ステップS520)。
デフォルト加速器が、電力消費を基準に設定されたか、または性能を基準に設定されるかについての情報は、ROM14又はメモリ21に保存することができる。
したがって、加速コントローラモジュール(12−2)は、ブーティング時又はアプリケーションプログラムが実行される時、ROM14又はメモリ21に保存された情報を参照して、アプリケーションプログラムに対するデフォルト加速器が、電力消費量を基準に設定されたか、又は性能を基準に設定されたかを判断する。
例えば、変更信号ACC_facが、電力消費量PWRを基準に設定されたデフォルト加速器を選択せよとの指示信号である場合(ステップS520)、加速コントローラモジュール(12−2)は、電力消費量を基準に選択されたデフォルト加速器ACCdef_powをテーブルを参照して選択する。
しかし、変更信号ACC_facが、性能を基準に設定されたデフォルト加速器を選択せよとの指示信号である場合、加速コントローラモジュール(12−2)は、性能を基準に選択されたデフォルト加速器ACCdef_perfをテーブルを参照して選択する。
例えば、図7又は図8に示したように、各デフォルト加速器ACCdef_pow又はACCdef_perfは、非デフォルト加速器にスイッチングされる。
上述したように、本発明の概念による加速コントローラモジュール(12−2)は、次のような動作を行うことができる。
i)電力消費量を基準に選択されたデフォルト加速器ACCdef_powを選択、
ii)性能を基準に選択されたデフォルト加速器ACCdef_perfを選択、
iii)電力消耗量を基準に選択されたデフォルト加速器ACCdef_pow、例えば、ハードウェア加速器とソフトウェア加速器とのうちの何れか1つをハードウェア加速器とソフトウェア加速器のそれぞれの性能によって、非デフォルト加速器、例えば、ハードウェア加速器とソフトウェア加速器とのうち、他の1つに変更、
iv)性能を基準に選択されたデフォルト加速器ACCdef_perf、例えば、ハードウェア加速器とソフトウェア加速器とのうちの何れか1つをハードウェア加速器とソフトウェア加速器のそれぞれの電力消費量によって、非デフォルト加速器、例えば、ハードウェア加速器とソフトウェア加速器とのうち、他の1つに変更。
CPU12が、複数の独立したコアを含むマルチコアプロセッサである時、各コアに対するハードウェア加速器とソフトウェア加速器とのうちの何れか1つをデフォルト加速器として設定する方法は、上述したように、各コアの電力消費量または性能によって決定されうる。
この場合、加速コントローラモジュール(12−2)は、上述した4種の方法を行うことができる。
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
本発明は、ハードウェア加速器及びソフトウェア加速器を有する装置のシステムオンチップ又はそれを含む携帯用装置に好適に使用される。
1 データ処理システム
10 SoC(システムオンチップ)
12 CPU
12−1 (第1)アプリケーションプログラム
12−2 加速コントローラモジュール
12−3 テーブル
12−4 ソフトウェア加速器
12−5 ハードウェア加速器ドライバー
12−6 DVFSプログラム
14 ROM
16 RAM
18 ハードウェア加速器
21 メモリ
22 バス
24 ディスプレイコントローラ
26 ディスプレイ

Claims (17)

  1. アプリケーションプログラムの実行によって生成された加速要請信号を受信する段階と、
    前記加速要請信号の受信に応答して、CPUの現在使用量と基準使用量とを比較し、比較信号を生成する段階と、
    前記比較信号に応答して、前記アプリケーションプログラムによって実行されるマルチメディアを加速するために、異種の加速器の間でスイッチングを行うことにより、前記アプリケーションプログラムのために用いる加速器を定める段階とを有し、
    前記CPUの現在使用量と前記CPUの基準使用量のそれぞれは、
    前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの遊休時間(idle time)、前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作電圧、又は前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作周波数のうちのいずれか1つであることを特徴とするシステムオンチップの動作方法。
  2. 前記異種の加速器は、ハードウェア装置として具現されたハードウェア加速器と、前記CPUで実行可能なプログラムコードとして具現されたソフトウェア加速器とを含み、
    前記ソフトウェア加速器は、メモリから前記CPUに読み込まれた後に実行されることを特徴とする請求項1に記載のシステムオンチップの動作方法。
  3. 前記比較信号を生成する段階は、前記アプリケーションプログラムに対してデフォルトとして設定された加速器が、前記ハードウェア加速器であり、前記受信する段階において受信した前記加速要請信号が生成される原因となった前記アプリケーションプログラムとは異なるアプリケーションプログラムのために、前記ハードウェア加速器が動作中である時に行われることを特徴とする請求項2に記載のシステムオンチップの動作方法。
  4. 前記比較信号を生成する段階は、前記アプリケーションプログラムに対してデフォルトとして設定された加速器が、前記ソフトウェア加速器である時に行われることを特徴とする請求項2に記載のシステムオンチップの動作方法。
  5. アプリケーションプログラムの実行によって生成された加速要請信号を受信する段階と、
    前記加速要請信号によって、前記アプリケーションプログラムによって実行されるマルチメディアを加速するためのデフォルト加速器が、ハードウェア加速器であるか、またはCPUで実行可能なプログラムとして具現されたソフトウェア加速器であるかを判断する段階と、
    前記デフォルト加速器が、前記ソフトウェア加速器である時、または前記ハードウェア加速器でありながら、他のマルチメディアを加速している時、前記CPUの現在使用量と基準使用量とを比較し、比較信号を生成する段階と、
    前記比較信号によって、前記アプリケーションプログラムのために用いる加速器を、前記デフォルト加速器から、非デフォルト(non−default)加速器に変更する段階とを有し、
    前記CPUの現在使用量と前記CPUの基準使用量のそれぞれは、
    前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの遊休時間(idle time)、前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作電圧、又は前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作周波数のうちのいずれか1つであることを特徴とするシステムオンチップの動作方法。
  6. 前記デフォルト加速器が、ハードウェア加速器であるかソフトウェア加速器であるかを判断する段階は、テーブルに保存された加速器情報に基づいて判断することを特徴とする請求項に記載のシステムオンチップの動作方法。
  7. 異種の加速器と、
    アプリケーションプログラムによって実行されるマルチメディアを加速するために、前記異種の加速器の間でスイッチングを行って、前記アプリケーションプログラムのために用いる加速器を定めるための比較信号を生成するための加速器コントローラモジュールを実行るCPUとを有し、
    前記加速器コントローラモジュールを実行する前記CPUは、
    前記CPUの現在使用量と基準使用量とを比較して、前記比較信号を出力し、
    前記異種の加速器は、ハードウェア装置として具現されたハードウェア加速器と、前記CPUで実行可能なプログラムコードとして具現されたソフトウェア加速器とを含み、
    前記ソフトウェア加速器は、メモリから前記CPUに読み込まれた後に実行され
    前記CPUの現在使用量と前記CPUの基準使用量のそれぞれは、
    前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの遊休時間、前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作電圧、又は前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作周波数のうちのいずれか1つであることを特徴とするシステムオンチップ。
  8. 前記ハードウェア加速器が、前記マルチメディアを加速するためのデフォルト加速器として設定され、他のマルチメディアを加速している時、
    前記加速器コントローラモジュールを実行する前記CPUは、
    前記CPUの現在使用量に対応する前記CPUの遊休時間が、前記CPUの基準使用量に対応する前記CPUの遊休時間より長い時に生成された前記比較信号によって、前記マルチメディアを加速するための加速器を、前記ハードウェア加速器から前記ソフトウェア加速器に変更することを特徴とする請求項に記載のシステムオンチップ。
  9. 前記ソフトウェア加速器が、前記マルチメディアを加速するためのデフォルト加速器として設定されている時、
    前記加速器コントローラモジュールを実行する前記CPUは、
    前記CPUの現在使用量に対応する前記CPUの遊休時間が、前記CPUの基準使用量に対応する前記CPUの遊休時間より短い時に生成された前記比較信号によって、前記マルチメディアを加速するための加速器を、前記ソフトウェア加速器から前記ハードウェア加速器に変更することを特徴とする請求項に記載のシステムオンチップ。
  10. 前記ハードウェア加速器が、前記マルチメディアを加速するためのデフォルト加速器として設定され、他のマルチメディアを加速している時、
    前記加速器コントローラモジュールを実行する前記CPUは、
    前記CPUの現在使用量に対応する前記CPUの動作周波数が、前記CPUの基準使用量に対応する前記CPUの周波数より低い時に生成された前記比較信号によって、前記マルチメディアを加速するための加速器を、前記ハードウェア加速器から前記ソフトウェア加速器に変更することを特徴とする請求項に記載のシステムオンチップ。
  11. 前記ソフトウェア加速器が、前記マルチメディアを加速するためのデフォルト加速器として設定されている時、
    前記加速器コントローラモジュールを実行する前記CPUは、
    前記CPUの現在使用量に対応する前記CPUの動作周波数が、前記CPUの基準使用量に対応する前記CPUの周波数より高い時に生成された前記比較信号によって、前記マルチメディアを加速するための加速器を、前記ソフトウェア加速器から前記ハードウェア加速器に変更することを特徴とする請求項に記載のシステムオンチップ。
  12. マルチメディアを保存する不揮発性メモリと、
    ディスプレイと、
    異種の加速器と、
    アプリケーションプログラムによって実行される前記マルチメディアを加速するために、前記異種の加速器の間でスイッチングを行って、前記アプリケーションプログラムのために用いる加速器を定めるための比較信号を生成するための加速器コントローラモジュールを実行るCPUと、を有し、
    前記加速器コントローラモジュールを実行する前記CPUは、
    前記CPUの現在使用量と基準使用量とを比較して、前記比較信号を出力し、
    前記異種の加速器のうち、前記比較信号によって選択された加速器に基づいて処理されたマルチメディアデータは、前記ディスプレイを通じて表示され、
    前記異種の加速器は、ハードウェア装置として具現されたハードウェア加速器と、前記CPUで実行可能なプログラムコードとして具現されたソフトウェア加速器とを含み、
    前記ソフトウェア加速器は、メモリから前記CPUに読み込まれた後に実行され、
    前記CPUの現在使用量と前記CPUの基準使用量のそれぞれは、
    前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの遊休時間、前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作電圧、又は前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作周波数のうちのいずれか1つであることを特徴とする携帯用装置。
  13. ハードウェア加速器と、
    アプリケーションプログラム、加速器制御モジュール、及びソフトウェア加速器を保存するメモリと、
    前記ハードウェア加速器と前記メモリとを制御するためのCPUとを有し、
    前記CPUによって、前記アプリケーションプログラム、前記加速器制御モジュール、及び前記ソフトウェア加速器が実行されることによって、
    前記加速器制御モジュールを実行する前記CPUは、
    前記アプリケーションプログラムの実行によって生成された加速要請信号を受信し、
    前記加速要請信号によって、前記アプリケーションプログラムによって実行されるマルチメディアを加速するためのデフォルト加速器が、ハードウェア加速器であるか、または前記CPUで実行可能なプログラムとして具現されたソフトウェア加速器であるかを判断し、
    前記デフォルト加速器が、前記ソフトウェア加速器である時、または前記ハードウェア加速器でありながら、他のマルチメディアを加速している時、前記CPUの現在使用量と基準使用量とを比較して、比較信号を生成し、
    前記比較信号によって、前記アプリケーションプログラムのために用いる加速器を、前記デフォルト加速器から非デフォルト加速器に変更し、
    前記CPUの現在使用量と前記CPUの基準使用量のそれぞれは、
    前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの遊休時間、前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作電圧、又は前記現在使用量と前記基準使用量のそれぞれに対応する前記CPUの動作周波数のうちのいずれか1つであることを特徴とするシステムオンチップ。
  14. 前記加速器制御モジュールを実行する前記CPUは、前記メモリに保存されている、前記デフォルト加速器についての加速器情報に基づいて、前記デフォルト加速器を判断することを特徴とする請求項13に記載のシステムオンチップ。
  15. 前記加速器制御モジュールを実行する前記CPUは、ユーザ入力インターフェースから入力された情報に基づいて、前記基準使用量を調節することを特徴とする請求項13に記載のシステムオンチップ。
  16. 変更信号を受信する段階と、
    前記変更信号が、電力消費量を基準に選択されたデフォルト加速器を選択する指示信号であるか、または性能を基準に選択されたデフォルト加速器を選択する指示信号であるかを判断する段階と、
    前記判断の結果に基づいて、複数のテーブルのうちの何れか1つに保存された加速器情報を参照する段階と、
    前記加速器情報に基づいて、ハードウェア装置として具現されたハードウェア加速器と、CPUで実行可能なプログラムコードとして具現されたソフトウェア加速器との内からデフォルトとして設定された加速器を前記デフォルト加速器として駆動させる段階とを有することを特徴とするシステムオンチップの動作方法。
  17. 前記変更信号が、電力消費量を基準に選択されたデフォルト加速器を選択する指示信号である時、前記CPUの現在使用量と基準使用量とを比較し、比較信号を生成させる段階と、
    前記比較信号によって、用いる加速器を、前記デフォルト加速器から非デフォルト加速器に変更する段階とをさらに有することを特徴とする請求項16に記載のシステムオンチップの動作方法。
JP2012189619A 2011-08-30 2012-08-30 システムオンチップ及びその動作方法並びに携帯用装置 Active JP6207818B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2011-0087411 2011-08-30
KR1020110087411A KR101861742B1 (ko) 2011-08-30 2011-08-30 이종의 가속기들 사이에서 스위칭할 수 있는 데이터 처리 시스템과 그 방법

Publications (2)

Publication Number Publication Date
JP2013050953A JP2013050953A (ja) 2013-03-14
JP6207818B2 true JP6207818B2 (ja) 2017-10-04

Family

ID=47665337

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012189619A Active JP6207818B2 (ja) 2011-08-30 2012-08-30 システムオンチップ及びその動作方法並びに携帯用装置

Country Status (5)

Country Link
US (1) US9223581B2 (ja)
JP (1) JP6207818B2 (ja)
KR (1) KR101861742B1 (ja)
CN (1) CN103164215B (ja)
DE (1) DE102012106830A1 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014116206A1 (en) * 2013-01-23 2014-07-31 Empire Technology Development Llc Management of hardware accelerator configurations in a processor chip
US8782265B1 (en) 2013-03-14 2014-07-15 Dmitry Bokotey Network visualization system and method of using same
KR102114388B1 (ko) * 2013-10-18 2020-06-05 삼성전자주식회사 전자 장치의 메모리 압축 방법 및 장치
CN104795072A (zh) * 2015-03-25 2015-07-22 无锡天脉聚源传媒科技有限公司 一种音频数据的编码方法及装置
US10198294B2 (en) 2015-04-17 2019-02-05 Microsoft Licensing Technology, LLC Handling tenant requests in a system that uses hardware acceleration components
US9792154B2 (en) * 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US20160378551A1 (en) * 2015-06-24 2016-12-29 Intel Corporation Adaptive hardware acceleration based on runtime power efficiency determinations
KR102402672B1 (ko) * 2015-09-01 2022-05-26 삼성전자주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템에서 연산들을 처리하는 방법
CN111865657B (zh) * 2015-09-28 2022-01-11 华为技术有限公司 一种加速管理节点、加速节点、客户端及方法
US9911417B2 (en) * 2016-04-01 2018-03-06 Tai-An Lu Internet of things system with voice-controlled functions and method for processing information of the same
CN107592287A (zh) * 2016-07-07 2018-01-16 深圳市中兴微电子技术有限公司 一种报文加速方法及装置
US10355945B2 (en) 2016-09-21 2019-07-16 International Business Machines Corporation Service level management of a workload defined environment
US10572310B2 (en) 2016-09-21 2020-02-25 International Business Machines Corporation Deploying and utilizing a software library and corresponding field programmable device binary
US10599479B2 (en) 2016-09-21 2020-03-24 International Business Machines Corporation Resource sharing management of a field programmable device
US10417012B2 (en) * 2016-09-21 2019-09-17 International Business Machines Corporation Reprogramming a field programmable device on-demand
US10740152B2 (en) * 2016-12-06 2020-08-11 Intel Corporation Technologies for dynamic acceleration of general-purpose code using binary translation targeted to hardware accelerators with runtime execution offload
WO2018111224A1 (en) * 2016-12-12 2018-06-21 Hitachi, Ltd. System and method of dynamic allocation of hardware accelerator
KR102034660B1 (ko) * 2017-07-31 2019-10-21 서울대학교산학협력단 이종 시스템의 가속기 제어 방법 및 이를 수행하기 위한 이종 시스템
CN109426529B (zh) * 2017-08-16 2023-03-21 龙芯中科技术股份有限公司 基于x窗口系统图形绘制的方法、装置及终端
JP7346401B2 (ja) 2017-11-10 2023-09-19 エヌビディア コーポレーション 安全で信頼できる自動運転車両のためのシステム及び方法
WO2019168869A1 (en) 2018-02-27 2019-09-06 Nvidia Corporation Real-time detection of lanes and boundaries by autonomous vehicles
US11537139B2 (en) 2018-03-15 2022-12-27 Nvidia Corporation Determining drivable free-space for autonomous vehicles
EP3791274B1 (en) * 2018-05-08 2024-05-01 Telefonaktiebolaget LM Ericsson (publ) Method and node for managing a request for hardware acceleration by means of an accelerator device
US11144357B2 (en) * 2018-05-25 2021-10-12 International Business Machines Corporation Selecting hardware accelerators based on score
US10892944B2 (en) 2018-11-29 2021-01-12 International Business Machines Corporation Selecting and using a cloud-based hardware accelerator
WO2020140049A1 (en) 2018-12-28 2020-07-02 Nvidia Corporation Distance to obstacle detection in autonomous machine applications
US11648945B2 (en) 2019-03-11 2023-05-16 Nvidia Corporation Intersection detection and classification in autonomous machine applications
DE112020004139T5 (de) 2019-08-31 2022-05-12 Nvidia Corporation Erstellung von karten und lokalisierung für anwendungen im bereich des autonomen fahrens
US11978266B2 (en) 2020-10-21 2024-05-07 Nvidia Corporation Occupant attentiveness and cognitive load monitoring for autonomous and semi-autonomous driving applications
KR102559658B1 (ko) * 2020-12-16 2023-07-26 한국과학기술원 스케줄링 방법 및 장치
CN114860353A (zh) * 2022-05-31 2022-08-05 苏州浪潮智能科技有限公司 一种程序执行方法、系统、设备以及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04367337A (ja) 1991-06-11 1992-12-18 Raiden:Kk 鋼板コイルの口開き装置
JP4212676B2 (ja) * 1998-02-12 2009-01-21 富士ゼロックス株式会社 情報処理システムおよび情報処理方法
US9195784B2 (en) * 1998-08-31 2015-11-24 Cadence Design Systems, Inc. Common shared memory in a verification system
KR20000032335A (ko) 1998-11-13 2000-06-15 구자홍 휴대용 컴퓨터의 디스플레이 성능 향상방법
US6925641B1 (en) * 2000-02-04 2005-08-02 Xronix Communications, Inc. Real time DSP load management system
JP4367337B2 (ja) 2004-12-28 2009-11-18 セイコーエプソン株式会社 マルチメディア処理システム及びマルチメディア処理方法
JP2007328461A (ja) * 2006-06-06 2007-12-20 Matsushita Electric Ind Co Ltd 非対称マルチプロセッサ
JP2009122925A (ja) 2007-11-14 2009-06-04 Toshiba Corp データ処理プログラム、データ処理方法およびデータ処理システム
US8055872B2 (en) * 2008-02-21 2011-11-08 Arm Limited Data processor with hardware accelerator, accelerator interface and shared memory management unit
US8432405B2 (en) 2008-06-26 2013-04-30 Microsoft Corporation Dynamically transitioning between hardware-accelerated and software rendering
CN101441564B (zh) * 2008-12-04 2011-07-20 浙江大学 为程序定制的可重构加速器实现方法
US8368702B2 (en) 2010-01-06 2013-02-05 Apple Inc. Policy-based switching between graphics-processing units
KR101115708B1 (ko) 2010-01-26 2012-03-06 한국원자력연구원 단결정 성장용 앰플 및 이를 포함하는 단결정 성장장치
US20110249022A1 (en) * 2010-04-08 2011-10-13 Rajesh Poornachandran Techniques for managing power use
US8839256B2 (en) * 2010-06-09 2014-09-16 International Business Machines Corporation Utilization of special purpose accelerators using general purpose processors
JP5772948B2 (ja) * 2011-03-17 2015-09-02 富士通株式会社 システムおよびスケジューリング方法

Also Published As

Publication number Publication date
US9223581B2 (en) 2015-12-29
CN103164215A (zh) 2013-06-19
US20130061033A1 (en) 2013-03-07
JP2013050953A (ja) 2013-03-14
CN103164215B (zh) 2017-08-11
DE102012106830A1 (de) 2013-02-28
KR101861742B1 (ko) 2018-05-30
KR20130024155A (ko) 2013-03-08

Similar Documents

Publication Publication Date Title
JP6207818B2 (ja) システムオンチップ及びその動作方法並びに携帯用装置
JP6062438B2 (ja) タイル単位レンダラーを用いてレイヤリングするシステムおよび方法
EP3137985B1 (en) Method and system to create a rendering pipeline
CN110832457B (zh) 用于虚拟化加速处理装置的提前虚拟化上下文切换
CA2885995C (en) A hybrid engine for central processing unit and graphics processor
US20140189708A1 (en) Terminal and method for executing application in same
US9563466B2 (en) Method and apparatus for supporting programmable software context state execution during hardware context restore flow
KR20120083365A (ko) 디바이스를 디스에이블시키는 방법 및 장치
WO2022089040A1 (zh) 一种窗口展示效果的控制方法及计算设备
JP2020513613A (ja) 電力パフォーマンス管理のためのアプリケーションプロファイリング
US9830731B2 (en) Methods of a graphics-processing unit for tile-based rendering of a display area and graphics-processing apparatus
KR102521654B1 (ko) 컴퓨팅 시스템 및 컴퓨팅 시스템에서 타일-기반 렌더링의 그래픽스 파이프라인을 수행하는 방법
WO2019126976A1 (zh) 虚拟现实场景模型建立方法、装置、电子设备和存储介质
KR102248787B1 (ko) Gpu의 리소스에 대한 전력 소비 제어방법 및 장치
JP2008269094A (ja) 情報処理装置、情報処理装置の最適化方法、プログラム
WO2022237083A1 (zh) 信息显示方法、装置、终端、存储介质及计算机程序产品
JP2022546250A (ja) 電力に基づいたsramの適応割り当て
JP2020525914A (ja) 仮想化デバイス用のファームウェアの変更
TWI807301B (zh) 適應於圖形處理器的二次卸載的編譯裝置和方法和電腦程式產品
CN112214443B (zh) 设置于图形处理器中的二次卸载装置和方法
JP6141073B2 (ja) 情報処理装置及び情報処理装置の制御方法
KR20210022850A (ko) 반도체 장치의 성능 부스팅 제어 방법 및 이를 수행하는 반도체 장치
CN111858036A (zh) 基于FPGA设备的TensorFlow系统加速方法、装置、设备及存储介质
CN116483643A (zh) 一种gpu调试方法、装置、设备及存储介质
WO2019028596A1 (zh) 一种虚拟机的启动方法、装置和智能终端

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170725

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: 20170808

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170906

R150 Certificate of patent or registration of utility model

Ref document number: 6207818

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250