(57)【要約】【課題】データの読出しまたは書込み要求を行なう外部装置に接続され、外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なうディスク装置において、データアクセスのための時間を短縮することを課題とする。【解決手段】ディスク装置は、外部装置から読出し／書込み要求を受信すると、取得されたアドレス情報を基本アドレス情報と次アドレス情報とに分けてアドレス情報記憶部に格納するとともにカウンタをインクリメントして、カウンタが最大値の次アドレス情報を選出する。そして、ディスク装置は、基本アドレス情報に該当する要求を受信した場合に、次アドレス情報に対応するデータをディスクから先行して読み出してバッファに格納する。その後、ディスク装置は、読出し要求を受信するとバッファに格納されたデータを外部装置に対して送信する。【選択図】        図１−３
2009230417.tif 000002
【特許請求の範囲】
【請求項１】
データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なうディスク装置であって、
前記外部装置から受信された読出し要求または書込み要求に保持される読み出されるデータの先頭と後尾との位置情報を示すアドレス情報であって、前記読み出されるデータの前記アドレス情報を示す基本アドレス情報と、前記基本アドレス情報のデータの次に読み出されるデータの前記アドレス情報を示す次アドレス情報と、前記基本アドレス情報に対する前記次アドレス情報が、前記外部装置から受信された読出し要求の受信回数を示すカウンタとを記憶するアドレス情報記憶手段と、
前記外部装置から読出し要求を受信した場合に、前記アドレス情報を取得し、前記アドレス情報記憶手段の基本アドレス情報に記憶されているか、または、前記アドレス情報記憶手段の基本アドレス情報に対応する次アドレス情報に記憶されているかを判定するアドレス情報取得手段と、
前記アドレス情報取得手段により取得されたアドレス情報が前記アドレス情報記憶手段の基本アドレス情報に記憶されていない場合に、当該アドレス情報を前記アドレス情報記憶手段の基本アドレス情報に格納する基本アドレス情報処理手段と、
前記基本アドレス情報処理手段により基本アドレス情報が格納された後に、前記アドレス情報取得手段により取得されたアドレス情報が当該基本アドレス情報に対応する前記次アドレス情報に記憶されていない場合に、当該アドレス情報を前記アドレス情報記憶手段の基本アドレス情報に対応付けて次アドレス情報に格納する次アドレス情報処理手段と、
前記次アドレス情報処理手段により基本アドレス情報に対応する次アドレス情報が格納された後に、前記アドレス情報取得手段により取得されたアドレス情報が当該基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応する前記カウンタをインクリメントするカウンタ処理手段と、
前記カウンタ処理手段によりインクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報を選出する次アドレス情報選出手段と、
前記次アドレス情報選出手段により前記基本アドレス情報のデータの次に読み出されるデータである次アドレス情報が選出された後に、前記アドレス情報取得手段によりアドレス情報が取得された場合に、当該アドレス情報の基本アドレス情報に対応する次アドレス情報のデータを前記ディスクから読み出してバッファに格納するデータ読出手段と、
前記データ読出手段においてデータを読み出された次アドレス情報であって、前記アドレス情報取得手段によりアドレス情報が取得された場合に、前記データ読出手段によりバッファに格納された当該次アドレス情報のデータを前記外部装置に対して送信するデータ送信手段と、
を備えたことを特徴とするディスク装置。
【請求項２】
前記次アドレス情報処理手段は、前記基本アドレス情報処理手段により基本アドレス情報が格納された後に、前記アドレス情報取得手段により取得された所定数のアドレス情報が当該基本アドレス情報に対応する前記次アドレス情報に記憶されていない場合に、当該所定数のアドレス情報を前記アドレス情報記憶手段の基本アドレス情報に対応付けて次アドレス情報にまとめて格納することを特徴とする請求項１に記載のディスク装置。
【請求項３】
前記カウンタ処理手段は、前記次アドレス情報処理手段により基本アドレス情報に対応する次アドレス情報がまとめて格納された後に、前記アドレス情報取得手段により取得されたアドレス情報が当該基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応する前記カウンタをインクリメントし、前記アドレス情報取得手段により取得されたアドレス情報が当該基本アドレス情報に対応する次アドレス情報として連続して受信されなかった場合に、当該次アドレス情報を削除することを特徴とする請求項２に記載のディスク装置。
【請求項４】
前記アドレス情報取得手段は、前記外部装置から読出し要求または書込み要求を受信した場合に、前記アドレス情報を取得して、前記アドレス情報記憶手段の基本アドレス情報に記憶されているか、または、前記アドレス情報記憶手段の基本アドレス情報に対応する次アドレス情報に記憶されているかを判定し、
前記基本アドレス情報処理手段は、前記アドレス情報取得手段により取得された書込み要求のアドレス情報が前記アドレス情報記憶手段の基本アドレス情報に記憶されていない場合に、当該アドレス情報を前記アドレス情報記憶手段の基本アドレス情報に格納し、
前記次アドレス情報処理手段は、前記基本アドレス情報処理手段により基本アドレス情報が格納された後に、前記アドレス情報取得手段により取得された書込み要求の所定数のアドレス情報が当該基本アドレス情報に対応する前記次アドレス情報に記憶されていない場合に、当該所定数のアドレス情報を前記アドレス情報記憶手段の基本アドレス情報に対応付けて次アドレス情報にまとめて格納し、
前記カウンタ処理手段は、前記次アドレス情報処理手段により基本アドレス情報に対応する次アドレス情報がまとめて格納された後に、前記アドレス情報取得手段により取得された読出し要求のアドレス情報が当該基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応する前記カウンタをインクリメントすることを特徴とする請求項１に記載のディスク装置。
【請求項５】
データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なうディスク装置に適したデータ先行読出し方法であって、
前記外部装置から受信された読出し要求または書込み要求に保持される読み出されるデータの先頭と後尾との位置情報を示すアドレス情報であって、前記読み出されるデータの前記アドレス情報を示す基本アドレス情報と、前記基本アドレス情報のデータの次に読み出されるデータの前記アドレス情報を示す次アドレス情報と、前記基本アドレス情報に対する前記次アドレス情報が、前記外部装置から受信された読出し要求の受信回数を示すカウンタとをアドレス情報記憶手段に記憶するアドレス情報記憶工程と、
前記外部装置から読出し要求を受信した場合に、前記アドレス情報を取得し、前記アドレス情報記憶手段の基本アドレス情報に記憶されているか、または、前記アドレス情報記憶手段の基本アドレス情報に対応する次アドレス情報に記憶されているかを判定するアドレス情報取得工程と、
前記アドレス情報取得工程により取得されたアドレス情報が前記アドレス情報記憶手段の基本アドレス情報に記憶されていない場合に、当該アドレス情報を前記アドレス情報記憶手段の基本アドレス情報に格納する基本アドレス情報処理工程と、
前記基本アドレス情報処理工程により基本アドレス情報が格納された後に、前記アドレス情報取得工程により取得されたアドレス情報が当該基本アドレス情報に対応する前記次アドレス情報に記憶されていない場合に、当該アドレス情報を前記アドレス情報記憶手段の基本アドレス情報に対応付けて次アドレス情報に格納する次アドレス情報処理工程と、
前記次アドレス情報処理工程により基本アドレス情報に対応する次アドレス情報が格納された後に、前記アドレス情報取得工程により取得されたアドレス情報が当該基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応する前記カウンタをインクリメントするカウンタ処理工程と、
前記カウンタ処理工程によりインクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報を選出する次アドレス情報選出工程と、
前記次アドレス情報選出工程により前記基本アドレス情報のデータの次に読み出されるデータである次アドレス情報が選出された後に、前記アドレス情報取得工程によりアドレス情報が取得された場合に、当該アドレス情報の基本アドレス情報に対応する次アドレス情報のデータを前記ディスクから読み出してバッファに格納するデータ読出工程と、
前記データ読出工程においてデータを読み出された次アドレス情報であって、前記アドレス情報取得工程によりアドレス情報が取得された場合に、前記データ読出工程によりバッファに格納された当該次アドレス情報のデータを前記外部装置に対して送信するデータ送信工程と、
を含んだことを特徴とするデータ先行読出し方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なうディスク装置およびデータ先行読出し方法に関する。
【背景技術】
【０００２】
従来より、ディスク装置は、ホストコンピュータなどの外部装置からの読出し／書込み要求を受け付けて、ディスクに記憶されるデータを読出したり、ディスクに対してデータを書込んだりする。このディスクに対する読出し／書込み処理は、ホストコンピュータなどの外部装置からの一つの読出し／書込み要求に対して一つの読出し／書込み処理を行う。
【０００３】
このディスク装置における読出し処理または書込み処理を図１０−１〜図１０−４を用いて説明する。例えば、ディスク装置におけるデータは、図１０−１に示すように、ファイル上やデータ上などにおいて連続するデータ「ａ  ｂｙｔｅ」であっても、当該データ「ａ  ｂｙｔｅ」が最大フレーム長「ｘ  ｂｙｔｅ」よりも大きいデータである場合に、当該最大フレーム長を最大としたフレームごとに分割される（ａ＝ｘ＋ｘ＋ｘ＋ｙ）。
【０００４】
そして、ホストコンピュータから読出し要求を受け付けたディスク装置は、図１０−２に示すように、当該読出し要求に保持される分割されたフレームごとの先頭位置情報「Ｓｔａｒｔａｄｄｒｅｓｓ」（以下、「Ｓａｄｄ」と言う）と、後尾位置情報「Ｅｎｄａｄｄｒｅｓｓ」（以下、「Ｅａｄｄ」と言う）とに基づいてデータを読み出す。
【０００５】
また、ホストコンピュータから書込み要求を受け付けたディスク装置は、図１０−３に示すように、当該書込み要求に保持される分割されたフレームごとの先頭位置情報「Ｓａｄｄ」と、後尾位置情報「Ｅａｄｄ」とに基づいてデータを書込む。
【０００６】
そして、ディスクにおいては、「Ｓａｄｄ１／Ｅａｄｄ１」であるデータと、「Ｓａｄｄ２／Ｅａｄｄ２」であるデータと、「Ｓａｄｄ３／Ｅａｄｄ３」であるデータと、「Ｓａｄｄ４／Ｅａｄｄ４」であるデータとして格納されている。また、ディスク装置は、この４つのデータ（フレーム）が元々１つのデータであったとしても、必ずしも連続したデータとして格納するわけではなく、図１０−４に示すような不連続なデータとして格納する場合もある。なお、図１０−１〜図１０−４は、従来技術に係るディスク装置における読出し処理または書込み処理を説明するための図である。
【０００７】
ここで、上記したディスク装置の構成における処理を、図１１を用いて説明する。ディスク装置は、ホストコンピュータからデータ読出し要求を受信すると（図１１の（１）参照）、受信された読出し要求に該当するデータがバッファに格納されているか否かを確認する（図１１の（２）参照）。
【０００８】
そして、ディスク装置は、読出し要求に該当するデータがバッファに格納されていない場合に、ディスクから該当するデータを読み出してバッファに格納する（図１１の（３）、（４）参照）。続いて、ディスク装置は、バッファに格納されたデータをホストコンピュータに対して送信する（図１１の（５）参照）。また、ディスク装置は、図１１の（２）において、受信された読出し要求に該当するデータがバッファに格納されている場合に、バッファに格納されたデータをホストコンピュータに対して送信する。なお、図１１は、従来技術に係るディスク装置の構成例における処理を示す図である。
【０００９】
また、上記したディスク装置においては、読出し要求を受け付けてからディスクにアクセスするために、データ読出し処理にかかる時間がかかってしまう。そこで、データ読出し処理にかかるアクセス時間を短縮するための様々な技術が開示されている。例えば、特許文献１では、記憶媒体から読み出したデータを、当該データの重要性に関して重み付けを行ないつつ、重み付けが大きいデータをリードバッファに順次格納する。そして、特許文献１では、ホストからの要求を受け付けると、記憶媒体からデータを読み出してホストに転送する。つまり、読出し要求の要求アドレスが連続することを想定して予めデータの先読みを行いバッファに格納して、読出し要求の要求アドレス（位置情報）が連続する場合に、順次読出しを実施することでデータ読出しの高速化をはかっている。
【００１０】
【特許文献１】特開２００１−１４１０９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記した従来の技術は、データアクセスのための時間がかかってしまうという課題があった。具体的には、従来技術に係るディスク装置は、ファイルやデータなどの格納場所が必ずしも連続したアドレスに格納されていない場合があり、ホストコンピュータからの読出し要求を受信してからでなければデータを取得することができないために、データアクセスのための時間がかかってしまうという課題があった。
【００１２】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、データアクセスのための時間を短縮することが可能であるディスク装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、本願の開示するディスク装置は、データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なうディスク装置であって、前記外部装置から受信された読出し要求または書込み要求に保持される読み出されるデータの先頭と後尾との位置情報を示すアドレス情報であって、前記読み出されるデータの前記アドレス情報を示す基本アドレス情報と、前記基本アドレス情報のデータの次に読み出されるデータの前記アドレス情報を示す次アドレス情報と、前記基本アドレス情報に対する前記次アドレス情報が、前記外部装置から受信された読出し要求の受信回数を示すカウンタとを記憶するアドレス情報記憶手段と、前記外部装置から読出し要求を受信した場合に、前記アドレス情報を取得し、前記アドレス情報記憶手段の基本アドレス情報に記憶されているか、または、前記アドレス情報記憶手段の基本アドレス情報に対応する次アドレス情報に記憶されているかを判定するアドレス情報取得手段と、前記アドレス情報取得手段により取得されたアドレス情報が前記アドレス情報記憶手段の基本アドレス情報に記憶されていない場合に、当該アドレス情報を前記アドレス情報記憶手段の基本アドレス情報に格納する基本アドレス情報処理手段と、前記基本アドレス情報処理手段により基本アドレス情報が格納された後に、前記アドレス情報取得手段により取得されたアドレス情報が当該基本アドレス情報に対応する前記次アドレス情報に記憶されていない場合に、当該アドレス情報を前記アドレス情報記憶手段の基本アドレス情報に対応付けて次アドレス情報に格納する次アドレス情報処理手段と、前記次アドレス情報処理手段により基本アドレス情報に対応する次アドレス情報が格納された後に、前記アドレス情報取得手段により取得されたアドレス情報が当該基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応する前記カウンタをインクリメントするカウンタ処理手段と、前記カウンタ処理手段によりインクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報を選出する次アドレス情報選出手段と、前記次アドレス情報選出手段により前記基本アドレス情報のデータの次に読み出されるデータである次アドレス情報が選出された後に、前記アドレス情報取得手段によりアドレス情報が取得された場合に、当該アドレス情報の基本アドレス情報に対応する次アドレス情報のデータを前記ディスクから読み出してバッファに格納するデータ読出手段と、前記データ読出手段においてデータを読み出された次アドレス情報であって、前記アドレス情報取得手段によりアドレス情報が取得された場合に、前記データ読出手段によりバッファに格納された当該次アドレス情報のデータを前記外部装置に対して送信するデータ送信手段と、を備えたことを要件とする。
【発明の効果】
【００１４】
本願の開示するディスク装置によれば、データアクセスのための時間を短縮することが可能であるという効果を奏する。
【発明を実施するための最良の形態】
【００１５】
以下に添付図面を参照して、この発明に係るディスク装置の実施例を詳細に説明する。なお、以下では、本発明に係るディスク装置の概要および特徴、ディスク装置の構成および処理の流れを順に説明し、最後に本実施例による効果を説明する。
【実施例１】
【００１６】
［概要および特徴］
まず最初に、図１−１〜図１−３を用いて、実施例１に係るディスク装置の概要および特徴を説明する。図１−１〜図１−３は、実施例１に係るディスク装置の概要および特徴を示す図である。
【００１７】
このディスク装置は、データを格納するディスクを有し、当該ディスク装置に接続されるホストコンピュータなどの外部装置から、ディスクに格納されているデータの読出し要求、または、ディスクに対してデータを書込む書込み要求を受け付ける。そして、ディスク装置は、読出し／書込み要求を受け付けると、ディスクに格納されているデータを読み出して外部装置に送信したり、ディスクに対してデータを書込んだりする。
【００１８】
このような構成において、ディスク装置は、データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なうことを概要とするものであり、特に、データアクセスのための時間を短縮することが可能である点を主たる特徴とする。
【００１９】
この主たる特徴について具体的に説明すると、ディスク装置は、外部装置から受信された読出し要求に保持される読み出されるデータの先頭と後尾との位置情報を示すアドレス情報であって、読み出されるデータのアドレス情報を示す基本アドレス情報と、当該基本アドレス情報のデータの次に読み出されるデータのアドレス情報を示す次アドレス情報と、当該基本アドレス情報に対する次アドレス情報について、外部装置から受信された読出し要求の受信回数を示すカウンタとを記憶するアドレス情報記憶部を有する。
【００２０】
このような状態において、ディスク装置は、外部装置から読出し要求を受信した場合に、当該読出し要求に保持されるデータの先頭と後尾との位置情報を示すアドレス情報を取得する。そして、ディスク装置は、取得されたアドレス情報がアドレス情報記憶部の基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報をアドレス情報記憶部の基本アドレス情報に格納する。また、ディスク装置は、取得されたアドレス情報がアドレス情報記憶部の基本アドレス情報に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報をアドレス情報記憶部の次アドレス情報に格納する（図１−１の（１）参照）。
【００２１】
具体的に説明すると、ディスク装置は、ホストコンピュータからＲｅａｄコマンド１を受信した場合に、当該Ｒｅａｄコマンド１に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ１」と、読み出すデータの後尾の位置情報「Ｅａｄｄ１」とを取得する。そして、ディスク装置は、取得されたアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部の基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」をアドレス情報記憶部の基本アドレス情報に格納する。
【００２２】
続いて、ディスク装置は、ホストコンピュータからＲｅａｄコマンド２を受信した場合に、当該Ｒｅａｄコマンド２に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ２」と、読み出すデータの後尾の位置情報「Ｅａｄｄ２」とを取得する。その後、ディスク装置は、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部の基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」をアドレス情報記憶部の基本アドレス情報に格納する。
【００２３】
また、ディスク装置は、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部の基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」をアドレス情報記憶部の次アドレス情報に格納する。
【００２４】
そして、ディスク装置は、ホストコンピュータからＲｅａｄコマンド３を受信した場合に、当該Ｒｅａｄコマンド３に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ３」と、読み出すデータの後尾の位置情報「Ｅａｄｄ３」とを取得する。続いて、ディスク装置は、取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」がアドレス情報記憶部の基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」をアドレス情報記憶部の基本アドレス情報に格納する。
【００２５】
また、ディスク装置は、取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」がアドレス情報記憶部の基本アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」をアドレス情報記憶部の次アドレス情報に格納する。
【００２６】
また、ディスク装置は、取得されたアドレス情報がアドレス情報記憶部の基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタをインクリメントする。そして、ディスク装置は、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報を選出する（図１−２の（２）参照）。
【００２７】
上記した例で具体的に説明すると、ディスク装置は、ホストコンピュータからＲｅａｄコマンド１を受信した後にＲｅａｄコマンド２を受信した場合に、当該Ｒｅａｄコマンド２に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ２」と、読み出すデータの後尾の位置情報「Ｅａｄｄ２」とを取得する。
【００２８】
そして、ディスク装置は、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部の基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタ「１」をインクリメントして「２」とする。続いて、ディスク装置は、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」を基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」の次アドレス情報として選出する。
【００２９】
そして、ディスク装置は、基本アドレス情報のデータの次に読み出されるデータである次アドレス情報が選出された後に、新たなアドレス情報が取得された場合に、当該アドレス情報の基本アドレス情報に対応する次アドレス情報のデータをディスクから読み出してバッファに格納する（図１−３の（３）参照）。
【００３０】
上記した例で具体的に説明すると、ディスク装置は、基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」のデータの次に読み出されるデータである次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」が選出された後に、ホストコンピュータからＲｅａｄコマンド１を受信した場合に、当該アドレス情報の基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」のデータをディスクから先行して読み出してバッファに格納する。
【００３１】
続いて、ディスク装置は、データを読み出された次アドレス情報であって、アドレス情報が取得された場合に、バッファに格納された次アドレス情報のデータを外部装置に対して送信する（図１−３の（４）参照）。
【００３２】
上記した例で具体的に説明すると、ディスク装置は、ホストコンピュータからＲｅａｄコマンド２を受信して、当該Ｒｅａｄコマンド２に保持されるアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」を取得した場合に、バッファに格納された基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」のデータをホストコンピュータに対して送信する。
【００３３】
なお、ディスク装置は、上記処理を繰り返し実施することで、基本アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」に対応する次アドレス情報を選出する。例えば、ディスク装置は、基本アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」に対応する次アドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」を選出する。そして、ディスク装置は、ホストコンピュータからＲｅａｄコマンド２を受信した場合に、基本アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」に対応する次アドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」のデータをディスクから先行して読み出してバッファに格納する。続いて、ディスク装置は、ホストコンピュータからＲｅａｄコマンド３を受信した場合に、バッファに格納されたデータをホストコンピュータに対して送信する。
【００３４】
このようなことから、実施例１に係るディスク装置は、データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なう場合に、ディスクに格納されているデータを先行して読み出すことができる結果、データアクセスのための時間を短縮することが可能である。
【００３５】
つまり、ディスク装置は、データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なう場合に、外部装置からの読出し要求に対応する次の読出し要求のアドレス情報（次アドレス情報）を選出し、外部装置から読出し要求を受信すると、次の読出し要求を受信する前に先行して当該次の読出し要求に該当するデータを読み出すので、従来技術のように、ディスクに格納されるデータの格納場所が連続した場合にのみ先行してデータを読み出すのと比較して、ディスクに格納されるデータの格納場所の連続、不連続にかかわらず、データアクセスのための時間を短縮することが可能である。
【００３６】
［実施例１に係るディスク装置の構成］
次に、図２を用いて、実施例１に係るディスク装置の構成を説明する。図２は、実施例１に係るディスク装置の構成を示す図である。
【００３７】
図２に示すように、ディスク装置１０は、Ｉ／Ｆ部１１と、ディスク１２と、記憶部１３と、制御部１４とを有し、接続されるホスト１からのデータ読出し／書込み要求に応じてディスク１２からデータを読み出したり、ディスク１２にデータを書込んだりする。
【００３８】
Ｉ／Ｆ部１１は、ＡＴＡ（Advanced  Technology  Attachment）インタフェースなどの仕様により、ホスト１との間で送受信される各種情報に関する通信を制御する。例えば、Ｉ／Ｆ部１１は、ＡＴＡインタフェースなどの仕様により、ホスト１からのデータ読出し要求であるＲｅａｄコマンドや、ホスト１からのデータ書込み要求であるＷｒｉｔｅコマンドなどを送受信したり、ファイルやその他データの送受信を行なったりする。
【００３９】
ディスク１２は、各種アプリケーションや所望のデータなどのユーザデータを記憶するディスクである。例えば、ディスク１２は、所定の最大フレーム長ごとに分割されたデータを連続して、または、不連続に記憶している。また、ディスク１２に格納されている分割されたデータは、フレームごとに先頭位置情報「Ｓａｄｄ」と後尾位置情報「Ｅａｄｄ」とを保持している。なお、ディスク装置１０は、位置情報「Ｓａｄｄ１／Ｅａｄｄ１」や「Ｓａｄｄ２／Ｅａｄｄ２」などに基づいてデータを読み出す。
【００４０】
記憶部１３は、制御部１４による各種処理に必要なデータや、制御部１４による各種処理結果を記憶し、特に本発明に密接に関連するものとしては、バッファメモリ１３ａと、アドレス情報記憶部１３ｂとを有する。また、記憶部１３は、ホスト１からの書込み要求「Ｗｒｉｔｅコマンド」や読出し要求「Ｒｅａｄコマンド」などが受信された順序を記憶（一時記憶）している。
【００４１】
バッファメモリ１３ａは、後述するデータ読出部１４ｂによってディスク１２から読み出されたデータを記憶している。例えば、バッファメモリ１３ａは、データ読出部１４ｂによってディスク１２から読み出された各種アプリケーションや所望のデータなどのユーザデータを記憶している。
【００４２】
アドレス情報記憶部１３ｂは、ホスト１から受信された読出し要求に保持される読み出されるデータの先頭と後尾との位置情報を示すアドレス情報であって、読み出されるデータのアドレス情報を示す基本アドレス情報と、当該基本アドレス情報のデータの次に読み出されるデータのアドレス情報を示す次アドレス情報と、当該基本アドレス情報に対する次アドレス情報について、ホスト１から受信された読出し要求の受信回数を示すカウンタとを記憶している。
【００４３】
例えば、アドレス情報記憶部１３ｂは、図３に示すように、ホスト１から受信された読出し要求「Ｒｅａｄコマンド」に保持される読み出されるデータの先頭「Ｓａｄｄ」と後尾「Ｅａｄｄ」との位置情報を示すアドレス情報「Ｓａｄｄ／Ｅａｄｄ」を記憶している。なお、図３は、アドレス情報記憶部１３ｂの例を示す図である。
【００４４】
このアドレス情報の詳細を説明すると、アドレス情報記憶部１３ｂは、読み出されるデータのアドレス情報を示す基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」と、当該基本アドレス情報のデータの次に読み出されるデータのアドレス情報を示す次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」と、当該基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対する次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」について、ホスト１から受信された読出し要求の受信回数を示すカウンタ「１」とを記憶している。
【００４５】
なお、アドレス情報記憶部１３ｂは、ディスク装置１０の電源がＯＦＦになった場合でも記憶されるデータを消失することのない不揮発メモリとするが、ＳＳＤ（Solid  State  Drive）装置などの記憶装置であってもよい。
【００４６】
制御部１４は、制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有するとともに、特に本発明に密接に関連するものとしては、コマンド処理部１４ａと、データ読出部１４ｂと、データ送信部１４ｃとを有し、これらによって種々の処理を実行する。
【００４７】
コマンド処理部１４ａは、ホスト１から読出し要求を受信した場合に、当該読出し要求に保持されるデータの先頭と後尾との位置情報を示すアドレス情報を取得する。そして、コマンド処理部１４ａは、取得されたアドレス情報がアドレス情報記憶部１３ｂの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報をアドレス情報記憶部１３ｂの基本アドレス情報に格納する。また、コマンド処理部１４ａは、取得されたアドレス情報がアドレス情報記憶部１３ｂの基本アドレス情報に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報をアドレス情報記憶部１３ｂの次アドレス情報に格納する。
【００４８】
具体的に例を挙げて説明すると、コマンド処理部１４ａは、ホスト１からＲｅａｄコマンド１を受信した場合に、当該Ｒｅａｄコマンド１に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ１」と、読み出すデータの後尾の位置情報「Ｅａｄｄ１」とを取得する。そして、コマンド処理部１４ａは、取得されたアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部１３ｂの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する。
【００４９】
続いて、コマンド処理部１４ａは、ホスト１からＲｅａｄコマンド２を受信した場合に、当該Ｒｅａｄコマンド２に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ２」と、読み出すデータの後尾の位置情報「Ｅａｄｄ２」とを取得する。その後、コマンド処理部１４ａは、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する。
【００５０】
また、コマンド処理部１４ａは、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」をアドレス情報記憶部１３ｂの次アドレス情報に格納する。
【００５１】
なお、ホスト１から受信したＲｅａｄコマンド２（例えば、アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」）の前にＲｅａｄコマンド１（例えば、アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」）を受信しているかどうかは、上記した記憶部１３に記憶（一時記憶）されているホスト１からＲｅａｄコマンドを受信した順序を確認すればよい。
【００５２】
そして、コマンド処理部１４ａは、ホスト１からＲｅａｄコマンド３を受信した場合に、当該Ｒｅａｄコマンド３に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ３」と、読み出すデータの後尾の位置情報「Ｅａｄｄ３」とを取得する。続いて、コマンド処理部１４ａは、取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」がアドレス情報記憶部１３ｂの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する。
【００５３】
また、コマンド処理部１４ａは、取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」をアドレス情報記憶部１３ｂの次アドレス情報に格納する。
【００５４】
また、コマンド処理部１４ａは、取得されたアドレス情報がアドレス情報記憶部１３ｂの基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタをインクリメントする。
【００５５】
上記した例で具体的に例を挙げると、コマンド処理部１４ａは、ホスト１からＲｅａｄコマンド１を受信した後にＲｅａｄコマンド２を受信した場合に、当該Ｒｅａｄコマンド２に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ２」と、読み出すデータの後尾の位置情報「Ｅａｄｄ２」とを取得する。
【００５６】
そして、コマンド処理部１４ａは、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタ「１」をインクリメントして「２」とする。
【００５７】
また、コマンド処理部１４ａは、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報を選出する。
【００５８】
上記した例で具体的に例を挙げると、コマンド処理部１４ａは、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」を基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」の次アドレス情報として選出する。なお、基本アドレス情報に対する次アドレス情報が収束しない場合（例えば、任意の数「ｋ」個の候補など）は、連続するデータがないものとして判断してデータの先行読出しに利用しない、あるいは、当該収束しないアドレス情報を削除する。
【００５９】
データ読出部１４ｂは、基本アドレス情報のデータの次に読み出されるデータである次アドレス情報が選出された後に、新たなアドレス情報が取得された場合に、当該アドレス情報の基本アドレス情報に対応する次アドレス情報のデータをディスク１２から読み出してバッファメモリ１３ａに格納する。
【００６０】
上記した例で具体的に例を挙げると、データ読出部１４ｂは、基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」のデータの次に読み出されるデータである次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」が選出された後に、ホスト１からＲｅａｄコマンド１を受信した場合に、当該アドレス情報の基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」のデータをディスク１２から先行して読み出してバッファメモリ１３ａに格納する。
【００６１】
データ送信部１４ｃは、データを読み出された次アドレス情報であって、アドレス情報が取得された場合に、バッファメモリ１３ａに格納された次アドレス情報のデータをホスト１に対して送信する。
【００６２】
上記した例で具体的に例を挙げると、データ送信部１４ｃは、ホスト１からＲｅａｄコマンド２を受信して、当該Ｒｅａｄコマンド２に保持されるアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」を取得した場合に、バッファメモリ１３ａに格納された基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」のデータをホスト１に対して送信する。
【００６３】
［実施例１に係る次アドレス情報選出処理］
次に、図４を用いて、実施例１に係るディスク装置１０による次アドレス情報選出処理を説明する。図４は、実施例１に係るディスク装置１０による次アドレス情報選出処理を説明するためのフローチャートである。
【００６４】
図４に示すように、ディスク装置１０は、ホスト１からＲｅａｄコマンド１を受信した場合に（ステップＳ１０１肯定）、当該Ｒｅａｄコマンド１に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ１」と、読み出すデータの後尾の位置情報「Ｅａｄｄ１」とのアドレス情報を取得する（ステップＳ１０２）。
【００６５】
そして、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」よりも前にホスト１からＲｅａｄコマンドを受信して、アドレス情報（前アドレス情報）を取得していたか否かを判定する（ステップＳ１０３）。続いて、ディスク装置１０は、前アドレス情報が存在しない場合に（ステップＳ１０３否定）、取得したアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」を前アドレス情報として記憶部１３に格納する（ステップＳ１１５）。
【００６６】
その後、ディスク装置１０は、ホスト１からＲｅａｄコマンド２を受信した場合に（ステップＳ１０１肯定）、当該Ｒｅａｄコマンド２に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ２」と、読み出すデータの後尾の位置情報「Ｅａｄｄ２」とのアドレス情報を取得する（ステップＳ１０２）。
【００６７】
そして、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」よりも前にホスト１からＲｅａｄコマンドを受信して、アドレス情報（前アドレス情報）を取得していたか否かを判定する（ステップＳ１０３）。続いて、ディスク装置１０は、前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」が存在する場合に（ステップＳ１０３肯定）、当該前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部１３ｂの基本アドレス情報に存在するか否かを判定する（ステップＳ１０４）。
【００６８】
その後、ディスク装置１０は、前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部１３ｂの基本アドレス情報に存在しない場合に（ステップＳ１０４否定）、当該前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する（ステップＳ１０５）。
【００６９】
そして、ディスク装置１０は、取得したアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報に存在するか否かを判定する（ステップＳ１０６）。続いて、ディスク装置１０は、取得したアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報に存在しない場合に（ステップＳ１０６否定）、取得したアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する（ステップＳ１０７）。
【００７０】
その後、ディスク装置１０は、取得したアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」配下の次アドレス情報に存在するか否かを判定する（ステップＳ１０８）。そして、ディスク装置１０は、次アドレス情報に存在しない場合に（ステップＳ１０８否定）、取得したアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」を前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」が格納されている基本アドレス情報配下の次アドレス情報としてアドレス情報記憶部１３ｂに格納する（ステップＳ１０９）。続いて、ディスク装置１０は、取得したアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」を前アドレス情報として記憶部１３に格納する（ステップＳ１１５）。
【００７１】
その後、ディスク装置１０は、ホスト１からＲｅａｄコマンド３を受信した場合に（ステップＳ１０１肯定）、当該Ｒｅａｄコマンド３に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ３」と、読み出すデータの後尾の位置情報「Ｅａｄｄ３」とのアドレス情報を取得する（ステップＳ１０２）。
【００７２】
そして、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」よりも前にホスト１からＲｅａｄコマンドを受信して、アドレス情報（前アドレス情報）を取得していたか否かを判定する（ステップＳ１０３）。続いて、ディスク装置１０は、前アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」が存在する場合に（ステップＳ１０３肯定）、当該前アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報に存在するか否かを判定する（ステップＳ１０４）。
【００７３】
その後、ディスク装置１０は、前アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報に存在しない場合に（ステップＳ１０４否定）、当該前アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する（ステップＳ１０５）。
【００７４】
そして、ディスク装置１０は、取得したアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」がアドレス情報記憶部１３ｂの基本アドレス情報に存在するか否かを判定する（ステップＳ１０６）。続いて、ディスク装置１０は、取得したアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」がアドレス情報記憶部１３ｂの基本アドレス情報に存在しない場合に（ステップＳ１０６否定）、取得したアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する（ステップＳ１０７）。
【００７５】
その後、ディスク装置１０は、取得したアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」配下の次アドレス情報に存在するか否かを判定する（ステップＳ１０８）。そして、ディスク装置１０は、次アドレス情報に存在しない場合に（ステップＳ１０８否定）、取得したアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」を前アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」が格納されている基本アドレス情報配下の次アドレス情報としてアドレス情報記憶部１３ｂに格納する（ステップＳ１０９）。
【００７６】
続いて、ディスク装置１０は、ホスト１からＲｅａｄコマンド１を受信した後に、ホスト１からＲｅａｄコマンド２を受信した場合に（ステップＳ１０１肯定）、当該Ｒｅａｄコマンド２に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ２」と、読み出すデータの後尾の位置情報「Ｅａｄｄ２」とのアドレス情報を取得する（ステップＳ１０２）。
【００７７】
その後、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」よりも前にホスト１からＲｅａｄコマンドを受信して、アドレス情報（前アドレス情報）を取得していたか否かを判定する（ステップＳ１０３）。そして、ディスク装置１０は、前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」が存在する場合に（ステップＳ１０３肯定）、当該前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部１３ｂの基本アドレス情報に存在するか否かを判定する（ステップＳ１０４）。
【００７８】
続いて、ディスク装置１０は、前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部１３ｂの基本アドレス情報に存在する場合に（ステップＳ１０４肯定）、取得したアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報に存在するか否かを判定する（ステップＳ１０６）。
【００７９】
その後、ディスク装置１０は、取得したアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報に存在する場合に（ステップＳ１０６肯定）、取得したアドレス「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」配下の次アドレス情報に存在するか否かを判定する（ステップＳ１０８）。
【００８０】
そして、ディスク装置１０は、次アドレス情報に存在する場合に（ステップＳ１０８肯定）、当該次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」のカウンタ「１」をインクリメントして「２」とする（ステップＳ１１０）。続いて、ディスク装置１０は、次アドレス情報の候補が複数存在するか否かを判定する（ステップＳ１１１）。
【００８１】
その後、ディスク装置１０は、次アドレス情報の候補が複数存在しない場合に（ステップＳ１１１否定）、取得したアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」を前アドレス情報として記憶部１３に格納する（ステップＳ１１５）。
【００８２】
また、ディスク装置１０は、次アドレス情報の候補が複数存在する場合に（ステップＳ１１１肯定）、アドレス情報記憶部１３ｂのカウンタが最大値のアドレス情報を算出する（ステップＳ１１２）。そして、ディスク装置１０は、アドレス情報記憶部１３ｂのカウンタが最大値の次アドレス情報が一つであるか否かを判定する（ステップＳ１１３）。続いて、ディスク装置１０は、アドレス情報記憶部１３ｂのカウンタが最大値の次アドレス情報が一つである場合に（ステップＳ１１３肯定）、前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対する次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」として選出する（ステップＳ１１４）。
【００８３】
その後、ディスク装置１０は、上記したアドレス情報記憶部１３ｂへのアドレス情報登録処理を繰り返し実施することによって、次アドレス情報を選出する。なお、ディスク装置１０は、次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」が選出された後にホスト１からＲｅａｄコマンド１を受信した場合に、ディスク１２から先行して「Ｓａｄｄ２／Ｅａｄｄ２」に該当するデータを読み出してバッファメモリ１３ａに格納する。そして、ディスク装置１０は、ホスト１からＲｅａｄコマンド２を受信した場合に、先行して読み出したデータをバッファメモリ１３ａから読み出してホスト１に送信する。
【００８４】
［実施例１による効果］
このようにして、実施例１によれば、ディスク装置１０は、データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なう場合に、ホスト１からの読出し要求を受信する前に、予め先行してディスク１２からデータを読み出してバッファに格納するので、データアクセスのための時間を短縮することが可能である。
【００８５】
例えば、ディスク装置１０は、データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なう場合に、ホスト１から受信された読出し要求に保持される読み出されるデータの先頭と後尾との位置情報を示すアドレス情報であって、読み出されるデータのアドレス情報を示す基本アドレス情報と、基本アドレス情報のデータの次に読み出されるデータのアドレス情報を示す次アドレス情報と、基本アドレス情報に対する次アドレス情報について、ホスト１から受信された読出し要求の受信回数を示すカウンタとを記憶する。そして、ディスク装置１０は、ホスト１から読み出し要求を受信した場合に、アドレス情報を取得する。続いて、ディスク装置１０は、取得されたアドレス情報が基本アドレス情報に記憶されていない場合に、当該アドレス情報を基本アドレス情報に格納する。また、ディスク装置１０は、取得されたアドレス情報が基本アドレス情報に対応する次アドレス情報に記憶されていない場合に、当該アドレス情報を次アドレス情報に格納する。また、ディスク装置１０は、取得されたアドレス情報が基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタをインクリメントする。その後、ディスク装置１０は、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報を選出する。そして、ディスク装置１０は、基本アドレス情報のデータの次に読み出されるデータである次アドレス情報が選出された後に、アドレス情報が取得された場合に、当該アドレス情報の基本アドレス情報に対応する次アドレス情報のデータをディスク１２から読み出してバッファメモリ１３ａに格納する。続いて、ディスク装置１０は、データを読み出された次アドレス情報であって、アドレス情報が取得された場合に、バッファに格納された次アドレス情報のデータをホスト１に対して送信する。この結果、ディスク装置１０は、データアクセスのための時間を短縮することが可能である。
【実施例２】
【００８６】
ところで、上記実施例１では、一つの読出し要求に対して当該読出し要求の次に受信した読出し要求が連続するデータであるか否かを判定して、連続するデータを選出する場合を説明したが、本発明はこれに限定されるものではなく、一つの読出し要求に対して当該読出し要求より後に受信する所定数ｎが連続するデータであるか否かを判定して、連続するデータを選出することもできる。
【００８７】
そこで、以下の実施例２では、図５−１〜図６を用いて、実施例２に係るディスク装置１０による処理について説明する。図５−１〜図５−３は、実施例２に係るディスク装置１０の概要および特徴を示す図であり、図６は、実施例２に係るディスク装置１０による次アドレス情報選出処理を説明するためのフローチャートである。なお、実施例２に係るディスク装置１０の各構成や一部の機能については、実施例１と同様であるためその説明を省略し、特に、実施例１とは異なる次アドレス情報の登録および選出処理について説明する。また、以下では、所定数ｎを「３」として４つの読出し要求を受信する場合の例を説明するが、当該所定数ｎは、「３」に限られるものではない。
【００８８】
［実施例２の概要および特徴］
図５−１に示すように、ディスク装置１０は、外部装置から読出し要求を受信した場合に、当該読出し要求に保持されるデータの先頭と後尾との位置情報を示すアドレス情報を取得する。そして、ディスク装置１０は、取得されたアドレス情報がアドレス情報記憶部の基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報をアドレス情報記憶部の基本アドレス情報に格納する。また、ディスク装置１０は、取得されたアドレス情報がアドレス情報記憶部の基本アドレス情報に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報をアドレス情報記憶部の次アドレス情報に所定数格納する（図５−１の（１）参照）。
【００８９】
具体的に説明すると、ディスク装置１０は、ホスト１からＲｅａｄコマンド１を受信した場合に、当該Ｒｅａｄコマンド１に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ１」と、読み出すデータの後尾の位置情報「Ｅａｄｄ１」とを取得する。そして、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部１３ｂの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する。
【００９０】
続いて、ディスク装置１０は、ホスト１からＲｅａｄコマンド２を受信した場合に、当該Ｒｅａｄコマンド２に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ２」と、読み出すデータの後尾の位置情報「Ｅａｄｄ２」とを取得する。その後、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する。
【００９１】
また、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」をアドレス情報記憶部１３ｂの次アドレス情報に格納する。
【００９２】
そして、ディスク装置１０は、ホスト１からＲｅａｄコマンド３を受信した場合に、当該Ｒｅａｄコマンド３に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ３」と、読み出すデータの後尾の位置情報「Ｅａｄｄ３」とを取得する。続いて、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」がアドレス情報記憶部１３ｂの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する。
【００９３】
また、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」をアドレス情報記憶部１３ｂの次アドレス情報に格納する。
【００９４】
また、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」をアドレス情報記憶部１３ｂの次アドレス情報に格納する。
【００９５】
そして、ディスク装置１０は、ホスト１からＲｅａｄコマンド４を受信した場合に、当該Ｒｅａｄコマンド４に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ４」と、読み出すデータの後尾の位置情報「Ｅａｄｄ４」とを取得する。続いて、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ４／Ｅａｄｄ４」がアドレス情報記憶部１３ｂの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ４／Ｅａｄｄ４」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する。
【００９６】
また、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ４／Ｅａｄｄ４」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ４／Ｅａｄｄ４」をアドレス情報記憶部１３ｂの次アドレス情報に格納する。
【００９７】
また、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ４／Ｅａｄｄ４」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ４／Ｅａｄｄ４」をアドレス情報記憶部１３ｂの次アドレス情報に格納する。
【００９８】
また、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ４／Ｅａｄｄ４」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ４／Ｅａｄｄ４」をアドレス情報記憶部１３ｂの次アドレス情報に格納する。
【００９９】
また、ディスク装置１０は、取得されたアドレス情報がアドレス情報記憶部１３ｂの基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタをインクリメントする（図５−２の（２）参照）。
【０１００】
上記した例で具体的に説明すると、ディスク装置１０は、ホスト１からＲｅａｄコマンド１を受信した後にＲｅａｄコマンド２を受信した場合に、当該Ｒｅａｄコマンド２に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ２」と、読み出すデータの後尾の位置情報「Ｅａｄｄ２」とを取得する。
【０１０１】
そして、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタ「１」をインクリメントして「２」とする。
【０１０２】
続いて、ディスク装置１０は、ホスト１からＲｅａｄコマンド１と、Ｒｅａｄコマンド２とを受信した後にＲｅａｄコマンドｘを受信した場合に、当該Ｒｅａｄコマンドｘに保持される読み出すデータの先頭の位置情報「Ｓａｄｄｘ」と、読み出すデータの後尾の位置情報「Ｅａｄｄｘ」とを取得する。その後、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄｘ／Ｅａｄｄｘ」を基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」および「Ｓａｄｄ２／Ｅａｄｄ２」に対応する次アドレス情報に格納する。
【０１０３】
そして、ディスク装置１０は、ホスト１からＲｅａｄコマンド１と、Ｒｅａｄコマンド２と、Ｒｅａｄコマンドｘとを受信した後にＲｅａｄコマンド３を受信した場合に、当該Ｒｅａｄコマンド３に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ３」と、読み出すデータの後尾の位置情報「Ｅａｄｄ３」とを取得する。
【０１０４】
続いて、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」および「Ｓａｄｄ２／Ｅａｄｄ２」に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタ「１」をインクリメントして「２」とする。
【０１０５】
そして、ディスク装置１０は、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報を選出する（図５−３の（３）参照）。
【０１０６】
上記した例で具体的に説明すると、ディスク装置１０は、ホスト１からＲｅａｄコマンド１を受信した後にＲｅａｄコマンド２を受信した場合に、当該Ｒｅａｄコマンド２に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ２」と、読み出すデータの後尾の位置情報「Ｅａｄｄ２」とを取得する。
【０１０７】
そして、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタ「２」をインクリメントして「３」とする。
【０１０８】
続いて、ディスク装置１０は、ホスト１からＲｅａｄコマンド１と、Ｒｅａｄコマンド２とを受信した後にＲｅａｄコマンドｙを受信した場合に、当該Ｒｅａｄコマンドｙに保持される読み出すデータの先頭の位置情報「Ｓａｄｄｙ」と、読み出すデータの後尾の位置情報「Ｅａｄｄｙ」とを取得する。その後、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄｙ／Ｅａｄｄｙ」を基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」および「Ｓａｄｄ２／Ｅａｄｄ２」に対応する次アドレス情報に格納する。
【０１０９】
そして、ディスク装置１０は、ホスト１からＲｅａｄコマンド１と、Ｒｅａｄコマンド２と、Ｒｅａｄコマンドｙとを受信した後にＲｅａｄコマンド３を受信した場合に、当該Ｒｅａｄコマンド３に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ３」と、読み出すデータの後尾の位置情報「Ｅａｄｄ３」とを取得する。
【０１１０】
続いて、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」および「Ｓａｄｄ２／Ｅａｄｄ２」に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタ「２」をインクリメントして「３」とする。
【０１１１】
そして、ディスク装置１０は、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」および「Ｓａｄｄ３／Ｅａｄｄ３」を、基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」、「Ｓａｄｄ２／Ｅａｄｄ２」それぞれの次アドレス情報として選出する。
【０１１２】
なお、図５−３においては、基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対する次アドレス情報である「Ｓａｄｄ２／Ｅａｄｄ２」と、「Ｓａｄｄ３／Ｅａｄｄ３」とのカウンタが最大値「３」となっているが、次アドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」については、基本アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」に対する次アドレス情報として選出されているため、基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対する次アドレス情報は「Ｓａｄｄ２／Ｅａｄｄ２」として選出する。
【０１１３】
そして、上記した処理により次アドレス情報を選出したディスク装置１０は、実施例１と同様に、ホスト１からＲｅａｄコマンド１を受信した場合に、次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」のデータをディスク１２から先行して読み出してバッファメモリ１３ａに格納する。続いて、ディスク装置１０は、ホスト１からＲｅａｄコマンド２を受信した場合に、バッファメモリ１３ａに格納された次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」のデータをホスト１に対して送信する。
【０１１４】
また、ディスク装置１０は、ホスト１からＲｅａｄコマンド２を受信した場合に、次アドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」のデータをディスク１２から先行して読み出してバッファメモリ１３ａに格納する。そして、ディスク装置１０は、ホスト１からＲｅａｄコマンド３を受信した場合に、バッファメモリ１３ａに格納された次アドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」のデータをホスト１に対して送信する。
【０１１５】
なお、ホスト１からのＲｅａｄコマンドにおいて２回目以降連続して受信されなかったアドレス情報については、次アドレス情報から削除することとしてもよい。
【０１１６】
このようなことから、実施例２に係るディスク装置１０は、ホスト１から送信されるデータ読出し要求の次に読出し要求されるデータのアドレス情報の選出を、複数のアドレス情報の候補から選出することができる結果、より精度の高い次アドレス情報選出をすることが可能である。さらに、ディスク装置１０は、ディスクに格納されているデータを先行して読み出すことができる結果、データアクセスのための時間を短縮することが可能である。
【０１１７】
つまり、ディスク装置１０は、ホスト１から次に読出し要求されると予測されるデータの次アドレス情報の選出を、複数の次アドレス情報の候補から選出することで、より高精度に次アドレス情報を選出する。また、ディスク装置１０は、より高精度に選出された次アドレス情報に基づいてホスト１から読出し要求されるデータを予測して、当該データを先行してディスク１２から読み出すことができる結果、先行して読み出したデータが異なることが少ないために、データアクセスのための時間を短縮することが可能である。
【０１１８】
［実施例２に係る次アドレス情報選出処理］
次に、図６を用いて、実施例２に係るディスク装置１０による次アドレス情報選出処理を説明する。図６は、実施例２に係るディスク装置１０による次アドレス情報選出処理を説明するためのフローチャートである。
【０１１９】
図６に示すように、ディスク装置１０は、ホスト１からＲｅａｄコマンド１を受信した場合に（ステップＳ２０１肯定）、当該Ｒｅａｄコマンド１に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ１」と、読み出すデータの後尾の位置情報「Ｅａｄｄ１」とを取得する（ステップＳ２０２）。
【０１２０】
そして、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」よりも前にホスト１からＲｅａｄコマンドを受信して、アドレス情報（前アドレス情報）を取得していたか否かを判定する（ステップＳ２０３）。続いて、ディスク装置１０は、前アドレス情報が存在しない場合に（ステップＳ２０３否定）、当該前アドレス情報がｍ個（例えば、ｍ＝３など）存在するか否かを判定する（ステップＳ２１４）。
【０１２１】
その後、ディスク装置１０は、前アドレス情報が３個存在しない場合に（ステップＳ２１４否定）、取得したアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」を前アドレス情報として記憶部１３に格納する（ステップＳ２１６）。
【０１２２】
そして、ディスク装置１０は、ホスト１からＲｅａｄコマンド２を受信した場合に（ステップＳ２０１肯定）、当該Ｒｅａｄコマンド２に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ２」と、読み出すデータの後尾の位置情報「Ｅａｄｄ２」とのアドレス情報を取得する（ステップＳ２０２）。
【０１２３】
続いて、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」よりも前にホスト１からＲｅａｄコマンドを受信して、アドレス情報（前アドレス情報）を取得していたか否かを判定する（ステップＳ２０３）。その後、ディスク装置１０は、前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」が存在する場合に（ステップＳ２０３肯定）、当該前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部１３ｂの基本アドレス情報に存在するか否かを判定する（ステップＳ２０４）。
【０１２４】
そして、ディスク装置１０は、前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部１３ｂの基本アドレス情報に存在しない場合に（ステップＳ２０４否定）、当該前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する（ステップＳ２０５）。
【０１２５】
続いて、ディスク装置１０は、前アドレス情報が３個存在するか否かを判定する（ステップＳ２１４）。その後、ディスク装置１０は、前アドレス情報が３個存在しない場合に（ステップＳ２１４否定）、取得したアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」を前アドレス情報として記憶部１３に格納する（ステップＳ２１６）。
【０１２６】
そして、ディスク装置１０は、ホスト１からＲｅａｄコマンド３を受信した場合に（ステップＳ２０１肯定）、当該Ｒｅａｄコマンド３に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ３」と、読み出すデータの後尾の位置情報「Ｅａｄｄ３」とのアドレス情報を取得する（ステップＳ２０２）。
【０１２７】
続いて、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」よりも前にホスト１からＲｅａｄコマンドを受信して、アドレス情報（前アドレス情報）を取得していたか否かを判定する（ステップＳ２０３）。その後、ディスク装置１０は、前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」と「Ｓａｄｄ２／Ｅａｄｄ２」とが存在する場合に（ステップＳ２０３肯定）、当該前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」と「Ｓａｄｄ２／Ｅａｄｄ２」とがアドレス情報記憶部１３ｂの基本アドレス情報に存在するか否かを判定する（ステップＳ２０４）。
【０１２８】
そして、ディスク装置１０は、前アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報に存在しない場合に（ステップＳ２０４否定）、当該前アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する（ステップＳ２０５）。
【０１２９】
続いて、ディスク装置１０は、前アドレス情報が３個存在するか否かを判定する（ステップＳ２１４）。その後、ディスク装置１０は、前アドレス情報が３個存在しない場合に（ステップＳ２１４否定）、取得したアドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」を前アドレス情報として記憶部１３に格納する（ステップＳ２１６）。
【０１３０】
そして、ディスク装置１０は、ホスト１からＲｅａｄコマンド４を受信した場合に（ステップＳ２０１肯定）、当該Ｒｅａｄコマンド４に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ４」と、読み出すデータの後尾の位置情報「Ｅａｄｄ４」とのアドレス情報を取得する（ステップＳ２０２）。
【０１３１】
続いて、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ４／Ｅａｄｄ４」よりも前にホスト１からＲｅａｄコマンドを受信して、アドレス情報（前アドレス情報）を取得していたか否かを判定する（ステップＳ２０３）。その後、ディスク装置１０は、前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」と「Ｓａｄｄ２／Ｅａｄｄ２」と「Ｓａｄｄ３／Ｅａｄｄ３」とが存在する場合に（ステップＳ２０３肯定）、当該前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」と「Ｓａｄｄ２／Ｅａｄｄ２」と「Ｓａｄｄ３／Ｅａｄｄ３」とがアドレス情報記憶部１３ｂの基本アドレス情報に存在するか否かを判定する（ステップＳ２０４）。
【０１３２】
そして、ディスク装置１０は、前アドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」がアドレス情報記憶部１３ｂの基本アドレス情報に存在しない場合に（ステップＳ２０４否定）、当該前アドレス情報「Ｓａｄｄ３／Ｅａｄｄ３」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する（ステップＳ２０５）。
【０１３３】
続いて、ディスク装置１０は、前アドレス情報が３個存在するか否かを判定する（ステップＳ２１４）。その後、ディスク装置１０は、前アドレス情報が３個存在する場合に（ステップＳ２１４肯定）、当該前アドレス情報において最も古いアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」を削除して（ステップＳ２１５）、取得したアドレス情報「Ｓａｄｄ４／Ｅａｄｄ４」を前アドレス情報として記憶部１３に格納する（ステップＳ２１６）。
【０１３４】
そして、ディスク装置１０は、ホスト１からＲｅａｄコマンド１を受信した後にＲｅａｄコマンド２を受信した場合に（ステップＳ２０１肯定）、当該Ｒｅａｄコマンド２に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ２」と、読み出すデータの後尾の位置情報「Ｅａｄｄ２」とのアドレス情報を取得する（ステップＳ２０２）。
【０１３５】
続いて、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」よりも前にホスト１からＲｅａｄコマンドを受信して、アドレス情報（前アドレス情報）を取得していたか否かを判定する（ステップＳ２０３）。その後、ディスク装置１０は、前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」が存在する場合に（ステップＳ２０３肯定）、当該前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部１３ｂの基本アドレス情報に存在するか否かを判定する（ステップＳ２０４）。
【０１３６】
そして、ディスク装置１０は、前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部１３ｂの基本アドレス情報に存在する場合に（ステップＳ２０４肯定）、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」が前アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」が記憶されている基本アドレス情報配下の次アドレス情報に存在するか否かを判定する（ステップＳ２０６）。
【０１３７】
続いて、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」が基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」配下の次アドレス情報に存在しない場合に（ステップＳ２０６否定）、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」を前アドレス情報が記憶されている基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」配下の次アドレス情報としてアドレス情報記憶部１３ｂに格納する（ステップＳ２０７）。なお、ディスク装置１０は、上記処理を同様に繰り返して、Ｒｅａｄコマンド３やＲｅａｄコマンド４などを受信して、次アドレス情報としてアドレス情報記憶部１３ｂに格納する。
【０１３８】
その後、ディスク装置１０は、ホスト１からＲｅａｄコマンド１を受信した後にＲｅａｄコマンド２を受信した場合に、取得したアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」が基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」配下の次アドレス情報に存在する場合に（ステップＳ２０６肯定）、当該次アドレス情報のカウンタ「１」をインクリメントして「２」とする（ステップＳ２０８）。なお、ディスク装置１０は、上記処理を同様に繰り返して、Ｒｅａｄコマンド３やＲｅａｄコマンド４などを受信して、次アドレス情報のカウンタをインクリメントする。
【０１３９】
そして、ディスク装置１０は、次アドレス情報の候補が複数存在する場合に（ステップＳ２０９肯定）、当該次アドレス情報に対するカウンタが最大値のアドレス情報を算出する（ステップＳ２１０）。続いて、ディスク装置１０は、カウンタが最大値のアドレス情報が一つである場合に（ステップＳ２１１）、前アドレス情報（基本アドレス情報）に対する次アドレス情報として選出する（ステップＳ２１２）。また、ディスク装置１０は、上記した処理を前アドレス情報ｍ個全て検索が完了するまで実施し（ステップＳ２１３否定）、前アドレス情報ｍ個全て検索が完了すると（ステップＳ２１３肯定）、ステップＳ２１４の処理を実施することとなる。
【０１４０】
［実施例２による効果］
このようにして、実施例２によれば、ディスク装置１０は、ディスク１２からのデータ先行読出しにかかる次アドレス情報の選出を、複数の次アドレス情報の候補から選出するので、より精度の高い次アドレス情報を選出することが可能である。また、ディスク装置１０は、より精度の高い次アドレス情報を選出して、先行して読み出すデータの誤りを抑制するので、データを一時記憶するバッファメモリの容量を最小限に抑えることが可能である。
【実施例３】
【０１４１】
ところで、上記実施例１および実施例２では、受信した読出し要求に基づいてアドレス情報記憶部１３ｂに格納されるアドレス情報を生成して、次アドレス情報を選出する場合を説明したが、本発明はこれに限定されるものではなく、受信した書込み要求に基づいてアドレス情報記憶部１３ｂに格納されるアドレス情報を生成して、受信した読出し要求に基づいて次アドレス情報を選出することもできる。
【０１４２】
そこで、以下の実施例３では、図７−１〜図８を用いて、実施例３に係るディスク装置１０による処理について説明する。図７−１〜図７−２は、実施例３に係るディスク装置１０の概要および特徴を示す図であり、図８は、実施例３に係るディスク装置１０による次アドレス情報選出処理を説明するためのフローチャートである。なお、実施例３に係るディスク装置１０の各構成や一部の機能については、実施例１と同様であるためその説明を省略し、特に、実施例１とは異なる次アドレス情報の登録および選出処理について説明する。
【０１４３】
［実施例３に係る概要および特徴］
図７−１に示すように、ディスク装置１０は、外部装置から書込み要求を受信した場合に、当該書込み要求に保持されるデータの先頭と後尾との位置情報を示すアドレス情報を取得する。そして、ディスク装置１０は、取得されたアドレス情報がアドレス情報記憶部の基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報をアドレス情報記憶部の基本アドレス情報に格納する。また、ディスク装置１０は、取得されたアドレス情報がアドレス情報記憶部の基本アドレス情報に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報をアドレス情報記憶部の次アドレス情報に所定数格納する（図７−１の（１）参照）。
【０１４４】
具体的に説明すると、ディスク装置１０は、ホスト１からＷｒｉｔｅコマンド１を受信した場合に、当該Ｗｒｉｔｅコマンド１に保持される書込むデータの先頭の位置情報「Ｓａｄｄ１」と、書込むデータの後尾の位置情報「Ｅａｄｄ１」とを取得する。そして、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部１３ｂの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する。
【０１４５】
続いて、ディスク装置１０は、ホスト１からＷｒｉｔｅコマンド２を受信した場合に、当該Ｗｒｉｔｅコマンド２に保持される書込むデータの先頭の位置情報「Ｓａｄｄ２」と、書込むデータの後尾の位置情報「Ｅａｄｄ２」とを取得する。その後、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する。
【０１４６】
また、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」をアドレス情報記憶部１３ｂの次アドレス情報に格納する。
【０１４７】
そして、ディスク装置１０は、ホスト１からＲｅａｄコマンド３を受信した後にＷｒｉｔｅコマンド４を受信した場合に、当該Ｗｒｉｔｅコマンド４に保持される書込むデータの先頭の位置情報「Ｓａｄｄ４」と、書込むデータの後尾の位置情報「Ｅａｄｄ４」とを取得する。続いて、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ４／Ｅａｄｄ４」がアドレス情報記憶部１３ｂの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ４／Ｅａｄｄ４」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する。
【０１４８】
また、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ４／Ｅａｄｄ４」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」と「Ｓａｄｄ２／Ｅａｄｄ２」とに対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Ｓａｄｄ４／Ｅａｄｄ４」をアドレス情報記憶部１３ｂの次アドレス情報に格納する。
【０１４９】
また、ディスク装置１０は、外部装置から読出し要求を受信した場合に、当該読出し要求に保持されるデータの先頭と後尾との位置情報を示すアドレス情報を取得する。そして、ディスク装置１０は、取得されたアドレス情報がアドレス情報記憶部の基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタをインクリメントする。続いて、ディスク装置１０は、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報を選出する（図７−２の（２）参照）。
【０１５０】
上記した例で具体的に説明すると、ディスク装置１０は、ホスト１からＲｅａｄコマンド１を受信した後にＲｅａｄコマンド２を受信した場合に、当該Ｒｅａｄコマンド２に保持される読み出すデータの先頭の位置情報「Ｓａｄｄ２」と、読み出すデータの後尾の位置情報「Ｅａｄｄ２」とを取得する。
【０１５１】
そして、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」がアドレス情報記憶部１３ｂの基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタ「１」をインクリメントして「２」とする。続いて、ディスク装置１０は、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」を基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」の次アドレス情報として選出する。なお、ディスク装置１０は、ホスト１からＷｒｉｔｅコマンド５やＷｒｉｔｅコマンド６などを受信した場合に、同様にアドレス情報をアドレス情報記憶部１３ｂに格納する。
【０１５２】
その後、ディスク装置１０は、上記した実施例１や実施例２などと同様に、基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」のデータの次に読み出されるデータである次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」が選出された後に、ホスト１からＲｅａｄコマンド１を受信した場合に、当該アドレス情報の基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」のデータをディスク１２から先行して読み出してバッファメモリ１３ａに格納する。
【０１５３】
そして、ディスク装置１０は、ホスト１からＲｅａｄコマンド２を受信して、当該Ｒｅａｄコマンド２に保持されるアドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」を取得した場合に、バッファメモリ１３ａに格納された基本アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対応する次アドレス情報「Ｓａｄｄ２／Ｅａｄｄ２」のデータをホスト１に対して送信する。
【０１５４】
［実施例３に係る次アドレス情報選出処理］
次に、図８を用いて、実施例３に係るディスク装置１０による次アドレス情報選出処理を説明する。図８は、実施例３に係るディスク装置１０による次アドレス情報選出処理を説明するためのフローチャートである。
【０１５５】
図８においては、Ｒｅａｄコマンドに対する前アドレス情報を「前アドレス情報（Ｒ）」とし、当該前アドレス情報（Ｒ）を格納しているテーブルのカラム数を「ｎ」とする。また、図８においては、Ｗｒｉｔｅコマンドに対する前アドレス情報を「前アドレス情報（Ｗ）」とし、当該前アドレス情報（Ｗ）を格納しているテーブルのカラム数を「ｍ」とする。なお、以下では、ホスト１からＷｒｉｔｅコマンドを受信した場合を説明した後に、ホスト１からＲｅａｄコマンドを受信する場合について説明する。
【０１５６】
（Ｗｒｉｔｅコマンド）
図８に示すように、ディスク装置１０は、ホスト１からＷｒｉｔｅコマンド１を受信した場合に（ステップＳ３０１肯定）、当該Ｗｒｉｔｅコマンド１に保持されるアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」を取得する（ステップＳ３０２）。そして、ディスク装置１０は、受信されたコマンド（要求）がＲｅａｄコマンドであるか否かを判定する（ステップＳ３０３）。
【０１５７】
続いて、ディスク装置１０は、受信されたコマンドがＷｒｉｔｅコマンドである場合に（ステップＳ３０３否定）、取得されたアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部１３ｂの基本アドレス情報に存在するか否かを判定する（ステップＳ３０４）。その後、ディスク装置１０は、取得されたアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部１３ｂの基本アドレス情報に存在しない場合に（ステップＳ３０４否定）、取得したアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」をアドレス情報記憶部１３ｂの基本アドレス情報に格納する（ステップＳ３０５）。
【０１５８】
そして、ディスク装置１０は、取得したアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」をＷｒｉｔｅコマンドに対する前アドレス情報（Ｗ）として記憶部１３に格納する（ステップＳ３０６）。なお、ディスク装置１０は、ステップＳ３０４において、取得したアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部１３ｂの基本アドレス情報に存在する場合に（ステップＳ３０４肯定）、当該アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」を基本アドレス情報に格納することなく、Ｗｒｉｔｅコマンドに対する前アドレス情報（Ｗ）として記憶部１３に格納する（ステップＳ３０６）。
【０１５９】
続いて、ディスク装置１０は、記憶部１３に予め前アドレス情報（Ｗ）が存在するか否かを判定し（ステップＳ３０８）、前アドレス情報（Ｗ）が存在する場合に（ステップＳ３０８肯定）、当該前アドレス情報（Ｗ）がアドレス情報記憶部１３ｂの基本アドレス情報に存在するか否かを判定する（ステップＳ３０９）。
【０１６０】
その後、ディスク装置１０は、前アドレス情報（Ｗ）がアドレス情報記憶部１３ｂの基本アドレス情報に存在する場合に（ステップＳ３０９肯定）、取得されたアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部１３ｂの基本アドレス情報配下の次アドレス情報に存在するか否かを判定する（ステップＳ３１０）。
【０１６１】
そして、ディスク装置１０は、次アドレス情報に存在しない場合に（ステップＳ３１０否定）、取得されたアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」を前アドレス情報が格納されている基本アドレス情報配下の次アドレスとして、アドレス情報記憶部１３ｂに格納する（ステップＳ３１１）。また、ディスク装置１０は、次アドレス情報に存在する場合に（ステップＳ３１０肯定）、次アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対するカウンタをインクリメントする（ステップＳ３１２）。
【０１６２】
続いて、ディスク装置１０は、アドレス情報記憶部１３ｂにおいて次アドレス情報の候補が複数存在する場合に（ステップＳ３１３肯定）、カウンタが最大値のアドレス情報を算出する（ステップＳ３１４）。その後、ディスク装置１０は、カウンタが最大値のアドレス情報が一つであるか否かを判定する（ステップＳ３１５）。
【０１６３】
そして、ディスク装置１０は、カウンタが最大値のアドレス情報が一つである場合に（ステップＳ３１５肯定）、当該カウンタが最大値のアドレス情報を、前アドレス情報（基本アドレス情報）に対する次アドレス情報として選出する（ステップＳ３１６）。また、ディスク装置１０は、上記した処理を前アドレス情報ｍ個全て検索が完了するまで実施し（ステップＳ３１７否定）、前アドレス情報ｍ個全て検索が完了すると（ステップＳ３１７肯定）、ステップＳ３０１の処理を実施することとなる。
【０１６４】
（Ｒｅａｄコマンド）
図８に示すように、ディスク装置１０は、ホスト１からＲｅａｄコマンド１を受信した場合に（ステップＳ３０１肯定）、当該Ｒｅａｄコマンド１に保持されるアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」を取得する（ステップＳ３０２）。そして、ディスク装置１０は、受信されたコマンド（要求）がＲｅａｄコマンドであるか否かを判定する（ステップＳ３０３）。
【０１６５】
続いて、ディスク装置１０は、受信されたコマンドがＲｅａｄコマンドである場合に（ステップＳ３０３肯定）、取得したアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」をＲｅａｄコマンドに対する前アドレス情報（Ｒ）として記憶部１３に格納する（ステップＳ３０７）。
【０１６６】
その後、ディスク装置１０は、記憶部１３に予め前アドレス情報（Ｒ）が存在するか否かを判定し（ステップＳ３０８）、前アドレス情報（Ｒ）が存在する場合に（ステップＳ３０８肯定）、当該前アドレス情報（Ｒ）がアドレス情報記憶部１３ｂの基本アドレス情報に存在するか否かを判定する（ステップＳ３０９）。
【０１６７】
そして、ディスク装置１０は、前アドレス情報（Ｒ）がアドレス情報記憶部１３ｂの基本アドレス情報に存在する場合に（ステップＳ３０９肯定）、取得されたアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」がアドレス情報記憶部１３ｂの基本アドレス情報配下の次アドレス情報に存在するか否かを判定する（ステップＳ３１０）。
【０１６８】
そして、ディスク装置１０は、次アドレス情報に存在しない場合に（ステップＳ３１０否定）、取得されたアドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」を前アドレス情報が格納されている基本アドレス情報配下の次アドレス情報として、アドレス情報記憶部１３ｂに格納する（ステップＳ３１１）。また、ディスク装置１０は、次アドレス情報に存在する場合に（ステップＳ３１０肯定）、次アドレス情報「Ｓａｄｄ１／Ｅａｄｄ１」に対するカウンタをインクリメントする（ステップＳ３１２）。
【０１６９】
続いて、ディスク装置１０は、アドレス情報記憶部１３ｂにおいて次アドレス情報の候補が複数存在する場合に（ステップＳ３１３肯定）、カウンタが最大値のアドレス情報を算出する（ステップＳ３１４）。その後、ディスク装置１０は、カウンタが最大値のアドレス情報が一つであるか否かを判定する（ステップＳ３１５）。
【０１７０】
そして、ディスク装置１０は、カウンタが最大値のアドレス情報が一つである場合に（ステップＳ３１５肯定）、当該カウンタが最大値のアドレス情報を、前アドレス情報（基本アドレス情報）に対する次アドレス情報として選出する（ステップＳ３１６）。また、ディスク装置１０は、上記した処理を前アドレス情報ｎ個全て検索が完了するまで実施し（ステップＳ３１７否定）、前アドレス情報ｎ個全て検索が完了すると（ステップＳ３１７肯定）、ステップＳ３０１の処理を実施することとなる。
【０１７１】
このようなことから、実施例３に係るディスク装置１０は、ホスト１から送信されるデータ読出し要求の次に読出し要求されるデータのアドレス情報の選出を、書込み要求と読出し要求とに基づいて選出することができる結果、迅速に次アドレス情報を選出することが可能である。
【０１７２】
つまり、ディスク装置１０は、ホスト１からの書込み要求がなければ、当該書込み要求に該当するデータの読出し要求がないことを利用し、ホスト１から受信した書込み要求に基づいてアドレス情報記憶部１３ｂに格納されるアドレス情報を生成して、受信した読出し要求に基づいて次アドレス情報のカウンタをインクリメントして、次アドレス情報を選出することで、迅速に次アドレス情報を選出することが可能である。
【実施例４】
【０１７３】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも
種々の異なる形態にて実施されてよいものである。そこで、（１）ディスク装置の構成、（２）プログラムにおいて異なる実施例を説明する。
【０１７４】
（１）ディスク装置の構成
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメタを含む情報（例えば、図２に示したような「アドレス情報記憶部１３ｂ」の具体的名称や情報など）については、特記する場合を除いて任意に変更することができる。
【０１７５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、例えば、コマンド処理部１４ａを、Ｒｅａｄ／Ｗｒｉｔｅコマンドからアドレス情報を取得する「アドレス情報取得部」と、取得されたアドレス情報をアドレス情報記憶部１３ｂに格納する「アドレス情報処理部」と、取得されたアドレス情報に基づいてアドレス情報記憶部１３ｂのカウンタをインクリメントする「カウンタ処理部」と、カウンタが最大値の次アドレス情報を選出する「次アドレス情報選出部」とに分散するなど、その全部または一部を、各種の負担や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１７６】
（２）プログラム
ところで、上記の実施例では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本発明はこれに限定されるものではなく、あらかじめ用意されたプログラムをコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図９を用いて、上記の実施例に示したディスク装置１０と同様の機能を有するデータ先行読出しプログラムを実行するコンピュータの一例を説明する。図９は、データ先行読出しプログラムを実行するコンピュータを示す図である。
【０１７７】
図９に示すように、ディスク装置としてのコンピュータ１１０は、ＣＰＵ１４０、ＲＯＭ１５０およびＲＡＭ１６０をバス１８０などで接続される。
【０１７８】
ＲＯＭ１５０には、上記の実施例１に示したディスク装置１０と同様の機能を発揮するデータ先行読出しプログラム、つまり、図９に示すようにアドレス情報取得プログラム１５０ａと、基本アドレス情報処理プログラム１５０ｂと、次アドレス情報処理プログラム１５０ｃと、カウンタ処理プログラム１５０ｄと、次アドレス情報選出プログラム１５０ｅと、データ読出プログラム１５０ｆと、データ送信プログラム１５０ｇとが、あらかじめ記憶されている。なお、これらのプログラム１５０ａ〜プログラム１５０ｇについては、図２に示したディスク装置１０の各構成要素と同様、適宜統合または、分散してもよい。
【０１７９】
そして、ＣＰＵ１４０がこれらのプログラム１５０ａ〜プログラム１５０ｇをＲＯＭ１５０から読み出して実行することで、図９に示すように、プログラム１５０ａ〜プログラム１５０ｇは、アドレス情報取得プロセス１４０ａと、基本アドレス情報処理プロセス１４０ｂと、次アドレス情報処理プロセス１４０ｃと、カウンタ処理プロセス１４０ｄと、次アドレス情報選出プロセス１４０ｅと、データ読出プロセス１４０ｆと、データ送信プロセス１４０ｇとして機能するようになる。なお、プロセス１４０ａ〜プロセス１４０ｇは、図２に示した、コマンド処理部１４ａと、データ読出部１４ｂと、データ送信部１４ｃとに対応する。
【０１８０】
そして、ＣＰＵ１４０はＲＡＭ１６０に記録されたアドレス情報データ１６０ａに基づいてデータ先行読出しプログラムを実行する。
【図面の簡単な説明】
【０１８１】
【図１−１】実施例１に係るディスク装置の概要および特徴を示す図である。
【図１−２】実施例１に係るディスク装置の概要および特徴を示す図である。
【図１−３】実施例１に係るディスク装置の概要および特徴を示す図である。
【図２】実施例１に係るディスク装置の構成を示す図である。
【図３】アドレス情報記憶部の例を示す図である。
【図４】実施例１に係るディスク装置による次アドレス情報選出処理を説明するためのフローチャートである。
【図５−１】実施例２に係るディスク装置の概要および特徴を示す図である。
【図５−２】実施例２に係るディスク装置の概要および特徴を示す図である。
【図５−３】実施例２に係るディスク装置の概要および特徴を示す図である。
【図６】実施例２に係るディスク装置による次アドレス情報選出処理を説明するためのフローチャートである。
【図７−１】実施例３に係るディスク装置の概要および特徴を示す図である。
【図７−２】実施例３に係るディスク装置の概要および特徴を示す図である。
【図８】実施例３に係るディスク装置による次アドレス情報選出処理を説明するためのフローチャートである。
【図９】データ先行読出しプログラムを実行するコンピュータを示す図である。
【図１０−１】従来技術に係るディスク装置における読出し処理または書込み処理を説明するための図である。
【図１０−２】従来技術に係るディスク装置における読出し処理または書込み処理を説明するための図である。
【図１０−３】従来技術に係るディスク装置における読出し処理または書込み処理を説明するための図である。
【図１０−４】従来技術に係るディスク装置における読出し処理または書込み処理を説明するための図である。
【図１１】従来技術に係るディスク装置の構成例における処理を示す図である。
【符号の説明】
【０１８２】
１  ホスト
１０  ディスク装置
１１  Ｉ／Ｆ部
１２  ディスク
１３  記憶部
１３ａ  バッファメモリ
１３ｂ  アドレス情報記憶部
１４  制御部
１４ａ  コマンド処理部
１４ｂ  データ読出部
１４ｃ  データ送信部
【図１−１】
2009230417.tif 000003
【図１−２】
2009230417.tif 000004
【図１−３】
2009230417.tif 000005
【図２】
2009230417.tif 000006
【図３】
2009230417.tif 000007
【図４】
2009230417.tif 000008
【図５−１】
2009230417.tif 000009
【図５−２】
2009230417.tif 000010
【図５−３】
2009230417.tif 000011
【図６】
2009230417.tif 000012
【図７−１】
2009230417.tif 000013
【図７−２】
2009230417.tif 000014
【図８】
2009230417.tif 000015
【図９】
2009230417.tif 000016
【図１０−１】
2009230417.tif 000017
【図１０−２】
2009230417.tif 000018
【図１０−３】
2009230417.tif 000019
【図１０−４】
2009230417.tif 000020
【図１１】
2009230417.tif 000021