(57)【特許請求の範囲】
【請求項１】
少なくとも１つのディスクをアクセス制御するディスクドライブと、前記ディスクドライブよりリードされたデータを一時保持するキャッシュメモリとを具備するデータ処理装置に於いて、
リード／ライトの要求で指定する論理アドレスと前記ディスク上での物理的配置との対応を示すアドレス変換マップと、
前記要求を受け付け、リード要求時に、リード要求された複数の論理アドレスの連続性をもとに先読みを行うか否かを判定する先読み判定手段と、
前記先読み判定手段の判定に従って先読みを行う際に、前記複数の論理アドレスを含むｎ個の連続する論理アドレスについて、前記アドレス変換マップを参照し、先読みの対象となるアドレス領域全ての物理的なアドレス配置の連続性を調べ、連続しないアドレス配置部分について、その配置間隔が、設定された許容範囲内にあるか否かを判定し、許容範囲内にあるすべての物理アドレス領域を、連続するアドレス配置部分のアドレス領域とともに一括してリードする一連の先読み領域として、
先読み領域を判定する先読み領域判定手段と、
前記先読み領域判定手段が判定した先読み領域に従い、前記ディスクドライブにリードアクセスを行い、前記ディスクドライブから前記先読み領域のすべてのデータを一度に纏めて読み出すアクセス制御手段と、
を具備することを特徴とするデータ処理装置。
【請求項２】
ディスクドライブより読み出したデータを一時保持するキャッシュを備えたデータ処理装置のデータ先読み方法において、
前記データ処理装置は、
リード／ライトの要求で指定する論理アドレスと前記ディスクドライブのディスク上での物理的配置との対応を示すアドレス変換マップを備えて、
前記ディスクドライブへのリード要求時に、リード要求された複数の論理アドレスの連続性をもとに先読みを行うか否かを判定し、
先読みを行う判定をしたとき、
前記複数の論理アドレスを含むｎ個の連続する論理アドレスについて、前記アドレス変換マップを参照して、先読みの対象となるアドレス領域全ての物理的なアドレス配置の連続性を調べ、
連続しないアドレス配置部分について、その配置間隔が、設定された許容範囲内にあるか否かを判定し、
許容範囲内にあるすべての物理アドレス領域を、連続するアドレス配置部分のアドレス領域とともに一括してリードする一連の先読み領域として、先読み領域を決定し、
決定した先読み領域に従い、前記ディスクドライブにリードアクセスを行い、前記ディスクドライブから前記先読み領域のすべてのデータを一度に纏めて読み出す
ことを特徴とするデータ先読み方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、リード要求に用いる論理上のアドレス配置とデータを記憶する物理上のアドレス配置とが異なる方式でデータ記録された記憶装置を備えたデータ処理装置およびデータ読み出し方法に関する。
【０００２】
【従来の技術】
ディスクドライブを備えたデータ処理システムに於いては、ディスクに対するシーケンシャルリードを高速化する方法として、リードの要求があったアドレスに続く領域のデータを予めキャッシュメモリ上に読み出しておくという先読み処理技術が知られている。この先読み処理については、例えば特公平７−７６９４１号公報に示されている。
【０００３】
この際、上記した従来の先読み技術は、磁気ディスク装置等に於いて、リード要求時の論理上のアドレスは連続していても、そのアドレスの示す順番の通りに実データが配置されていない場合、上記した先読み処理が十分に機能しないという問題があった。
【０００４】
すなわちリード要求するアドレス（論理アドレス）に対して、実際にそのデータが存在する物理的な位置（物理アドレス）への変換を必要とするシステムにおいては、リード要求された領域が論理的に連続していても、物理的には不連続に配置されている場合があり、リード要求された領域全体をまとめて先読みすることができない。このため、ディスクへのアクセスがランダムアクセスとなることから、単純に物理的な配置に従って先読みを行っても先読みの効果が得られず、従って上記した先読み処理が十分に機能しないという問題があった。
【０００５】
【発明が解決しようとする課題】
上記したように、従来の先読み技術に於いては、リード要求時の論理上のアドレスは連続していても、そのアドレスの示す順番の通りに実データが配置されていない場合に、先読み処理本来の機能が十分に発揮できないという問題があった。
【０００６】
本発明は上記実情に鑑みなされたもので、先読みのためのリード命令総数を削減して、先読み処理を効率良く行うことのできるデータ処理装置およびデータの先読み方法を提供することを目的とする。
【０００７】
また、本発明は、ディスクに対するリード命令総数を削減して、ディスクアクセス処理を効率良く行うことのできるデータ処理装置およびデータ先読み方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明は、リード要求された全ての領域に対して物理アドレスを算出し、物理的に隣り合うアドレスになるデータや、物理的に近傍配置されたアドレス領域にあるデータを、まとめてリードする処理機能を備えたことを特徴とする。
【０００９】
更に本発明は、先読み処理を行う際に、予め先読み処理を行いたい全ての領域に対して物理アドレスを算出しておき、物理的に隣り合うアドレスになるデータや、物理的に近傍配置されたアドレス領域にあるデータを、まとめてリードする処理機能を備えたことを特徴とする。
【００１０】
即ち、本発明は、少なくとも１つのディスクをアクセス制御するディスクドライブと、前記ディスクドライブよりリードされたデータを一時保持するキャッシュメモリとを具備するデータ処理装置に於いて、  リード／ライトの要求で指定する論理アドレスと前記ディスク上での物理的配置との対応を示すアドレス変換マップと、  前記要求を受け付け、リード要求時に、リード要求された複数の論理アドレスの連続性をもとに先読みを行うか否かを判定する先読み判定手段と、  前記先読み判定手段の判定に従って先読みを行う際に、前記複数の論理アドレスを含むｎ個の連続する論理アドレスについて、前記アドレス変換マップを参照し、先読みの対象となるアドレス領域全ての物理的な配置を調べ、その配置間隔が、設定範囲内であるとき、その設定範囲内に存在するすべての物理アドレス領域を、先読み領域として判定する先読み領域判定手段と、  前記先読み領域判定手段が判定した先読み領域に従い、前記ディスクドライブにリードアクセスを行い、前記ディスクドライブから前記先読み領域に従う各領域のデータを一度に纏めて読み出すアクセス制御手段と、を具備することを特徴とする。
【００１１】
また本発明は、ディスクドライブより読み出したデータを一時保持するキャッシュを備えたデータ処理装置のデータ先読み方法において、  前記ディスクドライブへのリード要求時に、リード要求された複数の論理アドレスの連続性をもとに先読みを行うか否かを判定し、  先読みを行う判定をしたとき、  前記複数の論理アドレスを含むｎ個の連続する論理アドレスについて、前記物理的な配置を調べ、  調べた配置間隔が、設定範囲内であるとき、その設定範囲内に存在するすべての物理アドレス領域を、先読み領域として判定して、  判定した先読み領域に従い、前記ディスクドライブにリードアクセスを行い、前記ディスクドライブから前記先読み領域に従う各領域のデータを一度に纏めて読み出すことを特徴とする。
【００１３】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
【００１４】
まず、図１乃至図５を参照して、本発明の第１実施形態を説明する。
【００１５】
この第１実施形態に於いては、ホスト装置よりリード要求が発行された際に、先読みを行うか否かを判定し、先読みを行う際に、アドレス変換マップを参照して、先読みを行うアドレス領域全ての物理的配置を調べ、その配置の状態から、ディスクへのリード要求の回数を最小とするように、物理上の複数のアドレス領域を纏めてリードする、複数領域の一括先読み処理を実現している。
【００１６】
図１は、本発明の第１実施形態に係るデータ処理装置の要部の構成要素を示すブロック図であり、ホスト装置１０、ディスクコントローラ２０、ディスクドライブ３０等を具備する。
【００１７】
ディスクコントローラ２０は、ディスクアクセス制御部２１、アドレス変換マップ２２、キャッシュ（キャッシュメモリ）２３、先読み処理部２４等を具備する。
【００１８】
ディスクアクセス制御部２１は、ホスト装置１０から、リード要求、ライト要求等を受付けて、ディスクアクセスの制御や、キャッシュ２３の割り当て等の制御を行う。リード要求を受けた場合は、アドレス変換マップ２２を参照して、要求された論理アドレスに対応する物理アドレス（実際にデータが置かれた場所）を算出する。要求された領域のデータがキャッシュ２３上にあれば、そのヒットしたデータをホスト装置１０に返し、そうでなければ（ヒットしなければ）上記アドレス変換マップ２２上で求めた物理アドレスのデータをディスクドライブ３０からキャッシュ２３上に読み込む操作を行う。更に、リード要求を受けた場合は、先読み処理部２４を起動して、先読みをするか否かを判定させる。
【００１９】
アドレス変換マップ２２は、論理アドレスと物理アドレスとの対応をとるアドレス変換テーブルにより構成されるもので、リード／ライトアクセス時に於いて、ディスクアクセス制御部２１により参照され、論理アドレスに対する物理上（ディスク上）のアドレス配置が認識される。このアドレス変換マップ２２の具体的な構成例については図３を参照して後述する。
【００２０】
先読み処理部２４は、ホスト装置１０からのリード要求時に於いて、ディスクアクセス制御部２１により起動されて、先読みを行うか否かの判定、および実際の先読み処理を行う。先読みを行うか否かの判定には種々の方法があるが、ここでは、２回以上連続した領域（論理アドレス）にリードの要求があった（シーケンシャルリードであると認識した）際に、先読みを行うべきであると判定し、そうでなければ先読みを行わない。
【００２１】
先読みを行うべきと判定した場合は、連続するｎ個の論理アドレスについて、該当するデータをディスクドライブ３０から読んでキャッシュ２３上に乗せる操作を行う。この実施形態に於ける動作例では、上記ｎを「８」とした連続する８個の論理アドレス（図３のＬＡ「２」〜「９」参照）について、該当するデータをディスクドライブ３０から読んでキャッシュ２３上に記憶する。この際、先読みを行う８個の論理アドレスの全てについて、アドレス変換マップ２２を参照して、そのデータが置かれたディスク上の物理的配置を調べ（図４のハッチング参照）、その配置の状態から、ディスクドライブ３０へのリード要求の回数を最小とするように、物理上の複数のアドレス領域を纏めて（一括して）リードする（図５の→印参照）。
【００２２】
図２は、上記実施形態に於ける先読み処理の手順を示すフローチャートである。
【００２３】
図３は、アドレス変換マップ２２の構成を説明するための論理−物理アドレスの対応例を示す図であり、ＬＡはホスト装置１０からのリード命令に含まれる論理アドレス、ＰＡはディスク上の物理アドレスである。この例では、ホスト装置１０から論理アドレスが連続する２つの論理アドレス「０」、「１」のリード命令を受けると、それに続く論理アドレス「２」〜「９」を先読みの対象として、アドレス変換マップ２２を用い、その各物理上のアドレスを算出して、それら各アドレス配列から、物理的に隣り合うアドレスが存在するか、若しくは物理的に近い配置（例えばアドレス２個分以内）であるか等の一括リードを可能とする条件を調べ、その条件に含まれる全ての領域について、纏めてデータをリードする。
【００２４】
図４は、上記図３に示す論理−物理のアドレス対応に於ける、先読み対象のディスク上での物理的配置の状態を示す図であり、ここでは、上記図３に示した論理アドレス（ＬＡ）「２」〜「９」について、その各データ位置（物理的配置の状態を）をハッチングにより示している。
【００２５】
図５は、上記図３および図４のアドレス配置に対しての先読み命令発行箇所（図示→印）を示す図である。この例では、論理アドレス「５」、「７」、「２」、「８」に対応する物理アドレス「８」〜「１１」の各領域と、論理アドレス「３」、「４」、「９」に対応する物理アドレス「２０」〜「２３」の各領域について、それぞれ纏めて（一括して）データのリードを行っている。
【００２６】
ここで、上記各図を参照して本発明の第１実施形態に於ける動作を説明する。
【００２７】
この第１実施形態に於いては、先読みを行う論理上のアドレス領域に対応する物理上の複数のアドレス領域に対し、その物理上のアドレス配置の状態を調べて、ディスクドライブへのリード要求の回数を最小とするように、物理上の複数のアドレス領域を纏めてリードすることを特徴とする。
【００２８】
先読み処理部２４は、ホスト装置１０からのリード要求時に於いて、ディスクアクセス制御部２１により起動されて、先読みを行うか否かの判定、および実際の先読み処理を行う。ここでは、２回以上連続した領域（論理アドレス）にリードの要求があった（シーケンシャルリードであると認識した）際に、先読みを行うべきであると判定し、そうでなければ先読みを行わない（図２ステップＡ１１）。
【００２９】
その具体例として、ここでは、連続する論理アドレス「０」，「１」に対して、そのアドレス順にリードの要求があった際に、先読み処理部２４がシーケンシャルリードであると認識して、先読み処理を開始し、上記先読み判定の対象となった論理アドレス「０」，「１」に続く論理アドレス「２」〜「９」のデータに対して先読み処理を行うものとする。
【００３０】
先読み処理部２４は、先ず、先読み処理を行う対象となる領域すべてに対して、そのアドレス（論理アドレス「２」〜「９」）が物理的にディスク上の何処の場所（物理アドレス上）に配置されているかを、予めアドレス変換マップ２２を参照して調べる（図２ステップＡ１２）。
【００３１】
この際のアドレス変換マップ２２に於ける先読み処理の対象となる領域（論理アドレス「２」〜「９」）と、その物理アドレスとの対応例を図３に示し、その論理−物理のアドレス対応に於ける、先読み対象のディスク上での物理的配置の状態を図４にハッチングで示している。
【００３２】
この物理アドレス配置から、１個のリード命令で分散した領域をどのように読むかを判定する（図２ステップＡ１３〜Ａ１７）。ここでは、連続した領域にあるデータ、および物理アドレスが２（ｉ＝２）以上離れていない近くのデータに対して、それぞれ先読みを行うべきであると判定し、先読みを行う場合は、一つの命令で一括して行うこととする。
【００３３】
図４に示す例の場合、図５に→印で示すようなリード命令となる。即ち、論理アドレス「６」のデータは物理アドレス「５」に配置されていて、近く（物理アドレスで２以上離れていない範囲）に先読み対象となるデータがないので、物理アドレス「５」からサイズ１（１ブロックデータ）の先読み命令を発行する（図２ステップＡ１３，Ａ１４，Ａ１６）。
【００３４】
論理アドレス「５」、「７」、「２」、「８」のデータはそれぞれ物理アドレス「８」、「９」、「１０」、「１１」に配置されていて、これらのデータは物理的に連続しているので、物理アドレス「８」からサイズ４（４ブロックデータ）の先読み命令を発行する（図２ステップＡ１３〜Ａ１６）。
【００３５】
また、論理アドレス「３」、「４」、「９」のデータは、それぞれ物理アドレス「２０」、「２２」、「２３」に配置されている。ここで物理アドレス「２０」のデータは、物理アドレス「２２」、「２３」の近く（物理アドレスで２以上離れていない範囲）にあり、従って物理アドレス「２０」からサイズ４（４ブロックデータ）の先読み命令を発行する（図２ステップＡ１３〜Ａ１６）。この場合、物理アドレス「２１」に対応するデータに関する処理は無駄であるが、近くのデータはまとめて１命令で行った方が先読み命令を２回に分けて発行するよりも効率が良くなる。
【００３６】
このようにして、連続した領域に対する先読みのための命令の一括化を行うことにより、先読みのためのリード命令総数を削減でき、これによって先読み処理を効率良く行うことができる。
【００３７】
尚、上記した実施形態に於いて、ディスクドライブへのリード要求数を制限して、ディスクドライブより先読みするデータの量を動的に調整することにより、先読み要求の数が多くなりディスクドライブへの負荷がかかり過ぎる状態を回避できる。また、ディスクドライブへのリード命令をディスク上の物理的な配置の順に発行することにより、ディスクドライブ上のヘッドの移動量を減らしてシーク動作の迅速かつ円滑化が図れる。
【００３８】
次に、図６および図７を参照して本発明の第２実施形態を説明する。
【００３９】
この第２実施形態に於いては、ディスクドライブとキャッシュを備えたシステムに於いて、ディスクへの１回のリード要求の処理が終了するまでの間に、ホスト側から発行された複数のリード要求に対して、そのリード要求された複数の論理アドレスそれぞれの物理上のデータ配置（物理アドレス配置）を調べ、その配置の状態から、予め設定された許容範囲の中で、ディスクへのリード要求の回数を最小とするように、物理上の複数領域を纏めてリードする機能を実現している。
【００４０】
図６は、本発明の第２実施形態に於けるデータ処理装置の要部の構成要素を示すブロック図であり、ホスト装置１、ディスクコントローラ２、ディスクドライブ３等を具備する。
【００４１】
ディスクコントローラ２は、アクセス制御部２ａ、アドレス変換マップ２ｂ、バッファメモリ２ｃ、ディスクアクセス処理部２ｄ等を具備する。
【００４２】
アクセス制御部２ａは、ホスト装置１からリード要求、ライト要求等を受けて、ディスクアクセスの制御を行う。この際のリード要求に関しては、ディスクドライブ３への１回のリード要求処理が終了するまでの間にホスト装置１から発行されたリード要求の全てに対して、アドレス変換マップ２ｂを参照し、その各リード要求のアドレス（論理アドレス）を、実際にデータが置かれた場所を示す物理アドレスに変換して、その物理上（媒体上）のアドレス配置を調べ、物理的に隣り合う配置であるとき、若しくは物理的に近傍配置（例えばアドレス２個分以内）である際に、これら全てのアドレス領域にあるデータを、纏めて（一括して）リードする。
【００４３】
アドレス変換マップ２ｂは、上記した第１実施形態と同様に、論理アドレスと物理アドレスとの対応を示すテーブルを構成し、リード／ライトアクセス時に於いて、アクセス制御部２ａにより参照され、論理アドレスに対する物理上（媒体上）のアドレス配置が認識される。
【００４４】
図７は、本発明の第２実施形態に於ける一括リード処理の手順を示すフローチャートである。
【００４５】
ここで、上記図６および図７を参照して本発明の第２実施形態に於ける動作を説明する。
【００４６】
ディスクコントローラ２のアクセス制御部２ａは、ディスクドライブ３に設けられたディスクへの１回のリード要求処理が終了するまでの間にホスト装置１から発行されたリード要求をスタックし、そのリード要求の全てに対して、アドレス変換マップ２ｂを参照して、その各リード要求のアドレス（論理アドレス）を、実際にデータが置かれた場所を示す物理アドレスに変換し、その物理上（媒体上）のアドレス配置を調べる（図７ステップＢ１１，Ｂ１２）。ここで、物理的に隣り合う配置であるとき、若しくは物理的に近傍配置（例えばアドレス２個分以内）である際に、これら全てのアドレス領域にあるデータを、纏めて（一括して）リードする（図７ステップＢ１３，Ｂ１４，Ｂ１５）。この際の一括リード処理については、上記した第１実施形態に於いて、図３乃至図５を参照して説明した動作とほぼ同様であり、その第１実施形態の動作説明から容易に理解できることから、ここではその詳細な動作の説明を省略する。
【００４７】
このようにして、連続した領域に対するリード命令の一括化を行うことにより、ディスクに対するリード命令総数を削減でき、これによってディスクアクセス処理を効率良く行うことができる。
【００４８】
【発明の効果】
以上詳記したように本発明によれば、連続した領域に対する先読みのための命令の一括化を行うことにより、先読みのためのリード命令総数を削減でき、これによって先読み処理を効率良く行うことができる。
【００４９】
また、連続した領域に対するリード命令の一括化を行うことにより、ディスクに対するリード命令総数を削減でき、これによってディスクアクセス処理を効率良く行うことができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に於けるデータ処理装置の構成を示すブロック図。
【図２】上記第１実施形態に於ける先読み処理の手順を示すフローチャート。
【図３】上記第１実施形態に於けるアドレス変換マップのアドレス対応例を示す図。
【図４】上記第１実施形態に於ける先読み対象となる物理的な配置状態を示す図。
【図５】上記第１実施形態に於ける先読み命令発行箇所を示す図。
【図６】本発明の第２実施形態に於けるデータ処理装置の構成を示すブロック図。
【図７】本発明の第２実施形態に於ける一括リード処理の手順を示すフローチャート。
【符号の説明】
１…ホスト装置
２…ディスクコントローラ
２ａ…アクセス制御部
２ｂ…アドレス変換マップ
２ｃ…キャッシュ（キャッシュメモリ）
２ｄ…アドレス変換マップ
３…ディスクドライブ
１０…ホスト装置
２０…ディスクコントローラ
２１…アクセス制御部
２２…アドレス変換マップ
２３…キャッシュ（キャッシュメモリ）
２４…先読み処理部
３０…ディスクドライブ
【図１】
0004197587.tif 000002
【図２】
0004197587.tif 000003
【図３】
0004197587.tif 000004
【図４】
0004197587.tif 000005
【図５】
0004197587.tif 000006
【図６】
0004197587.tif 000007
【図７】
0004197587.tif 000008