(57)【特許請求の範囲】
【請求項１】
第１のデータを分割した第２のデータを、ディスク上に前記第２のデータの先頭と末尾の角度差としてのギャップを設けて配置し、
前記第２のデータが配置されない前記ギャップの部分に、所定の付加情報を配置し、
前記付加情報は、前記付加情報が配置された前記ディスク上に既に前記ギャップを設けて配置された前記第２のデータのバックアップデータ、または、前記付加情報が配置された前記ディスクとは異なる他のディスク上に既に前記ギャップを設けて配置された前記第２のデータのバックアップデータである
ことを特徴とするディスク制御方法。
【請求項２】
前記付加情報は、前記付加情報が配置される前記ディスク上に既に前記ギャップを設けて配置された前記第２のデータの読み出しまたは書き込みが行われる時間帯と同一の時間帯に読み出しまたは書き込みが行われない情報である
ことを特徴とする請求項１に記載のディスク制御方法。
【請求項３】
前記付加情報は、前記ディスク上に前記付加情報の先頭と末尾との角度差としてのギャップを設けて配置される
ことを特徴とする請求項１に記載のディスク制御方法。
【請求項４】
前記付加情報は、前記第２のデータが配置される前記ディスク上における格納場所を示す情報である
ことを特徴とする請求項１に記載のディスク制御方法。
【請求項５】
前記付加情報は、所定のプログラムである
ことを特徴とする請求項１に記載のディスク制御方法。
【請求項６】
第１のデータを分割した第２のデータを、ディスク上に前記第２のデータの先頭と末尾の角度差としてのギャップを設けて配置する配置手段と、
前記第２のデータが配置されない前記ギャップの部分に、所定の付加情報を配置する付加情報配置手段と
を備え、
前記付加情報は、前記付加情報が配置された前記ディスク上に既に前記ギャップを設けて配置された前記第２のデータのバックアップデータ、または、前記付加情報が配置された前記ディスクとは異なる他のディスク上に既に前記ギャップを設けて配置された前記第２のデータのバックアップデータである
ことを特徴とするディスク制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディスク制御方法および装置に関し、例えば、ディスク上に配置されたデータのギャップの部分に他のデータを配置することにより、ディスクの使用効率を下げることなく、ランダムアクセス下におけるリアルタイム性を保証することができるようにしたディスク制御方法および装置に関する。
【０００２】
【従来の技術】
動画像、音声などのマルチメディアデータ用のストレージは、しばしばマルチメディアサーバと呼ばれる。マルチメディアサーバには、高い転送速度とリアルタイム性が要求される。
【０００３】
高い転送速度は、大量の動画像や音声を扱う上で当然必要となる。一方、リアルタイム性とは、処理時間の上限が保証されていることを意味する。例えば、動画像の場合、毎秒３０枚の画像が、一定の間隔で次々に表示されないと、動きがぎこちなくなる。また、ディスクの能力が追い付かず、音声データが不足すると、音が途切れて不快なノイズを発する。
【０００４】
このように、マルチメディアデータは、それぞれ特定の時刻に用意され、使用されないと情報としての価値が激減してしまう。従って、マルチメディアサーバにおいては、最悪の場合でもこれだけの時間で処理することができるという上限が保証されていることが重要である。このような性質をリアルタイム性と呼び、リアルタイム性が保証されていることは、マルチメディアの分野では欠かせない機能である。これは、従来のコンピュータ用のストレージにおいては、処理に要する平均時間の削減が第１の目標であり、必ずしも処理に要する時間の最悪値が低く抑えられていなかったこと、即ち、処理時間のばらつきが大きいこととは対照的である。
【０００５】
マルチメディアデータは動画像のように連続していることに意味があるデータの集まりであるから、マルチメディアサーバにおいても物理的に連続な場所のデータを順にアクセスするシーケンシャルアクセスが主体になると想像しがちであるが、実際のアプリケーションを考えてみると意外とそうではないことがわかる。
【０００６】
例えば、マルチメディアサーバの代表的なものとして、ノンリニア編集機やＶＯＤ（video-on-demand）サーバなどがある。ノンリニア編集機とは、ランダムアクセスにより読み出した画像の記憶場所が物理的に隔たりのある画像を瞬時に途切れることなくつなぎ合わせる編集方法である。また、ＶＯＤとは、複数の視聴者の要求に従って、複数の異なるシーケンスの動画像をランダムアクセスしながら同時に提供するサービスである。どちらもランダムアクセスが発生することとなり、サーバはこれに対処しなければならない。
【０００７】
このように、マルチメディアサーバにおいては、ランダムアクセス下におけるリアルタイム性の保証がいかに重要であるかがわかる。同時に、このことは、マルチメディアサーバを構成するディスク記憶装置単体に対する要求ともなる。つまり、ディスク記憶装置においても全く同様に、決められた時間内に記録面上の物理的に離れた場所のデータを次々と読み出すことができる、あるいは、書き込むことができることが必要である。
【０００８】
ディスク記憶装置上の１つのサブブロック（データを分割したもの）をアクセスする時間Ｔi/oは、ディスクのヘッドがサブブロックの上を通過しながら実際に読み出しあるいは書き込みを行う時間Ｔr/w、ヘッドが所望のシリンダまで移動するシーク時間Ｔseek、ヘッドが所望のシリンダまで移動した後に、トラック内でサブブロックの先頭がヘッドの位置に現れるまでの回転待ち時間Ｔrdの和で表される。
【０００９】
Ｔi/o＝Ｔr/w＋Ｔseek＋Ｔrd
【００１０】
このうち、Ｔseek＋Ｔrdがオーバヘッドタイムとなる。シーケンシャルアクセスの場合、このオーバヘッドタイムは限りなく０に近いが、ランダムアクセスの場合、オーバヘッドタイムが増大してディスクの性能を低下させる原因となる。
【００１１】
オーバヘッドタイムの１つの要因であるシーク時間を減少させる従来技術としては、ＳＣＡＮアルゴリズムと呼ばれる方法がある。この方法は、図９（Ａ）に示すように、複数のＩ／Ｏ（入出力（ｉｎｐｕｔ／ｏｕｔｐｕｔ））要求（＃１、＃２、＃３、＃４、＃５）が与えられたとき、ディスクの半径方向にソートして、図９（Ｂ）に示すような順番（＃３、＃１、＃２、＃５、＃４）に入れ替えて処理するアルゴリズムである。図９（Ａ）に示すように、Ｉ／Ｏ要求の到着順に処理した場合において発生したであろうヘッドの往復動作を防ぐことができ、ひいては、それぞれのシーク時間を減少させることができる。
【００１２】
一方、オーバヘッドタイムのもう１つの要因である回転待ち時間を減少させる技術としては、本願出願人が既に出願した「特願平７−２８２１７５」において、次のようなものが開示されている。即ち、サブブロックの先頭同士の円周方向の角度差であるスキューと、サブブロック内の先頭と末尾との角度差であるギャップを用いてサブブロックの配置を行い、ＳＣＡＮアルゴリズムと組み合わせてシーク時間と回転待ち時間を両方とも抑える方法である。図１０は、スキューとギャップの値をそれぞれ一定とした場合のサブブロックの配置の一例を示している。
【００１３】
このように、スキューの値を一定にすることにより、シーク動作中に所望のサブブロックの先頭がヘッドの位置を通り過ぎないように制御することができる。従って、所望のサブブロックにアクセスするときに、そのサブブロックの先頭が再びヘッドの位置に戻ってくるまでの回転時間だけ待つ必要がなくなる。これにより、回転待ち時間を減少させることができる。
【００１４】
また、各サブブロックの先頭と末尾との角度差であるギャップが一定であるということは、実際に各サブブロックの読み出しあるいは書き込みをする時間Ｔw/rも一定であることを意味する。１回のＩ／Ｏにかかる時間を見積もるためには、時間Ｔr/wの他にオーバヘッドタイムが分からなくてはいけないが、これは図１１に示すグラフより予測することができる。
【００１５】
図１１は、図１０に示したように各サブブロックが配置されたディスクのオーバヘッドタイムを表している。横軸はシーク距離、即ち、ディスクのヘッドが移動するときに横切るシリンダ数を表しており、縦軸は最外周からそのシーク距離だけ移動した位置にあるサブブロックのＩ／Ｏにかかる時間を表している。一点鎖線がシーク時間Ｔseekであり、実線が全体のオーバヘッドタイムである。オーバヘッドタイムは、シーク時間Ｔseekと回転待ち時間Ｔrdとの和であるから、実線と一点鎖線の差が回転待ち時間Ｔrdということになる。
【００１６】
「特願平７−２８２１７５」に開示された方法よりも以前の方法では、回転待ち時間を予測することができなかったので、オーバヘッドタイムの最大値を計算する場合、結局グラフの点線のように、一律に一回転分の回転待ち時間がかかるものとして計算されていた。このグラフから、図１０に示したようなサブブロックの配置を行うことにより、オーバヘッドタイムの最大値が、点線で表した以前のものに比べて、実線で表したように小さく抑えられていることがわかる。
【００１７】
さらに、図１０に示したようなサブブロックの配置方法に対して、ＳＣＡＮアルゴリズムを適用することを考える。シリンダ方向（半径方向）では、図１２に示すように、等間隔にあるサブブロックに対してＩ／Ｏ要求が発せられたとき、最も時間がかかることが分かっている。このときのシリンダ間隔Ｌavgは平均シーク距離であり、１回のスキャンにおけるトータルでのオーバヘッドタイムの最大値は、図１１におけるシーク距離がＬavgのときのオーバヘッドタイムから計算することができる。
【００１８】
その値は、単にＳＣＡＮアルゴリズムを適用しただけのときのそれより小さいだけでなく、実際に観測されるオーバヘッドタイムの最大値にも極めて近い。このことから、以上のようにして見積もった最大値をかなり信用できる指標として、マルチメディアサーバの設計に役立てることができる。
【００１９】
【発明が解決しようとする課題】
図１０に示したようなアロケーションを決定するパラメータとしては、スキュー（θskew）とギャップ（θgap）がある。このうち、スキューは比較的自由に設定することができるのに対し、ギャップの選択には制約があることが多い。これは、マルチメディアデータの場合、データのサイズが固定長であることが多いからである。
【００２０】
例えば、１つのディスクにサイズが固定のサブブロックを配置する場合、サブブロックのセクタの数Ｓ、１トラックあたりのセクタの数Ｔより、ギャップの値は次式（１）より一意に決まる。
【００２１】
θgap＝（ｒＴ−Ｓ）／Ｔ×３６０°  ・・・（式１）
ただし、ｒは、Ｓ≦ｒＴ＜（Ｓ＋Ｔ）を満足する自然数である。
【００２２】
１ブロックのサイズが９０セクタ、１トラックあたりのセクタ数が１８０セクタであるとすると、θgap＝１８０°となる。このとき、スキューとギャップを用いた配置は、図１３に示すようなものとなり、ディスク装置上の全記憶領域のうち、使用可能な領域はわずかに５０パーセントとなってしまう。
【００２３】
上記の例においては、ディスク装置を１つに限定したが、マルチメディアサーバは、大抵の場合、非常に大きな容量が要求されるので、複数のディスク装置からなるディスクアレイシステムとして実現される場合がある。さらに、その場合、１つのデータをｎ個のサブブロックに分割し、別々のディスク装置に格納し、読み出し時、あるいは書き込み時に、複数のディスク装置を並列にドライブすることにより、データ転送速度を上げることがよく行われる。
【００２４】
このとき、データを分割する分割数ｎを変化させると、各ディスク装置上に配置されるサブブロックのサイズも変化するので、選択するギャップの値として、いくつかの候補が存在する。しかしながら、ギャップの値とマルチメディアサーバに要求されるデータ転送速度との関係や、ディスク装置の総数等からデータを分割する分割数ｎにも制約があり、ギャップの値を任意に決定することはできない。
【００２５】
また、サブブロックのサイズをディスク装置の使用効率が上がるように設定し、データを配置するようにすることもできるが、そのようにして設定したサブブロックのサイズとアプリケーションが扱うサブブロックのサイズには不一致が生じるため、余計なＩ／Ｏを発生したり、回転待ちを制御することができなくなり、オーバヘッドタイムを増加させる原因となり、現実的ではない。
【００２６】
本発明はこのような状況に鑑みてなされたものであり、スキューとギャップを設けてデータを配置する場合でも、ディスクの未使用領域を削減し、ディスク装置を効率的に使用することができるようにするものである。
【００２７】
【課題を解決するための手段】
請求項１に記載のディスク制御方法は、第１のデータを分割した第２のデータを、ディスク上に第２のデータの先頭と末尾の角度差としてのギャップを設けて配置し、第２のデータが配置されないギャップの部分に、所定の付加情報を配置し、付加情報は、付加情報が配置されたディスク上に既にギャップを設けて配置された第２のデータのバックアップデータ、または、付加情報が配置されたディスクとは異なる他のディスク上に既にギャップを設けて配置された第２のデータのバックアップデータであることを特徴とする。
【００２９】
請求項６に記載のディスク制御装置は、第１のデータを分割した第２のデータを、ディスク上に第２のデータの先頭と末尾の角度差としてのギャップを設けて配置する配置手段と、第２のデータが配置されないギャップの部分に、所定の付加情報を配置する付加情報配置手段とを備え、付加情報は、付加情報が配置されたディスク上に既にギャップを設けて配置された第２のデータのバックアップデータ、または、付加情報が配置されたディスクとは異なる他のディスク上に既にギャップを設けて配置された第２のデータのバックアップデータであることを特徴とする。
【００３１】
請求項１に記載のディスク制御方法においては、第１のデータを分割した第２のデータを、ディスク上に第２のデータの先頭と末尾の角度差としてのギャップを設けて配置し、第２のデータが配置されないギャップの部分に、所定の付加情報を配置する。この付加情報は、付加情報が配置されたディスク上に既にギャップを設けて配置された第２のデータのバックアップデータ、または、付加情報が配置されたディスクとは異なる他のディスク上に既にギャップを設けて配置された第２のデータのバックアップデータである。
【００３３】
請求項６に記載のディスク制御装置においては、配置手段が、第１のデータを分割した第２のデータを、ディスク上に第２のデータの先頭と末尾の角度差としてのギャップを設けて配置し、付加情報配置手段が、第２のデータが配置されないギャップの部分に、所定の付加情報を配置する。この付加情報は、付加情報が配置されたディスク上に既にギャップを設けて配置された第２のデータのバックアップデータ、または、付加情報が配置されたディスクとは異なる他のディスク上に既にギャップを設けて配置された第２のデータのバックアップデータである。
【００３５】
【発明の実施の形態】
図１は、本発明のディスク制御装置を適用したマルチメディアサーバの一実施の形態の構成を示すブロック図である。各ブロックは、主要なプログラムモジュール、あるいは主要なデータ構造を表している。
【００３６】
配置部（Ｂｌｏｃｋ  Ａｌｌｏｃａｔｏｒ）１（配置手段、付加情報配置手段）は、入力されたフォーマットパラメータに基づいて、後述するブロックマップ（Ｂｌｏｃｋ  Ｍａｐ）３を作成するようになされている。フォーマットパラメータは、データの１ブロックの大きさＳ、データを分割する数ｎ、および最適なスキュー値（θskew）などから構成されている。
【００３７】
その他に、ディスク記憶装置（Ｄｉｓｋ）６−１乃至６−ｍの物理セクタアドレスから論理セクタアドレスに変換する処理が必要となるが、この実施の形態では、後述するＳＣＳＩ（ANSI Small Computer System Interface）ドライバ５−１乃至５−ｍを介して、ディスク記憶装置６−１乃至６−ｍに直接問い合わせることにより、その変換を行うようになされている。なお、以下では、特に区別する必要がない場合、ＳＣＳＩドライバ５−１乃至５−ｍを単にＳＣＳＩドライバ５と、また、ディスク記憶装置６−１乃至６−ｍを単にディスク記憶装置６と記載することにする。
【００３８】
ディスク記憶装置６の論理セクタアドレスと物理セクタアドレスの関係については、図４を参照して後述する。
【００３９】
配置部１は、データの配置を決定した後、ブロックマップ３を作成していく。ブロックマップ３は、図２に示したように、ｋ（データの総数を越えない任意の自然数）番目のデータを分割して得られたｎ個のサブブロックをディスク上のどこに格納するかを示すものである。サブブロックの配置場所は、ディスク記憶装置番号Ｄki、ディスク記憶装置上の開始論理セクタアドレスＬki、サブブロックを構成するセクタの数Ｓkiより決定することができる。ここで、ｉは、１≦ｉ≦ｎを満足する自然数である。
【００４０】
データを連続的に読み出す、あるいは書き込むときは、まず、複数のデータのアクセス要求が発生し、それらの要求を識別する情報としてのデータの番号、データが置かれるデータバッファ（Ｄａｔａ  Ｂｕｆｆｅｒ）４上でのアドレス、および読み出しか書き込みかを示すフラグがアクセス要求バッファ（Ａｃｃｅｓｓ  Ｒｅｑｕｅｓｔ  Ｂｕｆｆｅｒ）７に蓄えられる。
【００４１】
スケジューラ（Ｓｃｈｅｄｕｌｅｒ）２（入れ替え手段）は、所定の時間にそれらの複数の情報をアクセス要求バッファ７より読み出し、ブロックマップ３を参照して、要求されているデータを構成するサブブロックの配置場所を調べるようになされている。配置場所は、ディスク記憶装置６、ディスク記憶装置６上での開始論理セクタアドレス、セクタ数からなり、スケジューラ２は、該当するディスク記憶装置６をドライブするＳＣＳＩドライバ５にアクセス要求を行うようになされている。このとき、１つのディスク記憶装置６に対するアクセス要求は、ＳＣＡＮアルゴリズムによって順序が入れ替えられて発行される。
【００４２】
データバッファ４は、入力されたマルチメディアデータ等を一時的に記憶したり、ディスク記憶装置６より読み出されたマルチメディアデータ等を一時的に記憶するようになされている。
【００４３】
次に、データを読み出す場合における各部の動作について説明する。まず、アクセス要求バッファ７にアクセス要求が格納される。スケジューラ２は、アクセス要求バッファ７からアクセス要求を読み出し、それを該当するＳＣＳＩドライバ５に供給する。ＳＣＳＩドライバ５は、スケジューラ２より供給されたアクセス要求に基づいて、該当するディスク記憶装置６からアクセス要求によって指定されたサブブロックを読み出す。
【００４４】
ディスク記憶装置６より読み出したサブブロックを記憶させるデータバッファ４上のアドレスは、アクセス要求バッファ７より読み出されたアクセス要求に含まれるアドレスとブロックマップ３より得られたサブブロックのセクタ数に基づいて、スケジューラ２により演算によって求められる。このアドレスは、読み出し命令とともに該当するＳＣＳＩドライバ５に供給される。従って、ＳＣＳＩドライバ５は、ディスク記憶装置６より読み出したサブブロックを、データバッファ４のスケジューラ２によって演算されたアドレスに供給し、記憶させる。これにより、ＳＣＡＮアルゴリズムにより順序を入れ替えて読み出されたサブブロックが、データバッファ４上に元の順番で配置されることになる。
【００４５】
アクセス要求によって要求されたデータは、データバッファ４に置かれたサブブロックを集めて完成することができ、要求された順番通りにデータバッファ４より取り出され、所望のマルチメディアデータが順次出力される。
【００４６】
次に、データをディスク記憶装置６に書き出す場合の各部の動作について説明する。最初に、ディスク記憶装置６に書き込むべきマルチメディアデータが、順次、データバッファ４に書き込まれ、このマルチメディアデータのディスク記憶装置６への書き込みを指示するアクセス要求がアクセス要求バッファ７に供給される。スケジューラ２は、アクセス要求バッファ７よりアクセス要求を読み出し、アクセス要求に含まれるアドレスと、ブロックマップ３より読み出したサブブロックのセクタ数から、ディスク記憶装置６に書き込むべきマルチメディアデータをデータバッファ４から読み出すときのデータバッファ４上でのアドレスを計算によって求め、このアドレスを書き込み命令とともにＳＣＳＩドライバ５に供給する。
【００４７】
ＳＣＳＩドライバ５は、スケジューラ２より供給されたアドレスに基づいて、マルチメディアデータをデータバッファ４から読み出し、ディスク記憶装置６に書き込む。
【００４８】
ここで、ディスク記憶装置６の論理セクタアドレスと、物理セクタアドレスの関係について説明する。図３に示すように、ディスク記憶装置６は、通常、セクタ（Ｓｅｃｔｏｒ）と呼ばれる領域毎にアクセスすることができるようになされている。セクタは通常５１２バイト乃至４キロバイト程度の大きさで、これを円周上に並べたドーナツ型の領域をトラック（Ｔｒａｃｋ）、さらに複数枚だけ重ねた記録メディア（Ｍｅｄｉａ）の中心から同一の距離にあるトラックを集めた円筒状の領域をシリンダ（Ｃｙｌｉｎｄｅｒ）と呼ぶ。このように、シリンダ番号、メディア番号、およびセクタ番号からなるアドレスが物理セクタアドレスである。
【００４９】
一方、近年、最も普及しているＳＣＳＩ仕様のドライブでは、ドライブ内の全てのセクタに通し番号を与え、これを用いてデータをアクセスするようになっている。この通し番号が論理セクタアドレスである。
【００５０】
配置部１は、ＳＣＳＩドライバ５を介してディスク記憶装置６に直接問い合わせることにより、物理セクタアドレスと論理セクタアドレスとの間の変換を実現している。勿論、何らかの方法を用いて、図４に示すような物理セクタアドレスと論理セクタアドレスとの対応表を用意し、それを用いて物理セクタアドレスと論理セクタアドレスとの間の変換を行うようにしてもよい。図４（Ａ）に示したように、論理セクタアドレス（Ｌｏｇｉｃａｌ  Ｓｅｃｔｏｒ）Ｌkiは、シリンダ番号（Ｃｙｌｉｎｄｅｒ）ＣＹＬki、メディア番号（Ｍｅｄｉａ）ＭＥＤki、およびセクタ番号（Ｓｅｃｔｏｒ）ＳＥＣkiより構成される物理セクタアドレスに対応づけられている。図４（Ｂ）はその具体例を示している。従って、この対応表により、論理セクタアドレスを物理セクタアドレスに、あるいは、物理セクタアドレスを論理セクタアドレスに変換することができる。
【００５１】
次に、各サブブロックのギャップの部分に付加情報を入れる場合について説明する。
【００５２】
配置部１により、ブロックマップ３が決定されると、上記式（１）より、ディスク上でのサブブロックのギャップ（θgap）の値も決まる。ギャップの値が小さい場合、ディスク記憶装置６の未使用領域も小さいので使用効率が問題となることはないが、ギャップの値が大きい場合、図１３に示したように、ディスク記憶装置６の使用効率が５０パーセント以下になるときがあり、使用効率が問題となる。
【００５３】
一方、マルチメディアサーバが取り扱うデータは、同時にアクセスすることのない、系列の異なる複数種類のデータから構成される場合がある。例えば、１つのマルチメディアサーバが、ＮＴＳＣ（National Television System Committee）方式とＰＡＬ（phase alternation by line）方式といったような、フォーマットの異なる２種類の動画像を格納することができるようになっており、それらのフォーマットの動画像を記録若しくは再生する場合、適宜、どちらか一方の動画像だけを処理対象として選択するシステムが考えられる。その場合、配置部１は、まず、どちらか一方の方式の動画像を格納するブロックマップ３を作成し、それに基づいてディスク記憶装置６に記録された動画像のギャップの部分に、他方の動画像を格納することができるように、さらにブロックマップ３を作成する。
【００５４】
図５は、このようにして、ディスク記憶装置６上に配置されたＮＴＳＣ方式の動画像のサブブロックとＰＡＬ方式の動画像のサブブロックの例を示している。両方式のサブブロックともに、同一のスキュー値を設けて配置することにより、ＮＴＳＣ方式のサブブロックとＰＡＬ方式のサブブロックとが互いに重ならないようにすることができる。ただし、その場合、スキュー値は、図１１の実線で示したオーバヘッドタイムを左右するパラメータでもあるので、どちらの方式を選択しても、回転待ち時間が大きくならないようなスキュー値を決定する必要がある。
【００５５】
同様にして、各サブブロックのギャップの部分に、そのデータのバックアップデータを格納するようにしてもよい。ただし、バックアップは、ディスクアクセスのスケジューリングに余裕のある時間帯に行うようにする。また、ディスク記憶装置６が故障して、データが読めなくなることを想定し、図６に示すように、各ディスク記憶装置６は、互いに異なるディスク記憶装置６に記録されているデータのバックアップデータを格納するようにすることが望ましい。
【００５６】
勿論、マルチメディアサーバが内蔵するディスク記憶装置６が１つのみである場合や、読み出すことができなくなるデータが、一部の記録データのみである可能性もあるので、バックアップデータを同一のディスク記憶装置６内のギャップ部分に格納することに価値がある場合もある。
【００５７】
また、図１に示したブロックマップ３等のデータや、マルチメディアサーバを制御するプログラムをディスク記憶装置６のギャップの部分に格納するようにすることも可能である。その場合、システム起動時に、それらのデータをマルチメディアサーバに備えられた図示せぬ揮発性の高速メモリ（例えば、ＤＲＡＭ（dynamic random access memory）等）に読み出し、以降、電源を落とすまで、揮発性の高速メモリにコピーしたブロックマップ３のデータや制御プログラム等を使用する。これにより、ＲＯＭ等の不揮発性メモリの容量を削減することができ、装置のコストダウンを実現するとともに、高速な処理を行うことが可能となる。
【００５８】
ところで、図５においては、別の系統（グループ）のデータを構成するサブブロック群を、それぞれ回転待ち時間が少なくなるように配置していたが、これらの２つのグループは、同一の系列のデータであっても構わない。即ち、同一の系統のデータを構成するサブブロックを複数の組に分け、それぞれの組において、スキューの値とギャップの値を一定に保ちながら配置することもできる。
【００５９】
図７は、同一の系列のデータを構成する各サブブロックを２つのグループＡ，Ｂに分けて配置した例を示している。ただし、この場合、各サブブロックをアクセスする順番に注意する必要がある。即ち、同一のグループのサブブロックをアクセスする場合、回転待ち時間を抑えることができるように、各サブブロックの配置を最適化してあっても、所定のグループのサブブロックをアクセスした後に、別のグループのサブブロックをアクセスするときには、余計な回転待ち時間が発生してしまうからである。
【００６０】
これを回避する方法としては、スケジューラ２がアクセス要求バッファ７より読み出した複数のアクセス要求の順番を並べ替えるときに、各グループ毎にＳＣＡＮアルゴリズムを実行するように並べ替える方法が考えられる。図８は、このようにして並べ替えられたアクセス要求に従って、データにアクセスするときのアクセスパターンを示している。まず、グループＡに属するサブブロックのアクセスをＳＣＡＮアルゴリズムを適用して行い、次に、グループＢに属するサブブロックのアクセスを同様にＳＣＡＮアルゴリズムを適用して行う。そして、これらのアクセス処理を交互に繰り返す。
【００６１】
これにより、ディスク記憶装置６のヘッドは、各グループのアクセス処理を実行しながら、外周から内周方向に移動し、それが終了した後、一旦次のグループの最も外周よりにあるサブブロックの位置まで戻る。これは、回転待ち時間を低減させるためのスキューは、外周から内周方向、あるいは内周から外周方向のいずれか１方向にしか設定することができないからである。
【００６２】
ヘッドが最外周のサブブロックの位置にまで戻るときには、ほとんどフルシークに近いオーバヘッドが生じるが、その代わりに、各サブブロックにアクセスする場合の回転待ち時間を抑えることができる。従って、ヘッドが最も外周よりのサブブロックの位置から最も内周よりのサブブロックの位置まで移動する１回のスキャンで処理することができるサブブロックへのアクセス数を多く取れる場合、各グループ毎にＳＣＡＮアルゴリズムを適用することは有効である。
【００６３】
以上のように、サブブロックが配置されていないギャップの部分に所定のデータを格納することにより、ディスク記憶装置６の未使用領域を減少させることができる。これにより、ディスクの使用効率を下げることなく、ランダムアクセス下におけるリアルタイム性を保証することができる。
【００６４】
なお、上記実施の形態においては、ディスク記憶装置６に対するデータの読み出しおよび書き込みの制御を専用のコントローラを用いて実現する場合について説明したが、それらのコントローラの制御ソフトウェアをホストコンピュータ等のＣＰＵ上で動作させることにより、ディスク記憶装置６に対するデータの読み出しおよび書き込みの制御を行うようにすることも可能である。
【００６５】
また、上記実施の形態においては、同一の系列のデータを２つの組に分けてディスク上に配置する場合について説明したが、任意の数の組に分けるようにすることも可能である。
【００６６】
また、上記実施の形態においては、データにアクセスする場合、外周から内周方向にスキャンするようにしたが、内周から外周方向にスキャンするようにすることも可能である。その場合、内周から外周にヘッドを移動させながら、データにアクセスするときに最適なスキューを設定するようにすることができる。
【００６７】
さらに、上記実施の形態においては、データを記録する媒体としてハードディスクを用いるようにしたが、光ディスク、光磁気ディスク等のその他の記録媒体を用いるようにすることも可能である。
【００６８】
【発明の効果】
請求項１に記載のディスク制御方法、および請求項６に記載のディスク制御装置によれば、第１のデータを分割した第２のデータを、ディスク上に第２のデータの先頭と末尾の角度差としてのギャップを設けて配置し、第２のデータが配置されないギャップの部分に、所定の付加情報を配置するようにした。そして、この付加情報は、付加情報が配置されたディスク上に既にギャップを設けて配置された第２のデータのバックアップデータ、または、付加情報が配置されたディスクとは異なる他のディスク上に既にギャップを設けて配置された第２のデータのバックアップデータであるようにしたので、スキューとギャップを用いて回転待ちを抑制するように第２のデータを配置した場合でも、ディスクの未使用領域を減らすことができ、ディスクの使用効率を下げることなく、ランダムアクセス下でのリアルタイム性を保証することが可能となる。
【図面の簡単な説明】
【図１】本発明のディスク制御装置を適用したマルチメディアサーバの一実施の形態の構成を示すブロック図である。
【図２】図１のブロックマップ３の例を示す図である。
【図３】図１のディスク記憶装置６の物理セクタを示す図である。
【図４】論理セクタアドレスと物理セクタアドレスの関係を示す図である。
【図５】所定のサブブロック群のギャップに別の系統のサブブロック群を記録する例を示す図である。
【図６】バックアップデータを所定のサブブロック群のギャップに記録する例を示す図である。
【図７】サブブロックを２組に分けた場合のディスク記憶装置６上のアロケーションの例を示す図である。
【図８】サブブロックを２組に分けた場合のアクセスパターンの例を示す図である。
【図９】ＳＣＡＮアルゴリズムを説明するための図である。
【図１０】スキューとギャップを一定にしたアロケーションの例を示す図である。
【図１１】スキューとギャップを一定にした場合のオーバヘッドタイムを表すグラフである。
【図１２】オーバヘッドタイムが最大となるＩ／Ｏ要求を示す図である。
【図１３】ギャップの値が１８０°の場合のアロケーションを示す図である。
【符号の説明】
１  配置部（配置手段、付加情報配置手段），２  スケジューラ（入れ替え手段），３  ブロックマップ，４  データバッファ，５  ＳＣＳＩドライバ，６  ディスク記憶装置，７  アクセス要求バッファ
【図１】
0003809674.tif 000002
【図２】
0003809674.tif 000003
【図３】
0003809674.tif 000004
【図４】
0003809674.tif 000005
【図５】
0003809674.tif 000006
【図６】
0003809674.tif 000007
【図７】
0003809674.tif 000008
【図８】
0003809674.tif 000009
【図９】
0003809674.tif 000010
【図１０】
0003809674.tif 000011
【図１１】
0003809674.tif 000012
【図１２】
0003809674.tif 000013
【図１３】
0003809674.tif 000014