JP2003523573A - プロセッサにおける書き込みトラヒックを減少するシステム及び方法 - Google Patents

プロセッサにおける書き込みトラヒックを減少するシステム及び方法

Info

Publication number
JP2003523573A
JP2003523573A JP2001560800A JP2001560800A JP2003523573A JP 2003523573 A JP2003523573 A JP 2003523573A JP 2001560800 A JP2001560800 A JP 2001560800A JP 2001560800 A JP2001560800 A JP 2001560800A JP 2003523573 A JP2003523573 A JP 2003523573A
Authority
JP
Japan
Prior art keywords
instruction
result
pipeline
register file
execution device
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.)
Withdrawn
Application number
JP2001560800A
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.)
Koninklijke Philips NV
Original Assignee
Philips Electronics NV
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 Philips Electronics NV filed Critical Philips Electronics NV
Publication of JP2003523573A publication Critical patent/JP2003523573A/ja
Withdrawn 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • 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
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • 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
    • G06F9/3873Variable length pipelines, e.g. elastic pipeline

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)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 プロセッサ内でレジスタ書き込みトラヒックを減少するためのインストラクション実行デバイスおよび方法が開示されている。インストラクション実行デバイスは、インストラクションに関する結果を形成するためのインストラクションパイプラインと、結果を記憶するための少なくとも1つの第1の書き込みポートを有するレジスタファイルと、結果に対するアクセスを許容するバイパス回路と、結果が他の1つのインストラクションによって使用されたか否かを示すための手段と、結果がバイパス回路を介してアクセスされて他の1つのインストラクションだけによって使用される場合に、結果が書き込みポートに記憶されることを防止するレジスタファイルコントロールとを有している。

Description

【発明の詳細な説明】
【0001】 本発明は、一般にデジタル演算回路の分野に係わり、特に、プロセッサととも
に使用されるインストラクション実行デバイスのためのシステムおよび方法に関
する。
【0002】 例えば、電力消費量やデバイスのサイズを減少して全体のコストを低減するた
め、一般的なモチベーション的基準がマイクロプロセッサの設計のために存在す
る。特に、この点に関する1つの技術的な開発は、多数のインストラクションを
同時に平行して実行するインストラクション実行アーキテクチャの開発である。
【0003】 前述したタイプのインストラクション実行アーキテクチャ、例えば、マイクロ
プロセッサ・インストラクション・セット・アーキテクチャ(ISA)を形成す
るシステムおよび方法は知られている。一般に、そのようなISAの実行には、
その後の複数のインストラクションの異なる実行ステージを重ね合わせる所謂「
パイプライン」手法が使用される。
【0004】 従来の4ステージパイプラインは、(1)フェッチと、(2)デコードと、(
3)実行と、(4)ライトバックとを使用する。ロードインストラクション等の
ようなデータ転送型のインストラクションに関しては、通常、別の1つのインス
トラクションパイプラインが必要とされる。
【0005】 サイクルの最初のステージにおいて、プロセッサは、メモリから1つのインス
トラクションを取り出す。取り出すためのインストラクションのアドレスは、プ
ログラムカウンタすなわちPCと称する内部のレジスタ内に記憶される。プロセ
ッサは、インストラクションに応答するためにメモリを待っている間、PCを増
加させる。これは、次のサイクルのフェッチ・フェーズが、メモリ内の次の連続
する場所でインストラクションを取り出す(ただし、サイクルのその後のフェー
ズによってPCが変更される場合を除く)ことを意味している。
【0006】 デコードフェーズにおいて、プロセッサは、メモリによって戻された情報を、
インストラクションレジスタすなわちIRとして知られる他の内部レジスタに記
憶する。この時、IRは、2進数としてエンコードされた1つのマシンインスト
ラクション(機械命令)を保持する。プロセッサは、次のステージでどの演算を
行なうかを決定するために、IR内の値をデコードする。
【0007】 実行ステージにおいて、プロセッサは、インストラクションを実際に実行する
。このステップは、しばしば、別のメモリ演算を必要とする。例えば、インスト
ラクションによって、プロセッサは、2つのオペランドをメモリから取り出し(
例えば、これらのオペランドをオペランドレジスタ内に記憶する)、これらのオ
ペランドを加えるとともに、その結果を第3の場所に記憶しても良い(また、オ
ペランドの宛先アドレスおよび結果は、インストラクションの一部としてエンコ
ードされる)。
【0008】 パイプラインのライトバックステージにおいて、パイプラインの上流側で演算
された結果は、レジスタファイルの宛先レジスタに書き込まれる(退去される)
【0009】 従来の他のパイプライン手法においては、オペランドまたは結果値がレジスタ
ファイルを迂回できるようにする回路が設けられる。これらのバイパス回路を使
用すると、オペランド形成インストラクションが退去される(例えば、レジスタ
ファイルへのライトバック)前に、オペランドまたは結果値を次のインストラク
ションに利用できる。
【0010】 しかしながら、この種の従来のパイプラインには多数の欠点がある。例えば、
従来のパイプライン手法は、多数のインストラクションを同時に平行して適切に
実行するために、レジスタファイル内に多数の別個のレジスタを必要とする場合
がある。一般に、大きなレジスタファイルは全電力消費量に大きく関与する。ま
た、パイプラインの各ステージは、各インストラクションの実行のために行なわ
れなければならない。これらの欠点は、ひいては、電力消費量およびプロセッサ
のサイズに影響してくる。したがって、プロセッサにおけるインストラクション
実行を行なうために要求されるパイプラインに必要な回路部品やパイプラインス
テージの数を減らせば、(1)全電力消費量を向上することができ、(2)プロ
セッサの全体のサイズを小さくすることができる。
【0011】 本発明の目的は、前述したように、プロセッサ内の従来のインストラクション
実行デバイスの幾つかの限界を解決することである。
【0012】 本発明の他の目的は、パイプライン手法でレジスタファイルの書き込み演算の
数を減らし、ひいては、プロセッサの全電力消費量を有利に減少するプロセッサ
・インストラクション・セット・アーキテクチャを提供することである。また、
レジスタファイルのサイズすなわちシリコン領域は、必要とされる書き込みポー
トの数の減少に伴って減少する。
【0013】 プロセッサのレジスタ書き込みトラヒックに関連付けられた欠点は、インスト
ラクション実行デバイスが設けられる本発明の原理に基づく構成によって、低減
され、解決される。インストラクション実行デバイスは、インストラクションに
関する結果を形成するためのインストラクションパイプラインと、結果を記憶す
るための少なくとも1つの書き込みポートを有するレジスタファイルと、結果に
対するアクセスを許容するバイパス回路と、結果が他の1つのインストラクショ
ンだけによって使用されたか否かを示すための手段と、結果がバイパス回路を介
してアクセスされて他の1つのインストラクションだけによって使用される場合
に、結果が書き込みポートに記憶されることを防止するレジスタファイルコント
ロールとを有している。
【0014】 本発明の一実施例において、結果が他の1つのインストラクションだけによっ
て使用されるか否かを示すための手段は、各インストラクションをエンコードす
る。例えば、結果が他の1つのインストラクションだけによって使用されるか否
かを示すために、いわゆる「デッド値」領域が各インストラクションの「オプコ
ード」に指定される。
【0015】 本発明の他の実施例において、結果が第2のインストラクションだけによって
使用されるか否かを示すための手段はインストラクションパイプラインを有し、
このインストラクションパイプラインは、インストラクションパイプラインにお
けるインストラクションの結果およびインストラクションパイプラインにおける
他のインストラクションの他の結果がレジスタファイルの同じ書き込みポートへ
の記憶のために指定されるか否か決定する。レジスタファイルの書き込みポート
は、インストラクションパイプラインの次のインストラクションによって「再利
用」されるため、これは、第1の結果が他の1つのインストラクションだけによ
って使用されることを示すために使用される。
【0016】 これら及び他の実施例並びに本発明の形態は、以下の詳細な説明で具体的に示
される。
【0017】 本発明の特徴および利点は、添付図面を参照しながら以下の好ましい実施例の
詳細な説明を参照することによって、理解することができる。
【0018】 以下の詳細な説明の幾つかの部分は、コンピュータメモリ内のデータビットに
おける演算のプログラム、アルゴリズム、象徴という形で与えられている。これ
らのアルゴリズムの説明や表示は、データ処理技術分野の当業者がその研究内容
を他の当業者に最も効果的に伝達するために使用する手段である。ここで、アル
ゴリズムは、所望の結果に導く矛盾のないステップシーケンスであると一般に考
えられている。ステップは、物理量の物理的な操作を必要とするものである。通
常、必ずしもそうではないが、これらの物理量は、記憶でき、送信でき、組合せ
ることができ、比較でき、操作できる電気、磁気、光信号の形をとる。
【0019】 図1には、本発明の教示内容に係るインストラクション実行デバイスの一実施
例のブロック図が示されている。見て分かるように、図1は説明の目的で簡略化
されており、また、本発明における使用に適した全プロセッサ環境は、例えば、
キャッシュメモリと、RAM・ROMメモリと、コンパイラまたはアセンブラと
、I/Oデバイス等とを備えており、これらの全てはここに図示するに及ばない
。一般に、インストラクション実行デバイス10は、n個のステージのパイプラ
イン・インストラクション・セット・レジスタ・アーキテクチャ(ISA)12 〜12(以下、総称してパイプライン12と言う)と、従来のバイパス回路
14と、レジスタファイル16と、レジスタファイルコントロール18とを使用
している。
【0020】 パイプライン12は、多数のパイプラインステージ(例えば、フェッチ、デコ
ード、実行、ライトバック)を有している。しかしながら、本発明が特定のパイ
プライン・アーキテクチャに限定されないことは言うまでもない。例えば、パイ
プラインのステージは、インストラクション・フェッチ、デコード、オペランド
・フェッチ、ALU実行、メモリアクセス、演算結果のライトバックを有してい
ても良い。また、パイプラインの一連のステージは、更に細かく再分割すること
ができる。
【0021】 パイプラインのステージの数は、インストラクションレベルの並列処理の利用
意図にしたがって変えることができるアーキテクチャ事項である。
【0022】 レジスタファイル16は、データを記憶する少なくとも1つのアドレス可能宛
先書き込みポート20を有している。当業者であれば分かるように、レジスタフ
ァイルは、記録/データを記憶でき且つ記録/データにアクセスできる従来の任
意のデータベース/インデックス記憶手段であっても良い。
【0023】 レジスタファイルコントロール18は、多数のロジック、コントロール、スー
パーバイザ、レジスタファイル16へのライトバック書き込みデータの演算を制
御するために必要なトランスレーション機能を有している。また、レジスタファ
イルコントロール18は、図3に機能的に示される演算のためのプログラムも有
している。後述するように、これらのプログラムの実行は、パイプラインにおけ
るレジスタファイル書き込み操作の数を減らすために必要な機能を果たす。
【0024】 インストラクションは、3つの主要なタイプ、すなわち、演算/論理、データ
転送、コントロールのうちの1つとして分類できる。演算論理インストラクショ
ンは、例えば加法、乗法、あるいは論理ANDといった1つ又は2つの項の原始
関数を適用する。
【0025】 各ステージのタイミングは、プロセッサの内部構成と、それが実行するインス
トラクションの複雑度とに依存している。演算を測定するための定量的時間単位
は、クロックサイクルとして知られている。プロセッサ内で演算を方向付けるロ
ジックは、外部のクロックによって制御される。この外部のクロックは、例えば
、所定時間にわたって方形波を形成する回路であっても良い。演算を実行するた
めに必要なクロックサイクルの数は、所要時間tを決定する。
【0026】 多数のインストラクションが、アルゴリズムにおけるその後の1つのインスト
ラクション、例えば次にパイプラインに入る他の1つのインストラクションによ
ってのみ使用(消費)される結果値を形成(生産)することが分かった(以下、
前者のインストラクションを「生産者」と称し、後者のインストラクションを「
消費者」と称する)。また、SPEC基準によるレジスタデータフローの分析に
よれば、全ての整数結果の70%および全ての浮動小数点結果の80〜99%が
1回だけ使用されることが明らかになった。これに関しては、1992年12月
に行なわれたマイクロアーキテクチャに関する25年度国際シンポジウム(MI
CRO−25)で発表された「微細粒パラレルプロセッサにおいて演算間通信を
合理化するためのレジスタトラヒック分析」と題するM.フランクリン等によっ
て書かれた論文の236頁〜245頁を参照のこと。また、非常に多くの場合、
消費者は、生産者が退去する前に、パイプライン・アーキテクチャに入る。これ
は、スーパースケーラーVLIWプロセッサなどの特定のタイプのプロセッサに
おいて顕著であると考えられる。したがって、消費者は、レジスタファイル以外
の手段、例えばバイパス回路によって、結果値を得る。しかし、それにもかかわ
らず、結果値は、レジスタファイルにライトバックされる。
【0027】 更に重要なことに、そのような状況において、生産者の結果値は、任意の他の
消費者によって使用されないため、これをレジスタファイルへ戻す必要がないと
いう点に気が付いた。生産者の結果値は、消費者にバイパスされると直ぐに、有
効にデッド値となる。したがって、本発明の一形態において、レジスタファイル
コントローラ18は、特定のインストラクションがライトバックステージ等のス
テージnにおいてレジスタファイル16にライトバックされるべきか否かを決定
する。
【0028】 図1の具体的な実施例において、各インストラクションにおける明示的なエン
コードは、特定のインストラクションの結果値が1つの消費者だけ(あるいは、
パイプラインの他の消費者だけ)に使用されたか否かを示すために使用される。
インストラクションエンコードにおいては、使用度合いに応じてコンパイラある
いはアセンブラ(図示せず)によりセットもしくはクリアされる専用の「デッド
値」ビット(いわゆる、インストラクションの「オプコード(opcode)」)を使
用することが望ましい。デッド値ビットがセットされると、結果値は、パイプラ
イン12のステージnで、レジスタファイル16にライトバックされない。特に
、デッド値ビットは、対応するインストラクションのインストラクションIDと
同様に、レジスタファイルコントロール18に供給される。続いて、レジスタフ
ァイルコントロール18は、書き込み可能な信号によってレジスタファイル16
を制御して、結果値をライトバックしたりしなかったりする。一方、専用のビッ
トを利用できない場合には、共通に使用される2〜3のインストラクションを選
択することができる(例えば、ADDおよびLOAD)。これらのインストラク
ションには、使用度合いを示す別のオプコードが割り当てられる。
【0029】 図2に示される他の具体的な実施例において、各インストラクションにおける
暗示的なエンコードは、特定のインストラクションの結果値が1つの消費者だけ
(あるいは、パイプラインの他の消費者だけ)に使用されたか否かを示すために
使用される。すなわち、パイプライン12は、パイプラインの他のインストラク
ションがパイプラインの次のインストラクションと同じ宛先アドレス(例えば、
レジスタファイル16の書き込みポート20)を使用するか否かを決定する。こ
れは、多くの方法によって決定することができる。例えば、ステージ3(12 )におけるインストラクションの結果値がレジスタファイル16の書き込みポー
ト20の宛先アドレスに指定され、ステージ1(12)におけるインストラク
ションの結果値がレジスタファイル16の同じ宛先アドレスに指定される場合、
ステージ3におけるインストラクションの結果値は、ステージ2において「生き
ている」状態にあるが、ステージ1においては「死んでいる」状態にある。これ
は、その宛先アドレスがパイプラインの他のインストラクションによって再利用
されるためである。すなわち、1つの消費者だけが結果値を使用する。また、こ
の方法は、2つ以上の消費者(パイプライン内の消費者)が結果値を使用する場
合にも利用される。例えば、ステージn(12)におけるインストラクション
の結果値がレジスタファイル16の書き込みポート20の宛先アドレスに指定さ
れ、ステージ1(12)におけるインストラクション(上流側)の結果値がレ
ジスタファイル16の同じ宛先アドレスに指定される場合、ステージnにおける
インストラクションの結果値は、ステージ2において「生きている」状態にある
が、ステージ1においては「死んでいる」状態にある。このように、結果値は、
「生きている」状態の間に、多数の消費者によって使用することができる。した
がって、結果値が「死んでいる」状態になると直ぐに、レジスタファイル16へ
のライトバックがなされなくなる。
【0030】 図2の具体的な実施例において、従来のゲート・論理回路22、例えばORゲ
ートは、図2に示されるように、レジスタファイルコントロール18にデッド値
ビットを供給するために使用される。対応するインストラクションのインストラ
クションIDもレジスタファイルコントロール18に供給される。しかしながら
、この技術分野において良く知られるように、レジスタの改名をサポートするマ
イクロアーキテクチャにおいては、レジスタの再使用を検知するメカニズムをプ
ロセッサが既に有しているため、ゲート・論理回路は不要である。
【0031】 図3は、レジスタ書き込みトラヒックを減少させるために図1および図2の構
成内で実行されるステップを示すフローチャートである。簡単のため、図1の実
施例を使用して、本発明の原理の演算について説明する。しかしながら、図3に
示されたステップを同様にして図2の実施例に適用できることは言うまでもない
【0032】 図1および図3を同時に参照すると、本発明に係るプロセスは、インストラク
ションがパイプライン12に入った時点で、図3のステップ300から開始され
る。ステップ302において、レジスタファイルコントロール18は、前述した
ように、デッド値ビットがセットされたか否かを決定する。デッド値がセットさ
れない場合には、ステップ304で示される従来のパイプライン手法でプロセス
が続けられる。デッド値がセットされた場合には、ステップ306で、レジスタ
ファイルコントロール18は、特定のインストラクションの結果値が例えばバイ
パス回路を介してパイプライン12の他のインストラクションにより既に使用さ
れたか否かを決定する。決定が否定的である場合、プロセスはステップ304に
進み、従来のパイプライン手法が継続される。決定が肯定的である場合、プロセ
スはステップ308に進む。ステップ308において、レジスタファイルコント
ロールは、パイプライン12から受けたインストラクションIDと対応する結果
値を決定して、それを破棄する。例えば、レジスタファイルコントロール18に
よって、ライトバックステージは、レジスタファイル16の書き込みポート(す
なわち、宛先アドレス)に結果値を記憶することができない。
【0033】 以上は単に本発明の原理を明らかにしている。したがって、言うまでも無く、
当業者であれば、ここには明白に記載されて示されてはいないが、本発明の原理
を具体化し且つ本発明の技術的思想および範囲内に含まれる様々な構成を考え出
すことができる。また、ここで述べた全てのこと、すなわち、本発明の原理、形
態、実施例や、本発明の特定の実施例は、これと構造的および機能的に等価なも
のを含んでいることは言うまでもない。また、そのような等価なものが、現在知
られている等価物および将来開発される等価物、すなわち、構造とは無関係に同
じ機能を達成するように開発された任意の要素を含んでいることは言うまでもな
い。
【0034】 言うまでもなく、本発明の請求の範囲において、特定の機能を果たす手段とし
て示された任意の要素は、その機能を果たす任意の方法を含んでいる。この任意
の方法の中には、例えば、a)その機能を果たす回路素子の組み合わせ、b)フ
ァームウェアやマイクロコード等を含む任意の形態のソフトウエアであって、そ
の機能を果たすためにこのソフトウエアを実行する適当な回路と組み合わせられ
るソフトウエア、も含まれる。このような請求の範囲によって規定される発明は
、記載される様々な手段によって与えられる機能性が請求の範囲で要求されるよ
うに組み合されて統合されるという事実に内在している。したがって、出願人は
、それらの機能性を与えることができる任意の手段を、ここに示された手段と等
価なものであると考えている。
【図面の簡単な説明】
【図1】 本発明の教示内容に係るインストラクション実行デバイスの一構成例を示すブ
ロック図である。
【図2】 本発明の教示内容に係るインストラクション実行デバイスの他の構成例を示す
ブロック図である。
【図3】 図1および図2の構成におけるレジスタ書き込みトラヒックを減少するための
プロセスを示すフローチャートである。
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B013 CC10 5B033 AA10 DD04 DD09 5B081 CC25 CC30

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサにおいて使用するためのインストラクション実行デバイスにおいて
    、 第1のインストラクションに関する第1の結果を形成するためのインストラク
    ションパイプラインと、 インストラクションパイプラインに接続され、第1の結果を記憶するための少
    なくとも1つの第1の書き込みポートを有するレジスタファイルと、 インストラクションパイプラインに接続され、第1の結果に対するアクセスを
    許容するバイパス回路と、 第1の結果がインストラクションパイプラインにおける第2のインストラクシ
    ョンによって使用されたか否かを示すための手段と、 インストラクションパイプラインとレジスタファイルとに接続され、第1の結
    果がバイパス回路を使用してアクセスされてインストラクションパイプラインの
    第2のインストラクションによって使用される場合に、第1の結果が書き込みポ
    ートに記憶されることを防止するレジスタファイルコントロールと、 を備えていることを特徴とするインストラクション実行デバイス。
  2. 【請求項2】 インストラクションパイプラインが複数のステージを有していることを特徴と
    する請求項1に記載のインストラクション実行デバイス。
  3. 【請求項3】 インストラクションパイプラインは、複数のステージで複数のインストラクシ
    ョンを処理することを特徴とする請求項2に記載のインストラクション実行デバ
    イス。
  4. 【請求項4】 第1の結果が第2のインストラクションだけによって使用されるか否かを示す
    ための手段は、第1のインストラクションをエンコードして、第1の結果が第2
    のインストラクションだけによって使用されるか否かを示すことを特徴とする請
    求項1に記載のインストラクション実行デバイス。
  5. 【請求項5】 第1のインストラクションのエンコードは、第1の結果が第2のインストラク
    ションだけによって使用されるか否かを示すために、第1のインストラクション
    のオプコードに1つの領域を指定することを特徴とする請求項4に記載のインス
    トラクション実行デバイス。
  6. 【請求項6】 各インストラクションがエンコードされて、その各結果が他の1つのインスト
    ラクションによって使用されるか否かを示すことを特徴とする請求項5に記載の
    インストラクション実行デバイス。
  7. 【請求項7】 第1の結果が第2のインストラクションだけによって使用されるか否かを示す
    ための手段がインストラクションパイプラインを有し、このインストラクション
    パイプラインは、インストラクションパイプラインにおける第1のインストラク
    ションの第1の結果およびインストラクションパイプラインにおける第2のイン
    ストラクションの第2の結果がレジスタファイルの第1の書き込みポートへの記
    憶のために指定されるか否か決定することを特徴とする請求項3に記載のインス
    トラクション実行デバイス。
  8. 【請求項8】 第1の結果が第2のインストラクションだけによって使用されるか否かを示す
    ための手段は、ゲート・論理回路を更に有していることを特徴とする請求項7に
    記載のインストラクション実行デバイス。
  9. 【請求項9】 プロセッサでインストラクションを実行するための方法において、 インストラクションパイプラインを使用して第1のインストラクションから第
    1の結果を形成するステップと、 バイパス回路を使用して第1の結果に対するアクセスを許容するステップと、 第1の結果がインストラクションパイプラインの第2のインストラクションに
    よって使用されるか否かを決定するステップと、 第1の結果がアクセスされて第2のインストラクションだけによって使用され
    る場合に、第1の結果がレジスタファイルに記憶されることを防止するステップ
    と、 を備えていることを特徴とする方法。
  10. 【請求項10】 第1の結果がインストラクションパイプラインの第2のインストラクションに
    よって使用されるか否かを決定する前記ステップは、第1のインストラクション
    をエンコードして、第1の結果が第2のインストラクションだけによって使用さ
    れるか否かを示すことを特徴とする請求項9に記載の方法。
  11. 【請求項11】 第1の結果がインストラクションパイプラインの第2のインストラクションに
    よって使用されるか否かを決定する前記ステップがインストラクションパイプラ
    インを有し、このインストラクションパイプラインは、インストラクションパイ
    プラインにおける第1のインストラクションの第1の結果およびインストラクシ
    ョンパイプラインにおける第2のインストラクションの第2の結果がレジスタフ
    ァイル内に同じ記憶アドレスを有しているか否か決定することを特徴とする請求
    項9に記載の方法。
  12. 【請求項12】 インストラクションを処理するコードを有するコンピュータで読み込み可能な
    記憶媒体において、前記コードは、 第1のインストラクションから第1の結果を形成するインストラクションパイ
    プラインコードと、 第1の結果がインストラクションパイプラインにある間に、第1の結果に対す
    るアクセスを許容するアクセス許容コードと、 第1の結果がインストラクションパイプラインの第2のインストラクションに
    よって使用されるか否かを示すための表示コードと、 第1の結果がアクセスされて第2のインストラクションだけによって使用され
    る場合に、第1の結果が記憶されることを防止する防止コードと、 を備えていることを特徴とする記憶媒体。
  13. 【請求項13】 前記表示コードは、第1のインストラクションをエンコードして、第1の結果
    が第2のインストラクションだけによって使用されるか否かを示すことを特徴と
    する請求項12に記載の記憶媒体。
  14. 【請求項14】 前記表示コードがインストラクションパイプラインを有し、このインストラク
    ションパイプラインは、インストラクションパイプラインにおける第1のインス
    トラクションの第1の結果およびインストラクションパイプラインにおける第2
    のインストラクションの第2の結果がレジスタファイル内に同じ記憶アドレスを
    有しているか否か決定することを特徴とする請求項12に記載の記憶媒体。
JP2001560800A 2000-02-16 2001-01-18 プロセッサにおける書き込みトラヒックを減少するシステム及び方法 Withdrawn JP2003523573A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/505,985 2000-02-16
US09/505,985 US6862677B1 (en) 2000-02-16 2000-02-16 System and method for eliminating write back to register using dead field indicator
PCT/EP2001/000513 WO2001061478A2 (en) 2000-02-16 2001-01-18 System and method for reducing write traffic in processors

Publications (1)

Publication Number Publication Date
JP2003523573A true JP2003523573A (ja) 2003-08-05

Family

ID=24012693

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001560800A Withdrawn JP2003523573A (ja) 2000-02-16 2001-01-18 プロセッサにおける書き込みトラヒックを減少するシステム及び方法

Country Status (7)

Country Link
US (1) US6862677B1 (ja)
EP (1) EP1190311A2 (ja)
JP (1) JP2003523573A (ja)
KR (1) KR100900364B1 (ja)
CN (1) CN1177275C (ja)
TW (1) TW514782B (ja)
WO (1) WO2001061478A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018517212A (ja) * 2015-06-08 2018-06-28 クアルコム,インコーポレイテッド 一時的なロード命令のためのシステム、装置および方法

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040128482A1 (en) * 2002-12-26 2004-07-01 Sheaffer Gad S. Eliminating register reads and writes in a scheduled instruction cache
WO2004084065A2 (en) * 2003-03-19 2004-09-30 Koninklijke Philips Electronics N.V. Pipelined instruction processor with data bypassing
JP4828409B2 (ja) * 2003-04-16 2011-11-30 シリコン ハイブ ビー・ヴィー タイムステーショナリプロセッサにおける条件動作のためのサポート
US20050138297A1 (en) * 2003-12-23 2005-06-23 Intel Corporation Register file cache
US20050283590A1 (en) * 2004-06-17 2005-12-22 Weaver Christopher T Reducing false error detection in a microprocessor by tracking dynamically dead instructions
US7386756B2 (en) * 2004-06-17 2008-06-10 Intel Corporation Reducing false error detection in a microprocessor by tracking instructions neutral to errors
US7555703B2 (en) * 2004-06-17 2009-06-30 Intel Corporation Method and apparatus for reducing false error detection in a microprocessor
US7290153B2 (en) * 2004-11-08 2007-10-30 Via Technologies, Inc. System, method, and apparatus for reducing power consumption in a microprocessor
WO2007057831A1 (en) * 2005-11-15 2007-05-24 Nxp B.V. Data processing method and apparatus
JP4607958B2 (ja) * 2006-01-20 2011-01-05 パナソニック株式会社 プロセッサおよびプログラム変換装置
US7984272B2 (en) * 2007-06-27 2011-07-19 International Business Machines Corporation Design structure for single hot forward interconnect scheme for delayed execution pipelines
US8108654B2 (en) * 2008-02-19 2012-01-31 International Business Machines Corporation System and method for a group priority issue schema for a cascaded pipeline
US7996654B2 (en) * 2008-02-19 2011-08-09 International Business Machines Corporation System and method for optimization within a group priority issue schema for a cascaded pipeline
US20090210669A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Prioritizing Floating-Point Instructions
US8095779B2 (en) * 2008-02-19 2012-01-10 International Business Machines Corporation System and method for optimization within a group priority issue schema for a cascaded pipeline
US20090210672A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Resolving Issue Conflicts of Load Instructions
US7882335B2 (en) * 2008-02-19 2011-02-01 International Business Machines Corporation System and method for the scheduling of load instructions within a group priority issue schema for a cascaded pipeline
US20090210666A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Resolving Issue Conflicts of Load Instructions
US7865700B2 (en) * 2008-02-19 2011-01-04 International Business Machines Corporation System and method for prioritizing store instructions
US20090210677A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Optimization Within a Group Priority Issue Schema for a Cascaded Pipeline
US7870368B2 (en) * 2008-02-19 2011-01-11 International Business Machines Corporation System and method for prioritizing branch instructions
US7984270B2 (en) * 2008-02-19 2011-07-19 International Business Machines Corporation System and method for prioritizing arithmetic instructions
US7877579B2 (en) * 2008-02-19 2011-01-25 International Business Machines Corporation System and method for prioritizing compare instructions
US7526638B1 (en) 2008-03-16 2009-04-28 International Business Machines Corporation Hardware alteration of instructions in a microcode routine
US9008464B2 (en) * 2009-06-16 2015-04-14 University-Industry Cooperation Group Of Kyung Hee University Media data customization
US9858077B2 (en) * 2012-06-05 2018-01-02 Qualcomm Incorporated Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media
KR101711388B1 (ko) * 2013-01-28 2017-03-02 삼성전자주식회사 파이프라인에서 블럭을 스케줄하는 컴파일 방법 및 장치
CN104216681B (zh) * 2013-05-31 2018-02-13 华为技术有限公司 一种cpu指令处理方法和处理器
US20220300284A1 (en) * 2021-03-19 2022-09-22 Samsung Electronics Co., Ltd. Opportunistic write-back discard of single-use vector register values

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228497A (en) * 1977-11-17 1980-10-14 Burroughs Corporation Template micromemory structure for a pipelined microprogrammable data processing system
AU553416B2 (en) * 1984-02-24 1986-07-17 Fujitsu Limited Pipeline processing
US6370623B1 (en) 1988-12-28 2002-04-09 Philips Electronics North America Corporation Multiport register file to accommodate data of differing lengths
JPH0719222B2 (ja) * 1989-03-30 1995-03-06 日本電気株式会社 ストアバッフア
AU629007B2 (en) 1989-12-29 1992-09-24 Sun Microsystems, Inc. Apparatus for accelerating store operations in a risc computer
US5222240A (en) 1990-02-14 1993-06-22 Intel Corporation Method and apparatus for delaying writing back the results of instructions to a processor
GB2241801B (en) 1990-03-05 1994-03-16 Intel Corp Data bypass structure in a register file on a microprocessor chip to ensure data integrity
US5253349A (en) * 1991-01-30 1993-10-12 International Business Machines Corporation Decreasing processing time for type 1 dyadic instructions
JPH04367936A (ja) * 1991-06-17 1992-12-21 Mitsubishi Electric Corp スーパースカラープロセッサ
EP0650116B1 (en) * 1993-10-21 1998-12-09 Sun Microsystems, Inc. Counterflow pipeline processor
JPH08212083A (ja) 1995-02-07 1996-08-20 Oki Electric Ind Co Ltd 割り込み処理装置
TW448403B (en) * 1995-03-03 2001-08-01 Matsushita Electric Ind Co Ltd Pipeline data processing device and method for executing multiple data processing data dependent relationship
JP3490191B2 (ja) 1995-06-30 2004-01-26 株式会社東芝 計算機
EP0798633B1 (en) * 1996-03-29 2005-06-08 Matsushita Electric Industrial Co., Ltd. Data processor having a variable number of pipeline stages
JP3449186B2 (ja) * 1997-08-19 2003-09-22 富士通株式会社 パイプラインバイパス機能を有するデータ処理装置
US5872986A (en) * 1997-09-30 1999-02-16 Intel Corporation Pre-arbitrated bypassing in a speculative execution microprocessor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018517212A (ja) * 2015-06-08 2018-06-28 クアルコム,インコーポレイテッド 一時的なロード命令のためのシステム、装置および方法
US11561792B2 (en) 2015-06-08 2023-01-24 Qualcomm Incorporated System, apparatus, and method for a transient load instruction within a VLIW operation

