JPH04328637A - 並列プロセッサー - Google Patents
並列プロセッサーInfo
- Publication number
- JPH04328637A JPH04328637A JP3099132A JP9913291A JPH04328637A JP H04328637 A JPH04328637 A JP H04328637A JP 3099132 A JP3099132 A JP 3099132A JP 9913291 A JP9913291 A JP 9913291A JP H04328637 A JPH04328637 A JP H04328637A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- parallel processor
- instructions
- flip
- parallel
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
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)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、RISC(縮小命令セ
ットコンピュータ)型のマイクロプロセッサーに係り、
特にスーパースケーラー(Superscalar )
方式を使って複数の命令を並列処理する並列プロセッサ
ーに関する。
ットコンピュータ)型のマイクロプロセッサーに係り、
特にスーパースケーラー(Superscalar )
方式を使って複数の命令を並列処理する並列プロセッサ
ーに関する。
【0002】
【従来の技術】従来、データプロセッサーの処理方式は
、一命令を順次処理するSISD(Single In
struction Single Data)が主流
であった。そして、プロセッサーの性能向上の要求に対
しては、まずは、取り扱うデータ幅の拡大、動作周波数
の向上により対応し、さらに、処理自体をいくつかのセ
クションに分けて複数のデータを同時に処理するパイプ
ライン方式や、浮動小数点演算などの特殊処理専用のハ
ードウェアの追加により対応してきた。
、一命令を順次処理するSISD(Single In
struction Single Data)が主流
であった。そして、プロセッサーの性能向上の要求に対
しては、まずは、取り扱うデータ幅の拡大、動作周波数
の向上により対応し、さらに、処理自体をいくつかのセ
クションに分けて複数のデータを同時に処理するパイプ
ライン方式や、浮動小数点演算などの特殊処理専用のハ
ードウェアの追加により対応してきた。
【0003】図5は、演算ユニットを1組しか持たない
従来のパイプラインプロセッサーを示している。ここで
、51はレジスタファイル、RPはレジスタファイル5
1のリードポート、WPはレジスタファイル51のライ
トポート、52は算術論理演算器(ALU)、531お
よび532は2入力セレクタ回路、54a〜54dはフ
リップフロップ回路、55a〜55cおよび56a〜5
6cはトライステートバッファ回路、17は命令デコー
ダである。
従来のパイプラインプロセッサーを示している。ここで
、51はレジスタファイル、RPはレジスタファイル5
1のリードポート、WPはレジスタファイル51のライ
トポート、52は算術論理演算器(ALU)、531お
よび532は2入力セレクタ回路、54a〜54dはフ
リップフロップ回路、55a〜55cおよび56a〜5
6cはトライステートバッファ回路、17は命令デコー
ダである。
【0004】このパイプラインプロセッサーにおいて、
例えば図3に示すような命令1〜命令4を実行する場合
、図6に示すように、4段のステージI〜IVで命令1
について命令デコードD、命令実行E、メモリアクセス
M、レジスタライトWを順次実行し、ステージII〜V
で命令2を実行し、ステージIII 〜VIで命令3を
実行し、ステージIV〜VII で命令4を実行するの
で、その演算結果をレジスタに書込むまでに合計7サイ
クルを必要とする。
例えば図3に示すような命令1〜命令4を実行する場合
、図6に示すように、4段のステージI〜IVで命令1
について命令デコードD、命令実行E、メモリアクセス
M、レジスタライトWを順次実行し、ステージII〜V
で命令2を実行し、ステージIII 〜VIで命令3を
実行し、ステージIV〜VII で命令4を実行するの
で、その演算結果をレジスタに書込むまでに合計7サイ
クルを必要とする。
【0005】一方、プロセッサーの一層の性能向上に対
する要求に対しては、複数の命令を同時(並列)に実行
するMIMD(Multiple−instructi
on struction Multiple−dat
a stream )方式が有効である。これは、複数
の演算処理装置を備え、これらを同時に働かす方式であ
り、同一の演算器のアレイを有するアレイプロセッサー
とか、相異なる演算器を複数組有し、複数のパイプライ
ンを持つスーパースケーラー方式の並列プロセッサーな
どがある。
する要求に対しては、複数の命令を同時(並列)に実行
するMIMD(Multiple−instructi
on struction Multiple−dat
a stream )方式が有効である。これは、複数
の演算処理装置を備え、これらを同時に働かす方式であ
り、同一の演算器のアレイを有するアレイプロセッサー
とか、相異なる演算器を複数組有し、複数のパイプライ
ンを持つスーパースケーラー方式の並列プロセッサーな
どがある。
【0006】前者のアレイプロセッサーは、一般のデー
タ処理への応用が難しいので応用分野が限られる。これ
に対して、スーパースケーラー方式のプロセッサーは、
その制御方式が従来のプロセッサーの制御方式の拡張に
相当するものとしてとらえることができるので、一般の
データ処理への応用が比較的簡単である。
タ処理への応用が難しいので応用分野が限られる。これ
に対して、スーパースケーラー方式のプロセッサーは、
その制御方式が従来のプロセッサーの制御方式の拡張に
相当するものとしてとらえることができるので、一般の
データ処理への応用が比較的簡単である。
【0007】スーパースケーラー方式の並列プロセッサ
ーは、複数組の演算器を同時に働かせることにより1ク
ロック(サイクル)の間に複数の命令を並列に実行する
。この場合、命令の処理は、複数の命令を同時にフェッ
チ/デコードし、これを演算器で実行するので、従来の
プロセッサーに比べて高い処理能力を発揮する。
ーは、複数組の演算器を同時に働かせることにより1ク
ロック(サイクル)の間に複数の命令を並列に実行する
。この場合、命令の処理は、複数の命令を同時にフェッ
チ/デコードし、これを演算器で実行するので、従来の
プロセッサーに比べて高い処理能力を発揮する。
【0008】図7は、2組の演算ユニットを有し、2つ
の命令を並列に実行するように構成された2本のパイプ
ラインを持つ従来のスーパースケーラー方式の並列プロ
セッサーを示している。
の命令を並列に実行するように構成された2本のパイプ
ラインを持つ従来のスーパースケーラー方式の並列プロ
セッサーを示している。
【0009】ここで、71はレジスタファイル、RPは
レジスタファイル71のリードポート、WPはレジスタ
ファイル71のライトポート、721および722はA
LU、731a、731b、732a、732bは2入
力セレクタ回路、741a〜741d、742a〜74
2dはフリップフロップ回路、751a〜751c、7
61a〜761cおよび752a〜752c、762a
〜762cはトライステートバッファ回路、771およ
び772は命令デコーダである。
レジスタファイル71のリードポート、WPはレジスタ
ファイル71のライトポート、721および722はA
LU、731a、731b、732a、732bは2入
力セレクタ回路、741a〜741d、742a〜74
2dはフリップフロップ回路、751a〜751c、7
61a〜761cおよび752a〜752c、762a
〜762cはトライステートバッファ回路、771およ
び772は命令デコーダである。
【0010】この並列プロセッサーにおいて、図3に示
したような命令1〜命令4を実行する場合、図8に示す
ように、命令1・命令2については、4段のステージI
〜IVで命令デコードD、命令実行E、メモリアクセス
M、レジスタライトWを順次実行し、命令3・命令4に
ついては、4段のステージV〜VIIIで命令デコード
D、命令実行E、メモリアクセスM、レジスタライトW
を順次実行する。
したような命令1〜命令4を実行する場合、図8に示す
ように、命令1・命令2については、4段のステージI
〜IVで命令デコードD、命令実行E、メモリアクセス
M、レジスタライトWを順次実行し、命令3・命令4に
ついては、4段のステージV〜VIIIで命令デコード
D、命令実行E、メモリアクセスM、レジスタライトW
を順次実行する。
【0011】この時、命令1・命令2の演算結果をレジ
スタに書込むまでの期間は命令3・命令4を実行するこ
とができない。従って、命令3・命令4の演算結果をレ
ジスタを書込むまでの所要時間は、命令1・命令2の実
行に要する4サイクルと命令3・命令4の実行に要する
4サイクルとの合計8サイクルとなる。
スタに書込むまでの期間は命令3・命令4を実行するこ
とができない。従って、命令3・命令4の演算結果をレ
ジスタを書込むまでの所要時間は、命令1・命令2の実
行に要する4サイクルと命令3・命令4の実行に要する
4サイクルとの合計8サイクルとなる。
【0012】即ち、上記したような従来のスーパースケ
ーラー方式の並列プロセッサーは、ハードウェアが増加
したにも拘らず、並列実行可能な命令数を越える命令の
実行に際して、ある命令の演算結果がレジスタに書込ま
れるまでの期間は別の命令を実行できず、結果的に命令
の実行時間が長くなる場合が生じる。
ーラー方式の並列プロセッサーは、ハードウェアが増加
したにも拘らず、並列実行可能な命令数を越える命令の
実行に際して、ある命令の演算結果がレジスタに書込ま
れるまでの期間は別の命令を実行できず、結果的に命令
の実行時間が長くなる場合が生じる。
【0013】
【発明が解決しようとする課題】上記したように従来の
スーパースケーラー方式の並列プロセッサーは、並列実
行可能な命令数を越える命令の実行に際して命令の実行
時間が長くなる場合が生じるという問題があった。
スーパースケーラー方式の並列プロセッサーは、並列実
行可能な命令数を越える命令の実行に際して命令の実行
時間が長くなる場合が生じるという問題があった。
【0014】本発明は上記の問題点を解決すべくなされ
たもので、命令の実行時間が短くなり、命令処理の性能
の向上を図り得るスーパースケーラー方式の並列プロセ
ッサーを提供することを目的とする。
たもので、命令の実行時間が短くなり、命令処理の性能
の向上を図り得るスーパースケーラー方式の並列プロセ
ッサーを提供することを目的とする。
【0015】
【課題を解決するための手段】本発明は、最大N(N>
1)個の命令を並列実行できるように構成された複数の
パイプラインを持つスーパースケーラー方式の並列プロ
セッサーにおいて、少なくとも2本のパイプラインの各
ステージのデータ出力を上記パイプライン間で授受する
ためのバイパス回路を具備することを特徴とする。
1)個の命令を並列実行できるように構成された複数の
パイプラインを持つスーパースケーラー方式の並列プロ
セッサーにおいて、少なくとも2本のパイプラインの各
ステージのデータ出力を上記パイプライン間で授受する
ためのバイパス回路を具備することを特徴とする。
【0016】
【作用】あるパイプラインの任意のステージの演算結果
をレジスタファイルに書込む前に別のパイプラインに取
り込んで別の演算のオペランドとして使用することが可
能になるので、並列実行可能な命令数を越える命令の実
行に際しても命令の実行時間が短くなり、命令処理の性
能の向上を図ることが可能になる。
をレジスタファイルに書込む前に別のパイプラインに取
り込んで別の演算のオペランドとして使用することが可
能になるので、並列実行可能な命令数を越える命令の実
行に際しても命令の実行時間が短くなり、命令処理の性
能の向上を図ることが可能になる。
【0017】
【実施例】以下、図面を参照して本発明の一実施例を詳
細に説明する。
細に説明する。
【0018】図1は、スーパースケーラー方式の並列プ
ロセッサーの一部を示している。この並列プロセッサー
は、複数組(例えば2組)の演算ユニットを有し、この
2組の演算ユニットを同時に働かせることにより1クロ
ックの間に最大2つの命令を並列に実行するように構成
された複数本(本例では2本)のパイプラインを持って
いる。
ロセッサーの一部を示している。この並列プロセッサー
は、複数組(例えば2組)の演算ユニットを有し、この
2組の演算ユニットを同時に働かせることにより1クロ
ックの間に最大2つの命令を並列に実行するように構成
された複数本(本例では2本)のパイプラインを持って
いる。
【0019】ここで、11はレジスタファイル、RPは
レジスタファイル11のリードポート、WPはレジスタ
ファイル11のライトポート、121および122はA
LU、131a、131b、132a、132bは2入
力セレクタ回路、141a〜141d、142a〜14
2dはフリップフロップ回路、151a〜151f、1
61a〜161fおよび152a〜152f、162a
〜162fはトライステートバッファ回路、171およ
び172は命令デコーダである。
レジスタファイル11のリードポート、WPはレジスタ
ファイル11のライトポート、121および122はA
LU、131a、131b、132a、132bは2入
力セレクタ回路、141a〜141d、142a〜14
2dはフリップフロップ回路、151a〜151f、1
61a〜161fおよび152a〜152f、162a
〜162fはトライステートバッファ回路、171およ
び172は命令デコーダである。
【0020】図2は、前記トライステートバッファ回路
151a〜151f、161a〜161fおよび152
a〜152f、162a〜162fのうちの1個を代表
的に取り出して回路例を示している。Vccは電源電位
、Vssは接地電位、Dは前記パイプラインからの入力
データ、Eは前記命令デコーダ171または172から
の活性化(イネーターブル)制御信号、21は二入力ナ
ンドゲート、22はインバータ回路、23は二入力ノア
ゲート、24はPMOSトランジスタ、25はNMOS
トランジスタである。イネーターブル制御信号Eが“H
”レベルの場合には、入力データDが“H”レベルであ
ると、二入力ナンドゲート21の出力が“L”レベル、
二入力ノアゲート23の出力が“L”レベル、PMOS
トランジスタ24がオン、NMOSトランジスタ25が
オフになり、バッファ出力は“H”レベルになる。
151a〜151f、161a〜161fおよび152
a〜152f、162a〜162fのうちの1個を代表
的に取り出して回路例を示している。Vccは電源電位
、Vssは接地電位、Dは前記パイプラインからの入力
データ、Eは前記命令デコーダ171または172から
の活性化(イネーターブル)制御信号、21は二入力ナ
ンドゲート、22はインバータ回路、23は二入力ノア
ゲート、24はPMOSトランジスタ、25はNMOS
トランジスタである。イネーターブル制御信号Eが“H
”レベルの場合には、入力データDが“H”レベルであ
ると、二入力ナンドゲート21の出力が“L”レベル、
二入力ノアゲート23の出力が“L”レベル、PMOS
トランジスタ24がオン、NMOSトランジスタ25が
オフになり、バッファ出力は“H”レベルになる。
【0021】上記とは逆に、入力データDが“L”レベ
ルであると、二入力ナンドゲート21の出力が“H”レ
ベル、二入力ノアゲート23の出力が“H”レベル、P
MOSトランジスタ24がオフ、NMOSトランジスタ
25がオンになり、バッファ出力は“L”レベルになる
。
ルであると、二入力ナンドゲート21の出力が“H”レ
ベル、二入力ノアゲート23の出力が“H”レベル、P
MOSトランジスタ24がオフ、NMOSトランジスタ
25がオンになり、バッファ出力は“L”レベルになる
。
【0022】これに対して、イネーターブル制御信号E
が“L”レベルの場合には、二入力ナンドゲート21の
出力が入力データDのレベルに関係なく“H”レベルに
なり、二入力ノアゲート23の出力が入力データDのレ
ベルに関係なく“L”レベルになり、PMOSトランジ
スタ24およびNMOSトランジスタ25がそれぞれオ
フになり、バッファ出力は高インピーダンス状態になる
。
が“L”レベルの場合には、二入力ナンドゲート21の
出力が入力データDのレベルに関係なく“H”レベルに
なり、二入力ノアゲート23の出力が入力データDのレ
ベルに関係なく“L”レベルになり、PMOSトランジ
スタ24およびNMOSトランジスタ25がそれぞれオ
フになり、バッファ出力は高インピーダンス状態になる
。
【0023】上記並列プロセッサーにおいて、例えば図
3に示すような命令1〜命令4を実行する場合、図4に
示すように、命令1・命令2については、4段のステー
ジI〜IVで命令デコードD、命令実行E、メモリアク
セスM、レジスタライトWを順次実行し、命令3・命令
4については、4段のステージII〜Vで命令デコード
D、命令実行E、メモリアクセスM、レジスタライトW
を順次実行するように制御が行われる。
3に示すような命令1〜命令4を実行する場合、図4に
示すように、命令1・命令2については、4段のステー
ジI〜IVで命令デコードD、命令実行E、メモリアク
セスM、レジスタライトWを順次実行し、命令3・命令
4については、4段のステージII〜Vで命令デコード
D、命令実行E、メモリアクセスM、レジスタライトW
を順次実行するように制御が行われる。
【0024】即ち、ステージIでは、命令1に対して、
レジスタファイル11からレジスタの値$1、$2の値
を読み出して各対応して2入力セレクタ回路131a、
131bを介してフリップフロップ回路141a、14
1bに格納し、命令2に対して、レジスタファイル11
からレジスタの値$4、$5を読み出して各対応して2
入力セレクタ回路132a、132bを介してフリップ
フロップ回路142a、142bに格納する。
レジスタファイル11からレジスタの値$1、$2の値
を読み出して各対応して2入力セレクタ回路131a、
131bを介してフリップフロップ回路141a、14
1bに格納し、命令2に対して、レジスタファイル11
からレジスタの値$4、$5を読み出して各対応して2
入力セレクタ回路132a、132bを介してフリップ
フロップ回路142a、142bに格納する。
【0025】ステージIIでは、命令1に対して、AL
U121で$1+$2の加算を実行してその結果をフリ
ップフロップ回路141cに格納し、命令2に対して、
ALU122で$4+$5の加算を実行してその結果を
フリップフロップ回路142cに格納する。この場合、
これらの演算結果をレジスタファイル11に書込まない
。 また、命令3に対して、上記ALU121の演算結果$
3をトライステートバッファ回路151aおよび2入力
セレクタ回路131aを介して前記フリップフロップ回
路141aにオペランドとして格納すると共に、前記A
LU122の演算結果$6をトライステートバッファ回
路162dおよび2入力セレクタ回路131bを介して
前記フリップフロップ回路141bにオペランドとして
格納する。
U121で$1+$2の加算を実行してその結果をフリ
ップフロップ回路141cに格納し、命令2に対して、
ALU122で$4+$5の加算を実行してその結果を
フリップフロップ回路142cに格納する。この場合、
これらの演算結果をレジスタファイル11に書込まない
。 また、命令3に対して、上記ALU121の演算結果$
3をトライステートバッファ回路151aおよび2入力
セレクタ回路131aを介して前記フリップフロップ回
路141aにオペランドとして格納すると共に、前記A
LU122の演算結果$6をトライステートバッファ回
路162dおよび2入力セレクタ回路131bを介して
前記フリップフロップ回路141bにオペランドとして
格納する。
【0026】また、命令4に対して、前記記ALU12
1の演算結果$3をトライステートバッファ回路151
dおよび2入力セレクタ回路132aを介して前記フリ
ップフロップ回路142aに格納すると共に、前記AL
U122の演算結果$6をトライステートバッファ回路
162aおよび2入力セレクタ回路132bを介して前
記フリップフロップ回路142bに格納する。
1の演算結果$3をトライステートバッファ回路151
dおよび2入力セレクタ回路132aを介して前記フリ
ップフロップ回路142aに格納すると共に、前記AL
U122の演算結果$6をトライステートバッファ回路
162aおよび2入力セレクタ回路132bを介して前
記フリップフロップ回路142bに格納する。
【0027】ステージIIIでは、命令1に対して、前
記フリップフロップ回路141cに格納されている命令
1の演算結果$3をフリップフロップ回路141dに転
送し、命令2に対して、前記フリップフロップ回路14
2cに格納されている演算結果$6をフリップフロップ
回路142dに転送する。
記フリップフロップ回路141cに格納されている命令
1の演算結果$3をフリップフロップ回路141dに転
送し、命令2に対して、前記フリップフロップ回路14
2cに格納されている演算結果$6をフリップフロップ
回路142dに転送する。
【0028】また、命令3に対して、ALU121で$
3と$6との論理和演算を実行してその結果をフリップ
フロップ回路141cに格納し、命令4に対して、AL
U122で$3と$6との論理積演算を実行してその結
果をフリップフロップ回路142cに格納する。
3と$6との論理和演算を実行してその結果をフリップ
フロップ回路141cに格納し、命令4に対して、AL
U122で$3と$6との論理積演算を実行してその結
果をフリップフロップ回路142cに格納する。
【0029】ステージIVでは、前記フリップフロップ
回路141dに格納されている命令1の演算結果$3を
レジスタファイル11に書込むと共にフリップフロップ
回路142dに格納されている命令2の演算結果$6を
レジスタファイル11に書込む。
回路141dに格納されている命令1の演算結果$3を
レジスタファイル11に書込むと共にフリップフロップ
回路142dに格納されている命令2の演算結果$6を
レジスタファイル11に書込む。
【0030】また、命令3に対して、前記フリップフロ
ップ回路141cに格納されている命令3の演算結果$
7をフリップフロップ回路141dに転送し、命令4に
対して、前記フリップフロップ回路142cに格納され
ている演算結果$8をフリップフロップ回路142dに
転送する。
ップ回路141cに格納されている命令3の演算結果$
7をフリップフロップ回路141dに転送し、命令4に
対して、前記フリップフロップ回路142cに格納され
ている演算結果$8をフリップフロップ回路142dに
転送する。
【0031】ステージVでは、前記フリップフロップ回
路141dに格納されている命令3の演算結果$7をレ
ジスタファイル11に書込むと共にフリップフロップ回
路142dに格納されている命令4の演算結果$8をレ
ジスタファイル11に書込む。
路141dに格納されている命令3の演算結果$7をレ
ジスタファイル11に書込むと共にフリップフロップ回
路142dに格納されている命令4の演算結果$8をレ
ジスタファイル11に書込む。
【0032】従って、命令3・命令4の演算結果をレジ
スタファイル11に書込むまでの所要時間は、合計5サ
イクルとなり、図7に示した従来例の並列プロセッサー
における所要時間8サイクルと比べて3サイクル短縮し
ている。
スタファイル11に書込むまでの所要時間は、合計5サ
イクルとなり、図7に示した従来例の並列プロセッサー
における所要時間8サイクルと比べて3サイクル短縮し
ている。
【0033】即ち、上記実施例の並列プロセッサーによ
れば、2本のパイプラインの各ステージのデータ出力を
上記パイプライン間で授受するためのバイパス回路(ト
ライステートバッファ回路151a〜151f、161
a〜161f、152a〜152f、162a〜162
f)を有している。
れば、2本のパイプラインの各ステージのデータ出力を
上記パイプライン間で授受するためのバイパス回路(ト
ライステートバッファ回路151a〜151f、161
a〜161f、152a〜152f、162a〜162
f)を有している。
【0034】これにより、あるパイプラインの任意のス
テージの演算結果をレジスタファイル11に書込む前に
別のパイプラインに取り込んで別の演算のオペランドと
して使用することができる。従って、並列実行可能な命
令数を越える命令の実行に際しても命令の実行時間が短
くなり、命令処理の性能の大幅な向上を図ることができ
る。なお、上記バイパス回路を命令実行用演算器と同じ
半導体チップ上に搭載することにより、並列プロセッサ
ーのシステム構成を簡単化できる。
テージの演算結果をレジスタファイル11に書込む前に
別のパイプラインに取り込んで別の演算のオペランドと
して使用することができる。従って、並列実行可能な命
令数を越える命令の実行に際しても命令の実行時間が短
くなり、命令処理の性能の大幅な向上を図ることができ
る。なお、上記バイパス回路を命令実行用演算器と同じ
半導体チップ上に搭載することにより、並列プロセッサ
ーのシステム構成を簡単化できる。
【0035】
【発明の効果】上述したように本発明のスーパースケー
ラー方式の並列プロセッサーによれば、命令の実行時間
を短くし、命令処理の性能を向上させることができる。
ラー方式の並列プロセッサーによれば、命令の実行時間
を短くし、命令処理の性能を向上させることができる。
【図1】本発明のスーパースケーラー方式の並列プロセ
ッサーの一実施例におけるパイプラインを示す論理回路
図。
ッサーの一実施例におけるパイプラインを示す論理回路
図。
【図2】図1中のトライステートバッファ回路の一例を
示す回路図。
示す回路図。
【図3】図1の並列プロセッサーにおいて並列実行され
る命令1〜命令4の一例を記述する図。
る命令1〜命令4の一例を記述する図。
【図4】図1の並列プロセッサーにおいて図3の命令1
〜命令4を実行する際の各ステージの状況を示す図。
〜命令4を実行する際の各ステージの状況を示す図。
【図5】従来の演算器を1組しか持たないパイプライン
プロセッサーにおけるパイプラインを示す論理回路図。
プロセッサーにおけるパイプラインを示す論理回路図。
【図6】図5のパイプラインプロセッサーにおいて図3
の命令1〜命令4を実行する際の各ステージの状況を示
す図。
の命令1〜命令4を実行する際の各ステージの状況を示
す図。
【図7】従来の複数組の演算器を持つスーパースケーラ
ー方式の並列プロセッサーにおける2本のパイプライン
を示す論理回路図。
ー方式の並列プロセッサーにおける2本のパイプライン
を示す論理回路図。
【図8】図7の並列プロセッサーにおいて図3の命令1
〜命令4を実行する際の4段のステージの状況を示す図
。
〜命令4を実行する際の4段のステージの状況を示す図
。
11…レジスタファイル、121、122…ALU、1
31a、131b、132a、132b…2入力セレク
タ回路、141a〜141d、142a〜142d…フ
リップフロップ回路、151a〜151f、161a〜
161fおよび152a〜152f、162a〜162
f…トライステートバッファ回路、171、172…命
令デコーダ。
31a、131b、132a、132b…2入力セレク
タ回路、141a〜141d、142a〜142d…フ
リップフロップ回路、151a〜151f、161a〜
161fおよび152a〜152f、162a〜162
f…トライステートバッファ回路、171、172…命
令デコーダ。
Claims (3)
- 【請求項1】 最大N(N>1)個の命令を並列実行
できるように構成された複数のパイプラインを持つスー
パースケーラー方式の並列プロセッサーにおいて、少な
くとも2本のパイプラインの任意の一つ以上のステージ
のデータ出力を上記パイプライン間で授受するためのバ
イパス回路を具備することを特徴とする並列プロセッサ
ー。 - 【請求項2】 請求項1記載の並列プロセッサーにお
いて、前記バイパス回路は、あるパイプラインの各ステ
ージのデータ出力を別のパイプラインのデータ入力線に
転送するトライステートバッファ回路が用いられている
ことを特徴とする並列プロセッサー。 - 【請求項3】 請求項1または2記載の並列プロセッ
サーにおいて、前記バイパス回路は、命令実行用演算器
と同じ半導体チップ上に搭載されていることを特徴とす
る並列プロセッサー。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3099132A JP2693651B2 (ja) | 1991-04-30 | 1991-04-30 | 並列プロセッサー |
| KR1019920006751A KR950012120B1 (ko) | 1991-04-30 | 1992-04-22 | 병렬프로세서 |
| US08/293,164 US5467476A (en) | 1991-04-30 | 1994-08-19 | Superscalar processor having bypass circuit for directly transferring result of instruction execution between pipelines without being written to register file |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3099132A JP2693651B2 (ja) | 1991-04-30 | 1991-04-30 | 並列プロセッサー |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04328637A true JPH04328637A (ja) | 1992-11-17 |
| JP2693651B2 JP2693651B2 (ja) | 1997-12-24 |
Family
ID=14239217
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3099132A Expired - Fee Related JP2693651B2 (ja) | 1991-04-30 | 1991-04-30 | 並列プロセッサー |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5467476A (ja) |
| JP (1) | JP2693651B2 (ja) |
| KR (1) | KR950012120B1 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04367936A (ja) * | 1991-06-17 | 1992-12-21 | Mitsubishi Electric Corp | スーパースカラープロセッサ |
| JPH08272611A (ja) * | 1995-03-31 | 1996-10-18 | Nec Corp | マイクロプロセッサ |
| KR100346515B1 (ko) * | 1993-11-17 | 2002-11-30 | 썬 마이크로시스템즈, 인코포레이티드 | 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일 |
Families Citing this family (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5564056A (en) * | 1994-03-01 | 1996-10-08 | Intel Corporation | Method and apparatus for zero extension and bit shifting to preserve register parameters in a microprocessor utilizing register renaming |
| JP3543181B2 (ja) * | 1994-11-09 | 2004-07-14 | 株式会社ルネサステクノロジ | データ処理装置 |
| US5592679A (en) * | 1994-11-14 | 1997-01-07 | Sun Microsystems, Inc. | Apparatus and method for distributed control in a processor architecture |
| US5813037A (en) * | 1995-03-30 | 1998-09-22 | Intel Corporation | Multi-port register file for a reservation station including a pair of interleaved storage cells with shared write data lines and a capacitance isolation mechanism |
| US6115730A (en) * | 1996-02-28 | 2000-09-05 | Via-Cyrix, Inc. | Reloadable floating point unit |
| US5778248A (en) * | 1996-06-17 | 1998-07-07 | Sun Microsystems, Inc. | Fast microprocessor stage bypass logic enable |
| US5996065A (en) * | 1997-03-31 | 1999-11-30 | Intel Corporation | Apparatus for bypassing intermediate results from a pipelined floating point unit to multiple successive instructions |
| GB9707861D0 (en) * | 1997-04-18 | 1997-06-04 | Certicom Corp | Arithmetic processor |
| US6035388A (en) | 1997-06-27 | 2000-03-07 | Sandcraft, Inc. | Method and apparatus for dual issue of program instructions to symmetric multifunctional execution units |
| US5872986A (en) * | 1997-09-30 | 1999-02-16 | Intel Corporation | Pre-arbitrated bypassing in a speculative execution microprocessor |
| US6298367B1 (en) | 1998-04-06 | 2001-10-02 | Advanced Micro Devices, Inc. | Floating point addition pipeline including extreme value, comparison and accumulate functions |
| US6405307B1 (en) * | 1998-06-02 | 2002-06-11 | Intel Corporation | Apparatus and method for detecting and handling self-modifying code conflicts in an instruction fetch pipeline |
| US6571268B1 (en) * | 1998-10-06 | 2003-05-27 | Texas Instruments Incorporated | Multiplier accumulator circuits |
| US7117342B2 (en) * | 1998-12-03 | 2006-10-03 | Sun Microsystems, Inc. | Implicitly derived register specifiers in a processor |
| US6615338B1 (en) | 1998-12-03 | 2003-09-02 | Sun Microsystems, Inc. | Clustered architecture in a VLIW processor |
| US7114056B2 (en) | 1998-12-03 | 2006-09-26 | Sun Microsystems, Inc. | Local and global register partitioning in a VLIW processor |
| US7139899B2 (en) * | 1999-09-03 | 2006-11-21 | Cisco Technology, Inc. | Selected register decode values for pipeline stage register addressing |
| US6633971B2 (en) * | 1999-10-01 | 2003-10-14 | Hitachi, Ltd. | Mechanism for forward data in a processor pipeline using a single pipefile connected to the pipeline |
| EP1124181B8 (en) * | 2000-02-09 | 2012-03-21 | Texas Instruments Incorporated | Data processing apparatus |
| US7093107B2 (en) * | 2000-12-29 | 2006-08-15 | Stmicroelectronics, Inc. | Bypass circuitry for use in a pipelined processor |
| US20040128475A1 (en) * | 2002-12-31 | 2004-07-01 | Gad Sheaffer | Widely accessible processor register file and method for use |
| US20040128572A1 (en) * | 2002-12-31 | 2004-07-01 | Nadav Bonen | Apparatus and method for driving and routing source operands to execution units in layout stacks |
| US7321964B2 (en) * | 2003-07-08 | 2008-01-22 | Advanced Micro Devices, Inc. | Store-to-load forwarding buffer using indexed lookup |
| US20130339689A1 (en) * | 2011-12-29 | 2013-12-19 | Srikanth T. Srinivasan | Later stage read port reduction |
| US8672592B2 (en) * | 2012-05-16 | 2014-03-18 | Iscar, Ltd. | Milling collet having pull-out preventer for retaining a fluted milling tool |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01231126A (ja) * | 1988-03-11 | 1989-09-14 | Oki Electric Ind Co Ltd | 情報処理装置 |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4541046A (en) * | 1981-03-25 | 1985-09-10 | Hitachi, Ltd. | Data processing system including scalar data processor and vector data processor |
| JPS5932045A (ja) * | 1982-08-16 | 1984-02-21 | Hitachi Ltd | 情報処理装置 |
| US4742454A (en) * | 1983-08-30 | 1988-05-03 | Amdahl Corporation | Apparatus for buffer control bypass |
| GB8401807D0 (en) * | 1984-01-24 | 1984-02-29 | Int Computers Ltd | Pipelined data processing apparatus |
| JPH0766329B2 (ja) * | 1985-06-14 | 1995-07-19 | 株式会社日立製作所 | 情報処理装置 |
| US5051940A (en) * | 1990-04-04 | 1991-09-24 | International Business Machines Corporation | Data dependency collapsing hardware apparatus |
| US4851990A (en) * | 1987-02-09 | 1989-07-25 | Advanced Micro Devices, Inc. | High performance processor interface between a single chip processor and off chip memory means having a dedicated and shared bus structure |
| EP0312764A3 (en) * | 1987-10-19 | 1991-04-10 | International Business Machines Corporation | A data processor having multiple execution units for processing plural classes of instructions in parallel |
| US5067069A (en) * | 1989-02-03 | 1991-11-19 | Digital Equipment Corporation | Control of multiple functional units with parallel operation in a microcoded execution unit |
| US5123108A (en) * | 1989-09-11 | 1992-06-16 | Wang Laboratories, Inc. | Improved cpu pipeline having register file bypass and working register bypass on update/access address compare |
| US5222240A (en) * | 1990-02-14 | 1993-06-22 | Intel Corporation | Method and apparatus for delaying writing back the results of instructions to a processor |
| US5333284A (en) * | 1990-09-10 | 1994-07-26 | Honeywell, Inc. | Repeated ALU in pipelined processor design |
-
1991
- 1991-04-30 JP JP3099132A patent/JP2693651B2/ja not_active Expired - Fee Related
-
1992
- 1992-04-22 KR KR1019920006751A patent/KR950012120B1/ko not_active Expired - Lifetime
-
1994
- 1994-08-19 US US08/293,164 patent/US5467476A/en not_active Expired - Lifetime
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01231126A (ja) * | 1988-03-11 | 1989-09-14 | Oki Electric Ind Co Ltd | 情報処理装置 |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04367936A (ja) * | 1991-06-17 | 1992-12-21 | Mitsubishi Electric Corp | スーパースカラープロセッサ |
| KR100346515B1 (ko) * | 1993-11-17 | 2002-11-30 | 썬 마이크로시스템즈, 인코포레이티드 | 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일 |
| JPH08272611A (ja) * | 1995-03-31 | 1996-10-18 | Nec Corp | マイクロプロセッサ |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2693651B2 (ja) | 1997-12-24 |
| KR950012120B1 (ko) | 1995-10-14 |
| US5467476A (en) | 1995-11-14 |
| KR920020315A (ko) | 1992-11-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH04328637A (ja) | 並列プロセッサー | |
| US6115808A (en) | Method and apparatus for performing predicate hazard detection | |
| US6374346B1 (en) | Processor with conditional execution of every instruction | |
| US7590829B2 (en) | Extension adapter | |
| US10678541B2 (en) | Processors having fully-connected interconnects shared by vector conflict instructions and permute instructions | |
| CN107533460B (zh) | 紧缩有限冲激响应(fir)滤波处理器、方法、系统和指令 | |
| JPH04313121A (ja) | インストラクションメモリ装置 | |
| KR20040016829A (ko) | 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템 | |
| JP2010532063A (ja) | 条件命令を無条件命令および選択命令へと拡張する方法およびシステム | |
| US4541045A (en) | Microprocessor architecture employing efficient operand and instruction addressing | |
| US20090106533A1 (en) | Data processing apparatus | |
| US20210089305A1 (en) | Instruction executing method and apparatus | |
| US6023751A (en) | Computer system and method for evaluating predicates and Boolean expressions | |
| US11830547B2 (en) | Reduced instruction set processor based on memristor | |
| US7047396B1 (en) | Fixed length memory to memory arithmetic and architecture for a communications embedded processor system | |
| Abnous et al. | Design and implementation of the ‘Tiny RISC’microprocessor | |
| US20030014614A1 (en) | Bypass circuitry for use in a pipelined processor | |
| US11500644B2 (en) | Custom instruction implemented finite state machine engines for extensible processors | |
| Kitahara et al. | The GMICRO/300 32-bit microprocessor | |
| JPH03271829A (ja) | 情報処理装置 | |
| US20090063821A1 (en) | Processor apparatus including operation controller provided between decode stage and execute stage | |
| Subhashini et al. | FPGA-Based 128-Bit RISC Processor Using Pipelining | |
| CN114365110B (zh) | 重复使用相邻simd单元用于快速宽结果生成 | |
| KR19990072267A (ko) | 부동소수점상태및제어레지스터인스트럭션을단일사이클내에직접실행하는방법및시스템 | |
| Boddu et al. | A Survey on Effective Implementation of Control Scheme in Processors |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070905 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080905 Year of fee payment: 11 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080905 Year of fee payment: 11 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090905 Year of fee payment: 12 |
|
| LAPS | Cancellation because of no payment of annual fees |