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
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000012545 processing Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 102100031083 Uteroglobin Human genes 0.000 description 1
- 108090000203 Uteroglobin Proteins 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3873—Variable 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つの技術的な開発は、多数のインストラクションを
同時に平行して実行するインストラクション実行アーキテクチャの開発である。
め、一般的なモチベーション的基準がマイクロプロセッサの設計のために存在す
る。特に、この点に関する1つの技術的な開発は、多数のインストラクションを
同時に平行して実行するインストラクション実行アーキテクチャの開発である。
【0003】
前述したタイプのインストラクション実行アーキテクチャ、例えば、マイクロ
プロセッサ・インストラクション・セット・アーキテクチャ(ISA)を形成す
るシステムおよび方法は知られている。一般に、そのようなISAの実行には、
その後の複数のインストラクションの異なる実行ステージを重ね合わせる所謂「
パイプライン」手法が使用される。
プロセッサ・インストラクション・セット・アーキテクチャ(ISA)を形成す
るシステムおよび方法は知られている。一般に、そのようなISAの実行には、
その後の複数のインストラクションの異なる実行ステージを重ね合わせる所謂「
パイプライン」手法が使用される。
【0004】
従来の4ステージパイプラインは、(1)フェッチと、(2)デコードと、(
3)実行と、(4)ライトバックとを使用する。ロードインストラクション等の
ようなデータ転送型のインストラクションに関しては、通常、別の1つのインス
トラクションパイプラインが必要とされる。
3)実行と、(4)ライトバックとを使用する。ロードインストラクション等の
ようなデータ転送型のインストラクションに関しては、通常、別の1つのインス
トラクションパイプラインが必要とされる。
【0005】
サイクルの最初のステージにおいて、プロセッサは、メモリから1つのインス
トラクションを取り出す。取り出すためのインストラクションのアドレスは、プ
ログラムカウンタすなわちPCと称する内部のレジスタ内に記憶される。プロセ
ッサは、インストラクションに応答するためにメモリを待っている間、PCを増
加させる。これは、次のサイクルのフェッチ・フェーズが、メモリ内の次の連続
する場所でインストラクションを取り出す(ただし、サイクルのその後のフェー
ズによってPCが変更される場合を除く)ことを意味している。
トラクションを取り出す。取り出すためのインストラクションのアドレスは、プ
ログラムカウンタすなわちPCと称する内部のレジスタ内に記憶される。プロセ
ッサは、インストラクションに応答するためにメモリを待っている間、PCを増
加させる。これは、次のサイクルのフェッチ・フェーズが、メモリ内の次の連続
する場所でインストラクションを取り出す(ただし、サイクルのその後のフェー
ズによってPCが変更される場合を除く)ことを意味している。
【0006】
デコードフェーズにおいて、プロセッサは、メモリによって戻された情報を、
インストラクションレジスタすなわちIRとして知られる他の内部レジスタに記
憶する。この時、IRは、2進数としてエンコードされた1つのマシンインスト
ラクション(機械命令)を保持する。プロセッサは、次のステージでどの演算を
行なうかを決定するために、IR内の値をデコードする。
インストラクションレジスタすなわちIRとして知られる他の内部レジスタに記
憶する。この時、IRは、2進数としてエンコードされた1つのマシンインスト
ラクション(機械命令)を保持する。プロセッサは、次のステージでどの演算を
行なうかを決定するために、IR内の値をデコードする。
【0007】
実行ステージにおいて、プロセッサは、インストラクションを実際に実行する
。このステップは、しばしば、別のメモリ演算を必要とする。例えば、インスト
ラクションによって、プロセッサは、2つのオペランドをメモリから取り出し(
例えば、これらのオペランドをオペランドレジスタ内に記憶する)、これらのオ
ペランドを加えるとともに、その結果を第3の場所に記憶しても良い(また、オ
ペランドの宛先アドレスおよび結果は、インストラクションの一部としてエンコ
ードされる)。
。このステップは、しばしば、別のメモリ演算を必要とする。例えば、インスト
ラクションによって、プロセッサは、2つのオペランドをメモリから取り出し(
例えば、これらのオペランドをオペランドレジスタ内に記憶する)、これらのオ
ペランドを加えるとともに、その結果を第3の場所に記憶しても良い(また、オ
ペランドの宛先アドレスおよび結果は、インストラクションの一部としてエンコ
ードされる)。
【0008】
パイプラインのライトバックステージにおいて、パイプラインの上流側で演算
された結果は、レジスタファイルの宛先レジスタに書き込まれる(退去される)
。
された結果は、レジスタファイルの宛先レジスタに書き込まれる(退去される)
。
【0009】
従来の他のパイプライン手法においては、オペランドまたは結果値がレジスタ
ファイルを迂回できるようにする回路が設けられる。これらのバイパス回路を使
用すると、オペランド形成インストラクションが退去される(例えば、レジスタ
ファイルへのライトバック)前に、オペランドまたは結果値を次のインストラク
ションに利用できる。
ファイルを迂回できるようにする回路が設けられる。これらのバイパス回路を使
用すると、オペランド形成インストラクションが退去される(例えば、レジスタ
ファイルへのライトバック)前に、オペランドまたは結果値を次のインストラク
ションに利用できる。
【0010】
しかしながら、この種の従来のパイプラインには多数の欠点がある。例えば、
従来のパイプライン手法は、多数のインストラクションを同時に平行して適切に
実行するために、レジスタファイル内に多数の別個のレジスタを必要とする場合
がある。一般に、大きなレジスタファイルは全電力消費量に大きく関与する。ま
た、パイプラインの各ステージは、各インストラクションの実行のために行なわ
れなければならない。これらの欠点は、ひいては、電力消費量およびプロセッサ
のサイズに影響してくる。したがって、プロセッサにおけるインストラクション
実行を行なうために要求されるパイプラインに必要な回路部品やパイプラインス
テージの数を減らせば、(1)全電力消費量を向上することができ、(2)プロ
セッサの全体のサイズを小さくすることができる。
従来のパイプライン手法は、多数のインストラクションを同時に平行して適切に
実行するために、レジスタファイル内に多数の別個のレジスタを必要とする場合
がある。一般に、大きなレジスタファイルは全電力消費量に大きく関与する。ま
た、パイプラインの各ステージは、各インストラクションの実行のために行なわ
れなければならない。これらの欠点は、ひいては、電力消費量およびプロセッサ
のサイズに影響してくる。したがって、プロセッサにおけるインストラクション
実行を行なうために要求されるパイプラインに必要な回路部品やパイプラインス
テージの数を減らせば、(1)全電力消費量を向上することができ、(2)プロ
セッサの全体のサイズを小さくすることができる。
【0011】
本発明の目的は、前述したように、プロセッサ内の従来のインストラクション
実行デバイスの幾つかの限界を解決することである。
実行デバイスの幾つかの限界を解決することである。
【0012】
本発明の他の目的は、パイプライン手法でレジスタファイルの書き込み演算の
数を減らし、ひいては、プロセッサの全電力消費量を有利に減少するプロセッサ
・インストラクション・セット・アーキテクチャを提供することである。また、
レジスタファイルのサイズすなわちシリコン領域は、必要とされる書き込みポー
トの数の減少に伴って減少する。
数を減らし、ひいては、プロセッサの全電力消費量を有利に減少するプロセッサ
・インストラクション・セット・アーキテクチャを提供することである。また、
レジスタファイルのサイズすなわちシリコン領域は、必要とされる書き込みポー
トの数の減少に伴って減少する。
【0013】
プロセッサのレジスタ書き込みトラヒックに関連付けられた欠点は、インスト
ラクション実行デバイスが設けられる本発明の原理に基づく構成によって、低減
され、解決される。インストラクション実行デバイスは、インストラクションに
関する結果を形成するためのインストラクションパイプラインと、結果を記憶す
るための少なくとも1つの書き込みポートを有するレジスタファイルと、結果に
対するアクセスを許容するバイパス回路と、結果が他の1つのインストラクショ
ンだけによって使用されたか否かを示すための手段と、結果がバイパス回路を介
してアクセスされて他の1つのインストラクションだけによって使用される場合
に、結果が書き込みポートに記憶されることを防止するレジスタファイルコント
ロールとを有している。
ラクション実行デバイスが設けられる本発明の原理に基づく構成によって、低減
され、解決される。インストラクション実行デバイスは、インストラクションに
関する結果を形成するためのインストラクションパイプラインと、結果を記憶す
るための少なくとも1つの書き込みポートを有するレジスタファイルと、結果に
対するアクセスを許容するバイパス回路と、結果が他の1つのインストラクショ
ンだけによって使用されたか否かを示すための手段と、結果がバイパス回路を介
してアクセスされて他の1つのインストラクションだけによって使用される場合
に、結果が書き込みポートに記憶されることを防止するレジスタファイルコント
ロールとを有している。
【0014】
本発明の一実施例において、結果が他の1つのインストラクションだけによっ
て使用されるか否かを示すための手段は、各インストラクションをエンコードす
る。例えば、結果が他の1つのインストラクションだけによって使用されるか否
かを示すために、いわゆる「デッド値」領域が各インストラクションの「オプコ
ード」に指定される。
て使用されるか否かを示すための手段は、各インストラクションをエンコードす
る。例えば、結果が他の1つのインストラクションだけによって使用されるか否
かを示すために、いわゆる「デッド値」領域が各インストラクションの「オプコ
ード」に指定される。
【0015】
本発明の他の実施例において、結果が第2のインストラクションだけによって
使用されるか否かを示すための手段はインストラクションパイプラインを有し、
このインストラクションパイプラインは、インストラクションパイプラインにお
けるインストラクションの結果およびインストラクションパイプラインにおける
他のインストラクションの他の結果がレジスタファイルの同じ書き込みポートへ
の記憶のために指定されるか否か決定する。レジスタファイルの書き込みポート
は、インストラクションパイプラインの次のインストラクションによって「再利
用」されるため、これは、第1の結果が他の1つのインストラクションだけによ
って使用されることを示すために使用される。
使用されるか否かを示すための手段はインストラクションパイプラインを有し、
このインストラクションパイプラインは、インストラクションパイプラインにお
けるインストラクションの結果およびインストラクションパイプラインにおける
他のインストラクションの他の結果がレジスタファイルの同じ書き込みポートへ
の記憶のために指定されるか否か決定する。レジスタファイルの書き込みポート
は、インストラクションパイプラインの次のインストラクションによって「再利
用」されるため、これは、第1の結果が他の1つのインストラクションだけによ
って使用されることを示すために使用される。
【0016】
これら及び他の実施例並びに本発明の形態は、以下の詳細な説明で具体的に示
される。
される。
【0017】
本発明の特徴および利点は、添付図面を参照しながら以下の好ましい実施例の
詳細な説明を参照することによって、理解することができる。
詳細な説明を参照することによって、理解することができる。
【0018】
以下の詳細な説明の幾つかの部分は、コンピュータメモリ内のデータビットに
おける演算のプログラム、アルゴリズム、象徴という形で与えられている。これ
らのアルゴリズムの説明や表示は、データ処理技術分野の当業者がその研究内容
を他の当業者に最も効果的に伝達するために使用する手段である。ここで、アル
ゴリズムは、所望の結果に導く矛盾のないステップシーケンスであると一般に考
えられている。ステップは、物理量の物理的な操作を必要とするものである。通
常、必ずしもそうではないが、これらの物理量は、記憶でき、送信でき、組合せ
ることができ、比較でき、操作できる電気、磁気、光信号の形をとる。
おける演算のプログラム、アルゴリズム、象徴という形で与えられている。これ
らのアルゴリズムの説明や表示は、データ処理技術分野の当業者がその研究内容
を他の当業者に最も効果的に伝達するために使用する手段である。ここで、アル
ゴリズムは、所望の結果に導く矛盾のないステップシーケンスであると一般に考
えられている。ステップは、物理量の物理的な操作を必要とするものである。通
常、必ずしもそうではないが、これらの物理量は、記憶でき、送信でき、組合せ
ることができ、比較でき、操作できる電気、磁気、光信号の形をとる。
【0019】
図1には、本発明の教示内容に係るインストラクション実行デバイスの一実施
例のブロック図が示されている。見て分かるように、図1は説明の目的で簡略化
されており、また、本発明における使用に適した全プロセッサ環境は、例えば、
キャッシュメモリと、RAM・ROMメモリと、コンパイラまたはアセンブラと
、I/Oデバイス等とを備えており、これらの全てはここに図示するに及ばない
。一般に、インストラクション実行デバイス10は、n個のステージのパイプラ
イン・インストラクション・セット・レジスタ・アーキテクチャ(ISA)12 1 〜12n(以下、総称してパイプライン12と言う)と、従来のバイパス回路
14と、レジスタファイル16と、レジスタファイルコントロール18とを使用
している。
例のブロック図が示されている。見て分かるように、図1は説明の目的で簡略化
されており、また、本発明における使用に適した全プロセッサ環境は、例えば、
キャッシュメモリと、RAM・ROMメモリと、コンパイラまたはアセンブラと
、I/Oデバイス等とを備えており、これらの全てはここに図示するに及ばない
。一般に、インストラクション実行デバイス10は、n個のステージのパイプラ
イン・インストラクション・セット・レジスタ・アーキテクチャ(ISA)12 1 〜12n(以下、総称してパイプライン12と言う)と、従来のバイパス回路
14と、レジスタファイル16と、レジスタファイルコントロール18とを使用
している。
【0020】
パイプライン12は、多数のパイプラインステージ(例えば、フェッチ、デコ
ード、実行、ライトバック)を有している。しかしながら、本発明が特定のパイ
プライン・アーキテクチャに限定されないことは言うまでもない。例えば、パイ
プラインのステージは、インストラクション・フェッチ、デコード、オペランド
・フェッチ、ALU実行、メモリアクセス、演算結果のライトバックを有してい
ても良い。また、パイプラインの一連のステージは、更に細かく再分割すること
ができる。
ード、実行、ライトバック)を有している。しかしながら、本発明が特定のパイ
プライン・アーキテクチャに限定されないことは言うまでもない。例えば、パイ
プラインのステージは、インストラクション・フェッチ、デコード、オペランド
・フェッチ、ALU実行、メモリアクセス、演算結果のライトバックを有してい
ても良い。また、パイプラインの一連のステージは、更に細かく再分割すること
ができる。
【0021】
パイプラインのステージの数は、インストラクションレベルの並列処理の利用
意図にしたがって変えることができるアーキテクチャ事項である。
意図にしたがって変えることができるアーキテクチャ事項である。
【0022】
レジスタファイル16は、データを記憶する少なくとも1つのアドレス可能宛
先書き込みポート20を有している。当業者であれば分かるように、レジスタフ
ァイルは、記録/データを記憶でき且つ記録/データにアクセスできる従来の任
意のデータベース/インデックス記憶手段であっても良い。
先書き込みポート20を有している。当業者であれば分かるように、レジスタフ
ァイルは、記録/データを記憶でき且つ記録/データにアクセスできる従来の任
意のデータベース/インデックス記憶手段であっても良い。
【0023】
レジスタファイルコントロール18は、多数のロジック、コントロール、スー
パーバイザ、レジスタファイル16へのライトバック書き込みデータの演算を制
御するために必要なトランスレーション機能を有している。また、レジスタファ
イルコントロール18は、図3に機能的に示される演算のためのプログラムも有
している。後述するように、これらのプログラムの実行は、パイプラインにおけ
るレジスタファイル書き込み操作の数を減らすために必要な機能を果たす。
パーバイザ、レジスタファイル16へのライトバック書き込みデータの演算を制
御するために必要なトランスレーション機能を有している。また、レジスタファ
イルコントロール18は、図3に機能的に示される演算のためのプログラムも有
している。後述するように、これらのプログラムの実行は、パイプラインにおけ
るレジスタファイル書き込み操作の数を減らすために必要な機能を果たす。
【0024】
インストラクションは、3つの主要なタイプ、すなわち、演算/論理、データ
転送、コントロールのうちの1つとして分類できる。演算論理インストラクショ
ンは、例えば加法、乗法、あるいは論理ANDといった1つ又は2つの項の原始
関数を適用する。
転送、コントロールのうちの1つとして分類できる。演算論理インストラクショ
ンは、例えば加法、乗法、あるいは論理ANDといった1つ又は2つの項の原始
関数を適用する。
【0025】
各ステージのタイミングは、プロセッサの内部構成と、それが実行するインス
トラクションの複雑度とに依存している。演算を測定するための定量的時間単位
は、クロックサイクルとして知られている。プロセッサ内で演算を方向付けるロ
ジックは、外部のクロックによって制御される。この外部のクロックは、例えば
、所定時間にわたって方形波を形成する回路であっても良い。演算を実行するた
めに必要なクロックサイクルの数は、所要時間tを決定する。
トラクションの複雑度とに依存している。演算を測定するための定量的時間単位
は、クロックサイクルとして知られている。プロセッサ内で演算を方向付けるロ
ジックは、外部のクロックによって制御される。この外部のクロックは、例えば
、所定時間にわたって方形波を形成する回路であっても良い。演算を実行するた
めに必要なクロックサイクルの数は、所要時間tを決定する。
【0026】
多数のインストラクションが、アルゴリズムにおけるその後の1つのインスト
ラクション、例えば次にパイプラインに入る他の1つのインストラクションによ
ってのみ使用(消費)される結果値を形成(生産)することが分かった(以下、
前者のインストラクションを「生産者」と称し、後者のインストラクションを「
消費者」と称する)。また、SPEC基準によるレジスタデータフローの分析に
よれば、全ての整数結果の70%および全ての浮動小数点結果の80〜99%が
1回だけ使用されることが明らかになった。これに関しては、1992年12月
に行なわれたマイクロアーキテクチャに関する25年度国際シンポジウム(MI
CRO−25)で発表された「微細粒パラレルプロセッサにおいて演算間通信を
合理化するためのレジスタトラヒック分析」と題するM.フランクリン等によっ
て書かれた論文の236頁〜245頁を参照のこと。また、非常に多くの場合、
消費者は、生産者が退去する前に、パイプライン・アーキテクチャに入る。これ
は、スーパースケーラーVLIWプロセッサなどの特定のタイプのプロセッサに
おいて顕著であると考えられる。したがって、消費者は、レジスタファイル以外
の手段、例えばバイパス回路によって、結果値を得る。しかし、それにもかかわ
らず、結果値は、レジスタファイルにライトバックされる。
ラクション、例えば次にパイプラインに入る他の1つのインストラクションによ
ってのみ使用(消費)される結果値を形成(生産)することが分かった(以下、
前者のインストラクションを「生産者」と称し、後者のインストラクションを「
消費者」と称する)。また、SPEC基準によるレジスタデータフローの分析に
よれば、全ての整数結果の70%および全ての浮動小数点結果の80〜99%が
1回だけ使用されることが明らかになった。これに関しては、1992年12月
に行なわれたマイクロアーキテクチャに関する25年度国際シンポジウム(MI
CRO−25)で発表された「微細粒パラレルプロセッサにおいて演算間通信を
合理化するためのレジスタトラヒック分析」と題するM.フランクリン等によっ
て書かれた論文の236頁〜245頁を参照のこと。また、非常に多くの場合、
消費者は、生産者が退去する前に、パイプライン・アーキテクチャに入る。これ
は、スーパースケーラーVLIWプロセッサなどの特定のタイプのプロセッサに
おいて顕著であると考えられる。したがって、消費者は、レジスタファイル以外
の手段、例えばバイパス回路によって、結果値を得る。しかし、それにもかかわ
らず、結果値は、レジスタファイルにライトバックされる。
【0027】
更に重要なことに、そのような状況において、生産者の結果値は、任意の他の
消費者によって使用されないため、これをレジスタファイルへ戻す必要がないと
いう点に気が付いた。生産者の結果値は、消費者にバイパスされると直ぐに、有
効にデッド値となる。したがって、本発明の一形態において、レジスタファイル
コントローラ18は、特定のインストラクションがライトバックステージ等のス
テージnにおいてレジスタファイル16にライトバックされるべきか否かを決定
する。
消費者によって使用されないため、これをレジスタファイルへ戻す必要がないと
いう点に気が付いた。生産者の結果値は、消費者にバイパスされると直ぐに、有
効にデッド値となる。したがって、本発明の一形態において、レジスタファイル
コントローラ18は、特定のインストラクションがライトバックステージ等のス
テージnにおいてレジスタファイル16にライトバックされるべきか否かを決定
する。
【0028】
図1の具体的な実施例において、各インストラクションにおける明示的なエン
コードは、特定のインストラクションの結果値が1つの消費者だけ(あるいは、
パイプラインの他の消費者だけ)に使用されたか否かを示すために使用される。
インストラクションエンコードにおいては、使用度合いに応じてコンパイラある
いはアセンブラ(図示せず)によりセットもしくはクリアされる専用の「デッド
値」ビット(いわゆる、インストラクションの「オプコード(opcode)」)を使
用することが望ましい。デッド値ビットがセットされると、結果値は、パイプラ
イン12のステージnで、レジスタファイル16にライトバックされない。特に
、デッド値ビットは、対応するインストラクションのインストラクションIDと
同様に、レジスタファイルコントロール18に供給される。続いて、レジスタフ
ァイルコントロール18は、書き込み可能な信号によってレジスタファイル16
を制御して、結果値をライトバックしたりしなかったりする。一方、専用のビッ
トを利用できない場合には、共通に使用される2〜3のインストラクションを選
択することができる(例えば、ADDおよびLOAD)。これらのインストラク
ションには、使用度合いを示す別のオプコードが割り当てられる。
コードは、特定のインストラクションの結果値が1つの消費者だけ(あるいは、
パイプラインの他の消費者だけ)に使用されたか否かを示すために使用される。
インストラクションエンコードにおいては、使用度合いに応じてコンパイラある
いはアセンブラ(図示せず)によりセットもしくはクリアされる専用の「デッド
値」ビット(いわゆる、インストラクションの「オプコード(opcode)」)を使
用することが望ましい。デッド値ビットがセットされると、結果値は、パイプラ
イン12のステージnで、レジスタファイル16にライトバックされない。特に
、デッド値ビットは、対応するインストラクションのインストラクションIDと
同様に、レジスタファイルコントロール18に供給される。続いて、レジスタフ
ァイルコントロール18は、書き込み可能な信号によってレジスタファイル16
を制御して、結果値をライトバックしたりしなかったりする。一方、専用のビッ
トを利用できない場合には、共通に使用される2〜3のインストラクションを選
択することができる(例えば、ADDおよびLOAD)。これらのインストラク
ションには、使用度合いを示す別のオプコードが割り当てられる。
【0029】
図2に示される他の具体的な実施例において、各インストラクションにおける
暗示的なエンコードは、特定のインストラクションの結果値が1つの消費者だけ
(あるいは、パイプラインの他の消費者だけ)に使用されたか否かを示すために
使用される。すなわち、パイプライン12は、パイプラインの他のインストラク
ションがパイプラインの次のインストラクションと同じ宛先アドレス(例えば、
レジスタファイル16の書き込みポート20)を使用するか否かを決定する。こ
れは、多くの方法によって決定することができる。例えば、ステージ3(123 )におけるインストラクションの結果値がレジスタファイル16の書き込みポー
ト20の宛先アドレスに指定され、ステージ1(121)におけるインストラク
ションの結果値がレジスタファイル16の同じ宛先アドレスに指定される場合、
ステージ3におけるインストラクションの結果値は、ステージ2において「生き
ている」状態にあるが、ステージ1においては「死んでいる」状態にある。これ
は、その宛先アドレスがパイプラインの他のインストラクションによって再利用
されるためである。すなわち、1つの消費者だけが結果値を使用する。また、こ
の方法は、2つ以上の消費者(パイプライン内の消費者)が結果値を使用する場
合にも利用される。例えば、ステージn(12n)におけるインストラクション
の結果値がレジスタファイル16の書き込みポート20の宛先アドレスに指定さ
れ、ステージ1(121)におけるインストラクション(上流側)の結果値がレ
ジスタファイル16の同じ宛先アドレスに指定される場合、ステージnにおける
インストラクションの結果値は、ステージ2において「生きている」状態にある
が、ステージ1においては「死んでいる」状態にある。このように、結果値は、
「生きている」状態の間に、多数の消費者によって使用することができる。した
がって、結果値が「死んでいる」状態になると直ぐに、レジスタファイル16へ
のライトバックがなされなくなる。
暗示的なエンコードは、特定のインストラクションの結果値が1つの消費者だけ
(あるいは、パイプラインの他の消費者だけ)に使用されたか否かを示すために
使用される。すなわち、パイプライン12は、パイプラインの他のインストラク
ションがパイプラインの次のインストラクションと同じ宛先アドレス(例えば、
レジスタファイル16の書き込みポート20)を使用するか否かを決定する。こ
れは、多くの方法によって決定することができる。例えば、ステージ3(123 )におけるインストラクションの結果値がレジスタファイル16の書き込みポー
ト20の宛先アドレスに指定され、ステージ1(121)におけるインストラク
ションの結果値がレジスタファイル16の同じ宛先アドレスに指定される場合、
ステージ3におけるインストラクションの結果値は、ステージ2において「生き
ている」状態にあるが、ステージ1においては「死んでいる」状態にある。これ
は、その宛先アドレスがパイプラインの他のインストラクションによって再利用
されるためである。すなわち、1つの消費者だけが結果値を使用する。また、こ
の方法は、2つ以上の消費者(パイプライン内の消費者)が結果値を使用する場
合にも利用される。例えば、ステージn(12n)におけるインストラクション
の結果値がレジスタファイル16の書き込みポート20の宛先アドレスに指定さ
れ、ステージ1(121)におけるインストラクション(上流側)の結果値がレ
ジスタファイル16の同じ宛先アドレスに指定される場合、ステージnにおける
インストラクションの結果値は、ステージ2において「生きている」状態にある
が、ステージ1においては「死んでいる」状態にある。このように、結果値は、
「生きている」状態の間に、多数の消費者によって使用することができる。した
がって、結果値が「死んでいる」状態になると直ぐに、レジスタファイル16へ
のライトバックがなされなくなる。
【0030】
図2の具体的な実施例において、従来のゲート・論理回路22、例えばORゲ
ートは、図2に示されるように、レジスタファイルコントロール18にデッド値
ビットを供給するために使用される。対応するインストラクションのインストラ
クションIDもレジスタファイルコントロール18に供給される。しかしながら
、この技術分野において良く知られるように、レジスタの改名をサポートするマ
イクロアーキテクチャにおいては、レジスタの再使用を検知するメカニズムをプ
ロセッサが既に有しているため、ゲート・論理回路は不要である。
ートは、図2に示されるように、レジスタファイルコントロール18にデッド値
ビットを供給するために使用される。対応するインストラクションのインストラ
クションIDもレジスタファイルコントロール18に供給される。しかしながら
、この技術分野において良く知られるように、レジスタの改名をサポートするマ
イクロアーキテクチャにおいては、レジスタの再使用を検知するメカニズムをプ
ロセッサが既に有しているため、ゲート・論理回路は不要である。
【0031】
図3は、レジスタ書き込みトラヒックを減少させるために図1および図2の構
成内で実行されるステップを示すフローチャートである。簡単のため、図1の実
施例を使用して、本発明の原理の演算について説明する。しかしながら、図3に
示されたステップを同様にして図2の実施例に適用できることは言うまでもない
。
成内で実行されるステップを示すフローチャートである。簡単のため、図1の実
施例を使用して、本発明の原理の演算について説明する。しかしながら、図3に
示されたステップを同様にして図2の実施例に適用できることは言うまでもない
。
【0032】
図1および図3を同時に参照すると、本発明に係るプロセスは、インストラク
ションがパイプライン12に入った時点で、図3のステップ300から開始され
る。ステップ302において、レジスタファイルコントロール18は、前述した
ように、デッド値ビットがセットされたか否かを決定する。デッド値がセットさ
れない場合には、ステップ304で示される従来のパイプライン手法でプロセス
が続けられる。デッド値がセットされた場合には、ステップ306で、レジスタ
ファイルコントロール18は、特定のインストラクションの結果値が例えばバイ
パス回路を介してパイプライン12の他のインストラクションにより既に使用さ
れたか否かを決定する。決定が否定的である場合、プロセスはステップ304に
進み、従来のパイプライン手法が継続される。決定が肯定的である場合、プロセ
スはステップ308に進む。ステップ308において、レジスタファイルコント
ロールは、パイプライン12から受けたインストラクションIDと対応する結果
値を決定して、それを破棄する。例えば、レジスタファイルコントロール18に
よって、ライトバックステージは、レジスタファイル16の書き込みポート(す
なわち、宛先アドレス)に結果値を記憶することができない。
ションがパイプライン12に入った時点で、図3のステップ300から開始され
る。ステップ302において、レジスタファイルコントロール18は、前述した
ように、デッド値ビットがセットされたか否かを決定する。デッド値がセットさ
れない場合には、ステップ304で示される従来のパイプライン手法でプロセス
が続けられる。デッド値がセットされた場合には、ステップ306で、レジスタ
ファイルコントロール18は、特定のインストラクションの結果値が例えばバイ
パス回路を介してパイプライン12の他のインストラクションにより既に使用さ
れたか否かを決定する。決定が否定的である場合、プロセスはステップ304に
進み、従来のパイプライン手法が継続される。決定が肯定的である場合、プロセ
スはステップ308に進む。ステップ308において、レジスタファイルコント
ロールは、パイプライン12から受けたインストラクションIDと対応する結果
値を決定して、それを破棄する。例えば、レジスタファイルコントロール18に
よって、ライトバックステージは、レジスタファイル16の書き込みポート(す
なわち、宛先アドレス)に結果値を記憶することができない。
【0033】
以上は単に本発明の原理を明らかにしている。したがって、言うまでも無く、
当業者であれば、ここには明白に記載されて示されてはいないが、本発明の原理
を具体化し且つ本発明の技術的思想および範囲内に含まれる様々な構成を考え出
すことができる。また、ここで述べた全てのこと、すなわち、本発明の原理、形
態、実施例や、本発明の特定の実施例は、これと構造的および機能的に等価なも
のを含んでいることは言うまでもない。また、そのような等価なものが、現在知
られている等価物および将来開発される等価物、すなわち、構造とは無関係に同
じ機能を達成するように開発された任意の要素を含んでいることは言うまでもな
い。
当業者であれば、ここには明白に記載されて示されてはいないが、本発明の原理
を具体化し且つ本発明の技術的思想および範囲内に含まれる様々な構成を考え出
すことができる。また、ここで述べた全てのこと、すなわち、本発明の原理、形
態、実施例や、本発明の特定の実施例は、これと構造的および機能的に等価なも
のを含んでいることは言うまでもない。また、そのような等価なものが、現在知
られている等価物および将来開発される等価物、すなわち、構造とは無関係に同
じ機能を達成するように開発された任意の要素を含んでいることは言うまでもな
い。
【0034】
言うまでもなく、本発明の請求の範囲において、特定の機能を果たす手段とし
て示された任意の要素は、その機能を果たす任意の方法を含んでいる。この任意
の方法の中には、例えば、a)その機能を果たす回路素子の組み合わせ、b)フ
ァームウェアやマイクロコード等を含む任意の形態のソフトウエアであって、そ
の機能を果たすためにこのソフトウエアを実行する適当な回路と組み合わせられ
るソフトウエア、も含まれる。このような請求の範囲によって規定される発明は
、記載される様々な手段によって与えられる機能性が請求の範囲で要求されるよ
うに組み合されて統合されるという事実に内在している。したがって、出願人は
、それらの機能性を与えることができる任意の手段を、ここに示された手段と等
価なものであると考えている。
て示された任意の要素は、その機能を果たす任意の方法を含んでいる。この任意
の方法の中には、例えば、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の結果がインストラクションパイプラインにおける第2のインストラクシ
ョンによって使用されたか否かを示すための手段と、 インストラクションパイプラインとレジスタファイルとに接続され、第1の結
果がバイパス回路を使用してアクセスされてインストラクションパイプラインの
第2のインストラクションによって使用される場合に、第1の結果が書き込みポ
ートに記憶されることを防止するレジスタファイルコントロールと、 を備えていることを特徴とするインストラクション実行デバイス。 - 【請求項2】 インストラクションパイプラインが複数のステージを有していることを特徴と
する請求項1に記載のインストラクション実行デバイス。 - 【請求項3】 インストラクションパイプラインは、複数のステージで複数のインストラクシ
ョンを処理することを特徴とする請求項2に記載のインストラクション実行デバ
イス。 - 【請求項4】 第1の結果が第2のインストラクションだけによって使用されるか否かを示す
ための手段は、第1のインストラクションをエンコードして、第1の結果が第2
のインストラクションだけによって使用されるか否かを示すことを特徴とする請
求項1に記載のインストラクション実行デバイス。 - 【請求項5】 第1のインストラクションのエンコードは、第1の結果が第2のインストラク
ションだけによって使用されるか否かを示すために、第1のインストラクション
のオプコードに1つの領域を指定することを特徴とする請求項4に記載のインス
トラクション実行デバイス。 - 【請求項6】 各インストラクションがエンコードされて、その各結果が他の1つのインスト
ラクションによって使用されるか否かを示すことを特徴とする請求項5に記載の
インストラクション実行デバイス。 - 【請求項7】 第1の結果が第2のインストラクションだけによって使用されるか否かを示す
ための手段がインストラクションパイプラインを有し、このインストラクション
パイプラインは、インストラクションパイプラインにおける第1のインストラク
ションの第1の結果およびインストラクションパイプラインにおける第2のイン
ストラクションの第2の結果がレジスタファイルの第1の書き込みポートへの記
憶のために指定されるか否か決定することを特徴とする請求項3に記載のインス
トラクション実行デバイス。 - 【請求項8】 第1の結果が第2のインストラクションだけによって使用されるか否かを示す
ための手段は、ゲート・論理回路を更に有していることを特徴とする請求項7に
記載のインストラクション実行デバイス。 - 【請求項9】 プロセッサでインストラクションを実行するための方法において、 インストラクションパイプラインを使用して第1のインストラクションから第
1の結果を形成するステップと、 バイパス回路を使用して第1の結果に対するアクセスを許容するステップと、 第1の結果がインストラクションパイプラインの第2のインストラクションに
よって使用されるか否かを決定するステップと、 第1の結果がアクセスされて第2のインストラクションだけによって使用され
る場合に、第1の結果がレジスタファイルに記憶されることを防止するステップ
と、 を備えていることを特徴とする方法。 - 【請求項10】 第1の結果がインストラクションパイプラインの第2のインストラクションに
よって使用されるか否かを決定する前記ステップは、第1のインストラクション
をエンコードして、第1の結果が第2のインストラクションだけによって使用さ
れるか否かを示すことを特徴とする請求項9に記載の方法。 - 【請求項11】 第1の結果がインストラクションパイプラインの第2のインストラクションに
よって使用されるか否かを決定する前記ステップがインストラクションパイプラ
インを有し、このインストラクションパイプラインは、インストラクションパイ
プラインにおける第1のインストラクションの第1の結果およびインストラクシ
ョンパイプラインにおける第2のインストラクションの第2の結果がレジスタフ
ァイル内に同じ記憶アドレスを有しているか否か決定することを特徴とする請求
項9に記載の方法。 - 【請求項12】 インストラクションを処理するコードを有するコンピュータで読み込み可能な
記憶媒体において、前記コードは、 第1のインストラクションから第1の結果を形成するインストラクションパイ
プラインコードと、 第1の結果がインストラクションパイプラインにある間に、第1の結果に対す
るアクセスを許容するアクセス許容コードと、 第1の結果がインストラクションパイプラインの第2のインストラクションに
よって使用されるか否かを示すための表示コードと、 第1の結果がアクセスされて第2のインストラクションだけによって使用され
る場合に、第1の結果が記憶されることを防止する防止コードと、 を備えていることを特徴とする記憶媒体。 - 【請求項13】 前記表示コードは、第1のインストラクションをエンコードして、第1の結果
が第2のインストラクションだけによって使用されるか否かを示すことを特徴と
する請求項12に記載の記憶媒体。 - 【請求項14】 前記表示コードがインストラクションパイプラインを有し、このインストラク
ションパイプラインは、インストラクションパイプラインにおける第1のインス
トラクションの第1の結果およびインストラクションパイプラインにおける第2
のインストラクションの第2の結果がレジスタファイル内に同じ記憶アドレスを
有しているか否か決定することを特徴とする請求項12に記載の記憶媒体。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018517212A (ja) * | 2015-06-08 | 2018-06-28 | クアルコム,インコーポレイテッド | 一時的なロード命令のためのシステム、装置および方法 |
Families Citing this family (29)
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)
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 |
-
2000
- 2000-02-16 US US09/505,985 patent/US6862677B1/en not_active Expired - Lifetime
-
2001
- 2001-01-18 CN CNB018002161A patent/CN1177275C/zh not_active Expired - Fee Related
- 2001-01-18 WO PCT/EP2001/000513 patent/WO2001061478A2/en active Application Filing
- 2001-01-18 JP JP2001560800A patent/JP2003523573A/ja not_active Withdrawn
- 2001-01-18 KR KR1020017013120A patent/KR100900364B1/ko active IP Right Grant
- 2001-01-18 EP EP01911496A patent/EP1190311A2/en not_active Withdrawn
- 2001-04-06 TW TW90108311A patent/TW514782B/zh not_active IP Right Cessation
Cited By (2)
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 |