JPH08179946A - プロセッサ - Google Patents

プロセッサ

Info

Publication number
JPH08179946A
JPH08179946A JP32185994A JP32185994A JPH08179946A JP H08179946 A JPH08179946 A JP H08179946A JP 32185994 A JP32185994 A JP 32185994A JP 32185994 A JP32185994 A JP 32185994A JP H08179946 A JPH08179946 A JP H08179946A
Authority
JP
Japan
Prior art keywords
instruction
branch
fetch
processor
instructions
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
JP32185994A
Other languages
English (en)
Inventor
Takashi Omizo
孝 大溝
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP32185994A priority Critical patent/JPH08179946A/ja
Publication of JPH08179946A publication Critical patent/JPH08179946A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】プロセッサ内の資源を有効利用して複数のコン
テキストを同時に実行できるようにして命令の並列度を
高めた高速処理を可能とする。 【構成】複数のファンクションユニットを有するプロセ
ッサ30であって、複数の命令フェッチデコードユニッ
ト31a,31bを有し、同時に複数の命令を実行す
る。命令フェッチデコードユニット31a,31bと同
数のレジスタファイル32a,32bを有し、各命令フ
ェッチデコードユニット31a,31bは、何れのレジ
スタファイル32a,32bを使用するかを指定する命
令コンテクスト情報を付加して命令を発行する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数命令を同時に実行
することが可能なプロセッサに関する。
【0002】
【従来の技術】近年では、スーパスカラプロセッサ等の
複数の命令を同時に実行することが可能なプロセッサが
存在する。この種、プロセッサでは、複数の命令を同時
に実行するためには命令同士が互いに独立でなければな
らないが、一般のプログラムコンテキスト(以下、コン
テキストと称する)には最大でも5命令程度の並列度し
かなく、通常ではより低い並列度しかないことが知られ
ている。このことは、例えば、David W.Wall. 「Limits
of Instruction-Level Parallelism 」ASPLOS-IV,199
1. に記載されている。コンテキストとは、プロセッサ
がプログラムを実行する時のダイナミックな命令のシー
ケンスである。
【0003】プログラム中の命令の並列度が少なけれ
ば、いくら複数の命令を並列に実行できる能力をプロセ
ッサが有していても、その資源(整数、浮動少数演算
器、ロードストアユニット等のファンクションユニッ
ト)を有効に活用することができない。
【0004】例えば、あるメモリ上のデータを読み込ん
で、そのデータに基づいて処理を行なう場合、そのデー
タがメモリからロードされてこない間はプロセッサは、
それより先に処理を進めることができない。
【0005】また、同じ資源(レジスタ等)を同時に複
数の命令で使用することができない。例えば、2つのA
DD命令の対象が同じレジスタである場合には、その2
つの命令は並列に実行することができない。
【0006】図6に従来のプロセッサ10の構成を示し
ている。プロセッサ10は、フェッチデコードユニット
11によって、レジスタファイル12中のプログラムカ
ウンタ13に基づいて、命令キャッシュ14を介してメ
モリ15に格納されたプログラムをフェッチ・デコード
する。
【0007】フェッチデコードユニット11には、分岐
先バッファ16(branch-target buffer:BTB)が設
けられている。分岐先バッファ16は、以前に実行され
た分岐命令の命令アドレスと、それぞれの分岐命令の結
果に対応する分岐先アドレス(次に来る命令の予測アド
レス)を格納するものである。この分岐先バッファ16
によって、次命令アドレスを予測することができる。
【0008】プロセッサ10中には、複数のファンクシ
ョンユニットが設けられている。ファンクションユニッ
トとしては、例えば整数論理演算ALU17(ここでは
2つのユニットALU17a,17bがあるものとす
る)、浮動小数点演算FPU18、ブランチユニットB
RU19、ロードストアユニットLSU20がある。ま
た、各ファンクションユニット17〜20に対応して、
リザベーションステーション21a〜21dが設けられ
ている。リザベーションステーション21a〜21d
は、それぞれに対応するユニットの命令キューであり、
フェッチデコードユニット11から発行されたが、まだ
実行できないでいる命令や、その実行制御に必要な情報
を保持する。
【0009】各ファンクションユニット17〜20は、
スコアボード22により実行が制御される。スコアボー
ド22は、命令を実行するための資源があり、かつデー
タ依存性がなければ実行開始を許可することによって、
プロセッサ10内の命令の並列実行を制御する。スコア
ボード22は、プロセッサ10内の資源(各ファンクシ
ョンユニット17〜20、レジスタファイル12中の各
レジスタ)の状態や、命令の実行状態を管理しており、
それらの状態に基づいて命令の発行を制御する。各ファ
ンクションユニット17〜20は、レジスタファイル1
2中の各種レジスタ、データを保持するデータキャッシ
ュ23を用いて処理を実行する。
【0010】ここで、前述した構成による従来のプロセ
ッサ10により、メモリ15中に格納された図3(a)
に示す内容のプログラムP1を実行する場合を例にして
説明する。
【0011】まず、最初の命令(Load)がフェッチ
デコードユニット11によりフェッチ・デコードされ実
行される。この時点で、命令キャッシュ14に対象とす
る命令が存在しないためにキャッシュミスが起こると、
プロセッサ10は、メモリ15からデータを読み出そう
とするが、これには通常数サイクルかかる。Load命
令が完了しなければ、次の命令以降は実行できないた
め、プロセッサ10はその間無駄なサイクルを費やすこ
とになる。
【0012】プログラムP1を実行した場合、各命令
が、図7に示すようにして各ファンクションユニット1
7〜20に対して発行されて実行される。すなわち、デ
ータの依存関係やレジスタ等の資源の状態に応じて、各
ファンクションユニット17〜20における命令の実行
が制御される。図7に示すように、プログラムP1に関
する命令の並列度は最大でも「3」であり、サイクル6
では実行できる命令がないため空きサイクルが生じてい
る。(なお、図7中において「P1:1」はプログラム
P1の第1ラインの命令を実行することを示してい
る。)
【0013】
【発明が解決しようとする課題】このように従来のプロ
セッサ10では、1つのコンテキストしか実行すること
ができないため命令の実行の並列度が高められず、たと
えプロセッサ10内に多くの資源を設けたとしても有効
利用されず高速処理が望めなかった。
【0014】本発明は前記のような事情を考慮してなさ
れたもので、プロセッサ内の資源を有効利用して複数の
コンテキストを同時に実行できるようにして命令の並列
度を高めた高速処理が可能なプロセッサを提供すること
を目的とする。
【0015】
【課題を解決するための手段】本発明は、複数の演算ユ
ニットを有するプロセッサにおいて、複数の命令フェッ
チデコード機能を有し、同時に複数の命令を実行するこ
とを特徴とする。また、前記複数の命令フェッチデコー
ド機能と同数のレジスタファイルを有し、各命令フェッ
チデコード機能は、何れのレジスタファイルを使用する
かを指定する情報を付加して命令を発行することを特徴
とする。
【0016】また、前記複数の命令フェッチデコード機
能のそれぞれは、分岐命令を検出する分岐命令検出手段
を有し、前記分岐命令検出手段によってデコードの対象
とする命令が分岐命令であることを検出した場合には、
他に実行可能な命令が存在すれば、分岐先が既知である
場合を除き、分岐先が決定されるまで以降の命令デコー
ドを中止することを特徴とする。
【0017】また、前記複数の命令フェッチデコード機
能のそれぞれは、分岐命令を検出する分岐命令検出手段
を有し、前記分岐命令検出手段によってデコードの対象
とする命令が分岐命令であることを検出した場合には、
他に実行可能な命令が存在すれば、分岐先が既知である
場合を除き、分岐先が決定されるまで以降の命令デコー
ドを中止し、他に実行可能な命令が存在しなければ分岐
予測により命令実行を行なうことを特徴とする。また、
前記複数の命令フェッチデコード機構は、1つの命令キ
ャッシュを共有することを特徴とする。
【0018】
【作用】このような構成によれば、複数の命令フェッチ
デコード機能を設けることによって、同時に複数のプロ
グラムを実行させて同時に実行できる命令の数を増や
し、結果として複数の演算ユニットを有効に利用して命
令の並列度を上げることができる。
【0019】また、各命令フェッチデコード機能におい
て何れのレジスタファイルを使用するかを指定するため
の情報(命令コンテクスト情報)を生成することで、各
演算ユニットが使用するレジスタファイルを特定でき、
同時に複数のプログラムを並行に実行できる。
【0020】また、命令フェッチデコード機能において
フェッチした命令が分岐命令であった場合には、他の命
令フェッチデコード機能を用いて実行可能な命令が存在
すれば分岐予測を行なわず、その先の命令デコードを中
止する。すなわち、分岐予測が失敗した場合には、その
命令以降の全てを破棄しなければならずオーバヘッドを
生じるため、敢えて分岐予測による命令実行をせず、実
行可能な命令を優先して実行させることで、プロセッサ
の資源を有効利用する。
【0021】また、他に実行可能な命令が存在しない場
合であれば、分岐予測による投機的命令実行を行なうこ
とで、分岐による命令実行の並列度の低下が抑えられ
る。分岐命令が実行された結果、予測した分岐先と等し
い場合には、そのまま処理を実行することができる。ま
た、複数の命令列が同一プロセッサにおいて同じキャッ
シュを共有するため、一貫性はプロセッサ内のみで保証
すれば良いため高速に実行できる。
【0022】
【実施例】以下、図面を参照して本発明の一実施例を説
明する。図1は本実施例に係わるプロセッサの構成を示
すブロック図である。本実施例におけるプロセッサ30
は、図1に示すように、複数のフェッチデコードユニッ
ト31a,31b、複数のレジスタファイル32a,3
2b、命令キャッシュ33、データキャッシュ34、ス
コアボード35、ファンクションユニット群36が設け
られている。
【0023】本実施例では、2つのフェッチデコードユ
ニット31a,31bが設けられている。フェッチデコ
ードユニット31a,31bは、メモリ15中に格納さ
れた命令を、命令キャッシュ33を用いて命令をフェッ
チ、デコードし、それぞれに割り当てられたコンテキス
トのプログラムカウンタ37a,37b(各フェッチデ
コードユニット31a,31bに対応するレジスタファ
イル32a,32b内)を用いて独立して命令を発行す
る。
【0024】この際、フェッチデコードユニット31
a,31bは、各命令に対して、デコード時に何れのフ
ェッチデコードユニットから発行されたものかを区別す
るための命令コンテクスト情報を付加して発行する。コ
ンテキスト情報により各命令がファンクションユニット
において実行される際、何れのレジスタファイル32
a,32bを使用するか指定することができる。
【0025】各フェッチデコードユニット31a,1b
は、それぞれ分岐先バッファ38a,38b(分岐ター
ゲットバッファ:branch-target buffer:BTB)、及
び分岐命令検出部39a,39bが設けられている。分
岐先バッファ38a,38bは、既知の分岐命令(以前
に実行された分岐命令)の命令アドレスと、それぞれの
分岐命令の結果に対応する分岐先アドレス(次に来る命
令の予測アドレス)を格納するものである。分岐命令検
出部39a,39bは、現在フェッチ中の命令が分岐命
令であるか否かを判別する。フェッチデコードユニット
31a,31bは、分岐命令検出部39a,39bによ
って現在フェッチ中の命令が分岐命令であると判別され
た場合、他方のフェッチデコードユニットによって実行
可能な命令が存在すれば、その分岐先が既知である場合
を除き、分岐先が決定されるまで命令デコードを中止す
る。また、フェッチデコードユニット31a,31b
は、分岐命令検出部39a,39bによって現在フェッ
チ中の命令が分岐命令であると判別された場合、他方の
フェッチデコードユニットによって実行可能な命令が存
在しなければ、分岐先バッファ38a,38bを用いて
分岐予測を実行する。すなわち、分岐先バッファ38
a,38bに格納された既知の分岐命令の命令アドレス
と比較し、一致する命令アドレスに対応して格納された
次に来る命令の予測アドレスに対して命令フェッチを開
始する。
【0026】本実施例では、2つのレジスタファイル3
2a,32bが設けられている。レジスタファイル32
a,32bは、各フェッチデコードユニット31a,3
1bのそれぞれに対応している。ここで、フェッチデコ
ードユニット31aは、レジスタファイル32a、フェ
ッチデコードユニット31bは、レジスタファイル32
bに対応しているものとする。各レジスタファイル32
a,32bは、命令に付加された、何れの命令フェッチ
デコードユニットから発行されたかを区別するための命
令コンテキスト情報に応じて各ファンクションユニット
から指定される。レジスタファイル32a,32bは、
プログラムカウンタ37a,37b、スタックポイン
タ、フレームポインタ、フラグレジスタ、汎用レジスタ
等が含まれている。
【0027】命令キャッシュ33は、フェッチデコード
ユニット31a,31bから要求された命令が既に外部
のメモリ15から読み込まれ内部に存在するかどうかを
判断し、存在すればその命令を要求のあったフェッチデ
コードユニットに渡し、存在しなければ外部のメモリ1
5に対してアクセスを要求する。
【0028】データキャッシュ34は、メモリ15から
読み込まれたデータを格納するもので、必要に応じて各
ファンクションユニットによりアクセスされる。スコア
ボード35は、プロセッサ30内の資源(ファンクショ
ンユニット、レジスタ等)について使用できるか否かを
記録し、命令が発行される時に、その命令が必要とする
資源が空いてるかどうかに基づいて命令の実行を制御す
るためのものである。必要とする資源が空いていれば命
令をすぐに発行させ、空いていない場合には対象とする
資源が空くまで待たせる。スコアボード35は、各ファ
ンクションユニットの実行状態の監視、レジスタファイ
ル32a,32bの状態監視及び制御、フェッチデコー
ドユニット31a,31bに対する命令発行の制御を行
なう。
【0029】ファンクションユニット群36には、図2
に示すように、複数のファンクションユニットとそれぞ
れのユニットに対応するリザベーションステーションが
設けられている。本実施例においては、3つの整数論理
演算ALU40a,40b,40c、2つの浮動小数点
演算FPU41a,41b、2つのブランチユニットB
RU42a,42b、2つのロードストアユニットLS
U43a,43bが設けられている。各ファンクション
ユニットのそれぞれに対応して、リザベーションステー
ション45a,45b,45c,45dが設けられてい
る。
【0030】リザベーションステーション45a〜45
dは、各ファンクションユニットに対応してそれぞれ設
けられた命令キューであり、フェッチデコードユニット
31a,31bから発行されたが、まだ実行できないで
いる命令や、命令コンテクスト情報を含む命令の実行制
御に必要な各種情報(その命令が使用すべきスタックポ
インタ、フレームポインタ、プログラムカウンタ等を指
示する情報)を保持する。
【0031】次に、本実施例の動作について説明する。
各フェッチデコードユニット31a,31bは、それぞ
れに対応するレジスタファイル32a,32bのプログ
ラムカウンタ37a,37bに基づいて、独自に命令フ
ェッチ・デコードを行なう。すなわち、フェッチデコー
ドユニット31aは、プログラムカウンタ37aが示す
番地から命令をフェッチし、デコードする。この際、ス
コアボード35によって管理されている情報に基づい
て、その命令がすぐに実行可能であるかが判定される。
フェッチデコードユニット31bも同様にして動作す
る。
【0032】フェッチデコードユニット31a,31b
は、命令がすぐに実行可能であれば、命令に応じたファ
ンクションユニットのリザベーションステーションへ命
令コンテクスト情報を付加して送出する。
【0033】各ファンクションユニットは、それぞれに
対応するリザベーションステーションからデコードされ
た命令を取り出して実行する。この時、命令に付加され
た命令コンテクスト情報に応じて、使用するレジスタフ
ァイルを特定する。
【0034】一方のフェッチデコードユニットにおいて
命令デコードした時点で、その命令が分岐命令であり現
時点で分岐先が分からない場合、他方の命令デコードユ
ニットにおいて実行可能な命令があるかどうかを調べ
る。
【0035】ここで、実行可能な命令が存在する場合に
は、分岐先が決まるまで命令デコードをストールさせ
る。また、実行可能な命令が存在しない場合には(すで
にストールしている)場合には、分岐先バッファ38
a,38bを用いた分岐予測を行ない投機的に命令を実
行する。
【0036】ここで、具体例を用いて説明する。図3
(a)に示すプログラムP1と図3(b)に示すプログ
ラムP2を実行すると、各命令が、図4に示すようにし
て各ファンクションユニットに対して発行されて実行さ
れる。
【0037】図4に示すように、命令の並列度が最大5
に達する。また、プログラムP1には第9ラインに分岐
命令(BEQ L1)が存在するため、サイクル6では
実行できる命令はないが(分岐先が決まるまで命令デコ
ードがストールされる)、他方の命令デコードユニット
によって実行可能な命令があるかどうか調べた結果、プ
ログラムP2に実行可能な命令が存在する。
【0038】従って、ALU40a,40b,40cの
それぞれに、「P2:12」「P2:13」「P2:1
4」が発行される。すなわち、分岐命令をデコードした
命令フェッチデコードユニットを補間するように命令が
発行され、全てのファンクションユニットが空くことは
ない。この結果、本実施例の構成では、プログラムP
1,P2について実行すると8サイクルで両方が完了し
てしまうことになる。
【0039】また、図3(a)に示すプログラムP1と
図3(c)に示すプログラムP3を実行すると、各命令
が、図5に示すようにして各ファンクションユニットに
対して発行されて実行される。
【0040】図5に示すように、ALU40aとFPU
41aが並列に使用されている。このようにして、2つ
の命令フェッチデコードユニット31a,31bが設け
られ、それぞれが独立して命令を発行できるので、同時
に複数のプログラムを実行させて同時に実行できる命令
の数を増やし、ファンクションユニットを有効に利用し
て、命令の並列度を向上させることができる。従って、
コストパフォーマンスの高いプロセッサを提供すること
ができる。複数のプログラム(コンテクスト)を並列実
行するためにマルチプロセッサシステムを用いることも
考えられるが、この場合、各プロセッサ間のキャッシュ
の一貫性保持のための機能が必要であり、このためのオ
ーバヘッドと外部バスやネットワークへの負荷を生じる
という問題がある。本発明では、複数の命令列が同一プ
ロセッサ30において同じ命令キャッシュ33を共有す
るので、一貫性はプロセッサ10内のみで保証すれば良
いため高速に実行でき、しかも外部バス、ネットワーク
への負荷を発生することがないという効果がある。
【0041】また、一方のフェッチデコードユニットが
分岐命令をフェッチした場合に、他方のフェッチデコー
ドユニットを用いて実行可能な命令が存在すれば分岐予
測を行なわず命令デコードを中止する。そして、他方の
フェッチデコードユニットから命令を発行することで、
互いに補間するようにして処理を行なうことが可能であ
り、結果として高いスループットを得ることができる。
【0042】また、一方のフェッチデコードユニットが
分岐命令をフェッチした場合に、他方のフェッチデコー
ドユニットを用いて実行可能な命令が存在しない場合に
は、分岐予測に従って投機的に命令を実行することで高
速な処理が可能となる。
【0043】なお、前記実施例では、2つのフェッチデ
コードユニット31a,31bを設ける構成としている
が、3つ以上であっても良い。この場合、各フェッチデ
コードユニットに対応するレジスタファイルが設けられ
る。
【0044】また、前記実施例では、分岐予測を行なう
際には分岐先バッファ38a,38b(ブランチターゲ
ットバッファ:BTB)を用いるとして説明している
が、他の方法による分岐予測であっても良い。
【0045】
【発明の効果】以上詳述したように本発明によれば、プ
ロセッサ内の資源を有効利用して複数のコンテキストを
同時に実行できるようにして命令の並列度を高めた高速
処理が可能となるものである。
【図面の簡単な説明】
【図1】本発明の一実施例に係わるプロセッサの構成を
示すブロック図。
【図2】本実施例におけるファンクションユニット群の
構成を示すブロック図。
【図3】本実施例の具体的な動作を説明するためのプロ
グラムの一例を示す図。
【図4】本実施例における図3中に示すプログラムP
1,P2を実行した際に各ファンクションユニットで実
行される命令を示す図。
【図5】本実施例における図3中に示すプログラムP
1,P3を実行した際に各ファンクションユニットで実
行される命令を示す図。
【図6】従来のプロセッサの構成を示すブロック図。
【図7】従来のプロセッサによって図3中に示すプログ
ラムP1を実行した際に各ファンクションユニットで実
行される命令を示す図。
【符号の説明】
30…プロセッサ、31a,31b…フェッチデコード
ユニット、32a,32b…レジスタファイル、33…
命令キャッシュ、34…データキャッシュ、35…スコ
アボード、36…ファンクションユニット群、38a,
38b…分岐先バッファ(分岐ターゲットバッファ:br
anch-target buffer:BTB)、39a,39b…分岐
命令検出部、40a,40b,40c…ALU(整数論
理演算)、41a,41b…FPU(浮動小数点演
算)、42a,42b…BRU(ブランチユニット、4
3a,43b…LSU(ロードストアユニット)。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 複数の演算ユニットを有するプロセッサ
    において、 複数の命令フェッチデコード機能を有し、同時に複数の
    命令を実行することを特徴とするプロセッサ。
  2. 【請求項2】 前記複数の命令フェッチデコード機能と
    同数のレジスタファイルを有し、各命令フェッチデコー
    ド機能は、何れのレジスタファイルを使用するかを指定
    するための情報を付加して命令を発行することを特徴と
    する請求項1記載のプロセッサ。
  3. 【請求項3】 前記複数の命令フェッチデコード機能の
    それぞれは、分岐命令を検出する分岐命令検出手段を有
    し、 前記分岐命令検出手段によってデコードの対象とする命
    令が分岐命令であることを検出した場合には、他に実行
    可能な命令が存在すれば、分岐先が既知である場合を除
    き、分岐先が決定されるまで以降の命令デコードを中止
    することを特徴とする請求項1または請求項2記載のプ
    ロセッサ。
  4. 【請求項4】 前記複数の命令フェッチデコード機能の
    それぞれは、分岐命令を検出する分岐命令検出手段を有
    し、 前記分岐命令検出手段によってデコードの対象とする命
    令が分岐命令であることを検出した場合には、他に実行
    可能な命令が存在すれば、分岐先が既知である場合を除
    き、分岐先が決定されるまで以降の命令デコードを中止
    し、他に実行可能な命令が存在しなければ分岐予測によ
    り命令実行を行なうことを特徴とする請求項1または請
    求項2記載のプロセッサ。
  5. 【請求項5】 前記複数の命令フェッチデコード機構
    は、1つの命令キャッシュを共有することを特徴とする
    請求項1記載のプロセッサ。
JP32185994A 1994-12-26 1994-12-26 プロセッサ Pending JPH08179946A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32185994A JPH08179946A (ja) 1994-12-26 1994-12-26 プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32185994A JPH08179946A (ja) 1994-12-26 1994-12-26 プロセッサ

Publications (1)

Publication Number Publication Date
JPH08179946A true JPH08179946A (ja) 1996-07-12

Family

ID=18137220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32185994A Pending JPH08179946A (ja) 1994-12-26 1994-12-26 プロセッサ

Country Status (1)

Country Link
JP (1) JPH08179946A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502186B2 (en) 1998-07-07 2002-12-31 Fujitsu Limited Instruction processing apparatus
JP2012525620A (ja) * 2009-04-28 2012-10-22 イマジネイション テクノロジーズ リミテッド マルチスレッドマイクロプロセッサにおける命令の発行をスケジュールするための方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502186B2 (en) 1998-07-07 2002-12-31 Fujitsu Limited Instruction processing apparatus
JP2012525620A (ja) * 2009-04-28 2012-10-22 イマジネイション テクノロジーズ リミテッド マルチスレッドマイクロプロセッサにおける命令の発行をスケジュールするための方法及び装置

Similar Documents

Publication Publication Date Title
JP3580657B2 (ja) 並列マルチタスキングの方法及びシステム
KR100234646B1 (ko) 다중 인스트럭션 실행 방법 및 수퍼스칼라 마이크로프로세서
US6295600B1 (en) Thread switch on blocked load or store using instruction thread field
US5913925A (en) Method and system for constructing a program including out-of-order threads and processor and method for executing threads out-of-order
US5887166A (en) Method and system for constructing a program including a navigation instruction
US6061710A (en) Multithreaded processor incorporating a thread latch register for interrupt service new pending threads
US9311095B2 (en) Using register last use information to perform decode time computer instruction optimization
US5961639A (en) Processor and method for dynamically inserting auxiliary instructions within an instruction stream during execution
US6212542B1 (en) Method and system for executing a program within a multiscalar processor by processing linked thread descriptors
US6202130B1 (en) Data processing system for processing vector data and method therefor
US8423750B2 (en) Hardware assist thread for increasing code parallelism
JP4837305B2 (ja) マイクロプロセッサ及びマイクロプロセッサの制御方法
JP5543366B2 (ja) ロックされたオペレーションを実行するためのシステムおよび方法
JP2006114036A (ja) Smtディスパッチのための命令グループ形成およびメカニズム
JP3207124B2 (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
US6735687B1 (en) Multithreaded microprocessor with asymmetrical central processing units
US20040199749A1 (en) Method and apparatus to limit register file read ports in an out-of-order, multi-stranded processor
GB2321544A (en) Concurrently executing multiple threads containing data dependent instructions
US6473850B1 (en) System and method for handling instructions occurring after an ISYNC instruction
KR100260680B1 (ko) 순서외의 다중 인스트럭션 완료 지원 방법 및 수퍼스칼라 마이크로프로세서
JPH06266556A (ja) データ処理装置
Kawano et al. Fine-grain multi-thread processor architecture for massively parallel processing
JPH08179946A (ja) プロセッサ
GB2321546A (en) Constructing a multiscalar program including thread descriptors that each refe rence a next thread descriptor to be processed
WO2024065850A1 (en) Providing bytecode-level parallelism in a processor using concurrent interval execution