(57)【特許請求の範囲】
【請求項１】
メモリに記憶されたデータを転送先に転送するデータ転送装置であって、
前記メモリから出力されるデータをライトポインタが示す位置に記憶し、リードポインタが示す位置のデータを出力するＦＩＦＯメモリと、
前記ライトポインタ及び前記リードポインタを監視し、前記ＦＩＦＯメモリに所定量のデータが記憶可能なときに前記メモリからデータを読み出す要求信号と、前記要求信号に応じて出力される複数のデータに対応する要求アドレスとを出力する制御部と、
前記ライトポインタの値から前記リードポインタの値を減算した減算値を監視し、前記ライトポインタと前記リードポインタに基づいて前記ＦＩＦＯメモリに対して連続するデータの読み出し回数を監視し、前記連続するデータの読み出し回数がしきい値以上、且つ前記減算値が第１所定値以下の場合、前記ライトポインタを前記リードポインタより先行させるように前記ライトポインタを制御し、先行させた前記ライトポインタに応じて前記要求アドレスを制御するエラー処理部と、
を含むデータ転送装置。
【請求項２】
メモリに記憶されたデータを転送先に転送するデータ転送装置であって、
前記メモリから出力されるデータをライトポインタが示す位置に記憶し、リードポインタが示す位置のデータを出力するＦＩＦＯメモリと、
前記ライトポインタ及び前記リードポインタを監視し、前記ＦＩＦＯメモリに所定量のデータが記憶可能なときに前記メモリからデータを読み出す要求信号と、前記要求信号に応じて出力される複数のデータに対応する要求アドレスとを出力する制御部と、
前記ライトポインタの値から前記リードポインタの値を減算した減算値を監視し、前記減算値が負の値であるしきい値以下の場合、前記ライトポインタを前記リードポインタより先行させるように前記ライトポインタを制御し、先行させた前記ライトポインタに応じて前記要求アドレスを制御するエラー処理部と、
を含むデータ転送装置。
【請求項３】
前記エラー処理部は、
前記ライトポインタと前記リードポインタに基づいて前記ＦＩＦＯメモリに対して連続するデータの読み出し回数を監視し、前記読み出し回数と前記減算値とに基づいて前記ライトポインタと前記要求アドレスを制御する、ことを特徴とする請求項２に記載のデータ転送装置。
【請求項４】
前記エラー処理部は、レジスタに記憶した前記ライトポインタを制御するための制御値を前記制御部に出力し、
前記制御部は、前記制御値が第１の値の場合に前記ＦＩＦＯメモリが記憶するデータに応じて前記ライトポインタに第２所定値を加算するように制御し、前記制御値が第２の値の場合に前記ライトポインタに前記第２の値を加算するように制御する、ことを特徴とする請求項１〜３のうちの何れか一項に記載のデータ転送装置。
【請求項５】
前記エラー処理部は、前記ライトポインタと前記要求アドレスを制御した回数を監視し、前記ライトポインタと前記要求アドレスを所定回数制御した場合に、制御信号を出力し、
前記制御部は、前記制御信号に応答して前記ＦＩＦＯメモリからの読み出しを停止し、前記ライトポインタと前記リードポインタと前記要求アドレスを初期化する、
ことを特徴とする請求項１〜４のうちの何れか一項に記載のデータ転送装置。
【請求項６】
前記転送先は表示部であり、
前記メモリには、前記表示部に表示するフレーム単位の画像データが順次記憶され、
前記メモリは、
１回の前記要求信号に応答して前記画像データのデータ量よりも少ない量のデータを出力し、
前記要求アドレスに応答して前記要求アドレスを先頭アドレスとする領域に含まれる画像データを出力し、
前記ＦＩＦＯメモリは、前記表示部の１ラインに表示する複数の画像データを連続的に出力する、
ことを特徴とする請求項１〜５のうちの何れか一項に記載のデータ転送装置。
【請求項７】
メモリに記憶されたデータを転送先に転送するデータ転送方法であって、
前記メモリから出力されるデータをライトポインタが示すＦＩＦＯメモリの位置に記憶し、
前記ＦＩＦＯメモリからリードポインタが示す位置のデータを出力し、
前記ライトポインタ及び前記リードポインタを監視し、前記ＦＩＦＯメモリに所定量のデータが記憶可能なときに前記メモリからデータを読み出す要求信号を出力し、
前記要求信号に応じて出力される複数のデータに対応する要求アドレスを前記メモリに出力し、
前記ライトポインタの値から前記リードポインタの値を減算した減算値を監視し、前記ライトポインタと前記リードポインタに基づいて前記ＦＩＦＯメモリに対して連続するデータの読み出し回数を監視し、前記連続するデータの前記読み出し回数がしきい値以上、且つ前記減算値が第１所定値以下の場合、前記ライトポインタを前記リードポインタより先行させるように前記ライトポインタを制御し、
先行させた前記ライトポインタに応じて前記要求アドレスを制御する、
を含むデータ転送方法。
【請求項８】
メモリをそれぞれアクセスする複数の処理部と、
前記メモリに記憶されたデータを転送先に転送するデータ転送回路と、
前記メモリをアクセスするために前記複数の処理部と前記データ転送回路からそれぞれ出力される要求信号を調停する調停部と、
を含み、
前記データ転送回路は、
前記メモリから出力されるデータをライトポインタが示す位置に記憶し、リードポインタが示す位置のデータを出力するＦＩＦＯメモリと、
前記ライトポインタ及び前記リードポインタを監視し、前記ＦＩＦＯメモリに所定量のデータが記憶可能なときに前記メモリからデータを読み出す要求信号と、前記要求信号に応じて出力される複数のデータに対応する要求アドレスとを出力する制御部と、
前記ライトポインタの値から前記リードポインタの値を減算した減算値を監視し、前記ライトポインタと前記リードポインタに基づいて前記ＦＩＦＯメモリに対して連続するデータの読み出し回数を監視し、前記連続するデータの読み出し回数がしきい値以上、且つ前記減算値が第１所定値以下の場合、前記ライトポインタを前記リードポインタより先行させるように前記ライトポインタを制御し、先行させた前記ライトポインタに応じて前記要求アドレスを制御するエラー処理部と、
を含む、半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
データ転送装置、データ転送方法、及び半導体装置に関する。
【背景技術】
【０００２】
従来、デジタルスチルカメラ等の電子機器は、メモリに格納された画像データを表示する表示部を備えている。電子機器のデータ転送装置は、ＦＩＦＯ（first in first out）方式のメモリを有し、メモリから表示部に転送するデータ転送を調整する（例えば、特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−３７２０８号公報
【特許文献２】特公平６―５９０９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところが、メモリからデータを読み出す処理が遅れると、表示部にデータを出力するタイミングに間に合わなくなる転送破綻が発生する。この転送破綻は表示部における表示画像の乱れを生じさせる。また、転送破綻は、データ転送装置以外の処理装置（例えばＣＰＵ）における処理の増加を招く。
【０００５】
このデータ転送装置で、転送破綻を解消することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一観点によれば、メモリに記憶されたデータを転送先に転送するデータ転送装置であって、前記メモリから出力されるデータをライトポインタが示す位置に記憶し、リードポインタが示す位置のデータを出力するＦＩＦＯメモリと、前記ライトポインタ及び前記リードポインタを監視し、前記ＦＩＦＯメモリに所定量のデータが記憶可能なときに前記メモリからデータを読み出す要求信号と、前記要求信号に応じて出力される複数のデータに対応する要求アドレスとを出力する制御部と、前記ライトポインタの値から前記リードポインタの値を減算した減算値を監視し、前記ライトポインタと前記リードポインタに基づいて前記ＦＩＦＯメモリに対して連続するデータの読み出し回数を監視し、前記連続するデータの読み出し回数がしきい値以上、且つ前記減算値が第１所定値以下の場合、前記ライトポインタを前記リードポインタより先行させるように前記ライトポインタを制御し、先行させた前記ライトポインタに応じて前記要求アドレスを制御するエラー処理部と、を含む。
【発明の効果】
【０００７】
本発明の一観点によれば、転送破綻を解消することができる。
【図面の簡単な説明】
【０００８】
【図１】電子機器のブロック回路図である。
【図２】出力部のブロック回路図である。
【図３】エラー処理部のブロック回路図である。
【図４】（ａ）（ｂ）は出力部の動作を示すタイミング図である。
【図５】（ａ）〜（ｅ）はＦＩＦＯメモリの説明図である。
【図６】（ａ）（ｂ）はデータ量の変化を示す説明図である。
【図７】表示画像の説明図である。
【発明を実施するための形態】
【０００９】
以下、一実施形態を図１〜図７に従って説明する。
図１に示す電子機器１０は、例えばデジタルスチルカメラであり、撮像部１１と、画像処理プロセッサ１２と、メモリ１３と、操作部１４と、表示部１５とを備えている。
【００１０】
撮像部１１は、例えばＣＣＤやＣＭＯＳイメージセンサ等の撮像素子を有し、複数の撮像素子は例えば二次元配列されている。撮像部１１は、撮像素子により撮像した１画面（１フレーム）の画像データを、フレーム毎に出力する。
【００１１】
画像処理プロセッサ１２は、撮像部１１から入力される画像データをメモリ１３に一時的に格納する。このメモリ１３は、複数フレームの画像データを記憶可能なメモリ容量のメモリである。すなわち、メモリ１３は共通フレームメモリ（作業メモリ）として機能する。このメモリ１３は、例えばシンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などの書き替え可能なメモリである。画像処理プロセッサ１２は、メモリ１３に格納した画像データに対して各種画像処理を施す。すなわち、画像処理プロセッサ１２は、メモリ１３から読み出した画像データに対して各種画像処理を施し、処理後の画像データをメモリ１３に格納する。
【００１２】
操作部１４は、ユーザにより操作される各種スイッチを有している。この各種スイッチは、例えば表示部１５に表示する画像の選択、メモリ１３に記憶した画像データに対する処理の設定、撮影条件の設定、画像データの消去、等を行うために使用される。画像処理プロセッサ１２は、メモリ１３に格納した画像データを表示部１５に出力する。表示部１５は、液晶や有機ＥＬ（Electronic Luminescence）などを用いた表示器である。
【００１３】
処理装置１２は、メモリ１３に格納された画像データを処理するための画像処理部２０、画像処理部２０は、画像データに対する処理に応じた複数の処理部２１〜２７を含む。また、処理装置１２は、中央処理装置（以下、ＣＰＵ）３１、メモリ１３と接続されたメモリコントローラ３２、表示部１５と接続された出力部３３を備えている。画像処理部２０内の各処理部２１〜２７と、ＣＰＵ３１と、メモリコントローラ３２と、出力部３３は、バス３４によって互いに接続されている。このバス３４は、アドレスバス、コントロールバス、データバス等を含む。
【００１４】
ＣＰＵ３１は、各回路を統括制御する。また、ＣＰＵ３１は、操作部１４から入力される操作情報に従って各種情報を対応する処理部２１〜２７，出力部３３のレジスタに格納する。各種情報は、撮影条件、１フレームの画素数、各処理部２１〜２７，出力部３３における動作に必要な情報を含む。各処理部２１〜２７，出力部３３は、初期化時や操作部１４の操作に従って設定された情報に基づいて動作する。
【００１５】
メモリコントローラ３２は、メモリ１３への書き込み要求に応じてメモリ１３に対するデータの書き込みを行う。また、メモリコントローラ３２は、メモリ１３への読み出し要求に応じてメモリ１３に対するデータの読み出しを行う。
【００１６】
出力部３３は、メモリ１３に格納された各フレームの画像データを表示部１５に順次転送する。メモリ１３には、複数ラインの画素データが各ライン毎に格納されている。１ラインは１フレームの水平方向の画素列である。表示部１５は、水平同期信号と垂直同期信号に従って各フレーム画像を表示する。従って、出力部３３は、表示部１５の表示順序に従ってメモリ１３の画像データを、表示のタイミングに応じて転送する。
【００１７】
各処理部２１〜２７の一例を説明する。
処理部２１はプリプロセス部２１であり、撮像部１１から入力される画像データに対し、例えばホワイトバランス調整やゲイン調整、欠陥信号の補正などの前処理を施す。処理部２２は色空間変換部であり、プリプロセス部２１により前処理されたＲＧＢ形式の画像データ（ベイヤデータ）をＹＣｂＣｒ形式の画像データに変換する。これら処理部２１，２２により処理された１フレームの画像データは、メモリコントローラ３２を介してメモリ１３に格納される。処理部２３はコーデックであり、メモリ１３に格納された画像データを読み出し、その画像データを所定の方式（例えばＪＰＥＧ（Joint Photographic Experts Group）方式）により符号化し、符号化後の画像データ（符号化データ）をメモリ１３に格納する。
【００１８】
処理部２４は解像度変換部であり、部分画像データの画像サイズ（解像度）を拡大又は縮小する解像度変換処理を実行する。処理部２５は色調変換部であり、部分画像データの色調をセピアやモノクロ等に変換する色調変換処理を実行する。処理部２６はエッジ強調部であり、部分画像データに対して画像の輪郭（エッジ）を強調するエッジ強調処理を実行する。処理部２７はノイズ補正部であり、部分画像データに含まれるノイズを除去するノイズ補正処理を実行する。なお、画像処理部２０に含まれる処理部２１〜２７、各処理部２１〜２７の処理内容は一例を示すものであり、画像処理部２０が含む処理部の種類や処理内容は、適宜設定されてもよい。
【００１９】
各処理部２１〜２７と出力部３３は、メモリ１３をアクセスするための要求を出力する。例えば、処理部２１〜２７は、メモリ１３にデータを書き込むために、書き込み要求を出力する。また、処理部２２〜２７は、メモリ１３からデータを読み出すために、読み出し要求を出力する。同様に、出力部３３は、メモリ１３から画像データを読み出すための読み出し要求を出力する。
【００２０】
メモリコントローラ３２は、メモリ１３に対するアクセス要求を調停するアービタとしての機能を有している。
メモリコントローラ３２は、各処理部２１〜２７、出力部３３から出力され競合する要求を、例えば各処理部２１〜２７、出力部３３に応じて設定された優先度に従って調停する。そして、メモリコントローラ３２は、調停結果を各処理部２１〜２７，出力部３３に出力する。
【００２１】
書き込み要求が許可された処理部２１〜２７は、メモリ１３に対する書き込みの制御信号とデータを出力し、メモリコントローラ３２は、その制御信号に従ってデータをメモリ１３に格納する。読み出し要求が許可された処理部２２〜２７，出力部３３は、メモリ１３からデータを読み出すための制御信号を出力し、メモリコントローラ３２は、その制御信号に従ってメモリ１３から読み出したデータを要求元の処理部２２〜２７、出力部３３に出力する。
【００２２】
次に、出力部３３の構成を説明する。
図２に示すように、出力部３３は、ＦＩＦＯメモリ４１と、データ処理部４２と、表示用インタフェース（「表示用Ｉ／Ｆ」と表記）４３と、ＦＩＦＯ制御部４４と、エラー処理部４５を備えている。
【００２３】
ＦＩＦＯメモリ４１は、先に書き込んだデータの順に、先に読み出されるメモリである。ＦＩＦＯメモリ４１は、ライトポインタＷＰが示す位置（アドレス）に入力データを記憶し、ライトポインタＷＰを更新する。また、ＦＩＦＯメモリ４１は、リードポインタＲＰが示す位置（アドレス）のデータを読み出し、リードポインタＲＰを更新する。ポインタＷＰ，ＲＰの更新は、次のデータを書き込む位置又は読み出す位置を示す値に変更することである。データを順次書き込む又は読み出す場合、ＦＩＦＯメモリ４１は、各ポインタＷＰ，ＲＰの値に所定値（例えば「１」）を加算した結果を、次のポインタＷＰ，ＲＰの値とする。
【００２４】
ＦＩＦＯメモリ４１は、ライトポインタＷＰ及びリードポインタＲＰを循環的に管理する。ＦＩＦＯメモリ４１は、所定のメモリ容量（例えば５１２バイト）のメモリである。ＦＩＦＯメモリ４１は、後述するリセット信号ＲＳＴに応答してリードポインタＲＰ及びライトポインタＷＰの値を所定値（例えば「０」）にリセットする。リセットされたリードポインタＲＰ及びライトポインタＷＰが示す位置を先頭位置とする。
【００２５】
ＦＩＦＯメモリ４１は、１つの入力データをライトポインタＷＰが示す位置に記憶し、ＦＩＦＯ制御部４４から供給されるポインタ加算値ＷＰＣに基づいてライトポインタＷＰを更新する。例えば、ポインタ加算値ＷＰＣが「１」の場合、加算結果のライトポインタＷＰは、先に入力データを格納した領域に続く領域を示す。また、ポインタ加算値ＷＰＣが「ｍ」の場合、加算結果のライトポインタＷＰは、先に入力データを格納した領域からｍ番目の領域を示す。つまり、ライトポインタＷＰは、ポインタ加算値ＷＰＣに応じて数（＝ｍ−１）の領域を飛び越した位置を示す。そして、ＦＩＦＯメモリ４１は、ライトポインタＷＰがメモリ容量に対応する値ｎ（例えば５１２）以上になると、ライトポインタＷＰからその値ｎを減算した結果をライトポインタＷＰの値とする。従って、ＦＩＦＯメモリ４１は、ライトポインタＷＰをメモリ容量に応じた値（例えば０〜５１１）で循環させる。
【００２６】
ＦＩＦＯメモリ４１は、ＦＩＦＯ制御部４４から所定レベル（例えばＨレベル）のリード許可信号ＲＥに応答してデータの読み出しを行い、例えばＬレベルのリード許可信号ＲＥに応答してデータの読み出しを停止する。そして、ＦＩＦＯメモリ４１は、データの読み出しが許可されている間、表示用Ｉ／Ｆ４３の要求タイミング（例えば、表示用のクロック信号）に応答してデータを順次読み出す。
【００２７】
つまり、ＦＩＦＯメモリ４１は、リードポインタＲＰが示す位置のデータを出力し、次の読み出しデータの位置を示すようにリードポインタＲＰを更新（例えば、リードポインタＲＰを「＋１」）する。そして、ＦＩＦＯメモリ４１は、リードポインタＲＰの値がメモリ容量に対応する値（例えば５１２）になると、リードポインタＲＰの値をリセット（＝０）にする。従って、ＦＩＦＯメモリ４１は、リードポインタＲＰをメモリ容量に応じた値（例えば０〜５１１）で循環させる。
【００２８】
データ処理部４２は、ＦＩＦＯメモリ４１から出力されるデータＤＴ２を処理し、処理後のデータＤＴ３を出力する。データ処理部４２が実施する処理は、例えば、補正処理である。データ処理部４２は、例えば、表示部１５の表示特性に基づく階調補正処理を行い、入力した画像データに応じて直線的に階調（輝度や色）が変化するように、入力した画像データを補正する。そして、データ処理部４２は、処理後のデータを出力する。
【００２９】
表示用Ｉ／Ｆ４３は、クロック信号ＣＬＫに基づいて、表示部１５に１フレームの画像を表示するための同期信号を生成する。同期信号は、フレームの開始を示す垂直同期信号Ｖsyncと、各ラインの開始を示す水平同期信号Ｈsyncを含む。各同期信号Ｖsync，Ｈsyncの周期は、表示部１５に応じて設定されている。表示用Ｉ／Ｆ４３は、同期信号Ｖsync，Ｈsyncを出力するとともに、データ処理部４２から受け取るデータＤＴ３を、同期信号に応じて出力する。
【００３０】
ＦＩＦＯ制御部４４は、同期信号Ｖsync，Ｈsyncを受け取る。また、ＦＩＦＯ制御部４４は、ＦＩＦＯメモリ４１からライトポインタＷＰとリードポインタＲＰを受け取る。ＦＩＦＯ制御部４４は、各同期信号Ｖsync，Ｈsyncと各ポインタＷＰ，ＲＰに基づいて、ＦＩＦＯメモリ４１からデータの読み出しを開始するタイミングを制御する。
【００３１】
また、ＦＩＦＯ制御部４４は、各ポインタＷＰ，ＲＰに基づいてＦＩＦＯメモリ４１の空き容量を監視し、ＦＩＦＯメモリ４１に対するデータの書き込みを制御する。詳述すると、ＦＩＦＯ制御部４４は、ライトポインタＷＰの値とリードポインタＲＰの値により、空き容量を算出する。そして、ＦＩＦＯ制御部４４は、空き容量と、メモリ１３から読み出すデータ量とを比較する。メモリコントローラ３２は、１回の読み出し要求に対して、メモリ１３から所定量（例えば６４バイト）のデータを読み出し、出力部３３に出力する。つまり、１回の読み出し要求に対応する所定量のデータが、メモリ１３から出力部３３に転送される。このような転送をバースト転送といい、転送されるデータの量をバースト転送量という。つまり、ＦＩＦＯ制御部４４は、空き容量とバースト転送量とを比較し、空き容量がバースト転送量より多くなると、メモリコントローラ３２に対して読み出し要求を出力する。
【００３２】
空き容量の算出例を説明する。
一例として、ＦＩＦＯメモリ４１の容量を、図５（ａ）に示すように「１６」とする。この場合、ライトポインタＷＰ及びリードポインタＲＰは、それぞれ「０」〜「１５」の値を取る。初期化された状態において、ライトポインタＷＰ及びリードポインタＲＰは、最初の領域「０」を示す。
【００３３】
図５（ｂ）に示すように、ＦＩＦＯメモリ４１は、１つの入力データをライトポインタＷＰが示す領域に格納し、ライトポインタＷＰを更新する。更新後のライトポインタＷＰは「１」の領域を示す。
【００３４】
第一例として、図５（ｃ）に示すように、ライトポインタＷＰが領域「１３」を示し、リードポインタＲＰが領域「２」を示す。従って、ハッチングを付した領域、即ち領域「２」から領域「１２」までデータが格納されている。
【００３５】
この場合、ＦＩＦＯ制御部４４は、ライトポインタＷＰの値からリードポインタＲＰの値を減算してデータ量を算出する。そして、ＦＩＦＯ制御部４４は、ＦＩＦＯメモリ４１の容量「１６」からデータ量を減算して空き容量を算出する。図５（ｃ）に示す状態の場合、データ量は「１１」（＝１３−２）となり、空き容量は「５」（＝１６−１１）となる。
【００３６】
第二例として、図５（ｄ）に示すように、ライトポインタＷＰが領域「４」を示し、リードポインタＲＰが「１１」を示す。従って、ハッチングを付した領域、即ち領域「１１」から領域「１５」と、領域「０」から領域「３」にデータが格納されている。
【００３７】
この場合、ＦＩＦＯ制御部４４は、ライトポインタＷＰにＦＩＦＯメモリ４１のメモリ容量（＝１６）を加算した値（＝２０＝４＋１６）からリードポインタＲＰの値（＝１１）を減算してデータ量（＝９）を算出する。そして、ＦＩＦＯ制御部４４は、ＦＩＦＯメモリ４１のメモリ容量とデータ量とから空き容量「７」（＝１６−９）を算出する。
【００３８】
メモリコントローラ３２は、ＦＩＦＯ制御部４４から出力される読み出し要求を受け付け、調停結果をＦＩＦＯ制御部４４に出力する。アクセスの許可を受けたＦＩＦＯ制御部４４は、１回の読み出し要求に応じて出力される複数のデータが格納された領域の先頭アドレスを要求アドレスＲＡＤとして出力する。この先頭アドレスは、読み出しアドレスとしてＦＩＦＯ制御部４４に記憶されている。ＦＩＦＯ制御部４４は、要求アドレスＲＡＤを出力すると、次の読み出しアドレスを記憶する。つまり、ＦＩＦＯ制御部４４は、要求アドレスＲＡＤにバースト転送量を加算し、加算結果の読み出しアドレスを記憶する。
【００３９】
表示部１５に表示する１つのフレームに含まれる画像データの数は、表示部１５の表示画素数と等しい。そして、メモリ１３には、表示部１５に表示するための画像データを格納する領域が設定されている。なお、この領域は、複数フレームの画像データを格納可能な領域として設定されることがある。出力部３３には、１つのフレームの画像データを格納する領域の先頭アドレスが設定されている。初期化時に、出力部３３は、この領域の先頭アドレスを読み出しアドレスに設定する。そして、出力部３３は、読み出し要求とともに、読み出しアドレスを要求アドレスＲＡＤとしてメモリコントローラ３２に出力する。そして、出力部３３は、出力した要求アドレスＲＡＤにバースト転送量を加算し、加算結果の読み出しアドレスを記憶する。
【００４０】
メモリコントローラ３２は、要求アドレスＲＡＤに基づくアドレスＡＤＤと読み出しのための制御信号をメモリ１３に出力する。メモリ１３は、そのアドレスＡＤＤと制御信号に応答して、アドレスＡＤＤを先頭アドレスとするメモリ領域のデータＲＤを出力する。メモリ１３から出力されたデータＲＤは、メモリコントローラ３２を介してデータＤＴ１として出力部３３のＦＩＦＯメモリ４１に供給され、ＦＩＦＯメモリ４１は、そのデータＤＴ１を記憶する。
【００４１】
また、ＦＩＦＯ制御部４４は、ライトポインタＷＰとリードポインタＲＰをエラー処理部４５に出力する。エラー処理部４５は、両ポインタＷＰ，ＲＰに基づいてＦＩＦＯ制御部４４を制御するための情報をＦＩＦＯ制御部４４に出力する。ＦＩＦＯ制御部４４に対する制御は、ライトポインタＷＰ、要求アドレスＲＡＤ、読み出し動作の制御を含む。
【００４２】
次に、エラー処理部４５の構成を説明する。
図３に示すように、エラー処理部４５は、ＦＩＦＯ監視カウンタ５１と、連続リードカウンタ５２と、第１の処理部５３と、処理回数カウンタ５４と、第２の処理部５５とを備えている。
【００４３】
ＦＩＦＯ監視カウンタ５１には、ライトポインタＷＰとリードポインタＲＰが入力される。ＦＩＦＯ監視カウンタ５１は、ライトポインタＷＰとリードポインタＲＰの変化に応じてカウント値をカウントアップ又はカウントダウンする。詳述すると、ＦＩＦＯ監視カウンタ５１は、ライトポインタＷＰが更新されると、その更新された値に応じてカウント値をカウントアップし、リードポインタＲＰが更新されるとカウント値をカウントダウン（−１）する。ＦＩＦＯメモリ４１に１つのデータが格納されると、ライトポインタＷＰが更新される、つまりＦＩＦＯメモリ４１に格納されたデータの量が増加する。ＦＩＦＯメモリ４１から１つのデータが読み出されると、リードポインタＲＰが更新される、つまりＦＩＦＯメモリ４１に格納されたデータの量が減少する。従って、ＦＩＦＯ監視カウンタ５１のカウント値は、ＦＩＦＯメモリ４１に格納されたデータの量に対応する。ＦＩＦＯ監視カウンタ５１は、カウント値ＣＤ１（カウント情報）を出力する。
【００４４】
ＦＩＦＯ監視カウンタ５１が出力するカウント値ＣＤ１は、符号ビットを有している。つまり、カウンタ値ＣＤ１は、正の値又は負の値をとる。上記したように、カウンタ値ＣＤ１は、ＦＩＦＯメモリ４１に格納されたデータ量を示す。正の値のカウンタ値ＣＤ１は、リードポインタＲＰよりもライトポインタＷＰが大きく、ライトポインタＷＰがリードポインタＲＰより先行していることを示す。負の値のカウンタ値ＣＤ１は、ライトポインタＷＰよりもリードポインタＲＰが大きく、リードポインタＲＰがライトポインタＷＰより先行している、つまり、転送が破綻していることを示す。
【００４５】
連続リードカウンタ５２には、ライトポインタＷＰとリードポインタＲＰが入力される。連続リードカウンタ５２は、ライトポインタＷＰとリードポインタＲＰの変化に応じてカウント値をカウントアップ又はカウントダウンする。詳述すると、連続リードカウンタ５２は、リードポインタＲＰが更新されるとカウント値をカウントアップ（＋１）し、ライトポインタＷＰが更新されるとカウント値をリセット（＝０）する。従って、連続リードカウンタ５２のカウント値は、ＦＩＦＯメモリ４１からデータを読み出す処理が連続する回数を示す。連続リードカウンタ５２は、カウント値ＣＤ２（カウント情報）を出力する。
【００４６】
第１の処理部５３は、ＦＩＦＯ監視カウンタ５１から出力されるカウント値ＣＤ１を受け取るとともに、レジスタ５６に設定されたしきい値Ｄｔｈを受け取る。しきい値Ｄｔｈは、例えば、転送破綻が生じたときに、ライトポインタＷＰより先行するリードポインタＲＰに対して許容される限度値として設定される。転送破綻が生じても、ライトポインタＷＰとリードポインタＲＰの相対差によっては、メモリ１３から読み出されたデータがＦＩＦＯメモリ４１に書き込まれると、転送破綻が解消される場合がある。一方、相対差が例えば、１回の要求に応じてメモリ１３から読み出されるデータの数（バースト数）よりも大きい場合、入力データをＦＩＦＯメモリ４１に書き込んでも転送破綻が解消されない。従って、しきい値Ｄｔｈは、このように、転送破綻が解消されないような相対差に基づいて設定された値であり、負の値に設定されている。
【００４７】
第１の処理部５３は、カウント値ＣＤ１としきい値Ｄｔｈとに応じて通常処理又は復帰処理を実行する。詳述すると、第１の処理部５３は、カウント値ＣＤ１としきい値Ｄｔｈとを比較する。そして、第１の処理部５３は、例えばカウント値ＣＤ１がしきい値Ｄｔｈ以上のとき、通常処理を実行する。即ち、第１の処理部５３は、第１の値の加算値ＷＡを出力する。第１の加算値は、ＦＩＦＯメモリ４１に書き込む入力データのデータ量に対応し、入力データの書き込みにより更新されるライトポインタＷＰの変化量に対応する。例えば、１つの入力データをＦＩＦＯメモリ４１に書き込むと、ライトポインタＷＰが「＋１」される。このような場合、第１の加算値は、ライトポインタＷＰが変化する量、即ち「１」に設定されている。また、第１の処理部５３は、例えばＬレベルの実行フラグＥＦを出力する。
【００４８】
また、第１の処理部５３は、カウント値ＣＤ１がしきい値Ｄｔｈ以下の値のとき、復帰処理を実行する。即ち、第１の処理部５３は、第２の値（飛び越し設定値）の加算値ＷＡを出力する。第２の値は、レジスタ５６に設定された加算値ＡＶである。この加算値ＡＶは、リードポインタＲＰがライトポインタＷＰより先行したとき、そのライトポインタＷＰをリードポインタＲＰより先行させるために必要な値である。加算値ＡＶは、例えば、ＦＩＦＯメモリ４１から読み出すデータの間隔や、単位時間当りにＦＩＦＯメモリ４１から読み出すデータの数に応じて設定されている。また、第１の処理部５３は、例えばＨレベルの実行フラグＥＦを出力する。
【００４９】
また、第１の処理部５３は、連続リードカウンタ５２から出力されるカウント値ＣＤ２を受け取るとともに、レジスタ５６に設定されたしきい値Ｃｔｈを受け取る。しきい値Ｃｔｈは、例えば、１回の要求に応じてメモリ１３から読み出されるデータの数（バースト数）の整数倍の値が設定される。上記したように、ＦＩＦＯ制御部４４は、ＦＩＦＯメモリ４１の空き容量がバースト数以上になると、メモリ１３からデータを読み出すために読み出し要求をメモリコントローラ３２に出力する。
【００５０】
メモリコントローラ３２は、出力部３３のＦＩＦＯ制御部４４から出力される読み出し要求と、他の処理部２１〜２７（図１参照）から出力される要求とが競合する場合、各処理部２１〜２７と出力部３３に対して設定された優先度に従って競合する要求を調停する。例えば、撮像部１１から出力される画像データをメモリ１３に格納する処理は優先度が他の処理部の優先度より高く設定されている。従って、競合する要求の数が多い場合などでは、ＦＩＦＯ制御部４４の読み出し要求が許可されない状態が続く。このような場合に、転送破綻が発生した場合、第１の処理部５３は、直ちに復帰処理を実行する。このため、しきい値Ｃｔｈは、ＦＩＦＯ制御部４４の読み出し要求が許可されない状態を検出するように設定されている。
【００５１】
第１の処理部５３は、カウント値ＣＤ２としきい値Ｃｔｈとの比較結果と、カウント値ＣＤ１に基づいて、上記した通常処理又は復帰処理を実行する。詳述すると、第１の処理部５３は、カウント値ＣＤ２がしきい値Ｃｔｈ未満のとき、又はカウント値ＣＤ１が所定値以上のとき、通常処理を実行する。また、第１の処理部５３は、カウント値ＣＤ２がしきい値Ｃｔｈ以上、且つカウント値ＣＤ１が所定値（例えば「０」）以下のとき、復帰処理を実行する。つまり、第１の処理部５３は、ＦＩＦＯメモリ４１のリード動作が所定の回数（しきい値Ｃｔｈ）以上連続し、転送破綻した場合に、復帰処理を実行する。
【００５２】
ＦＩＦＯ制御部４４は、第１の処理部５３から出力される加算値ＷＡと等しいポインタ加算値ＷＰＣをＦＩＦＯメモリ４１に出力する。また、ＦＩＦＯ制御部４４は、加算値ＷＡが第２の値（飛び越し設定値）の場合、記憶している読み出しアドレスに加算値ＷＡを加算し、加算結果の要求アドレスＲＡＤを出力する。これにより、ＦＩＦＯ制御部４４は、第２の値を加算したライトポインタＷＰに対応するデータを図２に示すメモリ１３から読み出す。
【００５３】
例えば、図５（ｅ）に示すように、ＦＩＦＯメモリ４１のメモリ容量を、図５（ａ）〜（ｄ）と同様に「１６」とする。そして、ライトポインタＷＰは「３」の領域を示し、リードポインタＲＰは「４」の領域を示している。従って、リードポインタＲＰがライトポインタＷＰより先の領域を示す、つまり、リードポインタＲＰがライトポインタＷＰより先行している。
【００５４】
この場合、ＦＩＦＯ制御部４４は、第１の処理部５３から出力される加算値ＷＡと等しいポインタ加算値ＷＰＣをＦＩＦＯメモリ４１に出力する。ポインタ加算値ＷＰＣを「８」とすると、ライトポインタＷＰは「１１」（＝３＋８）となる。この結果、ライトポインタＷＰは、リードポインタＲＰより先行する。
【００５５】
そして、ＦＩＦＯ制御部４４は、ライトポインタＷＰに対応するデータを読み出すために、要求アドレスＲＡＤを生成する。つまり、ＦＩＦＯ制御部４４は、ライトポインタＷＰが示す領域「１１」に書き込むデータを図２に示すメモリ１３から読み出すために要求アドレスＲＡＤを生成する。
【００５６】
図５（ｅ）に示すように、ライトポインタＷＰが領域「３」を示すとき、ＦＩＦＯ制御部４４は、ライトポインタＷＰに対応して領域「３」に書き込むデータをメモリ１３から読み出すように、要求アドレスＲＡＤを生成する。メモリ１３は、要求アドレスＲＡＤを先頭アドレスとする所定サイズの領域に含まれる複数のデータを出力する。例えば、１回のバースト転送のデータ量を「４」とすると、メモリ１３は、ＦＩＦＯメモリ４１の領域「３」〜「６」に書き込むデータを１回の読み出し要求に応答して出力する。
【００５７】
そして、ライトポインタＷＰを「３」から「１１」に強制的に変更することで、領域「３」〜「１０」にはデータが書き込まれない。言い換えれば、ＦＩＦＯ制御部４４は、ライトポインタＷＰをリードポインタＲＰより先行させるために、複数の領域「３」〜「１０」を飛び越してライトポインタＷＰを設定し、飛び越した領域「３〜６」に対応するデータの読み出しを取り消す。
【００５８】
処理回数カウンタ５４は、第１の処理部５３から出力される実行フラグＥＦの回数をカウントする。例えば、処理回数カウンタ５４は、Ｈレベルの実行フラグＥＦに応答してカウント値をカウントアップ（＋１）する。そして、処理回数カウンタ５４は、カウント値（カウント情報）を出力する。第１の処理部５３は、復帰処理を実行する毎に所定レベルの実行フラグＥＦを出力する。従って、処理回数カウンタ５４のカウント値は、第１の処理部５３が復帰処理を実行した回数を示す。なお、処理回数カウンタ５４は、カウント値を、１つのフレームの開始時に、例えば垂直同期信号Ｖsyncによってクリアする。
【００５９】
第２の処理部５５は、処理回数カウンタ５４から出力されるカウント値ＣＤ３を受け取るとともに、レジスタ５６に設定されたしきい値Ｅｔｈを受け取る。しきい値Ｅｔｈは、例えば、１つのフレームにおいて実行される復帰処理の回数に対する許容値として設定される。
【００６０】
第２の処理部５５は、カウント値ＣＤ３としきい値Ｅｔｈとに応じて通常処理又は復帰処理を実行する。詳述すると、第２の処理部５５は、カウント値ＣＤ３としきい値Ｅｔｈとを比較する。そして、第２の処理部５５は、カウント値ＣＤ３がしきい値Ｅｔｈ未満のときに通常処理を実行し、カウント値ＣＤ３がしきい値Ｅｔｈ以上のときに復帰処理を実行する。第２の処理部５５は、通常処理において、例えばＬレベルのリセット信号ＲＳＴを出力し、復帰処理において、例えばＨレベルのリセット信号ＲＳＴを出力する。
【００６１】
ＦＩＦＯ制御部４４は、Ｌレベルのリセット信号ＲＳＴが供給される間、処理を継続する。そして、ＦＩＦＯ制御部４４は、Ｈレベルのリセット信号ＲＳＴに応答して、リード処理の停止と初期化を行う。即ち、ＦＩＦＯ制御部４４は、現在のフレームに対する処理を中断し、次フレームの画像データまで待機する。そして、ＦＩＦＯ制御部４４は、読み出しアドレスを初期化（１つのフレームの画像データの先頭アドレスに設定）する。また、ＦＩＦＯ制御部４４は、ＦＩＦＯメモリ４１のライトポインタＷＰとリードポインタＲＰを初期化する。そして、ＦＩＦＯ制御部４４は、次のフレームの表示開始のタイミングに応じて、メモリ１３からのデータ読み出しと、ＦＩＦＯメモリ４１に対する書き込み動作、読み出し動作を再開する。
【００６２】
尚、ＦＩＦＯ監視カウンタ５１は、第１の処理部５３が破綻処理を行うとき、その第１の処理部５３が出力する加算値ＷＡをカウント値に加算する。これにより、加算値ＷＡに基づくポインタ加算値ＷＰＣが加算されたライトポインタＷＰとリードポインタＲＰとの相対的な差分値と、カウント値とのずれを補正する。
【００６３】
次に、出力部３３におけるデータ転送のタイミングについて説明する。
出力部３３は、表示用の画像データをメモリ１３から読み出し、表示部１５に出力する。従って、表示部１５の表示能力（表示画素数）に応じた量のデータをメモリ１３から表示部１５にデータ転送する。
【００６４】
なお、図１に示す電子機器１０において、例えば、撮像部１１に含まれる撮像素子の数（撮像画素数）と、表示部１５に含まれる表示画素の数が異なる場合がある。このような場合、例えば、図１に示す画像処理部２０の解像度変換部２４は、画像データのサイズ（縦横の画素数）に対し、表示部１５の表示画素数に応じてサイズを変更した表示用の画像データを生成する。そして、解像度変換部２４は、生成した表示用の画像データをメモリ１３に格納する。出力部３３は、この表示用の画像データをメモリ１３から読み出し、表示部１５に出力する。
【００６５】
出力部３３は、出力クロック信号に同期して１ライン分のデータを出力する。メモリ１３から１ライン分の画像データの読み出しを開始するタイミングは、１ライン分のデータ数に応じて、表示部１５に必要とされるタイミングから、出力部３３におけるレイテンシ、つまり出力部３３が転送に要する時間を考慮して設定されている。
【００６６】
例えば、表示画素数の少ない表示部１５の場合、図４（ａ）に示すように、１ライン分の画像データＬＤ１ａ，ＬＤ１ｂのデータ量が少ない。この画像データＬＤ１ａ，ＬＤ１ｂを出力する期間Ａ１は水平同期信号Ｈsyncの周期と比べて短い。従って、水平同期信号Ｈsyncを受けた後、メモリ１３からデータの読み出しを開始しても、十分に間に合う。
【００６７】
表示画素数が多い表示部１５の場合、図４（ｂ）に示すように、１ライン分の画像データＬＤ２ａ，ＬＤ２ｂのデータ量が多い。この画像データＬＤ２ａ，ＬＤ２ｂを出力する期間Ａ２は水平同期信号Ｈsyncの周期に近くなる。この場合、水平同期信号Ｈsyncより先に、メモリ１３からデータの読み出しを開始しなければならない。また、１ライン分の画像データの出力終了よりも先に次のラインのためのデータの読み出しを開始しなければならない。
【００６８】
また、出力部３３がメモリ１３からデータを読み出すための読み出し要求ＲＱの優先度は、他の処理部２１〜２７の要求における優先度よりも低く設定されていることが多い。これは、例えば、１フレームの画像データを記録してから次に撮影が可能となるまでの時間や、複数のフレームを連続的に記録する処理などのために、メモリ１３に画像データを格納する処理や、圧縮処理などを優先するためである。従って、メモリ１３に対する要求が競合すると、出力部３３の読み出し要求ＲＱからメモリ１３に対してアクセスが許可されるまでの時間が長くなり、その分１ライン分の画像データを読み出す期間が長くなる。従って、画像データＬＤ２ａの転送終了から、次のラインのための画像データＬＤ２ｂの転送開始までのブランク期間Ｂ２は、相対的に短くなる。
【００６９】
すると、ＦＩＦＯメモリ４１に保持されるデータ量が少なくなり、リードポインタＲＰがライトポインタＷＰに近づく。この結果、リードポインタＲＰがライトポインタＷＰよりも先行する、所謂転送破綻が発生し易くなる。
【００７０】
次に、上記のように構成された出力部３３の作用を説明する。
出力部３３は、メモリ１３から出力されたデータをライトポインタＷＰに従って記憶し、リードポインタＲＰに従ってデータを出力する。従って、出力部３３のＦＩＦＯメモリ４１におけるデータ量ＤＶは、ライトポインタＷＰとリードポインタＲＰ、つまりメモリ１３から出力部３３へのデータ転送と、出力部３３から表示部１５への転送データの状態に応じて変化する。尚、データ量ＤＶは、ライトポインタＷＰとリードポインタＲＰにより算出される値（＝ＷＰ−ＲＰ）である。
【００７１】
一例として、図６（ａ）に示すように、出力部３３がメモリ１３に対して読み出しを開始する（時刻Ｔ０）と、データ量ＤＶは、メモリ１３から出力されるデータをＦＩＦＯメモリ４１に記憶することで、ライトポインタＷＰが更新されてデータ量ＤＶが増加する。そして、データ量ＤＶがＦＩＦＯメモリ４１のメモリ容量に応じた最大値Ｄｍになると、読み出しが停止される。
【００７２】
出力部３３がＦＩＦＯメモリ４１のデータ出力を開始する（時刻Ｔ１）と、その出力に応じてリードポインタＲＰが更新され、データ量ＤＶが減少する。ＦＩＦＯメモリ４１から出力されたデータは、図１に示す表示部１５に供給され、その表示部１５において、データに応じた画像が表示される。
【００７３】
そして、出力部３３は、ＦＩＦＯメモリ４１の空き容量を監視し、空き容量が１回の転送によってメモリ１３から出力されるデータ量より多くなると、読み出し要求ＲＱをメモリコントローラ３２に出力する。そして、読み出し要求ＲＱに対してメモリ１３に対するアクセスが許可されると、要求アドレスＲＡＤを出力する。その要求アドレスＲＡＤに応答してメモリ１３がデータの出力を開始する（時刻Ｔ２）と、そのデータを記憶することで、データ量ＤＶが増加する。
【００７４】
メモリコントローラ３２に対する要求が競合して出力部３３の読み出し要求ＲＱに対してアクセスが許可されないと、連続的なデータ出力に応じてデータ量ＤＶが減少する。そして、リードポインタＲＰがライトポインタＷＰと等しくなるかライトポインタＷＰより先行すると、データ量ＤＶが「０」以下になる。そして、データ量ＤＶがしきい値Ｄｔｈ以下になる（時刻Ｔ３）と、図３に示す第１の処理部５３が出力する加算値ＷＡによって、ライトポインタＷＰが制御され、ライトポインタＷＰがリードポインタＲＰより先行することで、データ量ＤＶが強制的に増加される。
【００７５】
そして、出力部３３（ＦＩＦＯ制御部４４）は、制御したライトポインタＷＰに応じた要求アドレスＲＡＤを生成し、その要求アドレスＲＡＤを、メモリコントローラ３２を介してメモリ１３に出力する。その要求アドレスＲＡＤに応答してメモリ１３がデータの出力を開始すると、そのデータがＦＩＦＯメモリ４１に記憶される。そのＦＩＦＯメモリ４１に記憶したデータがリードポインタＲＰに従って表示部１５に出力され、画像が表示される。
【００７６】
制御されたライトポインタＷＰが示す領域に記憶されるデータは、そのライトポインタＷＰに対応する要求アドレスＲＡＤによってメモリ１３から読み出されたデータである。つまり、転送破綻が発生していない場合に、その領域に書き込まれるデータである。従って、このデータに基づいて表示部１５に表示される画像（画素）の位置は、１つのフレームにおいて正しい位置に表示される。
【００７７】
つまり、転送破綻によって部分的に正しくない位置の画像が表示されるものの、１つのフレームに含まれる多くの画像データは、表示部１５の正しい位置に表示されることになる。このため、転送破綻によって、処理を停止して次のフレームの画像を表示するタイミングまで待機する場合と比べ、１つのフレームの画像を使用者が確認することができるようになる。なお、フレームの途中で処理を停止すると、そのときにＦＩＦＯメモリに記憶されているデータが繰り返し出力される。従って、その停止までにＦＩＦＯメモリから転送されて表示された画像部分からフレームの最後画素までのラインには、ＦＩＦＯメモリに記憶されたデータに応じた画像が繰り返し表示される。
【００７８】
データ量ＤＶが「０」以下になっても、メモリ１３に対するアクセスが許可されると、その許可されたアクセスによってメモリ１３から出力されるデータをＦＩＦＯメモリ４１に記憶することでデータ量ＤＶが増加し、ライトポインタＷＰがリードポインタＲＰより先行する。これにより、転送破綻が解消される。
【００７９】
別の例として、図６（ｂ）に示すように、出力部３３がメモリ１３に対して読み出しを開始する（時刻Ｔ０）と、データ量ＤＶが増加する。そして、データ量ＤＶがＦＩＦＯメモリ４１のメモリ容量に応じた最大値Ｄｍになると、読み出しが停止される。出力部３３がＦＩＦＯメモリ４１のデータ出力を開始する（時刻Ｔ１）と、その出力に応じてリードポインタＲＰが更新され、データ量ＤＶが減少する。そして、出力部３３が出力する読み出し要求ＲＱに基づいてメモリ１３からデータが出力され（時刻Ｔ２）、データ量ＤＶが増加する。
【００８０】
出力部３３（エラー処理部４５）は、ＦＩＦＯメモリ４１からデータを読み出すリードが連続する回数を監視し、その連続回数がしきい値Ｃｔｈを越え（時刻Ｔ４）、転送破綻が発生する、つまりデータ量ＤＶが「０」以下になる（時刻Ｔ５）と、図３に示す第１の処理部５３が出力する加算値ＷＡによって、ライトポインタＷＰが制御され、ライトポインタＷＰがリードポインタＲＰより先行することで、データ量ＤＶが強制的に増加される。つまり、ライトポインタＷＰがリードポインタＲＰより先行し、転送破綻が解消される。
【００８１】
図７に示すように、表示部１５には、図２に示すＦＩＦＯメモリ４１から順次出力されるデータに基づく画像の各ラインが表示される。なお、図７において、実線は各ラインを示し、一点鎖線はＦＩＦＯメモリ４１から出力するデータの順番を示す。つまり、各ラインにおいて、左から右に向って画像データがＦＩＦＯメモリ４１から出力され、１つのフレームにおいて上から下に向って各ラインの画像データがＦＩＦＯメモリ４１から出力される。なお、図１に示すメモリ１３からデータを読み出す順番も同じである。
【００８２】
図７に示す「×」は、転送破綻によって異なる位置の画像が表示されたことを示す。上記したように、出力部３３は、転送破綻が発生すると、ライトポインタＷＰを強制的にリードポインタＲＰより先行させ、その制御したライトポインタＷＰに応じたデータを、要求アドレスＲＡＤによってメモリ１３から読み出す。従って、転送破綻によって表示が乱れても、ライトポインタＷＰの制御によって、表示位置に対応する画像が表示され、表示画像の乱れが低減される。
【００８３】
そして、出力部３３のエラー処理部４５は、転送破綻に対してライトポインタＷＰの制御を所定回数実行すると、リセット信号ＲＳＴを出力する。出力部３３のＦＩＦＯ制御部４４は、そのリセット信号ＲＳＴに応答して表示を停止する。そして、次のフレームに対してデータ転送を開始する。
【００８４】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（１）ＦＩＦＯメモリ４１は、ライトポインタＷＰに従ってデータを記憶し、リードポインタＲＰに従ってデータを出力する。ＦＩＦＯ制御部４４は、ライトポインタＷＰとリードポインタＲＰに基づいてＦＩＦＯメモリ４１の空き容量を監視し、バースト転送によってメモリ１３から出力されるデータ量よりも空き容量が多くなると、メモリ１３からデータを読み出すために読み出し要求ＲＱをメモリコントローラ３２に出力する。メモリコントローラ３２は、処理部２１〜２７から出力される要求と出力部３３の読み出し要求との競合を調停する。エラー処理部４５は、ライトポインタＷＰとリードポインタＲＰとを監視し、ライトポインタＷＰがリードポインタＲＰより先行するエラーの発生に応じて、ＦＩＦＯ制御部４４に対し、ライトポインタＷＰを制御するための制御信号ＷＣ（加算値ＷＡ）を出力する。ＦＩＦＯ制御部４４は、制御信号ＷＣ（加算値ＷＡ）に基づいて、ライトポインタＷＰをリードポインタＲＰよりも強制的に先行させる。この結果、データ転送における転送破綻を解消することができる。
【００８５】
（２）ＦＩＦＯ制御部４４は、制御信号ＷＣ（加算値ＷＡ）に基づいて、制御したライトポインタＷＰに対応する要求アドレスＲＡＤを生成し、この要求アドレスＲＡＤをメモリ１３に出力する。従って、制御したライトポインタＷＰの領域に対応するデータがメモリ１３から読み出され、ＦＩＦＯメモリ４１に記憶される。そして、このデータは、リードポインタＲＰに従って表示部１５に対して出力される。このため、転送破綻を解消した後に、表示部１５において、表示画素の位置に応じたデータがその表示画素に供給されて画像が表示されるため、表示部１５における表示画像の乱れを低減することができる。
【００８６】
（３）エラー処理部４５は、ライトポインタＷＰとリードポインタＲＰに基づいてデータ量ＤＶを監視し、そのデータ量ＤＶがしきい値Ｄｔｈ以下になると、制御信号ＷＣ（加算値ＷＡ）を出力する。しきい値Ｄｔｈは、転送破綻の発生、つまり負の値に設定されている。この制御信号ＷＣ（加算値ＷＡ）によって、ライトポインタＷＰがリードポインタＲＰより先行するため、転送破綻が解消され、例えばＣＰＵ３１等の処理装置が転送破綻を解消する処理を実行する必要がないため、処理の低減と、負荷の増大を抑制することができる。
【００８７】
（４）エラー処理部４５は、データ量ＤＶがしきい値Ｄｔｈ以下になると、制御信号ＷＣ（加算値ＷＡ）を出力する。つまり、データ量ＤＶがしきい値Ｄｔｈ以下になるまで、ライトポインタＷＰに対する制御を行わない。これは、転送破綻が発生しても、リードポインタＲＰの先行量が少なければ、ＦＩＦＯ制御部４４が出力する読み出し要求ＲＱによってメモリ１３から出力されるデータがＦＩＦＯメモリ４１に記憶されて転送破綻が解消される場合があるからである。この場合、表示部１５における表示の乱れは、リードポインタＲＰの先行量が少ないため、ライトポインタＷＰを制御する場合と比べて少ない。従って、表示の乱れを低減することができる。
【００８８】
（５）エラー処理部４５は、ＦＩＦＯメモリ４１から連続してデータを読み出す連続回数を監視し、読み出しが所定回数連続して転送破綻が発生した場合に、ライトポインタＷＰを制御するようにした。この結果、データ転送における転送破綻を解消することができる。
【００８９】
（６）エラー処理部４５は、ライトポインタＷＰを制御した回数を監視し、所定回数、ライトポインタＷＰの制御を行った場合に、リセット信号ＲＳＴを出力する。ＦＩＦＯ制御部４４は、そのリセット信号ＲＳＴに応答して、ＦＩＦＯメモリ４１に対するリードを停止し、次のフレームに対する開始タイミングまで待機するようにした。従って、次のフレームにおける表示を再開することができる。
【００９０】
尚、上記各実施形態は、以下の態様で実施してもよい。
・エラー処理部４５は、ＦＩＦＯ監視カウンタ５１を用いてＦＩＦＯメモリ４１のデータ量を監視した。これに対し、ＦＩＦＯ制御部４４と同様に、ＦＩＦＯメモリ４１に保持されているデータ量を算出するデータ量算出部を備え、ＦＩＦＯメモリ４１のデータ量を監視するようにしてもよい。
【００９１】
・第１の処理部５３は、カウント値ＣＤ１がしきい値Ｄｔｈ以下のときに通常処理を実行し、カウント値ＣＤ１がしきい値Ｄｔｈを越える値のときに復帰処理を実行するようにしてもよい。
【００９２】
また、第２の処理部５５は、カウント値ＣＤ３がしきい値Ｅｔｈ以下のときに通常処理を実行し、カウント値ＣＤ３がしきい値Ｅｔｈを越える値のときに復帰処理を実行してもよい。
【００９３】
・第１の処理部５３が加算値ＷＡに設定する第１の値をレジスタ５６に設定してもよい。
・エラー処理部４５から出力される加算値ＷＡに基づいて、ＦＩＦＯ制御部４４が、ライトポインタＷＰの飛び越しと、要求アドレスＲＡＤの飛び越しを行うようにしたが、ライトポインタＷＰに対する加算値と、要求アドレスＲＡＤに対する加算値を別々に設定するようにしてもよい。
【００９４】
・データ量ＤＶがしきい値Ｄｔｈ以下のときにライトポインタＷＰを制御する加算値と、リードの連続回数がしきい値Ｃｔｈを越えて転送破綻したときにライトポインタＷＰを制御する加算値とを異なる値としてもよい。
【００９５】
・エラー処理部４５は、ＦＩＦＯ監視カウンタ５１と連続リードカウンタ５２とを備える構成としたが、何れか一方のみを備える構成としてもよい。
・エラー処理部４５は、第１の処理部５３と第２の処理部５５とを備える構成としたが、リセット信号ＲＳＴの出力等の復帰処理を例えば図１に示すＣＰＵ３１が実行し、図３に示す第２の処理部５５を省略してもよい。また、図１に示すＣＰＵ３１が実行フラグＥＦをカウントし、そのカウント値に応じて復帰処理を実行することで、図３に示す処理回数カウンタ５４を省略してもよい。
【００９６】
・上記各形態において、回路構成、しきい値などの値、信号のレベル、等を適宜変更してもよい。
・ライトポインタＷＰに対する加算値を、ＦＩＦＯ制御部４４に記憶するようにしてもよい。
【符号の説明】
【００９７】
１２  画像処理プロセッサ
１３  メモリ
１５  表示部
３２  メモリコントローラ（調停部）
３３  出力部（データ転送回路）
４１  ＦＩＦＯメモリ
４４  ＦＩＦＯ制御部
４５  エラー処理部
ＲＰ  リードポインタ
ＷＰ  ライトポインタ
ＡＶ、ＷＡ  加算値（制御値）
ＷＣ  制御信号
【図１】
0005740949.tif 000002
【図２】
0005740949.tif 000003
【図３】
0005740949.tif 000004
【図４】
0005740949.tif 000005
【図５】
0005740949.tif 000006
【図６】
0005740949.tif 000007
【図７】
0005740949.tif 000008