JPH07244589A - 述語、及びブール式を解くためのコンピュータ・システム、及び方法 - Google Patents
述語、及びブール式を解くためのコンピュータ・システム、及び方法Info
- Publication number
- JPH07244589A JPH07244589A JP6308736A JP30873694A JPH07244589A JP H07244589 A JPH07244589 A JP H07244589A JP 6308736 A JP6308736 A JP 6308736A JP 30873694 A JP30873694 A JP 30873694A JP H07244589 A JPH07244589 A JP H07244589A
- Authority
- JP
- Japan
- Prior art keywords
- value
- reduction
- boolean
- register
- operations
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
タ内の値を決定するための1組の演算を用いて述語、及
びフ゛ール式を高速に解くことを提供する。 【構成】各演算の実行は演算の入力、即ち結果値を生成
する結果関数、及び結果値が指定されたレシ゛スタに書き込
まれるかどうかを決定するイネーフ゛ル関数の2つの関数によ
って定義される。この演算でフ゛ール式を解くには、レシ゛スタ
がフ゛ール値で初期設定されている必要がある(例えばAN
D還元には1、OR還元には0)。次にその演算は各演
算のイネーフ゛ル関数が真ならば、フ゛ール値をレシ゛スタに書き込む
(例えばAND還元には0、OR還元には1)。レシ゛スタ
はそこで式の正しい値を記憶する。式の値は述語として
用いられ、フ゜ロク゛ラム内の演算を条件付きで実行する。好
適には、前記演算は複数の機能ユニットによって並列に実行
され、レシ゛スタは同時に書き込まれる複数の値が同じであ
る限り、その値を受け取ることが可能である。
Description
こと、及びコンピュータ・システムにおいてプログラム
の実行を制御することに関し、より詳しくは、コンピュ
ータ・システムでのブール還元(Boolean Reduction)を
高速に解くこと、及び述語化実行のための構造的な機
構、及び方法に関する。
った式を含む。この様な式によって生成される値は、デ
ータ値や分岐条件としての使用法や、コンピュータによ
っては、条件付き演算実行の述語としての使用を含む多
数の使用法がある。
ブール還元を実行すること、即ち、ブール関数、例えば
AND、及びORを使用して複数の値を単一の値に還元
することである。ブール還元を実行するためのその様な
式の一例は r=u∧¬v∧w∧x(1) である。
用してu、vの補数(¬vで表される)、w、及びxの
ブール値を単一のブール値rに還元する。一般に、どん
なブール式でも、多数のAND還元とそれに続くOR還
元から成る、積和形で表すことができる。
は、より小さい(<)やより大きい(>)等の比較演算
や関係演算の結果として得られる。従って、以下のブー
ル式は、コンピュータ・プログラムに用いられるAND
還元式として極めて典型的なものである。 r=(a<b)∧¬(c>d)∧(a<c)∧(b>
d)(2)。
を効率的に実行するために極めて重要である。このこと
は特に、超大型命令語(VLIW)やスーパースカラ・アーキ
テクチャ等の命令レベル並列処理を使用するコンピュー
タ・システム・アーキテクチャに当てはまる。ブール式
は通常、分岐条件を計算する際に使用される。従って、
ブール式を解くことは、プログラムのクリティカル・パ
スにあることが多い。又、並列処理(即ち、同時に実行
できる演算群)を実施するための幾つかのプログラム変
換がブール還元を導入している。その様な変換の効果
は、これらの式をどれだけ速く解くことができるかに依
存している。その様な変換の幾つかの例は、非ロール・
ループから終了する複数の分岐を単一の分岐にまとめる
ことと、非ロールwhileループにおける制御依存性の高
さ還元(height-reduction)が含まれる。
ータでは、ブール式は一般に、順次解く処理がなされ
る。即ち、還元式中の各演算は、一度に1つずつ実行さ
れる。一般に、n個の比較演算を含む還元式を純粋に順
次解いていくには、(2n−1)α回のマシン・サイク
ルが必要である。ここで、αは、コンピュータ・システ
ム上での1比較演算、又はAND演算当たりのサイクル
数である。例えば、上記還元式(2)は7α回のサイク
ルを必要とする。
においては、コンパイル時間高さ還元技法を使用してブ
ール式を解くことを速くさせることが多い。速く解くた
めの簡単な技法は、比較演算を並列に実行し、次いでA
ND演算の2分木を使用して還元を実行することであ
る。例えば、上記式(2)を検討する。コンピュータ・
システム内のプロセッサが少なくとも4つの機能ユニッ
トを有すると仮定すると、以下の表に示す様に式を解く
ことができる。
技法によって3α回のサイクルだけで解くことができ
る。一般に、この高さ還元技法では、n個の比較演算を
含む還元式は,コンピュータ・システムがn個の演算を
並列に実行できるとすれば、(1+(log2n))α回のサイ
クルで解くことができる。しかし、更に並列処理を提供
する資源が利用可能な時でも、この技法は少なくとも
(1+(log2n))α回のサイクルを必要とする。
タ・システムが十分な並列処理機能を有する場合、効果
的にα回のサイクルだけでどんな還元式も解く機構、及
び技法を提供する。この方法、及び技法による性能は、
演算を並列に実行できる機能ユニット(資源)の数によ
ってのみ制限され、式中の個々の演算間のどんな従属関
係にも制限されない。更に、本発明によれば、演算を同
時に実行することも、又どの様な所望の順序でも実行す
ることができる。従って、例えば、コンパイラは自由
に、比較演算とプログラム内の他の演算を並列に実行さ
せることができる。これは、限られた資源をもつコンピ
ュータ・システムにとって重要である。
様を有する。本発明の第1の態様によれば、コンピュー
タ・システム内の1つ、又は複数のレジスタが、複数の
演算によって書き込まれる全ての値が同じであれば、そ
れらの演算が同時にそのレジスタに値を書き込むことを
可能にする。その場合、そのレジスタに記憶される結果
は、明確に定義されたものであり、レジスタに書き込ま
れるどの値とも等しい。しかし、複数の演算が同時に異
なる値を1つのレジスタに書き込む場合、その結果記憶
される値は未定義となる。書き込まれる値はブール値、
整数値、浮動小数点値、その他の値でもよい。レジスタ
は、1ビット・レジスタでも、条件レジスタ、又は状況
レジスタ内のビット位置でもよい。レジスタは又、汎用
レジスタでも浮動小数点レジスタでもよい。コンピュー
タ・システム内の全レジスタが複数の同時書込みのため
のこの機能を提供する必要があるわけではない。
タ・システムは1組の還元演算を提供する。各還元演算
の実行は一般に、演算の入力値の2つの関数、結果関
数、及び許可関数によって定義される。結果関数は、値
がある場合、どんな値が演算によって記憶されるかを決
定する。許可関数は、その値が目標位置、又はレジスタ
に書き込まれ、あるいは記憶されるかどうかを決定す
る。従って、還元演算の結果routは rout=Fout(rin 1,rin 2,...,rin n) if Fen(rin 1,rin 2,...,rin n)(3) で表すことができる。式中、Foutは結果関数であり、
Fenは許可関数である。結果関数と許可関数は、少なく
とも、整数入力値、又は浮動小数点入力値の比較関数、
及びAND、OR、逆関数、一致関数等のブール入力値
の関数といったブール値関数を含むことができる。指定
される目標レジスタは、複数の同時書込みを扱うタイプ
のものであることが好ましい。
ータ・システムでは、どんな還元式も効果的にα回のサ
イクルだけで解くことができる。更に、積和形で表され
たどんな一般ブール式も、効果的に2α回のサイクルで
解くことができる。例えば、上記の還元式(2)は、以
下の表に示した様に事前に1にセットされたレジスタ
に、比較の結果に従い条件付きでブール値の0を書き込
む4つの演算を同時に実行することによって解くことが
できる。
トされている。ANDで示された演算は、指定された比
較演算(<、又は>)の結果が0である場合にレジスタ
rにブール値の0を書き込む。ANDCで示された演算
は、指定された比較演算の結果の補数が0である場合に
レジスタrにブール値の0を書き込む。従って、その演
算の2つ以上が同時にレジスタに書き込むことができる
が、書き込むことができる値は0だけである。
α回のサイクルで還元式(2)を解く。(ここでは、例
えば、機能ユニットの1つが別の状態、即ちアイドル状
態となっている時のサイクルの間等で、レジスタを事前
にセットする演算が、前の演算と並列処理されうると仮
定している。従って、事前セットをする演算は効果的
で、全く追加実行時間を必要としない)。AND演算に
よって実行された比較結果の何れか、又はANDC演算
によって実行された比較結果の補数の何れかが0である
場合、レジスタは0にセットされる。レジスタrが本発
明の第1の態様に従う時、複数の演算が同時にレジスタ
を0にセットすると、レジスタは定義値0にセットされ
る。そうでない場合、レジスタは1のままである。
ル式も、2α回のサイクルで解くことができる。(この
場合も、如何なる追加サイクルをも必要としない様に、
事前設定の演算が前の演算と並列処理されると仮定して
いる)。最初のα回のサイクルでは、式の各AND項が
別々のAND還元として実行される。次のα回のサイク
ルでは、AND還元の結果に対してOR還元が実行され
て式の値が得られる。
る。命令の述語化実行とは、通常はブール値である入力
値で条件付けされた実行を指す。例えば、述語化実行を
サポートするマシン上では、第3の述語入力がある値を
有するかどうかで、2つの入力値を加算する命令を条件
付けることができる。2つの入力値の加算、又は少なく
とも加算関数の結果の書込みは、述語入力が特定の値を
有する時のみ実行される。従って、本発明の更なる特
徴、及び利点によれば、本発明によって解かれた還元式
で命令を述語化することができる。
面に関して進める以下の好適実施例の詳細な説明から明
らかになろう。
るコンピュータ・システム20は一般に、多重信号システ
ム・バス30によってメモリ24、及び周辺装置26に接続さ
れた中央演算処理装置(CPU)22を備えている。メモ
リ24は、動的ランダム・アクセス・メモリ・チップで構
成されていることが好ましいが、読取り専用メモリ、又
はその他の電子メモリ装置で構成されていてもよい。メ
モリ24は、コンピュータ・システム20上で所望のタス
ク、又は計算を実施する1つ、又は複数のプログラム用
のデータ、及び命令を記憶する。
ム20内のCPU22は好適には命令レベル並列処理を提供
する。(本発明の代替実施例では、コンピュータ・シス
テムはパイプライン命令を提供するタイプのCPUを有
することができる。)より明確には、プロセッサ22は、
命令ユニット34と、所望のタスク、又は計算を実行する
ためにプログラムの命令に応じて同時に演算を実行する
複数の機能ユニット36ないし39を備えている。メモ
リ24(図1)に記憶された命令は、命令ユニット34に読
み込まれる。バス・インタフェース回路42は、システム
・バス30上のメモリ24からデータ、及び命令を読み取
り、かつメモリ24にデータを書き込むために必要な信号
を生成する。命令ユニット34は、命令を復号して、その
命令に従って演算を実行する様に1組の機能ユニット36
ないし39に命令する制御信号を生成する。
(「命令セット」)に応答し、機能ユニット36ないし39
を用いて対応する演算を実行するのに必要な制御信号を
形成する様に構成されている。命令セットは一般に、論
理演算命令、算術演算命令、及び浮動小数点演算命令を
備えている。命令セットは又、メモリと1組のレジスタ
46の間、及びレジスタ同士の間でデータを転送するため
のデータ転送命令も備えている。本発明によれば、命令
ユニット34が機能ユニットに実行する様命令できる演算
の幾つかは、以下で更に詳細に説明する述語化プログラ
ムの実行とブール還元を解くための演算である。
34によって指示された通りに命令を実施するための演算
を実行する。機能ユニット36ないし39は一般に、演算で
使用される1つ、又は2つのオペランドを、レジスタ46
の中から選択されたレジスタより読み取る。又、機能ユ
ニット36ないし39は、1つ、又は複数の演算結果を、レ
ジスタ46の中から選択されたレジスタに書き込む。
ニット36ないし39は、従来の論理回路設計技法を使用し
た従来の論理ゲートによって実施される論理回路であ
り、以下で説明する演算を提供する。
スタ46(図2)の1つはブール値オペランドを記憶し、
複数の同時書込みを扱うことができる。その様なレジス
タ54は、記憶装置、又は回路(記憶装置)58、及び多数
のポート60ないし63を備えることが好ましい(他のレジ
スタ46は、整数値、又は浮動小数点値だけを記憶する
等、他の目的専用にすることができる)。
ラッチ回路、フリップ・フロップ回路、あるいは等価静
的メモリ回路、又は等価動的メモリ回路を備えている。
記憶装置58は、単一ビットのみ記憶することもできる
が、整数値や浮動小数点値等、複数ビット値を記憶する
こともできる。複数ビットを記憶する場合、任意のビッ
トの組合せを各ブール状態に割り当てることによってブ
ール値オペランドを表すことができる(例えば、全て0
の場合はブール値の0を表し、他のあらゆるビットの組
合せがブール値の1を表す)。複数ビット記憶を用い
て、プログラム実行の必要性に応じて、ブール値オペラ
ンド、及び複数ビット整数値、又は複数ビット浮動小数
点値を柔軟的に記憶することができる。記憶装置58は
又、複数の単一ビットを備える複数ビット述語ベクト
ル、又は個別にあるいは集合的に書き込まれるブール述
語値を記憶する様に実施することもできる。
し39からレジスタ54に書き込まれる値を受け取る。ポー
ト60ないし63は一般に、データ・バス66ないし69と書込
み可能線70ないし73の両方がそれぞれ機能ユニット36な
いし39に1対1の関係で接続されている。機能ユニット
36ないし39は、演算の結果等の値をレジスタ54に書き込
むために、機能ユニット自身のデータ・バス66ないし69
に書き込まれている値を利用し、機能ユニット自身の書
込み可能線70ないし73上に書込み可能信号を設定する。
ポート60ないし63は、書込み可能信号に応答して、ポー
ト自身のそれぞれのデータ・バス66ないし69上の値を記
憶装置58にゲートする。例えば、機能ユニット37がポー
ト61の書込み可能信号を設定すると、そのポート用のデ
ータ・バス67上の値が記憶装置58に書き込まれる。ポー
ト61用の書込み可能信号が設定されない場合、値は記憶
装置58に書き込まれない。(述語ベクトルの記憶を実施
する場合、ベクトル内の各述語の値に対して別々の可能
線、及び可能信号が使用されうる)。
が、演算が同時に実行されている間に、機能ユニット自
身の書込み可能信号を設定すると、複数の値が同時にレ
ジスタ54に書き込まれる。従来型のレジスタでは、その
様な複数の同時書込みは可能でなく、かつその様な書込
みによって記憶装置58内に記憶された値が不定になるこ
とがある。しかし、レジスタ54はそれ自身に同時に書き
込まれる全ての値が同じである場合、定義された値を記
憶装置58に記憶する様に動作する。その場合、その記憶
される値は、書き込まれる値と同じであることが好まし
い。
れるべき値は、レジスタ54内でポート60ないし63と記憶
装置58の間に接続された選択回路76によって導出され
る。選択回路76は、記憶される値を多数の方法で導出す
ることができる。例えば、選択回路は、書き込まれた複
数の値のAND関数、又はOR関数を実行でき、あるい
は複数の値のうち1つを任意に選択して、記憶される値
を導出することができる。同時に書き込まれた複数の値
が異なるものである場合、結果は不定となる。従って、
異なる値が同時に書き込まれた場合、選択回路76によっ
て記憶される値は重要なものではない。
いし39は、命令ユニット34の制御下で、プログラムの命
令に対応する一定の演算を実行する様に動作する。命令
ユニットの制御下で機能ユニット36ないし39が実行する
演算には、述語化プログラムの実行、及びブール還元式
を解くのに有用な1組の還元演算が含まれる。還元演算
はそれぞれ以下の形をとる: rout=operation(rin 1,rin 2,...,rin n)(4) 言い換えると、各還元演算は、1つ、又は複数の入力
(rin 1,rin 2,...,rin n)に作用し、指定されたレ
ジスタ内に記憶される結果の新しい値(rout)を決定
する。より明確には、各演算の実行は、結果関数(F
out)と許可関数(Fen)の2つの関数によって厳密に
定義される。ここで、結果(rout)は以下の通りであ
る: rout=Fout(rin 1,rin 2,...,rin n) if Fen(rin 1,rin 2,...,rin n)(5) 結果関数(Fout)は、結果が記憶される場合、指定さ
れたレジスタ内に記憶される結果の新しい値を決定す
る。許可関数(Fen)は、指定された出力レジスタ内に
結果を記憶するかどうかを決定するブール値を算出す
る。
る。ブール値結果関数、及びブール値許可関数は各還元
演算に固有のものである。各還元演算は、機能ユニット
内で(1)1組の入力に対して演算の特定の結果関数を
実行して結果のブール値を生成し、(2)指定された目
標レジスタにブール値を書き込むかどうかを決定する演
算の許可関数を実行することによって実行される。結果
関数、又は許可関数に固有なブール値関数のタイプの例
には、一般に、整数入力値に対する比較関数(例えば、
より大きい、より小さい、等しい、それらの補数等)、
浮動小数点入力値に対する比較関数、及びブール入力値
の関数(例えば、AND、OR、XOR、一致、それら
の補数等)が含まれる。
のうちの1つに実行する様命令する各還元演算ごとに、
命令ユニット34は、演算の特定のブール値結果関数用の
入力値(又は入力値が取られてくるレジスタ)と、演算
によって書き込まれるあらゆる値を記憶するための目標
レジスタを指定する。指定された入力値は、演算の特定
の結果関数に適当なものでなければならない。指定され
た目標レジスタは、ブール値を記憶できなければなら
ず、好適実施例では、図3に示しかつ上記で説明した、
複数の同時書込みを扱うタイプのもの(レジスタ54)で
ある。
結果値を目標レジスタに書き込むかどうかを決定する。
従って、各還元演算は、結果関数、及び許可関数の結果
の組合せに応じて3つの動作をとりうる。これらの動作
には、ブール値1を目標レジスタに書き込むこと、ブー
ル値0を目標レジスタに書き込むこと、及び目標レジス
タに書き込まないことが含まれる。
る還元演算の4つのクラスについての真理値表を示す。
数の結果として生成される「条件」値の状態を表す。他
の列は、条件の各状態ごとに還元演算の4つのクラス、
OR、AND、ORC、及びANDCによって実行される
動作を表す。ここで、「1」はブール値1を目標レジス
タに書き込むことを、「0」はブール値0を目標レジス
タに書き込むことを、「--」は目標レジスタ内の値を変
更しないことを表す。
39は、以下の表4の値の列に示した値を機能ユニット自
身の各データ・バス66ないし69上に置き、書込み可能信
号の列に示した様に機能ユニット自身の各書込み可能線
を設定することによって、上述のAND還元演算、及び
OR還元演算を実行する。
のそれぞれの結果関数、及び許可関数によって生成され
る値を示す。これらの演算に関する結果関数は定数であ
る。「値」の列に示した様に、AND演算クラス、及び
ANDC演算クラスに関する結果関数は常に結果として
0を生成し、OR演算クラス、及びORC演算クラスに
関する結果関数は常に結果として1を生成する。「書込
み可能信号」の列は、これらの演算クラスに関する許可
関数が、条件値、又はその補数を生成する比較関数であ
ることを示す。より明確には、OR還元演算クラス、及
びANDC還元演算クラスに関する許可関数は、指定さ
れたブール値比較関数(条件を生成する比較関数)であ
る。ORC還元演算クラス、及びAND還元演算クラス
の許可関数は、指定されたブール値比較関数の補数であ
る。
される還元演算の4つのクラス、明確にはAND、AN
DC、OR、及びORCの還元演算クラスである。AN
D、及びANDCクラスでの還元演算は、AND還元式
を解くうえで有用である。OR、及びORCクラスでの
還元演算は、OR還元式を解くうえで有用である。例え
ば、以下に再び示すAND還元式(2): r=(a<b)∧¬(c>d)∧(a<c)∧(b>
d)(2) は、以下の4つのAND、及びANDCクラスの還元演
算によって解くことができる: r=AND−<(a,b)(6); r=ANDC−>(c,d)(7); r=AND−<(a,c)(8); r=AND−>(b,d)(9)。
れ、(括弧内の)指定された2つの入力値に対する演算
固有の比較関数(<、又は>)と、指定されたレジスタ
(r)を目標とする演算固有の還元関数(AND、又は
ANDC)から成る。各還元演算の比較関数はブール値
条件を生成する。次に、上記表3、及び4に示した様
に、各還元演算の許可関数は、条件に基づき、ブール値
0が目標レジスタに書き込まれるかどうかを決定する。
還元演算(6)、及び(8)は同じ還元演算であるが、
異なる入力値を指定することに留意されたい。
元式(2)を解くために、まず事前にレジスタ(r)を
ブール値1にセットする。次いで、還元演算(6ないし
9)がそれぞれ実行される。必ずしも必要ではないが、
機能ユニット36ないし39によって還元演算を並列に実行
することが好ましい。どれかのAND還元演算の比較関
数が0を生成する場合、目標レジスタに0が書き込まれ
る。又ANDCの比較演算部分が1を生成する(比較の
補数が0である)場合にも、目標レジスタに0が書き込
まれる。従って、全ての還元演算(6)ないし(9)が
実行された後、(効果的に式(2)を解いて)目標レジ
スタは、AND還元式(2)の全ての項が真である場合
は1となり、そうでない場合は0となる。上記の表2に
示した様に、還元演算(6ないし9)を並列に実行する
と、式(2)は、効果的にコンピュータ・システム20の
α回のサイクルだけで解かれる。
ール値述語入力に基づいて目標レジスタに書き込まれる
値を決定すると共に、比較関数によって生成される条件
値も決定する。この代替実施例では、命令ユニット34
は、各還元演算ごとに述語値(又は述語値を含むレジス
タ)を、演算の入力値、及び目標レジスタと共に指定す
る。以下の表5は、この代替実施例におけるいくつかの
典型的な還元演算のクラスを示している。
(C)、OR、及びAND、ならびにそれらの補数(U
C、CC、ORC、ANDC)の還元演算の8つのクラスを
示す。条件なしクラス(U、UC)は、述語入力とその
条件(又はその条件の補数)のブールAND関数を目標
レジスタに書き込む。条件付きクラスは、述語入力に応
じて目標レジスタに条件を書き込む。最後に、OR、及
びANDクラスが、表3に示した様に述語入力に応じて
処理を行う。この場合も、表3に示した還元演算と同様
に、これらの還元演算のそれぞれの実行は、結果値を生
成する結果関数と、指定された目標レジスタに結果値が
書き込まれるかどうかを決定する許可関数によって厳密
に定義される。
式を解く1組の還元演算の性能を、指定されたレジスタ
に含まれる述語入力の値で条件付けることができる。例
えば、目標レジスタと、2つ以上のANDクラス演算を
事前にセットするための条件付きクラス演算を含む1組
の還元演算は、指定された述語入力が1である場合にA
ND還元式(例えば、式(2))を解く様に準備され、
述語入力が0である場合は何もしない。
るブール値は、演算が実行された後に演算の目標レジス
タに記憶され、プログラム内の演算の述語化実行に特に
有用である。本発明の好適実施例では、演算は、ブール
述語値が記憶されるレジスタを指定することができる。
その場合、演算の実行は述語値で条件付けられる。好適
実施例では、その演算が実行されるのは、それらの演算
の指定された述語値が1の時だけである。
与の1組の入力値からそれぞれ複数の結果を生成する1
組の還元演算が提供される。そのため、複数の結果を伴
う還元演算は以下の形をとる: rout,1,rout,2,...,rout,m=op(rin,1,
rin,2,...,rin,n)(10) ここで、1組の入力値(rin,1,rin,2,...,rin,n)に
対して演算を実行することによって複数の結果値(r
out,1,rout,2,...,rout,m)が生成される。これらの
還元演算の実行は、複数の結果値のそれぞれごとに2つ
の関数(Fout,i,Fen ,i)によって厳密に定義される。
より明確には、各iごとに、結果(rout,i)は以下の
値をとる: rout,i=Fout,i(rin,1,rin,2,...,rin,n) if Fen,i(rin,1,rin,2,...,rin,n)(11)。
は、同じ1組の条件を使用する複数の還元式を解く状況
で特に有用である。例えば、状況によっては、4つ1組
の比較のAND還元式と、同じ1組の比較のOR還元式
を解くことが必要になることがある。この様な他の代替
実施例では、4つの機能ユニットだけで両方の還元式を
同時に解くことができる。その4つの機能ユニットは、
それぞれ、2つの別の目標レジスタに書き込むためにA
ND還元関数とOR還元関数を有する、4つの還元演算
をそれぞれ実行する。この技法は、演算を述語化実行す
るために使用される2つの結果述語を条件分岐の真、及
び偽の側から算出するうえで特に有用である。
図示してきたが、本発明は、そうした原理から逸脱する
ことなく構成、及び細部を修正できることが認識されよ
う。例えば、図示された実施例は命令レベル並列コンピ
ュータ・システムであるが、本発明は多重処理コンピュ
ータ・システム(1つのプロセッサ内に別の機能ユニッ
トを有するのではなく、演算を実行するための別の複数
プロセッサを有する)に適用することもできる。その様
な多重処理コンピュータ・システムの実施例において
は、還元式は、隣接する同期点の間に1組の還元演算を
それぞれ別々のプロセッサ上で実行することによって解
かれる。還元演算は、複数の同時書込みを扱う記憶レジ
スタ内に式の値を形成する。
比較関数を、式を解く還元演算とは別に実行することが
できる。より明確には、演算の第1の組でブール値比較
関数を実行して、所望の還元式に関する1組の条件を形
成することができる。次に、還元演算の第2の組を実行
して、条件を式の最終値に還元する。還元関数が2つの
入力を持つAND演算の2分木としてでなく、同時に実
行されるので、この例でも従来の高さ還元技法を越える
利点を提供することに留意されたい。
は、それぞれが、複数のブール値を備えるベクトルに作
用することができる。その様なベクトルは、入力値、述
語値、及び/又は還元演算の関数の結果として機能する
ことができる。
関して言うと、ここで詳述された実施例は説明のみを目
的としたものであり、本発明の範囲を制限するものでは
ないということを認識されたい。むしろ、特許請求の範
囲、及び意図に含まれる全ての実施例、及びその同等物
は、本発明の範囲内であると言うことができる。
ール式、及び述語を解く方法であって、命令セットの命
令に対応する演算が、潜在的にパイプライン化された1
つ、又は複数の機能ユニットによって実行されるコンピ
ュータ・システムを提供するステップと、機能ユニット
内で演算を実行するステップを含み、前記演算が1組の
1つ、又は複数の入力値から、指定されたレジスタに記
憶される値を決定する形の1つ、又は複数の還元演算を
含み、前記機能ユニット内の還元演算の実行が、機能ユ
ニット内で1つ、又は複数の演算入力値の結果関数を実
行し、結果値を生成するステップと、機能ユニット内で
1つ、又は複数の演算入力値の許可関数を実行し、ブー
ル許可値を生成するステップと、ブール許可値が真であ
る場合に、指定されたレジスタ位置に結果値を書き込む
ステップを含むことを特徴とする方法。
実行してブール式を解くステップを含み、1組の還元演
算を実行する前記ステップが、第1の還元演算を実行し
て、指定されたレジスタ位置に第1のブール値を書き込
むステップと、演算の許可関数によって生成されるブー
ル許可値が真である場合に、1組の2つ以上の還元演算
を実行し、そのそれぞれが指定されたレジスタ位置に第
2のブール値をそれぞれ書き込み、それによって、指定
されたレジスタ位置に記憶される値をブール式の値とす
るステップを含むことを特徴とする、項番1に記載の方
法。
で条件付けられた演算を続けて実行するステップを更に
含むことを特徴とする項番2に記載の方法。
とも1つが、機能ユニット内で2つ以上の入力値の許可
関数を実行し、入力値の少なくとも1つの組合せに関し
て偽である許可関数を実行することによって生成される
ブール許可値を生成するステップを含むことを特徴とす
る項番1に記載の方法。
を解くステップを更に含み、1組の還元演算を実行する
前記ステップが、第1の還元演算を実行して、指定され
たレジスタ位置に第1のブール値を書き込むステップ
と、演算の許可関数によって生成されるブール許可値が
真である場合に、1組の2つ以上の還元演算を実行し、
そのそれぞれが指定されたレジスタ位置に第2のブール
値をそれぞれ書き込み、それによって、指定されたレジ
スタ位置に記憶された値をブール式の値とするステップ
を含むことを特徴とする、項番4に記載の方法。
で条件付けられた演算を続けて実行するステップを更に
含むことを特徴とする項番5に記載の方法。
ニットで実行するステップが、機能ユニット内で少なく
とも1つの入力値を共通に有する結果関数と許可関数を
実行し、かつ入力値の少なくとも1つの組合せに関して
偽である許可関数を実行することによって生成されるブ
ール許可値を生成するステップを含むことを特徴とする
項番1に記載の方法。
を解くことを更に含み、1組の還元演算を実行する前記
ステップが、第1の還元演算を実行して、指定されたレ
ジスタ位置に第1のブール値を書き込むステップと、演
算の許可関数によって生成されるブール許可値が真であ
る場合に、1組の2つ以上の還元演算を実行し、そのそ
れぞれが指定されたレジスタ位置に第2のブール値を書
き込み、それによって、指定されたレジスタ位置に記憶
される値をブール式の値とするステップを含むことを特
徴とする、項番7に記載の方法。
で条件付けられた演算を続けて実行するステップを更に
含むことを特徴とする項番8に記載の方法。
内で実行するステップを更に含み、それぞれの複数出力
の還元演算は1つ、又は複数の入力値の組から、1つ、
又は複数の指定されたレジスタ内の複数の値を決定する
形を有し、機能ユニット内のそれぞれの複数出力の還元
演算の実行が、演算によって決定される複数の値のそれ
ぞれごとに、機能ユニット内で演算の1つ、又は複数の
入力値の結果関数を実行して、結果値を生成するステッ
プと、機能ユニット内で演算の1つ、又は複数の入力値
の許可関数を実行して、ブール許可値を生成するステッ
プと、ブール許可値が真である場合に、指定されたレジ
スタ位置に結果値を書き込むステップを含むことを特徴
とする項番1に記載の方法。
を解くステップを更に含み、前記組中の少なくとも1つ
の還元演算が複数出力の還元演算であり、その組の還元
演算の実行が、第1の還元演算を実行して、指定された
レジスタ位置に第1のブール値を書き込むことと、演算
の許可関数によって生成されるブール許可値が真である
場合に、1組の2つ以上の還元演算を実行し、そのそれ
ぞれが指定されたレジスタ位置に第2のブール許可値を
書き込み、それによって、指定されたレジスタ位置に記
憶される値をブール式の値とするステップを含むことを
特徴とする、項番10に記載の方法。
で条件付けられた演算を続けて実行するステップを更に
含むことを特徴とする項番11に記載の方法。
を機能ユニット内で実行するステップが、演算によって
決定される少なくとも1つの値について、機能ユニット
内で2つ以上の入力値の許可関数を実行し、入力値の少
なくとも1つの組合せに関して偽である許可関数を実行
することによって生成されるブール許可値を生成するス
テップを含むことを特徴とする項番10に記載の方法。
を解くステップを更に含み、前記組中の少なくとも1つ
の還元演算が複数出力の還元演算であり、その組の還元
演算を実行するステップが、第1の還元演算を実行し
て、指定されたレジスタ位置に第1のブール値を書き込
むステップと、演算の許可関数によって生成されるブー
ル許可値が真である場合に、1組の2つ以上の還元演算
を実行し、そのそれぞれが指定されたレジスタ位置に第
2のブール値を書き込み、それによって、指定されたレ
ジスタ位置に記憶される値をブール式の値とするステッ
プと、指定されたレジスタに記憶された値で条件付けら
れた演算を続けて実行するステップを含むことを特徴と
する、項番13に記載の方法。
つを機能ユニットで実行するステップが、演算によって
生成される少なくとも1つの値について、機能ユニット
内で少なくとも1つの入力値を共通に有する結果関数と
許可関数を実行し、かつ入力値の少なくとも1つの組合
せに関して偽である許可関数を実行することによって生
成されるブール許可値を生成するステップを含むことを
特徴とする項番10に記載の方法。
を解くステップを更に含み、前記組中の少なくとも1つ
の還元演算が複数出力の還元演算であり、その組の還元
演算を実行するステップが、第1の還元演算を実行し
て、指定されたレジスタ位置に第1のブール値を書き込
むステップと、演算の許可関数によって生成されるブー
ル許可値が真である場合に、1組の2つ以上の還元演算
を実行し、そのそれぞれが指定されたレジスタ位置に第
2のブール値を書き込み、それによって、指定されたレ
ジスタ位置に記憶される値をブール式の値とするステッ
プと、指定されたレジスタに記憶された値で条件付けら
れた演算を続けて実行するステップを含むことを特徴と
する、項番15に記載の方法。
値を記憶するための複数のレジスタと、レジスタに結合
された1つ、又は複数の機能ユニットであって、各前記
機能ユニットがコンピュータ・システム用の命令セット
の命令に対応した複数の演算を実行し、前記演算がレジ
スタ内の指定された記憶位置に記憶された値を、1つ、
又は複数の入力値から決定するための還元演算から成る
機能ユニットと、演算の1つ、又は複数の入力値の結果
関数を実行することにより、結果値を生成し、演算の1
つ、又は複数の入力値の許可関数を実行してブール許可
値を生成し、ブール許可値が真である場合に、指定され
たレジスタ位置に結果値を書き込むことによって還元演
算を実行する機能ユニットを備えることを特徴とするコ
ンピュータ・システム。
込まれた各ブール値が同じものである時、レジスタに同
時に書き込まれた1つ、又は複数のブール値に基づいて
値を記憶する様に動作する、同時に書き込まれた複数の
値を受け入れるためのレジスタを備えることを特徴とす
る、項番17に記載のコンピュータ・システム。
書き込まれる値を受け入れるためのレジスタであって、
前記入力ポートが値と書込み可能信号を機能ユニットか
ら受け取るために機能ユニットに1対1の関係で接続さ
れており、機能ユニットの書込み可能信号が設定された
時に、機能ユニットから受け取った前記値が書き込まれ
るレジスタと、レジスタ内のレジスタ位置を指定する還
元演算を実行する時に、許可関数を実行することによっ
て生成されたブール許可値が真である場合に、演算の結
果関数を実行することによって生成された結果値をレジ
スタに送り、書込み可能信号を設定する機能ユニット
と、機能ユニットによって複数の同じ値が同時にレジス
タに書き込まれた時に、レジスタに記憶する値を導出す
るための手段を更に備えることを特徴とする項番18に記
載のコンピュータ・システム。
された複数の値のそれぞれについて、演算の1つ、又は
複数の入力値の結果関数を実行して結果値を生成し、演
算の1つ、又は複数の入力値の許可関数を実行してブー
ル許可値を生成し、ブール許可値が真である場合に、指
定されたレジスタ位置に結果値を書き込むことによっ
て、レジスタに記憶される複数の値を1つ、又は複数の
入力値から決定するための還元演算を実行する様動作す
ることを特徴とする項番18に記載のコンピュータ・シス
テム。
ュータ・システムによって、どんな還元式も効果的にα
回のサイクルだけで解くことができ、更に、積和形で表
されたどんな一般ブール式も、効果的に2α回のサイク
ルで解くことが可能となる。
テムの概略ブロック図である。
トを有する図1のコンピュータ・システム内の中央演算
処理装置の概略ブロック図である。
ロック図である。
Claims (1)
- 【請求項1】コンピュータ・システムにおいてブール
式、及び述語を解くための方法であって、 命令セットの命令に対応する演算が、潜在的にパイプラ
イン化された1つ、又は複数の機能ユニットによって実
行されるコンピュータ・システムを提供するステップ
と、 機能ユニット内で演算を実行するステップを含み、 前記演算が1組の1つ、又は複数の入力値から、指定さ
れたレジスタに記憶される値を決定する形の1つ、又は
複数の還元演算を含み、前記機能ユニット内の還元演算
の実行が、 機能ユニット内で、1つ、又は複数の演算入力値の結果
関数を実行し、結果値を生成するステップと、 機能ユニット内で、1つ、又は複数の演算入力値の許可
関数を実行し、ブール許可値を生成するステップと、 ブール許可値が真である場合に、指定されたレジスタ位
置に結果値を書き込むステップを含むことを特徴とする
方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16658293A | 1993-12-13 | 1993-12-13 | |
US166582 | 1993-12-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07244589A true JPH07244589A (ja) | 1995-09-19 |
JP3573506B2 JP3573506B2 (ja) | 2004-10-06 |
Family
ID=22603916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30873694A Expired - Lifetime JP3573506B2 (ja) | 1993-12-13 | 1994-12-13 | 述語、及びブール式を解くためのコンピュータ・システム、及び方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6023751A (ja) |
JP (1) | JP3573506B2 (ja) |
DE (1) | DE4430195B4 (ja) |
GB (1) | GB2284690B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021507348A (ja) * | 2017-12-13 | 2021-02-22 | エイアールエム リミテッド | ベクトル・キャリー付き加算命令 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0652509B1 (en) * | 1993-11-05 | 2000-05-10 | Intergraph Corporation | Instruction cache associative cross-bar switch |
US5999738A (en) * | 1996-11-27 | 1999-12-07 | Hewlett-Packard Company | Flexible scheduling of non-speculative instructions |
GB2402510A (en) * | 2003-06-05 | 2004-12-08 | Advanced Risc Mach Ltd | Predication instruction within a data processing system |
US7143270B1 (en) * | 2004-01-30 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | System and method for adding an instruction to an instruction set architecture |
US8200947B1 (en) * | 2008-03-24 | 2012-06-12 | Nvidia Corporation | Systems and methods for voting among parallel threads |
US8564616B1 (en) | 2009-07-17 | 2013-10-22 | Nvidia Corporation | Cull before vertex attribute fetch and vertex lighting |
US8542247B1 (en) | 2009-07-17 | 2013-09-24 | Nvidia Corporation | Cull before vertex attribute fetch and vertex lighting |
US8447954B2 (en) * | 2009-09-04 | 2013-05-21 | International Business Machines Corporation | Parallel pipelined vector reduction in a data processing system |
US8976195B1 (en) | 2009-10-14 | 2015-03-10 | Nvidia Corporation | Generating clip state for a batch of vertices |
US8384736B1 (en) | 2009-10-14 | 2013-02-26 | Nvidia Corporation | Generating clip state for a batch of vertices |
US9141386B2 (en) * | 2010-09-24 | 2015-09-22 | Intel Corporation | Vector logical reduction operation implemented using swizzling on a semiconductor chip |
US10705841B2 (en) | 2015-06-24 | 2020-07-07 | International Business Machines Corporation | Instruction to perform a logical operation on conditions and to quantize the Boolean result of that operation |
US10698688B2 (en) | 2015-06-24 | 2020-06-30 | International Business Machines Corporation | Efficient quantization of compare results |
US10620952B2 (en) | 2015-06-24 | 2020-04-14 | International Business Machines Corporation | Conversion of boolean conditions |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4212076A (en) * | 1976-09-24 | 1980-07-08 | Giddings & Lewis, Inc. | Digital computer structure providing arithmetic and boolean logic operations, the latter controlling the former |
US4251861A (en) * | 1978-10-27 | 1981-02-17 | Mago Gyula A | Cellular network of processors |
US4831521A (en) * | 1983-11-10 | 1989-05-16 | General Signal Corporation | Vital processor implemented with non-vital hardware |
US4774421A (en) * | 1984-05-03 | 1988-09-27 | Altera Corporation | Programmable logic array device using EPROM technology |
US4644464A (en) * | 1984-06-05 | 1987-02-17 | Burroughs Corporation | Graph manager for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes |
US4615003A (en) * | 1984-06-05 | 1986-09-30 | Burroughs Corporation | Condition concentrator and control store for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes |
US4742252A (en) * | 1985-03-29 | 1988-05-03 | Advanced Micro Devices, Inc. | Multiple array customizable logic device |
US4722071A (en) * | 1985-04-19 | 1988-01-26 | Pertron Controls, Corporation | Compiler for evaluating Boolean expressions |
US4747046A (en) * | 1985-06-28 | 1988-05-24 | Hewlett-Packard Company | Mechanism for comparing two registers and storing the result in a general purpose register without requiring a branch |
US5021945A (en) * | 1985-10-31 | 1991-06-04 | Mcc Development, Ltd. | Parallel processor system for processing natural concurrencies and method therefor |
US5051947A (en) * | 1985-12-10 | 1991-09-24 | Trw Inc. | High-speed single-pass textual search processor for locating exact and inexact matches of a search pattern in a textual stream |
US5349670A (en) * | 1986-07-23 | 1994-09-20 | Advanced Micro Devices, Inc. | Integrated circuit programmable sequencing element apparatus |
JP2520882B2 (ja) * | 1986-08-27 | 1996-07-31 | 株式会社日立製作所 | デ−タ処理装置およびデ−タ処理方法 |
US4831573A (en) * | 1987-03-06 | 1989-05-16 | Altera Corporation | Programmable integrated circuit micro-sequencer device |
US5239663A (en) * | 1987-06-15 | 1993-08-24 | Centre National De La Recherche Scientifique | Self-adapting and multifunctional process and structure for the automated evaluation of logical or arithmetic expressions, particularly for extended database consultation |
US5046035A (en) * | 1987-08-26 | 1991-09-03 | Ict International Cmos Tech., Inc. | High-performance user programmable logic device (PLD) |
US4918641A (en) * | 1987-08-26 | 1990-04-17 | Ict International Cmos Technology, Inc. | High-performance programmable logic device |
US5168179A (en) * | 1988-11-04 | 1992-12-01 | Silicon Systems, Inc. | Balanced modulator for auto zero networks |
US5121502A (en) * | 1989-12-20 | 1992-06-09 | Hewlett-Packard Company | System for selectively communicating instructions from memory locations simultaneously or from the same memory locations sequentially to plurality of processing |
IT1244938B (it) * | 1991-03-06 | 1994-09-13 | Ezio Lefons | Sistema di interrogazione dei dati nelle basi e banche di dati. |
WO1992021083A1 (en) * | 1991-05-17 | 1992-11-26 | Theseus Research Inc. | Null convention speed independent logic |
US5287017A (en) * | 1992-05-15 | 1994-02-15 | Micron Technology, Inc. | Programmable logic device macrocell with two OR array inputs |
US5300830A (en) * | 1992-05-15 | 1994-04-05 | Micron Semiconductor, Inc. | Programmable logic device macrocell with an exclusive feedback and exclusive external input lines for registered and combinatorial modes using a dedicated product term for control |
US5309046A (en) * | 1992-09-30 | 1994-05-03 | Intel Corporation | Apparatus and method for product term allocation in programmable logic |
US5450608A (en) * | 1993-04-15 | 1995-09-12 | Intel Corporation | Programmable logic having selectable output states for initialization and resets asynchronously using control bit associated with each product term |
-
1994
- 1994-08-25 DE DE4430195A patent/DE4430195B4/de not_active Expired - Lifetime
- 1994-11-30 GB GB9424221A patent/GB2284690B/en not_active Expired - Lifetime
- 1994-12-13 JP JP30873694A patent/JP3573506B2/ja not_active Expired - Lifetime
-
1995
- 1995-03-03 US US08/400,414 patent/US6023751A/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021507348A (ja) * | 2017-12-13 | 2021-02-22 | エイアールエム リミテッド | ベクトル・キャリー付き加算命令 |
Also Published As
Publication number | Publication date |
---|---|
GB2284690B (en) | 1998-07-01 |
DE4430195A1 (de) | 1995-06-14 |
GB2284690A (en) | 1995-06-14 |
GB9424221D0 (en) | 1995-01-18 |
DE4430195B4 (de) | 2004-09-23 |
JP3573506B2 (ja) | 2004-10-06 |
US6023751A (en) | 2000-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2480979B1 (en) | Unanimous branch instructions in a parallel thread processor | |
KR102413832B1 (ko) | 벡터 곱셈 덧셈 명령 | |
JP5035277B2 (ja) | 共有メモリに対するアトミックな更新を可能にするロックメカニズム | |
US7042466B1 (en) | Efficient clip-testing in graphics acceleration | |
US7627723B1 (en) | Atomic memory operators in a parallel processor | |
US5872987A (en) | Massively parallel computer including auxiliary vector processor | |
US5418736A (en) | Optimized binary adders and comparators for inputs having different widths | |
US5394351A (en) | Optimized binary adder and comparator having an implicit constant for an input | |
US20080184211A1 (en) | Virtual architecture and instruction set for parallel thread computing | |
US20120066668A1 (en) | C/c++ language extensions for general-purpose graphics processing unit | |
JP2006012182A (ja) | データ処理システムとその方法 | |
JP3573506B2 (ja) | 述語、及びブール式を解くためのコンピュータ・システム、及び方法 | |
JPH0766329B2 (ja) | 情報処理装置 | |
US8572355B2 (en) | Support for non-local returns in parallel thread SIMD engine | |
CN104937541A (zh) | 用于调用多线程加速器的装置和方法 | |
Anido et al. | Improving the operation autonomy of SIMD processing elements by using guarded instructions and pseudo branches | |
JP2874351B2 (ja) | 並列パイプライン命令処理装置 | |
US7587582B1 (en) | Method and apparatus for parallel arithmetic operations | |
US6988121B1 (en) | Efficient implementation of multiprecision arithmetic | |
JP2003167726A (ja) | コプロセッサ装置およびデータ転送を容易にするための方法 | |
WO2002015000A2 (en) | General purpose processor with graphics/media support | |
CN112579168B (zh) | 指令执行单元、处理器以及信号处理方法 | |
JP7490766B2 (ja) | 演算論理回路レジスタの順序付け | |
JP2004021890A (ja) | データ処理装置 | |
US11275712B2 (en) | SIMD controller and SIMD predication scheme |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040531 |
|
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: 20040615 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040629 |
|
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: 20080709 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090709 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090709 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100709 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110709 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110709 Year of fee payment: 7 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110709 Year of fee payment: 7 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120709 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130709 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |