JP2007041796A - コード生成装置 - Google Patents
コード生成装置 Download PDFInfo
- Publication number
- JP2007041796A JP2007041796A JP2005224431A JP2005224431A JP2007041796A JP 2007041796 A JP2007041796 A JP 2007041796A JP 2005224431 A JP2005224431 A JP 2005224431A JP 2005224431 A JP2005224431 A JP 2005224431A JP 2007041796 A JP2007041796 A JP 2007041796A
- Authority
- JP
- Japan
- Prior art keywords
- code
- loop
- processing
- unit
- list
- 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.)
- Pending
Links
Images
Abstract
【解決手段】 アルゴリズムが記述されているコードリスト1を解析し、そのコードリスト1の中でループ処理を実施している記述部分を識別するループ識別部11と、そのループ識別部11により識別された記述部分のパイプライン化を実現するコード変換処理を実施するコード変換部13とを設け、そのコード変換部13によるコード変換処理後のコードリストからハードウェアに実装可能なHDL言語のコード19を生成する。
【選択図】 図1
Description
そして、ユーザがその見積もり結果を見て、変換方法を最終的に決定すると、コード生成装置が、その変換方法にしたがってループ処理を実施している記述部分のコード変換を実施する(例えば、特許文献1参照)。
また、ループ融合のように、ループ間に跨る変換処理は、ユーザが処理の依存関係を満足させながらコードを修正しなければならない。そのため、多くの時間を要するとともに、不具合を挿入してしまう可能性が高まる課題もあった。
図1はこの発明の実施の形態1によるコード生成装置を示す構成図であり、図において、コードリスト1はC言語のようなプログラミング言語でアルゴリズムが記述されているリストである。
入出力仕様2はループ処理におけるデータの入出力関係を示す仕様書である。
要求仕様3はハードウェアの回路面積の制約や、ハードウェアの処理時間の制約などが記述されているハードウェアの仕様書である。
ループ選択部12はループ識別部11から1以上のグループを受けると、いずれかのグループを選択して、そのグループをコード変換部13に出力する処理を実施する。
コード変換部13の第1の変換処理部14はループ選択部12からデータ入出力の依存関係がある複数のループ処理の記述部分を含むグループを受けると起動し、各々の記述部分に対してコード変換処理を実施して、それらの変換結果を接続する処理を実施する。
第1の変換処理部14のループ・パイプライン部14aは入出力仕様2を満足するように、グループに含まれている各々の記述部分に対してコード変換処理を実施する
第1の変換処理部14のループ間バッファ生成・接続部14bはループ・パイプライン部14aによるコード変換処理後のループ処理を相互に接続する処理を実施する。
第2の変換処理部15のループ融合部15aはデータ入出力の依存関係がない複数のループ処理の記述部分を融合する処理を実施する。
第2の変換処理部15のループ・パイプライン部15bは入出力仕様2を満足するように、ループ融合部15aによる融合後の記述部分に対してコード変換処理を実施する。
第2の変換処理部15のループ間バッファ生成・接続部15cは融合後の記述部分が複数存在する場合、ループ・パイプライン部15bによるコード変換処理後のループ処理を相互に接続する処理を実施する。
ループ処理確定部17はコードリスト選択部16により選択されたコードリストを受けると、そのコードリストをコード生成部18に出力する処理などを実施する。
コード生成部18はループ処理確定部17から出力されたコード変換処理後のコードリストからハードウェアに実装可能なHDL言語のコード19を生成する処理を実施する。
なお、コード生成部18はコード生成手段を構成している。
コード生成装置には、例えば、C言語のようなプログラミング言語でアルゴリズムが記述されているコードリスト1が入力される。なお、コードリスト1には、ループ処理を実施する記述部分が含まれている。
ここでは、説明の便宜上、C言語のようなプログラミング言語でアルゴリズムが記述されているコードリスト1が入力されるものについて示しているが、これに限るものではなく、他の言語でアルゴリズムが記述されているコードリスト1が入力されるものであってもよい。
図2において、左辺にある“1”から“7”までの数字は、コードの説明を容易にするために便宜上付けている行番号であり、実際のコードリスト1には記述されていない。
図2の例では、行番号3及び行番号4にループ処理(行番号3には、このループ処理の名称「LOOP L1」がコメントとして付記されている)が記述されており、また、行番号5及び行番号6にもループ処理(行番号5には、このループ処理の名称「LOOP L2」がコメントとして付記されている)が記述されている。
同様に、「LOOP L2」のループ処理でも、インデックス変数“i”を使用して、ループ回数が規定されており、そのループ処理中で使用されるデータは、b[],c[]の配列変数で表されている。
即ち、入出力仕様2は、コード生成装置がコードリスト1からハードウェアに実装可能な最終的なコードであるHDLコード19を生成するに際して、ハードウェアとして実行されるコードが、外部のデータを入出力する際に規定される通信仕様を表しているものである。
このような通信仕様としては、生成するハードウェアが接続されるバスの通信仕様である場合がある。
バスの仕様としては、例えば、非特許文献 “ARMプロセッサ”(CQ出版社)における“8.5 AMBA(Advanced Microcontroller Bus Architecture)”のようなものがある。
ここでは、説明の便宜上、下記に示すようなバスの通信仕様が、入出力仕様2として入力されるものとする。
・バス・クロック → バスの動作周波数
・バス転送サイズ → 転送するデータのデータ幅
・バス・トランザクション → データの転送モード(バーストモードの可否)
なお、バーストモード(burst mode)は、データを転送する際、最初の一回目だけアドレスを指定し、二回目以降のデータ転送時にはアドレスを指定しないで、データを連続的に送信するモードのことである。
バーストモードは、アドレス指定を省略する分だけ、データの転送速度が速くなる特徴を有しており、例えば、配列データのように、アドレス順に複数のデータが並んでいるような場合には、バーストモードを使用すれば、非常に高速なデータ転送を実施することが可能になる。
したがって、この実施の形態1では、下記に示すような入出力仕様2が入力されるものとする。
入出力仕様2の一例
CLOCK_FREQ: 50 MHz / バス・クロック /
SIZE: 32 BIT / バス転送サイズ /
TRANSACTION: BURST / バス・トランザクション /
要求仕様3に記述されている回路面積の制約としては、回路を実現するターゲット・デバイスが、例えば、ゲートアレーのようなASIC(Application Specific Integrated Circuit)で実現する場合には“最大ゲート数”などの制約が相当し、ターゲット・デバイスがFPGAである場合には“最大LE(Logic Element)数”などの制約が相当する。
また、要求仕様3に記述されている処理時間の制約としては、ハードウェアが“処理を開始してから、処理を終了するまでの時間が、何ms以内でなければならない”などの時間的な制約が相当する。
要求仕様3の一例
MAX_AREA: 10000 LE / 面積制約 /
MAX_PROC_TIME: 33 MS / 処理時間 /
PRIORITY: AREA / 面積重視か時間重視か /
ERROR: FINISH / エラー時 /
例えば、「PRIORITY」で「AREA」が指定されていれば、面積重視であるため、より回路面積が小さくなるコードリストを選択する。
一方、「PRIORITY」で「PROC_TIME」が指定されていれば、処理時間重視であるため、より処理時間が短くなるコードリストを選択する。
例えば、「ERROR」で「FINISH」が指定されている場合、要求仕様を満足するコードリストが存在しなければ、コードの生成処理を終了する。
また、「ERROR」で「SELECT」が指定されている場合、要求仕様を満足するコードリストが存在しなければ、最も要求仕様に近いコードリストを選択する。
図2の例では、「LOOP L1」のループ処理が記述されている行番号3,4が識別されるとともに、「LOOP L2」のループ処理が記述されている行番号5,6が識別される。
なお、ループ処理を実施している記述部分の識別処理は、例えば、for()などのループ処理を実施する関数を検出することにより行う。
即ち、どのループ処理にも依存関係が存在しなければ、各々のループ処理を並列に独立して実行することが可能であり、各々のループ処理を独立にパイプライン化することが可能であるため、複数のループ処理間のデータ入出力の依存関係を把握する。
そして、コードリスト1に含まれている1以上のループ処理の中で、データ入出力を依存しているループ処理同士を同一のグループの分類し、データ入出力の依存関係がないループ処理は異なるグループに分類する。
図2の例では、「LOOP L1」のループ処理(以下、ループ処理L1という)と「LOOP L2」のループ処理(以下、ループ処理L2という)が存在し、ループ処理L1におけるb[i]が、ループ処理L2の入力であるため、ループ処理L1とループ処理L2は、データ入出力の依存関係がある。
したがって、ループ処理L1とループ処理L2は、同一のグループに分類される。
図2の例では、コードリスト1にはループ処理L1とループ処理L2だけが含まれており、他のループ処理が含まれていないので、生成されるグループの個数は1個である。
図2の例では、ループ識別部11からループ処理L1とループ処理L2を含むグループだけが出力されるので、そのグループをコード変換部13の第1の変換処理部14とコード変換部13の第2の変換処理部15とに出力する。
ループ選択部12では、ループ識別部11から受け取った複数のグループに対して、各々コード変換部13以降の処理を実施し、HDLコード19を入手する。
ループ処理L2のパイプライン化を実現するコード変換処理を実施する。
ここで、ループ処理のパイプライン化は、ループ処理における複数のイタレーションをオーバーラップさせながら、同時に実行することにより、処理の性能を高める(実行時間を短縮する)技術である。
例えば、図3に示すようなループ処理をパイプライン化すると、このループ処理は、図4に示すような実行形態になる。
図4において、開始間隔は、あるイタレーションiの実行を開始してから、次のイタレーションi+1の実行を開始するまでのサイクル数である。
また、レイテンシは、一つのイタレーションを開始してから終了するまでのサイクル数である。なお、図3においてA(),B(),C()は各々同じ開始間隔を持つ関数であり、それらがfor文の中で、iを引数としてコール(呼び出される)事を表している。
Pc=I×(N−1)+L (1)
一方、ループ処理がパイプライン化されない場合の全実行サイクルNcは、一般的に、下記の式(2)に示すようになる。
Nc=N×L (2)
したがって、ループ処理をパイプライン化することにより、処理サイクル数の減少割合Pc/Ncは、下記の式(3)に示すようになる。
Pc/Nc=I/L×(1−1/N)+1/N (3)
式(3)から明らかなように、ループ回数Nが増えれば増えるほど、減少割合Pc/Ncが大きく減少するため、ループ処理の実現ではパイプライン化がなされることが多い。
なお、ループ処理のパイプライン化に関しては、例えば、特開平8−44773号公報や、特開2004−326463号公報などに詳述されている。
例えば、図2の関数filter()の場合、入力データが配列変数a[]になり、出力データが配列変数c[]になるが、この配列変数a[]とc[]のREAD/WRITEアクセスに対して、どのような入出力仕様が与えられるかが重要になる。
何ら入出力仕様が与えられなければ、ターゲット・デバイス上で実現可能な回路の動作周波数や、パイプラインの開始間隔や、レイテンシの中で、任意のパイプラン動作としての実現を選択することが可能であるが、一般的には、少なくとも、入力データか、出力データが入出力仕様2として与えられる。
即ち、配列変数a[]が「50MHz + 32bit + BURST」の入力仕様を満足し、配列変数c[]が「50MHz + 32bit + BURST」の出力仕様を満足するように、ループ処理L1,L2に対してコード変換処理を実施する。ここで
、入力仕様を満足するという事は、50MHz毎に配列a[i]の値がインデックスiの順番通り、順次filter()に取り込まれる、という事を表しており、出力仕様を満足するという事は50MHz毎に配列c[i]の値がインデックスiの順番通り、順次filter()から出力されるという事を表している。
ただし、ループ処理L1の出力であり、かつ、ループ処理L2の入力データである配列変数b[]には、入出力仕様が規定されていない。そのため、ループ処理L1における配列変数b[]に対する書き込み(WRITE)仕様と、ループ処理L2における配列変数b[]からの読み込み(READ)仕様は、配列変数a[],c[]に対する入出力仕様を満足する形態で適当に規定するものとする。
a[0]: 確定出来るb[]なし
a[1]: 確定出来るb[]なし
a[2]: b[1]
a[3]: b[2]
a[4]: b[3]
そのため、ループ処理L1における出力データであるb[]に対しては、a[]の取り込みタイミング、即ち、a[]の入出力仕様である「50MHz + 32bit + BURST」と同じタイミングで、b[]がb[1]からb[9998]まで順次生成される。
c[100] : b[0],b[100],b[200]
c[101] : b[1],b[101],b[201]
c[102] : b[2],b[102],b[202]
…
c[9898]: b[9798],b[9898],b[9998]
そのため、出力サイクル(50MHz)毎に、b[i−100],b[i],b[i+100]がアクセスできる事を前提に、ループ処理L2のパイプライン化が行われる。
即ち、ループ間バッファ生成・接続部14bは、ループ処理L1,L2の間で必要となるデータのハンドリングを行うための信号線の接続や、データ一時保持用のバッファの生成や、ループ処理L1,L2の間の開始・終了制御信号の生成を行う。
図2の例では、ループ処理L1のパイプライン出力b[]を200個分(b[0]〜b[199])バッファリングし、サイクル毎に、ループ処理L2のパイプライン入力に対して、(b[i−100],b[i],b[i+100])を出力するとともに、b[]が200個分のバッファリングが終わると、ループ処理L2のパイプラインの動作開始信号を生成する接続回路を生成する。
これにより、第1の変換処理部14から、ループ処理L1,L2のパイプライン実行形態を内包しているコードリストが生成される。
このように、複数のループ処理の融合を行うことにより、処理の並列度が高まり、より短い時間で処理を完了することが可能になる。ループ融合に関しては、上記の非特許文献1に詳述されている。
その際、ループアライメント、ループピーリングやスカラーリプレースメントのようなループ融合に必要となる各種前処理も実施する。これら前処理に関しても、上記の非特許文献1に詳述されている。
例えば、図2のコードリスト1に対して各種の前処理を実施して、ループ融合を実施すると、図6のようになる。
ただし、依存関係の問題からループ融合が出来なかった場合には、ループ融合が出来るループのみを選択し、ループ融合を行う。
ループ・パイプライン部15bにおけるコード変換処理は、第1の変換処理部14のループ・パイプライン部14aにおけるコード変換処理と同様であるため、詳細な説明を省略する。
ループ間バッファ生成・接続部15cにおける接続処理は、第1の変換処理部14のループ間バッファ生成・接続部14bにおける接続処理と同様であるため、詳細な説明を省略する。
即ち、コードリスト選択部16は、双方のコードリストが要求仕様3に記述されている回路面積の制約と、処理時間の制約とを満足しているか否かを判断し、例えば、第1の変換処理部14から出力されたコードリストが両方の制約を満足しているが、第2の変換処理部15から出力されたコードリストがいずれかの制約を満足していなければ、第1の変換処理部14から出力されたコードリストを選択して、そのコードリストをループ処理確定部17に出力する処理を実施する。
逆に、第2の変換処理部15から出力されたコードリストが両方の制約を満足しているが、第1の変換処理部14から出力されたコードリストがいずれかの制約を満足していなければ、第2の変換処理部15から出力されたコードリストを選択して、そのコードリストをループ処理確定部17に出力する処理を実施する。
例えば、回路面積の制約の点では、第1の変換処理部14から出力されたコードリストが第2の変換処理部15から出力されたコードリストより優れているが、処理時間の制約の点では、第2の変換処理部15から出力されたコードリストが第1の変換処理部14から出力されたコードリストより優れている場合において、「PRIORITY」で「AREA」が指定されていれば、面積重視であるため、第1の変換処理部14から出力されたコードリストを選択する。
一方、「PRIORITY」で「PROC_TIME」が指定されていれば、処理時間重視であるため、第2の変換処理部15から出力されたコードリストを選択する。
「ERROR」で「FINISH」が指定されていれば、いずれのコードリストも選択せずに、適切なコードリストが存在しない旨をループ処理確定部17に通知する。
ただし、コードリスト選択部16から適切なコードリストが存在しない旨の通知を受けると、一連のコード生成処理を終了する。
コード生成部18は、ループ処理確定部17からコード変換処理後のコードリストを受けると、そのコードリストからハードウェアに実装可能なHDL言語のコード19を生成する処理を実施する。
C言語などで記述されたコードリストからHDL言語のコード19を生成する処理自体は、公知の技術であるため詳細な説明は省略する。
また、この実施の形態1によれば、第1の変換処理部14からコード変換処理後のコードリストが出力され、第2の変換処理部15からコード変換処理後のコードリストが出力されると、ハードウェアの要求仕様3に応じて最適のコードリストを選択するように構成したので、実行性能の最適化を図ることができる効果を奏する。
また、この実施の形態1によれば、ハードウェアの要求仕様が処理時間の制約を示している場合、処理時間が最小になるコードリストを選択するように構成したので、処理時間を重視したコード変換を実現することができる効果を奏する。
Claims (7)
- アルゴリズムが記述されているコードリストを解析し、そのコードリストの中でループ処理を実施している記述部分を識別するループ処理識別手段と、上記ループ処理識別手段により識別された記述部分のパイプライン化を実現するコード変換処理を実施するコード変換手段と、上記コード変換手段によるコード変換処理後のコードリストからハードウェアに実装可能な言語のコードを生成するコード生成手段とを備えたコード生成装置。
- コード変換手段は、ループ処理識別手段によりループ処理を実施している記述部分が複数識別された場合、各々の記述部分に対してコード変換処理を実施することを特徴とする請求項1記載のコード生成装置。
- コード変換手段は、ループ処理識別手段によりループ処理を実施している記述部分が複数識別された場合、複数の記述部分を融合し、融合後の記述部分に対してコード変換処理を実施することを特徴とする請求項1記載のコード生成装置。
- コード変換手段は、ループ処理におけるデータの入出力関係を示す入出力仕様を満足するようにコード変換処理を実施することを特徴とする請求項1から請求項3のうちのいずれか1項記載のコード生成装置。
- コード変換手段から複数のコードリストが出力された場合、ハードウェアの要求仕様に応じて最適のコードリストを選択し、そのコードリストをコード生成手段に出力するコードリスト選択手段を設けたことを特徴とする請求項1から請求項4のうちのいずれか1項記載のコード生成装置。
- コードリスト選択手段は、ハードウェアの要求仕様が回路面積の制約を示している場合、回路面積が最小になるコードリストを選択することを特徴とする請求項5記載のコード生成装置。
- コードリスト選択手段は、ハードウェアの要求仕様が処理時間の制約を示している場合、処理時間が最小になるコードリストを選択することを特徴とする請求項5記載のコード生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005224431A JP2007041796A (ja) | 2005-08-02 | 2005-08-02 | コード生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005224431A JP2007041796A (ja) | 2005-08-02 | 2005-08-02 | コード生成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007041796A true JP2007041796A (ja) | 2007-02-15 |
Family
ID=37799721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005224431A Pending JP2007041796A (ja) | 2005-08-02 | 2005-08-02 | コード生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007041796A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018029377A (ja) * | 2013-03-01 | 2018-02-22 | アクシオンリサーチ株式会社 | データ処理装置およびその制御方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030005404A1 (en) * | 2001-04-20 | 2003-01-02 | Mentor Graphics | Graphical loop profile analysis |
JP2003223473A (ja) * | 1996-09-12 | 2003-08-08 | Sharp Corp | 集積回路の設計方法及びそれによって設計された集積回路 |
JP2004062909A (ja) * | 2002-07-30 | 2004-02-26 | Hewlett-Packard Development Co Lp | 複数の制御フローパスを有するソフトウェアパイプライン化ループのためのシステムおよび方法 |
WO2004042568A1 (en) * | 2002-10-31 | 2004-05-21 | Src Computers, Inc. | System and method for conveting control flow graph representations to control-dataflow graph representations |
JP2004326463A (ja) * | 2003-04-24 | 2004-11-18 | Sharp Corp | 動作合成システム、動作合成方法、制御プログラム、可読記録媒体、論理回路の製造方法および論理回路 |
-
2005
- 2005-08-02 JP JP2005224431A patent/JP2007041796A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003223473A (ja) * | 1996-09-12 | 2003-08-08 | Sharp Corp | 集積回路の設計方法及びそれによって設計された集積回路 |
US20030005404A1 (en) * | 2001-04-20 | 2003-01-02 | Mentor Graphics | Graphical loop profile analysis |
JP2004062909A (ja) * | 2002-07-30 | 2004-02-26 | Hewlett-Packard Development Co Lp | 複数の制御フローパスを有するソフトウェアパイプライン化ループのためのシステムおよび方法 |
WO2004042568A1 (en) * | 2002-10-31 | 2004-05-21 | Src Computers, Inc. | System and method for conveting control flow graph representations to control-dataflow graph representations |
JP2004326463A (ja) * | 2003-04-24 | 2004-11-18 | Sharp Corp | 動作合成システム、動作合成方法、制御プログラム、可読記録媒体、論理回路の製造方法および論理回路 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018029377A (ja) * | 2013-03-01 | 2018-02-22 | アクシオンリサーチ株式会社 | データ処理装置およびその制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI515668B (zh) | 用於一狀態機中偵測之方法及系統 | |
US5710902A (en) | Instruction dependency chain indentifier | |
TWI489779B (zh) | 狀態機晶格中之布林邏輯 | |
TWI569206B (zh) | 用於狀態機引擎之結果產生 | |
US9329866B2 (en) | Methods and apparatus for adapting pipeline stage latency based on instruction type | |
JP2010532063A (ja) | 条件命令を無条件命令および選択命令へと拡張する方法およびシステム | |
JP5209933B2 (ja) | データ処理装置 | |
US8677102B2 (en) | Instruction fusion calculation device and method for instruction fusion calculation | |
TW201333838A (zh) | 用於狀態機中資料分析之系統與方法 | |
JPH1165844A (ja) | パイプラインバイパス機能を有するデータ処理装置 | |
US5253349A (en) | Decreasing processing time for type 1 dyadic instructions | |
JP2002163127A (ja) | トレース制御回路 | |
KR100371686B1 (ko) | 제한실행분기예측방법 | |
US6587940B1 (en) | Local stall/hazard detect in superscalar, pipelined microprocessor to avoid re-read of register file | |
US20070028077A1 (en) | Pipeline processor, and method for automatically designing a pipeline processor | |
JP2007041796A (ja) | コード生成装置 | |
JPH04215129A (ja) | 連続指令実行方法及び装置 | |
JP2009507292A (ja) | 分離したシリアルモジュールを備えるプロセッサアレイ | |
US20060248320A1 (en) | Data processing apparatus and method for executing a sequence of instructions including a multiple iteration instruction | |
US6449763B1 (en) | High-level synthesis apparatus, high level synthesis method, and recording medium carrying a program for implementing the same | |
CN113779755A (zh) | 一种硅基多光谱集成电路芯片的设计方法和集成电路芯片 | |
JP2001051845A (ja) | アウトオブオーダー実行方式 | |
Rohde et al. | Improving HLS generated accelerators through relaxed memory access scheduling | |
JPH09305401A (ja) | コンピュータ及びコンパイラ | |
KR101118593B1 (ko) | Vliw 명령어 처리 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20071004 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080424 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080821 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110308 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110506 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110524 |