JP4846226B2 - 情報処理装置、情報処理方法、およびプログラム - Google Patents

情報処理装置、情報処理方法、およびプログラム Download PDF

Info

Publication number
JP4846226B2
JP4846226B2 JP2004311095A JP2004311095A JP4846226B2 JP 4846226 B2 JP4846226 B2 JP 4846226B2 JP 2004311095 A JP2004311095 A JP 2004311095A JP 2004311095 A JP2004311095 A JP 2004311095A JP 4846226 B2 JP4846226 B2 JP 4846226B2
Authority
JP
Japan
Prior art keywords
translation
execution
program
power saving
information processing
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.)
Expired - Fee Related
Application number
JP2004311095A
Other languages
English (en)
Other versions
JP2006126947A (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.)
Hitachi Solutions Ltd
Original Assignee
Hitachi Solutions Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Solutions Ltd filed Critical Hitachi Solutions Ltd
Priority to JP2004311095A priority Critical patent/JP4846226B2/ja
Priority to EP05021658A priority patent/EP1653355A3/en
Priority to US11/244,077 priority patent/US7739672B2/en
Publication of JP2006126947A publication Critical patent/JP2006126947A/ja
Application granted granted Critical
Publication of JP4846226B2 publication Critical patent/JP4846226B2/ja
Expired - Fee Related 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
    • 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
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4432Reducing the energy consumption
    • 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)
  • Devices For Executing Special Programs (AREA)
  • Power Sources (AREA)

Description

本発明は、電子計算機における、ソースプログラムから機械語プログラムへの翻訳方式であって、複数機種の計算機に共通の中間形式を用い、中間語(バイトコード)を実行時にコンパイルして変換し、その機械語を実行させる情報処理方法に関する。特にハードウェアでスタックベースの中間語(バイトコード)をレジスタベースの命令に変換するバイトコードアクセラレータを備える情報処理装置における上記情報処理方法に関する。
高級言語で記述されたプログラムを計算機上で実行する方法を大別すると、一般に、コンパイラ方式、インタプリタ方式と呼ぶ、以下の2つに分けられる。さらにコンパイラ方式とインタプリタ方式のそれぞれの利点を採った実行時翻訳という方法が知られており、一例としてJava(登録商標)の実行環境ではJIT(Just-In-Time)コンパイラと呼称される実行時翻訳技術が、広く実用化されている。実行時翻訳に関する従来技術として、以下の技術が提案されている。
例えば、CPU、及びメモリを有し、抽象オブジェクトプログラムを前記CPUで実行するインストーラは、計算機の機種に依存しない中間語プログラムの形式の抽象オブジェクトプログラムを受け取る手段、前記受け取った抽象オブジェクトプログラムから機械語プログラムを前記メモリ上に生成する手段、及び前記生成された機械語プログラムを前記生成直後に前記CPUで実行する手段を有することを特徴とするインストーラ(特許文献1参照)などが提案されている。
また、情報処理装置であって、複数のレジスタと、第1フォーマット命令を固有命令として実行するための命令実行部と、命令変換回路とを有し、第2フォーマットで記述された第1プログラムを実行する際に、前記情報処理装置は、前記命令変換回路によって前記第1プログラムに含まれる第1命令群を前記第1フォーマット命令に変換して実行する第1動作モードと、前記第1フォーマット命令で記述された変換ソフトウェアによって前記第1プログラムに含まれる第2命令群を前記第1フォーマット命令に変換して実行する第2動作モードを有し、前記第1動作モードと前記第2動作モードとの間の動作モードの移行に際し、当該動作モードの移行動作と、前記複数のレジスタの少なくとも一つと前記命令変換回路との間のデータ転送動作とを並列に行う情報処理装置(特許文献2参照)なども提案されている。
また、複数の電子計算機に共通のソースプログラムまたは中間語プログラムを解釈実行すると共に、計算機固有の機械語プログラムへ翻訳する実行時プログラム翻訳方法において、ソースプログラムまたは中間語プログラムを解釈実行する解釈実行手段と、前記ソースプログラムまたは中間語プログラムをモジュール単位に機械語プログラムに翻訳するプログラム翻訳手段とを備え、前記解釈実行手段は、前記ソースプログラムまたは中間語プログラムの解釈実行中に、モジュール単位でそのモジュールが実行された回数を計数して実行頻度データを生成し、前記プログラム翻訳手段は、前記解釈実行手段によるソースプログラムまたは中間語プログラムの解釈実行と並行して、最も実行回数の多いモジュールを実行頻度データから選び出し、そのモジュールを機械語プログラムへ翻訳することを特徴とする実行時プログラム翻訳方法(特許文献3参照)なども提案されている。
最初に、公知の一般的な実行時翻訳技術について、特許文献1の「従来の技術」の記載を引用しながら以下に示す。まず、要素技術となるコンパイラ方式とインタプリタ方式についての説明から示す。この特許文献1の「従来の技術」に示されている内容・考え方は、現在もおよそ変わらないためである。
コンパイラ方式とは、高級言語で記述されたプログラムを、実行すべき計算機の機械語プログラムに変換した上で、変換後の機械語プログラムを直接実行する方式である。一方、インタプリタ方式とは実行する計算機の機械語とは別の言語(中間語)を設定し、実行すべき計算機上で中間語を解釈実行する別のプログラム(インタプリタ)を予め用意しておく。高級言語で記述されたプログラムを中間語プログラムに変換し、変換後の中間語プログラムをインタプリタで実行する方式である。
前記インタプリタ方式に対するコンパイラ方式の利点は、以下の理由によるプログラム実行の高速性にある。
(コンパイラ方式の利点1)インタプリタ方式では、中間語に相当する機械語の実行以外に、各中間語に対応する処理への振り分けやオペランドのアドレス計算等が必要である。一方コンパイラ方式では直接に機械語を実行するので、これらが不要である。
(コンパイラ方式の利点2)コンパイラ方式ではプログラムの文脈と実行する計算機の特性とを考慮した処理の省略(最適化)が可能である。
一方、インタプリタ方式では、インタプリタ自身は中間語プログラムに対して汎用性を持つので、インタプリタは中間語プログラムをそのまま実行するのみで、プログラムの文脈を考慮した処理の省略ができない。また、中間語プログラムにも実行する計算機の特性が反映されていないので、例えば、高級言語で記述された特定の変数を目標計算機のレジスタにマッピングし、処理の高速化を図ることも不可能である。
一方で、前記インタプリタ方式に対するコンパイラ方式の欠点も存在する。
(コンパイラ方式の欠点1)ソースプログラムを機械語プログラムに変換するコンパイラが機種ごとに必要であり、コンパイラの開発量が大きくなる他、保守や拡張をそれぞれの機種に対応して行なう必要があり、保守・拡張のオーバヘッドが大きくなる。
(コンパイラ方式の欠点2)同一プログラムを複数機種で実行する場合、機種ごとにコンパイル(ソースプログラムから機械語プログラムへの変換)が必要であり、機械語プログラムの管理のオーバヘッドが大きい。
(コンパイラ方式の欠点3)複数機種がネットワークで接続されている環境において、同一のプログラムに対する機械語プログラムが機種対応に複数必要となり、バージョン管理やディスクスペースに問題があるほか、同一プログラムの分散実行が困難である。
(コンパイラ方式の欠点4)実際に運用されているシステムのなかには、ソースプログラムがなく、機械語プログラムのみで運用されている場合がある。このようなシステムでは、構成機種の移行・変更が困難である。また、ハードウェア技術の進歩により計算機アーキテクチャの高度化が容易となっているが、機械語プログラム財産の継承のため、アーキテクチャの変更に強い制限が課せられしまう。
したがって、実行時間の短縮を重視する立場からはコンパイラ方式が優勢であるが、以上のような保守運用面のデメリットが生じるため、コンパイラ方式とインタプリタ方式との間での使い分けが必要であった。
このような保守運用面と速度面のトレードオフを緩和する方策として、コンパイラ方式とインタプリタ方式のそれぞれの利点を採った方式が開発されている。これが実行時翻訳方式である(方式1)。
方式1は、保存運用の形態としては特定の計算機に依存しない中間語プログラムを採用し、中間語プログラムを実行するに際して高速化のために目標計算機の機械語プログラムに変換するという方式である。Java(登録商標)プログラム実行環境において、実行時のコンパイラ(JIT(Just-In-Time)コンパイラ)を備えた例では、実行時コンパイラ(実行時翻訳部)が動的コンパイルを行い、実行時コンパイル(実行時翻訳)の結果は記憶されて、以降この中間語を実行する場合にはコンパイル済みのネイティブコード(機械語)が実行される。
また、インタプリタ方式の速度面での欠点を、インタプリタ方式(中間語翻訳実行方式)そのものを高速化することで解決する方式も開発されている。特に、ハードウェアによる高速化支援機構の追加による方式が高い高速化効果を生むことが知られている。一例が、特許文献2の「従来の技術」に記載されているスタックベースの中間言語(中間語:バイトコード)をレジスタベースの命令に変換するバイトコードアクセラレータ(ハードウェアアクセラレータ)を備え、インタプリタ方式のままで、中間語を直接ハードウェア実行することで高速化を行う方法である(方式2)。
ソフトウェア(実行時翻訳)による高速化である上記方式1に対して、方式2は、ハードウェアによる高速化に相当するといえる。コンパイラ方式とインタプリタ方式との間での保守運用面と速度面のトレードオフを緩和するこれら2方式は、従来からのソフトウェアによるインタプリタ方式と比べて大幅に実行速度を改善できる点で共通しており、上記2方式同士を比較した場合には優劣をつけがたい。
方式1(:ソフトウェア(実行時翻訳)による高速化)の欠点と利点は以下の通りとなる。実行時翻訳の使用においては、実行時のコンパイル処理(「実行時コンパイル」などと一般に呼称)によってCPU負荷が大きくなるとともに、生成する機械語プログラムの格納に必要なメモリサイズが大きくなる欠点が知られている。そして、このようなCPU負荷やメモリ使用量を増やす傾向が実行時プログラム翻訳の適用の阻害要因になることが知られている。
特許文献3における技術のように実行頻度を評価し(プロファイリングし)頻度高く実行される部分だけを実行時コンパイル対象とするプロファイリング付きの実行時翻訳を用いることでこの欠点は改善するが、欠点すべてを解消できるわけではない。
一方で、この方法では、後述する(方式2)の欠点である中間語種別による制約が、生じない点が利点となる。
方式2(:ハードウェア(バイトコードアクセラレータ)による高速化)の欠点と利点は以下の通りとなる。特許文献2の「発明が解決しようとする課題」で言及されている通り、中間語の実行時にターゲットとなるマイクロコンピュータの固有言語(以下CPU命令あるいは機械語と呼ぶ)に変換するハードウェアを採用する場合には、全ての中間語をハードウェア実行することが困難なため一部の中間語のみをサポートする。全ての中間語をハードウェアで変換できるのが理想であるのに、一部の中間語のみをサポートする理由は、中間語の中には複雑な機能を有し、変換するとCPU命令で数十から数百命令に及ぶ中間語が存在するので、全ての中間語をハードウェア処理しようとするとハードウェアが増大しすぎてしまう点にある。
したがって、ハードウェアによる高速化を適用できない処理が存在するのが通例であり、適用外の処理については従来のインタプリタで処理されるので、部分的にしか高速化効果を享受できない。これが欠点となる。
一方、コンパイラによる実行時翻訳と異なり、コンパイル時の処理増やコンパイル結果を格納する領域増分を必要としない点が利点となる。
以上を鑑みると、実行時翻訳とバイトコードアクセラレータとを相互補完させることで、実行速度が更に向上させやすいことに想到できる。
たとえば、実行頻度などで実行時翻訳対象を選別する方式で考えると、インタプリタで処理される対象(バイトコード)がバイトコードアクセラレータを経るので実行時翻訳の対象外となった部分も高速化される。したがって、バイトコードアクセラレータが存在しない実行時翻訳よりもバイトコードアクセラレータと共存する実行時翻訳が高速化に適するといえる。
あるいは、バイトコードアクセラレータと共存する実行時翻訳を、実行時コンパイラが存在せずバイトコードアクセラレータのみが存在する構成と比べると、コンパイラで動的コンパイルした中間語群のなかに、バイトコードアクセラレータで非サポートの中間語を含む分、高速化には有利である。
上記のように、ソフトウェアによる高速化機構(実行時翻訳)とハードウェアによる高速化機構(バイトコードアクセラレータ)との組み合わせを検討するうちに、発明者は、この組み合わせが、電力消費と実行速度との間のトレードオフを発生させることに想到した。
特開平10−254712号公報 特開2004−30222号公報 特開平10−240546号公報
しかし、従来の実行時翻訳の議論において、コンパイル処理自体の重さによるオーバーヘッドは、起動時など局所的な処理の遅れとメモリ消費量の観点では問題視されてきたが、電力消費の点では問題視されてこなかった。
なぜならば、実行時翻訳を用いた場合のほうが、実行速度が数倍〜10倍以上と実行時翻訳を用いない場合と比べて圧倒的に高速化され、同一の仕事量に対するCPU負荷が減る(ダイナミックスステップ数が減少する)結果、むしろ節電効果が生じるためである。
ところが、中間語解釈実行においてバイトコードアクセラレータを活用できる実行環境が使えるならば、実行時翻訳の実行速度における圧倒的な優位が消えるため、実行時翻訳のオーバーヘッドによる電力消費の増加分が顕在化しやすいこととなる。バイトコードアクセラレータ単独で実行する場合と比べると、実行時翻訳のバイトコードアクセラレータとの併用は、実行速度で有利であっても電力消費では不利(電力消費増)をまねく場合がある。
そこで本発明は上記課題を鑑みてなされたものであり、実行時翻訳と中間語解釈実行との配分を可変とし、適宜な実行速度を維持しつつ電力消費の抑制を可能とする、情報処理装置および情報処理方法を提供することを主たる目的とする。
上記課題を解決する本発明の情報処理装置は、ソースプログラムまたは中間語プログラムを解釈実行する解釈実行手段と、前記プログラムを計算機固有の機械語プログラムへ翻訳する実行時翻訳手段とを備える情報処理装置であって、当該情報処理装置の制御部から得た当該情報処理装置の電力消費状況に関する情報、ないし入力インターフェイスにてユーザから受け付けた節電要求に関する情報に従って、節電の要否情報を記憶装置にて設定および更新する節電電要求監視部と、前記節電の要否情報に応じて、前記実行時翻訳手段における前記プログラムの実行時翻訳の実行可否を決定し、当該可否決定に基づいて前記実行時翻訳手段に対する実行時翻訳処理の実行指示を行うと共に、当該情報処理装置における電力消費状況の変化に応じて、前記実行時翻訳の実行可否の決定基準を変更する節電用翻訳制御部と、を有することを特徴とする。
なお、前記情報処理装置において、前記決定基準は、前記プログラムの実行頻度に関して定められた所定実行頻度であり、前記節電用翻訳制御部が、前記決定基準の変更に際し前記電力消費状況が節電を要するものであった場合に、前記決定基準たる所定実行頻度を前記電力消費状況が節電を要しないものであった場合より高いものとするとしてもよい。
また、前記情報処理装置において、前記節電用翻訳制御部が、前記可否決定に際し、前記節電要求が有る場合に前記プログラムの実行時翻訳の実行を否定し、前記節電要求が無い場合に前記プログラムの実行時翻訳の実行を許可するとしてもよい。
また、前記情報処理装置において、前記節電用翻訳制御部が、前記節電要求の強弱に応じて、前記実行時翻訳手段における前記プログラムの実行時翻訳の実行可否を決定し、当該可否決定に基づいて前記実行時翻訳手段に対する実行時翻訳処理の実行指示を行うとし
また、前記情報処理装置において、前記節電用翻訳制御部が、前記可否決定に際し、前記節電要求が所定基準より強い節電を要求するものである場合に前記プログラムの実行時翻訳の実行を否定し、前記節電要求が所定基準より弱い節電を要求するものである場合に前記プログラムの実行時翻訳の実行を許可するとしてもよい。
また、本発明の情報処理装置は、ソースプログラムまたは中間語プログラムを解釈実行する解釈実行手段と、解釈実行手段と連動して前記プログラムに含まれる命令表現を情報処理装置のCPUに固有の命令に変換するハードウェアアクセラレータと、前記プログラムを計算機固有の機械語プログラムへ翻訳する実行時翻訳手段とを備える情報処理装置であって、当該情報処理装置の制御部から得た当該情報処理装置の電力消費状況に関する情報、ないし入力インターフェイスにてユーザから受け付けた節電要求に関する情報に従って、節電の要否情報を記憶装置にて設定および更新する節電電要求監視部と、前記節電の要否情報に応じて、前記実行時翻訳手段における前記プログラムの実行時翻訳の実行可否、または前記ハードウェアアクセラレータを伴う前記インタプリタ処理の実行可否を決定し、当該可否決定に基づいて前記実行時翻訳手段に対する実行時翻訳処理の実行指示または前記ハードウェアアクセラレータに対するインタプリタ処理の実行指示を行うと共に、当該情報処理装置における電力消費状況の変化に応じて、前記実行時翻訳の実行可否または前記ハードウェアアクセラレータを伴う前記インタプリタ処理の実行可否の決定基準を変更する節電用翻訳制御部と、を有することを特徴とする。
なお、前記情報処理装置において、前記決定基準は、前記プログラムの実行頻度に関して定められた所定実行頻度であり、前記節電用翻訳制御部が、前記決定基準の変更に際し前記電力消費状況が節電を要するものであった場合に、前記決定基準たる所定実行頻度を前記電力消費状況が節電を要しないものであった場合より高いものとするとしてもよい。
第8の発明は、第7の発明において、前記節電用翻訳制御部が、前記可否決定に際し、前記節電要求が有る場合に前記プログラムの実行時翻訳またはインタプリタ処理の実行を否定し、前記節電要求が無い場合に前記プログラムの実行時翻訳またはインタプリタ処理の実行を許可することを特徴とする。
第9の発明は、第7の発明において、前記節電用翻訳制御部が、前記節電要求の強弱に応じて、前記実行時翻訳手段における前記プログラムの実行時翻訳の実行可否または前記ハードウェアアクセラレータを伴う前記インタプリタ処理の実行可否を決定し、当該可否決定に基づいて前記実行時翻訳手段に対する実行時翻訳処理の実行指示またはハードウェアアクセラレータに対するインタプリタ処理の実行指示を行うことを特徴とする。
第10の発明は、第9の発明において、前記節電用翻訳制御部が、前記可否決定に際し、前記節電要求が所定基準より強い節電を要求するものである場合に前記プログラムの実行時翻訳またはインタプリタ処理の実行を否定し、前記節電要求が所定基準より弱い節電を要求するものである場合に前記プログラムの実行時翻訳またはインタプリタ処理の実行を許可することを特徴とする。
また、本発明の情報処理方法は、ソースプログラムまたは中間語プログラムを解釈実行する解釈実行手段と、前記プログラムを計算機固有の機械語プログラムへ翻訳する実行時翻訳手段とを備える情報処理装置当該情報処理装置の制御部から得た当該情報処理装置の電力消費状況に関する情報、ないし入力インターフェイスにてユーザから受け付けた節電要求に関する情報に従って、節電の要否情報を記憶装置にて設定および更新し、前記節電の要否情報に応じて、前記実行時翻訳手段における前記プログラムの実行時翻訳の実行可否を決定し、当該可否決定に基づいて前記実行時翻訳手段に対する実行時翻訳処理の実行指示を行うと共に、当該情報処理装置における電力消費状況の変化に応じて、前記実行時翻訳の実行可否の決定基準を変更する、ことを特徴とする。
また、本発明の情報処理方法は、ソースプログラムまたは中間語プログラムを解釈実行する解釈実行手段と、解釈実行手段と連動して前記プログラムに含まれる命令表現を情報処理装置のCPUに固有の命令に変換するハードウェアアクセラレータと、前記プログラムを計算機固有の機械語プログラムへ翻訳する実行時翻訳手段とを備える情報処理装置当該情報処理装置の制御部から得た当該情報処理装置の電力消費状況に関する情報、ないし入力インターフェイスにてユーザから受け付けた節電要求に関する情報に従って、節電の要否情報を記憶装置にて設定および更新し、前記節電の要否情報に応じて、前記実行時翻訳手段における前記プログラムの実行時翻訳の実行可否、または前記ハードウェアアクセラレータを伴う前記インタプリタ処理の実行可否を決定し、当該可否決定に基づいて前記実行時翻訳手段に対する実行時翻訳処理の実行指示または前記ハードウェアアクセラレータに対するインタプリタ処理の実行指示を行うと共に、当該情報処理装置における電力消費状況の変化に応じて、前記実行時翻訳の実行可否または前記ハードウェアアクセラレータを伴う前記インタプリタ処理の実行可否の決定基準を変更する、ことを特徴とする。
また、本発明のプログラムは、ソースプログラムまたは中間語プログラムを解釈実行する解釈実行手段と、前記プログラムを計算機固有の機械語プログラムへ翻訳する実行時翻訳手段とを備える情報処理装置に、当該情報処理装置の制御部から得た当該情報処理装置の電力消費状況に関する情報、ないし入力インターフェイスにてユーザから受け付けた節電要求に関する情報に従って、節電の要否情報を記憶装置にて設定および更新する処理と、前記節電の要否情報に応じて、前記実行時翻訳手段における前記プログラムの実行時翻訳の実行可否を決定し、当該可否決定に基づいて前記実行時翻訳手段に対する実行時翻訳処理の実行指示を行うと共に、当該情報処理装置における電力消費状況の変化に応じて、前記実行時翻訳の実行可否の決定基準を変更する処理と、を実行させることを特徴とする。
また、本発明のプログラムは、ソースプログラムまたは中間語プログラムを解釈実行する解釈実行手段と、解釈実行手段と連動して前記プログラムに含まれる命令表現を情報処理装置のCPUに固有の命令に変換するハードウェアアクセラレータと、前記プログラムを計算機固有の機械語プログラムへ翻訳する実行時翻訳手段とを備える情報処理装置に、当該情報処理装置の制御部から得た当該情報処理装置の電力消費状況に関する情報、ないし入力インターフェイスにてユーザから受け付けた節電要求に関する情報に従って、節電の要否情報を記憶装置にて設定および更新する処理と、前記節電の要否情報に応じて、前記実行時翻訳手段における前記プログラムの実行時翻訳の実行可否、または前記ハードウェアアクセラレータを伴う前記インタプリタ処理の実行可否を決定し、当該可否決定に基づいて前記実行時翻訳手段に対する実行時翻訳処理の実行指示または前記ハードウェアアクセラレータに対するインタプリタ処理の実行指示を行うと共に、当該情報処理装置における電力消費状況の変化に応じて、前記実行時翻訳の実行可否または前記ハードウェアアクセラレータを伴う前記インタプリタ処理の実行可否の決定基準を変更する処理と、を実行させることを特徴とする。
その他、本願が開示する課題、及びその解決方法は、発明の実施の形態の欄、及び図面により明らかにされる。
本発明によれば、実行時翻訳と中間語解釈実行との配分を可変とし、適宜な実行速度を維持しつつ電力消費の抑制が可能となる。
−−−実施例1−−−
本発明の実施の形態に関わる情報処理装置の構成について、図面を参照しながら説明する。なお、これにより本発明が限定されるものではない。図1は本発明の一実施形態による実行時プログラム翻訳方法を実施する情報処理装置の概略構成を示すブロック図である。
図1において、情報処理装置1は、中央処理装置110(CPU等)、主記憶装置120、基本制御部121、中間語ファイル読み込み部122、中間語データ解釈実行部123、実行時翻訳部124、節電要求監視部126、節電用翻訳制御部129、入力装置130、表示装置140、通信装置150、およびバイトコードアクセラレータ1231を含むものとする。この情報処理装置1が扱うデータとしては、機械語データ125、中間語データ127、および外部記憶装置160が格納している中間語ファイル161があげられる。
また、前記バイトコードアクセラレータ1231は、スタックベースの中間言語(バイトコード)をレジスタベースの命令に変換するものであり、インタプリタ方式のままで、中間語を直接ハードウェア実行することで高速化を図るために用いられる。
前述において、主記憶装置120には、基本制御部121と、中間語ファイル読み込み部122と、中間語解釈実行部123と、実行時翻訳部124とがロードされて格納される。また、主記憶装置120には、中間語ファイル読み込み部122によって生成された中間語データ127、実行時翻訳部124によって生成された機械語データ125が格納される。また、外部記憶装置160には、中間語ファイル161が格納される。
前記基本制御部121は、本発明による情報処理方法を実施する情報処理装置全体を制御するプログラムであり、図示装置が立ち上げられたとき、中央処理装置110によって実行され、情報処理装置1のハードウェアとプログラムとの基本制御を行う。そして、情報処理装置1の各ハードウェアと各プログラムのイベント発生を検出して、電池残量不足を検出した場合には節電要求監視部126にその旨通知することも可能である。
前記中間語ファイル読み込み部122は、外部記憶装置160から中間語ファイル161を読み込み、中間語データ127を生成するプログラムである。外部記憶装置160は、通信装置150及びネットワークを介して存在しても、ローカルに存在してもよいものとする。
前記中間語解釈実行部123は、中間語データ127の解釈実行を行うインタプリタを一例として想定でき、中間語データ127を解釈して直接実行する。
前記実行時翻訳部124は、プログラム翻訳の実行部であり、中間語データ127のモジュールを選び出し、機械語データ125に変換する部である。なお、前記機械語データ125は、中央処理装置110に直接実行させることが可能な機械語で表現されたプログラムである。また、前記中間語データ127は、中間語ファイル161を主記憶装置120に読み込んだデータであり、中間語解釈実行部123によって1命令ずつ解釈実行される。
前記中間語ファイル161は、特定の計算機システムに依存しない仮想的な命令(中間語命令)で記述された中間語プログラムが格納されたファイルである。また、この中間語プログラムが或るソースプログラムを変換して得られたものである場合には、中間語プログラムの各部分が変換前のソースプログラムのどの部分に相当するかの対応づけが可能な情報が、このファイルに格納されている。
前記節電要求監視部126は、低消費電力運転が必要となる事象のひとつ、あるいは複数の事象を監視し検出する。たとえば節電要求監視部126は、情報処理装置1の電池残量の多少、及びソフトウェアの起動時や実行中にユーザからの要求を基本制御部経由で取得して、その内容に応じて節電要求度合い(節電要求強弱)を認識する。そして、節電要求監視部126は、前記節電要求度が高く節電が必要である状況(節電モードへの移行)を検出した場合に、主記憶装置120に存在するが図1には示していない、例えば所定記憶領域中において節電フラグをオン(ON)にする。また、節電要求監視部126は、逆に節電モードから通常運転(非節電モード)に戻る事象も検出し、前記節電フラグをオフ(OFF)にする。
また、中間語ファイル読み込み部122と、中間語解釈実行部123と、実行時翻訳部124とは、基本制御部121によって、外部記憶装置160から主記憶装置120に読み込まれて中央処理装置110で実行される。
図2は中間語データ127の一例を示す図である。図2において、中間語データ127が含むのが中間語モジュール300である。この中間語モジュール300は、中間語モジュール300のモジュール名301、この中間語モジュール300に対応する管理データ305へのポインタ302、中間語モジュール300を翻訳した結果得られる機械語データ125へのポインタ303、中間語モジュール300の中間語プログラムの命令列を格納する中間語データ領域304により構成される。そして、この中間語データ127は、複数の中間語モジュール300から構成される。
図3は機械語データ125の一例を示す図である。図3において、機械語データ125が含むのが、機械語モジュール400である。この機械語モジュール400は、複数の機械語命令を格納したデータ領域により構成される。そして、機械語データ125は、このような複数の機械語モジュール400から構成される。
ここからは、以上図1〜図3で示した構成によって実施される、本発明の一実施の形態の情報処理装置の動作について説明する。
図4は本発明の一実施形態による翻訳方法を実行する際の、基本制御部121の起動時における処理手順を説明するフローチャートである。
図4に示すフローは、基本制御部121が、中間語ファイル161を読み込んだ後、中間語解釈実行部123と、実行時翻訳部124とを起動する処理を示している。このとき、中間語解釈実行部123と、実行時翻訳部124とは並行して実行されても、直列に実行されてもよいものとする。
(1)まず、基本制御部121は、中間語ファイル読み込み部122を起動し、中間語ファイル読み込み部122の処理が完了するのを待つ(ステップ501)。
(2)基本制御部121は、中間語ファイル読み込み部122の処理の完了後、中間語解釈実行部123を起動する(ステップ502)。
(3)次に、基本制御部121は、実行時翻訳部124を起動する(ステップ503)。
(3')ただし、基本制御部121は、図1には示していない前記節電フラグがオンの場合には、すなわち、節電要求が発生した(節電モードに移行した)ことが検出されている場合に、実行時翻訳部124を起動しない(ステップ504、ステップ505)。この判定分岐は、このフローの通り基本制御部121が直接行っても、フローでは示されていないが節電翻訳制御部129経由で行ってもよい。これが、本発明に特徴的なステップである。
図5は中間語ファイル読み込み部122の処理手順を説明するフローチャートである。図5に示すフローは、中間語ファイル読み込み部122が、中間語ファイル161を読み込み、中間語データ127を生成する処理を示している。
(1)中間語ファイル読み込み部122は、図4に説明したステップ501の処理で基本制御部121により起動されると、通信装置150及びネットワークを介して外部記憶装置160から中間語ファイル161を読み込む(ステップ601)。
(2)次に、中間語ファイル読み込み部122は、中間語データ127を生成する。ここで、生成された中間語データ127は、図2で説明したように、複数の中間語モジュール300により構成されている。中間語ファイル読み込み部122は、前記各モジュール毎に読みこんだモジュール名を前記モジュール名301の項目として格納し、管理データへのポインタ302と機械語データ125へのポインタ303とを"0"で初期化すると共に、中間語データ領域304に、読み込んだ中間語ファイルに格納されている中間語プログラムを書き込む(ステップ602)。
図6は中間語解釈実行部123の処理手順を説明するフローチャートである。図6に示すフローは、中間語解釈実行部123が、中間語データ127の解釈実行を繰り返す処理を示している。
(1)中間語解釈実行部123は、図4で説明したステップ502の処理で基本制御部121により起動されると、中間語データ127から1つだけ中間語モジュール300を選択する。初期状態では、"MAIN"をモジュール名301に持つ中間語モジュールを選択する(ステップ701)。
(2)次に、中間語解釈実行部123は、ステップ701で選択した中間語モジュール300が機械語プログラムへ翻訳済みか否かを判定し、翻訳済みであった場合、ステップ701で選択した中間語モジュール300に含まれる機械語データ125へのポインタ303が指し示す機械語モジュール400に格納された機械語プログラムを、基本制御部121に実行させ、実行終了後ステップ701の処理に戻る(ステップ702、703)。
(3)他方、ステップ702で中間語モジュール300が機械語プログラムに翻訳済みでないと判定された場合、中間語解釈実行部123はステップ701で選択した中間語モジュール300に含まれる中間語データ領域304の1命令を読み込み、その命令が終了命令か否かを判定し、終了命令である場合処理を終了する(ステップ705、706)。
(4)ステップ706の判定で読み込んだ命令が終了命令でなかった場合、中間語解釈実行部123は、ステップ705で読み込んだ命令が呼出し命令か否かを判定し、その命令が呼出し命令であった場合処理を終了し、そうでない場合、ステップ705で読み込んだ命令を直接実行した後、ステップ705の処理に戻って、次の命令の処理を続ける(ステップ707、708)。
図7は実行時翻訳部124の処理手順を説明するフローチャートである。図7に示すフローは、中間語プログラムを機械語プログラムへ翻訳する処理に相当し、中間語モジュール300から他の中間語モジュールへの呼出し命令がある場合に、呼び出される中間語モジュール300から先に再帰的に機械語プログラムに翻訳し、機械語データ125へのポインタ303が指し示す機械語モジュール400に格納する処理を示している。
(1)実行時翻訳部124は、引数で渡される中間語モジュール300に含まれる中間語データ領域304から中間語命令を1つだけ読み出し、読み出した中間語命令が他のモジュールへの呼出し命令か否かを判定する(ステップ801、802)。
(2)ステップ802の判定で、読み出した中間語命令が他のモジュールへの呼出し命令である場合、呼出し先の中間語モジュールを引数に実行時翻訳部124を再帰的に呼び出して、その中間語モジュールに対して中間語プログラムを機械語プログラムへ翻訳する処理を開始させる(ステップ804)。
(3)ステップ802の判定で、読み出した中間語命令が他のモジュールへの呼出し命令でなかった場合、実行時翻訳部124は、ステップ801で読み出した中間語命令を機械語命令に変換し機械語モジュール400に書き込む(ステップ803)。
(4)次に、実行時翻訳部124は、ステップ801で引数として渡された中間語モジュール300に含まれる中間語モジュール300に未処理の中間語命令が残っているか判定し、残っている場合、ステップ801の処理に戻り、次の中間語命令に対する処理を続ける(ステップ805)。
(5)ステップ805の判定で、未処理の中間語命令が残っていなかった場合、実行時翻訳部124は、機械語モジュール400を指し示すポインタを、機械語データ125へのポインタ303に格納する(ステップ806)。
以上、本発明の実施例1について説明したが、本発明は上述した実施形態に限定されるものではない。本発明は、上述した説明から可能な範囲で、また、本発明の実施例1から導かれる範囲で、種々の変形例が可能である。例えば、上述した実施形態は、ソフトウェアを含むものであるが、本発明は、ハードウェアとソフトウェアとの組み合わせ、又はハードウェアのみによって実装され得るものである。本発明は、様々なプログラミング言語によって実装することができる。
−−−実施例2−−−
実施例2では、節電用翻訳制御部129を、実行時翻訳への移行を実行時プロファイルにより限定的に行うプロファイル付き実行時翻訳(以下、この実施例2では「公知の実行時翻訳」と称する)に組み合わせる。そこで、公知の実行時翻訳(節電効果を意識しない実行時翻訳)と比較しながら以下に説明する。
本発明の実施の形態に関わる情報処理装置の構成について、図面を参照しながら説明する。この実施形態を示す図8においては、図1の構成要素に、実行時情報計測プログラム15、計測記録テーブル17、翻訳条件設定テーブル18、および翻訳制御部128、さらには、節電用翻訳条件設定テーブル19が、追加されている。また節電用翻訳制御部129は、実施例1の節電用翻訳制御部よりも細かな制御を行う。そのほかの共通要素については、図1と同等な機能を有する。
このうち、実行時情報計測プログラム15、計測記録テーブル17、翻訳条件設定テーブル18、および翻訳制御部128は、「特許文献3」のような公知のプロファイリング付きの実行時翻訳でも使われる構成要素と同等の機能を有するものである。一方、節電用翻訳条件設定テーブル19、および節電用翻訳制御部129は、本発明に特徴的な構成要素である。
前記実行時情報計測プログラム15は、実行時情報を計測するプログラムである。実行時情報としてはメソッド(後述)等の処理の呼び出し回数(実行頻度)を指標として以下論じるが、実行時情報の指標としては、中間語種の出現比率(実行頻度)でもよく、またさらに他の指標を用いてもよい。
また、前記計測記録テーブル17は、実行時情報計測プログラム15によって、実行時情報が記録される領域である。翻訳条件設定テーブル18は、実行時翻訳を許可する条件が記録される領域である。
翻訳制御部128は、計測記録テーブル17および翻訳条件設定テーブル18の記載内容に基づいて、実行時翻訳部124を起動するか否かを判定する。
節電用翻訳制御部129は、計測記録テーブル17および翻訳条件設定テーブル18に加えて、節電用翻訳条件設定テーブル19の記載内容に基づいて、実行時翻訳部124を起動するか否かを判定する。
図9に、本発明の実施例2における計測記録テーブル17の構成を示す。当該計測記録テーブル17は、計測点番号172、シンボル名173、の情報を有する。前記シンボル名173は、当該計測点番号172に対応している。図9の例では、実行時情報として呼び出し回数を採用しており、一例としてメソッドAの呼び出し回数が計測点番号1、メソッドBの呼び出し回数が計測点番号2として登録されている様子を示している。
前記メソッドAが呼ばれた際には計測点番号1に関わる通過回数欄1710の更新を実行時情報計測プログラム15が行う(1回呼ばれるにつき1加算する等)。
図10に、本発明の実施例2における翻訳条件設定テーブル18の構成を示す。このテーブルは、基本制御部12によって、実行時翻訳の要否判定のために参照される。このテーブルにおいて、設定値181の欄は、実行時翻訳を許可するしきい値(決定基準)が記載される。図10の例では、翻訳開始回数下限183、すなわち、何回以上当該計測点が呼び出されたら実行時翻訳を必要とみなすかが、しきい値として指標に設定されている。
図11に、本発明の実施例2における節電用翻訳条件設定テーブル19の構成を示す。翻訳回数下限(節電要求時)191の欄は、実行時翻訳を許可するしきい値(決定基準)が記載される。図11の場合は、実行時翻訳を許可するために必要な当該計測点の呼び出し回数の下限1910として10000が設定されている。これは、翻訳条件設定テーブル18の下限回数1810(例では値が“100”)と比べると実行時翻訳へのしきいが高いことを意味しており、この節電要求時のしきい値を用いると、実行時翻訳が節電要求前よりも劣勢になる。結果として、実行時翻訳に伴う電力消費を抑制でき節電になる。
図12は公知の実行時翻訳にいたる基本制御部121の起動時における処理手順を説明するフローチャートである。節電効果は意識しない処理手順に相当する。図12に示すフローは、基本制御部121が、中間語ファイル161を読み込んだ後、中間語解釈実行部123と、実行時翻訳部124とを起動する処理を示している。このとき、中間語解釈実行部123と、実行時翻訳部124とは並行して実行されるて直列に実行されてもよい。
(1)まず、基本制御部121は、中間語ファイル読み込み部122を起動し、中間語ファイル読み込み部122の処理が完了するのを待つ(ステップ1101)。
(2)基本制御部121は、中間語ファイル読み込み部122の処理の完了後、中間語解釈実行部123を起動する(ステップ1102)。
以下、ステップ1102で起動された中間語解釈実行部123の処理について説明する。図13は実施例2における中間語解釈実行部123の処理手順を説明するフローチャート(公知)である。このフローチャートでは、中間語解釈実行部123が、中間語データ127の解釈実行を繰り返す処理を示している。
(3−1)中間語解釈実行部123は、図5に説明したステップ502の処理で基本制御部121により起動されると、中間語データ127から1つだけ中間語モジュール300を選択する。初期状態では、"MAIN"をモジュール名301に持つ中間語モジュールを選択する(ステップ1201)。
(3−2)中間語解釈実行部123は、ステップ1201で選択した中間語モジュール300が機械語プログラムへ翻訳済みか否かを判定し、翻訳済みであった場合、ステップ1201で選択した中間語モジュール300に含まれる機械語データ125へのポインタ303が指し示す機械語モジュール400に格納された機械語プログラムを、基本制御部121に実行させ、実行終了後ステップ1201の処理に戻る(ステップ1202、1203)。
(3−3)次に、中間語解釈実行部123は、実行時情報計測プログラム15を起動する(ステップ1204)。起動された実行時情報計測プログラム15は、公知である所定の実行時情報計測のための処理を実施する。公知である所定の実行時情報計測の処理の一例として、ここでは呼び出し回数を記録していく。すなわち、実行時情報記録テーブル17の通過回数171の欄の更新(カウントアップ)を、実行時情報計測プログラム15が実施する。
たとえば、解釈しようとしている中間語がメソッドAだとすると、実行時情報計測プログラム15は、計測点1の通過回数が1回増えるという情報を残すために、記録されている数値を1加算して1710の欄を上書きする。また、メソッドBである場合には、計測点2の通過回数が1回増えたことを示す情報をテーブル1711に記録する。
(3−4)中間語解釈実行部123は、ステップ1201で選択した中間語モジュール300に含まれる中間語データ領域304の1命令を読み込み、その命令が終了命令か否かを判定し、終了命令である場合処理を終了する(ステップ1205、1206)。
(3−5)ステップ1206の判定で読み込んだ命令が終了命令でなかった場合、中間語解釈実行部123は、ステップ1205で読み込んだ命令が呼出し命令か否かを判定し、その命令が呼出し命令であった場合処理を終了し、そうでない場合、ステップ1205で読み込んだ命令を直接実行する。バイトコードアクセラレータ1231が搭載されている場合にはここで併用される。その実行後、ステップ705の処理に戻って、次の命令の処理を続ける(ステップ1207、1208)。
以上が中間語解釈実行部123の処理である。次に、図12のフローチャートにおけるステップ1103以降に説明を戻す。
(4)基本制御部121は、翻訳制御部128を起動する(ステップ1103)。翻訳制御部128の処理フローを図14に示す。ここではメソッドAを対象にした例を示す。まず、翻訳制御部128は、当該計測点(メソッドA)が翻訳されているかを確認する(ステップ1501)。翻訳済みであれば何もせずに終了する(ステップ1512)。翻訳済みでなければ、翻訳制御部128は、実行時情報を参照し、条件つきで実行時翻訳を行う。
他方、前記ステップ1501において、計測点(メソッドA)が翻訳されていないと判定された場合、条件判定のために、翻訳制御部128は、計測記録テーブル17および翻訳条件設定テーブル18の記載内容を参照する(ステップ1502、1504、1505,1506)。すなわち、計測記録テーブル17、翻訳条件設定テーブル18の内容次第で、翻訳制御部128の動作は、次の2通りに、分かれる。
(a)通過回数が翻訳開始回数下限1810に到達した場合、つまり翻訳開始回数下限<=通過回数のとき、図8に示していない実行時翻訳要求フラグをONにする。(実行時翻訳を行わせる)(ステップ1510、ステップ1511)。
(b)通過回数が翻訳開始回数下限に到達していない場合、つまり、翻訳開始回数下限>通過回数のとき、前記実行時翻訳要求フラグをOFFにする。(実行時翻訳は行わせない)(ステップ511)。
以上が、翻訳制御部128の処理である。次に、図12のフローチャートにおけるステップ1104以降に説明を戻す。
(5)次に、基本制御部121は、前記実行時翻訳要求フラグがONの場合には、実行時翻訳部124を起動する(ステップ1104、ステップ1105)。同OFFの場合には何もせずに終了する。こうして、実行時翻訳がなされる場合となされない場合との分岐が生じる。
実行時翻訳部124の処理手順については、実施例1で示した図7の手順と同一である。以上で公知の実行時翻訳の手順は終了する。この公知の実行時翻訳においては、節電用翻訳条件設定テーブル19と節電用翻訳制御部129が関与しない。一方ここから説明する本発明の実施例2においては、節電用翻訳条件設定テーブル19と節電用翻訳制御部129の関与が、公知の実行時翻訳と比べて特徴的である。節電要求監視部126が節電モードへの移行を検知した場合には、節電用翻訳制御部129が、その直前に実行していた環境よりも、実行時翻訳の起きやすさを変える制御を行うことが本発明で特徴的である。
以下、図を参照して本発明の実施例2に特徴的な処理手順を説明する。なお、これにより本発明が限定されるものではない。図15は、本発明に特徴的な節電効果をふまえて実行時翻訳行うまでの処理手順を説明するフローチャートである。図15に示すフローは、基本制御部121が、中間語ファイル161を読み込んだ後、中間語解釈実行部123と、実行時翻訳部124とを起動する処理を示している。このとき、中間語解釈実行部123と、実行時翻訳部124とは並行して実行されても、直列に実行されてもよい。
(1)まず、基本制御部121は、中間語ファイル読み込み部122を起動し、中間語ファイル読み込み部122の処理が完了するのを待つ(ステップ1401)。
(2)基本制御部121は、中間語ファイル読み込み部122の処理の完了後、中間語解釈実行部123を起動する(ステップ1402)。
(3)中間語解釈実行部123は上述の図12のフローと同等に処理が進む。ここまでは、公知の処理フローと同等である。
(4)次に、基本制御部121は、公知の実行時翻訳と異なり、翻訳制御部128ではなく節電用翻訳制御部129を起動する(ステップ1403)。これが、本発明に特徴的な実行時翻訳に固有のステップである。
節電用翻訳制御部129の処理フローを図16に示す。メソッドAを対象にした例で示す。まず、当該計測点(メソッドA)が翻訳されているかを確認する(ステップ1601)。翻訳済みであれば何もせずに終了する(ステップ1612)。翻訳済みでなければ、節電用翻訳制御部129は、節電フラグを参照する(ステップ1603)。
節電フラグがOFFを示している場合には、公知の実行時翻訳と同じく、節電用翻訳制御部129は、計測記録テーブル17および翻訳条件設定テーブル18の記載内容を参照する(ステップ1602、1607、1608、1609)。すなわち、計測記録テーブル17、翻訳条件設定テーブル18の内容次第で、動作は、次の2通りに、分かれる。
(a)通過回数が翻訳開始回数下限に到達した場合、つまり、翻訳開始回数下限<=通過回数のとき、前記実行時翻訳要求フラグをONにする。(実行時翻訳を行わせる)(ステップ1610、ステップ1611)。
(b)通過回数が翻訳開始回数下限に到達していない場合、つまり翻訳開始回数下限>通過回数のとき、前記実行時翻訳要求フラグをOFFにする。(実行時翻訳は行わせない)(ステップ1611)。
一方、節電フラグがONの場合には、節電用翻訳制御部129は、計測記録テーブル17、および公知の実行時翻訳とは異なり、節電用翻訳条件設定テーブル19の記載内容を参照する(ステップ1602、1604、1605、1606)。すなわち、計測記録テーブル17、節電用翻訳条件設定テーブル19の内容次第で、動作は、次の2通りに、分かれる。
(a)通過回数が翻訳開始回数下限(節電要求時)1910に到達した場合、つまり、翻訳開始回数下限(節電要求時)<=通過回数のとき、前記実行時翻訳要求フラグをONにする。(実行時翻訳を行わせる)(ステップ1610、ステップ1611)。
(b)通過回数が翻訳開始回数下限(節電要求時)(1910)に到達していない場合、つまり翻訳開始回数下限(節電要求時)>通過回数のとき、前記実行時翻訳要求フラグをOFFにする。(実行時翻訳は行わせない)(ステップ1611)。
以上が節電用翻訳制御部129の処理である。次に、図15のフローチャートにおけるステップ1404以降に説明を戻す。
(5)次に、基本制御部121は、前記実行時翻訳要求フラグがONの場合には、実行時翻訳部124を起動する(ステップ1404、ステップ1405)。同OFFの場合には何もせずに終了する。こうして、実行時翻訳がなされる場合となされない場合との分岐が生じる。
実行時翻訳部124の処理手順については、実施例1で示した図8の手順と同一である。以上、本発明の実施例2について説明したが、本発明は上述した実施形態に限定されるものではない。本発明は、上述した説明から可能な範囲で、また、本発明の実施例2から導かれる範囲で、種々の変形例が可能である。例えば、上述した実施形態は、ソフトウェアを含むものであるが、本発明は、ハードウェアとソフトウェアとの組み合わせ、又はハードウェアのみによって実装され得るものである。本発明は、様々なプログラミング言語によって実装することができる。
また、節電用翻訳制御部129による制御の手段の一例として、節電用翻訳条件設定テーブル19を用いずに、翻訳条件設定テーブル18の設定値を更新することも可能である。すなわち、実行時翻訳のしきいを高くして実行時翻訳が節電要求前よりも劣勢にする目的であれば、翻訳条件設定テーブル18の設定値181を、大きい値に変更してもよい。
また、実施例1および実施例2の双方ともに、節電モード指定の有無の2値での動作分岐で示したが、電池残量の値の連続的な変化を取得し、数値の変化分だけ細かく動作を制御(しきい値を連続的に変化)させてもよい。
また、計測記録テーブル17は、中間語モジュール300に対応する管理データ305に格納して実行してもよい。
なお、実行時翻訳を抑制し、中間語による実行を優先した場合に、中間語(バイトコード)のバイトコードアクセラレータによるサポート語の出現比率があまりにも低いケースも起こりうる。
このケースでは、中間語実行の過半がソフトウェアの中間語解釈実行部に委ねられ著しく実行速度が低下するだけでなく、CPU負荷(ダイナミックステップ)が増える分だけ電力消費が増える、すなわち、実行時翻訳を抑制したのに節電に逆効果ということになりかねない。この節電面での逆効果に歯止めをかけるために、(実行時翻訳を抑制するだけでなく)実行時翻訳への移行を緩和する条件を併用してもよい。いずれにしても実行時翻訳への条件設定において節電効果をふまえる点では共通であり、本発明の趣旨を逸脱しない範囲で実施できる。
さらに、バイトコードアクセラレータ1231が備わっていない構成であってもよい。バイトコードアクセラレータ1231は備わっていない構成であっても、実行翻訳の頻度が、電力消費と実行速度等のほかの性能項目との間でのトレードオフを発生させるような、情報処理装置ならば、本発明の趣旨を逸脱しない範囲で実施できるためである。
また、上記実施の形態では、ハードディスク等の外部記憶装置160に格納された諸構成要素が主記憶装置121に転送して参照されたり実行されたりするものとして示したが、このような諸手段はCD−ROMやフロッピーディスク等の外部記憶媒体、あるいはフラッシュEEPROM等の半導体メモリを含む記憶媒体に格納されているものを読み出して使用するものとしてもよいし、データ通信によって外部から伝送されてきたものをなんらかの記憶媒体に格納するものとしてもよい。
また、本実施形態においては、ハードウェアアクセラレータにおける前記インタプリタ処理が、実行時翻訳手段における実行時翻訳の処理よりも電力消費が少ないことを前提として説明を行ったが、前記インタプリタ処理が前記実行時翻訳の処理より電力消費が多い状況が存在した場合、請求項7〜12に記載した通り、実行時翻訳の実行可否を判断するのに代わって、インタプリタ処理の実行可否を判断し、その後の実行指示をなすものとできる。
本発明によれば、状況選択的に実行時翻訳と中間語解釈実行との配分を変更することで、高い水準の実行速度を維持したまま情報処理装置の電力消費を抑制できる。特に、ハードウェアクセラレータによって中間語をCPUに固有の命令に変換する情報処理装置において、一層の高速化を目的に実行時翻訳(JITコンパイラ)を併用する場合に、節電が必要な状況においては電力消費面で抑制のききやすい方式(一般的にはバイトコードアクセラレータを伴う中間語解釈実行方式)の実行頻度を上げ、逆に節電よりも高速化が重視される状況においては実行時翻訳の実行頻度を上げることで、電力消費と実行速度のトレードオフを、最適化することが容易になる。
したがって、実行時翻訳と中間語解釈実行との配分を可変とし、適宜な実行速度を維持しつつ電力消費の抑制が可能となる。
以上、本発明の実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
本発明の一実施の形態における情報処理装置(実施例1)の構成を示す図である。 中間語データの一例を示す図である。 機械語データの一例を示す図である。 基本制御部の処理フローを示す図である。 中間語ファイル読み込み部の処理フローを示す図である。 中間語解釈実行部の処理フローを示す図である。 実行時翻訳部の処理フローを示す図である。 本発明の一実施の形態における情報処理装置(実施例2)の構成を示す図である。 本発明の一実施の形態における計測記録テーブルを示す図である。 本発明の一実施の形態における翻訳条件設定テーブルを示す図である。 本発明の一実施の形態における節電時翻訳条件設定テーブルを示す図である。 実施例2における公知の実行時翻訳に関わる基本制御部の処理フローを示す図である。 実施例2における中間語解釈実行部の処理フローを示す図である。 実施例2における公知の実行時翻訳に関わる翻訳制御部の処理フローを示す図である。 実施例2における本発明の基本制御部の処理フローを示す図である。 実施例2における本発明の節電用翻訳制御部の処理フローを示す図である。
符号の説明
1 情報処置装置
110 中央処理装置
120 主記憶装置
121 基本制御部
122 中間語ファイル読み込み部
123 中間語解釈実行部、解釈実行手段
124 実行時翻訳部、実行時翻訳手段
125 機械語データ
126 節電要求監視部
127 中間語データ
128 翻訳制御部
129 節電用翻訳制御部
130 入力装置
140 表示装置
150 通信装置
160 外部記憶装置
161 中間語ファイル
300 中間語モジュール
301 モジュール名
302 管理データへのポインタ
303 機械語データへのポインタ
304 中間語データ領域
305 中間語モジュールに対応する管理データ
400 機械語モジュール
1231バイトコードアクセラレータ

Claims (14)

  1. ソースプログラムまたは中間語プログラムを解釈実行する解釈実行手段と、前記プログラムを計算機固有の機械語プログラムへ翻訳する実行時翻訳手段とを備える情報処理装置であって、
    当該情報処理装置の制御部から得た当該情報処理装置の電力消費状況に関する情報、ないし入力インターフェイスにてユーザから受け付けた節電要求に関する情報に従って、節電の要否情報を記憶装置にて設定および更新する節電電要求監視部と、
    前記節電の要否情報に応じて、前記実行時翻訳手段における前記プログラムの実行時翻訳の実行可否を決定し、当該可否決定に基づいて前記実行時翻訳手段に対する実行時翻訳処理の実行指示を行うと共に、当該情報処理装置における電力消費状況の変化に応じて、前記実行時翻訳の実行可否の決定基準を変更する節電用翻訳制御部と、
    を有することを特徴とする情報処理装置。
  2. 請求項1において、
    前記決定基準は、前記プログラムの実行頻度に関して定められた所定実行頻度であり、
    前記節電用翻訳制御部が、前記決定基準の変更に際し前記電力消費状況が節電を要するものであった場合に、前記決定基準たる所定実行頻度を前記電力消費状況が節電を要しないものであった場合より高いものとすることを特徴とする情報処理装置。
  3. 請求項1において、
    前記節電用翻訳制御部が、前記可否決定に際し、前記節電要求が有る場合に前記プログラムの実行時翻訳の実行を否定し、前記節電要求が無い場合に前記プログラムの実行時翻訳の実行を許可することを特徴とする情報処理装置。
  4. 請求項1において、
    前記節電用翻訳制御部が、前記節電要求の強弱に応じて、前記実行時翻訳手段における前記プログラムの実行時翻訳の実行可否を決定し、当該可否決定に基づいて前記実行時翻訳手段に対する実行時翻訳処理の実行指示を行うことを特徴とする情報処理装置。
  5. 請求項において、
    前記節電用翻訳制御部が、前記可否決定に際し、前記節電要求が所定基準より強い節電を要求するものである場合に前記プログラムの実行時翻訳の実行を否定し、前記節電要求が所定基準より弱い節電を要求するものである場合に前記プログラムの実行時翻訳の実行を許可することを特徴とする情報処理装置。
  6. ソースプログラムまたは中間語プログラムを解釈実行する解釈実行手段と、解釈実行手段と連動して前記プログラムに含まれる命令表現を情報処理装置のCPUに固有の命令に変換するハードウェアアクセラレータと、前記プログラムを計算機固有の機械語プログラムへ翻訳する実行時翻訳手段とを備える情報処理装置であって、
    当該情報処理装置の制御部から得た当該情報処理装置の電力消費状況に関する情報、ないし入力インターフェイスにてユーザから受け付けた節電要求に関する情報に従って、節電の要否情報を記憶装置にて設定および更新する節電電要求監視部と、
    前記節電の要否情報に応じて、前記実行時翻訳手段における前記プログラムの実行時翻訳の実行可否、または前記ハードウェアアクセラレータを伴う前記インタプリタ処理の実行可否を決定し、当該可否決定に基づいて前記実行時翻訳手段に対する実行時翻訳処理の実行指示または前記ハードウェアアクセラレータに対するインタプリタ処理の実行指示を行うと共に、当該情報処理装置における電力消費状況の変化に応じて、前記実行時翻訳の実行可否または前記ハードウェアアクセラレータを伴う前記インタプリタ処理の実行可否の決定基準を変更する節電用翻訳制御部と、
    を有することを特徴とする情報処理装置。
  7. 請求項において、
    前記決定基準は、前記プログラムの実行頻度に関して定められた所定実行頻度であり、
    前記節電用翻訳制御部が、前記決定基準の変更に際し前記電力消費状況が節電を要するものであった場合に、前記決定基準たる所定実行頻度を前記電力消費状況が節電を要しないものであった場合より高いものとすることを特徴とする情報処理装置。
  8. 請求項において、
    前記節電用翻訳制御部が、前記可否決定に際し、前記節電要求が有る場合に前記プログラムの実行時翻訳またはインタプリタ処理の実行を否定し、前記節電要求が無い場合に前記プログラムの実行時翻訳またはインタプリタ処理の実行を許可することを特徴とする情報処理装置。
  9. 請求項において、
    前記節電用翻訳制御部が、前記節電要求の強弱に応じて、前記実行時翻訳手段における前記プログラムの実行時翻訳の実行可否または前記ハードウェアアクセラレータを伴う前記インタプリタ処理の実行可否を決定し、当該可否決定に基づいて前記実行時翻訳手段に対する実行時翻訳処理の実行指示またはハードウェアアクセラレータに対するインタプリタ処理の実行指示を行うことを特徴とする情報処理装置。
  10. 請求項において、
    前記節電用翻訳制御部が、前記可否決定に際し、前記節電要求が所定基準より強い節電を要求するものである場合に前記プログラムの実行時翻訳またはインタプリタ処理の実行を否定し、前記節電要求が所定基準より弱い節電を要求するものである場合に前記プログラムの実行時翻訳またはインタプリタ処理の実行を許可することを特徴とする情報処理装置。
  11. ソースプログラムまたは中間語プログラムを解釈実行する解釈実行手段と、前記プログラムを計算機固有の機械語プログラムへ翻訳する実行時翻訳手段とを備える情報処理装置
    当該情報処理装置の制御部から得た当該情報処理装置の電力消費状況に関する情報、ないし入力インターフェイスにてユーザから受け付けた節電要求に関する情報に従って、節電の要否情報を記憶装置にて設定および更新し
    前記節電の要否情報に応じて、前記実行時翻訳手段における前記プログラムの実行時翻訳の実行可否を決定し、当該可否決定に基づいて前記実行時翻訳手段に対する実行時翻訳処理の実行指示を行うと共に、当該情報処理装置における電力消費状況の変化に応じて、前記実行時翻訳の実行可否の決定基準を変更する、
    ことを特徴とする情報処理方法。
  12. ソースプログラムまたは中間語プログラムを解釈実行する解釈実行手段と、解釈実行手段と連動して前記プログラムに含まれる命令表現を情報処理装置のCPUに固有の命令に変換するハードウェアアクセラレータと、前記プログラムを計算機固有の機械語プログラムへ翻訳する実行時翻訳手段とを備える情報処理装置
    当該情報処理装置の制御部から得た当該情報処理装置の電力消費状況に関する情報、ないし入力インターフェイスにてユーザから受け付けた節電要求に関する情報に従って、節電の要否情報を記憶装置にて設定および更新し
    前記節電の要否情報に応じて、前記実行時翻訳手段における前記プログラムの実行時翻訳の実行可否、または前記ハードウェアアクセラレータを伴う前記インタプリタ処理の実行可否を決定し、当該可否決定に基づいて前記実行時翻訳手段に対する実行時翻訳処理の実行指示または前記ハードウェアアクセラレータに対するインタプリタ処理の実行指示を行うと共に、当該情報処理装置における電力消費状況の変化に応じて、前記実行時翻訳の実行可否または前記ハードウェアアクセラレータを伴う前記インタプリタ処理の実行可否の決定基準を変更する
    ことを特徴とする情報処理方法。
  13. ソースプログラムまたは中間語プログラムを解釈実行する解釈実行手段と、前記プログラムを計算機固有の機械語プログラムへ翻訳する実行時翻訳手段とを備える情報処理装置に、
    当該情報処理装置の制御部から得た当該情報処理装置の電力消費状況に関する情報、ないし入力インターフェイスにてユーザから受け付けた節電要求に関する情報に従って、節電の要否情報を記憶装置にて設定および更新する処理と
    前記節電の要否情報に応じて、前記実行時翻訳手段における前記プログラムの実行時翻訳の実行可否を決定し、当該可否決定に基づいて前記実行時翻訳手段に対する実行時翻訳処理の実行指示を行うと共に、当該情報処理装置における電力消費状況の変化に応じて、前記実行時翻訳の実行可否の決定基準を変更する処理と、
    を実行させることを特徴とするプログラム。
  14. ソースプログラムまたは中間語プログラムを解釈実行する解釈実行手段と、解釈実行手段と連動して前記プログラムに含まれる命令表現を情報処理装置のCPUに固有の命令に変換するハードウェアアクセラレータと、前記プログラムを計算機固有の機械語プログラムへ翻訳する実行時翻訳手段とを備える情報処理装置に、
    当該情報処理装置の制御部から得た当該情報処理装置の電力消費状況に関する情報、ないし入力インターフェイスにてユーザから受け付けた節電要求に関する情報に従って、節電の要否情報を記憶装置にて設定および更新する処理と
    前記節電の要否情報に応じて、前記実行時翻訳手段における前記プログラムの実行時翻訳の実行可否、または前記ハードウェアアクセラレータを伴う前記インタプリタ処理の実行可否を決定し、当該可否決定に基づいて前記実行時翻訳手段に対する実行時翻訳処理の実行指示または前記ハードウェアアクセラレータに対するインタプリタ処理の実行指示を行うと共に、当該情報処理装置における電力消費状況の変化に応じて、前記実行時翻訳の実行可否または前記ハードウェアアクセラレータを伴う前記インタプリタ処理の実行可否の決定基準を変更する処理と、
    を実行させることを特徴とするプログラム。
JP2004311095A 2004-10-26 2004-10-26 情報処理装置、情報処理方法、およびプログラム Expired - Fee Related JP4846226B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004311095A JP4846226B2 (ja) 2004-10-26 2004-10-26 情報処理装置、情報処理方法、およびプログラム
EP05021658A EP1653355A3 (en) 2004-10-26 2005-10-04 Information processor, information processing method, and programs therefor
US11/244,077 US7739672B2 (en) 2004-10-26 2005-10-06 Information processor, information processing method, and programs therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004311095A JP4846226B2 (ja) 2004-10-26 2004-10-26 情報処理装置、情報処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2006126947A JP2006126947A (ja) 2006-05-18
JP4846226B2 true JP4846226B2 (ja) 2011-12-28

Family

ID=35781331

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004311095A Expired - Fee Related JP4846226B2 (ja) 2004-10-26 2004-10-26 情報処理装置、情報処理方法、およびプログラム

Country Status (3)

Country Link
US (1) US7739672B2 (ja)
EP (1) EP1653355A3 (ja)
JP (1) JP4846226B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101118487B (zh) * 2006-08-02 2011-09-28 鸿富锦精密工业(深圳)有限公司 量测程序转换系统及方法
KR100964582B1 (ko) 2008-08-20 2010-06-21 주식회사 컴퍼니원헌드레드 스크립트 언어의 실행속도 향상 시스템
JP2010191734A (ja) * 2009-02-19 2010-09-02 Hitachi Software Eng Co Ltd 画像再生装置及び中間語プログラム実行方法
US9482460B2 (en) 2010-12-17 2016-11-01 Volvo Truck Corporation Truck having intermediate heat exchanging circuit between cabin and cargo container
WO2012105000A1 (ja) 2011-02-01 2012-08-09 富士通株式会社 プログラム実行方法
US10108442B1 (en) * 2017-09-18 2018-10-23 International Business Machines Corporation Optimization and affinity for hypervisor-based just-in-time translator

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2803320B2 (ja) * 1990-04-27 1998-09-24 日本曹達株式会社 誘電体磁器組成物
US5392437A (en) * 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
JP3520611B2 (ja) * 1995-07-06 2004-04-19 株式会社日立製作所 プロセッサの制御方法
JP3538292B2 (ja) * 1997-02-28 2004-06-14 株式会社日立製作所 実行時プログラム翻訳方法
JPH10254712A (ja) 1998-04-23 1998-09-25 Hitachi Ltd 多機種対応型情報処理システム、および、方法
ES2340370T3 (es) * 1998-10-10 2010-06-02 International Business Machines Corporation Conversion de codigo de programa con traduccion reducida.
US6324687B1 (en) * 1998-12-03 2001-11-27 International Business Machines Corporation Method and apparatus to selectively control processing of a method in a java virtual machine
US6332216B1 (en) * 1999-03-09 2001-12-18 Hewlett-Packard Company Hybrid just-in-time compiler that consumes minimal resource
JP2000267768A (ja) * 1999-03-16 2000-09-29 Toshiba Tec Corp 携帯用端末装置
JP3705022B2 (ja) * 1999-07-09 2005-10-12 株式会社日立製作所 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム
JP2001056764A (ja) * 1999-08-18 2001-02-27 Access:Kk 仮想計算機の実行方法および装置
JP4654485B2 (ja) * 2000-04-28 2011-03-23 ソニー株式会社 情報処理システム、情報処理装置、情報処理方法
JP2002189539A (ja) * 2000-10-02 2002-07-05 Fujitsu Ltd ソフトウェア処理装置、プログラム及び記録媒体
JP2002169696A (ja) * 2000-12-04 2002-06-14 Mitsubishi Electric Corp データ処理装置
JP2002315203A (ja) * 2001-04-12 2002-10-25 Hitachi Maxell Ltd 携帯式小型電気機器
JP2003131765A (ja) * 2001-10-26 2003-05-09 Matsushita Electric Ind Co Ltd 携帯型端末装置と、そのデータバックアップ方法および電源制御方法
JP3808755B2 (ja) * 2001-11-07 2006-08-16 富士通株式会社 Jitコンパイラを備えた仮想計算機
US6996814B2 (en) * 2001-11-14 2006-02-07 Sun Microsystems, Inc. Method and apparatus for dynamically compiling byte codes into native code
JP4035004B2 (ja) 2002-06-26 2008-01-16 株式会社ルネサステクノロジ 情報処理装置
US6934865B2 (en) * 2002-07-09 2005-08-23 University Of Massachusetts Controlling a processor resource based on a compile-time prediction of number of instructions-per-cycle that will be executed across plural cycles by the processor
US7080267B2 (en) * 2002-08-01 2006-07-18 Texas Instruments Incorporated Methodology for managing power consumption in an application
JP2004157590A (ja) * 2002-11-01 2004-06-03 Ricoh Co Ltd 携帯型電子機器
US7337334B2 (en) * 2003-02-14 2008-02-26 International Business Machines Corporation Network processor power management
US7437704B2 (en) * 2003-08-28 2008-10-14 Ines Antje Dahne-Steuber Real-time generation of software translation
US7458070B2 (en) * 2004-03-05 2008-11-25 International Business Machines Corporation Reducing the run-time cost of invoking a server page

Also Published As

Publication number Publication date
EP1653355A3 (en) 2008-03-12
JP2006126947A (ja) 2006-05-18
US20060101426A1 (en) 2006-05-11
EP1653355A2 (en) 2006-05-03
US7739672B2 (en) 2010-06-15

Similar Documents

Publication Publication Date Title
US8924922B2 (en) Pre-compiling hosted managed code
US7383417B2 (en) Prefetching apparatus, prefetching method and prefetching program product
US6901587B2 (en) Method and system of cache management using spatial separation of outliers
JP4837456B2 (ja) 情報処理装置
US7765527B2 (en) Per thread buffering for storing profiling data
US7707359B2 (en) Method and apparatus for selectively prefetching based on resource availability
US8286152B2 (en) Systems, methods, and computer products for just-in-time compilation for virtual machine environments for fast application startup and maximal run-time performance
US20040236927A1 (en) Processor system having java accelerator
US8650537B2 (en) Optimizing an object-oriented program by transforming invocations of synthetic accessor methods
JP2004070944A (ja) アプリケーション向けにオペレーティングシステム機能を拡張するシステムおよび方法
KR100725393B1 (ko) 자바 가상 머신에서 바이트 코드의 수행 시간을 줄이는시스템 및 방법
KR100931460B1 (ko) 단일 스레드 응용을 지원하기 위한 시간-멀티플렉스된스펙큘레이티브 멀티 스레딩
US8341613B2 (en) Reducing stack space consumption via head-call optimization
US7739672B2 (en) Information processor, information processing method, and programs therefor
US20060149940A1 (en) Implementation to save and restore processor registers on a context switch
US20090276575A1 (en) Information processing apparatus and compiling method
US8589899B2 (en) Optimization system, optimization method, and compiler program
JP4093484B2 (ja) コンパイラ、コンパイル方法、コンパイルプログラム、及び記録媒体
JP2006163596A (ja) 情報処理システム、制御方法、及びプログラム
US20110010528A1 (en) Information processing device and vector information processing device
US10180839B2 (en) Apparatus for information processing with loop cache and associated methods
WO2001013223A1 (fr) Procede et appareil permettant de faire fonctionner un ordinateur virtuel
You et al. A static region‐based compiler for the Dalvik virtual machine
CN118377637A (zh) 减少冗余缓存一致性操作的方法、装置、设备和存储介质
US20050223370A1 (en) Stack caching using code sharing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070523

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100817

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101015

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110412

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110708

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110713

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111012

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees