JP2009230417A - ディスク装置およびデータ先行読出し方法 - Google Patents

ディスク装置およびデータ先行読出し方法 Download PDF

Info

Publication number
JP2009230417A
JP2009230417A JP2008074341A JP2008074341A JP2009230417A JP 2009230417 A JP2009230417 A JP 2009230417A JP 2008074341 A JP2008074341 A JP 2008074341A JP 2008074341 A JP2008074341 A JP 2008074341A JP 2009230417 A JP2009230417 A JP 2009230417A
Authority
JP
Japan
Prior art keywords
address information
basic
data
stored
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
JP2008074341A
Other languages
English (en)
Inventor
Kanekatsu Shoji
謙克 東海林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008074341A priority Critical patent/JP2009230417A/ja
Priority to US12/408,720 priority patent/US8065477B2/en
Publication of JP2009230417A publication Critical patent/JP2009230417A/ja
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

【課題】データの読出しまたは書込み要求を行なう外部装置に接続され、外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なうディスク装置において、データアクセスのための時間を短縮することを課題とする。
【解決手段】ディスク装置は、外部装置から読出し/書込み要求を受信すると、取得されたアドレス情報を基本アドレス情報と次アドレス情報とに分けてアドレス情報記憶部に格納するとともにカウンタをインクリメントして、カウンタが最大値の次アドレス情報を選出する。そして、ディスク装置は、基本アドレス情報に該当する要求を受信した場合に、次アドレス情報に対応するデータをディスクから先行して読み出してバッファに格納する。その後、ディスク装置は、読出し要求を受信するとバッファに格納されたデータを外部装置に対して送信する。
【選択図】 図1−3

Description

この発明は、データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なうディスク装置およびデータ先行読出し方法に関する。
従来より、ディスク装置は、ホストコンピュータなどの外部装置からの読出し/書込み要求を受け付けて、ディスクに記憶されるデータを読出したり、ディスクに対してデータを書込んだりする。このディスクに対する読出し/書込み処理は、ホストコンピュータなどの外部装置からの一つの読出し/書込み要求に対して一つの読出し/書込み処理を行う。
このディスク装置における読出し処理または書込み処理を図10−1〜図10−4を用いて説明する。例えば、ディスク装置におけるデータは、図10−1に示すように、ファイル上やデータ上などにおいて連続するデータ「a byte」であっても、当該データ「a byte」が最大フレーム長「x byte」よりも大きいデータである場合に、当該最大フレーム長を最大としたフレームごとに分割される(a=x+x+x+y)。
そして、ホストコンピュータから読出し要求を受け付けたディスク装置は、図10−2に示すように、当該読出し要求に保持される分割されたフレームごとの先頭位置情報「Startaddress」(以下、「Sadd」と言う)と、後尾位置情報「Endaddress」(以下、「Eadd」と言う)とに基づいてデータを読み出す。
また、ホストコンピュータから書込み要求を受け付けたディスク装置は、図10−3に示すように、当該書込み要求に保持される分割されたフレームごとの先頭位置情報「Sadd」と、後尾位置情報「Eadd」とに基づいてデータを書込む。
そして、ディスクにおいては、「Sadd1/Eadd1」であるデータと、「Sadd2/Eadd2」であるデータと、「Sadd3/Eadd3」であるデータと、「Sadd4/Eadd4」であるデータとして格納されている。また、ディスク装置は、この4つのデータ(フレーム)が元々1つのデータであったとしても、必ずしも連続したデータとして格納するわけではなく、図10−4に示すような不連続なデータとして格納する場合もある。なお、図10−1〜図10−4は、従来技術に係るディスク装置における読出し処理または書込み処理を説明するための図である。
ここで、上記したディスク装置の構成における処理を、図11を用いて説明する。ディスク装置は、ホストコンピュータからデータ読出し要求を受信すると(図11の(1)参照)、受信された読出し要求に該当するデータがバッファに格納されているか否かを確認する(図11の(2)参照)。
そして、ディスク装置は、読出し要求に該当するデータがバッファに格納されていない場合に、ディスクから該当するデータを読み出してバッファに格納する(図11の(3)、(4)参照)。続いて、ディスク装置は、バッファに格納されたデータをホストコンピュータに対して送信する(図11の(5)参照)。また、ディスク装置は、図11の(2)において、受信された読出し要求に該当するデータがバッファに格納されている場合に、バッファに格納されたデータをホストコンピュータに対して送信する。なお、図11は、従来技術に係るディスク装置の構成例における処理を示す図である。
また、上記したディスク装置においては、読出し要求を受け付けてからディスクにアクセスするために、データ読出し処理にかかる時間がかかってしまう。そこで、データ読出し処理にかかるアクセス時間を短縮するための様々な技術が開示されている。例えば、特許文献1では、記憶媒体から読み出したデータを、当該データの重要性に関して重み付けを行ないつつ、重み付けが大きいデータをリードバッファに順次格納する。そして、特許文献1では、ホストからの要求を受け付けると、記憶媒体からデータを読み出してホストに転送する。つまり、読出し要求の要求アドレスが連続することを想定して予めデータの先読みを行いバッファに格納して、読出し要求の要求アドレス(位置情報)が連続する場合に、順次読出しを実施することでデータ読出しの高速化をはかっている。
特開2001−14109号公報
しかしながら、上記した従来の技術は、データアクセスのための時間がかかってしまうという課題があった。具体的には、従来技術に係るディスク装置は、ファイルやデータなどの格納場所が必ずしも連続したアドレスに格納されていない場合があり、ホストコンピュータからの読出し要求を受信してからでなければデータを取得することができないために、データアクセスのための時間がかかってしまうという課題があった。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、データアクセスのための時間を短縮することが可能であるディスク装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本願の開示するディスク装置は、データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なうディスク装置であって、前記外部装置から受信された読出し要求または書込み要求に保持される読み出されるデータの先頭と後尾との位置情報を示すアドレス情報であって、前記読み出されるデータの前記アドレス情報を示す基本アドレス情報と、前記基本アドレス情報のデータの次に読み出されるデータの前記アドレス情報を示す次アドレス情報と、前記基本アドレス情報に対する前記次アドレス情報が、前記外部装置から受信された読出し要求の受信回数を示すカウンタとを記憶するアドレス情報記憶手段と、前記外部装置から読出し要求を受信した場合に、前記アドレス情報を取得し、前記アドレス情報記憶手段の基本アドレス情報に記憶されているか、または、前記アドレス情報記憶手段の基本アドレス情報に対応する次アドレス情報に記憶されているかを判定するアドレス情報取得手段と、前記アドレス情報取得手段により取得されたアドレス情報が前記アドレス情報記憶手段の基本アドレス情報に記憶されていない場合に、当該アドレス情報を前記アドレス情報記憶手段の基本アドレス情報に格納する基本アドレス情報処理手段と、前記基本アドレス情報処理手段により基本アドレス情報が格納された後に、前記アドレス情報取得手段により取得されたアドレス情報が当該基本アドレス情報に対応する前記次アドレス情報に記憶されていない場合に、当該アドレス情報を前記アドレス情報記憶手段の基本アドレス情報に対応付けて次アドレス情報に格納する次アドレス情報処理手段と、前記次アドレス情報処理手段により基本アドレス情報に対応する次アドレス情報が格納された後に、前記アドレス情報取得手段により取得されたアドレス情報が当該基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応する前記カウンタをインクリメントするカウンタ処理手段と、前記カウンタ処理手段によりインクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報を選出する次アドレス情報選出手段と、前記次アドレス情報選出手段により前記基本アドレス情報のデータの次に読み出されるデータである次アドレス情報が選出された後に、前記アドレス情報取得手段によりアドレス情報が取得された場合に、当該アドレス情報の基本アドレス情報に対応する次アドレス情報のデータを前記ディスクから読み出してバッファに格納するデータ読出手段と、前記データ読出手段においてデータを読み出された次アドレス情報であって、前記アドレス情報取得手段によりアドレス情報が取得された場合に、前記データ読出手段によりバッファに格納された当該次アドレス情報のデータを前記外部装置に対して送信するデータ送信手段と、を備えたことを要件とする。
本願の開示するディスク装置によれば、データアクセスのための時間を短縮することが可能であるという効果を奏する。
以下に添付図面を参照して、この発明に係るディスク装置の実施例を詳細に説明する。なお、以下では、本発明に係るディスク装置の概要および特徴、ディスク装置の構成および処理の流れを順に説明し、最後に本実施例による効果を説明する。
[概要および特徴]
まず最初に、図1−1〜図1−3を用いて、実施例1に係るディスク装置の概要および特徴を説明する。図1−1〜図1−3は、実施例1に係るディスク装置の概要および特徴を示す図である。
このディスク装置は、データを格納するディスクを有し、当該ディスク装置に接続されるホストコンピュータなどの外部装置から、ディスクに格納されているデータの読出し要求、または、ディスクに対してデータを書込む書込み要求を受け付ける。そして、ディスク装置は、読出し/書込み要求を受け付けると、ディスクに格納されているデータを読み出して外部装置に送信したり、ディスクに対してデータを書込んだりする。
このような構成において、ディスク装置は、データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なうことを概要とするものであり、特に、データアクセスのための時間を短縮することが可能である点を主たる特徴とする。
この主たる特徴について具体的に説明すると、ディスク装置は、外部装置から受信された読出し要求に保持される読み出されるデータの先頭と後尾との位置情報を示すアドレス情報であって、読み出されるデータのアドレス情報を示す基本アドレス情報と、当該基本アドレス情報のデータの次に読み出されるデータのアドレス情報を示す次アドレス情報と、当該基本アドレス情報に対する次アドレス情報について、外部装置から受信された読出し要求の受信回数を示すカウンタとを記憶するアドレス情報記憶部を有する。
このような状態において、ディスク装置は、外部装置から読出し要求を受信した場合に、当該読出し要求に保持されるデータの先頭と後尾との位置情報を示すアドレス情報を取得する。そして、ディスク装置は、取得されたアドレス情報がアドレス情報記憶部の基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報をアドレス情報記憶部の基本アドレス情報に格納する。また、ディスク装置は、取得されたアドレス情報がアドレス情報記憶部の基本アドレス情報に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報をアドレス情報記憶部の次アドレス情報に格納する(図1−1の(1)参照)。
具体的に説明すると、ディスク装置は、ホストコンピュータからReadコマンド1を受信した場合に、当該Readコマンド1に保持される読み出すデータの先頭の位置情報「Sadd1」と、読み出すデータの後尾の位置情報「Eadd1」とを取得する。そして、ディスク装置は、取得されたアドレス情報「Sadd1/Eadd1」がアドレス情報記憶部の基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd1/Eadd1」をアドレス情報記憶部の基本アドレス情報に格納する。
続いて、ディスク装置は、ホストコンピュータからReadコマンド2を受信した場合に、当該Readコマンド2に保持される読み出すデータの先頭の位置情報「Sadd2」と、読み出すデータの後尾の位置情報「Eadd2」とを取得する。その後、ディスク装置は、取得されたアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部の基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd2/Eadd2」をアドレス情報記憶部の基本アドレス情報に格納する。
また、ディスク装置は、取得されたアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部の基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd2/Eadd2」をアドレス情報記憶部の次アドレス情報に格納する。
そして、ディスク装置は、ホストコンピュータからReadコマンド3を受信した場合に、当該Readコマンド3に保持される読み出すデータの先頭の位置情報「Sadd3」と、読み出すデータの後尾の位置情報「Eadd3」とを取得する。続いて、ディスク装置は、取得されたアドレス情報「Sadd3/Eadd3」がアドレス情報記憶部の基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd3/Eadd3」をアドレス情報記憶部の基本アドレス情報に格納する。
また、ディスク装置は、取得されたアドレス情報「Sadd3/Eadd3」がアドレス情報記憶部の基本アドレス情報「Sadd2/Eadd2」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd3/Eadd3」をアドレス情報記憶部の次アドレス情報に格納する。
また、ディスク装置は、取得されたアドレス情報がアドレス情報記憶部の基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタをインクリメントする。そして、ディスク装置は、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報を選出する(図1−2の(2)参照)。
上記した例で具体的に説明すると、ディスク装置は、ホストコンピュータからReadコマンド1を受信した後にReadコマンド2を受信した場合に、当該Readコマンド2に保持される読み出すデータの先頭の位置情報「Sadd2」と、読み出すデータの後尾の位置情報「Eadd2」とを取得する。
そして、ディスク装置は、取得されたアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部の基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタ「1」をインクリメントして「2」とする。続いて、ディスク装置は、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報「Sadd2/Eadd2」を基本アドレス情報「Sadd1/Eadd1」の次アドレス情報として選出する。
そして、ディスク装置は、基本アドレス情報のデータの次に読み出されるデータである次アドレス情報が選出された後に、新たなアドレス情報が取得された場合に、当該アドレス情報の基本アドレス情報に対応する次アドレス情報のデータをディスクから読み出してバッファに格納する(図1−3の(3)参照)。
上記した例で具体的に説明すると、ディスク装置は、基本アドレス情報「Sadd1/Eadd1」のデータの次に読み出されるデータである次アドレス情報「Sadd2/Eadd2」が選出された後に、ホストコンピュータからReadコマンド1を受信した場合に、当該アドレス情報の基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報「Sadd2/Eadd2」のデータをディスクから先行して読み出してバッファに格納する。
続いて、ディスク装置は、データを読み出された次アドレス情報であって、アドレス情報が取得された場合に、バッファに格納された次アドレス情報のデータを外部装置に対して送信する(図1−3の(4)参照)。
上記した例で具体的に説明すると、ディスク装置は、ホストコンピュータからReadコマンド2を受信して、当該Readコマンド2に保持されるアドレス情報「Sadd2/Eadd2」を取得した場合に、バッファに格納された基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報「Sadd2/Eadd2」のデータをホストコンピュータに対して送信する。
なお、ディスク装置は、上記処理を繰り返し実施することで、基本アドレス情報「Sadd2/Eadd2」に対応する次アドレス情報を選出する。例えば、ディスク装置は、基本アドレス情報「Sadd2/Eadd2」に対応する次アドレス情報「Sadd3/Eadd3」を選出する。そして、ディスク装置は、ホストコンピュータからReadコマンド2を受信した場合に、基本アドレス情報「Sadd2/Eadd2」に対応する次アドレス情報「Sadd3/Eadd3」のデータをディスクから先行して読み出してバッファに格納する。続いて、ディスク装置は、ホストコンピュータからReadコマンド3を受信した場合に、バッファに格納されたデータをホストコンピュータに対して送信する。
このようなことから、実施例1に係るディスク装置は、データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なう場合に、ディスクに格納されているデータを先行して読み出すことができる結果、データアクセスのための時間を短縮することが可能である。
つまり、ディスク装置は、データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なう場合に、外部装置からの読出し要求に対応する次の読出し要求のアドレス情報(次アドレス情報)を選出し、外部装置から読出し要求を受信すると、次の読出し要求を受信する前に先行して当該次の読出し要求に該当するデータを読み出すので、従来技術のように、ディスクに格納されるデータの格納場所が連続した場合にのみ先行してデータを読み出すのと比較して、ディスクに格納されるデータの格納場所の連続、不連続にかかわらず、データアクセスのための時間を短縮することが可能である。
[実施例1に係るディスク装置の構成]
次に、図2を用いて、実施例1に係るディスク装置の構成を説明する。図2は、実施例1に係るディスク装置の構成を示す図である。
図2に示すように、ディスク装置10は、I/F部11と、ディスク12と、記憶部13と、制御部14とを有し、接続されるホスト1からのデータ読出し/書込み要求に応じてディスク12からデータを読み出したり、ディスク12にデータを書込んだりする。
I/F部11は、ATA(Advanced Technology Attachment)インタフェースなどの仕様により、ホスト1との間で送受信される各種情報に関する通信を制御する。例えば、I/F部11は、ATAインタフェースなどの仕様により、ホスト1からのデータ読出し要求であるReadコマンドや、ホスト1からのデータ書込み要求であるWriteコマンドなどを送受信したり、ファイルやその他データの送受信を行なったりする。
ディスク12は、各種アプリケーションや所望のデータなどのユーザデータを記憶するディスクである。例えば、ディスク12は、所定の最大フレーム長ごとに分割されたデータを連続して、または、不連続に記憶している。また、ディスク12に格納されている分割されたデータは、フレームごとに先頭位置情報「Sadd」と後尾位置情報「Eadd」とを保持している。なお、ディスク装置10は、位置情報「Sadd1/Eadd1」や「Sadd2/Eadd2」などに基づいてデータを読み出す。
記憶部13は、制御部14による各種処理に必要なデータや、制御部14による各種処理結果を記憶し、特に本発明に密接に関連するものとしては、バッファメモリ13aと、アドレス情報記憶部13bとを有する。また、記憶部13は、ホスト1からの書込み要求「Writeコマンド」や読出し要求「Readコマンド」などが受信された順序を記憶(一時記憶)している。
バッファメモリ13aは、後述するデータ読出部14bによってディスク12から読み出されたデータを記憶している。例えば、バッファメモリ13aは、データ読出部14bによってディスク12から読み出された各種アプリケーションや所望のデータなどのユーザデータを記憶している。
アドレス情報記憶部13bは、ホスト1から受信された読出し要求に保持される読み出されるデータの先頭と後尾との位置情報を示すアドレス情報であって、読み出されるデータのアドレス情報を示す基本アドレス情報と、当該基本アドレス情報のデータの次に読み出されるデータのアドレス情報を示す次アドレス情報と、当該基本アドレス情報に対する次アドレス情報について、ホスト1から受信された読出し要求の受信回数を示すカウンタとを記憶している。
例えば、アドレス情報記憶部13bは、図3に示すように、ホスト1から受信された読出し要求「Readコマンド」に保持される読み出されるデータの先頭「Sadd」と後尾「Eadd」との位置情報を示すアドレス情報「Sadd/Eadd」を記憶している。なお、図3は、アドレス情報記憶部13bの例を示す図である。
このアドレス情報の詳細を説明すると、アドレス情報記憶部13bは、読み出されるデータのアドレス情報を示す基本アドレス情報「Sadd1/Eadd1」と、当該基本アドレス情報のデータの次に読み出されるデータのアドレス情報を示す次アドレス情報「Sadd2/Eadd2」と、当該基本アドレス情報「Sadd1/Eadd1」に対する次アドレス情報「Sadd2/Eadd2」について、ホスト1から受信された読出し要求の受信回数を示すカウンタ「1」とを記憶している。
なお、アドレス情報記憶部13bは、ディスク装置10の電源がOFFになった場合でも記憶されるデータを消失することのない不揮発メモリとするが、SSD(Solid State Drive)装置などの記憶装置であってもよい。
制御部14は、制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有するとともに、特に本発明に密接に関連するものとしては、コマンド処理部14aと、データ読出部14bと、データ送信部14cとを有し、これらによって種々の処理を実行する。
コマンド処理部14aは、ホスト1から読出し要求を受信した場合に、当該読出し要求に保持されるデータの先頭と後尾との位置情報を示すアドレス情報を取得する。そして、コマンド処理部14aは、取得されたアドレス情報がアドレス情報記憶部13bの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報をアドレス情報記憶部13bの基本アドレス情報に格納する。また、コマンド処理部14aは、取得されたアドレス情報がアドレス情報記憶部13bの基本アドレス情報に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報をアドレス情報記憶部13bの次アドレス情報に格納する。
具体的に例を挙げて説明すると、コマンド処理部14aは、ホスト1からReadコマンド1を受信した場合に、当該Readコマンド1に保持される読み出すデータの先頭の位置情報「Sadd1」と、読み出すデータの後尾の位置情報「Eadd1」とを取得する。そして、コマンド処理部14aは、取得されたアドレス情報「Sadd1/Eadd1」がアドレス情報記憶部13bの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd1/Eadd1」をアドレス情報記憶部13bの基本アドレス情報に格納する。
続いて、コマンド処理部14aは、ホスト1からReadコマンド2を受信した場合に、当該Readコマンド2に保持される読み出すデータの先頭の位置情報「Sadd2」と、読み出すデータの後尾の位置情報「Eadd2」とを取得する。その後、コマンド処理部14aは、取得されたアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd2/Eadd2」をアドレス情報記憶部13bの基本アドレス情報に格納する。
また、コマンド処理部14aは、取得されたアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd2/Eadd2」をアドレス情報記憶部13bの次アドレス情報に格納する。
なお、ホスト1から受信したReadコマンド2(例えば、アドレス情報「Sadd2/Eadd2」)の前にReadコマンド1(例えば、アドレス情報「Sadd1/Eadd1」)を受信しているかどうかは、上記した記憶部13に記憶(一時記憶)されているホスト1からReadコマンドを受信した順序を確認すればよい。
そして、コマンド処理部14aは、ホスト1からReadコマンド3を受信した場合に、当該Readコマンド3に保持される読み出すデータの先頭の位置情報「Sadd3」と、読み出すデータの後尾の位置情報「Eadd3」とを取得する。続いて、コマンド処理部14aは、取得されたアドレス情報「Sadd3/Eadd3」がアドレス情報記憶部13bの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd3/Eadd3」をアドレス情報記憶部13bの基本アドレス情報に格納する。
また、コマンド処理部14aは、取得されたアドレス情報「Sadd3/Eadd3」がアドレス情報記憶部13bの基本アドレス情報「Sadd2/Eadd2」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd3/Eadd3」をアドレス情報記憶部13bの次アドレス情報に格納する。
また、コマンド処理部14aは、取得されたアドレス情報がアドレス情報記憶部13bの基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタをインクリメントする。
上記した例で具体的に例を挙げると、コマンド処理部14aは、ホスト1からReadコマンド1を受信した後にReadコマンド2を受信した場合に、当該Readコマンド2に保持される読み出すデータの先頭の位置情報「Sadd2」と、読み出すデータの後尾の位置情報「Eadd2」とを取得する。
そして、コマンド処理部14aは、取得されたアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタ「1」をインクリメントして「2」とする。
また、コマンド処理部14aは、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報を選出する。
上記した例で具体的に例を挙げると、コマンド処理部14aは、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報「Sadd2/Eadd2」を基本アドレス情報「Sadd1/Eadd1」の次アドレス情報として選出する。なお、基本アドレス情報に対する次アドレス情報が収束しない場合(例えば、任意の数「k」個の候補など)は、連続するデータがないものとして判断してデータの先行読出しに利用しない、あるいは、当該収束しないアドレス情報を削除する。
データ読出部14bは、基本アドレス情報のデータの次に読み出されるデータである次アドレス情報が選出された後に、新たなアドレス情報が取得された場合に、当該アドレス情報の基本アドレス情報に対応する次アドレス情報のデータをディスク12から読み出してバッファメモリ13aに格納する。
上記した例で具体的に例を挙げると、データ読出部14bは、基本アドレス情報「Sadd1/Eadd1」のデータの次に読み出されるデータである次アドレス情報「Sadd2/Eadd2」が選出された後に、ホスト1からReadコマンド1を受信した場合に、当該アドレス情報の基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報「Sadd2/Eadd2」のデータをディスク12から先行して読み出してバッファメモリ13aに格納する。
データ送信部14cは、データを読み出された次アドレス情報であって、アドレス情報が取得された場合に、バッファメモリ13aに格納された次アドレス情報のデータをホスト1に対して送信する。
上記した例で具体的に例を挙げると、データ送信部14cは、ホスト1からReadコマンド2を受信して、当該Readコマンド2に保持されるアドレス情報「Sadd2/Eadd2」を取得した場合に、バッファメモリ13aに格納された基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報「Sadd2/Eadd2」のデータをホスト1に対して送信する。
[実施例1に係る次アドレス情報選出処理]
次に、図4を用いて、実施例1に係るディスク装置10による次アドレス情報選出処理を説明する。図4は、実施例1に係るディスク装置10による次アドレス情報選出処理を説明するためのフローチャートである。
図4に示すように、ディスク装置10は、ホスト1からReadコマンド1を受信した場合に(ステップS101肯定)、当該Readコマンド1に保持される読み出すデータの先頭の位置情報「Sadd1」と、読み出すデータの後尾の位置情報「Eadd1」とのアドレス情報を取得する(ステップS102)。
そして、ディスク装置10は、取得されたアドレス情報「Sadd1/Eadd1」よりも前にホスト1からReadコマンドを受信して、アドレス情報(前アドレス情報)を取得していたか否かを判定する(ステップS103)。続いて、ディスク装置10は、前アドレス情報が存在しない場合に(ステップS103否定)、取得したアドレス情報「Sadd1/Eadd1」を前アドレス情報として記憶部13に格納する(ステップS115)。
その後、ディスク装置10は、ホスト1からReadコマンド2を受信した場合に(ステップS101肯定)、当該Readコマンド2に保持される読み出すデータの先頭の位置情報「Sadd2」と、読み出すデータの後尾の位置情報「Eadd2」とのアドレス情報を取得する(ステップS102)。
そして、ディスク装置10は、取得されたアドレス情報「Sadd2/Eadd2」よりも前にホスト1からReadコマンドを受信して、アドレス情報(前アドレス情報)を取得していたか否かを判定する(ステップS103)。続いて、ディスク装置10は、前アドレス情報「Sadd1/Eadd1」が存在する場合に(ステップS103肯定)、当該前アドレス情報「Sadd1/Eadd1」がアドレス情報記憶部13bの基本アドレス情報に存在するか否かを判定する(ステップS104)。
その後、ディスク装置10は、前アドレス情報「Sadd1/Eadd1」がアドレス情報記憶部13bの基本アドレス情報に存在しない場合に(ステップS104否定)、当該前アドレス情報「Sadd1/Eadd1」をアドレス情報記憶部13bの基本アドレス情報に格納する(ステップS105)。
そして、ディスク装置10は、取得したアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報に存在するか否かを判定する(ステップS106)。続いて、ディスク装置10は、取得したアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報に存在しない場合に(ステップS106否定)、取得したアドレス情報「Sadd2/Eadd2」をアドレス情報記憶部13bの基本アドレス情報に格納する(ステップS107)。
その後、ディスク装置10は、取得したアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報「Sadd1/Eadd1」配下の次アドレス情報に存在するか否かを判定する(ステップS108)。そして、ディスク装置10は、次アドレス情報に存在しない場合に(ステップS108否定)、取得したアドレス情報「Sadd2/Eadd2」を前アドレス情報「Sadd1/Eadd1」が格納されている基本アドレス情報配下の次アドレス情報としてアドレス情報記憶部13bに格納する(ステップS109)。続いて、ディスク装置10は、取得したアドレス情報「Sadd2/Eadd2」を前アドレス情報として記憶部13に格納する(ステップS115)。
その後、ディスク装置10は、ホスト1からReadコマンド3を受信した場合に(ステップS101肯定)、当該Readコマンド3に保持される読み出すデータの先頭の位置情報「Sadd3」と、読み出すデータの後尾の位置情報「Eadd3」とのアドレス情報を取得する(ステップS102)。
そして、ディスク装置10は、取得されたアドレス情報「Sadd3/Eadd3」よりも前にホスト1からReadコマンドを受信して、アドレス情報(前アドレス情報)を取得していたか否かを判定する(ステップS103)。続いて、ディスク装置10は、前アドレス情報「Sadd2/Eadd2」が存在する場合に(ステップS103肯定)、当該前アドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報に存在するか否かを判定する(ステップS104)。
その後、ディスク装置10は、前アドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報に存在しない場合に(ステップS104否定)、当該前アドレス情報「Sadd2/Eadd2」をアドレス情報記憶部13bの基本アドレス情報に格納する(ステップS105)。
そして、ディスク装置10は、取得したアドレス情報「Sadd3/Eadd3」がアドレス情報記憶部13bの基本アドレス情報に存在するか否かを判定する(ステップS106)。続いて、ディスク装置10は、取得したアドレス情報「Sadd3/Eadd3」がアドレス情報記憶部13bの基本アドレス情報に存在しない場合に(ステップS106否定)、取得したアドレス情報「Sadd3/Eadd3」をアドレス情報記憶部13bの基本アドレス情報に格納する(ステップS107)。
その後、ディスク装置10は、取得したアドレス情報「Sadd3/Eadd3」がアドレス情報記憶部13bの基本アドレス情報「Sadd2/Eadd2」配下の次アドレス情報に存在するか否かを判定する(ステップS108)。そして、ディスク装置10は、次アドレス情報に存在しない場合に(ステップS108否定)、取得したアドレス情報「Sadd3/Eadd3」を前アドレス情報「Sadd2/Eadd2」が格納されている基本アドレス情報配下の次アドレス情報としてアドレス情報記憶部13bに格納する(ステップS109)。
続いて、ディスク装置10は、ホスト1からReadコマンド1を受信した後に、ホスト1からReadコマンド2を受信した場合に(ステップS101肯定)、当該Readコマンド2に保持される読み出すデータの先頭の位置情報「Sadd2」と、読み出すデータの後尾の位置情報「Eadd2」とのアドレス情報を取得する(ステップS102)。
その後、ディスク装置10は、取得されたアドレス情報「Sadd2/Eadd2」よりも前にホスト1からReadコマンドを受信して、アドレス情報(前アドレス情報)を取得していたか否かを判定する(ステップS103)。そして、ディスク装置10は、前アドレス情報「Sadd1/Eadd1」が存在する場合に(ステップS103肯定)、当該前アドレス情報「Sadd1/Eadd1」がアドレス情報記憶部13bの基本アドレス情報に存在するか否かを判定する(ステップS104)。
続いて、ディスク装置10は、前アドレス情報「Sadd1/Eadd1」がアドレス情報記憶部13bの基本アドレス情報に存在する場合に(ステップS104肯定)、取得したアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報に存在するか否かを判定する(ステップS106)。
その後、ディスク装置10は、取得したアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報に存在する場合に(ステップS106肯定)、取得したアドレス「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報「Sadd1/Eadd1」配下の次アドレス情報に存在するか否かを判定する(ステップS108)。
そして、ディスク装置10は、次アドレス情報に存在する場合に(ステップS108肯定)、当該次アドレス情報「Sadd2/Eadd2」のカウンタ「1」をインクリメントして「2」とする(ステップS110)。続いて、ディスク装置10は、次アドレス情報の候補が複数存在するか否かを判定する(ステップS111)。
その後、ディスク装置10は、次アドレス情報の候補が複数存在しない場合に(ステップS111否定)、取得したアドレス情報「Sadd2/Eadd2」を前アドレス情報として記憶部13に格納する(ステップS115)。
また、ディスク装置10は、次アドレス情報の候補が複数存在する場合に(ステップS111肯定)、アドレス情報記憶部13bのカウンタが最大値のアドレス情報を算出する(ステップS112)。そして、ディスク装置10は、アドレス情報記憶部13bのカウンタが最大値の次アドレス情報が一つであるか否かを判定する(ステップS113)。続いて、ディスク装置10は、アドレス情報記憶部13bのカウンタが最大値の次アドレス情報が一つである場合に(ステップS113肯定)、前アドレス情報「Sadd1/Eadd1」に対する次アドレス情報「Sadd2/Eadd2」として選出する(ステップS114)。
その後、ディスク装置10は、上記したアドレス情報記憶部13bへのアドレス情報登録処理を繰り返し実施することによって、次アドレス情報を選出する。なお、ディスク装置10は、次アドレス情報「Sadd2/Eadd2」が選出された後にホスト1からReadコマンド1を受信した場合に、ディスク12から先行して「Sadd2/Eadd2」に該当するデータを読み出してバッファメモリ13aに格納する。そして、ディスク装置10は、ホスト1からReadコマンド2を受信した場合に、先行して読み出したデータをバッファメモリ13aから読み出してホスト1に送信する。
[実施例1による効果]
このようにして、実施例1によれば、ディスク装置10は、データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なう場合に、ホスト1からの読出し要求を受信する前に、予め先行してディスク12からデータを読み出してバッファに格納するので、データアクセスのための時間を短縮することが可能である。
例えば、ディスク装置10は、データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なう場合に、ホスト1から受信された読出し要求に保持される読み出されるデータの先頭と後尾との位置情報を示すアドレス情報であって、読み出されるデータのアドレス情報を示す基本アドレス情報と、基本アドレス情報のデータの次に読み出されるデータのアドレス情報を示す次アドレス情報と、基本アドレス情報に対する次アドレス情報について、ホスト1から受信された読出し要求の受信回数を示すカウンタとを記憶する。そして、ディスク装置10は、ホスト1から読み出し要求を受信した場合に、アドレス情報を取得する。続いて、ディスク装置10は、取得されたアドレス情報が基本アドレス情報に記憶されていない場合に、当該アドレス情報を基本アドレス情報に格納する。また、ディスク装置10は、取得されたアドレス情報が基本アドレス情報に対応する次アドレス情報に記憶されていない場合に、当該アドレス情報を次アドレス情報に格納する。また、ディスク装置10は、取得されたアドレス情報が基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタをインクリメントする。その後、ディスク装置10は、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報を選出する。そして、ディスク装置10は、基本アドレス情報のデータの次に読み出されるデータである次アドレス情報が選出された後に、アドレス情報が取得された場合に、当該アドレス情報の基本アドレス情報に対応する次アドレス情報のデータをディスク12から読み出してバッファメモリ13aに格納する。続いて、ディスク装置10は、データを読み出された次アドレス情報であって、アドレス情報が取得された場合に、バッファに格納された次アドレス情報のデータをホスト1に対して送信する。この結果、ディスク装置10は、データアクセスのための時間を短縮することが可能である。
ところで、上記実施例1では、一つの読出し要求に対して当該読出し要求の次に受信した読出し要求が連続するデータであるか否かを判定して、連続するデータを選出する場合を説明したが、本発明はこれに限定されるものではなく、一つの読出し要求に対して当該読出し要求より後に受信する所定数nが連続するデータであるか否かを判定して、連続するデータを選出することもできる。
そこで、以下の実施例2では、図5−1〜図6を用いて、実施例2に係るディスク装置10による処理について説明する。図5−1〜図5−3は、実施例2に係るディスク装置10の概要および特徴を示す図であり、図6は、実施例2に係るディスク装置10による次アドレス情報選出処理を説明するためのフローチャートである。なお、実施例2に係るディスク装置10の各構成や一部の機能については、実施例1と同様であるためその説明を省略し、特に、実施例1とは異なる次アドレス情報の登録および選出処理について説明する。また、以下では、所定数nを「3」として4つの読出し要求を受信する場合の例を説明するが、当該所定数nは、「3」に限られるものではない。
[実施例2の概要および特徴]
図5−1に示すように、ディスク装置10は、外部装置から読出し要求を受信した場合に、当該読出し要求に保持されるデータの先頭と後尾との位置情報を示すアドレス情報を取得する。そして、ディスク装置10は、取得されたアドレス情報がアドレス情報記憶部の基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報をアドレス情報記憶部の基本アドレス情報に格納する。また、ディスク装置10は、取得されたアドレス情報がアドレス情報記憶部の基本アドレス情報に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報をアドレス情報記憶部の次アドレス情報に所定数格納する(図5−1の(1)参照)。
具体的に説明すると、ディスク装置10は、ホスト1からReadコマンド1を受信した場合に、当該Readコマンド1に保持される読み出すデータの先頭の位置情報「Sadd1」と、読み出すデータの後尾の位置情報「Eadd1」とを取得する。そして、ディスク装置10は、取得されたアドレス情報「Sadd1/Eadd1」がアドレス情報記憶部13bの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd1/Eadd1」をアドレス情報記憶部13bの基本アドレス情報に格納する。
続いて、ディスク装置10は、ホスト1からReadコマンド2を受信した場合に、当該Readコマンド2に保持される読み出すデータの先頭の位置情報「Sadd2」と、読み出すデータの後尾の位置情報「Eadd2」とを取得する。その後、ディスク装置10は、取得されたアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd2/Eadd2」をアドレス情報記憶部13bの基本アドレス情報に格納する。
また、ディスク装置10は、取得されたアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd2/Eadd2」をアドレス情報記憶部13bの次アドレス情報に格納する。
そして、ディスク装置10は、ホスト1からReadコマンド3を受信した場合に、当該Readコマンド3に保持される読み出すデータの先頭の位置情報「Sadd3」と、読み出すデータの後尾の位置情報「Eadd3」とを取得する。続いて、ディスク装置10は、取得されたアドレス情報「Sadd3/Eadd3」がアドレス情報記憶部13bの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd3/Eadd3」をアドレス情報記憶部13bの基本アドレス情報に格納する。
また、ディスク装置10は、取得されたアドレス情報「Sadd3/Eadd3」がアドレス情報記憶部13bの基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd3/Eadd3」をアドレス情報記憶部13bの次アドレス情報に格納する。
また、ディスク装置10は、取得されたアドレス情報「Sadd3/Eadd3」がアドレス情報記憶部13bの基本アドレス情報「Sadd2/Eadd2」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd3/Eadd3」をアドレス情報記憶部13bの次アドレス情報に格納する。
そして、ディスク装置10は、ホスト1からReadコマンド4を受信した場合に、当該Readコマンド4に保持される読み出すデータの先頭の位置情報「Sadd4」と、読み出すデータの後尾の位置情報「Eadd4」とを取得する。続いて、ディスク装置10は、取得されたアドレス情報「Sadd4/Eadd4」がアドレス情報記憶部13bの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd4/Eadd4」をアドレス情報記憶部13bの基本アドレス情報に格納する。
また、ディスク装置10は、取得されたアドレス情報「Sadd4/Eadd4」がアドレス情報記憶部13bの基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd4/Eadd4」をアドレス情報記憶部13bの次アドレス情報に格納する。
また、ディスク装置10は、取得されたアドレス情報「Sadd4/Eadd4」がアドレス情報記憶部13bの基本アドレス情報「Sadd2/Eadd2」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd4/Eadd4」をアドレス情報記憶部13bの次アドレス情報に格納する。
また、ディスク装置10は、取得されたアドレス情報「Sadd4/Eadd4」がアドレス情報記憶部13bの基本アドレス情報「Sadd3/Eadd3」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd4/Eadd4」をアドレス情報記憶部13bの次アドレス情報に格納する。
また、ディスク装置10は、取得されたアドレス情報がアドレス情報記憶部13bの基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタをインクリメントする(図5−2の(2)参照)。
上記した例で具体的に説明すると、ディスク装置10は、ホスト1からReadコマンド1を受信した後にReadコマンド2を受信した場合に、当該Readコマンド2に保持される読み出すデータの先頭の位置情報「Sadd2」と、読み出すデータの後尾の位置情報「Eadd2」とを取得する。
そして、ディスク装置10は、取得されたアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタ「1」をインクリメントして「2」とする。
続いて、ディスク装置10は、ホスト1からReadコマンド1と、Readコマンド2とを受信した後にReadコマンドxを受信した場合に、当該Readコマンドxに保持される読み出すデータの先頭の位置情報「Saddx」と、読み出すデータの後尾の位置情報「Eaddx」とを取得する。その後、ディスク装置10は、取得されたアドレス情報「Saddx/Eaddx」を基本アドレス情報「Sadd1/Eadd1」および「Sadd2/Eadd2」に対応する次アドレス情報に格納する。
そして、ディスク装置10は、ホスト1からReadコマンド1と、Readコマンド2と、Readコマンドxとを受信した後にReadコマンド3を受信した場合に、当該Readコマンド3に保持される読み出すデータの先頭の位置情報「Sadd3」と、読み出すデータの後尾の位置情報「Eadd3」とを取得する。
続いて、ディスク装置10は、取得されたアドレス情報「Sadd3/Eadd3」がアドレス情報記憶部13bの基本アドレス情報「Sadd1/Eadd1」および「Sadd2/Eadd2」に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタ「1」をインクリメントして「2」とする。
そして、ディスク装置10は、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報を選出する(図5−3の(3)参照)。
上記した例で具体的に説明すると、ディスク装置10は、ホスト1からReadコマンド1を受信した後にReadコマンド2を受信した場合に、当該Readコマンド2に保持される読み出すデータの先頭の位置情報「Sadd2」と、読み出すデータの後尾の位置情報「Eadd2」とを取得する。
そして、ディスク装置10は、取得されたアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタ「2」をインクリメントして「3」とする。
続いて、ディスク装置10は、ホスト1からReadコマンド1と、Readコマンド2とを受信した後にReadコマンドyを受信した場合に、当該Readコマンドyに保持される読み出すデータの先頭の位置情報「Saddy」と、読み出すデータの後尾の位置情報「Eaddy」とを取得する。その後、ディスク装置10は、取得されたアドレス情報「Saddy/Eaddy」を基本アドレス情報「Sadd1/Eadd1」および「Sadd2/Eadd2」に対応する次アドレス情報に格納する。
そして、ディスク装置10は、ホスト1からReadコマンド1と、Readコマンド2と、Readコマンドyとを受信した後にReadコマンド3を受信した場合に、当該Readコマンド3に保持される読み出すデータの先頭の位置情報「Sadd3」と、読み出すデータの後尾の位置情報「Eadd3」とを取得する。
続いて、ディスク装置10は、取得されたアドレス情報「Sadd3/Eadd3」がアドレス情報記憶部13bの基本アドレス情報「Sadd1/Eadd1」および「Sadd2/Eadd2」に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタ「2」をインクリメントして「3」とする。
そして、ディスク装置10は、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報「Sadd2/Eadd2」および「Sadd3/Eadd3」を、基本アドレス情報「Sadd1/Eadd1」、「Sadd2/Eadd2」それぞれの次アドレス情報として選出する。
なお、図5−3においては、基本アドレス情報「Sadd1/Eadd1」に対する次アドレス情報である「Sadd2/Eadd2」と、「Sadd3/Eadd3」とのカウンタが最大値「3」となっているが、次アドレス情報「Sadd3/Eadd3」については、基本アドレス情報「Sadd2/Eadd2」に対する次アドレス情報として選出されているため、基本アドレス情報「Sadd1/Eadd1」に対する次アドレス情報は「Sadd2/Eadd2」として選出する。
そして、上記した処理により次アドレス情報を選出したディスク装置10は、実施例1と同様に、ホスト1からReadコマンド1を受信した場合に、次アドレス情報「Sadd2/Eadd2」のデータをディスク12から先行して読み出してバッファメモリ13aに格納する。続いて、ディスク装置10は、ホスト1からReadコマンド2を受信した場合に、バッファメモリ13aに格納された次アドレス情報「Sadd2/Eadd2」のデータをホスト1に対して送信する。
また、ディスク装置10は、ホスト1からReadコマンド2を受信した場合に、次アドレス情報「Sadd3/Eadd3」のデータをディスク12から先行して読み出してバッファメモリ13aに格納する。そして、ディスク装置10は、ホスト1からReadコマンド3を受信した場合に、バッファメモリ13aに格納された次アドレス情報「Sadd3/Eadd3」のデータをホスト1に対して送信する。
なお、ホスト1からのReadコマンドにおいて2回目以降連続して受信されなかったアドレス情報については、次アドレス情報から削除することとしてもよい。
このようなことから、実施例2に係るディスク装置10は、ホスト1から送信されるデータ読出し要求の次に読出し要求されるデータのアドレス情報の選出を、複数のアドレス情報の候補から選出することができる結果、より精度の高い次アドレス情報選出をすることが可能である。さらに、ディスク装置10は、ディスクに格納されているデータを先行して読み出すことができる結果、データアクセスのための時間を短縮することが可能である。
つまり、ディスク装置10は、ホスト1から次に読出し要求されると予測されるデータの次アドレス情報の選出を、複数の次アドレス情報の候補から選出することで、より高精度に次アドレス情報を選出する。また、ディスク装置10は、より高精度に選出された次アドレス情報に基づいてホスト1から読出し要求されるデータを予測して、当該データを先行してディスク12から読み出すことができる結果、先行して読み出したデータが異なることが少ないために、データアクセスのための時間を短縮することが可能である。
[実施例2に係る次アドレス情報選出処理]
次に、図6を用いて、実施例2に係るディスク装置10による次アドレス情報選出処理を説明する。図6は、実施例2に係るディスク装置10による次アドレス情報選出処理を説明するためのフローチャートである。
図6に示すように、ディスク装置10は、ホスト1からReadコマンド1を受信した場合に(ステップS201肯定)、当該Readコマンド1に保持される読み出すデータの先頭の位置情報「Sadd1」と、読み出すデータの後尾の位置情報「Eadd1」とを取得する(ステップS202)。
そして、ディスク装置10は、取得されたアドレス情報「Sadd1/Eadd1」よりも前にホスト1からReadコマンドを受信して、アドレス情報(前アドレス情報)を取得していたか否かを判定する(ステップS203)。続いて、ディスク装置10は、前アドレス情報が存在しない場合に(ステップS203否定)、当該前アドレス情報がm個(例えば、m=3など)存在するか否かを判定する(ステップS214)。
その後、ディスク装置10は、前アドレス情報が3個存在しない場合に(ステップS214否定)、取得したアドレス情報「Sadd1/Eadd1」を前アドレス情報として記憶部13に格納する(ステップS216)。
そして、ディスク装置10は、ホスト1からReadコマンド2を受信した場合に(ステップS201肯定)、当該Readコマンド2に保持される読み出すデータの先頭の位置情報「Sadd2」と、読み出すデータの後尾の位置情報「Eadd2」とのアドレス情報を取得する(ステップS202)。
続いて、ディスク装置10は、取得されたアドレス情報「Sadd2/Eadd2」よりも前にホスト1からReadコマンドを受信して、アドレス情報(前アドレス情報)を取得していたか否かを判定する(ステップS203)。その後、ディスク装置10は、前アドレス情報「Sadd1/Eadd1」が存在する場合に(ステップS203肯定)、当該前アドレス情報「Sadd1/Eadd1」がアドレス情報記憶部13bの基本アドレス情報に存在するか否かを判定する(ステップS204)。
そして、ディスク装置10は、前アドレス情報「Sadd1/Eadd1」がアドレス情報記憶部13bの基本アドレス情報に存在しない場合に(ステップS204否定)、当該前アドレス情報「Sadd1/Eadd1」をアドレス情報記憶部13bの基本アドレス情報に格納する(ステップS205)。
続いて、ディスク装置10は、前アドレス情報が3個存在するか否かを判定する(ステップS214)。その後、ディスク装置10は、前アドレス情報が3個存在しない場合に(ステップS214否定)、取得したアドレス情報「Sadd2/Eadd2」を前アドレス情報として記憶部13に格納する(ステップS216)。
そして、ディスク装置10は、ホスト1からReadコマンド3を受信した場合に(ステップS201肯定)、当該Readコマンド3に保持される読み出すデータの先頭の位置情報「Sadd3」と、読み出すデータの後尾の位置情報「Eadd3」とのアドレス情報を取得する(ステップS202)。
続いて、ディスク装置10は、取得されたアドレス情報「Sadd3/Eadd3」よりも前にホスト1からReadコマンドを受信して、アドレス情報(前アドレス情報)を取得していたか否かを判定する(ステップS203)。その後、ディスク装置10は、前アドレス情報「Sadd1/Eadd1」と「Sadd2/Eadd2」とが存在する場合に(ステップS203肯定)、当該前アドレス情報「Sadd1/Eadd1」と「Sadd2/Eadd2」とがアドレス情報記憶部13bの基本アドレス情報に存在するか否かを判定する(ステップS204)。
そして、ディスク装置10は、前アドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報に存在しない場合に(ステップS204否定)、当該前アドレス情報「Sadd2/Eadd2」をアドレス情報記憶部13bの基本アドレス情報に格納する(ステップS205)。
続いて、ディスク装置10は、前アドレス情報が3個存在するか否かを判定する(ステップS214)。その後、ディスク装置10は、前アドレス情報が3個存在しない場合に(ステップS214否定)、取得したアドレス情報「Sadd3/Eadd3」を前アドレス情報として記憶部13に格納する(ステップS216)。
そして、ディスク装置10は、ホスト1からReadコマンド4を受信した場合に(ステップS201肯定)、当該Readコマンド4に保持される読み出すデータの先頭の位置情報「Sadd4」と、読み出すデータの後尾の位置情報「Eadd4」とのアドレス情報を取得する(ステップS202)。
続いて、ディスク装置10は、取得されたアドレス情報「Sadd4/Eadd4」よりも前にホスト1からReadコマンドを受信して、アドレス情報(前アドレス情報)を取得していたか否かを判定する(ステップS203)。その後、ディスク装置10は、前アドレス情報「Sadd1/Eadd1」と「Sadd2/Eadd2」と「Sadd3/Eadd3」とが存在する場合に(ステップS203肯定)、当該前アドレス情報「Sadd1/Eadd1」と「Sadd2/Eadd2」と「Sadd3/Eadd3」とがアドレス情報記憶部13bの基本アドレス情報に存在するか否かを判定する(ステップS204)。
そして、ディスク装置10は、前アドレス情報「Sadd3/Eadd3」がアドレス情報記憶部13bの基本アドレス情報に存在しない場合に(ステップS204否定)、当該前アドレス情報「Sadd3/Eadd3」をアドレス情報記憶部13bの基本アドレス情報に格納する(ステップS205)。
続いて、ディスク装置10は、前アドレス情報が3個存在するか否かを判定する(ステップS214)。その後、ディスク装置10は、前アドレス情報が3個存在する場合に(ステップS214肯定)、当該前アドレス情報において最も古いアドレス情報「Sadd1/Eadd1」を削除して(ステップS215)、取得したアドレス情報「Sadd4/Eadd4」を前アドレス情報として記憶部13に格納する(ステップS216)。
そして、ディスク装置10は、ホスト1からReadコマンド1を受信した後にReadコマンド2を受信した場合に(ステップS201肯定)、当該Readコマンド2に保持される読み出すデータの先頭の位置情報「Sadd2」と、読み出すデータの後尾の位置情報「Eadd2」とのアドレス情報を取得する(ステップS202)。
続いて、ディスク装置10は、取得されたアドレス情報「Sadd2/Eadd2」よりも前にホスト1からReadコマンドを受信して、アドレス情報(前アドレス情報)を取得していたか否かを判定する(ステップS203)。その後、ディスク装置10は、前アドレス情報「Sadd1/Eadd1」が存在する場合に(ステップS203肯定)、当該前アドレス情報「Sadd1/Eadd1」がアドレス情報記憶部13bの基本アドレス情報に存在するか否かを判定する(ステップS204)。
そして、ディスク装置10は、前アドレス情報「Sadd1/Eadd1」がアドレス情報記憶部13bの基本アドレス情報に存在する場合に(ステップS204肯定)、取得されたアドレス情報「Sadd2/Eadd2」が前アドレス情報「Sadd1/Eadd1」が記憶されている基本アドレス情報配下の次アドレス情報に存在するか否かを判定する(ステップS206)。
続いて、ディスク装置10は、取得されたアドレス情報「Sadd2/Eadd2」が基本アドレス情報「Sadd1/Eadd1」配下の次アドレス情報に存在しない場合に(ステップS206否定)、取得されたアドレス情報「Sadd2/Eadd2」を前アドレス情報が記憶されている基本アドレス情報「Sadd1/Eadd1」配下の次アドレス情報としてアドレス情報記憶部13bに格納する(ステップS207)。なお、ディスク装置10は、上記処理を同様に繰り返して、Readコマンド3やReadコマンド4などを受信して、次アドレス情報としてアドレス情報記憶部13bに格納する。
その後、ディスク装置10は、ホスト1からReadコマンド1を受信した後にReadコマンド2を受信した場合に、取得したアドレス情報「Sadd2/Eadd2」が基本アドレス情報「Sadd1/Eadd1」配下の次アドレス情報に存在する場合に(ステップS206肯定)、当該次アドレス情報のカウンタ「1」をインクリメントして「2」とする(ステップS208)。なお、ディスク装置10は、上記処理を同様に繰り返して、Readコマンド3やReadコマンド4などを受信して、次アドレス情報のカウンタをインクリメントする。
そして、ディスク装置10は、次アドレス情報の候補が複数存在する場合に(ステップS209肯定)、当該次アドレス情報に対するカウンタが最大値のアドレス情報を算出する(ステップS210)。続いて、ディスク装置10は、カウンタが最大値のアドレス情報が一つである場合に(ステップS211)、前アドレス情報(基本アドレス情報)に対する次アドレス情報として選出する(ステップS212)。また、ディスク装置10は、上記した処理を前アドレス情報m個全て検索が完了するまで実施し(ステップS213否定)、前アドレス情報m個全て検索が完了すると(ステップS213肯定)、ステップS214の処理を実施することとなる。
[実施例2による効果]
このようにして、実施例2によれば、ディスク装置10は、ディスク12からのデータ先行読出しにかかる次アドレス情報の選出を、複数の次アドレス情報の候補から選出するので、より精度の高い次アドレス情報を選出することが可能である。また、ディスク装置10は、より精度の高い次アドレス情報を選出して、先行して読み出すデータの誤りを抑制するので、データを一時記憶するバッファメモリの容量を最小限に抑えることが可能である。
ところで、上記実施例1および実施例2では、受信した読出し要求に基づいてアドレス情報記憶部13bに格納されるアドレス情報を生成して、次アドレス情報を選出する場合を説明したが、本発明はこれに限定されるものではなく、受信した書込み要求に基づいてアドレス情報記憶部13bに格納されるアドレス情報を生成して、受信した読出し要求に基づいて次アドレス情報を選出することもできる。
そこで、以下の実施例3では、図7−1〜図8を用いて、実施例3に係るディスク装置10による処理について説明する。図7−1〜図7−2は、実施例3に係るディスク装置10の概要および特徴を示す図であり、図8は、実施例3に係るディスク装置10による次アドレス情報選出処理を説明するためのフローチャートである。なお、実施例3に係るディスク装置10の各構成や一部の機能については、実施例1と同様であるためその説明を省略し、特に、実施例1とは異なる次アドレス情報の登録および選出処理について説明する。
[実施例3に係る概要および特徴]
図7−1に示すように、ディスク装置10は、外部装置から書込み要求を受信した場合に、当該書込み要求に保持されるデータの先頭と後尾との位置情報を示すアドレス情報を取得する。そして、ディスク装置10は、取得されたアドレス情報がアドレス情報記憶部の基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報をアドレス情報記憶部の基本アドレス情報に格納する。また、ディスク装置10は、取得されたアドレス情報がアドレス情報記憶部の基本アドレス情報に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報をアドレス情報記憶部の次アドレス情報に所定数格納する(図7−1の(1)参照)。
具体的に説明すると、ディスク装置10は、ホスト1からWriteコマンド1を受信した場合に、当該Writeコマンド1に保持される書込むデータの先頭の位置情報「Sadd1」と、書込むデータの後尾の位置情報「Eadd1」とを取得する。そして、ディスク装置10は、取得されたアドレス情報「Sadd1/Eadd1」がアドレス情報記憶部13bの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd1/Eadd1」をアドレス情報記憶部13bの基本アドレス情報に格納する。
続いて、ディスク装置10は、ホスト1からWriteコマンド2を受信した場合に、当該Writeコマンド2に保持される書込むデータの先頭の位置情報「Sadd2」と、書込むデータの後尾の位置情報「Eadd2」とを取得する。その後、ディスク装置10は、取得されたアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd2/Eadd2」をアドレス情報記憶部13bの基本アドレス情報に格納する。
また、ディスク装置10は、取得されたアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd2/Eadd2」をアドレス情報記憶部13bの次アドレス情報に格納する。
そして、ディスク装置10は、ホスト1からReadコマンド3を受信した後にWriteコマンド4を受信した場合に、当該Writeコマンド4に保持される書込むデータの先頭の位置情報「Sadd4」と、書込むデータの後尾の位置情報「Eadd4」とを取得する。続いて、ディスク装置10は、取得されたアドレス情報「Sadd4/Eadd4」がアドレス情報記憶部13bの基本アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd4/Eadd4」をアドレス情報記憶部13bの基本アドレス情報に格納する。
また、ディスク装置10は、取得されたアドレス情報「Sadd4/Eadd4」がアドレス情報記憶部13bの基本アドレス情報「Sadd1/Eadd1」と「Sadd2/Eadd2」とに対応する次アドレス情報に記憶されていない場合に、当該取得されたアドレス情報「Sadd4/Eadd4」をアドレス情報記憶部13bの次アドレス情報に格納する。
また、ディスク装置10は、外部装置から読出し要求を受信した場合に、当該読出し要求に保持されるデータの先頭と後尾との位置情報を示すアドレス情報を取得する。そして、ディスク装置10は、取得されたアドレス情報がアドレス情報記憶部の基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタをインクリメントする。続いて、ディスク装置10は、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報を選出する(図7−2の(2)参照)。
上記した例で具体的に説明すると、ディスク装置10は、ホスト1からReadコマンド1を受信した後にReadコマンド2を受信した場合に、当該Readコマンド2に保持される読み出すデータの先頭の位置情報「Sadd2」と、読み出すデータの後尾の位置情報「Eadd2」とを取得する。
そして、ディスク装置10は、取得されたアドレス情報「Sadd2/Eadd2」がアドレス情報記憶部13bの基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応するカウンタ「1」をインクリメントして「2」とする。続いて、ディスク装置10は、インクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報「Sadd2/Eadd2」を基本アドレス情報「Sadd1/Eadd1」の次アドレス情報として選出する。なお、ディスク装置10は、ホスト1からWriteコマンド5やWriteコマンド6などを受信した場合に、同様にアドレス情報をアドレス情報記憶部13bに格納する。
その後、ディスク装置10は、上記した実施例1や実施例2などと同様に、基本アドレス情報「Sadd1/Eadd1」のデータの次に読み出されるデータである次アドレス情報「Sadd2/Eadd2」が選出された後に、ホスト1からReadコマンド1を受信した場合に、当該アドレス情報の基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報「Sadd2/Eadd2」のデータをディスク12から先行して読み出してバッファメモリ13aに格納する。
そして、ディスク装置10は、ホスト1からReadコマンド2を受信して、当該Readコマンド2に保持されるアドレス情報「Sadd2/Eadd2」を取得した場合に、バッファメモリ13aに格納された基本アドレス情報「Sadd1/Eadd1」に対応する次アドレス情報「Sadd2/Eadd2」のデータをホスト1に対して送信する。
[実施例3に係る次アドレス情報選出処理]
次に、図8を用いて、実施例3に係るディスク装置10による次アドレス情報選出処理を説明する。図8は、実施例3に係るディスク装置10による次アドレス情報選出処理を説明するためのフローチャートである。
図8においては、Readコマンドに対する前アドレス情報を「前アドレス情報(R)」とし、当該前アドレス情報(R)を格納しているテーブルのカラム数を「n」とする。また、図8においては、Writeコマンドに対する前アドレス情報を「前アドレス情報(W)」とし、当該前アドレス情報(W)を格納しているテーブルのカラム数を「m」とする。なお、以下では、ホスト1からWriteコマンドを受信した場合を説明した後に、ホスト1からReadコマンドを受信する場合について説明する。
(Writeコマンド)
図8に示すように、ディスク装置10は、ホスト1からWriteコマンド1を受信した場合に(ステップS301肯定)、当該Writeコマンド1に保持されるアドレス情報「Sadd1/Eadd1」を取得する(ステップS302)。そして、ディスク装置10は、受信されたコマンド(要求)がReadコマンドであるか否かを判定する(ステップS303)。
続いて、ディスク装置10は、受信されたコマンドがWriteコマンドである場合に(ステップS303否定)、取得されたアドレス情報「Sadd1/Eadd1」がアドレス情報記憶部13bの基本アドレス情報に存在するか否かを判定する(ステップS304)。その後、ディスク装置10は、取得されたアドレス情報「Sadd1/Eadd1」がアドレス情報記憶部13bの基本アドレス情報に存在しない場合に(ステップS304否定)、取得したアドレス情報「Sadd1/Eadd1」をアドレス情報記憶部13bの基本アドレス情報に格納する(ステップS305)。
そして、ディスク装置10は、取得したアドレス情報「Sadd1/Eadd1」をWriteコマンドに対する前アドレス情報(W)として記憶部13に格納する(ステップS306)。なお、ディスク装置10は、ステップS304において、取得したアドレス情報「Sadd1/Eadd1」がアドレス情報記憶部13bの基本アドレス情報に存在する場合に(ステップS304肯定)、当該アドレス情報「Sadd1/Eadd1」を基本アドレス情報に格納することなく、Writeコマンドに対する前アドレス情報(W)として記憶部13に格納する(ステップS306)。
続いて、ディスク装置10は、記憶部13に予め前アドレス情報(W)が存在するか否かを判定し(ステップS308)、前アドレス情報(W)が存在する場合に(ステップS308肯定)、当該前アドレス情報(W)がアドレス情報記憶部13bの基本アドレス情報に存在するか否かを判定する(ステップS309)。
その後、ディスク装置10は、前アドレス情報(W)がアドレス情報記憶部13bの基本アドレス情報に存在する場合に(ステップS309肯定)、取得されたアドレス情報「Sadd1/Eadd1」がアドレス情報記憶部13bの基本アドレス情報配下の次アドレス情報に存在するか否かを判定する(ステップS310)。
そして、ディスク装置10は、次アドレス情報に存在しない場合に(ステップS310否定)、取得されたアドレス情報「Sadd1/Eadd1」を前アドレス情報が格納されている基本アドレス情報配下の次アドレスとして、アドレス情報記憶部13bに格納する(ステップS311)。また、ディスク装置10は、次アドレス情報に存在する場合に(ステップS310肯定)、次アドレス情報「Sadd1/Eadd1」に対するカウンタをインクリメントする(ステップS312)。
続いて、ディスク装置10は、アドレス情報記憶部13bにおいて次アドレス情報の候補が複数存在する場合に(ステップS313肯定)、カウンタが最大値のアドレス情報を算出する(ステップS314)。その後、ディスク装置10は、カウンタが最大値のアドレス情報が一つであるか否かを判定する(ステップS315)。
そして、ディスク装置10は、カウンタが最大値のアドレス情報が一つである場合に(ステップS315肯定)、当該カウンタが最大値のアドレス情報を、前アドレス情報(基本アドレス情報)に対する次アドレス情報として選出する(ステップS316)。また、ディスク装置10は、上記した処理を前アドレス情報m個全て検索が完了するまで実施し(ステップS317否定)、前アドレス情報m個全て検索が完了すると(ステップS317肯定)、ステップS301の処理を実施することとなる。
(Readコマンド)
図8に示すように、ディスク装置10は、ホスト1からReadコマンド1を受信した場合に(ステップS301肯定)、当該Readコマンド1に保持されるアドレス情報「Sadd1/Eadd1」を取得する(ステップS302)。そして、ディスク装置10は、受信されたコマンド(要求)がReadコマンドであるか否かを判定する(ステップS303)。
続いて、ディスク装置10は、受信されたコマンドがReadコマンドである場合に(ステップS303肯定)、取得したアドレス情報「Sadd1/Eadd1」をReadコマンドに対する前アドレス情報(R)として記憶部13に格納する(ステップS307)。
その後、ディスク装置10は、記憶部13に予め前アドレス情報(R)が存在するか否かを判定し(ステップS308)、前アドレス情報(R)が存在する場合に(ステップS308肯定)、当該前アドレス情報(R)がアドレス情報記憶部13bの基本アドレス情報に存在するか否かを判定する(ステップS309)。
そして、ディスク装置10は、前アドレス情報(R)がアドレス情報記憶部13bの基本アドレス情報に存在する場合に(ステップS309肯定)、取得されたアドレス情報「Sadd1/Eadd1」がアドレス情報記憶部13bの基本アドレス情報配下の次アドレス情報に存在するか否かを判定する(ステップS310)。
そして、ディスク装置10は、次アドレス情報に存在しない場合に(ステップS310否定)、取得されたアドレス情報「Sadd1/Eadd1」を前アドレス情報が格納されている基本アドレス情報配下の次アドレス情報として、アドレス情報記憶部13bに格納する(ステップS311)。また、ディスク装置10は、次アドレス情報に存在する場合に(ステップS310肯定)、次アドレス情報「Sadd1/Eadd1」に対するカウンタをインクリメントする(ステップS312)。
続いて、ディスク装置10は、アドレス情報記憶部13bにおいて次アドレス情報の候補が複数存在する場合に(ステップS313肯定)、カウンタが最大値のアドレス情報を算出する(ステップS314)。その後、ディスク装置10は、カウンタが最大値のアドレス情報が一つであるか否かを判定する(ステップS315)。
そして、ディスク装置10は、カウンタが最大値のアドレス情報が一つである場合に(ステップS315肯定)、当該カウンタが最大値のアドレス情報を、前アドレス情報(基本アドレス情報)に対する次アドレス情報として選出する(ステップS316)。また、ディスク装置10は、上記した処理を前アドレス情報n個全て検索が完了するまで実施し(ステップS317否定)、前アドレス情報n個全て検索が完了すると(ステップS317肯定)、ステップS301の処理を実施することとなる。
このようなことから、実施例3に係るディスク装置10は、ホスト1から送信されるデータ読出し要求の次に読出し要求されるデータのアドレス情報の選出を、書込み要求と読出し要求とに基づいて選出することができる結果、迅速に次アドレス情報を選出することが可能である。
つまり、ディスク装置10は、ホスト1からの書込み要求がなければ、当該書込み要求に該当するデータの読出し要求がないことを利用し、ホスト1から受信した書込み要求に基づいてアドレス情報記憶部13bに格納されるアドレス情報を生成して、受信した読出し要求に基づいて次アドレス情報のカウンタをインクリメントして、次アドレス情報を選出することで、迅速に次アドレス情報を選出することが可能である。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも
種々の異なる形態にて実施されてよいものである。そこで、(1)ディスク装置の構成、(2)プログラムにおいて異なる実施例を説明する。
(1)ディスク装置の構成
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメタを含む情報(例えば、図2に示したような「アドレス情報記憶部13b」の具体的名称や情報など)については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、例えば、コマンド処理部14aを、Read/Writeコマンドからアドレス情報を取得する「アドレス情報取得部」と、取得されたアドレス情報をアドレス情報記憶部13bに格納する「アドレス情報処理部」と、取得されたアドレス情報に基づいてアドレス情報記憶部13bのカウンタをインクリメントする「カウンタ処理部」と、カウンタが最大値の次アドレス情報を選出する「次アドレス情報選出部」とに分散するなど、その全部または一部を、各種の負担や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(2)プログラム
ところで、上記の実施例では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本発明はこれに限定されるものではなく、あらかじめ用意されたプログラムをコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図9を用いて、上記の実施例に示したディスク装置10と同様の機能を有するデータ先行読出しプログラムを実行するコンピュータの一例を説明する。図9は、データ先行読出しプログラムを実行するコンピュータを示す図である。
図9に示すように、ディスク装置としてのコンピュータ110は、CPU140、ROM150およびRAM160をバス180などで接続される。
ROM150には、上記の実施例1に示したディスク装置10と同様の機能を発揮するデータ先行読出しプログラム、つまり、図9に示すようにアドレス情報取得プログラム150aと、基本アドレス情報処理プログラム150bと、次アドレス情報処理プログラム150cと、カウンタ処理プログラム150dと、次アドレス情報選出プログラム150eと、データ読出プログラム150fと、データ送信プログラム150gとが、あらかじめ記憶されている。なお、これらのプログラム150a〜プログラム150gについては、図2に示したディスク装置10の各構成要素と同様、適宜統合または、分散してもよい。
そして、CPU140がこれらのプログラム150a〜プログラム150gをROM150から読み出して実行することで、図9に示すように、プログラム150a〜プログラム150gは、アドレス情報取得プロセス140aと、基本アドレス情報処理プロセス140bと、次アドレス情報処理プロセス140cと、カウンタ処理プロセス140dと、次アドレス情報選出プロセス140eと、データ読出プロセス140fと、データ送信プロセス140gとして機能するようになる。なお、プロセス140a〜プロセス140gは、図2に示した、コマンド処理部14aと、データ読出部14bと、データ送信部14cとに対応する。
そして、CPU140はRAM160に記録されたアドレス情報データ160aに基づいてデータ先行読出しプログラムを実行する。
実施例1に係るディスク装置の概要および特徴を示す図である。 実施例1に係るディスク装置の概要および特徴を示す図である。 実施例1に係るディスク装置の概要および特徴を示す図である。 実施例1に係るディスク装置の構成を示す図である。 アドレス情報記憶部の例を示す図である。 実施例1に係るディスク装置による次アドレス情報選出処理を説明するためのフローチャートである。 実施例2に係るディスク装置の概要および特徴を示す図である。 実施例2に係るディスク装置の概要および特徴を示す図である。 実施例2に係るディスク装置の概要および特徴を示す図である。 実施例2に係るディスク装置による次アドレス情報選出処理を説明するためのフローチャートである。 実施例3に係るディスク装置の概要および特徴を示す図である。 実施例3に係るディスク装置の概要および特徴を示す図である。 実施例3に係るディスク装置による次アドレス情報選出処理を説明するためのフローチャートである。 データ先行読出しプログラムを実行するコンピュータを示す図である。 従来技術に係るディスク装置における読出し処理または書込み処理を説明するための図である。 従来技術に係るディスク装置における読出し処理または書込み処理を説明するための図である。 従来技術に係るディスク装置における読出し処理または書込み処理を説明するための図である。 従来技術に係るディスク装置における読出し処理または書込み処理を説明するための図である。 従来技術に係るディスク装置の構成例における処理を示す図である。
符号の説明
1 ホスト
10 ディスク装置
11 I/F部
12 ディスク
13 記憶部
13a バッファメモリ
13b アドレス情報記憶部
14 制御部
14a コマンド処理部
14b データ読出部
14c データ送信部

