JPH04328636A - 並列プロセッサーの命令分配処理装置 - Google Patents
並列プロセッサーの命令分配処理装置Info
- Publication number
- JPH04328636A JPH04328636A JP3099131A JP9913191A JPH04328636A JP H04328636 A JPH04328636 A JP H04328636A JP 3099131 A JP3099131 A JP 3099131A JP 9913191 A JP9913191 A JP 9913191A JP H04328636 A JPH04328636 A JP H04328636A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- parallel
- instruction distribution
- processing device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、RISC(縮小命令セ
ットコンピュータ)型のマイクロプロセッサーに係り、
特に複数の命令を並列処理するスーパースケーラー(S
uperscalar )方式の並列プロセッサーにお
ける並列実行制御のための命令分配供給を行う命令分配
処理装置に関する。
ットコンピュータ)型のマイクロプロセッサーに係り、
特に複数の命令を並列処理するスーパースケーラー(S
uperscalar )方式の並列プロセッサーにお
ける並列実行制御のための命令分配供給を行う命令分配
処理装置に関する。
【0002】
【従来の技術】従来、データプロセッサーの処理方式は
、一命令を順次処理するSISD(Single In
struction Single Data)が主流
であった。そして、プロセッサーの性能向上の要求に対
しては、まずは、取り扱うデータ幅の拡大、動作周波数
の向上により対応し、さらに、処理自体をいくつかのセ
クションに分けて複数のデータを同時に処理するパイプ
ライン方式や、浮動小数点演算などの特殊処理専用のハ
ードウェアの追加により対応してきた。
、一命令を順次処理するSISD(Single In
struction Single Data)が主流
であった。そして、プロセッサーの性能向上の要求に対
しては、まずは、取り扱うデータ幅の拡大、動作周波数
の向上により対応し、さらに、処理自体をいくつかのセ
クションに分けて複数のデータを同時に処理するパイプ
ライン方式や、浮動小数点演算などの特殊処理専用のハ
ードウェアの追加により対応してきた。
【0003】一方、プロセッサーの一層の性能向上に対
する要求に対しては、複数の命令を同時(並列)に実行
するMIMD(Multiple−instructi
on struction Multiple−dat
a stream )方式が有効である。これは、複数
の演算処理装置を備え、これらを同時に働かす方式であ
り、同一の演算器のアレイを有するアレイプロセッサー
とか、相異なる演算器を複数組有し、複数のパイプライ
ンを持つスーパースケーラー方式の並列プロセッサーな
どがある。
する要求に対しては、複数の命令を同時(並列)に実行
するMIMD(Multiple−instructi
on struction Multiple−dat
a stream )方式が有効である。これは、複数
の演算処理装置を備え、これらを同時に働かす方式であ
り、同一の演算器のアレイを有するアレイプロセッサー
とか、相異なる演算器を複数組有し、複数のパイプライ
ンを持つスーパースケーラー方式の並列プロセッサーな
どがある。
【0004】前者のアレイプロセッサーは、一般のデー
タ処理への応用が難しいので応用分野が限られる。これ
に対して、スーパースケーラー方式の並列プロセッサー
は、その制御方式が従来のプロセッサーの制御方式の拡
張に相当するものとしてとらえることができるので、一
般のデータ処理への応用が比較的簡単である。
タ処理への応用が難しいので応用分野が限られる。これ
に対して、スーパースケーラー方式の並列プロセッサー
は、その制御方式が従来のプロセッサーの制御方式の拡
張に相当するものとしてとらえることができるので、一
般のデータ処理への応用が比較的簡単である。
【0005】スーパースケーラー方式の並列プロセッサ
ーは、複数組の演算器を同時に働かせることにより1ク
ロック(サイクル)の間に複数の命令を並列に実行する
。この場合、命令の処理は、複数の命令を同時にフェッ
チ/デコードし、これを演算器で実行するので、従来の
プロセッサーに比べて高い処理能力を発揮する。
ーは、複数組の演算器を同時に働かせることにより1ク
ロック(サイクル)の間に複数の命令を並列に実行する
。この場合、命令の処理は、複数の命令を同時にフェッ
チ/デコードし、これを演算器で実行するので、従来の
プロセッサーに比べて高い処理能力を発揮する。
【0006】このスーパースケーラー方式の並列プロセ
ッサーの具体例としては、2個の整数演算ユニットに1
個の浮動小数点演算ユニットを付加し、整数演算命令(
通常のプロセッサーの命令)2つ、あるいは整数演算命
令1つと浮動小数点演算命令1つとの合計2命令を並列
実行するもの(1991 IEEE ISSCC Di
gest of TECHNICAL Paper p
p.100〜101 ,「A 100MIPS,64b
Superscalar Microprocess
or with DSP Enhancements」
by Ran Talmudi et al )等が
ある。
ッサーの具体例としては、2個の整数演算ユニットに1
個の浮動小数点演算ユニットを付加し、整数演算命令(
通常のプロセッサーの命令)2つ、あるいは整数演算命
令1つと浮動小数点演算命令1つとの合計2命令を並列
実行するもの(1991 IEEE ISSCC Di
gest of TECHNICAL Paper p
p.100〜101 ,「A 100MIPS,64b
Superscalar Microprocess
or with DSP Enhancements」
by Ran Talmudi et al )等が
ある。
【0007】ところで、スーパースケーラー方式の並列
プロセッサーは、同時に演算可能な演算器の数により命
令実行の並列度が制限される。また、従来のプロセッサ
ーにおける演算器は、命令列から1命令づつ順番に処理
したのに対して、スーパースケーラー方式における並列
実行の処理は、命令列からN命令づつ順番に処理してい
るだけであり、その制御方式は従来のプロセッサーの制
御方式の拡張に相当し、従来のプロセッサー用のプログ
ラム自体を書換えることなく使用できる。
プロセッサーは、同時に演算可能な演算器の数により命
令実行の並列度が制限される。また、従来のプロセッサ
ーにおける演算器は、命令列から1命令づつ順番に処理
したのに対して、スーパースケーラー方式における並列
実行の処理は、命令列からN命令づつ順番に処理してい
るだけであり、その制御方式は従来のプロセッサーの制
御方式の拡張に相当し、従来のプロセッサー用のプログ
ラム自体を書換えることなく使用できる。
【0008】換言すれば、スーパースケーラー方式の並
列プロセッサーは、演算器単位で従来と同様の命令デコ
ーダを用意し、これに並列実行制御機能を付加すること
により実現できる。この並列実行制御機能の役割は、命
令の並列実行の可能性の調査(以下、依存解析と記す)
と、並列実行可能な命令の各演算器への割振りである。 この中でも、特に依存解析の結果に基づいて適切な命令
を適切な演算器に分配する命令分配処理機能が肝要であ
る。
列プロセッサーは、演算器単位で従来と同様の命令デコ
ーダを用意し、これに並列実行制御機能を付加すること
により実現できる。この並列実行制御機能の役割は、命
令の並列実行の可能性の調査(以下、依存解析と記す)
と、並列実行可能な命令の各演算器への割振りである。 この中でも、特に依存解析の結果に基づいて適切な命令
を適切な演算器に分配する命令分配処理機能が肝要であ
る。
【0009】ここで、命令分配処理機能の必要性につい
て述べておく。スーパースケーラー方式の並列プロセッ
サーにおける並列実行制御方式は、最大N(N>1)個
の命令を並列実行できる場合でも、常にN個の命令を並
列実行できるわけではない。即ち、用意された演算器の
種類と命令で使う演算器との不一致があるので、命令に
対して演算器が不足した場合には当然ながら全命令(N
個)を並列実行することはできない(リソースコンフリ
クトと言う)。
て述べておく。スーパースケーラー方式の並列プロセッ
サーにおける並列実行制御方式は、最大N(N>1)個
の命令を並列実行できる場合でも、常にN個の命令を並
列実行できるわけではない。即ち、用意された演算器の
種類と命令で使う演算器との不一致があるので、命令に
対して演算器が不足した場合には当然ながら全命令(N
個)を並列実行することはできない(リソースコンフリ
クトと言う)。
【0010】また、命令に対して演算器が足りていても
、演算で用いるデータが同時に実行している隣りの命令
によって作られる場合には、データが作られるまでは実
行できない(データコンフリクトと言う)。このデータ
コンフリクトの場合は、リソースコンフリクトの場合と
は異なり、実行前に調べることが難しいので、命令を一
旦供給した後に命令の実行を中止するという制御を行う
。
、演算で用いるデータが同時に実行している隣りの命令
によって作られる場合には、データが作られるまでは実
行できない(データコンフリクトと言う)。このデータ
コンフリクトの場合は、リソースコンフリクトの場合と
は異なり、実行前に調べることが難しいので、命令を一
旦供給した後に命令の実行を中止するという制御を行う
。
【0011】また、ある命令が、リソースコンフリクト
またはデータコンフリクトのいずれかの理由により実行
できなかった場合には、その命令より順序が後であって
、かつ、同時に分配される命令も、同時実行することが
できない。
またはデータコンフリクトのいずれかの理由により実行
できなかった場合には、その命令より順序が後であって
、かつ、同時に分配される命令も、同時実行することが
できない。
【0012】そこで、N個の命令のうちで同時に実行で
きない命令が存在する場合には、まず、実行できる命令
を全て実行した後に残りの命令を実行するという制御を
行う。即ち、N個の命令間の依存解析を行い、この結果
、i(i≦N)番目の命令が同時実行不可能であると、
まず、(i−1)番目の命令まで実行し、この後、残り
の(N−i+1)個の命令に対して再び依存解析を行い
、残りの命令を実行する。そして、N個の命令全ての実
行が終了したら、新たに次のN個の命令の実行に移る。
きない命令が存在する場合には、まず、実行できる命令
を全て実行した後に残りの命令を実行するという制御を
行う。即ち、N個の命令間の依存解析を行い、この結果
、i(i≦N)番目の命令が同時実行不可能であると、
まず、(i−1)番目の命令まで実行し、この後、残り
の(N−i+1)個の命令に対して再び依存解析を行い
、残りの命令を実行する。そして、N個の命令全ての実
行が終了したら、新たに次のN個の命令の実行に移る。
【0013】
【発明が解決しようとする課題】本発明は上記の事情に
鑑みてなされたもので、簡単な構成で並列実行制御のた
めの命令分配供給を効率的に行い得る並列プロセッサー
の命令分配処理装置を提供することを目的とする。
鑑みてなされたもので、簡単な構成で並列実行制御のた
めの命令分配供給を効率的に行い得る並列プロセッサー
の命令分配処理装置を提供することを目的とする。
【0014】また、本発明は、命令分配開始位置格納動
作およびリソースコンフリクト調査結果から命令分配許
可信号を生成する動作を高速化し得る並列プロセッサー
の命令分配処理装置を提供することを目的とする。
作およびリソースコンフリクト調査結果から命令分配許
可信号を生成する動作を高速化し得る並列プロセッサー
の命令分配処理装置を提供することを目的とする。
【0015】
【課題を解決するための手段】本発明は、最大N(N>
1)個の命令を並列実行できるように構成された複数の
パイプラインを持つスーパースケーラー方式の並列プロ
セッサーにおける並列実行制御のための命令分配供給を
行う命令分配処理装置において、前記N個の命令のうち
のどの命令から分配を開始するかを示す命令分配開始位
置ポインタと、この命令分配開始位置ポインタの内容と
リソースコンフリクトを調べる依存解析の結果に基づい
て命令実行用演算器への命令/供給の可否を決定するた
めの信号を生成する命令分配許可信号生成回路と、上記
命令分配許可信号とデータコンフリクトを調べる依存解
析の結果に基づいて前記N個の命令のうちのどこまで命
令実行が終了したかを示すためのフラグを生成し、この
フラグの内容に応じて前記命令分配開始位置ポインタの
内容が次回の命令実行に際しての命令開始位置を示すよ
うに更新する更新回路とを具備することを特徴とする。
1)個の命令を並列実行できるように構成された複数の
パイプラインを持つスーパースケーラー方式の並列プロ
セッサーにおける並列実行制御のための命令分配供給を
行う命令分配処理装置において、前記N個の命令のうち
のどの命令から分配を開始するかを示す命令分配開始位
置ポインタと、この命令分配開始位置ポインタの内容と
リソースコンフリクトを調べる依存解析の結果に基づい
て命令実行用演算器への命令/供給の可否を決定するた
めの信号を生成する命令分配許可信号生成回路と、上記
命令分配許可信号とデータコンフリクトを調べる依存解
析の結果に基づいて前記N個の命令のうちのどこまで命
令実行が終了したかを示すためのフラグを生成し、この
フラグの内容に応じて前記命令分配開始位置ポインタの
内容が次回の命令実行に際しての命令開始位置を示すよ
うに更新する更新回路とを具備することを特徴とする。
【0016】
【作用】上記命令分配処理装置は、命令分配開始位置ポ
インタと、命令分配許可信号生成回路と、更新回路とを
具備する簡単な構成でありながら、並列実行制御のため
の命令分配供給を効率的に行うことができる。
インタと、命令分配許可信号生成回路と、更新回路とを
具備する簡単な構成でありながら、並列実行制御のため
の命令分配供給を効率的に行うことができる。
【0017】なお、命令分配開始位置ポインタを並列実
行できる命令の数だけ揃えてデコード動作の時間を省略
するようにすれば、命令分配開始位置格納動作を高速化
できる。さらに、リソースコンフリクト調査結果から命
令分配許可信号を生成する回路にキャリー信号先見回路
を用いれば、信号生成動作を高速化できる。
行できる命令の数だけ揃えてデコード動作の時間を省略
するようにすれば、命令分配開始位置格納動作を高速化
できる。さらに、リソースコンフリクト調査結果から命
令分配許可信号を生成する回路にキャリー信号先見回路
を用いれば、信号生成動作を高速化できる。
【0018】
【実施例】以下、図面を参照して本発明の一実施例を詳
細に説明する。
細に説明する。
【0019】図1は、スーパースケーラー方式の並列プ
ロセッサーにおける並列実行制御のための命令分配供給
を行う命令分配処理装置の基本構成例を示している。こ
の並列プロセッサーは、相異なる演算器(図示せず)を
複数組有し、演算器単位で命令デコーダ(図示せず)を
有し、命令の並列実行の可能性の調査(依存解析)およ
び並列実行可能な命令の各演算器への割振りを行う並列
実行制御機能を有し、前記各演算器を同時に働かせるこ
とにより1クロックの間に最大N(N>1)個の命令を
並列に実行できるように構成された複数のパイプライン
(図示せず)を持っている。
ロセッサーにおける並列実行制御のための命令分配供給
を行う命令分配処理装置の基本構成例を示している。こ
の並列プロセッサーは、相異なる演算器(図示せず)を
複数組有し、演算器単位で命令デコーダ(図示せず)を
有し、命令の並列実行の可能性の調査(依存解析)およ
び並列実行可能な命令の各演算器への割振りを行う並列
実行制御機能を有し、前記各演算器を同時に働かせるこ
とにより1クロックの間に最大N(N>1)個の命令を
並列に実行できるように構成された複数のパイプライン
(図示せず)を持っている。
【0020】10は並列に実行する命令数Nに対応する
だけのビット幅を持ち、N個の命令のうちのどの命令か
ら分配を開始するかを示す記憶装置(例えばN個の命令
分配開始位置ポインタ用レジスタ、以下、命令ポインタ
と記す)である。11は上記命令ポインタ10の内容と
前記命令数に応じた少なくとも1本以上の第1の入力信
号(リソースコンフリクトを調べる依存解析の結果)と
から前記命令数と同数の出力信号(命令実行用演算器へ
の命令の分配/供給の可否を決定するための命令分配許
可信号)を生成し、実際に命令を取り扱うスイッチ回路
(図示せず)へ供給する第1の演算回路(以下、命令分
配許可信号生成回路と記す)である。
だけのビット幅を持ち、N個の命令のうちのどの命令か
ら分配を開始するかを示す記憶装置(例えばN個の命令
分配開始位置ポインタ用レジスタ、以下、命令ポインタ
と記す)である。11は上記命令ポインタ10の内容と
前記命令数に応じた少なくとも1本以上の第1の入力信
号(リソースコンフリクトを調べる依存解析の結果)と
から前記命令数と同数の出力信号(命令実行用演算器へ
の命令の分配/供給の可否を決定するための命令分配許
可信号)を生成し、実際に命令を取り扱うスイッチ回路
(図示せず)へ供給する第1の演算回路(以下、命令分
配許可信号生成回路と記す)である。
【0021】12は上記命令分配許可信号と少なくとも
2本以上の第2の入力信号(データコンフリクトを調べ
る依存解析の結果)とから前記N個の命令のうちのどこ
まで命令実行が終了したかを示すための情報(フラグ)
を生成し、このフラグの内容に応じて前記命令ポインタ
10の内容が次回の命令実行に際しての命令開始位置を
示すように更新する第2の演算回路(以下、命令ポイン
タ更新回路)である。
2本以上の第2の入力信号(データコンフリクトを調べ
る依存解析の結果)とから前記N個の命令のうちのどこ
まで命令実行が終了したかを示すための情報(フラグ)
を生成し、このフラグの内容に応じて前記命令ポインタ
10の内容が次回の命令実行に際しての命令開始位置を
示すように更新する第2の演算回路(以下、命令ポイン
タ更新回路)である。
【0022】図2は、図1の命令分配処理装置の一実施
例(N=4の場合)を示している。4ビットの命令ポイ
ンタ201〜204の各ビットは4つの命令に対応して
おり、開始すべき命令に対応するビットに“1”が設定
され、それ以外のビットには“0”が設定されている。 従って、この命令ポインタ201〜204の内容は、(
1,0,0,0 )、(0,1,0,0 )、(0,0
,1,0 )、(0,0,0,1 )の4つの値のいず
れかである。命令分配許可信号生成回路211〜214
は、命令ポインタ201〜204の内容(出力信号g0
〜g3 )とリソースコンフリクト調査(依存解析)
の結果(f0 〜f3 )とに基づいて4つの命令のう
ちのどの命令まで分配するかを決定し、各命令に対する
命令分配許可信号(i0 〜i3 )を生成する。
例(N=4の場合)を示している。4ビットの命令ポイ
ンタ201〜204の各ビットは4つの命令に対応して
おり、開始すべき命令に対応するビットに“1”が設定
され、それ以外のビットには“0”が設定されている。 従って、この命令ポインタ201〜204の内容は、(
1,0,0,0 )、(0,1,0,0 )、(0,0
,1,0 )、(0,0,0,1 )の4つの値のいず
れかである。命令分配許可信号生成回路211〜214
は、命令ポインタ201〜204の内容(出力信号g0
〜g3 )とリソースコンフリクト調査(依存解析)
の結果(f0 〜f3 )とに基づいて4つの命令のう
ちのどの命令まで分配するかを決定し、各命令に対する
命令分配許可信号(i0 〜i3 )を生成する。
【0023】命令ポインタ更新回路221〜224は、
4つの命令の実行状況を把握する制御回路であり、命令
分配許可信号(i0 〜i3 )とデータコンフリクト
調査(依存解析)の結果(h0 〜h3 )とに基づい
て命令の実行終了状況(前記N個の命令のうちのどこま
で命令実行が終了したか)を把握し、この実行終了状況
を示す命令実行終了フラグ信号(j0 〜j3 )を生
成して命令ポインタ201〜204に出力する。
4つの命令の実行状況を把握する制御回路であり、命令
分配許可信号(i0 〜i3 )とデータコンフリクト
調査(依存解析)の結果(h0 〜h3 )とに基づい
て命令の実行終了状況(前記N個の命令のうちのどこま
で命令実行が終了したか)を把握し、この実行終了状況
を示す命令実行終了フラグ信号(j0 〜j3 )を生
成して命令ポインタ201〜204に出力する。
【0024】上記実施例の命令分配処理は、命令ポイン
タ201〜204と、命令分配許可信号生成回路211
〜214と、命令ポインタ更新回路221〜224とを
具備する簡単な構成でありながら、並列実行制御のため
の命令分配供給を効率的に行うことができる。即ち、あ
る命令が、リソースコンフリクトまたはデータコンフリ
クトのいずれかの理由により実行できなかった場合には
、N個の命令間の依存解析の結果、i(i≦N)番目の
命令が同時実行不可能であると、まず、(i−1)番目
の命令まで実行し、この後、残りの(N−i+1)個の
命令に対して再び依存解析を行い、残りの命令を実行す
るように制御することが可能になる。
タ201〜204と、命令分配許可信号生成回路211
〜214と、命令ポインタ更新回路221〜224とを
具備する簡単な構成でありながら、並列実行制御のため
の命令分配供給を効率的に行うことができる。即ち、あ
る命令が、リソースコンフリクトまたはデータコンフリ
クトのいずれかの理由により実行できなかった場合には
、N個の命令間の依存解析の結果、i(i≦N)番目の
命令が同時実行不可能であると、まず、(i−1)番目
の命令まで実行し、この後、残りの(N−i+1)個の
命令に対して再び依存解析を行い、残りの命令を実行す
るように制御することが可能になる。
【0025】データコンフリクトの場合には、命令を一
旦供給した後に命令の実行を中止するように制御するこ
とが可能になる。また、そして、N個の命令全ての実行
が終了したら、新たに次のN個の命令の実行に移るよう
に制御することが可能になる。
旦供給した後に命令の実行を中止するように制御するこ
とが可能になる。また、そして、N個の命令全ての実行
が終了したら、新たに次のN個の命令の実行に移るよう
に制御することが可能になる。
【0026】図3は、図1の命令分配処理装置の他の実
施例(N=4の場合)を示している。301〜304は
命令ポインタ、(l0 〜l3 )はポインタ出力、(
k1 〜k3 )はリソースコンフリクト調査結果、3
1は命令分配許可信号生成回路、(m0 〜m3 )は
命令分配許可信号、(n0 〜n3 )はデータコンフ
リクト調査結果、32はデータコンフリクト調査結果(
n0 〜n3 )から分配された命令が実行を終了した
のか中断したのかを判定する分配命令実行終了検出回路
である。(p0 〜p3 )はブランチ発生により、実
行する必要がなくなったことを命令分配処理装置に通知
する命令実行禁止信号である。
施例(N=4の場合)を示している。301〜304は
命令ポインタ、(l0 〜l3 )はポインタ出力、(
k1 〜k3 )はリソースコンフリクト調査結果、3
1は命令分配許可信号生成回路、(m0 〜m3 )は
命令分配許可信号、(n0 〜n3 )はデータコンフ
リクト調査結果、32はデータコンフリクト調査結果(
n0 〜n3 )から分配された命令が実行を終了した
のか中断したのかを判定する分配命令実行終了検出回路
である。(p0 〜p3 )はブランチ発生により、実
行する必要がなくなったことを命令分配処理装置に通知
する命令実行禁止信号である。
【0027】33は既に実行を終了している命令の情報
を生成する命令ポインタ更新回路であり、上記信号(p
0 〜p3 )を命令の実行終了の通知と同様に取り扱
う。 (r0 〜r3 )は前記命令ポインタ301〜304
の内容を更新するための命令ポインタ更新信号である。
を生成する命令ポインタ更新回路であり、上記信号(p
0 〜p3 )を命令の実行終了の通知と同様に取り扱
う。 (r0 〜r3 )は前記命令ポインタ301〜304
の内容を更新するための命令ポインタ更新信号である。
【0028】341〜343は命令の実行終了状態を示
す命令実行終了フラグレジスタである。(q0 〜q2
)は命令の実行終了状態を示す命令実行終了フラグ信
号である。
す命令実行終了フラグレジスタである。(q0 〜q2
)は命令の実行終了状態を示す命令実行終了フラグ信
号である。
【0029】この実施例では、命令ポインタ301〜3
04として、並列実行できる命令の数だけ揃えてデコー
ド動作の時間を省略し、命令分配許可信号(m0 〜m
3 )を速く生成するようにしている。また、命令分配
許可信号生成回路31として、二入力アンドゲート31
1〜316、二入力オアゲート317、三入力オアゲー
ト318および四入力オアゲート319を図示のように
接続してキャリー信号の先見回路(CLA;Carry
Look Ahead)に準じた構成の回路を用いて
おり、リソースコンフリクト調査結果(k1〜k3 )
から命令分配許可信号(m0 〜m3 )を生成する動
作の高速化を図っている。
04として、並列実行できる命令の数だけ揃えてデコー
ド動作の時間を省略し、命令分配許可信号(m0 〜m
3 )を速く生成するようにしている。また、命令分配
許可信号生成回路31として、二入力アンドゲート31
1〜316、二入力オアゲート317、三入力オアゲー
ト318および四入力オアゲート319を図示のように
接続してキャリー信号の先見回路(CLA;Carry
Look Ahead)に準じた構成の回路を用いて
おり、リソースコンフリクト調査結果(k1〜k3 )
から命令分配許可信号(m0 〜m3 )を生成する動
作の高速化を図っている。
【0030】なお、分配命令実行終了検出回路32にお
いて、321〜324は各対応してデータコンフリクト
調査結果(n0 〜n3 )が禁止入力、命令分配許可
信号(m0 〜m3 )が各対応してゲート入力となる
二入力ゲートである。また、命令ポインタ更新回路33
において、330〜332は三入力オアゲート、333
は二入力オアゲート、334は三入力ノアゲート、33
5は二入力ノアゲート、336〜337は二入力アンド
ゲート、338〜340は禁止入力を有する二入力ゲー
トである。上記図3の実施例でも、簡単な構成でありな
がら並列実行制御のための命令分配供給を効率的に行う
ことができる。
いて、321〜324は各対応してデータコンフリクト
調査結果(n0 〜n3 )が禁止入力、命令分配許可
信号(m0 〜m3 )が各対応してゲート入力となる
二入力ゲートである。また、命令ポインタ更新回路33
において、330〜332は三入力オアゲート、333
は二入力オアゲート、334は三入力ノアゲート、33
5は二入力ノアゲート、336〜337は二入力アンド
ゲート、338〜340は禁止入力を有する二入力ゲー
トである。上記図3の実施例でも、簡単な構成でありな
がら並列実行制御のための命令分配供給を効率的に行う
ことができる。
【0031】なお、上記各実施例において、命令分配処
理装置を命令実行用演算器と同じ半導体チップ上に搭載
することにより、並列プロセッサーのシステム構成を簡
単化できる。
理装置を命令実行用演算器と同じ半導体チップ上に搭載
することにより、並列プロセッサーのシステム構成を簡
単化できる。
【0032】
【発明の効果】上述したように本発明によれば、簡単な
構成で並列実行制御のための命令分配供給を効率的に行
い得る並列プロセッサーの命令分配処理装置を提供でき
る。
構成で並列実行制御のための命令分配供給を効率的に行
い得る並列プロセッサーの命令分配処理装置を提供でき
る。
【0033】また、本発明によれば、命令分配開始位置
デコード動作を省略して命令分配開始位置格納動作を高
速化し、リソースコンフリクト調査結果から命令分配許
可信号を生成する動作を高速化し得る並列プロセッサー
の命令分配処理装置を提供できる。
デコード動作を省略して命令分配開始位置格納動作を高
速化し、リソースコンフリクト調査結果から命令分配許
可信号を生成する動作を高速化し得る並列プロセッサー
の命令分配処理装置を提供できる。
【図1】本発明の並列プロセッサーの命令分配処理装置
の基本構成を示すブロック図。
の基本構成を示すブロック図。
【図2】図1の命令分配処理装置の一実施例を示すブロ
ック図。
ック図。
【図3】図1の命令分配処理装置の他の実施例を示す論
理回路図。
理回路図。
10、201〜204、301〜304…記憶装置(命
令ポインタ)、11、 211〜214、31…第1の演算回路(命令分配許可
信号生成回路)、12、 221〜224、33…第2の演算回路(命令ポインタ
更新回路)、32…分配 命令実行終了検出回路、341〜343…命令実行終了
フラグレジスタ、 (f0 〜f3 )、(k0 〜k3 )…リソースコ
ンフリクト調査結果、 (h0 〜h3 )、(n0 〜n3 )…データコン
フリクト調査結果、 (i0 〜i3 )、(m0 〜m3 )…命令分配許
可信号、(p0 〜p3 )…命令実行禁止信号、(j
0 〜j3 )、(q0 〜q3 )…命令実行終了フ
ラグ信号、 (r0 〜r3 )…ポインタ更新信号。
令ポインタ)、11、 211〜214、31…第1の演算回路(命令分配許可
信号生成回路)、12、 221〜224、33…第2の演算回路(命令ポインタ
更新回路)、32…分配 命令実行終了検出回路、341〜343…命令実行終了
フラグレジスタ、 (f0 〜f3 )、(k0 〜k3 )…リソースコ
ンフリクト調査結果、 (h0 〜h3 )、(n0 〜n3 )…データコン
フリクト調査結果、 (i0 〜i3 )、(m0 〜m3 )…命令分配許
可信号、(p0 〜p3 )…命令実行禁止信号、(j
0 〜j3 )、(q0 〜q3 )…命令実行終了フ
ラグ信号、 (r0 〜r3 )…ポインタ更新信号。
Claims (6)
- 【請求項1】 最大N(N>1)個の命令を並列実行
できるように構成された複数のパイプラインを持つスー
パースケーラー方式の並列プロセッサーにおける並列実
行制御のための命令分配供給を行う命令分配処理装置に
おいて、並列に実行する命令数に対応するだけのビット
幅を持った記憶装置と、この記憶装置の出力信号と前記
命令数に応じた少なくとも1本以上の第1の入力信号と
から前記命令数と同数の出力信号を生成する第1の演算
回路と、この第1の演算回路の出力信号と少なくとも2
本以上の第2の入力信号とから前記記憶装置の内容を更
新するための信号を生成し、この信号を前記記憶装置に
出力する第2の演算回路とを具備することを特徴とする
並列プロセッサーの命令分配処理装置。 - 【請求項2】 請求項1記載の並列プロセッサーの命
令分配処理装置において、前記記憶装置としては、前記
N個の命令のうちのどの命令から分配を開始するかを示
す命令分配開始位置ポインタ用レジスタが用いられ、前
記第1の演算回路は、上記命令分配開始位置ポインタ用
レジスタの内容とリソースコンフリクトを調べる依存解
析の結果に基づいて命令実行用演算器への命令の分配/
供給の可否を決定するための信号を生成する命令分配許
可信号生成回路が用いられ、前記第2の演算回路は、上
記命令分配許可信号とデータコンフリクトを調べる依存
解析の結果に基づいてN個の命令のうちのどこまで命令
実行が終了したかを示すための情報を生成し、この情報
に応じて前記命令分配開始位置ポインタ用レジスタの内
容が次回の命令実行に際しての命令開始位置を示すよう
に更新する更新回路が用いられていることを特徴とする
並列プロセッサーの命令分配処理装置。 - 【請求項3】 請求項1または2記載の並列プロセッ
サーの命令分配処理装置において、前記記憶装置は、並
列に実行する命令数と同数設けられていることを特徴と
する並列プロセッサーの命令分配処理装置。 - 【請求項4】 請求項1記載の並列プロセッサーの命
令分配処理装置において、前記第2の入力信号は、命令
の中断と命令の実行禁止とを示す二系統の入力信号を持
つことを特徴とする並列プロセッサーの命令分配処理装
置。 - 【請求項5】 請求項1乃至4のいずれか1項に記載
の並列プロセッサーの命令分配処理装置において、前記
第1の演算回路は、リソースコンフリクト調査結果から
命令分配許可信号を生成する回路部に先見回路を用いて
いることを特徴とする並列プロセッサーの命令分配処理
装置。 - 【請求項6】 請求項1乃至5のいずれか1項に記載
の並列プロセッサーの命令分配処理装置は、前記命令実
行用演算器と同じ半導体チップ上に搭載されていること
を特徴とする並列プロセッサーの命令分配処理装置。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3099131A JP2642529B2 (ja) | 1991-04-30 | 1991-04-30 | 並列プロセッサーの命令分配処理装置 |
| KR1019920006646A KR960001275B1 (ko) | 1991-04-30 | 1992-04-21 | 병렬프로세서의 명령분배처리장치 |
| US08/376,645 US5621910A (en) | 1991-04-30 | 1995-01-20 | System for controlling instruction distribution for use in superscalar parallel processor |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3099131A JP2642529B2 (ja) | 1991-04-30 | 1991-04-30 | 並列プロセッサーの命令分配処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04328636A true JPH04328636A (ja) | 1992-11-17 |
| JP2642529B2 JP2642529B2 (ja) | 1997-08-20 |
Family
ID=14239193
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3099131A Expired - Fee Related JP2642529B2 (ja) | 1991-04-30 | 1991-04-30 | 並列プロセッサーの命令分配処理装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5621910A (ja) |
| JP (1) | JP2642529B2 (ja) |
| KR (1) | KR960001275B1 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10510146A (ja) * | 1994-11-21 | 1998-10-06 | ザ ユニバーシティ オブ リーズ | 改変されたプロテイナーゼインヒビター |
| US5954815A (en) * | 1993-12-15 | 1999-09-21 | Silicon Graphics, Inc. | Invalidating instructions in fetched instruction blocks upon predicted two-step branch operations with second operation relative target address |
| KR100384875B1 (ko) * | 1995-12-16 | 2003-08-21 | 주식회사 하이닉스반도체 | 파이프라인구조를갖는마이크로프로세서에서의언세이프처리마이크로시퀀서 |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6560695B1 (en) * | 1995-11-16 | 2003-05-06 | International Business Machines Corporation | Dynamic pipe staging adder |
| US5809275A (en) * | 1996-03-01 | 1998-09-15 | Hewlett-Packard Company | Store-to-load hazard resolution system and method for a processor that executes instructions out of order |
| US5838942A (en) * | 1996-03-01 | 1998-11-17 | Hewlett-Packard Company | Panic trap system and method |
| JP2882475B2 (ja) * | 1996-07-12 | 1999-04-12 | 日本電気株式会社 | スレッド実行方法 |
| US6289437B1 (en) * | 1997-08-27 | 2001-09-11 | International Business Machines Corporation | Data processing system and method for implementing an efficient out-of-order issue mechanism |
| US6862732B1 (en) | 1998-02-25 | 2005-03-01 | Metaserver, Inc. | Method and apparatus for event-driven processing of data |
| US6345355B1 (en) | 1998-05-29 | 2002-02-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for distributing commands to a plurality of circuit blocks |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0335322A (ja) * | 1989-06-06 | 1991-02-15 | Advanced Micro Devicds Inc | デコーダ |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4532589A (en) * | 1981-12-02 | 1985-07-30 | Hitachi, Ltd. | Digital data processor with two operation units |
| JPH0778785B2 (ja) * | 1986-03-29 | 1995-08-23 | 株式会社東芝 | プロセッサ選択方法 |
| JPH0810430B2 (ja) * | 1986-11-28 | 1996-01-31 | 株式会社日立製作所 | 情報処理装置 |
| US5241644A (en) * | 1987-07-15 | 1993-08-31 | Nec Corporation | Queue having long word length |
| US4916652A (en) * | 1987-09-30 | 1990-04-10 | International Business Machines Corporation | Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures |
| US4935849A (en) * | 1988-05-16 | 1990-06-19 | Stardent Computer, Inc. | Chaining and hazard apparatus and method |
| US5127093A (en) * | 1989-01-17 | 1992-06-30 | Cray Research Inc. | Computer look-ahead instruction issue control |
| US5073855A (en) * | 1989-06-30 | 1991-12-17 | Bull Hn Information Systems Inc. | Resource conflict detection method and apparatus included in a pipelined processing unit |
| 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 |
| CA2038264C (en) * | 1990-06-26 | 1995-06-27 | Richard James Eickemeyer | In-memory preprocessor for a scalable compound instruction set machine processor |
-
1991
- 1991-04-30 JP JP3099131A patent/JP2642529B2/ja not_active Expired - Fee Related
-
1992
- 1992-04-21 KR KR1019920006646A patent/KR960001275B1/ko not_active Expired - Fee Related
-
1995
- 1995-01-20 US US08/376,645 patent/US5621910A/en not_active Expired - Lifetime
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0335322A (ja) * | 1989-06-06 | 1991-02-15 | Advanced Micro Devicds Inc | デコーダ |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5954815A (en) * | 1993-12-15 | 1999-09-21 | Silicon Graphics, Inc. | Invalidating instructions in fetched instruction blocks upon predicted two-step branch operations with second operation relative target address |
| US6247124B1 (en) | 1993-12-15 | 2001-06-12 | Mips Technologies, Inc. | Branch prediction entry with target line index calculated using relative position of second operation of two step branch operation in a line of instructions |
| US6691221B2 (en) | 1993-12-15 | 2004-02-10 | Mips Technologies, Inc. | Loading previously dispatched slots in multiple instruction dispatch buffer before dispatching remaining slots for parallel execution |
| JPH10510146A (ja) * | 1994-11-21 | 1998-10-06 | ザ ユニバーシティ オブ リーズ | 改変されたプロテイナーゼインヒビター |
| KR100384875B1 (ko) * | 1995-12-16 | 2003-08-21 | 주식회사 하이닉스반도체 | 파이프라인구조를갖는마이크로프로세서에서의언세이프처리마이크로시퀀서 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2642529B2 (ja) | 1997-08-20 |
| KR960001275B1 (ko) | 1996-01-25 |
| KR920020340A (ko) | 1992-11-21 |
| US5621910A (en) | 1997-04-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8423750B2 (en) | Hardware assist thread for increasing code parallelism | |
| US5471593A (en) | Computer processor with an efficient means of executing many instructions simultaneously | |
| CN100535850C (zh) | 用于在编程引擎之间传送数据的方法和装置 | |
| KR100909510B1 (ko) | 감소된 대역폭 요건들을 갖는 행렬 곱셈 | |
| EP0762270B1 (en) | Microprocessor with load/store operation to/from multiple registers | |
| US20160202986A1 (en) | Parallel slice processor having a recirculating load-store queue for fast deallocation of issue queue entries | |
| CN113986356A (zh) | 可中断和可重启矩阵乘法指令、处理器、方法和系统 | |
| CN110659115A (zh) | 具有硬件辅助任务调度的多线程处理器核 | |
| JPH02227769A (ja) | データ処理システム | |
| CN110249302A (zh) | 在处理器核上同时执行多个程序 | |
| CN110968345A (zh) | 用于数据并行单程序多数据(spmd)执行的架构和方法 | |
| JPH02226420A (ja) | 浮動小数点演算実行装置 | |
| US20030005261A1 (en) | Method and apparatus for attaching accelerator hardware containing internal state to a processing core | |
| US6862676B1 (en) | Superscalar processor having content addressable memory structures for determining dependencies | |
| JPH04328636A (ja) | 並列プロセッサーの命令分配処理装置 | |
| CN114327635A (zh) | 用于处理器的非对称执行端口和分配宽度的可缩放端口绑定的方法、系统和装置 | |
| JPS6334490B2 (ja) | ||
| Ungerer et al. | Evaluating a multithreaded superscalar microprocessor versus a multiprocessor chip | |
| CN112579168B (zh) | 指令执行单元、处理器以及信号处理方法 | |
| Kawano et al. | Fine-grain multi-thread processor architecture for massively parallel processing | |
| CN106030517B (zh) | 用于仿真共享内存架构中的长延迟操作的架构 | |
| GB2348971A (en) | Accessing a memory unit in a parallel data processing system | |
| CN115827251B (zh) | 基于异构平台的高性能Linpack基准测试程序优化方法和设备 | |
| Perrott | Languages for Parallel Computers. | |
| US20250265224A1 (en) | Dynamic reconfiguration of a unified core processor to a multi-core processor |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090502 Year of fee payment: 12 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090502 Year of fee payment: 12 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100502 Year of fee payment: 13 |
|
| LAPS | Cancellation because of no payment of annual fees |