JP5151722B2 - データ処理装置およびその方法、並びにプログラム - Google Patents
データ処理装置およびその方法、並びにプログラム Download PDFInfo
- Publication number
- JP5151722B2 JP5151722B2 JP2008161516A JP2008161516A JP5151722B2 JP 5151722 B2 JP5151722 B2 JP 5151722B2 JP 2008161516 A JP2008161516 A JP 2008161516A JP 2008161516 A JP2008161516 A JP 2008161516A JP 5151722 B2 JP5151722 B2 JP 5151722B2
- Authority
- JP
- Japan
- Prior art keywords
- assembler
- file
- basic block
- instruction
- software
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
第1のステップでは、検証モデル(ソフトウェアモデル)としてのCベース言語記述のTimedソフトウェア部品を入力してコンパイルし、このコンパイルされたTimedソフトウェア部品およびコンパイルされたハードウェア部品をリンクする。
第2のステップでは、テストベンチを入力してコンパイルする。
第3のステップでは、第1のステップにより処理された検証モデルと第2のステップにより処理されたテストベンチとをリンクする。
第4のステップでは、第3のステップで生成された実行プログラムに基づいてシミュレーションを実行する。
第5のステップでは、第4のステップによるシミュレーションの結果を出力する。
第1は、検証モデルとしてのホストCPU用バイナリコードのTimedソフトウェア部品を入力し、検証モデルとしてのCベース言語記述のハードウェア部品を入力してコンパイルし、この入力されたTimedソフトウェア部品およびコンパイルされたハードウェア部品をリンクする、第1のステップとしての処理である。
第2は、検証モデルとしてのCベース言語記述のTimedソフトウェア部品を入力してコンパイルし、検証モデルとしてのホストCPU用バイナリコードのTimedソフトウェア部品を入力し、検証モデルとしてのCベース言語記述のハードウェア部品を入力してコンパイルし、このコンパイルされまたは入力されたTimedソフトウェア部品およびコンパイルされたハードウェア部品をリンクする、第1のステップとしての処理である。
たとえばUn−Timedソフトウェアとしては元のソースコード、Timedソフトウェアとしてはシミュレーション用のソースコードが例示される。
シミュレーション用に元のソースコードにサイクル数情報などが追加されるのみである。
また、コンパイラのさまざまな最適化、具体的には、関数のinline展開、Loop Unroll、実行順番の変化に関しても正確に表現することができない。
その結果、シミュレーションの精度が落ち、ソフトやハードの評価に誤差が生じ、また、ブランチ(Branch)ヒット・ミス等、評価できない項目も出てくるという不利益がある。
そして、ホスト処理装置が、Basic Blockを基準に協調検証用のTimedソフトウェアを生成する。
図2は、図1のコンピュータシステムの基本的な動作概要を示すフローチャートである。
コンピュータ本体10は、図2のフローチャートの実装であるプログラムを実行できるホスト処理装置としての中央処理装置(CPU)11とそのプログラムやそのプログラムの一部がロードされている主記憶装置(RAMやROM)12とを含むEDA(Electronic Design Automation)装置として構成される。
CPU11は、検証対象のSoC(System on Chip)の半導体装置20に搭載されているターゲット処理装置であるターゲットCPU30用のアセンブラやバイナリからBasic Blockを認識し、制御点を挿入する(図2のステップST1)。
このように、CPU11は、ターゲットCPU30用のアセンブラやバイナリ、必要に応じて元のソースコードからBasic Blockを認識する。
すなわち、CPU11は、アセンブラをベースにしてBasic Blockを認識し、必要に応じてソースコードの構成を変えたり、新たなソースコードを生成したりしてTimed ソフトウェアを生成する機能を有している。
本実施形態においては、CPU11は、時間情報だけではなく、シミュレーション用のコードのどこにその情報を挿入するかもアセンブラをベースに決める機能を有している。
このことによって、Un−Timedソフトウェア(元のソースコード)からTimedソフトウェアを生成させる。
つまり、ソースコードだけでBasic Blockを決め、そこにサイクル情報を加える既存の方法ではなく、アセンブラ解析によってBasic Blockを決め、それに合わせたソースコードを生成する。
すなわち、本実施形態においては、アセンブラ等の比較的下位の言語によるモデルによる高精度性と、C言語等の上位言語によるモデルによる高速性とを、兼ね備えたシミュレーション(検証)モデル(ソフトウェアモデル)の作成を行う。
そして、コンピュータ本体10は、生成したTimedソフトウェアに基づいた所定のシミュレーション処理を行う。
EDA装置としての本コンピュータシステム1を使用することにより、ソフトウェア(SW)/ハードウェア(HW)協調設計検証において、if文条件分岐などが正確に表現できるようになり、既存の手法よりシミュレーション精度が向上する。
それだけではなく、ブランチ(Branch)ヒット・ミス等、既存の手法で測定できない項目も測定可能になる。コンパイラの最適化にも対応できる。
また、実際ターゲットCPU用のソフトウェアとハードウェアのモデルがあれば、テストベンチがなくてもシミュレーションが可能である。
「asmFile」はアセンブラが記述されているファイルを示す。
「cFile」は時間精度付Cソースを示す。
1.関数開始/終了定義する命令、
2.関数定義関連以外の分岐命令(BE, BNEなど)、
3.上記以外の一般の命令(ADD、SUBなど)。
asmからCへの変換用のテーブル等は別途用意する(goto記述を使用する)。
「BB」はBasic Blockを意味する。
ステップST11においては、CPU11は、入力用asmFileと出力用cFileを開く。
そして、サイクル数計算の値を0とする。すなわち、CycleNum = 0とする。
ステップST12において、CPU11は、アセンブラファイルasmFileの一行を読み込む。
ステップST13において、CPU11は、アセンブラファイルasmFileが終了であるか否かを判定する。
ステップST13において、アセンブラファイルasmFileが終了していないと判定すると、ステップST14の処理に移行する。
ステップST14において、CPU11は、そのアセンブラファイルの情報がC変換やサイクル数計算に必要な情報である否かを判定する。
CPU11は、ステップST14において、ラベル等のC変換やサイクル数計算に必要な情報ではないと判定すると、ステップST12の処理に戻る。
CPU11は、ステップST14において、C変換やサイクル数計算に必要な情報である判定すると、次のステップST15の処理に移行する。
ステップST15において、CPU11は、関数開始命令であるか否かを判定する。
ステップST15において、関数開始命令ではないと判定すると、ステップST16の処理に移行する。
一方、ステップST15において、関数開始命令であると判定すると、ステップST17の処理に移行する。
ステップST16において、CPU11は、引数等関数定義に必要な情報を一時保存する。そして、CycleNumを更新し、ステップST12の処理に戻る。
ステップST17において、CPU11は、アセンブル命令(asm命令)をC関数の定義に変換しCファイルcFileに出力する。
さらに、CPU11は、CファイルcFileに時間情報Wait(CycleNum)を挿入する。そして、CPU11は、サイクル数計算の値を0とする。すなわち、CycleNum = 0としてサイクル数計算の値をクリアし、新規のBasic Block(BB)から開始する。
ステップST18において、CPU11は、アセンブラファイルasmFileの一行を読み込む。
ステップST19において、CPU11は、そのアセンブラファイルの情報がC変換やサイクル数計算に必要な情報である否かを判定する。
CPU11は、ステップST19において、ラベル等のC変換やサイクル数計算に必要な情報でないと判定すると、ステップST18の処理に戻る。
CPU11は、ステップST19において、C変換やサイクル数計算に必要な情報である判定すると、次のステップST20の処理に移行する。
ステップST20において、サイクル数計算の値(CycleNum)を更新する。
ステップST21において、CPU11は、分岐開始/終了命令であるか否かを判定する。
CPU11は、ステップST21において、分岐開始/終了命令であると判定すると、ステップST22の処理に移行する。
CPU11は、ステップST21において、分岐開始/終了命令ではないと判定すると、ステップST23の処理に移行する。
ステップST22において、CPU11は、CファイルcFileに時間情報Wait(CycleNum)を挿入する。
CPU11は、アセンブル命令(asm命令)をC言語に変換しCファイルcFileに出力する。
そして、CPU11は、サイクル数計算の値を0とする。すなわち、CycleNum = 0としてサイクル数計算の値をクリアし、直前のBasic Block(BB)を終了し、新規のBasic Block(BB)から開始する。
ステップST23において、CPU11は、関数終了命令であるか否かを判定する。
CPU11は、ステップST23において、関数終了命令でないと判定すると、ステップST24の処理に移行する。
CPU11は、ステップST23において、関数終了命令であると判定すると、ステップST25の処理に移行する。
ステップST24において、CPU11は、アセンブル命令(asm命令)をC言語に変換しCファイルcFileに出力し、ステップST18の処理に戻る。
ステップST25において、CPU11は、CファイルcFileに時間情報Wait(CycleNum)を挿入する。
CPU11は、アセンブル命令(asm命令)をC関数終了に変換しCファイルcFileに出力する。
そして、CPU11は、サイクル数計算の値を0とする。すなわち、CycleNum = 0としてサイクル数計算の値をクリアし、直前のBasic Block(BB)を終了し、ステップST12の処理に戻る。
なお、ステップST13において、アセンブラファイルasmFileが終了であると判定すると、ステップST26の処理に移行する。
そして、ステップST26において、CPU11は、アセンブラファイルasmFileとCファイルcFileを閉じる。
第1のステップでは、検証モデル(ソフトウェアモデル)としてのCベース言語記述のTimedソフトウェア部品を入力してコンパイルし、このコンパイルされたTimuedソフトウェア部品およびコンパイルされたハードウェア部品をリンクする。
第2のステップでは、テストベンチを入力してコンパイルする。
第3のステップでは、第1のステップにより処理された検証モデルと第2のステップにより処理されたテストベンチとをリンクする。
第4のステップでは、第3のステップで生成された実行プログラムに基づいてシミュレーションを実行する。
第5のステップでは、第4のステップによるシミュレーションの結果を出力する。
なお、前述したように、実際ターゲットCPU用のソフトウェアとハードウェアのモデルがあれば、テストベンチがなくてもシミュレーションが可能である。
このことによって、CPU11は、Un−Timedソフトウェア(元のソースコード)からTimedソフトウェアを生成させる。
つまり、CPU11は、ソースコードだけでBasic Blockを決め、そこにサイクル情報を加える既存の方法ではなく、アセンブラ解析によってBasic Blockを決め、それに合わせたソースコードを生成し出力することから以下に示し、かつ、図4に既存方法と比較して示す効果を得ることができる。
図4(B)は、アセンブラによる記述を示している。
図4(C)は、サイクル数情報を示している。
図4(D)は、既存方法を示している。
図4(E)は、本実施形態の係り第1の方法による記述を示している。この第1の方法では、条件によって2つに分岐するif〜elseのステートメントを含む。
図4(F)は、本実施形態の係り第2の方法による記述を示している。この第2の方法では、goto識別子を用いた例を示している。
これに対して、本実施形態によれば、正確なサイクル情報を得ることができる。
(2)既存技術では、関数のinline展開、Loop Unroll 、実行順番の変更等、コンパイラの最適化に対応できないが、本実施形態によれば、コンパイラの最適化に対応できる。
(3)ソースコードに変更を加える、もしくは、新しいソースコードを吐き出すことから、Branchヒット・ミス等、チューニングに必要な情報収集用のコードの追加も可能となる。
(4)しかも、上位言語(C言語Based等)からのNativeシミュレーションになるので、シミュレーション速度は低下しない。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
Claims (3)
- ターゲット処理装置およびオペレーティングシステム(OS)が搭載された半導体装置のハードウェアおよびソフトウェアを、生成したTimedソフトウェアにより協調検証可能なホスト処理装置を有し、
上記ホスト処理装置は、
上記ターゲット処理装置のアセンブラを解析して時間に関する情報を計算する基本単位であるBasic Blockを認識し、当該Basic Blockを基準に上記協調検証用のTimedソフトウェアを生成する生成機能を含み、
上記生成機能は、
アセンブラを解析し、サイクル数情報が反映されるように変更を加えたソースコードを生成する機能と、
アセンブラからサイクル数情報が正確に使用可能となるように上位レベルのソースコードを生成する機能と、を含み、
上記上位レベルはC言語であり、
アセンブラファイルを読み込み、時間情報を更新し、関数終了命令を認識すると、Cファイルに時間情報を挿入し、アセンブラ命令をC関数終了に変換してCファイルに出力し、直前のBasic Blockの処理を終了し、新規のBasic Blockから処理を開始し、
上記関数終了命令を認識できない場合には、アセンブラ命令をC言語に変換し、上記アセンブラファイルの読み込み処理から繰り返す
データ処理装置。 - ホスト処理装置が、ターゲット処理装置およびオペレーティングシステム(OS)が搭載された半導体装置のハードウェアおよびソフトウェアの協調検証に使用するTimedソフトを生成するに際し、
上記ホスト処理装置は、
上記ターゲット処理装置のアセンブラを解析して時間に関する情報を計算する基本単位であるBasic Blockを認識し、当該Basic Blockを基準に上記協調検証用のTimedソフトウェアを生成する生成ステップを含み、
上記生成ステップにおいては、
アセンブラを解析し、サイクル数情報が反映されるように変更を加えたソースコードを生成するステップと、
アセンブラからサイクル数情報が正確に使用可能となるように上位レベルのソースコードを生成するステップと、を含み、
上記上位レベルはC言語であり、
上記ホスト処理装置は、
アセンブラファイルを読み込み、時間情報を更新し、関数終了命令を認識すると、Cファイルに時間情報を挿入し、アセンブラ命令をC関数終了に変換してCファイルに出力し、直前のBasic Blockの処理を終了し、新規のBasic Blockから処理を開始し、
上記関数終了命令を認識できない場合には、アセンブラ命令をC言語に変換し、上記アセンブラファイルの読み込み処理から繰り返す
データ処理方法。 - ターゲット処理装置およびオペレーティングシステム(OS)が搭載された半導体装置のハードウェアおよびソフトウェアの協調検証に使用するTimedソフトを生成するに際し、
上記ターゲット処理装置のアセンブラを解析して時間に関する情報を計算する基本単位であるBasic Blockを認識し、当該Basic Blockを基準に上記協調検証用のTimedソフトウェアを生成する生成処理を含み、
上記生成処理においては、
アセンブラを解析し、サイクル数情報が反映されるように変更を加えたソースコードを生成する処理と、
アセンブラからサイクル数情報が正確に使用可能となるように上位レベルのソースコードを生成する処理と、を含み、
上記上位レベルはC言語であり、
アセンブラファイルを読み込み、時間情報を更新し、関数終了命令を認識すると、Cファイルに時間情報を挿入し、アセンブラ命令をC関数終了に変換してCファイルに出力し、直前のBasic Blockの処理を終了し、新規のBasic Blockから処理を開始し、
上記関数終了命令を認識できない場合には、アセンブラ命令をC言語に変換し、上記アセンブラファイルの読み込み処理から繰り返す
データ処理をコンピュータに実行させるプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008161516A JP5151722B2 (ja) | 2008-06-20 | 2008-06-20 | データ処理装置およびその方法、並びにプログラム |
EP09251597A EP2136293A1 (en) | 2008-06-20 | 2009-06-18 | Data processing apparatus, method therefor, and computer |
US12/487,799 US8370797B2 (en) | 2008-06-20 | 2009-06-19 | Data processing apparatus, method therefor, and computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008161516A JP5151722B2 (ja) | 2008-06-20 | 2008-06-20 | データ処理装置およびその方法、並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010003123A JP2010003123A (ja) | 2010-01-07 |
JP5151722B2 true JP5151722B2 (ja) | 2013-02-27 |
Family
ID=41128267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008161516A Expired - Fee Related JP5151722B2 (ja) | 2008-06-20 | 2008-06-20 | データ処理装置およびその方法、並びにプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8370797B2 (ja) |
EP (1) | EP2136293A1 (ja) |
JP (1) | JP5151722B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130088285A (ko) * | 2012-01-31 | 2013-08-08 | 삼성전자주식회사 | 데이터 처리 시스템 및 그 시스템에서 데이터 시뮬레이션 방법 |
JP6474055B2 (ja) * | 2014-08-29 | 2019-02-27 | キヤノン株式会社 | 情報処理装置及びその制御方法 |
US11960858B2 (en) * | 2019-08-29 | 2024-04-16 | Siemens Aktiengesellschaft | Performance based system configuration as preprocessing for system peformance simulation |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4536840A (en) * | 1982-09-30 | 1985-08-20 | Ronald Borta | Autogrammer |
US5287511A (en) * | 1988-07-11 | 1994-02-15 | Star Semiconductor Corporation | Architectures and methods for dividing processing tasks into tasks for a programmable real time signal processor and tasks for a decision making microprocessor interfacing therewith |
US5842033A (en) * | 1992-06-30 | 1998-11-24 | Discovision Associates | Padding apparatus for passing an arbitrary number of bits through a buffer in a pipeline system |
US6091897A (en) * | 1996-01-29 | 2000-07-18 | Digital Equipment Corporation | Fast translation and execution of a computer program on a non-native architecture by use of background translator |
US5854924A (en) * | 1996-08-08 | 1998-12-29 | Globetrotter Software, Inc. | Static debugging tool and method |
JPH10229427A (ja) * | 1997-02-14 | 1998-08-25 | Canon Inc | 情報処理装置及び方法 |
US6606588B1 (en) * | 1997-03-14 | 2003-08-12 | Interuniversitair Micro-Elecktronica Centrum (Imec Vzw) | Design apparatus and a method for generating an implementable description of a digital system |
US7430670B1 (en) * | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
US6263302B1 (en) * | 1999-10-29 | 2001-07-17 | Vast Systems Technology Corporation | Hardware and software co-simulation including simulating the cache of a target processor |
US7356786B2 (en) * | 1999-11-30 | 2008-04-08 | Synplicity, Inc. | Method and user interface for debugging an electronic system |
US7613599B2 (en) * | 2000-06-02 | 2009-11-03 | Synopsys, Inc. | Method and system for virtual prototyping |
US20020108094A1 (en) * | 2001-02-06 | 2002-08-08 | Michael Scurry | System and method for designing integrated circuits |
US6990534B2 (en) * | 2001-07-20 | 2006-01-24 | Flowfinity Wireless, Inc. | Method for a proactive browser system for implementing background frame maintenance and asynchronous frame submissions |
US7107580B2 (en) * | 2003-01-07 | 2006-09-12 | Intel Corporation | Binary translation of self-modifying code |
JP3951925B2 (ja) | 2003-01-31 | 2007-08-01 | セイコーエプソン株式会社 | ハードウェア/ソフトウェア協調検証方法 |
JP4271072B2 (ja) | 2004-03-31 | 2009-06-03 | Okiセミコンダクタ株式会社 | ソフトウェア検証モデル生成方法 |
JP4342392B2 (ja) * | 2004-07-06 | 2009-10-14 | Okiセミコンダクタ株式会社 | ソフトウェア検証モデル生成方法 |
US7721260B2 (en) * | 2004-09-08 | 2010-05-18 | Kozio, Inc. | Embedded Test I/O Engine |
US7774746B2 (en) * | 2006-04-19 | 2010-08-10 | Apple, Inc. | Generating a format translator |
US7568189B2 (en) * | 2006-05-03 | 2009-07-28 | Sony Computer Entertainment Inc. | Code translation and pipeline optimization |
US8146066B2 (en) * | 2006-06-20 | 2012-03-27 | Google Inc. | Systems and methods for caching compute kernels for an application running on a parallel-processing computer system |
US8584109B2 (en) * | 2006-10-27 | 2013-11-12 | Microsoft Corporation | Virtualization for diversified tamper resistance |
JP5040308B2 (ja) | 2006-12-28 | 2012-10-03 | 株式会社三洋物産 | 遊技機 |
US8494832B2 (en) * | 2007-06-20 | 2013-07-23 | Sanjeev Krishnan | Method and apparatus for software simulation |
US7987457B2 (en) * | 2007-06-25 | 2011-07-26 | Microsoft Corporation | Targeted patching for native generation images |
US7873945B2 (en) * | 2007-06-29 | 2011-01-18 | Microsoft Corporation | Automatically generating test cases for binary code |
-
2008
- 2008-06-20 JP JP2008161516A patent/JP5151722B2/ja not_active Expired - Fee Related
-
2009
- 2009-06-18 EP EP09251597A patent/EP2136293A1/en not_active Withdrawn
- 2009-06-19 US US12/487,799 patent/US8370797B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8370797B2 (en) | 2013-02-05 |
US20090319986A1 (en) | 2009-12-24 |
JP2010003123A (ja) | 2010-01-07 |
EP2136293A1 (en) | 2009-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7340692B2 (en) | System LSI development apparatus and the method thereof for developing a system optimal to an application | |
JP2003323463A (ja) | システムlsi開発環境生成方法及びそのプログラム | |
US6772106B1 (en) | Retargetable computer design system | |
Pimentel et al. | Calibration of abstract performance models for system-level design space exploration | |
Bouchhima et al. | Automatic instrumentation of embedded software for high level hardware/software co-simulation | |
JP2006350686A (ja) | 命令セット・シミュレータ生成装置及びシミュレータ生成方法 | |
JP4492803B2 (ja) | 動作合成装置及びプログラム | |
Wang et al. | Accurate source-level simulation of embedded software with respect to compiler optimizations | |
KR101076348B1 (ko) | 시뮬레이션 장치, 시뮬레이션 방법, 및 시뮬레이션 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
JP5151722B2 (ja) | データ処理装置およびその方法、並びにプログラム | |
CN110210046B (zh) | 应用程序及专用指令集处理器一体化敏捷设计方法 | |
US20040083088A1 (en) | Analysis of the performance of a portion of a data processing system | |
Gao et al. | TotalProf: a fast and accurate retargetable source code profiler | |
Halambi et al. | Automatic software toolkit generation for embedded systems-on-chip | |
Lim et al. | A worst case timing analysis technique for optimized programs | |
US7971167B2 (en) | Semiconductor design support device, semiconductor design support method, and manufacturing method for semiconductor integrated circuit | |
CN114721718A (zh) | 一种实现基于时钟精准模拟器的risc-v向量拓展指令集的方法 | |
JP4152659B2 (ja) | データ処理システムおよび設計システム | |
Rashid | An efficient cycle accurate performance estimation model for hardware software co-design | |
JPH10320212A (ja) | キャッシュ向け最適化方法 | |
Weber et al. | Fast cycle-accurate simulation and instruction set generation for constraint-based descriptions of programmable architectures | |
Himmelbauer et al. | The Vienna Architecture Description Language | |
Gruin et al. | Validation of Processor Timing Models Using Cycle-Accurate Timing Simulators | |
Mishra et al. | Processor modeling and design tools | |
Posadas et al. | Accelerating host-compiled simulation by modifying ir code: Industrial application in the spatial domain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110428 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120814 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120821 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121015 |
|
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: 20121106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121119 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151214 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151214 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |