JPH08212070A - プロセッサ・アーキテクチャにおける分散制御のための装置および方法 - Google Patents
プロセッサ・アーキテクチャにおける分散制御のための装置および方法Info
- Publication number
- JPH08212070A JPH08212070A JP7318516A JP31851695A JPH08212070A JP H08212070 A JPH08212070 A JP H08212070A JP 7318516 A JP7318516 A JP 7318516A JP 31851695 A JP31851695 A JP 31851695A JP H08212070 A JPH08212070 A JP H08212070A
- Authority
- JP
- Japan
- Prior art keywords
- execution
- instruction
- instructions
- pipe
- pipes
- 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
- 238000000034 method Methods 0.000 title claims description 18
- 239000000872 buffer Substances 0.000 claims description 45
- 238000012546 transfer Methods 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 230000003247 decreasing effect Effects 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
Abstract
ロセッサの複数の実行パイプを制御する多重レベル命令
スケジューリング・システムを提供する。 【解決手段】 この多重レベル・スケジューリング・シ
ステムは、単純な大域命令スケジューラと、実行パイプ
の数に対応する複数のローカル命令スケジューラとを備
える。大域命令スケジューラは、実行パイプへの命令の
分配を行う。各ローカル命令スケジューラは、分配され
た命令の分担分のスケジューリングと、ソース・オペラ
ンドがすべての使用可能なときに、数の減少した命令を
対応する実行パイプの実行ユニットとマッチさせること
のみを行う。
Description
ロセッサ・アーキテクチャの分野に関する。具体的に
は、本発明はコンピュータ・プロセッサにおける分散制
御の分野に関する。
を備えたコンピュータの処理速度は、主として2つの要
因によって左右される。第1の要因は、命令サイクル・
タイムである。第2の要因は、アーキテクチャ/マイク
ロアーキテクチャおよびその実施態様の並列性または複
雑さ、すなわち、各命令について実行ユニットが実行で
きる計算の総量である。したがって、このようなプロセ
ッサの有効な処理速度は、サイクル・タイムを減らす
か、マイクロプロセッサの並列性を高めるか、あるいは
その両方によって向上させることができる。
とが多い。一方の要因を最適化すると、他方の要因を犠
牲にしなければならないことがある。たとえば、アーキ
テクチャを強化して、2次元配列の浮動小数点数を乗算
する命令を組み込むと、その命令のサイクル・タイムが
増える。逆に、平均サイクル・タイムを最小限にするた
めには、命令セットに単純な命令だけを組み込まなけれ
ばならない。パイプライン方式は複雑な命令に伴うサイ
クル・タイムの増加を軽減することができるが、パイプ
ライン方式によって命令待ち時間も増える。
時に実行することが可能な複数の実行ユニットを有する
データ・フロー・プロセッサなど様々なプロセッサ・ア
ーキテクチャが探求されてきた。商業的に実用化されて
いるものとしては、LSIロジックの「ライトニング」
やヒュンダイ・エレクトロニクスの「サンダー」SPA
RCプロセッサなどがある。従来のソフトウェア命令は
一般に順次プログラム順に作成、実行されるが、実際に
は命令のオペランド相互依存が100%であることはめ
ったにないこと、すなわち、前の命令がすべて実行され
るまではどの命令も実行できないということはめったに
ないという所見から、データ・フロー・プロセッサの基
本アーキテクチャが発展した。命令オペランド相互依存
は一般には50%未満である。したがって、いくつかの
独立した命令を1つのサイクルで別々の実行ユニットに
よって同時に処理することが可能である。さらに、命令
オペランド相互依存は、並列指向ソフトウェア・プログ
ラミング言語およびコンパイラ技法を用いることによっ
て減少させることができる。
のデータ・フロー・プロセッサ・アーキテクチャを示す
ブロック図である。データ・フロー・プロセッサ100
は、命令キャッシュ・メモリ110、先取りバッファ1
20、予測レジスタ・ファイル135を有する集中命令
スケジューラ130、複数の実行ユニット141、14
2、...149、およびレジスタ・ファイル/メモリ
190を備えている。先取りバッファ120は、命令キ
ャッシュ・メモリ110と集中命令スケジューラ130
の間に結合されている。レジスタ・ファイル/メモリ1
90は集中命令スケジューラ130に結合されている。
複数の実行ユニット141、142、...149はそ
れぞれ、集中命令スケジューラ130に結合されてい
る。
て各命令が処理されるとき、命令は保留、発行済み、完
了、およびリタイアの4つの状況の1つをとる。命令が
保留中であるとは、使用可能な実行ユニットや1つまた
は複数のソース・オペランドを待つ間、命令が命令キャ
ッシュ110から取り出され、先取りバッファ120に
格納されている場合である。発行済み状態では、集中命
令スケジューラ130によって実行ユニット141に対
して命令が出され、命令のソース・オペランドが使用可
能である。次に、命令は完了、すなわち実行ユニット1
41によって実行される。最後に命令はリタイアされ
る。リタイアされると、適切な実行ユニット、たとえば
141がリタイアされた命令の状況と結果値を集中命令
スケジューラ130の先取りレジスタ・ファイル135
に返して、プロセッサ100のそれに対応する命令状況
を更新する。集中命令スケジューラ130は、実行ユニ
ット141などの資源を実行ユニットの自由プールに返
し、リタイアされた命令の宛先オペランド値をレジスタ
・ファイル190に転送する。
行ユニット141、142、...149があるため、
理論的には、データ・フロー・プロセッサ100は最大
N個の発行済み命令を持つことができる。この場合、N
は実行ユニットの総数に各実行ユニット内のステージ数
を掛けた数である。したがって、オペランド相互依存が
ない理想的な命令のセットでは、N個の発行済み命令を
同時に実行することもできる。実際には、通常、N個の
発行済み命令の間にはいくらかのオペランド依存があ
り、発行済みのいくつかの命令の実行は、それより古い
他の命令がすべて完了してソース・オペランド値が使用
可能になるのを待つ間、遅らせなければならない。先取
りレジスタ・ファイル135は、別々の実行ユニットに
対して出された命令の間のオペランド相互依存を満たす
ために必要なオペランド値の一時保管場所の役割を果た
す。レジスタ・ファイル135は、プログラマにとって
可視のファイルまたは永続レジスタ・ファイルとは異な
る。たとえば、プログラマ可視ファイルには、対応する
レジスタ設定命令が実行中に打ち切られた場合に無効化
される可能性のある一時レジスタ値が含まれていること
がある。それに対して、レジスタ・ファイル135は、
プログラマにとって透過、すなわち見えないファイルで
あり、集中命令スケジューラ130がアクセスすること
が可能なレジスタの専用プールとして使用される。した
がって、中程度の量の並行処理を行うことができ、それ
によってデータ・フロー・プロセッサ100は、単一の
実行ユニットを有する従来のプロセッサと比較してより
高い命令スループットを実現することができる。
化に伴って、すべての命令をスケジュールし、すべての
実行ユニット141、142、...149の状況を追
跡するためのプロセッサ100の制御回路が指数関数的
に複雑化する。集中命令スケジューラ130によって維
持されるこの制御情報とオペランド情報は、実行ユニッ
ト141、142、...149の数の増加や先取りバ
ッファ120内の保留中の命令数の増加につれて大幅に
増える。したがって、従来のデータ・フロー・プロセッ
サ100は、単一命令スケジューラ130がこの大量の
制御情報とデータ情報を維持できる能力によって厳しく
制限されている。さらに、プロセッサ100のスケーラ
ビリティは、実行ユニット141、142、...14
9を制御するために必要な集中命令スケジューラ130
の回路の複雑化によって制限される。
F)プロセッサの複数の実行パイプを制御する多重レベ
ル命令スケジューリング・システムを提供する。この多
重レベルスケジューリング・システムは、単純な大域命
令スケジューラと複数のローカル命令スケジューラを備
えている。各ローカル命令スケジューラにはそれぞれの
実行パイプの1つが関連づけられている。大域命令スケ
ジューラは、実行パイプに命令を分配することだけを行
う。したがって、その回路は従来の集中命令スケジュー
ラに比べて単純であり、他の制御機能はローカル命令ス
ケジューラにゆだねられる。同様に、各ローカル命令ス
ケジューラは、分配された命令の分担分のスケジューリ
ングおよび数の減少した命令とそれに対応する実行パイ
プの実行ユニットとのマッチだけを行うため、ローカル
命令スケジューラも集中命令スケジューラに比べて単純
である。多重レベル・スケジューリング・システムが単
純化される結果、DDFプロセッサは容易に拡張可能に
なる。
数点、整数、またはブールなどの命令クラスやオペラン
ド依存などの適切な基準に基づいて、各実行パイプに命
令を分配する。実行パイプに命令が分配されると、それ
ぞれのローカル命令スケジューラはその命令の実行をス
ケジューリングすることだけを担当する。命令のソース
・オペランド値が入手可能な場合、命令は実行パイプの
使用可能な実行ユニットとマッチさせられる。命令のソ
ース・オペランド値は、3通りの方法の1つで取り出さ
れる。
ーカルで生成されたレジスタ・オペランド値が、実行パ
イプに分配されたより若い命令によって使用されるよう
に、ローカル・レジスタ・バッファに格納されるように
する。したがって、ローカルで生成されたレジスタの結
果値はローカルで、すなわち実行パイプ内で迅速に使用
可能になり、外部アクセスの必要がない。言い換える
と、パイプ間オペランド依存が、ローカル命令スケジュ
ーラによってローカルで迅速に解決される。
命令のソース・オペランド値が入っていない場合、アー
ビタに対してパイプ間オペランド要求が行われる。パイ
プ間オペランド相互依存の解決を行うアービタは、その
要求をすべての実行パイプまたは一部の実行パイプに同
報通信することができる。あるいは、アービタは大域命
令スケジューラに問い合わせて、必要なソース・オペラ
ンドを持つ別の実行パイプの識別子を取り出す。他の実
施態様では、各命令の必要なオペランドのソース、すな
わち実行パイプの識別子が、命令とともに送られ、それ
によってその後のソース・オペランド値の生成が簡単に
なる。オペランド値を別の実行パイプから入手可能な場
合、第1の実行パイプと第2の実行パイプを結合するパ
イプ間バイパスを介してソース・オペランドの転送が開
始される。
が他のどの実行パイプでも見つからない場合、レジスタ
・オペランド値は大域レジスタ・ファイルから取り出さ
れる。次に、要求されたオペランド値は、第1の実行ユ
ニットを大域レジスタ・ファイルに結合するパイプ間バ
イパスを介して転送される。
プに転送されると、命令が実行パイプ内の使用可能な実
行ユニットとマッチさせられる。最終的に、命令はその
実行パイプ内で実行を完了し、リタイアされる。実行パ
イプによって生成された結果のオペランド値は、大域レ
ジスタ・ファイルに書き込まれる。さらに、ローカル命
令スケジューラは、実行の完了を大域命令スケジューラ
に通知し、それによって命令の処理が完了する。
ロセッサには、従来のデータ・フロー・プロセッサより
優れたいくつかの利点がある。そのいくつかは、大域命
令スケジューラとローカル命令スケジューラのスケジュ
ーリングを単純化する階層多重レベル・スケジューリン
グによる利点である。単純化された大域命令スケジュー
ラは、実行パイプからの命令状況情報を処理するだけで
済み、オペランド値を扱う必要がなくなる。したがっ
て、DDFプロセッサは容易に拡張可能で、それに伴っ
て大域およびローカル命令スケジューラの回路が複雑化
することなく、追加の実行パイプを付加することができ
る。
マルチタスク、システム例外/トラップ処理、および、
たとえば命令分岐予測技法のような先取り実行などのソ
フトウェア最適化技法に役立つ。たとえば、DDFプロ
セッサは、個々のタスクを別々の実行パイプで実行する
ことによってマルチタスクを行うことができる。同様
に、それぞれの累積確率に基づいて、別々の実行パイプ
で実行する複数の計算パスを選択することによって、先
取り実行を行うことができる。
点としては、実行パイプ間の制御/クロック同期論理回
路の減少がある。たとえば、各バイパスを介したパイプ
間交信が同期化されると同時に、各実行パイプはそれぞ
れの固有のクロック速度で、固有の同期またはクロック
方法を用いて動作することができる。さらに、様々な実
行パイプのクロック速度をそれぞれの機能に応じて最適
化することができる。
って本発明を十分に理解することができる。これらの詳
細には、開発者が分散データ・フロー(DDF)プロセ
ッサを実現するための手助けとなる機能ブロックとスケ
ジューリング基準例が含まれている。さらに、本発明の
DDFプロセッサについて、特定の実施形態を参照しな
がら説明するが、本発明はデータ・フローと非データ・
フローの両方のアーキテクチャおよび環境に適用可能で
ある。他の実施形態では、本発明が不必要に不明瞭にな
らないように、周知の回路および構造については説明し
ない。
DDFプロセッサ・アーキテクチャを示すブロック図で
ある。DDFプロセッサ200は、命令キャッシュ・メ
モリ210、複数の先取りバッファ221、22
2、...229、大域命令スケジューラ230、複数
の実行パイプ241、242、...249、1つまた
は複数のパイプ間バイパス251、...259、アー
ビタ260、および大域レジスタ・ファイル/メモリ2
90を備えている。各命令パイプは、固有のローカル命
令バッファ、ローカル命令スケジューラ、実行ユニッ
ト、および一時ローカルレジスタ・バッファを備えてい
る。たとえば、命令パイプ241は、ローカル命令バッ
ファ241a、ローカル命令スケジューラ241b、実
行ユニット241c、およびローカル・レジスタバッフ
ァ241dを備えている。同様に、命令パイプ242は
ローカル命令バッファ242a、ローカル命令スケジュ
ーラ242b、実行ユニット242c、およびローカル
・レジスタバッファ242dを備えている。したがっ
て、実行パイプ241の動作の説明は他の実行パイプ2
42、...249にも等しく適用可能である。
ーラ230の間に、先取りバッファ221、22
2、...292が結合されている。大域命令スケジュ
ーラ230にはローカル命令バッファ241a、242
a、...249aを介して実行パイプ241、24
2、...249がそれぞれ接続されている。実行パイ
プ241、242、...249は相互に接続されてお
り、1つまたは複数のパイプ間バイパス251、...
259によってレジスタ・ファイル290にも接続され
ている。アービタ260が、バイパス251、...2
59、大域命令スケジューラ230、およびレジスタ・
ファイル290に接続されている。
ッサ200は、複数の命令を処理するための階層多重レ
ベル・スケジューリング構造を備えている。大域命令ス
ケジューラ230は、実行パイプ241、24
2、...249に命令を割り振って分配することを必
要とする最上位レベルのスケジューリングを行う。それ
に対して、ローカル命令スケジューラ241b、242
b、...249bは、命令を実行ユニットとマッチさ
せ、それぞれ実行パイプ241、242、..249に
命令のソース・レジスタ・オペランド値を入手すること
を必要とする、より低いレベルのスケジューリングを行
う。
令が処理される。まず、大域命令スケジューラ230が
先取りバッファ221、222、...229を介して
命令キャッシュ210から命令を取り出す。次に、大域
命令スケジューラ230は、それらの命令を実行パイプ
241、242、...249に分配する。別々の実行
パイプに分配された命令間のオペランド依存を最小限に
するために、命令クラスまたはオペランド依存による分
配など適切な資源(実行パイプ)割り振り基準を実施す
ることができる。一般に、浮動小数点、整数、およびブ
ール命令はそれぞれ浮動小数点、整数、およびブール・
オペランドに対して実行されるため、命令クラスによる
分配は有効である。好ましい実施形態では、命令は大域
命令スケジューラ230によってその命令のソース・オ
ペランドに関する情報とともに分配される。
後は、大域命令スケジューラ230は命令間のオペラン
ド相互依存の解決は行わない。実行パイプ241、24
2、...249、たとえばパイプ241に命令が分配
されると、それぞれのローカル命令スケジューラ241
b、242b、...249b、たとえばスケジューラ
241bが、命令のローカル・スケジューリングを担当
する。命令は次に、大域命令スケジューラ230によっ
て、それぞれのローカル命令バッファ241a、242
a、...249a、たとえばバッファ241aにロー
ドされる。次に、ローカル命令スケジューラ241bは
ローカル・バッファ241aから実行可能になっている
命令を取り出し、実行ユニット241cに命令をディス
パッチする。
域命令スケジューラ230によって分配された順序で実
行されるわけではないことに留意されたい。これは、命
令スケジューラ241bによるローカル・スケジューリ
ングが、実行パイプ241内の空き実行ユニット241
cの可用性と、ローカル命令バッファ241a内の命令
のソース・オペランドの可用性とに基づいて行われるた
めである。たとえば、バッファ241a内の古い方の
(プログラムの順でより早い方の)命令がソース・オペ
ランドを待っている間に、バッファ241a内のより若
い(プログラムの順でより遅い)命令が、必要なソース
・オペランド値がすべて揃って、実行可能になることが
ある。その場合、近い実行ユニットが使用可能であれ
ば、若い方の命令がディスパッチされる。
ペランド値への迅速なアクセスを容易にするため、ロー
カル命令スケジューラ241bは、ローカルで生成され
たレジスタ・オペランド値をローカル・レジスタ・バッ
ファ241dに格納し、実行パイプ241に分配された
より若い命令がソース・オペランド値として使用できる
ようにする。その結果、ローカルで生成されたレジスタ
の結果値はすべてローカルで、すなわち実行パイプ24
1内で入手可能になり、実行パイプ241の外部へのア
クセスが不要になる。言い換えると、パイプ間オペラン
ドの相互依存はローカル命令スケジューラ241bによ
って解決される。プログラムの正常実行時には、レジス
タ・バッファ241d内のそれぞれのレジスタは再使用
の前に名前変更されるため、ローカル命令スケジューラ
241bによるレジスタ・バッファ241dに格納され
ているオペランド値の無効化は不要である。
ーカル・レジスタ・バッファ241d、242
d、...249dを備えた階層レジスタ・ファイル・
システムは、以下のような理由で従来の技術より優れて
いる。単一の集中レジスタ・ファイルは、大容量高速大
域メモリを多数の実行ユニットと相互接続することによ
ってきわめて広いシリコン面積を要し、入出力ポートの
多いきわめて複雑な回路を必要とするため、理想的では
ない。この拡大は、大域メモリのサイズや実行ユニット
の数が増大するに従って指数関数的に増える。
ットの小さなサブセットの近くに配置された少数の高速
レジスタ・バッファを専用化することにより、シリコン
面積における著しい不利を生ずることなく、最も頻繁に
アクセスされるオペランドへのアクセスの高速化が可能
になる。これは、統計的にソース・オペランドの大多数
(たとえば>90%)が、プログラム順で10行未満の
命令行しか離れていない他の命令によって生成されるた
めである。したがって、単一の大域レジスタ・ファイル
の代わりに、ローカル・レジスタ・バッファ241d、
242d、...249dが大量オペランド・アクセス
を効率的に処理し、DDFプロセッサ200の回路全体
が複雑化しない。その結果、階層レジスタ・ファイル・
システムは容易に拡張可能である。前記の階層レジスタ
・ファイル構成は、複数の実行ユニットを有する他のプ
ロセッサ・アーキテクチャ、たとえば複数の実行ユニッ
トを有する単一のパイプライン・プロセッサにも同様に
適用可能であることに留意されたい。
数のソース・オペランドがローカル・レジスタ・バッフ
ァ241d内に見つからない場合(その確率は低い)、
実行パイプ241がアービタ260に対してパイプ間オ
ペランド要求を行う。パイプ間オペランド相互依存の解
決を行うアービタ260は、必要なソース・オペランド
を持っている実行パイプの識別子を求める要求を出す。
オペランド値が別の実行パイプにある場合、そのソース
・オペランドを持っている実行パイプ、たとえばパイプ
242の識別子を大域命令スケジューラ230から受け
取ると、アービタ260はパイプ間バイパス25
1、...259のうちの適切な1つを介してそのソー
ス・オペランドの転送を開始する。通例、パイプ間バイ
パスは類似したクラスの実行ユニットを有する実行パイ
プを相互接続するために必要なものである。たとえば、
実行パイプ241、242、...249の第1の対と
第2の対が、それぞれ浮動小数点実行パイプと整数実行
パイプであるとすれば、第1のバイパスが浮動小数点実
行パイプの対を相互接続し、第2のバイパスが整数実行
パイプの対を相互接続することができる。
は、パイプ間オペランド値トラフィックを調整すること
である。ある種の実施形態では、アービタ260は、た
とえば大域命令スケジューラ230に問い合わせること
によって、必要なソース・オペランド値のある場所(実
行パイプ)を判断することもできる。
41、242、...249にも見つからない場合(そ
の確率はさらに低い)、大域レジスタ・ファイル290
へのアクセス要求が出される。要求されたレジスタ・オ
ペランド値は、大域レジスタ・ファイル290から実行
パイプ241に転送される。必要なソース・オペランド
値をその命令がすでにすべて入手していれば、これでそ
の命令と実行パイプ241の実行ユニットとのマッチを
行うことができるようになる。
ス251を介して他の実行パイプ242、...249
から、または大域レジスタ・ファイル290から、実行
パイプ241内の各命令のソース・オペランドがすべて
取り出されると、ローカル命令スケジューラ241bは
その命令を実行ユニット241cのうちの空き実行ユニ
ットとのマッチを行い、その実行ユニットに命令をディ
スパッチする。実行パイプ241のローカル・レジスタ
・バッファ241dを使用することにより、実行パイプ
241内で生成されたレジスタ値へのローカル・アクセ
スを高速化することができる。最後に、命令は実行パイ
プ241内で実行を完了し、リタイアされる。実行パイ
プ241によって生成された結果のオペランド値は、次
に大域レジスタ・ファイル290に書き込まれる。さら
に、ローカル命令スケジューラ241bは実行の完了を
大域命令スケジューラ230に通知し、それによって命
令の処理が完了する。
200には、従来のデータ・フロー・プロセッサ100
より優れたいくつかの利点がある。利点のいくつかは、
大域命令スケジューラ230とローカル命令スケジュー
ラ241b、242b、...249bによってスケジ
ューリングを単純化する階層多重レベル・スケジューリ
ングによるものである。また、DDFプロセッサ200
の複数の先取りバッファ221、222、...229
と複数の実行パイプ241、242、...249によ
って実現される、本質的な並列性と同時性による利点も
ある。
0は実行パイプ241、242、...249への命令
の分配だけを行うため、大域命令スケジューラ230の
制御回路は従来の集中命令スケジューラ130よりも単
純である。さらに、各実行パイプをビジーにしておくの
に必要な命令の数は、集中命令スケジューラ130をビ
ジーにしておくために必要な命令数と比較して少ないた
め、ローカル命令スケジューラ241b、242
b、...249bの制御回路はそれに対応して単純で
ある。したがって、DDFプロセッサ200は容易に拡
張可能であり、比較的簡単に、すなわち、大域命令スケ
ジューラ230の回路の複雑さが指数関数的に増すこと
なく、追加の実行パイプを付加することができる。
りバッファおよび複数実行パイプ・アーキテクチャは、
マルチタスク、システム例外/トラップ処理、たとえば
命令分岐予測技法のような先取り実行など、ソフトウェ
アとシステムの最適化技法とにも役立つ。たとえばDD
Fプロセッサ200は、各タスクを先取りバッファ22
1、222、...229の個別の1つに分離し、実行
パイプ241、242、...249の個別の1つで個
々のタスクを並行して実行することにより、マルチタス
クを行うことができる。マルチタスクをサポートするた
めに複数組のプロセッサ状態が必要になる可能性がある
が、実行ユニット241c、242c、...249c
それぞれの専用のローカル・レジスタ・バッファ241
d、242d、...249dや、データの共有と複数
実行タスク/パスの間の連絡のためのパイプ間バイパス
251、...259などのハードウェアはすでに存在
している。
れぞれの累積確率に基づいて個別の実行パイプでの実行
のために複数の計算パスを選択することによって、先取
り実行を行うことができる。先取り実行は、マルチタス
クの場合と同様、選択された各パスを先取りバッファ2
21、222、...229の個別の1つに分離し、個
々のタスクを実行パイプ241、242、...249
の1つで並行して実行することによって行われる。
最適化技法によって、プロセッサ200では同時に複数
のコンテキストを実現することができ、それによって、
従来の単一パイプライン・アーキテクチャでは通常、必
要悪である、コンテキスト切換えが減少する。コンテキ
スト切換えオーバーヘッドの減少によって、特にタスク
またはプログラムがページ・フォルトなどの待ち時間の
短いイベントを待っているとき、プロセッサ200の全
体の使用効率が向上して有利である。
ウェア上の利点としては、実行パイプ241、24
2、...239の実行ユニット間で必要な制御および
クロック同期が減少することと、より非同期的なアーキ
テクチャに伴う回路の単純さがある。たとえば、各バイ
パスを介したパイプ間連絡が同期化されると同時に、個
々の実行パイプがそれぞれの固有のクロック速度と固有
の同期またはクロック方法で動作することができる。さ
らに、様々な実行パイプのクロック速度をそれぞれの機
能に応じて最適化することができる。
変更も可能である。たとえば、上記の分散データ・フロ
ー・アーキテクチャは、パイプライン化など他のソフト
ウェア技法およびハードウェア技法と組み合わせて実施
することができる。したがって、本発明の範囲は以下の
請求の範囲によって決定されるものとする。
テクチャを示すブロック図である。
フロー・アーキテクチャを示すブロック図である。
Claims (13)
- 【請求項1】 複数の命令を命令の小グループに分ける
大域命令スケジューラと、 前記大域命令スケジューラに結合され、各実行パイプが
命令の前記小グループのうちの対応する1つを受け取
り、各実行パイプが命令の前記対応する小グループをス
ケジューリングするローカル命令スケジューラを有する
複数の実行パイプとを備えた分散データ・フロー(DD
F)プロセッサ。 - 【請求項2】 前記実行パイプのうちの2つに接続さ
れ、前記2つの実行パイプ間でオペランド値を転送する
パイプ間バイパスをさらに備えた請求項1に記載のDD
F。 - 【請求項3】 複数の命令を前記複数の実行パイプに分
配する大域命令スケジューラを備えた、前記複数の実行
パイプを有する分散データ・フロー・プロセッサと共に
使用して有用な命令スケジューリング・システム。 - 【請求項4】 前記大域命令スケジューラに結合され、
前記各実行パイプ内の命令をスケジューリングする複数
のローカル命令スケジューラをさらに備えた請求項3に
記載の命令スケジューリング・システム。 - 【請求項5】 分散データ・フロー・プロセッサと共に
使用して有用な複数の実行パイプであって、前記実行パ
イプのそれぞれが、 前記各実行パイプ内の命令をスケジューリングするロー
カル命令スケジューラと、 前記ローカル命令スケジューラに結合され、前記スケジ
ュールされた命令を実行する実行ユニットとを備えた実
行パイプ。 - 【請求項6】 前記実行ユニットに接続され、前記実行
ユニットによって生成されたオペランド値を格納するレ
ジスタ・バッファをさらに備えた請求項5に記載の実行
パイプ。 - 【請求項7】 複数の実行パイプを有するプロセッサと
共に使用して有用なアービタであって、 前記実行パイプのうちの2つの間でのレジスタ・オペラ
ンド値の転送を指示する要素を備えたアービタ。 - 【請求項8】 複数の実行パイプを有するプロセッサと
共に使用して有用なパイプ間バイパスであって、 前記実行パイプのうちの2つに結合され、前記2つの実
行パイプ間でレジスタ・オペランド値を転送する要素を
備えた、パイプ間バイパス。 - 【請求項9】 少なくとも第1および第2の実行パイプ
を有する分散データ・フロー・プロセッサにおいて命令
をスケジューリングする方法であって、 複数の命令を前記第1および第2の実行パイプに分配す
るステップと、 前記命令のうちの少なくとも2つを前記第1の実行パイ
プ内で実行するためにスケジューリングするステップと
を含む方法。 - 【請求項10】 複数の実行ユニットを有するプロセッ
サのための階層レジスタ・ファイル・システムであっ
て、 前記実行ユニットの第1のサブセットに結合され、実行
ユニットの前記第1のサブセットによって生成された第
1のオペランド値を格納する第1の複数のローカル・レ
ジスタ・バッファと、 前記実行ユニットの第2のサブセットに結合され、実行
ユニットの前記第2のサブセットによって生成された第
2のオペランド値を格納する第2の複数のローカル・レ
ジスタ・バッファとを備えたシステム。 - 【請求項11】 前記第1の複数のローカル・レジスタ
・バッファから前記第1のオペランド値と制御情報を実
行ユニットの前記第2のサブセットに転送する要素をさ
らに備えた請求項10に記載の階層レジスタ・ファイル
・システム。 - 【請求項12】 複数の実行ユニットを有するプロセッ
サにおいて階層レジスタ・ファイル・システムを使用す
る方法であって、 前記実行ユニットの第1のサブセットによって生成され
た第1のオペランド値を格納する第1の複数のローカル
・レジスタ・バッファを用意するステップと、 前記実行ユニットの第2のサブセットによって生成され
た第2のオペランド値を格納する第2の複数のローカル
・レジスタ・バッファを提供するステップとを含む方
法。 - 【請求項13】 前記第1の複数のローカル・レジスタ
・バッファから前記第1のオペランド値と制御情報を実
行ユニットの前記第2のサブセットに転送する要素を提
供するステップとをさらに含む請求項12に記載の方
法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/339,518 US5592679A (en) | 1994-11-14 | 1994-11-14 | Apparatus and method for distributed control in a processor architecture |
US08/339518 | 1994-11-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08212070A true JPH08212070A (ja) | 1996-08-20 |
JP3771957B2 JP3771957B2 (ja) | 2006-05-10 |
Family
ID=23329376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31851695A Expired - Lifetime JP3771957B2 (ja) | 1994-11-14 | 1995-11-14 | プロセッサ・アーキテクチャにおける分散制御のための装置および方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5592679A (ja) |
JP (1) | JP3771957B2 (ja) |
KR (1) | KR960018961A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100383001B1 (ko) * | 2000-08-04 | 2003-05-09 | 주식회사 하이닉스반도체 | 엠씨유의 온-보드 프로그램 방법 |
US6807624B1 (en) | 1998-12-17 | 2004-10-19 | Fujitsu Limited | Instruction control device and method therefor |
WO2006114874A1 (ja) * | 2005-04-21 | 2006-11-02 | Fujitsu Limited | プロセッサ装置 |
US7373485B2 (en) | 2004-09-01 | 2008-05-13 | National University Corporation Nagoya University | Clustered superscalar processor with communication control between clusters |
WO2008072334A1 (ja) | 2006-12-14 | 2008-06-19 | Fujitsu Limited | コンパイル方法及びコンパイラ |
JP2010282668A (ja) * | 2010-09-27 | 2010-12-16 | Fujitsu Ltd | プロセッサ装置 |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2016068C (en) * | 1989-05-24 | 2000-04-04 | Robert W. Horst | Multiple instruction issue computer architecture |
US5734874A (en) * | 1994-04-29 | 1998-03-31 | Sun Microsystems, Inc. | Central processing unit with integrated graphics functions |
US5884059A (en) * | 1996-01-26 | 1999-03-16 | Advanced Micro Devices, Inc. | Unified multi-function operation scheduler for out-of-order execution in a superscalar processor |
US5699537A (en) * | 1995-12-22 | 1997-12-16 | Intel Corporation | Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions |
US6209020B1 (en) * | 1996-09-20 | 2001-03-27 | Nortel Networks Limited | Distributed pipeline memory architecture for a computer system with even and odd pids |
US5898849A (en) * | 1997-04-04 | 1999-04-27 | Advanced Micro Devices, Inc. | Microprocessor employing local caches for functional units to store memory operands used by the functional units |
US6161167A (en) * | 1997-06-27 | 2000-12-12 | Advanced Micro Devices, Inc. | Fully associate cache employing LRU groups for cache replacement and mechanism for selecting an LRU group |
US6088786A (en) * | 1997-06-27 | 2000-07-11 | Sun Microsystems, Inc. | Method and system for coupling a stack based processor to register based functional unit |
US6345312B1 (en) | 1997-08-28 | 2002-02-05 | International Business Machines Corporation | Selectively dummying a data pipe transparent to a writer application |
US6012134A (en) * | 1998-04-09 | 2000-01-04 | Institute For The Development Of Emerging Architectures, L.L.C. | High-performance processor with streaming buffer that facilitates prefetching of instructions |
US6370415B1 (en) | 1998-04-10 | 2002-04-09 | Medi-Physics Inc. | Magnetic resonance imaging method |
US6088789A (en) * | 1998-05-13 | 2000-07-11 | Advanced Micro Devices, Inc. | Prefetch instruction specifying destination functional unit and read/write access mode |
US6304953B1 (en) * | 1998-07-31 | 2001-10-16 | Intel Corporation | Computer processor with instruction-specific schedulers |
US7114056B2 (en) * | 1998-12-03 | 2006-09-26 | Sun Microsystems, Inc. | Local and global register partitioning in a VLIW processor |
US7117342B2 (en) * | 1998-12-03 | 2006-10-03 | Sun Microsystems, Inc. | Implicitly derived register specifiers in a processor |
US6442678B1 (en) * | 1998-12-31 | 2002-08-27 | Intel Corporation | Method and apparatus for providing data to a processor pipeline |
US6618802B1 (en) * | 1999-09-07 | 2003-09-09 | Hewlett-Packard Company, L.P. | Superscalar processing system and method for selectively stalling instructions within an issue group |
US6748492B1 (en) * | 2000-08-07 | 2004-06-08 | Broadcom Corporation | Deterministic setting of replacement policy in a cache through way selection |
US6848024B1 (en) * | 2000-08-07 | 2005-01-25 | Broadcom Corporation | Programmably disabling one or more cache entries |
US6732234B1 (en) * | 2000-08-07 | 2004-05-04 | Broadcom Corporation | Direct access mode for a cache |
JP2002230065A (ja) * | 2001-02-02 | 2002-08-16 | Toshiba Corp | システムlsi開発装置およびシステムlsi開発方法 |
US6895520B1 (en) | 2001-03-02 | 2005-05-17 | Advanced Micro Devices, Inc. | Performance and power optimization via block oriented performance measurement and control |
US6748495B2 (en) | 2001-05-15 | 2004-06-08 | Broadcom Corporation | Random generator |
US7240347B1 (en) * | 2001-10-02 | 2007-07-03 | Juniper Networks, Inc. | Systems and methods for preserving the order of data |
US7266587B2 (en) * | 2002-05-15 | 2007-09-04 | Broadcom Corporation | System having interfaces, switch, and memory bridge for CC-NUMA operation |
US7484075B2 (en) * | 2002-12-16 | 2009-01-27 | International Business Machines Corporation | Method and apparatus for providing fast remote register access in a clustered VLIW processor using partitioned register files |
US7543142B2 (en) | 2003-12-19 | 2009-06-02 | Intel Corporation | Method and apparatus for performing an authentication after cipher operation in a network processor |
US7512945B2 (en) * | 2003-12-29 | 2009-03-31 | Intel Corporation | Method and apparatus for scheduling the processing of commands for execution by cryptographic algorithm cores in a programmable network processor |
US7529924B2 (en) * | 2003-12-30 | 2009-05-05 | Intel Corporation | Method and apparatus for aligning ciphered data |
US7284092B2 (en) * | 2004-06-24 | 2007-10-16 | International Business Machines Corporation | Digital data processing apparatus having multi-level register file |
US8468530B2 (en) * | 2005-04-07 | 2013-06-18 | International Business Machines Corporation | Determining and describing available resources and capabilities to match jobs to endpoints |
WO2007027671A2 (en) * | 2005-08-29 | 2007-03-08 | Searete Llc | Scheduling mechanism of a hierarchical processor including multiple parallel clusters |
US9176741B2 (en) * | 2005-08-29 | 2015-11-03 | Invention Science Fund I, Llc | Method and apparatus for segmented sequential storage |
US20160098279A1 (en) * | 2005-08-29 | 2016-04-07 | Searete Llc | Method and apparatus for segmented sequential storage |
US20070083735A1 (en) * | 2005-08-29 | 2007-04-12 | Glew Andrew F | Hierarchical processor |
US8275976B2 (en) * | 2005-08-29 | 2012-09-25 | The Invention Science Fund I, Llc | Hierarchical instruction scheduler facilitating instruction replay |
US8296550B2 (en) * | 2005-08-29 | 2012-10-23 | The Invention Science Fund I, Llc | Hierarchical register file with operand capture ports |
US7644258B2 (en) * | 2005-08-29 | 2010-01-05 | Searete, Llc | Hybrid branch predictor using component predictors each having confidence and override signals |
US7923341B2 (en) * | 2007-08-13 | 2011-04-12 | United Solar Ovonic Llc | Higher selectivity, method for passivating short circuit current paths in semiconductor devices |
JP2011008732A (ja) * | 2009-06-29 | 2011-01-13 | Fujitsu Ltd | プライオリティ回路、演算処理装置及び演算処理方法 |
US20110276784A1 (en) * | 2010-05-10 | 2011-11-10 | Telefonaktiebolaget L M Ericsson (Publ) | Hierarchical multithreaded processing |
US9348587B2 (en) * | 2010-07-09 | 2016-05-24 | Hyperion Core, Inc. | Providing code sections for matrix of arithmetic logic units in a processor |
US9514094B2 (en) * | 2012-07-10 | 2016-12-06 | Maxeler Technologies Ltd | Processing data sets using dedicated logic units to prevent data collision in a pipelined stream processor |
US9286068B2 (en) * | 2012-10-31 | 2016-03-15 | International Business Machines Corporation | Efficient usage of a multi-level register file utilizing a register file bypass |
US10275251B2 (en) | 2012-10-31 | 2019-04-30 | International Business Machines Corporation | Processor for avoiding reduced performance using instruction metadata to determine not to maintain a mapping of a logical register to a physical register in a first level register file |
US9513920B2 (en) * | 2014-05-29 | 2016-12-06 | Mill Computing, Inc. | Computer processor employing split-stream encoding |
US11256511B2 (en) * | 2019-05-20 | 2022-02-22 | International Business Machines Corporation | Instruction scheduling during execution in a processor |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4594660A (en) * | 1982-10-13 | 1986-06-10 | Honeywell Information Systems Inc. | Collector |
JP2693651B2 (ja) * | 1991-04-30 | 1997-12-24 | 株式会社東芝 | 並列プロセッサー |
US5471633A (en) * | 1993-09-30 | 1995-11-28 | Intel Corporation | Idiom recognizer within a register alias table |
US5548776A (en) * | 1993-09-30 | 1996-08-20 | Intel Corporation | N-wide bypass for data dependencies within register alias table |
-
1994
- 1994-11-14 US US08/339,518 patent/US5592679A/en not_active Expired - Lifetime
-
1995
- 1995-11-14 KR KR1019950041292A patent/KR960018961A/ko not_active Application Discontinuation
- 1995-11-14 JP JP31851695A patent/JP3771957B2/ja not_active Expired - Lifetime
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6807624B1 (en) | 1998-12-17 | 2004-10-19 | Fujitsu Limited | Instruction control device and method therefor |
KR100383001B1 (ko) * | 2000-08-04 | 2003-05-09 | 주식회사 하이닉스반도체 | 엠씨유의 온-보드 프로그램 방법 |
US7373485B2 (en) | 2004-09-01 | 2008-05-13 | National University Corporation Nagoya University | Clustered superscalar processor with communication control between clusters |
WO2006114874A1 (ja) * | 2005-04-21 | 2006-11-02 | Fujitsu Limited | プロセッサ装置 |
JPWO2006114874A1 (ja) * | 2005-04-21 | 2008-12-11 | 富士通株式会社 | プロセッサ装置 |
JP4952580B2 (ja) * | 2005-04-21 | 2012-06-13 | 富士通株式会社 | プロセッサ装置 |
WO2008072334A1 (ja) | 2006-12-14 | 2008-06-19 | Fujitsu Limited | コンパイル方法及びコンパイラ |
JP2010282668A (ja) * | 2010-09-27 | 2010-12-16 | Fujitsu Ltd | プロセッサ装置 |
Also Published As
Publication number | Publication date |
---|---|
JP3771957B2 (ja) | 2006-05-10 |
US5592679A (en) | 1997-01-07 |
KR960018961A (ko) | 1996-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3771957B2 (ja) | プロセッサ・アーキテクチャにおける分散制御のための装置および方法 | |
US8516222B1 (en) | Virtual architectures in a parallel processing environment | |
US8145884B2 (en) | Apparatus, method and instruction for initiation of concurrent instruction streams in a multithreading microprocessor | |
CN110249302B (zh) | 在处理器核上同时执行多个程序 | |
US6463527B1 (en) | Spawn-join instruction set architecture for providing explicit multithreading | |
US7809926B2 (en) | Systems and methods for reconfiguring on-chip multiprocessors | |
KR101638225B1 (ko) | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 명령어 시퀀스 코드 블록의 실행 | |
KR101620676B1 (ko) | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 레지스터 파일 세그먼트 | |
US5485626A (en) | Architectural enhancements for parallel computer systems utilizing encapsulation of queuing allowing small grain processing | |
KR101966712B1 (ko) | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트 | |
Byrd et al. | Multithreaded processor architectures | |
AU2019392179B2 (en) | Accelerating dataflow signal processing applications across heterogeneous CPU/GPU systems | |
US7840914B1 (en) | Distributing computations in a parallel processing environment | |
US20060161921A1 (en) | Preemptive multitasking employing software emulation of directed exceptions in a multithreading processor | |
WO1998043193A9 (en) | Spawn-join instruction set architecture for providing explicit multithreading | |
CA2071481A1 (en) | Cluster architecture for a highly parallel scalar/vector multiprocessor system | |
WO2005022384A1 (en) | Apparatus, method, and instruction for initiation of concurrent instruction streams in a multithreading microprocessor | |
Sakai et al. | Super-threading: Architectural and software mechanisms for optimizing parallel computation | |
JP4784792B2 (ja) | マルチプロセッサ | |
Kavi et al. | Multithreaded systems | |
Ziavras | Processor design based on dataflow concurrency | |
Lankamp | Developing a reference implementation for a microgrid of microthreaded microprocessors | |
Golla et al. | A dynamic scheduling logic for exploiting multiple functional units in single chip multithreaded architectures | |
Biedermann et al. | Virtualizable Architecture for embedded MPSoC | |
Kwak | A performance study of multithreading |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041108 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041124 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050224 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050301 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050523 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050614 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050914 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050930 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051214 |
|
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: 20060131 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060213 |
|
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: 20100217 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100217 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110217 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130217 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130217 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140217 Year of fee payment: 8 |
|
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 |