(第1の実施形態)
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の説明においては、本発明の第1の実施形態のメモリアクセス装置が、例えば、静止画用カメラや動画用カメラなどの撮像装置に搭載されている画像処理装置に備えられている場合について説明する。
図1は、本発明の第1の実施形態におけるメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の概略構成を示したブロック図である。図1に示した撮像装置1は、イメージセンサ10と、画像処理装置20と、DRAM(Dynamic Random Access Memory)30と、表示装置40と、を備えている。また、画像処理装置20は、撮像入力部220と、画像処理部230と、JPEG処理部240と、表示処理部250と、メモリ制御部260と、を備えている。画像処理装置20では、撮像入力部220と、画像処理部230と、JPEG処理部240と、表示処理部250と、メモリ制御部260とのそれぞれが、共通のデータバス210に接続されている。また、メモリ制御部260は、アービトレーション部2601と、メモリアクセス部2602と、を備えている。
撮像装置1は、イメージセンサ10によって被写体の静止画像または動画像を撮影する。そして、撮像装置1は、撮影した静止画像に応じた表示画像を表示装置40に表示させる。また、撮像装置1は、撮影した動画像に応じた表示画像を表示装置40に表示させる。なお、撮像装置1は、撮影した静止画像や動画像に応じた記録画像を、不図示の記録媒体に記録させることもできる。
イメージセンサ10は、撮像装置1に備えた不図示のレンズによって結像された被写体の光学像を光電変換する固体撮像装置である。例えば、イメージセンサ10は、CCD(Charge Coupled Device:電荷結合素子)イメージセンサや、CMOS(Complementary Metal−Oxide Semiconductor:相補型金属酸化膜半導体)イメージセンサに代表される固体撮像装置である。イメージセンサ10は、撮像した被写体の光学像に応じた画素信号を、画像処理装置20に備えた撮像入力部220に出力する。
DRAM30は、撮像装置1に備えた画像処理装置20において処理される様々なデータを記憶するメモリ(データ記憶部)である。DRAM30は、画像処理装置20に備えたメモリ制御部260を介してデータバス210に接続されている。DRAM30は、画像処理装置20におけるそれぞれの処理段階の画像のデータを記憶する。例えば、DRAM30は、イメージセンサ10から出力された画素信号に基づいて撮像入力部220が出力した画素のデータを記憶する。また、例えば、DRAM30は、画像処理装置20に備えた画像処理部230が生成した画像(静止画像、動画像、表示画像)、画像処理装置20に備えたJPEG処理部240が生成した画像(記録画像、表示画像)などの画像のデータを記憶する。
表示装置40は、画像処理装置20に備えた表示処理部250から出力された表示画像を表示する表示装置である。表示装置40には、表示する表示画像の大きさ、つまり、画素数が異なる様々な表示装置がある。例えば、表示装置40には、VGA(640×480)サイズの画像を表示するTFT(薄膜トランジスター:Thin Film Transistor)液晶ディスプレイ(LCD:Liquid Crystal Display)や、EVF(Electronic View Finder:電子ビューファインダ)など、撮像装置1に搭載され、撮影する被写体を確認するためのビューファインダとして動作する小型の表示装置がある。また、例えば、表示装置40には、フルHD(1920×1080)サイズの画像を表示するHDTV(High Definition TeleVision)や、4K2K(3840×2160)サイズの画像を表示するUHDTV(Ultra High Definition TeleVision)など、撮像装置1に着脱できる構成であり、静止画像や動画像に応じた表示画像を表示して確認するための大型の表示装置もある。
画像処理装置20は、イメージセンサ10から出力された画素信号に対して予め定めた画像処理を行って、静止画像や動画像を生成する。また、画像処理装置20は、生成した静止画像や動画像に応じた表示画像を生成する。そして、画像処理装置20は、生成した表示画像を表示装置40に表示させる。また、画像処理装置20は、生成した静止画像や動画像に応じた記録画像を生成し、生成した記録画像を不図示の記録媒体に記録させることもできる。
画像処理装置20では、撮像入力部220と、画像処理部230と、JPEG処理部240と、表示処理部250とのそれぞれが、画像処理装置20において実行する画像処理の処理機能を実現する処理ブロックである。画像処理装置20では、撮像入力部220、画像処理部230、JPEG処理部240、および表示処理部250のそれぞれが、データバス210を介したDMA(Direct Memory Access)転送によってDRAM30にアクセスする。画像処理装置20では、処理ブロックとメモリ制御部260との組み合わせによって、メモリアクセス装置を構成している。
なお、画像処理装置20では、撮像入力部220とメモリ制御部260との組み合わせ、画像処理部230とメモリ制御部260との組み合わせ、JPEG処理部240とメモリ制御部260との組み合わせ、および表示処理部250とメモリ制御部260との組み合わせの全てが、本発明の第1の実施形態のメモリアクセス装置でなくてもよい。画像処理装置20では、それぞれの処理ブロックに、画像処理を実行するときにDRAM30にアクセスする際の優先順位、つまり、DMA転送を行う際の優先順位を表す優先度が設定されている。この優先度は、撮像装置1が実行する動作、いわゆる、動作モードごとに、異なる優先度であってもよい。例えば、撮像装置1の動作モードが、被写体の撮影を行う撮影モードである場合、被写体の撮影、および撮影する被写体を確認するための表示画像、いわゆる、ライブビュー画像(スルー画像)の表示に、リアルタイム性が求められる。この場合、画像処理装置20においてリアルタイム性が求められる機能を実現するための処理ブロックのDMA転送によるDRAM30のアクセスが待たされると、撮像装置1のシステムとしての動作に破綻をきたしてしまう。このため、画像処理装置20においては、リアルタイム性が求められる機能を実現するための処理ブロックの優先度を高く設定し、リアルタイム性が求められる優先度が高い処理ブロックのDMA転送が待たされないようにする。より具体的には、画像処理装置20に備えた撮像入力部220と表示処理部250とに、高い優先度が設定する。この場合、画像処理装置20では、撮像入力部220とメモリ制御部260との組み合わせ、および表示処理部250とメモリ制御部260との組み合わせが、本発明の第1の実施形態のメモリアクセス装置となる。
なお、以下の説明においては、説明を容易にするため、撮像入力部220とメモリ制御部260との組み合わせのみが、本発明の第1の実施形態のメモリアクセス装置(以下、「メモリアクセス装置200」という)であるものとして説明する。
メモリ制御部260は、データバス210に接続されている画像処理装置20内のそれぞれの処理ブロックからのDMA転送によるDRAM30へのアクセス要求(DMA要求)を調停し、いずれかの処理ブロックからのDRAM30へのアクセス要求を受け付ける。アービトレーション部2601は、メモリ制御部260において、それぞれの処理ブロックからのDRAM30へのアクセス要求を調停する調停回路(DMA調停回路、いわゆる、アービター)である。アービトレーション部2601は、画像処理装置20に備えたそれぞれの処理ブロックの優先度に基づいて、アクセス要求信号を出力してきたそれぞれの処理ブロックの中から、DRAM30へのアクセス要求を受け付ける(許可する)処理ブロックを決定する。そして、アービトレーション部2601は、それぞれの処理ブロックからのDRAM30へのアクセス要求を調停した結果、アクセス要求を受け付ける(許可する)と決定した処理ブロックに、アクセス要求を受け付けたことを通知するためのアクセス受け付け信号(いわゆる、DMA許可信号)を出力する。
また、メモリ制御部260は、アクセス要求を受け付けた処理ブロックとDRAM30との間でのデータバス210を介したデータの受け渡しを制御する。メモリアクセス部2602は、メモリ制御部260において、アクセス要求を受け付けた処理ブロックからの要求に応じて、DRAM30との間でのデータの受け渡し、つまり、DMA転送を行うDRAMコントローラーである。メモリアクセス部2602は、アービトレーション部2601がアクセス要求を受け付けた処理ブロックから出力されたアドレスやアクセス方向(書き込みまたは読み出し)などのDRAM30へのアクセスに関する情報(アクセス情報)に基づいて、DRAM30を制御する。そして、メモリアクセス部2602は、アクセス要求を受け付けた処理ブロックがデータバス210に出力したデータのDRAM30への転送(書き込み)、およびDRAM30から取得(読み出し)したデータのアクセス要求を受け付けた処理ブロックへの出力を行う。
また、メモリ制御部260は、アクセス要求を受け付けた処理ブロックからの要求に応じたDRAM30の制御に基づいて、接続されているDRAM30の動作状態を表す情報を通知する機能を備えている。より具体的には、メモリ制御部260は、DRAM30の記憶領域(バンク)が、所定の時間(一定時間)アクセスすることができないバンクビジー状態であるか否かの情報を、DRAM30のそれぞれのバンクごとに通知する機能を備えている。メモリ制御部260は、DRAM30の動作状態を表す情報(以下、「動作情報」という)を、共にメモリアクセス装置200を構成する処理ブロックである撮像入力部220に出力する。なお、メモリ制御部260では、接続されているDRAM30の動作状態がわかる構成要素であれば、メモリ制御部260に備えたアービトレーション部2601や、メモリアクセス部2602、不図示の構成要素など、いずれの構成要素がDRAM30の動作情報を出力してもよい。図1に示した撮像装置1では、メモリ制御部260に備えたアービトレーション部2601が、共にメモリアクセス装置200を構成する撮像入力部220に、DRAM30のそれぞれのバンクがバンクビジー状態であるか否かを表す動作状態(以下、「バンクビジー状態信号」という)を出力する構成を示している。
なお、メモリ制御部260が出力するDRAM30の動作情報は、バンクビジー状態であるか否かを表す動作状態(バンクビジー状態信号)に限定されるものではなく、DRAM30の動作状態を表す他の情報が含まれていてもよい。このDRAM30の動作状態を表す他の情報は、上述したバンクビジー状態であるか否かを表す動作情報に代えた情報であってもよいし、上述したバンクビジー状態であるか否かを表す動作情報に加えた情報であってもよい。このDRAM30の他の動作情報も、メモリ制御部260に備えたアービトレーション部2601や、メモリアクセス部2602、不図示の構成要素など、いずれの構成要素が出力してもよい。なお、メモリ制御部260が、DRAM30の動作状態を複数の動作情報によって通知する場合、例えば、バンクビジー状態であるか否かを表す動作情報と、DRAM30の他の動作情報との両方の動作情報を出力する場合、それぞれの動作情報は、同じ構成要素が出力してもよいし、異なる構成要素が出力してもよい。
撮像入力部220は、イメージセンサ10から出力された画素信号のデータをDRAM30に記憶させる(書き込む)処理ブロックである。撮像入力部220は、本発明の第1の実施形態のメモリアクセス装置200を構成する処理ブロックでもある。撮像入力部220は、画素信号のデータをDRAM30に記憶させる(書き込む)際に、DMA転送によってDRAM30にアクセスする。撮像入力部220は、高い優先度のDMA転送によって優先的にDRAM30にアクセスする処理ブロック(以下、「高優先処理ブロック」という)である。
撮像入力部220は、イメージセンサ10から出力された画素信号のデータ(以下、「入力画像データ」という)を一時的に保存する。そして、撮像入力部220は、保存した入力画像データをDRAM30に出力して記憶させる(書き込む)際に、まず、DRAM30へのアクセス要求信号(DMA要求信号)と、入力画像データを記憶させるDRAM30の記憶領域(バンクを含む)を指定するアドレス(DMAアドレス)と、DRAM30に対する書き込みのアクセス方向であることを表すアクセス方向信号(DMAライト信号)とを、メモリ制御部260に出力する。このとき、撮像入力部220は、メモリ制御部260から出力されたバンクビジー状態信号に基づいて、入力画像データを記憶させるためにDRAM30のバンクを指定する順番を変更する。
より具体的には、撮像入力部220は、DRAM30のバンクを予め定めた順番で指定するのではなく、バンクビジー状態信号によってバンクビジー状態になっていることが表されているDRAM30のバンクへのアクセスを回避するように、アクセス要求信号と共にメモリ制御部260に出力するアドレスによって指定するバンクの順番を変更する。例えば、撮像入力部220は、バンクビジー状態信号がバンクビジー状態ではないことを表しているDRAM30のバンクから先に指定する、つまり、すでに他の処理ブロックによってアクセスされてバンクビジー状態になっているバンクと異なるバンクを指定するように、出力するアドレスによって指定するバンクの順番を変更する。
そして、撮像入力部220は、出力したアクセス要求信号がメモリ制御部260に受け付けられた後に、つまり、メモリ制御部260からアクセス受け付け信号(DMA許可信号)が入力された後に、一時的に保存した入力画像データの内、指定したアドレスに対応する入力画像データを、メモリ制御部260に出力してDRAM30に出力して記憶させる(書き込ませる)。これにより、撮像入力部220は、同一のバンクにアクセスする際には所定の時間(一定時間)以上の時間を空ける必要があるというDRAM30におけるアクセスの制約を回避した順番でDRAM30にアクセスして、入力画像データをDRAM30に記憶させる(書き込ませる)ためのバス帯域を確保することができる。
なお、撮像入力部220は、イメージセンサ10から出力された画素信号に対して予め定めた撮像処理を施して生成した画像のデータを、入力画像データとしてメモリ制御部260を介してDRAM30に出力する構成であってもよい。この構成の場合、撮像入力部220は、一時的に保存した入力画像データをDRAM30に出力する際に撮像処理を施す構成であってもよいし、イメージセンサ10から出力された画素信号に対して撮像処理を施してから一時的に保存する構成であってもよい。なお、撮像入力部220がイメージセンサ10から出力された画素信号に対して施す撮像処理としては、キズ補正やシェーディング補正などの、いわゆる、前処理がある。しかし、本発明においては、撮像入力部220がイメージセンサ10から出力された画素信号に対して施す撮像処理に関しては、特に制限はしない。
画像処理部230は、DRAM30に記憶された入力画像データを取得し(読み出し)、取得した入力画像データに対して予め定めた画像処理を施して生成した静止画像のデータ(以下、「静止画像データ」という)や、動画像のデータ(以下、「動画像データ」という)をDRAM30に記憶させる(書き込む)処理ブロックである。画像処理部230は、DRAM30から入力画像データを取得する(読み出す)際、および静止画像データや動画像データをDRAM30に記憶させる(書き込む)際に、DMA転送によってDRAM30にアクセスする。
画像処理部230は、DRAM30から入力画像データを取得する(読み出す)際に、まず、DRAM30へのアクセス要求信号(DMA要求信号)と、入力画像データを取得するDRAM30の記憶領域(バンクを含む)を指定するアドレス(DMAアドレス)と、DRAM30に対する読み出しのアクセス方向であることを表すアクセス方向信号(DMAリード信号)とを、メモリ制御部260に出力する。そして、画像処理部230は、出力したアクセス要求信号がメモリ制御部260に受け付けられた後に、つまり、メモリ制御部260からアクセス受け付け信号(DMA許可信号)が入力された後に、メモリ制御部260がDRAM30から読み出して出力された入力画像データを一時的に保存する。そして、画像処理部230は、保存した入力画像データに対して予め定めた画像処理を施して、静止画像データや動画像データを生成し、生成した静止画像データや動画像データを一時的に保存する。
また、画像処理部230は、保存した静止画像データや動画像データをDRAM30に出力して記憶させる(書き込む)際に、まず、DRAM30へのアクセス要求信号(DMA要求信号)と、静止画像データや動画像データを記憶させるDRAM30の記憶領域(バンクを含む)を指定するアドレス(DMAアドレス)と、DRAM30に対する書き込みのアクセス方向であることを表すアクセス方向信号(DMAライト信号)とを、メモリ制御部260に出力する。そして、画像処理部230は、出力したアクセス要求信号がメモリ制御部260に受け付けられた後に、つまり、メモリ制御部260からアクセス受け付け信号(DMA許可信号)が入力された後に、静止画像データや動画像データを、メモリ制御部260に出力してDRAM30に出力して記憶させる(書き込ませる)。
なお、画像処理部230は、静止画像データや動画像データをDRAM30に出力する際に、一時的に保存した入力画像データに対して画像処理を施す構成であってもよいし、メモリ制御部260がDRAM30から読み出して出力された入力画像データに対して画像処理を施して静止画像データや動画像データを生成してから一時的に保存する構成であってもよい。なお、画像処理部230が入力画像データに対して施す画像処理としては、ノイズ除去処理、YC変換処理、リサイズ処理など、静止画像や動画像に対して行う種々の画像処理がある。しかし、本発明においては、画像処理部230が入力画像データに対して施す画像処理に関しては、特に制限はしない。
なお、画像処理部230は、メモリ制御部260と組み合わせて、本発明の第1の実施形態のメモリアクセス装置を構成することができる。しかし、撮像装置1において画像処理部230は、入力画像データ、および静止画像データや動画像データのDMA転送に時間的な制約が少ない(優先的にDMA転送を行う必要がない)ため、優先度が高い他の処理ブロックによってDRAM30がアクセスされていないときにDMA転送を行えればよい。つまり、画像処理部230は、撮像入力部220よりも優先度が低い処理ブロック(以下、「低優先処理ブロック」という)である。このため、撮像装置1において画像処理部230は、本発明の第1の実施形態のメモリアクセス装置を構成する処理ブロックとして構成されていない。
JPEG処理部240は、DRAM30に記憶された静止画像データを取得し(読み出し)、取得した静止画像データに対して、静止画像を記録するためのJPEG(Joint Photographic Experts Group)圧縮処理を施して生成した記録画像のデータ(以下、「記録画像データ」という)を、DRAM30に記憶させる(書き込む)処理ブロックである。JPEG処理部240は、DRAM30から静止画像データ取得する(読み出す)際、および記録画像データをDRAM30に記憶させる(書き込む)際に、DMA転送によってDRAM30にアクセスする。JPEG処理部240も、画像処理部230と同様の方法によって、DRAM30に対してDMA転送のアクセスを行う。
なお、JPEG処理部240も、画像処理部230と同様に、記録画像データをDRAM30に出力する際に、一時的に保存した静止画像データに対してJPEG圧縮処理を施す構成であってもよいし、メモリ制御部260がDRAM30から読み出して出力された静止画像データに対してJPEG圧縮処理を施して記録画像データを生成してから一時的に保存する構成であってもよい。なお、JPEG処理部240は、不図示の記録媒体に記録された記録画像データに対応する静止画像データを生成するJPEG伸張処理を行う構成であってもよい。
なお、JPEG処理部240は、メモリ制御部260と組み合わせて、画像処理部230と同様に、本発明の第1の実施形態のメモリアクセス装置を構成することができる。しかし、撮像装置1においてJPEG処理部240は、DRAM30からの静止画像データの取得(読み出し)や、記録画像データのDRAM30への記憶(書き込み)に時間的な制約が少ないため、画像処理部230と同様に、低い優先度のDMA転送によってDRAM30にアクセスする低優先処理ブロックである。このため、撮像装置1においてJPEG処理部240は、本発明の第1の実施形態のメモリアクセス装置を構成する処理ブロックとして構成されていない。
表示処理部250は、DRAM30に記憶された静止画像データや動画像データを取得し(読み出し)、取得した静止画像データや動画像データに応じた表示画像を表示装置40に表示させる処理ブロックである。表示処理部250は、DRAM30から静止画像データや動画像データを取得する(読み出す)際に、DMA転送によってDRAM30にアクセスする。表示処理部250も、画像処理部230やJPEG処理部240と同様の方法によって、DRAM30に対してDMA転送のアクセスを行う。
なお、表示処理部250は、メモリ制御部260がDRAM30から読み出して出力された静止画像データや動画像データに対して予め定めた表示処理を施して生成した表示画像を表示装置40に出力する構成であってもよい。この構成の場合、表示処理部250は、一時的に保存した静止画像データや動画像データを表示装置40に出力する際に表示処理を施す構成であってもよいし、メモリ制御部260がDRAM30から読み出して出力された静止画像データや動画像データに対して表示処理を施してから一時的に保存する構成であってもよい。なお、表示処理部250が静止画像データや動画像データに対して施す表示処理としては、例えば、表示装置40が表示する画像のサイズに表示画像のサイズを変換する処理や、例えば、撮影日時などの静止画像や動画像に関する様々な情報を表示させるためのオンスクリーンディスプレイ(On Screen Display:OSD)画像を重畳する処理などがある。しかし、本発明においては、表示処理部250が静止画像データや動画像データに対して施す表示処理に関しては、特に制限はしない。
なお、表示処理部250は、メモリ制御部260と組み合わせて、本発明の第1の実施形態のメモリアクセス装置を構成することができる。例えば、撮像装置1の動作モードによって、表示処理部250が、高い優先度のDMA転送によって優先的にDRAM30にアクセスする高優先処理ブロックとなった場合、表示処理部250は、メモリ制御部260と組み合わせることによって、本発明の第1の実施形態のメモリアクセス装置を構成することができる。より具体的には、撮像装置1の動作モードが、被写体の撮影を行う撮影モードである場合、表示処理部250は、表示画像(ライブビュー画像:スルー画像)を表示装置40に逐次表示させるため、静止画像データや動画像データを、DMA転送によってDRAM30から逐次取得する(読み出す)必要がある処理ブロックとなる。この場合、表示処理部250も、撮像入力部220と同様に、高優先処理ブロックとなり、メモリ制御部260から出力されたバンクビジー状態信号に基づいて、静止画像データや動画像データを読み出すためにDRAM30のバンクを指定する順番を変更する、本発明の第1の実施形態のメモリアクセス装置を構成する処理ブロックとなる。この場合、表示処理部250も、撮像入力部220と同様の方法によって、DRAM30に対してDMA転送のアクセスを行う。
より具体的には、表示処理部250は、DRAM30から静止画像データや動画像データを取得する(読み出す)際に、まず、DRAM30へのアクセス要求信号(DMA要求信号)と、静止画像データや動画像データを取得するDRAM30の記憶領域(バンクを含む)を指定するアドレス(DMAアドレス)と、DRAM30に対する読み出しのアクセス方向であることを表すアクセス方向信号(DMAリード信号)とを、メモリ制御部260に出力する。このとき、表示処理部250は、DRAM30のバンクを予め定めた順番で指定するのではなく、撮像入力部220と同様に、バンクビジー状態信号によってバンクビジー状態になっていることが表されているDRAM30のバンクへのアクセスを回避するように、アクセス要求信号と共にメモリ制御部260に出力するアドレスによって指定するバンクの順番を変更する。例えば、表示処理部250は、撮像入力部220と同様に、バンクビジー状態信号がバンクビジー状態ではないことを表しているDRAM30のバンクから先に指定するように、出力するアドレスによって指定するバンクの順番を変更する。つまり、表示処理部250も、撮像入力部220と同様に、すでに他の処理ブロックによってアクセスされてバンクビジー状態になっているバンクと異なるバンクを指定するように、出力するアドレスによって指定するバンクの順番を変更する。
そして、表示処理部250は、出力したアクセス要求信号がメモリ制御部260に受け付けられた後に、つまり、メモリ制御部260からアクセス受け付け信号(DMA許可信号)が入力された後に、メモリ制御部260がDRAM30から読み出して出力された静止画像データや動画像データを一時的に保存する。そして、表示処理部250は、保存した静止画像データや動画像データに応じた表示画像を表示装置40に出力して表示させる。これにより、表示処理部250は、同一のバンクにアクセスする際には所定の時間(一定時間)以上の時間を空ける必要があるというDRAM30におけるアクセスの制約を回避した順番でDRAM30にアクセスして、静止画像データや動画像データに応じた表示画像を表示装置40に出力して表示させるためのバス帯域を確保することができる。
ただし、上述したように、撮像装置1では、説明を容易にするため、表示処理部250とメモリ制御部260との組み合わせを、本発明の第1の実施形態のメモリアクセス装置としていない。
このような構成によって、撮像装置1は、イメージセンサ10によって被写体の静止画像や動画像を撮影し、撮影した静止画像や動画像に応じた表示画像を表示装置40に表示させる。また、撮像装置1は、イメージセンサ10によって撮影した静止画像や動画像に応じた記録画像を、不図示の記録媒体に記録させることもできる。
そして、撮像装置1では、画像処理装置20に備えたそれぞれの処理ブロックの内、DMA転送によるDRAM30へのアクセス要求を行う際に、アクセス要求信号と共にメモリ制御部260に出力するアドレスによって指定するバンクの順番を変更する処理ブロックが、メモリ制御部260と組み合わされて、本発明の第1の実施形態のメモリアクセス装置200を構成する。言い換えれば、画像処理装置20において、高い優先度のDMA転送によって優先的にDRAM30にアクセスする高優先処理ブロックが、メモリ制御部260と組み合わされて、メモリアクセス装置200を構成する。
なお、上述したように、第1の実施形態では、撮像入力部220とメモリ制御部260との組み合わせのみが本発明の第1の実施形態のメモリアクセス装置(メモリアクセス装置200)であるものとしている。しかし、上述したように、撮像装置1では、撮像装置1の動作モードによって、高優先処理ブロックとなる処理ブロックが異なる。このため、撮像装置1では、それぞれの動作モードごとに、本発明の第1の実施形態のメモリアクセス装置を構成するためにメモリ制御部260と組み合わされる処理ブロックが異なる。例えば、上述した説明において低優先処理ブロックであるものとして説明した画像処理部230やJPEG処理部240も、高優先処理ブロックとなり、メモリ制御部260と組み合わせて、本発明の第1の実施形態のメモリアクセス装置を構成することもある。より具体的には、撮像装置1の動作モードが、複数の静止画像を連続して高速に撮影する高速連写モードである場合、撮像入力部220は、イメージセンサ10から出力されたそれぞれのフレームの入力画像データを、DMA転送によってDRAM30に逐次記憶させる(書き込む)必要がある処理ブロック(高優先処理ブロック)となる。しかし、高速連写モードでは、DRAM30の記憶容量が、連続して撮影することができる静止画像の枚数(連写枚数)を制限する要因となり、1枚の静止画像の記憶に要するDRAM30の記憶容量が少なければ、連写枚数を増加させることができる。そして、撮像装置1においては、イメージセンサ10から出力された入力画像データよりも、JPEG処理部240によってJPEG圧縮処理が施された記録画像データの方が、必要とするDRAM30の記憶容量が少ないと考えることができる。このため、撮像装置1では、撮像入力部220と同等ではないにしても、画像処理部230およびJPEG処理部240の優先度も高くすることによって、1枚の静止画像の記憶に要するDRAM30の記憶容量を減少させるようにすることが考えられる。この場合、撮像装置1では、画像処理部230およびJPEG処理部240のそれぞれも、高優先処理ブロックと同様の動作をさせる、つまり、DMA転送においてアクセス要求信号と共にメモリ制御部260に出力するアドレスによって指定するバンクの順番を変更する処理ブロックとしてもよい。つまり、撮像装置1において、画像処理部230およびJPEG処理部240のそれぞれも、メモリ制御部260と組み合わせることによって、本発明の第1の実施形態のメモリアクセス装置を構成させてもよい。
次に、本発明の第1の実施形態のメモリアクセス装置200の構成および動作について説明する。図2は、本発明の第1の実施形態におけるメモリアクセス装置200の概略構成を示したブロック図である。図2には、図1に示した撮像装置1の構成において、メモリアクセス装置200を構成する高優先処理ブロックである撮像入力部220の概略構成を示している。撮像入力部220は、バッファ部2201とアクセス選択部2202とを備えている。なお、図2においては、撮像入力部220に備えた構成要素の内、イメージセンサ10から出力された入力画像データをDRAM30に記憶させる際に、DRAM30のバンクを指定する順番を変更する機能を実現するための構成要素のみを示している。つまり、図2においては、一般的な撮像装置に備えた撮像入力部の機能を実現するための構成要素を省略している。
なお、図2には、バンク−0〜バンク−15の16個のバンクが構成されているDRAM30に対応する撮像入力部220の概略構成を示している。そして、図2においては、バッファ部2201とアクセス選択部2202とに入力または出力されるそれぞれの信号において、対応するDRAM30のバンク(バンク−0〜バンク−15)を区別するため、それぞれの信号名に続く「−」の後に、対応するバンクを示す「数字」を示している。例えば、図2においてバッファ部2201とアクセス選択部2202との間でやり取りするバンクアクセス要求信号を、「バンクアクセス要求信号−0」〜「バンクアクセス要求信号−15」として表している。また、同様に、図2においてバッファ部2201とアクセス選択部2202との間でやり取りするバンクアドレス、バンクデータ、およびバンクアクセス許可信号のそれぞれを、「バンクアドレス−0」〜「バンクアドレス−15」、「バンクデータ−0」〜「バンクデータ−15」、「バンクアクセス許可信号−0」〜「バンクアクセス許可信号−15」として表している。また、例えば、図2においてアクセス選択部2202に入力されるメモリ制御部260からのバンクビジー状態信号を、「バンクビジー状態信号−0」〜「バンクビジー状態信号−15」として表している。
バッファ部2201は、イメージセンサ10から撮像入力部220に出力された入力画像データを一時的に保存(バッファリング)する記憶部である。バッファ部2201は、DRAM30に構成されたバンクに対応する形式で、入力画像データを一時的に保存する。図2には、バッファ部2201内の(a)に、バッファ部2201の記憶領域の構成の一例を示している。より具体的には、DRAM30に16個のバンクが構成されているため、バッファ部2201内の(a)には、DRAM30に構成された16個のバンク−0〜バンク−15のそれぞれの対応するアドレス(バンクアドレス)と、データ(入力画像データ)とが対応付けられている記憶領域の構成の一例を示している。
バッファ部2201は、バッファリングしたそれぞれの入力画像データを、アクセス選択部2202に出力する。このとき、バッファ部2201は、DRAM30に構成されたそれぞれのバンクに対応する入力画像データの転送を並列に要求する。より具体的には、DRAM30に構成されたそれぞれのバンクへの入力画像データの転送を要求するバンクアクセス要求信号と、入力画像データを転送するDRAM30のバンクを指定するバンクアドレスとを、アクセス選択部2202に並列に出力する。そして、バッファ部2201は、出力したバンクアクセス要求信号がアクセス選択部2202に受け付けられてバンクアクセス許可信号が入力された後に、受け付けられたバンクアクセス要求信号に対応するバンクデータ、つまり、一時的に保存した入力画像データを、アクセス選択部2202に出力する。
さらに具体的には、図2に示した概略構成では、バッファ部2201は、DRAM30に構成されたバンク−0〜バンク−15のそれぞれへの入力画像データの転送を要求するための「バンクアクセス要求信号−0」〜「バンクアクセス要求信号−15」と、「バンクアドレス−0」〜「バンクアドレス−15」とを並列に、アクセス選択部2202に出力する。そして、バッファ部2201は、並列に出力した「バンクアクセス要求信号−0」〜「バンクアクセス要求信号−15」のいずれかがアクセス選択部2202によって受け付けられた後、アクセス選択部2202から出力された「バンクアクセス許可信号−0」〜「バンクアクセス許可信号−15」のいずれかに対応する「バンクデータ−0」〜「バンクデータ−15」のいずれかを、アクセス選択部2202に出力する。
アクセス選択部2202は、バッファ部2201から並列に要求された入力画像データの転送の要求に応じて、DMA転送によってDRAM30に転送するためのデータ(入力画像データ)の受け渡しを制御する。このとき、アクセス選択部2202は、メモリ制御部260から出力されたバンクビジー状態信号に基づいて、入力画像データをDRAM30に転送する際に指定するバンクの順番を変更する。より具体的には、アクセス選択部2202は、まず、DRAM30に構成されたそれぞれのバンクに対応するバンクビジー状態信号−0〜バンクビジー状態信号−15に基づいて、バッファ部2201から並列に要求された入力画像データの転送を受け付けるバンクを選択する。そして、アクセス選択部2202は、選択したバンクに対する入力画像データのDMA転送を要求するためのアクセス要求信号と、選択したバンクを指定するアドレスおよびアクセス方向信号とを、メモリ制御部260に出力する。
その後、アクセス選択部2202は、出力したアクセス要求がメモリ制御部260によって受け付けられ、メモリ制御部260からアクセス受け付け信号が入力されると、選択したバンクに対する入力画像データの転送を受け付けることを表すバンクアクセス許可信号、つまり、選択したバンクに対応するバンクアクセス許可信号を、バッファ部2201に出力する。これにより、アクセス選択部2202には、選択したバンクに対応するバンクデータ、つまり、アクセス要求信号と共にメモリ制御部260に出力しているアドレスに対応する入力画像データが、バッファ部2201から出力される。アクセス選択部2202は、バッファ部2201から出力されたバンクデータを、DRAM30に転送する(書き込む)データとして、データバス210を介してメモリ制御部260に出力する。これにより、メモリ制御部260は、アクセス要求を受け付けた撮像入力部220、つまり、アクセス選択部2202がデータバス210に出力したデータを、DRAM30に転送する(書き込む)。
なお、アクセス選択部2202は、バンクビジー状態信号−0〜バンクビジー状態信号−15のいずれもバンクビジー状態ではないことを表している場合には、バンク−0〜バンク−15の順番でそれぞれのバンクを指定し、バッファ部2201から順番に出力されたバンクデータを、DRAM30に転送する(書き込む)データとしてメモリ制御部260に出力する。しかし、アクセス選択部2202は、バンクビジー状態信号−0〜バンクビジー状態信号−15のいずれかがバンクビジー状態であることを表している場合には、上述したように、バンクビジー状態であるバンクへのアクセスを回避するように、バッファ部2201から順番に出力されたバンクデータをDRAM30に転送する際に指定するそれぞれのバンクの順番を変更する。
ここで、アクセス選択部2202がバンクデータをDRAM30に転送する際に指定するバンクの順番を変更する処理について説明する。図3は、本発明の第1の実施形態におけるメモリアクセス装置200においてアクセスするバンクを変更する処理、つまり、指定するバンクの順番を変更する処理の処理手順を示したフローチャートである。なお、以下の説明においては、DRAM30のそれぞれのバンクに対応するバンクビジー状態信号が、メモリ制御部260から逐次出力されているものとして説明する。
バッファ部2201にイメージセンサ10から撮像入力部220に出力された入力画像データがバッファリングされると、バッファ部2201は、バッファリングした入力画像データのDRAM30に構成されたそれぞれのバンクへの転送を要求するバンクアクセス要求信号とバンクアドレスとを並列に、アクセス選択部2202に出力する。これにより、アクセス選択部2202は、メモリ制御部260から出力されているバンクビジー状態信号に基づいて、バンクビジー状態になっているバンクがあるか否かを判定する(ステップS110)。
ステップS110において、バンクビジー状態になっているバンクがない、つまり、DRAM30に構成された全てのバンクがバンクビジー状態ではないと判定した場合(ステップS110の“NO”)、アクセス選択部2202は、ステップS140に進む。
一方、ステップS110において、バンクビジー状態になっているバンクがあると判定した場合(ステップS110の“YES”)、アクセス選択部2202は、バンクビジー状態になっているバンクを確認する(ステップS120)。
続いて、アクセス選択部2202は、ステップS120において確認した結果に基づいて、バンクを指定する順番を変更する(ステップS130)。より具体的には、アクセス選択部2202は、予め定めた順番で指定するバンクの内、バンクビジー状態になっているバンクの順番を後ろに回して、バンクビジー状態ではないバンクから先に指定するように、バンクを指定する順番を変更する。
続いて、アクセス選択部2202は、DRAM30のバンクを指定する順番にアクセス要求をメモリ制御部260に出力し、バッファ部2201にバッファリングされた入力画像データを、DRAM30に順次転送する(ステップS140)。より具体的には、ステップS110において、バンクビジー状態になっているバンクがないと判定した場合、アクセス選択部2202は、DRAM30のバンクを指定する予め定めた順番にアクセス要求をメモリ制御部260に出力して、それぞれのバンクに対応するバンクデータ(入力画像データ)を、DRAM30に順次転送する。一方、ステップS110において、バンクビジー状態になっているバンクがあると判定した場合、アクセス選択部2202は、ステップS130において変更した順番にアクセス要求をメモリ制御部260に出力して、それぞれのバンクに対応するバンクデータ(入力画像データ)を、DRAM30に順次転送する。
次に、画像処理装置20においてDRAM30にデータを転送する動作の一例について説明する。図4は、本発明の第1の実施形態におけるメモリアクセス装置200においてDRAM30をアクセスする、つまり、バンクを指定するタイミングの一例を示したタイミングチャートである。図4には、高優先処理ブロックである撮像入力部220と、低優先処理ブロック(例えば、画像処理部230やJPEG処理部240)とのそれぞれがDMA転送によるDRAM30へのアクセス要求を出力する場合のタイミングの一例を示している。より具体的には、図4には、撮像入力部220と低優先処理ブロックとのそれぞれがDRAM30へのアクセス要求を行う際に出力する「アクセス要求信号」と、バンクを指定する「アドレス」とのそれぞれのタイミングの一例を示している。なお、アクセス要求信号は、“High”レベルでDRAM30へのアクセスを要求することを表し、“Low”レベルでDRAM30へのアクセスを要求しないことを表している。また、図4には、撮像入力部220と低優先処理ブロックとのそれぞれから出力されたアクセス要求を受け付けたバンクを「アクセス受け付け」として示している。なお、撮像入力部220では、上述したように、撮像入力部220に備えたアクセス選択部2202が、メモリ制御部260から出力されているバンクビジー状態信号に基づいて、指定するバンクの順番を変更する。このため、図4には、撮像入力部220が出力するアドレスとして、アクセス選択部2202が順番を変更する前のアドレスを「アドレス(変更前)」として示し、アクセス選択部2202が順番を変更した後のアドレスを「アドレス(変更後)」として示している。また、図4には、メモリ制御部260が出力するDRAM30のそれぞれのバンクに対応する「バンクビジー状態信号」を併せて示している。なお、バンクビジー状態信号は、“High”レベルでバンクビジー状態であることを表し、“Low”レベルでバンクビジー状態ではないことを表している。
図4に示したタイミングチャートは、DRAM30に16個のバンクが構成されており、撮像入力部220が、DRAM30に構成された8つのバンクを連続して指定するアクセス要求を行う場合のタイミングの一例である。なお、以下の説明においては、アクセス選択部2202に予め定められたDRAM30のバンクを指定する順番が、「アドレス(変更前)」に示したように、バンク−0→バンク−1→バンク−2→・・・→バンク−6→バンク−7の順番であるものとして説明する。また、以下の説明においては、メモリ制御部260が、それぞれのバンクに対応するバンクビジー状態信号を逐次出力しているものとして説明する。
図4に示したタイミングチャートの一例では、メモリ制御部260が、低優先処理ブロックから出力されたアクセス要求信号に応じて、低優先処理ブロックから指定されたバンクに対するアクセス要求を受け付けて、DRAM30へのデータの受け渡しを制御、つまり、DMA転送を行っている。メモリ制御部260が、低優先処理ブロックからのアクセス要求に応じたデータの受け渡しの制御を行うと、低優先処理ブロックから指定されたDRAM30のバンクはバンクビジー状態になり、一定時間が経過した後にバンクビジー状態が解消されて、再び同一のバンクに対するアクセス要求を受け付けることができる状態となる。メモリ制御部260は、アクセス要求を受け付けたことによってバンクビジー状態となったバンクに対応するバンクビジー状態信号を、“High”レベルにする。図4に示したタイミングチャートの一例では、低優先処理ブロックから指定されたバンク−3、バンク−1、およびバンク−0に対応するバンクビジー状態信号−3、バンクビジー状態信号−1、およびバンクビジー状態信号−0が順次“High”レベルになっている。そして、メモリ制御部260は、一定時間が経過してそれぞれのバンクにおけるバンクビジー状態が解消されると、それぞれのバンクビジー状態信号を“Low”レベルにする。
その後、図4に示したタイミングチャートの一例では、撮像入力部220が、タイミングt1から、8つのバンクを連続して指定するアクセス要求を行う。このとき、撮像入力部220は、タイミングt1においてDRAM30への最初のアクセス要求を出力する前に、アクセス選択部2202が、メモリ制御部260から出力されているそれぞれのバンクに対応するバンクビジー状態信号に基づいて、指定するバンクの順番を決定する。図4に示したタイミングチャートの一例では、タイミングt1の直前にメモリ制御部260から出力されているバンクビジー状態信号が、バンク−0、バンク−1、およびバンク−3がバンクビジー状態であることを表している。このため、アクセス選択部2202は、バンクビジー状態になっているバンクに対するアクセスを後ろに回して、バンクビジー状態になっていないバンクに対するアクセスを先に行うように、指定するバンクの順番を決定する。図4に示したタイミングチャートの一例では、アクセス選択部2202が、バンク−2→バンク−4→バンク−5→バンク−6→バンク−7→バンク−0→バンク−1→バンク−3の順番でそれぞれのバンクを指定すると決定した場合の一例を示している。
なお、アクセス選択部2202がそれぞれのバンクを指定する順番は、図4に示したタイミングチャートの一例において示した順番に限定されるものではない。つまり、バンクビジー状態であるバンクへのアクセスを回避すると共に、バンク−0〜バンク−7を網羅している順番であれば、アクセス選択部2202がそれぞれのバンクを指定する順番は、どのような順番であってもよい。例えば、図4に示したタイミングチャートの一例と同様に、タイミングt1の直前にメモリ制御部260から出力されているバンクビジー状態信号が、バンク−0、バンク−1、およびバンク−3がバンクビジー状態であることを表している場合において、アクセス選択部2202は、バンク−4→バンク−5→バンク−6→バンク−7→バンク−0→バンク−1→バンク−2→バンク−3の順番を、それぞれのバンクを指定する順番として決定してもよい。
そして、撮像入力部220(アクセス選択部2202)は、タイミングt1から、決定した順番で8つのバンクを連続して指定するアクセス要求信号をメモリ制御部260に順次出力する。つまり、撮像入力部220は、図4に示したタイミングチャートの一例のように、バンクビジー状態になっているバンクに対するアクセスを回避したアクセス要求信号を、メモリ制御部260に出力する。これにより、メモリ制御部260は、撮像入力部220から出力されたそれぞれのアクセス要求信号に応じて、撮像入力部220から指定されたバンクビジー状態になっていないバンクに対するアクセス要求を受け付けて、DRAM30へのデータの受け渡しを制御、つまり、DMA転送を行う。図4に示したタイミングチャートの一例では、メモリ制御部260が、タイミングt2〜タイミングt9のそれぞれのタイミングにおいて撮像入力部220から指定されたそれぞれのバンクに対するアクセス要求を受け付けて、DMA転送を行うタイミングを示している。このとき、メモリ制御部260は、撮像入力部220から指定されたそれぞれのバンクに対するアクセス要求を受け付けると、アクセス要求を受け付けたことによってバンクビジー状態となったそれぞれのバンクに対応するバンクビジー状態信号を、“High”レベルにする。なお、それぞれのバンクは、一定時間が経過した後にバンクビジー状態が解消されるため、メモリ制御部260は、バンクビジー状態が解消されたときに、それぞれのバンクに対応するバンクビジー状態信号を“Low”レベルにする。
このような構成および動作によって、本発明の第1の実施形態のメモリアクセス装置200では、DRAM30に備えたバンクビジー状態になっているバンクに対するアクセスを回避したデータの受け渡し制御(DMA転送)を行う。これにより、本発明の第1の実施形態のメモリアクセス装置200では、撮像入力部220によるDRAM30に対するアクセスの効率を高め、撮像入力部220が入力画像データをDRAM30に記憶させる(書き込ませる)ためのバス帯域を確保することができる。
なお、本発明の第1の実施形態のメモリアクセス装置200が、指定するバンクの順番を変更せずに、予め定められた順番、つまり、バンク−0→バンク−1→バンク−2→・・・→バンク−6→バンク−7の順番で、アクセス要求信号を出力した場合、メモリ制御部260は、低優先処理ブロックによって指定されたバンク−0のバンクビジー状態が解消された後にアクセス要求を受け付けることになる。図4に示したタイミングチャートの一例では、例えば、タイミングt4のときに、メモリ制御部260がバンク−0に対するアクセス要求を受け付けることになる。なお、指定するバンクの順番を変更しない場合の動作のタイミングは、バンクビジー状態になっているバンクに対するアクセスを回避せずにアクセス要求信号を出力する従来のメモリアクセス装置の動作のタイミングに相当する。
これに対して、本発明の第1の実施形態のメモリアクセス装置200では、バンクビジー状態になっているバンクに対するアクセスを回避した順番でそれぞれのバンクを指定したアクセス要求をすることにより、図4に示したタイミングチャートの一例のように、タイミングt2のときに、メモリ制御部260がバンク−0に対するアクセス要求を受け付ける。つまり、本発明の第1の実施形態のメモリアクセス装置200では、従来のメモリアクセス装置よりも早いタイミングで、バンク−0に対するアクセス要求を受け付ける。これにより、本発明の第1の実施形態のメモリアクセス装置200では、連続した一連のアクセス要求によるデータの転送(DRAM30に構成された8つのバンクを連続して指定するDMA転送)が終了するまでの期間も短縮することができる。
本第1の実施形態によれば、同一のデータバス(データバス210)に接続され、アドレス空間が複数のバンクに分けられたメモリ(DRAM30)へのアクセスを要求するアクセス要求を出力する複数の処理ブロック(撮像入力部220、画像処理部230、JPEG処理部240、表示処理部250)と、データバス210に接続され、処理ブロックのそれぞれから出力されたアクセス要求を調停し、受け付けたアクセス要求に応じて、接続されたDRAM30へのアクセスを制御すると共に、DRAM30の動作状態を表す動作情報(バンクビジー状態信号)を出力するメモリ制御部(メモリ制御部260)と、複数の処理ブロックの内、優先度が高い少なくとも1つの処理ブロック(例えば、撮像入力部220)を高優先処理ブロックとしたとき、バンクビジー状態信号に基づいて、高優先処理ブロックがDRAM30の複数のバンクに連続してアクセスする際に指定するバンクの順番を変更し、変更した順番でバンクを指定する高優先処理ブロックのアクセス要求を出力するアクセス選択部(アクセス選択部2202)と、を備える、メモリアクセス装置(メモリアクセス装置200)が構成される。
また、本第1の実施形態によれば、高優先処理ブロックがDRAM30との間で受け渡しをするデータ(例えば、入力画像データ)を、それぞれのバンクに対応させて一時的に保存し、保存したそれぞれのバンクに対応する入力画像データ(バンクデータ)の転送を並列に要求するバッファ部(バッファ部2201)、をさらに備え、アクセス選択部2202は、バンクビジー状態信号に基づいて、バッファ部2201から並列に要求されたそれぞれのバンクに入力画像データ(バンクデータ)を転送する際に指定するバンクの順番を変更する、メモリアクセス装置200が構成される。
また、本第1の実施形態によれば、バッファ部2201およびアクセス選択部2202は、高優先処理ブロック(例えば、撮像入力部220)の内部に構成される、メモリアクセス装置200が構成される。
また、本第1の実施形態によれば、バンクビジー状態信号は、同一のバンクへのアクセスを行うことができない所定の時間内であるか否か(バンクビジー状態になっているバンクがあるか否か)を、バンクごとに表した情報(動作情報)であり、アクセス選択部2202は、バンクビジー状態信号に基づいて、同一のバンクへのアクセスを行うことができない所定の時間内である(バンクビジー状態である)バンクへのアクセスを回避するように、指定するバンクの順番を変更する、メモリアクセス装置200が構成される。
また、本第1の実施形態によれば、メモリ制御部260は、処理ブロックのそれぞれから出力されたアクセス要求を調停するアービトレーション部(アービトレーション部2601)と、アービトレーション部2601が受け付けたアクセス要求に応じてDRAM30へのアクセスを制御するメモリアクセス部(メモリアクセス部2602)と、を備え、バンクビジー状態信号は、アービトレーション部2601およびメモリアクセス部2602のいずれか一方または両方が出力する、メモリアクセス装置200が構成される。
また、本第1の実施形態によれば、同一のデータバス(データバス210)に接続され、アドレス空間が複数のバンクに分けられたメモリ(DRAM30)へのアクセスを要求するアクセス要求を出力する複数の処理ブロック(撮像入力部220、画像処理部230、JPEG処理部240、表示処理部250)と、データバス210に接続され、処理ブロックのそれぞれから出力されたアクセス要求を調停し、受け付けたアクセス要求に応じて、接続されたDRAM30へのアクセスを制御すると共に、DRAM30の動作状態を表す動作情報(バンクビジー状態信号)を出力するメモリ制御部(メモリ制御部260)と、複数の処理ブロックの内、優先度が高い少なくとも1つの処理ブロック(例えば、撮像入力部220)を高優先処理ブロックとしたとき、バンクビジー状態信号に基づいて、高優先処理ブロックがDRAM30の複数のバンクに連続してアクセスする際に指定するバンクの順番を変更し、変更した順番でバンクを指定する高優先処理ブロックのアクセス要求を出力するアクセス選択部(アクセス選択部2202)と、を具備したメモリアクセス装置(メモリアクセス装置200)、を備える、画像処理装置(画像処理装置20)が構成される。
また、本第1の実施形態によれば、同一のデータバス(データバス210)に接続され、アドレス空間が複数のバンクに分けられたメモリ(DRAM30)へのアクセスを要求するアクセス要求を出力する複数の処理ブロック(撮像入力部220、画像処理部230、JPEG処理部240、表示処理部250)と、データバス210に接続され、処理ブロックのそれぞれから出力されたアクセス要求を調停し、受け付けたアクセス要求に応じて、接続されたDRAM30へのアクセスを制御すると共に、DRAM30の動作状態を表す動作情報(バンクビジー状態信号)を出力するメモリ制御部(メモリ制御部260)と、複数の処理ブロックの内、優先度が高い少なくとも1つの処理ブロック(例えば、撮像入力部220)を高優先処理ブロックとしたとき、バンクビジー状態信号に基づいて、高優先処理ブロックがDRAM30の複数のバンクに連続してアクセスする際に指定するバンクの順番を変更し、変更した順番でバンクを指定する高優先処理ブロックのアクセス要求を出力するアクセス選択部(アクセス選択部2202)と、を具備したメモリアクセス装置(メモリアクセス装置200)を備える画像処理装置(画像処理装置20)、を備える、撮像装置(撮像装置1)が構成される。
上述したように、本発明の第1の実施形態のメモリアクセス装置200では、メモリ制御部260が、接続されているDRAM30のそれぞれのバンクがバンクビジー状態であるか否かを表すバンクビジー状態信号(DRAM30の動作情報)を出力する。そして、本発明の第1の実施形態のメモリアクセス装置200では、撮像入力部220(高優先処理ブロック)が、最初のアクセス要求を出力する直前のバンクビジー状態信号に基づいて、それぞれのアクセス要求において、バンクビジー状態になっているバンクを指定しない(バンクビジー状態になっているバンクに対するアクセスを回避する)ように、それぞれのバンクを指定する順番を決定する。これにより、本発明の第1の実施形態のメモリアクセス装置200では、撮像入力部220(高優先処理ブロック)によるDRAM30に対するアクセスの効率を高め、撮像入力部220(高優先処理ブロック)がDRAM30に対してアクセスする(入力画像データをDRAM30に記憶させる(書き込ませる))ためのバス帯域を確保することができる。
なお、上述した説明では、本発明の第1の実施形態のメモリアクセス装置200が、撮像入力部220(高優先処理ブロック)とメモリ制御部260との組み合わせによって構成される場合の一例について説明したが、上述したように、高優先処理ブロックは、撮像装置1の動作モードによって異なる。このため、本発明の第1の実施形態のメモリアクセス装置を構成する高優先処理ブロックとメモリ制御部260との組み合わせは、撮像入力部220とメモリ制御部260との組み合わせに限定されるものではない。しかし、本発明の第1の実施形態のメモリアクセス装置が、撮像入力部220とは異なる高優先処理ブロックとメモリ制御部260との組み合わせであっても、その動作は、上述した撮像入力部220とメモリ制御部260との組み合わせにおける動作から容易に考えることができる。従って、本発明の第1の実施形態のメモリアクセス装置が撮像入力部220とは異なる高優先処理ブロックとメモリ制御部260との組み合わせである場合における構成や動作に関する詳細な説明は省略する。
なお、本発明の第1の実施形態では、メモリアクセス装置200を構成する高優先処理ブロックである撮像入力部220が、最初のアクセス要求を出力する直前のバンクビジー状態信号に基づいて、DRAM30に備えたバンクを指定する順番を決定する場合を示した。しかし、撮像入力部220がDRAM30に備えたバンクを指定する順番を決定する方法は、最初のアクセス要求を出力する直前のバンクビジー状態信号に基づいて決定する方法でなくてもよい。例えば、撮像入力部220が、それぞれのアクセス要求を出力する直前のバンクビジー状態信号に基づいて、バンクを指定する順番を決定してもよい。つまり、撮像入力部220は、それぞれのアクセス要求ごとに、指定するバンクを決定してもよい。
(第2の実施形態)
次に、本発明の第2の実施形態のメモリアクセス装置について説明する。本発明の第2の実施形態のメモリアクセス装置は、メモリアクセス装置を構成する高優先処理ブロックが、それぞれのアクセス要求において指定するバンクを、それぞれのアクセス要求ごとに決定する構成である。
なお、以下の説明においても、本発明の第2の実施形態のメモリアクセス装置が、例えば、静止画用カメラや動画用カメラなどの撮像装置に搭載されている画像処理装置に備えられている場合について説明する。本発明の第2の実施形態のメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の構成は、図1に示した第1の実施形態のメモリアクセス装置200を備えた画像処理装置20を搭載した撮像装置1の概略構成と同様である。従って、本発明の第2の実施形態のメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の構成に関する詳細な説明は省略し、図1に示した第1の実施形態のメモリアクセス装置200を備えた画像処理装置20を搭載した撮像装置1の構成要素と同様の構成要素を表すときには同一の符号を用いて説明する。また、本発明の第2の実施形態のメモリアクセス装置の構成は、図2に示した第1の実施形態のメモリアクセス装置200の概略構成と同様である。従って、本発明の第2の実施形態のメモリアクセス装置の構成に関する詳細な説明は省略し、図2に示した第1の実施形態のメモリアクセス装置200の構成要素と同様の構成要素を表すときには同一の符号を用いて説明する。
ただし、本発明の第2の実施形態のメモリアクセス装置(以下、「メモリアクセス装置201」という)では、それぞれのアクセス要求ごとに指定するバンクを決定するため、アクセス選択部の動作が、第1の実施形態のメモリアクセス装置200に備えたアクセス選択部2202の動作と異なる。以下の説明においては、メモリアクセス装置201に備えるアクセス選択部を「アクセス選択部2212」といい、第1の実施形態のメモリアクセス装置200に備えたアクセス選択部2202と区別する。また、以下の説明においては、アクセス選択部2212を備えたメモリアクセス装置201を構成する撮像入力部を「撮像入力部221」といい、アクセス選択部2202を備えた第1の実施形態のメモリアクセス装置200を構成する撮像入力部220と区別する。また、以下の説明においては、メモリアクセス装置201を備えた画像処理装置を「画像処理装置21」といい、第1の実施形態のメモリアクセス装置200を備えた画像処理装置20と区別する。
次に、本発明の第2の実施形態のメモリアクセス装置201の動作、つまり、アクセス選択部2212がバンクデータをDRAM30に転送する際に指定するバンクの順番を変更する処理について説明する。図5は、本発明の第2の実施形態におけるメモリアクセス装置201においてアクセスするバンクを変更する処理、つまり、指定するバンクの順番を変更する処理の処理手順を示したフローチャートである。なお、以下の説明においても、DRAM30のそれぞれのバンクに対応するバンクビジー状態信号が、メモリ制御部260から逐次出力されているものとして説明する。
バッファ部2201にイメージセンサ10から撮像入力部221に出力された入力画像データがバッファリングされると、バッファ部2201は、バッファリングした入力画像データのDRAM30に構成されたそれぞれのバンクへの転送を要求するバンクアクセス要求信号とバンクアドレスとを並列に、アクセス選択部2212に出力する。これにより、アクセス選択部2212は、メモリ制御部260から出力されているバンクビジー状態信号に基づいて、指定する予定のバンクがバンクビジー状態であるか否かを判定する(ステップS210)。ここで、指定する予定のバンクとは、アクセス選択部2212に予め定められたDRAM30のバンクを指定する順番が、バンク−0→バンク−1→バンク−2→・・・→バンク−6→バンク−7の順番である場合、バンク−0が、最初に指定する予定のバンクである。
ステップS210において、指定する予定のバンクがバンクビジー状態であると判定した場合(ステップS210の“YES”)、アクセス選択部2212は、指定するバンクの順番を変更する(ステップS220)。例えば、ステップS210において、最初に指定する予定のバンク−0がバンクビジー状態であると判定した場合、アクセス選択部2212は、次に指定する予定のバンク−1に変更する。なお、アクセス選択部2212は、順番を変更したバンク−0を、バンク−1のアクセスが終了した後において最初に指定する予定のバンクとしてもよいし、予め定められた一連のバンク、つまり、バンク−7のアクセスが終了した後において最初に指定する予定のバンクとしてもよい。そして、アクセス選択部2212は、ステップS210に戻って、指定する予定のバンク(バンク−1)がバンクビジー状態であるか否かを判定する。メモリアクセス装置201では、アクセス選択部2212が、ステップS210およびステップS220の処理を、指定する予定のバンクがバンクビジー状態ではないと判定するまで繰り返す。
一方、ステップS210において、指定する予定のバンクがバンクビジー状態ではないと判定した場合(ステップS210の“NO”)、アクセス選択部2212は、ステップS230に進む。
続いて、アクセス選択部2212は、ステップS210においてバンクビジー状態ではないと判定したバンクに対するアクセス要求をメモリ制御部260に出力し、バッファ部2201にバッファリングされたバンクデータ(入力画像データ)を、DRAM30に転送する(ステップS230)。
続いて、アクセス選択部2212は、アクセス選択部2212に予め定められた全てのバンクに対応するバンクデータ(入力画像データ)のDRAM30への転送が終了したか否かを判定する(ステップS240)。ステップS240において、予め定められた全てのバンクに対応するバンクデータ(入力画像データ)のDRAM30への転送が終了したと判定した場合(ステップS240の“YES”)、アクセス選択部2212は、指定するバンクの順番を変更する処理を終了する。一方、ステップS240において、予め定められた全てのバンクに対応するバンクデータ(入力画像データ)のDRAM30への転送が終了していないと判定した場合(ステップS240の“NO”)、アクセス選択部2212は、ステップS210に戻って、ステップS210〜ステップS240の処理を繰り返す。つまり、アクセス選択部2212は、バンクデータ(入力画像データ)の転送が終了していないバンクに対するバンクビジー状態であるか否かを判定と、順番の変更と、アクセス要求のメモリ制御部260への出力およびバンクデータ(入力画像データ)の転送とを、予め定められた全てのバンクに対応するバンクデータ(入力画像データ)のDRAM30への転送が終了するまで繰り返す。
次に、画像処理装置21においてDRAM30にデータを転送する動作の一例について説明する。図6は、本発明の第2の実施形態におけるメモリアクセス装置201においてDRAM30をアクセスする、つまり、バンクを指定するタイミングの一例を示したタイミングチャートである。図6には、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、高優先処理ブロックである撮像入力部221と、低優先処理ブロック(例えば、画像処理部230やJPEG処理部240)とのそれぞれがDMA転送によるDRAM30へのアクセス要求を出力する場合のタイミングの一例を示している。より具体的には、図6には、撮像入力部221と低優先処理ブロックとのそれぞれがDRAM30へのアクセス要求を行う際に出力する「アクセス要求信号」と、バンクを指定する「アドレス」とのそれぞれのタイミングの一例を示している。なお、アクセス要求信号は、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、“High”レベルでDRAM30へのアクセスを要求することを表し、“Low”レベルでDRAM30へのアクセスを要求しないことを表している。また、図6には、撮像入力部221と低優先処理ブロックとのそれぞれから出力されたアクセス要求を受け付けたバンクを「アクセス受け付け」として示している。なお、撮像入力部221では、上述したように、撮像入力部221に備えたアクセス選択部2212が、メモリ制御部260から出力されているバンクビジー状態信号に基づいて、指定するバンクの順番を変更する。このため、図6でも、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、撮像入力部221が出力するアドレスとして、アクセス選択部2212が順番を変更する前のアドレスを「アドレス(変更前)」として示し、アクセス選択部2212が順番を変更した後のアドレスを「アドレス(変更後)」として示している。また、図6には、メモリ制御部260が出力するDRAM30のそれぞれのバンクに対応する「バンクビジー状態信号」を併せて示している。なお、バンクビジー状態信号は、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、“High”レベルでバンクビジー状態であることを表し、“Low”レベルでバンクビジー状態ではないことを表している。
図6に示したタイミングチャートも、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートと同様に、DRAM30に16個のバンクが構成されており、撮像入力部221が、DRAM30に構成された8つのバンクを連続して指定するアクセス要求を行う場合のタイミングの一例である。なお、以下の説明においては、アクセス選択部2212に予め定められたDRAM30のバンクを指定する順番が、「アドレス(変更前)」に示したように、バンク−0→バンク−1→バンク−2→・・・→バンク−6→バンク−7の順番であるものとして説明する。また、以下の説明においても、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、メモリ制御部260が、それぞれのバンクに対応するバンクビジー状態信号を逐次出力しているものとして説明する。
図6に示したタイミングチャートの一例でも、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、メモリ制御部260が、低優先処理ブロックから出力されたアクセス要求信号に応じて、低優先処理ブロックから指定されたバンクに対するアクセス要求を受け付けて、DRAM30へのデータの受け渡しの制御(DMA転送)を行っている。図6に示したタイミングチャートの一例でも、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、低優先処理ブロックから指定されたバンク−3、バンク−1、およびバンク−0に対応するそれぞれのバンクビジー状態信号が順次“High”レベルになっている。そして、メモリ制御部260は、一定時間が経過してそれぞれのバンクにおけるバンクビジー状態が解消されると、それぞれのバンクビジー状態信号を“Low”レベルにする。
その後、図6に示したタイミングチャートの一例でも、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、撮像入力部221が、タイミングt1から、8つのバンクを連続して指定するアクセス要求を行う。このとき、撮像入力部221は、DRAM30へのアクセス要求を出力するそれぞれのタイミングの前に、アクセス選択部2212が、メモリ制御部260から出力されているそれぞれのバンクに対応するバンクビジー状態信号に基づいて、指定するバンクを決定する。図6に示したタイミングチャートの一例では、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、タイミングt1の直前にメモリ制御部260から出力されているバンクビジー状態信号が、バンク−0、バンク−1、およびバンク−3がバンクビジー状態であることを表している。このため、アクセス選択部2212は、最初に指定する予定のバンク−0および次に指定する予定のバンク−1がバンクビジー状態になっているバンクであると判定し、その次に指定する予定のバンク−2を、タイミングt1においてアクセス要求するバンクに決定する。つまり、アクセス選択部2212は、バンクビジー状態になっているバンク−0およびバンク−1に対するアクセスを回避するように、バンク−2を指定するバンクに決定する。
そして、撮像入力部221(アクセス選択部2212)は、タイミングt1において、決定したバンク−2を指定するアクセス要求信号を、メモリ制御部260に出力する。これにより、メモリ制御部260は、撮像入力部221から出力されたバンク−2に対するアクセス要求信号に応じて、バンクビジー状態になっていないバンク−2に対するアクセス要求を受け付けて、DRAM30へのデータの受け渡しの制御(DMA転送)を行う。このとき、メモリ制御部260は、撮像入力部221から出力されたバンク−2に対するアクセス要求を受け付けると、タイミングt2において、アクセス要求を受け付けたことによってバンクビジー状態となったバンク−2に対応するバンクビジー状態信号−2を、“High”レベルにする。なお、バンク−2は、一定時間が経過した後にバンクビジー状態が解消されるため、メモリ制御部260は、バンクビジー状態が解消されたときに、バンク−2に対応するバンクビジー状態信号−2を“Low”レベルにする。
その後、アクセス選択部2212は、次のバンクのアクセス要求を出力するタイミングt3の前に、メモリ制御部260から出力されているそれぞれのバンクに対応するバンクビジー状態信号に基づいて、指定するバンクを決定する。図6に示したタイミングチャートの一例では、タイミングt3の直前にメモリ制御部260から出力されているバンクビジー状態信号が、バンク−0、バンク−1、およびバンク−2がバンクビジー状態であることを表している。このため、アクセス選択部2212は、最初に指定する予定のバンク−0および次に指定する予定のバンク−1がバンクビジー状態になっているバンクであると判定し、その次に指定する予定のバンク−3を、タイミングt3においてアクセス要求するバンクに決定する。つまり、アクセス選択部2212は、バンクビジー状態になっているバンク−0およびバンク−1に対するアクセスを回避するように、バンク−3を指定するバンクに決定する。なお、バンク−2は、すでにアクセス要求を行っているバンクであるため、タイミングt3における判定の対象から除外されている。
そして、アクセス選択部2212は、タイミングt3において、決定したバンク−3を指定するアクセス要求信号を、メモリ制御部260に出力する。これにより、メモリ制御部260は、撮像入力部221から出力されたバンク−3に対するアクセス要求信号に応じて、バンクビジー状態になっていないバンク−3に対するアクセス要求を受け付けて、DRAM30へのデータの受け渡しの制御(DMA転送)を行う。このとき、メモリ制御部260は、タイミングt4において、撮像入力部221から出力されたアクセス要求を受け付けたことによってバンクビジー状態となったバンク−3に対応するバンクビジー状態信号−3を、“High”レベルにする。なお、バンク−3も、一定時間が経過した後にバンクビジー状態が解消されるため、メモリ制御部260は、バンクビジー状態が解消されたときに、バンク−3に対応するバンクビジー状態信号−3を“Low”レベルにする。
以降、同様に、アクセス選択部2212は、次のバンクのアクセス要求を出力するそれぞれのタイミングの前に、それぞれのバンクに対応するバンクビジー状態信号に基づいて指定するバンクを決定する。なお、上述したように、アクセス選択部2212は、いずれかのタイミングにおいてすでにアクセス要求を行っているバンクは、判定する対象から順次除外して、指定するバンクを決定する。より具体的には、図6に示したタイミングチャートの一例では、タイミングt5の直前のバンクビジー状態信号が、バンク−0、バンク−2、およびバンク−3がバンクビジー状態であることを表しているため、アクセス選択部2212は、最初に指定する予定のバンク−0がバンクビジー状態になっているバンクであると判定し、その次に指定する予定のバンク−1を、タイミングt5においてアクセス要求するバンクに決定する。また、タイミングt6の直前のバンクビジー状態信号が、バンク−1、バンク−2、およびバンク−3がバンクビジー状態であることを表しているため、アクセス選択部2212は、最初に指定する予定のバンク−0を、タイミングt6においてアクセス要求するバンクに決定する。また、タイミングt7の直前のバンクビジー状態信号が、バンク−0、バンク−1、およびバンク−3がバンクビジー状態であることを表しているため、アクセス選択部2212は、最初に指定する予定のバンク−4を、タイミングt7においてアクセス要求するバンクに決定する。また、タイミングt8の直前のバンクビジー状態信号が、バンク−0、バンク−1、およびバンク−4がバンクビジー状態であることを表しているため、アクセス選択部2212は、最初に指定する予定のバンク−5を、タイミングt8においてアクセス要求するバンクに決定する。また、タイミングt9の直前のバンクビジー状態信号が、バンク−0、バンク−4、およびバンク−5がバンクビジー状態であることを表しているため、アクセス選択部2212は、最初に指定する予定のバンク−6を、タイミングt9においてアクセス要求するバンクに決定する。また、タイミングt10の直前のバンクビジー状態信号が、バンク−4、バンク−5、およびバンク−6がバンクビジー状態であることを表しているため、アクセス選択部2212は、最初に指定する予定のバンク−7を、タイミングt10においてアクセス要求するバンクに決定する。
このように、図6に示したタイミングチャートの一例では、アクセス選択部2212によって、それぞれのバンクが、バンク−2→バンク−3→バンク−0→バンク−1→バンク−4→バンク−5→バンク−6→バンク−7の順番に、アクセス要求するバンクに決定される。そして、同様に、アクセス選択部2212は、決定したバンクを指定するアクセス要求信号を、メモリ制御部260に順次出力する。これにより、メモリ制御部260は、撮像入力部221から出力されたバンクに対するアクセス要求信号に応じて、バンクビジー状態になっていないバンクに対するアクセス要求を順次受け付けて、DRAM30へのデータの受け渡しの制御(DMA転送)を順次行う。
なお、アクセス選択部2212が、それぞれのバンクを指定する順番を、図6に示したタイミングチャートの一例のようにすることによって、例えば、バンク−4〜バンク−7のように、アクセス選択部2212に予め定められたDRAM30のバンクを指定する順番から大きく変わらない順番で、バンクビジー状態であるバンクへのアクセスを回避することができる。しかし、アクセス選択部2212がそれぞれのバンクを指定する順番は、図6に示したタイミングチャートの一例において示した順番に限定されるものではない。つまり、メモリアクセス装置201においても、第1の実施形態のメモリアクセス装置200と同様に、バンクビジー状態であるバンクへのアクセスを回避すると共に、バンク−0〜バンク−7を網羅している順番であれば、アクセス選択部2212がそれぞれのバンクを指定する順番は、どのような順番であってもよい。
このような構成および動作によって、本発明の第2の実施形態のメモリアクセス装置201では、DRAM30に備えたそれぞれのバンクに対するアクセス要求ごとにバンクビジー状態になっているバンクを判定し、バンクビジー状態になっているバンクに対するアクセスを回避したデータの受け渡し制御(DMA転送)を行う。これにより、本発明の第2の実施形態のメモリアクセス装置201でも、第1の実施形態のメモリアクセス装置200と同様に、撮像入力部221によるDRAM30に対するアクセスの効率を高め、撮像入力部221が入力画像データをDRAM30に記憶させる(書き込ませる)ためのバス帯域を確保することができる。また、本発明の第2の実施形態のメモリアクセス装置201でも、第1の実施形態のメモリアクセス装置200と同様に、連続した一連のアクセス要求によるデータの転送(DRAM30に構成された8つのバンクを連続して指定するDMA転送)が終了するまでの期間も短縮することができる。
本第2の実施形態によれば、アクセス選択部(アクセス選択部2212)は、高優先処理ブロック(例えば、撮像入力部221)が連続してアクセスするそれぞれのバンクへのアクセスごとに、動作情報(バンクビジー状態信号)に基づいて指定するバンクの順番を変更する、メモリアクセス装置(メモリアクセス装置201)が構成される。
上述したように、本発明の第2の実施形態のメモリアクセス装置201では、メモリ制御部260が、接続されているDRAM30のそれぞれのバンクがバンクビジー状態であるか否かを表すバンクビジー状態信号(DRAM30の動作情報)を出力する。そして、本発明の第2の実施形態のメモリアクセス装置201では、撮像入力部221(高優先処理ブロック)が、それぞれのアクセス要求ごとに、直前のバンクビジー状態信号に基づいて、バンクビジー状態になっているバンクを指定しない(バンクビジー状態になっているバンクに対するアクセスを回避する)ように、指定するバンクの順番を決定する。これにより、本発明の第2の実施形態のメモリアクセス装置201でも、第1の実施形態のメモリアクセス装置200と同様に、撮像入力部221(高優先処理ブロック)によるDRAM30に対するアクセスの効率を高め、撮像入力部221(高優先処理ブロック)がDRAM30に対してアクセスする(入力画像データをDRAM30に記憶させる(書き込ませる))ためのバス帯域を確保することができる。
なお、上述した説明では、第1の実施形態のメモリアクセス装置200と同様に、本発明の第2の実施形態のメモリアクセス装置201が、撮像入力部221(高優先処理ブロック)とメモリ制御部260との組み合わせによって構成される場合の一例について説明した。しかし、本発明の第2の実施形態のメモリアクセス装置においても、第1の実施形態のメモリアクセス装置と同様に、高優先処理ブロックは、撮像装置1の動作モードによって異なる。このため、本発明の第2の実施形態のメモリアクセス装置においても、第1の実施形態のメモリアクセス装置と同様に、メモリアクセス装置を構成する高優先処理ブロックとメモリ制御部260との組み合わせは、撮像入力部221とメモリ制御部260との組み合わせに限定されるものではない。そして、本発明の第2の実施形態のメモリアクセス装置においても、第1の実施形態のメモリアクセス装置と同様に、メモリアクセス装置が、撮像入力部221とは異なる高優先処理ブロックとメモリ制御部260との組み合わせであっても、その動作は、上述した撮像入力部221とメモリ制御部260との組み合わせにおける動作から容易に考えることができる。従って、本発明の第2の実施形態のメモリアクセス装置においても、メモリアクセス装置が撮像入力部221とは異なる高優先処理ブロックとメモリ制御部260との組み合わせである場合における構成や動作に関する詳細な説明は省略する。
なお、本発明の第1の実施形態および第2の実施形態では、メモリアクセス装置を構成する高優先処理ブロックである撮像入力部(撮像入力部220または撮像入力部221)が、メモリ制御部260から出力されたバンクビジー状態信号に基づいて、入力画像データを記憶させるためにDRAM30のバンクを指定する順番を変更する構成を示した。しかし、DRAM30のバンクを指定する順番を変更する構成は、第1の実施形態および第2の実施形態において説明したように、メモリアクセス装置を構成する高優先処理ブロックが行う構成に限定されるもではない。例えば、高優先処理ブロックの外部に、DRAM30のバンクを指定する順番を変更する構成要素を備える構成であってもよい。つまり、メモリアクセス装置を構成する高優先処理ブロックの内部で、DRAM30のバンクを指定する順番を変更する構成でなくてもよい。
(第3の実施形態)
次に、本発明の第3の実施形態のメモリアクセス装置について説明する。本発明の第3の実施形態のメモリアクセス装置は、メモリアクセス装置を構成する高優先処理ブロックの外部の構成要素によって、DRAM30のバンクを指定する順番を変更する構成である。なお、以下の説明においては、本発明の第3の実施形態のメモリアクセス装置が、例えば、静止画用カメラや動画用カメラなどの撮像装置に搭載されている画像処理装置に備えられている場合について説明する。
図7は、本発明の第3の実施形態におけるメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の概略構成を示したブロック図である。本発明の第3の実施形態のメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の構成は、図1に示した第1の実施形態および第2の実施形態のメモリアクセス装置を備えた画像処理装置20を搭載した撮像装置1と同様の構成要素を含んでいる。従って、本発明の第3の実施形態のメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の構成要素において、第1の実施形態および第2の実施形態のメモリアクセス装置を備えた画像処理装置20を搭載した撮像装置1の構成要素と同様の構成要素には、同一の符号を付与し、それぞれの構成要素に関する詳細な説明は省略する。
図7に示した撮像装置2は、イメージセンサ10と、画像処理装置50と、DRAM30と、表示装置40と、を備えている。また、画像処理装置50は、撮像入力部520と、中間バッファ部521と、画像処理部230と、JPEG処理部240と、表示処理部250と、メモリ制御部560と、を備えている。画像処理装置50では、中間バッファ部521と、画像処理部230と、JPEG処理部240と、表示処理部250と、メモリ制御部560とのそれぞれが、共通のデータバス210に接続されている。また、メモリ制御部560は、アービトレーション部5601と、メモリアクセス部5602と、を備えている。
撮像装置2も、第1の実施形態および第2の実施形態のメモリアクセス装置を備えた画像処理装置20を搭載した撮像装置1と同様に、イメージセンサ10によって被写体の静止画像または動画像を撮影する。そして、撮像装置2も、撮像装置1と同様に、撮影した静止画像に応じた表示画像を表示装置40に表示させる。また、撮像装置2も、撮像装置1と同様に、撮影した動画像に応じた表示画像を表示装置40に表示させる。なお、撮像装置2も、撮像装置1と同様に、撮影した静止画像や動画像に応じた記録画像を、不図示の記録媒体に記録させることもできる。
画像処理装置50は、図1に示した第1の実施形態および第2の実施形態のメモリアクセス装置を備えた画像処理装置20と同様に、イメージセンサ10から出力された画素信号に基づいた静止画像や動画像の生成、生成した静止画像や動画像に応じた表示画像の生成と表示装置40への表示、生成した静止画像や動画像に応じた記録画像の生成と不図示の記録媒体への記録を行う。
画像処理装置50では、撮像入力部520と、画像処理部230と、JPEG処理部240と、表示処理部250とのそれぞれが、画像処理装置50において実行する画像処理の処理機能を実現する処理ブロックである。画像処理装置50では、撮像入力部520、画像処理部230、JPEG処理部240、および表示処理部250のそれぞれが、DMA転送によってDRAM30にアクセスする。画像処理装置50では、処理ブロックと、この処理ブロックに対応するデータ転送ブロックと、メモリ制御部560との組み合わせによって、本発明の第3の実施形態のメモリアクセス装置を構成している。なお、画像処理装置50でも、第1の実施形態および第2の実施形態のメモリアクセス装置を備えた画像処理装置20と同様に、それぞれの処理ブロックに、画像処理を実行するときにDRAM30にアクセスする(DMA転送を行う)際の優先度が設定されている。このため、画像処理装置50でも、第1の実施形態および第2の実施形態のメモリアクセス装置を備えた画像処理装置20と同様に、それぞれの処理ブロックと、それぞれの処理ブロックに対応するデータ転送ブロックと、メモリ制御部560との組み合わせの全てが、本発明の第3の実施形態のメモリアクセス装置でなくてもよい。つまり、画像処理装置50でも、第1の実施形態および第2の実施形態のメモリアクセス装置を備えた画像処理装置20と同様に、高優先処理ブロックと、この高優先処理ブロックに対応するデータ転送ブロックと、メモリ制御部560との組み合わせによって、メモリアクセス装置を構成している。
ここで、データ転送ブロックは、対応する高優先処理ブロックとメモリ制御部560との間で、データバス210を介したDMA転送によるデータの受け渡しを行うブロックである。データ転送ブロックは、DMA転送によってDRAM30との間でデータの受け渡しを行う際に、データバス210を介してメモリ制御部560との間で受け渡しを行うデータ(以下、「転送データ」という)を一時的に保存(バッファリング)する。また、データ転送ブロックは、DMA転送によってDRAM30との間で転送データの受け渡しを行う際に、メモリ制御部560から出力されたバンクビジー状態信号に基づいて、DRAM30のバンクを指定する順番を変更する。
なお、以下の説明においては、説明を容易にするため、第1の実施形態および第2の実施形態のメモリアクセス装置を備えた画像処理装置20と同様に、撮像入力部520を高優先処理ブロックとする。そして、以下の説明においては、高優先処理ブロックである撮像入力部520と、この撮像入力部520に対応するデータ転送ブロックと、メモリ制御部560との組み合わせのみが、本発明の第3の実施形態のメモリアクセス装置(以下、「メモリアクセス装置500」という)であるものとして説明する。
メモリ制御部560は、第1の実施形態および第2の実施形態のメモリアクセス装置を構成するメモリ制御部260と同様に、データバス210に接続されている画像処理装置50内のそれぞれの処理ブロックからのDMA転送によるDRAM30へのアクセス要求(DMA要求)を調停して、いずれかの処理ブロックからのDRAM30へのアクセス要求を受け付ける。アービトレーション部5601は、第1の実施形態および第2の実施形態のメモリアクセス装置を構成するメモリ制御部260に備えたアービトレーション部2601と同様の調停回路(DMA調停回路、いわゆる、アービター)である。また、メモリ制御部560は、第1の実施形態および第2の実施形態のメモリアクセス装置を構成するメモリ制御部260と同様に、アクセス要求を受け付けた処理ブロックとDRAM30との間でのデータバス210を介したデータの受け渡しを制御する。メモリアクセス部5602は、第1の実施形態および第2の実施形態のメモリアクセス装置を構成するメモリ制御部260に備えたメモリアクセス部2602と同様のDRAMコントローラーである。
また、メモリ制御部560は、第1の実施形態および第2の実施形態のメモリアクセス装置を構成するメモリ制御部260と同様に、アクセス要求を受け付けた処理ブロックからの要求に応じたDRAM30の制御に基づいて、接続されているDRAM30の動作情報を通知する機能を備えている。つまり、メモリ制御部560も、第1の実施形態および第2の実施形態のメモリアクセス装置を構成するメモリ制御部260と同様に、バンクビジー状態信号を出力する。ただし、画像処理装置50においてメモリ制御部560は、バンクビジー状態信号を、共にメモリアクセス装置500を構成するデータ転送ブロックに出力する。
なお、メモリ制御部560でも、第1の実施形態および第2の実施形態のメモリアクセス装置を構成するメモリ制御部260と同様に、バンクビジー状態信号は、アービトレーション部5601や、メモリアクセス部5602、不図示の構成要素など、いずれの構成要素が出力してもよい。図7に示した撮像装置2では、メモリ制御部560に備えたメモリアクセス部5602が、バンクビジー状態信号をデータ転送ブロック(中間バッファ部521)に出力する構成を示している。なお、メモリ制御部560において、バンクビジー状態信号をアービトレーション部5601が出力する場合、その構成は、第1の実施形態および第2の実施形態のメモリアクセス装置を構成するメモリ制御部260と同様の構成となる。つまり、画像処理装置50は、メモリ制御部560の代わりにメモリ制御部260を備えた構成であってもよい。
なお、メモリ制御部560でも、第1の実施形態および第2の実施形態のメモリアクセス装置を構成するメモリ制御部260と同様に、中間バッファ部521に通知するDRAM30の動作情報として、DRAM30の動作状態を表す他の動作情報が含まれていてもよい。
中間バッファ部521は、撮像入力部520に対応するデータ転送ブロックである。従って、画像処理装置50では、撮像入力部520と、中間バッファ部521と、メモリ制御部560との組み合わせによって、本発明の第3の実施形態のメモリアクセス装置500を構成している。
中間バッファ部521は、撮像入力部520から出力された転送データである入力画像データを一時的に保存する。そして、中間バッファ部521は、保存した入力画像データをDRAM30に出力して記憶させる(書き込む)際に、まず、DRAM30へのアクセス要求信号(DMA要求信号)と、入力画像データを記憶させるDRAM30の記憶領域(バンクを含む)を指定するアドレス(DMAアドレス)と、DRAM30に対する書き込みのアクセス方向であることを表すアクセス方向信号(DMAライト信号)とを、メモリ制御部560に出力する。このとき、中間バッファ部521は、メモリ制御部560から出力されたバンクビジー状態信号に基づいて、入力画像データを記憶させるためにDRAM30のバンクを指定する順番を変更する。
中間バッファ部521においてDRAM30のバンクを指定する順番を変更する方法は、第1の実施形態および第2の実施形態のメモリアクセス装置を構成する撮像入力部220における方法と同様である。つまり、中間バッファ部521でも、DRAM30のバンクを予め定めた順番で指定するのではなく、バンクビジー状態信号によってバンクビジー状態になっていることが表されているDRAM30のバンクへのアクセスを回避するように、アクセス要求信号と共にメモリ制御部560に出力するアドレスによって指定するバンクの順番を変更する。これにより、中間バッファ部521は、撮像入力部520から出力された入力画像データをDRAM30に記憶させる(書き込ませる)ためのバス帯域を確保する。
中間バッファ部521は、第1の実施形態および第2の実施形態のメモリアクセス装置におけるDRAM30のバンクを指定する順番を変更する機能を、高優先処理ブロックの外部で実現する。このため、中間バッファ部521の構成は、第1の実施形態および第2の実施形態のメモリアクセス装置においてDRAM30のバンクを指定する順番を変更する機能を実現するための構成要素として撮像入力部220に備えられた、バッファ部2201とアクセス選択部2202とによって構成される。つまり、中間バッファ部521は、図2に示した構成と同様の構成である。これに伴い、メモリアクセス装置500を構成する撮像入力部520からは、バッファ部2201とアクセス選択部2202とが削除され、撮像入力部520は、中間バッファ部521を介して、DMA転送によるDRAM30へのアクセスを行う。このため、メモリアクセス装置500の全体の構成は、第1の実施形態および第2の実施形態のメモリアクセス装置と同様である。また、中間バッファ部521の動作や、メモリアクセス装置500の全体の動作は、図3〜図6を用いて説明した第1の実施形態および第2の実施形態のメモリアクセス装置と同様に考えることができる。従って、中間バッファ部521の構成や動作、メモリアクセス装置500の全体の構成や動作に関する詳細な説明は省略する。
なお、本発明においては、本発明の第3の実施形態のメモリアクセス装置500を構成する撮像入力部520と中間バッファ部521との間での入力画像データの受け渡し方法に関しては、特に制限はしない。例えば、撮像入力部520は、入力画像データをDMA転送によってDRAM30に記憶させる(書き込む)ときと同様の方法によって、つまり、DMA転送によって、入力画像データを中間バッファ部521に受け渡してもよい。この場合、撮像入力部520は、DRAM30に備えたそれぞれのバンクのバンクビジー状態に関わらずに、入力画像データを中間バッファ部521に出力することができる。
このように、画像処理装置50では、画像処理装置50に備えたそれぞれの処理ブロックの内、優先度の高い高優先処理ブロックと、この高優先処理ブロックに対応したデータ転送ブロックと、メモリ制御部560とが組み合わされて、本発明の第3の実施形態のメモリアクセス装置500を構成する。
なお、上述したように、第3の実施形態では、高優先処理ブロックである撮像入力部520と、撮像入力部520に対応するデータ転送ブロックである中間バッファ部521と、メモリ制御部560との組み合わせのみが、本発明の第3の実施形態のメモリアクセス装置(メモリアクセス装置500)であるものとしている。しかし、撮像装置2でも、第1の実施形態および第2の実施形態のメモリアクセス装置を備えた画像処理装置20を搭載した撮像装置1と同様に、撮像装置2の動作モードによって、高優先処理ブロックとなる処理ブロックが異なる。つまり、撮像装置2でも、それぞれの動作モードごとに、本発明の第3の実施形態のメモリアクセス装置を構成するためにメモリ制御部560と組み合わされる処理ブロックおよびデータ転送ブロックが異なる。しかし、上述したように、本発明の第3の実施形態のメモリアクセス装置では、第1の実施形態および第2の実施形態のメモリアクセス装置と異なり、DRAM30のバンクを指定する順番を変更する機能を実現する構成要素であるデータ転送ブロックが、高優先処理ブロックの外部に設けられている。このため、第3の実施形態では、データ転送ブロックを、複数の処理ブロックで共有する構成にしてもよい。
より具体的には、第1の実施形態および第2の実施形態のメモリアクセス装置を備えた画像処理装置20では、同時ではないにしても、撮像装置1の動作モードによって、画像処理装置20に備えた全ての処理ブロックに高優先処理ブロックとなる可能性がある場合には、全ての処理ブロックにDRAM30のバンクを指定する順番を変更する機能を搭載して、高優先処理ブロックになったときに機能を実行することが考えられる。つまり、撮像装置1のある動作モードでは、低優先処理ブロックとして動作する処理ブロックにも、撮像装置1の他の動作モードで高優先処理ブロックとなることを考慮して、DRAM30のバンクを指定する順番を変更する機能を搭載しておくことが考えられる。
これに対して、本発明の第3の実施形態のメモリアクセス装置を備えた画像処理装置50では、撮像装置2の動作モードを考慮して、最も多くの処理ブロックが同時に高優先処理ブロックとなる数分だけデータ転送ブロックを備えておくことによって、同時に高優先処理ブロックとならない処理ブロック同士で、同じデータ転送ブロックを共有させる構成にすることができる。つまり、本発明の第3の実施形態のメモリアクセス装置を備えた画像処理装置50では、全ての処理ブロックのそれぞれに対応するデータ転送ブロックを搭載しなくてもよいと考えられる。この場合、本発明の第3の実施形態のメモリアクセス装置を備えた画像処理装置50では、データ転送ブロックを搭載するために要する画像処理装置50を、第1の実施形態および第2の実施形態のメモリアクセス装置を備えた画像処理装置20よりも削減することができる。
本第3の実施形態によれば、バッファ部(バッファ部2201)およびアクセス選択部(アクセス選択部2202)は、高優先処理ブロック(例えば、撮像入力部520)の外部に中間バッファ部521として構成される、メモリアクセス装置(メモリアクセス装置500)が構成される。
上述したように、本発明の第3の実施形態のメモリアクセス装置500は、撮像入力部520(高優先処理ブロック)と、撮像入力部520に対応する中間バッファ部521(データ転送ブロック)と、メモリ制御部560との組み合わせによって構成される。そして、本発明の第3の実施形態のメモリアクセス装置500は、第1の実施形態および第2の実施形態のメモリアクセス装置と同様に動作する。より具体的には、本発明の第3の実施形態のメモリアクセス装置500では、メモリ制御部560が、接続されているDRAM30のそれぞれのバンクがバンクビジー状態であるか否かを表すバンクビジー状態信号(DRAM30の動作情報)を出力する。そして、本発明の第3の実施形態のメモリアクセス装置500では、中間バッファ部521が、メモリ制御部560から出力されたバンクビジー状態信号に基づいて、撮像入力部520入力画像データをDRAM30に転送する際に、バンクビジー状態になっているバンクを指定しない(バンクビジー状態になっているバンクに対するアクセスを回避する)ように、それぞれのバンクを指定する順番を変更する。これにより、本発明の第3の実施形態のメモリアクセス装置500でも、第1の実施形態および第2の実施形態のメモリアクセス装置と同様に、撮像入力部520(高優先処理ブロック)によるDRAM30に対するアクセスの効率を高め、撮像入力部520(高優先処理ブロック)がDRAM30に対してアクセスする(入力画像データをDRAM30に記憶させる(書き込ませる))ためのバス帯域を確保することができる。
なお、上述した説明では、本発明の第3の実施形態のメモリアクセス装置500が、撮像入力部520(高優先処理ブロック)と、撮像入力部520に対応する中間バッファ部521(データ転送ブロック)と、メモリ制御部560との組み合わせによって構成される場合の一例について説明したが、上述したように、高優先処理ブロックは、撮像装置2の動作モードによって異なる。このため、本発明の第3の実施形態のメモリアクセス装置を構成する高優先処理ブロックと、データ転送ブロックと、メモリ制御部560との組み合わせは、撮像入力部520と、中間バッファ部521と、メモリ制御部560との組み合わせに限定されるものではない。そして、本発明の第3の実施形態のメモリアクセス装置が、撮像入力部520とは異なる高優先処理ブロックと、データ転送ブロックと、メモリ制御部560との組み合わせであっても、その動作は、第1の実施形態および第2の実施形態のメモリアクセス装置と同様の動作から容易に考えることができる。
なお、本発明の第1〜第3の実施形態では、DRAM30の動作情報が、DRAM30のそれぞれのバンクがバンクビジー状態であるか否かを表すバンクビジー状態信号であり、第1〜第3の実施形態のメモリアクセス装置では、バンクビジー状態信号に基づいて、DRAM30のバンクを指定する順番を変更する構成を示した。しかし、DRAM30の動作情報は、上述したように、バンクビジー状態信号に限定されるものではなく、DRAM30の動作状態を表す他の動作情報であってもよい。このDRAM30の他の動作情報は、例えば、DRAM30のバンクビジー状態が解消されるまでに要する時間を表す情報であってもよい。
(第4の実施形態)
次に、本発明の第4の実施形態のメモリアクセス装置について説明する。本発明の第4の実施形態のメモリアクセス装置は、メモリアクセス装置を構成する高優先処理ブロックが、バンクビジー状態が解消されるまでに要する時間を表す動作状態に基づいて、それぞれのアクセス要求において指定するバンクの順番を決定する構成である。なお、以下の説明においては、本発明の第4の実施形態のメモリアクセス装置が、例えば、静止画用カメラや動画用カメラなどの撮像装置に搭載されている画像処理装置に備えられている場合について説明する。なお、本発明の第4の実施形態のメモリアクセス装置の考え方、つまり、バンクビジー状態が解消されるまでに要する時間を表す動作状態に基づいてそれぞれのアクセス要求において指定するバンクの順番を決定する際の考え方は、第1〜第3の実施形態のメモリアクセス装置のいずれにも適用することができる。以下の説明においては、本発明の第4の実施形態のメモリアクセス装置の考え方を、第1の実施形態のメモリアクセス装置200の構成に適用した場合について説明する。
図8は、本発明の第4の実施形態におけるメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の概略構成を示したブロック図である。本発明の第4の実施形態のメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の構成は、図1に示した第1の実施形態のメモリアクセス装置200を備えた画像処理装置20を搭載した撮像装置1と同様の構成要素を含んでいる。従って、本発明の第4の実施形態のメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の構成要素において、第1の実施形態のメモリアクセス装置200を備えた画像処理装置20を搭載した撮像装置1の構成要素と同様の構成要素には、同一の符号を付与し、それぞれの構成要素に関する詳細な説明は省略する。
図8に示した撮像装置3は、イメージセンサ10と、画像処理装置60と、DRAM30と、表示装置40と、を備えている。また、画像処理装置60は、撮像入力部620と、画像処理部230と、JPEG処理部240と、表示処理部250と、メモリ制御部660と、を備えている。画像処理装置60では、撮像入力部620と、画像処理部230と、JPEG処理部240と、表示処理部250と、メモリ制御部660とのそれぞれが、共通のデータバス210に接続されている。また、メモリ制御部660は、アービトレーション部6601と、メモリアクセス部2602と、を備えている。
撮像装置3も、第1の実施形態のメモリアクセス装置200を備えた画像処理装置20を搭載した撮像装置1と同様に、イメージセンサ10によって被写体の静止画像または動画像を撮影する。そして、撮像装置3も、撮像装置1と同様に、撮影した静止画像や動画像に応じた表示画像を表示装置40に表示させる。なお、撮像装置3も、撮像装置1と同様に、撮影した静止画像や動画像に応じた記録画像を、不図示の記録媒体に記録させることもできる。
画像処理装置60は、図1に示した第1の実施形態のメモリアクセス装置200を備えた画像処理装置20と同様に、イメージセンサ10から出力された画素信号に基づいた静止画像や動画像の生成、生成した静止画像や動画像に応じた表示画像の生成と表示装置40への表示、生成した静止画像や動画像に応じた記録画像の生成と不図示の記録媒体への記録を行う。
画像処理装置60では、撮像入力部620と、画像処理部230と、JPEG処理部240と、表示処理部250とのそれぞれが、画像処理装置60において実行する画像処理の処理機能を実現する処理ブロックである。画像処理装置60では、撮像入力部620、画像処理部230、JPEG処理部240、および表示処理部250のそれぞれが、データバス210を介したDMA転送によってDRAM30にアクセスする。画像処理装置60では、処理ブロックとメモリ制御部660との組み合わせによって、メモリアクセス装置を構成している。なお、画像処理装置60でも、第1の実施形態のメモリアクセス装置200を備えた20と同様に、それぞれの処理ブロックに、画像処理を実行するときにDRAM30にアクセスする(DMA転送を行う)際の優先度が設定されている。このため、画像処理装置60でも、第1の実施形態のメモリアクセス装置200を備えた画像処理装置20と同様に、それぞれの処理ブロックとメモリ制御部660との組み合わせの全てが、本発明の第4の実施形態のメモリアクセス装置でなくてもよい。つまり、画像処理装置60でも、第1の実施形態のメモリアクセス装置200を備えた画像処理装置20と同様に、高優先処理ブロックとメモリ制御部660との組み合わせによって、メモリアクセス装置を構成している。
なお、以下の説明においては、説明を容易にするため、第1の実施形態のメモリアクセス装置200を備えた画像処理装置20と同様に、撮像入力部620を高優先処理ブロックとし、撮像入力部620とメモリ制御部660との組み合わせのみが、本発明の第4の実施形態のメモリアクセス装置(以下、「メモリアクセス装置600」という)であるものとして説明する。
メモリ制御部660は、第1の実施形態のメモリアクセス装置200を構成するメモリ制御部260と同様に、データバス210に接続されている画像処理装置60内のそれぞれの処理ブロックからのDMA転送によるDRAM30へのアクセス要求(DMA要求)を調停して、いずれかの処理ブロックからのDRAM30へのアクセス要求を受け付ける。また、メモリ制御部660は、第1の実施形態のメモリアクセス装置200を構成するメモリ制御部260と同様に、アクセス要求を受け付けた処理ブロックとDRAM30との間でのデータバス210を介したデータの受け渡しを制御する。また、メモリ制御部660は、第1の実施形態のメモリアクセス装置200を構成するメモリ制御部260と同様に、アクセス要求を受け付けた処理ブロックからの要求に応じたDRAM30の制御に基づいて、接続されているDRAM30の動作情報を通知する機能を備えている。
ただし、メモリ制御部660は、第1の実施形態のメモリアクセス装置200を構成するメモリ制御部260と異なり、接続されているDRAM30の動作情報として、DRAM30の記憶領域(バンク)をアクセスすることができない所定の時間(一定時間)が経過するまでに要する時間、つまり、バンクビジー状態が解消されるまでに要する時間を表す情報を通知する。このため、メモリ制御部660は、DRAM30に備えたそれぞれのバンクごとに、バンクビジー状態が解消されるまでに要する時間を表す動作状態を、共にメモリアクセス装置600を構成する処理ブロックである撮像入力部620に出力する。ここで、メモリ制御部660が通知するバンクビジー状態が解消されるまでに要する時間を表す動作状態とは、例えば、DRAM30のバンクビジー状態が解消されるまでに要するクロック数を表すカウント値など情報である。以下の説明においては、メモリ制御部660が、バンクビジー状態が解消されるまでに要するクロック数のカウント値の情報(以下、「バンクビジーカウント」という)を、DRAM30の動作情報として撮像入力部620に出力するものとして説明する。
アービトレーション部6601は、第1の実施形態のメモリアクセス装置200を構成するメモリ制御部260に備えたアービトレーション部2601と同様の調停回路(DMA調停回路、アービター)である。ただし、アービトレーション部6601は、第1の実施形態のメモリアクセス装置200を構成するメモリ制御部260に備えたアービトレーション部2601が出力するバンクビジー状態信号の代わりに、バンクビジーカウントを撮像入力部620に出力する。
なお、メモリ制御部660でも、第1の実施形態のメモリアクセス装置200を構成するメモリ制御部260と同様に、接続されているDRAM30の動作状態がわかる構成要素であれば、メモリ制御部660に備えたアービトレーション部6601や、メモリアクセス部2602、不図示の構成要素など、いずれの構成要素がバンクビジーカウントを出力してもよい。また、メモリ制御部660でも、第1の実施形態のメモリアクセス装置200を構成するメモリ制御部260と同様に、撮像入力部620に通知するDRAM30の動作情報として、DRAM30の他の動作情報が含まれていてもよい。
撮像入力部620は、第1の実施形態のメモリアクセス装置200を構成する撮像入力部220と同様に、イメージセンサ10から出力された入力画像データをDRAM30に記憶させる(書き込む)処理ブロックである。撮像入力部620は、本発明の第4の実施形態のメモリアクセス装置600を構成する処理ブロック(高優先処理ブロック)でもある。ただし、撮像入力部620は、入力画像データをDMA転送してDRAM30に記憶させる(書き込む)際に、メモリ制御部660から出力されたバンクビジーカウントに基づいて、入力画像データを記憶させるために指定するDRAM30のバンクの順番を変更するか否かを判定する。そして、撮像入力部620は、指定するDRAM30のバンクの順番を変更すると判定したときにのみ、指定するバンクの順番を変更する。このような動作によって、撮像入力部620では、入力画像データをDRAM30に記憶させる(書き込ませる)ためのバス帯域を確保する。
より具体的には、撮像入力部620は、メモリ制御部660から出力されたバンクビジーカウントのカウント値(バンクビジー状態が解消されるまでに要する時間)が、予め定めた閾値以上である場合には、バンクビジー状態になっているDRAM30のバンクへのアクセスを回避すると判定する。この場合、撮像入力部620は、第1の実施形態のメモリアクセス装置200を構成する撮像入力部220と同様に、指定するバンクの順番を変更する。一方、撮像入力部620は、メモリ制御部660から出力されたバンクビジーカウントのカウント値が予め定めた閾値よりも小さい場合には、バンクビジー状態になっているDRAM30のバンクへのアクセスを回避しない、つまり、バンクビジー状態になっているDRAM30のバンクにアクセスすると判定する。この場合、撮像入力部620は、予め定めた順番でバンクを指定する。ここで、撮像入力部620は、DRAM30のバンクを指定する順番を変更するか否かを判定するための予め定めた閾値は、DRAM30へのアクセスが待たされることが許容できる時間に基づいて定められたカウント値である。撮像入力部620は、アクセスするDRAMのバンクがバンクビジー状態であるものの、入力画像データをDRAM30に転送する際に待つことができる時間までにバンクビジー状態が解消されると判断できる場合には、指定するバンクを変更せずに、予定のバンクを指定する。例えば、予め定めた閾値は、DRAM30のアクセスする際の手続きに要する時間を表すカウント値である。この場合、撮像入力部620は、アクセスするDRAMのバンクが、入力画像データをDRAM30に実際に転送するタイミングまでにはバンクビジー状態が解消されると判断できるバンクである場合には、指定するバンクを変更せずに、アクセスする予定のバンクをそのまま指定する。
撮像入力部620の構成は、図2に示した第1の実施形態のメモリアクセス装置200を構成する撮像入力部220と同様の構成である。ただし、本発明の第4の実施形態のメモリアクセス装置600では、バンクビジーカウントに基づいてバンクを指定する順番を判定して決定するため、アクセス選択部の動作が、第1の実施形態のメモリアクセス装置200に備えたアクセス選択部2202の動作と異なる。以下の説明においては、メモリアクセス装置600に備えるアクセス選択部を「アクセス選択部6202」といい、第1の実施形態のメモリアクセス装置200に備えたアクセス選択部2202と区別する。
次に、本発明の第4の実施形態のメモリアクセス装置600の動作、つまり、アクセス選択部6202がバンクデータをDRAM30に転送する際に指定するバンクの順番を変更する処理について説明する。図9は、本発明の第4の実施形態におけるメモリアクセス装置600においてアクセスするバンクを変更する処理、つまり、指定するバンクの順番を変更するか否かを判定する処理の処理手順を示したフローチャートである。なお、以下の説明においては、DRAM30のそれぞれのバンクに対応するバンクビジーカウントが、メモリ制御部660から逐次出力されているものとして説明する。
バッファ部2201にイメージセンサ10から撮像入力部620に出力された入力画像データがバッファリングされると、バッファ部2201は、バッファリングした入力画像データのDRAM30に構成されたそれぞれのバンクへの転送を要求するバンクアクセス要求信号とバンクアドレスとを並列に、アクセス選択部6202に出力する。これにより、アクセス選択部6202は、メモリ制御部260から出力されているバンクビジーカウントに基づいて、バンクビジー状態になっているバンクがあるか否かを判定する(ステップS310)。
ステップS310において、バンクビジー状態になっているバンクがない、つまり、DRAM30に構成された全てのバンクがバンクビジー状態ではないと判定した場合(ステップS310の“NO”)、アクセス選択部6202は、ステップS340に進む。
一方、ステップS310において、バンクビジー状態になっているバンクがあると判定した場合(ステップS310の“YES”)、アクセス選択部6202は、メモリ制御部260から出力されているバンクビジーカウントが、予め定めた閾値以上であるバンクがあるか否かを確認する(ステップS320)。つまり、アクセス選択部6202は、ステップS320において、バンクビジー状態になっているバンクのバンクビジー状態が解消されるまでに要する時間が、予め定めた閾値の時間よりも長いバンクがあるか否かを確認する。
ステップS320において、バンクビジーカウントが予め定めた閾値以上であるバンクがないと判定した場合(ステップS320の“NO”)、アクセス選択部6202は、ステップS340に進む。つまり、アクセス選択部6202は、ステップS320において、DRAM30に構成されたバンクの中にバンクビジー状態であるバンクがあるものの、全てのバンクが、予め定めた閾値の時間よりも短い時間でバンクビジー状態が解消されると判断できる場合には、バンクビジー状態になっているDRAM30のバンクへのアクセスを回避せずに、このままのアクセスの処理を続けると判定し、ステップS340に進む。
一方、ステップS320において、バンクビジーカウントが予め定めた閾値以上であるバンクがあると判定した場合(ステップS320の“YES”)、アクセス選択部6202は、バンクを指定する順番を変更する(ステップS330)。より具体的には、アクセス選択部6202は、予め定めた順番で指定するバンクの内、実際にアクセスするタイミングまでにバンクビジー状態が解消されないバンクの順番を後ろに回して、バンクビジー状態ではないバンクや、実際にアクセスするタイミングまでにはバンクビジー状態が解消されるバンクから先に指定するように、バンクを指定する順番を変更する。
続いて、アクセス選択部6202は、DRAM30のバンクを指定する順番にアクセス要求をメモリ制御部260に出力し、バッファ部2201にバッファリングされた入力画像データを、DRAM30に順次転送する(ステップS340)。より具体的には、ステップS310においてバンクビジー状態になっているバンクがない、またはステップS320において実際にアクセスするタイミングまでにバンクビジー状態が解消されるバンクのみであると判定した場合、アクセス選択部6202は、DRAM30のバンクを指定する予め定めた順番にアクセス要求をメモリ制御部260に出力して、それぞれのバンクに対応するバンクデータ(入力画像データ)を、DRAM30に順次転送する。一方、ステップS310においてバンクビジー状態になっているバンクがあると判定し、ステップS320において実際にアクセスするタイミングまでにはバンクビジー状態が解消されないバンクがあると判定した場合、アクセス選択部6202は、ステップS330において変更した順番にアクセス要求をメモリ制御部260に出力して、それぞれのバンクに対応するバンクデータ(入力画像データ)を、DRAM30に順次転送する。
このような構成および動作によって、本発明の第4の実施形態のメモリアクセス装置600では、DRAM30に備えたバンクビジー状態になっているバンクが、実際にアクセスするタイミングまでにバンクビジー状態が解消されるバンクであるか否かを判定し、バンクビジー状態が解消されないバンクに対するアクセスを回避したデータの受け渡し制御(DMA転送)を行う。これにより、本発明の第4の実施形態のメモリアクセス装置600でも、第1の実施形態のメモリアクセス装置200と同様に、撮像入力部620によるDRAM30に対するアクセスの効率を高め、撮像入力部620が入力画像データをDRAM30に記憶させる(書き込ませる)ためのバス帯域を確保することができる。また、本発明の第4の実施形態のメモリアクセス装置600でも、第1の実施形態のメモリアクセス装置200と同様に、連続した一連のアクセス要求によるデータの転送(例えば、DRAM30に構成された8つのバンクを連続して指定するDMA転送)が終了するまでの期間も短縮することができる。
なお、上述した説明では、本発明の第4の実施形態のメモリアクセス装置600の考え方を、第1の実施形態のメモリアクセス装置200の構成に適用した場合について説明した。つまり、本発明の第4の実施形態のメモリアクセス装置600は、最初のアクセス要求を出力する直前のバンクビジーカウントに基づいて、それぞれのアクセス要求において、実際にアクセスするタイミングまでにバンクビジー状態が解消されないバンクを指定しない(バンクビジー状態になっているバンクに対するアクセスを回避する)ように、それぞれのバンクを指定する順番を決定する構成について説明した。しかし、上述したように、本発明の第4の実施形態のメモリアクセス装置600の考え方は、第1〜第3の実施形態のメモリアクセス装置のいずれにも適用することができる。例えば、第2の実施形態のメモリアクセス装置201に本発明の第4の実施形態のメモリアクセス装置600の考え方を適用した場合には、実際にアクセスするタイミングまでにバンクビジー状態が解消されるか否かをそれぞれのアクセス要求ごとに判定して、実際にアクセスするタイミングにおいてバンクビジー状態になっているバンクに対するアクセスを回避したデータの受け渡し制御(DMA転送)を行うことができる。また、例えば、第3の実施形態のメモリアクセス装置500に本発明の第4の実施形態のメモリアクセス装置600の考え方を適用した場合には、データ転送ブロックを含んだ構成のメモリアクセス装置においても、DRAM30に実際にアクセスするタイミングにおいてバンクビジー状態になっているバンクに対するアクセスを回避したデータの受け渡し制御(DMA転送)を行うことができる。
本第4の実施形態によれば、動作情報は、同一のバンクへのアクセスを行うことができない所定の時間が経過するまでに要する時間(バンクビジー状態が解消されるまでに要するクロック数のカウント値の情報であるバンクビジーカウント)を、バンクごとに表した情報であり、アクセス選択部(アクセス選択部6202)は、バンクビジーカウントに基づいて、同一のバンクへのアクセスを行うことができない所定の時間(バンクビジー状態)が経過するまでに要する時間(バンクビジーカウント)が、予め定めた閾値よりも小さい場合には、同一のバンク(バンクビジー状態であるバンク)へのアクセスを回避せず、同一のバンクへのアクセスを行うことができない所定の時間(バンクビジー状態)が経過するまでに要する時間(バンクビジーカウント)が、予め定めた閾値以上である場合には、同一のバンク(バンクビジー状態であるバンク)へのアクセスを回避するように、指定するバンクの順番を変更する、メモリアクセス装置(メモリアクセス装置600)が構成される。
上述したように、本発明の第4の実施形態のメモリアクセス装置600では、メモリ制御部660が、接続されているDRAM30のそれぞれのバンクのバンクビジー状態が解消されるまでに要する時間を表すバンクビジーカウント(DRAM30の動作情報)を出力する。そして、本発明の第4の実施形態のメモリアクセス装置600では、撮像入力部620(高優先処理ブロック)が、バンクビジーカウントに基づいて、DRAM30に実際にアクセスするタイミングまでにバンクビジー状態が解消されるバンクであるか否かを判定する。そして、本発明の第4の実施形態のメモリアクセス装置600では、撮像入力部620(高優先処理ブロック)が、実際にアクセスするタイミングまでにバンクビジー状態が解消されないバンクを指定しない(バンクビジー状態になっているバンクに対するアクセスを回避する)ように、指定するバンクの順番を決定する。これにより、本発明の第4の実施形態のメモリアクセス装置600でも、第1〜第3の実施形態のメモリアクセス装置と同様に、撮像入力部620(高優先処理ブロック)によるDRAM30に対するアクセスの効率を高め、撮像入力部620(高優先処理ブロック)がDRAM30に対してアクセスする(入力画像データをDRAM30に記憶させる(書き込ませる))ためのバス帯域を確保することができる。
なお、上述した説明では、第1〜第3の実施形態のメモリアクセス装置と同様に、本発明の第4の実施形態のメモリアクセス装置600が、撮像入力部620(高優先処理ブロック)とメモリ制御部660とを含んだ組み合わせによって構成される場合の一例について説明した。しかし、本発明の第4の実施形態のメモリアクセス装置600においても、第1〜第3の実施形態のメモリアクセス装置と同様に、高優先処理ブロックは、撮像装置3の動作モードによって異なる。このため、本発明の第4の実施形態のメモリアクセス装置においても、第1〜第3の実施形態のメモリアクセス装置と同様に、メモリアクセス装置を構成する高優先処理ブロックとメモリ制御部660とを含んだ組み合わせは、撮像入力部620とメモリ制御部260とを含んだ組み合わせに限定されるものではない。そして、本発明の第4の実施形態のメモリアクセス装置が、撮像入力部620とは異なる高優先処理ブロックとメモリ制御部560とを含んだ組み合わせであっても、その動作は、上述した第4の実施形態のメモリアクセス装置600と同様の動作から容易に考えることができる。
なお、本発明の第1〜第4の実施形態では、メモリ制御部が出力する、DRAM30の動作情報が、1種類である構成を示した。しかし、メモリ制御部が出力するDRAM30の動作情報は、1種類の動作状態に限定されるものではなく、複数の動作状態であってもよい。例えば、メモリ制御部は、バンクビジー状態信号とバンクビジーカウントとの両方を、DRAM30の動作情報として出力する構成であってもよい。
(第5の実施形態)
次に、本発明の第5の実施形態のメモリアクセス装置について説明する。本発明の第5の実施形態のメモリアクセス装置は、メモリアクセス装置を構成するメモリ制御部が、DRAM30の複数の動作情報を出力し、メモリアクセス装置を構成する高優先処理ブロックが、複数の動作情報に基づいて、それぞれのアクセス要求において指定するバンクの順番を決定する構成である。なお、以下の説明においては、本発明の第5の実施形態のメモリアクセス装置が、例えば、静止画用カメラや動画用カメラなどの撮像装置に搭載されている画像処理装置に備えられている場合について説明する。なお、本発明の第5の実施形態のメモリアクセス装置の考え方、つまり、DRAM30の複数の動作情報に基づいてそれぞれのアクセス要求において指定するバンクの順番を決定する際の考え方は、第1〜第4の実施形態のメモリアクセス装置のいずれにも適用することができる。以下の説明においては、本発明の第5の実施形態のメモリアクセス装置の考え方を、第1の実施形態のメモリアクセス装置200の構成に適用した場合について説明する。
図10は、本発明の第5の実施形態におけるメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の概略構成を示したブロック図である。本発明の第5の実施形態のメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の構成は、図1に示した第1の実施形態のメモリアクセス装置200を備えた画像処理装置20を搭載した撮像装置1と同様の構成要素を含んでいる。従って、本発明の第5の実施形態のメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の構成要素において、第1の実施形態のメモリアクセス装置200を備えた画像処理装置20を搭載した撮像装置1の構成要素と同様の構成要素には、同一の符号を付与し、それぞれの構成要素に関する詳細な説明は省略する。
図10に示した撮像装置4は、イメージセンサ10と、画像処理装置70と、DRAM30と、表示装置40と、を備えている。また、画像処理装置70は、撮像入力部720と、画像処理部230と、JPEG処理部240と、表示処理部250と、メモリ制御部760と、を備えている。画像処理装置70では、撮像入力部720と、画像処理部230と、JPEG処理部240と、表示処理部250と、メモリ制御部760とのそれぞれが、共通のデータバス210に接続されている。また、メモリ制御部760は、アービトレーション部7601と、メモリアクセス部2602と、を備えている。
撮像装置4も、第1の実施形態のメモリアクセス装置200を備えた画像処理装置20を搭載した撮像装置1と同様に、イメージセンサ10によって被写体の静止画像または動画像を撮影する。そして、撮像装置4も、撮像装置1と同様に、撮影した静止画像や動画像に応じた表示画像を表示装置40に表示させる。なお、撮像装置4も、撮像装置1と同様に、撮影した静止画像や動画像に応じた記録画像を、不図示の記録媒体に記録させることもできる。
画像処理装置70は、図1に示した第1の実施形態のメモリアクセス装置200を備えた画像処理装置20と同様に、イメージセンサ10から出力された画素信号に基づいた静止画像や動画像の生成、生成した静止画像や動画像に応じた表示画像の生成と表示装置40への表示、生成した静止画像や動画像に応じた記録画像の生成と不図示の記録媒体への記録を行う。
画像処理装置70では、撮像入力部720と、画像処理部230と、JPEG処理部240と、表示処理部250とのそれぞれが、画像処理装置70において実行する画像処理の処理機能を実現する処理ブロックである。画像処理装置70では、撮像入力部720、画像処理部230、JPEG処理部240、および表示処理部250のそれぞれが、データバス210を介したDMA転送によってDRAM30にアクセスする。画像処理装置70では、処理ブロックとメモリ制御部760との組み合わせによって、メモリアクセス装置を構成している。なお、画像処理装置70でも、第1の実施形態のメモリアクセス装置200を備えた20と同様に、それぞれの処理ブロックに、画像処理を実行するときにDRAM30にアクセスする(DMA転送を行う)際の優先度が設定されている。このため、画像処理装置70でも、第1の実施形態のメモリアクセス装置200を備えた画像処理装置20と同様に、それぞれの処理ブロックとメモリ制御部760との組み合わせの全てが、本発明の第5の実施形態のメモリアクセス装置でなくてもよい。つまり、画像処理装置70でも、第1の実施形態のメモリアクセス装置200を備えた画像処理装置20と同様に、高優先処理ブロックとメモリ制御部760との組み合わせによって、メモリアクセス装置を構成している。
なお、以下の説明においては、説明を容易にするため、第1の実施形態のメモリアクセス装置200を備えた画像処理装置20と同様に、撮像入力部720を高優先処理ブロックとし、撮像入力部720とメモリ制御部760との組み合わせのみが、本発明の第5の実施形態のメモリアクセス装置(以下、「メモリアクセス装置700」という)であるものとして説明する。
メモリ制御部760は、第1の実施形態のメモリアクセス装置200を構成するメモリ制御部260と同様に、データバス210に接続されている画像処理装置70内のそれぞれの処理ブロックからのDMA転送によるDRAM30へのアクセス要求(DMA要求)を調停して、いずれかの処理ブロックからのDRAM30へのアクセス要求を受け付ける。また、メモリ制御部760は、第1の実施形態のメモリアクセス装置200を構成するメモリ制御部260と同様に、アクセス要求を受け付けた処理ブロックとDRAM30との間でのデータバス210を介したデータの受け渡しを制御する。また、メモリ制御部760は、第1の実施形態のメモリアクセス装置200を構成するメモリ制御部260と同様に、アクセス要求を受け付けた処理ブロックからの要求に応じたDRAM30の制御に基づいて、接続されているDRAM30の動作情報を通知する機能を備えている。
ただし、メモリ制御部760は、第1の実施形態のメモリアクセス装置200を構成するメモリ制御部260と異なり、接続されているDRAM30の動作情報として、DRAM30のそれぞれのバンクがバンクビジー状態であるか否かを表す動作情報(バンクビジー状態信号)と、バンクビジー状態が解消されるまでに要する時間を表す動作情報(バンクビジーカウント)との両方を通知する。このため、メモリ制御部760は、DRAM30に備えたそれぞれのバンクごとのバンクビジー状態信号とバンクビジーカウントとを、共にメモリアクセス装置700を構成する処理ブロックである撮像入力部720に出力する。
アービトレーション部7601は、第1の実施形態のメモリアクセス装置200を構成するメモリ制御部260に備えたアービトレーション部2601と同様の調停回路(DMA調停回路、アービター)である。ただし、アービトレーション部7601は、第1の実施形態のメモリアクセス装置200を構成するメモリ制御部260に備えたアービトレーション部2601が出力するバンクビジー状態信号と、第4の実施形態のメモリアクセス装置600を構成するメモリ制御部660に備えたアービトレーション部6601が出力するバンクビジーカウントとを、撮像入力部720に出力する。
なお、メモリ制御部760でも、第1の実施形態のメモリアクセス装置200を構成するメモリ制御部260と同様に、接続されているDRAM30の動作状態がわかる構成要素であれば、メモリ制御部760に備えたアービトレーション部7601や、メモリアクセス部2602、不図示の構成要素など、いずれの構成要素がバンクビジー状態信号およびバンクビジーカウントを出力してもよい。また、メモリ制御部760では、バンクビジー状態信号とバンクビジーカウントとを、異なる構成要素が出力してもよい。例えば、メモリ制御部760では、第3の実施形態のメモリアクセス装置500を構成するメモリ制御部560と同様に、バンクビジー状態信号をメモリアクセス部5602が出力し、第4の実施形態のメモリアクセス装置600を構成するメモリ制御部660と同様に、バンクビジーカウントをアービトレーション部6601が出力してもよい。また、メモリ制御部760でも、第1の実施形態のメモリアクセス装置200を構成するメモリ制御部260と同様に、撮像入力部720に通知するDRAM30の動作情報として、DRAM30の他の動作情報がさらに含まれていてもよい。
撮像入力部720は、第1の実施形態のメモリアクセス装置200を構成する撮像入力部220と同様に、イメージセンサ10から出力された入力画像データをDRAM30に記憶させる(書き込む)処理ブロックである。撮像入力部720は、本発明の第5の実施形態のメモリアクセス装置700を構成する処理ブロック(高優先処理ブロック)でもある。ただし、撮像入力部720は、入力画像データをDMA転送してDRAM30に記憶させる(書き込む)際に、メモリ制御部760から出力されたバンクビジー状態信号およびバンクビジーカウントに基づいて、入力画像データを記憶させるために指定するDRAM30のバンクの順番を変更する。
より具体的には、撮像入力部720は、メモリ制御部760から出力されたバンクビジー状態信号に基づいて、バンクビジー状態のバンクがあるか否かを判定し、メモリ制御部760から出力されたバンクビジーカウントに基づいて、指定するバンクの順番を変更するか否かを判定する。そして、撮像入力部720は、指定するDRAM30のバンクの順番を変更すると判定したときにのみ、指定するバンクの順番を変更する。このような動作によって、撮像入力部720では、入力画像データをDRAM30に記憶させる(書き込ませる)ためのバス帯域を確保する。
撮像入力部720の構成は、図2に示した第1の実施形態のメモリアクセス装置200を構成する撮像入力部220と同様の構成である。ただし、本発明の第5の実施形態のメモリアクセス装置700では、バンクビジー状態信号およびバンクビジーカウントに基づいてバンクを指定する順番を判定して決定するため、アクセス選択部の動作が、第1の実施形態のメモリアクセス装置200に備えたアクセス選択部2202の動作と異なる。以下の説明においては、メモリアクセス装置700に備えるアクセス選択部を「アクセス選択部7202」といい、第1の実施形態のメモリアクセス装置200に備えたアクセス選択部2202と区別する。
次に、本発明の第5の実施形態のメモリアクセス装置700の動作、つまり、アクセス選択部7202がバンクデータをDRAM30に転送する際に指定するバンクの順番を変更する処理について説明する。図11は、本発明の第5の実施形態におけるメモリアクセス装置700においてアクセスするバンクを変更する処理、つまり、バンクビジー状態信号およびバンクビジーカウントに基づいて指定するバンクの順番を決定する処理の処理手順を示したフローチャートである。なお、以下の説明においては、DRAM30のそれぞれのバンクに対応するバンクビジー状態信号およびバンクビジーカウントが、メモリ制御部760から逐次出力されているものとして説明する。
バッファ部2201にイメージセンサ10から撮像入力部720に出力された入力画像データがバッファリングされると、バッファ部2201は、バッファリングした入力画像データのDRAM30に構成されたそれぞれのバンクへの転送を要求するバンクアクセス要求信号とバンクアドレスとを並列に、アクセス選択部7202に出力する。これにより、アクセス選択部7202は、メモリ制御部760から出力されているバンクビジー状態信号に基づいて、バンクビジー状態になっているバンクがあるか否かを判定する(ステップS410)。
ステップS410において、バンクビジー状態になっているバンクがない、つまり、DRAM30に構成された全てのバンクがバンクビジー状態ではないと判定した場合(ステップS410の“NO”)、アクセス選択部7202は、ステップS450に進む。
一方、ステップS410において、バンクビジー状態になっているバンクがあると判定した場合(ステップS410の“YES”)、アクセス選択部7202は、メモリ制御部760から出力されているバンクビジー状態信号に基づいて、バンクビジー状態になっているバンクを確認する(ステップS420)。
続いて、アクセス選択部7202は、メモリ制御部760から出力されているバンクビジーカウントの中から、ステップS420において確認した、バンクビジー状態になっているバンクに対応するバンクビジーカウントが、予め定めた閾値以上であるか否かを確認する(ステップS430)。つまり、アクセス選択部7202は、ステップS430において、バンクビジー状態になっているバンクが、バンクビジー状態が解消されるまでに予め定めた閾値の時間よりも長い時間を要するか否かを確認する。
ステップS420において、バンクビジーカウントが予め定めた閾値以上であるバンクがないと判定した場合(ステップS430の“NO”)、アクセス選択部7202は、ステップS450に進む。つまり、アクセス選択部7202は、ステップS430において、バンクビジー状態になっているバンクの中に、バンクビジー状態が解消されるまでに予め定めた閾値の時間よりも長い時間を要するバンクがないと判定された場合には、バンクビジー状態になっているDRAM30のバンクへのアクセスを回避せずに、このままのアクセスの処理を続けると判定し、ステップS450に進む。
一方、ステップS420において、バンクビジーカウントが予め定めた閾値以上であるバンクがあると判定した場合(ステップS430の“YES”)、アクセス選択部7202は、バンクを指定する順番を変更する(ステップS440)。より具体的には、アクセス選択部7202は、予め定めた順番で指定するバンクの内、バンクビジー状態が解消されるまでに予め定めた閾値の時間よりも長い時間を要するバンクの順番を後ろに回して、バンクビジー状態ではないバンクや、予め定めた閾値の時間よりも短い時間でバンクビジー状態が解消されるバンクから先に指定するように、バンクを指定する順番を変更する。
続いて、アクセス選択部7202は、DRAM30のバンクを指定する順番にアクセス要求をメモリ制御部760に出力し、バッファ部2201にバッファリングされた入力画像データを、DRAM30に順次転送する(ステップS450)。より具体的には、ステップS410においてバンクビジー状態になっているバンクがない、またはステップS430において予め定めた閾値の時間よりも短い時間でバンクビジー状態が解消されるバンクのみであると判定した場合、アクセス選択部7202は、DRAM30のバンクを指定する予め定めた順番にアクセス要求をメモリ制御部760に出力して、それぞれのバンクに対応するバンクデータ(入力画像データ)を、DRAM30に順次転送する。一方、ステップS410においてバンクビジー状態になっているバンクがあると判定し、ステップS430においてバンクビジー状態が解消されるまでに予め定めた閾値の時間よりも長い時間を要するバンクがあると判定した場合、アクセス選択部7202は、ステップS440において変更した順番にアクセス要求をメモリ制御部760に出力して、それぞれのバンクに対応するバンクデータ(入力画像データ)を、DRAM30に順次転送する。
次に、画像処理装置70においてDRAM30にデータを転送する動作の一例について説明する。図12は、本発明の第5の実施形態におけるメモリアクセス装置700においてDRAM30をアクセスする、つまり、バンクを指定するタイミングの一例を示したタイミングチャートである。図12には、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、高優先処理ブロックである撮像入力部720と、低優先処理ブロック(例えば、画像処理部230やJPEG処理部240)とのそれぞれがDMA転送によるDRAM30へのアクセス要求を出力する場合のタイミングの一例を示している。より具体的には、図12には、撮像入力部720と低優先処理ブロックとのそれぞれがDRAM30へのアクセス要求を行う際に出力する「アクセス要求信号」と、バンクを指定する「アドレス」とのそれぞれのタイミングの一例を示している。なお、アクセス要求信号は、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、“High”レベルでDRAM30へのアクセスを要求することを表し、“Low”レベルでDRAM30へのアクセスを要求しないことを表している。また、図12には、撮像入力部720と低優先処理ブロックとのそれぞれから出力されたアクセス要求を受け付けたバンクを「アクセス受け付け」として示している。なお、撮像入力部720では、上述したように、撮像入力部720に備えたアクセス選択部7202が、メモリ制御部760から出力されているバンクビジー状態信号およびバンクビジーカウントに基づいて、指定するバンクの順番を変更する。このため、図12でも図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、撮像入力部720が出力するアドレスとして、アクセス選択部7202が順番を変更する前のアドレスを「アドレス(変更前)」として示し、アクセス選択部7202が順番を変更した後のアドレスを「アドレス(変更後)」として示している。また、図12には、メモリ制御部760が出力するDRAM30のそれぞれのバンクに対応する「バンクビジー状態信号」と「バンクビジーカウント」とを併せて示している。なお、バンクビジー状態信号は、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、“High”レベルでバンクビジー状態であることを表し、“Low”レベルでバンクビジー状態ではないことを表している。また、バンクビジーカウントは、バンクビジー状態が解消されるまでに要する時間をクロック数で表したカウント値であり、同一のバンクにアクセスする際に必要な一定時間を「Mクロック(M=自然数、正の整数)」として、時間の経過と共にカウント値が減算されるものとしている。
図12に示したタイミングチャートも、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートと同様に、DRAM30に16個のバンクが構成されており、撮像入力部720が、DRAM30に構成された8つのバンクを連続して指定するアクセス要求を行う場合のタイミングの一例である。なお、以下の説明においては、アクセス選択部7202に予め定められたDRAM30のバンクを指定する順番が、「アドレス(変更前)」に示したように、バンク−0→バンク−1→バンク−2→・・・→バンク−6→バンク−7の順番であるものとして説明する。また、以下の説明においては、アクセス選択部7202に予め定められたDRAM30のバンクを指定する順番を変更するか否かを判定するための閾値が、カウント値=2であるものとして説明する。また、以下の説明においては、メモリ制御部760が、それぞれのバンクに対応するバンクビジー状態信号およびバンクビジーカウントを逐次出力しているものとして説明する。図12に示したタイミングチャートでは、対応するDRAM30のバンク(バンク−0〜バンク−15)を区別するため、バンクビジー状態信号とバンクビジーカウントとのそれぞれの信号名に続く「−」の後に、対応するバンクを示す「数字」を示している。なお、図12に示したタイミングチャートでは、バンク−8〜バンク−15に対応するバンクビジーカウントの表示は省略している。
図12に示したタイミングチャートの一例でも、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、メモリ制御部760が、低優先処理ブロックから出力されたアクセス要求信号に応じて、低優先処理ブロックから指定されたバンクに対するアクセス要求を受け付けて、DRAM30へのデータの受け渡しの制御(DMA転送)を行っている。図12に示したタイミングチャートの一例では、低優先処理ブロックから指定されたバンク−1、バンク−3、およびバンク−0に対応するバンクビジー状態信号−1、バンクビジー状態信号−3、およびバンクビジー状態信号−0が順次“High”レベルになっている。そして、メモリ制御部760は、一定時間が経過してそれぞれのバンクにおけるバンクビジー状態が解消されると、それぞれのバンクビジー状態信号を“Low”レベルにする。また、メモリ制御部760は、バンクビジー状態信号を “High”レベルにしたタイミングをカウント値=Mとし、それぞれのバンクビジー状態信号を“Low”レベルにするまで、カウント値を減算したバンクビジーカウントを出力する。
その後、図12に示したタイミングチャートの一例でも、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、撮像入力部720が、タイミングt1から、8つのバンクを連続して指定するアクセス要求を行う。このとき、撮像入力部720は、タイミングt1においてDRAM30への最初のアクセス要求を出力する前に、アクセス選択部7202が、メモリ制御部760から出力されているそれぞれのバンクに対応するバンクビジー状態信号およびバンクビジーカウントに基づいて、指定するバンクの順番を決定する。図12に示したタイミングチャートの一例では、タイミングt1の直前にメモリ制御部760から出力されているバンクビジー状態信号が、バンク−0、バンク−1、およびバンク−3がバンクビジー状態であることを表している。このため、アクセス選択部7202は、バンクビジー状態になっているバンクに対するバンクビジーカウントが、予め定めた閾値以上であるか否かを確認する。図12に示したタイミングチャートの一例では、タイミングt1の直前にメモリ制御部760から出力されているバンク−0に対応するバンクビジーカウントがカウント値=Mであり、バンク−1に対応するバンクビジーカウントがカウント値=1であり、バンク−3に対応するバンクビジーカウントがカウント値=M−2である。このため、アクセス選択部7202は、予め定められた閾値(カウント値=2)以上のカウント値であるバンク−0に対するアクセスを後ろに回して、バンクビジー状態になっていないバンクおよび予め定められた閾値(カウント値=2)よりもカウント値が小さいバンクに対するアクセスを先に行うように、指定するバンクの順番を決定する。図12に示したタイミングチャートの一例では、アクセス選択部7202が、バンク−1→バンク−2→バンク−3→バンク−4→バンク−5→バンク−6→バンク−7→バンク−0の順番でそれぞれのバンクを指定すると決定した場合の一例を示している。
なお、図12に示したタイミングチャートの一例において、バンク−3は、タイミングt1の直前にメモリ制御部760から出力されている対応するバンクビジーカウント−3はカウント値=M−2であるため、アクセスを後ろに回す対象のバンクであると考えられる。しかし、上述したように、アクセス選択部7202は、バンク−3のアクセスを後ろに回していない。これは、メモリ制御部760が、決定した順番でそれぞれのバンクに対してアクセスした場合、バンク−3に対応するバンクビジーカウントが表すカウント値がカウント値=M−2であっても、実際にバンク−3にアクセスするタイミングまでにはバンクビジー状態が解消していると判断することができるからである。このように、メモリ制御部760は、予め定められた閾値のみではなく、実際にアクセスするタイミングまでにバンクビジー状態が解消されるか否かの判断も含めて、それぞれのバンクを指定する順番を決定する。
そして、撮像入力部720(アクセス選択部7202)は、タイミングt1から、決定した順番で8つのバンクを連続して指定するアクセス要求信号をメモリ制御部760に順次出力する。これにより、メモリ制御部760は、撮像入力部720から出力されたそれぞれのアクセス要求信号に応じて、撮像入力部720から指定されたバンクに対するアクセス要求を受け付けて、DRAM30へのデータの受け渡しの制御(DMA転送)を行う。図12に示したタイミングチャートの一例では、メモリ制御部760が、タイミングt2〜タイミングt9のそれぞれのタイミングにおいて撮像入力部720から指定されたそれぞれのバンクに対するアクセス要求を受け付けて、DMA転送を行うタイミングを示している。なお、タイミングt2では、メモリ制御部760が、撮像入力部720がタイミングt1において出力したバンク−1に対するアクセス要求を、バンク−1のバンクビジー状態が解消された後に受け付けている。このとき、メモリ制御部760は、撮像入力部720から指定されたそれぞれのバンクに対するアクセス要求を受け付けると、アクセス要求を受け付けたことによってバンクビジー状態となったそれぞれのバンクに対応するバンクビジー状態信号を、“High”レベルにする。なお、それぞれのバンクは、一定時間が経過した後にバンクビジー状態が解消されるため、メモリ制御部760は、バンクビジー状態が解消されたときに、それぞれのバンクに対応するバンクビジー状態信号を“Low”レベルにする。
なお、アクセス選択部7202がそれぞれのバンクを指定する順番は、図12に示したタイミングチャートの一例において示した順番に限定されるものではない。つまり、メモリアクセス装置700においては、DRAM30へのアクセスが予め定めた閾値の時間だけ待たされることを許容した上で、バンクビジー状態であるバンクへのアクセスを回避すると共に、バンク−0〜バンク−7を網羅している順番であれば、アクセス選択部7202がそれぞれのバンクを指定する順番は、どのような順番であってもよい。
このような構成および動作によって、本発明の第5の実施形態のメモリアクセス装置700では、バンクビジー状態が解消されるまでに長い時間を要するバンクを判定し、バンクビジー状態になっているバンクに対するアクセス要求が予め定めた閾値の時間だけ待たされることを許容した上で、バンクビジー状態が解消されないバンクに対するアクセスを回避したデータの受け渡し制御(DMA転送)を行う。これにより、本発明の第5の実施形態のメモリアクセス装置700でも、第1の実施形態のメモリアクセス装置700と同様に、撮像入力部720によるDRAM30に対するアクセスの効率を高め、撮像入力部720が入力画像データをDRAM30に記憶させる(書き込ませる)ためのバス帯域を確保することができる。また、本発明の第5の実施形態のメモリアクセス装置700でも、第1の実施形態のメモリアクセス装置700と同様に、連続した一連のアクセス要求によるデータの転送(例えば、DRAM30に構成された8つのバンクを連続して指定するDMA転送)が終了するまでの期間も短縮することができる。
なお、上述した説明では、本発明の第5の実施形態のメモリアクセス装置700の考え方を、第1の実施形態のメモリアクセス装置200の構成に適用した場合について説明した。つまり、本発明の第5の実施形態のメモリアクセス装置700は、最初のアクセス要求を出力する直前のバンクビジー状態信号およびバンクビジーカウントに基づいて、それぞれのアクセス要求が予め定めた閾値の時間だけ待たされることを許容しつつ、バンクビジー状態が解消されるまでに長い時間を要するバンクを指定しない(アクセスを回避する)ように、それぞれのバンクを指定する順番を決定する構成について説明した。しかし、上述したように、本発明の第5の実施形態のメモリアクセス装置700の考え方は、第1〜第4の実施形態のメモリアクセス装置のいずれにも適用することができる。例えば、第2の実施形態のメモリアクセス装置201に本発明の第5の実施形態のメモリアクセス装置700の考え方を適用した場合には、バンクビジー状態が解消されるまでに予め定めた閾値の時間よりも長い時間を要するバンクをそれぞれのアクセス要求ごとに判定して、バンクビジー状態が解消されるまでに長い時間を要するバンクに対するアクセスを回避したデータの受け渡し制御(DMA転送)を行うことができる。また、例えば、第3の実施形態のメモリアクセス装置500に本発明の第5の実施形態のメモリアクセス装置700の考え方を適用した場合には、データ転送ブロックを含んだ構成のメモリアクセス装置においても、バンクビジー状態が解消されるまでに長い時間を要するバンクに対するアクセスを回避したデータの受け渡し制御(DMA転送)を行うことができる。
本第5の実施形態によれば、メモリ制御部(メモリ制御部760)は、メモリ(DRAM30)の動作状態を表す複数の動作情報(例えば、バンクビジー状態信号およびバンクビジーカウント)を出力し、アクセス選択部(アクセス選択部7202)は、複数の動作情報に基づいて指定するバンクの順番を変更する、メモリアクセス装置(メモリアクセス装置700)が構成される。
上述したように、本発明の第5の実施形態のメモリアクセス装置700では、メモリ制御部760が、接続されているDRAM30のそれぞれのバンクがバンクビジー状態であるか否かを表すバンクビジー状態信号と、バンクビジー状態が解消されるまでに要する時間を表すバンクビジーカウントとの両方を、DRAM30の動作情報として出力する。そして、本発明の第5の実施形態のメモリアクセス装置700では、撮像入力部720(高優先処理ブロック)が、バンクビジー状態信号およびバンクビジーカウントに基づいて、バンクビジー状態が解消されるまでに予め定めた閾値の時間よりも長い時間を要するバンクを判定する。そして、本発明の第5の実施形態のメモリアクセス装置700では、撮像入力部720(高優先処理ブロック)が、アクセス要求が予め定めた閾値の時間だけ待たされることを許容した上で、バンクビジー状態が解消されるまでに長い時間を要するバンクを指定しない(アクセスを回避する)ように、指定するバンクの順番を決定する。これにより、本発明の第5の実施形態のメモリアクセス装置700でも、第1〜第4の実施形態のメモリアクセス装置と同様に、撮像入力部720(高優先処理ブロック)によるDRAM30に対するアクセスの効率を高め、撮像入力部720(高優先処理ブロック)がDRAM30に対してアクセスする(入力画像データをDRAM30に記憶させる(書き込ませる))ためのバス帯域を確保することができる。
なお、上述した説明では、第1〜第4の実施形態のメモリアクセス装置と同様に、本発明の第5の実施形態のメモリアクセス装置700が、撮像入力部720(高優先処理ブロック)とメモリ制御部760とを含んだ組み合わせによって構成される場合の一例について説明した。しかし、本発明の第5の実施形態のメモリアクセス装置700においても、第1〜第4の実施形態のメモリアクセス装置と同様に、高優先処理ブロックは、撮像装置4の動作モードによって異なる。このため、本発明の第5の実施形態のメモリアクセス装置においても、第1〜第4の実施形態のメモリアクセス装置と同様に、メモリアクセス装置を構成する高優先処理ブロックとメモリ制御部760とを含んだ組み合わせは、撮像入力部720とメモリ制御部260とを含んだ組み合わせに限定されるものではない。そして、本発明の第5の実施形態のメモリアクセス装置が、撮像入力部720とは異なる高優先処理ブロックとメモリ制御部560とを含んだ組み合わせであっても、その動作は、上述した第5の実施形態のメモリアクセス装置700と同様の動作から容易に考えることができる。
なお、本発明の第1〜第5の実施形態では、1つの処理ブロック(撮像入力部)が高優先処理ブロックである構成について説明した。しかし、高優先処理ブロックとなる処理ブロックは、1つの処理ブロックに限定されるものではなく、例えば、撮像装置の動作モードに応じて、複数の処理ブロックが高優先処理ブロックとなる構成にしてもよい。ただし、この場合には、複数の高優先処理ブロックが、同時期に同じバンクに対するアクセス要求を行ってしまう、つまり、複数の高優先処理ブロックが同じバンクを指定してしまう可能性がある。このため、メモリアクセス装置は、同じバンクに対するアクセス要求が受け付けられなかった場合には、指定するバンクの順番をさらに変更する構成にしてもよい。
(第6の実施形態)
次に、本発明の第6の実施形態のメモリアクセス装置について説明する。本発明の第6の実施形態のメモリアクセス装置は、2つの処理ブロックが高優先処理ブロックである構成である。なお、以下の説明においては、本発明の第6の実施形態のメモリアクセス装置が、例えば、静止画用カメラや動画用カメラなどの撮像装置に搭載されている画像処理装置に備えられている場合について説明する。
本発明の第6の実施形態のメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の構成は、図1に示した第1の実施形態のメモリアクセス装置200を備えた画像処理装置20を搭載した撮像装置1の概略構成と同様である。従って、本発明の第6の実施形態のメモリアクセス装置を備えた画像処理装置を搭載した撮像装置の構成に関する詳細な説明は省略し、図1に示した第1の実施形態のメモリアクセス装置200を備えた画像処理装置20を搭載した撮像装置1の構成要素と同様の構成要素を表すときには同一の符号を用いて説明する。また、本発明の第6の実施形態のメモリアクセス装置の構成は、図2に示した第1の実施形態のメモリアクセス装置200の概略構成と同様である。従って、本発明の第6の実施形態のメモリアクセス装置の構成に関する詳細な説明は省略し、図2に示した第1の実施形態のメモリアクセス装置200の構成要素と同様の構成要素を表すときには同一の符号を用いて説明する。
ただし、本発明の第6の実施形態のメモリアクセス装置では、2つの処理ブロックが高優先処理ブロックとなっている。このため、図1に示した第1の実施形態のメモリアクセス装置200を備えた画像処理装置20を搭載した撮像装置1では、画像処理装置20内に、1つ目の高優先処理ブロックとメモリ制御部260との組み合わせによる本発明の第6の実施形態のメモリアクセス装置と、2つ目の高優先処理ブロックとメモリ制御部260との組み合わせによる本発明の第6の実施形態のメモリアクセス装置との2つのメモリアクセス装置が構成されている。それぞれの本発明の第6の実施形態のメモリアクセス装置は、メモリアクセス装置を構成するそれぞれの高優先処理ブロックごとに、図2に示した構成と同様の構成を備えている。つまり、本発明の第6の実施形態のメモリアクセス装置を構成するそれぞれの高優先処理ブロックごとに、バッファ部とアクセス選択部とを備えている。
以下の説明においては、1つ目の高優先処理ブロックを撮像入力部とし、2つ目の高優先処理ブロックを表示処理部とした場合について説明する。そして、以下の説明においては、撮像入力部とメモリ制御部260とが組み合わされた本発明の第6の実施形態のメモリアクセス装置を「メモリアクセス装置202」といい、表示処理部とメモリ制御部260とが組み合わされた本発明の第6の実施形態のメモリアクセス装置を「メモリアクセス装置205」という。メモリアクセス装置202とメモリアクセス装置205とは、それぞれ同様に動作して、DRAM30のバンクを指定する順番を変更する。
次に、本発明の第6の実施形態のメモリアクセス装置の動作、つまり、メモリアクセス装置202およびメモリアクセス装置205に備えたアクセス選択部がバンクデータをDRAM30に転送する際に指定するバンクの順番を変更する処理について説明する。なお、以下の説明においては、メモリアクセス装置202とメモリアクセス装置205とに備えたそれぞれのバッファ部の動作は、第1の実施形態のメモリアクセス装置200に備えたバッファ部2201と同様であるが、アクセス選択部の動作は、第1の実施形態のメモリアクセス装置200に備えたアクセス選択部2202の動作と異なる。以下の説明においては、メモリアクセス装置202に備えるバッファ部2201を「バッファ部2221」といい、アクセス選択部を「アクセス選択部2222」といい、第1の実施形態のメモリアクセス装置200に備えたバッファ部2201およびアクセス選択部2202と区別する。また、以下の説明においては、バッファ部2221およびアクセス選択部2222を備えたメモリアクセス装置202を構成する撮像入力部を「撮像入力部222」といい、バッファ部2201およびアクセス選択部2202を備えた第1の実施形態のメモリアクセス装置200を構成する撮像入力部220と区別する。また、以下の説明においては、メモリアクセス装置205に備えるバッファ部2201を「バッファ部2251」といい、アクセス選択部を「アクセス選択部2252」といい、第1の実施形態のメモリアクセス装置200に備えたバッファ部2201およびアクセス選択部2202と区別する。また、以下の説明においては、バッファ部2251およびアクセス選択部2252を備えたメモリアクセス装置205を構成する表示処理部を「表示処理部252」という。また、以下の説明においては、メモリアクセス装置202およびメモリアクセス装置205を備えた画像処理装置を「画像処理装置22」といい、第1の実施形態のメモリアクセス装置200を備えた画像処理装置20と区別する。
図13は、本発明の第6の実施形態におけるメモリアクセス装置(メモリアクセス装置202およびメモリアクセス装置205)においてアクセスするバンクを変更する処理、つまり、指定するバンクの順番を変更する処理の処理手順を示したフローチャートである。なお、以下の説明においては、本発明の第6の実施形態におけるメモリアクセス装置を代表して、メモリアクセス装置202の処理手順について説明する。なお、本発明の第6の実施形態におけるメモリアクセス装置であるメモリアクセス装置205では、処理を行う構成要素が異なる、つまり、アクセス選択部2222がアクセス選択部2252になるのみで、処理手順は同様である。なお、以下の説明においては、DRAM30のそれぞれのバンクに対応するバンクビジー状態信号が、メモリ制御部260から逐次出力されているものとして説明する。
バッファ部2221にイメージセンサ10から撮像入力部222に出力された入力画像データがバッファリングされると、バッファ部2221は、第1の実施形態のメモリアクセス装置200に備えたバッファ部2201と同様に、バッファリングした入力画像データのDRAM30に構成されたそれぞれのバンクへの転送を要求するバンクアクセス要求信号とバンクアドレスとを並列に、アクセス選択部2222に出力する。これにより、アクセス選択部2222は、第1の実施形態のメモリアクセス装置200に備えたアクセス選択部2202と同様に、メモリ制御部260から出力されているバンクビジー状態信号に基づいて、バンクビジー状態になっているバンクがあるか否かを判定する(ステップS510)。
ステップS510において、バンクビジー状態になっているバンクがない、つまり、DRAM30に構成された全てのバンクがバンクビジー状態ではないと判定した場合(ステップS510の“NO”)、アクセス選択部2222は、ステップS540に進む。
一方、ステップS510において、バンクビジー状態になっているバンクがあると判定した場合(ステップS510の“YES”)、アクセス選択部2222は、第1の実施形態のメモリアクセス装置200に備えたアクセス選択部2202と同様に、バンクビジー状態になっているバンクを確認する(ステップS520)。
続いて、アクセス選択部2222は、第1の実施形態のメモリアクセス装置200に備えたアクセス選択部2202と同様に、ステップS520において確認した結果に基づいて、バンクを指定する順番を変更する(ステップS530)。
続いて、アクセス選択部2222は、第1の実施形態のメモリアクセス装置200に備えたアクセス選択部2202と同様に、DRAM30のバンクを指定するアクセス要求をメモリ制御部260に出力する(ステップS540)。ここまでのバッファ部2221およびアクセス選択部2222の処理は、第1の実施形態のメモリアクセス装置200に備えたバッファ部2201およびアクセス選択部2202と同様である。
続いて、アクセス選択部2222は、アクセス要求をメモリ制御部260に出力し、メモリ制御部260によって出力したアクセス要求が受け付けられていない期間において、メモリ制御部260から出力されているバンクビジー状態信号に基づいて、バンクビジー状態の変化を監視し、バンクビジー状態の変化があるか否かを判定する(ステップS550)。なお、アクセス選択部2222におけるバンクビジー状態の変化の監視は、出力したアクセス要求がメモリ制御部260によって受け付けられていない期間の間、逐次行ってもよいし、予め定めたタイミングで周期的に行ってもよい。また、アクセス選択部2222におけるバンクビジー状態の変化の監視は、出力したアクセス要求において順番に指定する全てのバンクを監視してもよいし、最初に指定するバンクのみを監視してもよい。
ステップS550において、バンクビジー状態の変化があると判定した場合(ステップS550の“YES”)、アクセス選択部2222は、ステップS530に戻って、バンクを指定する順番をさらに変更する。そして、アクセス選択部2222は、ステップS540において、さらに変更したDRAM30のバンクを指定するアクセス要求をメモリ制御部260に出力する。つまり、アクセス要求するバンクを差し替える。アクセス選択部2222は、ステップS530〜ステップS550の処理を、メモリ制御部260によって出力したアクセス要求が受け付けられるまで繰り返す。
一方、ステップS550において、バンクビジー状態の変化がないと判定した場合(ステップS550の“NO”)、アクセス選択部2222は、ステップS560に進む。つまり、DRAM30に構成された全てのバンクのバンクビジー状態に変化がない状態で、出力したアクセス要求がメモリ制御部260によって受け付けられた場合には、アクセス選択部2222は、バンクビジー状態の変化の監視を終了する。
続いて、アクセス選択部2222は、メモリ制御部260によって受け付けられたアクセス要求に対応する、バッファ部2221にバッファリングされた入力画像データを、DRAM30に順次転送する(ステップS560)。なお、ステップS560における入力画像データのDRAM30への転送方法は、第1の実施形態のメモリアクセス装置200に備えたアクセス選択部2202と同様である。
次に、画像処理装置22においてDRAM30にデータを転送する動作の一例について説明する。図14は、本発明の第6の実施形態におけるメモリアクセス装置においてDRAM30をアクセスする、つまり、出力したアクセス要求がメモリ制御部260によって受け付けられていない期間の間、バンクを指定する順番をさらに変更するタイミングの一例を示したタイミングチャートである。図14には、高優先処理ブロックである撮像入力部222および表示処理部252と、低優先処理ブロック(例えば、画像処理部230やJPEG処理部240)とのそれぞれがDMA転送によるDRAM30へのアクセス要求を出力する場合のタイミングの一例を示している。より具体的には、図14には、撮像入力部222、表示処理部252、および低優先処理ブロックのそれぞれがDRAM30へのアクセス要求を行う際に出力する「アクセス要求信号」と、バンクを指定する「アドレス」とのそれぞれのタイミングの一例を示している。なお、アクセス要求信号は、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、“High”レベルでDRAM30へのアクセスを要求することを表し、“Low”レベルでDRAM30へのアクセスを要求しないことを表している。また、図14には、撮像入力部222、表示処理部252、および低優先処理ブロックのそれぞれから出力されたアクセス要求を受け付けたバンクを「アクセス受け付け」として示している。なお、撮像入力部222および表示処理部252では、上述したように、撮像入力部222に備えたアクセス選択部2222、および表示処理部252に備えたアクセス選択部2252が、メモリ制御部260から出力されているバンクビジー状態信号に基づいて、指定するバンクの順番を変更する。しかし、図14に示したタイミングの一例では、説明を容易にするため、撮像入力部222と表示処理部252とのそれぞれが同時期にアクセス要求を出力した場合において、表示処理部252が出力した順番を変更した後のバンクに対するアクセス要求の方が、撮像入力部222が出力したアクセス要求よりも早くメモリ制御部260に受け付けられたことにより、撮像入力部222が、指定するバンクの順番をされに変更する場合について説明する。このため、図14には、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、撮像入力部222が出力するアドレスとして、アクセス選択部2222が順番を変更する前のアドレスを「アドレス(変更前)」として示し、アクセス選択部2222が順番を変更した後のアドレスを「アドレス(変更後)」として示している。また、図14には、メモリ制御部260が出力するDRAM30のそれぞれのバンクに対応する「バンクビジー状態信号」を併せて示している。なお、バンクビジー状態信号は、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、“High”レベルでバンクビジー状態であることを表し、“Low”レベルでバンクビジー状態ではないことを表している。
図14に示したタイミングチャートは、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートと同様に、DRAM30に16個のバンクが構成されている場合のタイミングの一例である。そして、図14に示したタイミングチャートでは、撮像入力部222が、DRAM30に構成された8つのバンクを連続して指定するアクセス要求を行い、表示処理部252が、DRAM30に構成された2つのバンクを連続して指定するアクセス要求を行う場合を示している。なお、以下の説明においても、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートと同様に、アクセス選択部2222に予め定められたDRAM30のバンクを指定する順番が、「アドレス(変更前)」に示したように、バンク−0→バンク−1→バンク−2→・・・→バンク−6→バンク−7の順番であるものとして説明する。また、以下の説明においても、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、メモリ制御部260が、それぞれのバンクに対応するバンクビジー状態信号を逐次出力しているものとして説明する。
図14に示したタイミングチャートの一例でも、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、メモリ制御部260が、低優先処理ブロックから出力されたアクセス要求信号に応じて、低優先処理ブロックから指定されたバンクに対するアクセス要求を受け付けて、DRAM30へのデータの受け渡しの制御(DMA転送)を行っている。図14に示したタイミングチャートの一例では、低優先処理ブロックから指定されたバンク−0、バンク−1、およびバンク−3に対応するバンクビジー状態信号−0、バンクビジー状態信号−1、およびバンクビジー状態信号−3が順次“High”レベルになっている。そして、メモリ制御部260は、一定時間が経過してそれぞれのバンクにおけるバンクビジー状態が解消されると、それぞれのバンクビジー状態信号を“Low”レベルにする。
その後、図14に示したタイミングチャートの一例では、タイミングt1から、撮像入力部222が8つのバンクを連続して指定するアクセス要求を行い、表示処理部252が2つのバンクを連続して指定するアクセス要求を行う。このとき、撮像入力部222は、タイミングt1においてDRAM30への最初のアクセス要求を出力する前に、アクセス選択部2222が、メモリ制御部260から出力されているそれぞれのバンクに対応するバンクビジー状態信号に基づいて、指定するバンクを決定する。また、表示処理部252も、タイミングt1においてDRAM30への最初のアクセス要求を出力する前に、アクセス選択部2252が、メモリ制御部260から出力されているそれぞれのバンクに対応するバンクビジー状態信号に基づいて、指定するバンクを決定する。図14に示したタイミングチャートの一例では、タイミングt1の直前にメモリ制御部260から出力されているバンクビジー状態信号が、バンク−0、バンク−1、およびバンク−3がバンクビジー状態であることを表している。このため、アクセス選択部2222およびアクセス選択部2252は、バンクビジー状態になっているバンクに対するアクセスを回避して、バンクビジー状態になっていないバンクに対するアクセスを先に行うように、指定するバンクの順番を決定する。このアクセス選択部2222およびアクセス選択部2252による指定するバンクの順番を決定は、同時期に行われることになる。このため、アクセス選択部2222とアクセス選択部2252との両方が、同じバンク−2を、タイミングt1においてアクセス要求する最初のバンクとして決定する可能性がある。
この場合、撮像入力部222(アクセス選択部2222)と表示処理部252(アクセス選択部2252)とは、タイミングt1において、決定した同じバンク−2を指定するアクセス要求信号を、メモリ制御部260に出力する。ここで、図14に示したタイミングチャートの一例では、表示処理部252が出力したアクセス要求の方が、撮像入力部222が出力したアクセス要求よりも早くメモリ制御部260に受け付けられるものとしている。このため、メモリ制御部260は、表示処理部252から出力されたバンク−2に対するアクセス要求信号に応じて、バンクビジー状態になっていないバンク−2に対するアクセス要求を受け付けて、DRAM30へのデータの受け渡しの制御(DMA転送)を行う。つまり、撮像入力部222が出力したバンク−2に対するアクセス要求は、待たされている状態となる。そして、メモリ制御部260は、表示処理部252から出力されたバンク−2に対するアクセス要求を受け付けると、タイミングt2において、アクセス要求を受け付けたことによってバンクビジー状態となったバンク−2に対応するバンクビジー状態信号−2を、“High”レベルにする。なお、バンク−2は、一定時間が経過した後にバンクビジー状態が解消されるため、メモリ制御部260は、バンクビジー状態が解消されたときに、バンク−2に対応するバンクビジー状態信号−2を“Low”レベルにする。
アクセス選択部2222は、出力したアクセス要求が受け付けられていない期間、つまり、アクセス要求が待たされているときに、メモリ制御部260から出力されているバンクビジー状態信号に基づいて、バンクビジー状態の変化を監視する。そして、アクセス選択部2222は、図14に示したタイミングチャートの一例のように、例えば、タイミングt3において、バンク−2に対応するバンクビジー状態信号−2が“High”レベルに変化した、つまり、バンク−2がバンクビジー状態に変化したことを確認する。
そこで、アクセス選択部2222は、メモリ制御部260から出力されているそれぞれのバンクに対応するバンクビジー状態信号に基づいて、指定するバンクの順番をさらに変更する。図14に示したタイミングチャートの一例では、タイミングt3において確認したメモリ制御部260から出力されているバンクビジー状態信号が、バンク−1、バンク−2、およびバンク−3がバンクビジー状態であることを表している。このため、アクセス選択部2222は、タイミングt3において、アクセス要求する最初のバンクを、バンク−2からバンク−0に変更する。
ところが、メモリ制御部260によって先に受け付けられた表示処理部252のアクセス要求において、2番に指定するバンクもバンク−0である。この場合、メモリ制御部260は、表示処理部252から出力されたバンク−0に対する連続したアクセス要求信号に応じて、バンクビジー状態になっていないバンク−0に対するアクセス要求を受け付けて、DRAM30へのデータの受け渡しの制御(DMA転送)を行う。そして、メモリ制御部260は、表示処理部252から出力されたバンク−0に対するアクセス要求を受け付けると、タイミングt4において、アクセス要求を受け付けたことによってバンクビジー状態となったバンク−0に対応するバンクビジー状態信号−0を、“High”レベルにする。なお、バンク−2も、一定時間が経過した後にバンクビジー状態が解消されるため、メモリ制御部260は、バンクビジー状態が解消されたときに、バンク−0に対応するバンクビジー状態信号−0を“Low”レベルにする。
この場合、撮像入力部222が出力したバンク−0に対するアクセス要求も、待たされている状態である。そして、アクセス選択部2222は、図14に示したタイミングチャートの一例のように、例えば、タイミングt5において確認したバンク−0に対応するバンクビジー状態信号−0の“High”レベルへの変化によって、バンク−0もバンクビジー状態に変化したことを確認する。
これにより、アクセス選択部2222は、メモリ制御部260から出力されているそれぞれのバンクに対応するバンクビジー状態信号に基づいて、指定するバンクの順番をさらに変更する。図14に示したタイミングチャートの一例では、タイミングt5において確認したメモリ制御部260から出力されているバンクビジー状態信号が、バンク−0、バンク−2、およびバンク−3がバンクビジー状態であることを表しているため、アクセス選択部2222は、タイミングt5において、アクセス要求する最初のバンクを、バンク−0からバンク−1にさらに変更する。なお、アクセス選択部2222は、アクセス要求する最初のバンクを変更したことに伴って、連続して8つのバンクの順番も見直して変更する。図14に示したタイミングチャートの一例では、アクセス選択部2222が、バンク−1→バンク−4→バンク−5→バンク−6→バンク−7→バンク−0→バンク−2→バンク−3の順番でそれぞれのバンクを指定するように変更した場合の一例を示している。
なお、アクセス選択部2222がそれぞれのバンクを指定する順番は、図14に示したタイミングチャートの一例において示した順番に限定されるものではない。つまり、本発明の第6の実施形態におけるメモリアクセス装置においても、第1の実施形態のメモリアクセス装置200と同様に、バンクビジー状態であるバンクへのアクセスを回避すると共に、連続した一連のバンク(図14においては、バンク−0〜バンク−7)を網羅している順番であれば、アクセス選択部2222がそれぞれのバンクを指定する順番は、どのような順番であってもよい。
その後、図14に示したタイミングチャートの一例では、撮像入力部222(アクセス選択部2222)が出力したアクセス要求信号が、タイミングt6から、メモリ制御部260によって受け付けられる。これにより、アクセス選択部2222は、8つのバンクを連続して指定するアクセス要求を行い、メモリ制御部260は、撮像入力部222から出力されたそれぞれのアクセス要求信号に応じて、撮像入力部222から指定されたバンクの順番に、DRAM30へのデータの受け渡しの制御(DMA転送)を行う。図14に示したタイミングチャートの一例では、メモリ制御部260が、タイミングt6〜タイミングt13それぞれのタイミングにおいて撮像入力部222から指定されたそれぞれのバンクに対するアクセス要求を受け付けて、DMA転送を行うタイミングを示している。このとき、メモリ制御部260は、アクセス要求を受け付けたバンクに対応するそれぞれのバンクビジー状態信号を、“High”レベルにし、一定時間が経過してバンクビジー状態が解消されると、それぞれのバンクビジー状態信号を“Low”レベルにする。
このような構成および動作によって、本発明の第6の実施形態のメモリアクセス装置では、撮像入力部222と表示処理部252との両方が高優先処理ブロックである構成であり、両方の高優先処理ブロックが同じバンクを指定するアクセス要求を出力した場合でも、メモリ制御部260によってアクセス要求が受け付けられなかった高優先処理ブロック(第6の実施形態においては撮像入力部222)が、指定するバンクの順番をさらに変更する。これにより、本発明の第6の実施形態のメモリアクセス装置では、撮像入力部222のアクセス要求の受け付けが、表示処理部252が指定した同じバンクのバンクビジー状態が解消されるまで待たされることがなくなる。このことにより、本発明の第6の実施形態のメモリアクセス装置では、それぞれの高優先処理ブロックによるDRAM30に対するアクセスの効率を高め、撮像入力部222と表示処理部252との両方がDRAM30にアクセスするためのバス帯域を確保することができる。
本第6の実施形態によれば、アクセス選択部(アクセス選択部2222)は、出力したアクセス要求が、メモリ制御部(メモリ制御部260)に受け付けられていない期間の間、変化した動作情報(バンクビジー状態信号)に基づいて、指定するバンクの順番をさらに変更する、メモリアクセス装置(メモリアクセス装置202)が構成される。
上述したように、本発明の第6の実施形態のメモリアクセス装置は、高優先処理ブロックが複数ある構成であり、複数の高優先処理ブロックのそれぞれとメモリ制御部260との組み合わせによって構成される。そして、本発明の第6の実施形態のメモリアクセス装置では、それぞれの高優先処理ブロックが、バンクビジー状態信号に基づいて、バンクビジー状態になっているバンクを指定しない(バンクビジー状態になっているバンクに対するアクセスを回避する)ように、指定するバンクの順番を決定する。このとき、本発明の第6の実施形態のメモリアクセス装置では、複数の高優先処理ブロックが同じバンクを指定するアクセス要求を出力した場合でも、メモリ制御部260によってアクセス要求が受け付けられなかった高優先処理ブロックが、指定するバンクの順番をさらに変更する。これにより、本発明の第6の実施形態のメモリアクセス装置では、重複して指定したバンクに対するアクセス要求の受け付けが、重複して指定したバンクのバンクビジー状態が解消されるまで待たされることがなくなる。このことにより、本発明の第6の実施形態のメモリアクセス装置でも、第1の実施形態のメモリアクセス装置200と同様に、それぞれの高優先処理ブロックによるDRAM30に対するアクセスの効率を高め、それぞれの高優先処理ブロックがDRAM30に対してアクセスするためのバス帯域を確保することができる。
なお、上述した説明では、本発明の第6の実施形態のメモリアクセス装置が、撮像入力部222(高優先処理ブロック)とメモリ制御部260との組み合わせによるメモリアクセス装置と、表示処理部252(高優先処理ブロック)とメモリ制御部260との組み合わせによるメモリアクセス装置と、2つのメモリアクセス装置によって構成される場合の一例について説明した。しかし、本発明の第6の実施形態のメモリアクセス装置においても、第1の実施形態のメモリアクセス装置と同様に、高優先処理ブロックは、撮像装置1の動作モードによって異なる。このため、本発明の第6の実施形態のメモリアクセス装置においても、第1の実施形態のメモリアクセス装置と同様に、メモリアクセス装置を構成する高優先処理ブロックとメモリ制御部260との組み合わせは、上述した2つのメモリアクセス装置の組み合わせに限定されるものではない。そして、本発明の第6の実施形態のメモリアクセス装置においても、第1の実施形態のメモリアクセス装置と同様に、メモリアクセス装置が、異なる高優先処理ブロックとメモリ制御部260との組み合わせであっても、その動作は、上述した2つのメモリアクセス装置の組み合わせにおける動作から容易に考えることができる。
また、本発明の第6の実施形態のメモリアクセス装置では、高優先処理ブロックが複数ある構成において、複数の高優先処理ブロックが同じバンクを指定するアクセス要求を出力した場合に、メモリ制御部260によってアクセス要求が受け付けられなかった高優先処理ブロックが、指定するバンクの順番をさらに変更する場合について説明した。しかし、同じバンクを指定するアクセス要求は、複数の高優先処理ブロックを備えたメモリアクセス装置のみに起こるものではない。例えば、低優先処理ブロックのアクセス要求が受け付けられない期間が長い間続くと、低優先処理ブロックの処理が完了していないことによって撮像装置のシステムとしての動作に破綻をきたしてしまうことがある。このため、低優先処理ブロックの優先度を一時的に高優先処理ブロックよりも高くして、低優先処理ブロックのアクセス要求によるデータの転送を最優先にすることも考えられる。この場合にも、優先度を高くした低優先処理ブロックと高優先処理ブロックとで同じバンクを指定するアクセス要求が出力されることが考えられるが、本発明の第6の実施形態のメモリアクセス装置の考え方を適用することによって、高優先処理ブロックは、指定するバンクの順番をさらに変更することができる。
(メモリ制御部)
本発明の第1〜第6の実施形態では、メモリアクセス装置を構成するメモリ制御部が出力する、DRAM30の動作情報(バンクビジー状態信号やバンクビジーカウント)を通知するタイミングに関しては説明していない。メモリ制御部がDRAM30へのアクセス要求を調停して実際にDRAM30との間でのデータの受け渡しが行われるまでには、予め定めた処理時間を要する。つまり、メモリ制御部によるDRAM30へのアクセスには、予め定めた遅延時間(タイムラグ)が発生している。このため、DRAM30に備えたそれぞれのバンクにおける実際のバンクビジー状態を、DRAM30の動作情報(バンクビジー状態信号)にすると、本発明の第1〜第6の実施形態のメモリアクセス装置が指定するバンクの順番を変更する処理を正しく行うことができないことがある。
例えば、本発明の第1〜第6の実施形態のメモリアクセス装置が指定する予定のバンクが、現時点ではバンクビジー状態であったとしても、実際にDRAM30にアクセスするまでの遅延時間(タイムラグ)の間に、バンクビジー状態が解消されている場合がある。この場合には、本発明の第1〜第6の実施形態のメモリアクセス装置を構成する高優先処理ブロックやデータ転送ブロックが、指定するバンクの順番を変更しなくても、アクセス要求が待たされることなく、バンクデータをDRAM30に転送することができる。
一方、本発明の第1〜第6の実施形態のメモリアクセス装置が指定したバンクが、現時点ではバンクビジー状態ではなかったとしても、実際にDRAM30にアクセスするまでの遅延時間(タイムラグ)の間に、低優先処理ブロックからのアクセス要求に応じてバンクビジー状態となっている場合がある。この場合には、本発明の第1〜第6の実施形態のメモリアクセス装置を構成する高優先処理ブロックやデータ転送ブロックが順番を変更して指定しても、バンクビジー状態が解消されるまで実際のアクセスが待たされることになる。
このため、本発明の第1〜第6の実施形態のメモリアクセス装置を構成するメモリ制御部は、それぞれの処理に要する時間、つまり、実際にDRAM30にアクセスする際に要する処理時間(タイムラグ)を考慮したタイミングで、DRAM30の動作情報を通知する(出力する)構成にする必要がある。
ここで、本発明の第1〜第6の実施形態のメモリアクセス装置を構成するメモリ制御部の動作について説明する。上述したように、本発明の第1〜第6の実施形態のメモリアクセス装置を構成するメモリ制御部は、DRAM30に実際にアクセスする際の処理時間に基づいて、DRAM30の動作情報を通知する(出力する)。以下の説明においては、本発明の第1〜第6の実施形態のメモリアクセス装置を構成するメモリ制御部を代表して、本発明の第1の実施形態のメモリアクセス装置を構成するメモリ制御部260の動作について説明する。
図15は、本発明におけるメモリアクセス装置を構成するメモリ制御部(本発明の第1の実施形態のメモリアクセス装置を構成するメモリ制御部260)の動作タイミングの一例を示したタイミングチャートである。図15には、高優先処理ブロックである撮像入力部220と、低優先処理ブロック(例えば、画像処理部230やJPEG処理部240)とのそれぞれがDMA転送によるDRAM30へのアクセス要求を出力した場合において、DRAM30が実際にバンクビジー状態となるタイミングと、メモリ制御部260が出力するバンクビジー状態信号のタイミングの一例を示している。より具体的には、図15には、撮像入力部220と低優先処理ブロックとのそれぞれがDRAM30へのアクセス要求を行う際に出力する「アクセス要求信号」と、バンクを指定する「アドレス」とのそれぞれのタイミングの一例を示している。なお、アクセス要求信号は、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、“High”レベルでDRAM30へのアクセスを要求することを表し、“Low”レベルでDRAM30へのアクセスを要求しないことを表している。また、図4には、撮像入力部220と低優先処理ブロックとのそれぞれから出力されたアクセス要求をメモリ制御部260が受け付けたバンクを「アクセス受け付け」として示している。なお、撮像入力部220では、上述したように、撮像入力部220に備えたアクセス選択部2202が、メモリ制御部260から出力されているバンクビジー状態信号に基づいて、指定するバンクの順番を変更する。このため、図15でも、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、撮像入力部220が出力するアドレスとして、アクセス選択部2202が順番を変更する前のアドレスを「アドレス(変更前)」として示し、アクセス選択部2202が順番を変更した後のアドレスを「アドレス(変更後)」として示している。また、図15には、メモリ制御部260を構成するアービトレーション部2601が、受け付けたバンクの情報をメモリアクセス部2602に出力するタイミング、およびメモリ制御部260を構成するメモリアクセス部2602が、アービトレーション部2601から出力された受け付けたバンクの情報に基づいてDRAM30を制御するタイミングを示している。
また、図15には、メモリ制御部260(より具体的には、メモリアクセス部2602)から出力されたバンクに対する制御(アクセス)に応じて、DRAM30のバンクが実際にバンクビジー状態となるタイミングを示している。なお、DRAM30のバンクにおけるバンクビジー状態は、“High”レベルでバンクビジー状態であることを表し、“Low”レベルでバンクビジー状態ではないことを表している。また、図15には、メモリ制御部260が撮像入力部220に出力する「バンクビジー状態信号」を示している。なお、バンクビジー状態信号は、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、“High”レベルでバンクビジー状態であることを表し、“Low”レベルでバンクビジー状態ではないことを表している。
なお、図15には、それぞれのタイミングにおいて基準とする時間Tの周期を、クロック信号の形式で併せて示している。以下の説明においては、アービトレーション部2601が入力されたアクセス要求を調停する処理に要する時間(タイムラグ)を、10T(10クロック)分の時間とし、メモリアクセス部2602がDRAM30をアクセスする際の手続き(DRAMへのコマンドの発行)に要する時間(タイムラグ)を、5T(5クロック)分の時間として、メモリ制御部260の動作を説明する。また、以下の説明においては、説明を容易にするため、DRAM30のバンク−0に対するアクセスに着目して説明する。
まず、低優先処理ブロックからのアクセス要求に応じた動作について説明する。アービトレーション部2601は、低優先処理ブロックから出力されたバンク−0に対するアクセス要求信号を受け付けた、タイミングt1Lからタイムラグの時間(=10T)後のタイミングt2Lのときに、受け付けたバンク−0の情報をメモリアクセス部2602に出力する。そして、メモリアクセス部2602は、タイミングt2Lからタイムラグの時間(=5T)後のタイミングt3Lのときから、DRAM30の制御を開始する。これにより、DRAM30のバンク−0は、タイミングt3Lにおいて、メモリ制御部260が受け付けた、低優先処理ブロックからのアクセス要求に応じてバンクビジー状態となる。つまり、DRAM30のバンク−0は、アービトレーション部2601が低優先処理ブロックから出力されたバンク−0に対するアクセス要求信号を受け付けたタイミングt1Lから、アービトレーション部2601とメモリアクセス部2602とのそれぞれのタイムラグの時間を合わせた時間(=10T+5T=15T)が経過したタイミングt3Lのときから実際にバンクビジー状態となる。
続いて、撮像入力部220からのアクセス要求に応じた動作について説明する。上述したように、撮像入力部220は、メモリ制御部260から出力されているバンクビジー状態信号に基づいて、指定するバンクの順番を変更する。このとき、仮に、メモリ制御部260が、DRAM30のバンク−0における実際のバンクビジー状態を、バンク−0に対応するバンクビジー状態信号−0として撮像入力部220に出力していた場合、このバンクビジー状態信号−0は、撮像入力部220が指定するバンクの順番を決定するタイミングt1Hの直前では“Low”レベルであり、バンク−0がバンクビジー状態ではないことを表している。このため、撮像入力部220は、バンク−0を指定するアクセス要求信号をメモリ制御部260に出力することになる。メモリ制御部260が、このバンク−0に対するアクセス要求信号を受け付けた場合、DRAM30のバンク−0は、撮像入力部220から出力されたバンク−0に対するアクセス要求信号をアービトレーション部2601が受け付けたタイミングt2Hから、アービトレーション部2601のタイムラグの時間とメモリアクセス部2602のタイムラグの時間を合わせた時間(=15T)が経過したタイミングt3Hのときから実際にバンクビジー状態となる。
ここで、DRAM30のバンク−0における低優先処理ブロックからのアクセス要求によるバンクビジー状態が、タイミングt4Lのときに解消される、つまり、DRAM30のバンク−0が、タイミングt3L〜タイミングt4Lまでの期間Tbsyの期間がバンクビジー状態の期間であるものとした場合を考える。このDRAM30のバンク−0がバンクビジー状態の期間Tbsyは、撮像入力部220からのアクセス要求に応じた場合においても同様である。この場合、図15に示したように、DRAM30のバンク−0は、タイミングt3Hからタイミングt4Lまでの期間Tovの期間において、低優先処理ブロックからのアクセス要求に応じたバンクビジー状態の期間と、撮像入力部220からのアクセス要求に応じたバンクビジー状態の期間とが重複することになる。これは、撮像入力部220からのアクセス要求が、タイミングt4Lのときまで待たされることを表している。
このように、メモリ制御部260が、DRAM30のバンク−0における実際のバンクビジー状態をバンク−0に対応するバンクビジー状態信号−0として撮像入力部220に出力すると、撮像入力部220が、バンクの順番を変更する処理を正しく行うことができない。
そこで、メモリ制御部260は、アービトレーション部2601のタイムラグの時間とメモリアクセス部2602のタイムラグの時間を考慮して、図15に示したように、DRAM30のバンク−0における低優先処理ブロックからのアクセス要求によるバンクビジー状態を前倒しして生成し、バンクビジー状態信号−0を出力するようにする。より具体的には、メモリ制御部260は、アービトレーション部2601が低優先処理ブロックから出力されたバンク−0に対するアクセス要求信号を受け付けたタイミングt1Lのときから、DRAM30のバンク−0がバンクビジー状態となる期間Tbsyを表すタイミングt2までの期間の間、バンクビジー状態であることを表すバンクビジー状態信号−0を出力するようにする。言い換えれば、メモリ制御部260は、バンク−0に対するアクセス要求信号を受け付けたタイミングt1Lのときから、バンク−0にアクセスすることができない所定の時間(一定時間)=期間Tbsyを表すバンクビジー状態信号−0を出力するようにする。
これにより、バンクビジー状態信号−0は、撮像入力部220が指定するバンクの順番を決定するタイミングt1Hの直前では“High”レベルとなっており、撮像入力部220は、バンク−0がバンクビジー状態であることを確認することができる。そして、撮像入力部220は、メモリ制御部260から出力されているバンクビジー状態信号−0に基づいて、指定するバンクの順番を変更することができる。つまり、撮像入力部220は、タイミングt1Hにおいて、バンク−0へのアクセスを回避して(バンク−0へのアクセスを後ろに回して)、バンクビジー状態信号がバンクビジー状態ではないことを表しているバンクから先に指定するように、バンクを指定する順番を変更することができる。図15には、撮像入力部220が、図4に示した第1の実施形態のメモリアクセス装置200におけるタイミングチャートの一例と同様に、バンク−2→バンク−4→バンク−5→バンク−6→バンク−7→バンク−0→バンク−1→バンク−3の順番でそれぞれのバンクを指定する場合の一例を示している。
このように、メモリ制御部260は、実際にDRAM30にアクセスする際に要する処理時間(タイムラグ)を考慮して、前倒ししたタイミングのバンクビジー状態信号を生成して出力する。つまり、メモリ制御部260は、これからバンクビジー状態となるバンクの情報を、DRAM30の動作情報として出力する。このDRAM30の動作情報は、現時点ではバンクビジー状態であるバンクのバンクビジー状態が解消されるまでの情報でもある。これにより、高優先処理ブロックである撮像入力部220は、実際にDRAM30にアクセスするときに指定するバンクがバンクビジー状態となっているか否かを事前に確認して、指定するバンクの順番を変更する処理を正しく行うことができる。
なお、上述した説明では、本発明の第1〜第6の実施形態のメモリアクセス装置を構成するメモリ制御部を代表して、本発明の第1の実施形態のメモリアクセス装置を構成するメモリ制御部260の動作について説明したが、本発明の第2〜第6の実施形態のメモリアクセス装置を構成するメモリ制御部においても、その動作は同様である。また、上述した説明では、DRAM30の動作情報が、バンクビジー状態信号である場合について説明したが、DRAM30の動作情報がバンクビジーカウントであっても、同様に考えることができる。DRAM30の動作情報がバンクビジーカウントである場合には、バンクビジー状態信号を前倒しして生成して出力するタイミングから、時間の経過と共に減算するカウント値を出力する。
本実施形態によれば、メモリ制御部は、アクセス要求を受け付けたタイミングから、同一のバンクへのアクセスを行うことができない所定の時間(バンクビジー状態)を表す動作情報を出力する、メモリアクセス装置が構成される。
上述したように、本発明の第1〜第6の実施形態のメモリアクセス装置を構成するメモリ制御部では、DRAM30の動作情報(バンクビジー状態信号、バンクビジーカウントなど)を、実際にDRAM30にアクセスする際に要する処理時間(タイムラグ)を考慮して前倒ししたタイミングで生成して出力する。これにより、本発明の第1〜第6の実施形態のメモリアクセス装置を構成する高優先処理ブロックは、それぞれのアクセス要求において指定するバンクの状態が、実際にDRAM30にアクセスするタイミングのときにバンクビジー状態となっているか否かを事前に確認して、指定するバンクの順番を変更する処理を正しく行うことができる。これにより、本発明の第1〜第6の実施形態のメモリアクセス装置では、高優先処理ブロックがアクセス要求において指定するバンクは、実際にDRAM30にアクセスするタイミングのときにはバンクビジー状態が解消された状態、つまり、直ちにアクセスすることができる状態になっている。このため、本発明の第1〜第6の実施形態のメモリアクセス装置では、高優先処理ブロックによるDRAM30に対するアクセスの効率を高め、バス帯域を確保することができる。
上記に述べたように、本発明の各実施形態によれば、本発明のメモリアクセス装置を構成するメモリ制御部が、接続されているDRAMの動作状態を表す情報(動作情報)を、本発明のメモリアクセス装置を構成する優先度の高い処理ブロックに出力する。そして、本発明の各実施形態では、本発明のメモリアクセス装置を構成する優先度の高い処理ブロックが、接続されているDRAMに対するアクセス要求を出力する際に、本発明のメモリアクセス装置を構成するメモリ制御部から出力されたDRAMの動作状態を表す情報に基づいて、DRAMのバンクを指定する順番を変更する。より具体的には、本発明の各実施形態では、本発明のメモリアクセス装置を構成する優先度の高い処理ブロックが、バンクビジー状態になっているバンクに対するアクセスを回避するように、DMA転送においてDRAMに備えたそれぞれのバンクをアクセスする順番(バンクアドレスの順番)を決定し、決定したバンクアドレスの順番でDRAMとの間でデータの転送を要求するアクセス要求を出力する。これにより、本発明の各実施形態では、本発明のメモリアクセス装置を構成する優先度の高い処理ブロックによるDRAMに対するアクセスの効率を高めると共に、DRAMとの間でデータを転送するためのバス帯域を確保することができる。このことにより、本発明の各実施形態では、本発明のメモリアクセス装置を備えた画像処理装置における性能を確保することができる。また、本発明の各実施形態では、本発明のメモリアクセス装置を備えた画像処理装置を搭載した撮像装置における機能を実現することができる。
なお、本発明の各実施形態では、本発明のメモリアクセス装置が、撮像装置に搭載される画像処理装置に備えられる構成について説明した。しかし、DRAMとの間でデータの転送を行うメモリアクセス装置を備えるシステムは、本発明の各実施形態において示した画像処理装置や撮像装置の他にも種々のシステムが考えられる。従って、本発明の考え方に基づいたメモリアクセス装置を適用することができる処理装置やシステムは、何ら限定されるものではない。すなわち、DRAMとの間でデータの転送を行う処理装置やシステムであれば、いかなる処理装置やシステムであっても、本発明のメモリアクセス装置における考え方を同様に適用することができる。そして、本発明のメモリアクセス装置と同様の効果を得ることができる。
なお、本発明の各実施形態では、本発明のメモリアクセス装置を構成するメモリ制御部が、処理ブロックから出力されたアクセス要求に応じてDRAMを制御する際の制御に基づいて、DRAMの動作状態を表す情報(バンクビジー状態信号、バンクビジーカウントなどの動作情報)を生成して出力する構成について説明した。しかし、DRAMが、DRAM30の記憶領域(バンク)の動作状態を表す情報を出力する機能を備えている場合には、本発明のメモリアクセス装置を構成するメモリ制御部が生成して出力する情報と同様の情報を、DRAM内で生成して出力する構成にしてもよい。この場合にも、メモリアクセス装置を構成する優先度の高い処理ブロックが、本発明のメモリアクセス装置を構成する優先度の高い処理ブロックと同様に、DRAMのバンクを指定する順番を変更することによって、本発明のメモリアクセス装置と同様の効果を得ることができる。
以上、本発明の好ましい実施形態を説明したが、本発明はこれら実施形態およびその変形例に限定されることはない。本発明の趣旨を逸脱しない範囲で、構成の付加、省略、置換、およびその他の変更をすることができる。
また、本発明は前述した説明によって限定されることはなく、添付のクレームの範囲によってのみ限定される。