JP4917138B2 - オブジェクト最適配置装置、オブジェクト最適配置方法、及びオブジェクト最適配置プログラム - Google Patents
オブジェクト最適配置装置、オブジェクト最適配置方法、及びオブジェクト最適配置プログラム Download PDFInfo
- Publication number
- JP4917138B2 JP4917138B2 JP2009233474A JP2009233474A JP4917138B2 JP 4917138 B2 JP4917138 B2 JP 4917138B2 JP 2009233474 A JP2009233474 A JP 2009233474A JP 2009233474 A JP2009233474 A JP 2009233474A JP 4917138 B2 JP4917138 B2 JP 4917138B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- node
- identifier
- lock
- moved
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
- G06F2212/2542—Non-uniform memory access [NUMA] architecture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System (AREA)
Description
通信に適したどんなタイプのものでもよい。例えば、入出力バスは、業界標準のPCIバスとすることもできる。なお、すべてのノード102が入出力インターフェイス・ユニット132や接続された入出力装置を含む必要はないことを理解されたい。
Claims (8)
- 1以上のプロセッサとローカル・メモリとを含むノードを複数有する非均一メモリ・アクセス(NUMA)コンピュータ・システム上に構築される仮想マシン環境においてオブジェクトを最適配置する最適配置装置であって、
複数のサブ領域を含むヒープであって、各サブ領域は該サブ領域をローカル・メモリの少なくとも一部とする前記ノードに割り当てられる、前記ヒープと、
各々対応するスレッドに割り当てられた複数のスタックと、
複数のスレッドの各々について、該スレッドを実行するプロセッサの情報を取得するスレッド管理部と、
前記ヒープ内のオブジェクトのロックを要求するスレッドから、ロック対象の前記オブジェクトの識別子を取得し、前記オブジェクトの識別子が識別する前記オブジェクトのヘッダ内に前記スレッドの識別子を書き込むロック管理部と、
前記ヒープ内の各オブジェクトをグラフノード、該オブジェクトから前記ヒープ内の他のオブジェクトへの参照をエッジ、および各スレッドに割り当てられた前記スタックをルート・ノードとする複数のオブジェクト参照のグラフを、前記ルート・ノードを出発点としてそれぞれ走査し、現在の走査対象が参照する移動対象のオブジェクトの前記ヘッダ内に前記スレッドの識別子がある場合、該スレッドの識別子が識別するスレッドを実行するプロセッサを含むノードを前記プロセッサの情報から求め、該ノードに割り当てられた前記ヒープ内の前記サブ領域に前記移動対象のオブジェクトを移動させ、および現在の走査対象が参照する移動対象のオブジェクトの前記ヘッダ内に前記スレッドの識別子がない場合、現在の走査対象であるオブジェクトの移動先のローカル・メモリを含むノードに割り当てられたいずれかのサブ領域に前記移動対象のオブジェクトを移動させるメモリ管理部と、
を含む最適配置装置。 - 前記ロック管理部は更に、スレッドからロックの要求を受けるごとに、該スレッドに対し前記スレッド管理部が取得した前記プロセッサの情報である該プロセッサを含むノードの識別子を、前記ロック対象の前記オブジェクト内のまたは該オブジェクト内のポインタが指す所定の位置に上書きし、前記メモリ管理部は、前記移動対象のオブジェクトの前記ヘッダ内の前記スレッドの識別子の代わりに、前記移動対象のオブジェクト内のまたは該オブジェクト内のポインタが指す前記所定の位置にある前記ノードの識別子を使用して、前記移動対象のオブジェクトの移動先を決定する、請求項1に記載の最適配置装置。
- 前記ロック管理部は更に、スレッドからロックの要求を受けるごとに、該スレッドの識別子を、前記ロック対象の前記オブジェクト内のまたは該オブジェクト内のポインタが指す所定の位置に上書きし、前記メモリ管理部は、前記移動対象のオブジェクトの前記ヘッダ内の前記スレッドの識別子の代わりに、前記移動対象のオブジェクト内のまたは該オブジェクト内のポインタが指す前記所定の位置にある前記スレッドの識別子を使用して、前記移動対象のオブジェクトの移動先を決定する、請求項1に記載の最適配置装置。
- 前記メモリ管理部は、前記オブジェクト参照のグラフの走査の結果、到達しなかった1以上のオブジェクトのヒープ内の領域を再利用するガーベッジ・コレクタである、請求項1に記載の最適配置装置。
- 前記オブジェクト内の前記所定の位置は、前記オブジェクト内のロックワード内の位置である、請求項2または3に記載の最適配置装置。
- 前記スレッド管理部は、複数のスレッドの各々について、該スレッドを実行するプロセッサの情報として該プロセッサを含むノードの識別子を取得し、該ノードの識別子を前記スレッドのスレッド構造体に書き込み、前記メモリ管理部は、前記現在の走査対象が参照する前記移動対象のオブジェクトの前記ヘッダ内に前記スレッドの識別子がある場合、該スレッドの識別子が識別するスレッドの前記スレッドの構造体に書き込まれた前記ノードの識別子を取得し、該ノードの識別子が識別するノードに割り当てられたサブ領域に前記移動対象のオブジェクトを移動する、請求項1に記載の最適配置装置。
- 1以上のプロセッサとローカル・メモリとを含むノードを複数有する非均一メモリ・アクセス(NUMA)コンピュータ・システム上に構築される仮想マシン環境におけるオブジェクトの最適配置方法であって、前記仮想マシン環境は、複数のサブ領域を含むヒープであって、各サブ領域は該サブ領域をローカル・メモリの少なくとも一部とする前記ノードに割り当てられる前記ヒープと、各々対応するスレッドに割り当てられた複数のスタックとを含み、前記最適配置方法は、
スレッド管理モジュールを呼び出すスレッドを実行するプロセッサが、複数のスレッドの各々について、該スレッドを実行するプロセッサを含むノードの識別子を取得して前記スレッドのスレッド構造体に格納するステップと、
ロック管理モジュールを呼び出すスレッドを実行するプロセッサが、前記ヒープ内のオブジェクトのロックを要求するスレッドから、ロックの対象であるオブジェクトの識別子を取得し、前記オブジェクトの識別子が識別するオブジェクト内に、前記ロックを要求する前記スレッドのスレッド構造体から読み出した前記ノードの識別子を書き込むステップと、
メモリ管理モジュールを呼び出すスレッドを実行するプロセッサが、前記ヒープ内の各オブジェクトをグラフノード、該オブジェクトから前記ヒープ内の他のオブジェクトへの参照をエッジ、および各スレッドに割り当てられたスタックをルート・ノードとする複数のオブジェクト参照のグラフを、前記ルート・ノードを出発点としてそれぞれ走査し、現在の走査対象が参照する移動対象のオブジェクト内に前記ノードの識別子がある場合、該ノードの識別子が識別するノードに割り当てられた前記ヒープ内のサブ領域に前記移動対象のオブジェクトを移動させ、現在の走査対象が参照する移動対象のオブジェクト内に前記ノードの識別子がない場合、現在の走査対象であるオブジェクトの移動先のローカル・メモリを含むノードに割り当てられたいずれかのサブ領域に前記移動対象のオブジェクトを移動させるステップと、
を含む最適配置方法。 - 1以上のプロセッサとローカル・メモリとを含むノードを複数有する非均一メモリ・アクセス(NUMA)コンピュータ・システム上に構築される仮想マシン環境におけるオブジェクトの最適配置プログラムであって、前記仮想マシン環境は、複数のサブ領域を含むヒープであって、各サブ領域は該サブ領域をローカル・メモリの少なくとも一部とする前記ノードに割り当てられる前記ヒープと、各々対応するスレッドに割り当てられた複数のスタックとを含み、前記最適配置プログラムは、
スレッド管理モジュールを呼び出すスレッドを実行するプロセッサに、複数のスレッドの各々について、該スレッドを実行するプロセッサを含むノードの識別子を取得して前記スレッドのスレッド構造体に格納させ、
ロック管理モジュールを呼び出すスレッドを実行するプロセッサに、前記ヒープ内のオブジェクトのロックを要求するスレッドから、前記ロックの対象である前記オブジェクトの識別子を取得し、該オブジェクトの識別子が識別する前記オブジェクト内に、前記ロックを要求する前記スレッドのスレッド構造体から読み出した前記ノードの識別子を書き込ませ、
メモリ管理モジュールを呼び出すスレッドを実行するプロセッサに、前記ヒープ内の各オブジェクトをグラフノード、該オブジェクトから前記ヒープ内の他のオブジェクトへの参照をエッジ、および各スレッドに割り当てられたスタックをルート・ノードとする複数のオブジェクト参照のグラフを、前記ルート・ノードを出発点としてそれぞれ走査し、現在の走査対象が参照する移動対象のオブジェクト内に前記ノードの識別子がある場合、該ノードの識別子が識別するノードに割り当てられた前記ヒープ内の前記サブ領域に前記移動対象のオブジェクトを移動させ、現在の走査対象が参照する移動対象のオブジェクト内に前記スレッドの識別子がない場合、現在の走査対象であるオブジェクトの移動先のローカル・メモリを含むノードに割り当てられたいずれかのサブ領域に前記移動対象のオブジェクトを移動させる、最適配置プログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009233474A JP4917138B2 (ja) | 2009-10-07 | 2009-10-07 | オブジェクト最適配置装置、オブジェクト最適配置方法、及びオブジェクト最適配置プログラム |
US12/898,845 US9009715B2 (en) | 2009-10-07 | 2010-10-06 | Object optimal allocation device, method and program |
US14/669,831 US10296388B2 (en) | 2009-10-07 | 2015-03-26 | Object optimal allocation device, method and program |
US16/353,625 US11086680B2 (en) | 2009-10-07 | 2019-03-14 | Object optimal allocation device, method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009233474A JP4917138B2 (ja) | 2009-10-07 | 2009-10-07 | オブジェクト最適配置装置、オブジェクト最適配置方法、及びオブジェクト最適配置プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011081610A JP2011081610A (ja) | 2011-04-21 |
JP4917138B2 true JP4917138B2 (ja) | 2012-04-18 |
Family
ID=43824008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009233474A Expired - Fee Related JP4917138B2 (ja) | 2009-10-07 | 2009-10-07 | オブジェクト最適配置装置、オブジェクト最適配置方法、及びオブジェクト最適配置プログラム |
Country Status (2)
Country | Link |
---|---|
US (3) | US9009715B2 (ja) |
JP (1) | JP4917138B2 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120272016A1 (en) * | 2011-04-22 | 2012-10-25 | International Business Machines Corporation | Memory affinitization in multithreaded environments |
JP5721056B2 (ja) * | 2011-05-10 | 2015-05-20 | 日本電気株式会社 | トランザクション処理装置、トランザクション処理方法およびトランザクション処理プログラム |
US9250978B2 (en) * | 2011-06-27 | 2016-02-02 | International Business Machines Corporation | Asynchronous grace-period primitives for user-space applications |
US8825863B2 (en) | 2011-09-20 | 2014-09-02 | International Business Machines Corporation | Virtual machine placement within a server farm |
US9367439B2 (en) * | 2012-04-30 | 2016-06-14 | Oracle International Corporation | Physical memory usage prediction |
US9501332B2 (en) * | 2012-12-20 | 2016-11-22 | Qualcomm Incorporated | System and method to reset a lock indication |
JP6310260B2 (ja) * | 2014-01-20 | 2018-04-11 | 株式会社荏原製作所 | 基板処理装置内の複数の処理ユニットを調整するための調整装置、および該調整装置を備えた基板処理装置 |
US9384019B2 (en) * | 2014-03-25 | 2016-07-05 | International Business Machines Corporation | Dynamic code injection |
US9870237B2 (en) * | 2014-10-14 | 2018-01-16 | Oracle International Corporation | System and method for supporting distributed class loading in a virtual machine (VM) |
CN105988856B (zh) * | 2015-02-02 | 2019-04-16 | 龙芯中科技术有限公司 | 解释器访存优化方法及装置 |
US10503781B2 (en) * | 2015-04-14 | 2019-12-10 | Sap Se | Extending graph traversals with application logic |
US10515054B2 (en) * | 2015-06-19 | 2019-12-24 | Hitachi Vantara Corporation | Fast and efficient multi-threaded algorithm for deleting an arbitrarily wide and deep directory tree using limited system resources |
WO2017011223A1 (en) | 2015-07-10 | 2017-01-19 | Rambus, Inc. | Thread associated memory allocation and memory architecture aware allocation |
US20180357001A1 (en) * | 2015-12-16 | 2018-12-13 | Hewlett Packard Enterprise Development Lp | Allocate memory based on memory type request |
US10277677B2 (en) * | 2016-09-12 | 2019-04-30 | Intel Corporation | Mechanism for disaggregated storage class memory over fabric |
CN109513209B (zh) * | 2018-11-22 | 2020-04-17 | 网易(杭州)网络有限公司 | 虚拟对象处理方法及装置、电子设备以及存储介质 |
US10802965B2 (en) | 2019-02-05 | 2020-10-13 | Microsoft Technology Licensing, Llc | Reducing synchronization reliance in garbage collection marking |
CN113204373A (zh) * | 2019-07-24 | 2021-08-03 | 中科寒武纪科技股份有限公司 | 运算方法、装置及相关产品 |
CN110515911B (zh) * | 2019-08-09 | 2022-03-22 | 济南浪潮数据技术有限公司 | 资源的处理方法及装置 |
JP7270008B2 (ja) * | 2020-09-08 | 2023-05-09 | カムツス コーポレーション | ゲーム提供方法、コンピュータプログラム、コンピュータ読取可能な記録媒体、およびコンピュータ装置 |
CN112380017B (zh) * | 2020-11-30 | 2024-04-09 | 成都虚谷伟业科技有限公司 | 一种基于松散内存释放的内存管理*** |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4333676B2 (ja) | 1997-11-21 | 2009-09-16 | オムロン株式会社 | プログラム制御装置、プログラム制御方法、およびプログラム記録媒体 |
JP3826626B2 (ja) * | 1997-11-21 | 2006-09-27 | オムロン株式会社 | プログラム制御装置、プログラム制御方法、およびプログラム記録媒体 |
JP2000132406A (ja) | 1998-10-21 | 2000-05-12 | Hitachi Ltd | オブジェクトメモリ最適化方法 |
US6618737B2 (en) * | 2000-03-09 | 2003-09-09 | International Business Machines Corporation | Speculative caching of individual fields in a distributed object system |
GB0027045D0 (en) * | 2000-11-06 | 2000-12-20 | Ibm | Computer system with heap reset |
US7543301B2 (en) * | 2003-10-21 | 2009-06-02 | Gemstone Systems, Inc. | Shared queues in shared object space |
US7380039B2 (en) * | 2003-12-30 | 2008-05-27 | 3Tera, Inc. | Apparatus, method and system for aggregrating computing resources |
US7769974B2 (en) * | 2004-09-10 | 2010-08-03 | Microsoft Corporation | Increasing data locality of recently accessed resources |
US7360053B2 (en) * | 2004-09-23 | 2008-04-15 | International Business Machines Corporation | Facilitating non-contiguous allocation of a large object within a java heap |
JP4773143B2 (ja) | 2005-06-24 | 2011-09-14 | 三菱電機株式会社 | 記憶管理装置及びコンピュータプログラム |
US20070100828A1 (en) * | 2005-10-25 | 2007-05-03 | Holt John M | Modified machine architecture with machine redundancy |
US7516291B2 (en) * | 2005-11-21 | 2009-04-07 | Red Hat, Inc. | Cooperative mechanism for efficient application memory allocation |
US8065499B2 (en) * | 2006-02-22 | 2011-11-22 | Oracle America, Inc. | Methods and apparatus to implement parallel transactions |
JP2008257594A (ja) * | 2007-04-06 | 2008-10-23 | Hitachi Ltd | 情報処理装置および情報処理方法 |
JP5151559B2 (ja) * | 2008-02-29 | 2013-02-27 | 富士通株式会社 | プログラム実行システム |
JP6785437B2 (ja) | 2019-09-19 | 2020-11-18 | パナソニックIpマネジメント株式会社 | 人物行動監視装置および人物行動監視システム |
-
2009
- 2009-10-07 JP JP2009233474A patent/JP4917138B2/ja not_active Expired - Fee Related
-
2010
- 2010-10-06 US US12/898,845 patent/US9009715B2/en not_active Expired - Fee Related
-
2015
- 2015-03-26 US US14/669,831 patent/US10296388B2/en not_active Expired - Fee Related
-
2019
- 2019-03-14 US US16/353,625 patent/US11086680B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11086680B2 (en) | 2021-08-10 |
US9009715B2 (en) | 2015-04-14 |
US20150234683A1 (en) | 2015-08-20 |
US20190213043A1 (en) | 2019-07-11 |
JP2011081610A (ja) | 2011-04-21 |
US20110082892A1 (en) | 2011-04-07 |
US10296388B2 (en) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4917138B2 (ja) | オブジェクト最適配置装置、オブジェクト最適配置方法、及びオブジェクト最適配置プログラム | |
US7584232B2 (en) | System and method for computer automatic memory management | |
JP5147280B2 (ja) | 異機種マルチプロセッサ・システムにおけるガーベッジ・コレクションのためのシステムおよび方法 | |
US8024505B2 (en) | System and method for optimistic creation of thread local objects in a virtual machine environment | |
US6598141B1 (en) | Manipulating interior pointers on a stack during garbage collection | |
US20060026183A1 (en) | Method and system provide concurrent access to a software object | |
US20100011357A1 (en) | System and method for garbage collection in a virtual machine | |
US8397045B2 (en) | Memory management device, memory management method, and memory management program | |
US8478738B2 (en) | Object deallocation system and method | |
Daloze et al. | Efficient and thread-safe objects for dynamically-typed languages | |
KR100549540B1 (ko) | 확장형 메모리의 효율적인 스레드 로컬 객체 할당을 위한방법 | |
Ogasawara | NUMA-aware memory manager with dominant-thread-based copying GC | |
US20080168239A1 (en) | Architecture support of memory access coloring | |
JP2008003882A (ja) | コンパイラプログラム,リストベクトルの領域割当て最適化方法,コンパイル処理装置およびコンパイラプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2009211167A (ja) | プログラム実行システム | |
CN114051610A (zh) | 基于arena的存储器管理 | |
Degenbaev et al. | Concurrent marking of shape-changing objects | |
US6752836B1 (en) | Method and apparatus for high-concurrency client locking with java in a data processing system | |
Stilkerich et al. | A practical getaway: Applications of escape analysis in embedded real-time systems | |
Sarcar | Memory Management | |
Blanaru | Data Transfer Optimizations for Heterogeneous Managed Runtime Systems | |
Alfonso et al. | Unified Shared Memory: Friend or Foe? Understanding the Implications of Unified Memory on Managed Heaps | |
Sharan et al. | Garbage Collection | |
Meehan et al. | Java garbage collection—a generic solution? | |
Sommerlad | Performance Patterns. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110810 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110920 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111209 |
|
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: 20120104 |
|
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: 20120125 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150203 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |