JP2685484B2 - 記憶制御方式 - Google Patents

記憶制御方式

Info

Publication number
JP2685484B2
JP2685484B2 JP8901188A JP8901188A JP2685484B2 JP 2685484 B2 JP2685484 B2 JP 2685484B2 JP 8901188 A JP8901188 A JP 8901188A JP 8901188 A JP8901188 A JP 8901188A JP 2685484 B2 JP2685484 B2 JP 2685484B2
Authority
JP
Japan
Prior art keywords
access request
access
storage
vector
instruction
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 - Lifetime
Application number
JP8901188A
Other languages
English (en)
Other versions
JPH01261780A (ja
Inventor
政男 古川
忠章 磯部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP8901188A priority Critical patent/JP2685484B2/ja
Priority to US07/337,070 priority patent/US5367654A/en
Publication of JPH01261780A publication Critical patent/JPH01261780A/ja
Application granted granted Critical
Publication of JP2685484B2 publication Critical patent/JP2685484B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、計算機システムの記憶制御方式に関し、詳
しくは要素並列処理する複数のメモリアクセスパイプラ
インを有し、ベクトル命令を高速に実行するのに好適な
記憶制御方式に関する。
〔従来の技術〕
独立にアクセス可能な複数の記憶単位(記憶バンクで
構成される記憶装置に対して、複数のアクセス要求制御
装置がアクセス要求を同時に発行する場合の従来の記憶
制御方式を第3図、第4図により説明する。第3図は要
素並列パイプライン処理を行う計算機システムの主要部
の構成例である。ここで計算機システムは、複数(本実
施例では4とする)の演算装置30Aないし30D、該演算装
置30と記憶装置35間のデータバッファの役割をもつベク
トルレジスタ装置31Aないし31D、アクセス要求制御装置
32Aないし32D、記憶制御装置33、記憶装置35を備えてい
る。記憶装置35は、各々独立にアクセス可能な複数(本
実施例では4つとする)の記憶バンク35Aないし35Dから
成り、アクセス要求に伴なうアドレス情報をデコードし
た結果どの記憶バンクにアクセスするかが決定される。
記憶制御装置33は、アクセス要求制御装置対応のアクセ
ス要求スタック回路33Aないし33D、読出データバッファ
回路36Aないし36D、記憶バンク対応のアクセス要求優先
順位決定回路34Aないし34Dから成る。
第3図に示す計算機システムにおいて、記憶装置から
の読出、演算、記憶装置への書込という動作を例にとっ
て説明する。
まず記憶装置35からベクトルデータを読み出してベク
トルレジスタ31に格納する動作の場合、ベクトルの各要
素を以下のようにアクセス要求制御装置32Aないし32Dに
割当て、アクセス要求を生成させる。
アクセス要求制御装置 (nは0又は正の整数) 同時に生成したアクセス要求は、対応するアクセス要
求スタック回路33Aないし33Dに四つの要素が同時に送ら
れる。該各スタック回路では、アクセス要求のアドレス
に基づき、目的の優先順位決定回路34Aないし34Dのいず
れかに送出する。該各優先順位決定回路では、複数のア
クセス要求が競合した場合、所定の優先順位に従って一
つのアクセス要求を選択し、それぞれ対応する記憶バン
ク35Aないし35Dに対してアクセス要求を送出する。各記
憶バンクに送出したアクセス要求に対応する読出データ
は固定時間(アクセス時間に相当)後に記憶制御装置33
に返送され、それぞれアクセス要求制御装置32Aないし3
2Dに対応した読出データバッファ回路36Aないし36Dにセ
ットされる。この読出しデータは、アクセス要求制御装
置32Aないし32Dが同時に発行した4個のアクセス要求の
データがすべて読出された時点で、発行順に各アクセス
要求制御装置に返送され、ベクトルレジスタ31Aないし3
1Dに同時に格納される。ベクトルレジスタと各要素の割
当を以下に示す。
ベクトルレジスタ 次に、ベクトルレジスタ31Aないし31Dに格納されたデ
ータを演算する場合、ベクトルの各要素を以下のように
演算装置30Aないし30Dに割当て、演算結果を再びベクト
ルレジスタに格納する。
演算装置 この演算動作では、4個の演算装置30Aないし30Dは完
全に同期して演算が行われ、例えば、第0、1、2、3
要素の結果は同時に求められ、同時刻でベクトルレジス
タ31Aないし31Dに格納される。
最後に、ベクトルレジスタ31Aないし31Dに格納された
データを記憶装置35に書込む場合、前述したデータ読出
と同様に各要素がアクセス要求制御装置32Aないし32Dに
割当てられ、4個の要素、例えば第0、1、2、3要素
が、対応するアクセス要求スタック回路33Aないし33Dに
送出される。以降の記憶装置35へのアクセス要求送出ま
での処理は、読出動作と同様である。
以上述べたように、各々4個の演算装置30Aないし30
D、ベクトルレジスタ31Aないし31D、アクセス要求制御
装置32Aないし32Dは、同期して各要素を処理する。した
がって、同期して動作させる要素並列処理方式では、一
つの制御系論理で各々4個の演算装置30Aないし30Dのベ
クトルレジスタ31Aないし31D、アクセス要求制御装置32
Aないし32Dを制御するような論理構成をとることができ
る。
ところが、記憶制御装置33内では、アクセスする記憶
バンクの状態(先行アクセス要求による使用中など)や
他のアクセスとの競合の為に、アクセス要求制御装置32
Aないし32Dが同期して同時に送出した4個の各アクセス
要求が同時に処理されず、記憶バンクへのアクセス要求
の送出に時間的なずれが生じることがある。この為、記
憶制御装置33内の読出データバッファ36Aないし36Dにお
いては、アクセス要求制御装置32Aないし32Dから同時に
送出されたアクセス要求に対応する読出データがすべて
格納されるまで待合せ、すべて格納された時点で4個の
読出データアクセス要求制御装置に同時に送出するよう
な制御方式をとる必要がある。
以下、記憶制御装置における同期制御方式についての
従来技術について第4図を用いて説明する。
第4図は第3図の記憶バンク35Aないし35Dを含めた記
憶制御装置33の構成例を示す。記憶制御装置33は、アク
セス要求スタック回路33Aないし33D、優先順位決定回路
34Aないし34D、読出データ転送制御回路42Aないし42D、
アクセス要求識別子制御回路41、読出データバッファ回
路36Aないし36Dから構成される。
アクセス要求制御装置32Aないし32Dから同時に発行さ
れた4個のアクセス要求(例えば第0、1、2、3要素
に対応する要求)は、アクセス要求スタック回路33Aな
いし33Dに到着する。例えばアクセス要求スタック回路3
3Aに到着したアクセス要求は、入力制御回路334が示す
スタックSO(330A)、S1(330B)、S2(330C)、S3(33
0D)のいずれか、例えばスタックS0(330A)にセットさ
れる。入力制御回路334は、アクセス要求を格納すべき
スタック位置“0"〜“3"(S0〜S3に対応)を、スタック
に対して信号334aで指示する回路であり、アクセス要求
が1個スタックに格納される毎に、次に格納すべきスタ
ック位置を示す信号334aを“0"→“1"→“2"→“3"→
“0"…のように送出する。
一方、スタックS0〜S3に格納されたアクセス要求は、
出力制御回路335が示すスタック位置、例えばスタックS
0(330A)から選択回路333を介して優先順位決定回路34
Aないし34Dに送出される。こゝで出力制御回路335は、
アクセス要求を取出すべきスタック位置“0"〜“3"の値
を信号335aで示し、入力制御回路334と同様に“0"→
“1"→“2"→“3"→“0"…のようにアクセス要求を一つ
出力する毎にその値を変えて選択回路333に送出する。
但し、出力制御回路335が入力制御回路334と異なる点
は、スタックS0〜S3に対応するアクセス要求送出制御用
フリップフロップ331Aないし331Dの値によって、該スタ
ックからのアクセス要求の出力を制御することである。
出力制御回路335が取り出そうとするスタック、例え
ばS0(330A)に対するアクセス要求送出制御用フリップ
フロップ331Aが“1"であれば、該スタックS0(330A)の
アクセス要求を優先順位決定回路34Aないし34Dに送出す
る。一方、該フリップフロップ331Aが“0"であれば、ア
クセス要求識別子制御回路41からの信号41aによって該
フリップフロップ331Aが“1"にセットされるまで、スタ
ックS0(330A)からのアクセス要求の送出を抑止すると
ゝもに、出力制御回路335が送出する信号335aのスタッ
ク番号も“0"に保持するように制御される。
尚、該フリップフロップ331Aが“1"であり、対応する
スタックS0(330A)からアクセス要求を取り出し、優先
順位決定回路34Aないし34Dに送出した場合には、送出し
たという情報を出力制御回路335から信号335bを使って
出し、該フリップフロップの値を“0"にリセットする。
そして、出力制御回路335が次に取り出そうとするスタ
ックはS1となる。
また、優先順位決定回路34Aないし34Dに送出されるア
クセス要求333aは、例えばスタックS0(330A)に格納さ
れていたアドレス情報に加え、アクセス要求識別子生成
回路332Aないし332Dから送出される当該アクセス要求ス
タック装置33Aの番号(0)とスタック番号(0〜3)
を示す2桁のアクセス要求識別子(00、01、02、03)と
からなる。例えばスタックS0(330A)の場合、アクセス
要求識別子は“00"である。
以上は、アクセス要求スタック回路33Aの動作につい
て説明したが、他のスタック回路33Bないし33Dについて
も同様であり、4個のアクセス要求制御装置から同時に
発行された4個のアクセス要求は、各スタック回路の同
一スタック位置に格納されて処理される。
さて、アクセス要求スタック回路33Aから送出された
アクセス要求333aは、そのアクセスするアドレスに基づ
き記憶バンク対応の優先順位決定回路34Aないし34Dのい
ずれか一つ、例えば34Aに到着する。優先順位決定回路3
4Aに到着したアクセス要求333aは、他のアクセス要求ス
タック回路33Bないし33Dから送出されたアクセス要求と
の間で優先順位が決定され、選択されると、該当記憶バ
ンク35Aに対してアクセス要求34Aaが送出される。
このアクセス要求34Aaの送出に伴い、アクセス要求識
別子34Abが、アクセス要求識別子制御回路41に送られ
る。第5図に該アクセス要求識別子制御回路42の詳細を
示す。アクセス要求識別子34Abは解読回路50Aに入力さ
れ、アクセス要求スタック回路33Aないし33Dの番号をデ
コードするデコーダ51、該回路内のスタック番号をデコ
ードするデコーダ52Aないし52Dの組合せにより、アクセ
ス要求スタック回路とスタック番号を特定する。この解
読回路50Aで得られた信号により、ORゲート530ないし53
Fを通して、前記解読回路で特定された信号に対応する
アクセス要求スタック回路別のアクセス要求識別子有効
表示用フリップフロップ540ないし54Fのなかのいずれか
一つを“1"にセットする。同様にして、他の優先順位決
定回路34Bないし34Dから送られてきたアクセス要求識別
子34Bbないし34Dbも解読回路50Bないし50Dでデコードさ
れ、特定のアクセス要求識別子有効表示フリップフロッ
プを“1"にセットする。
各アクセス要求スタック回路33Aないし33Dの同一スタ
ック番号に対応する該フリップフロップ、例えば540、5
44、548、54Cがすべて“1"になったということは各アク
セス要求スタック回路33Aないし33Dに同時に到着してス
タック位置S0にセットされた4個のアクセス要求が、す
べて記憶装置35に送出されたことを意味しており、これ
をANDゲート55Aで検出し、信号41aを使って各アクセス
要求スタック回路33Aないし33D内のスタックS0に対応す
るアクセス要求送出制御用フリップフロップ331Aを“1"
にセットする。これにより、アクセス要求スタック回路
33Aないし33DのスタックS0に格納された後続のアクセス
要求は、優先順位決定回路34Aないし34Dに対して送出可
能な状態になる。また、信号41aをアクセス要求スタッ
ク回路33Aないし33Dに送出した時点で、該信号に対応す
るアクセス要求識別子有効表示用フリップフロップ54
0、544、548、54Cを“0"にリセットする。
一方、記憶バンク35Aないし35Dに送出されたアクセス
要求34Aaないし34Daに対応する読出しデータ35Aaないし
35Daは、アクセス要求識別子バッファ42Aないし42Dで記
憶バンクアクセスとの時間合せをしたアクセス要求識別
子42Aaないし42Daとゝもに、読出データバッファ回路36
Aないし36Dへ送られる。読出データバッファ回路36Aな
いし36Dでは、アクセス要求識別子が示すアクセス要求
スタック回路番号に基づき、選択回路360によりアクセ
ス要求スタック回路33Aないし33Dに各々対応する読出デ
ータバッファ回路36Aないし36Dの、スタックS0ないしS3
に対応するデータバッファB0(361A)ないしB3(361D)
のいずれかに読出しデータを格納する。例えば、該識別
子42Aaが“00"であれば、読出データバッファ回路36A内
のB0(361A)に読出データ35Aaを格納する。
一方、データバッファへの格納とは独立に、読出デー
タ送出制御回路43により、読出データバッファ回路36A
ないし36Dに格納された4個の読出データを同時にアク
セス要求制御装置32Aないし32Dへ送出する処理を行う。
第6図に読出データ送出制御回路43の詳細を示す。
読出データ送出制御回路43には、アクセス要求識別子
制御回路41から、4個のアクセス要求スタック回路33A
ないし33D内の同一スタック位置に格納されていたアク
セス要求がすべて記憶バンクに送出されたことを示す信
号41aないし41dが送られる。この信号41aないし41dは、
言い換えれば固定時間(記憶バンクのアクセス時間に相
当)後に4個の読出データバッファ回路36Aないし36Dの
各々B0(361A)ないしB3(361D)の中の一つのバッファ
に読出データがすべて格納されていることを意味する。
したがって、該信号を記憶バンクアクセスとの待合せ用
バッファ64Aないし64Dを通過させて、フリップフロップ
60Aないし60Dをセットすることにより、対応する読出デ
ータバッファ位置B0(361A)ないしB3(361D)の読出デ
ータの有効性を表示することができる。
こゝで、読出データ送出制御回路43は、有効性が表示
された読出データバッファ位置のデータをB0(361A)か
らB1(361B)、B2(361C)、B3(361D)と順次送出する
為の制御信号43aを読出データバッファ回路36Aないし36
Dに送出する。但し、読出データ取出ポインタ64がデコ
ーダ65でデコードし、該ポインタ64が指しているバッフ
ァ位置に対応する読出データ有効表示用フリップフロッ
プが“0"を示している場合、つまり、アクセス要求スタ
ック回路33Aないし33D内の、該ポインタ64が指している
位置のスタックに格納されていた4個のアクセス要求の
少なくとも一つに対応する読出データが、まだ読出デー
タバッファに到着していない場合は、読出制御信号43a
の送出はアンドゲート61Aないし61Dで抑止され、該フリ
ップフロップ60Aないし60Dが“1"にセットされるまで該
ポインタ64の値もそのまゝ保持される。その後、該ポイ
ンタ64が示すバッファ位置の読出データ有効表示用フリ
ップフロップが“1"になると、ANDゲート61Aないし61D
とORゲート62でこれを検出し、フリップフロップ63Aを
介して読出制御信号43aを送出する。これと同時に信号6
2aにより、該ポインタ64が指す該当読出データ有効表示
用フリップフロップを“0"にリセットし、更に該ポイン
タ64の値を+1回路66で“+1"加算した値に更新する。
一方、読出制御信号43aは同時に4個の読出データバ
ッファ回路36Aないし36Dで受取られ、出力制御回路363
に入力される。出力制御回路363は、信号363aによって
選択回路362を制御し、前記読出制御信号43aが指定した
バッファ番号の読出しデータを取出す。
以上の動作により、4個の読出データバッファ回路36
Aないし36Dから4個の読出データが同期して並列にアク
セス要求制御装置32Aないし32Dに送出されることにな
る。
以上説明した動作を実現する手段として、特開昭62−
251956号があげられる。
〔発明が解決しようとする課題〕
第7図に示すプログラムをベクトル演算器、ベクトル
レジスタ等から構成されるベクトルプロセッサを具備す
る計算機で実行すると、一般的に次の動作により結果を
求める。第7図に示したB(i)、C(i)、A(i)
が全て記憶装置上のベクトルであると 1. 記憶装置上に配列されたオペランドデータB(i)
を、ベクトルレジスタ(X)番に順次持ってくる。……
(ベクトルロード命令) 2. 1と同様、記憶装置上に配列されたオペランドデー
タC(i)を、ベクトルレジスタ(Y)番に順次持って
くる。……(ベクトルロード命令) 3. ベクトルレジスタ(X)、ベクトルレジスタ(Y)
のデータを順次読み出し、ベクトル演算器により演算を
行い、加算結果を順次ベクトルレジスタ(Z)に格納す
る。……(ベクトル加算命令) 4. 加算結果が格納されているベクトルレジスタ(Z)
の内容を順次読み出し、記憶装置に書き込む。……(ベ
クトルストア命令) 以上の動作(命令)によりB(i)+C(i)の演算
結果を求めることができる。
‘記憶装置→ベクトルレジスタ’の転送パイプライン、 ‘ベクトルレジスタ→記憶装置’の転送パイプラインを
各々1本ずつしか持たない計算機の処理時間は図8
(a)のようになる。即ちロードの転送パイプラインが
1本のため、B(i)のロードが終了するまではC
(i)のロードができない。ベクトルプロセッサは、ロ
ード・加算・ストアの連結(チェイニング)機構によ
り、オペランドがロードされた要素(要素番号0、1、
2……の順序で)から演算を開始できるが、C(i)の
ロードが始まらないと、連結機構も動作しない。連結機
構等の演算器の高速性を十分に発揮するためには少なく
とも‘記憶装置→ベクトルレジスタ’の転送パイプライ
ンは2本は必要である。図8(b)は上記転送パイプラ
インを2本とした時の処理時間である。第7図のプログ
ラムは、上記転送パイプラインを2本としたことによ
り、約1/2の処理時間で実行できることになる。
しかし、同時にアクセス要求を発行する、いわゆる要
素並列パイプライン処理方式により処理される転送パイ
プラインにおいて、該転送パイプラインを2本にする
と、各々の転送パイプラインによるメモリアクセスの競
合のため性能が低下することがある。第9図により具体
的に説明する。
第9図において、転送パイプラインAはアクセス要求
制御装置S00、S01、S02、S03の4個から構成され、転送
パイプラインBはアクセス要求制御装置S10、S11、S1
2、S13の4個から構成される。転送パイプラインAは、
バンク番号「00」から連続領域をアクセス(ロード)
し、転送パイプラインBは、バンク番号「06」から連続
領域をアクセス(ロード)する場合、まず転送パイプラ
インAのアクセス要求制御装置S00、S01、S02、S03に
は、時刻T0では、「00」、「01」、「02」、「03」のバ
ンク番号が割り当てられる。この時、転送パイプライン
Bの方では、命令の起動が1マシンサイクル遅れ(命令
の解読、転送パイプラインの割り当て、起動に1マシン
サイクル要する)るため競合するアクセス要求が無くS0
0、S01、S02、S03から発行したアクセス要求は、記憶装
置に送出される。時刻T2では、転送パイプラインAのア
クセス要求制御装置S00、S01、S02、S03にはそれぞれバ
ンク番号「04」、「05」、「06」、「07」が割り当てら
れ、転送パイプラインBのアクセス要求制御装置S10、S
11、S12、S13にはそれぞれバンク番号「06」、「07」、
「08」、「09」が割り当てられる。S00、S01から発行さ
れるアクセス要求は、この場合も競合が無いので記憶装
置に送出される。S02、S03から発行されるアクセス要求
は、S10、S11から発行されるアクセス要求と同一バンク
番号をアクセスする(競合発生)ため、決められた優先
順位に従って記憶装置に送出するアクセス要求を選択す
る。この場合「S00>S01>S02>S03>S10>S11>S12>S
13」とすると、S02、S03から発行されるアクセス要求が
選択される。又S12、S13から発行されるアクセス要求は
競合が発生していないため、記憶装置に送出される。結
局時刻T4で記憶装置に送出されるアクセス要求は、S0
0、S01、S02、S03、S12、S13のアクセス要求制御装置が
発行したアクセス要求である。次に時刻T4で各々アクセ
ス要求制御装置S00、S01、S02、S03に割り当てられるバ
ンク番号は「08」、「09」、「0A」、「0B」で、S10、S
11、S12、S13に割り当てられるバンク番号はそれぞれ
「0A」、「0B」、「0C」、「0D」である。S00、S01から
発行されたアクセス要求は、前マシンサイクル(時刻T
2)でS12、S13から発行されたアクセス要求と同一バン
ク番号であるため、バンクビジィー(記憶装置を構成す
るRAMのサイクルタイム分アクセス要求の送出を抑止す
る。)時間分待たなければならない。S10、S12から発行
されるアクセス要求は、前マシンサイクル時と同様、S0
2、S03から発行されるアクセス要求と競合をおこし、前
記優先順位に従いS02、S03から発行されるアクセス要求
が選ばれる。この結果時刻T6で記憶装置に発行されるア
クセス要求は、S02、S03、S12、S13から発行されるアク
セス要求である。同様に時刻T8、T10、T12……で記憶装
置に送出されるアクセス要求は、時刻T6で送出されるア
クセス要求と同じである。即ち、第9図に示されるごと
く、記憶装置に送出されるアクセス要求は、アクセス要
求制御装置S02、S03、S12、S13から発行されるアクセス
要求で、アクセス要求制御装置S00、S01、S10、S11から
発行されるアクセス要求は、バンクビジィー時間分だけ
待たされる。第7図に示したプログラムを、この例にあ
てはめると、処理時間は図8(c)のようになる。この
ように、要素並列パイプライン処理方式により処理され
る転送パイプラインでは、同時に発行されるアクセス要
求間の同期をとって処理するため同時に発行されるアク
セス要求のあるアクセス要求だけ待たされることは著る
しい性能低下をまねくことになる。その性能低下を防ぐ
には、先行する転送パイプラインを優先的に処理し、後
続の転送パイプラインは、バンクビジィー時間分だけ、
処理を中断させ(待たせ)て、処理を開始する時間を遅
らせる方がバンクの競合を無くし、結果的には処理時間
が短縮できる。従って要素並列パイプライン処理方式で
処理する転送パイプラインは、バンクビジィー時間分だ
け処理開始時刻をずらす方が望ましい。ところが前述し
た従来の記憶制御方式は、1本の転送パイプラインで処
理することを前提としており、複数組の転送パイプライ
ンを有する記憶制御方式については考慮されておらず、
複数組の転送パイプラインを要素並列パイプライン処理
方式により処理する場合、メモリアクセスの過半数以上
を示めるアドレス連続ケースにおいて前述したように著
るしい性能低下をまねくという問題がある。
本発明の目的は、同時に発行される複数のアクセス要
求間の同期をとって処理されるいわゆる要素並列パイプ
ライン処理される転送パイプラインを複数組有する記憶
制御方式においても、性能低下を最小限(バンクビジィ
ー時間分の待時間)にとどめ、(図8(d)のように)
かつ複数のアクセス要求間の同期をとりつつ高速に処理
する記憶制御方式を提供することにある。
〔課題を解決するための手段〕
アクセス要求制御装置が、命令解読情報とアドレス情
報をもとに記憶装置上の連続領域をアクセスするか否か
を検出し、その検出結果をアクセス要求に付加して送出
し、優先順位決定装置に入力する。優先順位決定装置に
おいては、記憶装置上の連続領域をアクセスするなら、
先行命令を処理する転送パイプラインのバンク番号を毎
マシンサイクル覚えておき、後続命令を処理する転送パ
イプラインのバンク番号が先行命令を処理する転送パイ
プラインと競合を起こしそうなら、後続命令を処理する
転送パイプラインのアクセス要求を待たせ、先行命令を
処理する転送パイプラインのアクセス要求を優先的に処
理する制御回路を設ける。
〔作用〕
ベクトルデータの如き一連のデータに対するアクセス
動作を、複数のアクセス要求制御装置に要素を分割して
割り当てて処理する転送パイプラインを複数有する計算
機システムで処理する際、各アクセス要求制御装置は、
記憶装置上の連続領域をアクセスすることを検出し、そ
の検出情報(付加情報)をアクセス要求に付加してアク
セス要求を発行する。複数のアクセス要求制御装置が同
時に発行するアクセス要求とその付加情報を、優先順位
決定装置に入力し、その付加情報をもとに後続命令の転
送パイプラインのメモリアクセスと先行命令の転送パイ
プラインのメモリアクセスとが競合を起こしそうな時に
は、後続命令の転送パイプラインのアクセス要求を待た
せ、先行命令の転送パイプラインのアクセス要求を優先
的に処理することにより、競合を無くして複数の転送パ
イプラインを処理する。これによりアクセス要求制御装
置から同時に発行されるアクセス要求間の同期ずれを少
なくし、並列にかつ高速に記憶装置へアクセス要求を発
行することができる。又、後続命令の処理を持たせ、先
行命令を先に処理するのでプログラム実行上も望まし
い。
〔実施例〕
以下、本発明の一実施例について説明する。第1図
は、要素並列パイプライン処理によりベクトル命令を処
理する計算機システムの主要部の構成例である。ここで
計算機システムは、ベクトル演算器、ベクトルレジスタ
の読み出し、書き込み制御、アクセス要求制御装置等の
制御を行うベクトル命令制御装置10、記憶装置17上のデ
ータをベクトルレジスタに読み出す、あるいはベクトル
レジスタのデータを記憶装置17上に書き込む時の記憶装
置上の番地(アドレス)を指示するアドレスレジスタ群
11、複数(本実施例では4とする)の演算装置12Aない
し12D、該演算装置12と記憶装置17間のデータバッファ
の役割を持つベクトルレジスタ13Aないし13D、ベクトル
命令制御装置10からの命令解読指示とアドレスレジスタ
群11からのアドレス情報によりアドレス計算を行いアク
セス要求を発行する論理的に2本のアクセス要求制御装
置14A0ないし14D0、14A1ないし14D1、記憶制御装置19、
記憶装置17を備えている。記憶装置17は各々独立にアク
セス可能な記憶バンクの集まりである複数(本実施例で
は4とする)の記憶バンク群17Aないし17Dから成り、ア
クセス要求に伴うアドレス情報をデコードした結果どの
記憶バンク群にアクセスするかが決定される。記憶制御
装置19は、アクセス要求制御装置対応のアクセス要求ス
タック装置15A0ないし15D0、15A1ないし15D1、読み出し
データバッファ装置18A0ないし18D0、18A1ないし18D1、
記憶バンク群対応の優先順位決定装置16Aないし16Dから
成る。第1図に示す計算機システムにおいて、要素並列
パイプライン処理方式により処理した場合の動作概要に
ついて、記憶装置からの読み出し、読み出し、演算、書
き込み(問題点に示した1、2、3、4の命令と同じ)
という動作を例にとって説明する。
まずベクトル命令制御装置10は、ベクトル命令コード
を解読し記憶装置17からベクトルデータをベクトルレジ
スタ13に格納する場合(読み出し)、ベクトル命令の種
類(動作内容:例えば8バイトの読み出し等)を示すコ
ードとベクトル命令で指定されたベクトルアドレスレジ
スタ、ベクトルアドレスベースレジスタ、ベクトルアド
レス増分レジスタの番号の内容をアドレスレジスタ群11
より読み出しアクセス要求制御装置14に送出する。又、
ベクトル命令制御装置10は、論理的に2組あるアクセス
要求制御装置のどちらに処理を割り当てるかを決定し、
どちらにもアクセス要求が無い時には、アクセス要求制
御装置14A0ないし14D0(以下「0」系転送パイプライン
と呼ぶ)側に割り当て、0系転送パイプラインにアクセ
ス要求がありアクセス動作中であれば、アクセス要求制
御装置14A1ないし14D1(以下「1」系転送パイプライン
と呼ぶ)側に割り当て、1系転送パイプラインがアクセ
ス動作中であれば、0系転送パイプラインに割り当て
る。0系・1系転送パイプライン両系アクセス動作中で
あるならば、ベクトル命令制御装置10は割り当て処理を
持たせ、先に非アクセス動作中となった系の転送パイプ
ラインに処理を割り当てる。本実施例では、ベクトル命
令制御装置20は初めの読み出しは0系転送パイプライン
に処理を割り当て、0系転送パイプラインの各々アクセ
ス要求制御装置14A0ないし14D0にアドレスレジスタ群11
から読み出したベクトルアドレスレジスタ、ベクトルア
ドレスベースレジスタ、ベクトルアドレス増分レジスタ
の値を同時にセットし、ベクトルの各要素を次のように
アクセス要求制御装置14A0ないし14D0に割り当て、アク
セス要求を生成させる。
アクセス要求制御装置(0系転送パイプライン) (nは0又は正の整数) アクセス要求制御装置14A0ないし14D0は同時に発行す
るアクセス要求のアドレス計算を行い、対応するアクセ
ス要求スタック装置15A0ないし15D0に同時にスタックさ
せる。該各々スタック装置15A0ないし15D0では、アクセ
ス要求のアドレスに基づき、目的の優先順位決定装置16
Aないし16Dのいずれかに送出する。該各々優先順位決定
装置16Aないし16Dでは複数のアクセス要求が競合した場
合、所定の優先順位に従って一つのアクセス要求を選択
し、それぞれ対応する記憶バンク群17Aないし17Dに対し
てアクセス要求を送出する。各々記憶バンク群に送出し
たアクセス要求に対応する読み出しデータは固定時間
(アクセス時間に相当)後に記憶制御装置19に返送さ
れ、それぞれアクセス要求制御装置14A0ないし14D0に対
応した読み出しデータバッファ装置18A0ないし18D0にセ
ットされる。この読み出しデータは、アクセス要求制御
装置14A0ないし14D0が同時に発行した4個のアクセス要
求のデータが全で読み出された時点で、発行順に各々ア
クセス要求制御装置14A0ないし14D0に返送され、ベクト
ルレジスタ13Aないし13Dに同時に格納される。ベクトル
レジスタと各要素の割り当てを以下に示す。
ベクトルレジスタ 2番目の読み出し動作が同様にベクトル命令制御装置
10がベクトル命令を解読し、今度は1系転送パイプライ
ンのアクセス要求制御装置14A1ないし14D1に対して、ベ
クトル命令の種類を示すコードとベクトル命令で指定さ
れた番号のベクトルアドレスレジスタ、ベクトルアドレ
スベースレジスタ、ベクトルアドレス増分レジスタの内
容をアドレスレジスタ群から読み出して送出し、1系転
送パイプラインの各々アクセス要求制御装置14A1ないし
14D1に同時にセットさせ、ベクトルの各要素を次のよう
に分割し割り当てアクセス要求を生成させる。
アクセス要求制御装置(1系転送パイプライン) アクセス要求制御装置14A1ないし14D1は同時に発行す
るアクセス要求のアドレス計算を行い、対応するアクセ
ス要求スタック装置15A1ないし15D1に同時にスタックさ
せる。該各々スタック装置15A1ないし15D1では、アクセ
ス要求のアドレスに基づき、目的の優先順位決定装置16
Aないし16Dのいずれかに送出する。該各々優先順位決定
装置16Aないし16Dでは複数のアクセス要求が競合した場
合、所定の優先順位に従って一つのアクセス要求を選択
し、それぞれ対応する記憶バンク群17Aないし17Dに対し
てアクセス要求を送出する。各々記憶バンク群に送出し
たアクセス要求に対応する読み出しデータは固定時間
(アクセス時間に相当)後に記憶制御装置19に返送さ
れ、それぞれアクセス要求制御装置14A1ないし14D1に対
応した読み出しデータバッファ装置18A1ないし18D4にセ
ットされる。この読み出しデータは、アクセス要求制御
装置14A1ないし14D1が同時に発行した4個のアクセス要
求のデータが全て読み出された時点で、発行順に各々ア
クセス要求制御装置14A1ないし14D1に返送され、ベクト
ルレジスタ13Aないし13Dに同時に格納される。ベクトル
レジスタと各要素の割り当ては前述したのと同じであ
る。
次にベクトルレジスタ13Aないし13Dに格納されたデー
タを演算する場合、ベクトルの各要素を以下のように演
算装置12Aないし12Dに割り当て、演算結果を再びベクト
ルレジスタに格納する。
演算装置 この演算動作では、4個の演算装置12Aないし12Dは完
全に同期して演算が行われ、例えば第0、1、2、3要
素の結果は同時に求められ、同時刻にベクトルレジスタ
13Aないし13Dに格納される。
最後に、ベクトルレジスタ13Aないし13Dに格納された
データを記憶装置17に書き込む場合、前述したデータ読
み出しと同様にどちらの系の転送パイプラインを使うか
を決定し、各要素がアクセス要求制御装置14A0ないし14
D0あるいは14A1ないし14D1に割り当てられ、又、アドレ
ス情報もセットされる。割当てられた4個の要素、例え
ば第0、1、2、3要素は、対応するアクセス要求クタ
ック装置15A0ないし15D0、あるいは15A1ないし15D1に送
出される。以降の記憶装置17へのアクセス要求送出まで
の処理は、読み出し動作と同様である。
以上述べたように、各々4個の演算装置12Aないし12
D、ベクトルレジスタ13Aないし13D、アクセス要求制御
装置14A0ないし14D0、14A1ないし14D1は同期して処理さ
れる。したがって、同期して動作させる要素並列パイプ
ライン処理方式では、一つの制御系論理で各々4個の演
算装置12Aないし12D、ベクトルレジスタ13Aないし13D、
アクセス要求制御装置14A0ないし14D0、14A1ないし14D1
を制御するような論理構成をとることができる。
ところが、0系転送パイプライン・1系転送パイプラ
インが同期に動作する時に両系転送パイプラインのアク
セス要求がぶつかり、各々4個のアクセス要求のある特
定のアクセス要求だけが待たされ、同時に発行されたア
クセス要求間の同期をとって処理する要素並列パイプラ
イン処理を行うと著るしい性能低下を招くことがある。
このため、0系転送パイプライン・1系転送パイプライ
ンの処理を部分的にシリアライゼーションし、競合を発
生させない優先順位決定装置を有する記憶制御方式が必
要である。
以下、記憶制御装置における優先順位決定装置につい
て第2図を用いて説明する。
ベクトル命令制御装置10は、ベクトル命令で指定され
ている番号のベクトルアドレスレジスタ、ベクトルアド
レスベースレジスタ、ベクトルアドレス増分レジスタの
内容を読み出し、各々の値をアクセス要求制御装置14A0
ないし14D0又は14A1ないし14D1内にあるワークのアドレ
スレジスタ群2a0、2a1、2a2にそれぞれ同時にセットす
る。又、ベクトル命令の命令コードを解読し、通常のロ
ードあるいはストア命令(リストベクトルのロード/ス
トアではない。)であるという情報と記憶装置のアクセ
ス幅が4Byteであるか8Byteであるかを検出し、アクセス
要求制御装置14A0ないし14D0内にあるフリップフロップ
2a3Aには通常のロード/ストア命令ならば‘1'を、そう
でないならば‘0'を、3a3Bにはアクセス幅が8Byteなら
ば‘1'、4Byteならば‘0'が束ねられた全アクセス要求
制御装置同時にセットされる。これらの情報は次のベク
トル命令の動作を行う時まで更新されない。アクセス要
求制御装置14A0ないし14D0あるいは14A1ないし14D1で
は、ワークのアドレスレジスタ群2a0、2a1、2a2にセッ
トされているベクトルアドレスレジスタ、ベクトルアド
レスベースレジスタ、ベクトルアドレス増分レジスタの
値をアドレス計算器2a4に入力し、アクセスする記憶装
置上のアドレスを求める。通常のロード/ストア命令の
計算方法は次のとおりである。
アクセス要求制御装置 求められたアドレスはアドレス計算結果レジスタ2a6
にセットされる。更にアクセス要求制御装置14A0ないし
14D0あるいは14A1ないし14D1内には記憶装置の連続領域
をアクセスするか否かを検出する検出回路2a7があり、
該回路は、通常のロード/ストア命令でかつ記憶装置の
アクセス幅が8Byteでかつベクトルアドレス増分レジス
タの絶対値が8Byteである、あるいは通常のロード/ス
トア命令でかつ記憶装置のアクセス幅が4Byteでかつベ
クトルアドレス増分レジスタの絶対値が4Byteである
時、アドレス連続フリップフロップを‘1'にセットす
る。該フリップフロップが‘1'であれば記憶装置上の連
続領域をアクセスする(以下アドレス連続と呼ぶ)こと
を意味する。束ねられた4個のアクセス要求制御装置14
A0ないし14D0あるいは14A1ないし14D1はアドレス計算結
果とアドレス連続情報を同時に求めアクセス要求に付加
してアクセス要求スタック装置15A0ないし15D0あるいは
15A1ないし15D1に対して同時送出する。アクセス要求ス
タック装置15A0ないし15D0あるいは15A1ないし15D1に
は、アドレス、アドレス連続情報のスタック2a8、2a9が
あり(本例では4個)アクセス要求制御装置から発行さ
れるアドレス、アドレス連続情報をスタック番号0、
1、2、3、0…というように順次スタックしスタック
番号0番の内容が優先順位決定装置に送出されるまで
は、スタック0番の内容は更新されないように制御して
いる。アクセス要求スタック装置15A0ないし15D0あるい
は15A1ないし15D1は、スタックされたアドレスの内容を
読み出しデコーダ2a10によりデコードを行いどの記憶バ
ンク群対応の優先順位決定装置に送出するかを決定し、
その決定された記憶バンク群対応の優先順位決定装置に
対してアドレスとアドレス連続情報を付加してアクセス
要求を送出する。記憶バンク群対応の優先順位決定装置
16Aないし16Dには、0系転送パイプラインのアクセス要
求スタック装置15A0ないし15D0からのアクセス要求・ア
ドレス・アドレス情報をセットするレジスタ2bA0ないし
2bD0、1系転送パイプラインのアクセス要求スタック装
置15A1ないし15D1からのアクセス要求・アドレス・アド
レス情報をセットするレジスタ2bA1ないし2bD1、0系転
送パイプラインの優先順位を決定する回路2b0、1系転
送パイプラインの優先順位を決定する回路2b1、0系転
送パイプラインの優先順位決定回路2b0、1系転送パイ
プラインの優先順位決定回路2b1で各々選択されたアク
セス要求間でバンクがぶつかった時の優先順位を決定す
る最終優先順位決定回路2b2、0系転送パイプラインで
選択されたアクセス要求・アドレス・アドレス連続情報
の各レジスタ2b60・2b70・2b80、1系転送パイプライン
で選択されたアクセス要求・アドレス・アドレス連続情
報の各レジスタ2b61・2b71・2b81、0系転送パイプライ
ンで選択されたアドレスの加算あるいは減算を行う演算
器2b5と1系転送パイプラインで選択されたアドレスの
加算あるいは減算を行う演算器2b6がある。演算器2b5あ
るいは2b6は、アドレス連続であるならば次のマシンサ
イクルで入力される、あるいは次の次のマシンサイクル
で入力される、あるいは次の次の次のマシンサイクルで
入力される、……、(バンクビジー時間内に入力され
る)アドレスを予測するためにある。例えば本実施例で
は記憶バンク群対応の優先順位決定装置は4個あり、第
1図(d)に示すアドレス(4n+0)HEXは優先順位決
定装置26Aに、(4n+1)HEXは優先順位決定装置26B
に、(4n+2)HEXは優先順位決定装置26Cに、(4n+
3)HEXは優先順位決定装置26Dに入力される。即ち予測
するアドレスは(アドレス+4m)で表わすことができ
(mはバンクビジー時間分のマシンサイクル数)m=3
とすると本実施例の演算器2b5、2b6は(選択されたアド
レス±4)、(選択されたアドレス±8)、(選択され
たアドレス±12)の計算を行い次に来そうなアドレスを
予測することができる。更にその予測したアドレスを最
終優先順位決定回路2b2に入力する。最終優先順位決定
回路2b2内には0系転送パイプラインで選択されたアド
レスにより計算された予測アドレスと(2b5の出力)1
系転送パイプラインの優先順位決定回路2b1で選択され
たアクセス要求のアドレスを比較する比較回路2C0、1
系転送パイプラインで選択されたアドレスにより計算さ
れたアドレス(2b6の出力)と0系転送パイプラインの
優先順位決定回路2b0で選択されたアクセス要求のアド
レスを比較する比較回路2C1があり、それぞれの結果と
0系転送パイプライン、1系転送パイプラインの各々の
アドレス連続情報とをANDゲート2C2、2C3でANDをとり、
該ANDゲートの出力が‘1'となった時に、他方の(0系
転送パイプラインなら1系転送パイプラインの、1系転
送パイプラインなら0系転送パイプラインの)アクセス
要求を待たせ、自系のアクセス要求を優先的に処理す
る。(当然の事ながら先行した転送パイプラインの方が
先に抑止機能が働く。)この抑止論理により先行するメ
モリアクセスが優先的に選択されて記憶装置に送出さ
れ、後続のメモリアクセスはバンクビジー時間分だけ待
たされて記憶装置にアクセス要求が送出されることにな
る。
以上の動作により、アクセス要求制御装置14A0ないし
14D0あるいは14A1ないし14D1から同時に発行されたアク
セス要求間の同期をとりつつ処理する要素並列パイプラ
イン処理方式のメモリアクセスパイプラインを複数組有
する記憶制御装置においても、問題点で記した性能低下
を防止し高速に処理することが可能となる。
〔発明の効果〕
本発明によれば、複数のアクセス要求制御装置に対し
て、一つのアクセス命令の要素を分割して割り当てて処
理する要素並列パイプライン処理方式において、複数組
のメモリアクセスパイプラインで同時に複数のアクセス
命令を処理する際、複数のパイプライン間の処理を部分
的にシリアライゼーションし、競合による乱れを無くす
ことにより、各々メモリアクセスパイプラインの処理を
高速に実行できることになる。
更に要素並列パイプライン処理において、著るしい性
能低下を防ぐことができ、要素並列パイプライン処理方
式の実現容易性の向上に大きな効果がある。
【図面の簡単な説明】
第1図、第2図は本発明による記憶制御装置の一実施例
を示す図、第3図、第4図、第5図、第6図は従来の記
憶制御方式を説明する図、第7図は問題点で例にしたプ
ログラムを示す図、第8図、第9図は問題点を説明する
図である。 10……ベクトル命令制御装置、11……アドレスレジスタ
群、14A0ないし14D0、14A1ないし14D1……アクセス要求
制御装置、15A0ないし15D0、15A1ないし15D1……アクセ
ス要求スタック装置、16Aないし16D……アクセス要求優
先順位決定装置。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】独立にアクセス可能な複数のバンクを有す
    る記憶装置と、前記記憶装置に対してアクセス要求を発
    行する複数のアクセス要求制御装置と、前記複数のアク
    セス要求制御装置が発行するアクセス要求間の優先順位
    を決定し、前記優先順位に従ってアクセス要求を選択し
    該当バンクへ送出する記憶制御装置とを有し、かつ前記
    記憶制御装置が、一つのアクセス命令が割当てられたと
    ころの前記複数のアクセス要求制御装置から同時に発行
    される複数のアクセス要求を同期させて処理するメモリ
    アクセスパイプラインを複数組有することにより同時に
    複数のアクセス命令を処理できる機能を有する計算機シ
    ステムの記憶制御方式において、 前記記憶装置へ送出した任意のアクセス要求に続いて前
    記記憶装置へバンクビジー時間分のマシンサイクル数の
    間に送出される予定である当該任意のアクセス要求が属
    する第1のアクセス命令のアクセス要求と、前記第1の
    アクセス命令以外の他のアクセス命令のアクセス要求と
    が競合する可能性を予測する第1の手段を前記記憶制御
    装置に設け、 前記第1の手段が該可能性を示した場合は、前記記憶制
    御装置は前記予定された第1のアクセス命令のアクセス
    要求を前記他のアクセス命令のアクセス要求よりも優先
    的に選択し処理することを特徴とする記憶制御方式。
  2. 【請求項2】アクセス命令が前記記憶装置上の連続領域
    のベクトルに対してアクセスするか否かを検出する第2
    の手段を前記記憶制御装置に設け、 前記第1の手段が該可能性を示し、かつ、前記第2の手
    段の結果が連続領域を示すとき、前記記憶制御装置は前
    記予定された第1のアクセス命令のアクセス要求を前記
    他のアクセス命令のアクセス要求よりも優先的に選択し
    処理することを特徴とする特許請求の範囲1項記載の記
    憶制御方式。
JP8901188A 1988-04-13 1988-04-13 記憶制御方式 Expired - Lifetime JP2685484B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8901188A JP2685484B2 (ja) 1988-04-13 1988-04-13 記憶制御方式
US07/337,070 US5367654A (en) 1988-04-13 1989-04-12 Method and apparatus for controlling storage in computer system utilizing forecasted access requests and priority decision circuitry

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8901188A JP2685484B2 (ja) 1988-04-13 1988-04-13 記憶制御方式

Publications (2)

Publication Number Publication Date
JPH01261780A JPH01261780A (ja) 1989-10-18
JP2685484B2 true JP2685484B2 (ja) 1997-12-03

Family

ID=13958957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8901188A Expired - Lifetime JP2685484B2 (ja) 1988-04-13 1988-04-13 記憶制御方式

Country Status (1)

Country Link
JP (1) JP2685484B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407451B2 (en) * 2007-02-06 2013-03-26 International Business Machines Corporation Method and apparatus for enabling resource allocation identification at the instruction level in a processor system
JP5630568B2 (ja) 2011-03-22 2014-11-26 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP5751181B2 (ja) * 2012-01-24 2015-07-22 富士通セミコンダクター株式会社 命令制御回路、プロセッサ、及び命令制御方法

Also Published As

Publication number Publication date
JPH01261780A (ja) 1989-10-18

Similar Documents

Publication Publication Date Title
EP0242882B1 (en) Storage control method and apparatus
US4651274A (en) Vector data processor
EP0184828B1 (en) Vector processing apparatus
JPS6118226B2 (ja)
US5060148A (en) Control system for vector processor with serialization instruction for memory accesses for pipeline operation
JPH03108042A (ja) 多重仮想空間アドレス制御方法および計算機システム
US5367654A (en) Method and apparatus for controlling storage in computer system utilizing forecasted access requests and priority decision circuitry
JP3400458B2 (ja) 情報処理装置
JP2685484B2 (ja) 記憶制御方式
US5539902A (en) Vector data processing apparatus wherein a time slot for access to a bank of vector registors is assigned based on memory access time information
JP2804485B2 (ja) 記憶制御方式
JPS5896345A (ja) 階層型演算方式
JPS63175970A (ja) 記憶制御方式
JP3982077B2 (ja) マルチプロセッサシステム
US5600842A (en) Microprogram controller for controlling readout of a microprogram stored in multiple storage areas
JPH0673128B2 (ja) 記憶制御方式
EP0097499B1 (en) Access request control apparatus for a data processing system
JP2878160B2 (ja) 競合調停装置
JPH0424843A (ja) メモリアクセス制御装置
JPH01183779A (ja) 記憶制御方式
JP3126129B2 (ja) プライオリティ制御装置
JP2695734B2 (ja) 記憶制御装置およびそのアクセス要求選択方法
JPS63284673A (ja) 情報処理装置
JPS60178540A (ja) 情報処理装置におけるバイパス制御方式
JPH0277957A (ja) データ転送制御装置とデータ処理装置