JPH06274525A - ベクトルデータプリフェッチ制御装置 - Google Patents

ベクトルデータプリフェッチ制御装置

Info

Publication number
JPH06274525A
JPH06274525A JP5060035A JP6003593A JPH06274525A JP H06274525 A JPH06274525 A JP H06274525A JP 5060035 A JP5060035 A JP 5060035A JP 6003593 A JP6003593 A JP 6003593A JP H06274525 A JPH06274525 A JP H06274525A
Authority
JP
Japan
Prior art keywords
instruction
vector
prefetch
address
main memory
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.)
Pending
Application number
JP5060035A
Other languages
English (en)
Inventor
Naohiko Irie
直彦 入江
Hiroshi Kurokawa
黒川  洋
Kazunori Kuriyama
和則 栗山
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 JP5060035A priority Critical patent/JPH06274525A/ja
Publication of JPH06274525A publication Critical patent/JPH06274525A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】セクション化されたベクトル処理を命令列の反
復実行により行なう場合に、ベクトルデータを効率よく
プリフェッチし、それによりベクトル処理性能を改善す
る。 【構成】複数のベクトルデータのプリフェッチに必要な
主記憶参照情報を複数のエントリに保持するプリフェッ
チ情報保持部60と、これらのエントリを順次に指示す
るインデクス51と、指示されたエントリ内の主記憶参
照情報に基づいてプリフェッチを行なうプリフェッチア
ドレス制御部70と、エントリ内の主記憶参照情報を更
新する開始アドレス更新部52とが設けられ、それによ
り、ベクトルデータが、1セクションに必要な量ずつ、
個々の命令の実行とは非同期にプリフェッチされる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ベクトル処理装置と、
このベクトル処理装置と主記憶の間のデータ転送を高速
化するためのキャッシュメモリとを有する計算機システ
ムに関し、特に、このような装置におけるベクトルデー
タのプリフェッチに関する。
【0002】
【従来の技術】数値計算の高速化のために、様々なベク
トル計算機システムが今までに開発されている。ベクト
ル計算機システムは、非常に高速な演算器を備えてお
り、この演算器の高速性を十分に活かすには、演算器と
主記憶の間における、演算器の処理速度に見合ったデー
タ転送能力が維持されなければならない。他方、最近の
計算機システムにおいては、主記憶参照の遅延の緩和、
及びプロセッサと主記憶の間のデータパスの混雑の緩和
のために、より高速なキャッシュメモリをプロセッサと
主記憶の間に置くことが、一般的になっている。キャッ
シュメモリからベクトル演算器へデータを供給すること
により、ベクトルデータのフェッチに必要な時間の短
縮、主記憶の製造の容易さなどの利点が得られ、その結
果、性能/コスト比の高いベクトル計算機システムの実
現が期待される。
【0003】しかしながら、処理しようとしているベク
トルデータがキャッシュメモリ内に存在しなければ、主
記憶にアクセスしなければならず、したがって、データ
フェッチ時間の短縮という利点は得られない。キャッシ
ュメモリの容量はさほど大きくないので、その古い内容
は、新たに要求された主記憶からのデータによって、次
第に置換される。キャッシュメモリのヒット率、すなわ
ち、所要のデータがキャッシュメモリ内に存在する確率
は、ある命令により処理されたデータを含むデータブロ
ックが、その後、そのブロック内のデータを必要とする
他の命令が実行される時点で、キャッシュメモリ内に残
存する確率に依存する。しかるに、ベクトルデータの場
合には、1個のオペランドのデータ量が非常に多いの
で、古いデータは短期間のうちに置換される。その結
果、ヒット率が低下し、キャッシュメモリの利点は低減
する。
【0004】この問題に対処するため、特開平1−30
6967号公報は、ベクトルデータをキャッシュメモリ
へプリフェッチする機構を提案している。この提案され
た機構は、各ベクトル命令(一般には、少なくとも1個
のオペランドがベクトルレジスタか又は主記憶上のベク
トルデータを指定する命令をいうが、本明細書では、簡
明のため、少なくとも1個のオペランドが主記憶上のベ
クトルデータを指定する命令をいう)の実行に際して、
ベクトルデータの最初のブロック(キャツシュメモリと
主記憶の間で転送されるデータの単位)が主記憶からベ
クトルレジスタにロードされている間に、このベクトル
データの後続する諸ブロックを主記憶からキャッシュメ
モリに読出す。後続諸ブロックのアドレスは、命令によ
り与えられるベクトル指定情報(開始アドレス、全要素
数、要素間距離等)と、既に処理された要素の数とに基
づいて計算される。この機構によれば、第2ブロック以
下のデータはキャッシュメモリから読出すことができ、
したがって、ベクトル処理速度の相当な向上が期待でき
る。
【0005】同公報には、更に、セクショニング(非常
に長いベクトルをベクトルレジスタと同じ長さの部分に
分割して、一度に1部分ずつ処理すること)が行なわれ
る場合に、ベクトルの最初の部分がベクトルレジスタに
ロードされた後、このロードされた部分に対して演算が
行なわれている間に、後続部分のデータを主記憶からキ
ャッシュメモリに読出すことができる旨が、記載されて
いる。しかしながら、このようなセクショニングの場合
のプリフェッチを実現するための機構は、開示されてい
ない。
【0006】
【発明が解決しようとする課題】プリフェッチに関する
問題の一つは、主記憶上の複数のベクトルデータを参照
する処理のセクショニングの場合に生じる。一例とし
て、ベクトルデータAの各要素をベクトルデータBの各
対応する要素と乗算して、その結果をベクトルデータC
の位置に格納するという処理が必要で、これらのベクト
ルデータは非常に長いと仮定する。この処理は、ベクト
ルオペランドAをベクトルレジスタにロードするベクト
ルロード(VLD)命令と、このベクトルレジスタ内のデ
ータをベクトルオペランドBと要素ごとに乗算して結果
をこのベクトルレジスタに戻すベクトル乗算(VMD)命
令と、このベクトルレジスタの内容をベクトルオペラン
ドCに格納するベクトルストア(VSTD)命令とを含む命
令列の、ループによって実現しうる(後述する図4参
照)。これらの命令のそれぞれのベクトルオペランドの
長さ(要素の数)は、ベクトルレジスタの要素の数であ
る。このループの1イタレーションが処理の1セクショ
ンであり、ベクトルレジスタの要素の数はセクションサ
イズと呼ばれる。
【0007】前記のセクショニングの場合に、最初のセ
クションにおけるVLD命令、VMD命令及びVSTD命令の実行
中に、ベクトルデータA、B及びCのすべてをそれそれ
プリフェッチすれば、各ベクトルデータは非常に長いの
で、早期にプリフェッチされたベクトルデータの一部
(例えばA)は、後でプリフェッチされたベクトルデー
タの一部(例えばC)により置換されて、キャッシュメ
モリから追い出される恐れがある。もしもそのようなこ
とが起こると、第2セクションにおいて、VLD命令のオ
ペランドはキャッシュメモリ内に発見できず、主記憶へ
のアクセスが必要になる。更に、この主記憶へのアクセ
ス中にベクトルデータAが再度プリフェッチされると、
このプリフェッチされたデータにより、今度はベクトル
データBがキャッシュメモリから追い出されて、次に実
行されるVMD命令のオペランドもまた主記憶から読出さ
なければならず、結局、プリフェッチの効果がほとんど
失われることになる。
【0008】他方、先に述べた、各ベクトル命令の実行
中にその命令が必要とするデータのみをプリフェッチす
る機構を利用すれば、前記の難点は除かれる。しかし、
この場合には、各セクションにおける各ベクトル命令の
実行時に、最初のデータブロックは、プリフェッチされ
ていないので、主記憶から読出さなければならない。こ
れはヒット率の低下を意味し、処理速度の向上を限定す
る。
【0009】本発明の目的は、ベクトル命令列のセクシ
ョニングによる処理において、キャッシュメモリへのベ
クトルデータのプリフェッチを高い効率で遂行し、それ
により、キャッシュヒット率を高めて、データが常にキ
ャッシュメモリ内に存在する場合とほぼ同程度のベクト
ル処理性能を達成することにある。本発明のより直接的
な目的は、各セクションにおける各ベクトル命令の実行
に必要なベクトルデータを、個々の命令の実行とは非同
期にプリフェッチし、それにより、個々のベクトル命令
の実行の開始に先立って、所要ベクトルデータのプリフ
ェッチを開始することにある。
【0010】本発明の他の目的は、個々の命令の実行と
は非同期に行なわれるプリフェッチを、適切な時点で一
時的に休止して、過度なプリフェッチが行なわれるのを
防止することにある。本発明の他の目的は、プリフェッ
チを、個々の命令のみならず、各セクションの実行と
も、完全に非同期に行なうことにある。本発明の他の目
的は、前記のような非同期プリフェッチに必要な主記憶
参照情報を、最初のセクションの実行中に、自動的にセ
ットアップすることにある。本発明の他の目的は、前記
のような非同期プリフェッチに必要な主記憶参照情報
を、最初のセクションの実行前にセットアップすること
にある。
【0011】
【問題点を解決するための手段】本発明によるプリフェ
ッチ制御装置は、複数のエントリを有する情報保持手段
と、セクション内の複数のベクトル命令により指定され
た複数のベクトルオペランドのプリフェッチのために必
要な主記憶参照情報を、これらのベクトルオペランドが
命令により要求される順序で、情報保持手段の相次ぐエ
ントリに登録する手段と、これらのエントリの一つを指
示する指示手段と、指示手段による指示を変更する手段
と、命令の実行と非同期に動作し、指示手段により指示
されるエントリ内の主記憶参照情報に基づいてプリフェ
ッチを要求する手段と、あるエントリ内の主記憶参照情
報に基づくプリフェッチが完了した時に、指示変更手段
を介して指示手段による指示を次のエントリを指示する
ように更新する手段とを備える。更に、あるエントリ内
の主記憶参照情報に基づくプリフェッチが完了した時
に、当該エントリの内容を対応する命令の次の実行時に
必要なベクトルオペランドのプリフェッチのために必要
な主記憶参照情報に更新する手段が、設けられてもよ
い。
【0012】第1の実施態様においては、指示変更手段
は、登録手段による登録の完了後、更新された指示手段
により指示されるエントリが有効な情報を保持していな
い時に、指示手段による指示を最初のエントリを指示す
るように更新する。更に、セクションを構成する命令列
の反復実行の終了を検出する手段と、この命令列の反復
実行の終了が検出された時にプリフェッチ要求手段の動
作を終止させる手段とが、設けられてもよい。あるい
は、これら2手段の代りに、命令列の反復実行によって
処理されるべきベクトルデータの全長とプリフェッチさ
れたベクトルデータの長さの差を計算する手段と、この
差が所定値より小さくなった時に前記プリフェッチ要求
手段の動作を終止させる手段とが、設けられてもよい。
【0013】前記の反復実行の終了を検出する手段は、
セクションを構成する命令列の最初の命令のアドレスと
最後の命令のアドレスとを保持する手段と、実行中の命
令のアドレスをこのアドレス保持手段中のアドレスと比
較して実行中の命令がセクションを構成する命令列に属
するか否かを判定するする手段とで、実現することがで
きる。
【0014】第2の実施態様においては、指示変更手段
は、登録手段による登録の完了後、更新された指示手段
により指示されるエントリが有効な情報を保持していな
い時に、指示の更新を停止し、次のセクションの実行が
開始した時に、指示手段による指示を最初のエントリを
指示するように更新する。次のセクションの実行の開始
を検出するために、セクションを構成する命令列の最初
の命令のアドレスを保持する手段と、実行中の命令のア
ドレスと最初の命令のアドレスの一致を検出する手段と
が設けられてもよい。
【0015】前述した登録手段は、セクションを構成す
る命令列の最初の実行期間を検出する手段と、各命令の
各ベクトルオペランドのフェッチを検出する手段と、こ
れら両検出手段が前記命令列の最初の実行期間中にベク
トルオペランドのフェッチが開始されることを示すたび
に、指示変更手段を介して指示手段による指示を次のエ
ントリを指示するように更新し、かつ、実行中のベクト
ル命令により与えられるベクトルオペランドのフェッチ
のための主記憶参照情報を指示手段により指示されるエ
ントリに格納する手段とで、実現することができる。そ
の場合、プリフェッチ要求手段は、登録手段があるベク
トルオペランドのための主記憶参照情報をあるエントリ
に格納すると直ちに、この格納された主記憶参照情報に
基づいてプリフェッチを要求するように、構成するのが
よい。
【0016】登録手段は、前述したようなハードウェア
で実現する代りに、命令によって制御されるように構成
されてもよい。
【0017】
【作用】本発明によれば、セクションの実行中にフェッ
チされるべき全ベクトルオペランドのプリフェッチに必
要な主記憶参照情報(ベクトル開始アドレス、ストライ
ド長、要素長など)が、セクションの実行中に要求され
る順序で、情報保持手段の相次ぐエントリに登録され、
そして、この主記憶参照情報に基づいて、これらのベク
トルオペランドが、その順序で、しかも命令の実行とは
非同期に、相次いでプリフェッチされる。したがって、
プリフェッチは、各ベクトルデータが要求される順序
で、しかも個々のベクトル命令の実行を待つことなく進
行することができ、更に、ベクトル命令以外の命令の実
行中でさえも進行することができる。その結果、必要な
ベクトルデータを、それが実際に要求される前にプリフ
ェッチすることができる。プリフェッチの完了時にエン
トリ内の主記憶参照情報を更新する手段は、次のセクシ
ョンのためのプリフェッチを、そのセクションの実行と
同時又はそれ以前に開始することを可能にする。
【0018】第1の実施態様では、プリフェッチすべき
一群のベクトルデータの主記憶参照情報を保持している
一連のエントリが、連続して循環的に指示されるので、
プリフェッチ動作が、個々の命令の実行と非同期なばか
りでなく、個々のセクションの実行ともまた非同期に、
自動的に進行する。したがって、各ベクトル命令のオペ
ランドを、その命令の実行よりも充分前に、確実にプリ
フェッチしておくことができる。プリフェッチ動作のこ
のような自動的進行は、命令列の反復実行の終了が検出
された時、あるいは所要ベクトルデータの全長とプリフ
ェッチされたベクトルデータの長さの差が所定値(例え
ば“0”)以下になった時に、終了させることができ
る。
【0019】第2の実施態様では、前述した一連のエン
トリの循環的な指示における最初のエントリへの復帰
が、各セクションの実行の開始と同期される。したがっ
て、各セクションの実行期間中は、そのセクションで必
要なベクトルデータのみがプリフェッチされ、次のセク
ションで必要なベクトルデータのプリフェッチは、その
セクションの実行の開始と同時に開始される。その結
果、プリフェッチされるデータの量は、必要最小限に押
さえられる。命令列の最初の命令のアドレスを保持する
手段と、これを実行中の命令のアドレスと比較する手段
は、各セクションの実行の開始を検出するために用いら
れる。
【0020】プリフェッチに必要な主記憶参照情報の登
録のため、最初のセクション、すなわち命令列の最初の
実行期間中、命令がベクトルオペランドをフェッチする
たびに、エントリ指示が次のエントリを指示するように
更新され、かつ、実行中のベクトル命令により与えられ
るベクトルオペランドのための主記憶参照情報が、指示
されたエントリに格納される。その結果、相次ぐベクト
ルデータのプリフェッチのために必要な主記憶参照情報
が、それらのデータが要求される順序で、相次ぐエント
リに登録される。あるベクトルオペランドのための主記
憶参照情報があるエントリに格納されると直ちに、この
格納された主記憶参照情報に基づいてプリフェッチが行
なわれるように構成すれば、最初のセクションのための
プリフェッチも、ほとんど遅れることなく行なうことが
できる。
【0021】登録手段を命令によって制御されるように
構成すれば、プリフェッチに必要な主記憶参照情報を、
ソフトウェアにより、最初のセクションの実行の開始前
に登録することができ、したがって、プリフェッチの効
果を、最初のセクションから完全に享受することができ
る。
【0022】
【実施例】図1は、本発明によるベクトルデータプリフ
ェッチ制御装置の一実施例の概要を示す。命令処理装置
10は、主記憶制御装置80を介して主記憶81にアク
セスする。まず、ベクトル命令の処理に関わる部分を説
明する。命令処理装置10の内部において、命令は、命
令レジスタ11にセツトされ、そしてデコーダ12によ
りデコードされる。命令のあるフィールドは汎用レジス
タ13の一つを指定し、この汎用レジスタの内容は、ベ
クトル開始アドレスを示し、ベクトル開始アドレスレジ
スタ14に転送される。命令の他のフィールドは他の汎
用レジスタを指定し、この汎用レジスタの内容は、ベク
トルのストライド長を示し、ストライド長レジスタ15
に転送される。ストライド長は、主記憶上におけるベク
トル要素の間隔である。例えば、ストライド長“1”
は、相次ぐ要素が連続して置かれていることを表わし、
ストライド長“2”は、相次ぐ要素が1要素長の間隔で
置かれてることを表わす。命令の他のフィールドは語長
を示し、語長レジスタ15に転送される。語長は、1要
素の長さすなわちデータサイズである。これらのレジス
タの内容は、ベクトルオペランドの各要素のフェッチに
必要なフェッチ情報106を構成する。命令アドレスレ
ジスタ40は、命令レジスタ11にセットされる命令の
アドレスを示す。
【0023】フェッチアドレス制御部17は、フェッチ
アドレス、すなわち命令による処理のためにフェッチす
べきデータの主記憶アドレスを、フェッチ情報106を
用いて生成する。ベクトルカウントレジスタ18は、一
つのベクトル命令で処理されるべきベクトル要素の数を
保持する。ベクトルカウントレジスタ18にセットされ
る値は、ベクトルレジスタに収容しうる要素の数を超え
ることはできない。セレクタ19は、フェッチアドレス
制御部17からのフェッチ要求107と、後述するプリ
フェッチ制御部21からのプリフェッチ要求170の競
合を調停して、選択された要求をデータキャッシュ20
に送る。データキャッシュ20は、ベクトルデータや通
常のスカラデータを保持するためのキャッシュメモリで
ある。データキャッシュ20は、フェッチ要求107を
受けた時には、通常のキャッシュ動作を行なって、ベク
トル演算器30とデータを授受し、プリフェッチ要求1
70を受けた時には、要求されたが存在しないデータブ
ロックの転送を、主記憶制御装置80に要求する。ベク
トル演算器30は、幾つかのベクトルレジスタを備え、
ベクトルデータを高速で処理する。以上に述べた部分
は、従来技術に属し、本発明と直接の関係はないので、
それについてのこれ以上詳細な説明は省略する。
【0024】ベクトルデータのプリフェッチは、プリフ
ェッチ制御部21によって制御される。プリフェッチ制
御部21は、本発明の一特徴として、複数のエントリを
有するプリフェッチ情報保持部60を含む。これらのエ
ントリは、セクショニングのためのプログラムループに
より処理される複数のベクトルオペランドにそれぞれ割
当てられて、それぞれのベクトルオペランドのプリフェ
ッチに必要な情報を保持する。この情報は、ループの最
初のイタレーションの間に、各命令により与えられるフ
ェッチ情報106を対応するエントリにセットすること
により得られ、その後、プリフェッチの進行につれて更
新される。このような機能を遂行するために、プリフェ
ッチ制御部21は、命令アドレスレジスタ40からの命
令アドレス140と、デコーダ12からの特定のデコー
ド出力141及び142(後述)を受ける。プリフェッ
チ制御部21は、プリフェッチ情報保持部60の各エン
トリの内容を用いてプリフェッチアドレスを生成し、プ
リフェッチ要求170を発行する。
【0025】図2は、プリフェッチ制御部21の第1の
実施例の詳細を示す。セクション開始アドレスレジスタ
SS-IAR42は、セクション開始アドレスを登録するため
のレジスタであり、フラグ41は、このレジスタの内容
が有効か否かを示す。SS-IAR登録制御部44は、命令レ
ジスタ40からの相次ぐ命令アドレス140中のセクシ
ョン開始アドレスを登録するために、SS-IAR42への登
録のタイミングを制御する。セクション開始検出部43
は、SS-IAR42の内容と、命令アドレス140と、後述
するVLVCU命令がデコードされたことを示すデコーダ1
2からのis-VLVCU信号141を調べて、ループの最初の
イタレーション(第1セクション)を示す1st-exe信号
145と、2回目以降のイタレーション(第2以下のセ
クション)を示す2nd-exe信号146とを発生する。PFI
登録制御部45は、1st-exe信号145と、ベクトル命
令がデコードされたことを示すデコーダ12からのis-V
inst信号142とを受けて、プリフェッチ情報保持部6
0へのフェッチ情報106の登録を制御する。
【0026】セクション終了アドレスレジスタSE-IAR4
7は、セクション終了アドレスを登録するためのレジス
タであり、フラグ46は、このレジスタ47の内容が有
効か否かを示す。このレジスタ47は、1st-exe信号1
45の存在期間中、命令レジスタ40からの相次ぐ命令
アドレス140でその内容を置換し、最終的にはセクシ
ョン終了アドレスを登録する。セクション実行検出部4
8は、SS-IAR42の内容143、SE-IAR47の内容14
4、命令アドレス140及び2nd-exe信号146を受け
て、第2以下のセクションが実行中か否かを検出する。
【0027】先に概要を説明したプリフェッチ情報保持
部60は、複数のエントリを有し、各エントリは、当該
エントリの内容が有効か否かを示すフラグ61と、ベク
トル開始アドレス62と、ストライド長63と、語長6
4のフィールドからなる。エントリの個数は、1セクシ
ョン内で参照される主記憶上のベクトルオペランドの最
大数を考慮して決定されなければならない。インデクス
51の出力160は、プリフェッチ情報保持部60の複
数のエントリの一つを指定する。このインデクス51
は、インデクス制御部50により、PFI登録制御部45
の出力148、1st-exe信号145及び2nd-exe信号14
6に応じて更新される。開始アドレス更新部52は、1
セクション分のデータのプリフェッチが完了するたび
に、ベクトル開始アドレス62を更新して、次のセクシ
ョンのためのプリフェッチに備える。
【0028】プリフェッチ要否判定部65は、インデク
ス51により指定されたエントリのフラグ61の内容1
61と、セクション実行検出部48の出力149と、1s
t-exe信号145とに基づいて、プリフェッチを行なう
か否かを判断する。プリフェッチアドレス制御部70
は、インデクス51により指定されたエントリの内容1
63を用いて、相次ぐブロックのプリフェッチのために
必要なプリフェッチアドレス170を生成する。プリフ
ェッチアドレス制御部70は、また、各セクションの各
オペランドのプリフェッチの終了を判定するために、プ
リフェッチが必要な残りの要素の数を示すプリフェッチ
カウントレジスタ71を備える。
【0029】次に、前述した実施例の動作を、図4に示
された命令列を処理する場合を例にとって説明する。図
4に示された命令列は、ベクトルデータAの各要素をベ
クトルデータBの各対応する要素と乗算して、その結果
をベクトルデータCの位置に格納する、という処理を指
示する。これらのベクトルデータは、セクションサイズ
と比較して非常に長いと仮定する。
【0030】図4において、“L”は、指定されたスカ
ラデータ値を指定された汎用レジスタにロードするスカ
ラロード命令を表わし、“LA”は、指定されたアドレス
値を指定された汎用レジスタにロードするアドレスロー
ド命令を表わす。“VLVCU”は、セクションの処理に必
要な情報を所定のレジスタにセットするセクション準備
命令を表わす。すなわち、この命令は、指定された汎用
レジスタの内容がセクションサイズ以上ならば、セクシ
ョンサイズをベクトルカウンントレジスタにセットする
とともに、当該レジスタの内容をセクションサイズだけ
減じ、又は、指定された汎用レジスタの内容がセクショ
ンサイズより小さければ、その内容をベクトルカウント
レジスタに転送するとともに、当該レジスタの内容をセ
クションサイズだけ減じる。VLVCU命令は、本実施例の
ために想定されるアーキテクチャにおいて、セクション
の初期に必ず置かれることに留意されたい。
【0031】“VLD”は、指定されたベクトルオペラン
ドを指定されたベクトルレジスタにロードするベクトル
ロード命令を表わし、“VMD”は、指定されたベクトル
レジスタ内のデータを指定されたベクトルオペランドと
要素ごとに乗算して結果をこのベクトルレジスタに戻す
ベクトル乗算命令を表わし、“VSTD”は、指定されたベ
クトルレジスタの内容を指定されたベクトルオペランド
位置に格納するベクトルストア命令を表わす。“BC”
は、指定された汎用レジスタの内容が“0”より大きけ
れば指定された命令にジャンプし、さもなければ次の命
令に進む、条件付き分岐命令である。
【0032】“G0”ないし“G3”は汎用レジスタの識別
番号であり、“V0”はベクトルレジスタの識別番号であ
る。“N”はベクトルデータの全長、すなわち全要素数
であり、“A”、“B”及び“C”は、それぞれベクトル
オペランドA、B及びCの開始アドレスである。説明を
簡明にするため、ストライド長は“1”に固定されてお
り、また、語長もある値に固定されていると仮定する。
したがって、ストライド長と語長は、ベクトル命令中に
陽には示されない。各ベクトル命令は、その実行が終る
と、それが参照した汎用レジスタ内のベクトル開始アド
レスを、次のセクションで処理されるベクトル部分の開
始アドレスに更新する。
【0033】まず、図4に示されたベクトル命令列の第
1回目のループ(セクション)が実行される。このルー
プに入る前は、プリフェッチ情報保持部60には有効な
情報が何も登録されていない。したがって、第1回目の
ループの実行中は、所要のプリフェッチ情報をプリフェ
ッチ情報保持部60に新規に登録し、それからプリフェ
ッチを行なう必要がある。図5は、この登録動作とそれ
に続くプリフェッチ動作の詳細なタイムチャートを示
し、以下の説明の理解を容易にするであろう。
【0034】時が来て、ベクトル準備命令VLVCUが命令
レジスタ11にセットされ、それと同時に、この命令の
アドレスが命令アドレスレジスタ40にセットされる。
デコーダ12は、デコードされた命令がVLVCU命令であ
ることを示すis-VLVCU信号141を発生する。セクショ
ン開始検出部43は、命令アドレス140をSS-IAR42
の内容143と比較する。しかし、この時点において
は、SS-IAR42には有効な情報が登録されておらず、し
たがって、不一致が検出される。この不一致が検出さ
れ、かつ、is-VLVCU1信号141が受信されれば、ルー
プの第1回目の実行が始まったことが判明する。そこ
で、セクション開始検出部43は、1st-exe信号145
を“1”にセットする。1st-exe信号145が“1”に
なる時、SS-IAR登録制御部44は、set-SSIAR信号14
7を発生して、この時の命令アドレス140をSS-IAR4
2にセットし、同時に有効性フラグ41を“1”にセッ
トする。1st-exe信号145の立上がりに応答して、イ
ンデクス制御部50は、プリフェッチ情報保持部60の
エントリの新規指定を開始する準備のために、インデク
ス51を“−1”にセットし、かつ、プリフェッチ情報
保持部60の全エントリの有効性フラグ61を“0”に
リセットする。
【0035】VLVCU命令の実行が終了すると、VLD命令が
命令レジスタ11にセットされて、デコードされる。デ
コードの結果、ベクトルデータAをフェッチするための
フェッチ情報が、ベクトル開始アドレスレジスタ14、
ストライド長レジスタ15及び語長レジスタ16にセッ
トされる。デコーダ12は、また、デコードされた命令
がベクトルデータをフェッチする命令であることを示す
is-Vinst信号142を発生する。PFI登録制御部45
は、is-Vinst信号142と1st-exe信号145の同時存
在に応答して、set-PFI信号148を発生する。set-PFI
信号148に応答して、インデクス制御部50は、イン
デクス51を“1”だけインクリメントし、プリフェッ
チ情報保持部60のエントリの次のものを示すようにす
る。この場合には、インデクス51はエントリ“0”を
示すことになる。set-PFI信号148は、また、プリフ
ェッチ情報保持部60にも供給されて、インデクス51
の出力160が示すエントリ“0”に現在のフェッチ情
報106を登録し、同時に、このエントリの有効性フラ
グ61を“1”にセットする。このようにして、セクシ
ョン内の最初のベクトル命令のためのプリフェッチ情報
が、プリフェッチ情報保持部60の最初のエントリに登
録される。
【0036】続いて直ちに、今登録されたプリフェッチ
情報に基づいて、プリフェッチ動作が開始される。1st-
exe信号145と、インデクス51が示すエントリ
“0”の有効性フラグ61の出力(PFI-valid)161
とが共に“1”なので、プリフェッチ要否判定部64
は、PF-enable信号164を“1”にする。PF-enable信
号164が“1”であると、プリフェッチアドレス制御
部70は、インデクス51の示すエントリ内のベクトル
開始アドレス62、ストライド長63及び語長64を読
出し、これらの値をを用いて、所要データを含むデータ
ブロックの開始アドレスの形のプリフェッチアドレスを
生成する。この生成されたプリフェッチアドレスを含む
プリフェッチ要求170は、セレクタ19に送られる。
【0037】図1を参照して、セレクタ19は、フェッ
チアドレス制御部17からのフェッチ要求107と、プ
リフェッチアドレス制御部70からのプリフェッチ要求
170の間の競合を、フェッチ要求107を優先させる
ように調停する。競合がない場合には、プリフェッチ要
求が選択され、プリフェッチ信号120が“1”にされ
る。データキャッシュ20は、プリフェッチ信号120
が“0”の場合は通常のキャッシュ動作を行ない、ベク
トル演算器30とデータを授受する。他方、プリフェッ
チ信号120が“1”の場合には、データキャッシュ2
0は、要求されたアドレスのデータブロツクがデータキ
ャッシュ20内に存在するか否かを調べて、存在しなけ
れば、主記憶制御装置80にブロック転送要求122を
送る。
【0038】図2に戻り、プリフェッチアドレス制御部
70は、前述したように、プリフェッチカウントレジス
タ71を備える。プリフェッチカウントレジスタ71の
内容は、各セクションのための各オペランドのプリフェ
ッチ動作の始めにセクションサイズにセットされ、プリ
フェッチ動作の進行につれて、プリフェッチされた要素
の数ずつデクリメントされる。プリフェッチカウントレ
ジスタ71に最初にセットされた数の要素がプリフェッ
チされてしまうと、プリフェッチ終了を示すeof-PF信号
171が“1”になる。eof-PF信号171が“1”にな
ると、開始アドレス更新部52は、セクションサイズと
ストライド長63と語長64の積を現在のベクトル開始
アドレス62に加算し、その和を新たなベクトル開始ア
ドレス62として登録する。これは、次のセクションの
ためのプリフェッチ情報を準備しておくためである。
【0039】VLD命令の実行が終了すると、VMD命令が命
令レジスタ11にセットされて、デコードされ、そして
is-Vinst信号142が再び発生される。1st-exe信号1
45は“1”に維持される。PFI登録制御部45は、こ
れらの信号に応答してset-PFI信号148を発生する。s
et-PFI信号148は、インデクス51を“1”にインク
リメントし、次いで、このVMD命令により与えられたフ
ェッチ情報106を、プリフェッチ情報保持部60の新
たに指定されたエントリ“1”に登録する。その後直ち
に、プリフェッチ動作が、このエントリ“1”に登録さ
れた情報に基づいて、VLD命令の場合と同様にして行な
われる。
【0040】VMD命令の実行が終了すると、VSTD命令が
命令レジスタ11にセットされて、デコードされる。今
度は、インデクス51が“2”にインクリメントされ
て、このVSTD命令によって与えられたフェッチ情報10
6は、プリフェッチ情報保持部60のエントリ“2”に
登録される。その後直ちに、プリフェッチ動作が、この
エントリ“2”に登録された情報に基づいて、VLD命令
の場合と同様にして行なわれる。
【0041】最後に、BC命令が実行される。今度は、is
-Vinst信号142が発生されない。その結果、PFI登録
制御部45はset-PFI信号148を発生せず、したがっ
て、インデクス51のインクリメントも、プリフェッチ
情報保持部60への登録も、行なわれない。
【0042】セクション開始アドレスレジスタSS-IAR1
47は、VLVCU命令のアドレスを保存する。その理由
は、セット信号147が、1st-exe信号145が“1”
に立上がる時、すなわち、最初のVLVCU命令が検出され
た時にのみ、発生されるからである。他方、セクション
終了アドレスレジスタSE-IAR47の内容は、1st-exe信
号145が“1”である間、相次ぐ命令アドレス140
で置換される。しかし、1st-exe信号145は、後述す
るように、第2セクションの始めに“0”に変化し、そ
の時点でSE-IAR47の内容の更新は停止され、これによ
り、BC命令のアドレス、すなわちセクション終了アドレ
スが、SE-IAR47に登録される。
【0043】次に、図4に示されたループの第2回目以
降の実行中に行なわれるプリフェッチ動作を説明する。
この動作の詳細なタイムチャートは、図6に示されてい
る。まず、VLVCU命令が命令レジスタ11にセットさ
れ、同時にこの命令のアドレスが命令アドレスレジスタ
40にセットされる。SS-IAR42の内容143と命令ア
ドレス140が、セクション開始検出部43において比
較される。一致が検出され、かつ、is-VLVCU信号が受信
されれば、第2回目又はそれ以降のセクションの実行で
あることが判明する。そこで、セクション開始検出部4
3は、1st-exe信号145を“0”にリセットし、2nd-e
xe信号146を“1”にセツトする。2nd-exe信号14
6は以後“1”に保たれる。2nd-exe信号146の立上
がりは、インデクス51を“0”にリセットして、プリ
フェッチ情報保持部60の最初のエントリを示すように
する。セクション実行検出部48は、2nd-exe信号14
6に応答して、現在の命令アドレス140とSS-IAR42
の内容143とSE-IAR47の内容144を比較し、下記
の条件が満たされるか否かを調べる。 (SS-IAR44の内容)≦(命令アドレス140)≦(SE
-IAR47の内容)
【0044】この時は前記の条件が満たされるので、セ
クション実行検出部48は、in-sec信号149を“1”
にセットして、セクションの実行中であることを示す。
in-sec信号149と、インデクス51により示されたエ
ントリ“0”の有効性フラグ61の出力161とが共に
“1”なので、プリフェッチ要否判定部65は、PF-ena
ble信号164を“1”にする。PF-enable信号164が
“1”になると、第1回目の実行の場合と同様にして、
プリフェッチ動作が行なわれ、続いて、ベクトル開始ア
ドレス62が更新される。
【0045】プリフェッチ情報保持部60のあるエント
リに基づくプリフェッチ動作が終了し、かつ、2回目以
降のループが実行中である場合には、すなわち、eof-PF
信号171と2nd-exe信号146が共に“1”ならば、
インデクス制御部50は、これらの信号に応答してイン
デクス51をインクリメントして、プリフェッチ情報保
持部60の次のエントリを示すようにする。この新たに
指定されたエントリの有効性フラグ61が“1”で、か
つ、in-sec信号149も“1”であるならば、プリフェ
ッチ要否判定部65はPF-enable信号164を発生す
る。その結果、この新たに指定されたエントリ内のプリ
フェッチ情報に基づいて、プリフェッチ動作が直ちに開
始される。インデクス51が更に何回かインクリメント
された後、インクリメントされたインデクスの示すエン
トリが無効、すなわち、その有効性フラグ61が“0”
であることが発見される。有効性フラグ61が“0”で
あって、かつ、2nd-exe信号146が“1”であれば、
インデクス制御部50はインデクス51を“0”にリセ
ットし、プリフェッチ情報保持部60の最初のエントリ
を示すようにする。その結果、ループ内の最初のベクト
ル命令のためのプリフェッチが、自動的に開始される。
【0046】上記の動作を繰り返すことにより、第2回
目以降のセクションの実行に必要なベクトルデータは、
個々の命令の実行とは独立にプリフェッチされる。換言
すれば、諸ベクトル命令の実行中のみならず、それらの
前後及び中間に置かれたベクトル命令以外の命令の実行
中にも、ベクトルデータのプリフェッチが進行する。し
たがって、第2回目以降のセクションの実行に必要なす
べてのベクトルデータは、キャッシュメモリから得るこ
とができ、処理速度が大幅に向上する。
【0047】BC命令の実行によりループ外の命令が実行
された時には、命令アドレス140が前記の条件を満た
さなくなる。その結果、セクション実行検出部43はin
-sec信号149を“0”にリセットし、これによりPF-e
nable信号164が“0”となって、それ以上のプリフ
ェッチを抑止する。
【0048】図8は、本発明の利点を説明するため、種
々の条件の下で、図4に示された命令ループの実行とベ
クトルデータのプリフェッチの経過を、概念的に示す。
同図において、記号A0、A1、・・・、B0、B1、・・・、
C0、C1、・・・は、データブロックを表わす。英字はベ
クトルデータを識別し、数字はブロックを識別する。例
えば、A0は、ベクトルデータAのブロック0を表わす。
各セクションで3ブロックのデータが処理されると仮定
する。簡明のため、BC命令は省略されている。
【0049】すべてのデータがキャッシュメモリから得
られる(a)の場合には、主記憶からのデータ転送に要
する時間は完全に隠蔽され、したがって、最高の処理速
度が達成される。他方、所要データがキャッシュメモリ
に全く存在しない(b)の場合には、各データブロック
がそのつど主記憶から転送されなければならず、したが
って、キャツシュメモリの利点は全く失われ、処理速度
は最低である。
【0050】(c)は、〔従来の技術〕の項で述べた、
各ベクトル命令の実行中にその命令が要求するデータの
みをプリフェッチする場合を示す。この場合、〔発明が
解決しようとする課題〕の項で述べたように、各セクシ
ョンにおける各ベクトル命令の実行時に、最初のデータ
ブロックは、プリフェッチされていないので、主記憶か
ら転送されなければならない。したがって、処理速度に
はなお改善の余地がある。
【0051】(d)は、前述した本発明の実施例の場合
を示す。第1回目のループについては、(d)は(c)
と変りがない。しかしながら、第2回目以降のループに
おいては、本発明により、プリフェッチが個々の命令の
実行と非同期で行なわれる結果、ベクトル命令ではない
VLVCU命令の実行中に、早くもプリフェッチが開始され
る。したがって、第2回目以降のループは、ベクトルデ
ータがキャッシュメモリ内に存在する場合(a)と同じ
高速度で、処理することができる。
【0052】前述した実施例においては、第2セクショ
ンが始まった後は、プリフェッチがセクション(ループ
のイタレーション)と非同期に(先行して)進行する。
したがって、所要データは必ずプリフェッチされてい
る。しかしながら、セクション(イタレーション)の数
が増すと、プリフェッチされたがまだ処理されていない
データの量が増す。その結果、キャッシュメモリの容量
が不十分であると、未処理データが、新たにプリフェッ
チされたデータにより、キャッシュメモリから追い出さ
れる可能性がある。例えば、図9(a)を参照して、第
3回目のループにおいてVSTD命令がデータC8を処理して
いる時に、キャッシュメモリ内には、まだ処理されてい
ないプリフェッチデータA9ないしB9が存在する。もしも
キャッシュメモリがこれらのデータで満杯であると、A9
のデータは、B10がプリフェッチされる時に、キャッシ
ュメモリから追い出されることになる。
【0053】図3は、本発明の第2の実施例におけるプ
リフェッチ制御部21を示す。この実施例は、プリフェ
ッチ動作の各反復を各セクションの開始と同期させ、そ
れにより、プリフェッチされるデータの量を1セクショ
ン内で実際に処理されるデータの量に制限して、前記の
問題を解決する。
【0054】図3に示された実施例は、セクション開始
検出部49、インデクス制御部53及びプリフェッチ要
否判定部66が改変され、そして、SE-IAR47、有効性
フラグ46及びセクション実行検出部48が除去された
点においてのみ、図2に示された第1の実施例と異な
る。これらの相違は、第2以降のセクションにおけるプ
リフェッチ動作に相違をもたらし、第1セクションにお
けるプリフェッチ動作は変らない。図7は、第2セクシ
ョンにおける本実施例の動作のタイムチャートを示す。
【0055】図3及び7を参照して、セクション開始検
出部49は、第2以降の各セクションの始めに、SS-IAR
42の内容と命令アドレス140とが一致し、かつ、is
-VLVCU信号141が生じると、2nd-exe信号150を1
サイクルの間だけ“1”にする。すなわち、第1の実施
例における2nd-exe信号146が、第2以降の全セクシ
ョンの間“1”に保たれるのとは異なり、本実施例の2n
d-exe信号150は、第2以降の各セクションの始め
に、1サイクルの間だけ“1”になる。インデクス制御
部53は、2nd-exe信号150が“1”になった時点
で、インデクス51を“0”にリセットする。すなわ
ち、第1の実施例においては、インクリメントされたイ
ンデクス51の示すプリフェッチ情報保持部60のエン
トリが無効であればいつでも、インデクス51が“0”
にリセツトされるが、本実施例では、次のセクションが
始まるまでは、インデクス51が“0”にリセットされ
ない。プリフェッチ要否判定部66は、インデクス51
の示すプリフェッチ情報保持部60のエントリが有効な
らば、すなわち、PFI-valid信号161が“1”なら
ば、PF-enable信号164を“1”にして、プリフェッ
チアドレス制御部70を作動させる。第1の実施例でプ
リフェッチ要否判定部66に供給されたin-sec信号14
9は、本実施例では不要である。
【0056】以上のような変更の結果、第2の実施例に
おいて、プリフェッチ動作は各セクションの開始時にの
み再開される。したがって、図9(b)に示すように、
各セクションにおいて、当該セクションで処理されるべ
きデータのみがプリフェッチされ、それにより、プリフ
ェッチされるデータの量は必要最小限に抑えられる。し
かしながら、ループの最初にベクトル命令が置かれた場
合には、この命令のオペランドの最初のブロックをキャ
ッシュメモリから得ることはできない。したがって、キ
ャッシュメモリの容量が小さく、かつ、主記憶とキャッ
シュメモリの間のデータ転送時間が比較的短い場合に
は、この第2の実施例が有効である。
【0057】前述した両実施例では、各ベクトル命令が
単一の主記憶オペランドを指定するが、複数の主記憶オ
ペランドを指定するベクトル命令に対処できるように、
それらを変更することは容易である。その場合、PFI登
録制御部45は、is-Vinst信号142に加えて、複数の
主記憶オペランドを指定する命令を識別する信号(以下
is-VMOinst信号という)も、デコーダ12から受け、更
に、これら複数の主記憶オペランドの各第1要素のフェ
ッチ開始を示す信号を、命令実行回路(例えばフェッチ
アドレス制御部17)から受ける。PFI登録制御部45
は、is-VMOinst信号を受けた後、各主記憶オペランドの
第1要素のフェッチ開始を示す信号を受けるたびに、se
t-PFI信号148を発生して、対応する主記憶オペラン
ドのプリフェッチ情報の登録を行なう。プリフェッチ動
作は、前述した実施例と同様に、プリフエッチ情報登録
部60の相次ぐエントリの内容に基づいて、1オペラン
ドづつ行なわれる。
【0058】また、プリフェッチ情報保持部60へのプ
リフェッチ情報の登録は、前述したようなハードウェア
の代りに、ソフトウェアにより行なってもよい。そのた
めには、例えば、プリフェッチ情報保持部60の各エン
トリを命令で指定できる特別なレジスタとして構成し、
レジスタ間移動命令又はレジスタ−メモリ間移動命令を
用いて、プリフェッチ情報保持部60の相次ぐエントリ
に所要のプリフェッチ情報を格納する。第1セクション
の開始以前にこのような移動命令列を発行することによ
り、各ベクトル命令の実行以前に、プリフェッチ情報を
プリフェッチ情報保持部60に登録することができる。
ソフトウェアによる登録が行われる場合に、前述の両実
施例を、1st-exe信号145が2nd-exe信号146又は1
50と同様にプリフェッチ動作を開始させるように、変
更することは容易であり、それにより、前述した第2回
目以降のセクションの実行時におけるのと同様なプリフ
ェッチ動作が、第1回目のセクションの実行開始と共に
開始する。
【0059】前述した両実施例では、キャッシュメモリ
が、ストア動作において、キャッシュメモリと主記憶の
双方にデータがストアされる形式のものであると仮定し
た。もしも、キャッシュメモリが、データが主記憶にの
みストアされて、キャッシュメモリにはストアされない
形式のものであれば、ベクトルストア命令の主記憶オペ
ランドのプリフェッチは無意味である。したがって、こ
の場合には、ベクトルストア命令がis-Vinst信号142
を発生しないように、デコーダ12を構成すればよい。
【0060】セクションの開始を認識するために検出す
べき命令として、VLVCU命令の代りに、セクションの初
期に必ず置かれる他の命令を用いることも可能である。
しかしながら、第1の実施例においては、セクションの
最初に置かれる命令を用いる必要がある。第2の実施例
では、セクションの最初に置かれる命令を用いる必要は
ないけれども、セクション内で最初のベクトル命令より
も前に置かれる命令を用いるのが、プリフェッチを確実
にする観点から望ましい。
【0061】更に、前掲公開公報に記載されているよう
に、ストライド長もまた、プリフェッチ要否の判定条件
の一つのファクタとして用いることができる。例えば、
ストライド長が非常に大きい場合に、プリフェッチを抑
止してもよい。
【0062】第1の実施例において、SE-IAR47とセク
ション実行検出部48は、ベクトルデータの全要素数に
初期設定されるレジスタと、このレジスタの内容をプリ
フェッチされた要素数ずつデクリメントする回路と、こ
のレジスタの内容が“0”より大きいか否かを示す信号
を発生する回路とで、置き換えてもよい。ベクトルデー
タの全要素数は、図4に示されたプログラムの場合、汎
用レジスタG0に最初にセットされた“N”を転送するこ
とによって得られる。前記のデクリメントは、インデク
ス51が無効なエントリに達して“0”にリセットされ
る時に行なえばよい。プリフェッチされた要素の数、す
なわちデクリメント値は、セクションサイズに等しい。
前記レジスタの内容が“0”より大きくないことを前記
信号が示した時に、プリフェッチ要否判定部65はその
動作を終止する。
【0063】
【発明の効果】本発明によれば、プログラムループ(セ
クション)に含まれる複数のベクトル命令のオペランド
を、これらのオペランドが命令により要求される順序
で、しかも命令の実行と非同期に、プリフェッチするこ
とができる。したがって、各ベクトル命令のオペランド
は、当該命令の実行に先立って確実にプリフェッチさ
れ、その結果、所要のベクトルデータが常にキャッシュ
メモリに存在する場合とほぼ同等の高速度で、セクショ
ン化されたベクトル処理を実行することができる。
【0064】本発明の第1の実施態様では、プリフエッ
チは、更に、各セクションの実行、すなわちループの各
イタレーションともまた非同期に進行し、それにより、
充分早期のプリフェッチを確実にする。
【0065】本発明の第2の実施態様では、プリフェッ
チは、個々の命令の実行とは非同期に進行するが、次の
セクションのためのプリフェッチは、そのセクションの
実行開始まで抑止され、それにより、過度のプリフェッ
チが防止されて、キャッシュメモリを効率良く利用する
ことができる。
【0066】また、本発明の一態様においては、プリフ
ェッチのための主記憶参照情報が、最初のセクションの
実行中に、ハードウェアにより自動的に登録され、それ
により、ソフトウェアの変更なしにプリフェッチの効果
を享受することができる。
【0067】あるいは、本発明の他の態様によれば、プ
リフェッチのための主記憶参照情報が、ソフトウェアに
より、最初のセクションの実行開始前に登録され、それ
により、プリフェッチの効果を最初のセクションから完
全に享受することができる。
【図面の簡単な説明】
【図1】本発明によるプリフェッチ制御装置を含む計算
機システムのブロック図。
【図2】本発明によるプリフェッチ制御装置の第1の実
施例を示すブロック図。
【図3】本発明によるプリフェッチ制御装置の第2の実
施例を示すブロック図。
【図4】セクション化されたベクトル処理のためのベク
トル命令列の一例を示す図。
【図5】最初のセクションの実行中における本発明の第
1の実施例の動作を示すタイムチャート。
【図6】2回目以降のセクションの実行中における本発
明の第1の実施例の動作を示すタイムチャート。
【図7】2回目以降のセクションの実行中における本発
明の第2の実施例の動作を示すタイムチャート。
【図8】本発明の効果を説明するためのタイムチャー
ト。
【図9】本発明の第1及び第2の実施例の相違を説明す
るためのタイムチャート。
【符号の説明】
12…命令デコーダ、14〜16…ベクトルオペランド
のフェッチのための主記憶参照情報、17…フェッチア
ドレス制御部、20…データキャッシュ、21…プリフ
ェッチ制御部、40…命令アドレスレジスタ、42…セ
クション開始命令アドレスレジスタ(SS-IAR)、43、
49…セクション開始検出部、44…SS-IAR登録制御
部、45…プリフェッチ情報登録制御部、47…セクシ
ョン終了命令アドレスレジスタ、48…セクション実行
検出部、50、53…インデクス制御部、51…インデ
クス、52…開始アドレス更新部、60…プリフェッチ
情報保持部、62〜64…プリフェッチのための主記憶
参照情報、65、66…プリフェッチ要否判定部、70
…プリフェッチアドレス制御部、80…主記憶制御部、
81…主記憶

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】主記憶装置と、ベクトル演算器と、前記主
    記憶装置と前記ベクトル演算器の間に設けられたキャッ
    シュメモリとを有する計算機システムにおいて、セクシ
    ョン化されたベクトル処理が複数のベクトル命令を含む
    命令列を反復実行することによって遂行される時に、所
    要のベクトルオペランドを前記主記憶装置から前記キャ
    ッシュメモリにプリフェッチするための、 複数のエントリを有する情報保持手段と、 前記複数のベクトル命令により指定された複数のベクト
    ルオペランドのプリフェッチのために必要な主記憶参照
    情報を、これらのベクトルオペランドが命令により要求
    される順序で前記複数のエントリの相次ぐ一つずつに登
    録する手段と、前記複数のエントリの一つを指示する指
    示手段と、 前記指示手段による指示を変更する手段と、 命令の実行と非同期に動作し、前記指示手段により指示
    されるエントリ内の主記憶参照情報に基づいてプリフェ
    ッチを要求する手段と、 あるエントリ内の主記憶参照情報に基づくプリフェッチ
    が完了した時に、前記指示変更手段を介して前記指示手
    段による指示を次のエントリを指示するように更新する
    手段とを備える、 ベクトルデータプリフェッチ制御装置。
  2. 【請求項2】請求項1において、あるエントリ内の主記
    憶参照情報に基づくプリフェッチが完了した時に、当該
    エントリの内容を、対応する命令の次の実行時に必要な
    ベクトルオペランドのプリフェッチのために必要な主記
    憶参照情報に更新する手段を更に備える、ベクトルデー
    タプリフェッチ制御装置。
  3. 【請求項3】請求項2において、前記指示変更手段は、
    前記登録手段による登録の完了後、更新された前記指示
    手段により指示されるエントリが有効な情報を保持して
    いない時に、前記指示手段による指示を前記複数のエン
    トリの最初のものを指示するように更新する、ベクトル
    データプリフェッチ制御装置。
  4. 【請求項4】請求項3において、前記命令列の反復実行
    の終了を検出する手段と、前記命令列の反復実行の終了
    が検出された時に前記プリフェッチ要求手段の動作を終
    止させる手段とを更に備える、ベクトルデータプリフェ
    ッチ制御装置。
  5. 【請求項5】請求項4において、前記反復実行の終了を
    検出する手段は、前記命令列の最初の命令のアドレスと
    最後の命令のアドレスを保持する手段と、実行中の命令
    のアドレスを前記アドレス保持手段中のアドレスと比較
    して実行中の命令が前記命令列に属するか否かを判定す
    る手段とを含む、ベクトルデータプリフェッチ制御装
    置。
  6. 【請求項6】請求項3において、前記命令列の反復実行
    によって処理されるべきベクトルデータの全長とプリフ
    ェッチされたベクトルデータの長さの差を計算する手段
    と、前記差が所定値より小さくなった時に前記プリフェ
    ッチ要求手段の動作を終止させる手段とを更に備える、
    ベクトルデータプリフェッチ制御装置。
  7. 【請求項7】請求項2において、前記指示変更手段は、
    前記登録手段による登録の完了後、更新された前記指示
    手段により指示されるエントリが有効な情報を保持して
    いない時に、指示の更新を停止し、前記命令列の次の実
    行が開始した時に、前記指示手段による指示を前記複数
    のエントリの最初のものを指示するように更新する、ベ
    クトルデータプリフェッチ制御装置。
  8. 【請求項8】請求項7において、前記命令列の最初の命
    令のアドレスを保持する手段と、実行中の命令のアドレ
    スと前記最初の命令のアドレスの一致を検出して前記命
    令列の次の実行の開始を検出する手段とを更に備える、
    ベクトルデータプリフェッチ制御装置。
  9. 【請求項9】請求項1ないし8のいずれかにおいて、前
    記登録手段は、前記命令列の最初の実行期間を検出する
    手段と、各命令の各ベクトルオペランドのフェッチを検
    出する手段と、前記両検出手段が前記命令列の最初の実
    行期間中にベクトルオペランドのフェッチが開始される
    ことを示すたびに、前記指示変更手段を介して前記指示
    手段による指示を次のエントリを指示するように更新
    し、かつ、実行中のベクトル命令により与えられるベク
    トルオペランドのフェッチのための主記憶参照情報を前
    記指示手段により指示されるエントリに格納する手段と
    を含む、ベクトルデータプリフェッチ制御装置。
  10. 【請求項10】請求項9において、前記プリフェッチ要
    求手段は、前記登録手段があるベクトルオペランドのた
    めの主記憶参照情報をあるエントリに格納すると直ち
    に、この格納された主記憶参照情報に基づいてプリフェ
    ッチを要求する、ベクトルデータプリフェッチ制御装
    置。
  11. 【請求項11】請求項1ないし8のいずれかにおいて、
    前記登録手段は命令によって制御される、ベクトルデー
    タプリフェッチ制御装置。
