JPS601655B2 - デ−タプリフェツチ方式 - Google Patents

デ−タプリフェツチ方式

Info

Publication number
JPS601655B2
JPS601655B2 JP52142631A JP14263177A JPS601655B2 JP S601655 B2 JPS601655 B2 JP S601655B2 JP 52142631 A JP52142631 A JP 52142631A JP 14263177 A JP14263177 A JP 14263177A JP S601655 B2 JPS601655 B2 JP S601655B2
Authority
JP
Japan
Prior art keywords
prefetch
operand
cache memory
instruction
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.)
Expired
Application number
JP52142631A
Other languages
English (en)
Other versions
JPS5475964A (en
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.)
Toshiba Corp
NEC Corp
Original Assignee
Toshiba Corp
Nippon Electric Co 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 Toshiba Corp, Nippon Electric Co Ltd filed Critical Toshiba Corp
Priority to JP52142631A priority Critical patent/JPS601655B2/ja
Publication of JPS5475964A publication Critical patent/JPS5475964A/ja
Publication of JPS601655B2 publication Critical patent/JPS601655B2/ja
Expired legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 本発明はキャシュメモリを有する情報処理装置における
データプリフェッチ方式に関する。
従来、先行制御における命令のプリフェッチに関する技
術は多いが、オペランドのプリフヱッチに関する技術に
ついては極めて少ない。ところがキャシュメモリを有す
る情報処理装置では、データ処理の実行中に必要なオペ
ランドを、その都度主メモリとブロックで対応づけられ
ているキャシユメモリにアクセスするが、キャシュメモ
リにそのオペランドが存在しない場合には主メモリから
キャシュメモリーこブロック転送がなされ、この間処理
動作は特さたれてしまう。
この為、キャシュメモリを有する情報処理装置において
はキャシュメモリ内に必要なデータができるだけ多く記
憶していることが望ましいわけであり、これを実現する
方法として近い将釆必要と思われるデータをキヤシュメ
モリにブロック転送するプリフェッチ手段が必要とされ
る。本発明は上記プリフェツチの制御方式に関するもの
で、特に長いオペランドあるいは複数のオペランドの処
理を実行する命令で有効な情報処理装置におけるプリフ
ェッチ方式を提供することを目的とする。
そして、本発明では先行制御の状態に関係なく、現在実
行している命令のオペランドのプリフェッチを行なう特
徴を有する。
また、本発明ではプリフェツチによる障害を取り除く機
能を有する。即ち、プリフェッチの実行中はプロセッサ
をストップしないため、プリフェッチの動作が完了する
前に同一ブロックに対して、新なREAD要求又はWR
ITE要求が発生する可能性がある。従って、前記RE
AD要求がプリフェッチの動作中に発生されると、主メ
モ,IJの同一ブロックに対し2重のアクセスが行なわ
れるため時間の無駄が生ずる。また、WRITE要求が
プリフェツチ中に行なわれると、主メモリとキャシュメ
モリの内容に矛盾をきたすことになる。そこで、本発明
では前記の障害の発生を防止するため、プリフェッチと
同一ブロックに対してデータ転送要求が発生した場合、
プリフェッチが終了するまで、前記データ転送要求の処
理を待機させる手段を具備するものである。
以下、図面を参照し本発明のデータプリフェッチ方式を
詳述する。
第1図はキャシュ・メモリを有する情報処理装置の概略
構成を示したブロック図である。
同時において1川ま主メモリ、11は主メモリー0とブ
ロックで対応づけられたデータを保持するキャシュ・メ
モリ、なおキヤシユ・メモリ11は主メモリー0より高
速アクセス出来るメモリ素子によって構成されているこ
とは言うまでもない。12は演算を実行する演算制御部
、13は命令の解読、命令の分岐制御、オペランドのア
ドレス計算、オペランドアクセスなどを実行する命令制
御部、14は命令制御部13または演算制御部12とキ
ャシュ・メモリー1あるいは主メモリー0とのデータ転
送を制御するメモリアクセス制御部、15はマイクロプ
ログラム制御方式に必要な制御記憶部である。なお、第
1図ではマイクロプログラム制御による情報処理装置の
実施例を示したものであるが、本発明は制御記憶部15
を有しないハードウェア制御による情報処理装置であっ
ても十分実施し得るものである。第2図は、本発明のプ
リフェッチ方式が適用される命令形式の一実施例である
同図で示されている命令語は命令コードとオペランド1
乃至オペランド3とによって構成されており、前記オペ
ランドー乃至オペランド3中のAI,A2,A3は各々
のアドレス部、T1,T2,T3は各々のデータタイプ
(1坊隼数の符号形式、1坊隼数または文字のビット長
を示す。)、N1,N2,N3は各々の10進数または
文字のオペランド長を示す。そして、この命令はオペラ
ンドーとオペランド2とのデータを演算し、結果をオペ
ランド3にストアする命令と仮定する。第3図は第1図
に示した情報処理装置において本発明のプリフェッチ方
式が適用される先行制御の深さを3段にした場合の実施
例を示したものである。
同図において、命令制御部13で行なわれる処理動作を
1サイクルと称し、この1サイクルは命令の解読、オペ
ランドアドレスの計算、メモリコマンド発生、ページア
ドレスの実アドレスへの変換等を実行する。また、メモ
リアクセス制御部14、キャシュメモリ11、主メモリ
10で行なわれる処理動作をCサイクルと称し、このC
サイクルでは前記1サイクルで発生されたデータ転送要
求を受取り、キャシュメモリ11あるいは必要に応じて
主メモリー0のアクセスを行ない、必要ならばアクセス
したデータを演算制御部14へ転送する動作を行なう。
更に、演算制御部14で行なわれる処理動作をEサイク
ルと称し、このEサイクルはメモリアクセス制御部14
から転送されたデータを用いて演算の実行を行なう。さ
て、上託した第3図で示される3段の先行制御方式をと
り、第2図の命令を実行したときの処理動作を第4図の
タイミングチャートを参照し説明する。
第4図において、1,C,Eは第3図の1サイクル、C
サイクル、Eサイクルでの処理に対応する。そして、本
発明の先行制御を第2図の命令の実行に適用すると、先
ず11にて命令の最初の語、命令語がキャシュメモリ1
1のインストラクションバッフア(図示せず)から命令
制御部亀3に送られ、その命令の解読が行なわれる。こ
の11時点で命令制御部13は複数命令語である事、ま
たプリフェツチを行なう命令である事が判断される。次
に12では命令の次の語(オペランドーに関する諸)が
キャシュメモリ11から命令制御部13に送られ、オペ
ランドアドレス生成回路によってオペランド1のアドレ
スが計算される。
このオペランド1のアドレスはページアドレス変換回路
によってアドレス変換され、そのアドレスがメモリアド
レス制御部14に転送されると同時に、命令制御部13
内のメモリコマンド発生回路からブリフェツチ要求のコ
マンドをメリアクセス制御部14に転送する。次に13
では命令の次の語(オペランド2に関する諸)がキャシ
ュメモリ11から命令制御部13に転送され、上記と同
様にオペランドアドレス生成回路によってオペランド2
のアドレスが計算される。
このオペランド2のアドレスもページアドレス変換回路
によってアドレスが変換され、そのアドレスとメモリコ
マンド発生回路からのプリフェッチ要求のコマンドをメ
モリアクセス制御部14に転送する。この13と同じタ
イミングにてCサイクルのCIが並列的に処理される。
即ち、CIでは12で発生したプリフェッチ要求を受取
ったメモリアクセス制御部14は要求されたアドレスを
有するブロックがキヤシユメモリ11に存在するかどう
かを調べ、もしキヤシユメモリ11に存在しない場合は
主メモリ10に対してブロック転送要求を発生する。こ
のブロック転送によるデー外まキャシュメモリ11の対
応するブロックに書込まれるが、演算制御部12には転
送されない。一方、要求されたアドレスを有するブロッ
クがキャシュメモリ11に存在するならばメモリアクセ
ス制御部14は、前記プリフェツチ要求に対して何の処
理も行なわれない。
次に14では、命令のオペランド3に関する語がキヤシ
ュメモリ11から命令制御部13に送られ、オペランド
3のアドレス計算が行なわれる。
オペランド3のアドレスはストアオペランドを示すもの
であるため、プリフェツチの必要はない。この14と同
じタイミングであるC2では、上記13で発生したオペ
ランド2のプリフェッチ要求の処理が行なわれる。この
プリフェツチ要求の処理は上記したCIで実行したオペ
ランド1のプリフェッチ要求と同一の処理が行なわれる
。そして、オペランド2に対するプリフェツチ要求した
アドレスを有するブロックがキャシュメモリ11に存在
しない場合は主メモリー0からブ。ック転送が行なわれ
、キャシュメモリ11に確保される。最後にEサイクル
で処理されるEI乃至ENでは実際の命令の実行が行な
われる。
即ち、上記12乃至14において計算されたアドレスで
オペランドァクセス、演算の実行、結果のストアを行な
つ。上記の実施例では、先行制御を初期の1サイクルの
段階でプリフェッチ要求を発生させるもので、第4図の
12および13にオペランド1およびオペランド2のプ
リフェッチ要求を示すコマンドを命令制御部13内のメ
モリコマンド発生回路からメモリアクセス制御部14に
発生していた。
しかしながら、プリフェツチ要求は上記実施例に限定さ
れるものではなく、例えば第1図の制御記憶部15にブ
リフェッチ要求を発生する機能を具備させてもさしつか
えない。なお、制御記憶部15を有しない情報処理装置
では第1図の演算制御部12にプリフェッチ要求を発生
する機能を具備させてもさしつかえない。さて、次に前
記した制御記憶部15にプリフェッチ要求を発生する機
能を具備せしめた場合の処理動作を第5図のタイミング
チャートを参照し説明する。
なお、第5図に示すタイミングチャートはオペレーティ
ングシステムなどで使用されている制御命令の実行を実
施例として示したものである。前記制御命令ではA,B
,C、の3つのオペランド‘こ対して前処理、オペラン
ドアクセス、演算処理が必要とされている命令であって
、この場合のプリフェッチを以下に説明する。先ず、1
サイクルでは命令の解読が行なわれる。
次のCサイクルではオペランドアクセスが行なわれ、こ
の時プリフェツチは行なわれない。次のEサイクルでは
この命令の主な実行を行なう。即ち、EIの期間でオペ
ランドAに関する前処理が行なわれる。次にE2の期間
でオペランドBの前処理と同時にオペランドAのプリフ
ェッチが行なわれる。次にE3の期間でオペランドAの
アクセスと演算処理が行なわれる。このE3の段階では
前記E2にてオペランドAのプリフェツチが行なわれて
いるため、オペランドAのアクセスと演算処理が実行す
ることが出釆る。次にE4の期間でオペランドCの前処
理と同時にオペランドBのプリフエツチが行なわれる。
次にE5の期間ではオペランドBのアクセスと演算処理
が行なわれる。このE5の段階では前記E4にてオペラ
ンドBのプリフェツチが行なわれているため、オペラン
ドBのアクセスと演算処理が実行することが出来る。最
後にE6の期間ではオペランドCのアクセスと演算処理
が行なわれる。前記のようにオペランドアクセス以前に
必然的に行なうべき他の仕事があるとき、これを積極的
に前段にもってきて、且つ同時にプリフェツチを行なう
ことにより優れた効果を発揮することが出釆る。上記し
たプリフェッチ動作をより効果的に使用するためには「
プリフェッチによるブロック転送が完全に終了してから
実際のオペランドアクセスが行なわれた方がよい訳だが
、プリフェッチに対する主メモリ10のデータ転送が遅
れた時、またプリフヱッチ後のオペランドアクセスが命
令制御部13または演算制御部12から早い時期に出さ
れた時などは、プリフェツチが終了しないうちに新たな
オペランドアクセスが出る可能性がある。
つまり、プリフェッチが終了していないうちに同一フロ
ッ外こ対して新たなオペランドアクセスが行なわれた場
合、2重のデータ転送要求が主メモリの同一ブロックに
出力されることがあり得る。この様な状態になった時、
プリフェッチの効果がなくなるばかりでなく、後のオペ
ランドアクセスに遅れを生じさせることも起り得る。ま
た、何らかの原因でプリフェツチと同一ブロックに書き
込み要求が発生したとき、書き込み要求がプリフェッチ
終了以前に受けつけられると主メモリ10とキャシュメ
モリ11の内容に矛盾をきたすことになる。この場合は
プリフェツチによるキヤシュメモリ11の書き込みが終
了してから前記書き込み要求によるキャシュメモリへの
書き込みを行なわなければならない。本発明はキャシュ
ディレクトリ一に工夫をこらし、プリフェツチ要求のコ
マンド‘こよるデータ転送が完了しないうちにキャシュ
メモリの同一ブロックに対して新たなデータ転送要求が
発生した時に、主メモリの同一ブロックに対して2重の
アクセスを防止するための機能を有する。
第6図は上記したキャシュディレクトリ一の実施例を示
すものである。
同図において、AO乃至ANは仮想アドレス、VO乃至
VNはディレクトリ−の内容が有効かどうかを示すバリ
ディティビット、PO乃至PNはどのブロックを使用す
るかをそのアルゴリズムで決められるラワンド・ロビン
カウンタ以外にプリフェッチ要求によるデータ転送が完
了していないことを示すペンディングビット、RRは次
に使用されるブロック。ケーションを示す。この第6図
で示したキャシュディレクトリ−を用いたときの第1図
の情報処理装置におけるデータ転送の制御を第7図のフ
ロチャートを参照し以下に説明する。本発明ではデータ
転送要求が発生したとき前記ペンディングビットを調べ
、もし前記ペンディングビットがセットしていれば、以
前に同一ブロックに対してプリフィッチ要求が出力して
、前記ブロックの転送が終了していないことを意味し、
データ転送要求の処理は前記ペンディングビットがリセ
ット、即ちプリフエツチ動作が終了するまで待機される
。即ち、第7図において、命令制御部13または演算制
御部12からメモリアクセス制御部14にデータ転送要
求が転送されて来ると、メモリアクセス制御部14は対
応するブロックのペンディングビットをSIで調べる。
ペンディングビットが1で且つディレクトリ‐がビツト
した時は同一ブロックがプリフェッチにによるデータ転
送待ちであるため、ペンディングビットが0になるまで
前記データ転送要求は受けつけられない。ペンディング
ビットが0となりデータ転送要求が受けつけられると、
メモリコマンドのタイプがS2で調べられる。
例えば前記メモリコマンドがライトコマンドであるなら
ば対応するブロックがキャシュメモリ11に存在するか
どうかをS3で調べられる。そして、対応するブロック
がキャシュメモリ11に存在(ヒット)する時はキャシ
ュメモリ11の対応するブロックにデータをS4で書き
込み、S5で主メモリー0に対してライトデータ転送要
求を出す。しかし対応するブロックがキャシュメモリ1
1に存在しない(ミスヒット)の時はキャシュメモリ1
1へのデータの書き込みは行なわず、S5で主メモリー
01こ対してライトデータ転送要求を出す。そしてライ
ト動作は終了する。次に、メモリコマンドのタイプがS
2で調べた時、リードコマンドであるならばS6にて普
通のリード要求か、あるいはプリフェツチ要求かを調べ
る。
そして普通のリード要求のときは対応するフロックがキ
ャシュメモリ11に存在するかどうかをS7で調べ、存
在する(ヒット)時はS8にてキャシュメモリ11の対
応するブロックをアクセスし、その読み出したデータを
演算制御部12または命令制御部13に転送し終了する
。一方S7で調べた結果対応するブロックがキャシュメ
モリ11に存在しない(ミスヒット)の場合は、S9に
て演算制御部12命令制御部13の実行を停止せしめ、
SI川こて王〆モリ101こ対してリード要求を発生す
る。SIIでの主メモリ10からljードデータの転送
が完了すると、S12にてキャシュメモリ11の対応す
るブロックに前記リードデータを書き込み、更にSI3
にてディレクトリ−の対応するブロックのバリデイティ
ビツトをセットする。前記により対応するブロックがキ
ャシュメモリ11に確保されると、SI4にて前記リー
ドデータを演算制御部12または命令制御部13へ転送
され、S15にて演算制御部12、命令制御部13の実
行を再開し終了する。
ところで、前記S6においてプリフェッチのコマ、ンド
であることを判断した時の処理はS16に進み、前記S
16にて対応するブロックがキャシュメモリ11に存在
するかどうかを調べる。そして、キャシュメモリ11に
対応するブロックが存在する(ヒット)時はプリフェッ
チコマンド}こ対し何の動作も行なわず終了する。しか
し、対応するブロックがキャシュメモリ11に存在しな
い(ミスヒット)場合はS17にてディレクトリ−の対
応するペンディングビットをセットし、更にS18にて
主メモリ1川こ対してリード要求を発生する。このリー
ド要求はS9乃至SI5に示した普通のリード要求処理
と異なり、演算制御部12、命令制御部13の実行動作
は停止されることなく続行されている。そして、SI9
での主メモリ10からのりードデータ転送が完了すると
、S20もこて前記リードデータはキャシュメモリ11
の対応するブロックに書き込まれる。この時点では演算
制御部12または命令制御部13への転送は行なわれな
い。次に、S21にてディレクトリ−の対応するブロッ
クのペンディングビットがリセットし、且つバリディビ
ットをセットして動作を終了する。
以上、説明したように、本発明によれば以下に示す特徴
と効果を有するものである。第1に本発明はプリフェツ
チ要求発生のアルゴリズムは命令実行中の有効な時期に
現在実行中の命令が近い将来必要とされるオペランドも
こ対して発生される。
このため、将来の先行制御方式をとる情報処理装置の中
で行なわれる本来のプリフェッチあるいは先行制御の空
き時間を利用して行なうプリフェツチと異なり独自のも
のである。第2に長いオペランド、複数オペランドの命
令に対するプリフェッチに優れた効果を発揮する。即ち
、十進数命令、文字を扱う命令、オベレーテイングシス
テムで使用される制御命令などではオペランドに長く複
数にまたがることが多い。本発明はこのような命令の実
行中にプリフェッチ要求を出すタイミングを容易に選べ
ることができる。第3にプリフヱッチするオペランドの
長さを任意に選択できる。即ち、本発明では個々の命令
の実行中にプリフェツチ要求が出されるためその命令に
合った長さのオペランドをプリフェツチすることが可能
である。第4にプリフェッチされたデータが使用される
確率が極めて高い。
従来の先行制御の中で行なわれるブリフェッチは分岐命
令による分岐が意に反した場合は、その以前に出された
プリフェツチが意味を持たなくなることがあり得る。し
かし本発明では、命令の実行中にその命令が近い将来必
要とされるべきデータに対してプリフェッチ要求が発生
されるため、プリフヱツチされたデータが使用される確
率は極めて高い。
第5にプリフェッチ要求のコマンドもこよるデータ転送
が完了しないうちに、キャシュメモリの同一ブロックに
対して新たなデータ転送要求が発生したとしても、主メ
モリの同一ブロックに対する2重のアクセスは防止する
ことが出来る。
【図面の簡単な説明】
第1図は本発明のプリフェツチ動作を適用する情報処理
装置のブロック図、第2図は本発明のプリフヱッチ動作
を必要とする形式の一実施例を示す図、第3図は第1図
で示した情報処理装置を処理サイクル毎に分割したブロ
ック図、第4図は第2図に示した命令形式のプIJフェ
ッチ処理を説明するタイミング図、第5図は他のプリフ
ェッチ処理を説明するタイミング図、第6図は本発明の
プリフェッチ処理に適用するキャシュディレクトリ一の
実施例を示す図、第7図は第6図のキャシュディレクト
リ一を有する第1図の情報処理装置の動作手順を示した
フローチャートである。 10……主メモリ、11……キヤシユメモリ、12・・
・・・・演算制御部、13・・・・・・命令制御部、1
4..・.・・メモリアクセス制御部。 オー図 オZ図 グミ図 矛4図 次5図 次6図 次7図

Claims (1)

    【特許請求の範囲】
  1. 1 主メモリと、この主メモリとブロツクで対応づけら
    れたデータを保持するキヤツシユメモリと、長いオペラ
    ンドあるいは複数ロケーシヨンに存在するオペランドの
    処理を行う命令と、この命令の実行中に近い将来必要と
    するオペランドのデータがキヤツシユメモリに存在しな
    い場合、前記オペランドのデータを有する主メモリから
    ブロツク転送によりキヤツシユメモリに格納するプリフ
    エツチ手段と、前記プリフエツチ手段によるブロツク転
    送が終了する前に同一ブロツクに対して新たなデータ転
    送要求が発生した場合、前記プリフエツチ手段による前
    記キヤツシユメモリへのブロツク転送が終了するまで前
    記データ転送要求の処理を待たせる手段とを具備するこ
    とを特徴とするデータプリフエツチ方式。
JP52142631A 1977-11-30 1977-11-30 デ−タプリフェツチ方式 Expired JPS601655B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP52142631A JPS601655B2 (ja) 1977-11-30 1977-11-30 デ−タプリフェツチ方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP52142631A JPS601655B2 (ja) 1977-11-30 1977-11-30 デ−タプリフェツチ方式

Publications (2)

Publication Number Publication Date
JPS5475964A JPS5475964A (en) 1979-06-18
JPS601655B2 true JPS601655B2 (ja) 1985-01-16

Family

ID=15319824

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52142631A Expired JPS601655B2 (ja) 1977-11-30 1977-11-30 デ−タプリフェツチ方式

Country Status (1)

Country Link
JP (1) JPS601655B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6243060U (ja) * 1985-09-03 1987-03-14

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5786180A (en) * 1980-11-17 1982-05-29 Hitachi Ltd Memory device having address converting mechanism
JPS62102344A (ja) * 1985-10-29 1987-05-12 Fujitsu Ltd バツフア・メモリ制御方式
JPS63110946U (ja) * 1987-12-10 1988-07-16
US6912650B2 (en) 2000-03-21 2005-06-28 Fujitsu Limited Pre-prefetching target of following branch instruction based on past history
JP5593647B2 (ja) * 2009-07-30 2014-09-24 日本電気株式会社 情報処理装置、ロード命令の遅延判定方法、ロード命令の遅延判定プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6243060U (ja) * 1985-09-03 1987-03-14

Also Published As

Publication number Publication date
JPS5475964A (en) 1979-06-18

Similar Documents

Publication Publication Date Title
US5016169A (en) Data processor capable of correctly re-executing instructions
JPS6161436B2 (ja)
JPH0248931B2 (ja)
JP2001290706A (ja) Tlbキャッシュのためのプリフェッチ
JPS59231652A (ja) メモリアクセス・オ−バラツプ検出方式
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
JPS601655B2 (ja) デ−タプリフェツチ方式
US4124892A (en) Data processing systems
JP2783285B2 (ja) 情報処理装置
JPS6410858B2 (ja)
JP2671160B2 (ja) 例外処理方式
JPH0552539B2 (ja)
JPS6136671B2 (ja)
JP2915680B2 (ja) Riscプロセッサ
JP2758624B2 (ja) マイクロプログラムの調速方式
JPH0133856B2 (ja)
JPS6149695B2 (ja)
JPH05257807A (ja) キャッシュメモリ制御装置
JP2806690B2 (ja) マイクロプロセッサ
JPH02151930A (ja) ストアバツフア管理方式
JPH01255933A (ja) 掃出し制御方式
JPS6221130B2 (ja)
JPS61133440A (ja) デ−タ処理装置
JPS5896346A (ja) 階層型演算方式
JPH03164945A (ja) データ処理装置