JP2011508328A - データ・プロセッサのパフォーマンス予測 - Google Patents

データ・プロセッサのパフォーマンス予測 Download PDF

Info

Publication number
JP2011508328A
JP2011508328A JP2010540179A JP2010540179A JP2011508328A JP 2011508328 A JP2011508328 A JP 2011508328A JP 2010540179 A JP2010540179 A JP 2010540179A JP 2010540179 A JP2010540179 A JP 2010540179A JP 2011508328 A JP2011508328 A JP 2011508328A
Authority
JP
Japan
Prior art keywords
task
performance
data processor
period
power
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
JP2010540179A
Other languages
English (en)
Other versions
JP5312478B2 (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.)
NXP USA Inc
Original Assignee
NXP USA Inc
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 NXP USA Inc filed Critical NXP USA Inc
Publication of JP2011508328A publication Critical patent/JP2011508328A/ja
Application granted granted Critical
Publication of JP5312478B2 publication Critical patent/JP5312478B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Power Sources (AREA)

Abstract

アプリケーション・プログラム(106)のタスクを実行するオペレーティング・システム(104)を有するデータ・プロセッサ(102)と、前記データ・プロセッサによる前記タスクの実行のパラメータおよびモードを制御する電力およびパフォーマンス・コントローラ(110、112、118)とを使ったデータ処理方法。前記電力およびパフォーマンス・コントローラは、前記タスクの非アクティブ期間を考慮に入れて前記タスクのための前記データ・プロセッサ(102)の要求されるパフォーマンスの推定を生成し、前記推定に応じて前記データ・プロセッサのパフォーマンスおよび電力消費を調整するパフォーマンス予測器(112)を含む。前記パフォーマンス予測器(112、124)は、前記タスクのそれぞれについて:
・前記オペレーティング・システム(104)がその同じタスクの処理を続けるために利用可能である前記タスクの利用可能な非アクティブ期間と、
・前記オペレーティング・システム(104)がその同じタスクの処理を続けるために利用可能でない前記タスクの利用不能な非アクティブ期間との間の区別をする。タスクの実行において締め切りを逃すのが少なくなり、サービス品質における実質的な改善が得られる。

Description

