(57)【要約】  格納領域の異なる複数個の転送ソース（ＴＳ）を有する複数の記憶デバイス（１０）と、転送ソース（ＴＳ）と同数の設定レジスタ（４０）とを備え、転送ソース（ＴＳ）のＤＭＡ転送設定を転送ソース（ＴＳ）のそれぞれについて設定レジスタ（４０）に保存し、この設定レジスタ（４０）の設定値をもとにＤＭＡ制御部（２０）がデータ転送制御を行う。
2007099659.tif 000002
【特許請求の範囲】
【請求項１】
Ｍ、Ｎを整数（Ｍ≦Ｎ）とするとき、
格納領域の異なるＮ個の転送ソースを有するＭ個の記憶デバイスと、
前記記憶デバイスとそれぞれ接続されたＭ個のインタフェースと、
前記転送ソースのＤＭＡ転送設定を前記転送ソースそれぞれについて保存するＮ個の設定レジスタと、
前記Ｎ個の設定レジスタの設定値をもとにＤＭＡ転送制御を行うＤＭＡ制御部とを備えたことを特徴とするデータ転送装置。
【請求項２】
請求項１記載のデータ転送装置において、
予め定められた数（＝Ｎ個）の範囲内で前記転送ソースの数が各インタフェース毎に増減した場合でも、前記Ｎ個の設定レジスタの前記転送ソースに対する割り当てを変更できるように構成されたことを特徴とするデータ転送装置。
【請求項３】
請求項１記載のデータ転送装置において、
前記Ｎ個の設定レジスタの読み出し／書き込み属性を切り替える読み出し／書き込み切り替え設定部を更に備えたことを特徴とするデータ転送装置。
【請求項４】
請求項１記載のデータ転送装置において、
前記ＤＭＡ制御部は、一時データ格納領域として内部バッファを備え、
前記内部バッファは、前記転送ソースの割り当て方法に関する複数のモードを有し、
あるモードでは、全ての転送ソースからの転送要求を順番に前記内部バッファの空き領域に割り当てることで前記内部バッファの全領域を共有し、またあるモードでは、前記転送ソース毎に固定領域を割り当てることを特徴とするデータ転送装置。
【請求項５】
請求項１記載のデータ転送装置において、
Ｐ、Ｓを整数（Ｓ≦Ｐ≦Ｎ）とするとき、
前記Ｎ個の設定レジスタの集合毎に設けられたＰ個のセレクト部と、
前記Ｐ個のセレクト部から受け取った転送パラメータをＤＭＡの１転送コマンド単位に分割するＳ個のコマンド部とを更に備え、
前記Ｐ個のセレクト部は、前記Ｎ個の設定レジスタの集合毎に受け取った転送パラメータを、前記Ｓ個のコマンド部を介して前記ＤＭＡ制御部に渡すことを特徴とするデータ転送装置。
【請求項６】
請求項５記載のデータ転送装置において、
前記ＤＭＡ制御部は、
内部バッファと、
前記コマンド部から受け取ったデータ転送要求を調停するアービタと、
前記コマンド部で発行される１コマンド分に割り当てられる前記内部バッファの各領域毎に前記アービタにより調停されたデータを格納するバッファキューと、
前記バッファキューの状態を監視するステートマシンとを有することを特徴とするデータ転送装置。
【請求項７】
請求項６記載のデータ転送装置において、
前記ステートマシンは、前記アービタの状態を更に監視することを特徴とすることを特徴とするデータ転送装置。
【請求項８】
請求項６記載のデータ転送装置において、
前記バッファキューと、前記ステートマシンとを、読み出し用、書き込み用それぞれに有することを特徴とするデータ転送装置。
【請求項９】
請求項６記載のデータ転送装置において、
前記ステートマシンは前記内部バッファの各領域の数と同数かつ互いに等価であるサブステートマシンを有することを特徴とするデータ転送装置。
【請求項１０】
請求項６記載のデータ転送装置において、
前記ステートマシンは前記内部バッファの使用モードを選択する機能を更に有することを特徴とするデータ転送装置。
【請求項１１】
請求項６記載のデータ転送装置において、
前記ＤＭＡ制御部は、読み出し用、書き込み用にそれぞれ有する前記アービタの調停結果と、前記内部バッファの状態とから、前記内部バッファの読み出し用、書き込み用の割り当てのうちいずれにするかを判定するバッファキュー判定装置を更に有し、
前記内部バッファを読み出し用、書き込み用で共有することを特徴とするデータ転送装置。
【請求項１２】
請求項１１記載のデータ転送装置において、
前記ＤＭＡ制御部は、前記ステートマシンから、前記内部バッファの読み出し用、書き込み用の割り当てのうちいずれが緊急度が高いかを判定する内部ＩＦキュー判定装置を更に有し、
緊急時に読み出し用内部バッファを、書き込み用内部バッファに割り当てることを可能としたことを特徴とするデータ転送装置。
【請求項１３】
請求項６記載のデータ転送装置において、
前記ＤＭＡ制御部は、複数の外部メモリが当該ＤＭＡ制御部に接続可能であるように、前記複数の外部メモリにそれぞれ対応したメモリＩＦコマンドアービタと、前記複数の外部メモリと前記メモリＩＦコマンドアービタとの間に介在したメモリＩＦと、リクエスト発生装置とを更に有し、
前記リクエスト発生装置は、前記ステートマシンの状態をもとに前記バッファキューで保持されている値を使用して、前記メモリＩＦコマンドアービタに複数のコマンドを発生し、
前記メモリＩＦコマンドアービタは、前記複数のコマンドを調停して、前記メモリＩＦにコマンドを発行することを特徴とするデータ転送装置。
【請求項１４】
請求項１記載のデータ転送装置において、
前記Ｎ個の設定レジスタは、複数のプロセッサからアクセスされるように構成されたことを特徴とするデータ転送装置。
【請求項１５】
請求項１記載のデータ転送装置において、
前記Ｎ個の設定レジスタは、前記ＤＭＡ制御部に接続される外部メモリの使用領域に関して、読み書きを行わない領域の先頭アドレスを示すポインタと、当該読み書きを行わない領域の最終アドレスを示すポインタとを有し、
前記両ポインタ間の領域を飛ばして前記外部メモリにアクセスすることを特徴とするデータ転送装置。
【請求項１６】
請求項１５記載のデータ転送装置において、
あるモードでは、前記読み書きを行わない領域の先頭アドレスと最終アドレスとの差分を自動的に計算し、前記外部メモリの読み出し又は書き込み領域の最終アドレスとして、前記差分を差し引いたアドレスを指し示し、また別のモードでは、前記外部メモリの読み出し又は書き込み領域の最終アドレスを変更せずに指し示すことを特徴とするデータ転送装置。
【請求項１７】
請求項１６記載のデータ転送装置において、
ＣＰＵから読み出し可能な、前記差分を保持するレジスタを更に備えたことを特徴とするデータ転送装置。
【請求項１８】
請求項１記載のデータ転送装置において、
前記ＤＭＡ制御部は、当該データ転送装置と外部メモリとの間のインタフェースを司るメモリＩＦを更に有し、
前記Ｎ個の設定レジスタ中に、前記メモリＩＦにデータ転送を完了した時点で更新するポインタと、前記外部メモリにデータ転送を完了した時点で更新するポインタとを有することを特徴とするデータ転送装置。
【請求項１９】
Ｍ、Ｎを整数（Ｍ≦Ｎ）とするとき、格納領域の異なるＮ個の転送ソースを有するＭ個の記憶デバイスと、外部メモリとの間のデータ転送方法であって、
前記転送ソースのＤＭＡ転送設定を前記転送ソースそれぞれについてＮ個の設定レジスタに保存するステップと、
前記Ｎ個の設定レジスタの設定値をもとにＤＭＡ制御部がＤＭＡ転送制御を行うステップとを備えたことを特徴とするデータ転送方法。
【請求項２０】
請求項１９記載のデータ転送方法において、
Ｐ、Ｓを整数（Ｓ≦Ｐ≦Ｎ）とするとき、前記Ｎ個の設定レジスタの集合毎に設けられたＰ個のセレクト部から受け取った転送パラメータをＳ個のコマンド部がＤＭＡの１転送コマンド単位に分割するステップを更に備え、
前記Ｐ個のセレクト部は、前記Ｎ個の設定レジスタの集合毎に受け取った転送パラメータを、前記Ｓ個のコマンド部を介して前記ＤＭＡ制御部に渡すことを特徴とするデータ転送方法。
【請求項２１】
請求項２０記載のデータ転送方法において、
前記Ｓ個のコマンド部によって発行されるＤＭＡの１転送コマンド単位の転送完了信号を検出するステップと、
前記Ｎ個の設定レジスタ中に含まれるメモリ領域指示ポインタを変更するステップとを更に備えたことを特徴とするデータ転送方法。
【請求項２２】
請求項２１記載のデータ転送方法において、
前記Ｎ個の設定レジスタを通じて、前記ＤＭＡ制御部にあるＤＭＡ転送コマンドの一時停止命令を伝えるステップを、前記メモリ領域指示ポインタを変更するステップの前に行うことを特徴とするデータ転送方法。
【請求項２３】
請求項１９記載のデータ転送方法において、
ある１つの転送ソースから、前記外部メモリとの間のインタフェースを司るメモリＩＦにデータ転送を完了したことを認識するステップと、
前記外部メモリのどの位置までデータを書き込んだかを示すライトポインタを、前記メモリＩＦにデータ転送を完了した時点で、ポインタ更新一時領域に格納するステップと、
前記１つの転送ソースに関して、次のデータ転送要求を前記Ｎ個の設定レジスタに発行するステップと、
前記メモリＩＦへの転送を完了したデータ転送が、前記外部メモリにもデータ転送を完了したことを認識するステップと、
前記ポインタ更新一時領域に格納された値を前記ライトポインタに格納するステップとを更に備えたことを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーディオビジュアル（ＡＶ）データの記録再生装置におけるデータ転送装置及びデータ転送方法に関するものである。
【背景技術】
【０００２】
ＡＶデータは、ディジタルＴＶ（ＤＴＶ）放送を介して受信されたり、ＤＶＤ、ブルーレイディスク（ＢＤ）等の媒体に記録されたりする。【０００３】
ＤＴＶ用のシステムＬＳＩにて前処理を経て受信されたデータは、トランスポートストリーム（ＴＳ）という形態をとる。ＤＴＶシステムはＭＰＥＧ−２システムであり、ＭＰＥＧ−２ではデータ系列として、上述したＴＳに加え、ＤＶＤで使用されるプログラムストリーム（ＰＳ）があり、ＴＳとＰＳの変換を行う際の中間データとして位置付けられているパケタイズドエレメンタリストリーム（ＰＥＳ）がある。これらが最終的にはエレメンタリストリーム（ＥＳ）となり、処理される。ＴＳ，ＰＳ，ＰＥＳ，ＥＳは、定められた規格が存在し、それぞれが異なった形式を持つ。ＤＴＶやＢＤシステムではＴＳ形式のディジタルデータストリーム、ディジタルビデオレコーダ（ＤＶＲ）ではＰＳ形式のディジタルデータストリームがそれぞれストリームデコーダに受信され、音声信号（オーディオデータ）、映像信号（ビデオデータ）、文字信号（テレテキストデータ）といったデータ（ＡＶデータ）や、暗号、番組情報等のセクションデータ毎に分けられ、メモリコントローラを通じて外部メモリに転送され、一時格納される。これらの一時格納されたデータについて、セクションデータはＣＰＵのソフトウェアによって処理され、ＡＶデータは別デバイスに記録されるか、ＡＶデコーダ（ＡＶＤ）からの呼び出しによって、外部メモリからＡＶＤに転送されて、ＡＶデータのデコード処理が始まる。【０００４】
ストリームデコーダにおける処理の詳細については、例えば、多重化したディジタルデータストリームの記憶手段が文献に記載されている（特許文献１参照）。【０００５】
従来、ストリームデコーダとＡＶＤとＣＰＵとをワンチップ化したシステムＬＳＩが知られている。このシステムＬＳＩでは、ストリームデコーダとＡＶＤとの各々にデータ一時格納メモリが個別に外付けされる（特許文献２の図１参照）。【０００６】
また、ＡＶＤにおける処理の詳細については、例えば映像信号の水平垂直方向の拡大処理が他の文献に記載されている（特許文献３参照）。【０００７】
一方、ＤＴＶ、ＤＶＤ、ＢＤ等のＡＶデータは、ＰＣＩ、ＬＡＮ、ＵＳＢに代表される伝送路にデクリプトした形で流すことは認められないため、記録、ダビング等のＡＶデータ処理を行うためには、暗復号の動作が必要になる。暗復号のためには大容量バッファが必要なため、外部にメモリを備えていることが通例である（特許文献４参照）。【０００８】
外部メモリのバンド幅を有効に使うためには、大きい転送単位を用いたダイレクトメモリアクセス（ＤＭＡ）転送が有効である。ただし、一旦ＤＭＡ転送を起動した後に新しくＤＭＡ転送をセットするには、現在実行中のＤＭＡ転送の終了を待って転送パラメータをセットする必要がある。転送パラメータのセットにはＣＰＵ負荷がかかり、たまたまＣＰＵの負荷が重く遅くなってしまうと、データ転送効率が悪くなる。そのため、途中でＤＭＡ転送を停止することなく複数のＤＭＡ転送を切り替えることができるように、ＤＭＡ制御装置（ＤＭＡＣ）に複数の転送パラメータを保持する方法も紹介されている（特許文献５参照）。
【特許文献１】特開平９−２７５３８１号公報
【特許文献２】特開２００１−６９１０６号公報
【特許文献３】特開平１１−３５５６８３号公報
【特許文献４】特開平７−２９７８５５号公報
【特許文献５】特開２００１−３０６４８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ＤＴＶの放送データは、転送レートは低いが、データが受信されるかどうか分からず、緊急度が高いため、小さい転送単位のデータ転送を繰り返す必要がある。また、ＤＶＤやＢＤから入力されるデータは、転送レートは高いが、一定期間内に一定量のデータを転送するため、大きい転送単位のデータ転送を随時行う必要がある。【００１０】
これらの異質なデータ転送を好適に実現するために、従来は入出力インタフェース毎に複数の転送パラメータを保持させ、チャネル毎に複数のパラメータを持つＤＭＡＣをそれぞれに備えていた。【００１１】
しかしながら、これではＤＭＡＣの回路規模が大きくなるとともに、２つのＤＭＡＣに対して随時命令を与えねばならないため、ソフトウェア処理が増加してしまう。しかも、近年増加しつつあるＨＤＤ等の大容量記憶媒体に存在するストリームの複数同時処理を行うためには、インタフェースは１つでしかなく、また、各々の使用するメモリ領域も、必ずしも順番にはなっていないので、転送終了信号を契機にしてＣＰＵがソースチャネルの設定を行うに際し、インタフェースの読み書きは時系列で行うほかない。【００１２】
つまり、読み出し／書き込み属性や、複数のソースのデータ転送を時系列に行い、ＣＰＵは、１つの転送ソースに割り当てられたＤＭＡＣの転送完了を待ってから次のＤＭＡＣの設定を順次変更し、転送パラメータ設定も時系列に変更をするという、古くからのステップを繰り返さねばならない。そのため、結局、インタフェース毎の転送切り替え時には、ＣＰＵによるＤＭＡＣの停止再開処理が発生してしまうため、データ転送性能がＣＰＵ性能に大きく依存してしまうという課題があった。
【課題を解決するための手段】
【００１３】
上記課題を解決するため、本発明によれば、同時にデータ通信を行うことができる複数のインタフェースを設け、当該複数のインタフェースは、１つのインタフェースを介してデータ転送を行う複数の転送ソースをそれぞれ持つ。そして、前記転送ソースのそれぞれに対応するＤＭＡ転送パラメータを格納する設定レジスタを設け、ＤＭＡ制御部は、前記設定レジスタの値をもとにアービトレーションして、前記複数のインタフェースを通じて、データを一時格納し、外部メモリにデータを転送する。好ましくは、前記設定レジスタが外部メモリのアドレス飛び領域設定を含む。【００１４】
システムＬＳＩと１つのインタフェースを通じて接続された記憶デバイスであっても、当該記憶デバイスに保存された複数データの再生コマンドと、当該記憶デバイスへの複数データの記録コマンドとをＣＰＵから先行発行すれば、当該ＣＰＵのソフトウェアから見ると、あたかも複数のインタフェースを通じてデータ転送を行っているかのようになる。【００１５】
また、本発明の他の観点によれば、設定レジスタの集合毎に１個のセレクト部を設け、これらのセレクト部から受け取った転送パラメータをＤＭＡの１転送コマンド単位に分割してＤＭＡ制御部に渡すコマンド部を更に設ける。【００１６】
一方、ＤＭＡ制御部は、内部バッファと、コマンド部から受け取ったデータ転送要求を調停するアービタと、コマンド部で発行される１コマンド分に割り当てられる内部バッファの各領域毎にアービタにより調停されたデータを格納するバッファキューと、当該バッファキューの状態を監視するステートマシンとを備えることとし、当該ステートマシンは、内部バッファの各領域の数と同数かつ互いに等価であるサブステートマシンを有することとすればよい。
【発明の効果】
【００１７】
本発明によれば、システムＬＳＩと外部メモリとのインタフェースに関して無駄な転送を低減することができ、ＣＰＵの負荷も軽減できる。
【図面の簡単な説明】
【００１８】
【図１】図１は、本発明に係るデータ転送装置の構成例を示すブロック図である。
【図２】図２は、図１中のＤＭＡ制御部における内部バッファの使用例を示す概念図である。
【図３】図３は、図１中のＤＭＡ制御部の詳細構成例を示すブロック図である。
【図４】図４は、図３中の読み出し系ＤＭＡＣにおけるステートマシンの詳細構成例を示すブロック図である。
【図５】図５（ａ）〜図５（ｄ）は、図４のステートマシンによるデータ転送制御の例を示す概念図である。
【図６】図６は、図１中のＤＭＡ制御部の他の詳細構成例を示すブロック図である。
【図７】図７は、図６中のポインタ制御装置の詳細構成例を示すブロック図である。
【図８】図８は、図７のポインタ制御装置の演算アルゴリズムを示すフローチャート図である。
【図９】図９は、図７のポインタ制御装置の変形例を示すブロック図である。
【図１０】図１０は、図９のポインタ制御装置を用いた場合のステートマシンの動作を示す概念図である。
【図１１】図１１は、ＤＭＡ転送の一時停止及び停止解除機能を追加した読み出し系ＤＭＡＣの構成例を示すブロック図である。
【図１２】図１２は、図１１中のステートマシンの動作を示す概念図である。
【図１３】図１３は、図１１の変形例を示すブロック図である。
【図１４】図１４は、図１３中のステートマシンの動作を示す概念図である。
【図１５】図１５は、図１中のコマンド部の演算アルゴリズムを示すフローチャート図である。
【符号の説明】
【００１９】
１０  Ｍ個の記憶デバイス
１５  Ｍ個のインタフェース
２０  ＤＭＡ制御部
２１  内部バッファ
３０  外部メモリ
４０  Ｎ個の設定レジスタ
４１  セレクト部
４２  コマンド部
５０  ＣＰＵ
５１  専用プロセッサ
６１，７１  バッファキュー
６２，７２  内部バッファ
６３，７３  アービタ
６４，７４  ステートマシン
８１  バッファキュー
８２  内部バッファ
８３，８４  アービタ
８５  バッファキュー判定装置
８６  ステートマシン
８７  内部ＩＦキュー判定装置
８８  リクエスト発生装置
８９  メモリＩＦコマンドアービタ
９０  メモリＩＦ
１００  ポインタ制御装置
１０１  特殊ポインタ演算器
１０２  ポインタ加算器
１０３  外部ポインタ
１０４  内部ポインタ
ＴＳ  Ｎ個の転送ソース
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照しながら、本発明の実施の形態を説明する。【００２１】
図１は、本発明に係るデータ転送装置の構成例を示している。図１において、１０はＭ個の記憶デバイス、１５はＭ個のインタフェース（ＩＦ）、２０はＤＭＡ制御部、３０は外部メモリ、４０はＮ個の設定レジスタ、４１はＰ個のセレクト部、４２はＳ個のコマンド部、５０はＣＰＵ、５１は専用プロセッサである。例えば、図１中の記憶デバイス１０と外部メモリ３０とを除く構成要素が１つのシステムＬＳＩ上に搭載される。ここに、Ｍ、Ｎ、Ｐ及びＳはいずれも整数であって、Ｍ≦ＮかつＳ≦Ｐ≦Ｎである。【００２２】
図１のデータ転送装置において、外部メモリ３０に対するＤＭＡ転送を行うＤＭＡ制御部２０と、データ量、転送レートの異なるＮ個の転送ソースＴＳを含むＭ個の記憶デバイス（それぞれ動作周波数が異なってもよい）１０とが、Ｍ個のインタフェース１５を通じて接続され、ＤＭＡ制御部２０は、Ｎ個の転送ソースＴＳにそれぞれ対応付けられたＮ個の設定レジスタ４０から転送パラメータを受け取ってデータ転送を行う。設定レジスタ４０は、一般的なデータ転送制御を司るＣＰＵ５０と、ストリーム制御等の専用処理を行う専用プロセッサ５１とによって制御される。なお、以下の説明では、Ｎ個の転送ソースＴＳから外部メモリ３０に対してデータが渡される転送を「書き込み」、外部メモリ３０からＮ個の転送ソースＴＳに対してデータが渡される転送を「読み出し」と呼ぶ。【００２３】
図１の構成によれば、Ｎ個の設定レジスタ４０が、Ｍ個のインタフェース１５を介して接続されたＭ個の記憶デバイス１０中のＮ個の転送ソースＴＳのそれぞれに割り当て可能であるため、ある１つの転送ソースＴＳについてデータ転送を行うための記憶デバイス１０のシーク時間等の転送待ち時間を、別の転送ソースＴＳのデータ転送時間中に吸収し、複数の記憶デバイス１０からのデータ転送にかかる総時間の短縮を見込むことができる。また、転送パラメータを設定レジスタ４０に先行的に設定できるため、ＣＰＵ５０の負荷も軽減できる。【００２４】
更に、Ｎ個の設定レジスタ４０が次のようにグループ化される。例えば、１つのインタフェース１５を通じて転送する転送ソース群に１対１で対応付けられた設定レジスタ群毎に集める。このグループ毎に、Ｎ個の設定レジスタ４０からの転送パラメータを選択するＰ個のセレクト部４１を設定レジスタ４０と接続し、転送パラメータを１ＤＭＡ単位の転送コマンドに分割するＳ個のコマンド部４２をＰ個のセレクト部４１と接続する。ただし、セレクト部４１が介在しない設定レジスタ４０には、コマンド部４２を直接接続する。【００２５】
ＤＭＡ制御部２０は、コマンド部４２から転送パラメータを取得してＤＭＡ転送を行い、セレクト部４１を通じて、更新された転送パラメータを設定レジスタ４０に書き戻す。このようなセレクト部４１とコマンド部４２とを備えることによって、Ｎ個の設定レジスタ４０のそれぞれに必要であった、１ＤＭＡ単位あたりの転送コマンド発行のための演算部を省略することができるため、回路規模削減、消費電力削減に効果がある。【００２６】
なお、セレクト部４１とコマンド部４２との割り当て方は、固定されていてもよいし、外部設定によって可変であってもよい。【００２７】
外部メモリ３０の読み書き対象となる領域は、設定レジスタ４０中の次のようなポインタによって指定される。すなわち、領域毎の読み書きの先頭アドレスを示すスタートポインタ（ＳＰ）と、領域毎の読み書きの最終アドレスを示すエンドポインタ（ＥＰ）と、領域毎の書き込みアドレスを示すライトポインタ（ＷＰ）と、領域毎の読み出しアドレスを示すリードポインタ（ＲＰ）とである。ＳＰとＥＰとの間に挟まれる領域中に読み書きを行わない領域を設ける場合には、読み書きを行わない領域の先頭アドレスを示すポインタＤｐ１Ｐと、読み書きを行わない領域の最終アドレスを示すポインタＤｎ１Ｐとを設定する。【００２８】
コマンド部４２は、Ｄｐ１Ｐ及びＤｎ１Ｐを設定レジスタ４０から受け取り、Ｄｐ１Ｐ付近まで来ると転送コマンドを分割し、次の転送コマンドはＤｎ１Ｐの次のアドレスから始まるように自動的に調整する。このような読み書きを行わない領域は、複数あってもよい。この際、コマンド部４２によって、１ＤＭＡ単位に分割された転送毎の完了を専用プロセッサ５１に通知することで、専用プロセッサ５１によって起動されるＤＭＡ転送要因に関する外部メモリ３０のポインタＤｐ１Ｐ，Ｄｎ１Ｐ，ＳＰ，ＥＰを動的に可変にすることができる。これらは、特にＤＶＤ、ＢＤ等の再生処理においてデータ領域を動的に変更する際に効果がある。【００２９】
なお、設定レジスタ４０が読み出し専用、書き込み専用にそれぞれ分かれ、そのそれぞれが転送ソースＴＳに対して１対１に割り当てられていてもよい。割り当ては、Ｍ個の記憶デバイス１０間で切り替えることが可能であってもよい。また、ＣＰＵ５０又は専用プロセッサ５１が読み出し／書き込み切り替え設定部として動作することにより、設定レジスタ４０を読み出し用、書き込み用のいずれにも汎用的に使えるようにしてもよい。【００３０】
図２は、図１中のＤＭＡ制御部２０における内部バッファの使用例を示している。図２に示した内部バッファ２１は、幾つかのモードに応じて使い方を変更することができるものである。この内部バッファ２１は、Ｎ個の転送ソースＴＳのＤＭＡ転送用の一時バッファとして領域を割り当てるが、あるモードでは、全てのバッファ領域をＮ個の転送ソースＴＳで共有し、転送要求を受け付けた順番にバッファ領域を割り当てる。また、別のモードでは、Ｎ個の転送ソースＴＳの各々に、バッファ領域の割り当てを固定することができる。モードによって領域毎の容量はそれぞれ可変であってもよい。このようなバッファ領域の割り当て方法をとることによって、前者のモードでは、転送ソースＴＳの総転送量を増加させることができる。また後者のモードでは、予め期待するだけの各転送ソースＴＳのデータ転送性能を確保することができる。これらのモードを持つことによって、汎用性の高いＤＭＡ制御が可能となる。【００３１】
図３は、図１中のＤＭＡ制御部２０の詳細構成例を示している。図３のＤＭＡ制御部２０は、内部に書き込み（Ｗ）系ＤＭＡＣと、読み出し（Ｒ）系ＤＭＡＣとを備える。それぞれのＤＭＡＣは、内部バッファ６２，７２に加えて、コマンド部４２からのＤＭＡ転送要求を調停するアービタ６３，７３と、内部バッファ６２，７２中のある定められたバッファ領域に１対１で対応付けられており、コマンド部４２から受け取った１ＤＭＡ単位に切り出された転送コマンドを前述のある定められたバッファ領域毎に保持することを目的とするバッファキュー６１，７１と、それぞれの状態を監視するステートマシン６４，７４とを有する。ここでは、書き込み系ＤＭＡＣにおいて、内部バッファ６２がｍ個のバッファ領域を有し、これに対応してバッファキュー６１がｍ個のキュー領域を有するものとしている。また、読み出し系ＤＭＡＣにおいて、内部バッファ７２がｎ個のバッファ領域を有し、これに対応してバッファキュー７１がｎ個のキュー領域を有する。ここに、ｍ及びｎはいずれも整数である。【００３２】
本構成は、アービタ６３，７３を持つことによって、システム要件によっても、記憶媒体によっても異なる性質を持つ転送ソースＴＳのＤＭＡ転送に関して、一定性能を保証することが容易になり、バッファキュー６１，７１の領域を内部バッファ６２，７２の各領域毎に持つことによって、コマンド部４２から受け取る１ＤＭＡ単位あたりに切り出された転送コマンドをバッファ領域毎に保持し、それらをステートマシン６４，７４によって管理することで、バッファ領域毎の転送を管理することができる。そのため、デバッグ効率を著しく高めることができる。それに加えて、バッファ領域を共有することもできるため、高効率な転送を行うことができるという効果がある。【００３３】
図４は、図３中の読み出し系ＤＭＡＣにおけるステートマシン７４の詳細構成例を示している。ここでは、ステートマシン７４がバッファ領域毎に互いに全く等価なサブステートマシンを持つことに特徴があり、各サブステートマシンによってバッファ領域を独立に制御可能にすることで、前述のＭ個のインタフェース１５それぞれの転送要求が同じバッファ領域を共用できるという効果がある。図４の例では、内部バッファ７２がＳＲＡＭで構成されるものとし、ｎ個のサブステートマシンの各々の状態として、ＩＤＬＥ、ＱＵＥＯ、ＲＥＱＯ、ＳＲＡＭという４つの状態が存在する。ＩＤＬＥ状態は、対応するＳＲＡＭ領域の空き状態である。ＱＵＥＯ状態は、対応するＳＲＡＭ領域のコマンド受付が完了した使用予約状態である。ＲＥＱＯ状態は、受け付けたコマンドを外部メモリ３０に発行したデータ待ち受け状態である。ＳＲＡＭ状態は、外部メモリ３０から受け取ったデータが対応するＳＲＡＭ領域中にあり、対応するインタフェース１５へのデータ転送完了を待っている状態である。もちろん、状態数はシステム要件により増減する。【００３４】
図５（ａ）〜図５（ｄ）は、図４のステートマシン７４によるデータ転送制御の例を示している。この例は、チャネル０からチャネル５までの６個のインタフェース１５が８個のＳＲＡＭ領域を共用し、転送要求が受け付けられた順番にデータ転送が行われる例である。図５（ａ）では、２領域がＱＵＥＯ状態である。図５（ｂ）では、６領域がＳＲＡＭ状態である。図５（ｃ）では、２領域がＩＤＬＥ状態になり、次にＱＵＥＯ状態になる。４領域はＳＲＡＭ状態である。図５（ｄ）では、２領域がＱＵＥＯ状態であり、他の２領域がＳＲＡＭ状態である。以上のとおり、内部バッファ７２のＳＲＡＭ領域が有効に使われる。【００３５】
なお、図２では内部バッファ２１の使用に関する複数のモードのうちのいずれかが固定的に選択されるものとしたが、図４のステートマシン７４が状況に応じて内部バッファ７２の使用モードを選択することとしてもよい。【００３６】
図６は、図１中のＤＭＡ制御部２０の他の詳細構成例を示している。図６において、８１はバッファキュー、８２は内部バッファ、８３及び８４はアービタ、８５はバッファキュー判定装置、８６はステートマシン、８７は内部ＩＦキュー判定装置、８８はリクエスト発生装置、８９はメモリＩＦコマンドアービタ、９０はメモリＩＦ、１００はポインタ制御装置である。【００３７】
図６のＤＭＡ制御部２０は、書き込み（Ｗ）用と読み出し（Ｒ）用とに分かれたアービタ８３，８４から、バッファキュー判定装置８５を介して、バッファキュー８１に転送コマンドを発行する。バッファキュー判定装置８５は、アービタ８３，８４からの転送要求を判定して、転送コマンドをバッファキュー８１に渡す。本構成をとることで、内部バッファ８２にＳＲＡＭを使用する際のバッファ領域の割り振り方法の自由度が向上する。例えば、１つのＳＲＡＭに書き込み用の領域と読み出し用の領域とを混在させることも容易になる。そのため、システム要件によって変化するデータ転送性能を保証する際に必要なバッファの回路規模削減、データ転送性能向上に効果がある。【００３８】
内部ＩＦキュー判定装置８７は、書き込み系のアービタ８３からデータ転送要求を受け取り、かつステートマシン８６から内部バッファ８２の転送要求のキューイング状態情報を受け取って、両者をもとにした演算結果をバッファキュー判定装置８５に返す。内部ＩＦキュー判定装置８７の演算とは、バッファキュー８１に書き込み系の転送コマンドがフルに保持されて転送待ち状態であるときに、更に一定数以上の書き込み系のデータ転送要求が生じた場合、通常は読み出し系転送コマンド用に確保されているバッファキュー８１に、書き込み系の転送コマンドを割り当てることを意図したものである。これにより、書き込み系転送の緊急時の転送性能を向上させる効果がある。【００３９】
リクエスト発生装置８８及びメモリＩＦコマンドアービタ８９は、メモリＩＦ９０が複数の外部メモリ３０に接続されることを想定したものである。リクエスト発生装置８８は、バッファキュー８１にキューイングされた転送コマンドから、いずれの外部メモリ３０にデータ転送要求（リクエスト）を発行するのかを選択してリクエストを発行する。メモリＩＦコマンドアービタ８９は、発生したリクエストをそれぞれの外部メモリ３０毎に調停するように、ｋ（ｋは整数）個のアービタで構成される。リクエスト発生装置８８とメモリＩＦコマンドアービタ８９との間のデータ転送方法は、レジスタ設定によって切り替えられてもよい。本構成をとることによって、複数の外部メモリ３０に柔軟に対応できる効果がある。【００４０】
ポインタ制御装置１００は、メモリＩＦコマンドアービタ８９から、メモリＩＦ９０へ送ったデータ転送コマンドの転送完了信号、又はコマンドが受け付けられたことを示すコマンド完了信号を取得し、バッファキュー８１から処理されたコマンドのポインタに関する情報を取得して、Ｎ個の設定レジスタ４０にポインタの値を書き戻す。【００４１】
なお、メモリＩＦ９０をＤＭＡ制御部２０に外付けすることも可能である。この場合には、図６中のメモリＩＦ９０が、メモリＩＦコマンドアービタ８９と外部メモリＩＦとの間のインタフェースを司る回路ブロックに置き換えられる。【００４２】
図７は、図６中のポインタ制御装置１００の詳細構成例を示している。ポインタ制御装置１００は、特殊ポインタ演算器１０１と、ポインタ加算器１０２と、外部ポインタ１０３と、内部ポインタ１０４とからなる。特殊ポインタ演算器１０１は、転送完了信号をトリガとして次に示すアルゴリズムに従って演算した結果を外部ポインタ１０３に渡す。ポインタ加算器１０２は、転送完了信号又はコマンド完了信号をトリガとしてＲＰとＴｓｚとを加算した結果を内部ポインタ１０４に戻す。ここに、ＲＰは前述のリードポインタであり、Ｔｓｚはバッファキュー８１に入り、メモリＩＦ９０に渡されるデータ転送サイズである。内部ポインタ１０４及び外部ポインタ１０３は、転送完了信号又はコマンド完了信号をトリガとして、演算されたデータをＮ個の設定レジスタ４０に渡す。ここで、ＣＰＵ５０から読み出すことができるＷＰ／ＲＰの値をＷｄＰ／ＲｄＰとする。【００４３】
図８は、図７のポインタ制御装置１００の演算アルゴリズムを示している。ステップＳ１１にてＲＰとＤｎ１Ｐとの大小を比較し、ＲＰの方が小さい場合は、外部メモリ３０上の実際の読み出し位置が外部ポインタ１０３に渡されるデータとなり、ＲＰの方が大きい場合は、ステップＳ１２へ進む。そして、あるモードでは外部メモリ３０上の実際の読み出し位置を外部ポインタ１０３に渡し、また別のモードでは、外部メモリ３０上の実際の読み出し位置から、読み書きを行わない領域のサイズを差し引いた値を外部ポインタ１０３に渡す。この機構により、ソフトウェアが外部メモリ３０の使用領域を意識する必要がなくなり、転送開始命令を行う設定回数を減らし、ソフトウェアの性能向上に効果がある。なお、図８は読み書きを行わない領域が１つの場合の例であるが、読み書きを行わない２つ以上の領域を持った場合も、同様のアルゴリズムを拡張することで対応できる。【００４４】
図９は図７のポインタ制御装置１００の変形例を、図１０は図９のポインタ制御装置１００を用いた場合のステートマシン８６の動作をそれぞれ示している。ここでは、内部ポインタ１０４がデータ保持機能を更に備えているものとする。コマンド部４２は、最初の転送開始命令を受けた時以外は、Ｎ個の設定レジスタ４０からではなく、内部ポインタ１０４から次のアドレスを受け取る。また、内部ポインタ１０４の更新タイミングは、システムに依存して、バッファキュー８１におけるコマンドのキューイング完了を示すコマンド格納完了信号、又はコマンド完了信号、又は発行コマンド分のデータが内部バッファ８２に取得完了したことを示すデータ格納完了信号、又は転送完了信号のいずれを用いて更新してもよい。本構成をとることによって、外部ポインタ１０３は転送完了信号で更新されるが、内部ポインタ１０４が転送完了信号以外のトリガを用いて更新される場合、内部ポインタ１０４は、転送完了信号より早く更新されるため、コマンド部４２が実際のデータ転送完了前に動作できるため、データ転送レイテンシの向上に大きな効果がある。【００４５】
なお、図６中のメモリＩＦ９０に対してデータ転送を完了したときに更新されるポインタと、メモリＩＦ９０が外部メモリ３０にデータ転送完了した時点に更新されるポインタとの２種類のポインタを持ち、それぞれが設定レジスタ４０に対応付けられており、これらのポインタが前述のＣＰＵ５０及び専用プロセッサ５１から読み出し可能であることとしてもよい。あるいは、メモリＩＦ９０へのデータ転送が完了したことと、外部メモリ３０へのデータ転送が完了したこととを専用プロセッサ５１に通知し、専用プロセッサ５１がポインタを更新管理することとしてもよい。こうしたポインタ管理を行うことで、外部メモリ３０に対するデータ転送コマンドの先行発行が可能となり、データ転送性能向上に効果がある。【００４６】
図１１はＤＭＡ転送の一時停止及び停止解除機能を追加した読み出し系ＤＭＡＣの構成例を、図１２は図１１中のステートマシン８６の動作をそれぞれ示している。ステートマシン８６のバッファ領域毎の状態にそれぞれＳＴＯＰ状態を追加し、Ｎ個の設定レジスタ４０を通じて状態を変化させる。ＳＴＯＰ状態になると、命令が受け付けられたＤＭＡソースからの転送は一時停止状態になる。ＳＴＯＰ状態は、Ｎ個の設定レジスタ４０から解除命令を示すコマンドを受け付ければ解除される。ＳＴＯＰ状態から復帰する際は、本例では元の状態に遷移する。リクエスト発生装置８８はＳＴＯＰ状態になると、メモリＩＦ９０へのコマンド発生を停止する。本構成をとることにより、一時停止後にポインタの値を変更することができるため、ソフトウェア実行要件が変更された場合の待ち時間減少に効果がある。【００４７】
図１３は図１１の変形例を、図１４は図１３中のステートマシン８６の動作をそれぞれ示している。図１１及び図１２の例ではＳＴＯＰ状態をバッファ領域毎に持つこととしたが、図１３及び図１４の例では、ＳＴＯＰ状態を転送ソース群の数と同数だけ持ち、バッファ領域毎の状態とは独立に動作することに特徴がある。ＳＴＯＰ状態になった転送ソースは、アービタ８４によりバッファキュー判定装置８５への転送要求が遮断されて、ＤＭＡ転送が停止する。そのため、図１１及び図１２の例に比べて、バッファ領域を解放できるため、停止しているＤＭＡ以外のＤＭＡ転送効率の向上に効果がある。【００４８】
なお、図１１〜図１４における停止制御は、図６中のメモリＩＦコマンドアービタ８９にて検出可能な転送完了信号をトリガとして、１コマンド毎又は定められた数の複数コマンド毎に自動停止するモードにて実現することも可能である。【００４９】
図１５は、図１中のコマンド部４２の演算アルゴリズムの詳細例を示している。コマンド部４２は、図１中のＮ個の設定レジスタ４０に設定された、外部メモリ３０のポインタＤｐ１Ｐ，Ｄｎ１Ｐ，ＳＰ，ＥＰ，ＷＰ，ＲＰと、転送データサイズＣｓｚと、転送開始命令とを受けて、次に示すアルゴリズムに従い、バッファキュー８１に格納されメモリＩＦ９０に渡されるデータ転送サイズＴｓｚと、データ転送開始アドレスＴａｄとをコマンドとして発行し続ける。なお、図１５ではＷＰを例としているが、ＲＰに関しても同様に制御される。【００５０】
まず、ステップＳ０１にて、Ｃｓｚが１ＤＭＡ単位に分割された転送単位の基本データサイズＣＴｓｚより小さいか大きいかが判定され、大きければＣＴｓｚが選ばれてＣｓｚからＣＴｓｚが減ぜられ、小さい場合はＣｓｚが選ばれてＣｓｚは０となる。次に、ステップＳ０２にて、ＷＰがＤｐ１Ｐより大きいか小さいかが判定される。小さい場合はステップＳ０３０にて、大きい場合はステップＳ０３１にてそれぞれ更に判定が行われる。ステップＳ０３０では、ステップＳ０１で選択されたデータサイズＢＴｓｚがＤｐ１Ｐ−ＷＰより大きいか小さいかが判定され、大きい場合は、コマンドは２回に分かれて次のように発行される。(1)Ｔｓｚ：Ｄｐ１Ｐ−ＷＰ、Ｔａｄ：ＷＰ、(2)Ｔｓｚ：ステップＳ０１で選択されたデータサイズＢＴｓｚから(1)で発行済みのＴｓｚを減じたもの、Ｔａｄ：Ｄｎ１Ｐ、小さい場合は、Ｔｓｚ：ステップＳ０１で選択されたデータサイズＢＴｓｚ、Ｔａｄ：ＷＰとなる。また、ステップＳ０３１では、ステップＳ０１で選択されたデータサイズＢＴｓｚがＥＰ−ＷＰより大きいか小さいかが判定され、大きい場合は、コマンドは２回に分かれて次のように発行される。(1)Ｔｓｚ：ＥＰ−ＷＰ、Ｔａｄ：ＷＰ、(2)Ｔｓｚ：ステップＳ０１で選択されたデータサイズＢＴｓｚから(1)で発行済みのＴｓｚを減じたもの、Ｔａｄ：ＳＰ、小さい場合は、Ｔｓｚ：ステップＳ０１で選択されたデータサイズＢＴｓｚ、Ｔａｄ：ＷＰとなる。そして、最後にステップＳ０４にて、Ｃｓｚが残っているかどうかが判定され、残っていなければ転送完了、残っていれば、ステップＳ０１〜Ｓ０４の処理を繰り返す。以上の機構により、複数の様々な転送ソース及び転送量のＤＭＡ要求マスタのコマンドを全く同一のＤＭＡコマンドに分割できるため、どのような転送に対しても、同一のＤＭＡ制御部２０を用いたデータ転送が可能となる。
【産業上の利用の可能性】
【００５１】
以上説明してきたとおり、本発明は、ＤＴＶ受像装置、ＤＶＤやＢＤの記録再生装置等における外部メモリとのデータ転送処理に有用である。
【図１】
2007099659.tif 000003
【図２】
2007099659.tif 000004
【図３】
2007099659.tif 000005
【図４】
2007099659.tif 000006
【図５】
2007099659.tif 000007
【図６】
2007099659.tif 000008
【図７】
2007099659.tif 000009
【図８】
2007099659.tif 000010
【図９】
2007099659.tif 000011
【図１０】
2007099659.tif 000012
【図１１】
2007099659.tif 000013
【図１２】
2007099659.tif 000014
【図１３】
2007099659.tif 000015
【図１４】
2007099659.tif 000016
【図１５】
2007099659.tif 000017
【手続補正書】
【提出日】平成20年3月21日(2008.3.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
Ｍ、Ｎを整数（Ｍ≦Ｎ）とするとき、
格納領域の異なるＮ個の転送ソースを有するＭ個の記憶デバイスと、
前記記憶デバイスとそれぞれ接続されたＭ個のインタフェースと、
前記転送ソースのＤＭＡ転送設定を前記転送ソースそれぞれについて保存するＮ個の設定レジスタと、
前記Ｎ個の設定レジスタの設定値をもとにＤＭＡ転送制御を行うＤＭＡ制御部とを備えたことを特徴とするデータ転送装置。
【請求項２】
請求項１記載のデータ転送装置において、
予め定められた数（＝Ｎ個）の範囲内で前記転送ソースの数が各インタフェース毎に増減した場合でも、前記Ｎ個の設定レジスタの前記転送ソースに対する割り当てを変更できるように構成されたことを特徴とするデータ転送装置。
【請求項３】
請求項１記載のデータ転送装置において、
前記Ｎ個の設定レジスタの読み出し／書き込み属性を切り替える読み出し／書き込み切り替え設定部を更に備えたことを特徴とするデータ転送装置。
【請求項４】
請求項１記載のデータ転送装置において、
前記ＤＭＡ制御部は、一時データ格納領域として内部バッファを備え、
前記内部バッファは、前記転送ソースの割り当て方法に関する複数のモードを有し、
あるモードでは、全ての転送ソースからの転送要求を順番に前記内部バッファの空き領域に割り当てることで前記内部バッファの全領域を共有し、またあるモードでは、前記転送ソース毎に固定領域を割り当てることを特徴とするデータ転送装置。
【請求項５】
請求項１記載のデータ転送装置において、
Ｐ、Ｓを整数（Ｓ≦Ｐ≦Ｎ）とするとき、
前記Ｎ個の設定レジスタの集合毎に設けられたＰ個のセレクト部と、
前記Ｐ個のセレクト部から受け取った転送パラメータをＤＭＡの１転送コマンド単位に分割するＳ個のコマンド部とを更に備え、
前記Ｐ個のセレクト部は、前記Ｎ個の設定レジスタの集合毎に受け取った転送パラメータを、前記Ｓ個のコマンド部を介して前記ＤＭＡ制御部に渡すことを特徴とするデータ転送装置。
【請求項６】
請求項５記載のデータ転送装置において、
前記ＤＭＡ制御部は、
内部バッファと、
前記コマンド部から受け取ったデータ転送要求を調停するアービタと、
前記コマンド部で発行される１コマンド分に割り当てられる前記内部バッファの各領域毎に前記アービタにより調停されたデータを格納するバッファキューと、
前記バッファキューの状態を監視するステートマシンとを有することを特徴とするデータ転送装置。
【請求項７】
請求項６記載のデータ転送装置において、
前記ステートマシンは、前記アービタの状態を更に監視することを特徴とすることを特徴とするデータ転送装置。
【請求項８】
請求項６記載のデータ転送装置において、
前記バッファキューと、前記ステートマシンとを、読み出し用、書き込み用それぞれに有することを特徴とするデータ転送装置。
【請求項９】
請求項６記載のデータ転送装置において、
前記ステートマシンは前記内部バッファの各領域の数と同数かつ互いに等価であるサブステートマシンを有することを特徴とするデータ転送装置。
【請求項１０】
請求項６記載のデータ転送装置において、
前記ステートマシンは前記内部バッファの使用モードを選択する機能を更に有することを特徴とするデータ転送装置。
【請求項１１】
請求項６記載のデータ転送装置において、
前記ＤＭＡ制御部は、読み出し用、書き込み用にそれぞれ有する前記アービタの調停結果と、前記内部バッファの状態とから、前記内部バッファの読み出し用、書き込み用の割り当てのうちいずれにするかを判定するバッファキュー判定装置を更に有し、
前記内部バッファを読み出し用、書き込み用で共有することを特徴とするデータ転送装置。
【請求項１２】
請求項１１記載のデータ転送装置において、
前記ＤＭＡ制御部は、前記ステートマシンから、前記内部バッファの読み出し用、書き込み用の割り当てのうちいずれが緊急度が高いかを判定する内部ＩＦキュー判定装置を更に有し、
緊急時に読み出し用内部バッファを、書き込み用内部バッファに割り当てることを可能としたことを特徴とするデータ転送装置。
【請求項１３】
請求項６記載のデータ転送装置において、
前記ＤＭＡ制御部は、複数の外部メモリが当該ＤＭＡ制御部に接続可能であるように、前記複数の外部メモリにそれぞれ対応したメモリＩＦコマンドアービタと、前記複数の外部メモリと前記メモリＩＦコマンドアービタとの間に介在したメモリＩＦと、リクエスト発生装置とを更に有し、
前記リクエスト発生装置は、前記ステートマシンの状態をもとに前記バッファキューで保持されている値を使用して、前記メモリＩＦコマンドアービタに複数のコマンドを発生し、
前記メモリＩＦコマンドアービタは、前記複数のコマンドを調停して、前記メモリＩＦにコマンドを発行することを特徴とするデータ転送装置。
【請求項１４】
請求項１記載のデータ転送装置において、
前記Ｎ個の設定レジスタは、複数のプロセッサからアクセスされるように構成されたことを特徴とするデータ転送装置。
【請求項１５】
請求項１記載のデータ転送装置において、
前記Ｎ個の設定レジスタは、前記ＤＭＡ制御部に接続される外部メモリの使用領域に関して、読み書きを行わない領域の先頭アドレスを示すポインタと、当該読み書きを行わない領域の最終アドレスを示すポインタとを有し、
前記両ポインタ間の領域を飛ばして前記外部メモリにアクセスすることを特徴とするデータ転送装置。
【請求項１６】
請求項１５記載のデータ転送装置において、
あるモードでは、前記読み書きを行わない領域の先頭アドレスと最終アドレスとの差分を自動的に計算し、前記外部メモリの読み出し又は書き込み領域の最終アドレスとして、前記差分を差し引いたアドレスを指し示し、また別のモードでは、前記外部メモリの読み出し又は書き込み領域の最終アドレスを変更せずに指し示すことを特徴とするデータ転送装置。
【請求項１７】
請求項１６記載のデータ転送装置において、
ＣＰＵから読み出し可能な、前記差分を保持するレジスタを更に備えたことを特徴とするデータ転送装置。
【請求項１８】
請求項１記載のデータ転送装置において、
前記ＤＭＡ制御部は、当該データ転送装置と外部メモリとの間のインタフェースを司るメモリＩＦを更に有し、
前記Ｎ個の設定レジスタ中に、前記メモリＩＦにデータ転送を完了した時点で更新するポインタと、前記外部メモリにデータ転送を完了した時点で更新するポインタとを有することを特徴とするデータ転送装置。
【請求項１９】
Ｍ、Ｎを整数（Ｍ≦Ｎ）とするとき、格納領域の異なるＮ個の転送ソースを有するＭ個の記憶デバイスと、外部メモリとの間のデータ転送方法であって、
前記転送ソースのＤＭＡ転送設定を前記転送ソースそれぞれについてＮ個の設定レジスタに保存するステップと、
前記Ｎ個の設定レジスタの設定値をもとにＤＭＡ制御部がＤＭＡ転送制御を行うステップとを備えたことを特徴とするデータ転送方法。
【請求項２０】
請求項１９記載のデータ転送方法において、
Ｐ、Ｓを整数（Ｓ≦Ｐ≦Ｎ）とするとき、前記Ｎ個の設定レジスタの集合毎に設けられたＰ個のセレクト部から受け取った転送パラメータをＳ個のコマンド部がＤＭＡの１転送コマンド単位に分割するステップを更に備え、
前記Ｐ個のセレクト部は、前記Ｎ個の設定レジスタの集合毎に受け取った転送パラメータを、前記Ｓ個のコマンド部を介して前記ＤＭＡ制御部に渡すことを特徴とするデータ転送方法。
【請求項２１】
請求項２０記載のデータ転送方法において、
前記Ｓ個のコマンド部によって発行されるＤＭＡの１転送コマンド単位の転送完了信号を検出するステップと、
前記Ｎ個の設定レジスタ中に含まれるメモリ領域指示ポインタを変更するステップとを更に備えたことを特徴とするデータ転送方法。
【請求項２２】
請求項２１記載のデータ転送方法において、
前記Ｎ個の設定レジスタを通じて、前記ＤＭＡ制御部にあるＤＭＡ転送コマンドの一時停止命令を伝えるステップを、前記メモリ領域指示ポインタを変更するステップの前に行うことを特徴とするデータ転送方法。
【請求項２３】
請求項１９記載のデータ転送方法において、
ある１つの転送ソースから、前記外部メモリとの間のインタフェースを司るメモリＩＦにデータ転送を完了したことを認識するステップと、
前記外部メモリのどの位置までデータを書き込んだかを示すライトポインタを、前記メモリＩＦにデータ転送を完了した時点で、ポインタ更新一時領域に格納するステップと、
前記１つの転送ソースに関して、次のデータ転送要求を前記Ｎ個の設定レジスタに発行するステップと、
前記メモリＩＦへの転送を完了したデータ転送が、前記外部メモリにもデータ転送を完了したことを認識するステップと、
前記ポインタ更新一時領域に格納された値を前記ライトポインタに格納するステップとを更に備えたことを特徴とするデータ転送方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーディオビジュアル（ＡＶ）データの記録再生装置におけるデータ転送装置及びデータ転送方法に関するものである。
【背景技術】
【０００２】
ＡＶデータは、ディジタルＴＶ（ＤＴＶ）放送を介して受信されたり、ＤＶＤ、ブルーレイディスク（ＢＤ）等の媒体に記録されたりする。
【０００３】
ＤＴＶ用のシステムＬＳＩにて前処理を経て受信されたデータは、トランスポートストリーム（ＴＳ）という形態をとる。ＤＴＶシステムはＭＰＥＧ−２システムであり、ＭＰＥＧ−２ではデータ系列として、上述したＴＳに加え、ＤＶＤで使用されるプログラムストリーム（ＰＳ）があり、ＴＳとＰＳの変換を行う際の中間データとして位置付けられているパケタイズドエレメンタリストリーム（ＰＥＳ）がある。これらが最終的にはエレメンタリストリーム（ＥＳ）となり、処理される。ＴＳ，ＰＳ，ＰＥＳ，ＥＳは、定められた規格が存在し、それぞれが異なった形式を持つ。ＤＴＶやＢＤシステムではＴＳ形式のディジタルデータストリーム、ディジタルビデオレコーダ（ＤＶＲ）ではＰＳ形式のディジタルデータストリームがそれぞれストリームデコーダに受信され、音声信号（オーディオデータ）、映像信号（ビデオデータ）、文字信号（テレテキストデータ）といったデータ（ＡＶデータ）や、暗号、番組情報等のセクションデータ毎に分けられ、メモリコントローラを通じて外部メモリに転送され、一時格納される。これらの一時格納されたデータについて、セクションデータはＣＰＵのソフトウェアによって処理され、ＡＶデータは別デバイスに記録されるか、ＡＶデコーダ（ＡＶＤ）からの呼び出しによって、外部メモリからＡＶＤに転送されて、ＡＶデータのデコード処理が始まる。
【０００４】
ストリームデコーダにおける処理の詳細については、例えば、多重化したディジタルデータストリームの記憶手段が文献に記載されている（特許文献１参照）。
【０００５】
従来、ストリームデコーダとＡＶＤとＣＰＵとをワンチップ化したシステムＬＳＩが知られている。このシステムＬＳＩでは、ストリームデコーダとＡＶＤとの各々にデータ一時格納メモリが個別に外付けされる（特許文献２の図１参照）。
【０００６】
また、ＡＶＤにおける処理の詳細については、例えば映像信号の水平垂直方向の拡大処理が他の文献に記載されている（特許文献３参照）。
【０００７】
一方、ＤＴＶ、ＤＶＤ、ＢＤ等のＡＶデータは、ＰＣＩ、ＬＡＮ、ＵＳＢに代表される伝送路にデクリプトした形で流すことは認められないため、記録、ダビング等のＡＶデータ処理を行うためには、暗復号の動作が必要になる。暗復号のためには大容量バッファが必要なため、外部にメモリを備えていることが通例である（特許文献４参照）。
【０００８】
外部メモリのバンド幅を有効に使うためには、大きい転送単位を用いたダイレクトメモリアクセス（ＤＭＡ）転送が有効である。ただし、一旦ＤＭＡ転送を起動した後に新しくＤＭＡ転送をセットするには、現在実行中のＤＭＡ転送の終了を待って転送パラメータをセットする必要がある。転送パラメータのセットにはＣＰＵ負荷がかかり、たまたまＣＰＵの負荷が重く遅くなってしまうと、データ転送効率が悪くなる。そのため、途中でＤＭＡ転送を停止することなく複数のＤＭＡ転送を切り替えることができるように、ＤＭＡ制御装置（ＤＭＡＣ）に複数の転送パラメータを保持する方法も紹介されている（特許文献５参照）。
【特許文献１】特開平９−２７５３８１号公報
【特許文献２】特開２００１−６９１０６号公報
【特許文献３】特開平１１−３５５６８３号公報
【特許文献４】特開平７−２９７８５５号公報
【特許文献５】特開２００１−３０６４８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ＤＴＶの放送データは、転送レートは低いが、データが受信されるかどうか分からず、緊急度が高いため、小さい転送単位のデータ転送を繰り返す必要がある。また、ＤＶＤやＢＤから入力されるデータは、転送レートは高いが、一定期間内に一定量のデータを転送するため、大きい転送単位のデータ転送を随時行う必要がある。
【００１０】
これらの異質なデータ転送を好適に実現するために、従来は入出力インタフェース毎に複数の転送パラメータを保持させ、チャネル毎に複数のパラメータを持つＤＭＡＣをそれぞれに備えていた。
【００１１】
しかしながら、これではＤＭＡＣの回路規模が大きくなるとともに、２つのＤＭＡＣに対して随時命令を与えねばならないため、ソフトウェア処理が増加してしまう。しかも、近年増加しつつあるＨＤＤ等の大容量記憶媒体に存在するストリームの複数同時処理を行うためには、インタフェースは１つでしかなく、また、各々の使用するメモリ領域も、必ずしも順番にはなっていないので、転送終了信号を契機にしてＣＰＵがソースチャネルの設定を行うに際し、インタフェースの読み書きは時系列で行うほかない。
【００１２】
つまり、読み出し／書き込み属性や、複数のソースのデータ転送を時系列に行い、ＣＰＵは、１つの転送ソースに割り当てられたＤＭＡＣの転送完了を待ってから次のＤＭＡＣの設定を順次変更し、転送パラメータ設定も時系列に変更をするという、古くからのステップを繰り返さねばならない。そのため、結局、インタフェース毎の転送切り替え時には、ＣＰＵによるＤＭＡＣの停止再開処理が発生してしまうため、データ転送性能がＣＰＵ性能に大きく依存してしまうという課題があった。
【課題を解決するための手段】
【００１３】
上記課題を解決するため、本発明によれば、同時にデータ通信を行うことができる複数のインタフェースを設け、当該複数のインタフェースは、１つのインタフェースを介してデータ転送を行う複数の転送ソースをそれぞれ持つ。そして、前記転送ソースのそれぞれに対応するＤＭＡ転送パラメータを格納する設定レジスタを設け、ＤＭＡ制御部は、前記設定レジスタの値をもとにアービトレーションして、前記複数のインタフェースを通じて、データを一時格納し、外部メモリにデータを転送する。好ましくは、前記設定レジスタが外部メモリのアドレス飛び領域設定を含む。
【００１４】
システムＬＳＩと１つのインタフェースを通じて接続された記憶デバイスであっても、当該記憶デバイスに保存された複数データの再生コマンドと、当該記憶デバイスへの複数データの記録コマンドとをＣＰＵから先行発行すれば、当該ＣＰＵのソフトウェアから見ると、あたかも複数のインタフェースを通じてデータ転送を行っているかのようになる。
【００１５】
また、本発明の他の観点によれば、設定レジスタの集合毎に１個のセレクト部を設け、これらのセレクト部から受け取った転送パラメータをＤＭＡの１転送コマンド単位に分割してＤＭＡ制御部に渡すコマンド部を更に設ける。
【００１６】
一方、ＤＭＡ制御部は、内部バッファと、コマンド部から受け取ったデータ転送要求を調停するアービタと、コマンド部で発行される１コマンド分に割り当てられる内部バッファの各領域毎にアービタにより調停されたデータを格納するバッファキューと、当該バッファキューの状態を監視するステートマシンとを備えることとし、当該ステートマシンは、内部バッファの各領域の数と同数かつ互いに等価であるサブステートマシンを有することとすればよい。
【発明の効果】
【００１７】
本発明によれば、システムＬＳＩと外部メモリとのインタフェースに関して無駄な転送を低減することができ、ＣＰＵの負荷も軽減できる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照しながら、本発明の実施の形態を説明する。
【００１９】
図１は、本発明に係るデータ転送装置の構成例を示している。図１において、１０はＭ個の記憶デバイス、１５はＭ個のインタフェース（ＩＦ）、２０はＤＭＡ制御部、３０は外部メモリ、４０はＮ個の設定レジスタ、４１はＰ個のセレクト部、４２はＳ個のコマンド部、５０はＣＰＵ、５１は専用プロセッサである。例えば、図１中の記憶デバイス１０と外部メモリ３０とを除く構成要素が１つのシステムＬＳＩ上に搭載される。ここに、Ｍ、Ｎ、Ｐ及びＳはいずれも整数であって、Ｍ≦ＮかつＳ≦Ｐ≦Ｎである。
【００２０】
図１のデータ転送装置において、外部メモリ３０に対するＤＭＡ転送を行うＤＭＡ制御部２０と、データ量、転送レートの異なるＮ個の転送ソースＴＳを含むＭ個の記憶デバイス（それぞれ動作周波数が異なってもよい）１０とが、Ｍ個のインタフェース１５を通じて接続され、ＤＭＡ制御部２０は、Ｎ個の転送ソースＴＳにそれぞれ対応付けられたＮ個の設定レジスタ４０から転送パラメータを受け取ってデータ転送を行う。設定レジスタ４０は、一般的なデータ転送制御を司るＣＰＵ５０と、ストリーム制御等の専用処理を行う専用プロセッサ５１とによって制御される。なお、以下の説明では、Ｎ個の転送ソースＴＳから外部メモリ３０に対してデータが渡される転送を「書き込み」、外部メモリ３０からＮ個の転送ソースＴＳに対してデータが渡される転送を「読み出し」と呼ぶ。
【００２１】
図１の構成によれば、Ｎ個の設定レジスタ４０が、Ｍ個のインタフェース１５を介して接続されたＭ個の記憶デバイス１０中のＮ個の転送ソースＴＳのそれぞれに割り当て可能であるため、ある１つの転送ソースＴＳについてデータ転送を行うための記憶デバイス１０のシーク時間等の転送待ち時間を、別の転送ソースＴＳのデータ転送時間中に吸収し、複数の記憶デバイス１０からのデータ転送にかかる総時間の短縮を見込むことができる。また、転送パラメータを設定レジスタ４０に先行的に設定できるため、ＣＰＵ５０の負荷も軽減できる。
【００２２】
更に、Ｎ個の設定レジスタ４０が次のようにグループ化される。例えば、１つのインタフェース１５を通じて転送する転送ソース群に１対１で対応付けられた設定レジスタ群毎に集める。このグループ毎に、Ｎ個の設定レジスタ４０からの転送パラメータを選択するＰ個のセレクト部４１を設定レジスタ４０と接続し、転送パラメータを１ＤＭＡ単位の転送コマンドに分割するＳ個のコマンド部４２をＰ個のセレクト部４１と接続する。ただし、セレクト部４１が介在しない設定レジスタ４０には、コマンド部４２を直接接続する。
【００２３】
ＤＭＡ制御部２０は、コマンド部４２から転送パラメータを取得してＤＭＡ転送を行い、セレクト部４１を通じて、更新された転送パラメータを設定レジスタ４０に書き戻す。このようなセレクト部４１とコマンド部４２とを備えることによって、Ｎ個の設定レジスタ４０のそれぞれに必要であった、１ＤＭＡ単位あたりの転送コマンド発行のための演算部を省略することができるため、回路規模削減、消費電力削減に効果がある。
【００２４】
なお、セレクト部４１とコマンド部４２との割り当て方は、固定されていてもよいし、外部設定によって可変であってもよい。
【００２５】
外部メモリ３０の読み書き対象となる領域は、設定レジスタ４０中の次のようなポインタによって指定される。すなわち、領域毎の読み書きの先頭アドレスを示すスタートポインタ（ＳＰ）と、領域毎の読み書きの最終アドレスを示すエンドポインタ（ＥＰ）と、領域毎の書き込みアドレスを示すライトポインタ（ＷＰ）と、領域毎の読み出しアドレスを示すリードポインタ（ＲＰ）とである。ＳＰとＥＰとの間に挟まれる領域中に読み書きを行わない領域を設ける場合には、読み書きを行わない領域の先頭アドレスを示すポインタＤｐ１Ｐと、読み書きを行わない領域の最終アドレスを示すポインタＤｎ１Ｐとを設定する。
【００２６】
コマンド部４２は、Ｄｐ１Ｐ及びＤｎ１Ｐを設定レジスタ４０から受け取り、Ｄｐ１Ｐ付近まで来ると転送コマンドを分割し、次の転送コマンドはＤｎ１Ｐの次のアドレスから始まるように自動的に調整する。このような読み書きを行わない領域は、複数あってもよい。この際、コマンド部４２によって、１ＤＭＡ単位に分割された転送毎の完了を専用プロセッサ５１に通知することで、専用プロセッサ５１によって起動されるＤＭＡ転送要因に関する外部メモリ３０のポインタＤｐ１Ｐ，Ｄｎ１Ｐ，ＳＰ，ＥＰを動的に可変にすることができる。これらは、特にＤＶＤ、ＢＤ等の再生処理においてデータ領域を動的に変更する際に効果がある。
【００２７】
なお、設定レジスタ４０が読み出し専用、書き込み専用にそれぞれ分かれ、そのそれぞれが転送ソースＴＳに対して１対１に割り当てられていてもよい。割り当ては、Ｍ個の記憶デバイス１０間で切り替えることが可能であってもよい。また、ＣＰＵ５０又は専用プロセッサ５１が読み出し／書き込み切り替え設定部として動作することにより、設定レジスタ４０を読み出し用、書き込み用のいずれにも汎用的に使えるようにしてもよい。
【００２８】
図２は、図１中のＤＭＡ制御部２０における内部バッファの使用例を示している。図２に示した内部バッファ２１は、幾つかのモードに応じて使い方を変更することができるものである。この内部バッファ２１は、Ｎ個の転送ソースＴＳのＤＭＡ転送用の一時バッファとして領域を割り当てるが、あるモードでは、全てのバッファ領域をＮ個の転送ソースＴＳで共有し、転送要求を受け付けた順番にバッファ領域を割り当てる。また、別のモードでは、Ｎ個の転送ソースＴＳの各々に、バッファ領域の割り当てを固定することができる。モードによって領域毎の容量はそれぞれ可変であってもよい。このようなバッファ領域の割り当て方法をとることによって、前者のモードでは、転送ソースＴＳの総転送量を増加させることができる。また後者のモードでは、予め期待するだけの各転送ソースＴＳのデータ転送性能を確保することができる。これらのモードを持つことによって、汎用性の高いＤＭＡ制御が可能となる。
【００２９】
図３は、図１中のＤＭＡ制御部２０の詳細構成例を示している。図３のＤＭＡ制御部２０は、内部に書き込み（Ｗ）系ＤＭＡＣと、読み出し（Ｒ）系ＤＭＡＣとを備える。それぞれのＤＭＡＣは、内部バッファ６２，７２に加えて、コマンド部４２からのＤＭＡ転送要求を調停するアービタ６３，７３と、内部バッファ６２，７２中のある定められたバッファ領域に１対１で対応付けられており、コマンド部４２から受け取った１ＤＭＡ単位に切り出された転送コマンドを前述のある定められたバッファ領域毎に保持することを目的とするバッファキュー６１，７１と、それぞれの状態を監視するステートマシン６４，７４とを有する。ここでは、書き込み系ＤＭＡＣにおいて、内部バッファ６２がｍ個のバッファ領域を有し、これに対応してバッファキュー６１がｍ個のキュー領域を有するものとしている。また、読み出し系ＤＭＡＣにおいて、内部バッファ７２がｎ個のバッファ領域を有し、これに対応してバッファキュー７１がｎ個のキュー領域を有する。ここに、ｍ及びｎはいずれも整数である。
【００３０】
本構成は、アービタ６３，７３を持つことによって、システム要件によっても、記憶媒体によっても異なる性質を持つ転送ソースＴＳのＤＭＡ転送に関して、一定性能を保証することが容易になり、バッファキュー６１，７１の領域を内部バッファ６２，７２の各領域毎に持つことによって、コマンド部４２から受け取る１ＤＭＡ単位あたりに切り出された転送コマンドをバッファ領域毎に保持し、それらをステートマシン６４，７４によって管理することで、バッファ領域毎の転送を管理することができる。そのため、デバッグ効率を著しく高めることができる。それに加えて、バッファ領域を共有することもできるため、高効率な転送を行うことができるという効果がある。
【００３１】
図４は、図３中の読み出し系ＤＭＡＣにおけるステートマシン７４の詳細構成例を示している。ここでは、ステートマシン７４がバッファ領域毎に互いに全く等価なサブステートマシンを持つことに特徴があり、各サブステートマシンによってバッファ領域を独立に制御可能にすることで、前述のＭ個のインタフェース１５それぞれの転送要求が同じバッファ領域を共用できるという効果がある。図４の例では、内部バッファ７２がＳＲＡＭで構成されるものとし、ｎ個のサブステートマシンの各々の状態として、ＩＤＬＥ、ＱＵＥＯ、ＲＥＱＯ、ＳＲＡＭという４つの状態が存在する。ＩＤＬＥ状態は、対応するＳＲＡＭ領域の空き状態である。ＱＵＥＯ状態は、対応するＳＲＡＭ領域のコマンド受付が完了した使用予約状態である。ＲＥＱＯ状態は、受け付けたコマンドを外部メモリ３０に発行したデータ待ち受け状態である。ＳＲＡＭ状態は、外部メモリ３０から受け取ったデータが対応するＳＲＡＭ領域中にあり、対応するインタフェース１５へのデータ転送完了を待っている状態である。もちろん、状態数はシステム要件により増減する。
【００３２】
図５（ａ）〜図５（ｄ）は、図４のステートマシン７４によるデータ転送制御の例を示している。この例は、チャネル０からチャネル５までの６個のインタフェース１５が８個のＳＲＡＭ領域を共用し、転送要求が受け付けられた順番にデータ転送が行われる例である。図５（ａ）では、２領域がＱＵＥＯ状態である。図５（ｂ）では、６領域がＳＲＡＭ状態である。図５（ｃ）では、２領域がＩＤＬＥ状態になり、次にＱＵＥＯ状態になる。４領域はＳＲＡＭ状態である。図５（ｄ）では、２領域がＱＵＥＯ状態であり、他の２領域がＳＲＡＭ状態である。以上のとおり、内部バッファ７２のＳＲＡＭ領域が有効に使われる。
【００３３】
なお、図２では内部バッファ２１の使用に関する複数のモードのうちのいずれかが固定的に選択されるものとしたが、図４のステートマシン７４が状況に応じて内部バッファ７２の使用モードを選択することとしてもよい。
【００３４】
図６は、図１中のＤＭＡ制御部２０の他の詳細構成例を示している。図６において、８１はバッファキュー、８２は内部バッファ、８３及び８４はアービタ、８５はバッファキュー判定装置、８６はステートマシン、８７は内部ＩＦキュー判定装置、８８はリクエスト発生装置、８９はメモリＩＦコマンドアービタ、９０はメモリＩＦ、１００はポインタ制御装置である。
【００３５】
図６のＤＭＡ制御部２０は、書き込み（Ｗ）用と読み出し（Ｒ）用とに分かれたアービタ８３，８４から、バッファキュー判定装置８５を介して、バッファキュー８１に転送コマンドを発行する。バッファキュー判定装置８５は、アービタ８３，８４からの転送要求を判定して、転送コマンドをバッファキュー８１に渡す。本構成をとることで、内部バッファ８２にＳＲＡＭを使用する際のバッファ領域の割り振り方法の自由度が向上する。例えば、１つのＳＲＡＭに書き込み用の領域と読み出し用の領域とを混在させることも容易になる。そのため、システム要件によって変化するデータ転送性能を保証する際に必要なバッファの回路規模削減、データ転送性能向上に効果がある。
【００３６】
内部ＩＦキュー判定装置８７は、書き込み系のアービタ８３からデータ転送要求を受け取り、かつステートマシン８６から内部バッファ８２の転送要求のキューイング状態情報を受け取って、両者をもとにした演算結果をバッファキュー判定装置８５に返す。内部ＩＦキュー判定装置８７の演算とは、バッファキュー８１に書き込み系の転送コマンドがフルに保持されて転送待ち状態であるときに、更に一定数以上の書き込み系のデータ転送要求が生じた場合、通常は読み出し系転送コマンド用に確保されているバッファキュー８１に、書き込み系の転送コマンドを割り当てることを意図したものである。これにより、書き込み系転送の緊急時の転送性能を向上させる効果がある。
【００３７】
リクエスト発生装置８８及びメモリＩＦコマンドアービタ８９は、メモリＩＦ９０が複数の外部メモリ３０に接続されることを想定したものである。リクエスト発生装置８８は、バッファキュー８１にキューイングされた転送コマンドから、いずれの外部メモリ３０にデータ転送要求（リクエスト）を発行するのかを選択してリクエストを発行する。メモリＩＦコマンドアービタ８９は、発生したリクエストをそれぞれの外部メモリ３０毎に調停するように、ｋ（ｋは整数）個のアービタで構成される。リクエスト発生装置８８とメモリＩＦコマンドアービタ８９との間のデータ転送方法は、レジスタ設定によって切り替えられてもよい。本構成をとることによって、複数の外部メモリ３０に柔軟に対応できる効果がある。
【００３８】
ポインタ制御装置１００は、メモリＩＦコマンドアービタ８９から、メモリＩＦ９０へ送ったデータ転送コマンドの転送完了信号、又はコマンドが受け付けられたことを示すコマンド完了信号を取得し、バッファキュー８１から処理されたコマンドのポインタに関する情報を取得して、Ｎ個の設定レジスタ４０にポインタの値を書き戻す。
【００３９】
なお、メモリＩＦ９０をＤＭＡ制御部２０に外付けすることも可能である。この場合には、図６中のメモリＩＦ９０が、メモリＩＦコマンドアービタ８９と外部メモリＩＦとの間のインタフェースを司る回路ブロックに置き換えられる。
【００４０】
図７は、図６中のポインタ制御装置１００の詳細構成例を示している。ポインタ制御装置１００は、特殊ポインタ演算器１０１と、ポインタ加算器１０２と、外部ポインタ１０３と、内部ポインタ１０４とからなる。特殊ポインタ演算器１０１は、転送完了信号をトリガとして次に示すアルゴリズムに従って演算した結果を外部ポインタ１０３に渡す。ポインタ加算器１０２は、転送完了信号又はコマンド完了信号をトリガとしてＲＰとＴｓｚとを加算した結果を内部ポインタ１０４に戻す。ここに、ＲＰは前述のリードポインタであり、Ｔｓｚはバッファキュー８１に入り、メモリＩＦ９０に渡されるデータ転送サイズである。内部ポインタ１０４及び外部ポインタ１０３は、転送完了信号又はコマンド完了信号をトリガとして、演算されたデータをＮ個の設定レジスタ４０に渡す。ここで、ＣＰＵ５０から読み出すことができるＷＰ／ＲＰの値をＷｄＰ／ＲｄＰとする。
【００４１】
図８は、図７のポインタ制御装置１００の演算アルゴリズムを示している。ステップＳ１１にてＲＰとＤｎ１Ｐとの大小を比較し、ＲＰの方が小さい場合は、外部メモリ３０上の実際の読み出し位置が外部ポインタ１０３に渡されるデータとなり、ＲＰの方が大きい場合は、ステップＳ１２へ進む。そして、あるモードでは外部メモリ３０上の実際の読み出し位置を外部ポインタ１０３に渡し、また別のモードでは、外部メモリ３０上の実際の読み出し位置から、読み書きを行わない領域のサイズを差し引いた値を外部ポインタ１０３に渡す。この機構により、ソフトウェアが外部メモリ３０の使用領域を意識する必要がなくなり、転送開始命令を行う設定回数を減らし、ソフトウェアの性能向上に効果がある。なお、図８は読み書きを行わない領域が１つの場合の例であるが、読み書きを行わない２つ以上の領域を持った場合も、同様のアルゴリズムを拡張することで対応できる。
【００４２】
図９は図７のポインタ制御装置１００の変形例を、図１０は図９のポインタ制御装置１００を用いた場合のステートマシン８６の動作をそれぞれ示している。ここでは、内部ポインタ１０４がデータ保持機能を更に備えているものとする。コマンド部４２は、最初の転送開始命令を受けた時以外は、Ｎ個の設定レジスタ４０からではなく、内部ポインタ１０４から次のアドレスを受け取る。また、内部ポインタ１０４の更新タイミングは、システムに依存して、バッファキュー８１におけるコマンドのキューイング完了を示すコマンド格納完了信号、又はコマンド完了信号、又は発行コマンド分のデータが内部バッファ８２に取得完了したことを示すデータ格納完了信号、又は転送完了信号のいずれを用いて更新してもよい。本構成をとることによって、外部ポインタ１０３は転送完了信号で更新されるが、内部ポインタ１０４が転送完了信号以外のトリガを用いて更新される場合、内部ポインタ１０４は、転送完了信号より早く更新されるため、コマンド部４２が実際のデータ転送完了前に動作できるため、データ転送レイテンシの向上に大きな効果がある。
【００４３】
なお、図６中のメモリＩＦ９０に対してデータ転送を完了したときに更新されるポインタと、メモリＩＦ９０が外部メモリ３０にデータ転送完了した時点に更新されるポインタとの２種類のポインタを持ち、それぞれが設定レジスタ４０に対応付けられており、これらのポインタが前述のＣＰＵ５０及び専用プロセッサ５１から読み出し可能であることとしてもよい。あるいは、メモリＩＦ９０へのデータ転送が完了したことと、外部メモリ３０へのデータ転送が完了したこととを専用プロセッサ５１に通知し、専用プロセッサ５１がポインタを更新管理することとしてもよい。こうしたポインタ管理を行うことで、外部メモリ３０に対するデータ転送コマンドの先行発行が可能となり、データ転送性能向上に効果がある。
【００４４】
図１１はＤＭＡ転送の一時停止及び停止解除機能を追加した読み出し系ＤＭＡＣの構成例を、図１２は図１１中のステートマシン８６の動作をそれぞれ示している。ステートマシン８６のバッファ領域毎の状態にそれぞれＳＴＯＰ状態を追加し、Ｎ個の設定レジスタ４０を通じて状態を変化させる。ＳＴＯＰ状態になると、命令が受け付けられたＤＭＡソースからの転送は一時停止状態になる。ＳＴＯＰ状態は、Ｎ個の設定レジスタ４０から解除命令を示すコマンドを受け付ければ解除される。ＳＴＯＰ状態から復帰する際は、本例では元の状態に遷移する。リクエスト発生装置８８はＳＴＯＰ状態になると、メモリＩＦ９０へのコマンド発生を停止する。本構成をとることにより、一時停止後にポインタの値を変更することができるため、ソフトウェア実行要件が変更された場合の待ち時間減少に効果がある。
【００４５】
図１３は図１１の変形例を、図１４は図１３中のステートマシン８６の動作をそれぞれ示している。図１１及び図１２の例ではＳＴＯＰ状態をバッファ領域毎に持つこととしたが、図１３及び図１４の例では、ＳＴＯＰ状態を転送ソース群の数と同数だけ持ち、バッファ領域毎の状態とは独立に動作することに特徴がある。ＳＴＯＰ状態になった転送ソースは、アービタ８４によりバッファキュー判定装置８５への転送要求が遮断されて、ＤＭＡ転送が停止する。そのため、図１１及び図１２の例に比べて、バッファ領域を解放できるため、停止しているＤＭＡ以外のＤＭＡ転送効率の向上に効果がある。
【００４６】
なお、図１１〜図１４における停止制御は、図６中のメモリＩＦコマンドアービタ８９にて検出可能な転送完了信号をトリガとして、１コマンド毎又は定められた数の複数コマンド毎に自動停止するモードにて実現することも可能である。
【００４７】
図１５は、図１中のコマンド部４２の演算アルゴリズムの詳細例を示している。コマンド部４２は、図１中のＮ個の設定レジスタ４０に設定された、外部メモリ３０のポインタＤｐ１Ｐ，Ｄｎ１Ｐ，ＳＰ，ＥＰ，ＷＰ，ＲＰと、転送データサイズＣｓｚと、転送開始命令とを受けて、次に示すアルゴリズムに従い、バッファキュー８１に格納されメモリＩＦ９０に渡されるデータ転送サイズＴｓｚと、データ転送開始アドレスＴａｄとをコマンドとして発行し続ける。なお、図１５ではＷＰを例としているが、ＲＰに関しても同様に制御される。
【００４８】
まず、ステップＳ０１にて、Ｃｓｚが１ＤＭＡ単位に分割された転送単位の基本データサイズＣＴｓｚより小さいか大きいかが判定され、大きければＣＴｓｚが選ばれてＣｓｚからＣＴｓｚが減ぜられ、小さい場合はＣｓｚが選ばれてＣｓｚは０となる。次に、ステップＳ０２にて、ＷＰがＤｐ１Ｐより大きいか小さいかが判定される。小さい場合はステップＳ０３０にて、大きい場合はステップＳ０３１にてそれぞれ更に判定が行われる。ステップＳ０３０では、ステップＳ０１で選択されたデータサイズＢＴｓｚがＤｐ１Ｐ−ＷＰより大きいか小さいかが判定され、大きい場合は、コマンドは２回に分かれて次のように発行される。(1)Ｔｓｚ：Ｄｐ１Ｐ−ＷＰ、Ｔａｄ：ＷＰ、(2)Ｔｓｚ：ステップＳ０１で選択されたデータサイズＢＴｓｚから(1)で発行済みのＴｓｚを減じたもの、Ｔａｄ：Ｄｎ１Ｐ、小さい場合は、Ｔｓｚ：ステップＳ０１で選択されたデータサイズＢＴｓｚ、Ｔａｄ：ＷＰとなる。また、ステップＳ０３１では、ステップＳ０１で選択されたデータサイズＢＴｓｚがＥＰ−ＷＰより大きいか小さいかが判定され、大きい場合は、コマンドは２回に分かれて次のように発行される。(1)Ｔｓｚ：ＥＰ−ＷＰ、Ｔａｄ：ＷＰ、(2)Ｔｓｚ：ステップＳ０１で選択されたデータサイズＢＴｓｚから(1)で発行済みのＴｓｚを減じたもの、Ｔａｄ：ＳＰ、小さい場合は、Ｔｓｚ：ステップＳ０１で選択されたデータサイズＢＴｓｚ、Ｔａｄ：ＷＰとなる。そして、最後にステップＳ０４にて、Ｃｓｚが残っているかどうかが判定され、残っていなければ転送完了、残っていれば、ステップＳ０１〜Ｓ０４の処理を繰り返す。以上の機構により、複数の様々な転送ソース及び転送量のＤＭＡ要求マスタのコマンドを全く同一のＤＭＡコマンドに分割できるため、どのような転送に対しても、同一のＤＭＡ制御部２０を用いたデータ転送が可能となる。
【産業上の利用可能性】
【００４９】
以上説明してきたとおり、本発明は、ＤＴＶ受像装置、ＤＶＤやＢＤの記録再生装置等における外部メモリとのデータ転送処理に有用である。
【図面の簡単な説明】
【００５０】
【図１】本発明に係るデータ転送装置の構成例を示すブロック図である。
【図２】図１中のＤＭＡ制御部における内部バッファの使用例を示す概念図である。
【図３】図１中のＤＭＡ制御部の詳細構成例を示すブロック図である。
【図４】図３中の読み出し系ＤＭＡＣにおけるステートマシンの詳細構成例を示すブロック図である。
【図５】（ａ）〜（ｄ）は図４のステートマシンによるデータ転送制御の例を示す概念図である。
【図６】図１中のＤＭＡ制御部の他の詳細構成例を示すブロック図である。
【図７】図６中のポインタ制御装置の詳細構成例を示すブロック図である。
【図８】図７のポインタ制御装置の演算アルゴリズムを示すフローチャート図である。
【図９】図７のポインタ制御装置の変形例を示すブロック図である。
【図１０】図９のポインタ制御装置を用いた場合のステートマシンの動作を示す概念図である。
【図１１】ＤＭＡ転送の一時停止及び停止解除機能を追加した読み出し系ＤＭＡＣの構成例を示すブロック図である。
【図１２】図１１中のステートマシンの動作を示す概念図である。
【図１３】図１１の変形例を示すブロック図である。
【図１４】図１３中のステートマシンの動作を示す概念図である。
【図１５】図１中のコマンド部の演算アルゴリズムを示すフローチャート図である。
【符号の説明】
【００５１】
１０  Ｍ個の記憶デバイス
１５  Ｍ個のインタフェース
２０  ＤＭＡ制御部
２１  内部バッファ
３０  外部メモリ
４０  Ｎ個の設定レジスタ
４１  セレクト部
４２  コマンド部
５０  ＣＰＵ
５１  専用プロセッサ
６１，７１  バッファキュー
６２，７２  内部バッファ
６３，７３  アービタ
６４，７４  ステートマシン
８１  バッファキュー
８２  内部バッファ
８３，８４  アービタ
８５  バッファキュー判定装置
８６  ステートマシン
８７  内部ＩＦキュー判定装置
８８  リクエスト発生装置
８９  メモリＩＦコマンドアービタ
９０  メモリＩＦ
１００  ポインタ制御装置
１０１  特殊ポインタ演算器
１０２  ポインタ加算器
１０３  外部ポインタ
１０４  内部ポインタ
ＴＳ  Ｎ個の転送ソース
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2007099659.tif 000018
【図２】
2007099659.tif 000019
【図３】
2007099659.tif 000020
【図４】
2007099659.tif 000021
【図５】
2007099659.tif 000022
【図６】
2007099659.tif 000023
【図７】
2007099659.tif 000024
【図８】
2007099659.tif 000025
【図９】
2007099659.tif 000026
【図１０】
2007099659.tif 000027
【図１１】
2007099659.tif 000028
【図１２】
2007099659.tif 000029
【図１３】
2007099659.tif 000030
【図１４】
2007099659.tif 000031
【図１５】
2007099659.tif 000032
【国際調査報告】
2007099659.tif 000033
2007099659.tif 000034
2007099659.tif 000035
2007099659.tif 000036