JPH07200542A - ベクトル処理装置 - Google Patents
ベクトル処理装置Info
- Publication number
- JPH07200542A JPH07200542A JP33811793A JP33811793A JPH07200542A JP H07200542 A JPH07200542 A JP H07200542A JP 33811793 A JP33811793 A JP 33811793A JP 33811793 A JP33811793 A JP 33811793A JP H07200542 A JPH07200542 A JP H07200542A
- Authority
- JP
- Japan
- Prior art keywords
- pipeline
- unit
- vector
- arithmetic
- pipelines
- 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.)
- Withdrawn
Links
Landscapes
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】
【目的】 本発明は、主記憶装置上の一連のデータを順
次演算パイプラインに入力して演算するベクトル処理装
置に関し、スループットの少ない演算パイプラインにつ
いて全体の演算効率を落とすことなく演算処理可能とし
て、演算スループットの向上をはかるとともに、総和,
検索等のベクトルマクロ命令の収束期間を追越し防止制
御から切り離すようにして性能の向上をはかることを目
的とする。 【構成】 他のパイプラインに比べ低スループットのパ
イプラインが1つでもある場合、バンク管理部によりパ
イプラインのベクトルレジスタへのアクセスタイミング
を規定する際、低スループットのパイプラインがベクト
ルレジスタをアクセスするタイミング(DR1/DR2/DW3) と
して、メモリアクセスパイプライン用のタイミング(SR)
を用いるように構成するほか、追越し防止信号の伝送路
上に変更部を追加し、該当命令の収束期間の通知信号に
より信号を変更可能に構成する。
次演算パイプラインに入力して演算するベクトル処理装
置に関し、スループットの少ない演算パイプラインにつ
いて全体の演算効率を落とすことなく演算処理可能とし
て、演算スループットの向上をはかるとともに、総和,
検索等のベクトルマクロ命令の収束期間を追越し防止制
御から切り離すようにして性能の向上をはかることを目
的とする。 【構成】 他のパイプラインに比べ低スループットのパ
イプラインが1つでもある場合、バンク管理部によりパ
イプラインのベクトルレジスタへのアクセスタイミング
を規定する際、低スループットのパイプラインがベクト
ルレジスタをアクセスするタイミング(DR1/DR2/DW3) と
して、メモリアクセスパイプライン用のタイミング(SR)
を用いるように構成するほか、追越し防止信号の伝送路
上に変更部を追加し、該当命令の収束期間の通知信号に
より信号を変更可能に構成する。
Description
【0001】(目次) 産業上の利用分野 従来の技術(図19) 発明が解決しようとする課題(図19) 課題を解決するための手段(図1,図2) 作用 実施例 (a)第1実施例の説明(図3〜図7) (b)第2実施例の説明(図8〜図18) 発明の効果
【0002】
【産業上の利用分野】本発明は、主記憶装置に格納され
ている一連のデータを順次演算パイプラインに入力して
演算するベクトル処理装置に関する。
ている一連のデータを順次演算パイプラインに入力して
演算するベクトル処理装置に関する。
【0003】
【従来の技術】一般に、ベクトル処理装置においては、
例えば、ベクトルBに属するエレメント・データb0,b
1,…および/またはベクトルCに属するエレメント・デ
ータc 0,c1,…をパイプライン処理によって演算し、そ
の結果得られたa0,a1,…をベクトルAに属するエレメ
ント・データとして抽出することが行なわれる。この場
合、主記憶装置から置換ロードして演算パイプラインに
入力したり、演算パイプラインから主記憶装置に置換ス
トアしたりすることは、主記憶装置のアクセス速度に制
限され、処理速度が遅くなってしまう。
例えば、ベクトルBに属するエレメント・データb0,b
1,…および/またはベクトルCに属するエレメント・デ
ータc 0,c1,…をパイプライン処理によって演算し、そ
の結果得られたa0,a1,…をベクトルAに属するエレメ
ント・データとして抽出することが行なわれる。この場
合、主記憶装置から置換ロードして演算パイプラインに
入力したり、演算パイプラインから主記憶装置に置換ス
トアしたりすることは、主記憶装置のアクセス速度に制
限され、処理速度が遅くなってしまう。
【0004】このため、通常、主記憶装置と演算パイプ
ラインとの間に、複数個のバンク単位により構成されイ
ンターリーブ構造をもつベクトル・レジスタをそなえる
ことが行なわれている。このベクトル・レジスタは、1
つのベクトル・レジスタに属するエレメント・データの
例えば第i番目のデータと第(i+1)番目のデータと
が互いに異なるバンク単位に格納されるように構成さ
れ、各バンク単位の読出出力が互いに異なるパスを介し
て演算パイプラインに供給されるように構成されるとと
もに、演算パイプラインから得られた演算結果を互いに
異なるパスを介して各バンク単位に書き込むように構成
されている。
ラインとの間に、複数個のバンク単位により構成されイ
ンターリーブ構造をもつベクトル・レジスタをそなえる
ことが行なわれている。このベクトル・レジスタは、1
つのベクトル・レジスタに属するエレメント・データの
例えば第i番目のデータと第(i+1)番目のデータと
が互いに異なるバンク単位に格納されるように構成さ
れ、各バンク単位の読出出力が互いに異なるパスを介し
て演算パイプラインに供給されるように構成されるとと
もに、演算パイプラインから得られた演算結果を互いに
異なるパスを介して各バンク単位に書き込むように構成
されている。
【0005】この演算パイプラインが複数ある場合、演
算パイプラインからの要請によってベクトル・レジスタ
へ同時に並列的にアクセスすることが可能な数は、例え
ば8バンク単位にインターリーブされているとすれば、
8個まで可能である。従って、各演算パイプラインから
ベクトル・レジスタへのアクセスにおいて、同時に同一
のバンク単位にアクセスしないように、また、各バンク
単位ないし各演算パイプラインが効率よく動作するよう
に、ベクトル・レジスタへのアクセス・タイミングを管
理することが極めて重要となる。
算パイプラインからの要請によってベクトル・レジスタ
へ同時に並列的にアクセスすることが可能な数は、例え
ば8バンク単位にインターリーブされているとすれば、
8個まで可能である。従って、各演算パイプラインから
ベクトル・レジスタへのアクセスにおいて、同時に同一
のバンク単位にアクセスしないように、また、各バンク
単位ないし各演算パイプラインが効率よく動作するよう
に、ベクトル・レジスタへのアクセス・タイミングを管
理することが極めて重要となる。
【0006】ベクトル・レジスタへの各エレメント・デ
ータの格納に際し、例えば上述のエレメント・データb
0,b1,…,c0,c1,…については同じエレメント番号の
データが演算される関係から、同じタイミングで読出を
行なうと好都合であるため、可能な限り異なったバンク
単位に位置するように格納されている。従って、ベクト
ル・レジスタへアクセスするためのハードウェアでは、
各エレメント・データの最初の格納アドレス(例えば第
0番目のエレメントに対するバンク情報)について記憶
する手段が必要であるとともに、同時に同一のバンク単
位へアクセスしないような作用が必要となり、アクセス
制御のためのハードウェアが複雑になってしまう。
ータの格納に際し、例えば上述のエレメント・データb
0,b1,…,c0,c1,…については同じエレメント番号の
データが演算される関係から、同じタイミングで読出を
行なうと好都合であるため、可能な限り異なったバンク
単位に位置するように格納されている。従って、ベクト
ル・レジスタへアクセスするためのハードウェアでは、
各エレメント・データの最初の格納アドレス(例えば第
0番目のエレメントに対するバンク情報)について記憶
する手段が必要であるとともに、同時に同一のバンク単
位へアクセスしないような作用が必要となり、アクセス
制御のためのハードウェアが複雑になってしまう。
【0007】そこで、従来より、インターリーブされた
複数のバンク単位に複数のエレメント・データを記憶す
るベクトル・レジスタと、このベクトルレジスタの各エ
レメント・データをアクセスする演算パイプラインおよ
びメモリ・アクセス・パイプラインと、これらのパイプ
ラインが各バンク単位をアクセスできるタイミングを示
すバンクスロットを管理するバンク管理部とを有するベ
クトル処理装置において、各パイプラインを起動する時
点で、バンク管理部からバンクスロット信号を送出する
ことにより、各パイプラインのアクセスタイミングを規
定することが行なわれている(例えば特開昭57−31
079号公報参照)。
複数のバンク単位に複数のエレメント・データを記憶す
るベクトル・レジスタと、このベクトルレジスタの各エ
レメント・データをアクセスする演算パイプラインおよ
びメモリ・アクセス・パイプラインと、これらのパイプ
ラインが各バンク単位をアクセスできるタイミングを示
すバンクスロットを管理するバンク管理部とを有するベ
クトル処理装置において、各パイプラインを起動する時
点で、バンク管理部からバンクスロット信号を送出する
ことにより、各パイプラインのアクセスタイミングを規
定することが行なわれている(例えば特開昭57−31
079号公報参照)。
【0008】このような従来のベクトル処理装置におけ
るバンクスロットのタイミング例について、図19を参
照しながら説明する。この図19において、B0〜B7
はそれぞれ8個のバンク単位を示し、LWは、メモリ・
アクセス・パイプラインのうちのロード・パイプライン
が主記憶装置(メモリ)からベクトル・レジスタにデー
タを書き込むタイミングを示し、SRは、メモリ・アク
セス・パイプラインのうちのストア・パイプラインがベ
クトル・レジスタから主記憶装置へ読み出すタイミング
を示す。
るバンクスロットのタイミング例について、図19を参
照しながら説明する。この図19において、B0〜B7
はそれぞれ8個のバンク単位を示し、LWは、メモリ・
アクセス・パイプラインのうちのロード・パイプライン
が主記憶装置(メモリ)からベクトル・レジスタにデー
タを書き込むタイミングを示し、SRは、メモリ・アク
セス・パイプラインのうちのストア・パイプラインがベ
クトル・レジスタから主記憶装置へ読み出すタイミング
を示す。
【0009】また、E,Fはそれぞれ例えば2種類の演
算パイプライン(乗算もしくは加算パイプライン)が動
作するバンクスロットの区別を示し、各E,Fに付され
たR,Wはそれぞれ各オペランドによるベクトル・レジ
スタから各演算パイプラインへの読出(READ),各演算パ
イプラインからベクトル・レジスタへの書込(WRITE)に
対応するものであり、R,Wに付された数字1,2,3
はそれぞれ各オペランドOP1,OP2,OP3の番号
に対応している(OP1*OP2⇒OP3;*は演算
子)。
算パイプライン(乗算もしくは加算パイプライン)が動
作するバンクスロットの区別を示し、各E,Fに付され
たR,Wはそれぞれ各オペランドによるベクトル・レジ
スタから各演算パイプラインへの読出(READ),各演算パ
イプラインからベクトル・レジスタへの書込(WRITE)に
対応するものであり、R,Wに付された数字1,2,3
はそれぞれ各オペランドOP1,OP2,OP3の番号
に対応している(OP1*OP2⇒OP3;*は演算
子)。
【0010】さらに、(0)〜(7)はカウント値を示
している。この図19に示すように、従来、演算パイプ
ラインのように固定パイプライン長として割り当てるバ
ンクスロットには、ER1,ER2,EW3が割り当て
られ、メモリ・アクセス・パイプラインのようにパイプ
ライン長が不定のパイプラインには、LWまたはSRが
割り当てられている。
している。この図19に示すように、従来、演算パイプ
ラインのように固定パイプライン長として割り当てるバ
ンクスロットには、ER1,ER2,EW3が割り当て
られ、メモリ・アクセス・パイプラインのようにパイプ
ライン長が不定のパイプラインには、LWまたはSRが
割り当てられている。
【0011】一方、ベクトル処理装置では、処理を高速
化するために、1つの命令の実行完了を待たずに後続の
命令の実行を開始するが、処理スループットの異なるパ
イプライン間で結果オペランドと入力オペランドとに依
存関係がある場合には、追越し防止制御を行なう必要が
ある。複数のパイプライン間のデータリンクの状況を正
確に確認して適切な追越し防止制御を行なうには、物量
的なインパクトが大きく、遅延時間も大きくなるので、
現実的ではない。
化するために、1つの命令の実行完了を待たずに後続の
命令の実行を開始するが、処理スループットの異なるパ
イプライン間で結果オペランドと入力オペランドとに依
存関係がある場合には、追越し防止制御を行なう必要が
ある。複数のパイプライン間のデータリンクの状況を正
確に確認して適切な追越し防止制御を行なうには、物量
的なインパクトが大きく、遅延時間も大きくなるので、
現実的ではない。
【0012】そのため、適切さは欠くが簡便な手法が従
来より使用されている。その1つが、少なくとも1つの
演算パイプラインがリンク状態にあるときには、追越し
禁止制御を行なう際に、対象とする演算パイプラインの
みでなく、全演算パイプラインに対して追越し禁止制御
を適用するという手法である。つまり、従来の追越し制
御防止部は、ロード命令が他のパイプラインとリンク動
作(チェイニングともいう)を開始するという情報を命
令発信/管理部から受け取ると、そのロード命令が完了
するまで、追越し防止制御を活性化する。追越し防止制
御部は、リンク動作しているロード・パイプラインが、
メモリ・バス・コンフリクト等の要因で、所定のスルー
プットを下回るおそれがあることを検出すると、追越し
防止制御信号を立ち上げることにより、演算パイプライ
ン,ストア・パイプラインの実行を中断させる。
来より使用されている。その1つが、少なくとも1つの
演算パイプラインがリンク状態にあるときには、追越し
禁止制御を行なう際に、対象とする演算パイプラインの
みでなく、全演算パイプラインに対して追越し禁止制御
を適用するという手法である。つまり、従来の追越し制
御防止部は、ロード命令が他のパイプラインとリンク動
作(チェイニングともいう)を開始するという情報を命
令発信/管理部から受け取ると、そのロード命令が完了
するまで、追越し防止制御を活性化する。追越し防止制
御部は、リンク動作しているロード・パイプラインが、
メモリ・バス・コンフリクト等の要因で、所定のスルー
プットを下回るおそれがあることを検出すると、追越し
防止制御信号を立ち上げることにより、演算パイプライ
ン,ストア・パイプラインの実行を中断させる。
【0013】
【発明が解決しようとする課題】ところで、図19に示
すようにバンクスロットのタイミングを設定する場合、
固定長パイプラインの中でも、乗算パイプラインや加算
パイプラインは、各サイクル、演算結果を得ることが可
能であるが、割算パイプラインのように各サイクル毎に
数ビットの結果しか得られないものもある(乗算/加算
時に比べ、1/3以下のパイプラインで、例えば1/7
のスループット)。
すようにバンクスロットのタイミングを設定する場合、
固定長パイプラインの中でも、乗算パイプラインや加算
パイプラインは、各サイクル、演算結果を得ることが可
能であるが、割算パイプラインのように各サイクル毎に
数ビットの結果しか得られないものもある(乗算/加算
時に比べ、1/3以下のパイプラインで、例えば1/7
のスループット)。
【0014】このようなスループットの少ない演算パイ
プライン、つまり読出あるいは書込に要するバンクの使
用時間が少ない演算パイプラインが、バンクスロット
(ER1,ER2,EW3,FR1,FR2,FW3)
を占有することは、全体の演算効率を落とし、ベクトル
処理装置全体のスループットの低下を招くという課題が
あった。
プライン、つまり読出あるいは書込に要するバンクの使
用時間が少ない演算パイプラインが、バンクスロット
(ER1,ER2,EW3,FR1,FR2,FW3)
を占有することは、全体の演算効率を落とし、ベクトル
処理装置全体のスループットの低下を招くという課題が
あった。
【0015】また、従来の追越し防止制御方式では、他
のパイプラインの動作フェイズには関与しないため、過
剰にパイプラインを止めてしまうことがある。例えば、
総和命令,検索命令,抽出命令のように最終的に1つの
結果を求める演算では、演算途中で発生する中間的な結
果をまとめ上げるための収束期間が存在するが、このよ
うな収束期間は、原理的に前述のリンク動作とは独立に
動作することが可能であるにもかかわらず、従来の追越
し防止制御では、その追越し防止制御信号による処理停
止のために収束処理までも停止してしまい、処理速度の
低下を招くなどの課題もあった。
のパイプラインの動作フェイズには関与しないため、過
剰にパイプラインを止めてしまうことがある。例えば、
総和命令,検索命令,抽出命令のように最終的に1つの
結果を求める演算では、演算途中で発生する中間的な結
果をまとめ上げるための収束期間が存在するが、このよ
うな収束期間は、原理的に前述のリンク動作とは独立に
動作することが可能であるにもかかわらず、従来の追越
し防止制御では、その追越し防止制御信号による処理停
止のために収束処理までも停止してしまい、処理速度の
低下を招くなどの課題もあった。
【0016】本発明はこのような課題に鑑み創案された
もので、本発明の第1の目的は、スループットの少ない
演算パイプラインについて、全体の演算効率を落とすこ
となく演算処理を行なえるようにして、演算スループッ
トの向上をはかったベクトル処理装置を提供することで
ある。また、本発明の第2の目的は、演算パイプライン
が総和,検索等のベクトルマクロ命令の収束処理のシー
ケンス実行中である場合には、追越し防止制御を行なわ
ないように制御することにより、処理速度の改善をはか
ったベクトル処理装置を提供することである。
もので、本発明の第1の目的は、スループットの少ない
演算パイプラインについて、全体の演算効率を落とすこ
となく演算処理を行なえるようにして、演算スループッ
トの向上をはかったベクトル処理装置を提供することで
ある。また、本発明の第2の目的は、演算パイプライン
が総和,検索等のベクトルマクロ命令の収束処理のシー
ケンス実行中である場合には、追越し防止制御を行なわ
ないように制御することにより、処理速度の改善をはか
ったベクトル処理装置を提供することである。
【0017】
【課題を解決するための手段】図1は第1の発明の原理
説明図である。第1の発明のベクトル処理装置も、基本
的には従来のベクトル処理装置と同様に、インターリー
ブされた複数のバンク単位に複数のエレメント・データ
を記憶するベクトル・レジスタと、このベクトル・レジ
スタの各エレメント・データをアクセスする複数の演算
パイプラインおよび1つまたは複数のメモリ・アクセス
・パイプラインと、これらのパイプラインが各バンク単
位をアクセスできるタイミングを示すバンクスロットを
管理するバンク管理部とから構成され、演算パイプライ
ンおよびメモリ・アクセス・パイプラインがベクトル・
レジスタの各バンク単位を順次アクセスして各エレメン
ト・データが処理されるようになっている。
説明図である。第1の発明のベクトル処理装置も、基本
的には従来のベクトル処理装置と同様に、インターリー
ブされた複数のバンク単位に複数のエレメント・データ
を記憶するベクトル・レジスタと、このベクトル・レジ
スタの各エレメント・データをアクセスする複数の演算
パイプラインおよび1つまたは複数のメモリ・アクセス
・パイプラインと、これらのパイプラインが各バンク単
位をアクセスできるタイミングを示すバンクスロットを
管理するバンク管理部とから構成され、演算パイプライ
ンおよびメモリ・アクセス・パイプラインがベクトル・
レジスタの各バンク単位を順次アクセスして各エレメン
ト・データが処理されるようになっている。
【0018】そして、第1の発明では、複数の演算パイ
プラインの中に、他の演算パイプラインに比べて演算ス
ループットの低い演算パイプラインを少なくとも1つ有
する場合、図1に示すように、バンク管理部により、複
数の演算パイプラインのうちの演算スループットの低い
演算パイプラインがベクトル・レジスタをアクセスする
タイミング(DR1,DR2,DW3)は、メモリ・ア
クセス・パイプラインとして割り付けられたタイミン
グ、特にメモリ・アクセス・パイプラインのうちのスト
ア・パイプラインがベクトル・レジスタから主記憶部へ
ストア動作する読み出しタイミング(SR)のバンクス
ロットに対して割り当てられている(請求項1,2)。
なお、図1中の各符号は、図19により前述したものと
同様であるが、Dは、演算スループットの低い演算パイ
プラインが動作するバンクスロットの区別を示してい
る。
プラインの中に、他の演算パイプラインに比べて演算ス
ループットの低い演算パイプラインを少なくとも1つ有
する場合、図1に示すように、バンク管理部により、複
数の演算パイプラインのうちの演算スループットの低い
演算パイプラインがベクトル・レジスタをアクセスする
タイミング(DR1,DR2,DW3)は、メモリ・ア
クセス・パイプラインとして割り付けられたタイミン
グ、特にメモリ・アクセス・パイプラインのうちのスト
ア・パイプラインがベクトル・レジスタから主記憶部へ
ストア動作する読み出しタイミング(SR)のバンクス
ロットに対して割り当てられている(請求項1,2)。
なお、図1中の各符号は、図19により前述したものと
同様であるが、Dは、演算スループットの低い演算パイ
プラインが動作するバンクスロットの区別を示してい
る。
【0019】また、図2は第2の発明の原理ブロック図
で、この図2において、21はインターリーブされた複
数のバンク単位に複数のエレメント・データを記憶する
ベクトル・レジスタ、22はベクトル・レジスタ21上
のデータを入力オペランドとするかもしくは演算結果を
ベクトル・レジスタ21に書き込む1つまたは複数の演
算パイプライン、23は主記憶部24からベクトル・レ
ジスタ21へデータを転送する1つまたは複数のロード
・パイプラインである。
で、この図2において、21はインターリーブされた複
数のバンク単位に複数のエレメント・データを記憶する
ベクトル・レジスタ、22はベクトル・レジスタ21上
のデータを入力オペランドとするかもしくは演算結果を
ベクトル・レジスタ21に書き込む1つまたは複数の演
算パイプライン、23は主記憶部24からベクトル・レ
ジスタ21へデータを転送する1つまたは複数のロード
・パイプラインである。
【0020】また、25は追越し防止制御部で、この追
越し防止制御部25は、ロード・パイプライン23から
ベクトル・レジスタ21へデータを転送する命令の実行
中に、ロード・パイプライン23がベクトル・レジスタ
21に書き込んだデータを入力オペランドとする後続の
演算命令を演算パイプライン22が実行する場合、命令
の実行順序を保証するために、ロード・パイプライン2
3の実行を後続の演算パイプライン22の処理が追い越
す条件を検出した時に、全ての演算パイプライン22の
実行を一時中断するものである。
越し防止制御部25は、ロード・パイプライン23から
ベクトル・レジスタ21へデータを転送する命令の実行
中に、ロード・パイプライン23がベクトル・レジスタ
21に書き込んだデータを入力オペランドとする後続の
演算命令を演算パイプライン22が実行する場合、命令
の実行順序を保証するために、ロード・パイプライン2
3の実行を後続の演算パイプライン22の処理が追い越
す条件を検出した時に、全ての演算パイプライン22の
実行を一時中断するものである。
【0021】そして、第2の発明では、変更部26が新
たにそなえられている。この変更部26は、ベクトル・
レジスタ21からのデータ供給を受けるリード処理期間
と、リード処理期間後に結果をまとめ上げる収束期間と
を必要とするベクトル命令については、該当ベクトル命
令の収束処理を実行中の演算パイプライン22に対する
追越し防止制御を行なわないように、追越し防止制御部
25から出力される追越し防止制御信号を変更するもの
である(請求項3)。
たにそなえられている。この変更部26は、ベクトル・
レジスタ21からのデータ供給を受けるリード処理期間
と、リード処理期間後に結果をまとめ上げる収束期間と
を必要とするベクトル命令については、該当ベクトル命
令の収束処理を実行中の演算パイプライン22に対する
追越し防止制御を行なわないように、追越し防止制御部
25から出力される追越し防止制御信号を変更するもの
である(請求項3)。
【0022】なお、この変更部26は、演算パイプライ
ン22にそなえてもよい(請求項4)。また、該当ベク
トル命令の収束処理を実行中の演算パイプライン22
が、基本演算器と収束を処理する付加演算器とを有する
構成のもので、収束処理を該付加演算器により実行し、
収束処理中、基本演算器により後続の他の演算命令を実
行できるものである場合には、収束処理中、変更部26
が、付加演算器に対してのみ追越し防止制御を行なわな
いように、追越し防止制御信号を変更してもよい(請求
項5)。
ン22にそなえてもよい(請求項4)。また、該当ベク
トル命令の収束処理を実行中の演算パイプライン22
が、基本演算器と収束を処理する付加演算器とを有する
構成のもので、収束処理を該付加演算器により実行し、
収束処理中、基本演算器により後続の他の演算命令を実
行できるものである場合には、収束処理中、変更部26
が、付加演算器に対してのみ追越し防止制御を行なわな
いように、追越し防止制御信号を変更してもよい(請求
項5)。
【0023】
【作用】上述した第1の発明のベクトル処理装置(請求
項1,2)では、演算パイプラインのように固定長のパ
イプラインにおいても、特にスループットの少ないパイ
プラインを、メモリ・アクセス・パイプラインのような
1つのバンクスロットしか使用しないパイプラインと共
用することにより、演算パイプラインをオーバラップさ
せて実行している。
項1,2)では、演算パイプラインのように固定長のパ
イプラインにおいても、特にスループットの少ないパイ
プラインを、メモリ・アクセス・パイプラインのような
1つのバンクスロットしか使用しないパイプラインと共
用することにより、演算パイプラインをオーバラップさ
せて実行している。
【0024】また、上述した第2の発明のベクトル処理
装置(請求項3)では、追越し防止制御部25から追越
し防止制御信号が出力された際に、演算パイプライン2
2が収束処理のシーケンスを実行中で、収束期間条件が
成立している間は、変更部26により追越し防止制御部
25からの追越し防止制御信号が変更され、収束処理中
の演算パイプライン22に対する追越し防止制御が禁止
される。
装置(請求項3)では、追越し防止制御部25から追越
し防止制御信号が出力された際に、演算パイプライン2
2が収束処理のシーケンスを実行中で、収束期間条件が
成立している間は、変更部26により追越し防止制御部
25からの追越し防止制御信号が変更され、収束処理中
の演算パイプライン22に対する追越し防止制御が禁止
される。
【0025】なお、この変更部26を演算パイプライン
22にそなえた場合には、収束処理を実行中の演算パイ
プラインが、追越し防止制御部25からの追越し防止制
御のための信号を無視する形で、演算パイプライン22
に対する追越し防止制御部25による追越し防止制御が
禁止される(請求項4)。また、収束処理中の演算パイ
プライン22が基本演算器と収束処理用の付加演算器と
をもつものである場合には、変更部26により追越し防
止制御部25からの追越し防止制御信号を変更すること
で、付加演算器に対してのみ追越し防止制御が禁止され
る(請求項5)。
22にそなえた場合には、収束処理を実行中の演算パイ
プラインが、追越し防止制御部25からの追越し防止制
御のための信号を無視する形で、演算パイプライン22
に対する追越し防止制御部25による追越し防止制御が
禁止される(請求項4)。また、収束処理中の演算パイ
プライン22が基本演算器と収束処理用の付加演算器と
をもつものである場合には、変更部26により追越し防
止制御部25からの追越し防止制御信号を変更すること
で、付加演算器に対してのみ追越し防止制御が禁止され
る(請求項5)。
【0026】
【実施例】以下、図面を参照して本発明の実施例を説明
する。 (a)第1実施例の説明 図3は本発明の第1実施例としてのベクトル処理装置を
示すブロック図で、この図3において、1−0,1−
1,…,1−nはそれぞれベクトル・レジスタで、各ベ
クトル・レジスタ1−0,1−1,…,1−nは、それ
ぞれ、インターリーブされたバンク単位B0,B1,
…,B7(本実施例では8バンク単位の場合を示す)に
複数のエレメント・データを記憶するものである。
する。 (a)第1実施例の説明 図3は本発明の第1実施例としてのベクトル処理装置を
示すブロック図で、この図3において、1−0,1−
1,…,1−nはそれぞれベクトル・レジスタで、各ベ
クトル・レジスタ1−0,1−1,…,1−nは、それ
ぞれ、インターリーブされたバンク単位B0,B1,
…,B7(本実施例では8バンク単位の場合を示す)に
複数のエレメント・データを記憶するものである。
【0027】2は主記憶部20とベクトル・レジスタ1
−0,1−1,…,1−nとの間において各エレメント
・データを高速にロードないしストアすべくパイプライ
ン構成されたメモリ・アクセス・パイプラインで、ロー
ド・パイプライン2Aおよびストア・パイプライン2B
を有している。ここで、ロード・パイプライン2Aは、
主記憶部20からのエレメント・データをベクトル・レ
ジスタ1−0,1−1,…,1−nへロードするための
ものであり、ストア・パイプライン2Bは、ベクトル・
レジスタ1−0,1−1,…,1−nに格納されたエレ
メント・データを主記憶部20へストアするためのもの
である。
−0,1−1,…,1−nとの間において各エレメント
・データを高速にロードないしストアすべくパイプライ
ン構成されたメモリ・アクセス・パイプラインで、ロー
ド・パイプライン2Aおよびストア・パイプライン2B
を有している。ここで、ロード・パイプライン2Aは、
主記憶部20からのエレメント・データをベクトル・レ
ジスタ1−0,1−1,…,1−nへロードするための
ものであり、ストア・パイプライン2Bは、ベクトル・
レジスタ1−0,1−1,…,1−nに格納されたエレ
メント・データを主記憶部20へストアするためのもの
である。
【0028】3Aはメモリ・アクセス・パイプライン2
のロード・パイプライン2Aからのエレメント・データ
をベクトル・レジスタ1−0,1−1,…,1−nにお
ける各バンク単位B0〜B7に書き込むための書込レジ
スタ、3B−0,3B−1,…,3B−mはそれぞれ後
述する演算パイプライン5−0,5−1,…,5−mか
らのエレメント・データ(演算結果)をベクトル・レジ
スタ1−0,1−1,…,1−nにおける各バンク単位
B0〜B7に書き込むための書込レジスタである。
のロード・パイプライン2Aからのエレメント・データ
をベクトル・レジスタ1−0,1−1,…,1−nにお
ける各バンク単位B0〜B7に書き込むための書込レジ
スタ、3B−0,3B−1,…,3B−mはそれぞれ後
述する演算パイプライン5−0,5−1,…,5−mか
らのエレメント・データ(演算結果)をベクトル・レジ
スタ1−0,1−1,…,1−nにおける各バンク単位
B0〜B7に書き込むための書込レジスタである。
【0029】4Aはベクトル・レジスタ1−0,1−
1,…,1−nに格納されたエレメント・データをメモ
リ・アクセス・パイプライン2のストア・パイプライン
2Bへ読み出すための読出レジスタである。また、4B
−0,4C−0;4B−1,4C−1;…;4B−m,
4C−mはそれぞれ後述する演算パイプライン5−0,
5−1,…,5−m毎にそなえられた一対の読出レジス
タで、各対の読出レジスタ4B−0,4C−0;4B−
1,4C−1;…;4B−m,4C−mは、それぞれ、
演算対象となる一対のエレメント・データを演算パイプ
ライン5−0,5−1,…,5−mに入力すべく、その
一対のエレメント・データをベクトル・レジスタ1−
0,1−1,…,1−nにおける各バンク単位B0〜B
7から読み出すためのものである。
1,…,1−nに格納されたエレメント・データをメモ
リ・アクセス・パイプライン2のストア・パイプライン
2Bへ読み出すための読出レジスタである。また、4B
−0,4C−0;4B−1,4C−1;…;4B−m,
4C−mはそれぞれ後述する演算パイプライン5−0,
5−1,…,5−m毎にそなえられた一対の読出レジス
タで、各対の読出レジスタ4B−0,4C−0;4B−
1,4C−1;…;4B−m,4C−mは、それぞれ、
演算対象となる一対のエレメント・データを演算パイプ
ライン5−0,5−1,…,5−mに入力すべく、その
一対のエレメント・データをベクトル・レジスタ1−
0,1−1,…,1−nにおける各バンク単位B0〜B
7から読み出すためのものである。
【0030】5−0,5−1,…,5−mは演算パイプ
ラインで、これらの演算パイプライン5−0,5−1,
…,5−mは、それぞれ、一対の読出レジスタ4B−
0,4C−0;4B−1,4C−1;…;4B−m,4
C−mを介して入力されたエレメント・データに対して
四則演算等の演算処理を施し、その演算結果(エレメン
ト・データ)を出力するものである。
ラインで、これらの演算パイプライン5−0,5−1,
…,5−mは、それぞれ、一対の読出レジスタ4B−
0,4C−0;4B−1,4C−1;…;4B−m,4
C−mを介して入力されたエレメント・データに対して
四則演算等の演算処理を施し、その演算結果(エレメン
ト・データ)を出力するものである。
【0031】そして、6は各種のベクトル演算命令を出
力する命令制御部、7は命令制御部6からの命令を受け
て動作するバンク管理部で、このバンク管理部7は、メ
モリ・アクセス・パイプライン2および演算パイプライ
ン5−0,5−1,…,5−mがベクトル・レジスタ1
−0,1−1,…,1−nにおける各バンク単位B0〜
B7をアクセスできるタイミングを示すバンクスロット
を管理するもので、各バンク単位B0〜B7へのアクセ
ス・タイミングを規制するバンクスロット・カウンタ7
aを有している。
力する命令制御部、7は命令制御部6からの命令を受け
て動作するバンク管理部で、このバンク管理部7は、メ
モリ・アクセス・パイプライン2および演算パイプライ
ン5−0,5−1,…,5−mがベクトル・レジスタ1
−0,1−1,…,1−nにおける各バンク単位B0〜
B7をアクセスできるタイミングを示すバンクスロット
を管理するもので、各バンク単位B0〜B7へのアクセ
ス・タイミングを規制するバンクスロット・カウンタ7
aを有している。
【0032】次に、上述のようなベクトル処理装置の一
般的な動作について説明する。図3に示す本実施例のベ
クトル処理装置では、各ベクトル・レジスタ1−0,1
−1,…,1−nは、各バンク単位B0〜B7にそれぞ
れ分散するように対応付けられている。そして、各ベク
トル・レジスタ1−0,1−1,…,1−nに格納され
るエレメント・データは、第0番目のデータがバンク単
位B0に記憶され、第1番目のデータがバンク単位B1
に記憶され、第7番目のデータがバンク単位B7に記憶
されるというように各バンク単位に順次記憶され、いわ
ゆるインターリーブした形に格納され、同じナンバのデ
ータが同じバンク単位に位置するように格納される。
般的な動作について説明する。図3に示す本実施例のベ
クトル処理装置では、各ベクトル・レジスタ1−0,1
−1,…,1−nは、各バンク単位B0〜B7にそれぞ
れ分散するように対応付けられている。そして、各ベク
トル・レジスタ1−0,1−1,…,1−nに格納され
るエレメント・データは、第0番目のデータがバンク単
位B0に記憶され、第1番目のデータがバンク単位B1
に記憶され、第7番目のデータがバンク単位B7に記憶
されるというように各バンク単位に順次記憶され、いわ
ゆるインターリーブした形に格納され、同じナンバのデ
ータが同じバンク単位に位置するように格納される。
【0033】例えば、ベクトルBに属するエレメント・
データb0,b1,…が主記憶部20からロードされてベク
トル・レジスタ1−1内に格納されているものとし、ま
たベクトルCに属するエレメント・データc0,c1,…が
同様にベクトル・レジスタ1−2に格納されているもの
とする。この状態で、例えば、命令制御部6からバンク
管理部7に対して、ベクトル加算命令「OP1〔#1V
R(i)〕+OP2〔#2VR(i)〕⇒OP3〔#0
VR(i)〕」が与えられたとすると、バンク管理部7
により、次のごとく〜の処理(図4参照)が実行さ
れる。なお、本実施例では、演算パイプライン(加算パ
イプライン)5−0が3段のステップ段数をもつものと
する(図4参照)。
データb0,b1,…が主記憶部20からロードされてベク
トル・レジスタ1−1内に格納されているものとし、ま
たベクトルCに属するエレメント・データc0,c1,…が
同様にベクトル・レジスタ1−2に格納されているもの
とする。この状態で、例えば、命令制御部6からバンク
管理部7に対して、ベクトル加算命令「OP1〔#1V
R(i)〕+OP2〔#2VR(i)〕⇒OP3〔#0
VR(i)〕」が与えられたとすると、バンク管理部7
により、次のごとく〜の処理(図4参照)が実行さ
れる。なお、本実施例では、演算パイプライン(加算パ
イプライン)5−0が3段のステップ段数をもつものと
する(図4参照)。
【0034】ここで、#0VR(i),#1VR
(i),#2VR(i)はそれぞれベクトル・レジスタ
1−0,1−1,1−2の各バンク単位Biに格納され
るデータを意味し、上記ベクトル加算命令は、ベクトル
・レジスタ1−1に格納された各エレメント・データ
と、ベクトル・レジスタ1−2に格納された各エレメン
ト・データとを加算し、その加算結果(エレメント・デ
ータ)をベクトル・レジスタ1−0に格納する命令とな
っている。
(i),#2VR(i)はそれぞれベクトル・レジスタ
1−0,1−1,1−2の各バンク単位Biに格納され
るデータを意味し、上記ベクトル加算命令は、ベクトル
・レジスタ1−1に格納された各エレメント・データ
と、ベクトル・レジスタ1−2に格納された各エレメン
ト・データとを加算し、その加算結果(エレメント・デ
ータ)をベクトル・レジスタ1−0に格納する命令とな
っている。
【0035】タイミング・サイクル(バンクスロット
・カウンタ7aによりカウントされるカウント値に対応
するもの)T0,T1,…において、バンク単位B0,
B1,…,B7,…に対して、順次、リード・アクセス
が行なわれ、その結果、読出レジスタ4B−0,4C−
0を介して、エレメント・データb0,b1,…およびc 0,
c1,…が、順次、ベクトル・レジスタ1−1,1−2か
ら読み出される。
・カウンタ7aによりカウントされるカウント値に対応
するもの)T0,T1,…において、バンク単位B0,
B1,…,B7,…に対して、順次、リード・アクセス
が行なわれ、その結果、読出レジスタ4B−0,4C−
0を介して、エレメント・データb0,b1,…およびc 0,
c1,…が、順次、ベクトル・レジスタ1−1,1−2か
ら読み出される。
【0036】タイミング・サイクルT2において、デ
ータb0 とc0 とは演算パイプライン5−0のステップ
Iに入力される。 タイミング・サイクルT3において、データb0 とc
0 とは演算パイプライン5−0のステップIIに入力され
ると同時に、データb1 とc1 とが演算パイプライン5
−0のステップIに入力される。
ータb0 とc0 とは演算パイプライン5−0のステップ
Iに入力される。 タイミング・サイクルT3において、データb0 とc
0 とは演算パイプライン5−0のステップIIに入力され
ると同時に、データb1 とc1 とが演算パイプライン5
−0のステップIに入力される。
【0037】タイミング・サイクルT4において、デ
ータb0 とc0 とは演算パイプライン5−0のステップ
III に入力され、データb1 とc1 とは演算パイプライ
ン5−0のステップIIに入力されると同時に、データb
2 とc2 とが演算パイプライン5−0のステップIに入
力される。 タイミング・サイクルT5において、データb0 とc
0 との加算結果であるデータa0 が書込レジスタ3B−
0にセットされる。
ータb0 とc0 とは演算パイプライン5−0のステップ
III に入力され、データb1 とc1 とは演算パイプライ
ン5−0のステップIIに入力されると同時に、データb
2 とc2 とが演算パイプライン5−0のステップIに入
力される。 タイミング・サイクルT5において、データb0 とc
0 との加算結果であるデータa0 が書込レジスタ3B−
0にセットされる。
【0038】タイミング・サイクルT6において、こ
のデータa0 が、ベクトル・レジスタ1−0のバンク単
位B0に書き込まれる。以下、順次得られるデータa1,
a2,…が書込レジスタ3B−0にセットされ、書込レジ
スタ3B−0にセットされたデータa1,a2,…は、それ
ぞれ、ベクトル・レジスタ1−0のバンク単位B1,B
2,…,B7,B0,…に順次に書き込まれる。
のデータa0 が、ベクトル・レジスタ1−0のバンク単
位B0に書き込まれる。以下、順次得られるデータa1,
a2,…が書込レジスタ3B−0にセットされ、書込レジ
スタ3B−0にセットされたデータa1,a2,…は、それ
ぞれ、ベクトル・レジスタ1−0のバンク単位B1,B
2,…,B7,B0,…に順次に書き込まれる。
【0039】ここで、演算パイプライン5−0では、同
じナンバ(添字番号)のエレメント・データがステップ
Iに入力されるように、ベクトルB,Cに属するエレメ
ント・データの入力側にタイミングを合わせるためのバ
ッファ・レジスタが1段設けられている。このように構
成することによって、ベクトルB,Cに関して加算し、
その結果得られたベクトルAをバンク単位B0,B1,
…の順にアクセスすることが可能になる。
じナンバ(添字番号)のエレメント・データがステップ
Iに入力されるように、ベクトルB,Cに属するエレメ
ント・データの入力側にタイミングを合わせるためのバ
ッファ・レジスタが1段設けられている。このように構
成することによって、ベクトルB,Cに関して加算し、
その結果得られたベクトルAをバンク単位B0,B1,
…の順にアクセスすることが可能になる。
【0040】ついで、前記の各バンク単位B0〜B7へ
のアクセス制御を簡略化すべく、そのアクセス制御を行
なうバンク管理部7について、図5,図6を参照しなが
ら説明する。図5において、11−1,11−2,11
−3はメモリ・アクセス・パイプライン2もしくは演算
パイプライン5−0,5−1,…,5−mがベクトル・
レジスタ1−0,1−1,…,1−nにアクセスするタ
イミング・サイクル(以下、バンクスロットという)を
記憶する管理レジスタ、12はバンクスロット割当回
路、13はバンクスロットを記憶しメモリ・アクセス・
パイプライン2へ通知する通知レジスタ、14は起動信
号制御部である。
のアクセス制御を簡略化すべく、そのアクセス制御を行
なうバンク管理部7について、図5,図6を参照しなが
ら説明する。図5において、11−1,11−2,11
−3はメモリ・アクセス・パイプライン2もしくは演算
パイプライン5−0,5−1,…,5−mがベクトル・
レジスタ1−0,1−1,…,1−nにアクセスするタ
イミング・サイクル(以下、バンクスロットという)を
記憶する管理レジスタ、12はバンクスロット割当回
路、13はバンクスロットを記憶しメモリ・アクセス・
パイプライン2へ通知する通知レジスタ、14は起動信
号制御部である。
【0041】バンク管理部7では、各バンク単位B0〜
B7にアクセスするパイプライン装置(メモリ・アクセ
ス・パイプライン2もしくは演算パイプライン5−0,
5−1,…,5−m)が同一バンク単位へ同時にアクセ
スすることのないように、さらには無駄な空き時間を生
じない効率のよいアクセスが可能になるアクセス制御を
実現するために、バンクスロット・カウンタ7a(1個
設けられている)を、常時カウントすることによって、
バンクスロットと呼ばれるタイミング・サイクルT0〜
T7を規定し、そのカウンタ出力信号を各パイプライン
装置へ通知している。
B7にアクセスするパイプライン装置(メモリ・アクセ
ス・パイプライン2もしくは演算パイプライン5−0,
5−1,…,5−m)が同一バンク単位へ同時にアクセ
スすることのないように、さらには無駄な空き時間を生
じない効率のよいアクセスが可能になるアクセス制御を
実現するために、バンクスロット・カウンタ7a(1個
設けられている)を、常時カウントすることによって、
バンクスロットと呼ばれるタイミング・サイクルT0〜
T7を規定し、そのカウンタ出力信号を各パイプライン
装置へ通知している。
【0042】なお、このとき、バンクB1をアクセスす
るタイミングは、バンクB0よりも1サイクル遅れた状
態であるため、本カウンタ7aによるカウント値が
“1”の時、1サイクル前でバンクB0をアクセスして
いたパイプラインがバンクB1をアクセスする。従っ
て、バンクスロット・カウンタ7aによるカウント値
は、バンクB0にアクセスするパイプラインの順を示し
ている。
るタイミングは、バンクB0よりも1サイクル遅れた状
態であるため、本カウンタ7aによるカウント値が
“1”の時、1サイクル前でバンクB0をアクセスして
いたパイプラインがバンクB1をアクセスする。従っ
て、バンクスロット・カウンタ7aによるカウント値
は、バンクB0にアクセスするパイプラインの順を示し
ている。
【0043】各管理レジスタ11−1,11−2,11
−3は、各パイプライン装置が有する各バンク単位にデ
ータ転送するためのチャネル(アクセス要求)に対し
て、起動する時点において割り当てられるバンクスロッ
ト番号(B1)を記憶する例えば3ビットの記憶素子
(実際には記憶内容の有効/無効表示のためにさらに1
ビットが必要)で構成されるものであり、パイプライン
装置がベクトル・レジスタ1−0,1−1,…,1−n
にアクセスしている期間、そのチャネル(アクセス要
求)に割り当てられたバンクスロット番号を記憶してい
る。
−3は、各パイプライン装置が有する各バンク単位にデ
ータ転送するためのチャネル(アクセス要求)に対し
て、起動する時点において割り当てられるバンクスロッ
ト番号(B1)を記憶する例えば3ビットの記憶素子
(実際には記憶内容の有効/無効表示のためにさらに1
ビットが必要)で構成されるものであり、パイプライン
装置がベクトル・レジスタ1−0,1−1,…,1−n
にアクセスしている期間、そのチャネル(アクセス要
求)に割り当てられたバンクスロット番号を記憶してい
る。
【0044】バンクスロット割当回路12は、管理レジ
スタ11−1,11−2,11−3の出力と、バンクス
ロット・カウンタ7aの出力とによって、使用中のバン
クスロット番号と現在のバンクスロット番号とを知り、
起動のあるパイプライン装置に対して空き時間の最少と
なるようなバンクスロット番号を割り当てる選択回路で
ある。
スタ11−1,11−2,11−3の出力と、バンクス
ロット・カウンタ7aの出力とによって、使用中のバン
クスロット番号と現在のバンクスロット番号とを知り、
起動のあるパイプライン装置に対して空き時間の最少と
なるようなバンクスロット番号を割り当てる選択回路で
ある。
【0045】ここで、命令制御部6が、バンク管理部7
に起動信号を与え、例えば、メモリ・アクセス・パイプ
ライン2が主記憶部20へアクセスして読出データをベ
クトル・レジスタ1−0へデータ転送するように要求し
たとする。このとき、バンクスロット割当回路12は、
メモリ・アクセス・パイプライン2を起動する時点にお
いて、当該チャネル(アクセス要求)に相当する管理レ
ジスタ11−1,11−2,11−3に、その選択した
バンクスロット番号をセット番号として伝え記憶させ
る。
に起動信号を与え、例えば、メモリ・アクセス・パイプ
ライン2が主記憶部20へアクセスして読出データをベ
クトル・レジスタ1−0へデータ転送するように要求し
たとする。このとき、バンクスロット割当回路12は、
メモリ・アクセス・パイプライン2を起動する時点にお
いて、当該チャネル(アクセス要求)に相当する管理レ
ジスタ11−1,11−2,11−3に、その選択した
バンクスロット番号をセット番号として伝え記憶させ
る。
【0046】図6は上述の動作を詳細に説明するための
もので、この図6に示すように、メモリ・アクセス・パ
イプライン2が起動信号によって起動されると、エレメ
ント・データa0 ,a1 ,…,an (主記憶部20に格
納されているものとする)にメモリ・アクセスが開始さ
れ、アクセス・タイムtA の後に、メモリ・アクセス・
パイプライン2のバッファ・レジスタ(図5には図示せ
ず)にその読出内容がロードされる。
もので、この図6に示すように、メモリ・アクセス・パ
イプライン2が起動信号によって起動されると、エレメ
ント・データa0 ,a1 ,…,an (主記憶部20に格
納されているものとする)にメモリ・アクセスが開始さ
れ、アクセス・タイムtA の後に、メモリ・アクセス・
パイプライン2のバッファ・レジスタ(図5には図示せ
ず)にその読出内容がロードされる。
【0047】各パイプライン装置には、予め決められた
バンクスロット(図1,図7,図19参照)が割り当て
られているので、各パイプライン装置でバンクスロット
・カウンタ7aの出力を参照し、所望のタイミングにな
った時点で、バッファ・レジスタに一時記憶していたエ
レメント・データa0 ,a1 ,…,an をベクトル・レ
ジスタ1−0,…へ順次転送する。最後のデータを転送
すると、パイプライン終了信号によってリセット信号を
バンク管理部7へ送出し、当該転送チャネルに相当する
管理レジスタ11−1または11−2,11−3の内容
をリセットし無効にする。
バンクスロット(図1,図7,図19参照)が割り当て
られているので、各パイプライン装置でバンクスロット
・カウンタ7aの出力を参照し、所望のタイミングにな
った時点で、バッファ・レジスタに一時記憶していたエ
レメント・データa0 ,a1 ,…,an をベクトル・レ
ジスタ1−0,…へ順次転送する。最後のデータを転送
すると、パイプライン終了信号によってリセット信号を
バンク管理部7へ送出し、当該転送チャネルに相当する
管理レジスタ11−1または11−2,11−3の内容
をリセットし無効にする。
【0048】なお、バッファ・レジスタは、主記憶部2
0の読出出力をストローブするタイミングと、バンクス
ロットによりベクトル・レジスタ1−0,…に書き込む
までの期間を調整する複数個のレジスタである。また、
上述した例では、主記憶部20が他のアクセス装置から
の要求によってビジー状態等であることを考慮すると、
起動してからベクトル・レジスタ1−0を使用するまで
の時間が一定でない。即ち、上述の例では、パイプライ
ン長が不定な装置とすることができ、演算パイプライン
5−0,5−1,…,5−mは、ステップ数(即ちパイ
プライン長)が固定であり、主記憶部20の状況に影響
されず起動されてからベクトル・レジスタ1−0を使用
するまでの時間は一定となる。この場合は、図4におい
て説明した通り、演算パイプライン5−0,5−1,
…,5−mが、ベクトル・レジスタ1−0にアクセスす
るタイミング関係は固定となっている。
0の読出出力をストローブするタイミングと、バンクス
ロットによりベクトル・レジスタ1−0,…に書き込む
までの期間を調整する複数個のレジスタである。また、
上述した例では、主記憶部20が他のアクセス装置から
の要求によってビジー状態等であることを考慮すると、
起動してからベクトル・レジスタ1−0を使用するまで
の時間が一定でない。即ち、上述の例では、パイプライ
ン長が不定な装置とすることができ、演算パイプライン
5−0,5−1,…,5−mは、ステップ数(即ちパイ
プライン長)が固定であり、主記憶部20の状況に影響
されず起動されてからベクトル・レジスタ1−0を使用
するまでの時間は一定となる。この場合は、図4におい
て説明した通り、演算パイプライン5−0,5−1,
…,5−mが、ベクトル・レジスタ1−0にアクセスす
るタイミング関係は固定となっている。
【0049】このため、パイプライン長が固定の装置に
おいて、各チャネル(アクセス要求)間のアクセス・タ
イミングのずれを認識することにより、図5に示すごと
く、起動信号制御部14において、使用中のバンクスロ
ット番号,バンクスロット・カウンタ7aの内容および
起動信号に基づき、起動信号のタイミングでバンクスロ
ットのタイミングを判断することが可能である。
おいて、各チャネル(アクセス要求)間のアクセス・タ
イミングのずれを認識することにより、図5に示すごと
く、起動信号制御部14において、使用中のバンクスロ
ット番号,バンクスロット・カウンタ7aの内容および
起動信号に基づき、起動信号のタイミングでバンクスロ
ットのタイミングを判断することが可能である。
【0050】さて、本実施例では、上述のような一般的
な動作を行なうベクトル処理装置において、複数の演算
パイプライン5−0,5−1,…,5−mの中に、他の
演算パイプラインに比べて演算スループットの低い演算
パイプラインとして、割算パイプライン15(6個の割
算器5a〜5fを有してなるパイプライン)を有する場
合に、バンク管理部7は、図7に示すように、バンクス
ロットを管理している。
な動作を行なうベクトル処理装置において、複数の演算
パイプライン5−0,5−1,…,5−mの中に、他の
演算パイプラインに比べて演算スループットの低い演算
パイプラインとして、割算パイプライン15(6個の割
算器5a〜5fを有してなるパイプライン)を有する場
合に、バンク管理部7は、図7に示すように、バンクス
ロットを管理している。
【0051】つまり、バンク管理部7は、各割算パイプ
ライン5a〜5fがベクトル・レジスタ1−0,1−
1,…,1−nをアクセスするタイミング(DR1,D
R2,DW3)を、メモリ・アクセス・パイプライン2
のうちのストア・パイプライン2Bがベクトル・レジス
タ1−0,1−1,…,1−nから主記憶部20へスト
ア動作する読み出しタイミング(SR)のバンクスロッ
トに対して割り当てている。
ライン5a〜5fがベクトル・レジスタ1−0,1−
1,…,1−nをアクセスするタイミング(DR1,D
R2,DW3)を、メモリ・アクセス・パイプライン2
のうちのストア・パイプライン2Bがベクトル・レジス
タ1−0,1−1,…,1−nから主記憶部20へスト
ア動作する読み出しタイミング(SR)のバンクスロッ
トに対して割り当てている。
【0052】なお、図7において、各符号は、図19に
より前述したものと同様であるが、DR1,DR2は割
算パイプライン15における読出オペランドのタイミン
グを示し、DW3は割算パイプライン15における書込
オペランドのタイミングを示している。割算パイプライ
ン15が動作している間は、タイミングを時分割で使用
する。また、割算パイプライン15とストア・パイプラ
イン2Bとはいずれか一方のみ動作するように制御す
る。さらに、E,Fは演算パイプライン5−0,5−
1,…,5−mのうちの加算パイプラインもしくは乗算
パイプラインが動作するバンクスロットの割付タイミン
グを示す。
より前述したものと同様であるが、DR1,DR2は割
算パイプライン15における読出オペランドのタイミン
グを示し、DW3は割算パイプライン15における書込
オペランドのタイミングを示している。割算パイプライ
ン15が動作している間は、タイミングを時分割で使用
する。また、割算パイプライン15とストア・パイプラ
イン2Bとはいずれか一方のみ動作するように制御す
る。さらに、E,Fは演算パイプライン5−0,5−
1,…,5−mのうちの加算パイプラインもしくは乗算
パイプラインが動作するバンクスロットの割付タイミン
グを示す。
【0053】本実施例では、図7に示すように、2種類
の演算パイプラインが動作している際に、各バンク単位
B0〜B7で割算パイプライン15の各割算器5a〜5
fは16タイミング・サイクル毎に到来する、ストア・
パイプライン2Bがベクトル・レジスタ1−0,1−
1,…,1−nから主記憶部20へストア動作する読み
出しタイミングSRのバンクスロットを共用して、割算
パイプライン15による演算処理を実行している。
の演算パイプラインが動作している際に、各バンク単位
B0〜B7で割算パイプライン15の各割算器5a〜5
fは16タイミング・サイクル毎に到来する、ストア・
パイプライン2Bがベクトル・レジスタ1−0,1−
1,…,1−nから主記憶部20へストア動作する読み
出しタイミングSRのバンクスロットを共用して、割算
パイプライン15による演算処理を実行している。
【0054】例えば、割算パイプライン15内の割算器
5aでは、バンク単位B0の最初のストア読出タイミン
グSR(タイミング・サイクルT4)と、バンク単位B
1の最初ストア読出タイミングSR(タイミング・サイ
クルT5)とで、ベクトル・レジスタ1−0,1−1,
…,1−nからのデータの読出(DR1,DR2)を行
なう。そして、16タイミング・サイクル後のバンク単
位B1の2周期目のストア読出タイミングSR(タイミ
ング・サイクルT5)で、割算結果のベクトル・レジス
タ1−0,1−1,…,1−nへの書込(DW3)を行
なった後、再び、バンク単位B2の2周期目のストア読
出タイミングSR(タイミング・サイクルT6)と、バ
ンク単位B3の2周期目のストア読出タイミングSR
(タイミング・サイクルT7)とで、ベクトル・レジス
タ1−0,1−1,…,1−nからのデータの読出(D
R1,DR2)を行ない、以下、同様の処理を繰り返
す。
5aでは、バンク単位B0の最初のストア読出タイミン
グSR(タイミング・サイクルT4)と、バンク単位B
1の最初ストア読出タイミングSR(タイミング・サイ
クルT5)とで、ベクトル・レジスタ1−0,1−1,
…,1−nからのデータの読出(DR1,DR2)を行
なう。そして、16タイミング・サイクル後のバンク単
位B1の2周期目のストア読出タイミングSR(タイミ
ング・サイクルT5)で、割算結果のベクトル・レジス
タ1−0,1−1,…,1−nへの書込(DW3)を行
なった後、再び、バンク単位B2の2周期目のストア読
出タイミングSR(タイミング・サイクルT6)と、バ
ンク単位B3の2周期目のストア読出タイミングSR
(タイミング・サイクルT7)とで、ベクトル・レジス
タ1−0,1−1,…,1−nからのデータの読出(D
R1,DR2)を行ない、以下、同様の処理を繰り返
す。
【0055】また、割算パイプライン15内の割算器5
bでも、同様に、バンク単位B3の最初のストア読出タ
イミングSR(タイミング・サイクルT7)と、バンク
単位B4の最初ストア読出タイミングSR(タイミング
・サイクルT0)とで、ベクトル・レジスタ1−0,1
−1,…,1−nからのデータの読出(DR1,DR
2)を行ない、16タイミング・サイクル後のバンク単
位B4の2周期目のストア読出タイミングSR(タイミ
ング・サイクルT0)で、割算結果のベクトル・レジス
タ1−0,1−1,…,1−nへの書込(DW3)を行
ない、以下、同様の処理を繰り返す。その他の割算器5
c,5d,5e,5fについても同様に、タイミングの
割付を行なって、割算処理が行なわれる。
bでも、同様に、バンク単位B3の最初のストア読出タ
イミングSR(タイミング・サイクルT7)と、バンク
単位B4の最初ストア読出タイミングSR(タイミング
・サイクルT0)とで、ベクトル・レジスタ1−0,1
−1,…,1−nからのデータの読出(DR1,DR
2)を行ない、16タイミング・サイクル後のバンク単
位B4の2周期目のストア読出タイミングSR(タイミ
ング・サイクルT0)で、割算結果のベクトル・レジス
タ1−0,1−1,…,1−nへの書込(DW3)を行
ない、以下、同様の処理を繰り返す。その他の割算器5
c,5d,5e,5fについても同様に、タイミングの
割付を行なって、割算処理が行なわれる。
【0056】このように、本発明の第1実施例のベクト
ル処理装置によれば、演算パイプラインのように固定長
のパイプラインにおいても、特にスループットの少ない
パイプライン、例えば割算パイプライン15を、メモリ
・アクセス・パイプライン2のような1つのバンクスロ
ットしか使用しないパイプラインと共用することによ
り、演算パイプラインをオーバラップさせて実行し、全
体の演算効率を落とすことなく演算処理を行なえ、演算
スループットが大幅に向上することになる。
ル処理装置によれば、演算パイプラインのように固定長
のパイプラインにおいても、特にスループットの少ない
パイプライン、例えば割算パイプライン15を、メモリ
・アクセス・パイプライン2のような1つのバンクスロ
ットしか使用しないパイプラインと共用することによ
り、演算パイプラインをオーバラップさせて実行し、全
体の演算効率を落とすことなく演算処理を行なえ、演算
スループットが大幅に向上することになる。
【0057】また、特に、メモリ・アクセス・パイプラ
イン2の中でも、主記憶部20から読出を行なうロード
・パイプライン2Aは演算のソースとなるため、結果オ
ペランドを格納するためのストア・パイプライン2Bの
バンクスロットと共用することにより、ベクトル処理装
置全体のスループットを向上させることができるのであ
る。
イン2の中でも、主記憶部20から読出を行なうロード
・パイプライン2Aは演算のソースとなるため、結果オ
ペランドを格納するためのストア・パイプライン2Bの
バンクスロットと共用することにより、ベクトル処理装
置全体のスループットを向上させることができるのであ
る。
【0058】なお、上述の実施例では、スループットの
少ないパイプラインが割算パイプラインである場合につ
いて説明したが、本発明は、これに限定されるものでは
なく、スループットの少ないパイプラインがスクエア・
ルート(2乗根)演算パイプライン等である場合にも同
様に適用され、上述した実施例と同様の作用効果が得ら
れる。
少ないパイプラインが割算パイプラインである場合につ
いて説明したが、本発明は、これに限定されるものでは
なく、スループットの少ないパイプラインがスクエア・
ルート(2乗根)演算パイプライン等である場合にも同
様に適用され、上述した実施例と同様の作用効果が得ら
れる。
【0059】(b)第2実施例の説明図8は本発明の第
2実施例としてのベクトル処理装置を示すブロック図
で、この図8において、21はインターリーブされた複
数のバンク単位に複数のエレメント・データを記憶する
ベクトル・レジスタ(VR)、22−1,22−2,
…,22−nはそれぞれベクトル・レジスタ21上のデ
ータを入力オペランドとするかもしくは演算結果をベク
トル・レジスタ21に書き込む演算パイプラインであ
る。
2実施例としてのベクトル処理装置を示すブロック図
で、この図8において、21はインターリーブされた複
数のバンク単位に複数のエレメント・データを記憶する
ベクトル・レジスタ(VR)、22−1,22−2,
…,22−nはそれぞれベクトル・レジスタ21上のデ
ータを入力オペランドとするかもしくは演算結果をベク
トル・レジスタ21に書き込む演算パイプラインであ
る。
【0060】また、23−1,23−2,…,23−m
はベクトル・レジスタ21と主記憶部24との間におい
て各エレメント・データを高速にロードないしストアす
べくパイプライン構成されたメモリ・アクセス・パイプ
ラインで、各メモリ・アクセス・パイプライン23−
1,23−2,…,23−mは、ロード・パイプライン
23Aおよびストア・パイプライン23Bとしての機能
を有している。ここで、ロード・パイプライン23A
は、主記憶部24からベクトル・レジスタ21へデータ
を転送(ロード)するためのものであり、ストア・パイ
プライン23Bは、ベクトル・レジスタ21に格納され
たデータを主記憶部24へ転送(ストア)するためのも
のである。
はベクトル・レジスタ21と主記憶部24との間におい
て各エレメント・データを高速にロードないしストアす
べくパイプライン構成されたメモリ・アクセス・パイプ
ラインで、各メモリ・アクセス・パイプライン23−
1,23−2,…,23−mは、ロード・パイプライン
23Aおよびストア・パイプライン23Bとしての機能
を有している。ここで、ロード・パイプライン23A
は、主記憶部24からベクトル・レジスタ21へデータ
を転送(ロード)するためのものであり、ストア・パイ
プライン23Bは、ベクトル・レジスタ21に格納され
たデータを主記憶部24へ転送(ストア)するためのも
のである。
【0061】なお、図8で示した各メモリ・アクセス・
パイプライン23−1,23−2,…,23−mでは、
ロード・パイプライン23Aとストア・パイプライン2
3Bとがペアとなってそなえられているが、いずれか一
方のみを有する構成としてもよい。また、メモリ・アク
セス・パイプライン23−1,23−2,…,23−m
のいずれかがロード・パイプライン23Aもしくはスト
ア・パイプライン23Bの一方のみ有する構成としても
よい。
パイプライン23−1,23−2,…,23−mでは、
ロード・パイプライン23Aとストア・パイプライン2
3Bとがペアとなってそなえられているが、いずれか一
方のみを有する構成としてもよい。また、メモリ・アク
セス・パイプライン23−1,23−2,…,23−m
のいずれかがロード・パイプライン23Aもしくはスト
ア・パイプライン23Bの一方のみ有する構成としても
よい。
【0062】25は追越し防止制御部で、この追越し防
止制御部25は、メモリ・アクセス・パイプライン23
−1,23−2,…,23−mにおけるロード・パイプ
ライン23Aからベクトル・レジスタ21へデータを転
送する命令の実行中に、ロード・パイプライン23Aが
ベクトル・レジスタ21に書き込んだデータを入力オペ
ランドとする後続の演算命令を、演算パイプライン22
−1,22−2,…,22−nのいずれかが実行する場
合、命令の実行順序を保証するために、ロード・パイプ
ライン23Aの実行を後続の演算パイプラインの処理が
追い越す条件を検出した時に、全ての演算パイプライン
22−1,22−2,…,22−nの実行を一時中断す
べく、例えば、処理の一時中断を要求している間は
“1”に立ち上がり、処理を続行可能な時には“0”に
なる追越し防止制御信号を出力するものである。
止制御部25は、メモリ・アクセス・パイプライン23
−1,23−2,…,23−mにおけるロード・パイプ
ライン23Aからベクトル・レジスタ21へデータを転
送する命令の実行中に、ロード・パイプライン23Aが
ベクトル・レジスタ21に書き込んだデータを入力オペ
ランドとする後続の演算命令を、演算パイプライン22
−1,22−2,…,22−nのいずれかが実行する場
合、命令の実行順序を保証するために、ロード・パイプ
ライン23Aの実行を後続の演算パイプラインの処理が
追い越す条件を検出した時に、全ての演算パイプライン
22−1,22−2,…,22−nの実行を一時中断す
べく、例えば、処理の一時中断を要求している間は
“1”に立ち上がり、処理を続行可能な時には“0”に
なる追越し防止制御信号を出力するものである。
【0063】27は各演算パイプライン22−1,22
−2,…,22−nや各メモリ・アクセス・パイプライ
ン23−1,23−2,…,23−mに対する命令の発
信と進行状況とを管理する命令発信/管理部で、この命
令発信/管理部27は、命令を発信するときに、その命
令の発信以前に実行を開始され未だその実行を完了して
いない命令との間にオペランド・レジスタのリンクがあ
るかどうかをチェックし、リンクがあれば、追越し防止
制御部25にリンク条件が成立したことをリンク情報と
して通知する機能を有している。
−2,…,22−nや各メモリ・アクセス・パイプライ
ン23−1,23−2,…,23−mに対する命令の発
信と進行状況とを管理する命令発信/管理部で、この命
令発信/管理部27は、命令を発信するときに、その命
令の発信以前に実行を開始され未だその実行を完了して
いない命令との間にオペランド・レジスタのリンクがあ
るかどうかをチェックし、リンクがあれば、追越し防止
制御部25にリンク条件が成立したことをリンク情報と
して通知する機能を有している。
【0064】そして、第2実施例では、図9に示すよう
な追越し防止制御信号変更部26Aおよび収束期間通知
部26Bが、各演算パイプライン22−1,22−2,
…,22−n毎にそなえられている。この追越し防止制
御信号変更部26Aは、ベクトル・レジスタ21からの
データ供給を受けるリード処理期間と、リード処理期間
後に結果をまとめ上げる収束期間とを必要とするベクト
ル命令については、該当ベクトル命令の収束処理を実行
中の演算パイプライン22−1,22−2,…,22−
nに対する追越し防止制御を行なわないように、追越し
防止制御部25から出力される追越し防止制御信号を変
更するものである。
な追越し防止制御信号変更部26Aおよび収束期間通知
部26Bが、各演算パイプライン22−1,22−2,
…,22−n毎にそなえられている。この追越し防止制
御信号変更部26Aは、ベクトル・レジスタ21からの
データ供給を受けるリード処理期間と、リード処理期間
後に結果をまとめ上げる収束期間とを必要とするベクト
ル命令については、該当ベクトル命令の収束処理を実行
中の演算パイプライン22−1,22−2,…,22−
nに対する追越し防止制御を行なわないように、追越し
防止制御部25から出力される追越し防止制御信号を変
更するものである。
【0065】また、収束期間通知部26Bは、各演算パ
イプライン22−1,22−2,…,22−nが有する
収束期間の開始信号(start final sequence;例えば収束
期間開始時に立ち上がるパルス信号)と収束期間の終了
信号(terminal final sequence;例えば収束期間終了時
に立ち上がるパルス信号)とに基づいて、各演算パイプ
ライン22−1,22−2,…,22−nが前述した収
束期間にあるか否かを、収束期間通知信号として対応す
る追越し防止制御信号変更部26Aへ出力するもので、
例えば、図9に示すように構成されている。
イプライン22−1,22−2,…,22−nが有する
収束期間の開始信号(start final sequence;例えば収束
期間開始時に立ち上がるパルス信号)と収束期間の終了
信号(terminal final sequence;例えば収束期間終了時
に立ち上がるパルス信号)とに基づいて、各演算パイプ
ライン22−1,22−2,…,22−nが前述した収
束期間にあるか否かを、収束期間通知信号として対応す
る追越し防止制御信号変更部26Aへ出力するもので、
例えば、図9に示すように構成されている。
【0066】図9において、26aはORゲート、26
bはANDゲート、26cはフリップフロップ、26e
はインバータ(NOTゲート)であり、ORゲート26
aは、開始信号とフリップフロップ26cからのデータ
出力との論理和をとるものであり、ANDゲート26b
は、ORゲート26aからの論理和出力と、終了信号の
インバータ26eによる反転信号との論理積をとるもの
である。
bはANDゲート、26cはフリップフロップ、26e
はインバータ(NOTゲート)であり、ORゲート26
aは、開始信号とフリップフロップ26cからのデータ
出力との論理和をとるものであり、ANDゲート26b
は、ORゲート26aからの論理和出力と、終了信号の
インバータ26eによる反転信号との論理積をとるもの
である。
【0067】また、フリップフロップ26cは、AND
ゲート26bからの論理積出力に応じてデータ出力を
“1”に立ち上げるもので、ORゲート26aに開始信
号が入力されると、フリップフロップ26cのデータ出
力は立ち上がって“1”にセットされる一方、ANDゲ
ート26bに終了信号が入力されると、フリップフロッ
プ26cのデータ出力は“1”から“0”にリセットさ
れるようになっている。つまり、フリップフロップ26
cのデータ出力(収束期間通知手段)は、各演算パイプ
ライン22−1,22−2,…,22−nが収束処理を
実行中(収束期間中)、“1”に立ち上がっている。
ゲート26bからの論理積出力に応じてデータ出力を
“1”に立ち上げるもので、ORゲート26aに開始信
号が入力されると、フリップフロップ26cのデータ出
力は立ち上がって“1”にセットされる一方、ANDゲ
ート26bに終了信号が入力されると、フリップフロッ
プ26cのデータ出力は“1”から“0”にリセットさ
れるようになっている。つまり、フリップフロップ26
cのデータ出力(収束期間通知手段)は、各演算パイプ
ライン22−1,22−2,…,22−nが収束処理を
実行中(収束期間中)、“1”に立ち上がっている。
【0068】そして、追越し防止制御信号変更部26A
をなすANDゲート26dは、追越し防止制御部25に
より生成される追越し防止制御信号と、フリップフロッ
プ26cのデータ出力(収束期間通知手段)のインバー
タ(NOTゲート)26fによる反転信号との論理積を
とるもので、フリップフロップ26cのデータ出力が
“1”の間は、収束期間であるので、追越し防止制御信
号は、ANDゲート26dで強制的に“0”に変更され
る一方、フリップフロップ26cのデータ出力が“0”
の時は、追越し防止制御信号はそのまま出力されるよう
になっている。
をなすANDゲート26dは、追越し防止制御部25に
より生成される追越し防止制御信号と、フリップフロッ
プ26cのデータ出力(収束期間通知手段)のインバー
タ(NOTゲート)26fによる反転信号との論理積を
とるもので、フリップフロップ26cのデータ出力が
“1”の間は、収束期間であるので、追越し防止制御信
号は、ANDゲート26dで強制的に“0”に変更され
る一方、フリップフロップ26cのデータ出力が“0”
の時は、追越し防止制御信号はそのまま出力されるよう
になっている。
【0069】次に、上述のごとく構成されているベクト
ル処理装置の動作について、図10〜図18を参照しな
がら説明する。 〔該当命令の動作の説明〕 まず、該当命令の動作に関して説明する。ただし、実際
のインプリメンテーションの都合により、ここに記す動
作とは若干異なる動作をすることもある。ベクトル・レ
ジスタ21上のデータの総和を求める総和演算命令や、
ベクトル・レジスタ21上のデータの最大値もしくは最
小値を求める検索演算命令では、元となるデータをベク
トル・レジスタ21から供給を受ける。
ル処理装置の動作について、図10〜図18を参照しな
がら説明する。 〔該当命令の動作の説明〕 まず、該当命令の動作に関して説明する。ただし、実際
のインプリメンテーションの都合により、ここに記す動
作とは若干異なる動作をすることもある。ベクトル・レ
ジスタ21上のデータの総和を求める総和演算命令や、
ベクトル・レジスタ21上のデータの最大値もしくは最
小値を求める検索演算命令では、元となるデータをベク
トル・レジスタ21から供給を受ける。
【0070】総和演算命令では、順次、累和を求めるこ
とになるが、処理速度の向上のために、パイプラインの
ステージ分の部分累和を、多重にもつ演算器分だけ生成
する。次に、総和演算の結果を求めるために、これらの
部分和を全て足し込む。総和演算では、この部分和を足
し込む処理を実行する期間が収束期間となる。検索演算
命令では、順次、比較し選択することになるが、この場
合も、ステージ数分の部分的な選択結果が、多重にもつ
演算器分だけ生成された後、これらの部分的な選択結果
の中から最終的に1つの結果を求める。検索演算では、
この部分的な選択結果の中から最終的な1つの結果を求
める操作を実行する期間が収束期間となる。
とになるが、処理速度の向上のために、パイプラインの
ステージ分の部分累和を、多重にもつ演算器分だけ生成
する。次に、総和演算の結果を求めるために、これらの
部分和を全て足し込む。総和演算では、この部分和を足
し込む処理を実行する期間が収束期間となる。検索演算
命令では、順次、比較し選択することになるが、この場
合も、ステージ数分の部分的な選択結果が、多重にもつ
演算器分だけ生成された後、これらの部分的な選択結果
の中から最終的に1つの結果を求める。検索演算では、
この部分的な選択結果の中から最終的な1つの結果を求
める操作を実行する期間が収束期間となる。
【0071】これらの収束期間における処理は、ベクト
ル・レジスタ21からのデータ供給を受けない処理のた
め、ベクトル・レジスタ21のリンクによる追越し防止
制御は不要である。 〔一般的な追越し防止制御の説明〕 追越し防止制御を司るベクトル処理装置の部分は、一例
をあげると次のようになっている。命令の発信と進行状
況とを管理する命令発信/管理部27が命令を発信する
ときに、その命令の発信以前に実行を開始され、未だそ
の実行を完了していない命令との間にオペランド・レジ
スタのリンクがあるかどうかをチェックし、リンクがあ
れば、追越し防止制御部25にリンク条件が成立したこ
とを通知する。
ル・レジスタ21からのデータ供給を受けない処理のた
め、ベクトル・レジスタ21のリンクによる追越し防止
制御は不要である。 〔一般的な追越し防止制御の説明〕 追越し防止制御を司るベクトル処理装置の部分は、一例
をあげると次のようになっている。命令の発信と進行状
況とを管理する命令発信/管理部27が命令を発信する
ときに、その命令の発信以前に実行を開始され、未だそ
の実行を完了していない命令との間にオペランド・レジ
スタのリンクがあるかどうかをチェックし、リンクがあ
れば、追越し防止制御部25にリンク条件が成立したこ
とを通知する。
【0072】このリンク条件は、リンクの成立したベク
トル・レジスタ21にデータを書き込む先行命令の実行
を完了して、レジスタ・リンクが解消したときに解除さ
れる。レジスタ・リンクが複数存在するときは、全ての
レジスタ・リンクが解消されたときにリンク条件を解除
する。リンク条件の成立中は、先行命令のデータ書込が
中断されることを検出すると、追越し防止制御部25が
起動される。この追越し防止制御部25は、全ての演算
パイプライン22−1,22−2,…,22−nとスト
ア・パイプライン23Bとに対して処理を一時中断させ
るように通知する。ただし、リンクの起点(親)となる
パイプラインについては、処理の中断は通知しない。先
行命令のデータ書込を再開するか、もしくは、先行命令
を完了すると、追越し防止制御部25は、全ての演算パ
イプライン22−1,22−2,…,22−nとストア
・パイプライン23Bとに対して処理を再開するように
通知する。
トル・レジスタ21にデータを書き込む先行命令の実行
を完了して、レジスタ・リンクが解消したときに解除さ
れる。レジスタ・リンクが複数存在するときは、全ての
レジスタ・リンクが解消されたときにリンク条件を解除
する。リンク条件の成立中は、先行命令のデータ書込が
中断されることを検出すると、追越し防止制御部25が
起動される。この追越し防止制御部25は、全ての演算
パイプライン22−1,22−2,…,22−nとスト
ア・パイプライン23Bとに対して処理を一時中断させ
るように通知する。ただし、リンクの起点(親)となる
パイプラインについては、処理の中断は通知しない。先
行命令のデータ書込を再開するか、もしくは、先行命令
を完了すると、追越し防止制御部25は、全ての演算パ
イプライン22−1,22−2,…,22−nとストア
・パイプライン23Bとに対して処理を再開するように
通知する。
【0073】実際には、各演算パイプライン22−1,
22−2,…,22−nのベクトル・レジスタ21から
のデータ読出のスループットは、どの演算パイプライン
22−1,22−2,…,22−nでも等しいようにし
て、処理スループットの差による動的な追越し防止制御
を不要としている。このため、スループットの変化する
リンクの親となるパイプラインはロード・パイプライン
23Bに限定される。演算パイプライン22−1,22
−2,…,22−n間の追越し防止については、全ての
演算パイプライン22−1,22−2,…,22−nに
対して同時に処理の中断と再開とを指示することで回避
されている。
22−2,…,22−nのベクトル・レジスタ21から
のデータ読出のスループットは、どの演算パイプライン
22−1,22−2,…,22−nでも等しいようにし
て、処理スループットの差による動的な追越し防止制御
を不要としている。このため、スループットの変化する
リンクの親となるパイプラインはロード・パイプライン
23Bに限定される。演算パイプライン22−1,22
−2,…,22−n間の追越し防止については、全ての
演算パイプライン22−1,22−2,…,22−nに
対して同時に処理の中断と再開とを指示することで回避
されている。
【0074】なお、インプリメンテーションの都合によ
り、実際には、低スループットの演算パイプラインもベ
クトル処理装置上に存在している。このような場合に
は、通常は、この低スループットのパイプラインは、他
のパイプラインとのリンク動作を禁止するように命令発
信の段階で制御されている。とは言っても、より性能を
追求する制御では、低スループットのパイプラインと言
えども、制限付きでリンク動作をさせることがある。
り、実際には、低スループットの演算パイプラインもベ
クトル処理装置上に存在している。このような場合に
は、通常は、この低スループットのパイプラインは、他
のパイプラインとのリンク動作を禁止するように命令発
信の段階で制御されている。とは言っても、より性能を
追求する制御では、低スループットのパイプラインと言
えども、制限付きでリンク動作をさせることがある。
【0075】一例を挙げれば、先行する命令を処理する
パイプラインのスループットが高いか等しければ、その
パイプラインの書込結果を読み出すような形のリンク動
作を行なうことは可能である。禁止されているのは、低
スループットの演算パイプラインの書込結果を使用する
形で、高スループットのパイプラインが該低スループッ
トのパイプラインにリンクして動作することである。
パイプラインのスループットが高いか等しければ、その
パイプラインの書込結果を読み出すような形のリンク動
作を行なうことは可能である。禁止されているのは、低
スループットの演算パイプラインの書込結果を使用する
形で、高スループットのパイプラインが該低スループッ
トのパイプラインにリンクして動作することである。
【0076】〔リード処理期間の説明〕 リード処理期間は、命令発信/管理部27からの命令で
最初に処理するデータを演算パイプライン22−1,2
2−2,…,22−nがベクトル・レジスタ21から受
け取った時点を開始とし、その命令で最後に処理するデ
ータを演算パイプライン22−1,22−2,…,22
−nがベクトル・レジスタ21から受け取った時点を完
了とする。
最初に処理するデータを演算パイプライン22−1,2
2−2,…,22−nがベクトル・レジスタ21から受
け取った時点を開始とし、その命令で最後に処理するデ
ータを演算パイプライン22−1,22−2,…,22
−nがベクトル・レジスタ21から受け取った時点を完
了とする。
【0077】〔追越し防止制御信号変更部26A(A
NDゲート26d)を追越し防止制御部25側に、収束
期間通知部26Bを命令発信/管理部27側にそなえた
場合の説明〕 ここでは、命令発信/管理部27から追越し防止制御部
25に対して、各演算パイプライン22−1,22−
2,…,22−nの処理が収束期間に入ったことを演算
パイプライン情報とともに通知する機能と、収束期間が
完了したことを演算パイプライン情報とともに通知する
機能とが追加されている。つまり、図9により前述した
収束期間通知部26Bとしての機能が命令発信/管理部
27にそなえられている。
NDゲート26d)を追越し防止制御部25側に、収束
期間通知部26Bを命令発信/管理部27側にそなえた
場合の説明〕 ここでは、命令発信/管理部27から追越し防止制御部
25に対して、各演算パイプライン22−1,22−
2,…,22−nの処理が収束期間に入ったことを演算
パイプライン情報とともに通知する機能と、収束期間が
完了したことを演算パイプライン情報とともに通知する
機能とが追加されている。つまり、図9により前述した
収束期間通知部26Bとしての機能が命令発信/管理部
27にそなえられている。
【0078】また、追越し防止制御部25には、各演算
パイプライン22−1,22−2,…,22−nに対す
る処理の一時中断(追越し防止制御信号)を通知する機
能が各演算パイプライン22−1,22−2,…,22
−n毎に設けられているが、その追越し防止制御部25
における各追越し防止制御信号出力用信号線毎に、追越
し防止制御信号変更部26Aが設けられ、演算パイプラ
イン22−1,22−2,…,22−nのうち、収束期
間にある演算パイプラインには処理の一時中断(追越し
防止制御信号)が通知されないようになっている。
パイプライン22−1,22−2,…,22−nに対す
る処理の一時中断(追越し防止制御信号)を通知する機
能が各演算パイプライン22−1,22−2,…,22
−n毎に設けられているが、その追越し防止制御部25
における各追越し防止制御信号出力用信号線毎に、追越
し防止制御信号変更部26Aが設けられ、演算パイプラ
イン22−1,22−2,…,22−nのうち、収束期
間にある演算パイプラインには処理の一時中断(追越し
防止制御信号)が通知されないようになっている。
【0079】具体的には、命令発信/管理部27では、
命令をデコードして収束期間をもつ命令であることを検
出すると、その命令を発信する演算パイプライン22−
1,22−2,…,22−nの管理部(図示せず)に収
束期間を有する命令である旨のフラグを立てる。演算パ
イプライン側管理部では、ベクトル長からリード期間に
要する時間を計算し、追越し防止制御部25からの処理
の一時中断を通知する機能による情報を使用して、リー
ド処理期間を正確に把握する。
命令をデコードして収束期間をもつ命令であることを検
出すると、その命令を発信する演算パイプライン22−
1,22−2,…,22−nの管理部(図示せず)に収
束期間を有する命令である旨のフラグを立てる。演算パ
イプライン側管理部では、ベクトル長からリード期間に
要する時間を計算し、追越し防止制御部25からの処理
の一時中断を通知する機能による情報を使用して、リー
ド処理期間を正確に把握する。
【0080】リード処理期間の完了とともに、収束期間
が開始されるわけであるから、この時に追越し防止制御
部25に対して、収束期間通知部26Bにより、その演
算パイプライン22−1,22−2,…,22−nが収
束期間に入ったことを通知する。このとき通知される収
束期間通知信号は、前述した通り、収束期間にあるとき
にはその演算パイプライン22−1,22−2,…,2
2−nに対応する信号線が“1”に立ち上がり、それ以
外のときは“0”となるものである。
が開始されるわけであるから、この時に追越し防止制御
部25に対して、収束期間通知部26Bにより、その演
算パイプライン22−1,22−2,…,22−nが収
束期間に入ったことを通知する。このとき通知される収
束期間通知信号は、前述した通り、収束期間にあるとき
にはその演算パイプライン22−1,22−2,…,2
2−nに対応する信号線が“1”に立ち上がり、それ以
外のときは“0”となるものである。
【0081】そして、追越し防止制御信号出力用の信号
線上に、前述のように追越し防止制御信号変更部26A
をなすANDゲート26dを設けることで、対応する演
算パイプライン22−1,22−2,…,22−nから
の収束期間通知信号(フリップフロップ26cのデータ
出力)が“0”のときには、追越し防止制御信号は、そ
のままANDゲート26dを通過して対応する演算パイ
プライン22−1,22−2,…,22−nに通知され
る一方、対応する演算パイプライン22−1,22−
2,…,22−nからの収束期間通知信号が“1”のと
きには、追越し防止制御信号は、ANDゲート26dに
より“0”に変更されてから対応する演算パイプライン
22−1,22−2,…,22−nに通知される。
線上に、前述のように追越し防止制御信号変更部26A
をなすANDゲート26dを設けることで、対応する演
算パイプライン22−1,22−2,…,22−nから
の収束期間通知信号(フリップフロップ26cのデータ
出力)が“0”のときには、追越し防止制御信号は、そ
のままANDゲート26dを通過して対応する演算パイ
プライン22−1,22−2,…,22−nに通知され
る一方、対応する演算パイプライン22−1,22−
2,…,22−nからの収束期間通知信号が“1”のと
きには、追越し防止制御信号は、ANDゲート26dに
より“0”に変更されてから対応する演算パイプライン
22−1,22−2,…,22−nに通知される。
【0082】これにより、従来、図10に示すように、
追越し防止制御信号の出力時には収束期間であっても完
全に中断されていた処理が、本実施例では、収束期間中
にある演算パイプラインについては変更された追越し防
止制御信号を受けることにより、図11に示すように、
中断されることなく実行されるようになる。 〔追越し防止制御信号変更部26Aおよび収束期間通
知部26Bを各演算パイプライン側にそなえた場合の動
作の説明〕 ここでは、各演算パイプライン22−1,22−2,
…,22−n毎に追越し防止制御信号変更部26Aおよ
び収束期間通知部26Bをそなえ、各演算パイプライン
自身のシーケンサ(開始信号,終了信号)に基づいて、
収束期間通知部26Bにより自分が収束期間にいること
を検出し、収束期間中は、追越し防止制御信号変更部2
6Aにより、追越し防止制御部25から各演算パイプラ
イン22−1,22−2,…,22−nに対する追越し
防止制御信号を、“1”から“0”に変更するようにし
ている。
追越し防止制御信号の出力時には収束期間であっても完
全に中断されていた処理が、本実施例では、収束期間中
にある演算パイプラインについては変更された追越し防
止制御信号を受けることにより、図11に示すように、
中断されることなく実行されるようになる。 〔追越し防止制御信号変更部26Aおよび収束期間通
知部26Bを各演算パイプライン側にそなえた場合の動
作の説明〕 ここでは、各演算パイプライン22−1,22−2,
…,22−n毎に追越し防止制御信号変更部26Aおよ
び収束期間通知部26Bをそなえ、各演算パイプライン
自身のシーケンサ(開始信号,終了信号)に基づいて、
収束期間通知部26Bにより自分が収束期間にいること
を検出し、収束期間中は、追越し防止制御信号変更部2
6Aにより、追越し防止制御部25から各演算パイプラ
イン22−1,22−2,…,22−nに対する追越し
防止制御信号を、“1”から“0”に変更するようにし
ている。
【0083】なお、各演算パイプライン22−1,22
−2,…,22−nには、命令,ベクトル長,起動信号
を受け取って処理を実行できるようにデータフローを制
御するための内部シーケンサ(図示せず)が用意されて
いる。この内部シーケンサは、データフローを制御する
ための命令の各種シーケンスを実行できるように、命令
に伴うシーケンス連鎖の手順を滞りなく実行できるよう
になっている。
−2,…,22−nには、命令,ベクトル長,起動信号
を受け取って処理を実行できるようにデータフローを制
御するための内部シーケンサ(図示せず)が用意されて
いる。この内部シーケンサは、データフローを制御する
ための命令の各種シーケンスを実行できるように、命令
に伴うシーケンス連鎖の手順を滞りなく実行できるよう
になっている。
【0084】収束期間通知部26Bでは、リード処理期
間の終了と収束期間開始との情報を内部シーケンサから
受け取って、収束期間以外のときは、追越し防止制御信
号変更部26A(ANDゲート26d)により、追越し
防止制御信号をそのまま通過させるが、対応する演算パ
イプラインに対する収束期間のときには、追越し防止制
御信号を“0”に変更する。
間の終了と収束期間開始との情報を内部シーケンサから
受け取って、収束期間以外のときは、追越し防止制御信
号変更部26A(ANDゲート26d)により、追越し
防止制御信号をそのまま通過させるが、対応する演算パ
イプラインに対する収束期間のときには、追越し防止制
御信号を“0”に変更する。
【0085】これにより、上述のように追越し防止制御
信号変更部26Aおよび収束期間通知部26Bを各演算
パイプライン側にそなえた場合にも、従来、図10に示
すように、追越し防止制御信号の出力時には収束期間で
あっても完全に中断されていた処理が、本実施例では、
収束期間中にある演算パイプラインについては変更され
た追越し防止制御信号を受けることにより、図11に示
すように、中断されることなく実行されるようになる。
信号変更部26Aおよび収束期間通知部26Bを各演算
パイプライン側にそなえた場合にも、従来、図10に示
すように、追越し防止制御信号の出力時には収束期間で
あっても完全に中断されていた処理が、本実施例では、
収束期間中にある演算パイプラインについては変更され
た追越し防止制御信号を受けることにより、図11に示
すように、中断されることなく実行されるようになる。
【0086】〔演算パイプラインの一構成例およびそ
の動作の説明〕 ここで、演算パイプラインの一例として、図13に示す
ように4段のステージから成るパイプライン式の加算器
22a〜22dを、図12に示すように4個有する総和
演算パイプライン22Aを示す。なお、図13におい
て、28aは第1ステージ・レジスタ、28bは第2ス
テージ・レジスタ、28cは第3ステージ・レジスタ、
28dは第4ステージ・レジスタ、28eは転送用中継
レジスタ、29はセレクタ、30は指数差計算手段、3
1は桁合わせ手段、32は加算/減算手段、33は正規
化手段である。また、各加算器22a〜22dのステー
ジ段数や、加算器の数については、処理装置毎に最適な
段数が用意され、処理する命令(検索演算命令等)によ
っては加算器を比較選択手段とすることもできる。
の動作の説明〕 ここで、演算パイプラインの一例として、図13に示す
ように4段のステージから成るパイプライン式の加算器
22a〜22dを、図12に示すように4個有する総和
演算パイプライン22Aを示す。なお、図13におい
て、28aは第1ステージ・レジスタ、28bは第2ス
テージ・レジスタ、28cは第3ステージ・レジスタ、
28dは第4ステージ・レジスタ、28eは転送用中継
レジスタ、29はセレクタ、30は指数差計算手段、3
1は桁合わせ手段、32は加算/減算手段、33は正規
化手段である。また、各加算器22a〜22dのステー
ジ段数や、加算器の数については、処理装置毎に最適な
段数が用意され、処理する命令(検索演算命令等)によ
っては加算器を比較選択手段とすることもできる。
【0087】各加算器22a〜22dの第1ステージは
桁合わせに先立つ指数比較処理、第2ステージは桁合わ
せ処理を実行する。第3ステージは加算/減算処理を実
行する。第4ステージは正規化処理である。加算器22
aはベクトル・レジスタ中のデータ・エレメント番号の
4による剰余が0のエレメントを処理し、加算器22b
はエレメント番号の4による剰余が1のエレメントを処
理し、加算器22cはエレメント番号の4による剰余が
2のエレメントを処理し、加算器22dはエレメント番
号の4による剰余が3のエレメントを処理するように構
成されている。
桁合わせに先立つ指数比較処理、第2ステージは桁合わ
せ処理を実行する。第3ステージは加算/減算処理を実
行する。第4ステージは正規化処理である。加算器22
aはベクトル・レジスタ中のデータ・エレメント番号の
4による剰余が0のエレメントを処理し、加算器22b
はエレメント番号の4による剰余が1のエレメントを処
理し、加算器22cはエレメント番号の4による剰余が
2のエレメントを処理し、加算器22dはエレメント番
号の4による剰余が3のエレメントを処理するように構
成されている。
【0088】また、各加算器22a〜22dを一つにま
とめるために、加算器22b〜22dから加算器22a
に対して結果を転送することができるようになってい
る。総和演算では、ベクトル・レジスタ21からのデー
タ供給を受けるリード処理期間中は、第4ステージのデ
ータは第1ステージに戻されて、加算器22a〜22d
は累和加算器として動作する。また、4つの加算器22
a〜22dは並列に動作する。最終リード処理期間中は
各加算器22a〜22d中に4つの部分和を生成する。
とめるために、加算器22b〜22dから加算器22a
に対して結果を転送することができるようになってい
る。総和演算では、ベクトル・レジスタ21からのデー
タ供給を受けるリード処理期間中は、第4ステージのデ
ータは第1ステージに戻されて、加算器22a〜22d
は累和加算器として動作する。また、4つの加算器22
a〜22dは並列に動作する。最終リード処理期間中は
各加算器22a〜22d中に4つの部分和を生成する。
【0089】加算器22aには、Σ(E16i ) ,Σ(E
16i+4 ),Σ(E16i+8 ),Σ(E 16i+12)の4種類の
部分和が生成される。ここで、Ei はエレメント番号i
のデータ・エレメントの値である。収束期間では、各部
分和を取りまとめる手段は、幾つも存在しえるが、ここ
では、その中の一例を図14に示す。
16i+4 ),Σ(E16i+8 ),Σ(E 16i+12)の4種類の
部分和が生成される。ここで、Ei はエレメント番号i
のデータ・エレメントの値である。収束期間では、各部
分和を取りまとめる手段は、幾つも存在しえるが、ここ
では、その中の一例を図14に示す。
【0090】まず、各加算器22a〜22d中で、4つ
の部分和を足し合わせて各々1つの部分結果を生成す
る。次に、これらの4つの部分結果を足し合わせて最終
的な結果を演算する。ここでも、加算器22aを例にと
って、部分結果を生成する様子を説明する。収束期間に
入った瞬間に、どの部分和がどのステージにいるかにつ
いては、VL長に依存するので、Σ(E16i ) の部分和
が第1ステージ・レジスタ28aにセットされるまで空
足しを行ない演算順序を保証する。第1ステージ・レジ
スタ28aで2τの間、部分和Σ(E16i ) をホールド
する。
の部分和を足し合わせて各々1つの部分結果を生成す
る。次に、これらの4つの部分結果を足し合わせて最終
的な結果を演算する。ここでも、加算器22aを例にと
って、部分結果を生成する様子を説明する。収束期間に
入った瞬間に、どの部分和がどのステージにいるかにつ
いては、VL長に依存するので、Σ(E16i ) の部分和
が第1ステージ・レジスタ28aにセットされるまで空
足しを行ない演算順序を保証する。第1ステージ・レジ
スタ28aで2τの間、部分和Σ(E16i ) をホールド
する。
【0091】その間に、第1ステージのもう一方のレジ
スタ28aに部分和Σ(E16i+4 )をセットする。部分
和Σ(E16i ) と部分和Σ(E16i+4 )を第1ステージ
から第2ステージに移動させ加算処理を開始するととも
に、部分和Σ(E16i+8 )を第1ステージ・レジスタ2
8aにセットし、2τの間、ホールドする。部分和Σ
(E16i+8 )をホールド中に、もう一つの第1ステージ
・レジスタ28aに部分和Σ(E16i+12)をセットす
る。そして、部分和Σ(E16i+8 )と部分和Σ(E
16i+12)とを加算する。
スタ28aに部分和Σ(E16i+4 )をセットする。部分
和Σ(E16i ) と部分和Σ(E16i+4 )を第1ステージ
から第2ステージに移動させ加算処理を開始するととも
に、部分和Σ(E16i+8 )を第1ステージ・レジスタ2
8aにセットし、2τの間、ホールドする。部分和Σ
(E16i+8 )をホールド中に、もう一つの第1ステージ
・レジスタ28aに部分和Σ(E16i+12)をセットす
る。そして、部分和Σ(E16i+8 )と部分和Σ(E
16i+12)とを加算する。
【0092】続いて、部分和{Σ(E16i ) +Σ(E
16i+4 )}を第1ステージ・レジスタ28aにセット
し、3τの間、ホールドする。その間に部分和{Σ(E
16i+8 )+Σ(E16i+12)}をもう一方の第1ステージ
・レジスタ28aにセットして加算処理を実行して加算
器22aの中間結果を求める。収束期間における、この
中間和を求める動作は、各加算器22a〜22dで並行
して行なわれる。
16i+4 )}を第1ステージ・レジスタ28aにセット
し、3τの間、ホールドする。その間に部分和{Σ(E
16i+8 )+Σ(E16i+12)}をもう一方の第1ステージ
・レジスタ28aにセットして加算処理を実行して加算
器22aの中間結果を求める。収束期間における、この
中間和を求める動作は、各加算器22a〜22dで並行
して行なわれる。
【0093】最終的な結果を求めるための演算は、加算
器22aで実行する。加算器22aでは、第1ステージ
・レジスタ28aに加算器22aの中間和をホールド
し、加算器22bの中間和がもう一方の第1ステージ・
レジスタ28aにセットされるのを待つ。そして、加算
器22aと加算器22bとの中間和どうしを加算して中
間和Aを求める。この中間和Aは、第1ステージ・レジ
スタ28a上でホールドされ、加算器22cの中間和が
もう一方の第1ステージ・レジスタ28aにセットされ
るのを待つ。そして、中間和Aと加算器22cの中間和
が加算されて、中間和Bが生成される。この中間和B
は、第1ステージ・レジスタ28aでホールドされ、加
算器22dの中間和がもう一方の第1ステージ・レジス
タ28aにセットされるのを待つ。そして、中間和Bと
加算器22dの中間和とを加算して、最終的な結果を生
成する。
器22aで実行する。加算器22aでは、第1ステージ
・レジスタ28aに加算器22aの中間和をホールド
し、加算器22bの中間和がもう一方の第1ステージ・
レジスタ28aにセットされるのを待つ。そして、加算
器22aと加算器22bとの中間和どうしを加算して中
間和Aを求める。この中間和Aは、第1ステージ・レジ
スタ28a上でホールドされ、加算器22cの中間和が
もう一方の第1ステージ・レジスタ28aにセットされ
るのを待つ。そして、中間和Aと加算器22cの中間和
が加算されて、中間和Bが生成される。この中間和B
は、第1ステージ・レジスタ28aでホールドされ、加
算器22dの中間和がもう一方の第1ステージ・レジス
タ28aにセットされるのを待つ。そして、中間和Bと
加算器22dの中間和とを加算して、最終的な結果を生
成する。
【0094】〔付加演算器付き演算パイプラインに本
発明を適用した実施例の説明〕 次に、各演算パイプライン22−1,22−2,…,2
2−nが、基本演算器と収束を処理する付加演算器とを
有する構成のもので(例えば図17参照)、収束処理を
付加演算器により実行し、収束処理中、基本演算器によ
り後続の他の演算命令を実行できるものである場合につ
いて説明する。
発明を適用した実施例の説明〕 次に、各演算パイプライン22−1,22−2,…,2
2−nが、基本演算器と収束を処理する付加演算器とを
有する構成のもので(例えば図17参照)、収束処理を
付加演算器により実行し、収束処理中、基本演算器によ
り後続の他の演算命令を実行できるものである場合につ
いて説明する。
【0095】このような場合も、基本演算器から切り離
されて収束期間に入ってから、その命令を完了するまで
の収束期間中、付加演算器では、追越し防止制御部25
から各演算パイプライン22−1,22−2,…,22
−nに対する処理の一時中断を通知する手段による情報
(追越し防止制御信号)を、追越し防止制御信号変更部
26Aにより受け付けないようにしている。
されて収束期間に入ってから、その命令を完了するまで
の収束期間中、付加演算器では、追越し防止制御部25
から各演算パイプライン22−1,22−2,…,22
−nに対する処理の一時中断を通知する手段による情報
(追越し防止制御信号)を、追越し防止制御信号変更部
26Aにより受け付けないようにしている。
【0096】付加演算器を使用する場合には、内部シー
ケンサについても、基本演算器部分と付加演算器部分と
に分割されている。付加演算器部分の内部シーケンサ
は、基本演算器部分の内部シーケンサから起動され、収
束期間に入る時点で基本演算器部分から切り離される旨
の通知を受ける。付加演算器部分の内部シーケンサは、
基本演算器部分から切り離されると収束のためのシーケ
ンスを起動する。
ケンサについても、基本演算器部分と付加演算器部分と
に分割されている。付加演算器部分の内部シーケンサ
は、基本演算器部分の内部シーケンサから起動され、収
束期間に入る時点で基本演算器部分から切り離される旨
の通知を受ける。付加演算器部分の内部シーケンサは、
基本演算器部分から切り離されると収束のためのシーケ
ンスを起動する。
【0097】収束期間通知部26Bは、リード期間の終
了と収束期間開始との情報を付加演算器部分の内部シー
ケンサから受け取って、追越し防止制御信号変更部26
Aにより、収束期間以外のときは、追越し防止制御信号
をそのまま通過させるが、対応する演算パイプライン2
2−1,22−2,…,22−nの付加演算器に対する
収束期間の時には追越し防止制御信号を“0”に変更す
る。
了と収束期間開始との情報を付加演算器部分の内部シー
ケンサから受け取って、追越し防止制御信号変更部26
Aにより、収束期間以外のときは、追越し防止制御信号
をそのまま通過させるが、対応する演算パイプライン2
2−1,22−2,…,22−nの付加演算器に対する
収束期間の時には追越し防止制御信号を“0”に変更す
る。
【0098】基本演算器部分については、付加演算器部
分を切り離した後は、付加演算器部分が演算を完了する
まで、付加演算器部分を必要としない演算を実行可能と
して、命令発信/管理部27からの起動待ちとなる。付
加演算器部分が命令を完了し且つ基本演算器部分が付加
演算器部分を使用しない命令のリード処理期間を完了す
るか、付加演算器部分と基本演算器部分との双方ともに
命令の実行を完了していれば、その演算パイプライン2
2−1,22−2,…,22−nは、付加演算器を使用
する命令を実行可能になる。
分を切り離した後は、付加演算器部分が演算を完了する
まで、付加演算器部分を必要としない演算を実行可能と
して、命令発信/管理部27からの起動待ちとなる。付
加演算器部分が命令を完了し且つ基本演算器部分が付加
演算器部分を使用しない命令のリード処理期間を完了す
るか、付加演算器部分と基本演算器部分との双方ともに
命令の実行を完了していれば、その演算パイプライン2
2−1,22−2,…,22−nは、付加演算器を使用
する命令を実行可能になる。
【0099】これにより、収束処理を行なう付加演算器
付きの演算パイプラインについても、従来、図15に示
すように、追越し防止制御信号の出力時には収束期間で
あっても完全に中断されていた処理が、本実施例では、
収束期間中にある演算パイプラインの付加演算器につい
ては変更された追越し防止制御信号を受けることによ
り、図16に示すように、中断されることなく実行され
るようになる。
付きの演算パイプラインについても、従来、図15に示
すように、追越し防止制御信号の出力時には収束期間で
あっても完全に中断されていた処理が、本実施例では、
収束期間中にある演算パイプラインの付加演算器につい
ては変更された追越し防止制御信号を受けることによ
り、図16に示すように、中断されることなく実行され
るようになる。
【0100】〔付加演算器付き演算パイプラインの一
構成例およびその動作の説明〕 ここでは、付加演算器付き演算パイプラインの一例とし
て、図17に示すように、4段のステージから成るパイ
プライン式の基本演算器(図13に示した加算器と同様
構成のもの)34a〜34dと、4段のステージから成
るパイプライン式の付加演算器(図13に示した加算器
と同様構成のもの)35a〜35dとを組み合わせた複
合演算器36a〜36dを4つもつような総和演算パイ
プライン22Bを示す。
構成例およびその動作の説明〕 ここでは、付加演算器付き演算パイプラインの一例とし
て、図17に示すように、4段のステージから成るパイ
プライン式の基本演算器(図13に示した加算器と同様
構成のもの)34a〜34dと、4段のステージから成
るパイプライン式の付加演算器(図13に示した加算器
と同様構成のもの)35a〜35dとを組み合わせた複
合演算器36a〜36dを4つもつような総和演算パイ
プライン22Bを示す。
【0101】なお、ステージ段数や加算器の数について
は、処理装置毎に最適な段数が用意され、処理する命令
(検索演算命令等)によっては加算器を比較選択手段と
することもできる。また、前述したものと同様に、各演
算器(加算器)34a〜34dおよび35a〜35dの
第1ステージは桁合わせに先立つ指数比較処理、第2ス
テージは桁合わせ処理を実行する。第3ステージは加算
/減算処理を実行する。第4ステージは正規化処理であ
る。
は、処理装置毎に最適な段数が用意され、処理する命令
(検索演算命令等)によっては加算器を比較選択手段と
することもできる。また、前述したものと同様に、各演
算器(加算器)34a〜34dおよび35a〜35dの
第1ステージは桁合わせに先立つ指数比較処理、第2ス
テージは桁合わせ処理を実行する。第3ステージは加算
/減算処理を実行する。第4ステージは正規化処理であ
る。
【0102】複合演算器36aはベクトル・レジスタ2
1中のデータ・エレメント番号の8による剰余が0と1
のエレメントを処理し、複合演算器36bはエレメント
番号の8による剰余が2と3のエレメントを処理し、複
合演算器36cはエレメント番号の8による剰余が4と
5のエレメントを処理し、複合演算器36dはエレメン
ト番号の8による剰余が6と7のエレメントを処理する
ように構成されている。
1中のデータ・エレメント番号の8による剰余が0と1
のエレメントを処理し、複合演算器36bはエレメント
番号の8による剰余が2と3のエレメントを処理し、複
合演算器36cはエレメント番号の8による剰余が4と
5のエレメントを処理し、複合演算器36dはエレメン
ト番号の8による剰余が6と7のエレメントを処理する
ように構成されている。
【0103】また、各付加加算器35a〜35dの結果
を一つにまとめるために、付加加算器35b,付加加算
器35c,付加加算器35dから付加加算器35aに対
して結果を転送できるようになっている。そして、リー
ド処理期間には、基本演算器34a〜34dからなる基
本演算部34では、連続する2つのエレメントの和を求
めて、付加演算器35a〜35dからなる付加演算部3
5に転送する。付加演算部35は基本演算部34から受
け取った中間和を足し込む。リード期間が終了するとき
には、付加演算部内に4つの部分和が生成されている。
複合演算器36aを例にとると、この4つの部分和は、
Σ(E32i +E32i+1 ) ,Σ(E32i+8 +E32i+9 ),
Σ(E32i+16+E32 i+17),Σ(E32i+24+E32i+25)
となる。ここで、Ei はエレメント番号iのデータ・エ
レメントの値である。
を一つにまとめるために、付加加算器35b,付加加算
器35c,付加加算器35dから付加加算器35aに対
して結果を転送できるようになっている。そして、リー
ド処理期間には、基本演算器34a〜34dからなる基
本演算部34では、連続する2つのエレメントの和を求
めて、付加演算器35a〜35dからなる付加演算部3
5に転送する。付加演算部35は基本演算部34から受
け取った中間和を足し込む。リード期間が終了するとき
には、付加演算部内に4つの部分和が生成されている。
複合演算器36aを例にとると、この4つの部分和は、
Σ(E32i +E32i+1 ) ,Σ(E32i+8 +E32i+9 ),
Σ(E32i+16+E32 i+17),Σ(E32i+24+E32i+25)
となる。ここで、Ei はエレメント番号iのデータ・エ
レメントの値である。
【0104】収束期間に入ると、付加演算部35は基本
演算部34のデータバスからのデータを受け付けないよ
うにする。続いて、4つの部分和から中間結果を計算
し、最後に4つの中間結果から最終結果を計算する。複
合演算器36aを例にとって中間結果を求める手順を図
18により説明する。
演算部34のデータバスからのデータを受け付けないよ
うにする。続いて、4つの部分和から中間結果を計算
し、最後に4つの中間結果から最終結果を計算する。複
合演算器36aを例にとって中間結果を求める手順を図
18により説明する。
【0105】まず、演算順序を保証するために、部分和
Σ(E32i +E32i+1 ) が第1ステージ・レジスタ28
a上に来るまで空足しを行なう。その部分和は第1ステ
ージ・レジスタ28a上で2τ間ホールドされる。その
間に部分和Σ(E32i+8 +E 32i+9 )をもう一つの第1
ステージ・レジスタ28aにセットする。そして、部分
和Aの計算を開始する。
Σ(E32i +E32i+1 ) が第1ステージ・レジスタ28
a上に来るまで空足しを行なう。その部分和は第1ステ
ージ・レジスタ28a上で2τ間ホールドされる。その
間に部分和Σ(E32i+8 +E 32i+9 )をもう一つの第1
ステージ・レジスタ28aにセットする。そして、部分
和Aの計算を開始する。
【0106】次に、部分和Σ(E32i+16+E32i+17)を
第1ステージ・レジスタ28aにセットし2τの間ホー
ルドする。その間に部分和Σ(E32i+24+E32i+25)を
もう一方の第1ステージ・レジスタ28aにセットす
る。そして、もう一つの部分和Bを計算する。部分和A
を第1ステージ・レジスタ28aに2τの間ホールド
し、その間に部分和Bをもう一方の第1ステージ・レジ
スタ28aにセットし、そして中間結果を計算する。
第1ステージ・レジスタ28aにセットし2τの間ホー
ルドする。その間に部分和Σ(E32i+24+E32i+25)を
もう一方の第1ステージ・レジスタ28aにセットす
る。そして、もう一つの部分和Bを計算する。部分和A
を第1ステージ・レジスタ28aに2τの間ホールド
し、その間に部分和Bをもう一方の第1ステージ・レジ
スタ28aにセットし、そして中間結果を計算する。
【0107】収束期間における、この中間結果を求める
動作は、各付加演算器35a〜35dで並行して行なわ
れる。最終的な結果を求めるための演算は、付加演算器
35aで実行する。付加演算器35aでは、第1ステー
ジ・レジスタ28aに付加演算器35aの中間結果をホ
ールドし、付加演算器35bの中間結果がもう一方の第
1ステージ・レジスタ28aにセットされるのを待つ。
そして、付加演算器35aと付加演算器35bの中間結
果どうしを加算して中間結果Aを求める。この中間結果
Aは、第1ステージ・レジスタ28a上でホールドさ
れ、付加演算器35cの中間結果がもう一方の第1ステ
ージ・レジスタ28aにセットされるのを待つ。
動作は、各付加演算器35a〜35dで並行して行なわ
れる。最終的な結果を求めるための演算は、付加演算器
35aで実行する。付加演算器35aでは、第1ステー
ジ・レジスタ28aに付加演算器35aの中間結果をホ
ールドし、付加演算器35bの中間結果がもう一方の第
1ステージ・レジスタ28aにセットされるのを待つ。
そして、付加演算器35aと付加演算器35bの中間結
果どうしを加算して中間結果Aを求める。この中間結果
Aは、第1ステージ・レジスタ28a上でホールドさ
れ、付加演算器35cの中間結果がもう一方の第1ステ
ージ・レジスタ28aにセットされるのを待つ。
【0108】そして、中間結果Aと付加演算器35cの
中間結果とが加算されて中間結果Bが生成される。この
中間結果Bは、第1ステージ・レジスタ28aでホール
ドされ、付加演算器35dの中間結果がもう一方の第1
ステージ・レジスタ28aにセットされるのを待つ。そ
して、中間結果Bと付加演算器35dの中間結果とを加
算して、最終的な結果を生成する。
中間結果とが加算されて中間結果Bが生成される。この
中間結果Bは、第1ステージ・レジスタ28aでホール
ドされ、付加演算器35dの中間結果がもう一方の第1
ステージ・レジスタ28aにセットされるのを待つ。そ
して、中間結果Bと付加演算器35dの中間結果とを加
算して、最終的な結果を生成する。
【0109】このように、本発明の第2実施例のベクト
ル処理装置によれば、追越し防止制御部25から追越し
防止制御信号が出力された際に、演算パイプライン22
−1,22−2,…,22−n,22A,22Bが収束
処理のシーケンスを実行中で、収束期間条件が成立して
いる間は、追越し防止制御信号変更部26Aにより追越
し防止制御部25からの追越し防止制御信号が変更さ
れ、収束処理中の演算パイプライン22に対する追越し
防止制御が禁止されるので、追越し防止制御信号変更部
26Aおよび収束期間通知部26Bという極めて少量の
物量の増加によるだけで、収束期間におけるレジスタ・
リンクによる追越し制御のオーバヘッドを回避すること
ができ、性能の向上を実現することができる。
ル処理装置によれば、追越し防止制御部25から追越し
防止制御信号が出力された際に、演算パイプライン22
−1,22−2,…,22−n,22A,22Bが収束
処理のシーケンスを実行中で、収束期間条件が成立して
いる間は、追越し防止制御信号変更部26Aにより追越
し防止制御部25からの追越し防止制御信号が変更さ
れ、収束処理中の演算パイプライン22に対する追越し
防止制御が禁止されるので、追越し防止制御信号変更部
26Aおよび収束期間通知部26Bという極めて少量の
物量の増加によるだけで、収束期間におけるレジスタ・
リンクによる追越し制御のオーバヘッドを回避すること
ができ、性能の向上を実現することができる。
【0110】
【発明の効果】以上詳述したように、本発明のベクトル
処理装置(請求項1,2)によれば、スループットの少
ない演算パイプラインを、1つのバンクスロットしか使
用しないメモリ・アクセス・パイプライン(ストア・パ
イプライン)と共用し、演算パイプラインをオーバラッ
プさせて実行することにより、演算スループットの大幅
な向上を実現できる効果がある。
処理装置(請求項1,2)によれば、スループットの少
ない演算パイプラインを、1つのバンクスロットしか使
用しないメモリ・アクセス・パイプライン(ストア・パ
イプライン)と共用し、演算パイプラインをオーバラッ
プさせて実行することにより、演算スループットの大幅
な向上を実現できる効果がある。
【0111】また、本発明のベクトル処理装置(請求項
3〜5)によれば、追越し防止制御部25から追越し防
止制御信号が出力された際に、演算パイプラインが収束
処理のシーケンスを実行中で、収束期間条件が成立して
いる間は、変更部追越し防止制御信号が変更され、収束
処理中の演算パイプラインに対する追越し防止制御が禁
止されるので、処理速度の大幅な改善を実現できる効果
がある。
3〜5)によれば、追越し防止制御部25から追越し防
止制御信号が出力された際に、演算パイプラインが収束
処理のシーケンスを実行中で、収束期間条件が成立して
いる間は、変更部追越し防止制御信号が変更され、収束
処理中の演算パイプラインに対する追越し防止制御が禁
止されるので、処理速度の大幅な改善を実現できる効果
がある。
【図面の簡単な説明】
【図1】第1の発明の原理説明図である。
【図2】第2の発明の原理ブロック図である。
【図3】本発明の第1実施例としてのベクトル処理装置
を示すブロック図である。
を示すブロック図である。
【図4】第1実施例の動作を説明するためのタイミング
チャートである。
チャートである。
【図5】第1実施例のバンク管理部の構成例を示すブロ
ック図である。
ック図である。
【図6】第1実施例の動作を説明するためのタイミング
チャートである。
チャートである。
【図7】第1実施例の動作を説明するためのタイミング
チャートである。
チャートである。
【図8】本発明の第2実施例としてのベクトル処理装置
を示すブロック図である。
を示すブロック図である。
【図9】第2実施例における追越し防止制御信号変更部
の構成を示す回路図である。
の構成を示す回路図である。
【図10】第2実施例の動作を説明するための図であ
る。
る。
【図11】第2実施例の動作を説明するための図であ
る。
る。
【図12】第2実施例の演算パイプラインの構成例を示
すブロック図である。
すブロック図である。
【図13】第2実施例の加算器の構成例を示すブロック
図である。
図である。
【図14】第2実施例の演算パイプラインの動作例を説
明するためのタイミングチャートである。
明するためのタイミングチャートである。
【図15】第2実施例の動作を説明するための図であ
る。
る。
【図16】第2実施例の動作を説明するための図であ
る。
る。
【図17】第2実施例の付加演算器付き演算パイプライ
ンの構成例を示すブロック図である。
ンの構成例を示すブロック図である。
【図18】第2実施例の付加演算器付き演算パイプライ
ンの動作例を説明するためのタイミングチャートであ
る。
ンの動作例を説明するためのタイミングチャートであ
る。
【図19】一般的なバンクスロットのタイミング設定例
を示すタイミングチャートである。
を示すタイミングチャートである。
1−0,1−1,…,1−n ベクトル・レジスタ 2 メモリ・アクセス・パイプライン 2A ロード・パイプライン 2B ストア・パイプライン 3A,3B−0,3B−1,…,3B−m 書込レジス
タ 4A,4B−0,4C−0,4B−1,4C−1,…,
4B−m,4C−m読出レジスタ 5−0,5−1,…,5−m 演算パイプライン 6 命令制御部 7 バンク管理部 7a バンクスロット・カウンタ 11−1,11−2,11−3 管理レジスタ 12 バンクスロット割当回路 13 通知レジスタ 14 起動信号制御部 15 割算パイプライン 15a〜15f 割算器 20 主記憶部 21 ベクトル・レジスタ 22,22−1,22−2,…,22−n 演算パイプ
ライン 22A,22B 総和演算パイプライン 22a〜22d 加算器 23−1,23−2,…,23−m メモリ・アクセス
・パイプライン 23,23A ロード・パイプライン 23B ストア・パイプライン 24 主記憶部 25 追越し防止制御部 26 変更部 26A 追越し防止制御信号変更部 26B 収束期間通知部 26a ORゲート 26b ANDゲート 26c フリップフロップ 26d ANDゲート 26e,26f インバータ(NOTゲート) 27 命令発信/管理部 28a 第1ステージ・レジスタ 28b 第2ステージ・レジスタ 28c 第3ステージ・レジスタ 28d 第4ステージ・レジスタ 28e 転送用中継レジスタ 29 セレクタ 30 指数差計算手段 31 桁合わせ手段 32 加算/減算手段 33 正規化手段 34 基本演算部 34a〜34d 基本演算器 35 付加演算部 35a〜35d 付加演算器 36a〜36d 複合演算器
タ 4A,4B−0,4C−0,4B−1,4C−1,…,
4B−m,4C−m読出レジスタ 5−0,5−1,…,5−m 演算パイプライン 6 命令制御部 7 バンク管理部 7a バンクスロット・カウンタ 11−1,11−2,11−3 管理レジスタ 12 バンクスロット割当回路 13 通知レジスタ 14 起動信号制御部 15 割算パイプライン 15a〜15f 割算器 20 主記憶部 21 ベクトル・レジスタ 22,22−1,22−2,…,22−n 演算パイプ
ライン 22A,22B 総和演算パイプライン 22a〜22d 加算器 23−1,23−2,…,23−m メモリ・アクセス
・パイプライン 23,23A ロード・パイプライン 23B ストア・パイプライン 24 主記憶部 25 追越し防止制御部 26 変更部 26A 追越し防止制御信号変更部 26B 収束期間通知部 26a ORゲート 26b ANDゲート 26c フリップフロップ 26d ANDゲート 26e,26f インバータ(NOTゲート) 27 命令発信/管理部 28a 第1ステージ・レジスタ 28b 第2ステージ・レジスタ 28c 第3ステージ・レジスタ 28d 第4ステージ・レジスタ 28e 転送用中継レジスタ 29 セレクタ 30 指数差計算手段 31 桁合わせ手段 32 加算/減算手段 33 正規化手段 34 基本演算部 34a〜34d 基本演算器 35 付加演算部 35a〜35d 付加演算器 36a〜36d 複合演算器
───────────────────────────────────────────────────── フロントページの続き (72)発明者 今野 勝彦 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 渥美 宏昭 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内
Claims (5)
- 【請求項1】 インターリーブされた複数のバンク単位
に複数のエレメント・データを記憶するベクトル・レジ
スタ(1−0,…,1−n)と、 該ベクトル・レジスタ(1−0,…,1−n)の各エレ
メント・データをアクセスする複数の演算パイプライン
(5−0,…,5−m)および1つまたは複数のメモリ
・アクセス・パイプライン(2)と、 前記の演算パイプライン(5−0,…,5−m)および
メモリ・アクセス・パイプライン(2)が各バンク単位
をアクセスできるタイミングを示すバンクスロットを管
理するバンク管理部(7)とを有し、 前記の演算パイプライン(5−0,…,5−m)および
メモリ・アクセス・パイプライン(2)が該ベクトル・
レジスタ(1−0,…,1−n)の各バンク単位を順次
アクセスして各エレメント・データを処理するベクトル
処理装置において、 前記複数の演算パイプライン(5−0,…,5−m)の
中に、他の演算パイプラインに比べて演算スループット
の低い演算パイプライン(15)を少なくとも1つ有
し、 該バンク管理部(7)により、前記の演算パイプライン
(5−0,…,5−m)およびメモリ・アクセス・パイ
プライン(2)が該ベクトル・レジスタ(1−0,…,
1−n)をアクセスするための各アクセス・タイミング
を規定する際に、前記複数の演算パイプライン(5−
0,…,5−m)のうちの演算スループットの低い演算
パイプライン(15)が該ベクトル・レジスタ(1−
0,…,1−n)をアクセスするタイミングは、前記メ
モリ・アクセス・パイプライン(2)として割り付けら
れたタイミングを用いることを特徴とする、ベクトル処
理装置。 - 【請求項2】 前記複数の演算パイプライン(5−0,
…,5−m)のうちの演算スループットの低い演算パイ
プライン(15)が該ベクトル・レジスタ(1−0,
…,1−n)をアクセスするタイミングは、前記メモリ
・アクセス・パイプライン(2)のうちのストア・パイ
プライン(2B)が該ベクトル・レジスタ(1−0,
…,1−n)から主記憶部(20)へストア動作する読
み出しタイミングのバンクスロットに対して割り当てる
ことを特徴とする、請求項1記載のベクトル処理装置。 - 【請求項3】 インターリーブされた複数のバンク単位
に複数のエレメント・データを記憶するベクトル・レジ
スタ(21)と、 該ベクトル・レジスタ(21)上のデータを入力オペラ
ンドとするか、もしくは、演算結果を該ベクトル・レジ
スタ(21)に書き込む1つまたは複数の演算パイプラ
イン(22)と、 主記憶部(24)から該ベクトル・レジスタ(21)へ
データを転送する1つまたは複数のロード・パイプライ
ン(23)とを有し、 該ロード・パイプライン(23)から該ベクトル・レジ
スタ(21)へデータを転送する命令の実行中に、該ロ
ード・パイプライン(23)が該ベクトル・レジスタ
(21)に書き込んだデータを入力オペランドとする後
続の演算命令を演算パイプライン(22)が実行する場
合、命令の実行順序を保証するために、ロード・パイプ
ライン(23)の実行を後続の演算パイプライン(2
2)の処理が追い越す条件を検出した時に、全ての演算
パイプライン(22)の実行を一時中断する追越し防止
制御部(25)をそなえたベクトル処理装置において、 該ベクトル・レジスタ(21)からのデータ供給を受け
るリード処理期間と、該リード処理期間後に結果をまと
め上げる収束期間とを必要とするベクトル命令につい
て、該当ベクトル命令の収束処理を実行中の演算パイプ
ライン(22)に対する追越し防止制御を行なわないよ
うに、該追越し防止制御部(25)から出力される追越
し防止制御信号を変更する変更部(26)がそなえられ
ていることを特徴とする、ベクトル処理装置。 - 【請求項4】 該変更部(26)が、該演算パイプライ
ン(25)にそなえられていることを特徴とする、請求
項3記載のベクトル処理装置。 - 【請求項5】 該当ベクトル命令の収束処理を実行中の
演算パイプライン(22)が、基本演算器と収束を処理
する付加演算器とを有する構成のもので、収束処理を該
付加演算器により実行し、収束処理中、該基本演算器に
より後続の他の演算命令を実行できるものである場合に
は、収束処理中、該変更部(26)が、該付加演算器に
対してのみ追越し防止制御を行なわないように、該追越
し防止制御信号を変更することを特徴とする、請求項3
または4に記載のベクトル処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP33811793A JPH07200542A (ja) | 1993-12-28 | 1993-12-28 | ベクトル処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP33811793A JPH07200542A (ja) | 1993-12-28 | 1993-12-28 | ベクトル処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07200542A true JPH07200542A (ja) | 1995-08-04 |
Family
ID=18315074
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP33811793A Withdrawn JPH07200542A (ja) | 1993-12-28 | 1993-12-28 | ベクトル処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07200542A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7043627B2 (en) | 2000-11-08 | 2006-05-09 | Hitachi, Ltd. | SIMD operation system capable of designating plural registers via one register designating field |
| JP2015041176A (ja) * | 2013-08-21 | 2015-03-02 | 日本電気株式会社 | プロセッサおよびプロセッサの処理方法 |
-
1993
- 1993-12-28 JP JP33811793A patent/JPH07200542A/ja not_active Withdrawn
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7043627B2 (en) | 2000-11-08 | 2006-05-09 | Hitachi, Ltd. | SIMD operation system capable of designating plural registers via one register designating field |
| JP2015041176A (ja) * | 2013-08-21 | 2015-03-02 | 日本電気株式会社 | プロセッサおよびプロセッサの処理方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4507728A (en) | Data processing system for parallel processing of different instructions | |
| US5872987A (en) | Massively parallel computer including auxiliary vector processor | |
| JP3344345B2 (ja) | 共有メモリ型ベクトル処理システムとその制御方法及びベクトル処理の制御プログラムを格納する記憶媒体 | |
| CA1211852A (en) | Computer vector multiprocessing control | |
| JP2750311B2 (ja) | データ処理装置内のデータ・オペレーションの実行を制御する装置及び方法 | |
| US5418970A (en) | Parallel processing system with processor array with processing elements addressing associated memories using host supplied address value and base register content | |
| JPH0463430B2 (ja) | ||
| JP2021108104A (ja) | 部分的読み取り/書き込みが可能な再構成可能なシストリックアレイのシステム及び方法 | |
| US5404558A (en) | Data driven type information processor having a plurality of memory banks | |
| JPH04336378A (ja) | 情報処理装置 | |
| US11093276B2 (en) | System and method for batch accessing | |
| EP0295646B1 (en) | Arithmetic operation processing apparatus of the parallel processing type and compiler which is used in this apparatus | |
| US20200174965A1 (en) | Processor Core Design Optimized for Machine Learning Applications | |
| US7895413B2 (en) | Microprocessor including register renaming unit for renaming target registers in an instruction with physical registers in a register sub-file | |
| EP0419499B1 (en) | Vector tailgating in computers with vector registers | |
| JPH07200542A (ja) | ベクトル処理装置 | |
| US5623685A (en) | Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency | |
| CN112463217B (zh) | 超标量处理器中寄存器堆共享读端口的系统、方法和介质 | |
| JPS6156546B2 (ja) | ||
| JP5392810B2 (ja) | 命令発行制御装置及び命令発行制御方法 | |
| JP7357767B2 (ja) | 複数のプロセッサを有するコンピュータにおける通信 | |
| Liou | Design of pipelined memory systems for decoupled architectures | |
| JP2723412B2 (ja) | 主記憶プリポート制御方式 | |
| JP3182177B2 (ja) | ベクトル演算処理機能を有する中央数値処理装置及びベクトル演算処理方法 | |
| JPH0769896B2 (ja) | ベクトル処理システム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20010306 |