(57)【要約】【課題】本発明は、リアルタイム性を保証しながらメモリのアクセス効率を高めるメモリ制御装置を提供すること。【解決手段】複数のバスマスタとメモリとの間のデータ転送を制御するメモリ制御装置は、複数のバスマスタからのデータ転送要求を格納するキュー手段と、新たにデータ転送要求が出力された場合に、キュー手段に格納されているデータ転送要求によるデータ転送に要する時間の合計に基づいて、新たに出力されたデータ転送要求を前記キュー手段に格納するか否かを制御する制御手段とを備える。【選択図】図１
2014157410.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタとメモリとの間のデータ転送を制御するメモリ制御装置において、
前記複数のバスマスタからのデータ転送要求を格納するキュー手段と、
新たに前記データ転送要求が出力された場合に、前記キュー手段に格納されているデータ転送要求によるデータ転送に要する時間の合計に基づいて、前記新たに出力されたデータ転送要求を前記キュー手段に格納するか否かを制御する制御手段とを備えるメモリ制御装置。
【請求項２】
前記制御手段は、前記キュー手段に格納されているデータ転送要求によるデータ転送に要する時間の合計に、実行中のデータの転送が完了するまでの時間を加えた値が、閾値を超える場合、前記新たに出力されたデータ転送要求を前記キュー手段に格納しないようにすることを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記キュー手段は、所定数のデータ転送要求を格納することが可能であり、
前記制御手段は、前記キュー手段に格納されているデータ転送要求によるデータ転送に要する時間の合計に、実行中のデータの転送が完了するまでの時間を加えた値が、閾値を超える場合、前記キュー手段に空きがある場合でも、前記新たなデータ転送要求を前記キュー手段に格納しないようにすることを特徴とする請求項２に記載のメモリ制御装置。
【請求項４】
前記制御手段は、前記キュー手段に格納されているデータ転送要求によるデータ転送に要する時間の合計に、前記新たに出力されたデータ転送要求によるデータ転送に要する時間を加えた値が、前記閾値を超えない場合、前記実行中のデータ転送が完了した後、前記新たなデータ転送要求を前記キュー手段に格納することを特徴とする請求項２に記載のメモリ制御装置。
【請求項５】
前記制御手段は、前記キュー手段に格納するのを待つデータ転送要求が複数ある場合、前記キュー手段に格納するのを待つ複数のデータ転送要求のうち、優先度が高い方のバスマスタから出力されたデータ転送要求を選択し、選択したデータ転送要求によるデータ転送に要する時間を、前記キュー手段に格納されているデータ転送要求によるデータ転送に要する時間の合計に加えた値が、前記閾値を超えるか否かに応じて、前記実行中のデータ転送が完了した後に、前記選択したデータ転送要求を前記キュー手段に格納するか否かを決めることを特徴とする請求項３に記載のメモリ制御装置。
【請求項６】
前記複数のバスマスタは、所定の期間ごとに繰り返しデータ転送要求を発行する第１のバスマスタを含み、前記閾値は、前記第１のバスマスタからのデータ転送要求によるデータ転送に要する時間に基づいて決められることを特徴とする請求項２に記載のメモリ制御装置。
【請求項７】
前記制御手段は、前記第１のバスマスタの動作状態に従って、前記閾値を切り替えることを特徴とする請求項６に記載のメモリ制御装置。
【請求項８】
前記制御手段は、前記第１のバスマスタからデータ転送要求が繰り返し出力される期間においては第１の閾値を設定し、前記第１のバスマスタからデータ転送要求が繰り返し出力されない期間においては、第２の閾値を設定することを特徴とする請求項７に記載のメモリ制御装置。
【請求項９】
前記第１のバスマスタは、所定のリアルタイム処理のためのデータ転送要求を出力し、前記制御手段は、前記所定のリアルタイム処理の周期と処理時間とに基づいて前記第１の閾値を決定することを特徴とする請求項６から８のいずれか１項に記載のメモリ制御装置。
【請求項１０】
前記制御手段は、前記キュー手段に格納されているデータ転送要求によるデータ転送に要する時間を、前記データ転送要求により要求されるデータ長に基づいて決定することを特徴とする請求項１に記載のメモリ制御装置。
【請求項１１】
複数のバスマスタとメモリとの間のデータ転送を制御するメモリ制御方法において、
前記複数のバスマスタからのデータ転送要求をキュー手段に格納するキューステップと、
新たに前記データ転送要求が出力された場合に、前記キュー手段に格納されているデータ転送要求によるデータ転送に要する時間の合計に基づいて、前記新たに出力されたデータ転送要求を前記キュー手段に格納するか否かを制御する制御ステップとを備えるメモリ制御方法。
【請求項１２】
被写体像を光電変換して画像データを出力する撮像手段と、
画像データを処理する第１の処理手段と、
画像データを用いて前記第１の処理手段とは異な第２の処理を行う第２の処理手段と、
画像データを記憶するメモリと、
前記撮像手段からの前記メモリに対するデータ転送要求と、前記第１の処理手段からの前記メモリに対するデータ転送要求と、前記第２の処理手段からの前記メモリに対するデータ転送要求とを格納するキュー手段と、
新たに前記データ転送要求が出力された場合に、前記キュー手段に格納されているデータ転送要求によるデータ転送に要する時間の合計に基づいて、前記新たに出力されたデータ転送要求を前記キュー手段に格納するか否かを制御する制御手段とを備える
撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置に関し、特に共通メモリへの複数のマスタによるアクセスを制御するメモリ制御装置に関する。
【背景技術】
【０００２】
近年、デジタルスチルカメラやビデオカメラなどの撮像装置において、高解像度化が進んでいる。そのため、画像処理の中間画像等を記憶するための大規模記憶部としてＳＤＲＡＭ(Ｓｙｎｃｈｒｏｎｏｕｓ Ｄｙｎａｍｉｃ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ)等の揮発性メモリが用いられることが多くなっている。また、顔検出や手ブレ補正といった撮影アシスト機能の多様化によりＳＤＲＡＭにアクセスする機能が増えており、メモリバスのアクセス効率を高めることが求められている。
【０００３】
また、ＳＤＲＡＭではリードアクセスとライトアクセスの切り替え時はデータの衝突を避けるため一定期間を開ける必要があるためアクセス効率が低下する。そこで、アクセスの効率化のための技術が提案されている。例えば、特許文献１では複数のバスマスタからの転送要求の内容と、現在のＳＤＲＡＭへのアクセス状態を考慮し、アクセス効率が良くなるように転送要求を調停する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−３５６９６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、この方法の場合は、マスタ間の優先度設定とアクセス効率のどちらを優先するかを選択する必要がある。例えば、撮像装置では、撮像センサからのデータ入力や液晶パネルへの表示出力といったリアルタイム処理が必要な機能があり、アクセス効率を優先するとリアルタイム性が保証できないという問題がある。
【０００６】
そこで、本発明は、リアルタイム性を保証しながらメモリのアクセス効率を高めるメモリ制御装置の提供を目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、複数のバスマスタとメモリとの間のデータ転送を制御するメモリ制御装置は、複数のバスマスタからのデータ転送要求を格納するキュー手段と、新たにデータ転送要求が出力された場合に、キュー手段に格納されているデータ転送要求によるデータ転送に要する時間の合計に基づいて、新たに出力されたデータ転送要求を前記キュー手段に格納するか否かを制御する制御手段とを備える。
【発明の効果】
【０００８】
本発明によれば、リアルタイム処理を保証し、かつ、そのためにキュー（待ち行列）に対して新たに転送要求を格納するための条件が必要以上に厳しくなることを防止して、メモリバスのアクセス効率を向上することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１の実施例に係るメモリ制御装置を適用した撮像装置の構成を示す図である。
【図２】本発明の第１の実施例に係るメモリ制御装置おけるキューの制御動作を説明するための図である。
【図３】本発明の第２の実施例に係るメモリ制御装置を適用した撮像装置の構成を示す図である。
【図４】本発明の第２の実施例に係るメモリ制御装置における閾値制御を説明するための図である。
【図５】本発明の第２の実施例に係るメモリ制御装置おけるキューの制御動作を説明するための図である。
【発明を実施するための形態】
【００１０】
以下、本発明の好適な実施形態を図面を参照して詳細に説明する。
【実施例１】
【００１１】
図１は、本発明の第１の実施例に係るメモリ制御装置を適用した撮像装置の構成を示す図である。本撮像装置の各部は、図示しない制御部（ＣＰＵ）によって制御される。以下、図１について説明する。
【００１２】
図１において、タイミングジェネレータ１０１は撮影時の動作モードに合わせて、水平垂直の同期信号を生成し、センサ駆動制御部１０２へ出力する。センサ駆動制御部１０２は、同期信号に基づいて、撮像センサ１０３の電荷蓄積やデータ出力を制御するための制御パルスを生成し、撮像センサ１０３へ出力する。撮像センサ１０３は、制御パルスに従って駆動され、被写体像を光電変換して動画データを出力する。撮像処理部１０４は、撮像センサ１０３から出力された動画データの各フレームに対して欠陥画素補正、シェーディング補正などをリアルタイムに適正に行う画像処理部である。処理されたデータはメモリバス１０５、メモリコントローラ１０６を経由してＳＤＲＡＭ１０７に記録される。
【００１３】
顔検出部１０８は、メモリバス１０５、メモリコントローラ１０６を経由してＳＤＲＡＭ１０７に記録されている撮像処理後の画像データを読み出し、人物の顔を検出する。現像処理部１０９は、メモリバス１０５、メモリコントローラ１０６を経由してＳＤＲＡＭ１０７に記録されている撮像処理後の画像データを読み出し、現像処理を行う。例えば、画素補間やフィルタ処理、縮小といったリサイズ処理や色変換処理、例えば圧縮画像データに保存するのに最適なフォーマットであるＹ、Ｃｂ、Ｃｒ形式のフォーマットに変換する処理などを行う。そして現像処理部１０９は、処理後の画像をメモリバス１０５、メモリコントローラ１０６経由でＳＤＲＡＭ１０７に記録する。表示制御部１１０は、メモリバス１０５、メモリコントローラ１０６を経由して、現像処理後の画像データを読み出し、表示部１１１に出力する。符号化部１１２は、メモリバス１０５、メモリコントローラ１０６を経由し、ＳＤＲＡＭ１０７より現像処理後の画像を読み出し、Ｈ．２６４等の圧縮・符号化処理を行い、記録媒体１１３に記録する。制御部１２１はＣＰＵを有し、撮像装置の各部の動作を制御する。
【００１４】
次にメモリコントローラ１０６内部の構成について説明する。調停部１１４は、複数のバスマスタからのデータ転送要求に対して、予め設定される優先度に沿って一つのバスマスタを選択し、キュー１１５、キュー制御部１１６に出力する。そして、データ転送要求をキュー１１５に格納するとバスマスタに対して転送要求受付を通知する。
【００１５】
各マスタからの転送要求は、ＳＤＲＡＭ１０７におけるアクセス先のアドレス、転送を要求するデータのデータ長（データ量、以下バースト長）、及び、書き込みまたは読み出しの指示を含む。調停部１１４は、転送要求を受け付けない場合は要求受付の応答（アクノレッジ）をマスタに送信しない。そのため、各マスタは、自身が出力した転送要求の受付応答を調停部１１４より受信するまでの間、所定のタイミングで繰り返し同じ転送要求を出力し続ける（第１のバスマスタ）。
【００１６】
キュー１１５は、キュー制御部１１６からの指示に応じて、転送要求を格納する。キュー処理時間算出部１１７は、キュー１１５に格納されている転送要求に含まれるバースト長に基づいて、キュー１１５に格納されている全ての転送要求によるデータ転送を完了するために必要な時間を算出し、キュー制御部１１６に出力する。キュー制御部１１６は、キュー処理時間算出部１１７からの転送処理時間と、閾値設定部１１８からのキュー投入閾値を比較し、その結果に基づいてキュー１１５に対して新たに転送要求を格納するか否かを決定するように制御する。なお、本実施例では、データの転送に要する時間はバースト長に基づいて決まるものとし、各バスマスタによる転送時間の差異は無いものとする。キュー１１５は、調停部１１４から出力された転送要求（コマンド）を保持する。キュー１１５は、それぞれが一つの転送要求を異なる優先度で保持する複数（所定数）の保持部を含む。
【００１７】
閾値設定部１１８は、制御部１２１からの制御に応じてキュー閾値を設定し、キュー制御部１１６へ出力する。コマンド制御部１１９は、キュー１１５から出力された転送要求に応じて、ＳＤＲＡＭ１０７へアクセスするためのアクティブコマンド等のメモリアクセスコマンドや、バンクやページ等のアドレスをＳＤＲＡＭ１０７に発行する。データ制御部１２０は、メモリバス１０５とＳＤＲＡＭ１０７とのデータ転送を制御する。
【００１８】
ＳＤＲＡＭ１０７は、複数のバンクで構成されており、更に各バンクは複数のページで構成されている。ＳＤＲＡＭ１０７に対するアクセスは、バンクとページを指定しアクティブコマンドを発行することでアクセスするページを活性化し、列アドレスの指定とリード・ライトといったメモリコマンドを発行することで実現される。
【００１９】
ＳＤＲＡＭ１０７の同一ページに対し、二つのコマンドにより連続にアクセスする場合は、これら二つのコマンドの間にアクティブコマンドを発行することなく、列アドレスとメモリアクセスコマンドを発行することができる。また、ＳＤＲＡＭ１０７において、直前のコマンドによるアクセス先と同一バンクの異なるページにアクセスする場合、これまでアクセスしていたページを非活性化するためのプリチャージコマンドを発行した後に、次にアクセスしたいページにアクティブコマンドを発行する。
【００２０】
図２は、本実施例に係るメモリ制御装置のキュー１１５の制御動作を説明するための図である。なお、図２においては、各バスマスタからの転送要求は、データ読み出しコマンド、或いは、データ書き込みコマンドの何れのコマンドでもよいものとする。
【００２１】
同図において、（１）は処理の時間経過を説明するための時間軸である。（２）は、タイミングジェネレータが生成する水平同期信号であり、この周期で撮像センサ１０３から画像データが読み出される。（３）〜（７）は現像処理部１０４、顔検出部１０８、現像処理部１０９、表示制御部１１０、符号化部１１２からの転送要求である。（８）はキュー１１５の状態を示している。ここでは、キュー１１５は１−３で示す三つの保持部を有している。数字が低いほど優先度が高いものとする。（９）は、キュー処理時間算出部が算出したキューに格納されている全ての転送要求によるデータの転送が完了するまでの処理時間を示している。（１０）は閾値設定部１１８に設定される閾値である。（１１）はアドレスバスによりＳＤＲＡＭ１０７に対して発行されるコマンドを示している。アドレスバスにより、アクティブコマンド等のコマンドや、バンク位置等のアドレスを指定するアドレスが発行される。（１２）は、データバスによりＳＤＲＡＭ１０７と各バスマスタの間で転送されるデータを示している。
【００２２】
図１、図２を用いて本実施例に係るメモリ制御装置のキュー制御動作について説明する。本実施例において、撮像処理部１０４の転送は、水平同期信号の周期に合わせて処理することが要求されるリアルタイム処理（第１の処理）である。また、他の転送はＳＤＲＡＭから画像を読み出して処理するため、非リアルタイム処理（第２の処理）として説明する。ここで、調停部１１４での優先度は撮像処理部＞顔検出部＞現像処理部＞表示制御部＞符号化部の順番とする。
【００２３】
図２において、撮像処理部の処理周期である水平同期信号の周期は２１マイクロ秒（μｓ）であり、撮像処理部の転送時間は６μｓのため、撮像処理部１０４から転送要求が出力されてから１５（２１−６）μｓ以内にＳＤＲＡＭ１０７へのデータの転送を開始する必要がある。そこで、閾値設定部１１８は、閾値を１５μｓに設定する。これにより、リアルタイム処理の実行を保証する。なお、上述したように転送要求のキュー１１５への格納はキュー制御部１１６が制御する。
【００２４】
キュー処理時間算出部１１７は、キュー１１５に格納されている全ての転送要求によるデータ転送に要する時間と現在ＳＤＲＡＭ１０７へ転送中のデータの転送が完了するまでの処理時間の合計値を算出する。ＳＤＲＡＭ１０７へのデータ転送が進むと処理時間は変化するが、説明を簡単にするため、転送要求によるデータ転送のための転送時間の最大値を使用して説明する。時刻Ｔ０では、バスマスタからの転送要求はなく、ＳＤＲＡＭ１０７との転送は行われていない。時刻Ｔ１に顔検出部１０８からの転送要求が出た時点ではＳＤＲＡＭ１０７との転送は行われていない。そのため、転送要求はキュー１１５に格納されることなくコマンド制御部１１９に出力され、コマンド制御部１１９によりコマンドＣ２が発行される。また、顔検出部１０８との間のとデータＤ２が開始される。また、キュー処理時間算出部１１７は、顔検出部１０８からの転送要求によるデータ転送に要する処理時間である５μｓをキュー処理時間とする。
【００２５】
時刻Ｔ２に現像処理部１０９からの転送要求が発行された時点では、キュー転送処理時間は５μｓであり、現像処理部１０９の転送処理時間５μｓを加算しても閾値１５μｓを超えない。そのため、キュー制御部１１６は、現像処理部１０９からの転送要求をキュー１１５に格納する。また、キュー処理時間算出部１１７により、キュー処理時間は現像処理部１０９の転送処理時間が加算され１０μｓとなる。
【００２６】
時刻Ｔ３に表示制御部１１０からの転送要求が発行された時点では、キュー処理時間は１０であり、表示制御部１１０の転送処理時間５μｓを加算しても閾値１５μｓを超えない。そのため、キュー制御部１１６は、現像処理部１０９からの転送要求をキュー１１５に格納する。
【００２７】
次に、キュー処理時間算出部１１７により、表示制御部１１０の転送処理時間が加算され、キュー処理時間は１５μｓとなる。時刻Ｔ４に符号化部１１２からの転送要求が発行された時点では、キュー処理時間は１５μｓであり、符号化部１１２からの転送要求によるデータ転送に要する時間６μｓを加算すると閾値１５μｓを超えてしまう。そのため、キュー制御部１１６は、キュー１１５に空きがあっても、新たな転送要求をキュー１１５に格納するのを禁止する。
【００２８】
時刻Ｔ５に顔検出部１０８のデータ転送が完了すると、キュー１１５に格納された転送要求のうち、一番優先度が高い現像処理部１０９からの転送要求３がコマンド制御部１１９に出力され、データ転送が開始される。そして、キュー処理時間算出部１１７により、転送完了した顔検出部１０８からの転送要求による処理時間を除く、キュー１１５に格納された転送要求によるデータ転送の時間を再計算する。ここでは１０μｓとなる。キュー制御部１１６は、再度計算されたキュー処理時間に基づいて、格納待ちになっている符号化部１１２からの転送要求５をキュー１１５に格納するか否かを決める。ここでは、キュー処理時間１０μｓと格納待ちになっている符号化部１１２からの転送要求による処理時間６μｓの合計が閾値１５μｓを超えているので、キュー制御部１１６は、符号化部１１２からの転送要求５をキュー１１５に格納しない。
【００２９】
撮像処理部１０４の方が符号化部１１２よりも優先度が高いため、時刻Ｔ６に撮像処理部１０４からの転送要求１が発行された時点では、調停部１１４が選択する転送要求は撮像処理部１０４からの転送要求１となる。そして、キュー制御部１１６は、この転送要求１をキュー１１５に格納するか否かを判定する。ここでは、キュー処理時間１０μｓと撮像処理部１０４の転送処理時間６μｓが閾値１５μｓを超えているので、キュー制御部１１６は、撮像処理部１０４からの転送要求１をキュー１１５に格納しない。
【００３０】
時刻Ｔ７に現像処理部１０９のデータ転送が完了すると、キュー１１５に格納された転送要求のうち一番優先度が高い表示制御部１１０からの転送要求がコマンド制御部１１９に出力され、データ転送が開始される。そして、キュー制御部１１６により、キュー１１５への格納待ちである現像処理部１０４からの転送要求１をキュー１１５に格納するか否かを判定する。ここでは、表示制御部１１０からの転送要求４によるキュー処理時間５μｓと撮像処理部１０４からの転送要求による処理時間６μｓの合計が閾値１５μｓを超えない。そのため、キュー制御部１１６は、撮像処理部１０４からの転送要求１をキュー１１５に格納する。
【００３１】
時刻Ｔ８に表示制御部１１０のデータ転送が完了すると、キュー制御部１１６は、キュー格納待ちであった符号化部１１２からの転送要求５をキュー１１５に格納する。また、キュー１１５に格納された転送要求のうち一番優先度が高い撮像処理部１０４からの転送要求がコマンド制御部１１９に出力され、データ転送が開始され、時刻Ｔ９に完了する。時刻Ｔ１０に撮像処理部１０４からの２回目の転送要求が出た時点で１回目の転送が完了しているため、リアルタイム処理が保証される。
【００３２】
なお、図２に示した動作は一つの例示に過ぎず、例えば各処理の転送要求が図とは異なる順序で与えられた場合などでも上述し本発明の技術思想に従って同様の動作が行われる。また、撮像装置以外の処理装置のメモリ制御においても、当該処理装置が行う処理に対して同様のメモリ制御構成を達成することが可能である。
【００３３】
以上説明したように、本発明の第１の実施例によれば、リアルタイム処理が破綻する限界までキューを有効活用することが可能となり、メモリアクセスの効率を高めることが可能となる。
【実施例２】
【００３４】
次に、本発明の第２の実施例について説明する。第１の実施例では、リアルタイム処理部が破綻しない限界値を閾値として設定することでリアルタイム処理を保証しながらアクセス効率を向上している。そのため、リアルタイム処理が要求される期間以外の期間についても、閾値によりキュー１１５への新たな転送要求の格納が制限されてしまうことがある。そこで、本実施例では、メモリ制御装置が適用されている装置の動作状態（モード）に応じて閾値を適応的に変えることで、キュー１１５に対して新たに転送要求が格納される確率を上げ、アクセス効率を高める構成にする。
【００３５】
図３は、本実施例に係わるメモリ制御装置を適用した撮像装置の構成を示す図である。図３において、前記第１の実施例と同一の構成要素には、同一の符号を付して示し、その動作については説明を省略する。
【００３６】
タイミングジェネレータ１０１は撮影時の動作モードに合わせて、水平垂直の同期信号を生成し、撮像センサ制御部１０２へ出力する。また、撮影時の出力仕様に合わせて垂直期間のなかで有効画像が出力される期間とそれ以外の期間を区別するためのフラグを生成し、閾値設定部３０１へ出力する。
【００３７】
閾値設定部３０１は、有効画像が出力される期間用の第１の閾値とそれ以外の期間用の第２の閾値を設定し、タイミングジェネレータ１０１からのフラグに応じてキュー制御部１１６へ出力する閾値を切り替える。
【００３８】
図４は、本実施例に係るメモリ制御置のキュー制御動作、特に、１枚の画像を読み出す周期における閾値制御動作を説明するための図である。
【００３９】
同図において、（１）は垂直同期信号であり、この周期で１フレームの動画像データが撮像処理部の動作で読み出される。（２）は、撮像センサ１０３から出力されるデータの内容を示している。撮像センサ１０３の出力は、撮像センサ１０３に結像された被写体像の画像データが出力される有効画像データ期間と、ＯＢ（オプティカルブラック）レベル等の基準データ出力期間に分けられる。ここで、基準データは撮像処理での補正処理に利用するデータであり、有効画像期間のデータのみＳＤＲＡＭに記録される。
【００４０】
（３）はキュー１１５に対し転送要求を格納するか否かを判別するための閾値を切り替えるフラグであり、有効画像期間と基準データ期間で切り替えられる。（４）は水平同期信号であり、この周期で撮像センサ１０３から水平ラインの画像データが読み出される。ここで、破線４０１で示した有効画像期間では水平同期信号に合わせて周期的に入力画像を処理し続ける必要があり、第１の実施例で説明したリアルタイム処理が必要となる。
【００４１】
しかし、破線４０２で示した基準データ期間では、撮像センサの出力をＳＤＲＡＭに記録しないのでリアルタイム処理は不要となる。
【００４２】
図５は、図４で示した破線４０２の期間のキュー制御動作を説明するための図である。同図において、前記第１の実施例のキュー制御動作を説明するための図２と同一の構成要素には、同一の符号を付して示し、その動作については説明を省略する。
【００４３】
図５において、（１１）は、ＳＤＲＡＭに対して、アクティブコマンド等のコマンド発行と、バンク位置等のアドレスを指定するアドレスバスである。ＳＤＲＡＭへのコマンド発行はバンク単位で実行されており、バンク単位のコマンドを示している。本実施例では、ＳＤＲＡＭへの転送処理時間を各コマンド処理とデータ転送処理で示す。ここで、各種コマンド発行時間は１μｓ、データ転送は1バーストあたりの処理時間が１μｓであるとして説明する。なお、図５では、有効画像が出力される期間（リアルタイム処理が必要な期間）のための第１の閾値は２０μｓ、それ以外の期間（リアルタイム処理の不要期間）のための第２の閾値は５０μｓとしている。
【００４４】
図５（Ａ）は、有効画像期間に対応する第１の閾値が設定される場合のキュー制御動作を説明するための図である。同図（Ａ）を用いて、第１の閾値の場合のキュー制御の動作について説明する。
【００４５】
時刻Ｔ０では、バスマスタからの転送要求はなく、ＳＤＲＡＭとの転送は行われていない。時刻Ｔ１に顔検出部１０８からの転送要求が出た時点ではＳＤＲＡＭと各バスマスタとの間のデータ転送は行われていない。このため、転送要求はキューに格納されることなく、アクセスするページを活性化するアクティブコマンド(以下、ＡＣＴと略す)がコマンド制御部１１９により発行される。
【００４６】
顔検出部１０８の転送要求はバンク０、ページ０に対するリードアクセスであるため、バンク０に対してＡＣＴが発行される。また、キュー処理時間算出部１１７は、転送内容よりコマンド発行回数とバースト幅を判定し、キュー処理時間を算出する。時刻Ｔ１では、コマンド発行回数：２回とバースト幅：３より処理時間は５μｓとなる。時刻Ｔ２では、メモリアクセスコマンドであるリードコマンド(以下、ＲＤと略す)が発行される。時刻Ｔ２に現像処理部１０９からの転送要求が出ると、転送内容よりコマンド発行回数とバースト幅を判定する。現像処理部１０９の転送要求はバンク０、ページ１に対するライトアクセスであり、同一バンクの別ページに対するアクセスとなる。このため、プリチャージコマンド(以下、ＰＲＥと略す)で現在のページを非活性化し、ＡＣＴで次のページを活性化し、メモリアクセスコマンドを発行する必要がある。
【００４７】
このため、コマンド発行回数：３回とバースト幅：３より処理時間は６μｓとなる。この時点のキュー転送処理時間５μｓであり、現像処理部１０９の転送処理時間５μｓを加算しても第１の閾値２０μｓを超えないため、キュー制御部１１６は、現像処理部１０９からの転送要求をキュー１１５に格納する。また、キュー処理時間は現像処理部１０９の転送処理時間が加算され１１μｓとなる。時刻Ｔ３に表示制御部１１０からの転送要求が出ると、キュー処理時間算出部１１７は、この転送要求単体での最大処理時間を算出する。コマンド発行回数は同一バンク同一ページの場合に最大の３回となるため、コマンド発行回数：３回とバースト幅より６μｓとなる。
【００４８】
この時点のキュー転送処理時間は１１μｓであり、表示制御部１１０の転送処理時間６μｓを加算しても閾値２０μｓを超えない。そのため、キュー制御部１１６は、
表示制御部１１０からの転送要求をキュー１１５に格納する。次に、キュー制御部１１６は、この時点でキュー１１５に格納されている各転送要求と、実行中の転送要求によるデータの転送状態とを比較し、キュー１１５に格納された転送要求の順序を売れ変えることにより、転送処理に要する時間が短くなるか否かを判別する。そして、キュー１１５に格納された転送要求の実行順序を入れ替えることにより処理時間が短くなると判断した場合、キュー制御部１１６は、キュー１１５に格納された転送要求の実行順序を変更するリオーダ処理を実行する。
【００４９】
例えば、図５において、時刻Ｔ３に発行された表示制御部１１０からの転送要求４はバンク０、ページ２に対するリードアクセスであり、現在実行中の顔検出部１０８からの転送要求によるバンクと同じである。また、キュー１１５に格納済みの転送要求３も、バンク０へのアクセス要求である。同一バンクに対する、先に実行されるコマンドによるデータ転送が完了するまでは次のコマンドを発行することができないので、キュー１１５に格納された転送要求３と転送要求４の順序を入れ替えても、処理時間は変わらない。そのため、この場合は、キュー１１５に格納された転送要求のリオーダは行われない。また、キュー制御部１１６によりリオーダ処理を実行した場合、キュー制御部１１６は、キュー処理時間算出部１１７による、実際の転送処理時間の算出を実行させる。
【００５０】
表示制御部１１０からの転送要求４は、現像処理部１０９からの転送要求３と同じバンク、同じページへのアクセス要求である。そのため、処理時間は変化せず６μｓとなり、時刻Ｔ３時点の転送処理時間１１μｓと加算され１７μｓとなる。時刻Ｔ４に符号化部１１２から転送要求５が発行されると、時刻Ｔ３と同様に、キュー処理時間算出部１１７により転送要求単体での最大処理時間を算出する。時刻Ｔ４に符号化部１１２から転送要求５が発行された時点では、キュー転送処理時間は１７μｓであり、符号化部１１２からの転送要求５による処理時間６μｓを加算すると閾値２０μｓを超える。このため、キュー制御部１１６は、キューに空きがあっても符号化部１１２からの転送要求のキューへの格納を禁止する。
【００５１】
時刻Ｔ５に顔検出部１０８からのデータ転送が完了すると、キュー１１５に格納された転送要求のうち、一番優先度が高い現像処理部１０９からの転送要求３がコマンド制御部１１９に出力され、ＳＤＲＡＭ１０７に対して現像処理部１０９からのデータ転送が開始される。そして、キュー処理時間算出部１１７により、転送完了した顔検出部１０８の転送時間を除いたキュー処理時間を再計算する。キュー制御部１１６は、このキュー処理時間に基づいて、キュー１１５への新たな転送要求を格納するか否かを判定する。ここでは、キュー処理時間１１μｓと符号化部１１２からの転送要求５による処理時間６μｓが閾値２０μｓを超えないのでキューに格納される。ここで、Ｔ３と同様にリオーダの判定が行われる。
【００５２】
符号化部１１２からの転送要求５はバンク１、ページ０に対するアクセスであり、現像処理部１０９からデータ転送が行われているバンク０とは異なるバンクへのアクセスとなる。そのため、バンク０に対する現像処理部１０９からのデータ転送が完了する前に、符号化部１１２からの転送要求５によるコマンドをバンク１に発行することが可能となり、その分、処理が完了するまでに要する時間が短くなる。そこで、この場合、キュー制御部１１６は、キュー１１５に格納された転送要求４と転送要求５の順序を変更し、符号化部１１２からの転送要求５を、一番優先度が高い位置に格納する。また、コマンド制御部１１９により、現像処理部１０９からの転送処理のために、ページの不活性化のためのＰＲＥが発行される。時刻Ｔ６では、現像処理部１０９のアクセスするページを活性化するためのＡＣＴが発行される。
【００５３】
時刻Ｔ７では、ライトのためのメモリアクセスコマンドであるライトコマンド(以下、ＷＲと略す)がコマンド制御部１１９により発行される。時刻Ｔ８では、現像処理部１０９のデータ転送が開始される。次に転送処理される符号化部１１２からの転送要求５によるアクセス先のバンク１は、現像処理部１０９からの転送要求３によるアクセス先であるバンク０と異なるため、現像処理部１０９からＳＤＲＡＭ１０７のバンク０へのデータ転送処理中に、バンク１に対して転送要求５によるコマンドを発行することが可能である。そのためコマンド制御部１１９は、キュー１１５の一番優先度が高い位置に格納された転送要求５に基づき、バンク１に対し、時刻Ｔ９にＡＣＴコマンドを発行し、時刻Ｔ１０にＲＤを発行する。
【００５４】
時刻Ｔ１１に現像処理部１０９からのデータ転送が完了すると、次のバンク０へのアクセスのため、コマンド制御部１１９によりＰＲＥが発行される。また、キュー１１５に格納された転送要求のうち、一番優先度が高い符号化部１１２からの転送要求５がコマンド制御部１１９に出力され、転送処理が開始されるが、ライトデータとリードデータの衝突を避けるため、コマンド制御部１１９は、時刻Ｔ１２まで転送要求５によるＡＣＴコマンドの発行を停止する。
【００５５】
時刻Ｔ１３〜Ｔ１４では、時刻Ｔ９〜Ｔ１０と同様に次の転送が異なるバンクとなるため、コマンド制御部１１９によりＡＣＴとＷＲが発行される。時刻Ｔ１５に符号化部１１２へのデータ転送が完了すると、次のバンク１へのアクセスのため、コマンド制御部１１９によりＰＲＥが発行される。また、ＳＤＲＡＭ１０７から表示制御部１１０へのデータの転送が開始される。時刻Ｔ１６に表示制御部１１０へのデータの転送が完了すると、次のバンク０へのアクセスのため、コマンド制御部１１９によりＰＲＥが発行される。
【００５６】
図５（Ｂ）は、有効画像期間と基準データ期間で閾値を切り替える場合のキュー制御動作を説明するための図である。ここで、図５（Ａ）と同じ動作については説明を省略する。
【００５７】
図５（Ｂ）では、図４において（３）で示した閾値制御フラグに応じて、キュー１１５に対して転送要求を格納するか否かを判別するための閾値を第１の閾値から第２の閾値に切り替えたときのキュー制御の動作を、図５（Ａ）と同様の転送要求があった場合について示している。
【００５８】
時刻Ｔ４に符号化部１１２からの転送要求５が発行されると、時刻Ｔ３と同様に、キュー処理時間算出部１１７により、この転送要求単体での最大処理時間を算出する。時刻Ｔ４に符号化部１１２からの転送要求５が発行された時点では、キュー転送処理時間は１７μｓであり、符号化部１１２からの転送要求による処理時間６μｓを加算しても第２の閾値５０μｓを超えない。そのため、キュー制御部１１６は、この符号化部１１２からの転送要求５をキュー１１５に格納する。ここで、時刻Ｔ３と同様に、キュー制御部１１６により、キュー１１５に格納された各転送要求のリオーダの判定が行われる。符号化部１１２からの転送要求５はバンク１、ページ０に対するリードアクセスであり、時刻Ｔ３時点でアクセスされているバンク０とは異なるバンクへのアクセスとなる。そのため、キュー制御部１１６は、新たに格納した転送要求５を、キュー１１５における一番優先度が高い位置に格納する。
【００５９】
ここで、Ｔ４の時点でキュー１１５に格納されている、現像処理部１０９からの転送要求３と、表示制御部１１０からの転送要求４は何れも、符号化部１１２からの転送要求５のアクセス先であるバンク１とは異なるバンク０へのアクセス要求である。しかし、表示制御部１１０からの転送要求４と符号化部１１２からの転送要求５は何れも、読み出しコマンド（リードコマンド）である。一方、現像処理部１０９からの転送要求３は書き込みコマンド（ライトコマンド）である。リードコマンドに続けてライトコマンドを発行する場合、データバスでの衝突を防止するため、リードコマンドの完了後、一定時間空けてから次のコマンドを発行させる必要がある。一方、リードコマンドを連続して発行する場合は、先のコマンドによる処理が完了した後、一定時間を待たずに次のコマンドを発行することができるので、リードコマンドとライトコマンドを交互に発行するよりも処理時間ロスが少ない。そのため、キュー制御部１１６は、リードコマンドが連続するように、表示制御部１１０からの転送要求４を、キュー１１５における２番目の優先度の位置に格納する。
【００６０】
符号化部１１２からの転送要求は、時刻Ｔ４において顔検出部１０８へのデータ転送中のバンク０と異なるバンク１である。そのため、コマンド制御部１１９は、転送要求２による顔検出部１０８へのデータ転送が完了する前に、バンク１に対し、先行してＡＣＴとＲＤをと発行する。時刻Ｔ６で顔検出部１０８へのデータ転送が終了すると、符号化部１１２からの転送要求５によるデータ転送処理が開始される。また、次の表示制御部１１０からの転送要求４のために、コマンド制御部１１９により、バンク０に対し、時刻Ｔ６〜Ｔ８でＰＲＥ、ＡＣＴ、ＲＤが発行される。
【００６１】
時刻Ｔ９で符号化部１１２からの転送要求５によるデータ転送が終了すると、コマンド制御部１１９により、バンク１の次の転送のためにＰＲＥが発行される。また、表示制御部１１０からの転送要求４によるデータ転送処理が開始される。時刻Ｔ１１で表示制御部１１０へのデータ転送が終了すると、コマンド制御部１１９により、時刻Ｔ１１〜Ｔ１４で次の現像処理部１０９からの転送要求４によるデータ転送のためにＰＲＥ、ＡＣＴ、ＷＲが発行される。時刻Ｔ１６で現像処理部１０９からのデータ転送が終了すると、コマンド制御部１１９により、次のバンク０の転送のためにＰＲＥが発行される。図５（Ｂ）では、リアルタイム処理が不要な期間は、キュー１１５に対して新たに転送要求を格納するか否かを判別するための閾値大きくするので、各バスマスタからの転送要求がキュー１１５に格納される確率が上がり、アクセス効率を向上するためのリオーダ発生回数が増えている。
【００６２】
なお、図５（Ａ）および（Ｂ）に示した動作は一つの例示に過ぎず、例えば各処理の転送要求が図とは異なる順序で与えられた場合などでも上述し本発明の技術思想に従って同様の動作を行う。また、撮像装置以外の処理装置のメモリ制御においても、当該処理装置が行う処理に対して同様のメモリ制御構成を達成することが可能である。
【００６３】
以上説明したように、本発明の第２の実施形態によれば、リアルタイム処理が必要ない期間は、新たにキューを格納するか否かを判別するための閾値を大きくすることで、転送要求がキューに格納される確率を上げることができる。この結果、キューに格納された転送要求の順序がリオーダ処理により変更される確率が上がり、転送処理に要する時間が短くなる。
なお、第１、第２の実施形態では、キュー１１５に格納済みの転送要求によるデータ転送に要する時間の合計に、実行中のデータ転送が完了するまでの時間を加えた値が、閾値を超えている場合に、新たに転送要求をキュー１１５に格納しないようにした。
これ以外にも、例えば、キュー１１５に格納済みの転送要求によるデータ転送に要する時間の合計と閾値とを比較し、キュー１１５に格納済みの転送要求によるデータ転送に要する時間の合計が閾値を超える場合に、新たに転送要求をキュー１１５に格納しないようにしてもよい。
【００６４】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。さらに、上述した各実施例は本発明の一実施例を示すものにすぎず、各実施形態を適宜組み合わせることも可能である。
【００６５】
例えば、上述した実施形態においては、本発明をデジタルカメラなどの撮像装置に適用した場合を例にして説明したが、これはこの例に限定されない。すなわち、本発明は、メモリを用いた情報処理装置において適用可能である。例えば、画像編集装置、プリンタ装置の印刷データ処理装置、データ通信のためのデータ処理装置など、メモリを用いるデジタルデータの処理装置において適用可能である。
【００６６】
また、前述した本発明の実施形態におけるメモリ制御装置を構成する各部の機能は、当該メモリ制御装置が適用される装置の制御部が有するコンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによっても実現できる。このプログラム及び前記プログラムを記憶したコンピュータ読み取り可能な記憶媒体は本発明に含まれる。
【００６７】
プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などである。
【図１】
2014157410.tif 000003
【図２】
2014157410.tif 000004
【図３】
2014157410.tif 000005
【図４】
2014157410.tif 000006
【図５】
2014157410.tif 000007