JP3668504B2 - バッファ記憶制御方法および情報処理装置 - Google Patents
バッファ記憶制御方法および情報処理装置 Download PDFInfo
- Publication number
- JP3668504B2 JP3668504B2 JP06479294A JP6479294A JP3668504B2 JP 3668504 B2 JP3668504 B2 JP 3668504B2 JP 06479294 A JP06479294 A JP 06479294A JP 6479294 A JP6479294 A JP 6479294A JP 3668504 B2 JP3668504 B2 JP 3668504B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- buffer storage
- unit
- transfer
- storage unit
- 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
Images
Landscapes
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
(目次)
産業上の利用分野
従来の技術(図10,図11)
発明が解決しようとする課題
課題を解決するための手段(図1)
作用(図1)
実施例
・第1実施例の説明(図2〜図5)
・第2実施例の説明(図6〜図9)
発明の効果
【0002】
【産業上の利用分野】
本発明は、処理装置と記憶装置との間に、データアクセスの高速化を目的としてバッファ記憶装置が設けられた情報処理装置において、処理装置から読出要求されうるデータを先読みして記憶装置からバッファ記憶装置に転送する際に用いて好適なバッファ記憶制御方法およびこの情報処理装置に関する。
【0003】
【従来の技術】
近年、情報処理装置の処理能力の向上を目的として、様々な研究,開発が行なわれているが、特に、処理速度の向上のための課題として、記憶装置のアクセス速度を高速化することが要望されている。
上記の情報処理装置としては、一般的には、データに関する演算処理等を行なう処理装置と、データを格納する記憶装置と、処理装置が記憶装置にアクセスしたデータ情報を一旦バッファ記憶装置に格納制御するバッファ記憶制御装置とをそなえている。
【0004】
ここで、処理装置は、バッファ記憶制御装置に対してデータの読み出し要求(フェッチリクエスト)を行なうと、要求されたデータがバッファ記憶装置に存在した場合には、バッファ記憶装置から読み出したデータを処理装置へ送出し、読み出し要求の元となった命令は継続して実行されるようになっているが、存在しなかった(ミスヒット)場合には、読み出し要求の元となった命令の実行は保留され、記憶装置からバッファ記憶装置にその要求とするデータが転送されてから、保留された命令が実行されるようになっている。
【0005】
従って、処理装置から読み出し要求されるデータが、なるべく、予めバッファ記憶装置に存在していると、このバッファ記憶装置を有効的に活用することができる。
図10は、上述したような、処理装置から読み出し要求されるデータがなるべくバッファ記憶装置に存在するようにした情報処理装置を示すブロック図であり、この図10に示す情報処理装置は、演算処理等を行なう処理装置101と、図示しないバッファ記憶装置へのデータの格納(登録)状態を監視や制御を行なうバッファ記憶制御装置102と、データが格納されている他の記憶装置103とをそなえている。
【0006】
また、処理装置101は、バッファ記憶制御装置102に対してアドレス情報を含んだデータの読み出し要求を発行できるようになっているほか、バッファ記憶装置に対するデータ転送中に、読み出し要求を発行する際に、後述する転送中のプリフェッチデータが当該読み出し要求に対応するデータを含んでいるかどうかを検出するアドレス比較手段112をそなえている。
【0007】
バッファ記憶制御装置102は、処理装置101からの読み出し要求に基づき、要求されたアドレス情報に対応するデータがバッファ記憶装置に登録されているか否かを検出するとともに、その要求データに後続するデータのバッファ記憶装置への登録がされているか否かを検出するバッファ記憶状況検出手段121をそなえている。
【0008】
なお、バッファ記憶装置は、記憶装置103におけるデータの一部のコピーを、ある一定の大きさのデータブロック毎に管理・記憶するものである。
従って、バッファ記憶状況検出手段121からの検出情報に基づいて、要求データがバッファ記憶装置に格納されていない場合は、記憶装置103に対して当該要求データの読み出し要求を行なって、バッファ記憶装置に登録するとともに、その要求データに後続するデータのバッファ記憶装置への登録されていない場合には、当該後続するデータについてもバッファ記憶装置に登録(先読み転送処理,プリフェッチ動作)するようになっている。
【0009】
このような構成により、例えば、処理装置101からデータブロック“0”の第1のフェッチ要求110が発行されると(図11における(s1)参照)、この読み出し要求110を受けたバッファ記憶制御装置102においては、バッファ記憶状況検出手段121によって、要求データブロックの後続データブロックのバッファ記憶への登録の有無を検出する(図11における(s2)参照)。
【0010】
この場合においては、後続データブロックがバッファ記憶装置内に存在しておらず、データブロック“0”のバッファ記憶装置への登録に続き、その後続データブロック(データブロック“1”,“2”,“3”)についても、連続してバッファ記憶装置に登録(プリフェッチ)する(図11における(s3)参照)。なお、データブロック“0”がバッファ記憶装置に登録されると、その旨をバッファ記憶状況検出手段121に登録するとともに、そのデータブロック“0”を処理装置101に読み込み(図11における(s5)参照)、所定の演算処理が行なわれる。また、データブロック“1”〜“3”がプリフェッチ動作中である旨は、処理装置101のアドレス比較手段112に登録される。
【0011】
そして、上記のデータブロック“0”及びその後続データブロック“1”〜“3”のバッファ記憶装置への登録中に、例えば、処理装置101内でデータブロック“1”の第2のフェッチ要求111が生じると(図11における(s4)参照)、アドレス比較手段112により現在転送中のプリフェッチデータが第2のフェッチ要求111の要求しているデータを含んでいるかどうかを検出し、現在転送中,あるいは転送することが予測される場合には、プリフェッチ動作を行っている間はその第2のフェッチ要求111の受け付けが保留され(図11における(s6)参照)、すべてのプリフェッチデータ(データブロック“1”〜“3”)の転送が完了(図11における(s7)参照)した後に、第2のフェッチ要求111の保留を解除(図11における(s8)参照)するよう制御している。
【0012】
これにより、後続のデータを本来要求されたデータに継続してバッファ記憶装置に登録することで、以後の処理装置101からの読み出し要求の際に予測されるミスヒットが起こる比率を低下させるように制御していた。
【0013】
【発明が解決しようとする課題】
しかしながら、上述のようなバッファ記憶制御では、プリフェッチ動作を行なう条件及びプリフェッチを行なう転送データ長をシステム内の状態により可変とすることができるような制御手法を採る場合、プリフェッチされうる範囲内のデータを要求するような後続フェッチ要求は、バッファ記憶制御装置に対して直ちには発行されず、プリフェッチにより後続のフェッチ要求対象データがバッファ記憶装置に登録されても、プリフェッチ動作中は後続フェッチ要求が保留されてしまう。
【0014】
そして、先行するフェッチ要求が完了してから保留が解除され、プリフェッチされていればバッファ記憶装置からデータを読み出し、プリフェッチされていなかった場合には、バッファ記憶制御装置へフェッチ要求を発行するような制御となっていたため、無駄な待ち時間を要し、アクセス速度向上の妨げになるとともに、スループット低下の要因になるなどの課題がある。
【0015】
本発明は、このような課題に鑑み創案されたもので、先行するフェッチ要求に対する後続のフェッチ要求が先行のフェッチ要求によってプリフェッチの対象となった場合における後続のフェッチの実行の制約を軽減することにより、無駄な待ち時間を無くし、アクセス速度向上,スループットの改善を図ることができるバッファ記憶制御方法および情報処理装置を提供することを目的とする。
【0016】
【課題を解決するための手段】
図1は本発明の原理ブロック図であり、この図1に示す情報処理装置は、データを格納する記憶部1と、記憶部1のデータに基づいて動作するデータ処理部2と、記憶部1のデータの一部をデータブロック毎に管理・保持するバッファ記憶部3と、記憶部1からバッファ記憶部3へのデータ転送およびバッファ記憶部3からデータ処理部2へのデータ読出を制御するバッファ記憶制御部4とをそなえており、バッファ記憶制御部4は、データ処理部2の読出要求(フェッチ要求)に応じたデータブロックがバッファ記憶部3に格納されている場合には、当該データブロックをデータ処理部2に読み出す一方、データ処理部2の読出要求に応じたデータブロックがバッファ記憶部3に格納されていない場合には、当該データブロックを記憶部1からデータ処理部2に読み出すとともにバッファ記憶部3に転送した後、当該データブロックに続いてデータ処理部2から読出要求されうる複数のデータブロックを先読みして記憶部1からバッファ記憶部3に連続的に転送する先読み転送処理(プリフェッチ処理)を行なうようになっている。
【0017】
そして、本発明のデータ処理部2には、前記先読み転送処理中に先読み転送対象の前記複数のデータブロックのうちの一つに対する読出要求がデータ処理部2内で発生した場合に当該読出要求をバッファ記憶制御部4へ直ちに発行する読出要求発行手段5がそなえられている。
また、本発明のバッファ記憶制御部4は、転送完了判定手段6と通知手段7とデータ読出手段8と転送データ順序制御手段9とをそなえている。
【0018】
ここで、転送完了判定手段6は、データ処理部2(読出要求発行手段5)からの当該読出要求に応じたデータブロックの先読み転送を完了しているか否かを判定するものであり、通知手段7は、転送完了判定手段6により当該読出要求に応じたデータブロックの先読み転送を完了していないと判定された場合、その旨をデータ処理部2へ通知するものであり、データ読出手段8は、転送完了判定手段6により当該読出要求に応じたデータブロックの先読み転送を完了していると判定された場合、そのデータブロックをバッファ記憶部3からデータ処理部2に読み出すものである。
【0019】
また、転送データ順序制御手段9は、転送完了判定手段6により当該読出要求に応じたデータブロックの先読み転送を完了していないと判定された場合、先読み転送処理中において、前記複数のデータブロックの先読み転送順序を変更して当該読出要求に応じたデータブロックの先読み転送を優先的に行なうものである。
【0020】
【作用】
上述の本発明のバッファ記憶制御方法および情報処理装置では、データ処理部2の読出要求に応じたデータブロックがバッファ記憶部3に格納されている場合には、バッファ記憶制御部4により、当該データブロックをデータ処理部2に読み出す一方、データ処理部2の読出要求に応じたデータブロックがバッファ記憶部3に格納されていない場合には、バッファ記憶制御部4により、当該データブロックを記憶部1からデータ処理部2に読み出すとともにバッファ記憶部3に転送した後、当該データブロックに続いてデータ処理部2から読出要求されうるデータブロックを先読みして記憶部1からバッファ記憶部3に転送する先読み転送処理を行なう。
【0021】
また、前記先読み転送処理中に先読み転送対象の前記複数のデータブロックのうちの一つに対する読出要求が、データ処理部2の読出要求発行手段5で発生した場合、当該読出要求は、データ処理部2からバッファ記憶制御部4へ直ちに発行され、バッファ記憶制御部4の転送完了判定手段6により、当該読出要求に応じたデータブロックの先読み転送を完了していないと判定された場合は、その旨を通知手段7によりデータ処理部2へ通知し、当該読出要求に応じたデータブロックの先読み転送を完了していれば、データ読出手段8により、そのデータブロックがバッファ記憶部3からデータ処理部2に読み出される。
【0022】
このように、データ処理部2からバッファ記憶制御部4への読出要求は、保留されることなく、データ処理部2における処理が継続して実行される。
従って、従来では読出要求の度に行なっていた先行読出要求による先読み転送の可能性の有無をデータ処理部2で認識する必要がなくなり、先行読出要求のバッファ記憶制御部4からの応答も待つことなく後続読出要求を出力することが可能になっている。
【0023】
さらに、先読み転送処理中のデータブロックに対するデータ処理部2の読出要求に応じたデータブロックの先読み転送を完了していなければ、バッファ記憶制御部4の転送順序制御手段9により、先読み転送処理中において、前記複数のデータブロックの先読み転送順序が変更され、当該読出要求に応じたデータブロックの先読み転送を優先的に行なえ、後続読出要求のペナルティを最少限にすることが可能になる。
【0024】
【実施例】
(a)第1実施例の説明
図2は本発明の第1実施例にかかる情報処理装置を示すブロック図であり、この図2に示す情報処理装置は、データが格納されている主記憶装置(記憶部)11と、この主記憶装置11に格納されているデータに基づき演算処理等の動作を行なう処理装置(データ処理部)12と、主記憶装置11に格納されているデータの一部を一旦格納しておくバッファ記憶装置(バッファ記憶部)13と、このバッファ記憶装置13へのデータの格納(登録)状態の監視,制御や処理装置12へのデータ読出制御を行なうバッファ記憶制御装置(バッファ記憶制御部)14とをそなえている。なお、バッファ記憶装置13は、主記憶装置11のデータの一部のコピーをある一定の大きさのデータブロック毎に管理・記憶するものである。
【0025】
また、バッファ記憶制御装置14は、処理装置12がデータを読み出すに際して、この処理装置12からのデータ読出要求(フェッチ要求)に対応するデータブロックのバッファ記憶装置13への格納状態に応じて、バッファ記憶制御装置13のデータブロックの格納状態を制御するもので、処理装置12からのフェッチ要求に応じたデータブロックがバッファ記憶装置13に格納されている場合(キャッシュヒット)には、そのデータブロックを処理装置12に読み出す一方、処理装置12からのフェッチ要求に応じたデータブロックがバッファ記憶装置13に格納されていない場合(キャッシュミスヒット)には、そのデータブロックを主記憶装置11から処理装置12に読み出すとともにバッファ記憶装置13に転送した後、そのデータブロックに続いて処理装置12から読出要求されうる複数のデータブロックを先読みして主記憶装置11かバッファ記憶装置13に連続的に転送する先読み転送処理(プリフェッチ処理)を行なうようになっている。
【0026】
そして、本実施例の処理装置12は、登録状況記憶部61と読出要求発行部19とをそなえて構成されている。
ここで、登録状況記憶部61は、後述するTAG部81の写し(バッファ記憶装置13へのデータブロックの登録状況)を記憶するものであり、具体的には、64バイト毎のデータの登録状況をそれぞれのビットが「0」なら未登録、「1」なら登録として4つのまとまりを単位として同時に検索できる様な構成となっている。
【0027】
また、読出要求発行部19は、プリフェッチ処理中のデータブロックに対するフェッチ要求(先読み転送対象の複数のデータブロックのうちの一つに対する読出要求)が処理装置12内で発生した場合に、そのフェッチ要求をバッファ記憶制御装置14に直ちに発行するものである。
一方、本実施例のバッファ記憶制御装置14には、転送完了判定部(転送完了判定手段)15,通知部(通知手段)16,データ読出部(データ読出手段)17,転送データ順序制御部(転送データ順序制御手段)18およびTAG部81がそなえられている。
【0028】
ここで、TAG部81は、バッファ記憶装置13へのデータブロックの登録状況を記録しておくものであり、具体的には、64バイト毎のデータの登録状況を、それぞれのビットが「0」なら未登録、「1」なら登録として4つのまとまりを単位として同時に記録でき、その登録状況を4つ同時に検索できるようになっている。
また、このTAG部81には、フェッチ要求対象データがプリフェッチ対象になっているか否かを示すプリフェッチ対象フラグも設けられており、このフラグは、プリフェッチ対象である場合に「1」を、プリフェッチ対象でない場合に「0」を設定されるようになっている。
【0029】
転送完了判定部15は、TAG部81におけるデータブロックの登録状況に基づいて、処理装置12(読出要求発行部19)からのフェッチ要求(プリフェッチ処理中のデータに対するフェッチ要求)に応じたデータブロックの転送を完了しているか否かを判定するものである。
通知部16は、転送完了判定部15からの判定結果を入力され、処理装置12からのフェッチ要求に応じたデータブロックのプリフェッチ処理を完了していないと判定された場合に、その旨を処理装置12に通知するものである。
【0030】
データ読出部17は、転送完了判定部15からの判定結果を入力され、処理装置12からのフェッチ要求に応じたデータブロックのプリフェッチ処理を完了したと判定された場合、そのデータブロックをバッファ記憶装置13から処理装置12に読み出すように制御するものである。
上述の構成により、本発明の第1実施例にかかる情報処理装置によるバッファ記憶制御動作を、図3に示すブロック図,図4に示すフローチャート及び図5に示すタイムチャートを用いて以下に説明する。
【0031】
処理装置12内において、データブロック“0”のフェッチ要求62が発生すると(図5の(t1)参照)、登録状況記憶部61において、要求されたデータブロック“0”がバッファ記憶装置13に存在するかどうか検索する(図4のステップA1,図5の(t2)参照)。
ここで、要求されたデータブロック“0”がバッファ記憶装置13に存在した場合(キャッシュヒット)は、データ読出部17により、そのデータブロック“0”をバッファ記憶装置14から読み出す(図4のステップA1のYESルートからステップA4)一方、、要求されたデータブロック“0”がバッファ記憶装置13に存在せず、ミスヒットとなった場合は、バッファ記憶制御装置14に対して、主記憶装置11からバッファ記憶装置13へのデータブロック“0”の転送要求83を出力する(図4のステップA1のNOルート)。
【0032】
バッファ記憶制御装置14においては、転送要求83の対象データブロック“0”のバッファ登録状況だけでなく、プリフェッチ処理として、後続するアドレスにおける例えば256バイト分のデータブロック“1”〜“3”の登録状況をも、TAG部81を検索することにより調べ、その結果に応じて、主記憶装置11へ要求データブロックの転送要求84を順次出力する。
【0033】
そして、バッファ記憶装置14からの転送要求84に対する主記憶装置11からの応答91として、バッファ記憶装置13において、転送要求83に対応したデータブロックの登録が行なわれる(図4のステップA2のNOルートからステップA6)とともに、処理装置12に対して、転送要求83に対応したデータブロックが出力され(図4のステップA4参照)、TAG部81の内容の更新登録が行なわれ、フェッチ要求62に対する応答が完了する(図5の(t3)参照)。
【0034】
その後、転送要求83に対応したデータブロックの検索処理とともに行なわれた後続するデータブロックの登録状況の検索処理の結果に基づいて、後続するデータブロック“1”〜“3”がバッファ記憶装置13に登録されていない場合は、データブロック“1”〜“3”に対するプリフェッチ処理が行なわれ、そのプリフェッチ対象のデータブロックについては、TAG部81におけるプリフェッチ対象フラグが「1」に設定される。
【0035】
つまり、主記憶装置11に対するデータブロック“1”のバッファ記憶装置13へのデータ登録要求85,その応答92としてのバッファ記憶装置13へのデータの登録,主記憶装置11に対するデータブロック“2”のバッファ記憶装置13へのデータ登録要求86,その応答93としてのバッファ記憶装置13へのデータの登録,主記憶装置11に対するデータブロック“3”のバッファ記憶装置13へのデータ登録要求87及びその応答94としてのバッファ記憶装置13へのデータの登録が、順次、継続して行なわれる(図5の(t3)参照)。
【0036】
このようにしてデータの登録が行なわれると、登録されたデータブロックについて、TAG部81(登録状況記憶部61)における登録状況を示すビットが更新(「1」に設定)される。
ここで、転送要求62によって開始したプリフェッチ動作に対応するデータが、応答92によるバッファ記憶装置13へのデータ転送中である時、処理装置12内でデータブロック“1”に対する第2のフェッチ要求63が発生したとすると(図4のステップA2からYESルート,図5の(t4)参照)、このフェッチ要求63は、読出要求発行部19により、抑止されることなく、通常の要求と同じようにそのままバッファ記憶装置14に対して転送要求64として発行される。
【0037】
この場合、応答91によりTAG部81が更新されており、バッファ記憶制御装置14の転送完了判定部15においては、TAG部81(登録状況,プリフェッチ対象ビット)を参照することにより、第2のフェッチ要求63の対象データブロック“1”が、プリフェッチ登録であるか否か、さらには、既にバッファ記憶装置13に登録されているか否かを判定することができる。
【0038】
転送完了判定部15により、第2のフェッチ要求63の対象データブロック“1”が、現在処理中のプリフェッチ動作によってデータが転送中で未だバッファ記憶装置13に登録されていないと判定された場合には、通知部16より、直ちにその旨を示す応答88が処理装置12へ返される(図4のステップA3のNOルートからステップA5)。このような応答を受けた処理装置12は、あたかも要求データがバッファ記憶装置13でヒットしたかのようにそのまま処理を継続することができる。
【0039】
そして、処理装置12側ではこの応答のしかる時間の後にバッファ記憶制御装置14に対する転送要求64の出力動作を繰り返し行ない、転送完了判定部15において、要求データブロック“1”のバッファ記憶装置13への登録が完了したと判定すると、データ読出部17により、バッファ記憶装置13に登録されたデータブロック“1”の処理装置12へのフェッチ動作を行なう(図5の(t5),図4のステップA3のYESルートからステップA4)。
【0040】
即ち、処理装置12からバッファ記憶制御装置14に対して転送要求64が出力されると、転送完了判定部15においては、バッファ記憶装置13に、第2のフェッチ要求63に対応するデータブロック“1”が格納されていると判定され、データ読出部17において、バッファ記憶装置13における当該データの読み出し動作が行なわれる。
【0041】
なお、転送要求62によって開始したプリフェッチ動作に対応するデータブロックが、、応答92によるバッファ記憶装置13へのデータ転送中である時、処理装置12内で、バッファ記憶装置13に格納されておらず且つプリフェッチ動作に関係しないデータブロックに対するフェッチ要求が発生した場合には、バッファ記憶制御装置14においては、現在実行中のプリフェッチ動作を直ちに中止して、発生したフェッチ要求に対するデータブロックを、主記憶装置11からバッファ記憶装置13へ登録する処理を行なう(図4のステップA2のNOルートからステップA6)。
【0042】
このように、本発明の第1実施例によれば、バッファ記憶制御装置14により、第2のフェッチ要求63に応じたデータブロックのプリフェッチ処理を完了していなければその旨を処理装置12へ通知し、第2のフェッチ要求63に応じたデータブロックのプリフェッチ処理を完了していればそのデータブロックをバッファ記憶装置13から処理装置12に読み出すことができるので、先行するフェッチ要求に対する後続のフェッチ要求が先行のフェッチ要求によってプリフェッチの対象となった場合における後続のフェッチの実行の制約を軽減することができ、無駄な待ち時間を無くし、アクセス速度向上を図ることができ、ひいてはスループットの低下を防止できる利点がある。
【0043】
(b)第2実施例の説明
図6は本発明の第2実施例にかかる情報処理装置を示すブロック図であり、この図6に示す情報処理装置は、前述の第1実施例におけるものに比して、バッファ記憶制御装置14に転送データ順序制御部18をそなえている点が異なり、その他の構成要素については、同様の機能を有している。
【0044】
ここで、転送データ順序制御部18は、バッファ記憶制御装置14がプリフェッチ処理に際して複数のデータブロック(本実施例では3つのデータブロック)のプリフェッチを連続的に行なうものである場合に、転送完了判定部15により第2のフェッチ要求に応じたデータブロックのプリフェッチを完了していないと判定された場合、プリフェッチ順序(バッファ記憶装置13への登録順序)を入れ替え変更して第2のフェッチ要求に応じたデータブロックのプリフェッチを優先的に行なうものである。
【0045】
つまり、第2実施例では、図7〜図9により後述するごとく、プリフェッチするデータブロックの順番を、フェッチ要求のあった順に変更できるようになっている。
上述の構成により、本発明の第2実施例にかかる情報処理装置において行なわれるバッファ記憶制御を、図7に示すブロック図,図8に示すフローチャート及び図9に示すタイムチャートを用いて以下に説明する。
【0046】
基本的には第1実施例の場合と同様に、処理装置12内において、データブロック“0”のフェッチ要求62が発生すると(図9の(t11)参照)、登録状況記憶部61において、要求されたデータブロック“0”がバッファ記憶装置13に存在するかどうか検索する(図8のステップB1,図9の(t12)参照)。
【0047】
ここで、要求されたデータブロック“0”がバッファ記憶装置13に存在した場合(キャッシュヒット)は、データ読出部17により、そのデータをバッファ記憶装置13から読み出す(図8のステップB1のYESルートからステップB5)一方、要求されたデータブロック“0”がバッファ記憶装置13に存在せず、ミスヒットとなった場合は、バッファ記憶制御装置14に対して、主記憶装置11からバッファ記憶装置13へのデータブロック“0”の転送要求83を出力する(図8のステップB1のNOルート)。
【0048】
転送要求83を受けたバッファ記憶制御装置14においては、要求83の対象データブロック“0”のバッファ登録状況だけでなく、プリフェッチ処理として、後続するアドレスにおける256バイト分のデータブロック“1”〜“3”の登録状況をも、TAG部81を検索することにより調べ、その結果に応じて、主記憶装置11へ要求データの転送要求84を出力する。
【0049】
この場合においては、転送要求84に対応するデータブロックがプリフェッチ動作中の対象ブロックでないので、上記の転送要求84に対する主記憶装置11からの応答91を受けて、バッファ記憶装置13において、転送要求83に対応したデータブロックの登録が行なわれる(図8のステップB2のNOルートからステップB8)とともに、処理装置12に対して、転送要求83に対応したデータが出力され(図8のステップB5参照)、TAG部81の内容の更新登録が行なわれ、フェッチ要求62に対する応答が完了する(図9の(t13)参照)。
【0050】
その後、転送要求83に対応したデータブロックの検索処理とともに行なわれた後続するデータブロックの登録状況の検索処理の結果に基づいて、後続するデータブロック“1”〜“3”がバッファ記憶装置13に登録されていない場合は、データブロック“1”〜“3”に対するプリフェッチ処理が行なわれ、そのプリフェッチ対象のデータブロックについては、TAG部81におけるプリフェッチ対象フラグが「1」に設定される。
【0051】
つまり、主記憶装置11に対するデータブロック“1”のバッファ記憶装置13へのデータ登録要求85,その応答92としてのバッファ記憶装置13へのデータの登録,主記憶装置11に対するデータブロック“2”のバッファ記憶装置13へのデータ登録要求86,その応答としてのバッファ記憶装置13へのデータの登録,主記憶装置11に対するデータブロック“3”のバッファ記憶装置13へのデータ登録要求87及びその応答93としてのバッファ記憶装置13へのデータの登録が、順次、継続して行なわれる(図9の(t13)参照)。
【0052】
このようにしてデータブロックの登録が行なわれると、登録されたデータブロックについて、TAG部81(登録状況記憶部61)における登録状況を示すビットが更新(「1」に設定)される。
ここで、転送要求62によって開始したプリフェッチ動作に対応するデータブロックが、応答92によるバッファ記憶装置13へのデータ転送中である時、処理装置12内でデータブロック“3”に対する第2のフェッチ要求65が発生したとすると(図8のステップB2のYESルート,図9の(t14)参照)、このフェッチ要求65は、読出要求発行部19により、抑止されることなく、通常の要求と同じようにそのままバッファ記憶装置14に対して転送要求66として発行される。
【0053】
このとき、第2実施例では、データブロック“0”の転送要求83の様に、バッファ記憶装置13に、既にデータ転送が終了したものについては、通知部16より、直ちに応答88が返されるが、転送要求66のように、プリフェッチ動作によりバッファ記憶装置13への登録が予定されてはいるがまだ転送されていないものに対する要求がなされたと判定された場合には、転送データ順序制御部18により、TAG部81のバッファ登録ビットとプリフェッチ対象フラグとを参照して、当該要求データブロック“3”を優先してバッファ記憶装置13に登録できるか否かを判定する(図8のステップB3)。
【0054】
そして、当該要求データブロック“3”を優先してバッファ記憶装置13に登録できる場合(図8のステップB3のYESルート)は、転送データ順序制御部18から発行する要求87により、転送データ順序を変更し(図8のステップB6)、当該データブロック“3”をバッファ記憶装置13に優先的に登録する。即ち、転送データ順序制御部18は、次にバッファ記憶装置13へデータブロック“2”を転送する要求86を追い越して要求87を発行するとともに処理装置12への応答89を行なうように制御するのである(図9の(t16)参照)。
【0055】
その後、転送完了判定部15において、要求87に対応するデータブロック“3”がバッファ記憶装置13に登録されたことが、要求データ登録完了信号により確認されると(ステップB4のYESルート)、バッファ記憶装置13に第2のフェッチ要求65に対応するデータブロック“3”が格納されていると判定され、データ読出部17により、バッファ記憶装置13における当該データブロックの読み出し動作が行なわれる(図8のステップB5)。
【0056】
また、転送完了判定部15において、転送要求に対応するデータブロックが転送中であって、バッファ記憶装置13への登録が完了していないと判定された場合は、通知部16により、その旨を示す応答が処理装置12に対して出力される(図8のステップB4のNOルートからステップB7,図9の(t15)参照)。
このように、本発明の第2実施例によっても第1実施例と同様の作用効果が得られるほか、この第2実施例によれば、プリフェッチ処理に際して複数のデータのプリフェッチを連続的に行なう場合に、プリフェッチ処理中のデータブロックに対する処理装置12の第2のフェッチ要求65に応じたデータブロックのプリフェッチを完了していなければ、バッファ記憶制御装置14により、データブロックのプリフェッチ順序を変更し、その第2のフェッチ要求65に応じたデータブロックのプリフェッチを優先的に行なうことにより、後続するフェッチ要求のペナルティを最少限にすることができ、飛躍的にアクセス速度を向上させることができ、スループットの低下を確実に防止でき、ひいてはシステムの性能向上に大きく寄与する利点がある。
【0058】
【発明の効果】
以上詳述したように、本発明によれば、先読み転送処理中に先読み転送対象の複数のデータブロックのうちの一つに対する読出要求が発生した際に、その読出要求に応じたデータブロックの先読み転送を完了していなければその旨をデータ処理部へ通知し、当該読出要求に応じたデータブロックの先読み転送を完了していればそのデータブロックをバッファ記憶部からデータ処理部に読み出すことができるので、先行するフェッチ要求に対する後続のフェッチ要求が先行のフェッチ要求によってプリフェッチの対象となった場合における後続のフェッチの実行の制約を軽減することができ、無駄な待ち時間を無くし、アクセス速度向上を図ることができ、ひいてはスループットの低下を防止することができる利点があるほか、前記先読み転送処理に際して複数のデータブロックの先読み転送を連続的に行なう場合に、当該読出要求に応じたデータブロックの先読み転送を完了していなければ、バッファ記憶制御部により、先読み転送処理中において、前記複数のデータブロックの先読み転送順序を変更し、当該読出要求に応じたデータブロックの先読み転送を優先的に行なうことにより、後続する読出要求のペナルティを最少限に抑制できるので、飛躍的にアクセス速度を向上させることができ、スループットの低下を確実に防止でき、システムの性能向上に大きく寄与する利点もある。
【図面の簡単な説明】
【図1】本発明の原理ブロック図である。
【図2】本発明の第1実施例を示すブロック図である。
【図3】本発明の第1実施例の動作を説明するためのブロック図である。
【図4】本発明の第1実施例の動作を説明するためのフローチャートである。
【図5】本発明の第1実施例の動作を説明するためのタイムチャートである。
【図6】本発明の第2実施例を示すブロック図である。
【図7】本発明の第2実施例の動作を説明するためのブロック図である。
【図8】本発明の第2実施例の動作を説明するためのフローチャートである。
【図9】本発明の第2実施例の動作を説明するためのタイムチャートである。
【図10】一般的な情報処理装置を示すブロック図である。
【図11】一般的な情報処理装置の動作を説明するためのタイムチャートである。
【符号の説明】
1 記憶部
2 データ処理部
3 バッファ記憶部
4 バッファ記憶制御部
5 読出要求発行手段
6 転送完了判定手段
7 通知手段
8 データ読出手段
9 転送データ順序制御手段
11 主記憶装置(記憶部)
12 処理装置(データ処理部)
13 バッファ記憶装置(バッファ記憶部)
14 バッファ記憶制御装置(バッファ記憶制御部)
15 転送完了判定部(転送完了判定手段)
16 通知部
17 データ読出部(データ読出手段)
18 転送データ順序制御部(転送データ順序制御手段)
19 読出要求発行部(読出要求発行手段)
61 登録状況記憶部
81 TAG部
Claims (2)
- 記憶部と、該記憶部のデータに基づいて動作するデータ処理部と、該記憶部のデータの一部をデータブロック毎に管理・保持するバッファ記憶部と、該記憶部から該バッファ記憶部へのデータ転送および該バッファ記憶部から該データ処理部へのデータ読出を制御するバッファ記憶制御部とをそなえてなる情報処理装置におけるバッファ記憶制御方法であって、
該データ処理部の読出要求に応じたデータブロックが該バッファ記憶部に格納されている場合には、該バッファ記憶制御部により、当該データブロックを該データ処理部に読み出し、
該データ処理部の読出要求に応じたデータブロックが該バッファ記憶部に格納されていない場合には、該バッファ記憶制御部により、当該データブロックを該記憶部から該データ処理部に読み出すとともに該バッファ記憶部に転送した後、当該データブロックに続いて該データ処理部から読出要求されうる複数のデータブロックを先読みして該記憶部から該バッファ記憶部に連続的に転送する一方、
前記先読み転送処理中に先読み転送対象の前記複数のデータブロックのうちの一つに対する読出要求が該データ処理部内で発生した場合には、当該読出要求を該データ処理部から該バッファ記憶制御部へ直ちに発行し、
該バッファ記憶制御部により、当該読出要求に応じたデータブロックの先読み転送を完了していなければその旨を該データ処理部へ通知し、当該読出要求に応じたデータブロックの先読み転送を完了していればそのデータブロックを該バッファ記憶部から該データ処理部に読み出し、
かつ、当該読出要求に応じたデータブロックの先読み転送を完了していなければ、前記先読み転送処理中において、該バッファ記憶制御部により、前記複数のデータブロックの先読み転送順序を変更し、当該読出要求に応じたデータブロックの先読み転送を優先的に行なうことを特徴とする、バッファ記憶制御方法。 - 記憶部と、該記憶部のデータに基づいて動作するデータ処理部と、該記憶部のデータの一部をデータブロック毎に管理・保持するバッファ記憶部と、該記憶部から該バッファ記憶部へのデータ転送および該バッファ記憶部から該データ処理部へのデータ読出を制御するバッファ記憶制御部とをそなえ、
該バッファ記憶制御部が、該データ処理部の読出要求に応じたデータブロックが該バッファ記憶部に格納されている場合には、当該データブロックを該データ処理部に読み出す一方、該データ処理部の読出要求に応じたデータブロックが該バッファ記憶部に格納されていない場合には、当該データブロックを該記憶部から該データ処理部に読み出すとともに該バッファ記憶部に転送した後、当該データブロックに続いて該データ処理部から読出要求されうる複数のデータブロックを先読みして該記憶部から該バッファ記憶部に連続的に転送する先読み転送処理を行なうように構成され、
該データ処理部に、前記先読み転送処理中に先読み転送対象の前記複数のデータブロックのうちの一つに対する読出要求が該データ処理部内で発生した場合に当該読出要求を該バッファ記憶制御部へ直ちに発行する読出要求発行手段がそなえられるとともに、
該バッファ記憶制御部に、
該データ処理部からの当該読出要求に応じたデータブロックの先読み転送を完了しているか否かを判定する転送完了判定手段と、
該転送完了判定手段により当該読出要求に応じたデータブロックの先読み転送を完了していないと判定された場合、その旨を該データ処理部へ通知する通知手段と、
該転送完了判定手段により当該読出要求に応じたデータブロックの先読み転送を完了していると判定された場合、そのデータブロックを該バッファ記憶部から該データ処理部に読み出すデータ読出手段とがそなえられ、
かつ、該バッファ記憶制御部に、
該転送完了判定手段により当該読出要求に応じたデータブロックの先読み転送を完了していないと判定された場合、前記先読み転送処理中において、前記複数のデータブロック の先読み転送順序を変更して当該読出要求に応じたデータブロックの先読み転送を優先的に行なう転送データ順序制御手段がそなえられていることを特徴とする、情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP06479294A JP3668504B2 (ja) | 1994-04-01 | 1994-04-01 | バッファ記憶制御方法および情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP06479294A JP3668504B2 (ja) | 1994-04-01 | 1994-04-01 | バッファ記憶制御方法および情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07271577A JPH07271577A (ja) | 1995-10-20 |
JP3668504B2 true JP3668504B2 (ja) | 2005-07-06 |
Family
ID=13268447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP06479294A Expired - Fee Related JP3668504B2 (ja) | 1994-04-01 | 1994-04-01 | バッファ記憶制御方法および情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3668504B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3968914B2 (ja) | 1999-06-02 | 2007-08-29 | 株式会社日立製作所 | ディスクアレイ装置 |
-
1994
- 1994-04-01 JP JP06479294A patent/JP3668504B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH07271577A (ja) | 1995-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5623700A (en) | Interface circuit having zero latency buffer memory and cache memory information transfer | |
JPH0628180A (ja) | プリフェッチバッファ | |
US6718454B1 (en) | Systems and methods for prefetch operations to reduce latency associated with memory access | |
JPH10133943A (ja) | リンクリスト形成方法 | |
JPH0981456A (ja) | キャッシュ制御の命令プリフェッチ方法及びシステム | |
JPH1031625A (ja) | マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ | |
JP4019073B2 (ja) | キャッシュ可能なdma | |
JPH06309230A (ja) | バススヌ−プ方法 | |
US6976128B1 (en) | Cache flush system and method | |
US20060031602A1 (en) | Scalable architecture for context execution | |
US9342472B2 (en) | PRD (physical region descriptor) pre-fetch methods for DMA (direct memory access) units | |
JP3668504B2 (ja) | バッファ記憶制御方法および情報処理装置 | |
JP4166615B2 (ja) | データ処理装置におけるマルチアクセス命令を処理するデータ処理装置及び方法並びにその方法によるコンピュータ・プログラム製品 | |
US20010032297A1 (en) | Cache memory apparatus and data processing system | |
JP2006053857A (ja) | システム制御装置、投機フェッチ方法および情報処理装置 | |
JP3481425B2 (ja) | キャッシュ装置 | |
JP2002024007A (ja) | プロセッサシステム | |
US7089367B1 (en) | Reducing memory access latencies from a bus using pre-fetching and caching | |
JPH0784879A (ja) | キャッシュメモリ装置 | |
JPH02133842A (ja) | 中間バッファプリフェッチ制御方式 | |
JPH06342401A (ja) | 二次記憶制御装置 | |
JP3221409B2 (ja) | キャッシュ制御システム及びその読出し方法並びにその制御プログラムを記録した記録媒体 | |
JPH0844659A (ja) | データ転送制御装置 | |
JPH09160863A (ja) | 入出力バッファ装置及びその管理方法 | |
JPH0628303A (ja) | 通信処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20030722 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20040723 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050411 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080415 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090415 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090415 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100415 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110415 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110415 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |