JPH10254699A - 浮動小数点演算システム - Google Patents

浮動小数点演算システム

Info

Publication number
JPH10254699A
JPH10254699A JP9356470A JP35647097A JPH10254699A JP H10254699 A JPH10254699 A JP H10254699A JP 9356470 A JP9356470 A JP 9356470A JP 35647097 A JP35647097 A JP 35647097A JP H10254699 A JPH10254699 A JP H10254699A
Authority
JP
Japan
Prior art keywords
instruction
register
stack
instructions
virtual
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
JP9356470A
Other languages
English (en)
Other versions
JP3841131B2 (ja
Inventor
David L Isaman
エル. イサーマン デイビッド
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.)
ST MICROELECTRON Inc
Original Assignee
ST MICROELECTRON 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 ST MICROELECTRON Inc filed Critical ST MICROELECTRON Inc
Publication of JPH10254699A publication Critical patent/JPH10254699A/ja
Application granted granted Critical
Publication of JP3841131B2 publication Critical patent/JP3841131B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length 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/30181Instruction operation extension or modification
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 必要とされるクロック数を減少させ且つ浮動
小数点交換演算を簡単化させた浮動小数点演算システム
及び方法を提供する。 【解決手段】 本発明浮動小数点演算システムによれ
ば、命令ユニットが複数個の命令を発生し、デコードユ
ニットが該複数個の命令を受取る複数個のデコーダを有
している。デコードユニットは複数個の命令をデコード
し且つ該命令のうちの何れかが浮動小数点交換命令を包
含する浮動小数点命令を含んでいるか否かを決定する。
論理ユニットが参照テーブルへ結合しており且つデコー
ドユニットにおける複数個のデコーダと結合している複
数個の論理装置を有している。デコードユニットから受
取った各浮動小数点交換命令に対し、論理ユニットがア
ップデートしたテーブルを発生し且つ物理レジスタの内
容を不変のまま維持する。制御ユニットが論理ユニット
からアップデートされたテーブルを受取り且つアップデ
ートしたテーブルで参照テーブルをアップデートする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、浮動小数点演算シ
ステム及び方法に関するものであって、更に詳細には、
プロセサにおける浮動小数点演算システム及び方法に関
するものである。本発明は、整数及び浮動小数点演算の
両方を包含する広い範囲の適用場面に対して使用するこ
とが可能なものであるが、本発明は、特に、浮動小数点
演算に対して有用なものであり、その様な場合に特に注
意を払って説明する。
【0002】
【従来の技術】今日のマイクロプロセサはオンチップ浮
動小数点ユニットを使用することにより、数学的演算能
力を次世代レベルとさせている。この様なマイクロプロ
セサは、インテルコーポレーションからのx86ファミ
リーのプロセサを包含している。命令スケジューリング
及びパイプライン型実行などの特徴によって、浮動小数
点ユニットは、二つの浮動小数点命令を単一のクロック
で実行することが可能である。例えば、該ユニットに組
込まれているものは洗練された八段パイプライン構成で
ある。最初の四つの状態は整数パイプラインと類似して
おり、一方最後の四つの段階は二段浮動小数点実行、丸
め、及びレジスタファイルへの結果の書込み、及びエラ
ー報告から構成されている。更に、加算、乗算、除算な
どの通常の浮動小数点機能はより高速の実行とするため
のハードワイヤード構成とされている。
【0003】しかしながら、継承されているx86アー
キテクチャの特徴のうちの一つは、スタックとしての浮
動小数点レジスタの構成であり、それは、直接的なレジ
スタ参照を行うことが不可能であることを意味してい
る。従って、ほとんどのアクセスは、オペランドとし
て、トップオブスタック即ちスタックのトップを使用せ
ねばならない。例えば、何れのオペランドもトップオブ
スタック(TOS)、即ちスタックのトップ(上部)に
ない場合には、最初に、交換演算(処理)を行って、該
オペランドのうちの一つをスタックのトップ即ち上部に
配置させねばならない。
【0004】交換演算(操作)は問題を提起する。なぜ
ならば、ほとんどのその他の命令と異なり、交換演算は
2個のレジスタを読取り且つ書込むからである。交換を
行うためには、スタックの物理レジスタ内のデータビッ
トを動き回さねばならない。1個のオペランドがスタッ
クのトップにある場合であっても、3個のレジスタの全
データビットが移動されねばならず、即ち、トップオブ
スタックレジスタ、トップオブスタックレジスタと交換
されるべきスタックレジスタ、一時レジスタである。一
時レジスタの代わりに、二つの位置を同時的に書込む技
術を使用することが可能であり、それはレジスタ間での
付加的な書込みを必要とする。従って、交換演算におい
て計算は存在しないが、その演算を実施するために二つ
のクロックが使用される。更に、その演算を完了するた
めには一時レジスタも必要とされる。従って、交換演算
を実行する従来の技術は、時間がかかり過ぎ且つ多数の
データ線を必要としている。
【0005】
【発明が解決しようとする課題】本発明は、以上の点に
鑑みなされたものであって、上述した如き従来技術の欠
点を解消し、改良した浮動小数点演算システム及び方法
を提供することを目的とする。本発明の別の目的とする
ところは、必要とされるクロック数を減少させ且つ浮動
小数点交換演算を簡単化させた浮動小数点演算システム
及び方法を提供することである。
【0006】
【課題を解決するための手段】本発明によれば、仮想レ
ジスタ、物理レジスタ、該仮想レジスタを該物理レジス
タへマッピングする参照テーブルを有する命令を処理す
るシステムが提供される。該システムは、複数個の命令
を発生する命令ユニットと、該命令ユニットからの複数
個の命令を受取り、該命令をデコードし且つ命令がオペ
ランドレジスタを一つの位置から別の位置へ移動させる
か否かを決定するデコードユニットと、該参照テーブル
及びデコードユニットへ結合されており、該デコードユ
ニットから受取った各交換命令に対して該参照テーブル
をアップデートさせる論理ユニットとを有しており、該
物理レジスタは、各交換命令に対して同一の内容を維持
する。
【0007】本発明の別の側面によれば、スタック、仮
想レジスタ、該仮想レジスタのうちの一つに対してスタ
ックのトップとして指摘するスタックポインタ、物理レ
ジスタ、該仮想レジスタを該物理レジスタへマッピング
する参照テーブルを有しており、浮動小数点命令を処理
するシステムであって、複数個の命令を発生する命令ユ
ニット、該命令ユニットからの複数個の命令を受取り、
該命令をデコードし且つ命令が浮動小数点交換命令を包
含する浮動小数点命令を含んでいるか否かを決定するデ
コードユニット、該参照テーブル及びデコードユニット
へ結合されており該デコードユニットから受取った各浮
動小数点交換命令に対して該参照テーブルをアップデー
トさせる論理ユニット、を有しており、該物理レジスタ
が各浮動小数点交換命令に対して同一の内容を維持する
システムが提供される。
【0008】本発明の別の側面によれば、スタック、仮
想レジスタ、該仮想レジスタのうちの一つに対してスタ
ックのトップとして指摘するスタックポインタ、物理レ
ジスタ、該仮想レジスタを該物理レジスタへマッピング
する参照テーブル、該参照テーブルにおけるエントリが
物理レジスタの位置を指摘する参照テーブルを有してお
り、浮動小数点命令を処理するシステムであって、複数
個の命令を発生する命令ユニット、該命令ユニットから
の複数個の命令を受取る複数個のデコーダを有してお
り、該複数個の命令をデコードし且つ該命令のうちの何
れか一つが浮動小数点交換命令を包含する浮動小数点命
令を含んでいるか否かを決定するデコードユニット、該
参照テーブルへ結合されており且つ該デコードユニット
における該複数個のデコーダへ結合されている複数個の
論理装置を包含しており、該デコードユニットからの各
浮動小数点交換命令に対してアップデートしたテーブル
を発生し、該各浮動小数点交換命令に対する物理レジス
タが同一のまま残存する論理ユニット、該論理ユニット
からアップデートされたテーブルを受取り且つ該アップ
デートされたテーブルで該参照テーブルをアップデート
する制御ユニット、を有するシステムが提供される。
【0009】本発明の別の側面によれば、スタック、仮
想レジスタ、該仮想レジスタのうちの一つに対してスタ
ックのトップとして指摘するスタックポインタ、物理レ
ジスタ、該仮想レジスタを該物理レジスタへマッピング
する参照テーブルであって該参照テーブルにおけるエン
トリが物理レジスタの位置を指摘する参照テーブル、を
使用して浮動小数点命令を処理する方法において、命令
ユニットから命令を発生し、該命令をデコードし且つ該
命令がデコードユニットにおける浮動小数点交換命令を
包含する浮動小数点命令を含むものであるか否かを決定
し、且つ該命令が浮動小数点交換命令である場合に該参
照テーブルをアップデートし且つ該物理テーブルの内容
を維持する、上記各ステップを有する方法が提供され
る。
【0010】本発明の別の側面によれば、スタック、仮
想レジスタ、スタックポインタ、物理レジスタ、該仮想
レジスタを該物理レジスタへ参照するマップであって該
マップ内のエントリが物理レジスタ位置を指摘するマッ
プ、を使用して浮動小数点命令を処理する方法におい
て、命令が浮動小数点交換命令であるか否かを決定し、
該命令が浮動小数点交換命令である場合には該物理レジ
スタの内容を維持しながら該スタック、仮想レジスタ、
マップをアップデートし、該命令がプッシュ命令である
か否かを決定し、該命令がプッシュ命令である場合には
該マップの内容を維持しながら、該スタック、スタック
ポインタ、仮想レジスタ、物理レジスタをアップデート
し、該命令がポップ命令であるか否かを決定し、該命令
がポップ命令である場合には該マップ、仮想レジスタ、
物理レジスタの内容を維持しながら、該スタック及びス
タックポインタをアップデートし、該命令が浮動小数点
交換命令、プッシュ命令、ポップ命令のうちの何れか一
つでない場合に該命令が浮動小数点レジスタ命令である
か否かを決定し、且つ該命令が浮動小数点レジスタ命令
である場合に該物理レジスタを参照するための該マップ
を使用して該命令を処理する、上記各ステップを有する
方法が提供される。
【0011】本発明の別の側面によれば、スタック、仮
想レジスタ、スタックポインタ、物理レジスタ、該仮想
レジスタを該物理レジスタへ参照するマップであって該
マップ内のエントリが物理レジスタ位置を指摘するマッ
プを使用して、浮動小数点演算を実行するシステムにお
いて、命令が浮動小数点交換命令であるか否かを決定す
る手段、該命令が浮動小数点交換命令である場合に、該
物理レジスタの内容を維持しながら、該スタック、仮想
レジスタ、マップをアップデートする手段、該命令がプ
ッシュ命令であるか否かを決定する手段、該命令がプッ
シュ命令である場合に、該マップの内容を維持しなが
ら、該スタック、スタックポインタ、仮想レジスタ、物
理レジスタをアップデートする手段、該命令がポップ命
令であるか否かを決定する手段、該命令がポップ命令で
ある場合に、該マップ、仮想レジスタ、物理レジスタの
内容を維持しながら、該スタック及びスタックポインタ
をアップデートする手段、該命令が浮動小数点交換命
令、プッシュ命令、ポップ命令の何れか一つでない場合
に該命令が浮動小数点レジスタ命令であるか否かを決定
し、且つ該命令が浮動小数点レジスタ命令である場合に
該物理レジスタを参照する該マップを使用して該命令を
処理する、システムが提供される。
【0012】本発明の別の側面によれば、スタック、仮
想レジスタ、該仮想レジスタのうちの一つをスタックの
トップとして指摘するスタックポインタ、物理レジス
タ、該仮想レジスタを該物理レジスタへマッピングする
参照テーブルであって該参照テーブルの内容が物理レジ
スタ番号を有している参照テーブル、を使用して、浮動
小数点命令を処理する方法において、参照テーブルエラ
ー信号が発生したか否かを決定し、該参照テーブルエラ
ー信号が発生しなかった場合に命令を解析してパーセル
を発生し、該パーセルが発行されたか否かを決定し、該
パーセルが発行されている場合にメモリ内の所定の位置
において該参照テーブルを保存し、該パーセルが浮動小
数点交換命令であるか否かを決定し、該パーセルが浮動
小数点交換命令である場合に、該参照テーブルをアップ
デートし且つ該物理レジスタを不変のまま維持する、上
記各ステップを有する方法が提供される。
【0013】本発明の更に別の側面によれば、仮想レジ
スタ、物理レジスタ、該仮想レジスタを該物理レジスタ
へマッピングする参照テーブルを有する、命令を処理す
るシステムにおいて、複数個の命令を発生する命令ユニ
ット、該命令ユニットからの複数個の命令を受取り、該
命令をデコードし且つ一つの命令がオペランドレジスタ
を一つの位置から別の位置へ移動させるか否かを決定す
るデコードユニット、該参照テーブル及び該デコードユ
ニットへ結合しており、該デコードユニットから受取っ
た各交換命令に対して該参照テーブルをアップデート
し、該物理レジスタが該各交換命令に対して同一の内容
を維持する論理ユニット、を有するシステムが提供され
る。
【0014】
【発明の実施の形態】図1は一例として本発明に適用す
ることの可能なシステムアーキテクチャを示している。
図1のシステムアーキテクチャは、L1キャッシュ及び
L2キャッシュの両方へ接続しているバスインターフェ
ース12へ接続している外部バスを有している。L1キ
ャッシュは、ブランチターゲットバッファ(RTB)1
8へ接続している命令キャッシュ16と、データキャッ
シュ22の両方を有している。命令キャッシュ16はフ
ェッチ/デコードユニット20へ接続しており、該ユニ
ット20はイッシュ(issue)即ち発行ユニット2
4へ接続している。発行ユニット24はメモリ棚26へ
接続すると共に演算論理ユニット(ALU)(28,3
0,32)及び浮動小数点ユニット(FPU)(34,
36)へ接続している。本発明は、就中、システムアー
キテクチャのフェッチ/デコードユニット20及び発行
ユニット24に焦点を当てるものである。
【0015】本発明において、浮動小数点命令は、通
常、三つのフェーズ、即ちイッシュフェーズ(issu
e phase)即ち発行フェーズ、エクセキュートフ
ェーズ(execute phase)即ち実行フェー
ズ、リタイヤフェーズ(retire phase)即
ち回収フェーズで処理される。整数命令フローに類似し
ているこれらのフェーズを包含する浮動小数点命令のフ
ローを図2に示してある。発行フェーズは、命令を「順
番」に処理し且つフェッチ(fetch)42、パース
(parse)44、デコード(decode)46、
スワップ(swap)48、発行(issue)50を
包含している。実行フェーズは、命令を「順番外」に処
理し且つスケジュール(schedule)52、オペ
ランドフェッチ(operand fetch)54、
実行(execute)56、棚置き(shelve)
58を包含している。回収(retire)フェーズ
は、命令を「順番」に処理し且つ完了(complet
e)60、回収(retire)64、検索(retr
ieve)66、書戻し(writeback)68を
包含している。これら三つのフェーズの段はパイプライ
ンで処理される。
【0016】順番外実行手法及びその他の本発明の関連
性のある部分については以下の三つの文献に詳細に記載
されており、これらの文献を引用により本明細書に取込
む。 (1)Popescu et al.米国特許第5,4
87,156号「逐次的に割り当てられ且つフェッチし
た順番で格納される命令の独立的にフェッチし、発行し
且つアップデートする演算を有するプロセサアーキテク
チャ(PROCESSOR ARCHITECTURE
HIVING INDEPENDENTLY FET
CHING ISSUING AND UPDATIN
G OPERATIONS OF INSTRUCTI
ONS WHICH ARE SEQUENTIALL
Y ASSIGNED AND STORED IN
ORDER FETCHED)」、1990年12月5
日、(2)Val Popescu et al.「メ
タフローアーキテクチャ(The MetaflowA
rchitecture)」、IEEEマイクロ、19
91年6月、(3)Gurindar S. Sohi
「高性能インタラプト可能マルチ機能ユニットパイプラ
イン型コンピュータ用命令発行論理(Instruct
ion Issue Logic for High−
Performance, Interruptibl
e, Multiple Functional Un
it,Pipelined Computers)」、
IEEE・トランズアクションズ・オン・コンピュータ
ズ、Vol.39、No.3、1990年3月。
【0017】次に、図2を参照すると、発行フェーズの
命令フェッチステージ(段階)期間中に、キャッシュラ
インが命令キャッシュから命令フェッチバッファ内に読
込まれる。命令フェッチ段階はブランチターゲットキャ
ッシュと関連して動作し、それは命令キャッシュからの
次のフェッチアドレスを予測する。発行フェーズの命令
パース(解析)段階44は命令のタイプ及びその境界を
検知し且つ適宜の命令バイトを命令デコード段階へパス
する。命令デコード段階46において、パース(解析)
段階44からの命令バイトが、例えば、マイクロコント
ロールROMに加えて、4個のデコードへ並列的に供給
される。これらのデコーダは、例えば、x86命令バイ
トを「パーセル(parcel)」と呼ばれるRISC
演算へ翻訳する。次いで、これらのパーセルは命令発行
段階へ供給される。しかしながら、パーセルが命令発行
段階へ供給される前に、本発明の浮動小数点命令フロー
が、浮動小数点交換(FXCH)命令をサポートするス
ワップ段階48を包含しており、それはデェスティネー
ション(宛先)の内容をスタックトップレジスタとスワ
ップする。命令発行段階50は、それがロード/ストア
命令である場合には、メモリ棚と並列している命令棚内
にその命令を棚置きする。
【0018】実行フェーズのスケジュール段階52にお
いて、ALU又はFPUがオペランドの入手可能性及び
その年代に基づいて命令を選択する。全てのオペランド
が使用可能である最も古い命令が最初に選択される。命
令が実行のためにスケジュールされた後に、そのオペラ
ンドが結果棚か又はセイン(sane)レジスタファイ
ルの何れかからフェッチされる。結果棚は、その命令を
リタイヤ即ち回収させる前に、命令の結果を一時的に格
納するメモリ構造である。セインレジスタファイルは、
プログラマに対して見ることの可能な物理的レジスタフ
ァイルである。図1の例示的なシステムアーキテクチャ
において示したように、3個のALUと2個のFPUを
包含する5個の実行ユニットが存在している。ALU1
は全ての演算処理を行うことが可能であり且つALU2
は乗算及び除算を除く全ての演算処理を行うことが可能
である。ALU3はメモリ操作に対する間接的処置を解
決するために使用され、即ちそれはメモリ操作に対する
全てのアドレス計算を行う。FPU1は加算、整数から
浮動小数点への変換及びその逆、整数への丸め、減算及
びマルチメディア命令を扱うことが可能である。FPU
2は除算、平方根、乗算及び超越関数を扱うことが可能
である。従って、クロック毎に、浮動小数点ユニットに
対して、最大で2個の浮動小数点命令を発行することが
可能である。実行フェーズの最後の段階は棚置き(sh
elve)段階58である。実行フェーズは順番外で実
行されるが、次のフェーズである回収フェーズは順番通
りに実行される。従って、棚置き段階58において、コ
ミットされていない順番外に実行された命令の結果は結
果棚内に格納される。結果棚からのデータは従属命令に
よって使用することが可能である。
【0019】回収フェーズは四つの段階、完了(com
pletion)、回収(retire)、検索(re
trieve)、書戻し(writeback)を包含
している。完了フェーズ60において、命令の完了が検
知され且つ回収段階64がクロックサイクル当たりに回
収されるべき命令の数を決定する。命令が回収される
と、結果が検索段階66において結果棚から読取られ
る。次いで、結果棚からの結果は書戻し段階68におい
てプログラマが見ることの可能なレジスタファイルへコ
ミットされる。
【0020】本発明は、上述した三つのフェーズのうち
で発行フェーズに焦点を当てたものであり、本発明の浮
動小数点演算システムについて更に詳細に説明する。
【0021】前述した従来技術の箇所において説明した
ように、従来技術において浮動小数点交換命令が実行さ
れる毎に、物理レジスタの実際のデータビットが動き回
され、多数のデータ線(ワイヤ)及びクロックを必要と
している。この問題を解消するために、本発明は、物理
レジスタの位置に対してポイント即ち指摘する浮動小数
点交換(FXCH)マップを使用している。従って、多
数のデータビットを動かす代わりに、FXCHマップの
みをシャッフル即ちあちこちと動かすものであり、それ
は著しく少ない数のクロック及びワイヤを必要とするに
過ぎないものである。一例を図6A−6Dに示してあ
る。
【0022】図6A−6Dは8個のエントリを有するス
タック、各々がデータを示す8個のエントリを有する仮
想レジスタ、番号0乃至7によってアドレスされる8個
のデータ格納位置を有する物理レジスタを具備するレジ
スタファイル、及び各々が物理レジスタ番号を表わす3
ビットデータを有する8個のエントリを具備するFXC
Hマップを示している。スタックポインタが仮想レジス
タのうちの一つに対してトップオブスタック(TOS)
即ちスタックのトップ(上部)としてポイント即ち指摘
する。スタック及び仮想レジスタは物理レジスタではな
く、物理レジスタ内のデータの順番を異なる態様で示す
ものに過ぎない。実際の物理データはFXCHマップ及
び物理レジスタにおいてのみ格納されている。FXCH
マップは、物理レジスタの8個のレジスタを表わすため
に3ビットデータを格納している。レジスタ当たり80
ビットより大きなデータを格納することの可能な物理レ
ジスタは、例えばレジスタ、メモリなどの任意の適宜の
格納装置とすることが可能である。従来技術では、単
に、スタック、物理レジスタ、物理レジスタのうちの一
つをトップオブスタック(TOS)即ちスタックのトッ
プ(上部)としてポイント即ち指摘するスタックポイン
タを有するに過ぎず、それを図9A及び9Bに示してあ
る。
【0023】図6Aを参照すると、それはレジスタの初
期状態を示しており、8個のスタック要素(300A)
が左側においてST(0)乃至ST(7)として示して
あり、それぞれデータエントリD0乃至D7を有してい
る。8個の仮想レジスタ302Aは、それぞれデータエ
ントリD0乃至D7で示してある。トップオブスタック
(TOS)301は、仮想レジスタのうちの一つをポイ
ント即ち指摘している。この場合には、TOS301は
初期的に仮想レジスタ「0」をポイントしている。8個
の物理レジスタ306AがデータエントリD0乃至D7
で示してある。FXCHマップ304Aは、仮想レジス
タ302Aと物理レジスタ306Aとの間に示されてい
る。FXCHマップ304Aは8個のエントリ0−7を
有しており、それは仮想レジスタを物理レジスタ位置に
対してマッピングしている。従って、初期的には、上述
したエントリが仮定される。
【0024】浮動小数点交換命令が実行されて、例え
ば、ST(0)とST(3)とを交換即ちスワップする
場合には、本発明に従って、レジスタは図6Bに示した
ように変更される。特に、スタック300B及び仮想レ
ジスタ302Bにおいて、D3とD0とがスワップされ
る。従って、トップオブスタック(TOS)301は未
だに仮想レジスタ「0」をポイントしており、それは今
の状態ではD0を収容している。物理レジスタ位置
「3」をFXCHマップエントリ番号0に配置させ且つ
物理レジスタ位置「0」をFXCHマップエントリ番号
3に配置させることによって、FXCHマップ304B
がアップデート即ち更新される。物理レジスタ306B
の内容は不変のままである。従って、スタック300
B、仮想レジスタ302B、FXCHマップは変化した
が、物理レジスタ306Bは同一のままである。従っ
て、この命令の後に、トップオブスタックの内容を検索
するために、FXCHマップを最初にチェックして、ど
の物理レジスタがアクセスされるべきであるかを決定す
る。この場合には、TOS301はD3を収容する仮想
レジスタ「0」に対してポイント即ち指摘しており且つ
FXCHマップの対応するエントリ「0」はD3を有す
るものとして物理レジスタ「3」に対してポイント即ち
指摘している。
【0025】図6における本発明の実施例を図9Bに示
した従来技術における例と比較する。図6B及び9B
は、両方共、同一の初期状態(図6A及び9A)から開
始した同一の浮動小数点交換命令からの結果を示してい
る。この場合に、図9Bの物理レジスタ602B内のデ
ータの順番は図6Bの仮想レジスタ302B内のデータ
の順番と同一であり、且つ両方の例のスタックポインタ
は同一のレジスタ番号をポイントしている。しかしなが
ら、両者の差は、本発明の仮想レジスタは実際のレジス
タではなく、それらは単に物理レジスタの中のデータを
観察する一つの態様であり、本発明においては物理レジ
スタは変化していない。本発明において変化している唯
一の物理的なデータはFXCHマップにおけるものであ
り、それらは、エントリ当たり単に3個のビットを有す
るに過ぎず、物理レジスタ内のレジスタ当たり80個を
超えるビットと対比される。本発明の利点は、80個を
超えるビットの代わりに単に3個のビットが移動される
に過ぎないというにおいて明らかである。
【0026】図6Cは別の浮動小数点交換命令を例示し
ている。この場合には、ST(0)がST(6)と交換
される。従って、図6Bに示したレジスタ状態から継続
して、図6Cにおけるスタック300Cは、ST(0)
がD6を収容し且つST(6)がD3を収容するように
変化される。その他のスタックエントリは図6Bにおけ
るものと同一のままである。仮想レジスタ302Cはス
タック300Cと同じに変化され、TOS301はその
内容としてD6を有する仮想レジスタ「0」に対してポ
イントしている。FXCHマップ304Cが再度アップ
デート即ち更新される。この場合には、FXCHマップ
の0番目の位置(エントリ番号0)がアップデートされ
て物理レジスタ位置6に対してポイントし且つFXCH
マップの6番目の位置が物理レジスタ位置3に対してポ
イントすべくアップデートされる。この場合にも、物理
レジスタは不変のままである。
【0027】図6Dは浮動小数点交換命令の更に別の例
を示している。この場合には、ST(0)がST(1)
と交換される。上述した二つのFXCHの例と同一のス
テップに従って、スタック300D、仮想レジスタ30
2D、FXCHマップ304Dにおける変化を図6Dに
示してある。
【0028】従って、図6A−6Dにおける例に示した
ように、唯一の物理データの移動はFXCHマップにお
いて発生し、該マップは、本実施例においては、エント
リ当たり3個のビットを有するに過ぎず、それはレジス
タ当たり80を超えるビットを移動させることと対比さ
れる(少なくとも二つの物理レジスタ又は一時レジスタ
が使用される場合には3個の物理レジスタを交換を行う
場合に必要とされるので160を超えるビットの移動が
必要となる)。さらなる例については後に説明する。
【0029】次に、本発明の具体例について詳細に説明
する。図3は、本発明の一実施例を示した概略ブロック
図である。図3を参照すると、命令パーサ(parse
r)106が命令キャッシュ104から一つ又はそれ以
上の命令を検索する。命令パーサ106は該命令を「パ
ーセル(parcel)」と呼ばれる4個の個別的なR
ISC演算(RISC OPS)に分解する。これら4
個のパーセルはパーセルレジスタ(108A,108
B,108C,108D)内に格納される。各パーセル
レジスタはそのパーセルを対応するデコーダ(110
A,110B,110C,110D)へ送り、そこで、
該パーセルはデコードされて、そのパーセルが浮動小数
点交換命令を有するものであるか否かを決定し、更に、
そのオペランドレジスタを決定する。次いで、デコード
された命令は対応する論理ユニット(112A,112
B,112C,112D)へ送られる。
【0030】該論理ユニットは、更に、トップオブスタ
ック情報を受取り且つ浮動小数点交換命令が処理される
たびにアップデートされる現在又は既存のFXCHマッ
プを受取る。FXCHマップは、命令が浮動小数点レジ
スタを使用することを使用たびにルックアップテーブル
として使用される。なぜならば、FXCHマップは、上
述した例において説明したように、どこに物理データが
存在するかのキーを保持しているからである。論理ユニ
ットがFXCH命令を受取ると、論理ユニットは、単
に、FXCHマップをアップデートし且つ物理レジスタ
は変化されることはない。各アップデートされたFXC
Hマップは次のパーセルを処理するために次の論理ユニ
ットへ送られる。注意すべきことであるが、論理ユニッ
ト1(112A)から開始して論理ユニット4(112
D)までを全て1クロックにおいて順番に、パーセルレ
ジスタ1−4からの最大4個のパーセルを処理すること
が可能である。論理ユニット(112A,112B,1
12C,112D)は、更に、浮動小数点交換マップを
使用することにより浮動小数点レジスタを具備する命令
に対して、正しいオペランドST(Y)を獲得する。該
オペランドは、図3に示したように発行段階である次の
段階へ送られる。
【0031】論理ユニットの各々からのアップデートさ
れたFXCHマップ即ち「新しいマップ」及び論理ユニ
ット1(112A)前の現在のFXCHマップがマルチ
プレクサ114へ入力される。マルチプレクサ114は
マルチプレクサ114のセレクタとして作用する発行信
号に従って発行された最後のパーセルを処理した論理ユ
ニットの新しいマップを出力する。例えば、パーセルが
発行されない場合には、「古いマップ」(論理ユニット
1の既存のマップ)が選択され、1個のパーセルのみが
発行される場合には、論理ユニット1の新しいマップが
選択され、二つのパーセルが発行される場合には、論理
ユニット2の新しいマップが選択される、等々である。
注意すべきことであるが、例えば、二つのパーセルが発
行され且つ論理ユニット1が浮動小数点交換命令を処理
したが論理ユニット2は処理しなかった場合には、論理
ユニット2の新しいマップはマルチプレクサ114にお
いて未だに選択されている。なぜならば、この場合にお
ける論理ユニット2の新しいマップは論理ユニット1の
新しいマップと同一だからであり、即ち、FXCHマッ
プは論理ユニット2内において既存のマップから新しい
マップへ変化させていなかったからである。従って、ど
の論理ユニットも浮動小数点交換命令を受取らなかった
場合には、「古い」マップ(論理ユニット1の前)が4
個の論理ユニットのうちの各々から出力され且つどの一
つ又は複数個のパーセルが発行されたかに拘らずに、該
マルチプレクサから出力される。マルチプレクサ114
が新しいマップを選択すると、それは浮動小数点交換F
XCHマップレジスタ102へ出力され且つ別のマルチ
プレクサ122を介して物理的にアップデートされる。
マルチプレクサ122は、推測(speculativ
e)ユニット124からの「フラッシュ信号」に従っ
て、マルチプレクサ114からの出力(新しいマップ)
とバックアップ状態RAM116の出力(修復値)との
間で選択を行う。
【0032】バックアップ状態RAM116は4個の論
理ユニット(112A,112B,112C,112
D)の各々から既存のFXCHマップ入力を受取る。こ
れらはマルチプレクサ114を参照して上述したのと同
様に発行される命令(パーセル)の数に従ってRAM1
16内に保存される。この場合に、発行用信号は、更
に、バックアップ状態RAM116に対する書込みイネ
ーブル信号としても作用し、従って、どの一つ又はそれ
以上のパーセルが発行されるかに依存して、論理ユニッ
トからの対応する既存の一つ又はそれ以上のマップが保
存される。バックアップ状態RAM内に既存のマップを
保存する理由は、「推測実行(speculative
execution)」と呼ばれるもののためであ
り、それは、例えば、上掲した米国特許第5,487,
156号及び「メタフローアーキテクチャ」の文献の両
方に詳細に記載されている。
【0033】推測実行においては、例えば条件付き分岐
命令などの制御依存性に起因するストールをできるだけ
多く回避し、候補命令の安定な供給を可能とすることに
よりパイプラインを満杯状態に維持するものである。こ
れを行うために、ブランチ即ち分岐がBTB18(図1
参照)によって推測され且つ分岐後の命令が、実際の分
岐が行われる前に処理されて、候補命令の安定なプール
即ち蓄えを維持する。そうでない場合には、該処理は、
分岐命令が処理されるまでストールし、貴重な時間を浪
費することとなる。しかしながら、分岐予測を有する発
行は、分岐予測が不正確な場合の状態である。従って、
誤った分岐後に処理された命令は使用不可能なものとな
る。この状態を矯正するために、バックアップ状態RA
Mが論理ユニットからの既存のマップを格納し、各既存
のマップは該マップを適用することの可能なパーセルの
識別(ID)に対応している。
【0034】推測実行からのエラーを解消するための矯
正は、好適には、本発明においては、推測ユニット12
4から読取りアドレス(R)をバックアップ状態RAM
116へ送り且つID発生器118からの書込みアドレ
ス(W)を送ることによって実行される。ID発生器
は、各パーセルに対して独特のIDを発生する。この場
合には、ID発生器118は、発行用信号を受取り且つ
バックアップ状態RAM116へ書込みアドレスを出力
し、それは新しいマップがそのアドレスから開始して連
続的に書込まれる箇所の参照アドレスである。ID発生
器については、例えば、上掲した米国特許第5,48
7,156号及び「メタフローアーキテクチャ」の文献
に詳細に記載されている。
【0035】従って、推測ユニット124においてエラ
ーが検知される場合には、読取りアドレスがバックアッ
プ状態RAM116へ送られて、最後に有効なFXCH
マップ即ち「修復値」を探し出し且つフラッシュ信号が
マルチプレクサ122へ送られる。バックアップ状態R
AM116は該修復値をマルチプレクサ122へ出力
し、マルチプレクサ122はその修復値を浮動小数点交
換マップレジスタ102へ出力する。
【0036】図3における実施例における動作を図4A
及び4Bのフローチャートを参照して説明する。図4A
を参照すると、初期化ステップ202の後に、フラッシ
ュ信号がステップ204において受取られたか否かを決
定する。フラッシュ信号が受取られていない場合には、
次の命令がステップ208においてパース即ち解析され
る。注意すべきことであるが、ステップ206は1クロ
ックにおいて最大で4個のパーセルまで考慮する。ステ
ップ210は、問題の命令が2個のパーセルを発生する
命令であるか否かを決定する。例えば、命令がオペラン
ドとしてメモリ位置に対する一つの参照とレジスタに対
する一つの参照とを有する場合には、同一の命令が二つ
のパーセルレジスタ内にコピーされる。一つのコピーが
該メモリからのロードを取扱い且つ2番目のコピーがロ
ードされた値及び該レジスタに関して動作する。従っ
て、その命令が2個のパーセルを発生するような種類の
ものでない場合には、その命令はパーサから除去され且
つレジスタi(i番目の繰返しに依存)をデコードする
ためにコピーされる(ステップ210及び216)。し
かしながら、その命令が2個のパーセルを発生する場合
には、第一のパーセルに対して、その命令はそれをパー
サから除去することなしにデコードレジスタiへコピー
する(ステップ210,212,214)。第二パーセ
ルに対しては、その命令はパーサから除去され且つデコ
ードレジスタiへコピーされる(ステップ210,21
2,216)。
【0037】その命令が適宜のレジスタへコピーされる
と、一つ又はそれ以上のパーセルがステップ218にお
いて発行されたか否かが決定される。そうでない場合に
は、本プロセスは終了する(ステップ232)。少なく
とも1個のパーセルが発生される場合には、対応する論
理ユニットへ入力された既存のマップが位置IDにおい
てバックアップ状態RAM内に書込まれる(ステップ2
18及び220)。
【0038】問題のパーセルが2個のレジスタを交換す
るための交換命令であり且つ好適には、トップオブスタ
ック即ちスタックの上部ST(0)をST(j)と交換
するための浮動小数点交換命令である場合には、FXC
Hマップがアップデートされる(ステップ222及び2
24)。問題のパーセルが浮動小数点交換命令ではない
場合には、FXCHマップはアップデートされない。し
かしながら、問題のパーセルが浮動小数点レジスタを有
している場合には、FXCHマップを使用して、各オペ
ランドの適宜の物理レジスタ番号を決定する(ステップ
226及び228)。ステップ224及び228の各々
の後に、次のIDを使用して次のパーセルが検索される
(ステップ230)。
【0039】ステップ204において、フラッシュ信号
が発生すると、パーセルK(それは、推測ユニットにお
けるエラーから発生する第一パーセルである)及び爾後
のパーセルがフラッシュ即ち廃棄される(図4Bにおけ
るステップ234)。次いで、修復値が位置Kにおいて
バックアップ状態RAMから読出され、FXCHマップ
を修復値の内容、即ち、エラーが発生する前のFXCH
マップの内容へ設定する(ステップ236及び23
8)。
【0040】付加的なサンプル命令を検討する前に、浮
動小数点命令におけるレジスタをアップデートする別の
プロセスについて図5を参照して説明する。図5は、F
XCH,PUSH,POP命令を含む異なるタイプの命
令を取扱うためのフローチャートを示している。この場
合には、図5のフローチャートは、図4Aのステップ2
22,224,226,228を置換することが可能で
ある。従って、図4Aのステップ220はステップ25
2へ接続され且つ図5のステップ270は図4Aのステ
ップ230へ接続される。
【0041】浮動小数点命令のみを考慮すると、問題の
命令がFXCH命令である場合には、スタック、仮想レ
ジスタ、FXCHマップがアップデートされるが、物理
レジスタは不変のまま止まる(例えば、図6B−6D,
7B,8B,8E,8H参照)(ステップ250,25
2,254,256)。問題の命令がプッシュ(PUS
H)命令である場合には、スタック、仮想レジスタ、ス
タックポインタ、物理レジスタがアップデートされる
が、FXCHマップは不変のまま止まる(例えば、図7
A,8C,8D参照)(ステップ258及び260)。
問題の命令がポップ(POP)命令である場合には、ス
タック及びスタックポインタがアップデートされるが、
仮想レジスタ、物理レジスタ、FXCHマップは不変の
まま止まる(例えば、図7D及び8F参照)(ステップ
262及び264)。問題の命令が上述したものの何れ
でもないが、それが浮動小数点レジスタを包含する場合
には、FXCHマップを使用して、正しい物理レジスタ
からオペランドを獲得する(例えば、図7C及び8G参
照)(ステップ266及び268)。
【0042】次に、本発明に基づく幾つかのさらなるサ
ンプル命令について検討する。図7A−7DはPUS
H,FXCH,ADD,POP命令を示しており、且つ
図6Dに示したレジスタ状態から継続している。図6D
のレジスタ状態から開始して、図7Aは、D8をスタッ
クのトップ即ち上部へ挿入するためのプッシュ即ちPU
SH命令に対してアップデートしたレジスタを示してい
る。スタック400AはST(7)からD7を除去し、
D8に対して場所を開ける。スタックポインタはデクリ
メントし且つ現在はD8を収容している仮想レジスタ
「7」に対してポイントしている。FXCHマップ40
4Aは変化していないが、物理レジスタ「7」はD8へ
上書きされている。
【0043】図7Bはトップオブスタック即ちST
(0)をST(5)と交換するためのFXCH命令に対
してアップデートしたレジスタを示している。この命令
は、スタック400Bにおいて反映されているように、
ST(0)とST(5)の内容をスワップする。仮想レ
ジスタ402B内において、仮想レジスタ「7」(TO
S)と仮想レジスタ「4」(ST(5))の内容がスワ
ップされている。FXCHマップ404Bもアップデー
トされており、従ってエントリ4及び7がスワップされ
て、仮想レジスタ「7」を物理レジスタ「4」へマップ
し且つ仮想レジスタ「4」を物理レジスタ「7」へマッ
プし、一方物理レジスタ406Bは不変のまま維持して
いる。
【0044】次に、図7Cは、トップオブスタック即ち
ST(0)の内容をST(7)の内容と加算させるAD
D命令を示している。ST(0)の内容はスタック40
0Cにおいて(D4+D3)へ変化しており且つ仮想レ
ジスタ「7」(TOS)の内容も(D4+D3)へ変化
している。FXCHマップ404Cは変化していない
が、物理レジスタ「4」はこの加算を反映して変化して
いる。図7Dは図7CにおけるADD演算からの加算結
果を除去するためのPOP即ちポップ命令を示してい
る。この場合には、スタック400Dは、TOSから
(D4+D3)を除去することによりST(7)におい
て空のスロットが形成されていることを示している。ス
タックポインタ(TOS)は仮想レジスタ「7」から仮
想レジスタ「0」へ1だけインクリメントされている
が、仮想レジスタ402Dは変化していない。POP命
令は、FXCHマップ404D又は物理レジスタ406
Dを変化させていない。
【0045】従って、図7A−7Dの例においては、物
理レジスタを変化させた命令は図7A及び7Cにおける
プッシュ(push)及び加算(add)命令のみであ
る。FXCHもポップ(POP)も何れの命令も物理レ
ジスタを変化させていない。図8A−8HはPOP及び
ADD命令を含むより多様なサンプルを示している。図
8Aは図6A及び7Aと同様の初期状態を示している。
図8BはST(0)とST(6)とを交換するための別
のFXCH命令を示している。従って、スタック500
B、仮想レジスタ502B、FXCHマップ504Bは
アップデートされる。図8C及び8Dは図7C及び7D
に類似したPUSH命令を示しており、且つその結果が
示されている。次に、図8EはST(0)とST(7)
とを交換するためのFXCH命令を示している(図8D
のPUSH命令の後)。この場合には、TOS501は
仮想レジスタ「6」にあるので、ST(7)は仮想レジ
スタ「5」に位置されている。従って、図8Dの仮想レ
ジスタにおけるD5及びD9は図8Eにおいてスワップ
される。又、FXCHマップ504は5と0とをスワッ
ピングすることによって変化される。
【0046】図8Fは図8Eにおけるサンプルから継続
するPOP命令を示している。スタックにおいて、PO
P命令はトップオブスタック即ちスタックの上部におけ
るデータを除去し且つ空のスロットが形成される。仮想
レジスタにおいては、スタックポインタが仮想レジスタ
「6」から「7」へポイントするために1だけインクリ
メントするが、エントリD5は除去されない。又、FX
CHマップ504F及び物理レジスタ506Fは変化し
ない。
【0047】図8GはST(2)がトップオブスタック
へ加算される場合のADD命令を示している。図8Fを
参照すると、ST(2)はD1の値を有しており且つト
ップオブスタックはD8の値を有している。従って、ト
ップオブスタックは、現在、(D1+D8)を有してお
り且つST(2)は同一のまま止まる。このことは、仮
想レジスタ502Fにおいても反映されている。FXC
Hマップ504Gは変化することがないが、物理レジス
タ「7」は新しい番号がエンタされるので(D1+D
8)へ変化する。
【0048】図8Hは、この命令の前に、(D1+D
8)を収容するトップオブスタックとD9を収容するS
T(6)とを交換するための別のFXCH命令を示して
いる(図8G参照)。この命令は、トップオブスタック
である仮想レジスタ「7」とトップオブスタックから六
つ下側である仮想レジスタ「5」とをスワップさせる。
FXCHマップ504Hは、0と7とをスワッピングす
ることによってアップデートされ、一方物理レジスタは
同一のまま止まる。従って、例えば、浮動小数点レジス
タST(6)を必要とする何らかのその後の命令は、正
しいオペランドに対し仮想レジスタ「5」を物理レジス
タ「7」へマップするFXCHマップ504Hを参照す
る。
【0049】従って、本発明によれば、浮動小数点交換
演算のために必要とされるクロック数は、仮想レジスタ
及び、例えば、アップデートされる8個の物理レジスタ
番号を表わす3ビットを含むFXCHマップ又はルック
アップテーブルを使用することによって著しく減少され
ている。仮想レジスタ(プログラマによって見られる)
はFXCHマップによって物理レジスタに対してマッピ
ングされているので、物理レジスタの実際のデータビッ
トはあちこちと動かす必要はなく、それにより時間が節
約され且つ複雑なハードウエア配線は節約される。
【0050】以上、本発明の具体的実施の態様について
詳細に説明したが、本発明は、これら具体例にのみ限定
されるべきものではなく、本発明の技術的範囲を逸脱す
ることなしに種々の変形が可能であることは勿論であ
る。例えば、本発明は、整数交換演算(操作)などのそ
の他の演算即ち処理へ適用することも可能である。
【図面の簡単な説明】
【図1】 本発明において使用するプロセサのシステム
アーキテクチャを示した概略ブロック図。
【図2】 浮動小数点演算(操作)の命令の流れを示し
た概略図。
【図3】 本発明に基づく浮動小数点演算システムの一
実施例を示した概略ブロック図。
【図4A】 本発明に基づく浮動小数点演算システムを
実施する処理の流れを示したフローチャート。
【図4B】 本発明に基づく浮動小数点演算システムを
実施する処理の流れを示したフローチャート。
【図5】 本発明に基づく浮動小数点演算システムを実
施する処理の流れを示したフローチャート。
【図6A】 本発明に基づく浮動小数点演算の一例を示
した概略図。
【図6B】 本発明に基づく浮動小数点演算の一例を示
した概略図。
【図6C】 本発明に基づく浮動小数点演算の一例を示
した概略図。
【図6D】 本発明に基づく浮動小数点演算の一例を示
した概略図。
【図7A】 本発明に基づく浮動小数点演算の一例を示
した概略図。
【図7B】 本発明に基づく浮動小数点演算の一例を示
した概略図。
【図7C】 本発明に基づく浮動小数点演算の一例を示
した概略図。
【図7D】 本発明に基づく浮動小数点演算の一例を示
した概略図。
【図8A】 本発明に基づく浮動小数点演算の一例を示
した概略図。
【図8B】 本発明に基づく浮動小数点演算の一例を示
した概略図。
【図8C】 本発明に基づく浮動小数点演算の一例を示
した概略図。
【図8D】 本発明に基づく浮動小数点演算の一例を示
した概略図。
【図8E】 本発明に基づく浮動小数点演算の一例を示
した概略図。
【図8F】 本発明に基づく浮動小数点演算の一例を示
した概略図。
【図8G】 本発明に基づく浮動小数点演算の一例を示
した概略図。
【図8H】 本発明に基づく浮動小数点演算の一例を示
した概略図。
【図9A】 従来の浮動小数点演算の一例を示した概略
図。
【図9B】 従来の浮動小数点演算の一例を示した概略
図。
【符号の説明】
10 システムアーキテクチャ 12 バスインターフェース 16 命令キャッシュ 18 分岐ターゲットバッファ(BTB) 20 フェッチ/デコードユニット 22 データキャッシュ 24 発行ユニット 26 メモリ棚 28,30,32 演算論理ユニット(ALU) 34,36 浮動小数点ユニット(FPU) 102 浮動小数点交換(FXCH)マップレジスタ 104 命令キャッシュ 106 命令パーサ 108 パーセルレジスタ 110 デコーダ 112 論理ユニット 114 マルチプレクサ 116 バックアップ状態RAM 122 マルチプレクサ 124 推測ユニット

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】 スタック、仮想レジスタ、前記仮想レジ
    スタのうちの一つをスタックのトップとして指し示すス
    タックポインタ、物理レジスタ、前記仮想レジスタを前
    記物理レジスタへマッピングする参照テーブルを有して
    おり、命令を処理するシステムにおいて、 命令を発生する命令ユニット、 前記命令ユニットから命令を受取り、前記命令をデコー
    ドし且つ交換命令を含む命令のタイプを決定するデコー
    ドユニット、 前記参照テーブル及びデコードユニットへ結合されてお
    り、前記デコードユニットから受取った各交換命令に対
    して前記参照テーブルをアップデートする論理ユニッ
    ト、を有しており、前記物理レジスタが前記各交換命令
    に対して同一の内容を維持することを特徴とするシステ
    ム。
  2. 【請求項2】 請求項1において、前記命令ユニット
    が、 命令キャッシュ、 前記キャッシュへ結合している命令パーサ、 前記命令パーサへ結合されており且つ解析した命令を受
    取る複数個のパーセルレジスタ、を有することを特徴と
    するシステム。
  3. 【請求項3】 請求項1において、前記命令が浮動小数
    点命令を包含しており且つ前記論理ユニットが前記命令
    の何れかのオペランドを得るために前記参照テーブルを
    参照することを特徴とするシステム。
  4. 【請求項4】 請求項1において、前記命令が浮動小数
    点交換命令を包含していることを特徴とするシステム。
  5. 【請求項5】 請求項1において、前記命令が整数命令
    を包含していることを特徴とするシステム。
  6. 【請求項6】 スタック、仮想レジスタ、前記仮想レジ
    スタのうちの一つをスタックのトップとして指摘するス
    タックポインタ、物理レジスタ、前記仮想レジスタを前
    記物理レジスタへマッピングする参照テーブルを有して
    おり、浮動小数点命令を処理するシステムにおいて、 複数個の命令を発生する命令ユニット、 前記命令ユニットから前記複数個の命令をそれぞれ受取
    る複数個のデコーダを有しており、前記複数個の命令を
    デコードし且つ前記命令のうちの何れか一つが浮動小数
    点交換命令を包含する浮動小数点命令を含むものである
    か否かを決定するデコードユニット、 前記参照テーブルへ結合しており且つ前記デコードユニ
    ットにおける前記複数個のデコーダへそれぞれ結合して
    いる複数個の論理装置を有しており、前記デコードユニ
    ットから受取った各浮動小数点交換命令に対してアップ
    デートしたテーブルを発生させ、前記物理レジスタが前
    記各交換命令に対して同一の内容を維持する論理ユニッ
    ト、 前記論理ユニットからアップデートされたテーブルを受
    取り且つ前記アップデートされたテーブルで前記参照テ
    ーブルをアップデートさせる制御ユニット、を有するこ
    とを特徴とするシステム。
  7. 【請求項7】 請求項6において、更に、前記論理ユニ
    ット及び前記制御ユニットへ結合されているメモリを有
    しており、前記メモリは、前記制御ユニットからの制御
    信号に従って優先度参照テーブルで前記参照テーブルを
    アップデートさせることを特徴とするシステム。
  8. 【請求項8】 請求項7において、更に、前記制御ユニ
    ット及び前記メモリへ結合しているマルチプレクサを有
    しており、前記マルチプレクサは、前記制御ユニットか
    らの制御信号に従って、前記メモリからの前記優先度参
    照テーブル及び前記論理ユニットからのアップデートさ
    れたテーブルのうちの一つで前記参照テーブルをアップ
    デートさせることを特徴とするシステム。
  9. 【請求項9】 請求項6において、前記命令ユニット
    が、 命令キャッシュ、 前記キャッシュへ結合している命令パーサ、 前記命令パーサへ結合しており且つ解析された命令を受
    取る複数個のパーセルレジスタ、を有していることを特
    徴とするシステム。
  10. 【請求項10】 請求項6において、前記論理ユニット
    が浮動小数点交換命令以外の浮動小数点命令に対して前
    記参照テーブルを参照することを特徴とするシステム。
  11. 【請求項11】 スタック、仮想レジスタ、前記仮想レ
    ジスタのうちの一つに対してスタックのトップとして指
    摘するスタックポインタ、物理レジスタ、前記仮想レジ
    スタを前記物理レジスタに対してマッピングする参照テ
    ーブルを使用して命令を処理する方法において、 命令ユニットから命令を発生し、 前記命令をデコードし且つ前記命令がデコードユニット
    における交換命令を含むものであるか否かを決定し、 前記命令が交換命令である場合に、前記参照テーブルを
    アップデートし且つ前記物理レジスタの内容を不変に維
    持する、上記各ステップを有することを特徴とする方
    法。
  12. 【請求項12】 請求項11において、前記命令を発生
    するステップが、前記命令を解析するステップを有して
    いることを特徴とする方法。
  13. 【請求項13】 請求項11において、更に、前記参照
    テーブルを使用して浮動小数点命令を実行するステップ
    を有していることを特徴とする方法。
  14. 【請求項14】 請求項11において、前記命令が浮動
    小数点交換命令を包含していることを特徴とする方法。
  15. 【請求項15】 請求項11において、前記命令が整数
    命令を包含していることを特徴とする方法。
  16. 【請求項16】 請求項11において、前記参照テーブ
    ルをアップデートするステップが、 各浮動小数点交換命令に対して、アップデートしたテー
    ブルを発生し且つ前記物理レジスタの内容を維持し、 前記アップデートしたテーブルで前記参照テーブルをア
    ップデートする、上記各ステップを有することを特徴と
    する方法。
  17. 【請求項17】 請求項11において、更に、制御信号
    に従って優先度参照テーブルで前記参照テーブルをアッ
    プデートするステップを有することを特徴とする方法。
  18. 【請求項18】 請求項17において、前記優先度参照
    テーブルで前記参照テーブルをアップデートするステッ
    プが、 前記参照テーブルを前記アップデートしたテーブルか又
    は前記優先度参照テーブルの何れかでアップデートする
    かを決定し、 前記決定するステップに従って前記参照テーブルをアッ
    プデートする、上記各ステップを有することを特徴とす
    る方法。
  19. 【請求項19】 スタック、仮想レジスタ、スタックポ
    インタ、物理レジスタ、前記仮想レジスタを前記物理レ
    ジスタへ参照させるマップを使用して浮動小数点命令を
    処理する方法において、 命令が浮動小数点交換命令であるか否かを決定し、 前記命令が浮動小数点交換命令である場合には、前記物
    理レジスタの内容を不変のまま維持しながら、前記スタ
    ック、仮想レジスタ及びマップをアップデートさせる、
    上記各ステップを有することを特徴とする方法。
  20. 【請求項20】 請求項19において、更に、 前記命令がプッシュ命令であるか否かを決定し、 前記命令がプッシュ命令である場合には、前記マップの
    内容を維持しながら、前記スタック、スタックポイン
    タ、仮想レジスタ、物理レジスタをアップデートし、 前記命令がポップ命令であるか否かを決定し、 前記命令がポップ命令である場合には前記マップの内
    容、仮想レジスタ、物理レジスタを維持しながら、前記
    スタック及びスタックポインタをアップデートし、 前記命令が浮動小数点交換命令、プッシュ命令、ポップ
    命令のうちの何れでもない場合に前記命令が浮動小数点
    レジスタ命令であるか否かを決定し、 前記命令が浮動小数点レジスタ命令である場合に前記物
    理レジスタを参照するために前記マップを使用して前記
    命令を処理する、上記各ステップを有することを特徴と
    する方法。
  21. 【請求項21】 スタック、仮想レジスタ、スタックポ
    インタ、物理レジスタ、前記仮想レジスタを前記物理レ
    ジスタへ参照するマップを使用して浮動小数点演算を実
    行するシステムにおいて、 命令が浮動小数点交換命令であるか否かを決定する手
    段、 前記命令が浮動小数点交換命令である場合に、前記物理
    レジスタの内容を不変のまま維持しながら前記スタッ
    ク、仮想レジスタ、マップをアップデートする手段、を
    有することを特徴とするシステム。
  22. 【請求項22】 請求項21において、更に、 前記命令がプッシュ命令であるか否かを決定する手段、 前記命令がプッシュ命令である場合に、前記マップの内
    容を維持しながら、前記スタック、スタックポインタ、
    仮想レジスタ、物理レジスタをアップデートする手段、 前記命令がポップ命令であるか否かを決定する手段、 前記命令がポップ命令である場合には、前記マップ、仮
    想レジスタ、物理レジスタの内容を維持しながら、前記
    スタック及びスタックポインタをアップデートする手
    段、 前記命令が浮動小数点交換命令、プッシュ命令、ポップ
    命令の何れか一つでない場合に前記命令が浮動小数点レ
    ジスタ命令であるか否かを決定する手段、 前記命令が浮動小数点レジスタ命令である場合に前記物
    理レジスタを参照するために前記マップを使用して前記
    命令を処理する手段、を有することを特徴とするシステ
    ム。
  23. 【請求項23】 スタック、仮想レジスタ、前記仮想レ
    ジスタのうちの一つをスタックのトップとして指摘する
    スタックポインタ、物理レジスタ、前記仮想レジスタを
    前記物理レジスタへマッピングする参照テーブルであっ
    てその内容が物理レジスタ番号を有している参照テーブ
    ルを使用して、浮動小数点命令を処理する方法におい
    て、 参照テーブルエラー信号が発生したか否かを決定し、 命令を解析して前記参照テーブルエラー信号が発生しな
    かった場合にパーセルを発生し、 前記パーセルが発行されているか否かを決定し、 前記パーセルが発行されている場合に前記参照テーブル
    をメモリ内の所定の位置に保存し、 前記パーセルが浮動小数点交換命令であるか否かを決定
    し、 前記パーセルが浮動小数点交換命令である場合に前記参
    照テーブルをアップデートし且つ前記物理レジスタを不
    変に維持する、上記各ステップを有することを特徴とす
    る方法。
  24. 【請求項24】 請求項23において、前記参照テーブ
    ルをアップデートするステップが、前記浮動小数点交換
    命令のオペランドに従って前記参照テーブル内の物理レ
    ジスタ番号をスワッピングするステップを包含している
    ことを特徴とする方法。
  25. 【請求項25】 請求項23において、更に、 前記パーセルが浮動小数点交換命令でない場合に前記パ
    ーセルが浮動小数点レジスタを有しているか否かを決定
    し、 前記アップデートステップをスキップし且つ前記参照テ
    ーブルを使用して命令オペランドを獲得する、上記各ス
    テップを有することを特徴とする方法。
  26. 【請求項26】 仮想レジスタ、物理レジスタ、前記仮
    想レジスタを前記物理レジスタへマッピングする参照テ
    ーブルを包含する命令を処理するシステムにおいて、 複数個の命令を発生する命令ユニット、 前記命令ユニットから前記複数個の命令を受取り、前記
    命令をデコードし且つ命令が二つのオペランドレジスタ
    の内容をスワップするか否かを決定するデコードユニッ
    ト、 前記参照テーブル及びデコードユニットへ結合されてお
    り、前記デコードユニットから受取った各交換命令に対
    して前記参照テーブルをアップデートし、前記物理レジ
    スタが各交換命令に対して同一の内容を維持する論理ユ
    ニット、を有することを特徴とするシステム。
  27. 【請求項27】 請求項26において、更に、前記物理
    レジスタの内容を観察する一つの態様を示すスタック及
    び前記仮想レジスタのうちの一つに対してスタックのト
    ップとして指摘するスタックポインタを有しており、前
    記仮想レジスタが前記物理レジスタの内容を観察する別
    の態様を示していることを特徴とするシステム。
  28. 【請求項28】 請求項26において、前記命令が浮動
    小数点交換命令を包含していることを特徴とするシステ
    ム。
  29. 【請求項29】 請求項27において、前記命令が整数
    交換命令を包含していることを特徴とするシステム。
JP35647097A 1996-12-31 1997-12-25 浮動小数点演算システム Expired - Lifetime JP3841131B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US77558396A 1996-12-31 1996-12-31
US08/775583 1996-12-31

Publications (2)

Publication Number Publication Date
JPH10254699A true JPH10254699A (ja) 1998-09-25
JP3841131B2 JP3841131B2 (ja) 2006-11-01

Family

ID=25104852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35647097A Expired - Lifetime JP3841131B2 (ja) 1996-12-31 1997-12-25 浮動小数点演算システム

Country Status (4)

Country Link
US (1) US6035391A (ja)
EP (1) EP0851343B1 (ja)
JP (1) JP3841131B2 (ja)
DE (1) DE69734093D1 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112018A (en) * 1997-12-18 2000-08-29 Advanced Micro Devices, Inc. Apparatus for exchanging two stack registers
US6094716A (en) * 1998-07-14 2000-07-25 Advanced Micro Devices, Inc. Register renaming in which moves are accomplished by swapping rename tags
US6230262B1 (en) 1998-07-31 2001-05-08 Advanced Micro Devices, Inc. Processor configured to selectively free physical registers upon retirement of instructions
US6122656A (en) 1998-07-31 2000-09-19 Advanced Micro Devices, Inc. Processor configured to map logical register numbers to physical register numbers using virtual register numbers
US6240503B1 (en) 1998-11-12 2001-05-29 Advanced Micro Devices, Inc. Cumulative lookahead to eliminate chained dependencies
US6523106B1 (en) * 1998-12-21 2003-02-18 Intel Corporation Method and apparatus for efficient pipelining
US6338134B1 (en) 1998-12-29 2002-01-08 International Business Machines Corporation Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data
US6564312B1 (en) * 1999-06-15 2003-05-13 Koninklijke Philips Electronics N.V. Data processor comprising an arithmetic logic unit
US6339823B1 (en) * 1999-07-20 2002-01-15 Ip-First, L.L.C. Method and apparatus for selective writing of incoherent MMX registers
US6581155B1 (en) * 1999-08-25 2003-06-17 National Semiconductor Corporation Pipelined, superscalar floating point unit having out-of-order execution capability and processor employing the same
US6343296B1 (en) * 1999-09-03 2002-01-29 Lucent Technologies Inc. On-line reorganization in object-oriented databases
US6584907B2 (en) * 2000-03-17 2003-07-01 Ensign-Bickford Aerospace & Defense Company Ordnance firing system
US7496734B1 (en) * 2000-04-28 2009-02-24 Stmicroelectronics, Inc. System and method for handling register dependency in a stack-based pipelined processor
WO2002069180A1 (en) * 2001-02-21 2002-09-06 United States Postal Service Systems and methods for processing items in an item delivery system
WO2002069195A1 (en) * 2001-02-21 2002-09-06 United States Postal Service Systems and methods for producing and managing a tracking label in a an item delivery system
WO2002069245A1 (en) * 2001-02-21 2002-09-06 United States Postal Service Improved tracking label
US7143937B2 (en) * 2001-02-21 2006-12-05 United States Postal Service Systems and methods for utilizing a tracking label in an item delivery system
US6895498B2 (en) * 2001-05-04 2005-05-17 Ip-First, Llc Apparatus and method for target address replacement in speculative branch target address cache
US7165168B2 (en) * 2003-01-14 2007-01-16 Ip-First, Llc Microprocessor with branch target address cache update queue
US7707397B2 (en) * 2001-05-04 2010-04-27 Via Technologies, Inc. Variable group associativity branch target address cache delivering multiple target addresses per cache line
US7134005B2 (en) * 2001-05-04 2006-11-07 Ip-First, Llc Microprocessor that detects erroneous speculative prediction of branch instruction opcode byte
US7165169B2 (en) * 2001-05-04 2007-01-16 Ip-First, Llc Speculative branch target address cache with selective override by secondary predictor based on branch instruction type
US7200740B2 (en) * 2001-05-04 2007-04-03 Ip-First, Llc Apparatus and method for speculatively performing a return instruction in a microprocessor
US20020194461A1 (en) * 2001-05-04 2002-12-19 Ip First Llc Speculative branch target address cache
US6886093B2 (en) * 2001-05-04 2005-04-26 Ip-First, Llc Speculative hybrid branch direction predictor
US7234045B2 (en) * 2001-07-03 2007-06-19 Ip-First, Llc Apparatus and method for handling BTAC branches that wrap across instruction cache lines
US6823444B1 (en) * 2001-07-03 2004-11-23 Ip-First, Llc Apparatus and method for selectively accessing disparate instruction buffer stages based on branch target address cache hit and instruction stage wrap
US7203824B2 (en) * 2001-07-03 2007-04-10 Ip-First, Llc Apparatus and method for handling BTAC branches that wrap across instruction cache lines
US7162619B2 (en) * 2001-07-03 2007-01-09 Ip-First, Llc Apparatus and method for densely packing a branch instruction predicted by a branch target address cache and associated target instructions into a byte-wide instruction buffer
US7159097B2 (en) * 2002-04-26 2007-01-02 Ip-First, Llc Apparatus and method for buffering instructions and late-generated related information using history of previous load/shifts
US7210026B2 (en) 2002-06-28 2007-04-24 Sun Microsystems, Inc. Virtual register set expanding processor internal storage
US7203820B2 (en) * 2002-06-28 2007-04-10 Sun Microsystems, Inc. Extending a register file utilizing stack and queue techniques
US7185186B2 (en) * 2003-01-14 2007-02-27 Ip-First, Llc Apparatus and method for resolving deadlock fetch conditions involving branch target address cache
US7143269B2 (en) * 2003-01-14 2006-11-28 Ip-First, Llc Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
US7152154B2 (en) * 2003-01-16 2006-12-19 Ip-First, Llc. Apparatus and method for invalidation of redundant branch target address cache entries
US7178010B2 (en) * 2003-01-16 2007-02-13 Ip-First, Llc Method and apparatus for correcting an internal call/return stack in a microprocessor that detects from multiple pipeline stages incorrect speculative update of the call/return stack
US7237098B2 (en) * 2003-09-08 2007-06-26 Ip-First, Llc Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence
US7043626B1 (en) 2003-10-01 2006-05-09 Advanced Micro Devices, Inc. Retaining flag value associated with dead result data in freed rename physical register with an indicator to select set-aside register instead for renaming
US20070192573A1 (en) * 2006-02-16 2007-08-16 Guillermo Savransky Device, system and method of handling FXCH instructions
US8914616B2 (en) * 2011-12-02 2014-12-16 Arm Limited Exchanging physical to logical register mapping for obfuscation purpose when instruction of no operational impact is executed
US9201656B2 (en) 2011-12-02 2015-12-01 Arm Limited Data processing apparatus and method for performing register renaming for certain data processing operations without additional registers
US10417001B2 (en) * 2012-12-27 2019-09-17 Intel Corporation Physical register table for eliminating move instructions
MA44821A (fr) 2016-02-27 2019-01-02 Kinzinger Automation Gmbh Procédé d'allocation d'une pile de registres virtuels dans une machine à pile

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5487156A (en) * 1989-12-15 1996-01-23 Popescu; Valeri Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
GB9112754D0 (en) * 1991-06-13 1991-07-31 Int Computers Ltd Data processing apparatus
US5522051A (en) * 1992-07-29 1996-05-28 Intel Corporation Method and apparatus for stack manipulation in a pipelined processor
US5367650A (en) * 1992-07-31 1994-11-22 Intel Corporation Method and apparauts for parallel exchange operation in a pipelined processor
US5551004A (en) * 1993-05-28 1996-08-27 Sgs-Thomson Microelectronics, Inc. Structure which renders faulty data of a cache memory uncacheable in order that a partially functional cache memory may be utilized
US5826094A (en) * 1993-09-30 1998-10-20 Intel Corporation Register alias table update to indicate architecturally visible state
US5548776A (en) * 1993-09-30 1996-08-20 Intel Corporation N-wide bypass for data dependencies within register alias table
US5499352A (en) * 1993-09-30 1996-03-12 Intel Corporation Floating point register alias table FXCH and retirement floating point register array
US5613132A (en) * 1993-09-30 1997-03-18 Intel Corporation Integer and floating point register alias table within processor device
US5696955A (en) * 1994-06-01 1997-12-09 Advanced Micro Devices, Inc. Floating point stack and exchange instruction
US5640526A (en) * 1994-12-21 1997-06-17 International Business Machines Corporation Superscaler instruction pipeline having boundary indentification logic for variable length instructions
US5634118A (en) * 1995-04-10 1997-05-27 Exponential Technology, Inc. Splitting a floating-point stack-exchange instruction for merging into surrounding instructions by operand translation

Also Published As

Publication number Publication date
DE69734093D1 (de) 2005-10-06
EP0851343B1 (en) 2005-08-31
EP0851343A3 (en) 2000-03-22
US6035391A (en) 2000-03-07
EP0851343A2 (en) 1998-07-01
JP3841131B2 (ja) 2006-11-01

Similar Documents

Publication Publication Date Title
JP3841131B2 (ja) 浮動小数点演算システム
JP3977016B2 (ja) 仮想レジスタ番号を用いて論理レジスタ番号を物理レジスタ番号にマッピングするように構成されるプロセッサ
JP3628379B2 (ja) 命令を処理するためのパイプラインを有するマイクロプロセッサ装置およびそれにおいて用いるためのプログラムカウンタ値を発生する装置
JP3751049B2 (ja) パイプラインプロセッサおよびその動作方法
JP3597540B2 (ja) 並列データプロセッサにおけるアクティブ命令を回転させる方法および装置
US6253287B1 (en) Using three-dimensional storage to make variable-length instructions appear uniform in two dimensions
EP0401992B1 (en) Method and apparatus for speeding branch instructions
US8769539B2 (en) Scheduling scheme for load/store operations
US5835747A (en) Hierarchical scan logic for out-of-order load/store execution control
WO1993022722A1 (en) A system and method for retiring instructions in a superscalar microprocessor
US6018798A (en) Floating point unit using a central window for storing instructions capable of executing multiple instructions in a single clock cycle
WO1996012228A1 (en) Redundant mapping tables
JP2000029701A (ja) 単一クロック・サイクルに非連続命令を取り出すための方法およびシステム。
JP3678443B2 (ja) スーパーパイプライン式スーパースカラーマイクロプロセッサ用の書き込みバッファ
US6112296A (en) Floating point stack manipulation using a register map and speculative top of stack values
JP3866921B2 (ja) ストアアドレス生成およびユニバーサルな依存性ベクトルに基づくロードブロックのためのメカニズム
JP3866920B2 (ja) 命令のリタイアメント時に物理レジスタを選択的に自由にするよう構成されたプロセッサ
US6405303B1 (en) Massively parallel decoding and execution of variable-length instructions
JP3866513B2 (ja) データストリーミングのためのコンピュータのプロセッサ及び方法
CN115374923A (zh) 基于risc-v扩展的通用神经网络处理器微架构
US6205541B1 (en) System and method using selection logic units to define stack orders
US5708788A (en) Method for adjusting fetch program counter in response to the number of instructions fetched and issued
US5768553A (en) Microprocessor using an instruction field to define DSP instructions
US6185674B1 (en) Method and apparatus for reconstructing the address of the next instruction to be completed in a pipelined processor
US6175909B1 (en) Forwarding instruction byte blocks to parallel scanning units using instruction cache associated table storing scan block boundary information for faster alignment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060607

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: 20060704

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060801

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: 20100818

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100818

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110818

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120818

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130818

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term