JP2020513613A - 電力パフォーマンス管理のためのアプリケーションプロファイリング - Google Patents

電力パフォーマンス管理のためのアプリケーションプロファイリング Download PDF

Info

Publication number
JP2020513613A
JP2020513613A JP2019526604A JP2019526604A JP2020513613A JP 2020513613 A JP2020513613 A JP 2020513613A JP 2019526604 A JP2019526604 A JP 2019526604A JP 2019526604 A JP2019526604 A JP 2019526604A JP 2020513613 A JP2020513613 A JP 2020513613A
Authority
JP
Japan
Prior art keywords
hardware
application
stored
parameter settings
processor
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.)
Granted
Application number
JP2019526604A
Other languages
English (en)
Other versions
JP6909290B2 (ja
JP2020513613A5 (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.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
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 ATI Technologies ULC filed Critical ATI Technologies ULC
Publication of JP2020513613A publication Critical patent/JP2020513613A/ja
Publication of JP2020513613A5 publication Critical patent/JP2020513613A5/ja
Application granted granted Critical
Publication of JP6909290B2 publication Critical patent/JP6909290B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)
  • Stored Programmes (AREA)

Abstract

複数のアプリケーション毎のハードウェアパラメータ設定を記憶するように構成されたメモリを含む処理装置が提供される。また、処理装置は、メモリと通信するプロセッサを含み、プロセッサは、ハードウェアパラメータ設定をメモリに記憶し、複数のアプリケーションのうち1つのアプリケーションを現在実行中のアプリケーションとして識別し、識別されたアプリケーションの記憶されたハードウェアパラメータ設定に従って複数のハードウェアパラメータを調整することによって、ハードウェアの動作を制御するように構成されている。【選択図】図3

Description

(関連出願の相互参照)
本願は、2016年11月18日に出願された米国特許出願第15/355,569号の利益を主張するものであり、この内容は参照により本明細書に完全に記載されているものとして援用される。
いくつかの処理デバイスのハードウェアは、ハードウェアの動作を制御するのに使用されるデバイス(例えば、ファームウェア)に記憶されたハードウェアパラメータによって管理される。これらのパラメータの設定(すなわち、動的電力管理(DPM)設定)は、ハードウェアのパフォーマンスと、アプリケーションの実行等の様々な機能を実行するためにハードウェアによって消費される電力と、の両方に影響を及ぼす。また、パフォーマンスと消費電力とは相互に依存する。例えば、ハードウェアのパフォーマンスレベルを上げると、多くの場合、消費電力量が増える。一方、DPM設定は、従来、ドライバソフトウェアにハードコードされており、ドライバソフトウェアを変更しない限り変更することができない。
添付図面と併せて例として与えられる以下の説明から、より詳細な理解を得ることができる。
電力パフォーマンス管理のためのアプリケーションプロファイリングが実施される例示的なデバイスの図である。 図1に示すアクセラレーテッド処理デバイスにおける処理タスクの実行に関連する更なる詳細を示すブロック図である。 例示的な電力パフォーマンス管理システムにおける例示的な相互接続及び情報フローを示すブロック図である。 電力パフォーマンスを管理するためのハードウェアパラメータ設定を受信する例示的な方法を示すフローチャートである。 アプリケーション実行時の例示的な電力パフォーマンス管理方法を示すフローチャートである。
特定用途向け集積回路(ASIC)等の特定の集積回路(IC)に対してグローバルDPM設定を提供する取組みが進められている。しかしながら、このようなグローバル設定によって、パフォーマンスレベルが変化する。例えば、グローバル設定にてIC上で実行されるアプリケーションが第1パフォーマンスレベル(例えば、高品質のビデオ表示をレンダリングするパフォーマンスレベル)で実行される一方で、当該IC上で実行される別のアプリケーションが第2パフォーマンスレベル(例えば、低品質のビデオ表示をレンダリングするパフォーマンスレベル)で実行される。
本願は、デバイス上で実行されるアプリケーション毎にカスタマイズされたハードウェアパラメータ設定を利用することによって、電力及びパフォーマンスを管理する装置及び方法を開示する。また、カスタマイズには、各アプリケーションプログラミングインタフェース(API)及びデバイスの各プロセッサのハードウェアパラメータ設定が含まれる。ハードウェアパラメータ設定は、デバイスドライバを変更せずにドライバスタックの構成ファイルを変更する(すなわち、上書きする)ことによって、アプリケーション毎にカスタマイズされる。アプリケーションのハードウェアパラメータ設定は、デバイスのファームウェアに記憶されたハードウェアパラメータを調整して(例えば、ハードウェアパラメータの値を設定して)、ハードウェアによって消費される電力を制御し、他のアプリケーションの実行時にパフォーマンスに影響を与えることなく当該アプリケーションを実行し、パフォーマンスレベルを維持するために使用される。
本願は、複数のアプリケーション毎のハードウェアパラメータ設定を記憶するように構成されたメモリを含む処理装置を提供する。また、処理装置は、メモリと通信するように構成されたプロセッサを備え、プロセッサは、ハードウェアパラメータ設定をメモリに記憶し、複数のアプリケーションのうち1つのアプリケーションを現在実行中のアプリケーションとして識別し、識別されたアプリケーションの記憶されたハードウェアパラメータ設定に従って複数のハードウェアパラメータを調整することによって、ハードウェアの動作を制御するように構成されている。
本願は、電力パフォーマンス管理のコンピュータ実行方法を提供する。方法は、複数のアプリケーション毎のハードウェアパラメータ設定を受信することと、ハードウェアパラメータ設定を記憶することと、複数のアプリケーションのうち1つのアプリケーションを実行することと、実行中のアプリケーションを識別することと、識別された実行中のアプリケーションの記憶されたハードウェアパラメータ設定に従ってハードウェアパラメータを調整することによって、ハードウェアの動作を制御することと、を含む。
本願は、電力パフォーマンス管理方法をコンピュータに実行させる命令を含む非一時的なコンピュータ可読記憶媒体を提供する。命令は、複数のアプリケーション毎のハードウェアパラメータ設定を記憶することと、複数のアプリケーションのうち1つのアプリケーションを実行することと、実行中のアプリケーションを識別することと、識別された実行中のアプリケーションの記憶されたハードウェアパラメータ設定に従ってハードウェアパラメータを調整することによって、ハードウェアの動作を制御することと、を含む。
本明細書において、プログラムは、手順又はルーチン(例えば、動作、計算、機能、プロセス、ジョブ)を実行するために、1つ以上のプロセッサを使用して実行される任意の命令シーケンスを含む。本明細書において、プログラムされた命令(例えば、アプリケーション、ドライバ、オペレーティングシステム又は他のソフトウェア等)のプロセッサ上での実行には、プログラムされた命令の特定の部分(例えば、フルスクリーンでのビデオのレンダリング)のフェッチ、デコード、実行のスケジューリング、実行の開始及び実行等の複数のステージの何れかが含まれるが、これらに限定されない。プログラムされた命令には、ハードウェアの動作を制御するのに使用される調整可能な(すなわち、変更可能な)値を有するパラメータ設定(例えば、ハードウェアパラメータ設定等)及びパラメータ(例えば、ハードウェアパラメータ)が含まれる。
図1は、例示的なデバイス100のブロック図である。デバイス100は、例えば、コンピュータ、ゲーム機、ハンドヘルドデバイス、セットトップボックス、テレビ、携帯電話又はタブレットコンピュータ等を含む。図1に示すように、例示的なデバイス100は、プロセッサ102と、メモリ104と、ストレージ106と、1つ以上の入力デバイス108と、1つ以上の出力デバイス110と、入力ドライバ112と、出力ドライバ114と、を含む。デバイス100は、図1に示されていない別のコンポーネントを含み得ることが理解されるであろう。
プロセッサ102の例示的なプロセッサタイプは、CPU、GPU、同じダイ上に配置されたCPU及びGPU、又は、1つ以上のプロセッサコアを含み、各プロセッサコアは、CPU又はGPUである。メモリ104は、例えば、プロセッサ102と同じダイ上に配置されるか、プロセッサ102とは別に配置されている。メモリ104の例示的なメモリタイプは、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)、ダイナミックRAM又はキャッシュ)と、以下により詳細に説明するように、例えばハードウェアパラメータを含むファームウェアを記憶するように構成された不揮発性メモリ(例えば、ハードディスク、マザーボードのブートリードオンリメモリ(ROM)及びBIOSメモリ)と、を含む。
ストレージ106の例示的なストレージタイプは、固定又は着脱可能なストレージ(例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスク若しくはフラッシュドライブ等)を含む。入力デバイス108の例示的な入力デバイスタイプは、キーボード、キーパッド、タッチスクリーン、タッチパッド、検出器、マイクロフォン、加速度計、ジャイロスコープ、バイオメトリクススキャナ又はネットワーク接続(例えば、無線IEEE802信号の送信及び/若しくは受信用の無線ローカルエリアネットワークカード)を含む。出力デバイス110の例示的な出力デバイスタイプは、ディスプレイ、スピーカ、プリンタ、触覚フィードバックデバイス、1つ以上のライト、アンテナ又はネットワーク接続(例えば、無線IEEE802信号の送信及び/若しくは受信用の無線ローカルエリアネットワークカード)を含む。
入力ドライバ112は、プロセッサ102及び入力デバイス108と通信し、プロセッサ102が入力デバイス108から入力を受信するのを可能にする。出力ドライバ114は、プロセッサ102及び出力デバイス110と通信し、プロセッサ102が出力デバイス110に出力を送信するのを可能にする。入力ドライバ112及び出力ドライバ114はオプションのコンポーネントであり、入力ドライバ112及び出力ドライバ114が存在しない場合であっても、デバイス100が同様に動作することに留意されたい。
図1に示すように、出力ドライバ114(例えば、グラフィックスカード)は、ディスプレイデバイス118に接続されたアクセラレーテッド処理デバイス(APD)116を含む。APD116は、プロセッサ102から計算コマンド及びグラフィックスレンダリングコマンドを受信し、これらの計算コマンド及びグラフィックスレンダリングコマンドを処理し、表示用のピクセル出力をディスプレイデバイス118に提供するように構成されている。以下にさらに詳細に説明するように、APD116は、単一命令複数データ(SIMD)パラダイムに従って計算を実行するように構成された1つ以上の並列処理装置を含む。本明細書では、様々な機能が、APD116によって又はAPD116と共に実行されるものとして説明されているが、APD116によって実行されると説明された機能は、ホストプロセッサ(例えば、プロセッサ102)によって駆動されずに、グラフィックス出力をディスプレイデバイス118に提供するように構成された同様の機能を有する他のコンピューティングデバイスによっても実行される。本明細書で説明する機能は、例えば、SIMDパラダイムに従って処理タスクを実行する任意の処理システムによって実行される。或いは、本明細書で説明する機能は、SIMDパラダイムに従って処理タスクを実行しないコンピューティングシステムによって実行される。
図2は、図1に示すデバイス100のAPD116における処理タスクの実行に関連する更なる詳細を示すブロック図である。プロセッサ102は、プロセッサ102によって実行されるプログラムされた命令を含む1つ以上の制御論理モジュールをシステムメモリ104内に保持している。また、プログラムされた命令は、プロセッサ102(例えば、CPU)に含まれてもよい。制御論理モジュールは、オペレーティングシステム120と、デバイスドライバ122(例えば、カーネルモードドライバ、ユーザモードドライバ、ユニバーサルモードドライバ)と、APD116上で実行されるアプリケーション126と、実行可能アプリケーション126の各々に対する所定のハードウェアパラメータ設定を記憶する構成命令124(例えば、構成ファイル、BLOBファイル、拡張ファイル等の内部の命令)と、を含む。図2に示すように、デバイスドライバ122及び構成命令124は、ドライバスタック125の一部である。また、ドライバスタック125は、例えば、各アプリケーションの実行中にハードウェアによる電力消費を管理するためのハードウェアパラメータ(例えば、クロック速度パラメータ、クロック電圧パラメータ、クロックゲーティングパラメータ)の調整をサポートする、プログラムされた命令を含む。
これらの制御論理モジュールは、プロセッサ102及びAPD116の動作の様々な態様を制御する。例えば、オペレーティングシステム120は、ハードウェア(例えば、CPU、GPU及び計算ユニット132)と直接通信し、プロセッサ102上で実行される他のソフトウェアのためのハードウェアへのインタフェースを提供する。デバイスドライバ122は、例えば、APD116の様々な機能にアクセスするために、プロセッサ102上で実行されるソフトウェア(例えば、アプリケーション126)にAPIを提供することによって、APD116の動作を制御する。また、デバイスドライバ122は、APD116のコンポーネントを処理することによって、実行されるプログラムをコンパイルするジャストインタイムコンパイラを含む。
APD116は、例えば、並列処理を実行するのに適したグラフィックス動作や非グラフィックス動作等の選択された機能のためのコマンド及びプログラムを実行する。APD116は、例えば、ピクセル演算、幾何学的計算、及び、プロセッサ102から受信したコマンドに基づいて画像をディスプレイデバイス118にレンダリングする等のグラフィックスパイプライン動作を実行するために使用される。また、APD116は、プロセッサ102から受信したコマンドに基づいて、ビデオ、物理シミュレーション、計算流体力学、又は、他のタスクに関連する動作等のように、グラフィックス動作に直接関連しない計算処理動作を実行する。
APD116の例示的なプロセッサタイプは、CPU、GPU、同じダイ上に配置されたCPU及びGPU、又は、1つ以上のプロセッサコア(すなわち、計算ユニット)132を含み、各プロセッサコアは、CPU又はGPUである。各計算ユニット(すなわち、計算コア)132は、SIMDパラダイムに従って、プロセッサ102の要求に応じて動作を並列に実行するように構成された1つ以上のSIMDユニット138を含む。SIMDパラダイムは、複数の処理要素が単一のプログラム制御フローユニット及びプログラムカウンタを共有し、これにより同じプログラムを実行するが、異なるデータを用いてそのプログラムを実行することができるというものである。一例では、各SIMDユニット138は、16個のレーンを含み、各レーンは、SIMDユニット138内の他のレーンと同時に同じ命令を実行するが、異なるデータを用いてその命令を実行することができる。全てのレーンが特定の命令を実行する必要がない場合には、予測(predication)を用いてレーンをオフにすることができる。また、予測を用いて、異なる制御フローを有するプログラムを実行することができる。より具体的には、制御フローが、個々のレーンによって実行される計算に基づく条件付き分岐又は他のプログラムの場合には、現在実行されていない制御フローパスに対応するレーンの予測、及び、異なる制御フローパスを順次実行することにより、任意の制御フローが可能になる。
スケジューラ136は、異なる計算ユニット132及びSIMDユニット138上で様々な実行ユニット(例えば、ワークグループ及びウェーブフロント等)のスケジューリングに関連する動作を実行するように構成されている。APD116上での処理タスクの実行は、ピクセル値計算、頂点変換、及び、他のグラフィックス動作等のグラフィックス関連動作に適している。したがって、プロセッサ102からグラフィックス処理コマンドを受信するグラフィックスパイプライン134は、並列実行のために計算タスクを計算ユニット132に提供することができる。
また、計算ユニット132は、グラフィックスに関連しない計算タスク、又は、グラフィックスパイプライン134の「通常」動作の一部として実行されない計算タスク(例えば、グラフィックスパイプライン134の動作のために実行される処理を補足するために実行されるカスタム動作)を実行するために使用される。プロセッサ102上で実行されるアプリケーション126又は他のソフトウェアは、このような計算タスクを定義するプログラムを、実行のためにAPD116に送信する。
図3は、例示的な電力パフォーマンス管理システムにおける例示的な相互接続及び情報フローを示すブロック図300である。図3に示すように、システムは、API302(1つ以上のAPIを表す)が設けられたアプリケーション126と、デバイスドライバ122及び構成命令124を含むドライバスタック125と、デバイス304で実行するように構成されたファームウェア306を含むデバイス304(例えば、図1に示す出力ドライバ114)と、を含む。
ドライバスタック125は、オペレーティングシステム120と、ファームウェア306及び構成命令124との間のインタフェースに使用されるデバイスドライバ122を含む。構成命令124は、処理されるアプリケーション126毎に、各アプリケーション126の実行中にハードウェアの動作を制御するように構成された複数のハードウェアパラメータを調整するのに使用される所定の(例えば、アプリケーションの実行時に決定される)ハードウェアパラメータ設定を含む。
ファームウェア306は、デバイス304(例えば、グラフィックスカード)のハードウェアの動作を制御し、デバイス304のハードウェア(例えば、APD116)とデバイスドライバ122との間のインタフェースを提供するためのハードウェアパラメータ及び関連値を含む。上述したように、ファームウェアは、不揮発性メモリ(例えば、ハードディスク、マザーボードブートリードオンリメモリ(ROM)、BIOSメモリ)に記憶されている。プロセッサ102は、実行中のアプリケーションを識別するように構成されている。例えば、図3に示すように、デバイス304のAPD116上で実行されているアプリケーション(例えば、出力ドライバ114)が識別され、ファームウェア306が不揮発性メモリ(例えば、メモリ104の一部)から読み出され、デバイス304で処理される。或いは、出力ドライバを含まないデバイス100のプロセッサ上で実行されるアプリケーションが識別される。ファームウェア306は、デバイスドライバ122と共に、ハードウェア(例えば、出力ドライバ114のAPD116、デバイス100の1つ以上の他のプロセッサ、並びに、エンコーダ、デコーダ、メモリセル及び回路(図示省略))の動作を制御するために使用される。
ハードウェアパラメータの例には、動的電力管理(DPM)パラメータ(例えば、クロック速度パラメータ、クロック電圧パラメータ、クロックゲーティングパラメータ)、メモリタイミングパラメータ、発熱(例えば、熱設計電力(TDP))、及び、識別されたアプリケーションを実行するために電力分配を制御するのに使用される他のパラメータが含まれる。APD116は、例えば、オペレーティングシステム120と、デバイスドライバ122と、構成命令124とを使用して、アプリケーション126を実行する(例えば、実行をスケジュールし、実行する)ように構成されている。例えば、オペレーティングシステム120は、ファームウェア306と通信し、APD116上で実行されているアプリケーション126に対してハードウェアへのインタフェースを提供する。デバイスドライバ122は、例えば、APD116上で実行されているアプリケーション126にAPI302を提供して、APD116の様々な機能にアクセスすることによって、APD116の動作を制御する。
プロセッサ102は、例えば、アプリケーション名を介して、デバイス304で実行されているアプリケーションを識別する。また、プロセッサ102は、アプリケーション126によって使用されるAPI302を識別するAPI識別子を介して、実行中のアプリケーション126を識別するように構成されている。API302は、例えば、デバイスドライバ122とインタフェースする(例えば、デバイスドライバ122に要求する)ために使用される命令を含む。APIの例としては、オープンコンピューティング言語(OpenCL)、オープングラフィックスライブラリ(OpenGL)及びDirectX APIが挙げられるが、これらに限定されない。
アプリケーション126用のハードウェアパラメータ設定は、構成命令124に記憶されている。新たなアプリケーションが特定のプロセッサ又はデバイス(例えば、グラフィックスカード)による実行のために利用可能(例えば、実行可能)になると、アプリケーション126は、提供されたAPI302を使用して、異なる電力消費レベル及びパフォーマンスレベルをもたらす異なるパラメータ設定を有するデバイスに対してテストされる(例えば、実行される)。各デバイス(例えば、デバイス100、出力ドライバ114、デバイス304)は、ハードウェア(例えば、IC、プロセッサ102又はAPD116等のプロセッサ、メモリセル、エンコーダ、デコーダ及び回路)を含む。ハードウェアは、例えば、ハードウェア識別子(例えば、デバイスIDやリビジョンID等)を用いて識別される。識別されたハードウェアのハードウェアパラメータ設定が新たなアプリケーション126に対して決定されると、この設定は、例えば、更新された構成命令の一部(例えば、構成ファイル、BLOBファイル又は他のファイル)として、ネットワーク(図示省略)を介して送信される。デバイス(例えば、出力ドライバ114、デバイス304)及びハードウェア(例えば、APD116)を含む設定が、(例えば、デバイス100において)受信される。更新された構成命令がデバイス100で受信されると、新たなアプリケーション126のパラメータ設定は、デバイスドライバ122を変更することなくドライバスタック125の構成命令124を上書きすることによって、(例えば、プロセッサ102を介して)デバイス100の揮発性メモリ(例えば、メモリ104の揮発性部分)に記憶される。
実行中のアプリケーション126が識別されると、プロセッサ102は、(例えば、デバイス304において)ファームウェアを実行し、実行中のアプリケーション126に対応する構成命令124に記憶されたハードウェアパラメータ設定に従って複数のハードウェアパラメータ(例えば、クロック電圧)を調整することによって、ハードウェアの動作を制御する。調整は、構成命令124に記憶されたハードウェアパラメータ設定に従って、ハードウェアパラメータに関連する値を設定することによって実行される。例えば、実行中のアプリケーション126が識別されると、デバイスドライバ122は、構成命令124を解析し、識別されたアプリケーション126及びAPI302についての設定を構成命令124から読み出す。記憶されたデータは、記憶された設定をサポートして電力及びパフォーマンスを管理するデバイスドライバ122(例えば、カーネルモードドライバ)及び追加の構造体に渡される。
記憶された設定には、例えば、ハードウェアのアクティビティレベルと、アクティビティレベル閾値パラメータの値との比較に基づいて、クロック電圧パラメータの値を増減することが含まれる。ハードウェアのアクティビティレベルと、アクティビティレベル閾値パラメータの値とは、例えば、プロセッサがサンプリング間隔(例えば、10ms)中に実行する時間の割合若しくは比率、プロセッサがサンプリング間隔中に実行する回数、又は、サンプリング間隔中に実行するプロセッサのアクティビティレベルを測定するための別のメトリックに対応する。例えば、サンプリング間隔中のハードウェアのアクティビティレベルがアクティビティレベル閾値パラメータの値よりも小さい場合には、クロック電圧パラメータの値が減少し、サンプリング間隔中のハードウェアのアクティビティレベルがアクティビティレベル閾値パラメータの値以上の場合には、クロック電圧パラメータの値が増加する。また、この設定には、例えば、クロック電圧パラメータの値に対する制限を設定することが含まれる。
図4は、電力パフォーマンスを管理するためのハードウェアパラメータ設定を受信する例示的な方法を示すフローチャート400である。
図4のブロック402に示すように、方法400は、ハードウェアの動作を制御するために使用される複数のハードウェアパラメータに対するハードウェアパラメータ設定を、(例えば、デバイス識別子を介して)デバイスにおいて受信することを含む。例えば、カスタマイズされたハードウェア設定は、現在記憶されている構成命令を更新するために、ネットワーク(図示省略)を介して、構成命令(例えば、構成ファイル)のセットの一部としてデバイスにおいて受信される。
方法400のブロック404において、構成ファイルが更新される。構成命令を更新することは、例えば、構成ファイルの各部分を上書きすること(すなわち、ファイル自体を上書きすること)と、構成ファイルの1つ以上の部分を上書きすること(例えば、1つ以上のアプリケーションについて以前に受信した設定に対するハードウェアパラメータ設定を更新すること)と、1つ以上の新たにテストされたアプリケーション用のハードウェアパラメータ設定を追加することと、を含む。現在記憶されているパラメータ設定(例えば、1つ以上のアプリケーションについて以前に受信した設定)は、例えば、アプリケーション名又はAPI識別子を介して識別される。命令は、デバイスドライバを上書き又は変更することなく、構成命令を上書きすることによって記憶される。つまり、設定は、デバイスドライバにハードコードされておらず、デバイスドライバを変更せずに変更することができる。
更新された構成命令は、不揮発性メモリ(例えば、ハードディスク、マザーボードブートROM等)に(例えば、ファームウェアとして)記憶される。また、識別子(例えば、アプリケーション名及びAPI識別子)は、アプリケーションに提供された対応するアプリケーション名及びAPI識別子を用いてハードウェアパラメータ設定を識別するために記憶される。アプリケーションが実行されると、対応するアプリケーションの識別されたハードウェアパラメータ設定を含む命令が、デバイスのメモリを介して実行される。
図5は、アプリケーション実行時の例示的な電力パフォーマンス管理方法を示すフローチャート500である。
図5のブロック502に示すように、方法500は、アプリケーションを実行することを含む。アプリケーションは、例えば、アプリケーションをフェッチし、アプリケーションをデコードし、アプリケーションの実行をスケジューリングし、アプリケーションの実行を開始し、アプリケーションの特定の部分(例えば、フルスクリーンでのビデオのレンダリング)を実行することによって、実行される。
図5のブロック504に示すように、方法500は、実行中のアプリケーションを識別することを含む。アプリケーションは、例えば、アプリケーションを識別するアプリケーション識別子と、アプリケーションに提供されたAPIを識別するAPI識別子と、によって識別される。各アプリケーション及び各APIは、同じ電力分配値を使用して異なるパフォーマンスレベルをもたらす可能性があるため、アプリケーション毎及びAPI毎に設定がカスタマイズされ、アプリケーションを実行するハードウェアによって消費される電力を制御し、別のアプリケーションの実行時にパフォーマンスに影響を与えることなくパフォーマンスレベルを維持する。
図5の判別ブロック506に示すように、方法は、識別されたアプリケーション用のハードウェアパラメータ設定が記憶されているかどうかを判別することを含む。例えば、識別されたアプリケーションのハードウェアパラメータ設定が、図4で説明した構成ファイルに記憶されているかどうかを判別する。
図5の方法500のブロック508に示すように、(例えば、アプリケーション識別子及びAPI識別子を介して)識別されたアプリケーションのハードウェアパラメータ設定が記憶されていると判別した場合、識別されたアプリケーションの記憶されたハードウェアパラメータ設定に従ってアプリケーションを実行するように、ハードウェアパラメータを調整する。設定は、デバイスのメモリを介して実行される。調整は、実行のパフォーマンスレベルを維持しながら、識別されたアプリケーションを実行するためにハードウェアによって消費される電力を制御する等のように、ハードウェアの動作を制御するために用いられる。例えば、サンプリング間隔中のハードウェアのアクティビティレベルと、サンプリング間隔に対するアクティビティレベル閾値パラメータと、の比較に基づいてクロック電圧パラメータを調整すること(例えば、クロック電圧パラメータの値を変更すること)によって、電力分配を管理する。図5の方法500のブロック510に示すように、識別されたアプリケーションのハードウェアパラメータ設定が記憶されていない(例えば、識別されたアプリケーションのハードウェアパラメータ設定を未だ受信していない)と判別した場合、記憶されたグローバルハードウェアパラメータ設定に従ってアプリケーションを実行するように、ハードウェアパラメータを調整する。
本明細書の開示に基づいて多くの変形が可能であることを理解されたい。機能及び要素を特定の組み合わせで上記のように説明されているが、各機能又は要素は、他の機能や要素なしに単独で使用されてもよいし、他の機能や要素を伴って若しくは伴わずに様々な組み合わせで使用されてもよい。
提供された方法には、汎用コンピュータ、プロセッサ又はプロセッサコアにおける実施が含まれる。適切なプロセッサには、例として、汎用プロセッサ、専用プロセッサ、従来のプロセッサ、デジタル信号プロセッサ(DSP)、複数のマイクロプロセッサ、DSPコアに関連する1つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)回路、任意の他のタイプの集積回路(IC)、及び/又は、ステートマシンが含まれる。このようなプロセッサは、処理されたハードウェア記述言語(HDL)命令、及び、ネットリストを含む他の中間データ(このような命令はコンピュータ可読媒体に記憶され得る)の結果を使用して製造プロセスを構成することによって製造されてもよい。このような処理の結果は、本実施形態の態様を実施するプロセッサを製造するために半導体製造プロセスにおいて使用されるマスクワークであってもよい。
本明細書で提供される方法又はフローチャートは、汎用コンピュータ若しくはプロセッサによる実行のために非一時的なコンピュータ可読記憶媒体に組み込まれたコンピュータプログラム、ソフトウェア、ファームウェアにおいて実施されてもよい。非一時的なコンピュータ可読記憶媒体の例には、ROM、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスク及びリムーバブルディスク等の磁気媒体、光磁気媒体、光学媒体(CD−ROMディスク等)、デジタル多用途ディスク(DVD)等が含まれる。

Claims (20)

  1. 複数のアプリケーション毎のハードウェアパラメータ設定を記憶するように構成されたメモリと、
    前記メモリと通信するように構成されたプロセッサと、を備え、
    前記プロセッサは、
    前記ハードウェアパラメータ設定を前記メモリに記憶し、
    前記複数のアプリケーションのうち1つのアプリケーションを現在実行中のアプリケーションとして識別し、
    識別されたアプリケーションの記憶されたハードウェアパラメータ設定に従って複数のハードウェアパラメータを調整することによって、ハードウェアの動作を制御する、ように構成されている、
    処理装置。
  2. 前記ハードウェアは、複数のプロセッサタイプを含むアクセラレーテッド処理デバイスであって、前記アプリケーションを実行するように構成されたアクセラレーテッド処理デバイスを備える、
    請求項1の処理装置。
  3. 前記プロセッサは、実行中のアプリケーションを識別するためのアプリケーション識別子と、実行中のアプリケーションに提供されるアプリケーションプログラミングインタフェースを識別するためのアプリケーションプログラミングインタフェース識別子と、を用いて、前記ハードウェア上で実行中のアプリケーションを識別するようにさらに構成されている、
    請求項1の処理装置。
  4. 前記ハードウェアは、ハードウェア識別子を含み、前記ハードウェアパラメータ設定は、前記ハードウェア識別子によって識別されたハードウェアの動作を制御するのに使用される、
    請求項1の処理装置。
  5. 前記複数のハードウェアパラメータは、実行のパフォーマンスレベルを維持しながら、前記識別されたアプリケーションを実行するために前記ハードウェアによって消費される電力を制御するように構成された電力管理パラメータであり、
    前記プロセッサは、前記識別されたアプリケーションの記憶されたハードウェアパラメータ設定に従って複数の電力管理パラメータを調整することによって、前記ハードウェアによって消費される電力を制御するようにさらに構成されている、
    請求項1の処理装置。
  6. 前記電力管理パラメータは、サンプリング間隔に対するクロック電圧パラメータ及びアクティビティレベル閾値パラメータを含み、
    前記プロセッサは、
    前記サンプリング間隔中の前記ハードウェアのアクティビティレベルを、前記サンプリング間隔に対するアクティビティレベル閾値パラメータと比較することと、
    前記サンプリング間隔中の前記ハードウェアのアクティビティレベルと、前記サンプリング間隔に対するアクティビティレベル閾値パラメータと、の比較に基づいて前記クロック電圧パラメータの値を変更することと、
    によって、前記クロック電圧パラメータを調整するようにさらに構成されている、
    請求項5の処理装置。
  7. 前記プロセッサは、
    前記識別されたアプリケーションのハードウェアパラメータ設定が記憶されているかどうかを判別し、
    前記識別されたアプリケーションのハードウェアパラメータ設定が記憶されていると判別した場合に、前記識別されたアプリケーションの記憶されたハードウェアパラメータ設定に従って前記アプリケーションを実行するように、前記ハードウェアパラメータを調整し、
    前記識別されたアプリケーションのハードウェアパラメータ設定が記憶されていないと判別した場合に、記憶されたグローバルハードウェアパラメータ設定に従って前記アプリケーションを実行するように、前記ハードウェアパラメータを調整する、ようにさらに構成されている、
    請求項1の処理装置。
  8. 前記プロセッサは、構成ファイルを使用することによって前記ハードウェアの動作を制御するように構成されたデバイスドライバとは別の構成ファイルに前記ハードウェアパラメータ設定を記憶するようにさらに構成されている、
    請求項1の処理装置。
  9. 前記プロセッサは、1つ以上のアプリケーションの新たなパラメータ設定を受信した場合に、前記デバイスドライバを変更することなく前記構成ファイルを更新するようにさらに構成されている、
    請求項8の処理装置。
  10. 前記メモリは、実行可能なデバイスドライバを記憶するようにさらに構成されており、
    前記プロセッサは、
    前記ハードウェアパラメータ設定を非実行構成ファイルに記憶し、
    前記実行可能なデバイスドライバを使用して、前記非実行構成ファイルに記憶されている前記記憶されたハードウェアパラメータ設定に従って前記複数のハードウェアパラメータを調整することによって、前記ハードウェアの動作を制御する、ようにさらに構成されている、
    請求項1の処理装置。
  11. 電力パフォーマンス管理のコンピュータ実行方法であって、
    複数のアプリケーション毎のハードウェアパラメータ設定を受信することと、
    前記ハードウェアパラメータ設定を記憶することと、
    前記複数のアプリケーションのうち1つのアプリケーションを実行することと、
    実行中のアプリケーションを識別することと、
    識別された実行中のアプリケーションの記憶されたハードウェアパラメータ設定に従ってハードウェアパラメータを調整することによって、ハードウェアの動作を制御することと、を含む、
    方法。
  12. 前記識別された実行中のアプリケーションのハードウェアパラメータ設定が記憶されているかどうかを判別することと、
    前記識別された実行中のアプリケーションのハードウェアパラメータ設定が記憶されていると判別した場合に、前記識別された実行中のアプリケーションの記憶されたハードウェアパラメータ設定に従って前記アプリケーションを実行するように、前記ハードウェアパラメータを調整することと、
    前記識別された実行中のアプリケーションのハードウェアパラメータ設定が記憶されていないと判別した場合に、記憶されたグローバルハードウェアパラメータ設定に従って前記アプリケーションを実行するように、前記ハードウェアパラメータを調整することと、をさらに含む、
    請求項11の方法。
  13. 前記実行中のアプリケーションに1つ以上のアプリケーションプログラミングインタフェースを提供することをさらに含み、前記実行中のアプリケーションを識別することは、前記実行中のアプリケーションに提供された1つ以上のアプリケーションプログラミングインタフェースを識別することを含む、
    請求項11の方法。
  14. 構成ファイルに記憶されたハードウェアパラメータ設定を使用することによって前記ハードウェアの動作を制御するように構成されたデバイスドライバとは別の構成ファイルに前記ハードウェアパラメータ設定を記憶することをさらに含む、
    請求項11の方法。
  15. 前記ハードウェアパラメータ設定が前記複数のアプリケーションの各々に対して記憶されている場合に、前記デバイスドライバを変更することなく前記構成ファイルを更新することをさらに含む、
    請求項14の方法。
  16. 前記複数のハードウェアパラメータは、実行のパフォーマンスレベルを維持しながら、前記識別された実行中のアプリケーションを実行するために前記ハードウェアによって消費される電力を制御するための電力管理パラメータであり、
    前記方法は、前記記憶されたハードウェアパラメータ設定に従って複数の電力管理パラメータを調整することによって、前記ハードウェアによって消費される電力を制御することさらに含む、
    請求項11の方法。
  17. 前記電力管理パラメータは、サンプリング間隔に対するクロック電圧パラメータ及びアクティビティレベル閾値パラメータを含み、
    前記方法は、
    前記サンプリング間隔中の前記ハードウェアのアクティビティレベルを、前記サンプリング間隔に対するアクティビティレベル閾値パラメータと比較することと、
    前記サンプリング間隔中の前記ハードウェアのアクティビティレベルと、前記サンプリング間隔に対するアクティビティレベル閾値パラメータと、の比較に基づいて前記クロック電圧パラメータの値を変更することと、
    によって、前記クロック電圧パラメータを調整することをさらに含む、
    請求項16の方法。
  18. 前記ハードウェアの動作を制御するための命令を含む実行可能デバイスドライバを記憶することと、
    前記ハードウェアパラメータ設定を非実行構成ファイルに記憶することと、
    前記実行可能なデバイスドライバを使用して、前記非実行構成ファイルに記憶されている前記記憶されたハードウェアパラメータ設定に従って前記複数のハードウェアパラメータを調整することによって、前記ハードウェアの動作を制御することと、をさらに含む、
    請求項17の方法。
  19. 電力パフォーマンス管理方法をコンピュータに実行させるための命令を含むコンピュータ可読記憶媒体であって、
    前記命令は、
    複数のアプリケーション毎のハードウェアパラメータ設定を記憶することと、
    前記複数のアプリケーションのうち1つのアプリケーションを実行することと、
    実行中のアプリケーションを識別することと、
    識別された実行中のアプリケーションの記憶されたハードウェアパラメータ設定に従ってハードウェアパラメータを調整することによって、ハードウェアの動作を制御することと、を含む、
    コンピュータ可読記憶媒体。
  20. 前記命令は、
    前記複数のアプリケーション毎に、構成ファイルに記憶されたハードウェアパラメータ設定を使用することによって前記ハードウェアの動作を制御するように構成されたデバイスドライバとは別の構成ファイルに前記ハードウェアパラメータ設定を記憶することと、
    前記ハードウェアパラメータ設定が前記複数のアプリケーションの各々に対して記憶されている場合に、前記デバイスドライバを変更することなく前記構成ファイルを更新することと、をさらに含む、
    請求項19のコンピュータ可読記憶媒体。
JP2019526604A 2016-11-18 2017-11-07 電力パフォーマンス管理のためのアプリケーションプロファイリング Active JP6909290B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/355,569 2016-11-18
US15/355,569 US10877547B2 (en) 2016-11-18 2016-11-18 Application profiling for power-performance management
PCT/CA2017/051322 WO2018090130A1 (en) 2016-11-18 2017-11-07 Application profiling for power-performance management

Publications (3)

Publication Number Publication Date
JP2020513613A true JP2020513613A (ja) 2020-05-14
JP2020513613A5 JP2020513613A5 (ja) 2020-12-17
JP6909290B2 JP6909290B2 (ja) 2021-07-28

Family

ID=62144941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019526604A Active JP6909290B2 (ja) 2016-11-18 2017-11-07 電力パフォーマンス管理のためのアプリケーションプロファイリング

Country Status (6)

Country Link
US (3) US10877547B2 (ja)
EP (1) EP3542245A4 (ja)
JP (1) JP6909290B2 (ja)
KR (1) KR102208349B1 (ja)
CN (1) CN109923498B (ja)
WO (1) WO2018090130A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11079945B2 (en) 2018-09-20 2021-08-03 Ati Technologies Ulc Dynamic configuration of memory timing parameters
TWI706246B (zh) * 2018-12-27 2020-10-01 技嘉科技股份有限公司 效能管理系統、提供效能設定參數組合的方法、更新效能參數的方法、電腦軟體以及儲存媒體
US11068295B2 (en) * 2019-04-12 2021-07-20 Ghost Locomotion Inc. Device operation across multiple operating system modalities
CN111832738B (zh) * 2019-04-18 2024-01-09 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
CN112543375A (zh) * 2019-09-20 2021-03-23 青岛海信传媒网络技术有限公司 一种电视耗能管理方法及相关设备
US20230108234A1 (en) * 2021-09-28 2023-04-06 Advanced Micro Devices, Inc. Synchronous labeling of operational state for workloads
US11953965B2 (en) 2021-12-21 2024-04-09 Ati Technologies Ulc Adaptive power management

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0901063A3 (en) 1997-09-05 2000-05-24 Texas Instruments Incorporated Power management methods
US6167567A (en) * 1998-05-05 2000-12-26 3Com Corporation Technique for automatically updating software stored on a client computer in a networked client-server environment
TWI237793B (en) * 2004-03-12 2005-08-11 Abit Comp Corp Method for automatically changing configured values of hardware in computer system in accordance with executing application program
US7636921B2 (en) 2004-09-01 2009-12-22 Ati Technologies Inc. Software and methods for previewing parameter changes for a graphics display driver
US20060080867A1 (en) 2004-10-18 2006-04-20 Fang-Lin Chi Shoe heel with liquid received therein
US8276133B1 (en) 2007-12-11 2012-09-25 Nvidia Corporation System, method, and computer program product for determining a plurality of application settings utilizing a mathematical function
CN101751299B (zh) * 2008-12-17 2012-05-23 恩斯迈电子(深圳)有限公司 具有自动调整硬件参数值的计算机主机板
JP4966327B2 (ja) 2009-03-17 2012-07-04 株式会社東芝 情報処理装置及び省電力設定方法
US9798370B2 (en) * 2009-03-30 2017-10-24 Lenovo (Singapore) Pte. Ltd. Dynamic memory voltage scaling for power management
WO2011004221A1 (en) * 2009-07-08 2011-01-13 Nokia Corporation Method and apparatus for application power management
CN101778164A (zh) * 2010-01-06 2010-07-14 宇龙计算机通信科技(深圳)有限公司 一种移动终端及其功率参数调整的方法
US8352759B2 (en) * 2010-01-11 2013-01-08 Qualcomm Incorporated System and method of monitoring a central processing unit in real time
US8607083B2 (en) * 2010-04-01 2013-12-10 Intel Corporation Method and apparatus for interrupt power management
AU2012392518B2 (en) * 2012-10-16 2016-04-21 Razer (Asia-Pacific) Pte.Ltd. Computing systems and methods for controlling a computing system
US9224442B2 (en) * 2013-03-15 2015-12-29 Qualcomm Incorporated System and method to dynamically determine a timing parameter of a memory device
US20140281592A1 (en) 2013-03-18 2014-09-18 Advanced Micro Devices, Inc. Global Efficient Application Power Management
US9063782B2 (en) * 2013-04-04 2015-06-23 Harris Corporation Changing resource allocation among a plurality of concurrently executing applications in a portable multimode communication device in response to a change in usage scenario
US10409353B2 (en) 2013-04-17 2019-09-10 Qualcomm Incorporated Dynamic clock voltage scaling (DCVS) based on application performance in a system-on-a-chip (SOC), and related methods and processor-based systems
US9021439B2 (en) * 2013-04-25 2015-04-28 Centurylink Intellectual Property Llc Green software applications
JP6244785B2 (ja) 2013-09-30 2017-12-13 日本電気株式会社 It機器
US9639465B2 (en) * 2014-04-30 2017-05-02 Qualcomm Innovation Center, Inc. Dynamic cachable memory interface frequency scaling
CN104007806B (zh) 2014-06-20 2017-10-24 中科创达软件股份有限公司 一种安卓***中的cpu频率的控制方法、装置和设备
WO2016090187A1 (en) * 2014-12-05 2016-06-09 Tso Logic Inc Power state adjustment
US10108520B2 (en) * 2015-10-27 2018-10-23 Tata Consultancy Services Limited Systems and methods for service demand based performance prediction with varying workloads
US20170228849A1 (en) * 2016-02-05 2017-08-10 Mediatek Inc. Apparatuses and methods for activity-based resource management, and storage medium thereof

