JPH10228378A - マイクロプロセッサ内の共有データパスを介して整数データ及び浮動小数点データを通信する方法並びに処理装置 - Google Patents
マイクロプロセッサ内の共有データパスを介して整数データ及び浮動小数点データを通信する方法並びに処理装置Info
- Publication number
- JPH10228378A JPH10228378A JP9337219A JP33721997A JPH10228378A JP H10228378 A JPH10228378 A JP H10228378A JP 9337219 A JP9337219 A JP 9337219A JP 33721997 A JP33721997 A JP 33721997A JP H10228378 A JPH10228378 A JP H10228378A
- Authority
- JP
- Japan
- Prior art keywords
- floating
- integer
- point
- instruction
- result
- 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 abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 62
- 238000004891 communication Methods 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000012546 transfer Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 229930091051 Arenine Natural products 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
-
- 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/3001—Arithmetic instructions
-
- 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/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- 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/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
- G06F9/3828—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
-
- 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/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent 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
Abstract
が回避された整数データ及び浮動小数点データの通信方
法及び処理装置の提供を目的とする。 【解決手段】 本発明のマイクロプロセッサが同時に実
行する命令には、整数命令と浮動小数点命令とが混在し
て含まれ得る。命令パイプラインは複数の命令を同時に
実行するため連続的な段を有する。複数の連続的な段の
中の各段は複数の命令の中の別々の命令に基づいて同時
に動作する。整数ユニットは整数命令を実行し、各整数
命令毎に整数型結果を形成する。浮動小数点ユニットは
浮動小数点命令を実行し、各浮動小数点命令毎に浮動小
数点型結果を形成する。データパスは命令パイプライン
内の連続的な段の間でデータを通信するため整数ユニッ
トと浮動小数点ユニットとにより共有される。
Description
タパスを介して整数データ及び浮動小数点データを転送
するマイクロプロセッサ並びに方法に係わり、特に、共
有データパスを有し、統合された整数ユニット及び浮動
小数点ユニットに夫々整数データ及び浮動小数点データ
を通信する複数のパイプライン段を有するマイクロプロ
セッサに関する。
ことにより、1サイクル当たりに実行されるプログラム
命令数の測定から分かるように、典型的に処理スループ
ットが低下する。スループットの低下する原因は、実数
を処理する際に要求される複雑さ及び精度が整数の場合
よりも増大するためである。さらに、実数及び整数は異
なる内部機械語表記の形式により表現される。浮動小数
点表記は実数を表現するため使用され、他のフォーマッ
トでも構わないが、典型的には符号ビット、指数部及び
小数部を含む。2の補数表記及び1の補数表記が整数を
表現するため使用され、他のフォーマットでも構わない
が、典型的には符号ビット及び大きさを含む。このよう
に表記に差異があるため、効率的なマイクロプロセッサ
設計はより複雑化する。
置(CPU)は、整数命令を実行する整数ユニット(I
U)とも称される算術論理装置(ALU)と、汎用レジ
スタの組とを含むが、場合によっては専用ハードウェア
が整数乗算及び除算のため使用される。加算又は減算の
ような単純な整数演算命令は、典型的に単一のマシンサ
イクル内に完了される。
May 1993, pp. 6-7、並びに、“R4200 MICROPROCESSO
R, R4200 Preliminary Datasheet Rev. 1.4”, MIPS Co
mputers, Inc., August 1994, pp. 1-37 に記載されて
いるように、整数表記の差異にも係わらず、整数ユニッ
トが浮動小数点命令を実行するため使用され得る。浮動
小数点表現と整数表現との間の変換は必要ないが、浮動
小数点演算の処理は整数ユニット演算よりも処理時間が
長いので性能が低下する。
680 号、イシダ他に発行された米国特許第5,226,166
号、及び、イシダ他に発行された米国特許第5,293,500
号明細書に開示されているように、専用浮動小数点ユニ
ット(FPU)は、整数命令と並列に浮動小数点命令を
実行するため選択的に利用され得る。しかし、この種の
浮動小数点ユニットは、整数ユニットと浮動小数点ユニ
ットとの間で浮動小数点型オペランド及び浮動小数点型
結果を通信するため別個のデータパスを必要とする。さ
らに、浮動小数点ユニットの命令の処理は、整数ユニッ
トの命令の処理と同期させる必要があるので、演算上の
複雑さ及び遅延が更に追加される。
のマイクロプロセッサは、混在する整数命令と実数命令
とを処理するため整数データ及び浮動小数点データを通
信する際に、性能が低下し、或いは、演算の複雑さ及び
遅れが増加するという欠点がある。本発明は、上記従来
技術の欠点を解決するため、共通データパスシステムを
介して整数データ及び浮動小数点データを通信するマイ
クロプロセッサ並びにその方法の提供を目的とする。
令を同時に実行するマイクロプロセッサである。命令に
は、整数演算を実行する整数命令と、実数演算を実行す
る浮動小数点命令とが含まれる。命令パイプラインは複
数の命令を同時に実行するため連続的な段を有する。複
数の連続的な段の中の各段は、複数の命令の中の別々の
命令に基づいて同時に動作する。本発明において、整数
命令及び浮動小数点命令はパイプライン内に混在させて
もよい。整数ユニットは整数命令を実行し、各整数命令
毎に整数型結果を形成する。浮動小数点ユニットは浮動
小数点命令を実行し、各浮動小数点命令毎に浮動小数点
型結果を形成する。データパスは命令パイプライン内の
連続的な段の間でデータを通信するため整数ユニットと
浮動小数点ユニットとにより共有される。
パイプライン処理のためのマイクロプロセッサである。
各プログラム命令は、整数プログラム命令又は浮動小数
点プログラム命令のいずれかにより構成される。回路
は、複数のプログラム命令を同時に処理し、少なくとも
一つの整数型オペランドから整数型結果を形成するため
整数命令を実行し、少なくとも一つの浮動小数点型オペ
ランドから浮動小数点型結果を形成するため浮動小数点
命令を実行し、整数型結果及び少なくとも一つの整数型
オペランドを整数ユニットに通信し、浮動小数点型結果
及び少なくと一つの浮動小数点型オペランドを浮動小数
点ユニットに通信するため設けられている。
数点値を、マイクロプロセッサ内の共有データパスを介
して夫々整数ユニット及び浮動小数点ユニットに通信す
る方法である。各整数値は、少なくとも一つの整数型オ
ペランド又は整数型結果により構成される。各浮動小数
点値は、少なくとも一つの浮動小数点型オペランド又は
浮動小数点型結果により構成される。上記方法は命令を
マイクロプロセッサに供給する段階を含む。命令は、整
数命令又は浮動小数点命令のいずれかである。命令は、
命令のタイプに依存して、整数ユニット又は浮動小数点
ユニットのいずれかの実行のため発行される。一般的に
言うと、発行された命令が整数命令であるならば、整数
型結果を形成するため整数ユニットを用いて実行され
る。しかし、発行された命令が整数乗算の場合、整数乗
算は浮動小数点乗算装置により実行され、発行された命
令が整数除算の場合、整数除算は浮動小数点除算装置に
より実行される。発行された命令が浮動小数点命令であ
るならば、浮動小数点型結果を形成するため浮動小数点
ユニットを用いて実行される。整数型結果又は浮動小数
点型結果は、共有データパスを介して通信される。
良の実施モードを説明するが、当業者は、本発明の最良
の実施モードの説明から本発明の他の実施例を容易に理
解できる。本発明は他の異なる実施の形態が可能であ
り、幾つかの実施の形態の細部は本発明の精神及び範囲
から逸脱することなく、種々の明らかな観点に関して変
更することが可能である。以下の添付図面及び詳細な説
明は、本質的に本発明の例示であり、本発明はこれらの
例に限定されないことに注意すべきである。
セッサ9の機能的なブロック図である。マイクロプロセ
ッサ9は、複合形の整数ユニット/浮動小数点ユニット
コントローラ(IU/FPC)10と、独立した浮動小
数点ユニット(FPU)22とを含む。好ましくは、マ
イクロプロセッサ9は、SPARC(登録商標)アーキ
テクチャ仕様に準拠した縮小命令セットコンピュータ
(RISC)設計を利用し、マイクロプロセッサ9が多
数のプログラム命令を並列的に処理することを可能にさ
せる論理命令パイプライン11を有する単一命令発行プ
ロセッサである。“SPARC”は、カリフォルニア州
メンロパークのSPARCインターナショナル社の登録
商標である。SPARC(登録商標)のRISCアーキ
テクチャ仕様に関する一般的な情報は、参考のため引用
した“The SPARC Architecture Manual ”, Version 8,
SPARC International, Inc., 1992 から得られる。新
しいプログラム命令は、各マシンサイクル中に命令パイ
プライン11内に受けられ、処理が終了するまで連続的
なサイクル毎に一段ずつ進む。その結果として、各プロ
グラム命令の処理は、命令パイプライン11内に既に存
在する他のプログラム命令と時間的に重なり合うので、
処理スループットが増加する。
ログラム命令を、メモリにアクセスするロード命令及び
ストア命令と、算術命令と、論理命令とに制限する。マ
イクロプロセッサ9の場合に、プログラム命令フォーマ
ットは、32ビットずつのメモリの境界に従って、即
ち、32ビットメモリバウンダリに基づいて並べられ、
演算コード(オペコード)フィールド及びレジスタアド
レスフィールドからなる均一配置を利用する。さらに、
マイクロプロセッサ9は、命令及びプログラムデータ
を、プログラム命令を格納する命令キャッシュ(図示し
ない)と、プログラムデータを格納するデータキャッシ
ュ(図示しない)とに分割するため、Harvard (Aiken)
メモリアーキテクチャを採用する。
動小数点命令は、マイクロプロセッサ9内に統合された
独立した機能的ユニット、即ち、整数ユニット/浮動小
数点ユニットコントローラ10内に統合され整数命令を
処理する整数ユニット(IU)27と、浮動小数点命令
を処理する浮動小数点ユニット(FPU)22によって
夫々処理される。整数ユニット/浮動小数点ユニットコ
ントローラ10内に統合された浮動小数点コントローラ
28が整数ユニット/浮動小数点ユニットコントローラ
10と浮動小数点ユニット22との間の浮動小数点命令
のディスパッチ、同期及び終了を制御するとしても、浮
動小数点ユニット22は整数ユニット/浮動小数点ユニ
ットコントローラ10とは別個の機能的ユニットとして
浮動小数点演算を実行する。整数ユニット27は、整数
命令を実行する汎用レジスタ(図示しない)を含み、ロ
ードメモリアドレス及びストアメモリアドレスを計算
し、プログラムカウンタ(PC)(図示しない)を保持
することにより、マイクロプロセッサ9の全体的な動作
を制御する。
は、論理命令パイプライン11の最初の7段の論理段、
即ち発行(ISSUE)段12と、フェッチ(FETC
H)段13と、デコード(DECODE)段14と、実
行(EXECUTE)段15と、メモリ(MEMOR
Y)段16と、遅延(DEFER)段17と、書込(W
RITE)段18とを含む。浮動小数点コントローラ2
8は、命令パイプライン11の最後の5段の論理段、即
ち、メモリ(MEMORY)段16と、遅延(DEFE
R)段17と、書込(WRITE)段18と、浮動小数
点遅延(FP DEFER)段19と、浮動小数点書込
(FP WRITE)段20とを含む。図2において2
7’−28’で示されているメモリ段16と、遅延段1
7と、書込段18とからなる論理段は、整数ユニット2
7と浮動小数点コントローラ28の両方の処理の一部を
なす。
サブユニットにより構成される。浮動小数点算術論理装
置(FP−ALU)23は、浮動小数点の加算、減算、
比較及び変換命令を実行する。浮動小数点乗算器(FP
−MUL)24は浮動小数点の乗算を実行する。浮動小
数点除算/平方根ユニット(FP−DIV/SQRT)
25は、浮動小数点の除算及び平方根計算を実行する。
上記実施例において、浮動小数点算術論理装置23及び
浮動小数点乗算器24は、オペランドのタイプとは無関
係に約3.5マシンサイクル内に浮動小数点型結果を生
成し、浮動小数点除算/平方根ユニット25は約25マ
シンサイクル内に浮動小数点型結果を生成する。
命令を同時に実行するため整数ユニット/浮動小数点ユ
ニットコントローラ10内に統合される。命令パイプラ
イン11は、処理スループットを増加するため同期的な
形で整数命令及び浮動小数点命令の並列処理を可能にさ
せる。データ値は一時的停止又は遅れを生ずることなく
転送され得るので、オペランド、結果及びバイパスデー
タパスは、マイクロプロセッサ9にオペランドタイプと
は関係なく1サイクル当たり略1命令を完了させる。さ
らに、整数命令及び浮動小数点命令の各命令は、入力と
して少なくとも1個のオペランドを要求し、中間的な値
を計算する場合があり、出力として結果を発生する。こ
れらの値は全て、特定のパイプライン段に依存して、オ
ペランド、結果又はバイパスデータパスと共に転送され
得る。以下、命令パイプライン11の段を説明する。
(EXECUTE)段15からプログラムカウンタ(P
C)(図示しない)を介して命令仮想アドレスIVA
[31:2]を受け、命令仮想アドレスIVA[31:
2]を命令キャッシュ(図示しない)に送出することに
より、プログラム命令を発行する。
命令キャッシュ(図示しない)からプリフェッチバッフ
ァ(図示しない)に32ビットプログラム命令の対ID
[63:0]を受けることにより、プログラム命令をフ
ェッチする。これにより、分岐プログラム命令の場合の
1サイクルのペナルティーが回避される。
め、フェッチ段13からプログラム命令を受け、二つの
整数型オペランド%rs1及び%rs2を生成すること
により単一プログラム命令をデコードする。上記オペラ
ンドは、整数ユニットレジスタファイル21から読み出
されるか、或いは、実行(EXECUTE)段15、メ
モリ(MEMORY)段16、遅延(DEFER)段1
7若しくは書込(WRITE)段18から転送される。
整数ユニットレジスタファイル21は、整数型オペラン
ドを一時的に格納するため使用される。
段15は、整数ユニット算術論理装置(IU−ALU)
(図示しない)と、32ビットの左右両方向シフタ(図
示しない)とを含む。シフタ及び整数ユニット算術論理
装置は、整数算術命令を実行するが、浮動小数点乗算器
24は整数乗算を行う。特に、整数ユニット算術論理装
置は、加算命令と、ブーリアンAND(論理積)、OR
(論理和)及びXOR(排他的論理和)命令とを行う。
命令仮想アドレスIVA[31:0]は、プログラムカ
ウンタ(PC)へディスパッチされ、データ仮想アドレ
スDVA[31:0]はデータキャッシュにディスパッ
チされる。実行段15は、以下に詳述するように、全て
の浮動小数点命令を浮動小数点ユニット22に発行す
る。
し、又は、命令パイプライン11、浮動小数点ユニット
22及びデータキャッシュとの間で64ビットのデータ
を受け、64ビットのデータを送出することにより、整
数ユニットロード命令、整数ユニットストア命令、浮動
小数点ユニットロード命令、若しくは、浮動小数点ユニ
ットストア命令を行う。ロード命令中に、全てのデータ
がストア整列装置によって並べられ、空きが生じたとき
データキャッシュに書き込むためストア・データ・ホー
ルディング・レジスタ(図示しない)に通知される。
トレジスタファイル21に送られた書込データを削除す
る機会を与えることにより、命令実行の同時性を補助す
る。 (7)書込(WRITE)段 書込段は、遅延段17から整数型結果を受け、その整数
型結果を整数ユニットレジスタファイル21に書き込む
ことにより、整数型結果を書き出す。また、浮動小数点
除算及び平方根命令が特別の浮動小数点除算又は平方根
ホールディングスロット(図示しない)に送られる。
R)段19 浮動小数点遅延段は、算術演算及び乗算演算を含む全て
の浮動小数点命令の終了を同期させる。さらに、通知さ
れた浮動小数点除算及び平方根命令が完了される。算
術、論理及び乗算命令は、命令パイプライン11と同期
して4サイクルで終了し、一方、除算及び平方根命令は
略25サイクルで終了する。
E)段20 浮動小数点書込段は浮動小数点型結果を書き出す。浮動
小数点レジスタファイル26に通知されたあらゆる浮動
小数点書込命令が書き込まれ、又は、あらゆる間違いの
ある浮動小数点命令が浮動小数点誤りキューに挿入され
る。また、浮動小数点状態レジスタが更新される。
の間で同時性を達成し、命令処理スループットを増加さ
せるため、マイクロプロセッサ9は、整数ユニット/浮
動小数点ユニットコントローラ11と浮動小数点ユニッ
ト22との間で整数データ及び浮動小数点データを通信
する共有データパスを利用する。整数ユニット27と浮
動小数点ユニット22は共に、命令パイプライン11の
種々の段のレジスタの間でオペランド及び結果を転送す
るため、バイパスパスを含むデータパスを必要とする。
後述するように、上記データパスの中の特定のセクショ
ンは、メモリ段16から書込段18までの間で共有され
る。
14から浮動小数点書込段20までで処理される。全て
の浮動小数点命令は、デコード段14において構造上及
びオペランドの障害が試験される。浮動小数点命令オペ
ランドは、実行段15において浮動小数点レジスタから
集められる。浮動小数点コントローラ(FPC)28
は、デコード段17から書込段20までの間で動作し、
浮動小数点命令及びオペランドの浮動小数点ユニット2
2へのディスパッチ、並びに、浮動小数点ユニット22
からの浮動小数点型結果の受け取りを調整することによ
り、浮動小数点ユニット22の動作を制御する。浮動小
数点命令は、浮動小数点ユニット22によりメモリ段1
6から実行されはじめ、約3.5サイクル経過後に浮動
小数点遅延段19で終了する。但し、浮動小数点除算及
び平方根命令は、約25サイクルで終了する。浮動小数
点型結果は、浮動小数点書込段20において浮動小数点
レジスタファイルに書き込まれる。浮動小数点レジスタ
ファイル、又は、3エントリ形浮動小数点誤りキューの
いずれかが、浮動小数点書込段20の間に、浮動小数点
状態レジスタ(FSR)と共に書き込まれる。
ルにつき1個の浮動小数点命令を発行する。全ての浮動
小数点コピー命令及びロード命令はメモリ段16で終了
するが、浮動小数点型結果は、以下に説明するように浮
動小数点遅延段19まで共有データパスを用いる命令パ
イプライン11の中でパイプライン化される。浮動小数
点算術論理装置23及び浮動小数点乗算器24用の浮動
小数点命令は、オペランド若しくは結果の異常又は正常
とは無関係に、浮動小数点遅延段19で終了し、一方、
浮動小数点除算/平方根ユニット25は、メモリ段1
6、遅延段17及び書込段18の間でパイプライン化さ
れる。その後、これらの命令は、浮動小数点除算/平方
根ホールディングスロット(図示しない)に入れられ
る。
実行段15の間に集められ、浮動小数点命令実行はメモ
リ段16の間に始まる。浮動小数点ユニット22は、3
2ビット(シングルワード)又は64ビット(ダブルワ
ード)のいずれの値でも動作し得るので、浮動小数点ユ
ニット22内のデータパスは64ビット幅である。シン
グルワードオペランドは、レジスタ番号に従ってオペラ
ンド及び迂回データパス上に並べられる。特に、浮動小
数点レジスタ%f0(図示しない)に送られたシングル
ワードはビット[63:32]を使用し、一方、浮動小
数点レジスタ%f25(図示しない)から読み出された
シングルワードはビット[31:0]を使用する。2個
の異なる32ビット値は1個の64ビットオペランドを
形成するため結合することができるので、第2浮動小数
点型オペランド(ビット[63:32])のためのバイ
パスデータパスは、第1浮動小数点型オペランド(ビッ
ト[31:0])のためのバイパスデータパスとは別個
である。整数ストア命令及び浮動小数点ストア命令の両
方のためのデータは実行段15で集められるので、整数
ユニット27及び浮動小数点ユニット22は、図3を参
照して詳述するように第2オペランド[31:0]のた
めの32ビットバイパスデータパスを共有することが可
能である。
クルで終了する。しかし、その結果は3段後方にある書
込段18まで格納されない。浮動小数点命令は、典型的
に、メモリ段16から始まり浮動小数点遅延段19で終
了する3.5サイクルで完了する。その結果として、整
数命令処理及び浮動小数点命令処理は、(図2に示され
る如く)メモリ段16と、遅延段17と、書込段18と
からなる3段の間で重なり合う。
ット22のための共有データパスの図である。図3に示
された回路を通じて命令パイプラインにより使用される
データパスは、9本の別々のデータパスであるが、それ
らは重なり合う。同図に示された全てのラインは32ビ
ット幅である。5本のデータパスが整数命令を処理する
ため使用され、4本のデータパスが浮動小数点命令を処
理するため使用される。本発明の好ましい実施例におい
て、命令パイプラインの各段で回路内に存在するデータ
は、整数データ又は浮動小数点データのいずれかであ
る。
ランドに対する入力データを選択する。第2マルチプレ
クサ(MUX2)32は第2整数型オペランドに対する
データを選択する。入力パスは各オペランドに対し同じ
であり、図の明瞭さの便宜のため図3から省かれている
第2マルチプレクサ(MUX2)32のための入力パス
及び後述する関連したバイパス回路についての説明は行
わない。入力データは、バイパスパスからのデータと、
実行中の命令の二つのオペランドフィールドからのデー
タとを含む。
(MUX1)30の入力は、ライン34を介した整数ユ
ニットレジスタファイル21からの32ビット値、処理
されている整数命令の選択されたフィールドにより指定
されるようなライン36上の直接又は零オペランド、又
は、最後に発生された整数型結果を含むライン38上の
バイパス整数型オペランドを含む。バイパス回路につい
ては以下に詳述する。制御ライン(図示しない)は、ラ
イン42を介して第3マルチプレクサ(MUX3)40
に転送される第1マルチプレクサ(MUX1)30の入
力を選択する。第3マルチプレクサ(MUX3)40
は、入力として第1マルチプレクサ(MUX1)30の
出力又はデータキャッシュ(図示しない)からのデータ
を取る。データキャッシュからのデータはライン41を
介して到達し、ロード整列装置43によって処理され
る。ロード整列装置43は、整数ユニット算術論理装置
50により要求される選択されたワードバウンダリ及び
バイトバウンダリに基づいてデータキャッシュからのデ
ータを並べ、そのデータをライン84を介して第3マル
チプレクサ(MUX3)40に転送する。第3マルチプ
レクサ(MUX3)40は、選択された第1整数型オペ
ランドを転送し、そのオペランドは第1実行レジスタ4
4に格納される。同様に、第2マルチプレクサ(MUX
2)32は、ライン480を用いて第4マルチプレクサ
(MUX4)46を経由して第2実行レジスタ48へ転
送する第2整数型オペランドを選択する。
1実行レジスタ44及び第2実行レジスタ48からフェ
ッチされ、整数ユニット算術論理装置(IU ALU)
50は2個の整数型オペランドに関して算術又は論理演
算を行う。演算の整数型結果は、常にライン52を介し
て第5マルチプレクサ(MUX5)54に転送され、第
1メモリレジスタ56に格納されるが、ライン58を介
して第1整数型オペランドバイパスパスに送られても良
い。第1整数型オペランドバイパスパスは、第6マルチ
プレクサ(MUX6)60に至るライン5上に整数ユニ
ット算術論理装置50の出力を含む。デコード段14の
間に処理されている命令が、実行段15において更新さ
れた直後の整数ユニットレジスタファイル21からのオ
ペランドであって、未だ整数ユニットレジスタファイル
21に書き直されていないオペランドを必要とするなら
ば、このオペランドは、上記のデコード段回路に返送さ
れる。このパスは、第6マルチプレクサ(MUX6)6
0を第1マルチプレクサ(MUX1)30に接続するラ
イン38として示されている。
メモリレジスタ56からライン64を介して第7マルチ
プレクサ(MUX7)62に転送され、次に、ライン6
8を介して第8マルチプレクサ(MUX8)66に送ら
れる。メモリ段16の間の整数型結果が第1整数型オペ
ランドとして必要であるならば、ライン70を介して整
数型結果を第9マルチプレクサ(MUX9)72に転送
し、次に、ライン74を介して第6マルチプレクサ(M
UX6)60に送ることにより、第1整数型オペランド
バイパスパスを介して転送される。整数型結果は、常
に、第1遅延レジスタ76に書き込まれる。
80を用いて第1遅延レジスタ76から第10マルチプ
レクサ(MUX10)78を通して整数ユニットレジス
タファイル21まで転送される。書込段18中の整数型
結果が第1整数型オペランドとして必要であるならば、
整数型結果をライン82を介して第9マルチプレクサ
(MUX9)72に転送することによって、第1整数型
オペランドバイパスパスにより転送される。
命令(即ち、データキャッシュからの整数データによる
整数ユニットレジスタファイル21内のレジスタのロー
ド)であるとき、オペランド発生処理は算術又は論理命
令に対する処理と略同じである。しかし、算術又は論理
演算を行う代わりに、整数ユニット算術論理装置50
は、選択されたレジスタにロードされるべきデータのア
ドレスを計算する。アドレス及びレジスタ情報は、ライ
ン34及び第2整数型オペランド用のライン(図示しな
い)を介して命令から得られた直後のオペランドであ
る。
が上記の如く決められる。実行段15の間に、整数ユニ
ット算術論理装置は、ロードされるべきデータのデータ
キャッシュ内アドレスを計算する。このアドレスは図3
に示されないパスを介してデータキャッシュに転送され
る。メモリ段16の間に、ロード整列装置43は、整数
ユニット算術論理装置により計算されたアドレスによっ
てアドレス指定されたデータをライン41を介してデー
タキャッシュから受容し、このデータをライン86を介
して第8マルチプレクサ(MUX8)66に転送する。
データは、次に、第1遅延レジスタ76に格納される。
書込段18の間に、データは、ライン80を介して、第
10マルチプレクサ(MUX10)78を経由して整数
ユニットレジスタファイル21内の選択されたレジスタ
に転送される。
令であるとき(即ち、整数ユニットレジスタファイル2
1のレジスタからの整数データをデータキャッシュ内の
データ格納場所に格納するとき)、オペランド発生処理
は、算術又は論理命令の処理とほぼ同様である。しか
し、算術又は論理演算を行う代わりに、整数ユニット算
術論理装置50は、データキャッシュに格納されるデー
タのアドレスを計算する。アドレス及びレジスタ情報
は、ライン34及び第2整数型オペランド用のライン
(図示しない)を介して命令から得られた直後のオペラ
ンドである。
が上記の如く決められる。実行段15の間に、整数ユニ
ット算術論理装置は、ストアされるべきデータのデータ
キャッシュ内アドレスを計算する。このアドレスは、ラ
イン88を介して整数ユニットレジスタファイル21内
の選択されたレジスタから受けられ、第5マルチプレク
サ(MUX5)54により転送され、第1メモリレジス
タ56に格納される。メモリ段16の間に、このデータ
は、ライン6を介して第7マルチプレクサ(MUX7)
62を通過し、ライン70を介してストア整列装置90
まで転送される。ストア整列装置90はロード整列装置
43の逆の動作を行う。ストア整列装置90は、データ
キャッシュの要求に従ってデータを並べる。データは、
次に、第1ストアデータレジスタ92に格納される。書
込段18の間に、データは、ライン94を介して、デー
タキャッシュ内の指定された格納場所に転送される。
タパス 本発明は、後続の命令による即時使用のためパイプライ
ン内の命令処理の中間結果をパイプラインの前段に返送
する能力を提供する。例えば、値“A”が実行段15の
間に計算される状況を想定する。計算された値“A”
は、パイプラインの前方の段の命令によりオペランドと
して必要とされる可能性があるときには、実行段の次の
段において依然として命令パイプライン内に在り、整数
ユニットレジスタファイル21内のレジスタに格納され
ていない。転送能力が設けられていないならば、命令パ
イプラインは更新された値“A”が整数ユニットレジス
タファイルに書き込まれ得るまで遅延される必要があ
る。そうしなければ、“A”をひつようとする命令の処
理は最後に計算された“A”の値を利用できない。転送
能力は、計算されたデータを必要に応じて命令パイプラ
インの前方の段に返送することにより上記の問題を回避
する。
べき整数データは、2通りの場合に命令パイプラインに
返送される。第1の場合はメモリ段16の間に生じる。
データが第8マルチプレクサ(MUX8)66に到達し
たとき、データはライン96を介して第11マルチプレ
クサ(MUX11)98に転送される。第11マルチプ
レクサ(MUX11)98は、データがライン100及
び102を介して第2メモリレジスタ104に転送され
るべきであるか否かを制御する。データが第2メモリレ
ジスタ104に渡された後、データは、第7マルチプレ
クサ(MUX7)62を介して、第9マルチプレクサ
(MUX9)72までのライン70から始まるバイパス
パスに転送される。第2メモリレジスタ104へのデー
タのロードは、第1メモリレジスタ56へのデータのロ
ードと同じクロックサイクルの間に行われる。第2の場
合は遅延段17の間に生じる。データが第10マルチプ
レクサ(MUX10)78に到達したとき、データはラ
イン106を介して第12マルチプレクサ(MUX1
2)108に転送される。第12マルチプレクサ(MU
X12)108はデータが第11マルチプレクサ(MU
X11)98を通って第2メモリレジスタ(MUX2)
104まで至るバイパスパスに合流すべきか否かを制御
する。
ス 本発明において、整数乗算命令及び整数除算命令の実行
は整数ユニット算術論理装置50によって行われない。
その代わりに、整数型オペランドが以下の方法で浮動小
数点ユニット22の浮動小数点乗算器24及び浮動小数
点除算/平方根ユニット25に転送される。メモリ段1
6の間に、オペランドデータは第8マルチプレクサ(M
UX8)66を介して転送され、ライン96により第1
1マルチプレクサ(MUX11)98に送られる。オペ
ランドデータは、次に、乗算命令又は除算命令のどちら
が処理されているかに依存して、ライン100を介して
浮動小数点ユニット22の適当なセクションに転送され
る。また、オペランドデータは、遅延段17の間に、第
1遅延レジスタ76から第10マルチプレクサ(MUX
10)78を通過し、ライン106を介して第12マル
チプレクサ(MUX12)108に転送される。オペラ
ンドデータは、次に、ライン100を介して浮動小数点
ユニット22の適当なセクションに転送される。次に、
浮動小数点ユニットは要求された演算を実行する。整数
型結果は浮動小数点ユニットからライン110及び11
2を介して整数ユニットに送られる。ライン110は整
数型結果のビット0からビット31までを伝達し、ライ
ン112は整数型結果のビット32からビット63まで
を伝達する。ビット0乃至31は、第14マルチプレク
サ(MUX14)114及び第15マルチプレクサ(M
UX15)116を介して第12マルチプレクサ(MU
X12)108に転送される。第12マルチプレクサ
(MUX12)108から結果データは、第11マルチ
プレクサ(MUX11)98を通過し、ライン100及
び102を介して第2メモリレジスタ104に転送され
る。整数型結果の下位32ビットは第7マルチプレクサ
(MUX7)62を通過し、ライン70から始まるバイ
パスパス内で使用され、或いは、第8マルチプレクサ
(MUX8)66、第1遅延レジスタ76及び第10マ
ルチプレクサ(MUX10)78を経由して、ライン8
0を介して整数ユニットレジスタファイルに出力され
る。整数型結果のビット32乃至64は、第16マルチ
プレクサ(MUX16)118、第17マルチプレクサ
(MUX17)120、第18マルチプレクサ(MUX
18)122及び第19マルチプレクサ(MUX19)
124を介して転送される。第19マルチプレクサ(M
UX19)124は、整数型結果のビット32乃至63
をライン126及び128を介して第3メモリレジスタ
130に転送する。
部分は、“Yレジスタ”(図3には図示されない)と称
されるレジスタに格納される。Yレジスタは、整数乗算
演算又は整数除算演算からの64ビット結果の中の上位
32ビットを保持する。Yレジスタは第13マルチプレ
クサ(MUX13)134までのライン132に接続さ
れる。Yレジスタは、参考のため引用した“the SPARC
Architecture Manual,Version 8", SPARC Internationa
l, Inc., 1992に詳細に説明されている。
のデータパス オペランド2個の浮動小数点命令には、浮動小数点加
算、浮動小数点減算、浮動小数点乗算、浮動小数点平方
根、整数から浮動小数点への変換、及び、浮動小数点か
ら整数への変換のような命令が含まれる。浮動小数点ユ
ニット22は、実行段15の間に浮動小数点命令を受け
るマイクロプロセッサアーキテクチャ内の別個の処理装
置である。しかし、浮動小数点型オペランドは、図3に
示された回路によって完成される。同図には第2浮動小
数点型オペランド用のパスだけが示されている。オペラ
ンド発生パスは第1浮動小数点型オペランド用の発生パ
スと同様である。
5の間に浮動小数点レジスタファイル26からフェッチ
される。第2浮動小数点型オペランド用のデータの中の
64ビットまでが、ビット0乃至31を伝達するライン
136と、ビット32乃至63を伝達するライン138
とを介して到達する。第2浮動小数点型オペランドが3
2ビットシングルワードからなる場合に、使用されてい
るレジスタのレジスタ番号に依存して、ビット0乃至3
1又はビット32乃至63のいずれか一方が使用され
る。ビット0乃至31は、第14マルチプレクサ(MU
X14)114と、第15マルチプレクサ(MUX1
5)116と、第12マルチプレクサ(MUX12)1
08と、第11マルチプレクサ(MUX11)98とを
通過し、ライン100を介して浮動小数点ユニット22
に転送される。或いは、第2浮動小数点型オペランドデ
ータのビット0乃至31は、メモリ段16、遅延段1
7、書込段18又は浮動小数点遅延段19の間に命令パ
イプラインから生ずる場合がある。第2浮動小数点型オ
ペランドデータは、メモリ段16の間にライン96を介
して第8マルチプレクサ(MUX8)6から、遅延段1
7の間にライン106を介して第1遅延レジスタ76及
び第10マルチプレクサ(MUX10)78から、書込
段18の間にライン156を介して第1書込レジスタ1
54から、浮動小数点遅延段19の間にライン160を
介して第1浮動小数点レジスタ156からオペランド発
生パスに転送される。他方、第2浮動小数点型オペラン
ドのビット32乃至63が、メモリ段16、遅延段1
7、書込段18又は浮動小数点遅延段19の間に命令パ
イプラインから生ずる場合がある。この第2浮動小数点
型オペランドは、メモリ段16の間にライン140を介
して第13マルチプレクサ(MUX13)134から、
遅延段17の間にライン144を介して第2遅延レジス
タ142から、書込段18の間にライン148を介して
第2書込レジスタ146から、浮動小数点遅延段19の
間にライン152を介して第2浮動小数点レジスタ15
0からオペランド発生パスに転送される。
果は、浮動小数点ユニット22からライン110及び1
12に返される。結果の中のビット0乃至31はライン
110上で受けられ、ビット32乃至63はライン11
2上で受けられる。ビット0乃至31は第20マルチプ
レクサ(MUX20)162に転送され、浮動小数点レ
ジスタファイル26に書き込まれる。ビット32乃至6
3は第21マルチプレクサ(MUX21)164に転送
され、浮動小数点レジスタファイル26に書き込まれ
る。
のデータパス オペランド1個の浮動小数点命令には、浮動小数点移動
(FPMOV)、浮動小数点否定(FPNEG)、浮動
小数点絶対値(FPABS)及び変換演算(例えば、整
数から倍精度浮動小数点への変換)のような命令が含ま
れる。浮動小数点ユニット22は上記命令を処理するた
め使用されず、第2浮動小数点型オペランドだけが単一
オペランドとして使用される。
5の間に浮動小数点レジスタファイル26からフェッチ
される。第1浮動小数点型オペランド用のデータの32
ビットが、ビット0乃至31を伝達するライン136、
又は、ビット32乃至63を伝達するライン138を介
して到達する。32ビットオペランドに対し二つの並列
したデータパスがあることに注意する必要がある。ビッ
ト0乃至31として指定されたデータは、第14マルチ
プレクサ(MUX14)114と、第15マルチプレク
サ(MUX15)116と、第12マルチプレクサ(M
UX12)108と、第11マルチプレクサ(MUX1
1)98とを通過し、ライン100を介して第2メモリ
レジスタ104に転送される。他方、ビット32乃至6
3として指定されたデータは、第16マルチプレクサ
(MUX16)118と、第17マルチプレクサ(MU
X17)120と、第18マルチプレクサ(MUX1
8)122と、第19マルチプレクサ(MUX19)1
24とを通過し、ライン126及び128を介して第3
メモリレジスタ130に転送される。かくして、実行段
15の間に、第2浮動小数点型オペランドの32ビット
データは、第2メモリレジスタ104又は第3メモリレ
ジスタ130のいずれか一方にロードされ、両方にロー
ドされることはない。上記メモリレジスタから、データ
が適当なデータパスに流れる。第2メモリレジスタ10
4がロードされた場合、データは第22マルチプレクサ
(MUX22)166を介して浮動小数点コピー装置1
68に転送される。浮動小数点コピー装置168は単一
オペランドに関して要求された演算を行う。その結果
は、メモリ段16の間に第8マルチプレクサ(MUX
8)6から第1遅延レジスタ76に、遅延段17の間に
第1遅延レジスタ76から第10マルチプレクサ(MU
X10)78を介して第1書込レジスタ154に、書込
段18の間に第1書込レジスタ154から第1浮動小数
点遅延レジスタ158に、浮動小数点書込段20の間に
第1浮動小数点レジスタ156から第20マルチプレク
サ(MUX20)162を介して浮動小数点レジスタフ
ァイル26に伝達される。同様に、第3メモリレジスタ
130がロードされた場合、データは第22マルチプレ
クサ(MUX22)166を介して浮動小数点コピー装
置168に転送される。浮動小数点コピー装置168は
単一オペランドに基づいて要求された演算を行う。その
結果は、メモリ段16の間に第13マルチプレクサ(M
UX13)134から第2遅延レジスタ142に、遅延
段17の間に第2遅延レジスタ142から第2書込レジ
スタ146に、書込段18の間に第2書込レジスタ14
6から第2浮動小数点遅延レジスタ150に、浮動小数
点書込段20の間に第2浮動小数点レジスタ150から
第21マルチプレクサ(MUX21)164を介して浮
動小数点レジスタファイル26に伝達される。
ス 命令パイプラインによって処理される命令が浮動小数点
ロード命令(即ち、データキャッシュからの浮動小数点
データによる浮動小数点レジスタファイル26内のレジ
スタのロード)であるとき、オペランド発生処理は固定
小数点算術命令に対する処理と略同じである。アドレス
及びレジスタ情報は、ライン34及び第2オペランド用
のライン(図示しない)を介して命令から得られた直後
のオペランドである。
如く決められる。実行段15の間に、整数ユニット算術
論理装置は、ロードされるべき浮動小数点データのデー
タキャッシュ内アドレスを計算する。このアドレスは図
3に示されないパスを介してデータキャッシュに転送さ
れる。メモリ段16の間に、ロード整列装置43は、整
数ユニット算術論理装置により計算されたアドレスによ
ってアドレス指定された浮動小数点データの32ビット
のシングルワード又は浮動小数点データの64ビットの
ダブルワードをライン41を介してデータキャッシュか
ら受容し、この浮動小数点データをライン86及び17
0を介して転送する。第2浮動小数点データが32ビッ
トのシングルワードからなるならば、使用されるレジス
タのレジスタ番号に依存して、ビット0乃至31又はビ
ット32乃至63のいずれか一方が使用される。浮動小
数点データのビット0乃至31は、ライン86を介して
第8マルチプレクサ(MUX8)66に転送される。浮
動小数点データのビット32乃至63は、ライン170
を介して第13マルチプレクサ(MUX13)に転送さ
れる。データのビット0乃至31は、第1遅延レジスタ
76に格納される。遅延段17の間に、データのビット
0乃至31は、第10マルチプレクサ(MUX10)7
8を介して第1書込レジスタ154に転送される。書込
段18の間に、データのビット0乃至31は第1浮動小
数点遅延レジスタ158に転送される。最後に、浮動小
数点書込段20の間に、データのビット0乃至31は第
20マルチプレクサ(MUX20)162に転送され、
次いで、浮動小数点レジスタファイル26に書き込まれ
る。同様に、データのビット32乃至63が第2遅延レ
ジスタ142に格納される。遅延段17の間に、データ
のビット32乃至63は、第2書込レジスタ146に転
送される。書込段18の間に、データのビット32乃至
63は第2浮動小数点遅延レジスタ150に転送され
る。最後に、浮動小数点書込段20の間に、データのビ
ット32乃至63は第21マルチプレクサ(MUX2
1)164に転送され、次いで、浮動小数点レジスタフ
ァイル26に書き込まれる。
ス 命令パイプラインにより処理される命令が浮動小数点ス
トア命令であるとき(即ち、浮動小数点レジスタファイ
ル26のレジスタからの浮動小数点データをデータキャ
ッシュ内のデータ格納場所に格納するとき)、オペラン
ド発生処理は、浮動小数点算術命令の処理とほぼ同様で
ある。従って、整数ユニット算術論理装置50は、第1
オペランド及び第2オペランドを使用してアドレスを計
算する。アドレス及びレジスタ情報は、ライン34及び
第2オペランド用のライン(図示しない)を介して命令
から得られた直後のオペランドである。ストアデータは
命令内の第3オペランドであるが、第14マルチプレク
サ(MUX14)114と、第16マルチプレクサ(M
UX16)118と、第15マルチプレクサ(MUX1
5)116と、第17マルチプレクサ(MUX170)
120と、第12マルチプレクサ(MUX12)108
と、第18マルチプレクサ(MUX18)122と、第
11マルチプレクサ(MUX11)98と、第19マル
チプレクサ(MUX19)124等を用いる第2浮動小
数点型オペランドパスのデータパス内に形成される。浮
動小数点データは浮動小数点レジスタファイルから取得
される。
如く決められる。実行段15の間に、整数ユニット算術
論理装置は、ストアされるべき浮動小数点データのデー
タキャッシュ内アドレスを計算する。このアドレスは、
ライン136及び138を介して浮動小数点レジスタフ
ァイル26内の選択されたレジスタから受けられる。浮
動小数点データは、32ビットを有するシングルワー
ド、又は、64ビットを有するダブルワードである。浮
動小数点データのビット0乃至31は、第14マルチプ
レクサ(MUX14)114と、第15マルチプレクサ
(MUX15)116と、第12マルチプレクサ(MU
X12)108と、第11マルチプレクサ(MUX1
1)98とを通過し、ライン100及び102を介して
転送され、第2メモリレジスタ104に格納される。浮
動小数点データのビット32乃至63は、第16マルチ
プレクサ(MUX16)118と、第17マルチプレク
サ(MUX170)120と、第18マルチプレクサ
(MUX18)122と、第19マルチプレクサ(MU
X19)124とを通過し、ライン126及び128を
介して転送され、第3メモリレジスタ130に格納され
る。メモリ段16の間に、このデータのビット0乃至3
1は、第2メモリレジスタ104から第7マルチプレク
サ(MUX7)62を通過しライン70を介してストア
整列装置90に転送される。ストア整列装置90はロー
ド整列装置43の逆の動作を行う。ストア整列装置90
は、データキャッシュの要求に従って浮動小数点データ
を並べる。データのビット32乃至63は、第3メモリ
レジスタ130からライン172を介してストア整列装
置90に転送される。遅延段17の間に、データのビッ
ト0乃至31は第1ストアデータレジスタ92に格納さ
れ、データのビット32乃至63は第2ストアデータレ
ジスタ174に格納される。データがストアデータレジ
スタに格納された後、データは、データキャッシュが利
用可能になるか、又は、後続のストア(及びそのデー
タ)が到達するまで、ストアデータレジスタ内に留ま
る。
に示されているが、当業者であれば、請求項に記載され
ているような本発明の範囲及び精神を逸脱することな
く、形式及び詳細に関して種々の変更をなし得ることが
わかるであろう。
スは命令パイプライン内の連続的な段の間でデータを通
信するため整数ユニットと浮動小数点ユニットとにより
共有されるので、混在する整数命令と実数命令とを処理
するため整数データ及び浮動小数点データを通信する際
の性能の低下、演算の複雑さ、及び、演算の遅れが回避
される利点が得られる。
ロセッサの機能的なブロック図である。
ラ 11 命令パイプライン 12 発行段 13 フェッチ段 14 デコード段 15 実行段 16 メモリ段 17 遅延段 18 書込段 19 浮動小数点遅延段 20 浮動小数点書込段 21 整数ユニットレジスタファイル 22 浮動小数点ユニット 23 浮動小数点算術論理装置 24 浮動小数点乗算器 25 浮動小数点除算/平方根ユニット 26 浮動小数点レジスタファイル 27 整数ユニット 28 浮動小数点コントローラ
Claims (32)
- 【請求項1】 複数の連続的な処理段を有する命令パイ
プライン内で、整数演算を行う整数命令及び浮動小数点
演算を行う浮動小数点命令が混在した命令を同時に処理
する処理装置において、 上記命令パイプライン内の浮動小数点命令を実行し、少
なくとも一つの浮動小数点型オペランドから浮動小数点
型結果を生成する浮動小数点ユニットと、 上記命令パイプライン内の整数命令を実行し、少なくと
も一つの整数型オペランドから整数型結果を生成する整
数ユニットと、 上記浮動小数点ユニットによる浮動小数点命令の同期及
び終了を制御する浮動小数点コントローラと、 上記浮動小数点ユニット、上記整数ユニット及び上記浮
動小数点コントローラにより共有され、上記命令パイプ
ライン内の連続的な段の処理中に上記浮動小数点ユニッ
ト、上記整数ユニット及び上記浮動小数点コントローラ
の間で整数型オペランド、整数型結果、浮動小数点型オ
ペランド及び浮動小数点型結果を通信する通信手段とか
らなる処理装置。 - 【請求項2】 上記通信手段に接続され、上記整数ユニ
ットにより形成された整数型結果を格納する第1のレジ
スタファイルを更に有する請求項1記載の処理装置。 - 【請求項3】 上記通信手段に接続され、上記浮動小数
点ユニットにより形成された浮動小数点型結果を格納す
る第2のレジスタファイルを更に有する請求項1記載の
処理装置。 - 【請求項4】 上記浮動小数点ユニットは、上記浮動小
数点命令から生じた浮動小数点型オペランドに基づいて
加算演算、減算演算及び変換演算を行う浮動小数点算術
論理装置を含む請求項1記載の処理装置。 - 【請求項5】 上記浮動小数点ユニットは、上記浮動小
数点命令から生じた浮動小数点型オペランドに基づいて
乗算演算を行う浮動小数点乗算器を含む請求項1記載の
処理装置。 - 【請求項6】 上記浮動小数点ユニットは、上記浮動小
数点命令から生じた浮動小数点型オペランドに基づいて
除算演算及び平方根演算を行う浮動小数点除算及び平方
根ユニットを含む請求項1記載の処理装置。 - 【請求項7】 上記通信手段は、上記整数ユニット及び
上記浮動小数点コントローラと統合されている請求項1
記載の処理装置。 - 【請求項8】 上記整数ユニットは、整数命令及び浮動
小数点命令用の命令アドレスを発行する手段を含む請求
項1記載の処理装置。 - 【請求項9】 上記整数ユニットは、整数命令及び浮動
小数点命令をフェッチする手段を含む請求項1記載の処
理装置。 - 【請求項10】 上記整数ユニットは、少なくとも一つ
の整数型オペランドを生成するため整数命令をデコード
する手段を含む請求項1記載の処理装置。 - 【請求項11】 上記整数ユニットは、整数命令から生
じた整数型オペランドに基づいて整数演算を実行し、浮
動小数点命令及び浮動小数点型オペランドを上記浮動小
数点ユニットにディスパッチする手段を含む請求項1記
載の処理装置。 - 【請求項12】 整数命令の実行の結果を格納する手段
を更に有する請求項1記載の処理装置。 - 【請求項13】 整数型結果の上記第1のレジスタファ
イルへの格納を取り消す手段を更に有する請求項2記載
の処理装置。 - 【請求項14】 整数型結果を上記第1のレジスタファ
イルに書き込む手段を更に有する請求項2記載の処理装
置。 - 【請求項15】 上記浮動小数点コントローラは、 上記浮動小数点ユニットによる浮動小数点命令の実行の
終了を同期させる手段と、 浮動小数点型結果を上記第2のレジスタファイルに書き
込む手段とを含む請求項3記載の処理装置。 - 【請求項16】 上記通信手段は、整数算術及び論理命
令の整数型オペランド並びに整数型結果を通信する第1
のデータパス手段を含む請求項1記載の処理装置。 - 【請求項17】 上記通信手段は、整数ロード命令の整
数型オペランド及び整数型結果を通信する第2のデータ
パス手段を含む請求項1記載の処理装置。 - 【請求項18】 上記通信手段は、整数ストア命令の整
数型オペランド及び整数型結果を通信する第3のデータ
パス手段を含む請求項1記載の処理装置。 - 【請求項19】 上記通信手段は、整数型オペランド及
び整数型結果を上記命令パイプライン内の先行する段に
通信する第4のデータパス手段を含む請求項1記載の処
理装置。 - 【請求項20】 上記通信手段は、整数型オペランド及
び整数型結果を上記命令パイプライン内の先行する段に
通信する第5のデータパス手段を含む請求項1記載の処
理装置。 - 【請求項21】 上記通信手段は、オペランド1個の浮
動小数点命令の少なくとも1個の浮動小数点型オペラン
ドと浮動小数点型結果とを通信する第6のデータパス手
段を含む請求項1記載の処理装置。 - 【請求項22】 上記通信手段は、オペランド2個の浮
動小数点命令の少なくとも2個の浮動小数点型オペラン
ドと浮動小数点型結果とを通信する第7のデータパス手
段を含む請求項1記載の処理装置。 - 【請求項23】 上記通信手段は、浮動小数点ロード命
令の浮動小数点型オペランド及び浮動小数点型結果を通
信する第8のデータパス手段を含む請求項1記載の処理
装置。 - 【請求項24】 上記通信手段は、浮動小数点ストア命
令の浮動小数点型オペランド及び浮動小数点型結果を通
信する第9のデータパス手段を含む請求項1記載の処理
装置。 - 【請求項25】 整数ユニット及び浮動小数点ユニット
を含み、た整数演算を行う整数命令と浮動小数点演算を
行う浮動小数点命令とが混在した命令を同時に処理する
処理システムにおいて、 整数型オペランドを受ける第1のレジスタ手段と、 整数型結果を発生させるべく上記第1のレジスタ手段か
ら得られた上記整数型オペランドに基づいて算術演算及
び論理演算を行う算術論理装置と、 上記整数型結果を受ける第2のレジスタ手段と、 上記整数型結果を上記第1のレジスタ手段に転送する第
1のバイパス手段と、 上記第2のレジスタ手段から上記整数型結果を受ける第
3のレジスタ手段と、 上記整数型結果を格納する第1のレジスタファイルと、 上記第3のレジスタ手段から上記第1のレジスタファイ
ルに上記整数型結果を転送する手段とかなる共有データ
パス。 - 【請求項26】 上記第3のレジスタ手段に接続され、
整数データを受容し、上記整数データを上記整数型結果
に並べ、上記整数型結果を上記第3のレジスタ手段に格
納するロード整列手段を更に有する請求項25記載の共
有データパス。 - 【請求項27】 上記第1のレジスタファイルから上記
第2のレジスタ手段に整数型オペランドを転送する手段
と、 上記第2のレジスタ手段に接続され、上記整数型オペラ
ンドを受容し、上記整数型オペランドを上記整数型結果
に並べるストア整列手段と、 上記整数型結果を受ける第4のレジスタ手段と、 上記第4のレジスタ手段から上記第1のレジスタファイ
ルに上記整数型結果を転送する手段とを更に有する請求
項25記載の共有データパス。 - 【請求項28】 整数乗算命令若しくは整数除算命令の
実行によって得られる整数型結果、又は、浮動小数点コ
ピー命令の実行によって得られる浮動小数点型結果を受
ける第5のレジスタ手段と、 上記第2のレジスタ手段から上記第5のレジスタ手段
に、整数型結果、整数型オペランド、浮動小数点型オペ
ランド又は浮動小数点型結果を転送する第2のバイパス
手段と、 上記第3のレジスタ手段から上記第2のバイパス手段
に、整数型結果、浮動小数点型オペランド又は浮動小数
点型結果を転送する第3のバイパス手段とを更に有する
請求項25記載の共有データパス。 - 【請求項29】 整数型オペランドを上記浮動小数点ユ
ニットに転送する手段と、 上記浮動小数点ユニットから整数型結果を受ける手段
と、 上記整数型結果を上記第3のバイパス手段に転送する手
段とを更に有する請求項28記載の共有データパス。 - 【請求項30】 浮動小数点型オペランド及び浮動小数
点型結果を格納する第2のレジスタファイルと、 上記第2のレジスタファイルから浮動小数点型オペラン
ドを受け、上記浮動小数点型オペランドを上記浮動小数
点ユニットに転送し、上記浮動小数点型オペランドを上
記第5のレジスタ手段に転送する手段と、 上記浮動小数点ユニットから上記浮動小数点型結果を受
け、上記浮動小数点型結果を上記第5のレジスタ手段に
転送する手段と、 上記第5のレジスタ手段から上記浮動小数点型結果を受
け、上記第5のレジスタ手段から上記浮動小数点型オペ
ランドを受ける第6のレジスタ手段と、 上記第6のレジスタ手段から上記第3のバイパス手段に
上記浮動小数点型オペランド又は上記浮動小数点型結果
を転送する第4のバイパス手段と、 上記第6のレジスタ手段から上記浮動小数点型結果を受
ける第7のレジスタ手段と、 上記第7のレジスタ手段から上記第4のバイパス手段に
上記浮動小数点型オペランド又は上記浮動小数点型結果
を転送する第5のバイパス手段と、 上記第7のレジスタ手段又は上記浮動小数点ユニットか
ら上記浮動小数点型結果を受け、上記浮動小数点型結果
を上記第2のレジスタファイルに格納する手段とを更に
有する請求項29記載の共有データパス。 - 【請求項31】 上記第3のレジスタ手段及び上記第5
のレジスタ手段に接続されている浮動小数点コピー装置
を更に有する請求項30記載の共有データパス。 - 【請求項32】 マイクロプロセッサ内の共有データパ
スを介して整数ユニットと浮動小数点ユニットと浮動小
数点コントローラとの間で、混在した整数型オペラン
ド、整数型結果、浮動小数点型オペランド及び浮動小数
点型結果を通信する方法において、 整数乗算及び整数除算を含む整数命令、又は、浮動小数
点コピー命令を含む浮動小数点命令のいずれかの実行の
命令を、上記命令が浮動小数点コピー命令、又は、整数
乗算命令若しくは整数除算命令以外の整数命令であると
き上記整数ユニットに発行し、上記命令が整数乗算命令
若しくは整数除算命令、又は、浮動小数点コピー命令以
外の浮動小数点命令であるとき上記浮動小数点ユニット
に発行する段階と、 上記命令が整数乗算命令又は整数除算命令であるとき、
上記共有データパスを介して上記整数型オペランドを受
ける段階と、 上記命令が浮動小数点命令であるとき、上記共有データ
パスを介して上記浮動小数点型オペランドを受ける段階
と、 上記発行された命令が整数命令であるとき整数型結果を
生成するため、又は、上記発行された命令が浮動小数点
コピー命令であるとき浮動小数点型結果を形成するた
め、上記発行された命令を上記整数ユニットにより実行
する段階と、 上記発行された命令が浮動小数点命令であるとき浮動小
数点型結果を形成するため、又は、上記発行された命令
が整数乗算命令若しくは整数除算命令であるとき整数型
結果を生成するため、上記発行された命令を上記浮動小
数点ユニットにより実行する段階と、 上記共有データパスを介して上記整数型結果及び上記浮
動小数点型結果を選択的に通信する段階とからなる方
法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US767953 | 1991-09-30 | ||
US3237496P | 1996-12-10 | 1996-12-10 | |
US08/767,953 US5887160A (en) | 1996-12-10 | 1996-12-17 | Method and apparatus for communicating integer and floating point data over a shared data path in a single instruction pipeline processor |
US032374 | 1996-12-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10228378A true JPH10228378A (ja) | 1998-08-25 |
JP3607476B2 JP3607476B2 (ja) | 2005-01-05 |
Family
ID=26708335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33721997A Expired - Fee Related JP3607476B2 (ja) | 1996-12-10 | 1997-12-08 | マイクロプロセッサ内の共有データパスを介して整数データ及び浮動小数点データを通信する方法並びに処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5887160A (ja) |
JP (1) | JP3607476B2 (ja) |
KR (1) | KR100507415B1 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5860000A (en) * | 1996-01-31 | 1999-01-12 | Hitachi Micro Systems, Inc. | Floating point unit pipeline synchronized with processor pipeline |
US6591361B1 (en) * | 1999-12-28 | 2003-07-08 | International Business Machines Corporation | Method and apparatus for converting data into different ordinal types |
US6725354B1 (en) * | 2000-06-15 | 2004-04-20 | International Business Machines Corporation | Shared execution unit in a dual core processor |
US7757066B2 (en) * | 2000-12-29 | 2010-07-13 | Stmicroelectronics, Inc. | System and method for executing variable latency load operations in a date processor |
US6963961B1 (en) * | 2001-07-09 | 2005-11-08 | Lsi Logic Corporation | Increasing DSP efficiency by independent issuance of store address and data |
US20060095723A1 (en) * | 2001-11-05 | 2006-05-04 | Moyer William C | Method and apparatus for interfacing a processor to a coprocessor |
US6944746B2 (en) * | 2002-04-01 | 2005-09-13 | Broadcom Corporation | RISC processor supporting one or more uninterruptible co-processors |
EP1365319B1 (en) * | 2002-04-01 | 2017-07-05 | QUALCOMM Incorporated | Risc processor supporting one or more uninterruptible co-processors |
GB2395298B (en) * | 2002-09-17 | 2007-02-14 | Micron Technology Inc | Flexible results pipeline for processing element |
JP2006520957A (ja) * | 2003-03-19 | 2006-09-14 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | マルチプロセッサシステムのタイプ変換ユニット |
US7290121B2 (en) * | 2003-06-12 | 2007-10-30 | Advanced Micro Devices, Inc. | Method and data processor with reduced stalling due to operand dependencies |
US20060101244A1 (en) * | 2004-11-10 | 2006-05-11 | Nvidia Corporation | Multipurpose functional unit with combined integer and floating-point multiply-add pipeline |
TWI278910B (en) * | 2005-08-09 | 2007-04-11 | Powerchip Semiconductor Corp | System and method for wafer visual inspection |
US8099583B2 (en) * | 2006-08-23 | 2012-01-17 | Axis Semiconductor, Inc. | Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing |
US8181003B2 (en) * | 2008-05-29 | 2012-05-15 | Axis Semiconductor, Inc. | Instruction set design, control and communication in programmable microprocessor cores and the like |
US8078833B2 (en) * | 2008-05-29 | 2011-12-13 | Axis Semiconductor, Inc. | Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions |
US8127262B1 (en) * | 2008-12-18 | 2012-02-28 | Xilinx, Inc. | Communicating state data between stages of pipelined packet processor |
US8150902B2 (en) | 2009-06-19 | 2012-04-03 | Singular Computing Llc | Processing with compact arithmetic processing element |
EP2866138B1 (en) * | 2013-10-23 | 2019-08-07 | Teknologian tutkimuskeskus VTT Oy | Floating-point supportive pipeline for emulated shared memory architectures |
US10474458B2 (en) | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
US10565036B1 (en) | 2019-02-14 | 2020-02-18 | Axis Semiconductor, Inc. | Method of synchronizing host and coprocessor operations via FIFO communication |
DE112020000874T5 (de) | 2019-03-15 | 2021-11-11 | Intel Corporation | Systeme und Methoden zum Aktualisieren von speicherseitigen Caches in einer Multi-GPU-Konfiguration |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228496A (en) * | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
US4851990A (en) * | 1987-02-09 | 1989-07-25 | Advanced Micro Devices, Inc. | High performance processor interface between a single chip processor and off chip memory means having a dedicated and shared bus structure |
US5179680A (en) * | 1987-04-20 | 1993-01-12 | Digital Equipment Corporation | Instruction storage and cache miss recovery in a high speed multiprocessing parallel processing apparatus |
JPH0769821B2 (ja) * | 1988-03-04 | 1995-07-31 | 日本電気株式会社 | 情報処理装置におけるバイパスライン制御方式 |
US4901267A (en) * | 1988-03-14 | 1990-02-13 | Weitek Corporation | Floating point circuit with configurable number of multiplier cycles and variable divide cycle ratio |
US5159680A (en) * | 1988-07-28 | 1992-10-27 | Sun Microsystems, Inc. | Risc processing unit which selectively isolates register windows by indicating usage of adjacent register windows in status register |
US5083263A (en) * | 1988-07-28 | 1992-01-21 | Sun Microsystems, Inc. | BISC with interconnected register ring and selectively operating portion of the ring as a conventional computer |
US5109514A (en) * | 1988-07-28 | 1992-04-28 | Sun Microsystems, Inc. | Method and apparatus for executing concurrent CO processor operations and precisely handling related exceptions |
US4965717A (en) * | 1988-12-09 | 1990-10-23 | Tandem Computers Incorporated | Multiple processor system having shared memory with private-write capability |
US5134693A (en) * | 1989-01-18 | 1992-07-28 | Intel Corporation | System for handling occurrence of exceptions during execution of microinstructions while running floating point and non-floating point instructions in parallel |
US5109495A (en) * | 1989-02-03 | 1992-04-28 | Digital Equipment Corp. | Method and apparatus using a source operand list and a source operand pointer queue between the execution unit and the instruction decoding and operand processing units of a pipelined data processor |
US5226166A (en) * | 1989-02-10 | 1993-07-06 | Mitsubishi Denki K.K. | Parallel operation processor with second command unit |
US5204828A (en) * | 1989-02-10 | 1993-04-20 | Intel Corporation | Bus apparatus having hold registers for parallel processing in a microprocessor |
US5293500A (en) * | 1989-02-10 | 1994-03-08 | Mitsubishi Denki K.K. | Parallel processing method and apparatus |
US5210841A (en) * | 1990-01-30 | 1993-05-11 | Advanced Micro Devices, Inc. | External memory accessing system |
US5222240A (en) * | 1990-02-14 | 1993-06-22 | Intel Corporation | Method and apparatus for delaying writing back the results of instructions to a processor |
EP0459232B1 (en) * | 1990-05-29 | 1998-12-09 | National Semiconductor Corporation | Partially decoded instruction cache and method therefor |
US5265213A (en) * | 1990-12-10 | 1993-11-23 | Intel Corporation | Pipeline system for executing predicted branch target instruction in a cycle concurrently with the execution of branch instruction |
EP0651321B1 (en) * | 1993-10-29 | 2001-11-14 | Advanced Micro Devices, Inc. | Superscalar microprocessors |
-
1996
- 1996-12-17 US US08/767,953 patent/US5887160A/en not_active Expired - Lifetime
-
1997
- 1997-12-08 JP JP33721997A patent/JP3607476B2/ja not_active Expired - Fee Related
- 1997-12-09 KR KR1019970066937A patent/KR100507415B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JP3607476B2 (ja) | 2005-01-05 |
KR100507415B1 (ko) | 2005-12-06 |
KR19980063924A (ko) | 1998-10-07 |
US5887160A (en) | 1999-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3607476B2 (ja) | マイクロプロセッサ内の共有データパスを介して整数データ及び浮動小数点データを通信する方法並びに処理装置 | |
US6560697B2 (en) | Data processor having repeat instruction processing using executed instruction number counter | |
US5923871A (en) | Multifunctional execution unit having independently operable adder and multiplier | |
EP0789297B1 (en) | Data processor loading data and performing multiply-add operation in parallel | |
USH1291H (en) | Microprocessor in which multiple instructions are executed in one clock cycle by providing separate machine bus access to a register file for different types of instructions | |
US5185872A (en) | System for executing different cycle instructions by selectively bypassing scoreboard register and canceling the execution of conditionally issued instruction if needed resources are busy | |
US6668316B1 (en) | Method and apparatus for conflict-free execution of integer and floating-point operations with a common register file | |
US8069340B2 (en) | Microprocessor with microarchitecture for efficiently executing read/modify/write memory operand instructions | |
US5802339A (en) | Pipeline throughput via parallel out-of-order execution of adds and moves in a supplemental integer execution unit | |
US20120191767A1 (en) | Circuit which Performs Split Precision, Signed/Unsigned, Fixed and Floating Point, Real and Complex Multiplication | |
US5983336A (en) | Method and apparatus for packing and unpacking wide instruction word using pointers and masks to shift word syllables to designated execution units groups | |
EP1124181B1 (en) | Data processing apparatus | |
JPH09507592A (ja) | Riscプロセッサのユニファイド浮動小数点および整数データパス | |
WO2000045254A9 (en) | Floating point square root and reciprocal square root computation unit in a processor | |
US20030005261A1 (en) | Method and apparatus for attaching accelerator hardware containing internal state to a processing core | |
US6341300B1 (en) | Parallel fixed point square root and reciprocal square root computation unit in a processor | |
US5991863A (en) | Single carry/borrow propagate adder/decrementer for generating register stack addresses in a microprocessor | |
JP3578883B2 (ja) | データ処理装置 | |
US5961575A (en) | Microprocessor having combined shift and rotate circuit | |
US6115730A (en) | Reloadable floating point unit | |
US6728741B2 (en) | Hardware assist for data block diagonal mirror image transformation | |
US6012139A (en) | Microprocessor including floating point unit with 16-bit fixed length instruction set | |
EP1089166A2 (en) | An integer instruction set architecture and implementation | |
JP2988965B2 (ja) | パイプライン情報処理回路 | |
US5784634A (en) | Pipelined CPU with instruction fetch, execution and write back stages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040527 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20040527 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20040609 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040622 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040820 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040820 |
|
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: 20040914 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041007 |
|
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: 20071015 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081015 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081015 Year of fee payment: 4 |
|
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: 20081015 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091015 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091015 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101015 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101015 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111015 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111015 Year of fee payment: 7 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111015 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: 20111015 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121015 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121015 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131015 Year of fee payment: 9 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |