JPH06110780A - バッファ記憶装置 - Google Patents
バッファ記憶装置Info
- Publication number
- JPH06110780A JPH06110780A JP4258540A JP25854092A JPH06110780A JP H06110780 A JPH06110780 A JP H06110780A JP 4258540 A JP4258540 A JP 4258540A JP 25854092 A JP25854092 A JP 25854092A JP H06110780 A JPH06110780 A JP H06110780A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- address
- storage device
- buffer storage
- 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
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 主記憶部の連続した領域にアクセスするとき
にバッファ記憶装置を効果的に使い、かつキャッシュミ
スによる待ち時間を少なくする。 【構成】 バッファ記憶装置1は、アドレスラッチ12
に格納された入出力装置からの要求アドレスとディレク
トリメモリ14の記憶内容を比較器13にて比較し、要
求されたデータがデータ格納メモリ19内にある場合に
はそのデータを入出力装置へ転送する。バッファ記憶装
置1は、比較器21によって、転送するデータがデータ
格納メモリ19のブロック内の最後のデータであること
を検出すると、データを転送すると同時に、最後のデー
タの次のアドレスのデータを主記憶装置から読み出して
データ格納メモリ19に格納しておく。
にバッファ記憶装置を効果的に使い、かつキャッシュミ
スによる待ち時間を少なくする。 【構成】 バッファ記憶装置1は、アドレスラッチ12
に格納された入出力装置からの要求アドレスとディレク
トリメモリ14の記憶内容を比較器13にて比較し、要
求されたデータがデータ格納メモリ19内にある場合に
はそのデータを入出力装置へ転送する。バッファ記憶装
置1は、比較器21によって、転送するデータがデータ
格納メモリ19のブロック内の最後のデータであること
を検出すると、データを転送すると同時に、最後のデー
タの次のアドレスのデータを主記憶装置から読み出して
データ格納メモリ19に格納しておく。
Description
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、主記憶装置のデータの
写しを記憶するバッファ記憶装置に係わり、特に入出力
装置と主記憶装置との間のバッファ記憶装置に関する。
写しを記憶するバッファ記憶装置に係わり、特に入出力
装置と主記憶装置との間のバッファ記憶装置に関する。
【0002】
【従来の技術】従来、入出力装置と主記憶装置との間の
バッファ記憶装置としては、ファーストイン・ファース
トアウト(FIFO)メモリがあった。バッファ記憶装
置は、入出力装置のメモリエリアへの連続アクセスに対
してブロックサイズ分のFIFOとして動作する。
バッファ記憶装置としては、ファーストイン・ファース
トアウト(FIFO)メモリがあった。バッファ記憶装
置は、入出力装置のメモリエリアへの連続アクセスに対
してブロックサイズ分のFIFOとして動作する。
【0003】ところで、このようなバッファ記憶装置
を、データ転送動作が低速の入出力装置(以下、低速装
置という。)とデータ転送動作が高速の入出力装置(以
下、高速装置という。)が利用する場合がある。この場
合において、低速装置と高速装置が同時に動作した場
合、低速装置のために主記憶装置から読み出されてバッ
ファ記憶装置内のメモリに蓄えられているデータが、全
て低速装置に転送される前に、高速装置のために主記憶
装置から読み出されたデータに置き換えられてしまうこ
とがある。このため、用意されたバッファ記憶装置が十
分に働かないという不具合が発生した。
を、データ転送動作が低速の入出力装置(以下、低速装
置という。)とデータ転送動作が高速の入出力装置(以
下、高速装置という。)が利用する場合がある。この場
合において、低速装置と高速装置が同時に動作した場
合、低速装置のために主記憶装置から読み出されてバッ
ファ記憶装置内のメモリに蓄えられているデータが、全
て低速装置に転送される前に、高速装置のために主記憶
装置から読み出されたデータに置き換えられてしまうこ
とがある。このため、用意されたバッファ記憶装置が十
分に働かないという不具合が発生した。
【0004】そこで、特開平2−112039号公報に
は、要求アドレスに応じて転送するデータがバッファ記
憶装置のデータ格納メモリのブロック内の最後のデータ
のときに、データを転送すると同時に、当該ブロックを
指しているディレクトリ内の無効ビットをセットするこ
とにより、低速装置用のデータがバッファ記憶装置から
追い出される頻度を減少する技術が示されている。
は、要求アドレスに応じて転送するデータがバッファ記
憶装置のデータ格納メモリのブロック内の最後のデータ
のときに、データを転送すると同時に、当該ブロックを
指しているディレクトリ内の無効ビットをセットするこ
とにより、低速装置用のデータがバッファ記憶装置から
追い出される頻度を減少する技術が示されている。
【0005】ここで、前記公報に示される従来のバッフ
ァ記憶装置の動作について、図7および図8を参照して
説明する。なお、以下の説明では、システムバスに中央
処理装置(以下、CPUと記す。)と主記憶装置が接続
され、入出力バス(以下、I/Oバスと記す。)に入出
力装置が接続され、システムバスとI/Oバスとの間に
バッファ記憶装置が設けられたシステムを想定してい
る。
ァ記憶装置の動作について、図7および図8を参照して
説明する。なお、以下の説明では、システムバスに中央
処理装置(以下、CPUと記す。)と主記憶装置が接続
され、入出力バス(以下、I/Oバスと記す。)に入出
力装置が接続され、システムバスとI/Oバスとの間に
バッファ記憶装置が設けられたシステムを想定してい
る。
【0006】図7は、入出力装置がバッファ記憶装置を
介して主記憶装置からデータを読み込むときの従来のバ
ッファ記憶装置の動作を示すフローチャートである。こ
の動作では、まずステップ(以下、Sと記す。)121
で、入出力装置から要求されたデータがバッファ記憶装
置内にキャッシュされているか否かを判断し、キャッシ
ュされている場合(“Y”)は、S123でそのデータ
を入出力装置へ転送する。一方、データがキャッシュさ
れていない場合(“N”)は、S122で主記憶装置か
らデータを読み込み、S123でそのデータを入出力装
置へ転送する。次に、S124で、最後のデータを転送
したか否かを判断し、転送していなければ(“N”)、
S121へ戻り、転送していれば(“Y”)、S125
で、有効ビットをクリア、すなわち無効ビットをセット
して終了する。
介して主記憶装置からデータを読み込むときの従来のバ
ッファ記憶装置の動作を示すフローチャートである。こ
の動作では、まずステップ(以下、Sと記す。)121
で、入出力装置から要求されたデータがバッファ記憶装
置内にキャッシュされているか否かを判断し、キャッシ
ュされている場合(“Y”)は、S123でそのデータ
を入出力装置へ転送する。一方、データがキャッシュさ
れていない場合(“N”)は、S122で主記憶装置か
らデータを読み込み、S123でそのデータを入出力装
置へ転送する。次に、S124で、最後のデータを転送
したか否かを判断し、転送していなければ(“N”)、
S121へ戻り、転送していれば(“Y”)、S125
で、有効ビットをクリア、すなわち無効ビットをセット
して終了する。
【0007】
【発明が解決しようとする課題】ところで、プリンタの
ような入出力装置では主記憶装置から読み出したデータ
を再び読み込むことはまれであり、このような場合に
は、前記公報に示されるようにバッファ記憶装置のキャ
ッシュを無効化するのは有効である。
ような入出力装置では主記憶装置から読み出したデータ
を再び読み込むことはまれであり、このような場合に
は、前記公報に示されるようにバッファ記憶装置のキャ
ッシュを無効化するのは有効である。
【0008】しかしながら、プリンタのような入出力装
置では、主記憶装置の連続した領域を読み込むため、バ
ッファ記憶装置内にキャッシュされているブロックサイ
ズ分のデータを転送してしまうと、次のアクセスでは必
ずキャッシュミスが発生してしまうという問題点があ
る。
置では、主記憶装置の連続した領域を読み込むため、バ
ッファ記憶装置内にキャッシュされているブロックサイ
ズ分のデータを転送してしまうと、次のアクセスでは必
ずキャッシュミスが発生してしまうという問題点があ
る。
【0009】図8は、入出力装置が主記憶装置からバッ
ファ記憶装置内のデータブロック分のデータを連続して
読み込むときの従来の動作を示すタイミングチャートで
ある。この動作では、まず(a)に示すようにI/Oバ
スを介して入出力装置からバッファ記憶装置に対してデ
ータ転送要求があり、要求されたデータがバッファ記憶
装置内にキャッシュされていればそのデータを入出力装
置へ転送するが、キャッシュされていなければ、
(c)、(d)に示すようにシステムバスを介して主記
憶装置からデータを読み込み、そのデータを(b)に示
すようにI/Oバスを介して入出力装置に転送する。こ
の図に示すように、従来は、バッファ記憶装置内にキャ
ッシュされているブロックサイズ分のデータを転送して
しまうと、次のアクセスでは必ずキャッシュミスが発生
するので、バッファ記憶装置は、入出力装置からのデー
タ転送要求後、主記憶装置にアクセスしてデータを読み
込み、入出力装置を転送するという動作を行う。従っ
て、入出力装置がデータを要求してから受け取るまでの
時間が長くなる。なお、図8(a)、(c)においてロ
ウの期間がバス占有期間である。
ファ記憶装置内のデータブロック分のデータを連続して
読み込むときの従来の動作を示すタイミングチャートで
ある。この動作では、まず(a)に示すようにI/Oバ
スを介して入出力装置からバッファ記憶装置に対してデ
ータ転送要求があり、要求されたデータがバッファ記憶
装置内にキャッシュされていればそのデータを入出力装
置へ転送するが、キャッシュされていなければ、
(c)、(d)に示すようにシステムバスを介して主記
憶装置からデータを読み込み、そのデータを(b)に示
すようにI/Oバスを介して入出力装置に転送する。こ
の図に示すように、従来は、バッファ記憶装置内にキャ
ッシュされているブロックサイズ分のデータを転送して
しまうと、次のアクセスでは必ずキャッシュミスが発生
するので、バッファ記憶装置は、入出力装置からのデー
タ転送要求後、主記憶装置にアクセスしてデータを読み
込み、入出力装置を転送するという動作を行う。従っ
て、入出力装置がデータを要求してから受け取るまでの
時間が長くなる。なお、図8(a)、(c)においてロ
ウの期間がバス占有期間である。
【0010】そこで本発明の目的は、主記憶部の連続し
た領域にアクセスするときに効果的に使うことができ、
かつキャッシュミスによる待ち時間を少なくすることの
できるバッファ記憶装置を提供することにある。
た領域にアクセスするときに効果的に使うことができ、
かつキャッシュミスによる待ち時間を少なくすることの
できるバッファ記憶装置を提供することにある。
【0011】
【課題を解決するための手段】請求項1記載の発明のバ
ッファ記憶装置は、主記憶部のデータの写しをブロック
単位で格納するデータ格納メモリと、このデータ格納メ
モリに格納されたデータに対応する主記憶部のアドレス
の少なくとも一部を格納するディレクトリメモリと、デ
ータ要求装置からの要求アドレスとディレクトリメモリ
に格納されたアドレスとを比較する比較手段と、この比
較手段による比較の結果、両アドレスが一致する場合に
は要求アドレスに対応するデータをデータ格納メモリよ
りデータ要求装置へ転送し、両アドレスが一致しない場
合には要求アドレスに対応するデータを主記憶部から読
み出してデータ格納メモリに格納すると共にデータ要求
装置へ転送し、そのデータに対応するアドレスでディレ
クトリメモリの内容を置き換える転送制御手段と、要求
アドレスに応じてデータ要求装置へ転送するデータがデ
ータ格納メモリにおけるブロック内の最後のデータであ
ることを検出する検出手段と、この検出手段によってブ
ロック内の最後のデータであることが検出されたとき
に、次のアドレスのデータを主記憶部から読み出してデ
ータ格納メモリに格納する先読み手段とを備えたもので
ある。
ッファ記憶装置は、主記憶部のデータの写しをブロック
単位で格納するデータ格納メモリと、このデータ格納メ
モリに格納されたデータに対応する主記憶部のアドレス
の少なくとも一部を格納するディレクトリメモリと、デ
ータ要求装置からの要求アドレスとディレクトリメモリ
に格納されたアドレスとを比較する比較手段と、この比
較手段による比較の結果、両アドレスが一致する場合に
は要求アドレスに対応するデータをデータ格納メモリよ
りデータ要求装置へ転送し、両アドレスが一致しない場
合には要求アドレスに対応するデータを主記憶部から読
み出してデータ格納メモリに格納すると共にデータ要求
装置へ転送し、そのデータに対応するアドレスでディレ
クトリメモリの内容を置き換える転送制御手段と、要求
アドレスに応じてデータ要求装置へ転送するデータがデ
ータ格納メモリにおけるブロック内の最後のデータであ
ることを検出する検出手段と、この検出手段によってブ
ロック内の最後のデータであることが検出されたとき
に、次のアドレスのデータを主記憶部から読み出してデ
ータ格納メモリに格納する先読み手段とを備えたもので
ある。
【0012】このバッファ記憶装置では、検出手段によ
って、要求アドレスに応じてデータ要求装置へ転送する
データがデータ格納メモリにおけるブロック内の最後の
データであることが検出されると、先読み手段によっ
て、次のアドレスのデータが主記憶部から読み出されデ
ータ格納メモリに格納される。
って、要求アドレスに応じてデータ要求装置へ転送する
データがデータ格納メモリにおけるブロック内の最後の
データであることが検出されると、先読み手段によっ
て、次のアドレスのデータが主記憶部から読み出されデ
ータ格納メモリに格納される。
【0013】請求項2記載の発明のバッファ記憶装置
は、請求項1記載の発明において更に、先読み手段によ
って次のアドレスのデータを主記憶部から読み出すか否
かを設定する設定手段を備え、データの先読みを有効に
するか否かを任意に設定できるようにしたものである。
は、請求項1記載の発明において更に、先読み手段によ
って次のアドレスのデータを主記憶部から読み出すか否
かを設定する設定手段を備え、データの先読みを有効に
するか否かを任意に設定できるようにしたものである。
【0014】
【実施例】以下、図面を参照して本発明の実施例につい
て説明する。図1ないし図5は本発明の第1実施例に係
るものである。
て説明する。図1ないし図5は本発明の第1実施例に係
るものである。
【0015】図1は本実施例のバッファ記憶装置が適用
される情報処理システムの概略の構成を示すブロック図
である。このシステムでは、システムバス5にCPU2
および主記憶装置3が接続され、I/Oバス5に入出力
装置4が接続され、システムバス5とI/Oバス6との
間に本実施例のバッファ記憶装置1が設けられている。
される情報処理システムの概略の構成を示すブロック図
である。このシステムでは、システムバス5にCPU2
および主記憶装置3が接続され、I/Oバス5に入出力
装置4が接続され、システムバス5とI/Oバス6との
間に本実施例のバッファ記憶装置1が設けられている。
【0016】ここで、本実施例の特徴を簡単に説明す
る。図1に示すシステムでは、入出力装置4が主記憶装
置3のデータを読み出すときには、入出力装置4がI/
Oバス6に対してデータ要求を出す。このデータ要求を
受け取ったバッファ記憶装置1は、自装置内にデータが
キャッシュされているか否かを調べ、キャッシュされて
いれば自装置内のデータを入出力装置4へ転送する。し
かし、バッファ記憶装置1内にデータがキャッシュされ
ていないときには、バッファ記憶装置1がシステムバッ
ファ5上の主記憶装置3にデータ要求を行う。このデー
タ要求に応じて、主記憶装置3はバッファ記憶装置1に
データを転送し、更にバッファ記憶装置1は主記憶装置
3からのデータを入出力装置4へ転送する。このとき、
バッファ記憶装置1内のキャッシュは更新される。
る。図1に示すシステムでは、入出力装置4が主記憶装
置3のデータを読み出すときには、入出力装置4がI/
Oバス6に対してデータ要求を出す。このデータ要求を
受け取ったバッファ記憶装置1は、自装置内にデータが
キャッシュされているか否かを調べ、キャッシュされて
いれば自装置内のデータを入出力装置4へ転送する。し
かし、バッファ記憶装置1内にデータがキャッシュされ
ていないときには、バッファ記憶装置1がシステムバッ
ファ5上の主記憶装置3にデータ要求を行う。このデー
タ要求に応じて、主記憶装置3はバッファ記憶装置1に
データを転送し、更にバッファ記憶装置1は主記憶装置
3からのデータを入出力装置4へ転送する。このとき、
バッファ記憶装置1内のキャッシュは更新される。
【0017】本実施例のバッファ記憶装置1では、自装
置内に入出力装置4が要求したデータが存在するときに
入出力装置4の要求アドレスを調べ、この要求アドレス
がキャッシュのブロックの最後のデータを指していると
きに、この要求アドレスに対応するデータを入出力装置
4へ転送すると共に、要求アドレスの次のアドレスのデ
ータを主記憶装置3から読み出す。このようにして、本
実施例では、入出力装置4が主記憶装置3の連続した領
域を読み込むときに、バッファ記憶装置1が主記憶装置
3に対してデータの先読みを行うので、入出力装置4か
ら要求されたデータを高速に転送することができる。
置内に入出力装置4が要求したデータが存在するときに
入出力装置4の要求アドレスを調べ、この要求アドレス
がキャッシュのブロックの最後のデータを指していると
きに、この要求アドレスに対応するデータを入出力装置
4へ転送すると共に、要求アドレスの次のアドレスのデ
ータを主記憶装置3から読み出す。このようにして、本
実施例では、入出力装置4が主記憶装置3の連続した領
域を読み込むときに、バッファ記憶装置1が主記憶装置
3に対してデータの先読みを行うので、入出力装置4か
ら要求されたデータを高速に転送することができる。
【0018】図2は本実施例のバッファ記憶装置1の構
成を示すブロック図である。このバッファ記憶装置1
は、システムバス5とのインターフェースをとるシステ
ムバスインターフェース10と、I/Oバス6とのイン
ターフェースをとるI/Oバスインターフェース11
と、このI/Oバスインターフェース11に接続された
アドレスラッチ12およびデータラッチ20と、システ
ムバスインターフェース10に接続されたディレクトリ
メモリ14、有効ビットメモリ15、先読みビットメモ
リ16およびデータラッチ17とを備えている。バッフ
ァ記憶装置1は、更に、データラッチ17とデータラッ
チ20の間に設けられたデータ格納メモリ19と、アド
レスラッチ12に格納されたアドレスとディレクトリメ
モリ14に格納されたアドレスとを比較する比較器13
および比較器21と、バッファ記憶装置1全体の動作を
制御するバッファ記憶制御部18とを備えている。
成を示すブロック図である。このバッファ記憶装置1
は、システムバス5とのインターフェースをとるシステ
ムバスインターフェース10と、I/Oバス6とのイン
ターフェースをとるI/Oバスインターフェース11
と、このI/Oバスインターフェース11に接続された
アドレスラッチ12およびデータラッチ20と、システ
ムバスインターフェース10に接続されたディレクトリ
メモリ14、有効ビットメモリ15、先読みビットメモ
リ16およびデータラッチ17とを備えている。バッフ
ァ記憶装置1は、更に、データラッチ17とデータラッ
チ20の間に設けられたデータ格納メモリ19と、アド
レスラッチ12に格納されたアドレスとディレクトリメ
モリ14に格納されたアドレスとを比較する比較器13
および比較器21と、バッファ記憶装置1全体の動作を
制御するバッファ記憶制御部18とを備えている。
【0019】アドレスラッチ12は入出力装置4からの
要求アドレスを格納するものである。データ格納メモリ
19は主記憶装置3のデータの写しをブロック単位で格
納するものである。ディレクトリメモリ14はデータ格
納メモリ19に格納されたデータに対応する主記憶装置
3のアドレスの少なくとも一部を格納するものである。
データラッチ17、20は、それぞれ、データ格納メモ
リ19とシステムバスインターフェース10の間、デー
タ格納メモリ19とI/Oバスインターフェース11の
間で転送するデータを一時的に格納するものである。
要求アドレスを格納するものである。データ格納メモリ
19は主記憶装置3のデータの写しをブロック単位で格
納するものである。ディレクトリメモリ14はデータ格
納メモリ19に格納されたデータに対応する主記憶装置
3のアドレスの少なくとも一部を格納するものである。
データラッチ17、20は、それぞれ、データ格納メモ
リ19とシステムバスインターフェース10の間、デー
タ格納メモリ19とI/Oバスインターフェース11の
間で転送するデータを一時的に格納するものである。
【0020】比較器13は、入出力装置4から要求され
たアドレスのデータがバッファ記憶装置1内にあるか否
かを判定するために、ディレクトリメモリ14から読み
出されたアドレス情報とアドレスラッチ12に格納され
ているアドレスとを比較するものである。一方、比較器
21は、アドレスラッチ12に格納されているアドレス
とディレクトリメモリ14から読み出されたアドレス情
報から分かるデータ格納メモリ19内のデータブロック
の最後のアドレスとを比較するものである。
たアドレスのデータがバッファ記憶装置1内にあるか否
かを判定するために、ディレクトリメモリ14から読み
出されたアドレス情報とアドレスラッチ12に格納され
ているアドレスとを比較するものである。一方、比較器
21は、アドレスラッチ12に格納されているアドレス
とディレクトリメモリ14から読み出されたアドレス情
報から分かるデータ格納メモリ19内のデータブロック
の最後のアドレスとを比較するものである。
【0021】有効ビットメモリ15はデータ格納メモリ
19内のブロックデータを有効とするか否かを示す有効
ビットを格納するものである。また、先読みビットメモ
リ16はデータの先読みを行うか否かを示す先読みビッ
トを格納するものである。なお、有効ビットと先読みビ
ットは、ディレクトリメモリ14内のアドレス情報に対
応付けられて格納されている。
19内のブロックデータを有効とするか否かを示す有効
ビットを格納するものである。また、先読みビットメモ
リ16はデータの先読みを行うか否かを示す先読みビッ
トを格納するものである。なお、有効ビットと先読みビ
ットは、ディレクトリメモリ14内のアドレス情報に対
応付けられて格納されている。
【0022】バッファ記憶制御部18は、システムバス
インターフェース10、I/Oバスインターフェース1
1、データ格納メモリ19、ディレクトリメモリ14、
有効ビットメモリ15、先読みビットメモリ16および
比較器13、21に接続されている。本実施例におい
て、バッファ記憶制御部18は、比較器13の両入力が
一致する場合には要求アドレスに対応するデータをデー
タ格納メモリ19より入出力装置4へ転送し、両入力が
一致しない場合には要求アドレスに対応するデータを主
記憶装置3から読み出してデータ格納メモリ19に格納
すると共にデータ入出力装置4へ転送し、そのデータに
対応するアドレスでディレクトリメモリ14の内容を置
き換える転送制御機能と、要求アドレスに応じて入出力
装置4へ転送するデータがデータ格納メモリ19におけ
るブロック内の最後のデータであることが比較器21に
よって検出されると、次のアドレスのデータを主記憶装
置3から読み出してデータ格納メモリ19に格納する先
読み機能とを有している。これらの機能は、例えばマイ
クロプロセッサによって、後で説明する図3、図4に示
す動作を実行することによって実現される。
インターフェース10、I/Oバスインターフェース1
1、データ格納メモリ19、ディレクトリメモリ14、
有効ビットメモリ15、先読みビットメモリ16および
比較器13、21に接続されている。本実施例におい
て、バッファ記憶制御部18は、比較器13の両入力が
一致する場合には要求アドレスに対応するデータをデー
タ格納メモリ19より入出力装置4へ転送し、両入力が
一致しない場合には要求アドレスに対応するデータを主
記憶装置3から読み出してデータ格納メモリ19に格納
すると共にデータ入出力装置4へ転送し、そのデータに
対応するアドレスでディレクトリメモリ14の内容を置
き換える転送制御機能と、要求アドレスに応じて入出力
装置4へ転送するデータがデータ格納メモリ19におけ
るブロック内の最後のデータであることが比較器21に
よって検出されると、次のアドレスのデータを主記憶装
置3から読み出してデータ格納メモリ19に格納する先
読み機能とを有している。これらの機能は、例えばマイ
クロプロセッサによって、後で説明する図3、図4に示
す動作を実行することによって実現される。
【0023】次に、図3ないし図5を参照して本実施例
の動作について説明する。
の動作について説明する。
【0024】図3は本実施例において、入出力装置4が
バッファ記憶装置1を介して主記憶装置3からデータを
読み込むときのバッファ記憶装置1の動作を示すフロー
チャートである。この動作では、まずS101で、入出
力装置4から要求されたデータがバッファ記憶装置1内
にキャッシュされているか否かを判断する。ここでは、
まずバッファ記憶装置1は入出力装置4からの要求アド
レスをアドレスラッチ12に格納する。次に、入出力装
置4から要求されたアドレスのデータがバッファ記憶装
置1内にあるか否かを判定するために、ディレクトリメ
モリ14から読み出されたアドレス情報とアドレスラッ
チ12にラッチされているアドレスとが比較器13によ
って比較される。比較器13は、両アドレスが一致した
ら一致信号50によってその旨をバッファ記憶制御部1
8に伝える。
バッファ記憶装置1を介して主記憶装置3からデータを
読み込むときのバッファ記憶装置1の動作を示すフロー
チャートである。この動作では、まずS101で、入出
力装置4から要求されたデータがバッファ記憶装置1内
にキャッシュされているか否かを判断する。ここでは、
まずバッファ記憶装置1は入出力装置4からの要求アド
レスをアドレスラッチ12に格納する。次に、入出力装
置4から要求されたアドレスのデータがバッファ記憶装
置1内にあるか否かを判定するために、ディレクトリメ
モリ14から読み出されたアドレス情報とアドレスラッ
チ12にラッチされているアドレスとが比較器13によ
って比較される。比較器13は、両アドレスが一致した
ら一致信号50によってその旨をバッファ記憶制御部1
8に伝える。
【0025】バッファ記憶制御部18は、比較器13か
らの一致信号50を入力し、かつ有効ビットメモリ15
を参照して要求アドレスに対応する有効ビットがオンに
なっている場合には、S101においてキャッシュされ
ている(“Y”)と判断する。この場合は、S103
で、バッファ記憶制御部18は、データ格納メモリ19
からデータを読み出す。読み出されたデータは、データ
ラッチ20、I/Oバスインターフェース11を経て入
出力装置4へ転送される。
らの一致信号50を入力し、かつ有効ビットメモリ15
を参照して要求アドレスに対応する有効ビットがオンに
なっている場合には、S101においてキャッシュされ
ている(“Y”)と判断する。この場合は、S103
で、バッファ記憶制御部18は、データ格納メモリ19
からデータを読み出す。読み出されたデータは、データ
ラッチ20、I/Oバスインターフェース11を経て入
出力装置4へ転送される。
【0026】一方、比較器13の両入力が一致しないと
き(一致信号50が出力されないとき)、または一致し
ても有効ビットがオフのときは、バッファ記憶制御部1
8は、S101においてキャッシュされていない
(“N”)と判断する。この場合は、S102で、バッ
ファ記憶制御部18は、アドレスラッチ12にラッチさ
れているアドレスに対応するデータを主記憶装置3から
読み出す。バッファ記憶制御部18は、読み出されたデ
ータをデータ格納メモリ19内のデータブロックに書き
込み、その後、このデータブロックのブロックアドレス
として、アドレスラッチ12にラッチされているアドレ
ス情報をディレクトリメモリ14に書き込み、更に、該
当するブロックアドレスに対応する有効ビットメモリ1
5内の有効ビットをオンにする。その後、S103で、
データ格納メモリ19から入出力装置4へデータが転送
される。
き(一致信号50が出力されないとき)、または一致し
ても有効ビットがオフのときは、バッファ記憶制御部1
8は、S101においてキャッシュされていない
(“N”)と判断する。この場合は、S102で、バッ
ファ記憶制御部18は、アドレスラッチ12にラッチさ
れているアドレスに対応するデータを主記憶装置3から
読み出す。バッファ記憶制御部18は、読み出されたデ
ータをデータ格納メモリ19内のデータブロックに書き
込み、その後、このデータブロックのブロックアドレス
として、アドレスラッチ12にラッチされているアドレ
ス情報をディレクトリメモリ14に書き込み、更に、該
当するブロックアドレスに対応する有効ビットメモリ1
5内の有効ビットをオンにする。その後、S103で、
データ格納メモリ19から入出力装置4へデータが転送
される。
【0027】S103の後、S104で、バッファ記憶
制御部18は、データ格納メモリ19におけるデータブ
ロック内の最後のデータを入出力装置4に対して転送し
たか否かを判断する。最後のデータを転送していない場
合(“N”)はS101へ戻り、転送していれば
(“Y”)、入出力装置4へのデータ転送動作を終了す
る。本実施例では、S104で最後のデータを転送し、
かつ最後のデータに対応するアドレスに対して先読みビ
ットがオンになっているときには、S105で次のアド
レスのデータを主記憶装置3から先読みするという処理
を並行して行う。具体的には、アドレスラッチ12にラ
ッチされたアドレスと、ディレクトリメモリ14から読
み出されたアドレス情報から分かるデータ格納メモリ1
9内のデータブロックの最後のアドレスとが、比較器2
1で比較される。比較器21は、両アドレスが一致し、
かつ先読みビットメモリ16内の該当する先読みビット
がオンのとき、一致信号51によって、先読みを行うこ
とをバッファ記憶制御部18に伝える。バッファ記憶制
御部18は一致信号51を入力するとS105の先読み
処理を行う。
制御部18は、データ格納メモリ19におけるデータブ
ロック内の最後のデータを入出力装置4に対して転送し
たか否かを判断する。最後のデータを転送していない場
合(“N”)はS101へ戻り、転送していれば
(“Y”)、入出力装置4へのデータ転送動作を終了す
る。本実施例では、S104で最後のデータを転送し、
かつ最後のデータに対応するアドレスに対して先読みビ
ットがオンになっているときには、S105で次のアド
レスのデータを主記憶装置3から先読みするという処理
を並行して行う。具体的には、アドレスラッチ12にラ
ッチされたアドレスと、ディレクトリメモリ14から読
み出されたアドレス情報から分かるデータ格納メモリ1
9内のデータブロックの最後のアドレスとが、比較器2
1で比較される。比較器21は、両アドレスが一致し、
かつ先読みビットメモリ16内の該当する先読みビット
がオンのとき、一致信号51によって、先読みを行うこ
とをバッファ記憶制御部18に伝える。バッファ記憶制
御部18は一致信号51を入力するとS105の先読み
処理を行う。
【0028】図4はS105の先読み処理を示すフロー
チャートである。この先読み処理では、まずS111
で、バッファ記憶制御部18は、データ格納メモリ19
内のデータブロックの最後のアドレスの次のアドレス
(具体的には、ディレクトリメモリ14内のアドレスに
データブロックサイズを加えたアドレス)のデータをシ
ステムバスインターフェース10に要求し、システムバ
スインターフェース10は上記アドレスのデータを主記
憶装置3から読み出す。バッファ記憶制御部18は、読
み出された上記データをデータ格納メモリ19内のデー
タブロックに書き込み、その後ディレクトリメモリ14
内のアドレスを更新する。S112で、主記憶装置3か
らバッファ記憶装置1へのデータ転送が全て終了したか
否かを判断し、終了していなければ(“N”)S111
を繰り返す。データ転送が終了すれば(“Y”)、先読
み処理を終了する。
チャートである。この先読み処理では、まずS111
で、バッファ記憶制御部18は、データ格納メモリ19
内のデータブロックの最後のアドレスの次のアドレス
(具体的には、ディレクトリメモリ14内のアドレスに
データブロックサイズを加えたアドレス)のデータをシ
ステムバスインターフェース10に要求し、システムバ
スインターフェース10は上記アドレスのデータを主記
憶装置3から読み出す。バッファ記憶制御部18は、読
み出された上記データをデータ格納メモリ19内のデー
タブロックに書き込み、その後ディレクトリメモリ14
内のアドレスを更新する。S112で、主記憶装置3か
らバッファ記憶装置1へのデータ転送が全て終了したか
否かを判断し、終了していなければ(“N”)S111
を繰り返す。データ転送が終了すれば(“Y”)、先読
み処理を終了する。
【0029】なお、前述のように、入出力装置4から要
求されるアドレスに対してバッファ記憶装置1がデータ
の先読みをするか否かは、入出力装置4から要求される
アドレスに対応する先読みビットがオンになっているか
否かで決まる。この先読みビットの設定はCPU2によ
って以下のように行われる。すなわち、CPU2は、入
出力装置4へのデータ転送処理の前に、バッファ記憶装
置1内のディレクトリメモリ14に入出力装置4が要求
するアドレスを設定し、そのアドレスに対応する有効ビ
ットメモリ15の有効ビットをオフにし、そのアドレス
に対応する先読みビットメモリ16の先読みビットをオ
ンにすることにより、データの先読みを有効とすること
ができる。その後、そのアドレスが入出力装置4によっ
てアクセスされると、主記憶装置3からバッファ記憶装
置1へデータがキャッシュされ、有効ビットがオンとな
る。なお、上述の先読みビットの設定は、CPU2に限
らず、CPUによってプログラムされてバッファ記憶装
置1を介してデータを読み込もうとする装置によっても
設定することができる。
求されるアドレスに対してバッファ記憶装置1がデータ
の先読みをするか否かは、入出力装置4から要求される
アドレスに対応する先読みビットがオンになっているか
否かで決まる。この先読みビットの設定はCPU2によ
って以下のように行われる。すなわち、CPU2は、入
出力装置4へのデータ転送処理の前に、バッファ記憶装
置1内のディレクトリメモリ14に入出力装置4が要求
するアドレスを設定し、そのアドレスに対応する有効ビ
ットメモリ15の有効ビットをオフにし、そのアドレス
に対応する先読みビットメモリ16の先読みビットをオ
ンにすることにより、データの先読みを有効とすること
ができる。その後、そのアドレスが入出力装置4によっ
てアクセスされると、主記憶装置3からバッファ記憶装
置1へデータがキャッシュされ、有効ビットがオンとな
る。なお、上述の先読みビットの設定は、CPU2に限
らず、CPUによってプログラムされてバッファ記憶装
置1を介してデータを読み込もうとする装置によっても
設定することができる。
【0030】図5は、入出力装置4が主記憶装置3から
本実施例のバッファ記憶装置1内のデータブロック分の
データを連続して読み込むときの動作を示すタイミング
チャートである。この動作では、まず(a)に示すよう
にI/Oバス6を介して入出力装置4からバッファ記憶
装置1に対してデータ転送要求があり、要求されたデー
タがバッファ記憶装置1内にキャッシュされていればそ
のデータを入出力装置4へ転送するが、キャッシュされ
ていなければ、(c)、(d)に示すようにシステムバ
ス5を介して主記憶装置3からデータを読み込み、その
データを(b)に示すようにI/Oバス6を介して入出
力装置4に転送する。図5は、各ブロック分のデータ転
送後に全て先読みを行う例を示しているが、このように
先読みが実行される場合、入出力装置4の最初のアクセ
スおよび2回目以降のアクセスの終わりに、バッファ記
憶装置1が主記憶装置3に対してデータの先読みを行う
ので、図8に示す従来の動作に比べて、2回目以降の入
出力装置4のアクセス時間が短くなる。なお、図5
(a)、(c)においてロウの期間がバス占有期間であ
る。
本実施例のバッファ記憶装置1内のデータブロック分の
データを連続して読み込むときの動作を示すタイミング
チャートである。この動作では、まず(a)に示すよう
にI/Oバス6を介して入出力装置4からバッファ記憶
装置1に対してデータ転送要求があり、要求されたデー
タがバッファ記憶装置1内にキャッシュされていればそ
のデータを入出力装置4へ転送するが、キャッシュされ
ていなければ、(c)、(d)に示すようにシステムバ
ス5を介して主記憶装置3からデータを読み込み、その
データを(b)に示すようにI/Oバス6を介して入出
力装置4に転送する。図5は、各ブロック分のデータ転
送後に全て先読みを行う例を示しているが、このように
先読みが実行される場合、入出力装置4の最初のアクセ
スおよび2回目以降のアクセスの終わりに、バッファ記
憶装置1が主記憶装置3に対してデータの先読みを行う
ので、図8に示す従来の動作に比べて、2回目以降の入
出力装置4のアクセス時間が短くなる。なお、図5
(a)、(c)においてロウの期間がバス占有期間であ
る。
【0031】図6は本発明の第2実施例のバッファ記憶
装置1の構成を示すブロック図である。本実施例は、第
1実施例における先読みビットメモリ16の代わりに、
先読み開始アドレスと先読み終了アドレスを保持するた
めの先読み開始アドレスレジスタ22と先読み終了アド
レスレジスタ23とを設け、第1実施例における比較器
21の代わりに比較器24を設けたものである。
装置1の構成を示すブロック図である。本実施例は、第
1実施例における先読みビットメモリ16の代わりに、
先読み開始アドレスと先読み終了アドレスを保持するた
めの先読み開始アドレスレジスタ22と先読み終了アド
レスレジスタ23とを設け、第1実施例における比較器
21の代わりに比較器24を設けたものである。
【0032】本実施例における基本的な動作は第1実施
例と同様であるが、ディレクトリメモリ14の先読みを
するアドレスを設定し、先読みビットをオンする代わり
に、CPU2が先読みするアドレスの範囲の開始アドレ
スと終了アドレスとを、先読み開始アドレスレジスタ2
2と先読み終了アドレスレジスタ23とに設定する点が
異なっている。比較器24は、アドレスラッチ12にラ
ッチされたアドレスとデータブロック内の最後のアドレ
スが一致し、かつ、そのアドレスが先読み開始アドレス
レジスタ22の内容と先読み終了アドレスレジスタ23
の内容の間にあるとき、一致信号52によって先読みを
行うことをバッファ記憶制御部18に伝える。そして、
バッファ記憶制御部18はデータブロックの最後のアド
レスの次のアドレス(具体的には、ディレクトリメモリ
14内のアドレスにデータブロックサイズを加えたアド
レス)のデータをシステムバスインターフェース10に
要求し、システムバスインターフェース10は上記アド
レスのデータを主記憶装置3から読み出す。バッファ記
憶制御部18は、読み出された上記データをデータ格納
メモリ19内のデータブロックに書き込み、その後ディ
レクトリメモリ14内のアドレスを更新する。
例と同様であるが、ディレクトリメモリ14の先読みを
するアドレスを設定し、先読みビットをオンする代わり
に、CPU2が先読みするアドレスの範囲の開始アドレ
スと終了アドレスとを、先読み開始アドレスレジスタ2
2と先読み終了アドレスレジスタ23とに設定する点が
異なっている。比較器24は、アドレスラッチ12にラ
ッチされたアドレスとデータブロック内の最後のアドレ
スが一致し、かつ、そのアドレスが先読み開始アドレス
レジスタ22の内容と先読み終了アドレスレジスタ23
の内容の間にあるとき、一致信号52によって先読みを
行うことをバッファ記憶制御部18に伝える。そして、
バッファ記憶制御部18はデータブロックの最後のアド
レスの次のアドレス(具体的には、ディレクトリメモリ
14内のアドレスにデータブロックサイズを加えたアド
レス)のデータをシステムバスインターフェース10に
要求し、システムバスインターフェース10は上記アド
レスのデータを主記憶装置3から読み出す。バッファ記
憶制御部18は、読み出された上記データをデータ格納
メモリ19内のデータブロックに書き込み、その後ディ
レクトリメモリ14内のアドレスを更新する。
【0033】その他の構成、作用および効果は、第1実
施例と同様である。
施例と同様である。
【0034】
【発明の効果】以上説明したように請求項1記載の発明
によれば、バッファ記憶装置を介して主記憶部の連続し
た領域のデータを読み込むときに、データを要求した装
置に対してバッファ記憶装置がデータを転送している間
に、バッファ記憶装置自身が主記憶部からデータを先読
みすることができるので、バッファ記憶装置を効果的に
使うことができ、かつキャッシュミスによる待ち時間を
少なくすることができデータ転送速度の向上を図ること
ができるという効果がある。
によれば、バッファ記憶装置を介して主記憶部の連続し
た領域のデータを読み込むときに、データを要求した装
置に対してバッファ記憶装置がデータを転送している間
に、バッファ記憶装置自身が主記憶部からデータを先読
みすることができるので、バッファ記憶装置を効果的に
使うことができ、かつキャッシュミスによる待ち時間を
少なくすることができデータ転送速度の向上を図ること
ができるという効果がある。
【0035】また、請求項2記載の発明によれば、先読
み手段によって次のアドレスのデータを主記憶部から読
み出すか否かを設定する設定手段を設けたので、上記効
果に加え、データの先読みを有効にするか否かを任意に
設定することができるという効果がある。
み手段によって次のアドレスのデータを主記憶部から読
み出すか否かを設定する設定手段を設けたので、上記効
果に加え、データの先読みを有効にするか否かを任意に
設定することができるという効果がある。
【図1】 本発明の第1実施例のバッファ記憶装置が適
用される情報処理システムの概略の構成を示すブロック
図である。
用される情報処理システムの概略の構成を示すブロック
図である。
【図2】 第1実施例のバッファ記憶装置の構成を示す
ブロック図である。
ブロック図である。
【図3】 第1実施例のバッファ記憶装置の動作を示す
フローチャートである。
フローチャートである。
【図4】 第1実施例における先読み処理を示すフロー
チャートである。
チャートである。
【図5】 第1実施例の動作を示すタイミングチャート
である。
である。
【図6】 本発明の第2実施例のバッファ記憶装置の構
成を示すブロック図である。
成を示すブロック図である。
【図7】 従来のバッファ記憶装置の動作を示すフロー
チャートである。
チャートである。
【図8】 従来のバッファ記憶装置の動作を示すタイミ
ングチャートである。
ングチャートである。
1…バッファ記憶装置、12…アドレスラッチ、13…
比較器、14…ディレクトリメモリ、16…先読みビッ
トメモリ、18…バッファ記憶制御部、19…データ格
納メモリ、21…比較器
比較器、14…ディレクトリメモリ、16…先読みビッ
トメモリ、18…バッファ記憶制御部、19…データ格
納メモリ、21…比較器
Claims (2)
- 【請求項1】 主記憶部のデータの写しをブロック単位
で格納するデータ格納メモリと、 このデータ格納メモリに格納されたデータに対応する主
記憶部のアドレスの少なくとも一部を格納するディレク
トリメモリと、 データ要求装置からの要求アドレスと前記ディレクトリ
メモリに格納されたアドレスとを比較する比較手段と、 この比較手段による比較の結果、両アドレスが一致する
場合には要求アドレスに対応するデータを前記データ格
納メモリよりデータ要求装置へ転送し、両アドレスが一
致しない場合には要求アドレスに対応するデータを主記
憶部から読み出して前記データ格納メモリに格納すると
共にデータ要求装置へ転送し、そのデータに対応するア
ドレスで前記ディレクトリメモリの内容を置き換える転
送制御手段と、 要求アドレスに応じてデータ要求装置へ転送するデータ
が前記データ格納メモリにおけるブロック内の最後のデ
ータであることを検出する検出手段と、 この検出手段によってブロック内の最後のデータである
ことが検出されたときに、次のアドレスのデータを主記
憶部から読み出して前記データ格納メモリに格納する先
読み手段とを具備することを特徴とするバッファ記憶装
置。 - 【請求項2】 主記憶部のデータの写しをブロック単位
で格納するデータ格納メモリと、 このデータ格納メモリに格納されたデータに対応する主
記憶部のアドレスの少なくとも一部を格納するディレク
トリメモリと、 データ要求装置からの要求アドレスと前記ディレクトリ
メモリに格納されたアドレスとを比較する比較手段と、 この比較手段による比較の結果、両アドレスが一致する
場合には要求アドレスに対応するデータを前記データ格
納メモリよりデータ要求装置へ転送し、両アドレスが一
致しない場合には要求アドレスに対応するデータを主記
憶部から読み出して前記データ格納メモリに格納すると
共にデータ要求装置へ転送し、そのデータに対応するア
ドレスで前記ディレクトリメモリの内容を置き換える転
送制御手段と、 要求アドレスに応じてデータ要求装置へ転送するデータ
が前記データ格納メモリにおけるブロック内の最後のデ
ータであることを検出する検出手段と、 この検出手段によってブロック内の最後のデータである
ことが検出されたときに、次のアドレスのデータを主記
憶部から読み出して前記データ格納メモリに格納する先
読み手段と、 この先読み手段によって次のアドレスのデータを主記憶
部から読み出すか否かを設定する設定手段とを具備する
ことを特徴とするバッファ記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4258540A JPH06110780A (ja) | 1992-09-28 | 1992-09-28 | バッファ記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4258540A JPH06110780A (ja) | 1992-09-28 | 1992-09-28 | バッファ記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06110780A true JPH06110780A (ja) | 1994-04-22 |
Family
ID=17321651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4258540A Pending JPH06110780A (ja) | 1992-09-28 | 1992-09-28 | バッファ記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06110780A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006520045A (ja) * | 2003-03-06 | 2006-08-31 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | プリフェッチ手段を備えるデータ処理システム |
US7337200B2 (en) | 1998-01-26 | 2008-02-26 | Hitachi, Ltd. | Storage sub-system having expanded data read |
-
1992
- 1992-09-28 JP JP4258540A patent/JPH06110780A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7337200B2 (en) | 1998-01-26 | 2008-02-26 | Hitachi, Ltd. | Storage sub-system having expanded data read |
JP2006520045A (ja) * | 2003-03-06 | 2006-08-31 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | プリフェッチ手段を備えるデータ処理システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100262906B1 (ko) | 데이터 선인출 방법 및 시스템 | |
KR100885277B1 (ko) | 캐시에서의 라인들을 추론적으로 무효화하는 방법 및 시스템 | |
KR100240911B1 (ko) | 데이터 프리페치 방법, 캐시 라인 프리페치 방법 및 시스템(progressive data cache) | |
EP0405882B1 (en) | Move 16 block move and coprocessor interface instruction | |
US20020199079A1 (en) | Method to prefetch data from system memory using a bus interface unit | |
JPH09114665A (ja) | 記憶装置と補助プロセッサ間のコマンド及びデータ転送方法及び情報処理システム | |
US5813030A (en) | Cache memory system with simultaneous access of cache and main memories | |
EP0173909B1 (en) | Look-aside buffer least recently used marker controller | |
JPH09179779A (ja) | コンピュータシステムおよびデータ転送方法 | |
JP3164732B2 (ja) | データ処理装置 | |
US6480940B1 (en) | Method of controlling cache memory in multiprocessor system and the multiprocessor system based on detection of predetermined software module | |
JPH06110780A (ja) | バッファ記憶装置 | |
JP2000082011A (ja) | Dmaユニットによる改良されたメモリ・アクセスをする方法及びコンピュ―タ・システム | |
JP2004240616A (ja) | メモリコントローラ及びメモリアクセス制御方法 | |
JPH0784879A (ja) | キャッシュメモリ装置 | |
JPH02110646A (ja) | メモリの先行読出し装置 | |
JPH06243037A (ja) | データ先読み装置 | |
JP4220258B2 (ja) | ノンキャッシュ領域内高速メモリアクセス方法 | |
JP2001229074A (ja) | メモリ制御装置と情報処理装置及びメモリ制御チップ | |
JPH10207773A (ja) | バス接続装置 | |
JPH0573415A (ja) | 階層化キヤツシユ方式 | |
JPH07152650A (ja) | キャッシュ制御装置 | |
JPH04133145A (ja) | キャッシュメモリの無効化処理装置および無効化制御方法 | |
JP2003216480A (ja) | メモリ先読みシステム | |
JPH0784875A (ja) | ライトバッファ制御機構 |