JP3594265B2 - ディスクキャッシュ装置 - Google Patents
ディスクキャッシュ装置 Download PDFInfo
- Publication number
- JP3594265B2 JP3594265B2 JP26724095A JP26724095A JP3594265B2 JP 3594265 B2 JP3594265 B2 JP 3594265B2 JP 26724095 A JP26724095 A JP 26724095A JP 26724095 A JP26724095 A JP 26724095A JP 3594265 B2 JP3594265 B2 JP 3594265B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- cache memory
- host computer
- tag
- unwritten
- 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
Description
【発明の属する技術分野】
本発明は、ホストコンピュータから送られてきたデータを一時キャッシュメモリに蓄えて、キャッシュメモリにデータを書き込み終わった時点でホストコンピュータに書き込み終了を報告し、その後ディスクへ書き込みを行うことにより書き込み処理の高速化を図るディスクキャッシュ装置に関する。
【0002】
【従来の技術】
一般に情報記録再生装置は、情報処理装置におけるホストコンピュータの外部記録装置として用いられているが、記録媒体に対するデータの書き込み処理及び読み出し処理はホストコンピュータとの間でのデータ転送処理速度よりも遅いため、近年では中間にキャッシュメモリを設けてキャッシュメモリを介してデータ転送を行うことにより、データの記録処理や再生処理の高速化を図ったものが用いられてきている。特に、光ディスクを記録媒体として用いる光ディスク装置では、記録媒体への書き込み処理に多くの時間がかかるため、記録データや再生データを一時格納するディスクキャッシュメモリを設けたものが一般的である。
【0003】
このようなキャッシュメモリを備えたディスクキャッシュ装置では、従来はホストコンピュータから送られてきたデータが連続したデータ(シーケンシャルデータ)か、不連続なデータ(ランダムデータ)かに関わらず、キャッシュメモリの容量まで、あるいは記憶できるデータ数までキャッシュメモリにデータを蓄えるようになっていた。
【0004】
最近では、キャッシュメモリの容量が256KB程度以上と大きくなってきており、ホストコンピュータからみると書き込み動作の実行時間がより短くなっている。
【0005】
光磁気ディスク装置などの媒体への書き込みに時間がかかる記録再生装置では、キャッシュ容量の大容量化に伴って、ホストコンピュータに書き込み終了を報告してからキャッシュメモリに蓄えられたデータを全てディスクに書き終わるまでに長い時間がかかるようになった。
【0006】
このようにキャッシュメモリに未書き込みのデータが多く存在するときに、リードキャッシュ等を設けずに単純なライトキャッシュのみを備えた装置では、ホストコンピュータから読み込み命令などを受け付けると、一般的にはデータの信頼性を確保するため、まず未書き込みデータを全てディスクに書き終わってから読み込み命令(リード命令)などを実行することになる。
【0007】
キャッシュメモリに未書き込みデータがある場合は、ディスク上には未書き込みデータに対応する書換え前の旧データが存在し、キャッシュメモリ上にのみ書換え後の新データが存在する場合がある。このときに、キャッシュメモリの未書き込みデータを書き込む前にディスクからデータを読み出してホストコンピュータへ転送すると、間違った旧データを送ってしまうことになる。また、読み出したデータや転送すべきデータをホストコンピュータへ送る前にキャッシュメモリに一旦書き込んで、その後ホストコンピュータへ転送を行うような場合は、キャッシュメモリに未書き込みデータがあると未書き込みデータを書き換えてしまうことがあり得る。これらの不具合を防止するために、リード命令やデータ転送時にキャッシュメモリを使用する命令を実行する場合は、まず未書き込みデータのディスクへの書き込みを行ってからその命令を実行するようになっている。
【0008】
この場合、ホストコンピュータからすると読み込み動作に非常に長い時間がかかっているように見えるため、ホストコンピュータの仕様によっては命令実行のタイムアウトとなり読み込み失敗としてしまう場合がある。
【0009】
【発明が解決しようとする課題】
前述したように、ディスクキャッシュ装置においては、キャッシュメモリに未書き込みデータが多く存在するときに、リード命令等を受けた場合は、まず未書き込みデータのディスクへの書き込みが終了してからその命令に対する処理が行われるため、読み込み処理の終了までに多くの時間を要し、ホストコンピュータから見るとディスクの読み込み動作に長い時間がかかっているとみなされることがある。この場合、ホストコンピュータの仕様によっては命令実行のタイムアウトとなり、読み込み失敗としてしまうことがあり、ホストコンピュータからの命令に対する処理を正常に実行完了できないおそれがある。
【0010】
本発明は、これらの事情に鑑みてなされたもので、キャッシュメモリ上の未書き込みデータのディスクへの書き込み時間を短縮し、ホストコンピュータが許容できる範囲以内に収めることができ、ホストコンピュータから引き続き送られてくる命令に対する処理においてホストコンピュータがタイムアウトを検出するのを防止することが可能なディスクキャッシュ装置を提供することを目的としている。
【0011】
【課題を解決するための手段】
本発明によるディスクキャッシュ装置は、ホストコンピュータから送られてきたデータを一時格納するキャッシュメモリと、前記ホストコンピュータから送られてきた前記キャッシュメモリ上のデータのデータ量を記憶するデータ量記憶部と、前記ホストコンピュータから送られてきたデータが前記キャッシュメモリに書き込まれた時点で当該ホストコンピュータに書き込み終了を報告すると共に、当該書き込み終了の後に当該データの記録媒体への書き込み制御を行うコントローラと、を有してなり、前記データ量記憶部は、前記記録媒体上のアドレス及び前記キャッシュメモリ上の格納開始アドレスを保持するタグを有し、前記コントローラは、前記ホストコンピュータから前記キャッシュメモリに対して順次送られてきたデータが、シーケンシャルデータあるいはランダムデータの何れかであるかを判断するデータ連続性判別手段と、前記データ連続性判別手段の判別結果に基づいて前記データがシーケンシャルデータの場合は、前記キャッシュメモリに一時格納する該データを一まとめに結合するデータ結合手段と、前記データ連続性判別手段の判別結果に基づいて前記データが少なくともランダムデータを含む場合であると判別された場合は、前記キャッシュメモリにおける未書き込みデータ量が所定の値より大きいか否かを判断し、当該未書き込みデータ量が前記所定の値より大きい場合は前記キャッシュメモリに当該データを一時格納することを規制する未書き込みデータ蓄積量制限手段と、を備えたことを特徴とする。
【0012】
前記構成により、ホストコンピュータから順次送られてきたデータが連続したデータの場合は、複数のデータを一まとめにして書き込みが行われ、これにより不要なシークや回転待ちが減少し、記録媒体への書き込みを高速に実行可能となる。また、前記データが不連続なデータの場合は、キャッシュメモリに蓄えられるデータ数あるいはデータ量が連続したデータの場合よりも制限され、キャッシュメモリに格納した未書き込みデータを記録媒体に書き込み終了するまでの時間が短縮される。
【0013】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
図1は本実施形態におけるディスクキャッシュ装置の構成を示すブロック図である。本実施形態では、記録媒体への書き込み処理時間の遅さを補って処理時間の高速化を図るための単純なライトキャッシュを備えた装置に着目し、このようなキャッシュメモリとしていわゆるライトスルー方式のディスクキャッシュを備えた装置の構成例を示す。
【0014】
ディスクキャッシュ装置は、ホストコンピュータ5からインターフェース部(I/F部)6を介して送られてきたデータを一時蓄えておくキャッシュメモリ3と、前記ホストコンピュータ5から送られてきたデータのデータ数等のデータ量を記憶するデータ量記憶部2と、データの書き込み処理及び読み出し処理の制御を行うコントローラ1と、記録媒体としてのディスク4に対する書き込み及び読み出しを行うディスクコントローラ7と、を有して構成されている。
【0015】
コントローラ1は、ホストコンピュータ5から送られてきたデータをキャッシュメモリ3に書き込み終わった時点でホストコンピュータ5に書き込み終了を報告し、その後キャッシュメモリ3からディスクコントローラ7を介してスピンドルモータ8で回転駆動されているディスク4へデータの書き込みを行うようになっている。
【0016】
このとき、ディスクコントローラ7により、スピンドルモータ8や図示しないヘッド等の制御を行うことにより、ディスク4に対するデータの書き込み及び読み出しが行われる。
【0017】
また、コントローラ1は、連続して送られてきたデータがシーケンシャルデータがランダムデータかを判断し、シーケンシャルデータの場合は、キャッシュメモリ3に蓄えられている未書き込みのシーケンシャルデータを一まとめにしてディスク4に書き込みを行い、ランダムデータの場合は、キャッシュメモリ3に蓄えることができるデータ数あるいはデータ量をシーケンシャルデータの場合よりも小さくする制御を行う。
【0018】
ここで、図2に本実施形態におけるディスクキャッシュ装置の主要部の機能構成を示す。
【0019】
コントローラ1は、データ量記憶部2の情報を基にホストコンピュータ5から連続して送られてきたデータがシーケンシャルデータかランダムデータかを判断するデータ連続性判別手段1aと、データ連続性判別手段1aの判別結果を基にデータが連続している場合はこのキャッシュメモリ3上の未書き込みデータを一まとめに結合するデータ結合手段1bと、前記判別結果を基にデータが不連続の場合はキャッシュメモリ3に蓄積可能なデータ量を連続している場合よりも小さくする未書き込みデータ蓄積量制限手段1cと、キャッシュメモリ3上の未書き込みデータのディスク4への書き込みを制御するデータ書き込み制御手段1dと、の各機能ブロックを有している。
【0020】
図3はデータ量記憶部2の構成を示す概念図である。データ量記憶部2は、ホストコンピュータ5から送られてきたデータ数(書き込み命令数)をカウントするカウンタc_num 10と、キャッシュメモリ3に蓄えられている未書き込みデータ量をカウントするカウンタc_lng 11と、キャッシュメモリ3の空き容量をカウントするカウンタc_emp 12と、未書き込みデータの先頭番号を示すポインタt_tag 13と、同最終番号を示すポインタe_tag 14と、各未書き込みデータのディスク4上の書き込み開始アドレスw_lba ,書き込みブロック数w_lng ,およびキャッシュメモリ3上の格納開始アドレスc_adr からなるタグtag 15と、を有してなる。タグtag 15は、書き込み命令毎にそれぞれ設けられ、各命令に対応する未書き込みデータについてw_lba ,w_lng ,c_adr が1セットとなっている。
【0021】
次に、本実施形態の動作手順を説明する。図4ないし図7は本発明の第1の実施形態に係るコントローラ1の動作を示すフローチャートである。
【0022】
まず、ステップS0(以降はステップを省略し単にS0のように記す)で、初期設定としてデータ量記憶部2の各カウンタ,ポインタ,タグに以下の数値を代入してデータ量記憶部2の初期化を行う。キャッシュメモリ3へ送られてきたデータ数 c_num=0、キャッシュメモリ3上の未書き込みデータ量 c_lng=0、キャッシュメモリ3の空き容量 c_emp=800h、未書き込みデータの先頭タグポインタ t_tag=0、未書き込みデータの最終タグポインタ e_tag=7Fh、最終タグボインタ e_tagで示されるタグの書き込みブロック数 w_lng(e_tag )=0、キャッシュメモリアドレス c_adr(e_tag )=0とする。なお、本実施形態ではタグ15の最大数は80h(=128)とする。ここで、hは16進数を示しており、データ量記憶部2では各値が16進数で格納される。
【0023】
そしてS1で、cmd_flagがセットされているか否かを判断してホストコンピュータからコマンドを受信したかをチェックし、受信していなければS5に進む。S5では c_num=0か否かを判断して未書き込みデータがあるかをチェックし、未書き込みデータがなければS1へ戻る。
【0024】
このコマンド受信待ち状態において、コマンド受信割り込みが発生すると図6のコマンド受信割り込み処理に進む。コマンド受信割り込み処理では、S20でコマンドを受信したことを示すフラグcmd_flagをセットする。次いで、S21でコマンドがライトコマンドかをチェックし、ライトコマンドでなければ割り込み処理を終了する。
【0025】
図4に戻り、前記のようにコマンド受信フラグcmd_flagがセットされると、S1からS2に進み、コマンドがライトコマンドかをチェックし、ライトコマンドでなければS3へ進む。S3では受信したコマンドを実行し、コマンド受信フラグcmd_flagをリセットして命令終了をホストコンピュータ5へ報告する。
【0026】
再びコマンド受信割り込みが発生すると、S20でコマンド受信フラグcmd_flagをセットし、S21でコマンドがライトコマンドかをチェックする。受信したコマンドがライトコマンドの場合は、S22に進んで図7に示すキャッシュ処理を行い、ホストコンピュータ5からデータを受信する。
【0027】
キャッシュ処理では、まずS30でデータを受信する前にタグ15に空きがあるかをチェックし、 c_num=80hであってタグに空きがなければ何もせずに終了する。
【0028】
S30でタグに空きがある場合は、S31でキャッシュメモリ3にデータを受信できるだけの空きがあるかをチェックし、 c_emp−LONG<0、すなわちキャッシュメモリ3の空き容量からデータの長さを引いた数が負であってキャッシュメモリに空きがなければ何もせずに終了する。
【0029】
S31でキャッシュメモリに空きがある場合は、S32でデータがシーケンシャルかランダムかをチェックする。ここでは、今回のコマンドで指定されているディスク4上の先頭アドレスLBAと、前回のコマンドで指定されているディスク4上の書き込み開始アドレスと書き込みブロック数から算出する次のデータのディスク上のアドレス w_lba(e_tag )+ w_lng(e_tag )とを比較し、これらが等しい場合はシーケンシャルデータと判断する。
【0030】
S32でデータがシーケンシャルの場合はS34に進み、ランダムの場合はS33で未書き込みのデータ数をチェックする。S33では c_num≧40hか否かを判断し、未書き込みのデータ数c_num がタグ15の最大値80hの半分未満ならばS34に進み、半分以上であれば何もせずに終了する。
【0031】
すなわち、S32及びS33において、データがランダムの場合にキャッシュメモリに蓄積するデータ量を制限している。
【0032】
最初はデータがシーケンシャルかランダムか(S32の結果)に関わらず、未書き込みデータ数c_num は0なのでS34へ進む。
【0033】
S34では、データ量記憶部2における未書き込み最終タグの各値を以下のように更新する。データ受信前の最終タグポインタ l_tagを l_tag=e_tag 、データ受信後の最終タグポインタ e_tag=(e_tag +l)(なおe_tag の最大値は7Fhとし、7Fhでマスクする)、ディスク4上の書き込み開始アドレス w_lba(e_tag )=LBA(コマンドで指定されたアドレス)、キャッシュメモリ3上の格納開始アドレス c_adr(e_tag )={ c_adr(l_tag )+ w_lng(l_tag )×512}(なお c_adr(e_tag )の最大値はOFFFFFhとし、OFFFFFhでマスクする)、未書き込みデータ数 c_num=c_num +1とする。前記キャッシュメモリアドレス c_adr(e_tag )は、前回のキャッシュメモリアドレス c_adr(l_tag )にデータ量[byte]を足した値である。ここで、1ブロックを512[byte]とする。
【0034】
その後、S35でホストコンピュータ5からデータを受信して、このデータをキャッシュメモリ3に一時格納し、S36でコマンド受信フラグcmd_flagをリセットして命令終了をホストコンピュータ5へ報告する。
【0035】
再度図4に戻り、未書き込みデータが発生するとS5から図5のS6へ進み、S6で未書き込みデータが2つ以上あるかをチェックする。なお、図4と図5において符号A,Bがそれぞれ対応してつながっている。
【0036】
S6において c_num=1、すなわち未書き込みデータが1つだけの場合は、S10に進んでデータをディスク4へ書き込み、S11で以下のようにカウンタの各値を更新する。キャッシュメモリ3の上の未書き込みデータ量 c_lng= c_lng− w_lng(t_tag )、キャッシュメモリ3の空き容量 c_emp= c_emp+ w_lng(t_tag )、未書き込みデータの先頭タグポインタ t_tag= t_tag+1、未書き込みデータ数 c_num= c_num−1とする。その後、S11から図4のS1へ戻る。
【0037】
S6で未書き込みデータが2つ以上ある場合はS7へ進み、S7で次の未書き込みタグポインタn_tag を求める。ここでは n_tag=t_tag +1とする。なお、n_tag の最大値は7Fhであるため、7Fhでマスクする。
【0038】
次に、S8で先頭タグと次のタグのデータがシーケンシャルかランダムかチェックし、データがランダムならば前述のS10へ進み、シーケンシャルならばS9へ進む。ここでは、次のタグのディスク上の書き込み開始アドレス w_lba(n_tag )と先頭タグのディスク上の書き込み開始アドレスと書き込みブロック数から算出するディスク上のアドレス w_lba(t_tag )+ w_lng(t_tag )とを比較し、これらが等しい場合はシーケンシャルデータと判断する。
【0039】
S9では、以下のようにタグ15の各値を更新して2つのタグを1つにまとめる。次のタグのディスク4上のアドレス w_lba(n_tag )= w_lba(t_tag )、次のタグの書き込みブロック数 w_lng(n_tag )= w_lng(n_tag )+ w_lng(t_tag )、次のタグのキャッシュメモリ3上のアドレス c_adr(n_tag )= c_adr(t_tag )、先頭タグポインタ t_tag =n_tag、未書き込みデータ数 c_num=c_num −1とする。その後、S9からS6へ戻り、未書き込みデータが1つになるかデータが連続でなくなるまでS6〜S9の処理を繰り返し、シーケンシャルデータをまとめる。
【0040】
なお、S30でタグ15に空きが無いと判断されたとき、S31でキャッシュメモリ3に空きが無いと判断されたとき、あるいはS32及びS33で送られてくるデータがランダムで且つ未書き込みデータ数が所定値(本実施形態ではタグの最大値の半分)以上と判断されたときは、S6からS11でデータがディスク4へ書き込まれた後に再度S4でデータの受信動作が行われる。
【0041】
ただし、この再度のデータ受信動作の時点でもキャッシュメモリ3に空きが無いと判断されたとき、あるいは送られてくるデータがランダムで且つ未書き込みデータ数が所定値以上と判断されたときは、データの受信が可能となるまでS1からS11の処理が繰り返される。そして、データが受信可能になった時点でS4においてデータの受信動作が行われ、コマンド受信フラグcmd_flagがリセットされてホストコンピュータ5へライトコマンドの終了が報告される。
【0042】
前記のように本実施形態では、S6ないしS9でシーケンシャルデータの場合はデータをまとめる処理を行い、S32及びS33でランダムデータの場合はキャッシュメモリ3に蓄積するデータ量を制限している。
【0043】
1回のライト処理時間Tは、回転待ちを含むアクセス時間Aと書き込み時間Wとの和であり、データ数がNの場合は、Tn=(A+W)×Nとなる。なお、シーケンシャルデータの場合はまとめて書き込みを行うので、Ts=A+W×Nとなる。すなわち、ランダムデータを書き込む場合は、シーケンシャルデータをまとめて書き込む場合よりも余分なアクセス時間A×(N−1)の分だけ全体のライト処理時間Tが長くなり、その延長分によりライト命令終了(キャッシュメモリへのデータ書き込み終了)からリード命令などの次の命令の実行終了までの時間が長くなる。
【0044】
このとき、コントローラ1はキャッシュメモリ3に未書き込みデータがある場合でも次の命令は受付けて、ライト命令でなければ、キャッシュメモリ3の未書き込みデータをディスク4に書き込んでから命令を実行するようになっている。よって、ホストコンピュータからみると、キャッシュメモリ3内の未書き込みデータをディスク4に書き込む時間分だけ命令実行時間が長くなり、命令実行のタイムアウトを検出しやすくなる。
【0045】
そこでランダムデータの場合は、キャッシュメモリ3に蓄えることができるデータ数を少なくすることにより、キャッシュメモリ3に未書き込みデータがある場合の命令実行時間の最大値を小さくする。このようにキャッシュメモリ3に蓄えることができるデータ数を小さくすることは、受信可能なデータ数を小さくすることとほぼ同じこととなり、ホストコンピュータ5におけるタイムアウトの発生を防止することができる。
【0046】
以上説明したように、本実施形態では、ホストコンピュータ5より送られてきたデータがシーケンシャルデータの場合は、連続するタグのデータを結合してディスク4への書き込みを行うようにしている。これにより、ディスク4への書き込み処理を高速に行うことができ、ホストコンピュータ5から次のコマンドを受けた場合も、あまりホストコンピュータ5を待たせることなくコマンドに早く応答して実行できる。
【0047】
また、ホストコンピュータ5より送られてきたデータがランダムデータの場合は、ディスクへの書き込み処理においてシーケンシャルデータに比べて余分にシークタイムや回転待ち時間が発生するので、キャッシュメモリ3に蓄えておくことのできるデータ数をシーケンシャルデータの場合よりも少なく制限している。これにより、キャッシュメモリ3に蓄えられた未書き込みデータを全てディスク4へ書き込み終わるのにかかる時間を短くでき、ディスク4への書き込み時間をホストコンピュータ5が許容できる範囲以内に制限し、次のコマンドにおいてホストコンピュータ5が命令実行のタイムアウトを検出することを防ぐことができる。
【0048】
次に、本発明の第2の実施形態としてコントローラ1の動作を変更した例を示す。第2の実施形態は前述の第1の実施形態におけるキャッシュ処理の手順の変形例である。図8に第2の実施形態に係るキャッシュ処理の手順のフローチャートを示す。なお、その他のコントローラ1の動作手順については図4ないし図6と同様であり、説明を省略する。
【0049】
第2の実施形態では、図7におけるS31,S33の判断を変更し、キャッシュメモリ3の空き容量 c_emp及びホストコンピュータ5から送られてきたデータ数 c_numの代わりに、キャッシュメモリ3上の未書き込みデータ量 c_lngによって判断を行うようにしている。
【0050】
すなわち、本実施形態のキャッシュ処理においては、まずS50でデータを受信する前にタグ15に空きがあるかをチェックし、 c_num=80hであってタグに空きがなければ何もせずに終了する。
【0051】
S50でタグに空きがある場合は、S51でキャッシュメモリ3にデータを受信できるだけの空きがあるかをチェックし、 c_lng+LONG>800h、すなわちキャッシュメモリ3の未書き込みデータ量にデータの長さを足した数が800h以上であってキャッシュメモリに空きがなければ何もせずに終了する。
【0052】
S51でキャッシュメモリに空きがある場合は、S52で前記S32と同様にデータがシーケンシャルかランダムかをチェックし、データがシーケンシャルの場合はS54に進み、ランダムの場合はS53で未書き込みデータ量をチェックする。S53では c_lng≧400hか否かを判断し、未書き込みデータ量c_lng がキャッシュメモリ3の空き容量の最大値800hの半分未満ならばS54に進み、半分以上であれば何もせずに終了する。
【0053】
S54では前記S34と同様にデータ量記憶部2における未書き込み最終タグの各値を以下のように更新し、その後S55でホストコンピュータ5からデータを受信して、このデータをキャッシュメモリ3に一時格納し、S56でコマンド受信フラグcmd_flagをリセットして命令終了をホストコンピュータ5へ報告する。
【0054】
このように、キャッシュメモリ3の空き容量 c_empの代わりに、キャッシュメモリ3上の未書き込みデータ量 c_lngを用いた場合においても第1の実施形態と同様の効果を得ることができる。
【0055】
なお、上記実施形態の説明ではホストコンピュータからのデータがランダムデータの場合のタグの数、あるいは未書き込みデータ量を、シーケンシャルデータのときの半分に設定したが、これに限らず、ホストコンピュータ5が許容できる範囲以内であれば、これより多くしてもまたは少なくしても良い。
【0056】
また、ホストコンピュータからのデータがシーケンシャルの場合は、データを可能な限り全て一まとめに結合するようにしたが、データ数あるいはデータ量を制限してまとめても良い。
【0057】
また、コマンド受信は割り込みではなく、インターフェース部6をポーリングすることで行っても良い。
【0058】
また、キャッシュメモリ3の容量やタグ15の最大値は本実施形態の値に限らず、他の値でも良いし、データ量記憶部2の構成も本発明の要旨内であれば各種変更は可能である。
【0059】
また、記録媒体としてのディスク4は回転駆動型のものに限らず、カード型のような媒体でも良いし、固定式でも交換式の媒体でも構わない。
【0060】
以上説明したように、本実施形態によれば、ホストコンピュータから送られてくるデータがシーケンシャルデータの場合は、連続するデータを一まとめにしてディスクへ書き込むので、キャッシュメモリ内の未書き込みデータをディスクへ書き込む時間を短くでき、これにより引続き送られてくるホストコンピュータからの命令に早く応答することができる。この場合、ホストコンピュータから最初のデータを受信してから全てのデータを書き込み終了するまでの時間も短くなるため、ホストコンピュータの全命令の実行時間も短くすることができる。
【0061】
また、ホストコンピュータから送られてくるデータがランダムデータの場合は、キャッシュメモリに一時蓄えておく未書き込みのデータ数またはデータ量を、シーケンシャルデータの場合に比べて少なく制限するので、引続き送られてくるホストコンピュータからのコマンドの実行を長く待たせることがなくなり、ホストコンピュータが命令実行のタイムアウトを検出することを防止できる。この場合、ホストコンピュータから最初のデータを受信してから全てのデータを書き込み終了する時間は変わらないし、ホストコンピュータの全命令の実行時間は、キャッシュメモリに蓄えられるデータ量が少なくなった分若干長くなる。しかし、最後のライト命令が終了してから次のライト以外の命令に対する実行時間は短くすることができる。
【0062】
【発明の効果】
以上説明したように本発明によれば、キャッシュメモリ上の未書き込みデータのディスクへの書き込み時間を短縮し、ホストコンピュータが許容できる範囲以内に収めることができ、ホストコンピュータから引き続き送られてくる命令に対する処理においてホストコンピュータがタイムアウトを検出するのを防止することができる効果がある。
【図面の簡単な説明】
【図1】本発明の実施形態におけるディスクキャッシュ装置の構成を示すブロック図
【図2】本発明の実施形態におけるディスクキャッシュ装置の主要部の機能構成を示すブロック図
【図3】図1におけるデータ量記憶部の構成を示す概念図
【図4】本発明の第1の実施形態に係るコントローラの動作手順において、書き込み処理におけるメインの流れの前半部を示すフローチャート
【図5】第1の実施形態に係るコントローラの動作手順において、書き込み処理におけるメインの流れの後半部を示すフローチャート
【図6】第1の実施形態に係るコントローラの動作手順において、コマンド受信割り込み処理の手順を示すフローチャート
【図7】第1の実施形態に係るコントローラの動作手順において、キャッシュ処理の手順を示すフローチャート
【図8】本発明の第2の実施形態に係るキャッシュ処理の手順を示すフローチャート
【符号の説明】
1…コントローラ
1a…データ連続性判別手段
1b…データ結合手段
1c…未書き込みデータ蓄積量制限手段
1d…データ書き込み制御手段
2…データ量記憶部
3…キャッシュメモリ
4…ディスク
5…ホストコンピュータ
7…ディスクコントローラ
Claims (2)
- ホストコンピュータから送られてきたデータを一時格納するキャッシュメモリと、
前記ホストコンピュータから送られてきた前記キャッシュメモリ上のデータのデータ量を記憶するデータ量記憶部と、
前記ホストコンピュータから送られてきたデータが前記キャッシュメモリに書き込まれた時点で当該ホストコンピュータに書き込み終了を報告すると共に、当該書き込み終了の後に当該データの記録媒体への書き込み制御を行うコントローラと、
を有してなり、
前記データ量記憶部は、前記記録媒体上のアドレス及び前記キャッシュメモリ上の格納開始アドレスを保持するタグを有し、
前記コントローラは、
前記ホストコンピュータから前記キャッシュメモリに対して順次送られてきたデータが、シーケンシャルデータあるいはランダムデータの何れかであるかを判断するデータ連続性判別手段と、
前記データ連続性判別手段の判別結果に基づいて前記データがシーケンシャルデータの場合は、前記キャッシュメモリに一時格納する該データを一まとめに結合するデータ結合手段と、
前記データ連続性判別手段の判別結果に基づいて前記データが少なくともランダムデータを含む場合であると判別された場合は、前記キャッシュメモリにおける未書き込みデータ量が所定の値より大きいか否かを判断し、当該未書き込みデータ量が前記所定の値より大きい場合は前記キャッシュメモリに当該データを一時格納することを規制する未書き込みデータ蓄積量制限手段と、
を備えたことを特徴とするディスクキャッシュ装置。 - 前記データ量記憶部は、前記ホストコンピュータから送られてきたデータのデータ数、前記キャッシュメモリにおける未書き込みデータ量、前記キャッシュメモリにおける空き容量を記憶することを特徴とする請求項1に記載のディスクキャッシュ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26724095A JP3594265B2 (ja) | 1995-10-16 | 1995-10-16 | ディスクキャッシュ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26724095A JP3594265B2 (ja) | 1995-10-16 | 1995-10-16 | ディスクキャッシュ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09114598A JPH09114598A (ja) | 1997-05-02 |
JP3594265B2 true JP3594265B2 (ja) | 2004-11-24 |
Family
ID=17442091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26724095A Expired - Fee Related JP3594265B2 (ja) | 1995-10-16 | 1995-10-16 | ディスクキャッシュ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3594265B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3585091B2 (ja) * | 1998-06-15 | 2004-11-04 | 富士通株式会社 | 記憶装置 |
KR101570179B1 (ko) | 2008-12-08 | 2015-11-18 | 삼성전자주식회사 | 빠른 파워-오프를 위한 캐시 동기화 방법 및 시스템 |
-
1995
- 1995-10-16 JP JP26724095A patent/JP3594265B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09114598A (ja) | 1997-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4598357A (en) | Cache/disk subsystem with file number for recovery of cached data | |
JP3898782B2 (ja) | 情報記録再生装置 | |
US7069373B2 (en) | USB endpoint controller flexible memory management | |
KR20020064142A (ko) | 향상된 청각 및 시각 데이터 전송을 위한 디스크 드라이브 | |
JPH11273243A (ja) | ディスク装置及び同装置に適用されるライトバッファ制御方法 | |
EP0890955B1 (en) | Storage apparatus, data write-in method, and data read-out method | |
JP2003242470A (ja) | 外部接続機器及びホスト機器 | |
JPH03194774A (ja) | 外部記憶装置の不良ブロック交替処理方式 | |
JP3078204B2 (ja) | 磁気ディスク装置及び磁気ディスク装置におけるバッファ管理方法 | |
JP4160139B2 (ja) | 情報記録再生装置 | |
JP2003241908A (ja) | 外部接続機器及びホスト機器 | |
US20030142543A1 (en) | Memory device, data processing method and data processing program | |
US20030056141A1 (en) | Control method used in and-gate type system to increase efficiency and lengthen lifetime of use | |
JP3594265B2 (ja) | ディスクキャッシュ装置 | |
EP0017666A2 (en) | Methods of operating direct access storage means | |
US6532513B1 (en) | Information recording and reproduction apparatus | |
US8489802B2 (en) | Recordable memory device which writes data to reformatted user area of nonvolatile semiconductor memory | |
US7062682B2 (en) | Data recorder and data recording method avoiding data loss due to data transfer error | |
KR19990072581A (ko) | 데이터전송방법및장치 | |
JP2001005928A (ja) | Icカード | |
JP2000155737A (ja) | デ―タパケット受信装置 | |
JP3030949B2 (ja) | ディジタルデータ記録再生装置 | |
JP3275492B2 (ja) | 連動型ディスク装置 | |
JP2959544B2 (ja) | 磁気ディスク装置 | |
KR100216365B1 (ko) | 전전자교환기에서 디스크 에러검출 및 복구방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040518 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040720 |
|
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: 20040824 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040830 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080910 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080910 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090910 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090910 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100910 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110910 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120910 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |