JP2693651B2 - 並列プロセッサー - Google Patents
並列プロセッサーInfo
- Publication number
- JP2693651B2 JP2693651B2 JP3099132A JP9913291A JP2693651B2 JP 2693651 B2 JP2693651 B2 JP 2693651B2 JP 3099132 A JP3099132 A JP 3099132A JP 9913291 A JP9913291 A JP 9913291A JP 2693651 B2 JP2693651 B2 JP 2693651B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- instruction
- storage means
- circuit
- output
- 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.)
- Expired - Fee Related
Links
- 238000013500 data storage Methods 0.000 claims description 20
- 238000000034 method Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 5
- 230000004913 activation Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 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
-
- 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
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)
Description
【0001】
【産業上の利用分野】本発明は、RISC(縮小命令セ
ットコンピュータ)型のマイクロプロセッサーに係り、
特にスーパースケーラー(Superscalar )方式を使って
複数の命令を並列処理する並列プロセッサーに関する。
ットコンピュータ)型のマイクロプロセッサーに係り、
特にスーパースケーラー(Superscalar )方式を使って
複数の命令を並列処理する並列プロセッサーに関する。
【0002】
【従来の技術】従来、データプロセッサーの処理方式
は、一命令を順次処理するSISD(Single Instructi
on Single Data)が主流であった。そして、プロセッサ
ーの性能向上の要求に対しては、まずは、取り扱うデー
タ幅の拡大、動作周波数の向上により対応し、さらに、
処理自体をいくつかのセクションに分けて複数のデータ
を同時に処理するパイプライン方式や、浮動小数点演算
などの特殊処理専用のハードウェアの追加により対応し
てきた。
は、一命令を順次処理するSISD(Single Instructi
on Single Data)が主流であった。そして、プロセッサ
ーの性能向上の要求に対しては、まずは、取り扱うデー
タ幅の拡大、動作周波数の向上により対応し、さらに、
処理自体をいくつかのセクションに分けて複数のデータ
を同時に処理するパイプライン方式や、浮動小数点演算
などの特殊処理専用のハードウェアの追加により対応し
てきた。
【0003】図5は、演算ユニットを1組しか持たない
従来のパイプラインプロセッサーを示している。ここ
で、51はレジスタファイル、RPはレジスタファイル
51のリードポート、WPはレジスタファイル51のラ
イトポート、52は算術論理演算器(ALU)、531
および532は2入力セレクタ回路、54a〜54dは
フリップフロップ回路、55a〜55cおよび56a〜
56cはトライステートバッファ回路、17は命令デコ
ーダである。
従来のパイプラインプロセッサーを示している。ここ
で、51はレジスタファイル、RPはレジスタファイル
51のリードポート、WPはレジスタファイル51のラ
イトポート、52は算術論理演算器(ALU)、531
および532は2入力セレクタ回路、54a〜54dは
フリップフロップ回路、55a〜55cおよび56a〜
56cはトライステートバッファ回路、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-instruction struction Multi
ple-data stream )方式が有効である。これは、複数の
演算処理装置を備え、これらを同時に働かす方式であ
り、同一の演算器のアレイを有するアレイプロセッサー
とか、相異なる演算器を複数組有し、複数のパイプライ
ンを持つスーパースケーラー方式の並列プロセッサーな
どがある。
する要求に対しては、複数の命令を同時(並列)に実行
するMIMD(Multiple-instruction struction Multi
ple-data 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】
【課題を解決するための手段】本発明は、第1、第2、
第3及び第4リードポート及び第1、第2ライトポート
を有するレジスタファイルと、上記第1、第2、第3及
び第4リードポートにそれぞれ接続された第1、第2、
第3及び第4データラインと、第5、第6、第7及び第
8データラインと、上記第1及び第5データラインから
いずれか一方のデータラインを選択する第1セレクタ回
路と、上記第2及び第6データラインからいずれか一方
のデータラインを選択する第2セレクタ回路と、上記第
1及び第2セレクタ回路それぞれで選択されたデータラ
イン上のデータが供給され、両データ間で算術論理演算
を実行する第1演算器と、上記第1演算器の出力を格納
する第1データ格納手段と、上記第1データ格納手段の
出力を格納し、出力が上記レジスタファイルの第1ライ
トポートに接続された第2データ格納手段と、上記第3
及び第7データラインからいずれか一方のデータライン
を選択する第3セレクタ回路と、上記第4及び第8デー
タラインからいずれか一方のデータラインを選択する第
4セレクタ回路と、上記第3及び第4セレクタ回路それ
ぞれで選択されたデータライン上のデータが供給され、
両データ間で算術論理演算を実行する第2演算器と、上
記第2演算器の出力を格納する第3データ格納手段と、
上記第3データ格納手段の出力を格納し、出力が上記レ
ジスタファイルの第2ライトポートに接続された第4デ
ータ格納手段と、上記第1演算器の出力と上記第5、第
6、第7及び第8データラインそれぞれとの間に接続さ
れた複数の第1バイパス回路と、上記第1データ格納手
段と上記第5、第6、第7及び第8データラインそれぞ
れとの間に接続された複数の第2バイパス回路と、上記
第2データ格納手段と上記第5、第6、第7及び第8デ
ータラインそれぞれとの間に接続された複数の第3バイ
パス回路と、上記第2演算器の出力と上記第5、第6、
第7及び第8データラインそれぞれとの間に接続された
複数の第4バイパス回路と、上記第3データ格納手段と
上記第5、第6、第7及び第8データラインそれぞれと
の間に接続された複数の第5バイパス回路と、上記第4
データ格納手段と上記第5、第6、第7及び第8データ
ラインそれぞれとの間に接続された複数の第6バイパス
回路とを具備することを特徴とする。
第3及び第4リードポート及び第1、第2ライトポート
を有するレジスタファイルと、上記第1、第2、第3及
び第4リードポートにそれぞれ接続された第1、第2、
第3及び第4データラインと、第5、第6、第7及び第
8データラインと、上記第1及び第5データラインから
いずれか一方のデータラインを選択する第1セレクタ回
路と、上記第2及び第6データラインからいずれか一方
のデータラインを選択する第2セレクタ回路と、上記第
1及び第2セレクタ回路それぞれで選択されたデータラ
イン上のデータが供給され、両データ間で算術論理演算
を実行する第1演算器と、上記第1演算器の出力を格納
する第1データ格納手段と、上記第1データ格納手段の
出力を格納し、出力が上記レジスタファイルの第1ライ
トポートに接続された第2データ格納手段と、上記第3
及び第7データラインからいずれか一方のデータライン
を選択する第3セレクタ回路と、上記第4及び第8デー
タラインからいずれか一方のデータラインを選択する第
4セレクタ回路と、上記第3及び第4セレクタ回路それ
ぞれで選択されたデータライン上のデータが供給され、
両データ間で算術論理演算を実行する第2演算器と、上
記第2演算器の出力を格納する第3データ格納手段と、
上記第3データ格納手段の出力を格納し、出力が上記レ
ジスタファイルの第2ライトポートに接続された第4デ
ータ格納手段と、上記第1演算器の出力と上記第5、第
6、第7及び第8データラインそれぞれとの間に接続さ
れた複数の第1バイパス回路と、上記第1データ格納手
段と上記第5、第6、第7及び第8データラインそれぞ
れとの間に接続された複数の第2バイパス回路と、上記
第2データ格納手段と上記第5、第6、第7及び第8デ
ータラインそれぞれとの間に接続された複数の第3バイ
パス回路と、上記第2演算器の出力と上記第5、第6、
第7及び第8データラインそれぞれとの間に接続された
複数の第4バイパス回路と、上記第3データ格納手段と
上記第5、第6、第7及び第8データラインそれぞれと
の間に接続された複数の第5バイパス回路と、上記第4
データ格納手段と上記第5、第6、第7及び第8データ
ラインそれぞれとの間に接続された複数の第6バイパス
回路とを具備することを特徴とする。
【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、第2、第
3、第4、第5及び第6バイパス回路)のうちの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、第2、第
3、第4、第5及び第6バイパス回路)のうちの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に対して、ALU
121で$1+$2の加算を実行してその結果をフリッ
プフロップ回路141cに格納し、命令2に対して、A
LU122で$4+$5の加算を実行してその結果をフ
リップフロップ回路142cに格納する。この場合、こ
れらの演算結果をレジスタファイル11に書込まない。
また、命令3に対して、上記ALU121の演算結果$
3をトライステートバッファ回路151aおよび2入力
セレクタ回路131aを介して前記フリップフロップ回
路141aにオペランドとして格納すると共に、前記A
LU122の演算結果$6をトライステートバッファ回
路162dおよび2入力セレクタ回路131bを介して
前記フリップフロップ回路141bにオペランドとして
格納する。
121で$1+$2の加算を実行してその結果をフリッ
プフロップ回路141cに格納し、命令2に対して、A
LU122で$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に対して、前記フリップフロップ回路142
cに格納されている演算結果$6をフリップフロップ回
路142dに転送する。
フリップフロップ回路141cに格納されている命令1
の演算結果$3をフリップフロップ回路141dに転送
し、命令2に対して、前記フリップフロップ回路142
cに格納されている演算結果$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 (2)
- 【請求項1】 第1、第2、第3及び第4リードポート
及び第1、第2ライトポートを有するレジスタファイル
と、 上記第1、第2、第3及び第4リードポートにそれぞれ
接続された第1、第2、第3及び第4データラインと、 第5、第6、第7及び第8データラインと、 上記第1及び第5データラインからいずれか一方のデー
タラインを選択する第1セレクタ回路と、 上記第2及び第6データラインからいずれか一方のデー
タラインを選択する第2セレクタ回路と、 上記第1及び第2セレクタ回路それぞれで選択されたデ
ータライン上のデータが供給され、両データ間で算術論
理演算を実行する第1演算器と、 上記第1演算器の出力を格納する第1データ格納手段
と、 上記第1データ格納手段の出力を格納し、出力が上記レ
ジスタファイルの第1ライトポートに接続された第2デ
ータ格納手段と、上記第3及び第7データラインからいずれか一方のデー
タラインを選択する第3セレクタ回路と、 上記第4及び第8データラインからいずれか一方のデー
タラインを選択する第4セレクタ回路と、 上記第3及び第4セレクタ回路それぞれで選択されたデ
ータライン上のデータが供給され、両データ間で算術論
理演算を実行する第2演算器と、 上記第2演算器の出力を格納する第3データ格納手段
と、 上記第3データ格納手段の出力を格納し、出力が上記レ
ジスタファイルの第2ライトポートに接続された第4デ
ータ格納手段と、 上記第1演算器の出力と上記第5、第6、第7及び第8
データラインそれぞれとの間に接続された複数の第1バ
イパス回路と、 上記第1データ格納手段と上記第5、第6、第7及び第
8データラインそれぞれとの間に接続された複数の第2
バイパス回路と、 上記第2データ格納手段と上記第5、第6、第7及び第
8データラインそれぞれとの間に接続された複数の第3
バイパス回路と、 上記第2演算器の出力と上記第5、第6、第7及び第8
データラインそれぞれとの間に接続された複数の第4バ
イパス回路と、 上記第3データ格納手段と上記第5、第6、第7及び第
8データラインそれぞれとの間に接続された複数の第5
バイパス回路と、 上記第4データ格納手段と上記第5、第6、第7及び第
8データラインそれぞれとの間に接続された複数の第6
バイパス回路とを具備することを特徴とする並列プロセ
ッサー。 - 【請求項2】 請求項1記載の並列プロセッサーにおい
て、前記第1、第2、第3、第4、第5及び第6バイパ
ス回路のそれぞれがトライステートバッファ回路で構成
されていることを特徴とする並列プロセッサー。
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 JPH04328637A (ja) | 1992-11-17 |
JP2693651B2 true 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) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04367936A (ja) * | 1991-06-17 | 1992-12-21 | Mitsubishi Electric Corp | スーパースカラープロセッサ |
US6128721A (en) * | 1993-11-17 | 2000-10-03 | Sun Microsystems, Inc. | Temporary pipeline register file for a superpipelined superscalar processor |
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 |
JP2636789B2 (ja) * | 1995-03-31 | 1997-07-30 | 日本電気株式会社 | マイクロプロセッサ |
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 |
US7114056B2 (en) | 1998-12-03 | 2006-09-26 | Sun Microsystems, Inc. | Local and global register partitioning in a VLIW processor |
US6615338B1 (en) | 1998-12-03 | 2003-09-02 | Sun Microsystems, Inc. | Clustered architecture in a VLIW processor |
US7117342B2 (en) * | 1998-12-03 | 2006-10-03 | Sun Microsystems, Inc. | Implicitly derived register specifiers in a 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 |
Family Cites Families (13)
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 |
JPH01231126A (ja) * | 1988-03-11 | 1989-09-14 | Oki Electric Ind Co Ltd | 情報処理装置 |
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 IP Right Cessation
-
1994
- 1994-08-19 US US08/293,164 patent/US5467476A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
KR920020315A (ko) | 1992-11-21 |
KR950012120B1 (ko) | 1995-10-14 |
US5467476A (en) | 1995-11-14 |
JPH04328637A (ja) | 1992-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2693651B2 (ja) | 並列プロセッサー | |
US6374346B1 (en) | Processor with conditional execution of every instruction | |
Cota et al. | An analysis of accelerator coupling in heterogeneous architectures | |
US7028170B2 (en) | Processing architecture having a compare capability | |
EP2483787B1 (en) | Efficient predicated execution for parallel processors | |
USH1291H (en) | Microprocessor in which multiple instructions are executed in one clock cycle by providing separate machine bus access to a register file for different types of instructions | |
US10678541B2 (en) | Processors having fully-connected interconnects shared by vector conflict instructions and permute instructions | |
JP2002512399A (ja) | 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ | |
EP0473420A2 (en) | Virtual long instruction word memory architecture for digital signal processor | |
JP2001256105A (ja) | 非整列循環アドレス指定を用いるマイクロプロセッサ | |
KR20040016829A (ko) | 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템 | |
KR20150141999A (ko) | 패킹된 데이터 요소 프리디케이션 프로세서들, 방법들, 시스템들, 및 명령어들 | |
JPH05100948A (ja) | 2乗演算を実行する速度改良型データ処理システム及びその方法 | |
US6023751A (en) | Computer system and method for evaluating predicates and Boolean expressions | |
US11830547B2 (en) | Reduced instruction set processor based on memristor | |
JPH07152560A (ja) | スーパーパイプライン式スーパースカラーマイクロプロセッサ用のマイクロコントロールユニット | |
Abnous et al. | Design and implementation of the ‘Tiny RISC’microprocessor | |
US6356995B2 (en) | Microcode scalable processor | |
Gokulan et al. | Design of a 32-bit, dual pipeline superscalar RISC-V processor on FPGA | |
KR20230077251A (ko) | 벡터 연산을 위한 데이터 처리 방법 및 장치 | |
CN113986354A (zh) | 基于risc-v指令集的六级流水线cpu | |
Kitahara et al. | The GMICRO/300 32-bit microprocessor | |
Patel et al. | Architectural features of the i860-microprocessor RISC core and on-chip caches | |
Shimamura et al. | A superscalar RISC processor with pseudo vector processing feature | |
Lu et al. | Design of adjacent interconnect processor based on RISC-V |
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 |