JPH08171554A - ベクトル演算の最適化コンパイラ - Google Patents

ベクトル演算の最適化コンパイラ

Info

Publication number
JPH08171554A
JPH08171554A JP6314648A JP31464894A JPH08171554A JP H08171554 A JPH08171554 A JP H08171554A JP 6314648 A JP6314648 A JP 6314648A JP 31464894 A JP31464894 A JP 31464894A JP H08171554 A JPH08171554 A JP H08171554A
Authority
JP
Japan
Prior art keywords
instruction
operation instruction
vector
scalar
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
Application number
JP6314648A
Other languages
English (en)
Other versions
JP3730675B2 (ja
Inventor
Hiroko Iida
浩子 飯田
Masaki Aoki
正樹 青木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP31464894A priority Critical patent/JP3730675B2/ja
Publication of JPH08171554A publication Critical patent/JPH08171554A/ja
Application granted granted Critical
Publication of JP3730675B2 publication Critical patent/JP3730675B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 本発明は,ベクトル演算を最適化するコンパ
イラに関し,コンパイルして生成されるベクトル演算命
令の処理を高速にすることを目的とする。 【構成】 ソースプログラムをコンパイルした中間言列
の演算パターンを認識する演算パターン認識部と,ベク
トル演算命令をスカラ演算命令に変更することの可否を
判定する命令変更可否判定部と,スカラ演算命令に変更
可能なベクトル演算命令に対して変更するスカラ演算命
令を作成するスカラ演算命令作成部と,該ベクトル演算
命令を該スカラ演算命令に置き換える演算パターン変更
部とを備えた構成を持つ。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は,ソースプログラムをコ
ンパイルして得られる中間言列(アセンブラ表現等)の
ベクトル演算を最適化するコンパイラに関する。
【0002】ソースプログラムのループ命令等はコンパ
イラによりベクトル演算命令列に変換し,高速に処理す
ることができるが,ベクトル演算はスカラ演算より1命
令あたりの実行時間が長いのでより高速化することが望
まれる。
【0003】本発明は,ソースプログラムをコイパイル
して生成されるベクトル演算命令の処理を高速にするコ
ンパイラを提供するものである。
【0004】
【従来の技術】図6,図7は従来技術の説明図である。
図6 (a)はソースプログラムの例であって,メモリ領域
の8バイトの実数データの配列B(B(100))をメ
モリ領域の配列A(A(100))に転送するプログラ
ムの記述である。配列C(C(100))は4バイトの
整数データである。mはスカラの整数データである。配
列Cとmをインデックスとした配列Bのデータを配列A
に転送するための間接アドレスを生成する。DOループ
により順次指定される間接アドレスにより,配列Bのデ
ータが取り出されて配列Aに転送される。
【0005】図6 (b)は,図6 (a)のソースプログラム
をコンパイルして得られるアセンブラ表現である。図7
により,図6 (b)の処理について説明する。
【0006】図7において,118はメモリ領域であっ
て,配列Cのデータを保持するものである。119はメ
モリ領域であって,mを保持するものである。
【0007】120はベクトルレジスタ(vt3)であ
って,配列Cをロードするものである。121はレジス
タ(t1)であって,mをロードするものである。
【0008】122はベクトルレジスタ(vt4)であ
って,(C(I)+m)(I=1〜N)の演算結果を保
持するものである。123はメモリ領域であって,配列
Bを保持するものである。
【0009】124はベクトルレジスタ(vt5)であ
って,間接アドレスにより配列Bのデータを取り出して
保持するものである。125はメモリ領域であって,配
列Aである。
【0010】メモリ領域118には配列CのデータC
(1) ,C(2) ,・・・,C(100)が保持されている。例
えば,C(1) =1,C(2) =4,C(3) =8,・・・と
する。メモリ領域119にmが保持されている。例え
ば,m=3とする。
【0011】VL命令によりメモリ領域118の配列C
がベクトルレジスタvt3(120)にロードされる。
次に,L命令によりメモリ領域119のmがレジスタt
1(121)にロードされる。
【0012】VAS命令により,ベクトルレジスタvt
3(120)のC(1) ,C(2) ,C(3) ,・・・の値と
レジスタt1(121)のmが加算され,ベクトルレジ
スタvt4(122)に保持される。ベクトルレジスタ
vt4(122)の内容が間接アドレスを与える。例え
ば,m=3,C(1) =1,C(2) =4,C(3) =8,・
・・の場合,間接アドレスは4,8,11,・・・とな
る。
【0013】VIL命令は,配列Bの基本アドレス(メ
モリ領域123の配列Bの先頭アドレス)から数えて,
ベクトルレジスタvt4に保持される間接アドレスC
(1) +m,C(2) +m,C(3) +m,・・・だけ変位し
たメモリ領域123のアドレスの配列Bを取り出し,順
次ベクトルレジスタ124にロードする。例えば,C
(1) +m=4なので,配列Bの4番目のデータB(4)
を一番目のベクトルレジスタvt5にロードする。C
(2) +m=7なので,メモリ領域123の配列Bの7番
目のデータB(7)を2番目のベクトルレジスタvt5
にロードする。同様に,C(3) +m=11なので,メモ
リ領域123の配列Bの11番目のデータB(11)を
3番目のベクトルレジスタvt5にロードする。C(4)
+m以降についても同様の処理を行う。
【0014】ベクトルレジスタvt5(124)に保持
されたデータはその配列順に配列Aの配列に対応する。
そして,VST命令により,それぞれメモリ領域125
の配列Aに転送される。
【0015】
【発明が解決しようとする課題】従来の技術では,ソー
スプログラムのDOループ等をコンパイルしてベクトル
演算により処理する場合には,間接アドレスを生成する
ための(C(I)+m)(I=1〜N)等の演算を必要
として演算回数が多くなり,処理に時間を要するもので
あった。
【0016】本発明は,コンパイルにより生成されるベ
クトル演算命令の命令数を少なくして,ベクトル演算命
令を最適にコンパイルして高速に処理できるコンパイラ
を提供することを目的とする。
【0017】
【課題を解決するための手段】図6 (b)のVAS命令の
演算結果(間接アドレス)は,次のVIL命令で使用さ
れるだけであり,しかも,その演算結果(C(I)+
m)(I=1〜N)はベクトルレジスタvt3(12
0)の値にそれぞれmを加えたものである。従って,こ
のような場合には,C(I)+mの演算をいちいち行う
必要はなく,mに対して配列(B)のB(m)の位置か
らC(I)の値だけシフト位置の配列Bのデータを取り
出せば良いことを意味する。すなわち,B(m)を指定
するアドレスを求めるスカラ演算だけにベクトル演算V
ASを置き換えることが可能である。
【0018】本発明は,ベクトル演算命令をスカラ命令
で置き換えられる場合には,ベクトル命令をスカラ命令
に置き換えるようにした。図1は本発明の基本構成を示
す。
【0019】図1において,1はソースプログラムであ
る。2はコンパイラであって,ソースプログラム1をコ
ンパイルしてオブジェクトプログラム3を生成するもの
である。
【0020】3はソースプログラム1のオブジェクトプ
ログラムである。10は演算パターン認識部であって,
ソースプログラム1をコンパイルして得られる中間言列
(例えばアセンブラ表現等)の演算パターンを認識する
ものである。
【0021】11は,命令変更可否判定部であって,ベ
クトル演算命令の演算結果の他の命令に対する依存関係
を調べ,他の命令との依存関係によりベクトル演算命令
をスカラ命令に置き換えられるかを判定するものであ
る。
【0022】12は,スカラ演算命令作成部であって,
スカラ演算命令に置き換えるベクトル演算命令に対して
スカラ演算命令を作成するものである。13は演算パタ
ーン変更部であって,スカラ演算命令作成部12で求め
たスカラ演算命令でベクトル演算命令を置き換えるもの
である。
【0023】
【作用】図1の本発明の基本構成の動作を説明する。コ
ンパイラ2はソースプログラム1を入力し,アセンブラ
表現等の中間言列に変換する。演算パターン認識部10
はコンパイルされた中間言列の演算パターンを分析す
る。命令変更可否判定部11はベクトル演算命令の演算
結果と他の命令との依存関係を調べ,依存関係がなけれ
ば,スカラ演算命令作成部12にベクトル演算命令に代
わるスカラ演算命令の作成を指示する。例えば,図6
(a)の場合ベクトル演算命令VASの演算結果は,VI
L命令を実行するための間接アドレスとしてだけ使用さ
れているので,他のスカラ演算命令に置き換えることが
可能である。スカラ演算命令作成部12は変更可能なベ
クトル演算命令に代わるスカラ演算命令を作成する。例
えば,中間言列が図6 (b)のような場合,ベクトル演算
命令VASに置き換えるスカラ演算命令を作成する。演
算パターン変更部13は,変更するベクトル演算命令,
例えばVAS命令を削除し,スカラ演算命令作成部12
の作成したスカラ演算命令を中間言列に組み込み,オブ
ジェクトプログラム3を作成して出力する。
【0024】本発明によれば,ベクトル演算命令を少な
くして高速に演算処理できるようにコンパイルを最適化
することができる。
【0025】
【実施例】図2は本発明の実施例を示す。図2 (a)は,
ソースプログラムであって,図6 (a)と同じものであ
る。従って説明は省略する。
【0026】図2 (b)は,ソースプログラム30を本発
明のコンパイラによりコンパイルして得られる結果のア
センブラ表現31である。図6 (b)との相違点は,図6
(b)のVAS命令が削除され,かわりにスカラ演算命令
であるADDR命令,MULT命令,ADD命令が付け
加えられている点である。
【0027】図2 (b)の処理を図3により説明する。図
3は本発明の実施例の動作説明図である。図3におい
て,41はメモリ領域であって,mを保持するものであ
る。
【0028】42はメモリ領域であって,配列Cを保持
するものである。43はベクトルレジスタvt6であっ
て,配列Cを保持するものである。44はレジスタt1
であって,配列Bのメモリの先頭領域のアドレスXを保
持するものである。
【0029】45はレジスタであって,mを保持するも
のである。46はレジスタであって,8×mの演算結果
を計算するものである(本実施例では,倍精度で計算す
る場合について説明しているので,mを8倍する。単精
度の場合には4倍である)。
【0030】47はレジスタであって,(配列Bの先頭
アドレス(X)+8×m)を計算して得られる配列Bの
m番目のデータB(m)のアドレスを保持するものであ
る。50はメモリ領域であって,配列Bを保持するもの
である。
【0031】51はベクトルレジスタvt7であって,
配列Bから取り出して配列Aに転送するデータを保持す
るものである。52はメモリ領域であって,配列Aを保
持するものである。
【0032】図3を参照して図2 (b)のアセンブラ表現
31の動作を説明する。ADDR命令により配列Bの先
頭アドレスXをレジスタt1(44)にロードする。
【0033】L命令により,mをレジスタt2(45)
にロードする。MULT命令により,レジスタt2(4
5)の内容を8倍し,レジスタt3(46)に保持す
る。
【0034】ADD命令により,レジスタt1(44)
の内容(X)とレジスタt3(46)の内容(8m)を
加算し,結果をレジスタt4(47)に保持する。VL
命令により,メモリ領域42の配列Cをベクトルレジス
タvt6(43)にロードする。
【0035】VIL命令により,B(m)のアドレスか
らレジスタvt6(43)のC(I)(I=1〜N)の
値だけ変位した配列Bを取り出し,ベクトルレジスタv
t7(51)に転送する。配列BのデータB(m)の位
置はレジスタt4(47)の値により計算する。
【0036】例えば,m=3,C(1)=1,C(2)
=4,C(3)=8,・・・とする。配列BのB(3)
(=B(m))は,レジスタt4(47)の値から求ま
る。そこで,B(3)を基準にして,ベクトルレジスタ
vt6(43)の値(配列C)を参照し,配列B(3)
からC(1)=1だけ変位した位置にあるB(4)を求
め,ベクトルレジスタvt7(51)に転送する。ま
た,配列B(3)からC(2)=4だけ変位した位置に
あるB(7)を求め,ベクトルレジスタvt7(51)
に転送する。配列B(3)からC(3)=8だけ変位し
た位置にあるB(11)を求め,ベクトルレジスタvt
7(51)に転送する。同様に,C(4)以後に対応す
る配列Bのデータを取り出し,それぞれ対応するベクト
ルレジスタvt7(51)に転送する。
【0037】VST命令により,ベクトルレジスタvt
7のデータをそれぞれの対応する配列Aのメモリ領域5
2に転送する。以上のように,図2 (b)のアセンブラ表
現31では,図6 (b)のベクトル演算命令であるVAS
命令がない代わりにADDR命令,MULT命令,AD
D命令の3命令が付け加えられているが,それらはスカ
ラ命令であるので,VAS命令の実行時間より短時間で
処理することができる。そのため,図2 (b)のアセンブ
ラ表現は,図6 (b)のアセンブラ表現より高速に処理す
ることが可能である。
【0038】図4は本発明の実施例構成を示す。図4に
おいて,60はソースプログラムである。
【0039】61は処理装置であって,CPUとメモリ
により構成されるものである。62はオブジェクトプロ
グラムである。65はコンパイラである。
【0040】66はプログラム入力部であって,ソース
プログラム60を入力するものである。66’はプログ
ラム分析部であって,ソースプログラムの内容を分析
し,ベクトル化する部分とそれ以外のスカラ処理をする
部分を求めるものである。
【0041】67はベクトル化処理部であって,ソース
プログラムの内容のうち,ベクトル化できる部分をベク
トル化してコンパイルするものである。67’はスカラ
処理部であって,スカラ処理のコンパイルをするもので
ある。
【0042】68は命令スケジューリング部であって,
生成された命令のスケジューリングを行うものである。
69はオブジェクト生成部であって,最終的な中間言列
(アセンブラ表現)を機械語に変換し,オブジェクトプ
ログラム62を生成するものである。
【0043】70は演算パターン処理部であって,演算
パターンの作成,変更等を行うものである。71は演算
パターン認識部であって,ソースプログラム60をコン
パイルして得られる中間言列の演算パターンを認識する
ものである。
【0044】72は命令変更可否判定部であって,中間
言列のベクトル演算命令をスカラ演算命令に変更可能で
あるかどうかの判定を行うものである。73はスカラ演
算命令作成部であって,ベクトル演算命令をスカラ演算
命令に変更できる場合に変更するためのスカラ演算命令
を作成するものである。
【0045】74は演算パターン変更部であって,スカ
ラ演算命令に変更するベクトル演算命令を削除し,代わ
りのスカラ演算命令を挿入し,最終的な演算パターン
(最終的な中間言列)を生成するものである。
【0046】図5の構成の動作を説明する。プログラム
入力部66はソースプログラム60を入力する。プログ
ラム分析部66’はソースプログラムの内容を分析し,
ベクトル化処理する部分とそれ以外のスカラ処理する部
分に切り分ける。ベクトル化処理部67はソースプログ
ラムのうちベクトル化できる部分をベクトル演算命令に
よりコンパイルしてアセンブラ表現に変換する。スカラ
処理部67’はソースプログラムの内容のうちスカラ処
理する部分をコンパイルしてアセンブラ表現に変換す
る。演算パターン認識部71はコンパイルされたアセン
ブラ表現の内容を分析し,演算パターンを認識する。命
令変更可否判定部72は,演算パターンのベクトル演算
命令に着目し,例えば,ベクトル演算命令がVAS命令
の場合には,そこで使用されている間接アドレスが他の
命令で使用されているかどうか等を分析し,他のスカラ
演算命令に置き換えることが可能かどうかを判定する。
スカラ演算命令作成部73はスカラ演算命令に置き換え
ることのできるベクトル演算命令に対して,置き換える
ためのスカラ演算命令を作成する。演算パターン変更部
は,スカラ演算命令に変更するベクトル演算命令を削除
し,置き換えるスカラ演算命令を挿入する。オブジェク
ト生成部69は演算パターン変更部74の作成した最終
的な中間言列(アセンブラ表現)を機械言のオブジェク
トプログラムに変換し出力する。
【0047】図5は,本発明の演算パターン処理部のフ
ローチャートの例である。 S1 演算パターン認識部71はベクトル化処理部67
とスカラ処理部67’のコンパイルにより生成された中
間言列(アセンブラ表現)からベクトルデータとスカラ
データの加算があるかを検索する。
【0048】S2 命令変更可否判定部72は,S1の
演算結果が,ベクトルロード命令(VIL)の間接アド
レス配列として使用されているかを検索する。 S3 命令変更可否判定部72により,ベクトルロード
命令(VIL)の間接アドレスとして使用されていると
認識された場合には,VIL命令の基本アドレス部分に
使用するスカラデータにS1のスカラデータを組み込む
ために,スカラ演算命令を作成し,命令列に挿入する。
【0049】S4 演算パターン変更部74は,S3の
演算結果をベクトルロード命令(VIL命令)の基本ア
ドレス部分に組み込む。 S5 演算パターン変更部74は,S1のベクトルデー
タとスカラデータの加算命令(VAS)を削除する。
【0050】
【発明の効果】本発明のコンパイラによれば,生成され
るオブジェクトプログラムのベクトル演算命令が少なく
なる。そのため,ベクトル演算が高速化され,最適化さ
れたコンパイルを行うことができる。
【図面の簡単な説明】
【図1】本発明の基本構成を示す図である。
【図2】本発明の実施例を示す図である。
【図3】本発明の実施例の動作説明図である。
【図4】本発明の実施例構成を示す図である。
【図5】本発明の演算パターン処理部のフローチャート
てある。
【図6】従来技術の説明図である。
【図7】従来技術の説明図である。
【符号の説明】
1 :ソースプログラム 2 :コンバイラ 3 :オブジェクトプログラム 10:演算パターン認識部 11:命令変更可否判定部 12:スカラ演算命令作成部 13:演算パターン作成部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 ソースプログラムに基づいてオブジェク
    トプログラムを生成するコンパイラにおいて,ソースプ
    ログラムをコンパイルした中間言列の演算パターンを認
    識する演算パターン認識部と,ベクトル演算命令をスカ
    ラ演算命令に変更することの可否を判定する命令変更可
    否判定部と,スカラ演算命令に変更可能なベクトル演算
    命令に対して変更するスカラ演算命令を作成するスカラ
    演算命令作成部と,該ベクトル演算命令を該スカラ演算
    命令に置き換える演算パターン変更部とを備えたことを
    特徴とするベクトル演算の最適化コンパイラ。
  2. 【請求項2】 請求項1において,該中間言列はアセン
    ブラ表現であり,スカラ演算命令に置き換える対象のベ
    クトル演算命令はVAS命令であって,VAS命令によ
    り生成される間接アドレスが他の命令で使用されていな
    い場合に,該VAS命令を他のスカラ演算命令に置き換
    えることを特徴とするベクトル演算の最適化コンパイ
    ラ。
JP31464894A 1994-12-19 1994-12-19 処理装置 Expired - Fee Related JP3730675B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31464894A JP3730675B2 (ja) 1994-12-19 1994-12-19 処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31464894A JP3730675B2 (ja) 1994-12-19 1994-12-19 処理装置

Publications (2)

Publication Number Publication Date
JPH08171554A true JPH08171554A (ja) 1996-07-02
JP3730675B2 JP3730675B2 (ja) 2006-01-05

Family

ID=18055864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31464894A Expired - Fee Related JP3730675B2 (ja) 1994-12-19 1994-12-19 処理装置

Country Status (1)

Country Link
JP (1) JP3730675B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998018084A1 (fr) * 1996-10-18 1998-04-30 Fujitsu Limited Dispositif et procede servant a accelerer la vitesse d'acces a une memoire

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102231118B (zh) * 2011-07-25 2013-12-18 中国科学技术大学 一种基于龙芯3a向量访存的编译优化方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998018084A1 (fr) * 1996-10-18 1998-04-30 Fujitsu Limited Dispositif et procede servant a accelerer la vitesse d'acces a une memoire
US6279152B1 (en) * 1996-10-18 2001-08-21 Fujitsu Limited Apparatus and method for high-speed memory access

Also Published As

Publication number Publication date
JP3730675B2 (ja) 2006-01-05

Similar Documents

Publication Publication Date Title
US6286135B1 (en) Cost-sensitive SSA-based strength reduction algorithm for a machine with predication support and segmented addresses
US4710872A (en) Method for vectorizing and executing on an SIMD machine outer loops in the presence of recurrent inner loops
Cronquist et al. Specifying and compiling applications for RaPiD
US8966459B2 (en) Processors and compiling methods for processors
JP4339907B2 (ja) マルチプロセッサ向け最適コード生成方法及びコンパイル装置
US4821181A (en) Method for converting a source program of high level language statement into an object program for a vector processor
US6877150B1 (en) Method of transforming software language constructs to functional hardware equivalents
JPH0475139A (ja) ループ並列化装置
JPH0814817B2 (ja) 自動ベクトル化方法
JPH06324881A (ja) メモリデータの重なり判定機能を備えたコンパイラ装置
US20010044930A1 (en) Loop optimization method and a compiler
JP3730675B2 (ja) 処理装置
JP3318051B2 (ja) 翻訳処理方法
JP3175768B2 (ja) 複合型命令スケジューリング処理装置
JPH04293150A (ja) コンパイル方法
JP3196625B2 (ja) 並列化コンパイル方式
JP7088276B1 (ja) コンパイル装置、コンパイル方法、及びコンパイルプログラム
JPH09325888A (ja) データ処理装置
JP2585793B2 (ja) コンパイラシステム
US6694512B1 (en) Data processing device, data processing method and supply medium thereof
Dechering et al. V-cal: a Calculus for the Compilation of Data Parallel Languages
JPH04252336A (ja) プログラム最適化処理装置
JP3367438B2 (ja) 条件実行処理装置
JP3542538B2 (ja) プログラム最適化処理装置及びプログラム最適化方法
JPH1196018A (ja) コンパイル装置及び方法並びにコンパイル実行プログラムを記録したコンピュータ読み取り可能な記録媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040727

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040927

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20040927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050614

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050801

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050801

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051007

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20091014

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091014

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101014

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101014

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111014

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111014

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121014

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121014

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20131014

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees