(57)【要約】【課題】メモリバスの帯域を節約でき、リード／ライトのデータ転送量の不一致が生じたときに内部データをクリア可能なデータ転送装置およびデータ転送システムを提供する。【解決手段】通常動作時は、ＦＩＦＯ２２の状態、リード／ライトリクエストの状態を監視し、ＦＩＦＯが空の状態でリードリクエストＲＲＥＱがあれば、転送をウェイトしてライトデータを待ち、リードリクエストＲＲＥＱがなくＦＩＦＯ２２が空の状態のときにライトリクエストＷＲＥＱがあれば、ＦＩＦＯ２２に書き込める分だけライトデータを取り込み、その後ウェイトし、リード／ライトのリクエストとデータが揃ったところで転送を開始し、正しいデータ転送が行われない場合には、クリアモードに設定可能で、ＦＩＦＯ２２の状態にかかわらず、マスタに対して固定の応答を行い、同時にＦＩＦＯ内のデータをクリアしポインタを初期状態に戻すことができるＦＩＦＯコントローラ２１を有する。【選択図】図４
2007249667.tif 000002
【特許請求の範囲】
【請求項１】
第１の機能ブロックから第２の機能ブロックにデータを転送可能なデータ転送装置であって、
転送データを保持可能なＦＩＦＯと、
上記ＦＩＦＯの状態、上記第１の機能ブロックおよび上記第２の機能ブロックからのライトリクエスト、リードリクエストの状態を監視し、当該監視結果に応じて上記ＦＩＦＯへのデータのライト動作と、当該ＦＩＦＯからのデータのリード動作を制御するコントローラを有し、
上記コントローラは、
上記ＦＩＦＯの内部データ領域をクリアしたままで応答可能な機能を含む
データ転送装置。
【請求項２】
上記コントローラは、
正しいデータ転送が行われない場合に、クリアモードに設定可能で、当該クリアモード時には上記ＦＩＦＯの状態にかかわらず、上記第１および第２の機能ブロックの少なくとも一方に対して固定の応答を行い、上記ＦＩＦＯ内のデータをクリアする
請求項１記載のデータ転送装置。
【請求項３】
上記コントローラは、
通常動作時は、上記ＦＩＦＯの状態、リード／ライトリクエストの状態を監視し、当該ＦＩＦＯが空の状態でリードリクエストがあれば、転送をウェイトしてライトデータを待ち、リードリクエストがなく上記ＦＩＦＯが空の状態のときにライトリクエストがあれば、上記ＦＩＦＯに書き込める分だけライトデータを取り込み、その後ウェイトし、リード／ライトのリクエストとデータが揃ったところで転送を開始する
請求項１記載のデータ転送装置。
【請求項４】
上記コントローラは、
通常動作時は、上記ＦＩＦＯの状態、リード／ライトリクエストの状態を監視し、当該ＦＩＦＯが空の状態でリードリクエストがあれば、転送をウェイトしてライトデータを待ち、リードリクエストがなく上記ＦＩＦＯが空の状態のときにライトリクエストがあれば、上記ＦＩＦＯに書き込める分だけライトデータを取り込み、その後ウェイトし、リード／ライトのリクエストとデータが揃ったところで転送を開始し、正しいデータ転送が行われない場合にクリアモードとなり、上記ＦＩＦＯの状態にかかわらず、上記第１および第２の機能ブロックの少なくとも一方に対して固定の応答を行い、上記ＦＩＦＯ内のデータをクリアする
請求項１記載のデータ転送装置。
【請求項５】
上記コントローラは、
上記ＦＩＦＯ内のデータをクリアしポインタを初期状態に戻す
請求項２記載のデータ転送装置。
【請求項６】
上記コントローラは、
上記ＦＩＦＯ内のデータをクリアしポインタを初期状態に戻す
請求項４記載のデータ転送装置。
【請求項７】
複数の機能ブロックと、
上記複数の機能ブロックによりアクセス可能なメモリと、
上記複数の機能ブロックの上記メモリへのアクセスを調停するアービタと、
上記複数の機能ブロックのうち、少なくとも第１の機能ブロックと第２の機能ブロック間に配置され、上記第１の機能ブロックから上記第２の機能ブロックにデータを転送可能なデータ転送装置と、を有し、
上記データ転送装置は、
転送データを保持可能なＦＩＦＯと、
上記ＦＩＦＯの状態、上記第１の機能ブロックおよび上記第２の機能ブロックからのライトリクエスト、リードリクエストの状態を監視し、当該監視結果に応じて上記ＦＩＦＯへのデータのライト動作と、当該ＦＩＦＯからのデータのリード動作を制御するコントローラと、を含むＦＩＦＯ装置を有し、
上記コントローラは、
上記ＦＩＦＯの内部データ領域をクリアしたままで応答可能な機能を含む
データ転送システム。
【請求項８】
上記データ転送装置は、
上記第１の機能ブロックおよび第２の機能ブロックの少なくとも一方の機能ブロックのアクセス先が上記ＦＩＦＯ装置か上記メモリへのアクセスかを判断するデコーダを有する
請求項７記載のデータ転送システム。
【請求項９】
上記ＦＩＦＯ装置のコントローラは、
正しいデータ転送が行われない場合に、クリアモードに設定可能で、当該クリアモード時には上記ＦＩＦＯの状態にかかわらず、上記第１および第２の機能ブロックの少なくとも一方に対して固定の応答を行い、上記ＦＩＦＯ内のデータをクリアする
請求項７記載のデータ転送システム。
【請求項１０】
上記ＦＩＦＯ装置のコントローラは、
通常動作時は、上記ＦＩＦＯの状態、リード／ライトリクエストの状態を監視し、当該ＦＩＦＯが空の状態でリードリクエストがあれば、転送をウェイトしてライトデータを待ち、リードリクエストがなく上記ＦＩＦＯが空の状態のときにライトリクエストがあれば、上記ＦＩＦＯに書き込める分だけライトデータを取り込み、その後ウェイトし、リード／ライトのリクエストとデータが揃ったところで転送を開始し、正しいデータ転送が行われない場合にクリアモードとなり、上記ＦＩＦＯの状態にかかわらず、上記第１および第２の機能ブロックの少なくとも一方に対して固定の応答を行い、上記ＦＩＦＯ内のデータをクリアする
請求項７記載のデータ転送システム。
【請求項１１】
ダイレクトアクセスメモリコントローラを含む複数の機能ブロックと、
上記複数の機能ブロックによりアクセス可能なメモリと、
上記複数の機能ブロックの上記メモリへのアクセスを調停するアービタと、
上記複数の機能ブロックうち、少なくとも第１の機能ブロックと第２の機能ブロック間に配置され、上記第１の機能ブロックから上記第２の機能ブロックにデータを転送可能なデータ転送装置と、を有し、
上記データ転送装置は、
転送データを保持可能なＦＩＦＯと、
上記ＦＩＦＯの状態、上記第１の機能ブロックおよび上記第２の機能ブロックからのライトリクエスト、リードリクエストの状態を監視し、当該監視結果に応じて上記ＦＩＦＯへのデータのライト動作と、当該ＦＩＦＯからのデータのリード動作を制御するコントローラと、を含むＦＩＦＯ装置を有し、
上記コントローラは、
上記ＦＩＦＯの内部データ領域をクリアしたままで応答可能な機能を含む
データ転送システム。
【請求項１２】
上記第１の機能ブロックは、ビデオ信号の入力ブロックを含み、
上記第２の機能ブロックは、上記入力されたビデオ信号に対して所定の処理を行う処理ブロックを含む
請求項７から１１のいずれか一に記載のデータ転送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の機能ブロック間でデータ転送を行うＦＩＦＯを用いたデータ転送装置およびデータ転送システムに関するものである。
【背景技術】
【０００２】
通常、バスに接続された機能ブロックＡ，Ｂ間でデータ転送を行う場合、たとえば図１〜図３に示すような方法が知られている。
【０００３】
図１の例においては、機能ブロック（Ａ）１，機能ブロック（Ｂ）２ともにバスマスタとして動作し、アービタ３、メモリコントローラ４、メモリ(DRAM, SRAMなど容量の大きいもの)５を介して転送する。
【０００４】
図２の例においては、一方の機能ブロックがマスタ、もう一方がスレーブとして転送する。
図２（Ａ）の例では、機能ブロック（Ａ）１がマスタで、機能ブロック（Ｂ）２がスレーブとして機能する。
図２（Ｂ）の例では、機能ブロック（Ｂ）２がマスタ、機能ブロック（Ａ）１がスレーブとして機能する。
【０００５】
図３（Ａ）の例においては、両方の機能ブロック１，２はスレーブとして動作し、外部ＤＭＡＣ６により、小容量(１バースト転送分など)のバッファ７を介して、もしくは図３（Ｂ）の例においては、フライバイで直接転送する。
なお、図中、破線は制御信号（アドレスなど）、実線はデータを表している。
【０００６】
図１のようなメモリを介した転送では、メモリバスの帯域を消費するので、特にＵＭＡ(Unified Memory Architecture)のシステムでは、帯域が足りないといった問題が起こりやすい。
一方、図２や図３のように機能ブロック間で直接転送する場合は、転送要求を受け取るスレーブ動作の機能が、機能ブロック側に必要となる。
【０００７】
メモリを介さずＦＩＦＯ(First In First Out)を利用し、２つのマスタ間でデータ転送を行う方法として特許文献１に開示されたＤＭＡ転送時における特定領域コピー方式が知られている。
【０００８】
また、特許文献２には、内部データを強制的にクリアするＦＩＦＯが開示されている。
【特許文献１】特開平１−１２９３４２号公報
【特許文献２】特開平１１−１４９３６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
特許文献１に開示された方式では、２つのマスタがＦＩＦＯ経由で直接接続されておらず、メモリにつながるバスを利用するのでメモリバス帯域の節約にはならない。
【００１０】
また、特許文献２に開示されたＦＩＦＯは、上位データと下位データの転送不一致をハードウェアで検出しクリアする機能を有するのみであり、このＦＩＦＯを機能ブロック間のデータ転送に利用した場合、リード／ライトのデータ転送量の不一致が生じたときに内部データをクリアすることはできないという不利益がある。
【００１１】
本発明は、メモリバスの帯域を節約でき、リード／ライトのデータ転送量の不一致が生じたときに内部データをクリアすることができるデータ転送装置およびデータ転送システムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明の第１の観点は、第１の機能ブロックから第２の機能ブロックにデータを転送可能なデータ転送装置であって、転送データを保持可能なＦＩＦＯと、上記ＦＩＦＯの状態、上記第１の機能ブロックおよび上記第２の機能ブロックからのライトリクエスト、リードリクエストの状態を監視し、当該監視結果に応じて上記ＦＩＦＯへのデータのライト動作と、当該ＦＩＦＯからのデータのリード動作を制御するコントローラを有し、上記コントローラは、上記ＦＩＦＯの内部データ領域をクリアしたままで応答可能な機能を含む。
【００１３】
好適には、上記コントローラは、正しいデータ転送が行われない場合に、クリアモードに設定可能で、当該クリアモード時には上記ＦＩＦＯの状態にかかわらず、上記第１および第２の機能ブロックの少なくとも一方に対して固定の応答を行い、上記ＦＩＦＯ内のデータをクリアする。
【００１４】
好適には、上記コントローラは、通常動作時は、上記ＦＩＦＯの状態、リード／ライトリクエストの状態を監視し、当該ＦＩＦＯが空の状態でリードリクエストがあれば、転送をウェイトしてライトデータを待ち、リードリクエストがなく上記ＦＩＦＯが空の状態のときにライトリクエストがあれば、上記ＦＩＦＯに書き込める分だけライトデータを取り込み、その後ウェイトし、リード／ライトのリクエストとデータが揃ったところで転送を開始する。
【００１５】
好適には、上記コントローラは、通常動作時は、上記ＦＩＦＯの状態、リード／ライトリクエストの状態を監視し、当該ＦＩＦＯが空の状態でリードリクエストがあれば、転送をウェイトしてライトデータを待ち、リードリクエストがなく上記ＦＩＦＯが空の状態のときにライトリクエストがあれば、上記ＦＩＦＯに書き込める分だけライトデータを取り込み、その後ウェイトし、リード／ライトのリクエストとデータが揃ったところで転送を開始し、正しいデータ転送が行われない場合にクリアモードとなり、上記ＦＩＦＯの状態にかかわらず、上記第１および第２の機能ブロックの少なくとも一方に対して固定の応答を行い、上記ＦＩＦＯ内のデータをクリアする。
【００１６】
好適には、上記コントローラは、上記ＦＩＦＯ内のデータをクリアしポインタを初期状態に戻す。
【００１７】
本発明の第２観点のデータ転送システムは、複数の機能ブロックと、上記複数の機能ブロックによりアクセス可能なメモリと、上記複数の機能ブロックの上記メモリへのアクセスを調停するアービタと、上記複数の機能ブロックのうち、少なくとも第１の機能ブロックと第２の機能ブロック間に配置され、上記第１の機能ブロックから上記第２の機能ブロックにデータを転送可能なデータ転送装置と、を有し、上記データ転送装置は、転送データを保持可能なＦＩＦＯと、上記ＦＩＦＯの状態、上記第１の機能ブロックおよび上記第２の機能ブロックからのライトリクエスト、リードリクエストの状態を監視し、当該監視結果に応じて上記ＦＩＦＯへのデータのライト動作と、当該ＦＩＦＯからのデータのリード動作を制御するコントローラと、を含むＦＩＦＯ装置を有し、上記コントローラは、上記ＦＩＦＯの内部データ領域をクリアしたままで応答可能な機能を含む。
【００１８】
好適には、上記データ転送装置は、上記第１の機能ブロックおよび第２の機能ブロックの少なくとも一方の機能ブロックのアクセス先が上記ＦＩＦＯ装置か上記メモリへのアクセスかを判断するデコーダを有する。
【発明の効果】
【００１９】
本発明によれば、機能ブロックにはマスタ機能だけの実装で、機能ブロック同士の直接転送を実現できる。
データ転送量に不整合が生じ、バスがスタックした状態から復帰することができる。
専用パスになるので、メモリバス帯域を消費しない。
また、回路規模はＦＩＦＯの容量により、小規模の実装も可能であり、システムに複数配置しても影響が少ない。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施形態を図面に関連付けて説明する。
【００２１】
図４は、本発明の実施形態に係るデータ転送システムの構成例を示す図である。
本実施形態においては、データ転送システムとしてビデオ信号処理装置を例に説明する。
【００２２】
図４のビデオ信号処理装置１０は、ＤＭＡ(Direct Memory Access)コントローラ（ＤＭＡＣ）を含む機能ブロック１１〜１５、メモリコントローラ用アービタ１６、メモリコントローラ１７、メモリ１８、アドレスデコーダ１９−０，１９−１、およびＦＩＦＯコントローラ２１とＦＩＦＯ２２を有するＦＩＦＯ装置２０により構成されている。
そして、アドレスデコーダ１９−０，１９−１、およびＦＩＦＯ装置２０によりデータ転送装置３０が形成される。
【００２３】
ＤＭＡコントローラＤＭＡＣはマスタとして、メモリコントローラ１７、ＦＩＦＯコントローラ２１はスレーブとして動作する。また、図中の破線矢印は制御信号の方向、実線矢印はデータの方向を表している。
【００２４】
機能ブロック１１は、たとえば垂直同期信号ＶＳＹＮＣ，水平同期信号ＨＳＹＮＣ等の各種同期信号を含むビデオ信号を入力するビデオ入力ブロック１１１、およびＤＭＡＣ１１２を有する。
【００２５】
機能ブロック１１のＤＭＡＣ（Ｗ０）１１２は、入力したビデオ信号をメモリ１８あるいはＦＩＦＯ装置２０のＦＩＦＯ２２に転送し、ライトする(書き込む)ためのリクエスト(要求)とレスポンス(応答)のためのトランザクションおよびデータ転送制御機能を有する。
【００２６】
機能ブロック１２は、ＦＩＦＯ装置２０を介して転送された入力ビデオデータまたはメモリ１８から読み出された(リードした)データに対する所定の処理、たとえば圧縮処理や伸長処理を行うビデオエフェクトブロック１２１、ＤＭＡＣ（Ｒ１）１２２、およびＤＭＡＣ（Ｗ１）１２３を有する。
【００２７】
機能ブロック１２のＤＭＡＣ（Ｒ１）１２２は、ＦＩＦＯ装置２０に保持された入力ビデオ信号（データ）のリード（読み出し）またはメモリ１８に格納されているデータのリードのためのリクエスト（要求）とレスポンス（応答）のためのトランザクションおよびデータ転送制御機能を有する。
【００２８】
機能ブロック１２のＤＭＡＣ（Ｒ１）１２３は、ビデオエフェクトブロック１２１でたとえば圧縮処理（場合によっては伸長処理）されたビデオデータをメモリ１８に転送し、ライトする（書き込む）ためのリクエスト（要求）とレスポンス（応答）のためのトランザクションおよびデータ転送制御機能を有する。
【００２９】
機能ブロック１３は、メモリ１８に格納されたデータに所定の処理、たとえば図示しない液晶表示装置（ＬＣＤ）への表示データ作成等の処理を施す処理ブロック１３１、ＤＭＡＣ（Ｒ２）１３２、およびＤＭＡＣ（Ｗ２）１３３を有する。
【００３０】
機能ブロック１３のＤＭＡＣ（Ｒ２）１３２は、メモリ１８に格納されているデータのリードのためのリクエスト（要求）とレスポンス（応答）のためのトランザクションおよびデータ転送制御機能を有する。
【００３１】
機能ブロック１３のＤＭＡＣ（Ｒ２）１３３は、処理ブロック１３１で、たとえば表示データ再生処理を施されたビデオデータをメモリ１８に転送し、ライトする(書き込む)ためのリクエスト（要求）とレスポンス（応答）のためのトランザクションおよびデータ転送制御機能を有する。
【００３２】
機能ブロック１４は、メモリ１８に格納されたデータに所定の処理、たとえば図示しない操作デバイスから指示された処理を施す処理ブロック１４１、ＤＭＡＣ（Ｒ３）１４２、およびＤＭＡＣ（Ｗ３）１４３を有する。
【００３３】
機能ブロック１４のＤＭＡＣ（Ｒ３）１４２は、メモリ１８に格納されているデータのリードのためのリクエスト(要求)とレスポンス(応答)のためのトランザクションおよびデータ転送制御機能を有する。
【００３４】
機能ブロック１４のＤＭＡＣ（Ｒ３）１４３は、処理ブロック１４１で、操作デバイスの操作指示に応じた処理を施されたビデオデータをメモリ１８に転送し、ライトする(書き込む)ためのリクエスト(要求)とレスポンス(応答)のためのトランザクションおよびデータ転送制御機能を有する。
【００３５】
機能ブロック１５は、メモリ１８に格納されたデータに所定の処理、たとえばメモリカードやハードディスク等の図示しない外部記憶装置に記録するための所定の処理を施す処理ブロック１５１、ＤＭＡＣ（Ｒ４）１５２、およびＤＭＡＣ（Ｗ４）１５３を有する。
【００３６】
機能ブロック１５のＤＭＡＣ（Ｒ４）１５２は、メモリ１８に格納されているデータのリードのためのリクエスト(要求)とレスポンス(応答)のためのトランザクションおよびデータ転送制御機能を有する。
【００３７】
機能ブロック１５のＤＭＡＣ（Ｒ４）１５３は、処理ブロック１５１で、外部記憶装置に転送するために処理されたデータ、あるいは外部記憶装置からリードされたデータをメモリ１８に転送し、ライトする(書き込む)ためのリクエスト(要求)とレスポンス(応答)のためのトランザクションおよびデータ転送制御機能を有する。
【００３８】
アービタ１６は、機能ブロック１１〜１５におけるＤＭＡＣ１１２、１２２，１２３、１３２，１３３、１４２，１４３、１５２，１５３とメモリコントローラ１７とのメモリバスの調停を行う。
【００３９】
メモリコントローラ１７は、アービタ１６の調停に従って転送されたトランザクション用制御信号、各種コマンドに応じてメモリ１８へのアクセスを制御する。
なお、メモリコントローラ１７とメモリ１８間のバス幅はたとえば３２ビット幅である。
これに対して機能ブロック１１〜１５におけるＤＭＡＣ１１２、１２２，１２３、１３２，１３３、１４２，１４３、１５２，１５３とメモリコントローラ１７間のバス幅はたとえば６４ビット幅である。
メモリ１８は、たとえばＤＲＡＭにより形成される。
【００４０】
アドレスデコーダ１９−０は、機能ブロック１１のＤＭＡＣ１１２から転送されたトランザクション用制御信号やコマンド、データがメモリ１８へのアクセスかＦＩＦＯ装置２０へのアクセスかを判断し、判断結果に応じてアービタ１６またはＦＩＦＯ装置２０に転送する。
アドレスデコーダ１９−０は、アクセス先を判断する情報として、たとえばアドレスの上位ビットを利用しており、これによりＤＭＡコントローラの変更は不要となる。
【００４１】
アドレスデコーダ１９−１は、機能ブロック１２のＤＭＡＣ１２２から転送されたトランザクション用制御信号やリードコマンドがメモリ１８へのアクセスかＦＩＦＯ装置２０へのアクセスかを判断し、判断結果に応じてアービタ１６またはＦＩＦＯ装置２０に転送し、メモリ１８からリードされたデータまたはＦＩＦ装置２０からリードされたデータを、機能ブロック１２のＤＭＡＣ１２２に転送する。
アドレスデコーダ１９−１は、アクセス先を判断する情報として、たとえばアドレスの上位ビットを利用しており、これによりＤＭＡコントローラの変更は不要となる。
【００４２】
ＦＩＦＯ装置２０は、図５に示すように、ＦＩＦＯコントローラ２１、およびＦＩＦＯ２２を有する。
ＦＩＦＯコントローラ２１は、通常動作時は、ＦＩＦＯ２２の状態、リード／ライトリクエストの状態を監視し、監視状態に応じてアドレスデコーダ１９−０を介してライトマスタとしてのＤＭＡＣ１１２、アドレスデコーダ１９−１を介してリードマスタとしてのＤＭＡＣ１２２に応答する。
【００４３】
ＦＩＦＯコントローラ２１は、ＦＩＦＯ２２が空の状態でアドレスデコーダ１９−１を介してＤＭＡＣ１２２からのリードリクエストＲＲＥＱがあれば、リードリクエストレスポンス(応答)ＲＲＲＥＳＰをアドレスデコーダ１９−１を介してＤＭＡＣ１２２に転送し、かつデータ転送をウェイトして（待ち状態として）アドレスデコーダ１９−０からのライトデータを待つ。
同様に、ＦＩＦＯコントローラ２１は、リードリクエストＲＲＥＱがなくＦＩＦＯ２２が空の状態のときに、アドレスデコーダ１９−０を介してＤＭＡＣ１１１からのライトリクエストＷＲＥＱがあれば、ライトリクエストレスポンス（応答）ＷＲＲＥＳＰをアドレスデコーダ１９−０を介してＤＭＡＣ１１２に転送して、ＦＩＦＯ２２に書き込める分だけ転送されてくるライトデータを取り込み、その後ウェイトする。リード／ライトのリクエストとデータが揃ったところで転送を開始させる。
また、本実施形態のＦＩＦＯ装置２０は、内部データ領域をクリアしたままでバスへの応答をするという動作を可能とする機能を有する。
この機能を利用することで、リード／ライトのデータ転送量の不一致による、バスのスタックを回避することができる。
【００４４】
このように、ＦＩＦＯ装置２０においては、通常時には、ＦＩＦＯコントローラ２１が通常／クリア信号Ｎ／ＣをノーマルＮとし、ライトイネーブル信号ＷｒＥｎをＦＩＦＯ装置２２に出してデータを取り込み(ライトし)、また、リードイネーブル信号ＲｄＥｎをＦＩＦＯ装置２２に出してデータをリードする。
また、ＦＩＦＯ２２は、データをライトして満杯(フル：ＢＦ)状態にあるのか、データをリードしてまたはライトしておらず空(エンプティ：ＢＥ)状態にあるのかを信号ＢＦ，ＢＥにてＦＩＦＯコントローラ２１に報知する。
また、たとえば図示しないホストＣＰＵからクリア要求を受けると、ＦＩＦＯコントローラ２１はクリア信号ＣをＦＩＦＯ２２に出力し、ＦＩＦＯ２２をクリアし、入力データを取り込まず、固定データを出力するように制御する。
【００４５】
本実施形態において、アービタ１６とは別に、上記構成を有するアドレスデコーダ１９−０，１９−１、およびＦＩＦＯ装置２０により構成されるデータ転送装置３０を、機能ブロック１１のＤＭＡＣ１１２と機能ブロック１２のＤＭＡＣ１２２間に配置して、機能ブロック間のデータ転送を実現している。
以下にこの構成のより具体的な機能、利点について、本実施形態に係るデータ転送装置を設けない場合と比較しながら説明する。
【００４６】
このシステムを利用して、ビデオ入力ブロック１１１から取り込んだ映像に対して、ビデオエフェクトブロック１２１で映像処理を行うとする。
通常、ビデオ入力ブロック１１１を含む機能ブロック１１から入力された映像をメモリ１８にライトし（書き込み）、ライトした（書き込んだ）データをビデオエフェクトブロック１２１を含む機能ブロック１２で読み出すことで機能ブロック間のデータ転送を実現できる。
しかし、図１のようにメモリにアクセスする機能ブロックが多数ある場合、メモリの帯域が不足してしまい、実際には希望する時間内に転送が終了しないことが起こる。
【００４７】
ビデオ入力ブロック１１１を含む機能ブロック１１から入力された映像を、他の機能ブロックで利用しないならば、直接ビデオエフェクトブロック１２１を含む機能ブロック１２にデータを転送することで、他の機能ブロックに妨害されることなく確実な転送を実現でき、メモリ帯域も節約することができる。
通常、機能ブロック１１から機能ブロック１２に直接データ転送を行うには、機能ブロック１１、機能ブロック１２のどちらかにスレーブとして動作をする機能が必要となるが、それを実装することにより回路規模の増加や検証作業の増加が考えられる。
【００４８】
本実施形態のデータ転送装置３０は、前述したように、転送したいマスタ間に挿入することで、機能ブロックの変更なしにブロック間の直接データ転送を実現することが可能であり、ＦＩＦＯ装置２０は、これを実現するためのＦＩＦＯコントローラ２１およびＦＩＦＯ２２を有している。
機能ブロック側はマスタインターフェースのみの実装で、機能ブロック間の直接転送が実現できる。
また、本実施形態においては、付加回路として、メモリへのアクセスかＦＩＦＯへのアクセスかを判断するアドレスデコーダ１９−０，１９−１がある。前述したように、本実施形態の実装では、アクセス先を判断する情報としてアドレスの上位ビットを利用しており、これによりＤＭＡコントローラの変更は不要となる。
【００４９】
本実施形態のデータ転送装置３０においては、通常動作時は、ＦＩＦＯ２２の状態、リード／ライトリクエストの状態を監視し、それに応じてリードマスタ(機能ブロック１２)／ライトマスタ(機能ブロック１１)にリードリクエストレスポンスＲＲＲＥＳＰ、ライトリクエストレスポンスＷＲＲＥＳＰで応答する。
【００５０】
ＦＩＦＯが空の状態でリードリクエストＲＲＥＱがあれば、転送をウェイトしてライトデータを待つ。同様に、リードリクエストＲＲＥＱがなくＦＩＦＯ２２が空の状態のときにライトリクエストＷＲＥＱがあれば、ＦＩＦＯ２２に書き込める分だけライトデータを取り込み、その後ウェイトする。リード／ライトのリクエストとデータが揃ったところで転送が開始される。
【００５１】
２つのマスタ（本実施形態では機能ブロック１１と機能ブロック１２）をＦＩＦＯ経由で接続した場合、通常は、ある単位時間（たとえば１ＶＳＹＮＣ）でのデータ転送量が同じになるようにマスタを設定するので、特に問題は起きない。
しかし、開発初期段階での設定ミスや、外部ＶＳＹＮＣの乱れにより予定外のデータ転送量となった場合、機能ブロック内の処理によって転送データ量が一定でない場合（たとえば、データ圧縮処理の場合、入力されたデータによって圧縮後のデータ量が変化する）など、どちらかがウェイトした状態となり、バスがスタックしてしまう。
【００５２】
これを回避するために、本実施形態においては、ＦＩＦＯコントローラ２１内部にクリアモードを設けている。
なお、モードの変更は、レジスタとして内部に保持する実装でも、外部信号としてもらう実装でも良い。
このクリアモードに設定すると、ＦＩＦＯコントローラ２１はＦＩＦＯ２２の状態にかかわらず、マスタに対して固定の応答を行い、同時にＦＩＦＯ内のデータをクリアしポインタを初期状態に戻すことができる。それによって、正しいデータ転送は行われないが、バスがスタックした状態から抜け出すことが可能となる。
【００５３】
ここで、モード変更を伴う動作の一例について、図６のフローチャートに関連付けて説明する。
【００５４】
図示しないＣＰＵが機能ブロック１１のＤＭＡＣ１１２と機能ブロック１２のＤＭＡＣ１２２を設定し（ＳＴ１）、垂直同期信号ＶＳＹＮＣの割り込みがあると（ＳＴ２）、データ転送を開始する（ＳＴ３）。
データ転送装置３０を介して正しい転送が行われた場合は、１垂直同期信号ＶＳＹＮＣ毎にマスタ（機能ブロック１１，１２）から転送終了割り込みが図示しないＣＰＵに入る（ＳＴ４）。
全データの転送が終了したか否かを判別し、終了していない場合には、ステップＳＴ１の処理に戻る（ＳＴ５）。ステップＳＴ５において全データの転送が終了したと判別するとデータ転送処理は終了する。
【００５５】
一方、ステップＳＴ４において、正しい転送が行われず、１ＶＳＹＮＣの間にどちらかのマスタ(機能ブロック１１または機能ブロック１２)から割り込みがＣＰＵに入力されない場合（ＳＴ６）、ＣＰＵがリード、ライト両方のＤＭＡＣ１１２，ＤＭＡＣ１２２を停止する（ＳＴ７）。
そして、ＣＰＵがモードを通常モードからクリアモードに切り替える（ＳＴ８）。
マスタ（機能ブロック１１，１２）から終了割り込みがＣＰＵに入り（ＳＴ９）、ＦＩＦＯコントローラ２１のステータスが読める実装になっている場合は、残った転送リクエスト（トランザクション）が残っているか否かをＣＰＵで確認する（ＳＴ１０）。
ステップＳＴ１０において、残っているトランザクションがないと判別すると、ＣＰＵがＦＩＦＯ装置２０を通常モードに設定する（ＳＴ１１）。
そして、ステップＳＴ１に戻り、ＣＰＵがＤＭＡＣを再設定し、転送を再開する。
【００５６】
以上説明したように、本実施形態によれば、通常動作時は、ＦＩＦＯ２２の状態、リード／ライトリクエストの状態を監視し、それに応じてリードマスタ（機能ブロック１２）／ライトマスタ（機能ブロック１１）にリードリクエストレスポンスＲＲＲＥＳＰ、ライトリクエストレスポンスＷＲＲＥＳＰで応答し、ＦＩＦＯが空の状態でリードリクエストＲＲＥＱがあれば、転送をウェイトしてライトデータを待ち、リードリクエストＲＲＥＱがなくＦＩＦＯ２２が空の状態のときにライトリクエストＷＲＥＱがあれば、ＦＩＦＯ２２に書き込める分だけライトデータを取り込み、その後ウェイトし、リード／ライトのリクエストとデータが揃ったところで転送を開始し、正しいデータ転送が行われない場合には、クリアモードに設定可能で、ＦＩＦＯ２２の状態にかかわらず、マスタに対して固定の応答を行い、同時にＦＩＦＯ内のデータをクリアしポインタを初期状態に戻すことができるＦＩＦＯコントローラ２１を有することから、以下の効果を得ることができる。
【００５７】
機能ブロックにはマスタ機能だけの実装で、機能ブロック同士の直接転送を実現できる。
データ転送量に不整合が生じ、バスがスタックした状態から復帰することができる。
専用パスになるので、メモリバス帯域を消費しない。
回路規模はＦＩＦＯの容量により、小規模の実装も可能であり、システムに複数配置しても影響が少ない。
【００５８】
本実施形態において、アービタ１６とは別に、上記構成を有するアドレスデコーダ１９−０，１９−１、およびＦＩＦＯ装置２０により構成されるデータ転送装置３０を、機能ブロック１１のＤＭＡＣ１１２と機能ブロック１２のＤＭＡＣ１２２間に配置しているが、機能ブロック間のデータ転送を実現できれば良く、他の機能ブロック間に配置し、さらに複数のデータ転送装置を異なる機能ブロック間に配置する等の態様が可能である。
【図面の簡単な説明】
【００５９】
【図１】一般的なデータ転送の第１例を示す図である。
【図２】一般的なデータ転送の第２例を示す図である。
【図３】一般的なデータ転送の第３例を示す図である。
【図４】本発明の実施形態に係るデータ転送システムの構成例を示す図である。
【図５】本実施形態に係るＦＩＦＯ装置の構成例を示す図である。
【図６】本実施形態のモード変更方法を説明するためのフローチャートである。
【符号の説明】
【００６０】
１０・・・ビデオ信号処理装置（データ転送システム）、１１〜１５・・・ＤＭＡＣを含む機能ブロック、１６・・・メモリコントローラ用アービタ、１７・・・メモリコントローラ、１８・・・メモリ、１９−０，１９−１・・・アドレスデコーダ、２０・・・ＦＩＦＯ装置、２１・・・ＦＩＦＯコントローラ、２２・・・ＦＩＦＯ、３０・・・データ転送装置。
【図１】
2007249667.tif 000003
【図２】
2007249667.tif 000004
【図３】
2007249667.tif 000005
【図４】
2007249667.tif 000006
【図５】
2007249667.tif 000007
【図６】
2007249667.tif 000008