Also Published As

Publication number Publication date
CN1177275C (zh) 2004-11-24
TW514782B (en) 2002-12-21
US6862677B1 (en) 2005-03-01
KR100900364B1 (ko) 2009-06-02
CN1363063A (zh) 2002-08-07
WO2001061478A3 (en) 2001-12-27
KR20010109354A (ko) 2001-12-08
WO2001061478A2 (en) 2001-08-23
EP1190311A2 (en) 2002-03-27

Similar Documents

Publication Publication Date Title
JP2003523573A (ja) プロセッサにおける書き込みトラヒックを減少するシステム及び方法
US7114059B2 (en) System and method to bypass execution of instructions involving unreliable data during speculative execution
US7203817B2 (en) Power consumption reduction in a pipeline by stalling instruction issue on a load miss
US7458069B2 (en) System and method for fusing instructions
TWI507980B (zh) 最佳化暫存器初始化操作
US6976152B2 (en) Comparing operands of instructions against a replay scoreboard to detect an instruction replay and copying a replay scoreboard to an issue scoreboard
JP3678444B2 (ja) パイプ制御及びレジスタ変換機能を増強したスーパースカラーパイプライン式のプロセッサ
US5694565A (en) Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions
JPH09311786A (ja) データ処理装置
US5864689A (en) Microprocessor configured to selectively invoke a microcode DSP function or a program subroutine in response to a target address value of branch instruction
US20240036876A1 (en) Pipeline protection for cpus with save and restore of intermediate results
EP1673692B1 (en) Selectively deferring the execution of instructions with unresolved data dependencies
US6055628A (en) Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks
JPH07152560A (ja) スーパーパイプライン式スーパースカラーマイクロプロセッサ用のマイクロコントロールユニット
US7269714B2 (en) Inhibiting of a co-issuing instruction in a processor having different pipeline lengths
US6851044B1 (en) System and method for eliminating write backs with buffer for exception processing
US5850563A (en) Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
WO2007057831A1 (en) Data processing method and apparatus
GB2365568A (en) Using local stall techniques upon data dependency hazard detection in pipelined microprocessors
US20040128482A1 (en) Eliminating register reads and writes in a scheduled instruction cache
Shah et al. SPSIM: SuperScalar Processor SIMulater CS305 Project Report
WO2000065452A1 (en) Pipelined access to single ported cache
JPH05108348A (ja) 並列演算処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080116

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080626

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090911