(57)【要約】【課題】ストリームデータの処理中でもホスト装置から別のストレージ処理の指示を受け付けることができるデータ処理技術を提供する。【解決手段】ホスト装置からアクセス要求されるストレージコントローラにはストレージとストリームデータ処理部とが接続される。ストレージコントローラは、ホスト装置が出力する第１ストレージ制御コマンドに対してストレージの動作を制御し、第２ストレージ制御コマンドに対して後続の第３ストレージ制御コマンドをコマンドバッファ部に格納する処理を行なう。ストレージコントローラは、コマンドバッファ部に第３ストレージ制御コマンドがあればこれに従ってストリームデータ処理部とストレージとの間でデータ転送を制御する。そのデータ転送のためのデータ処理中でも、第１又は第２ストレージ制御コマンドに対する処理がビジー状態でなければ、そのコマンドを受け付けることができる。【選択図】図１
2009289238.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置と、ストリームデータを入出力するストリームデータ処理部と、前記ホスト装置からのアクセス要求に応答してストレージを制御するストレージコントローラとを有するデータ処理システムであって、
前記ストレージコントローラは、前記ホスト装置から供給されたコマンドが第１ストレージ制御コマンドであるとき当該第１ストレージ制御コマンドに従ってストレージの動作を制御し、前記ホスト装置から供給されたコマンドが第２ストレージ制御コマンドであるとき当該第２ストレージ制御コマンドに後続する制御情報を第３ストレージ制御コマンドとしてコマンドバッファ部に格納する制御を行い、前記コマンドバッファ部に格納された第３ストレージ制御コマンドがあるときは当該第３ストレージ制御コマンドを解読して前記ストリームデータ処理部と前記ストレージとの間のデータ転送を制御する、データ処理システム。
【請求項２】
前記第１ストレージ制御コマンド及び第２ストレージ制御コマンドはＡＴＡコマンドであり、前記第２ストレージ制御コマンドはベンダー定義に割当てられたＡＴＡコマンドであり、前記第３ストレージ制御コマンドはＡＴＡコマンド以外のコマンドである、請求項１記載のデータ処理システム。
【請求項３】
前記ストレージコントローラは、所定のインタフェース仕様に従ってホスト装置との間でコマンド及びデータのインタフェース動作を行うホストインタフェース部と、前記ホストインタフェース部に設定されたコマンドに基づいて、前記ストレージの動作制御、及び前記ストレージと前記ストリームデータ処理部との間の転送制御を行う入出力制御部とを有し、
前記入出力制御部は、ストレージインタフェース部、ディスパッチャ部、コマンドバッファ部、ストリームデータインタフェース部、及び転送処理部を有し、
前記ディスパッチャ部は、前記ホストインタフェース部に前記第１ストレージ制御コマンドが供給されたとき当該第１ストレージ制御コマンドをストレージインタフェース部へ出力し、前記ホストインタフェース部に前記第２ストレージ制御コマンドが供給されたとき当該第２ストレージ制御コマンドに後続する前記第３ストレージ制御コマンドを前記コマンドバッファ部へ出力し、
前記コマンドバッファ部は、第３ストレージ制御コマンドをキューイングし、
前記ストリームデータインタフェース部は前記ストリームデータ処理部との間でストリームデータを入出力し、
前記転送処理部は、前記コマンドバッファ部に前記第３ストレージ制御コマンドがあるときは当該第３ストレージ制御コマンドの解読結果に基づいて、前記ストリームデータインタフェース部の入出力動作とストレージインタフェース部の動作を制御し、
前記ストレージインタフェース部は、前記ディスパッチャ部から出力される第１ストレージ制御コマンド又は前記第３ストレージ制御コマンドの解読結果に基づいて前記転送処理部から出力される第１ストレージ制御コマンドに基づいて前記ストレージを制御する、請求項1記載のデータ処理システム。
【請求項４】
ホスト装置と、ストリームデータを入出力するストリームデータ処理部と、前記ホスト装置からのアクセス要求に応答してストレージを制御するストレージコントローラとを有するデータ処理システムであって、
前記ストレージコントローラは、前記ホスト装置から供給された第１規格のストレージコマンドに基づいてストレージのアクセス制御を行い、前記ホスト装置から供給された第２規格のストレージ制御コマンドをコマンドバッファ部に格納する制御を行い、前記コマンドバッファ部に前記第２規格のストレージ制御コマンドがあるとき当該第２規格のストレージ制御コマンドを解読して前記ストリームデータ処理部と前記ストレージとの間のデータ転送を制御する、データ処理システム。
【請求項５】
前記第１規格のストレージ制御コマンドはＡＴＡコマンドであり、前記第２規格のストレージ制御コマンドはＡＴＡコマンド以外のコマンドである、請求項４記載のデータ処理システム。
【請求項６】
前記ストレージコントローラは、所定のインタフェース仕様に従ってホスト装置との間で第１規格のストレージ制御コマンド及びデータのインタフェース動作を行うホストインタフェース部と、前記ホストインタフェース部に供給された第１規格のストレージ制御コマンドに基づいて前記ストレージの動作制御を行うと共に、ホスト装置によって書き込まれた第２規格のストレージ制御コマンドに基づいて前記ストレージと前記ストリームデータ処理部との間の転送制御を行う入出力制御部とを有し、
前記入出力制御部は、ストレージインタフェース部、コマンドバッファ部、ストリームデータインタフェース部、及び転送処理部を有し、
前記コマンドバッファ部は、前記ホスト装置から供給される第２規格のストレージ制御コマンドをキューイングし、
前記ストリームデータインタフェース部は前記ストリームデータ処理部との間でストリームデータを入出力し、
前記転送処理部は、前記コマンドバッファに前記第２規格のストレージ制御コマンドがあるとき、当該第２規格のストレージ制御コマンドの解読結果に基づいて、前記ストリームデータインタフェース部の入出力動作とストレージインタフェース部の動作を制御し、
前記ストレージインタフェース部は、ホストインタフェース部から出力される第１規格のストレージ制御コマンド又は前記第２規格のストレージ制御コマンドに基づいて前記転送処理部から出力される第１規格のストレージ制御コマンドによって前記ストレージを制御する、請求項４記載のデータ処理システム。
【請求項７】
前記第１規格のストレージ制御コマンドは標準ＡＴＡコマンドであり、前記第２規格のストレージ制御コマンドは拡張ＡＴＡコマンドである、請求項４記載のデータ処理システム。
【請求項８】
ホスト装置が出力する第１規格のストレージ制御コマンドをストレージコントローラが入力してストレージの動作を制御する処理と、
ホスト装置が出力する第２規格のストレージ制御コマンドをストレージコントローラが入力してコマンドバッファ部に格納する処理と、
前記コマンドバッファ部に前記第２規格のストレージ制御コマンドが格納されているとき当該第２規格のストレージ制御コマンドを解読してストリームデータ処理部とストレージとの間でストリームデータのデータ転送を制御する処理と、を含むストレージ制御方法。
【請求項９】
ホスト装置が出力する第１規格のストレージ制御コマンドをストレージコントローラが解読して特殊コマンドか否かを判別し、特殊コマンドでなければ、当該当該第１規格のストレージ制御コマンドに基づいてストレージの動作を制御し、
ホスト装置が出力する第１規格のストレージ制御コマンドをストレージコントローラが解読して特殊コマンドか否かを判別し、特殊コマンドであれば当該第１規格のストレージ制御コマンドに後続する第２規格のストレージ制御コマンドを前記コマンドバッファ部に格納する、請求項８記載のストレージ制御方法。
【請求項１０】
第１規格のストレージ制御コマンドはＡＴＡコマンドであり、特殊コマンドはベンダー定義に割当てられたＡＴＡコマンドであり、第２規格のストレージ制御コマンドはＡＴＡコマンド以外のコマンドである、請求項９記載のストレージ制御方法。
【請求項１１】
前記コマンドバッファ部はＦＩＦＯバッファである、請求項８記載のストレージ制御方法。
【請求項１２】
第２規格のストレージ制御コマンドには優先レベルが与えられ、コマンドバッファ部に格納された第２規格のストレージ制御コマンドは優先レベルの高い方が低い方よりも先に解読されて処理される、請求項８記載のストレージ制御方法。
【請求項１３】
前記第２規格のストレージ制御コマンドは、転送元の情報及び転送先の情報を有する、請求項８記載のストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードディスクドライブ(ＨＤＤ)、光ディスクドライブ、又はフラッシュメモリカード等のストレージを制御するデータ処理システム及びストレージ制御方法に関し、例えば、ＣＰＵ（Central Processing Unit）の補助記憶装置として利用されると共にＡＶ(Audio Visual)機器から入出力されるストリームデータを格納するバッファに利用されるストレージを制御するシステムに適用して有効な技術に関する。
【背景技術】
【０００２】
ＡＶ機器において、デジタル放送の開始に伴う映像の高精細化により、コンテンツデータの大容量化が進んでいる。また、ネットワーク対応により、同時に複数の機器と接続しコンテンツの配信・再生が可能になっている。このような背景から、コンテンツ等を構成するストリームデータを格納するＨＤＤ等のストレージに対する処理には、リアルタイム性を保証できるような入出力処理が求められる。また、ＨＤＤ等のストレージはＣＰＵによるその他のデータ処理のためのプログラムやデータを格納する補助記憶装置として利用される。このため、ストレージの制御は複雑化し、ストレージを制御するホスト装置例えばホストＣＰＵには大きな負荷がかかる。
【０００３】
ストレージ制御によるホストＣＰＵの負担を軽減する技術として、特許文献１には、ホストＣＰＵに代わって、データ処理部がストレージに記録されたデータの処理を行うことが記載される。これによれば、データ処理の間、ホストＣＰＵの負荷が減少し、ホストＣＰＵ上で他の処理の効率的な実行が可能になる。
【０００４】
【特許文献１】特開平５−１２２２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術では、データ処理部がホストＣＰＵに代わってデータ処理を行っている間に、データ処理部がホストＣＰＵから次の処理を受け付けることについて考慮されていない。よって、ホストＣＰＵは、データ処理部によるストレージ処理が終了するまで、新たなストレージ処理の要求を待たなければならない。ＰＣ（Personal Computer）等の多くのデータ処理システムにおいてストレージ制御にはＡＴＡ規格が採用されている。ＡＴＡ規格においてホストＣＰＵとの間のコマンドやデータの受け渡しはレジスタを介して行われ、ホストＣＰＵがコマンドを発行するとストレージがそれを受けとて実行し、実行完了までホストＣＰＵとストレージとの間のインタフェース部分はビジー状態にされる。特許文献１の技術においてもストレージがコマンドを実行しているときデータ処理部がＣＰＵから次の処理を受け付けることについて考慮されていない。
【０００６】
本発明目的は、ホスト装置の指示に従ってストレージ処理を伴うストリームデータの処理中でもホスト装置から別のストレージ処理の指示を受け付けることができるデータ処理技術を提供することにある。
【０００７】
本発明の別の目的は、ストリームデータに対するストレージ処理とその他のデータに対するストレージ処理との双方に対応するホスト装置の負荷を軽減することにある。
【０００８】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１０】
すなわち、ホスト装置からのアクセス要求に応答するストレージコントローラにはストレージとストリームデータを入出力するストリームデータ処理部とが接続される。ストレージコントローラは、ホスト装置が出力する第１ストレージ制御コマンドに対してはストレージの動作を制御する。第２ストレージ制御コマンドに対しては後続の第３ストレージ制御コマンドをコマンドバッファ部に格納する処理を行なう。前記ストレージコントローラは、前記コマンドバッファ部に第３ストレージ制御コマンドがあればこれに従ってストリームデータ処理部とストレージとの間でストリームデータのデータ転送を制御する。
【００１１】
上記より、ホスト装置より発行された第１ストレージ制御コマンド又は第２ストレージ制御コマンドに対する処理がビジー状態でなければ、前記ストレージコントローラは第３ストレージ制御コマンドに従ったデータ転送のためのストリームデータのデータ処理中でも、第１ストレージ制御コマンド又は第２ストレージ制御コマンドを受け付けることができる。
【発明の効果】
【００１２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１３】
すなわち、ホスト装置の指示に従ってストレージ処理を伴うストリームデータのデータ処理を行っている最中でもホスト装置から別のストレージ処理の指示を受け付けることができる。
【００１４】
ホスト装置がストレージ制御コマンドを発行するのを待つ時間が少なくなるという点で、ストリームデータに対するストレージ処理とその他のデータに対するストレージ処理との双方に対応するホスト装置の負荷を軽減することができる。
【発明を実施するための最良の形態】
【００１５】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１６】
〔１〕データ処理システムは、ホスト装置と、ストリームデータを入出力するストリームデータ処理部と、前記ホスト装置からのアクセス要求に応答してストレージを制御するストレージコントローラとを有する。前記ストレージコントローラは、前記ホスト装置から供給されたコマンドが第１ストレージ制御コマンドであるとき当該第１ストレージ制御コマンドに従ってストレージのアクセス制御を行い、前記ホスト装置から供給されたコマンドが第２ストレージ制御コマンドであるとき当該第２ストレージ制御コマンドに後続する制御情報を第３ストレージ制御コマンドとしてコマンドバッファ部に格納する制御を行い、前記コマンドバッファ部に格納された第３ストレージ制御コマンドがあるときは当該第３ストレージ制御コマンドを解読して前記ストリームデータ処理部と前記ストレージとの間のデータ転送を制御する。
【００１７】
上記より、ホスト装置より発行された第１ストレージ制御コマンド又は第２ストレージ制御コマンドに対する処理がビジー状態でなければ、前記ストレージコントローラは第３ストレージ制御コマンドに従ったデータ転送のためのストリームデータのデータ処理中でも、第１ストレージ制御コマンド又は第２ストレージ制御コマンドを受け付けることができる。ホスト装置がストレージ制御コマンドを発行するのを待つ時間が少なくなるという点で、ストリームデータに対するストレージ処理とその他のデータに対するストレージ処理との双方に対応するホスト装置の負荷を軽減することができる。
【００１８】
また、ホスト装置は第３ストレージ制御コマンドを発行するときコマンドバッファ部を直接アクセスすることを要せず、第１ストレージ制御コマンドの発行と同じコマンド発行シーケンスを使って第２ストレージ制御コマンドを発行し、その付属パラメータとして第３ストレージ制御コマンドを出力するというコマンド発行シーケンスの利用が可能になり、この点においてホスト装置の負担軽減になる。
【００１９】
〔２〕項１のデータ処理システムにおいて、  前記第１ストレージ制御コマンド及び第２ストレージ制御コマンドはＡＴＡコマンドであり、前記第２ストレージ制御コマンドはベンダー定義に割当てられたＡＴＡコマンドであり、前記第３ストレージ制御コマンドはＡＴＡコマンド以外のコマンドである。ＡＴＡ規格に対応するストレージに容易に適用可能になる。
【００２０】
〔３〕項１のデータ処理システムにおいて、例えば前記ストレージコントローラは、所定のインタフェース仕様に従ってホスト装置との間でコマンド及びデータのインタフェース動作を行うホストインタフェース部と、前記ホストインタフェース部に設定されたコマンドに基づいて、前記ストレージの動作制御、及び前記ストレージと前記ストリームデータ処理部との間の転送制御を行う入出力制御部とを有する。前記入出力制御部は、ストレージインタフェース部、ディスパッチャ部、コマンドバッファ部、ストリームデータインタフェース部、及び転送処理部を有する。前記ディスパッチャ部は、前記ホストインタフェース部に前記第１ストレージ制御コマンドが供給されたとき当該第１ストレージ制御コマンドをストレージインタフェース部へ出力し、前記ホストインタフェース部に前記第２ストレージ制御コマンドが供給されたとき当該第２ストレージ制御コマンドに後続する前記第３ストレージ制御コマンドを前記コマンドバッファ部へ出力する。コマンドバッファ部は、第３ストレージ制御コマンドをキューイングする。前記ストリームデータインタフェース部は前記ストリームデータ処理部との間でストリームデータを入出力する。前記転送処理部は、前記コマンドバッファ部に前記第３ストレージ制御コマンドがあるときは当該第３ストレージ制御コマンドの解読結果に基づいて、前記ストリームデータインタフェース部の入出力動作とストレージインタフェース部の動作を制御する。前記ストレージインタフェース部は、前記ディスパッチャ部から出力される第１ストレージ制御コマンド又は前記第３ストレージ制御コマンドの解読結果に基づいて前記転送処理部から出力される第１ストレージ制御コマンドに基づいて前記ストレージを制御する。
【００２１】
〔４〕本発明の別に観点によるデータ処理システムでは、ストレージコントローラは、ホスト装置から供給された第１規格のストレージコマンドに基づいてストレージのアクセス制御を行い、前記ホスト装置から供給された第２規格のストレージ制御コマンドをコマンドバッファ部に格納する制御を行い、前記コマンドバッファ部に前記第２規格のストレージ制御コマンドがあるとき当該第２規格のストレージ制御コマンドを解読して前記ストリームデータ処理部と前記ストレージとの間のデータ転送を制御する。この構成では、ホスト装置は第２規格のストレージ制御コマンドを発行するときコマンドバッファ部を直接アクセスすることを要するから、第１規格のストレージ制御コマンドの発行と同じコマンド発行シーケンスを用いることはできない。その負担をホスト装置が負うという点で項1の構成と差異がある。
【００２２】
〔５〕項４のデータ処理システムにおいて、前記第１規格のストレージ制御コマンドはＡＴＡコマンドであり、前記第２規格のストレージ制御コマンドはＡＴＡコマンド以外のコマンドである。前記第２規格のストレージ制御コマンドはＡＴＡとは無関係でよい。
【００２３】
〔６〕項４のデータ処理システムにおいて、例えば前記ストレージコントローラは、所定のインタフェース仕様に従ってホスト装置との間で第１規格のストレージ制御コマンド及びデータのインタフェース動作を行うホストインタフェース部と、前記ホストインタフェース部に供給された第１規格のストレージ制御コマンドに基づいて前記ストレージの動作制御を行うと共に、ホスト装置によって書き込まれた第２規格のストレージ制御コマンドに基づいて前記ストレージと前記ストリームデータ処理部との間の転送制御を行う入出力制御部とを有する。前記入出力制御部は、ストレージインタフェース部、コマンドバッファ部、ストリームデータインタフェース部、及び転送処理部を有する。前記コマンドバッファ部は、前記ホスト装置から供給される第２規格のストレージ制御コマンドをキューイングする。前記ストリームデータインタフェース部は前記ストリームデータ処理部との間でストリームデータを入出力する。前記転送処理部は、前記コマンドバッファに前記第２規格のストレージ制御コマンドがあるとき、当該第２規格のストレージ制御コマンドの解読結果に基づいて、前記ストリームデータインタフェース部の入出力動作とストレージインタフェース部の動作を制御する。前記ストレージインタフェース部は、ホストインタフェース部から出力される第１規格のストレージ制御コマンド又は前記第２規格のストレージ制御コマンドに基づいて前記転送処理部から出力される第１規格のストレージ制御コマンドによって前記ストレージを制御する。
【００２４】
〔７〕項４のデータ処理システムにおいて、前記第１規格のストレージ制御コマンドは標準ＡＴＡコマンドであり、前記第２規格のストレージ制御コマンドは拡張ＡＴＡコマンドである。この場合には拡張ＡＴＡコマンドはストリームデータの処理内容を指示するパラメータを備えた記述とされる。
【００２５】
〔８〕本発明のさらに別の観点によるストレージ制御方法は、ホスト装置が出力する第１規格のストレージ制御コマンドをストレージコントローラが入力してストレージの動作を制御する処理と、ホスト装置が出力する第２規格のストレージ制御コマンドをストレージコントローラがストレージの動作制御中でも入力してコマンドバッファ部に格納する処理と、前記コマンドバッファ部に前記第２規格のストレージ制御コマンドが格納されているとき当該第２規格のストレージ制御コマンドを解読してストリームデータ処理部とストレージとの間でストリームデータのデータ転送を制御する処理と、を含む。
【００２６】
これによれば、ホスト装置は発行した第１規格のストレージ制御コマンドに対する処理がビジー状態でなければ新たな第１規格のストレージ制御コマンドを発行することができ、また、ホスト装置はストレージコントローラが第３ストレージ制御コマンドに従ったデータ転送のためのストリームデータのデータ処理中でもコマンドバッファ部には新たな第２規格のストレージ制御コマンドを格納することができる。ホスト装置がストレージ制御コマンドを発行するのを待つ時間が少なくなるという点で、ストリームデータに対するストレージ処理とその他のデータに対するストレージ処理との双方に対応するホスト装置の負荷を軽減することができる。
【００２７】
〔９〕項８のストレージ制御方法において、ホスト装置が出力する第１規格のストレージ制御コマンドをストレージコントローラが解読して特殊コマンドか否かを判別し、特殊コマンドでなければ、当該当該第１規格のストレージ制御コマンドに基づいてストレージの動作を制御し、特殊コマンドであれば当該第１規格のストレージ制御コマンドに後続する第２規格のストレージ制御コマンドを前記コマンドバッファ部に格納する。
【００２８】
ホスト装置は第２規格のストレージ制御コマンドを発行するときコマンドバッファ部を直接アクセスすることを要せず、第１規格のストレージ制御コマンドの発行と同じコマンド発行シーケンスを使って第２規格のストレージ制御コマンドをその付属パラメータとして出力するというコマンド発行シーケンスの利用が可能になり、この点においてホスト装置の負担軽減になる。
【００２９】
〔１０〕項９のストレージ制御方法において、第１規格のストレージ制御コマンドはＡＴＡコマンドであり、特殊コマンドはベンダー定義に割当てられたＡＴＡコマンドである。第２規格のストレージ制御コマンドはＡＴＡコマンド以外のコマンドである。ＡＴＡ規格に対応するストレージに容易に適用可能になる。
【００３０】
〔１１〕項８のストレージ制御方法において、前記コマンドバッファ部はＦＩＦＯバッファである。先の要求に対して早く応答することができる。
【００３１】
〔１２〕項８のストレージ制御方法において、第２規格のストレージ制御コマンドには優先レベルが与えられ、コマンドバッファ部に格納された第２規格のストレージ制御コマンドは優先レベルの高い方が低い方よりも先に解読されて処理される。ストリームデータに対してリアルタイム性等の優先度を考慮したデータ転送要求に答えることができる。
【００３２】
〔１３〕項８のストレージ制御方法において、前記第２規格のストレージ制御コマンドは、転送元の情報及び転送先の情報を有する。
【００３３】
２．実施の形態の詳細
実施の形態について更に詳述する。以下、本発明を実施するための形態を図面に基づいて詳細に説明する。なお、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。
【００３４】
《レコーダ》
図１には本発明を適用したＡＶ用のレコーダのシステム構成が例示される。同図に示されるレコーダ１００は、ホスト装置としてのホストＣＰＵ１０１、メモリ１０２、チューナ１０３、ＩＰＴＶ（Internet Protocol Television）モジュール１０４、デコーダ１０５、ＡＴＡコントローラ１０６、ＨＤＤ１０７、リムーバブルストレージ１０８、及びストレージ制御部２００から成る。ＡＴＡコントローラ１０６及びストレージ制御部２００はストレージコントローラを構成する。ＨＤＤ１０７及びリムーバブルストレージ１０８はそれぞれストレージである。
【００３５】
ホストＣＰＵ１０１は、メモリ１０２上のプログラムを実行する。さらに、チューナ１０３を制御し放送波から映像情報１１０を取得する。さらに、ＩＰＴＶモジュール１０４を制御しＩＰＴＶ入力から映像情報(ＴＳ)１１０を取得する。さらに、デコーダ１０５を制御し映像信号を出力する。さらに、ホストＣＰＵ１０１は、ＡＴＡコントローラ１０６へストレージ制御部２００を制御するＡＴＡコントローラ制御コマンド１１１を出力する。
【００３６】
メモリ１０２は、ホストＣＰＵ１０１で実行するプログラムを記憶し、ホストＣＰＵ１０１がプログラムを実行するためのワーク領域若しくはデータの一次記憶領域を提供する。
【００３７】
チューナ１０３は、放送波から映像情報１１０受信してストレージ制御部２００へ出力する。ＩＰＴＶモジュール１０４は、ネットワークに接続し、ＩＰＴＶ入力から映像情報１１０を受信してストレージ制御部２００へ出力する。デコーダ１０５は、ストレージ制御部２００が出力する映像情報１１０を入力し、デコードし、映像信号として出力する。チューナ１０３、ＩＰＴＶモジュール１０４、及びストレージ制御部２００が出力する映像情報１１０の形式は例えばＭＰＥＧ２−２ ＴＳ形式とされる。
【００３８】
リムーバブルストレージ１０８はストレージ制御部２００へ取り付け、取り外し可能であり、例えばハードディスク又はフラッシュメモリなどの不揮発性メモリで構成される。ＨＤＤ１０７及びリムーバブルストレージ１０８は、映像情報１１０を保持するバッファ、そしてホストＣＰＵ１０１がその他のデータ処理で用いるデータ等を記憶する補助記憶装置として利用される。例えばＨＤＤ１０７に映像情報を記録するときは録画指示に応答してリアルタイムで映像情報の転送を受けて記録していくことが要求とされる。映像情報を再生するときはその指示に応答して逐次再生に必要なタイミングで映像情報がＨＤＤから読み出されてデコーダ１０５に転送されることが必要になる。ホストＣＰＵ１０１によりデータ処理では必要に応じて随時ＨＤＤやリムーバブルストレージ１０８がアクセスされる。
【００３９】
ＡＴＡコントローラ１０６はＡＴＡ（AT Attachment）の規格に準拠したインタフェース仕様に従ってホストＣＰＵ１０１との間でコマンド及びデータのインタフェース動作を行うＡＴＡのホストインタフェース部として機能される。ＡＴＡコントローラ１０６は図示を省略するコマンドレジスタ、データレジスタ及びステータスレジスタ等を有し、ホストＣＰＵ１０１はレジスタアクセスを介してコマンド及びデータ等にインタフェースを行う。そのインタフェース仕様はＡＴＡの規格に準拠する。ＡＴＡコントローラ１０６はホストＣＰＵ１０１からＡＴＡコントローラ制御コマンド１１１を入力し、ストレージ制御部２００へＡＴＡコマンド１１２を出力する。
【００４０】
ストレージ制御部２００は、前記ＡＴＡコントローラ１０６のコマンドレジスタに設定されたコマンドに基づいて、前記ＨＤＤ１０７及びリムーバブルストレージ１０８の動作制御を行い、さらに、ストレージ（前記ＨＤＤ１０７、リムーバブルストレージ１０８）とストリームデータ処理装置（前記チューナ１０３、ＩＰＴＶモジュール１０４、デコーダ１０５）との間の映像情報の転送制御を行う。
【００４１】
《ＡＴＡコマンド》
ホストＣＰＵ１０１がＡＴＡ制御情報１１１によってＡＴＡコントローラ１０６に書き込んでストレージ制御部２００に与えられるＡＴＡコマンド１１２には、標準ＡＴＡコマンド（第1ストレージ制御コマンド）と拡張ＡＴＡコマンド（第２ストレージ制御コマンド）がある。ＡＴＡ規格に従えばＡＴＡコマンドは、例えばプロトコルタイプで区別すると、ＤＭＡ入出力コマンド、パラレル入力コマンド、パラレル出力コマンド、非データコマンド、及びＶＳ（ベンダー定義）コマンド等に分類される。例えばＶＳコマンドが拡張ＡＴＡコマンドとされる。ＶＳコマンドのコマンドコードに対する意義はベンダーユニークな内容とすることが許容されている。したがって、ＶＳコマンドにベンダーユニークな制御情報を後続させることはＡＴＡ規格上でも許容される。ここではそのような後続される制御情報の一部を第３ストレージ制御コマンド１２０として位置付ける。特に制限されないが、そのような制御情報には、対応する第３ストレージ制御コマンド１２０の優先レベルが付加されている。ここでは優先レベルは1ビットで与えられ、“１”は高優先レベル、“０”は低優先レベルを意味する。
【００４２】
前記ＡＴＡコントローラ１０６はＡＴＡの規格に準拠したホストインタフェースを行うことについては前述した通りである。このホストインタフェースでは、ホストＣＰＵ１０１がＡＴＡコントローラ１０６のコマンドレジスタにコマンドを書き込むと、そのコマンドに応答するストレージ動作や比データ動作等が完了するまでビジーステータスをホストＣＰＵに返す。ホストＣＰＵ１０６はビジーステータスがネゲートされ、例えばデータレディーステータスがアクティブになるまでＡＴＡコントローラ１０６のデータレジスタに対するアクセスを待つ。このような逐次的なインタフェース動作が行われる。拡張ＡＴＡコマンドの場合にはばあには、それに対してユーザ定義された処理が完了されるまでビジーステータスが返される。その詳細は後述するが、本発明において、拡張ＡＴＡコマンドはこれに後続するコマンドをコマンドキュー部２０１，２０７に格納する動作を指示するコマンドとして定義されている。拡張ＡＴＡコマンドはコマンドキュー部に格納されたコマンドを実行させることまで指示するものではないから、当該拡張ＡＴＡコマンドの実行中にビジーステータスはコマンドキュー部への格納動作が完了されるまでイネーブルにされるだけである。
【００４３】
《ストレージ制御部》
前記ストレージ制御部２００は、ストレージインタフェース部（ＡＴＡインタフェース部２０２、リムーバブルストレージインタフェース部２０３）、ディスパッチャ部２０６、コマンドバッファ部（高優先度コマンドキュー部２０１、低優先度コマンドキュー部２０２）、ストリームデータインタフェース部（ＴＳ入力インタフェース部２０４、ＴＳ出力インタフェース部２０５）、及びデータ転送処理部２１０を有する。
【００４４】
ディスパッチャ部２０６は、ＡＴＡコントローラ１０６からＡＴＡコマンド１１２を入力し、ＡＴＡコマンド１１２の種類を判別する。ＡＴＡコマンド１１２が拡張ＡＴＡコマンドの場合、それに後続する制御情報から第３ストレージ制御コマンドと優先レベルとを取得し、高優先レベルの場合には当該第３ストレージ制御コマンドを高優先度コマンドキュー部２０７に格納し、低優先レベルの場合には当該第３ストレージ制御コマンドを低優先度コマンドキュー部２０１に格納する。標準ＡＴＡコマンドの場合、当該ＡＴＡコマンド１１２はＡＴＡインタフェース部２０２とリムーバブルストレージインタフェース部２０３へ出力される。
【００４５】
低優先度コマンドキュー部２０１および高優先度コマンドキュー部２０７はＦＩＦＯとして動作され、書き込みは前記ディスパッチャ部２０６によって制御される。読出しはデータ転送処理２１０によって制御される。
【００４６】
ＡＴＡインタフェース部２０２は、ディスパッチャ部２０６及びデータ転送処理部２１０から出力されるＡＴＡコマンド１１２を入力して、ＨＤＤ１０７の書き込み及び読出し動作を制御する。リムーバブルストレージインタフェース部２０３は、ディスパッチャ部２０６及びデータ転送処理部２１０から出力されるＡＴＡコマンド１１２を入力してリムーバブルストレージ１０８の書き込み及び読出し動作を制御する。
【００４７】
ＴＳ入力インタフェース部２０４は、チューナ１０３及びＩＰＴＶモジュール１０４から映像情報１１０を入力して、データ転送制御部２１０へ出力する。ＴＳ出力インタフェース部２０５は、データ転送制御部２１０から映像情報１１０を入力して、デコーダ１０５へ出力する。
【００４８】
前記データ転送処理部２１０は、高優先度コマンドキュー部２０７又は低優先度コマンドキュー部２０１から第３ストレージ制御コマンドを読み出して解読し、その解読結果に基づいて、前記ストリームデータインタフェース部２０４，２０５の入出力動作を制御すると共に、ＡＴＡコマンドを出力してストレージインタフェース部２０２，２０３の動作を制御する。第３ストレージ制御コマンドの読み出しでは、高優先度コマンドキュー部２０７が空（エンプティ）でなければ高優先度コマンドキュー部２０７をリードし、高優先度コマンドキュー部２０７が空（エンプティ）であれば低優先度コマンドキュー部２０７をリードする。前記ストレージインタフェース部２０２，２０３は、ディスパッチャ部２０６から出力されるＡＴＡコマンド又はデータ転送処理部２１０から出力されるＡＴＡコマンドに基づいてストレージ１０７，１０８を制御する。
【００４９】
《ディスパッチャ部の具体的処理例》
ディスパッチャ部２０６はＡＴＡコマンド１１２を受け取り、コマンドは“FAh”の場合は、これを拡張ＡＴＡコマンドと認識し、例えばパラレルデータ出力コマンド（PIO data out command）プロトコルに従ってその後続データを受け取り、これを第３ストレージ制御コマンド１２０として、優先度が低優先度の場合は、低優先度コマンドキュー部２０１へ、優先度が高優先度の場合は、高優先度コマンドキュー部２０７へ、出力する。ＡＴＡコマンドが“FAh”以外の場合は、当該ＡＴＡコマンドをＡＴＡインタフェース部２０２へ出力する。ディスパッチャ部２０６は当該拡張ＡＴＡコマンドに対して第３ストレージ制御コマンド１２０を低優先度コマンドキュー部２０１又は高優先度コマンドキュー部２０７へ格納するまでビジーステータスを返す。ホストＣＰＵ１０１はポーリング等によってビジーステータスを確認することができる。
【００５０】
《データ転送処理部の処理例》
図２にはデータ転送処理部２１０の処理フローが例示される。
【００５１】
データ転送処理部２１０はデータ転送処理を開始する（Ｓ２０）。例えば、タイマ等を利用して所定時間毎に開始される。先ず、高優先度コマンドキュー部２０７から第３ストレージ制御コマンド１２０を取得する（Ｓ２１）。取得するときには高優先度コマンドキュー部２０７が空かどうかを判断し（Ｓ２２）、空でなければステップＳ２５に移行する。空であれば低優先度コマンドキュー部２０１から第３ストレージ制御コマンド１２０を取得する（Ｓ２３）。取得するとき低優先度コマンドキュー部２０１が空かどうかを判断し（Ｓ２４）、空でなければステップ２５に移行する。空であればステップＳ２１から繰り返す。ステップ２５では、取得した第３ストレージ制御コマンド１２０を解析し、入力元と出力先の情報並びに転送データ量等の情報を取得する（Ｓ２５）。次に、取得した入力元と出力元等の情報に基づいて、ＴＳ入力インタフェース部２０４からＡＴＡインタフェース部２０２若しくはリムーバブルストレージインタフェース部２０３へのデータ転送、又は、ＡＴＡインタフェース部２０２若しくはリムーバブルストレージインタフェース部２０３からＴＳ出力インタフェース部２０５へのデータ転送のためのコマンドを生成して各部に出力する（Ｓ２６）。
【００５２】
《第３ストレージ制御コマンド》
図３には第３ストレージ制御コマンド１２０の具体例が示される。第３ストレージ制御コマンド１２０は、特に制限されないが、ＸＭＬ（eXtensible Markup Language）で記述されるタグにより階層構造を持つデータとされる。１つの第3ストレージ制御コマンド１２０はcommandタグで囲まれる。commandタグの中にはsourceタグとdestinationタグを含む。sourceタグの中にはinterfaceタグとcontentタグとstartタグとsizeタグを含む。destinationタグの中にはinterfaceタグとcontentタグを含む。
【００５３】
commandタグは1つの第3ストレージ制御コマンド１２０を示す。sourceタグは転送元の情報を示す。destinationタグは転送先の情報を示す。interfaceタグは転送元または転送先のインタフェースを示す。contentタグは転送元または転送先のコンテンツ名を示す。startタグは転送するコンテンツの開始位置を示す。sizeタグは転送するコンテンツの転送サイズを示す。開始位置、転送サイズは時間表現、およびバイト表現が可能であり、時間表現の場合は「時：分：秒」、バイト表現の場合は「〜byte」と表わす。
【００５４】
図３の第３ストレージ制御コマンド１２０では、転送元のインタフェースが“３”、コンテンツ名が“movie1”、コンテンツの開始位置が“00:35:00”、即ち開始から35分の位置、コンテンツの転送サイズが“00:05:00”、即ち5分間であり、転送元のインタフェースに接続したデバイスから前記の条件でコンテンツを入力し、さらに、転送先のインタフェースが“4”、コンテンツ名が“video003”であり、転送先のインタフェースに接続したデバイスへ前記の条件でコンテンツが出力することを示している。
【００５５】
図４には第３ストレージ制御コマンドを解読するとき参照されるインタフェーステーブル４００が例示される。インタフェーステーブル４００は、interfaceタグに対応されるインタフェース欄４１０と接続デバイス欄４１１と入出力方向欄４１２を持ち、各インタフェースの接続デバイスと入出力方向を示している。図４では、インタフェース1（interfaceタグ＝“１”に対応）がチューナ１０３と接続しデータを入力可能（４０１）、インタフェース２（interfaceタグ＝“２”に対応）がIPTVモジュール１０４と接続しデータを入力可能（４０２）、インタフェース３（interfaceタグ＝“３”に対応）がHDD１０７と接続しデータを入出力可能（４０３）、インタフェース４（interfaceタグ＝“４”に対応）がリムーバブルストレージ１０８と接続しデータを入出力可能（４０４）、インタフェース５（interfaceタグ＝“５”に対応）がデコーダ１０５と接続しデータを出力可能（４０５）、であることを示している。
【００５６】
データ転送処理部２１０は低優先度コマンドキュー部２０１または高優先度コマンドキュー部２０７から第３ストレージ制御コマンド１２０を入力して解析する。第３ストレージ制御コマンド１２０のタグの解析はＸＭＬパーサにより実現できる。データ転送処理部２１０はその解析結果に基づいて転送元からコンテンツデータを入力し、転送先へコンテンツデータを出力する。転送元又は転送先がＨＤＤ（又はリムーバブルストレージ１０８）であればデータ転送処理部２１０はＡＴＡインタフェース部２０２（又はリムーバブルストレージインタフェース部２０３）にＡＴＡコマンドを出力し、転送元がＴＳ入力インタフェース部２０４であればデータ転送処理部２１０はその入力制御を行い、転送先がＴＳ出力インタフェース部２０５であればデータ転送処理部２１０はその出力制御を行う。
【００５７】
《レコーダによる録画処理と再生処理》
レコーダ１００における録画処理動作を説明する。例えばチューナ１０３が受信する放送波入力をＨＤＤ１０７に記憶する録画処理を説明する。録画処理を開始する場合、ホストＣＰＵ１０１は、ストレージ制御部２００にチューナ１０３からＨＤＤ１０７に映像情報１１０を転送するためにＡＴＡコントローラ１０６に、拡張ＡＴＡコマンドを出力し、これに続けて第３ストレージ制御コマンド１２０を出力する。ストレージ制御部２００は、ＡＴＡコントローラ１０６のコマンドレジスタに書き込まれた拡張ＡＴＡコマンドを入力すると、これに後続する第３ストレージ制御コマンド１２０を低優先度コマンドキュー部２０１に格納する。データ転送処理部２１０は、低優先度コマンドキュー部２０１から第３ストレージ制御コマンド１２０を取り出して解析し、それに従ってデータの入出力転送制御を行う。チューナ１０３からＨＤＤ１０７へのデータ転送が第３ストレージ制御コマンド１２０によって指示されておる場合、チューナ１０３からの映像情報１１０をＴＳＩＮインタフェース部２０４を通して入力し、ＡＴＡインタフェース２０２を通してＨＤＤ１０７へ出力する。ＨＤＤ１０７に対する動作は、先に指示されているＨＤＤ動作がある場合にはその終了を待って開始する。録画動作は第３ストレージ制御コマンド１２０によって指示されたデータサイズ分又は時間分だけ継続される。録画動作はチューナ１０３からストリームデータが送られてくるタイミングに同期して時分割的に継続される。特に制限されないが、このデータ転送処理中にストレージの動作が行なわれるときは、競合回避のためにデータ転送処理部２１０はＡＴＡコントローラ１０６にビジーステータスをセットしてホストＣＰＵ１０１から確認可能にする。ビジースタータスがインアクティブにされているときは、ホストＣＰＵ１０１によるその他のデータ処理に必要なＨＤＤアクセスを介在させることが可能にされる。
【００５８】
尚、途中で録画動作を停止するとき、ホストＣＰＵ１０１は停止動作を指示する第３ストレージ制御コマンドを伴って拡張ＡＴＡコマンドをＡＴＡコントローラ１０６に発行する。このときの第３ストレージ制御コマンドには高優先度が指定され、高優先度コマンドキュー部２０７に格納され、それがデータ転送処理部２１０に読み出されて解析されることにより、チューナ１０３からＴＳＩＦインタフェース部２０４を通して映像情報１１０の入力するのを停止し、ＡＴＡインタフェース２０２を通してＨＤＤ１０７へ映像情報１１０を出力するのを停止する。
【００５９】
再生動作も上記と同様に行われる。再生動作で指定される第３ストレージ制御コマンドは録画動作の場合とは逆に、ＨＤＤ１０７が転送元、デコーダ１０５が転送先とされる。その他の動作は上記と基本的に同じであるからその詳細な説明は省略する。
【００６０】
上記の録画処理、再生処理において転送元と転送先は第３ストレージ制御コマンドの無いように従って適宜変更され、ストレージ制御部２１０は、チューナ１０３、ＩＰＴＶモジュール１０４、ＨＤＤ１０７、又はリムーバブルストレージ１０８の１つから映像情報１１０を入力し、ＨＤＤ１０７、リムーバブルストレージ１０８、デコーダ１０５の１つ或いは複数へ出力することも可能である。複数の転送を同時に行ってもよい。
【００６１】
《ホストＣＰＵによるコマンド発行シーケンス》
図５にはホストＣＰＵ、ストレージ制御部、ストレージ、チューナ及びデコーダの動作タイミングが例示される。拡張ＡＴＡコマンドにより要求１（第３ストレージ制御コマンド）があると、この要求１はコマンドキューブ２０１（又は２０７）に格納される。この第３ストレージ制御コマンドがデータ転送処理部２１０にて実行されることによって、例えばチューナ１０３からのストリームデータがストレージ１０７に格納される。このデータ転送のためのデータ処理中にストレージの動作が行われていないときホストＣＰＵ１０１から標準ＡＴＡコマンドによる要求２が発行されると、これが受け付けられて、要求２に従ったストレージ１０７の動作が行われる。また、要求３を伴った新たな拡張ＡＴＡコマンドを受け付けてコマンドキュー部２０１又は２０７に格納することも可能である。
【００６２】
したがって、ホストＣＰＵ１０１より発行された標準ＡＴＡコマンド又は拡張ＡＴＡコマンドに対する処理がビジー状態でなければ、前記ストレージ制御部２００は第３ストレージ制御コマンドに従ったデータ転送のためのストリームデータのデータ処理中でも、標準ＡＴＡコマンド又は拡張ＡＴＡコマンドを受け付けることができる。ホストＣＰＵ１０１がストレージ制御コマンドを発行するのを待つ時間が少なくなるという点で、ストリームデータに対するストレージ処理とその他のデータに対するストレージ処理との双方に対応するホストＣＰＵ１０１の負荷を軽減することができる。
【００６３】
また、ホストＣＰＵ１０１は第３ストレージ制御コマンドを発行するときコマンドキュー部２０１又は２０７を直接アクセスすることを要せず、標準ＡＴＡコマンドの発行と同じコマンド発行シーケンスを使って拡張ＡＴＡコマンドを発行し、その付属パラメータとして第３ストレージ制御コマンドを出力するというコマンド発行シーケンスの利用が可能になり、この点においてホストＣＰＵ１０１の負担を軽減することができる。
【００６４】
《第３ストレージ制御コマンドの直接入力》
図６は本発明を適用した別のレコーダのシステム構成が例示される。図１との相違点はディスパッチャ部２０６を設けず、ホストＣＰＵ１０１が直接、第３ストレージ制御コマンドを低優先度コマンドキュー部２０１又は高優先度コマンドキュー部１０７に格納するようにした点である。その他の構成が図１と同じであるからその詳細な説明は省略する。第３ストレージ制御コマンドの発行にＡＴＡコマンドと同じコマンド発行シーケンスを用いることはできない。その負担をホストＣＰＵ１０１が負うことになるが、ストレージ制御部２００はディスパッチャ部２０６を必要とせず、その物理的回路規模を小さくすることができる。
【００６５】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００６６】
例えば、第３ストレージ制御コマンドはＸＭＬに限定されず、ＡＳＮ１形式でデータを記述し、ＸＭＬパーサの代わりにＡＳＮ１パーサを使用してもよい。
【００６７】
ディスパッチャ部は拡張ＡＴＡコマンドそれ自体をコマンドキュー部に格納し、データ転送処理部は拡張ＡＴＡコマンドを解読してストリーム制御を行うように構成されてもよい。この場合には拡張ＡＴＡコマンドは、第３ストレージ制御コマンド１２０と等価のパラメータを備えた全体の記述として把握される。
【図面の簡単な説明】
【００６８】
【図１】図１は本発明を適用したＡＶ用のレコーダのシステム構成を例示するブロックダイヤグラムである。
【図２】図２はデータ転送処理部の処理フローを例示するフローチャートである。
【図３】図３は第３ストレージ制御コマンドの具体例を示すコマンド説明図である。
【図４】図４は第３ストレージ制御コマンドを解読するとき参照されるインタフェーステーブルを例示する説明図である。
【図５】図５はホストＣＰＵ、ストレージ制御部、ストレージ、チューナ及びデコーダの動作タイミングを例示するタイミングチャートである。
【図６】図６は本発明を適用した別のレコーダのシステム構成を例示するブロックダイヤグラムである。
【符号の説明】
【００６９】
１００  レコーダ
１０１  ホストＣＰＵ
１０２  メモリ
１０３  チューナ
１０４  ＩＰＴＶモジュール
１０５  デコーダ
１０６  ＡＴＡコントローラ
１０７  ＨＤＤ
１０８  リムーバブルストレージ
１１０  映像情報
１１１  ＡＴＡコントローラ制御コマンド
１１２  ＡＴＡコマンド
１２０  ストリーム制御コマンド
１２３  拡張ＡＴＡコマンド
１２４  標準ＡＴＡコマンド
２００  ストレージ制御部
２０１  低優先度コマンドキュー部
２０２  ＡＴＡインタフェース部
２０３  リムーバブルストレージインタフェース部
２０４  ＴＳＩＮインタフェース部
２０５  ＴＳＯＵＴインタフェース部
２０６  ディスパッチャ部
２０７  高優先度コマンドキュー部
２１０  データ転送処理部
４００  インタフェーステーブル
４１０  インタフェース欄
４１１  接続デバイス欄
４１２  入出力方向欄
【図１】
2009289238.tif 000003
【図２】
2009289238.tif 000004
【図３】
2009289238.tif 000005
【図４】
2009289238.tif 000006
【図５】
2009289238.tif 000007
【図６】
2009289238.tif 000008