JPH117389A - プロセサ用の命令を処理するシステム及び方法 - Google Patents

プロセサ用の命令を処理するシステム及び方法

Info

Publication number
JPH117389A
JPH117389A JP10127407A JP12740798A JPH117389A JP H117389 A JPH117389 A JP H117389A JP 10127407 A JP10127407 A JP 10127407A JP 12740798 A JP12740798 A JP 12740798A JP H117389 A JPH117389 A JP H117389A
Authority
JP
Japan
Prior art keywords
instruction
load
store
parcel
parcels
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.)
Pending
Application number
JP10127407A
Other languages
English (en)
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.)
Metaflow Technologies Inc
Original Assignee
Metaflow Technologies 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 Metaflow Technologies Inc filed Critical Metaflow Technologies Inc
Publication of JPH117389A publication Critical patent/JPH117389A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3854Instruction completion, e.g. retiring, committing or graduating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Cash Registers Or Receiving Machines (AREA)

Abstract

(57)【要約】 【課題】 必要とされるクロック数を減少させ且つプロ
セスを簡単化させる命令を処理するシステム及び方法を
提供する。 【解決手段】 本発明のデータ処理システムはプログラ
ム命令を発生する命令ユニットを有している。該命令ユ
ニットへ結合されているパースユニットがプログラム命
令を受取る。該パースユニットは、該命令がロード演算
とストア演算の両方を包含しているか否かを判別し且つ
ロード及びストア演算の両方を包含する命令に対し第一
及び第二パーセルを発生する。パースユニットへ結合し
ているデコードユニットが第一及び第二パーセルを受取
る。デコードユニットは、第一及び第二パーセルへ識別
番号を取付け、第二パーセルの識別番号は第一パーセル
の識別番号から決定可能である。デコードユニットへ結
合している発行ユニットが第一及び第二パーセルを受取
る。発行ユニットは命令実行のために該パーセルを命令
棚、ロード棚、ストア棚に対して発行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プロセサ用の命令
を処理するシステムに関するものであって、更に詳細に
は、ロード演算及びストア演算を持った命令を処理する
ためのシステムに関するものである。
【0002】
【従来の技術】従来のプロセサ設計は、一般的に、3つ
の段階、即ちフェッチ(fetch)、発行(issu
e)、実行(execute)における命令の制御を行
なう。第一段階において、最も最近にフェッチした命令
に対してポイント即ち指向しているプログラムカウンタ
によって識別される位置においてメモリから命令をフェ
ッチし、その際に次の命令をフェッチすることを可能と
する。フェッチに続いて、該命令は潜在的なデータの従
属性に対してチェックが行なわれ、且つ、それがそのテ
ストをパスする場合に、該命令及びそのオペランドが実
行のためにイシュー即ち発行される(データ従属性は、
その命令に対するデータがいまだに使用可能でないため
に命令を実行することが不可能である場合のことであ
る)。発行された命令は発行−仮想プログラムカウンタ
によって識別することが可能である。命令が発行される
と、それは実行段階へ送られ、そこで、それは結果を発
生し、該結果はレジスタファイルか又はメモリのいずれ
かに書込まれ、その際にプロセサの状態を変更させる。
別のプログラムカウンタ、即ちアップデート仮想PCが
丁度完了したその命令を識別し、プロセサの状態をアッ
プデート即ち更新する。このような3つのプログラムカ
ウンタ(フェッチ、発行−仮想及びアップデート−仮
想)は従来同期されている。従って、フェッチされる命
令は、そのオペランドが使用可能である場合に発行さ
れ、且つ発行される命令は実行パイプラインを介して進
行する。パイプラインの終りにおいて、プロセサの状態
がアップデートされる。プログラムにおける命令の順番
によって定義される厳格な逐次的順番において、命令が
フェッチされ、発行され、実行され、且つプロセサの状
態がアップデートされる。
【0003】従来のプロセサにおけるこれら3つのプロ
グラムカウンタ(フェッチ、発行−仮想及びアップデー
ト−仮想)は、それらが相次ぐ隣接した命令に対してポ
イントするようにリンクされている。従って、任意の時
間において、従来のプロセサにおけるフェッチ、発行−
仮想及びアップデート−仮想プログラムカウンタは命令
N+2、N+1、Nに対してポイントする。
【0004】より最近の進化したプロセサはレジスタス
コアボードと呼ばれる別の要素を有しており、それは必
要とされる資源がその命令を実行するために使用可能で
あるかを判別するために命令に対する資源をチェックす
る。使用可能である場合には、実行段階におけるその命
令が終了する前であってもその命令が発行され、そのこ
とは順番外の実行となる場合がある。レジスタスコアボ
ードが発行時間における命令によって修正される資源を
記録する(ロックする)。これらの資源へアクセスする
ことを所望する任意の爾後の命令は、最初にそれらをロ
ックした命令が資源をアップデートすることによって、
その後にそれらをアンロックし且つそのことをプロセサ
へ通知するまで発行させることは不可能である。
【0005】これらの既知のプロセサデザインは、典型
的に命令間の資源従属性に起因して命令の発行が停止す
る場合に命令フェッチを停止させるという動作上の欠点
を有している。このような停止は、実行のために発行さ
れる命令がより少ないものであるために性能が失われる
こととなる。従って、従来のプロセサにおける発行−仮
想とフェッチプログラムカウンタとの間の直接的な従属
性はピーク性能を達成することを阻止する。この性能の
損失は、同時的に複数個の命令がフェッチされる場合に
より顕著なものとなる場合がある。従来のパイプライン
型プロセサ設計においては、サイクル毎にN個の命令を
フェッチすることが可能であるようにN個のパイプライ
ンを並列的に配置することは、Nのファクタだけ性能を
増加させることとはならない。何故ならば、パイプライ
ンのマトリクスにおける全ての要素と命令との間に相互
作用があり、従ってデータ従属性競合を増加させるから
である。
【0006】ある従来技術のプロセサ設計は、分岐予測
を包含している。このようなシステムにおいては、プロ
セサが命令を実行する場合に、分岐に到達すると、実行
の蓋然性のある方向に関して予測が行なわれる。次い
で、プロセサはその分岐命令に従って実行を行ない、一
方第一分岐のバリデーション即ち認証を待機する。第一
分岐が認証される前に第二分岐に到達すると、プロセサ
は命令をフェッチすることを停止し、性能を劣化させ
る。
【0007】上述した特徴のうちの少なくとも幾つかを
有するプロセサはインテルx86マイクロプロセサであ
る。然しながら、インテルx86アーキテクチュアの1
つの不便な特徴は、例えば、整数命令がオペランドと結
果とを同一のメモリアドレスにおいて有する場合があ
り、従って、同一のアドレスに対してロード演算とスト
ア演算の両方が必要とされる。従って、例えばADD又
はSUB等のアッセンブラ演算が、データロード演算と
データストア演算の両方を暗示し、データはアドレスか
らフェッチし、何らかの態様で修正し(例えば、他のデ
ータと結合)、次いで同一のアドレスに保存されねばな
らない。CISC/RISCアーキテクチュアにおいて
は(CISC命令は実行のためにRISC命令へ分解さ
れる)、このような演算(「ロード−ストア(load
−store)」)演算は、算術部分とデータ取扱い部
分とに分解される。然しながら、データ取扱い部分は、
ロードフェーズとストアフェーズに対して別個のRIS
C演算(「R−OPs」)を包含せねばならない。例え
ば、インテルペンチアムプロは、このような各命令に対
して4つのオペレーション即ち演算を使用しており、即
ち、(1)ロードアドレス計算、(2)ストアアドレス
計算、(3)算術演算(R−OP)、(4)ストアデー
タである。その結果、結果とオペランドの両方が同一の
アドレスを必要とする場合には、そのアドレスは必要も
ないのに二度計算されることとなる。このことは、この
ような各命令を分解せねばならないRISC演算即ち
「パーセル(parcel)」の数を増加させる。
【0008】従って、CISC/RISCアーキテクチ
ュアにおいてロード−ストア命令を取り扱うための改良
した方法が、このように同一のアドレスを二度(即ち、
オペランド及び結果に対し)計算せねばならない不便性
を解消するために必要とされている。
【0009】
【発明が解決しようとする課題】本発明は、以上の点に
鑑みなされたものであって、上述した如き従来技術の欠
点を解消し、プロセサにおける命令の処理を行なう改良
したシステム及び方法を提供することを目的とする。本
発明は、必要とされるクロック数を減少させ且つ処理を
簡単化させる命令を処理するシステム及び方法を提供す
ることを目的とする。本発明の別の目的とするところ
は、命令演算即ち処理において必要とされるパーセルの
数を減少させるための命令を処理するシステム及び方法
を提供することである。
【0010】
【課題を解決するための手段】本発明によればプログラ
ム命令を発生する命令ユニットと、前記命令ユニットへ
結合されており且つ前記プログラム命令を受取るパース
(parse)ユニットであって、前記命令がロード演
算とストア演算の両方を包含しているか否かを判別し且
つロード演算とストア演算の両方を包含する命令に対し
第一パーセルと第二パーセルとを発生するパースユニッ
トと、前記パースユニットへ結合しており且つ前記第一
パーセル及び第二パーセルを受取るデコードユニットで
あって、前記第一及び第二パーセルに対して前記第二パ
ーセルの識別番号が前記第一パーセルの識別番号から決
定可能である識別番号を取付けるデコードユニットと、
前記デコードユニットへ結合しており且つ前記パーセル
を受取る発行ユニットであって、命令実行のための命令
棚、ロード棚、ストア棚へパーセルを発行する発行ユニ
ットとを有するデータ処理システムが提供される。
【0011】本発明の別の側面においては、第一及び第
二パーセルのみを発生するためにロード演算とストア演
算の両方を含む命令をパーシング即ち構文解析するステ
ップと、前記第一及び第二パーセルをデコードするステ
ップと、前記第一及び第二パーセルを発行するステップ
と、前記第一及び第二パーセルを実行するステップとを
有するデータ処理方法が提供される。
【0012】本発明の別の側面においては、データ処理
方法が提供され、該方法は、第一及び第二パーセルのみ
を発生するためにロード及びストア演算の両方を含む命
令をパーシング即ち構文解析するステップと、前記第一
及び第二パーセルをデコードするステップであって、同
一のパーセルに対してロードイネーブル信号及びストア
イネーブル信号の両方を発生するデコードするステップ
と、前記第一及び第二パーセルを発行し且つ前記第一及
び第二パーセルのうちの一方をロード棚及びストア棚の
両方の上に配置させるステップと、前記第一及び第二パ
ーセルを実行するステップとを有している。
【0013】理解すべきことであるが、前述した一般的
な説明及び以下の詳細な説明は例示的なものであって且
つ本発明の特許請求の範囲を制限することの意図を持っ
てなされているものではない。
【0014】
【発明の実施の形態】図1は本発明において使用するこ
との可能なシステムアーキテクチュアの一例を示してい
る。図1のシステムアーキテクチュアは、L1キャッシ
ュ及びL2キャッシュの両方へ接続しているバスインタ
ーフェース12へ接続している外部バスを有している。
L1キャッシュは、分岐ターゲットバッファ(BTB)
18へ接続している命令キャッシュ16及びデータキャ
ッシュ22の両方を包含している。命令キャッシュ16
はフェッチ/デコードユニット20へ接続しており、フ
ェッチ/デコードユニット20は発行ユニット24へ接
続している。発行ユニット24はメモリ棚26へ接続す
ると共に、算術論理ユニット(ALU)(28,30,
32)及び浮動小数点ユニット(FPU)(34,3
6)へ接続している。
【0015】本発明においては、命令は、通常、3つの
フェーズ、即ち発行フェーズと、実行フェーズと、後退
フェーズの3つのフェーズで処理される。これらのフェ
ーズを包含する命令の流れを図2Aに示してある。発行
フェーズは命令を「順番」に処理し且つ以下のステージ
(段階)、即ちフェッチ(fetch)42、パース
(parse)44、デコード(decode)46、
発行(issue)50を包含している。実行フェーズ
は、命令を「順番外」に処理し且つ以下のステージ、即
ちスケジュール(schedule)52、オペランド
フェッチ(operand fetch)54、実行
(execute)56、棚上げ(shelve)58
を包含している。後退フェーズは、命令を再度「順番」
に処理し且つ以下のステージ、即ち完了(comple
te)60、後退(retire)64、検索(ret
rieve)66、書き戻し(writeback)6
8を包含している。これら3つのフェーズのステージは
パイプラインで処理される。
【0016】命令の順番外実行を可能とする基本的なパ
イプラインブロック図を図2Bに示してある。基本的パ
イプラインの主要な要素は、命令キャッシュ、レジスタ
ファイル、1つまたはそれ以上の実行ユニットを包含し
ており、それら全てはパイプラインレジスタによって分
離されている。
【0017】本発明の順番外実行技術及びその他の関連
する部分は以下の3つの文献において詳細に説明されて
おり、それら全ての文献の記載内容は引用によって本明
細書に取込む。(1)米国特許第5,487,156号
(Popescu et al.)、「フェッチされた
順番に逐次的に割り当てられ且つ格納される命令の独立
的にフェッチし、発行し且つアップデートする演算を有
するプロセサアーキテクチュア(PROCESSOR
ARCHITECTURE HAVING INDEP
ENDENTLY FETCHING ISSUING
AND UPDATING OPERATIONS
OF INSTRUCTIONS WHICH ARE
SEQUENTIALLY ASSIGNED AN
D STORED IN ORDER FETCHE
D)」、1990年12月5日出願、(’156特許)
(2)Val Popescu et al.、「メタ
フローアーキテクチュア(The Metaflow
Architecture)」、IEEEマイクロ、1
991年6月(メタフロー文献)、(3)Gurind
ar S. Sohi著「高性能インタラプト可能多機
能ユニットパイプライン型コンピュータ用命令発行論理
(Instruction Issue Logic
for High−Performance, Int
erruptible, multiple Func
tional Unit, Pipelined Co
mputers)」、IEEE・トランズアクションズ
・オン・コンピュータズ、vol.39、No.3、1
990年3月(Sohi文献)。次に、図2Aを参照す
ると、発行フェーズの命令フェッチステージ42期間中
に、キャッシュラインが命令キャッシュから命令フェッ
チバッファ内へ読取られる。命令フェッチステージは、
命令キャッシュからの次のフェッチアドレスを予測する
分岐ターゲットキャッシュと関連して動作する。発行フ
ェーズの命令パースステージ44は命令のタイプ及びそ
の境界を検知し且つ適宜の命令バイトを命令デコードス
テージへパスする。命令デコードステージ46において
は、パースステージ44からの命令バイトが、例えば、
マイクロコントロールROMに加えて、並列的に4つの
デコーダへ供給される。これらのデコーダは、例えば、
x86命令バイトを「パーセル(parcel)」と呼
ばれるRISC演算(処理)へ翻訳する。又、デコード
ステージ期間中に全てのレジスタのリネーム即ち改名動
作が行なわれる。命令発行ステージ50は、それがロー
ド又はストア命令である場合には、メモリ棚と並列的に
命令棚内に該命令を棚上げする。
【0018】実行フェーズのスケジュールステージ52
において、ALU又はFPUはオペランドの使用可能性
及びその年代に基づいて命令を選択する。そのオペラン
ドが使用可能な最も古い命令が最初に選択される。実行
のために命令がスケジュールされた後に、そのオペラン
ドが結果棚又はセイン(sain)即ち健全なレジスタ
ファイルのいずれかからフェッチされる。結果棚は、命
令をリタイア即ち後退させる前に命令の結果を一時的に
格納させるメモリ構成体である。セインレジスタファイ
ルは、プログラマが見える物理的レジスタファイルであ
る。図1の例示的なシステムアーキテクチュアに示した
ように3つのALUと2つのFPUとを包含する5つの
実行ユニットが存在している。ALU1は全ての算術演
算を行なうことが可能であり且つALU2は乗算及び除
算を除く全ての算術演算を行なうことが可能である。A
LU3は、メモリ演算に対する間接的な動作を解消する
ために使用され、即ちそれはメモリ演算に対するアドレ
ス計算の全てを行なう。FPU1は加算、整数から浮動
小数点への変換及びその逆変換、整数への丸め、減算及
びマルチメディア命令を行なうことが可能である。FP
U2は除算、平方根、乗算及び超越関数の処理を行なう
ことが可能である。従って、クロック毎に最大で2つの
浮動小数点命令を浮動小数点ユニットに対して発行する
ことが可能である。実行フェーズの最後のステージは棚
ステージ58である。実行フェーズは順番外に行なわれ
るが、次のフェーズである後退フェーズは順番に行なわ
れる。従って、棚ステージ58においては、順番外に実
行された命令の結果が結果棚内に格納される。結果棚か
らのデータは従属命令によって使用することが可能であ
る。
【0019】後退フェーズは4つのステージ、即ち、完
了、後退、検索、書き戻しを包含している。完了ステー
ジにおいて、1つの命令の全てのパーセルの完了が、該
パーセルのうちのいずれかに関するトラップ及び欠陥と
共に検知される。後退ステージにおいては、単一のクロ
ックで後退させることの可能な完了したパーセルの数が
決定される。1個のパーセルが後退されると、その結果
が検索ステージ66において結果棚から読取られる。次
いで、結果棚からの結果が書き戻しステージ68におい
てプログラマが見えるレジスタファイルに対して引き渡
される。
【0020】本発明は上述した3つのフェーズのうちで
発行フェーズと実行フェーズとに向けられたものであり
且つ両方に対して単一のパーセルを使用することにより
ロード演算とストア演算において必要とされるパーセル
即ちRISC OPの数を減少させるための新規なシス
テム及び方法を提供するものである。パース、デコー
ド、発行ステージを包含する発行フェーズ及び本発明に
基づく実行フェーズについて以下に詳細に説明する。
【0021】パースステージのフローチャート及びブロ
ック図を夫々図3及び4において示してある。図3を参
照すると、命令が同一のメモリ位置においてのロード
(読取り)及びストア(書込み)の両方を包含するもの
ではない場合には、本発明は例えばx86アーキテクチ
ュアにおいて使用されている方法のように命令をパース
即ち構文解析する従来の方法を使用する(ステップ12
0)。その命令が同一のメモリ位置においての読取り及
び書込みの両方を包含する場合には、部分的命令フラッ
グがセットされるか否かが決定される(ステップ10
6)。命令フラッグがセットされない場合には、空デコ
ードレジスタが使用可能であるか否かが判別される(ス
テップ108)。空デコードレジスタが使用可能でない
場合には、本プロセスは、空デコードレジスタが使用可
能となるまで終了する(ステップ122)。各反復に対
して新たなクロックが必要とされる。空デコードレジス
タが使用可能である場合には(ステップ108)、該命
令のコピーが空デコードレジスタ内へ配置され且つ最後
の(第二の)パーセルフラッグがそのデコードレジスタ
においてクリアされる(ステップ110)。
【0022】部分的命令フラッグがセットされると、こ
のことは、第一パーセルが既に空デコードレジスタ内に
配置されたことを意味し、且つ現在のパーセルは命令キ
ャッシュから読取った単一命令からの2つのパーセルの
うちの最後即ち2番目のものである。別の空デコードレ
ジスタが使用可能である場合には(ステップ112)、
同一の命令のコピーが次の空デコードレジスタ内へ配置
され且つそのデコードレジスタ内の最後のパーセルフラ
ッグがセットされる(ステップ114)。次いで、その
命令は命令フェッチバッファから取除かれ(ステップ1
16)、且つ別の命令でこのプロセス全体が再度開始さ
れる。ステップ112において、付加的な空デコードレ
ジスタが使用可能でない場合には、部分的命令フラッグ
がセットされ(ステップ118)、且つ本プロセスは終
了する(ステップ122)。部分的命令フラッグは、次
のクロック期間中に該命令は第二パーセルを形成するた
めに次の使用可能な空レジスタへコピーされることが必
要であることをシステムに通知する。
【0023】従って、図3のフローチャートに示したパ
ースステージにおいては、1つの命令から2つのパーセ
ルが発生され、その場合に該命令は同一のメモリ位置に
おいて読取りと書込みの両方を包含している。空デコー
ドレジスタが使用可能でない場合には、本プロセスは、
空デコードレジスタが各反復に対するクロックの犠牲に
おいて使用可能となるまで待機する。少なくとも2つの
空デコードレジスタが使用可能であると、同一のクロッ
クにおいて第一及び第二パーセルが発生される。然しな
がら、1つの空デコードレジスタのみが使用可能である
場合には、現在のクロック期間中に第一パーセルが発生
され且つ第二パーセルは次のクロック期間中に発生され
る。従って、第一及び第二パーセルは連続するデコード
レジスタ内に保存される。図3のフローチャートは、命
令フラッグがセットされているか否かを判別することに
よって、現在のパーセルが第一パーセルであるか又は第
二パーセルであるかを検知する。現在のクロック期間中
に使用可能な空デコードレジスタが存在しない場合に
は、本プロセスは、空デコードレジスタが使用可能とな
るまで次のクロックが開始することを待機せねばならな
い。
【0024】図3のフローチャートに示したプロセスを
実行する好適な実施例を図4に示してある。図4を参照
すると、命令キャッシュ132が命令パーサーFIFO
134に対して命令を供給する。デコーダ136A,1
36B,136C,136Dは、該命令があるメモリ位
置を読取り且つ書込むか否かを判別する。部分的命令フ
ラッグ(図3におけるステップ166)はパース制御ユ
ニット146において制御される。部分的命令フラッグ
は2つのパーセルを必要とする命令において第一パーセ
ルと第二パーセルとの間で区別を行なう目的を有してい
る。例えば、現在のクロック期間中に、単に1つのパー
セルに対して余裕が存在するに過ぎない場合、即ち単に
1つの空デコードレジスタが使用可能であるに過ぎない
場合には、第一パーセルがその使用可能な空デコードレ
ジスタ内にコピーされ、且つ第二パーセルはその後のク
ロック期間中に使用可能となる次の空デコードレジスタ
内にコピーされる。次のクロックにおいて、部分的命令
フラッグはセットされ、従って本プロセスは第一パーセ
ルが既に発行されたことを覚えている。
【0025】図4において1−10に示した信号線は以
下の内容を表わしている。
【0026】 信号線 信号名 1 命令パーサーFIFOからの命令データ 2A,2B,2C パース制御信号 3 デコードレジスタ満杯又は空信号 4 デコードレジスタ書込イネーブル信号 5 デコードレジスタ1へ入力される命令データ 6 デコードレジスタ2へ入力される命令データ 7 デコードレジスタ3へ入力される命令データ 8 デコードレジスタ4へ入力される命令データ 9 命令除去制御信号 10 ロード−ストア信号 デコーダ136A,136Dは、その命令が信号線10
を介して読取り動作と書込み動作の両方を有するか否か
をパース制御146へ知らせる。命令パーサーFIFO
134からの命令データ1はパース制御146からの制
御信号に従って命令を1つを越えるデコードレジスタへ
コピーすべきであるか否かを決定するマルチプレクサ
(MUX)138,140,142を介して命令データ
5,6,7又は8としてデコードレジスタFIFO14
4へ転送される。パース制御146はパース制御信号2
A,2B,2Cをマルチプレクサ138,140,14
2へ供給し、命令を適宜のデコードレジスタへ転送す
る。該デコードレジスタを包含するデコードレジスタF
IFO144は、該デコードレジスタの各々が満杯であ
るか又は空3であるか否かをパース制御146へ通知す
る。それに応答して、パース制御146は、デコーダ1
36A−136D及びマルチプレクサ138,140,
142に関連してデコードレジスタ内にコピーされるべ
き命令データに対しデコードレジスタFIFO144へ
書込イネーブル信号4を供給する。
【0027】好適実施例においては、最大で4個の空レ
ジスタが一度に使用可能である。従って、デコーダ13
6A−136Dは、1つの命令が読取りと書込みの両方
を包含しているか否かを決定し且つパース制御146に
対してロード−ストア信号10を発生する。1つの命令
が(ロード)読取り(ストア)書込みの両方を必要とす
る場合には、マルチプレクサ138,140又は142
は1つの命令を二度コピーして2つのパーセルを形成す
ることを可能とする。特に、MUX138は第一命令の
2つのコピーを形成する能力を提供しており、MUX1
40は第二命令の2つのコピーを形成する能力を提供し
ており、且つMUX142は第二又は第三命令の2つの
コピーを形成する能力を提供している。又、パース制御
146はパースステージが完了する場合に命令を除去す
るために、命令パーサーFIFO144に対して命令除
去制御信号9を供給する。
【0028】本発明においては、パースステージは同一
のメモリアドレスのロード及びストアを包含する1つの
命令の2つのパーセルを発生することが必要であるに過
ぎない。例えば、次の命令はアドレス「bx+si」の
メモリ位置の内容をその既存の内容とレジスタdxの内
容との和で置換させる。
【0029】ADD[bx+si],dx 従来の方法は、該命令を完了するのに3つのパーセルを
必要としており、即ち、(1)オペランドがメモリから
一時的レジスタ(例えば、LD temp,[bx+s
i])へロードされ、(2)別のレジスタ(例えば、A
DD temp,dx)の内容へ加算され、且つ(3)
その結果を同一のメモリ位置(例えば、ST[bx+s
i],temp)内に保存する。従来の方法は3つのパ
ーセルを必要とするので、メモリアドレスはロード(第
一)パーセル及びストア(第三)パーセルの両方におい
て不必要に計算される。本発明においては、ロードパー
セル及びストアパーセルは結合されてロード−ストアパ
ーセルとなっている(例えば、LDST[bx+s
i],temp)。従って、本発明の2つのパーセルが
従来の方法において必要とされていた3つのパーセルの
作業を行なっている。このことは、図3における好適実
施例のパースステージのフローチャート100におい
て、ロード−ストア命令が単に2つのデコードレジスタ
へコピーされて2つのパーセルを形成することを意味し
ている。このことは、第三パーセルを次の命令に対して
解放し、クロックサイクル及びパース帯域幅を節約する
利点を有している。上述した例は、後に図12A及び1
2Bを参照して説明する。
【0030】命令がパース(parse)即ち構文解析
され且つ適宜のデコードレジスタへコピーされると、パ
イプラインはデコードステージへ前進する。
【0031】図5A乃至5D及び図6は、本発明に基づ
くデコードステージのフローチャート及びブロック図を
夫々示している。図5Aを参照すると、本実施例におい
ては最大で4つのデコードレジスタが存在しているの
で、デコードステージは、最初に、カウンタ「N」が初
期化された後に(ステップ152)4未満であるか否か
を判別する(ステップ154)。カウンタNが4未満で
ある場合には、デコードステージが完了される(ステッ
プ172)。カウンタNが4未満である場合には、パー
スステージの場合におけるように、最初にパイプライン
における次のステージである空発行レジスタが使用可能
であるか否かを判別する。空発行レジスタが使用可能で
ない場合には(ステップ156)、本プロセスは空発行
レジスタが使用可能となるまで次のクロック及びその後
のクロックに対して待機する。空レジスタが使用可能で
ある場合には、識別IDがデコードされている現在のパ
ーセルに対して発生される(ステップ158)。IDが
パーセルが取付けられた後に、本プロセスは、デコード
レジスタがロード及び/又はストアを有する命令を包含
しているか否かを判別する(ステップ160)。デコー
ドレジスタ内の命令がロードか又はストアのいずれかを
包含するものでない場合には、デコードプロセスに対し
て従来の方法が使用される(ステップ162)。デコー
ドを行なうための従来の方法は、例えば、上掲した’1
56特許、メタフローアーキテクチュア、及びSohi
文献等に記載されている。
【0032】デコードレジスタ内の命令がロード及び/
又はストアを有するものである場合には、デコードレジ
スタが最後のパーセル、即ち2つのパーセルのうちの2
番目のパーセルであるか否かを判別する。それが2番目
のパーセルである場合には、その命令をデコードするた
めにも従来の方法が使用される。2番目のパーセルにお
いては、レジスタ対レジスタ演算が行なわれるので、2
番目のパーセルに対して従来の方法が使用される。
【0033】ADD演算と共にロード(LD)及びスト
ア(ST)の両方を包含する命令においては、第一パー
セルがメモリ内のアドレスを計算し、メモリからオペラ
ンドをロードし、且つそれを一時的レジスタ内に配置さ
せる。次いで、2番目のパーセルがその一時的レジスタ
を使用してレジスタ対レジスタ演算を行ない、且つその
結果を一時的レジスタ内に配置させる。ロード演算及び
ストア演算の両方に対して共通のメモリアドレスを有す
るロード及びストア命令を処理する従来の方法において
は、一時的レジスタをそこからオペランドが発生したメ
モリ位置内にストアするために第三パーセルが必要とさ
れる。本発明においては、1番目のパーセルにおいて計
算されたメモリアドレスがストアを行なうために使用さ
れるので、第三パーセルを必要とするものではない。従
って、デコードレジスタが2番目のパーセルを包含して
いる場合に、従来のデコード方法が使用される。
【0034】然しながら、命令が例えばADD等の演算
に関連してロード又はストアのいずれか一方を包含する
場合(両方ではない)、デコードを行なうための従来の
方法を使用することも可能である(ステップ162)。
図5Aに示したように、このような命令は尚且つ2つの
パーセルを必要とし、その場合に、例えば、該パーセル
のうちの1つがアドレス演算を行ない且つ他方のパーセ
ルがADD演算を行なう(又は、その命令が必要とする
何等かの演算)。例えば、その命令がその他の演算を必
要とすることのない純粋なロード又は純粋なストアであ
る場合には、単に1つのパーセルが必要とされるに過ぎ
ない。
【0035】デコードレジスタが最後の即ち2番目のパ
ーセルを包含するものでない場合には(ステップ16
4)、アドレス計算オペランド用のロッカー識別IDが
各パーセルに対して供給される(ステップ164)。そ
の後に、本プロセスは、その命令が特にロード、スト
ア、又は両方であるか否かを判別する(ステップ16
8)。その命令がロードのみを包含する場合には、その
命令はデコードレジスタから次に使用可能な空発行レジ
スタへ移動され、且つその発行レジスタ内のロードイネ
ーブルビットが図5Bに示したようにセットされる(ス
テップ174)。次いで、スコアボードIDが宛先レジ
スタに表われ(ステップ176)且つカウンタがインク
リメントされて(ステップ170)再度ステップ154
から開始する次のデコードレジスタを処理する。その命
令がストアを包含している場合には(ステップ16
8)、デコードレジスタからの命令が次の空発行レジス
タへ移動され、且つ該発行レジスタ内のストアイネーブ
ルビットが図5Cに示したようにセットされる(ステッ
プ178)。この場合にスコアボードIDは無効であり
(ステップ180)、且つカウンタは次のデコードレジ
スタを処理するためにインクリメントされる(ステップ
170)。その命令がロードとストアの両方を包含して
いる場合には、デコードレジスタ内の命令は次の空発行
レジスタへ移動され、且つその発行レジスタ内のロード
イネーブルビットとストアイネーブルビットの両方が図
5Dに示したようにセットされる(ステップ182)。
スコアボードIDは宛先レジスタ及び発生源レジスタ上
に表われ(ステップ184)且つ発生源データのロッカ
ーIDは(ID+1)となる(ステップ186)。次い
で、カウンタは次のデコードレジスタを処理するために
インクリメントされる(ステップ170)。
【0036】スコアボードIDはスコアボードユニット
から発生される。該スコアボードユニットは、命令間の
必要な逐次的関係を維持するために必要である。就中、
それは与えられたレジスタに対して最も最近の書込みを
行なうパーセルのIDを識別する。Popescu e
t al.アーキテクチュアにおける「命令棚(Ins
truction Shelf)」(’156特許及び
メタフローアーキテクチュア参照)はインテルペンチア
ムプロアーキテクチュアにおいて使用されておる「リザ
ベーションステーション(Reservation S
tation)」に幾分類似している。「ストア棚(S
tore Shelf)」は掲示した書込みを管理す
る。ストア棚は、種々の命令に対して、影響されたアド
レス及び与えられたアドレスにおいて格納されるべきデ
ータを発生した「ロッカー(locker)」命令を追
従する。「ロード棚」は、それらが順番外に計算される
ので、ロードパーセルのメモリデータアドレスを追従す
る。
【0037】好適実施例においては、例えばx86命令
等の命令がパーセルに分解される。ロードアドレス及び
ストアアドレスを計算する前に、本システムは、それら
が同一のアドレスを参照するか否かを決定する。そうで
ある場合には、そのアドレスは一度計算され、次いでそ
の結果はロード棚及びストア棚の両方に格納される。そ
のオペランドはロードされる。次いで算術演算が行なわ
れ、且つその結果は、そのオペランドがとられたアドレ
ス内に格納される。スコアボードユニットは、命令が順
番外に実行された場合であっても、シーケンスエラーが
存在しないことを確保する。特に該ユニットは、システ
ムが全ての以前の論理的書込みが行なわれるまでレジス
タ又はメモリ位置の読取りを行なわないことを防止し、
且つ前のデータの全ての必要な読取りが行なわれるま
で、書込みコマンドが実行されないことを確保する。
【0038】スコアボードユニットにおいては、全ての
パーセルがIDによって定義され、それは、基本的に、
該パーセルによって発生される結果に対する名前即ちタ
グとして作用する。例えば、ロード演算はメモリから宛
先レジスタ内にオペランドをロードする。スコアボード
ユニットは、デコードステージにおいて、ロードパーセ
ルがこの宛先レジスタへ書込みを行なうことを記録す
る。スコアボードユニットにおいては、ロードパーセル
のIDが見つけ出され、且つ該パーセルによってアップ
デートされるレジスタの数がスコアボードユニット内に
書込まれる。例えばスコア、分岐及びNOP等の幾つか
の命令はいずれのレジスタにも書込みを行なうことはな
い。従って、これらのパーセルに対するスコアボードエ
ントリは無効である。スコアボードエントリは、命令が
1個のレジスタに書込みを行なう場合に有効である。従
って、スコアパーセルの場合には、発生源データのロッ
カーIDが有効であるが、該ストアパーセルに対するス
コアボードIDにおけるエントリは無効である。
【0039】該命令がロードとストアの両方を包含する
場合には、第一パーセルに対するスコアボードエントリ
が宛先レジスタにセットされる。何故ならば、ロード演
算は宛先レジスタ内にデータを書込み、それはストア演
算に対する発生源レジスタとなるからである。ストアパ
ーセルの場合には、ストアデータに対するロッカーID
はロード−ストアLDSTパーセル直後のパーセルであ
るストアされるべきデータを発生したパーセルIDであ
る。従って、発生源データのロッカーIDは、ソースボ
ードへ戻ることなしに決定することが可能である。何故
ならば、それは1+ロード−ストア(LDST)パーセ
ルのIDであり、それは宛先レジスタへ書込みを行なっ
たパーセルだからである。
【0040】図5A乃至5Dにおけるフローチャートの
具体例の好適実施例を図6に示してある。図6を参照す
ると、デコードステージ200はデコードレジスタFI
FO202(それは図4において符号144を付してあ
る)、制御論理ユニット204A,204B,204
C,204D、スコアボードユニット206、ID発生
器208を包含している。以下に説明するデコードステ
ージの結果は発行レジスタFIFO210内に配置され
る。デコードレジスタFIFO202は、制御論理ユニ
ット204A乃至204D及びスコアボードユニット2
06へ接続している。制御論理ユニットはID発生器2
08及びスコアボードユニット206へ接続している。
【0041】スコアボードユニット(時々、インテルに
よって「レジスタ割り当てテーブル」即ち「RAT」と
呼ばれる)は、命令が上述した如く順番外に実行される
場合であっても、シーケンスエラーが存在しないことを
確保する。ID発生器は発生された各パーセルに対する
IDを発生する(図5Aにおけるステップ158参
照)。そのIDは各パーセルに対して1だけインクリメ
ントされる。制御論理ユニットはデコードステージの動
作を制御する。該制御ユニットのより詳細な構造を図7
に示してある。制御論理ユニット204A乃至204D
は同一のものであるから、制御論理は制御論理ユニット
のうちの1つ204Aを参照して説明する。図7を参照
すると、制御論理ユニットがデコードレジスタFIFO
202、スコアボードユニット206及び発行レジスタ
FIFO210から多数の異なる信号を受取る。制御論
理ユニットは、デコードレジスタFIFO202、スコ
アボードユニット206、ID発生器208、発行レジ
スタFIFO210へ信号を転送する。
【0042】図6及び7において、ライン1はデコード
レジスタFIFOの内容を表わしており、それはパーセ
ル有効信号、最後のパーセル信号、パーセルそれ自信を
包含している。パーセル有効信号は、命令キャッシュ1
32からの命令(図4)が有効であるか否かを知らせ
る。その命令が命令キャッシュ内に存在しない場合に
は、そのパーセルは無効であり且つメインメモリは有効
な命令を検索すべく動作を行ない、そのことは多数の付
加的なクロックサイクルを必要とする。ライン2はID
発生器208からのパーセルのIDを表わしており(図
5Aにおけるステップ156参照)、ライン3はスコア
ボードユニット206からの発生源データのロッカーI
Dを表わしている。ライン5は発行レジスタFIFO2
10における発行レジスタからの空発行レジスタ使用可
能信号線を表わしている(図3からのステップ156参
照)。これらの入力線に基づいて、制御論理ユニットは
ライン4,6,7を出力し、それらは、夫々、命令デー
タ、制御線及び有効/無効宛先IDに対応している。
【0043】制御論理ユニット204A内において、パ
ーセル自身及び最後のパーセル信号がデコーダ220に
おいて受取られ且つスコアボード有効信号が論理AND
ゲートにおいて受取られる。論理ANDゲート230
は、更に、空発行レジスタ使用可能線5を受取り、制御
線6を発生し、それはID発生器208及び発行レジス
タFIFO210の両方へ送られる。制御論理ユニット
204Aは、パーセルが有効であるか無効であるか及び
論理ANDゲート230を介して使用可能な空発行レジ
スタが存在しているか否かをID発生器208及び発行
レジスタFIFO210に知らせる。従って、制御ライ
ン(線)6は、そのパーセルが有効であるか否か且つ空
発行レジスタが使用可能であるか否かに依存して、その
命令がデコードレジスタから発行レジスタへ移動される
べきか否かを制御する。
【0044】ANDゲート230の出力は、別の論理A
NDゲート228に対する入力となる。論理ANDゲー
ト228は、デコーダ220からロードイネーブル信号
線出力を受取り且つ宛先レジスタが有効であるか無効で
あるかを決定する信号を出力する。宛先レジスタが有効
であるためにはパーセル有効信号、空発行レジスタ使用
可能信号、ロードイネーブル信号の全てがセットされ
て、例えばANDゲート228から論理高を発生するこ
とが必要である。デコーダ220はストアイネーブル信
号を出力し、それは更に別の論理ANDゲート226へ
入力される。デコーダ222からのロードイネーブル信
号は論理ANDゲート226へ入力される。デコーダ2
20からのロードイネーブル信号及びストアイネーブル
信号は発行レジスタFIFO210へ送られる(ロード
及びストアイネーブル信号については図8における発行
ステージフローチャートに関連してより詳細に説明す
る)。論理ANDゲート226の出力は選択線としてマ
ルチプレクサ224へ接続される。ライン2におけるI
D発生器からのパーセルのIDは加算器222へ入力さ
れ、それはマルチプレクサ224への入力の1つである
(ID+1)を発生する。ライン3におけるスコアボー
ドからの発生源データのロッカーIDはマルチプレクサ
(MUX)224へ入力される。MUX224はストア
命令の発生源データのロッカーIDを出力する。特に、
ロードイネーブル信号及びストアイネーブル信号の論理
AND結果に依存して、ID発生器からのパーセルのイ
ンクリメントされたIDか又はスコアボードからの発生
源データのロッカーIDのいずれかがMUX224から
出力される。例えば、該命令がロード及びストアイネー
ブルビットを設定する同一のメモリアドレスのロード及
びストアの両方を包含する場合には、ID発生器からの
パーセルのインクリメントされたIDは、ストア命令の
発生源データのロッカーIDとしてMUX224から出
る。ロード及びストアイネーブル信号のうちの少なくと
も一方がセットされていないロード及びストアイネーブ
ル信号のその他の組合わせに対しては、スコアボードか
らの発生源データのロッカーIDがMUX224から出
力される。従って、ストア演算はメモリアドレスを計算
することは必要ではない。何故ならば、メモリアドレス
はロード演算(第一パーセル)期間中に既に計算されて
おり且つロッカーIDから得ることが可能だからであ
る。
【0045】MUX224から出力されるストア命令の
発生源データのロッカーID、ストアイネーブル、及び
ロードイネーブルは共に命令データ4を形成する。制御
論理ユニット204Aの制御線6は、データ4をデコー
ドレジスタから発行レジスタへ移動させるか否かを決定
する。従って、該パーセルが有効であり且つ空発行レジ
スタが使用可能である場合には、制御線6は命令データ
4をして発行レジスタへ移動することを許容する。
【0046】有効/無効宛先レジスタライン7は、
(1)パーセルが有効であり、(2)発行レジスタが使
用可能であり、(3)ロードイネーブル信号が真である
場合に、有効となる。これら3つの条件のうちのいずれ
かが満足されない場合には、ライン7は無効なものとし
てスコアボードユニット206へ入力される。
【0047】デコードレジスタが該命令を発行レジスタ
へ移動させると、デコードステージが発行ステージに道
を譲る。発行ステージのフローチャートは図8に示して
あり、且つ図8におけるフローチャートの具体例のブロ
ック図は図9に示してある。図8及び9は本発明に基づ
く発行ステージのフローチャート及びブロック図を夫々
示している。図8を参照すると、本実施例においては最
大で4個のデコードレジスタが存在しているので、発行
ステージは、最初に、図5Aに示したデコードステージ
と同様に、カウンタNが4未満であるか否かを判別する
(ステップ254)。該カウンタはステップ252にお
いて初期化される。カウンタNが4未満でない場合に
は、発行ステージは終了する(ステップ280)。カウ
ンタNが4未満である場合には、発行レジスタ内のパー
セルPがロードイネーブル及び/又はストアイネーブル
であるか否かが判別される(ステップ256)。パーセ
ルPがロードイネーブルでもストアイネーブルでもない
場合には、その命令を発行するために従来の方法が使用
される。命令を発行するための従来の方法(ステップ2
78)は、例えば、’156特許、メタフローアーキテ
クチュア、Sohi文献等上掲した文献に記載されてい
る。
【0048】発行中のパーセルPがロードイネーブル及
び/又はストアイネーブルである場合には、命令棚が満
杯であるか否かが判別される(ステップ258)。命令
棚が満杯である場合には、本プロセスは終了する。命令
棚が満杯でない場合には(ステップ258)、パーセル
Pがロードイネーブルであるか否か及びロード棚が満杯
であるか否かが判別される(ステップ160)。そうで
ある場合には、本プロセスは終了する(ステップ28
0)。そうでない場合には、パーセルPがストアイネー
ブルであるか否か及びストア棚が満杯であるか否かが判
別される(ステップ262)。そうである場合には、本
プロセスは終了する(ステップ280)。そうでない場
合には、該パーセルのコピーが命令棚内に配置される
(ステップ264)。
【0049】その後に、該パーセルがロードイネーブル
である場合には(ステップ266)、該パーセルのコピ
ーがロード棚内に配置される(ステップ268)。次い
で、該パーセルがストアイネーブルであるか否かが判別
される(ステップ270)。そうである場合には該パー
セルのコピーがストア棚内に配置される(ステップ27
2)。次いで、該パーセルは発行レジスタから除去され
る(ステップ274)。次いで、カウンタNがインクリ
メントされ(ステップ276)且つ本プロセスは再度始
めから開始される。
【0050】図8におけるフローチャート250の具体
例の好適実施例を図9に示してある。図9に示した発行
ステージ300は発行レジスタFIFO302(それは
図6において符号210を付してある)、制御論理ユニ
ット304A,304B,304C,304D、命令棚
306、ロード棚308、ストア310を包含してい
る。図9に示した1−10の信号線は以下の内容を表わ
している。
【0051】 信号線 信号名 1 パーセル 2 ロードイネーブル 3 ストアイネーブル 4 命令棚満杯ライン 5 ロード棚満杯ライン 6 ストア棚満杯ライン 7 パーセルを命令棚へコピーする制御信号 8 パーセルをロード棚へコピーするための制御信号 9 ストア棚へパーセルをコピーするための制御信号 10 発行レジスタからパーセルを除去するための制御信号 図9に示したように、ロードイネーブル信号及びストア
イネーブル信号は発行レジスタFIFO302から制御
論理ユニット304A−304Dの各々へ送られる。該
パーセルは、発行レジスタFIFO302から制御信号
7,8,9に従って、夫々、命令棚、ロード棚、ストア
棚の各々へ送られる。信号線4,5,6は、夫々、命令
棚306、ロード棚308、ストア棚310からこれら
の棚が満杯であるか否かを制御論理ユニットに知らせる
ために送られる。信号線10は発行レジスタFIFO3
02に対して、制御論理ユニットによって発行レジスタ
からそのパーセルを除去することを知らせる。
【0052】従って、パーセルは発行ステージから発行
され且つパイプラインは実行ステージへ前進する。図1
0及び11は本発明に基づく実行ステージのフローチャ
ートとブロック図とを夫々示している。図10を参照す
ると、実行ステージのフローチャート320は、メモリ
算術論理ユニット(ALU)がパーセルを実行している
か否かを判別する(ステップ324)。そうでない場合
には、本プロセスは終了する。そうである場合には、そ
のパーセルがロードイネーブルを有しているか否かが判
別される(ステップ326)。そうである場合には、メ
モリの計算したアドレスがパーセル位置の次のロード棚
上に置かれる(ステップ328)。該パーセルがロード
イネーブルを有するものではない場合には、ステップ3
28がスキップされる。次いで、該パーセルがストアイ
ネーブルを有しているか否かが判別される(ステップ3
30)。そうである場合には、該メモリの計算されたア
ドレスがパーセル位置の次のストア棚上に配置される
(ステップ332)。パーセルがストアイネーブルを有
するものではない場合には、ステップ332がスキップ
され且つ本プロセスが終了する。
【0053】図10に示したフローチャート320の具
体例の好適実施例を図11に示してある。図11を参照
すると、実行ステージは命令棚306、ロード棚30
8、ストア棚310、ALU307、論理ゲート309
及び311を包含している。命令棚306は、該パーセ
ルのIDを供給するために直接的にロード棚308及び
ストア棚310へ接続している。命令棚306は、更
に、ALU307を介してロード棚及びストア棚へ接続
しており、メモリ位置のアドレスを与える。更に、命令
棚306は、例えば、パーセルのIDの次のロード棚及
びストア棚内にアドレスを書込むために、ANDゲート
309及び311を介してロード棚308及びストア棚
310へ接続している。特に、信号ライン4はパーセル
のIDの次のロード棚内にアドレスを書込むための制御
信号を表わしており、信号ライン5は該パーセルのID
の次のストア棚内にアドレスを書込むための制御信号を
表わしている。命令棚からの信号ライン1,2,3は、
夫々、命令、ストアイネーブル、ロードイネーブルを実
行するための有効な信号ラインを表わしている。
【0054】その実行が完了すると、後退フェーズ(図
2参照)が棚上げされた最も古い命令を検査する。各ク
ロックサイクルにおいて、全ての適宜の命令が後退され
る(例えば、メタフローアーキテクチュア参照)。従っ
て、本発明においては、従来のシステムにおいて必要と
される3つのパーセルの代わりにロード演算及びストア
演算の両方を包含する命令に対して単に2つのパーセル
(例えばLDST及びADD)が後退されるに過ぎな
い。
【0055】図12A及び12Bは、上述した例の命令
を使用して夫々従来のシステムと本発明との間の比較を
示している。図12Aにおける例の命令は3つのコンポ
ーネント、即ちLOAD,ADD,STOREを有して
いる。x86の記号を借りると、3つの従来のパーセル
は以下の如くである。
【0056】LD [bx+si],temp ADD temp,dx ST [bx+si],temp 尚、「bx+si」はメモリのアドレスであり、「te
mp」は一時的レジスタであり、「dx」はレジスタで
ある。この3つのコンポーネントからなる命令はメモリ
アドレス「bx+si」の内容を一時的レジスタ「te
mp」へロードする。一時的レジスタの内容はレジスタ
dxの内容に付加され且つその結果は一時的レジスタ内
に戻される。次いで、一時的レジスタの内容が同一のメ
モリアドレス「bx+si」内に書き戻される。従っ
て、従来のシステムは、パースステージにおける3つの
パーセルを使用してこの命令をパース即ち構文解析(オ
ペランド解析)を行なう。第一パーセルは、該オペラン
ドのメモリアドレスを計算し且つ該オペランドをメモリ
から一時的レジスタへロードする。第二パーセルはレジ
スタ対レジスタ演算を実行する。第三パーセルは、第二
パーセルの結果を格納するために同一のメモリアドレス
を再計算し且つレジスタの内容を該メモリ内に配置させ
る。
【0057】この従来のシステムは図12Aに示してあ
り、その場合には、命令の3つのコンポーネント(パー
セル)がLD,ADD,STに対して夫々ID4,5,
6を有する命令棚内に配置させる。図12Aにおいては
同一のメモリ位置に対するものであっても、ロード(A
LU1)に対するアドレスとストア(ALU2)に対す
るアドレスを別々に計算するために2つのALUが図1
2Aにおいて必要とされている。点線は本プロセスによ
って取られる経路を表わしている。従来のシステムにお
いては、メモリアドレスが2回計算され、より多くの時
間及び2つのALUを使用することを必要としている。
該ALUからの結果はロード棚及びストア棚内に配置さ
れる。
【0058】本発明は、メモリアドレスの2回目の計算
が必要でないことの認識に立つものである。従って、図
12Bに示したように、本発明は上述した3つのコンポ
ーネントからなる命令を単に2つのパーセルを必要とす
るに過ぎない2つのコンポーネントからなる命令へ還元
させている。第一パーセルはロード−ストアLDST演
算を包含しており且つ第二パーセルはレジスタ対レジス
タ演算を包含しており、その具体例は以下に示すような
ものである。
【0059】LDST[bx+si],temp ADD temp,dx LDST演算(処理)はメモリのアドレスを一度計算し
且つメモリアドレスの内容を第一パーセル内のtemp
へロードする。次いで、第一パーセルは、第二パーセル
のADD演算が完了するまで該演算のストア部分上で待
機し、第二パーセルのADD演算が完了した時に第一パ
ーセルを完了するために前に計算したアドレスを使用し
て該ストア演算を実施する。
【0060】図12Bは、本発明に基づく命令棚、ロー
ド棚、ストア棚のブロック図を示している。特に、LD
ST演算のロード部分は、ALU1に対する命令棚から
ロード棚への経路に追従し、一方LDST演算のストア
部分はALU1に対する命令棚からマルチプレクサMU
Xへ及び最終的にストア棚への経路に追従する。この場
合に、ALU2は使用されることはない。何故ならば、
1つのアドレス計算のみが本発明において実施されるに
過ぎないからである。従って、単に1つのALU計算が
全命令に対して必要であるに過ぎないので、ALU2
は、例えば異なる命令に対するアドレスを計算する等の
その他のことに使用するために自由な状態にある。更
に、第三パーセルは必要とされないので、クロックサイ
クル及びパース帯域幅が改善されている。
【0061】図12A及び12Bに示したように、命令
棚は左側の欄にスコアボードID番号を有している。図
12Aにおいて、LD,ADD,STに対するスコアボ
ードIDは、夫々、「4」、「5」、「6」である。A
DDに対するロッカーIDはLD(4)に対するスコア
ボードIDであり且つSTの場合にはADD(5)に対
するスコアボードIDである。図12Bにおいて、それ
は本発明を示すものであるが、LDST及びADDに対
するスコアボードIDは「4」及び「5」であり且つS
Tに対するロッカーIDはLDST(4)のスコアボー
ドIDである。図5Dを参照すると、上述した例に対す
るスコアボード[ID]はtempであり、それは宛先
及び発生源レジスタであり且つ発生源データのロッカー
IDは(ID+1)であり、それは、パーセルIDが4
に等しいので、(4+1)=5である。従って、本発明
においては、ストア即ち格納のためのメモリのアドレス
はスコアボードにおける既知の位置から容易に得られ
る。
【0062】本発明に基づいて命令を処理するためのシ
ステム及び方法は従来のシステムと比較してプロセサパ
イプラインの各ステージにおいて多数の利点を有してい
る。例えば、パースステージにおいて、従来のシステム
においては3つのパーセルが必要とされていたのと対比
して、ロード及びストアの両方を必要とする命令及び算
術演算に対して単に2つのパーセルが発生されるに過ぎ
ない。デコードステージにおいては、ロードイネーブル
とストアイネーブルの両方が同一のパーセルに対して発
生され、その場合に、格納されるべき発生源データのロ
ッカーIDはロード−ストアパーセルのID+1、即ち
(ID+1)である。発行ステージにおいては、1つの
パーセルをロード棚及びストア棚の両方の上に配置させ
ることが可能である。実行ステージにおいては、従来の
システムにおいては2つのALU計算サイクルが必要と
されていたのと比較して、全命令に対して単に1つのA
LUの計算サイクルが必要とされるに過ぎない。後退ス
テージにおいては、従来のシステムにおいては3つのパ
ーセルが必要とされていたのと比較して単に2つのパー
セルを後退させることが必要であるに過ぎず、制限され
ている後退帯域幅のより少ない部分を使用している。従
って、本発明は従来のプロセサシステムと比較して多数
の利点を提供している。
【0063】以上、本発明の具体的実施の態様について
詳細に説明したが、本発明は、これら具体例にのみ限定
されるべきものではなく、本発明の技術的範囲を逸脱す
ることなしに種々の変形が可能であることは勿論であ
る。例えば、当業者にとって、本発明の技術的範囲を逸
脱することなしに本発明の浮動小数点演算システムにお
いて種々の変形及び修正を行なうことが可能である。
【図面の簡単な説明】
【図1】 本発明において使用されるプロセサのシステ
ムアーキテクチュアを示した概略ブロック図。
【図2】 命令の演算(処理)の流れを示した概略図。
【図3】 本発明に基づく命令パースステージを示した
フローチャート。
【図4】 図3に示した命令パースステージの好適実施
例を示した概略ブロック図。
【図5A】 本発明に基づくデコードステージの処理の
一部を示したフローチャート。
【図5B】 本発明に基づくデコードステージの処理の
一部を示したフローチャート。
【図5C】 本発明に基づくデコードステージの処理の
一部を示したフローチャート。
【図5D】 本発明に基づくデコードステージの処理の
一部を示したフローチャート。
【図6】 図5A−5Dに示したデコードステージの好
適実施例を示した概略ブロック図。
【図7】 図6におけるデコードステージにおける制御
論理を示した概略図。
【図8】 本発明に基づく発行ステージを示したフロー
チャート。
【図9】 図8に示した発行ステージの好適実施例を示
した概略ブロック図。
【図10】 本発明に基づく実行ステージを示したフロ
ーチャート。
【図11】 図10に示した実行ステージの好適実施例
を示した概略ブロック図。
【図12】 (A)及び(B)は例示的な命令を使用し
た従来の方法と本発明の夫々を示した各概略図。
【符号の説明】
12 バスインターフェース 16 命令キャッシュ 18 分岐ターゲットバッファ(BTB) 22 データキャッシュ 20 フェッチ/デコードユニット 24 発行ユニット 26 メモリ棚 28,30,32 算術論理ユニット(ALU) 34,36 浮動小数点ユニット(FPU) 42 フェッチ 44 パース 46 デコード 50 発行 52 スケジュール 54 オペランドフェッチ 56 実行 58 棚上げ 60 完了 64 後退 66 検索 68 書き戻し

