以下、本発明の実施の形態を、図面を参照して説明する。
[第1の実施の形態]
図1は、本発明に係る記録再生システムの第1の実施の形態の構成を示す図である。
図中、1はPC(パーソナルコンピュータ)、2はカムコーダ(デジタルビデオカムコーダ)、3〜5はAVHDD(ランダムアクセス可能なハードディスクを使用した記録再生装置)である。各デバイスはIEEE1394インターフェイスで接続されている。AVHDD3〜5は、DVエンコードされたビデオデータを記録再生できるものであると同時に、詳しくは後述するように、AVHDD3〜5が、1台のAVHDDであるかのように、ビデオデータの記録再生を行う。
こうした構成のシステムにおいて、ユーザがAVHDD3〜5に対して、制御モード及び被制御モードの設定を行う。AVHDD3〜5にはモード切替スイッチが設けられており、ユーザは例えば、IEEE1394バスに接続された3台のAVHDD3〜5のうち1台を制御モードに、残りの2台のAVHDDを被制御モードに設定する。制御モードに設定されたAVHDD(例えばAVHDD3、以下「マスタHDD」と呼ぶ)はAV/C VCRサブユニットとして動作し、被制御モードに設定されたAVHDD(例えばAVHDD4,5、以下「スレーブHDD」と呼ぶ)は非AV/Cデバイスとして動作する。以下の説明では、各AVHDDがビデオデータを何も記録されていない初期状態であり、マスタHDDはIEEE1394バスに初めて接続されたものとする。
制御モード及び被制御モードの設定が行われた後、IEEE1394バスに接続されたマスタHDDは、IEEE1394バスの初期化を行い、その後にIEEE1394バス上のスレーブHDDの検索を行う。この検索方法としては例えば、あらかじめ決められたアドレス空間を利用して相手ノード(デバイス)にreadトランザクションを行って特定の情報があるかどうかを検出したり(図2を参照して後述)、相手ノードの特定のアドレスに対してwriteトランザクションでコマンドを送信し、この結果、自ノードの特定のアドレスにwriteトランザクションで書き込まれるレスポンスを検出したり(図3を参照して後述)して行う。この場合のwriteトランザクションに使用するアドレスは、FCP(Function Control Protocol)で使用するアドレスとは別のアドレスを使用する。
図2は、readトランザクションによってスレーブHDDを検出する場合のトランザクションシーケンス例を示す図である。
マスタHDDは、IEEE1394バス上に接続された各デバイスのあらかじめ決められた特定アドレスに対してreadトランザクションを行う。本実施の形態におけるスレーブHDD1、スレーブHDD2は、readトランザクションが行われる特定アドレスに、自身の持つHDDの情報をセットしており、この情報が、readトランザクションの結果、スレーブHDD1、スレーブHDD2からマスタHDDに応答される。マスタHDDは、スレーブHDD1、スレーブHDD2から応答されたreadレスポンスデータからその情報を検出する。一方、PC及びカムコーダに対してreadトランザクションを行った場合は、マスタHDDでは不明なデータがreadレスポンスデータとして検出されるか、アドレスエラーによってreadトランザクションが失敗するかするため、readトランザクションの対象がスレーブHDDではないことが検出される。
図3は、writeトランザクションによってスレーブHDDを検出する場合のトランザクションシーケンス例を示す図である。
マスタHDDは、IEEE1394バス上に接続された各デバイスのあらかじめ決められた特定アドレスに対してwriteトランザクションで問い合わせコマンドデータを書き込む。writeトランザクションによって書き込まれたデータを受信したスレーブHDD1、スレーブHDD2は、自身の持つHDDの情報をレスポンスとして、マスタHDDのあらかじめ決められた特定アドレスに対してwriteトランザクションで書き込む。この書き込まれたレスポンスデータを基に、マスタHDDは、問い合わせコマンドを書き込んだデバイスがスレーブHDDであることを検出する。一方、PC、カムコーダに対してwriteトランザクションを行った場合は、応答がないか、アドレスエラーによってwriteトランザクションが失敗するため、それらがスレーブHDDではないことが検出される。
図4は、スレーブHDDの検出時にマスタHDDが取得する情報のフォーマットを示す図である。フォーマット中の各項目については図5を参照して後述する。
こうしたフォーマットの情報が、スレーブHDDからのreadレスポンスデータとして、またはスレーブHDDからwriteトランザクションで書き込まれたデータとしてマスタHDDで取得され、マスタHDDによってタイムコードデータとして管理される。
図5は、このマスタHDDによって管理されるタイムコードデータの例を示す図である。図5に示すタイムコードデータは、各AVHDDにまだビデオデータが何も記録されていない初期状態におけるタイムコードデータである。
図中、EUI64欄には、各ノード(デバイス)に付与された64ビットの固有のIDが記載される。PhyID欄には、各ノードのIEEE1394バス上での物理IDが記載される。MaxSize欄には、各AVHDDに備えられたハードディスクの容量が、そのハードディスクにDVエンコードされたビデオデータを記録した場合の記録可能な時間によって記載される。RemainSize欄には、各AVHDDのハードディスクの記録可能な残り容量が、その残り容量にDVエンコードされたビデオデータを記録した場合の記録可能な時間によって記載される。StartTimecode欄には、3台のAVHDDの各ハードディスクを合わせて1つの記録媒体(ハードディスク)と見做した場合に、対応のAVHDDに記録されているビデオデータの最初の部分が、その記録媒体のどの位置に記録されていることに相当するかを示すタイムコードが記載される。EndTimecode欄には、3台のAVHDDの各ハードディスクを合わせて1つの記録媒体(ハードディスク)と見做した場合に、対応のAVHDDに記録されているビデオデータの最後の部分が、その記録媒体のどの位置に記録されていることに相当するかを示すタイムコードが記載される。タイムコードは「:」で区切られ、左から分、秒(00〜59)、フレーム数(00〜29)を示している。図5における「−−:−−:−−」は、タイムコードデータが記録されていないことを示している。RemoteStartTimecode欄には、StartTimecode欄に記載されたタイムコードに対応するビデオデータが、対応のAVHDD上でどの位置に記録されているかを示すタイムコードが記載される。
マスタHDDは、スレーブHDDの検索を終了し、各AVHDDの情報を取得した後、各AVHDDに対してDriveNo.を割り当てる。DriveNo.は、一連の連続するビデオデータを複数のAVHDDに亘って記録する時に、この記録する順番を示し、その割り当ては、EUI64欄の昇順、降順、PhyID欄の昇順、降順、MaxSize欄の昇順、降順、RemainSize欄の昇順、降順などのいずれかに従って行われる。本実施の形態では、図1に示すように、マスタHDDにDriveNo.0を割り当て、スレーブHDDには、RemainSize欄の値の多い方から小さい番号を割り当てている。なお、本実施の形態では、マスタHDDは、データ記録時にDriveNo.の小さなAVHDDから順にビデオデータを記録するように制御を行うが、DriveNo.の大きなAVHDDから記録するように制御を行ってもよい。
次に、PCによって行われるコントロールについて説明する。
ユーザがPC上でコントロールアプリケーションを起動すると、PCはIEEE1394バス上の各デバイスの Configuration ROMを読み込んでデバイスアイコンやモデル名などの情報を取得する。また各デバイスに対して、どんなサブユニットを搭載しているかを問い合わせるVCRサブユニットコマンドを、FCPを使用して送信する。図1に示すシステムでは、カムコーダ及びマスタHDDのみがVCRサブユニットを搭載しているため、これらの2つのデバイスが問い合わせコマンドに対して応答してVCRサブユニットであるという情報をPCに返信し、スレーブHDDは受信したコマンドを無視する。
その後、PCは、取得した情報を基に、モニタ上にデバイス選択用のボタンやデバイスコントロール用のパネルを表示し、これによって、ユーザがデバイスのコントロールを行えるようになる。この表示をみたユーザが、カムコーダを送信側のデバイスとして選択すると、PCが、再生用コントロールコマンドをカムコーダに発行し、またマスタHDDを受信側デバイスとして選択すると、PCが、記録用のコントロールコマンドをマスタHDDに発行する。カムコーダ及びマスタHDDは、発行されたコントロールコマンドに従い、再生モード及び記録モードにそれぞれ移行し、カムコーダがビデオデータを再生してAVHDDのいずれかがそれをダビングする。
次に、マスタHDD、スレーブHDD1、スレーブHDD2からなる3台のAVHDDにおいて行われるビデオデータの記録動作について以下に説明を行う。
マスタHDDは、図5を参照して、DriveNo.の小さいAVHDDから順に記録を開始する。図5に示す例では、DriveNo.0のマスタHDDが先ず選択され、マスタHDDが記録可能であるので、カムコーダが送信しているビデオデータをマスタHDDのハードディスクに記録していく。
ここで例えば、30分間記録をした時点でPCが記録停止のコントロールコマンドをマスタHDDに発行した場合、図7に示すトランザクションシーケンスが実行され、マスタHDDは記録を停止する。
図6は、30分間の記録後、記録停止が行われた時点でのマスタHDDが管理するタイムコードデータを示す図である。
次に再度PCから記録開始コマンドがマスタHDDに対して発行されたとする。このとき、DriveNo.0のマスタHDDのハードディスクには記録可能な領域が残存するため、マスタHDDは、カムコーダが送信しているビデオデータをマスタHDDのハードディスクに記録する。この時のトランザクションシーケンスを図8に示す。
このまま記録を継続すると、30分後にマスタHDDの記録領域がなくなる。そのため、マスタHDDはDriveNo.1のスレーブHDD1に対して記録開始の制御コマンドを発行する。この制御コマンドの発行は、例えばスレーブHDD1のアドレスに対してwriteトランザクションで、記録開始を指示するデータを書き込むことによって行う。この時のトランザクションシーケンスを図9に示す。
この制御コマンドを受信したDriveNo.1のスレーブHDD1は、カムコーダが送信しているビデオデータの記録を開始する。
この記録を行って15分間経過した時点でPCが記録停止のコントロールコマンドを発行したとする。この場合、コントロールコマンドを受信したマスタHDDは、記録中のスレーブHDD1に対して、図11に示すトランザクションシーケンスに従い、記録停止の制御コマンドを発行する。これを受信したスレーブHDD1は記録を停止する。
図10は、75分間分のビデオデータの記録後、記録停止が行われた時点でのマスタHDDが管理するタイムコードデータを示す図である。
次に再度PCから記録開始コマンドがマスタHDDに対して発行されたとする。このとき、DriveNo.0のマスタHDDのハードディスクには記録可能な領域が存在せず、DriveNo.1のスレーブHDD1には記録可能な領域が残存するため、マスタHDDは、DriveNo.1のスレーブHDD1に対して記録開始の制御コマンドを発行し、スレーブHDD1は記録を開始する。この時のトランザクションシーケンスを図12に示す。
この後、更に15分間記録を続けると、スレーブHDD1の残存する記録領域がなくなるため、スレーブHDD1はマスタHDDに対して、記録領域がなくなることを通知する通知信号を送信する。この通知信号を受信したマスタHDDは、DriveNo.2のスレーブHDD2に対して記録開始の制御コマンドを発行し、スレーブHDD2はカムコーダが送信しているビデオデータの記録を開始する。この時のトランザクションシーケンスを図13に示す。
この後、10分間記録を続けた時点でPCが記録停止のコントロールコマンドを発行したとする。この場合、このコントロールコマンドを受信したマスタHDDは、図15に示すトランザクションシーケンスに従って、記録中のスレーブHDD2に対して記録停止の制御コマンドを発行する。この制御コマンドを受信したスレーブHDD2は記録を停止する。
図14は、100分間分のビデオデータの記録後、記録停止が行われた時点でのマスタHDDが管理するタイムコードデータを示す図である。
次に、前述の記録動作を行った3台のAVHDDからデータ再生を行う場合の再生動作について以下に説明を行う。
マスタHDDは、次に再生されるべき再生位置の情報を管理し、その位置情報に基づいて、複数のAVHDDに記録された一連のビデオデータの再生制御を行う。位置情報としてタイムコードを利用する。
PCが再生コントロールコマンドをマスタHDDに送信すると、マスタHDDは、管理しているタイムコードデータ(図14)を参照して、再生すべきビデオデータが記録されているAVHDDを判別する。例えば、再生の初期状態では、StartTimecode欄に「00:00:00」を保持しているAVHDDを検出する。この場合、DriveNo.0のマスタHDDが保持しているので、マスタHDDは自身のハードディスクからビデオデータを読み出して出力を行う。この時のトランザクションシーケンスを図16に示す。
マスタHDDは、データ出力中は、次に再生されるべき再生位置情報を出力データの位置に応じて更新する。
マスタHDDから60分間に亘って再生が行われるか、検索(Search)などの特殊再生等によってマスタHDDに記録されている最後のビデオデータが再生されると、マスタHDDは、DriveNo.1のスレーブHDD1に対して再生制御コマンドを発行する。
図17は、再生制御コマンドのフォーマットを示す図である。
この再生制御コマンドには、次に再生されるべき再生位置情報が、スレーブHDD1上での再生位置情報と、3台のAVHDDの各ハードディスクを1つの記憶媒体(ハードディスク)と見做した場合のその記憶媒体上での再生位置情報とによって表される。すなわち、この時マスタHDDの管理している再生位置情報のタイムコードは「60:00:00」であり、このタイムコードに対応するスレーブHDD1上でのタイムコードは、図14のタイムコードデータ(MaxSize)に基づいて計算すると「00:00:00」である。また、3台のAVHDDの各ハードディスクを1つの記憶媒体(ハードディスク)と見做した場合のその記憶媒体上でのタイムコードは「60:00:00」である。
マスタHDDは、再生制御コマンドにおけるRemote_timecord_minute、Remote_timecord_second、Remote_timecord_frameに、スレーブHDD1上でのタイムコード「00:00:00」に基づき、00,00,00をそれぞれセットし、また、System_timecord_minute、System_timecord_second、System_timecord_frameに、3台のAVHDDの各ハードディスクを1つの記憶媒体(ハードディスク)と見做した場合のその記憶媒体上でのタイムコード「60:00:00」に基づき、60,00,00をそれぞれセットして、スレーブHDD1に対して送信する。
この再生制御コマンドを受信したスレーブHDD1は、再生すべき位置情報に基づいて、スレーブHDD1上でのタイムコード「00:00:00」に相当するハードディスク位置から、ビデオデータの再生を開始する。この時のトランザクションシーケンスを図18に示す。
なお、本実施の形態で各AVHDDに記録されるビデオデータはDVエンコードされており、このデータフォーマットでは、特定位置にタイムコード、絶対トラック番号(Absolute Track Number)等の位置情報が含まれるようになっている。マスタHDDは、このビデオデータから得られる位置情報を利用して再生位置情報を管理するようにしてもよい。ただし、ビデオデータの記録時に、各AVHDDが独自の位置情報を記録するため、各AVHDDに記録されるビデオデータの先頭のタイムコードは「00:00:00」となっている。したがって、このままのタイムコードを利用すると、マスタHDDが最後に再生したビデオデータのタイムコードは「59:59:29」であり、次に再生されるべきスレーブHDD1のビデオデータのタイムコードは「00:00:00」であるので、両者の間で不連続が起きてしまう(次に再生されるべきスレーブHDD1のビデオデータのタイムコードは「60:00:00」でなければならない)。こうしたことを回避するため、スレーブHDD1は、マスタHDDから送信された再生制御コマンドに含まれる、3台のAVHDDの各ハードディスクを1つの記憶媒体(ハードディスク)と見做した場合のその記憶媒体上でのタイムコード「60:00:00」に、次に再生されるべきスレーブHDD1のビデオデータのタイムコード「00:00:00」を加算し、得られたタイムコードを、次に再生されるべきスレーブHDD1のビデオデータのタイムコードに置き換えてマスタHDDに出力し、ビデオデータから得られる位置情報とするようにしてもよい。
次に、スレーブHDD1が再生動作中に、PCが再生停止コントロールコマンドをマスタHDDに発行したとする。この場合、マスタHDDは再生中のスレーブHDD1に対して再生停止制御コマンドを発行する。この再生停止制御信号を受信したスレーブHDD1は再生を停止すると共に、最後に再生したビデオデータのタイムコード情報が含まれた通知信号をマスタHDDに送信する。この時のトランザクションシーケンスを図19に示す。
図20は、上記通知信号のフォーマットを示す図である。
マスタHDDは、受信した通知信号に含まれるタイムコード情報を用いて、管理している再生位置情報を更新する。すなわち例えば、スレーブHDD1が再生を開始して10分経過後に再生停止した場合には、スレーブHDD1が、通知信号におけるStop_timecode_minute、Stop_timecode_second、Stop_timecode_frameに、69、59、29をそれぞれセットして、マスタHDDに対して送信する。マスタHDDは、受信したタイムコード「69:59:29」に1フレームを加算して得られるタイムコード「70:00:00」を、次に再生すべき位置情報として更新する。
この再生位置情報の更新は、スレーブHDD1の送信するビデオデータを受信し、前述したように、DVエンコードされた受信ビデオデータからタイムコードを検出することによって行ってもよい。この手法を用いると、マスタHDDは常に位置情報の更新を行うことができる。
次に、上記の再生停止コントロールコマンドの発行の後、PCがマスタHDDに対して再生コントロールコマンドを発行したとする。この場合、マスタHDDは、更新された再生位置情報を基に、再度スレーブHDD1に対して再生制御コマンドを発行する。このとき、マスタHDDの管理している再生位置情報(タイムコード)は「70:00:00」であり、このタイムコードに対応するスレーブHDD1上のタイムコードは、図14のタイムコードデータ(MaxSize)を参照して計算すると、「10:00:00」である。したがって、マスタHDDは、スレーブHDD1上における再生位置情報として「10:00:00」をセットし、3台のAVHDDの各ハードディスクを1つの記憶媒体(ハードディスク)と見做した場合のその記憶媒体上での再生位置情報として「70:00:00」をセットした再生制御コマンドをスレーブHDD1に対して送信する。
この再生制御コマンドを受信したスレーブHDD1は、再生すべきデータ位置情報に基づいて、スレーブHDD1のハードディスクに記録されたビデオデータの再生を開始する。またこのとき、前述したようにDVエンコードされたビデオデータのタイムコードの置き換えを行う。この時のトランザクションシーケンスを図21に示す。
その後、スレーブHDD1に記録されているビデオデータの再生が全部終了すると、スレーブHDD1は、再生終了を通知する通知信号をマスタHDDに対して送信する。
この再生終了通知信号を受信したマスタHDDは、再生位置情報を更新してDriveNo.2のスレーブHDD2に対して再生開始の制御コマンドを発行する。このときマスタHDDの管理している再生位置情報のタイムコードは「90:00:00」であり、このタイムコードに対応するスレーブHDD2上におけるタイムコードは、図14のタイムコードデータ(MaxSize)を参照して計算すると、「00:00:00」である。したがって、マスタHDDは、スレーブHDD2上における再生位置情報として「00:00:00」をセットし、3台のAVHDDの各ハードディスクを1つの記憶媒体(ハードディスク)と見做した場合のその記憶媒体上での再生位置情報として「90:00:00」をセットした再生制御コマンドをスレーブHDD2に対して送信する。
この再生制御コマンドを受信したスレーブHDD2は、再生すべきデータ位置情報に基づいて、スレーブHDD2のハードディスクに記録されたビデオデータの再生を開始する。またこのとき、スレーブHDD1と同様に、DVエンコードされたビデオデータのタイムコードの置き換えを行う。この時のトランザクションシーケンスを図22に示す。
なお、マスタHDDは、前述したように、スレーブHDD1から通知信号を受信することによって、スレーブHDD1での再生が終了したことを認識するようにしているが、これに代わって、マスタHDDが、スレーブHDD1から再生されたビデオデータを受信し、DVエンコードされたこの受信ビデオデータからタイムコードを検出し、この検出タイムコードを、図14に示すEndTimecode欄の値と比較することによって、スレーブHDD1での再生の終了を認識するようにしてもよい。例えば上記の検出タイムコードが「89:58:29」であれば、図14に示すEndTimecode欄のスレーブHDD1(DriveNo.1)に対応する値「89:59:29」と比較すると、あと1秒後にスレーブHDD1の再生が終了することが認識できる。
以上説明した第1の実施の形態においては、PCがマスタHDDに対してデジタルインターフェイスを介してコントロールコマンドを送信する構成になっているが、マスタHDDに操作用のボタン等が備えられている場合、この操作ボタンを使用してユーザがマスタHDDに対して記録・再生要求を行うようにしてもよい。なお、被制御モードに設定されたスレーブHDDが操作用のボタン等を備えている場合、スレーブHDD上の操作ボタンによる操作をマスタHDDが受け付けないようにすることによって、マスタHDD上の操作ボタンに対する操作以外では動作しないようにでき、システムとして矛盾のない動作を行うことができる。
また、マスタHDDが管理するタイムコード情報を、マスタHDDの備えるハードディスクまたはフラッシュメモリ等の電源を切断しても情報が保持される別の記憶媒体に記録しておくようにしてもよい。これにより、電源を一旦切断しても次回電源を入れたときに、複数のAVHDDからなる記録再生システムを同じ構成で構築することができる。
以下に、電源を一旦切断したあとに電源を入れたときの記録再生システムの再構成に関して説明する。ここでは、図14に示す記録状態のタイムコードデータがマスタHDDの不揮発性の記憶媒体に記憶され、その後、マスタHDDの電源が一旦切断され、再度電源を入れられたとする。
IEEE1394バスの初期化終了後、マスタHDDは、前述のようにスレーブHDDの検索を行う。検索を終了したマスタHDDは、不揮発性の記憶媒体に記憶されているデータ(図14に示すデータと同一)を読み出し、このデータ内のEUI64欄の値と、スレーブHDDの検索の結果得られたスレーブHDDのタイムコードデータにおけるEUI64欄相当の値とを比較して、IEEE1394バス上に存在する各スレーブHDDが以前の接続状態に、スレーブHDDの総数を含めて同一であることを確認する。確認できたら、各スレーブHDDに、以前と同じDriveNo.を割り当てる。これによって、不揮発性の記憶媒体に記憶されていたデータを利用することができ、以前と同様の記録再生システムを再構成することができる。
なおまた、上記の第1の実施の形態では、3台のAVHDD3〜5がIEEE1394バス上に存在する構成になっているが、IEEE1394バス上にAVHDDが複数台存在すれば、本発明は適用可能であり、AVHDDは2台以上の多数がIEEE1394バス上に存在し得る。また、ビデオデータを提供する装置はカムコーダだけに限定されるものではなく、ビデオデータを提供可能であれば、どんな装置であってもよい。
さらにまた、上記の第1の実施の形態では、3台のAVHDD3〜5がビデオデータを記録再生するものとしたが、音声データを記録再生する装置に対しても本発明は適用可能である。
[第2の実施の形態]
次に第2の実施の形態を説明する。
上記の第1の実施の形態では、あらかじめ1台のAVHDDに対して制御モードを設定し、他の2台に対しては被制御モードを設定しておく必要があった。また、第1の実施の形態における記録再生システムから制御モードのAVHDDが取り除かれると、ユーザが再設定を行わない限り、PCが他の残りのAVHDDに記録または再生を行うことができなくなってしまうという問題があった。
第2の実施の形態では、こうした問題を解決するために、複数のAVHDDがIEEE1394バス上に接続されている場合、IEEE1394バスの初期化後に複数のAVHDDの相互間でネゴシエーションを行って、自動的に各AVHDDが制御モード/被制御モードの設定を行うようにする。
なお、第2の実施の形態の構成は、基本的に第1の実施の形態の構成と同じであるので、第2の実施の形態の説明においては、第1の実施の形態の構成を流用し、異なる構成部分だけを説明する。
図23及び図24は、第2の実施の形態における複数のAVHDDの各々で実行される制御モード/被制御モードの設定処理の手順を示すフローチャートである。
ここでは、図25〜図29に示す各種の記録再生システムを例に挙げて、これらの記録再生システムにおける制御モード/被制御モードの設定を、上記フローチャートを参照しながら説明する。
図25は、IEEE1394バス上にPCが1台、カムコーダが1台、AVHDDが1台接続される記録再生システムを示す図である。
IEEE1394バス上にAVHDD1を接続して電源を入れると、バスリセットが発生して、IEEE1394バスの初期化が行われる。AVHDD1は、バスリセット前の状態が制御モード(マスタHDDモード)、被制御モード(スレーブHDDモード)のうち、いずれのモードに設定されていたかを記憶するためのモード記憶メモリを有しており、AVHDD1は初期状態では被制御モードに設定されている。
AVHDD1はバスの初期化が終了すると、モード記憶メモリの記憶内容を確認し(S1)、バスリセット前の状態が被制御モードであるので(S1でNO)、AVHDD1が持つタイマをスタートさせて(S2)、IEEE1394バスに接続された他のAVHDDから検索問い合わせが行われるのを待機する(S3でNO、S4でNO)。図25に示す記録再生システムでは、IEEE1394バス上に他のAVHDDが存在しないため、前記タイマをスタートさせたあと所定時間が経過しても、検索問い合わせはない(S3でNO、S4でYES)。そこで、AVHDD1は、サーチフラグを「FALSE」に設定するとともに、前記タイマを再度スタートさせ(S6)、他のノードに対してAVHDDの検索問い合わせを開始する(S7)。
図25に示す記録再生システムでは、IEEE1394バス上にはAVHDD1の他にPCとカムコーダとが接続されており、そのPCとカムコーダの2つのノードに対して個別に、第1の実施の形態で前述した手法でreadトランザクションまたはWriteトランザクションを用いて問い合わせを行う。IEEE1394バス上の全てのノードに対する問い合わせが終了後(S10でYES)、前記タイマがタイムアウトすると(S11でYES)、サーチフラグが「FALSE」であるので(S14でNO)、AVHDD1は自ノードを制御モード(マスタHDDモード)に設定し(S16)、AVHDD1が持つモード記憶メモリに制御モードであることを記憶する。
これにより、図25に示す記録再生システムでは、AVHDD1がマスタHDDとなり、1台だけのAVHDDでシステムが構築される。
次に、図26に示す、IEEE1394バス上にPCが1台、カムコーダが1台、AVHDDが2台接続される記録再生システムを例に挙げて説明する。
図26は、図25に示す記録再生システムに、AVHDD2が追加された構成であり、AVHDD2は、AVHDD1と同様に、バスリセット前の設定モードを記憶するモード記憶メモリを有しており、初期状態ではこのメモリに被制御モードが設定されている。
AVHDD2をIEEE1394バスに接続するとバスリセットが発生し、IEEE1394バスの初期化が行われる。AVHDD2は、IEEE1394バスの初期化が終了すると、モード記憶メモリの記憶内容を確認し(S1)、バスリセット前の状態が被制御モードであるので(S1でNO)、AVHDD2が持つタイマをスタートさせて(S2)、IEEE1394バスに接続された他のAVHDDから検索問い合わせが行われるのを待機する(S3でNO、S4でNO)。
一方、バスの初期化が終了すると、AVHDD1のモード記憶メモリには、前述のように制御モードであったことが記憶されているので(S1でYES)、AVHDD1は、サーチフラグを「FALSE」に設定するとともに、AVHDD1の持つタイマをスタートさせる(S6)。そして、他のノードに対してAVHDDの検索問い合わせをノードごと開始する(S7)。図26に示す記録再生システムでは、IEEE1394バス上にAVHDD1の他に、PC、カムコーダ、AVHDD2が接続されており、その3つのノードに対して、第1の実施の形態で説明した手法でreadトランザクションまたはwriteトランザクションを用いて問い合わせを行い、その結果、AVHDD2が検出される。
AVHDD2での処理に戻って、AVHDD2は、他のノードからの問い合わせを待機している期間内に、AVHDD1からの問い合わせがあったので(S3でYES)、自ノードを被制御モード(スレーブHDDモード)に設定して(S5)、AVHDD2の持つモード記憶メモリに被制御モードであることを記憶する。
AVHDD1では、IEEE1394バス上の全てのノードに対して問い合わせを行った後(S10でYES)、他のノードからの問い合わせがないので(S11でNO、S12でNO)、タイマがタイムアウトすると(S11でYES)、サーチフラグをチェックする(S14)。サーチフラグは「FALSE」に設定されているので(S14でNO)、自ノードを制御モード(マスタHDDモード)に設定し(S16)、AVHDD1が持つモード記憶メモリに制御モードであることを記憶する。
図26に示す記録再生システムでは、AVHDD1がマスタHDD、AVHDD2がスレーブHDDとなり、2台のAVHDDからなるシステムが構築される。
次に、図27に示す、IEEE1394バス上にPCが1台、カムコーダが1台、AVHDDが3台接続される記録再生システムを例に挙げて説明する。
図27は、図26に示す記録再生システムに、AVHDD3が追加された構成であり、AVHDD3は、AVHDD1、AVHDD2と同様に、バスリセット前の設定モードを記憶するモード記憶メモリを有しており、初期状態ではこのメモリに被制御モードに設定されている。
AVHDD3をIEEE1394バスに接続すると、バスリセットが発生し、IEEE1394バスの初期化が行われる。AVHDD2のモード記憶メモリには前述のように被制御モードであったことが記憶されており、AVHDD2およびAVHDD3はバスの初期化が終了すると、各モード記憶メモリを読み出して、バスリセット前の状態が被制御モードであることを検出し(S1でNO)、各々がタイマをスタートさせて(S2)、IEEE1394バスに接続された他のAVHDDの検索問い合わせが行われるのを待機する(S3でNO、S4でNO)。
一方、バスの初期化が終了すると、AVHDD1のモード記憶メモリには、前述のように制御モードであったことが記憶されているので(S1でYES)、AVHDD1は、サーチフラグを「FALSE」に設定するとともに、AVHDD1の持つタイマをスタートさせる(S6)。そして、他のノードに対してAVHDDの検索問い合わせをノードごと開始する(S7)。図27に示す記録再生システムでは、IEEE1394バス上にAVHDD1の他に、PC、カムコーダ、AVHDD2、AVHDD3が接続されており、その4つのノードに対して、第1の実施の形態で説明した手法でreadトランザクションまたはwriteトランザクションを用いて問い合わせを行い、その結果、AVHDD2及びAVHDD2が検出される。
AVHDD2およびAVHDD3での処理に戻って、各々は、他のノードからの問い合わせを待機している期間内に、AVHDD1からの問い合わせがあったので(S3でYES)、自ノードを被制御モード(スレーブHDDモード)に設定して(S5)、AVHDD2およびAVHDD3の持つモード記憶メモリに被制御モードであることをそれぞれ記憶する。
AVHDD1では、全てのバス上のノードに対して問い合わせを行った後(S10でYES)、他のノードからの問い合わせがないので(S11でNO、S12でNO)、タイマがタイムアウトすると(S11でYES)、サーチフラグをチェックする。サーチフラグは「FALSE」に設定されているので(S14でNO)、自ノードを制御モード(マスタHDDモード)に設定し(S16)、AVHDD1が持つモード記憶メモリに制御モードであることを記憶する。
図27に示す記録再生システムでは、AVHDD1がマスタHDD、AVHDD2及びAVHDD3がスレーブHDDとなり、3台のAVHDDからなるシステムが構築される。
次に、図28に示す、IEEE1394バス上にPCが1台、カムコーダが1台、AVHDDが2台接続される記録再生システムを例に挙げて説明する。
図28は、図27に示す記録再生システムからAVHDD1が取り除かれた構成である。
AVHDD1をIEEE1394バスから取り除く(またはAVHDD1の電源を切断する)とバスリセットが発生し、IEEE1394バスの初期化が行われる。AVHDD2およびAVHDD3の各モード記憶メモリには前述のように被制御モードであったことが記憶されており、AVHDD2およびAVHDD3はバスの初期化が終了すると、各モード記憶メモリの記憶内容を確認し(S1)、バスリセット前の状態がそれぞれ被制御モードであるので(S1でNO)、各々が持つタイマをスタートさせて(S2)、IEEE1394バスに接続された他のAVHDDから検索問い合わせが行われるのを待機する(S3でNO、S4でNO)。図28に示す記録再生システムでは、IEEE1394バス上にバスリセット前にマスタHDDであったADHDDが存在しないため、前記タイマをスタートさせたあと所定時間が経過しても、検索問い合わせはない(S3でNO、S4でYES)。そこで、AVHDD2およびAVHDD3は、サーチフラグを「FALSE」に設定するとともに、前記タイマをそれぞれ再度スタートさせ(S6)、他のノードに対してAVHDDの検索問い合わせをノードごとに開始する(S7)。
図28に示す記録再生システムでは、IEEE1394バス上にPC、カムコーダ、AVHDD2、AVHDD3が接続されており、AVHDD2はPC、カムコーダ、AVHDD3に対してAVHDDの検索問い合わせを行い、AVHDD3はPC、カムコーダ、AVHDD2に対してAVHDDの検索問い合わせを行う。AVHDD2、AVHDD3は共にAVHDDを検出する。
AVHDD2およびAVHDD3は各々、全ノードに対する問い合わせを終了して(S10でYES)、前記タイマがタイムアウトする前に(S11でNO)自ノードに対してAVHDDの検索問い合わせがあったことをそれぞれ検出する(S12でYES)。すなわち、AVHDD2はAVHDD3から、AVHDD3はAVHDD2から問い合わせがそれぞれあったので、各AVHDDは、各サーチフラグを「TRUE」に設定するとともに、問い合わせ元の物理ID(PhyID)を記憶しておく(S13)。
前記タイマがタイムアウトした後(S11でYES)、AVHDD2およびAVHDD3の各サーチフラグが「TRUE」にそれぞれ設定されているので(S14でYES)、各AVHDDは、前記記憶されたPhyIDと自ノードのPhyIDとを比較して、自ノードのPhyIDが記憶されたPhyIDよりも小さいとき(S15でYES)、自ノードを制御モードに設定し(S16)、そうでないとき(S15でNO)自ノードを被制御モードに設定する(S5)。例えばAVHDD2のPhyIDが5、AVHDD3のPhyIDが3の場合、AVHDD3が制御モードとなり、AVHDD2が被制御モードとなる。なお、図28に示す記録再生システムでは、AVHDDの検索問い合わせ元は1つしか存在しないが、複数のノードからAVHDDの検索問い合わせを行った場合は、全ての問い合わせ元のPhyIDよりも自ノードのPhyIDが小さい場合に、自ノードが制御モードに設定される。
前述のように、図28に示す記録再生システムでは、AVHDD3がマスタHDDとなり、AVHDD2がスレーブHDDとなって、2台のAVHDDからなるシステムが構築される。
次に、図29に示す、IEEE1394バス上にPCが1台、カムコーダが1台、AVHDDが3台接続される記録再生システムを例に挙げて説明する。
図29は、図28に示す記録再生システムにAVHDD1を追加した構成である。
AVHDD1およびAVHDD3のモード記憶メモリには共に制御モードであったことが記憶されており、AVHDD2のモード記憶メモリには被制御モードであったことが記憶されている。
IEEE1394バスにAVHDD1を接続するとバスリセットが発生し、IEEE1394バスの初期化が行われる。AVHDD2のモード記憶メモリには前述のように被制御モードであったことが記憶されており、AVHDD2はバスの初期化が終了すると、モード記憶メモリを読み出して、バスリセット前の状態が被制御モードであることを検出し(S1でNO)、タイマをスタートさせて(S2)、IEEE1394バスに接続された他のAVHDDの検索問い合わせが行われるのを待機する(S3でNO、S4でNO)。
一方、バスの初期化が終了すると、AVHDD1及びAVHDD3は、各モード記憶メモリに前述のように制御モードであったことが記憶されているので(S1でYES)、各サーチフラグを「FALSE」に設定するとともに、各タイマをスタートさせる(S6)。そして、他のノードに対してAVHDDの検索問い合わせをノードごと開始する(S7)。図29に示す記録再生システムでは、IEEE1394バス上にPC、カムコーダ、AVHDD1、AVHDD2、AVHDD3が接続されており、AVHDD1はPC、カムコーダ、AVHDD2、AVHDD3に対してAVHDDの検索問い合わせを行い、AVHDD3はPC、カムコーダ、AVHDD1、AVHDD2に対してAVHDDの検索問い合わせを行う。
AVHDD2での処理に戻って、AVHDD2は、他のノードからの問い合わせを待機している期間内に、AVHDD1及びAVHDD3からの問い合わせがあったので(S3でYES)、自ノードを被制御モード(スレーブHDDモード)に設定して(S5)、AVHDD2の持つモード記憶メモリに被制御モードであることを記憶する。
AVHDD1およびAVHDD3は各々、全ノードに対する問い合わせを終了して(S10でYES)、前記タイマがタイムアウトする前に(S11でNO)自ノードに対してAVHDDの検索問い合わせがあったことをそれぞれ検出する(S12でYES)。すなわち、AVHDD1はAVHDD3から、AVHDD3はAVHDD1から問い合わせがそれぞれあったので、各AVHDDは、各サーチフラグを「TRUE」に設定するとともに、問い合わせ元の物理ID(PhyID)を記憶しておく(S13)。
前記タイマがタイムアウトした後(S11でYES)、AVHDD1およびAVHDD3の各サーチフラグが「TRUE」にそれぞれ設定されているので(S14でYES)、各AVHDDは、前記記憶されたPhyIDと自ノードのPhyIDとを比較して、自ノードのPhyIDが記憶されたPhyIDよりも小さいとき(S15でYES)、自ノードを制御モードに設定し(S16)、そうでないとき(S15でNO)自ノードを被制御モードに設定する(S5)。
例えばAVHDD1のPhyIDが1、AVHDD3のPhyIDが3の場合、AVHDD1が制御モードとなり、AVHDD3が被制御モードとなる。
これにより、前述のように図29に示す記録再生システムでは、AVHDD1がマスタHDDとなり、AVHDD2、AVHDD3がスレーブHDDとなって、3台のAVHDDからなるシステムが構築される。
本実施の形態では、複数のAVHDDがAVHDDの検索問い合わせを行った場合、PhyIDが最も小さなノードが制御モードに設定されるようになっているが、PhyIDが最も大きいノードが制御モードに設定されるようにしてもよい。
[第3の実施の形態]
次に第3の実施の形態を説明する。
上記の第1の実施の形態では、制御モードに設定されたAVHDDが、他のAVHDDの検索を行って、被制御モードに設定されているAVHDDに関する管理情報(タイムコード情報)を取得して記憶するが、IEEE1394バス上に新たに被制御モードのAVHDDが追加された場合や、IEEE1394バス上から被制御モードのAVHDDを取り除いた場合に対する制御手法が提供されていなかった。
第3の実施の形態では、被制御モードに設定されたAVHDDの新たな追加や削除に対する制御手法を提供すべく、IEEE1394バス上から被制御モードのAVHDDが取り除かれた場合には、このAVHDDに関する記憶していた管理情報を削除するとともに、IEEE1394バス上の他の被制御モードのAVHDDに付与されていた識別番号(PhyID)を新たに割り当てし直し、またIEEE1394バス上に新たに被制御モードのAVHDDが追加された場合には、このAVHDDに関する管理情報を追加して記憶するようにする。
なお、第3の実施の形態の構成は、基本的に第1の実施の形態の構成と同じであるので、第3の実施の形態の説明においては、第1の実施の形態の構成を流用し、異なる構成部分だけを説明する。
図30は、第3の実施の形態における記録再生システムの構成例を示す図である。この構成例は、図1に示す記録再生システムからスレーブHDD1を取り除いた例を示しており、図1に示すスレーブHDD1が取り除かれる前のマスタHDDが管理している情報は、図14に示すタイムコード情報と同じである。
第3の実施の形態でも第1の実施の形態と同様に、マスタHDDが、IEEE1394バスの初期化後に、IEEE1394バス上のスレーブHDDの検索を行う。図30に示す構成例においては、スレーブHDD1が1台だけ検出され、マスタHDDがスレーブHDD1のタイムコード情報を取得する。検出されたスレーブHDD1は、EUI64の値から、図14におけるDriveNo.2のAVHDDと同一であることが分かる。スレーブHDD検出の際に取得したデータのMax_size、Remain_sizeの値は、図14に示す登録値と同じ値であり、スレーブHDD1の状態が変化していないことが検出されるため、マスタHDDは、図14に示す管理データを引き続き使用する。
一方、図14におけるDriveNo.1のAVHDDは検出されないため、このAVHDDのデータは管理情報から削除され、図14において、削除されたAVHDDの後に登録されていたAVHDDのDriveNo.は繰り上がり、マスタHDDが管理するタイムコード情報は、図31に示すような情報になる。
コントローラであるPCから記録・再生制御コマンドを送信されたマスタHDDは、この図31に示すタイムコード情報に基づき、記録再生システムを制御して記録・再生を行う。
次に、図30に示す構成に新たに被制御モードのAVHDDを1台接続した場合のタイムコード情報の管理方法を、図32を参照して説明する。
図32は、図30に示す構成に新たに被制御モードのAVHDDを1台接続した構成例を示す図である。
図32に示すように、新たにAVHDDを接続すると、IEEE1394バス上でIEEE1394バスの初期化が行われ、マスタHDDはスレーブHDDの検索を開始する。図32の構成例においては、スレーブHDD1とスレーブHDD2の2台のスレーブHDDが検出され、マスタHDDはこれら2台のスレーブHDDのタイムコード情報を取得する。検出されたスレーブHDD1はEUI64の値から、図31におけるDriveNo.1のAVHDDであることが分かる。スレーブHDD1の検出の際に取得したMax_size、Remain_sizeの値は、図31に示すタイムコード情報に登録してある値と同じ値であり、スレーブHDD1の状態が変化していないことが検出されるため、マスタHDDは、図31に示すタイムコード情報を引き続き使用する。スレーブHDD2は新たに検出されたAVHDDであり、図31に示すタイムコード情報には登録されていないため、図31に示すタイムコード情報における最後のAVHDDの後ろに新たにDriveNo.を割り当ててタイムコード情報を登録する。その結果図32に示すマスタHDDが管理するタイムコード情報は、図33に示すタイムコード情報となる。
コントローラであるPCから記録・再生制御コマンドを受信したマスタHDDは、この情報に基づいて記録再生システムを制御して記録・再生を行う。
次に、図32に示す構成に、図1に示すスレーブHDD1を再度接続した場合のタイムコード情報の管理方法を、図34を参照して説明する。
図34は、図32に示す構成に、図1に示すスレーブHDD1を再度接続した構成例を示す図である。
前記AVHDDを再度接続するとIEEE1394バス上でバスの初期化が行われ、マスタHDDはスレーブHDDの検索を開始する。図34に示す構成例においては、スレーブHDD1、スレーブHDD2、スレーブHDD3の3台のスレーブHDDが検出され、これら3台のスレーブHDDのタイムコード情報を取得する。検出されたスレーブHDD1、スレーブHDD2はEUI64の値からそれぞれ、図33におけるDriveNo.1およびDriveNo.2のAVHDDであることが分かる。スレーブHDD1、スレーブHDD2の検出の際に取得したMax_size、Remain_sizeの値は、図33に示すタイムコード情報に登録してある値とそれぞれ同じ値であり、スレーブHDD1、スレーブHDD2の状態が変化していないことが検出されるため、マスタHDDは図33に示すタイムコード情報を引き続き使用する。一方、スレーブHDD3は新たに検出されたAVHDDであり、図33に示すタイムコード情報には登録されていないため、図33に示すタイムコード情報の最後のAVHDDの後ろに新たにDriveNo.を割り当てて情報を登録する。その結果、図34におけるマスタHDDが管理するタイムコード情報は、図35に示すタイムコード情報となる。
コントローラであるPCから記録・再生制御コマンドを受信したマスタHDDは、この情報に基づいて記録再生システムを制御して記録・再生を行う。
[第4の実施の形態]
次に第4の実施の形態を説明する。
上記の第3の実施の形態では、一旦管理情報(タイムコード情報)から削除されたAVHDDが記録再生システムに再接続された場合、新たなAVHDDとして管理情報が検出され、該管理情報が、マスタHDDが管理するタイムコード情報に新たに追加される。これに代わって、第4の実施の形態では、一旦管理情報から削除されたAVHDDが記録再生システムに再接続された場合、このAVHDDの元のタイムコード情報を再利用するようにする。
なお、第4の実施の形態の構成は、基本的に第3の実施の形態及びの構成と同じであるので、第4の実施の形態の説明においては、第3の実施の形態の構成を流用する。
第4の実施の形態では第3の実施の形態と同様に、図1におけるスレーブHDD1を取り除いて図30に示す構成に変更した場合、図1におけるスレーブHDD1のタイムコード情報は、マスタHDDが管理するタイムコード情報から削除される。ただしこの時、第4の実施の形態では、削除したタイムコード情報を別の記憶領域に保存しておく。
次に第3の実施の形態と同様に、新たなAVHDDを接続して、図32に示す構成となり、図33に示すタイムコード情報が得られたときに、図32に示す構成に、図1に示すスレーブHDD1が再度接続されたとする。このとき、IEEE1394バスの初期化が行われ、マスタHDDがスレーブHDDの検索を行う。このときスレーブHDD1、スレーブHDD、スレーブHDD3の3台のスレーブHDDが検出され、スレーブHDD1、スレーブHDD2は、図33に示すタイムコード情報に登録されているAVHDDであることが認識される。
一方、スレーブHDD3は、図33に示すタイムコード情報に登録されていないが、先に別の記憶領域に保存されたAVHDDの登録情報に記録されていることが検出される。この別の記憶領域に保存されたAVHDDの登録情報と検出時に取得されたスレーブHDD3のタイムコード情報とを比較し、Max_size、Remain_sizeが一致している場合、スレーブHDD3が以前スレーブHDD1として接続されていた状態から変化していないことが分かり、StartTimecodeおよびEndTimeodeの値から、以前スレーブHDD1として登録されていたスレーブHDDであることが検出される。この結果、スレーブHDD3にDriveNo.1を、スレーブHDD1にDriveNo.2を、スレーブHDD2にDriveNo.3を新たに割り当て、マスタHDDが管理するタイムコード情報は、図36に示すようになり、一旦取り除かれたAVHDDのタイムコード情報を再利用して記録再生システムを再構築することができる。
なお、再接続されたAVHDDから取得したタイムコード情報が、別の記憶領域に保存されたAVHDDの登録情報と一致しない場合、IEEE1394バスから切断されていた間に他のコントローラ等によって、記録されているデータに変更が加えられていると考えられる。この場合には、第3の実施の形態と同様に、新たなAVHDDとして登録を行うことによって記録再生システムの再構築を行うようにする。
[他の実施の形態]
なお、本発明の目的は、各実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した各実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、上記各実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。