JP3923734B2 - 割込み構造局所化の装置および方法およびプログラム - Google Patents

割込み構造局所化の装置および方法およびプログラム Download PDF

Info

Publication number
JP3923734B2
JP3923734B2 JP2001024888A JP2001024888A JP3923734B2 JP 3923734 B2 JP3923734 B2 JP 3923734B2 JP 2001024888 A JP2001024888 A JP 2001024888A JP 2001024888 A JP2001024888 A JP 2001024888A JP 3923734 B2 JP3923734 B2 JP 3923734B2
Authority
JP
Japan
Prior art keywords
interrupt
specifications
model
communication
parallel
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
Application number
JP2001024888A
Other languages
English (en)
Other versions
JP2002230063A (ja
Inventor
幹人 岩政
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2001024888A priority Critical patent/JP3923734B2/ja
Priority to US10/059,199 priority patent/US7086037B2/en
Publication of JP2002230063A publication Critical patent/JP2002230063A/ja
Application granted granted Critical
Publication of JP3923734B2 publication Critical patent/JP3923734B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、計算機や電子機器等のハードウエア、ソフトウエア、及びその組み合わせを含むシステムの設計支援に関する。
【0002】
【従来の技術】
近年、ハードウエアとソフトウエアとを区別しない、システムレベルでの仕様記述のための言語が開発され、これによりシステムレベルでの仕様から具体的なソフトウェアまたはハードウェアに分割された仕様へ、同一の仕様の書式に基づいて一貫して仕様記述を行う環境が整いつつある。このような仕様記述のための言語の登場に伴い、新たな設計方法論も幾つか提唱されている。
【0003】
また、システム設計の上流段階において、システム仕様を確かめながらの設計環境を提供するラピッドプロトタイピングツール(RapidやBetterState)が知られている。Rapidの参考文献:“Rapid-plus, White Paper”,http://www.e-sim.com/pdf/whtpaper.pdf)。
【0004】
これらラピッドプロトタイピングツールは、階層的な状態遷移図を利用してシステム分析と設計をシームレスに、かつ迅速に行えることを特徴としており、仕様の実装方法が明らかでないシステムレベルでの仕様設計の観点からすると割込み実行、逐次実行、並列実行を階層的に組み合わせることで効率的な設計が行えたり、他の上流のシステム分析工程における成果物を少ない労力で当該システムレベルの仕様記述に変換、流用できる利点がある。
【0005】
しかしその反面、設計された仕様の実装に伴う詳細化に弱点がある。例えば、ソフトウエアであればC言語等のプログラミング言語による実装、ハードウエアであればHDL(Hardware Description Language)等のハードウエア記述言語による実装において、これら実装言語が直接的には包含しない並列や割込み等の概念を当該実装言語向けに翻訳する必要が生じ、必ずしも効率的ではないという欠点がある。この問題は、階層的な組合せによりシステム仕様がもとより複雑である場合に顕著になる。
【0006】
【発明が解決しようとする課題】
本発明は、システムベルの仕様を元に、下流の設計段階において実装可能な詳細度の仕様を効率的に得ることを目的とする。具体的には、システム記述言語に沿って作成されたシステムレベルの仕様を詳細化する際に好適であって、構造的なシステムレベルの仕様に含まれる割込み構造を局所化する装置及び方法を提供することである。
【0007】
【課題を解決するための手段】
システム記述言語に沿って作成された仕様において、割込みを定義する階層が、上位階層に位置し実際に割込みが掛かる箇所と構造的に掛け離れている(はるかに隔たる)ことが、割込みの効率的な実装を困難にする点に着目する。
【0008】
本発明の割込み構造局所化装置及び方法は、システムレベルの仕様において実質的に割込みが掛かる箇所(ポイント)を特定し、割込みが掛かる箇所に階層構造に渡って局所化する(局部集中させる)ことにより、階層構造にまたがって割込みが掛からないような仕様構造を得る。
【0009】
具体的には、本発明は次のように構成されている。
【0010】
本発明の請求項1に係る割込み構造局所化装置は、システムの仕様の構造を記録する仕様構造記録手段と、前記仕様の内容を保持しつつ前記構造のうち割込みの構造を局所化する割込み構造局所化手段と、を具備することを特徴とする割込み構造局所化装置である。
【0011】
システム仕様は、具体的には計算機で実行されるソフトウエアの仕様、半導体を組み合わせたハードウエアの仕様、ソフトウエアとハードウエアを組み合わせた組み込みシステムの仕様、およびワークフローなどビジネスプロセスの仕様等を含む。
【0012】
本発明の請求項8に係るシステム設計支援装置は、システムレベルの計算の仕様および通信の仕様からなる仕様モデルを作成するための仕様モデル記述手段と、前記仕様モデル記述手段により作成された仕様記述モデルの部分構造を分割して所定のアーキテクチャの部分要素に分配し、アーキテクチャモデルを作成するためのアーキテクチャ探索手段と、前記アーキテクチャ上の仕様要素間の通信手順を合成し、コミュニケーションモデルを作成するためのコミュニケーション合成手段と、前記仕様モデル記述手段により作成された仕様モデル、前記アーキテクチャ探索手段により作成されたアーキテクチャモデル、前記コミュニケーション合成手段により作成されたコミュニケーションモデルを相互に関連付け、これをシステム仕様として記録するシステム仕様記録手段と、前記システム仕様記録手段に記録されているシステム仕様からハードウエア仕様を生成するハードウエア仕様生成手段と、前記システム仕様記録手段に記録されているシステム仕様からソフトウエア仕様を生成するソフトウエア仕様生成手段と、前記システム仕様に含まれる仕様の内容を保持しつつ該仕様の構造のうち割込みの構造を局所化する割込み構造局所化手段と、を具備するシステム設計支援装置である。
【0013】
本発明の請求項12に係る割込み構造局所方法は、システムの仕様の構造を記録する記録ステップと、前記仕様構造に基づいて割込み可能な箇所を特定する特定ステップと、前記特定された割込み可能箇所を境に前記仕様を構造的に分割する分割ステップと、仕様の内容を保持しつつ前記仕様構造のうち割込みの構造を局所化する局所化ステップと、を具備する割込み構造局所化方法である。
【0014】
本発明の請求項18に係るプログラムは、システムの仕様の構造を記録する記録ステップと、前記仕様構造に基づいて割込み可能な箇所を特定する特定ステップと、前記特定された割込み可能箇所を境に前記仕様を構造的に分割する分割ステップと、仕様の内容を保持しつつ前記仕様構造のうち割込みの構造を局所化する局所化ステップと、をコンピュータに実行させるためのプログラムである。
【0015】
本発明の請求項19に係るプログラムは、システムレベルの計算の仕様および通信の仕様からなる仕様モデルを作成する作成ステップと、前記作成された仕様記述モデルの部分構造を分割して所定のアーキテクチャの部分要素に分配し、アーキテクチャモデルを作成するステップと、前記アーキテクチャ上の仕様要素間の通信手順を合成し、コミュニケーションモデルを作成するステップと、前記作成された仕様モデル、アーキテクチャモデル、コミュニケーションモデルを相互に関連付け、これをシステム仕様として記録する記録ステップと、前記システム仕様からハードウエア仕様を生成するステップと、前記システム仕様からソフトウエア仕様を生成するステップと、前記仕様記述モデルの部分構造への分割前に実行される割込み構造局所化ステップであって、前記仕様構造に基づいて割込み可能な箇所を特定する特定ステップと、前記特定された割込み可能箇所を境に前記仕様を構造的に分割する分割ステップと、仕様の内容を保持しつつ前記仕様構造のうち割込みの構造を局所化する局所化ステップと、により構成される割込み構造局所化ステップと、をコンピュータに実行させるためのプログラムである。
【0016】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態を説明する。
【0017】
図1は、本発明の一実施形態に係る割込み構造局所化装置が適用されたシステム設計支援装置の全体構成を示すブロック図である。
【0018】
図1に示すシステム設計支援装置1は、仕様モデル記述部2、システム仕様記録部3、アーキテクチャ探索部4、コミュニケーション合成部6、ハードウェア仕様生成部8、部品再利用部10、およびソフトウェア仕様生成部12から構成されている。
【0019】
本実施形態のシステム設計支援装置1は、計算機で実行されるソフトウエアの仕様、半導体素子等を組み合わせたハードウエアの仕様、ソフトウエアとハードウエアとを組み合わせた組み込みシステムの仕様、ワークフロー等のビジネスプロセスの仕様などについての、システムレベルでの仕様を扱う。
【0020】
このようなシステムレベルでの仕様における計算の仕様および通信の仕様からなる仕様モデルを設計するための仕様モデル記述部2は、設計者による仕様記述を支援する部分である。予め定められた仕様記述形式に従って、計算内容の仕様、通信内容の仕様を設計者が記述した結果、仕様記述モデルが生成される。この仕様記述モデルは、後述する仕様構造を含んでいる。仕様記述形式の例としては、構造化プログラミング言語に代表される構造化テキスト形式、グラフを利用する構造図形式、テーブルを利用する表形式などがある。
【0021】
アーキテクチャ探索部4は、与えられた仕様記述モデルを元に、アーキテクチャ(ハードウェアとソフトウエア実行環境の構成)に対し、仕様の内容を保存したまま仕様記述モデルの部分構造を分割してアーキテクチャ要素に分配する。具体的な実施形態では、仕様モデル記述部2で設計された計算内容の仕様や通信内容の仕様を構成する部品(仕様記述モデルの構成要素)をアーキテクチャ要素に割り当てる(アーキテクチャモデル作成)。
【0022】
コミュニケーション合成部6は、アーキテクチャ上の仕様要素間の通信手順を合成する。具体的には、アーキテクチャ探索部4で分配された通信仕様要素間に対して通信手順(プロトコル)を挿入し、通信内容の仕様が挿入された通信手順と整合性を保つためのプロトコル変換(通信手順の組替え)を行う(コミュニケーションモデル作成)。
【0023】
システム仕様記録部3は、仕様モデル記述部2により作成された仕様モデル、アーキテクチャ探索部4により作成されたアーキテクチャモデル、コミュニケーション合成部6により作成されたコミュニケーションモデルを相互に関連付け、これをシステム仕様として記録する。
【0024】
ハードウエア仕様生成部8は、システム仕様記録部3に記録されているシステム仕様からハードウエア仕様を生成する。一方、ソフトウエア仕様生成部12は、システム仕様記録部3に記録されているシステム仕様からソフトウエア仕様を生成する。
【0025】
部品化再利用部10は、システム仕様記録部3に記録されているシステム仕様を部品化し、これを仕様モデル記述部2、アーキテクチャ探索部4、およびコミュニケーション合成部6のそれぞれの設計における再利用に供する。
【0026】
本実施形態の割込み構造局所化装置は、アーキテクチャ探索部4における仕様分割を容易化するように、あらかじめ割込みの構造を局所化しておく装置として、システム設計支援装置1に組み込まれている。
【0027】
図2は、割込み構造局所化装置の概略構成を示すブロック図である。同図に示すように割込み構造局所化装置20は、割込み可能箇所の特定部22、仕様分割部24、および割込み構造局所化部26により構成されている。割込み構造局所化部26は、逐次割込み構造局所化部28と、並列割込み構造局所化部30とにより構成されている。また、並列割込み構造局所化部30は、並列割込み展開部32と、並列割込み分離部33とを有する。
【0028】
本実施形態のシステム設計支援装置1は、少なくとも、「逐次実行」、「繰り返し」、「割込み終了」、「割込み一次停止」、「並列実行」の仕様を記述するための記述要素を具備しており、これらの記述要素を階層的に組み合わせることによってシステム全体の仕様を記述することができる。
【0029】
システム仕様記述方式には、図形的に仕様を記述するステートチャート(StateChart)や、構造的な言語として文字により仕様を表現するSpecC(Specification description language based on C)言語等がある。SpecCについては、例えば"SpecC: Specification Language and Methodology", Daniel D.Gajski, Kluwer Academic Publishers, Dordrecht, ISBN0-7923-7822-9に詳しい。
以下、本実施形態ではシステム仕様記述方式として、SpecC言語の記述形式に沿った説明を行うが、本発明はSpecC言語に限定されない。
【0030】
<仕様の構造>
当該実施形態において、仕様は、複数の「ビヘイビア」と呼ぶ基本単位で構成されるものとする。ビヘイビアは、階層構造を持つことができる。すなわち、ひとつのビヘイビアは、複数の他のビヘイビアを下階層として持つことができる。ビヘイビアは、ソフトウエアの仕様の場合は、関数やクラスに相当し、ハードウエアの場合は、LSIブロックに相当し、ビジネスプロセスの場合は、ジョブやタスクに相当する。
【0031】
「仕様の構造」とは、ビヘイビアで構成される仕様の構造を規定し、ビヘイビアの実行の順番に関する階層構造と、ビヘイビア間でのデータの通信路に関する階層構造とによって構成される。実行の順番に関する構造と通信路に関する構造は、階層としては同じ構造を持つ。すなわち、ビヘイビアAが実行の順番に関してビヘイビアBの上位階層にあるならば、ビヘイビアAは通信路に関してもビヘイビアBの上位階層である。
【0032】
仕様の構造により、アーキテクチャに対する仕様分割の方法も定義できる。例えば、組み込みシステムならば、ハードウエアとソフトウエアのそれぞれに対応する部分に、仕様がどのように分割されるかを、仕様として構造化して記述する。
【0033】
<仕様の書式>
仕様の構造のうち、実行の順番に関係する構造は、少なくとも「逐次実行および繰返し実行」(fsm)、「並列実行」(par)、「同期実行」(fork,join,start,end)、「割込み実行」(try,trap,itrp)という4分類の文法的要素を用いた階層構造として表現される。fsmは有限状態機械(finite state machine)の略である。
【0034】
例えば、
fsm{a,b}は、
“aを実行し終了の後にbを実行する”
という仕様を表現し、
par{a,b}は、
“aとbを並列に実行する”
という仕様を表現し、
階層的な仕様である、fsm{a,par{b,c},d}は、
“aを実行した後にb,cを並列に実行し、
そしてb,cが両方終了したらdを実行する”
という仕様を表現している。
【0035】
また、「割込み実行」に関する仕様である、try{a}trap(e){b}は、
“最初にaを実行する。aの実行中にイベントeが発生したら、
aの実行を強制終了し、bの実行を開始する”
という仕様を示す。
【0036】
「逐次実行および繰り返し実行」、「並列実行」、「同期実行」、「割込み実行」は、ソフトウエア、ハードウエア、そしてビジネスプロセスの仕様を記述するために用いられる実行制御方法規定のための手段として必要最小限の要素であり、これらを階層的に組み合わせることにより、いわゆるシステムの仕様を記述する。
【0037】
一方、通信路に関する構造は、ビヘイビア間のデータのやりとりを規定する。ここでは、変数およびチャネルと呼ばれる部品により、通信路が実現されるものとする。変数やチャネルは仕様の階層関係の上位階層のビヘイビアの直属の部品として定義され、これと下位階層のビヘイビアとがポートと呼ばれる接続口を介して接続することにより、下位階層同士のビヘイビアが通信路を介して互いに通信することを可能にしている。
【0038】
通信路は、ソフトウエアの場合は変数や通信用の関数に相当し、ハードウエアの場合はLSIを結ぶ結線に相当する。ポートは、通信のための入出力口であり、ソフトウエアの場合は引数に相当し、ハードウエアの場合は部品同士を結線で結ぶための端子に相当する。チャンネルは、データを送受信するために特別に用意されたコマンドを受け付ける部品である。例えば、“put(データ)”,“get()”といったコマンドが考えられる。変数は、書き込み“write(データ)”コマンドと読み込み“read()”コマンドとを備えたチャンネルの一種であるとみなすことができる。
【0039】
SpecC言語の、簡便な文法要素および規則を説明する。
・システム記述:=“ビヘイビア記述”の集合
・ビヘイビア記述:={通信要素,…,処理内容}
ここで、通信要素:=変数,チャネル
処理内容:=ビヘイビア(ポート,…),実行手順記述
実行手順記述:=fsm{…},par{…},
try{…}trap(e){…}itrp(e){…}
ビヘイビア記述例{i,j,k,fsm{A(i),B(i,j),C(k)}において、i,j,kはローカル変数であり、A,B,Cは下位階層のビヘイビアで、それぞれポートを持ち、ポートがローカル変数と接続していることを示している。
・par{A,B,C}
この処理内容例は、A,B,Cを並列実行するものである。
・fsm{{1,A,goto(2)},
{2,B,flg==3:goto(1),flg==1:goto(2)}, }
ここで、fsmの各要素は、
{ラベル,処理内容,{条件:条件成立時の遷移},…}、あるいは、
{ラベル,処理内容,処理終了時の遷移,…}、あるいは、
{ラベル,処理内容}、あるいは、
処理内容
のいずれかで構成され、特に指定が無い場合は、左から順に逐次実行される。すなわち、遷移ラベルの項目が無い場合、{ラベル,処理内容}は、処理内容が終了すると、次のfsm要素を実行することになる。また、ラベルが1のfsm要素又は最左のfsm要素が最初に実行されるものとする。遷移は、「goto(X):Xはラベル番号」にて表す。例えば、goto(1)は、最初のfsm要素に戻ることを表している。
上記の処理内容例では、Aが実行され、終了すれば、Bが実行され、Bが終了したとき、変数flgの値が3ならばAを、1ならばBを実行することを表している。
【0040】
次に例示するように、ラベルの無い要素は、ラベルを用いた或る実行制御の簡略形であるといえる。
fsm{A,B,C}=fsm{{1,A,goto(2)},{2,B,goto(3)},{3,C,…},…}
・try{A}trap(ev1){B}itrp(ev2){C}…
この処理内容例では、まず、Aを実行する。そして、Aの実行中にイベントev1が発生すれば、Aを強制終了して、Bを実行する。また、Aの実行中にイベントev2が発生すれば、Aを一時停止して、Cを実行し、Cが終了したとき、Aの処理を再開する。
なお、trap(e){X},itrp(e2){Y}は、複数あってもよい。
・wait(ev)
これは、イベントevの発生を待つ同期処理である。
・notify(ev)
これは、イベントevを発生させる同期処理である。
・flg=X
これは、変数flgへの値の代入である。
・flg==X
これは、条件判断である。
・start(ID);
fork(ID);
これは、同期処理Iであり、startとforkは同期して実行される。
・end(ID);
join(ID);
これは、同期処理IIであり、endとjoinは同期して実行される。
【0041】
上記に列挙した書式に従った、階層構造を持つ仕様の例を以下に挙げる。
(例:ex0)
A:={i,par{B(i),g(i)}}
B(i):={j,k,fsm{a(j),b(k,i),C(k)}>}
C(k):={par{d,e,f(k)}}
これは、以下の仕様を表現している。
「ビヘイビアAはB,C,g,a,b,d,e,fという子ビヘイビアから構成され、ビヘイビアAは下位階層B,gより構成され、Bとgは並列実行であり、Aの下位階層であるBは下位要素a,b,Cより構成され、逐次実行され、さらにBの下位階層であるCは下位要素d,e,fより構成され、並列実効される。また、Aは通信路iを持ち、iを介してBのポートiとgのポートiが接続しており、またBは通信路j,kを持ち下位要素aのポートjと通信路jが接続し、bのポートkと通信路kが、bのポートiとBのポートiが、Cのポートkと通信路kがそれぞれ接続し、Cのポートkとfのポートkが接続していることを示している。すなわち、階層を渡ってビヘイビアfとb、gとbがそれぞれ通信線により接続し互いにデータをやり取りする。」
以下では、説明のために実行の順番に着目して通信路と階層関係を簡略化する場合がある。例えば、上記の仕様例(ex0)を実行の順番に着目して簡略化すると以下のように記述できる。
A:=par{fsm{a,b,par{d,e,f}},g}
また、説明のために通信路と接続関係に着目して、実行の順番を簡略化する場合がある。上記の仕様例(ex0)を通信路と接続関係に着目して簡略化すると以下のように記述できる。
A:={i,bh{B(i),g(i)}}
B(k):={i,j,bh{a(i),b(i,j),C(j)}>}
C(j):={bh{d,e,f(j)}}
fork(x)とstart(x)、およびend(x)とjoin(x)は、それぞれ対となって、同期制約を表し、これらの2つが常に同期して実行されることを規定している(ここで、xはid番号であり同じid番号をもつペアが同期して実行されることとする)。
例えば、
Figure 0003923734
という仕様は、1から3および2から4の逐次実行(fsm)を並列実行(par)することを階層的に示しているが、fork,join,start,endの同期関係より1と3の間に2が実行されることがわかる。
通信路の構造に関しては、上記の仕様例(ex0)においては、fとbがBの通信路jを介して互いにデータをやり取りし、Aの通信路iを介してa,b,gが互いにデータをやり取りできることを示している。
【0042】
<仕様の制約>
本実施形態のシステム設計支援装置1は、仕様記述に関する制約をシステム仕様記録部3に記録しており、この仕様制約に基づき、仕様の内容が保持されることを判断することができるものとする。
【0043】
<割込みに関する仕様の記述>
仕様モデル記述部2における割込みに関する仕様の記述において、割り込むタイミングがシステム実行時間の任意の時間単位で可能である割込みを、プリエンプティブ(preemptive)な割込みであるという。本実施形態におけるシステムレベルでの仕様記述において、割込みは、予め決められた仕様上の箇所でのみ許されるものとする。予め決められた仕様上の箇所とは、仕様記述方式特有のものであったり、設計者が任意の箇所に識別するための印(マーク)を付与したものである。プリエンプティブな割込みでは、この割込み可能な箇所が仕様全般にわたり稠密に存在することになる。多くの仕様記述言語では、割込み可能箇所を特定する仕組みを備えている。例えばSpecC言語においては、wait文やwaitfor文の箇所でのみ割込みが許される。
【0044】
したがって、例えば次のような仕様が与えられ、ビヘイビアA1,A2およびBがそれぞれwait/waitfor要素を含まないとするとき、
Figure 0003923734
この仕様は、「まずA1が実行され、このA1の実行中には割込みが入らない。A1が終了したときwait(e1)が実行される。wait(e1)実行中はtrap(e2)による割込みが可能であるから、このwait中にイベントe2が発生すればwaitは割込みにより強制終了してBが実行される。また、wait中にe1が発生すればこのwaitは終了し、次にA2が実行される。A2の実行中には割込みが入らない。」ことを示している。
【0045】
<割込み箇所の特定>
割込み可能箇所の特定部22は、システム仕様記録部3に記録されているシステム仕様に対し、仕様の内部構造(SpecCであればmain関数内のC言語で記述された仕様)を探索し、割込み可能箇所(SpecCであれば、wait/waitfor)を含む箇所を特定する。これは、構文解析器(パーサ)と呼ばれる計算機科学の技術を利用することにより実現される。または、割込み可能箇所特定部を用いて設計者が仕様中に印(SpecCならwait/waitfor)を挿入することにより割込み可能箇所を特定することもできる。これは、仕様編集の機能、例えばエディタ技術等を利用することにより実現される。
【0046】
<割込み箇所で仕様を分割>
仕様分割部24は、割込み可能箇所が特定された仕様に対して、該割込み可能箇所において仕様を分割する。例えば、ビヘイビアA内に割込み可能箇所を検出すると、該割込み可能箇所を境にこのビヘイビアAを複数のビヘイビアに分割する。分割されたビヘイビアは、割込み可能箇所を全く含まないビヘイビアか、あるいは割込み可能な最小限の構造すなわちSpecC言語の場合ならばwait/waitfor要素のみで構成されるビヘイビアに分類される。このような仕様の分割は、割込み可能性のあるビヘイビア、すなわちwait文を内部に含むビヘイビアを対象にして行われる。
【0047】
例えば、ビヘイビアAが逐次実行であって、途中にwait(e1)を含むものであるとする。
【0048】
fsm{A,B}
A==[f1;wait(e1);f2;]
(注)A==[xxx;yyy;zzz;]とはビヘイビアの内部構造を表現する方法であり、main関数内部の逐次実行処理の並びを「;」で分けたものである。
ここで、f1,f2は割込みが掛からないとすると、ビヘイビアAは仕様分割部によって3つのビヘイビアA1,A2,A3に分割される。
A(分割)−>fsm{A1,A2,A3}
A1==[f1;],A2==[wait(e1);],A3==[f2;]
このようにビヘイビアAは、A1,A2,A3を下階層とするfsm構造になる。
【0049】
また、ビヘイビアAの内部構造が繰り返し構造を含んでおり、該繰り返し構造中にwait文が含まれる場合には、
Figure 0003923734
このようにビヘイビアAを分割して新たなfsm構造を得る。なお、条件分岐(if then else)についても上記と同様の処理により仕様の分割を行う。
【0050】
<割込みの局所化>
階層構造に対する割込み(try/trap/intterrupt)において、割込み作用が有効な範囲は、この割込みが定義された階層よりも下層の階層構造である。例えば以下の割込み構造、
try{A
}trap(e){B}
において、イベントeによる割込みが作用として有効な範囲は、tryの下層であるビヘイビアA以下の階層に含まれるビヘイビアのみである。
【0051】
この点に着目して割込み構造局所化部26は、割込み定義階層の下層の内部構造を参照し、割込み定義箇所を実質的に割込みがかかる箇所まで階層構造を渡って局所化する(局部集中させる)。具体的には、実際に割込みが掛かる箇所を、割込みが有効な範囲を限定した別の構造に変換する。また、割込み構造局所化部26は、逐次割込み構造局所化部28と並列割込み構造局所化部30とに構成されており、これらが、割込みが掛かる下階層の構造に応じて異なる処理を担う。
【0052】
<逐次割込み局所化部>
逐次割込み構造局所化部28は、下層構造が逐次構造(fsm)である場合に割込み構造を局所化する。局所化においては、以下に説明する幾つかのルールを適用して行うものとする。尚、ここでのルールは便宜的なものであり実施の形態に応じて適宜変更され得る。
【0053】
ビヘイビアA1,A2を割込みの掛からないビヘイビアとし、ビヘイビアA3を割込み可能なビヘイビアとするとき、
例えば次の仕様、
try{fsm{A1,A2}}trap(e){B}
に対し、逐次割込み構造局所化部28は、
(ルール:割込みがが掛からないビヘイビアは割込み構造から外す。)
に従い割込みを局所化して次の仕様を得る。
【0054】
fsm{A1,A2}
この例では、上記割込み構造(try)の下層が割込みの掛からないビヘイビアA1,A2のfsmのみから構成されているので、局所化の結果、割込み構造自体が無くなってしまっている。これは、システム仕様上は等価な内容である。
【0055】
また、次のような仕様、
try{fsm{A1,A3,A2}}trap(e){B}
に対し、逐次割込み構造局所化部28は、
まず「割込みがが掛からないビヘイビアは割込み構造から外す」という上記したルールに従い局所化を行って、
fsm{A1,try{fsm{A3,A2}}trap(e){B}}
を得る。さらに、以下の部分、
try{fsm{A3,A2}}trap(e){B}
に対して局所化を行う。ここでは以下のルール、
(ルール:割込みがが掛かった後の動作が保存されなければならない。)
(ルール:動作を保存するために必要な分岐情報の記録・参照を仕様に挿入する。)
に従って局所化を行う。
【0056】
上述したように、ビヘイビアA3は割込み可能である。このビヘイビアA3に対する割込み発生の如何によりA2の実行の有無は決定される。すなわち、ビヘイビアA3の実行中に、
(1)割込みeが発生すれば、ビヘイビアA3を中止しビヘイビアBを実行する。ビヘイビアA2は実行されない。
【0057】
(2)割込みeが発生せず、ビヘイビアA3が終了すればビヘイビアA2を実行する。ビヘイビアBは実行されない。
という動作仕様である。この仕様の内容が保存されるように、逐次割込み構造局所化部28は、割込み構造を以下のように局所化する。
fsm{A1,{A3',flg==1:EXIT,flg!=1:A2}}
A3'=try{fsm{A3,flg=0}}trap(e){flg=1}
すなわち、ビヘイビアA3の実行中に割込みが発生すればflg(フラグ)を1に、割込みが発生せずビヘイビアA3が終了したらflgを0に設定することで割込み状況を分別している。割込み状況に応じてビヘイビアA2を実行するか、それとも終了するかをfsmの仕様に従い分岐条件に応じて判別している。
【0058】
以上説明した逐次割込み構造の局所化を、図3に示す別の例によって説明する。図3において、try{}で示される構造から、割込み可能箇所特定部22によりwait(e1)が割込み可能箇所として特定される。次に、図3下部に示すように仕様分割が行われる(仕様分割部24)。そして、図3右部に示すように局所化が行われる(逐次割込み構造局所化部28)。
【0059】
分割後の逐次割込み構造の局所化は、図4に示すように、ビヘイビアA1を実行した後、イベントe1とe2とを並列待ちし、先に成立したイベントに応じた遷移を実現する、というものである。逐次割込み構造局所化部28は、このような仕様構造を自動的に作成する。
【0060】
図5は、ETG(Extended Task Graph)表記を説明するための図である。これまで説明したSpecC言語の仕様表記を、図5に示す要素を追記することでETG表記により表すこともできる。
【0061】
図6は、SpecC言語による逐次割込み構造の局所化を、ETG表記により示したものである。上位階層であるtrap(e2)が、割込み可能箇所(e2)に関して局所化されている点は、SpecC言語でもETGでも同様であることがわかる。
【0062】
<並列割込み構造局所化部>
次に、並列割込み構造の局所化を説明する。
並列割込み構造局所化部30は、下層構造が並列(par)構造である場合の割込み構造の局所化を行う。局所化においては、以下に説明するルールを適用して行う。
【0063】
(ルール:並列構造それぞれに割込みを掛ける。)
(ルール:割込み箇所における終了状況(割込み有り終了、割込み無し終了)に応じて全体の終了を定める。)
例えば次のようにparを含む仕様(図7にも示す)、
Figure 0003923734
においては、ポイントwait(a1),wait(a2),wait(b)においてイベントeによる割込みが起こる可能性がある。
【0064】
上記ルールに従い、並列割込み構造局所化部30は、まず、割込み構造を並列構造(par)の内部構造(fsm構造)に入れ込むような局所化を行う(並列割込の展開)。
【0065】
上記仕様において、次に示すようにtryの構造、
Figure 0003923734
に着目し、以下のような展開を行う(並列割込み展開部32)。
【0066】
Figure 0003923734
ここで、並列割込み構造局所化部30は、ビヘイビアA,Bの割込み終了状況を次のように定める。
Figure 0003923734
上記並列割込み構造の局所化結果を、図8に示す。同図から分かるように、par中の割込可能箇所(ポイント)に関して局所化が行われ、1つのFSMとして展開されている。
【0067】
<並列割込み展開部>
並列割込み展開部32は、割込みを含む並列構造において、個々の並列要素に対する割込み可能箇所が明らかである場合に、これらの並列要素を組み合わせた全体としての割込み可能箇所を明らかにする。
【0068】
例えば図9に示すように、下層構造として並列(par)を含む割込み(try/trap/intrp)構造がある場合、並列割込み展開部32は、図10に示すような並列合成を行って、ラティス構造のようなFSMを得る。さらに、並列構造(par)のそれぞれに割込みを掛けたものを図11に示す。
【0069】
<並列割込み分離部>
並列割込み分離部33は、並列割込み展開部32とはまったく逆の作用をする。すなわち、ひとつの割込み構造を有する構造を、2つの並列実行される構造に変換する。割込み構造局所化の逆作用を行わない場合、当該分離部33は不要である。
【0070】
以上説明した並列割込み構造の局所化は、逐次割込み構造局所化と同様、上述したETGにより表記することもできる。図7に示した並列割込み構造をETG表記したものを図12〜図14に示す。
【0071】
図12に示す仕様構造に対し、割込み構造を並列構造のそれぞれに掛け合わせた結果が図13である。この図13のにおいて、並列構造を並列割込み展開部32により並列合成し、一本化したものが図14である。図14において、ビヘイビアA1,B1のparは、スケジューリング(fsm化)が可能な箇所である。
【0072】
以上説明した並列割込み構造に、さらにループ構造が含まれている場合についても、上記から容易に類推して対処可能である。このようにループ構造が含まれている構造に対し局所化を行った結果を図15に示す。
【0073】
以上説明した本実施形態の割込み構造局所化装置によれば、実質的に割込みが掛かる箇所(ポイント)を割込み可能箇所特定部22が特定し、仕様分割部24がその特定箇所を境に仕様を分割し、その分割結果を割込構造局所化部26が局所化する。その結果、階層構造にまたがって割込みが掛からないような仕様構造を得ることができる。これにより、システム記述言語に沿って作成された仕様において割込みを定義する階層が上位階層に位置し、実際に割込みが掛かる箇所と構造的に掛け離れ、割込みの効率的な実装を困難にすることを回避できるようになる。
【0074】
したがって、システム記述言語に沿って作成されたシステムレベルの仕様を詳細化する際に好適であって、構造的なシステムレベルの仕様に含まれる割込み構造を局所化する装置及び方法を提供できる。
【0075】
なお、以上の各機能は、ソフトウェアとして実現可能である。
また、本実施形態は、コンピュータに所定の手段を実行させるための(あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための)プログラムとして実施することもでき、該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【0076】
なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
また、この発明の実施の形態は、個別装置としての発明、関連を持つ2以上の装置についての発明、システム全体としての発明、個別装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。
従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。
【0077】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【0078】
【発明の効果】
以上説明したように、本発明によれば、システム記述言語に沿って作成されたシステムレベルの仕様を詳細化する際に好適であって、構造的なシステムレベルの仕様に含まれる割込み構造を局所化する装置及び方法を提供できる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るシステム設計支援装置の概略構成を示すブロック図
【図2】上記システム設計支援装置に適用された割込み構造局所化装置の概略構成を示すブロック図
【図3】逐次割込み構造の局所化の一例を示す図
【図4】分割された仕様に対する割込みの局所化を説明するための図
【図5】ETG表記を説明するための図
【図6】逐次割込み構造の局所化の一例をETG表記により示す図
【図7】並列割込み構造の局所化の一例を示す図
【図8】並列割込み構造の局所化の結果を示す図
【図9】並列割込み構造における並列合成を説明するための図
【図10】並列割込み構造における並列合成結果を示す図
【図11】並列合成結果に対する割込みの展開結果を示す図
【図12】並列割込み構造のETG表記の一例を示す図
【図13】ETG表記の並列割込み構造に対する割込みの局所化結果を示す図
【図14】ETG表記の並列合成結果を示す図
【図15】ループ構造を含んだ並列割込み構造の局所化結果を示す図
【符号の説明】
1…システム設計支援装置
2…仕様モデル記述部
3…システム仕様記録部
4…アーキテクチャ探索部
6…コミュニケーション合成部
8…ハードウェア仕様生成部
10…部品化再利用部
12…ソフトウェア仕様生成部
20…割込み構造局所化装置
22…割込み可能箇所の特定部
24…仕様分割部
26…割込み構造局所化部
28…逐次割込み構造局所化部
30…並列割込み構造局所化部

Claims (12)

  1. システムの仕様の構造を記録する仕様構造記録手段と、
    前記仕様の内容を保持しつつ前記構造のうち割込みの構造を局所化する割込み構造局所化手段と、を具備し、前記割込み構造局所化手段は、前記構造に基づいて割込み可能な箇所を特定する割込み可能箇所特定手段と、
    前記特定された割込み可能箇所を境に前記仕様を構造的に分割する仕様分割手段とを具備することを特徴とする割込み構造局所化装置。
  2. 前記割込み構造局所化手段は、
    下層構造が逐次構造のみからなる仕様の割込み構造を局所化する逐次割込み構造局所化手段と、
    下層構造が並列構造を含む仕様の割込み構造を局所化する並列割込み構造局所化手段と、を具備することを特徴とする請求項1に記載の割込み構造局所化装置。
  3. 前記並列割込み構造局所化手段は、並列に実行され、かつそれぞれが割込み可能な複数の仕様を、一つの逐次実行の仕様に展開する並列割込み展開手段を具備することを特徴とする請求項に記載の割込み構造局所化装置。
  4. 前記展開された一つの逐次実行の仕様を、前記並列に実行され、かつそれぞれが割込み可能な複数の仕様に分離する並列割込み分離手段をさらに具備することを特徴とする請求項に記載の割込み構造局所化装置。
  5. 前記システム仕様は、
    処理単位と、処理単位間の通信を行うための通信路とを要素として記述され、
    処理実行制御方式として少なくとも逐次、並列、割込み、繰り返し実行を用いた制御構造の階層的な組み合わせによって全体の制御仕様が記述され、
    処理単位同士を通信路で結合してデータの流れが記述されたものであることを特徴とする請求項1ないしのいずれか1項に記載の割込み構造局所化装置。
  6. 前記システム仕様は、並列実行される2つ以上の処理単位間でのイベントの授受および同期処理についての記述をも含むものであることを特徴とする請求項に記載の割込み構造局所化装置。
  7. システムレベルの計算の仕様および通信の仕様からなる仕様モデルを作成するための仕様モデル記述手段と、
    前記仕様モデル記述手段により作成された仕様記述モデルの部分構造を分割して所定のアーキテクチャの部分要素に分配し、アーキテクチャモデルを作成するためのアーキテクチャ探索手段と、
    前記アーキテクチャ上の仕様要素間の通信手順を合成し、コミュニケーションモデルを作成するためのコミュニケーション合成手段と、
    前記仕様モデル記述手段により作成された仕様モデル、前記アーキテクチャ探索手段により作成されたアーキテクチャモデル、前記コミュニケーション合成手段により作成されたコミュニケーションモデルを相互に関連付け、これをシステム仕様として記録するシステム仕様記録手段と、
    前記システム仕様記録手段に記録されているシステム仕様からハードウエア仕様を生成するハードウエア仕様生成手段と、
    前記システム仕様記録手段に記録されているシステム仕様からソフトウエア仕様を生成するソフトウエア仕様生成手段と、
    前記システム仕様に含まれる仕様の内容を保持しつつ該仕様の構造のうち割込みの構造を局所化する割込み構造局所化手段と、
    を具備することを特徴とするシステム設計支援装置。
  8. 前記システム仕様記録手段に記録されているシステム仕様を部品化し、該システム仕様の部品を前記仕様モデル記述手段、アーキテクチャ探索手段、およびコミュニケーション合成手段における再利用に供する部品化再利用手段をさらに具備することを特徴とする請求項に記載のシステム設計支援装置。
  9. 前記システム仕様は、
    処理単位と、処理単位間の通信を行うための通信路とを要素として記述され、
    処理実行制御方式として少なくとも逐次、並列、割込み、繰り返し実行を用いた制御構造の階層的な組み合わせによって全体の制御仕様が記述され、
    処理単位同士を通信路で結合してデータの流れが記述されたものであることを特徴とする請求項またはに記載のシステム設計支援装置。
  10. 前記システム仕様は、並列実行される2つ以上の処理単位間でのイベントの授受および同期処理についての記述をも含むものであることを特徴とする請求項に記載のシステム設計支援装置。
  11. システムの仕様の構造を記録する記録ステップと、
    前記仕様構造に基づいて割込み可能な箇所を特定する特定ステップと、
    前記特定された割込み可能箇所を境に前記仕様を構造的に分割する分割ステップと、
    仕様の内容を保持しつつ前記仕様構造のうち割込みの構造を局所化する局所化ステップと、をコンピュータに実行させるためのプログラム。
  12. システムレベルの計算の仕様および通信の仕様からなる仕様モデルを作成する作成ステップと、
    前記作成された仕様記述モデルの部分構造を分割して所定のアーキテクチャの部分要素に分配し、アーキテクチャモデルを作成するステップと、
    前記アーキテクチャ上の仕様要素間の通信手順を合成し、コミュニケーションモデルを作成するステップと、
    前記作成された仕様モデル、アーキテクチャモデル、コミュニケーションモデルを相互に関連付け、これをシステム仕様として記録する記録ステップと、
    前記システム仕様からハードウエア仕様を生成するステップと、
    前記システム仕様からソフトウエア仕様を生成するステップと、
    前記仕様記述モデルの部分構造への分割前に実行される割込み構造局所化ステップであって、
    前記仕様構造に基づいて割込み可能な箇所を特定する特定ステップと、
    前記特定された割込み可能箇所を境に前記仕様を構造的に分割する分割ステップと、
    仕様の内容を保持しつつ前記仕様構造のうち割込みの構造を局所化する局所化ステップと、により構成される割込み構造局所化ステップと、をコンピュータに実行させるためのプログラム。
JP2001024888A 2001-01-31 2001-01-31 割込み構造局所化の装置および方法およびプログラム Expired - Fee Related JP3923734B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001024888A JP3923734B2 (ja) 2001-01-31 2001-01-31 割込み構造局所化の装置および方法およびプログラム
US10/059,199 US7086037B2 (en) 2001-01-31 2002-01-31 Method and computer program product for localizing an interruption structure included in a hierarchical structure of a specification

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001024888A JP3923734B2 (ja) 2001-01-31 2001-01-31 割込み構造局所化の装置および方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2002230063A JP2002230063A (ja) 2002-08-16
JP3923734B2 true JP3923734B2 (ja) 2007-06-06

Family

ID=18889966

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001024888A Expired - Fee Related JP3923734B2 (ja) 2001-01-31 2001-01-31 割込み構造局所化の装置および方法およびプログラム

Country Status (2)

Country Link
US (1) US7086037B2 (ja)
JP (1) JP3923734B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200725415A (en) * 2005-12-30 2007-07-01 Tatung Co Ltd Method for automatically translating high level programming language into hardware description language
US8766666B2 (en) * 2010-06-10 2014-07-01 Micron Technology, Inc. Programmable device, hierarchical parallel machines, and methods for providing state information
JP2015076007A (ja) * 2013-10-10 2015-04-20 株式会社日立情報通信エンジニアリング 基板設計支援システムおよび基板設計支援方法
CN104899048A (zh) * 2015-06-27 2015-09-09 奇瑞汽车股份有限公司 一种嵌入式系统的设计方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5263153A (en) * 1987-01-22 1993-11-16 National Semiconductor Corporation Monitoring control flow in a microprocessor
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
US5221973A (en) * 1990-09-24 1993-06-22 Xerox Corporation Method and apparatus for exercising diagnostic functionality in product extensions
US5835922A (en) * 1992-09-30 1998-11-10 Hitachi, Ltd. Document processing apparatus and method for inputting the requirements of a reader or writer and for processing documents according to the requirements
US5937190A (en) * 1994-04-12 1999-08-10 Synopsys, Inc. Architecture and methods for a hardware description language source level analysis and debugging system
US5860009A (en) * 1994-04-28 1999-01-12 Kabushiki Kaisha Toshiba Programming method for concurrent programs and program supporting apparatus thereof
US6016474A (en) * 1995-09-11 2000-01-18 Compaq Computer Corporation Tool and method for diagnosing and correcting errors in a computer program
US5758168A (en) * 1996-04-18 1998-05-26 International Business Machines Corporation Interrupt vectoring for optionally architected facilities in computer systems
CA2211505C (en) * 1997-07-25 2002-02-05 Ibm Canada Limited-Ibm Canada Limitee Setting instance breakpoints in object oriented computer programs
US6202199B1 (en) * 1997-07-31 2001-03-13 Mutek Solutions, Ltd. System and method for remotely analyzing the execution of computer programs
US6751789B1 (en) * 1997-12-12 2004-06-15 International Business Machines Corporation Method and system for periodic trace sampling for real-time generation of segments of call stack trees augmented with call stack position determination
US6226787B1 (en) * 1999-01-25 2001-05-01 Hewlett-Packard Company Visualization method and system for dynamically displaying operations of a program
US6748583B2 (en) * 2000-12-27 2004-06-08 International Business Machines Corporation Monitoring execution of an hierarchical visual program such as for debugging a message flow

Also Published As

Publication number Publication date
US20040015825A1 (en) 2004-01-22
US7086037B2 (en) 2006-08-01
JP2002230063A (ja) 2002-08-16

Similar Documents

Publication Publication Date Title
US6026226A (en) Local compilation in context within a design hierarchy
CN100543701C (zh) 一种实现嵌入式软件异常测试的方法及系统
US9501269B2 (en) Automatic source code generation for accelerated function calls
US9075624B2 (en) Compilation of system designs
Fujita et al. The standard SpecC language
JP2006285865A (ja) レジスタ転送レベル記述と動作記述間の対応関係特定方法、装置及びプログラム
JP3923734B2 (ja) 割込み構造局所化の装置および方法およびプログラム
US6980941B2 (en) Method and computer program product for realizing a system specification which is described in a system description language
CN108874395B (zh) 一种组件化流处理过程中的硬编译方法及装置
US8245163B1 (en) Partial compilation of circuit design with new software version to obtain a complete compiled design
CN110795067A (zh) 一种需求原型可复用方法
JP3930255B2 (ja) システム仕様情報処理装置、システム仕様情報処理方法及びプログラム
Truscan et al. A model-based design process for the segbus distributed architecture
US8739088B1 (en) Using constraints wtihin a high-level modeling system for circuit design
Blouin et al. Kaolin: A system-level AADL tool for FPGA design reuse, upgrade and migration
JP3889633B2 (ja) 仕様交換装置及び仕様交換プログラム
Hallett Developing secure and reliable single device designs with Xilinx 7 series FPGAs or Zynq-7000 AP SoCs using the isolation design flow
JP2008250636A (ja) 論理設計支援システム及びプログラム
JP2006293436A (ja) プログラムコード生成装置および生成方法
US20090326908A1 (en) Simulation support method, computer-readable storage medium storing simulation support program, and simulation support apparatus
Hallett Isolation design flow for xilinx 7 series fpgas or zynq-7000 ap socs (ise tools)
de la Fuente et al. Building a dynamically reconfigurable system through a high-level development flow
JP2004318654A (ja) 性能評価装置、性能評価方法及びプログラム
JP2002229785A (ja) Gui設計支援装置および方法およびプログラム
JP2001022808A (ja) 論理回路削減装置ならびに論理シミュレーション方法および装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070115

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: 20070220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070222

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100302

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110302

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120302

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees