JP3260456B2 - コンピュータシステムおよびそれに適した集積回路並びに要求選択回路 - Google Patents
コンピュータシステムおよびそれに適した集積回路並びに要求選択回路Info
- Publication number
- JP3260456B2 JP3260456B2 JP34590092A JP34590092A JP3260456B2 JP 3260456 B2 JP3260456 B2 JP 3260456B2 JP 34590092 A JP34590092 A JP 34590092A JP 34590092 A JP34590092 A JP 34590092A JP 3260456 B2 JP3260456 B2 JP 3260456B2
- Authority
- JP
- Japan
- Prior art keywords
- priority
- request
- requests
- requester
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Complex Calculations (AREA)
- Bus Control (AREA)
Description
【0001】
【産業上の利用分野】本発明は、複数のプロセッシング
エレメントが1つの記憶装置を共有するコンピュータシ
ステムに関し、特に記憶装置に対して発行するアクセス
命令が複数のアクセスリクエストからなる場合に主記憶
のアクセス性能が低下することを防止する競合調停方式
を採用したコンピュータシステムに関する。
エレメントが1つの記憶装置を共有するコンピュータシ
ステムに関し、特に記憶装置に対して発行するアクセス
命令が複数のアクセスリクエストからなる場合に主記憶
のアクセス性能が低下することを防止する競合調停方式
を採用したコンピュータシステムに関する。
【0002】
【従来の技術】複数のリクエストの内、1つあるいは数
個を選んで出力するプライオリティ回路における調停方
式にはいくつかある。始めから優先順位を固定してリク
エストを選択する方式、リクエストの中から最も古いも
のを選択する方式、複数のリクエストの中からランダム
に選択する方式、選択されなかったリクエストの優先順
位を上げる方式(特開昭63−66662に開示されて
いる)などがある。
個を選んで出力するプライオリティ回路における調停方
式にはいくつかある。始めから優先順位を固定してリク
エストを選択する方式、リクエストの中から最も古いも
のを選択する方式、複数のリクエストの中からランダム
に選択する方式、選択されなかったリクエストの優先順
位を上げる方式(特開昭63−66662に開示されて
いる)などがある。
【0003】複数のリクエスタが複数の記憶装置に対し
てリクエストを発行する場合に生じる競合を、上記に示
すような調停方式を用いて解決する装置が、特開昭63
−66662に開示されている。図17を用いてこれを
説明する。
てリクエストを発行する場合に生じる競合を、上記に示
すような調停方式を用いて解決する装置が、特開昭63
−66662に開示されている。図17を用いてこれを
説明する。
【0004】図17において、151,152,15
3,154は主記憶にたいしてリクエストを発行するリ
クエスタ(REQ)、168は主記憶装置、159はリ
クエスタからのリクエスト間の競合を調停して主記憶装
置168にリクエストを送出する記憶制御装置、173
は主記憶装置168から読み出したデータを、各リクエ
スタREQ0,REQ1,REQ2,REQ3毎に、リ
クエストを発行した順番に並べ直すフェッチデータバッ
ファである。
3,154は主記憶にたいしてリクエストを発行するリ
クエスタ(REQ)、168は主記憶装置、159はリ
クエスタからのリクエスト間の競合を調停して主記憶装
置168にリクエストを送出する記憶制御装置、173
は主記憶装置168から読み出したデータを、各リクエ
スタREQ0,REQ1,REQ2,REQ3毎に、リ
クエストを発行した順番に並べ直すフェッチデータバッ
ファである。
【0005】リクエスタ151,152,153,15
4は、それぞれ一つのベクトルプロセッサ(図示せず)
に含まれるもので、リクエストを生成して送出するリク
エスト送出部155,156,157,158を持つ。
4は、それぞれ一つのベクトルプロセッサ(図示せず)
に含まれるもので、リクエストを生成して送出するリク
エスト送出部155,156,157,158を持つ。
【0006】記憶制御部159は、リクエストを保持す
るリクエストキュー(QUE)160(QUE0),1
61(QUE1),162(QUE2),163(QU
E3)と、リクエストが競合を起こした場合にどのリク
エストを先に処理するかの優先順位を決定するプライオ
リティ回路(PR)164(PR0),165(PR
1),166(PR2),167(PR3)からなる。
るリクエストキュー(QUE)160(QUE0),1
61(QUE1),162(QUE2),163(QU
E3)と、リクエストが競合を起こした場合にどのリク
エストを先に処理するかの優先順位を決定するプライオ
リティ回路(PR)164(PR0),165(PR
1),166(PR2),167(PR3)からなる。
【0007】主記憶装置168は4つのバンクグループ
(BG)169(BG0),170(BG1),171
(BG2),172(BG3)からなる。バンクグルー
プBG0乃至BG3はそれぞれ複数のメモリバンクBK
0乃至BK3,BK4乃至BK7,BK8乃至BK1
1,BK12乃至BK15からなる。1つのリクエスト
がメモリバンクをアクセスするのに数クロックを要し
(この時間をメモリアクセスタイムと呼ぶ)、アクセス
中のメモリバンクには他のリクエストはアクセスできな
い。
(BG)169(BG0),170(BG1),171
(BG2),172(BG3)からなる。バンクグルー
プBG0乃至BG3はそれぞれ複数のメモリバンクBK
0乃至BK3,BK4乃至BK7,BK8乃至BK1
1,BK12乃至BK15からなる。1つのリクエスト
がメモリバンクをアクセスするのに数クロックを要し
(この時間をメモリアクセスタイムと呼ぶ)、アクセス
中のメモリバンクには他のリクエストはアクセスできな
い。
【0008】フェッチデータバッファ173に関しては
特開昭60−136849に開示されているので、ここ
ではその詳細な構成については省略する。
特開昭60−136849に開示されているので、ここ
ではその詳細な構成については省略する。
【0009】次に図21においてプライオリティ回路1
64の詳細を説明する。
64の詳細を説明する。
【0010】図において、208,209,210,2
11は対応するリクエスタの優先順位ビットレジスタを
保持するレジスタ、204,205,206,207は
リクエストレジスタ、200,201,202,203
はセットリセット論理、213はプライオリティ論理、
212はOR回路、214はデコーダ、215はリクエ
ストレジスタである。プライオリティ回路164では、
リクエスタ151〜154からのリクエストをリクエス
トレジスタ204,205,206,207で一旦ラッ
チし、優先順位ビットレジスタ208,209,21
0,211に従ってプライオリティ論理213でリクエ
ストを選択し、リクエストレジタ215に保持する。同
時にリクエストレジスタ204,205,206,20
7からセットリセット回路200,201,202,2
03にリクエストがあることをしらせる。プライオリテ
ィ論理213では選択したリクエストの発行元のリクエ
スタが属するベクトルプロセッサの番号を発行し、21
4でデコードしてベクトルプロセッサ番号に対応するセ
ットリセット回路200,201,202,203に送
る。一方優先順位ビットレジスタ208,209,21
0,211の値をOR回路212でORしてセットリセ
ット回路200,201,202,203に送る。
11は対応するリクエスタの優先順位ビットレジスタを
保持するレジスタ、204,205,206,207は
リクエストレジスタ、200,201,202,203
はセットリセット論理、213はプライオリティ論理、
212はOR回路、214はデコーダ、215はリクエ
ストレジスタである。プライオリティ回路164では、
リクエスタ151〜154からのリクエストをリクエス
トレジスタ204,205,206,207で一旦ラッ
チし、優先順位ビットレジスタ208,209,21
0,211に従ってプライオリティ論理213でリクエ
ストを選択し、リクエストレジタ215に保持する。同
時にリクエストレジスタ204,205,206,20
7からセットリセット回路200,201,202,2
03にリクエストがあることをしらせる。プライオリテ
ィ論理213では選択したリクエストの発行元のリクエ
スタが属するベクトルプロセッサの番号を発行し、21
4でデコードしてベクトルプロセッサ番号に対応するセ
ットリセット回路200,201,202,203に送
る。一方優先順位ビットレジスタ208,209,21
0,211の値をOR回路212でORしてセットリセ
ット回路200,201,202,203に送る。
【0011】次にセットリセット回路200,201,
202,203による対応する優先順位ビットレジスタ
308〜211のセット/リセット方法を説明する。
202,203による対応する優先順位ビットレジスタ
308〜211のセット/リセット方法を説明する。
【0012】各優先順位ビットレジスタをセットするの
は、対するリクエストレジスタ204,205,206
又は207にリクエスタが存在し、かつデコーダ214
からの信号が「0」、すなわちプライオリティ論理21
3でそのリクエストが選択されず、かつOR回路212
の値が「0」、すなわちどの優先順位ビットレジスタも
セットされていないときである。
は、対するリクエストレジスタ204,205,206
又は207にリクエスタが存在し、かつデコーダ214
からの信号が「0」、すなわちプライオリティ論理21
3でそのリクエストが選択されず、かつOR回路212
の値が「0」、すなわちどの優先順位ビットレジスタも
セットされていないときである。
【0013】各優先順位ビットレジスタをリセットする
のは、デコーダ214からの信号が「1」、すなわちプ
ライオリティ論理213で対応するリクエストレジスタ
内のリクエストが選択された場合である。
のは、デコーダ214からの信号が「1」、すなわちプ
ライオリティ論理213で対応するリクエストレジスタ
内のリクエストが選択された場合である。
【0014】次にリクエストが処理される流れを説明す
る。
る。
【0015】まず、図17において、リクエスタREQ
0,REQ1,REQ2,REQ3は、送出先のバンク
グループ番号、バンク番号、バンク内アドレスを持つリ
クエストを発行する。発行されたリクエストは、各リク
エスタに対応する、記憶制御装置内のリクエストキュー
QUE0,QUE1,QUE2,QUE3で一時保持さ
れる。
0,REQ1,REQ2,REQ3は、送出先のバンク
グループ番号、バンク番号、バンク内アドレスを持つリ
クエストを発行する。発行されたリクエストは、各リク
エスタに対応する、記憶制御装置内のリクエストキュー
QUE0,QUE1,QUE2,QUE3で一時保持さ
れる。
【0016】リクエストキューQUE0,QUE1,Q
UE2,QUE3では、リクエストが持つ送出先のバン
クグループ番号を判別し、そのバンクグループ番号に対
応するプライオリティ回路PR0,PR1,PR2,P
R3の競合調停にリクエストを参加させる。
UE2,QUE3では、リクエストが持つ送出先のバン
クグループ番号を判別し、そのバンクグループ番号に対
応するプライオリティ回路PR0,PR1,PR2,P
R3の競合調停にリクエストを参加させる。
【0017】各プライオリティ回路PR0,PR1,P
R2,PR3は、競合調停に参加しているリクエスト
で、その優先順位ビットが「1」であるリクエストを選
択してその中から1つリクエストを選択する。もし優先
順位ビットが「1」であるリクエストがない場合には、
競合調停に参加している全てのリクエストの中から1つ
リクエストを選択し、選択されなかったリクエストの優
先順位ビットを全て「1」にする。優先順位ビットはそ
れぞれのプライオリティ回路が独立して管理しているた
め、各プライオリティ回路毎に優先順位が異なることに
なる。
R2,PR3は、競合調停に参加しているリクエスト
で、その優先順位ビットが「1」であるリクエストを選
択してその中から1つリクエストを選択する。もし優先
順位ビットが「1」であるリクエストがない場合には、
競合調停に参加している全てのリクエストの中から1つ
リクエストを選択し、選択されなかったリクエストの優
先順位ビットを全て「1」にする。優先順位ビットはそ
れぞれのプライオリティ回路が独立して管理しているた
め、各プライオリティ回路毎に優先順位が異なることに
なる。
【0018】プライオリティ回路たとえばPR0で選択
されたリクエストは、リクエストに付加された送出先メ
モリバンク番号にしたがって、バンクグループBG0内
のメモリバンクBK0,BK1,BK2,BK3のいず
れかに送出される。PR1,PR2,PR3についても
同様の動作をする。
されたリクエストは、リクエストに付加された送出先メ
モリバンク番号にしたがって、バンクグループBG0内
のメモリバンクBK0,BK1,BK2,BK3のいず
れかに送出される。PR1,PR2,PR3についても
同様の動作をする。
【0019】メモリバンクをアクセスする場合、ベクト
ルプロセッサで実行している命令がロード命令であれば
メモリバンクからメモリアクセスタイム(ここでは4ク
ロックとする)の後にデータを読み出し、フェッチデー
タバッファにおいて各リクエスタ対応に、発行した順番
にデータを並べ換えてからリクエスタに送り返す。実行
している命令がストア命令であれば、メモリバンクにデ
ータを書き込んで処理を終了する。
ルプロセッサで実行している命令がロード命令であれば
メモリバンクからメモリアクセスタイム(ここでは4ク
ロックとする)の後にデータを読み出し、フェッチデー
タバッファにおいて各リクエスタ対応に、発行した順番
にデータを並べ換えてからリクエスタに送り返す。実行
している命令がストア命令であれば、メモリバンクにデ
ータを書き込んで処理を終了する。
【0020】このように、従来技術では各プライオリテ
ィ回路独立に優先順位を決定して競合調停を行うことに
より、各プライオリティ回路において特定のリクエスト
が長い時間待たされることを防いでいる。
ィ回路独立に優先順位を決定して競合調停を行うことに
より、各プライオリティ回路において特定のリクエスト
が長い時間待たされることを防いでいる。
【0021】
【発明が解決しようとする課題】図17において各リク
エスタがそれぞれ異なる命令のリクエストを処理する場
合に、次の問題がある。
エスタがそれぞれ異なる命令のリクエストを処理する場
合に、次の問題がある。
【0022】今、REQ0,REQ1からそれぞれ命令
A,Bが同時に発行され、命令A,Bがそれぞれ一組の
リクエスト例えば{a0,a1,a2,a3}、{b0,
b1,b2,b3}からなり、また命令A,B共にメモリ
バンクBK0,BK4,BK8,BK12を順にアクセ
スすると仮定する。
A,Bが同時に発行され、命令A,Bがそれぞれ一組の
リクエスト例えば{a0,a1,a2,a3}、{b0,
b1,b2,b3}からなり、また命令A,B共にメモリ
バンクBK0,BK4,BK8,BK12を順にアクセ
スすると仮定する。
【0023】この時のタイムチャートを図18に示す。
【0024】各リクエスタREQ0,REQ1からは、
それぞれ命令A,Bのリクエストが順番に発行される。
各リクエストはリクエスタREQ0,REQ1から発行
された次のクロックでリクエストキューに保持され、同
時にプライオリティ回路PR0,PR1,PR2,PR
3の競合調停に参加する。
それぞれ命令A,Bのリクエストが順番に発行される。
各リクエストはリクエスタREQ0,REQ1から発行
された次のクロックでリクエストキューに保持され、同
時にプライオリティ回路PR0,PR1,PR2,PR
3の競合調停に参加する。
【0025】この場合、プライオリティ回路PR0,P
R1,PR2,PR3では、リクエストa0とb0、a1
とb1、a2とb2、a3とb3が競合を起こす。今、PR
0,PR2,PR3ではREQ0の優先順位ビットが
「1」でREQ1,REQ2,REQ3の優先順位ビッ
トが「0」であり、PR1ではREQ1の優先順位ビッ
トが「1」でREQ0,REQ2,REQ3の優先順位
ビットが「0」であるとすると、PR0,PR1,PR
2,PR3ではそれぞれリクエストa0,b1,a2,a3
が選択される。
R1,PR2,PR3では、リクエストa0とb0、a1
とb1、a2とb2、a3とb3が競合を起こす。今、PR
0,PR2,PR3ではREQ0の優先順位ビットが
「1」でREQ1,REQ2,REQ3の優先順位ビッ
トが「0」であり、PR1ではREQ1の優先順位ビッ
トが「1」でREQ0,REQ2,REQ3の優先順位
ビットが「0」であるとすると、PR0,PR1,PR
2,PR3ではそれぞれリクエストa0,b1,a2,a3
が選択される。
【0026】選択されたリクエストa0,b1,a2,a3
は、次のクロックでそれぞれバンクグループBG0,B
G1,BG2,BG3内のBK0,BK4,BK8,B
K12に送出される。各リクエストによってアクセスさ
れたメモリバンクは、メモリアクセスタイムである4ク
ロックの後に、データを読み出し、フェッチデータバッ
ファに送出する。
は、次のクロックでそれぞれバンクグループBG0,B
G1,BG2,BG3内のBK0,BK4,BK8,B
K12に送出される。各リクエストによってアクセスさ
れたメモリバンクは、メモリアクセスタイムである4ク
ロックの後に、データを読み出し、フェッチデータバッ
ファに送出する。
【0027】各リクエストによってアクセスされたメモ
リバンクは、メモリアクセスタイムである4クロックの
間はアクセスできない。このため前回の競合調停で選択
されなかったリクエストb0,a1,b2,b3はアクセス
終了後に競合調停に参加する。
リバンクは、メモリアクセスタイムである4クロックの
間はアクセスできない。このため前回の競合調停で選択
されなかったリクエストb0,a1,b2,b3はアクセス
終了後に競合調停に参加する。
【0028】フェッチデータバッファでは、リクエスト
が発行された順番に、読み出した一組のデータを並べ替
えてから要求元のリクエスタに送り返すため、一組のデ
ータの内、一つでも読み出すのが遅れると、その他のデ
ータは全てリクエスタに送れなくなる。例えば命令Aに
関してはリクエストa1が、命令Bに関してはリクエス
トb0,b2,b3がそれぞれ4クロック遅れて実行され
るため、リクエスタREQ0ではRE1への一組のデー
タの返送も4クロック遅れる。このため、命令A,Bの
終了が共に4クロック遅れてしまう。
が発行された順番に、読み出した一組のデータを並べ替
えてから要求元のリクエスタに送り返すため、一組のデ
ータの内、一つでも読み出すのが遅れると、その他のデ
ータは全てリクエスタに送れなくなる。例えば命令Aに
関してはリクエストa1が、命令Bに関してはリクエス
トb0,b2,b3がそれぞれ4クロック遅れて実行され
るため、リクエスタREQ0ではRE1への一組のデー
タの返送も4クロック遅れる。このため、命令A,Bの
終了が共に4クロック遅れてしまう。
【0029】もし、命令Aのリクエストa1がリクエス
トb1よりも優先順位が高ければ、命令Aは処理の遅れ
が起こらず、命令の終了も遅れることがない。
トb1よりも優先順位が高ければ、命令Aは処理の遅れ
が起こらず、命令の終了も遅れることがない。
【0030】このように、各リクエストから一組のリク
エストを複数のプライオリティ回路に出力する回路で
は、優先順位を各プライオリティ回路で独立で、かつリ
クエストが選択される度に変更すると、異なる一組のリ
クエスト間で競合が生じた場合、いずれの組のリクエス
トの処理も遅れることがある。
エストを複数のプライオリティ回路に出力する回路で
は、優先順位を各プライオリティ回路で独立で、かつリ
クエストが選択される度に変更すると、異なる一組のリ
クエスト間で競合が生じた場合、いずれの組のリクエス
トの処理も遅れることがある。
【0031】また計算機センタ等で運用するマルチプロ
セッサシステムにおいて、特定のプロセッサの優先順位
を上げて処理を実行することがある。この時、他のプロ
セッサからの主記憶アクセス命令との競合によって性能
が低下することを防ぐために、特定のプロセッサの主記
憶に対するアクセスの優先度を上げることが望まれる。
セッサシステムにおいて、特定のプロセッサの優先順位
を上げて処理を実行することがある。この時、他のプロ
セッサからの主記憶アクセス命令との競合によって性能
が低下することを防ぐために、特定のプロセッサの主記
憶に対するアクセスの優先度を上げることが望まれる。
【0032】従って、本発明の目的は、異なるプロセッ
サのリクエスト間の競合によって生じる処理の遅れを、
最小限に抑える競合調停装置を提供することである。
サのリクエスト間の競合によって生じる処理の遅れを、
最小限に抑える競合調停装置を提供することである。
【0033】本発明の他の目的は、複数のプロセッサを
持つ計算機システムにおいて、特定のプロセッサが主記
憶にアクセスする時に、そのプロセッサのリクエストの
優先順位を高くすることができる競合調停装置を提供す
ることである。
持つ計算機システムにおいて、特定のプロセッサが主記
憶にアクセスする時に、そのプロセッサのリクエストの
優先順位を高くすることができる競合調停装置を提供す
ることである。
【0034】
【課題を解決するための手段】上記第1の問題点を解決
する第1の手段は、各リクエスタに、優先順位切り替え
信号を発行する回路を設ける。
する第1の手段は、各リクエスタに、優先順位切り替え
信号を発行する回路を設ける。
【0035】上記第2の問題点を解決するために、記憶
制御装置にその外部から、例えばサービスプロセッサか
ら優先順位を固定プロセッサを指定する手段を設け、記
憶制御装置内にその指定されたプロセッサの優先順位の
更新を禁止する回路を設けた。
制御装置にその外部から、例えばサービスプロセッサか
ら優先順位を固定プロセッサを指定する手段を設け、記
憶制御装置内にその指定されたプロセッサの優先順位の
更新を禁止する回路を設けた。
【0036】
【作用】各ベクトルプロセッサ内の優先順位切り替え信
号制御回路から発行される優先順位切り替え信号を、記
憶制御装置内のプライオリティ回路の優先順位を制御す
る優先順位制御回路に発行して、記憶制御装置内の全て
のプライオリティ回路における優先順位を同時に切り替
えることにより、全プライオリティ回路における優先順
の乱れを生じなくなり、異なるプロセッサから発行され
る命令間での主記憶アクセス競合を最低限に抑えること
ができ、アクセス性能の低下を防ぐことができる。これ
により、上記第1の問題点を解決できる。
号制御回路から発行される優先順位切り替え信号を、記
憶制御装置内のプライオリティ回路の優先順位を制御す
る優先順位制御回路に発行して、記憶制御装置内の全て
のプライオリティ回路における優先順位を同時に切り替
えることにより、全プライオリティ回路における優先順
の乱れを生じなくなり、異なるプロセッサから発行され
る命令間での主記憶アクセス競合を最低限に抑えること
ができ、アクセス性能の低下を防ぐことができる。これ
により、上記第1の問題点を解決できる。
【0037】また、指定されたベクトルプロセッサから
の優先順位の切り替えを抑止する回路を設けることによ
り、指定したそのプロセッサの主記憶競合における優先
順位を最も高くすることができる。これにより、上記第
2の問題点を解決できる。
の優先順位の切り替えを抑止する回路を設けることによ
り、指定したそのプロセッサの主記憶競合における優先
順位を最も高くすることができる。これにより、上記第
2の問題点を解決できる。
【0038】
(実施例1)図1は、本発明の一実施例によるベクトル
プロセッサの主要構成を示したものである。本実施例は
4つのベクトルプロセッサが1つの主記憶装置を共有し
たマルチプロセッサシステムである。
プロセッサの主要構成を示したものである。本実施例は
4つのベクトルプロセッサが1つの主記憶装置を共有し
たマルチプロセッサシステムである。
【0039】このマルチプロセッサシステムは4つのベ
クトルプロセッサ(VP)1(VP0),2(VP
1),3(VP2),4(VP3)と、記憶制御装置
(SCU)9と、主記憶装置(MS)14と、フェッチ
データバッファ23からなっている。
クトルプロセッサ(VP)1(VP0),2(VP
1),3(VP2),4(VP3)と、記憶制御装置
(SCU)9と、主記憶装置(MS)14と、フェッチ
データバッファ23からなっている。
【0040】本実施例では、マルチプロセッサシステム
におけるプロセッサ間の主記憶アクセス競合による処理
の遅れを削減するために、システム全体のプライオリテ
ィ回路における優先順位を、命令等のまとまった単位で
一斉に切り替えることが特徴である。
におけるプロセッサ間の主記憶アクセス競合による処理
の遅れを削減するために、システム全体のプライオリテ
ィ回路における優先順位を、命令等のまとまった単位で
一斉に切り替えることが特徴である。
【0041】図1において、各回路1〜4,9はそれぞ
れ一つの集積回路上に構成されることが望ましい。
れ一つの集積回路上に構成されることが望ましい。
【0042】主記憶装置14はさらにバンクグループ
(BG)15(BG0),16(BG1),17(BG
2),18(BG3)から構成される。
(BG)15(BG0),16(BG1),17(BG
2),18(BG3)から構成される。
【0043】本実施例のベクトルプロセッサは、主記憶
装置14から配列データを読み出すベクトルロード命令
や、主記憶装置14に対して配列データを書き込むベク
トルストア命令を発行することができる。
装置14から配列データを読み出すベクトルロード命令
や、主記憶装置14に対して配列データを書き込むベク
トルストア命令を発行することができる。
【0044】ベクトルプロセッサVP0乃至VP3から
発行されたベクトルロード/ストア命令は、各配列要素
のアクセスリクエストに分解され、パス5,6,7,8
を介して記憶制御装置9に発行される。記憶制御装置9
では、ベクトルプロセッサVP0乃至VP3から発行さ
れたリクエストをパス10,11,12,13を通して
主記憶装置14に送る。このとき各ベクトルプロセッサ
VP0乃至VP3からのリクエストの内の2つ以上が、
BG0乃至BG3の内の1つに送られる場合、競合が発
生する。記憶制御装置9ではこのような競合を調停して
リクエストを主記憶装置14に送る。
発行されたベクトルロード/ストア命令は、各配列要素
のアクセスリクエストに分解され、パス5,6,7,8
を介して記憶制御装置9に発行される。記憶制御装置9
では、ベクトルプロセッサVP0乃至VP3から発行さ
れたリクエストをパス10,11,12,13を通して
主記憶装置14に送る。このとき各ベクトルプロセッサ
VP0乃至VP3からのリクエストの内の2つ以上が、
BG0乃至BG3の内の1つに送られる場合、競合が発
生する。記憶制御装置9ではこのような競合を調停して
リクエストを主記憶装置14に送る。
【0045】主記憶装置14ではリクエストを受け取る
と、ストア命令では一定時間の後にデータの書き込みが
終了し、ロード命令では一定時間の後にデータを読み出
す。読み出したデータは、パス19,20,21,22
を通してフェッチデータバッファ23に保持される。
と、ストア命令では一定時間の後にデータの書き込みが
終了し、ロード命令では一定時間の後にデータを読み出
す。読み出したデータは、パス19,20,21,22
を通してフェッチデータバッファ23に保持される。
【0046】フェッチデータバッファ23では、各ベク
トルプロセッサ毎に、リクエストを発行した順番にデー
タを並べなおし、各ベクトルプロセッサに送り返す。フ
ェッチデータバッファの詳しい構成と働きは特開昭60
−136849に開示してあるのでここでは省略する。
トルプロセッサ毎に、リクエストを発行した順番にデー
タを並べなおし、各ベクトルプロセッサに送り返す。フ
ェッチデータバッファの詳しい構成と働きは特開昭60
−136849に開示してあるのでここでは省略する。
【0047】ベクトルプロセッサVP0乃至VP3と記
憶制御装置(SCU)9と、主記憶装置(MS)14の
詳しい構成を図2に示す。
憶制御装置(SCU)9と、主記憶装置(MS)14の
詳しい構成を図2に示す。
【0048】図2においてベクトルプロセッサVP0乃
至VP3はそれぞれ、記憶制御装置9に対して優先順位
切り替え信号を発行する優先順位切り替え信号制御回路
28,30,32,34と、記憶制御装置9に対してリ
クエストを発行するリクエスト発行回路29,31,3
3,35からなる。リクエスト発行回路29,31,3
3,35は優先順位切り替え信号制御回路28,30,
32,34とそれぞれパス36,37,38,39と結
合されている。優先順位切り替え信号制御回路28,3
0,32,34とリクエスト発行回路29,31,3
3,35については後で詳しく述べる。
至VP3はそれぞれ、記憶制御装置9に対して優先順位
切り替え信号を発行する優先順位切り替え信号制御回路
28,30,32,34と、記憶制御装置9に対してリ
クエストを発行するリクエスト発行回路29,31,3
3,35からなる。リクエスト発行回路29,31,3
3,35は優先順位切り替え信号制御回路28,30,
32,34とそれぞれパス36,37,38,39と結
合されている。優先順位切り替え信号制御回路28,3
0,32,34とリクエスト発行回路29,31,3
3,35については後で詳しく述べる。
【0049】記憶制御装置9は、ベクトルプロセッサV
P0乃至VP3内のリクエスト発行回路29,31,3
3,35から発行されるリクエストをそれぞれ受け取る
リクエストキュー(QUE)48(QUE0),49
(QUE1),50(QUE2),51(QUE3)
と、主記憶装置14内のバンクグループBG0乃至BG
3にそれぞれ対応するプライオリティ回路(PR)56
(PR0),57(PR1),58(PR2),59
(PR3)と、ベクトルプロセッサVP0乃至VP3内
の優先順位切り替え信号を受け取って、プライオリティ
回路PR0乃至PR3の優先順位を制御する優先順位制
御回路(PC)60からなる。プライオリティ回路PR
0乃至PR3については後で詳しく述べる。リクエスト
キューQUE0乃至QUE3は、パス52,53,5
4,55でプライオリティ回路PR0乃至PR3と結合
されている。優先順位制御回路60はパス61でプライ
オリティ回路PR0乃至PR3と結合さている。
P0乃至VP3内のリクエスト発行回路29,31,3
3,35から発行されるリクエストをそれぞれ受け取る
リクエストキュー(QUE)48(QUE0),49
(QUE1),50(QUE2),51(QUE3)
と、主記憶装置14内のバンクグループBG0乃至BG
3にそれぞれ対応するプライオリティ回路(PR)56
(PR0),57(PR1),58(PR2),59
(PR3)と、ベクトルプロセッサVP0乃至VP3内
の優先順位切り替え信号を受け取って、プライオリティ
回路PR0乃至PR3の優先順位を制御する優先順位制
御回路(PC)60からなる。プライオリティ回路PR
0乃至PR3については後で詳しく述べる。リクエスト
キューQUE0乃至QUE3は、パス52,53,5
4,55でプライオリティ回路PR0乃至PR3と結合
されている。優先順位制御回路60はパス61でプライ
オリティ回路PR0乃至PR3と結合さている。
【0050】ベクトルプロセッサVP0乃至VP3内の
リクエスト発行回路29,31,33,35はパス4
0,41,42,43で記憶制御装置内9のリクエスト
キューQUE0乃至QUE3と結合されている。
リクエスト発行回路29,31,33,35はパス4
0,41,42,43で記憶制御装置内9のリクエスト
キューQUE0乃至QUE3と結合されている。
【0051】主記憶装置14の構成は図17に示した従
来例と同じである。
来例と同じである。
【0052】ベクトルプロセッサVP0乃至VP3内の
優先順位切り替え信号制御回路28、30,32,34
はパス44,45,46,47で記憶制御装置内9の優
先順位制御回路60と結合されている。
優先順位切り替え信号制御回路28、30,32,34
はパス44,45,46,47で記憶制御装置内9の優
先順位制御回路60と結合されている。
【0053】プライオリティ回路PR0乃至PR3は、
パス10、11、12、13で図1における主記憶装置
14内のバンクグループBG0乃至BG3とそれぞれ1
対1に結合されている。
パス10、11、12、13で図1における主記憶装置
14内のバンクグループBG0乃至BG3とそれぞれ1
対1に結合されている。
【0054】次に図3においてメモリバンクへのアドレ
ス付けを説明する。
ス付けを説明する。
【0055】図において、BG#はバンクグループ番号
を、BK#はメモリバンク番号を、ADRはアドレスを
表す。図3は、異なるバンクグループに順次アドレスを
割り付け、さらにバンクグループ内で異なるメモリバン
クに順次アドレスを割り付ける方法によるアドレス付け
である。
を、BK#はメモリバンク番号を、ADRはアドレスを
表す。図3は、異なるバンクグループに順次アドレスを
割り付け、さらにバンクグループ内で異なるメモリバン
クに順次アドレスを割り付ける方法によるアドレス付け
である。
【0056】このようなアドレス付けを行った場合、ア
ドレス等間隔でアクセスするとき(このアドレス間隔を
ストライドと呼ぶ)、ストライド2では8個のメモリバ
ンクに、ストライド4では4個のメモリバンクに、スト
ライド8では2個のメモリバンクに、ストライド16で
は1個のメモリバンクにアクセスが集中する。このた
め、このようなストライドではメモリバンク競合が発生
しやすくなる。メモリアクセスタイムを4クロックとす
ると、ストライド4,8,16では常に特定のメモリバ
ンクにアクセスする状態、すなわちメモリバンクを占有
した状態になる恐れがある。
ドレス等間隔でアクセスするとき(このアドレス間隔を
ストライドと呼ぶ)、ストライド2では8個のメモリバ
ンクに、ストライド4では4個のメモリバンクに、スト
ライド8では2個のメモリバンクに、ストライド16で
は1個のメモリバンクにアクセスが集中する。このた
め、このようなストライドではメモリバンク競合が発生
しやすくなる。メモリアクセスタイムを4クロックとす
ると、ストライド4,8,16では常に特定のメモリバ
ンクにアクセスする状態、すなわちメモリバンクを占有
した状態になる恐れがある。
【0057】また、リストベクトル命令のようにストラ
イドが不定である命令は、特定のメモリバンクにアクセ
スが集中する可能性があり、やはり、メモリバンク競合
が発生しやすくなり、特定のメモリバンクを占有する恐
れがある。
イドが不定である命令は、特定のメモリバンクにアクセ
スが集中する可能性があり、やはり、メモリバンク競合
が発生しやすくなり、特定のメモリバンクを占有する恐
れがある。
【0058】このため、ストライドが「4」の倍数の命
令や、リストベクトル命令などは優先順位をこまめに切
り替えてメモリバンクの占有を防ぐ必要がある。
令や、リストベクトル命令などは優先順位をこまめに切
り替えてメモリバンクの占有を防ぐ必要がある。
【0059】次に図4においてリクエスト発行回路29
から発行されるリクエストの詳細を示す。
から発行されるリクエストの詳細を示す。
【0060】図において、124はリクエスト発行回路
で生成されるリクエストを、125はパス40を通して
記憶制御装置に発行するリクエストである。リクエスト
124において、’RQ’はリクエストが有効であるこ
とを示すビット、’END’は1つの命令の最終要素の
リクエストであることを示すビット、’LIST’はリ
ストベクトルであることを示すビット、’4’はアクセ
スストライドが「4」の倍数であることを表すビッ
ト、’L/S’はロード/ストア命令を区別するビッ
ト、’BG’,’BK’,’ADR’はそれぞれ送出先
バンクグループ番号、メモリバンク番号、メモリバンク
内アドレスを表し、’STORE DATA’はストア
データを表している。
で生成されるリクエストを、125はパス40を通して
記憶制御装置に発行するリクエストである。リクエスト
124において、’RQ’はリクエストが有効であるこ
とを示すビット、’END’は1つの命令の最終要素の
リクエストであることを示すビット、’LIST’はリ
ストベクトルであることを示すビット、’4’はアクセ
スストライドが「4」の倍数であることを表すビッ
ト、’L/S’はロード/ストア命令を区別するビッ
ト、’BG’,’BK’,’ADR’はそれぞれ送出先
バンクグループ番号、メモリバンク番号、メモリバンク
内アドレスを表し、’STORE DATA’はストア
データを表している。
【0061】優先順位切り替え信号制御回路28に対し
ては、パス70,71,72,73を通して’R
Q’,’END’,’LIST’,’4’をパス36に
まとめて発行する。
ては、パス70,71,72,73を通して’R
Q’,’END’,’LIST’,’4’をパス36に
まとめて発行する。
【0062】記憶制御装置9に対しては’RQ’,’L
/S’,’BG’,’BK’,’ADR’,’STOR
E DATA’をパス40を通して発行する。
/S’,’BG’,’BK’,’ADR’,’STOR
E DATA’をパス40を通して発行する。
【0063】次に図5において優先順位切り替え信号制
御回路28の詳しいブロック図を示す。
御回路28の詳しいブロック図を示す。
【0064】図5において、62は、発行されたリクエ
ストを数えるカウンタ、63はカウンタ、64は比較
器、65,67はAND回路、66,68はOR回路、
69はディレイバッファ、70は対応するリクエスタ、
例えば29(図2)がリクエストを発行したことしらせ
るパス、71は命令の終了を知らせるパス、72はリス
トベクトル命令であることを知らせるパス、73はアク
セスストライドがバンクグループ数「4」の倍数である
ことを知らせるパス、75をカウンタ63の値をその入
力に接続するパス、76は2つの優先順位切り替え信号
の間に最低限必要なリクエスト発行数である優先順位切
り替え要素数を与えるためのパス、77はカウンタ62
の値を比較器に送るパス、78はパス76と77の比較
結果をAND回路65に送るパス、79はパス71と7
8のANDした結果をOR回路68に送るパス、80は
カウンタ63のキャリー信号をAND回路67送るパ
ス、81はパス73と74をORした結果をAND回路
67に送るパス、82はパス80と81をANDした結
果をOR回路68に送るパスである。このOR回路の出
力83は優先順位切り替信号としてディレイバッファ6
9に送られ、かつカウンタ62のリセット入力として使
用されるパス、84はディレイバッファ69による遅延
時間を定めるディレイクロック数を与えるためのパスで
ある。
ストを数えるカウンタ、63はカウンタ、64は比較
器、65,67はAND回路、66,68はOR回路、
69はディレイバッファ、70は対応するリクエスタ、
例えば29(図2)がリクエストを発行したことしらせ
るパス、71は命令の終了を知らせるパス、72はリス
トベクトル命令であることを知らせるパス、73はアク
セスストライドがバンクグループ数「4」の倍数である
ことを知らせるパス、75をカウンタ63の値をその入
力に接続するパス、76は2つの優先順位切り替え信号
の間に最低限必要なリクエスト発行数である優先順位切
り替え要素数を与えるためのパス、77はカウンタ62
の値を比較器に送るパス、78はパス76と77の比較
結果をAND回路65に送るパス、79はパス71と7
8のANDした結果をOR回路68に送るパス、80は
カウンタ63のキャリー信号をAND回路67送るパ
ス、81はパス73と74をORした結果をAND回路
67に送るパス、82はパス80と81をANDした結
果をOR回路68に送るパスである。このOR回路の出
力83は優先順位切り替信号としてディレイバッファ6
9に送られ、かつカウンタ62のリセット入力として使
用されるパス、84はディレイバッファ69による遅延
時間を定めるディレイクロック数を与えるためのパスで
ある。
【0065】優先順位切り替え信号制御回路28では、
リクエスト発行回路29からリクエストを発行したこと
を示す信号、1つの命令の最終要素であることを示す信
号、実行中の命令が処理するベクトルデータがリストベ
クトルであるか否かを示す信号、実行中の命令が処理す
るベクトルデータのアクセスストライドが「4」の倍数
であるか否かを示す信号をパス36を通して受け取る。
この内、リクエストが発行されたことを示す信号はパス
70を介してカウンタ62に与えられる。
リクエスト発行回路29からリクエストを発行したこと
を示す信号、1つの命令の最終要素であることを示す信
号、実行中の命令が処理するベクトルデータがリストベ
クトルであるか否かを示す信号、実行中の命令が処理す
るベクトルデータのアクセスストライドが「4」の倍数
であるか否かを示す信号をパス36を通して受け取る。
この内、リクエストが発行されたことを示す信号はパス
70を介してカウンタ62に与えられる。
【0066】カウンタ62には初期値として「0」が格
納されており、パス70から与えられるリクエストが発
行されたことを示す信号をカウントする。比較器64で
はパス77を通してカウンタ62の値を受け取り、パス
76を通して与えられる予じめ定めた優先順位切り替え
要素数と比較する。この優先順位切替要素数はシステム
構成や実行するプログラムの特性によって望ましい値
(メモリ競合による性能劣化が少ない値)を定めるのが
望ましい。比較の結果、これらが等しければパス78を
通してAND回路65とカウンタ62のディセーブル入
力に「1」を送り、パス71によって与えられる命令終
了信号とのANDをとりパス79によりOR回路68に
送る。すなわちカウンタ62が示す発行済み要素数がパ
ス76で与えられる優先順位切り替え要素数と等しくな
ければ命令の終了であっても優先順位切り替え信号を発
行しない。また、等しくなればパス83によってカウン
タ62はリセットされる。これは、ベクトル長が短いと
きに頻繁に優先順位が切り替わらないようにすることに
よって、そのベクトルプロセッサの優先順位が過剰に下
がることを防ぐためである。カウンタ62のビット数は
ベクトルプロセッサのベクトルレジスタ(VR)の長さ
(つまり、VRに保持できるベクトル要素数)によって
決める。たとえばこれが64ならばカウンタ62は5ビ
ットである。
納されており、パス70から与えられるリクエストが発
行されたことを示す信号をカウントする。比較器64で
はパス77を通してカウンタ62の値を受け取り、パス
76を通して与えられる予じめ定めた優先順位切り替え
要素数と比較する。この優先順位切替要素数はシステム
構成や実行するプログラムの特性によって望ましい値
(メモリ競合による性能劣化が少ない値)を定めるのが
望ましい。比較の結果、これらが等しければパス78を
通してAND回路65とカウンタ62のディセーブル入
力に「1」を送り、パス71によって与えられる命令終
了信号とのANDをとりパス79によりOR回路68に
送る。すなわちカウンタ62が示す発行済み要素数がパ
ス76で与えられる優先順位切り替え要素数と等しくな
ければ命令の終了であっても優先順位切り替え信号を発
行しない。また、等しくなればパス83によってカウン
タ62はリセットされる。これは、ベクトル長が短いと
きに頻繁に優先順位が切り替わらないようにすることに
よって、そのベクトルプロセッサの優先順位が過剰に下
がることを防ぐためである。カウンタ62のビット数は
ベクトルプロセッサのベクトルレジスタ(VR)の長さ
(つまり、VRに保持できるベクトル要素数)によって
決める。たとえばこれが64ならばカウンタ62は5ビ
ットである。
【0067】ただし、カウンタ62が示す最大数は、V
Rの長さよりも大きくして、かつ優先順位切り替え要素
数の値をVRの長さより大きくして、数命令に1回優先
順位を切り替えるようにすることも可能である。
Rの長さよりも大きくして、かつ優先順位切り替え要素
数の値をVRの長さより大きくして、数命令に1回優先
順位を切り替えるようにすることも可能である。
【0068】要素数カウンタ63は例えば2ビットのカ
ウンタであり、初期値として「0」が格納されている。
このカウンタもリクエスト発行信号の数をカウントす
る。カウンタ63の値が「3」を越えるとキャリー信号
をパス80を通してAND回路67に送り、カウンタの
値は「0」にもどる。このカウンタ63のビット長は2
に限定されず、適当な数にしてよい。カウンタ63はメ
モリバンクを占有する(同一メモリバンクに連続してア
クセスする)可能性の有る命令の、優先順位を下げる信
号を発行するタイミングを決定する。本実施例では4要
素毎に優先順位を下げる信号を発行する。
ウンタであり、初期値として「0」が格納されている。
このカウンタもリクエスト発行信号の数をカウントす
る。カウンタ63の値が「3」を越えるとキャリー信号
をパス80を通してAND回路67に送り、カウンタの
値は「0」にもどる。このカウンタ63のビット長は2
に限定されず、適当な数にしてよい。カウンタ63はメ
モリバンクを占有する(同一メモリバンクに連続してア
クセスする)可能性の有る命令の、優先順位を下げる信
号を発行するタイミングを決定する。本実施例では4要
素毎に優先順位を下げる信号を発行する。
【0069】OR回路66にはパス73,72に与えら
れる、リストベクトルであることを示す信号と、ストラ
イドが「4」の倍数であることを示す信号のORを検出
する。
れる、リストベクトルであることを示す信号と、ストラ
イドが「4」の倍数であることを示す信号のORを検出
する。
【0070】AND回路67はパス80と81の値のA
NDをとることにより、リストベクトル命令やストライ
ドが「4」の倍数の場合には、リクエストを「4」個発
行する毎に、そのベクトルプロセッサの優先順位を下げ
るための優先順位切り替え信号を生成し、これをオアゲ
ート68に与える。この信号は、1つの命令が特定のメ
モリバンクを長時間占有することを防ぐために使用され
る。
NDをとることにより、リストベクトル命令やストライ
ドが「4」の倍数の場合には、リクエストを「4」個発
行する毎に、そのベクトルプロセッサの優先順位を下げ
るための優先順位切り替え信号を生成し、これをオアゲ
ート68に与える。この信号は、1つの命令が特定のメ
モリバンクを長時間占有することを防ぐために使用され
る。
【0071】OR回路68ではパス79とパス82のO
Rをとり、優先順位切り替え信号を新たに生成し、パス
83によりディレイバッファ69に送出する。ディレイ
バッファ69では優先順位切り替え信号を、パス84に
よって与えられたディレイクロック数だけ保持し、その
後パス44を通して記憶制御装置9内の優先順位制御回
路60に発行する。また、パス83はカウンタ62のリ
セット入力にも接続されており、パス83の値が「1」
であればカウンタ62をリセットする。ディレイバッフ
ァによる遅延時間は、この実施例では最終リクエストを
発行し、かつ、命令の実行が終了してからプライオリテ
ィがとられるまでの最短時間より長い時間に、もしく
は、より望ましくはその最短時間tαにする。この結
果、最終リクエストの発行と命令の実行の終了とに同期
して、その後の命令の処理の優先度が後述するように変
更されることになる。しかし、もしもプライオリティ回
路における競合により処理が遅れた場合、最終リクエス
トの処理を待たずに優先順位を変更することになる。最
終リクエストの処理の完了を待たないで優先順位切り替
え信号を発生するのは、回路の簡単化のためである。必
要ならば、最終リクエストの処理の完了後に優先順位切
り替え信号を出力するようにすることも可能である。
Rをとり、優先順位切り替え信号を新たに生成し、パス
83によりディレイバッファ69に送出する。ディレイ
バッファ69では優先順位切り替え信号を、パス84に
よって与えられたディレイクロック数だけ保持し、その
後パス44を通して記憶制御装置9内の優先順位制御回
路60に発行する。また、パス83はカウンタ62のリ
セット入力にも接続されており、パス83の値が「1」
であればカウンタ62をリセットする。ディレイバッフ
ァによる遅延時間は、この実施例では最終リクエストを
発行し、かつ、命令の実行が終了してからプライオリテ
ィがとられるまでの最短時間より長い時間に、もしく
は、より望ましくはその最短時間tαにする。この結
果、最終リクエストの発行と命令の実行の終了とに同期
して、その後の命令の処理の優先度が後述するように変
更されることになる。しかし、もしもプライオリティ回
路における競合により処理が遅れた場合、最終リクエス
トの処理を待たずに優先順位を変更することになる。最
終リクエストの処理の完了を待たないで優先順位切り替
え信号を発生するのは、回路の簡単化のためである。必
要ならば、最終リクエストの処理の完了後に優先順位切
り替え信号を出力するようにすることも可能である。
【0072】次に図6において優先順位制御回路60
(図2)の詳しいブロック図を示す。
(図2)の詳しいブロック図を示す。
【0073】図6において、89はデコーダ、94は優
先順位切り替え信号を保持するレジスタ、99はOR回
路、100,101,102,104はNOR回路、1
03はAND回路、44,45,46,47は各ベクト
ルプロセッサVP0乃至VP3からの優先順位切り替え
信号を受け取るパス、90,91,92,93はデコー
ダ89から送出されるリセット信号を、優先順位切り替
え信号レジスタ94のリセット入力に入力するパス、9
5,96,97,98は優先順位切り替え信号レジスタ
94からの優先順位切り替え信号を、論理回路99,1
00,101,102,103,104に送出するパ
ス、105は全ベクトルプロセッサの優先順位切り替え
信号をOR回路99でORして生成した優先順位切り替
えトリガを、各プライオリティ回路PR0乃至PR3に
送出するパス、106,107は信号線105の優先順
位切り替え信号を発行しているベクトルプロセッサの番
号をコード化した信号を各プライオリティ回路PR0乃
至PR3に送出するパスである。パス105,106,
107をまとめてパス61とし、各プライオリティ回路
PR0乃至PR3に優先順位切り替え信号を送出する。
先順位切り替え信号を保持するレジスタ、99はOR回
路、100,101,102,104はNOR回路、1
03はAND回路、44,45,46,47は各ベクト
ルプロセッサVP0乃至VP3からの優先順位切り替え
信号を受け取るパス、90,91,92,93はデコー
ダ89から送出されるリセット信号を、優先順位切り替
え信号レジスタ94のリセット入力に入力するパス、9
5,96,97,98は優先順位切り替え信号レジスタ
94からの優先順位切り替え信号を、論理回路99,1
00,101,102,103,104に送出するパ
ス、105は全ベクトルプロセッサの優先順位切り替え
信号をOR回路99でORして生成した優先順位切り替
えトリガを、各プライオリティ回路PR0乃至PR3に
送出するパス、106,107は信号線105の優先順
位切り替え信号を発行しているベクトルプロセッサの番
号をコード化した信号を各プライオリティ回路PR0乃
至PR3に送出するパスである。パス105,106,
107をまとめてパス61とし、各プライオリティ回路
PR0乃至PR3に優先順位切り替え信号を送出する。
【0074】優先順位切り替え信号レジスタ94はビッ
トC0,C1,C2,C3からなっており、それぞれベ
クトルプロセッサVP0乃至VP3からの優先順位切り
替え信号を保持する。もしC0乃至C3のうちどれか一
つでも「1」であれば、OR回路99により、パス10
5に「1」が送出される。
トC0,C1,C2,C3からなっており、それぞれベ
クトルプロセッサVP0乃至VP3からの優先順位切り
替え信号を保持する。もしC0乃至C3のうちどれか一
つでも「1」であれば、OR回路99により、パス10
5に「1」が送出される。
【0075】NOR回路100,101,102,10
4及びAND回路103は、優先順位切り替え信号を発
行したベクトルプロセッサの番号をコード化し、パス1
06,107に出力する。もし、C0乃至C3の複数が
同時に「1」である場合にはC0,C1,C2,C3の
順に固定的に優先順位を決定し、最も優先順位の高いベ
クトルプロセッサの番号をコード化する。C0,C1,
C2,C3の各々が選ばれた場合、パス106,107
にはそれぞれ{0,0},{0、1},{1、0},
{1、1}が出力される。
4及びAND回路103は、優先順位切り替え信号を発
行したベクトルプロセッサの番号をコード化し、パス1
06,107に出力する。もし、C0乃至C3の複数が
同時に「1」である場合にはC0,C1,C2,C3の
順に固定的に優先順位を決定し、最も優先順位の高いベ
クトルプロセッサの番号をコード化する。C0,C1,
C2,C3の各々が選ばれた場合、パス106,107
にはそれぞれ{0,0},{0、1},{1、0},
{1、1}が出力される。
【0076】デコーダ89は、優先順位切り替え信号を
パス61を通してプライオリティ回路に送出した後、優
先順位切り替え信号を発行したベクトルプロセッサの優
先順位切り替え信号レジスタ94をリセットする。すな
わち、パス105が「1」のとき、デコーダ89ではパ
ス106,107の値をデコードし、優先順位切り替え
信号レジスタ94のリセット入力に入力することによっ
て優先順位切り替え信号レジスタ94をリセットする。
これにより、優先順位切り替え信号レジスタ94のC0
乃至C3の内、プライオリティ回路PR0乃至PR3に
送出されたものだけリセットすることができる。
パス61を通してプライオリティ回路に送出した後、優
先順位切り替え信号を発行したベクトルプロセッサの優
先順位切り替え信号レジスタ94をリセットする。すな
わち、パス105が「1」のとき、デコーダ89ではパ
ス106,107の値をデコードし、優先順位切り替え
信号レジスタ94のリセット入力に入力することによっ
て優先順位切り替え信号レジスタ94をリセットする。
これにより、優先順位切り替え信号レジスタ94のC0
乃至C3の内、プライオリティ回路PR0乃至PR3に
送出されたものだけリセットすることができる。
【0077】次に図7においてプライオリティ回路56
の詳しいブロック図を示す。
の詳しいブロック図を示す。
【0078】図において、108はデコーダ、113は
優先順位を表す優先順位ビットレジスタ、115,11
6,117,118は各ベクトルプロセッサVP0乃至
VP3から発行されるアクセスリクエストを保持するリ
クエストレジスタ、123はプライオリティ論理であ
る。105,106,107は優先順位制御回路60か
ら送られて来る信号61を分解したパスであり、105
は優先順位切り替えトリガー、106,107はベクト
ルプロセッサの番号をコード化したもので、図6に示し
たものと同じ信号である。
優先順位を表す優先順位ビットレジスタ、115,11
6,117,118は各ベクトルプロセッサVP0乃至
VP3から発行されるアクセスリクエストを保持するリ
クエストレジスタ、123はプライオリティ論理であ
る。105,106,107は優先順位制御回路60か
ら送られて来る信号61を分解したパスであり、105
は優先順位切り替えトリガー、106,107はベクト
ルプロセッサの番号をコード化したもので、図6に示し
たものと同じ信号である。
【0079】デコーダ108では、パス106,107
の値をデコードし、ベクトルプロセッサVP0乃至VP
3に対応する信号線109,110,111,112の
いずれかを「1」にする。
の値をデコードし、ベクトルプロセッサVP0乃至VP
3に対応する信号線109,110,111,112の
いずれかを「1」にする。
【0080】レジスタ113内の優先順位ビットは、そ
れぞれ2つのプロセッサ間の優先順位を1ビットで表す
複数ビットからなる。優先順位ビットを表す「H」の次
の2つの数字は、それぞれベクトルプロセッサの番号を
表している。例えば、ビットH01,H02,H03は
それぞれVP0とVP1,VP2,VP3との間の優先
順位を、ビットH12,H13はそれぞれVP1とVP
2,VP3との間の優先順位を、ビットH23はVP2
とVP3との間の優先順位を表している。優先順位ビッ
トが「1」の場合は、右側の番号のベクトルプロセッサ
の優先順位が高く、優先順位ビットが「0」の場合は、
左側の番号のベクトルプロセッサの優先順位が高い。例
えば、H03が「1」である場合、右側の番号であるV
P3の優先順位がVP0より高いことを示している。
れぞれ2つのプロセッサ間の優先順位を1ビットで表す
複数ビットからなる。優先順位ビットを表す「H」の次
の2つの数字は、それぞれベクトルプロセッサの番号を
表している。例えば、ビットH01,H02,H03は
それぞれVP0とVP1,VP2,VP3との間の優先
順位を、ビットH12,H13はそれぞれVP1とVP
2,VP3との間の優先順位を、ビットH23はVP2
とVP3との間の優先順位を表している。優先順位ビッ
トが「1」の場合は、右側の番号のベクトルプロセッサ
の優先順位が高く、優先順位ビットが「0」の場合は、
左側の番号のベクトルプロセッサの優先順位が高い。例
えば、H03が「1」である場合、右側の番号であるV
P3の優先順位がVP0より高いことを示している。
【0081】優先順位ビット113において、’E’は
イネーブル、’S’はセット、’R’はリセット入力で
ある。このため、優先順位切り替えトリガ105が
「1」の場合にのみ、優先順位ビットのセット/リセッ
トが行われる。セット/リセットは、’S’、’R’そ
れぞれの入力が「1」の場合に行われる。
イネーブル、’S’はセット、’R’はリセット入力で
ある。このため、優先順位切り替えトリガ105が
「1」の場合にのみ、優先順位ビットのセット/リセッ
トが行われる。セット/リセットは、’S’、’R’そ
れぞれの入力が「1」の場合に行われる。
【0082】このように、本実施例では、各プライオリ
ティ回路56、又は59内に、各ベクトルプロセッサの
相対的な優先順位を保持するレジスタ113が設けら
れ、これらは、共通の優先順位変更回路60(図2)に
より接続されている。したがって、これらの優先順位レ
ジスタ113は全て同じ値を有する。したがって一つの
これらのレジスタ113を複数のプライオリティ回路に
共通に設けてもよい。しかし、この場合には次の問題が
ある。バンクグループの装置サイズが大きくなるため、
バンクグループ同士が離れて配置する必要がある。この
ため優先順位を記憶するレジスタ113を装置全体で1
つとすると、この共通の優先順位記憶レジスタといくつ
かのバンクグループとの物理的距離が大となりリクエス
トがプライオリティ回路に到着してから、優先順位の値
を基に選択するリクエストを決定するまでのディレイが
大きくなり性能が低下する。そこで本実施例ではバンク
グループ毎に優先順位レジスタを設け、このディレイを
なした。
ティ回路56、又は59内に、各ベクトルプロセッサの
相対的な優先順位を保持するレジスタ113が設けら
れ、これらは、共通の優先順位変更回路60(図2)に
より接続されている。したがって、これらの優先順位レ
ジスタ113は全て同じ値を有する。したがって一つの
これらのレジスタ113を複数のプライオリティ回路に
共通に設けてもよい。しかし、この場合には次の問題が
ある。バンクグループの装置サイズが大きくなるため、
バンクグループ同士が離れて配置する必要がある。この
ため優先順位を記憶するレジスタ113を装置全体で1
つとすると、この共通の優先順位記憶レジスタといくつ
かのバンクグループとの物理的距離が大となりリクエス
トがプライオリティ回路に到着してから、優先順位の値
を基に選択するリクエストを決定するまでのディレイが
大きくなり性能が低下する。そこで本実施例ではバンク
グループ毎に優先順位レジスタを設け、このディレイを
なした。
【0083】次に、図2においてリクエストが処理され
る流れを説明する。
る流れを説明する。
【0084】まず、ベクトルプロセッサVP0からベク
トルロード/ストア命令が発行されると、リクエスト発
行回路29からアクセスリクエストが発行される。リク
エストは、リクエストが有効であることを示すビット
と、リクエストの送り先であるバンクグループ番号、メ
モリバンク番号、及びメモリバンク内アドレスと、ベク
トルロード/ストア命令を区別するフラグと、ベクトル
ストア命令の場合にはストアデータからなっている。
トルロード/ストア命令が発行されると、リクエスト発
行回路29からアクセスリクエストが発行される。リク
エストは、リクエストが有効であることを示すビット
と、リクエストの送り先であるバンクグループ番号、メ
モリバンク番号、及びメモリバンク内アドレスと、ベク
トルロード/ストア命令を区別するフラグと、ベクトル
ストア命令の場合にはストアデータからなっている。
【0085】発行されたリクエストはパス40を通して
リクエストキューQUE0に送出され、一時保持され
る。QUE0に空きが無い状態であれば、リクエスト発
行回路29はリクエストを発行しない。
リクエストキューQUE0に送出され、一時保持され
る。QUE0に空きが無い状態であれば、リクエスト発
行回路29はリクエストを発行しない。
【0086】リクエストキューQUE0でリクエストが
保持されると、そのリクエストは全プライオリティ回路
PR0,乃至PR3に対して発行される。各プライオリ
ティ回路PR0乃至PR3ではリクエストの送り先のバ
ンクグループ番号と、プライオリティ回路の対応してい
るバンクグループの番号を比較し、同じであればそのリ
クエストを受け取り競合調停に参加させる。
保持されると、そのリクエストは全プライオリティ回路
PR0,乃至PR3に対して発行される。各プライオリ
ティ回路PR0乃至PR3ではリクエストの送り先のバ
ンクグループ番号と、プライオリティ回路の対応してい
るバンクグループの番号を比較し、同じであればそのリ
クエストを受け取り競合調停に参加させる。
【0087】今PR0にQUE0とQUE1からのリク
エストが競合調停に参加しているとすると、プライオリ
ティ回路PR0では優先順位ビットレジスタ113のH
01の値に従って選択するリクエストを決定する。例え
ば優先順位ビットH01が「0」であればQUE0から
のリクエストを選択し、H01が「1」であればQUE
1からのリクエストを選択する。選択されたリクエスト
はBG0に送出される。
エストが競合調停に参加しているとすると、プライオリ
ティ回路PR0では優先順位ビットレジスタ113のH
01の値に従って選択するリクエストを決定する。例え
ば優先順位ビットH01が「0」であればQUE0から
のリクエストを選択し、H01が「1」であればQUE
1からのリクエストを選択する。選択されたリクエスト
はBG0に送出される。
【0088】BG0では、リクエストが持つ送出先メモ
リバンク番号に従ってBK0乃至BK3の内のいずれか
のメモリバンクに送出される。メモリバンクではメモリ
アクセスタイムの後にアクセスが終了する。ここではメ
モリアクセスタイムを4サイクルとする。
リバンク番号に従ってBK0乃至BK3の内のいずれか
のメモリバンクに送出される。メモリバンクではメモリ
アクセスタイムの後にアクセスが終了する。ここではメ
モリアクセスタイムを4サイクルとする。
【0089】ベクトルロード命令の場合はパス24を通
して読み出したデータがフェッチデータバッファ23
(図1)に送られる。ベクトルストア命令の場合は、ア
クセスが終了した時点で命令が終了する。
して読み出したデータがフェッチデータバッファ23
(図1)に送られる。ベクトルストア命令の場合は、ア
クセスが終了した時点で命令が終了する。
【0090】フェッチデータバッファ23では、各ベク
トルプロセッサ毎に読み出したデータをリクエストの発
行順に並べ替える。並べ替えたデータは、発行された順
にベクトルプロセッサVP0乃至VP3に送られる。読
み出したデータが全てベクトルプロセッサに送られた時
点でベクトルロード命令が終了する。
トルプロセッサ毎に読み出したデータをリクエストの発
行順に並べ替える。並べ替えたデータは、発行された順
にベクトルプロセッサVP0乃至VP3に送られる。読
み出したデータが全てベクトルプロセッサに送られた時
点でベクトルロード命令が終了する。
【0091】次に本実施例におけるプライオリティ回路
内の優先順位の切り替え方法について、VP0の優先順
位を切り替える場合を例にとって説明する。
内の優先順位の切り替え方法について、VP0の優先順
位を切り替える場合を例にとって説明する。
【0092】まず、ベクトルプロセッサVP0からリク
エストが発行されると、リクエスト発行回路29からパ
ス36を通して、リクエストが有効であることを示す信
号、1つの命令の最終要素であることを示す信号、リス
トベクトルであることを示す信号、アクセスストライド
が「4」の倍数であることを示す信号を優先順位切り替
え信号制御回路28に送出する。
エストが発行されると、リクエスト発行回路29からパ
ス36を通して、リクエストが有効であることを示す信
号、1つの命令の最終要素であることを示す信号、リス
トベクトルであることを示す信号、アクセスストライド
が「4」の倍数であることを示す信号を優先順位切り替
え信号制御回路28に送出する。
【0093】優先順位切り替え信号制御回路28では、
パス36でまとめて送られてきた値をパス70,71,
72,73に分解する。まずリクエストが有効であるこ
とを示すパス70の値をカウンタ62,63に加算す
る。カウンタ63で加算した結果とパス76によってあ
らかじめ与えられた優先順位切り替え要素数(本実施例
では4とする)とを比較器64で比較し、パス78を介
してAND回路65に送る。AND回路65では1つの
命令の最終リクエストであることを示すパス71とパス
78のANDをとる。これにより、以前に優先順位切り
替え信号を発行してからパス76で表される要素数を発
行するまでは、優先順位切り替え信号の発行を抑止する
ことができる。
パス36でまとめて送られてきた値をパス70,71,
72,73に分解する。まずリクエストが有効であるこ
とを示すパス70の値をカウンタ62,63に加算す
る。カウンタ63で加算した結果とパス76によってあ
らかじめ与えられた優先順位切り替え要素数(本実施例
では4とする)とを比較器64で比較し、パス78を介
してAND回路65に送る。AND回路65では1つの
命令の最終リクエストであることを示すパス71とパス
78のANDをとる。これにより、以前に優先順位切り
替え信号を発行してからパス76で表される要素数を発
行するまでは、優先順位切り替え信号の発行を抑止する
ことができる。
【0094】一方カウンタ63は2ビットカウンタであ
り、値が「3」を越えた場合にはキャリー信号をパス8
0に送出する。OR回路66では、リストベクトル命令
であるかアクセスストライドが「4」の倍数である場合
を検出し、AND回路67でパス80とANDをとる。
これにより、メモリバンクを長時間占有する可能性のあ
る、リストベクトル命令やアクセスストライドが「4」
の倍数である命令は、カウンタ63の最大カウント数を
越える数である「4」要素に1回は優先順位切り替え信
号を発行して、メモリバンクの占有を防ぐことができ
る。
り、値が「3」を越えた場合にはキャリー信号をパス8
0に送出する。OR回路66では、リストベクトル命令
であるかアクセスストライドが「4」の倍数である場合
を検出し、AND回路67でパス80とANDをとる。
これにより、メモリバンクを長時間占有する可能性のあ
る、リストベクトル命令やアクセスストライドが「4」
の倍数である命令は、カウンタ63の最大カウント数を
越える数である「4」要素に1回は優先順位切り替え信
号を発行して、メモリバンクの占有を防ぐことができ
る。
【0095】OR回路68ではパス79とパス82の値
をORし、優先順位切り替え信号を生成してディレイバ
ッファ69に送る。ディレイバッファ69では、パス8
4を通してあらかじめ与えられたディレイクロック数だ
け優先順位切り替え信号を保持した後、パス44を通し
て記憶制御装置9内の優先順位制御回路60に優先順位
切り替え信号を送る。優先順位の切り替えは、最終リク
エストがプライオリティ回路56乃至59で選択されて
から行うのが理想的である。また、プライオリティ回路
56乃至59で競合が発生した場合には、最終リクエス
トがリクエスト発行回路29から発行されてからプライ
オリティ回路56乃至59で選択されるまでの時間に幅
が生じる。したがってディレイクロック数は、リクエス
ト発行回路29から最終リクエストが発行されてからプ
ライオリティ回路56乃至59で選択されるまでの最短
のクロック数以上で優先順位が切り替えられる値にする
必要がある。本実施例では、最終リクエストが発行され
てから選択されるまでの最短時間は「2」クロックであ
り、また最終リクエストが発行されてから優先順位を切
り替えるまでのディレイバッファ69のディレイ時間を
除いたクロック数が「1」であるため、ディレイクロッ
ク数を「1」とした。これにより、最終リクエストがリ
クエスト発行回路29から発行されてからプライオリテ
ィ回路56乃至59で選択されるまでの最短時間で優先
順位を切り替えることができる。
をORし、優先順位切り替え信号を生成してディレイバ
ッファ69に送る。ディレイバッファ69では、パス8
4を通してあらかじめ与えられたディレイクロック数だ
け優先順位切り替え信号を保持した後、パス44を通し
て記憶制御装置9内の優先順位制御回路60に優先順位
切り替え信号を送る。優先順位の切り替えは、最終リク
エストがプライオリティ回路56乃至59で選択されて
から行うのが理想的である。また、プライオリティ回路
56乃至59で競合が発生した場合には、最終リクエス
トがリクエスト発行回路29から発行されてからプライ
オリティ回路56乃至59で選択されるまでの時間に幅
が生じる。したがってディレイクロック数は、リクエス
ト発行回路29から最終リクエストが発行されてからプ
ライオリティ回路56乃至59で選択されるまでの最短
のクロック数以上で優先順位が切り替えられる値にする
必要がある。本実施例では、最終リクエストが発行され
てから選択されるまでの最短時間は「2」クロックであ
り、また最終リクエストが発行されてから優先順位を切
り替えるまでのディレイバッファ69のディレイ時間を
除いたクロック数が「1」であるため、ディレイクロッ
ク数を「1」とした。これにより、最終リクエストがリ
クエスト発行回路29から発行されてからプライオリテ
ィ回路56乃至59で選択されるまでの最短時間で優先
順位を切り替えることができる。
【0096】優先順位制御回路60では、パス44を通
して受け取ったベクトルプロセッサVP0からの優先順
位切り替え信号を、優先順位切り替え信号レジスタ94
のC0で保持する。
して受け取ったベクトルプロセッサVP0からの優先順
位切り替え信号を、優先順位切り替え信号レジスタ94
のC0で保持する。
【0097】優先順位切り替え信号レジスタ94のC0
で保持された優先順位切り替え信号は「1」になるた
め、OR回路99によって優先順位切り替えトリガを生
成し、パス105に送出する。
で保持された優先順位切り替え信号は「1」になるた
め、OR回路99によって優先順位切り替えトリガを生
成し、パス105に送出する。
【0098】もし他のベクトルプロセッサからの優先順
位切り替え信号であるC1乃至C3のいずれかが「1」
の場合、論理回路100,101,102,103,1
04により、C0のベクトルプロセッサ番号「0」をコ
ード化し、パス106,107に{0、0}を送出す
る。
位切り替え信号であるC1乃至C3のいずれかが「1」
の場合、論理回路100,101,102,103,1
04により、C0のベクトルプロセッサ番号「0」をコ
ード化し、パス106,107に{0、0}を送出す
る。
【0099】パス105,106,107はパス61に
まとめられ各プライオリティ回路PR0乃至PR3に送
出される。
まとめられ各プライオリティ回路PR0乃至PR3に送
出される。
【0100】またデコーダ89ではパス105が「1」
の場合、パス106,107のコード化された信号
{0、0}をデコードし、優先順位切り替え信号レジス
タ94のリセット入力に入力する。これにより、パス1
06,107で各プライオリティ回路に優先順位切り替
え信号が送出された優先順位切り替えレジスタ94のC
0がリセットされる。
の場合、パス106,107のコード化された信号
{0、0}をデコードし、優先順位切り替え信号レジス
タ94のリセット入力に入力する。これにより、パス1
06,107で各プライオリティ回路に優先順位切り替
え信号が送出された優先順位切り替えレジスタ94のC
0がリセットされる。
【0101】各プライオリティ回路PR0乃至PR3で
は、優先順位制御回路60からパス61を通してコード
化した優先順位切り替え信号を受け取る。
は、優先順位制御回路60からパス61を通してコード
化した優先順位切り替え信号を受け取る。
【0102】プライオリティ回路56では、コード化し
た優先順位切り替え信号の発行元ベクトルプロセッサの
番号をパス106,107を通してデコーダ108で受
け取る。今の例では、パス106,107で受け取る値
は共に「0」であるから、パス109からは「1」が、
パス110,111,112からは「0」が送出され
る。
た優先順位切り替え信号の発行元ベクトルプロセッサの
番号をパス106,107を通してデコーダ108で受
け取る。今の例では、パス106,107で受け取る値
は共に「0」であるから、パス109からは「1」が、
パス110,111,112からは「0」が送出され
る。
【0103】パス105で受け取る優先順位切り替えト
リガが「1」であり、パス109から優先順位レジスタ
113のH01,H02,H03のセット入力に「1」
が入力されるため、H01,H02,H03は全て
「1」にセットされる。すなわち、ベクトルプロセッサ
VP0の優先順位がVP1,VP2,VP3のどれに対
しても低くなり、優先順位の切り替えが終了する。
リガが「1」であり、パス109から優先順位レジスタ
113のH01,H02,H03のセット入力に「1」
が入力されるため、H01,H02,H03は全て
「1」にセットされる。すなわち、ベクトルプロセッサ
VP0の優先順位がVP1,VP2,VP3のどれに対
しても低くなり、優先順位の切り替えが終了する。
【0104】優先順位の切り替えは全てのプライオリテ
ィ回路において同時に行われるため、全プライオリティ
回路の優先順位の状態は常に等しくなる。
ィ回路において同時に行われるため、全プライオリティ
回路の優先順位の状態は常に等しくなる。
【0105】次に、VP0,VP1から発行されたベク
トルロード命令のリクエストが、記憶制御装置において
競合を起こす場合に、優先順位を全プライオリティ回路
で等しくした場合の効果ついて説明する。
トルロード命令のリクエストが、記憶制御装置において
競合を起こす場合に、優先順位を全プライオリティ回路
で等しくした場合の効果ついて説明する。
【0106】VP0,VP1からそれぞれ、リクエスト
{a0,a1,a2,a3}からなる命令Aと、リクエスト
{b0,b1,b2,b3}からなる命令Bが同時に発行さ
れ、かつ命令A,Bのリクエストが共に、BK0,BK
4,BK8.BK12に順にアクセスする場合のタイム
チャートを図8に示す。ただし、プライオリティ回路内
の優先順位はVP0の方が高いとする。
{a0,a1,a2,a3}からなる命令Aと、リクエスト
{b0,b1,b2,b3}からなる命令Bが同時に発行さ
れ、かつ命令A,Bのリクエストが共に、BK0,BK
4,BK8.BK12に順にアクセスする場合のタイム
チャートを図8に示す。ただし、プライオリティ回路内
の優先順位はVP0の方が高いとする。
【0107】この場合、各プライオリティ回路で選択さ
れるのは命令Aのリクエストであるため、リクエストa
0,a1,a2,a3がそれぞれメモリバンクBK0,BK
4,BK8,BK12に先にアクセスする。リクエスト
b0,b1,b2,b3はメモリアクセスタイムである4サ
イクルの後、それぞれメモリバンクBK0,BK4,B
K8,BK12にアクセスする。読み出したデータがフ
ェッチデータバッファに送られる順番は、命令Aの4要
素が先であり、図18に示したような処理の遅れは生じ
ない。
れるのは命令Aのリクエストであるため、リクエストa
0,a1,a2,a3がそれぞれメモリバンクBK0,BK
4,BK8,BK12に先にアクセスする。リクエスト
b0,b1,b2,b3はメモリアクセスタイムである4サ
イクルの後、それぞれメモリバンクBK0,BK4,B
K8,BK12にアクセスする。読み出したデータがフ
ェッチデータバッファに送られる順番は、命令Aの4要
素が先であり、図18に示したような処理の遅れは生じ
ない。
【0108】次に全プライオリティ回路の優先順位を一
斉に切り替えることの効果を、優先順位を固定した場合
と比較して説明する。
斉に切り替えることの効果を、優先順位を固定した場合
と比較して説明する。
【0109】図19に全プライオリティ回路の優先順位
を等しく、かつ、固定した場合に、VP0から命令A0
{a00,a01,a02,a03},A1{a10,a11,
a12,a13},A2{a20,a21,a22,a23}を、V
P1から命令B0{b00,b01,b02,b03},B1{b
10,b11,b12,b13},B2{b20,b21,b22,b
23}を発行した時のタイムチャートを示す。
を等しく、かつ、固定した場合に、VP0から命令A0
{a00,a01,a02,a03},A1{a10,a11,
a12,a13},A2{a20,a21,a22,a23}を、V
P1から命令B0{b00,b01,b02,b03},B1{b
10,b11,b12,b13},B2{b20,b21,b22,b
23}を発行した時のタイムチャートを示す。
【0110】命令A0,A1,A2,B0は共に、メモリバ
ンクBK0,BK4,BK8,BK12を順にアクセス
し、また命令B1はメモリバンクBK1,BK5,BK
9,BK13に、命令B2はメモリバンクBK2,BK
6,BK10,BK14に順にアクセスすると仮定す
る。また、各プライオリティ回路における優先順位はV
P0の方がVP1より高いと仮定する。
ンクBK0,BK4,BK8,BK12を順にアクセス
し、また命令B1はメモリバンクBK1,BK5,BK
9,BK13に、命令B2はメモリバンクBK2,BK
6,BK10,BK14に順にアクセスすると仮定す
る。また、各プライオリティ回路における優先順位はV
P0の方がVP1より高いと仮定する。
【0111】始め、命令A0と命令B0がメモリバンクで
競合を起こすが、VP0の方が優先順位が高いためリク
エストa00,a01,a02,a03が先にBK0,BK4,
BK8,BK12にアクセスする。メモリアクセスタイ
ムである4サイクル経った後、今度はVP0の命令A1
とVP1の命令B0が競合を起こす。この場合もVP0
の優先順位が高いため、リクエストa10,a11,a12,
a13が先にBK0,BK4,BK8,BK12にアクセ
スする。さらに4サイクル経った後も同様に命令A2が
先に処理される。命令B0は再び4サイクル経った後、
BK0,BK4,BK8,BK12にアクセスする。命
令B1のリクエストb10,b11,b12,b13は、B0命令
の各リクエストb00,b01,b02,b03がプライオリテ
ィ回路の競合調停を終えてから競合調停に参加し、BK
1,BK5,BK9,BK13にアクセスする。同様に
命令B2のリクエストb20,b21,b22,b23は、B1命
令の各リクエストb10,b11,b12,b13がプライオリ
ティ回路の競合調停を終えてから競合調停に参加し、B
K2,BK6,BK10,BK14にアクセスする。
競合を起こすが、VP0の方が優先順位が高いためリク
エストa00,a01,a02,a03が先にBK0,BK4,
BK8,BK12にアクセスする。メモリアクセスタイ
ムである4サイクル経った後、今度はVP0の命令A1
とVP1の命令B0が競合を起こす。この場合もVP0
の優先順位が高いため、リクエストa10,a11,a12,
a13が先にBK0,BK4,BK8,BK12にアクセ
スする。さらに4サイクル経った後も同様に命令A2が
先に処理される。命令B0は再び4サイクル経った後、
BK0,BK4,BK8,BK12にアクセスする。命
令B1のリクエストb10,b11,b12,b13は、B0命令
の各リクエストb00,b01,b02,b03がプライオリテ
ィ回路の競合調停を終えてから競合調停に参加し、BK
1,BK5,BK9,BK13にアクセスする。同様に
命令B2のリクエストb20,b21,b22,b23は、B1命
令の各リクエストb10,b11,b12,b13がプライオリ
ティ回路の競合調停を終えてから競合調停に参加し、B
K2,BK6,BK10,BK14にアクセスする。
【0112】主記憶における処理効率を上げるには、メ
モリバンクの稼働率を上げる必要がある。しかし、上記
のように優先順位を固定すると、2つのベクトルプロセ
ッサ間で競合が生じた場合、常に優先順位の高いベクト
ルプロセッサVP0のリクエストの処理は優先されるた
め、優先順位の低いベクトルプロセッサVP0で実行さ
れる命令A0と競合を起こした命令B0以降の命令B1,
B2が競合を起こさない場合でも処理が遅れる。このた
め、メモリバンクの稼働率が低下し、性能低下の原因に
なる場合がある。
モリバンクの稼働率を上げる必要がある。しかし、上記
のように優先順位を固定すると、2つのベクトルプロセ
ッサ間で競合が生じた場合、常に優先順位の高いベクト
ルプロセッサVP0のリクエストの処理は優先されるた
め、優先順位の低いベクトルプロセッサVP0で実行さ
れる命令A0と競合を起こした命令B0以降の命令B1,
B2が競合を起こさない場合でも処理が遅れる。このた
め、メモリバンクの稼働率が低下し、性能低下の原因に
なる場合がある。
【0113】図19で説明した命令列と同じ命令列で、
優先順位を命令単位で切り替えた場合のタイムチャート
を図9に示す。
優先順位を命令単位で切り替えた場合のタイムチャート
を図9に示す。
【0114】優先順位を固定した場合である図19と異
なるのは次の仮定をしている点である。VP0の命令A
0のリクエストが全てVP0から発行されてから2クロ
ック後にVP0の優先順位が最も低くなり、VP1の命
令B0の優先順位が上がる。また、VP1の命令B0のリ
クエストが全てVP1から発行されてから2クロック後
にVP1の優先順位が最も低くなり、VP0の命令A1
の優先順位が上がる。以後同様に優先順位が切り替わっ
ていく。このため、図9では命令A2のリクエストより
も後に処理されていた命令B0のリクエストが図9では
命令A2より先に処理される。このため、VP0からの
命令A0,A1,A2と競合を起こさない命令B1,B2の
処理がA1,A2の終了をまたないでできるため、メモリ
バンクの稼働率が上がり、主記憶における処理性能が向
上する。
なるのは次の仮定をしている点である。VP0の命令A
0のリクエストが全てVP0から発行されてから2クロ
ック後にVP0の優先順位が最も低くなり、VP1の命
令B0の優先順位が上がる。また、VP1の命令B0のリ
クエストが全てVP1から発行されてから2クロック後
にVP1の優先順位が最も低くなり、VP0の命令A1
の優先順位が上がる。以後同様に優先順位が切り替わっ
ていく。このため、図9では命令A2のリクエストより
も後に処理されていた命令B0のリクエストが図9では
命令A2より先に処理される。このため、VP0からの
命令A0,A1,A2と競合を起こさない命令B1,B2の
処理がA1,A2の終了をまたないでできるため、メモリ
バンクの稼働率が上がり、主記憶における処理性能が向
上する。
【0115】(実施例2)次に実施例2の概略について
説明する。実施例2では、実施例1と異なり、優先順位
切り替え信号をベクトルプロセッサから直接出力せず、
リクエストにマージして記憶制御装置に出力する。記憶
制御装置では受け取ったリクエストの優先順位切り替え
信号が「1」である場合、全プライオリティ回路に対し
て優先順位切り替え信号が「1」であるダミーリクエス
トを発行し、プライオリティ回路内の優先順位を切り替
える。
説明する。実施例2では、実施例1と異なり、優先順位
切り替え信号をベクトルプロセッサから直接出力せず、
リクエストにマージして記憶制御装置に出力する。記憶
制御装置では受け取ったリクエストの優先順位切り替え
信号が「1」である場合、全プライオリティ回路に対し
て優先順位切り替え信号が「1」であるダミーリクエス
トを発行し、プライオリティ回路内の優先順位を切り替
える。
【0116】図10に実施例2によるベクトルプロセッ
サと記憶制御装置の構成を示す。実施例1と同じ部分で
ある主記憶装置、フェッチデータバッファは省略してあ
る。図において実施例1と同じ番号は同じものを指す。
また、実施例1において用いた装置を部分的に変更した
ものには番号に「A」を付けてある。
サと記憶制御装置の構成を示す。実施例1と同じ部分で
ある主記憶装置、フェッチデータバッファは省略してあ
る。図において実施例1と同じ番号は同じものを指す。
また、実施例1において用いた装置を部分的に変更した
ものには番号に「A」を付けてある。
【0117】図8において、ベクトルプロセッサ1A,
2A,3A,4Aはリクエストマージ回路130,13
1,132,133を持ち、優先順位切り替え信号制御
部28,30,32,34からのパス44,45,4
6,47がベクトルプロセッサを出ず、リクエストマー
ジ回路130,131,132,133に入力されてい
ることが実施例1と異なる点である。
2A,3A,4Aはリクエストマージ回路130,13
1,132,133を持ち、優先順位切り替え信号制御
部28,30,32,34からのパス44,45,4
6,47がベクトルプロセッサを出ず、リクエストマー
ジ回路130,131,132,133に入力されてい
ることが実施例1と異なる点である。
【0118】記憶制御装置9Aでは、各ベクトルプロセ
ッサ1A,2A,3A,4Aからの優先順位切り替え信
号を受け取るパスと、実施例1における優先順位制御回
路60が無いことと、プライオリティ回路56A,57
A,58A,59Aが変更されている点が実施例1と異
なる。図において装置1A,2A,3A,4A,9Aは
それぞれ一つの集積回路上に構成されることが望まし
い。
ッサ1A,2A,3A,4Aからの優先順位切り替え信
号を受け取るパスと、実施例1における優先順位制御回
路60が無いことと、プライオリティ回路56A,57
A,58A,59Aが変更されている点が実施例1と異
なる。図において装置1A,2A,3A,4A,9Aは
それぞれ一つの集積回路上に構成されることが望まし
い。
【0119】次に図11において、リクエストマージ回
路130の構成を詳しく説明する。
路130の構成を詳しく説明する。
【0120】図において、138はリクエスト発行回路
29から送られてきたリクエストを保持するリクエスト
レジスタ、139は優先順位切り替え信号制御回路から
送られてきた優先順位切り替え信号を、優先順位切り替
えビットとしてリクエストレジスタ138のリクエスト
とマージするためのリクエストレジスタ、140はリク
エストレジスタ138と139を結合するパスである。
29から送られてきたリクエストを保持するリクエスト
レジスタ、139は優先順位切り替え信号制御回路から
送られてきた優先順位切り替え信号を、優先順位切り替
えビットとしてリクエストレジスタ138のリクエスト
とマージするためのリクエストレジスタ、140はリク
エストレジスタ138と139を結合するパスである。
【0121】次に図12において、プライオリティ回路
56Aの構成を詳しく説明する。
56Aの構成を詳しく説明する。
【0122】図において、図7のプライオリティ回路5
6と異なる点は、プライオリティ論理123Aがリクエ
ストを選択したことを示す信号、及び選択したリクエス
トの発行元のベクトルプロセッサの番号を、パス126
を通してデコーダ108と優先順位ビット113に送る
ことである。これにより、選択したリクエストの発行元
であるベクトルプロセッサの優先順位を下げることがで
きる。優先順位ビットの変更方法は実施例1と同様であ
る。
6と異なる点は、プライオリティ論理123Aがリクエ
ストを選択したことを示す信号、及び選択したリクエス
トの発行元のベクトルプロセッサの番号を、パス126
を通してデコーダ108と優先順位ビット113に送る
ことである。これにより、選択したリクエストの発行元
であるベクトルプロセッサの優先順位を下げることがで
きる。優先順位ビットの変更方法は実施例1と同様であ
る。
【0123】図10におけるリクエストの処理の流れ
で、実施例1と異なる部分について説明する。
で、実施例1と異なる部分について説明する。
【0124】VP0において、リクエスト発行回路29
から発行されたリクエストはリクエストマージ回路13
0で保持され、優先順位切り替え信号制御回路28から
の優先順位切り替え信号とマージされる。
から発行されたリクエストはリクエストマージ回路13
0で保持され、優先順位切り替え信号制御回路28から
の優先順位切り替え信号とマージされる。
【0125】優先順位切り替え信号とマージされたリク
エストはパス40を通してリクエストキュー例えばQU
E0に一旦保持された後、プライオリティ回路56A,
57A,58A,59Aに送出される。各プライオリテ
ィ回路たとえば56Aでは、優先順位切り替えビットが
「0」の場合には、自分の持つバンクグループ番号とリ
クエストの持つ送出先バンクグループ番号を比較し、等
しければリクエストを受け取る。優先順位切り替えビッ
トが「1」の場合は、全プライオリティ回路内の、その
リクエストキュー、例えばQUE0に対応するリクエス
トレジスタ例えば113に空きがあればバンクグループ
番号を比較せず全てリクエストを受け取り、リクエスト
受け取り信号(図示せず)をリクエスタに発行する。リ
クエスタでは全プライオリティ回路のリクエストレジス
タ113からのリクエスト受け取り信号を受け取った時
点で、リクエストが受け取られたとみなし、次のリクエ
スト発行の処理を行う。
エストはパス40を通してリクエストキュー例えばQU
E0に一旦保持された後、プライオリティ回路56A,
57A,58A,59Aに送出される。各プライオリテ
ィ回路たとえば56Aでは、優先順位切り替えビットが
「0」の場合には、自分の持つバンクグループ番号とリ
クエストの持つ送出先バンクグループ番号を比較し、等
しければリクエストを受け取る。優先順位切り替えビッ
トが「1」の場合は、全プライオリティ回路内の、その
リクエストキュー、例えばQUE0に対応するリクエス
トレジスタ例えば113に空きがあればバンクグループ
番号を比較せず全てリクエストを受け取り、リクエスト
受け取り信号(図示せず)をリクエスタに発行する。リ
クエスタでは全プライオリティ回路のリクエストレジス
タ113からのリクエスト受け取り信号を受け取った時
点で、リクエストが受け取られたとみなし、次のリクエ
スト発行の処理を行う。
【0126】リクエストを受け取ったプライオリティ回
路56Aでは、競合調停で選択されたリクエストの優先
順位切り替えビットが「0」の場合には、実施例1と同
様にリクエストを処理する。選択されたリクエストの優
先順位切り替えビットが「1」の場合には、リクエスト
優先順位切り替え信号「1」とリクエストの発行元のベ
クトルプロセッサ番号をパス126に送出するが、パス
10にはリクエストを送出する。また、優先順位切り替
えビットが「1」の場合にはバンクグループ番号を比較
し、等しい場合にはパス10にリクエストを送出し、等
しくない場合にはパス10にリクエストを送出しない。
路56Aでは、競合調停で選択されたリクエストの優先
順位切り替えビットが「0」の場合には、実施例1と同
様にリクエストを処理する。選択されたリクエストの優
先順位切り替えビットが「1」の場合には、リクエスト
優先順位切り替え信号「1」とリクエストの発行元のベ
クトルプロセッサ番号をパス126に送出するが、パス
10にはリクエストを送出する。また、優先順位切り替
えビットが「1」の場合にはバンクグループ番号を比較
し、等しい場合にはパス10にリクエストを送出し、等
しくない場合にはパス10にリクエストを送出しない。
【0127】次に優先順位を切り替える処理の流れで、
実施例1と異なる点を説明する。
実施例1と異なる点を説明する。
【0128】リクエストマージ回路130において優先
順位切り替えビット「1」をマージされたリクエスト
は、全プライオリティ回路においてリクエストが受け取
られる。
順位切り替えビット「1」をマージされたリクエスト
は、全プライオリティ回路においてリクエストが受け取
られる。
【0129】プライオリティ回路、例えばPR0では選
択したリクエストの優先順位切り替えビットが「1」の
場合、優先順位切り替え信号「1」と、選択されたリク
エストの発行元のベクトルプロセッサ番号を、パス12
6を通してデコーダ108及び優先順位レジスタ113
に送る。
択したリクエストの優先順位切り替えビットが「1」の
場合、優先順位切り替え信号「1」と、選択されたリク
エストの発行元のベクトルプロセッサ番号を、パス12
6を通してデコーダ108及び優先順位レジスタ113
に送る。
【0130】その後の優先順位の切り替えは実施例1と
同様に行う。
同様に行う。
【0131】本実施例において、図19及び図9で使用
した命令列を用いた場合のタイムチャートを図13に示
す。実施例1と異なるのは、各バンクグループにおいて
最終リクエストを受け取ってから優先順位を切り替える
ため、命令の切り替りに対応して優先順位を切り替える
ことが出来るためよりきめ細かい制御ができる。
した命令列を用いた場合のタイムチャートを図13に示
す。実施例1と異なるのは、各バンクグループにおいて
最終リクエストを受け取ってから優先順位を切り替える
ため、命令の切り替りに対応して優先順位を切り替える
ことが出来るためよりきめ細かい制御ができる。
【0132】(実施例3)次に実施例3の概略について
説明する。実施例3は、実施例1においてそれぞれ1つ
しかなかった主記憶装置と記憶制御装置が2つずつにな
った場合に、システム全体のプライオリティ回路の優先
順位を一斉に切り替える実施例に関する装置である。
説明する。実施例3は、実施例1においてそれぞれ1つ
しかなかった主記憶装置と記憶制御装置が2つずつにな
った場合に、システム全体のプライオリティ回路の優先
順位を一斉に切り替える実施例に関する装置である。
【0133】図14に実施例3で対象とするコンピュー
タシステムを、また図14におけるベクトルプロセッサ
と記憶制御装置の詳しい構成を図15に示す。実施例1
と同じ番号は同じものを指す。また実施例1において用
いた装置を部分的に変更したものには番号に「B」を付
けてある。
タシステムを、また図14におけるベクトルプロセッサ
と記憶制御装置の詳しい構成を図15に示す。実施例1
と同じ番号は同じものを指す。また実施例1において用
いた装置を部分的に変更したものには番号に「B」を付
けてある。
【0134】図14において、記憶制御装置141(S
CU1)は記憶制御装置9B(SCU0)と同じ構成で
ある。また主記憶装置146(MS1)は主記憶装置1
4(MS0)と同じ構成である。フェッチデータバッフ
ァ23BはMS0,MS1の両方から読み出したデータ
を並べ替える点が実施例1、2と異なる。
CU1)は記憶制御装置9B(SCU0)と同じ構成で
ある。また主記憶装置146(MS1)は主記憶装置1
4(MS0)と同じ構成である。フェッチデータバッフ
ァ23BはMS0,MS1の両方から読み出したデータ
を並べ替える点が実施例1、2と異なる。
【0135】図15において、ベクトルプロセッサ1
B,2B,3B,4Bは、リクエスト発行回路29B,
31B,33B,35Bから発行されるリクエストに、
送出先の主記憶装置の番号が付加されている点が実施例
1と異なる。
B,2B,3B,4Bは、リクエスト発行回路29B,
31B,33B,35Bから発行されるリクエストに、
送出先の主記憶装置の番号が付加されている点が実施例
1と異なる。
【0136】また、記憶制御装置9Bにおいて、リクエ
ストキュー48B,49B,50B,51Bがリクエス
トに付加されている送出先の主記憶装置の番号を識別
し、記憶制御装置9Bが持つ番号と等しければリクエス
トキューに保持することが実施例1と異なる。
ストキュー48B,49B,50B,51Bがリクエス
トに付加されている送出先の主記憶装置の番号を識別
し、記憶制御装置9Bが持つ番号と等しければリクエス
トキューに保持することが実施例1と異なる。
【0137】リクエストの処理の流れが実施例1と異な
る点を以下に説明する。ベクトルプロセッサ1B,2
B,3B,4Bからリクエストがパス40,41,4
2,43を通して記憶制御装置9B,141に同時に発
行され、記憶制御装置9B,141内のリクエストキュ
ー48B,49B,50B,51B等によって、リクエ
ストに付加された送出先の記憶制御装置の番号を識別し
て、リクエストを保持するかどうかを決定する点が実施
例1と異なる。記憶制御装置9BではMS0に対するリ
クエストを、記憶制御装置141ではMS1に対するリ
クエストを選択して保持する。
る点を以下に説明する。ベクトルプロセッサ1B,2
B,3B,4Bからリクエストがパス40,41,4
2,43を通して記憶制御装置9B,141に同時に発
行され、記憶制御装置9B,141内のリクエストキュ
ー48B,49B,50B,51B等によって、リクエ
ストに付加された送出先の記憶制御装置の番号を識別し
て、リクエストを保持するかどうかを決定する点が実施
例1と異なる。記憶制御装置9BではMS0に対するリ
クエストを、記憶制御装置141ではMS1に対するリ
クエストを選択して保持する。
【0138】また、優先順位を切り替える処理の流れが
実施例1と異なる点を以下に説明する。ベクトルプロセ
ッサ1B,2B,3B,4B内の優先順位切り替え信号
制御装置から発行される優先順位切り替え信号は、パス
44,45,46,47を通して、記憶制御装置9Bと
記憶制御装置141に同時に送られることが実施例1と
異なる。これにより、システム全体のプライオリティ回
路の優先順位を、同時に切り替えることが可能である。
実施例1と異なる点を以下に説明する。ベクトルプロセ
ッサ1B,2B,3B,4B内の優先順位切り替え信号
制御装置から発行される優先順位切り替え信号は、パス
44,45,46,47を通して、記憶制御装置9Bと
記憶制御装置141に同時に送られることが実施例1と
異なる。これにより、システム全体のプライオリティ回
路の優先順位を、同時に切り替えることが可能である。
【0139】本実施例は実施例1と同等の性能が得られ
る。
る。
【0140】(実施例4)次に実施例4の概略について
説明する。実施例4では、実施例3の構成において実施
例2と同じように優先順位切り替え信号をリクエストに
マージして記憶制御装置に出力する。
説明する。実施例4では、実施例3の構成において実施
例2と同じように優先順位切り替え信号をリクエストに
マージして記憶制御装置に出力する。
【0141】図16に実施例4によるベクトルプロセッ
サと記憶制御装置の構成を示す。図において実施例2、
3と同じ番号は同じものを指す。また、実施例2、3に
おいて用いた装置を部分的に変更したものには番号に
「C」を付けてある。
サと記憶制御装置の構成を示す。図において実施例2、
3と同じ番号は同じものを指す。また、実施例2、3に
おいて用いた装置を部分的に変更したものには番号に
「C」を付けてある。
【0142】ベクトルプロセッサ1C,2C,3C,4
Cは、リクエスト発行回路を実施例3で用いた29B,
31B,33B,35Bを使用する点が実施例2、3と
異なる。
Cは、リクエスト発行回路を実施例3で用いた29B,
31B,33B,35Bを使用する点が実施例2、3と
異なる。
【0143】記憶制御装置9Cは、リクエストキュー4
8C,49C,50C,51Cが異なる点が実施例2と
異なる。記憶制御装置141Cは記憶制御装置9Cと同
じ構成である。
8C,49C,50C,51Cが異なる点が実施例2と
異なる。記憶制御装置141Cは記憶制御装置9Cと同
じ構成である。
【0144】リクエストキュー48C,49C,50
C,51Cは、各ベクトルプロセッサ1C,2C,3
C,4Cから送られてくるリクエストの、優先順位切り
替えビットが「1」である場合、必ずリクエストを保持
する点が実施例2と異なる。
C,51Cは、各ベクトルプロセッサ1C,2C,3
C,4Cから送られてくるリクエストの、優先順位切り
替えビットが「1」である場合、必ずリクエストを保持
する点が実施例2と異なる。
【0145】リクエストキュー48C,49C,50
C,51Cが実施例3と異なる点は、優先順位切り替え
ビットが「1」である場合は、必ずリクエストを保持す
るところである。これにより、ベクトルプロセッサから
発行される優先順位切り替えビットが「1」であるリク
エストを、全ての記憶制御装置9C,132Cに対して
発行できる。
C,51Cが実施例3と異なる点は、優先順位切り替え
ビットが「1」である場合は、必ずリクエストを保持す
るところである。これにより、ベクトルプロセッサから
発行される優先順位切り替えビットが「1」であるリク
エストを、全ての記憶制御装置9C,132Cに対して
発行できる。
【0146】本実施例は実施例2と同等の性能が得られ
る。
る。
【0147】(実施例5)本実施例では、特定のプロセ
ッサの優先順位を他のプロセッサよりも上げたい場合
に、そのプロセッサの優先順位を最も高く固定すること
によって主記憶アクセス競合による処理の遅れを小さく
することが特徴である。
ッサの優先順位を他のプロセッサよりも上げたい場合
に、そのプロセッサの優先順位を最も高く固定すること
によって主記憶アクセス競合による処理の遅れを小さく
することが特徴である。
【0148】次に実施例5の概略について説明する。実
施例5は、サービスプロセッサから特定のベクトルプロ
セッサの優先順位を上げる信号をが発行された場合に、
全プライオリティ回路における、そのベクトルプロセッ
サの優先順位を最も高くすることに関する装置である。
施例5は、サービスプロセッサから特定のベクトルプロ
セッサの優先順位を上げる信号をが発行された場合に、
全プライオリティ回路における、そのベクトルプロセッ
サの優先順位を最も高くすることに関する装置である。
【0149】実施例5は、実施例1、3に適用可能であ
る。本実施例は実施例1、3の優先順位制御回路56の
一部を変更することにより実現可能である。図20に本
実施例における優先順位制御回路を示す。
る。本実施例は実施例1、3の優先順位制御回路56の
一部を変更することにより実現可能である。図20に本
実施例における優先順位制御回路を示す。
【0150】図において図6と同じ番号は同じものを指
す。図6と異なる点は、サービスプロセッサ(図示せ
ず)から優先順位固定信号とベクトルプロセッサの番号
をコード化した信号を受け取るパス178,179,1
80と、デコーダ177と、AND回路173,17
4,175,176を持つことである。
す。図6と異なる点は、サービスプロセッサ(図示せ
ず)から優先順位固定信号とベクトルプロセッサの番号
をコード化した信号を受け取るパス178,179,1
80と、デコーダ177と、AND回路173,17
4,175,176を持つことである。
【0151】図20に示した本実施例の優先順位制御回
路の動作について説明する。
路の動作について説明する。
【0152】まず、サービスプロセッサからは優先順位
固定信号とベクトルプロセッサ番号を常に出力する。サ
ービスプロセッサからの優先順位固定信号をパス178
を通して受け取り、パス179,180のベクトルプロ
セッサ番号をデコーダ177でデコードする。デコード
した結果をAND回路173,174,175,176
に入力することにより、ベクトルプロセッサからの優先
順位切り替え信号85,86,87,88の内、サービ
スプロセッサで指定したベクトルプロセッサからの信号
だけを「1」にならないようにできる。これにより、サ
ービスプロセッサで指定したベクトルプロセッサの優先
順位を下げないようにすることができるため、結果とし
てそのベクトルプロセッサの優先順位を最も高くするこ
とができる。
固定信号とベクトルプロセッサ番号を常に出力する。サ
ービスプロセッサからの優先順位固定信号をパス178
を通して受け取り、パス179,180のベクトルプロ
セッサ番号をデコーダ177でデコードする。デコード
した結果をAND回路173,174,175,176
に入力することにより、ベクトルプロセッサからの優先
順位切り替え信号85,86,87,88の内、サービ
スプロセッサで指定したベクトルプロセッサからの信号
だけを「1」にならないようにできる。これにより、サ
ービスプロセッサで指定したベクトルプロセッサの優先
順位を下げないようにすることができるため、結果とし
てそのベクトルプロセッサの優先順位を最も高くするこ
とができる。
【0153】なお、実施例2では、優先順位切り替え信
号を、一連の要求の最後の要求とともに、リクエストキ
ューに入れたが、この信号を、一つの要求として、この
最後の信号の後にリクエストキュー例えばQUE0に入
れるようにしてもよい。この場合各リクエストキューお
よび各プライオリティ回路の構造は、実施例1のごとく
に構成すればよい。
号を、一連の要求の最後の要求とともに、リクエストキ
ューに入れたが、この信号を、一つの要求として、この
最後の信号の後にリクエストキュー例えばQUE0に入
れるようにしてもよい。この場合各リクエストキューお
よび各プライオリティ回路の構造は、実施例1のごとく
に構成すればよい。
【0154】
【発明の効果】本願の発明によれば、プロセッサ間の主
記憶アクセス競合による処理の遅れを大幅に改善できる
マルチプロセッサシステムが得られる。
記憶アクセス競合による処理の遅れを大幅に改善できる
マルチプロセッサシステムが得られる。
【0155】さらに本願の他の発明によれば、サービス
プロセッサなどから特定のプロセッサの主記憶アクセス
における優先順位を上げるできるマルチプロセッサシス
テムが得られる。
プロセッサなどから特定のプロセッサの主記憶アクセス
における優先順位を上げるできるマルチプロセッサシス
テムが得られる。
【図1】本発明の実施例1、2によるコンピュータシス
テムの要部構成図。
テムの要部構成図。
【図2】図1における本発明の第1の実施例によるベク
トルプロセッサ、記憶制御装置、主記憶装置のブロック
図。
トルプロセッサ、記憶制御装置、主記憶装置のブロック
図。
【図3】図2における本発明の第1の実施例によるメモ
リバンクへのアドレス割り付けの図。
リバンクへのアドレス割り付けの図。
【図4】図2における本発明の第1の実施例によるリク
エスト発行回路のブロック図。
エスト発行回路のブロック図。
【図5】図2のベクトルプロセッサに用いる優先順位切
り替え信号制御回路のブロック図。
り替え信号制御回路のブロック図。
【図6】図2の記憶制御装置に用いる優先順位制御回路
のブロック図。
のブロック図。
【図7】図2の記憶制御装置に用いる優先順位切り替え
回路のブロック図。
回路のブロック図。
【図8】図2の実施例において2つのベクトルプロセッ
サからそれぞれ1つのベクトルロード命令を発行した場
合のタイムチャート。
サからそれぞれ1つのベクトルロード命令を発行した場
合のタイムチャート。
【図9】図2の実施例において2つのベクトルプロセッ
サからそれぞれ3つのベクトルロード命令を発行した場
合のタイムチャート。
サからそれぞれ3つのベクトルロード命令を発行した場
合のタイムチャート。
【図10】本発明の第2の実施例によるベクトルプロセ
ッサと記憶制御装置のブロック図。
ッサと記憶制御装置のブロック図。
【図11】図10のベクトルプロセッサに用いるリクエ
ストマージ回路のブロック図。
ストマージ回路のブロック図。
【図12】図10の記憶制御装置に用いるプライオリテ
ィ回路のブロック図。
ィ回路のブロック図。
【図13】図10の実施例において2つのベクトルプロ
セッサからそれぞれ3つのベクトルロード命令を発行し
た場合のタイムチャート。
セッサからそれぞれ3つのベクトルロード命令を発行し
た場合のタイムチャート。
【図14】本発明の実施例3、4によるコンピュータシ
ステムの要部構成図。
ステムの要部構成図。
【図15】図14における本発明の第3の実施例による
ベクトルプロセッサと記憶制御装置のブロック図。
ベクトルプロセッサと記憶制御装置のブロック図。
【図16】図14における本発明の第4の実施例による
ベクトルプロセッサと記憶制御装置のブロック図。
ベクトルプロセッサと記憶制御装置のブロック図。
【図17】従来のベクトルプロセッサの構成図。
【図18】図17の従来のベクトルプロセッサにおいて
2つのベクトルプロセッサからそれぞれ1つのベクトル
ロード命令を発行した場合のタイムチャート。
2つのベクトルプロセッサからそれぞれ1つのベクトル
ロード命令を発行した場合のタイムチャート。
【図19】図17の従来のベクトルプロセッサにおいて
2つのベクトルプロセッサからそれぞれ3つのベクトル
ロード命令を発行した場合のタイムチャート。
2つのベクトルプロセッサからそれぞれ3つのベクトル
ロード命令を発行した場合のタイムチャート。
【図20】本発明の実施例5による優先順位制御回路の
ブロック図。
ブロック図。
【図21】図17の従来技術によるプライオリティ回路
のブロック図。
のブロック図。
フロントページの続き (72)発明者 磯部 忠章 神奈川県秦野市堀山下1番地 株式会社 日立製作所 汎用コンピュータ事業部 内 (72)発明者 橋本 茂子 神奈川県秦野市堀山下1番地 株式会社 日立製作所 汎用コンピュータ事業部 内 (72)発明者 稲上 泰弘 東京都国分寺市東恋ケ窪1丁目280番地 株式会社 日立製作所中央研究所内 (72)発明者 玉置 由子 東京都国分寺市東恋ケ窪1丁目280番地 株式会社 日立製作所中央研究所内 (56)参考文献 特開 平4−24843(JP,A) 特開 平1−263762(JP,A) 特開 平4−96841(JP,A) 特開 平2−83778(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 15/16 - 15/177 G06F 17/10
Claims (11)
- 【請求項1】複数のプロセッサと、 互いに並列にアクセス可能な複数の部分記憶装置に分割
された記憶装置と、 該複数のプロセッサから並列に出力される、該記憶装置
に対するメモリアクセス要求を、並列に該複数の部分記
憶装置へ転送する記憶制御回路とを有し、 該複数のプロセッサは、それぞれ複数のリクエスタの一
つを含み、各リクエスタは、それが属するプロセッサで
実行中の、該記憶装置内の複数の記憶位置に対するアク
セスを要求する命令(メモリアクセス命令)に応答し
て、該複数の記憶位置へのアクセスを要求する複数のア
クセス要求を順次発行し、 各リクエスタは、そのリクエスタが属するプロセッサが
実行中のメモリアクセス命令による前記複数のアクセス
要求の順次発行のまとまった単位ごとに、対応するリク
エスタの優先順位を他のプロセッサに属するリクエスタ
よりも低くすることを要求する優先順位切り替え信号を
出力する第1の信号生成回路を有し、 該記憶制御装置は、 それぞれ該複数の部分記憶装置の一つに対応して設けら
れ、それぞれ該複数のプロセッサから供給された、対応
する部分記憶装置に転送されるべき複数のアクセス要求
が競合する場合に、該競合する複数のアクセス要求の一
つを選択する複数の選択回路と、 該複数の選択回路に供給するための、該複数のリクエス
タの優先順位に関する、該複数の選択回路に共通に定め
た優先順位情報を保持する保持手段と、 該複数のリクエスタのいずれか一つに含まれる該第1の
信号生成回路から出力された優先順位切り替え信号に応
答して、そのリクエスタに関する優先順位を他のプロセ
ッサに属するリクエスタよりも低くするように、該保持
手段に保持された優先順位情報を切り替える切り替え回
路とを含むコンピュータシステム。 - 【請求項2】各リクエスタに含まれた該信号生成回路
は、そのリクエスタが属するプロセッサで実行中のメモ
リアクセス命令が要求する、複数の記憶位置に対する複
数のアクセス要求の内の最終の要求を該リクエスタが送
出したのと同期して、優先順位切り替え信号を出力する
第1の手段を有する請求項1記載のコンピュータシステ
ム。 - 【請求項3】該第1の手段は、該最終のアクセス要求を
該リクエスタが送出したときに、該出力した複数のアク
セス要求の数が所定値以上であるという条件下で該優先
順位切り替え信号を出力する請求項2記載のコンピュー
タシステム。 - 【請求項4】各リクエスタに含まれた該信号生成回路
は、そのリクエスタが属するプロセッサで実行中のメモ
リアクセス命令が要求する、複数の記憶位置に対する複
数のアクセス要求の最終の要求を該リクエスタが出力す
る前に、該複数のアクセス要求を所定数該リクエスタが
送出するごとに、優先順位切り替え信号を出力する第2
の手段を有する請求項1記載のコンピュータシステム。 - 【請求項5】該第2の手段は、該メモリアクセス命令
が、それが要求する複数の記憶位置のアドレスを、リス
トベクトルデータで間接的に指定する命令であるとき
に、該複数のアクセス要求を該所定数該リクエスタが送
出するごとに、優先順位切り替え信号を出力する手段を
有する請求項4記載のコンピュータシステム。 - 【請求項6】該第2の手段は、該メモリアクセス命令が
要求する複数の記憶位置のアドレスが、同一のアドレス
間隔づつ隔たり、かつ、そのアドレス間隔が予め定めた
特定の値のときに、該複数のアクセス要求を該所定数該
リクエスタが送出するごとに、優先順位切り替え信号を
出力する請求項5記載のコンピュータシステム。 - 【請求項7】各リクエスタは、そこに含まれる該信号生
成回路により生成された優先順位切り替え信号を転送す
るための、そのリクエスタから複数の要求を該複数の選
択回路に転送するための第1の経路と異なる、第2の経
路を介して、該切り替え回路に接続されている請求項2
記載のコンピュータシステム。 - 【請求項8】各リクエスタと該切り替え回路を接続する
該第2の経路上には、そのリクエスタに含まれる該信号
生成回路により生成された優先順位切り替え信号を所定
時間遅延する遅延回路をさらに有する請求項7記載のコ
ンピュータシステム。 - 【請求項9】該保持手段は、それぞれ該複数の選択回路
の一つに対応して設けられ、それぞれ対応する選択回路
の近傍に設けられた、該優先順位情報を保持する複数の
保持手段からなり、該切り替え回路は、該複数の保持手
段のそれぞれに保持された優先順位情報を一斉に切り替
えする手段を有する請求項1記載のコンピュータシステ
ム。 - 【請求項10】前記記憶制御装置には、特定のプロセッ
サのメモリアクセスを固定的に優先することが指定され
たとき、該指定されたプロセッサに属するリクエスタか
らの優先順位切り替え信号が前記切り替え回路を駆動す
ることを禁止する切り替え禁止手段を更に有することを
特徴とする請求項1記載のコンピュータシステム。 - 【請求項11】それぞれ複数の要求を発生する複数のリ
クエスタであって、該複数の要求を、それぞれ一定の複
数の要求からなる複数のグループに分けて出力するもの
と、 それぞれ特定の種類のリクエストを処理する複数の処理
回路に対応して設けられ、それぞれ該複数のリクエスタ
から出力された複数のリクエストの内、それぞれに対応
する処理回路で処理すべき一つの要求を選択し、それぞ
れに対応する処理回路に供給する複数の選択回路と、 該複数の選択回路に与えるための、該複数の選択回路に
共通の優先順位情報として、該複数のリクエスタの優先
順位に関する優先順位情報を保持する保持手段と、 該複数のリクエスタのいずれか一つから該一定数に等し
い数の要求が出力されるごとに、そのリクエスタの他の
リクエスタと比較した相対優先順位を低くするように、
該保持手段に保持された優先順位情報を切り替えする回
路とを有するコンピュータシステム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34590092A JP3260456B2 (ja) | 1992-12-25 | 1992-12-25 | コンピュータシステムおよびそれに適した集積回路並びに要求選択回路 |
US08/170,743 US5617575A (en) | 1991-03-19 | 1993-12-21 | Interprocessor priority control system for multivector processor |
US08/760,525 US5857110A (en) | 1991-03-19 | 1996-12-05 | Priority control with concurrent switching of priorities of vector processors, for plural priority circuits for memory modules shared by the vector processors |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34590092A JP3260456B2 (ja) | 1992-12-25 | 1992-12-25 | コンピュータシステムおよびそれに適した集積回路並びに要求選択回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06195313A JPH06195313A (ja) | 1994-07-15 |
JP3260456B2 true JP3260456B2 (ja) | 2002-02-25 |
Family
ID=18379759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34590092A Expired - Fee Related JP3260456B2 (ja) | 1991-03-19 | 1992-12-25 | コンピュータシステムおよびそれに適した集積回路並びに要求選択回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3260456B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2878160B2 (ja) * | 1995-08-29 | 1999-04-05 | 甲府日本電気株式会社 | 競合調停装置 |
JP3419334B2 (ja) | 1999-01-14 | 2003-06-23 | 日本電気株式会社 | データ処理装置および方法 |
FR2894696A1 (fr) * | 2005-12-14 | 2007-06-15 | Thomson Licensing Sas | Procede d'acces a un bus de transmission de donnees, dispositif et systeme correspondant |
JP5217786B2 (ja) * | 2008-08-27 | 2013-06-19 | セイコーエプソン株式会社 | リクエスト調停装置及びリクエスト調停方法 |
JP2010134628A (ja) * | 2008-12-03 | 2010-06-17 | Renesas Technology Corp | メモリコントローラおよびデータ処理装置 |
JP5668554B2 (ja) * | 2011-03-18 | 2015-02-12 | 日本電気株式会社 | メモリアクセス制御装置、プロセッサ及びメモリアクセス制御方法 |
JP7508962B2 (ja) | 2020-09-15 | 2024-07-02 | 富士通株式会社 | 半導体装置及び転送方法 |
CN116820344B (zh) * | 2023-07-03 | 2024-04-26 | 摩尔线程智能科技(北京)有限责任公司 | 存储器访问电路及存储器访问方法、集成电路和电子设备 |
-
1992
- 1992-12-25 JP JP34590092A patent/JP3260456B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06195313A (ja) | 1994-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5857110A (en) | Priority control with concurrent switching of priorities of vector processors, for plural priority circuits for memory modules shared by the vector processors | |
JP4472186B2 (ja) | 外部デバイスへのアクセスを優先順序付けるための方法および装置 | |
JP4695761B2 (ja) | コマンド再順序付けシステム | |
US6671761B2 (en) | Bus system | |
KR100679362B1 (ko) | 메모리 요청 재정렬에 의해 버스 이용도를 향상시키는메모리 제어기 | |
US6775727B2 (en) | System and method for controlling bus arbitration during cache memory burst cycles | |
US7051133B2 (en) | Arbitration circuit and data processing system | |
US7363406B2 (en) | Dynamic access scheduling memory controller | |
US20060047919A1 (en) | Atomic read/write support in a multi-module memory configuration | |
JP2002510079A (ja) | メモリ・インタフェース間で読み書きの順序付けられた実行を強制する方法と装置 | |
JP2002530743A (ja) | ページタグレジスタを使用して、メモリデバイス内の物理ページの状態を追跡すること | |
JP3273493B2 (ja) | システム・リソース有効化装置 | |
EP0901080B1 (en) | Arbitration system | |
JP3260456B2 (ja) | コンピュータシステムおよびそれに適した集積回路並びに要求選択回路 | |
KR20010086034A (ko) | 범용 리소스 접근 제어기 | |
US8452920B1 (en) | System and method for controlling a dynamic random access memory | |
US20050135402A1 (en) | Data transfer apparatus | |
JP4335327B2 (ja) | 調停装置および方法 | |
US7689781B2 (en) | Access to a collective resource in which low priority functions are grouped, read accesses of the group being given higher priority than write accesses of the group | |
JP2001325148A (ja) | アクセス制御方法及び装置 | |
JPS58154059A (ja) | 並列処理システムのメモリアクセス方式 | |
US6944698B2 (en) | Method and apparatus for providing bus arbitrations in a data processing system | |
US7975086B1 (en) | Apparatus for real-time arbitration between masters and requestors and method for operating the same | |
CN118295941A (zh) | 并行处理器的存储控制器及访存调度方法 | |
JP2001216256A (ja) | アクセス権調停方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |