JP5551939B2 - 任意の標的アーキテクチャに対する並列simdコードを生成する方法、コンピュータ可読媒体、およびシステム - Google Patents
任意の標的アーキテクチャに対する並列simdコードを生成する方法、コンピュータ可読媒体、およびシステム Download PDFInfo
- Publication number
- JP5551939B2 JP5551939B2 JP2010005604A JP2010005604A JP5551939B2 JP 5551939 B2 JP5551939 B2 JP 5551939B2 JP 2010005604 A JP2010005604 A JP 2010005604A JP 2010005604 A JP2010005604 A JP 2010005604A JP 5551939 B2 JP5551939 B2 JP 5551939B2
- Authority
- JP
- Japan
- Prior art keywords
- parallel application
- target architecture
- operations
- parallel
- target
- 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
- 238000000034 method Methods 0.000 title claims description 24
- 230000005540 biological transmission Effects 0.000 claims description 24
- 238000004891 communication Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 12
- 230000015654 memory Effects 0.000 claims description 9
- 230000004888 barrier function Effects 0.000 claims description 4
- 241001486863 Sprattus sprattus Species 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000007792 addition Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/314—Parallel programming languages
-
- 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/51—Source to source
-
- 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
121 x86プロセッサ
122 メモリ
123 並列実行ファイル(x86)
140 コンピュータ2:セル・ブロードバンド・エンジン・アーキテクチャ
141 CELL PPE
142 CELL SPE
143 エレメント相互接続バス
144 メモリ
145 並列実行ファイル(CELL PPU)
146 並列実行ファイル(CELL SPU)
147 共有バッファ
160 ネットワーク
Claims (13)
- 並列演算アーキテクチャのためのソース・コードを生成する、コンピュータ実行の方法であって、
前記方法は、
所定の注釈標準に従って注釈された注釈付きソース・コードを受信するステップであって、前記所定の注釈標準を用いて(i)並列アプリケーション・プログラムに対する標的アーキテクチャ、および(ii)前記標的アーキテクチャで実行されるとき遂行される、前記並列アプリケーション・プログラムの一つ以上の並列アプリケーション・オペレーションが規定され、前記並列アプリケーション・オペレーションは、少なくとも、データ送信オペレーション、同期化オペレーション、単一命令多重データ(SIMD)オペレーションから選択される、前記受信するステップと、
前記注釈付きソース・コードを構文解析し、前記並列アプリケーション・プログラムおよび前記一つ以上の並列アプリケーション・オペレーションのための前記標的アーキテクチャを識別するステップと、
各トークンが、前記一つ以上の並列アプリケーション・オペレーションの一つを表現する、一つ以上のトークンを生成するステップと、
前記一つ以上のトークンから、前記標的アーキテクチャ上で前記一つ以上の並列アプリケーション・オペレーションを実行するよう構成された並列アプリケーション・ソース・コードを生成するステップと、
を含み、
前記所定の注釈標準は、標的アーキテクチャの定義、コード・ブロックの定義、および共有変数の定義を規定するための文法を含み、
前記標的アーキテクチャの定義は、標的名、アーキテクチャの種類、ペアレント名、および前記標的アーキテクチャの2つ以上のプロセッシング・エレメントに対する通信プロトコルを規定し、
前記コード・ブロックの定義は、標的名、コード・ブロック名、および前記コード・ブロックを実行するための最大スレッド数を規定し、
前記共有変数の定義は、前記共有変数の変数名、変数型、および配列サイズを規定する、
前記方法。 - 前記標的アーキテクチャは、少なくとも一つの汎用プロセッシング・エレメントと、前記汎用プロセッシング・エレメントをサポートするよう構成された一つの特殊用途プロセッシング・エレメントとを含むプロセッシング・エレメントの階層を特徴とする、請求項1に記載の方法。
- 前記生成された並列アプリケーション・ソース・コードを、前記標的アーキテクチャに対し利用可能な一つ以上のネイティブ・コンパイラを介してコンパイルし、前記並列アプリケーション・プログラムを生成するステップをさらに含む、請求項1に記載の方法。
- 前記並列アプリケーション・オペレーションは、データ送信オペレーションおよび同期化オペレーションの一つを含み、前記データ送信オペレーションは、putオペレーションおよびgetオペレーションの一つを規定し、前記同期化オペレーションは、waitオペレーションおよびbarrierオペレーションの一つを規定する、請求項1に記載の方法。
- 前記並列アプリケーション・オペレーションは、単一ベクトルの変数に対する加算、減算、乗算、スプラット、および平方根オペレーションの少なくとも一つから選択されたSIMDオペレーションを含む、請求項1に記載の方法。
- 実行されたとき標的アーキテクチャに対する並列SIMDソース・コードを生成するためのオペレーションを遂行するプログラムを包含する、コンピュータ可読の記憶媒体であって、
前記オペレーションは、
所定の注釈標準に従って注釈された注釈付きソース・コードを受信するステップであって、前記所定の注釈標準を用いて(i)並列アプリケーション・プログラムに対する標的アーキテクチャ、および(ii)前記標的アーキテクチャで実行されるとき遂行される、前記並列アプリケーション・プログラムの一つ以上の並列アプリケーション・オペレーションが規定され、前記並列アプリケーション・オペレーションは、少なくとも、データ送信オペレーション、同期化オペレーション、単一命令多重データ(SIMD)オペレーションから選択される、前記受信するステップと、
前記注釈付きソース・コードを構文解析し、前記並列アプリケーション・プログラムおよび前記一つ以上の並列アプリケーション・オペレーションのための前記標的アーキテクチャを識別するステップと、
各トークンが、前記一つ以上の並列アプリケーション・オペレーションの一つを表現する、一つ以上のトークンを生成するステップと、
前記一つ以上のトークンから、前記標的アーキテクチャ上で前記一つ以上の並列アプリケーション・オペレーションを実行するよう構成された並列アプリケーション・ソース・コードを生成するステップと、
を含み、
前記所定の注釈標準は、標的アーキテクチャの定義、コード・ブロックの定義、および共有変数の定義を規定するための文法を含み、
前記標的アーキテクチャの定義は、標的名、アーキテクチャの種類、ペアレント名、および前記標的アーキテクチャの2つ以上のプロセッシング・エレメントに対する通信プロトコルを規定し、
前記コード・ブロックの定義は、標的名、コード・ブロック名、および前記コード・ブロックを実行するための最大スレッド数を規定し、
前記共有変数の定義は、前記共有変数の変数名、変数型、および配列サイズを規定する、
前記コンピュータ可読の記憶媒体。 - 前記オペレーションは、前記生成された並列アプリケーション・ソース・コードを、前記標的アーキテクチャに対し利用可能な一つ以上のネイティブ・コンパイラを介してコンパイルし、前記並列アプリケーション・プログラムを生成するステップをさらに含む、請求項6記載のコンピュータ可読の記憶媒体。
- 前記並列アプリケーション・オペレーションは、データ送信オペレーションおよび同期化オペレーションの一つを含み、前記データ送信オペレーションは、putオペレーションおよびgetオペレーションの一つを規定し、前記同期化オペレーションは、waitオペレーションおよびbarrierオペレーションの一つを規定する、請求項6に記載のコンピュータの可読記憶媒体。
- 前記並列アプリケーション・オペレーションは、単一ベクトルの変数に対する加算、減算、乗算、スプラット、および平方根オペレーションの少なくとも一つから選択されたSIMDオペレーションを含む、請求項6に記載のコンピュータ可読の記憶媒体。
- プロセッサと、
ソースツーソース・コンパイラ・アプリケーションを包含するメモリと、
を含むシステムであって、
前記コンパイラ・アプリケーションは、前記プロセッサにより実行されたとき、
所定の注釈標準に従って注釈された注釈付きソース・コードを受信する手段であって、前記所定の注釈標準を用いて(i)並列アプリケーション・プログラムに対する標的アーキテクチャ、および(ii)前記標的アーキテクチャで実行されるとき遂行される、前記並列アプリケーション・プログラムの一つ以上の並列アプリケーション・オペレーションが規定され、前記並列アプリケーション・オペレーションは、少なくとも、データ送信オペレーション、同期化オペレーション、単一命令多重データ(SIMD)オペレーションから選択される、前記受信する手段と、
前記注釈付きソース・コードを構文解析し、前記並列アプリケーション・プログラムおよび前記一つ以上の並列アプリケーション・オペレーションのための前記標的アーキテクチャを識別する手段と、
各トークンが、前記一つ以上の並列アプリケーション・オペレーションの一つを表現する、一つ以上のトークンを生成する手段と、
前記一つ以上のトークンから、前記標的アーキテクチャで前記一つ以上の並列アプリケーション・オペレーションを実行するよう構成された並列アプリケーション・ソース・コードを生成する手段と、
を遂行することによって、標的アーキテクチャに対するソース・コードを生成するよう構成されており、
前記所定の注釈標準は、標的アーキテクチャの定義、コード・ブロックの定義、および共有変数の定義を規定するための文法を含み、
前記標的アーキテクチャの定義は、標的名、アーキテクチャの種類、ペアレント名、および前記標的アーキテクチャの2つ以上のプロセッシング・エレメントに対する通信プロトコルを規定し、
前記コード・ブロックの定義は、標的名、コード・ブロック名、および前記コード・ブロックを実行するための最大スレッド数を規定し、
前記共有変数の定義は、前記共有変数の変数名、変数型、および配列サイズを規定する、
前記システム。 - 前記コンパイラ・アプリケーションは、前記生成された並列アプリケーション・ソース・コードを、前記標的アーキテクチャに対して利用可能な一つ以上のネイティブ・コンパイラを介してコンパイルし、前記並列アプリケーション・プログラムを生成する手段をさらに含む、請求項10に記載のシステム。
- 前記並列アプリケーション・オペレーションは、データ送信オペレーションおよび同期化オペレーションの一つを含み、前記データ送信オペレーションは、putオペレーションおよびgetオペレーションの一つを規定し、前記同期化オペレーションは、waitオペレーションおよびbarrierオペレーションの一つを規定する、請求項10に記載のシステム。
- 前記並列アプリケーション・オペレーションは、単一ベクトルの変数に対する加算、減算、乗算、スプラット、および平方根オペレーションの少なくとも一つから選択されたSIMDオペレーションを含む、請求項10に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/368,424 US8418155B2 (en) | 2009-02-10 | 2009-02-10 | Generating parallel SIMD code for an arbitrary target architecture |
US12/368424 | 2009-02-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010186468A JP2010186468A (ja) | 2010-08-26 |
JP5551939B2 true JP5551939B2 (ja) | 2014-07-16 |
Family
ID=42541439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010005604A Expired - Fee Related JP5551939B2 (ja) | 2009-02-10 | 2010-01-14 | 任意の標的アーキテクチャに対する並列simdコードを生成する方法、コンピュータ可読媒体、およびシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8418155B2 (ja) |
JP (1) | JP5551939B2 (ja) |
CN (1) | CN101799760B (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9298427B2 (en) | 2010-01-06 | 2016-03-29 | Microsoft Technology Licensing, Llc. | Creating inferred symbols from code usage |
US8756590B2 (en) * | 2010-06-22 | 2014-06-17 | Microsoft Corporation | Binding data parallel device source code |
US9841958B2 (en) | 2010-12-23 | 2017-12-12 | Microsoft Technology Licensing, Llc. | Extensible data parallel semantics |
WO2012164439A1 (en) * | 2011-06-02 | 2012-12-06 | International Business Machines Corporation | Handling cross-thread method calls |
CN103959240B (zh) * | 2011-12-15 | 2017-05-17 | 英特尔公司 | 使用混洗表和掩码存储表经由矢量指令优化程序循环的方法 |
US10216500B2 (en) * | 2012-02-10 | 2019-02-26 | Oracle International Corporation | Method and apparatus for synchronization annotation |
KR101893796B1 (ko) | 2012-08-16 | 2018-10-04 | 삼성전자주식회사 | 동적 데이터 구성을 위한 방법 및 장치 |
US9134974B2 (en) * | 2012-11-12 | 2015-09-15 | Signalogic, Inc. | Source code separation and generation for heterogeneous central processing unit (CPU) computational devices |
US9110672B2 (en) | 2013-11-07 | 2015-08-18 | International Business Machines Corporation | Compiler generation of thunking code |
CN103631632B (zh) * | 2013-11-29 | 2017-08-04 | 华为技术有限公司 | 移植方法及源到源编译器 |
CN104035767A (zh) * | 2014-05-30 | 2014-09-10 | 中原智慧城市设计研究院有限公司 | 一种提高计算机并行计算编程自动化程度的方法 |
US10140104B2 (en) | 2015-04-14 | 2018-11-27 | Micron Technology, Inc. | Target architecture determination |
CN107851002A (zh) * | 2015-08-31 | 2018-03-27 | 华为技术有限公司 | 一种代码编译方法及代码编译器 |
US20170168792A1 (en) * | 2015-12-15 | 2017-06-15 | Futurewei Technologies, Inc. | Space and time aware organization and isolation of components in real time systems |
CN107305527B (zh) * | 2016-04-22 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 代码文件的处理方法和装置 |
CN106325860B (zh) * | 2016-08-16 | 2019-11-12 | 北京控制工程研究所 | 一种航天嵌入式软件接口数据的自动化维护方法 |
US10474461B2 (en) | 2016-09-22 | 2019-11-12 | Qualcomm Incorporated | Instruction-based synchronization of operations including at least one SIMD scatter operation |
CN107203406B (zh) * | 2017-06-26 | 2020-11-06 | 西安微电子技术研究所 | 一种面向分布式存储结构的处理方法 |
US11513840B2 (en) * | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Thread creation on local or remote compute elements by a multi-threaded, self-scheduling processor |
US11467812B2 (en) * | 2019-11-22 | 2022-10-11 | Advanced Micro Devices, Inc. | Compiler operations for heterogeneous code objects |
US11256522B2 (en) | 2019-11-22 | 2022-02-22 | Advanced Micro Devices, Inc. | Loader and runtime operations for heterogeneous code objects |
JP7295466B2 (ja) * | 2019-12-02 | 2023-06-21 | 富士通株式会社 | クラス生成プログラム及びクラス生成方法 |
CN113391842A (zh) | 2020-03-13 | 2021-09-14 | 华为技术有限公司 | 一种单指令多数据simd指令的生成、处理方法以及相关设备 |
US11354267B1 (en) * | 2021-01-11 | 2022-06-07 | Lilac Cloud, Inc. | Compiler for a command-aware hardware architecture |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04209029A (ja) * | 1990-12-04 | 1992-07-30 | Fujitsu Ltd | 並列処理プログラム翻訳処理装置 |
CA2078315A1 (en) * | 1991-09-20 | 1993-03-21 | Christopher L. Reeve | Parallel processing apparatus and method for utilizing tiling |
JPH05257709A (ja) * | 1992-03-16 | 1993-10-08 | Hitachi Ltd | 並列化判別方法およびそれを用いた並列化支援方法 |
US5774728A (en) * | 1995-12-27 | 1998-06-30 | International Business Machines Corporation | Method and system for compiling sections of a computer program for multiple execution environments |
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 |
JPH11316688A (ja) * | 1998-05-06 | 1999-11-16 | Mitsubishi Electric Corp | プログラミング言語処理装置、プログラミング言語処理方法および記録媒体 |
JP2001147819A (ja) * | 1999-11-19 | 2001-05-29 | Fujitsu Ltd | 最適化装置および記録媒体 |
US6738967B1 (en) * | 2000-03-14 | 2004-05-18 | Microsoft Corporation | Compiling for multiple virtual machines targeting different processor architectures |
US7398376B2 (en) * | 2001-03-23 | 2008-07-08 | International Business Machines Corporation | Instructions for ordering execution in pipelined processes |
US7707544B2 (en) * | 2002-12-05 | 2010-04-27 | Bea Systems, Inc. | System and method for generating and reusing software application code with source definition files |
US7707564B2 (en) * | 2003-02-26 | 2010-04-27 | Bea Systems, Inc. | Systems and methods for creating network-based software services using source code annotations |
US7434213B1 (en) * | 2004-03-31 | 2008-10-07 | Sun Microsystems, Inc. | Portable executable source code representations |
US7367026B2 (en) * | 2004-06-07 | 2008-04-29 | International Business Machines Corporation | Framework for integrated intra- and inter-loop aggregation of contiguous memory accesses for SIMD vectorization |
US7386842B2 (en) * | 2004-06-07 | 2008-06-10 | International Business Machines Corporation | Efficient data reorganization to satisfy data alignment constraints |
US7475392B2 (en) * | 2004-06-07 | 2009-01-06 | International Business Machines Corporation | SIMD code generation for loops with mixed data lengths |
US20060123401A1 (en) * | 2004-12-02 | 2006-06-08 | International Business Machines Corporation | Method and system for exploiting parallelism on a heterogeneous multiprocessor computer system |
US7966602B1 (en) * | 2006-03-16 | 2011-06-21 | Oracle America, Inc. | Incremental modification detector, and methods, systems, and apparatus for implementing the same |
US8201159B2 (en) * | 2006-08-04 | 2012-06-12 | International Business Machines Corporation | Method and apparatus for generating data parallel select operations in a pervasively data parallel system |
US7962906B2 (en) * | 2007-03-15 | 2011-06-14 | International Business Machines Corporation | Compiler method for employing multiple autonomous synergistic processors to simultaneously operate on longer vectors of data |
-
2009
- 2009-02-10 US US12/368,424 patent/US8418155B2/en not_active Expired - Fee Related
-
2010
- 2010-01-14 JP JP2010005604A patent/JP5551939B2/ja not_active Expired - Fee Related
- 2010-02-10 CN CN2010101176188A patent/CN101799760B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20100205580A1 (en) | 2010-08-12 |
CN101799760B (zh) | 2013-04-24 |
US8418155B2 (en) | 2013-04-09 |
JP2010186468A (ja) | 2010-08-26 |
CN101799760A (zh) | 2010-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5551939B2 (ja) | 任意の標的アーキテクチャに対する並列simdコードを生成する方法、コンピュータ可読媒体、およびシステム | |
JP5851396B2 (ja) | 処理方法 | |
Giorgi et al. | TERAFLUX: Harnessing dataflow in next generation teradevices | |
JP5818351B2 (ja) | ヘテロジニアス黙示的及び明示的プロセッシング要素のコンピュータ的一体化のための方法、プログラムおよびコンピュータプログラム | |
US11900113B2 (en) | Data flow processing method and related device | |
EP3649759A1 (en) | System and method for compiling high-level language code into a script executable on a blockchain platform | |
US8701096B2 (en) | In-order execution in an asynchronous programming environment | |
US20180004495A1 (en) | Verification of a dataflow representation of a program through static type-checking | |
JP2005004737A (ja) | 動的ランタイム環境でタグ付き型を用いるシステム及び方法 | |
US10372509B2 (en) | Composable and cancelable dataflow continuation passing | |
US10324693B2 (en) | Optimizing multiple invocations of graphics processing unit programs in Java | |
Mateos et al. | An approach for non-intrusively adding malleable fork/join parallelism into ordinary JavaBean compliant applications | |
Thoman et al. | Sylkan: towards a Vulkan compute target platform for SYCL | |
Hijma et al. | Stepwise‐refinement for performance: a methodology for many‐core programming | |
Kallas et al. | Practically correct,{Just-in-Time} shell script parallelization | |
Prokopec | Learning Concurrent Programming in Scala | |
Ng et al. | Session types: towards safe and fast reconfigurable programming | |
Churavy | Transparent distributed programming in Julia | |
Saillard et al. | Maximizing communication overlap with dynamic program analysis | |
US8135943B1 (en) | Method, apparatus, and computer-readable medium for generating a dispatching function | |
Su et al. | TorchProbe: Fuzzing Dynamic Deep Learning Compilers | |
Harvey | A linguistic approach to concurrent, distributed, and adaptive programming across heterogeneous platforms | |
Soh | Design and implementation of a DSL based on Ruby for parallel programming | |
Åkesson | An LLVM Back-end for REPLICA: Code Generation for a Multi-core VLIWProcessor with Chaining | |
Burshteyn | The distributed Language Hello White Paper |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120719 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131210 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140310 |
|
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: 20140507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140523 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5551939 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |