JP5473768B2 - マルチパス動的プロファイリングのためのコンピュータに実行させる方法、システム及びコンピュータ・プログラム - Google Patents
マルチパス動的プロファイリングのためのコンピュータに実行させる方法、システム及びコンピュータ・プログラム Download PDFInfo
- Publication number
- JP5473768B2 JP5473768B2 JP2010109001A JP2010109001A JP5473768B2 JP 5473768 B2 JP5473768 B2 JP 5473768B2 JP 2010109001 A JP2010109001 A JP 2010109001A JP 2010109001 A JP2010109001 A JP 2010109001A JP 5473768 B2 JP5473768 B2 JP 5473768B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- application
- profile data
- regions
- bad
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
- G06F8/4442—Reducing the number of cache misses; Data prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/885—Monitoring specific for caches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Devices For Executing Special Programs (AREA)
Description
(1)各基本ブロックの開始点を通知するための関数呼び出し(例えば、__pdf_profile_PM_start()という名前の関数)を提供する注釈を、各基本ブロックの開始点に装備し、
(2)各基本ブロックの終了点を通知するための関数呼び出し(例えば、__pdf_profile_PM_end()という名前の関数)を提供する注釈を、各基本ブロックの終了点に装備する。
さらに、ユーザが細粒度プロファイリングを選択すれば、マルチパス・プロファイラ150は、コード154のメモリ参照ごとに注釈164を挿入することにより、コード154を装備化することができる。このような場合、マルチパス・プロファイラ150は、プロファイルすべき各メモリ参照の位置を通知するためのマーカ(例えば、__pdf_profile_cache_miss()という名前の関数)を提供する注釈を、各メモリ参照に装備する。注釈164については、注釈マネージャ240に関連して以下で説明する。
(1)性能カウンタを読み取る。
(2)指定されたdataType及びlengthを有する、LoadStoreTypeの動作を行う。
(3)再び性能カウンタを読み取り、性能カウンタが1だけ増加されているか否かをチェックする。
(4)そうであれば、1を加えることによりcounterを更新する(そうでなければ、リターンする)。
簡述すると、低水準の注釈は、アプリケーションの実行中に、プロファイル・データ(例えば、一のコード領域又はコード部分領域についてのキャッシュ・ミスのカウント)を収集する。実施形態では、コンパイラ148は、性能カウンタを直接的に読み取るためのコード・セグメントを生成することにより、プロファイリング・オーバーヘッドを減少させることができる。例えば、コンパイラ148は、関数呼び出しを、実行可能コードのインライン・シーケンスに変換することができる。
102・・・コンピュータ
104・・・プロセッサ
106・・・メモリ
108・・・ストレージ
148・・・コンパイラ
150・・・マルチパス・プロファイラ
152・・・装備化アプリケーション
154・・・アプリケーション・コード
156・・・プロファイル・データ
158・・・粒度レベル
160・・・ユーザ・オプション
162・・・しきい値
164・・・注釈
210・・・粒度マネージャ
220・・・オプション・マネージャ
230・・・しきい値マネージャ
240・・・注釈マネージャ
250・・・領域エバリュエータ
Claims (24)
- コンピュータ内の1つ以上のプロセッサによって実行される、マルチパス動的プロファイリングのためのコンピュータに実行させる方法であって、
アプリケーションの複数のコード領域が前記1つ以上のプロセッサ上でリンクされ且つ実行されるときにプロファイル・データを生成するための注釈を、前記複数のコード領域に装備するステップと、
前記アプリケーションを実行することにより、前記複数のコード領域の各々のためのプロファイル・データを生成するステップと、
前記生成されたプロファイル・データから、キャッシュ・ミスのカウントが予定のしきい値を超える一のコード領域を、一の不良コード領域として識別するステップと、
前記複数のコード領域がリンクされ且つ実行されるときにプロファイル・データを生成するための注釈を、前記不良コード領域に装備するステップと、
前記アプリケーションを実行することにより、前記不良コード領域を含む前記複数のコード領域のための追加のプロファイル・データを生成するステップと、
前記追加のプロファイル・データから、前記不良コード領域の一の部分領域を識別するステップとを含む、コンピュータに実行させる方法。 - 前記複数のコード領域が、前記アプリケーションの少なくとも1つのコンパイル単位を評価することによって識別される、請求項1記載のコンピュータに実行させる方法。
- 前記プロファイル・データが、少なくとも1つのハードウェア性能カウンタに基づいて生成される、請求項1記載のコンピュータに実行させる方法。
- 前記プロファイル・データが、各コード領域を実行する間に生じるキャッシュ・ミスのカウントを含む、請求項1記載のコンピュータに実行させる方法。
- 前記複数のコード領域が、前記アプリケーションのソース・コード、前記アプリケーションのオブジェクト・コード及び前記アプリケーションの中間コンパイラ表現から選択される、請求項1記載のコンピュータに実行させる方法。
- 前記識別された部分領域が、メモリ参照を含む前記アプリケーションのソース・コード内の命令に対応する、請求項1記載のコンピュータに実行させる方法。
- 前記識別された部分領域を最適化するステップをさらに含み、
当該最適化するステップが、インライニング、クローニング、アウトライニング、間接呼び出しの特化、不良ロード主導型データ・プリフェッチング、データ再編成及び命令スケジューリングのうち少なくとも1つを行うことを含む、請求項1記載のコンピュータに実行させる方法。 - 各注釈が、少なくとも実行時ライブラリへの関数呼び出し又は命令のインライン・シーケンスから選択された注釈コードに拡張される、請求項1記載のコンピュータに実行させる方法。
- マルチパス動的プロファイリングのためのコンピュータ・プログラムであって、前記プログラムが、プロセッサに、
アプリケーションの複数のコード領域が前記プロセッサ上でリンクされ且つ実行されるときにプロファイル・データを生成するための注釈を、前記複数のコード領域に装備するステップと、
前記アプリケーションを実行することにより、前記複数のコード領域の各々のためのプロファイル・データを生成するステップと、
前記生成されたプロファイル・データから、キャッシュ・ミスのカウントが予定のしきい値を超える一のコード領域を、一の不良コード領域として識別するステップと、
前記複数のコード領域がリンクされ且つ実行されるときにプロファイル・データを生成するための注釈を、前記不良コード領域に装備するステップと、
前記アプリケーションを実行することにより、前記不良コード領域を含む前記複数のコード領域のための追加のプロファイル・データを生成するステップと、
前記追加のプロファイル・データから、前記不良コード領域の一の部分領域を識別するステップとを実行させる、コンピュータ・プログラム。 - 前記複数のコード領域が、前記アプリケーションの少なくとも1つのコンパイル単位を評価することによって識別される、請求項9記載のコンピュータ・プログラム。
- 前記プロファイル・データが、少なくとも1つのハードウェア性能カウンタに基づいて生成される、請求項9記載のコンピュータ・プログラム。
- 前記プロファイル・データが、各コード領域を実行する間に生じるキャッシュ・ミスのカウントを含む、請求項9記載のコンピュータ・プログラム。
- 前記複数のコード領域が、前記アプリケーションのソース・コード、前記アプリケーションのオブジェクト・コード及び前記アプリケーションの中間コンパイラ表現から選択される、請求項9記載のコンピュータ・プログラム。
- 前記識別された部分領域が、少なくとも前記アプリケーションのソース・コード命令、前記アプリケーションのオブジェクト・コード命令及び前記アプリケーションの中間コンパイラ表現の命令から選択された命令に対応する、請求項9記載のコンピュータ・プログラム。
- 前記プログラムが、前記プロセッサに、
前記複数のコード領域の各々のための前記生成されたプロファイル・データに基づき、前記識別された部分領域を最適化するステップをさらに実行させ、
当該最適化するステップが、インライニング、クローニング、アウトライニング、間接呼び出しの特化、不良ロード主導型データ・プリフェッチング、データ再編成及び命令スケジューリングのうち少なくとも1つを行うことを含む、請求項9記載のコンピュータ・プログラム。 - 各注釈が、少なくとも実行時ライブラリへの関数呼び出し又は命令のインライン・シーケンスから選択された注釈コードに拡張される、請求項9記載のコンピュータ・プログラム。
- プロセッサと、
マルチパス動的プロファイリングのためのプログラムを保持するメモリとを備えるシステムにして、
前記プログラムが、前記プロセッサに、
アプリケーションの複数のコード領域が前記プロセッサ上でリンクされ且つ実行されるときにプロファイル・データを生成するための注釈を、前記複数のコード領域に装備するステップと、
前記アプリケーションを実行することにより、前記複数のコード領域の各々のためのプロファイル・データを生成するステップと、
前記生成されたプロファイル・データから、キャッシュ・ミスのカウントが予定のしきい値を超える一のコード領域を、一の不良コード領域として識別するステップと、
前記複数のコード領域がリンクされ且つ実行されるときにプロファイル・データを生成するための注釈を、前記不良コード領域に装備するステップと、
前記アプリケーションを実行することにより、前記不良コード領域を含む前記複数のコード領域のための追加のプロファイル・データを生成するステップと、
前記追加のプロファイル・データから、前記不良コード領域の一の部分領域を識別するステップとを実行させる、システム。 - 前記複数のコード領域が、前記アプリケーションの少なくとも1つのコンパイル単位を評価することによって識別される、請求項17記載のシステム。
- 前記プロファイル・データが、少なくとも1つのハードウェア性能カウンタに基づいて生成される、請求項17記載のシステム。
- 前記プロファイル・データが、各コード領域を実行する間に生じるキャッシュ・ミスのカウントを含む、請求項17記載のシステム。
- 前記複数のコード領域が、前記アプリケーションのソース・コード、前記アプリケーションのオブジェクト・コード及び前記アプリケーションの中間コンパイラ表現から選択される、請求項17記載のシステム。
- 前記識別された部分領域が、メモリ参照を含む前記アプリケーションのソース・コード内の命令に対応する、請求項17記載のシステム。
- 前記プログラムが、前記プロセッサに、
前記識別された部分領域を最適化するステップをさらに実行させ、
当該最適化するステップが、インライニング、クローニング、アウトライニング、間接呼び出しの特化、不良ロード主導型データ・プリフェッチング、データ再編成及び命令スケジューリングのうち少なくとも1つを行うことを含む、請求項17記載のシステム。 - 各注釈が、少なくとも実行時ライブラリへの関数呼び出し又は命令のインライン・シーケンスから選択された注釈コードに拡張される、請求項17記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA2672337A CA2672337C (en) | 2009-07-15 | 2009-07-15 | Compiler instrumentation infrastructure to facilitate multiple pass and multiple purpose dynamic analysis |
CA2672337 | 2009-07-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011022993A JP2011022993A (ja) | 2011-02-03 |
JP5473768B2 true JP5473768B2 (ja) | 2014-04-16 |
Family
ID=43448724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010109001A Active JP5473768B2 (ja) | 2009-07-15 | 2010-05-11 | マルチパス動的プロファイリングのためのコンピュータに実行させる方法、システム及びコンピュータ・プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US9946523B2 (ja) |
JP (1) | JP5473768B2 (ja) |
CN (1) | CN101957773B (ja) |
CA (1) | CA2672337C (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7351326B2 (ja) | 2021-09-22 | 2023-09-27 | カシオ計算機株式会社 | 時計外装部材、時計、時計外装部材の製造方法 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9280439B2 (en) * | 2011-02-11 | 2016-03-08 | Sap Se | Usage analysis of productive environment to establish new data source for process optimization and project planning |
CN102650964B (zh) | 2011-02-28 | 2016-03-09 | 国际商业机器公司 | 用于监控面向对象的应用的方法、系统和自监控系统 |
US9274919B2 (en) * | 2011-04-29 | 2016-03-01 | Dynatrace Software Gmbh | Transaction tracing mechanism of distributed heterogenous transactions having instrumented byte code with constant memory consumption and independent of instrumented method call depth |
JP5998764B2 (ja) * | 2012-09-04 | 2016-09-28 | 富士通株式会社 | 情報処理装置、ログ出力方法およびログ出力プログラム |
US9110765B2 (en) * | 2012-10-17 | 2015-08-18 | Sap Portals Israel Ltd | Displaying different hierarchy levels of computer program source code |
US9875090B2 (en) | 2012-12-20 | 2018-01-23 | Microsoft Technology Licensing, Llc | Program analysis based on program descriptors |
US9880842B2 (en) * | 2013-03-15 | 2018-01-30 | Intel Corporation | Using control flow data structures to direct and track instruction execution |
JP6127639B2 (ja) * | 2013-03-26 | 2017-05-17 | 富士通株式会社 | プログラム実行制御プログラム、プログラム実行制御方法 |
KR102125559B1 (ko) * | 2013-10-28 | 2020-06-22 | 삼성전자주식회사 | 멀티 패스 시뮬레이터에서 캐시 프로파일링 정보를 보정하는 방법 및 이를 위한 장치 |
US10157239B2 (en) * | 2013-12-23 | 2018-12-18 | Oracle International Corporation | Finding common neighbors between two nodes in a graph |
US9348567B2 (en) | 2014-07-03 | 2016-05-24 | Microsoft Technology Licensing, Llc. | Profile guided optimization in the presence of stale profile data |
US9928310B2 (en) | 2014-08-15 | 2018-03-27 | Oracle International Corporation | In-memory graph pattern matching |
JP6471615B2 (ja) * | 2015-06-02 | 2019-02-20 | 富士通株式会社 | 性能情報生成プログラム、性能情報生成方法及び情報処理装置 |
US9535673B1 (en) * | 2016-02-03 | 2017-01-03 | International Business Machines Corporation | Reducing compilation time using profile-directed feedback |
US10261763B2 (en) * | 2016-12-13 | 2019-04-16 | Palantir Technologies Inc. | Extensible data transformation authoring and validation system |
US11182272B2 (en) | 2018-04-17 | 2021-11-23 | International Business Machines Corporation | Application state monitoring |
US11775471B2 (en) * | 2019-10-08 | 2023-10-03 | Embarcadero Technologies, Inc. | System and method for caching converted files and compiling computer code from the cache |
CN112988593B (zh) * | 2021-04-13 | 2024-02-06 | 苏州沁游网络科技有限公司 | 代码分析方法、装置、计算机设备及存储介质 |
US11775317B2 (en) | 2021-04-30 | 2023-10-03 | International Business Machines Corporation | Locate neural network performance hot spots |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08263372A (ja) * | 1995-03-28 | 1996-10-11 | Hitachi Ltd | キャッシュミス情報の収集とチューニングを行う装置 |
US5815720A (en) * | 1996-03-15 | 1998-09-29 | Institute For The Development Of Emerging Architectures, L.L.C. | Use of dynamic translation to collect and exploit run-time information in an optimizing compilation system |
US6631518B1 (en) * | 1997-03-19 | 2003-10-07 | International Business Machines Corporation | Generating and utilizing organized profile information |
US6149318A (en) * | 1997-04-15 | 2000-11-21 | Samuel C. Kendall | Link-time and run-time error detection, and program instrumentation |
US6047363A (en) * | 1997-10-14 | 2000-04-04 | Advanced Micro Devices, Inc. | Prefetching data using profile of cache misses from earlier code executions |
US6427234B1 (en) * | 1998-06-11 | 2002-07-30 | University Of Washington | System and method for performing selective dynamic compilation using run-time information |
US6134710A (en) * | 1998-06-26 | 2000-10-17 | International Business Machines Corp. | Adaptive method and system to minimize the effect of long cache misses |
US6308324B1 (en) * | 1999-06-10 | 2001-10-23 | International Business Machines Corporation | Multi-stage profiler |
US6934832B1 (en) * | 2000-01-18 | 2005-08-23 | Ati International Srl | Exception mechanism for a computer |
US6865730B1 (en) * | 2000-03-08 | 2005-03-08 | International Business Machines Corporation | Interprocedural analysis and optimization of an object oriented program in the presence of dynamic class loading |
US7120906B1 (en) * | 2000-04-28 | 2006-10-10 | Silicon Graphics, Inc. | Method and computer program product for precise feedback data generation and updating for compile-time optimizations |
US6681318B2 (en) | 2000-09-08 | 2004-01-20 | Sun Microsystems, Inc. | Method and apparatus for using an assist processor to prefetch instructions for a primary processor |
US6832296B2 (en) | 2002-04-09 | 2004-12-14 | Ip-First, Llc | Microprocessor with repeat prefetch instruction |
US7146607B2 (en) * | 2002-09-17 | 2006-12-05 | International Business Machines Corporation | Method and system for transparent dynamic optimization in a multiprocessing environment |
US7194732B2 (en) * | 2003-06-26 | 2007-03-20 | Hewlett-Packard Development Company, L.P. | System and method for facilitating profiling an application |
US7788657B2 (en) * | 2004-02-27 | 2010-08-31 | Tvworks, Llc | Targeted runtime compilation |
US8301868B2 (en) * | 2005-09-23 | 2012-10-30 | Intel Corporation | System to profile and optimize user software in a managed run-time environment |
US7987456B2 (en) * | 2006-01-24 | 2011-07-26 | Microsoft Corporation | Qualitatively annotated code |
US8136124B2 (en) * | 2007-01-18 | 2012-03-13 | Oracle America, Inc. | Method and apparatus for synthesizing hardware counters from performance sampling |
-
2009
- 2009-07-15 CA CA2672337A patent/CA2672337C/en active Active
-
2010
- 2010-05-11 JP JP2010109001A patent/JP5473768B2/ja active Active
- 2010-07-06 US US12/830,553 patent/US9946523B2/en active Active
- 2010-07-15 CN CN201010232316.5A patent/CN101957773B/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7351326B2 (ja) | 2021-09-22 | 2023-09-27 | カシオ計算機株式会社 | 時計外装部材、時計、時計外装部材の製造方法 |
Also Published As
Publication number | Publication date |
---|---|
CA2672337A1 (en) | 2011-01-15 |
JP2011022993A (ja) | 2011-02-03 |
CN101957773A (zh) | 2011-01-26 |
US9946523B2 (en) | 2018-04-17 |
CA2672337C (en) | 2017-01-03 |
CN101957773B (zh) | 2014-10-29 |
US20110016460A1 (en) | 2011-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5473768B2 (ja) | マルチパス動的プロファイリングのためのコンピュータに実行させる方法、システム及びコンピュータ・プログラム | |
JP4003830B2 (ja) | マルチプロセッシング環境における透過動的最適化のための方法およびシステム | |
US7725883B1 (en) | Program interpreter | |
US8181170B2 (en) | Unwind information for optimized programs | |
JP5583514B2 (ja) | バイナリコードを最適化するコンパイル方法、及びそのコンパイラシステム、並びにコンピュータ・プログラム | |
US20070226698A1 (en) | Method for improving performance of executable code | |
US20040025152A1 (en) | Compiling method, apparatus, and program | |
US8886887B2 (en) | Uniform external and internal interfaces for delinquent memory operations to facilitate cache optimization | |
Bebenita et al. | Trace-based compilation in execution environments without interpreters | |
JPH09330233A (ja) | 最適目的コード生成方法 | |
US20130125096A1 (en) | Systems and Methods for Dynamic Collection of Probe Call Sites | |
US20080091923A1 (en) | Register-based instruction optimization for facilitating efficient emulation of an instruction stream | |
US6360360B1 (en) | Object-oriented compiler mechanism for automatically selecting among multiple implementations of objects | |
US7143404B2 (en) | Profile-guided data layout | |
JP3992102B2 (ja) | コンパイラ装置、コンパイル方法、コンパイラプログラム、及び記録媒体 | |
JP5719278B2 (ja) | 情報処理装置、プロファイル対象決定プログラム及び方法 | |
Leopoldseder et al. | Fast-path loop unrolling of non-counted loops to enable subsequent compiler optimizations | |
Su et al. | An efficient GPU implementation of inclusion-based pointer analysis | |
JP5871589B2 (ja) | 情報処理装置、配列の初期サイズ調整プログラム及び方法 | |
US6925636B2 (en) | Method and apparatus for refining an alias set of address taken variables | |
JP5447774B2 (ja) | プリフェッチ命令生成方法、コンパイラ、及びプログラム | |
KR20060035077A (ko) | 데이터 처리 장치 및 이를 이용한 레지스터 할당 방법 | |
Häubl et al. | Evaluation of trace inlining heuristics for Java | |
Nakamura et al. | Performance Study of Kotlin and Java Programs with Bytecode Analysis | |
JP4064869B2 (ja) | コード変換装置、コード変換方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131210 |
|
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: 20140114 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140204 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5473768 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |