明細書 記録媒体へのアクセスを制御するァクセス制御装置および方法 技術分野
本発明は、 複数チヤンネルのデータを同時に記録ノ再生するため に、 記録媒体へのアクセスを制御するアクセス制御装置およびその 方法に関する。 背景技術
近年、 マイ ク ロコ ンピュータや M P E G 2 (Moving Picture Experts Group phase 2 ) 等の動画符号化 Z復号化 L S I (Large Scale Integration ) の発展に伴い、 映像のデジタル化が飛躍的に 進み、 その結果として、 2 0世紀から 2 1世紀に向けて、 テレビジ ヨン放送がアナログからデジタルへ急激に変化しょうとしている。 また、 B S (Broadcasting Satellite) C S ( Communications Satellite) 等を利用した衛星放送では数 1 0 0チャンネルのプロ グラムを用意し、 視聴者の多様化に応えようとしている。
放送のデジタル化および多チヤンネル化が進むにつれて、 安価な セッ ト トップボックス ( S T B) やデジタル TV (Television) の 開発等とあいまって、 家庭にもデジタルの映像データを大量に取り 込む時代が来ようとしており、 記憶装置 (ス トレージデバイス) に デ一夕を蓄積する機会が増えると考えられる。
このような大容量の映像データを蓄積することを主な目的として、 ハードディスクや光ディスク等の大容量ス トレージデバイスの開発
が活発に行われている。 例えば、 M P E G 2を用いた場合、 2時間 程度の映像データを数 G Bに圧縮して蓄積することができる。
このようなス トレ一ジデバイスでは、 コンピュータの入出力シス テムとして求められるスループッ 卜の他に、 新たにリアルタイム性 が要求されることになる。 そのような状況の中で、 現在、 S T B、 ス トレージデバイス、 プリンタ、 および TV等のディスプレイ装置 を結ぶホームネッ トワークを実現するインタフェースとして最も期 待されているインタフェースに、 I E E E (Institute of Electrical and Electronic Engineers) 1 3 9 4と呼ばれる高速のシリアルイ ン夕フェースがある。
I E E E 1 3 9 4では、 音声や映像等のデータをリアルタイムで 転送するために、 同期 (Isochronous ) 転送という独自の転送モー ドを持っており、 一定の転送レートでデータを送ることを保証して いる。 したがって、 I E E E 1 3 9 4を介して映像デ一夕をス トレ ージデバイスに記録したり、 ス トレージデバイスから映像データを 再生したりする場合は、 この同期転送に基づき、 リアルタイム要求 に応えなければならない。
また、 多チャンネル化により、 同時 (正確には時系列) に複数の チャンネルのデータを取り込む状況が想定される。 したがって、 リ アルタイム要求を満たしつつ、 どれだけ多くのチャンネルのデータ を効率よく同時に記録 Z再生できるかが鍵となる。
ところが、 ス トレ一ジデバイスの場合、 データ転送の他に、 シー ク待ち、 回転待ち、 ベリファイ、 リ トライ等の時間ファクタが存在 する。 シ一ク待ちは、 ディスクヘッ ドが所望のトラックまで移動す るための時間を表す。 回転待ちは、 ディスクヘッ ドの下部に所望の
セクタの先頭が現れるまでのディスクの回転時間を表す。 ベリファ ィは、 書き込みデ一夕の確認処理を表し、 リ トライは、 アクセスが 失敗した場合の再アクセスを表す。
これらの時間ファクタは、 ある期限までに処理を終了してスケジ ユールを守るというリアルタイム処理の妨げとなっている。そこで、 従来は、 効率よくディスクをアクセスするために、 ディスクスケジ ユーリングによりデータのリード/ライ トの実行の順序や、 データ の記録 · 読み出し場所を制御している。
従来のスケジユ ーリングアルゴリズムとしては、 次のようなもの が挙げられる (A. L. N. Reddy and J. に Wyllie, "I/O Issues in a Multimedia System " , Computer, 27, Mar, pp. 69-74, 1994. )c
( 1 ) E D F (Ear 1 i est Deadl ine First ) : 終了期限 (deadl ine) が最も迫っている処理を優先する方法。
( 2 ) L S T F (Least Slack Time First) : 時間の余裕が最も少 ない処理を優先する方法。
( 3 ) S S T F (Shortest Seek Time First) : シーク時間が最短 の処理を優先する方法。
(4 ) S C AN : シーク方向が同じでかつシーク時間が最短の処理 を優先する方法。
( 5 ) S C AN— E D F : まず、 終了期限を優先し、 同じ期限の場 合は、 S CANを採用する方法。
これらのアルゴリズムのうち、 ( 1 ) と ( 2 ) は、 時間の要素の みを考慮しており、 ディスクアクセスの効率化 (シーク時間の短縮) を考慮していない。 逆に、 ( 3 ) と ( 4 ) は、 ディスクアクセスの 効率化の要素のみを考慮しており、 時間の要素を考慮していないた
め、 リアルタイム処理に適さない。 したがって、 時間とディスクァ クセスの効率化の両方を考慮している ( 5 ) のアルゴリズムが、 現 在では一般的に使用されている。
図 1 は、 このような E D Fおよび S C ANによるディスクスケジ ユーリングの概念を示している。 ここでは、 時分割で 4つのチャン ネルの映像データがディスク 1内を流れると仮定している。 4つの チャンネル C h i、 C h 2、 C h 3、 および C h 4のうち、 C h l 、 C h 2、 および C h 3については、 送られてきた映像データをディ スク 1 に書き込む処理 (W r i t e ) が行われ、 C h 4については、 ディスク 1から映像データを読み出す処理 (R e a d ) が行われる。 従来のスケジューリングの用途としては再生 (プレイバック) が 多く、 書き込みの同時性はほとんど考慮されていない。 したがって、 各チャンネルの映像データは、 読み出し易いようにシーケンシャル に固まって集中しており、 各チャンネルのアドレスポイントは分散 される場合が多い。 ここでは、 ディスク 1上で各チャンネルのデ一 夕の書き込み Z読み出し位置を表すアドレスポイントは、 右端に示 すように、 ディスク 1の外周から内周に向かって C h i、 C h 3、 C h 4、 C h 2の順に分散されている。
W r i t e処理の場合は、 まず、 送られてきた映像データを一時 ダブルバッファ (バッファメモリ) 2の片方のバッファに蓄積する。 次に、 次の映像データをダブルバッファ 2の他方のバッファに蓄積 している間に、 最初に蓄積された映像デ一夕をディスク 1 に書き込 む処理を終了しなければならない。 例えば、 C h 1 では、 周期 (round ) Tの間に、 データ W 1 2がダブルバッファ 2に蓄積され、 データ W 1 1がダブルバッファ 2からディスク 1 に書き込まれなけ
ればならない。 C h 2 と C h 3についても同様である。
また、 R e a d処理の場合は、 まず、 映像デ一夕をディスク 1か ら読み出し、 一時ダブルバッファ 2の片方のバッファに蓄積する。 次に、 その蓄積された映像データを送り出している間に、 次の映像 デ一タをディスク 1から先読みして、 ダブルバッファの他方のバッ ファに蓄積する処理を終了しなければならない。 例えば、 C h 4で は、 周期 Tの間に、 データ R 4 2をダブルバッファ 2から送り出し ている間に、 次のデータ R 4 3がディスク 1からダブルバッファ 2 に読み出されなければならない。
図 1では、 時系列的に C h i、 C h 2、 C h 3、 C h 4の順でデ イスクアクセスが要求されるため、終了期限も同じ順に設定される。 したがって、 E D Fを採用した場合、 ディスク 1は、 C h l、 C h
2、 C h 3、 C h 4、 C h l、 C h 2、 C h 3、 C h 4 の順 にアクセスされる。
しかし、 各チャンネル C h 1〜(: h 4のアドレスポイントが異な る順に配置されているため、 チャンネル間のシーク距離が長く、 へ ッ ドが移動するのに時間がかかる。 特に、 C h 1 と C h 2のァドレ スポイントは大きく離れており、 C h iの書き込みから C h 2の書 き込みまでに時間がかかる。
また、 S C ANを採用した場合、 アクセス要求の順に関係なく、 ヘッ ドの位置からシーク相対距離が短い順に、 C h l、 C h 3、 C h 4、 C h 2のようにアクセスされ、 ここでシーク方向が逆になつ て、 さらに C h 2、 C h 4、 C h 3、 C h i の順でアクセス される。 この場合、 アクセス要求の順序に対して、 C h iの書き込 みは、 ある周期では最初に処理され、 次の周期では最後に処理され
るため、 C h iの場合、 アクセス時間間隔が空きすぎてアクセス要 求を満たせなくなることがある。 このような塲合、 アクセス要求を 満たすためには、 バッファ 2をより大きくする必要がある。
これに対して、 ( 5 ) の S C AN— E D Fは、 E D Fと S C AN を混在させた方法であり、 シーク時間とアクセス要求の順序の両方 を考慮したスケジューリングを行うことができる。
しかしながら、 上述した従来のディスクスケジューリングには、 次のような問題がある。
従来のスケジュ一リングでは、 ス トレ一ジデバイスが映像データ を一定レートで受け取り、 一定レートで送り出すことを仮定してい る。 例えば、 図 2は、 6つのチヤンネル C h 1〜 C h 6の映像デ一 夕が、 それぞれ、 一定の帯域 (ビッ トレート) でス トレージデバイ スに入力される様子を示している。 ここで、 1 トランスボンダは、 衛星放送における 1回線の容量に対応する。
このような仮定の下では、 各チャンネル C h i〜(: h 6の書き込 み Z読み出しの終了期限は周期的に訪れると考えられ、 終了期限は 最初に決められた周期情報に基づいて設定される傾向にある。
ところが、 デジタル放送等で流れる映像データは、 図 3に示すよ うに、 統計多重化されており、 転送レートは必ずしも一定ではない。 この場合、 1 トランスボンダのレートは一定だが、 各チャンネルの MP E G 2の符号化データの転送レ一トは画像の動きの激しさに応 じて変化し、 これにより効率の良い放送が実現される。
ところで、 I E E E 1 3 9 4上の同期転送によりバケツ ト転送を 行う場合、 通常、 パケッ ト内に転送すべきデータを含ませる。 しか し、 このような可変レートで送られてくる映像デ一夕では、 レート
が変わったりしてデータが揃わない堤合に、 データを含まないダミ 一 · パケッ トを転送して、 転送の時間保証を継続している ( I E C (International Electrotechnical Commission ) 1 8 6 6 3およ び I E E E 1 3 9 4— 1 9 9 5に準拠)。
図 4は、 このようなバケツ ト転送の手順を示している。 ここでは、 1 8 8バイ トのトランスポート · ノ ケッ ト 3に 4バイ トのタイム · スタンプ Tが付加されて、 1 9 2バイ トのパケッ トが生成され、 そ れが 2 4バイ 卜単位のデータ · ブロックに分割される。 そして、 4 つ (他の整数でもよい) のデータ ' ブロックが 1つのデータ · ブ口 ック · パケッ ト 4にまとめられ、 同期転送パケッ トとして転送され る。
デ一夕 · ブロック ' パケッ ト 4には、 I E E E 1 3 9 4のヘッダ H とマルチメディ アデ一夕用の C I P ( Common Isochronous Packet ) ヘッダとが付加される。 C I Pヘッダには、 データ · ブ ロックの分割方法が定義されており、 受信ノードは、 この情報に基 づいてトランスポート · バケツ ト 3を再構築することができる。
1 2 毎に 1つのサイクル · スタート · ノ、。ケッ ト Sと 1つの デ一夕 .ブロック 'パケッ ト 4が転送されるが、 デ一夕 'ブロック · パケッ 卜 4がないときは、 C I Pヘッダのみのダミー · バケツ 卜 5 が同期転送パケッ トとして転送される。
このような状況で従来のような終了期限を設定すると、 同期転送 パケッ トが全てデータ · ブロック · バケツ ト 4を含む場合の最大転 送レー卜に合わせて、 実際よりも厳しい (早い) 終了期限を定義す ることとなり、 より多数のチャンネルを処理できなくなるという問 題がある。
また、 上述した ( 1 ) 〜 ( 5 ) のスケジューリングは、 いずれも プレイバックを主な適用対象としており、 ディスク上の書き込み場 所を規定しておらず、 個々の映像データはディスク上に分散して記 録されていると仮定している。 したがって、 多数のチャンネルを処 理する場合、 長いシーク時間がかかることが多く、 好ましくない。
また、 現在のディスクは、 高密度の特徴を活かして複数のゾーン (トラックの集合) に分割し、 ディスクの回転制御方式として、 Z C A V (Zone Constant Angular Velocity) を採用することにより、 同じ回転数でも外周のゾーンの転送レートを内周のゾーンより速く することで、 記憶容量を大きく している。 最内周の転送レートは、 例えば、 最外周のそれの 6 0 %程度である。
ところが、 従来のスケジューリングでは、 このような複数のゾー ンの存在を考慮しておらず、 ディスク上にはデ一夕が内周と外周に 一様に分布し、 デ一夕量も転送レートも、 内周と外周で共に一定で あると仮定している。 このため、 特に内周部分に転送レートの高い デ一夕が集中して書き込まれた場合には処理効率が悪くなり、 多数 のチャンネルの処理に適さないという問題もあった。
ところで、 最近、 主に映像データの蓄積を目的とした光ディスク として A S MO (Advanced Storage Management Optocal disc) 力 検討されている。 A S MOは、 磁界変調方式の光磁気ディスクであ り、 直径 1 2 0 mm の大きさで片面当たり最大 6. 1 G B (ギガバ ィ ト) の容量を持つ。
図 5に A S MOの構成を示す。
同図に示すように、 A S MOでは、 ランド (山) 1 1 とグループ (谷) 1 2の両方にデータを高密度記録するランド · グループ記録
方式により大容量化を図っている。 ラン ド 1 1 とグループ 1 2のピ ツチは 0. 6マイクロ · メー トルとなっている。 また、 ディスクの デ一夕記録領域 (recording area) 1 3の厚さは 0. 6 mmである。 また、 この例では、 記録領域 1 3は、 2 2個の物理ゾーンに分割さ れている。 すなわち、 1つのディスクに 2 2個の物理ゾーンが形成 されている。 1つの物理ゾーンは、 数千トラックを有する。 また、 トラックはディスク上に螺旋状に形成されている。
また、 さらに、 ディスクを ドライブ装置に固定するための仕組み (チヤッキング機構)を C Dや D VDと兼用できるようにするため、 ディスクのデータが記録されていない中心部 (クランプ部) 1 7の 厚さは 1. 2龍 にしてある。
各物理ゾーンには、 ディスクの径方向に所定数の トラックが設け られている。 そして、 各トラックは、 1以上のフレーム 1 4に分割 されている。 フレーム 1 4は、 複数のセグメン トに分割されており、 通常、 先頭のセグメン トをア ドレスセグメン ト (AD R S ) 1 5 と し、それ以外のセグメン トはデータセグメン ト 1 6 と呼ばれている。 ア ドレスセグメント 1 5 とデータセグメン ト 1 6には、 図中で△で 示されたクロックマーク 1 7が設けられている。
1つのフレーム 1 4の全データセグメン ト 1 6には、 例えば、 2 KB (キロバイ ト) のデータと E C C (E r r o r C o r r e c t i n g C o d e ) が記録される。 また、 ア ドレスセグメント 1 5には、 ア ドレス情報、 チルトパターン、 プリアンブル、 リザーブ 等が記録される。 ア ドレスセグメン ト 1 5では、 これらの情報が、 ダル一ブ 1 2を形成する 2つの壁の内、一方の壁のみにゥォブル(W o b b 1 e ) を施す、 いわゆる、 片側ゥォブルで記録されている。
片側ゥォブルアドレス (Singled Sided Wobbled Address) 1 8は、 デ一夕の位置を示す片方向 (両方向も存在する) のゥォブルアドレ スである。 A S M〇においては、 ディスクの 1回転当たりのフレー ム数は、 1 6〜 7 3個である。
また、 ランド 1 1 とグループ 1 2共に、 ピッ ト長は 0. 2 3 5マ イクロメ一トルである。
上述したように、 A S M Oは、 物理的に 2 2個のゾーンに分割さ れるが、 これらの物理ゾーンは図 6に示すように、 外周側から内周 側に、 論理ゾーン (Logical Zone) N〜論理ゾーン M+ 2 ) までの 7 1 4個の論理ゾーンに分割される。 また、 図 6において、 各論 理ゾーン N〜M + 2の右隣にはバッファ内のデ一夕量の時間的変化 を示している。 同図に示す例は、 A S MOの論理ゾーン N〜論理ゾ —ン N + 1 をアクセスして、 論理ゾーン N〜論理ゾーン N + 1から データをバッファに読みだした後、 今度は、 最内周の論理ゾーン M + 2からデータをバッファに読みだす例を示している。 この場合、 へッ ドが外周の論理ゾーン N + 1から内周の論理ゾーン M+ 2まで シーク動作する間、 バッファ内に保持されているデ一夕は外部装置 に転送され、 バッファ内のデータ量は次第に減少していく。
この論理ゾーン N + 1 をアクセスしてから、 次に、 論理ゾーン M + 2をアクセスするまでの許容時間は 1秒以内でなければならない t この 1秒以内に、 ノ ッファから外部装置には 1 M B (メガバイ ト) のデータが転送される。
図 7は A S M〇の論理ゾーンのデータ構造を示す図である。 同図 に示すように、 A S MOにおいては、 論理ゾーン 2 0は、 8 MB (メ ガバイ ト) の記憶容量を有し、 隣接する 4 M B (メガバイ ト) のラ
ンド 1 1 と 4 MB (メガバイ ト) のグループ 1 2 との対で構成され ている。
論理ゾーン 2 0は、 図 7に示すようにユーザエリア (図中、 ハツ チングで示す) とスペアエリア (図中、 黒塗りで示す) に分割され、 通常、 データはユーザエリアにセクタ単位で先頭から順に記録され ていく。 このとき、 ユーザエリアに欠陥セクタが無ければ、 データ はュ一ザエリアのみに記録される。 しかしながら、 ユーザエリアに 欠陥セクタがある場合には、 該欠陥セクタに記録しょうとしていた データはスペアエリアに記録される。 このように、 スペアエリアは、 ユーザエリァに欠陥セクタが存在する場合の交替処理用の予備セク 夕として利用される。 ところで、 上記欠陥セクタの補償には、 ス リツビング ' リプレースメント (SI ipping Replacement: S R) と リニアリプレースメント (Linear Replacement: L R ) が利用され る。 S Rは、 欠陥セクタを飛ばして、 次のセクタにデ一夕を順番に 記録していく方法である。 この場合、 スペアエリアには、 記録デー タ列の内、 欠陥セクタの数分だけ後尾セクタがずれ込む形で記録さ れる。 一方、 L Rは、 欠陥セクタをスペアエリアで交替する方法で ある。
図 7には、 S Rと L Rの方法が模式的に示されている。 ( 1 ) が S Rを示し、 ( 2 ) 〜 ( 4 ) が L Rを示している。 L Rには 3種類 の方法があり、
( 2 ) は同一論理ゾーン内のスペアエリアで欠陥セク夕を交替す る方法、
( 3 ) は前の論理ゾーン内のスペアエリアで欠陥セクタを交替す る方法、
そして、
( 4 ) は隣接する論理ゾーン内のスペアエリァで欠陥セクタを交 替する方法を示している。
このように、 A S M Oは、 論理ゾーンのグループとランドに交替 処理用の領域 (スペアエリア) を設けることにより、 例え、 デ一夕 の交替処理が必要になった場合でも、 アクセス時間が短くてすむよ うに構成されている。 物理ゾーンは数百 M B (メガバイ ト)、 論理 ゾーンは 8 M B程度であり、 1つの物理ゾーンに、 論理ゾーンは 3 0〜 5 0個ほど含まれる。
ところで、 論理ゾーンの範囲は、 図 8に示すように、 ヘッ ド本体 を移動するシーク動作を行わずとも、 対物レンズ 3 0の駆動による ビーム偏向走査(光シーク) のみでビームをジャンプできる範囲(約 2 0 0 トラック) を基準にして設計されている。 同図においては、 対物レンズ 3 0によるアクセス可能領域 (欠陥ブロック 3 1 とその 予備プロック 3 2 との最大幅が 2 0 0 トラック) であることが示さ れている。 この対物レンズ 3 0による光シークの速度は、 最大 5 ms 程度である。 ちなみに、 ヘッ ド本体を移動するシーク動作により、 上記光シークと同様な 2 0 0 トラックの走査を行った場合には、 そ の 2倍以上の速度を要する。
また、 A S M Oにおいては、 論理ゾーンの中は、 原則的にシ一ケ ンシャルにアクセスし、 次のステップで、 ヘッ ドが最大シーク距離 (最内周から最外周までの距離) まで移動しても、 シームレスに音 声 · 映像データを取り込んだり再生できることを保証している。 上 記最大シーク距離の移動によるアクセス待ち時間は 1秒である。 こ のため、 この 1秒間の間にリアルタムでの音声 · 映像データの取り
込み Z再生を実現するために、 1 MB (メガバイ ト) のデータを保 持できる内部バッファを設けるようにしている。
図 9、 1 0は、 それぞれ、 A S MOにおいて、 シームレスな音声 ' 映像デ一夕の取り込み及び再生を実現するための概念図である。 図 9は、 A S MOに対するバッファリングされた音声 · 映像データの 論理ゾーン N〜N+ 2に対する書き込み操作を示している。 また、 図 1 0は、 A S MOの論理ゾーン N〜N + 2からバッファに、音声 · 映像データを読みだす操作を示している。
ところで、 A S MOでは、 単一チャンネルの記録 · 再生のみを考 慮しており、 複数チャンネルの同時記録、 同時再生、 あるいは時差 再生 (記録しながら再生する動作) などについては、 まだ、 考慮さ れていないのが現状である。
また、 現在の 3. 5インチ M〇 (Magneto Opt ival disc) は、 回 転制御方式として, Z C AV (Zone Constant Angular Veloci ty) を 採用している。 このため、 A S M 0に比べてシーク時間が短いもの の、 3. 5インチ MOの場合、 内周の方が外周よりも転送速度が遅 く (内周の転送速度は外周の転送速度の 6 0 %程度である)、 多チ ヤンネルの映像データについて、 同時記録、 同時再生を試みた場合、 より高い処理性能が要求され、 内周部で処理に対処しきれなくなる などの問題があった。 この問題は、 HD D (Hard Disk Drive)にお いても同様である。
一方、 A S MOの場合には、 回転制御方式として, 内周と外周の 回転数を変化させることで、 全体の転送速度を一定とする Z C L V (Zone Constant Linear Veloci ty)を採用しているため、 3. 5ィ ンチ MOの場合のような問題は発生しないが、 ゾーン間を跨がるァ
クセスが生じた場合、回転数を変えるための制御時間が必要となり、 これが処理性能を妨げる要因になっている。
本発明の第 1の目的は、 複数チャンネルのデータの記録ノ再生に 伴う記録媒体へのアクセスをリアルタイムで処理する場合に、 より 多くのチャンネルを効率良く処理するアクセス制御装置およびその 方法を提供することである。 また、 本発明の第 2の目的は、 ランド とグループに記録する記録媒体において、 複数チヤンネルの同時記 録 · 再生等を可能にすることである。 発明の開示
図 1は、 本発明のアクセス制御装置の原理図である。
本発明の第 1の原理によれば、 アクセス制御装置は、 スケジユー リング手段 1 1および制御手段 1 2を備え、 記録媒体への複数のァ クセス要求を処理する。
スケジューリング手段 1 1は、 データの転送レートの変化に応じ てアクセス処理の終了期限を決定し、 終了期限の早い順に複数のァ クセス要求の実行スケジュールを設定する。 制御手段 1 2は、 実行 スケジュールに従ってそれらのアクセス要求の実行を制御する。 例えば、 同期転送の場合、 データの転送レートは挿入されるダミ — · パケッ トの割合に応じて刻々と変化する。 スケジューリング手 段 1 1 は、 その時々の転送レートに応じて動的に書き込みノ読み出 し処理の終了期限を決定し、 終了期限の早い順に書き込み 読み出 し処理を実行するようなスケジュールを設定する。 そして、 制御手 段 1 2は、 設定されたスケジュールに従って、 それらの書き込み 読み出し処理の実行を制御する。
このようなアクセス制御装置によれば、 実際の転送レートに従つ て終了期限が決定され、 それに基づいて柔軟なスケジューリングが 行われる。 このため、 統計多重化された可変レートの映像データを リアルタイムで記録 再生する場合でも、 各チャンネルの転送レー 卜に合わせたスケジューリングが行われ、 より多数のチャンネルの 記録 再生が可能になる。
また、 本発明の第 2の原理によれば、 アクセス制御装置は、 制御 手段 1 2および決定手段 1 3を備え、 ディスク型記録媒体への複数 のアクセス要求を処理する。
決定手段 1 3は、 記録媒体へデータを書き込む複数の書き込み要 求に対して、 それらの書き込み要求に対応する複数の書き込み位置 が互いに近接するように、 書き込み領域を決定する。 制御手段 1 2 は、 各書き込み要求の書き込みデ一夕を上記書き込み領域にシ一ケ ンシャルに書き込む制御を行う。
決定手段 1 3は、 互いに近接する複数の書き込み位置を含む書き 込み領域を決定し、 制御手段 1 2は、 各書き込み要求の書き込みデ 一夕を、 その書き込み領域内の複数の書き込み位置にシーケンシャ ルに書き込む制御を行う。 これらの書き込み位置は、 例えば、 ディ スク型記録媒体上に設けられたゾーン内の連続ァドレスに対応する。
このようなアクセス制御装置によれば、 複数チャンネルの映像デ 一夕の同時書き込みが要求された場合でも、 それらのチャンネルの データがまとめてシーケンシャルに書き込まれ、 書き込みの際のシ ーク待ちや回転待ちが大幅に削減される。 これにより、 処理が効率 化され、 より多数のチャンネルの記録 Z再生が可能になる。
例えば、図 1のスケジューリング手段 1 1および決定手段 1 3は、
後述する図 2の M P U (マイクロプロセッサユニッ ト) 3 1 に対応 し、 制御手段 1 2は、 M P U 3 1 、 L S I 3 2、 ドライバ回路 3 3 、 およびバッファメモリ 3 4に対応する。
また、 本発明の第 3の原理によれば、 アクセス制御装置は、 Z C A Vに基づき回転制御が行われる記録媒体に対する複数チヤンネル の同時記録を制御するアクセス制御装置を前提とする。 そして、 前 記記録媒体上のゾーンの転送速度が平均化されるように、 前記記録 媒体から複数ゾーンを選択する選択手段と、 前記複数チャンネルの データが、 該選択された複数のゾーンに分散 ' 記録されるように制 御する制御手段とを備える。 前記選択手段は、 例えば、 外周ゾーン と内周ゾーンを対にして、 複数のゾーンを選択する。
このようなアクセス制御装置によれば、 記録媒体全体での転送速 度 (転送レート) が一定となるように複数のゾーンを交互にァクセ スして、 複数チャンネルのデ一夕の同時記録の要求性能 (総合要求 性能) に対応して、 各チャンネルのデータを記録媒体に正しく記録 することができる。
また、 本発明の第 4の原理によれば、 アクセス制御装置は、 Z C A Vに基づき回転制御が行われる記録媒体に対する複数チヤンネル の同時記録を制御するアクセス制御装置を前提とし、 該各チャンネ ルのデ一夕の記録要求性能の総和である総合要求性能以上の転送速 度平均を持つ複数のゾーンを、 前記記録媒体から選択する選択手段 と、 該選択された複数のゾーンに前記複数チヤンネルのデータが分 散 · 記録されるように制御する制御手段とを備える。
このようなアクセス制御装置によれば、 各チャンネルのデ一夕の 要求性能の総和 (総合要求性能) に優るように複数のゾーンを選択
して、 各チャンネルのデータを該複数のゾーンに分散 · 記録するの で、 複数チヤンネルのデータを記録媒体に正しく記録することがで さる。
上記第 3及び第 4の原理のアクセス制御装置において、 前記選択 手段は、 例えば、 各ゾーン間のヘッ ドの移動時間を加味して、 前記 複数のゾーンを選択する。 また、 前記選択手段は、 例えば、 各ゾー ン間のへッ ドの移動時間に加え、前記複数チヤンネル数も加味して、 前記複数のゾーンを選択する。 このようなゾーン選択により、 より 精密にゾーンを選択することが可能になる。
また、 前記制御手段は、 各チャンネルのデ一夕とその記録ゾーン とが、 1対 1 に対応するように制御する。 このことにより、 各チヤ ンネルのデータの再生を高速化でき、 また、 デ一夕削除後の領域を 効率的に利用できる。
また、 前記制御手段は、 該各チャンネルのデ一夕がブロック単位 で該各ゾーンに交互に記録されるように制御する。 また、 さらに、 前記制御手段は、 各チャンネルのデータが、 同一のゾーンに交互に 記録されるように制御する。
また、 本発明の第 5の原理のアクセス制御装置によれば、 上記第 3及び第 4の原理のアクセス制御装置において、 更に、 あるゾーン から、 そのゾーンに記録されているあるチャンネルのデータを削除 する削除手段と、 前記チャンネルのデータが削除された前記ゾ一ン の空き領域に、 現在、 最も外周のゾーンに記録されている別チャン ネルのデータを移動するガ一ベジコレクション手段とを備える。
このようなアクセス制御装置によれば、 転送速度の速い外周ゾ一 ンを、 効率的に利用でき、 高速なチャンネルの記録に、 常時、 対処
することが可能になる。
また、 本発明の第 6の原理のアクセス制御装置によれば、 上記第 3及び第 4の原理のアクセス制御装置において、 更に、 あるチャン ネルのデータの再生要求を受け付けた場合、 そのチャンネルのデー 夕が記録されているゾーンから再生データを連続して読みだす読み だし手段を備える。
このようなアクセス制御装置によれば、 チャンネルデータの高速 再生が可能になる。
また、 本発明の第 7の原理によれば、 アクセス制御装置は、 Z C L Vに基づき回転制御が行われる記録媒体に対する複数チヤンネル の同時記録を制御するアクセス制御装置を前提とし、 複数チャンネ ルの同時記録要求を受け付けたとき、 記録容量の多い外周ゾーンを 優先的に選択する選択手段と、 前記複数チャンネルのデ一夕が、 該 選択されたゾーンに集中して記録されるように制御する制御手段と を備える。
このようなアクセス制御装置によれば、 チャンネルデータの高速 記録が可能になる。
また、 本発明の第 8の原理によれば、 アクセス制御装置は、 ラン ド · グループ方式で記録が行われる記録媒体に対する複数チャンネ ルの同時記録を制御するアクセス制御装置を前提とし、 複数チャン ネルの同時記録要求を受け付けたとき、 各チャンネルのデータが 1 対 1対応で記録されるランドまたはグループを決定する決定手段と、 前記各チャンネルのデータが、 該決定された対応するランドまたは グループに沿って分散 · 記録されるように制御する制御手段とを備 える。
前記記録媒体が所定セクタ数のランドとグループを有する論理ゾ —ンに分割される記録媒体である場合、 前記制御手段は、 例えば、 各チャンネルのデータが、 論理ゾーン単位で、 ランドとグループに 交互に分散 · 記録されるように制御する。
このようなアクセス制御装置によれば、 各チャンネルのデータへ のアクセス効率を向上できる。 また、 同時記録した一方のチャンネ ルのデ一夕を削除する処理も高速化でき、 該削除が同時記録した他 方のチャンネルのデ一夕のアクセスに及ぼす影響も少なくできる。 また、 ガーベジコレクショ ンの実行回数も削減できる。
また、 本発明の第 9の原理によれば、 アクセス制御装置は、 上記 第 8の原理のアクセス制御装置において、 更に、 あるチャンネルの デ一夕の削除要求を受け付けた場合、 そのチヤンネルのデータを、 それが記録されているランドまたはグループから削除する削除手段 と、 該ランドまたは該グループと対になっている他のランドまたは 他のグループに記録されている別のチャンネルのデータを、 空き領 域のある論理ゾーンに移動させて再記録させるガーべジコレクショ ン手段を備える。
このようなアクセス制御装置によれば、 チャンネルデータの削除 を容易かつ高速にできると共に、 不連続な空き領域を削減できる。 また、 本発明の第 1 0の原理によれば、 アクセス制御装置は、 上 記第 8及び第 9の原理のアクセス制御装置において、 更に、 あるチ ヤ ンネルのデータの再生要求を受け付けた場合、 そのチヤンネルの データが記録されているランドまたはグループから再生データを連 続して読みだす読みだし手段を備える。
このようなアクセス制御装置によれば、 チャンネルの再生を高速
できる 図面の簡単な説明
図 1は、 従来のディスクスケジューリングを示す図である。
図 2は、 一定レートの転送デ一夕を示す図である。
図 3は、 可変レートの転送データを示す図である。
図 4は、 同期転送を示す図である。
図 5は、 A S MOの構成を示す図である。
図 6は、 A S MOにおける論理ゾーンの構成を示す図である。 図 7は、 A S M〇における欠陥管理の操作方法を説明する図であ る。
図 8は、 A S MOにおけるレンズ操作のみによるァクセス可能領 域を説明する図である。
図 9は、 A S MOにおける W r i t e操作を説明する図である。 図 1 0は、 A S MOにおける R e a d操作を説明する図である。 図 1 1は、 本発明のアクセス制御装置の原理図である。
図 1 2は、 ス トレ一ジシステムの構成図である。
図 1 3は、 ディスクスケジューリ ングの原理フローチャートであ る。
図 1 4は、 第 1のディスクスケジューリングを示す図である。 図 1 5は、 ディスクに記録されるデータのフォーマッ トを示す図 である。
図 1 6は、 第 2のディスクスケジューリングを示す図である。 図 1 7は、 スケジュールテーブルを示す図である。
図 1 8は、 書き込み処理のフローチャートである。
図 1 9は、 読み出し処理のフローチャートである。
図 2 0は、 書き込み Z読み出し処理のフローチャートである。 図 2 1は、 第 1の並べ替えアルゴリズムを示す図である。
図 2 2は、 第 2の並べ替えアルゴリズムを示す図である。
図 2 3は、 第 1のゾーン決定処理の原理フローチャー トである。 図 2 4は、 第 2のゾーン決定処理の原理フローチャートである。 図 2 5は、 複数ゾーンとその転送レートを示す図である。
図 2 6は、 チャンネル数に基づく書き込み処理を示す図である。 図 2 7は、 チャンネル数に基づく書き込み処理のフロ一チャート である。
図 2 8は、 ゾーン対を用いた書き込み処理のフローチャートであ る。
図 2 9は、 ゾーン対を用いた書き込み処理を示す図である。
図 3 0は、 制御プログラムの格納場所を示す図である。
図 3 1 は、 A S MOを 3つの論理ゾーンに分割した状態を示す図 である。
図 3 2は、 図 3 1 に示す A S MOに 1チャンネルのデ一夕を記録 する方法を示す図であり、 ( a ) は論理ゾーン、 (b ) はグループ、 ( c ) はランドに沿って記録する方法を示す図である。
図 3 3は、 図 3 1 に示す A S MOに 2チャンネルのデータを記録 する方法を示す図である。
図 3 4は、 図 3 1 に示す A S MOに 2チャンネルのデ一夕を同時 記録した場合の、 再生、 削除、 ガーべジコクシヨ ン、 及びガーベジ コクシヨン後の新たな 2チャンネルの同時記録の方法を説明する図 であり、 ( a ) は最初の 2チャンネル同時記録、 ( b ) は C h 2の削
除、 ( c ) は C h 1のガーべジコクシヨン、 ( d ) は該ガーべジコク シヨン後の C h 3、 4の 2チャンネル同時記録の方法を示す図であ る。
図 3 5は、 本発明におけるランド · グループ方式の記録媒体に対 する記録、 再生、 及び削除方法の原理を説明するフローチャートで ある。
図 3 6は、 Z C A V方式の回転制御方式のディスクのゾーン分割 の構成及び転送レートを平均化するゾーン対の構成方法を示す図で ある。
図 3 7は、 図 3 6のディスクに対する 2チャンネルの同時記録に 係わる処理の方法を示す図であり、 ( a) は C h i、 2の同時記録、 C h 2の削除、 ( b) は C h 1のガ一ベジコクシヨン、 ( c ) は該ガ 一べジコクシヨン後の C h 3 、 4の同時記録を示す図である。 図 3 8は、 内周と外周の転送速度を平均化してデータ記録を行う処理 手順を示すフローチャートである。
図 3 9は、 ディスクの空きゾーンを選択するアルゴリズムを説明 するフローチャート (その 1 ) である。
図 4 0は、 ディスクの空きゾーンを選択するアルゴリズムを説明 するフローチャート (その 2 ) である。
図 4 1 は、 ス トリームを管理するテーブルの構成例を示す図であ る。
図 4 2は、 ディスクの空きゾーンを管理するテーブルの構成例を 示す図である。
図 4 3は、 図 3 6のディスクの各ゾーンの構成を示す図である。 図 4 4は、 図 3 9及び図 4 0のフローチャー トの処理におけるス
トリ一ム管理テーブル及び空きゾーン管理テーブルの格納リス トの 状態遷移を示す図である。
図 4 5は、 図 4 3のゾーン構成のディスクの初期状態を示す図で ある。
図 4 6は、 図 4 3のゾーン構成のディスクに、 図 3 9及び図 4 0 のフローチャートに示す処理を実行した場合の、 該ディスクのスト リームデータの記録形態の遷移を示す図 (その 1 ) である。
図 4 7は、 図 4 3のゾーン構成のディスクに、 図 3 9及び図 4 0 のフローチャートに示す処理を実行した場合の、 該ディスクのス ト リームデータの記録形態の遷移を示す図 (その 2 ) である。
図 4 8は、 図 4 3のゾーン構成のディスクに、 図 3 9及び図 4 0 のフローチヤ一卜に示す処理を実行した場合の、 該ディスクのス ト リームデ一夕の記録形態の遷移を示す図 (その 3 ) である。
図 4 9は、 図 4 3のゾーン構成のディスクに、 図 3 9及び図 4 0 のフローチャートに示す処理を実行した場合の、 該ディスクのス ト リームデータの記録形態の遷移を示す図 (その 4 ) である。
図 5 0は、 図 4 3のゾ一ン構成のディスクに、 図 3 9及び図 4 0 のフローチャートに示す処理を実行した場合の、 該ディスクのス ト リームデータの記録形態の遷移を示す図 (その 5 ) である。
図 5 1は、 図 4 3のゾーン構成のディスクに、 図 3 9及び図 4 0 のフローチャートに示す処理を実行した場合の、 該ディスクのス ト リームデータの記録形態の遷移を示す図 (その 6 ) である。
図 5 2は、 6つのゾーンに分割された Z C A V方式の回転制御方 式のディスクの各ゾーンのバイ ト数 トラック、 及び転送レートを 示す図である。
図 5 3は、 図 5 2に示すゾーン構成のディスクに、 アクセス時間 及びチャンネル数を考慮しないで 2チャンネルの同時記録を行う方 法を説明する図であり、 ( a ) はゾーン 1 とゾーン 2 に分散 · 記録 する例、 ( b ) はゾーン 1のみに分散 · 記録する例、 ( c ) はゾーン 2 とゾーン 6に分散 · 記録する例である。
図 5 4は、 図 5 2に示すゾーン構成のディスクに、 アクセス時間 を考慮しないで 2チャンネルの同時記録を行う方法を説明する図で あり、 ( a ) はゾーン 2 とゾーン 3に分散 · 記録する例、 ( b) はゾ ーン 1 のみに分散 · 記録する例、 ( c ) はゾーン 5 とゾーン 6に分 散 · 記録する例である。
図 5 5は、 図 5 2に示すゾーン構成のディスクに、 アクセス時間 及びチャンネル数を考慮して、 2チャンネルの同時記録を行う方法 を説明する図であり、 ( a ) はゾーン 2 とゾーン 3に分散 ' 記録す る例、 ( b ) はゾーン 1 とゾーン 2に分散 · 記録する例、 ( c ) はゾ ーン 5 とゾーン 6に分散 · 記録する例である。
図 5 6は、 総合要求性能に対して総合保持性能が優るように複数 ゾーンを選択して複数チャンネルの同時記録を行うアルゴリズムを 示すフローチャート (その 1 ) である。
図 5 7は、 総合要求性能に対して総合保持性能が優るように複数 ゾーンを選択して複数チヤンネルの同時記録を行うアルゴリズムを 示すフローチャート (その 2 ) である。
図 5 8は、 総合要求性能に対して総合保持性能が優るように複数 ゾーンを選択して複数チヤンネルの同時記録を行うアルゴリズムを 示すフローチャート (その 3 ) である。
図 5 9は、 総合要求性能に対して総合保持性能が優るように複数
ゾーンを選択して複数チヤンネルの同時記録を行うアルゴリズムを 示すフローチャート (その 4 ) である。
図 6 0は、 Z C L Vの回転制御方式のディスクに複数チャンネル のデータを同時記録するアルゴリズムを示すフローチャートである, 発明を実施するための最良の実施形態
図 1 1は、 本発明のアクセス制御装置の原理図である。
本発明の第 1の原理によれば、 アクセス制御装置は、 スケジュ一 リング手段 4 1および制御手段 4 2を備え、 記録媒体への複数のァ クセス要求を処理する。
スケジューリング手段 4 1は、 データの転送レー卜の変化に応じ てアクセス処理の終了期限を決定し、 終了期限の早い順に複数のァ クセス要求の実行スケジュールを設定する。 制御手段 4 2は、 実行 スケジュールに従ってそれらのアクセス要求の実行を制御する。
例えば、 同期転送の場合、 デ一夕の転送レートは挿入されるダミ 一 · パケッ トの割合に応じて刻々と変化する。 スケジューリング手 段 4 1 は、 その時々の転送レートに応じて動的に書き込み 読み出 し処理の終了期限を決定し、 終了期限の早い順に書き込み Z読み出 し処理を実行するようなスケジュールを設定する。 そして、 制御手 段 4 2は、 設定されたスケジュールに従って、 それらの書き込み Z 読み出し処理の実行を制御する。
このようなアクセス制御装置によれば、 実際の転送レー卜に従つ て終了期限が決定され、 それに基づいて柔軟なスケジューリングが 行われる。 このため、 統計多重化された可変レートの映像データを リアルタイムで記録 Z再生する場合でも、 各チャネルの転送レート
に合わせたスケジューリングが行われ、 より多数のチャネルの記録 ノ再生が可能になる。
また、 本発明の第 2の原理によれば、 アクセス制御装置は、 制御 手段 4 2および決定手段 4 3を備え、 ディスク型記録媒体への複数 のアクセス要求を処理する。
決定手段 4 3は、 記録媒体へデータを書き込む複数の書き込み要 求に対して、 それらの書き込み要求に対応する複数の書き込み位置 が互いに近接するように、 書き込み領域を決定する。 制御手段 4 2 は、 各書き込み要求の書き込みデータを上記書き込み領域にシーケ ンシャルに書き込む制御を行う。
決定手段 4 3は、 互いに近接する複数の書き込み位置を含む書き 込み領域を決定し、 制御手段 4 2は、 各書き込み要求の書き込みデ 一夕を、 その書き込み領域内の複数の書き込み位置にシーケンシャ ルに書き込む制御を行う。 これらの書き込み位置は、 例えば、 ディ スク型記録媒体上に設けられたゾーン内の連続ァドレスに対応する。
このようなアクセス制御装置によれば、 複数チャネルの映像デー 夕の同時書き込みが要求された場合でも、 それらのチャネルのデー 夕がまとめてシーケンシャルに書き込まれ、 書き込みの際のシーク 待ちや回転待ちが大幅に削減される。 これにより、 処理が効率化さ れ、 より多数のチャネルの記録 Z再生が可能になる。 例えば、 図 1 1のスケジューリング手段 4 1および決定手段 4 3は、 後述する 図 1 2の M P U (マイクロプロセッサユニッ ト) 6 1 に対応し、 制 御手段 4 2は、 M P U 6 1 、 L S I 6 2、 ドライバ回路 6 3、 およ びバッファメモリ 6 4に対応する。
以下、 図面を参照しながら、 本発明の実施の形態を詳細に説明す
る。
本発明においては、 受け取った転送バケツ 卜からダミー · パケッ トを省き、 有効なデータを一定のプロック単位でバッファメモリに 一時蓄積する。 このとき、 ダミー ' パケッ トが多いほど、 有効なデ 一夕を蓄積するために多くの時間がかかることになる。 そして、 各 チャネルの蓄積時間に対応して終了期限を随時設定し、 その終了期 限に従ってスケジューリングを行う。
このように、 実際の転送レートに依存する蓄積時間に応じて終了 期限を柔軟に設定することで、 スケジューリングの時間制約が穏ゃ かになり、 より多数のチャネル、 またはより高速なチャネルを処理 できるようになる。
また、 より厳しい条件 (特に、 より多数のチャネル、 またはより 高速なチャネル) で書き込みが同時に起こる場合、 より転送能力の あるディスクの外周ゾーンをアクセスポイントとして、 データを集 中的に (時系列で連続的に) 書き込むようにスケジューリングする。 これにより、転送レートとシーク待ちの両方の時間制約が軽減され、 より多数のチャネルまたはより高速なチャネルを処理できるように なる。
図 1 2は、 本発明の実施形態のアクセス制御装置を含むス トレ一 ジシステムの構成図である。 図 1 2のス トレ一ジシステムは、 ス ト レ一ジデバイス 5 1 、 S T B 5 2、 およびデジタル T V 5 3を備え、 これらの各装置は I E E E 1 3 9 4回線 5 4により互いに接続され ている。 S T B 5 2は、 例えば、 外部のネッ トワークから M P E G の映像データを受信し、 それを同期転送によりス トレージデバイス 5 1 に転送する。 そして、 デジタル T V 5 3は、 ス トレージデバイ
ス 2 5に格納された映像データを読み出して、 画面に表示する。 ス トレージデバイス 5 1 において、 ディスクアクセスの制御を行 う回路は、 ディスクアクセス制御用 MP U 6 1 (マイクロプロセッ サユニッ ト)、 I E E E 1 3 9 4 L S I 6 2 , ディスク ドライノ 6 3、 およびバッファメモリ 6 4を含み、 これらの各装置はバス 6 5 により互いに接続されている。
L S I 6 2は、 回線 6 4とス トレ一ジデバイス 5 1の間の通信ィ ンタフエースとして動作する。 ノ'ッファメモリ 6 4は、 例えば、 6 4キロバイ ト (KB) の容量を有する 1 6個の単位ブロックから構 成され、 回線 6 4を介して送られてきた映像データまたは回線 5 4 へ送り出す映像データを一時的に蓄積する。
M P U 6 1は、 回線 5 4から入力される R e a d ZW r i t e命 令を受け、 ディスクスケジューリ ングのアルゴリズムに従って、 デ イスク 6 6のアクセス実行順序と読み出し Z書き込み場所を決定す る。 そして、 その順序に従って、 ディスク 6 6を搭載したディスク ドライブ (不図示) に、 ドライバ回路 6 3を介してアクセスする。 図 1 3は、 MP U 6 1 によるディスクスケジューリ ングの原理を 説明するフローチャー トである。 MP U 6 1 は、 まず、 複数チヤネ ルの R e a dZW r i t eのリアルタイム命令に従って、 ノ ッファ メモリ 6 4の、一定容量の単位プロックにデータを一時蓄積する(ス テツプ S 1 )。 単位ブロックのサイズは、 通常、 ディ スクの トラッ クサイズに対応して決められ、 6 4 KB程度に設定される。
次に、 ノ ッファメモリ 6 4の単位プロックにデータを一時蓄積す るのに要した時間に応じて、 各チャネルの終了期限を決定する (ス テツプ S 2 )。 書き込みデータの一時蓄積の際には、 受け取った転
送バケツ トのうち、 デ一夕 . ブロック · バケツ トのデ一夕のみを蓄 積し、 ダミー · パケッ トは廃棄する。 このため、 ダミー ' パケッ ト の出現頻度に応じて処理時間が異なり、 転送レートは可変になる。 次に、 複数チャネルの中の最大転送レートに対応する周期毎に、 S C A N— E D Fに基づいてスケジューリ ングを行う (ステップ S 3 )。
最大転送レートは、 ダミー · バケツ トなしでデ一夕 · ブロック · パケッ トを連続転送した場合のレートに相当し、 このとき、 単位ブ ロック当たりのデ一夕転送時間は最短となる。 ここで、 すべてのチ ャネルが最大転送レートでデータを転送する場合を考えると、 最短 のデータ転送時間毎に新たな終了期限が決定されることになる。 そ こで、 このような場合のスケジューリングミスを防ぐため、 単位ブ ロック当たりの最短のデ一夕転送時間を周期として、 定期的にスケ ジュ一リ ングを行う。
ここでは、 S C A N _ E D Fのアルゴリズムに基づいて、 終了期 限が迫っている処理を優先的にスケジューリングする。 また、 同じ 終了期限の処理が複数ある場合には、 シーク距離が短いチャネルを 優先する。 このように、 スッテプ S 2で決めた終了期限を S C AN _ E D Fに適用することで、 実際の処理状況に合わせて時間制約が より穏やかになる。
図 1 4は、 このようなディスクスケジューリングの例を示してい る。 ここでは、 4つのチャネル C h i、 C h 2、 C h 3、 および C h 4のうち、 C h l、 C h 2、 および C h 3の 3つのチャネルでは W r i t e処理が行われ、 C h 4では R e a d処理が行われている。 バケツ 卜 Wは、 書き込みデータを含むデータ · ブロック · バケツ
トを表し、パケッ 卜 Rは、読み出しデータを含むデータ 'ブロック · パケッ トを表し、 パケッ ト Dは、 ダミー · パケッ トを表す。 また、 ノ'ッファメモリ 6 4内では、 各チャネルにそれぞれ 3つの単位ブロ ック 6 4 aが割り当てられている。
W r i t e処理においては、 ダミー · パケッ ト Dを除く有効パケ ッ ト Wのデータが、 ノ ッファメモリ 6 4の 1つの単位ブロック 6 4 aに一時蓄積される。 このとき、 単位ブロック分のデータをバッフ ァメモリ 6 4に書き込むのに要した時間により、 各チャネルの終了 期限が設定される。
そして、 「最大転送レ一卜」、 「終了期限情報」、 および 「有効パケ ッ トとダミー · パケッ トの種別を時系列的に示したバイナリデー 夕」 が、 「有効デ一夕」 と共にディスク 6 6に記録される。 これら のデータは、 ノ'ッファメモリ 6 4を介して、 図 1 5に示すようなフ ォ一マッ トでディスク 6 6に記録される。 最大転送レートは、 例え ば、 1パケッ ト当たりの有効デ一夕のバイ ト数で表される。
また、 終了期限情報としては、 例えば、 単位ブロック分のデータ の一時蓄積に要した時間を記録してもよく、 その間に受け取った有 効パケッ 卜とダミー · バケツ 卜の数の合計を記録してもよい。 図 1 5では、 後者の終了期限情報が用いられている。 また、 図 1 5のバ イナリデ一夕としては、 有効バケツ トを論理 " 1 "で表し、 ダミー ' バケツ トを論理 " 0 " で表したバイナリシーケンスが用いられてい る。
これらの終了期限情報とバイナリデータは、 有効デ一夕の R e a d処理において利用される。 このとき、 記録されている終了期限情 報を利用して R e a d処理の終了期限が決定されるとともに、 対応
するバイナリデータに従ってダミ一 ' バケツ トが揷入される。
これにより、 TV 5 3のようなディスク 6 6に対するデ一夕の R e a d処理を要求した受け取り側においても、 S T B 5 2から直接 映像データを受け取る場合と同様のシーケンスで、 L S I 5 2を介 して同期転送パケッ トを受け取ることができる。 したがって、 受け 取り側のバッファメモリ を必要以上に増やすことなく、 リアルタイ ムの同期転送が可能になる。
あるいは、 受け取り側で非同期 (Asynchronous) 転送が可能であ れば、 ダミー · パケッ トを挿入せずに有効パケッ トのみを送出して もよい。 この場合、 転送データは既にディスク 6 6に格納されてい るので、 受け取り側のペースで転送保証を行いながら、 I E E E 1 3 9 4のもう 1つの転送モー ドである非同期転送により R EAD処 理を実行することができる。
ところで、 図 4に示した トランスポー ト ' バケツ ト 3は 1 9 2バ イ トの有効データを含んでおり、 ノ ッファメモリ 6 4の単位ブロッ クサイズとしてディスク トラック レベルの 6 4 K B程度を採用した 場合、 約 3 4 0個のパケッ ト 3に相当するデ一夕がバッファメモリ 6 4の単位ブロックに蓄積される。 したがって、 パケッ ト 3から 2 つのデ一夕 . ブロック · バケツ ト 4を生成した場合、 約 6 8 0個の データ · ブロック · パケッ ト 4がー時蓄積されるのに要する時間か ら終了期限が決定される。
図 1 4のスケジューリ ングの例では、 説明を簡単にするため、 バ ッファメモリ 6 4の単位ブロック 6 4 aの容量を有効バケツ ト 4個 分とし、 4つの有効パケッ トが蓄積されるのに要した時間から終了 期限が決定されるものとしている。 ここで、 # 1〜 # 1 0の各矢印
は、 4つの有効パケッ トに対応する R e a d ZW r i t e処理を表 し、 矢印の番号は、 スケジューリングされた処理の実行順序を表す。 また、 矢印の元は終了期限の決定タイミングを表し、 矢印の先は決 定された終了期限を表す。 このスケジューリングの概要は、 次のよ うになる。
# 1 : C h 4で 4パケッ ト分の有効データがディスク 6 6から読 み出され、 バッファメモリ 6 4に一時蓄積される。 このとき、 図 1 5に示した他の情報も有効データと共に蓄積される。
# 2 : 読みだした終了期限情報に従って R e a d処理の終了期限 が決定され、 読みだしたバイナリデ一夕 " 1 0 1 0 1 0 1 " に従つ て、 蓄積された有効データがバッファメモリ 6 4から同期転送で送 り出される。 このとき、 バイナリデータの論理 " 1 " に対応して有 効パケッ ト Rが送り出され、 論理 "0 " に対応してダミー · バケツ 卜 Dが送り出される。 それと同 時に、 次の 4パケッ ト分の 有効データがディスク 6 6から読み出され、 バッファメモ リ 6 4に一時蓄積される。
# 3 : # 2の処理の間に、 まず、 C h i と C h 3で、 4つの有効 バケツ ト Wのデータのバッファメモリ 6 4への一時蓄積が完了し、 その一時蓄積時間から終了期限が決定される。 このとき、 図 1 5に 示した他の情報も有効デ一夕と共に蓄積される。
ここでは、 C h i と C h 3で、 共に、 4つの有効パケッ ト Wが連 続して送られてきたため、 それらのバイナリデ一タは共に " 1 1 1 1 " となる。 また、 終了期限は上記 4有効パケッ ト分の転送時間に 基づいて決められるため、 C h 1 と C h 3の終了期限は同じ時刻と
なる。 そこで、 現在のディスクヘッ ドの位置 H 0が参照され、 その 位置により近い (シーク距離がより短い) ア ドレスポイントを持つ
C h 1の W r i t e処理が優先的にスケジューリングされる。
# 4 : 次に、 C h i と同じ終了期限を持つ C h 3の W r i t e処 理がスケジューリングされる。
# 5 : 次に、 C h 2で 4つの有効バケツ ト Wのデータの一時蓄積 が完了し、 終了期限が決定される。 ここでは、 4つの有効パケッ ト Wの間に 2つのダミー · パケッ ト Dが送られてきたため、 バイナリ データは " 1 0 1 1 0 1 " となり、 終了期限は 6バケツ ト分の転送 時間に基づいて決定される。
以下同様にして、 各チャネルの R e a d ZW r i t e処理が終了 期限の早い順にスケジューリングされる。 この結果、 # 6は C h 3 、 # 7は C h 4、 # 8は C h i 、 # 9は C h 3 、 # 1 0は C h 2 とな る。 このように、 処理の実行順序は、 バッファメモリ 6 4への一時蓄 積の終了順ではなく、 一時蓄積に要した時間から決定された終了期 限の早い順に設定される。 したがって、 複数の W r i t e処理をス ケジユ ーリ ングする際、 必ずしも一時蓄積が終了した順にディスク 6 6がアクセスされるとは限らない。
また、 図 1 4の例では、 各チャネル毎に単位ブロック 3個分のバ ッファ領域 6 4 aを持ち、 終了期限の変動に応じて、 ディスク 6 6 との間の転送に 2ブロック分を利用し、 L S I 6 2 との間の転送に 1ブロック分を利用している。 このように、 ノ ッファメモリ 6 4の 容量は限られているため、 終了期限にも上限を設けておく必要があ
る。
この例では、 一時蓄積に要する時間は 4〜 8バケツ 卜の転送時間 の範囲である。 そこで、 最も長い 8パケッ トの転送時間に基づいて 終了期限が設定された直後に、 最大転送レー卜でデータがバッファ メモリ 6 4に入力された場合を考えてみる。 この場合、 既に蓄積さ れている 1ブロック分のデ一夕がディスク 6 6に書き込まれる間に 2ブロック分のデ一夕がバッファメモリ 6 4に蓄積されることにな る。 したがって、 各チャネル毎に少なく とも 3ブロック分のバッフ ァ領域が必要であり、 終了期限は 8バケツ 卜の転送時間内に設定さ れる必要がある。
言い換えれば、 終了期限の上限は、 バッファメモリ 6 4の利用可 能な領域に最大転送レートで有効データを蓄積するのに要する蓄積 時間により決定される。 ここでは、 この蓄積時間は、 最大転送レー 卜の半分の転送レートの場合の単位ブロック当たりの一時蓄積時間 ( 8パケッ トの転送時間) に一致しており、 転送レートはそれより 小さくならないものと仮定している。
また、 終了期限情報として有効バケツ トおよびダミー · パケッ 卜 の数の合計を用いた場合、 これを時間または時刻へ変換することは 容易である。 ここでは、 終了期限情報の範囲は 4 一 8パケッ トであ り、 I E E E 1 3 9 4における 1パケッ トの転送時間は 1 2 5 s である。 したがって、 4〜 8パケッ トを転送時間に換算すると、 5 0 0 M S 〜 l m s となり、 終了期限は、 開始時刻から 5 0 0 S 〜 1 m s経過した時刻となる。 開始時刻としては、 ノ ッファメモリ 6 4への一時蓄積が完了した時刻が用いられる。
次に、 図 1 6は、 同期転送パケッ トにダミー · パケッ トが含まれ
ない場合のディスクスケジューリングの例を示している。 この場合 は、 ダミー · パケッ トがないため、 各チャネルの処理の開始時刻お よび転送レ一卜が同じであれば、 それらの処理の終了期限は同じに なる。 そこで、 S C AN— ED Fのアルゴリズムに基づき、 終了期 限が同じ 2つ以上の処理については、 シーク方向が同じでシーク距 離の短い順に実行順序が設定される。
図 1 6の例では、 C h 4の 2回の R e a d処理 (# 1および # 2 ) から始まって、 C h 2の W r i t e処理 (# 3 ) に移り、 シーク方 向を変えて C h 4 (# 4 )、 C h 3 (# 5 )、 C h i ( # 6 ) の順に 処理されるようなスケジュールが設定される。 その後、 # 7は(3 11 1、 # 8は C h 3、 # 9は C h 4、 # 1 0ぉょび# 1 1 は〇 11 2、 # 1 2は C h 4、 # 1 3は C h 3、 # 1 4は C h i となる。
次に、 図 1 7から図 2 2までを参照しながら、 M P U 5 1による スケジューリング処理について詳細に説明する。 M P U 5 1は、 実 行予定の各チャネルの処理を登録したスケジュールテーブル (不図 示) を保持しており、 このテーブルを用いてディスクアクセスのス ケジュ一リングを行う。
図 1 7は、 Nチャネルを対象に 2 N個 (各チャネル当たり 2個) の処理命令を受け付ける場合のスケジュールテーブルを示している < 図 1 7のスケジュールテーブル 7 0の各要素 O r d e r ( I ) ( I = 1, 2,..., 2 N) は、 終了期限 T、 R e a d ZW r i t e処理 の識別情報 R/W、 チャネル番号 C、 およびディスク 6 6上のプロ ックア ドレス Aを含み、 実行予定の 1つの R e a d ZW r i t e処 理を表している。 同図は、 スケジュールテーブル 7 0に m個の要素 が登録された状態を示しており、 それらの m個の要素は終了期限 T
の早い順に並べられている。
また、 O r d e r ( 1 ) に含まれる各デ一夕の添え字 i は、 対応 する処理の対象となるチャネルの番号を表し、 C i = i である。 O r d e r (m— 1 )、 O r d e r (m) に含まれる各デ一夕の添え 字:! 、 kについても同様である。 また、 W i は W r i t e処理を、 R j , R kは R e a d処理を示す。
図 1 8は、 W r i t e処理のスケジユ ーリングおよび実行のフ口 —チャートである。 同図のフローチャートで使用されている変数 m は、 スケジュールテーブル 7 0 に登録されている要素〇 r d e r ( I ) の個数を示す。
M P U 5 1 は、 まず、 いずれかのチャネル kで単位ブロック分の 書き込みデ一夕がバッファメモリ 6 4に一時蓄積されたかどうかを 判定する (ステップ S 1 1 )。 一時蓄積が終了していなければステ ップ S 1 1の判定を繰り返す。
チャネル kで一時蓄積が終了すると、 次に、 その一時蓄積に要し た時間に従ってチャネル kの W r i t e処理の終了期限 Tk を算出 する (ステップ S 1 2 )。 一時蓄積時間は、 チャネル kの転送レー トによって異なるため、 終了期限 Tkもそれによつて異なってくる。 チャネル kの転送レートは、 ダミー · バケツ 卜の割合によつて変 化するが、 単位ブロック 2個分のデータを転送する間には大きく変 化しないと考えられる。 したがって、 次の単位ブロック分のデータ の一時蓄積時間も同じ程度であり、 既に蓄積されたデータをこの時 間内にディスク 6 6に書き込めばよいことになる。 そこで、 例えば、 タイマから取得した現時刻に一時蓄積時間を加算して、 終了期限 T k を算出する。
次に、 未処理の m個の W r i t e処理を終了期限の早い順に並べ たスケジュールテーブル 7 0の最下位に、 チャネル kの W r i t e 処理を登録する (ステップ S 1 3 )。 すなわち、 変数 mの値を " 1 " インク リ メントした後、 O r d e r (m) に Tk を登録する。 この とき、 O r d e r (m) には、 同時に、 Wk 、 Ck 、 および Ak も 登録される。
次に、 登録された O r d e r (m) を含めて、 m個の要素の終了 期限 Tを比較し、 早い順に要素を並べ替えて (ステップ S 1 4 )、 ステップ S 1 1 に戻り、 ステップ S 1 1以降の処理を繰り返す。 ス テツプ S 1 1〜ステップ S 1 4の処理は、 あるチャンネルの単位ブ ロックのデ一夕がバッファメモリ 6 4に蓄積される毎に、 スケジュ ールテーブル 7 0に新たな要素を追加して、 スケジュールテーブル 7 0に登録された要素を終了期限の早いものから順に、 ソートする 処理である。 これにより、 スケジュールテーブル 7 0には、 常に、 終了期限の早いものから順に、 要素 O r d e r ( 1 )、 O r d e r ( 2 )、... が登録される。
ステップ S 1 ;!〜 S 1 4の処理と並行して、 ステップ S 1 5〜ス テツプ S 1 7のループ処理が、 M P U 5 1 により実行される。
このループ処理において、 まず、 m= 0かどうかを判定する (ス テツプ S 1 5 )。 この判定は、 スケジュールテーブル 7 0に要素〇 r d e r ( I ) が登録されているか判断する処理である。
m = 0でなければ、 未処理の W r i t e処理が残っていると判断 し、 スケジュールテーブル 7 0を参照して、 その先頭要素 O r d e r ( 1 ) に登録された W r i t e処理の実行を ドライバ回路 6 3に 指示する (ステップ S 1 6 )。 これによ り、 ドライバ回路 6 3は、
ノ ッファメモリ 6 4に蓄積された〇 r d e r ( 1 ) に登録されたチ ャネル i のデ一タを、 ディスク 6 6上のァドレス A i の位置に書き 込む。
次に、 MP U 6 1は、 スケジュールテーブル 7 0において、 登録 されている O r d e r ( 2 ) 以下の要素の番号を 1つずつ繰り上げ る (ステップ S 1 7 )。 ここでは、 1 = 2 , 3, ..., mについて、 O r d e r ( 1 — 1 ) = O r d e r ( I ) の置き換えを実行し、 変 数 mの値を " 1 " デクリメントする。 そして、 ステップ S 1 5以降 の処理を繰り返す。
ステップ S 1 5において m= 0であれば、 W r i t e処理はすべ て終了していると判断し、 ステップ S 1 1 に移行する。
また、 図 1 9は、 R e a d処理のスケジューリングおよび実行を 説明するフローチャートである。 各チャネルではバッファメモリ 6 4の単位ブロック 2個分のデ一夕がドライバ回路 6 3によりデイス ク 6 6から先読みされ、 バッファメモリ 6 4に一時蓄積される (ス テツプ S 2 1 )。 今、 チャネル kで最初のブロックのデータがバッ ファメモリ 6 4から L S I 6 2へ転送中であり、 次のブロックのデ —タは先読みが終了したとする。
この時、 M P U 6 1は、 まず、 いずれかのチャネルで単位ブロッ ク分の読み出しデータがバッファメモリ 6 4から送り出されたかど うかを判定する (ステップ S 2 2 )。 送り出しが終了していなけれ ばステップ S 2 2の判定を繰り返す。
そして、 ステップ S 2 2で、 チャネル kのデ一夕の送り出しが終 了したと判定すると、 既に、 先読みされているチャネル kの次のブ ロックのデータの終了期限情報に従って、 チャネル kの R e a d処
理の終了期限 Tk を算出する (ステップ S 2 3 )。
ディスク 6 6から読み出されたバイナリデータに従って読み出し デ一夕を転送する場合、 転送時間は、 書き込み時のバッファメモリ 6 4での一時蓄積時間を表す終了期限情報によって決まってくる。 そこで、 例えば、 夕イマから取得した現時刻に終了期限情報に対応 する時間を加算して、 終了期限 Tk を算出する。 ドライバ回路 6 3 は、 この終了期限 Tk までに、 次の単位ブロック分のデータをディ スク 6 6から先読みすればよい。
次に、 図 1 8のステップ S 1 3 と同様にして、 未処理の m個の R e a d処理を含むスケジュールテーブル 7 0の最下位に、 チャネル kの R e a d処理を登録する (ステップ S 2 4 )。 そして、 図 8の ステップ S 1 4と同様にして、 m個の要素を終了期限の早い順に並 ベ替えて (ステップ S 2 5 )、 ステップ S 2 2〜 S 2 5の処理を繰 り返す。
MP U 6 1は、ステップ S 2 2〜 S 2 5のループ処理と並行して、 ステップ S 2 6〜 S 2 8のループ処理を実行する。
すなわち、 まず、 m = 0かどうかを判定する (ステップ S 2 6 )。 m = 0でなければ、未処理の R e a d処理が残っていると判断し、 スケジュールテーブル 7 0を参照して、 先頭要素〇 r d e r ( 1 ) に登録された R e a d処理の実行を ドライバ回路 6 3 に指示する (ステップ S 2 7 )。 そして、 ドライバ回路 6 3は、 ディスク 6 6 上のアドレス A i の位置からチャネル i のデ一夕を読み出し、 バッ ファメモリ 6 4に格納する。
次に、 MP U 6 1は、 図 1 8のステップ S 1 7 と同様にして、 ス ケジュールテーブル 7 0において O r d e r ( 2 ) 以下の要素の番
号を 1つずつ繰り上げ (ステップ S 2 8 )、 再び、 ステップ S 2 6 以降の処理を繰り返す。 そして、 ステップ S 2 6において m= 0で あれば、 R e a d処理はすべて終了していると判断し、 ステップ S 2 2に移行する。
また、 W r i t e処理と R e a d処理が混在する場合は、 図 2 0 に示すような処理が行われる。 M P U 3 1は、 まず、 いずれかのチ ャネルでバッファメモリ 6 4へのアクセスが終了したかどうかを判 定する (ステップ S 3 1 )。 アクセスが終了していなければステツ プ S 3 1の判定を繰り返す。
そして、 ステップ S 3 1 において、 チャネル kのバッファメモリ 6 4へのアクセスが終了したと判定すると、 次に、 終了したァクセ スの種類が W r i t e処理に伴う一時蓄積と R e a d処理に伴う送 り出しのいずれであるかを判定する (ステップ S 3 2 )。 アクセス がー時蓄積であれば、 図 1 8のステップ S 1 2 と同様にして、 一時 蓄積時間から終了期限 Tk を算出する (ステップ S 3 3 )。 一方、 アクセスが送り出しであれば、 図 1 9のステップ S 2 3 と同様にし て、 次のブロックのデ一夕の終了期限情報から終了期限 Tk を算出 する (ステップ S 3 4 )。 次に、 図 1 8のステップ S 1 3 と同様 にして、 スケジュールテーブル 7 0の最下位にチャネル kの処理を 登録する (ステップ S 3 5 )。 このとき、 W r i t e処理の場合は Wk が登録され、 R e a d処理の場合は Rk が登録される。
次に、 図 1 8のステップ S 1 4と同様にして、 スケジュールテー ブル 7 0の要素を並べ替え (ステップ S 3 6 )、 ステップ S 3 1〜 S 3 6のループ処理を繰り また、 上記ループ処理と並行して、 ス テツプ S 3 7〜 S 4 1のループ処理を実行する。 すなわち、 まず、
m = 0かどうかを判定する (ステップ S 3 7 )。
m= 0でなければ、 スケジュールテーブル 7 0を参照して、 先頭 要素 O r d e r ( 1 ) に登録された処理の種類をチェックする (ス テツプ S 3 8 )。 そして、 「 W」 が登録されていれば、 W r i t e処 理の実行をドライバ回路 6 3に指示し (ステップ S 3 9 )、 「R」 が 登録されていれば、 R e a d処理の実行をドライバ回路 6 3に指示 する (ステップ S 4 0 )。
次に、 図 1 8のステップ S 1 7 と同様にして、 スケジュールテー ブル 7 0において O r d e r ( 2 ) 以下の要素の番号を 1つずつ繰 り上げ (ステップ S 4 1 )、 ステップ S 3 7に戻る。 そして、 ステ ップ S 3 7において m= 0であれば、 R e a d /W r i t e処理は すべて終了していると判断し、 ステップ S 3 1 に移行する。
ところで、 図 1 8のステップ S 1 4、 図 1 9のステップ S 2 5、 および図 2 0のステップ S 3 6においてスケジュールテ一ブル 7 0 の要素を並べ替える場合、 終了期限 Tの比較方法に応じていくつか のアルゴリズムが考えられる。
例えば、 図 1 7において新たに登録された要素を 1つ上の順位の 要素と比較するアルゴリズムは、 図 2 1のようになる。 このアルゴ リズムでは、 MP U 6 1は、まず、新たに登録された O r d e r (m) の終了期限 Tk (m) を O r d e r (m— 1 ) の終了期限 Tj (m — 1 ) と比較し、 Tk (m) >T j (m- 1 ) であれば、 並べ替え を終了する。
また、 Tk (m) = T j (m— 1 ) であれば、 現在のヘッ ドのブ ロックア ドレス Ah、 O r d e r (m) のブロックアドレス Ak (m)、 および O r d e r (m— 1 ) のブロックアドレス A j (m - 1 ) の
関係をチェックする。 そして、 Ak (m) — Ah > A j (m_ l ) — Ah であれば、 O r d e r (m) の方が O r d e r (m - 1 ) よ りもヘッ ドのシーク時間が長くなると判断して、 並べ替えを終了す る。
{ Tk (m) = T j (m - 1 ) かつ Ak (m) - Ah ≤A j (m — 1 ) — Ah }、 または Tk (m) < T j (m— 1 ) であれば、 〇 r d e r (m) と O r d e r (m— 1 ) を入れ替える。 そして、 m の値を " 1 " デクリメントして、 同様の処理を繰り返す。
多くの場合、 新たに登録された処理の終了期限は既に登録されて いる処理のそれよりも遅いことが期待できるので、 このようなアル ゴリズムによれば、 並べ替え処理の時間が最小限に押さえられる。 また、 図 1 7において新たに登録された要素を、 二分探索手法を 用いてスケジュールテーブル 7 0に登録するアルゴリズムは、 図 2 2のようになる。 このアルゴリズムでは、 M P U 6 1 は、 まず、 〇 r d e r (m) の終了期限 Tk (m) を O r d e r (m/ 2 ) の終 了期限 T j (m/ 2 ) と比較する。
そして、 Tk (m) > T j (mZ 2 ) であれば、 次に、 O r d e r (mZ 2 ) と O r d e r ( m) の間のさらに半分の順位の要素 O r d e r ( 3 m/ 4 ) を比較対象とし、 Tk (m) を T j ( 3 m 4 ) と比較する。 一方、 Tk (m) <T j ( / 2 ) であれば、 次 に、 Tk (m) を Tj (m/ 4 ) と比較する。
このような比較処理を繰り返して、 Tk (m) が属する範囲を徐々 に絞り込んでいき、 最後に確定した順位に O r d e r (m) を挿入 する。 これにより、 2のべき乗程度の回数で比較が終了し、 並べ替 えが比較的短時間で終了する。
次に、 図 2 3から図 2 9までを参照しながら、 複数のチャンネル でリアルタイムの書き込み要求が発生した場合に、 ディスク 6 6上 の適切な書き込み領域を割り当てるスケジューリング方法について 説明する。
前述したように、 通常、 ディスク 6 6には 1つ以上のトラックか らなる複数のゾーンが設けられている。 Z C AV方式の場合、 外周 のゾーンの記憶容量は内周のゾーンのそれよりも大きいため、 外周 のゾーンの転送レートは内周のゾーンのそれよりも大きくなる。 そ こで、 このようなゾーンによる転送レートの違いを考慮し、 状況に 応じて書き込み対象のゾーンを動的に変更することにする。
図 2 3は、 リアルタイムの複数の書き込み要求に対して、 W r i t e処理の数に応じてゾーンを決定する処理の第 1の原理を説明す るフローチャートである。 M P U 6 1は、 まず、 複数チャネルの R e a d ZW r i t eのリアルタイム命令に従い、 一定のブロック単 位でデータをバッファメモリ 6 4に一時蓄積する (ステップ S 5 1 )。 上述したように、 単位ブロックのサイズは、 通常、 6 4 K B 程度である。
次に、リアルタイムの W r i t e命令の実行数が増えた場合には、 その実行数に従ってディスク 6 6上の書き込みゾーンをより外周に 変更し (ステップ S 5 2 )、 W r i t e命令の実行数が減った場合 には、その実行数に従って書き込みゾーンをより内周に変更する(ス テツプ S 5 3 )。
この方法では、 W r i t e命令の実行数とゾーンとがあらかじめ 対応付けられており、 同時に実行する W r i t e処理の数に応じて 書き込みゾーンを移動することで、転送レー卜の最適化が図られる。
例えば、 MP U 6 1は、 ステップ S 5 2においては、 書き込みァ ドレスを実行数に対応する、 より外周のゾーンに移動し、 ステップ S 5 3においては、 書き込みアドレスを実行数に対応する、 より内 周のゾーンに移動する。 このように、 W r i t e処理の数が増えた 場合に、 より転送レートの高い外周のゾーンを利用することで、 処 理効率が向上する。
また、 図 2 4は、 リアルタイムの複数の書き込み要求に対して、 W r i t e処理の転送レートに応じてゾーンを決定する処理の第 2 の原理を説明するフローチャートである。 M P U 6 1 は、 まず、 複 数チャネルの R e a d /W r i t eのリアルタイム命令に従い、 一 定のブロック単位でデータをバッファメモリ 6 4に一時蓄積する (ステップ S 6 1 )。
次に、リアルタイムの W r i t e命令の実行数が増えた場合には、 それらの命令の実行レートの合計に従ってディスク 3 6上の書き込 みゾーンをより外周に変更し (ステップ S 6 2 )、 W r i t e命令 の実行数が減った場合には、 それらの命令の実行レートの合計に従 つて書き込みゾーンをより内周に変更する (ステップ S 6 3 )。
この方法では、 複数の W r i t e命令が要求する転送レートの総 和と各ゾーンの転送レートとの関係を考慮してゾーンを移動するこ とで、 図 2 3の方法よりさらに綿密な最適化が図られる。
M P U 6 1 は、 ステップ S 6 2においては、 例えば、 複数の W r i t e命令が要求する転送レートの総和が現在のヘッ ド位置に対応 するゾーンの基準転送レートを上回るならば、 書き込みアドレスを より外周のゾーンに移動する。
また、 ステップ S 6 3においては、 例えば、 転送レートの総和が
0
45 現在のゾーンの基準転送レートを下回り、 かつ、 より内周のゾーン の基準転送レートがその総和を上回るならば、 書き込みァドレスを それより内周のゾーンに移動する。 このように、 複数の W r i t e 命令が要求する転送レートの総和に応じて、 より最適なゾーン領域 に移動することで、 ディスク 6 6を効率的に使用して、 ディスク 6
6へのアクセス効率を向上することができる。
図 2 5は、 ディスク 6 6上の複数のゾーンと各ゾーンの転送レー 卜の例を示している。 ディスク 3 6は、 6つのゾーン Z 1〜 Z 6に 分割され、 ゾーン Z l、 Z 2、 Z 3、 Z 4、 Z 5、 Z 6の容量は、 それぞれ、 1 トラック当たり 9 2 K B (キロバイ ト)、 1 0 0 KB、
1 0 8 K B、 1 1 6 KB , 1 2 4 K B、 1 3 2 K Bである。
ディスク 6 6の回転数を l O O O O r pm ( 6 m s Z回転) とす ると、 ゾーン Z l、 Z 2、 Z 3、 Z 4、 Z 5、 Z 6の転送レートは、 それぞれ、 1 5. 4 MB/ s、 1 6. 8 MB/ s、 1 8. 1 MB/ s 、 1 9. 5 MBZ s、 2 0. 9 MBZ s、 2 2. 3 MBZ s とな る。一般に、最内周のゾーンの転送レートは最外周のゾーンの 6 0 % 程度である。
図 2 6は、 図 2 3のゾーン決定処理に従って、 図 2 5のようなゾ ーンにデータを書き込む処理の例を示している。 まず、 W r i t e 処理のチャネル数が 1 (C h i ) の場合は、 最内周のゾーン Z 1が 選択され、 トラックの方向 (円周方向) に沿って C h i、 C h i , C h i , C h 1、 . · . の順に、 ゾーン Z 1 の連続ア ドレスにデータ が書き込まれる。 また、 チャネル数が 2 (C h i , C h 2 ) の場合 は、 ゾーン Z 2が選択され、 C h l、 C h 2、 C h l、 C h 2、... の順に、 ゾーン Z 2の連続アドレスにデ一夕が書き込まれる。
チャネル数が 3 (C h l〜C h 3 ) の場合は、 ゾーン Z 3が選択 され、 C h l、 C h 2、 C h 3、 ... の順に、 ゾーン Z 3の連続ァ ドレスにデータが書き込まれる。 また、 チャネル数が 4 (C h l〜 C h 4 ) の場合は、 ゾーン Z 4が選択され、 C h l、 C h 2、 C h 3、 C h 4、... の順に、 ゾーン Z 4の連続ア ドレスにデ一夕が書 き込まれる。 チャネル数が 5 (C h l〜C h 5 ) の場合は、 ゾーン
Z 5が選択され、 C h l、 C h 2、 C h 3、 C h 4、 C h 5 の順に、 ゾーン Z 5の連続アドレスにデ一夕が書き込まれる。 また、 チャネル数が 6 (C h l〜C h 6 ) の場合は、 ゾーン Z 6が選択さ れ、 C h l、 C h 2、 C h 3、 C h 4、 C h 5、 C h 6 の順 に、 ゾーン Z 6の連続アドレスにデ一夕が書き込まれる。
また、図 2 4のゾーン決定処理に従ってデータを書き込む場合は、 各ゾーン毎に基準転送レートが設定され、 W r i t e処理の転送レ 一卜の総和をこの基準転送レートと比較して、 書き込みゾーンが決 定される。 各 W r i t e処理の転送レートは、 例えば、 ノ'ッファメ モリ 6 4における単位プロック当たりの一時蓄積時間から計算され る。
基準転送レートとしては、 図 2 5に示した各ゾーンの転送レ一ト 以下の値が用いられる。 こ こでは、 シーク待ち、 回転待ちの時間を 考慮して、 各ゾーンの転送レートの 3 0 %程度の値を用いることに し、 ゾーン Z l、 Z 2、 Z 3、 Z 4、 Z 5、 Z 6の基準転送レート を、 それぞれ、 5. 0 MBZ s、 5. 5 M B / s , 6. 0 MBZ s、 6. 5 MB/ s、 7. 0 MBZ s、 7. 5 MBZ s とする。
まず、 W r i t e処理の転送レートの総和が 5. 0 M B / s以下 の場合は、 最内周のゾーン Z 1が選択され、 図 2 6 と同様にして、
ゾーン Z 1 の連続アドレスにデータが書き込まれる。 また、 転送レ —卜の総和が 5. O MBZ s より大きく 5. 5 MBZ s以下の場合 は、 ゾーン Z 2の連続アドレスにデ一夕が書き込まれる。
転送レートの総和が 5. 5 MBZ sより大きく 6. O MBZ s以 下の場合は、 ゾーン Z 3の連続アドレスにデータが書き込まれ、 そ れが 6. O MBZ sより大きく 6. 5 MBZ s以下の場合は、 ゾー ン Z 4の連続アドレスにデータが書き込まれる。 また、 転送レート の総和が 6. 5 MBZ s より大きく 7. O MBZ s以下の場合は、 ゾーン Z 5の連続アドレスにデータが書き込まれ、 それが 7. 0 M BZ s より大きく 7. 5 MBZ s以下の場合は、 ゾーン Z 6の連続 アドレスにデータが書き込まれる。
このように、 各チャネルのデ一夕は、 ディスク 6 6上の同じゾー ンまたは近接したゾーンに集中して、 かつ、 スケジューリングされ た順序に従ってできる限りシーケンシャルに書き込まれる。 これに より、 ディスク 6 6のシーク待ち、 回転待ち等の時間を短縮するこ とができる。
また、 割り当てられたゾーンが実行時に一杯の場合 (空き領域が ない場合) は、 自動的により外側の隣接するゾーンが選択され、 外 側のゾーンがすべて一杯の場合は、 内側のゾーンが選択される。
図 2 7は、 図 2 3のゾーン決定処理に基づく W r i t e処理のフ 口—チャートである。 ス トレージデバイス 5 1は、 まず、 Nチヤネ ルの同時 W r i t e命令を受け付けてそれらを実行し (ステップ S 7 1 )、 同時 W r i t e処理のチャネル数の増減があるかどうかを チェックする (ステップ S 7 2 )。
チャネル数が増えた塲合は、書き込みゾーンを 1つ外側に移動し、
チャネル数 Nを 1だけインク リメントして (ステップ S 7 3 )、 N チャネルの同時 W r i t e処理をスケジユ ーリングされた順序で実 行する (ステップ S 7 4 )。 このとき、 各チャネルのデータは、 選 択されたゾーンにシーケンシャルに書き込まれ、 ステップ S 7 2以 降の処理が繰り返される。
ステップ S 7 2においてチャネル数が減った場合は、 書き込みゾ —ンを内側に移動し、 チャネル数 Nを 1だけデクリメントして (ス テツプ S 7 5 )、 N = 0 となったかどうかをチェックする (ステツ プ S 7 6 )。 N= 0でなければ、 ステップ S 7 4以降の処理を行う。
また、 ステップ S 7 2においてチャネル数が変化していない場合 は、書き込みゾーンを移動せずにステップ S 7 4以降の処理を行う。 そして、 ステップ S 7 6において N= 0となれば、 同時 W r i t e 処理がすべて終了したと判断し、 処理を終了する。
ところで、 図 2 5に示したような内周と外周の転送レートが異な るディスク 6 6では、 内周ゾーンに集中してデータを書き込むこと が困難である。 この場合、 内周と外周のゾーンを対にして交互にァ クセスすることで、 ディスク全体で転送レートが平均化され、 一定 の転送レートが得られると考えられる。 例えば、 図 1 2の 6つのゾ ーンの平均転送レートは、 1 8. 8 MBZ sである。
図 2 8は、 このような W r i t e処理のフローチャートである。 ス トレ一ジデバイス 5 1は、 まず、 複数チャネルの W r i t eのリ アルタイム命令に従い、 一定のブロック単位でデ一夕をバッファメ モリ 6 4に一時蓄積する (ステップ S 8 1 )。
次に、 ドライバ回路 6 3は、 ゾーン対の片方のゾーンに対して、 複数チャネルの W r i t e命令に対応する実行数分のブロックデ一
夕を連続して書き込み (ステップ S 8 2 )、 ゾーン対の他方のゾー ンにヘッ ドを移動する (シークする) (ステップ S 8 3 )。
次に、 移動先のゾーンに対して、 複数チャネルの W r i t e命令 に対応する実行数分のブロックデータを連続して書き込み (ステツ プ S 8 4 )、 ゾーン対の他方のゾーンにヘッ ドを戻す (ステップ S 8 5 )。
次に、 書き込みデ一夕が終了したかどうかを判定し (ステップ S 8 6 )、 データが終了していなければ、 ステップ S 8 2以降の処理 を繰り返す。 そして、 ステップ S 8 6においてデ一夕が終了すれば、 処理を終了する。
この方法によれば、 ゾーン対となる内周と外周のゾーン間をへッ ドが交互に移動しながら、 各ゾーンにシーケンシャルにデータが書 き込まれる。 言い換えれば、 データはディスク 3 6上の一部分に集 中して書き込まれるのではなく、 ゾーン単位で分散させながら書き 込まれる。 これにより、 ディスク全体で転送レートが平均化される ため、 処理効率が向上する。
図 2 9は、 図 2 8の書き込み処理の例を示している。 W r i t e 処理のチャネル数を 3 (C h l〜C h 3 ) とし、 最内周のゾーン Z 1 と最外周のゾーン Z 6をゾーン対とすると、 まず、 ゾーン Z 1 に おいて、 C h 1、 C h 2、 C h 3 の順に連続ア ドレスにデ一 夕が書き込まれ、 次に、 ゾーン Z 6にシークして、 C h l、 C h 2、 C h 3、... の順に連続ア ドレスにデータが書き込まれる。 この ような動作がデータの書き込みが終了するまで繰り返され、 デイス クへッ ドはゾーン Z 1 とゾーン Z 6の間を往復しながら、 3チヤネ ルのデ一夕の連続書き込みを行う。
以上説明したように、 ディスクアクセスの制御は、 主として、 図 1 2の MP U 6 1により行われる。 MP U 6 1 は、 図 3 0に示すよ うに、 マイクロプロセッサ 7 1 とメモリ 7 2を含む。 メモリ 7 2は、 例えば、 R OM (read only memory)、 RAM andom access memory) 等を含み、 制御に用いられるプログラムとデータを格納する。 マイ クロプロセッサ 7 1は、 メモリ 7 2を利用してプログラムを実行す ることにより、 必要な処理を行う。
バス 7 5に接続された媒体駆動装置 7 3は、 可搬記録媒体 7 4を 駆動し、 その記録内容にアクセスする。 可搬記録媒体 7 4としては、 メモリカード、 フロッピ一ディスク、 C D— R OM (Compact Disk Read Only Memory )、 光ディスク、 光磁気ディスク (Magneto-Optical disk) 等、 任意のコンピュータ読み取り可能な記録媒体が用いられ る。 この可搬記録媒体 7 4に上述のプログラムとデータを格納して おき、 必要に応じて、 それらを M P U 6 1のメモリ 7 2にロードし て使用することもできる。
さらに、 MP U 6 1は、 L S I 6 2を介して、 外部のネッ トヮー クから上述のプログラムとデータを受け取り、 それらをメモリ 7 2 にロードして使用することもできる。
本発明は、 ホームネッ トワークにおける映像 Z音声デ一夕の処理 だけでなく、 データをリアルタイムで処理しなければならないよう な任意の用途に適用することができる。 例えば、 処理対象のデ一夕 をコンピュータシステムへ取り込む場合にも、 同様の制御が可能で ある。 また、 アクセス対象としては、 磁気ディスク、 光ディスク、 光磁気ディスクを始めとして、 メモリ力一ド等も含む任意の記録媒 体を用いることができる。
本発明によれば、 実際の書き込みデータの転送レートに従って終 了期限を決め、 それに基づいてディスクアクセスのスケジユーリン グを行うことで、 多数のチャネルの記録ノ再生が可能になる。 また、 リアルタイムの複数の書き込み要求に対して書き込み領域による転 送レートの違いを利用することで、 処理が効率化され、 さらに多数 のチャネルの記録/再生が可能になる。
図 3 1から図 3 3は、 本発明を、 記録媒体として A S M〇に適用 した実施形態の記録方式を説明する図である。 尚、 本発明は、 A S M〇に限定されるものではなく、 ランド · グループ記録方式を採用 している他の記憶媒体にも適用可能である。
図 3 1から図 3 3では、 理解を容易にするために、 論理ゾーン L Z l、 L Z 2、 L Z 3の 3つの論理ゾーンにデータを記録する例を 示している。
図 3 1 に示すように、 各論理ゾーン L Z 1、 L Z 2、 L Z 3は、 隣接するグループ 1 0 1 とランド 1 0 2を有し、 欠陥セクタに対処 するために、グループ 1 0 1 とランド 1 0 2のそれぞれに後続して、 交替セクタ 1 0 4、 1 0 5が設けられている。
図 3 2は、 1チャンネルのデータを論理ゾーン L Z 1、 L Z 2、 L Z 3にシーケンシャルに記録する方法を説明する図である。
同図 ( a ) は、 論理ゾーン単位で記録する例であり、 論理ゾーン L Z 1 、 L Z 2、 L Z 3の順に、 1〜 6 の順序でデータが記録さ れる。 すなわち、 この場合、 各論理ゾーンにおいて、 グループ 1 0 1、 ランド 1 0 2の順にデータが記録される。
同図 ( b ) は、 グループ 1 0 1のみに記録する例であり、 論理ゾ —ン L Z 1、 L Z 2、 L Z 3の順に、 それぞれのグループ 1 0 1 に、
デ一夕が順に記録される。 同図 ( c ) は、 ランド 1 0 2のみに記録 する例であり、 論理ゾーン L Z 1、 L Z 2、 L Z 3の順に、 それぞ れのランド 1 0 2に、 データが順に記録される。
図 3 3は、 2チャンネルのデータを論理ゾーン L Z 1、 L Z 2、 L Z 3に同時記録する方法を説明する図である。
同図において、 1 — 1〜 1 _ 3 はチャンネル C h i のデ一夕、 2 - 1〜 2 — 3 はチャンネル C h 2のデ一夕を示している。 この 場合、 論理ゾーン L Z 1、 L Z 2、 L Z 3の順に、 グループ 1 0 1 とランド 1 0 2に交互にデ一夕が記録されるが、 チャンネル C h 1 のデータは論理ゾーン L Z 1、 L Z 2、 L Z 3のグループ 1 0 1 に 記録され、 チャンネル C h 2のデ一夕は論理ゾーン L Z 1、 L Z 2、 L Z 3のランド 1 0 2に記録される。 このように、 チャンネル C h 1のデータとチャンネル C h 2のデ一夕を、 グループ 1 0 1 とラン ド 1 0 2に分けて記録することで、 一方のチャンネルの記録データ が削除された場合でも、 他方のチャンネルのデータの再生に支障が 及ぶことはない。 また、 記録データが削除された場所に、 新たなチ ヤンネルのデータを集中して高速に記録することができる。
図 3 4は、 チャンネル C h i, C h 2の 2チヤンネル同時記録を、 図 3 3 ( a ) に示す方法で行った後に, チャンネル C h 2の記録削 除を行い、 その後チャンネル C h 1の記録デ一夕のガーベージコレ クシヨ ンを実施する処理の例を示す図である。
まず、 同図 ( a ) に示すように、 論理ゾーン L Z 1、 L Z 2、 L Z 3のグループ 1 0 1 にチャンネル C h 1のデータを、 論理ゾーン L Z 1、 L Z 2、 L Z 3のランド 1 0 2にチャンネル C h 2のデ一 夕を同時記録したとする。 この場合、 へッ ドのシークは不要である。
次に、 同図 ( b ) に示すように、 論理ゾーン L Z 1、 L Z 2、 L Z 3のランド 1 0 2からチャンネル C h 2のデータを削除したとす る。 この場合、 チャンネル C h 1のデータは論理ゾ一ン L Z 1、 L Z 2、 L Z 3のグループ 1 0 1 に連続して記録されているので、 チ ヤンネル C h 1のデ一夕の再生はスムーズに実行できる。 また、 論 理ゾーン L Z 1、 L Z 2、 L Z 3のランド 1 0 2に、 新たに、 チヤ ンネル C h 2 ' のデータを記録するようにすることも可能となる。 また、 上述のようにしてチャンネル C h 2のデ一夕を削除した後 に、 論理ゾーン L Z 3以降に、 新たに、 2チャンネルの同時記録を 実行したい場合には、 同図 ( c ) に示すようにして、 チャンネル C h 1のデ一夕のガーベージコレクションを実施する。 この場合、 論 理ゾーン L Z 1のランド 1 0 2に論理ゾーン L Z 2のグループ 1 0 1 に記録されたチャンネル C h 1のデータが移動され、 論理ゾーン L Z 2のグループ 1 0 1 に論理ゾーン L Z 3のチャンネル C h 1の データが移動される。 この結果、 同図 ( c ) に示すように、 論理ゾ ーン L Z 3のグループ 1 0 1 とランド 1 0 2が共に空き領域となる ( このことにより、 同図 ( e ) に示すように、 論理ゾ一ン L Z 3以降 のグループ 1 0 1 とランド 1 0 2に、 それぞれ、 チヤンネル C h 3, C h 4のデータを同時記録することが可能になる。
図 3 3及び図 3 4の動作を実現する本実施形態の処理手順を、 図 3 5のフローチャートを参照しながら説明する。
まず、 記録、 再生、 または削除命令をスタック (プッシュ ' アツ プ · スタック) に格納する (ステップ S 9 1 )。
次に、 スタックに命令があるか判定し (ステップ S 9 2 )、 命令 がなければ処理を終了する。
一方、 ステップ S 9 2で、 命令が存在すると判定した場合には、 ス夕ックから命令を取り出し、 その命令が l c hあるいは 2 c hの いずれの記録命令、再生命令、 または削除命令であるか判定する (ス テツプ S 9 3 )。
そして、 1 c hの記録命令であれば、 論理ゾーン、 グループ、 ま たはランドに沿って記録する (ステップ S 9 4 )。 また、 2 c hの 記録命令であれば、 一方のチャンネルをグループに沿って、 他方の チャンネルをランドに沿って記録する (ステップ S 9 5 )。 ステツ プ S 9 4 、 S 9 5の処理の後、 ステップ S 9 2に戻る。
また、 ステップ S 9 3で命令が l c hあるいは 2 c hのいずれの 記録命令でもないと判定した場合には、 次に、 再生命令または削除 命令のいずれであるか判定する (ステップ S 9 6 )。 そして、 再生 命令であれば、 1 c hの再生を行い (ステップ S 9 7 )、 ステップ S 9 2に戻る。
一方、 ステップ S 9 6で削除命令と判定した場合には、 次に、 そ の削除命令が 2 c h記録の片方の削除であるか判定する (ステツプ S 9 8 )。 すなわち、 2 c h同時記録した場合の片方のチャンネル の削除であるか判定する (図 3 3参照)。
そして、 2 c h記録の片方の削除ではなく、 l c h記録の削除の 命令であれば、 指定された 1 c h記録を削除し (ステップ S 9 9 )、 ステップ S 9 2に戻る。 すなわち、 図 3 2に示すような 1 ς h記録 の削除でれば、 論理ゾーン、 グループ、 またはランドから指定され たチャンネルの記録を削除する。
一方、 ステップ S 9 8で 2 c h同時記録した場合の片方のチャン ネルの削除命令であれば、 その片方のチャンネルの記録を論理ゾー
ンのグループまたはランドから削除する (ステップ S 1 0 0 )。 こ の場合、 論理ゾーンのグループまたはランドに空きが生じる。
次に、 ディスク上に論理ゾーンの空き領域が十分にあるか判定す る (ステップ S 1 0 1 )。 そして、 空き領域が十分にあれば、 ステ ップ S 9 2に戻るが、 空き領域が不足していれば、 次の 2 c h同時 記録に備え、 ステップ S 1 0 0で削除されなかったチャンネルの記 録を、 ステップ S 1 0 0でグループまたはランドに空きが生じた論 理ゾーンにガーベージコレクションする (ステップ S 1 0 2 )。
このガーベージコレクションは、 図 3 3 ( b ) , ( c ) に示す方法 により行う。 これにより、 空き領域となる論理ゾーンが増加する。 ステップ S 1 0 2の処理の後、 ステップ S 9 2に戻る。
以上のようにして、 2 c hの同時記録において、 グループ或いは ランドの連続性をうまく利用して記録することで、 後で、 l c hの 再生をスムーズに行える。 また、 片方のチャンネルの削除を行って も飛び空き領域を作ることなく、 それに伴うガーべジコクシヨンの 実行回数も削減することができる。
次に、 Z C A Vにより回転制御されるディスクにおける内周と外 周の転送速度 (転送レート) の違いを吸収する方法として、 2チヤ ンネルのデータを内周と外周に分散して記録する例を示す。 図 3 6 に示すように、 内周と外周の転送速度が異なる Z C A Vによりディ スク 1 1 0の回転制御を行う ドライブでは、 転送速度の遅い内周に 集中して記録することは困難となる、 そこで、 内周のゾーンと外周 のゾーンを対にして、これらのゾーンを交互にアクセスすることで、 転送速度が平均化され、 ディスク 1 1 0全体で一定レー卜が得られ る。
図 3 6は、 上述した図 2 5のディスク 6 6 と同様な形式で、 ディ スク 1 1 0を 6つのゾーン 1〜 6に分割した例であり、 平均転送レ ートとして、 1 8 . 8 M B / sが得られる。
図 3 7は、 図 3 6に示すゾーン分割構成のディスク 1 1 0に、 2 c hの同時記録を適用した場合の処理を説明する図である。 まず、 同図 ( a ) に示すようにゾーン 1 とゾーン 6を対にして、 ゾ一ン 6 、 1 に、 それぞれ、 チャンネル C h l 、 2のデ一夕を同時記録したと する。 この場合、 トラック (円周) 方向に各チャンネルのデータを 記録する。 この場合、 ヘッ ドのシークは、 ゾーン 6 とゾーン 1 に対 し交互に行われる。
次に、 同図 ( a ) に示すように、 ゾーン 1から C h 2の記録を削 除したとする。 このことにより、 ゾーン 1に、 新たに、 チャンネル C h 2 ' のデータを集中して記録することが可能になる。 また、 内 周の空き領域のみが増加して、 2 c hの同時記録をする場所が少な くなつてきた場合には、 同図 ( b ) に示すように、 転送レートの高 いゾーン 6の有効利用を図るために、 ゾーン 6に記録されている C h 1のデ一夕を C h 2のデータの削除により空きができたゾーン 1 に移動するガーベージコレクションを実施する。
そして、 ゾーン 6に空き領域を確保した上で、 同図 ( c ) に示す ように、 ゾーン 6とゾーン 2を対にして、 ゾーン 6、 2に、 それぞ れ、 チャンネル C h 3、 4の同時記録を行う。
図 3 8は、 図 3 7に示す処理を実現するアルゴリズムを説明する フローチヤ一卜である。
まず、 記録、 再生、 または削除命令をスタック (プッシュ · アツ プ · スタック) に格納する (ステップ S 1 1 1 )。
次に、 スタックに命令があるか判定し (ステップ S 1 1 2 )、 命 令がなければ処理を終了する。
一方、 ステップ S 1 1 2で、 命令が存在すると判定した場合には、 スタックから命令を取り出し、 その命令が 1 c hあるいは 2 c hの いずれの記録命令、再生命令、 または削除命令であるか判定する (ス テツプ S 1 1 3 )。
そして、 1 c hの記録命令であれば、 内周のゾーンを優先して指 定されたチャンネルのデータを記録する (ステップ S 1 1 4 )。 ま た、 2 c hの記録命令であれば、 一方のチャンネルを内周のゾーン に沿って、 他方のチャンネルを外周のゾーンに沿って、 交互に記録 する (ステップ S 1 1 5 )。 ステップ S 1 1 4、 S 1 1 5の処理の 後、 ステップ S 1 1 2に戻る。
また、 ステップ S 1 9 3で命令が 1 c hあるいは 2 c hのいずれ の記録命令でもないと判定した場合には、 次に、 再生命令または削 除命令のいずれであるか判定する (ステップ S 1 1 6 )。 そして、 再生命令であれば、 l c hの再生を行い (ステップ S 1 9 7 )、 ス テツプ S 1 1 2に戻る。
一方、 ステップ S 1 1 6で削除命令を判定した場合には、 次に、 その削除命令が 2 c h記録の片方の削除であるか判定する (ステツ プ S 1 1 8 )。 すなわち、 2 c h同時記録した場合の片方のチャン ネルの削除であるか判定する (図 3 7 ( a ) 参照)。
そして、 2 c h記録の片方の削除ではなく、 l c h記録の削除の 命令であれば、 指定された 1 c h記録を削除し (ステップ S 1 1 9 )、 ステップ S 1 1 2に戻る。
一方、 ステップ S 1 2 8で 2 c h同時記録した場合の片方のチヤ
ンネルの削除命令であれば、 その片方のチヤンネルの記録を削除す る (ステップ S 1 2 0 )。 この場合、 内周または外周のゾーンに空 き領域が生じる。
次に、 記録が削除さたゾ一ンが内周側であるか判定する (ステツ プ S 1 2 1 )。 そして、 内周側でなければ、 ステップ S 1 1 2に戻 るが、 内周側であれば、 次の 2 c h同時記録に備え、 ステップ S 1 0 0で削除されなかった外周側のゾーンに記録されているデ一夕を 内周側のゾーンに移動するガーベージコレクションを実施する (ス テツプ S 1 2 2 )。
このガ一ベ一ジコレクションは、 図 3 7 ( b ) に示す方法により 行う。 これにより、 外周側のゾーンの空き領域が増加する。 ステツ プ S 1 2 2の処理の後、 ステップ S 1 1 2に戻る。
以上のようにして、 転送速度の遅い内周側のゾーンと転送速度の 速い外周側のゾーンとを対にして利用することにより、 2チャンネ ル記録を高速化することができる。
図 3 9及び図 4 0は、 図 3 8の詳細フロ一チヤ一トである。 図 3 9及び図 4 0のフローチャートの説明に先立って、 本フ口一チヤ一 卜で使用する管理テ一ブルについて説明する。
本フローチャートでは、 mチャンネルの映像デ一夕に対して、 各 チャンネル毎のス トリ一ムデ一夕の繋ぎを示す S t r e amという 情報を定義する。 図 4 1は、 この S t r e a mを管理するテーブル 1 2 0の構成例を示す図である。
このテーブル 1 2 0は、 m個の S t r e am ( 1 ) 〜 (m) 力、ら 構成される。 S t r e am ( i ) は iチャンネルのス ト リームデ一 夕の情報である ( i = l, 2 , ... m)。 各 S t r e a m ( i ) は、
データが記録されている先頭アドレス (A d d ) と連続アドレスに 記録されているデ一夕量 (D a t a ) との組 (A d d , D a t a ) がリス ト構造で連結されたデ一夕構造となっており、 このリス トの 最後にはス トリームの終了を示す情報 (E ND) が付加される。 ま た、 S t r e am ( i ) は、 2 c h記録の対象となっているかを示 す "相手 s t r e am" という情報を有する。 1 c h記録の場合、 相手 s t r e amの値は "0 " に設定される。
また、 図 4 2はディスク 1 1 0の各ゾーンの空き領域を管理する テーブル 1 3 0の構成例を示す図である。 この例では、 ディスク 1 1 0の内周と外周を共に n個のゾーンに分割し、 内周の n個のゾー ン (ゾーン 1〜ゾ一ン n + 1 ) と外周の n個のゾーン (ゾーン n + 2〜ゾーン 2 n〉 を個別に管理する。 各ゾ一ン j ( j = l〜 2 n) は、 その中での空き領域を示す情報 (Em p t y 〔 j 〕) と記録さ れた充填領域を示す情報 (F u l l ( j )) を持つ。 Em p t y 〔 j 〕 と F u 1 1 〔 j 〕 のいずれの情報も、 S t r e am ( i ) と同様な 連結リス トで構成される。 尚、 Em p t y 〔 j 」 のアドレス A d d は対応ゾーン j の空き領域の先頭ァドレスをしめし、 F u 1 1 〔 j 〕 のアドレス A d dは対応ゾーン j の先頭アドレスを示す。 また、 E mp t yのデータ量は空き容量であり、 F u l 1 のデ一夕量は記録 データ量を示す。 また、 Em p t y 〔 j 」 の初期値は (ゾーン j の 先頭ァドレス, ゾーン j のデ一夕量)→E n dであり、 F u l l 「 kj の初期値は E n d (記録データ量無し) である。
図 4 3は、 図 3 6に示すディスク 1 1 0のゾーン構成を管理する テーブル 1 4 0を示す図である。 このテーブル 1 4 0は、 図 4 2に おいて n = 3 とした場合に相当し、 各ゾーンについて、 「バイ ト数
トラック」、 「トラック数」、 「セクタ数」、 及び 「セクタアドレス」 を管理している。 ゾーン 1〜 6には、 それぞれ、 ゾーン n o . (ゾ ーン番号) として " 1 " ~ " 6 " が割り当てられている。 また、 各 ゾーン 1〜 6には 1 0 0 0個のトラックが設けられている。 また、 1セクタは 5 1 2 B (バイ ト) であり、 ゾーン 1 には、 1 8 4 k ( 1 8 4 0 0 0 ) のセクタが設けられていいる。 図 4 3に示されている ように、 セクタ数は外周のゾーン程多くなり、 ゾーン 6では 2 6 4 k ( 2 6 4 0 0 0 ) のセクタが設けられている。 セクタアドレスは、 ゾーン 1 の先頭セク夕から順にシリアルに割り当てられている。 図 4 3には、 各ゾーンの先頭セクタアドレスと最終セクタアドレスが 示されており、 ゾーン 1の先頭セクタア ドレスは " 1 "、 ゾーン 6 の最終セク夕アドレスは " 1 3 44 0 0 0 " となっている。
以下、 図 3 9及び図 4 0のフローチャートの処理手順を、 説明す る。
尚、 これらのフローチャートで示されているアドレスは、 セクタ アドレスである。
まず、 ディスク 1 1 0の空きゾーンを管理するためにテーブル 1 2 0、 1 3 0を初期化する (ステップ S 1 3 1 )。 この初期化処理で は、 以下の ( 1 ) 〜 ( 3 ) の処理を行う。
( 1 ) テーブル 1 2 0の初期化
まだ、 映像データを記録していないので、 S t r e a m ( 1 ) 〜 (m) に 「E ND」 を登録し、 相手 s t r e amを "0 " に初期化する (最初は、 1 c h記録を対象とする)。
( 2 ) テーブル 1 3 0の初期化
内周ゾーン (番号 l〜 n ) と外周ゾーン (番号 n + l 〜 2
n ) を定義し、 これら 2 n個のゾーンの Em p t y情報と F u l 1 情報を初期化する。 Emp t yには、 該当するゾーンの先頭アドレ ス、 該ゾーンのデータ量を登録し、 最後に E n dを付加する。 F u 1 1 には、 E n dだけを登録する。
( 3 ) これから記録していく最初の内周ゾーンのゾーン番号を 示すパラメ一夕 inner-zone を " 1 " に、 これから記録していく最 初の外周ゾーンのゾーン番号を示すパラメ一夕 outer- zone を "2 n " に設定する。 また、 S t r e a m番号を " 1 " に設定する。 次に、 命令の種類が、 l c h記録なのか、 2 c h記録なのか、 そ れら以外なのか判断し (ステップ S 1 3 2 )、 l c h記録であれば ステップ S 1 3 3に、 2 c h記録であればステップ S 1 4 0に、 そ の他であればステップ S 1 4 7に進む。
ステップ S 1 3 3では、 l c h記録なので、 内周に記録すること を優先し、 内周用の S t r e am番号が設定される変数 m 2に mの 値を代入し、 S t r e a m番号 mの値を " 1 " インクリメントする。 また、 相手 s t r e amはまだ存在しないので、 相手 s t r e a m は " 0 " に設定する。 この処理により、 m 2の値は最初は、 " 1 " となる。
次に、 テ一ブル 1 3 0において、 内側のゾーン (inner- zone) か ら、 各ゾーンの空き領域を示す E m p t y リス トを検索し、 データ 量が 0より大きい Em p t y 〔 I〕 ( I = inner- zone〜 2 n + 1 ) が見つかれば (ステップ S 1 3 4 )、 その E m p t y 〔 I〕 のリス ト内容に従い、 ゾーン I に 1 c h記録を行う (ステップ S 1 3 5 )。 ステップ S 1 3 5での記録の途中で、 随時、 Em p t y 〔 I〕 に リストされている全ての領域に記録したか判断し (ステップ S 1 3
6 )、 全ての領域に記録すれば、 テ一ブル 1 2 0の S t r e a m (m 2 ) に Em p t y 〔 I〕 のリス トを追加する。 これにより、 S t r e arn (m 2 ) に S t r e am番号 m 2のス トリームデータのゾ一 ン I 上の記録領域が登録される。 次に、 Em p t y 〔 I〕 のリス ト を E n dのみとする。 これにより、 ゾ一ン I に空き領域がないこと 力 Em p t y 〔 1〕 に登録される。 また、 F u 1 1 〔 I〕 には、 対象ゾーン I の全領域にデータが記録されたことを示すために、 (ゾーン I の先頭アドレス、 ゾーン I のデ一夕量) → E n dのリス トを登録する。 そして、 I を " 1 " インクリメントし、 対象ゾーン を 1つ外周側に移す (ステップ S 1 3 7 )。
次に、 1 c hの記録が終了したか判断し (ステップ S 1 3 8 )、 記録が終了していれば、 ステップ S 1 3 9に進むが、 まだ、 S t r e am番号 m 2のストリームデータの全記録を終了していなければ, ステップ S 1 3 5に戻る。
このようにして、 l c h記録の場合には、 S t r e a m番号 m 2 のス トリームデ一夕の全ての記録が終了するまで、 ステップ S 1 3 5〜 S 1 3 7の処理を繰り返し、 内周のゾーンから 1 ゾーンづっ外 周のゾーンに残りのス トリームデータを記録していく。
そして、 ステップ S 1 3 8で S t r e a m番号 m 2のス トリーム データの全ての記録が終了したと判断すれば、 その記録データの最 終アドレスまでのリス トを、 S t r e a m (m 2 ) に追加する。 次 に、 Em p t y 〔 I〕 には、 (最終アドレス + 1, 残りのデ一夕量) — E n dのリス トを登録し、 F u l 1 〔 I〕 には、 (ゾーン I の先 頭アドレス、 記録されたデ一夕量) — E n dのリス トを登録する。 そして、 次の内周ゾーンの書き込み起点を示す inner- zone に I を
設定し、 ステップ S 1 3 2に戻る。
尚、 ステップ S 1 3 9において、 ステップ S 1 3 6で Y e s と判 断された後、 ステップ S 1 3 8で Y e s と判断された場合には、 inner-zone に I を設定する処理のみが行われる。 この場合、 ステ ップ S 1 3 6で Y e s と判断された時点で、 S t r e a m番号 m 2 のス トリームデータ記録は全て終了しており、 再び、 ステップ S 1 3 5の処理は実行されることはないからである。
以上のようにして、 記録された S t r e am番号 m 2のス トリ一 ムデ一夕のアドレス情報とデ一夕量をテ一ブル 1 2 0の S t r e a m (m 2 ) に登録し、 テーブル 1 3 0の Em p t y 〔〕 と F u l 1 〔〕 のリス トを更新する。
一方、 ステップ S 1 4 0では、 2 c h記録なので、 内周ゾーンと 外周ゾーンに分散して記録する。 このため、 外周用の S t r e a m 番号 m l を mに、 内周用の S t r e am番号 m 2を (m+ 1 ) に設 定する。 この実施形態の場合、 外周ゾーンに記録されるチャンネル データの S t r e a m番号は、 内周ゾーンに記録される他チャンネ ルの S t r e am番号よりも 1つ小さくなる。 続いて、 2 c h記録 であるため、 S t r e 3 111番号111を " 2 " インクリメントする。 ま た、 2 c hの記録の場合には、 デ一夕が記録される内周ゾーンと外 周ゾーンとも、 相手 s t r e a mは互いに存在するので、 S t r e am (m l ) の相手 s t r e a mに m 2を、 S t r e a m (m 2 ) の相手 s t r e amに m l に設定する。 次に、 S t r e am番号 m 2のス トリームデ一夕は内周ゾーンに記録するので、 ステップ S 1 3 4に進むと共に、 S t r e a m番号 m lのス トリ一ムデータは外 周ゾーンに記録するので、 ステップ S 1 4 1 に進む (ステップ S 1
4 0 )。
以後、 ステップ S 1 3 4以降の処理とステップ S 1 4 1以降の処 理は、 並列処理される。
ステップ S 1 4 1では、 テ一ブル 1 3 0の Emp t y リス トを参 照して、 外周のゾーン (outer-zone) から順次 1 ゾーンづっ内周側 のゾーンへと、 空き領域の有るゾーン J を探索する (ステップ S 1 4 1:)。
そして、 ステップ S 1 4 1で見つけたゾーン J の Em p t y 〔 J〕 の内容に従い、 ゾーン J に S t r e a m番号 m 1のス トリ一ムデ一 夕を記録する (ステップ S 1 4 2 )。 ステップ S 1 4 2 において記 録をしている途中で、 随時、 Em p t y 〔 J〕 に登録されたゾーン Jの全ての領域に記録を終了したか判断し (ステップ S 1 4 3 )、 全ての領域に記録を終了したと判断した場合には、 ステップ S 1 4 4に進み、 まだ、 全ての領域に記録を終了していないと判断した場 合には、 ステップ S 1 4 5に進む。
ステップ S 1 44では、 S t r e am (m l ) に Em p t y 〔 J〕 のリス トを追加する。 そして、 Em p t y 〔 J〕 のリス トを E n d (データ量無し) とする。 また、 F u l 1 〔 J〕 には、 ゾ一ン J の 全ての領域に記録がなされたとして、 (ゾーン J の先頭アドレス、 ゾーン Jのデ一夕量) →E n dのリス トを登録する。 そして、 J を " 1 "デクリメントして、 対象ゾーンを 1つ内周側のゾーンに移す。 次に、 記録が終了したか判断し (ステップ S 1 4 5 )、 終了して いれば、 ステップ S 1 4 6に進み、 終了していなければ、 ステップ S 1 4 2に戻る。
このようにして、 1つのゾーンのみでは記録が終了しない場合に
は、 S t r e am番号 m lのス トリ一ムデ一夕の全ての記録が終了 するまで、 ステップ S 1 4 2〜 S 1 4 5の処理を繰り返しながら、 外周側から内周側へとゾーンを 1つづつ移動しながら、 該ス トリー ムデータを記録していく。
そして、 ステップ S 1 4 5で S t r e a m番号 m 1のストリーム デ一夕の記録が全て終了したと判断すると、 記録された最終ァドレ スまでのリス トを、 S t r e am (m l ) に登録する。 また、 Em P t y 〔 J〕 には、 (最終ア ドレス + 1、 残りのデ一夕量) →E n dのリス トを登録し、 F u l 1 〔 J〕 には、 (ゾ一ン J の先頭ア ド レス、 記録されたアドレスまでのデータ量) —E n dのリストを登 録する。 そして、 次の外周ゾーンへの書き込みの起点となる outer-zone を J に設定し (ステップ S 1 4 6 )、 ステップ S 1 3 2 に戻る。
尚、 上述したステップ S 1 3 9 と同様に、 ステップ S 1 4 6にお いても、 ステップ S 1 4 3で Y e s と判断された後、 ステップ S 1 4 5で Y e s と判断された場合には、 outer-zone に J を設定する 処理のみが行われる。 この場合、 ステップ S 1 4 6で Y e s と判断 された時点で、 S t r e am番号 m lのス トリームデ一夕記録は全 て終了しており、 再び、 ステップ S 1 4 2の処理は実行されること はないからである。
以上のステップ S 1 4 1〜 S 1 4 6の処理と並列して、 ステップ S 1 3 4〜 S 1 3 9の処理が実行され、 内周側のゾーンにも S t r e a m番号 m 2のス トリームデータの記録がなされる。
ステップ S 1 4 7では、 再生命令または削除命令のいずれである か判断し、 再生命令であれば、 指定された S t r e a m番号 mxの
ス ト リームデータを、 テーブル 1 2 0の S t r e a m (m x ) のリ ス トを参照して再生し (ステップ S 1 4 8 )、 ステップ S 1 4 2 に 戻る。 一方、 削除命令であれば、 指定された S t r e & 111番号111 のス ト リームデ一夕を管理している S t r e a m (m x ) のリス ト に従い、 関連する各ゾーンの Em p t yに S t r e a m (mx) の リス トを追加すると共に、 関連する各ゾーンの F u l 1 から S t r e a rn (m x ) のリス トを削除する (ステップ S 1 4 9 )。 この処 理により、 当該 Em p t yに S t r e a m番号 mxのス ト リームデ 一夕の削除領域が追加され、 当該 F u l l から S t r e a m番号 m xのス ト リームデータの削除領域の情報が削除される。
次に、 削除指定された S t r e a m (m x) に相手 s t r e a m ( = my ) があるか調べ (ステップ S 1 5 0 )、 相手 s t r e a m が無ければ ( m yが " 0 " であれば)、 ステップ S 1 4 2 に戻る。 一方、 相手 s t r e a rnがあると判断した場合は、 m y〉mxで あるか判断する (ステップ S 1 5 1 )。 この判断は、 S t r e a m 番号 myのス トリームデータを外周から内周に移動すべきか判断す る処理である。 上述したように、 本実施形態では、 ステップ S 1 4 0の処理により、 2 c h記録する場合、 外周ゾーンに記録されるス トリームデ一夕の S t r e a m番号は、 内周ゾーンに記録されるス トリームデータの S t r e a m番号より も 1つ小さくなるように設 定される。
そして、 m y > m Xでなければ、 ステップ S 1 4 2 に戻るが、 m y〉m xであれば、 S t r e a m (my ) のリス トを参照して、 S t r e a m番号 myのス ト リームデータをディスク 1 1 0から読み だし、 次に、 その読みだしたデー夕を S t r e a m (m x ) のリス
トを参照して、 ディスク 1 1 0に再書き込みする (ステップ S 1 5 2 )。 この再書き込みは、 ステップ S 1 4 9で Em p t yに登録さ れた領域に S t r e am番号 myのス トリームデータを書き込む処 理である。
次に、 S t r e am (my) のリス 卜に従い、 関連する各ゾーン の Em p t yに S t r e am (my) のリス トを追加すると共に、 関連する各ゾーンの F u l 1 から S t r e a m (my ) のリス トを 削除する (ステップ S 1 5 3 )。
この処理は、 S t r e am番号 myのス トリームデ一夕の記録領 域の移動に伴う、 Em p t yと F u 1 1 の更新処理である。
続いて、 S t r e am (my) のリス トを S t r e a m (mx) のリス トに置き換える。 また、 関連する Em p t yから S t r e a m (my) のリストを削除する。 さらに、 関連する F u l 1 に S t r e a m (mx) のリス トを追加する。 また、 ス トリーム (mx) を初期化する (ステップ S 1 5 4 )。
上述した図 3 9及び図 4 0のフローチャートの処理の流れの中で, 2 c h記録する場合、 内周の空き領域を探索する処理と外周の空き 領域を探索する処理は、 それぞれ、 ステップ S 1 3 4とステップ S 1 4 1 に相当する。 これらのステップの処理では、 各ゾーン k ( k = l〜 2 n) の残りデータ量を Emp t y 〔 k〕 を検索して調べ、 記録対象のゾーンを決定する。
次に、 上述した図 3 9及び図 4 0のフローチャー トの処理を、 図 4 3に示すゾーン構成のディスク 1 1 0に適用した場合を例として 取り上げながら、 より具体的に説明する。
図 4 4は、 図 4 1、 4 2、 及び 4 3のテーブル 1 2 0、 1 3 0を
メモリ 1 5 0上に実装した例を示す図である。 メモリ 1 5 0は、 ァ ドレス 0〜 1 7までの初期化領域 1 5 1 とアドレス 1 8以降の拡張 領域 1 5 2を備えており、 初期化領域 1 5 1 にテーブル 1 2 0 とテ 一ブル 1 3 0が実装される。 また、 拡張領域 1 5 2に S t r e am ( i ) ( i = l〜 5 ) の追加リス トが格納される。
図 4 4において、 格納内容は、 メモリ 1 5 0上の各アドレスに記 憶されるリス トを示している。 このリストの要素は (記憶先頭アド レス、 データ量、 次格納ア ドレス) の 3種類の情報の組からなる。 尚、 E n dは ( 0、 0、 0 ) で表現される。
メモリ 1 5 0のアドレス 0には ( 0、 0、 0 ) が格納される。 ま た、 メモリ 1 5 0のアドレス 1〜 5には、 S t r e am ( l )〜( 5 ) の各行で構成されるテーブル 1 2 0が実装される。 また、 さらに、 メモリ 1 5 0のアドレス 6〜 1 7には Emp t y ( 1 ) 〜 ( 6 ) 及 び F u 1 1 ( 1 ) 〜 ( 6 ) の各行で構成されるテ一ブル 1 3 0が実 装される。
図 3 9のフローチャートのステップ S 1 3 1 の初期化処理により, テ一ブル 1 2 0、 1 3 0の内容は、 図 4 4の 1 に示す状態に初期 化される。 すなわち、 テーブル 1 2 0の S t r e a m ( 1 ) 〜 ( 5 ) には E n d ( 0、 0、 0 ) が登録される。 また、 テ一ブル 1 3 0の Em p t y ( 1 ) ~ ( 6 ) には、 ゾーン 1 ( Z l ) 〜 6 ( Z 6 ) の (先頭アドレス、 データ量、 次格納アドレス) が設定される。 尚、 この場合、 次格納アドレスは 0となる。 また、 テーブル 1 3 0の F u 1 1 ( 1 ) 〜 ( 6 ) には、 (対応ゾーンの先頭ア ドレス、 対応ゾ —ンの記録データ量、 次格納アドレス) が設定される。 この場合、 記録データ量は " 0 " となる。 また、 次格納アドレスも 0となる。
次に、 図 4 6に示すように、 S t r e a m ( 1 ) と S t r e a m ( 2 ) の 2 c h同時記録が行われたとする。 S t r e a m ( 1 ) は 外周ゾーン 6から、 S t r e a m ( 2 ) はは内周ゾーン 1から記録 される。 尚、 ここで、 S t r e a m ( 1 ) は S t r e a m番号 1の ス トリ一ムデータを、 3 1; 6 3111 ( 2 ) は3 1: 6 & m番号 2の ス トリームで表す。 以下の説明においても、 同様である。
図 4 6では、 ストリームデ一夕 2 とストリームデータ 1を、 それ ぞれ、 ゾーン 1 とゾーン 6に交互に記録し、 まず、 記憶容量に少な ぃゾーン 1の領域全体にストリ一ムデ一夕 2が記録された状態を示 している。 この時点では、 S t r e a m ( 2 )、 E m p t y 〔 2〕 および F u l 1 〔 2〕 の格納内容は 2 に示すようになる。 この結 果、 S t r e a m ( 2 ) に Em p t y 〔 1〕 のリス トが追加され、 次格納アドレスとして拡張領域 1 5 2のアドレス 1 8が設定される, また、 Em p t y 〔 1〕 に空き領域無しを示す E n dが設定され、 F u l l C D にゾーン 1が全て記録済みであることを示す ( 1 、 1 8 4 0 0 0、 0 ) が設定される。
続いて、 図 4 7に示すように、 ス トリームデータ 1がゾーン 6全 体に記録された後、 続いてゾーン 5に記録され、 また、 ストリーム データ 2がゾーン 2に記録されて 2 c h記録が終了したとする。 こ の結果、 ス トリームデータ 1 、 2の管理情報は、 図 4 4の 3 に示 すようになる。
すなわち、
• S t r e a m ( 1 ) に Em p t y 〔 6〕 のリス トを加え、 そ の次格納ァドレスに拡張領域 1 5 2のアドレス 1 9を設定する。
· Em p t y 〔 6〕 に E n d ( 0、 0、 0 ) を設定し、 Em p
t y 〔 6〕 にゾーン 6に空き領域無しの情報を設定する。
• 拡張領域 1 5 2のア ドレス 1 8に、 S t r e am ( 2 ) の記 録終了を登録するために、 (ゾーン 2の先頭ア ドレス、 該先頭ア ド レスから記録された最終ア ドレスまでのデータ量、 次格納アレス) のリス トを作成する。
すなわち、 アドレス 1 8に ( 1 8 4 0 0 1、 1 1 6 0 0、 0 ) の リス トを作成する。
• 前記ゾーン 2の最終ア ドレスを基に、 Em p t y 〔 2〕、 F u 1 1 〔 2〕 のリス トを修正する。
Em p t y 〔 2〕 を ( 3 0 0 0 0 1、 1 8 4 0 0 0、 0 )、
F u l l 〔 2〕 を ( 1 8 4 0 0 1、 1 1 6 0 0、 0 ) とする。
• 拡張領域 1 5 2のアドレス 1 9に、 S t r e am ( 1 ) の記 録終了を登録するために、 (ゾーン 5の先頭ア ドレス、 該先頭ア ド レスから記録された最終アドレスまでのデータ量、 次格納ァドレス (= 0 )) のリス トを作成する。
すなわち、 ア ドレス 1 9に ( 8 3 2 0 0 1、 44 0 0 0、 0 ) の リス トを作成する。
• 前記ゾーン 6の最終ア ドレスを基に、 Em p t y 〔 5〕、 F u 1 1 〔 5〕 のリス トを修正する。
Em t y 〔 5〕 を ( 3 0 0 0 0 1、 8 7 6 0 0 0 , 0〉、
F u 1 1 〔 5〕 を ( 8 3 2 0 0 1、 4 4 0 0 0、 0 ) とする。
続いて、 図 4 8に示すように、 ゾ一ン 1 とゾーン 2から S t r e am ( 2 ) を削除したとする。 この結果、 データ管理情報は、 図 4 4の 4に示すように変更される。
すなわち、
• Emp t y 〔 1〕 を、 再び、 全て空き領域とし、 F u 1 1 〔 1〕 を記録領域無しとする。
Em p t y 〔 1〕 を ( 1、 1 8 4 0 0 0、 0 )、 F u 1 1 〔 1〕 を ( 1、 0、 0 ) とする。
· Em p t y 〔 2〕 を空き領域とし、 F u l 1 〔 1〕 を記録領 域無しとする。
Emp t y 〔 2〕 を ( 1 8 4 0 0 1、 2 0 0 0 0 0 2、 0 )、 F u l 1 〔 2〕 を ( 1 8 4 0 0 1、 0、 0 ) とする。
次に、 図 4 9に示すように、 S t r e am ( 1 ) を S t r e am ( 2 ) が記憶されていた領域に移動するガーベージコレクションを 行ったとする。 この結果、 ス トリームデータ管理情報は、図 44の 5 に示すように変更される。
すなわち、
• S t r e a m ( 1 ) を初期化した後、 Em p t y 〔 1〕 のリ ス トを加え、 その次格納アドレスを拡張領域 1 5 2のア ドレス 2 0 に設定する。
S t r e m ( 1 ) を ( 1、 1 8 4 0 0 0、 2 0 ) とする。
• Emp t y 〔 1〕 の空き領域を無しとし、 F u l 1 〔 1〕 を 全て記録済みとする。
Emp t y 〔 1〕 に ( 0、 0、 0 ) を設定し、 F u l l 〔 1〕 を ( 1、 1 8 4 0 0、 0 ) とする。
• 拡張領域 1 5 2のアドレス 2 0に S t r e a m ( 1 ) の記録 終了を登録するために、 ア ドレス 2 0に、 (ゾーン 2の先頭ア ドレ ス、 該先頭アドレスから記録された最終アドレスまでのデータ量、 次格納ア ドレス (= 0 )) のリス トを作成する。
アドレス 2 0に ( 1 8 4 0 0 1、 1 1 6 0 0 0、 0 ) のリス 卜 を作成する。
• 前記ゾ一ン 2の最終ァドレスに基づき、 Em p t y ( 2 ) と F u l l ( 2 ) のリス トを修正する。
Em p t y 〔 2〕 を ( 3 0 0 0 0 1、 8 4 0 0 0、 0 )、 F u 1 1 〔 2〕 を ( 1 8 4 0 0 1、 1 1 6 0 0、 0 ) とする。
• Emp t y 〔 6〕 を全て空き領域とし、 F u 1 1 〔 6〕 を記 録領域なしとする。
Em p t y 〔 6〕 を ( 1 0 8 0 0 0 1、 2 5 6 0 0 0、 0 )、 F u 1 1 〔 6〕 を ( 1 0 8 0 0 0 1、 0、 0 ) とする。
• Em t y 〔 5〕 を全て空き領域とし、 F u l 1 〔 5〕 を記 録領域なしとする。
Em t y 〔 5〕 を ( 8 3 2 0 0 1、 2 4 8 0 0 0、 0 )、 F u l 1 〔 5〕 を ( 8 3 2 0 0 1、 0、 0 ) とする。
続いて、 図 5 0に示すように、 S t r e a m ( 3 ) と S t r e a m ( 4 ) の 2 c h同時記録をしたとする。 このとき、 S t r e a m ( 3 ) は外周ゾーン 6から、 S t r e am ( 4 ) は内周ゾーン 2か ら記録する。 同図は、 両 S t r e amを交互に記録したとき、 まず、 ゾーン 2の領域全体が記録された状態を示している。 この結果、 デ —夕管理情報は、 図 44の 6に示すようになる。
すなわち、
• S t r e am ( 4 ) に Em p t y ( 2 ) のリス トを加え、 次 格納ァドレスを拡張領域 1 5 2のアドレス 2 1 に設定する。
S t r e a m (4 ) を ( 3 0 0 0 0 1、 8 4 0 0 0、 2 1 ) とする。
• Emp t y 〔 2〕 の空き領域を無しと設定し、 F u 1 1 〔 6〕 を全て記録済みとする。
Em p t y 〔 2〕 を ( 0、 0、 0 )、 F u l l 〔 5〕 を ( 8 3 2 0 0 1、 0、 0 ) とする。
次に、 図 5 1 に示すように、 S t r e am ( 3 ) がゾーン 6の領 域全体に記録された後、 S t r e am ( 3 ) の残りのデータがゾー ン 5に、 S t r e am ( 4) の残りのデータがゾーン 2に記録され て、 全記録が終了したとする。 この結果、 データ管理情報は、 図 4 4の 7に示すようになる。
すなわち、
• S t r e am ( 3 ) に Emp t y 〔 6〕 のリストを加え、 そ の次格納アドレスを拡張領域 1 5 2のアドレス 2 2に設定する。
• Em p t y 〔 6〕 の空き領域を無しとし、 F u l 1 〔 6〕 を 全て記録済みとする。
Em t y 〔 6〕 を ( 0、 0、 0 )、 F u l l 〔 6〕 を ( 1
0 8 0 0 0 1、 2 5 6 0 0 0、 0 ) とする。
• 拡張領域 1 5 2のアドレス 2 1 に S t r e am ( 4 ) の記録 終了を登録するために、 アドレス 2 1 に (ゾーン 3の先頭ァドレス、 該先頭アドレスから記録された最終アドレスまでのデータ量、 次格 納アドレス (= 0 )) のリストを作成する。
アドレス 2 1 に ( 3 8 4 0 0 1、 2 1 6 0 0 0、 0 ) を設定 する。
• 前記ゾーン 3の最終アドレスに基づき、 Em p t y 〔 3〕 と F u l 1 〔 3〕 のリス トを修正する。 この場合、 Em p t y 〔 3〕 は空き領域無しとなり、 F u 1 1 〔 3〕 は全て記録領域済みとする。
Em t y 〔 3〕 を ( 0、 0、 0 )、 F u l 1 〔 3〕 を ( 3 8 4 0 0 1、 2 1 6 0 0 0、 0 ) とする。
• 拡張領域 1 5 2のアドレス 2 2に S t r e am ( 3 ) の記録 終了を登録するために、 アドレス 2 2に (ゾーン 5の先頭アドレス、 該先頭ァドレスから記録された最終ァドレスまでのデータ量、 次格 納アドレス (= 0 )) のリス トを作成する。
アドレス 2 2に ( 8 3 2 0 0 1、 44 0 0 0、 0 ) を設定す る。
• 前記ゾーン 5の最終アドレスに基づき、 Em p t y 〔 5〕 と F u l l 〔 5〕 のリス トを修正する。
Em t y 〔 5〕 を ( 8 7 6 0 0 1、 2 0 4 0 0 0、 0 )、 F u l l 〔 5〕 を ( 8 3 2 0 0 1、 44 0 0 0、 0 ) とする。
このように、 本実施形態においては、 S t r e a m、 Em p t y、 及び F u l 1 の各テ一ブルにより、 ディスクの各ゾーンの空き領域 及び記録領域を管理し、 かつ、 各 S t r e a mのディスク上の記録 領域も管理しながら、 各チャンネルのス トリームデ一夕の記録、 削 除、 ガーベジコレクションを管理する。
次に、 内周のゾーンと外周のゾーンとの転送速度の違いを吸収す る別の手法として、 複数データの同時記録の要求性能の和 (総合要 求性能) に対して、 各ゾーンの転送性能の和 (総合保持性能) が少 なく とも優れるように、 複数ゾーンの組み合わせを選択し、 選択さ れた各ゾーンに、 複数データを分散させて記録する実施形態につい て説明する。
この実施形態を、 図 5 2に示すゾーン 1〜 6を有するディスク 1 6 0を例にして説明する。 ディスク 1 6 0のゾーン 1 の 1 トラック
のバイ ト数は 7 0 KB (キロバイ ト) であり、 転送レ一ト (転送速 度) は 1 7. 5 Mbps である。 その他のゾーンのトラック構成、 転 送レートは、 図 5 2に示す通りである。
ここで、 以下に示す、 ステップ 1 (総合要求性能 1 ) 〜 3 (総合 要求性能 3 ) の記録要求があつたとする。
ステップ 1 MP E G 2 ( 6 Mbps ) X 3チャンネル = 1 8 M bps ステップ 2 MP E G 2 ( 6 Mbps ) X 2チャンネル = 1 2 M bps ステップ 3 MP E G 2 ( 6 Mbps ) X 4チャンネル = 2 4 M bps まず、 第 1の実施例について説明する。 この実施例では、 ゾーン 間の移動時間 (シーク時間) を含むアクセス時間及び処理するチヤ ンネル数は考慮しないで、 総合保持性能を求め、 それを上記総合要 求性能と比較して、 性能を達成できるゾーンを選択する。
この結果、 以下の様に、 ステップ 1〜 3の記録方法を決定する。 ステップ 1 : ゾーン 1 とゾーン 2の総合保持性能は 1 8. 7 5 M bps であり、 ステップ 1 の総合要求性能よりも高いので、 ゾーン 1 とゾーン 2に分散させて記録する。
ステップ 2 : ゾーン 1の転送レート (= 1 7. 5 Mbps ) は、 ス テツプ 2の総合要求性能より も高いので、 ゾーン 1 に記録する。 ステップ 3 : ゾーン 2 とゾーン 6の総合保持性能は 2 5 Mbps で あり、 ステップ 3の総合要求性能よりも高いので、 ゾーン 2 とゾ一 ン 6に分散させて記録する。
図 5 3は、 上述した第 1の実施例のステツプ 1〜 3の記録方法を 具体的に示す図である。
ステップ 1の場合は、 同図 ( a ) に示すように、 まず、 ゾーン 1 に C h 1、 C h 2、 C h 3のブロックデータをシーケンシャルに記
録し、 次に、 ゾーン 2に移動し、 ゾーン 2に C h 1、 C h 2、 C h 3の次のブロックデータをシーケンシャルに記録する。 そして、 再 び、 ゾーン 1 に移動し、 C h l、 C h 2、 C h 3の次のブロックデ —夕をシーケンシャルに記録する。 このように、 3チャンネルのブ ロックデ一夕をゾーン 1 とゾーン 2に交互に分散記録していく。 ステップ 2の場合は、 同図 ( b ) に示すように、 ゾーン 1に C h 1、 C h 2 , C h i , C h 2... の順序で、 ブロックデータを記録 していく。
ステップ 3の場合は、 同図 ( c ) に示すように、 ステップ S 1 と 同様にして、 4チャンネルのブロックデータ (C h l、 C h 2、 C h 3、 C h 4 ) を、 ゾーン 2 とゾーン 6に交互に、 シーケンシャル に分散 · 記録していく。
次に述べる第 2の実施例は、 ゾーン間の移動時間 (シーク時間) を含むアクセス時間を考慮して総合保持性能を求め、 それを上記各 ステップの総合要求性能と比較して、 性能を達成できるゾーンを選 択する。 この場合、
アクセス時間 = 1 0 0 ms Xゾーン間距離
と ¾1し、
ゾーン間距離 =選択された 2つのゾーン間の番号差
と定義する。
ゾーン間距離は、隣のゾーンに移動するときに往復で 1 0 0ms (片 道 5 Oms) のアクセス時間を要するものと想定し、 移動するゾーン が距離的に離れている程、 へッ ドの移動距離に比例してアクセス時 間が増加するものとして定義したものである。
この結果、 以下のようにして、 各ステップの記録方法を決定する。
ステップ 1 : 1 8 Mbps ( 3 c h記録) の総合要求性能に対して、 アクセス時間 ( 1 0 0 ms) を含めても総合保持性能 = ( 2 0 + 2 2. 5 ) X 0. 9 / 2 ) が該総合要求性能を上回るゾーン 2 とゾー ン 3を選択して、 C h l〜 C h 3のブロックデータを、 ゾーン 2 と ゾーン 3に交互に記録する。
ステップ 2 : 1 2 Mbps ( 2 c h記録) の総合要求性能に対して は、 ゾーン 1の転送レート (= 1 7. 5 ms) だけで十分に対応でき るので、 C h 1 と C h 2のブロックデータをゾーン 1のみに記録す る。 この場合、 アクセス時間は 0 となる。
ステップ 3 : 2 4 Mbps ( 4 c h記録) の総合要求性能に対して、 アクセス時間 ( 1 0 0 ms) を含めても総合保持性能 ( 二 ( 2 7. 5 + 3 0 ) X 0. 9 / 2 ) が該総合要求性能を上回るゾーン 5とゾ一 ン 6を選択して、 C h l〜 C h 4のブロックデータを、 ゾーン 5 と ゾーン 6に交互に記録する。
図 5 4は、 上述した第 2の実施例のステップ 1〜 3の記録方法を 具体的に示す図である。
ステップ 1の場合は、 同図 ( a ) に示すように、 まず、 ゾーン 2 に C h 1 、 C h 2、 C h 3のブロックデ一夕をシーケンシャルに記 録し、 次に、 ゾーン 3に 5 0 ms で移動し、 ゾーン 2に C h i 、 C h 2、 C h 3の次のブロックデータをシーケンシャルに記録する。 そして、 再び、 ゾーン 2に 5 0 ms で移動し、 C h l 、 C h 2、 C h 3の次のブロックデータをシーケンシャルに記録する。 このよう に、 3チヤンネルのブロックデータをゾ一ン 2 とゾーン 3に交互に、 シーケンシャルに分散記録していく。
ステップ 2の場合は、 同図 ( b ) に示すように、 ゾーン 1 に C h
1 、 C h 2 , C h i , C h 2 ... の順序で、 ブロックデータを記録 していく。
ステップ 3の場合は、 同図 ( c ) に示すように、 ステップ S 1 と 同様にして、 4チャンネルのブロックデータ (C h l 、 C h 2 、 C h 3 、 C h 4 ) を、 ゾーン 5 とゾーン 6の間を 5 0 ms で移動しな がら、 ゾーン 5 とゾーン 6に交互に、 シーケンシャルに分散 ' 記録 していく。
次に述べる第 3の実施例は、 ゾーン間の移動時間 (シーク時間) に加え、 処理するチャンネル数も考慮して総合保持性能を求め、 そ れを上記各ステップの総合要求性能と比較して、 性能を達成できる ゾーンを選択する。 この実施例は、 各チャンネルのデータはなるベ く分散して記録した方が、 単独再生や削除の場合に都合がよいとい う考えを基にしている。
この結果、 以下の様に、 ステップ 1 〜 3の記録方法を決定する。 ステップ 1 : 1 8 Mbps ( 3 c h記録) の総合要求性能に対して、 アクセス時間 ( 1 0 0 ms) を含めても総合保持性能 (二 ( 2 0 + 2
2 . 5 ) X 0 . 9 / 2 ) が該総合要求性能を上回るゾーン 2 とゾー ン 3を選択して、 C h l 〜 C h 3のブロックデ一夕を、 ゾーン 2 と ゾーン 3に交互に記録する。 ここでは、 3チャンネルなので、 ゾ一 ン 2の C h i と C h 2のデータを、 ゾーン 3に C h 3のデ一夕を記 録する。
ステップ 2 : 1 2 Mbps ( 2 c h記録) の総合要求性能に対して は、 ゾーン 1の転送レート (= 1 7 . 5 ms) だけで十分に対応でき るが、 できる限り分散記録させるという観点から、 ゾーン 1 に C h 1のデ一夕を、 ゾ一ン 2に C h 2のデータを記録させる。
ステップ 3 : 2 4 Mbps (4 c h記録) の総合要求性能に対して、 アクセス時間 ( 1 0 0 ms) を含めても総合保持性能 (= ( 2 7. 5 + 3 0 ) X 0. 9 / 2 ) が該総合要求性能を上回るゾーン 5とゾー ン 6を選択して、 C h 1〜 C h 4のブロックデータを、 ゾーン 5 と ゾーン 6に交互に記録する。 この場合は、 4チャンネルの記録なの で、 ゾーン 5に C h i と C h 2のデータを、 ゾーン 6の C h 3 と C h 4のデータを記録する。
図 5 5は、 上述した第 3の実施例のステップ 1〜 3の記録方法を 具体的に示す図である。
ステップ 1の場合は、 同図 ( a) に示すように、 まず、 ゾーン 2 に C h 1、 C h 2のブロックデ一夕をシーケンシャルに記録し、 次 に、 ゾーン 3に 5 0 ms で移動し、 ゾーン 2に C h 3のブロックデ 一夕をシーケンシャル記録する。 そして、 再び、 ゾーン 2に 5 0 ms で移動し、 C h l、 C h 2の次のブロックデ一夕をシーケンシャル に記録する。 そして、 再び、 ゾーン 3に 5 0 ms で移動し、 ゾーン 3に C h 3の次のブロックデータをシーケンシャルに記録する。 以 上のような動作を繰り返しながら、 3チャンネルのブロックデータ をゾーン 2とゾーン 3に交互に分散記録していく。
ステップ 2の場合は、 同図 ( b) に示すように、 ゾーン 1 とゾ一 ン 2に、 それぞれ、 C h 1 と C h 2のブロックデータを交互に記録 していく。
ステップ 3の場合は、 同図 ( c ) に示すように、 一方の 2チャン ネルのブロックデ一夕 (C h l、 C h 2 ) と他方の 2チャンネルの ブロックデータ (C h 3、 C h 4 ) を、 ゾーン 5 とゾーン 6の間を 5 0 ms で移動しながら、 ゾーン 5 とゾーン 6に交互に分散 · 記録
していく。
ところで、 上記アクセス時間は、 ヘッ ドの移動の途中では、 移動 する トラック間距離に比例すると考えられるが、 移動の最初と移動 の終了の際には、 それぞれ、 加速と減速が生じるので、 アクセス時 間には、 厳密には非線形的なファクタが加わる。 上記実施例では、 ゾーン間の移動なので、 数千トラック間の移動が常時行われ、 ァク セス時間はトラック間距離に比例すると考える。 そこで、 隣接する ゾーン間の移動時間を往復 1 0 0 ms (片道 5 0 ms) とみなし、 1秒 間でみれば、 転送速度の 1 0 %が無駄になると考えれば、 このォ一 バヘッ ドにゾーン間の距離 (ゾーン番号差) を乗算すれば、 ァクセ ス時間による転送速度の低下を算出できる。
よって、 隣接ゾーン間の往復アクセス時間を ms 単位で表現する と、 実行の総合保持性能は、 下記の式 ( 1 ) で表現できる。
実行総合保持性能 = { (片方ゾーンの転送速度) + (他方ゾーン の転送速度) } / 2 X { 1 0 0 % - { (ゾーン間距離) X (隣接ゾー ン間の往復アクセス時間) Z 1 0 } % } · · · ( 1 )
第 3の実施例において、 ステップ 1のように、 処理するチャンネ ル数が奇数である場合には、 2つのゾーンの内、 どちらに、 より多 数のチャンネルを記録するかにより、 上記式 ( 1 ) の第一項が若干 変わることになる。
次に、 図 5 6から図 5 9のフローチャートを参照して、 上述した 図 5 3に例示した第 1実施例を実現するアルゴリズムを説明する。 本フローチャートでも、 上述した実施形態と同様に、 S t r e a m, Emp t y、 及び F u l 1 のリス トを使用するものとする。
まず、 S t r e a m ( 1 ) 〜 (m) を初期化する。 尚、 この実施
例では、 ガーべ一ジコレクションは行いものとし、 相手 s t r e a mは " 0 " とする。 また、 総合要求性能を求めるために使用する各 チャンネルの要求速度 C h a n n e l — r a t e ( 1 ) 〜 (m) を M P E G 2の要求性能 (ここでは、 6 Mbps とする) に設定する。 また、 さらに、 Em p t y 〔 1〕 〜 〔 2 n〕 及び F u l 1 〔 1〕 〜 〔 2 n〕 を初期設定する。 また、 各ゾーン 1〜 2 nの転送速度を、 Z o n e - r a t e 〔 1〕 〜 〔 2 n〕 に設定する。 また、 これから 記録していく片方ゾーンを示す変数 i n z を " 1 " に、 他方ゾーン を示す変数 o u z を "2 n " に設定する。 この変数 o u z に対する る " 2 n " の設定処理は、 内周及び外周に含まれるゾーン数を偶数 に設定する処理である。
また、 さらに、 総合要求性能を示す変数 t c を " 0 " に設定する。 また、 要求性能に見合う性能があるか (記録可能かどうか) を示す フラグ c o n t を " 0 " に設定する (ステップ S 1 6 1 )。
上記初期化処理に続いて、 命令の種類を判断する (ステップ S 1 6 2 )。 そして、 1 c h記録または 2 c h記録のいずれでもなけれ ば、 図 5 8のステップ S 1 8 2に進む。 図 5 8のフローチャートに 示すステツプ S 1 8 2〜 S 1 8 9の処理は、 上述した図 4 0のステ ップ S 1 4 7〜 S 1 5 4の空きゾーンを選択する処理と同様である ので、 ここでは、 説明を省略する。
また、ステップ S 1 6 2で l c h記録の命令であると判断すれば、 図 5 9のフローチャートのステップ S 1 9 0に進む。 図 5 9のフロ 一チャートに示すステップ S 1 9 0〜 S 1 9 6の処理は、 上述した 図 3 9のステップ S 1 3 3〜 S 1 3 9処理と同様であるので、 ここ では、 説明を省略する。
また、 ステップ S 1 6 2で k c h記録 ( k > l ) の命令であれば、 k c h記録に対する総合要求性能に見合う総合保持性能を持つ 2つ のゾーンを選択する処理を行う (ステップ S 1 6 3 )。
この選択処理では、 以下の ( 1 )、 ( 2 ) の処理を行う。
( 1 ) k c h記録に対する総合保持性能 t c を求める。
( 2 ) 内周側のゾーンからみて、 その内周側のゾーンから外周 側のゾーンに向かって、 総合保持性能 t z を求め、 t z > t cの条 件を満たす 2つの該当ゾーンを探す。 そして、 該当ゾーンがみっか れば、 c o n t に " 1 " を設定する。
次に、 c o n tが " 1 " であるか判断する (ステップ S 1 6 4 )。 そして、 c o n t = 0ならば記録不可能と判断し、 処理を停止する。 一方、 c o n t = 1ならば、 ステップ S 1 6 3で求められた 2つの ゾーン I , J を、 それぞれ、 選択された内周ゾーン i n z , 外周ゾ ーン o u z とする。 また、最初に記録を実行する c h a n n e 1 (チ ヤンネル) を " 1 " とする (ステップ S 1 6 5 )。
次に、 E m p t yリス トを検索して、 内周のゾーン i n zから、 各ゾーンの空き領域を探索し、 空き領域を有するゾーンを見つけ出 す (ステップ S 1 6 6 )。 続いて、 ステップ S 1 6 6で見つけ出 されたゾ一ン I の Em p t y 〔 I〕 のリス トに従い、 ゾーン I に c h a n n e 1 の示すチヤンネルのデータを 1 ブロック記録する。 次 に、 S t r e am ( c h a n n e 1 ) に、 記録された最終アドレス までの 1ブロック分のデータのリス トを登録する。 さらに、 Em p t y 〔 I〕 に (最終ア ドレス + 1, 残りのデ一夕量) ( E n d ) の リス トを登録し、 F u l 1 〔 I〕 に (ゾーン I の先頭アドレス, 記 録デ一夕量) (E n d ) のリス トを登録する。 そして、 c h a n n
e 1 の値を " 1 " インクリメントする (ステップ S 1 6 7 )。
次に、 c h a n n e l〉 kであるか判断し (ステップ S I 6 8 )、 c h a n n e l 〉 kでなければ、 ステップ S 1 6 7に戻る。 ステツ プ S 1 6 8の判断は、 kチャンネルの 1ブロックのデータの記録が 終了したか判断する処理であり、 ステップ S 1 6 8で c h a n n e l 〉 kと判断するまで、 ステップ S 1 6 7の処理を繰り返す。
そして、 ステップ S 1 6 8で kチャンネルの記録が終了したと判 断すると、 c h a n n e 1 を " 1 " に初期化し (ステップ S 1 6 9 ) . 次に、 Em p t y 〔 I〕 のリス ト領域の全てを記録したか判断する (ステップ S 1 7 0 )。 そして、 まだ、 全て記録していなければ、 ステップ S 1 7 2に進む。 一方、 全て記録していれば、 Em p t y 〔 I〕 のリストを E n d (データ量無し) とする。 また、 F u l 1 〔 I〕 のリス トは、 対象ゾーンの全領域が記録されたとして、 (ゾ —ン I の先頭ア ドレス、 ゾーン I のデータ量) (E ND) とする。 そして、 I を " 1 " インクリメントする (ステップ S 1 7 1 )。
次に、 記録が終了したか判断し (ステップ S 1 7 2 )、 記録が終 了していれば次の内周ゾーンへのデータの記録の起点となる inner-zone を " I " とし (ステップ S 1 7 3 )、 ステップ S 1 6 2 に戻る。 一方、 記録が終了していなければ、 外周側のゾーンへの記 録に移るために、 E m p t yリス トを検索して、 外周側のゾーン o u zから空き領域の有るゾーン J を見つけ出す (ステップ S 1 7 4 )。
続いて、 Em p t y 〔 J〕 のリス トに従い、 ゾーン J に c h a n n e 1 の示すチャンネルのデ一夕を 1ブロック記録する。 そして、 S t r e arn ( J ) に、 記録された最終アドレスまでの 1ブロック
分のデータのリス トを追加する。 次に、 Em p t y 〔 J〕 には (最 終ア ドレス + 1, 残りデータ量) (E n d ) のリス 卜を登録し、 F u 1 1 〔 J〕 には (ゾーン Jの先頭アドレス、 記録データ量) のリ ス 卜を登録する。 そして、 c h a n n e l の値を " 1 " インク リメ ントする (ステップ S 1 7 5 )。
次に、 c h a n n e l > kであるか判断する (ステップ S 1 7 6 ), この判断は、 ステップ S 1 6 8 と同様に kチャンネルの 1ブロック のデ一夕の記録が終了したか判断する処理であり、 ステップ S 1 7 6で c h a n n e l〉 kと判断するまで、 ステップ S 1 7 5の処理 を繰り返す。
そして、 ステップ S 1 7 6で kチャンネルの記録が終了したと判 断すると、 c h a n n e 1 を " 1 " に初期化し (ステップ S 1 7 7 ). 次に、 Emp t y 〔 J〕 のリス ト領域の全てを記録したか判断し (ス テツプ S 1 7 8 )、 まだ、 全て記録していなければ、 ステップ S 1 8 0に進む。 一方、 全て記録していれば、 Em p t y 〔 J〕 のリス トを E n d (データ量無し) とする。 また、 F u l 1 〔 J〕 のリス トは、 対象ゾーンの全領域が記録されたとして、 (ゾーン Jの先頭 アドレス、 ゾーン J のデ一夕量) (E ND) とする。 そして、 J を " 1 " インクリメントする (ステップ S 1 7 9 )。
次に、 記録が終了したか判断し (ステップ S 1 8 0 )、 記録が終 了していれば次の外周ゾーンへのデータの記録の起点となる outer-zone を " J " とし (ステップ S 1 8 1 )、 ステップ S 1 6 2 に戻る。 一方、 記録が終了していなければ、 ステップ S 1 6 6に戻 る (片方のゾーンに再度、 移る)。
以上説明した、 図 5 6から図 5 9のフローチャートでは、 選択さ
れた 2つのゾーンに kチャンネルのブロックデ一夕をまとめて、 交 互に記録する場合を示している。 このフローチャートの中で、 総合 要求性能に対して、 その性能を上回る総合保持性能を持つ 2つのゾ ーンを選択する処理は、 ステップ S 1 6 3に開示されている。 ステ ップ S 1 6 3の処理は、 第 1の実施例の場合に対応しているが、 第 2の実施例に対応する場合には、 前記式 ( 1 ) に従って総合保持性 能 t z を求めればよい。 また、 第 3の実施例に対応する場合には、 要求チャンネル数 kに応じて、 ステップ S 1 6 6〜 S 1 7 3の処理 と、 ステップ S 1 7 4〜 S 1 8 1の処理を切り分けるようにすれば い。
次に、 Z C L Vに基づき回転制御を行うディスクに対して、 複数 チャンネルのデータの同時記録を実行するディスクアクセス制御方 式において、 ゾーン当たりの記録容量が多いゾーン (主に外周ゾー ン) を優先して、 該複数チャンネルのデータを該ゾーン内に集中し て, 交互に記録する実施形態について説明する。
図 6 0は、 この実施形態のアルゴリズムを説明するフローチヤ一 卜である。
同図のフローチャートに示す処理は、 上述した図 5 6のフローチヤ —卜のステップ S 1 6 2で k c h記録の命令であると判断された場 合に実行される処理であり、 図 5 6から図 5 7のフローチャートの ステップ S 1 6 3〜 S 1 8 1の処理を代替するものである。
したがって、 図 6 0のフローチャートに示す処理は、 図 5 6のス テツプ S 1 6 1 の後、 ステップ S 1 6 2で k c h記録命令と判断さ れたとき呼び出され、 処理終了後、 図 5 6のステップ S 1 6 2に戻 るサブルーチンとして捉えることができる。
図 6 0のフローチャートの説明を開始する。
まず、 Emp t yリストを探索し、 外周側のゾーン (outer- zone) から内周側のゾーンに 1ゾーンづっ移動しながら、 空き領域を有す るゾーン J を見つけ出す (ステップ S 2 0 1 )。
次に、 Em p t y 〔 J〕 のリス トに従い、 ゾーン Jの空き領域に c h a n n e 1 の示すチャンネルのデ一夕を 1ブロック記録する。 次に、 S t r e am ( c h a n n e l ) にゾーン J に記録された該 1ブロック分のデータの最終アドレスまでのリス トを追加する。 続 いて、 Em p t y 〔 J〕 に、 (該最終ア ドレス + 1, 残りのデータ 量) (E n d ) のリス トを登録し、 F UL L 〔 J〕 に、 (ゾーン Jの 先頭ア ドレス、 記録データ量) (E n d ) のリス トを登録する。 そ して、 c h a n n e l の値を " 1 " インクリメントする (ステップ S 2 0 2 )。
続いて、 c h a n n e l > kであるか判断し (ステップ S 2 0 3 ), c h a n n e l 〉 kでなければ、 ステップ S 2 0 2に戻る。 このよ うにして、 ステップ S 2 0 3で c h a n n e l 〉 k、 すなわち、 k チャンネルの 1ブロックデ一夕記録が全て終了したと判断するまで, ステップ S 2 0 2の処理を繰り返す。
そして、 ステップ S 2 0 3で kチャンネルの 1 ブロックデータ記 録が全て終了したと判断すると、 c h a n n e 1 を " 1 " に初期化 し (ステップ S 2 0 4 )、 続いて、 Em p t y 〔 J〕 のリス ト領域 (ゾーン Jの空き領域) を全て記録したか判断し (ステップ S 2 0 5 )、 まだ、 全て記録していなければステップ S 2 0 7に進む。 一 方、 全て記録していれば、 Em p t y 〔 J〕 に E n dを登録する。 また、 F UL L 〔 J〕 に (ゾーン J の先頭アドレス、 ゾーン Jのデ
一夕量) (E n d ) のリス トを登録する。 そして、 J を " 1 " デク リメントして対象ゾーンを 1つ内周側に移す (ステップ S 2 0 6 )。 次に、 記録が終了したか判断し、 まだ、 記録が終了していなけれ ば、 ステップ S 2 0 1 に戻り、 1 ゾーンだけ内周側のゾーンへの記 録に移る。 一方、 記録が終了していれば、 次のデータの記録の起点 となるゾーンを示す outer-zoneを J に設定し(ステップ S 2 0 7 )、 図 5 6のステップ S 1 6 2に戻る。
以上述べた Z C L Vの回転制御方式によるディスクの場合、 どの ゾーンも転送速度が一定であるため、ゾーンを移すメリ ッ トはなく、 逆にゾーンを移動するとシーク時間等によるアクセス時間のロスが 大きい。 したがって、 この場合、 複数ゾーンを使用せず、 記録容量 の多い外周側のゾーンから、 順次、 内周側のゾーンに移動して、 k チャンネルのブロックデータを同一ゾーンにシーケンシャルに連続 して記録することが効果的である。
上述した図 3 1から図 6 0に示したディスクに対する処理を実現 するプログラムは、 図 1 2に示すス トレ一ジシステムのディスクァ クセス制御用 M P U 6 1 によって実行される。 すなわち、 図 3 0に 示すマイクロプロセッサ 7 1 とメモリ 7 2を有する M P U 6 1 によ つて実行される。 この場合、 M P U 6 1が実行するプログラムは可 搬記録媒体 7 4に格納され、 この可搬記録媒体 7 4が媒体駆動装置 7 3に装着されることにより、 M P U 6 1は、 媒体駆動装置 7 3を アクセスして可搬記録媒体 7 4に格納されたプログラムをメモリ 7 2にロー ドして実行する。
また、 プログラムは、 公衆回線、 専用回線、 インターネッ ト等の 各種ネッ トワークを介してダウンロードすることも可能である。 こ
5
88 のような形態の場合、 例えば、 情報提供業者がプログラムを管理し て、 プログラムが更新された場合、 直ちに、 該情報提供業者からダ ゥンロードするようにすることも可能である。 また、 該情報提供業 者が、 プログラムの保守をネッ トワークを介して遠隔実行すること も可能である。
以上、 述べたように、 本発明によれば、 実際の書き込みデ一夕の 転送レートに従って終了期限を決め、 それに基づいてディスクァク セスのスケジユ ーリングを行うことで、 多数のチャネルの記録 再 生が可能になる。 また、 リアルタイムの複数の書き込み要求に対し て書き込み領域による転送レートの違いを利用することで、 処理が 効率化され、 さらに多数のチャネルの記録/再生が可能になる。
また、 本発明では、 ランド · グループ記録方式の記録媒体に対し て 2チャンネルの同時記録を行う場合、 グループ及びランドの記録 領域の連続性を利用して、 一方のチャンネルのデータをグループに 他方のチャンネルのデータをランドに沿って記録することで、 記録 を高速に実行できると共に、 その後の各チャンネルの再生、 削除な ども高速に行うことができ、 ガーベジコレクションの実行回数も削 減できる。
また、 Z C A Vに基づく回転制御を行うディスクに対して、 複数 チャンネルのデータを同時記録する際、 総合要求性能 (複数チャン ネルの同時記録に対する各要求性能の総和)以上の総合保持性能(記 録されるゾーンが持つ転送性能の平均) を有する複数ゾーンを選択 し、 該複数ゾーンに上記複数チャンネルのデータを分散 · 記録する ことで、 複数チャンネルのデータの同時記録の高速実行や、 その後 の各チャンネルの再生、 削除などを容易に行うことができる。
また、 さらに、 Z C L Vの回転制御方式によるディスクに対する 複数チャンネルの同時記録に対しては、 複数ゾーンを使用せず、 記 録容量の多い外周側のゾーンから、 順次、 内周側のゾーンに移動し て、 各チャンネルのブロックデータを同一ゾーンにシーケンシャル に連続して記録することにより、 高速な記録が可能となる。 産業上の利用可能性
本発明は、 ホームネッ トワークにおける映像/音声デ一夕の処理 だけでなく、 複数チャンネルのデータをリアルタイムで処理しなけ ればならないような任意の用途に適用することができる。 例えば、 処理対象のデータをコンピュータシステムへ取り込む場合にも、 同 様の制御が可能である。 また、 アクセス対象としては、 磁気ディス ク、 光ディスク、 光磁気ディスク等のディスク型記録媒体を始めと して、メモリカー ド等も含む任意の記録媒体を用いることができる。