Claims (5)

  1. データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なうディスク装置であって、
    前記外部装置から受信された読出し要求または書込み要求に保持される読み出されるデータの先頭と後尾との位置情報を示すアドレス情報であって、前記読み出されるデータの前記アドレス情報を示す基本アドレス情報と、前記基本アドレス情報のデータの次に読み出されるデータの前記アドレス情報を示す次アドレス情報と、前記基本アドレス情報に対する前記次アドレス情報が、前記外部装置から受信された読出し要求の受信回数を示すカウンタとを記憶するアドレス情報記憶手段と、
    前記外部装置から読出し要求を受信した場合に、前記アドレス情報を取得し、前記アドレス情報記憶手段の基本アドレス情報に記憶されているか、または、前記アドレス情報記憶手段の基本アドレス情報に対応する次アドレス情報に記憶されているかを判定するアドレス情報取得手段と、
    前記アドレス情報取得手段により取得されたアドレス情報が前記アドレス情報記憶手段の基本アドレス情報に記憶されていない場合に、当該アドレス情報を前記アドレス情報記憶手段の基本アドレス情報に格納する基本アドレス情報処理手段と、
    前記基本アドレス情報処理手段により基本アドレス情報が格納された後に、前記アドレス情報取得手段により取得されたアドレス情報が当該基本アドレス情報に対応する前記次アドレス情報に記憶されていない場合に、当該アドレス情報を前記アドレス情報記憶手段の基本アドレス情報に対応付けて次アドレス情報に格納する次アドレス情報処理手段と、
    前記次アドレス情報処理手段により基本アドレス情報に対応する次アドレス情報が格納された後に、前記アドレス情報取得手段により取得されたアドレス情報が当該基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応する前記カウンタをインクリメントするカウンタ処理手段と、
    前記カウンタ処理手段によりインクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報を選出する次アドレス情報選出手段と、
    前記次アドレス情報選出手段により前記基本アドレス情報のデータの次に読み出されるデータである次アドレス情報が選出された後に、前記アドレス情報取得手段によりアドレス情報が取得された場合に、当該アドレス情報の基本アドレス情報に対応する次アドレス情報のデータを前記ディスクから読み出してバッファに格納するデータ読出手段と、
    前記データ読出手段においてデータを読み出された次アドレス情報であって、前記アドレス情報取得手段によりアドレス情報が取得された場合に、前記データ読出手段によりバッファに格納された当該次アドレス情報のデータを前記外部装置に対して送信するデータ送信手段と、
    を備えたことを特徴とするディスク装置。
  2. 前記次アドレス情報処理手段は、前記基本アドレス情報処理手段により基本アドレス情報が格納された後に、前記アドレス情報取得手段により取得された所定数のアドレス情報が当該基本アドレス情報に対応する前記次アドレス情報に記憶されていない場合に、当該所定数のアドレス情報を前記アドレス情報記憶手段の基本アドレス情報に対応付けて次アドレス情報にまとめて格納することを特徴とする請求項1に記載のディスク装置。
  3. 前記カウンタ処理手段は、前記次アドレス情報処理手段により基本アドレス情報に対応する次アドレス情報がまとめて格納された後に、前記アドレス情報取得手段により取得されたアドレス情報が当該基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応する前記カウンタをインクリメントし、前記アドレス情報取得手段により取得されたアドレス情報が当該基本アドレス情報に対応する次アドレス情報として連続して受信されなかった場合に、当該次アドレス情報を削除することを特徴とする請求項2に記載のディスク装置。
  4. 前記アドレス情報取得手段は、前記外部装置から読出し要求または書込み要求を受信した場合に、前記アドレス情報を取得して、前記アドレス情報記憶手段の基本アドレス情報に記憶されているか、または、前記アドレス情報記憶手段の基本アドレス情報に対応する次アドレス情報に記憶されているかを判定し、
    前記基本アドレス情報処理手段は、前記アドレス情報取得手段により取得された書込み要求のアドレス情報が前記アドレス情報記憶手段の基本アドレス情報に記憶されていない場合に、当該アドレス情報を前記アドレス情報記憶手段の基本アドレス情報に格納し、
    前記次アドレス情報処理手段は、前記基本アドレス情報処理手段により基本アドレス情報が格納された後に、前記アドレス情報取得手段により取得された書込み要求の所定数のアドレス情報が当該基本アドレス情報に対応する前記次アドレス情報に記憶されていない場合に、当該所定数のアドレス情報を前記アドレス情報記憶手段の基本アドレス情報に対応付けて次アドレス情報にまとめて格納し、
    前記カウンタ処理手段は、前記次アドレス情報処理手段により基本アドレス情報に対応する次アドレス情報がまとめて格納された後に、前記アドレス情報取得手段により取得された読出し要求のアドレス情報が当該基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応する前記カウンタをインクリメントすることを特徴とする請求項1に記載のディスク装置。
  5. データの読出しまたは書込み要求を行なう外部装置に接続され、当該外部装置からの読出しまたは書込み要求に基づいて、ディスクに対してデータの読出しまたは書込みを行なうディスク装置に適したデータ先行読出し方法であって、
    前記外部装置から受信された読出し要求または書込み要求に保持される読み出されるデータの先頭と後尾との位置情報を示すアドレス情報であって、前記読み出されるデータの前記アドレス情報を示す基本アドレス情報と、前記基本アドレス情報のデータの次に読み出されるデータの前記アドレス情報を示す次アドレス情報と、前記基本アドレス情報に対する前記次アドレス情報が、前記外部装置から受信された読出し要求の受信回数を示すカウンタとをアドレス情報記憶手段に記憶するアドレス情報記憶工程と、
    前記外部装置から読出し要求を受信した場合に、前記アドレス情報を取得し、前記アドレス情報記憶手段の基本アドレス情報に記憶されているか、または、前記アドレス情報記憶手段の基本アドレス情報に対応する次アドレス情報に記憶されているかを判定するアドレス情報取得工程と、
    前記アドレス情報取得工程により取得されたアドレス情報が前記アドレス情報記憶手段の基本アドレス情報に記憶されていない場合に、当該アドレス情報を前記アドレス情報記憶手段の基本アドレス情報に格納する基本アドレス情報処理工程と、
    前記基本アドレス情報処理工程により基本アドレス情報が格納された後に、前記アドレス情報取得工程により取得されたアドレス情報が当該基本アドレス情報に対応する前記次アドレス情報に記憶されていない場合に、当該アドレス情報を前記アドレス情報記憶手段の基本アドレス情報に対応付けて次アドレス情報に格納する次アドレス情報処理工程と、
    前記次アドレス情報処理工程により基本アドレス情報に対応する次アドレス情報が格納された後に、前記アドレス情報取得工程により取得されたアドレス情報が当該基本アドレス情報に対応する次アドレス情報に記憶されている場合に、当該次アドレス情報に対応する前記カウンタをインクリメントするカウンタ処理工程と、
    前記カウンタ処理工程によりインクリメントされた次アドレス情報に対応するカウンタに基づいて、当該カウンタが最大値の次アドレス情報を選出する次アドレス情報選出工程と、
    前記次アドレス情報選出工程により前記基本アドレス情報のデータの次に読み出されるデータである次アドレス情報が選出された後に、前記アドレス情報取得工程によりアドレス情報が取得された場合に、当該アドレス情報の基本アドレス情報に対応する次アドレス情報のデータを前記ディスクから読み出してバッファに格納するデータ読出工程と、
    前記データ読出工程においてデータを読み出された次アドレス情報であって、前記アドレス情報取得工程によりアドレス情報が取得された場合に、前記データ読出工程によりバッファに格納された当該次アドレス情報のデータを前記外部装置に対して送信するデータ送信工程と、
    を含んだことを特徴とするデータ先行読出し方法。
JP2008074341A 2008-03-21 2008-03-21 ディスク装置およびデータ先行読出し方法 Abandoned JP2009230417A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008074341A JP2009230417A (ja) 2008-03-21 2008-03-21 ディスク装置およびデータ先行読出し方法
US12/408,720 US8065477B2 (en) 2008-03-21 2009-03-23 Disk apparatus and advance data reading method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008074341A JP2009230417A (ja) 2008-03-21 2008-03-21 ディスク装置およびデータ先行読出し方法

Publications (1)

Publication Number Publication Date
JP2009230417A true JP2009230417A (ja) 2009-10-08

Family

ID=41090005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008074341A Abandoned JP2009230417A (ja) 2008-03-21 2008-03-21 ディスク装置およびデータ先行読出し方法

Country Status (2)

Country Link
US (1) US8065477B2 (ja)
JP (1) JP2009230417A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06168119A (ja) * 1992-11-30 1994-06-14 Fujitsu Ltd データ先読み制御装置
JPH08185272A (ja) * 1994-12-27 1996-07-16 Toshiba Corp ディスクキャッシュをもつ磁気ディスク装置
JPH10124387A (ja) * 1996-10-18 1998-05-15 Nec Corp キャッシュ制御装置および方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0553908A (ja) 1991-08-23 1993-03-05 Mitsubishi Heavy Ind Ltd 高速アクセス記憶装置
JP3183993B2 (ja) * 1993-03-31 2001-07-09 株式会社東芝 ディスク制御システム
US5455954A (en) * 1993-12-22 1995-10-03 Adaptec, Inc. Host interrupt signal generation circuit for controlling an auto read operation in a disk drive controller
JP3708757B2 (ja) * 1999-06-30 2005-10-19 富士通株式会社 記憶装置
US6785752B2 (en) * 2001-03-23 2004-08-31 International Business Machines Corporation Method for dynamically adjusting buffer utilization ratios in a hard disk drive system
US20050166012A1 (en) * 2004-01-26 2005-07-28 Yong Liu Method and system for cognitive pre-fetching
US7569754B1 (en) * 2007-01-31 2009-08-04 Pioneer Hi-Bred International, Inc. Inbred maize variety PH4RF

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06168119A (ja) * 1992-11-30 1994-06-14 Fujitsu Ltd データ先読み制御装置
JPH08185272A (ja) * 1994-12-27 1996-07-16 Toshiba Corp ディスクキャッシュをもつ磁気ディスク装置
JPH10124387A (ja) * 1996-10-18 1998-05-15 Nec Corp キャッシュ制御装置および方法