Claims (23)

    【特許請求の範囲】
  1. 【請求項1】 データ処理システムにおいて、 プログラム命令を発生する命令ユニット、 前記命令ユニットへ結合されており且つ前記プログラム
    命令を受取るパースユニットであって、前記命令がロー
    ド演算とストア演算の両方を必要とするか否かを判別し
    且つロード演算及びストア演算の両方を含む前記命令に
    対する第一パーセル及び第二パーセルのみを発生するパ
    ースユニット、 前記パースユニットへ結合されており且つ前記第一パー
    セルと第二パーセルとを受取るデコードユニットであっ
    て、前記第一及び第二パーセルに対して異なる識別番号
    であって前記第二パーセルの識別番号が前記第一パーセ
    ルの識別番号から決定することが可能である識別番号を
    取付けるデコードユニット、 前記デコードユニットへ結合されており且つ前記第一パ
    ーセル及び第二パーセルを受取り且つ前記第一パーセル
    及び第二パーセルを発行する発行ユニット、を有するこ
    とを特徴とするデータ処理システム。
  2. 【請求項2】 請求項1において、前記パースユニット
    が、 前記命令ユニットへ接続しており且つ前記プログラム命
    令を受取る命令パーサー、 前記命令パーサーへ接続しているデコーダ、 前記命令パーサー及び前記デコーダへ接続しているパー
    ス制御ユニットであって、前記パースユニットの動作を
    制御するパース制御ユニット、を有することを特徴とす
    るデータ処理システム。
  3. 【請求項3】 請求項1において、前記デコードユニッ
    トが、 前記第一及び第二パーセルを前記パースユニットから受
    取るデコードレジスタ、 前記デコードレジスタへ接続しており且つ前記第一及び
    第二パーセルに対する識別番号を発生する識別番号発生
    器、 前記デコードレジスタ及び識別番号発生器へ接続してい
    るスコアボードユニットであって、メモリ内に格納され
    るべきデータのロッカー識別番号を包含しているスコア
    ボードユニット、 前記デコードレジスタと、識別番号発生器と、スコアボ
    ードユニットとに接続している制御論理ユニットであっ
    て前記デコードユニットの動作を制御する制御論理ユニ
    ット、を有することを特徴とするデータ処理システム。
  4. 【請求項4】 請求項3において、前記制御論理ユニッ
    トが、 前記第一及び第二パーセルのうちの1つを受取り且つ前
    記第一及び第二パーセルのうちの前記1つがロード演算
    及びストア演算を包含する場合にロードイネーブル信号
    及びストアイネーブル信号を出力するデコーダ、 前記ロード及びストアイネーブル信号へ結合される第一
    論理ユニット、 前記ロードイネーブル信号及び有効なパーセル及び空の
    発行レジスタが使用可能であることを知らせる信号へ結
    合される第二論理ユニットであって宛先レジスタが有効
    であるか否かを出力する第二論理ユニット、 前記識別番号発生器からの識別番号へ結合され且つ前記
    識別番号及び定数番号を出力する加算器、 前記加算器の出力及びロッカー識別番号を受取り且つ前
    記第一論理ユニットからの出力に従って信号を出力する
    マルチプレクサ、を有することを特徴とするデータ処理
    システム。
  5. 【請求項5】 請求項1において、前記発行ユニットが
    命令実行のために命令棚、ロード棚、ストア棚に対し前
    記第一及び第二パーセルを発行することを特徴とするデ
    ータ処理システム。
  6. 【請求項6】 請求項5において、前記発行ユニット
    が、 前記デコードユニットから前記第一及び第二パーセルを
    受取る発行レジスタ、 前記発行レジスタ、命令棚、ロード棚及びストア棚へ接
    続されている制御論理ユニットであって、前記第一及び
    第二パーセルの前記命令棚、ロード棚及びストア棚の適
    宜のものへのコピー動作を制御する制御論理ユニット、
    を有することを特徴とするデータ処理システム。
  7. 【請求項7】 請求項1において、前記ロード及びスト
    ア演算がメモリ内の同一のアドレス位置に関係するもの
    であり且つ前記アドレスが前記プログラム命令に対して
    一度だけ計算されることを特徴とするデータ処理システ
    ム。
  8. 【請求項8】 請求項1において、更に、前記プログラ
    ム命令に対しアドレス計算サイクルを一度だけ必要とす
    るアドレス計算ユニットを具備する実行ユニットを有し
    ていることを特徴とするデータ処理システム。
  9. 【請求項9】 請求項1において、前記実行ユニット
    が、 前記命令を実行するための有効信号線、ロードイネーブ
    ル信号、ストアイネーブル信号を出力する命令棚、 前記命令棚へ接続しているロード棚、 前記命令棚へ接続しているストア棚、 前記命令棚へ接続している演算論理ユニット、 前記有効信号線、ロードイネーブル信号、ストアイネー
    ブル信号を前記命令棚から受取り、第一及び第二制御信
    号を夫々前記ロード棚及びストア棚へ出力する論理ユニ
    ット、を有することを特徴とするデータ処理システム。
  10. 【請求項10】 データ処理方法において、 第一及び第二パーセルのみを発生するためにロード演算
    及びストア演算の両方を含む命令をパーシングし、 前記第一及び第二パーセルをデコードし、 前記第一及び第二パーセルを発行し、 前記第一及び第二パーセルを実行する、上記各ステップ
    を有することを特徴とする方法。
  11. 【請求項11】 請求項10において、前記ロード演算
    及びストア演算が前記第一及び第二パーセルのうちの1
    つにおいてのみ実施されることを特徴とする方法。
  12. 【請求項12】 請求項10において、前記ロード及び
    ストア演算が、メモリ内において同一のアドレス位置を
    有しており且つ前記アドレス位置が前記ロード演算及び
    ストア演算の両方に対し一度のみ計算されることを特徴
    とする方法。
  13. 【請求項13】 請求項10において、前記第一及び第
    二パーセルをデコードするステップが、同一のパーセル
    に対してロードイネーブル信号及びストアイネーブル信
    号の両方を発生するステップを包含していることを特徴
    とする方法。
  14. 【請求項14】 請求項12において、前記第一及び第
    二パーセルをデコードするステップが、ロード及びスト
    ア演算と定数番号を持った第一パーセルの識別番号とし
    てメモリ内に格納すべきソースデータのロッカー識別番
    号を発生するステップを包含していることを特徴とする
    方法。
  15. 【請求項15】 請求項10において、前記第一及び第
    二パーセルを発行するステップが、前記第一及び第二パ
    ーセルのうちの1つをロード棚及びストア棚の両方の上
    に配置させることを特徴とする方法。
  16. 【請求項16】 請求項10において、前記第一及び第
    二パーセルを実行するステップが前記命令に対し単に1
    つのアドレス計算サイクルを消費するに過ぎないことを
    特徴とする方法。
  17. 【請求項17】 請求項10において、更に、前記第一
    及び第二パーセルを退去させるステップを有することを
    特徴とする方法。
  18. 【請求項18】 データ処理方法において、 第一及び第二パーセルのみを発生するためにロード及び
    ストア演算の両方を包含する命令をパーシングし、 前記第一及び第二パーセルをデコードし、その場合に同
    一のパーセルに対するロードイネーブル信号及びストア
    イネーブル信号の両方を発生するステップを包含してお
    り、 前記第一及び第二パーセルを発行し且つ前記第一及び第
    二パーセルのうちの1つをロード棚及びストア棚の両方
    の上に配置させ、 前記第一及び第二パーセルを実行する、上記各ステップ
    を有することを特徴とする方法。
  19. 【請求項19】 請求項18において、前記ロード及び
    ストア演算が、メモリ内の同一のアドレス位置を有して
    おり、且つ前記アドレス位置が前記ロード及びストア演
    算の両方に対し一度のみ計算されることを特徴とする方
    法。
  20. 【請求項20】 請求項18において、前記第一及び第
    二パーセルをデコードするステップが、ロード及びスト
    ア演算及び定数番号を持った第一パーセルの識別番号と
    してメモリ内に格納されるべきソースデータのロッカー
    識別番号を発生するステップを包含していることを特徴
    とする方法。
  21. 【請求項21】 請求項18において、前記第一及び第
    二パーセルを実行するステップが、前記命令に対し1つ
    のアドレス計算サイクルのみを消費するに過ぎないこと
    を特徴とする方法。
  22. 【請求項22】 請求項18において、更に、前記第一
    及び第二パーセルを後退させるステップを有することを
    特徴とする方法。
  23. 【請求項23】 請求項18において、前記ロード及び
    ストア演算の両方を包含する命令が、更に、付加的な演
    算を包含しており、前記第一パーセルが前記ロード及び
    ストア演算を包含しており且つ前記第二パーセルが前記
    付加的な演算を包含していることを特徴とする方法。
JP10127407A 1997-05-09 1998-05-11 プロセサ用の命令を処理するシステム及び方法 Pending JPH117389A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/853566 1997-05-09
US08/853,566 US5841998A (en) 1996-12-31 1997-05-09 System and method of processing instructions for a processor

Publications (1)

Publication Number Publication Date
JPH117389A true JPH117389A (ja) 1999-01-12

Family

ID=25316370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10127407A Pending JPH117389A (ja) 1997-05-09 1998-05-11 プロセサ用の命令を処理するシステム及び方法

Country Status (3)

Country Link
US (1) US5841998A (ja)
EP (1) EP0877316A3 (ja)
JP (1) JPH117389A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000068784A1 (en) * 1999-05-06 2000-11-16 Koninklijke Philips Electronics N.V. Data processing device, method for executing load or store instructions and method for compiling programs
US20050114632A1 (en) * 2003-11-21 2005-05-26 Intel Corporation Method and apparatus for data speculation in an out-of-order processor
US8589663B2 (en) * 2006-06-27 2013-11-19 Intel Corporation Technique to perform three-source operations
US10447823B2 (en) * 2014-01-08 2019-10-15 Marvell Semiconductor, Inc. Packet parsing engine
CN107766586A (zh) * 2016-08-16 2018-03-06 合肥科盛微电子科技有限公司 一种多电源域可编程管理的设计方法
CN111176409B (zh) * 2019-12-16 2023-11-21 珠海亿智电子科技有限公司 一种通用可在线编程的功耗控制电路、系统与方法
US12608387B2 (en) * 2020-08-04 2026-04-21 Oracle International Corporation Mirage instance of a database server

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02278475A (ja) * 1989-04-20 1990-11-14 Hitachi Ltd 図形処理装置およびその使用方法ならびにマイクロプロセッサ
JP3644959B2 (ja) * 1992-09-29 2005-05-11 セイコーエプソン株式会社 マイクロプロセッサシステム
US5694587A (en) * 1995-03-31 1997-12-02 International Business Machines Corporation Specialized millicode instructions for test PSW validity, load with access test, and character translation assist

