JP2009509267A - マルチプロセッサにおけるストリーミング・アプリケーションのためのデータ変換 - Google Patents
マルチプロセッサにおけるストリーミング・アプリケーションのためのデータ変換 Download PDFInfo
- Publication number
- JP2009509267A JP2009509267A JP2008532296A JP2008532296A JP2009509267A JP 2009509267 A JP2009509267 A JP 2009509267A JP 2008532296 A JP2008532296 A JP 2008532296A JP 2008532296 A JP2008532296 A JP 2008532296A JP 2009509267 A JP2009509267 A JP 2009509267A
- Authority
- JP
- Japan
- Prior art keywords
- computer program
- program
- nested loops
- nested
- array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000006243 chemical reaction Methods 0.000 title 1
- 238000000034 method Methods 0.000 claims abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 13
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims abstract description 7
- 238000013507 mapping Methods 0.000 claims abstract description 3
- 238000004590 computer program Methods 0.000 claims description 30
- 230000006698 induction Effects 0.000 claims description 19
- 230000006870 function Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 9
- 238000005192 partition Methods 0.000 claims description 7
- 238000012886 linear function Methods 0.000 claims description 5
- 230000014509 gene expression Effects 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims 2
- 238000000638 solvent extraction Methods 0.000 abstract description 3
- 238000005457 optimization Methods 0.000 description 16
- 238000003491 array Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
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/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/456—Parallelism detection
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- 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
-
- 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/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Operations Research (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
【選択図】図3
Description
特に明記しない限り、以下では行優先記憶と仮定する。)
さらに、第1の列の完了後、第2の列の処理を始めるために、CPUは、アレイ[0][0]からアレイ[0][l−1]をキャッシュラインへと再びデータをロードしなければならない(アレイ内の行数は、利用可能なキャッシュライン数を上回るので、前にロードされたデータは外に出されていると仮定した場合)。
P = ai + bj + c (ステートメントS1)
P = di + ej + f (ステートメントS2)
ai + bj + c = P = di + e(j+1) + f
a(i+1) + bj + c = P = di + ej + f
(a-d)i+(b-e)j=f+e-c
(a-d)i+(b-e)j=f-c-a
または、
a=d;b=e;f+e=c
a=d;b=e;f-c=a
(a、b、c、d、e、f)=(1、-1、0、1、-1、1)
S1およびS2への結果として生じるアフィン変換は、以下の通りである。
P=i-j (ステートメントS1)
P=i-j+1 (ステートメントS2)
Claims (20)
- 一のオリジナルコンピュータプログラム内の一のストリーム演算子を識別することと、
前記ストリーム演算子のための、一の多次元多面体を記述する一の連立不等式を生成することと、
前記多次元多面体の一の次元より一次元小さい次元の一の空間に前記多次元多面体を投影することにより、前記連立不等式の一の解を得ることと、
前記オリジナルコンピュータプログラムに前記連立不等式の前記解をマッピングすることにより、一の修正されたコンピュータプログラムを生成することと、
を含む方法。 - 前記修正されたコンピュータプログラムは、前記オリジナルコンピュータプログラムより小さい一のメモリフットプリントを有する、請求項1に記載の方法。
- 前記修正されたコンピュータプログラムは、前記オリジナルコンピュータプログラムよりデータの依存性が少ない、請求項1に記載の方法。
- 一の第1のコンピュータプログラム内の複数のネスト化ループを識別することと、
前記複数のネスト化ループの複数の誘導変数を一の独立誘導変数の複数の線形関数に変換することと、
前記独立誘導変数の一の新たなループ範囲内に前記複数のネスト化ループの一の関数内容を含む一の第2のコンピュータプログラムを出力することと、を含み、
前記複数のネスト化ループの前記関数内容は、前記複数の線形関数から導かれる一の連立不等式に従い、複数のパーティションに分割される、方法。 - 前記新たなループの複数の繰返しは、並列に実行されるべきである、請求項4に記載の方法。
- 前記複数のパーティションは、前記独立誘導変数と、前記複数の誘導変数の少なくとも1つとを含む複数の条件式の複数の帰結である、請求項4に記載の方法。
- 複数の空のパーティションを取り除くよう前記第2のコンピュータプログラムを最適化することをさらに含む、請求項4に記載の方法。
- 一の第1のコンピュータプログラム内の複数のネスト化反復構造を識別することと、
前記複数のネスト化反復構造を一のアフィン空間でモデル化することと、
前記アフィン空間内で前記モデルを分割することと、
前記第1のコンピュータプログラムの一の論理機能を維持する一の第2のコンピュータプログラム内で一の第2の複数のネスト化反復構造を発行することと、を含み、
前記第2の複数のネスト化反復構造の一の最外反復構造は、前記第2の複数のネスト化反復構造の残りの反復構造から独立している、方法。 - 第1のコンピュータプログラムは、Brookコンピュータ言語およびStreamItコンピュータ言語のうちどちらかの一のプログラムである、請求項8に記載の方法。
- 前記第2のコンピュータプログラムは、Cコンピュータ言語およびC++コンピュータ言語のうちのどちらかの一のプログラムである請求項8の方法。
- 前記第2のコンピュータプログラムは、一の中間表現の一のデータ構造である、請求項8に記載の方法。
- 一のデータ処理機械によって実行されると、該機械に動作を実行させる複数の命令を含む機械可読媒体であって、前記動作は、
一の第1のコンピュータプログラムを読み込むことと、
一のアレイ内のデータを処理すべく、前記第1のプログラム内で一の第1の複数のネスト化ループを識別することと、
前記第1の複数のネスト化ループを分析することと、
前記第1のコンピュータプログラムの一の関数を実行する一の第2のコンピュータプログラムを生成することと、を含み、
前記第2のコンピュータプログラムは、一のアレイ内のデータを処理する一の第2の複数のネスト化ループを含み、
前記第2の複数のネスト化ループは、前記第1の複数のネスト化ループより少なくとも1つ多いループを含み、
前記第2の複数のネスト化ループの一の外側ループの複数の繰返しは、互いに独立している、機械可読媒体。 - 前記第1の複数のネスト化ループにおける一のプログラムステートメントは、前記第2の複数のネスト化ループにおける一の条件ステートメント内に現れ、該条件ステートメントは、前記外側ループの一の誘導変数と一の内側ループの一の誘導変数とを比較する、請求項12に記載の機械可読媒体。
- 前記第1のプログラムは、一の多次元配列内のデータを処理する、請求項12に記載の機械可読媒体。
- 前記第1の複数のネスト化ループを分析することは、
一の第1のアレイアクセスを一の第1の線形方程式として表すことと、
一の第2のアレイアクセスを一の第2の線形方程式として表すことと、
前記第1および第2の線形方程式への一の同時解答を見つけることと、を含む、請求項12に記載の機械可読媒体。 - 前記外側ループの複数の繰返しは、前記第1および第2の線形方程式への前記同時解答に対応する、請求項15に記載の機械可読媒体。
- システムであって、
複数のプロセッサと、
一のメモリと、
一のデータ記憶デバイスとを含み、
前記データ記憶デバイスは、前記複数のプロセッサに、
一の第1のコンピュータプログラムを前記メモリへロードさせることと、
一のアレイ内のデータを処理すべく、前記第1のコンピュータプログラムにおいて一の第1の複数のネスト化ループを識別することと、
前記第1のプログラムの一の関数を実行すべく一の第2のコンピュータプログラムを生成することと、
を実行させる複数の命令を含み、
前記第2のコンピュータプログラムは、一のアレイ内のデータを処理する一の第2の複数のネスト化ループを含み、前記第2の複数のネスト化ループは、前記第1の複数のネスト化ループより1つ多くループを含み、
前記第2の複数のネスト化ループ内の複数のプログラムステートメントは、一の外側ループの一の誘導変数を一の内側ループの一の誘導変数と関連付ける複数の条件式によって複数のパーティションに分割される、システム。 - 前記外側ループの複数の繰返しは、前記複数のプロセッサにより並列に実行される、請求項17に記載のシステム。
- 前記複数のプロセッサは、単一の物理的プロセッサの複数の実行コアを含む、請求項17に記載のシステム。
- 前記複数のプロセッサは、複数の物理的プロセッサを含み、それぞれの物理的プロセッサは、少なくとも1つの実行コアを含む、請求項17に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/234,484 US20070074195A1 (en) | 2005-09-23 | 2005-09-23 | Data transformations for streaming applications on multiprocessors |
US11/234,484 | 2005-09-23 | ||
PCT/US2006/036155 WO2007038035A1 (en) | 2005-09-23 | 2006-09-14 | Data transformations for streaming applications on multiprocessors |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009509267A true JP2009509267A (ja) | 2009-03-05 |
JP5009296B2 JP5009296B2 (ja) | 2012-08-22 |
Family
ID=37635770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008532296A Expired - Fee Related JP5009296B2 (ja) | 2005-09-23 | 2006-09-14 | マルチプロセッサにおけるストリーミング・アプリケーションのためのデータ変換 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20070074195A1 (ja) |
EP (2) | EP1927048A1 (ja) |
JP (1) | JP5009296B2 (ja) |
KR (1) | KR100991091B1 (ja) |
CN (1) | CN101268444B (ja) |
WO (1) | WO2007038035A1 (ja) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7953158B2 (en) * | 2005-06-30 | 2011-05-31 | Intel Corporation | Computation transformations for streaming applications on multiprocessors |
US7793278B2 (en) * | 2005-09-30 | 2010-09-07 | Intel Corporation | Systems and methods for affine-partitioning programs onto multiple processing units |
US7757222B2 (en) * | 2005-09-30 | 2010-07-13 | Intel Corporation | Generating efficient parallel code using partitioning, coalescing, and degenerative loop and guard removal |
CA2543304A1 (en) * | 2006-04-11 | 2007-10-11 | Ibm Canada Limited - Ibm Canada Limitee | Code highlight and intelligent location descriptor for programming shells |
US8413151B1 (en) | 2007-12-19 | 2013-04-02 | Nvidia Corporation | Selective thread spawning within a multi-threaded processing system |
US8819647B2 (en) * | 2008-01-25 | 2014-08-26 | International Business Machines Corporation | Performance improvements for nested virtual machines |
US8122442B2 (en) * | 2008-01-31 | 2012-02-21 | Oracle America, Inc. | Method and system for array optimization |
US8930926B2 (en) * | 2008-02-08 | 2015-01-06 | Reservoir Labs, Inc. | System, methods and apparatus for program optimization for multi-threaded processor architectures |
US8661422B2 (en) * | 2008-02-08 | 2014-02-25 | Reservoir Labs, Inc. | Methods and apparatus for local memory compaction |
US8572590B2 (en) * | 2008-09-17 | 2013-10-29 | Reservoir Labs, Inc. | Methods and apparatus for joint parallelism and locality optimization in source code compilation |
US9858053B2 (en) | 2008-02-08 | 2018-01-02 | Reservoir Labs, Inc. | Methods and apparatus for data transfer optimization |
US8615770B1 (en) | 2008-08-29 | 2013-12-24 | Nvidia Corporation | System and method for dynamically spawning thread blocks within multi-threaded processing systems |
US8959497B1 (en) * | 2008-08-29 | 2015-02-17 | Nvidia Corporation | System and method for dynamically spawning thread blocks within multi-threaded processing systems |
US8688619B1 (en) | 2009-03-09 | 2014-04-01 | Reservoir Labs | Systems, methods and apparatus for distributed decision processing |
WO2010121228A2 (en) * | 2009-04-17 | 2010-10-21 | Reservoir Labs, Inc. | System, methods and apparatus for program optimization for multi-threaded processor architectures |
WO2010127173A2 (en) * | 2009-04-30 | 2010-11-04 | Reservoir Labs, Inc. | System, apparatus and methods to implement high-speed network analyzers |
US9438861B2 (en) * | 2009-10-06 | 2016-09-06 | Microsoft Technology Licensing, Llc | Integrating continuous and sparse streaming data |
US8892483B1 (en) | 2010-06-01 | 2014-11-18 | Reservoir Labs, Inc. | Systems and methods for planning a solution to a dynamically changing problem |
US8914601B1 (en) | 2010-10-18 | 2014-12-16 | Reservoir Labs, Inc. | Systems and methods for a fast interconnect table |
US9430204B2 (en) | 2010-11-19 | 2016-08-30 | Microsoft Technology Licensing, Llc | Read-only communication operator |
US9507568B2 (en) * | 2010-12-09 | 2016-11-29 | Microsoft Technology Licensing, Llc | Nested communication operator |
US9134976B1 (en) | 2010-12-13 | 2015-09-15 | Reservoir Labs, Inc. | Cross-format analysis of software systems |
US9395957B2 (en) | 2010-12-22 | 2016-07-19 | Microsoft Technology Licensing, Llc | Agile communication operator |
US9430596B2 (en) | 2011-06-14 | 2016-08-30 | Montana Systems Inc. | System, method and apparatus for a scalable parallel processor |
US9489180B1 (en) | 2011-11-18 | 2016-11-08 | Reservoir Labs, Inc. | Methods and apparatus for joint scheduling and layout optimization to enable multi-level vectorization |
US9830133B1 (en) | 2011-12-12 | 2017-11-28 | Significs And Elements, Llc | Methods and apparatus for automatic communication optimizations in a compiler based on a polyhedral representation |
US9798588B1 (en) | 2012-04-25 | 2017-10-24 | Significs And Elements, Llc | Efficient packet forwarding using cyber-security aware policies |
US10936569B1 (en) | 2012-05-18 | 2021-03-02 | Reservoir Labs, Inc. | Efficient and scalable computations with sparse tensors |
US9684865B1 (en) | 2012-06-05 | 2017-06-20 | Significs And Elements, Llc | System and method for configuration of an ensemble solver |
US9244677B2 (en) | 2012-09-28 | 2016-01-26 | Intel Corporation | Loop vectorization methods and apparatus |
CN104969179B (zh) * | 2013-03-15 | 2019-07-16 | 英特尔公司 | 用于将具有循环承载的依赖的标量计算机程序循环向量化的方法和系统 |
WO2015050594A2 (en) * | 2013-06-16 | 2015-04-09 | President And Fellows Of Harvard College | Methods and apparatus for parallel processing |
US9110681B2 (en) | 2013-12-11 | 2015-08-18 | International Business Machines Corporation | Recognizing operational options for stream operators at compile-time |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189088B1 (en) | 1999-02-03 | 2001-02-13 | International Business Machines Corporation | Forwarding stored dara fetched for out-of-order load/read operation to over-taken operation read-accessing same memory location |
US6615366B1 (en) * | 1999-12-21 | 2003-09-02 | Intel Corporation | Microprocessor with dual execution core operable in high reliability mode |
US6772415B1 (en) * | 2000-01-31 | 2004-08-03 | Interuniversitair Microelektronica Centrum (Imec) Vzw | Loop optimization with mapping code on an architecture |
US6952821B2 (en) * | 2002-08-19 | 2005-10-04 | Hewlett-Packard Development Company, L.P. | Method and system for memory management optimization |
US7086038B2 (en) * | 2002-10-07 | 2006-08-01 | Hewlett-Packard Development Company, L.P. | System and method for creating systolic solvers |
EP1569104A3 (en) * | 2004-01-09 | 2006-05-03 | Interuniversitair Microelektronica Centrum Vzw | An automated method for performing parallelization of sequential code and a computerized system adapted therefore |
US7487497B2 (en) * | 2004-08-26 | 2009-02-03 | International Business Machines Corporation | Method and system for auto parallelization of zero-trip loops through induction variable substitution |
-
2005
- 2005-09-23 US US11/234,484 patent/US20070074195A1/en not_active Abandoned
-
2006
- 2006-09-14 WO PCT/US2006/036155 patent/WO2007038035A1/en active Application Filing
- 2006-09-14 EP EP06814800A patent/EP1927048A1/en not_active Withdrawn
- 2006-09-14 JP JP2008532296A patent/JP5009296B2/ja not_active Expired - Fee Related
- 2006-09-14 KR KR1020087007116A patent/KR100991091B1/ko not_active IP Right Cessation
- 2006-09-14 CN CN200680034125.XA patent/CN101268444B/zh not_active Expired - Fee Related
- 2006-09-14 EP EP11001883A patent/EP2345961A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
CN101268444A (zh) | 2008-09-17 |
US20070074195A1 (en) | 2007-03-29 |
KR100991091B1 (ko) | 2010-10-29 |
WO2007038035A1 (en) | 2007-04-05 |
CN101268444B (zh) | 2016-05-04 |
KR20080041271A (ko) | 2008-05-09 |
EP1927048A1 (en) | 2008-06-04 |
JP5009296B2 (ja) | 2012-08-22 |
EP2345961A1 (en) | 2011-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5009296B2 (ja) | マルチプロセッサにおけるストリーミング・アプリケーションのためのデータ変換 | |
Lee et al. | OpenMPC: Extended OpenMP programming and tuning for GPUs | |
Yang et al. | A GPGPU compiler for memory optimization and parallelism management | |
Ding et al. | Improving effective bandwidth through compiler enhancement of global cache reuse | |
Bauer et al. | Singe: Leveraging warp specialization for high performance on gpus | |
Orchard et al. | Ypnos: declarative, parallel structured grid programming | |
Haidl et al. | Pacxxv2+ RV: an LLVM-based portable high-performance programming model | |
Krieger et al. | Loop chaining: A programming abstraction for balancing locality and parallelism | |
Hammami et al. | An overview on loop tiling techniques for code generation | |
Lobeiras et al. | Designing efficient index-digit algorithms for CUDA GPU architectures | |
Donaldson et al. | Automatic offloading of C++ for the Cell BE processor: a case study using Offload | |
Yan et al. | Homp: Automated distribution of parallel loops and data in highly parallel accelerator-based systems | |
CN115904328A (zh) | 一种基于llvm中间语言的跨gpu架构的并行计算框架的转化方法 | |
Hanxleden et al. | Value-based distributions in fortran d| a preliminary report | |
Yazdanpanah | An approach for analyzing auto-vectorization potential of emerging workloads | |
Shashidhar et al. | Lighthouse: An automatic code generator for graph algorithms on gpus | |
Foley et al. | Efficient partitioning of fragment shaders for multiple-output hardware | |
Sung | Data layout transformation through in-place transposition | |
Kenter et al. | Partitioning and vectorizing binary applications for a reconfigurable vector computer | |
Ringenburg et al. | Optimizing loop-level parallelism in Cray XMTTM applications | |
Jindal et al. | Automated tool to generate parallel CUDA code from a serial C code | |
Wu | Facilitating the Deployment of Irregular Applications on Parallel Manycore Architecture by Identifying Irregular Patterns | |
Nabi et al. | An intermediate language and estimator for automated design space exploration on fpgas | |
Lebedev et al. | Automatic Parallelization of Affine Programs for Distributed Memory Systems | |
Seyfari et al. | Pvl: parallelization and vectorization of affine perfectly nested-loops considering data locality on short-vector multicore processors using intrinsic vectorization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110510 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110808 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110927 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111226 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120124 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120410 |
|
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: 20120508 |
|
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: 20120530 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150608 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |