(57)【特許請求の範囲】
【請求項１】
上位コンピュータから読み出し命令が与えられる度に記録媒体へのアクセスを制御することで前記記録媒体に対するＡ／Ｖデータの再生を制御するとともに、前記読み出し命令で要求長として指定可能な長さのうちの最大長が、アプリケーションから要求されるＡ／Ｖデータ長よりも短い場合、前記Ａ／Ｖデータ長のＡ／Ｖデータを再生させるために、前記上位コンピュータにより前記読み出し命令の発行が複数回に分割して行われるようになされた記録媒体制御装置において、
前記記録媒体から前記読み出し命令毎に再生されたＡ／Ｖデータを一時的に記憶する第１の記憶手段と、
前記記録媒体から前記読み出し命令毎に再生されるＡ／Ｖデータの前記記録媒体上における連続性を判定する判定手段と、
前記判定手段の判定結果に基づいて、前記記録媒体上の連続的な領域が１回以上アクセスされた場合におけるその回数を前記読み出し命令毎に計数する計数手段と、
前記計数手段の計数結果に対応して、前記記録媒体から前記Ａ／Ｖデータを前記読み出し命令毎に先読みして、前記第１の記憶手段に記憶させる先読み手段と
を備え、
前記先読み手段は、
今回の前記読み出し命令に対する前記計数手段の計数結果が閾値以下の場合、予め定められている固定長の前記Ａ／Ｖデータを先読みするか、または先読みを禁止し、
今回の前記読み出し命令に対する前記計数手段の計数結果が前記閾値を超えた場合、前記読み出し命令で指定されている要求長の整数倍と、前記固定長とのうちの長い方を先読み長として決定し、その先読み長の前記Ａ／Ｖデータを先読みする
ことを特徴とする記録媒体制御装置。
【請求項２】
前記第１の記憶手段に記憶されているＡ／Ｖデータの前記記録媒体上における位置に対応する位置情報を記憶する第２の記憶手段をさらに備え、
前記判定手段は、前記第２の記憶手段に記憶されている前記位置情報から、前記記録媒体から再生されるＡ／Ｖデータの連続性を判定する
ことを特徴とする請求項１に記載の記録媒体制御装置。
【請求項３】
前記第２の記憶手段は、前記第１の記憶手段に記憶されているＡ／Ｖデータの過去のアクセス時における位置の次の位置を表す位置情報を、アクセス単位で複数個記憶する
ことを特徴とする請求項２に記載の記録媒体制御装置。
【請求項４】
前記先読み手段は、今回の前記読み出し命令に対する前記計数手段の計数結果が前記閾値を超えた場合、さらに、前記第１の記憶手段に記憶されているＡ／Ｖデータの有効先読み長に基づいて先読みを行うか否かを判定し、先読みを行うと判定したときには、前記先読み長の前記Ａ／Ｖデータを先読みし、先読みを行わないと判定したときには、先読みを禁止する
ことを特徴とする請求項１に記載の記録媒体制御装置。
【請求項５】
前記閾値は２である
ことを特徴とする請求項１に記載の記録媒体制御装置。
【請求項６】
上位コンピュータより読み出し命令が与えられる度に記録媒体へのアクセスを制御することで、前記記録媒体に対するＡ／Ｖデータの再生を制御するとともに、前記読み出し命令で要求長として指定可能な長さのうちの最大長が、アプリケーションから要求されるＡ／Ｖデータ長よりも短い場合、前記Ａ／Ｖデータ長のＡ／Ｖデータを再生させるために、前記上位コンピュータにより前記読み出し命令の発行が複数回に分割して行われるようになされた記録媒体制御装置の制御方法において、
前記記録媒体から前記読み出し命令毎に再生されるＡ／Ｖデータの前記記録媒体上における連続性を判定する判定ステップと、
前記判定ステップの判定処理結果に基づいて、前記記録媒体上の連続的な領域が１回以上アクセスされた場合におけるその回数を前記読み出し命令毎に計数する計数ステップと、
前記計数ステップの計数処理結果に対応して、前記記録媒体から前記Ａ／Ｖデータを前記読み出し命令毎に先読みして、記憶手段に記憶させる先読みステップと
を含み、
前記先読みステップは、
今回の前記読み出し命令に対する前記計数ステップの計数処理結果が閾値以下の場合、予め定められている固定長の前記Ａ／Ｖデータを先読みするか、または先読みを禁止するステップと、
今回の前記読み出し命令に対する前記計数ステップの計数処理結果が前記閾値を超えた場合、前記読み出し命令で指定されている要求長の整数倍と、前記固定長とのうちの長い方を先読み長として決定し、その先読み長の前記Ａ／Ｖデータを先読みするステップと
を含むことを特徴とする記録媒体制御方法。
【請求項７】
複数のランダムアクセスが可能なランダムアクセス記録媒体に記録されたＡ／Ｖデータを、リアルタイム性を補償しながら再生するために、上位コンピュータから読み出し命令が与えられる度に、前記複数のランダムアクセス記録媒体に対するアクセスを制御するとともに、前記読み出し命令で要求長として指定可能な長さのうちの最大長が、アプリケーションから要求されるＡ／Ｖデータ長よりも短い場合、前記Ａ／Ｖデータ長のＡ／Ｖデータを再生させるために、前記上位コンピュータにより前記読み出し命令の発行が複数回に分割して行われるようになされたアクセス制御装置において、
上位コンピュータからの過去の前記読み出し命令により読み出し要求されたＡ／Ｖデータのアドレスと、このアドレスをリンク付けるためのリンク情報とから構成される順次処理番地リストを使用して、前記ランダムアクセス記録媒体上のＡ／Ｖデータの記録アドレスを管理するアドレス管理手段と、
前記上位コンピュータから前記読み出し命令が供給されるよりも先に、読み出しが予測されるＡ／Ｖデータを読み出して、キャッシュメモリに記憶させる先読み手段と、
前記先読み手段によって読み出されるＡ／Ｖデータのデータ長を制御するアクセス制御手段と
を備え、
前記アクセス制御手段は、前記読み出し命令が与えられる度に、
前記アドレス管理手段の順次処理番地リストに基づいて、前記ランダムアクセス記録媒体から再生されるビデオデータの前記ランダムアクセス記録媒体上における連続性を判定し、
その判定結果に基づいて、前記ランダムアクセス記録媒体上の連続的な領域が１回以上アクセスされた場合におけるその回数を前記読み出し命令毎に計数し、
その計数結果が閾値以下の場合、予め定められている固定長のデータ量、または、０を、前記先読み手段によって読み出されるＡ／Ｖデータのデータ長として決定し、
その計数結果が前記閾値を超えた場合、今回の前記読み出し命令で指定されている要求長の整数倍と、前記固定長とのうちの長い方のデータ量を、前記先読み手段によって読み出されるＡ／Ｖデータのデータ長として決定する
ことを特徴とするアクセス制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記録媒体制御装置および方法、並びにアクセス制御装置に関し、特に、ディスクに対する順次アクセスとランダムアクセスとを識別できるようにして、Ａ／Ｖデータをディスクから迅速に読み出すことができるようにした、記録媒体制御装置および方法、並びにアクセス制御装置に関する。
【０００２】
【従来の技術】
ランダムアクセスが可能な１枚のディスクにＡ／Ｖ（Audio and/or Video）データを記録再生するディスク装置においては、キャッシュメモリが設けられ、より高速に、データを記録再生することができるようになされている。即ち、ホストコンピュータなどの上位装置からディスクに記録されているＡ／Ｖデータの読み出しが要求された場合、ディスク装置は、ディスクからセクタ単位で再生したＡ／Ｖデータをキャッシュメモリに一時的に記憶させた後、そのＡ／Ｖデータをキャッシュメモリから読み出して、上位装置に転送する。
【０００３】
キャッシュメモリに先読みされたＡ／Ｖデータは、上位装置から読み出しが要求されたときキャッシュメモリから読み出され、上位装置に転送される。上位装置から命令がくる前に、予め先読みしてキャッシュメモリに読み込まれているＡ／Ｖデータを読み出すだけなので、命令が発生してからディスクにアクセスし、ディスクから読み出し、キャッシュメモリを介して転送する場合に較べて、Ａ／Ｖデータを迅速に上位装置に供給することが可能となる。
【０００４】
上位装置から次の命令を受け取るまでの間、ディスク装置は、前回アクセスした領域に続く領域からＡ／Ｖデータを先読みし、先読みしたＡ／Ｖデータをキャッシュメモリに登録する。通常、予め規定された、適当な量のＡ／Ｖデータが先読みされるか、あるいは次の命令が受け取られるまでの間、このような先読み動作が継続される。この先読み動作は、別の領域の読み出しが指令されたり、異なった動作が要求されたりして、他の処理が必要になった場合、セクタ単位での読み出しを、その時点で中断すればよいので、先読みを行ったことに起因する処理速度の低下は、極めて小さい。
【０００５】
【発明が解決しようとする課題】
そこで、複数のディスク装置を介して複数のディスクに対してＡ／Ｖデータを記録または再生するディスクアレイ制御装置においても、上述したディスク装置における場合と同様の先読み処理が行われるようになされている。しかしながら、ディスクアレイ制御装置は、複数のディスク装置（ハードディスク）と、例えばSCSI（Small Computer System Interface）などのインタフェースを介して接続されており、先読みを行う場合、上位装置から読み出しが要求されたＡ／Ｖデータの長さ（要求長Ｌ）に対して、先読み値を加えた長さ（複数のセクタ長となる）を読み出し要求長とした読み出し命令を１つの命令として、各ディスク装置に供給する必要がある。読み出し要求長は命令の先頭に規定されており、途中で変更することは規定されていない。読み出しを中断することは可能であるが、中断処理は、例外処理となるため、０．１秒乃至数秒程度の長い処理時間が必要となる。
【０００６】
このため、キャッシュヒットにより、キャッシュメモリに予め記憶されているＡ／Ｖデータを読み出して、上位装置に転送できる場合には、迅速な読み出し処理が可能であるが、先読み処理中に上位装置から次の命令を受け取り、異なった領域の読み出しをディスク装置に要求する必要が生じたとしても、ディスク装置に対して、現在実行中の（先読みのための余分な領域の）読み出し命令の途中中断を要求すると、中断処理に余分な時間が必要となるため、一般的には、既に発行した命令に対する処理が終了するまで待った方が処理時間が早くなる。このような場合、先読み処理のための命令の終了待ち時間が無駄に発生し、先読みに起因して処理速度が低下することになる。
【０００７】
このように、Ａ／Ｖデータを編集する編集処理の分野では、リアルタイム性を維持しながら複数チャンネルのＡ／Ｖデータを同時に読み出すことが要求されている。特にこのような編集処理の分野では、多彩な編集結果を生成するために、Ａ／Ｖデータを単にシーケンシャルアクセスで読み出すだけでは無くて、ある時には、ランダムアクセスで読み出す必要がある。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、Ａ／Ｖデータを、シーケンシャルアクセスによる読み出しだけでは無く、シーケンシャルアクセスとランダムアクセスとが混在した読み出し処理によっても、常にリアルタイム性を保持することができるアクセス制御装置を提供することを目的としている。
【０００９】
【課題を解決するための手段】
本発明の一側面の記録媒体制御装置は、上位コンピュータから読み出し命令が与えられる度に記録媒体へのアクセスを制御することで前記記録媒体に対するＡ／Ｖデータの再生を制御するとともに、前記読み出し命令で要求長として指定可能な長さのうちの最大長が、アプリケーションから要求されるＡ／Ｖデータ長よりも短い場合、前記Ａ／Ｖデータ長のＡ／Ｖデータを再生させるために、前記上位コンピュータにより前記読み出し命令の発行が複数回に分割して行われるようになされた記録媒体制御装置であって、前記記録媒体から前記読み出し命令毎に再生されたＡ／Ｖデータを一時的に記憶する第１の記憶手段と、前記記録媒体から前記読み出し命令毎に再生されるＡ／Ｖデータの前記記録媒体上における連続性を判定する判定手段と、前記判定手段の判定結果に基づいて、前記記録媒体上の連続的な領域が１回以上アクセスされた場合におけるその回数を前記読み出し命令毎に計数する計数手段と、前記計数手段の計数結果に対応して、前記記録媒体から前記Ａ／Ｖデータを前記読み出し命令毎に先読みして、前記第１の記憶手段に記憶させる先読み手段とを備え、前記先読み手段は、今回の前記読み出し命令に対する前記計数手段の計数結果が閾値以下の場合、予め定められている固定長の前記Ａ／Ｖデータを先読みするか、または先読みを禁止し、今回の前記読み出し命令に対する前記計数手段の計数結果が前記閾値を超えた場合、前記読み出し命令で指定されている要求長の整数倍と、前記固定長とのうちの長い方を先読み長として決定し、その先読み長の前記Ａ／Ｖデータを先読みすることを特徴とする。
【００１０】
本発明の一側面の記録媒体制御方法は、上位コンピュータより読み出し命令が与えられる度に記録媒体へのアクセスを制御することで、前記記録媒体に対するＡ／Ｖデータの再生を制御するとともに、前記読み出し命令で要求長として指定可能な長さのうちの最大長が、アプリケーションから要求されるＡ／Ｖデータ長よりも短い場合、前記Ａ／Ｖデータ長のＡ／Ｖデータを再生させるために、前記上位コンピュータにより前記読み出し命令の発行が複数回に分割して行われるようになされた記録媒体制御装置の制御方法であって、前記記録媒体から前記読み出し命令毎に再生されるＡ／Ｖデータの前記記録媒体上における連続性を判定する判定ステップと、前記判定ステップの判定処理結果に基づいて、前記記録媒体上の連続的な領域が１回以上アクセスされた場合におけるその回数を前記読み出し命令毎に計数する計数ステップと、前記計数ステップの計数処理結果に対応して、前記記録媒体から前記Ａ／Ｖデータを前記読み出し命令毎に先読みして、記憶手段に記憶させる先読みステップとを含み、前記先読みステップは、今回の前記読み出し命令に対する前記計数ステップの計数処理結果が閾値以下の場合、予め定められている固定長の前記Ａ／Ｖデータを先読みするか、または先読みを禁止するステップと、今回の前記読み出し命令に対する前記計数ステップの計数処理結果が前記閾値を超えた場合、前記読み出し命令で指定されている要求長の整数倍と、前記固定長とのうちの長い方を先読み長として決定し、その先読み長の前記Ａ／Ｖデータを先読みするステップとを含むことを特徴とする。
【００１１】
本発明の一側面のアクセス制御装置は、複数のランダムアクセスが可能なランダムアクセス記録媒体に記録されたＡ／Ｖデータを、リアルタイム性を補償しながら再生するために、上位コンピュータから読み出し命令が与えられる度に、前記複数のランダムアクセス記録媒体に対するアクセスを制御するとともに、前記読み出し命令で要求長として指定可能な長さのうちの最大長が、アプリケーションから要求されるＡ／Ｖデータ長よりも短い場合、前記Ａ／Ｖデータ長のＡ／Ｖデータを再生させるために、前記上位コンピュータにより前記読み出し命令の発行が複数回に分割して行われるようになされたアクセス制御装置であって、上位コンピュータからの過去の前記読み出し命令により読み出し要求されたＡ／Ｖデータのアドレスと、このアドレスをリンク付けるためのリンク情報とから構成される順次処理番地リストを使用して、前記ランダムアクセス記録媒体上のＡ／Ｖデータの記録アドレスを管理するアドレス管理手段と、前記上位コンピュータから前記読み出し命令が供給されるよりも先に、読み出しが予測されるＡ／Ｖデータを読み出して、キャッシュメモリに記憶させる先読み手段と、前記先読み手段によって読み出されるＡ／Ｖデータのデータ長を制御するアクセス制御手段とを備え、前記アクセス制御手段は、前記読み出し命令が与えられる度に、前記アドレス管理手段の順次処理番地リストに基づいて、前記ランダムアクセス記録媒体から再生されるビデオデータの前記ランダムアクセス記録媒体上における連続性を判定し、その判定結果に基づいて、前記ランダムアクセス記録媒体上の連続的な領域が１回以上アクセスされた場合におけるその回数を前記読み出し命令毎に計数し、その計数結果が閾値以下の場合、予め定められている固定長のデータ量、または、０を、前記先読み手段によって読み出されるＡ／Ｖデータのデータ長として決定し、その計数結果が前記閾値を超えた場合、今回の前記読み出し命令で指定されている要求長の整数倍と、前記固定長とのうちの長い方のデータ量を、前記先読み手段によって読み出されるＡ／Ｖデータのデータ長として決定することを特徴とする。
【００１５】
本発明の一側面の記録媒体制御装置および方法においては、読み出し命令毎に、Ａ／Ｖデータの記録媒体上における連続性が判定され、その判定結果に基づいて、記録媒体上の連続的な領域が１回以上アクセスされた場合におけるその回数が計数され、その計数結果に対応して、記録媒体からの先読みが制御される。詳細には、読み出し命令は、上位コンピュータから記録媒体制御装置に与えられ、上位コンピュータにより、読み出し命令で要求長として指定可能な長さのうちの最大長が、アプリケーションから要求されるＡ／Ｖデータ長よりも短い場合、Ａ／Ｖデータ長のＡ／Ｖデータを再生させるために、読み出し命令の記録媒体制御装置に対する発行が複数回に分割して行われる。その際、今回の読み出し命令に対する計数結果が閾値以下の場合、予め定められている固定長のＡ／Ｖデータが先読みされるか、または先読みが禁止されるように制御される。これに対して、今回の読み出し命令に対する計数結果が閾値を超えた場合、読み出し命令で指定されている要求長の整数倍と、固定長とのうちの長い方が先読み長として決定され、その先読み長のＡ／Ｖデータが先読みされるように制御される。
【００１７】
本発明の一側面のアクセス制御装置においては、読み出し命令毎に、順次処理番地リストに基づいて、ランダムアクセス記録媒体から再生されるビデオデータのランダムアクセス記録媒体上における連続性が判定され、その判定結果に基づいて、ランダムアクセス媒体上の連続的な領域が１回以上アクセスされた場合におけるその回数が計数され、その計数結果に対応して、ランダムアクセス記録媒体からの先読みが制御される。詳細には、読み出し命令は、上位コンピュータから記録媒体制御装置に与えられ、上位コンピュータにより、読み出し命令で要求長として指定可能な長さのうちの最大長が、アプリケーションから要求されるＡ／Ｖデータ長よりも短い場合、Ａ／Ｖデータ長のＡ／Ｖデータを再生させるために、読み出し命令の記録媒体制御装置に対する発行が複数回に分割して行われる。その際、今回の読み出し命令に対する計数結果が閾値以下の場合、予め定められている固定長のＡ／Ｖデータが先読みされるか、または先読みが禁止されるように制御される。これに対して、今回の読み出し命令に対する計数結果が閾値を超えた場合、読み出し命令で指定されている要求長の整数倍と、固定長とのうちの長い方が先読み長として決定され、その先読み長のＡ／Ｖデータが先読みされるように制御される。
【００１８】
請求項９に記載のアクセス制御装置においては、順次処理番地リストに基づいて、ランダムアクセス記録媒体から再生されるビデオデータのランダムアクセス記録媒体上における連続性が判定され、その判定結果、並びに、上位コンピュータからの読み出し長と、設定されている固定先読み長との比較結果に基づいて、読み出されるＡ／Ｖデータのデータ長が制御される。
【００１９】
請求項１１に記載のアクセス制御装置においては、順次処理番地リストに基づいて、ランダムアクセス記録媒体から再生されるビデオデータのランダムアクセス記録媒体上における連続性が判定され、その判定結果と、順次処理番地リストの連続数情報とに基づいて、トータルアクセス時間が最小となるように、読み出されるＡ／Ｖデータのデータ長が制御される。
【００２０】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、特許請求の範囲に記載の発明の各手段と以下の実施の形態との対応関係を明らかにするために、各手段の後の括弧内に、対応する実施の形態（但し一例）を付加して本発明の特徴を記述すると、次のようになる。但し勿論この記載は、各手段を記載したものに限定することを意味するものではない。
【００２１】
請求項１に記載の記録媒体制御装置は、上位コンピュータから読み出し命令が与えられる度に記録媒体へのアクセスを制御することで前記記録媒体に対するＡ／Ｖデータの再生を制御するとともに、前記読み出し命令で要求長として指定可能な長さのうちの最大長が、アプリケーションから要求されるＡ／Ｖデータ長よりも短い場合、前記Ａ／Ｖデータ長のＡ／Ｖデータを再生させるために、前記上位コンピュータにより前記読み出し命令の発行が複数回に分割して行われるようになされた記録媒体制御装置であって、前記記録媒体から読み出し命令毎に再生されたＡ／Ｖデータを一時的に記憶する第１の記憶手段（例えば、図１のキャッシュメモリ１４）と、記録媒体から読み出し命令毎に再生されるＡ／Ｖデータの記録媒体上における連続性を判定する判定手段（例えば、図１７のステップＳ６３）と、判定手段の判定結果に基づいて、記録媒体上の連続的な領域が１回以上アクセスされた場合におけるその回数を読み出し命令毎に計数する計数手段（例えば、図１７のステップＳ６８，Ｓ７２）と、計数手段の計数結果に対応して、記録媒体からＡ／Ｖデータを読み出し命令毎に先読みして、第１の記憶手段に記憶させる先読み手段（例えば、図１７のステップＳ６９，Ｓ７４，Ｓ７５）とを備え、前記先読み手段は、今回の前記読み出し命令に対する前記計数手段の計数結果が閾値以下の場合、予め定められている固定長の前記Ａ／Ｖデータを先読みするか、または先読みを禁止し（例えば、図１７のステップＳ６９，Ｓ７４）、今回の前記読み出し命令に対する前記計数手段の計数結果が前記閾値を超えた場合、前記読み出し命令で指定されている要求長の整数倍と、前記固定長とのうちの長い方を先読み長として決定し、その先読み長の前記Ａ／Ｖデータを先読みする（例えば、図１７のステップＳ７５）ことを特徴とする。
【００２２】
請求項２に記載の記録媒体制御装置は、第１の記憶手段に記憶されているＡ／Ｖデータの記録媒体上における位置に対応する位置情報を記憶する第２の記憶手段（例えば、図３のRAM６２）をさらに備え、判定手段は、第２の記憶手段に記憶されている位置情報から、記録媒体から再生されるＡ／Ｖデータの連続性を判定することを特徴とする。
【００２７】
請求項７に記載のアクセス制御装置は、複数のランダムアクセスが可能なランダムアクセス記録媒体に記録されたＡ／Ｖデータを、リアルタイム性を補償しながら再生するために、上位コンピュータから読み出し命令が与えられる度に、前記複数のランダムアクセス記録媒体に対するアクセスを制御するとともに、前記読み出し命令で要求長として指定可能な長さのうちの最大長が、アプリケーションから要求されるＡ／Ｖデータ長よりも短い場合、前記Ａ／Ｖデータ長のＡ／Ｖデータを再生させるために、前記上位コンピュータにより前記読み出し命令の発行が複数回に分割して行われるようになされたアクセス制御装置であって、上位コンピュータから過去の読み出し命令によりに読み出し要求されたＡ／Ｖデータのアドレスと、このアドレスをリンク付けるためのリンク情報と、連続するエリアをアクセスした回数を示す連続数情報とから構成された順次処理番地リストを使用して、ランダムアクセス記録媒体上のＡ／Ｖデータの記録アドレスを管理するアドレス管理手段（例えば、図１７のステップＳ６６，Ｓ６７，Ｓ７０，Ｓ７１）と、上位コンピュータから読み出し命令が供給されるよりも先に、読み出しが予測されるＡ／Ｖデータを読み出して、キャッシュメモリに記憶させる先読み手段（例えば、図１７のステップＳ６９，Ｓ７４，Ｓ７５）と、先読み手段によって読み出されるＡ／Ｖデータのデータ長を制御するアクセス制御手段（例えば、図１７のステップＳ６３，Ｓ６８，Ｓ７２，Ｓ７３）とを備え、前記アクセス制御手段は、読み出し命令が与えられる度に、アドレス管理手段の順次処理番地リストに基づいて、ランダムアクセス記録媒体から再生されるビデオデータのランダムアクセス記録媒体上における連続性を判定し（例えば、図１７のステップＳ６３、その判定結果に基づいて、ランダムアクセス記録媒体上の連続的な領域が１回以上アクセスされた場合におけるその回数を前記読み出し命令毎に計数し（例えば、図１７のステップＳ６８，Ｓ７２）、その計数結果が閾値以下の場合（例えば、図１７のステップＳ６８に進んだ場合またはステップＳ７３でＮＯであると判定された場合）、予め定められている固定長のデータ量、または、０を、前記先読み手段によって読み出されるＡ／Ｖデータのデータ長として決定し（例えば、図１７のステップＳ６９，Ｓ７４）、その計数結果が前記閾値を超えた場合（例えば、図１７のステップＳ６８に進んだ場合またはステップＳ７３でＮＯであると判定された場合）、今回の前記読み出し命令で指定されている要求長の整数倍と、前記固定長とのうちの長い方のデータ量を、前記先読み手段によって読み出されるＡ／Ｖデータのデータ長として決定する（例えば、図１７のステップＳ７５）ことを特徴とする。
【００２８】
図１は、本発明を適用したディスクアレイ制御装置の機能的構成例を表している。このディスクアレイ制御装置１には、複数のディスク装置（ハードディスクドライブ）２が接続されており、例えば、パーソナルコンピュータ（PC）３（そのOSは、DOS，Windows 95，Windows NT，UNIX（商標）などを用いることができる）などよりなる上位装置からの制御に対応して、ディスク装置２を制御するようになされている。なお、上位装置はワークステーション（そのOSは、UNIX，Windows NTなどを用いることができる）としてもよい。
【００２９】
ディスクアレイ制御装置１の接続部１１は、PC３と接続され、接続部１２は、ディスク装置２と接続されている。接続部１１と接続部１２の間には、キャッシュメモリ１４が設けられており、PC３から接続部１１を介して入力されたＡ／Ｖデータがキャッシュメモリ１４に記憶された後、そこから読み出され、接続部１２を介してディスク装置２に転送され、記録されるようになされている。また、逆に、ディスク装置２から読み出されたＡ／Ｖデータは、接続部１２からキャッシュメモリ１４に供給、記憶され、そこからさらに読み出され、接続部１１からPC３に供給されるようになされている。このようなＡ／Ｖデータ転送のために、接続部１１、接続部１２、およびキャッシュメモリ１４は、DMAバス１６により接続されている。制御部１３は、CPUバス１５を介して、接続部１１、接続部１２、およびキャッシュメモリ１４を制御するようになされている。
【００３０】
図２は、ディスクアレイ制御装置１のハード的構成例を表している。この例においては、接続部１２が、３つのボード１２−１乃至１２−３により構成されており、各ボード１２−ｉには、３チャンネル分のディスクインタフェース部１２−ｉ−ｊ（ｉ，ｊ＝１乃至３）が設けられている。
【００３１】
また、制御部１３には、各種の制御を行うCPU２１、DMA転送を制御するDMAコントローラ（DMAC）２２が設けられている。また、電源供給部３１−１，３１−２が、各部に必要な電力を供給するようになされている。
【００３２】
図３は、ディスクアレイ制御装置１の、さらに、より詳細な構成例を表している。接続部１１には、最大転送速度が４０MB/SのワイドウルトラSCSIが２チャンネル分設けられている。
【００３３】
１８ビット幅の第１のチャンネルの端子４１−１を介してPC３に接続されているSCSIコントローラ４２−１は、FIFO４３−１に接続され、そこからさらに３６ビット幅で端子４４に接続されている。同様に、リダンダンシ用の第２のチャンネルの端子４１−２も、PC３に接続されるようになされており、この端子４１−２は、SCSIコントローラ４２−２に接続されている。SCSIコントローラ４２−２は、FIFO４３−２を介して端子４４に接続されている。端子４４は、３６ビットの幅を有するDMAバス１６に接続されている。また、端子４４は、１６ビットの幅のCPUバス１５にも接続されており、SCSIコントローラ４２−１，４２−２は、この端子４４を介して、CPUバス１５に接続されている。
【００３４】
接続部１２のボード１２−１は、端子５１−１乃至５１−３を介して、９ビット幅でディスク装置２−１乃至２−３にそれぞれ接続されている。SCSIコントローラ５２−１乃至５２−３は、端子５１−１乃至５１−３を介して、９ビットの幅でディスク装置２−１乃至２−３に接続されている。SCSIコントローラ５２−１乃至５２−３は、１８ビットの幅で、それぞれ対応するFIFO５３−１乃至５３−３に接続されている。FIFO５３−１乃至５３−３は、３６ビットの幅で、端子５６−１を介してDMAバス１６に接続されている。
【００３５】
アレイコントローラ５４−１は、ディスク装置２−１乃至２−３のスピンドル同期用の信号を、SCSIコントローラ５２−１乃至５２−３に分配したり、制御部１３のCPU２１からのコマンドをデコードし、SCSIコントローラ５２−１乃至５２−３に供給するようになされている。また、アレイコントローラ５４−１は、DMAバス１６のボード１２−１内のアービタとしての機能も有している。
【００３６】
端子５５−１は、ディスク装置２−１乃至２−３から出力されるユーティリティ情報（例えば、ディスク装置が接続されている、あるいは接続されていないといった情報や、ホールド（ダウン）しているといった情報）を、SCSIコントローラ５２−１乃至５２−３や、アレイコントローラ５４−１に供給したり、アレイコントローラ５４−１またはSCSIコントローラ５２−１乃至５２−３からのユーティリティ情報（例えば、アクセスを示す情報）を、ディスク装置２−１乃至２−３に出力するようになされている。
【００３７】
図示は省略するが、ボード１２−２，１２−３も、ボード１２−１と同様に構成されている。
【００３８】
このような、９台のディスク装置２−１乃至２−９の９チャンネル分のSCSIとしては、最大転送速度が２０MB/SのウルトラSCSIが用いられている。９台のディスク装置２−１乃至２−９によりRAID−５が構成されており、８台のディスク装置はＡ／Ｖデータディスクとされ、１台のディスク装置はパリティディスクとして使用される。９台のディスク装置２−１乃至２−９は、ディスクアレイ制御装置１から完全に並列にアクセスすることが可能とされている。
【００３９】
ディスク装置２−１乃至２−９としては、シーゲート社製のＳＴ−１９１７１Ｎ（９ＧＢのウルトラSCSIドライブ）を採用することができる。
【００４０】
制御部１３は、端子６３を介してLCD７１に接続されている。CPU２１は、FEPROM６１に記憶されているプログラムに従って、各種の処理を実行する。このCPU２１としては、２５MHzのクロックの３２ビットRISCを用いることができる。また、FEPROM６１としては、２５６KBの容量のものが用いることができる。CPU２１が各種の処理を実行する上において必要なＡ／Ｖデータなどを適宜記憶するRAM６２は、その容量が５１２KBのものを用いることができる。後述する順次処理番地リストは、このRAM６２に記憶される。
【００４１】
DMAC２２には、キャッシュメモリ１４が接続されている。キャッシュメモリ１４としては、SIMM（single in-line memory module）タイプのDRAMが用いられている。キャッシュメモリ１４としては、４MB乃至１２８MBの範囲の容量が使用される。
【００４２】
パリティ生成機能と、CPU２１、およびボード１２−１乃至１２−３の間のアービタ機能を有するDMAC２２は、３６ビットの幅で、端子６４を介してDMAバス１６に接続されており、CPU２１、FEPROM６１、RAM６２，DMAC２２は、１６ビットの幅で端子６４を介してCPUバス１５に接続されている。
【００４３】
PC３がＡ／Ｖデータの記録を指令すると、そのコマンドが、例えば、端子４１−１からSCSIコントローラ４２−１に入力され、SCSIコントローラ４２−１は、このコマンドを端子４４、CPUバス１５、端子６４を介してCPU２１に転送する。CPU２１は、このコマンドに対応するコマンドを生成し、端子６４、CPUバス１５、端子５６−１を介して、アレイコントローラ５４−１に転送する。もちろん、実際には、ボード１２−１，１２−２にもコマンドが転送されるが、説明の便宜上、ここでは、ボード１２−１について説明する。アレイコントローラ５４−１は、入力されたコマンドをデコードし、SCSIコントローラ５２−１乃至５２−３に供給する。SCSIコントローラ５２−１乃至５２−３は、入力されたコマンドに対応してディスク装置２−１乃至２−３のうちの、所定のものの所定のアドレスにアクセスする。
【００４４】
一方、SCSIコントローラ４２−１は、PC３より供給された記録Ａ／ＶデータをFIFO４３−１に供給する。DMAC２２は、FIFO４３−１に記録されたＡ／ＶデータをDMAバス１６を介してキャッシュメモリ１４にDMA転送させる。そしてキャッシュメモリ１４に一旦保持されたＡ／Ｖデータは、DMAC３６により、DMAバス１６を介してFIFO５３−１乃至５３−３のいずれかにさらにDMA転送される。SCSIコントローラ５２−１乃至５２−３は、FIFO５３−１乃至５３−３に供給されたＡ／Ｖデータを読み出し、ディスク装置２−１乃至２−３の所定のアドレスに記録させる。
【００４５】
一方、PC３から記録Ａ／Ｖデータの再生が指令されたとき、そのコマンドは、記録時における場合と同様に、SCSIコントローラ５２−１乃至５２−３に供給される。SCSIコントローラ５２−１乃至５２−３のうち所定のものは、入力されたコマンドに基づいて、対応するディスク装置２−１乃至２−３にアドレスを指定して読み出しを指令する。ディスク装置２−１乃至２−３は、この指令に対応して、指定されたアドレスからＡ／Ｖデータを再生し、対応するSCSIコントローラ５２−１乃至５２−３に出力する。SCSIコントローラ５２−１乃至５２−３は、入力された再生Ａ／ＶデータをFIFO５３−１乃至５３−３に出力する。
【００４６】
DMAC２２は、FIFO５３−１乃至５３−３に記憶されているＡ／ＶデータをDMAバス１６を介して、キャッシュメモリ１４にDMA転送させる。そして、記憶されたＡ／Ｖデータは再び読み出され、DMAバス１６を介してFIFO４３−１にDMA転送される。SCSIコントローラ４２−１は、FIFO４３−１のＡ／Ｖデータを読み出して、PC３に出力する。
【００４７】
再生時の動作をフローチャートに示すと、図４に示すようになる。即ち、最初にステップＳ１において、CPU２１は、上位装置としてのPC３から読み出し指令が入力されるまで待機し、入力されたとき、ステップＳ２において、順次処理番地リスト処理を実行する。その詳細は後述するが、ここにおいて、ディスク装置２−１乃至２−９のいずれかからＡ／Ｖデータが読み出され、DMAバス１６を介してキャッシュメモリ１４に転送され、記憶される。キャッシュメモリ１４に記憶されているＡ／Ｖデータは、ステップＳ３で読み出され、DMAバス１６を介してFIFO４３−１に転送される。SCSIコントローラ４２−１は、FIFO４３−１に記憶されたＡ／Ｖデータを読み出し、これをPC３に転送する。
【００４８】
ただし、実際には、ステップＳ３でのPC３へのＡ／Ｖデータ転送は、ステップＳ２での順次処理番地リスト処理と並行して行われる。
【００４９】
次に、図５のフローチャートを参照して、図４のステップＳ２の順次処理番地リスト処理の詳細について説明する。最初に、ステップＳ１１において、CPU２１は、RAM６２に記憶されている順次処理番地リストの先頭リンクから順次処理番地リストの第１の要素に記憶されている記憶番地を読み出す。なお、ディスク装置２−１乃至２−９から、初めてＡ／Ｖデータを再生するとき、順次処理番地リストはまだ作成されていないが、この図５に示す処理を実行する過程において、作成される。いまの場合、順次処理番地リストは既に作成されているものとする。
【００５０】
順次処理番地リストは、図６に示すように、ｎ個の要素により構成されており、各要素は、リンクと記憶番地とにより構成されている。図３の実施の形態の場合、ｎ＝６４とされている。リンクは、次の要素を表しており、記憶番地は、その要素が生成された時点におけるアクセスの先頭の記憶番地Ｍに、PC３からのＡ／Ｖデータの読み出し要求長Ｌを加算したものである。換言すれば、この記憶番地は、次回のアクセスにおいて読み出されるＡ／Ｖデータの先頭の記憶番地を表している。なお、この記憶番地としては、ディスク装置２−１乃至２−９の論理ブロック番号が用いられる。即ち、ディスク装置２−１乃至２−９の記憶領域が、５１２バイト毎にブロックに区分され、各ブロックに０から始まる順番の番号が与えられ、その番号が、論理ブロック番号となる。
【００５１】
キャッシュメモリ１４は、図７に示すように、少なくとも、順次処理番地リストの各要素に対応する領域に区分されて、Ａ／Ｖデータが記憶されている。
【００５２】
例えば、時刻ｔ1乃至ｔnの各時刻において、それぞれ記憶番地Ｍ1乃至Ｍnから要求長Ｌ（以下では、説明の便宜上、要求長は常にＬとするが、その値は任意である）で読み出しが行われたとすると、順次処理番地の各要素は、LRU（Least Recently Used）処理（時間的に、最も新しい処理要素が前に位置するように処理）されるので、キャッシュメモリ１４には、各要素に対応する領域毎に、記憶番地Ｍ1乃至Ｍnの近傍の記憶番地に記録されているＡ／Ｖデータが記憶されていることになる。図７の例では、例えば、第ｎ要素に対応する領域には、時刻ｔ1においてアクセスされた記憶番地Ｍ1の近傍のＡ／Ｖデータが記憶されている。以下、時刻ｔ2，ｔ3，・・・，ｔn-1のアクセス時におけるＡ／Ｖデータが、それぞれ第ｎ＋１要素に対応する領域乃至第２要素に対応する領域に、それぞれ記憶され、直近の時刻ｔnにおいてアクセスされた記憶番地Ｍnの近傍のＡ／Ｖデータは、第１の要素に対応する領域に記憶されている。
【００５３】
このような場合、順次処理番地リストのｎ個の各要素には、図８（Ａ）に示すようなリンクと記憶番地が記憶されている。即ち、先頭のリンクには、第１の要素を表す値Ｅ１が記憶されており、第１の要素においては、リンクとしてその次の第２の要素を表す値Ｅ２が記憶されており、その記憶番地としては、時刻ｔnのアクセスにおいて読み出されたＡ／Ｖデータの先頭の記憶番地Ｍnに、要求長Ｌを加算した値Ｍn＋Ｌが記憶されている。即ち、この記憶番地Ｍn＋Ｌは、時刻ｔnにおけるアクセスが終了した時点において、順次アクセスが行われるとすれば、次のアクセス時に読み出されるＡ／Ｖデータの先頭の記憶番地を示していることになる。
【００５４】
第２要素は、リンクとして次の第３の要素を表す値Ｅ３が記録され、記憶番地としては、時刻ｔn-1において行われたアクセス時の先頭の記憶番地Ｍn-1に、要求長Ｌを加算した値Ｍn-1＋Ｌが記憶されている。
【００５５】
以下、順次、後段の要素にも同様に、リンクと記憶番地が記憶されており、最終要素としての第ｎ要素においては、それより後の要素が存在しないため、リンクはnillとされ、記憶番地としては、時刻ｔ1において行われたアクセスの先頭の記憶番地Ｍ1に、要求長Ｌを加算した値Ｍ1＋Ｌが記憶されている。
【００５６】
図５に戻って、ステップＳ１１で、先頭のリンクで規定される要素（第１要素）の記憶番地を読み取ると、ステップＳ１２において、CPU２１は、ステップＳ１１で読み取った第１要素の記憶番地と、いま、PC３からのコマンドで読み出しが指令されている要求番地とを比較する。CPU２１は、ステップＳ１３において、コマンドの要求番地と第１要素の記憶番地とが一致するか否かを判定し、２つの番地が一致しない場合には、ステップＳ１４に進み、いま比較対象としている要素は、リンクの最終要素であるか否かを判定する。CPU２１は、比較対象としている要素が最終要素ではない場合には、ステップＳ１５に進み、次にリンクされている要素の記憶番地を読み取り、ステップＳ１２に戻る。即ち、いまの場合、第２要素の記憶番地が読み取られた後、ステップＳ１２に戻ることになる。
【００５７】
ステップＳ１２において、CPU２１は、コマンドの要求番地と第２要素の記憶番地とを比較し、ステップＳ１３において、両者が一致するか否かを判定する。両者が一致しない場合には、ステップＳ１４からステップＳ１５を介して、ステップＳ１２に戻り、以下同様の処理が繰り返し実行される。
【００５８】
例えば、コマンドの要求番地が、Ｍi+1＋Ｌであったとすると、図８（Ａ）に示すように、第ｋ要素の記憶番地がコマンドの要求番地と一致することになる。コマンド要求番地と現在の要素の記憶番地とが一致していると判定された場合、第ｋ要素に対応する領域における前回のアクセスに続く順次アクセスであるということができる。この場合、ステップＳ１３からステップＳ１９に進み、CPU２１は、図８（Ｂ）に示すように、第ｋ要素のリンクを外し、順次処理番地リストの先頭に挿入する処理を行う。即ち、第ｋ要素のリンクの値が、それまでの、その後段の第（ｋ＋１）要素を表す値Ｅ（ｋ＋１）から、それまでの第１要素を表す値Ｅ１に書き換えられる。また、先頭リンクに規定される値が、それまでの値Ｅ１から、Ｅｋに変更される。さらに、第ｋ要素の１個手前の第（ｋ−１）要素のリンクの値が、それまでの値Ｅｋから、値Ｅ（ｋ＋１）に書き換えられる。
【００５９】
これにより、図８（Ｂ）に示すように、先頭リンクの次に、それまでの第ｋ要素がリンクされ、その次に、それまでの第１要素乃至第（ｋ−１）要素がリンクされる。そして、第（ｋ−１）要素の次に、第（ｋ＋１）要素乃至第ｎ要素が、順次リンクされる。
【００６０】
換言すれば、このLRU処理により、それまでの第ｋ要素が新たな第１要素とされ、以下、それまでの第１要素乃至第ｋ−１要素は繰り下げられて、第２要素乃至第ｋ要素となる。図８（Ｂ）において、各要素の上側の括弧内に示す数字は、それまでの要素の番号を表し、下側の括弧内に示す数字は、新たな要素の番号を表している。
【００６１】
次に、ステップＳ２０に進み、CPU２１は、第ｋ要素の記憶番地として、それまでの値（Ｍi+1＋Ｌ）を、今回のコマンドで指定された記憶番地Ｍn+1に、要求長Ｌを加算した値（Ｍn+1＋Ｌ）に更新する。この記憶番地（Ｍn+1＋Ｌ）は、要求長Ｌが一定であるとすれば、記憶番地（Ｍi+1＋２Ｌ）に等しい。
【００６２】
次にステップＳ２１において、CPU２１は、先読み付きで読み出し処理を実行する。即ち、CPU２１は、キャッシュヒットするかどうかを調べ（順次処理番地リストにコマンドの要求番地が登録されているか否かということと、キャッシュヒットするか否かということは、独立している）、キャッシュヒットする場合、キャッシュメモリ１４の第ｋ要素に対応する領域に記憶されている記憶番地Ｍn+1から、要求長Ｌ分のＡ／Ｖデータを読み出すようにDMAC２２に要求する。DMAC２２は、この要求に対応して、そのＡ／Ｖデータをキャッシュメモリ１４から読み出し、DMAバス１６を介してFIFO４３−１に供給し、記憶させる。SCSIコントローラ４２−１は、このFIFO４３−１に記憶されたＡ／Ｖデータを読み出し、PC３に転送する。
【００６３】
キャッシュヒットしない場合、CPU２１は、アレイコントローラ５４−１を制御し、SCSIコントローラ５２−ｉを介してディスク装置２−ｉからＡ／Ｖデータを再生させる。このＡ／Ｖデータはキャッシュメモリ１４に転送された後、さらに読み出され、FIFO４３−１に転送される。そしてこのＡ／ＶデータがSCSIコントローラ４２−１を介してPC３に転送される。
【００６４】
このときさらにCPU２１は、このPC３への転送が行われている間に（バックグラウンドで）、予め設定してある一定長（固定先読み長）（例えば、６４KB、または２５６KB）のＡ／Ｖデータの先読みをアレイコントローラ５４−１に指令する。アレイコントローラ５４−１は、入力された指令に対応して、記憶番地Ｍn+1に続く記憶番地を管理しているSCSIコントローラ５２−ｉ（例えば、SCSIコントローラ５２−１）を制御し、ディスク装置２−１から固定先読み長のＡ／Ｖデータを再生させる。この再生Ａ／Ｖデータは、SCSIコントローラ５２−１からFIFO５３−１に供給され、記憶される。DMAC２２は、FIFO５３−１に記憶されたＡ／ＶデータをDMAバス１６を介してキャッシュメモリ１４に転送し、第ｋ要素に対応する領域に記憶させる。
【００６５】
以上のようにして、順次アクセスが行われた場合には、固定先読み長分だけ先読み処理が行われるので、以後、順次アクセスが行われるたびに、キャッシュヒットが発生する確率が高くなり、迅速にＡ／ＶデータをPC３に転送することが可能となる。
【００６６】
一方、図５のステップＳ１４において、現要素が最終要素に到達したと判定された場合、結局、順次アクセスではないことになる（ランダムアクセスであることになる）。そこで、この場合、ステップＳ１６に進み、CPU２１は、現要素（最終要素）のリンクを外し、リストの先頭に挿入する処理を行う。
【００６７】
即ち、図９（Ａ）に示すように、ｎ個の要素の記憶番地のいずれともコマンドの要求番地が一致しなかった場合には、図９（Ｂ）に示すように、先頭リンクに、それまでの最終要素の値Ｅｎを規定し、それまでの最終要素のリンクに、それまでの第１の要素の値Ｅ１を規定する。さらに、第（ｎ−１）要素のリンクはnillに変更される。これにより、リンクは、それまでの最終要素、それまでの第１要素乃至第（ｎ−１）要素の順にリンクされることになる。
【００６８】
次に、ステップＳ１７において、CPU２１は、それまでの最終要素の記憶番地にコマンドの要求番地Ｍn+1に、要求長Ｌを加算した値（Ｍn+1＋Ｌ）を記述させる。
【００６９】
さらに、ステップＳ１８に進み、CPU２１は、先読みなしで読み出し処理を実行させる。即ち、CPU２１は、キャッシュヒットするかどうかをさらに調べ（直近のｎ回より前のアクセス時にキャッシュメモリ１４にＡ／Ｖデータが記憶されている場合、キャッシュヒットすることになる）、キャッシュヒットする場合、DMAC２２に、キャッシュメモリ１４に記憶されている要求番地Ｍnから、要求長Ｌ分のＡ／Ｖデータを読み出させ、FIFO４３−１に転送させる。
【００７０】
キャッシュヒットしない場合、CPU２１は、アレイコントローラ５４−１を制御し、SCSIコントローラ５２−ｉを介してディスク装置２−ｉからＡ／Ｖデータを再生させる。このＡ／Ｖデータはキャッシュメモリ１４に転送された後、さらに読み出され、FIFO４３−１に転送される。そしてこのＡ／ＶデータがSCSIコントローラ４２−１を介してPC３に転送される。
【００７１】
順次アクセスの第１番目のアクセスは、ランダムアクセスとして先読みなしで処理されるが、第２番目以降のアクセスでは、先読み付きで読み出しが行われる。順次アクセスでは、多数回連続してアクセスが行われるため、実質的には、順次アクセスの場合、常に先読みされるのと同等の処理速度が得られる。
【００７２】
一方、ランダムアクセスは、先読みなしで処理されるため、先読みによる無駄が発生することが防止される。
【００７３】
以上においては、順次処理番地リストにより過去のアクセス番地を複数個（ｎ個）記憶するようにしたが、１つだけ記憶しておくことにより、順次アクセスとランダムアクセスを識別することも可能である。しかしながら、複数のアクセスが混在し、その中の幾つかが順次アクセスであり、幾つかがランダムアクセスであるような場合、１つの記憶番地だけを記憶しておく方法では、順次アクセスの間に、他のアクセスが混在するたびに、順次アクセスがランダムアクセスと誤認識されることになり、必要な先読みが、しばしば中断される。その結果、処理能力が低下することになる。そこで、上述したように、複数の記憶番地を記憶、管理するようにするのが好ましい。
【００７４】
ところで、図１０に示すように、PC３からの読み出し命令長Ｌ（図１０（Ｂ））が、固定先読み長Ｗ（図１０（Ａ））より短い場合には、固定先読み長Ｗの中に、命令長ＬのＡ／Ｖデータがすべて存在するため、先読み効果が発生するが、固定先読み長Ｗ（図１０（Ａ））が、要求長Ｌ（図１０（Ｃ））より短い場合、先読みされたＡ／Ｖデータだけでは不足するため、ディスク装置２−ｉ（ｉ＝１乃至９）に対して、不足する部分（図１０（Ｄ））の読み出し命令を再度発行する必要がある。その結果、迅速な処理が困難となる。
【００７５】
そこで、上述した図５のステップＳ２１の処理時において、図１１のフローチャートに示す先読み長決定処理を行い、決定された先読み長で先読み処理を実行するようにすることができる。
【００７６】
この場合、最初にステップＳ４１において、CPU２１は、要求長ＬのＮ倍（Ｌ×Ｎ）の先読み長（動的先読み長）と、固定先読み長Ｗを比較し、ステップＳ４２において、動的先読み長Ｌ×Ｎが、固定先読み長Ｗ以上であるか否かを判定する。動的先読み長Ｌ×Ｎが、固定先読み長Ｗ以上であると判定した場合（図１２（Ｂ）に示すような場合）、ステップＳ４４に進み、CPU２１は、先読み長として動的先読み長Ｌ×Ｎを設定する。これに対して、CPU２１は、動的先読み長Ｌ×Ｎより固定先読み長Ｗの方が大きいと判定された場合（図１２（Ａ）に示すような場合）、ステップＳ４３に進み、先読み長として、固定先読み長Ｗを設定する。
【００７７】
以上のようにして、結局、動的先読み長Ｌ×Ｎと固定先読み長Ｗのうち、長い方が先読み長として設定される。これにより、読み出し処理を再度発行しなければならないようなことが防止される。
【００７８】
また、PC３からの次の読み出し命令に対するＡ／Ｖデータがすべてキャッシュメモリ１４中に存在する確率が上昇し、処理速度を向上することが可能となる。
【００７９】
動的先読み長のＮの値は、次のようにして決定される。即ち、要求長Ｌに対して、Ａ／Ｖデータがキャッシュメモリ１４中に存在する場合、PC３からの読み出し命令の実行にかかる時間をＴｈとし、ディスク装置２−ｉに読み出し命令を発行した場合の所要時間を、Ａ／Ｖデータ長に依存しない時間（オーバヘッド）Ｔｂと、Ａ／Ｖデータ長に比例し、要求長ＬのＡ／Ｖデータを読み出すのに要する時間をＴｄとすると、次式が満足されるように、Ｎの値が設定される。
Ｔｈ×Ｎ≧Ｔｂ＋Ｔｄ×Ｎ      ・・・（１）
【００８０】
最大速度を確保するためには、
Ｗ≦Ｌ×Ｎ      ・・・（２）
即ち、
Ｗ／Ｌ≦Ｎ      ・・・（３）
の広い範囲で、（１）式が成立することが必要となる。PC３との接続には、接続部１１として、ワイドウルトラSCSI（４０MB/S）を使用しており、理論限界値は、
Ｔｈ＝Ｌ／４０ＭＢ      ・・・（４）
となる。Ａ／Ｖデータディスクが８台であるから、１台当たりの実質Ａ／Ｖデータ転送速度を１０MB/Sとすると、
Ｔｄ＝Ｌ／８０ＭＢ      ・・・（５）
となる。上記（４）式と（５）式を、（１）式に適用すると、次式が成立する。
0003803798.tif 000002
Ｔｂ＜（（Ｌ／４０ＭＢ）−（Ｌ／８０ＭＢ））×Ｎ＝Ｌ×Ｎ／８０ＭＢ・・・（７）
Ｎ＞Ｔｂ×８０ＭＢ／Ｌ      ・・・（８）
【００８１】
実測値より、Ｔｂ＝１０ｍＳ＝０．０１Ｓ程度であるから、（８）式（（１）式）から、Ｌ＝１ＭＢで、Ｎ＞０．８，Ｌ＝１００ＫＢで、Ｎ＞８となる。
【００８２】
また、Ｗ＝２５６ＫＢとすると、（３）式から、Ｌ＝１ＭＢで、Ｎ≧０．２５、Ｌ＝１００ＫＢで、Ｎ≧２．５となる。
【００８３】
以上から、Ｎ＝４，８，１６で、各種の上位装置の環境において、固定先読み長の場合と較べ、平均Ａ／Ｖデータ転送速度が、１．２倍から２倍向上することを発明者は確認した。
【００８４】
例えば、Ｗ＝２５６ＫＢ，Ｎ＝８，Ｌ＝５１２ＫＢとして、DOS環境の順次アクセスベンチマークにより測定したところ（番地Ａから連続して領域をアクセスし、そのＡ／Ｖデータ転送速度を測定したところ）、２５MB/Sから３２MB/Sへの向上を確認することができた。
【００８５】
ところで、順次アクセス読み出し命令に対応して、先読みされているＡ／ＶデータをPC３に順次転送すると、キャッシュメモリ１４中に存在している、その命令の要求領域に続く領域で残存するＡ／Ｖデータの長さ（有効先読み長）が次第に減少する。そこで、キャッシュメモリ１４にキャッシュヒットが発生していたとしても、今後発行が予想されるPC３からの読み出し命令に対応する領域（当該命令の領域に続く領域）を、次の命令に対応する領域であるものとして予想し、ディスク装置２−ｉに対して、予め先読み（先行先読み）させるようにすることができる。
【００８６】
図１３は、この場合のCPU２１の処理例を表している。即ち、CPU２１は、図５のステップＳ２１における先読み処理で、図１１のステップＳ４４により先読み長として動的先読み長Ｌ×Ｎが設定された場合に、この図１３のフローチャートに示す処理を実行する。
【００８７】
最初にステップＳ５１において、CPU２１は、有効先読み長を読み取り、ステップＳ５２において、ステップＳ５１で読み取った有効先読み長が、動的先読み長Ｌ×Ｎに減少率Ｍを乗算した値Ｌ×Ｎ×Ｍ以下であるか否かを判定する。有効先読み長が、値Ｌ×Ｎ×Ｍ以下であると判定された場合、ステップＳ５３に進み、CPU２１は、先行先読みを実行する。即ち、再び、動的先読み長Ｌ×Ｎ分だけ先読みを実行させる。
【００８８】
ステップＳ５２において、有効先読み長が、値Ｌ×Ｎ×Ｍより大きいと判定された場合、まだ、キャッシュメモリ１４にＡ／Ｖデータが充分残っているので、ステップＳ５３の処理はスキップされる。
【００８９】
この処理は、要求長Ｌより先読み長を充分大きくしたとき有効になる制御方法である。
【００９０】
有効先読み長が基準値以下に減少した時点で、先行先読みを実行するようにすることで処理速度を向上させることができる。
【００９１】
図１１に示した方法の場合、１回に行われる先読み長は、Ｌ×Ｎである。これに対して、有効先読み長がどこまで減少した時点で、次の先読み（先行先読み）を開始するか否かを判断するパラメータが減少率Ｍである。
【００９２】
図１３に示す方法の場合、有効先読み長がＬ×Ｎ×Ｍを下回った時点で、PC３に対するＡ／Ｖデータ転送を開始すると同時に、Ｌ×Ｎの先行先読みが実行される。この先行先読みにより、PC３からの順次読み出し命令処理に対してディスク装置２−ｉからの読み出し処理（先行先読み処理）が、完全に同時平行処理となり、図１４に示すように、最適状態では、PC３からの順次読み出し命令処理において、要求Ａ／Ｖデータがすべてキャッシュメモリ１４中に存在する状態が継続し、最大の処理性能を発揮することが可能となる。
【００９３】
図１４は、Ｎ＝４，Ｍ＝０．５の場合における先行先読み処理を表している。図中ｔは時間の経過を表しているが、読み出し２と読み出し３は、先行読み出しと同時に行われる。キャッシュメモリ１４中の有効先読み長Ｌａが、Ｌ×Ｎ×Ｍより小さくなったとき、キャッシュメモリ１４から要求長Ｌ分のＡ／Ｖデータを読み出し１により読み出してPC３に転送すると同時に、Ｌ×Ｎ分のＡ／Ｖデータの先行先読みを開始し、この先行先読みのＡ／Ｖデータのキャッシュメモリ１４に対する書き込みが、有効先読み長ＬａのPC３への転送が完了する前までに完了していれば、読み出し２により有効先読み長ＬａをすべてPC３に転送したとき、次に、読み出し３において、先行先読みしたＡ／ＶデータＬｃのうちの最初のＡ／ＶデータＬｂをPC３に転送することができる。そして、さらに読み出し４において、次の要求長ＬをPC３に転送したとき、図１４の最初に示した状態（読み出し１の直前の状態）と同一の状態になる。
【００９４】
接続部１１側で４０MB/Sの転送レートが確保され、接続部１２側で１チャンネルあたりの実質的転送レートを１０MB/Sとすると、８台で８０MB/Sを確保することができるので、PC３に転送するＡ／Ｖデータより、より多いＡ／Ｖデータをディスク装置２−ｉからキャッシュメモリ１４に転送することが可能である。
【００９５】
Ｍ＝０．５，Ｎ＝８として、各種のPC３の環境において、順次アクセスの平均Ａ／Ｖデータ転送速度を比較測定したところ、この方法を採用することにより、１．２倍から１．４倍、平均Ａ／Ｖデータ転送速度を向上させることが可能であった。
【００９６】
例えば、Ｌ＝５１２KBでDOS環境の順次アクセスベンチマークの測定値は、３２MB/Sから３７MB/Sに向上した。
【００９７】
ところで、図１５（Ａ）に示すように、PC３が１回の読み出し処理に適用可能な読み出し命令の最大長Ｐが、アプリケーションから要求されるＡ／Ｖデータ長Ｒよりも長い場合、PC３は、アプリケーションに対して１回のアクセスで要求されたＡ／Ｖデータ長Ｒを提供することが可能である。
【００９８】
しかしながら、図１５（Ｂ）に示すように、PC３が適用可能な読み出し命令の最大長Ｐが、アプリケーションから要求されているＡ／Ｖデータ長Ｒよりも短い場合には、１回目のアクセスでＡ／Ｖデータ長Ｐだけ転送し、２回目のアクセスで残りのＡ／Ｖデータ長（Ｒ−Ｐ）を転送する必要が生じる。
【００９９】
さらに、図１５（Ｃ）に示すように、PC３が適用可能な読み出し命令の最大長Ｐに較べて、アプリケーションから要求されているＡ／Ｖデータ長Ｒが充分大きい場合には、Ａ／Ｖデータ長Ｐだけ取得するアクセスを複数回（この例の場合３回）繰り返し、最後に残りのＡ／Ｖデータを取得することになる。
【０１００】
このように、PC３が、１回の読み出し処理に適用可能な読み出し命令の最大長Ｐが、アプリケーションから要求されているＡ／Ｖデータ長Ｒよりも短い場合、ランダムアクセスであったとしても、一連のより小さな長さの順次読み出し命令に分割した処理が行われる。このとき、固定先読み長Ｗに対して、読み出し命令の最大長Ｐが大きいとき（Ｐ×Ｎ＞Ｗのとき）、上述した図１１の方法を採用すると、Ｌ×Ｎ（＝Ｐ×Ｎ）の先読みが行われ、ランダムアクセスであるにもかかわらず、大きな先読みが行われる。
【０１０１】
即ち、図１６（Ａ）に示すように、Ｒ＝２Ｐである場合、PC３は、本来ならば１回のアクセスで実行可能なランダムアクセスを２回に分割してアクセス処理を実行することになる。この場合、図１６（Ｂ）に示すように、１回目のＡ／Ｖデータ長Ｐの読み出しは、先読みなしのランダムアクセス処理で実行されるが、２回目のＡ／Ｖデータ長Ｐの読み出し時において、上述した図５のステップＳ１３において、順次アクセスと判定され、先読み処理が実行されることになる。しかしながら、このアクセスは、ランダムアクセスであり、第２回目以降の先読みＡ／Ｖデータは、すべて利用されずに無駄になることになる。
【０１０２】
具体的には、例えば、Widows NT 4.x（商標）では、読み出し命令の最大長Ｐは、１０２０KBである。Ａ／Ｖデータ長Ｒが２０４０KBのランダムアクセスを実行したとき、このような現象が発生することになる。種々のＡ／Ｖデータ長Ｒに対して測定を行ったところ、２０４０KBの場合が最悪となることが判明した。
【０１０３】
図１５（Ｃ）に示すように、分割数が３以上になると、２回目に発生した先読みが、３回目以降において有効に使用されるため、不利益が減少する。分割数がさらに大きくなると、一連のアクセスは、まさに順次アクセスと同様となり、先読みが有効に機能することになる。
【０１０４】
そこで、順次アクセスとして連続的な領域をアクセスした回数としての連続数Ｃが、所定の閾値としての分割境界数Ｓ以下の場合、先読みなしの読み出し、または固定先読み長Ｗの読み出しとし、連続数Ｃが、分割境界数Ｓより大きい場合には、上述した図１１と図１３の処理を実行するようにして、無駄な先読み発生確率を減少させるようにすることができる。
【０１０５】
図１７は、この場合の処理例を表している。そのステップＳ６１乃至ステップＳ７５の処理は、図５に示したステップＳ１１乃至ステップＳ２１の処理と基本的に同様の処理である。図１７においては、ステップＳ６７とＳ６９（図５のステップＳ１７とＳ１８が対応する）の間にステップＳ６８の処理が挿入されている点と、図５のステップＳ２１の処理が、図１７においてはステップＳ７２乃至ステップＳ７５の処理とされている点が異なっている。
【０１０６】
その結果、ステップＳ６４において、ランダムアクセスであると判定された場合には、ステップＳ６６で、最終要素のリンクを外し、リストの先頭に挿入する処理が実行された後、ステップＳ６７において、その要素の記憶番地に次の記憶番地が設定される処理が実行される。そして、ステップＳ６８において、連続数Ｃに１が設定される。その後、ステップＳ６９において、先読みなしで読み出し処理が実行される。
【０１０７】
即ち、ランダムアクセス時における場合の処理は、ステップＳ６８において、連続数Ｃに１が設定される点を除いて、図５に示した場合と同様である。
【０１０８】
ステップＳ６３において、今回のアクセスが順次アクセスであると判定された場合には、ステップＳ７０において、現在の第ｋ要素のリンクを外し、リストの先頭に挿入する処理が実行された後、ステップＳ７１において、その要素の記憶番地に、次の記憶番地を設定する処理が実行される。
【０１０９】
さらに、ステップＳ７２においては、連続数Ｃが１だけインクリメントされる。例えば、図１５（Ｃ）に示すように、Ａ／Ｖデータ長Ｒを再生するのに、４分割されてアクセスが行われる場合、第１回目のアクセス時（ランダムアクセスとしてのアクセス時）に連続数Ｃに１が設定され、第２回目のアクセス時（順次アクセスとしてのアクセス時）に先読み処理が実行される。そして、この先読み処理されたＡ／Ｖデータのうち、最初のＡ／Ｖデータ長Ｐの読み出し処理を実行するとき、連続数Ｃが２に設定されることになる。同様に、第３回目以降の順次アクセスとしてのアクセス時に連続数Ｃが、３，４，５，・・・と設定される。
【０１１０】
次に、ステップＳ７３において、連続数Ｃが分割境界数Ｓより大きいか否かが判定される。連続数Ｃが分割境界数Ｓより大きいと判定された場合、ステップＳ７５に進み、上述した図１１と図１３に示す方法による先読み付きで読み出し処理が実行される。
【０１１１】
これに対してステップＳ７３において、連続数Ｃが分割境界数Ｓと等しいか、それより小さいと判定された場合、ステップＳ７４に進み、固定先読み長Ｗで先読み出し処理が実行される。例えば、図１６（Ａ）に示すような場合、ステップＳ７４で、図１６（Ｃ）に示すような固定先読み長Ｗによる先読み出し処理が実行される。
【０１１２】
この、固定先読み長ＷのＡ／Ｖデータは、無駄なＡ／Ｖデータとなるが、固定先読み長Ｗは、そもそも、それが無駄になったとしても、あまり大きな影響がでないような値に設定されているので、その影響は、それほど大きくはない。換言すれば、このステップＳ７４の処理においては、ステップＳ６９における場合と同様に、先読みなしで読み出し処理を行うようにすることも可能である。
【０１１３】
PC３が１回の読み出しを複数のコマンドに分割して行うような場合、不必要な先読みの発生確率を低下させ、処理速度を向上させることができる。
【０１１４】
Ｒ＝２０４０KB，Ｐ＝１０２０KB，Ｗ＝２５６KBの条件で、分割境界数Ｓ＝２とした場合のランダムアクセス速度を測定したところ、１２MB/Sが２５MB/Sに改善されることが確認された。
【０１１５】
また、一般的な順次アクセスでの速度低下が、速度誤差範囲であることも確認された。
【０１１６】
以上においては、記録媒体としてハードディスクを用いた場合を例としたが、本発明は、磁気ディスク以外の、光ディスク、光磁気ディスクなどの記録媒体のアレイを制御する場合にも適用することができる。
【０１１７】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものとする。
【０１１８】
さらに、上記したような処理を行うコンピュータプログラムをユーザに提供する提供媒体としては、磁気ディスク、CD-ROM、固体メモリなどの記録媒体の他、ネットワーク、衛星などの通信媒体を利用することができる。
【０１１９】
【発明の効果】
本発明の一側面の記録媒体制御装置および方法によれば、読み出し命令毎に、Ａ／Ｖデータの記録媒体上における連続性を判定し、その判定結果に基づいて、記録媒体上の連続的な領域が１回以上アクセスされた場合におけるその回数を計数し、その計数結果に対応して、記録媒体からの先読みを次のように制御するようにした。即ち、読み出し命令は、上位コンピュータから記録媒体制御装置に与えられ、上位コンピュータは、読み出し命令で要求長として指定可能な長さのうちの最大長が、アプリケーションから要求されるＡ／Ｖデータ長よりも短い場合、Ａ／Ｖデータ長のＡ／Ｖデータを再生させるために、読み出し命令の記録媒体制御装置に対する発行を複数回に分割して行うが、その際、今回の読み出し命令に対する計数結果が閾値以下の場合、予め定められている固定長のＡ／Ｖデータを先読みするか、または先読みを禁止するように制御するようにした。これに対して、今回の読み出し命令に対する計数結果が閾値を超えた場合、読み出し命令で指定されている要求長の整数倍と、固定長とのうちの長い方を先読み長として決定し、その先読み長のＡ／Ｖデータが先読みされるように制御するようにした。これにより、不必要な先読みの発生確率を低下させ、処理速度を向上させることが可能になる。特に、上位コンピュータが1回の読み出しを複数のコマンド（読み出し命令）に分割して指令したような場合にその効果はより一段と顕著になる。
【０１２３】
本発明の一側面のアクセス制御装置によれば、読み出し命令毎に、順次処理番地リストに基づいて、ランダムアクセス記録媒体から再生されるビデオデータのランダムアクセス記録媒体上における連続性を判定し、その判定結果に基づいて、ランダムアクセス媒体上の連続的な領域が１回以上アクセスされた場合におけるその回数を計数し、その計数結果に対応して、ランダムアクセス記録媒体からの先読みを制御するようにした。詳細には、読み出し命令は、上位コンピュータからアクセス制御装置に与えられ、上位コンピュータは、読み出し命令で要求長として指定可能な長さのうちの最大長が、アプリケーションから要求されるＡ／Ｖデータ長よりも短い場合、Ａ／Ｖデータ長のＡ／Ｖデータを再生させるために、読み出し命令のアクセス制御装置に対する発行を複数回に分割して行うようにするが、その際、今回の読み出し命令に対する計数結果が閾値以下の場合、予め定められている固定長のＡ／Ｖデータを先読みするか、または先読みを禁止するように制御するようにした。これに対して、今回の読み出し命令に対する計数結果が閾値を超えた場合、読み出し命令で指定されている要求長の整数倍と、固定長とのうちの長い方を先読み長として決定し、その先読み長のＡ／Ｖデータを先読みするように制御するようにした。これにより、不必要な先読みの発生確率を低下させ、処理速度を向上させることが可能になる。特に、上位コンピュータが1回の読み出しを複数のコマンド（読み出し命令）に分割して指令したような場合にその効果はより一段と顕著になる。
【図面の簡単な説明】
【図１】本発明を適用したディスクアレイ制御装置の基本的な構成例を示すブロック図である。
【図２】図１のディスクアレイ制御装置のハード的な構成例を示すブロック図である。
【図３】図２のディスクアレイ制御装置のさらにより詳細な構成例を示すブロック図である。
【図４】図３のディスクアレイ制御装置の読み出し処理を説明するフローチャートである。
【図５】図４のステップＳ２の順次処理番地リスト処理を説明するフローチャートである。
【図６】順次処理番地リストを説明する図である。
【図７】図３のキャッシュメモリ１４の記録Ａ／Ｖデータを説明する図である。
【図８】順次処理番地リスト処理を説明する図である。
【図９】順次処理番地リスト処理を説明する図である。
【図１０】固定先読み長と要求長の関係を説明する図である。
【図１１】図３のディスクアレイ制御装置の先読み長決定処理を説明するフローチャートである。
【図１２】固定先読み長と動的先読み長を説明する図である。
【図１３】図３のディスクアレイ制御装置の先行先読み処理を説明するフローチャートである。
【図１４】先行先読み処理を説明する図である。
【図１５】読み出しの分割処理を説明する図である。
【図１６】分割読み出し時の先読みを説明する図である。
【図１７】図３のディスクアレイ制御装置の拡張順次処理番地リスト処理を説明するフローチャートである。
【符号の説明】
１  ディスクアレイ制御装置，  ２  ディスク装置，  ３  パーソナルコンピュータ，  １１，１２  接続部，  １３  制御部，  １４  キャッシュメモリ，２１  CPU，  ２２  DMAC
【図１】
0003803798.tif 000003
【図２】
0003803798.tif 000004
【図３】
0003803798.tif 000005
【図４】
0003803798.tif 000006
【図５】
0003803798.tif 000007
【図６】
0003803798.tif 000008
【図７】
0003803798.tif 000009
【図８】
0003803798.tif 000010
【図９】
0003803798.tif 000011
【図１０】
0003803798.tif 000012
【図１１】
0003803798.tif 000013
【図１２】
0003803798.tif 000014
【図１３】
0003803798.tif 000015
【図１４】
0003803798.tif 000016
【図１５】
0003803798.tif 000017
【図１６】
0003803798.tif 000018
【図１７】
0003803798.tif 000019