(57)【要約】　　　（修正有）【課題】マルチイニシエータ環境において、あるホスト装置からシーケンシャルとなるコマンド群が発行されている時に、別のホスト装置からコマンドが発行された場合に、シーケンシャル処理の性能低下を改善する。【解決手段】シーケンシャル処理が終了するセクタを示すシーケンシャル処理終了セクタとシーケンシャル処理を延長可能な範囲を示すシーケンシャル処理最大延長セクタとを用いて、処理中に受信したコマンドがシーケンシャルアクセスでない場合に、受信コマンドの先頭セクタとシーケンシャル処理終了セクタ及びシーケンシャル処理最大延長セクタを比較し、記録媒体上の先頭セクタが、シーケンシャル処理最終セクタ以前にあるか、シーケンシャル処理最大延長セクタより後ろにある場合に、前記受信したコマンドをコマンドキューにキューイングしてシーケンシャル処理を継続する。【選択図】　　　図３
2004102440.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体に対するリード／ライトシーケンシャル処理において、シーケンシャル処理が終了するセクタを示すシーケンシャル処理終了セクタと、シーケンシャル処理を延長可能な範囲を示すシーケンシャル処理最大延長セクタとを用いて、シーケンシャル処理中に受信したリード／ライトコマンドがシーケンシャルアクセスでない場合に、受信コマンドの先頭セクタと該シーケンシャル処理終了セクタ及び該シーケンシャル処理最大延長セクタを比較する比較ステップと、
前記比較の結果、前記記録媒体上の先頭セクタが、該シーケンシャル処理最終セクタ以前にあるか、或いは、該シーケンシャル処理最大延長セクタより後ろにある場合に、前記受信したリード／ライトコマンドをコマンドキューにキューイングしてシーケンシャル処理を継続させる処理ステップとを含むことを特徴とする、コマンド処理方法。
【請求項２】
記録媒体に対するリード／ライトシーケンシャル処理において、シーケンシャル処理の終了セクタを示す第１のポインタと、シーケンシャル処理を延長可能な範囲を示すシーケンシャル処理最大延長セクタを示す第２のポインタを用いて、シーケンシャル処理中に受信したリード／ライトコマンドがシーケンシャルアクセスでない場合に、受信コマンドの先頭セクタと該第１のポインタ及び該第２のポインタとを比較する比較ステップと、
前記比較の結果、前記記録媒体上の先頭セクタが、該シーケンシャル処理最終セクタ以前にあるか、或いは、該シーケンシャル処理最大延長セクタより後ろにある場合に、前記受信したリード／ライトコマンドをコマンドキューにキューイングしてシーケンシャル処理を継続させる処理ステップとを含むことを特徴とする、コマンド処理方法。
【請求項３】
記録媒体に対するリード／ライトシーケンシャル処理において、シーケンシャル処理の終了セクタを示すシーケンシャル処理終了セクタと、シーケンシャル処理を延長可能な範囲を示すシーケンシャル処理最大延長セクタとを用いて、シーケンシャル処理中に受信したリード／ライトコマンドがシーケンシャルアクセスでない場合に、受信コマンドの先頭セクタと該シーケンシャル処理終了セクタ及び該シーケンシャル処理最大延長セクタとを比較する比較手段と、
前記比較の結果、前記記録媒体上の先頭セクタが、該シーケンシャル処理最終セクタ以前にあるか、或いは、該シーケンシャル処理最大延長セクタより後ろにある場合に、前記受信したリード／ライトコマンドをコマンドキューにキューイングしてシーケンシャル処理を継続させる処理手段とを備えたことを特徴とする、記憶装置。
【請求項４】
記録媒体に対するリード／ライトシーケンシャル処理において、シーケンシャル処理の終了セクタを示す第１のポインタと、シーケンシャル処理を延長可能な範囲を示すシーケンシャル処理最大延長セクタを示す第２のポインタを用いて、シーケンシャル処理中に受信したリード／ライトコマンドがシーケンシャルアクセスでない場合に、受信コマンドの先頭セクタと該第１のポインタ及び該第２のポインタとを比較する比較手段と、
前記比較の結果、前記記録媒体上の先頭セクタが、該シーケンシャル処理最終セクタ以前にあるか、或いは、該シーケンシャル処理最大延長セクタより後ろにある場合に、前記受信したリード／ライトコマンドをコマンドキューにキューイングしてシーケンシャル処理を継続させる処理手段とを備えたことを特徴とする、記憶装置。
【請求項５】
前記継続ステップは、ライトシーケンシャル処理中に受信したシーケンシャルアクセスでないリード／ライトコマンドに対して前記比較の結果、前記受信したリード／ライトコマンドの先頭セクタが前記シーケンシャル処理最終セクタと前記シーケンシャル処理最大延長セクタとの間にあれば、前記第２のポインタの値を受信したリード／ライトコマンドの先頭セクタの番号から１だけ減算した値に更新した後、前記受信したリード／ライトコマンドを前記コマンドキューにキューイングしてシーケンシャル処理を継続させることを特徴とする、請求項４記載の記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はコマンド処理方法及び記憶装置に係り、特にシーケンシャル処理を行えるコマンド処理方法、及びそのようなコマンド処理方法を用いる記憶装置に関する。
【０００２】
【従来の技術】
シーケンシャル処理とは、シーケンシャルアクセスとなるコマンド群を、ディスク等の記録媒体へのアクセスを止めることなく連続して実行し、コマンド処理能力を向上させるコマンド処理方式である。リードの場合にシーケンシャル処理を行うと、ディスクリードアクセス処理をシーケンシャルで実行しながら、読み込みの完了したデータから順にホスト装置に転送する。他方、ライトの場合にシーケンシャル処理を行うと、ライトデータをホスト装置から受信しながら、ディスクライトアクセス処理をシーケンシャルに実行する。
【０００３】
通常、コマンドキューに１つのコマンドのみ、又は、シーケンシャルアクセスとなるコマンド群のみを保持している場合には、そのコマンド、又は、コマンド群を１つのコマンドとしてディスクアクセス処理を実行する。又、実行しているディスクアクセス処理に対して、シーケンシャルとなるコマンドを受信した場合には、シーケンシャル処理にコマンドを追加して実行し、シーケンシャルとなるコマンドを連続して受信している間は、シーケンシャル処理が延長される。シーケンシャルでないコマンドを受信した場合には、コマンドキューにコマンドをキューイングして、シーケンシャル処理の延長を禁止し、シーケンシャル処理が完了するまでは受信コマンドを全てキューイングする。
【０００４】
シーケンシャル処理は、シーケンシャルでないコマンドを受信した時点までに追加延長されたコマンド全てに対し、ディスクアクセス処理が完了した時に完了する。シーケンシャル処理の完了後、コマンドキューを検索し、コマンドキューに保持しているコマンドの処理を開始する。
【０００５】
シーケンシャルアクセスとなるコマンド群とランダムアクセスとなるコマンドをキューイングしている場合には、シーケンシャルコマンド群をシーケンシャル処理で実行するが、コマンドの追加は行わない。
【０００６】
【発明が解決しようとする課題】
シーケンシャル処理中に、ランダムコマンド等のシーケンシャルでないコマンドを受信するか、或いは、既にランダムコマンドをコマンドキューにキューイングしている場合には、シーケンシャル処理の延長が禁止され、以降の受信コマンドは、シーケンシャル処理が完了するまで全てランダムコマンドとしてキューイングされてしまう。このため、もしその受信コマンドの中に、現在のシーケンシャル処理に追加できるシーケンシャルコマンドが含まれていたとしても、シーケンシャル処理の完了後にランダムコマンドとして実行されてしまうため、コマンド処理の性能が低下してしまう。
【０００７】
特に、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｃｙ　Ａｒｒａｎｇｅｄ　Ｉｎｔｅｌｌｉｇｅｎｔ　Ｄｉｓｋ）システム等のマルチイニシエータ環境においては、あるホスト装置からシーケンシャルなコマンドが発行され続けている間に、別のホスト装置からのコマンドが割り込むと、コマンド処理の性能が大幅に低下してしまう。
【０００８】
そこで、本発明は、マルチイニシエータ環境において、あるホスト装置からシーケンシャルとなるコマンド群が発行されている時に、別のホスト装置からコマンドが発行された場合でも、シーケンシャル処理を停止することなく、コマンド処理速度を大幅に改善可能なコマンド処理方法及び記憶装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記の課題は、記録媒体に対するリード／ライトシーケンシャル処理において、シーケンシャル処理が終了するセクタを示すシーケンシャル処理終了セクタと、シーケンシャル処理を延長可能な範囲を示すシーケンシャル処理最大延長セクタとを用いて、シーケンシャル処理中に受信したリード／ライトコマンドがシーケンシャルアクセスでない場合に、受信コマンドの先頭セクタと該シーケンシャル処理終了セクタ及び該シーケンシャル処理最大延長セクタを比較する比較ステップと、前記比較の結果、前記記録媒体上の先頭セクタが、該シーケンシャル処理最終セクタ以前にあるか、或いは、該シーケンシャル処理最大延長セクタより後ろにある場合に、前記受信したリード／ライトコマンドをコマンドキューにキューイングしてシーケンシャル処理を継続させる処理ステップとを含むことを特徴とするコマンド処理方法によって達成できる。
【００１０】
上記の課題は、記録媒体に対するリード／ライトシーケンシャル処理において、シーケンシャル処理の終了セクタを示す第１のポインタと、シーケンシャル処理を延長可能な範囲を示すシーケンシャル処理最大延長セクタを示す第２のポインタを用いて、シーケンシャル処理中に受信したリード／ライトコマンドがシーケンシャルアクセスでない場合に、受信コマンドの先頭セクタと該第１のポインタ及び該第２のポインタとを比較する比較ステップと、前記比較の結果、前記記録媒体上の先頭セクタが、該シーケンシャル処理最終セクタ以前にあるか、或いは、該シーケンシャル処理最大延長セクタより後ろにある場合に、前記受信したリード／ライトコマンドをコマンドキューにキューイングしてシーケンシャル処理を継続させる処理ステップとを含むことを特徴とするコマンド処理方法によっても達成できる。
【００１１】
上記の課題は、記録媒体に対するリード／ライトシーケンシャル処理において、シーケンシャル処理の終了セクタを示すシーケンシャル処理終了セクタと、シーケンシャル処理を延長可能な範囲を示すシーケンシャル処理最大延長セクタとを用いて、シーケンシャル処理中に受信したリード／ライトコマンドがシーケンシャルアクセスでない場合に、受信コマンドの先頭セクタと該シーケンシャル処理終了セクタ及び該シーケンシャル処理最大延長セクタとを比較する比較手段と、前記比較の結果、前記記録媒体上の先頭セクタが、該シーケンシャル処理最終セクタ以前にあるか、或いは、該シーケンシャル処理最大延長セクタより後ろにある場合に、前記受信したリード／ライトコマンドをコマンドキューにキューイングしてシーケンシャル処理を継続させる処理手段とを備えたことを特徴とする記憶装置によっても達成できる。
【００１２】
上記の課題は、記録媒体に対するリード／ライトシーケンシャル処理において、シーケンシャル処理の終了セクタを示す第１のポインタと、シーケンシャル処理を延長可能な範囲を示すシーケンシャル処理最大延長セクタを示す第２のポインタを用いて、シーケンシャル処理中に受信したリード／ライトコマンドがシーケンシャルアクセスでない場合に、受信コマンドの先頭セクタと該第１のポインタ及び該第２のポインタとを比較する比較手段と、前記比較の結果、前記記録媒体上の先頭セクタが、該シーケンシャル処理最終セクタ以前にあるか、或いは、該シーケンシャル処理最大延長セクタより後ろにある場合に、前記受信したリード／ライトコマンドをコマンドキューにキューイングしてシーケンシャル処理を継続させる処理手段とを備えたことを特徴とする記憶装置によっても達成できる。
【００１３】
従って、本発明によれば、マルチイニシエータ環境において、あるホスト装置からシーケンシャルとなるコマンド群が発行されている時に、別のホスト装置からコマンドが発行された場合でも、シーケンシャル処理を停止することなく、コマンド処理速度を大幅に改善可能なコマンド処理方法及び記憶装置を実現することができる。
【００１４】
【発明の実施の形態】
以下、本発明になるコマンド処理方法及び本発明になる記憶装置の各実施例を、図面と共に説明する。
【００１５】
【実施例】
図１は、本発明になる記憶装置の一実施例を示すブロック図である。記憶装置の本実施例は、本発明になるコマンド処理方法の一実施例を用いる。本実施例では、本発明がディスク装置に適用されている。
【００１６】
図１において、ディスク装置１は、有線及び／又は無線の接続手段３を介してホスト装置２に接続されている。接続手段３は、ネットワーク等を含んでも良い。ディスク装置１は、ホスト転送処理部１１、コマンド処理部１２、コマンドキュー１３、ディスク制御部１４、ディスク１５及びバッファメモリ１６を含む。ディスク１５は、情報を記録再生可能なものであれば良く、磁気ディスク、光ディスク、光磁気ディスク等で構成される。ディスク１５は、ディスク装置１に対してロード／アンロードされる可搬型であっても、ディスク装置１内に固定的に設けられる固定型であっても良い。尚、本発明は、ディスク装置に限定されるものではないので、ディスク１５以外の、情報を記録再生可能な記録媒体を使用可能であることは、言うまでもない。
【００１７】
ホスト転送処理部１１は、ホスト装置２とコマンドやデータの送受信を行う。ホスト転送処理部１１は、ホスト装置２より受信したコマンドを、コマンド処理部１２に送出する。又、ホスト転送処理部１１は、バッファメモリ１６を介してディスク制御部１４と連携することで、ホスト装置２からのデータをバッファメモリ１６を介してディスク制御部１４に転送すると共に、ディスク１５から読み出したデータをバッファメモリ１６を介してホスト装置２へ転送する。　このように、バッファメモリ１６は、ホスト装置２とディスク装置１との間で送受信するデータを、一時的に格納するのに用いられる。
【００１８】
コマンド処理部１２は、ホスト装置２より受信したコマンドを解析し、ホスト転送処理部１１及びディスク制御部１４に処理を指示することで、コマンドを実行する。リード／ライトコマンドの実行では、ランダムアクセス又はシーケンシャルアクセスといったコマンドの性質と、コマンドキューのコマンド保持状態とを解析して、ディスク制御部１４にリード／ライト処理の指示を行う。
コマンドキュー１３は、コマンド処理部１２で直ちに実行しないか、或いは、直ちに実行できないと解析されたコマンドを、一時的に保持（キューイング）する。コマンドをコマンドキューにキューイングすることで、コマンド処理部１２は、コマンドの実行順序を変えることができる。
ディスク制御部１４は、コマンド処理部１２より指示されたリード／ライト処理を、記録媒体であるディスク１５に対して実施する。リード処理の場合、ディスク制御部１４は、ディスク１５から読み出したデータをバッファメモリ１６に格納する。ライト処理の場合、ディスク制御部１４は、ホスト転送処理部１１がバッファメモリ１６に格納したデータをディスク１５に書き込む。
【００１９】
シーケンシャル処理機能を備えた、例えば１チップからなるコマンド処理装置は、少なくともコマンド処理部１２を含む。
【００２０】
尚、図１に示すディスク装置１の基本構成自体は周知であり、他の周知の基本構成を採用しても良いことは、言うまでもない。
【００２１】
次に、本実施例の動作を、図２及び図３と共に説明する。図２は、シーケンシャル処理に対する追加コマンドのアクセス範囲を説明する図である。又、図３は、コマンド処理部１２が行うコマンド処理を説明するフローチャートである。
【００２２】
図２及び後述する図５〜図１２中、「０」，「１」，．．．はディスク１５上のセクタ番号を示し、「Ｅ」は最終セクタを示す。以下の説明では、例えば「セクタ１」とは、セクタ番号が「１」のセクタのことを言う。又、ＡＲ１〜ＡＲ４は追加コマンドのアクセス範囲、ＳＰＦＳはシーケンシャル処理の最終セクタを示すシーケンシャル処理最終セクタ、ＭＥＳはシーケンシャル処理を延長可能な範囲を示すシーケンシャル処理最大延長セクタを示す。
【００２３】
先ず、本実施例の動作の概略を説明すると、ランダムで受信したコマンドの最終セクタの値を、シーケンシャル処理最終セクタＳＰＦＳに格納し、ディスク装置１の最終セクタＥを、シーケンシャル処理最大延長セクタＭＥＳに格納し、次のコマンドがシーケンシャルコマンドであれば、シーケンシャル処理が開始される。
【００２４】
シーケンシャル処理は、シーケンシャル処理最終セクタＳＰＦＳのポインタ（以下、シーケンシャル処理最終セクタポインタＳＰＦＳＰと言う）の示すセクタまでのディスクアクセス処理が終わるまでに、次のシーケンシャルコマンドが発行されなければ終了する。
【００２５】
図３において、ステップＳ１は、シーケンシャル処理中であるか否かを判定し、シーケンシャル処理中でなければ、ステップＳ１１は、受信したコマンドをコマンドキュー１３にキューイングする。他方、シーケンシャル処理中であり、コマンドを新たに受信した場合は、受信コマンドがリード／ライトコマンドであるか否かを、図３に示すステップＳ２において判定する。リード／ライトコマンドでなければ、ステップＳ２１は、シーケンシャル処理の延長を禁止し、ステップＳ２２は、受信コマンドをコマンドキュー１３にキューイングする。以降に受信するコマンドは、シーケンシャル処理が禁止されているので、全てコマンドキュー１３にキューイングする。
他方、受信コマンドがリード／ライトコマンドであれば、受信コマンドの先頭セクタがシーケンシャル処理最終セクタポインタＳＰＦＳＰの示すセクタに対してシーケンシャルであるか否かを、図３に示すステップＳ３において判定する。シーケンシャルであれば、図３に示すステップＳ４において、シーケンシャル処理最終セクタポインタＳＰＦＳＰとシーケンシャル処理最大延長セクタＭＥＳのポインタ（以下、シーケンシャル処理最大延長セクタポインタＭＥＳＰと言う）を比較する。２つのポインタが一致していれば、シーケンシャル処理に追加することができないことを示しているので、ステップＳ４２は、シーケンシャル処理の延長を禁止し、受信コマンドをコマンドキュー１３にキューイングする。２つのポインタが一致していなければ、ステップＳ４１は、シーケンシャル処理最終セクタＳＰＦＳのポインタを受信コマンドの最終セクタの値に更新し、シーケンシャル処理に受信コマンドを追加する。
【００２６】
受信コマンドがシーケンシャルでなければ、受信コマンドの最終セクタが、シーケンシャル処理最終セクタポインタＳＰＦＳＰの示すセクタより前に位置するか否かを、図３に示すステップＳ５において判定する。受信コマンドの最終セクタが、シーケンシャル処理最終セクタポインタＳＰＦＳＰの示すセクタより前に位置する場合は、ステップＳ５１は、受信コマンドをコマンドキュー１３にキューイングして、現在のシーケンシャル処理の終了後に実行する。受信コマンドの最終セクタが、シーケンシャル処理最終セクタポインタＳＰＦＳＰの示すセクタより後ろに位置する場合は、現在のシーケンシャル処理がリードシーケンシャル処理であるかライトシーケンシャル処理であるかを、図３に示すステップＳ６において判定する。
【００２７】
現在のシーケンシャル処理が、ライトシーケンシャル処理であれば、今後延長されるライトシーケンシャル処理が、受領コマンドより先に実行してはならないので、ステップＳ８は、シーケンシャル処理最大延長セクタポインタＭＥＳＰを受信コマンドの先頭セクタ（番号）から「１」だけ減算した値に更新してから、ステップＳ８１において、受信コマンドをコマンドキュー１３にキューイングする。
【００２８】
現在のシーケンシャル処理が、リードシーケンシャル処理であれば、受信コマンドがリードコマンドであるかライトコマンドであるかを、図３に示すステップＳ７において判定する。受信コマンドがリードコマンドであれば、ステップＳ７１は、受信コマンドをコマンドキュー１３にキューイングする。受信コマンドがライトコマンドであれば、今後延長されるリードシーケンシャル処理を受領コマンドより先に実行してはならないので、ステップＳ８は、シーケンシャル処理最大延長セクタポインタＭＥＳＰを受信コマンドの先頭セクタ（番号）から「１」だけ減算した値に更新してから、ステップＳ８１において、受信コマンドをコマンドキュー１３にキューイングする。
【００２９】
図４は、コマンド処理部１２が行うシーケンシャル終了処理を説明するフローチャートである。シーケンシャル処理は、図４に示すシーケンシャル終了処理によって停止する。
【００３０】
図４において、ステップＳ１０１は、ディスクリード／ライトアクセス処理を完了し、ディスクリード／ライトアクセス処理完了割り込みを発生する。ステップＳ１０２は、シーケンシャル処理最終セクタＳＰＦＳが、シーケンシャル処理最大延長セクタＭＥＳと一致するか否かを判定する。ステップＳ１０２の判定結果がＮＯであると、ステップＳ１０３は、コマンドキュー１３にコマンドがあれば実行し、シーケンシャル処理を終了する。他方、ステップＳ１０２の判定結果がＹＥＳであると、ステップＳ１０４は、コマンドキュー１３が空であるか否かを判定し、判定結果がＮＯであると、シーケンシャル処理を継続する。ステップＳ１０４の判定結果がＹＥＳであると、ステップＳ１０５は、コマンドを受領すれば実行し、シーケンシャル処理を終了する。
上記の如きコマンド処理により、ランダムコマンドの受信によってシーケンシャル処理の延長を止めることなく、シーケンシャル処理実行中は、シーケンシャルな受信コマンドを追加することができる。
【００３１】
次に、リードシーケンシャル処理時の動作を、図３及び図５〜図１０と共に説明する。図５は、リードシーケンシャル処理開始時点のポインタ設定を説明する図である。図６は、リードシーケンシャル処理中にシーケンシャルなリードコマンドを受信した時のポインタ設定を説明する図である。図７は、リードシーケンシャル処理中にシーケンシャルなライトコマンドを受信した時のポインタ設定を説明する図である。図８は、リードシーケンシャル処理中にシーケンシャルでないリードコマンドを受信した時のポインタ設定を説明する図である。図９は、リードシーケンシャル処理中にシーケンシャルでないライトコマンドを受信した時のポインタ設定を説明する図である。図１０は、リードシーケンシャル処理中にシーケンシャルなリードコマンドを受信した時のポインタ設定を説明する図である。
【００３２】
図５に示すように、ディスク１５上のセクタ０，１，２をリードする３つのリードコマンドによるリードシーケンシャル処理が開始された時、シーケンシャル処理最終セクタポインタＳＰＦＳＰにはセクタ２が格納され、シーケンシャル処理最大延長セクタポインタＭＥＳＰにはディスク１５上の最終セクタＥが格納される。
【００３３】
図５に示す状態で、ディスク装置１がホスト装置２から新たにセクタ３をリードするリードコマンドを受信すると、シーケンシャル処理中となるので、図３に示すステップＳ１の判定結果はＹＥＳとなる。受信コマンドは、リード／ライトコマンドなので、図３に示すステップＳ２の判定結果はＹＥＳとなる。受信コマンドの先頭セクタであるセクタ３は、シーケンシャル処理最終セクタポインタＳＰＦＳＰの示すセクタ２とシーケンシャルであり、図３に示すステップＳ３の判定結果はＹＥＳとなる。この場合、シーケンシャル処理最終セクタポインタＳＰＦＳＰ（セクタ２を格納）とシーケンシャル処理最大延長セクタポインタＭＥＳＰ（最終セクタＥを格納）が一致しないので、図３に示すステップＳ４の判定結果はＮＯとなる。従って、図３に示すステップＳ４２により、シーケンシャル処理最終セクタポインタＳＰＦＳＰの値が図６に示すようにセクタ３に更新され、シーケンシャル処理が延長される。
【００３４】
図６に示す状態で、ディスク装置１がホスト装置２から新たにセクタ４をライトするライトコマンドを受信すると、シーケンシャル処理中となるので、図３に示すステップＳ１の判定結果はＹＥＳとなる。受信コマンドは、リード／ライトコマンドなので、図３に示すステップＳ２の判定結果はＹＥＳとなる。受信コマンドの先頭セクタであるセクタ３は、シーケンシャル処理最終セクタポインタＳＰＦＳＰの示すセクタ２とシーケンシャルであり、図３に示すステップＳ３の判定結果はＹＥＳとなる。この場合、シーケンシャル処理最終セクタポインタＳＰＦＳＰ（セクタ２を格納）とシーケンシャル処理最大延長セクタポインタＭＥＳＰ（最終セクタＥを格納）が一致しないので、図３に示すステップＳ４の判定結果はＮＯとなる。従って、図３に示すステップＳ４２により、シーケンシャル処理最終セクタポインタＳＰＦＳＰの値が図７に示すようにセクタ４に更新され、シーケンシャル処理が延長される。
【００３５】
図７に示す状態で、ディスク装置１がホスト装置２から新たにセクタ７をリードするリードコマンドを受信すると、シーケンシャル処理中となるので、図３に示すステップＳ１の判定結果はＹＥＳとなる。受信コマンドは、リード／ライトコマンドなので、図３に示すステップＳ２の判定結果はＹＥＳとなる。セクタ７は、シーケンシャル処理最終セクタポインタＳＰＦＳＰの示すセクタ３とシーケンシャルではなく、図３に示すステップＳ３の判定結果はＮＯとなる。又、セクタ７が、シーケンシャル処理最終セクタポインタＳＰＦＳＰの示すセクタ３より後ろに位置し、図３に示すステップＳ５の判定結果はＮＯとなる。現在のシーケンシャル処理は、リードシーケンシャル処理であり、図３に示すステップＳ６の後ステップＳ７が行われる。受信コマンドは、リードコマンドであり、図３に示すステップＳ７の判定結果はＹＥＳとなるので、ステップＳ７１は、図８に示すように受信コマンドをコマンドキュー１３にキューイングする。
【００３６】
図８に示す状態で、ディスク装置１がホスト装置２から新たにセクタ９をライトするライトコマンドを受信すると、シーケンシャル処理中となるので、図３に示すステップＳ１の判定結果はＹＥＳとなる。受信コマンドは、リード／ライトコマンドなので、図３に示すステップＳ２の判定結果はＹＥＳとなる。セクタ７は、シーケンシャル処理最終セクタポインタＳＰＦＳＰの示すセクタ３とシーケンシャルではなく、図３に示すステップＳ３の判定結果はＮＯとなる。又、セクタ７は、シーケンシャル処理最終セクタポインタＳＰＦＳＰの示すセクタ３より後ろに位置し、図３に示すステップＳ５の判定結果はＮＯとなる。現在のシーケンシャル処理は、リードシーケンシャル処理であり、図３に示すステップＳ６の後ステップＳ７が行われる。受信コマンドは、ライトコマンドであり、図３に示すステップＳ７の判定結果はＮＯとなるので、ステップＳ８は、図９に示すように、シーケンシャル処理最大延長セクタポインタＭＥＳＰの値を受信コマンドの先頭セクタであるセクタ９に更新する。
【００３７】
図９に示す状態で、ディスク装置１がホスト装置２から新たにセクタ５をリードするリードコマンドを受信すると、シーケンシャル処理中となるので、図３に示すステップＳ１の判定結果はＹＥＳとなる。受信コマンドは、リード／ライトコマンドなので、図３に示すステップＳ２の判定結果はＹＥＳとなる。受信コマンドの先頭セクタであるセクタ５は、シーケンシャル処理最終セクタポインタＳＰＦＳＰの示すセクタ４とシーケンシャルであり、図３に示すステップＳ３の判定結果はＹＥＳとなる。この場合、シーケンシャル処理最終セクタポインタＳＰＦＳＰ（セクタ４を格納）とシーケンシャル処理最大延長セクタポインタＭＥＳＰ（セクタ８を格納）が一致しないので、図３に示すステップＳ４の判定結果はＮＯとなる。従って、図３に示すステップＳ４２により、シーケンシャル処理最終セクタポインタＳＰＦＳＰの値が図１０に示すようにセクタ５に更新され、シーケンシャル処理が延長される。
【００３８】
尚、図９に示す状態では、セクタ７のリードコマンドはコマンドキュー１３にキューイング中である。
【００３９】
又、図１０に示す状態では、セクタ７のリードコマンドはコマンドキュー１３にキューイング中であり、セクタ９のライトコマンドはコマンドキュー１３にキューイング中である。
【００４０】
このように、リードシーケンシャル処理中に受領するシーケンシャルなリード／ライトコマンドは、シーケンシャル処理最終セクタポインタＳＰＦＳＰがシーケンシャル処理最大延長セクタポインタＭＥＳＰと一致するまで、途中のシーケンシャルでないコマンドに妨害されることなく、シーケンシャル処理に追加することができる。
【００４１】
次に、ライトシーケンシャル処理時の動作を、図３、図１１及び図１２と共に説明する。図１１は、ライトシーケンシャル処理中のポインタ設定を説明する図である。図１２は、ライトシーケンシャル処理中にシーケンシャルでないコマンドを受信した時のポインタ設定を説明する図である。
【００４２】
ライトシーケンシャル処理は、図３に示すステップＳ７までは、リードシーケンシャル処理の場合と同様に、シーケンシャル処理最終セクタポインタＳＰＦＳＰ及びシーケンシャル処理最大延長セクタポインタＭＥＳＰを操作する。
【００４３】
図１１に示すように、ライトシーケンシャル処理が行われている時、図３に示すステップＳ７まで処理が進むようなコマンドとして、セクタ７にアクセスするコマンドを受領した場合、ライトコマンドはコマンドを受領した順序で実行しなければならないので、ステップＳ７において、現在のシーケンシャル処理がライトシーケンシャル処理であることがわかった時点で、図３に示すステップＳ８により、図１２に示すようにシーケンシャル処理最大延長セクタポインタＳＰＦＳＰが受領コマンドの先頭セクタ（番号）から「１」を減算した値であるセクタ６に更新される。
【００４４】
尚、図１２に示す状態では、セクタ９のコマンドはコマンドキュー１３にキューイング中である。
【００４５】
このように、ライトシーケンシャル処理中に受領するシーケンシャルなライト／ライトコマンドも、シーケンシャル処理最終セクタポインタＳＰＦＳＰがシーケンシャル処理最大延長セクタポインタＭＥＳＰと一致するまで、途中のランダムコマンドに妨害されることなく、シーケンシャル処理に追加することができる。
【００４６】
尚、本発明は、以下に付記する発明をも包含するものである。
【００４７】
（付記１）　記録媒体に対するリード／ライトシーケンシャル処理において、シーケンシャル処理が終了するセクタを示すシーケンシャル処理終了セクタと、シーケンシャル処理を延長可能な範囲を示すシーケンシャル処理最大延長セクタとを用いて、シーケンシャル処理中に受信したリード／ライトコマンドがシーケンシャルアクセスでない場合に、受信コマンドの先頭セクタと該シーケンシャル処理終了セクタ及び該シーケンシャル処理最大延長セクタを比較する比較ステップと、
前記比較の結果、前記記録媒体上の先頭セクタが、該シーケンシャル処理最終セクタ以前にあるか、或いは、該シーケンシャル処理最大延長セクタより後ろにある場合に、前記受信したリード／ライトコマンドをコマンドキューにキューイングしてシーケンシャル処理を継続させる処理ステップとを含むことを特徴とする、コマンド処理方法。
【００４８】
（付記２）　記録媒体に対するリード／ライトシーケンシャル処理において、シーケンシャル処理の終了セクタを示す第１のポインタと、シーケンシャル処理を延長可能な範囲を示すシーケンシャル処理最大延長セクタを示す第２のポインタを用いて、シーケンシャル処理中に受信したリード／ライトコマンドがシーケンシャルアクセスでない場合に、受信コマンドの先頭セクタと該第１のポインタ及び該第２のポインタとを比較する比較ステップと、
前記比較の結果、前記記録媒体上の先頭セクタが、該シーケンシャル処理最終セクタ以前にあるか、或いは、該シーケンシャル処理最大延長セクタより後ろにある場合に、前記受信したリード／ライトコマンドをコマンドキューにキューイングしてシーケンシャル処理を継続させる処理ステップとを含むことを特徴とする、コマンド処理方法。
【００４９】
（付記３）　前記処理ステップは、リードシーケンシャル処理中に受信したシーケンシャルアクセスでないリードコマンドに対して前記比較の結果、前記受信したリードコマンドの先頭セクタが前記シーケンシャル処理最終セクタと前記シーケンシャル処理最大延長セクタとの間にあれば、前記受信したリードコマンドを前記コマンドキューにキューイングしてシーケンシャル処理を継続させることを特徴とする、付記２記載のコマンド処理方法。
【００５０】
（付記４）　前記処理ステップは、リードシーケンシャル処理中に受信したシーケンシャルアクセスでないライトコマンドに対して前記比較の結果、前記受信したライトコマンドの先頭セクタが前記シーケンシャル処理最終セクタと前記シーケンシャル処理最大延長セクタとの間にあれば、前記第１のポインタの値を前記受信したライトコマンドの先頭セクタの番号から１だけ減算した値に更新した後、前記受信したライトコマンドを前記コマンドキューにキューイングしてシーケンシャル処理を継続させることを特徴とする、付記２記載のコマンド処理方法。
【００５１】
（付記５）　前記処理ステップは、ライトシーケンシャル処理中に受信したシーケンシャルアクセスでないリード／ライトコマンドに対して前記比較の結果、前記受信したリード／ライトコマンドの先頭セクタが前記シーケンシャル処理最終セクタと前記シーケンシャル処理最大延長セクタとの間にあれば、前記第２のポインタの値を受信したリード／ライトコマンドの先頭セクタの番号から１だけ減算した値に更新した後、前記受信したリード／ライトコマンドを前記コマンドキューにキューイングしてシーケンシャル処理を継続させることを特徴とする、付記２記載のコマンド処理方法。
【００５２】
（付記６）　記録媒体に対するリード／ライトシーケンシャル処理において、シーケンシャル処理の終了セクタを示すシーケンシャル処理終了セクタと、シーケンシャル処理を延長可能な範囲を示すシーケンシャル処理最大延長セクタとを用いて、シーケンシャル処理中に受信したリード／ライトコマンドがシーケンシャルアクセスでない場合に、受信コマンドの先頭セクタと該シーケンシャル処理終了セクタ及び該シーケンシャル処理最大延長セクタとを比較する比較手段と、
前記比較の結果、前記記録媒体上の先頭セクタが、該シーケンシャル処理最終セクタ以前にあるか、或いは、該シーケンシャル処理最大延長セクタより後ろにある場合に、前記受信したリード／ライトコマンドをコマンドキューにキューイングしてシーケンシャル処理を継続させる処理手段とを備えたことを特徴とする、記憶装置。
【００５３】
（付記７）　記録媒体に対するリード／ライトシーケンシャル処理において、シーケンシャル処理の終了セクタを示す第１のポインタと、シーケンシャル処理を延長可能な範囲を示すシーケンシャル処理最大延長セクタを示す第２のポインタを用いて、シーケンシャル処理中に受信したリード／ライトコマンドがシーケンシャルアクセスでない場合に、受信コマンドの先頭セクタと該第１のポインタ及び該第２のポインタとを比較する比較手段と、
前記比較の結果、前記記録媒体上の先頭セクタが、該シーケンシャル処理最終セクタ以前にあるか、或いは、該シーケンシャル処理最大延長セクタより後ろにある場合に、前記受信したリード／ライトコマンドをコマンドキューにキューイングしてシーケンシャル処理を継続させる処理手段とを備えたことを特徴とする、記憶装置。
【００５４】
（付記８）　前記処理手段は、リードシーケンシャル処理中に受信したシーケンシャルアクセスでないリードコマンドに対して前記比較の結果、前記受信したリードコマンドの先頭セクタが前記シーケンシャル処理最終セクタと前記シーケンシャル処理最大延長セクタとの間にあれば、前記受信したリードコマンドを前記コマンドキューにキューイングしてシーケンシャル処理を継続させることを特徴とする、付記７記載の記憶装置。
【００５５】
（付記９）　前記処理手段は、リードシーケンシャル処理中に受信したシーケンシャルアクセスでないライトコマンドに対して前記比較の結果、前記受信したライトコマンドの先頭セクタが前記シーケンシャル処理最終セクタと前記シーケンシャル処理最大延長セクタとの間にあれば、前記第１のポインタの値を前記受信したライトコマンドの先頭セクタの番号から１だけ減算した値に更新した後、前記受信したライトコマンドを前記コマンドキューにキューイングしてシーケンシャル処理を継続させることを特徴とする、付記７記載の記憶装置。
【００５６】
（付記１０）　前記継続ステップは、ライトシーケンシャル処理中に受信したシーケンシャルアクセスでないリード／ライトコマンドに対して前記比較の結果、前記受信したリード／ライトコマンドの先頭セクタが前記シーケンシャル処理最終セクタと前記シーケンシャル処理最大延長セクタとの間にあれば、前記第２のポインタの値を受信したリード／ライトコマンドの先頭セクタの番号から１だけ減算した値に更新した後、前記受信したリード／ライトコマンドを前記コマンドキューにキューイングしてシーケンシャル処理を継続させることを特徴とする、付記７記載の記憶装置。
【００５７】
（付記１１）　記録媒体に対するリード／ライトシーケンシャル処理において、シーケンシャル処理の終了セクタを示すシーケンシャル処理終了セクタと、シーケンシャル処理を延長可能な範囲を示すシーケンシャル処理最大延長セクタとを用いて、シーケンシャル処理中に受信したリード／ライトコマンドがシーケンシャルアクセスでない場合に、受信コマンドの先頭セクタと該シーケンシャル処理終了セクタ及び該シーケンシャル処理最大延長セクタとを比較する比較部と、
前記比較の結果、前記記録媒体上の先頭セクタが、該シーケンシャル処理最終セクタ以前にあるか、或いは、該シーケンシャル処理最大延長セクタより後ろにある場合に、前記受信したリード／ライトコマンドをコマンドキューにキューイングしてシーケンシャル処理を継続させる処理部とを備えたことを特徴とする、コマンド処理装置。
【００５８】
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、種々の変形及び改良が可能であることは、言うまでもない。
【００５９】
【発明の効果】
本発明によれば、マルチイニシエータ環境において、あるホスト装置からシーケンシャルとなるコマンド群が発行されている時に、別のホスト装置からコマンドが発行された場合でも、シーケンシャル処理を停止することなく、コマンド処理速度を大幅に改善可能なコマンド処理方法及び記憶装置を実現することができる。
【図面の簡単な説明】
【図１】本発明になる記憶装置の一実施例を示すブロック図である。
【図２】シーケンシャル処理に対する追加コマンドのアクセス範囲を説明する図である。
【図３】コマンド処理を説明するフローチャートである。
【図４】シーケンシャル終了処理を説明するフローチャートである。
【図５】リードシーケンシャル処理開始時点のポインタ設定を説明する図である。
【図６】リードシーケンシャル処理中にシーケンシャルなリードコマンドを受信した時のポインタ設定を説明する図である。
【図７】リードシーケンシャル処理中にシーケンシャルなライトコマンドを受信した時のポインタ設定を説明する図である。
【図８】リードシーケンシャル処理中にシーケンシャルでないリードコマンドを受信した時のポインタ設定を説明する図である。
【図９】リードシーケンシャル処理中にシーケンシャルでないライトコマンドを受信した時のポインタ設定を説明する図である。
【図１０】リードシーケンシャル処理中にシーケンシャルなリードコマンドを受信した時のポインタ設定を説明する図である。
【図１１】ライトシーケンシャル処理中のポインタ設定を説明する図である。
【図１２】ライトシーケンシャル処理中にシーケンシャルでないコマンドを受信した時のポインタ設定を説明する図である。
【符号の説明】
１　　　ディスク装置
２　　　ホスト装置
１１　　　ホスト転送処理部
１２　　　コマンド処理部
１３　　　コマンドキュー
１４　　　ディスク制御部
１５　　　ディスク
１６　　　バッファメモリ
【図１】
2004102440.tif 000003
【図２】
2004102440.tif 000004
【図３】
2004102440.tif 000005
【図４】
2004102440.tif 000006
【図５】
2004102440.tif 000007
【図６】
2004102440.tif 000008
【図７】
2004102440.tif 000009
【図８】
2004102440.tif 000010
【図９】
2004102440.tif 000011
【図１０】
2004102440.tif 000012
【図１１】
2004102440.tif 000013
【図１２】
2004102440.tif 000014