(57)【要約】【課題】ＦＩＦＯのオーバーフローおよびアンダーフローを防止することが可能なデータ処理装置を提供すること。【解決手段】演算エンジン２（２１）は、ＲＤ用ＦＩＦＯ２（２２）に記憶されたデータに対して演算処理を行ない、演算結果をＷＲ用ＦＩＦＯ２（２３）に格納する。ＲＥＱ発行制御部２４ａは、ＲＤ用ＦＩＦＯ２（２２）からのデータ読出要求と、ＷＲ用ＦＩＦＯ２（２３）からのデータ書込要求とが発行されたときに、ＲＤ用ＦＩＦＯ２（２２）に蓄積された有効データ数が優先制御条件設定レジスタ２６に設定された下限値未満の場合に、データ読出要求を優先して発行する。また、ＷＲ用ＦＩＦＯ２（２３）に蓄積された有効データ数が優先制御条件設定レジスタ２６に設定された上限値を超える場合に、データ書込要求を優先して発行する。したがって、ＦＩＦＯのオーバーフローおよびアンダーフローを防止することが可能となる。【選択図】図３
2010257128.tif 000002
【特許請求の範囲】
【請求項１】
外部記憶装置にアクセスしてデータを処理するデータ処理装置であって、
前記外部記憶装置から読み出したデータを一時的に記憶する読出用記憶手段と、
前記外部記憶装置に書き込むデータを一時的に記憶する書込用記憶手段と、
前記読出用記憶手段に記憶されたデータに対して演算処理を行ない、演算結果を前記書込用記憶手段に格納する演算手段と、
前記外部記憶装置から前記読出用記憶手段へのデータ読出要求と、前記書込用記憶手段から前記外部記憶装置へのデータ書込要求とが発行された場合に、前記読出用記憶手段または前記書込用記憶手段に蓄積された有効データ数に応じて、いずれの要求を優先して発行するかを制御する発行制御手段とを含む、データ処理装置。
【請求項２】
前記データ処理装置はさらに、前記読出用記憶手段の有効データ数の下限値を設定する設定手段を含み、
前記発行制御手段は、前記外部記憶装置から前記読出用記憶手段へのデータ読出要求と、前記書込用記憶手段から前記外部記憶装置へのデータ書込要求とが発行されたときに、前記読出用記憶手段に蓄積された有効データ数が前記設定手段に設定された下限値未満の場合に、データ読出要求を優先して発行する、請求項１記載のデータ処理装置。
【請求項３】
前記データ処理装置はさらに、前記書込用記憶手段の有効データ数の上限値を設定する設定手段を含み、
前記発行制御手段は、前記外部記憶装置から前記読出用記憶手段へのデータ読出要求と、前記書込用記憶手段から前記外部記憶装置へのデータ書込要求とが発行されたときに、前記書込用記憶手段に蓄積された有効データ数が前記設定手段に設定された上限値を超える場合に、データ書込要求を優先して発行する、請求項１記載のデータ処理装置。
【請求項４】
外部記憶装置にアクセスしてデータを処理する複数のモジュールを含んだデータ処理装置であって、
前記複数のモジュールのそれぞれは、前記外部記憶装置から読み出したデータまたは前記外部記憶装置に書き込むデータを一時的に記憶する記憶手段と、
前記記憶手段に記憶されたデータに対して演算処理を行なうか、または演算処理を行なって処理結果を前記記憶手段に格納する演算手段と、
前記記憶手段に蓄積された有効データ数に応じて、他のモジュールからのアクセス要求に優先して当該アクセス要求を発行するかを制御する発行制御手段とを含む、データ処理装置。
【請求項５】
前記複数のモジュールの少なくとも１つはさらに、前記記憶手段の有効データ数の下限値を設定する設定手段を含み、
前記発行制御手段は、前記記憶手段に蓄積された有効データ数が前記設定手段に設定された下限値未満の場合に、前記他のモジュールからのアクセス要求に優先してデータ読出要求を発行する、請求項４記載のデータ処理装置。
【請求項６】
前記複数のモジュールの少なくとも１つはさらに、前記記憶手段の有効データ数の上限値を設定する設定手段を含み、
前記発行制御手段は、前記記憶手段に蓄積された有効データ数が前記設定手段に設定された上限値を超える場合に、前記他のモジュールからのアクセス要求に優先してデータ書込要求を発行する、請求項４記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部記憶装置から読み出したデータおよび外部記憶装置に書き込むデータを一時的に蓄積するＦＩＦＯ（First In First Out）を制御する技術に関し、特に、ＦＩＦＯのオーバーフローおよびアンダーフローを防止することを可能にしたデータ処理装置に関する。
【背景技術】
【０００２】
近年、ＣＰＵ（Central Processing Unit）を搭載したデータ処理装置の高機能化、多機能化が進んでいる。このようなデータ処理装置の中には、外部記憶装置にアクセスしながら処理を行なうものがある。一般に、外部記憶装置にアクセスしながら処理を行なう場合には、外部記憶装置から読み出したデータおよび外部記憶装置に書き込むデータを一時的に蓄積するＦＩＦＯを介してアクセスを行なうことが多い。
【０００３】
データ処理装置が外部記憶装置からデータを読み出しながら処理を行なう場合、外部記憶装置からデータを読み出す速度が、ＣＰＵなどの演算装置がＦＩＦＯに蓄積されたデータを処理する速度よりも速ければ、オーバーフローが発生してデータが上書きされてしまう可能性がある。逆に、外部記憶装置からデータを読み出す速度が、ＣＰＵなどの演算装置がＦＩＦＯに蓄積されたデータを処理する速度よりも遅ければ、アンダーフローが発生して演算装置が処理すべきデータが到着しない可能性がある。
【０００４】
また、データ処理装置が外部記憶装置にデータを書き込みながら処理を行なう場合、外部記憶装置にデータを書き込む速度が、ＣＰＵなどの演算装置がデータを処理してＦＩＦＯに蓄積する速度よりも速ければ、アンダーフローが発生して外部記憶装置に書き込むべきデータが到着しない可能性がある。逆に、外部記憶装置にデータを書き込む速度が、ＣＰＵなどの演算装置がデータを処理してＦＩＦＯに蓄積する速度よりも遅ければ、オーバーフローが発生してデータが上書きされてしまう可能性がある。
【０００５】
ＦＩＦＯを有するデータ処理装置には、このようなオーバーフローやアンダーフローが発生するのを防止するための機構が備えられている。これに関連する技術として、下記の特許文献１〜２に開示された発明がある。
【０００６】
特許文献１は、静的表示の期間中に電力消費を減少させることのできるメモリ制御装置などを提供することを目的とする。低優先度または高優先度リクエストに従ってデータをＦＩＦＯへ転送するため、ＤＲＡＭコントローラ・シーケンサが予め決められた数のアドレスをＤＲＡＭへラッチした後、表示ＦＩＦＯモジュールはＦＩＦＯデータレベルを再評価し、ＦＩＦＯデータレベルが低閾値または高閾値の値の一方よりまだ低いかまたは等しいかを判定する。低優先度リクエストに対してヒステリシスを導入したことによりＦＩＦＯレベルは高閾値の値まで下がり、低閾値の値のまわりの振動がなくなる。このため、メモリ転送の数を制限することにより電力が節減され（１回の転送毎に電力が消費され）、低電力装置が電力節減モードに入ることが可能なアイドル期間の形成が可能になる。
【０００７】
特許文献２は、各マスタ装置のデータ転送処理要求の発生頻度が変化した場合でも効率的にバスを使用できるバス装置を得ることを目的とする。バス装置において、対応するマスタ装置からのデータ転送処理要求を蓄積するデータＦＩＦＯと、各データＦＩＦＯに蓄積されたデータ転送処理要求数をカウントするカウンタとを備える。さらに、カウンタによるカウント値に基づいて、蓄積されたデータ転送処理要求数の最も多いデータＦＩＦＯから優先的にデータ転送処理要求を取り出してタイムスロットに割り当て、各データＦＩＦＯの蓄積されたデータ転送処理要求数が同等の場合に、レジスタに予め設定された優先順位に従ってデータ転送処理要求をデータＦＩＦＯから取り出してタイムスロットに割り当て、データバスに出力するデータ多重回路を備える。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−１３７４７０号公報
【特許文献２】特開２００５−３１６８６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述のＦＩＦＯのオーバーフローを防止する方法の１つとして、演算装置がＦＩＦＯにデータを蓄積しているときに、ＦＩＦＯのデータ蓄積量が所定量に達した場合、演算装置をｗａｉｔ状態にする方法を挙げることができる。しかしながら、演算装置をｗａｉｔ状態にするため、演算装置の処理効率が低下するといった問題がある。
【００１０】
また、他の方法として、ＦＩＦＯの段数を増やすといった方法を挙げることもできるが、チップ面積の増大や、外部記憶装置にデータを書き込むのに時間がかかりＦＩＦＯからのデータ転送が遅れてしまうといった問題もある。
【００１１】
本発明は、上記問題点を解決するためになされたものであり、その目的は、ＦＩＦＯのオーバーフローおよびアンダーフローを防止することが可能なデータ処理装置を提供することである。
【課題を解決するための手段】
【００１２】
本発明の一実施例によれば、外部記憶装置にアクセスしてデータを処理するデータ処理装置が提供される。ＲＤ用ＦＩＦＯは、外部記憶装置から読み出したデータを一時的に記憶する。ＷＲ用ＦＩＦＯは、外部記憶装置に書き込むデータを一時的に記憶する。演算エンジンは、ＲＤ用ＦＩＦＯに記憶されたデータに対して演算処理を行ない、演算結果をＷＲ用ＦＩＦＯに格納する。ＲＥＱ発行制御部は、外部記憶装置からＲＤ用ＦＩＦＯへのデータ読出要求と、ＷＲ用ＦＩＦＯから外部記憶装置へのデータ書込要求とが発行されたときに、ＲＤ用ＦＩＦＯに蓄積された有効データ数が優先制御条件設定レジスタに設定された下限値未満の場合に、データ読出要求を優先して発行する。
【発明の効果】
【００１３】
この実施例によれば、外部記憶装置からＲＤ用ＦＩＦＯへのデータ読出要求と、ＷＲ用ＦＩＦＯから外部記憶装置へのデータ書込要求とが発行されたときに、ＲＤ用ＦＩＦＯに蓄積された有効データ数が優先制御条件設定レジスタに設定された下限値未満の場合に、データ読出要求を優先して発行する。したがって、ＲＤ用ＦＩＦＯに蓄積される有効データ数を増やすことができ、ＦＩＦＯのアンダーフローを防止することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】外部記憶装置にアクセスしながら処理を行なうデータ処理装置の構成例を示す図である。
【図２】複数の演算エンジンを搭載したデータ処理装置の構成例を示す図である。
【図３】本発明の第１の実施の形態におけるデータ処理装置の構成例を示す図である。
【図４】本発明の第１の実施の形態におけるＣＰＵ４０の処理手順を説明するためのフローチャートである。
【図５】本発明の第１の実施の形態におけるＲＥＱ発行制御部２４ａの処理手順を説明するためのフローチャートである。
【図６】本発明の第２の実施の形態におけるデータ処理装置の構成例を示す図である。
【図７】本発明の第２の実施の形態におけるＣＰＵ４０の処理手順を説明するためのフローチャートである。
【図８】本発明の第２の実施の形態におけるＲＥＱ発行制御部１３ｂ，２４ｂおよび３３ｂの処理手順を説明するためのフローチャートである。
【発明を実施するための形態】
【００１５】
本発明の実施の形態におけるデータ処理装置の詳細を説明する前に、その背景技術について説明する。
【００１６】
図１は、外部記憶装置にアクセスしながら処理を行なうデータ処理装置の構成例を示す図である。このデータ処理装置は、演算処理部１００と、ＤＭＡＣ（Direct Memory Access Controller）２００と、ＤＤＲ（Double Data Rate）Ｉ／Ｆ（Interface）３００と、外部記憶装置の一例である外部ＤＤＲ４００とを含む。また、演算処理部１００は、演算装置の一例である演算エンジン１０１と、ＷＲ用ＦＩＦＯ１０２と、ＲＤ用ＦＩＦＯ１０３とを含む。
【００１７】
この演算処理部１００は、主に外部ＤＤＲ４００からデータを読み出して演算を行なった後、演算結果を外部ＤＤＲ４００に書き込むものである。まず、ＲＤ用ＦＩＦＯ１０３が読出要求信号ＲＤ／ＲＥＱをＤＭＡＣ２００に発行すると、ＤＭＡＣ２００はＤＤＲＩ／Ｆ３００を介して外部ＤＤＲ４００に読出アドレスを出力し、ＤＭＡ転送（外部ＤＤＲ４００からのデータ読み出し）を開始する。
【００１８】
外部ＤＤＲ４００から読み出されたデータは、ＤＤＲＩ／Ｆ３００を介してＲＤ用ＦＩＦＯ１０３に順次書き込まれる。演算エンジン１０１は、ＲＤ用ＦＩＦＯ１０３に蓄積されたデータを読み出して演算処理を実行し、演算結果をＷＲ用ＦＩＦＯ１０２に順次書き込む。
【００１９】
ＷＲ用ＦＩＦＯ１０２は、所定量のデータが蓄積されると書込要求信号ＷＲ／ＲＥＱをＤＭＡＣ２００に発行する。ＤＭＡＣ２００は、ＷＲ用ＦＩＦＯ１０２からＷＲ／ＲＥＱを受けると、ＤＤＲＩ／Ｆ３００を介して外部ＤＤＲ４００に書込アドレスを出力し、ＤＭＡ転送（外部ＤＤＲ４００へのデータ書き込み）を開始する。
【００２０】
このデータ処理装置においては、ＲＤ／ＲＥＱおよびＷＲ／ＲＥＱの両方が発行された場合、先に発行されたリクエストが優先的に処理される。そのため、ＷＲ用ＦＩＦＯ１０２のオーバーフローが発生してデータが上書きされたり、ＲＤ用ＦＩＦＯ１０３のアンダーフローが発生して演算エンジン１０１が処理すべきデータが到着しなかったりする可能性がある。
【００２１】
図２は、複数の演算エンジンを搭載したデータ処理装置の構成例を示す図である。このデータ処理装置１００’は、画像処理用ＬＳＩ（Large Scale Integrated circuit）として実現可能であり、ＣＣＤ（Charge Coupled Device）カメラ５００によって撮影された画像データを外部ＤＤＲ４００に書き込んだ後、外部ＤＤＲ４００から順次画像データを読み出して画像処理を施し、ＬＣＤ（Liquid Crystal Display）６００に表示するものである。
【００２２】
データ処理装置１００’は、カメラヘッドＩ／Ｆ１１０と、画像処理部１２０と、表示コントローラ１３０と、ＤＭＡＣ２００と、ＤＤＲＩ／Ｆ３００とを含む。
【００２３】
カメラヘッドＩ／Ｆ１１０は、演算エンジン１（１１１）と、ＷＲ用ＦＩＦＯ１（１１２）とを含む。演算エンジン１（１１１）は、ＣＣＤ５００から受けた画像データに対してノイズ除去などの演算処理を行ない、演算処理後の画像データをＷＲ用ＦＩＦＯ１（１１２）に蓄積する。ＷＲ用ＦＩＦＯ１（１１２）は、所定量のデータが蓄積されると、ＤＭＡＣ２００に対して書込要求信号ＷＲ／ＲＥＱ１を発行する。
【００２４】
ＤＭＡＣ２００は、ＷＲ用ＦＩＦＯ１（１１２）からＷＲ／ＲＥＱ１を受けると、ＤＤＲＩ／Ｆ３００を介して外部ＤＤＲ４００に書込アドレスを出力し、ＤＭＡ転送（外部ＤＤＲ４００へのデータ書き込み）を行なう。
【００２５】
画像処理部１２０は、演算エンジン２（１２１）と、ＲＤ用ＦＩＦＯ２（１２２）と、ＷＲ用ＦＩＦＯ２（１２３）とを含む。演算エンジン２（１２１）が、ＲＤ用ＦＩＦＯ２（１２２）に対してデータ読み出しを要求すると、ＲＤ用ＦＩＦＯ２（１２２）はＤＭＡＣ２００に対して読出要求信号ＲＤ／ＲＥＱ２を発行する。
【００２６】
ＤＭＡＣ２００は、ＲＤ用ＦＩＦＯ２（１２２）からＲＤ／ＲＥＱ２を受けると、ＤＤＲＩ／Ｆ３００を介して外部ＤＤＲ４００に読出アドレスを出力し、ＤＭＡ転送（外部ＤＤＲ４００からのデータ読み出し）を開始する。外部ＤＤＲ４００から読み出されたデータは、ＤＤＲＩ／Ｆ３００を介してＲＤ用ＦＩＦＯ２（１２２）に順次書き込まれる。
【００２７】
演算エンジン２（１２１）は、ＲＤ用ＦＩＦＯ２（１２２）に蓄積されたデータを読み出して拡大／縮小などの演算処理を実行し、演算結果をＷＲ用ＦＩＦＯ２（１２３）に順次書き込む。
【００２８】
ＷＲ用ＦＩＦＯ２（１２３）は、所定量のデータが蓄積されると書込要求信号ＷＲ／ＲＥＱ２をＤＭＡＣ２００に発行する。ＤＭＡＣ２００は、ＷＲ用ＦＩＦＯ２（１２３）からＷＲ／ＲＥＱ２を受けると、ＤＤＲＩ／Ｆ３００を介して外部ＤＤＲ４００に書込アドレスを出力し、ＤＭＡ転送（外部ＤＤＲ４００へのデータ書き込み）を行なう。
【００２９】
表示コントローラ１３０は、演算エンジン３（１３１）と、ＲＤ用ＦＩＦＯ３（１３２）とを含む。演算エンジン３（１３１）が、ＲＤ用ＦＩＦＯ３（１３２）に対してデータ読み出しを要求すると、ＲＤ用ＦＩＦＯ３（１３２）はＤＭＡＣ２００に対して読出要求信号ＲＤ／ＲＥＱ３を発行する。
【００３０】
ＤＭＡＣ２００は、ＲＤ用ＦＩＦＯ３（１３２）からＲＤ／ＲＥＱ３を受けると、ＤＤＲＩ／Ｆ３００を介して外部ＤＤＲ４００に読出アドレスを出力し、ＤＭＡ転送（外部ＤＤＲ４００からのデータ読み出し）を開始する。外部ＤＤＲ４００から読み出されたデータは、ＤＤＲＩ／Ｆ３００を介してＲＤ用ＦＩＦＯ３（１３２）に順次書き込まれる。
【００３１】
演算エンジン３（１３１）は、ＲＤ用ＦＩＦＯ３（１３２）に蓄積されたデータを読み出して演算処理を実行し、演算結果を表示データとしてＬＣＤ６００に出力する。そして、ＬＣＤ６００は、演算エンジン３（１３１）から受けた表示データを表示する。
【００３２】
このような画像処理用ＬＳＩにおいて、低消費電力化のためにはシステムクロックの周波数を下げるのが効果的である。そのため、ＦＩＦＯのオーバーフローやアンダーフローが発生しない範囲でクロック周波数を下げたいといった要望がある。しかしながら、図２に示すデータ処理装置においては、ＤＭＡＣ２００がＤＭＡ転送要求の発行順序による制御しか行なっていないため、ＦＩＦＯのオーバーフローやアンダーフローが発生しやすく、クロック周波数を下げるのにも限界がある。
【００３３】
（第１の実施の形態）
図３は、本発明の第１の実施の形態におけるデータ処理装置の構成例を示す図である。本実施の形態におけるデータ処理装置１ａは、モジュール内での読出要求ＲＤ／ＲＥＱおよび書込要求ＷＲ／ＲＥＱの優先制御を行なうものである。
【００３４】
このデータ処理装置１ａは、一例として画像処理を行なう場合であり、ＣＣＤカメラ２によって撮影された画像データを外部ＤＤＲ４に書き込んだ後、外部ＤＤＲ４から順次画像データを読み出して画像処理を施し、ＬＣＤ３に表示するものである。
【００３５】
データ処理装置１ａは、カメラヘッドＩ／Ｆ１０ａと、画像処理部２０ａと、表示コントローラ３０ａと、ＣＰＵ４０と、ＤＤＲＩ／Ｆ５０と、ＤＭＡＣ６０とを含む。データ処理装置１ａは３つのモジュール（カメラヘッドＩ／Ｆ、画像処理部、表示コントローラ）を有しているが、モジュール内での優先制御が行なわれるのは画像処理部２０ａにおいてのみである。
【００３６】
カメラヘッドＩ／Ｆ１０ａは、演算エンジン１（１１）と、ＷＲ用ＦＩＦＯ１（１２）と、ＲＥＱ発行制御部１３ａとを含む。演算エンジン１（１１）は、ＣＣＤ２から受けた画像データに対してノイズ除去などの演算処理を行ない、演算処理後の画像データをＷＲ用ＦＩＦＯ１（１２）に蓄積する。
【００３７】
ＷＲ用ＦＩＦＯ１（１２）は、所定量のデータが蓄積されると、ＲＥＱ発行制御部１３ａに対して書込要求信号ＷＲ／ＲＥＱ１を発行する。なお、本実施の形態におけるＲＥＱ発行制御部１３ａは、ＷＲ用ＦＩＦＯ１（１２）から受けたＷＲ／ＲＥＱ１をそのままＤＭＡＣ６０に発行する。
【００３８】
ＤＭＡＣ６０は、ＲＥＱ発行制御部１３ａからＷＲ／ＲＥＱ１を受けると、ＤＤＲＩ／Ｆ５０を介して外部ＤＤＲ４に書込アドレスを出力し、ＤＭＡ転送（外部ＤＤＲ４へのデータ書き込み）を行なう。
【００３９】
画像処理部２０ａは、演算エンジン２（２１）と、ＲＤ用ＦＩＦＯ２（２２）と、ＷＲ用ＦＩＦＯ２（２３）と、ＲＥＱ発行制御部２４ａと、ＲＥＱ優先指定レジスタ２５と、優先制御条件設定レジスタ２６とを含む。演算エンジン２（２１）が、ＲＤ用ＦＩＦＯ２（２２）に対してデータ読み出しを要求すると、ＲＤ用ＦＩＦＯ２（２２）はＲＥＱ発行制御部２４ａに対して読出要求信号ＲＤ／ＲＥＱ２を発行する。
【００４０】
ＲＥＱ発行制御部２４ａは、ＲＤ用ＦＩＦＯ２（２２）からＲＤ／ＲＥＱ２を受けると、後述するＷＲ／ＲＥＱ２との優先制御を行なった後、ＤＭＡＣ６０に対してＲＤ／ＲＥＱ２を発行する。
【００４１】
ＤＭＡＣ６０は、ＤＤＲＩ／Ｆ５０を介して外部ＤＤＲ４に読出アドレスを出力し、ＤＭＡ転送（外部ＤＤＲ４からのデータ読み出し）を開始する。外部ＤＤＲ４から読み出されたデータは、ＤＤＲＩ／Ｆ５０を介してＲＤ用ＦＩＦＯ２（２２）に順次書き込まれる。
【００４２】
演算エンジン２（２１）は、ＲＤ用ＦＩＦＯ２（２２）に蓄積されたデータを読み出して拡大／縮小などの演算処理を実行し、演算結果をＷＲ用ＦＩＦＯ２（２３）に順次書き込む。
【００４３】
ＷＲ用ＦＩＦＯ２（２３）は、所定量のデータが蓄積されるとＲＥＱ発行制御部２４ａに対して書込要求信号ＷＲ／ＲＥＱ２を発行する。ＲＥＱ発行制御部２４ａは、ＷＲ用ＦＩＦＯ２（２３）からＷＲ／ＲＥＱ２を受けると、後述するＲＤ／ＲＥＱ２との優先制御を行なった後、ＤＭＡＣ６０に対してＷＲ／ＲＥＱ２を発行する。
【００４４】
ＤＭＡＣ６０は、ＲＥＱ発行制御部２４ａからＷＲ／ＲＥＱ２を受けると、ＤＤＲＩ／Ｆ５０を介して外部ＤＤＲ４に書込アドレスを出力し、ＤＭＡ転送（外部ＤＤＲ４へのデータ書き込み）を行なう。
【００４５】
表示コントローラ３０ａは、演算エンジン３（３１）と、ＲＤ用ＦＩＦＯ３（３２）と、ＲＥＱ発行制御部３３ａとを含む。演算エンジン３（３１）が、ＲＤ用ＦＩＦＯ３（３２）に対してデータ読み出しを要求すると、ＲＤ用ＦＩＦＯ３（３２）はＲＥＱ発行制御部３３ａに対して読出要求信号ＲＤ／ＲＥＱ３を発行する。なお、本実施の形態におけるＲＥＱ発行制御部３３ａは、ＲＤ用ＦＩＦＯ３（３２）から受けたＲＤ／ＲＥＱ３をそのままＤＭＡＣ６０に発行する。
【００４６】
ＤＭＡＣ６０は、ＲＥＱ発行制御部３３ａからＲＤ／ＲＥＱ３を受けると、ＤＤＲＩ／Ｆ５０を介して外部ＤＤＲ４に読出アドレスを出力し、ＤＭＡ転送（外部ＤＤＲ４からのデータ読み出し）を開始する。外部ＤＤＲ４から読み出されたデータは、ＤＤＲＩ／Ｆ５０を介してＲＤ用ＦＩＦＯ３（３２）に順次書き込まれる。
【００４７】
演算エンジン３（３１）は、ＲＤ用ＦＩＦＯ３（３２）に蓄積されたデータを読み出して演算処理を実行し、演算結果を表示データとしてＬＣＤ３に出力する。そして、ＬＣＤ３は、演算エンジン３（３１）から受けた表示データを表示する。
【００４８】
画像処理部２０ａのＲＥＱ優先指定レジスタ２５は、２つの情報を保持する。１つ目の情報は、優先指定を有効にするか否かを示す情報である。２つ目の情報は、優先指定が有効の場合に、ＲＤ／ＲＥＱおよびＷＲ／ＲＥＱのいずれを優先するかを示す情報である。なお、デフォルトではＷＲ／ＲＥＱが優先されるものとする。
【００４９】
また、画像処理部２０ａの優先制御条件設定レジスタ２６は、優先指定が有効の場合に、ＷＲ用ＦＩＦＯに蓄積された有効データ数の上限値を指定する情報と、ＲＤ用ＦＩＦＯに蓄積された有効データ数の下限値を指定する情報とを保持する。
【００５０】
ＲＤ／ＲＥＱ２を優先する場合には、ＲＤ用ＦＩＦＯ２（２２）に蓄積された有効データ数と、優先制御条件設定レジスタ２６に保持される下限値とが比較される。有効データ数が下限値未満の場合には、ＲＤ／ＲＥＱ２を優先してＤＭＡＣ６０に発行し、ＷＲ／ＲＥＱ２の発行を遅らせる。これによって、ＲＤ用ＦＩＦＯ２（２２）のデータ蓄積量を増やすことができる。
【００５１】
また、ＷＲ／ＲＥＱ２を優先する場合には、ＷＲ用ＦＩＦＯ２（２３）に蓄積された有効データ数と、優先制御条件設定レジスタ２６に保持される上限値とが比較される。有効データ数が上限値を超える場合には、ＷＲ／ＲＥＱ２を優先してＤＭＡＣ６０に発行し、ＲＤ／ＲＥＱ２の発行を遅らせる。これによって、ＷＲ用ＦＩＦＯ２（２３）のデータ蓄積量を減らすことができる。
【００５２】
ＣＰＵ４０は、図示しないメモリに記憶されるプログラムを実行することにより、データ処理装置１ａの全体的な制御を行なう。ＣＰＵ４０は、演算エンジン２（２１）の動作を観測しており、演算エンジン２（２１）がどのような演算処理を行っているかに関する情報を取得する。ＣＰＵ４０が３つのモジュールにコマンドを発行することにより動作を制御しており、各演算エンジンがどのような処理を実行しているかを観測することは容易に行なえる。
【００５３】
図４は、本発明の第１の実施の形態におけるＣＰＵ４０の処理手順を説明するためのフローチャートである。まず、ＣＰＵ４０は、画像処理部２０ａ内の演算エンジン２（２１）の動作を観測する（Ｓ１１）。ここでは、ＣＰＵ４０が、演算エンジン２（２１）が実行する演算処理内容を検出する。そして、演算エンジン２（２１）が実行する演算処理内容に応じてモジュール内優先制御が必要か否かを判定する（Ｓ１２）。
【００５４】
たとえば、ＣＰＵ４０が、演算エンジン２（２１）の拡大変倍処理（倍率＞１．０）の実行を検出した場合、演算エンジン２（２１）によって読み出されるデータ量よりも書き込まれるデータ量の方が多くなることが分かる。この場合、ＣＰＵ４０は、モジュール内優先制御が必要であると判定し、ＷＲ／ＲＥＱ２を優先すると判定する。
【００５５】
また、ＣＰＵ４０が、演算エンジン２（２１）の縮小変倍処理（倍率＜１．０）の実行を検出した場合、演算エンジン２（２１）によって書き込まれるデータ量よりも読み出されるデータ量の方が多くなることが分かる。この場合、ＣＰＵ４０は、モジュール内優先制御が必要であると判定し、ＲＤ／ＲＥＱ２を優先すると判定する。
【００５６】
モジュール内優先制御が必要なければ（Ｓ１２，Ｎｏ）、ステップＳ１１の処理が繰り返される。また、モジュール内優先制御が必要であれば（Ｓ１２，Ｙｅｓ）、ＣＰＵ４０は、ＲＥＱ優先指定レジスタ２５に優先指定を有効にすることを示す情報を格納し、ＷＲ／ＲＥＱおよびＲＤ／ＲＥＱのいずれを優先するかを示す情報を格納する（Ｓ１３）。
【００５７】
そして、ＣＰＵ４０は、優先制御条件設定レジスタ２６に上限値または下限値を設定する（Ｓ１４）。ＷＲ／ＲＥＱを優先する場合には、ＣＰＵ４０は、優先制御条件設定レジスタ２６にＷＲ用ＦＩＦＯの有効データ数の上限値を設定する。この上限値を小さくすることによってＷＲ／ＲＥＱの発行頻度を高くすることができ、上限値を大きくすることによってＷＲ／ＲＥＱの発行頻度を低くすることができる。
【００５８】
また、ＲＤ／ＲＥＱを優先する場合には、ＣＰＵ４０は、優先制御条件設定レジスタ２６にＲＤ用ＦＩＦＯの有効データ数の下限値を設定する。この下限値を大きくすることによってＲＤ／ＲＥＱの発行頻度を高くすることができ、下限値を小さくすることによってＲＤ／ＲＥＱの発行頻度を低くすることができる。そして、ステップＳ１１に戻って、以降の処理が繰り返される。
【００５９】
図５は、本発明の第１の実施の形態におけるＲＥＱ発行制御部２４ａの処理手順を説明するためのフローチャートである。なお、ＲＥＱ発行制御部２４ａは、図示しないＣＰＵがプログラムを実行することによって実現可能であるが、ハードウェアによって構成するようにしてもよい。
【００６０】
まず、ＲＥＱ発行制御部２４ａは、ＲＤ用ＦＩＦＯ２（２２）またはＷＲ用ＦＩＦＯ２（２３）からＲＤ／ＲＥＱ２またはＷＲ／ＲＥＱ２が発行されたか否かを判定する（Ｓ２１）。
【００６１】
ＲＤ／ＲＥＱ２またはＷＲ／ＲＥＱ２が発行されていなければ（Ｓ２１，Ｎｏ）、ステップＳ２１の処理を繰り返す。また、ＲＤ／ＲＥＱ２またはＷＲ／ＲＥＱ２が発行されていれば（Ｓ２１，Ｙｅｓ）、ＲＥＱ発行制御部２４ａは、ＲＥＱ優先指定レジスタ２５を参照して、優先指定が有効か否かを判定する（Ｓ２２）。
【００６２】
優先指定が有効でなければ（Ｓ２２，Ｎｏ）、発行されたＲＥＱをそのままＤＭＡＣ６０に発行し（Ｓ２８）、ステップＳ２１に処理が戻る。また、優先指定が有効であれば（Ｓ２２，Ｙｅｓ）、ＲＥＱ優先指定レジスタ２５を参照してＲＤ／ＲＥＱ２およびＷＲ／ＲＥＱ２のいずれを優先するかを判定する（Ｓ２３）。
【００６３】
ＲＤ／ＲＥＱ２が優先であれば（Ｓ２３，ＲＤ／ＲＥＱ）、ＲＥＱ発行制御部２４ａは、発行されたのがＲＤ／ＲＥＱ２であるか否かを判定する（Ｓ２４）。発行されたのがＲＤ／ＲＥＱ２であれば（Ｓ２４，Ｙｅｓ）、ＲＥＱ発行制御部２４ａは、ＲＤ／ＲＥＱ２をそのままＤＭＡＣ６０に発行し（Ｓ２８）、ステップＳ２１に処理が戻る。
【００６４】
また、発行されたのがＷＲ／ＲＥＱ２であれば（Ｓ２４，Ｎｏ）、ＲＥＱ発行制御部２４ａは、ＲＤ用ＦＩＦＯ２（２２）からＲＤ／ＲＥＱ２も発行されているか否かを判定する（Ｓ２５）。
【００６５】
ＲＤ／ＲＥＱ２は発行されていなければ（Ｓ２５，Ｎｏ）、ＲＥＱ発行制御部２４ａは、ＷＲ／ＲＥＱ２をそのままＤＭＡＣ６０に発行し（Ｓ２８）、ステップＳ２１に処理が戻る。また、ＲＤ／ＲＥＱ２も発行されていれば（Ｓ２５，Ｙｅｓ）、ＲＥＱ発行制御部２４ａは、優先制御条件設定レジスタ２６を参照して下限値を取得し、ＲＤ用ＦＩＦＯ２（２２）の有効データ数が下限値未満であるか否かを判定する（Ｓ２６）。
【００６６】
有効データ数が下限値以上であれば（Ｓ２６，Ｎｏ）、ＲＥＱ発行制御部２４ａは、ＷＲ／ＲＥＱ２をそのままＤＭＡＣ６０に発行し（Ｓ２８）、ステップＳ２１に処理が戻る。また、有効データ数が下限値未満であれば（Ｓ２６，Ｙｅｓ）、ＲＥＱ発行制御部２４ａは、ＲＤ／ＲＥＱ２を優先してＤＭＡＣ６０に発行し、ＷＲ／ＲＥＱ２の発行を遅らせる（Ｓ２７）。
【００６７】
また、ステップＳ２３において、ＷＲ／ＲＥＱ２が優先であれば（Ｓ２３，ＷＲ／ＲＥＱ）、ＲＥＱ発行制御部２４ａは、発行されたのがＷＲ／ＲＥＱ２であるか否かを判定する（Ｓ２９）。発行されたのがＷＲ／ＲＥＱ２であれば（Ｓ２９，Ｙｅｓ）、ＲＥＱ発行制御部２４ａは、ＷＲ／ＲＥＱ２をそのままＤＭＡＣ６０に発行し（Ｓ３３）、ステップＳ２１に処理が戻る。
【００６８】
また、発行されたのがＲＤ／ＲＥＱ２であれば（Ｓ２９，Ｎｏ）、ＲＥＱ発行制御部２４ａは、ＷＲ用ＦＩＦＯ２（２３）からＷＲ／ＲＥＱ２も発行されているか否かを判定する（Ｓ３０）。
【００６９】
ＷＲ／ＲＥＱ２は発行されていなければ（Ｓ３０，Ｎｏ）、ＲＥＱ発行制御部２４ａは、ＲＤ／ＲＥＱ２をそのままＤＭＡＣ６０に発行し（Ｓ３３）、ステップＳ２１に処理が戻る。また、ＷＲ／ＲＥＱ２も発行されていれば（Ｓ３０，Ｙｅｓ）、ＲＥＱ発行制御部２４ａは、優先制御条件設定レジスタ２６を参照して上限値を取得し、ＷＲ用ＦＩＦＯ２（２３）の有効データ数が上限値を超えているか否かを判定する（Ｓ３１）。
【００７０】
有効データ数が上限値を超えていなければ（Ｓ３１，Ｎｏ）、ＲＥＱ発行制御部２４ａは、ＲＤ／ＲＥＱ２をそのままＤＭＡＣ６０に発行し（Ｓ３３）、ステップＳ２１に処理が戻る。また、有効データ数が上限値を超えていれば（Ｓ３１，Ｙｅｓ）、ＲＥＱ発行制御部２４ａは、ＷＲ／ＲＥＱ２を優先してＤＭＡＣ６０に発行し、ＲＤ／ＲＥＱ２の発行を遅らせる（Ｓ３２）。
【００７１】
以上説明したように、本実施の形態におけるデータ処理装置によれば、データ読出要求を優先する場合、ＲＤ用ＦＩＦＯ２（２２）の有効データ数が下限値未満であればＲＤ／ＲＥＱ２の発行を優先し、ＷＲ／ＲＥＱ２の発行を遅らせるようにした。したがって、ＲＤ用ＦＩＦＯ２（２２）の有効データ数を増やすことができ、ＲＤ用ＦＩＦＯ２（２２）においてアンダーフローが発生するのを防止することが可能となった。
【００７２】
また、データ書込要求を優先する場合、ＷＲ用ＦＩＦＯ２（２３）の有効データ数が上限値を超えていればＷＲ／ＲＥＱ２の発行を優先し、ＲＤ／ＲＥＱ２の発行を遅らせるようにした。したがって、ＷＲ用ＦＩＦＯ２（２３）の有効データ数を減らすことができ、ＷＲ用ＦＩＦＯ２（２３）においてオーバーフローが発生するのを防止することが可能となった。
【００７３】
また、ＦＩＦＯのオーバーフローやアンダーフローを抑制できるので、システムクロックの周波数を下げることが可能となった。また、ＦＩＦＯの容量を増やす必要がないので、チップ面積が大きくなるのを防止することが可能となった。
【００７４】
（第２の実施の形態）
図６は、本発明の第２の実施の形態におけるデータ処理装置の構成例を示す図である。本実施の形態におけるデータ処理装置１ｂは、モジュール間での読出要求ＲＤ／ＲＥＱまたは書込要求ＷＲ／ＲＥＱの優先制御を行なうものである。
【００７５】
データ処理装置１ｂは、カメラヘッドＩ／Ｆ１０ｂと、画像処理部２０ｂと、表示コントローラ３０ｂと、ＣＰＵ４０と、ＤＤＲＩ／Ｆ５０と、ＤＭＡＣ６０とを含む。データ処理装置１ｂは３つのモジュール（カメラヘッドＩ／Ｆ、画像処理部、表示コントローラ）を有しており、モジュール間での優先制御が行なわれる。
【００７６】
カメラヘッドＩ／Ｆ１０ｂは、演算エンジン１（１１）と、ＷＲ用ＦＩＦＯ１（１２）と、ＲＥＱ発行制御部１３ｂと、ＲＥＱ優先指定レジスタ１４と、優先制御条件設定レジスタ１５とを含む。演算エンジン１（１１）は、ＣＣＤ２から受けた画像データに対してノイズ除去などの演算処理を行ない、演算処理後の画像データをＷＲ用ＦＩＦＯ１（１２）に蓄積する。
【００７７】
ＷＲ用ＦＩＦＯ１（１２）は、所定量のデータが蓄積されると、ＲＥＱ発行制御部１３ｂに対して書込要求信号ＷＲ／ＲＥＱ１を発行する。ＲＥＱ発行制御部１３ｂは、ＷＲ用ＦＩＦＯ１（１２）からＷＲ／ＲＥＱ１を受けると、ＲＥＱ優先指定レジスタ１４および優先制御条件設定レジスタ１５を参照して、後述する他のモジュールとの間の優先制御を行なった後、ＤＭＡＣ６０に対してＷＲ／ＲＥＱ１を発行する。
【００７８】
ＲＥＱ優先指定レジスタ１４は、モジュール間における優先指定を有効にするか否かを示す情報を保持する。また、優先制御条件設定レジスタ１５は、モジュール間における優先指定が有効の場合に、ＷＲ用ＦＩＦＯ１（１２）に蓄積された有効データ数の上限値を指定する情報を保持する。
【００７９】
ＤＭＡＣ６０は、ＲＥＱ発行制御部１３ｂからＷＲ／ＲＥＱ１を受けると、ＤＤＲＩ／Ｆ５０を介して外部ＤＤＲ４に書込アドレスを出力し、ＤＭＡ転送（外部ＤＤＲ４へのデータ書き込み）を行なう。
【００８０】
画像処理部２０ｂは、演算エンジン２（２１）と、ＲＤ用ＦＩＦＯ２（２２）と、ＷＲ用ＦＩＦＯ２（２３）と、ＲＥＱ発行制御部２４ｂと、ＲＥＱ優先指定レジスタ２５と、優先制御条件設定レジスタ２６とを含む。演算エンジン２（２１）が、ＲＤ用ＦＩＦＯ２（２２）に対してデータ読み出しを要求すると、ＲＤ用ＦＩＦＯ２（２２）はＲＥＱ発行制御部２４ｂに対して読出要求信号ＲＤ／ＲＥＱ２を発行する。
【００８１】
ＲＥＱ発行制御部２４ｂは、ＲＤ用ＦＩＦＯ２（２２）からＲＤ／ＲＥＱ２を受けると、ＲＥＱ優先指定レジスタ２５および優先制御条件設定レジスタ２６を参照して、後述する他のモジュールとの間の優先制御を行なった後、ＤＭＡＣ６０に対してＲＤ／ＲＥＱ２を発行する。
【００８２】
ＲＥＱ優先指定レジスタ２５は、モジュール間における優先指定を有効にするか否かを示す情報を保持する。また、優先制御条件設定レジスタ２６は、モジュール間における優先指定が有効の場合に、ＲＤ用ＦＩＦＯ２（２２）に蓄積された有効データ数の下限値およびＷＲ用ＦＩＦＯ２（２３）に蓄積された有効データ数の上限値を指定する情報を保持する。
【００８３】
ＤＭＡＣ６０は、ＲＥＱ発行制御部２４ｂからＲＤ／ＲＥＱ２を受けると、ＤＤＲＩ／Ｆ５０を介して外部ＤＤＲ４に読出アドレスを出力し、ＤＭＡ転送（外部ＤＤＲ４からのデータ読み出し）を開始する。外部ＤＤＲ４から読み出されたデータは、ＤＤＲＩ／Ｆ５０を介してＲＤ用ＦＩＦＯ２（２２）に順次書き込まれる。
【００８４】
演算エンジン２（２１）は、ＲＤ用ＦＩＦＯ２（２２）に蓄積されたデータを読み出して拡大／縮小などの演算処理を実行し、演算結果をＷＲ用ＦＩＦＯ２（２３）に順次書き込む。
【００８５】
ＷＲ用ＦＩＦＯ２（２３）は、所定量のデータが蓄積されるとＲＥＱ発行制御部２４ｂに対して書込要求信号ＷＲ／ＲＥＱ２を発行する。ＲＥＱ発行制御部２４ｂは、ＷＲ用ＦＩＦＯ２（２３）からＷＲ／ＲＥＱ２を受けると、ＲＥＱ優先指定レジスタ２５および優先制御条件設定レジスタ２６を参照して、後述する他のモジュールとの間の優先制御を行なった後、ＤＭＡＣ６０に対してＷＲ／ＲＥＱ２を発行する。
【００８６】
ＤＭＡＣ６０は、ＲＥＱ発行制御部２４ｂからＷＲ／ＲＥＱ２を受けると、ＤＤＲＩ／Ｆ５０を介して外部ＤＤＲ４に書込アドレスを出力し、ＤＭＡ転送（外部ＤＤＲ４へのデータ書き込み）を行なう。
【００８７】
表示コントローラ３０ｂは、演算エンジン３（３１）と、ＲＤ用ＦＩＦＯ３（３２）と、ＲＥＱ発行制御部３３ｂと、ＲＥＱ優先指定レジスタ３４と、優先制御条件設定レジスタ３５とを含む。演算エンジン３（３１）が、ＲＤ用ＦＩＦＯ３（３２）に対してデータ読み出しを要求すると、ＲＤ用ＦＩＦＯ３（３２）はＲＥＱ発行制御部３３ｂに対して読出要求信号ＲＤ／ＲＥＱ３を発行する。
【００８８】
ＲＥＱ発行制御部３３ｂは、ＲＤ用ＦＩＦＯ３（３２）からＲＤ／ＲＥＱ３を受けると、ＲＥＱ優先指定レジスタ３４および優先制御条件設定レジスタ３５を参照して、後述する他のモジュールとの間の優先制御を行なった後、ＤＭＡＣ６０に対してＲＤ／ＲＥＱ３を発行する。
【００８９】
ＲＥＱ優先指定レジスタ３４は、モジュール間における優先指定を有効にするか否かを示す情報を保持する。また、優先制御条件設定レジスタ３５は、モジュール間における優先指定が有効の場合に、ＲＤ用ＦＩＦＯ３（３２）に蓄積された有効データ数の下限値を指定する情報を保持する。
【００９０】
ＤＭＡＣ６０は、ＲＥＱ発行制御部３３ｂからＲＤ／ＲＥＱ３を受けると、ＤＤＲＩ／Ｆ５０を介して外部ＤＤＲ４に読出アドレスを出力し、ＤＭＡ転送（外部ＤＤＲ４からのデータ読み出し）を開始する。外部ＤＤＲ４から読み出されたデータは、ＤＤＲＩ／Ｆ５０を介してＲＤ用ＦＩＦＯ３（３２）に順次書き込まれる。
【００９１】
演算エンジン３（３１）は、ＲＤ用ＦＩＦＯ３（３２）に蓄積されたデータを読み出して演算処理を実行し、演算結果を表示データとしてＬＣＤ３に出力する。そして、ＬＣＤ３は、演算エンジン３（３１）から受けた表示データを表示する。
【００９２】
ＣＰＵ４０は、図示しないメモリに記憶されるプログラムを実行することにより、データ処理装置１ｂの全体的な制御を行なう。ＣＰＵ４０は、演算エンジン１（１１）、演算エンジン２（２１）および演算エンジン３（３１）の動作を観測しており、各演算エンジンがどのような演算処理を行っているかに関する情報を取得する。ＣＰＵ４０が３つのモジュールにコマンドを発行することにより動作を制御しており、各演算エンジンがどのような処理を実行しているかを観測することは容易に行なえる。
【００９３】
図７は、本発明の第２の実施の形態におけるＣＰＵ４０の処理手順を説明するためのフローチャートである。まず、ＣＰＵ４０は、演算エンジン１（１１）、演算エンジン２（２１）および演算エンジン３（３１）の動作を観測する（Ｓ４１）。ここでは、ＣＰＵ４０が、各演算エンジンが実行する演算処理内容を検出する。そして、各演算エンジンが実行する演算処理内容に応じてモジュール間における優先制御が必要か否かを判定する（Ｓ４２）。
【００９４】
モジュール間における優先制御が必要なければ（Ｓ４２，Ｎｏ）、ステップＳ４１の処理が繰り返される。また、モジュール間における優先制御が必要であれば（Ｓ４２，Ｙｅｓ）、ＣＰＵ４０は、ＲＥＱ優先指定レジスタ１４，２５および３４に優先指定を有効にすることを示す情報を格納する（Ｓ４３）。そして、ＣＰＵ４０は、優先制御条件設定レジスタ１５，２６および３５に上限値または下限値を設定する（Ｓ４４）。
【００９５】
たとえば、演算エンジン１（１１）がＣＣＤ２から画像データをリアルタイムで取り込んで外部ＤＤＲ４に書き込む場合、ＷＲ用ＦＩＦＯ１（１２）から外部ＤＤＲ４へのデータ転送が停滞してしまうとＷＲ用ＦＩＦＯ１（１２）においてオーバーフローが発生してしまう。ＣＰＵ４０は、演算エンジン１（１１）がこのような動作を行なっている場合には、カメラヘッドＩ／Ｆ１０ｂから発行されるＷＲ／ＲＥＱ１の優先度を上げ、画像処理部２０ｂから発行されるＲＤ／ＲＥＱ２およびＷＲ／ＲＥＱ２や、表示コントローラ３０ｂから発行されるＲＤ／ＲＥＱ３の優先度を下げる。
【００９６】
すなわち、カメラヘッドＩ／Ｆ１０ｂの優先制御条件設定レジスタ１５に格納する上限値を小さくしてＷＲ／ＲＥＱ１の優先度を上げ、画像処理部２０ｂの優先制御条件設定レジスタ２６に格納する下限値を小さくすると共に上限値を大きくしてＲＤ／ＲＥＱ２およびＷＲ／ＲＥＱ２の優先度を下げ、表示コントローラ３０ｂの優先制御条件設定レジスタ３５に格納する下限値を小さくしてＲＤ／ＲＥＱ３の優先度を下げる。
【００９７】
また、演算エンジン３（３１）がＬＣＤ３に画像データを表示する場合には、次ラインの画像データの表示が開始されるまでにその画像データがＲＤ用ＦＩＦＯ３（３２）に格納されている必要がある。ＣＰＵ４０は、演算エンジン３（３１）がこのような動作を行なっている場合には、表示コントローラ３０ｂから発行されるＲＤ／ＲＥＱ３の優先度を上げ、カメラヘッドＩ／Ｆ１０ｂから発行されるＷＲ／ＲＥＱ１や、画像処理部２０ｂから発行されるＲＤ／ＲＥＱ２およびＷＲ／ＲＥＱ２の優先度を下げる。
【００９８】
すなわち、カメラヘッドＩ／Ｆ１０ｂの優先制御条件設定レジスタ１５に格納する上限値を大きくしてＷＲ／ＲＥＱ１の優先度を下げ、画像処理部２０ｂの優先制御条件設定レジスタ２６に格納する下限値を小さくすると共に上限値を大きくしてＲＤ／ＲＥＱ２およびＷＲ／ＲＥＱ２の優先度を下げ、表示コントローラ３０ｂの優先制御条件設定レジスタ３５に格納する下限値を大きくしてＲＤ／ＲＥＱ３の優先度を上げる。
【００９９】
図８は、本発明の第２の実施の形態におけるＲＥＱ発行制御部１３ｂ，２４ｂおよび３３ｂの処理手順を説明するためのフローチャートである。なお、ＲＥＱ発行制御部１３ｂ，２４ｂおよび３３ｂは、図示しないＣＰＵがプログラムを実行することによって実現可能であるが、ハードウェアによって構成するようにしてもよい。また、ＲＥＱ発行制御部１３ｂ，２４ｂおよび３３ｂの処理手順は同様であるので、ＲＥＱ発行制御部と総称して説明することにする。
【０１００】
まず、ＲＥＱ発行制御部は、ＲＤ用ＦＩＦＯまたはＷＲ用ＦＩＦＯからＲＤ／ＲＥＱまたはＷＲ／ＲＥＱが発行されたか否かを判定する（Ｓ５１）。
【０１０１】
ＲＤ／ＲＥＱまたはＷＲ／ＲＥＱが発行されていなければ（Ｓ５１，Ｎｏ）、ステップＳ５１の処理を繰り返す。また、ＲＤ／ＲＥＱまたはＷＲ／ＲＥＱが発行されていれば（Ｓ５１，Ｙｅｓ）、ＲＥＱ発行制御部は、ＲＥＱ優先指定レジスタを参照して、優先指定が有効か否かを判定する（Ｓ５２）。
【０１０２】
優先指定が有効でなければ（Ｓ５２，Ｎｏ）、発行されたＲＥＱをそのままＤＭＡＣ６０に発行し（Ｓ５６）、ステップＳ５１に処理が戻る。また、優先指定が有効であれば（Ｓ５２，Ｙｅｓ）、ＲＥＱ発行制御部は、優先制御条件設定レジスタを参照して下限値または上限値を取得し、ＲＤ用ＦＩＦＯの有効データ数が下限値未満であるか、またはＷＲ用ＦＩＦＯの有効データ数が上限値を超えているか否かを判定する（Ｓ５３）。
【０１０３】
有効データ数が下限値未満であるか、有効データ数が上限値を超えていれば（Ｓ５３，Ｙｅｓ）、ＲＥＱ発行制御部は、ＲＤ／ＲＥＱまたはＷＲ／ＲＥＱをそのままＤＭＡＣ６０に発行し（Ｓ５６）、ステップＳ５１に処理が戻る。また、有効データ数が下限値以上であるか、または有効データ数が上限値を超えていなければ（Ｓ５３，Ｎｏ）、ＲＥＱ発行制御部は、他のモジュールからＤＭＡＣ６０に対してＲＥＱが発行されているか否かを判定する（Ｓ５４）。
【０１０４】
他のモジュールからＤＭＡＣ６０に対してＲＥＱが発行されていなければ（Ｓ５４，Ｎｏ）、ＲＥＱ発行制御部は、ＲＤ／ＲＥＱまたはＷＲ／ＲＥＱをそのままＤＭＡＣ６０に発行し（Ｓ５６）、ステップＳ５１に処理が戻る。この処理は、ＲＤ用ＦＩＦＯの有効データ数がすべて下限値以上であり、ＷＲ用ＦＩＦＯの有効データ数がすべて上限値以下の場合に、いずれのモジュールからもＲＥＱが発行されない状態になるのを防止するためである。
【０１０５】
また、他のモジュールからＤＭＡＣ６０に対してＲＥＱが発行されていれば（Ｓ５４，Ｙｅｓ）、ＲＥＱ発行制御部はＲＥＱの発行を遅らせる（Ｓ５５）。
【０１０６】
以上説明したように、本実施の形態におけるデータ処理装置によれば、特定のモジュールのデータ読出要求を優先する場合、そのモジュールのＲＤ用ＦＩＦＯの有効データ数の下限値を大きくし、他のモジュールのＲＤ用ＦＩＦＯの有効データ数の下限値を小さくし、ＷＲ用ＦＩＦＯの有効データ数の上限値を大きくするようにした。したがって、特定のモジュールのＲＤ用ＦＩＦＯの有効データ数を増やすことができ、ＲＤ用ＦＩＦＯにおいてアンダーフローが発生するのを防止することが可能となった。
【０１０７】
また、特定のモジュールのデータ書込要求を優先する場合、ＷＲ用ＦＩＦＯの有効データ数の上限値を小さくし、他のモジュールのＷＲ用ＦＩＦＯの有効データ数の上限値を大きくし、ＲＤ用ＦＩＦＯの有効データ数の下限値を小さくするようにした。したがって、特定のモジュールのＷＲ用ＦＩＦＯの有効データ数を減らすことができ、ＷＲ用ＦＩＦＯにおいてオーバーフローが発生するのを防止することが可能となった。
【０１０８】
また、ＦＩＦＯのオーバーフローやアンダーフローを抑制できるので、システムクロックの周波数を下げることが可能となった。また、ＦＩＦＯの容量を増やす必要がないので、チップ面積が大きくなるのを防止することが可能となった。
【０１０９】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１１０】
１ａ，１ｂ，１００，１００’  データ処理装置、２，５００  ＣＣＤ、３，６００  ＬＣＤ、４，４００  外部ＤＤＲ、１０ａ，１０ｂ  カメラヘッドＩ／Ｆ、１１，２１，３１，１０１，１１１，１２１，１３１  演算エンジン、１２，２３，１０２，１１２，１２３  ＷＲ用ＦＩＦＯ、１３ａ，１３ｂ，２４ａ，２４ｂ，３３ａ，３３ｂ  ＲＥＱ発行制御部、１４，２５，３４  ＲＥＱ優先指定レジスタ、１５，２６，３５  優先制御条件設定レジスタ、２０ａ，２０ｂ  画像処理部、２２，３２，１０３，１２２，１３２  ＲＤ用ＦＩＦＯ、３０ａ，３０ｂ  表示コントローラ、４０  ＣＰＵ、５０，３００  ＤＤＲＩ／Ｆ、６０，２００  ＤＭＡＣ。
【図１】
2010257128.tif 000003
【図２】
2010257128.tif 000004
【図３】
2010257128.tif 000005
【図４】
2010257128.tif 000006
【図５】
2010257128.tif 000007
【図６】
2010257128.tif 000008
【図７】
2010257128.tif 000009
【図８】
2010257128.tif 000010