JP2018511859A - スプーフクロック及び細粒度周波数制御を使用する下位互換性 - Google Patents

スプーフクロック及び細粒度周波数制御を使用する下位互換性 Download PDF

Info

Publication number
JP2018511859A
JP2018511859A JP2017543996A JP2017543996A JP2018511859A JP 2018511859 A JP2018511859 A JP 2018511859A JP 2017543996 A JP2017543996 A JP 2017543996A JP 2017543996 A JP2017543996 A JP 2017543996A JP 2018511859 A JP2018511859 A JP 2018511859A
Authority
JP
Japan
Prior art keywords
operating frequency
version
application
current version
less powerful
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
JP2017543996A
Other languages
English (en)
Other versions
JP6467062B2 (ja
Inventor
エヴァン サーニー、マーク
エヴァン サーニー、マーク
シンプソン、デイヴィッド
Original Assignee
ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー
ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー
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 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー, ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー filed Critical ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー
Publication of JP2018511859A publication Critical patent/JP2018511859A/ja
Application granted granted Critical
Publication of JP6467062B2 publication Critical patent/JP6467062B2/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/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/08Digital computers in general; Data processing equipment in general using a plugboard for programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/08Digital computers in general; Data processing equipment in general using a plugboard for programming
    • G06F15/10Tabulators
    • 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
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Abstract

【解決手段】アプリケーションがシステムのカレントバージョン向けに設計されている場合、アプリケーションは第1の動作周波数で実行し、アプリケーションが第1の動作周波数よりも低い周波数で実行するシステムの前のバージョン向けに設計されている場合、第2の動作周波数で実行する。第2の動作周波数は、2つのシステム間の待ち時間、スループット、または他の処理特性の差を考慮に入れるためにシステムの前のバージョンの動作周波数よりも高いことがある。ソフトウェア可読サイクルカウンタは、真の動作周波数よりむしろ、システムの前のバージョンの動作周波数で実行するスプーフクロックに基づく。【選択図】図2

Description

本開示の態様は、コンピュータシステム上でのコンピュータアプリケーションの実行に関する。特に、本開示の態様は、コンピュータシステムのより旧いバージョン向けに設計されたアプリケーション/タイトルに下位互換性を提供するシステムまたは方法に関する。
現代のコンピュータシステムは、多くの場合異なる計算タスクに異なるプロセッサを使用する。現代のコンピュータは、ともに潜在的に他のユニットも含むことがあるアクセラレーテッドプロセッシングユニット(APU)の一部である、中央演算処理装置(CPU)に加えて、グラフィックパイプラインでの特定の計算タスク専用のグラフィックスプロセッシングユニット(GPU)を有することがある。
より強力な中央演算処理装置(CPU)、グラフィックプロセッシングユニット(GPU)、及びアクセラレーテッドプロセッシングユニット(APU)はより高い待ち時間、つまりより強力ではない構成要素とは異なる待ち時間特性を有することがある。例えば、より強力なGPUは、より強力ではないGPUと比較されるとき、そのテクスチャパイプラインでより多くの段階を有することがある。係る場合、このパイプラインの待ち時間は増加する。別の例では、より強力なAPUは、係るキャッシュを有していなかったより強力ではないAPUと比較してCPUのためのL3キャッシュを含むことがある。係る場合、すべてのキャッシュを見逃すデータにアクセスするために要する時間はより強力なAPUの場合増加するが、平均的な待ち時間はより強力なAPUの場合減少するので、メモリ待ち時間特性は異なる。
より強力な装置及びより強力ではない装置は同じ処理を実行(例えば、CPUでのプログラム命令またはGPUでの多様なプログラム機能演算及び固定機能演算の実行)できるが、この処理の待ち時間の差異により、より強力な装置はより強力ではない装置に関して下位互換となることができないことがある。同様に、より強力な装置が下位互換となることをできなくする処理の速度またはスループットの差がある場合がある。例えば、特定のタイプの処理の場合、より強力な装置は同じ時間間隔の中で処理のより多くの反復を実行できてよい。代わりに、より強力な装置は、状況に応じてより強力ではない装置よりも速いまたは遅い動作を生じさせる異なるアルゴリズムを使用し、処理を実行できるだろう。
ビデオゲームコンソールの場合、動作は通常設定されたクロック周波数となり、ソフトウェアアプリケーションはこの設定された周波数での適切な操作について試験される。元のより強力ではないコンソールのために作成されたアプリケーションをより強力なコンソールで実行することが望ましいこともある。多くの場合、この能力が「下位互換性」と呼ばれる。係る場合、待ち時間または処理速度の差の有害な影響なしに、より強力な装置がより強力ではない装置のために作成されたアプリケーションを実行できることが望ましい。
本開示の態様が生じるのはこの状況の中である。
本開示の教示は、添付の図面と併せて以下の発明を実施するための形態を考慮することにより容易に理解できる。
本開示の態様に従って多様な動作周波数で構成されてよいシステムを示すブロック図である。 本開示の態様に係るシステムの動作周波数を決定する上で考えられるプロセスの流れの例を示す流れ図である。
以下の詳細な説明は説明のために多くの具体的な詳細を含んでいるが、当業者は以下の詳細に対する多くの変形形態及び改変形態は本発明の範囲内にあることを理解するだろう。したがって、以下に説明される本発明の例示的な実施形態は、主張されている本発明の一般性を失うことなく、且つ主張されている発明に制限を課すことなく明記される。
[はじめに]
より強力なコンソールでより強力ではないコンソールのために作成されたアプリケーションを実行するためにいくつかの方法が使用されてよい。一例では、より強力なコンソールは元のコンソールの周波数で実行するように設定されてよい。この周波数設定で、より強力なコンソールの動作は任意の瞬間に実行されている特定の処理に基づいて変わり、実行されているその特定の処理の待ち時間(及び他の)特性に起因し、より強力ではないコンソールよりも遅くまたは速くなることがある。より強力なコンソールの動作が元のコンソールよりも遅いとき、表示タイミング、音声ストリームアウト等によって課されるリアルタイム期限を守ることができないためにアプリケーションで多くのエラーが発生することがある。
別の例では、より強力なコンソールは元のコンソールよりもはるかに高い周波数で実行するように設定されてよい。動作の速度は実行されている処理の詳細に基づいて変わるが、動作の速度は一貫して元のコンソール上よりも速く、したがってリアルタイム期限を無事に守ることができる。しかしながら、アプリケーションの多くのエラーは係る高速動作の試験されていない結果のために生じることがある。例えば、作成者‐消費者モデルでは、データの消費者が最初に予測されるよりも高速で動作する場合、データの消費者は、データの作成者がデータを入手可能にする前にデータにアクセスできるように試みることがあり、同期機構が存在することがあっても、同期機構が元のコンソールで係る状況下で試験される可能性は低い。代わりに、データの作成者が最初に予測されるよりも高速で動作する場合、データの作成者は依然としてデータの消費者によって使用されているデータを上書きすることがある。
[実施形態]
本開示の実施形態は、コンソール(つまり、より強力ではないコンソール)の前のバージョンよりも高い周波数で実行するようにコンソール(つまり、より強力なコンソール)を設定するシステム及び方法を提供する。理想的には、より強力なコンソールの周波数は、より強力なコンソールの動作の速度が任意の瞬間に実行されている処理の詳細に基づいて変わるにつれ、元のコンソールの動作周波数よりもわずかに高く設定される。係る構成により、動作の速度は高速動作の意図しない結果をトリガするほど十分に大きくなく、動作の速度はリアルタイム期限を守ることができないほど低くもないため、エラーの発生率は最小限に抑えられてよい。
具体的には、より強力なコンソールは、待ち時間、スループット、または処理の他の態様の差の影響を無効にする必要なく2つの周波数、つまりより強力なコンソールで実行するために作成されたアプリケーション向けのより高い周波数、及び下位互換性のための元のコンソールと同じ周波数(つまり、元のコンソールのために作成されたアプリケーションを実行するとき)だけで操作できるだろう。しかしながら、待ち時間、スループット、及び処理の他の態様での差の影響を無効にする必要性のために、動作の周波数に対して細粒度制御を有することが望ましく、これにより、より強力なコンソールは元のコンソールよりもわずかに高い周波数で実行できる。正確な周波数設定値は、コンソールと多様なソフトウェアアプリケーションの両方を使用し、実験によって決定できるだろう、または周波数設定値はアプリケーション別に変わるだろう、または周波数設定値はアプリケーションの性能特性に応じてその時々で変わるだろう。
ソフトウェアアプリケーションは、例えばCPUもしくはGPUの動作のサイクルのカウンタ等のサイクルカウンタ、または代わりによりゆっくりした速度でインクリメントするカウンタにアクセスできてよく、例えばカウンタはCPUもしくはGPUが16のクロックサイクルを完了するたびにインクリメントしてよいことに留意されたい。CPU及びGPUの周波数は元のコンソールでは固定されているので、アプリケーションはこのタイミングの一貫性に依存することがある。例えば、ソフトウェアアプリケーションはCPUとGPUとの間のクロックの比率に関して想定を行ってよい。代わりに、アプリケーションは次の垂直帰線区間までの時間を計算し、次いですべてのレンダリングが垂直帰線消去の開始前に完了することを保証するために、実行されているレンダリング動作を修正するためにGPUサイクルカウンタを使用していることがある。
この同じソフトウェアプリケーションがより強力なコンソールでより高い周波数で実行されるとき、多くのエラーがサイクルカウンタのその使用から生じることがある。例えば、より高い周波数で、垂直帰線区間の間のサイクル数がより大きくなるにつれ、次の垂直帰線区間の開始前に利用可能な時間に関する計算が不正確になり、どのレンダリングが実行されるのかに関する不適切な決定及び潜在的に致命的なエラーにつながるだろう。
したがって、本開示の態様は真のサイクルカウンタをより強力ではないコンソールの周波数に一致する数を返すスプーフクロックと置換するシステム及び方法も提供する。サイクルカウンタを読み取ることが真のサイクルカウントを返すかどうか、または代わりにサイクルカウンタがスプーフクロックの値を返すかどうかは使用ケースに左右され、オペレーティングシステムによって構成されるだろう。本開示の実施形態は、2つのモードで動作するように構成されたシステムを提供する。第1のモードは、システムが通常の動作の周波数で動作する通常モードであり、第2のモードは、システムがシステムと他のシステム(例えば、該システムの旧バージョン)との間の互換性を想定して動作する互換モードである。システムは通常モードで活性化され、操作されるように構成される。しかしながら、もともとシステムのより旧いバージョン向けに設計されたアプリケーションまたはタイトルが実行されるとき、システムはロードされるアプリケーションに適切な動作周波数に切り替わるように構成されてよい。
ここで図1を参照すると、本開示の態様に従って多様な周波数で操作されるように構成されたコンピューティングシステム100の例示的な例が示されている。本開示の態様に従って、システム100は、埋め込みシステム、携帯電話、パーソナルコンピュータ、タブレットコンピュータ、携帯ゲーム機、ワークステーション、ゲームコンソール等であってよい。
システムは、以下に説明される、例えば図2の方法と共通の機能を有する方法を実行することによって、概して本開示の態様を実施するように構成されたプロセッサ及びメモリを含んでよい。示されている例では、プロセッサは、単一のチップ上に中央演算処理装置(CPU)120及びグラフィックスプロセッシングユニット(GPU)130を含むアクセラレーテッドプロセッシングユニット110である。代替実施態様では、CPU120及びGPU130は、別々のチップで別々のハードウェア構成要素として実装されてよい。また、システム100はメモリ140も含んでよい。メモリ140は、任意選択でCPU120及びGPU130がアクセス可能であるメインメモリユニットを含んでよく、メインメモリの部分は任意選択でグラフィックスメモリ142を含んでよい。CPU120及びGPU130は、それぞれ、例えばシングルコア、ツーコア、フォーコア、エイトコア、またはそれ以上等の1つまたは複数のプロセッサコアを含んでよい。CPU120及びGPU130は、データバス190を使用し、1つまたは複数のメモリユニットにアクセスするように構成されてよく、いくつかの実施態様では、システム100が2つ以上の異なるバスを含むことが役立つことがある。
メモリ140は、例えばRAM、DRAM等のアドレス可能なメモリを提供する集積回路の形を取る1つまたは複数のメモリユニットを含んでよい。メモリは、システムの動作周波数を決定するための実行時、図2の方法を実施するように構成された実行可能な命令を含む。さらに、グラフィックスメモリ142は、グラフィックリソース、グラフィックバッファ、及びグラフィックレンダリングパイプライン用の他のグラフィックデータを一時的に記憶してよい。グラフィックバッファは、例えば頂点パラメータ値を記憶するための1つまたは複数の頂点バッファ、ならびに頂点インデックスを記憶するための1つまたは複数の索引バッファを含んでよい。また、グラフィックバッファは、本開示の態様に従って計算されたピクセル値/サンプル値を保持するカラーバッファ145と深度バッファ146の両方を含んでよい1つまたは複数のレンダリングターゲット144を含んでもよい。特定の実施態様では、カラーバッファ145及び/または深度バッファ146は、ディスプレイでの提示向けの最終レンダリング画像を構成してよいディスプレイバッファ147に記憶される表示ピクセル色値の最終アレイを決定するために使用されてよい。特定の実施態様では、表示バッファはフロントバッファ及び1つまたは複数のバックバッファを含んでよく、GPU130はディスプレイ180での提示のためにディスプレイバッファ147のフロントバッファからグラフィックフレームをスキャンアウトするように構成されてよい。
CPU120は、オペレーティングシステム121または(ビデオゲーム等の)レンダリングされたグラフィックスを活用するアプリケーション122、及びアプリケーション122の状態に基づいてGPU130によって実装されるプログラムに対して描画コマンドまたは描画呼出しを発行するための対応するグラフィックAPI124を含んでよいCPUコードを実行するように構成されてよい。また、CPUコードは物理学シミュレーション及び他の機能を実装してもよい。CPU及びGPUクロック156、156は、CPU及びGPUがシステム100の標準クロックレートとは異なるクロックレートに基づいて命令を実行できるように構成されてよい。例として、及び制限としてではなく、アプリケーション122がシステム100のより強力ではないバージョン用である場合、クロック周波数156、156の値は、より強力ではないバージョンのクロック周波数、つまりシステム100でより高い待ち時間から生じる問題がある場合の周波数よりもわずかに高い周波数に一致してよい。
グラフィックスのレンダリングをサポートするために、GPU130は頂点シェーダー及びピクセルシェーダーを含んでよいシェーダー134を実行してよい。また、GPUは、例えばジオメトリシェーダー、モザイク細工シェーダー、コンピュータシェーダー等の他のシェーダープログラムも実行してよい。また、GPU130は、1つまたは複数のテクスチャマッピングユニット、及び/またはグラフィックスパイプラインの1つまたは複数の段階で操作を実施するように構成された他のハードウェアモジュールを含んでよい、特殊化されたハードウェアモジュール132を含んでもよい。シェーダー134及びハードウェアモジュール132は、最終ピクセル値がディスプレイに出力される前に、パイプラインの多様な段階でメモリ140及びバッファ144内のデータと相互作用してよい。APU110、CPU120、及びGPU130によって実行されるように構成されるシェーダー134及び/または他のプログラムは、非一過性コンピュータ読取り可能媒体での命令として記憶されてよい。一例として、及び実装によってではなく、GPUは、画面空間ピクセル用にプリミティブの複数のサンプルを採取し、サンプルの性質に従って1つまたは複数のピクセルシェーダーを呼び出すように構成されてよい、ラスタライザモジュール136を実装してよい。
システム100は、例えばバス190を介してシステムの他の構成部品と通信してよい、周知のサポート機能150を含んでもよい。係るサポート機能は、入出力(I/O)要素152、それぞれCPU120及びGPU130のために別々のクロック156、156、及びキャッシュ158を含んでよい1つまたは複数のクロックを含んでよいが、これに限定されない。システム100は、プログラム及び/またはデータを記憶するために、任意選択でディスクドライブ、CD−ROMドライブ、フラッシュメモリ、テープドライブ、ブルーレイドライブ等の大量記憶装置160を含んでよい。一例では、大量記憶装置160は、もともとより強力ではないシステムで実行するように設計されたレガシーアプリケーションを含むコンピュータ可読媒体162を受け入れてよい。代わりに、レガシーアプリケーション162(またはその部分)は、メモリ140にまたは部分的にキャッシュ158内に記憶されてよい。
また、装置100は、システム100とユーザーとの間の対話を容易にするためにユーザー及びユーザーインタフェースユニット170にレンダリングされたグラフィック182を提示するためにディスプレイユニット180を含んでもよい。ディスプレイユニット180は、フラットパネルディスプレイ、ブラウン管(CRT)画面、タッチスクリーン、ヘッドマウントディスプレイ(HMD)、またはテキスト、数字、グラフィック記号、または画像を表示できる他の装置の形をとってよい。ディスプレイ180は、本明細書に説明される多様な技法に従って処理されるレンダリンググラフィック182を表示してよい。ユーザーインタフェース170は、キーボード、マウス、ジョイスティック、ライトペン、ゲームコントローラ、タッチスクリーン、及び/またはグラフィックユーザーインタフェース(GUI)と併せて使用されてよい、他の装置等の1つまたは複数の周辺機器を含んでよい。特定の実施態様では、アプリケーション122の状態及びグラフィックスの基本的なコンテンツは、例えばアプリケーション122がビデオゲームを含むビデオゲーム実装で、少なくとも部分的にはユーザーインタフェース170を通したユーザー入力によって決定されてよい。
システム100は、装置がネットワーク上で他の装置と通信できるようにするためにネットワークインタフェース172を含んでもよい。ネットワークは、例えばローカルエリアネットワーク(LAN)、インターネット等の広域ネットワーク、ブルートゥース(登録商標)ネットワーク等のパーソナルエリアネットワーク、または他のタイプのネットワークであってよい。示され、説明される構成要素の内の多様な構成要素は、ハードウェア、ソフトウェア、もしくはファームウェア、またはこれらの内の2つ以上のなんらかの組合せで実装されてよい。
本発明の態様に従って、CPU120は、CPU動作の実行を同期させるためにサイクルカウンタCCを実装するハードウェア構成要素を含んでよい。同様に、GPU130は、GPU動作の実行を同期させるためにサイクルカウンタCCを実装するハードウェア構成要素を含んでよい。サイクルカウンタCC、CCは、対応する標準クロック156、156または対応するスプーフクロック125、135であってよいクロックからクロックサイクルを読み取る。本開示の態様に従って、システム100のカレントバージョンのために作成されたアプリケーションを実行するとき、サイクルカウンタCC、CCは、標準クロック156、156からサイクルを読み取るように構成されてよい。それに対して、システムのより強力ではないバージョン用に作成されたアプリケーションを実行するとき、サイクルカウンタCC、CCは、ハードウェアのより強力ではないバージョンの標準動作周波数に設定されてよいスプーフクロック125、135からサイクルを読み取るように構成されてよい。
図2は、オペレーティングシステム121または他のソフトウェア機構もしくはハードウェア機構によって実装されるように、本開示の態様にしたがってコンソールのために動作の周波数を決定する上で考えられるプロセスの流れの例を示す流れ図である。201で、動作は、アプリケーション122がシステム100で実行するためにロードされるときに、通常モードで開始してよい。第1に、ソフトウェアID、ソフトウェアチェックサム、ソフトウェアと関連付けられたメタデータ、メディアタイプ、または他の機構の調査によって、アプリケーション122が210で示されるように、このシステム向けに設計されているのか、それともシステムの前のバージョン向けに設計されているのかの判断が下される。ロードされたアプリケーションがシステム100を対象にしていると判断されるとき、システムは、220で示されるように通常の周波数で実行してよい。例えば、CPU120及びGPU130は、それぞれその通常の動作周波数で実行してよい。特に、サイクルカウンタCC、CCは、222で示されるように対応するクロック156及び156を読み取ってよい。
ロードされたアプリケーション122がシステム100のより強力ではないバージョン向けに設計されるとき、システムは230で示されるようにエラーがない動作のためのクロック周波数を決定してよい。一例として、及び制限としてではなく、クロック156及び156はより強力ではないシステムで対応するクロック周波数よりもわずかに高い周波数でCPU120及びGPU130を実行するために設定されてよい。代わりに、クロック周波数156及び156は、システム100の動作の速度が任意の瞬間に実行されている処理の詳細に基づいて変わるにつれ、処理が同じ速度でまたはより強力ではないシステムよりもわずかに速い速度で発生するようにリアルタイムで調整されてよい。クロック周波数は、CPU120及び/またはGPU130を用いる処理のより高い待ち時間、スループット、及び他の態様の影響を考慮に入れるように決定されてよい。スプーフクロック周波数125、135は、232に示されるように、より強力ではないシステムのCPU動作及びGPU動作の標準周波数に一致するように設定される。特に、サイクルカウンタCC、CCは、234に示されるように、対応するスプーフクロック125及び135を読み取るように構成される。
一例を挙げれば、システムの前のバージョンのGPUは、500MHzのGPUクロックで実行する可能性があり、カレントシステムは750MHzのGPUクロック156で実行する可能性がある。システムは、カレントシステム専用に設計されるアプリケーションがロードされるときに750MHzに設定される156と実行するだろう。この例では、サイクルカウンタCCは750MHz周波数に一致するだろう(つまり、サイクルカウンタCCは真のサイクルカウンタである)。レガシーアプリケーション(つまり、システムの前のバージョンのために設計されたアプリケーション)がロードされるとき、システム100は(例えば、505MHzに設定された156を有する)前のシステムの動作周波数よりもわずかに高い周波数で実行してよい。この下位互換モードでは、GPUスプーフクロック135は500MHzで実行するように構成され、サイクルカウンタCCはスプーフクロックから導出され、このようにしてレガシーアプリケーションに予想される値を提供するだろう。
カレントシステムは、待ち時間特性、スループット、または計算で利用されるアルゴリズムに関して前のシステムとは異なることがあるため、計算の結果は同じであることがあるが、コンソールの動作の速度は実行される動作の詳細に基づいて変わる。結果として、ロードされたアプリケーション122がレガシーアプリケーションであるとき、例えばより高いクロック周波数で実行し、処理エラーが発生しなくなるまで有効クロック周波数を徐々に削減することによって等、ロードされた特定のアプリケーションを試験することによって決定された値にクロック156、156を設定することが望ましいことがある。また、アプリケーションの性能特性に基づいてクロック156、156を動的に調整することが望ましいこともある。
本開示の態様は、プログラムがより強力なシステムで実行されるより強力ではないシステムのために作成されるときに生じる下位互換性にまつわる問題を克服する。より強力なシステムのシステムクロックレートを調整することは、装置間の差に対処する。真のクロックの代わりにスプーフクロックに読取り可能なサイクルカウンタを基づかせることは、レガシーアプリケーションコードの正しい動作を可能にする。
上記は本発明の好ましい実施形態の完全な説明であるが、多様な代替策、変更形態、及び均等物を使用することが可能である。したがって、本発明の範囲は上記の説明を参照して決定されるべきではなく、代わりに均等物のその完全な範囲とともに、添付の特許請求の範囲を参照して決定されるべきである。本明細書に説明される任意の特徴は、好ましいかどうかに関わりなく、本明細書に説明される任意の他の特徴と組み合わされてよい。以下の特許請求の範囲では、[不定冠詞「A」または「An」]は、特に明記される場合を除き、冠詞に続く品目の1つまたは複数の量を指す。添付の特許請求の範囲は、係る制限が句「のための手段」を使用する所与の請求項で明記される場合を除きミーンズプラスファンクション制限を含むとして解釈されるべきではない。

Claims (21)

  1. 方法であって、
    a)システムのカレントバージョンにロードされたアプリケーションがシステムの前記カレントバージョン向けであるのか、それとも前記システムのより強力ではないバージョン向けであるのかを判断することであって、前記システムの前記カレントバージョンが標準動作周波数を特徴とする、判断することと、
    b)前記アプリケーションがシステムのカレントバージョン向けに設計されているとき、前記システムの前記カレントバージョンの前記標準動作周波数でプロセッサ上で前記アプリケーションを実行すること、または
    c)前記アプリケーションが前記システムのより強力ではないバージョン向けに設計されているとき、第2の動作周波数で前記アプリケーションを実行することであって、前記システムの前記より強力ではないバージョンが異なる標準動作周波数を特徴とし、前記第2の動作周波数が前記システムの前記カレントバージョンの前記標準動作周波数未満であり、前記システムの前記より強力ではないバージョンの前記標準動作周波数よりも高い、前記実行することと、
    を含む、前記方法。
  2. a)が前記アプリケーションのソフトウェアID、前記アプリケーションのソフトウェアチェックサム、前記アプリケーションと関連付けられたメタデータ、または前記アプリケーションと関連付けられたメディアタイプを調べることを含む、請求項1に記載の方法。
  3. c)が前記システムの前記カレントバージョンと前記より強力ではないバージョンとの間の待ち時間もしくは待ち時間の特性の差、前記システムの前記カレントバージョンと前記より強力ではないバージョンとの間のスループットもしくは動作の速度の差、または計算で利用できるアルゴリズムに関して前記システムの前記カレントバージョンと前記より強力ではないバージョンとの間の差に基づいて前記第2の周波数を設定することを含む、請求項1に記載の方法。
  4. 前記システムの前記カレントバージョンが、前記システムの前記より強力ではないバージョンの前記標準動作周波数で、または動作中のエラーのトリガを回避するほど該標準動作周波数に近い速度でインクリメントするソフトウェア読取り可能サイクルカウンタを含む、請求項1に記載の方法。
  5. 前記システムの前記カレントバージョンがソフトウェア読取り可能サイクルカウンタを含み、c)は前記より強力ではないシステムの前記標準動作周波数で、または動作中のエラーのトリガを回避するほど該標準動作周波数に近い速度で前記サイクルカウンタをインクリメントすることを含み、b)は異なる速度で前記サイクルカウンタをインクリメントすることを含む、請求項1に記載の方法。
  6. c)が、異なるアプリケーションのための異なる値に前記第2の動作周波数を設定することを含む、請求項1に記載の方法。
  7. c)が、前記プロセッサ上で現在実行している前記アプリケーションの前記性能特性に基づいて前記第2の動作周波数を動的に設定することを含む、請求項1に記載の方法。
  8. c)が、前記システムの前記カレントバージョンと前記より強力ではないバージョンとの間の待ち時間または待ち時間特性の差を考慮に入れることによって前記第2の動作周波数を決定することをさらに含む、請求項1に記載の方法。
  9. c)が、前記システムの前記カレントバージョンと前記より強力ではないバージョンとの間のスループットの差を考慮に入れることによって前記第2の動作周波数を決定することをさらに含む、請求項1に記載の方法。
  10. c)が、計算で使用されるアルゴリズムに関して、前記システムの前記カレントバージョンと前記より強力ではないバージョンとの間の差を考慮に入れることによって前記第2の動作周波数を決定することをさらに含む、請求項1に記載の方法。
  11. システムであって、
    プロセッサと、
    メモリと、
    前記メモリに埋め込まれたプロセッサ実行可能な命令であって、前記命令が前記プロセッサによる実行時に方法を実装するように構成される、プロセッサ実行可能な命令と、
    を備え、前記方法が、
    a)システムのカレントバージョンにロードされたアプリケーションがシステムの前記カレントバージョン向けであるのか、それとも前記システムのより強力ではないバージョン向けであるのかを判断することであって、前記システムの前記カレントバージョンが標準動作周波数を特徴とする、前記判断することと、
    b)前記アプリケーションがシステムのカレントバージョン向けに設計されているとき、前記システムの前記カレントバージョンの前記標準動作周波数でプロセッサ上で前記アプリケーションを実行すること、または
    c)前記アプリケーションが前記システムのより強力ではないバージョン向けに設計されているとき、第2の動作周波数で前記アプリケーションを実行することであって、前記システムの前記より強力ではないバージョンが異なる標準動作周波数を特徴とし、前記第2の動作周波数が前記システムの前記カレントバージョンの前記標準動作周波数未満であり、前記システムの前記より強力ではないバージョンの前記標準動作周波数よりも高い、前記実行することと、
    を含む、前記システム。
  12. a)が、前記アプリケーションのソフトウェアID、前記アプリケーションのソフトウェアチェックサム、前記アプリケーションと関連付けられたメタデータ、または前記アプリケーションと関連付けられたメディアタイプを調べることを含む、請求項11に記載のシステム。
  13. c)が前記システムの前記カレントバージョンと前記より強力ではないバージョンとの間の待ち時間もしくは待ち時間の特性の差、前記システムの前記カレントバージョンと前記より強力ではないバージョンとの間のスループットもしくは動作の速度の差、または計算で利用できるアルゴリズムに関して前記システムの前記カレントバージョンと前記より強力ではないバージョンとの間の差に基づいて前記第2の周波数を設定することを含む、請求項11に記載のシステム。
  14. 前記システムの前記カレントバージョンが、前記システムの前記より強力ではないバージョンの前記標準動作周波数で、または動作中のエラーのトリガを回避するほど該標準動作周波数に近い速度でインクリメントするソフトウェア読取り可能サイクルカウンタを含む、請求項11に記載のシステム。
  15. 前記システムの前記カレントバージョンがソフトウェア読取り可能サイクルカウンタを含み、c)は前記より強力ではないシステムの前記標準動作周波数で、または動作中のエラーのトリガを回避するほど該標準動作周波数に近い速度で前記サイクルカウンタをインクリメントすることを含み、b)は異なる速度で前記サイクルカウンタをインクリメントすることを含む、請求項11に記載のシステム。
  16. c)が、異なるアプリケーションのための異なる値に前記第2の動作周波数を設定することを含む、請求項11に記載のシステム。
  17. c)が、前記プロセッサ上で現在実行している前記アプリケーションの前記性能特性に基づいて前記第2の動作周波数を動的に設定することを含む、請求項11に記載のシステム。
  18. c)が、前記システムの前記カレントバージョンと前記より強力ではないバージョンとの間の待ち時間または待ち時間特性の差を考慮に入れることによって前記第2の動作周波数を決定することをさらに含む、請求項11に記載のシステム。
  19. c)が、前記システムの前記カレントバージョンと前記より強力ではないバージョンとの間のスループットの差を考慮に入れることによって前記第2の動作周波数を決定することをさらに含む、請求項11に記載のシステム。
  20. c)が、計算で使用されるアルゴリズムに関して、前記システムの前記カレントバージョンと前記より強力ではないバージョンとの間の差を考慮に入れることによって前記第2の動作周波数を決定することをさらに含む、請求項11に記載のシステム。
  21. その中にコンピュータ可読命令を埋め込ませた非一過性のコンピュータ可読媒体であって、前記命令がプロセッサによる実行時に方法を実施するように構成され、前記方法が、
    a)システムのカレントバージョンにロードされたアプリケーションがシステムの前記カレントバージョン向けであるのか、それとも前記システムのより強力ではないバージョン向けであるのかを判断することであって、前記システムの前記カレントバージョンが標準動作周波数を特徴とする、前記判断することと、
    b)前記アプリケーションがシステムのカレントバージョン向けに設計されているとき、前記システムの前記カレントバージョンの前記標準動作周波数でプロセッサ上で前記アプリケーションを実行すること、または
    c)前記アプリケーションが前記システムのより強力ではないバージョン向けに設計されているとき、第2の動作周波数で前記アプリケーションを実行することであって、前記システムの前記より強力ではないバージョンが異なる標準動作周波数を特徴とし、前記第2の動作周波数が前記システムの前記カレントバージョンの前記標準動作周波数未満であり、前記システムの前記より強力ではないバージョンの前記標準動作周波数よりも高い、前記実行することと、
    を含む、前記非一過性のコンピュータ可読媒体。
JP2017543996A 2015-02-20 2016-02-17 スプーフクロック及び細粒度周波数制御を使用する下位互換性 Active JP6467062B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/627,988 2015-02-20
US14/627,988 US9760113B2 (en) 2015-02-20 2015-02-20 Backward compatibility through use of spoof clock and fine grain frequency control
PCT/US2016/018346 WO2016134071A1 (en) 2015-02-20 2016-02-17 Backward compatibility through use of spoof clock and fine grain frequency control

Publications (2)

Publication Number Publication Date
JP2018511859A true JP2018511859A (ja) 2018-04-26
JP6467062B2 JP6467062B2 (ja) 2019-02-06

Family

ID=56692494

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017543996A Active JP6467062B2 (ja) 2015-02-20 2016-02-17 スプーフクロック及び細粒度周波数制御を使用する下位互換性

Country Status (7)

Country Link
US (4) US9760113B2 (ja)
EP (2) EP3761186A1 (ja)
JP (1) JP6467062B2 (ja)
KR (1) KR101862180B1 (ja)
CN (2) CN113791667B (ja)
TW (4) TWI569128B (ja)
WO (1) WO2016134071A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9836816B2 (en) 2014-04-05 2017-12-05 Sony Interactive Entertainment America Llc Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
US11302054B2 (en) 2014-04-05 2022-04-12 Sony Interactive Entertainment Europe Limited Varying effective resolution by screen location by changing active color sample count within multiple render targets
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
US10068311B2 (en) 2014-04-05 2018-09-04 Sony Interacive Entertainment LLC Varying effective resolution by screen location by changing active color sample count within multiple render targets
US10783696B2 (en) 2014-04-05 2020-09-22 Sony Interactive Entertainment LLC Gradient adjustment for texture mapping to non-orthonormal grid
US9865074B2 (en) 2014-04-05 2018-01-09 Sony Interactive Entertainment America Llc Method for efficient construction of high resolution display buffers
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
US9652882B2 (en) 2014-04-05 2017-05-16 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
US9760113B2 (en) * 2015-02-20 2017-09-12 Sony Interactive Entertainment America Llc Backward compatibility through use of spoof clock and fine grain frequency control
US11403099B2 (en) 2015-07-27 2022-08-02 Sony Interactive Entertainment LLC Backward compatibility by restriction of hardware resources
US9892024B2 (en) 2015-11-02 2018-02-13 Sony Interactive Entertainment America Llc Backward compatibility testing of software in a mode that disrupts timing
CN116340022A (zh) 2016-01-22 2023-06-27 索尼互动娱乐股份有限公司 用于向后兼容性的欺骗cpuid
US10102094B2 (en) 2016-01-22 2018-10-16 Sony Interactive Entertainment Inc. Simulating legacy bus behavior for backwards compatibility
US10915333B2 (en) * 2016-03-30 2021-02-09 Sony Interactive Entertainment Inc. Deriving application-specific operating parameters for backwards compatiblity
US10409319B2 (en) * 2017-04-17 2019-09-10 Intel Corporation System, apparatus and method for providing a local clock signal for a memory array
WO2023113822A1 (en) * 2021-12-17 2023-06-22 Google Llc Loading state detection for gaming applications

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09101938A (ja) * 1995-10-06 1997-04-15 Fujitsu Ltd 並列処理計算機システムおよび同システム用構成装置並びに並列処理計算機システムにおけるクロック・チューニング方法

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4787032A (en) * 1986-09-08 1988-11-22 Compaq Computer Corporation Priority arbitration circuit for processor access
US5125088A (en) * 1986-09-08 1992-06-23 Compaq Computer Corporation Computer system speed control at continuous processor speed
KR100292005B1 (ko) * 1991-06-17 2001-09-17 리패치 컴퓨터회로가컴퓨터소프트웨어의갱신된버전과작용하도록하기위한방법및장치
JP3866781B2 (ja) * 1994-05-26 2007-01-10 セイコーエプソン株式会社 消費電力を効率化した情報処理装置
US5623647A (en) 1995-03-07 1997-04-22 Intel Corporation Application specific clock throttling
US6298448B1 (en) 1998-12-21 2001-10-02 Siemens Information And Communication Networks, Inc. Apparatus and method for automatic CPU speed control based on application-specific criteria
US6278338B1 (en) 2000-05-01 2001-08-21 Silicon Wave Inc. Crystal oscillator with peak detector amplitude control
US6681192B2 (en) * 2000-09-23 2004-01-20 Microsoft Corporation Systems and methods for fast timer calibration
US20020108064A1 (en) * 2001-02-07 2002-08-08 Patrick Nunally System and method for optimizing power/performance in network-centric microprocessor-controlled devices
US7046245B2 (en) 2001-10-10 2006-05-16 Sony Computer Entertainment America Inc. System and method for environment mapping
US7081893B2 (en) 2001-10-10 2006-07-25 Sony Computer Entertainment America Inc. System and method for point pushing to render polygons in environments with changing levels of detail
US7171606B2 (en) 2003-03-25 2007-01-30 Wegener Communications, Inc. Software download control system, apparatus and method
US7496776B2 (en) * 2003-08-21 2009-02-24 International Business Machines Corporation Power throttling method and apparatus
US20050076253A1 (en) * 2003-10-05 2005-04-07 De-Jen Lu Method of url-based power management and associated web browsing device
US7281145B2 (en) * 2004-06-24 2007-10-09 International Business Machiness Corporation Method for managing resources in a CPU by allocating a specified percentage of CPU resources to high priority applications
EP1803062A1 (en) 2004-09-20 2007-07-04 Sony Computer Entertainment Inc. Methods and apparatus for distributing software applications
JP2006099411A (ja) * 2004-09-29 2006-04-13 Oki Electric Ind Co Ltd ソフトウェアの使用制限方法
US8274518B2 (en) * 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
US7930693B2 (en) * 2005-04-04 2011-04-19 Cisco Technology, Inc. Method and system for accessing and launching a java based applet as a locally installed application
FI20065165L (fi) 2006-03-15 2007-09-16 Abb Oy Taajuusmuuttajan ohjain, oheislaite, menetelmä ja ohjelma
US8149242B2 (en) 2006-11-10 2012-04-03 Sony Computer Entertainment Inc. Graphics processing apparatus, graphics library module and graphics processing method
US9760146B2 (en) * 2007-01-08 2017-09-12 Imagination Technologies Limited Conditional activation and deactivation of a microprocessor
US7941684B2 (en) * 2008-02-28 2011-05-10 Advanced Micro Devices, Inc. Synchronization of processor time stamp counters to master counter
US20100164966A1 (en) * 2008-12-31 2010-07-01 Apple Inc. Timing controller for graphics system
US20100199118A1 (en) * 2009-02-03 2010-08-05 Atmel Corporation Microcontroller with compatibility mode
US8276015B2 (en) 2009-02-23 2012-09-25 International Business Machines Corporation Managing the power-performance range of an application
US8463884B2 (en) 2009-04-08 2013-06-11 Microsoft Corporation Synchronization of mobile device with application server
US8706652B2 (en) 2009-06-09 2014-04-22 Northwestern University System and method for controlling power consumption in a computer system based on user satisfaction
TWI460572B (zh) 2009-12-04 2014-11-11 Via Tech Inc 時脈產生器以及通用串列匯流排模組
TWI423017B (zh) * 2010-06-21 2014-01-11 Ind Tech Res Inst 效能調整裝置、具有此效能調整裝置的處理器及其效能調整方法
TWI417703B (zh) 2010-07-22 2013-12-01 Genesys Logic Inc 相容於通用序列匯流排協定之時脈同步方法
US8863114B2 (en) 2010-12-06 2014-10-14 Red Hat, Inc. Managing software packages using a version control system
US9891939B2 (en) 2011-03-03 2018-02-13 Microsoft Technology Licensing, Llc Application compatibility with library operating systems
US8707289B2 (en) * 2011-07-20 2014-04-22 Google Inc. Multiple application versions
US9196013B2 (en) * 2011-10-31 2015-11-24 Apple Inc. GPU workload prediction and management
US9928751B2 (en) * 2012-06-29 2018-03-27 Apple Inc. Generic media covers
KR20140030823A (ko) * 2012-09-04 2014-03-12 삼성전자주식회사 3차원 작업 부하를 이용하여 dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법
US9858095B2 (en) * 2012-09-17 2018-01-02 International Business Machines Corporation Dynamic virtual machine resizing in a cloud computing infrastructure
GB2508599A (en) * 2012-12-04 2014-06-11 Ibm Software version management when downgrading software
CN103118290B (zh) * 2013-02-28 2016-11-16 北京奇虎科技有限公司 程序安装适配性的检测方法、装置及系统
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
US10176621B2 (en) 2013-06-10 2019-01-08 Sony Interactive Entertainment Inc. Using compute shaders as front end for vertex shaders
US10102603B2 (en) 2013-06-10 2018-10-16 Sony Interactive Entertainment Inc. Scheme for compressing vertex shader output parameters
US10134102B2 (en) 2013-06-10 2018-11-20 Sony Interactive Entertainment Inc. Graphics processing hardware for using compute shaders as front end for vertex shaders
US10096079B2 (en) 2013-06-10 2018-10-09 Sony Interactive Entertainment Inc. Fragment shaders perform vertex shader computations
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
US9652882B2 (en) 2014-04-05 2017-05-16 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
JP6392370B2 (ja) 2014-04-05 2018-09-19 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー 様々なレンダリング及びラスタライゼーション・パラメータ下でビューポートを変化させるための、オブジェクトの効率的再レンダリング方法
US9836816B2 (en) 2014-04-05 2017-12-05 Sony Interactive Entertainment America Llc Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
US20160116954A1 (en) * 2014-10-28 2016-04-28 Linkedln Corporation Dynamic adjustment of cpu operating frequency
US9760113B2 (en) * 2015-02-20 2017-09-12 Sony Interactive Entertainment America Llc Backward compatibility through use of spoof clock and fine grain frequency control
US10235219B2 (en) 2015-07-27 2019-03-19 Sony Interactive Entertainment America Llc Backward compatibility by algorithm matching, disabling features, or throttling performance
US9892024B2 (en) 2015-11-02 2018-02-13 Sony Interactive Entertainment America Llc Backward compatibility testing of software in a mode that disrupts timing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09101938A (ja) * 1995-10-06 1997-04-15 Fujitsu Ltd 並列処理計算機システムおよび同システム用構成装置並びに並列処理計算機システムにおけるクロック・チューニング方法

Also Published As

Publication number Publication date
US11829197B2 (en) 2023-11-28
US20160246323A1 (en) 2016-08-25
JP6467062B2 (ja) 2019-02-06
TWI739112B (zh) 2021-09-11
TW201809950A (zh) 2018-03-16
EP3761186A1 (en) 2021-01-06
TWI669592B (zh) 2019-08-21
EP3259676A1 (en) 2017-12-27
EP3259676B1 (en) 2020-09-23
US11119528B2 (en) 2021-09-14
TWI615701B (zh) 2018-02-21
EP3259676A4 (en) 2018-07-25
TW201640250A (zh) 2016-11-16
US10534395B2 (en) 2020-01-14
CN113791667B (zh) 2022-10-21
US20200150712A1 (en) 2020-05-14
CN113791667A (zh) 2021-12-14
WO2016134071A1 (en) 2016-08-25
TWI569128B (zh) 2017-02-01
CN107251004A (zh) 2017-10-13
TW201723723A (zh) 2017-07-01
US20180004243A1 (en) 2018-01-04
KR20170113676A (ko) 2017-10-12
KR101862180B1 (ko) 2018-05-29
TW201937332A (zh) 2019-09-16
US9760113B2 (en) 2017-09-12
US20220004219A1 (en) 2022-01-06
CN107251004B (zh) 2021-09-07

Similar Documents

Publication Publication Date Title
JP6467062B2 (ja) スプーフクロック及び細粒度周波数制御を使用する下位互換性
JP6073533B1 (ja) タイルベースのアーキテクチャ上での最適化されたマルチパスレンダリング
JP6595101B2 (ja) 後期深度試験と保守的深度試験との間の動的切替え
US20130063473A1 (en) System and method for layering using tile-based renderers
US9165337B2 (en) Command instruction management
WO2013012524A1 (en) Synchronization of shader operation
CN110832457A (zh) 用于虚拟化加速处理装置的提前虚拟化上下文切换
KR102521654B1 (ko) 컴퓨팅 시스템 및 컴퓨팅 시스템에서 타일-기반 렌더링의 그래픽스 파이프라인을 수행하는 방법
US8963932B1 (en) Method and apparatus for visualizing component workloads in a unified shader GPU architecture
TWI474280B (zh) 增進繪圖處理單元之總處理量的方法與系統
WO2022047136A1 (en) Shader core instruction to invoke depth culling
US9159160B1 (en) Texture sharing between application modules

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180410

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181025

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20181106

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190110

R150 Certificate of patent or registration of utility model

Ref document number: 6467062

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