JPH02211534A - 並列処理装置 - Google Patents
並列処理装置Info
- Publication number
- JPH02211534A JPH02211534A JP3165289A JP3165289A JPH02211534A JP H02211534 A JPH02211534 A JP H02211534A JP 3165289 A JP3165289 A JP 3165289A JP 3165289 A JP3165289 A JP 3165289A JP H02211534 A JPH02211534 A JP H02211534A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- instruction
- units
- register
- integer
- 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
- 230000002860 competitive effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000003245 coal Substances 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002747 voluntary effect Effects 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は、高速に演算を実行する情報処理装置として
用いられる並列処理装置に関するものである。
用いられる並列処理装置に関するものである。
従来、この種の装置として第5図に示すようなものがあ
った。この図は、Carl Dobbs、Paul R
eedand Tosny Ng著 : Supe
rcosputing on Chip、VLSI
SYSTEMS Df!5IGN Vol、 IX、
Na 5 、May 1988.pp24−33に示さ
れたもので、図において、(501)は整数の加減算お
よびビット・フィールド処理などを行なう整数ユニット
、(502)は浮動小数点または整数の乗算を行なう浮
動小数点ユニット、(503)はその他の浮動小数点演
算と整数の除算を行なう浮動小数点ユニット、(504
)は上記各機能ユニットの他にオプションで備えられる
特殊機能ユニット、(505)はメモリとの間でデータ
の読み出し/書き込み処理を行なうデータユニット、(
506)は機能ユニットが演算を実行するのに使うレジ
スタファイル、(507)はレジスタの競合の検出と回
避を行なうスコアボード、(508)は命令のフェッチ
、複合そして機能ユニットへの転送、を行なう命令ユニ
ット、(509)は上記各ユニット、レジスタファイル
間を接続するバス、(510)は次に実行される命令の
アドレスを制御するプログラムカウンタである。
った。この図は、Carl Dobbs、Paul R
eedand Tosny Ng著 : Supe
rcosputing on Chip、VLSI
SYSTEMS Df!5IGN Vol、 IX、
Na 5 、May 1988.pp24−33に示さ
れたもので、図において、(501)は整数の加減算お
よびビット・フィールド処理などを行なう整数ユニット
、(502)は浮動小数点または整数の乗算を行なう浮
動小数点ユニット、(503)はその他の浮動小数点演
算と整数の除算を行なう浮動小数点ユニット、(504
)は上記各機能ユニットの他にオプションで備えられる
特殊機能ユニット、(505)はメモリとの間でデータ
の読み出し/書き込み処理を行なうデータユニット、(
506)は機能ユニットが演算を実行するのに使うレジ
スタファイル、(507)はレジスタの競合の検出と回
避を行なうスコアボード、(508)は命令のフェッチ
、複合そして機能ユニットへの転送、を行なう命令ユニ
ット、(509)は上記各ユニット、レジスタファイル
間を接続するバス、(510)は次に実行される命令の
アドレスを制御するプログラムカウンタである。
次に動作について説明する。命令ユニット(508)は
命令のフェッチ、復号、転送の3つのステージにパイプ
ライン化されていて、1クロツクサイクルでフェッチを
完了した後、フェッチした命令を復号ステージに渡す。
命令のフェッチ、復号、転送の3つのステージにパイプ
ライン化されていて、1クロツクサイクルでフェッチを
完了した後、フェッチした命令を復号ステージに渡す。
そこで命令を部分的に復号し、その演算に必要なオペラ
ンドをレジスタファイル(506)から当該命令に対応
する機能ユニットにブリフェッチしてあげるためにスコ
アボード(507)に要求する。スコアボード(507
)は、レジスタファイル(506)内の各レジスタに対
応してスコアボード・ビットを持っていて、そのスコア
ボード・ビットはそのレジスタがインストールされてい
る時、すなわちデータ操作中はセットされ、データ操作
が完了したらクリアされる。要求を受けたスコアボード
(507)は、必要なオペランドをブリフェッチする場
合、このスコアボード・ピントを調べ、セットされてい
る場合はウェイトしなければならない。命令の実行に必
要なオペランドがそろったら、命令は該当機能ユニット
に転送される。各機能ユニットも数段のステージを持ち
、ブリフェッチされたオペランドを使って命令を実行す
る。
ンドをレジスタファイル(506)から当該命令に対応
する機能ユニットにブリフェッチしてあげるためにスコ
アボード(507)に要求する。スコアボード(507
)は、レジスタファイル(506)内の各レジスタに対
応してスコアボード・ビットを持っていて、そのスコア
ボード・ビットはそのレジスタがインストールされてい
る時、すなわちデータ操作中はセットされ、データ操作
が完了したらクリアされる。要求を受けたスコアボード
(507)は、必要なオペランドをブリフェッチする場
合、このスコアボード・ピントを調べ、セットされてい
る場合はウェイトしなければならない。命令の実行に必
要なオペランドがそろったら、命令は該当機能ユニット
に転送される。各機能ユニットも数段のステージを持ち
、ブリフェッチされたオペランドを使って命令を実行す
る。
従来の並列処理装置は以上のように構成されているが、
命令ユニットは1クロツタサイクルで1つの命令しか復
号することができないために、1クロツクサイクルで高
々1つの演算結果しか得られず、これ以上には処理速度
を向上できないという問題点があった。
命令ユニットは1クロツタサイクルで1つの命令しか復
号することができないために、1クロツクサイクルで高
々1つの演算結果しか得られず、これ以上には処理速度
を向上できないという問題点があった。
この発明は上記のような問題点を解決するためになされ
たもので、従来の処理装置とオブジェクト互換で、その
上プログラムの並列性に応じて複数の命令を同時に実行
でき、処理速度を更に向上できる並列処理装置を得るこ
とを目的とする。
たもので、従来の処理装置とオブジェクト互換で、その
上プログラムの並列性に応じて複数の命令を同時に実行
でき、処理速度を更に向上できる並列処理装置を得るこ
とを目的とする。
この発明に係る並列処理装置は、命令ユニットとして、
複数の命令をプログラムに従って同時にフェッチする複
数の命令ユニットを備えて上記レジスタファイルとデー
タユニットを共有し、データ依存性やリソース競合によ
り並列処理できない場合にはプログラムのシーケンシャ
ル性に基づく優先度を決めておき、命令ユニット間のレ
ジスタ競合を検出し、上記優先度に従って実行順序を決
定する優先スコアボードを備え、各命令ユニット毎に内
部バスを介して接続さ乳た整数ユニットと浮動小数点ユ
ニットを備えて各整数ユニット間でキャリービットを共
有したものである。
複数の命令をプログラムに従って同時にフェッチする複
数の命令ユニットを備えて上記レジスタファイルとデー
タユニットを共有し、データ依存性やリソース競合によ
り並列処理できない場合にはプログラムのシーケンシャ
ル性に基づく優先度を決めておき、命令ユニット間のレ
ジスタ競合を検出し、上記優先度に従って実行順序を決
定する優先スコアボードを備え、各命令ユニット毎に内
部バスを介して接続さ乳た整数ユニットと浮動小数点ユ
ニットを備えて各整数ユニット間でキャリービットを共
有したものである。
この発明においては、複数の命令ユニットと機能ユニッ
トを矛盾なく並列に実行させるために、データユニット
とレジスタファイルとキャリービットを共有し、そのう
ちのレジスタファイルを優先スコアボードで制御するこ
とにより、複数の命令ユニットがプログラムの並列性に
応じて独立に動作し、優先スコアボードがレジスタの競
合の検出と優先度に従った回避を行っているので、複数
の命令を同時に実行することができる。
トを矛盾なく並列に実行させるために、データユニット
とレジスタファイルとキャリービットを共有し、そのう
ちのレジスタファイルを優先スコアボードで制御するこ
とにより、複数の命令ユニットがプログラムの並列性に
応じて独立に動作し、優先スコアボードがレジスタの競
合の検出と優先度に従った回避を行っているので、複数
の命令を同時に実行することができる。
第1図はこの発明で2つの命令ユニットを備えた並列処
理装置の一実施例を示す構成図であり、(505) 、
(506) 、 (509)は第5図で示した従来装
置と同一のものである。(101)と(103)は整数
の加減算や論理演算などを行なう整数ユニット、(10
2)と(104)は浮動小数点演算などを行なう浮動小
数点ユニット、(105)は2つの整数ユニット(10
1) 。
理装置の一実施例を示す構成図であり、(505) 、
(506) 、 (509)は第5図で示した従来装
置と同一のものである。(101)と(103)は整数
の加減算や論理演算などを行なう整数ユニット、(10
2)と(104)は浮動小数点演算などを行なう浮動小
数点ユニット、(105)は2つの整数ユニット(10
1) 。
(103)に共有でキャリーを保持するキャリービット
、(106)はN番目(N=0.1.・・・)の命令を
フェッチする命令ユニット0、(107)は(N+1)
番目の命令をフェッチする命令ユニットlであり、各命
令ユニット0 (106)、 1 (107)毎にバス
(509) 。
、(106)はN番目(N=0.1.・・・)の命令を
フェッチする命令ユニット0、(107)は(N+1)
番目の命令をフェッチする命令ユニットlであり、各命
令ユニット0 (106)、 1 (107)毎にバス
(509) 。
(509)を介して整数ユニット(101) 、 (1
03)及び浮動小数点ユニッ) (102)、(104
)が設けられており、データユニット(505)とレジ
スタファイル(506)は共有となっている。 (1
0B)はレジスタファイル(506)の競合を検出し優
先度に従って回避する機能を持った優先スコアボードで
ある。この実施例では、命令ユニッ) O(106)が
N番目の命令を。
03)及び浮動小数点ユニッ) (102)、(104
)が設けられており、データユニット(505)とレジ
スタファイル(506)は共有となっている。 (1
0B)はレジスタファイル(506)の競合を検出し優
先度に従って回避する機能を持った優先スコアボードで
ある。この実施例では、命令ユニッ) O(106)が
N番目の命令を。
命令ユニット1 (107)が(N+1)番目の命令を
フェッチするので、並列処理できない場合の「データの
優先」を維持するために命令ユニット0(106)に高
い優先度を与えている。例えば、命令ユニットO(10
6)と命令ユニット1 (107)が同一の複数レジス
タを同時に要求した場合、スコアボードが1つずつ別の
命令ユニットに利用許可を出すとそこで処理は中断して
しまう(デッドロック)、また、命令ユニットO(10
6)がストア命令を、命令ユニッI−1(107)がロ
ード命令を同じメモリ領域に対して実行しようとする場
合、命令ユニット1 (107)が先に実行されること
によって命令ユニット0 (106)のストア命令と無
関係の結果がロードされることになる。このように優先
スコアボード(10B)は、プログラムの論理的矛盾を
引き起こさない上で重要である。 (109)は命令
ユニッ) 0 (106)が分岐命令をフェッチした時
、命令ユニッ) 1 (107)に対して機能ユニット
への命令の転送の停止、再開、無効を示すシグナルを送
る制御バス、(110)は命令ユニッ) 0 (106
)が命令を整数ユニット(101)へ転送したことを命
令ユニット1(107)に知らせるバス、(111)は
次に実行される命令のアドレスを制御するプログラムカ
ウンタである。
フェッチするので、並列処理できない場合の「データの
優先」を維持するために命令ユニット0(106)に高
い優先度を与えている。例えば、命令ユニットO(10
6)と命令ユニット1 (107)が同一の複数レジス
タを同時に要求した場合、スコアボードが1つずつ別の
命令ユニットに利用許可を出すとそこで処理は中断して
しまう(デッドロック)、また、命令ユニットO(10
6)がストア命令を、命令ユニッI−1(107)がロ
ード命令を同じメモリ領域に対して実行しようとする場
合、命令ユニット1 (107)が先に実行されること
によって命令ユニット0 (106)のストア命令と無
関係の結果がロードされることになる。このように優先
スコアボード(10B)は、プログラムの論理的矛盾を
引き起こさない上で重要である。 (109)は命令
ユニッ) 0 (106)が分岐命令をフェッチした時
、命令ユニッ) 1 (107)に対して機能ユニット
への命令の転送の停止、再開、無効を示すシグナルを送
る制御バス、(110)は命令ユニッ) 0 (106
)が命令を整数ユニット(101)へ転送したことを命
令ユニット1(107)に知らせるバス、(111)は
次に実行される命令のアドレスを制御するプログラムカ
ウンタである。
キャリービット(105)は、整数ユニット(101)
。
。
(103)での計算の結果、キャリー(桁上り)が生じ
る場合、そのキャリーを保持し、その後のキャリーを伴
なう計算の時に参照される。キャリービット(105)
は、命令のシーケンシャル性を保つために、整数ユニッ
ト(101)と整数ユニッI−(103)との間に優先
度を設けている。この実施例においては、命令ユニット
O(106)がN番目(N=O。
る場合、そのキャリーを保持し、その後のキャリーを伴
なう計算の時に参照される。キャリービット(105)
は、命令のシーケンシャル性を保つために、整数ユニッ
ト(101)と整数ユニッI−(103)との間に優先
度を設けている。この実施例においては、命令ユニット
O(106)がN番目(N=O。
l・・・)の命令を、命令ユニット1 (107)が(
N+1)番目の命令をフェッチするので、整数ユニット
(101)の優先度の方が高い、つまり、2つの整数ユ
ニブトが同時にキャリービット(105)にキャリーを
書き込みにきた場合、先ず整数ユニット(101)のキ
ャリーを書き込み、それから整数ユニッl−(103)
のキャリーを書き込む。
N+1)番目の命令をフェッチするので、整数ユニット
(101)の優先度の方が高い、つまり、2つの整数ユ
ニブトが同時にキャリービット(105)にキャリーを
書き込みにきた場合、先ず整数ユニット(101)のキ
ャリーを書き込み、それから整数ユニッl−(103)
のキャリーを書き込む。
命令ユニット0 (106)は、命令を整数ユニット(
101)に転送したことをバス(110)を使って命令
ユニット1 (107)に知らせる。命令ユニット1(
107)は、キャリーを伴なう命令をフェッチした場合
に限り、整数ユニット(101)からのキャリーを持ち
合わせるために1クロフクサイクル待ってから整数ユニ
ット(103)への命令の転送を開始する。キャリーを
伴わない命令の場合は、命令ユニッ) 1 (107)
は命令ユニット0 (106)から送られてくるシグナ
ルを無視する。
101)に転送したことをバス(110)を使って命令
ユニット1 (107)に知らせる。命令ユニット1(
107)は、キャリーを伴なう命令をフェッチした場合
に限り、整数ユニット(101)からのキャリーを持ち
合わせるために1クロフクサイクル待ってから整数ユニ
ット(103)への命令の転送を開始する。キャリーを
伴わない命令の場合は、命令ユニッ) 1 (107)
は命令ユニット0 (106)から送られてくるシグナ
ルを無視する。
また第2図は、2つの命令ユニットの動作を示すタイミ
ング図である。最初の命令群は、レジスタの競合がなく
オペランドのブリフェッチがスムーズに行われた場′合
を表わしている。2番目の命令群は、2つの命令ユニッ
トがブリフェッチしようとするオペランドの間にレジス
タの競合が生じ、命令ユニット1 (107)の機能ユ
ニットへの転送に遅延が生じている。3番目の命令群は
、2つの命令ユニットの間でレジスタの競合が生じてい
る上に、命令ユニット0 (106)の要求するオペラ
ンドが概に他の機能ユニットによって利用されていて、
命令ユニッ) 1 (107)の命令の機能ユニットへ
の転送に二重の遅延が起きている場合である。
ング図である。最初の命令群は、レジスタの競合がなく
オペランドのブリフェッチがスムーズに行われた場′合
を表わしている。2番目の命令群は、2つの命令ユニッ
トがブリフェッチしようとするオペランドの間にレジス
タの競合が生じ、命令ユニット1 (107)の機能ユ
ニットへの転送に遅延が生じている。3番目の命令群は
、2つの命令ユニットの間でレジスタの競合が生じてい
る上に、命令ユニット0 (106)の要求するオペラ
ンドが概に他の機能ユニットによって利用されていて、
命令ユニッ) 1 (107)の命令の機能ユニットへ
の転送に二重の遅延が起きている場合である。
また第3図は、優先スコアボード(108)の働きを示
している。同図(a)は2つの命令ユニット間で競合が
ない場合を、同図中)は競合がある場合を示している0
図において、(106) 、 (107) 、 (10
B) 、 (506)は第1図に示したものと同一のも
のである。(301) 。
している。同図(a)は2つの命令ユニット間で競合が
ない場合を、同図中)は競合がある場合を示している0
図において、(106) 、 (107) 、 (10
B) 、 (506)は第1図に示したものと同一のも
のである。(301) 。
(302)はそれぞれ命令ユニット0 (106)と命
令ユニット1 (107)に対する機能ユニットを表わ
している。
令ユニット1 (107)に対する機能ユニットを表わ
している。
また第4図は、分岐命令フェッチによる分岐のパターン
を示している。
を示している。
次に動作について説明する。まず分岐命令制御について
詳細動作を説明する。第4図の+8)および(b)は、
命令ユニッ) O(106)に分岐命令がフェッチされ
、それぞれ分岐先の命令が命令ユニット0(106)お
よび命令ユニット1 (107)にフェッチされる場合
を、(0)および(d)は命令ユニット1 (107)
に分岐命令がフェッチされ、それぞれ分岐先の命令が命
令ユニッ) O(106)および命令ユニッ)1(10
7)にフェッチされる場合を示している。命令ユニット
O(106)は命令ユニット1 (107)へ命令の転
送停止、再開、無効を示すシグナルを第1図の制御バス
(109)を使って送る。分岐命令が無条件分岐命令の
場合、第4図の(a)および(blにおいて命令ユニッ
) O(106)は制御バス(109)を使って、命令
ユニッ) 1 (107)にフェッチした命令の無効を
示すシグナルを送り、プログラムカウンタ(111)に
分岐先のアドレスを知らせる。プログラムカウンタ(1
11)はそのアドレスを受は取り、命令ユニットO(1
06)に命令comoを、命令ユニット1(107)に
命令coalをフェッチさせる。ここで、(alの場合
はそのまま2つの命令ユニットは命令を復号していくが
、(blの場合はC0flIOは実行してはいけない命
令なので、プログラムカウンタ(111)は命令ユニッ
トO(106)にフェッチした命令の無効を示すシグナ
ルを送る。第4図の(C)および(d)において、命令
ユニッ) 1 (107)に無条件分岐命令がフェッチ
されると、命令ユニット1 (107)は分岐先のアド
レスをプログラムカウンタ(111)に知らせる。プロ
グラムカウンタ(111)は、(a)および(′b)と
同様に命令ユニッ) O(106)に命令comoを、
命令ユニット(107)に命令Coff11をフェッチ
させる。(C1の場合はそのまま処理を行なうが、(d
lの場合は命令ユニットO(106)にフェッチした命
令の無効を示すシグナルを送る。
詳細動作を説明する。第4図の+8)および(b)は、
命令ユニッ) O(106)に分岐命令がフェッチされ
、それぞれ分岐先の命令が命令ユニット0(106)お
よび命令ユニット1 (107)にフェッチされる場合
を、(0)および(d)は命令ユニット1 (107)
に分岐命令がフェッチされ、それぞれ分岐先の命令が命
令ユニッ) O(106)および命令ユニッ)1(10
7)にフェッチされる場合を示している。命令ユニット
O(106)は命令ユニット1 (107)へ命令の転
送停止、再開、無効を示すシグナルを第1図の制御バス
(109)を使って送る。分岐命令が無条件分岐命令の
場合、第4図の(a)および(blにおいて命令ユニッ
) O(106)は制御バス(109)を使って、命令
ユニッ) 1 (107)にフェッチした命令の無効を
示すシグナルを送り、プログラムカウンタ(111)に
分岐先のアドレスを知らせる。プログラムカウンタ(1
11)はそのアドレスを受は取り、命令ユニットO(1
06)に命令comoを、命令ユニット1(107)に
命令coalをフェッチさせる。ここで、(alの場合
はそのまま2つの命令ユニットは命令を復号していくが
、(blの場合はC0flIOは実行してはいけない命
令なので、プログラムカウンタ(111)は命令ユニッ
トO(106)にフェッチした命令の無効を示すシグナ
ルを送る。第4図の(C)および(d)において、命令
ユニッ) 1 (107)に無条件分岐命令がフェッチ
されると、命令ユニット1 (107)は分岐先のアド
レスをプログラムカウンタ(111)に知らせる。プロ
グラムカウンタ(111)は、(a)および(′b)と
同様に命令ユニッ) O(106)に命令comoを、
命令ユニット(107)に命令Coff11をフェッチ
させる。(C1の場合はそのまま処理を行なうが、(d
lの場合は命令ユニットO(106)にフェッチした命
令の無効を示すシグナルを送る。
分岐命令が条件付分岐命令の場合、第4図の(alおよ
び(blで命令ユニッ) O(106)に条件付分岐命
令がフェッチされると、命令ユニットO(106)は制
御バス(109)を使って命令ユニット1 (107)
に命令の機能ユニットへの転送停止のシグナルを送る。
び(blで命令ユニッ) O(106)に条件付分岐命
令がフェッチされると、命令ユニットO(106)は制
御バス(109)を使って命令ユニット1 (107)
に命令の機能ユニットへの転送停止のシグナルを送る。
それから整数ユニッ) (101)で分岐条件を判定し
分岐条件が満足されなければ、制御バス(109)を使
って命令ユニッl−(107)に命令の機能ユニットへ
転送を再開するシグナルを出す。もし分岐条件が満たさ
れていれば、命令ユニット0 (106)は制御バス(
109)を使って命令ユニット1 (107)に命令を
無効にするシグナルを出し、プログラムカウンタ(11
1)に分岐先のア、ドレスを知らせる。プログラムカウ
ンタ(111)は分岐先のアドレスを受は取り、命令ユ
ニッ) 0 (106)に命令coa+oを、命令ユニ
ット1 (107)に命令coa+1をフェッチさせる
。
分岐条件が満足されなければ、制御バス(109)を使
って命令ユニッl−(107)に命令の機能ユニットへ
転送を再開するシグナルを出す。もし分岐条件が満たさ
れていれば、命令ユニット0 (106)は制御バス(
109)を使って命令ユニット1 (107)に命令を
無効にするシグナルを出し、プログラムカウンタ(11
1)に分岐先のア、ドレスを知らせる。プログラムカウ
ンタ(111)は分岐先のアドレスを受は取り、命令ユ
ニッ) 0 (106)に命令coa+oを、命令ユニ
ット1 (107)に命令coa+1をフェッチさせる
。
ここで(a)の場合はそのまま2つの命令ユニットは命
令を復号していくが、(blの場合はcoa+oは実行
してはいけない命令なので、プログラムカウンタ(11
1)は命令ユニットO(106)にフェッチした命令の
無効シグナルを送る。第4図の(e)および(d)にお
いて、命令ユニッ) 1 (107)に条件付分岐命令
がフェッチされると、整数ユニット(103)で分岐条
件を判定し、分岐条件がみたされていなければそのまま
処理を行なう。もし分岐条件がみたされていれば、命令
ユニッ) 1 (107)は分岐先のアドレスをプログ
ラムカウンタ(111)に知らせる。プログラムカウン
タ (111)はそのアドレスを受は取り、命令ユニット0
(106)に命令coIlOを、命令ユニット1 (
107)に命令coalをフェッチさせる。ここで(C
)の場合はそのまま命令を復号していくが、(dlの場
合は命令ユニット0 (106)にフェッチした命令の
無効シグナルを送る。
令を復号していくが、(blの場合はcoa+oは実行
してはいけない命令なので、プログラムカウンタ(11
1)は命令ユニットO(106)にフェッチした命令の
無効シグナルを送る。第4図の(e)および(d)にお
いて、命令ユニッ) 1 (107)に条件付分岐命令
がフェッチされると、整数ユニット(103)で分岐条
件を判定し、分岐条件がみたされていなければそのまま
処理を行なう。もし分岐条件がみたされていれば、命令
ユニッ) 1 (107)は分岐先のアドレスをプログ
ラムカウンタ(111)に知らせる。プログラムカウン
タ (111)はそのアドレスを受は取り、命令ユニット0
(106)に命令coIlOを、命令ユニット1 (
107)に命令coalをフェッチさせる。ここで(C
)の場合はそのまま命令を復号していくが、(dlの場
合は命令ユニット0 (106)にフェッチした命令の
無効シグナルを送る。
次に優先スコアボード(108)によるレジスタの競合
の検出と優先度を用いた回避について説明する。2つの
命令ユニットは、第2図に示すように共に命令のフェッ
チ、復号1機能ユニットへの転送の3つのステージにパ
イプライン化されている。
の検出と優先度を用いた回避について説明する。2つの
命令ユニットは、第2図に示すように共に命令のフェッ
チ、復号1機能ユニットへの転送の3つのステージにパ
イプライン化されている。
命令のフェッチは、命令ユニット1 (107)の機能
ユニットへの転送開始と同期されていて、共に1クロツ
クサイクルで命令をフェッチした後、命令を復号ステー
ジに渡す。そこで各命令ユニットは、演算に必要なオペ
ランドをレジスタファイル(506)から当該命令に対
応する機能ユニットにブリフェフチさせる。優先スコア
ボード(108)は、各命令ユニットからオペランドの
要求があるとそのレジスタのスコアボード・ビットを調
べる。優先スコアボード(108)は、命令ユニット0
(106)に対しては命令ユニット0 (106)が
要求しているレジスタのスコアボード・ビットがセット
されていなければ、命令ユニット0 (106)にレジ
スタの利用可能のシグナルを送る。命令ユニット1 (
10?)に対しては、命令ユニット1 (107)が要
求しているレジスタのスコアボード・ビットがセットさ
れていなくて且つ命令二ニア ト0 (106)の要求
しているレジスタと競合が起きていない場合に限り利用
可能のシグナルが送られる。これらの条件が満たされな
ければ、各機能ユニットでオペランドのブリフェッチが
できないので、機能ユニットへの転送をウェイトしなけ
ればならない。第3図の(alでは、2つの命令ユニッ
トはオペランドの競合が生じていない(第2図の第1命
令群に対応している)ので、オペランドを要求しく図に
おいて■)、利用可能のシグナルを受は取り(■)、命
令を対応する機能ユニットに転送する(■)動作が並列
に行われている。そして機能ユニットが演算を行なった
結果をレジスタに書き込む(■) 、 (blの場合、
オペランドの要求(■)でレジスタ間に競合が生じてい
る(第2図で第2命令群に対応している)ので、優先ス
コアボード(108)は命令ユニット0(106)にだ
け利用可能のシグナルを出す(■)。
ユニットへの転送開始と同期されていて、共に1クロツ
クサイクルで命令をフェッチした後、命令を復号ステー
ジに渡す。そこで各命令ユニットは、演算に必要なオペ
ランドをレジスタファイル(506)から当該命令に対
応する機能ユニットにブリフェフチさせる。優先スコア
ボード(108)は、各命令ユニットからオペランドの
要求があるとそのレジスタのスコアボード・ビットを調
べる。優先スコアボード(108)は、命令ユニット0
(106)に対しては命令ユニット0 (106)が
要求しているレジスタのスコアボード・ビットがセット
されていなければ、命令ユニット0 (106)にレジ
スタの利用可能のシグナルを送る。命令ユニット1 (
10?)に対しては、命令ユニット1 (107)が要
求しているレジスタのスコアボード・ビットがセットさ
れていなくて且つ命令二ニア ト0 (106)の要求
しているレジスタと競合が起きていない場合に限り利用
可能のシグナルが送られる。これらの条件が満たされな
ければ、各機能ユニットでオペランドのブリフェッチが
できないので、機能ユニットへの転送をウェイトしなけ
ればならない。第3図の(alでは、2つの命令ユニッ
トはオペランドの競合が生じていない(第2図の第1命
令群に対応している)ので、オペランドを要求しく図に
おいて■)、利用可能のシグナルを受は取り(■)、命
令を対応する機能ユニットに転送する(■)動作が並列
に行われている。そして機能ユニットが演算を行なった
結果をレジスタに書き込む(■) 、 (blの場合、
オペランドの要求(■)でレジスタ間に競合が生じてい
る(第2図で第2命令群に対応している)ので、優先ス
コアボード(108)は命令ユニット0(106)にだ
け利用可能のシグナルを出す(■)。
命令ユニット1 (107)は、命令ユニットO(1
06)が命令を機能ユニットへ転送しく■)、機能ユニ
ットが演算の結果をレジスタに書き込んだ(■)後に送
られてくる利用可能のシグナルを受は取って(■)、対
応する機能ユニットへの命令の転送を開始する(■)。
06)が命令を機能ユニットへ転送しく■)、機能ユニ
ットが演算の結果をレジスタに書き込んだ(■)後に送
られてくる利用可能のシグナルを受は取って(■)、対
応する機能ユニットへの命令の転送を開始する(■)。
機能ユニットも数段のバイブライン・ステージを持ち、
ブリフェッチされたオペランドを使って命令を実行し、
結果をレジスタに書き込む。
ブリフェッチされたオペランドを使って命令を実行し、
結果をレジスタに書き込む。
次にデータユニット(505)の競合の検出と回避に対
する制御について説明する。各命令ユニットはロード又
はストア命令−をフェッチすると、レジスタをデータユ
ニット(505)にプリフェッチさせるために、優先ス
コアボード(108)に要求を出す。
する制御について説明する。各命令ユニットはロード又
はストア命令−をフェッチすると、レジスタをデータユ
ニット(505)にプリフェッチさせるために、優先ス
コアボード(108)に要求を出す。
優先スコアボード(10B)は、レジスタ競合とデータ
ユニッl−(505)の空き状態により、優先度に基づ
いて利用可能のシグナルを要求を出した命令ユニットに
返す。優先スコアボード(10B)から利用可能のシグ
ナルを受は取った命令ユニットは命令をデータユニッ)
(505)に転送する。
ユニッl−(505)の空き状態により、優先度に基づ
いて利用可能のシグナルを要求を出した命令ユニットに
返す。優先スコアボード(10B)から利用可能のシグ
ナルを受は取った命令ユニットは命令をデータユニッ)
(505)に転送する。
以上のように、この発明によれば、複数の独立に動作す
る命令ユニットと各々の命令ユニットに複数の機能ユニ
ットを備え、全ての機能ユニットを共有のレジスタファ
イルとデータユニットとキャリービットに接続し、その
うちのレジスタファイルを優先スコアボードにより制御
したので、複数の命令ユニットがプログラムの並列性に
従って独立に矛盾なく動作するから、処理速度を更に向
上させる効果がある。
る命令ユニットと各々の命令ユニットに複数の機能ユニ
ットを備え、全ての機能ユニットを共有のレジスタファ
イルとデータユニットとキャリービットに接続し、その
うちのレジスタファイルを優先スコアボードにより制御
したので、複数の命令ユニットがプログラムの並列性に
従って独立に矛盾なく動作するから、処理速度を更に向
上させる効果がある。
第1図はこの発明で2つの命令ユニットを備えた一実施
例を示す構成図、第2図は2つの命令ユニットの動作を
示すタイミング図、第3図(a)、 ff1)は優先ス
コアボードの働きを示した図、第4図(a)〜(dlは
分岐命令による分岐のパターンを表わした図、第5図は
従来の並列処理装置の構成図である。 図において、(101) 、 (103)は整数ユニッ
ト、(102) 、 (104)は浮動小数点ユニット
、(105)はキャリービット、(106) 、 (1
07)は命令ユニット、(10B)は優先スコアボード
、(109)、 (110) 、 (509)はバス、
(111)はプログラムカウンタ、(301) 。 (302)は機能ユニット、(505)はデータユニッ
ト、(506)はレジスタファイルである。 なお、各図中、同一符号は同一または相当部分を示す。 代理人 大君 増雄(ほか2名) 1、事件の表示 3.補正をする者 手続補正書(自発) 平成 1年12月27日 特願平1−031652号 代表者 志 岐 守 哉 5 補正の対象 特許請求の範囲及び発明の詳細な説明の欄。 G 補正の内容 (1)特許請求の範囲を別紙のとおり補正する。 (2)明細書第4頁第7行目乃至第8行目に「必要なオ
ペランドをプリフェッチする場合、」とあるのを削除す
る。 (3)同書第4頁第9行目乃至第10行目に[ウェイト
しなけ才しばならない。」とあるのを「クリアされるま
でウェイトして、その後使用許可を命令ユニット(50
8)に通知する。」と補正する。 (4)同書第5頁第9行目に「プログラムに従って」と
あるのを削除する。 (5)同書第5頁第11行目に「ファイルとデータユニ
ットを共有し、」とあるのを「ファイル、データユニッ
トとキャリービットを共有し、」と補正する。 (6)同書第5頁第16行目乃至第19行目に「偏え、
・・・・・・共有したものである。」とあるのを「備え
たものである。」と補正する。 (7)同書第10頁第13行目「示している。」の後に
次の文を挿入する。 「優先スコアボード(108)は、データ依存関係に従
い命令間のリソース競合を検出し回避する機能を備えて
おり、命令ユニットにフェッチされた命令の使用するレ
ジスタや機能ユニットが利用可能な場合に限り実行許可
を出す、但し1機能ユニットの調停は共有されているも
のに対してのみ行うり(8)同書第15頁第3行目に「
スコアボード・ビットを調べる。優先」とあるのを「ス
コアボード・ビットとその命令が使用する機能ユニット
の空き状態を調べる。命令が使用する機能ユニットが利
用可能な場合、優先」と補正する。 (9)同書第16頁第18行目乃至第19行目に「各命
令ユニットは」とあるのを「データユニット(505)
も他の機能ユニット同様、各命令ユニットが」と補正す
る。 (10)同書第16頁第19行目乃至第20行目に「レ
ジスタ」とあるのを「オペランド」と補正する。 (11)同書第17頁第2行目に「レジスタ競合と」と
あるのを[レジスタ競合や」と補正する。 (12)同書第17頁第3行目乃至第4行目に「、優先
度に基づいて」とあるのを削除する (13)同書第17頁第7行目「転送する。」の後に次
の文を挿入する。 「また、他の実施例として、第1図で2つの浮動小数点
ユニット(102) 、 (103)を取り除いた構成
がある。このように構成すれば、制御系のような浮動小
数点の演算機能を必要としない場合には、少ないハード
ウェアで最大2命令/サイクルを実現できるという効果
がある。」 (14)同書第17頁第13行目乃至第14行目に[そ
のうちのレジスタファイルを優先スコアボードにより制
御したので、」とあるのを[データ依存性やリソース競
合の検出と回避を優先スコアボード等のハードウェアで
実現しているので、」と補正する。 以上 2、特許請求の範囲 整数や論理演算などを行なう整数ユニットと。 浮動小数点演算などを行なう浮動小数点ユニットと、こ
れら機能ユニットの演算 ぺ−゛す五レジスタファイル
と、データの読み出し、書き込み処理を行なうデータユ
ニットと、上記各機能ユニット及びレジスタファイルk
Aλ接趙支−命令のフェッチ、復号及び該当機能ユニッ
トへの転送上パイプライン化して行なう命令ユニットと
を備えた並列処理装置において、上記命令ユニットとし
て、複数の命令り何時にフェッチする複数の命令ユニッ
トを備えて上記レジスタファイル。 データユニットとキャリービットを共有し、データ依存
性やリソース競合により並列処理できない場合にはプロ
グラムのシーケンシャル性に基づく優先度を決めておき
、命令ユニット間のレジスタ競合を検出し、上記優先度
に従って実行順序を決定する優先スコアボードを備えL
ことを特徴とする並列処理装置。
例を示す構成図、第2図は2つの命令ユニットの動作を
示すタイミング図、第3図(a)、 ff1)は優先ス
コアボードの働きを示した図、第4図(a)〜(dlは
分岐命令による分岐のパターンを表わした図、第5図は
従来の並列処理装置の構成図である。 図において、(101) 、 (103)は整数ユニッ
ト、(102) 、 (104)は浮動小数点ユニット
、(105)はキャリービット、(106) 、 (1
07)は命令ユニット、(10B)は優先スコアボード
、(109)、 (110) 、 (509)はバス、
(111)はプログラムカウンタ、(301) 。 (302)は機能ユニット、(505)はデータユニッ
ト、(506)はレジスタファイルである。 なお、各図中、同一符号は同一または相当部分を示す。 代理人 大君 増雄(ほか2名) 1、事件の表示 3.補正をする者 手続補正書(自発) 平成 1年12月27日 特願平1−031652号 代表者 志 岐 守 哉 5 補正の対象 特許請求の範囲及び発明の詳細な説明の欄。 G 補正の内容 (1)特許請求の範囲を別紙のとおり補正する。 (2)明細書第4頁第7行目乃至第8行目に「必要なオ
ペランドをプリフェッチする場合、」とあるのを削除す
る。 (3)同書第4頁第9行目乃至第10行目に[ウェイト
しなけ才しばならない。」とあるのを「クリアされるま
でウェイトして、その後使用許可を命令ユニット(50
8)に通知する。」と補正する。 (4)同書第5頁第9行目に「プログラムに従って」と
あるのを削除する。 (5)同書第5頁第11行目に「ファイルとデータユニ
ットを共有し、」とあるのを「ファイル、データユニッ
トとキャリービットを共有し、」と補正する。 (6)同書第5頁第16行目乃至第19行目に「偏え、
・・・・・・共有したものである。」とあるのを「備え
たものである。」と補正する。 (7)同書第10頁第13行目「示している。」の後に
次の文を挿入する。 「優先スコアボード(108)は、データ依存関係に従
い命令間のリソース競合を検出し回避する機能を備えて
おり、命令ユニットにフェッチされた命令の使用するレ
ジスタや機能ユニットが利用可能な場合に限り実行許可
を出す、但し1機能ユニットの調停は共有されているも
のに対してのみ行うり(8)同書第15頁第3行目に「
スコアボード・ビットを調べる。優先」とあるのを「ス
コアボード・ビットとその命令が使用する機能ユニット
の空き状態を調べる。命令が使用する機能ユニットが利
用可能な場合、優先」と補正する。 (9)同書第16頁第18行目乃至第19行目に「各命
令ユニットは」とあるのを「データユニット(505)
も他の機能ユニット同様、各命令ユニットが」と補正す
る。 (10)同書第16頁第19行目乃至第20行目に「レ
ジスタ」とあるのを「オペランド」と補正する。 (11)同書第17頁第2行目に「レジスタ競合と」と
あるのを[レジスタ競合や」と補正する。 (12)同書第17頁第3行目乃至第4行目に「、優先
度に基づいて」とあるのを削除する (13)同書第17頁第7行目「転送する。」の後に次
の文を挿入する。 「また、他の実施例として、第1図で2つの浮動小数点
ユニット(102) 、 (103)を取り除いた構成
がある。このように構成すれば、制御系のような浮動小
数点の演算機能を必要としない場合には、少ないハード
ウェアで最大2命令/サイクルを実現できるという効果
がある。」 (14)同書第17頁第13行目乃至第14行目に[そ
のうちのレジスタファイルを優先スコアボードにより制
御したので、」とあるのを[データ依存性やリソース競
合の検出と回避を優先スコアボード等のハードウェアで
実現しているので、」と補正する。 以上 2、特許請求の範囲 整数や論理演算などを行なう整数ユニットと。 浮動小数点演算などを行なう浮動小数点ユニットと、こ
れら機能ユニットの演算 ぺ−゛す五レジスタファイル
と、データの読み出し、書き込み処理を行なうデータユ
ニットと、上記各機能ユニット及びレジスタファイルk
Aλ接趙支−命令のフェッチ、復号及び該当機能ユニッ
トへの転送上パイプライン化して行なう命令ユニットと
を備えた並列処理装置において、上記命令ユニットとし
て、複数の命令り何時にフェッチする複数の命令ユニッ
トを備えて上記レジスタファイル。 データユニットとキャリービットを共有し、データ依存
性やリソース競合により並列処理できない場合にはプロ
グラムのシーケンシャル性に基づく優先度を決めておき
、命令ユニット間のレジスタ競合を検出し、上記優先度
に従って実行順序を決定する優先スコアボードを備えL
ことを特徴とする並列処理装置。
Claims (1)
- 整数や論理演算などを行なう整数ユニットと、浮動小
数点演算などを行なう浮動小数点ユニットと、これら機
能ユニットの演算のために用いられるレジスタファイル
と、データの読み出し、書き込み処理を行なうデータユ
ニットと、上記各機能ユニット及びレジスタファイルと
バスで接続され、命令のフェッチ、復号及び該当機能ユ
ニットへの転送の各ステージをパイプライン化して行な
う命令ユニットとを備えた並列処理装置において、上記
命令ユニットとして、複数の命令をプログラムに従って
同時にフェッチする複数の命令ユニットを備えて上記レ
ジスタファイルとデータユニットを共有し、データ依存
性やリソース競合により並列処理できない場合にはプロ
グラムのシーケンシャル性に基づく優先度を決めておき
、命令ユニット間のレジスタ競合を検出し、上記優先度
に従って実行順序を決定する優先スコアボードを備え、
各命令ユニット毎に内部バスを介して接続された整数ユ
ニットと浮動小数点ユニットを備えて各整数ユニット間
でキャリービットを共有したことを特徴とする並列処理
装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1031652A JPH0769825B2 (ja) | 1989-02-10 | 1989-02-10 | 並列処理装置 |
US07/478,196 US5226166A (en) | 1989-02-10 | 1990-02-12 | Parallel operation processor with second command unit |
US08/076,023 US5293500A (en) | 1989-02-10 | 1993-05-27 | Parallel processing method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1031652A JPH0769825B2 (ja) | 1989-02-10 | 1989-02-10 | 並列処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02211534A true JPH02211534A (ja) | 1990-08-22 |
JPH0769825B2 JPH0769825B2 (ja) | 1995-07-31 |
Family
ID=12337103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1031652A Expired - Lifetime JPH0769825B2 (ja) | 1989-02-10 | 1989-02-10 | 並列処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0769825B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282630B1 (en) | 1991-07-08 | 2001-08-28 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution |
US7555631B2 (en) | 1991-07-08 | 2009-06-30 | Sanjiv Garg | RISC microprocessor architecture implementing multiple typed register sets |
JP2013532331A (ja) * | 2010-06-29 | 2013-08-15 | インテル・コーポレーション | 第1コア型と第2コア型を結合することにより電力性能効率を改善させる装置、方法及びシステム |
CN110647362A (zh) * | 2019-09-11 | 2020-01-03 | 上海高性能集成电路设计中心 | 一种基于记分牌原理的两级缓置发射装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5110747A (ja) * | 1974-07-17 | 1976-01-28 | Hitachi Ltd |
-
1989
- 1989-02-10 JP JP1031652A patent/JPH0769825B2/ja not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5110747A (ja) * | 1974-07-17 | 1976-01-28 | Hitachi Ltd |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282630B1 (en) | 1991-07-08 | 2001-08-28 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution |
US7028161B2 (en) | 1991-07-08 | 2006-04-11 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution |
US7555632B2 (en) | 1991-07-08 | 2009-06-30 | Seiko Epson Corporation | High-performance superscalar-based computer system with out-of-order instruction execution and concurrent results distribution |
US7555631B2 (en) | 1991-07-08 | 2009-06-30 | Sanjiv Garg | RISC microprocessor architecture implementing multiple typed register sets |
US7941635B2 (en) | 1991-07-08 | 2011-05-10 | Seiko-Epson Corporation | High-performance superscalar-based computer system with out-of order instruction execution and concurrent results distribution |
JP2013532331A (ja) * | 2010-06-29 | 2013-08-15 | インテル・コーポレーション | 第1コア型と第2コア型を結合することにより電力性能効率を改善させる装置、方法及びシステム |
CN110647362A (zh) * | 2019-09-11 | 2020-01-03 | 上海高性能集成电路设计中心 | 一种基于记分牌原理的两级缓置发射装置 |
CN110647362B (zh) * | 2019-09-11 | 2023-03-31 | 上海高性能集成电路设计中心 | 一种基于记分牌原理的两级缓置发射装置 |
Also Published As
Publication number | Publication date |
---|---|
JPH0769825B2 (ja) | 1995-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0782071B1 (en) | Data processor | |
JP3644959B2 (ja) | マイクロプロセッサシステム | |
US5375216A (en) | Apparatus and method for optimizing performance of a cache memory in a data processing system | |
JP5404574B2 (ja) | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション | |
US5706490A (en) | Method of processing conditional branch instructions in scalar/vector processor | |
US6606704B1 (en) | Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode | |
US8539399B1 (en) | Method and apparatus for providing user-defined interfaces for a configurable processor | |
JP2003514274A (ja) | 接近して結合される多重プロセッサのための高速マルチスレッディング | |
JP2001092662A (ja) | プロセッサコア及びこれを用いたプロセッサ | |
WO1996027833A1 (fr) | Unite de traitement informatique | |
US5948093A (en) | Microprocessor including an interrupt polling unit configured to poll external devices for interrupts when said microprocessor is in a task switch state | |
JPH06161779A (ja) | データ処理装置の割込み制御方式 | |
US6725355B1 (en) | Arithmetic processing architecture having a portion of general-purpose registers directly coupled to a plurality of memory banks | |
Kawano et al. | Fine-grain multi-thread processor architecture for massively parallel processing | |
JPH02211534A (ja) | 並列処理装置 | |
KR19980079726A (ko) | 프로세서에 저장 인스트럭션을 전송하는 시스템 및 방법 | |
JP2710994B2 (ja) | データ処理装置 | |
EP0374598B1 (en) | Control store addressing from multiple sources | |
WO1999032976A1 (en) | Risc processor with concurrent snooping and instruction execution | |
JPH08249175A (ja) | スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置 | |
JP3102399B2 (ja) | データ処理装置及び方法 | |
JP2636821B2 (ja) | 並列処理装置 | |
JP3147884B2 (ja) | 記憶装置及び情報処理装置 | |
JP2927281B2 (ja) | 並列処理装置 | |
JP2785820B2 (ja) | 並列処理装置 |