(57)【特許請求の範囲】
【請求項１】
上位装置から書込アクセスを受けた際に、書込データをメモリのデータバッファ領域に展開して上位装置に正常終了を通知し、その後に前記データバッファ領域に展開した書込データを記憶媒体に書込むキャッシュ制御部と、
上位装置の書込アクセスについて、書込アドレスが不連続となるランダムアクセスか、書込アドレスか連続するシーケンシャルアクセスかを判別するアクセス種別判定部と、
前記ランダムアクセスに適したバッファ展開と媒体書込みを可能とするランダム対応バッファ構成または前記シーケンシャルアクセスに適したバッファ展開と媒体書込みを可能とするシーケンシャル対応バッファ構成を設定し、前記ランダム対応バッファ構成の設定状態で前記シーケンシャルアクセスを判別した場合に前記シーケンシャル対応バッファ構成に変更し、前記シーケンシャル対応バッファ構成の設定状態で前記ランダムアクセスを判別した場合に前記ランダム対応バッファ構成に変更するバッファ構成制御部と、
を備え、
前記アクセス種別判定部は、更に、前回アドレスに対し今回アドレスが増加している昇順アクセスを判定した場合は昇順モードを設定し、前回アドレスに対し今回アドレスが減少している降順アクセスを判定した場合は降順モードを設定し、
前記キャッシュ制御部は、前記昇順モードではバッファ区画の先頭位置から書込データを昇順に展開し、前記降順モードではバッファ区画の末尾位置から書込データを降順に展開することを特徴とする記憶装置。
【請求項２】
請求項１記載の記憶装置に於いて、前記バッファ構成制御部は、前記ランダム対応バッファ構成の設定状態で、前記シーケンシャルアクセスによる書込回数が所定値に達した時に、前記データバッファ領域をランダム対応バッファ構成からシーケンシャル対応バッファ構成に変更することを特徴とする記憶装置。
【請求項３】
請求項１記載の記憶装置に於いて、前記バッファ構成制御部は、前記ランダム対応バッファ構成の設定状態で、前記シーケンシャルアクセスによる書込データ量が所定の容量に達した時に、前記データバッファ領域をランダム対応バッファ構成からシーケンシャル対応バッファ構成に変更することを特徴とする記憶装置。
【請求項４】
請求項１記載の記憶装置に於いて、前記バッファ構成制御部は、前記シーケンシャル対応バッファ構成の設定状態で、前記ランダムアクセスの回数が規定回数に達した時に、前記データバッファ領域をシーケンシャル対応バッファ構成から前記ランダム対応バッファ構成に変更することを特徴とする記憶装置。
【請求項５】
請求項１記載の記憶装置に於いて、前記アクセス種別判定部は、前回の書込アクセスの末尾アドレスに１を加算した値が今回の書込アクセスの先頭アドレスに一致している場合に、昇順のシーケンシャルアクセスと判定することを特徴とする記憶装置。
【請求項６】
請求項１記載の記憶装置に於いて、前記アクセス種別判定部は、前回の書込アクセスの先頭アドレスと今回の書込アクセスの末尾アドレスに１を加算した値が一致している場合に、降順のシーケンシャルアクセスと判定することを特徴とする記憶装置。
【請求項７】
請求項１記載の記憶装置に於いて、前記アクセス種別判定部は、現在昇順モードで書込アクセスが降順のランダムアクセスを判定した場合、降順モードに変更して書込データをバッファ区画に降順展開させることを特徴とする記憶装置。
【請求項８】
請求項１記載の記憶装置に於いて、前記アクセス種別判定部は、現在降順モードで書込アクセスが昇順のランダムアクセスを判定した場合、昇順モードに切り替えて書込データをバッファ区画に昇順展開させることを特徴とする記憶装置。
【請求項９】
請求項１記載の記憶装置に於いて、前記アクセス種別判定部は、現在昇順モードで書込アクセスが降順のシーケンシャルアクセスを判定した場合、降順のシーケンシャルアクセスの連続回数を計数し、規定回数未満では昇順モードを維持して書込データをバッファ区画に昇順展開させ、規定回数に達したら降順モードに切り替えてバッファ区画に降順展開させることを特徴とする記憶装置。
【請求項１０】
請求項１記載の記憶装置に於いて、前記アクセス種別判定部は、現在降順モードで書込アクセスが昇順のシーケンシャルアクセスを判定した場合、昇順のシーケンシャルアクセスの連続回数を計数し、規定回数未満では降順モードを維持して書込データをバッファ区画に降順展開させ、規定回数に達したら昇順モードに切り替えてバッファ区画に昇順展開させることを特徴とする記憶装置。
【請求項１１】
請求項１記載の記憶装置に於いて、
前記バッファ構成制御部は、前記ランダム対応バッファ構成としてデータバッファ領域を２を超える複数区画に分割し、
前記キャッシュ制御部は、上位装置のランダムアクセスに対し、前記分割区画のいずれかにアドレスが連続する書込データが展開済みで且つ連続領域に空きがある場合、該展開済みデータに続けて新たな書込データを展開し、前記分割区画のいずれかにアドレスが連続する書込データが存在しないか、存在しても連続領域に空きがない場合、いずれかの区画の媒体書込み終了による空きを待って、新たな書込データを書込み終了区画に展開することを特徴とする記憶装置。
【請求項１２】
ランダム書込アクセスに適したバッファ展開と媒体書込みを可能とするランダム対応バッファ構成を固定設定したメモリ上のデータバッファ領域と、
上位装置からアクセスを受けた際に、書込データをメモリのデータバッファ領域に展開して上位装置に正常終了を通知し、その後に前記データバッファ領域に展開した書込データを記憶媒体に書込むキャッシュ制御部と、
を備えた記憶装置に於いて、
前回アドレスに対し今回アドレスが増加している昇順アクセスを判定した場合は昇順モードを設定し、前回アドレスに対し今回アドレスが減少している降順アクセスを判定した場合は降順モードを設定するアクセス種別判定部を設け、前記キャッシュ制御部は、前記昇順モードではバッファ区画の先頭位置から書込データを昇順に展開し、前記降順モードではバッファ区画の末尾位置から書込データを降順に展開することを特徴とする記憶装置。
【請求項１３】
シーケンシャル書込アクセスに適したバッファ展開と媒体書込みを可能とするシーケンシャル対応バッファ構成を固定設定したメモリ上のデータバッファ領域と、
上位装置からアクセスを受けた際に、書込データをメモリのデータバッファ領域に展開して上位装置に正常終了を通知し、その後に前記データバッファ領域に展開した書込データを記憶媒体に書込むキャッシュ制御部と、
を備えた記憶装置に於いて、
前回アドレスに対し今回アドレスが増加している昇順アクセスを判定した場合は昇順モードを設定し、前回アドレスに対し今回アドレスが減少している降順アクセスを判定した場合は降順モードを設定するアクセス種別判定部を設け、
前記キャッシュ制御部は、前記昇順モードではバッファ区画の先頭位置から書込データを昇順に展開し、前記降順モードではバッファ区画の末尾位置から書込データを降順に展開することを特徴とする記憶装置。
【請求項１４】
請求項１３記載の記憶装置に於いて、前記アクセス種別判定部は、
昇順モードの状態で降順のシーケンシャルアクセスの連続回数を計数し、規定回数未満では昇順モードを維持して書込データをバッファ区画に昇順展開させ、
規定回数に達したら降順モードに切り替えてバッファ区画に降順展開させ、
降順モードの状態で昇順のシーケンシャルアクセスの連続回数を計数し、規定回数未満では降順モードを維持して書込データをバッファ区画に降順展開させ、規定回数に達したら昇順モードに切り替えてバッファ区画に昇順展開させることを特徴とする記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストの書込アクセスに対し書込データをデータバッファ領域に展開して正常終了を通知し、その後にデータバッファ領域の書込データを記憶媒体に書戻すキャッシュ機能を備えた記憶装置に関し、特に、ホストからのランダムアクセスとシーケンシャルアクセスに応じて動的にバッファ構成を変更する記憶装置に関する。
【０００２】
【従来の技術】
光ディスクは、近年急速に発展するマルチメディアの中核となる記憶媒体として注目されており、例えば３．５インチのＭＯカートリッジを見ると、１２８ＭＢ、２３０ＭＢ、５４０ＭＢ、６４０ＭＢ等のＭＯカートリッジが提供されている。このようなＭＯカートリッジを使用する光ディスクドライブは、パーソナルコンピュータの外部記憶装置として提供されている。
【０００３】
しかし、光ディスクドライブは、読出し動作に比べて書込み動作に時間がかかる装置として知られている。即ち、光ディスクの読出し動作は、光学ヘッドのレーザビームを目的トラックにシークしてオントラックし、オントラック状態での媒体１回転の間に目的とするデータをリードしてホストに応答できる。これに対し光ディスクの書込動作は、光学ヘッドのレーザビームを目的トラックにシークしてオントラックした状態で、イレーズ、書込み、ベリファイリードという媒体３回転分の動作が必要であり、書込動作に時間がかかる。またイレーズと書込みが同時にできるダイレクト・オーバライト対応の光ディスクもあるが、ベリファイリードを含めて媒体２回転の書込時間が必要となる。
【０００４】
このように読込み動作に比べて書込み動作が遅い記憶装置においては、ホストから書込アクセスを受けた際に、書込データをメモリのデータバッファ領域に展開してホストに正常終了を通知してホストから見て書込動作を終了させ、その後にデータバッファ領域に展開した書込データを記憶媒体に書込むキャッシュ制御機能が設けられている。
【０００５】
このような従来のキャッシュ制御機能にあっては、例えばホストからの書込アクセスとして、書込アドレスが連続するシーケンシャルアクセスの頻度が高いことが予想される場合、記憶装置のセットアップ処理により、メモリのデータバッファ領域を単一の区画とするバッファ構成を設定する。
このような単一区画のバッファ構成であれば、データバッファ領域分のホストのシーケンシャルアクセスにより連続する書込データをバッファに展開した後に一括して媒体に書込むことができ、データバッファ領域に展開した書込データを媒体に戻す際のシーク回数を少なくし、全体的なアクセス性能を高めることができる。
【０００６】
またホストからの書込アクセスとして、書込アドレスが不連続なランダムアクセスの頻度が高いことが予想される場合には、記憶装置のセットアップ処理により、メモリのデータバッファ領域をなるべく多くの区画に分割するバッファ構成を設定する。
このような区画数の多いバッファ構成であれば、ホストのランダムアクセスに対し効率良く空き区画が準備でき、バッファ区画の空き待ちをすることなく、書込データを空き区画に展開してホストから見た書込アクセスを速やかに正常終了できる。
【０００７】
【発明が解決しようとする課題】
しかしながら、近年にあっては、１台の記憶装置に対し複数のホストが接続され、記憶装置を共有資源として使用する場合があり、ホストによってシーケンシャルアクセスとランダムアクセスの頻度は異なる。これに対し記憶装置のバッファ構成は、シーケンシャル対応かランダム対応かのいずれかに固定的に決めているため、バッファ構成に適合してないホストからの書込アクセスが多発すると、データバッファ領域に媒体に対する書込み待ちの書込データが滞留し、ホストの書込アクセスがバッファ空き待ちで遅くなり、全体としてアクセス性能が低下する問題がある。
【０００８】
そこでシーケンシャルアクセスとランダムアクセスを両立させるため、両者の中間をとったデータバッファ領域の区画数に設定することも考えられるが、この場合には、シーケンシャルアクセスとランダムアクセスの両方に対し効率が下がり、全体的なアクセス性能の向上にはならない。
本発明は、ホストからのランダムアクセスとシーケンシャルアクセスの両方に対しバッファ構成を最適化してアクセス効率を高める記憶装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
図１は本発明の原理説明図である。本発明の記憶装置は、キャッシュ制御部２８、アクセス種別判定部３８、及びバッファ構成制御部４０を備える。
キャッシュ制御部２８は、上位装置１０から書込アクセスを受けた際に、書込データをメモリのデータバッファ領域３２に展開して上位装置１０に正常終了を通知し、その後にデータバッファ領域３２に展開した書込データを記憶媒体に書込む。アクセス種別判定部３８は、上位装置１０の書込アクセスについて、書込アドレスが非連続となるランダムアクセスか、書込アドレスが連続するシーケンシャルアクセスかを判別する。
【００１０】
バッファ構成制御部４０は、ランダムアクセスに適したバッファ展開と媒体書込みを可能とする図１（Ｂ）のランダム対応バッファ構成またはシーケンシャル書込アクセスに適したバッファ展開と媒体書込みを可能とする図１（Ｃ）のシーケンシャル対応バッファ構成を設定し、ランダム対応バッファ構成の設定状態でシーケンシャルアクセスを判別した場合にシーケンシャル対応バッファ構成に変更し、またシーケンシャル対応バッファ構成を設定している状態でランダムアクセスを判別した場合にランダム対応バッファ構成に変更する。
【００１１】
このため本発明の記憶装置は、ホストからの書込アクセスがシーケンシャルアクセスかランダムアクセスかを解析し、アクセス種別に応じて最適な区画数のデータバッファ構成を選択してキャッシュ動作を実施することにより、ホストの書込アクセスに対するバッファ展開と媒体書込みを最適化して効率を向上する。
例えば、ホストがシーケンシャルアクセスを行った場合には、データバッファ領域の区画数を図１（Ｃ）のように少なくして動作させることで、媒体に対する１回分の書込みデータ量を増やして、媒体への書込み回数を低減する。逆に、ホストがランダムアクセスを行った場合には、データバッファ領域の区画数を図１（Ｂ）のように多くすることで、バッファ展開を効率よく行い、ランダムアクセスであっても、区画ごとに連続アドレスの書込みデータを展開することで、媒体に対する書込み回数を低減する。
【００１２】
バッファ構成制御部４０は、図１（Ｂ）のランダム対応バッファ構成を設定している状態で、シーケンシャルアクセスによる書込データ量が所定値に達した時に、データバッファ領域３２をランダム対応バッファ構成から図１（Ｃ）のシーケンシャル対応バッファ構成に変更する。例えば、バッファ構成制御部４０は、シーケンシャル書込アクセスによるデータバッファ領域３２の容量に達した時に、データバッファ領域をランダム対応バッファ構成からシーケンシャル対応バッファ構成に変更する。
【００１３】
またバッファ構成制御部４０は、図１（Ｃ）のシーケンシャル対応バッファ構成を設定している状態で、ランダム書込アクセスの回数が規定回数に達した時に、データバッファ領域をシーケンシャル対応バッファ構成から図１（Ｂ）のランダム対応バッファ構成に変更する。例えば、バッファ構成制御部４０は、ランダム書込アクセスの回数が３回に達した時に、データバッファ領域をシーケンシャル対応バッファ構成から前記ランダム対応バッファ構成に変更する。
【００１４】
このようにバッファ構成のシーケンシャル対応とランダム対応の変更条件に制約を設けることで、ホストからシーケンシャルアクセスが続き、データバッファの区画を少なくした途端にランダムアクセスが続いて元の区画の多いデータバッファに戻すといった書込み効果が期待できないようなバッファ区画数の変更をなくし、ホストからランダムアクセスの継続とシーケンシャルアクセスの継続を予測したバッファ構成の変更を行う。
【００１５】
アクセス種別判定部３８は、ランダムアクセス又はシーケンシャルアクセスを判別に加え、更に、前回アドレスに対し今回アドレスが増加している昇順アクセスを判別した場合は昇順モードを設定し、前回アドレスに対し今回アドレスが減少している降順アクセスを判定した場合は降順モードを設定する。この場合、キャッシュ制御部２８は、昇順モードでバッファ区画の先頭位置から書込データを昇順に展開し、降順モードでバッファ区画の末尾位置から書込データを降順に展開する。
【００１６】
アクセス種別判定部３８は、前回の書込アクセスの末尾アドレスに１を加算した値が今回の書込アクセスの先頭アドレスに一致している場合、即ち、
（前回の末尾アドレス）＋１＝（今回の先頭アドレス）
の場合に、昇順のシーケンシャルアクセスと判定する。
またアクセス種別判定部３８は、前回の書込アクセスの先頭アドレスと今回の書込アクセスの末尾アドレスに１を加算した値が一致している場合、即ち、
（前回の先頭アドレス）＝（今回の末尾アドレス）＋１
の場合に、降順のシーケンシャルアクセスと判定する。
【００１７】
アクセス種別判定部は、ランダムアクセスでの昇順モードと降順モードの切替えを次のように行う。
▲１▼現在昇順モードで書込アクセスが降順のランダムアクセスを判定した場合、降順モードに変更して書込データをバッファ区画に降順展開させる。
▲２▼現在降順モードで書込アクセスが昇順のランダムアクセスを判定した場合、昇順モードに切り替えて書込データをバッファ区画に昇順展開させる。
【００１８】
またアクセス種別判定部は、シーケンシャルアクセスでの昇順モードと降順モードの切替えを次のように行う。
▲１▼現在昇順モードで書込アクセスが降順のシーケンシャルアクセスを判定した場合、降順のシーケンシャルアクセスの連続回数を計数し、規定回数未満では昇順モードを維持して書込データをバッファ区画に昇順展開させ、規定回数に達したら降順モードに切り替えてバッファ区画に降順展開させる。
【００１９】
▲２▼現在降順モードで書込アクセスが昇順のシーケンシャルアクセスを判定した場合、昇順のシーケンシャルアクセスの連続回数を計数し、規定回数未満では降順モードを維持して書込データをバッファ区画に降順展開させ、規定回数に達したら昇順モードに切り替えてバッファ区画に昇順展開させる。
このように書込アクセスの昇順と降順を判別してバッファ展開を昇順展開又は降順展開することで、書込データのバッファ展開と媒体書込みを効率良くできる。  バッファ構成制御部４０は、シーケンシャル対応バッファ構成としてデータバッファ領域を例えば図１（Ｃ）のように２区画Ｃ１，Ｃ２に分割し、キャッシュ制御部２８は、上位装置１０のシーケンシャルアクセスに対し一方の区画Ｃ１に新たな書込データを展開中に他方の区画Ｃ２から展開済みの書込データを一括して媒体に書込む。
【００２０】
バッファ構成制御部４０は、ランダム対応バッファ構成としてデータバッファ領域を２を超える複数区画、例えば図１（Ｂ）のように６区画Ｂ１〜Ｂ６に分割し、キャッシュ制御部２８は、上位装置のランダムアクセスに対し、分割区画のいずれかにアドレスが連続する書込データが展開済みで且つ連続領域に空きがある場合、展開済みデータに続けて新たな書込データを展開し、分割区画のいずれかにアドレスが連続する書込データが存在しないか、存在しても連続領域に空きがない場合、いずれかの区画の媒体書込み終了による空きを待って、新たな書込データを書込み終了区画に展開する。
【００２１】
キャッシュ制御部２８は、データバッファ領域に展開した書込データの媒体への書込みをＬＲＵアルゴリズムで管理する。また記憶媒体は光学的に情報を記録再生する光記憶媒体である。
更に、本発明は、バッファ構成を固定した状態で、書込アクスセの昇順と降順を判定してバッファ展開を切替え変更する記憶装置を提供する。
【００２２】
この記憶装置は、ランダム書込アクセスに適したバッファ展開と媒体書込みを可能とするランダム対応バッファ構成を固定設定したメモリ上のデータバッファ領域と、上位装置からアクセスを受けた際に、書込データをメモリのデータバッファ領域に展開して上位装置に正常終了を通知し、その後にデータバッファ領域に展開した書込データを記憶媒体に書込むキャッシュ制御部とを備える。
【００２３】
このような記憶装置につき本発明は、前回アドレスに対し今回アドレスが増加している昇順アクセスを判定した場合は昇順モードを設定し、前回アドレスに対し今回アドレスが減少している降順アクセスを判定した場合は降順モードを設定するアクセス種別判定部を設け、キャッシュ制御部は、昇順モードではバッファ区画の先頭位置から書込データを昇順に展開し、前記降順モードではバッファ区画の末尾領域から書込データを降順に展開することを特徴とする。
【００２４】
また本発明は、シーケンシャル書込アクセスに適したバッファ展開と媒体書込みを可能とするシーケンシャル対応バッファ構成を固定設定したメモリ上のデータバッファ領域と、上位装置からアクセスを受けた際に、書込データをメモリのデータバッファ領域に展開して上位装置に正常終了を通知し、その後に前記データバッファ領域に展開した書込データを記憶媒体に書込むキャッシュ制御部を備えた記憶装置について、同様に、前回アドレスに対し今回アドレスが増加している昇順アクセスを判定した場合は昇順モードを設定し、前回アドレスに対し今回アドレスが減少している降順アクセスを判定した場合は降順モードを設定するアクセス種別判定部を設け、キャッシュ制御部は、昇順モードではバッファ区画の先頭位置から書込データを昇順に展開し、降順モードではバッファ区画の末尾領域から書込データを降順に展開することを特徴とする。
【００２５】
この場合、アクセス種別判定部は、昇順モードの状態で降順のシーケンシャルアクセスの連続回数を計数し、規定回数、例えば３回未満では昇順モードを維持して書込データをバッファ区画に昇順展開させ、規定回数に達したら降順モードに切り替えてバッファ区画に降順展開させる。
また降順モードの状態で昇順のシーケンシャルアクセスの連続回数を計数し、規定回数、例えば３回未満では降順モードを維持して書込データをバッファ区画に降順展開させ、規定回数に達したら昇順モードに切り替えてバッファ区画に昇順展開させる。
【００２６】
【発明の実施の形態】
＜目  次＞
１．装置構成と機能
２．アクセス種別とバッファ展開
３．ランダム書込処理
４．シーケンシャル書込処理
５．昇順シーケンシャルから昇順ランダムへの変更
６．昇順ランダムから昇順シーケンシャルへの変更
７．昇順ランダムから降順シーケンシャルへの変更
８．昇順シーケンシャルから降順ランダムへの変更
１．装置構成
図２は、本発明の記憶装置を用いたコンピュータシステムの一例である。図２において、パーソナルコンピュータを用いたホスト１０−１は、キーボード１２とマウス１４を備え、ＳＣＳＩ等のバス１６に外部入出力機器としてハードディスクドライブ（ＨＤドライブ）１８、光磁気ディスクドライブ（ＭＯドライブ）２０、ＣＤ−ＲＯＭドライブ２２及びプリンタ２４を接続している。
【００２７】
更に、ホスト１０−１のバス１６には、同じくパーソナルコンピュータを用いたホスト１０−２，１０−３が接続され、ホスト１０−１の入出力機器を共用している。
ここで本発明の記憶装置は例えばＭＯドライブ２０を対象としており、ホスト１０−１〜１０−３による書込アクセス及び読出アクセスを受け、メモリに確保したデータバッファ領域を使用したキャッシュ制御を行っている。
【００２８】
このＭＯドライブ２０のキャッシュ制御機能は、媒体３回転又は媒体２回転の動作時間を必要とする書込アクセスを効率良く終了させるためであり、ホストからの書込アクセスがあると、その書込データをデータバッファ領域に展開するだけで、ホストに対し書込アクセスを正常終了として通知する。
ＭＯドライブ２０のデータバッファ領域に展開された書込データは、その後、ＭＯ媒体に書き込むライトバック動作が行われる。以下の説明にあっては、書込データをデータバッファ領域に書き込むことを「書込データの展開」といい、またデータバッファに展開した書込データを媒体に書き込むことを「媒体書込み（ライトバック）」という。
【００２９】
図３は図２のＭＯドライブ２０のブロック図であり、コントロールユニット１１０とエンクロージャ１１１で構成される。コントロールユニット１１０には光ディスクドライブの全体的な制御を行うＭＰＵ１１２、上位装置との間でコマンド及びデータのやり取りを行うインタフェース１２２、光ディスク媒体に対するデータのリード・ライトに必要な処理を行う光ディスクコントローラ（ＯＤＣ）１１４、及びＤＳＰ１２５が設けられる。
【００３０】
ＭＰＵ１１２に対しては、制御ロジック１１５、フラッシュＲＯＭ１１６、Ｓ−ＲＡＭ１１７及びＤ−ＲＡＭ１１８が設けられる。Ｄ−ＲＡＭ１１８はバッファメモリとして機能し、本発明のキャッシュ制御で使用するデータバッファ領域３２を確保している。
光ディスクコントローラ１１４は、ＮＲＺライトデータからセクタ単位にＥＣＣコードを生成した後に例えば１−７ＲＬＬ符号に変換する。リードアクセス時には、セクタ単位のリードデータを１−７ＲＬＬ逆変換し、次にＥＣＣコードでエラー検出訂正してＮＲＺリードデータを上位装置に転送させる。
【００３１】
光ディスクコントローラ１１４に対してはライトＬＳＩ回路１２０が設けられる。ライトＬＳＩ回路１２０からのレーザダイオード制御出力は、エンクロージャ１１１側の光学ユニットに設けたレーザダイオードユニット１３０に与えられている。
通常のＭＯカートリッジ媒体の記録動作は、イレーズ、ライト及びベリファイリードの媒体３回転の処理時間を必要とする。またダイレクト・オーバーライト対応のＭＯカートリッジ媒体の記録動作は、ライト及びベリファイリードの媒体２回転の処理時間を必要とする。
【００３２】
この媒体に対する記録動作は、ＭＰＵ１１２のキャッシュ制御機能によりＤ−ＲＡＭ１１８に確保したデータバッファ領域３２に、ホストからの書込アクセスに対し展開している書込データの媒体書込み処理が中心となる。
光ディスクコントローラ１１４に対するリード系統としては、リードＬＳＩ回路１２４が設けられ、リード復調回路と周波数シンセサイザが内蔵される。
【００３３】
リードＬＳＩ回路１２４に対しては、エンクロージャ１１１に設けたＩＤ／ＭＯ用ディテクタ１３２によるレーザダイオードからのビームの戻り光の受光信号が、ヘッドアンプ１３４を介してＩＤ信号及びＭＯ信号として入力されている。
リードＬＳＩ回路１２４のリード復調回路には、ＡＧＣ回路、フィルタ、セクタマーク検出回路等の回路機能が設けられ、入力したＩＤ信号及びＭＯ信号よりリードクロックとリードデータを作成し、ＰＰＭデータまたはＰＷＭデータを元のＮＲＺデータに復調している。
【００３４】
リードＬＳＩ回路１２４で復調されたリードデータは、光ディスクコントローラ１１４のリード系に与えられ、ＮＲＺデータストリームとして上位装置に転送される。
ＭＰＵ１１２に対しては、ＤＳＰ１２５を経由してエンクロージャ１１１側に設けた温度センサ１３６の検出信号が与えられている。ＭＰＵ１１２は、温度センサ１３６で検出した装置内ユニットの環境温度に基づき、レーザダイオードのリード、ライトーイレーズの各発光パワーを最適値に制御する。
【００３５】
ＭＰＵ１１２は、ＤＳＰ１２５を経由してドライバ１３８によりエンクロージャ１１１側に設けたスピンドルモータ１４０を制御する。またＭＰＵ１１２は、ＭＯカートリッジの排出時にＤＳＰ１２５を経由してドライバ１４２を制御し、イジェクトモータ１４４を駆動してＭＯカートリッジを排出する。
ＤＳＰ１２５は、目的トラックにシークしてオントラックするためのシーク制御及びトラック追従制御を行う。
【００３６】
ＤＳＰ１２６のサーボ機能を実現するため、エンクロージャ１１１側の光学ユニットに媒体からのビーム戻り光を受光するＦＥＳ用ディテクタ１４５を設け、ＦＥＳ検出回路（フォーカスエラー信号検出回路）１４６が、ＦＥＳ用ディテクタ１４５の受光出力からフォーカスエラー信号Ｅ１を作成してＤＳＰ１２５に入力している。
【００３７】
またエンクロージャ１１１側の光学ユニットに媒体からのビーム戻り光を受光するＴＥＳ用ディテクタ１４７を設け、ＴＥＳ検出回路（トラッキングエラー信号検出回路）１４８がＴＥＳ用ディテクタ１４７の受光出力からトラッキングエラー信号Ｅ２を作成し、ＤＳＰ１２５に入力している。
トラッキングエラー信号Ｅ２はＴＺＣ検出回路（トラックゼロクロス検出回路）１５０に入力され、トラックゼロクロスパルスＥ３を作成してＤＳＰ１２５に入力している。更にＤＳＰ１２５は、媒体上のビームスポットの位置を制御するため、ドライバ１５４，１５８を介してフォーカスアクチュエータ１５２及びトラックアクチュエータ１５６を制御している。
【００３８】
光ディスクドライブにおけるエンクロージャ１１１の概略は図４のようになる。ハウジング１６０内にはスピンドルモータ１４０が設けられ、スピンドルモータ１４０の回転軸のハブに対しインレットドア１６２側よりＭＯカートリッジ１６４を挿入することで、内部のＭＯ媒体１６６がスピンドルモータ１４０の回転軸のハブに装着され、ローディングされる。
【００３９】
ローディングされたＭＯカートリッジ１６４のＭＯ媒体１６６の下側には、ＶＣＭ等を用いたトラックアクチュエータにより媒体のトラックを横切る方向に移動自在なキャリッジ１６８が設けられている。キャリッジ１６８上には対物レンズ１７０が搭載され、固定光学系１７２に設けているレーザダイオードからのビームを立上げミラー１７４を介して入射し、ＭＯ媒体１６６の媒体面にビームスポットを結像している。
【００４０】
対物レンズ１７０は図３のエンクロージャ１１１に示したフォーカスアクチュエータ１５２により光軸方向に移動制御され、またトラックアクチュエータ１５６によるキャリッジ１６８リニア駆動で媒体のトラックを横切る半径方向に移動することができる。尚、トラックアクチュエータ１５６として、キャリッジ１６８のリニア駆動に加え、キャリッジ１６８上で対物レンズ１７０の光軸を制御するレンズアクチュエータを付加したものもある。
２．アクセス種別とバッファ展開
図５は、図３のＭＯドライブ２０のコントロールユニット１１０により実現される本発明のキャッシュ制御の機能ブロック図である。図５において、ＭＯドライブ２０には、ホストアダプタ２６、キャッシュ制御部２８、キャッシュ管理テーブル３０、データバッファ領域３２、デバイスアダプタ３４、アクセス種別判定部３８、バッファ構成制御部４０及び記憶媒体３６が設けられる。
【００４１】
ホストアダプタ２６に対してはＳＣＳＩ等のバス１６を介して、例えば３台のホスト１０−１〜１０−３が接続される。ホストアダプタ２６はホスト１０−１〜１０−３からの書込コマンドまたは読出コマンドを受領し、コマンド内容を解析してキャッシュ制御部２８に引き渡す。ここでホストからの書込コマンドは、コマンドパラメータとして書込アドレス、書込データ量を少なくとも含む。
【００４２】
具体的には、ホスト１０−１〜１０−３側にあってはＭＯドライブ２０の記憶領域を論理ブロックアドレスＬＢＡのアドレス空間として管理しており、したがって書込コマンドは書込開始アドレスを示す論理ブロックアドレスＬＢＡとデータ長を示すブロック数ＢＣを含む。
キャッシュ制御部２８は、ホストアダプタ２６から書込アクセスの通知を受けると、データバッファ領域３２に書込データを展開し、ホストアダプタ２６に書込終了を通知する。これを受けてホストアダプタ２６は、ホスト側に対し書込コマンドの正常終了を通知する。
【００４３】
書込データをデータバッファ領域３２に格納する際にキャッシュ制御部２８は、キャッシュ管理テーブル３０に書込データの展開位置を示す管理情報を登録する。データバッファ領域３２に展開された書込データは、キャッシュ制御部２８のＬＲＵアルゴリズムに従ってデバイスアダプタ３４を経由してＭＯ媒体３６に書き戻される。この媒体書込みが済むと、対応するキャッシュ管理テーブル３０の内容はクリアする。
【００４４】
一方、ホストアダプタ２６でホスト側から読出コマンドを受領した際には、キャッシュ制御部２８は読出アクセスの通知を受けてキャッシュ管理テーブル３０を参照し、キャッシュヒットとなればデータバッファ領域３２の対応するデータを読み出してホストに転送する。キャッシュ管理テーブル３０の参照でミスヒットとなった場合には、デバイスアダプタ３４を介してＭＯ媒体３６から対象データを読み出し、データバッファ領域３２を経由してホストアダプタ２６からホスト側にリードデータを応答する。
【００４５】
ここでＭＯドライブ２０に設けているホストアダプタ２６の機能は、図３のコントロールユニット１１０に設けたホストインタフェース１２２により実現され、またデバイスアダプタ３４の機能は図３のコントロールユニット１１０に設けた光ディスクコントローラ１１４により実現される。
またキャッシュ制御部２８はコントロールユニット１１０のＭＰＵ１１２及び制御ロジック１１５により実現され、キャッシュ管理テーブル３０は例えばＳ−ＲＡＭ１１７に展開される。またデータバッファ領域３２はコントロールユニット１１０に設けたＤ−ＲＡＭ１１８の中に確保される。
【００４６】
このようなＭＯドライブ２０のキャッシュ制御機能に加えて本発明の記憶装置にあっては、更にアクセス種別判定部３８とバッファ構成制御部４０を設けている。アクセス種別判定部３８は、ホストからの書込アクセスについて、書込アドレスが前回の書込アクセスと不連続なランダムアクセスか、書込アクセスが連続するシーケンシャルアクセスかを判別する。
【００４７】
またアクセス種別判定部３８は、ランダムアクセス及びシーケンシャルアクセスの両方について、書込アドレスが増加する昇順アクセスか、逆に書込アドレスが減少する降順アクセスかを判別する。このため、アクセス種別判定部３８で判別されるアクセス種別は次の４種類となる。
▲１▼昇順ランダムアクセス
▲２▼降順ランダムアクセス
▲３▼昇順シーケンシャルアクセス
▲４▼降順シーケンシャルアクセス
バッファ構成制御部４０は、アクセス種別判定部３８の判別結果に基づいて、データバッファ領域３２のバッファ構成を動的に変更制御する。
【００４８】
図６（Ａ）は、データバッファ領域３２の具体例であり、図３のコントロールユニット１１０に設けたＤ−ＲＡＭ１１８の中に、全容量として論理ブロック数を１６進で例えば２４０ｈの領域を確保している。この図６（Ａ）のデータバッファ領域３２について、バッファ構成制御部４０は、図６（Ｂ）のランダムアクセス対応のバッファ構成と図６（Ｃ）のシーケンシャルアクセス対応のバッファ構成とを動的に切り替える。
【００４９】
図６（Ｂ）のランダムアクセス対応のバッファ構成は、例えば全容量２４０ｈのデータバッファ領域３２を６つのバッファ区画４２−１〜４２−６に分割している。この場合、バッファ区画４２−１〜４２−６の各容量は６０ｈとなる。また、ランダムアクセス対応の６分割されたバッファ区画４２−１〜４２−６には区画番号Ｂ１〜Ｂ６が説明の都合上割り当てられている。
【００５０】
図６（Ｃ）のシーケンシャルアクセス対応のバッファ構成にあっては、図６（Ａ）の全容量２４０ｈのデータバッファ領域３２を２分割してバッファ区画４４−１，４４−２としている。この場合、バッファ区画４４−１，４４−２は容量１２０ｈとなる。
尚、データバッファ領域３２、ランダムアクセス対応のバッファ区画４２−１〜４２−６、更にシーケンシャルアクセス対応のバッファ区画４４−１，４４−２の容量を１０進ブロック数で表すと、５７６ブロック、９６ブロック、２８８ブロックとなる。
【００５１】
図５のバッファ構成制御部４０は、ＭＯドライブ２０のセットアップに伴う初期化時に、例えば図６（Ｂ）のようなランダムアクセス対応のバッファ構成に従った６つのバッファ区画４２−１〜４２−６にバッファ分割している。この図６（Ｂ）のランダムアクセス対応のバッファ構成の状態で、ホストからの書込アクセスについてアクセス種別判定部３８でシーケンシャルアクセスが判別され、予め定めたデータ量のシーケンシャルアクセス例えばデータバッファ領域３２の全容量２４０ｈ分のシーケンシャルアクセスを判別すると、バッファ構成制御部４０はそれまでの図６（Ｂ）のランダムアクセス対応のバッファ構成から図６（Ｃ）のシーケンシャルアクセス対応のバッファ構成にバッファ構成を変更する。
【００５２】
図６（Ｃ）のシーケンシャルアクセス対応のバッファ構成に変更した後に、アクセス種別判定部３８でランダムアクセスを判別し、ランダムアクセスの回数が規定回数例えば３回続いたときに図６（Ｂ）のランダムアクセス対応のバッファ構成に変更する。
このようなバッファ構成制御部４０によるホストアクセスに対応した動的なデータバッファ領域３２のバッファ構成の変更は、その都度、キャッシュ制御部２８に通知され、キャッシュ制御部２８は変更された図６（Ｂ）または図６（Ｃ）のバッファ構成に対応したバッファ展開と展開済みの書込データのＭＯ媒体３６への書込みを行う。
【００５３】
またキャッシュ制御部２８による書込データのバッファ展開は、アクセス種別判定部３８で判定されたそのときの書込アクセスの昇順モードと降順モードに応じて展開される。アクセス種別判定部３８で書込アクセスの昇順モードの判別設定が行われると、キャッシュ制御部２８は書込データをデータバッファ領域３２の先頭アドレスから昇順に展開する。これに対しアクセス種別判定部３８で書込アクセスの降順モードが判別設定された場合には、データバッファ領域３２の末尾アドレスから降順に書込データを展開する。
【００５４】
例えば図６（Ｂ）のランダムアクセス対応の６分割されたバッファ区画４２−１〜４２−６の場合には、例えば全区画が空きであったとすると、先頭のバッファ区画４２−１の先頭アドレスから順番に書込データを展開する。これに対し降順モードであった場合には、最後のバッファ区画４２−６の末尾アドレスから逆の順番で書込データを展開する。
【００５５】
図６（Ｃ）のシーケンシャルアクセス対応のバッファ区画４４−１，４４−２についても、昇順モードであれば先頭側のバッファ区画４４−１の先頭アドレスから昇順に書込データを展開し、また降順モードであれば末尾側のバッファ区画４４−２の末尾アドレスから逆の降順で書込データを展開する。
図７は図５のＭＯドライブ２０におけるライトアクセスに対する制御処理の全体的なフローチャートである。図７において、ステップＳ１でホストからのアクセスを受領すると、ステップＳ２でライトアクセスか否かチェックする。ライトアクセスであればステップＳ３に進み、アクセス種別判定部３８によって書込パターンがランダムかシーケンシャルかを判定する。
【００５６】
続いてステップＳ４で、現在のデータバッファ構成はランダム対応か否かチェックし、ランダム対応であればステップＳ５のランダム書込処理を実行する。ランダム対応でなければシーケンシャル対応であることから、ステップＳ６に進み、シーケンシャル書込処理を実行する。このような書込処理をステップＳ７で終了指示があるまで繰り返す。
【００５７】
またステップＳ１のアクセスがリードアクセスであった場合には、ステップＳ２からステップＳ８に進み、リード処理を実行することになる。
図８は、図７のステップＳ３における書込パターンがランダムかシーケンシャルかを判定するための書込パターン判定処理、即ち図５のアクセス種別判定部３８の処理機能のフローチャートである。
【００５８】
図８において、まずステップＳ１で書込アドレスとして受領した今回の先頭論理ブロックアドレスＬＢＡが前回の書込アクセスにおける前回末尾論理ブロックアドレスＬＢＡに１を加えた値に等しいか否かチェックする。このアドレス関係が成立するとステップＳ３に進み、昇順シーケンシャルアクセスであると判定し、昇順モードとシーケンシャル書込モードを設定する。
【００５９】
ステップＳ１のアドレス条件が成立しなかった場合には、ステップＳ２に進み、前回の先頭論理ブロックアドレスＬＢＡが今回の末尾論理ブロックアドレスＬＢＡに１を加えた値に等しいか否かチェックする。このアドレス関係が成立するとステップＳ４に進み、降順シーケンシャルアクセスと判定し、降順モードとシーケンシャル書込モードを設定する。
【００６０】
更にステップＳ１，Ｓ２の２つの条件が成立しなかった場合には、ステップＳ５に進み、前回と今回のアドレス増加、即ち論理ブロックアドリレスＬＢＡの増加の有無をチェックする。アドレス増加であればステップＳ６に進み、昇順ランダムアクセスと判定し、昇順モードとランダム書込モードを設定する。ステップＳ５でアドレスが減少していれば、ステップＳ７に進み、降順ランダムアクセスと判定し、降順モードとランダム書込モードを設定する。
３．ランダム書込処理
図９は、図８の書込パターン判定処理において、ランダム書込モードが判別された場合の図７のステップＳ５のランダム書込処理の詳細である。このランダム書込処理においては、データバッファ容量に等しいシーケンシャルアクセスがあるとバッファ構成をランダム対応構成からシーケンシャル対応構成に変更することを特徴とする。
【００６１】
図９において、まずステップＳ１で現在のシーケンシャルアクセスによる書込ブロック数がデータバッファ容量、例えば２４０ｈに達したか否かチェックしている。ステップＳ１の条件が成立しなければ、ステップＳ２で書込アクセスはシーケンシャルアクセスか否かチェックする。もしシーケンシャルアクセスであればステップＳ３に進み、書込アクセスで指示されたブロック数をカウントアップする。シーケンシャルアクセスでなければ、ステップＳ３でブロック数のカウンタをクリアする。
【００６２】
続いてステップＳ５に進み、書込データがバッファに展開可能か否かチェックする。即ち図６（Ｂ）のランダムアクセス対応のバッファ区画４２−１〜４２−６に空き領域がなく且つ既に展開済みの書込データが不連続の場合、バッファに展開できないことから、ステップＳ６でいずれかのバッファ区画の媒体書込みに伴うステップＳ７での書込み終了を待つ。
【００６３】
バッファ区画の媒体書込みが終了すればバッファ展開可能となる。ステップＳ５でバッファに展開可能であった場合、あるいはステップＳ７で媒体書込み終了によりバッファ展開可能となった場合には、ステップＳ８に進み、書込アクセスが昇順モードか否かチェックする。昇順モードであればステップＳ９に進み、書込データを対応するバッファ区画に昇順に展開する。
【００６４】
このバッファ展開は、データバッファ領域に対応するデータ転送指示、データバッファからの媒体書込み指示、更にホストに対する書込アクセスの正常終了報告等を伴う。一方、ステップＳ８で降順モードであった場合には、ステップＳ１０に進み、対応するバッファ区画に書込データを降順に展開する。この降順のバッファ展開についても同様に、データバッファ領域に対するデータ転送指示、展開済みデータのＭＯ媒体の書込み指示、更にホストに対する書込アクセスの正常終了報告等を伴う。
【００６５】
このステップＳ８〜Ｓ１０における昇順モードと降順モードに応じた書込データのバッファ展開を説明すると、図１０のようになる。図１０（Ａ）は書込データの昇順展開であり、例えば６つの書込コマンド＃１〜＃６の昇順ランダムアクセスが続いたときのバッファ展開である。この昇順展開においては、先頭のバッファ区画Ｂ１〜Ｂ６の順に６つの昇順ランダムアクセスとなる書込コマンド＃１〜＃６の書込データが展開される。
【００６６】
図１０（Ｂ）は書込データの降順展開であり、例えば書込アドレスが順番に減少する降順ランダムアクセスの６つの書込コマンド＃１〜＃６が続いた場合である。この書込データの降順展開においては、末尾側のバッファ区画Ｂ６の末尾位置から順番に降順ランダムアクセスとなる書込コマンド＃１〜＃６の書込データを展開している。
【００６７】
更に図１０（Ｃ）は、昇順モードと降順モードが混在したバッファ展開の例である。即ち、この例では書込コマンド＃１から＃２が降順、書込コマンド＃２から＃３が同じく降順、書込コマンド＃３から＃４が昇順、書込コマンド＃４から＃５が降順、更に書込コマンド＃５から＃６が昇順の場合である。
このように昇順ランダムアクセスと降順ランダムアクセスが混在する場合には、降順モードの状態でそのときの書込アクセスが昇順であれば昇順モードに変更して昇順展開とし、逆に昇順モードの状態でそのときの書込アクセスが降順であれば降順モードに変更して降順展開を行う。即ち本発明においては、ランダムアクセスのアドレスが増加する昇順とアドレスが減少する降順の各々に対応した図１０（Ｃ）のような昇順展開と降順展開がダイナミックに行われる。
【００６８】
ここでデータバッファ領域３２を割当てた図２のＤ−ＲＡＭ１１８は、例えば図６（Ｂ）のランダムアクセス対応のバッファ区画Ｂ１〜Ｂ６の場合、データ書込みはバッファ区画の小さいアドレスから大きいアドレスとなる順番であり、また媒体書込のためのデータ読出しも小さいアドレスから大きいアドレスとなる順番であり、これはバッファ昇順展開に対応している。
【００６９】
これに対しバッファ降順展開としては、Ｄ−ＲＡＭ１１８の小さいアドレスから大きいアドレスとなる書込みと読出しのアドレス順序は固定されていることから、図２の制御ロジック１１５において、降順モードを設定した際には、ホストからの降順の論理ブロックアドレスを昇順の論理ブロックアドレスに変換してＤ−ＲＡＭ１１８に書込む。また媒体書込みのためにＤ−ＲＡＭ１１８からの読出した時には、アドレス順に読み出したデータを元の降順アドレスのデータに変換し、更に昇順アドレスの順に並び替えて媒体に書込むようにする。
【００７０】
再び図９を参照するに、ステップＳ１〜Ｓ１０の処理を通じて、ステップＳ７におけるシーケンシャルアクセスに伴う書込アクセスのブロック数のカウンタ値がデータバッファ容量２４０ｈに達すると、これがステップＳ１で判別され、ステップＳ１１〜Ｓ１３におけるバッファ構成のランダム対応構成からシーケンシャル対応構成への変更処理に入る。
【００７１】
このバッファ構成の変更においては、まずステップＳ１で図６（Ｂ）の６分割したバッファ区画４２−１〜４２−６の状態で展開している書込データを各バッファ区画４２−１〜４２−６単位でＭＯ媒体に書込み、ステップＳ１２で全ての展開データの媒体書込み終了を判別した後に、ステップＳ１３でバッファ構成を図６（Ｂ）の６分割したバッファ区画４２−１〜４２−６をもつランダム対応構成から図６（Ｃ）の２分割のバッファ区画４４−１，４４−２のシーケンシャル対応構成に変更する。
【００７２】
このステップＳ１１〜Ｓ１３のバッファ構成の変更は、シーケンシャルアクセスのブロック数が２４０ｈに達した後の次の書込アクセスで実行されることから、ステップＳ３でシーケンシャル対応構成にバッファ構成を変更した後、ステップＳ８で昇順モードか否かチェックし、昇順モードであればステップＳ９で変更後のバッファ構成を対象に書込データを昇順展開し、降順モードであれば変更後のバッファ構成を対象に書込データを降順展開する。
【００７３】
またステップＳ１３におけるバッファ構成の変更に伴ってランダム書込モードはシーケンシャル書込モードに変更されるため、次の書込アクセスからは図７のステップＳ６のシーケンシャル書込処理に移る。
４．シーケンシャルアクセス書込処理
図１１は、図８の書込パターン判定処理でシーケンシャル対応バッファ構成が判別された場合に、図７のステップＳ６で実行されるシーケンシャル書込処理の詳細である。
【００７４】
このシーケンシャル書込処理においては、シーケンシャル書込モードの設定状態でホストからのランダム書込アクセスが規定回数Ｎ、例えばＮ＝３回続いたときに、バッファ構成をランダム処理構成に変更してランダム書込モードに戻すようにしている。
図１１において、シーケンシャル書込処理は、まずステップＳ１で現在のカウンタで計数しているランダムアクセスの回数が規定値Ｎ、例えばＮ＝３回に達したか否かチェックしている。ランダム書込アクセスの連続回数が３回未満であればステップＳ２に進み、書込アクセスはランダムアクセスか否かチェックする。ランダムアクセスであれば、ステップＳ３でランダムアクセスの回数をカウントアップする。シーケンシャルアクセスであればステップＳ４でカウンタをクリアする。
【００７５】
次にステップＳ５で書込データがバッファに展開可能か否かチェックする。このときデータバッファ領域は図６（Ｃ）のように２分割したバッファ区画４４−１，４４−２に分けられており、例えばバッファ区画４４−１にシーケンシャルアクセスの書込データを順次展開中、残りのバッファ区画４４−２から展開済みの書込データをＭＯ媒体に書き戻している。
【００７６】
このため、書込データが現在展開中のバッファ区画４４−１に空きがあれば展開可能であるが、バッファ区画４４−１がバッファフルとなって空きがないと、現在媒体書込み中のバッファ区画４４−２の書込み終了を待たなければ展開できない。そこで、ステップＳ５でバッファに展開できない場合には、ステップＳ６でバッファ区画の媒体書込みをチェックし、ステップＳ７で書込み終了を待つ。
【００７７】
ステップＳ５でバッファに展開可能であるか、或いはステップＳ７で媒体書込み終了となると、ステップＳ８〜Ｓ２０の処理によりシーケンシャルアクセスにおける昇順モードと降順モードに対応したバッファ展開を行う。シーケンシャルアクセスにおける昇順モードから降順モードへの変更は、降順アクセスが規定回数、例えば３回連続したときに変更する。
【００７８】
この点は降順モードから昇順モードに変更する場合も同様であり、昇順アクセスが３回続いたときに昇順モードに変更する。  ここでシーケンシャルアクセスに対応したバッファ構成における書込データの昇順展開と降順展開を説明すると次のようになる。
図１２（Ａ）は、シーケンシャル対応バッファ構成における書込データの昇順バッファ展開の説明図である。この場合は、シーケンシャルアクセスとなる書込コマンド＃１〜＃１２をホストから受領し、書込アドレスが増加する昇順アクセスを判定した場合である。この昇順シーケンシャルアクセスの書込コマンド＃１〜＃１２については、例えばバッファ区画Ｃ１の先頭アドレスから順番に書込コマンド＃１〜＃１２の書込データを展開している。
【００７９】
図１２（Ｂ）はホストから書込コマンド＃１〜＃１２の降順シーケンシャルアクセスを受けた場合の書込データの降順展開である。この場合には、書込アドレスが最も大きい書込コマンド＃１をアドレス末尾側のバッファ区画Ｃ２の末尾位置に入れ、以後アドレスが少なくなる順に書込コマンド＃２〜＃１２の書込データを降順展開している。
【００８０】
図１３は昇順と降順のシーケンシャルアクセスが混在した場合である。例えばホストより降順のシーケンシャルアクセス＃１〜＃９があり、これに続いて降順のシーケンシャルアクセス＃１０〜＃１２を受けたとする。まず昇順のシーケンシャルアクセス＃１〜＃９については、図１３（Ａ）のバッファ区画Ｃ１のように、先頭から順番に書込コマンド＃１〜＃９の書込データを展開する。
【００８１】
書込アクセス♯９のバッファ展開が済むと、次の書込アクセス♯１０は前回の書込アクセス♯９に対し降順となり、不連続であることから、バッファ区画Ｃ２の先頭アドレスに格納する。
次の降順の書込アクセス♯１１については、この時点ではバッファ展開は昇順モードに対応しているため、バッファ区画Ｃ１の書込コマンド♯１〜♯９の媒体書込み終了を待ってから、図１３（Ｂ）のように、バッファ区画Ｃ１の先頭に展開される。同様にして降順の次の書込アクセス♯１２についても、書込コマンド♯１２の媒体書込み終了を待ってからバッファ区画Ｃ２の先頭位置に展開される。
【００８２】
ここで降順アクセスが書込コマンド＃１０〜＃１２のバッファ展開で３回に達すると、それまでの昇順モードから降順モードに切り替えられる。
降順モードに切り替えられると、図１３（Ｃ）のように、次の降順の書込コマンド＃１３〜＃１８については、図１３（Ｂ）のバッファ区画Ｃ１の昇順展開した書込コマンド＃１１の書込データのＭＯ媒体への書込み終了を待って、書込アドレスが最も大きい書込コマンド＃１３の書込データを空きとなったバッファ区画Ｃ１の末尾アドレスに展開し、これに続いて降順の書込アクセス＃１４〜＃１８の書込データを降順に展開する。
【００８３】
この図１２及び図１３に示したシーケンシャル書込モードにおける書込データの昇順展開と降順展開を図１１のステップＳ８〜Ｓ２０について説明すると次のようになる。まずステップＳ８で現在昇順モードか否かチェックする。昇順モードであればステップＳ９に進み、現在の書込アクセスが降順か否かチェックする。  降順であればステップＳ１０に進み、バッファ展開を切り替えるためのカウンタをカウントアップし、ステップＳ１１で３回に達したか否かチェックする。３回に達していなければステップＳ１４に進み、現在の昇順モードに対応した昇順バッファ展開を行う。ステップＳ１１でカウンタが３回に達していたならば、ステップＳ１２に進んで降順モードに切り替え、書込データを降順にバッファ展開する。
【００８４】
またステップＳ８で現在昇順モードが判別された状態で、ステップＳ９の今回の書込アクセスが昇順であった場合には、ステップＳ１３でカウンタをクリアし、ステップＳ１４で現在の昇順モードに従った昇順バッファ展開を行う。
またステップＳ８で現在降順モードであった場合には、ステップＳ１５に進み、今回の書込アクセスが昇順か否かチェックする。昇順であればステップＳ１６に進み、カウンタをカウントアップし、ステップＳ１７で３回未満であれば、ステップＳ２０で現在の降順モードに従った降順バッファ展開を行う。ステップＳ１７でカウンタが３回に達していれば、ステップＳ１８に進み、現在の降順モードを昇順モードに変更し、書込データを昇順によりバッファ展開する。
【００８５】
現在、降順モードの設定状態でステップＳ１５における今回の書込アクセスについて降順が判定されると、ステップＳ１９でカウントをクリアし、ステップＳ２０で現在の降順モードに従って書込データを降順にバッファ展開する。
次にステップＳ１でランダムアクセスの回数が規定値Ｎ＝３回に達した場合には、ステップＳ２１〜Ｓ２３の処理に進み、バッファ構成を現在のシーケンシャル対応構成からランダム対応構成に変更する。このバッファ構成の変更に先立ち、まずステップＳ２１で図６（Ｃ）の２分割したバッファ区画４４−１，４４−２に展開されている書込データをバッファ区画４４−１，４４−２単位にＭＯ媒体に書込む。
【００８６】
ステップＳ２２で全バッファ領域の媒体書込み終了を判別すると、ステップＳ２３でバッファ構成を図６（Ｃ）のシーケンシャル対応構成から図６（Ｂ）の６分割したバッファ区画４２−１〜４２−６を持つランダム対応構成に変更し、同時にそれまでのシーケンシャルモードをランダムモードに変更する。
このステップＳ２１〜Ｓ２３のバッファ構成の変更も、ステップＳ３でランダムアクセスのカウントアップによる計数値が３回に達した後の次の書込アクセスで実行されることから、ステップＳ２３でバッファ構成をランダム対応構成に変更した後、ステップＳ８〜Ｓ２０の処理により、ランダム対応構成に変更したバッファ区画の先頭位置（昇順）または末尾（降順）位置に今回の書込アクセスによる書込データを展開する。
【００８７】
次の書込アクセスについては、ランダム書込モードに変更されていることから、図７のステップＳ５のランダム書込処理、即ち図９に詳細に示すランダム書込処理を実行することになる。
このようにランダム対応バッファ構成の状態でシーケンシャルな書込アクセスが続く場合には、シーケンシャルアクセス対応のバッファ構成に変更し、昇順にバッファ展開を行うことで、ランダムアクセス対応のバッファ構成に比べて同じ容量の媒体書込み回数を３分の１に減らすことができる。
５．昇順シーケンシャルから昇順ランダムへの変更
図１４は、図５のＭＯドライブ２０がホストから受領した書込コマンド♯１〜♯ｎの具体例であり、ここで書込コマンド♯１〜♯ｎは右側に示すように「書込論理アドレスＬＢＡ／ブロック数ＢＣ」をコマンドパラメータとして持つ。例えば書込コマンド♯１は、書込論理アドレスＬＢＡは１０００ｈであり、またデータ量を示すブロック数ＢＣは１０ｈとしている。
【００８８】
書込コマンド＃１〜＃ｎにおいて、書込コマンド＃１〜＃１１は昇順ランダムアクセス６０であり、これに続く書込コマンド＃１２〜＃ｎは昇順シーケンシャルアクセス６２となっている。この図１４の書込コマンド＃１〜＃ｎを受けた際のデータバッファ領域に対する書込データの展開・媒体書込みは、図１５乃至図１８のようになる。
【００８９】
また図１４において、昇順ランダムアクセス６０の書込コマンド＃１〜＃１１については図６（Ｂ）の６分割したバッファ区画４２−１〜４２−６のバッファ構成を使用するが、書込コマンド＃１２からの昇順シーケンシャルアクセス６２による書込データのブロック数がデータバッファ容量２４０ｈに達すると、図６（Ｃ）の２分割したバッファ区画４４−１，４４−２となるシーケンシャルアクセス対応のバッファ構成に変更される。
【００９０】
図１５（Ａ）は、図１４の昇順ランダムアクセス６０の書込コマンド＃１〜＃１１のバッファ展開である。まず先頭の書込コマンド＃１においては、昇順モードの設定に従って先頭のバッファ区画Ｂ１の先頭位置に展開され、残りの書込コマンド＃２〜＃６においてはアドレスが不連続のランダムアクセスであることから、アドレス順に従ってバッファ区画Ｂ２〜Ｂ６の先頭位置に展開される。
【００９１】
この書込コマンド♯２以降の展開中に、最初に展開した書込コマンド♯１の書込データは、ＬＲＵアルゴリズムに従って媒体書込み中となる。このため、次の書込コマンド♯７については媒体書込み中のバッファ区画Ｂ１には展開できない。  しかし、書込コマンド♯７の書込論理ブロックアドレスＬＢＡは２０１０ｈとなっていて書込コマンド♯２の書込論理アドレスＬＢＡ＝２０００ｈに連続することから、バッファ区画Ｂ２の書込コマンド♯２の展開データに続いて展開する。次の書込コマンド♯８〜♯１１についても、それぞれ展開済みの書込コマンド♯３〜♯６に書込論理アドレスＬＢＡが連続していることから、それぞれに続いて展開する。
【００９２】
図１５（Ｂ）は、図１４のシーケンシャルアクセス６２の先頭の書込コマンド♯１２〜♯１７のバッファ展開である。ここで図１４の昇順シーケンシャルアクセス６２は書込コマンド♯１２，♯１３，♯１４，♯４７のみの論理アドレスＬＢＡとブロック数ＢＣを示すが、それ以外の書込コマンドは１０ｈずつアドレスが増加した論理アドレスＬＢＡをもつ。
【００９３】
図１５（Ｂ）の昇順シーケンシャルの書込アクセス＃１２〜＃１７については、図１５（Ａ）で展開済みの書込アクセス＃１の書込データの媒体書込みが済んだバッファ区画Ｂ１に対し昇順に展開する。このとき次のバッファ区画Ｂ２の書込コマンド＃２，＃７の書込データが媒体書込み中である。
図１５（Ｂ）のバッファ区画Ｂ２の媒体書込みが終了すると、図１５（Ｃ）のように次の昇順シーケンシャルの書込アクセス＃１８〜＃２３の書込データを媒体書込みが済んだバッファ区画Ｂ２に展開する。このとき次のバッファ区画Ｂ３が媒体書込み中になる。
【００９４】
以下、書込コマンド＃２４〜＃３５について同様な処理を繰り返し、図１６（Ｃ）は、バッファ区画Ｂ５に次のシーケンシャルアクセスの書込コマンド＃３６〜＃４１の書込データを展開し、バッファ区画Ｂ６が媒体書込み中の状態である。更に図１６（Ｅ）は最後のバッファ区画Ｂ６の媒体書込みが済んでシーケンシャル書込アクセス＃４２〜＃４７の書込データを昇順展開した状態である。
【００９５】
この図１５（Ｂ）の書込コマンド＃１２のバッファ展開から図１６（Ｅ）の書込アクセス＃４７の書込データの展開により、シーケンシャルアクセスによる展開ブロック数がバッファ容量に等しい２４０ｈに達し、バッファ構成を現在の６分割したバッファ区画Ｂ１〜Ｂ６をもつランダムアクセス対応のバッファ構成から２分割したバッファ区画Ｃ１，Ｃ２をもつシーケンシャルアクセス対応のバッファ構成への変更条件が成立する。
【００９６】
そこで図１７（Ｆ）のように、次の書込コマンド＃４８を受領して保留した状態で、データバッファ領域のバッファ区画Ｂ１〜Ｂ６を順番にＭＯ媒体に書込む媒体書込み処理を行い、バッファ区画Ｂ６の媒体書込み終了でデータバッファ領域を、図１７（Ｇ）のように２分割したバッファ区画Ｃ１，Ｃ２をもつシーケンシャルアクセス対応のバッファ構成に変更する。
【００９７】
そして現在保留している書込コマンド♯４８の書込データを変更が済んだバッファ区画Ｃ１の先頭位置に展開する。
これに続く書込コマンド♯４９〜♯６５については、図１８（Ｈ）のように書込コマンド♯４８に続いて昇順に展開した後に、次の書込コマンド♯６６〜♯８３の書込データについてはバッファ区画Ｃ２に昇順に展開する。このとき、展開の済んだバッファ区画Ｃ１の書込コマンド♯４８〜♯６５の展開書込データはＭＯの媒体に書込む。
【００９８】
図１８（Ｈ）のバッファ区画Ｃ１の媒体書込みが終了すると、図１８（Ｉ）のように、媒体書込みが済んだバッファ区画Ｃ１に次のシーケンシャルアクセスの書込コマンド＃８４〜＃１０１の書込データを展開し、同時にバッファ区画Ｃ２に展開している書込コマンド＃６６〜＃８３の書込データをＭＯ媒体に書込む。このようにランダム対応のバッファ構成の状態で、シーケンシャルな書込アクセスが続く場合には、シーケンシャルアクセス対応のバッファ構成に変更し、昇順にバッファ展開させることで、ランダムアクセス対応のバッファ構成に比べ、バッファ上に対する展開先が３倍に増え、またバッファ上に展開したホストからの書込データをまとめて媒体に書込むことができるために、媒体書込み回数が低減できる。
６．昇順ランダムから昇順シーケンシャルへの変更
図１９は、図５のＭＯドライブ２０がホストから受領した書込コマンド＃１〜＃ｎの具体例であり、先頭側に位置する書込コマンド＃１〜＃２０が昇順シーケンシャルアクセス７０であり、これに続く書込コマンド＃２１〜＃ｎが昇順ランダムアクセス７２となっている。
【００９９】
また昇順シーケンシャルアクセス７０の書込コマンド＃１〜＃２０を受ける際に、データバッファ領域のバッファ構成は図６（Ｃ）の２分割したバッファ区画４４−１，４４−２をもつシーケンシャルアクセス対応のバッファ構成となっている。このため、昇順ランダムアクセス７２に入ってランダムアクセスの書込コマンドが３回に連続したとき、図６（Ｂ）の６分割したバッファ区画４２−１〜４２−６をもつランダムアクセス対応のバッファ構成に変更することになる。
【０１００】
この図１９の書込コマンドに対し、図２０乃至図２２に示すデータバッファ領域のバッファ展開、バッファ切替えが行われる。
図２０（Ａ）は、図１９の昇順シーケンシャルアクセス７０の書込コマンド＃１〜＃１９のバッファ展開である。このときバッファ構成は２分割したバッファ区画Ｃ１，Ｃ２をもつシーケンシャルアクセス対応のバッファ構成であり、且つ昇順モードであることから、最初の書込コマンド＃１はバッファ区画Ｃ１の先頭位置に展開し、展開後にＭＯ媒体への書込みを行い、次の書込コマンド＃２〜＃１９においてはバッファ区画Ｃ２に昇順展開される。
【０１０１】
図２０（Ａ）のバッファ区画Ｃ１の媒体書込みが終了すると、バッファ区画Ｃ１に次の書込コマンド♯２０の書込データが展開され、同時にバッファ区画Ｃ２より展開だ済んだ書込コマンド♯２〜♯１９の書込データがＭＯ媒体に書き戻される。  図２０（Ｂ）のバッファ区画Ｃ２の媒体書込みが終了すると、図２０（Ｃ）のように、バッファ区画Ｃ２に次の書込コマンド♯２１、即ち図１９の昇順ランダムアクセス７２の先頭に位置する書込コマンド♯２１が展開され、同時にバッファ区画Ｃ１に展開された書込コマンド♯２０の書込データがＭＯ媒体に書き戻される。このとき前回の書込コマンド♯２０の書込データと今回の書込コマンド♯２１の書込データは、書込論理ブロックアドレスＬＢＡが不連続であり、１回目のランダムアクセスがカウントされる。
【０１０２】
図２１（Ｄ）は、図２０（Ｃ）のバッファ区画Ｃ１の書込終了で書込コマンド＃２２の書込データを展開した状態であり、このときバッファ区画Ｃ２の展開済みの書込コマンド＃２１の書込データはＭＯ媒体に書込みとなる。この場合、前回の書込コマンド＃２１と今回の書込コマンド＃２２は不連続で２回目のランダムアクセスがカウントされる。
【０１０３】
図２１（Ｅ）は、バッファ区画Ｃ２の媒体書込みが終了して次の書込コマンド＃２３の書込データを展開した状態であり、このときバッファ区画Ｃ１の展開済みの書込コマンド＃２２の書込データはＭＯ媒体に対し書込み中となる。このとき前回の書込コマンド＃２２と今回の書込コマンド＃２３は不連続でランダムアクセスの３回目がカウントされる。
【０１０４】
このランダムアクセス回数が３回に達した後、図２１（Ｆ）において次の書込コマンド＃２４のアクセスを受けて保留すると、ランダムアクセス対応のバッファ構成の変更条件の成立が判定され、これに伴いバッファ区画Ｃ１，Ｃ２の順番に展開済みの書込コマンド＃２２，＃２３の各書込データをＭＯ媒体に書込む。このバッファ区画Ｃ１，Ｃ２の媒体書込みが終了すると、図２２（Ｇ）のように、バッファ構成を６分割したバッファ区画Ｂ１〜Ｂ６をもつランダムアクセス対応のバッファ構成に変更し、先頭のバッファ区画Ｂ１の先頭位置に保留していた書込コマンド＃２４の書込データを展開する。次の書込コマンド＃２５〜＃３５のランダムアクセスについては、バッファ区画Ｂ１が媒体書込み中にあることから、待機状態にあるバッファ区画Ｂ２〜Ｂ６に対し図示のように展開する。
【０１０５】
このようにシーケンシャル対応のバッファ構成のの状態で、ランダムな昇順の書込アクセスが続く場合には、ランダムアクセス対応のバッファ構成に変更し、昇順にバッファ展開させることで、シーケンシャルアクセス対応のバッファ構成に比べ、バッファ上に対する展開先が３倍に増え、またバッファ上に展開したホストからの書込データをまとめて媒体に書込むことができるために、媒体書込み回数が低減できる。
７．昇順ランダムから降順シーケンシャルへの変更
図２３は、図５のＭＯドライブ２０がホスト側から書込コマンド＃１〜＃ｎを受けた場合であり、このうち先頭の書込コマンド＃１〜＃１１が昇順ランダムアクセス８０であり、これに続く書込コマンド＃１２〜＃ｎが降順シーケンシャルアクセス８２となっている。
【０１０６】
また書込コマンド＃１を受ける際に、データバッファ領域３２は図６（Ｂ）の６分割されたバッファ区画４２−１〜４２−６のランダムアクセス対応のバッファ構成となっている。このため、書込コマンド＃１２からの降順シーケンシャルアクセス８２によってシーケンシャルアクセスのデータ量となるブロック数がバッファ容量２４０ｈに達すると、図６（Ｃ）の２分割したバッファ区画４４−１，４４−２のシーケンシャルアクセス対応のバッファ構成に変更される。
【０１０７】
この図２３の書込コマンド＃１〜＃ｎは、先頭の昇順ランダムアクセス８０となる書込コマンド＃１〜＃１１については図１４の昇順ランダムアクセス６０と同じであるが、コマンド＃１２以降が降順シーケンシャルアクセス８２となっている点が相違する。
図２４（Ａ）は、図２３の昇順ランダムアクセス８０の書込コマンド＃１〜＃１１のバッファ展開であり、図１５（Ａ）の場合と同様、書込コマンド＃１を先頭のバッファ区画Ｂ１に昇順展開した後、ＭＯ媒体に書き戻し、続いて媒体書込み中のバッファ区画Ｂ１を除くバッファ区画Ｂ２〜Ｂ６に書込コマンド＃２〜＃１１の書込データを展開して待機させる。
【０１０８】
図２４（Ｂ）は、書込コマンド＃１１に続いて降順シーケンシャルアクセス８２の最初の書込コマンド＃１２を受けた場合であり、図２４（Ａ）のバッファ区画Ｂ１の媒体書込み終了を待って書込コマンド＃１２の書込データを展開する。このとき次のバッファ区画Ｂ２をＭＯ媒体に書込む。
次の書込コマンド＃１３については、バッファ区画Ｂ２の媒体書込み終了を待って図２４（Ｃ）のように書込データを展開し、このとき次のバッファ区画Ｂ３が媒体書込み中となる。このとき書込コマンド＃１３の書込論理アドレスＬＢＡ＝８ＦＦ０ｈに対し前回の書込コマンド＃１２の書込論理アドレスＬＢＡ＝９０００ｈであることから、降順であることが判別されるが、このときバッファ展開については昇順モードにあるため、降順アクセスと判別された書込コマンド＃１３についても、そのときの昇順モードに従ってバッファ区画Ｂ２の先頭側に展開される。  続いて書込コマンド＃１４〜＃４７について、図２５（Ｄ）（Ｅ）のように同様なバッファ展開とＭＯ媒体の書込みが行われる。この降順シーケンシャルの書込コマンド＃１２〜＃４７のバッファ展開で降順シーケンシャルのブロック数がバッファ容量に等しい２４０ｈに達し、、図６（Ｃ）の２分割したバッファ区画４４−１，４４−２のシーケンシャルアクセス対応のバッファ構成への変更条件が成立する。
【０１０９】
続いて書込コマンド＃４８を受けて保留した状態で、シーケンシャルアクセスのブロック数の２４０ｈへの到達が判別され、図２６（Ｆ）のようにバッファ区画Ｂ１〜Ｂ６について順番にＭＯ媒体へ書戻す。
全バッファ区画の媒体書込み終了を待って図２６（Ｇ）のように２分割したバッファ区画Ｃ１，Ｃ２をもつシーケンシャルアクセス対応のバッファ構成に変更し、同時にそれまでの昇順モードから降順モードに設定変更する。このため、待機状態にあった書込コマンド＃４８の書込データは、降順モードへの変更に伴って末尾側のバッファ区画Ｃ２の末尾位置に降順展開する。
【０１１０】
次の書込コマンド＃４９〜＃６５は、図２７（Ｈ）のように、バッファ区画Ｃ２に降順展開され、次の書込コマンド＃６６〜＃８３はバッファ区画Ｃ１に同じく降順展開される。このときバッファ区画Ｃ２は媒体書込み中となる。バッファ区画Ｃ２の媒体書込みが終了すると、図２７（Ｉ）のように次の書込コマンド＃８４〜＃１０１の書込データが降順展開され、このときバッファ区画Ｃ１は媒体書込み中となる。
【０１１１】
このようにランダムアクセス対応のバッファ構成の状態で、シーケンシャルな書込アクセスが続く場合には、シーケンシャルアクセス対応のバッファ構成に変更し、降順にバッファ展開させることで、ランダムアクセス対応のバッファ構成に比べて同じデータ容量の媒体書込み回数を３分の１に減らすことができる。
８．昇順シーケンシャルから降順ランダムへの変更
図２８，図２９は、図５のＭＯドライブ２０がホストからの書込アクセスにより受領した書込コマンド＃１〜＃ｎであり、この書込アクセスにおいては、書込コマンド＃１〜＃２０が昇順シーケンシャルアクセス９０であり、これに続いて書込コマンド＃２１〜＃ｎが降順ランダムアクセス９２となっている。
【０１１２】
また昇順シーケンシャルアクセス９０の最初の書込コマンド＃１を受ける前の状態で、データバッファ領域は図６（Ｃ）の２分割したバッファ区画４４−１，４４−２をもつシーケンシャルアクセス対応のバッファ構成となっている。このため、昇順ランダムアクセス９２の開始コマンドとなる書込コマンド＃２１から書込コマンド＃２３まで３回ランダムアクセスが連続すると、図６（Ｂ）の６分割したバッファ区画４２−１〜４２−６をもつランダムアクセス対応のバッファ構成に変更される。
【０１１３】
また昇順シーケンシャルアクセス９０の書込コマンド＃１〜＃２０は、書込論理アドレスＬＢＡ＝１０００ｈからブロック数ＢＣ＝１０ｈ単位に論理ブロックアドレスＬＢＡ＝１１３０ｈまでアドレスが増加している。
これに対し降順ランダムアクセス９２においては、バッファ展開の説明を容易にするため、最初のバッファ構成の変更に必要な３つの書込コマンド＃２１〜＃２３のアドレスが降順サイクルとなり、ランダムアクセス対応のバッファ構成に変更した後の最初の６つのバッファ区画への展開に対応する６つの書込コマンド＃２４〜＃２９が１つの降順サイクルとなる。
【０１１４】
それ以降は６つのバッファ区画のうちの１つが媒体書込み中となるために、バッファ展開可能なバッファ区画数は５つとなり、これに対応して５つずつの降順サイクルの書込コマンド＃３０〜＃３４、＃３５〜＃３９、＃４０〜＃４４、＃４５〜＃４９、・・・を繰り返している。
図３０（Ａ）は、図２８の昇順シーケンシャルアクセス９０における書込コマンド＃１〜＃１９のバッファ展開である。まず書込コマンド＃１を受けた際には、シーケンシャル書込モードで且つ昇順モードが設定されていることから、この昇順モードに従って書込コマンド＃１の書込データは先頭側のバッファ区画Ｃ１の先頭位置に展開し、ホストに正常終了を通知する。
【０１１５】
この書込コマンド＃１の書込データのバッファ展開が済むと、展開した書込コマンド＃１の書込データのＭＯ媒体に対する書込みが開始される。次に書込コマンド＃１を受けた場合には、バッファ区画Ｃ１は媒体書込み中にあることから展開できず、バッファ区画Ｃ２の先頭位置に書込コマンド＃２の書込データを展開する。以下同様にして、書込コマンド＃３〜＃１９の書込データをバッファ区画Ｃ２に昇順展開する。
【０１１６】
次に書込コマンド＃２０を受けると、バッファ区画Ｃ１の媒体書込み終了を待って、図３０（Ｂ）のように書込コマンド＃２０の書込データを展開する。このとき、バッファ区画Ｃ２側はＭＯ媒体に対し書込みを行う。
続いて降順ランダムアクセス９２の最初の書込コマンド＃２１を受領すると、バッファ区画Ｃ２の媒体書込み終了を待って、図３０（Ｃ）のように、このときの昇順モードの設定に従って書込コマンド＃２１の書込データをバッファ区画Ｃ２の先頭位置に展開する。
【０１１７】
このときバッファ区画Ｃ１に展開済みの書込コマンド♯２０の書込データはＭＯ媒体に書込み中となる。ここで、バッファ区画Ｃ２に展開した書込コマンド♯２１の書込論理アドレスＬＢＡはＡ０００ｈであり、１つ前の書込コマンド♯２０の書込論理アドレスＬＢＡの１１３０ｈに対し不連続なランダムアクセスであり、１回目のランダムアクセスがカウントされる。
【０１１８】
次に書込コマンド＃２２を受けると、図３１（Ｄ）のように、バッファ区画Ｃ１の媒体書込み終了を待って、待機中の書込コマンド＃２２の書込データを展開し、このときバッファ区画Ｃ２はＭＯ媒体に書込み中となる。この書込コマンド＃２２の１つ前の書込コマンド＃２１に対し、アドレスが降順で且つランダムアクセスとなっており、２回目のランダムアクセスがカウントされる。
【０１１９】
続いて書込コマンド＃２３を受けると、バッファ区画Ｃ２の媒体書込み終了を待って、図３１（Ｅ）のように書込コマンド＃２３の書込データを展開し、このときバッファ区画Ｃ１は媒体書込み中となる。この書込コマンド＃２３の１つ前の書込コマンド＃２２に対し、アドレスが昇順で且つランダムアクセスであり、ランダムアクセスの３回目がカウントされ、これによって図６（Ｂ）のランダムアクセス対応のバッファ構成への変更条件が成立する。
【０１２０】
続いて書込コマンド＃２４を受けると、書込コマンド＃２４を保留した状態でランダムアクセスが３回続いたことによるランダムアクセス対応のバッファ構成への変更条件成立を認識し、図３１（Ｆ）のようにバッファ区画Ｃ１，Ｃ２を順番に書込む。
図３１（Ｆ）で媒体書込みが終了すると、図３２（Ｇ）のように、６つのバッファ区画Ｂ１〜Ｂ６をもつランダムアクセス対応のバッファ構成に変更する。このようにランダムアクセス対応のバッファ構成に変更しても、この時点では依然として昇順モードにあることから、書込コマンド＃２４〜＃２９はランダムアクセスと見なし、バッファ区画Ｂ１〜Ｂ６の先頭位置に各書込データを昇順展開する。そして、最初に展開したバッファ区画Ｂ１の書込コマンド＃２４の書込データはＭＯ媒体に対する書込み中となる。
【０１２１】
次に書込コマンド＃３０を受けると、バッファ区画Ｂ１の媒体書込み終了を待って、図３２（Ｈ）のようにバッファ区画Ｂ１の先頭位置に昇順展開する。このときバッファ区画Ｂ２が媒体書込み中となる。ここでバッファ区画Ｂ１の書込コマンド＃３０の書込論理アドレスＬＢＡは６ＦＦ０ｈであり、次のバッファ区画Ｂ２に展開している書込コマンド＃２５の書込論理アドレスＬＢＡの７０００ｈに対し、ブロック数ＢＣ＝１０ｈだけ少ないアドレスをもつ降順シーケンシャルとなっており、このため１回目の降順シーケンシャルがカウントされる。
【０１２２】
次に書込コマンド＃３１を受けると、バッファ区画Ｂ２の媒体書込み終了を待って、図３２（Ｉ）のように書込コマンド＃３１の書込データを展開し、このときバッファ区画Ｂ３を媒体書込み中とする。ここでバッファ区画Ｂ２に展開した書込コマンド＃３１の書込論理アドレスＬＢＡは５ＦＦ０ｈであり、次のバッファ区画Ｂ３の書込コマンド＃２６の書込論理アドレスＬＢＡは６０００ｈであり、降順シーケンシャルとなっている。このため、この時点で２回目の降順シーケンシャルが検出される。
次に書込コマンド＃３２を受けて保留すると、バッファ区画Ｂ３の媒体書込み終了を待って、図３３（Ｊ）のようにバッファ区画Ｂ３に書込コマンド＃３２の書込データを展開しようとする。この展開に先立ち、バッファ区画Ｂ３に展開しようとする書込コマンド＃３２と次のバッファ区画Ｂ４に既に展開している書込コマンド＃２７の書込論理アドレスＬＢＡを見ると、書込コマンド＃３２は４ＦＦ０ｈであり、書込コマンド＃２７は５０００ｈであり、降順シーケンシャルとなっている。
【０１２３】
このため、この時点で３回目の降順シーケンシャルがカウントされ、それまでの昇順モードから降順モードに切り替わる。この降順モードへの切り替えにより、保留状態にある書込コマンド＃３２は、バッファ区画Ｂ３の末尾の位置に降順展開される。したがって、この書込コマンド＃３２以降について、書込データはバッファ区画に対し降順展開されることになる。図３３（Ｋ）は次の書込コマンド＃３３の降順展開である。
【０１２４】
更に書込コマンド＃３４〜＃３６については、図３４（Ｌ）（Ｍ）（Ｎ）のように、バッファ区画Ｂ５，Ｂ６，Ｂ１に順次降順展開される。更に図３５（Ｏ）は書込コマンド＃３７のバッファ区画Ｂ２に対する降順展開であり、この時点で全てのバッファ区画Ｂ１〜Ｂ６の全てに対する書込データの展開が降順展開となる。
【０１２５】
このときバッファ区画Ｂ３がＭＯ媒体に対し書込み中となり、このバッファ区画Ｂ３の媒体書込み中に得られる書込コマンド＃３８〜＃６２については、図３５（Ｐ）のように媒体書込み中のバッファ区画Ｂ３を除くバッファ区画Ｂ１，Ｂ２，Ｂ４，Ｂ５，Ｂ６に、図３５（Ｏ）のように展開済みの書込コマンド＃３３〜＃３７に対する降順展開を連続的に行う。
【０１２６】
これによって、例えばバッファ区画Ｂ１に降順展開された書込コマンド＃３６，＃４１，＃４６，＃５１，＃５６，＃６１のアドレスを見ると、５ＦＥ０ｈ，５ＦＤ０ｈ、５ＦＣ０ｈ，５ＦＢ０ｈ、５ＦＡ０ｈ，５Ｆ９０ｈと降順シーケンシャルに展開されている。
この点は他のバッファ区画Ｂ２，Ｂ４〜Ｂ６についても同様である。このため、次に図３６（Ｑ）のように、バッファ区画Ｂ３の媒体書込み終了で次の書込コマンド＃６３をバッファ区画Ｂ３の末尾に展開し、同時にバッファ区画Ｂ４の書込コマンド＃３３，＃３８，＃４３，＃４８，＃５３，＃５８の降順シーケンシャルの連続データを先頭位置側から読み出して連続的にＭＯ媒体に書込む。
【０１２７】
このような処理を図３６（Ｒ）（Ｓ）及び図３７（Ｔ）（Ｕ）のように、書込コマンド＃６４〜＃６８に伴なってバッファ区画Ｂ５，Ｂ６，Ｂ１，Ｂ２まで繰り返すと、バッファ区画Ｂ２の媒体書込み終了で、バッファ区画Ｂ３〜Ｂ６，Ｂ１，Ｂ２の末尾の位置には、次の書込コマンド＃６３〜＃６８の書込データがバッファ区画Ｂ３を先頭に巡回するように展開されている。
【０１２８】
このため図３７（Ｖ）で媒体書込中となるバッファ区画Ｂ３を除くバッファ区画Ｂ４〜Ｂ６，Ｂ１，Ｂ２に、図３５（Ｐ）と同様に、書込コマンド♯６９〜♯９３の書込データを降順に展開する。以下、これを繰り返す。
このようにシーケンシャル対応のバッファ構成の状態で、降順となるランダムな書込アクセスが続く場合には、シーケンシャルアクセス対応のバッファ構成に比べ、バッファ上に対する展開先が３倍に増え、しかも降順に展開動作させることでホストからの書込アクセスをまとめて媒体に書込むことができ、これによって媒体書込み回数を低減することができる。
【０１２９】
尚、図１４〜図３７においては、
▲１▼昇順シーケンシャルから昇順ランダムへの変更
▲２▼昇順ランダムから昇順シーケンシャルへの変更
▲３▼昇順ランダムから降順シーケンシャルへの変更
▲４▼昇順シーケンシャルから降順ランダムへの変更
を例にとるものであったが、これ以外の
▲５▼降順シーケンシャルから降順ランダムへの変更
▲６▼降順ランダムから降順シーケンシャルへの変更
▲７▼降順ランダムから昇順シーケンシャルへの変更
▲８▼降順シーケンシャルから昇順ランダムへの変更
のそれぞれについても、図９のランダム書込処理のフローチャート及び図１１のシーケンシャル書込処理のフローチャートにおいて、ランダム書込モードとシーケンシャル書込モードの判別に基づくバッファ構成の選択、及び昇順モードと降順モードの判別に基づくバッファ展開動作により、ホストからの書込アクセスのバッファ展開先を効率的に確保し、且つバッファに展開済みの書込データを連続データとしてバッファ区画単位に媒体に書込む効率的な媒体書込みが実現できる。  また上記の実施形態においては、ランダムアクセス対応からシーケンシャルアクセス対応のバッファ構成への変更条件として、シーケンシャルアクセスのブロック数がデータバッファ領域の全容量に達した場合を例にとっているが、シーケンシャルアクセスの継続が予測できる適宜のデータ量でよい。
【０１３０】
また逆に、シーケンシャルアクセス対応からランダムアクセス対応のバッファ構成への変更をランダムアクセスが３回継続したときとしているが、このランダムアクセスの継続回数も統計的な結果等を利用して最適な切替回数を設定すればよい。
また本発明の別の実施形態として、図５のバッファ構成制御部４０としてＭＯドライブ２０のセットアップ処理により固定的に図６（Ｂ）の６分割したランダムアクセス対応のバッファ構成または図６（Ｃ）の２分割したシーケンシャルアクセス対応のバッファ構成を固定的に設定し、アクセス種別判定部３８で書込アクセスが昇順モードか降順モードかを判定し、これに応じてキャッシュ制御部２８によるデータバッファ領域へのバッファ展開を昇順バッファ展開とするか降順バッファ展開とするかのバッファ展開制御のみとしてもよい。
【０１３１】
これによって、ランダムアクセス対応またはシーケンシャルアクセス対応においてバッファ構成を固定的に設定していても、書込アクセスの昇順と降順に対応した最適なバッファ展開と展開した書込データをまとめて連続的に媒体に書込むことができ、従来の昇順アクセスのみと見なして書込データをバッファに昇順展開していた場合に比べ、バッファ展開と媒体書込みの効率を更に向上させることができる。
【０１３２】
尚、図９のランダム書込処理及び図１１のシーケンシャル書込処理にあっては、書込アクセスと昇順モードと昇順モードに応じてダイナミックにバッファ展開を変更しているが、記憶装置のセットアップ時に、昇順バッファ展開と降順バッファ展開のいずれか一方を固定的に設定してもよい。
また上記の実施形態は、記憶媒体として光磁気ディスクを例にとるものであったが、これ以外に、相変化光ディスク、ＤＶＤ等のトラック書込みにディスクの複数回転を必要とする書込み可能な全ての光学的記憶媒体を含む。
【０１３３】
また本発明は上記の実施形態で示された数値による限定は受けない。さらに、本発明は、その目的と利点を損わない範囲の全ての変形を含む。
【０１３４】
【発明の効果】
以上説明してきたように本発明によれば、上位装置が記憶装置に書き込もうとする書込アクセスについて、シーケンシャルアクセスかまたはランダムアクセスかを判断し、ダイナミックに各アクセスに適合したバッファ構成に変更することで、そのときの書込アクセスの形態に対応した効率的な書込データのバッファ展開と展開済みの書込データの媒体書込みができ、全体的なデータバッファからの媒体書込回数を低減することで書込アクセスの性能を大幅に向上できる。
【０１３５】
またシーケンシャルアクセスとランダムアクセスに対応したバッファ構成の動的な変更に加えて、それぞれのアクセスについてアドレスが増加する昇順アクセスかアドレスが減少する降順アクセスかを判定し、書込データのバッファ展開を、昇順アクセスであれば昇順展開とし、降順アクセスであれば降順展開とすることで、昇順展開のみの場合に比べ展開可能なバッファ区画の確保が拡大でき、またバッファ区画に連続アドレスの書込データを展開することで媒体に対する書込み回数を低減できる。
【図面の簡単な説明】
【図１】本発明の原理説明図
【図２】本発明の記憶装置が使用されるコンピュータシステムのブロック図
【図３】図２のＭＯドライブのブロック図
【図４】図３のエンクロージャ構造の概略説明図
【図５】図３のＭＯドライブにおけるキャッシュ制御機能の機能ブロック図
【図６】図５のデータバッファ領域の説明図
【図７】図５のホストの書込アクセスに対する全体的な制御処理のフローチャート
【図８】図７における書込パターン判定処理のフローチャート
【図９】図７におけるランダム書込処理のフローチャート
【図１０】図９のランダムアクセスにおける昇順バッファ展開と降順バッファ展開の説明図
【図１１】図７におけるシーケンシャル書込処理のフローチャート
【図１２】図１１のシーケンシャルアクセスにおける昇順バッファ展開と降順バッファ展開の説明図
【図１３】図１１のシーケンシャルアクセスにおける昇順バッファ展開から降順バッファ展開への切替え説明図
【図１４】昇順ランダムアクセスから昇順シーケンシャルアクセスに変化する書込コマンド列の説明図
【図１５】図１４の書込コマンド＃１〜＃２３のバッファ展開、待機、媒体書込みの説明図
【図１６】図１４の書込コマンド＃２４〜＃４７のバッファ展開、待機、媒体書込みの説明図
【図１７】展開した書込データがバッファフルとなって昇順ランダム対応バッファ構成から昇順シーケンシャルバッファ構成に変更した説明図
【図１８】昇順シーケンシャルバッファ構成に変更した後の図１４の書込コマンド＃４８〜＃１０１のバッファ展開、待機、媒体書込みの説明図
【図１９】昇順シーケンシャルアクセスから昇順ランダムアクセスに変化する書込コマンド列の説明図
【図２０】図１９の書込コマンド＃１〜＃２１のバッファ展開、待機、媒体書込みの説明図
【図２１】図１９の書込コマンド＃２２〜＃２３のバッファ展開、待機、媒体書込みの説明図
【図２２】ランダム書込アクセスが３回続いて昇順シーケンシャル対応バッファ構成からランダム対応バッファ構成に変更した後の図１９の書込コマンド＃２４〜＃３５のバッファ展開、待機、媒体書込みの説明図
【図２３】昇順ランダムアクセスから降順シーケンシャルアクセスに変化する書込コマンド列の説明図
【図２４】図２３の書込コマンド＃１〜＃１３のバッファ展開、待機、媒体書込みの説明図
【図２５】図２３の書込コマンド＃１４〜＃４７のバッファ展開、待機、媒体書込みの説明図
【図２６】図２３の書込コマンド＃４２〜＃４７のバッファ展開でシーケンシャルアクセスの書込データがバッファ容量に達してシーケンシャル対応バッファ構成に変更した後の図１９の書込コマンド＃４８のバッファ展開の説明図
【図２７】シーケンシャル対応バッファ構成に変更した後の図１９の書込コマンド＃４９〜＃１０１の降順バッファ展開の説明図
【図２８】昇順シーケンシャルアクセスから降順ランダムアクセスに変化する書込コマンド列の説明図
【図２９】図２８に続く昇順シーケンシャルアクセスから降順ランダムアクセスに変化する書込コマンド列の説明図
【図３０】図２８の書込コマンド＃１〜＃２１のバッファ展開、待機、媒体書込みの説明図
【図３１】図２８の書込コマンド＃２２〜＃２３のバッファ展開、待機、媒体書込みによりランダム対応バッファ構成の変更条件が設立した説明図
【図３２】ランダム対応バッファ構成に変更した後の図２８の書込コマンド＃２４〜＃３１のバッファ展開、待機、媒体書込みの説明図
【図３３】図２８の書込コマンド＃３０〜＃３３のバッファ展開、待機、媒体書込みの説明図
【図３４】図２８の書込コマンド＃３４〜＃３６のバッファ展開、待機、媒体書込みの説明図
【図３５】図２８の書込コマンド＃３６〜＃６２のバッファ展開、待機、媒体書込みの説明図
【図３６】図２９の書込コマンド＃６３〜＃６５のバッファ展開、待機、媒体書込みの説明図
【図３７】図２９の書込コマンド＃６６〜＃９３のバッファ展開、待機、媒体書込みの説明図
【符号の説明】
１０，１０−１〜１０−３：ホスト（上位装置）
１２：キーボード
１４：マウス
１６：バス
１８：ハードディスクドライブ（ＨＤドライブ）
２０：光磁気ディスクドライブ（ＭＯドライブ：記憶装置）
２２：ＣＤ−ＲＯＭドライブ
２４：プリンタ
２６：ホストアダプタ
２８：キャッシュ制御部
３０：キャッシュ管理テーブル
３２：データバッファ領域
３４：デバイスアダプタ
３６：記憶媒体
３８：アクセス種別判定部
４０：バッファ構成制御部
４２−１〜４２−６：ランダム用バッファ区画
４４−１，４４−２：シーケンシャル用バッファ区画
１１０：コントロールユニット
１１１：エンクロージャ
１１２：ＭＰＵ
１１４：光ディスクコントローラ（ＯＤＣ）
１１５：制御ロジック
１１６：フラッシュＲＯＭ
１１７：Ｓ−ＲＡＭ
１１８：Ｄ−ＲＡＭ
１２０：ライトＬＳＩ回路
１２２：ホストインタフェース
１２４：リードＬＳＩ回路
１２５：ＤＳＰ
＃１〜＃ｎ：書込コマンド
【図１】
0003585091.tif 000002
【図２】
0003585091.tif 000003
【図３】
0003585091.tif 000004
【図４】
0003585091.tif 000005
【図５】
0003585091.tif 000006
【図６】
0003585091.tif 000007
【図７】
0003585091.tif 000008
【図８】
0003585091.tif 000009
【図９】
0003585091.tif 000010
【図１０】
0003585091.tif 000011
【図１１】
0003585091.tif 000012
【図１２】
0003585091.tif 000013
【図１３】
0003585091.tif 000014
【図１４】
0003585091.tif 000015
【図１５】
0003585091.tif 000016
【図１６】
0003585091.tif 000017
【図１７】
0003585091.tif 000018
【図１８】
0003585091.tif 000019
【図１９】
0003585091.tif 000020
【図２０】
0003585091.tif 000021
【図２１】
0003585091.tif 000022
【図２２】
0003585091.tif 000023
【図２３】
0003585091.tif 000024
【図２４】
0003585091.tif 000025
【図２５】
0003585091.tif 000026
【図２６】
0003585091.tif 000027
【図２７】
0003585091.tif 000028
【図２８】
0003585091.tif 000029
【図２９】
0003585091.tif 000030
【図３０】
0003585091.tif 000031
【図３１】
0003585091.tif 000032
【図３２】
0003585091.tif 000033
【図３３】
0003585091.tif 000034
【図３４】
0003585091.tif 000035
【図３５】
0003585091.tif 000036
【図３６】
0003585091.tif 000037
【図３７】
0003585091.tif 000038