(57)【要約】【課題】メモリに対して複数のアクセス手段からのアクセスが同時に行われる場合に、メモリへのアクセス効率を向上する。【解決手段】データ転送制御装置は、データを格納するメモリと、同じアドレス順で前記メモリにアクセスする複数のアクセス部とを備える。データ転送制御装置は、複数のアクセス部による前記メモリのアクセスアドレスの差を検出し、検出されるアクセスアドレスの差を小さくするために、複数のアクセス部のうちのアクセスアドレスが先行しているアクセス部の前記メモリへのアクセスの実行頻度を減少させる。【選択図】  図１
2013033407.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するメモリと、
同じアドレス順で前記メモリにアクセスする複数のアクセス手段と、
前記複数のアクセス手段による前記メモリのアクセスアドレスの差を検出する検出手段と、
前記検出手段により検出される前記アクセスアドレスの差を小さくするために、前記複数のアクセス手段のうちのアクセスアドレスが先行しているアクセス手段の前記メモリへのアクセスの実行頻度を減少させる制御手段と、を備えることを特徴とするデータ転送制御装置。
【請求項２】
前記制御手段は、前記検出手段により検出されたアクセスアドレスの差が所定値を超える場合に、アクセスアドレスが先行しているアクセス手段による前記メモリへのアクセスの実行頻度を減少させることを特徴とする請求項１に記載のデータ転送制御装置。
【請求項３】
前記制御手段は、アクセスアドレスが先行しているアクセス手段による前記メモリへのアクセスの実行を禁止することにより前記実行頻度を減少させることを特徴とする請求項１または２に記載のデータ転送制御装置。
【請求項４】
前記制御手段は、複数のアクセスが同時に発生した場合に、アクセスアドレスが先行しているアクセス手段によるアクセスの実行を禁止することにより前記実行頻度を減少させることを特徴とする請求項１または２に記載のデータ転送制御装置。
【請求項５】
前記制御手段は、前記検出手段により検出されたアクセスアドレスの差が小さくなるに従って、複数のアクセスが同時に発生した場合の、アクセスアドレスが先行しているアクセス手段によるアクセスの実行を許可する率を高くすることを特徴とする請求項１に記載のデータ転送制御装置。
【請求項６】
前記メモリはロウアドレスとカラムアドレスによりアクセスされ、
前記制御手段は、アクセスアドレスが先行しているアクセス手段がアクセスするカラムアドレスが前記メモリの最終のカラムアドレスに到達した場合に、他のアクセス手段がアクセスするカラムアドレスが前記最終のカラムアドレスから所定範囲のカラムアドレスに到達するまでは、前記アクセスアドレスが先行しているアクセス手段によるアクセスの実行を禁止することを特徴とする請求項１乃至５のいずれか１項に記載のデータ転送制御装置。
【請求項７】
前記複数のアクセス手段は、前記メモリへデータを書き込む第１のアクセス手段と、前記メモリからデータを読み出す第２のアクセス手段とを含み、
前記制御手段は、前記第１のアクセス手段のアクセスアドレスを前記第２のアクセス手段のアクセスアドレスよりも常に先行させる、ことを特徴とする請求項１乃至６のいずれか１項に記載のデータ転送制御装置。
【請求項８】
前記第１のアクセス手段は、前記メモリへ書き込むデータを保持するバッファ手段を更に備え、
前記制御手段は、前記バッファ手段に所定量を超えるデータが保持されると、前記第１のアクセス手段によるアクセスの実行を前記第２のアクセス手段によるアクセスの実行よりも優先させる、ことを特徴とする請求項７に記載のデータ転送制御装置。
【請求項９】
データを格納するメモリと、同じアドレス順で前記メモリにアクセスする複数のアクセス手段と、を備えたデータ転送制御装置によるデータ転送方法であって、
検出手段が、前記複数のアクセス手段による前記メモリのアクセスアドレスの差を検出する工程と、
制御手段が、前記検出する工程で検出される前記アクセスアドレスの差を小さくするために、前記複数のアクセス手段のうちのアクセスアドレスが先行しているアクセス手段の前記メモリへのアクセスの実行頻度を減少させる工程と、を有することを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリの同一領域に対して複数のアクセス手段からのアクセスを同時に行うデータ転送制御装置、及びデータ転送方法に関するものである。
【背景技術】
【０００２】
近年、デジタルカメラ等の画像処理装置で扱う画像の高画質化に伴って、処理すべき画像のデータ量が増えてきている。画像データをメモリに書き込み、該メモリから画像データを読み出して画像処理を行うような場合、画像データ量が多くなるに従って、画像処理時間のみならずメモリへの書き込み時間や読み出し時間も長くなり、全体の処理時間が長くなってしまう。
【０００３】
このメモリへの書き込み時間や読み出し時間を短縮させる為に、画像データをメモリに書き込むと同時にメモリからその画像データを読み出して処理を行うことがある。なお、本処理は、厳密にはメモリへの所定量のデータの書き込みと読み出しを交互に行って書き込みと読み出しを見かけ上同時進行させるものであるが、本明細書では、このような動作を「書き込みと読み出しが同時に行なわれる」と表現する。例えば、デジタルカメラ等の撮像装置が撮影モードに設定されている場合、撮影した画像を液晶等の表示部にほぼリアルタイムに表示する為に、画像を撮像してから表示部に表示するまでの表示遅延をできるだけ小さくする必要がある。この表示遅延は、画像データをメモリに書き込んだ直後にその画像データを読み出すことで短くすることができる。
【０００４】
図１１（ａ）は、全画像データのメモリへの書き込みが終了した後に、書き込んだ画像データを読み出す場合の表示遅延を示す図である。撮像部において１枚毎に一定のレートで順次生成される画像データ（１、２、３・・・）は、ノイズ除去等の画像処理１が施されてメモリに書き込まれる。全画像データのメモリへの書き込み終了後、書き込まれた画像データがメモリから読み出され、画像サイズ変倍等の画像処理２が施されて液晶等の表示部で表示される。ここで、1枚の画像データの撮像を開始してから表示が完了するまでには表示遅延Ｔが生じる。
【０００５】
他方、図１１（ｂ）は、メモリへの画像データを書き込むと同時に画像データを読み出す場合の表示遅延を示す図である。撮像部において生成された画像データは、ノイズ除去等の画像処理１が施されてメモリに書き込まれる。ここで、画像データはメモリへ書き込まれると同時に読み出され、画像処理２が施されて液晶等の表示部で表示される。このように、メモリへの画像データの書き込みと同時に読み出しを行なえば、１枚分の画像データがメモリへ書き込まれるのを待つ必要がなくなる為、図１１（ａ）の場合に比べて表示遅延Ｔを短くすることができる。
【０００６】
図１１（ｂ）に示したような手順により、メモリに画像データを書き込むと同時に読み出すという処理を行う場合、読み出しのアクセスアドレスが書き込みのアクセスアドレスを追い越してはならない。このように、メモリの読み出しアドレスが書き込み中のアドレスを追い越さないようにしながら書き込みと読み出しを同時並行処理する場合には、追い越し制御が用いられる。
【０００７】
このような追い越し制御に関して、読み出しアドレスが書き込みアドレスを追い越さないように制御する為のメモリアクセス方法が多く提案されている。例えば、特許文献１では、書き込みアドレスと読み出しアドレスとの間隔が一定間隔より小さい時には読み出しを行わせず、一定間隔より大きい時には読み出しを行わせることで、読み出しアドレスが書き込みアドレスを追い越さないように制御している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−１１７１３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、ＤＲＡＭに対して上述の追い越し制御を行うと、ＤＲＡＭへのアクセス効率が低下してしまうという課題がある。以下、この課題について説明する。図９は、ＳＤＲＡＭ（Synchronous DRAM）の一般的なデータアクセスタイミングチャートである。但し図９では、ＢＬ（バースト長：１回のアドレス指定により連続的にアクセス可能なワード数）は「８」としている。
【００１０】
図９（ａ）は、ＤＲＡＭの同一ロウアドレス（同一ページ）に対してデータ書き込み後にデータ読み出しのアクセスを行う場合のタイミングチャートである。時刻Ｔ１においてＡＣＴコマンドによりロウアドレスを指定し（ロウアドレス＝４）、時刻Ｔ２においてＷＲコマンドによりカラムアドレス（カラムアドレス＝１）を指定して８ワード分のデータ（ＷＲＤ１〜ＷＲＤ８）の書き込みを行う。時刻Ｔ３においてＲＤコマンドによりカラムアドレス（カラムアドレス＝１）を指定し、８ワード分のデータ（ＲＤＤ１〜ＲＤＤ８）の読み出しを完了させる。
【００１１】
図９（ｂ）は、あるロウアドレス（ページ）へデータを書き込んだ後に、同一バンクの異なるロウアドレス（ページ）のデータを読み出す場合のタイミングチャートである。時刻Ｔ１においてＡＣＴコマンドによりロウアドレスを指定し（ロウアドレス＝４）、時刻Ｔ２においてＷＲコマンドによりカラムアドレス（カラムアドレス＝１）を指定して８ワード分のデータ（ＷＲＤ１〜ＷＲＤ８）の書き込みを行う。ＤＲＡＭは同一バンクの異なるロウアドレス（異なるページ）へアクセスする場合、ＤＲＡＭへのＰＲＥコマンド（プリチャージコマンド（ページクローズ））、及びＡＣＴコマンド（ページオープン）が必要となる。図９（ｂ）では、時刻Ｔ３においてＰＲＥコマンド、時刻Ｔ４においてＡＣＴコマンドを実行してロウアドレスを指定している（ロウアドレス＝２）。その後時刻Ｔ５においてＲＤコマンドによりカラムアドレス（カラムアドレス＝１）を指定して８ワード分のデータ（ＲＤＤ１〜ＲＤＤ８）の読み出しを行っている。このように、同一バンクの異なるページへのアクセス回数（ページ切換え回数）が多くなると、その分プリチャージ、及びＡＣＴコマンドが必要となる為、ＤＲＡＭへのアクセス効率が低下してしまう。
【００１２】
一般に、追い越し制御の場合、データの書き込みアドレスと読み出しアドレスが一定間隔以上離れるように制御を行う為、ＤＲＡＭの同一バンクの異なるページへのアクセスが多発し、アクセス効率が低下してしまうという問題がある。
【００１３】
本発明は上記課題に鑑みてなされたものであり、その目的は、メモリに対して複数のアクセス手段からのアクセスが同時に行われる場合に、メモリへのアクセス効率を向上することにある。
【課題を解決するための手段】
【００１４】
上記目的を達成するための、本発明の一態様によるデータ転送装置は以下の構成を備える。すなわち、
データを格納するメモリと、
同じアドレス順で前記メモリにアクセスする複数のアクセス手段と、
前記複数のアクセス手段による前記メモリのアクセスアドレスの差を検出する検出手段と、
前記検出手段により検出される前記アクセスアドレスの差を小さくするために、前記複数のアクセス手段のうちのアクセスアドレスが先行しているアクセス手段の前記メモリへのアクセスの実行頻度を減少させる制御手段と、を備える。
【発明の効果】
【００１５】
本発明によれば、メモリに対して複数のアクセス手段からのアクセスが同時に行われる場合に、メモリへのアクセス効率を向上させることができる。
【図面の簡単な説明】
【００１６】
【図１】第１、第３実施形態に係るＤＲＡＭへのデータアクセス方法を示す図。
【図２】第１〜第３実施形態に係る画像処理装置の構成を示すブロック図。
【図３】第１、第２実施形態に係るデータ転送制御装置の構成を示すブロック図。
【図４】第１実施形態に係るＤＲＡＭへのデータ転送シーケンスを示す図。
【図５】第２実施形態に係るＤＲＡＭへのデータアクセス方法を示す図。
【図６】第２実施形態に係るＤＲＡＭへのデータ転送シーケンスを示す図。
【図７】第３実施形態に係るデータ転送制御装置の構成を示すブロック図。
【図８】第３実施形態に係るＤＲＡＭへのデータ転送シーケンスを示す図。
【図９】一般的なＳＤＲＡＭのデータアクセスのタイミングチャート。
【図１０】従来の制御に係るＤＲＡＭへのデータアクセス方法を示す図。
【図１１】画像データを撮像してから表示するまでの一般的な表示遅延を示す図。
【発明を実施するための形態】
【００１７】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００１８】
［第１実施形態］
図２は、第１実施形態に係る画像処理装置の構成を示すブロック図である。図２において、結像光学部２０１はレンズや絞り等を有し、フォーカス調節や露出調節を行う。撮像素子２０２は、ＣＣＤ等を有し、光学像を電気信号に変換する。Ａ／Ｄ変換回路２０３は、撮像素子２０２からのアナログ画像信号をデジタル画像データに変換する。データ転送制御装置３１０は、ＤＲＡＭ３２０との間で画像データや各種制御データの書き込み、読み出しを行う。ＣＰＵ２０５は、バスを介して接続された各部の各種制御を司る。第１信号処理部３０１は、Ａ／Ｄ変換回路２０３から出力された画像データに対してノイズ低減等の画像処理を施す。第２信号処理部３３０は、データ転送制御装置３１０から出力された画像データに対して、画像サイズ変倍等の画像処理を施す。表示部２０６は、液晶モニタ等を有し、第２信号処理部３３０にて生成された画像データを表示する。
【００１９】
図３は、第１実施形態に係るデータ転送制御装置３１０の構成例を示すブロック図である。第１信号処理部３０１は、１０２４×７６８画素、１画素＝８bitの画像データを１Byte（＝８bit）毎にデータ転送制御装置３１０へ出力する。データ転送制御装置３１０は、画像データをＤＲＡＭ３２０へ格納する。本実施形態では、ＤＲＡＭ３２０は、２０４８カラムアドレス、４０９６ロウアドレス、１ワード＝３２bitの容量を有しており、８バースト転送が可能である。データ転送制御装置３１０に入力された１Byteの画像データは、ＷＲＤＭＡＣ（Write Direct Memory Access Controller）４１０に入力される。ＷＲＤＭＡＣ４１０は、ＤＲＡＭ３２０に対して８バースト転送を行う為に、画像データを３２Byte（＝３２bit×８バースト）単位でメモリコントローラ４２０へ出力する。
【００２０】
メモリコントローラ４２０は、３２Byteの画像データ、ロウアドレス、カラムアドレスをＤＲＡＭ３２０に出力し、画像データをＤＲＡＭ３２０へ格納する。また、データ転送制御装置３１０は、ＤＲＡＭ３２０に格納された各画像データを読み出して第２信号処理部３３０へ出力する。メモリコントローラ４２０は、ロウアドレス、カラムアドレスをＤＲＡＭ３２０に出力して、ＤＲＡＭ３２０から８バースト転送で画像データを読み出す。読み出された画像データは、ＲＤＤＭＡＣ（Read Direct Memory Access Controller）４３０に入力され、１Byte単位で第２信号処理部３３０へ出力される。なお、ＷＲＤＭＡＣ４１０、ＲＤＤＭＡＣ４３０は、ＤＲＡＭ３２０にアクセスをする複数のアクセス部の一例である。また、ＤＲＡＭ３２０へ画像データが書き込みまれる順番で、ＤＲＡＭ３２０から画像データが読み出される。すなわち、ＷＲＤＭＡＣ４１０によるＤＲＡＭ３２０のアドレス順と、ＲＤＤＭＡＣ４３０によるＤＲＡＭ３２０のアドレス順は、同一の順序である。また、ＷＲＤＭＡＣ４１０はＤＲＡＭ３２０へデータを書き込む第１のアクセス部として、ＲＤＤＭＡＣ４３０はＤＲＡＭ３２０からデータを読み出す第２のアクセス部として機能する。そして、第１のアクセス部がアクセスするアドレスは、第２のアクセス部がアクセスするアドレスよりも常に先行する。
【００２１】
次に、図１０と図１により、本実施形態によるアクセス方法の作用、効果を説明する。図１０は、一般的な追い越し制御におけるＤＲＡＭへのアクセス方法を示す図である。８バースト転送分の３２Byteを１ブロックとすると、画像データのブロック数は、２４５７６（＝１０２４×７６８／３２）ブロックとなる。画像データは、この１ブロック単位でＤＲＡＭ３２０へ順次書き込まれると同時に読み出される。一般的な追い越し制御では、読み出しが書き込みを追い越すことがないように、書き込みアドレスと読み出しアドレスが一定間隔より小さくならないように制御を行っている。よって、ＷＲＤＭＡＣ４１０とＲＤＤＭＡＣ４３０のＤＲＡＭの異なるページへのアクセスが多発し、プリチャージによりデータ転送効率が低下してしまう。図１０の例では、ＷＲＤＭＡＣ４１０による先行するアクセスアドレスとＲＤＤＭＡＣ４３０のアクセスアドレスとの差が１ページ以上開いているために、書き込みと読み出しのアクセス毎に、ＰＲＥコマンド（及びＡＣＴコマンド）が発生している。
【００２２】
図１は、本実施形態の追い越し制御におけるＤＲＡＭへのアクセス方法を示す図である。本実施形態では、読み出しのアドレスが書き込みのアドレスを追い越さないように制御するだけでなく、それらアドレスの間隔が所定値を超えないように制御することで、ＤＲＡＭ３２０の異なるページへのアクセス回数を減らしている。本実施形態では、その所定値として、８００アドレスが設定されている。すなわち、読み出しと書き込みのアドレスの差が８００アドレス（＝１００ブロック）より大きくなったら、メモリコントローラ４２０は、ＷＲＤＭＡＣ４１０のＤＲＡＭ３２０への書き込みアクセスを禁止し、読み出しアクセスを優先させる。読み出しと書き込みのアドレスの差が８００アドレス以内になったら、メモリコントローラ４２０は、ＷＲＤＭＡＣ４１０のＤＲＡＭ３２０への書き込みアクセスを許可する。このように、本実施形態では、読み出しアドレスと書き込みアドレスが一定間隔より大きくならないように、先行するアクセスアドレス（本例では書き込みアドレス）の実行頻度が制御される。これにより、ＤＲＡＭの同一ページに書き込み、読み出しアクセスする回数が増え、プリチャージ発生回数が減り、データを効率良く転送することができる。
【００２３】
図４のフローチャートにより、本実施形態におけるＤＲＡＭへのデータ転送処理を説明する。図４（ａ）において、ＣＰＵ２０５は、ＷＲＤＭＡＣ４１０とＲＤＤＭＡＣ４３０に、スタートアドレス、転送データ長を設定する（Ｓ４０１）。また、ＣＰＵ２０５は、上記の所定値としての、読み出し／書き込み最大アドレス差（図１の例では８００）を、メモリコントローラ４２０に設定する（Ｓ４０２）。ＣＰＵ２０５は、データ転送制御装置３１０にＤＲＡＭ３２０へのデータ転送開始を指示する（Ｓ４０３）。ＣＰＵ２０５は、データ転送制御装置３１０から書き込み、読み出しの転送完了を報知されたら転送制御を終了する（Ｓ４０４）。
【００２４】
メモリコントローラ４２０は、図４（ｂ）に示す処理により、ＲＤＤＭＡＣ４３０から出力される読み出しアドレスがＷＲＤＭＡＣ４１０から出力される書き込みアドレスを超えないようにデータ転送を制御する。すなわち、メモリコントローラ４２０はＲＤＤＭＡＣ４３０から指定された読み出しのアドレスが、ＷＲＤＭＡＣ４１０により書き込みが実行されたアドレスを追い越すか否かを判定する（Ｓ４１１）。追い越さないと判定された場合には、メモリコントローラ４２０は、ＲＤＤＭＡＣ４３０によるＤＲＡＭ３２０からの読み出しを実行する（Ｓ４１２でＮＯ、Ｓ４１３）。そして、ＲＤＤＭＡＣ４３０により読み出し済みとなったアドレス（例えば読み出し済みの最大アドレス）を保持する（Ｓ４１４）。他方、ＲＤＤＭＡＣ４３０から指定された読み出しのアドレスが、ＷＲＤＭＡＣ４１０により書き込みが実行されたアドレスを追い越すと判定された場合は、メモリコントローラ４２０はＲＤＤＭＡＣ４３０による読み出しを禁止する（Ｓ４１２でＹＥＳ）。
【００２５】
また、メモリコントローラ４２０は、図４（ｃ）に示す処理により、ＷＲＤＭＡＣ４１０、ＲＤＤＭＡＣ４３０からそれぞれ出力されるアドレスの差が設定された最大アドレス差以下となるようにデータ転送を制御する。すなわち、メモリコントローラ４２０は、書き込みのアドレスと読み出しのアドレスの差を検出し、このアドレスの差がＳ４０２で設定された最大アドレス差より大きいか否かを判定する（Ｓ４２１）。書き込みと読み出しのアドレスの差が最大アドレス差以下の場合、メモリコントローラ４２０は、ＷＲＤＭＡＣ４１０によるＤＲＡＭ３２０へのデータの書き込みを実行させる（Ｓ４２２でＮＯ，Ｓ４２３）。そして、ＷＲＤＭＡＣ４１０により書き込みを行なったアドレス（例えば書き込み済みの最大アドレス）を保持する（Ｓ４２４）。他方、書き込みと読み出しのアドレスの差が最大アドレス差より大きい場合は、メモリコントローラ４２０は、ＷＲＤＭＡＣ４１０によるデータの書き込みを禁止する（Ｓ４２２でＹＥＳ）。
【００２６】
以上、第１実施形態のデータ転送制御を行うことで、ＤＲＡＭ３２０の同一バンクの同一領域に対してデータの書き込み、読み出しのアクセスを同時に行う場合において、プリチャージの回数を抑えることが可能となる。そのため、データを効率良くＤＲＡＭへ転送することができる。
【００２７】
尚、本実施形態では、書き込みアクセスを禁止することで読み出しアクセスを優先させ、書き込みアクセスの実行頻度を減少させているが、書き込みアクセスの実行頻度を減少させる方法はこれに限られるものではない。例えば、書き込みアクセス自体は禁止しないが、書き込みと読み出しアクセス要求が同時に発生した時には読み出しアクセスを行い、読み出しアクセスを優先させても良い。
【００２８】
また、本実施形態では読み出しと書き込みのアドレスの差が一定値（最大アドレス差）を超えたら読み出しアクセスを優先させたが、読み出しと書き込みのアドレス差の大きさに比例して、読み出しアクセスの優先度を高くしても良い。例えば、読み出しと書き込みのアドレス差の大きさに比例して、読み出し、書き込み要求同時発生時に読み出しアクセスを行う割合を変更しても良い。
【００２９】
また、本実施形態では読み出しと書き込みのアドレスの差が８００アドレスより大きくなったら読み出しアクセスを優先させたが、他のアドレス差（最大アドレス差）で読み出しアクセスを優先させても良いことは言うまでもない。例えば、１ページの範囲のアドレス量に応じて、最大アドレス差が適切に設定されればよい。
【００３０】
［第２実施形態］
第２実施形態では、データの書き込みアドレスがＤＲＡＭ３２０の１ページ内の最終アドレスに到達したら、読み出しアドレスが書き込みアドレスに追いつくまでメモリコントローラ４２０が書き込みアクセスを禁止する。なお、第２実施形態に係る画像処理装置の構成、データ転送制御装置の構成は第１実施形態と同様であるため説明を省略する。
【００３１】
図５は、本実施形態の追い越し制御におけるＤＲＡＭ３２０へのアクセス方法を示す図である。読み出しアドレスが書き込みアドレスを追い越さないように制御することは実施形態１と同様である。本実施形態では、書き込みアドレスがＤＲＡＭ３２０の１ページ内の最終アドレス（本例ではカラムアドレス＝２０４８）に到達したら、メモリコントローラ４２０がＷＲＤＭＡＣ４１０の書き込みアクセスを禁止する。その後、データの読み出しを連続して行い、読み出しアドレスが書き込みアドレスに到達したら、ＷＲＤＭＡＣ４１０のＤＲＡＭの次ページへのアクセスを許可する。このように、ＷＲＤＭＡＣ４１０とＲＤＤＭＡＣ４３０がＤＲＡＭ３２０の次ページへアクセスを開始するタイミングを合わせることで、第１実施形態よりプリチャージの発生回数を減らし、データを効率良く転送することができる。
【００３２】
図６に第２実施形態における、データのＤＲＡＭ転送シーケンスを示す。ＣＰＵ２０５は、ＷＲＤＭＡＣ４１０、ＲＤＤＭＡＣ４３０に、スタートアドレス、転送データ長を設定する（Ｓ６０１）。また、ＣＰＵ２０５は、メモリコントローラ４２０に、読み出し／書き込み最大アドレス差、ＤＲＡＭ３２０のカラムアドレス最大値を設定する（Ｓ６０２）。ＣＰＵ２０５は、データ転送制御装置３１０にＤＲＡＭ３２０へのデータ転送開始を指示する（Ｓ６０３）。ＣＰＵ２０５は、データ転送制御装置３１０から書き込み、読み出しの転送完了を報知されたら転送制御を終了する（Ｓ６０４）。
【００３３】
メモリコントローラ４２０は、図４（ｂ）で説明したように、ＲＤＤＭＡＣ４３０から出力される読み出しアドレスがＷＲＤＭＡＣ４１０から出力される書き込みアドレスを超えないように、データ転送を制御する。また、メモリコントローラ４２０は、図６（ｂ）に示す処理により、書き込みアドレスと読み出しアドレスを適切に制御する。
【００３４】
すなわち、メモリコントローラ４２０は、書き込みのアドレスと読み出しのアドレスを取得し、書き込みのアドレスがページ内の最終アドレスか否かを判定する（Ｓ６２１、Ｓ６２２）。書き込みのアドレスがページ内の最終アドレスでない場合（Ｓ６２２でＮＯ）、メモリコントローラ４２０は、第１実施形態で説明した処理により、ＤＲＡＭ３２０へのデータ書き込みの可否を決定する。すなわち、メモリコントローラ４２０は、書き込みのアドレスと読み出しのアドレスの差を検出し、このアドレスの差がＳ４０２で設定された最大アドレス差より大きいか否かを判定する（Ｓ４２１）。書き込みと読み出しのアドレスの差が最大アドレス差以下の場合、メモリコントローラ４２０は、ＷＲＤＭＡＣ４１０によるＤＲＡＭ３２０へのデータの書き込みを実行させる（Ｓ４２２でＮＯ，Ｓ６２４）。そして、ＷＲＤＭＡＣ４１０により書き込みを行なったアドレス（例えば書き込み済みの最大アドレス）を保持する（Ｓ６２５）。また、書き込みと読み出しのアドレスの差が最大アドレス差より大きい場合は、メモリコントローラ４２０は、ＷＲＤＭＡＣ４１０によるデータの書き込みを禁止する（Ｓ４２２でＹＥＳ）。
【００３５】
他方、書き込みのアドレスがページ内の最終アドレスの場合は、読み出しアドレスもページ内の最終アドレスに到達しているか否かを判定する（Ｓ６２３）。読み出しのアドレスがページ内の最終アドレスの場合、メモリコントローラ４２０は、ＷＲＤＭＡＣ４１０によるＤＲＡＭ３２０へのデータの書き込みを実行させ、書き込みを行なったアドレスを保持する（Ｓ６２３でＹＥＳ，Ｓ６２４，Ｓ６２５）。他方、書き込みのアドレスがページ内の最終アドレスに到達し（Ｓ６２２でＹＥＳ）、読み出しのアドレスがページ内の最終アドレスに到達していない場合（Ｓ６２３でＮＯ）、メモリコントローラ４２０はＷＲＤＭＡＣ４１０によるデータの書き込みを禁止する。
【００３６】
このように、メモリコントローラ４２０は、設定されたＤＲＡＭ３２０のカラムアドレス最大値へデータの書き込みを行ったら、読み込みアドレスが書き込みアドレスに追いつくまでデータの書き込みアクセスを禁止する。読み出しアドレスが書き込みアドレスに到達したら、ＷＲＤＭＡＣ４１０のＤＲＡＭ３２０の次ページへのアクセスを許可する。
【００３７】
以上のような第２実施形態の制御を行うことで、データの書き込み、読み出しがＤＲＡＭの次ページへアクセスを開始するタイミングを合わせることができるので、プリチャージの発生回数が減少し、データを効率良くＤＲＡＭ３２０へ転送することができる。
【００３８】
尚、第２実施形態では書き込みアドレスがＤＲＡＭのカラムアドレス最大値に到達したらデータの書き込みを禁止したが、最大値到達時でなくても読み出しアクセスの優先度を高くしても良い。例えば、書き込みアドレスがカラムアドレスの後半になるに従って、データの読み出しの優先度を上げていき、徐々に読み出しアドレスが書き込みアドレスに近づくように制御しても良い。
【００３９】
また、第２実施形態では読み出しアドレスが書き込みアドレスに到達したら、ＷＲＤＭＡＣのＤＲＡＭの次ページへのアクセスを許可したが、読み出しと書き込みアドレスの差が一定値以下になったら、ＷＲＤＭＡＣのアクセスを許可するようにしても良い。すなわち、ＷＲＤＭＡＣ４１０がアクセスするカラムアドレスがＤＲＡＭ３２０の最終のカラムアドレスにある場合に、ＲＤＤＭＡＣ４３０がアクセスするカラムアドレスが最終のカラムアドレスから所定範囲内に到達するまでＷＲＤＭＡＣ４１０によるアクセスの実行を禁止する。
【００４０】
また、書き込みアドレスと読み出しアドレスとのアドレス差が大きい場合には書き込みの実行頻度を低減するように、第１実施形態と同様の処理（Ｓ４２１、Ｓ４２２）を実行しているが、この処理を省略してもよい。その場合、Ｓ６０２において、最大アドレス差の設定は不要になる。
【００４１】
［第３実施形態］
第３実施形態では、ＷＲＤＭＡＣ内にデータを一時的に格納するバッファの機能を提供するＦＩＦＯを持ち、ＦＩＦＯに格納されたデータ量が所定量を超えると、データの書き込みアクセスを優先させる点が第１、第２実施形態と異なる。第１、第２実施形態では、読み出しと書き込みのアドレスを近づける為に書き込みアクセスを待たせることがあるが、センサからの入力データをＤＲＡＭへ書き込む場合等、書き込みを待たせることができないシステムの場合は本実施形態の構成が有効となる。以下、本発明の第３実施形態を説明するが、第３実施形態に係る画像処理装置の構成は第１、第２実施形態と同様であるため説明を省略する。
【００４２】
図７は、第３実施形態に係るデータ転送制御装置３１０の構成を示すブロック図である。画像データサイズ、第１信号処理部３０１、第２信号処理部３３０、ＲＤＤＭＡＣ４３０、ＤＲＡＭ３２０の構成は第１、第２実施形態と同様である。
【００４３】
ＷＲＤＭＡＣ４１１は、容量１２８ByteのＦＩＦＯ４１２を持っている。データ転送制御装置３１０に入力された１Byteの画像データは、まずＷＲＤＭＡＣ４１１のＦＩＦＯ４１２に入力される。ＷＲＤＭＡＣ４１１は、ＦＩＦＯ４１２から画像データを読み出して３２Byte単位でメモリコントローラ４２１へ出力する。また、ＷＲＤＭＡＣ４１１は、ＦＩＦＯ４１２に格納されているデータの量をメモリコントローラ４２１へ出力する。メモリコントローラ４２１は第１実施形態と同様に、読み出しアドレスが書き込みアドレスを追い越さないように制御し、かつ、読み出しと書き込みのアドレスの差が一定値（本実施形態の場合、８００アドレス）より大きくならないように制御する。ただし、メモリコントローラ４２１は、ＦＩＦＯ４１２のデータ格納量が一定値を超えた場合には、読み出し、書き込みのアドレスに関係なくデータの書き込みを優先させる。本実施形態では、ＦＩＦＯ４１２のデータ格納量が１００Byteを超えたら読み出しアクセスを禁止して書き込みアクセスを優先させ、１００Byte以下になったら読み出しアクセスを許可する。このように、ＦＩＦＯ４１２の空き容量が少なくなってきたら書き込みを優先させることで、ＷＲＤＭＡＣ４１１に入力されるデータを待たせることなく、従来よりもプリチャージ発生回数を減らすことができる。
【００４４】
図８に本実施形態における、データのＤＲＡＭ転送シーケンスを示す。図８（ａ）において、ＣＰＵ２０５は、ＷＲＤＭＡＣ４１１、ＲＤＤＭＡＣ４３０に、スタートアドレス、転送データ長を設定する（Ｓ８０１）。またＣＰＵ２０５は、メモリコントローラ４２１に、読み出し／書き込み最大アドレス差、ＦＩＦＯデータ格納量閾値を設定する（Ｓ８０２）。ＣＰＵ２０５は、データ転送制御装置３１０にＤＲＡＭ３２０へのデータ転送開始を指示する（Ｓ８０３）。ＣＰＵ２０５は、データ転送制御装置３１０から書き込み、読み出しの転送完了を報知されたら転送制御を終了する（Ｓ８０４）。
【００４５】
メモリコントローラ４２１は、図８（ｂ）のＳ４１１〜Ｓ１４１に示すように、ＲＤＤＭＡＣ４３０から出力される読み出しアドレスがＷＲＤＭＡＣ４１１から出力される書き込みアドレスを超えないようにデータ転送を制御する。この制御は、第１実施形態と同様である。ただし、ＦＩＦＯ４１２のデータ格納量が設定されたＦＩＦＯデータ格納量閾値（１００Byte）を超えると、メモリコントローラ４２１は、読み出しを禁止する（Ｓ８１１でＹＥＳ）。また、メモリコントローラ４２１は、図８（ｃ）のＳ４２１〜Ｓ４２４に示すように、ＷＲＤＭＡＣ４１１、ＲＤＤＭＡＣ４３０からそれぞれ出力されるアドレスの差が設定された最大アドレス差以下となるようにデータ転送を制御する。この制御は第１実施形態と同様である。ただし、ＦＩＦＯ４１２のデータ格納量が設定されたＦＩＦＯデータ格納量閾値（１００Byte）を超えると、メモリコントローラ４２１は、アドレス差に関わりなく、書き込みを実行させる（Ｓ８２１でＹＥＳ）。こうして、メモリコントローラ４２１は、ＦＩＦＯ４１２のデータ格納量が設定されたＦＩＦＯデータ格納量閾値の１００Byteを超えたら、データの書き込みを優先させる。また、メモリコントローラ４２１は、ＦＩＦＯ４１２のデータ格納量が１００Byte以下であれば、読み出しアドレスと書き込みアドレスの差が設定された最大アドレス差以下となるようにデータ転送を制御する。
【００４６】
以上のように、第３本実施形態の制御を行うことで、ＷＲＤＭＡＣへの入力データを待たせることなく、従来よりもプリチャージ発生回数を抑えることができ、データを効率良くＤＲＡＭへ転送することができる。
【００４７】
尚、本実施形態では読み出しと書き込みのアドレスの差が一定値を超えたら読み出しアクセスを優先させたが、読み出しと書き込みのアドレス差の大きさに比例して、読み出しアクセスの優先度を高くしても良い。
【００４８】
また、本実施形態では読み出しと書き込みのアドレスの差が一定値を超えたら読み出しアクセスを優先させたが、書き込みアクセスしているＤＲＡＭのカラムアドレス値に応じて、読み出しアクセスの優先度を変更しても良い。
【００４９】
また、本実施形態では読み出しと書き込みのアドレスの差が８００アドレスより大きくなったら読み出しアクセスを優先させたが、他のアドレス差で読み出しアクセスを優先させても良い。
【００５０】
また、本実施形態ではＦＩＦＯ容量を１２８Byteとしたが、他のＦＩＦＯ容量でも良い。また、本実施形態ではＦＩＦＯのデータ格納量が１００Byteを超えたら書き込みアクセスを優先させたが、他のデータ格納量の時に書き込みアクセスを優先させても良い。
【００５１】
〈他の実施形態〉
上記各実施形態では書き込んだデータを同時に読み出す場合に適用したが、複数のＲＤＤＭＡＣが同一領域のデータを同時に読み出す場合に適用し、複数の読み出しアドレスがＤＲＡＭの同一ページをアクセスするように制御しても良い。この場合、書き込みと読み出しのように、アクセスの順番を維持する必要が無い場合もあるので、複数のＲＤＤＭＡＣがアクセスするアドレスに追い越しが発生することを許容するようにしてもよい。いずれにしても、複数のアクセス手段によるアクセスのアドレス差が小さくなるように、アドレスが先行するアクセス手段によるアクセスの実行頻度を減少することで、効率のよいメモリアクセスを実現できる。
【００５２】
また、上記各実施形態では１つのＷＲＤＭＡＣと１つのＲＤＤＭＡＣがＤＲＡＭへアクセスしたが、複数のＷＲＤＭＡＣ、複数のＲＤＤＭＡＣがＤＲＡＭへアクセスしても良い。また、本実施形態ではＷＲＤＭＡＣ４１０、ＲＤＤＭＡＣ４３０がＤＲＡＭ３２０へのアクセスアドレスを算出したが、これに限られるものではない。例えば、ＤＲＡＭ３２０の連続したアドレスに順次アクセスする場合において、メモリコントローラ４２０がスタートアドレスと現在のデータの転送量を用いてアクセスアドレスを算出しても良い。
【００５３】
また、上記各実施形態では入力画像画素数を１０２４×７６８（１画素＝８bit）、ＤＲＡＭ容量を２０４８×４０９６（１ワード＝３２bit）としたが、他の入力画像サイズ、ＤＲＡＭ容量でも良い。また、上記各実施形態では画像データを８バースト長でＤＲＡＭへアクセスしたが、８バースト長以外のバースト長でＤＲＡＭへアクセスしても良い。
【図１】
2013033407.tif 000003
【図２】
2013033407.tif 000004
【図３】
2013033407.tif 000005
【図４】
2013033407.tif 000006
【図５】
2013033407.tif 000007
【図６】
2013033407.tif 000008
【図７】
2013033407.tif 000009
【図８】
2013033407.tif 000010
【図９】
2013033407.tif 000011
【図１０】
2013033407.tif 000012
【図１１】
2013033407.tif 000013