(57)【要約】【課題】ディスク記憶装置が有するプラッタのトラックのデータ長を自動で算出することを目的とする。【解決手段】ディスク記憶装置が有するディスクに配置された複数のセクタについて、所定の順序で、セクタの属するトラックを特定するトラック特定情報を取得し、複数のセクタのうち、第１のセクタで取得されたトラック特定情報が、第１のセクタの直前に取得された第２のセクタのトラック特定情報と一致しない場合、所定のセクタから第２のセクタまでのセクタ間のデータ長を第２のセクタが配置されたトラックのデータ長として記憶部に記憶する。【選択図】図２
2014013636.tif 000002
【特許請求の範囲】
【請求項１】
ディスク記憶装置を制御する制御プログラムにおいて、
コンピュータに、
ディスク記憶装置が有するディスクに配置された複数のセクタについて、所定の順序で、セクタの属するトラックを特定するトラック特定情報を取得し、
前記複数のセクタのうち、第１のセクタで取得されたトラック特定情報が、前記第１のセクタの直前に取得された第２のセクタのトラック特定情報と一致しない場合、前記所定のセクタから前記第２のセクタまでのセクタ間のデータ長を前記第２のセクタが配置されたトラックのデータ長として、記憶部に記憶する、
ことを実行させることを特徴とする制御プログラム。
【請求項２】
前記制御プログラムはさらに、
前記コンピュータに、
ディスク記憶装置が有するディスクに配置された複数のセクタについて、所定のセクタから所定の順序で、セクタの属するディスク面を特定するディスク面特定情報を取得し、
前記複数のセクタのうち、第３のセクタで取得されたディスク面特定情報が、前記第１のセクタの直前に取得された第４のセクタのディスク面特定情報と一致しない場合、前記所定のセクタから前記第２のセクタまでのセクタによって実現されるデータ長を、記憶部に記憶する、
ことを実行させることを特徴とする請求項１記載の制御プログラム。
【請求項３】
前記所定の順序は、前記ディスクの外側のトラックに配置されたセクタから、内側のトラックのセクタに割り当てられた通し番号の昇順または降順である
ことを特徴とする請求項１または２記載の制御プログラム。
【請求項４】
前記所定の順序は、セクタそれぞれに割り当てられた論理ブロックアドレスの昇順である、
ことを特徴とする請求項１乃至３のいずれか１項に記載の制御プログラム。
【請求項５】
前記制御プログラムはさらに、
前記コンピュータに、
ディスク記憶装置が有するディスクに配置された複数のセクタについて、前記所定の順序の先頭のセクタを起点として、トラック特定情報を取得する
ことを特徴とする請求項１乃至４のいずれか１項に記載の制御プログラム。
【請求項６】
前記制御プログラムはさらに、
前記コンピュータに、
ディスク記憶装置が有するディスクに配置された複数のセクタについて、所定の間隔ごとにトラック特定情報またはディスク面特定情報を取得する、
ことを実行させることを特徴とする請求項１乃至５のいずれか１項に記載の制御プログラム。
【請求項７】
前記制御プログラムはさらに、
前記コンピュータに、
前記記憶部に記憶されたデータ長のうち、最大のデータ長と、最小のデータ長とに基づいて、前記ディスク全体のデータ長を、複数に分割する、
ことを実行させることを特徴とする請求項１乃至６のいずれか１項に記載の制御プログラム。
【請求項８】
前記制御プログラムはさらに、
前記コンピュータに、
前記最大のデータ長を最大の分割単位として、また、前記最小のデータ長を最小の分割単位として、前記ディスク全体のデータ長を複数に分割し、
前記ディスクの内側のトラックから外側のトラックになるに応じて、所定の幅で分割するデータ長を増加させる。
ことを実行させることを特徴とする請求項７記載の制御プログラム。
【請求項９】
ディスク記憶装置を制御する制御プログラムにおいて、
コンピュータに、
ディスク記憶装置が有するディスクに配置された複数のセクタについて、所定のセクタから所定の順序で、セクタの属するディスク面を特定するディスク面特定情報を取得し、
前記複数のセクタのうち、第１のセクタで取得されたディスク面情報が、前記第１のセクタの直前に取得された第２のセクタのディスク面特定情報と一致しない場合、前記所定のセクタから前記第２のセクタまでのセクタによって実現されるデータ長を、記憶部に記憶する、
ことを実行させることを特徴とする制御プログラム。
【請求項１０】
ディスク記憶装置を制御する制御方法において、
コンピュータが、
ディスク記憶装置が有するディスクに配置された複数のセクタについて、所定のセクタから所定の順序で、セクタの属するトラックを特定するトラック特定情報を取得し、
前記複数のセクタのうち、第１のセクタで取得されたトラック特定情報が、前記第１のセクタの直前に取得された第２のセクタのトラック特定情報と一致しない場合、前記所定のセクタから前記第２のセクタまでのセクタによって実現されるデータ長を、記憶部に記憶する、
ことを特徴とする制御方法。
【請求項１１】
ディスク記憶装置を制御する制御装置において、
ディスク記憶装置が有するディスクに配置された複数のセクタについて、所定のセクタから所定の順序で、セクタの属するトラックを特定するトラック特定情報を取得する取得部と、
前記複数のセクタのうち、第１のセクタで取得されたトラック特定情報が、前記第１のセクタの直前に取得された第２のセクタのトラック特定情報と一致しない場合、前記所定のセクタから前記第２のセクタまでのセクタによって実現されるデータ長を記憶する記憶部と、
を備えたことを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラム、制御装置、制御方法に関する。
【背景技術】
【０００２】
磁気ディスク記憶装置は、情報処理装置が処理するデータを記憶する記憶装置として普及している。磁気ディスク記憶装置は、データを記録する円盤（以後、プラッタと呼ぶ）を有し、磁気ディスク記憶装置には複数のプラッタを有するものも存在する。１枚のプラッタは、輪状に区切られており、この輪状に区切られたプラッタ上の領域はトラックと呼ばれる。さらに、トラックは、セクタと呼ばれる単位で区切られ、セクタそれぞれにデータが記録される。尚、セクタ１つあたりに記憶可能なデータ長は一定である。
【０００３】
磁気ディスク記憶装置では、記憶容量を増加させるため、ディスク外周のトラックは内周のトラックに比べ総セクタ数が多くなる記録方式を採用している。この特徴により、プラッタが１回転するとき、プラッタの内周側のトラックよりもプラッタの外周側のトラックのほうが、より大容量のデータ読み書きが可能となる。このため、単位時間あたりのプラッタへのデータの読み書きは、プラッタの外周に記憶されるデータほど高速である。つまり、データの読み書き速度は、最外周トラックに対してデータを読み書きする場合が最も高速であり、最内周トラックに対してデータを読み書きする場合が最も低速である。
【０００４】
したがって、磁気ディスク記憶装置にデータが読み書きされる場合、同一のデータ長であっても、そのデータに対してどのトラックをアクセスするかによって、データの読み書きの所要時間に差が生じてしまう。この読み書きの所要時間の差は、例えば、データを複数の磁気ディスク記憶装置に分散して記憶し、読み書き速度の向上を図る場合に、読み書き性能の低下の原因となる。
【０００５】
従来技術においては、このような磁気ディスク記憶装置の性能低下を抑制可能な技術として技術が存在する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−２７２５４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来技術を実現する場合、プラッタの各トラックのデータ長が既知であることが求められるが、セクタに割り当てられたＬＢＡからトラックのデータ長を求める手段は開示されていない。
【０００８】
本発明の一側面としては、プラッタの各トラックのデータ長が不明な場合でもある場合に、トラックのデータ長を自動で算出することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、ディスク記憶装置のディスクに配置されたセクタについて、セクタの配置されたディスク面を特定するヘッド情報と、セクタの配置されたトラックを特定するトラック情報とを取得させ、取得されたヘッド番号とトラック番号とに基づいて、ディスク面のトラックのデータ長を算出させる。
【発明の効果】
【００１０】
本発明の１つの実施態様によれば、トラックのデータ長を自動で算出することが可能である。
【発明を実施するための最良の形態】
【００１１】
本発明を実施する形態について、図面とともに説明する。
【００１２】
図１は、磁気ディスク記憶装置を含むシステム１を示す図である。図１に示すように、システム１は、制御装置１００、磁気ディスク記憶装置１０５および１０６、情報処理装置１０７を備える。
【００１３】
制御装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、メモリ１０２、記憶装置側アダプタ１０３、記憶装置側アダプタ１０３、情報処理装置側アダプタ１０４、を備え、それぞれはバスによって相互に通信可能に接続される。
【００１４】
ＣＰＵ１０１は、制御装置１００が実行する演算処理等を実行する。メモリ１０２は、ＣＰＵ１０１が実行する演算処理に用いられる情報を記憶する。また、メモリ１０２には、ＣＰＵ１０１が実行するプログラムがロードされることとしても良い。
【００１５】
制御装置１００は、記憶装置側アダプタ１０３を介して磁気ディスク記憶装置１０５、１０６に接続され、処理装置側アダプタ１０４を介して記憶装置を利用する情報処理装置１０７に接続される。記憶装置側アダプタ１０３と磁気ディスク記憶装置１０５、１０６との接続には、例えばＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）を用いることが可能である。尚、図１では、制御装置１００に磁気ディスク記憶装置１０５、１０６の２台が接続されているが、磁気ディスクドライブの台数は適宜変更可能である。
【００１６】
磁気ディスク記憶装置１０５、１０６は、ＳＣＳＩ規格でデータ通信可能な磁気ディスク記憶装置であり、セクタ１つあたりに記憶可能なデータ長は５２０バイト（５１２バイトの記憶領域＋８バイトの冗長領域）である。
【００１７】
制御装置１００は、記憶装置側アダプタ１０３を介して磁気ディスク記憶装置１０５、１０６に接続され、処理装置側アダプタ１０４を介して情報処理装置１０７に接続される。記憶装置側アダプタ１０３は、例えばＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）を用いて磁気ディスク記憶装置１０５、１０６と接続されてもよい。尚、図１では、制御装置１００に磁気ディスク記憶装置１０５、１０６の２台が接続されているが、磁気ディスク記憶装置の台数は適宜変更してもよい。また、処理装置側アダプタ１０４は、例えばファイバーチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）やＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を介して情報処理装置１０７と接続されてもよい。
【００１８】
情報処理装置１０７は、例えば、磁気ディスク記憶装置１０５、１０６に記憶されたデータを処理するサーバ装置や、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）であってもよい。
【００１９】
図２は、制御装置１００の機能的構成を示すブロック図である。制御装置１００は、変換部２０１、番号比較部２０２、トラックデータ長算出部２０３、ゾーン数決定部２０４、ブロックデータ長決定部２０５、データ領域算出部２０６、分割指示部２０７、記憶部２０８を備える。記憶部２０８は、番号情報記憶部２０９と、トラック情報記憶部２１０と、ゾーン情報記憶部２１１とを有する。
【００２０】
変換部２０１は、ＬＢＡに対して物理アドレス変換コマンドを発行し、そのＬＢＡが割り振られたセクタのヘッド番号、トラック番号を取得する。ここで、物理アドレス変換コマンドとは、セクタに割り当てられたＬＢＡから、セクタのヘッド番号と、トラック番号とを特定するコマンドである。尚、磁気ディスク記憶装置１０５、１０６は、物理アドレス変換コマンドに基づく処理を実行し、処理結果を制御装置に１００に送信することが可能な記憶装置であるものとする。
【００２１】
番号比較部２０２は、後述する番号情報記憶部２０９に記憶されたヘッド番号、トラック番号と、変換部２０１が取得したヘッド番号、トラック番号とが同一であるかを判定する。また、番号比較部２０２は、必要に応じてヘッド番号、トラック番号を、番号情報記憶部２０９に記憶する。
【００２２】
トラックデータ長算出部２０３は、記憶部２０８に記憶された、セクタのヘッド番号、トラック番号の情報に基づいて、磁気ディスク記憶装置１０５、１０６が有するプラッタのトラックのデータ長を算出する。またトラックデータ長算出部２０３は、算出したトラックのデータ長をトラック情報記憶部２１０に記憶する。
【００２３】
ゾーン決定部２０４は、トラックデータ長算出部２０３により算出されたトラックのデータ長を用いて、後述するゾーンの数を決定し、ゾーンを識別するためのゾーン番号を各ゾーンに割り当てる。またゾーン数決定部２０４は、必要に応じて算出した番号を、ゾーン情報記憶部２１１に記憶する。
【００２４】
ブロックデータ長決定部２０５は、トラックデータ長算出部２０３により算出されたトラックのデータ長を用いて、ゾーン決定部２０４により決定された各ゾーンのブロックのデータ長を決定する。またブロックデータ長決定部２０５は、決定したブロックのデータ長と、そのデータ長のブロックを有するゾーンの番号とを関連付けて記憶部２０８に記憶させる。
【００２５】
データ領域算出部２０６は、ゾーン決定部２０４によって決定されたゾーン数およびゾーン番号を用いて、磁気ディスク記憶装置１０５および１０６それぞれのデータ領域全体に対して、各ゾーンが占めるデータ領域の割合を算出する。また、データ領域算出部２０６は、算出された各ゾーンのデータ領域の割合を記憶部２０８に記憶させる。
【００２６】
分割指示部２０７は、記憶部２０８に記憶された情報に基づいて、制御装置１００に接続された磁気ディスク記憶装置１０５および１０６のデータ領域の分割を行う。
図２に示す変換部２０１、番号比較部２０２、トラックデータ長算出部２０３、ゾーン数決定部２０４、ブロックデータ長決定部２０５、データ領域算出部２０６、分割指示部２０７は、例えば、図１に示す制御装置１００が有するＣＰＵ１０１がメモリ１０２に記憶されたプログラムを実行することによって実現されても良い。
【００２７】
記憶部２０８は、前述した各機能部により生成、参照される情報を記憶する。記憶部２０８は、番号情報記憶部２０９、トラック情報記憶部２１０、ゾーン情報記憶部２１１を有する。
【００２８】
番号情報記憶部２０９は、変換部２０１により取得されたプラッタのセクタと、そのセクタのヘッド番号、トラック番号とを関連付けて記憶する。
【００２９】
トラック情報記憶部２１０は、トラックデータ長算出部２０３により算出されたトラックのデータ長を記憶する。
【００３０】
ゾーン情報記憶部２１１は、ゾーン決定部２０４により決定されたゾーン数を記憶する。また、ゾーン決定部２０４により決定されたゾーン番号と、ブロックデータ長決定部２０５により決定された各ゾーンの１ブロックあたりのデータ長と、データ領域算出部２０６により決定された磁気ディスク記憶装置１０５および１０６のデータ領域全体に対する各ゾーンのデータ領域の割合とを関連付けて記憶する。
【００３１】
記憶部２０８は、例えば、図１に示す制御装置１００が有するメモリ１０２であってもよい。
〔トラックのデータ長取得手順〕
磁気ディスク記憶装置１０５、１０６に関するヘッド番号とトラック番号について説明する。ヘッド番号は、プラッタにデータを読み書きするための磁気ヘッドを特定するために、磁気ディスク記憶装置が有する磁気ヘッドそれぞれに割り振られる番号である。本実施態様の磁気ディスク記憶装置１０５、１０６は、両面にデータを記憶可能なプラッタを有し、プラッタの記録面１つに対して、１つの磁気ヘッドを有する。したがって、例えば、異なるヘッド番号によってデータの読み書きがされる各セクタは、異なるプラッタの記録面に属することとなる。
【００３２】
トラック番号は、プラッタのトラックそれぞれを識別するために、トラックに割り振られる番号である。例えば、トラック番号が異なる各セクタは、異なるトラックに属することとなる。なお、本実施形態においては、ヘッド番号およびトラック番号といった、数字形式の情報であるが、ヘッドおよびトラックを識別可能な識別子であれば、本実施以外の態様であっても構わない。
〔実施例１〕
最外周トラックのデータ長を算出する手順の一例を説明する。
【００３３】
図３は、実施例１におけるプラッタの最外周トラックのデータ長を算出することを説明するための図である。図４は、実施例１における最外周トラックのデータ長の算出手順を示すフローチャートである。
【００３４】
まず、変換部２０１は、ＬＢＡ＝０ｘ００００（最小のＬＢＡ）となるセクタのヘッド番号、トラック番号を取得する（Ｓ４０１）。以後、ＬＢＡ＝０ｘ００００となるセクタを先頭セクタと記載する。図３では、ＬＢＡ＝０ｘ００００である先頭セクタとして先頭セクタ３０１を示す。本実施態様における磁気ディスク記憶装置１０５、１０６において、ＬＢＡ＝０ｘ００００である先頭セクタ３０１は最外周トラックにある。先頭セクタ３０１に対して変換部２０１が物理アドレス変換コマンドを発行することで、図３のように先頭セクタ３０１のヘッド番号０ｘ００、トラック番号０ｘ００が取得される。
【００３５】
先頭セクタ３０１のヘッド番号、トラック番号を取得後、変換部２０１は取得された先頭セクタ３０１のヘッド番号およびトラック番号を番号情報記憶部２０９に記憶する（Ｓ４０２）。
【００３６】
次に、変換部２０１は、現在のセクタよりもＬＢＡが１大きいセクタのヘッド番号とトラック番号とを取得する（Ｓ４０３）。例えば、変換部２０１が図３に示すＬＢＡ＝０ｘ０００１であるセクタ３０２に対して物理アドレス変換コマンドを発行することで、ヘッド番号とトラック番号とを取得する。
【００３７】
セクタ３０２のヘッド番号、トラック番号を取得後、番号比較部２０２は、先頭セクタ３０１のヘッド番号とセクタ３０２のヘッド番号とを比較する。また、番号比較部２０２は、先頭セクタ３０１のトラック番号とセクタ３０２のトラック番号を比較する。そして、番号比較部２０２は、セクタ３０１とセクタ３０２とで、ヘッド番号およびトラック番号が一致するかを判定する（Ｓ４０４）。セクタ３０２のヘッド番号およびトラック番号が先頭セクタ３０１のヘッド番号およびトラック番号と一致すると番号比較部２０２が判定した場合、ステップＳ４０３に戻り、変換部２０１による上記ステップＳ４０３の処理が実行され、その後に変換部２０１によって上記ステップＳ４０４の処理が実行される。
【００３８】
以後、ステップＳ４０４にて、番号比較部２０２が、番号情報記憶部２０９に記憶されたヘッド番号またはトラック番号と取得したヘッド番号またはトラック番号が異なることを検出するまで、ステップＳ４０３、Ｓ４０４の処理が繰り返される。例えば、図３において、セクタ３０２が番号比較部２０２における比較対象のセクタとされた場合、セクタ３０２のヘッド番号およびトラック番号は先頭セクタ３０１のヘッド番号、トラック番号と同一であるので、ステップＳ４０４の判定後にステップＳ４０３およびＳ４０４の処理が繰り返される。
【００３９】
一方、ステップＳ４０４にて、番号比較部２０２が、番号情報記憶部２０９に記憶されたヘッド番号またはトラック番号と取得したヘッド番号またはトラック番号が異なることを検出した場合、番号比較部２０２はその旨を示す通知をトラックデータ長算出部２０３に送信する。番号比較部２０２からの前記通知を受信したトラックデータ長算出部２０３は、先頭セクタ３０１から現在のセクタ（番号比較部２０２においてヘッド番号およびトラック番号の相違が検出されたセクタ）よりもＬＢＡの値が１つ小さいセクタまでのセクタ数に対応するデータ長を算出する。そして、トラックデータ長算出部２０３は、算出したデータ長を最外周トラックのデータ長としてトラック情報記憶部２１０に記憶する（Ｓ４０７）。
【００４０】
例えば、セクタ３０４がステップＳ４０４における比較対象のセクタとされた場合、セクタ３０４のヘッド番号＝０ｘ０１は、番号情報記憶部２０９に記憶された先頭セクタ３０１のヘッド番号＝０ｘ００と異なる。そのため、トラックデータ長算出部２０３によりステップＳ４０７の処理が実行され、図３に示す先頭セクタ３０１からセクタ３０３までのセクタ数に対応するデータ長を算出する。ここで例えば、算出されたデータ長が５１２キロバイトであった場合、トラックデータ長算出部２０３は最外周トラックのデータ長が５１２キロバイトであることをトラック情報記憶部２１０に記憶する。
【００４１】
以上の手順で、磁気ディスク記憶装置１０５、１０６が有する最外周トラックのデータ長が算出される。
【００４２】
図５は、ＬＢＡの割り当て方法が相違する磁気ディスク記憶装置の例を示す図である。図５（Ａ）は、ＬＢＡがプラッタ順に割り当てられた磁気ディスク記憶装置の例を示す。図５（Ａ）のような場合、トラックデータ長算出部２０３は、番号比較部２０２が前述した図３に示すように、ヘッド番号の相違を検出したことに基づいて、最外周トラックのデータ長を算出することになる。図５（Ｂ）は、ＬＢＡが同一プラッタにおけるトラック順に割り当てられた磁気ディスク記憶装置の例を示す。図５（Ｂ）のような場合、トラックデータ長算出部２０３は、番号比較部２０２がトラック番号の相違を検出したことに基づいて、最外周トラックのデータ長を算出することになる。
【００４３】
図６は、実施例１における、プラッタの最内周トラックのデータ長を算出することを説明するための図である。図７は、実施例２における最内周トラックのデータ長の算出手順を示すフローチャートである。プラッタの最内周トラックのデータ長を算出する手順を、図６、図７を用いて説明する。
【００４４】
まず、変換部２０１は、磁気ディスク記憶装置の容量上最大のＬＢＡをもつセクタのヘッド番号、トラック番号を取得する（Ｓ７０１）。以後の記載および図面においては、磁気ディスク記憶装置の容量上最大のＬＢＡをもつセクタを最終セクタと記載する。図６は、ＬＢＡ＝０ｘＦＦ８０である最終セクタとして最終セクタ６０１を示す。本実施態様における磁気ディスク記憶装置１０５、１０６において、最終セクタ６０１は最内周トラックにある。例えば、変換部２０１が図６に示す最終セクタ６０１に対して物理アドレス変換コマンドを発行することで、最終セクタ６０１のヘッド番号＝０ｘ０７とトラック番号＝０ｘＦＦとを取得する。
【００４５】
最終セクタ６０１のヘッド番号、トラック番号を取得後、変換部２０１は取得された最終セクタ６０１のヘッド番号およびトラック番号を番号情報記憶部２０９に記憶する（Ｓ７０２）。
【００４６】
次に、変換部２０１は、現在のＬＢＡよりもＬＢＡが１小さいセクタのヘッド番号とトラック番号とを取得する（Ｓ７０３）。例えば、変換部２０１は、ステップＳ７０１、Ｓ７０２の処理を実行後、最終セクタ６０１よりもＬＢＡが１小さい、ＬＢＡ＝０ｘＦＦ７Ｆであるセクタ６０２に対して物理アドレス変換コマンドを発行し、ヘッド番号とトラック番号とを取得する。
【００４７】
セクタ６０２のヘッド番号、トラック番号を取得後、番号比較部２０２は、番号情報記憶部２０９に記憶された最終セクタ６０１のヘッド番号と、セクタ６０２のヘッド番号とを比較する。また、番号比較部２０２は、番号情報記憶部２０９に記憶された最終セクタ６０１のトラック番号と、セクタ６０２のトラック番号を比較する。そして比較した結果、最終セクタ６０１とセクタ６０２とで、ヘッド番号およびトラック番号が一致するかを判定する（Ｓ７０４）。セクタ６０２のヘッド番号およびトラック番号が最終セクタ６０１のヘッド番号およびトラック番号と一致すると番号比較部２０２が判定した場合、変換部２０１による上記ステップＳ７０３の処理が再び実行され、その後に番号比較部２０２によって上記ステップＳ７０４の処理が実行される。
【００４８】
以後、ステップＳ７０４にて、番号比較部２０２が、番号情報記憶部２０９に記憶されたヘッド番号またはトラック番号と取得したヘッド番号またはトラック番号が異なることを検出するまで、ステップＳ７０３、Ｓ７０４の処理が繰り返される。例えば、図６において、セクタ６０２が番号比較部２０２における比較対象のセクタとされた場合、セクタ６０２のヘッド番号およびトラック番号は最終セクタ６０１のヘッド番号、トラック番号と同一であるので、ステップＳ７０４の判定後にステップＳ７０３およびＳ７０４の処理が繰り返される。
【００４９】
一方、ステップＳ７０４にて、番号比較部２０２が、番号情報記憶部２０９に記憶されたヘッド番号またはトラック番号と取得したヘッド番号またはトラック番号が異なることを検出した場合、番号比較部２０２はその旨を示す通知をトラックデータ長算出部２０３に送信する。番号比較部２０２からの前記通知を受信したトラックデータ長算出部２０３は、現在のセクタ（番号比較部２０２においてヘッド番号およびトラック番号の相違が検出されたセクタ）のヘッド番号およびトラック番号を番号情報記憶部２０９に記憶する。（Ｓ７０５）。
【００５０】
例えば、セクタ６０３が番号比較部２０２における比較対象のセクタとされた場合、セクタ６０３のヘッド番号＝０ｘ０６は、番号情報記憶部２０９に記憶された最終セクタ６０１のヘッド番号＝０ｘ０７と異なるので、トラック長算出部２０３が実行するステップＳ７０５の処理により、セクタ６０３のヘッド番号＝０ｘ０６、トラック番号＝０ｘＦＦが番号情報記憶部２０９に記憶される。
【００５１】
ステップＳ７０５の処理を実行後、変換部２０１は、ＬＢＡが１小さいセクタのヘッド番号とトラック番号とを取得する（Ｓ７０６）。
【００５２】
そして、番号比較部２０２は、番号情報記憶部２０９に記憶された、セクタ６０３のヘッド番号と、ステップＳ７０６で変換部２０１により取得されたヘッド番号とを比較する。また、番号比較部２０２は、番号情報記憶部２０９に記憶されたセクタ６０３のトラック番号と、ステップＳ７０６で変換部２０１により取得されたトラック番号とを比較する。そして比較した結果、両者のヘッド番号およびトラック番号が一致するかを判定する（Ｓ７０７）。セクタ６０３のヘッド番号およびトラック番号とステップＳ７０６で変換部２０１により取得されたヘッド番号およびトラック番号とが一致すると番号比較部２０２が判定した場合、ステップＳ７０６の処理に戻り、変換部２０１による上記ステップＳ７０６の処理が実行され、その後に番号比較部２０２によって上記ステップＳ７０７の処理が実行される。
【００５３】
以後、ステップＳ７０７にて、番号比較部２０２が、番号情報記憶部２０９に記憶されたヘッド番号またはトラック番号と取得したヘッド番号またはトラック番号がことなることを検出するまで、ステップＳ７０６、Ｓ７０７の処理が繰り返される。例えば、図６において、セクタ６０４が番号比較部２０２における比較対象のセクタとされた場合、セクタ６０４のヘッド番号およびトラック番号はセクタ６０３のヘッド番号、トラック番号と同一であるので、ステップＳ７０７の判定後にステップＳ７０６およびＳ７０７の処理が繰り返される。
【００５４】
一方、ステップＳ７０７にて、番号比較部２０２が、番号情報記憶部２０９に記憶されたヘッド番号またはトラック番号と取得したヘッド番号またはトラック番号が異なることを検出した場合、番号比較部２０２はその旨を示す通知をトラックデータ長算出部２０３に送信する。番号比較部２０２からの前記通知を受信したトラックデータ長算出部２０３は、セクタ６０３から現在のセクタ（番号比較部２０２においてヘッド番号およびトラック番号の相違が検出されたセクタ）よりもＬＢＡの値が１つ小さいセクタまでのセクタ数に対応するデータ長を算出する。そして、トラックデータ長算出部２０３は、算出したデータ長を最内周トラックのデータ長としてトラック情報記憶部２１０に記憶する（Ｓ７０８）。
【００５５】
例えば、セクタ６０５がステップＳ７０７における比較対象のセクタとされた場合、セクタ６０５のヘッド番号＝０ｘ０５は、番号情報記憶部２０９に記憶されたセクタ６０３のヘッド番号＝０ｘ０６と異なる。そのため、トラックデータ長算出部２０３によりステップＳ７０８の処理が実行され、図６に示すセクタ６０３からセクタ６０４までのセクタ数に対応するデータ長を算出する。ここで例えば、算出されたデータ長が２５６キロバイトであった場合、トラックデータ長算出部２０３は最内周トラックのデータ長が２５６キロバイトであることをトラック情報記憶部２１０に記憶する。
【００５６】
以上の手順で、磁気ディスク記憶装置１０５、１０６が有する最内周トラックのデータ長が算出される。
【００５７】
ここで、最内周のトラックのデータ長をセクタ６０３からセクタ６０４までのセクタ数に対応するデータ長とする理由について説明する。磁気ディスク記憶装置には、ユーザからの要求によって書き換えが可能な記憶領域の他に、ユーザによる書き換えが行われない（許可されない）記憶領域（ユーザ非使用領域）が設けられることがある。そして、そのようなユーザ非使用領域は、例えば、磁気ディスク記憶装置のプラッタの最内周付近のトラックに設けられ、例えば、磁気ディスク記憶装置の構成情報や、異常発生時の修復のための記憶領域として使用される。また、ユーザ非使用領域は、トラック全体に設けられるとは限らないため、ユーザ非使用領域付近のトラックには、ユーザからの要求によって書き換えが可能な記憶領域と、ユーザ非使用領域が混在する場合がある。ここで、本実施例の磁気ディスク記憶装置１０５、１０６は、ユーザ非使用領域がプラッタの最内周付近のトラックに設けられることとすると、最終セクタ６０１が属するトラックには、ユーザ非使用領域に属するセクタが存在する可能性がある。したがって、上記の図７に示す処理のように、最終セクタ６０１が属するトラックを最内周トラックとせず、最内周のトラックのデータ長は、セクタ６０３からセクタ６０４までのセクタ数に対応するデータ長とする。
【００５８】
このような処理を実行することで、ユーザ非使用領域が存在するトラックが、最内周トラックとして処理されることを抑止する。尚、本実施例においては、ユーザ非使用領域がプラッタの最内周付近のトラックに設けられるとしたが、ユーザ非使用領域がプラッタの最外周付近のトラックに設けられる場合は、前述した最外周のトラックのデータ長を算出する処理において、１回目にヘッド番号が相違したセクタから、その次にヘッド番号が相違したセクタの１つ前のセクタに対応するデータ長を最外周トラックのデータ長とすればよい。
【００５９】
また、図４および図７の手順では、最外周トラックおよび最内周トラックのデータ長を算出する手順について説明したが、ＬＢＡの割り当て方法が図５（Ｂ）の場合は、最外周トラックおよび最内周トラック以外のトラックのデータ長についても算出することができる。
【００６０】
図８は、プラッタの最外周トラックから最内周トラックの間の各トラックのデータ長を算出する手順を示すフローチャートである。
【００６１】
まず、制御装置１００は、図４に示すステップＳ４０１〜Ｓ４０５の手順を実行して、最外周トラックのデータ長を算出する（Ｓ８０１）。このステップＳ８０１の処理は、図４のステップＳ４０１〜Ｓ４０５と同様の処理であってよい。
【００６２】
次に、変換部２０１は、現在のセクタよりもＬＢＡが１大きいセクタのヘッド番号とトラック番号とを取得する（Ｓ８０２）。このステップＳ８０２の処理は、例えば、前述したステップＳ４０３の処理と同様の処理であってよい。
【００６３】
ステップＳ８０２の処理を実行後、番号比較部２０２は、番号情報記憶部２０９に記憶されたトラック番号とステップＳ８０２で取得されたトラック番号を比較する。そして比較した結果、両者のトラック番号が一致するかを判定する（Ｓ８０３）。ステップＳ８０３で両者のトラック番号が一致すると番号比較部２０２が判定した場合、番号比較部２０２は、ステップＳ８０５の処理を実行する。
【００６４】
一方、ステップＳ８０３でトラック番号が異なると番号比較部２０２が判定した場合、番号比較部２０２はその旨をトラック長算出部２０３に送信する。番号比較からの通知を受信したトラック長算出部２０３は、番号情報記憶部２０９に番号を記憶したときのセクタから、現在のセクタよりもＬＢＡが１つ小さいセクタまでのセクタによって得られるデータ長を算出する。そして、現在のセクタのヘッド番号およびトラック番号を記憶するとともに、算出したデータ長を最外周トラックのデータ長としてトラック情報記憶部２１０に記憶する（Ｓ８０４）。トラック長算出部２０３がＳ８０４の処理を実行した後、番号比較部２０２は、ステップＳ８０５の処理を実行する。
【００６５】
ステップＳ８０５において、番号比較部２０２は、番号情報記憶部２０９に記憶されたヘッド番号とステップＳ８０２で取得されたヘッド番号を比較する。そして比較した結果、両者のヘッド番号が一致するかを判定する。番号比較部２０２が、ヘッド番号が一致すると番号比較部２０２が判定した場合、Ｓ８０２からの処理が再実行される。
【００６６】
一方、ステップＳ８０５において、番号比較部２０２が、両者のヘッド番号が異なると判定した場合、番号比較部２０２はその旨をトラック長算出部２０３に送信する。番号比較からの通知を受信したトラック長算出部２０３は、１つ前にデータ長が算出されたトラックを最内周トラックと判断し、１つ前に算出されたデータ長を最内周トラックのデータ長に決定する（Ｓ８０６）。
【００６７】
ステップＳ８０６の処理を、トラック長算出部２０３が実行した後、制御装置１００は図８に示すトラック長算出処理を終了する。
【００６８】
以上の手順によれば、最外周トラックから順にトラックのデータ長を求め、ヘッド番号、つまりプラッタの記録面が切り替わったことを検出してトラックのデータ長算出処理を終了する。尚、図８の手順の場合、最初のステップＳ８０４で、トラック長算出部２０３がトラック情報記憶部２１０に記憶するデータ長が最外周トラックのデータ長である。また、前述したステップＳ８０６でトラック長算出部２０３がトラック情報記憶部２１０に記憶するデータ長が最内周トラックのデータ長である。
【００６９】
〔実施例２〕
次に、実施例２の場合において、最外周トラックのデータ長を算出する手順を説明する。実施例２は、トラックのデータ長を実施例１と比較して情報処理の量を軽減させる手順である。
【００７０】
図９は、最外周トラックのデータ長を算出する手順を説明する図である。図１０は、最外周トラックが有するデータ長を算出する手順を示すフローチャートである。
【００７１】
ヘッド番号、トラック番号の意味については、実施例１と同様のため説明を省略する。
【００７２】
まず、変換部２０１は、ＬＢＡ＝０ｘ００００となるセクタのヘッド番号、トラック番号を取得する（Ｓ１００１）。以後、ＬＢＡ＝０ｘ００００となるセクタを先頭セクタと記載する。図９では、ＬＢＡ＝０ｘ００００である先頭セクタとして先頭セクタ９０１を示す。本実施態様における磁気ディスク記憶装置１０５、１０６において、ＬＢＡ＝０ｘ００００である先頭セクタ９０１は最外周トラックにある。先頭セクタ９０１に対して変換部２０１が物理アドレス変換コマンドを発行することで、図９のように先頭セクタ９０１のヘッド番号０ｘ００、トラック番号０ｘ００が取得される。
【００７３】
先頭セクタ９０１のヘッド番号、トラック番号を取得後、変換部２０１は取得された先頭セクタ９０１のヘッド番号およびトラック番号を番号情報記憶部２０９に記憶する（Ｓ１００２）。
【００７４】
次に、変換部２０１は、現在のセクタよりもＬＢＡが０ｘ８０（１０進数であれば１２８、データ長で６４キロバイト分）大きいセクタのヘッド番号とトラック番号とを取得する（Ｓ１００３）。尚、この０ｘ８０という値は適宜変更が可能であるが、本実施例で０ｘ８０を用いる理由については後述する。例えば、変換部２０１が図９に示すＬＢＡ＝０ｘ００８０であるセクタ９０２に対して物理アドレス変換コマンドを発行することで、ヘッド番号とトラック番号とを取得する。
【００７５】
セクタ９０２のヘッド番号、トラック番号を取得後、番号比較部２０２は、先頭セクタ９０１のヘッド番号とセクタ９０２のヘッド番号とを比較する。また、番号比較部２０２は、先頭セクタ９０１のトラック番号とセクタ９０２のトラック番号を比較する。そして、番号比較部２０２は、セクタ９０１とセクタ９０２とで、ヘッド番号およびトラック番号が一致するかを判定する（Ｓ１００４）。セクタ９０２のヘッド番号およびトラック番号が先頭セクタ９０１のヘッド番号およびトラック番号と一致すると番号比較部２０２が判定した場合、ステップＳ１００３に戻り、変換部２０１による上記処理が実行され、その後に変換部２０１によって上記ステップＳ１００４の処理が実行される。
【００７６】
以後、ステップＳ１００４にて、番号比較部２０２が、番号情報記憶部２０９に記憶されたヘッド番号またはトラック番号と取得したヘッド番号またはトラック番号が異なることを検出するまで、ステップＳ１００３、Ｓ１００４の処理が繰り返される。例えば、図９において、セクタ９０２が番号比較部２０２における比較対象のセクタとされた場合、セクタ９０２のヘッド番号およびトラック番号は先頭セクタ９０１のヘッド番号、トラック番号と同一であるので、ステップＳ１００４の判定後にステップＳ１００３およびＳ１００４の処理が繰り返される。
【００７７】
一方、ステップＳ１００４にて、番号比較部２０２が、番号情報記憶部２０９に記憶されたヘッド番号またはトラック番号と取得したヘッド番号またはトラック番号が異なることを検出した場合、番号比較部２０２はその旨を示す通知をトラックデータ長算出部２０３に送信する。番号比較部２０２からの前記通知を受信したトラックデータ長算出部２０３は、先頭セクタ９０１から現在のセクタ（番号比較部２０２においてヘッド番号およびトラック番号の相違が検出されたセクタ）よりもＬＢＡの値が０ｘ８０小さいセクタまでのセクタ数に対応するデータ長を算出する。そして、トラックデータ長算出部２０３は、算出したデータ長を最外周トラックのデータ長の近似値としてトラック情報記憶部２１０に記憶する（Ｓ１００５）。
【００７８】
例えば、セクタ９０４がステップＳ１００４における比較対象のセクタとされた場合、セクタ９０４のヘッド番号＝０ｘ０１は、番号情報記憶部２０９に記憶された先頭セクタ９０１のヘッド番号＝０ｘ００と異なる。そのため、トラックデータ長算出部２０３によりステップＳ１００５の処理が実行され、図９に示す先頭セクタ９０１からセクタ９０３よりもＬＢＡが１小さいセクタまでのセクタ数に対応するデータ長を算出する。ここで例えば、算出されたデータ長が５１２キロバイトであった場合、トラックデータ長算出部２０３は最外周トラックのデータ長の近似値が５１２キロバイトであることをトラック情報記憶部２１０に記憶する。
【００７９】
以上の手順で、磁気ディスク記憶装置１０５、１０６が有する最外周トラックのデータ長の近似値が算出される。
【００８０】
実施例１と比較すると、実施例２の場合は、セクタのヘッド番号、シリンダ番号を、０ｘ８０ごとに取得するので、より少ない計算量、計算時間でトラックのデータ長の近似値を求めることが可能である。
【００８１】
図１１は、実施例２における、プラッタの最内周トラックのデータ長を算出することを説明するための図である。図１２は、実施例２における最内周トラックのデータ長の算出手順を示すフローチャートである。プラッタの最内周トラックのデータ長を算出する手順を、図１１、図１２を用いて説明する。
【００８２】
まず、変換部２０１は、磁気ディスク記憶装置の容量上最大のＬＢＡをもつセクタのヘッド番号、トラック番号を取得する（Ｓ１２０１）。以後の記載および図面においては、磁気ディスク記憶装置の容量上最大のＬＢＡをもつセクタを最終セクタと記載する。図１１では、ＬＢＡ＝０ｘＦＦ８０である最終セクタとして最終セクタ１１０１を示す。本実施態様における磁気ディスク記憶装置１０５、１０６において、最終セクタ１１０１は最内周トラックにある。例えば、変換部２０１が図６に示す最終セクタ１１０１に対して物理アドレス変換コマンドを発行することで、最終セクタ１１０１のヘッド番号＝０ｘ０７とトラック番号＝０ｘＦＦとを取得する。
【００８３】
最終セクタ１１０１のヘッド番号、トラック番号を取得後、変換部２０１は取得された最終セクタ１１０１のヘッド番号およびトラック番号を番号情報記憶部２０９に記憶する（Ｓ１２０２）。
【００８４】
次に、変換部２０１は、ＬＢＡが現在のセクタより０ｘ８０小さいセクタのヘッド番号とトラック番号とを取得する（Ｓ１２０３）。例えば、変換部２０１は、ＬＢＡ＝０ｘＦＦ００であるセクタ１１０２に対して物理アドレス変換コマンドを発行し、ヘッド番号とトラック番号とを取得する。
【００８５】
セクタ１１０２のヘッド番号、トラック番号を取得後、番号比較部２０２は、番号情報記憶部２０９に記憶されたヘッド番号と、ステップＳ１２０３で取得されたヘッド番号とを比較する。また、番号比較部２０２は、番号情報記憶部２０９に記憶された最終セクタ１１０１のトラック番号と、ステップＳ１２０３で取得されたセクタ１１０２のトラック番号とを比較する。そして比較した結果、番号比較部２０２は、番号情報記憶部２０９に記憶された最終セクタ１１０１のトラック番号と、ステップＳ１２０３で取得されたセクタ１１０２のトラック番号とが一致するかを判定する（Ｓ１２０４）。最終セクタ１１０１のトラック番号と、セクタ１１０２のトラック番号とが一致すると番号比較部２０２が判定した場合、ステップＳ１２０３の処理に戻り、変換部２０１による上記ステップＳ１２０３の処理が実行され、その後に番号比較部２０２によって上記ステップＳ１２０４の処理が実行される。
【００８６】
以後、ステップＳ１２０４にて、番号比較部２０２が、番号情報記憶部２０９に記憶されたヘッド番号またはトラック番号と取得したヘッド番号またはトラック番号が異なることを検出するまで、ステップＳ１２０３、Ｓ１２０４の処理が繰り返される。例えば、図１１において、セクタ１１０２が番号比較部２０２における比較対象のセクタとされた場合、セクタ１１０２のヘッド番号およびトラック番号は最終セクタ１１０１のヘッド番号、トラック番号と同一であるので、ステップＳ１２０６の判定後にステップＳ１２０３およびＳ１２０４の処理が繰り返される。
【００８７】
一方、ステップＳ１２０４にて、番号比較部２０２が、番号情報記憶部２０９に記憶されたヘッド番号またはトラック番号とステップＳ１２０３で取得されたヘッド番号またはトラック番号が異なることを検出した場合、番号比較部２０２はその旨を示す通知をトラックデータ長算出部２０３に送信する。番号比較部２０２からの前記通知を受信したトラックデータ長算出部２０３は、現在のセクタ（番号比較部２０２においてヘッド番号およびトラック番号の相違が検出されたセクタ）のヘッド番号およびトラック番号を番号情報記憶部２０９に記憶する。（Ｓ１２０５）。
【００８８】
例えば、セクタ１１０３が番号比較部２０２における比較対象のセクタとされた場合、セクタ１１０３のヘッド番号＝０ｘ０６は、番号情報記憶部２０９に記憶された最終セクタ１１０１のヘッド番号＝０ｘ０７と異なるので、トラック長算出部２０３が実行するステップＳ１２０５の処理により、セクタ１１０３のヘッド番号＝０ｘ０６、トラック番号＝０ｘＦＦが番号情報記憶部２０９に記憶される。
【００８９】
ステップＳ１２０５の処理を実行後、変換部２０１は、ＬＢＡが０ｘ８０小さいセクタのヘッド番号とトラック番号とを取得する（Ｓ１２０６）。
【００９０】
そして、番号比較部２０２は、番号情報記憶部２０９に記憶された、セクタ１１０３のヘッド番号と、ステップＳ１２０６で変換部２０１により取得されたヘッド番号とを比較する。また、番号比較部２０２は、番号情報記憶部２０９に記憶されたセクタ１１０３のトラック番号と、ステップＳ１２０６で変換部２０１により取得されたトラック番号とを比較する。そして比較した結果、両者のヘッド番号およびトラック番号が一致するかを判定する（Ｓ１２０７）。セクタ１１０３のヘッド番号およびトラック番号とステップＳ１２０６で変換部２０１により取得されたヘッド番号およびトラック番号とが一致すると番号比較部２０２が判定した場合、ステップＳ１２０６の処理に戻り、変換部２０１による上記ステップＳ１２０６の処理が実行され、その後に番号比較部２０２によって上記ステップＳ１２０７の処理が実行される。
【００９１】
以後、ステップＳ１２０７にて、番号比較部２０２が、番号情報記憶部２０９に記憶されたヘッド番号またはトラック番号と取得したヘッド番号またはトラック番号がことなることを検出するまで、ステップＳ１２０６、Ｓ１２０７の処理が繰り返される。例えば、図６において、セクタ１１０４が番号比較部２０２における比較対象のセクタとされた場合、セクタ１１０４のヘッド番号およびトラック番号は、番号情報記憶部２０９に記憶されたセクタ１１０３のヘッド番号、トラック番号と同一であるので、ステップＳ１２０７の判定後にステップＳ１２０６およびＳ１２０７の処理が繰り返される。
【００９２】
一方、ステップＳ１２０７にて、番号比較部２０２が、番号情報記憶部２０９に記憶されたヘッド番号またはトラック番号と取得したヘッド番号またはトラック番号が異なることを検出した場合、番号比較部２０２はその旨を示す通知をトラックデータ長算出部２０３に送信する。番号比較部２０２からの前記通知を受信したトラックデータ長算出部２０３は、セクタ１１０３から現在のセクタ（番号比較部２０２においてヘッド番号およびトラック番号の相違が検出されたセクタ）よりもＬＢＡの値が０ｘ８０大きいセクタ（図１１ではセクタ１１０４）までのセクタ数に対応するデータ長を算出する。そして、トラックデータ長算出部２０３は、算出したデータ長を最内周トラックのデータ長の近似値としてトラック情報記憶部２１０に記憶する（Ｓ１２０８）。
【００９３】
例えば、セクタ１１０５がステップＳ１２０７における比較対象のセクタとされた場合、セクタ１１０５のヘッド番号＝０ｘ０５は、番号情報記憶部２０９に記憶されたセクタ１１０３のヘッド番号＝０ｘ０６と異なる。そのため、トラックデータ長算出部２０３によりステップＳ１２０８の処理が実行され、図１１に示すセクタ１１０３からセクタ１１０５よりもＬＢＡが０ｘ８０大きいセクタまでのセクタ数に対応するデータ長を算出する。ここで例えば、算出されたデータ長が２５６キロバイトであった場合、トラックデータ長算出部２０３は最内周トラックのデータ長の近似値が２５６キロバイトであることをトラック情報記憶部２１０に記憶する。
【００９４】
以上の手順で、磁気ディスク記憶装置１０５、１０６が有する最内周トラックのデータ長が算出される。
【００９５】
実施例２の処理は、実施例１の処理と比較して、セクタのヘッド番号、シリンダ番号を、０ｘ８０ごとに取得するので、より少ない計算量、計算時間でトラックのデータ長の近似値を求めることとなる。
【００９６】
以上のように、本発明の実施例１および実施例２によれば、磁気ディスク記憶装置が有するプラッタのトラックのデータ長が不明である場合に、トラックのデータ長（あるいはその近似値）を算出することが可能である。
【００９７】
また、実施例２の手順において変換部２０１は、０ｘ８０の間隔でセクタのヘッド番号とトラック番号を取得しているが、先に述べたように、この値は、記憶装置の仕様に基づいて適宜変更するようにしてもよい。一例として、記憶装置１００のデータ処理におけるデータ長の最小値が６４キロバイトであり、１セクタあたりに記憶可能なデータ長が５１２バイトである場合、本実施例２のように、０ｘ８０の間隔でセクタのヘッド番号、トラック番号を取得すればよい。これにより、記憶装置１００で実行されるデータ処理への影響を軽減させつつ、実施例１と比較して、より効率良くトラックのデータ長を算出することが可能である。
〔データ領域の分割〕
最外周トラックのデータ長と最内周トラックのデータ長が算出された後、磁気ディスク記憶装置１０５、１０６の有する記憶領域の分割を行う手順について説明する。以降の手順においては、実施例２に手順によって算出された、トラックのデータ長の近似値を用いる場合を説明するが、実施例１の手順で算出されたトラックのデータ長や、実施例１、実施例２以外の手段によって予め取得された情報を用いることも可能である。
【００９８】
まず、前述したゾーンについて詳細を説明する。本実施例のゾーンとは、複数のブロックをまとめたグループである。同じゾーンに属するブロックに設定するデータ長を同じ値とする。そして、プラッタの外側のゾーンになる、つまり１トラックあたりのデータ長が大きくなるにつれて、ブロックに設定するデータ長を大きくする。このように、ゾーン、およびブロックのデータ長を設定することで、トラックのデータ長が大きくなることに応じて、ブロックのデータ長が大きくなるように設定される。これにより、ブロックのデータ長が大きくなっても、セクタを磁気ヘッドが走査する際のシーク回数およびシーク時間が増加を軽減することができる。
【００９９】
本実施例のゾーン、およびゾーン毎のブロックのデータ長の設定について詳細に説明する。
【０１００】
ゾーン決定部２０４は、図１３に示す計算式に基づいて、データ領域全体をいくつのゾーンに区切るかを決定する。ここで決定するゾーンの数を、以後、ゾーン数と記載する。図１３に示す計算式について説明すると、ゾーン数は、最外周トラックのデータ長と最内周トラックのデータ長との差分を変換部２０１がセクタのヘッド番号とトラック番号とを取得する間隔に等しいデータ長で割ったものに１を足した数とする。つまり（（最も外側のトラックのデータ長）−（最も内側のトラックのデータ長））÷（セクタを特定する間隔）＋１をゾーン数とする。
【０１０１】
具体例を挙げると、本実施態様の場合、ブロックのデータ長の最大値は前述の実施例２において算出された最も外側のトラックのデータ長の近似値である５１２キロバイトである。また、ブロックのデータ長の最小値は前述の実施例２において算出された最も内側のトラックのデータ長の近似値である２５６キロバイトである。さらに、記憶装置１００のデータ処理におけるデータ長の最小値が６４キロバイトであるとすると、（５１２−２５６）÷６４＋１＝５よりゾーン数は５となる。したがって、この例の場合、データ領域全体を５つのゾーンに分割することをゾーン決定部２０４が決定する。
【０１０２】
ゾーン決定部２０４がゾーン数を決定後、各ゾーンを識別する識別子としてゾーン番号を割り当てる。ゾーン番号は、例えばゾーン番号ごとに異なる通し番号である。具体例を挙げると、例えば、最も外側のゾーンのゾーン番号を０とし、ゾーン番号が０のゾーンよりも１つ内側のゾーンのゾーン番号を１とする。以下、同様の手順で、最内周ゾーンまでゾーン番号を割り当てることで、５つのゾーンを識別するゾーン番号０〜４が割り当てられる。以後、明細書においてもゾーン番号０〜４に対応するゾーンをそれぞれＺｏｎｅ＃０〜Ｚｏｎｅ＃４と記載する。
【０１０３】
ゾーン数およびゾーン番号が決定されると、ブロックデータ長決定部２０５は、ゾーン決定部２０４により決定された各ゾーンにおける、１ブロックあたりのデータ長を決定する。
【０１０４】
まず、ブロックデータ長決定部２０５は、Ｚｏｎｅ＃０に属するブロックに割り当てられるデータ長を、ブロックのデータ長の最大値である５１２キロバイトに決定する。また、ゾーン番号が１であるゾーン（以下、Ｚｏｎｅ＃１と記載する）に属するブロックに割り当てられるデータ長を、５１２キロバイトから６４キロバイトを減じた４４８キロバイトに決定する。以下、同様の手順で、各ゾーンのブロックに割り当てるデータ長を決定する。尚、例えばこの際に、Ｚｏｎｅ＃４のブロックのデータ長を２５６キロバイトに決定し、ゾーン番号が１小さくなるごとにブロックに割り当てるデータ長を６４キロバイト大きくする手順であってもよい。
【０１０５】
各ゾーンにおける、１ブロックあたりのデータ長が決定されると、ブロックデータ長決定部２０５は、各ゾーンのゾーン番号と１ブロックあたりのデータ長とを対応付けてゾーン情報記憶部２１１に記憶する。
【０１０６】
図１４は、ゾーン情報記憶部２１１に記憶される情報の一例である。ゾーンそれぞれにおける１ブロックあたりのデータ長は、図１４に示すゾーン情報１４００のようなデータ構造でゾーン情報記憶部２１１に記憶することとしてもよい。
【０１０７】
ゾーン数、および各ゾーンの１ブロックあたりのデータ長が決定された後、データ領域算出部２０６は、磁気ディスク記憶装置が有するプラッタのデータ領域全体に対する、各ゾーンが占める領域の割合を求める。
【０１０８】
データ領域算出部２０６がプラッタ面のデータ領域全体に対する各ゾーンのデータ領域の割合を決定する手順を説明する。
【０１０９】
図１５に、データ領域全体における各ゾーンに割り当てるデータ領域の割合を求める計算式を示す。図１５に示す式において、ゾーン数とは、データ領域全体に存在するゾーンの数であり、ゾーン番号は前述のデータ領域を分割する手順において各ゾーンに割り当てられた番号である。
【０１１０】
本実施態様のＺｏｎｅ＃０を例に挙げると、ゾーン数は５、ゾーン番号は０なので、図１５に示す式により、データ領域全体に対してＺｏｎｅ＃０が占めるデータ領域は３６％と決定される。データ領域算出部２０６は、ゾーン番号と算出された割合とを対応付けてゾーン情報記憶部２１１に記憶する。
【０１１１】
Ｚｏｎｅ＃０以外のゾーンについても同様の手順でデータ領域全体に対してゾーンが占めるデータ領域の割合を決定し、決定した結果をゾーン情報記憶部２１１に記憶する。
【０１１２】
図１６は、ゾーン情報記憶部２１１に記憶される情報の一例である。結果として、ゾーン情報記憶部２１１に、図１６に示すデータ領域情報１６００を記憶することが可能である。
【０１１３】
以上の手順により、磁気ディスク記憶装置のデータ領域を分割する際の各ブロックのデータ長が決定される。本実施例によれば、アクセス速度が内側のトラックのブロックと比べて高速な外側のトラックのブロックは、１ブロックあたりのデータ長が大きくなるように分割される。したがって、例えば、同じデータ長のデータを、外側のトラックのブロックから読み出す場合と、内側のトラックのブロックから読み出す場合では、外側のトラックのブロックの方がブロックへのアクセス（Ｉ／Ｏアクセス）の回数を少なくできる。これにより、Ｉ／Ｏアクセスの増加による記憶装置の処理負荷の増加を軽減することができる。
【０１１４】
また、各ブロックのデータ長は、プラッタの外側のトラックに属するブロックは大きく、ブロックがプラッタの内側のトラックに属するブロックになるほど小さくなる。つまり、プラッタの外側のトラックに属するブロックと比較してアクセス速度が低速な、プラッタの内側のトラックに属するブロックは、アクセス速度の低下に応じて１ブロックあたりのデータ長が小さく決定される。これにより、ブロック毎の、データにアクセスする際に必要な時間のばらつきを抑制することができる。
【０１１５】
ここで、上記の手順によって、データ領域が分割された磁気ディスク装置が奏する効果について、具体例を挙げて説明する。
【０１１６】
図１７は、従来技術を用いて実現される比較例（従来例）および本実施例のハードウェア構成を示す図である。図１７のように、従来例および本実施例の記憶装置は、１台の制御装置１００と、５台の磁気ディスク記憶装置１７１０（１）〜１７１０（５）がネットワーク１７２０を介して接続される。本実施例および従来例にはＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ、またはＲｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）５（４＋１）が適用されるものとする。
【０１１７】
本実施例と比較する従来技術として、データ領域が０ｘ８０個のセクタごとに均等に分割された磁気ディスク記憶装置を挙げる。尚、前述した磁気ディスク記憶装置１０５、１０６と、従来例の磁気ディスク記憶装置１７１０（１）〜（５）は、同一のハードウェアであると仮定する。また、ネットワーク１７１０は例えば、ファイバチャネルやＳＡＮであって良い。
【０１１８】
本実施例の磁気ディスク記憶装置と、従来例の磁気ディスク記憶装置それぞれについて、Ｚｏｎｅ＃４の領域に記憶されたデータにアクセスが発生する場合を考える。図１７におけるＺｏｎｅ＃４の領域に記憶されるこの領域の１ブロックあたりのデータ長は、本実施例の場合は２５６キロバイト、従来例の場合は６４キロバイトである。
【０１１９】
まず、ＲＡＩＤ５（４＋１）の態様において、本実施例および従来例の磁気ディスク記憶装置に、シーケンシャルリード／ライトアクセスが発生する場合を考える。
【０１２０】
図１８は、従来例の磁気ディスク記憶装置にシーケンシャルリード／ライトアクセスが発生する場合を表す図である。
【０１２１】
従来例の場合、プラッタのデータ領域は、６４キロバイトごとに区切られている。このため、０ｘ２００×４セクタ分のデータを読み込むためには、磁気ディスク記憶装置全体で２０回のＩ／Ｏアクセスが必要である。
【０１２２】
図１９は、本実施例の磁気ディスク記憶装置にシーケンシャルリード/ライトアクセスが発生する場合を表す図である。本実施例のディスク記憶装置の場合、プラッタのデータ領域は、２５６キロバイトごとに区切られている。このため、０ｘ２００×４のデータを読み込むために必要なＩ／Ｏアクセスは、磁気ディスク記憶装置全体で４回であるので、従来例と比べてＩ／Ｏアクセスの回数が減少し、記憶装置の処理負荷の増加を軽減させることができる。さらに、２５６キロバイトは、Ｚｏｎｅ＃４のトラック１つ分のデータ長の近似値であるため、１ブロックあたりのデータ長を大きくしつつも、セクタを磁気ヘッドが走査する際のシーク回数およびシーク時間の増加は低減することが可能である。
【０１２３】
以上のように、本発明の磁気ディスク記憶装置は、従来例の磁気ディスク記憶装置と比べて、シーケンシャルリード/ライトアクセスが発生する場合のアクセス性能を向上させることが可能である。
【０１２４】
次に、本実施例および従来例の磁気ディスク記憶装置に、ランダムリード／ライトアクセスが発生する場合を考える。
【０１２５】
図２０は、従来例の磁気ディスク記憶装置にランダムリード／ライトアクセスが発生する場合を表す図である。図２１は、本実施例の磁気ディスク記憶装置にランダムリード／ライトアクセスが発生する場合を表す図である。
【０１２６】
従来例のディスク記憶装置の場合、プラッタのデータ領域は、６４キロバイトごとに区切られている。このため、０ｘ２００セクタ分のデータを読み込むためには、磁気ディスク記憶装置全体で、４回のＩ／Ｏアクセスが必要である。また、データは、６４キロバイトごとに分割されて、計４台の磁気ディスク記憶装置に記憶されているため、４台の磁気ディスク記憶装置それぞれにＩ／Ｏアクセスが発生する。
【０１２７】
一方、本実施例のディスク記憶装置の場合、プラッタのデータ領域は、２５６キロバイトごとに区切られている。このため、０ｘ２００のデータを読み込むために必要なＩ／Ｏアクセスは、磁気ディスク記憶装置全体で１回であるので、従来例と比べてＩ／Ｏアクセスの回数が減少する。さらに、２５６キロバイトは、Ｚｏｎｅ＃４のトラック１つ分のデータ長の近似値であるため、１ブロックあたりのデータ長を大きくしつつも、セクタを磁気ヘッドが走査する際のシーク回数およびシーク時間の増加は低減することが可能である。
【０１２８】
以上のように、本発明の磁気ディスク記憶装置は、従来例の磁気ディスク記憶装置と比べて、ランダムリード／ライトアクセスが発生する場合のアクセス性能を向上させることが可能である。
【０１２９】
以上説明したように、本発明によれば、例えば図１７に示す、ＲＡＩＤ５（４＋１）の態様において、セクタを磁気ヘッドが走査する際のシーク回数およびシーク時間の増加を低減しつつ、Ｉ／Ｏアクセスを少なくすることが可能である。そして、Ｉ／Ｏアクセスを減少させることで、記憶装置１００の処理負荷を低減することが可能である。
【０１３０】
説明においては、Ｚｏｎｅ＃４に記憶されたデータにアクセスが発生する場合を想定して説明したが、Ｚｏｎｅ＃４以外のゾーンについても、各ゾーンの１トラックあたりのデータ長に基づいて、ブロックのデータ長が決定される。そのため、Ｚｏｎｅ＃４以外のゾーンにおいても、従来例の磁気ディスク記憶装置と比べて、アクセス性能を向上させることが可能である。
【０１３１】
本発明によれば、磁気ディスク記憶装置が有するプラッタのトラックのデータ長が不明に、トラックのデータ長を自動で算出することが可能である。また、算出されたトラックのデータ長を用いて、磁気ディスク記憶装置の有する記憶領域を好適に分割することが可能である。明細書にて説明した実施例は、本発明を実施する態様の一例に過ぎず、本発明を実現にあたり、具体的な手法については、適宜変更が加えられても良い。
【図面の簡単な説明】
【０１３２】
【図１】実施例のシステム１を示す。
【図２】制御装置１００の機能的構成を示すブロック図を示す。
【図３】実施例１におけるプラッタの最外周トラックのデータ長を算出することを説明するための図を示す。
【図４】実施例１における最外周トラックのデータ長の算出手順を示すフローチャートを示す。
【図５】ＬＢＡの割り当て方法の例を説明する図を示す。
【図６】実施例１におけるプラッタの最内周トラックのデータ長を算出することを説明するための図を示す。
【図７】実施例１における最内周トラックのデータ長の算出手順を示すフローチャートを示す。
【図８】プラッタの最外周トラックから最内周トラックの間の各トラックのデータ長を算出する手順を示すフローチャートを示す。
【図９】実施例２におけるプラッタの最外周トラックのデータ長を算出することを説明するための図を示す。
【図１０】実施例２における最外周トラックのデータ長の算出手順を示すフローチャートを示す。
【図１１】実施例２におけるプラッタの最内周トラックのデータ長を算出することを説明するための図を示す。
【図１２】実施例２における最内周トラックのデータ長の算出手順を示すフローチャートを示す。
【図１３】ゾーン数を決定するための計算式を示す。
【図１４】ゾーン情報１４００を示す。
【図１５】データ領域全体における各ゾーンに割り当てるデータ領域の割合を求める計算式を示す。
【図１６】データ領域情報１６００を示す。
【図１７】従来技術を用いて実現される比較例（従来例）および本実施例のハードウェア構成を示す図である。
【図１８】従来例の磁気ディスク記憶装置にシーケンシャルリード／ライトアクセスが発生する場合を表す図である。
【図１９】本発明の磁気ディスク記憶装置にシーケンシャルリード／ライトアクセスが発生する場合を表す図である。
【図２０】従来例の磁気ディスク記憶装置にランダムリード／ライトアクセスが発生する場合を表す図である。
【図２１】本発明の磁気ディスク記憶装置にランダムリード／ライトアクセスが発生する場合を表す図である。
【符号の説明】
【０１３３】
１００  制御装置
１０１  ＣＰＵ
１０２  メモリ
１０３  記憶装置側アダプタ
１０４  処理装置側アダプタ
１０５  磁気ディスク記憶装置
１０６  磁気ディスク記憶装置
１０７  情報処理装置
２０１  変換部
２０２  番号比較部
２０３  トラック長算出部
２０４  ゾーン決定部
２０５  ブロックデータ長決定部
２０６  データ領域算出部
２０７  分割指示部
２０８  記憶部
２０９  番号情報記憶部
２１０  トラック情報記憶部
２１１  ゾーン情報記憶部
【図１】
2014013636.tif 000003
【図２】
2014013636.tif 000004
【図３】
2014013636.tif 000005
【図４】
2014013636.tif 000006
【図５】
2014013636.tif 000007
【図６】
2014013636.tif 000008
【図７】
2014013636.tif 000009
【図８】
2014013636.tif 000010
【図９】
2014013636.tif 000011
【図１０】
2014013636.tif 000012
【図１１】
2014013636.tif 000013
【図１２】
2014013636.tif 000014
【図１３】
2014013636.tif 000015
【図１４】
2014013636.tif 000016
【図１５】
2014013636.tif 000017
【図１６】
2014013636.tif 000018
【図１７】
2014013636.tif 000019
【図１８】
2014013636.tif 000020
【図１９】
2014013636.tif 000021
【図２０】
2014013636.tif 000022
【図２１】
2014013636.tif 000023