Also Published As

Publication number Publication date
US8065477B2 (en) 2011-11-22
US20090240878A1 (en) 2009-09-24

Similar Documents

Publication Publication Date Title
US9015695B2 (en) Information processing apparatus and information processing method
US8667229B2 (en) Data access method of a memory device
US20080195833A1 (en) Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit
JP6768928B2 (ja) アドレスを圧縮するための方法及び装置
JP4901285B2 (ja) 読み出し性能を向上させることができるメモリカード
US9053019B2 (en) Non-volatile memory device, a data processing device using the same, and a swapping method used by the data processing and non-volatile memory devices
US8825946B2 (en) Memory system and data writing method
US20130198445A1 (en) Semiconductor memory device and information processing device
JP2010157130A (ja) メモリシステム
US9569381B2 (en) Scheduler for memory
CN111241040B (zh) 信息获取方法、装置、电子设备及计算机存储介质
CN106951374B (zh) 用于检查块页地址的方法及其装置
TWI710905B (zh) 資料儲存裝置及邏輯至物理位址映射表之載入方法
CN108664577B (zh) 一种基于flash空闲区的文件管理方法及***
JP2007080220A (ja) メモリ制御装置。
CN111796759A (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
US9524236B1 (en) Systems and methods for performing memory management based on data access properties
JP2007501473A (ja) メインメモリとストレージ装置との間のデータ転送を行うための方法及び装置
US9858204B2 (en) Cache device, cache system, and cache method
US20140258347A1 (en) Grouping files for optimized file operations
JP2010182254A (ja) 情報処理装置、および情報処理方法、並びにプログラム
JP2009230417A (ja) ディスク装置およびデータ先行読出し方法
US9804968B2 (en) Storage system and data writing method
CN114168495A (zh) 存储设备的增强的预读能力
CN108664578B (zh) 一种文件循环存储方法及***

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20091022

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20120302