本発明は、データ処理装置、データ処理方法およびコンピュータ・プログラム・プロダクトに関する。
電力節減は絶えざる関心事であり、特に充電式バッテリーのような内部エネルギー源をもつ携帯機器においてそうである。データ・プロセッサの電力消費は、プロセッサが動作中(たとえば構成回路スイッチングあり)の動的電力およびプロセッサが動作していないが電源を受けている間(たとえばスイッチングなしの定常状態またはトランジスタ・オフ状態)の静的電力に大別される。静的またはリーク電力散逸は、回路が動作しているときにも起こるが、今日の技術では、これは動的電力散逸に比べれば小さい。
電力浪費の源に対処するべくさまざまな電力節減技術が開発されてきた。多くは、より小さなシリコン・プロセス幾何、能動井戸バイアス(active well biasing)および自動アイドル検出回路といった完全にハードウェアの解決策である。他の技術は、データ・プロセッサの動作パラメータと電力消費との妥協を図る。一つのそのような技術は、動的電力管理(DPM: Dynamic power management)の名のもとに一般に知られている。DPMは、動作要求を満たすよう必要とされる最小限のパフォーマンスはもちながら、電力浪費を最小にするためにリアルタイムでそのハードウェア・モジュールの電力状態を設定するシステムを記述する。DPMは、動的電圧および周波数スケーリング(DVFS: dynamic voltage and frequency scaling)および動的プロセスおよび温度補償(DPTC: dynamic process and temperature compensation)といった、動作モードを動的に制御する技術ならびに低電力アイドル・モード(プロセッサが電力を受けているがクロックを受けていないドーズ(doze)およびプロセッサのいくつかのモジュールが動作電力を供給されないスリープ(sleep)など)を制御するためのアイドル時間予測を含む。
これらの技術について、ここでより詳細に見ておく。データ・プロセッサにおける実行中に、アプリケーション・プログラムおよび他のシステム・ソフトウェアがモニタリングされる。これらのアプリケーションのいくつかは、到来するパフォーマンス・電力ニーズを同定できる(「電力アウェア(power aware)」なソフトウェア)が、他の多くのアプリケーションはできない。到来するパフォーマンス・電力ニーズを知ることは、データ・プロセッサのオペレーティング・システム内のソフトウェア・ドライバおよび電力ハンドラを使ってハードウェア電力節減機構を駆動する電力マネージャを制御するために使用できる。
一つの動的電力節減技法は、論理回路がアイドリングしているときにその論理回路へのクロックを遅くするまたは無効にすることである。クロック・ゲーティング(clock gating)またはクロック・フリージング(clock freezing)は、クロックがゲート・オフされるレジスタ中のみならず、レジスタ信号がもはや伝搬されなくなるのでそれらのレジスタに接続された組み合わせ論理回路中でも電力を節減する。クロック・ゲーティングはオン・オフするのが非常に高速なので、クロック・ゲーティングが正しいタイミングで行われていれば、そのような回路を使うソフトウェアは影響されない。静的またはリーク電力散逸はより大胆な方策を必要とする。電力ゲーティング(power gating)と呼ばれる一つの解決策は、装置またはサブコンポーネントの電源をオフにすることである。電力ゲーティングは、動的電力およびリーク電力の両方を低減させ、オンチップでローカルに実装することも、外部的に電源ユニットにおいて実装することもできる。
もう一つの電力節減技術は、パフォーマンスが要求されない時(アイドリング)または可変パフォーマンスが要求されるときに回路への供給電圧を変えることである。アイドル・モードの間、装置またはサブコンポーネントがアクティブ状態から低パフォーマンス状態に遷移すると、ハードウェアはより高い電圧からより低い電圧に自動的に切り替わることができる。一例は、スリープまたはストップ・モードにはいると動作電圧が自動的に低下させられるプロセッサ・コア設計である。このモードではコアはクロックされないが、それでも定常電流リークは被る。コアは命令や他の機能を実行する必要がないので、動作電圧は、内部状態データが正しく保持されることを保証するのにちょうど十分な値にまで下げることができる。これは時に、ストップ・モード電圧スケーリング(stop mode voltage scaling)と呼ばれる。
可変パフォーマンスが必要とされる非アイドリング状況は、動作周波数、動作電圧またはその両者を変えることによって対処される。動的周波数スケーリング(Dynamic Frequency Scaling)は、集積回路における動的電力消費はほぼ動作周波数に比例するという観察に依拠する。したがって、要求される処理パフォーマンスを満たす最低の値にまでプロセッサのクロック周波数を下げることは意味がある。これは、ソフトウェアはより低速で走るものの、受け容れ可能な余裕をもってそのリアルタイム締め切りは満たすということを意味する。これは動的に行われ、どの周波数設定が受け容れ可能かを決定するよう適応された電力管理ソフトウェア(power management software)を必要とする。動作電圧もスケーリングされれば、よりよい電力節減が達成できる。電力は電圧の二乗で変化するので、電圧スケーリングを使えば二乗則の電力節減が潜在的には可能である。電圧スケーリングおよび周波数スケーリングの両方が使われる場合、動的電圧および周波数スケーリング(DVFS)と呼ばれるその組み合わせは、動作電圧の三乗にほぼ比例する電力節減を与えることができる。
これらの二乗則および三乗則の電力節減は、電圧制御回路の構成および効率のみならず、電圧/周波数設定を設定するために使われる予測ソフトウェアの効率にも依存する。所与の集積回路設計について、動作電圧は最大使用可能動作周波数を決定する。電圧は(よって周波数も)、最小限の電力浪費に対して、要求されるパフォーマンスの兼ね合いをつけるようスケーリングされる。電圧を上下にスケーリングさせる(よって消費電力を増減する)とき、動作周波数もスケーリングされ、それとともに装置の利用可能なパフォーマンスも上下する。利用可能なパフォーマンスは、設計の動作許容値内に留まるよう制御されるべきである。DVFS技術は、変動するが継続するソフトウェア作業負荷に対処するものである。
実行モード(run modes)およびアイドル・モード(idle modes)の両方について、プロセッサ速度‐電圧レベルのようなシステム・ハードウェアのパフォーマンス電力状態を動的に制御するために、パフォーマンス予測およびパフォーマンス設定アルゴリズムが利用可能である。プロセッサ上の短期ソフトウェア負荷を予測することに基づいてプロセッサの動作周波数および電圧を設定する、DVFSベースのプロセッサとともに使うアルゴリズムが存在する。このクラスの一例のアルゴリズムは、OSにおいて走っている各タスクの最近のソフトウェア負荷(すなわち、メモリにロードされているプログラム命令の集合)の履歴を追跡し、それを外挿して次にくる期間における要求されるパフォーマンスの予測を導出する。この技法は、タスクの最近の過去の作業負荷と近い将来の作業負荷の間にそこそこの相関を想定している。OSカーネルによってタスク・ステータス情報が供給される。このアルゴリズムは、(全タスクについての)総合作業負荷を予測するために作業負荷および使われていないアイドリング時間の推定を維持する。この規格化されたMCU処理レベルは、付随するソフトウェアによって、使用される個別のDVFS機構に必要とされる関連する周波数および電圧設定に変換される。このアルゴリズムは、変化するソフトウェア負荷に応答して新たな予測を継続的に再計算し、供給する。原理的には、このアルゴリズムは、各OSタスクについて個々の締め切りをちょうど満たす要求されるプロセッサ・パフォーマンスを予測する。このアルゴリズムは、作業負荷があまり急速に変化しないOSタスクについてはそこそこよく機能する。
この種のアルゴリズムによって達成される実際のパフォーマンスおよび電力節減は、理論的計算に比べると満足いくものではなかった。本発明の一つの目的は、データ・プロセッサの達成可能なパフォーマンスおよび電力節減を改善することである。
本発明は、付属の請求項記載のようなデータ処理装置、データ処理方法および該データ処理方法を実行するためのコンピュータ・プログラムを提供する。
例として与えられる、本発明のある実施形態に基づく、動的電圧および周波数スケーリング(「DVFS」)を用いるデータ処理装置の一例の概略図である。 既知のDVFSプロセスにおけるパフォーマンス予測のタイミング図の例である。 図1のデータ処理装置におけるDVFSプロセスにおけるパフォーマンス予測のタイミング図の例である。 第一のタスクについての図3のDVFSプロセスのフローチャートである。 第二のタスクについての図3のDVFSプロセスのフローチャートである。
図面の図1は、例として与えられる、本発明のある実施形態に基づく、動的電圧および周波数スケーリング(「DVFS」)を用いるデータ処理装置100を示している。この例において、本発明は、ビデオ・プレーヤー・アプリケーションに適用されるものとして例解されるが、本発明が他の多くのアプリケーションにも適用可能であることは理解されるであろう。
装置100は、オペレーティング・システム(「OS」)104、ビデオ・プレーヤー・アプリケーション・プログラム106、他のアプリケーションを実行するための他のシステム・ソフトウェア108およびプロセッサの動作周波数および電圧をCPU102上での短期ソフトウェア負荷の予測に基づいて設定するDVFSプロセッサ110を含む中央処理装置(「CPU」)102を有する。
本装置はまた、重要な締め切りの前に完了されるべき各タスクについて要求されるパフォーマンスを予測するパフォーマンス予測器112をも含む。該パフォーマンス予測器は、OS104からビデオ・プレーヤー・アプリケーション・プログラムのタスク実行時間に関する入力114を受け取る。パフォーマンス予測器112は、各タスクについてパフォーマンス・レベル出力信号116を生成し、これをDVFSハードウェア118に与える。DVFSハードウェア118は、選択された電圧およびクロック周波数レベルを定義する信号120および122を供給する。これらの信号をDVFSプロセッサ110が各タスクについてCPUに加える。
パフォーマンス予測器112は、OSにおいて走っている各タスクの最近のソフトウェア負荷の履歴を追跡し、それを外挿して次にくる期間における要求されるパフォーマンスの予測を導出するアルゴリズムを使って、各タスクについて、CPUに対する短期ソフトウェア作業負荷を予測する。本発明のこの実施形態では、パフォーマンス予測器112は、ブロッキングおよび非ブロッキングのオペレーティング・システム・アクセス・コールの間の区別をするよう構成される。
データ処理装置における入力および出力動作は、データの処理に比べてきわめて遅いことがありうる。たとえば、実行に10ミリ秒かかるフェッチ(fetch)動作の間に、1ギガヘルツでクロックされるプロセッサは1000万命令処理サイクルを実行することだってできる。
タスク「A」についての入力および出力動作(「I/O」)への簡単なアプローチは、アクセスを開始し、それが完了するのを待ってから、タスクAまたさらには他のタスクを処理することである。そのようなアプローチ(同期I/OまたはブロッキングI/Oと呼ばれる)は、ある型のI/Oについては必要であるが、I/Oが進行中はプログラムの進行がブロックされ、システム資源はアイドルになる。プログラムが多くのI/O動作を行う場合、これは、プロセッサがその時間のほとんどすべてを、I/O動作が完了するのを待ってアイドルなまま過ごすことがありうるということを意味する。
処理タスクによっては、あるタスクAについてI/Oを開始し、次いでそのI/Oが完了していることを要求しない処理、特に他のタスクの処理を実行することが可能である。これら他のタスクについて、このI/Oは非同期的または非ブロッキングI/Oである。I/Oが完了していることに実際に依存するタスクAのような任意のタスク(これは、入力値を使用することおよび書き込み動作が完了していることを保証することを必要とするクリティカルな動作の両方を含む)は、やはりI/O動作が完了するのを待たねばならず、よってやはりブロックされるが、このI/O動作に対する依存性をもたない他の処理タスクは継続できる。
タスク「A」の非同期的入出力または非ブロッキング入出力とは、タスクA自身はそのI/Oの完了を待たねばならないが、その入出力伝送が終わる前に他のタスクを処理することをオペレーティング・システムに許すような入出力処理の形である。他方、そのアプリケーションがタスクAのためのOS資源(CPU)をコールすると、そのコールがそのアプリケーションが他のタスクのためにOSを解放することを強制するのでない限り、非ブロッキングI/Oコールの期間中の他のタスクの実行についてでさえもOSをブロックすることがありうる。前記のような場合には、タスクA自身がOS資源の欠如によってブロックされる。
必要とされるプロセッサ・パフォーマンスを計算するためにアイドル期間を考慮に入れることにより、DVFSコントローラは、締め切りおよびその他の要求を満たすのにちょうど十分なようにパフォーマンスを調整できる。図1に示される本発明の実施形態におけるパフォーマンス予測器112は、所与のタスクについて:
・OSコールが中断されている間、たとえば少なくともタスクAがI/Oアクセスの完了を要求する場合の待ち期間の間、タスクA以外のタスクは処理され続けることができる非ブロッキング・オペレーティング・システム・アクセス・コールに関係する非アクティブ期間と、
・タスクAがI/Oアクセスの完了を要求する場合の待ち期間の間、タスクAがOSを解放せず、当該コール後は当該オペレーティング・システム・アクセスの完了まで、何のタスクも処理できないブロッキング・オペレーティング・システム・アクセス・コールとの間の区別をするよう構成される。
図1の装置の電力およびパフォーマンス・コントローラ機能は、各タスクについてのパフォーマンス予測器112のアイドル時間計算を、オペレーティング・システム・アクセスがそのタスクに利用可能であり(「ブロックされていない」)よって他のタスクには拒否されているそのタスクの非アクティブ期間と、オペレーティング・システム・アクセスがそのタスクに利用可能でなく(「ブロックされている」)よって他のタスクに利用可能であるそのタスクの非アクティブ期間との間の区別をするよう修正するアイドル時間補償器を含む。CPUが非アクティブであったがタスクAに専用でありよって他のタスクにとってはブロックされていた場合のタスクAの非アクティブ期間については、CPUは、処理タスクAのそのアクティブ期間の間、より低速で走り、そうでなければアイドルとなる非アクティブ期間の一部を使用することができる。逆に、CPUが非アクティブであったが他のタスクによってブロックされておりよってタスクAにとって利用不能であった場合のタスクAの非アクティブ期間については、CPUはそのアクティブ期間の間、より低速で走ることができたと想定することは誤りである。これは、CPUは、そのアクティブ期間の間、いずれにせよより低速で走って非アクティブ期間の一部をタスクAのために使うことはできなかったからである。逆に、タスクAにとってブロックされている非アクティブ期間については、CPU102が他の何らかのタスクについて利用可能であった間にそれらの他のタスクを処理しなかった場合には、それらの他のタスクのそれぞれの待ち期間は、可能なパフォーマンス低下および電力消費節減を計算する際、それらの他のタスクについて正しく考慮に入れられることができる(だがタスクAについては考慮に入れない)。
具体的には、アイドル時間補償器124は、OS104から、信号126、128および130を受信する。これらの信号はそれぞれ、現在のアプリケーション・タスクのOSアクセス・コールが他のタスクについてCPUの使用についてブロッキングであるか非ブロッキングであるか、現在のタスクに関連付けられた未補正の(「生の」)アイドル時間および現在のタスクに関する他の情報を同定する。次いでアイドル時間補償器124は、各タスク134についての生のアイドル時間から、CPUがいずれにしろその同じタスクを実行するために利用不能であった非アクティブ時間があればそれを減算し、134で同定される各タスクについてこうして修正されたアイドル時間計算を定義する出力132をパフォーマンス予測器112に与える。
より詳細には、本発明のある実施形態のこの例では、以下のステップを使ってパフォーマンス推定が導出される。本発明のそのような実施形態を実装するために他のアルゴリズムが使用されることもできることは理解されるであろう。
まず、最近の過去の期間(たとえばOSにもよるが100ms)の間の一連の時間スロットi=1ないしNの間のタスクのフルスピード等価作業負荷(full-speed equivalent workload)Workfse
Figure 2011508328
を使って計算される。ここで、tiは時間スロットiの長さであり、piはその時間スロットの間のCPUパフォーマンス・レート(performance rate)である。
次に、より長い期間にわたる作業負荷の減衰平均(decaying average)が次式を使って計算される:
Figure 2011508328
ここで、kは重み付け因子である。
次いで、要求される締め切りに行くための時間の減衰平均が次式を使って計算される:
Figure 2011508328
ここで、Idlefseは、タスクについてのアイドル時間を、そのタスクについてCPUが利用不能であったアイドル時間を減算することによって補償したものである。
最後に、計算された締め切り時間をちょうど満たすのに必要とされるパフォーマンスの割合の調整が、次式
Figure 2011508328
を使って計算される。;
アイドル時間補償器124の効果の図解が、アイドル時間補償器124なしのDVFSシステムのはたらきを示す図2と、アイドル時間補償器124のある図3に示されている。
図2および図3において、ビデオ・アプリケーション・プログラムは、タスクAについての入力バッファ(図示せず)から再生されるべきn個の時間スロット200のフレームを要求するものとして示されている。各フレームのあとには、それらのフレームの処理が同期信号を待ちCPUが非アクティブでありうるスロット202が続く。図面に示した例では、タスクA以外のタスクはOSによるサービスをコールしない。しかしながら、同期信号を待つ間、タスクAについての次の同期信号がCPUにおける処理を必要とする次のスロット200より十分前に他のタスクがCPUによって完了されるのであれば、タスクA以外のタスクを実行するためにOSが利用可能となる。
CPU102は、アクティブ期間208と非アクティブ期間210の間を交互に経る。その間に現在のタスクが完了され、他のタスクがどれもOSによるサービスをコールしない場合にはCPUはアイドルにされる。ビデオ・アプリケーション・プログラム104によるビデオ・フレームの処理は、入力バッファが空になるまでこのようにして続く。その後の非アクティブ期間204および206の間、ビデオ・アプリケーション・プログラムは、ローカルな入力バッファにすでに存在するのでない新しいフレーム・データのフェッチを要求するOSへのシステム・コールをし、I/Oインターフェース(たとえばネットワーク・ドライバまたはディスク・ドライバ)がそのデータを入力からフェッチしてバッファに入れる間、OSはタスクAを処理するために利用可能ではない。この遅延された完了は、その意味において非同期動作である。OS104は、コールしたビデオ・プログラムに制御を返す。そのビデオ・プログラムが現在のフレームにおけるその作業を完了すると、スロット200の終わりにOSに制御を譲る。スロット200はアクティブである(たとえば実行モードにある)DVFSプロセッサ110に対応する。タスクAは、OSがタスクAのためのデータを処理するのに利用可能でない非アクティブ期間204および206の間、CPUを使用できない。タスクAは、その間に他のタスクがCPUをブロックしていなければ、バッファ内にデータが利用可能になるとすぐ再開できる。
アイドル時間補償器124がないときのパフォーマンス予測器112、電圧および周波数設定ハードウェア118およびDVFSプロセッサ110を含むパフォーマンス・コントローラの動作が図2に示されている。時間に対する周波数(および/または供給電圧)のグラフ212によって示されるように、最初、CPUは通常速度で、フル・クロック周波数をもって走る。2非アクティブ期間210後、要求されるパフォーマンスの計算は、パフォーマンス・コントローラに、214に示されるようにCPU102を減速させる。これにより、CPUのアクティブ期間はより長い時間にわたってより低速で走り、対応してエネルギーが節減され、アイドル期間の継続時間が短縮される。タスクAのアクティブ期間は、それでも、216で示されるスロット締め切りの前に満足いくように完了される。
しかしながら、入力バッファが空であり、204および206において、プロセスが入力からバッファへのさらなるデータのフェッチをコールするとき、パフォーマンス・コントローラは、218で示されるようにCPUパフォーマンスのスピードを再び低下させる。要求されるパフォーマンスを計算する際に、データがバッファ中にフェッチされている間CPUがタスクAを処理できないアイドル期間220も含めて、現在のタスクAのすべてのOS非アクティブ期間が考慮に入れられるからである。実際のところ、このパフォーマンス・コントローラは、タスクが再開するためにデータが利用可能になってからタスクを適時に完了するために要求されるパフォーマンスを過小評価してしまう。222においてデータが利用可能であり、CPU102がアクティブなスロットを再開するとき、アクティブ期間の継続時間は引き延ばされすぎ、アクティブ期間を完了するための締め切り224を行きすぎてしまう。実際上は、そのように締め切りを逃すことは、システムの最適でない振る舞い、特に安定性の欠如および不正確な予測につながる。これは、ビデオ・プレーヤー・アプリケーションにおけるたとえば欠けたビデオ・フレームのような劣化したサービス品質に帰結する。そのような最適でない振る舞いは、比較的安定した作業負荷条件にあるプロセスの典型的なモデル化からや、作業負荷およびパフォーマンス予測器の簡単な非OS試験からは明白でない。
ここで図3に目を向けると、アイドル時間補償器124をもつDVFSシステムのはたらきが示されており、類似の要素は図2と同じ参照符号によって指示されている。214において、ブロッキングするアイドル期間202のため、CPUパフォーマンスのスピードの同じ低下が起こるが、アイドル時間補償器124が生のアイドル時間指示128を補正し、修正されたアイドル時間指示は今やタスクAに利用可能でないアイドル時間220を無視するようになる。結果として、パフォーマンス・コントローラは、226においてアイドル期間220に応答してCPU102のスピードのさらなる低下をさせないという正しい動作をし、CPUはその後のアクティブ期間228の間、不変のスピードで走り、それにより、締め切り224前に完了される。そのような実際的な応用でのCPUの実際の使用においては、締め切りを逃すことを回避することにおいて、実質的な改善が得られることが見出される。よって、モデル化および試験が必ずしも改善を明らかにするのでなくても、実際的な使用の場合においてシステム安定性およびサービス品質が大幅に改善される。
図4および図5は、ビデオ・プレーヤー・プログラム106、OS104のカーネルならびにDVFSプロセッサ110、パフォーマンス予測器112、DVFSハードウェア118およびアイドル時間補償器124を含む諸パフォーマンス・コントローラ・モジュールの間の処理ステップの序列の一例を示している。図4は、図2および図3で214において、図3で226において示される有効な電圧/周波数計算の場合のプロセスを示している。図5は、図2で218において示される有効でない電圧/周波数計算の場合のプロセスを示している。
まず図4を参照すると、図示したプロセス400は、402でフレームをデコードし、404でデコードされたフレームをディスプレイに送ることをもって始まる。これは図2および図3の再生nのステップ200に対応する。フレームの終わりに、ビデオ・プレーヤー・アプリケーションは、406で同期ストリームを待ってスリープする。OSカーネル104におけるスケジューラは、408で、実行待ち行列に実行すべきプロセスがないことに留意すること(noting)によってスリープ中のビデオ・プレーヤー・アプリケーションに応答し、410において、アイドル期間をスケジュールして、エネルギー消費を節約する。これは、図2および図3のアイドル・ステップ202に対応する。アイドル時間i1が412において同定され、アイドル時間補償器124に送られる。アイドル時間補償器124は414において、そのアイドル時間が、OSがタスクを処理するために利用可能であった時間であり、タスクAがI/Oを待っている時間ではないことを検証し、416でOSカーネル104内のスケジューラに信号を送る。本発明のこの実施形態では、アイドル時間補償器は、OSが現在のタスクAのために利用可能であった場合の利用可能な非アクティブ期間とそうでなかった利用可能でない非アクティブ期間との間の区別をするときに、その期間がなぜ非アクティブであるかの理由を考慮に入れる。
スケジューラは、418で次の実行可能タスクを取り上げ、このタスクをアイドル時間補償器124を通じてパフォーマンス予測器112に対して同定する。420において、パフォーマンス予測器112は、ステップ414からのアイドル期間についての情報i1を諸タスクについての減衰平均アイドル時間蓄積器中に含め、そのタスクについての適切な周波数/電圧を計算し、422において、対応するタスク実行時間およびアイドル時間を定義する。すると、ビデオ・プレーヤー・アプリケーションはOSに、424において次のフレームのデコードし、426においてデコードされたフレームをディスプレイに送ることを開始するよう指示できる。
図5に示されるプロセスにおいて、図示されたプロセスは、ビデオ・プレーヤー・アプリケーション106が、入力バッファからの全フレームを処理し終わって入力バッファが空になり、プレーヤーがネットワーク・ドライバに新たなフレームをフェッチすることを求めなければならない状態502に到達することをもって始まる。これは、図2および図3の待ちステップ204および206の前の再生ステップの終わりに対応する。506において、OSカーネル104は、タスクAをネットワーク・ドライバのための待ち行列中に入れることによって、この状況に応答する。508では、この例では、OSカーネル104はこの時点では実行すべき他のタスクは持たず、510において、CPUのためにアイドル期間i2をスケジュールして、エネルギーの消費を節約する。これは図2および図3のアイドル・ステップ204および206に対応する。アイドル時間i2は他のタスクのために活用可能であろうが、他のタスクを処理するかどうかによらず、OSはタスクAのためには利用可能ではない。512においてアイドル時間i2が同定され、アイドル時間補償器124に送られる。514においてアイドル時間補償器124が、そのアイドル時間がタスクAのために利用可能であることを検証し、516において、タスクAのためのデータが準備できたときに、OSカーネル104内のスケジューラに信号を送る。これは、518のスケジューラが520において次の実行可能なタスクを取り上げ、このタスクをアイドル時間補償器124を通じてパフォーマンス予測器112に対して同定することをトリガーする。パフォーマンス予測器112は、522で、タスクAおよび他のタスクについて適切な周波数/電圧を計算し、ステップ514からの情報に起因するタスクAのための減衰平均アイドル時間蓄積器からのアイドル期間i2は消去するが、ステップ514からのアイドル時間i2についての情報は他のタスクのための減衰平均アイドル時間蓄積器中に含める。パフォーマンス予測器112は、524において、対応するタスク実行時間およびアイドル時間を定義する。このデータは、ビデオ・プレーヤー・アプリケーションに渡され、ビデオ・プレーヤー・アプリケーションは526において次のフレームをデコードし、528においてデコードされたフレームをディスプレイに送ることを開始する。
図面に示されている本発明の実施形態は、そうした実施形態の特徴を例解する簡単なプロセスである。本発明のこれらの実施形態が、高度なランタイム・パフォーマンス・アルゴリズムに適用可能であり、たとえば複数の並行予測器、ポリシーおよび電力コスト規則をサポートする標準化されたソフトウェア・フレームワークを使用できることは理解されるであろう。本発明のこれらの実施形態は、さまざまな市販のオペレーティング・システムのシステム・ソフトウェアとともに走ることができる。

Claims (13)

  1. アプリケーション・プログラムのタスクを実行するオペレーティング・システムを有するデータ・プロセッサと、前記データ・プロセッサによる前記タスクの実行のパラメータおよびモードを制御する電力およびパフォーマンス・コントローラとを有するデータ処理装置であって、前記電力およびパフォーマンス・コントローラは、前記タスクの非アクティブ期間を考慮に入れて前記タスクのための前記データ・プロセッサの要求されるパフォーマンスの推定を生成し、前記推定に応じて前記データ・プロセッサのパフォーマンスおよび電力消費を調整するパフォーマンス予測器を含み、
    前記パフォーマンス予測器は、前記タスクのそれぞれについて:
    ・前記データ・プロセッサがその同じタスクを処理するために利用可能であった前記データ・プロセッサの利用可能な非アクティブ期間であって、その同じタスクについて要求されるーパフォーマンスの前記推定を生成する際に含められる利用可能な非アクティブ期間と、
    ・その同じタスクが処理のために利用可能ではなく前記データ・プロセッサが他のタスクを処理するために利用可能でなかった利用不能な非アクティブ期間および前記データ・プロセッサがその同じタスクを処理するためには利用可能でなかったが他のタスクを処理していた利用不能なアクティブ期間であって、その同じタスクについて要求されるーパフォーマンスの前記推定を生成する際に除外される利用不能な期間との間の区別をするよう構成される、
    データ処理装置。
  2. 前記データ・プロセッサは、あるタスクについての利用不能な非アクティブ期間に応答して前記オペレーティング・システムを、その非アクティブなタスクによってブロックされていなければ別のタスクに切り換える、あるいは処理されるべく準備ができた他のタスクがなければアイドルにする、請求項1記載のデータ処理装置。
  3. 前記電力およびパフォーマンス・コントローラが、あるタスクについての前記推定を生成する際に、そのタスクについての前記利用可能な非アクティブ期間には応答するが前記利用不能な期間には応答しない、請求項1または2記載のデータ処理装置。
  4. 前記タスクは入出力アクセスを含み、前記電力およびパフォーマンス・コントローラはあるタスクの前記入出力アクセスに応答してそのタスクについて前記推定を生成する際に対応する非アクティブ期間を排除する、請求項1ないし3のうちいずれか一項記載のデータ処理装置。
  5. 前記電力およびパフォーマンス・コントローラが、あるタスクについて前記推定を生成する際に、そのタスクについての作業負荷の減衰平均に応答する、請求項1ないし4のうちいずれか一項記載のデータ処理装置。
  6. 前記電力およびパフォーマンス・コントローラが、前記推定に応じて前記データ・プロセッサのパフォーマンスおよび電力消費を調整する際に、前記データ・プロセッサのクロック周波数および/または供給電圧を調整するよう構成されている、請求項1ないし5のうちいずれか一項記載のデータ処理装置。
  7. アプリケーション・プログラムのタスクを実行するオペレーティング・システムを有するデータ・プロセッサと、前記データ・プロセッサによる前記タスクの実行のパラメータおよびモードを制御する電力およびパフォーマンス・コントローラとを使ったデータ処理方法であって、前記電力およびパフォーマンス・コントローラは、前記タスクの非アクティブ期間を考慮に入れて前記タスクのための前記データ・プロセッサの要求されるパフォーマンスの推定を生成し、前記推定に応じて前記データ・プロセッサのパフォーマンスおよび電力消費を調整するパフォーマンス予測器を含み、
    前記パフォーマンス予測器は、前記タスクのそれぞれについて:
    ・前記データ・プロセッサがその同じタスクの処理を続けるために利用可能である前記データ・プロセッサの利用可能な非アクティブ期間と、
    ・その同じタスクが処理のために利用可能ではなく前記データ・プロセッサが他のタスクを処理するために利用可能でなかった利用不能な非アクティブ期間および前記データ・プロセッサがその同じタスクを処理するためには利用可能でなかったが他のタスクを処理していた利用不能なアクティブ期間との間の区別をし、利用不能な期間はその同じタスクについて要求されるーパフォーマンスの前記推定を生成する際に除外される、
    データ処理方法。
  8. 前記データ・プロセッサは、あるタスクについての利用不能な非アクティブ期間に応答して前記オペレーティング・システムを、その非アクティブなタスクによってブロックされていなければ別のタスクに切り換える、あるいは処理されるべく準備ができた他のタスクがなければアイドルにする、請求項7記載のデータ処理方法。
  9. 前記電力およびパフォーマンス・コントローラが、あるタスクについての前記推定を生成する際に、そのタスクについての前記利用可能な非アクティブ期間には応答するが前記利用不能な期間には応答しない、請求項7または8記載のデータ処理方法。
  10. 前記タスクは入出力アクセスを含み、前記電力およびパフォーマンス・コントローラはあるタスクの前記入出力アクセスに応答してそのタスクについて前記推定を生成する際に対応する非アクティブ期間を排除する、請求項7ないし9のうちいずれか一項記載のデータ処理方法。
  11. 前記電力およびパフォーマンス・コントローラが、あるタスクについて前記推定を生成する際に、そのタスクについての作業負荷の減衰平均に応答する、請求項1ないし10のうちいずれか一項記載のデータ処理方法。
  12. 前記電力およびパフォーマンス・コントローラが、前記推定に応答して前記データ・プロセッサのパフォーマンスおよび電力消費を調整する際に、前記データ・プロセッサのクロック周波数および/または供給電圧を調整する、請求項1ないし11のうちいずれか一項記載のデータ処理方法。
  13. データ処理装置にインストールされたときに請求項7ないし12のうちいずれか一項記載のデータ処理方法を実行するよう適応されたコンピュータ・プログラム。
JP2010540179A 2007-12-28 2007-12-28 データ・プロセッサのパフォーマンス予測 Active JP5312478B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2007/055333 WO2009083753A1 (en) 2007-12-28 2007-12-28 Data processor performance prediction

Publications (2)

Publication Number Publication Date
JP2011508328A true JP2011508328A (ja) 2011-03-10
JP5312478B2 JP5312478B2 (ja) 2013-10-09

Family

ID=39739581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010540179A Active JP5312478B2 (ja) 2007-12-28 2007-12-28 データ・プロセッサのパフォーマンス予測

Country Status (4)

Country Link
US (1) US8452999B2 (ja)
EP (1) EP2227727B1 (ja)
JP (1) JP5312478B2 (ja)
WO (1) WO2009083753A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103926995A (zh) * 2014-04-16 2014-07-16 乐视致新电子科技(天津)有限公司 智能终端及增强其续航性能的方法、装置
JP2014219788A (ja) * 2013-05-07 2014-11-20 富士通株式会社 情報処理装置、省電力化制御方法および省電力化制御プログラム
JP2021518936A (ja) * 2018-02-08 2021-08-05 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 電力および性能の予測および制御のためのハイブリッドシステムオンチップ

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9128703B1 (en) * 2008-10-30 2015-09-08 Amazon Technologies, Inc. Processor that transitions to an idle mode when no task is scheduled to execute and further enters a quiescent doze mode or a wait mode depending on the value of a reference counter
US8276015B2 (en) * 2009-02-23 2012-09-25 International Business Machines Corporation Managing the power-performance range of an application
US8631411B1 (en) 2009-07-21 2014-01-14 The Research Foundation For The State University Of New York Energy aware processing load distribution system and method
US8909950B1 (en) * 2010-04-18 2014-12-09 Aptima, Inc. Systems and methods of power management
US8776069B2 (en) * 2010-12-07 2014-07-08 International Business Machines Corporation Energy and performance optimizing job scheduling
TWI493332B (zh) * 2011-11-29 2015-07-21 Intel Corp 用於電力管理的方法與設備及其平台與電腦可讀取媒體
US9917739B2 (en) 2012-02-20 2018-03-13 Aptima, Inc. Systems and methods for network pattern matching
US8649765B1 (en) * 2012-08-08 2014-02-11 Telefonaktiebolaget L M Ericsson (Publ) Communication apparatus using biometrics
US9465620B2 (en) * 2012-12-20 2016-10-11 Intel Corporation Scalable compute fabric
EP2759907B1 (en) * 2013-01-29 2024-05-22 Malikie Innovations Limited Methods for monitoring and adjusting performance of a mobile computing device
US9285858B2 (en) * 2013-01-29 2016-03-15 Blackberry Limited Methods for monitoring and adjusting performance of a mobile computing device
US20140237272A1 (en) * 2013-02-19 2014-08-21 Advanced Micro Devices, Inc. Power control for data processor
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
JP6175980B2 (ja) * 2013-08-23 2017-08-09 富士通株式会社 Cpuの制御方法、制御プログラム、情報処理装置
US9329663B2 (en) 2013-09-09 2016-05-03 Apple Inc. Processor power and performance manager
US9501128B2 (en) 2013-10-30 2016-11-22 Globalfoundries Inc. Cooperative reduced power mode suspension for high input/output (‘I/O’) workloads
FR3014215B1 (fr) * 2013-12-03 2015-12-11 Thales Sa Procede de gestion des ressources de calcul d'applications logicielles
KR102270239B1 (ko) * 2014-08-07 2021-06-28 삼성전자 주식회사 전자장치에서 소프트웨어를 실행하기 위한 방법 및 장치
US20160253216A1 (en) * 2015-02-26 2016-09-01 Strato Scale Ltd. Ordering schemes for network and storage i/o requests for minimizing workload idle time and inter-workload interference
GB2545508B (en) * 2015-12-18 2019-04-10 Imagination Tech Ltd Controlling operation of a GPU
US11080095B2 (en) 2017-06-04 2021-08-03 Apple Inc. Scheduling of work interval objects in an AMP architecture using a closed loop performance controller
US11243598B2 (en) * 2018-06-01 2022-02-08 Apple Inc. Proactive power management of a graphics processor
US11714564B2 (en) * 2020-01-06 2023-08-01 Arm Limited Systems and methods of power management

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337713A (ja) * 2002-05-21 2003-11-28 Hitachi Ltd プロセッサの制御方法
JP2004199659A (ja) * 2002-11-12 2004-07-15 Arm Ltd データ処理システムの性能カウンタ
JP2005062956A (ja) * 2003-08-14 2005-03-10 Toshiba Corp スケジューリング方法および情報処理システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058824B2 (en) * 2001-06-15 2006-06-06 Microsoft Corporation Method and system for using idle threads to adaptively throttle a computer
US20030233592A1 (en) * 2002-06-14 2003-12-18 Hung-Ming Lin Power saving method using frame rate control in computer graphics systems
US7194385B2 (en) 2002-11-12 2007-03-20 Arm Limited Performance level setting of a data processing system
US20080147357A1 (en) * 2006-12-15 2008-06-19 Iintrinisyc Software International System and method of assessing performance of a processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337713A (ja) * 2002-05-21 2003-11-28 Hitachi Ltd プロセッサの制御方法
JP2004199659A (ja) * 2002-11-12 2004-07-15 Arm Ltd データ処理システムの性能カウンタ
JP2005062956A (ja) * 2003-08-14 2005-03-10 Toshiba Corp スケジューリング方法および情報処理システム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014219788A (ja) * 2013-05-07 2014-11-20 富士通株式会社 情報処理装置、省電力化制御方法および省電力化制御プログラム
CN103926995A (zh) * 2014-04-16 2014-07-16 乐视致新电子科技(天津)有限公司 智能终端及增强其续航性能的方法、装置
CN103926995B (zh) * 2014-04-16 2017-12-08 乐视致新电子科技(天津)有限公司 智能终端及增强其续航性能的方法、装置
JP2021518936A (ja) * 2018-02-08 2021-08-05 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 電力および性能の予測および制御のためのハイブリッドシステムオンチップ
JP7047114B2 (ja) 2018-02-08 2022-04-04 アリババ・グループ・ホールディング・リミテッド 電力および性能の予測および制御のためのハイブリッドシステムオンチップ

Also Published As

Publication number Publication date
EP2227727A1 (en) 2010-09-15
JP5312478B2 (ja) 2013-10-09
EP2227727B1 (en) 2016-08-24
US8452999B2 (en) 2013-05-28
WO2009083753A1 (en) 2009-07-09
US20100287396A1 (en) 2010-11-11

Similar Documents

Publication Publication Date Title
JP5312478B2 (ja) データ・プロセッサのパフォーマンス予測
US9176572B2 (en) System and method for controlling central processing unit power with guaranteed transient deadlines
US8909962B2 (en) System and method for controlling central processing unit power with guaranteed transient deadlines
US9104411B2 (en) System and method for controlling central processing unit power with guaranteed transient deadlines
KR101409055B1 (ko) 추론된 작업부하 병렬성에 기초하여 중앙 처리 장치 전력을 제어하는 시스템 및 방법
US8650426B2 (en) System and method for controlling central processing unit power in a virtualized system
JP5469940B2 (ja) 計算機システム、仮想計算機モニタ及び仮想計算機モニタのスケジューリング方法
KR0177536B1 (ko) 정보 처리 장치, 그 처리 방법 및 전원 제어 방법
US8615647B2 (en) Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
US5692204A (en) Method and apparatus for computer system power management
US7152169B2 (en) Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state
US20080307248A1 (en) Cpu Clock Control Device, Cpu Clock Control Method, Cpu Clock Control Program, Recording Medium, and Transmission Medium
US9128705B2 (en) System and method for controlling central processing unit power with reduced frequency oscillations
JP5982588B2 (ja) 保証された過渡期限とともに中央処理装置の電力を制御するためのシステムおよび方法
WO2012138655A1 (en) Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device
JP2003337713A (ja) プロセッサの制御方法
KR101578336B1 (ko) 보장된 과도 데드라인들로 중앙 프로세싱 유닛 전력을 제어하기 위한 시스템 및 방법
JP3830133B2 (ja) 電力制御装置及び方法並びに電力制御プログラム
JP2003337634A (ja) コンピュータ装置及びプロセッサ制御方法及びプロセッサ制御方法をコンピュータに実行させるためのプログラム及びプロセッサ制御方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
Zeng et al. Power Management for Idle Time in the Presence of Periodic Interrupt Services

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121226

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130702

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5312478

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

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250