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
Application number
JP9337219A
Other languages
English (en)
Other versions
JP3607476B2 (ja
Inventor
Lowrittn Morguns
ロウリツン モーグンス
A Weiss Richard
エイ ワイス リチャード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPH10228378A publication Critical patent/JPH10228378A/ja
Application granted granted Critical
Publication of JP3607476B2 publication Critical patent/JP3607476B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • G06F9/3828Bypassing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute

Abstract

(57)【要約】 【課題】 本発明は、性能低下、演算の複雑さ及び遅れ
が回避された整数データ及び浮動小数点データの通信方
法及び処理装置の提供を目的とする。 【解決手段】 本発明のマイクロプロセッサが同時に実
行する命令には、整数命令と浮動小数点命令とが混在し
て含まれ得る。命令パイプラインは複数の命令を同時に
実行するため連続的な段を有する。複数の連続的な段の
中の各段は複数の命令の中の別々の命令に基づいて同時
に動作する。整数ユニットは整数命令を実行し、各整数
命令毎に整数型結果を形成する。浮動小数点ユニットは
浮動小数点命令を実行し、各浮動小数点命令毎に浮動小
数点型結果を形成する。データパスは命令パイプライン
内の連続的な段の間でデータを通信するため整数ユニッ
トと浮動小数点ユニットとにより共有される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的に共有デー
タパスを介して整数データ及び浮動小数点データを転送
するマイクロプロセッサ並びに方法に係わり、特に、共
有データパスを有し、統合された整数ユニット及び浮動
小数点ユニットに夫々整数データ及び浮動小数点データ
を通信する複数のパイプライン段を有するマイクロプロ
セッサに関する。
【0002】
【従来の技術】整数命令及び実数命令を別個に処理する
ことにより、1サイクル当たりに実行されるプログラム
命令数の測定から分かるように、典型的に処理スループ
ットが低下する。スループットの低下する原因は、実数
を処理する際に要求される複雑さ及び精度が整数の場合
よりも増大するためである。さらに、実数及び整数は異
なる内部機械語表記の形式により表現される。浮動小数
点表記は実数を表現するため使用され、他のフォーマッ
トでも構わないが、典型的には符号ビット、指数部及び
小数部を含む。2の補数表記及び1の補数表記が整数を
表現するため使用され、他のフォーマットでも構わない
が、典型的には符号ビット及び大きさを含む。このよう
に表記に差異があるため、効率的なマイクロプロセッサ
設計はより複雑化する。
【0003】マイクロプロセッサの典型的な中央処理装
置(CPU)は、整数命令を実行する整数ユニット(I
U)とも称される算術論理装置(ALU)と、汎用レジ
スタの組とを含むが、場合によっては専用ハードウェア
が整数乗算及び除算のため使用される。加算又は減算の
ような単純な整数演算命令は、典型的に単一のマシンサ
イクル内に完了される。
【0004】“MIPS R4200”, Microprocessor Report,
May 1993, pp. 6-7、並びに、“R4200 MICROPROCESSO
R, R4200 Preliminary Datasheet Rev. 1.4”, MIPS Co
mputers, Inc., August 1994, pp. 1-37 に記載されて
いるように、整数表記の差異にも係わらず、整数ユニッ
トが浮動小数点命令を実行するため使用され得る。浮動
小数点表現と整数表現との間の変換は必要ないが、浮動
小数点演算の処理は整数ユニット演算よりも処理時間が
長いので性能が低下する。
【0005】Colwell 他に発行された米国特許第5,179,
680 号、イシダ他に発行された米国特許第5,226,166
号、及び、イシダ他に発行された米国特許第5,293,500
号明細書に開示されているように、専用浮動小数点ユニ
ット(FPU)は、整数命令と並列に浮動小数点命令を
実行するため選択的に利用され得る。しかし、この種の
浮動小数点ユニットは、整数ユニットと浮動小数点ユニ
ットとの間で浮動小数点型オペランド及び浮動小数点型
結果を通信するため別個のデータパスを必要とする。さ
らに、浮動小数点ユニットの命令の処理は、整数ユニッ
トの命令の処理と同期させる必要があるので、演算上の
複雑さ及び遅延が更に追加される。
【0006】
【発明が解決しようとする課題】上記の如く、従来技術
のマイクロプロセッサは、混在する整数命令と実数命令
とを処理するため整数データ及び浮動小数点データを通
信する際に、性能が低下し、或いは、演算の複雑さ及び
遅れが増加するという欠点がある。本発明は、上記従来
技術の欠点を解決するため、共通データパスシステムを
介して整数データ及び浮動小数点データを通信するマイ
クロプロセッサ並びにその方法の提供を目的とする。
【0007】
【課題を解決するための手段】本発明の一実施例は、命
令を同時に実行するマイクロプロセッサである。命令に
は、整数演算を実行する整数命令と、実数演算を実行す
る浮動小数点命令とが含まれる。命令パイプラインは複
数の命令を同時に実行するため連続的な段を有する。複
数の連続的な段の中の各段は、複数の命令の中の別々の
命令に基づいて同時に動作する。本発明において、整数
命令及び浮動小数点命令はパイプライン内に混在させて
もよい。整数ユニットは整数命令を実行し、各整数命令
毎に整数型結果を形成する。浮動小数点ユニットは浮動
小数点命令を実行し、各浮動小数点命令毎に浮動小数点
型結果を形成する。データパスは命令パイプライン内の
連続的な段の間でデータを通信するため整数ユニットと
浮動小数点ユニットとにより共有される。
【0008】本発明の他の実施例は、プログラム命令の
パイプライン処理のためのマイクロプロセッサである。
各プログラム命令は、整数プログラム命令又は浮動小数
点プログラム命令のいずれかにより構成される。回路
は、複数のプログラム命令を同時に処理し、少なくとも
一つの整数型オペランドから整数型結果を形成するため
整数命令を実行し、少なくとも一つの浮動小数点型オペ
ランドから浮動小数点型結果を形成するため浮動小数点
命令を実行し、整数型結果及び少なくとも一つの整数型
オペランドを整数ユニットに通信し、浮動小数点型結果
及び少なくと一つの浮動小数点型オペランドを浮動小数
点ユニットに通信するため設けられている。
【0009】本発明の他の実施例は、整数値及び浮動小
数点値を、マイクロプロセッサ内の共有データパスを介
して夫々整数ユニット及び浮動小数点ユニットに通信す
る方法である。各整数値は、少なくとも一つの整数型オ
ペランド又は整数型結果により構成される。各浮動小数
点値は、少なくとも一つの浮動小数点型オペランド又は
浮動小数点型結果により構成される。上記方法は命令を
マイクロプロセッサに供給する段階を含む。命令は、整
数命令又は浮動小数点命令のいずれかである。命令は、
命令のタイプに依存して、整数ユニット又は浮動小数点
ユニットのいずれかの実行のため発行される。一般的に
言うと、発行された命令が整数命令であるならば、整数
型結果を形成するため整数ユニットを用いて実行され
る。しかし、発行された命令が整数乗算の場合、整数乗
算は浮動小数点乗算装置により実行され、発行された命
令が整数除算の場合、整数除算は浮動小数点除算装置に
より実行される。発行された命令が浮動小数点命令であ
るならば、浮動小数点型結果を形成するため浮動小数点
ユニットを用いて実行される。整数型結果又は浮動小数
点型結果は、共有データパスを介して通信される。
【0010】
【発明の実施の形態】以下の詳細な説明では本発明の最
良の実施モードを説明するが、当業者は、本発明の最良
の実施モードの説明から本発明の他の実施例を容易に理
解できる。本発明は他の異なる実施の形態が可能であ
り、幾つかの実施の形態の細部は本発明の精神及び範囲
から逸脱することなく、種々の明らかな観点に関して変
更することが可能である。以下の添付図面及び詳細な説
明は、本質的に本発明の例示であり、本発明はこれらの
例に限定されないことに注意すべきである。
【0011】I. マイクロプロセッサ 図1は本発明の共有データパスを組み込むマイクロプロ
セッサ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内に既に存
在する他のプログラム命令と時間的に重なり合うので、
処理スループットが増加する。
【0012】RISC設計は、一般的に、利用可能なプ
ログラム命令を、メモリにアクセスするロード命令及び
ストア命令と、算術命令と、論理命令とに制限する。マ
イクロプロセッサ9の場合に、プログラム命令フォーマ
ットは、32ビットずつのメモリの境界に従って、即
ち、32ビットメモリバウンダリに基づいて並べられ、
演算コード(オペコード)フィールド及びレジスタアド
レスフィールドからなる均一配置を利用する。さらに、
マイクロプロセッサ9は、命令及びプログラムデータ
を、プログラム命令を格納する命令キャッシュ(図示し
ない)と、プログラムデータを格納するデータキャッシ
ュ(図示しない)とに分割するため、Harvard (Aiken)
メモリアーキテクチャを採用する。
【0013】図1及び2を参照するに、整数命令及び浮
動小数点命令は、マイクロプロセッサ9内に統合された
独立した機能的ユニット、即ち、整数ユニット/浮動小
数点ユニットコントローラ10内に統合され整数命令を
処理する整数ユニット(IU)27と、浮動小数点命令
を処理する浮動小数点ユニット(FPU)22によって
夫々処理される。整数ユニット/浮動小数点ユニットコ
ントローラ10内に統合された浮動小数点コントローラ
28が整数ユニット/浮動小数点ユニットコントローラ
10と浮動小数点ユニット22との間の浮動小数点命令
のディスパッチ、同期及び終了を制御するとしても、浮
動小数点ユニット22は整数ユニット/浮動小数点ユニ
ットコントローラ10とは別個の機能的ユニットとして
浮動小数点演算を実行する。整数ユニット27は、整数
命令を実行する汎用レジスタ(図示しない)を含み、ロ
ードメモリアドレス及びストアメモリアドレスを計算
し、プログラムカウンタ(PC)(図示しない)を保持
することにより、マイクロプロセッサ9の全体的な動作
を制御する。
【0014】図2に示される如く、整数ユニット27
は、論理命令パイプライン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の両方の処理の一部を
なす。
【0015】浮動小数点ユニット22は三つの独立した
サブユニットにより構成される。浮動小数点算術論理装
置(FP−ALU)23は、浮動小数点の加算、減算、
比較及び変換命令を実行する。浮動小数点乗算器(FP
−MUL)24は浮動小数点の乗算を実行する。浮動小
数点除算/平方根ユニット(FP−DIV/SQRT)
25は、浮動小数点の除算及び平方根計算を実行する。
上記実施例において、浮動小数点算術論理装置23及び
浮動小数点乗算器24は、オペランドのタイプとは無関
係に約3.5マシンサイクル内に浮動小数点型結果を生
成し、浮動小数点除算/平方根ユニット25は約25マ
シンサイクル内に浮動小数点型結果を生成する。
【0016】II. 命令パイプライン 9段の論理命令パイプライン11は、多数のプログラム
命令を同時に実行するため整数ユニット/浮動小数点ユ
ニットコントローラ10内に統合される。命令パイプラ
イン11は、処理スループットを増加するため同期的な
形で整数命令及び浮動小数点命令の並列処理を可能にさ
せる。データ値は一時的停止又は遅れを生ずることなく
転送され得るので、オペランド、結果及びバイパスデー
タパスは、マイクロプロセッサ9にオペランドタイプと
は関係なく1サイクル当たり略1命令を完了させる。さ
らに、整数命令及び浮動小数点命令の各命令は、入力と
して少なくとも1個のオペランドを要求し、中間的な値
を計算する場合があり、出力として結果を発生する。こ
れらの値は全て、特定のパイプライン段に依存して、オ
ペランド、結果又はバイパスデータパスと共に転送され
得る。以下、命令パイプライン11の段を説明する。
【0017】(1)発行(ISSUE)段12 発行段は、デコード(DECODE)段14又は実行
(EXECUTE)段15からプログラムカウンタ(P
C)(図示しない)を介して命令仮想アドレスIVA
[31:2]を受け、命令仮想アドレスIVA[31:
2]を命令キャッシュ(図示しない)に送出することに
より、プログラム命令を発行する。
【0018】(2)フェッチ(FETCH)段13 フェッチ段は、プログラム命令ルックアップを実行し、
命令キャッシュ(図示しない)からプリフェッチバッフ
ァ(図示しない)に32ビットプログラム命令の対ID
[63:0]を受けることにより、プログラム命令をフ
ェッチする。これにより、分岐プログラム命令の場合の
1サイクルのペナルティーが回避される。
【0019】(3)デコード(DECODE)段14 デコード段は、一対の整数型オペランドを生成するた
め、フェッチ段13からプログラム命令を受け、二つの
整数型オペランド%rs1及び%rs2を生成すること
により単一プログラム命令をデコードする。上記オペラ
ンドは、整数ユニットレジスタファイル21から読み出
されるか、或いは、実行(EXECUTE)段15、メ
モリ(MEMORY)段16、遅延(DEFER)段1
7若しくは書込(WRITE)段18から転送される。
整数ユニットレジスタファイル21は、整数型オペラン
ドを一時的に格納するため使用される。
【0020】(4)実行(EXECUTE)段15 実行段はプログラム命令を実行し整数計算を行う。実行
段15は、整数ユニット算術論理装置(IU−ALU)
(図示しない)と、32ビットの左右両方向シフタ(図
示しない)とを含む。シフタ及び整数ユニット算術論理
装置は、整数算術命令を実行するが、浮動小数点乗算器
24は整数乗算を行う。特に、整数ユニット算術論理装
置は、加算命令と、ブーリアンAND(論理積)、OR
(論理和)及びXOR(排他的論理和)命令とを行う。
命令仮想アドレスIVA[31:0]は、プログラムカ
ウンタ(PC)へディスパッチされ、データ仮想アドレ
スDVA[31:0]はデータキャッシュにディスパッ
チされる。実行段15は、以下に詳述するように、全て
の浮動小数点命令を浮動小数点ユニット22に発行す
る。
【0021】(5)メモリ(MEMORY)段16 メモリ段は、プログラム命令実行段からの結果を格納
し、又は、命令パイプライン11、浮動小数点ユニット
22及びデータキャッシュとの間で64ビットのデータ
を受け、64ビットのデータを送出することにより、整
数ユニットロード命令、整数ユニットストア命令、浮動
小数点ユニットロード命令、若しくは、浮動小数点ユニ
ットストア命令を行う。ロード命令中に、全てのデータ
がストア整列装置によって並べられ、空きが生じたとき
データキャッシュに書き込むためストア・データ・ホー
ルディング・レジスタ(図示しない)に通知される。
【0022】(6)遅延(DEFER)段17 遅延段は、間違ったロード命令の結果として整数ユニッ
トレジスタファイル21に送られた書込データを削除す
る機会を与えることにより、命令実行の同時性を補助す
る。 (7)書込(WRITE)段 書込段は、遅延段17から整数型結果を受け、その整数
型結果を整数ユニットレジスタファイル21に書き込む
ことにより、整数型結果を書き出す。また、浮動小数点
除算及び平方根命令が特別の浮動小数点除算又は平方根
ホールディングスロット(図示しない)に送られる。
【0023】(8)浮動小数点遅延(FP−DEFE
R)段19 浮動小数点遅延段は、算術演算及び乗算演算を含む全て
の浮動小数点命令の終了を同期させる。さらに、通知さ
れた浮動小数点除算及び平方根命令が完了される。算
術、論理及び乗算命令は、命令パイプライン11と同期
して4サイクルで終了し、一方、除算及び平方根命令は
略25サイクルで終了する。
【0024】(9)浮動小数点書込(FP−WRIT
E)段20 浮動小数点書込段は浮動小数点型結果を書き出す。浮動
小数点レジスタファイル26に通知されたあらゆる浮動
小数点書込命令が書き込まれ、又は、あらゆる間違いの
ある浮動小数点命令が浮動小数点誤りキューに挿入され
る。また、浮動小数点状態レジスタが更新される。
【0025】整数命令の実行と浮動小数点命令の実行と
の間で同時性を達成し、命令処理スループットを増加さ
せるため、マイクロプロセッサ9は、整数ユニット/浮
動小数点ユニットコントローラ11と浮動小数点ユニッ
ト22との間で整数データ及び浮動小数点データを通信
する共有データパスを利用する。整数ユニット27と浮
動小数点ユニット22は共に、命令パイプライン11の
種々の段のレジスタの間でオペランド及び結果を転送す
るため、バイパスパスを含むデータパスを必要とする。
後述するように、上記データパスの中の特定のセクショ
ンは、メモリ段16から書込段18までの間で共有され
る。
【0026】浮動小数点命令は、以下の通りデコード段
14から浮動小数点書込段20までで処理される。全て
の浮動小数点命令は、デコード段14において構造上及
びオペランドの障害が試験される。浮動小数点命令オペ
ランドは、実行段15において浮動小数点レジスタから
集められる。浮動小数点コントローラ(FPC)28
は、デコード段17から書込段20までの間で動作し、
浮動小数点命令及びオペランドの浮動小数点ユニット2
2へのディスパッチ、並びに、浮動小数点ユニット22
からの浮動小数点型結果の受け取りを調整することによ
り、浮動小数点ユニット22の動作を制御する。浮動小
数点命令は、浮動小数点ユニット22によりメモリ段1
6から実行されはじめ、約3.5サイクル経過後に浮動
小数点遅延段19で終了する。但し、浮動小数点除算及
び平方根命令は、約25サイクルで終了する。浮動小数
点型結果は、浮動小数点書込段20において浮動小数点
レジスタファイルに書き込まれる。浮動小数点レジスタ
ファイル、又は、3エントリ形浮動小数点誤りキューの
いずれかが、浮動小数点書込段20の間に、浮動小数点
状態レジスタ(FSR)と共に書き込まれる。
【0027】浮動小数点コントローラ28は、1サイク
ルにつき1個の浮動小数点命令を発行する。全ての浮動
小数点コピー命令及びロード命令はメモリ段16で終了
するが、浮動小数点型結果は、以下に説明するように浮
動小数点遅延段19まで共有データパスを用いる命令パ
イプライン11の中でパイプライン化される。浮動小数
点算術論理装置23及び浮動小数点乗算器24用の浮動
小数点命令は、オペランド若しくは結果の異常又は正常
とは無関係に、浮動小数点遅延段19で終了し、一方、
浮動小数点除算/平方根ユニット25は、メモリ段1
6、遅延段17及び書込段18の間でパイプライン化さ
れる。その後、これらの命令は、浮動小数点除算/平方
根ホールディングスロット(図示しない)に入れられ
る。
【0028】上記の如く、浮動小数点型オペランドは、
実行段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ビットバイパスデータパスを共有することが可
能である。
【0029】III. 共有オペランドデータパス 上記の如く、整数命令は典型的に実行段15中の1サイ
クルで終了する。しかし、その結果は3段後方にある書
込段18まで格納されない。浮動小数点命令は、典型的
に、メモリ段16から始まり浮動小数点遅延段19で終
了する3.5サイクルで完了する。その結果として、整
数命令処理及び浮動小数点命令処理は、(図2に示され
る如く)メモリ段16と、遅延段17と、書込段18と
からなる3段の間で重なり合う。
【0030】
【実施例】図3は整数ユニット27及び浮動小数点ユニ
ット22のための共有データパスの図である。図3に示
された回路を通じて命令パイプラインにより使用される
データパスは、9本の別々のデータパスであるが、それ
らは重なり合う。同図に示された全てのラインは32ビ
ット幅である。5本のデータパスが整数命令を処理する
ため使用され、4本のデータパスが浮動小数点命令を処
理するため使用される。本発明の好ましい実施例におい
て、命令パイプラインの各段で回路内に存在するデータ
は、整数データ又は浮動小数点データのいずれかであ
る。
【0031】A.整数演算及び論理命令用のデータパス 第1マルチプレクサ(MUX1)30は第1整数型オペ
ランドに対する入力データを選択する。第2マルチプレ
クサ(MUX2)32は第2整数型オペランドに対する
データを選択する。入力パスは各オペランドに対し同じ
であり、図の明瞭さの便宜のため図3から省かれている
第2マルチプレクサ(MUX2)32のための入力パス
及び後述する関連したバイパス回路についての説明は行
わない。入力データは、バイパスパスからのデータと、
実行中の命令の二つのオペランドフィールドからのデー
タとを含む。
【0032】デコード段14の間に第1マルチプレクサ
(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整数型オペランドを選択する。
【0033】実行段15の間に、整数型オペランドは第
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として示されている。
【0034】メモリ段16の間に、整数型結果は、第1
メモリレジスタ56からライン64を介して第7マルチ
プレクサ(MUX7)62に転送され、次に、ライン6
8を介して第8マルチプレクサ(MUX8)66に送ら
れる。メモリ段16の間の整数型結果が第1整数型オペ
ランドとして必要であるならば、ライン70を介して整
数型結果を第9マルチプレクサ(MUX9)72に転送
し、次に、ライン74を介して第6マルチプレクサ(M
UX6)60に送ることにより、第1整数型オペランド
バイパスパスを介して転送される。整数型結果は、常
に、第1遅延レジスタ76に書き込まれる。
【0035】書込段18の間に、整数型結果は、ライン
80を用いて第1遅延レジスタ76から第10マルチプ
レクサ(MUX10)78を通して整数ユニットレジス
タファイル21まで転送される。書込段18中の整数型
結果が第1整数型オペランドとして必要であるならば、
整数型結果をライン82を介して第9マルチプレクサ
(MUX9)72に転送することによって、第1整数型
オペランドバイパスパスにより転送される。
【0036】B. 整数ロード命令用のデータパス 命令パイプラインによって処理される命令が整数ロード
命令(即ち、データキャッシュからの整数データによる
整数ユニットレジスタファイル21内のレジスタのロー
ド)であるとき、オペランド発生処理は算術又は論理命
令に対する処理と略同じである。しかし、算術又は論理
演算を行う代わりに、整数ユニット算術論理装置50
は、選択されたレジスタにロードされるべきデータのア
ドレスを計算する。アドレス及びレジスタ情報は、ライ
ン34及び第2整数型オペランド用のライン(図示しな
い)を介して命令から得られた直後のオペランドであ
る。
【0037】デコード段14の間に、整数型オペランド
が上記の如く決められる。実行段15の間に、整数ユニ
ット算術論理装置は、ロードされるべきデータのデータ
キャッシュ内アドレスを計算する。このアドレスは図3
に示されないパスを介してデータキャッシュに転送され
る。メモリ段16の間に、ロード整列装置43は、整数
ユニット算術論理装置により計算されたアドレスによっ
てアドレス指定されたデータをライン41を介してデー
タキャッシュから受容し、このデータをライン86を介
して第8マルチプレクサ(MUX8)66に転送する。
データは、次に、第1遅延レジスタ76に格納される。
書込段18の間に、データは、ライン80を介して、第
10マルチプレクサ(MUX10)78を経由して整数
ユニットレジスタファイル21内の選択されたレジスタ
に転送される。
【0038】C. 整数ストア命令用のデータパス 命令パイプラインにより処理される命令が整数ストア命
令であるとき(即ち、整数ユニットレジスタファイル2
1のレジスタからの整数データをデータキャッシュ内の
データ格納場所に格納するとき)、オペランド発生処理
は、算術又は論理命令の処理とほぼ同様である。しか
し、算術又は論理演算を行う代わりに、整数ユニット算
術論理装置50は、データキャッシュに格納されるデー
タのアドレスを計算する。アドレス及びレジスタ情報
は、ライン34及び第2整数型オペランド用のライン
(図示しない)を介して命令から得られた直後のオペラ
ンドである。
【0039】デコード段14の間に、整数型オペランド
が上記の如く決められる。実行段15の間に、整数ユニ
ット算術論理装置は、ストアされるべきデータのデータ
キャッシュ内アドレスを計算する。このアドレスは、ラ
イン88を介して整数ユニットレジスタファイル21内
の選択されたレジスタから受けられ、第5マルチプレク
サ(MUX5)54により転送され、第1メモリレジス
タ56に格納される。メモリ段16の間に、このデータ
は、ライン6を介して第7マルチプレクサ(MUX7)
62を通過し、ライン70を介してストア整列装置90
まで転送される。ストア整列装置90はロード整列装置
43の逆の動作を行う。ストア整列装置90は、データ
キャッシュの要求に従ってデータを並べる。データは、
次に、第1ストアデータレジスタ92に格納される。書
込段18の間に、データは、ライン94を介して、デー
タキャッシュ内の指定された格納場所に転送される。
【0040】D. 整数ストアデータバイパス用のデー
タパス 本発明は、後続の命令による即時使用のためパイプライ
ン内の命令処理の中間結果をパイプラインの前段に返送
する能力を提供する。例えば、値“A”が実行段15の
間に計算される状況を想定する。計算された値“A”
は、パイプラインの前方の段の命令によりオペランドと
して必要とされる可能性があるときには、実行段の次の
段において依然として命令パイプライン内に在り、整数
ユニットレジスタファイル21内のレジスタに格納され
ていない。転送能力が設けられていないならば、命令パ
イプラインは更新された値“A”が整数ユニットレジス
タファイルに書き込まれ得るまで遅延される必要があ
る。そうしなければ、“A”をひつようとする命令の処
理は最後に計算された“A”の値を利用できない。転送
能力は、計算されたデータを必要に応じて命令パイプラ
インの前方の段に返送することにより上記の問題を回避
する。
【0041】整数ユニットファイル21に書き込まれる
べき整数データは、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まで至るバイパスパスに合流すべきか否かを制御
する。
【0042】E. 整数乗算及び除算命令用のデータパ
ス 本発明において、整数乗算命令及び整数除算命令の実行
は整数ユニット算術論理装置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に転送する。
【0043】整数乗算演算及び整数除算演算の結果の一
部分は、“Yレジスタ”(図3には図示されない)と称
されるレジスタに格納される。Yレジスタは、整数乗算
演算又は整数除算演算からの64ビット結果の中の上位
32ビットを保持する。Yレジスタは第13マルチプレ
クサ(MUX13)134までのライン132に接続さ
れる。Yレジスタは、参考のため引用した“the SPARC
Architecture Manual,Version 8", SPARC Internationa
l, Inc., 1992に詳細に説明されている。
【0044】F. オペランド2個の浮動小数点命令用
のデータパス オペランド2個の浮動小数点命令には、浮動小数点加
算、浮動小数点減算、浮動小数点乗算、浮動小数点平方
根、整数から浮動小数点への変換、及び、浮動小数点か
ら整数への変換のような命令が含まれる。浮動小数点ユ
ニット22は、実行段15の間に浮動小数点命令を受け
るマイクロプロセッサアーキテクチャ内の別個の処理装
置である。しかし、浮動小数点型オペランドは、図3に
示された回路によって完成される。同図には第2浮動小
数点型オペランド用のパスだけが示されている。オペラ
ンド発生パスは第1浮動小数点型オペランド用の発生パ
スと同様である。
【0045】第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からオペランド発生パスに転送される。
【0046】オペランド2個の浮動小数点命令の処理結
果は、浮動小数点ユニット22からライン110及び1
12に返される。結果の中のビット0乃至31はライン
110上で受けられ、ビット32乃至63はライン11
2上で受けられる。ビット0乃至31は第20マルチプ
レクサ(MUX20)162に転送され、浮動小数点レ
ジスタファイル26に書き込まれる。ビット32乃至6
3は第21マルチプレクサ(MUX21)164に転送
され、浮動小数点レジスタファイル26に書き込まれ
る。
【0047】G. オペランド1個の浮動小数点命令用
のデータパス オペランド1個の浮動小数点命令には、浮動小数点移動
(FPMOV)、浮動小数点否定(FPNEG)、浮動
小数点絶対値(FPABS)及び変換演算(例えば、整
数から倍精度浮動小数点への変換)のような命令が含ま
れる。浮動小数点ユニット22は上記命令を処理するた
め使用されず、第2浮動小数点型オペランドだけが単一
オペランドとして使用される。
【0048】第2浮動小数点型オペランドは、実行段1
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に伝達される。
【0049】H. 浮動小数点ロード命令用のデータパ
ス 命令パイプラインによって処理される命令が浮動小数点
ロード命令(即ち、データキャッシュからの浮動小数点
データによる浮動小数点レジスタファイル26内のレジ
スタのロード)であるとき、オペランド発生処理は固定
小数点算術命令に対する処理と略同じである。アドレス
及びレジスタ情報は、ライン34及び第2オペランド用
のライン(図示しない)を介して命令から得られた直後
のオペランドである。
【0050】デコード段14の間にオペランドが上記の
如く決められる。実行段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に書き込まれる。
【0051】I. 浮動小数点ストア命令用のデータパ
ス 命令パイプラインにより処理される命令が浮動小数点ス
トア命令であるとき(即ち、浮動小数点レジスタファイ
ル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浮動小
数点型オペランドパスのデータパス内に形成される。浮
動小数点データは浮動小数点レジスタファイルから取得
される。
【0052】デコード段14の間にオペランドが上記の
如く決められる。実行段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に格納される。データがストアデータレジ
スタに格納された後、データは、データキャッシュが利
用可能になるか、又は、後続のストア(及びそのデー
タ)が到達するまで、ストアデータレジスタ内に留ま
る。
【0053】上記の如く本発明の種々の実施例が具体的
に示されているが、当業者であれば、請求項に記載され
ているような本発明の範囲及び精神を逸脱することな
く、形式及び詳細に関して種々の変更をなし得ることが
わかるであろう。
【0054】
【発明の効果】上記の如く、本発明によれば、データパ
スは命令パイプライン内の連続的な段の間でデータを通
信するため整数ユニットと浮動小数点ユニットとにより
共有されるので、混在する整数命令と実数命令とを処理
するため整数データ及び浮動小数点データを通信する際
の性能の低下、演算の複雑さ、及び、演算の遅れが回避
される利点が得られる。
【図面の簡単な説明】
【図1】本発明の共有データパスを組み込むマイクロプ
ロセッサの機能的なブロック図である。
【図2】命令パイプラインのブロック図である。
【図3】共有データパスの構成図である。
【符号の説明】
9 マイクロプロセッサ 10 整数ユニット/浮動小数点ユニットコントロー
ラ 11 命令パイプライン 12 発行段 13 フェッチ段 14 デコード段 15 実行段 16 メモリ段 17 遅延段 18 書込段 19 浮動小数点遅延段 20 浮動小数点書込段 21 整数ユニットレジスタファイル 22 浮動小数点ユニット 23 浮動小数点算術論理装置 24 浮動小数点乗算器 25 浮動小数点除算/平方根ユニット 26 浮動小数点レジスタファイル 27 整数ユニット 28 浮動小数点コントローラ

Claims (32)

    【特許請求の範囲】
  1. 【請求項1】 複数の連続的な処理段を有する命令パイ
    プライン内で、整数演算を行う整数命令及び浮動小数点
    演算を行う浮動小数点命令が混在した命令を同時に処理
    する処理装置において、 上記命令パイプライン内の浮動小数点命令を実行し、少
    なくとも一つの浮動小数点型オペランドから浮動小数点
    型結果を生成する浮動小数点ユニットと、 上記命令パイプライン内の整数命令を実行し、少なくと
    も一つの整数型オペランドから整数型結果を生成する整
    数ユニットと、 上記浮動小数点ユニットによる浮動小数点命令の同期及
    び終了を制御する浮動小数点コントローラと、 上記浮動小数点ユニット、上記整数ユニット及び上記浮
    動小数点コントローラにより共有され、上記命令パイプ
    ライン内の連続的な段の処理中に上記浮動小数点ユニッ
    ト、上記整数ユニット及び上記浮動小数点コントローラ
    の間で整数型オペランド、整数型結果、浮動小数点型オ
    ペランド及び浮動小数点型結果を通信する通信手段とか
    らなる処理装置。
  2. 【請求項2】 上記通信手段に接続され、上記整数ユニ
    ットにより形成された整数型結果を格納する第1のレジ
    スタファイルを更に有する請求項1記載の処理装置。
  3. 【請求項3】 上記通信手段に接続され、上記浮動小数
    点ユニットにより形成された浮動小数点型結果を格納す
    る第2のレジスタファイルを更に有する請求項1記載の
    処理装置。
  4. 【請求項4】 上記浮動小数点ユニットは、上記浮動小
    数点命令から生じた浮動小数点型オペランドに基づいて
    加算演算、減算演算及び変換演算を行う浮動小数点算術
    論理装置を含む請求項1記載の処理装置。
  5. 【請求項5】 上記浮動小数点ユニットは、上記浮動小
    数点命令から生じた浮動小数点型オペランドに基づいて
    乗算演算を行う浮動小数点乗算器を含む請求項1記載の
    処理装置。
  6. 【請求項6】 上記浮動小数点ユニットは、上記浮動小
    数点命令から生じた浮動小数点型オペランドに基づいて
    除算演算及び平方根演算を行う浮動小数点除算及び平方
    根ユニットを含む請求項1記載の処理装置。
  7. 【請求項7】 上記通信手段は、上記整数ユニット及び
    上記浮動小数点コントローラと統合されている請求項1
    記載の処理装置。
  8. 【請求項8】 上記整数ユニットは、整数命令及び浮動
    小数点命令用の命令アドレスを発行する手段を含む請求
    項1記載の処理装置。
  9. 【請求項9】 上記整数ユニットは、整数命令及び浮動
    小数点命令をフェッチする手段を含む請求項1記載の処
    理装置。
  10. 【請求項10】 上記整数ユニットは、少なくとも一つ
    の整数型オペランドを生成するため整数命令をデコード
    する手段を含む請求項1記載の処理装置。
  11. 【請求項11】 上記整数ユニットは、整数命令から生
    じた整数型オペランドに基づいて整数演算を実行し、浮
    動小数点命令及び浮動小数点型オペランドを上記浮動小
    数点ユニットにディスパッチする手段を含む請求項1記
    載の処理装置。
  12. 【請求項12】 整数命令の実行の結果を格納する手段
    を更に有する請求項1記載の処理装置。
  13. 【請求項13】 整数型結果の上記第1のレジスタファ
    イルへの格納を取り消す手段を更に有する請求項2記載
    の処理装置。
  14. 【請求項14】 整数型結果を上記第1のレジスタファ
    イルに書き込む手段を更に有する請求項2記載の処理装
    置。
  15. 【請求項15】 上記浮動小数点コントローラは、 上記浮動小数点ユニットによる浮動小数点命令の実行の
    終了を同期させる手段と、 浮動小数点型結果を上記第2のレジスタファイルに書き
    込む手段とを含む請求項3記載の処理装置。
  16. 【請求項16】 上記通信手段は、整数算術及び論理命
    令の整数型オペランド並びに整数型結果を通信する第1
    のデータパス手段を含む請求項1記載の処理装置。
  17. 【請求項17】 上記通信手段は、整数ロード命令の整
    数型オペランド及び整数型結果を通信する第2のデータ
    パス手段を含む請求項1記載の処理装置。
  18. 【請求項18】 上記通信手段は、整数ストア命令の整
    数型オペランド及び整数型結果を通信する第3のデータ
    パス手段を含む請求項1記載の処理装置。
  19. 【請求項19】 上記通信手段は、整数型オペランド及
    び整数型結果を上記命令パイプライン内の先行する段に
    通信する第4のデータパス手段を含む請求項1記載の処
    理装置。
  20. 【請求項20】 上記通信手段は、整数型オペランド及
    び整数型結果を上記命令パイプライン内の先行する段に
    通信する第5のデータパス手段を含む請求項1記載の処
    理装置。
  21. 【請求項21】 上記通信手段は、オペランド1個の浮
    動小数点命令の少なくとも1個の浮動小数点型オペラン
    ドと浮動小数点型結果とを通信する第6のデータパス手
    段を含む請求項1記載の処理装置。
  22. 【請求項22】 上記通信手段は、オペランド2個の浮
    動小数点命令の少なくとも2個の浮動小数点型オペラン
    ドと浮動小数点型結果とを通信する第7のデータパス手
    段を含む請求項1記載の処理装置。
  23. 【請求項23】 上記通信手段は、浮動小数点ロード命
    令の浮動小数点型オペランド及び浮動小数点型結果を通
    信する第8のデータパス手段を含む請求項1記載の処理
    装置。
  24. 【請求項24】 上記通信手段は、浮動小数点ストア命
    令の浮動小数点型オペランド及び浮動小数点型結果を通
    信する第9のデータパス手段を含む請求項1記載の処理
    装置。
  25. 【請求項25】 整数ユニット及び浮動小数点ユニット
    を含み、た整数演算を行う整数命令と浮動小数点演算を
    行う浮動小数点命令とが混在した命令を同時に処理する
    処理システムにおいて、 整数型オペランドを受ける第1のレジスタ手段と、 整数型結果を発生させるべく上記第1のレジスタ手段か
    ら得られた上記整数型オペランドに基づいて算術演算及
    び論理演算を行う算術論理装置と、 上記整数型結果を受ける第2のレジスタ手段と、 上記整数型結果を上記第1のレジスタ手段に転送する第
    1のバイパス手段と、 上記第2のレジスタ手段から上記整数型結果を受ける第
    3のレジスタ手段と、 上記整数型結果を格納する第1のレジスタファイルと、 上記第3のレジスタ手段から上記第1のレジスタファイ
    ルに上記整数型結果を転送する手段とかなる共有データ
    パス。
  26. 【請求項26】 上記第3のレジスタ手段に接続され、
    整数データを受容し、上記整数データを上記整数型結果
    に並べ、上記整数型結果を上記第3のレジスタ手段に格
    納するロード整列手段を更に有する請求項25記載の共
    有データパス。
  27. 【請求項27】 上記第1のレジスタファイルから上記
    第2のレジスタ手段に整数型オペランドを転送する手段
    と、 上記第2のレジスタ手段に接続され、上記整数型オペラ
    ンドを受容し、上記整数型オペランドを上記整数型結果
    に並べるストア整列手段と、 上記整数型結果を受ける第4のレジスタ手段と、 上記第4のレジスタ手段から上記第1のレジスタファイ
    ルに上記整数型結果を転送する手段とを更に有する請求
    項25記載の共有データパス。
  28. 【請求項28】 整数乗算命令若しくは整数除算命令の
    実行によって得られる整数型結果、又は、浮動小数点コ
    ピー命令の実行によって得られる浮動小数点型結果を受
    ける第5のレジスタ手段と、 上記第2のレジスタ手段から上記第5のレジスタ手段
    に、整数型結果、整数型オペランド、浮動小数点型オペ
    ランド又は浮動小数点型結果を転送する第2のバイパス
    手段と、 上記第3のレジスタ手段から上記第2のバイパス手段
    に、整数型結果、浮動小数点型オペランド又は浮動小数
    点型結果を転送する第3のバイパス手段とを更に有する
    請求項25記載の共有データパス。
  29. 【請求項29】 整数型オペランドを上記浮動小数点ユ
    ニットに転送する手段と、 上記浮動小数点ユニットから整数型結果を受ける手段
    と、 上記整数型結果を上記第3のバイパス手段に転送する手
    段とを更に有する請求項28記載の共有データパス。
  30. 【請求項30】 浮動小数点型オペランド及び浮動小数
    点型結果を格納する第2のレジスタファイルと、 上記第2のレジスタファイルから浮動小数点型オペラン
    ドを受け、上記浮動小数点型オペランドを上記浮動小数
    点ユニットに転送し、上記浮動小数点型オペランドを上
    記第5のレジスタ手段に転送する手段と、 上記浮動小数点ユニットから上記浮動小数点型結果を受
    け、上記浮動小数点型結果を上記第5のレジスタ手段に
    転送する手段と、 上記第5のレジスタ手段から上記浮動小数点型結果を受
    け、上記第5のレジスタ手段から上記浮動小数点型オペ
    ランドを受ける第6のレジスタ手段と、 上記第6のレジスタ手段から上記第3のバイパス手段に
    上記浮動小数点型オペランド又は上記浮動小数点型結果
    を転送する第4のバイパス手段と、 上記第6のレジスタ手段から上記浮動小数点型結果を受
    ける第7のレジスタ手段と、 上記第7のレジスタ手段から上記第4のバイパス手段に
    上記浮動小数点型オペランド又は上記浮動小数点型結果
    を転送する第5のバイパス手段と、 上記第7のレジスタ手段又は上記浮動小数点ユニットか
    ら上記浮動小数点型結果を受け、上記浮動小数点型結果
    を上記第2のレジスタファイルに格納する手段とを更に
    有する請求項29記載の共有データパス。
  31. 【請求項31】 上記第3のレジスタ手段及び上記第5
    のレジスタ手段に接続されている浮動小数点コピー装置
    を更に有する請求項30記載の共有データパス。
  32. 【請求項32】 マイクロプロセッサ内の共有データパ
    スを介して整数ユニットと浮動小数点ユニットと浮動小
    数点コントローラとの間で、混在した整数型オペラン
    ド、整数型結果、浮動小数点型オペランド及び浮動小数
    点型結果を通信する方法において、 整数乗算及び整数除算を含む整数命令、又は、浮動小数
    点コピー命令を含む浮動小数点命令のいずれかの実行の
    命令を、上記命令が浮動小数点コピー命令、又は、整数
    乗算命令若しくは整数除算命令以外の整数命令であると
    き上記整数ユニットに発行し、上記命令が整数乗算命令
    若しくは整数除算命令、又は、浮動小数点コピー命令以
    外の浮動小数点命令であるとき上記浮動小数点ユニット
    に発行する段階と、 上記命令が整数乗算命令又は整数除算命令であるとき、
    上記共有データパスを介して上記整数型オペランドを受
    ける段階と、 上記命令が浮動小数点命令であるとき、上記共有データ
    パスを介して上記浮動小数点型オペランドを受ける段階
    と、 上記発行された命令が整数命令であるとき整数型結果を
    生成するため、又は、上記発行された命令が浮動小数点
    コピー命令であるとき浮動小数点型結果を形成するた
    め、上記発行された命令を上記整数ユニットにより実行
    する段階と、 上記発行された命令が浮動小数点命令であるとき浮動小
    数点型結果を形成するため、又は、上記発行された命令
    が整数乗算命令若しくは整数除算命令であるとき整数型
    結果を生成するため、上記発行された命令を上記浮動小
    数点ユニットにより実行する段階と、 上記共有データパスを介して上記整数型結果及び上記浮
    動小数点型結果を選択的に通信する段階とからなる方
    法。
JP33721997A 1996-12-10 1997-12-08 マイクロプロセッサ内の共有データパスを介して整数データ及び浮動小数点データを通信する方法並びに処理装置 Expired - Fee Related JP3607476B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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