JP5444784B2 - コンテキスト作成プログラム、コンパイラ装置およびコンテキスト作成方法 - Google Patents
コンテキスト作成プログラム、コンパイラ装置およびコンテキスト作成方法 Download PDFInfo
- Publication number
- JP5444784B2 JP5444784B2 JP2009080132A JP2009080132A JP5444784B2 JP 5444784 B2 JP5444784 B2 JP 5444784B2 JP 2009080132 A JP2009080132 A JP 2009080132A JP 2009080132 A JP2009080132 A JP 2009080132A JP 5444784 B2 JP5444784 B2 JP 5444784B2
- Authority
- JP
- Japan
- Prior art keywords
- loop
- instruction
- data
- input
- arrival time
- 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
Landscapes
- Devices For Executing Special Programs (AREA)
Description
まず、本実施の形態にかかるコンテキスト作成処理の概要について説明する。図1は、本実施の形態にかかるコンテキスト作成処理の概要を示す説明図である。図1のように、本実施の形態にかかるコンテキスト作成処理は、コンパイラ100によって、ソースプログラム101から、動的再構成回路110を実行させるためのコンフィグレーションデータ102のコンテキストを作成する。
上述したように、本実施の形態にかかるコンテキスト作成処理は、動的再構成回路110によって利用されるコンテキスト102を作成するコンパイラ100に適用される。したがって、ここで、動的再構成回路110とその動作について説明する。図2は、動的再構成回路の一例を示す説明図である。図2のように、動的再構成回路110は、シーケンサ201と、条件分岐信号生成器202と、コンフィグレーションメモリ203と、PEアレー210とを含んで構成されている。
つぎに、タイミングでカウンタ回路212を起動させるかの設定について説明する。具体的には、自動起動と、トリガモードとの2種類の設定をおこなうことができる。自動起動は、シーケンサ201から出力されたCFG読み込み要求信号(FETCHEN)を受け付けてから指定サイクル後に動作を開始させるように設定する方法である。また、トリガモードは、条件分岐信号生成部202から出力されたPRDIが成立をあらわす「11」であった場合に、PRDIの入力をトリガとして動作を開始させる方法である。なお、トリガモードによる起動方法を採用する場合には、後述するカウンタ回路212の内部メモリ「Trigger−mode」を有効状態に設定する。
カウンタ回路212によるカウント実行を1クロックごとに実行させるか、もしくは所定のクロックごとに実行させるかの設定である。上述のように、1クロックごとにカウンタを動作させることも可能だが、インターバル設定をおこなうことにより、一定の間隔を置いてカウンタを動作させることもできる。なお、インターバル設定をおこなう場合には、後述するカウンタ回路212の内部メモリ「Interval」に該当するコンフィグレーションデータを格納する。
カウンタ回路212によって実行するカウント処理において、どのような条件の場合に、カウンタ回路212から外部(他のPE211やカウンタ回路212もしくは他のクラスタ)への出力をおこなうかを設定する。具体的には、ノーマル出力モードとカスケード出力モードとの二つの出力モードが用意されており、後述するカウンタ回路212の内部メモリ「Output−mode」に格納されたコンフィグレーションデータに基づいてモードを切り替える。
ループ処理動作時には成立を示す入力信号PRDI「11」を出力し、ループ条件成立時にはPRDI「10」を出力する。また、ループ処理が停止時にはPRDI「00」を出力する。また、後段に他のカウンタ回路212が接続されている場合には、アドレスカウンタを停止させるため、ループ条件成立時に、PRDI「10」とともに、カスケード信号を1パルスアサートする。
カスケード出力モードは、後段に同一のカウンタ回路212がカスケード接続されている場合に使用する。ループ処理動作時にはPRDI「10」を出力し、カウント処理によってカウント数が同カウンタ回路212のループパラメータの初期値に達したとき、PRDI「11」を出力する。また、ループ処理停止時にはPRDI「00」を出力する。
カウンタ回路212が、どのような入力を受け付けた場合にカウント処理を実行するかを設定する。具体的には、ノーマル入力モードとカスケード入力モードとの二つの入力モードが用意されており、後述するカウンタ回路212の内部メモリ「Input−mode」に格納されたコンフィグレーションデータに基づいてモードを切り替える。
カウンタ回路112にPRDI「11」が入力された場合にカウント処理を開始し、インターバル設定にしたがい、クロックに同期したカウント処理を進める。なお、上述した(a)の設定により自動起動に切り替えることもできる。
カウンタ回路にPRDI「11」が入力されると、カウント値を更新する。また、PRDI「10」が入力されるとカウント値の更新を停止する。また、他のカウンタ回路212にカスケード接続されている場合、前段のカウンタ回路212(カスケード出力モードに設定されたカウンタ回路)から出力されるPRDIを受け付けて、アドレスカウンタを進めるために使用する。
つぎに、カウンタ回路212の構成について説明する。図3は、カウンタ回路の構成を示す回路図である。図3のように、カウンタ回路212は、コンフィグレーションレジスタ部301と、有効サイクル検出部302と、ループ開始値・終了値書き換え部303と、ループ制御部304と、出力レジスタ部305とを含んで構成される。また、カウンタ回路212の各機能部301〜305には下記のような端子が接続されている。
1−1.PRDI
条件分岐信号(PRDI)の入力を受け付ける端子である。条件分岐信号「11」が入力されると成立と判断し、入力モード設定(後述する内部レジスタの「Input−mode」の設定)にしたがってカウント処理を実行させる。
DIはデータ入力を受け付ける端子であり、VIは、DIに入力されたデータの有効/無効を示すvalidデータ(valid信号の出力値)の入力を受け付ける端子である。validデータが「1」のとき、同時に入力されたDIのデータは有効であると判断する。
カスケード信号の入力を受け付ける端子である。このカスケード信号がアサート(Hi
gh状態の信号入力)されたときループカウントを終了する。また、ループカウントが停止されると、つぎのコンフィグレーションデータが設定されるまでループカウント再開は不可能となる。
CFGはコンフィグレーションデータの入力を受け付ける端子である。また、FETCHENは、CFG読み込み要求信号(FETCHEN)の入力を受け付ける端子であり、起動要求信号がアサートされたときのみ、CFGに入力されたコンフィグレーションデータを後述する内部レジスタに取り込む。
2−1.PRDO
条件分岐信号(predicate;PRDO)を出力する端子であり、ループ処理の動作中/停止時/ループ条件成立時のそれぞれの状態に応じ、出力モード設定(後述する内部レジスタの「Output−mode」の設定)にしたがって条件分岐信号を出力する。
DOはカウント値を示すデータを出力する端子である。また、VOはDOから出力されるカウント値の有効/無効を示すvalid信号を出力する端子である。なお、カウント処理の動作時、valid信号は「1」となり、カウンタ停止時、valid信号は「0」となる。
カスケード信号を出力する端子であり、出力モードがノーマル出力モードに設定されている場合には、ループ条件が成立すると、カスケード信号を1パルスアサートする。また、出力モードがカスケード出力モードに設定されている場合には、後段に接続されているカウンタ回路の入力信号の出力端子となる。なお、カスケード出力モードの際に出力されるカスケード信号は、後段のカウンタ回路のカウント処理を停止させるために使用する。
ノーマル入力モードの場合、有効サイクル検出部302は、シーケンサ201から処理
内容の成立を示すPRDI「11」が入力されると、カウント処理を開始する。カウンタ動作開始後は、クロックに同期し、Intervalに設定されたステップのタイミングでイネーブル信号(output−enable)を出力する。なお、コンフィグレーションレジスタ部301の「Trigger−mode」が自動起動に設定されている場合には、上述した設定は無効となる。
カスケード入力モードの場合、有効サイクル検出部302は、上段に接続されているカウンタ回路212から所定の条件の成立を示すPRDI「11」が入力されるとループ変数を更新するためのイネーブル信号(output−enable)を出力する。
ノーマル出力モードの場合、出力レジスタ部305は、ループエンド信号(loop−end)がアサートされると、「PRDDO」よりPRDI「11」を出力するとともに、COをアサートする。また、ループエンド信号(loop−end)がアサートされていない場合には、「PRDDO」よりPRDI「10」を出力する。
カスケード出力モードの場合、出力レジスタ部305は、ループエンド信号(loop−end)がアサートされると、出力レジスタ部305の「DO」に格納する値を、コンフィグレーションレジスタ部301の内部レジスタ「Start」の値に初期化する。また、「DO」の格納値をコンフィグレーションレジスタ部301の内部レジスタ「Start」に初期化した場合には、「PRDDO」よりPRDO「11」を出力する。また、上述した動作以外のときには、「PRDDO」よりPRDO「10」を出力する。
つぎに、カウンタ回路212の入力モード(ノーマル、カスケード)、出力モード(ノーマル、カスケード)それぞれの設定に応じた具体的な動作内容について説明する。
ここでは、ループ処理として「for(i=0;i<1024;i++)」と記述されたシングルループの制御をおこなう場合、すなわち、ノーマル入力モード−ノーマル出力モードの際のカウンタ回路212の動作について説明する。ここで、インターバル設定は、0とすることで毎クロック毎にカウント値が更新される。
つぎに、ループ処理として「for(i=0;i<3; i++){…}」と記述されている場合、すなわち、ノーマル入力モード−カスケード出力モードについて説明する。なお、カスケード出力モードは後段に同じforループ処理をおこなうカウンタ回路212を接続する場合に設定される。すなわち、カスケード出力モードに設定することによって、後段のカウンタ回路212をPRDI「11」によって1ステップ進めることができる。
つぎに、ループ処理として「for(i=0;i<3;i++){…}」と記述されている、すなわち、カスケード入力モード−ノーマル出力モードについて説明する。なお、カスケード入力モードは、同じforループ処理をおこなうカウンタ回路212のカスケード出力モードに設定されたカウンタから出力されたPRDIを受け付けて外部ループの動作をおこなう場合に設定する。
つぎに、ソースプログラム101によって多重ループ処理が記述された場合の制御内容について説明する。
まず、多重ループ制御を実装する場合について説明する。図5は、ループ制御部による多重ループ処理を示す説明図である。たとえば、3重ループが記述されたソースプログラム510が与えられた場合、図5のような動的再構成回路500が構成される。
ループ0:ノーマル入力モード/カスケード出力モード
ループ1:カスケード入力モード/カスケード出力モード
ループ2:カスケード入力モード/ノーマル出力モード
つぎに、ループパラメータの書き換え処理について説明する。図7は、ループパラメータの書き換え処理の一例を示す説明図である。図7の動的再構成回路700は、ループ1およびループ2が配置され、ループ2の出力先にはPEが接続されており、PEによる演算結果は、ループ1に入力される。また、ループ1,2およびPEには、ループパラメータ710が設定される。
本実施の形態では、上述したような構成の動的再構成回路用のコンテキストを作成して、多重ループを含む処理をシームレスに実行させる。したがって、以下は、コンパイラ100によるコンテキストの作成について説明する。通常、多重ループを含むソースプログラム101から、動的再構成回路110のコンテキスト102を作成する際には、下記の4ステップの処理が必要となる。
2.制御依存グラフの作成
3.中間表現のリストスケジューリング
4.リストスケジューリング結果をコンテキストとして出力
まず、C言語プログラムなどの高級言語の状態のソースプログラム101を一般的な構文解析技法を用いてコンパイラ100内部の中間表現に翻訳する。ここで、図8は、プログラムの中間表現の一例を示す説明図である。図8のデータ列800のように、中間表現はコンパイラ内部での操作に適した仮想的なコンピュータの命令の列から成り立っている。
つぎに、中間表現から制御依存グラフを生成する。制御依存グラフは、ある命令がどのような条件の下で実行されるかの依存関係を示したものである。たとえば、図9は、制御依存グラフの一例を示す説明図である。下記のようなプログラム片が記述されていた場合、中間表現に変換された後、図9に示すような制御依存グラフが生成される。
ELSE Y;
つぎに、中間表現に基づいて、各命令をどのPEで実行するかを決定するためにリストスケジューリングをおこなう。なお。リストスケジューリングに関しては上記参考文献2の第17章「Code Scheduling」に詳しく記載されているが、簡単に説明すると、下記のような手順によって実行される。
最後に、上記3.のリストスケジューリングの結果を参照して、ソースプログラム101を構成する各命令に対し、必要なPEが決定する。そして、決定したPEについて、それぞれ、他のPEとの接続を設定したコンテキストを作成し、コンフィグレーションデータ120として出力する。
まず、本実施の形態にかかるコンパイラ100のハードウェア構成について説明する。図13は、コンパイラ100のハードウェア構成を示すブロック図である。図13において、コンパイラ100は、CPU(Central Processing Unit)1301と、ROM(Read‐Only Memory)1302と、RAM(Random Access Memory)1303と、磁気ディスクドライブ1304と、磁気ディスク1305と、通信I/F(Interface)1306と、入力デバイス1307と、出力デバイス1308と、を備えている。また、各構成部はバス1310によってそれぞれ接続されている。
つぎに、コンパイラ100の機能的構成について説明する。図14は、コンパイラの機能的構成を示すブロック図である。図14のように、コンパイラ100は、機能部として特定部1401と、抽出部1402と、到達時間算出部1403と、選択部1404と、差分算出部1405と、作成部1406と、受付部1407と、を含む構成である。この制御部となる機能(特定部1401〜受付部1407)は、具体的には、たとえば、図13に示したROM1302、RAM1303、磁気ディスク1305などの記憶領域に記憶された検証支援プログラムをCPU1301に実行させることにより、または、通信I/F1306により、その機能を実現する。
つぎに、上述したコンテキスト作成処理を含んだコンパイラ100の具体的なコンパイルの手順について説明する。図16は、コンパイラによるコンパイルの手順を示すフローチャートである。図16のフローチャートにおいて、コンパイラ100は、まず、処理対象となるソースプログラム101を読み込む(ステップS1601)。そして、コンパイラ100は、読み込んだソースプログラム101を解析して中間表現に変換する(ステップS1602)。
つぎに、図16のステップS1604およびS1605におけるPE割り当て処理について詳しく説明する。図17は、PE割り当て処理の手順を示すフローチャートである。
また、図18は、PE割り当て処理に用いる各種データのデータ構造を示す説明図である。
られたと、判断されると(ステップS1709:Yes)、そのまま一連の処理を終了する。
110 動的再構成回路
101 ソースプログラム
102 コンフィグレーションデータ(コンテキスト)
1401 特定部
1402 抽出部
1403 到達時間算出部
1404 選択部
1405 差分算出部
1406 作成部
1407 受付部
Claims (7)
- ソースプログラムからコンテキストの作成処理を行うコンピュータを、
前記ソースプログラム内の命令の制御依存関係を特定する特定手段、
前記ソースプログラムに含まれているループ命令のうち、前記特定手段によって制御依存関係があると特定されたループ命令群を抽出する抽出手段、
前記制御依存関係に基づいて、前記抽出手段によって抽出されたループ命令群の各ループ命令に入力されるデータの到達時間を算出する到達時間算出手段、
前記到達時間算出手段によって算出された各ループ命令に入力されるデータのループ命令への到達時間と、当該データが入力されるループ命令と依存関係のあるループ命令の実行が終了するまでの時間との差分を算出する差分算出手段、
前記差分算出手段によって算出された差分がある場合に、前記ループ命令群の前段に当該差分の遅延を発生させる遅延素子を配置したコンテキストを作成する作成手段、
として機能させることを特徴とするコンテキスト作成プログラム。 - 前記特定手段は、前記ソースプログラムの制御依存グラフから前記ソースプログラム内の命令の制御依存関係を特定することを特徴とする請求項1に記載のコンテキスト作成プログラム。
- 前記コンピュータを、前記到達時間算出手段による算出結果に基づいて、各ループ命令に入力されるデータのうち、ループ命令への到達時間が最も長いデータを選択する選択手段として機能させ、
前記差分算出手段は、前記選択手段によって選択されたデータの到達時間と、当該データが入力されるループ命令と依存関係のあるループ命令の実行が終了するまでの時間との差分を算出することを特徴とする請求項1または2に記載のコンテキスト作成プログラム。 - 前記選択手段は、前記抽出手段によって複数の命令群が抽出された場合、命令群ごとにループ命令への到達時間が最も長いデータを選択し、
前記差分算出手段は、前記ループ命令群ごとに、前記選択手段によって選択されたデータの到達時間と、当該データが入力されるループ命令と依存関係のあるループ命令の実行が終了するまでの時間との差分を算出し、
前記作成手段は、各命令群の前段に前記ループ命令群の前段に前記差分算出手段によって算出された差分の遅延を発生させる遅延素子を配置したコンテキストを作成することを特徴とする請求項3に記載のコンテキスト作成プログラム。 - 前記コンピュータを、さらに、
前記ソースプログラム内の命令のうち、制御依存関係のある命令群の指定を受け付ける受付手段、として機能させ、
前記到達時間算出手段は、前記制御依存関係に基づいて、前記受付手段によって受け付けられた命令群の各命令に入力されるデータの到達時間を算出し、
前記選択手段は、前記到達時間算出手段による算出結果に基づいて、各命令に入力されるデータのうち、命令への到達時間が最も長いデータを選択し、
前記差分算出手段は、前記選択手段によって特定されたデータの到達時間と、当該データが入力される命令と依存関係のある命令の実行が終了するまでの時間との差分を算出し、
前記作成手段は、前記命令群の前段に前記差分算出手段によって算出された差分の遅延を発生させる遅延素子を配置したコンテキストを作成することを特徴とする請求項3または4に記載のコンテキスト作成プログラム。 - ソースプログラムからコンテキストを作成するコンパイラ装置であって、
前記ソースプログラム内の命令の制御依存関係を特定する特定手段と、
前記ソースプログラムに含まれているループ命令のうち、前記特定手段によって制御依存関係があると特定されたループ命令群を抽出する抽出手段と、
前記制御依存関係に基づいて、前記抽出手段によって抽出されたループ命令群の各ループ命令に入力されるデータの到達時間を算出する到達時間算出手段と、
前記到達時間算出手段によって算出された各ループ命令に入力されるデータのループ命令への到達時間と、当該データが入力されるループ命令と依存関係のあるループ命令の実行が終了するまでの時間との差分を算出する差分算出手段と、
前記差分算出手段によって算出された差分がある場合に、前記ループ命令群の前段に当該差分の遅延を発生させる遅延素子を配置したコンテキストを作成する作成手段と、
を備えることを特徴とするコンパイラ装置。 - ソースプログラムからコンテキストを作成するコンピュータが、
前記ソースプログラム内の命令の制御依存関係を特定する特定工程と、
前記ソースプログラムに含まれているループ命令のうち、前記特定工程によって制御依存関係があると特定されたループ命令群を抽出する抽出工程と、
前記制御依存関係に基づいて、前記抽出工程によって抽出されたループ命令群の各ループ命令に入力されるデータの到達時間を算出する到達時間算出工程と、
前記到達時間算出工程によって算出された各ループ命令に入力されるデータのループ命令への到達時間と、当該データが入力されるループ命令と依存関係のあるループ命令の実行が終了するまでの時間との差分を算出する差分算出工程と、
前記差分算出工程によって算出された差分がある場合に、前記ループ命令群の前段に当該差分の遅延を発生させる遅延素子を配置したコンテキストを作成する作成工程と、
を実行することを特徴とするコンテキスト作成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009080132A JP5444784B2 (ja) | 2009-03-27 | 2009-03-27 | コンテキスト作成プログラム、コンパイラ装置およびコンテキスト作成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009080132A JP5444784B2 (ja) | 2009-03-27 | 2009-03-27 | コンテキスト作成プログラム、コンパイラ装置およびコンテキスト作成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010231635A JP2010231635A (ja) | 2010-10-14 |
JP5444784B2 true JP5444784B2 (ja) | 2014-03-19 |
Family
ID=43047365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009080132A Expired - Fee Related JP5444784B2 (ja) | 2009-03-27 | 2009-03-27 | コンテキスト作成プログラム、コンパイラ装置およびコンテキスト作成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5444784B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6025482B2 (ja) | 2012-09-28 | 2016-11-16 | 富士ゼロックス株式会社 | 表示制御装置、画像表示装置、およびプログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06295246A (ja) * | 1993-04-08 | 1994-10-21 | Toshiba Corp | 命令スケジューリング方式 |
JPH1167920A (ja) * | 1997-08-22 | 1999-03-09 | Matsushita Electric Ind Co Ltd | 半導体集積回路装置の設計方法および半導体集積回路装置 |
US7299458B2 (en) * | 2002-10-31 | 2007-11-20 | Src Computers, Inc. | System and method for converting control flow graph representations to control-dataflow graph representations |
US20050283743A1 (en) * | 2004-06-07 | 2005-12-22 | Mulholland Philip J | Method for generating hardware information |
-
2009
- 2009-03-27 JP JP2009080132A patent/JP5444784B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010231635A (ja) | 2010-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9912610B2 (en) | Data-plane stateful processing units in packet processing pipelines | |
US8296746B2 (en) | Optimum code generation method and compiler device for multiprocessor | |
Canis et al. | Modulo SDC scheduling with recurrence minimization in high-level synthesis | |
US9223921B1 (en) | Compilation of HLL code with hardware accelerated functions | |
US9075624B2 (en) | Compilation of system designs | |
JP2009535718A (ja) | 同期回路設計の表現から非同期回路設計の表現へおよび非同期回路設計の表現から同期回路設計の表現への自動変換を実行するためのシステムおよび方法 | |
JPH10116302A (ja) | 集積回路の設計方法及びそれによって設計された集積回路 | |
US20130139137A1 (en) | Systems and Methods for Customizing Optimization/Transformation/ Processing Strategies | |
Ren | A brief introduction on contemporary high-level synthesis | |
Josipović et al. | Invited tutorial: Dynamatic: From C/C++ to dynamically scheduled circuits | |
Parrot et al. | Timed Petri nets with reset for pipelined synchronous circuit design | |
Li et al. | Fluid: An asynchronous high-level synthesis tool for complex program structures | |
Elakhras et al. | Unleashing parallelism in elastic circuits with faster token delivery | |
JP5444784B2 (ja) | コンテキスト作成プログラム、コンパイラ装置およびコンテキスト作成方法 | |
JPH113367A (ja) | デジタルシステムのインプリメント可能な記述を生成する設計環境および方法 | |
US20080120497A1 (en) | Automated configuration of a processing system using decoupled memory access and computation | |
US9223910B1 (en) | Performance and memory efficient modeling of HDL ports for simulation | |
Gill et al. | Bottleneck analysis and alleviation in pipelined systems: A fast hierarchical approach | |
Bergamaschi et al. | A system for production use of high-level synthesis | |
US8443344B1 (en) | Methods for identifying gating opportunities from a high-level language program and generating a hardware definition | |
Bensaid et al. | Work in progress: Automatic construction of pipeline datapaths from high-level HDL code | |
US8176451B2 (en) | Behavioral synthesis apparatus, behavioral synthesis method, and computer readable recording medium | |
Ulmann | Multi-level rewriting for stream processing to RTL compilation | |
US20240202522A1 (en) | Device and method for generating deep learning model graph and abstract syntax tree for integrated compiler | |
Westerlund et al. | Time aware system refinement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111205 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130319 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130520 |
|
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: 20131126 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131209 |
|
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 |