Also Published As

Publication number Publication date
KR20190082822A (ko) 2019-07-10
WO2018090130A1 (en) 2018-05-24
EP3542245A4 (en) 2020-06-17
CN109923498B (zh) 2023-08-15
EP3542245A1 (en) 2019-09-25
US20230333624A1 (en) 2023-10-19
US11703931B2 (en) 2023-07-18
US20180143680A1 (en) 2018-05-24
US10877547B2 (en) 2020-12-29
KR102208349B1 (ko) 2021-01-27
JP6909290B2 (ja) 2021-07-28
US20210116987A1 (en) 2021-04-22
CN109923498A (zh) 2019-06-21

Similar Documents

Publication Publication Date Title
JP6909290B2 (ja) 電力パフォーマンス管理のためのアプリケーションプロファイリング
KR102605313B1 (ko) 가상화된 가속 처리 디바이스를 위한 조기 가상화 컨텍스트 전환
US10963309B2 (en) Network interface controller-based scheduling of processing tasks in a distributed computing system
CN114895965A (zh) 实现工作负载的静态映射的乱序流水线执行的方法和装置
US10277667B2 (en) Method and apparatus for executing application based on open computing language
US10353591B2 (en) Fused shader programs
US20220334888A1 (en) Methods and apparatus to synchronize threads
US20220113757A1 (en) Apparatus, systems, and methods for intelligent tuning of overclocking frequency
US20220113781A1 (en) Methods and apparatus for bi-directional control of computing unit frequency
US20190318229A1 (en) Method and system for hardware mapping inference pipelines
JP2022546250A (ja) 電力に基づいたsramの適応割り当て
US20220100543A1 (en) Feedback mechanism for improved bandwidth and performance in virtual environment usecases
Durelli et al. Save: Towards efficient resource management in heterogeneous system architectures
US20230136365A1 (en) Methods and apparatus to allocate accelerator usage
US20230205680A1 (en) Emulating performance of prior generation platforms
US20230168898A1 (en) Methods and apparatus to schedule parallel instructions using hybrid cores
US11934248B2 (en) Performance and power tuning user interface
US20220222177A1 (en) Systems, apparatus, articles of manufacture, and methods for improved data transfer for heterogeneous programs
US20220318137A1 (en) Method and system for sharing memory
US11514194B2 (en) Secure and power efficient audio data processing
US20230145253A1 (en) Reducing latency in highly scalable hpc applications via accelerator-resident runtime management
US20240202862A1 (en) Graphics and compute api extension for cache auto tiling
TW201243618A (en) Load balancing in heterogeneous computing environments

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201106

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20201106

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20201110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210521

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210702

R150 Certificate of patent or registration of utility model

Ref document number: 6909290

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150