Also Published As

Publication number Publication date
EP0877316A2 (en) 1998-11-11
US5841998A (en) 1998-11-24
EP0877316A3 (en) 2001-09-12

Similar Documents

Publication Publication Date Title
US6247106B1 (en) Processor configured to map logical register numbers to physical register numbers using virtual register numbers
US5606676A (en) Branch prediction and resolution apparatus for a superscalar computer processor
US5802386A (en) Latency-based scheduling of instructions in a superscalar processor
JP3714961B2 (ja) ロード/ストアオペレーションのout−of−order実行の制御
US5835747A (en) Hierarchical scan logic for out-of-order load/store execution control
US6279105B1 (en) Pipelined two-cycle branch target address cache
US7392369B2 (en) Decomposing architectural operation into speculative and architectural micro-operations for speculative execution of others and for violation check
JP3720370B2 (ja) 自己修飾コード処理装置
JPH10320198A (ja) データを転送する方法およびプロセッサ
JPH07334362A (ja) 複数の動作を同時に行なうためのプロセッサ、その中のスタック、およびスタック制御方法
JPH10312282A (ja) 命令完了を改良するための方法および装置
US6266763B1 (en) Physical rename register for efficiently storing floating point, integer, condition code, and multimedia values
US5708837A (en) Method and apparatus for register renaming in a computer system using a separate arithmetic available queue
JPH10154073A (ja) データ依存性を管理する装置及び方法
US6230262B1 (en) Processor configured to selectively free physical registers upon retirement of instructions
KR100523706B1 (ko) 단일 사이클 파이프라인 스톨을 발생하기 위한 파이프라인 프로세서 시스템 및 방법
US6944751B2 (en) Register renaming to reduce bypass and increase apparent physical register size
JPH117389A (ja) プロセサ用の命令を処理するシステム及び方法
US20050223201A1 (en) Facilitating rapid progress while speculatively executing code in scout mode
US10255071B2 (en) Method and apparatus for managing a speculative transaction in a processing unit
JP2004038753A (ja) プロセッサ及び命令制御方法
US6658555B1 (en) Determining successful completion of an instruction by comparing the number of pending instruction cycles with a number based on the number of stages in the pipeline
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
US20040193844A1 (en) Load and/or store queue emptying technique to facilitate atomicity in processor execution of helper set
JP3096429B2 (ja) 複数の命令の非整順完了をサポートする方法およびスーパースカラ・マイクロプロセッサ