JP5060035A 1993-03-19 1993-03-19 ベクトルデータプリフェッチ制御装置 Pending JPH06274525A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5060035A JPH06274525A (ja) 1993-03-19 1993-03-19 ベクトルデータプリフェッチ制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5060035A JPH06274525A (ja) 1993-03-19 1993-03-19 ベクトルデータプリフェッチ制御装置

Publications (1)

Publication Number Publication Date
JPH06274525A true JPH06274525A (ja) 1994-09-30

Family

ID=13130421

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5060035A Pending JPH06274525A (ja) 1993-03-19 1993-03-19 ベクトルデータプリフェッチ制御装置

Country Status (1)

Country Link
JP (1) JPH06274525A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4101749A1 (de) * 1990-01-23 1991-07-25 Mitsubishi Heavy Ind Ltd Fahrbare stahlrohr-fraesschneidemaschine
JP2014532221A (ja) * 2011-09-28 2014-12-04 エイアールエム リミテッド 乳幼児のためのインタラクションサービスを提供する装置及び方法、これを利用したシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4101749A1 (de) * 1990-01-23 1991-07-25 Mitsubishi Heavy Ind Ltd Fahrbare stahlrohr-fraesschneidemaschine
JP2014532221A (ja) * 2011-09-28 2014-12-04 エイアールエム リミテッド 乳幼児のためのインタラクションサービスを提供する装置及び方法、これを利用したシステム

Similar Documents

Publication Publication Date Title
EP0179245B1 (en) Architecture for small instruction caches
US4471433A (en) Branch guess type central processing unit
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
EP0135844A2 (en) A data processor with a branch target instruction storage
KR920006275B1 (ko) 데이타 처리 장치
US20020078330A1 (en) Computer system for executing branch instructions
JPH02224025A (ja) コンピューターシステム
JPH0334024A (ja) 分岐予測の方法とそのための装置
JPS6341093B2 (ja)
WO1990014629A2 (en) Parallel multithreaded data processing system
GB2293671A (en) Reducing delays due to branch instructions
US20040186985A1 (en) Method and apparatus for branch prediction based on branch targets
US20040186960A1 (en) Computer processor data prefetch unit
JPH05233271A (ja) データプロセッサ
JP2002516425A (ja) デジタルプロセッサ用制御装置
US20050102659A1 (en) Methods and apparatus for setting up hardware loops in a deeply pipelined processor
KR20010022661A (ko) 메모리 및 데이터 예비인출 유닛을 갖는 프로세서
US5381532A (en) Microprocessor having branch aligner between branch buffer and instruction decoder unit for enhancing initiation of data processing after execution of conditional branch instruction
JP2003223359A (ja) 演算処理装置
JP2001060152A (ja) 分岐予測を抑止する情報処理装置および方法
JP2723238B2 (ja) 情報処理装置
JPH06274525A (ja) ベクトルデータプリフェッチ制御装置
US7389405B2 (en) Digital signal processor architecture with optimized memory access for code discontinuity
US5243705A (en) System for rapid return of exceptional processing during sequence operation instruction execution