JPH1097424A - スーパースカラープロセッサの中央処理ユニット - Google Patents
スーパースカラープロセッサの中央処理ユニットInfo
- Publication number
- JPH1097424A JPH1097424A JP9151738A JP15173897A JPH1097424A JP H1097424 A JPH1097424 A JP H1097424A JP 9151738 A JP9151738 A JP 9151738A JP 15173897 A JP15173897 A JP 15173897A JP H1097424 A JPH1097424 A JP H1097424A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- instructions
- instruction
- central processing
- processing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 7
- 239000013598 vector Substances 0.000 claims 3
- 230000006870 function Effects 0.000 abstract 1
- 239000000872 buffer Substances 0.000 description 10
- 238000013459 approach Methods 0.000 description 8
- 239000012536 storage buffer Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000013468 resource allocation 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
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
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)
- Complex Calculations (AREA)
Abstract
のプロセッササイクル内で行うようにし、さらに並列処
理化を進めることを目的とする。 【解決手段】 スーパースカラープロセッサの中央処
理ユニットであって、各々が命令を実行するように適合
された複数の関数ユニット(101〜108)と、複数
のパイプラインステージを含み、かつ各プロセッササイ
クルで複数の命令を受け取るグループ化論理回路(10
9)であって、前記グループ化論理回路が、前記機能的
ユニットの1つよって実行されるべき前記命令の各々を
ディスパッチする、前記グループ化論理回路(109)
とを有する。
Description
キテクチャに関し、より詳しくはスーパースカラープロ
セッサの中央処理ユニットに関する。
に於いて非常に発展してきた。このような構成のうち
で、2つの異なるアーキテクチャが知られており、各
々、VLIWアーキテクチャと、スーパースカラーアー
キテクチャとして知られている。スーパースカラープロ
セッサは、同時に1つもしくはそれ以上の命令をディス
パッチすることのできるコンピュータである。そのよう
なプロセッサは、通常、ディスパッチされた命令を別個
に実行することのできる複数の機能的なユニットを含ん
でいる。そのようなプロセッサでは、制御論理回路が、
「グループ化ロジック」回路として知られており、この
制御論理回路が、特定のリソースの配置及びデータの従
属性(dependency)の制約に基づいて、命令
(命令グループ)がディスパッチされるか否かを決定す
る。コンピュータの設計者の仕事は、利用できるリソー
スを最適に用いる命令グループをディスパッチするよう
に、そのような制約をダイナミックに評価することので
きるグループ化ロジック回路を提供することである。す
なわち、1つのフローティングポイント乗算ユニットを
有するコンピュータでは、リソースの配置の制約は、1
つのフローティングポイント乗算命令しか、任意の与え
られたプロセッササイクルの間に、ディスパッチされな
いということである。このプロセッササイクルは、プロ
セッサのパイプラインされたユニットに対する基本的な
タイミングの単位であり、通常は、CPUクロックのク
ロック周期である。データの従属性の制約のある例は、
「書き込み後の読み出し(read−after−wr
ite)」ハザードを回避するということである。この
制約によって、以前にディスパッチされしかもまだリタ
イヤしていない書き込み命令の宛先であるレジスタから
のオペランドを必要とする命令を、ディスパッチするこ
とが防止される。
VLIWプロセッサでは、実行時間中にシステムのリソ
ースをダイナミックに配置することはない。そのかわ
り、リソースの配置とデータの従属性の解析は、プログ
ラムのコンパイルの間に実行される。VLIWプロセッ
サは、長い命令ワードをデコードして、様々な独立した
関数ユニットを動作させるための制御情報を出力する。
コンパイラの仕事は、デコードされたときにコンピュー
タの並列化されたハードウェア内に於けるプログラム固
有の並列化を効率よく活用することのできる命令のシー
ケンスを発生させることによって、プログラムの性能を
最適化することである。ハードウェアには、命令のシー
ケンス及びディスパッチに対する制御は与えられていな
い。
命令実行中に各マシーンに対してそのプログラムを再コ
ンパイル(recompile)しなければならないと
いう重大な欠点を有する。そのような再コンパイルは、
各マシーンによって必要とされる制御情報が命令ワード
内にデコードされているために、必要とされる。一方、
スーパースカラーコンピュータは、既存の実行可能プロ
グラム(すなわち「バイナリ」)を実行できるように設
定されている。スーパスカラコンピュータでは、既存の
実行可能なプログラムの命令は、実行時間中に、コンピ
ュータの特定のリソースの利用可能性と、データの完全
性の要求とに基づいて、コンピュータによってディスパ
ッチされる。コンピュータの利用者の立場から見れば、
既存のバイナリには大きな資本が投下されているので、
新たなバイナリをコピーするための費用を必要とせず
に、性能を高めることができるということが、重要な利
点である。
クルの命令グループ内に含まれるべき命令を決定するた
めに、スーパースカラーコンピュータが、直前のプロセ
ッササイクルでリソースの配置及びデータの従属性のチ
ェック作業を実行する。このような方法に於いては、コ
ンピューターの設計者は、そのようなリソースの配置及
びデータの従属性のチェック作業が、そのプロセッササ
イクル内で確実に完了するようにしなければならない。
別個に実行される関数ユニットの個数が増加するにつれ
て、そのようなリソースの配置及びデータの従属性のチ
ェック作業は、比例関係以上に急速に増加する。したが
って、スーパースカラーコンピュータの構成では、リソ
ース及びデータの完全性の解析を1つのプロセッササイ
クル内で行うことができるか否かが、さらに並列処理化
を進めることができるか否かを限定する1つの要因とな
っている。
ース及びデータの完全性の解析を1つのプロセッササイ
クル内で行うようにすることで、さらに並列処理化を進
めることである。
ッササイクルの間に同時にディスパッチできる命令を決
定するためのグループ化論理回路を含む。本発明の中央
処理ユニットは、そのようなグループ化論理回路と、各
々がそのグループ化論理回路によってディスパッチされ
た1つもしくは複数の指定された命令を実行できるよう
に適合された複数の関数ユニットを含む。このグループ
化論理回路は、複数のパイプラインステージを含み、リ
ソースの配置及びデータの従属性のチェックが、複数の
プロセッササイクルにわたって実行される。したがっ
て、本発明は、複数の命令を同時にディスパッチするこ
とを可能とし、一方グループ化論理回路の複雑さによる
中央処理ユニットのプロセッササイクルの期間の限定
を、回避する。
命令グループを受け取った直後にイントラグループ(i
ntra−group)のデータの従属性をチェックす
る。この実施例では、最初の(第1の)プロセッササイ
クルの間に受け取られた命令のグループ内の全ての命令
が、最初のプロセッササイクルに続くプロセッササイク
ルで受け取られた第2のグループの命令のいずれの命令
のよりも先にディスパッチされる。
れる以下の詳細な説明によってよりよく理解される。
ロック図に例示されており、この図には、本発明の1つ
の例としての4ウェイ・スーパースカラープロセッサの
中央処理ユニット(CPU)100が表されている。こ
の4ウェイ・スーパースカラープロセッサは、プロセッ
ササイクルごとに、4つまでの命令を、フェチ(fet
ch)し、ディスパッチ(dispatch)し、実行
(execute)し、かつリタイア(retire)
する。図1に表されているように、中央処理ユニット1
00は、2つの算術論理演算ユニット101及び102
と、ロード/記憶ユニット103(9層ロードバッファ
104と8層記憶バッファ105とを含む)と、フロー
ティングポイント加算器106と、浮動小数点乗算器1
07と、浮動小数点除算器108とを含む。この実施例
は、グループ化論理回路109は、1プロセッササイク
ルごとに4つまでの命令をディスパッチする。完了ユニ
ット110は、命令が完了するとその命令をリタイアす
る。レジスタファイル(図示されていない)は、複数の
整数レジスタ及び浮動小数点レジスタを含み、オペラン
ドのフェッチもしくは結果のライトバックの間にこのレ
ジスタファイルをアクセスする関数ユニットが競合する
ことを防止するための十分な数のポートが設けられてい
る。更に、この実施例では、ローディングは非ブロック
形式で行われ、すなわち、CPU100は、1つもしく
は複数のディスパッチされたロード命令が完了していな
い場合でも実行を続ける。ロード命令のデータが主メモ
リから戻されたとき、これらのデータは第2レベルのキ
ャッシュメモリ内に記憶されるようにパイプライン形式
に配置されることができる。この実施例では、浮動小数
点加算器106と浮動小数点乗算器107は、各々、4
ステージパイプラインを有する。同様に、ロード/記憶
ユニット103は、2ステージパイプラインを有する。
パイプライン形式ではないが、浮動小数点除算器108
は、1命令あたり複数のプロセッササイクルを必要とす
る。
化論理109に関連するCPU100の状態は、以下に
説明される状態変数S(P)によって表される。もちろ
ん、CPU100の状態は他の変数をも含み、これら他
の変数には、そのプロセッサの状態ワードに含まれるも
のがある。当業者には、プロセッサの状態の使用及び実
施が容易に理解される。すなわち、時刻tでのCPU1
00の状態S(t)は、次の式によって表される。 S(t)={ALU1(t),ALU2(t),LS(t),LB(t),SB (t),FA(t),FM(t),FSD(t)}(式1)
は、各々、時刻tでの算術論理演算ユニット101と1
02の状態であり、LS(t)とLB(t)は、各々、
時刻tでの記憶バッファ105とロードバッファ104
の状態であり、FA(t)、FM(t)、及びFDS
(t)は、各々、時刻tでの浮動小数点加算器106、
浮動小数点乗算器107、及び浮動小数点除算器108
の状態である。
ソースレジスタと、その関数ユニットにディスパッチさ
れかつまだリタイアされていない命令によって指定され
た宛先レジスタとによって表される。すなわち、 ALU1={ALU1.rs1(t),ALU1.rs2(t),ALU1.r d(t)}(式2)
びrd(t)は、各々、第1ソースレジスタと、第2ソ
ースレジスタと、時刻tで算術論理演算ユニット101
内で実行されている命令の宛先レジスタとを表してい
る。
態は、以下のように定義される。 ALU2={ALU2.rs1(t),ALU2.rs2(t),ALU2.r d(t)}(式3)
インされた関数ユニットに対しては、その状態は、ソー
スレジスタ、及び各々がパイプラインされた命令の宛先
レジスタからなり、比較的複雑である。すなわち、パイ
プラインされたユニット、すなわち、ロード/記憶ユニ
ット103、ロードバッファ104,記憶バッファ10
5、浮動小数点加算器106、及び浮動小数点乗算器1
07に対して、それらの各々の時刻tでの状態、LS
(t)、LB(t)、SB(t)、FA(t)、及びF
M(t)は、各々次のように表される。 LS={LS.rs1i(t),LS.rs2i(t),LS.rdi(t)} (ここで、i={1,2})(式4) LB={LB.rs1i(t),LB.rs2i(t),LB.rdi(t)} (ここで、i={1,2,...,9})(式5) SB={SB.rs1i(t),SB.rs2i(t),SB.rdi(t)} (ここで、i={1,2,...,8})(式6) FA={FA.rs1i(t),FA.rs2i(t),FA.rdi(t)} (ここで、i={1,...,4})(式7) FM={FM.rs1i(t),FM.rs2i(t),FM.rdi(t)} (ここで、i={1,...,4})(式8)
SD(t)は、以下の式によって表される。 FDS={FDS.rs1i(t),FDS.rs2i(t),FDS.rdi (t)}(式9)
しくは分散化された配置のいずれかで、1つのレジスタ
もしくは内容参照可能メモリなどの記憶素子によって表
すことができる。例えば、分散化された配置では、ある
与えられた関数ユニットに関する状態S(t)の一部
が、その関数ユニットの制御論理によって実施される。
刻tでの現在の状態S(t)から、時刻(t+1)での
次のプロセッササイクルの命令をディスパッチするため
に必要な情報を含む次の状態S(t+1)を求める。例
えば、書き込み後の読み出しハザードを回避するため
に、グループ化論理回路は、次の状態S(t+1)か
ら、完了したばかりの命令の結果を記憶するために指定
されたレジスタからフェッチされるオペランドを含む命
令を除外する。他の例では、グループ化論理回路は、状
態S(t+1)の中に、ただ1つの浮動小数点「AD
D」命令を各プロセッササイクルごとに含み、その理由
はただ1つの浮動小数点加算器(すなわち、浮動小数点
加算機106)のみが利用できるからである。上述され
たように、複雑さが増すにしたがって、グループ化論理
回路を通して伝達されるために必要な時間が、プロセッ
ササイクルに対する臨界的なパスとなりえる。すなわ
ち、本発明に基づけば、グループ化論理回路109は、
τプロセッササイクルにわたって、現在の状態S(t)
に基づく将来の状態S(t+τ)を伝達するためにパイ
プラインされている。この将来の状態S(t+τ)は、
時刻(t+τ)でのディスパッチを行うための命令グル
ープを決定する。パイプライングループ化ロジック10
9は、以下に例示されるように、(1)状態S(t+
τ)が十分な確度で状態S(t)の対応する値から求め
られること、及び、(2)その値が正確には予測されな
い状態変数に対して、状態S(t+τ)の全ての可能な
結果を提供すること、及び性能に関するわずかな不利を
伴って伝統的なアプローチを(すなわち、そのような命
令がディスパッチされていた可能性のある場合に、その
命令をディスパッチしないこと)を用いることが、比較
的容易であるということ、により実現可能である。
説明される。以下の説明は、次の状態S(t+1)のほ
とんどの要素が、現在の状態S(t)から正確に求めら
れ、状態S(t)の残りの要素が、特定の非決定論的な
条件が適切に処理される場合に、適切に求められるとい
うことを説明する。帰納法を用いることによって、将来
の状態S(t+τ)が(ここでτは1より大きい数)が
同様に状態S(t)から求められるということが表され
る。
点乗算器107内の1つの命令が4つのプロセッササイ
クルの後に完了し、ロード/記憶ユニット103内の1
つの命令が2つのプロセッササイクルの後に完了するの
で、時刻(t+1)での状態FA、FM、及びLSは、
プロセッササイクルの直前の時刻tに於ける対応する状
態S(t)から求めることができる。特に、時刻(t+
1)と時刻tとの間の、浮動小数点加算器106と、浮
動小数点乗算器107と、ロード/記憶ユニット103
との、各々のソースレジスタおよび宛先レジスタとの間
の関係は、以下の式で表される。 rs1i(t+1)=rs1(i−1)(t)(ここで、1<i≦k)(式10 ) rs2i(t+1)=rs2(i−1)(t)(ここで、1<i≦k)(式11 ) rdi(t+1)=rd(i−1)(t)(ここで、1<i≦k(式12)
さを表している。
1プロセッササイクルを越える、浮動小数点除算器10
8の状態FSD(t+1)は、以下の式に表されるよう
に状態FSD(t)から求められる。 FSD(t+1)=FSD(t)(最後のステージ),又は=0(それ以外の場 合)(式13)
にあるか否かは、浮動小数点除算器108の命令の実行
が開始されたために経過した複数のプロセッササイクル
の経緯(track)を保持するハードウェアカウンタ
もしくは状態レジスタから求められる。
5では、各々の待ち時間のヘッドに於ける継続中の読み
出しもしくは書き込み動作が1つのプロセッササイクル
内で完了する必要はないので、時刻(t+1)での状態
LB(t+1)は、時刻tでのすぐ前の状態LB(t)
からは正確には求められない。しかしながら、状態LB
(t+1)は同じ状態にあるか、もしくは1ステージだ
けのパイプラインの動きを反映するので、状態LB(t
+1)を求める2つの方法が用いられる。第1の方法
は、伝統的なアプローチであり、LB(t)と同様にL
B(t+1)を予測するものである。このアプローチで
は、ロードバッファ104が満たされた状態のとき、ロ
ードバッファ106のパイプラインが進行するまで、命
令はディスパッチされない。予測が正しくない場合、す
なわちロード命令が時刻tのプロセッササイクルの間に
完了した場合、この伝統的なアプローチは、1プロセッ
ササイクルの不利を導く。その理由はロード命令が時刻
(t+1)でディスパッチされるからである。代わり
に、2つの結果、すなわちロードバッファ104は1ス
テージ進み、ロードバッファ104が同じ状態に留まる
ことに対して、より攻撃的なアプローチが用いられる。
この攻撃的なアプローチでは、グループ化ロジック10
9は、時刻(t+1)でロード命令が実際に完了したこ
とを表す制御信号によってイネーブルたとき、ロード命
令をディスパッチするよう準備が整っている。この攻撃
的な方法は、伝統的なアプローチよりも複雑な論理回路
を必要とする。
態S(t+1)が状態S(t)から予測されることがわ
かる。したがって、予測された状態S(t+1)に基づ
いて時刻(t+1)でディスパッチされる命令の個数と
命令の形式の両方(すなわち、時刻t+1での命令グル
ープ)が、時刻(t+1)での実際の状態SA(t+
1)に基づいて更に処理が行われた場合を前提として、
時刻tで状態S(t)から求められる。
態S(t+τ)を、時刻tでの状態S(t)から求める
場合にも敷衍することができる。時刻(t+τ)での命
令グループは、時刻tと時刻(t+τ)との間の各命令
グループに対して、その命令グループからの全ての命令
が、次の命令グループからの任意の命令がディスパッチ
される前に、ディスパッチされる場合に(すなわち命令
グループがマージされない場合に)、時刻tから求めら
れる。
れないので、イントラグループの従属性とインターグル
ープの従属性とは並列にチェックできる。命令は、命令
キャッシュメモリもしくは命令バッファからフェッチさ
れる。命令バッファは、好ましくは、命令キャッシュメ
モリに対する全てのアクセスが(例えば、分岐命令が)
整列しておらず、かつプログラムの基本的ブロック内の
複数のエントリーポイントが可能であるシステム内にあ
ることが好ましい。
令が特定されると、イントラグループのデータの従属性
のチェックが開始される。上述された命令グループのマ
ージに対する、すなわち、命令グループの命令の全てに
対する、次の命令グループがディスパッチされる前にデ
ィスパッチされなければならない、という制約のため
に、イントラグループの従属性のチェックはパイプライ
ン形式で行われる。すなわち、イントラグループの従属
性のチェックは、1プロセスサイクル以上にわたって行
われ、全てのインターグループの従属性のチェックは、
イントラグループの従属性のチェックとは別個に行われ
る。イントラグループの従属性のチェックのために、各
命令グループは以下の式で表される。 IntraS(t)={rs1i(t),rs2i(t),rdi(t),re si(t)}(ここで、0≦i<W−1)(式14)
は、命令Iのリソースの利用を表している。4ステージ
パイプライン200の例が図2に表されている。図2で
は、命令グループが指定されるとすぐに、第1のステー
ジ201で、イントラグループの従属性のチェックが実
行される。その後、ステージ202では、命令グループ
内でのリソースの配置が決定される。ステージ203で
は、前の命令グループのリソースの配置を考慮に入れた
リソースの配置の決定が、ステージ201と202での
決定とともにマージされる。例えば、現在の命令グルー
プが浮動小数点除算器108に対して指定された命令を
含む場合、浮動小数点除算器108を用いる以前の命令
が、現在の命令グループがディスパッチされる時刻まで
に完了されていた場合に、ステージ203がこの時刻ま
でに求められる。最後に、ステージ204で、非決定論
的な条件が、例えば、記憶バッファ105での条件が考
慮される。ディスパッチ可能な命令が、ステージ204
の終わりでCPU100内に与えられる。
のであり、限定を意図するものではない。本発明の技術
的視点を逸雑せずに、さまざまな変型及び変更が可能で
ある。本発明は添付の特許請求の範囲によって定義され
る。
完全性の解析が1つのプロセッササイクル内で行われ、
並列処理化を促進される。
カラープロセッサのCPU100のブロック図。
の4ステージパイプライン・グループ化論理回路109
の模式図。
Claims (9)
- 【請求項1】 スーパースカラープロセッサの中央処
理ユニットであって、 各々が命令を実行するように適合された複数の関数ユニ
ットと、 複数のパイプラインステージを含み、かつ各プロセッサ
サイクルで複数の命令を受け取るグループ化論理回路で
あって、前記グループ化論理回路が、前記機能的ユニッ
トの1つよって実行されるべき前記命令の各々をディス
パッチする、前記グループ化論理回路とを有することを
特徴とするスーパースカラープロセッサの中央処理ユニ
ット。 - 【請求項2】 前記グループ化論理回路が、前記複数
の命令が同時にディスパッチできるか否かを求めるべ
く、前記複数の命令の間のデータの従属性をチェックす
ることを特徴とする請求項1に記載のスーパースカラー
プロセッサの中央処理ユニット。 - 【請求項3】 前記グループ化論理回路が、前記複数
の命令内でのリソースの競合に対するチェックを行うこ
とを特徴とする請求項1に記載のスーパースカラープロ
セッサの中央処理ユニット。 - 【請求項4】 前記グループ化論理回路は、1つのプ
ロセッササイクルでの命令グループと、1つ前のプロセ
ッササイクルで受け取られた複数の命令との間のデータ
の従属性をチェックすることを特徴とする請求項1に記
載のスーパースカラープロセッサの中央処理ユニット。 - 【請求項5】 前記中央処理ユニットの状態が、レジ
スタで表されており、 前記状態が、前記複数の命令内の命令の宛先レジスタの
表現を含むことを特徴とする請求項1に記載のスーパー
スカラープロセッサの中央処理ユニット。 - 【請求項6】 第1のプロセッササイクルの間に受け
取られた前記複数の命令の全ての命令が、前記第1のプ
ロセッササイクルに続くプロセッササイクルで受け取ら
れた第2の複数の命令の任意の命令のディスパッチの前
に、ディスパッチされることを特徴とする請求項1に記
載のスーパースカラープロセッサの中央処理ユニット。 - 【請求項7】 前記関数ユニットが、各プロセッササ
イクルで命令を受け取りかつ次のプロセッササイクルで
前記命令を完了することのできるパイプラインされた関
数ユニットを含むことを特徴とする請求項1に記載のス
ーパースカラープロセッサの中央処理ユニット。 - 【請求項8】 前記関数なユニットが、前記関数ユニ
ットによって実行される1つの命令を完了するために複
数のプロセッササイクルを必要とする関数ユニットを含
むことを特徴とする請求項1に記載のスーパースカラー
プロセッサの中央処理ユニット。 - 【請求項9】 前記グループ化論理回路が、第1のプ
ロセッササイクルのすぐ前の複数のプロセッササイクル
で受け取られた複数の命令に対して求められた複数の状
態ベクトルに基づいて、前記第1のプロセッササイクル
で受け取られた複数の命令に対する状態ベクトルを求
め、 前記プロセッササイクルの個数は、前記パイプラインの
ステージの個数と等しいことを特徴とする請求項1に記
載のスーパースカラープロセッサの中央処理ユニット。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/662,582 | 1996-06-11 | ||
US08/662,582 US5958042A (en) | 1996-06-11 | 1996-06-11 | Grouping logic circuit in a pipelined superscalar processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1097424A true JPH1097424A (ja) | 1998-04-14 |
JP3851707B2 JP3851707B2 (ja) | 2006-11-29 |
Family
ID=24658307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15173897A Expired - Lifetime JP3851707B2 (ja) | 1996-06-11 | 1997-06-10 | スーパースカラープロセッサの中央処理ユニット |
Country Status (5)
Country | Link |
---|---|
US (3) | US5958042A (ja) |
EP (1) | EP0813145B1 (ja) |
JP (1) | JP3851707B2 (ja) |
KR (1) | KR100616722B1 (ja) |
DE (1) | DE69734303D1 (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE38599E1 (en) * | 1996-06-11 | 2004-09-21 | Sun Microsystems, Inc. | Pipelined instruction dispatch unit in a superscalar processor |
US5958042A (en) | 1996-06-11 | 1999-09-28 | Sun Microsystems, Inc. | Grouping logic circuit in a pipelined superscalar processor |
EP1050809A1 (en) * | 1999-05-03 | 2000-11-08 | STMicroelectronics SA | Computer instruction dependency |
US6618802B1 (en) * | 1999-09-07 | 2003-09-09 | Hewlett-Packard Company, L.P. | Superscalar processing system and method for selectively stalling instructions within an issue group |
US6651164B1 (en) * | 1999-10-14 | 2003-11-18 | Hewlett-Packard Development Company, L.P. | System and method for detecting an erroneous data hazard between instructions of an instruction group and resulting from a compiler grouping error |
US6895497B2 (en) * | 2002-03-06 | 2005-05-17 | Hewlett-Packard Development Company, L.P. | Multidispatch CPU integrated circuit having virtualized and modular resources and adjustable dispatch priority |
US7020765B2 (en) * | 2002-09-27 | 2006-03-28 | Lsi Logic Corporation | Marking queue for simultaneous execution of instructions in code block specified by conditional execution instruction |
US20040128485A1 (en) * | 2002-12-27 | 2004-07-01 | Nelson Scott R. | Method for fusing instructions in a vector processor |
US7191320B2 (en) * | 2003-02-11 | 2007-03-13 | Via Technologies, Inc. | Apparatus and method for performing a detached load operation in a pipeline microprocessor |
US7237094B2 (en) * | 2004-10-14 | 2007-06-26 | International Business Machines Corporation | Instruction group formation and mechanism for SMT dispatch |
US8327115B2 (en) | 2006-04-12 | 2012-12-04 | Soft Machines, Inc. | Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode |
WO2008090665A1 (ja) * | 2007-01-25 | 2008-07-31 | Nec Corporation | プログラム並列化方法及び装置 |
KR101335001B1 (ko) * | 2007-11-07 | 2013-12-02 | 삼성전자주식회사 | 프로세서 및 인스트럭션 스케줄링 방법 |
JP5436033B2 (ja) * | 2009-05-08 | 2014-03-05 | パナソニック株式会社 | プロセッサ |
KR101966712B1 (ko) | 2011-03-25 | 2019-04-09 | 인텔 코포레이션 | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트 |
EP2862068B1 (en) | 2012-06-15 | 2022-07-06 | Intel Corporation | Reordered speculative instruction sequences with a disambiguation-free out of order load store queue |
KR20170102576A (ko) | 2012-06-15 | 2017-09-11 | 인텔 코포레이션 | 분산된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 load store 큐 |
EP2862061A4 (en) | 2012-06-15 | 2016-12-21 | Soft Machines Inc | MEMORY PRECISION FOR VIRTUAL LOAD WITH DYNAMIC SHIPPING WINDOW WITH UNIFORM STRUCTURE |
CN107220032B (zh) | 2012-06-15 | 2020-12-15 | 英特尔公司 | 无消歧乱序加载存储队列 |
KR101826399B1 (ko) * | 2012-06-15 | 2018-02-06 | 인텔 코포레이션 | Load store 재정렬 및 최적화를 구현하는 명령어 정의 |
WO2013188701A1 (en) | 2012-06-15 | 2013-12-19 | Soft Machines, Inc. | A method and system for implementing recovery from speculative forwarding miss-predictions/errors resulting from load store reordering and optimization |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
WO2014151043A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for emulating a guest centralized flag architecture by using a native distributed flag architecture |
US9710278B2 (en) | 2014-09-30 | 2017-07-18 | International Business Machines Corporation | Optimizing grouping of instructions |
US9971601B2 (en) | 2015-02-13 | 2018-05-15 | International Business Machines Corporation | Dynamic assignment across dispatch pipes of source ports to be used to obtain indication of physical registers |
US9710281B2 (en) * | 2015-07-30 | 2017-07-18 | International Business Machines Corporation | Register comparison for operand store compare (OSC) prediction |
US10089114B2 (en) | 2016-03-30 | 2018-10-02 | Qualcomm Incorporated | Multiple instruction issuance with parallel inter-group and intra-group picking |
CN114327644B (zh) * | 2022-03-16 | 2022-06-03 | 广东省新一代通信与网络创新研究院 | 一种处理器预测访存相关性的实现方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5127093A (en) * | 1989-01-17 | 1992-06-30 | Cray Research Inc. | Computer look-ahead instruction issue control |
EP0454985B1 (en) * | 1990-05-04 | 1996-12-18 | International Business Machines Corporation | Scalable compound instruction set machine architecture |
US5295249A (en) * | 1990-05-04 | 1994-03-15 | International Business Machines Corporation | Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel |
US5202975A (en) * | 1990-06-11 | 1993-04-13 | Supercomputer Systems Limited Partnership | Method for optimizing instruction scheduling for a processor having multiple functional resources |
CA2038264C (en) * | 1990-06-26 | 1995-06-27 | Richard James Eickemeyer | In-memory preprocessor for a scalable compound instruction set machine processor |
US5193167A (en) * | 1990-06-29 | 1993-03-09 | Digital Equipment Corporation | Ensuring data integrity by locked-load and conditional-store operations in a multiprocessor system |
JP2535252B2 (ja) * | 1990-10-17 | 1996-09-18 | 三菱電機株式会社 | 並列処理装置 |
GB9027853D0 (en) * | 1990-12-21 | 1991-02-13 | Inmos Ltd | Multiple instruction issue |
US5488729A (en) * | 1991-05-15 | 1996-01-30 | Ross Technology, Inc. | Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution |
GB9123271D0 (en) * | 1991-11-02 | 1991-12-18 | Int Computers Ltd | Data processing system |
EP0636256B1 (en) * | 1992-03-31 | 1997-06-04 | Seiko Epson Corporation | Superscalar risc processor instruction scheduling |
JP3544214B2 (ja) * | 1992-04-29 | 2004-07-21 | サン・マイクロシステムズ・インコーポレイテッド | プロセッサの状態を監視する方法及び監視システム |
KR100309566B1 (ko) * | 1992-04-29 | 2001-12-15 | 리패치 | 파이프라인프로세서에서다중명령어를무리짓고,그룹화된명령어를동시에발행하고,그룹화된명령어를실행시키는방법및장치 |
US5546593A (en) * | 1992-05-18 | 1996-08-13 | Matsushita Electric Industrial Co., Ltd. | Multistream instruction processor able to reduce interlocks by having a wait state for an instruction stream |
US5627984A (en) * | 1993-03-31 | 1997-05-06 | Intel Corporation | Apparatus and method for entry allocation for a buffer resource utilizing an internal two cycle pipeline |
US5878245A (en) * | 1993-10-29 | 1999-03-02 | Advanced Micro Devices, Inc. | High performance load/store functional unit and data cache |
DE69431998T2 (de) * | 1993-11-05 | 2004-08-05 | Intergraph Hardware Technologies Co., Las Vegas | Superskalare Rechnerarchitektur mit Softwarescheduling |
US5555432A (en) * | 1994-08-19 | 1996-09-10 | Intel Corporation | Circuit and method for scheduling instructions by predicting future availability of resources required for execution |
US5958042A (en) | 1996-06-11 | 1999-09-28 | Sun Microsystems, Inc. | Grouping logic circuit in a pipelined superscalar processor |
-
1996
- 1996-06-11 US US08/662,582 patent/US5958042A/en not_active Expired - Lifetime
-
1997
- 1997-06-04 EP EP97303831A patent/EP0813145B1/en not_active Expired - Lifetime
- 1997-06-04 DE DE69734303T patent/DE69734303D1/de not_active Expired - Lifetime
- 1997-06-10 JP JP15173897A patent/JP3851707B2/ja not_active Expired - Lifetime
- 1997-06-11 KR KR1019970023946A patent/KR100616722B1/ko not_active IP Right Cessation
-
1999
- 1999-08-02 US US09/583,097 patent/US7430653B1/en not_active Expired - Fee Related
-
2000
- 2000-07-25 US US09/625,268 patent/US6349381B1/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
EP0813145B1 (en) | 2005-10-05 |
EP0813145A2 (en) | 1997-12-17 |
EP0813145A3 (en) | 1999-07-28 |
US6349381B1 (en) | 2002-02-19 |
US5958042A (en) | 1999-09-28 |
KR980004028A (ko) | 1998-03-30 |
US7430653B1 (en) | 2008-09-30 |
DE69734303D1 (de) | 2005-11-10 |
JP3851707B2 (ja) | 2006-11-29 |
KR100616722B1 (ko) | 2006-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3851707B2 (ja) | スーパースカラープロセッサの中央処理ユニット | |
CN107810480B (zh) | 根据性能度量的指令块分配 | |
CN108027769B (zh) | 使用寄存器访问指令发起指令块执行 | |
US6247115B1 (en) | Non-stalling circular counterflow pipeline processor with reorder buffer | |
US5913925A (en) | Method and system for constructing a program including out-of-order threads and processor and method for executing threads out-of-order | |
US6212542B1 (en) | Method and system for executing a program within a multiscalar processor by processing linked thread descriptors | |
US5941983A (en) | Out-of-order execution using encoded dependencies between instructions in queues to determine stall values that control issurance of instructions from the queues | |
US5961639A (en) | Processor and method for dynamically inserting auxiliary instructions within an instruction stream during execution | |
US20170083320A1 (en) | Predicated read instructions | |
US10824429B2 (en) | Commit logic and precise exceptions in explicit dataflow graph execution architectures | |
WO1985000453A1 (en) | Data processing system | |
GB2321543A (en) | Constructing a program including a navigation instruction | |
JP2001306324A (ja) | マルチスレッドvliwプロセッサにおける分割可能なパケットを識別するための方法および装置 | |
WO2018026526A1 (en) | Load-store ordering in a block-based processor | |
JP3589698B2 (ja) | インタロックハードウェアの単純化方法及び装置 | |
USRE38599E1 (en) | Pipelined instruction dispatch unit in a superscalar processor | |
JP7495030B2 (ja) | プロセッサ、処理方法、および関連デバイス | |
GB2321544A (en) | Concurrently executing multiple threads containing data dependent instructions | |
JP3096429B2 (ja) | 複数の命令の非整順完了をサポートする方法およびスーパースカラ・マイクロプロセッサ | |
KR20080008683A (ko) | 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 | |
WO2016156955A1 (en) | Parallelized execution of instruction sequences based on premonitoring | |
Rau et al. | Instruction-level parallelism | |
GB2321546A (en) | Constructing a multiscalar program including thread descriptors that each refe rence a next thread descriptor to be processed | |
Gaudiot et al. | Techniques to improve performance beyond pipelining: superpipelining, superscalar, and VLIW | |
Arul et al. | Impact of Dynamic Scheduling for Dual Core Architecture Using VHDL |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040528 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060207 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060501 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060517 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060804 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060829 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060904 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100908 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100908 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110908 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120908 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130908 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |