(57)【要約】【課題】データ転送の効率低下を抑制すること。【解決手段】予約処理部４１は、予約転送要求ＲＴに対応する転送情報に従って予約転送期間のタイミングを算出する。転送情報は、開始予定、終了期限、転送データ量を含む。予約転送期間のタイミングは、最早開始サイクル数，最遅開始サイクル数を含む。予約処理部４１は、算出した予約転送期間のタイミングを出力する。転送調停部４２は、通常転送要求ＮＴを受け付け、通常転送要求ＮＴに対応する転送情報に従って通常転送期間のタイミングを算出し、通常転送期間のタイミングを予約転送期間のタイミングと比較し、比較結果に応じて、通常転送要求ＮＴに対するデータ転送が可能か否かを判定する。転送調停部４２は、データ転送が可能と判定した場合、通常転送要求ＮＴに対応する転送許可ＥＮを出力し、通常転送要求ＮＴに対応するデータ転送の期間に基づいて、予約転送期間のタイミングを調整する。【選択図】図２
2014146243.tif 000002
【特許請求の範囲】
【請求項１】
スレーブデバイスをアクセスする複数のマスタデバイスが出力する転送要求に対応するデータ転送の開始タイミングを調整するタイミング調整装置であって、
第１のマスタデバイスから出力される第１の転送要求と、前記第１の転送要求に応じた第１のデータ転送の開始が可能となるタイミングの情報と、前記第１のデータ転送を完了すべきタイミングの情報と、前記第１のデータ転送により転送するデータ量を含む第１の転送情報とを受け、前記第１の転送情報に基づいて、前記第１のデータ転送の開始タイミングを算出する要求処理部と、
第２のマスタデバイスから出力される第２の転送要求と、前記第２の転送要求に応じた第２のデータ転送により転送するデータ量を含む第２の転送情報とを受け、前記第２の転送情報に基づいて、前記第２のデータ転送の終了タイミングを算出し、前記終了タイミングと前記開始タイミングを比較した結果に基づいて、前記第１のデータ転送と前記第２のデータ転送の少なくとも一方のデータ転送を実行するタイミングを調整する転送調停部と、
を有するタイミング調整装置。
【請求項２】
前記開始タイミングは、前記第１のデータ転送の開始が最も早い最早開始タイミングと、前記第１のデータ転送の開始が最も遅い最遅開始タイミングを含み、
前記要求処理部は、
前記第１の転送情報に基づいて、前記最早開始タイミングと、前記最遅開始タイミングと、前記第１のデータ転送の転送期間を算出し、
第３のマスタデバイスから出力される第３の転送要求と第３の転送情報を受け、前記第３の転送情報に基づいて前記第３の転送要求に応じた第３のデータ転送の最早開始タイミングと最遅開始タイミングと転送期間を算出し、
前記第１のデータ転送の最早開始タイミング及び最遅開始タイミングと、前記第３のデータ転送の最早開始タイミング及び最遅開始タイミングを比較し、比較結果に基づいて、前記第１のデータ転送の最遅開始タイミングと前記第３のデータ転送の最早開始タイミングの少なくとも一方、または前記第３のデータ転送の最遅開始タイミングと前記第１のデータ転送の最早開始タイミングの少なくとも一方を、前記転送期間に応じて調整すること、
を特徴とする請求項１に記載のタイミング調整装置。
【請求項３】
前記転送調停部は、
前記要求処理部により調整された開始タイミングと前記終了タイミングとを比較して前記データ転送を実行するタイミングを調整すること、
を特徴とする請求項１に記載のタイミング調整装置。
【請求項４】
クロック信号をカウントするカウンタのカウント値と前記第１のデータ転送の最早開始タイミング及び前記第３のデータ転送の最早開始タイミングをそれぞれ比較し、比較結果に応じて前記第１の転送要求又は前記第３の転送要求に対する転送許可を出力する転送実施部を有することを特徴とする請求項２又は３に記載のタイミング調整装置。
【請求項５】
クロック信号に基づいて取り込んだ画像データをメモリに格納する第１処理部と、
前記メモリから読み出した画像データを処理して前記メモリに格納する第２処理部と、
前記第１処理部から出力される転送要求と、前記第２処理部から出力される第２の転送要求を調停する調停部と、
を有し、
前記調停部は、
前記第１処理部から出力される第１の転送要求と、前記第１の転送要求に応じた第１のデータ転送の開始が可能となるタイミングの情報と、前記第１のデータ転送を完了すべきタイミングの情報と、前記第１のデータ転送により転送するデータ量を含む第１の転送情報とを受け、前記第１の転送情報に基づいて、前記第１のデータ転送の開始タイミングを算出する要求処理部と、
前記第２処理部から出力される第２の転送要求と、前記第２の転送要求に応じた第２のデータ転送により転送するデータ量を含む第２の転送情報を受け、前記第２の転送情報に基づいて、前記第２のデータ転送の終了タイミングを算出し、前記終了タイミングと前記開始タイミングを比較した結果に基づいて、前記第１のデータ転送と前記第２のデータ転送の少なくとも一方のデータ転送を実行するタイミングを調整する転送調停部と、
を含むことを特徴とする処理装置。
【請求項６】
第３の転送要求を出力して前記メモリから読み出した画像データを外部装置へ出力する第３処理部を有し、
前記開始タイミングは、前記第１のデータ転送の開始が最も早い最早開始タイミングと、前記第１のデータ転送の開始が最も遅い最遅開始タイミングを含み、
前記要求処理部は、
前記第１の転送情報に基づいて、前記最早開始タイミングと、前記最遅開始タイミングと、前記第１のデータ転送の転送期間を算出し、
前記第３の転送要求と第３の転送情報に基づいて前記第３の転送要求に応じた第３のデータ転送の最早開始タイミングと最遅開始タイミングと転送期間を算出し、
前記第１のデータ転送の最早開始タイミング及び最遅開始タイミングと、前記第３のデータ転送の最早開始タイミング及び最遅開始タイミングを比較し、比較結果に基づいて、前記第１のデータ転送の最遅開始タイミングと前記第３のデータ転送の最早開始タイミングの少なくとも一方、または前記第３のデータ転送の最遅開始タイミングと前記第１のデータ転送の最早開始タイミングの少なくとも一方を、前記転送期間に応じて調整すること、
を特徴とする請求項５に記載の処理装置。
【請求項７】
スレーブデバイスをアクセスする複数のマスタデバイスが出力する転送要求を受けるタイミング調整装置が実行する、前記転送要求に対応するデータ転送の開始タイミングを調整するタイミング調整方法であって、
第１のマスタデバイスから出力される第１の転送要求と、前記第１の転送要求に応じた第１のデータ転送の開始が可能となるタイミングの情報と、前記第１のデータ転送を完了すべきタイミングの情報と、前記第１のデータ転送により転送するデータ量を含む第１の転送情報とを受け、前記第１の転送情報に基づいて、前記第１のデータ転送の開始タイミングを算出し、
第２のマスタデバイスから出力される第２の転送要求と、前記第２の転送要求に応じた第２のデータ転送により転送するデータ量を含む第２の転送情報とを受け、前記第２の転送情報に基づいて、前記第２のデータ転送の終了タイミングを算出し、前記終了タイミングと前記開始タイミングを比較した結果に基づいて、前記第１のデータ転送と前記第２のデータ転送の少なくとも一方のデータ転送を実行するタイミングを調整すること、
を特徴とするタイミング調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
タイミング調整装置、処理装置、及びタイミング調整方法に関する。
【背景技術】
【０００２】
従来、データを扱う電子機器は、データを格納するメモリを有している。例えば、画像データを扱う機器の一つであるデジタルスチルカメラは、撮像素子により得た画像データをメモリに格納する。そして、デジタルスチルカメラは、メモリから読み出した画像データに対して復号処理等の画像処理を行い、処理後のデータをメモリに格納する。また、デジタルスチルカメラは、メモリに格納された画像データを表示部に表示する。
【０００３】
このように、機器に含まれる各種の処理回路は、メモリに対してアクセス、即ちデータの書き込みやデータの読み出しを行う。これらのアクセスは、同時に発生する、つまりアクセスが競合する場合がある。アクセスが競合する場合、メモリから必要なデータを読み出すタイミングが遅れることがある。例えば、デジタルスチルカメラにおいて、メモリからデータを読み出す処理が遅れると、表示部にデータを出力するタイミングに間に合わなくなる転送破綻が発生する。この転送破綻は表示部における表示画像の乱れを生じさせる。競合を回避する方法が各種提案されている（例えば、特許文献１〜３参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１１６７０２号公報
【特許文献２】特開２００７−２８０２５３号公報
【特許文献３】特開２０１１−６５３５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、１つの電子機器は、リアルタイム性のあるデータ転送を行う処理回路を含む。例えば、デジタルスチルカメラは、センサデータの取り込み等のように、リアルタイム性のあるデータ転送を行う処理回路を有している。このようなリアルタイム性のあるデータ転送は転送破綻を許されない。リアルタイム性のあるデータ転送は、リアルタイム性のないデータ転送よりも優先度が高く設定される。このように設定された電子機器では、リアルタイム性のないデータ転送が遅れる場合がある。このようなデータ転送の処理は、電子機器におけるデータ転送の効率の低下を招く。
【課題を解決するための手段】
【０００６】
本発明の一観点によれば、スレーブデバイスをアクセスする複数のマスタデバイスが出力する転送要求に対応するデータ転送の開始タイミングを調整するタイミング調整装置であって、第１のマスタデバイスから出力される第１の転送要求と、前記第１の転送要求に応じた第１のデータ転送の開始が可能となるタイミングの情報と、前記第１のデータ転送を完了すべきタイミングの情報と、前記第１のデータ転送により転送するデータ量を含む第１の転送情報とを受け、前記第１の転送情報に基づいて、前記第１のデータ転送の開始タイミングを算出する要求処理部と、第２のマスタデバイスから出力される第２の転送要求と、前記第２の転送要求に応じた第２のデータ転送により転送するデータ量を含む第２の転送情報とを受け、前記第２の転送情報に基づいて、前記第２のデータ転送の終了タイミングを算出し、前記終了タイミングと前記開始タイミングを比較した結果に基づいて、前記第１のデータ転送と前記第２のデータ転送の少なくとも一方のデータ転送を実行するタイミングを調整する転送調停部とを有する。
【発明の効果】
【０００７】
本発明の一観点によれば、データ転送の効率低下を抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】撮像装置の概略ブロック図である。
【図２】調停部の概略ブロック図である。
【図３】処理装置の概略ブロック図である。
【図４】予約処理部の回路図である。
【図５】転送調停部の回路図である。
【図６】予約転送実施部の回路図である。
【図７】予約転送処理を示すフローチャートである。
【図８】予約転送処理を示すフローチャートである。
【図９】予約転送処理を示すフローチャートである。
【図１０】データ転送の説明図である。
【図１１】データ転送の説明図である。
【図１２】データ転送の説明図である。
【図１３】（ａ）（ｂ）は比較例のデータ転送の説明図である。
【図１４】（ａ）（ｂ）は比較例のデータ転送の説明図である。
【図１５】別のデータ転送の説明図である。
【発明を実施するための形態】
【０００９】
以下、一実施形態を説明する。
図１に示すように、この撮像装置は例えばデジタルスチルカメラであり、撮像部１１、処理装置１２、操作部１３、メモリ１４、表示部１５を有する。
【００１０】
撮像部１１は撮像光学系と撮像素子（イメージ・センサ）を含む。撮像光学系は被写体からの光を集光するレンズ（フォーカスレンズなど），レンズを通過した光の量を調整する絞り，等を含む。撮像素子はＣＣＤやＣＭＯＳイメージセンサ等であり、入射する光を電気信号に変換して１フレーム分の画像データを生成する。撮像部１１は、撮像素子から出力されるアナログの画像データをデジタル化し、そのデジタル化した画像データを同期信号に基づいて出力する。同期信号は、１フレームの区切り（フレームの開始）を示す垂直同期信号と、１ラインの区切り（ラインの開始）を示す水平同期信号、各画像データを出力するタイミングを示すクロック信号を含む。例えば、同期信号は、処理装置１２から供給される。
【００１１】
処理装置１２は、撮像部１１から出力される画像データを同期信号に基づいて取り込む。そして、処理装置１２は、取り込んだ画像データをメモリ１４に格納する。メモリ１４は例えばシンクロナスダイナミックランダムアクセスメモリ（SDRAM:SynchronousDynamic Random Access Memory）である。メモリ１４の記憶容量は、少なくとも１フレーム分の画像データを格納するように設定される。
【００１２】
操作部１３は、ユーザにより操作されるシャッタボタンやメニューボタン等の各種スイッチ、タッチパネル等である。処理装置１２は、操作部１３に対する操作に応じて、撮影モードや各処理において必要な情報等の設定値を記憶する。そして、処理装置１２は、メモリ１４から読み出した画像データに対して設定値に応じた処理を行い、処理後の画像データをメモリ１４に格納する。なお、処理装置１２は、画像データの処理中に生成する一時的なデータをメモリ１４に格納することがある。
【００１３】
表示部１５は、例えば液晶表示装置（LCD:Liquid Crystal Display）である。表示部１５は、撮影する画像（撮影フレーム）の確認、撮影された画像の表示、撮像装置における各種情報（例えば、駆動源であるバッテリの残量、撮影モード、等）の表示に用いられる。例えば、処理装置１２は、メモリ１４に格納された画像データを読み出し、その読み出した画像データを、クロック信号に基づいて生成した同期信号に応じて出力する。同期信号は、フレームの開始を示す垂直同期信号、各ラインの開始を示す水平同期信号、クロック信号を含む。同期信号の周期は、表示部１５に応じて設定される。表示部１５は、処理装置１２から出力される画像データを同期信号に従って受け取り、１フレームの画像データに基づく画像を表示する。
【００１４】
記録部１６は例えば撮像装置に装着されるメモリカードである。処理装置１２は、メモリ１４に格納されたデータ（例えば圧縮された画像データ）を記録部１６に格納する。また、処理装置１２は、操作部１３に対する操作に応じて、記録部１６に格納されたデータに基づく表示データを表示部１５に出力する。
【００１５】
次に、処理装置１２の詳細を説明する。
図３に示すように、処理装置１２は、センサデータ取り込み部２１、色処理部２２、補正部２３、ノイズ除去部２４、リサイズ部２５、圧縮伸張部２６、表示出力部２７、調停部３１、メモリインタフェース（「メモリＩ／Ｆ」と表記）３２を有している。
【００１６】
センサデータ取り込み部２１は、図１に示す撮像部１１から出力される画像データを同期信号に基づいて取り込み、その画像データをメモリ１４に格納する。色処理部２２は、画像データに対して色空間変換処理を行う。補正部２３は、メモリ１４から読み出したデータに対して補正処理を行い、補正後のデータをメモリ１４に格納する。補正処理は、例えば、γ補正．歪補正である。ノイズ除去部２４は、メモリ１４から読み出したデータに対して所定の処理を行ってノイズを除去し、処理後のデータをメモリ１４に格納する。
【００１７】
リサイズ部２５は、メモリ１４から読み出したデータに対して、画素データの間引き、データ補間などの処理を行って画像サイズを変更し、処理簿のデータをメモリ１４に格納する。圧縮伸張部２６は、所定の方式（例えばＪＰＥＧ（Joint Photographic Experts Group）方式）により圧縮データを生成する。また、圧縮伸張部２６は、圧縮データを伸長した画像データを生成する。圧縮伸張部２６は、生成したデータをメモリ１４に格納する。表示出力部２７は、クロック信号に基づいて図１に示す表示部１５に応じた垂直同期信号、水平同期信号を生成する。表示出力部２７は、メモリ１４から読み出したデータを表示データに変換し、その表示データＤＤを同期信号に応じて図１に示す表示部１５に出力する。
【００１８】
センサデータ取り込み部２１、色処理部２２、補正部２３、ノイズ除去部２４、リサイズ部２５、圧縮伸張部２６、表示出力部２７は、処理部の一例である。なお、以後の説明において、それぞれの処理を区別する必要がない場合には、処理部２１〜２７として説明する。
【００１９】
処理部２１〜２７は、それぞれの処理タイミングに応じてメモリ１４をアクセスするための要求信号を含む各種信号を出力する。調停部３１は、処理部２１〜２７の要求信号を調停し、調停結果に応じて１つの処理部に対してアクセス許可を与える。また、調停部３１は、調停結果に応じた１つの要求信号をメモリインタフェース３２に出力する。メモリインタフェース３２は、アクセスが許可された処理部から出力される制御情報（各種コマンド、アドレス、データ、等）をメモリ１４に出力する。これにより、処理部２１〜２７は、メモリインタフェース３２を介してメモリ１４をアクセスする。つまり、処理部２１〜２７とメモリ１４の間のデータ転送が実施される。
【００２０】
上記したように、図１に示す撮像部１１は、同期信号に応じて１フレーム分の画像データを出力する。処理部２１は、同期信号に応じて１フレーム分の画像データを取り込む。処理部２１は、撮像部１１が画像データを出力するタイミングに応じて、その画像データを取り込まなければならない。つまり、この撮像部１１と処理部２１との間のデータ転送は、１フレームの途中で中断することができない。このように、１群のデータの途中で転送を中断することができない転送をリアルタイム性を有する転送（リアルタイム転送）と呼ぶ。
【００２１】
処理部２１は、撮像部１１との間のリアルタイム転送にて転送される画像データをメモリ１４に格納するために転送予約を行う。転送予約は、転送期間を通知してデータ転送の帯域を確保するものである。予めデータ転送の帯域を確保することで、他の転送要求の影響を受けることなくデータ転送を行うことで、リアルタイム性のあるデータ転送における破綻の発生を抑制する。転送予約によって実施されるデータ転送を予約転送と呼ぶ。処理部２１は、予約転送のための転送要求（予約転送要求）を出力する。処理部２１は、予約転送要求を出力する処理部の一例である。
【００２２】
処理部２２〜２６は、１フレームの画像データのうち、処理に必要な部分の画像データをメモリ１４に対してアクセスする。例えば、圧縮伸張部２６は、圧縮処理又は伸張処理に必要な複数の画素（例えば、８×８のブロックに含まれる画像データ）をメモリ１４に対してアクセスする。従って、処理部２２〜２６とメモリ１４との間のデータ転送は、１フレームの画像データについて、フレームの途中で転送を中断することが可能である。このようなデータ転送を通常転送と呼ぶ。各処理部２２〜２６は、通常転送のための転送要求（通常転送要求）と通常転送のための情報を出力する。通常転送のための情報は、各処理部２２〜２６がメモリ１４との間でデータ転送するデータ量を含む。処理部２２〜２６は、通常転送要求を出力する処理部の一例である。
【００２３】
処理部２７は、メモリ１４から１フレーム分の画像データを順次読み出し、同期信号に応じて出力する。図１に示す表示部１５は、同期信号に応じて１フレーム分の画像データを順次受け取り、その１フレーム分の画像データに応じた画像を表示する。この処理部２７と表示部１５の間のデータ転送は、１フレームの途中で中断することができない。従って、処理部２７と表示部１５の間のデータ転送は、撮像部１１と処理部２１の間のデータ転送と同様に、リアルタイム性を有する転送（リアルタイム転送）である。従って、処理部２７は、処理部２１と同様に、表示部１５との間のリアルタイム転送にて転送する画像データをメモリ１４から読み出すために転送予約を行い、予約転送を実施する。処理部２７予約転送のための転送要求（予約転送要求）を出力する。処理部２１は、予約転送要求を出力する処理部の一例である。表示部１５は外部装置の一例である。
【００２４】
処理部２１は、複数（図３において２つ）のバッファ２１ａ，２１ｂを有している。２つのバッファ２１ａ，２１ｂそれぞれの記憶容量は、メモリ１４との間の１回のデータ転送において転送されるデータの量に応じて設定され、例えば１回のデータ転送におけるデータ量と等しい記憶容量に設定されている。例えば、バッファ２１ａ，２１ｂそれぞれの記憶容量は５１２バイトである。
【００２５】
処理部２１は、２つのバッファ２１ａ，２１ｂを交互に使用し、取り込んだ画像データを欠落することなく、メモリ１４に格納する。例えば、処理部２１は、取り込んだ画像データを第１のバッファ２１ａに格納する。第１のバッファ２１ａがフル状態、つまり第１のバッファ２１ａが有する全ての記憶領域に画像データを格納すると、処理部２１は次に取り込んだ画像データを第２のバッファ２１ｂに格納する。そして、処理部２１は、第１のバッファ２１ａに格納した画像データをメモリ１４へ転送する。同様に、処理部２１は、第２のバッファ２１ｂがフル状態になると、次に取り込んだ画像データを第１のバッファ２１ａに格納する。そして、処理部２１は、第２のバッファ２１ｂに格納した画像データをメモリ１４へ転送する。
【００２６】
処理部２１は、バッファ２１ａ，２１ｂに格納した画像データをメモリ１４へ転送するために転送予約を行う。処理部２１は、第１のバッファ２１ａに画像データを格納している期間において、この第１のバッファ２１ａからメモリ１４へ画像データを転送するための転送予約を行う。例えば、処理部２１は、予約転送要求と、転送予約のための情報を出力する。
【００２７】
転送予約のための情報は、開始予定、転送データ量、終了期限を含む。開始予定は、予約転送要求を出力するタイミングから、転送が可能となるタイミングまでの期間情報である。この期間情報は、例えば、クロック信号ＣＬＫに基づくサイクル数である。転送データ量は、予約した転送期間に転送するデータ量である。終了期限は、予約転送要求を出力するタイミングから、転送を完了しなければならないタイミングまでの期間情報である。この期間情報は、例えば、クロック信号ＣＬＫに基づくサイクル数である。
【００２８】
上記したように、処理部２１は、クロック信号ＣＬＫに同期して、図１に示す撮像部１１から出力される画像データＧＤを取り込む。そして、処理部２１は、取り込んだ画像データをバッファ２１ａ，２１ｂに格納する。例えば、処理部２１は、バッファ２１ａ，２１ｂの記憶容量と、クロック信号ＣＬＫをカウントしたカウント値に基づいて、バッファ２１ａ，２１ｂがフル状態となるまでの期間値を算出する。そして、処理部２１は、算出した期間値と等しい値の開始予定のサイクル数を出力する。
【００２９】
処理部２１は、２つのバッファ２１ａ，２１ｂを交互に使用して取り込んだ画像データＧＤを記憶する。従って、処理部２１は、第１のバッファ２１ａに格納した画像データの転送を、第２のバッファ２１ｂがフル状態となるまでに完了する必要がある。第２のバッファ２１ｂに格納した画像データのデータ転送も同様である。従って、処理部２１は、開始予定のサイクル数と、バッファ２１ａ，２１ｂをフル状態とするために必要なサイクル数に基づいて終了期限のサイクル数を算出し、その終了期限のサイクル数を出力する。そして、処理部２１は、バッファ２１ａ，２１ｂの記憶容量と等しい値の転送データ量を出力する。
【００３０】
処理部２７は、処理部２１と同様に、複数（図３において２つ）のバッファ２７ａ，２７ｂを有している。２つのバッファ２７ａ，２７ｂそれぞれの記憶容量は、メモリ１４との間の１回のデータ転送において転送されるデータの量に応じて設定され、例えば１回のデータ転送におけるデータ量と等しい記憶容量に設定されている。例えば、バッファ２７ａ，２７ｂそれぞれの記憶容量は５１２バイトである。
【００３１】
処理部２７は、２つのバッファ２７ａ，２７ｂを交互に使用し、表示部１５に対して１フレームの画像データを連続的に出力する。例えば、処理部２７は、第１のバッファ２７ａに格納した画像データを表示部１５へ出力する。第１のバッファ２７ａがエンプティ状態、つまり第１のバッファ２７ａの記憶領域に格納し出力していない画像データの数が「０」となると、処理部２７は次に第２のバッファ２７ｂに格納した画像データを表示部１５へ出力する。そして、処理部２７は、メモリ１４から第１のバッファ２７ａへ画像データを転送する。同様に、処理部２７は、第２のバッファ２７ｂがエンプティ状態になると、次に第１のバッファ２７ａの画像データを表示部１５へ出力する。そして、処理部２７は、メモリ１４から第２のバッファ２７ｂへ画像データを転送する。
【００３２】
処理部２７は、メモリ１４からバッファ２７ａ，２７ｂへ画像データを転送するために転送予約を行う。処理部２７は、第１のバッファ２７ａの画像データを表示部１５へ出力している期間に、メモリ１４から転送される画像データを第２のバッファ２７ｂに格納するように転送予約を行う。例えば、処理部２７は、予約転送要求と、転送予約のための情報を出力する。
【００３３】
転送予約のための情報は、開始予定、転送データ量、終了期限を含む。開始予定は、予約転送要求を出力するタイミングから、転送が可能となるタイミングまでの期間情報である。この期間情報は、例えば、クロック信号ＣＬＫに基づくサイクル数である。転送データ量は、予約した転送期間に転送するデータ量である。終了期限は、予約転送要求を出力するタイミングから、転送を完了しなければならないタイミングまでの期間情報である。この期間情報は、例えば、クロック信号ＣＬＫに基づくサイクル数である。
【００３４】
上記したように、処理部２７は、クロック信号ＣＬＫに同期してバッファ２７ａ，２７ｂの画像データＧＤを出力する。例えば、処理部２７は、バッファ２７ａ，２７ｂの記憶容量と、クロック信号ＣＬＫをカウントしたカウント値に基づいて、バッファ２７ａ，２７ｂがエンプティ状態となるまでの期間値を算出する。そして、処理部２７は、算出した期間値と等しい値の開始予定のサイクル数を出力する。
【００３５】
処理部２７は、２つのバッファ２７ａ，２７ｂを交互に使用して画像データＧＤを出力する。従って、処理部２７は、第１のバッファ２７ａに対する画像データの転送を、第２のバッファ２７ｂがエンプティ状態となるまでに完了する必要がある。第２のバッファ２７ｂに対する画像データのデータ転送も同様である。従って、処理部２７は、開始予定のサイクル数と、バッファ２７ａ，２７ｂがエンプティ状態となるまでに要するサイクル数に基づいて終了期限のサイクル数を算出し、その終了期限のサイクル数を出力する。そして、処理部２７は、バッファ２７ａ，２７ｂの記憶容量と等しい値の転送データ量を出力する。
【００３６】
調停部３１は、転送要求と転送のための情報に基づいて、各処理部２１〜２７のデータ転送の実施タイミングを調整する。調停部３１は、タイミング調整装置の一例である。処理部２１は第１処理部の一例、処理部２２〜２６は第２処理部の一例、処理部２７は第３処理部の一例である。
【００３７】
調停部３１に対して、処理部２１〜２７をバスマスタと呼び、メモリインタフェース３２をバススレーブと呼ぶ。なお、バスマスタのアクセス対象であるメモリ１４をバススレーブと呼ぶこと、メモリインタフェース３２とメモリ１４を合わせてバススレーブと呼ぶことがある。
【００３８】
図２に示すように、調停部３１は、予約処理部４１、転送調停部４２、転送実施部４３を有している。
予約処理部４１は、予約転送要求ＲＴを受け付ける。予約転送要求ＲＴは、図３に示す処理装置１２の場合、処理部２１と処理部２７から出力される。予約転送要求ＲＴは、第１の転送要求、第３の転送要求の一例である。
【００３９】
予約処理部４１は、予約転送要求ＲＴに対応する転送情報に従って予約転送期間のタイミング（例えばサイクル数）を算出する。転送情報は、開始予定、終了期限、転送データ量を含む。予約転送期間のタイミングは、最早開始サイクル数，最遅開始サイクル数，転送サイクル数を含む。１つの予約転送要求ＲＴを受け付けた場合、予約処理部４１は、算出した予約転送期間のタイミングを出力する。複数の予約転送要求ＲＴを受け付けた場合、予約処理部４１は、各予約転送要求ＲＴに対する予約転送期間が互いに干渉しないように予約転送期間のタイミングを調整し、調整後のタイミングを出力する。予約処理部４１は、要求処理部の一例である。
【００４０】
転送調停部４２は、通常転送要求ＮＴを受け付ける。通常転送要求ＮＴは、図３に示す処理部２２〜２６から出力される。通常転送要求ＮＴは、第２の転送要求の一例である。
転送調停部４２は、通常転送要求ＮＴに対応する転送情報に従って通常転送期間のタイミング（例えばサイクル数）を算出する。転送調停部４２は、算出した通常転送期間のタイミングを予約転送期間のタイミングと比較し、比較結果に応じて、通常転送要求ＮＴに対するデータ転送が可能か否かを判定する。転送調停部４２は、データ転送が可能と判定した場合、通常転送要求ＮＴに対応する転送許可ＥＮを出力する。そして、転送調停部４２は、通常転送要求ＮＴに対応するデータ転送の期間に基づいて、予約転送期間のタイミングを調整し、調整後のタイミングを出力する。
【００４１】
転送実施部４３は、転送調停部４２から出力されるタイミングに基づいて、転送開始のタイミングで転送許可ＥＲを出力する。予約処理部４１において複数の予約転送要求ＲＴを受け付けた場合、転送開始のタイミングに達した予約転送要求ＲＴに対応する転送許可ＥＲを出力する。
【００４２】
次に、予約処理部４１、転送調停部４２、転送実施部４３の回路例を図４〜図７に従って説明する。
なお、回路例の説明において、処理部２１の転送予約を［予約Ａ］、処理部２７の転送予約を［予約Ｂ］とする。以下の説明において、［予約Ａ］と［予約Ｂ］の信号等に対して必要に応じて［ａ］［ｂ］を付してそれぞれを区別する。
【００４３】
図４に示すように、予約処理部４１は、［予約Ａ］のための情報をラッチするラッチ回路５１ａ〜５４ａを有している。ラッチ回路５１ａは、予約転送要求ＲＴａに基づいて開始予定ＣＣａをラッチする。ラッチ回路５２ａは、予約転送要求ＲＴａに基づいて終了期限ＣＤａをラッチする。ラッチ回路５３ａは、予約転送要求ＲＴａに基づいて転送データ量ＣＥａをラッチする。ラッチ回路５４ａの入力端子は［１］に設定され、予約転送要求ＲＴａに基づいて設定されたレベルの信号を出力する。ラッチ回路５４ａは、転送許可信号ＥＲａに応答して出力信号をクリア（＝［０］）する。ラッチ回路５５ａは、クロック信号ＣＬＫ（図示略）に応答してラッチ回路５４ａの出力信号をラッチし、ラッチしたレベルと等しいレベルの選択信号ＳＬ１ａを出力する。
【００４４】
スタート信号生成回路５６は、［予約Ａ］の予約転送要求ＲＴａ、［予約Ｂ］の予約転送要求ＲＴｂ、予約状態信号ｘＲＩに基づいてスタート信号を生成する。例えば、スタート信号生成回路５６は、受付済みの予約転送要求がない状態で、新たな予約転送要求ＲＴａ，ＲＴｂを受け付けたときに、スタート信号を生成する。スタート信号は、例えばパルス信号である。
【００４５】
カウンタ５７は、スタート信号に応答してカウント動作を開始し、クロック信号ＣＬＫのパルスをカウントしたカウント値ＣＶを出力する。カウンタ５７は、停止信号ＳＴＰに応答してカウント値ＣＶをクリア（＝［０］）し、カウント動作を停止する。例えば、調停部３１は、全ての予約転送要求に対するデータ転送が終了すると停止信号ＳＴＰを生成する。
【００４６】
ラッチ回路５８ａは、カウンタ５７から出力されるカウント値ＣＶを予約転送要求ＲＴａに基づいてラッチする。加算器５９ａは、ラッチ回路５１ａの出力信号にラッチ回路５８ａの出力信号を加算し、最早開始サイクル数Ｃａ１を出力する。加算器６０ａは、ラッチ回路５２ａの出力信号にラッチ回路５８ａの出力信号を加算し、最遅終了サイクル数Ｄａ１を出力する。サイクル数算出部６１ａは、ラッチ回路５３ａの出力信号と所定の係数に基づいて、転送データ量のデータの転送に要する転送サイクル数Ｃａ３を算出する。サイクル数算出部６１ａにおける所定の係数は、例えば処理装置１２とメモリ１４の間のデータ転送の速度、単位時間において処理装置１２とメモリ１４との間で転送されるデータ量、である。減算器６２ａは、加算器６０ａから出力される最遅終了サイクル数Ｄａ１から転送サイクル数Ｃａ３を減算して最遅開始サイクル数Ｃａ２を算出する。選択回路６３ａは、選択信号ＳＬ１ａに応じて、最遅開始サイクル数Ｃａ２又はチェック後の最遅開始サイクル数Ｃａ２２を選択し、選択した値と等しいサイクル数Ｃａ２ｄを出力する。
【００４７】
また、予約処理部４１は、［予約Ｂ］のための情報をラッチするラッチ回路５１ｂ〜５４ｂを有している。ラッチ回路５１ｂは、予約転送要求ＲＴｂに基づいて開始予定ＣＣｂをラッチする。ラッチ回路５２ｂは、予約転送要求ＲＴｂに基づいて終了期限ＣＤｂをラッチする。ラッチ回路５３ｂは、予約転送要求ＲＴｂに基づいて転送データ量ＣＥｂをラッチする。ラッチ回路５４ｂの入力端子は［１］に設定され、予約転送要求ＲＴｂに基づいて設定されたレベルの信号を出力する。ラッチ回路５４ｂは、転送許可信号ＥＲｂに応答して出力信号をクリア（＝［０］）する。ラッチ回路５５ｂは、クロック信号ＣＬＫ（図示略）に応答してラッチ回路５４ｂの出力信号をラッチし、ラッチしたレベルと等しいレベルの選択信号ＳＬ１ｂを出力する。
【００４８】
ラッチ回路５８ｂは、予約転送要求ＲＴｂに基づいてカウンタ５７から出力されるカウント値ＣＶをラッチする。加算器５９ｂは、ラッチ回路５１ｂの出力信号にラッチ回路５８ｂの出力信号を加算し、最早開始サイクル数Ｃｂ１を出力する。加算器６０ｂは、ラッチ回路５２ｂの出力信号にラッチ回路５８ｂの出力信号を加算し、最遅終了サイクル数Ｄｂ１を出力する。
【００４９】
サイクル数算出部６１ｂは、ラッチ回路５３ｂの出力信号と所定の係数に基づいて、転送データ量のデータの転送に要する転送サイクル数Ｃｂ３を算出する。所定の係数は、例えば処理装置１２とメモリ１４の間のデータ転送の速度、単位時間において処理装置１２とメモリ１４との間で転送されるデータ量、である。減算器６２ｂは、加算器６０ｂから出力される最遅終了サイクル数Ｄｂ１から転送サイクル数Ｃｂ３を減算して最遅開始サイクル数Ｃｂ２を算出する。選択回路６３ｂは、選択信号ＳＬ１ｂに応じて、最遅開始サイクル数Ｃｂ２又はチェック後の最遅開始サイクル数Ｃｂ２２選択し、選択した値と等しいサイクル数Ｃｂ２ｄを出力する。
【００５０】
ノア回路６４は、選択信号ＳＬ１ａ，ＳＬ１ｂを論理演算（否定論理和演算）して予約状態信号ｘＲＩを出力する。予約状態信号ｘＲＩは、予約の有無を示す。例えば、Ｈレベルの予約状態信号ｘＲＩは予約がないことを示す。インバータ回路６５は、予約状態信号ｘＲＩを論理反転したレベルの反転予約状態信号ｚＲＩを出力する。例えば、Ｈレベルの反転予約状態信号ｚＲＩは、受け付けた予約があることを示す。
【００５１】
比較演算器６６は、［予約Ａ］の最遅終了サイクル数Ｄａ１と［予約Ｂ］の最遅終了サイクル数Ｄｂ１を互いに比較し、比較結果に応じて、［予約Ａ］の最遅開始サイクル数Ｃａ２（又はＣａ２ｄ）、または［予約Ｂ］の最遅開始サイクル数Ｃｂ２（又はＣｂ２ｄ）を調整する。例えば、比較演算器６６は、［予約Ａ］の最遅終了サイクル数Ｄａ１が［予約Ｂ］の最遅終了サイクル数Ｄｂ１よりも少ない場合、［予約Ｂ］の転送を可能とするように、［予約Ａ］の最遅開始サイクル数Ｃａ２（又はＣａ２ｄ）を調整する。例えば、比較演算器６６は、［予約Ｂ］の最遅終了サイクル数Ｄｂ１から［予約Ａ］の転送サイクル数Ｃａ３を減算した結果の値と等しい調整サイクル数Ｃａ２１を出力する。そして、比較演算器６６は、調整サイクル数Ｃａ２１を選択するための選択信号ＳＬ２ａを出力する。同様に、比較演算器６６は、［予約Ｂ］の最遅終了サイクル数Ｄｂ１が［予約Ａ］の最遅終了サイクル数Ｄａ１よりも少ない場合、［予約Ａ］の転送を可能とするように、［予約Ｂ］の最遅開始サイクル数Ｃｂ２（又はＣｂ２ｄ）を調整する。例えば、比較演算器６６は、［予約Ａ］の最遅終了サイクル数Ｄａ１から［予約Ｂ］の転送サイクル数Ｃｂ３を減算した結果の値と等しい調整サイクル数Ｃｂ２１を出力する。そして、比較演算器６６は、調整サイクル数Ｃｂ２１を選択するための選択信号ＳＬ２ｂを出力する。
【００５２】
選択回路６７ａは、最遅開始サイクル数Ｃａ２と比較演算器６６から出力される調整サイクル数Ｃａ２１を入力し、比較演算器６６から出力される選択信号ＳＬ２ａに応じたサイクル数を選択して出力する。ラッチ回路６８ａは、選択回路６７ａから出力されるサイクル数を図示しないクロック信号ＣＬＫ（図示略）に応じてラッチし、ラッチしたサイクル数と等しい調整後サイクル数Ｃａ２２を出力する。
【００５３】
同様に、選択回路６７ｂは、最遅開始サイクル数Ｃｂ２と比較演算器６６から出力される調整サイクル数Ｃｂ２１を入力し、比較演算器６６から出力される選択信号ＳＬ２ｂに応じたサイクル数を選択して出力する。ラッチ回路６８ｂは、選択回路６７ｂから出力されるサイクル数を図示しないクロック信号ＣＬＫ（図示略）に応じてラッチし、ラッチしたサイクル数と等しい調整後サイクル数Ｃｂ２２を出力する。
【００５４】
図５に示すように、転送調停部４２のサイクル数算出部７１は、通常転送要求ＮＴとデータ量ＮＤｎに基づいて通常転送サイクル数Ｎ３を算出する。通常転送サイクル数Ｎ３は、通常転送においてデータを転送する期間である。加算器７２は、通常転送サイクル数Ｎ３にカウント値ＣＶを加算し、加算結果に応じて転送完了サイクル数Ｎ３Ｄを出力する。
【００５５】
選択回路７３ａは、アンド回路７６ａから出力される選択信号ＳＬ３ａに応じて最早開始サイクル数Ｃａ１または転送完了サイクル数Ｎ３Ｄを選択し、選択したサイクル数を出力する。例えば、選択回路７３ａは、Ｈレベルの選択信号ＳＬ３ａに応答して最早開始サイクル数Ｃａ１を選択し、Ｌレベルの選択信号ＳＬ３ａに応答して転送完了サイクル数Ｎ３Ｄを選択する。ラッチ回路７４ａは、クロック信号ＣＬＫ（図示略）に応答して選択回路７３ａから出力されるサイクル数をラッチし、ラッチしたサイクル数と等しい変更した最早開始サイクル数Ｃａ１１を出力する。
【００５６】
比較回路７５ａは、ラッチ回路７４ａから出力される最早開始サイクル数Ｃａ１１を転送完了サイクル数Ｎ３Ｄと比較し、比較結果に応じたレベルの比較信号Ｄ１ａを出力する。例えば、比較回路７５ａは、最早開始サイクル数Ｃａ１１と転送完了サイクル数Ｎ３Ｄを大小比較し、最早開始サイクル数Ｃａ１１が転送完了サイクル数より大きい場合に第１のレベル（例えばＨレベル）の比較信号Ｄ１ａを出力し、最早開始サイクル数Ｃａ１１が転送完了サイクル数Ｎ３Ｄ以下の場合に第２のレベル（例えばＬレベル）の比較信号Ｄ１ａを出力する。アンド回路７６ａは、比較回路７５ａから出力される比較信号Ｄ１ａとアンド回路７８から出力される判定信号ＳＪ１を論理演算（論理積演算）した結果に応じたレベルの選択信号ＳＬ３ａを出力する。
【００５７】
比較回路７７ａは、最遅開始サイクル数Ｃａ２２と転送完了サイクル数Ｎ３Ｄとを比較し、比較結果に応じたレベルの比較信号Ｄ２ａを出力する。例えば、比較回路７７ａは、最遅開始サイクル数Ｃａ２２を転送完了サイクル数Ｎ３Ｄと大小比較し、最遅開始サイクル数Ｃａ２２が転送完了サイクル数Ｎ３Ｄより小さい場合に第１のレベル（Ｈレベル）の比較信号Ｄ２ａを出力し、最遅開始サイクル数Ｃａ２２が転送完了サイクル数より以上の場合に第２のレベル（Ｌレベル）の比較信号Ｄ２ａを出力する。
【００５８】
選択回路７３ｂは、アンド回路７６ｂから出力される選択信号ＳＬ３ｂに応じて最早開始サイクル数Ｃｂ１または転送完了サイクル数Ｎ３Ｄを選択し、選択したサイクル数を出力する。例えば、選択回路７３ｂは、Ｈレベルの選択信号ＳＬ３ｂに応答して最早開始サイクル数Ｃｂ１を選択し、Ｌレベルの選択信号ＳＬ３ｂに応答して転送完了サイクル数Ｎ３Ｄを選択する。ラッチ回路７４ｂは、クロック信号ＣＬＫ（図示略）に応答して選択回路７３ｂから出力されるサイクル数をラッチし、ラッチしたサイクル数と等しい変更した最早開始サイクル数Ｃｂ１１を出力する。
【００５９】
比較回路７５ｂは、ラッチ回路７４ｂから出力される最早開始サイクル数Ｃｂ１１を転送完了サイクル数Ｎ３Ｄと比較し、比較結果に応じたレベルの比較信号Ｄ１ｂを出力する。例えば、比較回路７５ｂは、最早開始サイクル数Ｃｂ１１と転送完了サイクル数Ｎ３Ｄを大小比較し、最早開始サイクル数Ｃｂ１１が転送完了サイクル数より大きい場合に第１のレベル（例えばＨレベル）の比較信号Ｄ１ｂを出力し、最早開始サイクル数Ｃｂ１１が転送完了サイクル数Ｎ３Ｄ以下の場合に第２のレベル（例えばＬレベル）の比較信号Ｄ１ｂを出力する。アンド回路７６ｂは、比較回路７５ｂから出力される比較信号Ｄ１ｂとアンド回路７８から出力される判定信号ＳＪ１を論理演算（論理積演算）した結果に応じたレベルの選択信号ＳＬ３ｂを出力する。
【００６０】
比較回路７７ｂは、最遅開始サイクル数Ｃｂ２２と転送完了サイクル数Ｎ３Ｄとを比較し、比較結果に応じたレベルの比較信号Ｄ２ｂを出力する。例えば、比較回路７７ｂは、最遅開始サイクル数Ｃｂ２２を転送完了サイクル数Ｎ３Ｄと大小比較し、最遅開始サイクル数Ｃｂ２が転送完了サイクル数Ｎ３Ｄより小さい場合に第１のレベル（Ｈレベル）の比較信号Ｄ２ｂを出力し、最遅開始サイクル数Ｃｂ２２が転送完了サイクル数より以上の場合に第２のレベル（Ｌレベル）の比較信号Ｄ２ｂを出力する。
【００６１】
アンド回路７８は、通常転送状態信号ｚＮＩと比較信号Ｄ２ａ，Ｄ２ｂを論理演算（論理積演算）した結果に応じたレベルの判定信号ＳＪ１を出力する。通常転送状態信号ｚＮＩは、例えば調停部３１により生成される。調停部３１は、通常転送要求を受け付けると第１のレベル（Ｈレベル）の通常転送状態信号ｚＮＩを生成し、通常転送要求を受け付けていない場合に第２のレベル（Ｌレベル）の通常転送状態信号ｚＮＩを生成する。判定信号ＳＪ１は、通常転送要求があって、予約Ａ，Ｂの最遅までに転送が終了するか否かを示す。アンド回路７９は、通常転送状態信号ｚＮＩと図４のノア回路６４から出力される予約状態信号ｘＲＩを論理演算（論理積演算）した結果に応じたレベルの信号を出力する。オア回路８０は、アンド回路７８から出力される判定信号ＳＪ１とアンド回路７９の出力信号を論理演算（論理積演算）した結果に応じたレベルの通常転送実施信号ＥＮを出力する。ノア回路８１は、予約状態信号ｘＲＩとアンド回路７８から出力される判定信号ＳＪ１を論理演算（否定論理和演算）した結果に応じたレベルの予約転送実施信号ＥＲ０を出力する。
【００６２】
図６に示すように、転送実施部４３の比較回路９１ａは、図４に示すカウンタ５７から出力されるカウント値ＣＶと変更後の最早開始サイクル数Ｃａ１１を比較し、比較結果に応じたレベルの比較信号Ｄ３ａを出力する。例えば、比較回路９１ａは、カウント値ＣＶが変更後の最早開始サイクル数Ｃａ１１以上の場合に第１のレベル（Ｈレベル）の比較信号Ｄ３ａを出力し、カウント値ＣＶが変更後の最早開始サイクル数Ｃａ１１より小さいときに第２のレベル（Ｌレベル）の比較信号Ｄ３ａを出力する。
【００６３】
比較回路９１ｂは、カウント値ＣＶと変更後の最早開始サイクル数Ｃｂ１１を比較し、比較結果に応じたレベルの比較信号Ｄ３ｂを出力する。例えば、比較回路９１ｂは、カウント値ＣＶが変更後の最早開始サイクル数Ｃｂ１１以上の場合に第１のレベル（Ｈレベル）の比較信号Ｄ３ｂを出力し、カウント値ＣＶが変更後の最早開始サイクル数Ｃｂ１１より小さいときに第２のレベル（Ｌレベル）の比較信号Ｄ３ｂを出力する。
【００６４】
アンド回路９２は、比較信号Ｄ３ａ，Ｄ３ｂを論理演算（論理積演算）した結果に応じたレベルの判定信号ＳＪ２を出力する。
アンド回路９３は、反転通常転送状態信号ｘＮＩと図４のインバータ回路６５から出力される反転予約状態信号ｚＲＩを論理演算（論理積演算）した結果に応じたレベルの信号を出力する。例えば、調停部３１は、通常転送状態信号ｚＮＩを論理反転して反転通常転送状態信号ｘＮＩを生成する。Ｈレベルの反転通常転送状態信号ｘＮＩは、通常転送要求がないことを示す。オア回路９４は、アンド回路９３の出力信号と予約転送実施信号ＥＲ０を論理演算（論理和演算）した結果に応じたレベルの信号を出力する。
【００６５】
アンド回路９５ａは、オア回路９４の出力信号と比較信号Ｄ３ａを論理演算（論理積演算）した結果に応じたレベルの信号を出力する。
アンド回路９５ｂは、オア回路９４の出力信号と比較信号Ｄ３ｂを論理演算（論理積演算）した結果に応じたレベルの信号を出力する。
【００６６】
比較回路９６は、チェック後の最遅開始サイクル数Ｃａ２２とチェック後の最遅開始サイクル数Ｃｂ２２を比較し、比較結果に応じたレベルの比較信号Ｄ４を出力する。例えば、比較回路９６は、最遅開始サイクル数Ｃｂ２２が最遅開始サイクル数Ｃａ２２以上の場合に第１のレベル（Ｈレベル）の比較信号Ｄ４を出力し、最遅開始サイクル数Ｃｂ２２が最遅開始サイクル数Ｃａ２２より小さい場合に第２のレベル（Ｌレベル）の比較信号Ｄ４を出力する。
【００６７】
インバータ回路９７は、比較回路９６から出力される比較信号Ｄ４を論理反転したレベルの信号ｘＤ４を出力する。アンド回路９８ａは、インバータ回路９７の出力信号ｘＤ４とアンド回路９２の出力信号ＳＪ２を論理演算（論理積演算）した結果に応じたレベルの選択信号ＳＬ４ａを出力する。選択回路９９ａは、選択信号ＳＬ４ａに応答してアンド回路９５ａの出力信号又は固定されたレベル（［０］）を選択し、選択した信号のレベルと等しいレベルの転送許可信号ＥＲａを出力する。この転送許可信号ＥＲａは、予約Ａに対する転送の許可又は不許可を示す。例えば、Ｈレベル（［１］）の転送許可信号ＥＲａは予約Ａの転送の許可を示し、Ｌレベル（［０］）の転送許可信号ＥＲａは不許可を示す。
【００６８】
アンド回路９８ｂは、比較回路９６から出力される比較信号Ｄ４とアンド回路９２の出力信号ＳＪ２を論理演算（論理積演算）した結果に応じたレベルの選択信号ＳＬ４ｂを出力する。選択回路９９ｂは、選択信号ＳＬ４ｂに応答してアンド回路９５ｂの出力信号又は固定されたレベル（［０］）を選択し、選択した信号のレベルと等しいレベルの転送許可信号ＥＲｂを出力する。この転送許可信号ＥＲｂは、予約Ｂに対する転送の許可又は不許可を示す。例えば、Ｈレベル（［１］）の転送許可信号ＥＲｂは予約Ｂの転送の許可を示し、Ｌレベル（［０］）の転送許可信号ＥＲｂは不許可を示す。
【００６９】
次に、調停部３１の予約転送処理を、図７〜図９に従って説明する。
なお、図７〜図９において、最早開始サイクル数を単に［最早］、最遅開始サイクル数を単に［最遅］と表記する。
【００７０】
図７に示すステップ１０１において、受け付ける要求があるか否かを判定する。要求がない場合（判定：ＮＯ）、次のステップ１０２において、受付済みの予約転送要求があるか否かを判定する。受付済みの予約転送要求がない場合（判定：ＮＯ）、ステップ１０１に移行する。
【００７１】
一方、受付済みの予約転送要求がある場合（判定：ＹＥＳ）、ステップ１０３において、予約転送を実施する。ステップ１１１〜１１８はステップ１０３のサブステップである。なお、説明を簡略化するため、受付済みの予約転送要求を２つとする。この２つの予約転送要求を［予約Ａ］［予約Ｂ］とする。
【００７２】
先ず、ステップ１１１において、カウント値ＣＶと［予約Ａ］の最早開始サイクル数Ｃａ１と比較し、カウント値ＣＶが最早開始サイクル数Ｃａ１以上か否かを判定する。カウント値ＣＶが転送開始サイクルＣａ１未満の場合（判定：ＮＯ）、ステップ１１２へ移行する。一方、カウント値ＣＶが最早開始サイクル数Ｃａ１以上の場合（判定：ＹＥＳ）、ステップ１１３へ移行する。
【００７３】
ステップ１１２において、カウント値ＣＶと［予約Ｂ］の最早開始サイクル数Ｃｂ１と比較し、カウント値ＣＶが最早開始サイクル数Ｃｂ１以上か否かを判定する。カウント値ＣＶが最早開始サイクル数Ｃｂ１未満の場合（判定：ＮＯ）、ステップ１０１へ移行し、カウント値ＣＶが最早開始サイクル数Ｃｂ１以上の場合（判定：ＹＥＳ）、ステップ１１７へ移行する。
【００７４】
ステップ１１３において、カウント値ＣＶと［予約Ｂ］の最早開始サイクル数Ｃｂ１と比較し、カウント値ＣＶが最早開始サイクル数Ｃｂ１以上か否かを判定する。カウント値ＣＶが最早開始サイクル数Ｃｂ１以上の場合（判定：ＹＥＳ）、次のステップ１１４へ移行し、カウント値ＣＶが最早開始サイクル数Ｃｂ１未満の場合（判定：ＮＯ）、ステップ１１５へ移行（ステップ１１４をスキップ）する。
【００７５】
ステップ１１４において、［予約Ａ］の最遅開始サイクル数Ｃａ２と［予約Ｂ］の最遅開始サイクル数Ｃｂ２と比較し、どちらの最遅開始サイクル数が先かを判定する。［予約Ａ］の最遅開始サイクル数Ｃａ２が［予約Ｂ］の最遅開始サイクル数Ｃｂ２よりも先（Ｃａ２≦ＣＣＢ２）の場合（判定：ＹＥＳ）、次のステップ１１５へ移行する。一方［予約Ａ］の最遅開始サイクル数Ｃａ２が［予約Ｂ］の最遅開始サイクル数Ｃｂ２よりも後（Ｃａ２＞ＣＣＢ２）の場合（判定：ＮＯ）、ステップ１１７へ移行する。
【００７６】
ステップ１１５において、［予約Ａ］の転送を実行する。次いで、ステップ１１６において、［予約Ａ］を削除する。
ステップ１１７において、［予約Ｂ］の転送を実行する。次いで、ステップ１１８において、［予約Ｂ］を削除する。
【００７７】
次に、ステップ１０４において、全ての予約転送要求に対する処理を終了したか否かを判定する。受付済みの予約転送要求がある場合、全ての予約に対する処理を終了していないと判定し（判定：ＮＯ）、ステップ１０１へ移行する。一方、受付済みの予約転送要求がない場合、全ての予約に対する処理を終了したと判定し（判定：ＹＥＳ）、ステップ１０５へ移行する。
【００７８】
ステップ１０５において、カウンタを停止し、ステップ１０１へ移行する。
上記のステップ１０１において受け付ける要求がある場合（判定：ＹＥＳ）、図８に示すステップ１２１に移行する。
【００７９】
ステップ１２１において、新たな予約転送要求があるか否かを判定する。新たな予約転送要求がある場合（判定：ＹＥＳ）、次のステップ１２２へ移行する。一方、新たな予約転送要求がない場合（判定：ＮＯ）、図９に示すステップ１６１へ移行する。
【００８０】
ステップ１３１〜１３７はステップ１２２のサブステップである。
ステップ１３１において、受付済みの予約転送要求があるか否かを判定する。受付済みの予約転送要求がある場合（判定：ＹＥＳ）、ステップ１３２へ移行し、受付済みの予約転送要求がない場合（判定：ＮＯ）、ステップ１３６へ移行する。
【００８１】
ステップ１３２において、受け付けた予約転送要求について、転送情報とカウント値に基づいて、予約期間に応じたサイクル数を算出する。予約期間に応じたサイクル数は、最早開始サイクル数、最遅開始サイクル数、転送サイクル数を含む。
【００８２】
ステップ１３３において、比較演算処理を行う。この処理において、受け付けた２つの予約転送要求の予約期間に応じたサイクル数を比較し、比較結果に応じて変更が必要な場合に変更する予約転送要求の最遅開始サイクル数を算出する。
【００８３】
ステップ１３４において、予約Ａの最遅開始サイクル数を、予約Ｂの最遅開始サイクル数Ｃｂ２に応じて変更する。例えば、予約Ｂの最遅開始サイクル数Ｃｂ２から予約Ａの転送サイクル数Ｃａ３を減算した結果の値を、予約Ａの最遅開始サイクル数Ｃａ２とする。
【００８４】
ステップ１３５において、予約Ｂの最遅開始サイクル数を、予約Ａの最遅開始サイクル数Ｃａ２に応じて変更する。例えば、予約Ａの最遅開始サイクル数Ｃａ２から予約Ｂの転送サイクル数Ｃｂ３を減算した結果の値を、予約Ｂの最遅開始サイクル数Ｃｂ２とする。
【００８５】
ステップ１４１〜１４４はステップ１３３のサブステップである。
ステップ１４１において、受け付けた２つの予約転送要求に対する転送が実行可能か否かを判定する。一方の予約転送を最早のタイミングで実行した場合、その予約転送が他方の予約転送の最遅のタイミングよりも先に完了すれば、２つの予約に対する転送が実行可能である。従って、一方の最早開始サイクル数に転送サイクル数を加算した結果の値と他方の最遅開始サイクル数を比較し、加算結果が他方の最遅開始サイクル数よりも小さい場合、転送の実行可能と判定する。実行可能と判定した場合、次のステップ１３２へ移行する。実行不可能と判定した場合、エラーとする。
【００８６】
例えば、予約Ａの最早開始サイクル数Ｃａ１と転送サイクル数Ｃａ３を加算した結果と、予約Ｂの最遅開始サイクル数Ｃｂ２を比較し、加算結果が最遅サイクル数より小さい（Ｃｂ２≧（Ｃａ１＋Ｃａ３））場合、データ転送が実行可能と判定する。また、予約Ｂの最早開始サイクル数Ｃｂ１と転送サイクル数Ｃｂ３を加算した結果と、予約Ａの最遅開始サイクル数Ｃａ２を比較し、加算結果が最遅サイクル数より小さい（Ｃａ２≧（Ｃｂ１＋Ｃｂ３））場合、データ転送が実行可能と判定する。
【００８７】
ステップ１４２において、予約Ａの最遅が予約Ｂの最遅より先か否かを判定する。予約Ａの最遅が予約Ｂの最遅よりも先（Ｃｂ２≧Ｃａ２）の場合（判定：ＹＥＳ）、次のステップ１４３へ移行し、予約Ｂの最遅が予約Ａの最遅よりも先の場合（判定：ＮＯ）、ステップ１４４へ移行する。
【００８８】
ステップ１４３において、予約Ａの転送開始を最遅開始タイミングとして場合に予約Ｂの転送が可能か否かを判定する。例えば、予約Ａの最遅開始サイクル数Ｃａ２に転送サイクル数Ｃａ３を加算した結果の値から予約Ｂの最遅開始サイクル数Ｃｂ２を減算して結果の値が［０（ゼロ］より大きいか否かを判定する。［０］より大きい場合（判定：ＹＥＳ）にステップ１３４へ移行し、［０］以下の場合（判定：ＮＯ）にステップ１２３へ移行する。
【００８９】
ステップ１４４において、予約Ｂの転送開始を最遅開始タイミングとした場合に予約Ａの転送が可能か否かを判定する。例えば、予約Ｂの最遅開始サイクル数Ｃｂ２に転送サイクル数Ｃｂ３を加算した結果の値から予約Ａの最遅開始サイクル数Ｃａ２を減算して結果の値が［０（ゼロ］より大きいか否かを判定する。［０］より大きい場合（判定：ＹＥＳ）にステップ１３５へ移行し、［０］以下の場合（判定：ＮＯ）にステップ１２３へ移行する。
【００９０】
ステップ１３６において、カウンタ５７のカウント動作をスタートさせる。次に、ステップ１３７において、受け付けた予約転送要求について、転送情報とカウント値に基づいて、予約期間に応じたサイクル数を算出する。予約期間に応じたサイクル数は、最早開始サイクル数、最遅開始サイクル数、転送サイクル数を含む。
【００９１】
ステップ１２３において、通常要求があるか否かを判定する。通常要求がある場合（判定：ＹＥＳ）、図９に示すステップ１５１へ移行し、通常要求がない場合（判定：ＮＯ）、図７に示すステップ１０３へ移行する。
【００９２】
〔図９〕
図９に示すステップ１５１において、予約転送と通常転送の調停処理を行う。
ステップ１６１〜ステップ１６７はステップ１５１のサブステップである。
【００９３】
ステップ１６１において、受付済みの予約要求があるか否かを判定する。予約要求がある場合（判定：ＹＥＳ）はステップ１６２へ移行し、予約要求がない場合（判定：ＮＯ）には調停処理を終了してステップ１５２へ移行する。
【００９４】
ステップ１６２において、通常要求におけるデータ転送の完了サイクル数を算出する。
例えば、通常要求におけるデータ量に基づいて、通常要求の転送サイクル数Ｎ３を算出し、その転送サイクル数Ｎ３とカウント値ＣＶに基づいて、転送完了サイクル数Ｎ３Ｄを算出する。
【００９５】
ステップ１６３において、通常転送が予約の最遅までに終了するか否かを判定する。例えば、上記のステップ１６２において算出した転送完了サイクル数Ｎ３Ｄと、予約転送の最遅開始サイクル数とを比較する。例えば、２つの予約Ａ，Ｂを受け付けている場合、転送完了サイクル数Ｎ３Ｄを［予約Ａ］の最遅開始サイクル数Ｃａ２と比較し、転送完了サイクル数Ｎ３Ｄを［予約Ｂ］の最遅開始サイクル数Ｃｂ２と比較する。そして、転送完了サイクル数Ｎ３Ｄが最遅開始サイクル数Ｃａ２より小さく、且つ転送完了サイクル数Ｎ３Ｄが最遅開始サイクル数Ｃｂ２より小さい場合（判定：ＹＥＳ）、次のステップ１６４へ移行する。一方、転送完了サイクル数Ｎ３Ｄが最遅開始サイクル数Ｃａ２以上、または転送完了サイクル数Ｎ３Ｄが最遅開始サイクル数Ｃｂ２以上の場合（判定：ＮＯ）、図７に示すステップ１０３へ移行する。
【００９６】
ステップ１６４において、通常転送の転送完了が予約［Ａ］の最早より遅いか否かを判定する。例えば、通常転送の転送完了サイクル数Ｎ３Ｄが予約［Ａ］の最早開始サイクル数Ｃａ１と比較し、比較結果に基づいて判定する。転送完了サイクル数Ｎ３Ｄが最早開始サイクル数Ｃａ１より大きい場合（判定：ＹＥＳ）、次のステップ１６５へ移行し、転送完了サイクル数Ｎ３Ｄが最早開始サイクル数Ｃａ１以下の場合（判定：ＮＯ）、ステップ１６６へ移行する。
【００９７】
ステップ１６５において、通常転送の転送完了サイクル数Ｎ３Ｄに基づいて［予約Ａ］の最早開始サイクル数Ｃａ１を変更する。例えば、最早開始サイクル数Ｃａ１の値を転送完了サイクル数Ｎ３Ｄの値と等しくする。そして、ステップ１６６へ移行する。
【００９８】
ステップ１６６において、通常転送の転送完了が予約［Ｂ］の最早より遅いか否かを判定する。例えば、通常転送の転送完了サイクル数Ｎ３Ｄが予約［Ｂ］の最早開始サイクル数Ｃｂ１と比較し、比較結果に基づいて判定する。転送完了サイクル数Ｎ３Ｄが最早開始サイクル数Ｃｂ１より大きい場合（判定：ＹＥＳ）、次のステップ１６７へ移行する。一方、転送完了サイクル数Ｎ３Ｄが最早開始サイクル数Ｃｂ１以下の場合（判定：ＮＯ）、調停処理を終了してステップ１５２へ移行する。
【００９９】
ステップ１６７において、通常転送の転送完了サイクル数Ｎ３Ｄに基づいて［予約Ｂ］の最早開始サイクル数Ｃｂ１を変更する。例えば、最早開始サイクル数Ｃｂ１の値を転送完了サイクル数Ｎ３Ｄの値と等しくする。そして、ステップ１５２へ移行する。
【０１００】
ステップ１５２において、通常要求の転送を実施する。そして、図７に示すステップ１０１へ移行する。
次に、調停部３１の作用を説明する。
【０１０１】
先ず、予約転送について説明する。
図１０に示すように、クロック信号ＣＬＫに基づいて図１に示す撮像部１１から画像データＧＤが出力される。図３に示す処理部２１は、バッファ２１ａとバッファ２１ｂに対して画像データを交互に格納する。そして、処理部２１は、バッファ２１ａのデータをメモリ１４へ転送するために予約転送要求２０１と転送情報２１１を出力する。なお、処理部２１が出力する予約転送要求２０１を上記の説明における［予約Ａ］とする。
【０１０２】
転送情報２１１は、開始予定、終了期限、転送データ量を含む。図１０において、転送情報２１１を一点鎖線の長方形にて示す。また、転送情報２１１は、開始予定等のタイミングに応じて示している。転送情報２１１の左端は開始予定のタイミングを示し、右端は終了期限のタイミングを示す。なお、一点鎖線の矩形は、予約期間を示す。また、実線の長方形は、転送情報の転送データ量のデータを転送する期間（転送期間）を示す。
【０１０３】
図３に示す調停部３１は、転送情報２１１に基づいて、最早開始サイクル数Ｃａ１，最遅開始サイクル数Ｃａ２，転送サイクル数Ｃａ３を算出する。図１０において、［最早］と表記した長方形（以下、単に［最早］とする）は、最早開始サイクル数Ｃａ１にてデータ転送を開始したときの転送期間を示す。［最遅］と表記した長方形（以下、単に［最遅］とする）は、最遅開始サイクル数Ｃａ２にてデータ転送を開始したときの転送期間を示す。最遅の右端はデータ転送を完了するタイミングであり、転送情報２１１の終了期限と一致する。転送期間を示す実線の長方形の長さ（図において左右方向の長さ）は、転送サイクル数Ｃａ３である。
【０１０４】
他の予約転送要求、通常転送要求がない場合、調停部３１は、図４に示すカウンタ５７のカウント値ＣＶが最早開始サイクル数Ｃａ１以上となると、予約転送要求２０１に対する転送許可を処理部２１に対して与える。処理部２１は、転送許可に応答して、バッファ２１ａのデータを出力する。これにより、図１０に示す［最早］のタイミング及び期間において、バッファ２１ａからメモリ１４へデータが転送される。
【０１０５】
次に、図３に示す処理部２１は、バッファ２１ｂのデータをメモリ１４へ転送するために予約転送要求２０２と転送情報２１２を出力する。調停部３１は、カウント値ＣＶに従って予約転送要求２０２に対する転送許可を処理部２１に対して与える。処理部２１は、転送許可に応答して、バッファ２１ｂのデータを出力する。同様に、バッファ２１ａ，２１ｂに対する予約転送要求２０３，２０４と転送情報２１３，２１４が処理部２１から出力され、バッファ２１ａ，２１ｂのデータが転送される。
【０１０６】
次に、通常転送要求がある場合について説明する。
図１１に示すように、予約転送要求２０１を受け付けた後、その予約転送要求２０１に対応するデータ転送を開始する前に、通常転送要求２２１が例えば図３に示す処理部２２から出力される。
【０１０７】
調停部３１は、通常転送要求２２１とその転送情報２３１を受け付け、通常転送が可能か否かを判定する。調停部３１は、転送情報２３１に基づいて転送完了サイクル数Ｎ３Ｄを算出する。そして、調停部３１は、転送完了サイクル数Ｎ３Ｄを、受付済みの予約転送要求２０１の最早開始サイクル数Ｃａ１及び最遅開始サイクル数Ｃａ２と比較し、比較結果に応じて通常転送が可能か否かを判定する。
【０１０８】
図１１において、転送完了サイクル数Ｎ３Ｄは、最早開始サイクル数Ｃａ１より大きく（タイミングが遅い）、最遅開始サイクル数Ｃａ２より小さい（タイミングが早い）。従って、通常転送要求２２１に対するデータ転送は、［最遅］におけるデータ転送の開始タイミングより前に終了する。このため、調停部３１は、通常転送要求２２１に対して転送許可を与える。そして、予約転送要求２０１に対する最早開始サイクル数Ｃａ１を、転送完了サイクル数Ｎ３Ｄと等しくする。これにより、通常転送要求２２１に対するデータ転送２２１Ｔが実施され、続いて予約転送要求２０１に対するデータ転送２１１Ｔが実施される。データ転送２１１Ｔを示す長方形中に、このデータ転送２１１Ｔによりデータが転送されるバッファの符号「２１ａ」を示す。このデータ転送２１１Ｔにおいてデータ転送を完了するタイミングは、予約転送要求２０１における完了期限より前である。従って、リアルタイム性がある処理部２１のデータ転送において転送破綻は発生しない。
【０１０９】
次に、調停部３１は予約転送要求２０２と転送情報２１２を受け付ける。その後、調停部３１は、通常転送要求２２２を受け付け、転送情報２３２に基づいて通常転送が可能か否かを判定する。調停部３１は、転送情報に基づいて転送完了サイクル数Ｎ３Ｄを算出する。そして、調停部３１は、転送完了サイクル数Ｎ３Ｄを、受付済みの予約転送要求２０２の最早開始サイクル数Ｃａ１及び最遅開始サイクル数Ｃａ２と比較し、比較結果に応じて通常転送が可能か否かを判定する。
【０１１０】
図１１において、転送完了サイクル数Ｎ３Ｄは、最早開始サイクル数Ｃａ１及び最遅開始サイクル数Ｃａ２より大きい（タイミングが遅い）。従って、通常転送要求２２２に対するデータ転送は、［最遅］におけるデータ転送の開始タイミングより遅い。このため、調停部３１は、通常転送要求２２２に対する転送許可を保留する。そして、調停部３１は、カウント値に従って予約転送要求２０２に対して転送許可を与える。これにより、予約転送要求２０２に対応するデータ転送２１２Ｔ（バッファ２１ｂ）が実施される。
【０１１１】
次に、調停部３１は、予約転送要求２０３と転送情報２１３を受け付け、その転送情報２１３に基づいて、予約転送要求２０３に対する最早開始サイクル数Ｃａ１，最遅開始サイクル数Ｃａ２，転送サイクル数Ｃａ３を算出する。そして、調停部３１は、最早開始サイクル数Ｃａ１及び最遅開始サイクル数Ｃａ２を、通常転送要求２２２の転送完了サイクル数Ｎ３Ｄと比較する。
【０１１２】
図１１において、転送完了サイクル数Ｎ３Ｄは、最早開始サイクル数Ｃａ１より大きく（タイミングが遅い）、最遅開始サイクル数Ｃａ２と等しい。従って、通常転送要求２２２に対するデータ転送２２２Ｔは、［最遅］におけるデータ転送の開始タイミングにて終了する。このため、調停部３１は、通常転送要求２２２に対して転送許可を与える。そして、予約転送要求２０３に対する最早開始サイクル数Ｃａ１を、転送完了サイクル数Ｎ３Ｄと等しくする。これにより、通常転送要求２２２に対するデータ転送２２２Ｔが実施され、続いて予約転送要求２０３に対するデータ転送２１３Ｔ（バッファ２１ａ）が実施される。このデータ転送２１３Ｔにおいてデータ転送を完了するタイミングは、予約転送要求２０３に対応する転送情報２１３に含まれる完了期限より前である。従って、リアルタイム性がある処理部２１のデータ転送において転送破綻は発生しない。
【０１１３】
次に、複数の予約転送要求に対する調整を説明する。
図１２に示すように、予約転送要求３０１〜３０３と転送情報３１１〜３１３が例えば図３に示す処理部２１から出力され、予約転送要求３２１，３２２と転送情報３３１，３３２が例えば図３に示す処理部２７から出力される。なお、予約転送要求３０１〜３０３を［予約Ａ］とし、予約転送要求３２１，３２２を［予約Ｂ］とする。図１２において、［予約Ａ］と［予約Ｂ］の予約転送要求と転送情報について、それぞれ文字［Ａ］［Ｂ］を付して対応関係を示す。
【０１１４】
図３に示す調停部３１は、［予約Ａ］の転送情報３１１〜３１３に基づいて、最早開始サイクル数，最遅開始サイクル数，転送サイクル数を算出する。算出した各サイクル数に基づく最早転送期間と最遅転送期間を［予約Ａ］の転送期間として示す。同様に、［予約Ｂ］の転送情報３３１，３３２に基づいて、最早開始サイクル数，最遅開始サイクル数，転送サイクル数を算出する。算出した各サイクル数に基づく最早転送期間と最遅転送期間を［予約Ｂ］の転送期間として示す。
【０１１５】
［予約Ａ］の転送情報３１１に基づく最早転送期間３１１Ｆと［予約Ｂ］の転送情報３３１に基づく最早転送期間３３１Ｆは、最早転送期間３１１Ｆの終了タイミングが最早転送期間３３１Ｆの開始タイミングより早いため、互いに干渉しない。［予約Ｂ］の転送情報３３１に基づく最早転送期間３３１Ｆと［予約Ａ］の転送情報３１２に基づく最早転送期間３１２Ｆは、最早転送期間３３１Ｆの終了タイミングが最早転送期間３１２Ｆの開始タイミングより早いため、互いに干渉しない。同様に、［予約Ａ］の転送情報３１１，３１２に基づく最遅転送期間３１１Ｌ，３１２Ｌと［予約Ｂ］の転送情報３３１に基づく最遅転送期間３３１Ｌは、互いに干渉しない。従って、調整後の各転送期間は、転送情報に基づく転送期間と等しい。
【０１１６】
［予約Ａ］の転送情報３１３に基づく最早転送期間３１３Ｆと［予約Ｂ］の転送情報３３２に基づく最早転送期間３３２Ｆは、最早転送期間３１３Ｆの終了タイミングが最早転送期間３３２Ｆの開始タイミングより遅いため、互いに干渉する。このため、図３に示す調停部３１は、［予約Ａ］の最早転送期間３１３Ｆに基づいて、［予約Ｂ］の最早転送期間３３２Ｆを調整する。調停部３１は、［予約Ｂ］の転送期間３３２Ｍの最早開始サイクル数を、［予約Ａ］の最早転送期間３１３Ｆの最早開始サイクル数に、最早転送期間３１３Ｆの転送サイクル数を加算した結果の値と等しくする。これにより、干渉が解消される。
【０１１７】
同様に、［予約Ａ］の転送情報３１３に基づく最遅転送期間３１３Ｌと［予約Ｂ］の転送情報３３２に基づく最遅転送期間３３２Ｌは、最遅転送期間３１３Ｌの終了タイミングが最遅転送期間３３２Ｌの開始タイミングより遅いため、互いに干渉する。このため、図３に示す調停部３１は、［予約Ｂ］の最遅転送期間３３２Ｌに基づいて、［予約Ａ］の最遅転送期間３１３Ｌを調整する。調停部３１は、［予約Ａ］の転送期間３１３Ｍの最遅開始サイクル数を、［予約Ｂ］の最遅転送期間３３２Ｌの最遅開始サイクル数から、［予約Ａの最遅転送期間３１３Ｌの転送サイクル数を減算した結果の値と等しくする。これにより、干渉が解消される。
【０１１８】
次に、転送方法の比較例を説明する。
なお、比較例の説明において用いる部材については、図１，図３に示す各部材と同じ名称及び同じ符号を用いる。
【０１１９】
［比較例１］
図１３（ａ）に示すように、クロック信号ＣＬＫに基づいて図１に示す撮像部１１から画像データＧＤが出力される。図３に示す処理部２１は、バッファ２１ａとバッファ２１ｂに対して画像データを交互に格納する。処理部２１は、バッファ２１ａがフル状態になると、通常転送要求２５１を出力し、バッファ２１ａのデータを転送する（転送期間２５１Ｔ）。同様に、処理部２１は、バッファ２１ｂ，２１ａ，２１ｂがフル状態になると、通常転送要求２５２，２５３，２５４を出力し、データを転送する（転送期間２５２Ｔ，２５３Ｔ，２５４Ｔ）。
【０１２０】
図１３（ｂ）に示すように、他の処理部（例えば、図３に示す処理部２２）から通常転送要求２２１（図において［Ｃ］表記）が出力される。この通常転送要求２２１は、他の処理部の通常転送要求と競合していないため、調停部３１は通常転送要求２２１に対する転送許可を出力し、処理部２２は転送許可に応答してデータを転送する（図において［Ｃ］と表記した転送期間２２１Ｔ）。
【０１２１】
この転送期間２２１Ｔ中に処理部２１は、バッファ２１ａがフル状態になるため、通常転送要求２５１を出力する。調停部３１は、転送期間２２１Ｔが終了した後、処理部２１に対して転送許可を出力する。処理部２１は、転送許可に応答してバッファ２１ａのデータを転送する（転送期間２６１Ｔ）。
【０１２２】
次いで、他の処理部（例えば、図３に示す処理部２３）から通常転送要求２２２（図において［Ｄ］表記）が出力される。この通常転送要求２２２は、他の処理部の通常転送要求と競合していないため、調停部３１は通常転送要求２２２に対する転送許可を出力し、処理部２３は転送許可に応答してデータを転送する（図において［Ｄ］と表記した転送期間２２２Ｔ）。
【０１２３】
この転送期間２２２Ｔ中に処理部２１は、バッファ２１ｂがフル状態になるため、通常転送要求２５２を出力する。調停部３１は、転送期間２２２Ｔが終了した後、処理部２１に対して転送許可を出力する。処理部２１は、転送許可に応答してバッファ２１ａのデータを転送する（転送期間２５２Ｔ）。この転送期間２５２Ｔの終了タイミングは、バッファ２１ａに対してデータの書き込みを開始するタイミングより遅い。従って、この転送方法は、転送破綻を発生させる。
【０１２４】
［比較例２］
図１４（ａ）に示すように、クロック信号ＣＬＫに基づいて図１に示す撮像部１１から画像データＧＤが出力される。図３に示す処理部２１は、バッファ２１ａとバッファ２１ｂに対して画像データを交互に格納する。そして、処理部２１は、バッファ２１ａのデータをメモリ１４へ転送するために予約転送要求２０１と転送開始タイミング及び転送データ量を出力する。調停部３１は、転送開始タイミング及び転送データ量に基づいて予約期間２６１を設定する。そして、調停部３１は、予約期間２６１になると、処理部２１に対して転送許可を出力する。処理部２１は、転送許可に応答してバッファ２１ａのデータを出力する（転送期間２６１Ｔ）。同様に、調停部３１は、処理部２１から出力される予約転送要求２０２，２０３，２０４を応じて予約期間２６２，２６３，２６４を設定し、予約期間２６２〜２６４に従って転送許可を出力する。処理部２１は、調停部３１から出力される転送許可に応答してバッファ２１ｂ．２１ａ，２１ｂのデータを転送する（転送期間２６２Ｔ〜２６４Ｔ）。
【０１２５】
他の処理部（例えば、図３に示す処理部２２）から通常転送要求２２１（図において［Ｃ］表記）が出力される。この通常転送要求２２１に基づくデータの転送期間は、予約期間２６１と予約期間２６２の間の間隔（サイクル数）と等しい。このため、調停部３１は、予約期間２６１の終了後に処理部２２に対して通常転送要求２２１に対する転送許可を出力し、処理部２２は転送許可に従ってデータを転送する（図において［Ｃ］と表記した転送期間２２１Ｔ）。
【０１２６】
また、別の処理部（例えば、図３に示す処理部２３）から通常転送要求２２２（図において［Ｄ］表記）が出力される。この通常転送要求２２２に基づくデータの転送期間は、予約期間２６２と予約期間２６３の間の間隔（サイクル数）、予約期間２６３と予約期間２６４の間の間隔（サイクル数）よりも長い。従って、調停部３１は、通常転送要求２２２に対する転送許可を出力しない。そして、調停部３１は、予約期間２６４の終了後に、通常転送要求２２２に対する転送許可を出力し、処理部２３は転送許可に従ってデータを転送する（図において［Ｄ］と表記した転送期間２２２Ｔ）。従って、この転送方法は、システムにおける処理効率の低下を招く。
【０１２７】
［比較例３］
図１４（ｂ）に示すように、クロック信号ＣＬＫに基づいて図１に示す撮像部１１から画像データＧＤが出力される。処理部２１は、３つのバッファ２１ａ〜２１ｃに対して、画像データを順に格納する。そして、処理部２１は、各バッファ２１ａ〜２１ｃがフル状態になると、各バッファ２１ａ〜２１ｃに対応する通常転送要求２５１〜２５３を出力する。
【０１２８】
この場合、図１３（ｂ）と同様に通常転送要求２２１，２２２が発生する。この場合、通常転送要求２２１に対するデータ転送（転送期間２２１Ｔ）の後に、バッファ２１ａに対するデータ転送（転送期間２５１Ｔ）が実施される。同様に、通常転送要求２２２に対するデータ転送（転送期間２２２Ｔ）の後に、バッファ２１ｂに対するデータ転送（転送期間２５２Ｔ）が実施される。その後、バッファ２１ｃに対するデータ転送を行う（転送期間２５３Ｔ）。これにより、通常転送要求２２１，２２２による転送破綻の発生を抑制することができる。
【０１２９】
しかし、複数の処理部がリアルタイム性のあるデータ転送を行う場合、転送破綻を発生される場合がある。また、図１４（ｂ）では、２つの処理部（例えば、図３に示す処理部２２，２３）が通常転送要求２２１，２２２を出力する場合を示しているが、３つ以上の処理部が通常転送要求を出力する場合、タイミングによって各バッファ２１ａ〜２１ｃに対するデータ転送が間に合わなくなる場合がある。このような場合、更にバッファを追加する必要がある。つまり、処理部に必要なバッファの数等は、処理装置に含まれる処理部の数や処理装置が行う画像処理に応じて変化する。このため、処理装置の全ての処理において転送破綻の発生を抑制するために非常にレアケースも考慮して過剰な量のバッファを備える必要があり、チップ面積の増大等を招く。
【０１３０】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（１）予約処理部４１は、予約転送要求ＲＴに対応する転送情報に従って予約転送期間のタイミング（例えばサイクル数）を算出する。転送情報は、開始予定、終了期限、転送データ量を含む。予約転送期間のタイミングは、最早開始サイクル数，最遅開始サイクル数，転送サイクル数を含む。１つの予約転送要求ＲＴを受け付けた場合、予約処理部４１は、算出した予約転送期間のタイミングを出力する。
【０１３１】
転送調停部４２は、通常転送要求ＮＴを受け付ける。転送調停部４２は、通常転送要求ＮＴに対応する転送情報に従って通常転送期間のタイミング（例えばサイクル数）を算出する。転送調停部４２は、算出した通常転送期間のタイミングを予約転送期間のタイミングと比較し、比較結果に応じて、通常転送要求ＮＴに対するデータ転送が可能か否かを判定する。転送調停部４２は、データ転送が可能と判定した場合、通常転送要求ＮＴに対応する転送許可ＥＮを出力する。そして、転送調停部４２は、通常転送要求ＮＴに対応するデータ転送の期間に基づいて、予約転送期間のタイミングを調整し、調整後のタイミングを出力する。
【０１３２】
従って、予約転送要求ＲＴを受け付けた後に通常転送要求ＮＴを受け付け、その通常転送要求ＮＴのデータ転送が可能と判定した場合、その通常転送要求ＮＴに対する転送許可ＥＮを出力する。これにより、通常転送要求ＮＴに対応するデータ転送を行うことができ、システムにおけるデータ転送の効率の低下を抑制することができる。
【０１３３】
（２）複数の予約転送要求ＲＴを受け付けた場合、予約処理部４１は、各予約転送要求ＲＴに対する予約転送期間が互いに干渉しないように予約転送期間のタイミングを調整し、調整後のタイミングを出力する。予約転送要求ＲＴは、リアルタイム性のあるデータ転送が必要な処理部２１，２７から出力される。これにより、複数の予約転送要求ＲＴに対するデータ転送を実施することができ、リアルタイム性のあるデータ転送における転送破綻の発生を抑制することができる。
【０１３４】
尚、上記各実施形態は、以下の態様で実施してもよい。
・上記実施形態の処理部２１は、図１０に示すように、１つの転送期間２１１Ｔに対して１つの予約転送要求２０１を出力したが、複数回の転送期間を１つの転送要求により予約するようにしてもよい。例えば、処理部２１は、図１５に示すように、１つの周期予約転送要求３０１と転送情報を出力する。転送情報は、最初の予約期間３１１のための開始予定及び終了期限、各予約期間において転送するデータの量、予約期間の周期、実施予定の転送期間の回数を含む。予約期間の周期は、各転送期間の開始予定の間隔（サイクル数）である。転送期間の周期は、例えば図１５では、予約期間３１１の開始タイミングと予約期間３１２の開始タイミングの差である。実施予定の転送期間の回数は、図１５の場合は「４」である。
【０１３５】
調停部３１は、周期予約転送要求３０１と転送情報に基づいて、各予約期間３１１〜３１４の最早開始サイクル数，最遅開始サイクル数，転送完了サイクル数を算出する。そして、図１５に示す通常転送要求２２１，２２２に応じて、開始サイクル数を調整した転送期間３１１Ｔ〜３１４Ｔに応じたタイミングで転送許可を出力する。このような周期予約転送要求によっても、上記実施形態と同様に、リアルタイム性のあるデータ転送における転送破綻の発生を抑制し、通常転送要求に対するデータ転送を行うことで、システムの効率低下を抑制することができる。
【０１３６】
なお、図１５では、１つの処理部（処理部２１）による予約転送を説明したが、複数の処理部（例えば、図３に示す処理部２１，２７）による予約転送を行うようにしてもよい。その場合、処理部２１が周期予約転送要求を出力し、処理部２７が転送毎に予約転送要求を出力するようにしてもよい。また、処理部２１が転送毎に予約転送要求を出力し、処理部２７が周期予約転送要求を出力するようにしてもよい。処理部２１と処理部２７が周期予約転送要求を出力するようにしてもよい。
【０１３７】
なお、図１５に示す４つの転送期間３１１Ｔ〜３１４Ｔにより転送されるデータは、１ライン分の画像データである。１フレームの画像データは複数ラインの画像データを含み、１ラインの画像データは複数画素の画像データを含む。このため、１つの周期予約転送要求により、１ライン分の画像データを転送するようにしてもよい。また、１つの周期予約転送要求により、複数ライン分の画像データを転送するようにしてもよい。また、１つの周期予約転送要求により、１フレームに含まれるライン分の画像データを転送するようにしてもよい。
【０１３８】
・上記実施形態の処理部２１は、バッファ２１ａ，２１ｂの記憶容量とカウント値に基づいて開始予定のサイクル数を算出したが、この算出方法を適宜変更してもよい。例えば、処理部２１は、バッファ２１ａ，２１ｂに対するデータの書き込みを開始してからクロック信号ＣＬＫのカウントを開始し、そのカウント値が所定の転送開始設定値と等しくなると予約転送要求を出力する。このとき、バッファ２１ａ，２１ｂの記憶容量とカウント値の差、つまりバッファ２１ａ，２１ｂの記憶容量と転送開始設定値の差の値を開始予定のサイクル数とする。また、バッファ２１ａ，２１ｂの空き容量値を算出し、予約転送要求を出力するときに、各バッファ２１ａ，２１ｂの空き容量値に基づいて開始予定のサイクル数を算出するようにしてもよい。
【０１３９】
・図４に示す比較演算器６６において、エラーチェックを行うようにしてもよい。例えば、比較演算器６６において、受け付けた２つの予約転送要求に対する転送が実行可能か否かを判定する。比較演算器６６に［予約Ａ］の最早開始サイクル数Ｃａ１と［予約Ｂ］の最早開始サイクル数Ｃｂ１を供給し、図８に示すステップ１４１における処理と同様に、一方の最早開始サイクル数に転送サイクル数を加算した結果の値と他方の最遅開始サイクル数を比較し、実行可能か否かを判定する。そして、実行可能と判定した場合に図４に示す調整ステップ数Ｃａ２ｄ，Ｃｂ２ｄを算出し、選択信号ＳＬ２ａ，ＳＬ２ｂを生成する。一方、実行不可能と判定した場合、エラー信号を出力する。
【０１４０】
・図８に示すステップ１４１を省略してもよい。
・撮像部１１から出力されるデータをメモリ１４に書き込む処理部２１が有するバッファの数を３つ以上としてもよい。同様に、表示部１５に表示データを出力する処理部２７が有するバッファの数を３つ以上としてもよい。
【０１４１】
・バッファ２１ａ，２１ｂの記憶容量を適宜変更してもよい。同様に、バッファ２７ａ，２７ｂの記憶容量を適宜変更してもよい。また、バッファ２１ａ，２１ｂの記憶容量と、バッファ２７ａ，２７ｂの記憶容量を互いに異なる値、つまり処理部２１とメモリ１４の間の１回のデータ転送におけるデータ量と、処理部２７とメモリ１４の間の１回のデータ転送におけるデータ量を互いに異なる値に設定してもよい。
【０１４２】
・転送予約を行う処理部を１つとしてもよい。また、転送予約を行う処理部を３つ以上としてもよい。
・処理部がアクセスする対象を２つ以上としてもよい。また、処理部がアクセスする対象として、揮発性メモリ、不揮発性メモリ、ディスク装置、等を用いても良い。
【０１４３】
・処理部２１〜２７は一例であり、処理部の数、処理部が実行する処理内容を適宜変更してもよい。
・画像データ以外のデータ、例えば音声データを転送するシステムとしてもよい。
【０１４４】
・転送するデータ量を算出するようにしてもよい。例えば、転送のための情報にアドレス情報を含める。アドレス情報は、メモリ１４においてデータが格納された領域、またはデータを格納する領域の先頭アドレスと最終アドレスである。先頭アドレスと最終アドレスに基づいてデータ量を算出し、データ転送に必要な転送期間（サイクル数）を得ることが可能となる。
【符号の説明】
【０１４５】
１１  撮像部
１２  処理装置
１４  メモリ
２１〜２７  処理部
３１  調停部
３２  メモリインタフェース
４１  予約処理部
４２  転送調停部
４３  転送実施部
ＲＴ  予約転送要求
ＮＴ  通常転送要求
ＥＮ  転送許可
ＥＲ  転送許可
【図１】
2014146243.tif 000003
【図２】
2014146243.tif 000004
【図３】
2014146243.tif 000005
【図４】
2014146243.tif 000006
【図５】
2014146243.tif 000007
【図６】
2014146243.tif 000008
【図７】
2014146243.tif 000009
【図８】
2014146243.tif 000010
【図９】
2014146243.tif 000011
【図１０】
2014146243.tif 000012
【図１１】
2014146243.tif 000013
【図１２】
2014146243.tif 000014
【図１３】
2014146243.tif 000015
【図１４】
2014146243.tif 000016
【図１５】
2014146243.tif 000017