(57)【特許請求の範囲】
【請求項１】
第１のデータが分割された第２のデータを複数の記憶装置に別々に記憶させ、
前記記憶装置に対して、各第２のデータの読み出し、または書き込みを行うとき、各第２のデータの読み出し時間、および書き込み時間がそれぞれほぼ同一となるように、各第２のデータの大きさと、各第２のデータが記憶される前記記憶装置と、各第２のデータが記憶される前記記憶装置上のアドレスとを決定するディスク制御方法において、
前記記憶装置は、ディスクにより構成され、前記ディスクの外周よりのトラックに含まれるセクタ数を、内周よりのトラックに含まれるセクタ数より多くし、
前記第２のデータを前記トラックに配置したとき、前記第２のデータの先頭と末尾の円周方向の角度差で表されるギャップに基づいて、各第２のデータの大きさ、各第２のデータが記憶される前記記憶装置、各第２のデータが記憶される前記記憶装置上のアドレスを決定する
ことを特徴とするディスク制御方法。
【請求項２】
前記第１のデータの大きさを一定とし、
前記第１のデータを分割して得られる前記第２のデータの数をｎ、前記記憶装置の数をｍとしたとき、ｎ≦ｍとし、
同一の第１のデータを分割して得られる各第２のデータを、異なる前記記憶装置上に配置し、
各第２のデータの前記ギャップの値を一定若しくはほぼ一定とする
ことを特徴とする請求項１に記載のディスク制御方法。
【請求項３】
前記第１のデータのサイズをＳ、前記第１のデータを分割して得られる各第２のデータのサイズをＳi（１≦ｉ≦ｎ）、各第２のデータが前記記憶装置上に配置されるトラックに含まれるセクタ数をＴi（１≦ｉ≦ｎ）と
すると、
Ｓ1＋Ｓ2＋，・・・，＋Ｓn＝Ｓ
Ｓ1／Ｔ1＝Ｓ2／Ｔ2＝，・・・，＝Ｓn／Ｔn
となるように、前記第１のデータが各第２のデータに分割される
ことを特徴とする請求項２に記載のディスク制御方法。
【請求項４】
同一の前記第１のデータを分割して得られる各第２のデータを、各記憶装置の外周よりのトラックに配置する組と、各記憶装置の内周よりのトラックに配置する組に分け、前記第２のデータが配置される前記トラックに対応するシリンダアドレス、および前記第２のデータの大きさを、各組毎にそれぞれ同一またはほぼ同一にする
ことを特徴とする請求項１に記載のディスク制御方法。
【請求項５】
同一の前記第１のデータから分割された各第２のデータの数をｎ、前記第２のデータのうち、前記記憶装置の外周よりのトラックに配置するものの数をｎｏ、内周よりのトラックに配置するものの数をｎｉとしたとき、ｎｏ＋ｎｉ＝ｎであり、
前記第２のデータを外周よりのトラックに配置する前記記憶装置を、全部でｍ個の記憶装置の中からｎｏ個、前記第２のデータを内周よりのトラックに配置する前記記憶装置を、残りの（ｍ−ｎｏ）個の前記記憶装置の中からｎｉ個だけ、所定の前記記憶装置の外周若しくは内周に前記第２のデータが集中して配置されないように選択する
ことを特徴とする請求項４に記載のディスク制御方法。
【請求項６】
各記憶装置のシリンダの総数をＬとし、前記シリンダに外周から内周へ順に１乃至Ｌのシリンダ番号をつけたとき、ｊ（１≦ｊ≦ｍ）番目の記憶装置上の第２のデータが記録されていない前記シリンダのうち、最も外周よりにあるシリンダをＭｏ（ｊ）、最も内周よりにあるシリンダをＭｉ（ｊ）とする（１≦Ｍｏ（ｊ）≦Ｍｉ（ｊ）≦Ｌ）と、前記第２のデータを外周よりのトラックに配置する記憶装置を選択するときは、全部でｍ個の記憶装置の中からＭｏ（ｊ）が小さいものを順番にｎｏ個だけ選択し、前記第２のデータを内周よりのトラックに配置する記憶装置を選択するときは、（ｍ−ｎｏ）個の前記記憶装置の中からＭｉ（ｊ）が大きいものを順番にｎｉ個だけ選択する
ことを特徴とする請求項５に記載のディスク制御方法。
【請求項７】
同一の前記第１のデータから分割された各第２のデータの数をｎ、前記第２のデータのうち、前記記憶装置の外周よりのトラックに配置するものの数をｎｏ、内周よりのトラックに配置するものの数をｎｉとしたとき、ｎｏ＋ｎｉ＝ｎであり、
前記第２のデータを内周よりのトラックに配置する前記記憶装置を、全部でｍ個の記憶装置の中からｎｉ個、前記第２のデータを外周よりのトラックに配置する前記記憶装置を、残りの（ｍ−ｎｉ）個の前記記憶装置の中からｎｏ個だけ、所定の前記記憶装置の外周若しくは内周に前記第２のデータが集中して配置されないように選択する
ことを特徴とする請求項４に記載のディスク制御方法。
【請求項８】
各記憶装置の前記第２のデータを記憶可能なシリンダの総数をＬとし、前記シリンダに外周から内周に順番に１乃至Ｌのシリンダ番号をつけたとき、ｊ（１≦ｊ≦ｍ）番目の記憶装置上の前記第２のデータが記録されていない前記シリンダのうち、最も外周よりにあるシリンダをＭｏ（ｊ）、最も内周よりにあるシリンダをＭｉ（ｊ）とする（１≦Ｍｏ（ｊ）≦Ｍｉ（ｊ）≦Ｌ）と、内周よりの前記第２のデータを配置する前記記憶装置を選択するとき、全部でｍ個の記憶装置の中からＭｉ（ｊ）が大きいものを順番にｎｉ個だけ選択し、外周よりの前記第２のデータを配置する前記記憶装置を選択するとき、（ｍ−ｎｉ）個の前記記憶装置の中からＭｏ（ｊ）が小さいものを順番にｎｏ個だけ選択する
ことを特徴とする請求項７に記載のディスク制御方法。
【請求項９】
前記第１のデータの任意のものが分割された各第２のデータをＳＢi（ｉは１≦ｉ≦ｎの整数）とすると、ＳＢiはｉの値に基づいて、前記トラックの外周よりに配置されるか内周よりに配置されるかが決定され、
ｊ＝ＭＯＤ（ｋ＋ｉ−２，ｍ）＋１としたとき、
ＳＢiは、ｊ（１≦ｊ≦ｍ）番目の記憶装置に記憶される
ことを特徴とする請求項４に記載のディスク制御方法。
【請求項１０】
前記第２のデータＳＢiは、ｉの値に基づいて、外周よりに配置されるものと内周よりに配置されるものが交互に得られる
ことを特徴とする請求項９に記載のディスク制御方法。
【請求項１１】
前記記憶装置の外周よりのトラックに配置する前記第２のデータのアドレスを、各記憶装置上の前記第２のデータが記録されていない前記トラックのうち、最も外周よりのものに対応するアドレスとし、前記記憶装置の内周よりのトラックに配置する前記第２のデータのアドレスを、各記憶装置上の前記第２のデータが記録されていない前記トラックのうち、最も内周よりのものに対応するアドレスとする
ことを特徴とする請求項５に記載のディスク制御方法。
【請求項１２】
１つの前記第１のデータが分割された前記第２のデータの数ｎを偶数とし、前記記憶装置の外周よりのトラックに配置する前記第２のデータの数をｎ／２、前記記憶装置の内周よりのトラックに配置する前記第２のデータの数をｎ／２とし、前記記憶装置上で前記第２のデータを記憶することができるシリンダの総数をＬとし、各シリンダに外周から内周へ順番に１乃至Ｌのシリンダ番号を付けたとき、
前記第２のデータが配置される前記記憶装置の外周よりのシリンダ番号をＬｏ、前記第２のデータが配置される前記記憶装置の内周よりのシリンダ番号をＬｉとすると、各第２のデータは、ＬｏおよびＬｉが、
Ｌｏ＋Ｌｉ＝Ｌ＋１
を満たす値または前記値に近い値となるように配置される
ことを特徴とする請求項５に記載のディスク制御方法。
【請求項１３】
同一の前記記憶装置上の隣接するトラックに配置された前記第２のデータの先頭同士の円周方向の角度差として表されるスキューの値は、一定若しくはほぼ一定である
ことを特徴とする請求項２に記載のディスク制御方法。
【請求項１４】
前記記憶装置に対して、複数の前記第２のデータの読み出しまたは書き込みを行うとき、前記記憶装置の前記第２のデータに対応するトラックに対して、前記第２のデータの読み出しまたは書き込みを行うヘッドの移動量が少なくなるように、前記記憶装置に対して読み出しまたは書き込みを行う前記第２のデータの順番を入れ替える
ことを特徴とする請求項１に記載のディスク制御方法。
【請求項１５】
前記第２のデータが１つの前記トラック内に納まらないとき、前記第２のデータは連続する複数のトラックに配置される
ことを特徴とする請求項１に記載のディスク制御方法。
【請求項１６】
第１のデータが分割された第２のデータを別々に記憶する複数の記憶手段と、
前記第２のデータを各記憶手段に割り当てる割り当て手段と、
前記記憶手段に対して、各第２のデータの読み出しまたは書き込みを行う読み書き手段と、
前記読み書き手段による各第２のデータの読み出し時間、および書き込み時間がそれぞれほぼ同一となるように、各第２のデータの大きさと、各第２のデータが記憶される前記記憶手段と、各第２のデータが記憶される前記記憶手段上のアドレスとを決定する決定手段とを有するディスク制御装置において、
前記記憶手段は、ディスクにより構成され、前記ディスクの外周よりのトラックに含まれるセクタ数を、内周よりのトラックに含まれるセクタ数より多くし、
前記決定手段は、前記第２のデータを前記トラックに配置したとき、前記第２のデータの先頭と末尾の円周方向の角度差で表されるギャップに基づいて、各第２のデータの大きさ、各第２のデータが記憶される前記記憶手段、各第２のデータが記憶される前記記憶手段上のアドレスを決定する
ことを特徴とするディスク制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディスク制御方法および装置に関し、例えば、大容量かつ高転送レートが要求され、ランダムアクセス下でもリアルタイム性を保証しなければならない、いわゆるマルチメディアサーバに用いて好適なディスク制御方法および装置に関する。
【０００２】
【従来の技術】
画像や音声などのマルチメディア・データ用のストレージはマルチメディアサーバと呼ばれる。マルチメディアサーバには、一般に次のような点が要求される。
１．大容量かつ高い転送レート
２．ランダムアクセス
３．リアルタイム性
【０００３】
以下では、これらの要求が発生する背景と、これらの要求を満たすために考えられた従来の技術について説明する。
【０００４】
まず第１に、マルチメディアサーバに対して、大容量かつ高い転送レートが要求される理由は、言うまでもなく、マルチメディアサーバが取り扱う画像や音声などのデータがデータ量が多くて高い転送レートを要求するものだからである。この要求に対しては、マルチメディアサーバを複数のディスク記憶装置からなるディスクアレイシステムとすることで、対処することができる。即ち、ディスク記憶装置を並列に運転させることにより、データ読み出し時、および書き込み時の転送レートを上げることも可能である。また、マルチメディアサーバをＲＡＩＤ（Redundant Arrays of Inexpensive Disks）構成のディスクアレイシステムにすれば、システムの信頼性を上げることもできる。
【０００５】
第２に、ランダムアクセスとは、物理的に離れた場所のデータを次々にアクセスすることである。これに対して、物理的に連続な場所のデータを順にアクセスすることをシーケンシャルアクセスという。マルチメディアデータは連続していることに意味があるデータの集まりであるから、サーバにおいてもシーケンシャルアクセスが主体になると想像しがちである。しかし、実際のアプリケーションを考えると意外とそうではないことがわかる。
【０００６】
例えば、マルチメディアサーバとして代表的なものに、ノンリニア編集機やＶＯＤ（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のときのオーバヘッドタイムから計算することができる。
【００１９】
その値は、単にＳＣＡＮアルゴリズムを適用しただけのときのそれより小さいだけでなく、実際に観測される最大値にも極めて近い。このことから、以上のようにして見積もった最大値をかなり信用できる指標として、マルチメディアサーバの設計に役立てることができる。
【００２０】
【発明が解決しようとする課題】
ところで、ハードディスクなどのディスク記憶装置には、ゾーン・ビット・レコーディング（ＺＢＲ）と呼ばれるフォーマット方法がある。記録密度一定かつディスクの回転速度一定という条件下では、図２０に示すように、内周より外周の方でトラックあたりのセクタ数を多く取ることができる。ＺＢＲとは、記録面をディスク中心からの距離で複数のゾーンに分け、外側のゾーンでは内側のゾーンよりトラックあたりのセクタ数を多くするようにしてディスクの記録容量を増やすようにしたフォーマット方法である。
【００２１】
図２１は、ＺＢＲ方式を用いてフォーマットされたディスク記憶装置におけるシリンダアドレスと１トラックあたりのセクタ数の関係を示している。横軸は、シリンダアドレスを表しており、縦軸は、１トラックあたりのセクタ数を表している。このように、内周にあるトラックの方が、外周にあるトラックより、セクタ数が少なくなっている。
【００２２】
一方、マルチメディアサーバが取り扱う画像や音声などのデータは、元々は固定長のデータであることが多い。従って、そのような固定長のデータをｍ個のディスク記憶装置からなるマルチメディアサーバに格納する場合、まず、データをｎ（ｎ≦ｍ）個の同一のサイズのサブブロックに等分し、ｍ個あるディスク記憶装置から適当にｎ台を選択し、各サブブロックをいま選択したｎ台のディスク記憶装置の外周若しくは内周から順に埋めるようにして書き込む方法が考えられる。
【００２３】
図２２は、ディスク記憶装置の台数ｍを６とし、データを等分してできたサブブロックの数ｎを４とし、各ディスク記憶装置の外周から順にサブブロックを書き込んでいった場合の例を表している。
【００２４】
しかしながら、このとき、ＺＢＲフォーマットされたディスク記憶装置が使用されていたとすると、１つのディスク記憶装置上におけるサブブロックの配置は、図２３（Ａ）に示すように、配置場所によってギャップの値が一定とはならない。図２３（Ａ）においては便宜上スキューの値を全て０にしてあるが、スキューの値が０以外であっても、ギャップの値が一定にならないという事実は変わらない。
【００２５】
図２３（Ｂ）は、ディスク上において、外周から内周に向かうときの各サブブロックのギャップの大きさの推移を示したグラフである。横軸はトラックの位置を表し、縦軸はギャップの大きさを表している。外周から内周に向かうにつれて、１トラックあたりのセクタ数は少なくなる。従って、ギャップの値もそれに伴って徐々に小さくなる。そのため、場合によってはサブブロックが１トラックに納まり切れなくなり、２つのトラックの跨ってしまい、ギャップの値が約０度から約３６０度に急激にジャンプしてしまうこともあり得る。
【００２６】
ギャップが一定の場合、スキューも適当な一定値に設定することにより、回転待ちを抑制することができるサブブロックの配置方法を簡単に求めることができたが、ギャップが一定ではない場合、最適なスキューを求める方法は非常に困難である。
【００２７】
また、ディスクのヘッドがサブブロックの上を通過しながら、実際に読み出しあるいは書き込みをする時間Ｔr/wは、図２３（ｃ）に示すように、外周よりに配置されたサブブロックの場合は小さいが、内周よりに配置されたサブブロックの場合は大きくなる。図２３（ｃ）において、横軸はトラックの位置を表しており、縦軸は各サブブロックに対して読み出しあるいは書き込みをするのに要する時間を表している。
【００２８】
図１８を参照して上述したように、１回のスキャンにかかる時間の最大値の見積もりは、時間Ｔr/wがサブブロックの配置場所に拘らず一定であるという条件があったので、時間Ｔr/wの分を差し引いたオーバヘッドタイムの見積もりのみで比較することが可能であった。しかし、時間Ｔr/wがサブブロックの配置場所により変化するとなると、オーバヘッドタイムのみの見積もりに、不規則なＴr/wの要素を加えなければならない。それは、１回のスキャンにかかる時間の最大値の見積もりを複雑にし、ひいてはマルチメディアサーバの設計を困難にする。
【００２９】
本発明はこのような状況に鑑みてなされたものであり、１トラックあたりのセクタ数が、内周より外周の方で多いディスク記憶装置が複数あり、それらに対して固定長データを配置する場合であっても、データのギャップおよびスキューの値をそれぞれ一定にすることができるようにするものである。
【００３０】
【課題を解決するための手段】
請求項１に記載のディスク制御方法は、第１のデータが分割された第２のデータを複数の記憶装置に別々に記憶させ、記憶装置に対して、各第２のデータの読み出し、または書き込みを行うとき、各第２のデータの読み出し時間、および書き込み時間がそれぞれほぼ同一となるように、各第２のデータの大きさと、各第２のデータが記憶される記憶装置と、各第２のデータが記憶される記憶装置上のアドレスとを決定するディスク制御方法において、記憶装置は、ディスクにより構成され、ディスクの外周よりのトラックに含まれるセクタ数を、内周よりのトラックに含まれるセクタ数より多くし、第２のデータを前記トラックに配置したとき、第２のデータの先頭と末尾の円周方向の角度差で表されるギャップに基づいて、各第２のデータの大きさ、各第２のデータが記憶される前記記憶装置、各第２のデータが記憶される記憶装置上のアドレスを決定することを特徴とする。
【００３１】
請求項１６に記載のディスク制御装置は、第１のデータが分割された第２のデータを別々に記憶する複数の記憶手段と、第２のデータを各記憶手段に割り当てる割り当て手段と、記憶手段に対して、各第２のデータの読み出しまたは書き込みを行う読み書き手段と、読み書き手段による各第２のデータの読み出し時間、および書き込み時間がそれぞれほぼ同一となるように、各第２のデータの大きさと、各第２のデータが記憶される記憶手段と、各第２のデータが記憶される記憶手段上のアドレスとを決定する決定手段とを有するディスク制御装置において、記憶手段は、ディスクにより構成され、ディスクの外周よりのトラックに含まれるセクタ数を、内周よりのトラックに含まれるセクタ数より多くし、決定手段は、第２のデータをトラックに配置したとき、第２のデータの先頭と末尾の円周方向の角度差で表されるギャップに基づいて、各第２のデータの大きさ、各第２のデータが記憶される記憶手段、各第２のデータが記憶される記憶手段上のアドレスを決定することを特徴とする。
【００３２】
請求項１に記載のディスク制御方法においては、記憶装置は、ディスクにより構成され、ディスクの外周よりのトラックに含まれるセクタ数を、内周よりのトラックに含まれるセクタ数より多くし、第２のデータを前記トラックに配置したとき、第２のデータの先頭と末尾の円周方向の角度差で表されるギャップに基づいて、各第２のデータの大きさ、各第２のデータが記憶される記憶装置、各第２のデータが記憶される記憶装置上のアドレスを決定する。
【００３３】
請求項１６に記載のディスク制御装置においては、複数の記憶手段は、ディスクにより構成され、ディスクの外周よりのトラックに含まれるセクタ数を、内周よりのトラックに含まれるセクタ数より多くし、決定手段は、第２のデータをトラックに配置したとき、第２のデータの先頭と末尾の円周方向の角度差で表されるギャップに基づいて、各第２のデータの大きさ、各第２のデータが記憶される記憶手段、各第２のデータが記憶される記憶手段上のアドレスを決定する。
【００３４】
【発明の実施の形態】
図１は、本発明のディスク制御装置を応用したマルチメディアサーバの構成例を示すブロック図である。
【００３５】
配置部（Ｂｌｏｃｋ  Ａｌｌｏｃａｔｏｒ）１は、入力されたフォーマットパラメータと、ＺＢＲ（ゾーンビットレコーディング）テーブル（ＺＢＲ  Ｔａｂｌｅ）８からのデータに基づいて、後述するブロックマップ（Ｂｌｏｃｋ  Ｍａｐ）３を作成するようになされている。フォーマットパラメータは、データの１ブロックの大きさＳ、データを分割する数ｎ、および最適なスキュー値（θskew）などから構成されている。
【００３６】
一方、ＺＢＲテーブル８は、データの配置場所と、その場所での１トラック（Ｔｒａｃｋ）あたりのセクタ（Ｓｅｃｔｏｒ）数を対応づけた表であり、グラフにすると図２１に示したようになる。従って、データの配置場所から、１トラックのセクタ数を調べることができる。その他に、ディスク記憶装置（Ｄｉｓｋ）６−１乃至６−ｍ（記憶手段）の物理セクタアドレスから論理セクタアドレスに変換する処理が必要となるが、この実施の形態では、後述するＳＣＳＩ（ANSI Small Computer System Interface）ドライバ５−１乃至５−ｍ（読み書き手段）を介して、ディスク記憶装置６−１乃至６−ｍに直接問い合わせることにより、その変換を行うようになされている。なお、以下では、特に区別する必要がない場合、ＳＣＳＩドライバ５−１乃至５−ｍを単にＳＣＳＩドライバ５と、また、ディスク記憶装置６−１乃至６−ｍを単にディスク記憶装置６と記載することにする。
【００３７】
ディスク記憶装置６の論理セクタアドレスと物理セクタアドレスの関係については、図７を参照して後述する。
【００３８】
配置部１（割り当て手段）は、データの配置を決定した後、ブロックマップ３を作成していく。ブロックマップ３は、図２に示したように、ｋ番目のデータを分割して得られたｎ個のサブブロックをディスク上のどこに格納するかを示すものである。サブブロックの配置場所は、ディスク記憶装置番号Ｄki、ディスク記憶装置上の開始論理セクタアドレスＬki、サブブロックを構成するセクタの数Ｓkiより決定することができる。
【００３９】
データを連続的に読み出す、あるいは書き込むときは、まず、複数のデータのアクセス要求が発生し、それらの要求を識別する情報としてのデータの番号、データが置かれるデータバッファ（Ｄａｔａ  Ｂｕｆｆｅｒ）４上でのアドレス、および読み出しか書き込みかを示すフラグがアクセス要求バッファ（Ａｃｃｅｓｓ  Ｒｅｑｕｅｓｔ  Ｂｕｆｆｅｒ）７に蓄えられる。
【００４０】
スケジューラ（Ｓｃｈｅｄｕｌｅｒ）２（決定手段）は、所定の時間にそれらの複数の情報をアクセス要求バッファ７より読み出し、ブロックマップ３を参照して、要求されているデータを構成するサブブロックの配置場所を調べるようになされている。配置場所は、ディスク記憶装置６、ディスク記憶装置６上での開始論理セクタアドレス、セクタ数からなり、スケジューラ２は、該当するディスク記憶装置６をドライブするＳＣＳＩドライバ５にアクセス要求を行うようになされている。このとき、１つのディスク記憶装置６に対するアクセス要求は、ＳＣＡＮアルゴリズムによって順序が入れ替えられて発行される。
【００４１】
データバッファ４は、入力されたマルチメディアデータ等を一時的に記憶したり、ディスク記憶装置６より読み出されたマルチメディアデータ等を一時的に記憶するようになされている。
【００４２】
次に、データをディスク記憶装置６に書き込む場合の各部の動作について説明する。最初に、ディスク記憶装置６に書き込むべきマルチメディアデータのディスク記憶装置６への書き込みを指示するアクセス要求がアクセス要求バッファ７に供給される。スケジューラ２は、アクセス要求バッファ７よりアクセス要求を読み出し、アクセス要求に含まれるデータバッファ４上のアドレスと、ブロックマップ３より読み出したサブブロックのセクタ数から、ディスク記憶装置６に書き込むべきマルチメディアデータをデータバッファ４から読み出すときのデータバッファ４上でのアドレスを計算によって求め、このアドレスを書き込む命令とともに、ＳＣＳＩドライバ５に供給する。つまり、マルチメディアデータがどのように複数の異なるサイズのサブブロックに分割されるかが決定される。
【００４３】
図３は、ｋ番目のマルチメディアデータを異なるサイズのサブブロックに分割した例を示している。すなわち、サイズがＳのマルチメディアデータを、サイズがＳk1のサブブロック＃１、サイズがＳk2のサブロック＃２、サイズがＳk3のサブブロック＃３、およびサイズがＳk4のサブブロック＃４に分割する。
【００４４】
ここで、サブブロックの分割について、さらに詳細に説明する。例えば、サイズＳのマルチメディアデータを１フレームのデータとすると、１フレームのデータを、サイズがそれぞれＳk1，Ｓk2，Ｓk3およびＳk4の４つのサブブロック＃１，＃２，＃３および＃４に分割する。図４に示すように、１フレームのデータがＭ×Ｎ画素で構成されている場合、１フレームを所定の画素数（Ｌ画素）からなるパケットに分割する。そして、図４に示すように、分割された各パケットを順に４つのサブブロックに割り当てる。例えば、パケットＡ０をサブブロック＃１に、パケットＢ０をサブブロック＃２に、パケットＣ０をサブブロック＃３に、パケットＤ０をサブブロック＃４に割り当て、さらに、パケットＡ１をサブブロック＃１に、パケットＢ１をサブブロック＃２に、パケットＣ１をサブブロック＃３に、パケットＤ１をサブブロック＃４に割り当てる。このように、各パケットを順に各サブブロックに割り当てることにより、図５に示すような、サブブロック＃１、サブブロック＃２、サブブロック＃３およびサブブロック＃４に分割されることになる。
【００４５】
ＳＣＳＩドライバ５は、スケジューラ２より供給されたアドレスに基づいて、マルチメディアデータをデータバッファ４から読み出し、マルチメディアデータを分割することにより得られた各サブブロックを所定のディスク記憶装置６のディスク上に書き込む。そのような動作により、一連の書き込み動作が終了する。
【００４６】
次に、データを読み出す場合における各部の動作について説明する。まず、アクセス要求バッファ７にアクセス要求が格納される。スケジューラ２は、アクセス要求バッファ７からアクセス要求を読み出し、それを該当するＳＣＳＩドライバ５に供給する。ＳＣＳＩドライバ５は、スケジューラ２より供給されたアクセス要求に基づいて、該当するディスク記憶装置６からアクセス要求によって指定されたサブブロックを読み出す。
【００４７】
ディスク記憶装置６より読み出したサブブロックを記憶させるデータバッファ４上のアドレスは、アクセス要求バッファ７より得られたアドレスとブロックマップ３より得られたサブブロックのセクタ数に基づいて、スケジューラ２により演算によって求められる。このアドレスは、読み出し命令とともに該当するＳＣＳＩドライバ５に供給される。従って、ＳＣＳＩドライバ５は、ディスク記憶装置６より読み出したサブブロックを、データバッファ４のスケジューラ２によって演算されたアドレスに供給し、記憶させる。これにより、ＳＣＡＮアルゴリズムにより順序を入れ替えて読み出されたサブブロックが、データバッファ４上に元の順番で配置されることになる。
【００４８】
アクセス要求によって要求されたデータは、データバッファ６に置かれたサブブロックを集めて完成することができ、要求された順番通りにデータバッファ６より取り出され、所望のマルチメディアデータが順次出力される。
【００４９】
ここで、ディスク記憶装置６の論理セクタアドレスと、物理セクタアドレスの関係について説明する。図６に示すように、ディスク記憶装置６は、通常、セクタ（Ｓｅｃｔｏｒ）と呼ばれる領域毎にアクセスすることができるようになされている。セクタは通常５１２バイト乃至４キロバイト程度の大きさで、これを円周上に並べたドーナツ型の領域をトラック（Ｔｒａｃｋ）、さらに複数枚だけ重ねた記録メディア（Ｍｅｄｉａ）の中心から同一の距離にあるトラックを集めた円筒状の領域をシリンダ（Ｃｙｌｉｎｄｅｒ）と呼ぶ。このように、シリンダ番号、メディア番号、およびセクタ番号からなるアドレスが物理セクタアドレスである。
【００５０】
一方、近年、最も普及しているＳＣＳＩ仕様のドライブでは、ドライブ内の全てのセクタに通し番号を与え、これを用いてデータをアクセスするようになっている。この通し番号が論理セクタアドレスである。
【００５１】
配置部１は、ＳＣＳＩドライバ５を介してディスク記憶装置６に直接問い合わせることにより、物理セクタアドレスと論理セクタアドレスとの間の変換を実現している。勿論、別の方法を用いて、図７に示すような物理セクタアドレスと論理セクタアドレスとの対応表を用意し、それを用いて物理セクタアドレスと論理セクタアドレスとの間の変換を行うようにしてもよい。図７（Ａ）に示したように、論理セクタアドレス（Ｌｏｇｉｃａｌ  Ｓｅｃｔｏｒ）Ｌkiは、シリンダ番号（Ｃｙｌｉｎｄｅｒ）ＣＹＬki、メディア番号（Ｍｅｄｉａ）ＭＥＤki、およびセクタ番号（Ｓｅｃｔｏｒ）ＳＥＣkiより構成される物理セクタアドレスに対応づけられている。図７（Ｂ）はその具体例を示している。従って、この対応表により、論理セクタアドレスを物理セクタアドレスに、あるいは、物理セクタアドレスを論理セクタアドレスに変換することができる。
【００５２】
次に、図８乃至図１３のフローチャートを参照して、図１の配置部１が、ｋ番目のデータをディスク記憶装置６の所定のものに配置する場合の処理手順について説明する。
【００５３】
最初、ステップＳ１において、全部でｍ個あるディスク記憶装置６から、データを格納するｎ個のディスク記憶装置６を選択する。この例では、データを分割して、ｎ個のサブブロックとし、それらのサブブロックを外周よりに配置する組と内周よりに配置する組とに分けている。各サブブロックに１乃至ｎの番号を付けたとき、奇数番目のサブブロックは外周よりに、偶数番目のサブブロックは内周よりに配置する。さらに、少数のディスク記憶装置６に集中してサブブロックが配置されないように、データによって配置するディスク記憶装置６をずらして選択するようにする。
【００５４】
図９は、この処理の詳細を示すフローチャートである。即ち、ステップＳ１１において、外周よりに配置するディスク記憶装置６−ｉ（ｉ＝１，３，５，・・・）として、次式（１）で表されるｊ番目のディスク記憶装置６−ｉを選択する。
【００５５】
ｊ＝ＭＯＤ（ｋ＋ｉ−２，ｍ）＋１  ・・・（式１）
【００５６】
ここで、ＭＯＤは、ｋ＋ｉ−２をｍ（ディスク記憶装置の総数）で割った余りを演算する演算子である。
【００５７】
次に、ステップＳ１２に進み、内周よりに配置するディスク記憶装置６−ｉ（ｉ＝２，４，６，・・・）として、次式（２）で表されるｊ番目のディスク記憶装置６−ｉを選択する。
【００５８】
ｊ＝ＭＯＤ（ｋ＋ｉ−２，ｍ）＋１  ・・・（式２）
【００５９】
ここで、ＭＯＤは、ｋ＋ｉ−２をｍで割った余りを演算する演算子である。
【００６０】
図９に示したフローチャートでは、外周よりに配置するサブブロックと内周よりに配置するサブブロックを交互に決めていったが、バランスが取れていれば、交互でなくとも構わない。即ち、外周よりのディスク記憶装置６を全て選択してから、内周よりのディスク記憶装置６を選択するようにしてもよい。
【００６１】
また、サブブロックが少数のディスク記憶装置６に集中しないのであれば、上記式（１）、式（２）で表されるｊ番目のディスク記憶装置６を選択しなくとも構わない。例えば、外周よりにサブブロックを配置するディスク記憶装置に関しては、外周をあまり使用していないディスク記憶装置６から、また、内周よりにサブブロックを配置するディスク記憶装置に関しては、内周をあまり使用していないディスク記憶装置６から選択する方法も有効である。
【００６２】
以上のようにして、ディスク記憶装置６を決定するとリターンし、次に、図８のステップＳ２に進む。
【００６３】
ステップＳ２においては、選択された各ディスク記憶装置６上において、サブブロックを配置する開始論理セクタを決定する。
【００６４】
図１０は、この開始論理セクタを決定する処理手順を示すフローチャートである。まず、ステップＳ２１において、外周よりに配置する全てのディスク記憶装置６に関して、それぞれの開始論理セクタアドレスＬki（ｉ＝１，３，５，・・・）を求める。
【００６５】
図１１は、図１０のステップＳ２１における処理の詳細を示すフローチャートである。最初、ステップＳ３１において、サブブロックを配置するトラックとして、サブブロックが配置されていない未配置領域の中の最外周トラックを選択する。これにより、物理セクタアドレスのシリンダ番号（ＣＹＬki）、メディア番号（ＭＥＤki）が決まり、ＺＢＲテーブル８を参照して、この配置場所における１トラックあたりのセクタ数（Ｔki）が分かる。
【００６６】
次に、ステップＳ３２において、シリンダ番号（ＣＹＬki）と最適なスキュー（θskew）の値から、次式（３）によって、ステップＳ３１で選択されたトラックの先頭と、最外周トラックの先頭との間のなす角度θkiが求められる。
【００６７】
θki＝θskew×ＣＹＬki  ・・・（式３）
ただし、θki＞３６０のとき、θki＜３６０となるまで、θki＝θki−３６０を繰り返す。
【００６８】
次に、ステップＳ３３に進み、式（３）において求めた角度θkiと、トラックあたりのセクタ数（Ｔki）より、次式（４）によって、セクタ番号（ＳＥＣki）が求められる。
【００６９】
ＳＥＣki＝Ｔki×θki／３６０  ・・・（式４）
【００７０】
次に、ステップＳ３４において、ステップＳ３１乃至Ｓ３３において求めた物理セクタアドレス（ＣＹＬki、ＭＥＤki、ＳＥＣki）から論理セクタアドレス（Ｌki）を決定し、リターンする。
【００７１】
次に、ステップＳ２２に進み、内周よりに配置する全てのディスク記憶装置に関して、それぞれの開始論理セクタアドレスＬki（ｉ＝２，４，６，・・・）を求める。
【００７２】
図１２は、図１０のステップＳ２２における処理の詳細を示すフローチャートである。最初、ステップＳ４１において、サブブロックを配置するトラックとして、未配置領域の中から最内周トラックを選択する。これにより、物理セクタアドレスのシリンダ番号（ＣＹＬki）、メディア番号（ＭＥＤki）が決まり、ＺＢＲテーブル８を参照して、この配置場所における１トラックあたりのセクタ数（Ｔki）が分かる。
【００７３】
次に、ステップＳ４２において、ステップＳ４１で選択されたトラックの先頭と、最外周トラックの先頭との間のなす角度θkiを求め、ステップＳ４３においてセクタ番号（ＳＥＣki）を求める。そして、ステップＳ４４において、求めた物理セクタアドレス（ＣＹＬki、ＭＥＤki、ＳＥＣki）から論理セクタアドレス（Ｌki）を決定し、リターンする。上述したステップＳ４２乃至Ｓ４４における処理は、図１１のステップＳ３２乃至Ｓ３４における処理と同様であるので、ここではその詳細な説明は省略する。
【００７４】
図１０乃至図１２に示した処理例においては、サブブロックを外周よりのトラックに配置する場合、サブブロックを配置するトラックを未配置領域の中の最外周トラックから選択し、サブブロックを内周よりのトラックに配置する場合、サブブロックを配置するトラックを未配置領域の中の最内周トラックから選択するものとしたが、必ずしも最外周トラックや最内周トラックを選択する必要はない。例えば、ＺＢＲ方式のフォーマットでは、同一のゾーンであれば、トラックあたりのセクタ数も同一であり、各サブブロックのサイズおよびギャップの値は変わらないからである。
【００７５】
以上のようにして、開始論理セクタアドレスが求められると、次に、図８のステップＳ３に進み、各サブブロックのサイズが決定される。サブブロックのサイズを決定する場合の処理手順については、図１３のフローチャートを参照して後述する。
【００７６】
次に、各サブブロックのサイズ（セクタ数）はどうあるべきかを考えてみる。まず、各サブブロックのサイズの和は、元のデータのサイズに等しい。即ち、各サブブロックのサイズ（セクタ数）をＳki（ｉ＝１，２，３，・・・，ｎ）とし、元のデータのサイズ（セクタ数）をＳとすると、次式（５）で表される。
【００７７】
Ｓk1＋Ｓk2＋，・・・，＋Ｓkn＝Ｓ  ・・・（式５）
【００７８】
一方、各サブブロックのギャップの値が等しくなるためには、次の式（６）が成り立っていなければならない。
【００７９】
Ｓk1／Ｔk1＝Ｓk2／Ｔk2＝，・・・，＝Ｓkn／Ｔkn  ・・・（式６）
【００８０】
上記式（６）において、Ｔki（ｉ＝１，２，３，・・・，ｎ）は、ｉ番目のサブブロックが配置されるトラックのセクタ数である。
【００８１】
式（５）および式（６）より、各サブブロックのセクタ数Ｓkiは次式（７）で与えられる。
【００８２】
Ｓki＝Ｓ×Ｔki／Ｔ  ・・・（式７）
ただし、Ｔ＝Ｔk1＋Ｔk2＋，・・・，＋Ｔknとする。
【００８３】
実際には、セクタ数Ｓkiは整数で与えられるので、各サイズは若干の微調整が必要である。
【００８４】
以上の手順を実現するフローチャートが図１３に示したものである。最初に、ステップＳ５１において、サブブロックが配置される配置場所に対応するトラックの１トラックあたりのセクタ数Ｔkiの和Ｔを求める。次に、上記式（７）で表される演算を、変数ｉが１からｎまでについて行い、各サブブロックのサイズＳki（ｉ＝１，２，・・・，ｎ）を求める。
【００８５】
次に、ステップＳ５２に進み、上記式（５）で表される演算を行い、ステップＳ５１で求めた各サブブロックのサイズＳkiの和が、元のデータのサイズＳと等しいか否かが判定される。各サブブロックのサイズＳkiの和が、元のデータのサイズＳと等しくないと判定された場合、ステップＳ５３に進み、各サブブロックのサイズＳkiの和が、元のデータのサイズＳと等しくなるように、各サブブロックのサイズＳkiを微増減させる。その後、ステップＳ５２に戻り、各サブブロックのサイズＳkiの和が、元のデータのサイズＳと等しいと判定されるまで、ステップＳ５２およびＳ５３の処理が繰り返される。
【００８６】
一方、ステップＳ５２において、各サブブロックのサイズＳkiの和が、元のデータのサイズＳと等しいと判定された場合、処理を終了し、リターンする。これにより、図８に示したフローチャートのステップＳ３の処理が終了し、全ての処理を終了する。
【００８７】
図１４は、以上のようにしてディスク記憶装置６に分配されたサブブロックの例を表している。ここでは、ディスク記憶装置６の数を６とし、サブブロックの数を４としている。１番目のデータは、ディスク記憶装置６−１乃至６−４に分配して配置される。ディスク記憶装置６−１，６−３に配置されるサブブロックは、最外周トラックに入れられ、ディスク記憶装置６−２，６−４に配置されるサブブロックは、最内周トラックに入れられる。また、２番目のデータは、ディスク記憶装置６−２乃至６−５に、外、内、外、内の順番で入れられ、３番目のデータは、ディスク記憶装置６−３乃至６−６に同様にして、外、内、外、内の順番で入れられる。以下同様にして、データが配置され、最後のデータは、例えば、ディスク記憶装置６−３乃至６−６のシリンダのほぼ中間あたりに配置される。
【００８８】
このように配置されたサブブロックを、１つのディスク記憶装置６に注目して観察してみると、図１５（Ａ）、図１５（Ｂ）に示すように、各サブブロックのギャップの値がほとんど同一であり、図１５（ｃ）に示すように、各サブブロックを読み出すのに要する時間Ｔreadもほぼ一定となる。従って、サブブロックを配置するときに、最適なスキュー（θskew）の値が与えられたとすると、回転待ち時間が抑制され、ひいてはオーバヘッドタイムの最大値を小さくすることができる。
【００８９】
ＺＢＲフォーマットされたディスク記憶装置を使用した場合のＶＯＤ（Video  on Demand）サーバの構築方法については、特開平７−１６８６７２において開示されている。この出願は、映像データストリームを分割して得られた同一の大きさのデータを、さらに２対のトラックに分けて配置するようにし、それぞれのトラックにおけるサイズがトラックあたりのセクタ数に比例するように分けることにより、再生時のデータ転送速度がほぼ一定となるようにしている。
【００９０】
しかしながら、上記実施の形態においては、解決しようとしている課題が、ＺＢＲフォーマットされたディスク記憶装置上でも回転待ち時間を短くするデータの配置方法を実現することにあり、特開平７−１６８６７２の解決しようとしている課題とは異なっている。さらに、特開平７−１６８６７２においては、データが配置されるトラックが２対に限定されているのに対して、上記実施の形態においては、必要であれば２対を越えるトラックにデータを配置することも可能であり、柔軟なディスクシステムの構築方法を提供できるという点でも異なっている。
【００９１】
以上のように、上記実施の形態においては、同一のディスク記憶装置６上でのサブブロックのスキューおよびギャップをそれぞれ一定値にすることができるので、ＳＣＡＮアルゴリズムと組み合わせることにより、ディスク記憶装置のオーバヘッドタイム、即ち、シーク時間と回転待ち時間の和を低減することができる。
【００９２】
また、ディスク記憶装置６のヘッドがサブブロックが記憶されたトラックの上を通過しながら、実際に、サブブロックの読み出しまたは書き込みを行う時間も各サブブロックにおいて均一となるので、全体としてのＩ／Ｏ時間の最大値を容易に見積もることができる。さらに、その最大値の見積もりは、従来の方法に比べて小さく、信頼性のあるものである。
【００９３】
なお、上記実施の形態においては、ディスク記憶装置６に対するデータの読み出しおよび書き込みの制御を専用のコントローラを用いて実現する場合について説明したが、それらのコントローラの制御ソフトウェアをホストコンピュータ等のＣＰＵ上で動作させることにより、ディスク記憶装置６に対するデータの読み出しおよび書き込みの制御を行うようにすることも可能である。
【００９４】
また、上記実施の形態においては、データにアクセスする場合、外周から内周方向にスキャンするようにしたが、内周から外周方向にスキャンするようにすることも可能である。その場合、内周から外周にヘッドを移動させながら、データにアクセスするときに最適なスキューを設定するようにすることができる。
【００９５】
さらに、上記実施の形態においては、データを記録する媒体としてハードディスクを用いるようにしたが、光ディスク、光磁気ディスク等のその他の記録媒体を用いるようにすることも可能である。
【００９６】
【発明の効果】
請求項１に記載のディスク制御方法、および請求項１６に記載のディスク制御装置によれば、第１のデータが分割された第２のデータを複数の記憶装置に別々に記憶させ、記憶装置に対して、各第２のデータの読み出し、または書き込みを行うとき、各第２のデータの読み出し時間、および書き込み時間がそれぞれほぼ同一となるように、各第２のデータの大きさと、各第２のデータが記憶される記憶装置と、各第２のデータが記憶される記憶装置上のアドレスとを決定するようにしたので、記憶装置に対してデータの読み出しまたは書き込みを行うときのオーバヘッドを低減することができる。また、記憶装置に対してデータの読み出しまたは書き込みを行うのに要する時間を一定とすることができ、Ｉ／Ｏ時間を容易に見積もることが可能となる。
【図面の簡単な説明】
【図１】本発明のディスク制御装置を応用したマルチメディアサーバの構成例を示すブロック図である。
【図２】図１のブロックマップ３の例を示す図である。
【図３】データとサブブロックの関係を示す図である。
【図４】１フレームのデータを複数のパケットに分割した状態を示す図である。
【図５】複数のパケットからなるサブブロックの構成を示す図である。
【図６】図１のディスク記憶装置６の物理セクタを示す図である。
【図７】論理セクタアドレスと物理セクタアドレスの関係を示す図である。
【図８】ｋ番目のデータの配置場所を決定する処理手順を説明するフローチャートである。
【図９】図８のステップＳ１の詳細な処理手順を説明するフローチャートである。
【図１０】図８のステップＳ２の詳細な処理手順を説明するフローチャートである。
【図１１】図１０のステップＳ２１の詳細な処理手順を説明するフローチャートである。
【図１２】図１０のステップＳ２２の詳細な処理手順を説明するフローチャートである。
【図１３】図８のステップＳ３の詳細な処理手順を説明するフローチャートである。
【図１４】データを複数のディスク記憶装置６に分配して記憶させた例を示す図である。
【図１５】ディスク記憶装置６に分配されたサブブロックの特徴を示す図である。
【図１６】ＳＣＡＮアルゴリズムを説明するための図である。
【図１７】スキューとギャップを一定にした場合のアロケーションを示す図である。
【図１８】スキューとギャップを一定にした場合のオーバヘッドタイムを表すグラフである。
【図１９】オーバヘッドタイムが最大となるＩ／Ｏ要求の例を示す図である。
【図２０】ＺＢＲディスクの物理セクタの例を示す図である。
【図２１】ＺＢＲディスクの１トラックあたりのセクタ数とシリンダアドレスとの関係を示すグラフである。
【図２２】データがディスク記憶装置に分配された様子を示す図である。
【図２３】ディスク記憶装置に分配されたサブブロックの特徴を示す図である。
【符号の説明】
１  配置部（割り当て手段），２  スケジューラ（決定手段），３  ブロックマップ，４  データバッファ，５  ＳＣＳＩドライバ（読み書き手段），６  ディスク記憶装置（記憶手段），７  アクセス要求バッファ，８  ＺＢＲテーブル
【図１】
0003865163.tif 000002
【図２】
0003865163.tif 000003
【図３】
0003865163.tif 000004
【図４】
0003865163.tif 000005
【図５】
0003865163.tif 000006
【図６】
0003865163.tif 000007
【図７】
0003865163.tif 000008
【図８】
0003865163.tif 000009
【図９】
0003865163.tif 000010
【図１０】
0003865163.tif 000011
【図１１】
0003865163.tif 000012
【図１２】
0003865163.tif 000013
【図１３】
0003865163.tif 000014
【図１４】
0003865163.tif 000015
【図１５】
0003865163.tif 000016
【図１６】
0003865163.tif 000017
【図１７】
0003865163.tif 000018
【図１８】
0003865163.tif 000019
【図１９】
0003865163.tif 000020
【図２０】
0003865163.tif 000021
【図２１】
0003865163.tif 000022
【図２２】
0003865163.tif 000023
【図２３】
0003865163.tif 000024