JP3442225B2 - 演算処理装置 - Google Patents

演算処理装置

Info

Publication number
JP3442225B2
JP3442225B2 JP18214196A JP18214196A JP3442225B2 JP 3442225 B2 JP3442225 B2 JP 3442225B2 JP 18214196 A JP18214196 A JP 18214196A JP 18214196 A JP18214196 A JP 18214196A JP 3442225 B2 JP3442225 B2 JP 3442225B2
Authority
JP
Japan
Prior art keywords
arithmetic
instruction
value
register
field
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
JP18214196A
Other languages
English (en)
Other versions
JPH1027102A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP18214196A priority Critical patent/JP3442225B2/ja
Priority to US08/884,667 priority patent/US6041399A/en
Priority to TW086109502A priority patent/TW390991B/zh
Priority to KR1019970031776A priority patent/KR100279784B1/ko
Publication of JPH1027102A publication Critical patent/JPH1027102A/ja
Application granted granted Critical
Publication of JP3442225B2 publication Critical patent/JP3442225B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は1命令語レジスタ中
に複数の演算命令フィールドを持ち、これらの演算命令
を並列に実行する演算処理装置に関する。
【0002】
【従来の技術】伝統的な演算処理装置は、1命令語で1
つの演算処理を行うように構成され、命令語の列は直列
的に逐一演算されるのが一般的であった。
【0003】これに対し近年になって、実行速度の向上
のために1つの命令語で複数の演算命令を処理するよう
にした命令体系を持ち、これら複数の演算命令を並列に
実行する演算処理装置が開発されてきた。これらの演算
処理装置は総称して、VLIW(Very Long
Instruction Word)型演算処理装置と
呼ばれている。
【0004】この型の演算処理装置は、並列に複数の演
算命令を実行するために、複数の演算器を持つ。また、
複数の演算器に対応した複数のレジスタファイルを持
ち、それぞれの演算器が独立して演算処理を実行できる
ように構成することが多い。このような複数の演算器を
用いて特定の演算処理を行う場合、一般に、演算器相互
間のデータ通信が不可欠である。この目的のため、この
型の演算処理装置は、例えば、複数の演算器間でのレジ
スタ値転送手段、もしくは、複数の演算器からアクセス
可能な共用レジスタのような手段を持つ。このような演
算処理装置としては、例えば、特開平5−233281
号公報に開示されているような技術がある。
【0005】また、以上述べたような高速化手段とは別
に、演算処理自体を時系列に複数のステージに分割し、
複数の独立したステージがそれぞれ直列的に演算処理を
実行する演算処理装置がある。これらの演算処理装置
は、パイプライン型演算処理装置と呼ばれている。
【0006】この型の演算処理装置は、命令語が直列的
に並んでいる場合に、最大の性能を発揮できることが知
られている。これに対して命令語が直列的に並ばずに、
例えば、条件分岐命令が含まれる演算処理の場合は、パ
イプラインの制御が乱れ、一時的な性能の低下が発生す
る。
【0007】このような問題を克服するために、この型
の演算処理装置は、条件分岐処理を減らすための改良が
行われている。その方法の1つは、プレディケイトレジ
スタ(Predicate Register)を用い
る方法である。
【0008】プレディケイトレジスタは、命令語を修飾
し、当該命令語を実行処理するかどうかを決定するため
のレジスタである。プレディケイトレジスタを用いるこ
とで、条件分岐命令の使用頻度を大幅に減らすことが可
能になる。後述する発明の理解のため、この点について
の簡単な説明を図面を用いて行う。
【0009】図2はC言語によるプログラム例を、図3
は図2のプログラムを従来型の演算処理装置に与える形
式にコンパイルした例を、図4は図2のプログラムをプ
レディケイトレジスタ型の演算処理装置に与える形式に
コンパイルした例をそれぞれ示している。図に示すよう
に、図3では条件分岐によって実現される演算処理が、
図4では条件分岐を必要とせずに実現できる。図4の2
行目が、プレディケイトレジスタを用いた命令語の記述
を表している。1行目の比較命令によって、1番目のプ
レディケイトレジスタ(p0)に比較結果の値を書き込
む。2行目の減算命令は、命令語に前置されている記述
「(p0)」によって、p0に格納されている値が
「真」である場合にだけ減算処理が実行される。p0に
格納されている値が「偽」である場合は、2行目の減算
命令は空読みされて実行処理は行われない。このような
実行方法により、条件分岐を減らすことができる。
【0010】
【発明が解決しようとする課題】しかし、上記のような
演算処理の高速化手段を併用して用いる場合、即ち、V
LIW型の演算処理装置の特徴と、パイプライン型の演
算処理装置の特徴とを兼ね備えた演算処理装置を構成す
る場合、次のような課題がある。
【0011】並列に演算処理を実行している複数の演算
器の相互間で、演算結果の参照を行うために、演算器相
互間でのレジスタファイルの転送処理が頻繁に発生し、
結果的に並列処理による高速化やパイプライン処理によ
る高速化の効果を十分に得られないことがあった。
【0012】本発明の目的は、1命令語中に複数の演算
命令フィールドを持ち、複数の演算の処理を並列に実行
する演算処理装置において、複数の演算を実行するため
の複数の演算器の相互間での、演算結果の転送処理の回
数を削減することで、処理プログラムのステップ数を小
さくすることができる演算処理装置を提供することにあ
る。
【0013】
【課題を解決するための手段】本発明による演算処理装
置は、1命令語中に複数の演算命令フィールドを持ち、
複数の演算の処理を並列に実行する演算処理装置におい
て、前記複数の演算命令フィールドを、それぞれが少な
くとも1つの演算命令フィールドを含む複数の演算命令
フィールドグループに分け、これら複数の演算命令フィ
ールドグループにそれぞれ対応して設けられ、それぞれ
が対応する演算命令フィールドグループでのみ評価され
る複数のレジスタと、前記複数のレジスタに格納されて
いる値の評価に基づいて演算を実行するかどうかを選択
する演算回路と、前記複数のレジスタに演算結果に基づ
いて値を格納する手段とを具備し、前記複数のレジスタ
に値を格納する手段は、それぞれが対応する演算命令フ
ィールドグループでの演算結果を評価した値と、それぞ
れが対応する演算命令フィールドグループ以外での演算
結果を評価した値とを、選択的に格納する手段であるこ
とを特徴とする。
【0014】また、本発明による他の演算処理装置は、
1命令語レジスタ中に複数の演算命令フィールドを持
ち、前記複数の演算の処理を並列に実行する演算処理装
置において、前記複数の演算命令フィールドを、それぞ
れが少なくとも1つの演算命令フィールドを含む複数の
演算命令フィールドグループに分け、これら複数の演算
命令フィールドグループにそれぞれ対応して設けられ、
いずれかの演算命令フィールドグループで評価される複
数のレジスタと、前記複数のレジスタに演算結果に基づ
いて値を格納する手段と、前記複数のレジスタに格納さ
れている値を評価する手段と、前記複数のレジスタに格
納されている値の評価に基づいて演算を実行するかどう
かを選択する演算回路とを具備し、前記複数のレジスタ
に格納されている値を評価する手段は、それぞれが対応
する演算命令フィールドグループの前記レジスタに格納
されている値と、それぞれが対応する演算命令フィール
ドグループ以外の前記レジスタに格納されている値と
を、選択的に評価する手段であることを特徴とする。
【0015】他の観点によれば、本発明による演算処理
装置は、1命令語中に複数の演算命令フィールドを持
ち、複数の演算の処理を並列に実行する演算処理装置に
おいて、それぞれ、前記複数の演算命令フィールドの少
なくとも1つの演算命令フィールドに対応して設けられ
た複数の演算器を備え、各演算器は、前記少なくとも1
つの演算命令フィールドを保持する命令レジスタと、前
記少なくとも1つの演算命令フィールドに対応して演算
を行う演算回路と、該演算回路の演算を実行するか否か
を決定する値を格納するレジスタとを有し、予め定めら
れた命令について、その命令の演算結果を評価した値を
すべての前記演算器内のレジスタに書き込む手段をさら
に備え、前記各演算器内の演算回路は、前記レジスタを
指定された演算命令について、当該レジスタに書き込ま
れた値に応じて当該演算命令を実行するか否かを決定す
ることを特徴とする。
【0016】さらに他の観点によれば、本発明による演
算処理装置は、1命令語中に複数の演算命令フィールド
を持ち、複数の演算の処理を並列に実行する演算処理装
置において、それぞれ、前記複数の演算命令フィールド
の少なくとも1つの演算命令フィールドに対応して設け
られた複数の演算器を備え、各演算器は、前記少なくと
も1つの演算命令フィールドを保持する命令レジスタ
と、前記少なくとも1つの演算命令フィールドに対応し
て演算を行う演算回路と、該演算回路の演算を実行する
か否かを決定する値を格納するレジスタと、予め定めら
れた命令について、その命令の演算結果を評価した値を
自己の演算器内のレジスタに書き込む手段とを有し、前
記各演算器内の演算回路は、いずれかの演算器内の前記
レジスタを指定された演算命令について、当該レジスタ
に書き込まれた値に応じて当該演算命令を実行するか否
かを決定することを特徴とする。
【0017】上記の各構成によれば、複数の演算を実行
するための複数の演算器の相互間での、演算結果の転送
処理の回数を削減することができる。その結果、処理プ
ログラムのステップ数を小さくすることが可能になる。
【0018】
【発明の実施の形態】以下、図面を参照して、本発明の
実施の形態について説明する。
【0019】図5は、本発明の一実施の形態の演算処理
装置の概略構成を示している。図5において、1及び2
は演算器、3は命令キャッシュ、4はデータキャッシュ
である。図に示す他に、主記憶部、入出力部などの構成
要素を持つが、これらは本発明に関係なく、また周知の
技術で構成可能であるため、省略している。
【0020】本実施の形態での命令語は、図6に示すよ
うに、演算命令1フィールドと、演算命令2フィールド
とから構成される。演算命令1フィールドと演算命令2
フィールドはそれぞれ、プレディケイトレジスタ選択フ
ィールド(Pフィールド)と、プレディケイトレジスタ
報知フィールド(Bフィールド)と、命令フィールド
(Iフィールド)とから構成される。図6において、6
01は命令語、611は演算命令1フィールド、612
は演算命令2フィールド、621及び631はPフィー
ルド、622及び632はBフィールド、623及び6
33はIフィールド、をそれぞれ示す。これらのフィー
ルドのうち、演算命令1フィールドは演算器1に供給さ
れ、演算命令2フィールドは演算器2に供給される。
【0021】また、ここで示した命令語の構成は、あく
までも例であり、同じ要旨であれば構成を変えて実施し
ても構わない。例えば、演算命令フィールドは2つであ
る必要はなく、より多く、例えば4つであっても良い。
【0022】図5に戻り、演算器1は次の構成要素から
なる。101は命令レジスタであり、命令キャッシュ3
から読み出された命令のうち演算器1に関する演算命令
1フィールドを保持する。102はデータレジスタであ
り、演算器1において演算処理を行うためのオペランド
データを保持する。103は、演算命令1フィールドに
よって指定された命令を実行するためのALUである。
105は、ALU103が命令を実行するかどうかの情
報を保持するプレディケイトレジスタである。106
は、プレディケイトレジスタ105の値を更新する際に
入力データを選択するためのセレクタである。
【0023】演算器2は、演算器1と同じ構成要素から
なる。即ち演算器2は、命令レジスタ201、データレ
ジスタ202、ALU203、プレディケイトレジスタ
205、セレクタ206とから構成される。
【0024】ここで、データレジスタ102及び20
2、プレディケイトレジスタ105及び205は、それ
ぞれが複数のレジスタ領域を持ち、それらを選択して利
用できる。例えば、32個のデータレジスタ領域を持つ
場合、その中から一つのデータレジスタ領域を選択する
ために、5本のデータレジスタ領域選択信号を、データ
レジスタ102及び202にそれぞれ入力することにな
る。この場合、各データレジスタ領域を識別するため
に、例えば、r0、r1、r2のように、データレジス
タ領域に番号を割り振ることが一般に行われている。な
お以上説明した内容は、データレジスタだけでなく、プ
レディケイトレジスタに対しても全く同じように適用さ
れる。
【0025】次に本実施の形態の動作について説明す
る。なお、ここで述べる以外の通常のALUを用いた演
算については、従来より周知の技術で実現できるため、
ここでは説明を省略する。
【0026】初めに、図4に示す命令列を実行する際の
動作について説明する。図4は3語からなる命令列の例
であり、演算器を一つだけ用いる場合の例である。
【0027】第一の命令語は比較命令(cmp.gt)であっ
て、データレジスタ領域1(r1)と即値”2”とを比
較し、データレジスタ領域1の方が大きい場合にプレデ
ィケイトレジスタ領域0(p0)に「真」を、そうでな
い場合には「偽」を書き込む。ここで、プレディケイト
レジスタ105に含まれる複数のプレディケイトレジス
タ領域のうち、どのプレディケイトレジスタ領域に値を
書き込むかは、演算命令1フィールドのプレディケイト
レジスタ選択フィールド(Pフィールド)の一部を用い
て指定されている。また、どのプレディケイトレジスタ
領域に値を書き込むかの指定方法は、プレディケイトレ
ジスタ選択フィールド(Pフィールド)の一部を用いる
以外にも、例えば、命令フィールド(Iフィールド)の
一部を用いて指定しても良い。
【0028】第二の命令語は減算命令(sub)である。
この命令では、r1から即値”1”を減じ、その結果を
r1に書き戻す処理を行う。但し、この命令語には
「(p0)」という修飾語が前置されているので、もし
p0が「真」であればこの減算命令は実行されるが、も
しp0が「偽」であればこの減算命令は実行されない。
【0029】第三の命令語は加算命令(add)である。
この命令では、データレジスタ領域2(r2)とr1と
を加算し、r2に書き戻す処理を行う。
【0030】続いて、本実施の形態の別の動作の例につ
いて、図7、図8及び図9を用いて説明する。図7はC
言語による別のプログラム例を、図8は図7のプログラ
ムをプレディケイトレジスタ型の演算処理装置に与える
形式にコンパイルした命令語列の例を示す。図8におい
て、501は演算器1に与える命令語列、502は演算
器2に与える命令語列である。ここでは簡単のため、演
算器1と演算器2とが同じ速度で各命令語を処理するも
のとして説明する。
【0031】まず、演算器2は第一の命令語(add)に
より、r3とr4の加算を行い、結果をr5に格納す
る。この処理と同時に演算器1は第一の命令語(add)
により、r1とr2の加算を行い、結果をr7に格納す
る。
【0032】続くステップで、演算器1は第二の命令語
(mul)により、r7とr6の乗算を行い、結果をr7
に格納する。同時に、演算器2は第二の命令語(xfer)
により、データレジスタの値の転送を行う。この例で
は、データレジスタ202に含まれるデータレジスタ領
域5(r5)が保持している値を、データレジスタ10
2に含まれるデータレジスタ領域5(r5)に書き込
む。
【0033】次のステップで、演算器1と演算器2はと
もに第三の命令語(cmp.gt)により、比較命令を実行
し、比較の結果をプレディケイトレジスタ領域0(p
0)にそれぞれ格納する。
【0034】さらに次のステップでは、演算器1は、p
0の値が「真」である場合、第四の命令語(add)によ
りr7と即値1との加算を行い、結果をr7に格納す
る。また同時に、演算器2は、p0の値が「真」である
場合、第四の命令語(add)によりr5と即値2との加
算を行い、結果をr5に格納する。
【0035】次に、図9は、図7のプログラムを、本実
施の形態のプレディケイトレジスタ型の演算処理装置に
与える形式にコンパイルした命令語列の例を示す。図9
において、511は演算器1に与える命令語列、512
は演算器2に与える命令語列である。
【0036】この例の特徴は、命令語列512の第二命
令語(cmp.gt)に付加されているBパラメータである。
このパラメータは、命令フィールドの中のプレディケイ
トレジスタ報知フィールド(Bフィールド)に対応して
おり、他の演算器に対してプレディケイトレジスタの更
新を報知(Broadcast)するかどうかを決定す
る。この第二命令語を実行すると、演算器2のプレディ
ケイトレジスタ領域0(p0)が保持している値が更新
されるだけでなく、他の演算器、この例では演算器1、
のプレディケイトレジスタ領域0(p0)の保持する値
も更新される。この動作は、演算器1及び演算器2が持
つセレクタ106及び206(図5)によって実現され
る。
【0037】通常動作の場合、プレディケイトレジスタ
報知フィールド(Bフィールド)の値は「偽」であり、
この場合、セレクタは、同じ演算器内のALUが生成し
たプレディケイトレジスタへの書き込みデータを選択
し、プレディケイトレジスタへ格納する。しかし、命令
語にBパラメータが指定された事によってプレディケイ
トレジスタ報知フィールド(Bフィールド)の値が
「真」であった場合、セレクタはBフィールドが「真」
である演算器から出力される書き込みデータを選択し、
プレディケイトレジスタに格納する。
【0038】このような他の演算器に対して報知する事
が可能な特徴を持つプレディケイトレジスタ更新手段を
持つことによって、データレジスタの不要な転送処理を
削減することが可能になる。
【0039】続いて、本実施の形態の別の動作の例につ
いて、図10、図11及び図12に示す。図10はC言
語によるプログラム例を、図11は図10のプログラム
をプレディケイトレジスタ型の演算処理装置に与える形
式にコンパイルした命令語列の例を、図12は図10の
プログラムを報知可能なプレディケイトレジスタ型の演
算処理装置に与える形式にコンパイルした命令語列の例
を、それぞれ示す。
【0040】この例では、演算処理装置は3つ以上の演
算器を持つことを前提としている。図から判るように、
上で述べた例と同様、報知機能を有効に利用する命令語
列を生成することで、より簡単な命令語列とすることが
可能である。
【0041】次に、図1は、本発明の別の一実施の形態
の演算処理装置の概略構成を示している。図1の実施の
形態は、図5の実施の形態に対して、一つの演算器が内
蔵しているALUの個数が異なる点(図5では1個、図
1では2個)と、プレディケイトレジスタへの書き込み
データを報知する際にセレクタではなくバス100を介
する点が、構成上の主な相違点である。以下の説明で
は、第一の実施の形態に対して構成または動作が異なる
点について説明する。
【0042】本実施の形態では、命令語は演算命令1フ
ィールド、演算命令2フィールド、演算命令3フィール
ド、演算命令4フィールド、の4つから構成される。各
演算命令フィールドの構成要素は、第一の実施の形態と
同じである。これらの演算命令フィールドのうち、演算
命令1フィールドと演算命令2フィールドとは、第1の
演算命令フィールドグループとして演算器1へ、演算命
令3フィールドと演算命令4フィールドは、第2の演算
命令フィールドグループとして演算器2へ、それぞれ供
給される。各演算器はALUをそれぞれ2つ内蔵してい
るため、命令レジスタ101及び201は、各々、同時
にそれぞれ2つの命令フィールドを格納するように構成
されている。
【0043】ALUからそれぞれ出力される、プレディ
ケイトレジスタへ書き込む値は、それぞれの演算器内部
のプレディケイトレジスタへ書き込まれる他に、プレデ
ィケイトレジスタ報知用のバスに出力することができる
構成になっている。このバスを経由して、各ALUによ
って出力されるプレディケイトレジスタへ書き込む値
を、全演算器の指定されたプレディケイトレジスタ領域
に同時に報知し、格納することができる。
【0044】このような構成を採ることによって、演算
器の個数や、ALUの個数を増やした場合にも、多入力
セレクタによる信号遅延や、多くの信号線を独立に接続
する為の実装面積の増大を、最小限に抑えたうえで実現
することができる。
【0045】次に図13は、図1で示したプレディケイ
トレジスタ更新の手段について、詳しく示したものであ
る。図13において、11はどのALUからの結果出力
を報知するかを決定するプレディケイトレジスタ報知調
停回路、12は11で決定した結果出力を選択するプレ
ディケイトレジスタ報知セレクタ、13は報知にかかわ
る例外発生回路、14は例外発生回路から発生される例
外信号、15は例外信号14を受ける例外処理回路、1
6は例外処理回路15から出力される演算停止信号、1
07及び207はプレディケイトレジスタ105及び2
05に格納されている値を元にしてALU103及び2
03を動作させるかどうかを決める命令マスク手段(論
理積回路)、108及び208はプレディケイトレジス
タ書き込み値が報知されている時にそれをプレディケイ
トレジスタに供給するプレディケイトレジスタ報知デー
タ供給手段(論理和回路)、である。なお、図中の点線
は、この説明には関係がないが、ALUとデータレジス
タとを接続する回路を示している。
【0046】プレディケイトレジスタ報知調停回路11
は、命令レジスタ101及び201に含まれるBフィー
ルドの値を元に、どのALUの演算結果を報知するかを
決定し、プレディケイトレジスタ報知セレクタ12に伝
える。決定のための方法は任意の方法で構わないが、例
えば、演算器に予め設定した固定の優先順位によって決
定する方法や、複数の演算器からの同時報知は資源衝突
のエラーとして例外を発生する方法などが考えられる。
例外発生位回路13は、そのような例外信号14を発生
するための回路であり、この例外信号14に応じて例外
処理回路14は演算停止信号16を各演算器に供給す
る。これにより、各演算器の演算が停止され、リセット
待ち状態となる。
【0047】プレディケイトレジスタ報知セレクタ12
は、調停回路11の決定に基づき、必要なら各演算器か
らの演算結果を報知する。
【0048】報知されたデータは、プレディケイトレジ
スタ報知データ供給手段108及び208によって、プ
レディケイトレジスタ105及び205に供給される。
プレディケイトレジスタ報知データ供給手段108及び
208は、単純な論理和を求める回路によって構成され
る。この回路は、必ずしも論理和を求める手段である必
要はなく、例えば、報知データが供給されているときに
は報知データを、供給されていないときには演算器内部
のALUからのデータを、選択的に供給する選択回路で
も良い。
【0049】プレディケイトレジスタ105及び205
は、複数の記憶領域を持つことを想定している。プレデ
ィケイトレジスタへの値の格納の際に、どのプレディケ
イトレジスタ領域に対して値を格納するかは、命令レジ
スタ101及び201に格納されているオペランドの値
によって、決定される。また、プレディケイトレジスタ
からの値の読み出しの際に、どのプレディケイトレジス
タ領域から値を読み出すかも、命令レジスタ101及び
201に格納されているオペランドの値によって、決定
される。これら、プレディケイトレジスタ領域の選択に
関わる情報は、命令レジスタのPフィールド、もしくは
Iフィールドに格納される。
【0050】以上の実施の形態では、演算器相互間での
プレディケイトレジスタの値の選択は、プレディケイト
レジスタへの書き込みデータを選択する方法によって実
現していた。すなわち、どのALUの出力をプレディケ
イトレジスタに書き込むかを切り換えることにより、プ
レディケイトレジスタの値の選択を行っていた。しか
し、プレディケイトレジスタの値の選択は、プレディケ
イトレジスタからの読み出しデータを選択する方法を用
いて行うこともできる。
【0051】この場合の動作の例について、図15に示
す。図15は、図10のプログラムを、読み出し値を報
知可能なプレディケイトレジスタ型の演算処理装置に与
える形式にコンパイルした命令語列の例を示す。ここで
は、参照すべきプレディケイトレジスタを示すために、
プレディケイトレジスタを示す命令語に、演算器の番号
を指定する構成としている。すなわち、例えば、演算器
2の第三の命令語の先頭部の「(p0:1)」は、演算
器1のプレイディケイトレジスタ領域1(p1)を参照
すべきことを規定している。
【0052】図14は、このような機能を実現する本発
明のさらに別の実施の形態の演算処理装置の概略構成を
示している。すなわち、この実施の形態は、図1の実施
の形態に対して、プレディケイトレジスタの書込値を報
知するのではなく、プレディケイトレジスタからの読み
出し値を報知する点が、構成上の主な相違点である。以
下の説明では、主として、前出の実施例に対して構成ま
たは動作が異なる点について説明する。
【0053】各ALUから出力される、プレディケイト
レジスタへ書き込む値は、それぞれの演算器内部のプレ
ディケイトレジスタへ書き込まれる。各プレディケイト
レジスタから読み出される値は、プレディケイト報知用
のバス140に出力される。このバスを経由して、各A
LUはどの演算器が格納しているプレディケイトレジス
タの値も参照することができる。どのプレディケイトレ
ジスタの値を参照するかは、図15で前述したように、
プレディケイトレジスタを参照する命令語の中に指定さ
れた演算器の番号により決定される。
【0054】このような構成を取ることによって、演算
器の個数や、ALUの個数を増やした場合にも、多入力
セレクタによる信号遅延や、多くの信号線を独立に接続
するための実装面積の増大を、最小限に抑えた上で実現
することができる。
【0055】プレディケイトレジスタの報知の方法を、
図1のような構成とするか、図14のような構成とする
かは、ソフトウエアの構造に影響を与える点以外、任意
である。
【0056】また、本発明は上述した実施の形態のみに
限定されるものではなく、要旨を逸脱しない範囲で適宜
内容を変更して実施することができる。
【0057】例えば、実施の形態中では、演算器は最大
2個、1演算器当たりのALUは最大2個、として記述
しているが、この値はなんら制約となるものではなく、
必要に応じて演算器やALUの数を増減することが可能
である。
【0058】また実施の形態中では、命令語の構成や命
令フィールドの構成について示しているが、この構成自
体もここに示した例に限らず、自由な構成で実施可能で
ある。
【0059】また実施の形態中では、プレディケイトレ
ジスタは、特定のパスでのみ読み書きが行われるように
記述しているが、これは説明の簡単のためであり、例え
ば、任意のデータレジスタと任意のプレディケイトレジ
スタとの間で値を転送するといった構成となっても差し
支えない。
【0060】
【発明の効果】以上述べたように本発明によれば、1命
令語中に複数の演算命令フィールドを持ち、複数の演算
の処理を並列に実行する演算処理装置において、複数の
演算を実行するための複数の演算器の相互間での、演算
結果の転送処理の回数を削減することで、処理プログラ
ムのステップ数を小さくすることが可能になる。
【0061】また、演算器相互間で演算結果データを転
送するのに必要な信号線数は、データレジスタのビット
幅に対してプレディケイトレジスタのビット幅が小さい
ために、より狭い面積での回路実装が可能であり、演算
器相互間の転送をより高速に行うことが可能である。
【0062】以上の利点により、演算処理装置全体の実
性能を向上させることができるという効果がある。
【図面の簡単な説明】
【図1】 本発明の他の一実施の形態の演算処理装置の
概略構成を示すブロック図である。
【図2】 C言語によるプログラム例を示す説明図であ
る。
【図3】 従来型の演算処理装置に与える形式にコンパ
イルした例を示す説明図である。
【図4】 プレディケイトレジスタ型の演算処理装置に
与える形式にコンパイルした例を示す説明図である。
【図5】 本発明の一実施の形態の演算処理装置の概略
構成を示すブロック図である。
【図6】 本発明の一実施の形態での命令語を示す説明
図である。
【図7】 C言語によるプログラム例を示す説明図であ
る。
【図8】 プレディケイトレジスタ型の演算処理装置に
与える形式にコンパイルした命令語列の例を示す説明図
である。
【図9】 実施の形態のプレディケイトレジスタ型の演
算処理装置に与える形式にコンパイルした命令語列の例
を示す説明図である。
【図10】 C言語によるプログラム例を示す説明図で
ある。
【図11】 プレディケイトレジスタ型の演算処理装置
に与える形式にコンパイルした命令語列の例を示す説明
図である。
【図12】 報知可能なプレディケイトレジスタ型の演
算処理装置に与える形式にコンパイルした命令語列の例
を示す説明図である。
【図13】 プレディケイトレジスタ更新手段の概略構
成を示すブロック図である。
【図14】 本発明のさらに他の実施の形態の演算処理
装置の概略構成を示すブロック図である。
【図15】 読み込み値を報知可能なプレディケイトレ
ジスタ型の演算処理装置に与える形式にコンパイルした
命令語列の例を示す説明図である。
【符号の説明】
1…演算器1、2…演算器2、3…命令キャッシュ、4
…データキャッシュ、11…プレディケイトレジスタ報
知調停回路、12…プレディケイトレジスタ報知セレク
タ、13…例外発生回路、14…例外信号、15…例外
処理回路、16…演算停止信号、100…バス、101
…命令レジスタ、102…データレジスタ、103…A
LU、104…ALU、105…プレディケイトレジス
タ、106…セレクタ、107…命令マスク手段、10
8…プレディケイトレジスタ報知データ供給手段、14
0…バス、201…命令レジスタ、202…データレジ
スタ、203…ALU、204…ALU、205…プレ
ディケイトレジスタ、206…セレクタ、207…命令
マスク手段、208…プレディケイトレジスタ報知デー
タ供給手段、501…演算器1向け命令列、502…演
算器2向け命令列、511…演算器1向け命令列、51
2…演算器2向け命令列、601…命令語、611…演
算命令1フィールド、612…演算命令2フィールド、
621…プレディケイトレジスタ選択フィールド(Pフ
ィールド)、622…プレディケイトレジスタ報知フィ
ールド(Bフィールド)、623…命令フィールド(I
フィールド)、631…プレディケイトレジスタ選択フ
ィールド(Pフィールド)、632…プレディケイトレ
ジスタ報知フィールド(Bフィールド)、633…命令
フィールド(Iフィールド)。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI G06F 9/34 330 G06F 9/34 330 (72)発明者 藤川 義文 神奈川県川崎市麻生区王禅寺1099番地 株式会社日立製作所 システム開発研究 所内 (72)発明者 野尻 徹 神奈川県川崎市麻生区王禅寺1099番地 株式会社日立製作所 システム開発研究 所内 (72)発明者 西岡 清和 神奈川県川崎市麻生区王禅寺1099番地 株式会社日立製作所 システム開発研究 所内 (56)参考文献 特開 平5−233281(JP,A) 特開 平7−253882(JP,A) 特開 平4−230527(JP,A) 特開 平5−274143(JP,A) 特開 平8−328855(JP,A) 特開 平6−161749(JP,A) 国際公開96/29646(WO,A1) (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/42

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】1命令語中に複数の演算命令フィールドを
    持ち、複数の演算の処理を並列に実行する演算処理装置
    において、 前記複数の演算命令フィールドを、それぞれが少なくと
    も1つの演算命令フィールドを含む複数の演算命令フィ
    ールドグループに分け、 これら複数の演算命令フィールドグループにそれぞれ対
    応して設けられ、それぞれが対応する演算命令フィール
    ドグループでのみ評価される複数のレジスタと、 前記複数のレジスタに格納されている値の評価に基づい
    て演算を実行するかどうかを選択する演算回路と、 前記複数のレジスタに演算結果に基づいて値を格納する
    手段とを具備し、 前記複数のレジスタに値を格納する手段は、 それぞれが対応する演算命令フィールドグループでの演
    算結果を評価した値と、それぞれが対応する演算命令フ
    ィールドグループ以外での演算結果を評価した値とを、
    選択的に格納する手段であることを特徴とする演算処理
    装置。
  2. 【請求項2】1命令語中に複数の演算命令フィールドを
    持ち、前記複数の演算の処理を並列に実行する演算処理
    装置において、 前記複数の演算命令フィールドを、それぞれが少なくと
    も1つの演算命令フィールドを含む複数の演算命令フィ
    ールドグループに分け、 これら複数の演算命令フィールドグループにそれぞれ対
    応して設けられ、いずれかの演算命令フィールドグルー
    プで評価される複数のレジスタと、 記複数のレジスタに格納されている値に基づいて演算
    を実行するかどうかを決定する演算回路とを具備し、前記演算回路は、 演算命令で特定された前記複数のレジスタのうちのいず
    れかのレジスタを選択し、 前記選択したレジスタに格納されている真偽を示す値に
    基づいて、前記演算を 実行するか否かを決定することを
    特徴とする演算処理装置
  3. 【請求項3】請求項1に記載の演算処理装置であって、 前記複数のレジスタに値を格納する手段は、 前記複数の演算命令フィールドグループの全てに向けて
    演算結果を評価した値が報知されている場合には、該報
    知されている値を選択して格納し、 そうでない場合には、それぞれが対応する演算命令フィ
    ールドグループでの演算結果を評価した値を選択して格
    納する手段であることを特徴とする演算処理装置。
  4. 【請求項4】1命令語中に複数の演算命令フィールドを
    持ち、複数の演算の処理を並列に実行する演算処理装置
    において、 それぞれ、前記複数の演算命令フィールドの少なくとも
    1つの演算命令フィールドに対応して設けられた複数の
    演算器を備え、 各演算器は、 前記少なくとも1つの演算命令フィールドを保持する命
    令レジスタと、 前記少なくとも1つの演算命令フィールドに対応して演
    算を行う演算回路と、 該演算回路の演算を実行するか否かを決定する値を格納
    するレジスタとを有し、 予め定められた命令について、その命令の演算結果を評
    価した値を、すべての前記演算器内の、前記レジスタに
    書き込む手段をさらに備え、 前記各演算器内の演算回路は、前記レジスタを指定され
    た演算命令について、当該レジスタに書き込まれた値に
    応じて当該演算命令を実行するか否かを決定することを
    特徴とする演算処理装置。
JP18214196A 1996-07-11 1996-07-11 演算処理装置 Expired - Fee Related JP3442225B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP18214196A JP3442225B2 (ja) 1996-07-11 1996-07-11 演算処理装置
US08/884,667 US6041399A (en) 1996-07-11 1997-06-27 VLIW system with predicated instruction execution for individual instruction fields
TW086109502A TW390991B (en) 1996-07-11 1997-07-05 Arithmetic processing unit
KR1019970031776A KR100279784B1 (ko) 1996-07-11 1997-07-09 연산처리장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18214196A JP3442225B2 (ja) 1996-07-11 1996-07-11 演算処理装置

Publications (2)

Publication Number Publication Date
JPH1027102A JPH1027102A (ja) 1998-01-27
JP3442225B2 true JP3442225B2 (ja) 2003-09-02

Family

ID=16113074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18214196A Expired - Fee Related JP3442225B2 (ja) 1996-07-11 1996-07-11 演算処理装置

Country Status (4)

Country Link
US (1) US6041399A (ja)
JP (1) JP3442225B2 (ja)
KR (1) KR100279784B1 (ja)
TW (1) TW390991B (ja)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3790607B2 (ja) * 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
US6366999B1 (en) * 1998-01-28 2002-04-02 Bops, Inc. Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution
JP2000222218A (ja) * 1999-02-01 2000-08-11 Fujitsu Ltd コンパイル装置および記録媒体
US6405300B1 (en) * 1999-03-22 2002-06-11 Sun Microsystems, Inc. Combining results of selectively executed remaining sub-instructions with that of emulated sub-instruction causing exception in VLIW processor
US20040158695A1 (en) * 1999-05-03 2004-08-12 Laurent Ugen Method and apparatus for handling transfer of guarded instructions in a computer system
GB2352308B (en) * 1999-07-21 2004-06-30 Element 14 Ltd Accessing a test condition
GB2352536A (en) * 1999-07-21 2001-01-31 Element 14 Ltd Conditional instruction execution
US6728865B1 (en) 1999-10-20 2004-04-27 Transmeta Corporation Pipeline replay support for unaligned memory operations
US6604188B1 (en) 1999-10-20 2003-08-05 Transmeta Corporation Pipeline replay support for multi-cycle operations wherein all VLIW instructions are flushed upon detection of a multi-cycle atom operation in a VLIW instruction
US6738892B1 (en) * 1999-10-20 2004-05-18 Transmeta Corporation Use of enable bits to control execution of selected instructions
US7210025B1 (en) * 2000-04-19 2007-04-24 Uht Augustus K Automatic and transparent hardware conversion of traditional control flow to predicates
US6886094B1 (en) * 2000-09-28 2005-04-26 International Business Machines Corporation Apparatus and method for detecting and handling exceptions
US6912647B1 (en) 2000-09-28 2005-06-28 International Business Machines Corportion Apparatus and method for creating instruction bundles in an explicitly parallel architecture
US6799262B1 (en) 2000-09-28 2004-09-28 International Business Machines Corporation Apparatus and method for creating instruction groups for explicity parallel architectures
US6883165B1 (en) 2000-09-28 2005-04-19 International Business Machines Corporation Apparatus and method for avoiding deadlocks in a multithreaded environment
US6823448B2 (en) * 2000-12-15 2004-11-23 Intel Corporation Exception handling using an exception pipeline in a pipelined processor
US7861071B2 (en) * 2001-06-11 2010-12-28 Broadcom Corporation Conditional branch instruction capable of testing a plurality of indicators in a predicate register
JP3564445B2 (ja) 2001-09-20 2004-09-08 松下電器産業株式会社 プロセッサ、コンパイル装置及びコンパイル方法
JP3851228B2 (ja) * 2002-06-14 2006-11-29 松下電器産業株式会社 プロセッサ、プログラム変換装置及びプログラム変換方法、並びにコンピュータプログラム
EP1387254B1 (en) * 2002-07-31 2012-12-12 Texas Instruments Incorporated Skip instruction carrying out a test with immediate value
JP4828409B2 (ja) * 2003-04-16 2011-11-30 シリコン ハイブ ビー・ヴィー タイムステーショナリプロセッサにおける条件動作のためのサポート
CN1826583A (zh) * 2003-04-29 2006-08-30 皇家飞利浦电子股份有限公司 时间-固定处理器中零开销的分支和循环
GB2402510A (en) 2003-06-05 2004-12-08 Advanced Risc Mach Ltd Predication instruction within a data processing system
US7698539B1 (en) * 2003-07-16 2010-04-13 Banning John P System and method of instruction modification
US7606997B1 (en) 2003-07-18 2009-10-20 Guillermo Rozas Method and system for using one or more address bits and an instruction to increase an instruction set
CN101124539A (zh) * 2004-05-13 2008-02-13 皇家飞利浦电子股份有限公司 低功率汇编器
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US7734898B2 (en) * 2004-09-17 2010-06-08 Freescale Semiconductor, Inc. System and method for specifying an immediate value in an instruction
US8624906B2 (en) * 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8687008B2 (en) 2004-11-15 2014-04-01 Nvidia Corporation Latency tolerant system for executing video processing operations
US7219213B2 (en) * 2004-12-17 2007-05-15 Intel Corporation Flag bits evaluation for multiple vector SIMD channels execution
EP1870803A4 (en) 2005-03-31 2008-04-30 Matsushita Electric Ind Co Ltd PROCESSOR
JP2006012185A (ja) * 2005-08-02 2006-01-12 Matsushita Electric Ind Co Ltd プロセッサ
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
JP4873546B2 (ja) * 2006-06-20 2012-02-08 ルネサスエレクトロニクス株式会社 データ処理装置、データ処理方法
US8683126B2 (en) * 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8990543B2 (en) * 2008-03-11 2015-03-24 Qualcomm Incorporated System and method for generating and using predicates within a single instruction packet
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8489851B2 (en) * 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
JP5358287B2 (ja) * 2009-05-19 2013-12-04 本田技研工業株式会社 並列計算装置
JP5463799B2 (ja) * 2009-08-28 2014-04-09 株式会社リコー Simd型マイクロプロセッサ
JP5813484B2 (ja) 2011-11-30 2015-11-17 ルネサスエレクトロニクス株式会社 Vliwプロセッサと命令構造と命令実行方法
US10318293B2 (en) * 2013-07-09 2019-06-11 Texas Instruments Incorporated Predication methods for vector processors

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0474297B1 (en) * 1990-09-05 1998-06-10 Koninklijke Philips Electronics N.V. Very long instruction word machine for efficient execution of programs with conditional branches
JPH05233281A (ja) * 1992-02-21 1993-09-10 Toshiba Corp 電子計算機
GB2273377A (en) * 1992-12-11 1994-06-15 Hughes Aircraft Co Multiple masks for array processors

Also Published As

Publication number Publication date
JPH1027102A (ja) 1998-01-27
KR100279784B1 (ko) 2001-02-01
TW390991B (en) 2000-05-21
KR980010763A (ko) 1998-04-30
US6041399A (en) 2000-03-21

Similar Documents

Publication Publication Date Title
JP3442225B2 (ja) 演算処理装置
KR102413832B1 (ko) 벡터 곱셈 덧셈 명령
US5710902A (en) Instruction dependency chain indentifier
JP4277042B2 (ja) 演算処理装置
US6185668B1 (en) Method and apparatus for speculative execution of instructions
RU2109333C1 (ru) Цифровой компьютер с возможностью параллельного выполнения двух и более команд
US7383421B2 (en) Cellular engine for a data processing system
US7418575B2 (en) Long instruction word processing with instruction extensions
JP2002024011A (ja) プロセッサにおける命令の叙述された実行
US20060294344A1 (en) Computer processor pipeline with shadow registers for context switching, and method
US6795908B1 (en) Method and apparatus for instruction execution in a data processing system
JPH0766329B2 (ja) 情報処理装置
JP2002333978A (ja) Vliw型プロセッサ
US20110302394A1 (en) System and method for processing regular expressions using simd and parallel streams
JPH06242954A (ja) 独立にアクセスされる中間記憶域を利用してスーパースカラ・プロセッサ・システムにおける命令ディスパッチを改善する方法およびシステム
JP4002554B2 (ja) 拡張命令エンコーディングのシステムおよびその方法
JPH1165844A (ja) パイプラインバイパス機能を有するデータ処理装置
US20030120882A1 (en) Apparatus and method for exiting from a software pipeline loop procedure in a digital signal processor
JP3573506B2 (ja) 述語、及びブール式を解くためのコンピュータ・システム、及び方法
US5872989A (en) Processor having a register configuration suited for parallel execution control of loop processing
JPH1185513A (ja) プロセッサ
EP1499956B1 (en) Method and apparatus for swapping the contents of address registers
JP2003241960A (ja) プロセッサ、該プロセッサにおける演算命令処理方法及び演算制御方法
US20030120899A1 (en) Apparatus and method for processing an interrupt in a software pipeline loop procedure in a digital signal processor
JP2503984B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080620

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080620

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090620

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100620

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100620

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130620

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees