JP2004164144A - ディスク装置 - Google Patents
ディスク装置 Download PDFInfo
- Publication number
- JP2004164144A JP2004164144A JP2002327674A JP2002327674A JP2004164144A JP 2004164144 A JP2004164144 A JP 2004164144A JP 2002327674 A JP2002327674 A JP 2002327674A JP 2002327674 A JP2002327674 A JP 2002327674A JP 2004164144 A JP2004164144 A JP 2004164144A
- Authority
- JP
- Japan
- Prior art keywords
- data
- cache
- read
- read command
- disk
- 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
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
Abstract
【課題】回転待ち時間を先読みに充てるに際しキャッシュ内データの蓄積状況に応じて先読みの仕方を制御することで、ヒット率を向上させ、ディスクの性能を向上させる。
【解決手段】先読み中に受領したリードコマンドがキャッシュミスであり、該受領リードコマンドの処理のためにシークを行う必要がある場合において発生する回転待ち時間を先行リードコマンドの先読み処理と、該受領リードコマンドの先読み処理に充てる場合において、すでにキャッシュに存在する領域のデータを先読みしないよう、先読み領域を随時決定できるようにしている。
【選択図】 図5
【解決手段】先読み中に受領したリードコマンドがキャッシュミスであり、該受領リードコマンドの処理のためにシークを行う必要がある場合において発生する回転待ち時間を先行リードコマンドの先読み処理と、該受領リードコマンドの先読み処理に充てる場合において、すでにキャッシュに存在する領域のデータを先読みしないよう、先読み領域を随時決定できるようにしている。
【選択図】 図5
Description
【0001】
【発明の属する技術分野】
本発明は、ハードディスク上のデータを効率よくキャッシュに転送し、キャッシュのヒット率を高め、コマンド実行時間を短縮するための先読み制御方式に関する。
【0002】
【従来の技術】
ハードディスクでは、キャッシュを設けディスク上のデータをキャッシュに転送して管理し、キャッシュから直接ホストにデータを転送できるようにすることで、ホストへのデータ転送効率を上げている。
【0003】
ディスクからキャッシュにデータを転送するに際しては、キャッシュ上のデータが後続リードコマンドでヒットするよう、ホスト要求データ直後のデータをあらかじめキャッシュに転送する方式がある。また、先読み継続中に受領したコマンドにより先読みを停止する際、先読み中のヘッドのアドレスと該コマンドにおけるホスト要求アドレスから、該コマンド受領後すぐにシークを開始した場合の回転待ち時間を算出し、該回転待ち時間が最少となるまで直前コマンドの先読みを継続する方式がある。このような先読み方式には例えば「磁気ディスク装置」と題する下記の特許文献1がある。
【0004】
【特許文献1】
特開平6−95810号公報
【0005】
【発明が解決しようとする課題】
キャッシュによりホストへのデータ転送効率を高めるには先読み処理においてできるだけ多くのデータをキャッシュに転送することが必要である。またその際、キャッシュ領域を有効に活用するため、ディスク上同一領域のデータがキャッシュに重複して存在することのないように先読みを制御することが必要である。
【0006】
前記「磁気ディスク装置」での従来技術では、回転待ちを先読みに充て先読み量を増やしてはいるものの、回転待ち時間を先読みに充てるに際し、キャッシュ内のデータ蓄積状況を参照して先読みしないため、すでにキャッシュに転送済のデータも転送してしまうという問題があった。
【0007】
本発明の課題は、先読み中に受領したリードコマンドがキャッシュミスであった場合でかつ該受領リードコマンドの処理のためにシーク処理を行う必要がある場合において発生する回転待ち時間を先読みに充てるに際し、キャッシュ内のデータの蓄積状況に応じて先読み領域を決定することで、ヒット率を向上させ、ディスクの性能を向上させることである。
【0008】
【課題を解決するための手段】
上記課題を達成するために本発明のディスク装置は、回転待ち時間を先読みに充てるに際し、ディスク上同一領域からのデータがキャッシュに同時に存在することのないように先読する領域を決定し、先読みを実行できるようにしている。
【0009】
すなわち、本発明は、ディスクとディスクにアクセスするヘッドと、ディスクから読み込んだデータを一時的に保存するキャッシュと、キャッシュ上のデータを管理するためのキャッシュデータ管理テーブルと、キャッシュを介してデータ転送を制御するキャッシュ制御部と、ディスクから読み込んだアナログデータをディジタルデータに変換する、あるいはホストからのディジタルデータをアナログデータに変換する信号処理部と、ゲートの開閉を行いキャッシュから信号処理部へのデータ転送、あるいは信号処理部からキャッシュへのデータ転送を制御するディスクフォーマッタを実装するディスク装置であって、先読み中に受領したリードコマンドがキャッシュミスであり、該受領リードコマンドの処理のためにシークを行う必要がある場合において発生する回転待ち時間を先行リードコマンドの先読み処理と、該受領リードコマンドの先読み処理に充てる場合において、すでにキャッシュに存在する領域のデータを先読みしないよう、先読み領域を随時決定する先読み制御手段をもつことを特徴とするディスク装置を提供している。
【0010】
また、上記ディスク装置は、該受領リードコマンドのリード要求データの前半部分を含む領域のデータがキャッシュにすでに存在している場合は、該発生する回転待ち時間をすべて先行リードコマンドの先読み処理に充てるよう先読みの仕方を制御している。
【0011】
また、上記ディスク装置は、該受領リードコマンドのリード要求データの前半部分を含む領域のデータがキャッシュにすでに存在しかつ、先行リードコマンドの先読み範囲内のデータの一部が重複してキャッシュに存在するか判定し、該先読み範囲のデータの一部が重複してキャッシュに存在することが判明した場合は、ただちに先読みを停止するよう先読みを制御している。
【0012】
また、上記ディスク装置は該受領リードコマンドのリード要求データの前半部分を含む領域のデータがキャッシュにすでに存在している場合でかつ、該回転待ち時間を先行リードコマンドの先読みに充てた場合の先読み予測領域のデータの後半の一部がキャッシュにすでに転送済みであるか判定し、予測領域のデータの後半の一部がキャッシュに転送済みであると判断された場合には、該先読み予測領域の内、ディスク未転送のデータ領域まで先行リードコマンドの先読みを行い、その後すぐに先読みを停止するよう先読みの仕方を制御している。
【0013】
また、上記ディスク装置は、該受領リードコマンドのリード要求範囲の前半部分を含む領域のデータがキャッシュに存在していない場合でかつ、先行リードコマンドの後続データの先読み範囲内のデータがキャッシュに重複して存在するか判定し、該後続データの先読み範囲内のデータがキャッシュに重複して存在すると判断された場合は、すぐにシークを行って該受領リードコマンドのリード要求データの先行データの先読みに該回転待ち時間を充てるよう先読みの仕方を制御している。
【0014】
また、上記ディスク装置は、該受領リードコマンドのリード要求データの前半部分を含む領域のデータがキャッシュにすでに存在していない場合でかつ先行リードコマンドの先読み範囲内のデータがすでにキャッシュに存在することが判明し、かつ発生する回転待ち時間を該受領コマンドの先行データの先読みに充てた場合に、トラックの先頭から先行データの先読みを開始しても尚、回転待ちが発生すると予測され、かつ該予測回転待ち時間が、該受領リードコマンドのリード要求データが存在するターゲットトラックと該ターゲットトラックとアドレス順で1つ前のトラックとの間のトラックチェンジ時間よりも大きいと予測される場合には、該アドレス順で1つ前のトラックにシークして、該受領リードコマンドの先行データの先読みを開始するよう先読みの仕方を制御している。
【0015】
【発明の実施の形態】
以下、本発明の実施例を図面により説明する。
【0016】
図1は本発明を適用したディスク装置の例である。本発明を適用するディスク装置は、先読み制御プログラムを実装するプログラムROM101、ROM上の制御プログラムを読み込み実行する制御プロセッサ102、ホストとキャッシュ及びキャッシュとディスクの間のデータ転送を制御するキャッシュ制御部103、リード要求データ/ライト要求データを一時的に書き込むキャッシュ104(尚、制御プロセッサ102に、ディスクからキャッシュ104に読み込んだデータについての情報を管理するキャッシュデータ管理テーブル105を備える)、データの読み書きをする際に指定された位置にヘッドを移動するための制御を行うサーボ制御部106、サーボ制御部106の指示に従って、ヘッドを移動するボイスコイルモータ(VCM)107、ディスクの回転を制御するモータドライバ108、ヘッドから読み込んだ磁気信号から指定されたヘッドの信号だけを選択するセレクタ109、セレクタから送られたアナログデータをディジタルデータに変換するまたはキャッシュ制御部103から送られたディジタルデータをアナログデータに変換する信号処理部110、リード用ゲートを開閉することにより、信号処理部110より送られたリードデータをキャッシュ104に転送し、また、ライト用ゲートを開閉することにより、キャッシュ104より転送されるライトデータを信号処理部110に転送するディスクフォーマッタ111、コマンドやデータをやり取りするインタフェース制御部112よりなる。
【0017】
次にリードコマンド処理における動作を、図1の構成に基づき説明する。ホストは、ディスクに接続されたバス(ホストインタフェース113)を介してディスクに対しリードコマンドデータを送信する。 図2に、リード処理の際に発行されるコマンドの構成を示す。リードコマンドは、リードコマンドを示すコード21、リードするデータの論理ブロックアドレス(以下、LBA)22、リード要求データのサイズを示すホスト要求データ転送数23よりなる。
【0018】
ディスク装置はリードコマンドを受け取ると、制御プロセッサ102内にあるキャッシュデータ管理テーブル105を用いて、要求されたデータがキャッシュ104上に存在するか検索する。図3にキャッシュデータ管理テーブル105の構成を示す。キャッシュデータ管理テーブル105はキャッシュ104に書き込んだデータの開始LBA31、キャッシュメモリ上開始アドレス32、データサイズ33より成る。ヒット検索の際には、キャッシュデータ管理テーブル105を用いて、ホスト要求データのすべてがキャッシュ104上に存在するかを調べ、存在する場合は、該キャッシュ上データのキャッシュメモリ上開始アドレス32からホスト要求データのキャッシュ104上での開始アドレスを算出し、該開始アドレスからホスト要求データを読み出しホストに転送する。キャッシュ104上にホスト要求データが存在しない場合には、プログラムROM101に実装されている論理アドレス変換プログラムを用いてLBAをディスク上での配置を示す物理アドレスに変換し、次にサーボ制御部106を用いて物理アドレスの位置を検出し、ディスクフォーマッタ111のリード用ゲートの開閉を制御して信号制御部110から送られてきたデータをキャッシュ制御部103に転送する。キャッシュ制御部103は、転送されたデータをキャッシュ104に書き込み、さらにキャッシュ104に書き込んだデータについての情報をキャッシュデータ管理テーブル105に登録する。それからキャッシュ104よりホストにホスト要求データを転送する。
【0019】
キャッシュデータ管理テーブル105に登録されたリードデータは、転送元であるディスク上の領域がライトにより更新された場合、キャッシュデータ管理テーブル105より削除される。そのためキャッシュデータ管理テーブル105にはキャッシュ104に読み込まれたリードデータの内有効なリードデータのみが登録されている。
【0020】
次に図4を用いて、先読み中に受領したリードコマンドがキャッシュミスでありかつ該受領リードコマンドの処理のためにシーク処理を行う必要がある場合において発生する回転待ち時間を先行リードコマンドの先読み処理と、該受領リードコマンドの先読み処理に充てる場合の例を説明する。
【0021】
図4中R1は、先行リードコマンドR1のリード要求範囲41を示している。また図4中R2は、先行リードコマンドR1で開始した先読み処理中に受領したリードコマンドR2のリード要求範囲42を示している。図4では、R2のリード要求範囲42は、キャッシュに存在せず、そのためR2のリード要求範囲42までシークしなければならないが、その際に発生する回転待ち時間を先行リードコマンドのR1のリード要求範囲41に後続する領域の先読み(以下後続データの先読み)と、先読み中に受領したリードコマンドR2のリード要求範囲に先行する領域の先読み(以下先行データの先読み)に充てることができる。尚、先行リードコマンドR1のリード処理では、後続コマンドのR2を受領するまでの間、R1のリード要求範囲41に後続する領域の先読みを行うこととする。また本発明のディスク装置は、後続コマンドR2のリード要求範囲42と、R2受領直後の先読み位置43からR2受領直後のシーク後のヘッド位置44を算出して求めることができる。尚、シーク後のヘッドの位置がR2の開始アドレスよりも後に位置付いた場合は、該ヘッド位置からトラックエンドまでは、先行データの先読みをすることができない。そのため、該回転待ちを最少にするには、予測したシーク後のヘッド位置がR2の開始アドレスよりも大きかった場合、該予測ヘッド位置からトラックエンドまでの回転にかかる時間を、先行リードコマンドの後続データの先読みに充てることが望ましい。図4のコマンドパタンでは、該リードコマンドを受領後すぐにシークを開始すると、R2のリード要求範囲42よりも後にヘッドが位置づくことが判明したため、予測したシーク後のヘッド位置44から、R2のリード要求範囲42のあるトラックのエンド45までを移動するのにかかる時間を、該先読み処理中のR1の後続データの先読み47に充て、その後、R2のリード要求データのあるターゲットトラック48にシークを行って、ターゲットトラック48の先頭からR2のリード要求範囲に先行する領域のデータの先読み49を行っている。このように、先読み中にリードコマンドを受領し、該受領リードコマンドがキャッシュミスでシークの必要が生じ回転待ちが発生すると予測された場合には、その予測される回転待ち時間を、先行リードコマンドの後続データの先読みと、該受領リードコマンドにおける先行データの先読みに充てることが可能である。
【0022】
以下では、図4で示したアクセスパタンを用いて、本発明を適用した場合の先読み制御の動作を説明することにする。
【0023】
図5、図6に、先読み中に受領したリードコマンドがキャッシュミスであり、該受領リードコマンドの処理のためにシークを行う必要がある場合において発生する回転待ち時間を先行リードコマンドの後続データの先読み処理と、該受領リードコマンドの先行データの先読み処理に充てる場合において、すでにキャッシュに転送済みの領域のデータを先読みしないよう先読みする領域を決定する先読み制御方式のフローを示す。
【0024】
先読み中に受領したリードコマンドがキャッシュミスであることが判明すると(ステップ501)、本発明のディスク装置は、該受領リードコマンドのリード要求データの前半部分のデータを含むデータがキャッシュに存在するか調べる(ステップ502)。
【0025】
図7に該受領コマンドのリード要求データの一部を含む領域のパタンを示す。図7中、A62はリード要求データの前半部分を含む領域である。また、図7中B62は、リード要求データの後半部分を含む領域である。図中A61のように、リード要求範囲の前半部分のデータを含む領域のデータがキャッシュに存在していた場合に、リード要求データの前半部分のデータを含むデータがキャッシュに存在するということにする。
【0026】
尚、先に説明したように、ヒット検索では、図3で示したキャッシュデータ管理テーブルを用いて検索するが、キャッシュヒット(またはミス)を判定する過程で、検索対象リードコマンドのリード要求範囲の前半部分のデータを含むデータの有無を同時に判定することができる。本発明のディスク装置は、ヒット検索途中で、該リードコマンドのリード要求範囲の前半部分のデータを含むデータがキャッシュに存在する場合には、その結果を一時的に保存できるようにすることが可能である。
【0027】
図5に戻り、該受領リードコマンドがキャッシュミスした場合(ステップ501)、該受領リードコマンドのリード要求データの前半部分のデータが、キャッシュに存在するかチェックし(ステップ502)、該リード要求範囲の前半部分のデータを含むデータがキャッシュに存在する場合は(ステップ503)、該回転待ち時間をすべて先行リードコマンドの後続データの先読み処理に充てた場合の予測先読み範囲を求め、該予測先読み範囲のデータが、キャッシュに転送済みであるかを、キャッシュデータ管理テーブルを用いて判定し、該予測先読み範囲内のデータがキャッシュに存在しないことが判明した場合(ステップ504)、先行リードコマンドの後続データの先読みに該回転待ち時間をすべて充てる(ステップ505)。
【0028】
図8に、図4で示した回転待ちが発生する際のパタンにおいて、該受領リードコマンドのリード要求範囲の前半部分のデータを含む領域のデータがキャッシュに存在し(Aの領域71)、かつ発生する回転待ちを先行リードコマンドの後続データの先読み処理に充てた場合の予測先読み範囲(72)内のデータが、キャッシュに存在しない場合の例を示す。この場合は、発生する回転待ち時間をすべて、先行リードコマンドの後続データの先読みに充てる。
【0029】
図5に戻り、またもし該予測先読み範囲のデータがキャッシュに存在する場合(ステップ504)で、かつ該予測先読み範囲の後半部分のデータのみがキャッシュに存在することが判明した場合(ステップ506)でかつ、該予測範囲の内キャッシュに未転送のデータをキャッシュに転送しても、すでにキャッシュに存在する該予測範囲の後半部分のデータが上書きされないかを調べ(ステップ507)、上書きされない場合には、該予測範囲の内、キャッシュに未転送のデータのみを先読みして(ステップ508)、すぐに先読みを停止する(ステップ509)。
【0030】
図9に図4で示した回転待ちが発生する際のパタンにおいて、該受領リードコマンドのリード要求範囲の前半部分のデータを含む領域のデータがキャッシュに存在し、かつ発生する回転待ちを先行リードコマンドの後続データの先読み処理に充てた場合でかつ予測先読み範囲の後半部分のデータのみがキャッシュに転送済みであることが判明した場合の例を示す。範囲B81がキャッシュに転送済みの領域である。この場合、該予測先読み範囲82の内、キャッシュに未転送の範囲83内のデータをキャッシュに転送しても、キャッシュに転送済みの領域B82内のデータがキャッシュ上で上書きされない場合は、該キャッシュに未転送の範囲83を先読みし、すぐに先読み停止する。
【0031】
図5に戻り、またもし、該予測先読み範囲の内、前半部分の範囲のデータがキャッシュに転送済みであることが判明したら、すぐに該先読み中の先行リードコマンドの先読みを停止する(ステップ511)。
【0032】
図10に図4で示したパタンにおいて、該先行リードコマンドの該予測先読み範囲の前半部分のデータがキャッシュに転送済みである場合の例を示す。図10中の領域B91はキャッシュに転送済みのデータ範囲を示す。この場合、先行リードコマンドR1の先読みはすぐに停止することとする。
【0033】
図5に戻り、また、該予測先読み範囲内の後半部分のデータがキャッシュに存在する場合(ステップ506)で、該予測先読み範囲内のキャッシュに存在しない部分のデータをキャッシュに転送した場合に、該予測範囲内のキャッシュに転送済みの後半部分の領域のデータが上書きされると判断された場合(ステップ507)は、該予測先読み範囲内のデータをすべて先読みする(ステップ510)。
【0034】
また、先読み中に受領したリードコマンドにおいて、キャッシュミスが判明し、該受領リードコマンドのリード要求データの前半部分のデータがキャッシュに存在しない場合でかつ、該リードコマンド受領した時点で先読みを行っている領域の一部のデータが、キャッシュデータ管理テーブルを用いて検索した結果、キャッシュに重複して存在することが判明した場合(図6のステップ512)は、先読み中の先行リードコマンドの先読みをすぐに停止してシークを行った場合に発生する予測回転待ち時間を該受領リードコマンドの先行データの先読みに充てた場合に、該受領リードコマンドのリード要求データが存在するターゲットトラックの先頭から該受領リードコマンドの先行データの先読みを開始しても尚、回転待ちが発生すると判断され(ステップ513)、さらに、該予測回転待ち時間が、ターゲットトラックとアドレス順で1つ前のトラックとの間で生じるトラックチェンジ時間よりも大きい場合は(ステップ514)、ターゲットトラックよりアドレス順で1つ前のトラックにシークを行って(但しシーク距離が変わることでシーク時間に変動がない場合とする)、該受領リードコマンドの先行データの先読みを開始する(ステップ515)。
【0035】
図11に、図4で示した回転待ちが発生する際のパタンにおいて、リードコマンド受領した時点で先読みを行っている領域の一部が、キャッシュデータ管理テーブルを用いて検索した結果、キャッシュに重複して存在することが判明したため、発生する回転待ち時間を先行リードコマンドの先読み処理に充てた場合の例を示す。図11中領域A1001がキャッシュに転送済みの範囲である。コマンドR1の先読み処理は、コマンドR2を受領した時点1002ですでに、領域A1001内のデータを読み込んでいるので、発生する回転待ちをコマンドR2の先行データの先読みに充てる。コマンドR2受領直後にシークを行った場合のヘッドの位置1003は、R2のリード要求範囲1004を超えるため、シーク後に回転待ち1005が生じる。
【0036】
また、図12にR2を受領した直後にシークを行った場合に発生する回転待ち時間を受領コマンドの先行データの先読みに充てても尚、回転待ちが発生すると判断された場合でかつ、そのときの予測回転待ち時間がターゲットトラックとアドレス順で1つ前のトラックとの間のトラックチェンジ時間よりも大きい場合のアクセスの例を示す。尚、本発明のディスク装置はR2 受領直後にシークを行ったときの回転待ち(図11中の1005)を算出可能である。この場合、ターゲットトラック111よりアドレス順で1つの前のトラック112にシークを行って先行データの先読みを開始する。
【0037】
図6に戻り、また、該受領リードコマンドのリード要求データが存在するターゲットトラックの先頭から該受領リードコマンドの先行データの先読みを開始しても尚、回転待ちが発生すると判断された場合で、該発生する予測回転待ち時間がターゲットトラックとアドレス順で1つ前のトラックとの間のトラックチェンジ時間よりも小さい場合は、該ターゲットトラックの先頭から該受領リードコマンドの先行データの先読みを開始する(ステップ516)。
【0038】
また、先行リードコマンドの先読みをすぐに停止してシークを行った場合に発生する該予測回転待ち時間をすべて該受領リードコマンドのターゲットトラックにおける先行データの先読みに充てられる場合(シーク後の予測ヘッド位置が該受領リードコマンドのリード要求範囲の前に位置づく場合)は、すぐに、先行リードコマンドの先読みを停止し、シークを行って該ターゲットトラックにおいて先行データの先読みを開始する(ステップ517)。
【0039】
また、先読み中に受領したリードコマンドにおいて、キャッシュミスが判明し、さらに該受領リードコマンドのリード要求データの前半部分のデータがキャッシュに存在しない場合でかつ、該リードコマンドを受領した時点で先読みを行っている領域の一部が、キャッシュデータ管理テーブルを用いて検索した結果、キャッシュに重複して存在しなかった場合は、回転待ちを最少にするように、先行リードコマンドの後続データの先読み処理と、該受領リードコマンドの先行データの先読み処理に、回転待ち時間を充てる(ステップ518)。本発明は、回転待ち時間を最少にする先読み制御を課題としていないので、回転待ちを最少にするための先読み処理については詳述しない。
【0040】
【発明の効果】
本発明のディスク装置によれば、先読み中に受領したリードコマンドがキャッシュミスで、該受領リードコマンドの処理のためにシーク処理を行う必要がある場合において発生する回転待ち時間を先読みに充てるに際し、キャッシュ内データの蓄積状況に応じて先読みの領域を決定することで、ヒット率を向上させ、ディスクの性能を向上させることができる。
【図面の簡単な説明】
【図1】本実施形態に係わるディスク装置の構成例を示す図。
【図2】ホストが発行するリードコマンドの構成例を示す図。
【図3】キャッシュデータ管理テーブルの構成例を示す図。
【図4】回転待ちが発生するリードアクセスパタンの例を示す図。
【図5】回転待ち時間を先読みに充てるに際し、ディスク上同一領域のデータをキャッシュに存在しないようにする先読み制御方式を示すフローチャート。
【図6】図5に続く先読み制御方式のフローチャート。
【図7】リード要求データの一部がキャッシュに存在する場合のパタンを示す図。
【図8】回転待ち時間を先読みに充てるに際し、先読み中に受領したリードコマンドのリード要求データが部分的にキャッシュに存在する場合の先読み制御(後続データの先読みの実行)の例を説明する図。
【図9】回転待ち時間を先読みに充てるに際し、先読み中に受領したリードコマンドのリード要求データが部分的にキャッシュに存在する場合の先読み制御(キャッシュに未転送の領域まで後続データの先読みを実行)の例を説明する図。
【図10】回転待ち時間を先読みに充てるに際し、先読み中に受領したリードコマンドのリード要求データが部分的にキャッシュに存在する場合の先読み制御(リードコマンド受領直後に先行リードコマンドの先読みを停止)の例を説明する図。
【図11】先行リードコマンドの後続データ先読み領域の一部のデータがキャッシュに重複して存在する場合の先読み制御(受領リードコマンドのターゲットトラックの先頭から先行データの先読みを開始)の例を説明する図。
【図12】先行リードコマンドの後続データ先読み領域の一部のデータがキャッシュに重複して存在する場合の先読み制御(受領リードコマンドのターゲットトラックのアドレス順で1つ前のトラックから先行データの先読みを開始)の例を説明する図。
【符号の説明】
101…プログラムROM、102…制御プロセッサ、103…キャッシュ制御部、104…キャッシュメモリ、105…キャッシュデータ管理テーブル、106…サーボ制御部、107…ボイスコイルモータ(VCM)、108…モータドライバ、109…セレクタ、110…信号処理部、111…ディスクフォーマッタ、112…インタフェース制御部、113…ホストインタフェース、21…コマンドコード、22…論理ブロックアドレス(LBA)、23…ホスト要求データ転送数、31…データ開始LBA、32…キャッシュメモリ上開始アドレス、33…データサイズ。
【発明の属する技術分野】
本発明は、ハードディスク上のデータを効率よくキャッシュに転送し、キャッシュのヒット率を高め、コマンド実行時間を短縮するための先読み制御方式に関する。
【0002】
【従来の技術】
ハードディスクでは、キャッシュを設けディスク上のデータをキャッシュに転送して管理し、キャッシュから直接ホストにデータを転送できるようにすることで、ホストへのデータ転送効率を上げている。
【0003】
ディスクからキャッシュにデータを転送するに際しては、キャッシュ上のデータが後続リードコマンドでヒットするよう、ホスト要求データ直後のデータをあらかじめキャッシュに転送する方式がある。また、先読み継続中に受領したコマンドにより先読みを停止する際、先読み中のヘッドのアドレスと該コマンドにおけるホスト要求アドレスから、該コマンド受領後すぐにシークを開始した場合の回転待ち時間を算出し、該回転待ち時間が最少となるまで直前コマンドの先読みを継続する方式がある。このような先読み方式には例えば「磁気ディスク装置」と題する下記の特許文献1がある。
【0004】
【特許文献1】
特開平6−95810号公報
【0005】
【発明が解決しようとする課題】
キャッシュによりホストへのデータ転送効率を高めるには先読み処理においてできるだけ多くのデータをキャッシュに転送することが必要である。またその際、キャッシュ領域を有効に活用するため、ディスク上同一領域のデータがキャッシュに重複して存在することのないように先読みを制御することが必要である。
【0006】
前記「磁気ディスク装置」での従来技術では、回転待ちを先読みに充て先読み量を増やしてはいるものの、回転待ち時間を先読みに充てるに際し、キャッシュ内のデータ蓄積状況を参照して先読みしないため、すでにキャッシュに転送済のデータも転送してしまうという問題があった。
【0007】
本発明の課題は、先読み中に受領したリードコマンドがキャッシュミスであった場合でかつ該受領リードコマンドの処理のためにシーク処理を行う必要がある場合において発生する回転待ち時間を先読みに充てるに際し、キャッシュ内のデータの蓄積状況に応じて先読み領域を決定することで、ヒット率を向上させ、ディスクの性能を向上させることである。
【0008】
【課題を解決するための手段】
上記課題を達成するために本発明のディスク装置は、回転待ち時間を先読みに充てるに際し、ディスク上同一領域からのデータがキャッシュに同時に存在することのないように先読する領域を決定し、先読みを実行できるようにしている。
【0009】
すなわち、本発明は、ディスクとディスクにアクセスするヘッドと、ディスクから読み込んだデータを一時的に保存するキャッシュと、キャッシュ上のデータを管理するためのキャッシュデータ管理テーブルと、キャッシュを介してデータ転送を制御するキャッシュ制御部と、ディスクから読み込んだアナログデータをディジタルデータに変換する、あるいはホストからのディジタルデータをアナログデータに変換する信号処理部と、ゲートの開閉を行いキャッシュから信号処理部へのデータ転送、あるいは信号処理部からキャッシュへのデータ転送を制御するディスクフォーマッタを実装するディスク装置であって、先読み中に受領したリードコマンドがキャッシュミスであり、該受領リードコマンドの処理のためにシークを行う必要がある場合において発生する回転待ち時間を先行リードコマンドの先読み処理と、該受領リードコマンドの先読み処理に充てる場合において、すでにキャッシュに存在する領域のデータを先読みしないよう、先読み領域を随時決定する先読み制御手段をもつことを特徴とするディスク装置を提供している。
【0010】
また、上記ディスク装置は、該受領リードコマンドのリード要求データの前半部分を含む領域のデータがキャッシュにすでに存在している場合は、該発生する回転待ち時間をすべて先行リードコマンドの先読み処理に充てるよう先読みの仕方を制御している。
【0011】
また、上記ディスク装置は、該受領リードコマンドのリード要求データの前半部分を含む領域のデータがキャッシュにすでに存在しかつ、先行リードコマンドの先読み範囲内のデータの一部が重複してキャッシュに存在するか判定し、該先読み範囲のデータの一部が重複してキャッシュに存在することが判明した場合は、ただちに先読みを停止するよう先読みを制御している。
【0012】
また、上記ディスク装置は該受領リードコマンドのリード要求データの前半部分を含む領域のデータがキャッシュにすでに存在している場合でかつ、該回転待ち時間を先行リードコマンドの先読みに充てた場合の先読み予測領域のデータの後半の一部がキャッシュにすでに転送済みであるか判定し、予測領域のデータの後半の一部がキャッシュに転送済みであると判断された場合には、該先読み予測領域の内、ディスク未転送のデータ領域まで先行リードコマンドの先読みを行い、その後すぐに先読みを停止するよう先読みの仕方を制御している。
【0013】
また、上記ディスク装置は、該受領リードコマンドのリード要求範囲の前半部分を含む領域のデータがキャッシュに存在していない場合でかつ、先行リードコマンドの後続データの先読み範囲内のデータがキャッシュに重複して存在するか判定し、該後続データの先読み範囲内のデータがキャッシュに重複して存在すると判断された場合は、すぐにシークを行って該受領リードコマンドのリード要求データの先行データの先読みに該回転待ち時間を充てるよう先読みの仕方を制御している。
【0014】
また、上記ディスク装置は、該受領リードコマンドのリード要求データの前半部分を含む領域のデータがキャッシュにすでに存在していない場合でかつ先行リードコマンドの先読み範囲内のデータがすでにキャッシュに存在することが判明し、かつ発生する回転待ち時間を該受領コマンドの先行データの先読みに充てた場合に、トラックの先頭から先行データの先読みを開始しても尚、回転待ちが発生すると予測され、かつ該予測回転待ち時間が、該受領リードコマンドのリード要求データが存在するターゲットトラックと該ターゲットトラックとアドレス順で1つ前のトラックとの間のトラックチェンジ時間よりも大きいと予測される場合には、該アドレス順で1つ前のトラックにシークして、該受領リードコマンドの先行データの先読みを開始するよう先読みの仕方を制御している。
【0015】
【発明の実施の形態】
以下、本発明の実施例を図面により説明する。
【0016】
図1は本発明を適用したディスク装置の例である。本発明を適用するディスク装置は、先読み制御プログラムを実装するプログラムROM101、ROM上の制御プログラムを読み込み実行する制御プロセッサ102、ホストとキャッシュ及びキャッシュとディスクの間のデータ転送を制御するキャッシュ制御部103、リード要求データ/ライト要求データを一時的に書き込むキャッシュ104(尚、制御プロセッサ102に、ディスクからキャッシュ104に読み込んだデータについての情報を管理するキャッシュデータ管理テーブル105を備える)、データの読み書きをする際に指定された位置にヘッドを移動するための制御を行うサーボ制御部106、サーボ制御部106の指示に従って、ヘッドを移動するボイスコイルモータ(VCM)107、ディスクの回転を制御するモータドライバ108、ヘッドから読み込んだ磁気信号から指定されたヘッドの信号だけを選択するセレクタ109、セレクタから送られたアナログデータをディジタルデータに変換するまたはキャッシュ制御部103から送られたディジタルデータをアナログデータに変換する信号処理部110、リード用ゲートを開閉することにより、信号処理部110より送られたリードデータをキャッシュ104に転送し、また、ライト用ゲートを開閉することにより、キャッシュ104より転送されるライトデータを信号処理部110に転送するディスクフォーマッタ111、コマンドやデータをやり取りするインタフェース制御部112よりなる。
【0017】
次にリードコマンド処理における動作を、図1の構成に基づき説明する。ホストは、ディスクに接続されたバス(ホストインタフェース113)を介してディスクに対しリードコマンドデータを送信する。 図2に、リード処理の際に発行されるコマンドの構成を示す。リードコマンドは、リードコマンドを示すコード21、リードするデータの論理ブロックアドレス(以下、LBA)22、リード要求データのサイズを示すホスト要求データ転送数23よりなる。
【0018】
ディスク装置はリードコマンドを受け取ると、制御プロセッサ102内にあるキャッシュデータ管理テーブル105を用いて、要求されたデータがキャッシュ104上に存在するか検索する。図3にキャッシュデータ管理テーブル105の構成を示す。キャッシュデータ管理テーブル105はキャッシュ104に書き込んだデータの開始LBA31、キャッシュメモリ上開始アドレス32、データサイズ33より成る。ヒット検索の際には、キャッシュデータ管理テーブル105を用いて、ホスト要求データのすべてがキャッシュ104上に存在するかを調べ、存在する場合は、該キャッシュ上データのキャッシュメモリ上開始アドレス32からホスト要求データのキャッシュ104上での開始アドレスを算出し、該開始アドレスからホスト要求データを読み出しホストに転送する。キャッシュ104上にホスト要求データが存在しない場合には、プログラムROM101に実装されている論理アドレス変換プログラムを用いてLBAをディスク上での配置を示す物理アドレスに変換し、次にサーボ制御部106を用いて物理アドレスの位置を検出し、ディスクフォーマッタ111のリード用ゲートの開閉を制御して信号制御部110から送られてきたデータをキャッシュ制御部103に転送する。キャッシュ制御部103は、転送されたデータをキャッシュ104に書き込み、さらにキャッシュ104に書き込んだデータについての情報をキャッシュデータ管理テーブル105に登録する。それからキャッシュ104よりホストにホスト要求データを転送する。
【0019】
キャッシュデータ管理テーブル105に登録されたリードデータは、転送元であるディスク上の領域がライトにより更新された場合、キャッシュデータ管理テーブル105より削除される。そのためキャッシュデータ管理テーブル105にはキャッシュ104に読み込まれたリードデータの内有効なリードデータのみが登録されている。
【0020】
次に図4を用いて、先読み中に受領したリードコマンドがキャッシュミスでありかつ該受領リードコマンドの処理のためにシーク処理を行う必要がある場合において発生する回転待ち時間を先行リードコマンドの先読み処理と、該受領リードコマンドの先読み処理に充てる場合の例を説明する。
【0021】
図4中R1は、先行リードコマンドR1のリード要求範囲41を示している。また図4中R2は、先行リードコマンドR1で開始した先読み処理中に受領したリードコマンドR2のリード要求範囲42を示している。図4では、R2のリード要求範囲42は、キャッシュに存在せず、そのためR2のリード要求範囲42までシークしなければならないが、その際に発生する回転待ち時間を先行リードコマンドのR1のリード要求範囲41に後続する領域の先読み(以下後続データの先読み)と、先読み中に受領したリードコマンドR2のリード要求範囲に先行する領域の先読み(以下先行データの先読み)に充てることができる。尚、先行リードコマンドR1のリード処理では、後続コマンドのR2を受領するまでの間、R1のリード要求範囲41に後続する領域の先読みを行うこととする。また本発明のディスク装置は、後続コマンドR2のリード要求範囲42と、R2受領直後の先読み位置43からR2受領直後のシーク後のヘッド位置44を算出して求めることができる。尚、シーク後のヘッドの位置がR2の開始アドレスよりも後に位置付いた場合は、該ヘッド位置からトラックエンドまでは、先行データの先読みをすることができない。そのため、該回転待ちを最少にするには、予測したシーク後のヘッド位置がR2の開始アドレスよりも大きかった場合、該予測ヘッド位置からトラックエンドまでの回転にかかる時間を、先行リードコマンドの後続データの先読みに充てることが望ましい。図4のコマンドパタンでは、該リードコマンドを受領後すぐにシークを開始すると、R2のリード要求範囲42よりも後にヘッドが位置づくことが判明したため、予測したシーク後のヘッド位置44から、R2のリード要求範囲42のあるトラックのエンド45までを移動するのにかかる時間を、該先読み処理中のR1の後続データの先読み47に充て、その後、R2のリード要求データのあるターゲットトラック48にシークを行って、ターゲットトラック48の先頭からR2のリード要求範囲に先行する領域のデータの先読み49を行っている。このように、先読み中にリードコマンドを受領し、該受領リードコマンドがキャッシュミスでシークの必要が生じ回転待ちが発生すると予測された場合には、その予測される回転待ち時間を、先行リードコマンドの後続データの先読みと、該受領リードコマンドにおける先行データの先読みに充てることが可能である。
【0022】
以下では、図4で示したアクセスパタンを用いて、本発明を適用した場合の先読み制御の動作を説明することにする。
【0023】
図5、図6に、先読み中に受領したリードコマンドがキャッシュミスであり、該受領リードコマンドの処理のためにシークを行う必要がある場合において発生する回転待ち時間を先行リードコマンドの後続データの先読み処理と、該受領リードコマンドの先行データの先読み処理に充てる場合において、すでにキャッシュに転送済みの領域のデータを先読みしないよう先読みする領域を決定する先読み制御方式のフローを示す。
【0024】
先読み中に受領したリードコマンドがキャッシュミスであることが判明すると(ステップ501)、本発明のディスク装置は、該受領リードコマンドのリード要求データの前半部分のデータを含むデータがキャッシュに存在するか調べる(ステップ502)。
【0025】
図7に該受領コマンドのリード要求データの一部を含む領域のパタンを示す。図7中、A62はリード要求データの前半部分を含む領域である。また、図7中B62は、リード要求データの後半部分を含む領域である。図中A61のように、リード要求範囲の前半部分のデータを含む領域のデータがキャッシュに存在していた場合に、リード要求データの前半部分のデータを含むデータがキャッシュに存在するということにする。
【0026】
尚、先に説明したように、ヒット検索では、図3で示したキャッシュデータ管理テーブルを用いて検索するが、キャッシュヒット(またはミス)を判定する過程で、検索対象リードコマンドのリード要求範囲の前半部分のデータを含むデータの有無を同時に判定することができる。本発明のディスク装置は、ヒット検索途中で、該リードコマンドのリード要求範囲の前半部分のデータを含むデータがキャッシュに存在する場合には、その結果を一時的に保存できるようにすることが可能である。
【0027】
図5に戻り、該受領リードコマンドがキャッシュミスした場合(ステップ501)、該受領リードコマンドのリード要求データの前半部分のデータが、キャッシュに存在するかチェックし(ステップ502)、該リード要求範囲の前半部分のデータを含むデータがキャッシュに存在する場合は(ステップ503)、該回転待ち時間をすべて先行リードコマンドの後続データの先読み処理に充てた場合の予測先読み範囲を求め、該予測先読み範囲のデータが、キャッシュに転送済みであるかを、キャッシュデータ管理テーブルを用いて判定し、該予測先読み範囲内のデータがキャッシュに存在しないことが判明した場合(ステップ504)、先行リードコマンドの後続データの先読みに該回転待ち時間をすべて充てる(ステップ505)。
【0028】
図8に、図4で示した回転待ちが発生する際のパタンにおいて、該受領リードコマンドのリード要求範囲の前半部分のデータを含む領域のデータがキャッシュに存在し(Aの領域71)、かつ発生する回転待ちを先行リードコマンドの後続データの先読み処理に充てた場合の予測先読み範囲(72)内のデータが、キャッシュに存在しない場合の例を示す。この場合は、発生する回転待ち時間をすべて、先行リードコマンドの後続データの先読みに充てる。
【0029】
図5に戻り、またもし該予測先読み範囲のデータがキャッシュに存在する場合(ステップ504)で、かつ該予測先読み範囲の後半部分のデータのみがキャッシュに存在することが判明した場合(ステップ506)でかつ、該予測範囲の内キャッシュに未転送のデータをキャッシュに転送しても、すでにキャッシュに存在する該予測範囲の後半部分のデータが上書きされないかを調べ(ステップ507)、上書きされない場合には、該予測範囲の内、キャッシュに未転送のデータのみを先読みして(ステップ508)、すぐに先読みを停止する(ステップ509)。
【0030】
図9に図4で示した回転待ちが発生する際のパタンにおいて、該受領リードコマンドのリード要求範囲の前半部分のデータを含む領域のデータがキャッシュに存在し、かつ発生する回転待ちを先行リードコマンドの後続データの先読み処理に充てた場合でかつ予測先読み範囲の後半部分のデータのみがキャッシュに転送済みであることが判明した場合の例を示す。範囲B81がキャッシュに転送済みの領域である。この場合、該予測先読み範囲82の内、キャッシュに未転送の範囲83内のデータをキャッシュに転送しても、キャッシュに転送済みの領域B82内のデータがキャッシュ上で上書きされない場合は、該キャッシュに未転送の範囲83を先読みし、すぐに先読み停止する。
【0031】
図5に戻り、またもし、該予測先読み範囲の内、前半部分の範囲のデータがキャッシュに転送済みであることが判明したら、すぐに該先読み中の先行リードコマンドの先読みを停止する(ステップ511)。
【0032】
図10に図4で示したパタンにおいて、該先行リードコマンドの該予測先読み範囲の前半部分のデータがキャッシュに転送済みである場合の例を示す。図10中の領域B91はキャッシュに転送済みのデータ範囲を示す。この場合、先行リードコマンドR1の先読みはすぐに停止することとする。
【0033】
図5に戻り、また、該予測先読み範囲内の後半部分のデータがキャッシュに存在する場合(ステップ506)で、該予測先読み範囲内のキャッシュに存在しない部分のデータをキャッシュに転送した場合に、該予測範囲内のキャッシュに転送済みの後半部分の領域のデータが上書きされると判断された場合(ステップ507)は、該予測先読み範囲内のデータをすべて先読みする(ステップ510)。
【0034】
また、先読み中に受領したリードコマンドにおいて、キャッシュミスが判明し、該受領リードコマンドのリード要求データの前半部分のデータがキャッシュに存在しない場合でかつ、該リードコマンド受領した時点で先読みを行っている領域の一部のデータが、キャッシュデータ管理テーブルを用いて検索した結果、キャッシュに重複して存在することが判明した場合(図6のステップ512)は、先読み中の先行リードコマンドの先読みをすぐに停止してシークを行った場合に発生する予測回転待ち時間を該受領リードコマンドの先行データの先読みに充てた場合に、該受領リードコマンドのリード要求データが存在するターゲットトラックの先頭から該受領リードコマンドの先行データの先読みを開始しても尚、回転待ちが発生すると判断され(ステップ513)、さらに、該予測回転待ち時間が、ターゲットトラックとアドレス順で1つ前のトラックとの間で生じるトラックチェンジ時間よりも大きい場合は(ステップ514)、ターゲットトラックよりアドレス順で1つ前のトラックにシークを行って(但しシーク距離が変わることでシーク時間に変動がない場合とする)、該受領リードコマンドの先行データの先読みを開始する(ステップ515)。
【0035】
図11に、図4で示した回転待ちが発生する際のパタンにおいて、リードコマンド受領した時点で先読みを行っている領域の一部が、キャッシュデータ管理テーブルを用いて検索した結果、キャッシュに重複して存在することが判明したため、発生する回転待ち時間を先行リードコマンドの先読み処理に充てた場合の例を示す。図11中領域A1001がキャッシュに転送済みの範囲である。コマンドR1の先読み処理は、コマンドR2を受領した時点1002ですでに、領域A1001内のデータを読み込んでいるので、発生する回転待ちをコマンドR2の先行データの先読みに充てる。コマンドR2受領直後にシークを行った場合のヘッドの位置1003は、R2のリード要求範囲1004を超えるため、シーク後に回転待ち1005が生じる。
【0036】
また、図12にR2を受領した直後にシークを行った場合に発生する回転待ち時間を受領コマンドの先行データの先読みに充てても尚、回転待ちが発生すると判断された場合でかつ、そのときの予測回転待ち時間がターゲットトラックとアドレス順で1つ前のトラックとの間のトラックチェンジ時間よりも大きい場合のアクセスの例を示す。尚、本発明のディスク装置はR2 受領直後にシークを行ったときの回転待ち(図11中の1005)を算出可能である。この場合、ターゲットトラック111よりアドレス順で1つの前のトラック112にシークを行って先行データの先読みを開始する。
【0037】
図6に戻り、また、該受領リードコマンドのリード要求データが存在するターゲットトラックの先頭から該受領リードコマンドの先行データの先読みを開始しても尚、回転待ちが発生すると判断された場合で、該発生する予測回転待ち時間がターゲットトラックとアドレス順で1つ前のトラックとの間のトラックチェンジ時間よりも小さい場合は、該ターゲットトラックの先頭から該受領リードコマンドの先行データの先読みを開始する(ステップ516)。
【0038】
また、先行リードコマンドの先読みをすぐに停止してシークを行った場合に発生する該予測回転待ち時間をすべて該受領リードコマンドのターゲットトラックにおける先行データの先読みに充てられる場合(シーク後の予測ヘッド位置が該受領リードコマンドのリード要求範囲の前に位置づく場合)は、すぐに、先行リードコマンドの先読みを停止し、シークを行って該ターゲットトラックにおいて先行データの先読みを開始する(ステップ517)。
【0039】
また、先読み中に受領したリードコマンドにおいて、キャッシュミスが判明し、さらに該受領リードコマンドのリード要求データの前半部分のデータがキャッシュに存在しない場合でかつ、該リードコマンドを受領した時点で先読みを行っている領域の一部が、キャッシュデータ管理テーブルを用いて検索した結果、キャッシュに重複して存在しなかった場合は、回転待ちを最少にするように、先行リードコマンドの後続データの先読み処理と、該受領リードコマンドの先行データの先読み処理に、回転待ち時間を充てる(ステップ518)。本発明は、回転待ち時間を最少にする先読み制御を課題としていないので、回転待ちを最少にするための先読み処理については詳述しない。
【0040】
【発明の効果】
本発明のディスク装置によれば、先読み中に受領したリードコマンドがキャッシュミスで、該受領リードコマンドの処理のためにシーク処理を行う必要がある場合において発生する回転待ち時間を先読みに充てるに際し、キャッシュ内データの蓄積状況に応じて先読みの領域を決定することで、ヒット率を向上させ、ディスクの性能を向上させることができる。
【図面の簡単な説明】
【図1】本実施形態に係わるディスク装置の構成例を示す図。
【図2】ホストが発行するリードコマンドの構成例を示す図。
【図3】キャッシュデータ管理テーブルの構成例を示す図。
【図4】回転待ちが発生するリードアクセスパタンの例を示す図。
【図5】回転待ち時間を先読みに充てるに際し、ディスク上同一領域のデータをキャッシュに存在しないようにする先読み制御方式を示すフローチャート。
【図6】図5に続く先読み制御方式のフローチャート。
【図7】リード要求データの一部がキャッシュに存在する場合のパタンを示す図。
【図8】回転待ち時間を先読みに充てるに際し、先読み中に受領したリードコマンドのリード要求データが部分的にキャッシュに存在する場合の先読み制御(後続データの先読みの実行)の例を説明する図。
【図9】回転待ち時間を先読みに充てるに際し、先読み中に受領したリードコマンドのリード要求データが部分的にキャッシュに存在する場合の先読み制御(キャッシュに未転送の領域まで後続データの先読みを実行)の例を説明する図。
【図10】回転待ち時間を先読みに充てるに際し、先読み中に受領したリードコマンドのリード要求データが部分的にキャッシュに存在する場合の先読み制御(リードコマンド受領直後に先行リードコマンドの先読みを停止)の例を説明する図。
【図11】先行リードコマンドの後続データ先読み領域の一部のデータがキャッシュに重複して存在する場合の先読み制御(受領リードコマンドのターゲットトラックの先頭から先行データの先読みを開始)の例を説明する図。
【図12】先行リードコマンドの後続データ先読み領域の一部のデータがキャッシュに重複して存在する場合の先読み制御(受領リードコマンドのターゲットトラックのアドレス順で1つ前のトラックから先行データの先読みを開始)の例を説明する図。
【符号の説明】
101…プログラムROM、102…制御プロセッサ、103…キャッシュ制御部、104…キャッシュメモリ、105…キャッシュデータ管理テーブル、106…サーボ制御部、107…ボイスコイルモータ(VCM)、108…モータドライバ、109…セレクタ、110…信号処理部、111…ディスクフォーマッタ、112…インタフェース制御部、113…ホストインタフェース、21…コマンドコード、22…論理ブロックアドレス(LBA)、23…ホスト要求データ転送数、31…データ開始LBA、32…キャッシュメモリ上開始アドレス、33…データサイズ。
Claims (6)
- ディスクとディスクにアクセスするヘッドと、ディスクから読み込んだデータを一時的に保存するキャッシュと、キャッシュ上のデータを管理するためのキャッシュデータ管理テーブルと、キャッシュを介してデータ転送を制御するキャッシュ制御部と、ディスクから読み込んだアナログデータをディジタルデータに変換する、あるいはホストからのディジタルデータをアナログデータに変換する信号処理部と、ゲートの開閉を行いキャッシュから信号処理部へのデータ転送、あるいは信号処理部からキャッシュへのデータ転送を制御するディスクフォーマッタを実装するディスク装置であって、
先読み中に受領したリードコマンドがキャッシュミスであり、該受領リードコマンドの処理のためにシークを行う必要がある場合において発生する回転待ち時間を先行リードコマンドの先読み処理と、該受領リードコマンドの先読み処理に充てる場合において、すでにキャッシュに存在する領域のデータを先読みしないよう、先読み領域を決定する先読み制御手段を備えることを特徴とするディスク装置。 - 請求項1に記載のディスク装置であって、該受領リードコマンドのリード要求範囲の前半部分を含む領域のデータがキャッシュに存在している場合は、該発生する回転待ち時間をすべて先行リードコマンドの後続データの先読み処理に充てる先読み制御手段を備えることを特徴とするディスク装置。
- 請求項2に記載のディスク装置であって、該先行リードコマンドの後続データの先読みデータがキャッシュに重複して存在するか判定し、該後続データの先読みデータの一部が重複してキャッシュに存在すると判断された場合には、ただちに先読みを停止する先読み制御手段を備えることを特徴とするディスク装置。
- 請求項2に記載のディスク装置であって、該回転待ち時間を先行リードコマンドの後続データの先読みに充てる場合、該先行リードコマンドの後続データ先読み予測領域の後半のデータの一部がキャッシュに転送済みであるか判定し、該データの一部がキャッシュに転送済みであると判断された場合には、該先読み予測領域の内、キャッシュに未転送のデータ領域まで先行リードコマンドの後続データの先読みを行い、その後すぐに先読みを停止する先読み制御手段を備えることを特徴とするディスク装置。
- 請求項1に記載のディスク装置であって、該受領リードコマンドのリード要求範囲の前半部分を含む領域のデータがキャッシュに存在していない場合でかつ、先行リードコマンドの後続データの先読み範囲内のデータがキャッシュに重複して存在するか判定し、該後続データの先読み範囲内のデータがキャッシュに重複して存在すると判断された場合には、すぐにシークを行って該受領リードコマンドのリード要求データの先行データの先読みに該回転待ち時間を充てる先読み制御手段を備えることを特徴とするディスク装置。
- 請求項5に記載のディスク装置であって該回転待ち時間を受領リードコマンドの先行データの先読みに充てるに際し、トラックの先頭から先行データの先読みを開始しても尚、回転待ちが発生すると予測され、かつ該予測回転待ち時間が、該受領リードコマンドのリード要求データが存在するターゲットトラックと該ターゲットトラックとアドレス順で1つ前のトラックとの間のトラックチェンジ時間よりも大きい場合には、該アドレス順で1つ前のトラックにシークして、該受領リードコマンドにおける先行データの先読みを開始する先読み制御手段を備えることを特徴とするディスク装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002327674A JP2004164144A (ja) | 2002-11-12 | 2002-11-12 | ディスク装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002327674A JP2004164144A (ja) | 2002-11-12 | 2002-11-12 | ディスク装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004164144A true JP2004164144A (ja) | 2004-06-10 |
Family
ID=32806189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002327674A Pending JP2004164144A (ja) | 2002-11-12 | 2002-11-12 | ディスク装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004164144A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008299672A (ja) * | 2007-05-31 | 2008-12-11 | Hitachi Ltd | 計算機システム及びこれを用いたデータベース管理方法 |
US8285941B2 (en) | 2008-02-25 | 2012-10-09 | International Business Machines Corporation | Enhancing timeliness of cache prefetching |
CN111104528A (zh) * | 2018-10-29 | 2020-05-05 | 浙江宇视科技有限公司 | 图片获取方法、装置及客户端 |
US11029878B2 (en) | 2016-06-23 | 2021-06-08 | Fujitsu Limited | Information processing system |
-
2002
- 2002-11-12 JP JP2002327674A patent/JP2004164144A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008299672A (ja) * | 2007-05-31 | 2008-12-11 | Hitachi Ltd | 計算機システム及びこれを用いたデータベース管理方法 |
US8285941B2 (en) | 2008-02-25 | 2012-10-09 | International Business Machines Corporation | Enhancing timeliness of cache prefetching |
US11029878B2 (en) | 2016-06-23 | 2021-06-08 | Fujitsu Limited | Information processing system |
CN111104528A (zh) * | 2018-10-29 | 2020-05-05 | 浙江宇视科技有限公司 | 图片获取方法、装置及客户端 |
CN111104528B (zh) * | 2018-10-29 | 2023-05-16 | 浙江宇视科技有限公司 | 图片获取方法、装置及客户端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1280063A2 (en) | Cache control methods and apparatus for hard disk drives | |
US7194576B1 (en) | Fetch operations in a disk drive control system | |
JP3183993B2 (ja) | ディスク制御システム | |
US20080016273A1 (en) | System And Method To Reduce Disk Access Time During Predictable Loading Sequences | |
JP2007304691A (ja) | ディスク装置及び回転型記憶装置の先読み制御方法 | |
JP3254429B2 (ja) | データ転送/管理システム及び方法 | |
US9104578B2 (en) | Defining address ranges used to cache speculative read data | |
JP4925230B2 (ja) | 記憶装置、記憶制御装置及び制御方法 | |
US20030145165A1 (en) | Interrupting disc write operations to service read commands | |
US6877070B2 (en) | Method and apparatus for implementing command queue ordering with benefit determination of prefetch operations | |
JPH07334426A (ja) | 情報記録再生装置およびデータキャッシュ方法 | |
KR19980029917A (ko) | 자기 디스크 드라이브에서 읽기 캐쉬의 성능을 높이기 위한 방법 | |
US6310743B1 (en) | Seek acoustics reduction with minimized performance degradation | |
US6209058B1 (en) | Cache management for data transfer control from target disk areas | |
JP3087429B2 (ja) | 記憶装置システム | |
JPH11110139A (ja) | データ読み取り方法及びデータ読み取り装置 | |
JP2001014109A (ja) | 記憶装置 | |
JP2004164144A (ja) | ディスク装置 | |
US6957300B2 (en) | Reducing delay of command completion due to overlap condition | |
JP2007011661A (ja) | ディスク装置及びディスク装置のキャッシュメモリ制御方法 | |
JP2002244816A (ja) | ディスク装置 | |
JP2003173294A (ja) | ディスク装置 | |
JPH11212733A (ja) | 外部記憶システム | |
JP2006031383A (ja) | リアルタイム性能向上方式を実装したディスク装置 | |
JP2002342038A (ja) | コマンドの実行順序を制御するディスク装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20041224 |