(57)【特許請求の範囲】
【請求項１】
記憶部と、該記憶部のデータに基づいて動作するデータ処理部と、該記憶部のデータの一部をデータブロック毎に管理・保持するバッファ記憶部と、該記憶部から該バッファ記憶部へのデータ転送および該バッファ記憶部から該データ処理部へのデータ読出を制御するバッファ記憶制御部とをそなえてなる情報処理装置におけるバッファ記憶制御方法であって、
該データ処理部の読出要求に応じたデータブロックが該バッファ記憶部に格納されている場合には、該バッファ記憶制御部により、当該データブロックを該データ処理部に読み出し、
該データ処理部の読出要求に応じたデータブロックが該バッファ記憶部に格納されていない場合には、該バッファ記憶制御部により、当該データブロックを該記憶部から該データ処理部に読み出すとともに該バッファ記憶部に転送した後、当該データブロックに続いて該データ処理部から読出要求されうる複数のデータブロックを先読みして該記憶部から該バッファ記憶部に連続的に転送する一方、
前記先読み転送処理中に先読み転送対象の前記複数のデータブロックのうちの一つに対する読出要求が該データ処理部内で発生した場合には、当該読出要求を該データ処理部から該バッファ記憶制御部へ直ちに発行し、
該バッファ記憶制御部により、当該読出要求に応じたデータブロックの先読み転送を完了していなければその旨を該データ処理部へ通知し、当該読出要求に応じたデータブロックの先読み転送を完了していればそのデータブロックを該バッファ記憶部から該データ処理部に読み出し、
かつ、当該読出要求に応じたデータブロックの先読み転送を完了していなければ、前記先読み転送処理中において、該バッファ記憶制御部により、前記複数のデータブロックの先読み転送順序を変更し、当該読出要求に応じたデータブロックの先読み転送を優先的に行なうことを特徴とする、バッファ記憶制御方法。
【請求項２】
記憶部と、該記憶部のデータに基づいて動作するデータ処理部と、該記憶部のデータの一部をデータブロック毎に管理・保持するバッファ記憶部と、該記憶部から該バッファ記憶部へのデータ転送および該バッファ記憶部から該データ処理部へのデータ読出を制御するバッファ記憶制御部とをそなえ、
該バッファ記憶制御部が、該データ処理部の読出要求に応じたデータブロックが該バッファ記憶部に格納されている場合には、当該データブロックを該データ処理部に読み出す一方、該データ処理部の読出要求に応じたデータブロックが該バッファ記憶部に格納されていない場合には、当該データブロックを該記憶部から該データ処理部に読み出すとともに該バッファ記憶部に転送した後、当該データブロックに続いて該データ処理部から読出要求されうる複数のデータブロックを先読みして該記憶部から該バッファ記憶部に連続的に転送する先読み転送処理を行なうように構成され、
該データ処理部に、前記先読み転送処理中に先読み転送対象の前記複数のデータブロックのうちの一つに対する読出要求が該データ処理部内で発生した場合に当該読出要求を該バッファ記憶制御部へ直ちに発行する読出要求発行手段がそなえられるとともに、
該バッファ記憶制御部に、
該データ処理部からの当該読出要求に応じたデータブロックの先読み転送を完了しているか否かを判定する転送完了判定手段と、
該転送完了判定手段により当該読出要求に応じたデータブロックの先読み転送を完了していないと判定された場合、その旨を該データ処理部へ通知する通知手段と、
該転送完了判定手段により当該読出要求に応じたデータブロックの先読み転送を完了していると判定された場合、そのデータブロックを該バッファ記憶部から該データ処理部に読み出すデータ読出手段とがそなえられ、
かつ、該バッファ記憶制御部に、
該転送完了判定手段により当該読出要求に応じたデータブロックの先読み転送を完了していないと判定された場合、前記先読み転送処理中において、前記複数のデータブロックの先読み転送順序を変更して当該読出要求に応じたデータブロックの先読み転送を優先的に行なう転送データ順序制御手段がそなえられていることを特徴とする、情報処理装置。
【発明の詳細な説明】
【０００１】
（目次）
産業上の利用分野
従来の技術（図１０，図１１）
発明が解決しようとする課題
課題を解決するための手段（図１）
作用（図１）
実施例
・第１実施例の説明（図２〜図５）
・第２実施例の説明（図６〜図９）
発明の効果
【０００２】
【産業上の利用分野】
本発明は、処理装置と記憶装置との間に、データアクセスの高速化を目的としてバッファ記憶装置が設けられた情報処理装置において、処理装置から読出要求されうるデータを先読みして記憶装置からバッファ記憶装置に転送する際に用いて好適なバッファ記憶制御方法およびこの情報処理装置に関する。
【０００３】
【従来の技術】
近年、情報処理装置の処理能力の向上を目的として、様々な研究，開発が行なわれているが、特に、処理速度の向上のための課題として、記憶装置のアクセス速度を高速化することが要望されている。
上記の情報処理装置としては、一般的には、データに関する演算処理等を行なう処理装置と、データを格納する記憶装置と、処理装置が記憶装置にアクセスしたデータ情報を一旦バッファ記憶装置に格納制御するバッファ記憶制御装置とをそなえている。
【０００４】
ここで、処理装置は、バッファ記憶制御装置に対してデータの読み出し要求（フェッチリクエスト）を行なうと、要求されたデータがバッファ記憶装置に存在した場合には、バッファ記憶装置から読み出したデータを処理装置へ送出し、読み出し要求の元となった命令は継続して実行されるようになっているが、存在しなかった（ミスヒット）場合には、読み出し要求の元となった命令の実行は保留され、記憶装置からバッファ記憶装置にその要求とするデータが転送されてから、保留された命令が実行されるようになっている。
【０００５】
従って、処理装置から読み出し要求されるデータが、なるべく、予めバッファ記憶装置に存在していると、このバッファ記憶装置を有効的に活用することができる。
図１０は、上述したような、処理装置から読み出し要求されるデータがなるべくバッファ記憶装置に存在するようにした情報処理装置を示すブロック図であり、この図１０に示す情報処理装置は、演算処理等を行なう処理装置１０１と、図示しないバッファ記憶装置へのデータの格納（登録）状態を監視や制御を行なうバッファ記憶制御装置１０２と、データが格納されている他の記憶装置１０３とをそなえている。
【０００６】
また、処理装置１０１は、バッファ記憶制御装置１０２に対してアドレス情報を含んだデータの読み出し要求を発行できるようになっているほか、バッファ記憶装置に対するデータ転送中に、読み出し要求を発行する際に、後述する転送中のプリフェッチデータが当該読み出し要求に対応するデータを含んでいるかどうかを検出するアドレス比較手段１１２をそなえている。
【０００７】
バッファ記憶制御装置１０２は、処理装置１０１からの読み出し要求に基づき、要求されたアドレス情報に対応するデータがバッファ記憶装置に登録されているか否かを検出するとともに、その要求データに後続するデータのバッファ記憶装置への登録がされているか否かを検出するバッファ記憶状況検出手段１２１をそなえている。
【０００８】
なお、バッファ記憶装置は、記憶装置１０３におけるデータの一部のコピーを、ある一定の大きさのデータブロック毎に管理・記憶するものである。
従って、バッファ記憶状況検出手段１２１からの検出情報に基づいて、要求データがバッファ記憶装置に格納されていない場合は、記憶装置１０３に対して当該要求データの読み出し要求を行なって、バッファ記憶装置に登録するとともに、その要求データに後続するデータのバッファ記憶装置への登録されていない場合には、当該後続するデータについてもバッファ記憶装置に登録（先読み転送処理，プリフェッチ動作）するようになっている。
【０００９】
このような構成により、例えば、処理装置１０１からデータブロック“０”の第１のフェッチ要求１１０が発行されると（図１１における（ｓ１）参照）、この読み出し要求１１０を受けたバッファ記憶制御装置１０２においては、バッファ記憶状況検出手段１２１によって、要求データブロックの後続データブロックのバッファ記憶への登録の有無を検出する（図１１における（ｓ２）参照）。
【００１０】
この場合においては、後続データブロックがバッファ記憶装置内に存在しておらず、データブロック“０”のバッファ記憶装置への登録に続き、その後続データブロック（データブロック“１”，“２”，“３”）についても、連続してバッファ記憶装置に登録（プリフェッチ）する（図１１における（ｓ３）参照）。なお、データブロック“０”がバッファ記憶装置に登録されると、その旨をバッファ記憶状況検出手段１２１に登録するとともに、そのデータブロック“０”を処理装置１０１に読み込み（図１１における（ｓ５）参照）、所定の演算処理が行なわれる。また、データブロック“１”〜“３”がプリフェッチ動作中である旨は、処理装置１０１のアドレス比較手段１１２に登録される。
【００１１】
そして、上記のデータブロック“０”及びその後続データブロック“１”〜“３”のバッファ記憶装置への登録中に、例えば、処理装置１０１内でデータブロック“１”の第２のフェッチ要求１１１が生じると（図１１における（ｓ４）参照）、アドレス比較手段１１２により現在転送中のプリフェッチデータが第２のフェッチ要求１１１の要求しているデータを含んでいるかどうかを検出し、現在転送中，あるいは転送することが予測される場合には、プリフェッチ動作を行っている間はその第２のフェッチ要求１１１の受け付けが保留され（図１１における（ｓ６）参照）、すべてのプリフェッチデータ（データブロック“１”〜“３”）の転送が完了（図１１における（ｓ７）参照）した後に、第２のフェッチ要求１１１の保留を解除（図１１における（ｓ８）参照）するよう制御している。
【００１２】
これにより、後続のデータを本来要求されたデータに継続してバッファ記憶装置に登録することで、以後の処理装置１０１からの読み出し要求の際に予測されるミスヒットが起こる比率を低下させるように制御していた。
【００１３】
【発明が解決しようとする課題】
しかしながら、上述のようなバッファ記憶制御では、プリフェッチ動作を行なう条件及びプリフェッチを行なう転送データ長をシステム内の状態により可変とすることができるような制御手法を採る場合、プリフェッチされうる範囲内のデータを要求するような後続フェッチ要求は、バッファ記憶制御装置に対して直ちには発行されず、プリフェッチにより後続のフェッチ要求対象データがバッファ記憶装置に登録されても、プリフェッチ動作中は後続フェッチ要求が保留されてしまう。
【００１４】
そして、先行するフェッチ要求が完了してから保留が解除され、プリフェッチされていればバッファ記憶装置からデータを読み出し、プリフェッチされていなかった場合には、バッファ記憶制御装置へフェッチ要求を発行するような制御となっていたため、無駄な待ち時間を要し、アクセス速度向上の妨げになるとともに、スループット低下の要因になるなどの課題がある。
【００１５】
本発明は、このような課題に鑑み創案されたもので、先行するフェッチ要求に対する後続のフェッチ要求が先行のフェッチ要求によってプリフェッチの対象となった場合における後続のフェッチの実行の制約を軽減することにより、無駄な待ち時間を無くし、アクセス速度向上，スループットの改善を図ることができるバッファ記憶制御方法および情報処理装置を提供することを目的とする。
【００１６】
【課題を解決するための手段】
図１は本発明の原理ブロック図であり、この図１に示す情報処理装置は、データを格納する記憶部１と、記憶部１のデータに基づいて動作するデータ処理部２と、記憶部１のデータの一部をデータブロック毎に管理・保持するバッファ記憶部３と、記憶部１からバッファ記憶部３へのデータ転送およびバッファ記憶部３からデータ処理部２へのデータ読出を制御するバッファ記憶制御部４とをそなえており、バッファ記憶制御部４は、データ処理部２の読出要求（フェッチ要求）に応じたデータブロックがバッファ記憶部３に格納されている場合には、当該データブロックをデータ処理部２に読み出す一方、データ処理部２の読出要求に応じたデータブロックがバッファ記憶部３に格納されていない場合には、当該データブロックを記憶部１からデータ処理部２に読み出すとともにバッファ記憶部３に転送した後、当該データブロックに続いてデータ処理部２から読出要求されうる複数のデータブロックを先読みして記憶部１からバッファ記憶部３に連続的に転送する先読み転送処理（プリフェッチ処理）を行なうようになっている。
【００１７】
そして、本発明のデータ処理部２には、前記先読み転送処理中に先読み転送対象の前記複数のデータブロックのうちの一つに対する読出要求がデータ処理部２内で発生した場合に当該読出要求をバッファ記憶制御部４へ直ちに発行する読出要求発行手段５がそなえられている。
また、本発明のバッファ記憶制御部４は、転送完了判定手段６と通知手段７とデータ読出手段８と転送データ順序制御手段９とをそなえている。
【００１８】
ここで、転送完了判定手段６は、データ処理部２（読出要求発行手段５）からの当該読出要求に応じたデータブロックの先読み転送を完了しているか否かを判定するものであり、通知手段７は、転送完了判定手段６により当該読出要求に応じたデータブロックの先読み転送を完了していないと判定された場合、その旨をデータ処理部２へ通知するものであり、データ読出手段８は、転送完了判定手段６により当該読出要求に応じたデータブロックの先読み転送を完了していると判定された場合、そのデータブロックをバッファ記憶部３からデータ処理部２に読み出すものである。
【００１９】
また、転送データ順序制御手段９は、転送完了判定手段６により当該読出要求に応じたデータブロックの先読み転送を完了していないと判定された場合、先読み転送処理中において、前記複数のデータブロックの先読み転送順序を変更して当該読出要求に応じたデータブロックの先読み転送を優先的に行なうものである。
【００２０】
【作用】
上述の本発明のバッファ記憶制御方法および情報処理装置では、データ処理部２の読出要求に応じたデータブロックがバッファ記憶部３に格納されている場合には、バッファ記憶制御部４により、当該データブロックをデータ処理部２に読み出す一方、データ処理部２の読出要求に応じたデータブロックがバッファ記憶部３に格納されていない場合には、バッファ記憶制御部４により、当該データブロックを記憶部１からデータ処理部２に読み出すとともにバッファ記憶部３に転送した後、当該データブロックに続いてデータ処理部２から読出要求されうるデータブロックを先読みして記憶部１からバッファ記憶部３に転送する先読み転送処理を行なう。
【００２１】
また、前記先読み転送処理中に先読み転送対象の前記複数のデータブロックのうちの一つに対する読出要求が、データ処理部２の読出要求発行手段５で発生した場合、当該読出要求は、データ処理部２からバッファ記憶制御部４へ直ちに発行され、バッファ記憶制御部４の転送完了判定手段６により、当該読出要求に応じたデータブロックの先読み転送を完了していないと判定された場合は、その旨を通知手段７によりデータ処理部２へ通知し、当該読出要求に応じたデータブロックの先読み転送を完了していれば、データ読出手段８により、そのデータブロックがバッファ記憶部３からデータ処理部２に読み出される。
【００２２】
このように、データ処理部２からバッファ記憶制御部４への読出要求は、保留されることなく、データ処理部２における処理が継続して実行される。
従って、従来では読出要求の度に行なっていた先行読出要求による先読み転送の可能性の有無をデータ処理部２で認識する必要がなくなり、先行読出要求のバッファ記憶制御部４からの応答も待つことなく後続読出要求を出力することが可能になっている。
【００２３】
さらに、先読み転送処理中のデータブロックに対するデータ処理部２の読出要求に応じたデータブロックの先読み転送を完了していなければ、バッファ記憶制御部４の転送順序制御手段９により、先読み転送処理中において、前記複数のデータブロックの先読み転送順序が変更され、当該読出要求に応じたデータブロックの先読み転送を優先的に行なえ、後続読出要求のペナルティを最少限にすることが可能になる。
【００２４】
【実施例】
（ａ）第１実施例の説明
図２は本発明の第１実施例にかかる情報処理装置を示すブロック図であり、この図２に示す情報処理装置は、データが格納されている主記憶装置（記憶部）１１と、この主記憶装置１１に格納されているデータに基づき演算処理等の動作を行なう処理装置（データ処理部）１２と、主記憶装置１１に格納されているデータの一部を一旦格納しておくバッファ記憶装置（バッファ記憶部）１３と、このバッファ記憶装置１３へのデータの格納（登録）状態の監視，制御や処理装置１２へのデータ読出制御を行なうバッファ記憶制御装置（バッファ記憶制御部）１４とをそなえている。なお、バッファ記憶装置１３は、主記憶装置１１のデータの一部のコピーをある一定の大きさのデータブロック毎に管理・記憶するものである。
【００２５】
また、バッファ記憶制御装置１４は、処理装置１２がデータを読み出すに際して、この処理装置１２からのデータ読出要求（フェッチ要求）に対応するデータブロックのバッファ記憶装置１３への格納状態に応じて、バッファ記憶制御装置１３のデータブロックの格納状態を制御するもので、処理装置１２からのフェッチ要求に応じたデータブロックがバッファ記憶装置１３に格納されている場合（キャッシュヒット）には、そのデータブロックを処理装置１２に読み出す一方、処理装置１２からのフェッチ要求に応じたデータブロックがバッファ記憶装置１３に格納されていない場合（キャッシュミスヒット）には、そのデータブロックを主記憶装置１１から処理装置１２に読み出すとともにバッファ記憶装置１３に転送した後、そのデータブロックに続いて処理装置１２から読出要求されうる複数のデータブロックを先読みして主記憶装置１１かバッファ記憶装置１３に連続的に転送する先読み転送処理（プリフェッチ処理）を行なうようになっている。
【００２６】
そして、本実施例の処理装置１２は、登録状況記憶部６１と読出要求発行部１９とをそなえて構成されている。
ここで、登録状況記憶部６１は、後述するＴＡＧ部８１の写し（バッファ記憶装置１３へのデータブロックの登録状況）を記憶するものであり、具体的には、６４バイト毎のデータの登録状況をそれぞれのビットが「０」なら未登録、「１」なら登録として４つのまとまりを単位として同時に検索できる様な構成となっている。
【００２７】
また、読出要求発行部１９は、プリフェッチ処理中のデータブロックに対するフェッチ要求（先読み転送対象の複数のデータブロックのうちの一つに対する読出要求）が処理装置１２内で発生した場合に、そのフェッチ要求をバッファ記憶制御装置１４に直ちに発行するものである。
一方、本実施例のバッファ記憶制御装置１４には、転送完了判定部（転送完了判定手段）１５，通知部（通知手段）１６，データ読出部（データ読出手段）１７，転送データ順序制御部（転送データ順序制御手段）１８およびＴＡＧ部８１がそなえられている。
【００２８】
ここで、ＴＡＧ部８１は、バッファ記憶装置１３へのデータブロックの登録状況を記録しておくものであり、具体的には、６４バイト毎のデータの登録状況を、それぞれのビットが「０」なら未登録、「１」なら登録として４つのまとまりを単位として同時に記録でき、その登録状況を４つ同時に検索できるようになっている。
また、このＴＡＧ部８１には、フェッチ要求対象データがプリフェッチ対象になっているか否かを示すプリフェッチ対象フラグも設けられており、このフラグは、プリフェッチ対象である場合に「１」を、プリフェッチ対象でない場合に「０」を設定されるようになっている。
【００２９】
転送完了判定部１５は、ＴＡＧ部８１におけるデータブロックの登録状況に基づいて、処理装置１２（読出要求発行部１９）からのフェッチ要求（プリフェッチ処理中のデータに対するフェッチ要求）に応じたデータブロックの転送を完了しているか否かを判定するものである。
通知部１６は、転送完了判定部１５からの判定結果を入力され、処理装置１２からのフェッチ要求に応じたデータブロックのプリフェッチ処理を完了していないと判定された場合に、その旨を処理装置１２に通知するものである。
【００３０】
データ読出部１７は、転送完了判定部１５からの判定結果を入力され、処理装置１２からのフェッチ要求に応じたデータブロックのプリフェッチ処理を完了したと判定された場合、そのデータブロックをバッファ記憶装置１３から処理装置１２に読み出すように制御するものである。
上述の構成により、本発明の第１実施例にかかる情報処理装置によるバッファ記憶制御動作を、図３に示すブロック図，図４に示すフローチャート及び図５に示すタイムチャートを用いて以下に説明する。
【００３１】
処理装置１２内において、データブロック“０”のフェッチ要求６２が発生すると（図５の（ｔ１）参照）、登録状況記憶部６１において、要求されたデータブロック“０”がバッファ記憶装置１３に存在するかどうか検索する（図４のステップＡ１，図５の（ｔ２）参照）。
ここで、要求されたデータブロック“０”がバッファ記憶装置１３に存在した場合（キャッシュヒット）は、データ読出部１７により、そのデータブロック“０”をバッファ記憶装置１４から読み出す（図４のステップＡ１のＹＥＳルートからステップＡ４）一方、、要求されたデータブロック“０”がバッファ記憶装置１３に存在せず、ミスヒットとなった場合は、バッファ記憶制御装置１４に対して、主記憶装置１１からバッファ記憶装置１３へのデータブロック“０”の転送要求８３を出力する（図４のステップＡ１のＮＯルート）。
【００３２】
バッファ記憶制御装置１４においては、転送要求８３の対象データブロック“０”のバッファ登録状況だけでなく、プリフェッチ処理として、後続するアドレスにおける例えば２５６バイト分のデータブロック“１”〜“３”の登録状況をも、ＴＡＧ部８１を検索することにより調べ、その結果に応じて、主記憶装置１１へ要求データブロックの転送要求８４を順次出力する。
【００３３】
そして、バッファ記憶装置１４からの転送要求８４に対する主記憶装置１１からの応答９１として、バッファ記憶装置１３において、転送要求８３に対応したデータブロックの登録が行なわれる（図４のステップＡ２のＮＯルートからステップＡ６）とともに、処理装置１２に対して、転送要求８３に対応したデータブロックが出力され（図４のステップＡ４参照）、ＴＡＧ部８１の内容の更新登録が行なわれ、フェッチ要求６２に対する応答が完了する（図５の（ｔ３）参照）。
【００３４】
その後、転送要求８３に対応したデータブロックの検索処理とともに行なわれた後続するデータブロックの登録状況の検索処理の結果に基づいて、後続するデータブロック“１”〜“３”がバッファ記憶装置１３に登録されていない場合は、データブロック“１”〜“３”に対するプリフェッチ処理が行なわれ、そのプリフェッチ対象のデータブロックについては、ＴＡＧ部８１におけるプリフェッチ対象フラグが「１」に設定される。
【００３５】
つまり、主記憶装置１１に対するデータブロック“１”のバッファ記憶装置１３へのデータ登録要求８５，その応答９２としてのバッファ記憶装置１３へのデータの登録，主記憶装置１１に対するデータブロック“２”のバッファ記憶装置１３へのデータ登録要求８６，その応答９３としてのバッファ記憶装置１３へのデータの登録，主記憶装置１１に対するデータブロック“３”のバッファ記憶装置１３へのデータ登録要求８７及びその応答９４としてのバッファ記憶装置１３へのデータの登録が、順次、継続して行なわれる（図５の（ｔ３）参照）。
【００３６】
このようにしてデータの登録が行なわれると、登録されたデータブロックについて、ＴＡＧ部８１（登録状況記憶部６１）における登録状況を示すビットが更新（「１」に設定）される。
ここで、転送要求６２によって開始したプリフェッチ動作に対応するデータが、応答９２によるバッファ記憶装置１３へのデータ転送中である時、処理装置１２内でデータブロック“１”に対する第２のフェッチ要求６３が発生したとすると（図４のステップＡ２からＹＥＳルート，図５の（ｔ４）参照）、このフェッチ要求６３は、読出要求発行部１９により、抑止されることなく、通常の要求と同じようにそのままバッファ記憶装置１４に対して転送要求６４として発行される。
【００３７】
この場合、応答９１によりＴＡＧ部８１が更新されており、バッファ記憶制御装置１４の転送完了判定部１５においては、ＴＡＧ部８１（登録状況，プリフェッチ対象ビット）を参照することにより、第２のフェッチ要求６３の対象データブロック“１”が、プリフェッチ登録であるか否か、さらには、既にバッファ記憶装置１３に登録されているか否かを判定することができる。
【００３８】
転送完了判定部１５により、第２のフェッチ要求６３の対象データブロック“１”が、現在処理中のプリフェッチ動作によってデータが転送中で未だバッファ記憶装置１３に登録されていないと判定された場合には、通知部１６より、直ちにその旨を示す応答８８が処理装置１２へ返される（図４のステップＡ３のＮＯルートからステップＡ５）。このような応答を受けた処理装置１２は、あたかも要求データがバッファ記憶装置１３でヒットしたかのようにそのまま処理を継続することができる。
【００３９】
そして、処理装置１２側ではこの応答のしかる時間の後にバッファ記憶制御装置１４に対する転送要求６４の出力動作を繰り返し行ない、転送完了判定部１５において、要求データブロック“１”のバッファ記憶装置１３への登録が完了したと判定すると、データ読出部１７により、バッファ記憶装置１３に登録されたデータブロック“１”の処理装置１２へのフェッチ動作を行なう（図５の（ｔ５），図４のステップＡ３のＹＥＳルートからステップＡ４）。
【００４０】
即ち、処理装置１２からバッファ記憶制御装置１４に対して転送要求６４が出力されると、転送完了判定部１５においては、バッファ記憶装置１３に、第２のフェッチ要求６３に対応するデータブロック“１”が格納されていると判定され、データ読出部１７において、バッファ記憶装置１３における当該データの読み出し動作が行なわれる。
【００４１】
なお、転送要求６２によって開始したプリフェッチ動作に対応するデータブロックが、、応答９２によるバッファ記憶装置１３へのデータ転送中である時、処理装置１２内で、バッファ記憶装置１３に格納されておらず且つプリフェッチ動作に関係しないデータブロックに対するフェッチ要求が発生した場合には、バッファ記憶制御装置１４においては、現在実行中のプリフェッチ動作を直ちに中止して、発生したフェッチ要求に対するデータブロックを、主記憶装置１１からバッファ記憶装置１３へ登録する処理を行なう（図４のステップＡ２のＮＯルートからステップＡ６）。
【００４２】
このように、本発明の第１実施例によれば、バッファ記憶制御装置１４により、第２のフェッチ要求６３に応じたデータブロックのプリフェッチ処理を完了していなければその旨を処理装置１２へ通知し、第２のフェッチ要求６３に応じたデータブロックのプリフェッチ処理を完了していればそのデータブロックをバッファ記憶装置１３から処理装置１２に読み出すことができるので、先行するフェッチ要求に対する後続のフェッチ要求が先行のフェッチ要求によってプリフェッチの対象となった場合における後続のフェッチの実行の制約を軽減することができ、無駄な待ち時間を無くし、アクセス速度向上を図ることができ、ひいてはスループットの低下を防止できる利点がある。
【００４３】
（ｂ）第２実施例の説明
図６は本発明の第２実施例にかかる情報処理装置を示すブロック図であり、この図６に示す情報処理装置は、前述の第１実施例におけるものに比して、バッファ記憶制御装置１４に転送データ順序制御部１８をそなえている点が異なり、その他の構成要素については、同様の機能を有している。
【００４４】
ここで、転送データ順序制御部１８は、バッファ記憶制御装置１４がプリフェッチ処理に際して複数のデータブロック（本実施例では３つのデータブロック）のプリフェッチを連続的に行なうものである場合に、転送完了判定部１５により第２のフェッチ要求に応じたデータブロックのプリフェッチを完了していないと判定された場合、プリフェッチ順序（バッファ記憶装置１３への登録順序）を入れ替え変更して第２のフェッチ要求に応じたデータブロックのプリフェッチを優先的に行なうものである。
【００４５】
つまり、第２実施例では、図７〜図９により後述するごとく、プリフェッチするデータブロックの順番を、フェッチ要求のあった順に変更できるようになっている。
上述の構成により、本発明の第２実施例にかかる情報処理装置において行なわれるバッファ記憶制御を、図７に示すブロック図，図８に示すフローチャート及び図９に示すタイムチャートを用いて以下に説明する。
【００４６】
基本的には第１実施例の場合と同様に、処理装置１２内において、データブロック“０”のフェッチ要求６２が発生すると（図９の（ｔ１１）参照）、登録状況記憶部６１において、要求されたデータブロック“０”がバッファ記憶装置１３に存在するかどうか検索する（図８のステップＢ１，図９の（ｔ１２）参照）。
【００４７】
ここで、要求されたデータブロック“０”がバッファ記憶装置１３に存在した場合（キャッシュヒット）は、データ読出部１７により、そのデータをバッファ記憶装置１３から読み出す（図８のステップＢ１のＹＥＳルートからステップＢ５）一方、要求されたデータブロック“０”がバッファ記憶装置１３に存在せず、ミスヒットとなった場合は、バッファ記憶制御装置１４に対して、主記憶装置１１からバッファ記憶装置１３へのデータブロック“０”の転送要求８３を出力する（図８のステップＢ１のＮＯルート）。
【００４８】
転送要求８３を受けたバッファ記憶制御装置１４においては、要求８３の対象データブロック“０”のバッファ登録状況だけでなく、プリフェッチ処理として、後続するアドレスにおける２５６バイト分のデータブロック“１”〜“３”の登録状況をも、ＴＡＧ部８１を検索することにより調べ、その結果に応じて、主記憶装置１１へ要求データの転送要求８４を出力する。
【００４９】
この場合においては、転送要求８４に対応するデータブロックがプリフェッチ動作中の対象ブロックでないので、上記の転送要求８４に対する主記憶装置１１からの応答９１を受けて、バッファ記憶装置１３において、転送要求８３に対応したデータブロックの登録が行なわれる（図８のステップＢ２のＮＯルートからステップＢ８）とともに、処理装置１２に対して、転送要求８３に対応したデータが出力され（図８のステップＢ５参照）、ＴＡＧ部８１の内容の更新登録が行なわれ、フェッチ要求６２に対する応答が完了する（図９の（ｔ１３）参照）。
【００５０】
その後、転送要求８３に対応したデータブロックの検索処理とともに行なわれた後続するデータブロックの登録状況の検索処理の結果に基づいて、後続するデータブロック“１”〜“３”がバッファ記憶装置１３に登録されていない場合は、データブロック“１”〜“３”に対するプリフェッチ処理が行なわれ、そのプリフェッチ対象のデータブロックについては、ＴＡＧ部８１におけるプリフェッチ対象フラグが「１」に設定される。
【００５１】
つまり、主記憶装置１１に対するデータブロック“１”のバッファ記憶装置１３へのデータ登録要求８５，その応答９２としてのバッファ記憶装置１３へのデータの登録，主記憶装置１１に対するデータブロック“２”のバッファ記憶装置１３へのデータ登録要求８６，その応答としてのバッファ記憶装置１３へのデータの登録，主記憶装置１１に対するデータブロック“３”のバッファ記憶装置１３へのデータ登録要求８７及びその応答９３としてのバッファ記憶装置１３へのデータの登録が、順次、継続して行なわれる（図９の（ｔ１３）参照）。
【００５２】
このようにしてデータブロックの登録が行なわれると、登録されたデータブロックについて、ＴＡＧ部８１（登録状況記憶部６１）における登録状況を示すビットが更新（「１」に設定）される。
ここで、転送要求６２によって開始したプリフェッチ動作に対応するデータブロックが、応答９２によるバッファ記憶装置１３へのデータ転送中である時、処理装置１２内でデータブロック“３”に対する第２のフェッチ要求６５が発生したとすると（図８のステップＢ２のＹＥＳルート，図９の（ｔ１４）参照）、このフェッチ要求６５は、読出要求発行部１９により、抑止されることなく、通常の要求と同じようにそのままバッファ記憶装置１４に対して転送要求６６として発行される。
【００５３】
このとき、第２実施例では、データブロック“０”の転送要求８３の様に、バッファ記憶装置１３に、既にデータ転送が終了したものについては、通知部１６より、直ちに応答８８が返されるが、転送要求６６のように、プリフェッチ動作によりバッファ記憶装置１３への登録が予定されてはいるがまだ転送されていないものに対する要求がなされたと判定された場合には、転送データ順序制御部１８により、ＴＡＧ部８１のバッファ登録ビットとプリフェッチ対象フラグとを参照して、当該要求データブロック“３”を優先してバッファ記憶装置１３に登録できるか否かを判定する（図８のステップＢ３）。
【００５４】
そして、当該要求データブロック“３”を優先してバッファ記憶装置１３に登録できる場合（図８のステップＢ３のＹＥＳルート）は、転送データ順序制御部１８から発行する要求８７により、転送データ順序を変更し（図８のステップＢ６）、当該データブロック“３”をバッファ記憶装置１３に優先的に登録する。即ち、転送データ順序制御部１８は、次にバッファ記憶装置１３へデータブロック“２”を転送する要求８６を追い越して要求８７を発行するとともに処理装置１２への応答８９を行なうように制御するのである（図９の（ｔ１６）参照）。
【００５５】
その後、転送完了判定部１５において、要求８７に対応するデータブロック“３”がバッファ記憶装置１３に登録されたことが、要求データ登録完了信号により確認されると（ステップＢ４のＹＥＳルート）、バッファ記憶装置１３に第２のフェッチ要求６５に対応するデータブロック“３”が格納されていると判定され、データ読出部１７により、バッファ記憶装置１３における当該データブロックの読み出し動作が行なわれる（図８のステップＢ５）。
【００５６】
また、転送完了判定部１５において、転送要求に対応するデータブロックが転送中であって、バッファ記憶装置１３への登録が完了していないと判定された場合は、通知部１６により、その旨を示す応答が処理装置１２に対して出力される（図８のステップＢ４のＮＯルートからステップＢ７，図９の（ｔ１５）参照）。
このように、本発明の第２実施例によっても第１実施例と同様の作用効果が得られるほか、この第２実施例によれば、プリフェッチ処理に際して複数のデータのプリフェッチを連続的に行なう場合に、プリフェッチ処理中のデータブロックに対する処理装置１２の第２のフェッチ要求６５に応じたデータブロックのプリフェッチを完了していなければ、バッファ記憶制御装置１４により、データブロックのプリフェッチ順序を変更し、その第２のフェッチ要求６５に応じたデータブロックのプリフェッチを優先的に行なうことにより、後続するフェッチ要求のペナルティを最少限にすることができ、飛躍的にアクセス速度を向上させることができ、スループットの低下を確実に防止でき、ひいてはシステムの性能向上に大きく寄与する利点がある。
【００５８】
【発明の効果】
以上詳述したように、本発明によれば、先読み転送処理中に先読み転送対象の複数のデータブロックのうちの一つに対する読出要求が発生した際に、その読出要求に応じたデータブロックの先読み転送を完了していなければその旨をデータ処理部へ通知し、当該読出要求に応じたデータブロックの先読み転送を完了していればそのデータブロックをバッファ記憶部からデータ処理部に読み出すことができるので、先行するフェッチ要求に対する後続のフェッチ要求が先行のフェッチ要求によってプリフェッチの対象となった場合における後続のフェッチの実行の制約を軽減することができ、無駄な待ち時間を無くし、アクセス速度向上を図ることができ、ひいてはスループットの低下を防止することができる利点があるほか、前記先読み転送処理に際して複数のデータブロックの先読み転送を連続的に行なう場合に、当該読出要求に応じたデータブロックの先読み転送を完了していなければ、バッファ記憶制御部により、先読み転送処理中において、前記複数のデータブロックの先読み転送順序を変更し、当該読出要求に応じたデータブロックの先読み転送を優先的に行なうことにより、後続する読出要求のペナルティを最少限に抑制できるので、飛躍的にアクセス速度を向上させることができ、スループットの低下を確実に防止でき、システムの性能向上に大きく寄与する利点もある。
【図面の簡単な説明】
【図１】本発明の原理ブロック図である。
【図２】本発明の第１実施例を示すブロック図である。
【図３】本発明の第１実施例の動作を説明するためのブロック図である。
【図４】本発明の第１実施例の動作を説明するためのフローチャートである。
【図５】本発明の第１実施例の動作を説明するためのタイムチャートである。
【図６】本発明の第２実施例を示すブロック図である。
【図７】本発明の第２実施例の動作を説明するためのブロック図である。
【図８】本発明の第２実施例の動作を説明するためのフローチャートである。
【図９】本発明の第２実施例の動作を説明するためのタイムチャートである。
【図１０】一般的な情報処理装置を示すブロック図である。
【図１１】一般的な情報処理装置の動作を説明するためのタイムチャートである。
【符号の説明】
１  記憶部
２  データ処理部
３  バッファ記憶部
４  バッファ記憶制御部
５  読出要求発行手段
６  転送完了判定手段
７  通知手段
８  データ読出手段
９  転送データ順序制御手段
１１  主記憶装置（記憶部）
１２  処理装置（データ処理部）
１３  バッファ記憶装置（バッファ記憶部）
１４  バッファ記憶制御装置（バッファ記憶制御部）
１５  転送完了判定部（転送完了判定手段）
１６  通知部
１７  データ読出部（データ読出手段）
１８  転送データ順序制御部（転送データ順序制御手段）
１９  読出要求発行部（読出要求発行手段）
６１  登録状況記憶部
８１  ＴＡＧ部
【図１】
0003668504.tif 000002
【図２】
0003668504.tif 000003
【図３】
0003668504.tif 000004
【図４】
0003668504.tif 000005
【図５】
0003668504.tif 000006
【図６】
0003668504.tif 000007
【図７】
0003668504.tif 000008
【図８】
0003668504.tif 000009
【図９】
0003668504.tif 000010
【図１０】
0003668504.tif 000011
【図１１】
0003668504.tif 000012