(57)【要約】【解決手段】  本装置及び方法は、ホスト装置（１１２）とデータストレージ装置（１１４）との間の通信フローを制御する。複数のデータトランスポートストリームを動作状態に維持しながら、第１のトランスポートストリームに対する第１のデータバーストを開始する。バーストの完全な通信の前に第１のバーストを中断する。第１のトランスポートストリームを動作状態に維持し、第２のトランスポートストリームに対する第１のデータバーストを開始する。第２のトランスポートストリームの第１のバーストを中断し、第２のトランスポートストリームを動作状態に維持し、本方法及び装置は第１のトランスポートストリームの第１のバースト転送の継続に戻る。一般に、第１のトランスポートストリームの第１のバーストの開始前に第１のストリームＩＤがアサートされ、第２のトランスポートストリームの第１のバーストの開始前に第２のストリームＩＤが開始される。
2006505023.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置とデータストレージ装置間のデータの流れを制御するデータ制御方法において、
複数のデータトランスポートストリームを動作状態に維持するステップと、
上記ホスト装置と上記データストレージ装置間で第１のトランスポートストリームに対するデータの第１のバースト転送を開始するステップと、
上記第１のトランスポートストリームの上記第１のバースト転送を中断するステップと、
上記第１のトランスポートストリームを動作状態に維持するステップと、
上記ホスト装置と上記データストレージ装置間で第２のトランスポートストリームに対するデータの第１のバースト転送を開始するステップと、
上記第２のトランスポートストリームの上記第１のバースト転送を中断するステップと、
上記第２のトランスポートストリームを動作状態に維持するステップと、
上記第１のトランスポートストリームの上記第１のバースト転送を継続するステップとを有するデータ制御方法。
【請求項２】
上記第１のトランスポートストリームの上記第１のバースト転送を継続するステップの前に、
上記ホスト装置と上記データストレージ装置間で第３のトランスポートストリームに対する第１のバースト転送を開始するステップと、
上記第３のトランスポートストリームの上記第１のバースト転送を中断するステップと、
上記第３のトランスポートストリームを動作状態に維持するステップとを更に有する請求項１に記載のデータ制御方法。
【請求項３】
上記第１のトランスポートストリームの上記第１のバースト転送を継続するステップの前に、
上記ホスト装置と上記データストレージ装置間で第４のトランスポートストリームに対する第１のバースト転送を開始するステップと、
上記第４のトランスポートストリームの上記第１のバースト全体を転送するステップとを更に有する請求項２に記載のデータ制御方法。
【請求項４】
上記データストレージ装置が、上記ホスト装置と該データストレージ装置間のデータ転送開始を要求するステップと、
上記ホスト装置が上記要求を確認応答するステップと、
上記データストレージ装置が上記第１のトランスポートストリームの第１のストリーム識別情報（ストリームＩＤ）をアサートするステップと、
上記ホスト装置が上記第１のバースト転送の開始を許可するステップとを更に有する請求項１に記載のデータ制御方法。
【請求項５】
上記第１のトランスポートストリームの上記第１のバースト転送を開始するステップの前に、
上記第１のトランスポートストリームの第１のストリームＩＤをアサートするステップと、
上記第２のトランスポートストリームの上記第１のバースト転送を開始するステップの前に、上記第２のトランスポートストリームの第２のストリームＩＤをアサートするステップとを更に有する請求項１に記載のデータ制御方法。
【請求項６】
上記第１のトランスポートストリームの上記第１のバースト転送を再び中断するステップと、
上記第１のトランスポートストリームを動作状態に維持するステップと、
上記第２のストリームＩＤを再びアサートするステップと、
上記第２のトランスポートストリームの上記第１のバースト転送を継続するステップとを更に有する請求項５に記載のデータ制御方法。
【請求項７】
上記第１のトランスポートストリームの上記第１のバースト転送を継続するステップの前に、
第３のトランスポートストリームの第３のストリームＩＤをアサートするステップと、
上記第３のトランスポートストリームに対する許可を受信しそこなうステップと、
上記第３のトランスポートストリームの第１のバースト転送を開始しないステップと、
上記第３のトランスポートストリームを動作状態に維持するステップとを更に有する請求項５に記載のデータ制御方法。
【請求項８】
上記第１のトランスポートストリームの上記第１のバースト転送を開始するステップの前に、
上記第１のトランスポートストリームの第１のストリームＩＤをアサートするステップと、
上記ホスト装置が、上記第１のストリームＩＤに基づいて、上記第１のトランスポートストリームの上記第１のバースト転送からのデータのルーティングを決定するステップとを更に有する請求項１に記載のデータ制御方法。
【請求項９】
上記第１のトランスポートストリームの上記第１のバースト転送を開始するステップの前に、
上記第１のトランスポートストリームの第１のストリームＩＤをアサートするステップと、
上記ホスト装置が、上記第１のストリームＩＤに基づいて、複数のデータセットのうちのどのデータが上記第１のトランスポートストリームに含まれるべきかを判定するステップとを更に有する請求項１に記載のデータ制御方法。
【請求項１０】
データ転送管理システムにおいて、
複数のストリーム識別情報（ストリームＩＤ）入力端子を有するホスト装置と、
上記ストリームＩＤ入力端子に接続された複数のストリームＩＤ出力端子を有し、複数のトランスポートストリームのうちのいずれか１つを上記ホスト装置に対して識別する複数のストリームＩＤをアサートするデータストレージ装置とを備え、
上記ホスト装置は、上記データストレージ装置から受信したストリームＩＤに基づいて、上記複数のトランスポートストリームにより転送されるデータのルーティングを決定することを特徴とするデータ転送管理システム。
【請求項１１】
上記データストレージ装置は、上記データストレージ装置が上記複数のトランスポートストリームを同時に起動するとともに、動作状態を維持することが可能なように、複数のキャッシュを備え、上記複数のトランスポートストリームは上記ホスト装置と上記データストレージ装置間でデータを転送することを特徴とする請求項１０に記載のデータ転送管理システム。
【請求項１２】
上記ホスト装置及びデータストレージ装置は、上記トランスポートストリームを用いて、上記ホスト装置及びデータストレージ装置の間でデータをデータサブバースト転送にて転送することを特徴とする請求項１１に記載のデータ転送管理システム。
【請求項１３】
上記データストレージ装置は、第１のトランスポートストリームを識別する第１のストリームＩＤをアサートし、上記第１のトランスポートストリームを介してデータの第１のバースト転送の転送を開始し、上記第１のバースト転送を中断して第１のデータサブバースト転送の転送を完了することを特徴とする請求項１０に記載のデータ転送管理システム。
【請求項１４】
上記データストレージ装置は、更に、第１のバースト転送の中断後、上記第１のトランスポートストリームを動作状態に維持し、
上記データストレージ装置は、更に、第２のトランスポートストリームを識別する第２のストリームＩＤをアサートし、上記第２のトランスポートストリームを介してデータの第２のバースト転送の転送を開始することを特徴とする請求項１３に記載のデータ転送管理システム。
【請求項１５】
上記データストレージ装置は、更に、上記第２のバースト転送を中断して第２のデータサブバースト転送の転送を完了し、上記第１のストリームＩＤを再アサートし、上記第１のトランスポートストリームを介して上記データの第１のバースト転送を継続することを特徴とする請求項１４に記載のデータ転送管理システム。
【請求項１６】
上記ホスト装置は、上記複数のトランスポートストリームのうちのいずれか１つを介したデータ転送の開始を上記データストレージ装置に許可することを特徴とする請求項１０に記載のデータ転送管理システム。
【請求項１７】
上記ホスト装置は、１トランスポートストリームを介して送信されるデータのバーストの中断を上記データストレージ装置に指示することを特徴とする請求項１０に記載のデータ転送管理システム。
【請求項１８】
上記ホスト装置は、第１のトランスポートストリームを介したデータ転送を上記データストレージ装置に行わせないようにし、第２のトランスポートストリームを介したデータ転送を開始することを特徴とする請求項１０に記載のデータ転送管理システム。
【請求項１９】
上記ホスト装置は、上記データストレージ装置から受信した上記ストリームＩＤに基づいて、上記複数のトランスポートストリームを介して転送されたデータのルーティングを決定するバッファルータを備えることを特徴とする請求項１０に記載のデータ転送管理システム。
【請求項２０】
データ転送制御を行うデータ転送制御装置において、
１つ以上のストリーム識別情報（ストリームＩＤ）を受信する手段を有するホスト装置と、
データストレージ手段とを備え、データストレージ手段は、
１つ以上のトランスポートストリームを識別するための上記１つ以上のストリームＩＤをアサートする手段と、
上記ホスト装置と上記データストレージ手段間でデータ転送をそれぞれ行う複数のトランスポートストリームを同時に起動するとともに、動作状態を維持する手段と、
上記ホスト装置と上記データストレージ手段間でデータ転送がサブバースト転送にて行われるようにデータ転送を制御する手段とを備え、各サブバースト転送は、上記１つ以上のストリームＩＤのうちのいずれかに１つにより、上記１つ以上のトランスポートストリームのうちのいずれか１つに関連付けられることを特徴とするデータ転送制御装置。
【請求項２１】
上記データ転送を制御する手段は、第１のトランスポートストリームを介してデータの第１のバースト転送を開始し、上記第１のバースト転送を中断することにより第１のサブバースト転送を完了し、上記トランスポートストリームを動作状態に維持する手段は、上記第１のトランスポートストリームを動作状態に維持することを特徴とする請求項２０に記載のデータ転送制御装置。
【請求項２２】
上記データ転送を制御する手段は、第２のトランスポートストリームを介してデータの第２のバースト転送を開始し、上記第２のバースト転送を中断することにより第２のサブバースト転送を完了し、上記トランスポートストリームを動作状態に維持する手段は、上記第２のトランスポートストリームを動作状態に維持することを特徴とする請求項２１に記載のデータ転送制御装置。
【請求項２３】
上記１つ以上のストリームＩＤをアサートする手段は、上記データ転送を制御する手段が上記データの第１のバースト転送を開始する前に、第１のストリームＩＤをアサートし、
上記１つ以上のストリームＩＤをアサートする手段は、更に、上記データ転送を制御する手段が上記データの第２のバースト転送を開始する前に、第２のストリームＩＤをアサートすることを特徴とする請求項２２に記載のデータ転送制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、デジタルデータのフォーマティング及び転送に関し、より具体的には、デジタルビデオ、オーディオ、アニメーション、他のデジタル情報のフォーマット及び転送に関する。
【背景技術】
【０００２】
ディスクドライブ等のデータストレージ装置と、コンピュータ又はＣＰＵ等のホスト装置との間のデータ交換には、双方向で大容量のデータ転送が必要である。装置の構成要素間で転送するデータ量が増えると、より多くのデータを一度に伝送し（より広いデータパス）、あるいは転送速度を高速化すること（より高いクロック周波数）が必要となる。
【０００３】
従来の装置においては、データストレージ装置とホスト装置間のデータ転送速度を高めることが試みられている。１つの手法は、半二重モード（すなわち、一度に一方向）におけるデータパスを広げることである。転送データを連続した大容量バッファメモリに蓄え、バースト的に伝送することにより、スループットが高められている。これらのバースト転送は、このような装置によってスケジュールされ、バースト情報はバースト期間中に転送される。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
データストレージ装置とホスト装置間で最大のデータ転送を行うためのバッファサイズは、転送されるデータの種類によっては生成／消費率（production/consumption rate）に一致しないことが多い。これは、特にオーディオ／ビデオデータストリームの場合にあてはまる。しかしながら、ストレージ装置は、複数のストリームに対して同時に使用されるが、一度に動作状態となるストリームバッファは１つであるので、最大のデータ交換速度を用いなければならない。
【０００５】
更に、ディスクドライブがホスト装置に対してデータを送受信することができる速度も高速化している。このため、従来のディスクドライブは、ホスト装置がデータを利用できる速度を遥かに超える速度でデータを供給することが可能である。このため、ホスト装置は、大容量のデータバッファメモリを備え、ローカルバッファメモリを用いてバーストデータを完全に送受信した後、必要に応じてローカルバッファメモリからデータをゆっくり読み出す必要がある。これには、ホスト装置とドライブの両方でデータを一時的に記憶する必要があり、データが重複するとともにリソースの無駄が生じる。
【０００６】
更に、バーストサイズを大きくして、大きいデータバーストの送受信を可能にするためには、ホスト装置とドライブの両方においてバッファサイズを大きくしなければならない。
【課題を解決するための手段】
【０００７】
本発明は、ホスト装置とデータストレージ装置間のデータの流れを制御するデータ制御方法及びデータ転送管理システムにより、上述の要求及び他の要求に有利に対応する。このデータ制御方法及びデータ転送管理システムは、複数のデータトランスポートストリームを動作状態に維持し、上記ホスト装置と上記装置間で第１のトランスポートストリームに対するデータの第１のバースト転送を開始し、上記第１のトランスポートストリームの上記第１のバースト転送を中断し、上記第１のトランスポートストリームを動作状態に維持し、上記ホスト装置と上記装置間で第２のトランスポートストリームに対するデータの第１のバースト転送を開始し、上記第２のトランスポートストリームの上記第１のバースト転送を中断し、上記第２のトランスポートストリームを動作状態に維持し、上記第１のトランスポートストリームの上記第１のバースト転送を継続することにより、転送制御を行う。データ転送の各通信相手側で使用するバッファサイズは、各通信相手側に独自のローカルバッファリング要件を満たすように最適化することができ、各通信相手側で異なるバッファサイズを使用することができる。
【０００８】
更に、本発明は、データ転送管理システムを提供する。このデータ転送管理システムは、複数のストリーム識別情報（ストリームＩＤ）入力端子を有するホスト装置と、上記ストリームＩＤ入力端子に接続された複数のストリームＩＤ出力端子を有し、複数のトランスポートストリームのうちのいずれか１つを上記ホスト装置に対して識別する複数のストリームＩＤをアサートするデータストレージ装置とを備え、上記ホスト装置は、上記データストレージ装置から受信したストリームＩＤに基づいて、上記複数のトランスポートストリームにより転送されるデータのルーティングを決定する。
【０００９】
また、本発明は、データ転送制御を行うデータ転送制御装置を提供する。このデータ転送制御装置は、一実施例において、１つ以上のストリーム識別情報（ストリームＩＤ）を受信する手段を有するホスト装置とデータストレージ手段とを備え、データストレージ手段は、１つ以上のトランスポートストリームを識別するための上記１つ以上のストリームＩＤをアサートする手段と、上記ホスト装置と上記データストレージ手段間でデータ転送をそれぞれ行う複数のトランスポートストリームを同時に動作状態に維持する手段と、上記ホスト装置と上記データストレージ手段間でデータ転送がサブバースト転送にて行われるようにデータ転送を制御する手段とを備え、各サブバースト転送は、上記１つ以上のストリームＩＤのうちのいずれかに１つにより、上記１つ以上のトランスポートストリームのうちのいずれか１つに関連付けられる。
【００１０】
本発明の上述及び他の側面、特徴、利点については、添付図面を伴う以下の具体的な説明により明らかとなる。なお、図中、それぞれ対応する参照符号は対応する構成要素を示す。
【発明を実施するための最良の形態】
【００１１】
以下の説明は、限定的な意味で解釈されるものではなく、本発明の一般的な原理を説明する目的のみで行う。本発明の範囲は、特許請求の範囲を参照して判断されるべきものである。
【００１２】
従来の装置において、ドライブと、コンピュータ、プロセッサ、マイクロプロセッサ等のホスト装置との間のデータバスは、ある瞬間にはデータがホスト装置から送信され、あるいはホスト装置によって受信されるように共用される。データバスは、いずれの瞬間においても双方向となることはなく、送信が一方向又は逆方向に起こる半二重方式である。この単方向バスを最適に使用するために、従来の装置は、単一のソースのバーストを供給、すなわちデータのブロックを送信をするように設計されている。
【００１３】
ディスクドライブ用のインテグレーティドドライブエレクトロニクス（integrated drive electronics：ＩＤＥ）インタフェースは、コンピュータファイルを大きなバーストとして転送するのに適するように長期間に亘って進歩を遂げている。ドライブ内には、物理的記録媒体とＩＤＥインタフェース間でデータをステージングするための大容量のキャッシュバッファが設けられている。これらの大容量キャッシュにより、機械的部品を媒体上の別の位置に移動している間にも、インタフェースを介したデータ転送を続けることができる。例えばオーディオ／ビデオ（Ａ／Ｖ）ストリームや他のデータストリーム等のデータストリームを、ＩＤＥドライブを介して保存及び読み出すためには、長いオーバヘッドがかかるとともに、外部のバッファリングとの調整が必要である。従来の装置には、通常、ＩＤＥデータ転送のバースト技術に対応した外部の手段が必要である。多くの場合、これらの外部手段は、大容量のバッファリングによって実現されている。ＩＤＥを採用した従来の装置では、一時に１つのバーストバッファ転送しか行うことができない。
【００１４】
システムを更に最適化するために、従来のシステムでは、転送データ量が増えるに従って、バッファサイズを大きくしてきた。これにより、情報のより大きなブロックを伝送可能なバースト転送を行うことができるようになっている。例えば、オーディオ／ビデオ（Ａ／Ｖ）ストリーミング又はビデオコンテンツは、大量のデータ転送を必要とするため、データの送受信には大きなバーストが使用されている。したがって、データスループットを最大にするために、バッファサイズが大きくされている。
【００１５】
しかしながら、バッファを用いたバースト伝送では、バスがバースト全体に対して占有されていなければならず、１つのソースしかバスを利用することができない。したがって、ソースはバスに定期的にアクセスするだけであり、同じソース又は別のソースから、他のデータ転送のために、バスを開放することができない。この結果、１バースト期間中は、唯１つの転送ストリームしか有効にする（active）ことができない。更に、バーストサイズが大きいため、データバスが占有されている時間が長く、他のストリームの転送は待機させられてしまう。
【００１６】
また、従来のシステムでは、データを受信して使用する装置の要求及び性能を遥かに超える速度でデータが供給されることが多い。例えば、バスを介してデータを送信するドライバは、１００Ｍbytes／ｓ（例えば、ultraＤＭＡ１００Ｍbytesを用いる）のバースト転送で、バス上にデータをアサートすることができるが、データを受信する装置は、１５Ｍbits／ｓの速度でしかデータを使用することができないことがある。この場合、受信装置は、データが使用できるようになるまで過剰に供給されたデータを保持するように、非常に大容量のバッファを備えなければならない。従来のシステムは、データ転送を円滑にするために、バースト転送を利用している。しかしながら、これらの従来のシステムは、ディスクドライブの効率化のために最適化された大容量のバッファから、供給されてくる速度でデータを使用することができない受信装置に、大量のデータバーストを送信することになってしまう。このため、従来のシステムでは、一致しない速度の調整が必要となっている。同様に、ドライブは、データを供給する装置がデータを生成するよりも、遥かに高速でデータを受信することができる。したがって、ホスト装置は、データバーストをドライブに供給するために、データをバッファリングしなければならない。
【００１７】
他の例として、デジタルテレビジョン装置（ＴＶ）には、高速のultraＤＭＡにより、約１００Ｍbytes／ｓのバースト転送速度でデータを送受信することができるＩＤＥドライブを用いるものもある。しかしながら、ＴＶは、データを使用して映像及び音声を提供するために、３Ｍbits／ｓしかデータを使用することができない。したがって、ＴＶは、バースト転送で与えられる情報の１％未満しか使用することができない。このため、ホスト装置であるＴＶは、過剰に供給されたデータを使用してしまうまで残りの９９％のデータをバッファリングする必要がある。更に、非常に大量のバーストデータ全体を伝送するための全バースト期間中は、バースト転送によってバスは占有され、他のデータの送受信及び転送は妨げられてしまう。
【００１８】
従来の簡単なコンピュータでは、一度に比較的少量（数レコード）のデータしか送受信しなかった。少量のデータを転送するために使用するバーストは、比較的小さい。このため、バースト期間中ずっとバスを占有することは問題ではなかった。しかしながら、転送データ量が増えると、バッファサイズやバーストサイズが大きくなり、またバースト転送時間も長くなる。したがって、必要以上に長時間、バースト転送によってバスが占有されてしまうことになる。更に、上述のように、受信装置は、多くの場合、バーストデータ全体をリアルタイムで使用できず、従来のシステムでは、過剰なデータを保持するために大容量のバッファを追加する必要がある。
【００１９】
本発明は、データ速度の低下している間に、インタフェース及びバスを占有せず、個々のデータストリームのデータ速度を低下させるメカニズムを提供する。これにより、本発明に係るデータ制御方法、データ転送管理システム及びデータ転送制御装置は、より小さいタイムスライスの塊を用いて、他のデータストリームによるバスの共用を可能にすることにより、バスの使用を更に最適化することができる。
【００２０】
本発明は、バースト転送を一時的に中断又は停止し、個々のバッファ転送をサブバースト又はミニバーストに分割することを可能にする。また、本発明は、複数の通信又はトランスポートストリームを確立するために複数のバッファを用いる。これにより、複数のバッファからのデータサブバーストをインタリーブして、大量の通信を行い、バスの使用を最適化し、バッファ長による潜伏期間が少ない円滑なデータフローを提供することができる。したがって、本発明に係るデータ制御方法、データ転送管理システム及びデータ転送制御装置では、複数のトランスポートストリームが同時に動作状態となり、同時に動作状態である複数のトランスポートストリームの間で移す、すなわち交代又はローテーションを行い、データ転送サブバーストを行うことができる。
【００２１】
本発明は、主に、データバスを共用する同時に動作状態である幾つかのデータストリームの確立及び維持のために幾つかデータバッファを用いることにより、従来のシステムに見られた問題の多くを解決する。バスの共用は、優先順位方式、ラウンドロビン方式、優先順位方式とラウンドロビン方式の組み合わせ、その他の同様な設定等、いずれの共用設定に基づくものでもよい。一実施例において、バッファ転送バーストの分割をハードウェアレベルで行い、動作性能と速度を改善するとともに、従来のシステムのソフトウェアによる形態で必要とされた計算オーバヘッドを低減する。
【００２２】
一実施例において、本発明は、データ転送の正確なルーティングを可能とするため、動作状態の複数のデータストリームにアドレシングを行う。例えば、ホスト装置は、データ転送ストリームの識別情報を受信するための複数のストリーム識別情報（ＩＤ）入力端子を有し、ディスクドライブ又はドライブコントローラは、バスを介して転送されるデータストリームの識別情報をアサートするための複数のストリームＩＤ出力端子を有している場合がある。一実施例において、本発明は、従来のシステムが単方向信号ライン、ポート及び／又はピンとしてしか用いなかったものを双方向に設定しなおすことにより、ドライバ又はドライブコントローラがデータストリームを指定することを可能にする。
【００２３】
一実施例において、本発明に係るデータ制御方法、データ転送管理システム及びデータ転送制御装置では、従来のシステムにおいて十分に活用されていなかったアドレスライン又はコマンドラインを利用する。本発明は、従来のシステムが単方向のコマンドライン及びアドレスラインとしてしか用いなかったものを利用し、双方向ラインとして使用する。これにより、本発明は、複数の動作中のトランスポートストリームのうち、どれをデータ転送に使用できるかを示すことができる。本発明では、動作中のトランスポートストリームの数は幾つでもよく、それを指定するための双方向ラインの数も幾つであってもよい。
【００２４】
例えば、本発明では、ホスト装置等、従来の装置により使用される単方向信号ラインを３本使用して、ドライブ（例えば、ＩＤＥドライブ）内のレジスタをアドレスすることができ、本発明におけるそれらのラインを双方向となるように再設定することができる。これらの双方向アドレスラインは、ホスト装置がドライブに対して制御を与える（例えば、ダイレクトメモリアクセス（ＤＭＡ）コントロール）ときに、ドライブにより駆動することができる。ドライブは、これらのラインを用いて、複数の使用可能なデータトランスポートストリームのうち、どれが現在の転送対象であるかを示す。例えば、本発明で３本のデータアドレスビットライン（ＤＡ０〜ＤＡ２）を双方向ラインとして用いる場合、ドライブは最大で８個の異なるストリームを指定することができる。本発明では、ストリーム識別情報（ストリームＩＤ）のアサートのみを目的とする単方向の追加通信ラインを用いて、複数の使用可能なストリームを区別することができることは、当業者は理解できるであろう。しかしながら、好ましい実施例において、本発明は双方向ラインを用いて、ピンカウント及び／又は構成要素の接続を低減する。また、双方向ラインを用いることにより、チップレイアウトやコネクタの変更が必要なくなる。同じチップ構成及び設計を続けて使用することにより、コストを節約できる。同じチップ構成により、従来のシステムの変更や再設計を必要とせずに、従来のシステムにおいて本発明を実現することができる。
【００２５】
一実施例において、本発明は、ホスト装置がストリーム又はＤＭＡ識別情報を各動作中のストリームに関連付けることを可能にする、ドライブファームウェアで実行される追加コマンドを用いる。また、本発明により、ストリーム毎にバッファバーストサイズ及び最適転送時間をホスト装置が指定することができ、ドライブが内部データ転送を最適化するのを可能にする。ホスト装置によりこれらのパラメータが設定されると、開始論理ブロックアドレス（ＬＢＡ）及び転送カウント総数を指定するドライブに従来のデータ転送コマンドを送ることができる。そして、ドライブは内部キャッシュを分割して、物理的記録媒体（例えば、回転ディスク）とデータ転送（例えば、ＤＭＡ転送）間でデータをステージングする。
【００２６】
図１は、信号ライン１０６ａ〜１０６ｃを単方向で使用した従来のシステム１００の構成を示すブロック図である。例えば、ホスト装置１０２は、単方向デバイスアドレスライン１０６ａ〜１０６ｃ（ＤＡ０、ＤＡ１、ＤＡ２）を用いて、例えばデータストレージ装置又はＩＤＥドライブ等の装置１０４にアドレスを送り、すなわち装置１０４を起動する。図２は、単方向デバイスアドレスライン１０６（ＤＡ０〜ＤＡ２）を用い、フルバッファバースト転送の完了を必要とする従来のシステム１００のピン又はラインの意味を示す。ホスト装置１０２は、デバイスアドレスをデバイスアドレスライン１０６を介して送り、装置１０４は、アドレスを認識して、レジスタデータの送信又は受信の準備をする。
【００２７】
図３は、本発明の一実施例を実現するシステム１１０の構成を示すブロック図である。本発明に係るシステム１１０は、複数のライン１１１ａ〜１１１ｃを用いて、データストレージ装置等の装置１１４がホスト装置１１２に対してトランスポートストリームＩＤをアサートすることを可能にする。このため、装置１１４は、複数のストリームＩＤ出力端子１１５を有し、ホスト装置１１２は、複数のストリームＩＤ入力端子１１３を有する。一実施例において、本発明に係るシステム１１０は、ライン１１１ａ〜１１１ｃを双方向ラインとして用いる。例えば、ライン１１１は、３本のデバイスアドレスラインＤＡ０〜ＤＡ２であってもよく、あるいは従来のシステムが一方向にしか使用しなかった他のラインであってもよい。ホスト装置１１２から始まる一方向において、本発明に係るシステム１１０は、ホスト装置１１２がデバイスレジスタアドレスを示すような従来のシステムと同様に動作する。また、装置１１４は、ライン１１１ａ〜１１１ｃが双方向であることを利用して、複数のトランスポートストリームのうちの１つのストリームＩＤを示すためにライン１１１ａ〜１１１ｃをアサートすることができる。
【００２８】
ホスト装置１１２は、ストリームＩＤを受信し、このストリームＩＤによって送信されてくるデータを識別することができる。一実施例において、ホスト装置１１２は、個々のストリームに固有のホストバッファに対するデータのルーティングを決定するＤＭＡバッファルータ１１６を備える。例えば、ホスト装置１１２は、ドライブからサブバーストで受信されるデータをどこにルーティングするかを識別して決定することができ、あるいは、ホスト装置１１２から複数のデータセットのうちのどのデータをデータバス（例えば、どのデータバッファ）を介して送信するかを決定することができる。通常、装置１１４は、ホスト装置１１２によりスイッチコントロールとして割り当てられた双方向ライン１１１及びストリームＩＤとを用いて、データ転送中にデータバスをどのように利用するかを示す。一実施例において、ドライブからなる装置１１４は、拡張ＤＭＡ制御論理回路等の拡張制御論理回路として実装することができるファームウェア１１８を備える。
【００２９】
システム１１０は、双方向ライン１１１がホスト装置１１２から始まり装置１１４へのレジスタアクセスを制御する場合に、従来のシステム（例えば、システム１００）と同様の動作を行う。これにより、本発明では、バーストを中断又は一時停止せずに、フルバーストでデータを転送するという従来の動作を継続することができる。更に、本発明では、ライン（例えば、デバイスアドレスラインＤＡ０〜ＤＡ２）を双方向で使用して、サブバースト能力を利用することができる。一実施例において、ＤＭＡバッファルータ１１６は、装置１１４からのストリームＩＤを受信するとともに、データバスに対するデータの正確なルーティングを決定する。システム１１０が従来の装置と同様に動作することから、サブバースト又はフルバーストでそれぞれ送信する幾つかの動作中のトランスポートストリームを提供する本発明の機能を実行及び利用することができないシステム又はネットワークにおいても、本発明に係るシステムを実現することができる。
【００３０】
図４は、本発明の一実施例を実現するホスト装置／ドライブ装置１３０の構成を示すブロック図である。ホスト装置／ドライブ装置１３０は、ドライブコントローラ１３２を備えており、ドライブコントローラ１３２は、代表的には、データストレージ装置１３６に接続されているＩＤＥコントローラ等のホスト装置１１２の一部を構成するものである。一実施例において、ドライブコントローラ１３２は、図３に示すＤＭＡバッファルータ１１６に類似したＤＭＡバッファルータである。データストレージ装置１３６は、ディスクドライブ、コンパクトディスク（ＣＤ）ドライブ、磁気テープドライブ、又は実質的には他のあらゆるストレージ装置であってもよい。一実施例において、ドライブコントローラ１３２とディスクドライブ１３６とを接続するのにＩＤＥバス１３５が用いられる。ドライブの制御及びドライブとの接続は、アドバンストテクノロジーアタッチメント（advanced technology attachment：ＡＴＡ）装置、アドバンストテクノロジーアタッチメントパケットインタフェース（advanced technology attachment packet interface：ＡＴＡＰＩ）装置等の実質的にあらゆるデータ転送装置によって行うことができ、また、ホスト装置１１２とディスクドライブ１３６との転送を確立することができるものであれば、実質的に他のあらゆる装置によっても行うことができる。
【００３１】
ホスト装置／ドライブ装置１３０は、複数のデータストリームを同時に起動するとともに、その動作を維持することによって、サブバースト及びフルバーストでのデータ転送を可能にする。データストレージ装置１３６（以下、ディスクドライブ１３６ともいう。）は、物理的記録媒体１３７とＩＤＥバス１３５間でデータをステージングする複数のキャッシュバッファ１３４ａ〜１３４ｈ、あるいは複数のサブバッファに分割された単一のキャッシュバッファ１３４ａ〜１３４ｈを備えている。ドライブコントローラ１３２は、ホスト装置１１２とＩＤＥバス１３５間でデータをステージングする複数のバッファ１４２ａ〜１４２ｇ及び１４４を備えている。ドライブコントローラバッファ１４２ａ〜１４２ｇ及び１４４は、ファーストインファーストアウト素子（first-in-first-out：以下、ＦＩＦＯ１４２ａ〜１４２ｆともいう。）と、ＤＭＡ用の周辺機器相互接続（peripheral component interconnect device：ＰＣＩ）１４４と、キャッシュバッファと、他の一時的な記憶装置とによって実現することができる。ＦＩＦＯ１４２ａ〜１４２ｆ及び／又はＰＣＩ１４４は、ディスクドライブ用のキャッシュバッファ１３４ａ〜１３４ｈと協働して、このホスト装置／ドライブ装置１３０が複数のトランスポートストリーム１３８ａ〜１３８ｈを同時に起動するとともに、その動作を維持することを可能にし、ホスト装置１１２とディスクドライブ１３６間のデータ転送を行う。ディスクドライブ１３６は、ホスト装置１１２によって指示されると、動作中のデータトランスポートストリーム１３８ａ〜１３８ｈのそれぞれからのデータサブバーストをインタリーブする。例えば、ホスト装置１１２に転送するデータをディスクドライブ１３６から読み出す動作において、ディスクドライブ１３６は、まず、記録媒体１３７（例えば、回転ディスク）にアクセスし、内部キャッシュバッファ１３４のいずれか１つに記録媒体１３７からのデータをキャッシングすることによって転送データを準備をする。ディスクドライブ１３６は、データが利用可能であることをホスト装置１１２に通知、すなわち、例えばディスクドライブ１３６はＤＭＡ要求（ＤＭＡＲＱ）を起動する。ディスクドライブ１３６がホスト装置１１２からＤＭＡ要求の確認応答（例えばＤＭＡＣＫ）を受信し、キャッシュバッファ１３４においてデータが利用可能である場合、ディスクドライブ１３６は、ストリームＩＤを出力端子１１５（図３参照）にアサートして、トランスポートストリーム１３８を識別するストリームＩＤが双方向ライン１１１上に送信する準備ができていることを示す。
【００３２】
ホスト装置１１２は、ストリームＩＤを受信すると、識別されたトランスポートストリームを介するデータ転送を許可又は拒否することができる。ホスト装置１１２がストランスポートストリーム１３８の転送を許可した場合、ディスクドライブ１３６は、適切なトランスポートストリーム（例えばトランスポートストリーム１３８ｃ）用のキャッシュバッファ１３４を動作させ、キャッシュバッファ１３４から、ＦＩＦＯ１４２のいずれか又はＰＣＩ１４４によって受信されるドライブコントローラ１３２へのデータ転送を開始する。ホスト装置１１２によって予め指定されたカウント数の残りがゼロになるか、規定のバーストサイズに達するか、ホスト装置１１２又はディスクドライブ１３６からの早期の中断又は終了を受信するまで、データ転送は続けられる。中断は、いずれかの装置においてデータ転送準備ができていない場合にホスト装置１１２又はディスクドライブ１３６によって発することができ、あるいは、バスに何らかの制御を行うシステム又はネットワーク内の他の装置によって発することができる。例えば、ホスト装置１１２は、データバースト全体を必要としないことが多いため、ディスクドライブ１３６に対するデータ転送許可をデアサート（de-assert）し、これにより、ディスクドライブ１３６は、バースト転送を停止又は中断し、サブバーストを完了する。サブバーストデータは、ＦＩＦＯ１４２又はＰＣＩ１４４に保持され、必要に応じてホスト装置１１２により使用される。フルバーストに関連した残りのデータは、キャッシュバッファ１３４に保持され、トランスポートストリーム１３８ｃは動作状態のままである。データのフルバーストは、任意の数のサブバーストを介して完全に転送され、データ転送及びバス１３５の使用を最適化することができる、
【００３３】
サブバースト（又はフルバースト）の転送後、ディスクドライブ１３６は、次のトランスポートストリーム（例えば、１３８ｄで示すトランスポートストリーム）を起動させる。ディスクドライブ１３６は、再びＤＭＡＲＱを送り、ホスト装置１１２からの確認応答を待つ。ディスクドライブ１３６は、サブバースト又はフルバーストをホスト装置１１２に供給するトランスポートストリーム１３８ａ〜１３８ｈのそれぞれを動作させることにより、このサイクルを継続する。
【００３４】
一実施例において、１つ以上のトランスポートストリームを動作させることにより、ＰＣＩ１４０を介してホスト装置１１２（例えば、ＣＰＵ）から記録媒体（例えば、ディスクドライブ１３６）にデータを供給し、また、ホスト装置１１２に供給するデータをディスクドライブ１３６からＰＣＩ１４０を介して読み出すことができる。他の実施例として、ＩＤＥドライブコントローラ１３２は、ディスクドライブ１３６のＦＩＦＯメモリに対してデータを連続したレートでＤＭＡ転送することにより、アイソクロナストランスポートを確立することができる。
【００３５】
再び図４に示すように、ＦＩＦＯ１４２及びＰＣＩ１４４は、新たなデータが必要なときは、単にディスクドライブ１３６にデータ転送を申し出ればよい。ＦＩＦＯ１４２又はＰＣＩ１４４が新たなデータを必要としないときには、ディスクドライブ１３６にデータ転送許可を与えず、ドライブコントローラ１３２は、次のＦＩＦＯ１４２又はＰＣＩ１４４に移動し、ディスクドライブ１３６は、次の関連するキャッシュバッファ１３４に移動する。一実施例において、ドライブコントローラ１３２内のＦＩＦＯ１４２のデータ記憶容量は大きくないが、１サブバーストと次サブバース間のデータをバッファリングするのには十分である。本発明に係るデータ制御方法、データ転送管理システム及びデータ転送制御装置は、サブバーストでデータ転送を行うことができ、システムの性能を制限せずに、より小さいバッファを用いることができる。データ転送の各通信相手側のバッファサイズは、各通信相手側の独自のローカルバッファリング要求に一致するデータタイプ用に最適化すればよく、各通信相手側で異なるバッファサイズを用いることができる。
【００３６】
一実施例において、ドライブコントローラ１３２内の各ＦＩＦＯ１４２及びＰＣＩ１４４は、ディスクドライブ１３６内の１つのキャッシュバッファ１３４にそれぞれ対応している。ドライブコントローラ１３２に設けられるＦＩＦＯ及びＰＣＩアクセスポートの数は幾つでもよい。例えば、図４に示すドライブコントローラ１３２は、７つのＦＩＦＯ１４２ａ〜１４２ｇと１つのＰＣＩ  ＤＭＡ１４４を備えている。この具体例では、ディスクドライブ１３６に書き込むデータの受信に３つのＦＩＦＯ１４２ａ〜１４２ｃを用い、ディスクドライブ１３６からの送信データの受信に４つのＦＩＦＯ１４２ｄ〜１４２ｇを用いている。なお、如何なる数及び組合せ（受信又は送信）を用いてもかまわない。ＰＣＩ１４４により、例えばファイルデータ、プログラム、及び実質的にコンピュータが従来ディスクに送受信していた他のデータ等の移動といったホスト装置１１２とディスクドライブ１３６間のデータ転送を、従来よりも多く行うことができる。例えば、ホスト装置１１２がＴＶの制御を行う場合、ＴＶガイドのディレクトリ情報や実質的にコンピュータが保持するいずれの情報であっても、ディスクドライブ１３６に保存することができる。これにより、ホスト装置１１２は、従来のコンピュータと同様に動作することができる。本発明に係るデータ制御方法、データ転送管理システム及びデータ転送制御装置は、１つのＰＣＩストリーム１３８ｈに限定されるものではなく、複数のＰＣＩストリームを確立する複数のＰＣＩ１４４を備えることができる。
【００３７】
図４に示す具体例において、ドライブコントローラ１３２及びディスクドライブ１３６により、合計８つのトランスポートストリーム１３８ａ〜１３８ｈを同時に動作させることができる。なお、トランスポートストリームは幾つでも確立することができる。一般的には、トランスポートストリーム１３８の数は、各トランスポートストリームを識別及び区別するのに使用可能な２進数の指示情報（例えばストリームＩＤ）によって限定される。例えば、双方向ライン１１１が３本の場合、トランスポートストリームの区別に他の手段が用いられない限り、トランスポートストリーム数は８に限定される。
【００３８】
一実施例において、ホスト装置１１２は、データ転送の制御を維持する。ディスクドライブ１３６がデータ転送を行う準備ができていても、ホスト装置１１２は、転送を許可又は拒否することができる。更に、ホスト装置１１２は、許可した転送を中止して、バスを支配することができる。ホスト装置１１２がディスクドライブ１３６にデータバスの制御（例えば、ＤＭＡ制御）を渡す準備ができてから、ホスト装置１１２は、双方向ライン１１１をデアサートし、あるいは、ライン１１１をトライステート状態、すなわち高インピーダンス状態にする。そして、ホスト装置１１２は、双方向ライン１１１（例えば、ＤＡ０〜ＤＡ２）及びデータバス（例えば、ＤＤ０〜ＤＤ１５）の制御をディスクドライブ１３６に許可する旨を、ディスクドライブ１３６に通知する。そして、ディスクドライブ１３６は、双方向ライン１１１を介してストリームＩＤをアサートすることができる。
【００３９】
通常、ホスト装置１１２は、バッファ転送コマンドを発行するという従来の役割を有する。例えば、ディスクドライブ１３６への書込において、ホスト装置１１２は、ディスクＬＢＡ、書込みセクタ数、既存又は新たなトランスポートストリーム又はチャンネル（例えば、ＤＭＡチャンネル）を起動させる信号を指定するコマンドを発行する。ディスクドライブ１３６からの読出において、例えば、ホスト装置１１２がデジタルＴＶであり、テレビ番組を再生する場合、例えば、ホスト装置１１２は、ＬＢＡ、読み出すセクタカウント、転送するデータ用の第２のトランスポートストリーム又はＤＭＡチャンネル１３８を指定する。書込又は読出のいずれの場合も、ホスト装置１１２からのコマンドは、前のコマンドの完了を待たずに発行することができる。通常、１つのストリームに対して一度に１つのコマンドのみが処理中となり、ステータス情報に適切なストリームＩＤがラベル又はタグとして付される。ディスクドライブ１３６は、コマンドを処理し、オンドライブキャッシュバッファ１３４のうちのいずれか１つにバッファスペースを割り当て、そのキャッシュバッファ１３４と回転している記録媒体１３７間で適切なデータ転送を開始する。
【００４０】
本発明は、ホスト装置１１２とディスクドライブ１３６間のデータ転送に限定されるものではない。本発明は、バースト転送を用いて装置間でデータ転送を行うシステムであれば、実質的にいずれのシステムにおいても実現することができる。例えば、本発明は、ストレージ装置と、データを供給又は受信する周辺装置との間でデータサブバーストを供給及び制御するのに用いることができる。
【００４１】
一実施例において、ディスクドライブ１３６は、ホスト装置１１２と通信し、１つ以上の動作中のトランスポートストリームを介して１つ以上のサブバースト又はフルバーストを起動及び開始するタイミングを確立する。図５は、複数のデータ転送の起動を確立するための、ホスト装置１１２とディスクドライブ１３６間の通信のタイミングチャートを示す。この具体例では、通信によりディスクの読出を確立する。まず、ディスクドライブ１３６は、ＤＭＡ要求（ＤＭＡＲＱ）１５２を送り、又は起動する。ホスト装置１１２は、ＤＭＡ要求を登録し、双方向ライン１１１をトライステート状態、すなわち高インピーダンス状態１５４に設定する。また、ホスト装置１１２は、ＤＭＡ確認応答（ＤＭＡＣＫ）１５６をアサートする。ディスクドライブ１３６は、ＤＭＡＣＫを登録し、また双方向ライン１１１をアサートし、適切なＤＭＡストリームＩＤ１６０を確立する。更に、ディスクドライブ１３６は、ＤＭＡレディコマンド（ＤＤＭＡＲＤＹ）１６２をアサートする。ホスト装置１１２は、ＤＭＡレディコマンドを登録し、データ受信の準備ができると、停止コマンド（ＳＴＯＰ）１６４を解除又はデアサートして、ディスクドライブ１３６がデータ転送１６６を開始できるようにする。
【００４２】
図６Ａ及び図６Ｂは、ホスト装置１１２やデータストレージ装置１３６等の装置間のデータ転送を制御するための、本発明を適用した処理２１０のフローチャートを示す。ステップ２２０において、ホスト装置１１２は装置に対してデータ転送を開始する許可を送る（例えば、ホスト装置１１２はＤＭＡバス制御を許可すればよい）。一実施例において、ホスト装置１１２は、開始論理ブロックアドレスと転送カウント総数を指定する。また、ホスト装置１１２は、あるストリームについてバーストサイズと最適転送時間を指定することもできる。ステップ２２２において、装置は、データ転送を準備するための許可を待つ。許可を受信しない場合、処理は繰り返され、許可を待つ。許可を受信すると、処理はステップ２２４に進み、装置は、少なくとも１つのトランスポートストリームが動作中であるか否かを判定する。動作中でない場合、ステップ２２６に進み、装置は、１ストリームを起動し、ある程度のデータをキャッシュにローディングすることによってデータの準備をする。ストリームが動作中である場合、あるいは、ステップ２２６においてストリームを起動した後、処理はステップ２３２に進み、装置は、２つ以上のストリームが動作中であるか否かを判定する。２つ以上のストリームが動作中である場合、ステップ２３４に進み、装置は、スケジュール（例えばラウンドロビンスケジュール）、優先順位又は他の基準（例えば、新たなストリームが起動された場合、装置はその新たなストリームを選択する）に従って、次の動作中のストリームを識別する。動作中のストリームが１つしかない場合、あるいは、ステップ２３４において次のストリームを決定した後、ステップ２３６に進み、装置は動作中のストリームを選択する。
【００４３】
ステップ２４０において、装置は、ホスト装置１１２に対して転送要求（例えば、ＤＭＡＲＱ）をアサートする。ステップ２４４において、ホスト装置１１２は、転送要求の確認応答を発行する。ステップ２４６において、ホスト装置１１２は、双方向ライン１１１をトライステート状態にする。ステップ２５０において、装置は、選択した動作中のストリームのストリームＩＤをアサートする。ステップ２５２において、ホスト装置１１２は、ストリームＩＤを受信し、指定されたストリームについて準備ができているか否かを判定する。ホスト装置１１２が識別済みストリームについて準備ができていない場合、ステップ５４２に進み、ホスト装置１１２は、転送要求の確認応答を除去し、処理２１０はステップ２２２に戻る。ホスト装置１１２が識別済みストリームの転送準備ができている場合、ステップ２５６に進み、ホスト装置１１２は、転送開始許可を発行する（例えば、ホスト装置１１２は、ＳＴＯＰコマンドをデアサートすればよい）。
【００４４】
ステップ２６０において、装置は、許可が発行されたか否かを判定する。発行されていない場合、処理はステップ２２２に戻る。許可が発行されている場合、ステップ２６２に進み、装置は、選択及び識別済みのトランスポートストリームを介してデータの第１のバーストの転送を開始する。ステップ２６６において、装置は、第１のバーストの転送を中断してフルバーストの通信を完了しないための中断又は停止信号を受信したか否かを判定する。この中断信号は、ホスト装置１１２、装置、又は、データバス制御を行うことが可能な他の装置から受信することができる。中断信号を受信した場合、ステップ２７０に進み、装置は第１のバーストの転送を中断し、サブバーストの通信を完了する。その後、処理はステップ２２２に戻る。中断信号を受信しない場合、処理２１０はステップ２７２に進み、第１のバーストの転送を続ける。
【００４５】
ステップ２７４において、装置はホスト装置１１２によって予め指定されたカウント数の残りが０のに達したか否かを判定する。カウント数に達した場合、処理はステップ２２２に戻る。達していない場合、ステップ２７６に進み、装置は第１のバーストが完全に転送されたか否かを判定する。完全に転送されていない場合、処理はステップ２６６に戻り、転送を続ける。第１のバーストが完全に送られた場合、処理はステップ２２２に戻り、データ転送を行うための次の動作中のトランスポートストリームを選択する。
【００４６】
図７は、本発明を適用したデータ転送を開始するための処理３２０の一具体例のフローチャートを示す。ステップ３２２において、ディスクドライブ１３６、例えば、スタンドアロンＤＭＡコントローラは、各トランスポートストリームを循環して、１ストリームを選択する。ステップ３２４において、ドライブコントローラにより現在選択されているトランスポートストリームが動作中であるか否かを判定する。ステップ３２６において、更に、関連するキャッシュバッファ１３４の準備ができているか否か（例えば、読出コマンドが発行された場合、バッファにはディスクからのデータがあるか否か、あるいは、書き込みコマンドが発行された場合、バッファには使用可能なスペースがあるか否か）を判定する。ストリームが動作状態ではない場合、又は、バッファの準備ができていない場合、処理はステップ３２２に戻り、次のトランスポートストリーム１３８に移行する。ストリームが動作状態であり、かつ、バッファの準備ができている場合、ステップ３３０に進み、ドライブコントローラはホスト装置１１２に対して転送要求をアサートする。ステップ３３２において、ドライブはホスト装置からの確認応答を待つ。
【００４７】
ドライブコントローラが確認応答を検出すると、処理はステップ３３４に進み、ドライブは現在のチャンネル又はストリームＩＤを双方向ライン１１１上にアサートする。一実施例において、データ方向は、ＤＳＴＲＯＢＥ／ＤＤＭＡＲＥＡＤＹ信号等のコマンドライン又は信号のレベル（すなわち、ハイレベル又はローレベル）により従来の方法で示される。ホスト装置１１２は、確認のためにデータ方向を返送することができる。例えば、ホスト装置１１２は、ＤＳＴＲＯＢＥ／ＤＤＭＡＲＥＡＤＹの逆方向としてＨＴＳＲＯＢＥ／ＨＤＭＡＲＥＡＤＹ信号ラインでデータ方向を返送する。ステップ３３６において、ドライブは返送されたデータ方向を受信する。ホスト装置１１２、一実施例ではホスト装置１１２ハードウェアは、方向が安定していると判定すると、適切なホスト装置１１２側バッファに対するデータルーティングの準備をするとともに、例えばＳＴＯＰ信号のアサート停止により許可を発行して、データ転送の開始を可能にする（例えば、ＤＭＡドライブコントローラがＤＭＡバーストを開始できるようにする）。ステップ３４０において、ドライブは許可の受信を待機する。
【００４８】
あるいは、ホスト装置１１２は、例えば識別済みのストリームについて準備ができていない場合、選択されたストリームのデータ転送を延期することができる。ホスト装置１１２は許可を発行するのではなく、ＤＭＡ確認応答を除去して転送を停止する。ステップ３４０において許可を検出しない場合、処理はステップ３４２に進み、ＤＭＡ確認応答がまだ動作中であるか否かを判定する。動作中でない場合、処理はステップ３２２に戻り、次のストリームに移行する。ステップ３４２においてＤＭＡ確認応答がまだ動作中である場合、処理はステップ３４０に戻り、許可が発行されたか否かを判定する。本発明により提供される、この動作中のストリームのスキップ機能は、従来のシステムでは利用不可能であり、事実、従来のプロトコル使用とは直接矛盾する。しかしながら、ストリームをスキップできることにより、本発明に係るデータ制御方法、データ転送管理システム及びデータ転送制御装置では、チャンネルＤＭＡを方向付けるのに最大限の融通性が得られる。
【００４９】
ホスト装置１１２が許可を発行し、ステップ３４０においてドライブが許可を検出した場合、ステップ３４４に進み、ディスクドライブ１３６は、ホスト装置１１２が示すデータ方向とドライブにおける方向との一致を検証する。データ方向が一致しない場合、ステップ３４６に進み、エラー回復シーケンスを開始する。一般に、エラー回復シーケンスは、偶発事故を制御ホスト装置１１２に警告するインタフェースからの中断信号等、当該分野で知られている他のエラー回復シーケンスと同様である。データ方向が一致する場合、ステップ３５０に進み、ドライブはデータ転送を開始する。一般に、サブバーストデータ転送では、従来のＤＭＡバースト手順と同様のデータ転送手順を行う。データ転送中、ドライブはストリームＩＤを示す双方向ライン１１１のアサートを続ける。サブバーストは、従来の信号送信方法によりディスクドライブ１３６又はホスト装置１１２により終了することができる。
【００５０】
サブバーストがバッファ転送カウント値に達した場合、従来の方法とストリームＩＤの指示により、ホスト装置１１２を完了状態とする。指示されたストリームは、ホスト装置１１２により他のバッファ転送コマンドが発行されるまで、ディスクドライブ１３６においてアイドル状態のフラグが付される。サブバーストと完了すると、ドライブは次の動作中のストリームまで循環し、次のストリームのサービス準備ができているか否かを判定する。データ転送が継続されている間は、複数の動作中のストリームのそれぞれに循環するローテーションが続けられる。
【００５１】
一実施例において、ディスクドライブ１３６は、優先順位に基づいてトランスポートストリームを供給するように構成又はプログラムされる。例えば、第１のトランスポートストリーム１３８ａ（図４参照）に対して、残りのすべてのストリームよりも高い優先順位を与えることができる。こうすれば、ドライブにより行われるストリームローテーションは第１のトランスポートストリーム１３８ａから開始することになる。第１のストリーム１３８ａからサブバースト又はフルバーストを転送した後、ディスクドライブ１３６はローテーションで第２のトランスポートストリーム１３８ｂに進む。第２のストリーム１３８ｂからデータを転送した後、ディスクドライブ１３６はローテーションで第１のトランスポートストリーム１３８ａに戻る。再び第１のストリーム１３８ａからデータを転送した後、ディスクドライブ１３６はローテーションで第３のトランスポートストリーム１３８ｃに進み、その後、第１のストリーム１３８ａに戻り、このサイクルを続ける。
【００５２】
他の同様の優先順位方式を利用することもできる。例えば、ホスト装置１１２は、トランスポートストリームのうちの１つを、他よりも高い優先順位を有しているストリームとして指定することができる。ディスクドライブ１３６は、指定された優先順位の度合いに基づいて優先順位方式を実現することができる。例えば、ホスト装置１１２が高い優先順位を発行した場合、ドライブは、例えば、ストリーム１、ストリーム２、ストリーム１、ストリーム３等、上述の方式を採ればよい。あるいは、優先順位が中程度の優先順位であった場合、方式は、例えば、ストリーム１、ストリーム２、ストリーム３、ストリーム４、再びストリーム１、その後、ストリーム５、ストリーム６、ストリーム８と続き、ストリーム１に戻る、等となる。
【００５３】
しかしながら、一般的には、ホスト装置１１２は最終的に、ストリームの優先順位の制御を含む制御を行う。ディスクドライブ１３６がＤＭＡＲＱを発行した場合、ホスト装置１１２は許可確認応答を発行し、ドライブは双方向ライン１１１によりストリームＩＤをアサートする。ホスト装置１１２は、ドライブがデータ転送（受信又は送信）の開始を望んでいるストリーム（いずれのバッファか）を識別するストリームＩＤを検出する。そして、ホスト装置１１２は、その時点で、識別されたストリームでのデータ転送を許可するか否かを判定する。ホスト装置１１２は、そのストリームでの転送を許可したくない場合、レディコマンド又は許可を与えずに許可確認応答を取り下げればよい。すると、ドライブは次の動作中のストリームに巡回を行う。ドライブがストリームの巡回を行い、ホスト装置１１２が所望のトランスポートストリームを認識するまで、ホスト装置１１２はデータ転送開始のためのレディコマンドの発行を拒否し続けることができる。ホスト装置１１２は、ドライブにストリーム１３８ａ〜１３８ｈの巡回を高速（通常、数マイクロ秒程度）で行わせることができ、これにより、ホスト装置１１２は、所望のストリームのデータ転送を開始するようにドライブを制御することができる。
【００５４】
本発明は、ＩＤＥインタフェースや他の同様のインタフェース等、通信インタフェースを介してインタリーブされる複数のデータストリームの転送を促進する。本発明の一具体例として、パーソナルビデオレコーダ（ＰＶＲ）アプリケーションにおいて、本発明に係るデータ制御方法、データ転送管理システム及びデータ転送制御装置を実装することが考えられる。これにより、入力されてくるメディアストリームを「ライブ」で記録し、その後、例えば、わずかに遅れて再生するか、後で再生することができる。また、前後両方向においてメディアストリームのスキップを行うことができる。一例として、Ｔｉｖｏ（登録商標）、クリスタルビデオ録画装置又は他の同様の装置等、デジタルＴＶ又はデジタル録画がある。一適用例として、３つのメディアストリーム（例えば、ＴＶ番組）を受信し、それらのうちの２つの番組を視聴用に再生するようにタイムシフトを行い、３つ目の番組については背景録画を行う。
【００５５】
この適用法の一例は、ユーザが、バスケットボールの試合Ａとバスケットボールの試合Ｂ等、一次番組Ａ及び二次番組Ｂという２つの番組を視聴しており、映画等、３つ目の番組を録画している場合である。一次番組Ａ（試合Ａ）を画面全体に表示し、二次番組Ｂ（試合Ｂ）を小さいサブ画面に表示することができる（一般に、ピクチャ・イン・ピクチャ（ＰＩＰ）と呼ばれる）。
【００５６】
図８は、本発明を適用したシステム４２０の構成を示すブロック図を示す。この実施例では、ホスト装置４２２が３つの番組（Ａ、Ｂ、Ｃ）４２４ａ〜４２４ｃを受信する。ホスト装置４２２は番組４２４ａ〜４２４ｃをストレージ装置４２６に送り、番組を受信時に記録する。また、システムは、一次番組４２４ｄ及び二次番組４２４ｅの両方をストレージ装置４２６からホスト装置４２２に再生し、ユーザが番組を視聴できるようにホスト４２２が２つの番組を表示することを可能にする。このため、システムは５つの同時に動作中のストリームを備えている。３つのストリーム４２４ａ〜４２４ｃは記録中であり、２つのストリーム４２４ｄ、４２４ｅは再生中である。
【００５７】
この場合も、従来のシステムでは、これら５つのストリームは非常に大量のフルデータバーストを行う際に単一のデータバスを共用しなければならない。ドライブは一般に、利用することができるデータ量よりも遥かに大量のデータの送受信を行うことができる。このため、従来のドライブ及びホスト装置４２２においては、フルバーストの送受信を行うために、非常に大容量のバッファが必要である。
【００５８】
また、本発明は、５つの同時に動作中のトランスポートストリームを維持し、サブバーストを用いてデータ転送を行うことにより、必要なバッファのサイズを縮小するとともに円滑なデータ転送を行うことができる。ホスト装置４２２、この具体例では、デジタルテレビジョン装置は、データ転送（ホスト装置４２２への通信又はホスト装置４２２からの通信）の準備ができている場合、データストレージ装置４２６に通知し、双方向データアドレスラインを開放する。ストレージ装置４２６はＤＭＡＲＱを送り、その後、ホスト装置４２２により許可がアサートされると現在のストリームのトランスポートストリームＩＤを示すビットアドレスが送られる。ホスト装置４２２はストリームＩＤを認識する。例えば、ストリームがシステム４２０により受信されたディスクに書き込むべき一次番組４２４ａの一部である場合、ホスト装置４２２はストリームを認識して、一次番組のデータをストレージ装置４２６に書込む準備をする。
【００５９】
ホスト装置４２２は、アドレスの割当方法をストレージ装置４２６に指示してあるので、ストレージ装置４２６に対するデータのプッシュ（書き込む）をホスト装置４２２の要求するものとして、ストリームＩＤを認識する。ストレージ装置４２６が要求を取り下げるまで、あるいは、送信すべきデータがホスト装置４２２側になくなるまで、あるいは、サブバースト又はバースト期限が終了するまで、ホスト装置４２２はストレージ装置４２６にデータのプッシュを行う。ホスト装置４２２は、ＤＭＡＣＫのハンドシェークを行い、ホスト装置４２２からストレージ装置４２６へのサブバースト転送を行う。そして、ホスト装置４２２はＤＭＡＣＫを除去する。ストレージ装置４２６は、ホスト装置４２２が一次ストリーム４２４ａに関連するデータの通信を行ったことを認識する。ストレージ装置４２６は巡回して次の動作中のストリームに移動し、次のストリームのＤＭＡＲＱをアサートし、ＤＭＡＣＫがアサートされると次のストリームの双方向アドレスラインを介してストリームＩＤをアサートする。
【００６０】
ホスト装置４２２はストリームを認識して、データ転送の準備を行う。例えば、次のストリームが一次ストリームの再生ストリーム４２４ｄである場合、ホスト装置４２２はストリームを認識し、ストレージ装置４２６からデータを受信する準備を行う。ホスト装置４２２はＤＭＡＣＫ及び許可を発行し、ストレージ装置４２６は再生ストリーム４２４ｄの通信を開始する。例えば、ホスト装置４２２が、その特定ストリームで４又は５バイトのデータサブバーストを受け取る準備ができている場合、ホスト装置４２２は、確認応答通知のハンドシェークを行い、番組４２４ｄを再生するためにストレージ装置４２６から所望バイト数のデータをプルし、確認応答のアサートを停止し、サブバーストを完了する。
【００６１】
ストレージ装置４２６は異なるストリーム及びバッファの巡回を続け、データサブバーストの通信を可能にする。したがって、ストレージ装置４２６とホスト装置４２６はいずれも、それぞれの最適速度でデータを受信する。
【００６２】
一実施例において、本発明では、データの記憶及びキャッシングをディスクドライブに移動させることができる。ディスクドライブはデータのバッファリングを行わなければならない回転ディスクに近いため、ディスクドライブにおけるバッファリングが、より実用的である。これにより、更に、ホスト装置が同じバッファの別コピー（少なくともデータの大部分）を維持する必要がなくなり、ホスト装置は、データをディスクドライブからの大きなバーストとしてホスト装置のローカルメモリに移動させることがなくなり、ローカルメモリから一度に少量のデータを読み出せばよい。また、キャッシング及び記憶をディスクドライブに移動させることにより、大きなデータブロックを一度に移動させることや、ホスト装置が他のデータ転送を開始できる前に長いバースト期間を取ることによる潜伏期間が少なくなる。一実施例において、本発明は、バッファ管理をハードウェアレベルに移動させる。これにより、本発明は、バッファリング処理を管理するソフトウェアの代わりに、ソフトウェアによる自動データ転送を行うことができ、より効率的な通信制御が可能となる。
【００６３】
本発明は、バスの使用を最適化する。更に、従来のデータ転送システム及び方法（すなわち、大量バーストによる通信）を妨げることなく、最適なバスの使用を確立する。本発明は、大量バースト転送を行う従来のシステムと同様に動作する従来のシステムにおいて実現することができる。なお、動作時には、本発明では、主として、バーストの一部（サブバースト）の通信を行うための離散的時間でバスを共用する複数のトランスポートストリームを同時に動作させることにより、バスの使用を最適化する。動作時においても、本発明では、データバースト全体の通信がバス及び通信を最適化するのであれば、あるいは、システム又はネットワークの他の構成要素がサブバーストの送受信を行えない場合、データバースト全体の通信を行うことが可能である。
【００６４】
このため、本発明に係るデータ制御方法、データ転送管理システム及びデータ転送制御装置では、従来のシステムと同様に動作する１ストリームを有し、古バースト転送を行うことができる。また、本発明は、サブバーストを利用して他の動作中のストリームの通信を継続し、バスの共用、及び、通信及びシステムリソースの最適化を行うことができる。本発明に係るデータ制御方法、データ転送管理システム及びデータ転送制御装置では、サブバースト転送による効率低下があるかもしれないが、サブバーストを利用できない従来の装置に対応できる。ドライブを用いてフルバースト転送を行う従来の装置及びプログラムは、バーストモードを使用する前に行っていたようにコマンドを発行する。本発明を利用する装置又はプログラムは、サブバースト転送の利用を可能にするコマンドを発行する。本発明により、フルバースト装置及び／又はプログラム、及び、サブバースト装置及び／又はプログラムは、互いに干渉することなく共存が可能である。
【００６５】
一実施例において、本発明は、フルバースト転送を行う従来のシステムと同様の第１のモードと、サブバースト転送が可能な複数の動作中のトランスポートストリームを設ける第２のモードで動作することが可能である。第２のモードで動作し、本発明の機能を利用するには、ホスト装置１１２、例えば、コンピュータは、複数のトランスポートストリームを同時に起動させることができる指定ＤＭＡモードで動作するように周辺記憶装置１３６に対して指示又は設定を行う。このため、インタフェースの両側、すなわち、ホスト装置１１２と装置１３６は、本発明を従来の半二重単一バッファＤＭＡの代わりに使用していることがわかる。一実施例において、モード設定はセッション毎に行い、セッション間で不揮発性メモリに保存することができる。
【００６６】
本発明は、ＩＤＥ、ＡＴＡ、ＡＴＡＰＩ、ＡＴＡ／ＡＴＡＰＩ装置等の装置及び／又はシステムを介して、あるいは、これら装置及び／又はシステムにおいて実現することができ、装置及び／システムの数は幾つでもよく、また、ＩＤＥ、ＡＴＡ、ＡＴＡＰＩ、ＡＴＡ／ＡＴＡＰＩ装置に限定されるものではない。多くのＩＤＥ、ＡＴＡ、ＡＴＡＰＩ、ＡＴＡ／ＡＴＡＰＩ装置は、一方向データアドレスラインＤＡ０〜ＤＡ２を有するデータピンを備えている。本発明によれば、データアドレスラインＤＡ０〜ＤＡ２を双方向とするようにこれらの装置を再設計し、これらのデータアドレスラインを用いて、複数の動作中のトランスポートストリームのうちのどれがデータ転送しているかを指定し、上述のように正確なデータルーティングを可能にする。また、本発明は、ビル、オフィス、家庭内の中心部に配置されたディスクドライブに複数のコンピュータ又はプログラムがアクセスするサーバ又はホームサーバにおいても、実現することができる。また、本発明は、ビデオ・オン・デマンドを制御するホスト装置コンピュータに大容量バッファを追加的に必要とするのではなく、ディスクドライブにバッファリング機能を維持するビデオ・オン・デマンドの場合においても、実現することができる。
【００６７】
具体的な実施例及び適用例を用いて本発明を説明したが、特許請求の範囲に記載する本発明の主旨を逸脱しない範囲で、当業者により多くの変更や修正を行うことができる。
【図面の簡単な説明】
【００６８】
【図１】信号ラインの一方向使用を用いた従来のシステムの構成を示すブロック図である。
【図２】単方向デバイスアドレスラインを用いた従来のシステムのピン又はライン指定を示す図である。
【図３】本発明の具体的な実施例のシステムの構成を示すブロック図である。
【図４】本発明の具体的な実施例の装置の構成を示すブロック図である。
【図５】複数のデータ転送動作を確立するためのホスト装置とドライブ装置間の信号を示すタイミングチャートである。
【図６Ａ】装置間のデータ転送を制御するための、本発明の具体的な実施例の処理を示すフローチャートである。
【図６Ｂ】装置間のデータ転送を制御するための、本発明の具体的な実施例の処理を示すフローチャートである。
【図７】本発明を適用したデータ転送開始処理を示すフローチャートである。
【図８】本発明を適用した複数のプログラムの受信及び再生を行うシステムの構成を示すブロック図である。
【図１】
2006505023.tif 000003
【図２】
2006505023.tif 000004
【図３】
2006505023.tif 000005
【図４】
2006505023.tif 000006
【図５】
2006505023.tif 000007
【図６Ａ】
2006505023.tif 000008
【図６Ｂ】
2006505023.tif 000009
【図７】
2006505023.tif 000010
【図８】
2006505023.tif 000011
【国際調査報告】
2006505023.tif 000012
2006505023.tif 000013