(57)【特許請求の範囲】
【請求項１】
情報機器から入力されるリード要求に含まれた読出開始アドレスとブロック数とに基づいて当該読出開始アドレスに対応する記憶媒体の記憶番地から前記ブロック数分のリードデータを読み出すとともに、当該リードデータに関連するリードデータを前記記憶媒体から読み出す読出手段と、前記読み出されたリードデータを一時記憶するキャッシュメモリと、前記一時記憶されたリードデータを前記リード要求に応じて情報機器に転送する転送手段と、を備えたメモリ制御装置において、
前記入力された読出開始アドレスとブロック数とに基づいて読出終了アドレスを算出する読出終了アドレス算出手段と、
前記算出された読出終了アドレスを記憶するアドレス値記憶手段と、
前記入力されたブロック数が所定の回数連続して同値となった場合、当該ブロック数をブロック数記憶手段に記憶させるブロック数記憶制御手段と、
前記アドレス値記憶手段に記憶された前回入力分のリード要求に係る読出終了アドレスと今回入力分のリード要求に含まれた読出開始アドレスとに基づいて、両アドレス間に位置する間隙読出範囲を特定し、当該間隙読出範囲に含まれたブロック数を算出する間隙ブロック数算出手段と、
前記間隙ブロック数算出手段により算出されたブロック数と前記ブロック数記憶手段に記憶されたブロック数とを比較し、両ブロック数が同値となった場合に、前記今回入力分のリード要求に係るリードデータの読み出しに先行して、前記間隙読出範囲に対応する記憶番地からリードデータの読み出しを開始させる読出制御手段と、
を備えたことを特徴とするメモリ制御装置。
【請求項２】
前記間隙ブロック数算出手段は、前記アドレス値記憶手段に記憶された前回入力分のリード要求に係る読出終了アドレスと、前記今回入力分のリード要求に含まれた読出開始アドレスと、の差を算出することを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
情報機器から入力されるリード要求に含まれた読出開始アドレスとブロック数とに基づいて当該読出開始アドレスに対応する記憶媒体の記憶番地から前記ブロック数分のリードデータを読み出すとともに、当該リードデータに関連するリードデータを前記記憶媒体から読み出す読出手段と、前記読み出されたリードデータを一時記憶するキャッシュメモリと、前記一時記憶されたリードデータを前記リード要求に応じて情報機器に転送する転送手段と、を備えたメモリ制御装置のメモリ制御方法であって、
前記入力された読出開始アドレスとブロック数とに基づいて読出終了アドレスを算出する読出終了アドレス算出工程と、
前記算出された読出終了アドレスを記憶するアドレス値記憶工程と、
前記入力されたブロック数が所定の回数連続して同値となった場合、当該ブロック数をブロック数記憶手段に記憶させるブロック数記憶制御工程と、
前記アドレス値記憶工程で記憶された前回入力分のリード要求に係る読出終了アドレスと今回入力分のリード要求に含まれた読出開始アドレスとに基づいて、両アドレス間に位置する間隙読出範囲を特定し、当該間隙読出範囲に含まれたブロック数を算出する間隙ブロック数算出工程と、
前記間隙ブロック数算出工程で算出されたブロック数と前記ブロック数記憶制御工程で記憶されたブロック数とを比較し、両ブロック数が同値となった場合に、前記今回入力分のリード要求に係るリードデータの読み出しに先行して、前記間隙読出範囲に対応する記憶番地からリードデータの読み出しを開始させる読出制御工程と、
を含むことを特徴とするメモリ制御方法。
【請求項４】
前記間隙ブロック数算出工程は、前記アドレス値記憶手段に記憶された前回入力分のリード要求に係る読出終了アドレスと、前記今回入力分のリード要求に含まれた読出開始アドレスと、の差を算出することを特徴とする請求項３に記載のメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報機器と記憶媒体との間で転送されるデータをキャッシュメモリに一時記憶するメモリ制御装置及びメモリ制御方法に関し、特に、情報機器からのリード要求に応じて記憶媒体から読み出したリードデータをキャッシュメモリに一時記憶するメモリ制御装置及びメモリ制御方法に関する。
【背景技術】
【０００２】
従来、パーソナルコンピュータ等の情報機器（以下、ＰＣという）に接続される情報記憶再生装置（例えば、光磁気（ＭＯ）ディスク装置等）は、文書データや画像データ等の種々のデータ（以下、ファイルという）を記憶媒体（例えば、光磁気（ＭＯ）ディスク等）に記憶するのに使用されている。このような情報記憶再生装置では、ＰＣから指示されるファイルのリード動作の実行動作を高速化するために情報記憶再生装置内にキャッシュメモリを設け、ＰＣから入力されるリード要求に応じて記憶媒体から読み出したデータ（以下、リードデータという）をキャッシュメモリに一時記憶した後、このリードデータをＰＣに転送する構成が一般的に用いられている。ここで、入力されるリード要求には、少なくとも記憶媒体内の読み出し開始位置を指示する読出開始アドレスと、当該読出開始アドレスから読み出しを行うブロック数とが含まれており、ＰＣは、読出開始アドレスに対応する記憶媒体のＬＢＡ（論理ブロックアドレス：Logical Block Address）からブロック数分のリードデータを読み出すようになっている。なお、ＬＢＡは記憶媒体内における記憶番地（セクタ）を指示するための情報である。
【０００３】
上記キャッシュメモリを用いたメモリ制御技術として、例えば、コンピュータ（ＰＣ）のアクセス方法の種類によってバッファメモリ（キャッシュメモリ）の構成を変更することにより、データのリード／ライトを最適に行う技術が提案されている（例えば、特許文献１参照）。
以下、上記キャッシュメモリを用いたメモリ制御方法を説明する。
【０００４】
図５は、記憶媒体に記憶されたファイルＡ、Ｂ及びＣの状態を示した図である。ここで、ファイルＡは、記憶媒体内のＬＢＡ（論理ブロックアドレス：Logical Block Address）１０００〜１１５０に記憶されており、ＬＢＡ１０００〜１１２７のうち３２ブロック置きに分割された４つのデータセグメントと、ＬＢＡ１１２８〜１１５０の２３ブロックからなるデータセグメントと、の計５つのデータセグメントに分割されたデータ（以下、リードデータという）［０］〜［４］から構成されている。ファイルＢは、記憶媒体のＬＢＡ２０００〜２１５０に記憶されており、ＬＢＡ２０００〜２１２７のうち３２ブロック置きに分割された４つのデータセグメントと、ＬＢＡ２１２８〜２１５０の２３ブロックからなるデータセグメントと、の計５つのデータセグメントに分割されたリードデータ［５］〜［９］から構成されている。また、ファイルＣは、記憶媒体のＬＢＡ３０００〜３１５０に記憶されており、ＬＢＡ３０００〜３１２７のうち３２ブロック置きに分割された４つのデータセグメントと、ＬＢＡ３１２８〜３１５０の２３ブロックからなるデータセグメントと、の計５つのデータセグメントに分割されたリードデータ［１０］〜［１４］から構成されている。
【０００５】
図５で示した記憶状態において、ＰＣからファイルＡ、Ｂ及びＣの読み出しを指示するリード要求が出力されると、各リード要求は、図６（ａ）に示すようにファイル単位で各ファイルを構成する先頭のライトデータから順次出力されることになる。ここで、情報記憶再生装置では最初のリード要求（ＦｉｌｅＡ：［０］）が入力されると、図６（ｂ）に示すように、このリード要求（ＦｉｌｅＡ：［０］）に係るリードデータ（ＲＤ）［０］が記憶媒体から読み出されキャッシュメモリに一時記憶されてＰＣに転送されるとともに、当該リードデータ［０］に関連するリードデータがキャッシュメモリの空き容量に応じた数だけ先行して読み出されて（先読み）、キャッシュメモリ一時記憶される。なお、図６（ｂ）では、リードデータ［１］〜［１０］が記憶媒体から先読みされた状態を示している。この結果、ＰＣからリード要求（ＦｉｌｅＡ：［１］〜［４］、ＦｉｌｅＢ：［５］〜［９］、ＦｉｌｅＣ：［１０］）が入力された場合には、キャッシュメモリに記憶されたリードデータ［１］〜［１０］がＰＣに転送されることになる。
【０００６】
続く、リード要求（ＦｉｌｅＣ：［１１］）が入力された場合には、上記した動作と同様、図６（ｃ）に示すように、このリード要求（ＦｉｌｅＣ：［１１］）に係るリードデータ［１１］が記憶媒体から読み出されキャッシュメモリに一時記憶されてＰＣに転送されるとともに、当該リードデータ［１１］に連続するリードデータがキャッシュメモリの空き容量に応じた数だけ先読みされ、キャッシュメモリ一時記憶される。なお、図６（ｃ）では、リードデータ［１２］〜［１４］が記憶媒体から先読みされた状態を示している。この結果、ＰＣからリード要求（ＦｉｌｅＣ：［１２］〜［１４］）が入力された場合には、キャッシュメモリに記憶されたリードデータ［１２］〜［１４］がＰＣに転送されることになる。このようなリードデータの先読み処理により、リード動作の実行時間の高速化が図られている。
【特許文献１】特開２０００−９９３９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＰＣに導入された基本ソフト（ＯＳ：Operating System）等の仕様によっては、ファイルのリード要求が、当該ファイルを構成する先頭のライトデータから順次出力されない場合がある（以下、不整合要求方式という）。この不整合要求方式の場合、上述した従来技術では、リードデータの先読み処理を有効に活用することができず、ファイルのリード動作の実行時間が増大するという問題がある。
【０００８】
以下、ＰＣから入力される特定ファイルのリード要求が、不整合要求方式で出力された場合のリード動作について説明する。
図５で示した記憶状態において、ＰＣが備えるＯＳの仕様によっては、図７（ａ）に例示したように、ファイルＡ、Ｂ及びＣの読み出しのを指示する一連のリード要求のうち、連続する２つのリード要求の出力順序が部分的に反転した順序不整合の状態で出力される場合がある（図中、波線により囲まれたリード要求を参照）。
【０００９】
この場合、情報記憶再生装置では最初のリード要求（ＦｉｌｅＡ：［０］）が入力されると、図７（ｂ）に示したように、上記したリード動作と同様このリード要求に係るリードデータ［０］が記憶媒体から読み出されキャッシュメモリに一時記憶されてＰＣに転送されるとともに、当該リードデータ［０］に連続するリードデータがキャッシュメモリの空き容量に応じた数だけ先行して読み出され（先読み）、キャッシュメモリ一時記憶される。なお、図７（ｂ）では、リードデータ［１］〜［１０］が記憶媒体から先読みされた状態を示している。この結果、ＰＣからリード要求（ＦｉｌｅＡ：［１］〜［４］、ＦｉｌｅＢ：［５］〜［９］、ＦｉｌｅＣ：［１０］）が入力された場合には、キャッシュメモリに記憶されたリードデータ［１］〜［１０］がＰＣに転送されることになる。
【００１０】
続いて、一連のリード要求のうち不整合部分にあたるリード要求（ＦｉｌｅＣ：［１２］）が入力されると、図７（ｃ）に示すように、このリード要求（ＦｉｌｅＣ：［１２］）に係るリードデータ［１２］が記憶媒体から読み出されキャッシュメモリに一時記憶されてＰＣに転送されるとともに、当該リードデータ［１２］に連続するリードデータがキャッシュメモリの空き容量に応じた数だけ先読みされ、キャッシュメモリ一時記憶される。なお、図７（ｃ）では、リードデータ［１３］、［１４］が記憶媒体から先読みされた状態を示している。
【００１１】
ここで、次のリード要求（ＦｉｌｅＣ：［１１］）が入力されると、このリード要求（ＦｉｌｅＣ：［１１］）に対応するリードデータ［１１］の読み出しはまだ行われていないため、キャッシュメモリに一時記憶されておらず、そのため、図７（ｄ）に示すように、このリード要求（ＦｉｌｅＣ：［１１］）に係るリードデータ［１１］が記憶媒体から読み出されキャッシュメモリに一時記憶されてＰＣに転送されるとともに、当該リードデータ［１１］に連続するリードデータがキャッシュメモリの空き容量に応じた数だけ先読みされ、キャッシュメモリ一時記憶される。なお、図７（ｃ）では、リードデータ［１２］〜［１４］が記憶媒体から先読みされた状態を示している。
【００１２】
このように、記憶媒体からのリードデータの読み出しが、一連のリード要求における順序不整合部分で行われるような場合、同一のリードデータを二重に読み出することになるため、ファイルのリード動作の実行時間が増大するという問題がある。
また、特許文献１の技術では、ＰＣのアクセス方法の種類に応じてバッファメモリの構成を変更するとあるが、具体的な変更方法は何ら記載されておらず、上記した課題を解決することはできない。
【００１３】
本発明の課題は、記憶媒体からのリードデータの読み出しが、一連のリード要求における順序不整合部分で行われるような場合であっても、リードデータの読み出しを効率よく動作させることが可能なメモリ制御装置及びメモリ制御方法を提供することである。
【課題を解決するための手段】
【００１４】
上記課題を解決するため、請求項１に記載の発明は、
情報機器から入力されるリード要求に含まれた読出開始アドレスとブロック数とに基づいて当該読出開始アドレスに対応する記憶媒体の記憶番地から前記ブロック数分のリードデータを読み出すとともに、当該リードデータに関連するリードデータを前記記憶媒体から読み出す読出手段と、前記読み出されたリードデータを一時記憶するキャッシュメモリと、前記一時記憶されたリードデータを前記リード要求に応じて情報機器に転送する転送手段と、を備えたメモリ制御装置において、
前記入力された読出開始アドレスとブロック数とに基づいて読出終了アドレスを算出する読出終了アドレス算出手段と、
前記算出された読出終了アドレスを記憶するアドレス値記憶手段と、
前記入力されたブロック数が所定の回数連続して同値となった場合、当該ブロック数をブロック数記憶手段に記憶させるブロック数記憶制御手段と、
前記アドレス値記憶手段に記憶された前回入力分のリード要求に係る読出終了アドレスと今回入力分のリード要求に含まれた読出開始アドレスとに基づいて、両アドレス間に位置する間隙読出範囲を特定し、当該間隙読出範囲に含まれたブロック数を算出する間隙ブロック数算出手段と、
前記間隙ブロック数算出手段により算出されたブロック数と前記ブロック数記憶手段に記憶されたブロック数とを比較し、両ブロック数が同値となった場合に、前記今回入力分のリード要求に係るリードデータの読み出しに先行して、前記間隙読出範囲に対応する記憶番地からリードデータの読み出しを開始させる読出制御手段と、
を備えたことを特徴としている。
【００１５】
更に、請求項２に記載の発明は、請求項１に記載の発明において、
前記間隙ブロック数算出手段は、前記アドレス値記憶手段に記憶された前回入力分のリード要求に係る読出終了アドレスと、前記今回入力分のリード要求に含まれた読出開始アドレスと、の差を算出することを特徴としている。
【００１６】
また、上記課題を解決するために、請求項３に記載の発明は、
情報機器から入力されるリード要求に含まれた読出開始アドレスとブロック数とに基づいて当該読出開始アドレスに対応する記憶媒体の記憶番地から前記ブロック数分のリードデータを読み出すとともに、当該リードデータに関連するリードデータを前記記憶媒体から読み出す読出手段と、前記読み出されたリードデータを一時記憶するキャッシュメモリと、前記一時記憶されたリードデータを前記リード要求に応じて情報機器に転送する転送手段と、を備えたメモリ制御装置のメモリ制御方法であって、
前記入力された読出開始アドレスとブロック数とに基づいて読出終了アドレスを算出する読出終了アドレス算出工程と、
前記算出された読出終了アドレスを記憶するアドレス値記憶工程と、
前記入力されたブロック数が所定の回数連続して同値となった場合、当該ブロック数をブロック数記憶手段に記憶させるブロック数記憶制御工程と、
前記アドレス値記憶工程で記憶された前回入力分のリード要求に係る読出終了アドレスと今回入力分のリード要求に含まれた読出開始アドレスとに基づいて、両アドレス間に位置する間隙読出範囲を特定し、当該間隙読出範囲に含まれたブロック数を算出する間隙ブロック数算出工程と、
前記間隙ブロック数算出工程で算出されたブロック数と前記ブロック数記憶制御工程で記憶されたブロック数とを比較し、両ブロック数が同値となった場合に、前記今回入力分のリード要求に係るリードデータの読み出しに先行して、前記間隙読出範囲に対応する記憶番地からリードデータの読み出しを開始させる読出制御工程と、
を含むことを特徴としている。
【００１７】
更に、請求項４に記載の発明は、請求項３に記載の発明において、
前記間隙ブロック数算出工程は、前記アドレス値記憶手段に記憶された前回入力分のリード要求に係る読出終了アドレスと、前記今回入力分のリード要求に含まれた読出開始アドレスと、の差を算出することを特徴としている。
【発明の効果】
【００１８】
請求項１、３に記載の発明によれば、リード要求されたリードデータの順序に不整合が存在する場合であっても、当該不整合部分に対応する間隙読出範囲のリードデータを記憶媒体から読み出し、キャッシュメモリに一時記憶させることが可能であるため、リードデータの読み出しを効率よく動作させることができる。これにより、同一のリードデータが記憶媒体から二重に読み出されることを抑制することが可能であるため、リード動作にかかる実行時間を短縮することができる。
【００１９】
請求項２、４に記載の発明によれば、アドレス値記憶手段に記憶された前回分のリード要求に係る読出終了アドレスと、今回分のリード要求に含まれた読出開始アドレスと、の差を算出するため、間隙読出範囲に含まれるブロック数を算出することができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。ただし、発明の範囲は図示例に限定されないものとする。
【００２１】
図１は、ＰＣ１０と、本発明に係るメモリ制御装置を備えた情報記憶再生装置１０との関係を模式的に示した図である。
図１に示すとおり、ＰＣ１０と情報記憶再生装置２０とは、ケーブルＣを介して接続されており、相互に種々の情報（データ）の授受が可能に構成されている。
【００２２】
ＰＣ１０は、サーバ機器やパーソナルコンピュータ等の情報機器であって、後述する記憶部１２に記憶された文書データや画像データ等の種々のデータ（以下、ファイルという）の記憶媒体Ｍへの記憶を指示するライト要求を情報記憶再生装置２０に出力することで、記憶媒体Ｍにファイルの複製を記憶させる。また、ＰＣ１０は、記憶媒体Ｍに記憶されたファイルの読み出しを指示するリード要求を情報記憶再生装置１０に出力することで、記憶媒体Ｍからファイルの読み出しを行う。
【００２３】
情報記憶再生装置２０は、例えば、ＭＯドライブ、ＣＤ−Ｒ（ＲＷ）ドライブ、ＤＶＤ±Ｒ（ＲＷ）ドライブ、ＤＶＤ−ＲＡＭドライブ、ハードディスクドライブ等であって、ＰＣ１０から入力されるリード要求に応じて記憶媒体Ｍに記憶されたファイル（リードデータ）を読み出し、ＰＣ１０に転送する。また、ＰＣ１０から入力されるライト要求に応じて記憶媒体Ｍ（例えば、ＭＯディスク）にファイルを記憶する。なお、記憶媒体Ｍは、図示したように情報記憶再生装置２０に着脱可能な態様としてもよいし、情報記憶再生装置２０内に固定的に備えた態様としてもよい。
【００２４】
図２は、ＰＣ１０及び情報記憶再生装置２０の内部構成を示した図である。
ＰＣ１０は、図２に示すとおり、制御部１１、記憶部１２、Ｉ／Ｆ（インターフェース）１３等を備えて構成される。
【００２５】
制御部１１は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等により構成され、ＲＯＭ又は記憶部１２に記憶された基本ソフト（ＯＳ）や各種プログラムを読み出して実行することにより、ＰＣ１０全体を統括的に制御する。
【００２６】
制御部１１は、記憶媒体Ｍに記憶されたファイル（リードデータ）の読み出しを指示するリード要求をＩ／Ｆ１３を介して情報記憶再生装置２０に出力する。ここで、出力されるリード要求には、少なくとも記憶媒体内の読み出し開始位置を指示する読出開始アドレス（ＬＢＡ）と、当該読出開始アドレスから読み出しを行うブロック数とが含まれているものとする。なお、本実施の形態におけるＰＣ１０の基本ソフトは、制御部１１との協働により、特定のファイルに係る一連のリード要求の出力において、このファイルを構成する先頭のライトデータから順次出力されるリード要求のうち、連続する２つのリード要求の出力順序が部分的に反転した不整合の状態で出力される不整合要求方式で実行されるものとする。
また、制御部１１は、情報記憶再生装置２０により読み出されたファイルを記憶部１２に記憶させる。
【００２７】
制御部１１は、記憶部１２に記憶されたファイルの複製を記憶媒体Ｍに記憶させるライト要求をＩ／Ｆ１３を介して情報記憶再生装置２０に出力する。ここで、記憶対象となるファイルは、制御部１１の制御の下、所定サイズ毎のデータに分割され、夫々ライトデータとして、当該ライトデータの記憶開始位置を指示する記憶開始アドレス（ＬＢＡ）とともにライト要求として情報記憶再生装置２０に出力される。
【００２８】
記憶部１２は、磁気的、光学的記憶媒体、半導体等の不揮発性メモリ等から構成されており、ＰＣ１０に対応するＯＳ、各種プログラム、これらのプログラムで処理されたデータ等を予め記憶する。これらの各処理プログラムは、読み取り可能なプログラムコードの形態で格納され、制御部１１は、当該プログラムコードに従った動作を逐次実行する。
【００２９】
記憶部１２は、制御部１１からの指示に応じ情報記憶再生装置２０から転送されるファイルを記憶する。また、記憶部１２は、制御部１１からの指示に応じて当該記憶部１２に記憶されたファイルを読み出し、制御部１１に出力する。
【００３０】
Ｉ／Ｆ１３は、ＵＳＢ（Universal Serial Bus）、ＩＥＥＥ１３９４（Institute of Electrical and Electronic Engineers 1394）、ＳＣＳＩ（Small Computer System Interface）、ＡＴＡＰＩ（AT Attachment Packet Interface）等の規格に準拠したインターフェースであって、情報記憶再生装置２０との間でデータ転送を行うための制御を行う。
【００３１】
情報記憶再生装置２０は、図２に示すとおり、制御部２１、キャッシュメモリ２２、Ｉ／Ｆ２３、記憶再生部２４等を備えて構成される。
【００３２】
制御部２１は、ＣＰＵ、ＲＯＭ、ＲＡＭ（何れも不図示）等により構成され、ＲＯＭに格納されている各種設定値やシステムプログラムを読み出して実行することにより、情報記憶再生装置２０全体を統括的に制御する。
【００３３】
制御部２１は、ＰＣ１０からＩ／Ｆ２３を介して入力されるリード要求を受信すると、このリード要求に含まれた読出開始アドレス及びブロック数とに基づいて、この読出開始アドレスに対応する記憶媒体ＭのＬＢＡからブロック数分のリードデータを読み出すとともに、このリードデータに関連するリードデータを記憶媒体Ｍから読み出し（先読み）、キャッシュメモリ２２に一時記憶させる。そして、この一時記憶されたリードデータをリード要求に応じてＰＣ１０に転送する。なお、制御部２１は、リードデータの先読みを、キャッシュメモリ２２の空き容量に応じた数だけ行うものとする。
【００３４】
また、図２に示すとおり、制御部２１は、読出終了アドレス算出部２１１、アドレス値記憶部２１２、ブロック数記憶制御部２１３、ブロック数記憶部２１４、間隙ブロック数算出部２１５、読出制御部２１６を有している。
【００３５】
読出終了アドレス算出部２１１は、リード要求に含まれた読出開始アドレスと、ブロック数とに基づいて読出終了アドレス（ＬＢＡ）の値を算出し、この算出された読出終了アドレスをアドレス値記憶部２１２に記憶させる。ここで、読出開始アドレスは、記憶媒体Ｍに記憶された各リードデータのＬＢＡのうち、先頭のアドレスを意味しており、読出終了アドレスは記憶媒体Ｍに記憶された各リードデータのＬＢＡのうち、末尾のアドレスを意味している。また、ブロック数とは、各リードデータの記憶範囲を示す数値であって、１ブロックがＬＢＡの１アドレス分に対応している。即ち、読出終了アドレス算出部２１１は、読出開始アドレスにブロック数を加算することで、当該読出開始アドレスに対応する読出終了アドレスを導出するようになっている。
【００３６】
アドレス値記憶部２１２は、レジスタや半導体等の揮発性メモリ等から構成される記憶媒体であって、制御部２１（読出終了アドレス算出部２１１）の制御の下、読出終了アドレス算出部２１１で算出された読出終了アドレスを記憶する。なお、アドレス値記憶部２１２として、不図示のＲＡＭやキャッシュメモリ２２の一部の記憶領域を用いることとしてもよい。
【００３７】
ブロック数記憶制御部２１３は、ＰＣ１０から入力される一連のリード要求に含まれるブロック数が所定の回数連続して同値となった場合、当該ブロック数をブロック数記憶部２１４に記憶させる。ここで、ブロック数が所定回数連続して同値となったか否かの判定は、例えば、入力されたブロック数をアドレス値記憶部２１２等に所定回数分記憶し、当該記憶された複数のブロック数に基づいて判定するものとする。なお、同値判断の指標とする連続回数は、特に問わず、任意に設定可能であるものとする。
【００３８】
ブロック数記憶部２１４は、レジスタや半導体等の揮発性メモリ等から構成される記憶媒体であって、制御部２１（ブロック数記憶制御部２１３）の制御の下、所定の回数連続して同値となったブロック数を記憶する。なお、アドレス値記憶部２１２とブロック数記憶部２１４とを同一の記憶媒体としてもよく、また、ブロック数記憶部２１４として、不図示のＲＡＭ又はキャッシュメモリ２２の一部の記憶領域を用いることとしてもよい。
【００３９】
間隙ブロック数算出部２１５は、アドレス値記憶部２１２に記憶された前回入力分のリード要求に係る読出終了アドレスと、今回入力分のリード要求に含まれた読出開始アドレスとに基づいて、両アドレス間に位置する間隙読出範囲を特定するとともに、両アドレス値の差を算出し、当該差分値に基づいて間隙読出範囲に含まれたブロック数を導出する。
【００４０】
読出制御部２１６は、間隙ブロック数算出部２１５により算出された間隙ブロック数と、ブロック数記憶部２１４に記憶されたブロック数とを比較し、両ブロック数が同値となった場合に、今回入力されたリード要求に先行して、間隙読出範囲に対応するＬＢＡに記憶されたリードデータから読み出しを開始させる。
【００４１】
なお、上記した読出終了アドレス算出部２１１、ブロック数記憶制御部２１３、間隙ブロック数算出部２１５、読出制御部２１６は、制御部１１とＲＯＭに記憶されたシステムプログラムとの協働によるソフトウェア処理により実現される態様としてもよいし、ハードウェア処理により実現される態様としてもよく、ソフトウェア処理とハードウェア処理との組合せにより実現される態様としてもよい。
【００４２】
キャッシュメモリ２２は、ＳＲＡＭ（Static RAM）やＤＲＡＭ（Dynamic RAM）等の揮発性メモリ等から構成され、制御部２１の制御の下、ＰＣ１０から入力されるライトデータを記憶領域に順次一時記憶する。また、キャッシュメモリ２２は、制御部２１の制御の下、記憶媒体Ｍから読み出されたリードデータを記憶領域に順次一時記憶する。つまり、記憶媒体Ｍに入出力されるデータ（ライトデータ、リードデータ）は、全てキャッシュメモリ２２を経由するようになっている。なお、キャッシュメモリ２２の記憶容量は特に問わないものとするが、より大容量を有するキャッシュメモリ２２を用いる際には、キャッシュメモリ２２の記憶領域を構成する各メモリセグメントのサイズ（以下、セグメントサイズという）を変更することが好ましい。
【００４３】
Ｉ／Ｆ２３は、Ｉ／Ｆ１３と同様ＵＳＢ、ＩＥＥＥ１３９４、ＳＣＳＩ、ＡＴＡＰＩ等の規格に準拠したインターフェースであって、ＰＣ１０との間でデータ転送を行うための制御を行う。なお、Ｉ／Ｆ１３とＩ／Ｆ２３とは共に共通する規格に準拠したインターフェースであるものとする。
【００４４】
記憶再生部２４は、記憶媒体Ｍの記憶再生方式に応じた種々の機能部（例えば、レーザダイオード、磁気ヘッド等）を有しており、制御部２１の制御の下、制御部２１からの指示に応じて記憶媒体Ｍからファイル（リードデータ）の読み出し（再生）を行う。また、記憶再生部２４は、制御部２１の制御の下、キャッシュメモリ２２に一時記憶されたライトデータを記憶媒体Ｍに記憶する。
【００４５】
次に、図３及び図４を参照して、情報記憶再生装置２０の動作について説明する。
図３は、記憶媒体Ｍに記憶されたリードデータの読み出しに係る読出処理の手順を示したフローチャートである。なお、本処理はリード要求の入力毎に実行されるものとし、ステップＳ１１〜ステップＳ２１の各処理は、情報記憶再生装置２０の制御部２１（読出終了アドレス算出部２１１、ブロック数記憶制御部２１３、間隙ブロック数算出部２１５、読出制御部２１６）により実行されるものとする。
【００４６】
まず、読出処理の初期動作として、ＰＣ２０からのリード要求の入力が待機される（ステップＳ１１；Ｎｏ）。ここで、リード要求の入力が検知されると（ステップＳ１１；Ｙｅｓ）、この入力されたリード要求に含まれる読出開始アドレスとブロック数とに基づいて読出終了アドレスが算出され（ステップＳ１２）、この読出終了アドレスの値がアドレス値記憶部２１２に記憶される（ステップＳ１３）。
【００４７】
次いで、今回入力分のリード要求に含まれるブロック数及び過去に入力された複数のリード要求に含まれた複数のブロック数とに基づいて、ブロック数が所定の回数連続して同値となっているか否かが判定され、所定の回数連続して同じブロック数であったと判定された場合には（ステップＳ１４；Ｙｅｓ）、このブロック数がブロック数記憶部２１４に記憶され（ステップＳ１５）、ステップＳ１６に移行する。一方、ステップＳ１４において、所定の回数連続して同じブロック数となっていないと判定された場合には（ステップＳ１４；Ｎｏ）、ステップＳ１６に直ちに移行する。
【００４８】
ステップＳ１６では、ステップＳ１１で入力されたリード要求に対応するリードデータがキャッシュメモリ２２に一時記憶されているか否かが判定される。ここで、リード要求に対応するリードデータがキャッシュメモリ２２に一時記憶されていると判定された場合には（ステップＳ１６；Ｙｅｓ）、直ちにステップＳ２１へと移行する。
【００４９】
一方、ステップＳ１６において、リード要求に対応するリードデータがキャッシュメモリ２２に一時記憶されていないと判定された場合には（ステップＳ１６；Ｎｏ）、アドレス値記憶部２１２に記憶された前回入力分のリード要求に係る読出最終アドレスと、今回入力分のリード要求に含まれた読出開始アドレスとに基づいて両アドレス間に位置する間隙読出範囲の特定と、当該間隙読出範囲に含まれたブロック数が算出された後（ステップＳ１７）、この算出されたブロック数とステップＳ１５でブロック数記憶部２１４に記憶されたブロック数とが比較される（ステップＳ１８）。
【００５０】
ここで、両ブロック数が同値と判定された場合には（ステップＳ１８；Ｙｅｓ）、ステップＳ１７で特定された間隙読出範囲に対応する記憶媒体ＭのＬＢＡに記憶されたリードデータが読み出され、キャッシュメモリ２２に一時記憶された後（ステップＳ１９）、ステップＳ２０へと移行する。一方、ステップＳ１８において、両ブロック数が異なると判定された場合には（ステップＳ１８；Ｎｏ）、ステップＳ２０に直ちに移行する。
【００５１】
ステップＳ２０では、ステップＳ１１で入力されたリード要求に対応するリードデータが当該リード要求に基づいて記憶媒体Ｍから読み出されるとともに、このリードデータに関連するリードデータが先読みされ、キャッシュメモリ２２に一時記憶される（ステップＳ２０）。
【００５２】
続くステップＳ２１では、リード要求に対応するリードデータが、キャッシュメモリ２２から読み出された後ＰＣ１０に転送されて（ステップＳ２１）、本処理は終了する。
【００５３】
以下、図４を参照して、上述した読出処理の動作の概要を説明する。
なお、情報記憶再生装置２０に内蔵された記憶媒体Ｍは、前述した図５と同様の状態でファイルＡ、Ｂ及びＣを記憶しているものとする。また、情報記憶再生装置２０の初期条件として、ブロック数記憶部２１４は、ブロック数が記憶されていない状態であるとする。
【００５４】
ＰＣ１０から記憶媒体Ｍに記憶されたファイルＡ、Ｂ及びＣの読み出しを指示するリード要求の出力がなされ、このファイルＡ、Ｂ及びＣに係る一連のリード要求が図４（ａ）の順序で情報記憶再生装置２０に入力されると、情報記憶再生装置２０では、図４（ｂ）に示すように、入力された最初のリード要求（ＦｉｌｅＡ：［０］）に含まれた読出開始アドレス（ＬＢＡ：１０００）及びブロック数（３２ブロック）に基づいて、このＬＢＡ：１０００から３２ブロック分のリードデータ［０］が読み出され、キャッシュメモリ２２に一時記憶された後、ＰＣ１０へと転送される。また、このリード要求（ＦｉｌｅＡ：［０］）の読出開始アドレス（ＬＢＡ：１０００）及びブロック数（３２ブロック）に基づいて読出終了アドレス（ＬＢＡ：１０３１）が算出され、この読出終了アドレス（ＬＢＡ：１０３１）に関連するリードデータがキャッシュメモリの空き容量に応じた数だけ先読みされて、キャッシュメモリ２２に一時記憶される。なお、図６（ｂ）では、リードデータ［１］〜［１０］が記憶媒体から先読みされた状態を示している。
【００５５】
引き続き、情報記憶再生装置２０では、ＰＣ１０から入力されるリード要求（［１］〜［１０］）の入力毎に図３に示した読出処理（ステップＳ１６；Ｙｅｓ→ステップＳ２１）が実行され、キャッシュメモリ２２に一時記憶されたリードデータ［１］〜［１０］が、入力されるリード要求（ＦｉｌｅＡ：［１］〜［１０］）に応じてＰＣ１０に転送される。ここで、ステップＳ１４の判定処理において、例えば、連続する所定の回数が３回と設定されていた場合には、図４（ａ）に示したリード要求（ＦｉｌｅＡ：［０］、［２］、［１］、［３］）又はリード要求（ＦｉｌｅＢ：［５］、［７］、［６］、［８］）に含まれたブロック数（３２ブロック）が、ブロック数記憶制御部２１３によりブロック数記憶部２１４に記憶されることになる。
【００５６】
次に、ＰＣ１０からリード要求（ＦｉｌｅＣ：［１２］）が入力されると、情報記憶再生装置２０では、読出処理のステップＳ１１〜ステップＳ１６；Ｎｏが実行された後、続くステップＳ１７において、アドレス値記憶部２１２に記憶された前回入力分のリード要求（ＦｉｌｅＣ：［１０］）に係るＬＢＡの最終アドレス（ＬＢＡ：３０３１）と、今回入力分のリード要求（ＦｉｌｅＣ：［１２］）に含まれた読出開始アドレス（ＬＢＡ：３０６４）と、に基づいて両アドレス間に位置する間隙読出範囲（ＬＢＡ：３０３２〜３０６３）が特定され、当該間隙読出範囲に含まれたブロック数（３２ブロック）が算出される。そして、この間隙読出範囲の３２ブロックと、ブロック数記憶部２１２に記憶された３２ブロックとがステップＳ１８において比較されることになる。
【００５７】
この場合、両ブロック数は同値となるため、図７（ｃ）に示したように、今回分のリード要求（ＦｉｌｅＣ：［１２］）の読み出しに先行して、記憶媒体Ｍの間隙読出範囲（ＬＢＡ：３０３２〜３０６３）に対応する記憶媒体ＭのＬＢＡに記憶されたリードデータ、即ち、リードデータ［１１］の読み出しが開始され、読み出されたリードデータ［１１］がキャッシュメモリ２２に一時記憶される。そして、今回入力分のリード要求（ＦｉｌｅＣ：［１２］）に係るリードデータ［１２］が記憶媒体Ｍから読み出され、キャッシュメモリ２２に一時記憶された後ＰＣ１０に転送されるとともに、リードデータ［１２］に関連するリードデータ［１３］〜［１４］が先読みされてキャッシュメモリ２２に一時記憶される。この結果、ＰＣ１０からリード要求（ＦｉｌｅＣ：［１１］）が入力された場合であっても、キャッシュメモリ２２に一時記憶されたリードデータ［１１］をＰＣに転送することができるため、同一のリードデータを記憶媒体Ｍから二重に読み出す必要がなくなる。
【００５８】
以上のように、本実施の形態によれば、リード要求されるリードデータの順序に不整合が存在する場合であっても、当該不整合部分に対応する間隙読出範囲のリードデータを記憶媒体Ｍから読み出し、キャッシュメモリに一時記憶させることが可能であるため、リードデータの読み出しを効率よく動作させることができる。これにより、同一のリードデータが記憶媒体Ｍから二重に読み出されることを抑制することが可能であるため、リード動作にかかる実行時間を短縮することができる。
【００５９】
上記実施の形態の細部構成および詳細動作に関しては、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【００６０】
例えば、上記実施の形態では、ＰＣ１０と情報記憶再生装置２０とを別体とした態様を示したが、これに限らず、ＰＣ１０が情報記憶再生装置２０を内蔵した態様としてもよい。      
【図面の簡単な説明】
【００６１】
【図１】ＰＣと情報記憶再生装置との関係を模式的に示した図である
【図２】ＰＣ及び情報記憶再生装置の内部構成を示した図である。
【図３】読出処理の手順を示したフローチャートである。
【図４】本発明の情報記録再生装置（不整合要求方式）における読出動作を説明するための図であって、（ａ）ＰＣから入力されるリード要求の順序を模式的に示した図であり、（ｂ）リード要求（ＦｉｌｅＡ：［０］）の入力に応じて行われるリードデータの読み出し順序を模式的に示した図であり、（ｃ）リード要求（ＦｉｌｅＣ：［１２］）の入力に応じて行われるリードデータの読み出し順序を模式的に示した図である。
【図５】記憶媒体に記憶されたファイルＡ、Ｂ及びＣに係るライトデータの状態の一例を模式的に示した図である。
【図６】従来の情報記録再生装置における読出動作を説明するための図であって、（ａ）ＰＣから入力されるリード要求の順序を模式的に示した図であり、（ｂ）リード要求（ＦｉｌｅＡ：［０］）の入力に応じて行われるリードデータの読み出し順序を模式的に示した図であり、（ｃ）リード要求（ＦｉｌｅＣ：［１１］）の入力に応じて行われるリードデータの読み出し順序を模式的に示した図である。
【図７】従来の情報記録再生装置（不整合要求方式）における読出動作を説明するための図であって、（ａ）ＰＣから入力されるリード要求の順序を模式的に示した図であり、（ｂ）リード要求（ＦｉｌｅＡ：［０］）の入力に応じて行われるリードデータの読み出し順序を模式的に示した図であり、（ｃ）リード要求（ＦｉｌｅＣ：［１２］）の入力に応じて行われるリードデータの読み出し順序を模式的に示した図であり、（ｄ）リード要求（ＦｉｌｅＣ：［１１］）の入力に応じて行われるリードデータの読み出し順序を模式的に示した図である。
【符号の説明】
【００６２】
１０  ＰＣ  
１１  制御部
１２  記憶部
１３  Ｉ／Ｆ
２０  情報記憶再生装置
２１  制御部
２１１  読出終了アドレス算出部
２１２  アドレス値記憶部
２１３  ブロック数記憶制御部
２１４  ブロック数記憶部
２１５  間隙ブロック数算出部
２１６  読出制御部
２２  キャッシュメモリ
２３  Ｉ／Ｆ
２４  記憶再生部
Ｃ  ケーブル
Ｍ  記憶媒体
【図１】
0004715493.tif 000002
【図２】
0004715493.tif 000003
【図３】
0004715493.tif 000004
【図４】
0004715493.tif 000005
【図５】
0004715493.tif 000006
【図６】
0004715493.tif 000007
【図７】
0004715493.tif 000008