JP3526160B2 - データキャッシュ制御方法 - Google Patents
データキャッシュ制御方法Info
- Publication number
- JP3526160B2 JP3526160B2 JP02370097A JP2370097A JP3526160B2 JP 3526160 B2 JP3526160 B2 JP 3526160B2 JP 02370097 A JP02370097 A JP 02370097A JP 2370097 A JP2370097 A JP 2370097A JP 3526160 B2 JP3526160 B2 JP 3526160B2
- Authority
- JP
- Japan
- Prior art keywords
- segment
- data
- cache memory
- stored
- storage medium
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
分割して使用するセグメントバッファを用いて、ホスト
コンピュータとのデータの読み書きをする外部記憶装置
に関する。 【0002】近年のコンピュータシステムの発達に伴
い、扱うデータ容量が増大し、大量のデータを記憶する
外部記憶装置とホストコンピュータとの間のデータの読
み書きを迅速にするための技術が求められている。 【0003】 【従来の技術】図9は、従来の制御のブロック図であ
る。図中、1は外部記憶装置であり、2は外部記憶装置
に接続されたホストコンピュータであり、3は高速なメ
モリで構成されたキャッシュメモリであり、4はキャッ
シュメモリ3に比較すると低速な可搬性の記憶媒体であ
り、9は記憶媒体4に格納されたホストコンピュータ2
の立ち上げ時に必要なシステムプログラム等のデータで
ある。 【0004】5はキャッシュメモリ3に記憶媒体4のデ
ータ9をロードする時にキャッシュメモリ3内に格納さ
れている記憶媒体4のアドレス範囲を記憶する不揮発性
メモリである。6は、キャッシュメモリ3にデータ9を
ロードする時にアドレス範囲を不揮発性メモリ5に書き
込むことを指示したり、電源投入時に不揮発性メモリ5
に格納された記憶媒体4のアドレス範囲の中でアドレス
の小さいものからキャッシュメモリ3にロードすること
を指示するコントローラである。 【0005】図10は従来の制御のフローチャートであ
り、図11は従来の重複したアドレスの存在を示す図であ
る。以下では、図10のフローチャートに従って、電源投
入からシステムプログラム9がホストコンピュータ2に
ロードされるまでの流れを説明する。 【0006】電源が投入されると、コントローラ6は不
揮発性メモリ5にアドレス範囲が既に記憶されているか
どうかを調べる。記憶されている場合には、コントロー
ラ6は、指定のアドレスからアドレスの小さい順に、記
憶媒体4からデータ9をキャッシュメモリ3にロードす
るよう指示し、キャッシュメモリ3に記憶媒体4のデー
タ9がロードされる。一方、ホストコンピュータ2は並
行して電源投入と同時にメモリチェック等の初期処理を
実施する。 【0007】 【発明が解決しようとする課題】近年のデータバッファ
(DRAM)が低コスト化されたことにより、外部記憶
装置1内のキャッシュメモリ3の容量が急激に増加して
いる。このため、外部記憶装置内のデータキャッシュシ
ステムにおいては、大容量キャッシュメモリ3をセグメ
ントに分割して使用するセグメントバッファ方式が採用
されている。 【0008】キャッシュメモリ3をセグメントに分割し
た方式では、ホストコンピュータ2から記憶媒体4にラ
ンダムにアクセスをした場合、キャッシュメモリ3内に
同じアドレスのデータが存在することがある。以下、図
11の実例に則して説明する。 【0009】図中(1) は、キャッシュメモリ3のセグメ
ントMにLBA=7〜10のデータが在る場合の説明図で
ある。ホストコンピュータ2がLBA=7の読み取りを
指示すると、記憶媒体4から読み込んだデータをセグメ
ントMに格納する。この際、LBA=8以降に関して
も、次のコマンドがくるか、又はセグメントバッファ内
のデータがフルになるまで、バックグランウドで先読み
が実施される。本例では、LBA=10まで先読みされた
時点で、次のコマンドが発行されて、先読みを中断す
る。 【0010】図中(2) は、前記の次のコマンドがLBA
=5の読み取りである場合の説明図である。LBA=5
がセグメントMに存在しないため、別のセグメントNに
記憶媒体4からデータをロードする。LBA=5を読み
込んだ後は、LBA=6以降に関しても(1) と同様にバ
ックグラウンドで先読みを実施する。この場合には、L
BA=10より先まで先読みができている。 【0011】このような場合、セグメントMとセグメン
トNには、重複したアドレスのデータが格納される。す
なわち、LBA=7〜10が重複して存在する。また、
その後LBA=7の読み取りのコマンドが来た場合に
は、ゼグメントNに現存のデータと同じデータを改めて
ロードすることになっている。 【0012】このことが、データ処理の速度が遅くなる
要因の一つとなっている。 【0013】 【課題を解決するための手段】セグメントに分割して使
用されるキャッシュメモリと、データが格納される記憶
媒体と、前記キャッシュメモリの各セグメント内に格納
されているデータの前記記憶媒体でのアドレス範囲と、
前記セグメントの使用の有無に関する情報と、前記キャ
ッシュメモリにおけるセグメントの読出順位の情報とが
前記セグメント毎に対応付けて記憶される不揮発性メモ
リと、前記記憶媒体から前記キャッシュメモリへデータ
をロードすることを指示するコントローラとを有する外
部記憶装置とホストコンピュータとからなるコンピュー
タシステムにおいて、ホストコンピュータから読込が指
示されたデータが前記キャッシュメモリに存在しない場
合には、該指示されたデータを前記記憶媒体から前記キ
ャッシュメモリへロードし、前記キャッシュメモリへロ
ードしたデータを前記ホストコンピュータに転送し、前
記キャッシュメモリへロードしたデータを格納するセグ
メントNと、該セグメントNをロードする前にアクセス
されたセグメントMにおいて、前記セグメントNと前記
セグメントMがそれぞれ格納するデータの前記記憶媒体
でのアドレスが重複する場合には、前記セグメントNと
前記セグメントMがそれぞれ格納するデータを重複なく
統合して、新たなセグメントNを作成し、前記セグメン
トMを空きにするように、前記不揮発性メモリに記憶さ
れている当該セグメントの前記アドレス範囲と、当該セ
グメントの使用の有無に関する情報と、前記記憶媒体に
おけるセグメントの読出順位の情報の記憶内容を更新
し、前記不揮発性メモリに記憶されている情報に基づい
て前記キャッシュメモリの記憶内容を復元する際に、前
記不揮発性メモリに記憶されている前記セグメントの読
出順位の情報に基づいて、次に読み出される可能性が高
いアドレス範囲を含むセグメントの順に、前記記憶媒体
から前記キャッシュメモリへデータをロードすることを
特徴とする。 【0014】 【0015】 【0016】 【0017】 【発明の実施の形態】以下では、第1〜3の実施例につ
いて説明を行う。第1の実施例のブロック図を図1に、
第1の実施例のフローチャートを図3にそれぞれ示す。
図1中、1は外部記憶装置であり、2は外部記憶装置に
接続されたホストコンピュータであり、3は高速なメモ
リで構成されたキャッシュメモリであり、4はキャッシ
ュメモリ3に比較すると低速な可搬性の(即ち、交換可
能な)記憶媒体であり、9は記憶媒体4に格納されたホ
ストコンピュータ2の立ち上げ時に必要なシステムプロ
グラム等のデータである。 【0018】5は、キャッシュメモリ3に記憶媒体4の
データ9をロードする時に、キャッシュメモリ3の各セ
グメント内に格納されるデータの記憶媒体4でのアドレ
ス範囲がセグメント毎に記録される不揮発性メモリであ
る。6は、キャッシュメモリ3にデータ9をロードする
時に次に読み出される可能性が高いアドレス範囲を含む
セグメントの順番の情報(I)8を不揮発性メモリ5に
書き込むことを指示したり、電源投入時に不揮発性メモ
リ5に格納された情報(I)8から、次に読み出される
可能性が高いアドレス範囲を含むセグメントの順にキャ
ッシュメモリ3にロードすることを指示するコントロー
ラである。また6は、不揮発性メモリ5に情報(I)8
を記憶する際に、複数のセグメント内に重複するアドレ
スのデータブロックが存在するか調べ、存在する場合
は、重複しないように、キャッシュメモリの各セグメン
トに格納されるデータの記憶媒体でのアドレス範囲(以
下、セグメントのアドレス範囲とも呼称)をまとめて、
不揮発性メモリ5に記憶することを指示する。セグメン
トのアドレス範囲のまとめかたについては後述する。 【0019】次に、図3を用いて電源投入からシステム
プログラム9がホストコンピュータ2にロードされるま
での流れを説明する。電源を投入すると、コントローラ
6は不揮発性メモリ5に情報(I)8が既に記憶されて
いるかどうかを調べる。情報(I)8が既に記憶されて
いる場合には、次に読み出される可能性が高いアドレス
を含むセグメントの順に記憶媒体4からデータ9をキャ
ッシュメモリ3にロードすることをコントローラ6が指
示し、キャッシュメモリ3に記憶媒体4のデータ9をロ
ードする。 【0020】ホストコンピュータ2からシステムプログ
ラムの読み出し命令が発行されれば、それまでにキャッ
シュメモリ3にロードされたデータの中に対象のデータ
が存在するか否かを調べる。存在しなかった場合(即
ち、ヒットしなかった場合)には、ヒットしなかったデ
ータを記憶媒体4からキャッシュメモリ3にロードし、
キャッシュメモリ3にロードしたデータをホストコンピ
ュータ2に転送する。 【0021】続いて、複数のセグメントの中に重複した
アドレスが在る場合に、重複したアドレスを含むセグメ
ントを結合し、セグメントのアドレス範囲をコントロー
ラ6が求め直す過程があるが、この件に関しては、後述
する。最後に、次に読み出される可能性の高いアドレス
を含むセグメント情報として、上記の結合されたセグメ
ントのアドレスを不揮発性メモリ5に書き込む。 【0022】以下、図7と図8とを用いて、セグメント
のまとめ方を説明する。図8のような内容のセグメント
管理テーブルは、不揮発性メモリ5に格納されていて、
システム運用時にはコントローラ6内の図示しないRA
Mに転送され格納される。テーブル中、開始アドレスと
は、各セグメント内に格納されているデータの開始アド
レスを意味し、終了アドレスとは、各セグメント内に格
納されているデータの終了アドレスを意味する。すなわ
ち、格納されているデータブロック数は、(終了アドレ
ス−開始アドレス+1)で求まる。アクセスカウンタと
は、セグメントを使用した順番が格納されていくカウン
タであり、最新のものほど値が大きくなり、古いものほ
ど値が小さくなる。使用の有無とは、現在そのセグメン
トが使用されているかどうかということである。 【0023】これらの情報をもとに、コントローラ6内
の図示しないROMに格納されているプログラムが、開
始アドレスと終了アドレスを更新することにより、重複
するセグメントを結合したり、使用の有無でセグメント
管理テーブルを「無」に更新することによりセグメント
を無効にしたりする。 【0024】例えば、図6のセグメントのまとめ方を示
す図の(1) の様に、最近に呼び出されたセグメントN
と、その前に呼び出されたセグメントMに、同じアドレ
スのデータLBA7〜10が重複して存在するとする。こ
れを同図(2) の様にまとめて、新たにセグメントNとす
ると共にセグメントMを空のセグメントにする。 【0025】なお、セグメントMを空のセグメントにす
るとは、図8に示すセグメント管理テーブルの使用の有
無の欄を「無」に更新することを意味し、必ずしも内容
を消去する必要は無い。 【0026】このように、各セグメントのアドレス範囲
には、重複するアドレスはまとめられているので、同じ
アドレスのデータ(上例では、LBA7〜10)を2回以
上ロードすることがなくなり、ロード時間が短縮され
る。 【0027】又、まとめることにより、空のセグメント
(上例では、セグメントM)が発生した場合は、キャッ
シュメモリ3にロードしていないデータ9の中で、次に
読まれる可能性の高いデータ9をキャッシュメモリ3に
予めロードすることにより、キャッシュメモリ3に格納
されたアドレス範囲を広げることができ、キャッシュの
ヒット率を向上することもできる。 【0028】なお、セグメントのまとめ方としては、上
例のごとくセグメントNがセグメントMに完全に含まれ
てしまう場合に限らず、一部重複という形態もある。例
えば、セグメントMがLBA4〜10、セグメントNが
LBA5〜LBA=ENDの場合には、LBA5〜10
が重複して、その前後は重複しないが、これらをまとめ
てLBA4〜LBA=ENDまでを新たなセグメントN
とする。この場合、新たなセグメントはセグメントサイ
ズ内に収まることが条件となることは言うまでもない。 【0029】セグメントサイズにまだ余裕が在る場合に
は、新しいセグメントNにまとめる際に、最大限のセグ
メントサイズになるまでアドレスを追加する方法も含む
ものとする。 【0030】上記の例では、電源投入時のタイミングで
スタートするものとして、説明したが、電源投入時のタ
イミングではなく、低消費電力モードから、通常の動作
可能モードに復帰するタイミングでスタートすることも
当然可能である。すなわち、キャッシュメモリ3等の周
辺回路の電源を落とすなどして外部記憶装置1の消費電
力を抑える低消費電力モードから、通常の動作可能モー
ドに復帰するタイミングで、第1の実施例のように不揮
発性メモリ5の情報(I)8から、記憶媒体4のデータ
9をキャッシュメモリ3にロードする。このことによ
り、低消費電力モードからの復帰時にシステム性能を向
上することができる。 【0031】同様に、記憶媒体4の交換後のタイミング
で、第1の実施例と同じく不揮発性メモリ5の情報
(I)8から、記憶媒体4のデータ9をキャッシュメモ
リ3にロードすることも可能である。このことにより、
記憶媒体4交換時のシステム性能を向上することができ
る。 【0032】さらに、任意のタイミングでスタートさせ
ることも当然可能であり、かかる方法も本発明に含まれ
るものとする。第2の実施例のブロック図を図2に、第
2の実施例のフローチャートを図4にそれぞれ示す。以
下、第1の実施例と異なる部分のみを説明する。7はホ
ストコンピュータ2から外部記憶装置に対して連続して
アクセスをしない時間を計測するタイマである。6はコ
ントローラで、タイマ7が規定時間T1になった時点
で、複数のセグメント内に重複するアドレスのデータブ
ロックが存在するか否か調べるものである。コントロー
ラ6は、重複するアドレスのデータブロックが存在する
場合は、重複しないように、セグメントのアドレス範囲
をまとめて、不揮発性メモリ5に記憶することを指示す
る。 【0033】ホストコンピュータ2からT1時間、アク
セスがない時、タイマ7がタイムアップして、コントロ
ーラ6に対して、キャッシュメモリ3内のセグメント内
に重複するアドレスのデータブロックが存在するか否か
調べさせる。セグメント間で重複するアドレスのデータ
ブロックが存在する場合は、重複しないようにセグメン
トのアドレス範囲をまとめ、まとめたセグメントのアド
レス範囲を不揮発性メモリ5に書き込む。そして、T1
時間タイマ7を再起動する。 【0034】以後、第1〜2の実施例と同様に制御する
ことにより、システム性能を向上することができる。第
3の実施例のブロック図を図2に、第3の実施例のフロ
ーチャートを図5にそれぞれ示す。第3の実施例は、セ
グメントのアドレス範囲を、不揮発性メモリ5に書き込
むまでは、第2の実施例と同じであるが、第3の実施例
では、セグメントのアドレス範囲をまとめ、まとめたア
ドレス範囲に基づき、記憶媒体4からキャッシュメモリ
3に実際にデータ9をロードする。 【0035】セグメントのアドレス範囲をまとめること
により空のセグメントが発生した場合は、第1の実施例
と同様に、キャッシュメモリ3にロードしていないデー
タ9の中で、次に読まれる可能性の高いデータ9をキャ
ッシュメモリ3に予めロードすることにより、キャッシ
ュメモリ3に格納されたアドレス範囲を広げることがで
き、キャッシュのヒット率を向上することもできる。 【0036】 【発明の効果】本発明のデータキャッシュ制御方法によ
れば、次に読み出される可能性の高いセグメントの順番
の情報を、不揮発性メモリに記憶する際に、複数のセグ
メント内に重複するアドレスのデータブロックが存在す
る場合は、重複しないように、セグメントのアドレス範
囲をまとめて、不揮発性メモリに記憶することにより、
(1) システムの立ち上げ後に外部記憶装置が低消費電力
モードになり、データバッファの内容が消失した時や、
(2) 記憶媒体4が可搬性のものであり、それを交換した
時にもキャッシュがヒットしないということが無くな
る。
ッシュメモリ、4は記憶媒体、5は不揮発性メモリ、6
はコントローラ、7はタイマ、8は情報(I)、9はデ
ータ(システムプログラム等)10はセグメント。
Claims (1)
- (57)【特許請求の範囲】 【請求項1】セグメントに分割して使用されるキャッシ
ュメモリと、 データが格納される記憶媒体と、前記キャッシュメモリの各セグメント内に格納されてい
るデータの前記記憶媒体でのアドレス範囲と、前記セグ
メントの使用の有無に関する情報と、 前記キャッシュメ
モリにおけるセグメントの読出順位の情報とが前記セグ
メント毎に対応付けて記憶される不揮発性メモリと、 前記記憶媒体から前記キャッシュメモリへデータをロー
ドすることを指示するコントローラとを有する外部記憶
装置とホストコンピュータとからなるコンピュータシス
テムにおいて、 ホストコンピュータから読込が指示されたデータが前記
キャッシュメモリに存在しない場合には、該指示された
データを前記記憶媒体から前記キャッシュメモリへロー
ドし、前記キャッシュメモリへロードしたデータを前記
ホストコンピュータに転送し、 前記キャッシュメモリへロードしたデータを格納するセ
グメントNと、該セグメントNをロードする前にアクセ
スされたセグメントMにおいて、前記セグメントNと前
記セグメントMがそれぞれ格納するデータの前記記憶媒
体でのアドレスが重複する場合には、前記セグメントN
と前記セグメントMがそれぞれ格納するデータを重複な
く統合して、新たなセグメントNを作成し、前記セグメ
ントMを空きにするように、前記不揮発性メモリに記憶
されている当該セグメントの前記アドレス範囲と、当該
セグメントの使用の有無に関する情報と、前記記憶媒体
におけるセグメントの読出順位の情報の記憶内容を更新
し、前記不揮発性メモリに記憶されている情報に基づいて前
記キャッシュメモリの記憶内容を復元する際に、前記不
揮発性メモリに記憶されている前記セグメントの読出順
位の情報に基づいて、次に読み出される可能性が高いア
ドレス範囲を含むセグメントの順に、前記記憶媒体から
前記キャッシュメモリへデータをロード することを特徴
とするデータキャッシュ制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02370097A JP3526160B2 (ja) | 1997-02-06 | 1997-02-06 | データキャッシュ制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02370097A JP3526160B2 (ja) | 1997-02-06 | 1997-02-06 | データキャッシュ制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10222424A JPH10222424A (ja) | 1998-08-21 |
JP3526160B2 true JP3526160B2 (ja) | 2004-05-10 |
Family
ID=12117672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02370097A Expired - Fee Related JP3526160B2 (ja) | 1997-02-06 | 1997-02-06 | データキャッシュ制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3526160B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001166993A (ja) * | 1999-12-13 | 2001-06-22 | Hitachi Ltd | 記憶制御装置およびキャッシュメモリの制御方法 |
-
1997
- 1997-02-06 JP JP02370097A patent/JP3526160B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10222424A (ja) | 1998-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8065472B2 (en) | System and method for improving data integrity and memory performance using non-volatile media | |
US7111134B2 (en) | Subsystem and subsystem processing method | |
US7519754B2 (en) | Hard disk drive cache memory and playback device | |
US8762661B2 (en) | System and method of managing metadata | |
US6205521B1 (en) | Inclusion map for accelerated cache flush | |
US8621144B2 (en) | Accelerated resume from hibernation in a cached disk system | |
US6795890B1 (en) | Data storage method, and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory | |
JP5353887B2 (ja) | ディスクアレイ装置の制御ユニット、データ転送装置及び復電処理方法 | |
US20110258487A1 (en) | Nand power fail recovery | |
US20030093610A1 (en) | Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof | |
US20190324859A1 (en) | Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive | |
JP4415356B2 (ja) | 二重ジャーナリングの保存方法及びその記憶媒体 | |
JP2010211734A (ja) | 不揮発性メモリを用いた記憶装置 | |
JP2005301591A (ja) | 不揮発性メモリを備えた装置及びメモリコントロ−ラ | |
JPH07146820A (ja) | フラッシュメモリの制御方法及び、それを用いた情報処理装置 | |
CN112035294B (zh) | 安全日志文件***及其实现方法和介质 | |
US20090132757A1 (en) | Storage system for improving efficiency in accessing flash memory and method for the same | |
KR101392062B1 (ko) | 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법 | |
JP2020191055A (ja) | 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体 | |
TW202015057A (zh) | 快閃記憶體控制器、快閃記憶體控制器的控制方法及相關的電子裝置 | |
JP2006099802A (ja) | 記憶制御装置およびキャッシュメモリの制御方法 | |
US20200097398A1 (en) | Method of managing memories, corresponding circuit, device and computer program product | |
CN111580757A (zh) | 数据写入方法、***和固态硬盘 | |
JP3526160B2 (ja) | データキャッシュ制御方法 | |
JP4334331B2 (ja) | フラッシュメモリのアクセス制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20031202 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040127 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040210 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040212 |
|
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: 20080227 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090227 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090227 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100227 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110227 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |