JPH09507592A - Riscプロセッサのユニファイド浮動小数点および整数データパス - Google Patents

Riscプロセッサのユニファイド浮動小数点および整数データパス

Info

Publication number
JPH09507592A
JPH09507592A JP6525480A JP52548094A JPH09507592A JP H09507592 A JPH09507592 A JP H09507592A JP 6525480 A JP6525480 A JP 6525480A JP 52548094 A JP52548094 A JP 52548094A JP H09507592 A JPH09507592 A JP H09507592A
Authority
JP
Japan
Prior art keywords
integer
bit
floating point
data path
unified
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.)
Ceased
Application number
JP6525480A
Other languages
English (en)
Inventor
コワルツィク,アンドレ
ヨン,ノーマン,ケイ.,ピー.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Graphics Properties Holdings Inc
Original Assignee
Silicon Graphics Inc
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 Silicon Graphics Inc filed Critical Silicon Graphics Inc
Publication of JPH09507592A publication Critical patent/JPH09507592A/ja
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/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/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 RISCプロセッサの64ビット幅のユニファイド整数および浮動小数点データパス(204)。ユニファイド・データパスにより、整数および浮動小数点実行ユニット(210)内の主なハードウェア資源のうちの幾つかを共有することができ、同様に、周辺回路の大部分を単純化することができる。RISCプロセッサの主なパフォーマンス上の利点に妥協することなく、ユニファイド・データパスにより、平均パワー消費を軽減することができ、しかも、面積を減少させることができるハードウェアを効率的に用いることができる。

Description

【発明の詳細な説明】 RISCプロセッサのユニファイド浮動小数点および整数データパス 技術分野 本発明は、縮小命令セット(reduced instruction set)を有するコンピュータ に関し、特に、整数および浮動小数点命令のためのユニファイド・データパスを 有するコンピュータに関する。 プロセッサの命令セットの観点から言うと、コンピュータ・アーキテクトは2 つの一般的なアプローチを開発している。CISC(complex instruction set compu ter)プロセッサは、あらゆる種類の特別な目的のニーズにアドレスするため、適 正化された命令の拡張セットを提供し、一方、RISC(reduced instruction set c omputer)プロセッサは、一般的に、より単純化され一様な命令であって、より複 雑な命令を組み立てることができる命令のスモール・セット(smaller set)を提 供する。 CISCプロセッサにより提供された命令が広範囲で複雑であるので、ハードウェ アが複雑になってしまい、チップ全体の効率が低下することになる。マイクロコ ードと、トラップと、エミュレートのような技法を用いると、益々複雑になって いるCISCプロセッサ・ハードウェアの設計が御し易くなった。しかし、ハイエン ドのCISCプロセッサの場合、その目標は速度の適正化と、パフォーマンスの適正 化であるが、ハードウェアのインプリメンテーションは依然として非常に複雑で ありコスト高である。 CISCとは対照的に、RISCのアプローチは、命令フォーマットをできる限り単純 化することを狙っているので、マシンの設計をより効率化することができる。よ り手の込んだCISC命令の中には、ほとんどのコンパイラが全く使用しないか、使 用しても希にしか使用しない命令が存在するという事実を、RISCの設計では利用 している。そのため、より少数の一様な命令フォーマット、好ましくは、サイズ が全て同一である命令フォーマットが強調されている。これらのフォーマットを 正規化することにより、命令デコード機構を単純化することができ、幾つかの命 令を同時に実行するパイプライニングを用いることができる。 命令フォーマットを単純で一様にすることと、幾つかの命令をパイプライニン グすることと、メモリ・アドレシングを単純化することと、レジスタ間オペレー ションをパフォームすることは、RISCプロセッサ設計の典型的な特徴のうちの幾 つかの特徴である。これらの技法を組み合わせることにより、非常に効率的なア ーキテクチャを有するとともに、最大スループットを有するハイ・パフォーマン スなRISCプロセッサが可能になった。これらの技法をさらに改良して、MIPSアー キテクチャに基づき、RISCプロセッサのファミリ(R2000,R3000,R4000,R6000) が製造された。MIPSアーキテクチャは、MIPS Technology Inc.により開発され、 その所有権は全てをSilicon Graphics,Inc.of Mountain View,Californiaに ある。 RISCプロセッサ設計により、引き続き効率およびスループットを高める技術状 況が推し進められると、クロックサイクル当たり1命令を超える命令の実行レー トが達成される。しかし、このような技術状況が推し進められたため、RISCプロ セッサのパフォーマンスは非常に高くなったものの、パワーの消費とコストが並 列して増大した。その結果、ポータブル・コンピューティング装置、例えば、デ スクトップ・コンピュータと、ノートブック・コンピュータのようなコンピュー ティング装置は、RISCプロセッサが提供する程度の高いパフォーマンスが得られ なくなった。上述したことから、RISCプロセッサはパワーが小さく低コストであ れば、RISC設計の高パフォーマンスという利点の他に、ポータブル・コンピュー テング装置にとっては、コストが削減されパワー消費が低減されるので、パワー が小さく低コストのRISCプロセッサのニーズがあるのは当然である。 発明の開示 本発明は、パフォーマンスを妥協することなく、低コストのアプリケーション という要求に答えるMIPS RISCアーキテクチャに基づいたプロセッサを提供する ことにある。 本発明によれば、整数データパスと浮動小数点データパスに必須のハードウェ アをコンバインし、整数および浮動小数点演算のためのユニファイド・データパ スを作成することにより、パワー消費を低減し、チップ面積を軽減した。浮動小 数点実行ユニットが必要とする主な資源の中には、整数演算を行なうことができ るものが幾つかあり、整数実行ユニットが必要とする主な資源の中には、浮動小 数点演算を行なうことができるものが幾つかある。本発明に係るプロセッサは、 浮動小数点演算を行なうデータパスと同一のデータパスで、整数演算を充分に適 応させるように資源を変更するので、これらの資源を個々の整数データパス上に 複製する必要がない。 従って、本発明は、マルチステージ・パイプラインド・データパスと、ユニフ ァイド整数および浮動小数点データパスを有するRISCプロセッサに適用すること ができる。32個の64ビット汎用レジスタと、32個の64ビット小数点レジスタをコ ンバインするレジスタ・ファイルと、複数のパイプライン・レジスタとマルチプ レクサとを含み、選択されたパイプライン・ステージの結果を整数および浮動小 数点演算中に、フィードバックするオペランド・パイプライン・ネットワークと 、コンバインド整数/仮数データパスと指数データパスを含む64ビット実行ユニ ットと、レジスタ・ファイルをパイプライン・ネットワークと実行ユニットに結 合するバス・ネットワークとを含む。 整数と浮動小数点演算を並列処理するのは、本発明に係るユニファイド・デー タパスを採用したので不可能であるが、平均パワーが低減され、効率が高くなっ た資源を共有することに対して、数多くの大きな利点がある。 本発明の効果および性質は、図面と次の詳細な説明を参照することによりさら に理解することができる。 図面の簡単な説明 図1は整数および浮動小数点演算のためのデュアル・データパスを示す従来の RISCプロセッサの簡略ブロック図である。 図2は本発明に係るユニファイド・データパスの簡略ブロック図である。 図3は本発明に係るユニファイド整数/仮数実行ユニットを示す詳細ブロック 図である。 図4は本発明に係る指数実行ユニットを示す詳細ブロック図である。 発明を実施するための最良の形態 ハイエンドのマイクロプロセッサは、ほとんどの場合、浮動小数点計算を行な うように設計されている。浮動小数点数のフォーマットは、整数に比較して異な るので、小数点演算を充分インプリメントすることができるだけの特殊なハード ウェァを追加する必要がある。浮動小数点数のフォーマットは、仮数(すなわち 、小数)部と指数部を含む。浮動小数点数のこれら2つの部分は、処理要求が異 なるので、浮動小数点データパス内の2つのデータパスで、仮数と指数を処理し ている。さらに、RISCプロセッサは単一のクロックサイクルで整数演算を行って いるが、浮動小数点演算は複数クロックサイクルが必要である。そのため、複数 サイクルの浮動小数点演算と並列に単一サイクルの整数演算を処理することがで きることが望ましい。このようなことから、現行のRISCプロセッサは整数および 浮動小数点演算のためのデータパスをそれぞれ有する。 図1は2つの個々のデータパス、すなわち、整数データパス100と浮動小数点 データパス102を有するRISCプロセッサの簡略ブロック図である。整数データパ ス100は汎用レジスタ・ファイル104を備え、汎用レジスタ・ファイル104は例え ば32個の64ビットレジスタを含む。オペランド・パイプライン・ネットワーク10 6は、パイプライン・レジスタ108と、バイパス・マルチプレクサ110を有し、レ ジスタ・ファイル104からの64ビットオペランドを受け取り、パイプラインの異 なるステージからフィードバックする。このため、先行する演算の結果をレジス タ・ファイル104に書き込むのを待たなくても、命令を進めることができるので 、1つのパイプライン・クロック・サイクルでの遅延を最少にする。整数データ パス100は整数実行ユニット112も含む。整数実行ユニット112は幾つかの主機能 ユニット、例えば、64ビット加算器114と、32ビット双方向シフタ116と、ブール 論理ユニット118のような機能ユニットを含むのが典型的である。機 能ブロックの結果はオペランド・パイプライン・ネットワーク106を介して汎用 レジスタ・ファイル100にフィードバックされる。 浮動小数点データパス102は、例えば、32個の64ビット・レジスタを含む浮動 小数点レジスタ120を備えている。オペランド・パイプライン・ネットワーク122 はパイプライン・レジスタ124とバイパス・マルチプレクサ126を含む。オペラン ド・パイプライン・ネットワーク122は、整数データパス100のオペランド・パイ プライン・ネットワーク106と同様に、浮動小数点データパス102に接続されてお り、同様のパイプラインニング機能をパフォームする。浮動小数点データパス10 2は、さらに、64ビット浮動小数点実行ユニット128を含み、64ビット浮動小数点 実行ユニット128は、例えば、53ビット幅の仮数実行ユニット130と、11ビット幅 の指数実行ユニットに分割される。アンパッカ(unpacker)134は64ビット・オペ ランドを仮数部と指数部に分割する。これら仮数部と指数部は浮動小数点実行ユ ニット128のリパッカ(repacker)136によりリパックされる。仮数実行ユニット13 0は加算器と、シフタと、正規化ロジックを含むのが典型的である。指数実行ユ ニット132の設計は非常に特殊化されており、加算器と、定数生成ロジックを含 み、同様に、他のランダム・ロジックを含むのが典型的である。 2つのデータパス100および102のインタフェースは、追加のバスラインを介し て設けてあり、マルチプレクサ144がオペランド・パイプライン・ネットワーク1 06および122のパイプライン構造に設けてある。 そのため、図1のデュアル・データパスRISCプロセッサは、数多くのハードウ ェア・ユニットを複製する。その結果、平均パワー消費が大きくなり、シリコン 面積をより多くインプリメントする必要がある。本発明では、2つの個々のデー タパスをコンバインして単一のデータパスにすることにより、複製ハードウェア ・ユニットを除去している。この単一のデータパスでは、2つのタイプの演算で 共通資源を共用している。 図2は本発明に係るユニファイド整数および浮動小数点データパスの簡略ブロ ック図である。ユニファイド・データパスはレジスタ・ファイル200を含み、レ ジスタ・ファイル200は、例えば、32個の64ビット汎用レジスタと、32個の64 ビット浮動小数点レジスタをコンバインしている。オペランド・パイプライン・ ネットワーク202は、パイプライン・レジスタ204とバイパス・マルチプレクサ20 6を介して、パイプライニングとバイパス機構を供給している。アンパッカ208は (浮動小数点演算を行なうため)オペランドを仮数部と指数部に分割するか、あ るいは、(整数演算を行なうために)オペランドを例えば11ビット幅の64ビット ・コンバインド・整数/仮数実行ユニット210に単に渡すかのいずれかを行なう 。コンバインド整数/仮数実行ユニット210は、(図3に関連して説明するが) 数と、浮動小数点数の仮数部の両方に対して演算を行なう機能ブロックの1つの セットを含む。最後に、整数/仮数実行ユニット210および指数実行ユニット212 の出力は、浮動小数点演算を行なうため、リパッカ214により再グループ化され る。 本発明に係るユニファイド・データパスの利点が、図2に示すようなブロック 図でも幾つか明らかになる。まず、オペランド・パイプライン・ネットワーク20 2をインプリメントすると、2つの個々のオペランド・パイプライン・ネットワ ーク106および122(図1)に比較して、煩わしくなく、複雑ではない。必要なハ ードウェアが半分になるだけでなく、2つの個々のデータパスのインタフェース 機構を提供するために、マルチプレクサおよびバスを追加する必要がない。 さらに、ユニファイド・データパスで浮動小数点および整数演算を実現するに は、整数演算の要求に応えるため、コンバインド整数/仮数実行ユニット210は6 4ビット幅でなければならない。図1に示す浮動小数点データパス102の53ビット 仮数実行ユニット130に比較して、浮動小数点オペランドの仮数部に対する演算 では、「自由」エクストラ・ビットが獲得される。このため、プロセッサ・アー キテクチャを適正化することができる。例えば、バイナリ浮動小数点アーキテク チャに対するIEEE標準、すなわち、IEEE/ANSI Standard 754-1985では、浮動小 数点演算を行なうため、3つの追加ビット(ガードビット/丸めビット/スティ キービット)が必要になる。現行のRISCプロセッサは、この要求をインプリメン トするため、追加のハードウェアを開発した。この追加のハードウェアは浮動小 数点実行ユニットから分離されているのが普通である。しかし、さらにコス トをかけることなく、コンバインド整数/仮数実行ユニット200のエキストラ「 自由」ビットを、浮動小数点演算の中に利用して、ビルトインされたガード/丸 め/スティキー・コレクション・ロジックを可能にする。 さらに、プロセッサ・アーキテクチャの適正化は、実行制御ブロックをユニフ ァイする、本発明に係るユニファイド・データパスにより可能である。デュアル ・データパス・アーキテクチャは、整数データパスが整数オペランド・パイプラ イン・ネットワーク106と整数実行ユニット112を構成するには、実行制御ユニッ トが必要であり、浮動小数点オペランド・パイプライン・ネットワーク122およ び実行ユニット128に対しては、個々の実行制御ユニットが必要である。本発明 に係るユニファイド・オペランド・パイプライン・ネットワーク202と、整数/ 仮数実行ユニット210は、著しく小さく、より複雑ではないので、命令のスーパ セットを1つ有するユニファイド実行制御ユニット216は、2つの個々の実行ユ ニットと置換することができる。整数および浮動小数点演算に共通の機能を、ユ ニファイド制御ユニットで、適正化することができ、より効率的に処理すること ができる。 2つの実行ユニット112および128(図1)の機能ブロックをコンバインして、 コンバインド整数/仮数実行ユニット210で、共用ブロックの単一のセットにす ることにより、パワーおよびコストが軽減される。図3はコンバインド整数/仮 数実行ユニット210の内部回路の詳細な図である。実行ユニット210は64ビット幅 であり、整数および浮動小数点数の32ビットおよび64ビットオペランドに対して コンパチブルになるように設計されている。実行ユニット210はコンバインド・ レジスタ・ファイル200からのオペランドを、パイプライン・ネットワーク202を 介して受け取るアンパッカ300を含む。アンパッカ300の出力は3つの機能ブロッ クにフィードされる。加算器302はオペランド(すなわち、浮動小数点数の仮数 )を、シフト・マルチプレクサ304と、ブース・マルチプレクサ306と、加算マル チプレクサ308とを介して受け取る。シフタ310はそれらのオペランドを、シフト ・マルチプレクサ312を介して受け取り、ブール論理ユニット314はそれらのオペ ランドをマルチプレクサOPMUX316を介して受け取る。シフタ310と論理ユニット3 14の出力は、RMUX320によりマルチプレクシングされ る。RMUX320の出力は、加算器302の出力とともに、結果マルチプレクサ322によ りマルチプレクシングされる。結果マルチプレクサ322の出力はサイン拡張/リ パッカ326にフィードされ、マルチサイクル整数および浮動小数点命令実行のサ ム・レジスタ・ステージにロードされる。結果マルチプレクサ322の出力はマル チプレクサのうちの幾つかのマルチプレクサにフィードバックされ、他の主機能 ブロック、例えば、正規化ロジック318にフィードされる。サイン拡張ブロック3 30パイプライン・ステージのうちの1つのパイプライン・ステージの命令からの 即値フィールドを受け取り、即値オペランドがデータパスに入ってくると、即値 オペランドを条件付きでサイン拡張し、その出力をシフト・マルチプレクサ312 にフィードする。 コンバインド整数/仮数実行ユニット210は、ユニファイド制御ユニット216ら のシグナルを用いて、データパス内のデータ・フローを制御し、主機能ユニット 内での演算を指定する。レジスタ・ファイルから読み取られたオペランドは、必 要な場合(整数)は、実行機能ユニットにより用いられる前に、アンパッカ300 によりサイン拡張される。実行命令内の適正なフィールドは、ステージングされ 、対応する機能ユニットに供給され、機能ユニットへの入力は選択され、命令の ステージングされた演算のローカル・デコーディングに従って、機能が供給され る。その結果は、必要な場合(整数)か、あるいは、リパッカ326によりリパッ クされた場合(浮動小数点)は、その結果がキャッシュ・メモリ・サブシステム にストアされるか、あるいは、レジスタ・ファイルにライト・バックされる前に 、サイン拡張される。アンパッカ300はIEEEシグナル(32ビット)または倍精度オ ペランド(64ビット)を受け取り、サイン・フィールドと、指数フィールドと、仮 数フィールドに分離する。 アンパッカ300はガード・ビットと、丸めビットと、スティキー・ビット(全 てゼロに初期設定される)も、仮数フィールドのLSBに追加し、この値をデータ パスにフィードする。サイン拡張/リパッカ326は53ビットの浮動小数点仮数と 、11ビットの指数と、1ビットのサインを受け取って、IEEEシグナルにリフォー マットするか、倍精度オペランドにリフォーマットする。サイン拡張/リパッカ 326は、整数演算するため、その入力を32ビットのサイン拡張を行な う。 加算器302は、例えば、キャリ伝播加算器であり、2つの64ビット・オペラン ドを(2の補数で)加算し、キャリインし、64ビットの総和をとり、キャリアウ トする。加算器302も用いて、命令をロードしストアするために、データ仮想ア ドレスを計算する。一般化されたデータ仮想アドレスはDVA出力で利用可能であ る。加算器302により実行される別の機能は、トラップ命令で、2つのオペラン ドを比較する機能である。シフタ310は、ストア・アライメントのためにポスト ・ワード・スワップを行なう64ビット左/右シフタである。右シフトは算術的( 結果はサイン拡張される)または論理的(結果はゼロ充填される)のいずれかで 行なうことができる。論理ユニット314はビットごとにブール演算を行い、オペ ランド比較を行なうために、等しいオペランドを検出し、条件付き分岐およびト ラップの結果を判定する。正規化ロジック318は浮動小数点加算および減算演算 で用いられる。正規化ロジック318は、正規化された浮動小数点結果を生成する ため、差/和を何桁シフトする必要があるかを示し、指数の位置をどれだけ調整 する必要があるかを示す。 図4は指数実行ユニット212を示す。指数実行ユニット212は12ビット幅であり 、ビット12(MSB)がサイン・ビットおよびオーバフロー・ビットとして用いられ ている。指数実行ユニット212はフィードバック・マルチプレクサ400と定数生成 ロジック402を含み、12ビットの値を、ユニファイド制御ユニット216からの入力 に基づいて生成する。フィードバック・マルチプレクサ400と定数生成ロジック4 02の出力は、2つのオペランド・マルチプレクサ404にフィードされる。2つの オペランド・マルチプレクサ404はキャリ選択加算器406のために、入力を選択す る。実行ユニット212はキャリ選択加算器406により選択された結果をホールドす るためのレジスタ408をさらに含んでいる。指数実行ユニット212の構造と演算は 、本発明によれば、2つのデータパスをユニファイしたので、実質的に影響を受 けない。 そのため、現行のデュアル・データパスRISCプロセッサに比較して、コンバイ ンド整数/仮数実行ユニット210ハードウェアがさらに省かれ、従って、コスト が低減され、平均パワー消費が軽減された。2つの加算器と、2つのシフタに代 えて、単一の64ビット加算器と、単一の64ビットシフタのみを用いて、整数およ び浮動小数点演算の両方の演算を行なう。 しかし、整数と浮動小数点演算を並列処理するのは不可能という点で、パフォ ーマンスのトレードオフがある。RISCプロセッサでは、並列処理が行われるので 、単一クロック・サイクル演算である整数演算とは対照的に、主に、マルチサイ クル演算である浮動小数点演算に対して利益がある。RISCプロセッサはその後の 整数演算を処理する前に、マルチサイクル浮動小数点演算を完了するのを待つ必 要がない。本発明に係るユニファイド・データパスRISCプロセッサの目的は、RI SCプロセッサの主なパフォーマンスの利点と妥協することなく、ホータブル・コ ンピューティング・アプリケーションに対して低コスト、低パワーRISCプロセッ サを提供することにある。 この目的は、整数演算のために、さらにレイテンシを大きくしないことを保証 することにより達成することができる。そのため、RISCプロセッサにより浮動小 数点および整数演算を混合して行なうときにのみ、パフォーマンスの妥協があり 、スループットが低下する。 本発明に係るユニファイド・データパスにより、浮動小数点演算のある態様も 改良された。1つの例は、浮動小数点数の仮数部に対する論理演算を行なう、ブ ール論理ユニット314の可用性である。浮動小数点演算で等値比較を行なうため 、現行のRISCプロセッサでは、浮動小数点実行ユニット内の特別なハードウエア を用いるか、あるいは、加算器を用いて、幾つかのサイクルで、等値比較を行な うかのいずれかを行うのが典型的である。本発明に係るコンバインド整数/仮数 実行ユニット210の場合、ブール論理ユニット314を用いて、単一サイクルで、浮 動小数点演算で、比較を行なうことができる。さらに、上述したように、浮動小 数点データパスは個々の制御ユニットを必要としない。コンバインド制御ユニッ ト216は整数および浮動小数点演算の両方の演算をハンドルする。本発明に係る ユニファイド・データパス・アーキテクチャにより必要とされるハードウエアの 量を軽減したことにより、直接、設計サイクルが短縮される。このため、開発コ ストが軽減され、ターンアランドがより速くなる。 結論を言えば、本発明によれば、ユニファイド整数および浮動小数点データパ スを有するRISCプロセッサが提供され、RISCプロセッサの主なパフォーマンス・ アドバンテージに妥協することなく、パワー消費が軽減され、面積が軽減される 。ユニファイド・データパスにより、整数および浮動小数点実行ユニット内の主 なハードウェア資源の幾つかを共用することができ、同様に、周辺回路の大部分 を単純化することができる。上記説明は本発明を完全に記述したものであるが、 種々の変更と、修正と、均等物を用いることができる。例えば、他の種類のプロ セッサ、例えば、DSP(digital signal processing)技法を用いて設計されたプロ セッサは、本発明に係る64ビット・ユニファイド・データパスにより得られた利 点から利益を得ることができる。例えば、コンバインド整数/仮数実行ユニット 210へのインプリメンテーションは、ブース・ロジックと、加算器302を有するレ ジスタを用いる代わりに、マルチプライヤ・アレイによりパフォームすることが できる。このため、本発明の範囲は、上述したことにより判定するのではなく、 請求の範囲と、これら請求の範囲の均等物により判定すべきである。
【手続補正書】特許法第184条の8 【提出日】1995年6月21日 【補正内容】 請求の範囲 1.コンピュータ・プロセッサにおいて、 複数の汎用レジスタと複数の浮動小数点レジスタとをコンバインするレジスタ ・ファイルと、 コンバインド整数/仮数データパスおよび指数データパスを含む実行データパ スと、 前記指数データパスに結合された指数実行ユニットと、 前記コンバインド整数/仮数データパスに結合された実行ユニットであって、 前記指数実行ユニットから分離されたコンバインド整数/仮数実行ユニットと、 整数および浮動小数点命令のスーパセットを組み込んだユニファイド制御ユニ ットであって、前記指数実行ユニットおよび前記コンバインド整数/仮数実行ユ ニットを介してオペランド演算とフローを制御するため、前記指数ユニットおよ び前記コンバインド整数/仮数実行ユニットに結合されたユニファイド制御ユニ ットと を備えたことを特徴とするユニファイド整数および浮動小数点データパス。 2.請求項1において、前記コンピュータ・プロセッサは、マルチステージ・パ イプラインド・データパスを有するRISCプロセッサであることを特徴とするユニ ファイド整数および浮動小数点データパス。 3.請求項2において、前記レジスタファイルは32個の汎用レジスタと32個の浮 動小数点レジスタのアレイであることを特徴とするユニファイド整数および浮動 小数点データパス。 4.請求項2において、選択されたパイプライン・ステージの結果を、整数およ び浮動小数点演算中にフィードバックする複数のバイパス・マルチプレクサをさ らに備えたオペランド・パイプライン・ネットワークを備えたことを特徴とする ユニファイド整数および浮動小数点データパス。 5.請求項2において、前記コンバインド整数/仮数データパスは、 ブール・ロジック機能ユニットと、 加算器と、 シフタと、 正規化ロジックと、 前記ブール・ロジック機能ユニットと、加算器と、シフタと、正規化ロジック に、前記レジスタからのオペランドを、バス・ネットワークを介して、選択的に 結合するマルチプレクシング・ネットワークと を備えたことを特徴とするユニファイド整数および浮動小数点データパス。 6.請求項2において、前記コンバインド整数/仮数実行ユニットは、ビルトイ ン・ガード/丸め/スティキー・コレクション・ロジックをさらに備えたことを 特徴とするユニファイド整数および浮動小数点データパス。 7.請求項1において、前記実行データパスは、浮動小数点アンパッカおよびリ パッカをさらに備えたことを特徴とするユニファイド整数および浮動小数点デー タパス。

Claims (1)

  1. 【特許請求の範囲】 1.コンピュータ・プロセッサにおいて、 複数の64ビット汎用レジスタと、複数の64ビット浮動小数点レジスタとをコン バインするレジスタ・ファイルと、 複数のパイプライン・レジスタを含むオペランド・パイプライン・ネットワー クと、 64ビット・コンバインド整数/仮数データパスおよび指数データパスを含む64 ビット実行データパスと、 前記レジスタ・ファイルを前記パイプライン・ネットワークおよび前記実行デ ータパスに結合するバス・ネットワークと を備えたことを特徴とする64ビット・ユニファイド整数および浮動小数点データ パス。 2.請求項1において、前記コンピュータ・プロセッサは、マルチステージ・パ イプラインド・データパスを有するRISCプロセッサであることを特徴とするユニ ファイド整数および浮動小数点データパス。 3.請求項2において、前記レジスタ・ファイルは、32個の64ビット汎用レジス タと、32個の64ビット浮動小数点レジスタであることを特徴とするユニファイド 整数および浮動小数点データパス。 4.請求項2において、前記オペランド・パイプライン・ネットワークは、選択 されたパイプライン・ステージの結果を、整数および浮動小数点演算中に、フィ ードバックする複数のバイパス・マルチプレクサをさらに備えたことを特徴とす るユニファイド整数および浮動小数点データパス。 5.請求項2において、前記64ビット・コンバインド整数/仮数データパスは、 ブール・ロジック機能ユニットと、 加算器と、 シフタと、 正規化ロジックと、 前記レジスタ・ファイルからのオペランドを、前記64ビット・バス・ネットワ ークを介して、前記ブール・ロジック機能ユニットと、加算器と、シフタと、正 規化ロジックとに選択的に結合するマルチプレクシング・ネットワークと を備えたことを特徴とするユニファイド整数および浮動小数点データパス。 6.請求項5において、前記64ビット・コンバインド整数/仮数データパスは、 ビルトイン・ガード/丸め/スティキー・コレクション・ロジックをさらに備え たことを特徴とするユニファイド整数および浮動小数点データパス。 7.請求項1において、前記64ビット実行データパスは浮動小数点アンパッカお よびリパッカをさらに備えたことを特徴とするユニファイド整数および浮動小数 点データパス。
JP6525480A 1993-05-17 1994-04-28 Riscプロセッサのユニファイド浮動小数点および整数データパス Ceased JPH09507592A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/063,183 1993-05-17
US08/063,183 US5450607A (en) 1993-05-17 1993-05-17 Unified floating point and integer datapath for a RISC processor
PCT/US1994/004701 WO1994027205A1 (en) 1993-05-17 1994-04-28 Unified floating point and integer datapath for risc processor

Publications (1)

Publication Number Publication Date
JPH09507592A true JPH09507592A (ja) 1997-07-29

Family

ID=22047502

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6525480A Ceased JPH09507592A (ja) 1993-05-17 1994-04-28 Riscプロセッサのユニファイド浮動小数点および整数データパス

Country Status (6)

Country Link
US (1) US5450607A (ja)
EP (1) EP0699318B1 (ja)
JP (1) JPH09507592A (ja)
AT (1) ATE210313T1 (ja)
DE (1) DE69429342T2 (ja)
WO (1) WO1994027205A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101232343B1 (ko) * 2008-03-17 2013-02-13 룽신 테크놀로지 코퍼레이션 리미티드 X86 가상머신을 지원하는 risc 프로세서 장치 및 방법
JP2017157225A (ja) * 2006-09-22 2017-09-07 インテル コーポレイション 命令に応じた丸め処理の実行

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574928A (en) * 1993-10-29 1996-11-12 Advanced Micro Devices, Inc. Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments
US5574670A (en) * 1994-08-24 1996-11-12 Advanced Micro Devices, Inc. Apparatus and method for determining a number of digits leading a particular digit
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US5664120A (en) * 1995-08-25 1997-09-02 International Business Machines Corporation Method for executing instructions and execution unit instruction reservation table within an in-order completion processor
US5878266A (en) * 1995-09-26 1999-03-02 Advanced Micro Devices, Inc. Reservation station for a floating point processing unit
US5761105A (en) * 1995-09-26 1998-06-02 Advanced Micro Devices, Inc. Reservation station including addressable constant store for a floating point processing unit
US5748516A (en) * 1995-09-26 1998-05-05 Advanced Micro Devices, Inc. Floating point processing unit with forced arithmetic results
US6331856B1 (en) * 1995-11-22 2001-12-18 Nintendo Co., Ltd. Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
US5787026A (en) * 1995-12-20 1998-07-28 Intel Corporation Method and apparatus for providing memory access in a processor pipeline
US5854918A (en) * 1996-01-24 1998-12-29 Ricoh Company Ltd. Apparatus and method for self-timed algorithmic execution
JP3546980B2 (ja) * 1996-03-29 2004-07-28 松下電器産業株式会社 データ処理装置
US5826074A (en) * 1996-11-22 1998-10-20 S3 Incorporated Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register
KR100265358B1 (ko) 1997-05-22 2000-09-15 김영환 고속의쉬프팅장치
US6035388A (en) * 1997-06-27 2000-03-07 Sandcraft, Inc. Method and apparatus for dual issue of program instructions to symmetric multifunctional execution units
US6216218B1 (en) 1997-11-03 2001-04-10 Donald L. Sollars Processor having a datapath and control logic constituted with basis execution blocks
US6292886B1 (en) * 1998-10-12 2001-09-18 Intel Corporation Scalar hardware for performing SIMD operations
US6321327B1 (en) 1998-12-30 2001-11-20 Intel Corporation Method for setting a bit associated with each component of packed floating-pint operand that is normalized in SIMD operations
US8636648B2 (en) 1999-03-01 2014-01-28 West View Research, Llc Endoscopic smart probe
US10973397B2 (en) 1999-03-01 2021-04-13 West View Research, Llc Computerized information collection and processing apparatus
US6564179B1 (en) * 1999-07-26 2003-05-13 Agere Systems Inc. DSP emulating a microcontroller
US6732203B2 (en) * 2000-01-31 2004-05-04 Intel Corporation Selectively multiplexing memory coupling global bus data bits to narrower functional unit coupling local bus
US6904446B2 (en) * 2001-08-24 2005-06-07 Freescale Semiconductor, Inc. Floating point multiplier/accumulator with reduced latency and method thereof
US7017025B1 (en) * 2002-06-27 2006-03-21 Mips Technologies, Inc. Mechanism for proxy management of multiprocessor virtual memory
US7003630B1 (en) 2002-06-27 2006-02-21 Mips Technologies, Inc. Mechanism for proxy management of multiprocessor storage hierarchies
US7140019B2 (en) * 2002-06-28 2006-11-21 Motorola, Inc. Scheduler of program instructions for streaming vector processor having interconnected functional units
US7415601B2 (en) * 2002-06-28 2008-08-19 Motorola, Inc. Method and apparatus for elimination of prolog and epilog instructions in a vector processor using data validity tags and sink counters
US7159099B2 (en) * 2002-06-28 2007-01-02 Motorola, Inc. Streaming vector processor with reconfigurable interconnection switch
US7062635B2 (en) * 2002-08-20 2006-06-13 Texas Instruments Incorporated Processor system and method providing data to selected sub-units in a processor functional unit
US7373369B2 (en) * 2003-06-05 2008-05-13 International Business Machines Corporation Advanced execution of extended floating-point add operations in a narrow dataflow
US7290122B2 (en) * 2003-08-29 2007-10-30 Motorola, Inc. Dataflow graph compression for power reduction in a vector processor
US7610466B2 (en) * 2003-09-05 2009-10-27 Freescale Semiconductor, Inc. Data processing system using independent memory and register operand size specifiers and method thereof
US7107436B2 (en) * 2003-09-08 2006-09-12 Freescale Semiconductor, Inc. Conditional next portion transferring of data stream to or from register based on subsequent instruction aspect
US7275148B2 (en) * 2003-09-08 2007-09-25 Freescale Semiconductor, Inc. Data processing system using multiple addressing modes for SIMD operations and method thereof
US7315932B2 (en) * 2003-09-08 2008-01-01 Moyer William C Data processing system having instruction specifiers for SIMD register operands and method thereof
US7433912B1 (en) 2004-02-19 2008-10-07 Sun Microsystems, Inc. Multiplier structure supporting different precision multiplication operations
US20060101244A1 (en) * 2004-11-10 2006-05-11 Nvidia Corporation Multipurpose functional unit with combined integer and floating-point multiply-add pipeline
US8005885B1 (en) * 2005-10-14 2011-08-23 Nvidia Corporation Encoded rounding control to emulate directed rounding during arithmetic operations
US8099448B2 (en) * 2005-11-02 2012-01-17 Qualcomm Incorporated Arithmetic logic and shifting device for use in a processor
JP2008204356A (ja) * 2007-02-22 2008-09-04 Fujitsu Ltd リコンフィギャラブル回路
US7849294B2 (en) 2008-01-31 2010-12-07 International Business Machines Corporation Sharing data in internal and memory representations with dynamic data-driven conversion
US7877582B2 (en) * 2008-01-31 2011-01-25 International Business Machines Corporation Multi-addressable register file
US7945768B2 (en) * 2008-06-05 2011-05-17 Motorola Mobility, Inc. Method and apparatus for nested instruction looping using implicit predicates
US9304767B2 (en) * 2009-06-02 2016-04-05 Oracle America, Inc. Single cycle data movement between general purpose and floating-point registers
US8615540B2 (en) 2009-07-24 2013-12-24 Honeywell International Inc. Arithmetic logic unit for use within a flight control system
US9411585B2 (en) 2011-09-16 2016-08-09 International Business Machines Corporation Multi-addressable register files and format conversions associated therewith
US9727336B2 (en) 2011-09-16 2017-08-08 International Business Machines Corporation Fine-grained instruction enablement at sub-function granularity based on an indicated subrange of registers
CN107977227B (zh) * 2016-10-21 2024-07-02 超威半导体公司 包括不同指令类型的独立硬件数据路径的管线
US10409614B2 (en) 2017-04-24 2019-09-10 Intel Corporation Instructions having support for floating point and integer data types in the same register
US10474458B2 (en) 2017-04-28 2019-11-12 Intel Corporation Instructions and logic to perform floating-point and integer operations for machine learning
US11934342B2 (en) 2019-03-15 2024-03-19 Intel Corporation Assistance for hardware prefetch in cache access
JP7423644B2 (ja) 2019-03-15 2024-01-29 インテル コーポレイション 行列アクセラレータアーキテクチャのためのスパース最適化
CN113424148A (zh) 2019-03-15 2021-09-21 英特尔公司 用于检测跨分片访问、提供多分片推理缩放和提供最佳页迁移的多分片存储器管理
RU209758U1 (ru) * 2021-06-25 2022-03-22 федеральное государственное бюджетное образовательное учреждение высшего образования "Российский государственный университет им. А.Н. Косыгина (Технологии. Дизайн. Искусство)" Устройство для управления разрядностью вычислений

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH069028B2 (ja) * 1986-02-18 1994-02-02 日本電気株式会社 演算装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017157225A (ja) * 2006-09-22 2017-09-07 インテル コーポレイション 命令に応じた丸め処理の実行
US10067761B2 (en) 2006-09-22 2018-09-04 Intel Corporation Performing rounding operations responsive to an instruction
US10108416B2 (en) 2006-09-22 2018-10-23 Intel Corporation Performing rounding operations responsive to an instruction
US10114640B2 (en) 2006-09-22 2018-10-30 Intel Corporation Performing rounding operations responsive to an instruction
US10114641B2 (en) 2006-09-22 2018-10-30 Intel Corporation Performing rounding operations responsive to an instruction
KR101232343B1 (ko) * 2008-03-17 2013-02-13 룽신 테크놀로지 코퍼레이션 리미티드 X86 가상머신을 지원하는 risc 프로세서 장치 및 방법

Also Published As

Publication number Publication date
ATE210313T1 (de) 2001-12-15
WO1994027205A1 (en) 1994-11-24
DE69429342T2 (de) 2002-05-23
EP0699318B1 (en) 2001-12-05
US5450607A (en) 1995-09-12
DE69429342D1 (de) 2002-01-17
EP0699318A4 (en) 1997-11-12
EP0699318A1 (en) 1996-03-06

Similar Documents

Publication Publication Date Title
JPH09507592A (ja) Riscプロセッサのユニファイド浮動小数点および整数データパス
US5923871A (en) Multifunctional execution unit having independently operable adder and multiplier
US6490607B1 (en) Shared FP and SIMD 3D multiplier
EP2963539B1 (en) Split-path fused multiply-accumulate operation using calculation control indicator cache
US6349319B1 (en) Floating point square root and reciprocal square root computation unit in a processor
EP0260409B1 (en) Data processing system with two execution units
US5748950A (en) Method and apparatus for providing an optimized compare-and-branch instruction
US6671796B1 (en) Converting an arbitrary fixed point value to a floating point value
US5272660A (en) Method and apparatus for performing integer and floating point division using a single SRT divider in a data processor
US5418736A (en) Optimized binary adders and comparators for inputs having different widths
JPH06236257A (ja) データ・プロセッサにおいて浮動小数点実行ユニット内で後正規化を実行する方法および装置
WO2000022512A1 (en) Scalar hardware for performing simd operations
US6341300B1 (en) Parallel fixed point square root and reciprocal square root computation unit in a processor
Kanter Intel’s Haswell CPU microarchitecture
US6351760B1 (en) Division unit in a processor using a piece-wise quadratic approximation technique
JPH10228378A (ja) マイクロプロセッサ内の共有データパスを介して整数データ及び浮動小数点データを通信する方法並びに処理装置
Arakawa et al. SH4 RISC multimedia microprocessor
Boersma et al. The POWER7 binary floating-point unit
Godse et al. Computer Organization and Architecture
US6678710B1 (en) Logarithmic number system for performing calculations in a processor
EP0840207A1 (en) A microprocessor and method of operation thereof
Li et al. VLSI implementation of a High-performance 32-bit RISC Microprocessor
EP1089166A2 (en) An integer instruction set architecture and implementation
EP0772817A1 (en) EXECUTION UNIT ARCHITECTECTURE TO SUPPORT x86 INSTRUCTION SET AND x86 SEGMENTED ADDRESSING
Wolf et al. TigerSHARC sinks teeth into VLIW

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040512

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040629

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20041026