(57)【特許請求の範囲】
【請求項１】
アドレス空間が複数のバンクに分けられたメモリへのアクセスを要求するアクセス要求を出力する複数のバスマスタと、
前記メモリが接続され、前記バスマスタのそれぞれから出力された前記アクセス要求を調停し、受け付けた前記アクセス要求に応じて前記メモリへのアクセスを制御するアービタと、
前記アービタによって受け付けられた複数の前記アクセス要求に関する情報を取得してリクエスト受け付け履歴情報として記憶し、記憶したそれぞれの前記リクエスト受け付け履歴情報を出力するリクエスト受け付け履歴取得部と、
を備え、
前記複数のバスマスタの内、優先度が高い少なくとも１つの前記バスマスタを高優先バスマスタとしたとき、
前記高優先バスマスタは、
前記メモリの複数の前記バンクに連続してアクセスする際に、前記リクエスト受け付け履歴情報を参照して、それぞれの前記アクセス要求によって指定する前記バンクの順序を決定し、決定した順序で前記バンクを指定する前記アクセス要求を出力する、
メモリアクセス制御装置。
【請求項２】
前記リクエスト受け付け履歴取得部は、
少なくとも、前記アクセス要求において指定された前記バンクの情報と、前記メモリに対するアクセス方向を表す情報とを紐づけた前記リクエスト受け付け履歴情報を、前記アービタによって受け付けられたそれぞれの前記アクセス要求ごとに記憶し、
前記高優先バスマスタは、
前記リクエスト受け付け履歴情報に含まれる前記バンクの情報に基づいて、それぞれの前記アクセス要求によって指定する前記バンクの順序を、同一の前記バンクへの所定の時間内でのアクセスを回避する順序に決定する、
請求項１に記載のメモリアクセス制御装置。
【請求項３】
前記リクエスト受け付け履歴取得部は、さらに、
前記アービタによって前記アクセス要求が受け付けられたタイミングを表す情報を取得し、取得したタイミングを表す情報を、対応する前記リクエスト受け付け履歴情報に紐づけて、前記リクエスト受け付け履歴情報として記憶する、
請求項２に記載のメモリアクセス制御装置。
【請求項４】
前記リクエスト受け付け履歴取得部は、
前記アービタによって最後に受け付けられた前記アクセス要求から遡った予め定めた数、または現時点から過去の予め定めた一定期間の前記リクエスト受け付け履歴情報を記憶する、
請求項３に記載のメモリアクセス制御装置。
【請求項５】
前記リクエスト受け付け履歴取得部は、
前記所定の時間に基づいて、前記リクエスト受け付け履歴情報を記憶する期間を設定する、
請求項４に記載のメモリアクセス制御装置。
【請求項６】
前記高優先バスマスタは、
それぞれの前記アクセス要求によって指定する前記バンクの順序を決定する処理を開始するときから、最初に前記アクセス要求を出力するまでの期間中に、他の前記バスマスタから入力された前記アクセス要求の受け付けのマスクを指示するリクエスト受け付けマスク信号を出力し、
前記アービタは、
前記リクエスト受け付けマスク信号に応じて、前記高優先バスマスタ以外の他の前記バスマスタから入力された前記アクセス要求をマスクする、
請求項１から請求項５のいずれか１つの項に記載のメモリアクセス制御装置。
【請求項７】
前記アービタは、さらに、
前記高優先バスマスタからそれぞれの前記アクセス要求が出力されている期間中に、他の前記バスマスタから入力された前記アクセス要求をマスクする、
請求項６に記載のメモリアクセス制御装置。
【請求項８】
アドレス空間が複数のバンクに分けられたメモリへのアクセスを要求するアクセス要求を出力する複数のバスマスタと、
前記メモリが接続され、前記バスマスタのそれぞれから出力された前記アクセス要求を調停し、受け付けた前記アクセス要求に応じて前記メモリへのアクセスを制御するアービタと、
前記アービタによって受け付けられた複数の前記アクセス要求に関する情報を取得してリクエスト受け付け履歴情報として記憶し、記憶したそれぞれの前記リクエスト受け付け履歴情報を出力するリクエスト受け付け履歴取得部と、
を備え、
前記複数のバスマスタの内、優先度が高い少なくとも１つの前記バスマスタを高優先バスマスタとしたとき、
前記高優先バスマスタは、前記メモリの複数の前記バンクに連続してアクセスする際に、前記リクエスト受け付け履歴情報を参照して、それぞれの前記アクセス要求によって指定する前記バンクの順序を決定し、決定した順序で前記バンクを指定する前記アクセス要求を出力するメモリアクセス制御装置、
を備える、
画像処理装置。
【請求項９】
アドレス空間が複数のバンクに分けられたメモリへのアクセスを要求するアクセス要求を出力する複数のバスマスタと、
前記メモリが接続され、前記バスマスタのそれぞれから出力された前記アクセス要求を調停し、受け付けた前記アクセス要求に応じて前記メモリへのアクセスを制御するアービタと、
前記アービタによって受け付けられた複数の前記アクセス要求に関する情報を取得してリクエスト受け付け履歴情報として記憶し、記憶したそれぞれの前記リクエスト受け付け履歴情報を出力するリクエスト受け付け履歴取得部と、
を備え、
前記複数のバスマスタの内、優先度が高い少なくとも１つの前記バスマスタを高優先バスマスタとしたとき、
前記高優先バスマスタは、前記メモリの複数の前記バンクに連続してアクセスする際に、前記リクエスト受け付け履歴情報を参照して、それぞれの前記アクセス要求によって指定する前記バンクの順序を決定し、決定した順序で前記バンクを指定する前記アクセス要求を出力するメモリアクセス制御装置を備える画像処理装置、
を備える、
撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセス制御装置、画像処理装置、および撮像装置に関する。
【背景技術】
【０００２】
静止画用カメラ、動画用カメラ、医療用内視鏡カメラ、または産業用内視鏡カメラなどの撮像装置では、搭載されたシステムＬＳＩなどの画像処理装置によって、様々な画像処理が行われる。撮像装置に搭載される画像処理装置などの多くのシステムＬＳＩでは、接続された１つのＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を、内蔵する複数の処理ブロック（以下、「バスマスタ」という）が共有している。このようなシステムＬＳＩにおいては、内蔵している複数のバスマスタのそれぞれが、システムＬＳＩ内部のデータバスに接続され、各バスマスタは、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送によってＤＲＡＭへのアクセスを行う。このとき、それぞれのバスマスタは、ＤＲＡＭへのアクセス要求（ＤＭＡ要求）と、アドレスやアクセス方向（書き込みまたは読み出し）などのＤＲＡＭへのアクセスに関する情報（アクセス情報）を出力する。【０００３】
また、システムＬＳＩには、内蔵している複数のバスマスタのそれぞれから発行されるＤＭＡ要求を調停するＤＭＡ調停回路（以下、「アービタ」という）を備えている。アービタは、それぞれのバスマスタから発行されるＤＭＡ要求を適切に調停しながら、ＤＲＡＭへの実際のアクセスを制御している。このアービタによるＤＭＡ要求の調停においては、システムとしての性能（パフォーマンス）を満足するように、各バスマスタからのＤＭＡ要求を調停することが求められる。このため、アービタは、基本的に、各バスマスタから発行されるＤＭＡ要求の中から、ＤＲＡＭに対するアクセスの効率が最大となるＤＭＡ要求を選択して受け付ける。【０００４】
ところで、通常のＤＲＡＭには、アクセスする際に様々な制約がある。その一つの制約は、一度アクセスしたバンク（例えば、アドレスの下位のビットに相当）はバンクビジー状態となるため、再び同一のバンクにアクセスする場合には、所定の時間（一定時間）を空ける必要があるというものである。また、他の制約として、ＤＲＡＭのアクセス方向の切り替え、つまり、ＤＲＡＭに記憶されているデータを読み出すリードアクセスからＤＲＡＭにデータを書き込んで記憶させるライトアクセスへの切り替えや、その逆に、ライトアクセスからリードアクセスへの切り替えには、一定のリードライト切り替え時間を要するというものもある。ＤＲＡＭに対してアクセスする際には、上述したような制約を回避したアクセスを行わないと、ＤＲＡＭに対するアクセスの効率が低下してしまう。【０００５】
このため、アービタは、各バスマスタが現在発行しているＤＭＡ要求におけるアクセス情報、各バスマスタの優先度、ＤＲＡＭの現在の状態（バンクビジー状態、リードアクセスまたはライトアクセスの状態）とから、ＤＭＡ要求を受け付けるバスマスタを決定する。より具体的には、アービタは、ＤＲＡＭに対して効率的にアクセスすることを優先し、それぞれのバスマスタから発行されたＤＭＡ要求の中から、優先度が高く、ＤＲＡＭに対するアクセス方向（リードまたはライト）が同じであり、バンクビジー状態ではないバンクに対してアクセスするバスマスタを、ＤＭＡ要求を受け付けるバスマスタに決定する。これにより、システムＬＳＩでは、ＤＲＡＭが接続されたデータバスにおけるデータの流れ、つまり、バス帯域を確保することができ、システムＬＳＩを搭載した撮像装置のシステム全体としての動作を保証することができる。【０００６】
ところで、撮像装置においては、被写体の撮影や、撮影する被写体を確認するための表示画像、いわゆる、ライブビュー画像（スルー画像）の表示など、リアルタイム性が求められる機能がある。撮像装置では、リアルタイム性が求められる機能を実現するためのバスマスタが発行したＤＭＡ要求が待たされると、撮像装置のシステムとしての動作に破綻をきたしてしまう。このため、撮像装置においては、リアルタイム性が求められる機能を実現するためのバスマスタの優先度を高く設定し、アービタが、リアルタイム性が求められる優先度が高いバスマスタが発行したＤＭＡ要求を優先的に受け付けるようにしている。また、撮像装置に備える優先度が高いバスマスタの中には、複数のバンクに連続してアクセスするものもある。このようなバスマスタでは、バンクインターリーブという方法を用いて、異なるバンクに順次アクセスする、つまり、同一のバンクに連続してアクセスしないようにしている。【０００７】
このため、撮像装置においては、優先度が高いバスマスタがＤＭＡ要求を発行した場合、その他の優先度が低いバスマスタから発行されたＤＭＡ要求や、ＤＲＡＭに対するアクセス方向が逆であるＤＭＡ要求、同一のバンクに対してアクセスするＤＭＡ要求などは、受け付けられるまでに相当の時間を要してしまうことになる。しかしながら、優先順位が低いバスマスタであっても、発行したＤＭＡ要求が受け付けられる頻度が著しく低下してしまうと、撮像装置のシステムとしての動作に破綻をきたしてしまうことがある。【０００８】
そこで、例えば、特許文献１のようなメモリ制御装置の技術が開示されている。特許文献１には、ビジー状態であるバンクに対するアクセス要求をマスクし、アクセス要求を発行してから予め定めた一定時間が経過した後にマスクを解除することによって、少なくとも一定期間ごとにアクセス要求を受け付けるようにそれぞれのアクセス要求を制御するメモリ制御装置、つまり、アービタ（ＤＭＡ調停回路）の技術が開示されている。また、特許文献１には、アクセス要求が受け付けられたバスマスタの優先度を最下位とする、いわゆる、ラウンドロビン方式の動作をし、現在受け付けられているアクセス要求とアクセス方向が同じ方向のアクセス要求の優先度を高くすることも開示されている。これにより、特許文献１に開示された技術のメモリ制御装置では、同一のバンクに対する連続したアクセスを防止すると共に、ＤＲＡＭに対するアクセスの効率を高めることができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】日本国特開２０１０−２１８３２３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に開示された技術では、アクセス要求の調停を行う時点においてＤＲＡＭに対するアクセスの効率を高めることができるものの、マスクを解除するタイミングによっては、マスクが解除されたアクセス要求によってアクセスするバンクと、優先度が高いバスマスタが現在アクセスしているバンクまたは次にアクセスするバンクとが同一のバンクとなってしまう、いわゆる、バンク衝突を起こすこともあり得る。これは、特許文献１に開示された技術では、発行されたアクセス要求のマスクを、アクセス要求の調停を行う時点でそれぞれのバスマスタが発行しているアクセス要求、つまり、ＤＭＡ要求におけるアクセス情報と、ＤＲＡＭにおける現在のバンクビジー状態とに基づいて行っているため、それぞれのバスマスタが、どのようなバンクの順番でＤＲＡＭに対するアクセスを行うのかが考慮されていないからである。【００１１】
より具体的には、優先度が高いバスマスタと同じバンクにアクセスする優先度の低いバスマスタのアクセス要求が、優先度が高いバスマスタのアクセス要求が受け付けられた後に解除された場合、この優先度の低いバスマスタは、アクセス要求のマスクが解除されたにもかかわらず、優先度が高いバスマスタがアクセスしたことによるバンクビジー状態が終了するまで、解除されたアクセス要求の受け付けが待たされることになる。また、優先度が高いバスマスタと同じバンクにアクセスする優先度の低いバスマスタのアクセス要求が、バンクビジー状態の終了に近いタイミングで解除された場合、優先度の低いバスマスタにおける解除されたアクセス要求は受け付けられるものの、優先度が高いバスマスタは、優先度の低いバスマスタがアクセスしたことによるバンクビジー状態が終了するまで、アクセス要求の受け付けが待たされることになる。さらに、マスクが解除される優先度の低いバスマスタがアクセスするバンクの順番が、優先度が高いバスマスタがアクセスするバンクの順番と同様の順番である場合、優先度が高いバスマスタは、常にバンクビジー状態が終了するまで、アクセス要求の受け付けが待たされることになる。【００１２】
なお、優先度が高いバスマスタが、バンクインターリーブによってバンクの順番を替えている場合であっても、特許文献１に開示された技術では、バスマスタがアクセスするバンクの順番が考慮されていないため、頻度の違いはあるものの、同様にアクセス要求の受け付けが待たされることはある。そして、このようなバンク衝突が頻発してしまうと、ＤＲＡＭに対するアクセスの効率が低下するばかりではなく、システムとしての動作に破綻をきたしてしまうことにもなる。【００１３】
本発明は、上記の課題認識に基づいてなされたものであり、複数の処理ブロックで共有するＤＲＡＭに対するアクセスの効率を高めることができるメモリアクセス制御装置、画像処理装置、および撮像装置を提供することを目的としている。
【課題を解決するための手段】
【００１４】
本発明の第１の態様によれば、メモリアクセス制御装置は、アドレス空間が複数のバンクに分けられたメモリへのアクセスを要求するアクセス要求を出力する複数のバスマスタと、前記メモリが接続され、前記バスマスタのそれぞれから出力された前記アクセス要求を調停し、受け付けた前記アクセス要求に応じて前記メモリへのアクセスを制御するアービタと、前記アービタによって受け付けられた複数の前記アクセス要求に関する情報を取得してリクエスト受け付け履歴情報として記憶し、記憶したそれぞれの前記リクエスト受け付け履歴情報を出力するリクエスト受け付け履歴取得部と、を備え、前記複数のバスマスタの内、優先度が高い少なくとも１つの前記バスマスタを高優先バスマスタとしたとき、前記高優先バスマスタは、前記メモリの複数の前記バンクに連続してアクセスする際に、前記リクエスト受け付け履歴情報を参照して、それぞれの前記アクセス要求によって指定する前記バンクの順序を決定し、決定した順序で前記バンクを指定する前記アクセス要求を出力する。【００１５】
本発明の第２の態様によれば、上記第１の態様のメモリアクセス制御装置において、前記リクエスト受け付け履歴取得部は、少なくとも、前記アクセス要求において指定された前記バンクの情報と、前記メモリに対するアクセス方向を表す情報とを紐づけた前記リクエスト受け付け履歴情報を、前記アービタによって受け付けられたそれぞれの前記アクセス要求ごとに記憶し、前記高優先バスマスタは、前記リクエスト受け付け履歴情報に含まれる前記バンクの情報に基づいて、それぞれの前記アクセス要求によって指定する前記バンクの順序を、同一の前記バンクへの所定の時間内でのアクセスを回避する順序に決定してもよい。【００１６】
本発明の第３の態様によれば、上記第２の態様のメモリアクセス制御装置において、前記リクエスト受け付け履歴取得部は、さらに、前記アービタによって前記アクセス要求が受け付けられたタイミングを表す情報を取得し、取得したタイミングを表す情報を、対応する前記リクエスト受け付け履歴情報に紐づけて、前記リクエスト受け付け履歴情報として記憶してもよい。【００１７】
本発明の第４の態様によれば、上記第３の態様のメモリアクセス制御装置において、前記リクエスト受け付け履歴取得部は、前記アービタによって最後に受け付けられた前記アクセス要求から遡った予め定めた数、または現時点から過去の予め定めた一定期間の前記リクエスト受け付け履歴情報を記憶してもよい。【００１８】
本発明の第５の態様によれば、上記第４の態様のメモリアクセス制御装置において、前記リクエスト受け付け履歴取得部は、前記所定の時間に基づいて、前記リクエスト受け付け履歴情報を記憶する期間を設定してもよい。【００１９】
本発明の第６の態様によれば、上記第１の態様から上記第５の態様のいずれか一態様のメモリアクセス制御装置において、前記高優先バスマスタは、それぞれの前記アクセス要求によって指定する前記バンクの順序を決定する処理を開始するときから、最初に前記アクセス要求を出力するまでの期間中に、他の前記バスマスタから入力された前記アクセス要求の受け付けのマスクを指示するリクエスト受け付けマスク信号を出力し、前記アービタは、前記リクエスト受け付けマスク信号に応じて、前記高優先バスマスタ以外の他の前記バスマスタから入力された前記アクセス要求をマスクしてもよい。【００２０】
本発明の第７の態様によれば、上記第６の態様のメモリアクセス制御装置において、前記アービタは、さらに、前記高優先バスマスタからそれぞれの前記アクセス要求が出力されている期間中に、他の前記バスマスタから入力された前記アクセス要求をマスクしてもよい。【００２１】
本発明の第８の態様によれば、画像処理装置は、アドレス空間が複数のバンクに分けられたメモリへのアクセスを要求するアクセス要求を出力する複数のバスマスタと、前記メモリが接続され、前記バスマスタのそれぞれから出力された前記アクセス要求を調停し、受け付けた前記アクセス要求に応じて前記メモリへのアクセスを制御するアービタと、前記アービタによって受け付けられた複数の前記アクセス要求に関する情報を取得してリクエスト受け付け履歴情報として記憶し、記憶したそれぞれの前記リクエスト受け付け履歴情報を出力するリクエスト受け付け履歴取得部と、を備え、前記複数のバスマスタの内、優先度が高い少なくとも１つの前記バスマスタを高優先バスマスタとしたとき、前記高優先バスマスタは、前記メモリの複数の前記バンクに連続してアクセスする際に、前記リクエスト受け付け履歴情報を参照して、それぞれの前記アクセス要求によって指定する前記バンクの順序を決定し、決定した順序で前記バンクを指定する前記アクセス要求を出力するメモリアクセス制御装置、を備える。【００２２】
本発明の第９の態様によれば、撮像装置は、アドレス空間が複数のバンクに分けられたメモリへのアクセスを要求するアクセス要求を出力する複数のバスマスタと、前記メモリが接続され、前記バスマスタのそれぞれから出力された前記アクセス要求を調停し、受け付けた前記アクセス要求に応じて前記メモリへのアクセスを制御するアービタと、前記アービタによって受け付けられた複数の前記アクセス要求に関する情報を取得してリクエスト受け付け履歴情報として記憶し、記憶したそれぞれの前記リクエスト受け付け履歴情報を出力するリクエスト受け付け履歴取得部と、を備え、前記複数のバスマスタの内、優先度が高い少なくとも１つの前記バスマスタを高優先バスマスタとしたとき、前記高優先バスマスタは、前記メモリの複数の前記バンクに連続してアクセスする際に、前記リクエスト受け付け履歴情報を参照して、それぞれの前記アクセス要求によって指定する前記バンクの順序を決定し、決定した順序で前記バンクを指定する前記アクセス要求を出力するメモリアクセス制御装置を備える画像処理装置、を備える。
【発明の効果】
【００２３】
上記各態様によれば、複数の処理ブロックで共有するＤＲＡＭに対するアクセスの効率を高めることができるメモリアクセス制御装置、画像処理装置、および撮像装置を提供することができるという効果が得られる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施形態におけるメモリアクセス制御装置を備えた画像処理装置を搭載した撮像装置の概略構成を示したブロック図である。
【図２】本発明の第１の実施形態におけるメモリアクセス制御装置の概略構成を示したブロック図である。
【図３】本発明の第１の実施形態におけるメモリアクセス制御装置を構成するＤＭＡバス調停部の概略構成を示したブロック図である。
【図４】本発明の第１の実施形態におけるメモリアクセス制御装置を構成するＤＭＡバス調停部に備えたリクエスト受け付け履歴取得部の構成の一例を模式的に示した図である。
【図５】本発明の第１の実施形態におけるメモリアクセス制御装置を構成するバスマスタの概略構成を示したブロック図である。
【図６】本発明の第１の実施形態におけるメモリアクセス制御装置を構成するバスマスタに備えたアドレス順序生成部がアドレスの順序を決定する処理を説明する図である。
【図７】本発明の第１の実施形態におけるメモリアクセス制御装置によるＤＲＡＭのアクセスタイミングの一例を示したタイミングチャートである。
【図８】本発明の第１の実施形態におけるメモリアクセス制御装置を構成するバスマスタに備えたアドレス順序生成部がアドレスの順序を決定する別の処理を説明する図である。
【図９】本発明の第１の実施形態におけるメモリアクセス制御装置を構成するバスマスタに備えたアドレス順序生成部がアドレスの順序を決定するさらに別の処理を説明する図である。
【図１０】本発明の第２の実施形態におけるメモリアクセス制御装置の概略構成を示したブロック図である。
【図１１】本発明の第２の実施形態におけるメモリアクセス制御装置を構成する高優先バスマスタの概略構成を示したブロック図である。
【図１２】本発明の第２の実施形態におけるメモリアクセス制御装置を構成する高優先バスマスタの動作タイミングの一例を示したタイミングチャートである。
【発明を実施するための形態】
【００２５】
（第１の実施形態）
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の説明においては、本発明の第１の実施形態のメモリアクセス制御装置が、例えば、静止画用カメラや動画用カメラなどの撮像装置に搭載されている画像処理装置に備えられている場合について説明する。図１は、本発明の第１の実施形態におけるメモリアクセス制御装置を備えた画像処理装置を搭載した撮像装置の概略構成を示したブロック図である。
【００２６】
図１に示した撮像装置１は、イメージセンサ１０と、画像処理装置２０と、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０と、表示装置４０と、を備えている。また、画像処理装置２０は、撮像インターフェース部２２１と、画像処理部２２２と、動画コーデック部２２３と、表示インターフェース部２２４と、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）バス調停部２３０と、を備えている。画像処理装置２０では、撮像インターフェース部２２１と、画像処理部２２２と、動画コーデック部２２３と、表示インターフェース部２２４と、ＤＭＡバス調停部２３０とのそれぞれが、共通のデータバスであるＤＭＡバス２１０に接続されている。なお、図１に示した撮像装置１では、撮像インターフェース部２２１または表示インターフェース部２２４と、ＤＭＡバス調停部２３０との構成が、本発明のメモリアクセス制御装置に相当する。
【００２７】
撮像装置１は、イメージセンサ１０によって被写体の静止画像または動画像を撮影する。そして、撮像装置１は、撮影した静止画像に応じた表示画像を表示装置４０に表示させる。また、撮像装置１は、撮影した動画像に応じた表示画像を表示装置４０に表示させる。なお、撮像装置１は、撮影した静止画像や動画像に応じた記録画像を、不図示の記録媒体に記録させることもできる。
【００２８】
イメージセンサ１０は、撮像装置１に備えた不図示のレンズによって結像された被写体の光学像を光電変換する固体撮像装置である。例えば、イメージセンサ１０は、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ：電荷結合素子）イメージセンサや、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ：相補型金属酸化膜半導体）イメージセンサに代表される固体撮像装置である。イメージセンサ１０は、撮像した被写体の光学像に応じた画素信号を、画像処理装置２０に備えた撮像インターフェース部２２１に出力する。
【００２９】
ＤＲＡＭ３０は、撮像装置１に備えた画像処理装置２０において処理される様々なデータを記憶するメモリ（データ記憶部）である。ＤＲＡＭ３０は、画像処理装置２０に備えたＤＭＡバス調停部２３０を介してＤＭＡバス２１０に接続されている。ＤＲＡＭ３０は、画像処理装置２０におけるそれぞれの処理段階の画像のデータを記憶する。例えば、ＤＲＡＭ３０は、イメージセンサ１０から出力された画素信号に基づいて撮像インターフェース部２２１が出力した画素のデータを記憶する。また、例えば、ＤＲＡＭ３０は、画像処理装置２０に備えた画像処理部２２２が生成した画像（静止画像や表示画像）のデータ、画像処理装置２０に備えた動画コーデック部２２３が生成した画像（動画像や表示画像）のデータなどのデータを記憶する。なお、ＤＲＡＭ３０は、画像処理装置２０に備えた画像処理部２２２や動画コーデック部２２３が生成した記録画像のデータなども記憶する。
【００３０】
表示装置４０は、画像処理装置２０に備えた表示インターフェース部２２４から出力された表示画像を表示する表示装置である。表示装置４０には、表示する表示画像の大きさ、つまり、画素数が異なる様々な表示装置がある。例えば、表示装置４０には、ＶＧＡ（６４０×４８０）サイズの画像を表示するＴＦＴ（薄膜トランジスター：Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ）液晶ディスプレイ（ＬＣＤ：Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）や、ＥＶＦ（Ｅｌｅｃｔｒｏｎｉｃ  Ｖｉｅｗ  Ｆｉｎｄｅｒ：電子ビューファインダ）など、撮像装置１に搭載され、撮影する被写体を確認するためのビューファインダとして動作する小型の表示装置がある。また、例えば、表示装置４０には、フルＨＤ（１９２０×１０８０）サイズの画像を表示するＨＤＴＶ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  ＴｅｌｅＶｉｓｉｏｎ）や、４Ｋ２Ｋ（３８４０×２１６０）サイズの画像を表示するＵＨＤＴＶ（Ｕｌｔｒａ  Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  ＴｅｌｅＶｉｓｉｏｎ）など、撮像装置１に着脱できる構成であり、静止画像や動画像に応じた表示画像を表示して確認するための大型の表示装置もある。
【００３１】
画像処理装置２０は、イメージセンサ１０から出力された画素信号に対して予め定めた画像処理を行って、静止画像や動画像を生成する。また、画像処理装置２０は、生成した静止画像や動画像に応じた表示画像や記録画像を生成する。そして、画像処理装置２０は、生成した表示画像を表示装置４０に表示させる。また、画像処理装置２０は、生成した静止画像や動画像に応じた記録画像を生成し、生成した記録画像を不図示の記録媒体に記録させることもできる。
【００３２】
ＤＭＡバス調停部２３０は、ＤＭＡバス２１０に接続されている画像処理装置２０内のそれぞれの構成要素からのＤＭＡによるＤＲＡＭ３０へのアクセス要求（ＤＭＡ要求）を調停するアービタである。ＤＭＡバス調停部２３０は、それぞれの構成要素からのＤＲＡＭ３０へのＤＭＡ要求を調停した結果、ＤＭＡ要求を受け付けた構成要素に、ＤＭＡ要求を受け付けたことを通知するためのＤＭＡ許可を出力する。また、ＤＭＡバス調停部２３０は、ＤＭＡ要求を受け付けた構成要素（ＤＭＡ許可を通知した構成要素）とＤＲＡＭ３０との間のＤＭＡバス２１０を介したデータの受け渡し、つまり、ＤＭＡ転送を制御する。より具体的には、ＤＭＡバス調停部２３０は、ＤＭＡ要求を受け付けた構成要素がＤＭＡバス２１０に出力したデータのＤＲＡＭ３０への転送（書き込み）、およびＤＲＡＭ３０から取得（読み出し）したデータのＤＭＡ要求を受け付けた構成要素への出力を制御する。
【００３３】
また、ＤＭＡバス調停部２３０は、受け付けたＤＭＡ要求に関する情報を、履歴として記憶する機能を備えている。ＤＭＡバス調停部２３０が履歴として記憶するＤＭＡ要求の情報（以下、「リクエスト受け付け履歴情報」という）には、受け付けたＤＭＡ要求ごとに、少なくとも、アクセスするＤＲＡＭ３０の記憶領域を表すアドレス（より具体的には、ＤＲＡＭ３０のアドレス空間を分けたバンクを表すアドレス（以下、「バンクアドレス」という））の情報と、ＤＲＡＭ３０に対するアクセス方向（書き込み：ライト、または読み出し：リード）を表す情報とが含まれている。ＤＭＡバス調停部２３０は、予め定めた数（例えば、現時点から過去の１０回分など）、または予め定めた一定期間（例えば、現時点から過去の一定期間）のリクエスト受け付け履歴情報を記憶する。なお、リクエスト受け付け履歴情報に含まれる現時点から過去の情報として、上述したバンクアドレスの情報およびアクセス方向を表す情報に加えて、現時点から過去にＤＭＡ要求を受け付けたタイミングを表す情報が含まれていてもよい。そして、ＤＭＡバス調停部２３０は、記憶したリクエスト受け付け履歴情報を、それぞれの構成要素に出力する。
【００３４】
撮像インターフェース部２２１は、イメージセンサ１０から出力された画素信号のデータをＤＲＡＭ３０に記憶させる（書き込む）処理ブロックである。撮像インターフェース部２２１は、画素信号のデータをＤＲＡＭ３０に記憶させる（書き込む）際に、ＤＭＡ転送によってＤＲＡＭ３０にアクセスするバスマスタである。撮像インターフェース部２２１は、イメージセンサ１０から出力された画素信号のデータ（以下、「入力画像データ」という）を一時的に保存する。そして、撮像インターフェース部２２１は、保存した入力画像データをＤＲＡＭ３０に出力して記憶させる（書き込む）際に、まず、ＤＭＡ要求と、入力画像データを記憶させるＤＲＡＭ３０の記憶領域を指定するＤＭＡアドレスと、ＤＲＡＭ３０に対するアクセス方向（ライトアクセス）を指定するＤＭＡライト信号とを、ＤＭＡバス調停部２３０に出力する。そして、撮像インターフェース部２２１は、出力したＤＭＡ要求がＤＭＡバス調停部２３０に受け付けられた後に、つまり、ＤＭＡバス調停部２３０からＤＭＡ許可が通知された後に、一時的に保存した入力画像データを、ＤＭＡバス調停部２３０に出力してＤＲＡＭ３０に出力して記憶させる（書き込ませる）。
【００３５】
なお、撮像インターフェース部２２１は、イメージセンサ１０から出力された画素信号に対して予め定めた撮像処理を施して生成した画像のデータを、入力画像データとしてＤＭＡバス調停部２３０を介してＤＲＡＭ３０に出力する構成であってもよい。この構成の場合、撮像インターフェース部２２１は、一時的に保存した入力画像データをＤＲＡＭ３０に出力する際に撮像処理を施す構成であってもよいし、イメージセンサ１０から出力された画素信号に対して撮像処理を施してから一時的に保存する構成であってもよい。なお、撮像インターフェース部２２１がイメージセンサ１０から出力された画素信号に対して施す撮像処理は、キズ補正やシェーディング補正などの、いわゆる、前処理である。しかし、本発明においては、撮像インターフェース部２２１がイメージセンサ１０から出力された画素信号に対して施す撮像処理に関しては、特に制限はしない。
【００３６】
また、撮像インターフェース部２２１は、ＤＭＡバス調停部２３０から出力されたリクエスト受け付け履歴情報を参照して、ＤＭＡ要求を出力する順番を変更する機能を備えている。より具体的には、撮像インターフェース部２２１は、ＤＭＡ要求と共にＤＭＡバス調停部２３０に出力するＤＭＡアドレスを、リクエスト受け付け履歴情報においてバンクビジー状態になっていることが表されているバンクを回避する、つまり、すでにアクセスされてバンクビジー状態になっているバンクと異なるバンクを指定するＤＭＡアドレスに変更する機能を備えている。この機能によって、撮像インターフェース部２２１は、同一のバンクにアクセスする場合には所定の時間（一定時間）を空ける必要があるというＤＲＡＭ３０おけるアクセスの制約を回避した順番でＤＲＡＭ３０にアクセスして、入力画像データを記憶させる（書き込ませる）ＤＭＡ転送を行う。
【００３７】
画像処理部２２２は、ＤＲＡＭ３０に記憶された入力画像データを取得し（読み出し）、取得した入力画像データに対して予め定めた画像処理を施して生成した静止画像のデータ（以下、「静止画像データ」という）をＤＲＡＭ３０に記憶させる（書き込む）処理ブロックである。画像処理部２２２は、ＤＲＡＭ３０から入力画像データを取得する（読み出す）際、および静止画像データをＤＲＡＭ３０に記憶させる（書き込む）際に、ＤＭＡ転送によってＤＲＡＭ３０にアクセスするバスマスタである。画像処理部２２２は、ＤＲＡＭ３０から入力画像データを取得する（読み出す）際に、まず、ＤＭＡ要求と、入力画像データを取得するＤＲＡＭ３０の記憶領域を指定するＤＭＡアドレスと、ＤＲＡＭ３０に対するアクセス方向（リードアクセス）を指定するＤＭＡリード信号とを、ＤＭＡバス調停部２３０に出力する。そして、画像処理部２２２は、出力したＤＭＡ要求がＤＭＡバス調停部２３０に受け付けられた後に、ＤＭＡバス調停部２３０がＤＲＡＭ３０から読み出して出力された入力画像データを一時的に保存する。また、画像処理部２２２は、保存した入力画像データに対して予め定めた画像処理を施して生成した静止画像データをＤＲＡＭ３０に出力して記憶させる（書き込む）際に、まず、ＤＭＡ要求と、静止画像データを記憶させるＤＲＡＭ３０の記憶領域を指定するＤＭＡアドレスと、ＤＲＡＭ３０に対するアクセス方向（ライトアクセス）を指定するＤＭＡライト信号とを、ＤＭＡバス調停部２３０に出力する。そして、画像処理部２２２は、出力したＤＭＡ要求がＤＭＡバス調停部２３０に受け付けられた後に、静止画像データを、ＤＭＡバス調停部２３０に出力してＤＲＡＭ３０に出力して記憶させる（書き込ませる）。
【００３８】
なお、画像処理部２２２は、静止画像データをＤＲＡＭ３０に出力する際に、一時的に保存した入力画像データに対して画像処理を施す構成であってもよいし、ＤＭＡバス調停部２３０から出力された入力画像データに対して画像処理を施して静止画像データを生成してから一時的に保存する構成であってもよい。画像処理部２２２が入力画像データに対して施す画像処理は、ノイズ除去処理、ＹＣ変換処理、リサイズ処理、ＪＰＥＧ圧縮伸張処理など、静止画像における各種の表示用の画像処理や記録用の画像処理である。しかし、本発明においては、画像処理部２２２が入力画像データに対して施す画像処理に関しては、特に制限はしない。
【００３９】
また、画像処理部２２２も、撮像インターフェース部２２１と同様に、ＤＭＡ要求と共にＤＭＡバス調停部２３０に出力するＤＭＡアドレスを、ＤＭＡバス調停部２３０から出力されたリクエスト受け付け履歴情報を参照して、すでにアクセスされてバンクビジー状態になっているバンクと異なるバンクを指定するＤＭＡアドレスに変更する機能を備えている。この機能によって、画像処理部２２２も、撮像インターフェース部２２１と同様に、ＤＲＡＭ３０おけるアクセスの制約を回避した順番でＤＲＡＭ３０にアクセスして、入力画像データの取得（読み出し）と、静止画像データの記憶（書き込み）とのＤＭＡ転送を行う。
【００４０】
動画コーデック部２２３は、ＤＲＡＭ３０に記憶された入力画像データを取得し（読み出し）、取得した入力画像データに対して予め定めた画像処理を施して生成した動画像のデータ（以下、「動画像データ」という）をＤＲＡＭ３０に記憶させる（書き込む）処理ブロックである。動画コーデック部２２３は、ＤＲＡＭ３０から入力画像データを取得する（読み出す）際、および動画像データをＤＲＡＭ３０に記憶させる（書き込む）際に、ＤＭＡ転送によってＤＲＡＭ３０にアクセスするバスマスタである。動画コーデック部２２３は、ＤＲＡＭ３０から入力画像データを取得する（読み出す）際に、まず、ＤＭＡ要求と、入力画像データを取得するＤＲＡＭ３０の記憶領域を指定するＤＭＡアドレスと、ＤＲＡＭ３０に対するアクセス方向（リードアクセス）を指定するＤＭＡリード信号とを、ＤＭＡバス調停部２３０に出力する。そして、動画コーデック部２２３は、出力したＤＭＡ要求がＤＭＡバス調停部２３０に受け付けられた後に、ＤＭＡバス調停部２３０がＤＲＡＭ３０から読み出して出力された入力画像データを一時的に保存する。また、動画コーデック部２２３は、保存した入力画像データに対して予め定めた画像処理を施して生成した動画像データをＤＲＡＭ３０に出力して記憶させる（書き込む）際に、まず、ＤＭＡ要求と、動画像データを記憶させるＤＲＡＭ３０の記憶領域を指定するＤＭＡアドレスと、ＤＲＡＭ３０に対するアクセス方向（ライトアクセス）を指定するＤＭＡライト信号とを、ＤＭＡバス調停部２３０に出力する。そして、動画コーデック部２２３は、出力したＤＭＡ要求がＤＭＡバス調停部２３０に受け付けられた後に、動画像データを、ＤＭＡバス調停部２３０に出力してＤＲＡＭ３０に出力して記憶させる（書き込ませる）。
【００４１】
なお、動画コーデック部２２３は、動画像データをＤＲＡＭ３０に出力する際に、一時的に保存した入力画像データに対して画像処理を施す構成であってもよいし、ＤＭＡバス調停部２３０から出力された入力画像データに対して画像処理を施して動画像データを生成してから一時的に保存する構成であってもよい。動画コーデック部２２３が入力画像データに対して施す画像処理は、ＭＰＥＧ圧縮伸張処理、Ｈ．２６４圧縮伸張処理など、動画像における各種の表示用の画像処理や記録用の画像処理である。しかし、本発明においては、動画コーデック部２２３が入力画像データに対して施す画像処理に関しては、特に制限はしない。
【００４２】
また、動画コーデック部２２３も、撮像インターフェース部２２１や画像処理部２２２と同様に、ＤＭＡ要求と共にＤＭＡバス調停部２３０に出力するＤＭＡアドレスを、ＤＭＡバス調停部２３０から出力されたリクエスト受け付け履歴情報を参照して、すでにアクセスされてバンクビジー状態になっているバンクと異なるバンクを指定するＤＭＡアドレスに変更する機能を備えている。この機能によって、動画コーデック部２２３も、画像処理部２２２と同様に、ＤＲＡＭ３０おけるアクセスの制約を回避した順番でＤＲＡＭ３０にアクセスして、入力画像データの取得（読み出し）と、動画像データの記憶（書き込み）とのＤＭＡ転送を行う。
【００４３】
表示インターフェース部２２４は、ＤＲＡＭ３０に記憶された静止画像データや動画像データを取得し（読み出し）、取得した画像データに応じた表示画像を表示装置４０に表示させる処理ブロックである。表示インターフェース部２２４は、ＤＲＡＭ３０から静止画像データや動画像データを取得する（読み出す）際に、ＤＭＡ転送によってＤＲＡＭ３０にアクセスするバスマスタである。表示インターフェース部２２４は、ＤＲＡＭ３０から画像データを取得する（読み出す）際に、まず、ＤＭＡ要求と、静止画像データまたは動画像データを取得するＤＲＡＭ３０の記憶領域を指定するＤＭＡアドレスと、ＤＲＡＭ３０に対するアクセス方向（リードアクセス）を指定するＤＭＡリード信号とを、ＤＭＡバス調停部２３０に出力する。そして、表示インターフェース部２２４は、出力したＤＭＡ要求がＤＭＡバス調停部２３０に受け付けられた後に、ＤＭＡバス調停部２３０がＤＲＡＭ３０から読み出して出力された画像データを一時的に保存する。そして、表示インターフェース部２２４は、保存した画像データに応じた表示画像を表示装置４０に出力して表示させる。
【００４４】
なお、表示インターフェース部２２４は、ＤＭＡバス調停部２３０から出力された画像データに対して予め定めた表示処理を施して生成した表示画像を表示装置４０に出力する構成であってもよい。この構成の場合、表示インターフェース部２２４は、一時的に保存した画像データを表示装置４０に出力する際に表示処理を施す構成であってもよいし、ＤＭＡバス調停部２３０から出力された画像データに対して表示処理を施してから一時的に保存する構成であってもよい。なお、表示インターフェース部２２４がＤＭＡバス調停部２３０から出力された画素信号に対して施す表示処理は、例えば、撮影日時などの静止画像や動画像に関する様々な情報を表示させるためのオンスクリーンディスプレイ（Ｏｎ  Ｓｃｒｅｅｎ  Ｄｉｓｐｌａｙ：ＯＳＤ）画像を重畳する処理などである。しかし、本発明においては、表示インターフェース部２２４がＤＭＡバス調停部２３０から出力された画素信号に対して施す表示処理に関しては、特に制限はしない。
【００４５】
また、表示インターフェース部２２４も、撮像インターフェース部２２１、画像処理部２２２、および動画コーデック部２２３と同様に、ＤＭＡ要求と共にＤＭＡバス調停部２３０に出力するＤＭＡアドレスを、ＤＭＡバス調停部２３０から出力されたリクエスト受け付け履歴情報を参照して、すでにアクセスされてバンクビジー状態になっているバンクと異なるバンクを指定するＤＭＡアドレスに変更する機能を備えている。この機能によって、表示インターフェース部２２４も、撮像インターフェース部２２１と同様に、ＤＲＡＭ３０おけるアクセスの制約を回避した順番でＤＲＡＭ３０にアクセスして、静止画像データや動画像データを取得する（読み出す）ＤＭＡ転送を行う。
【００４６】
このような構成によって、撮像装置１は、イメージセンサ１０によって被写体の静止画像や動画像を撮影し、撮影した静止画像や動画像に応じた表示画像を表示装置４０に表示させる。また、撮像装置１は、イメージセンサ１０によって撮影した静止画像や動画像に応じた記録画像を、不図示の記録媒体に記録させることもできる。
【００４７】
撮像装置１においては、画像処理装置２０に備えたそれぞれの処理ブロックであるバスマスタと、アービタであるＤＭＡバス調停部２３０とによって、本発明の第１の実施形態のメモリアクセス制御装置が構成される。より具体的には、撮像装置１においては、受け付けたＤＭＡ要求に関する履歴（リクエスト受け付け履歴情報）を記憶するアービタの機能と、リクエスト受け付け履歴情報を参照してＤＭＡ要求を出力する順番を変更するバスマスタの機能とによって、本発明の第１の実施形態のメモリアクセス制御装置の動作が実現される。さらに具体的には、撮像装置１において優先的にＤＭＡ転送を行う最も優先度が高いバスマスタ（以下、「高優先バスマスタ」という）とアービタとの組み合わせによって、本発明の第１の実施形態のメモリアクセス制御装置が構成される。
【００４８】
なお、撮像装置１では、撮像装置１が実行する動作、いわゆる、動作モードによって、高優先バスマスタとなるバスマスタが異なる。このため、撮像装置１では、それぞれの動作モードごとに、本発明の第１の実施形態のメモリアクセス制御装置を構成するバスマスタとアービタとの組み合わせが異なる。
【００４９】
例えば、撮像装置１が、複数の静止画像を連続して高速に撮影する高速連写の動作を行う場合、撮像インターフェース部２２１は、イメージセンサ１０から出力されたそれぞれのフレームの入力画像データを、ＤＭＡ転送によってＤＲＡＭ３０に逐次記憶させる（書き込む）必要があるバスマスタとなる。この場合、撮像インターフェース部２２１が、優先的にＤＭＡ転送を行う高優先バスマスタとなり、撮像インターフェース部２２１とＤＭＡバス調停部２３０との組み合わせによって、本発明の第１の実施形態のメモリアクセス制御装置が構成される。また、例えば、撮像装置１が、静止画像や動画像を撮影する際に、撮影する被写体を確認するための表示画像、いわゆる、ライブビュー画像（スルー画像）を、例えば、ＥＶＦとＵＨＤＴＶとに同時に表示させる表示動作を行う場合、表示インターフェース部２２４は、ＤＲＡＭ３０に記憶されたそれぞれのフレームの表示用の画像データを、ＤＭＡ転送によってＤＲＡＭ３０から逐次取得する（読み出す）必要があるバスマスタとなる。この場合、表示インターフェース部２２４が、優先的にＤＭＡ転送を行う高優先バスマスタとなり、表示インターフェース部２２４とＤＭＡバス調停部２３０との組み合わせによって、本発明の第１の実施形態のメモリアクセス制御装置が構成される。
【００５０】
このように、撮像装置１においては、動作モードに応じて、画像処理装置２０に備えたいずれかのバスマスタ（処理ブロック）とアービタ（ＤＭＡバス調停部２３０）との組み合わせによって、本発明の第１の実施形態のメモリアクセス制御装置が構成される。
【００５１】
なお、撮像装置１においては、それぞれの動作モードにおいて高優先バスマスタとなるバスマスタ（処理ブロック）が１つであるとは限らない。従って、本発明の第１の実施形態のメモリアクセス制御装置は、１つのバスマスタ（処理ブロック）とアービタ（ＤＭＡバス調停部２３０）とによる構成に限定されるものではなく、複数のバスマスタとアービタとから構成されてもよい。例えば、撮像装置１が、撮影した被写体の動画像をリアルタイムに不図示の記録媒体に記録させる動画記録の動作を行う場合には、撮像インターフェース部２２１と、動画コーデック部２２３と、不図示の記録処理部とが、逐次ＤＭＡ転送を行う必要があるバスマスタとなる。この場合、撮像インターフェース部２２１、動画コーデック部２２３、および不図示の記録処理部のそれぞれが高優先バスマスタとなり、この複数の高優先バスマスタとＤＭＡバス調停部２３０との組み合わせによって、本発明の第１の実施形態のメモリアクセス制御装置が構成されることになる。
【００５２】
次に、本発明の第１の実施形態のメモリアクセス制御装置の構成および動作について説明する。図２は、本発明の第１の実施形態におけるメモリアクセス制御装置の概略構成を示したブロック図である。以下の説明においては、本発明の第１の実施形態におけるメモリアクセス制御装置を、「メモリアクセス制御装置２００」という。図２には、ｎ個（ｎ＝自然数、正の整数）のバスマスタ（バスマスタ２２０−１〜バスマスタ２２０−ｎ）とＤＭＡバス調停部２３０とによって構成され、ＤＲＡＭ３０にアクセスするメモリアクセス制御装置２００の概略構成の一例を示している。以下の説明においては、バスマスタ２２０−１〜バスマスタ２２０−ｎのそれぞれを区別せずに表すときには、「バスマスタ２２０」という。なお、撮像装置１においては、バスマスタ２２０のそれぞれが、画像処理装置２０に備えたいずれかの処理ブロックに対応する。
【００５３】
それぞれのバスマスタ２２０は、ＤＭＡ転送を開始する際に、ＤＲＡＭ３０へのアクセスを要求（ＤＭＡ要求）することを表すＤＭＡ要求信号ＤＭＡＲＥＱと、アクセスするＤＲＡＭ３０のアドレスを表すＤＭＡアドレスＤＭＡＡＤと、ＤＲＡＭ３０に対するアクセス方向を指定するＤＭＡリードライト信号ＤＭＡＲＷとを、ＤＭＡバス調停部２３０に出力する。
【００５４】
なお、図２においては、それぞれのバスマスタ２２０がＤＭＡバス調停部２３０にＤＭＡ要求として出力するＤＭＡ要求信号ＤＭＡＲＥＱのみを示している。そして、図２においては、それぞれのＤＭＡ要求信号ＤＭＡＲＥＱの信号名に続く「−」の後に、ＤＭＡ要求信号ＤＭＡＲＥＱを出力するバスマスタ２２０を区別するための数字を示している。より具体的には、バスマスタ２２０−１が出力するＤＭＡ要求信号ＤＭＡＲＥＱは、信号名に続く「−」の後に「１」を示して、「ＤＭＡ要求信号ＤＭＡＲＥＱ−１」と表している。また、バスマスタ２２０−２が出力するＤＭＡ要求信号ＤＭＡＲＥＱは、信号名に続く「−」の後に「２」を示して、「ＤＭＡ要求信号ＤＭＡＲＥＱ−２」と表している。また、バスマスタ２２０−ｎが出力するＤＭＡ要求信号ＤＭＡＲＥＱは、信号名に続く「−」の後に「ｎ」を示して、「ＤＭＡ要求信号ＤＭＡＲＥＱ−ｎ」と表している。
【００５５】
なお、以下の説明においては、それぞれのバスマスタ２２０がＤＭＡ要求信号ＤＭＡＲＥＱと共にＤＭＡバス調停部２３０に出力するＤＭＡアドレスＤＭＡＡＤおよびＤＭＡリードライト信号ＤＭＡＲＷのそれぞれにも、ＤＭＡ要求信号ＤＭＡＲＥＱと同様に、信号名に続く「−」の後にバスマスタ２２０を区別するための数字を示して説明する。
【００５６】
なお、それぞれのバスマスタ２２０は、ＤＭＡ要求信号ＤＭＡＲＥＱと、ＤＭＡアドレスＤＭＡＡＤと、ＤＭＡリードライト信号ＤＭＡＲＷとの他にも、例えば、バースト長などのＤＭＡ転送においてＤＲＡＭ３０との間での受け渡しをするデータの数や、現在の緊急度などの情報も、ＤＭＡ要求信号ＤＭＡＲＥＱと共にＤＭＡバス調停部２３０に出力してもよい。
【００５７】
ＤＭＡバス調停部２３０は、それぞれのバスマスタ２２０から出力されたＤＭＡ要求を調停し、ＤＭＡ要求に応じてＤＲＡＭ３０へのアクセスを受け付けたバスマスタ２２０にＤＭＡ許可を出力する。
【００５８】
なお、図２においては、ＤＭＡバス調停部２３０がそれぞれのバスマスタ２２０にＤＭＡ許可を通知するＤＭＡ許可信号ＤＭＡＡＣＫを示している。そして、図２においては、それぞれのＤＭＡ許可信号ＤＭＡＡＣＫの信号名に続く「−」の後に、ＤＭＡ許可信号ＤＭＡＡＣＫを出力するバスマスタ２２０を区別するための数字を示している。より具体的には、バスマスタ２２０−１に出力するＤＭＡ許可信号ＤＭＡＡＣＫは、信号名に続く「−」の後に「１」を示して、「ＤＭＡ許可信号ＤＭＡＡＣＫ−１」と表している。また、バスマスタ２２０−２に出力するＤＭＡ許可信号ＤＭＡＡＣＫは、信号名に続く「−」の後に「２」を示して、「ＤＭＡ許可信号ＤＭＡＡＣＫ−２」と表している。また、バスマスタ２２０−ｎに出力するＤＭＡ許可信号ＤＭＡＡＣＫは、信号名に続く「−」の後に「ｎ」を示して、「ＤＭＡ許可信号ＤＭＡＡＣＫ−ｎ」と表している。
【００５９】
また、ＤＭＡバス調停部２３０は、受け付けたＤＭＡ要求に関するリクエスト受け付け履歴情報を、それぞれのバスマスタ２２０に出力する。図２には、受け付けたＤＭＡ要求に関する種々の情報を取得し、取得した情報をリクエスト受け付け履歴情報ＲＥＱＨＩＳとしてそれぞれのバスマスタ２２０に出力するリクエスト受け付け履歴取得部２３１を備えた構成のＤＭＡバス調停部２３０を示している。
【００６０】
そして、それぞれのバスマスタ２２０は、ＤＭＡバス調停部２３０からＤＭＡ許可が通知された後、つまり、ＤＭＡバス調停部２３０からＤＭＡ許可信号ＤＭＡＡＣＫが入力されたバスマスタ２２０のみが、要求したＤＭＡ転送（ＤＲＡＭ３０へのアクセス）を開始する。これにより、ＤＭＡバス調停部２３０は、ＤＭＡ要求を受け付けたバスマスタ２２０からのＤＲＡＭ３０へのアクセスに応じて、実際にＤＲＡＭ３０を制御する。つまり、ＤＭＡバス調停部２３０は、ＤＭＡ要求を受け付けたバスマスタ２２０とＤＲＡＭ３０との間でのデータの受け渡し（ＤＭＡ転送）を行う。
【００６１】
次に、メモリアクセス制御装置２００を構成するＤＭＡバス調停部２３０のより詳細な構成および動作について説明する。図３は、本発明の第１の実施形態におけるメモリアクセス制御装置２００を構成するＤＭＡバス調停部２３０の概略構成を示したブロック図である。ＤＭＡバス調停部２３０は、アクセス調停部２３０１と、メモリ制御部２３０２と、マルチプレクサ（ＭＵＸ）２３０３と、アドレス生成部２３０４と、データ制御部２３０５と、リクエスト受け付け履歴取得部２３１と、を備えている。
【００６２】
アクセス調停部２３０１は、それぞれのバスマスタ２２０から出力されたＤＭＡ要求信号ＤＭＡＲＥＱを調停し、ＤＭＡ要求信号ＤＭＡＲＥＱを出力しているそれぞれのバスマスタ２２０の中から、いずれか１つのバスマスタ２２０を選択する。より具体的には、アクセス調停部２３０１は、それぞれのバスマスタ２２０の優先度や、出力したＤＭＡ要求信号ＤＭＡＲＥＱが受け付けられない時間の長さに応じた緊急度などに基づいて、それぞれのバスマスタ２２０から出力されたＤＭＡ要求信号ＤＭＡＲＥＱを調停し、ＤＲＡＭ３０に対するアクセスの効率が最大となるように、それぞれのバスマスタ２２０を順次選択する。なお、アクセス調停部２３０１におけるバスマスタ２２０の選択（調停）方法としては、既存のＤＭＡ調停回路（バスアービタ）における様々な選択（調停）方法を採用することができる。
【００６３】
そして、アクセス調停部２３０１は、選択したバスマスタ２２０を表す選択信号を、マルチプレクサ２３０３に出力する。また、アクセス調停部２３０１は、選択したバスマスタ２２０によるＤＲＡＭ３０に対するアクセス方向を表すアクセス方向信号ＡＣＣＲＷを、メモリ制御部２３０２に出力する。より具体的には、アクセス調停部２３０１は、選択したバスマスタ２２０からＤＭＡ要求信号ＤＭＡＲＥＱと共に出力されたＤＭＡリードライト信号ＤＭＡＲＷに基づいて、選択したバスマスタ２２０によるＤＲＡＭ３０へのアクセスが、ライトアクセス（データの書き込み）であるか、リードアクセス（データの読み出し）であるかを表すアクセス方向信号ＡＣＣＲＷを、メモリ制御部２３０２およびリクエスト受け付け履歴取得部２３１のそれぞれに出力する。
【００６４】
また、アクセス調停部２３０１は、出力したアクセス方向信号ＡＣＣＲＷに応じて実際にＤＲＡＭ３０を制御したときにメモリ制御部２３０２から出力されるアクセス実行信号ＡＣＣＥＸＥに基づいてＤＭＡ許可信号ＤＭＡＡＣＫを生成し、生成したＤＭＡ許可信号ＤＭＡＡＣＫを、選択したバスマスタ２２０に出力する。
【００６５】
図３においては、バスマスタ２２０−１〜バスマスタ２２０−ｎのそれぞれがアクセス調停部２３０１に出力する、ＤＭＡ要求信号ＤＭＡＲＥＱ−１〜ＤＭＡ要求信号ＤＭＡＲＥＱ−ｎ、およびＤＭＡリードライト信号ＤＭＡＲＷ−１〜ＤＭＡリードライト信号ＤＭＡＲＷ−ｎのそれぞれを示している。また、図３においては、アクセス調停部２３０１がバスマスタ２２０−１〜バスマスタ２２０−ｎのそれぞれに出力する、ＤＭＡ許可信号ＤＭＡＡＣＫ−１〜ＤＭＡ許可信号ＤＭＡＡＣＫ−ｎのそれぞれを示している。
【００６６】
メモリ制御部２３０２は、アクセス調停部２３０１から出力されたアクセス方向信号ＡＣＣＲＷに基づいて、アクセス調停部２３０１が選択したバスマスタ２２０からのアクセスに応じて実際にＤＲＡＭ３０にアクセスするための制御信号を生成し、生成した制御信号をＤＲＡＭ３０に出力する。
【００６７】
図３においては、メモリ制御部２３０２がＤＲＡＭ３０に出力する、チップ選択（Ｃｈｉｐ  Ｓｅｌｅｃｔ）信号ＣＳ、行アドレスストローブ（Ｒｏｗ  Ａｄｄｒｅｓｓ  Ｓｔｒｏｂｅ）信号ＲＡＳ、列アドレスストローブ（Ｃｏｌｕｍｎ  Ａｄｄｒｅｓｓ  Ｓｔｒｏｂｅ）信号ＣＡＳ、およびライトイネーブル（Ｗｒｉｔｅ  ｅｎａｂｌｅ）信号ＷＥのそれぞれを示している。
【００６８】
また、メモリ制御部２３０２は、実際にＤＲＡＭ３０に対するアクセスを行ったことを表すアクセス実行信号ＡＣＣＥＸＥを生成し、生成したアクセス実行信号ＡＣＣＥＸＥを、アクセス調停部２３０１およびリクエスト受け付け履歴取得部２３１のそれぞれに出力する。
【００６９】
マルチプレクサ２３０３は、アクセス調停部２３０１から出力された選択信号に従って、アクセス調停部２３０１が選択したバスマスタ２２０からＤＭＡ要求信号ＤＭＡＲＥＱと共に出力されたＤＭＡアドレスＤＭＡＡＤを選択し、選択したＤＭＡアドレスＤＭＡＡＤをアドレス生成部２３０４に出力する。また、マルチプレクサ２３０３は、アクセス調停部２３０１から出力された選択信号に従って、アクセス調停部２３０１が選択したバスマスタ２２０がＤＲＡＭ３０へのライトアクセスを行う際にＤＭＡ要求信号ＤＭＡＲＥＱと共に出力されるＤＭＡ書き込みデータＤＭＡＷＤＡＴＡを選択し、選択したＤＭＡ書き込みデータＤＭＡＷＤＡＴＡをデータ制御部２３０５に出力する。
【００７０】
また、マルチプレクサ２３０３は、アクセス調停部２３０１から出力された選択信号に従って、アクセス調停部２３０１が選択したバスマスタ２２０がＤＲＡＭ３０へのリードアクセスを行った際にデータ制御部２３０５がＤＲＡＭ３０から実際に読み出して出力したデータを、ＤＭＡ読み出しデータＤＭＡＲＤＡＴＡとしてアクセス調停部２３０１が選択したバスマスタ２２０に出力する。
【００７１】
図３においては、バスマスタ２２０−１〜バスマスタ２２０−ｎのそれぞれがマルチプレクサ２３０３に出力する、ＤＭＡアドレスＤＭＡＡＤ−１〜ＤＭＡアドレスＤＭＡＡＤ−ｎ、およびＤＭＡ書き込みデータＤＭＡＷＤＡＴＡ−１〜ＤＭＡ書き込みデータＤＭＡＷＤＡＴＡ−ｎのそれぞれを示している。また、図３においては、マルチプレクサ２３０３がバスマスタ２２０−１〜バスマスタ２２０−ｎのそれぞれに出力する、ＤＭＡ読み出しデータＤＭＡＲＤＡＴＡ−１〜ＤＭＡ読み出しデータＤＭＡＲＤＡＴＡ−ｎのそれぞれを示している。
【００７２】
アドレス生成部２３０４は、マルチプレクサ２３０３から出力されたＤＭＡアドレスＤＭＡＡＤに基づいて、アクセス調停部２３０１が選択したバスマスタ２２０からのアクセスに応じて実際にアクセスするＤＲＡＭ３０のアドレスを生成し、生成したアドレスをＤＲＡＭ３０に出力する。
【００７３】
図３においては、アドレス生成部２３０４がＤＲＡＭ３０およびリクエスト受け付け履歴取得部２３１のそれぞれに出力する、バンクアドレス（Ｂａｎｋ  Ａｄｄｒｅｓｓ）ＢＡと、行列アドレス（Ａｄｄｒｅｓｓ）Ａとのそれぞれを示している。なお、アドレス生成部２３０４は、生成したバンクアドレスＢＡを、リクエスト受け付け履歴取得部２３１にも出力する。
【００７４】
データ制御部２３０５は、アクセス調停部２３０１が選択したバスマスタ２２０がＤＲＡＭ３０へのライトアクセスを行う際に、マルチプレクサ２３０３から出力されたＤＭＡ書き込みデータＤＭＡＷＤＡＴＡを、実際に書き込む（記憶させる）データとしてＤＲＡＭ３０に出力する。また、データ制御部２３０５は、アクセス調停部２３０１が選択したバスマスタ２２０がＤＲＡＭ３０へのリードアクセスを行った際に、ＤＲＡＭ３０から実際に読み出した（取得した）データを、マルチプレクサ２３０３に出力する。
【００７５】
図３においては、データ制御部２３０５がＤＲＡＭ３０との間で受け渡し（読み書き）する、つまり、アクセス調停部２３０１が選択したバスマスタ２２０がＤＲＡＭ３０との間でＤＭＡ転送を行うデータ（Ｄａｔａ）ＤＱを示している。
【００７６】
リクエスト受け付け履歴取得部２３１は、メモリ制御部２３０２から出力されたアクセス実行信号ＡＣＣＥＸＥ、アクセス調停部２３０１から出力されたアクセス方向信号ＡＣＣＲＷ、およびアドレス生成部２３０４から出力されたバンクアドレスＢＡに基づいて、アクセス調停部２３０１が選択したバスマスタ２２０によるＤＭＡ要求に関する情報（リクエスト受け付け履歴情報）を取得する。上述したように、リクエスト受け付け履歴情報としては、少なくとも、受け付けたＤＭＡ要求においてアクセスするＤＲＡＭ３０のバンクアドレスＢＡの情報と、ＤＲＡＭ３０に対するアクセス方向を表す情報とが含まれている。リクエスト受け付け履歴取得部２３１は、バンクアドレスＢＡの情報とアクセス方向を表す情報とのそれぞれの情報を紐づけて記憶する。なお、リクエスト受け付け履歴情報に、ＤＭＡ要求を受け付けたタイミングを表す情報がさらに含まれている場合には、バンクアドレスＢＡの情報と、アクセス方向を表す情報と、ＤＭＡ要求を受け付けたタイミングを表す情報とのそれぞれの情報を紐づけて記憶する。そして、リクエスト受け付け履歴取得部２３１は、記憶したそれぞれの情報を、リクエスト受け付け履歴情報ＲＥＱＨＩＳとして、それぞれのバスマスタ２２０に出力する。
【００７７】
ここで、リクエスト受け付け履歴取得部２３１がリクエスト受け付け履歴情報を取得して記憶する構成について説明する。図４は、本発明の第１の実施形態におけるメモリアクセス制御装置２００を構成するＤＭＡバス調停部２３０に備えたリクエスト受け付け履歴取得部２３１の構成の一例を模式的に示した図である。図４には、バンクアドレスＢＡの情報およびアクセス方向を表す情報に加えて、ＤＭＡ要求を受け付けたタイミングを表す情報を、リクエスト受け付け履歴情報として取得するリクエスト受け付け履歴取得部２３１の構成を示している。リクエスト受け付け履歴取得部２３１は、カウンタ部２３１１と、リクエスト受け付け履歴記憶部２３１２と、を備えている。
【００７８】
カウンタ部２３１１は、ＤＲＡＭ３０が動作するクロック信号に基づいて、ＤＭＡバス調停部２３０が動作を開始したときからの経過時間を計測する時間計測部である。カウンタ部２３１１は、計測した経過時間の情報（以下、「時間Ｔ」という）を、リクエスト受け付け履歴記憶部２３１２に逐次出力する。
【００７９】
なお、カウンタ部２３１１は、ＤＭＡバス調停部２３０が動作を開始したときから、予め定めた期間（時間）を周期的に計測する構成であってもよい。この構成の場合、カウンタ部２３１１が表す時間Ｔは、予め定めた期間（時間）の周期で繰り返されるため、２つの時間を比較したときに、この２つの時間が異なる周期の時間である場合には、時間Ｔが表す時間の前後の関係が逆転していることも考えられる。しかし、カウンタ部２３１１が周期的に計測する予め定めた期間（時間）がわかっていれば、この２つの時間の前後の関係を正しく判定することができる。例えば、カウンタ部２３１１が周期的に計測する予め定めた期間（時間）を、ＤＲＡＭ３０の同一のバンクにアクセスする際に空ける必要がある所定の時間、つまり、ＤＲＡＭ３０がバンクビジー状態であるバンクビジー時間とすることによって、カウンタ部２３１１はバンクビジー時間を周期的に連続して計測するため、バンクビジー時間内における２つの時間の前後の関係を正しく判定することができる。
【００８０】
以下の説明においては、説明を容易にするため、カウンタ部２３１１が、ＤＭＡバス調停部２３０が動作を開始したときからの経過時間を計測するフリーランカウンタの構成であるものとして説明する。従って、カウンタ部２３１１は、時間の前後の関係が逆転していない時間Ｔを、リクエスト受け付け履歴記憶部２３１２に逐次出力する。
【００８１】
リクエスト受け付け履歴記憶部２３１２は、メモリ制御部２３０２からアクセス実行信号ＡＣＣＥＸＥが入力されたタイミングで、アドレス生成部２３０４から出力されたバンクアドレスＢＡ、アクセス調停部２３０１から出力されたアクセス方向信号ＡＣＣＲＷ、およびカウンタ部２３１１から出力された時間Ｔのそれぞれの情報を紐づけて、リクエスト受け付け履歴情報として記憶するデータ記憶部である。リクエスト受け付け履歴記憶部２３１２は、紐づけられたそれぞれの情報を記憶する記憶領域を複数備えた、例えば、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ，Ｆｉｒｓｔ  Ｏｕｔ）形式のメモリで構成されている。
【００８２】
リクエスト受け付け履歴記憶部２３１２は、メモリ制御部２３０２からアクセス実行信号ＡＣＣＥＸＥが入力されるごとに、バンクアドレスＢＡの情報と、アクセス方向信号ＡＣＣＲＷが表すアクセス方向（リードアクセスまたはライトアクセス）の情報と、時間Ｔの情報（つまり、アクセス実行信号ＡＣＣＥＸＥが入力された時間の情報）とのそれぞれの情報を紐づけて、記憶領域に記憶する。そして、リクエスト受け付け履歴記憶部２３１２は、それぞれの記憶領域に紐づけて記憶したそれぞれの情報を、リクエスト受け付け履歴情報ＲＥＱＨＩＳとしてそれぞれのバスマスタ２２０に出力する。
【００８３】
図４には、Ｎ段（Ｎ＝自然数、正の整数）の記憶領域を備えたＦＩＦＯ形式で構成され、それぞれの記憶領域ごとにバンクアドレスＢＡ、アクセス方向ＲＷ、および時間Ｔのそれぞれの情報を紐づけて記憶する構成のリクエスト受け付け履歴記憶部２３１２の一例を示している。なお、図４においては、それぞれの情報に続く「−」の後に、記憶領域の番号を表す数字を示している。より具体的には、リクエスト受け付け履歴記憶部２３１２に備えた１番目の記憶領域に記憶したそれぞれの情報に続く「−」の後に「１」を示して、「バンクアドレスＢＡ−１」、「アクセス方向ＲＷ−１」、「時間Ｔ−１」と表している。また、リクエスト受け付け履歴記憶部２３１２に備えた２番目の記憶領域に記憶したそれぞれの情報に続く「−」の後に「２」を示して、「バンクアドレスＢＡ−２」、「アクセス方向ＲＷ−２」、「時間Ｔ−２」と表している。また、リクエスト受け付け履歴記憶部２３１２に備えたＮ番目の記憶領域に記憶したそれぞれの情報に続く「−」の後に「Ｎ」を示して、「バンクアドレスＢＡ−Ｎ」、「アクセス方向ＲＷ−Ｎ」、「時間Ｔ−Ｎ」と表している。
【００８４】
なお、リクエスト受け付け履歴記憶部２３１２は、少なくとも、ＤＲＡＭ３０におけるバンクビジー時間に基づいて設定された期間（例えば、バンクビジー時間と同じ期間）のリクエスト受け付け履歴情報を記憶することができる数の記憶領域を備えた構成にしてもよい。この構成では、リクエスト受け付け履歴記憶部２３１２に備える記憶領域、つまり、ＦＩＦＯ形式のメモリの記憶容量を削減することができる。そして、この構成のリクエスト受け付け履歴記憶部２３１２では、バンクビジー時間が経過した後のリクエスト受け付け履歴情報、つまり、ＤＲＡＭ３０のそれぞれのバンクに対してアクセスした過去のそれぞれの情報を、最新の情報で上書きして破棄するように動作する。この動作であっても、リクエスト受け付け履歴取得部２３１は、より多くの記憶領域を備えた構成と同様の機能を実現することができる。これは、ＤＲＡＭ３０におけるバンクビジー時間は、ＤＲＡＭ３０の規格によって予め定められており、ＤＲＡＭ３０のそれぞれのバンクに対してバンクビジー時間よりも以前にアクセスしたリクエスト受け付け履歴情報は、後述するバスマスタ２２０がバンク衝突を回避するためにアクセスするバンクアドレスを決定する際に用いる必要がない情報であるからである。
【００８５】
なお、リクエスト受け付け履歴記憶部２３１２の構成は、上述したＦＩＦＯ形式の構成に限定されるものではない。例えば、リクエスト受け付け履歴記憶部２３１２は、少なくとも、ＤＲＡＭ３０に備えたそれぞれのバンクに対応する記憶領域、つまり、ＤＲＡＭ３０に備えたバンクの数と同じ数の記憶領域を備えた構成にしてもよい。この構成のリクエスト受け付け履歴記憶部２３１２では、それぞれのバンクに対するアクセスが行われるごとに、アクセスされたバンクに対応する記憶領域に記憶しているアクセス方向ＲＷおよび時間Ｔのそれぞれの情報を更新するように動作する。
【００８６】
なお、以下の説明においては、リクエスト受け付け履歴記憶部２３１２の構成が上述したＦＩＦＯ形式の構成であるものとして説明する。そして、リクエスト受け付け履歴記憶部２３１２では、リクエスト受け付け履歴取得部２３１において新たにバンクアドレスＢＡ、アクセス方向ＲＷ、および時間Ｔのそれぞれの情報を取得するごとに、すでにそれぞれの記憶領域に記憶されているそれぞれの情報を、それぞれの情報に続く「−」の後に示した記憶領域の番号の数字に「１」を加算（インクリメント）した記憶領域に順次移動していくものとして説明する。つまり、以下の説明においては、最新のそれぞれの情報が常に、「−」の後に示した数字が「１」となるものとして説明する。また、以下の説明においては、リクエスト受け付け履歴情報に含まれるバンクアドレスＢＡ、アクセス方向ＲＷ、および時間Ｔのそれぞれの情報を区別せずに表す場合には、リクエスト受け付け履歴情報ＲＥＱＨＩＳに続く「−」の後に、リクエスト受け付け履歴情報を記憶している記憶領域の番号を表す数字を示して説明する。
【００８７】
次に、メモリアクセス制御装置２００を構成するバスマスタ２２０のより詳細な構成および動作について説明する。なお、以下の説明においては、ＤＭＡ転送におけるＤＲＡＭ３０へのアクセス方向が、ライトアクセス（データの書き込み）のみであるバスマスタ２２０を例として説明する。このライトアクセスのみのＤＭＡ転送を行う構成のバスマスタ２２０は、図１に示した撮像装置１においては、例えば、撮像インターフェース部２２１に相当する。
【００８８】
図５は、本発明の第１の実施形態におけるメモリアクセス制御装置２００を構成するバスマスタ２２０の概略構成を示したブロック図である。図５には、アドレス空間が８つのバンクに分けられたＤＲＡＭ３０に対して、８つのバンクのそれぞれに連続してアクセスする連続転送によって、８つのバンク分のデータをまとめてＤＭＡ転送する、つまり、８回のＤＭＡ転送を連続して行うバスマスタ２２０の構成の一例を示している。ここで、連続転送とは、一般的なＤＲＡＭに元々備わっているバースト転送という機能とは異なり、８個のリクエストを連続して発行することを表している。つまり、連続転送とは、バスマスタ２２０が８回のＤＭＡ転送を連続して行える状態になったときに、８回連続でＤＭＡ転送を行うことを表している。このため、連続転送において８回連続で行われる各回のＤＭＡ転送では、それぞれ異なるバンクアドレスＢＡに対するアクセスとなる。
【００８９】
バスマスタ２２０は、バッファライト制御部２２０１と、バッファ部２２０２と、バッファリード制御部２２０３と、バスインターフェース部２２０４と、アドレス順序生成部２２１０と、を備えている。また、バスインターフェース部２２０４は、ＤＭＡアドレス生成部２２０５を備えている。
【００９０】
バッファライト制御部２２０１は、入力された入力データ（例えば、イメージセンサ１０から出力された画素信号のデータ）を、バッファ部２２０２に順次出力して記憶（保存）させる。
【００９１】
バッファ部２２０２は、バッファライト制御部２２０１から順次出力された入力データを一時的に記憶（保存）するデータ記憶部である。バッファ部２２０２は、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリで構成される。バッファ部２２０２は、ＤＲＡＭ３０にＤＭＡ転送するデータを保存する記憶領域を、少なくとも、ＤＲＡＭ３０に備えたバンクの数と同じ数分備えている。このため、ＤＲＡＭ３０に備えた８つのバンク分のデータをまとめてＤＭＡ転送（連続転送）する構成である図５に示したバスマスタ２２０に備えたバッファ部２２０２は、少なくとも、８つの記憶領域を備えている。図５においては、バッファ部２２０２内のそれぞれの記憶領域に、対応するＤＲＡＭ３０のバンクを表す数字を示している。バスマスタ２２０では、バッファ部２２０２に備えた１組の記憶領域に記憶した全てのデータが、連続転送の転送単位であり、それぞれの記憶領域のデータが、１回のＤＭＡ転送の転送単位となる。
【００９２】
なお、図５には、ＤＲＡＭ３０に備えた８つのバンクのそれぞれに対応する８つの記憶領域の組を、４組備えた構成のバッファ部２２０２を示している。この構成によって、バスマスタ２２０は、それぞれの記憶領域の組ごとのデータを連続して転送する連続転送を、４回行うことができる。
【００９３】
バッファリード制御部２２０３は、バッファライト制御部２２０１によってバッファ部２２０２内のいずれかの記憶領域の組に入力データが記憶（保存）されると、アドレス順序生成部２２１０から出力されたＤＭＡ転送を行う際のアドレスの順序を表す情報（以下、「アドレス順序情報」という）に従って、それぞれのバンクに対応する記憶領域ごとに、記憶（保存）された入力データを順次読み出す。そして、バッファリード制御部２２０３は、読み出した入力データを、バスインターフェース部２２０４に順次出力する。つまり、バッファリード制御部２２０３は、バッファ部２２０２に記憶（保存）された１回の連続転送の転送単位の全ての入力データを、アドレス順序情報が表す順番で、それぞれのＤＭＡ転送の転送単位ごとに順次読み出して、バスインターフェース部２２０４に転送する。
【００９４】
なお、バスマスタ２２０においては、バッファライト制御部２２０１がバッファ部２２０２に入力データを記憶（保存）させるタイミングと、バッファリード制御部２２０３がバッファ部２２０２に記憶（保存）された入力データを読み出すタイミングとに関しては、何ら限定しない。従って、バッファ部２２０２は、入力データの書き込みタイミングと入力データの読み出しタイミングとを異なるタイミングで制御することができるＳＲＡＭであってもよい。また、バスマスタ２２０においては、バッファライト制御部２２０１によって１つの転送単位の入力データのバッファ部２２０２への記憶（保存）が完了したタイミングと、バッファリード制御部２２０３によって１つの転送単位の入力データのバッファ部２２０２からの読み出しが完了したタイミングとを整合させる構成や方法に関しても、何ら限定しない。
【００９５】
バスインターフェース部２２０４は、バッファリード制御部２２０３から転送された入力データ、つまり、バスマスタ２２０がＤＲＡＭ３０に記憶させる（書き込む）ＤＭＡ書き込みデータＤＭＡＷＤＡＴＡをＤＭＡ転送するためのインターフェース部である。バスインターフェース部２２０４は、バッファリード制御部２２０３から、それぞれのＤＭＡ転送の転送単位の入力データが転送されるごとに、ＤＭＡ転送を要求するためのＤＭＡ要求信号ＤＭＡＲＥＱ、ライトアクセスを表すＤＭＡリードライト信号ＤＭＡＲＷ、およびＤＭＡアドレスＤＭＡＡＤを生成して出力し、ＤＭＡバス調停部２３０にＤＭＡ転送を要求する。
【００９６】
このとき、バスインターフェース部２２０４では、ＤＭＡアドレス生成部２２０５が、ＤＭＡアドレスＤＭＡＡＤを生成する。より具体的には、ＤＭＡアドレス生成部２２０５は、アドレス順序生成部２２１０から出力されたアドレス順序情報に従って、ＤＭＡ書き込みデータＤＭＡＷＤＡＴＡをＤＲＡＭ３０に記憶させる（書き込む）ＤＭＡアドレスＤＭＡＡＤを生成する。
【００９７】
なお、上述したように、バッファリード制御部２２０３は、１回の連続転送の転送単位の全ての入力データ、つまり、８回分のＤＭＡ転送の入力データを、アドレス順序情報が表す順番でバスインターフェース部２２０４に転送してくる。このため、バスインターフェース部２２０４には、ＤＲＡＭ３０に備えたバンクの順番で、８回分のＤＭＡ転送の入力データがバッファリード制御部２２０３から転送されてくるとは限らない。そこで、ＤＭＡアドレス生成部２２０５は、バッファリード制御部２２０３から転送された入力データをＤＭＡ書き込みデータＤＭＡＷＤＡＴＡとしてＤＭＡ転送してＤＲＡＭ３０に記憶させる（書き込む）際に、ＤＭＡ書き込みデータＤＭＡＷＤＡＴＡ（入力データ）が、ＤＲＡＭ３０に備えた対応するバンクに記憶される（書き込まれる）ように、ＤＭＡアドレスＤＭＡＡＤを生成する。ここで、ＤＭＡアドレス生成部２２０５がＤＭＡアドレスＤＭＡＡＤを生成する動作を、バッファ部２２０２に備えた１組（８つ）の記憶領域の番号で表して説明する。例えば、バッファリード制御部２２０３が、記憶領域の番号が「３」→「１」→「０」→「２」→・・・の順に入力データを順次転送した場合、ＤＭＡアドレス生成部２２０５は、バンクアドレスＢＡが、「３」→「１」→「０」→「２」→・・・の順になるように、ＤＭＡアドレスＤＭＡＡＤを生成する。このように、ＤＭＡアドレス生成部２２０５は、バッファリード制御部２２０３からバスインターフェース部２２０４に転送される入力データの順番と、ＤＭＡアドレスＤＭＡＡＤに含まれるバンクアドレスＢＡの順番とを揃えるようなＤＭＡアドレスＤＭＡＡＤを生成する。
【００９８】
バスインターフェース部２２０４は、ＤＭＡアドレス生成部２２０５が生成したＤＭＡアドレスＤＭＡＡＤに対応するＤＭＡ書き込みデータＤＭＡＷＤＡＴＡを、ＤＭＡ要求信号ＤＭＡＲＥＱ、ＤＭＡリードライト信号ＤＭＡＲＷ、およびＤＭＡアドレスＤＭＡＡＤと共にＤＭＡバス調停部２３０に出力する。そして、バスインターフェース部２２０４は、出力したＤＭＡ要求がＤＭＡバス調停部２３０に受け付けられ、ＤＭＡバス調停部２３０からＤＭＡ許可信号ＤＭＡＡＣＫが入力されるごとに、要求したＤＭＡ転送を実行する。バスインターフェース部２２０４では、１回の連続転送の転送単位ごとに、８回のＤＭＡ転送を連続して実行する。
【００９９】
アドレス順序生成部２２１０は、バッファライト制御部２２０１によってバッファ部２２０２内のいずれかの記憶領域の組に入力データが記憶（保存）されると、ＤＭＡバス調停部２３０から出力されたリクエスト受け付け履歴情報ＲＥＱＨＩＳを参照して、連続した８回のＤＭＡ転送によってＤＭＡ書き込みデータＤＭＡＷＤＡＴＡ（入力データ）をＤＲＡＭ３０に記憶させる（書き込む）際のアドレス（より具体的には、バンクアドレスＢＡ）の順序を決定する。言い換えれば、アドレス順序生成部２２１０は、ＤＭＡ書き込みデータＤＭＡＷＤＡＴＡ（入力データ）をＤＭＡ転送する順序を決定する。アドレス順序生成部２２１０は、決定したＤＭＡ転送を行う際のアドレスの順序を表すアドレス順序情報を、バッファリード制御部２２０３およびバスインターフェース部２２０４内のＤＭＡアドレス生成部２２０５に出力する。
【０１００】
ここで、アドレス順序生成部２２１０がリクエスト受け付け履歴情報ＲＥＱＨＩＳを参照してアドレスの順序を決定する処理（以下、「アドレス順序決定処理」という）について説明する。図６は、本発明の第１の実施形態におけるメモリアクセス制御装置２００を構成するバスマスタ２２０に備えたアドレス順序生成部２２１０がアドレスの順序を決定する処理（アドレス順序決定処理）を説明する図である。図６の（ａ）には、バスマスタ２２０が１回の連続転送の転送単位における最初のＤＭＡ転送の要求をＤＭＡバス調停部２３０に出力する直前に、ＤＭＡバス調停部２３０から出力されていたリクエスト受け付け履歴情報ＲＥＱＨＩＳの一例を示している。また、図６の（ｂ）には、アドレス順序生成部２２１０がアドレスの順序を決定する際に算出するタイミングおよび決定したバンクアドレスＢＡの順序の一例を示している。
【０１０１】
図６の（ａ）に示したリクエスト受け付け履歴情報ＲＥＱＨＩＳにおいて、「Ｎｏ．」は、リクエスト受け付け履歴記憶部２３１２に備えた記憶領域の番号を表し、小さい番号ほど、リクエスト受け付け履歴取得部２３１に備えたカウンタ部２３１１が計測した経過時間が現在の時間に近い時間に取得したリクエスト受け付け履歴情報が記憶されている。つまり、上述したように、番号が「１」の記憶領域に、最新のリクエスト受け付け履歴情報が記憶されている。また、図６の（ａ）に示したリクエスト受け付け履歴情報ＲＥＱＨＩＳにおいて、「ＢＡ」は、アドレス生成部２３０４から出力されたバンクアドレスＢＡの情報を表し、「ＲＷ」は、アクセス調停部２３０１から出力されたアクセス方向信号ＡＣＣＲＷの情報（リードアクセスは「Ｒ」、ライトアクセスは「Ｗ」）を表し、「Ｔ」は、カウンタ部２３１１から出力された時間Ｔの情報を表している。
【０１０２】
例えば、番号が「１」の記憶領域に記憶されたリクエスト受け付け履歴情報ＲＥＱＨＩＳ−１は、バンクアドレスＢＡ−１＝１のバンクに対するアクセス方向ＲＷ−１＝Ｗ（ライトアクセス）のＤＭＡ転送の要求がＤＭＡバス調停部２３０によって受け付けられ、直近の時間Ｔ−１＝１００Ｔのタイミングで、ＤＲＡＭ３０に対するライトアクセスが実際に実行されたことを示している。また、例えば、番号が「５」の記憶領域に記憶されたリクエスト受け付け履歴情報ＲＥＱＨＩＳ−５は、バンクアドレスＢＡ−５＝７のバンクに対するアクセス方向ＲＷ−５＝Ｒ（リードアクセス）のＤＭＡ転送の要求がＤＭＡバス調停部２３０によって受け付けられ、以前の時間Ｔ−５＝６８Ｔのタイミングで、ＤＲＡＭ３０に対するライトアクセスが実際に実行されたことを示している。
【０１０３】
アドレス順序生成部２２１０は、図６の（ａ）に示したようなリクエスト受け付け履歴情報ＲＥＱＨＩＳを参照して、バスマスタ２２０がＤＭＡ転送によってＤＭＡ書き込みデータＤＭＡＷＤＡＴＡ（入力データ）をＤＲＡＭ３０に記憶させる（書き込む）際のバンクアドレスＢＡの順序を、以下のような処理手順によって決定する。
【０１０４】
なお、以下の説明においては、ＤＲＡＭ３０に備えたそれぞれのバンクにおけるバンクビジー時間が３０Ｔであるものとする。また、以下の説明においては、ＤＭＡバス調停部２３０が入力されたＤＭＡ要求信号ＤＭＡＲＥＱを調停して異なるバンクに対するＤＭＡ転送を受け付けることができる、つまり、ＤＭＡ要求が許可される最小の間隔が４Ｔであるものとする。なお、以下の説明においては、説明を容易にするため、ＤＲＡＭ３０に備えたそれぞれのバンクに対するアクセス方向の切り替えに要する時間、つまり、リードライト切り替え時間を考慮しないものとする。
【０１０５】
（手順１）：まず、アドレス順序生成部２２１０は、連続した８回のＤＭＡ転送によって対応するＤＭＡ書き込みデータＤＭＡＷＤＡＴＡを記憶させる（書き込ませる）ＤＲＡＭ３０に備えたそれぞれのバンクごとに、バンクビジー時間が終了するビジー終了タイミングを算出する。
【０１０６】
より具体的には、図６の（ａ）に示したリクエスト受け付け履歴情報ＲＥＱＨＩＳでは、番号が「８」〜「１」の記憶領域に記憶されたリクエスト受け付け履歴情報ＲＥＱＨＩＳ−８〜リクエスト受け付け履歴情報ＲＥＱＨＩＳ−１のそれぞれが、ＤＲＡＭ３０に備えた８つのバンクのそれぞれに対して前回実行されたアクセスを示している。従って、アドレス順序生成部２２１０は、リクエスト受け付け履歴情報ＲＥＱＨＩＳ−８〜リクエスト受け付け履歴情報ＲＥＱＨＩＳ−１のそれぞれを参照して、図６の（ｂ）に示したように、ＤＲＡＭ３０に備えた８つのバンクのそれぞれのビジー終了タイミングを算出する。
【０１０７】
例えば、リクエスト受け付け履歴情報ＲＥＱＨＩＳ−８が示しているバンクアドレスＢＡ−８＝０のバンクに対するアクセス方向ＲＷ−８＝Ｒのリードアクセスが実際に実行された時間Ｔ−８は「５６Ｔ」である。アドレス順序生成部２２１０は、リクエスト受け付け履歴情報ＲＥＱＨＩＳ−８に示された時間Ｔ−８＝５６Ｔにバンクビジー時間＝３０Ｔを加算することによって、バンクアドレスＢＡ−８＝０のバンクにおけるビジー終了タイミング＝５６Ｔ＋３０Ｔ＝８６Ｔを算出する。また、例えば、リクエスト受け付け履歴情報ＲＥＱＨＩＳ−４が示しているバンクアドレスＢＡ−４＝２のバンクに対するアクセス方向ＲＷ−４＝Ｗのライトアクセスが実際に実行された時間Ｔ−４は「８８Ｔ」である。アドレス順序生成部２２１０は同様に、リクエスト受け付け履歴情報ＲＥＱＨＩＳ−４に示された時間Ｔ−４＝８８Ｔにバンクビジー時間＝３０Ｔを加算することによって、バンクアドレスＢＡ−４＝２のバンクにおけるビジー終了タイミング＝８８Ｔ＋３０Ｔ＝１１８Ｔを算出する。同様に、アドレス順序生成部２２１０は、図６の（ｂ）に示したような、それぞれのバンクにおけるビジー終了タイミングを算出する。そして、アドレス順序生成部２２１０は、最新のリクエスト受け付け履歴情報ＲＥＱＨＩＳ−１が示しているバンクアドレスＢＡ−１＝１のバンク、つまり、直近にＤＲＡＭ３０に対してアクセスしたバンクアドレスＢＡ−１＝１のバンクにおけるビジー終了タイミング＝１００Ｔ＋３０Ｔ＝１３０Ｔまでを算出する。
【０１０８】
（手順２）：続いて、アドレス順序生成部２２１０は、手順１において算出したビジー終了タイミングが早い順に、仮のリクエスト出力順序を決定する。
【０１０９】
より具体的には、アドレス順序生成部２２１０は、図６の（ｂ）に示したビジー終了タイミングが最も早いビジー終了タイミング＝８６ＴであるバンクアドレスＢＡ−８＝０のバンクを、リクエスト出力順序＝１に仮決定する。以降、アドレス順序生成部２２１０は、バンクアドレスＢＡ−７＝３〜バンクアドレスＢＡ−１＝１のバンクを順次、リクエスト出力順序＝２〜リクエスト出力順序＝８に仮決定する。
【０１１０】
（手順３）：続いて、アドレス順序生成部２２１０は、手順２において仮決定したリクエスト出力順序でＤＭＡ転送を要求した際に、ＤＭＡ要求がＤＭＡバス調停部２３０によって最短で受け付けられた場合のリクエスト許可タイミングを順次算出する。
【０１１１】
より具体的には、アドレス順序生成部２２１０は、リクエスト出力順序＝１に仮決定したバンクアドレスＢＡ−８＝０のバンクから、リクエスト許可タイミングを順次算出する。この場合、アドレス順序生成部２２１０は、図６の（ａ）においてリクエスト受け付け履歴情報ＲＥＱＨＩＳ−１が示している、直近のＤＲＡＭ３０に対するアクセスが実際に実行された時間Ｔ−１＝１００Ｔに、ＤＭＡ要求が許可される最小の間隔の４Ｔを加算することによって、バンクアドレスＢＡ−８＝０のバンクに対するリクエスト許可タイミング＝１００Ｔ＋４Ｔ＝１０４Ｔを算出する。続いて、アドレス順序生成部２２１０は、算出したバンクアドレスＢＡ−８＝０のバンクに対するリクエスト許可タイミング＝１０４Ｔを直近の時間Ｔ−１として置き換えて、同様にＤＭＡ要求が許可される最小の間隔の４Ｔを加算することによって、リクエスト出力順序＝２に仮決定したバンクアドレスＢＡ−７＝３のバンクに対するリクエスト許可タイミング＝１０４Ｔ＋４Ｔ＝１０８Ｔを算出する。以降同様に、アドレス順序生成部２２１０は、算出したリクエスト許可タイミングを直近の時間Ｔ−１として置き換えて、図６の（ｂ）に示したように、仮決定したリクエスト出力順序の順番でそれぞれのバンクに対するＤＭＡ要求が受け付けられた場合におけるリクエスト許可タイミングを順次算出する。
【０１１２】
（手順４）：続いて、アドレス順序生成部２２１０は、手順２において仮決定したリクエスト出力順序で、手順１において算出したビジー終了タイミングと、手順３において算出したリクエスト許可タイミングとのそれぞれを比較し、最終的なリクエスト出力順序、つまり、ＤＭＡ転送においてアクセスするバンクの順序を決定する。
【０１１３】
より具体的には、アドレス順序生成部２２１０は、ビジー終了タイミングがリクエスト許可タイミング以下である場合には、バンクビジー時間が経過したと同時またはバンクビジー時間が経過した後に出力したＤＭＡ要求がＤＭＡバス調停部２３０によって受け付けられると判定する。つまり、アドレス順序生成部２２１０は、ビジー終了タイミングとリクエスト許可タイミングとを比較したバンクにアクセスするＤＭＡ要求を出力しても、バンクビジー時間にかからずに実際のＤＲＡＭ３０に対するＤＭＡ転送のアクセスが実行されると判定する。この場合、アドレス順序生成部２２１０は、手順２において仮決定したリクエスト出力順序のそれぞれのバンクを、ＤＭＡ転送においてアクセスする最終的なバンクの順序に決定する。そして、アドレス順序生成部２２１０は、決定したバンクの順序を表すアドレス順序情報を、バッファリード制御部２２０３およびＤＭＡアドレス生成部２２０５に出力する。
【０１１４】
図６の（ｂ）に示した一例では、手順１において算出した全てのビジー終了タイミングが、手順３において算出した対応するリクエスト許可タイミングよりも早い。従って、図６の（ｂ）に示した一例においてアドレス順序生成部２２１０は、手順２において仮決定したリクエスト出力順序のそれぞれのバンクを最終的なバンクの順序として決定して、このバンクの順序を表すアドレス順序情報を、バッファリード制御部２２０３およびＤＭＡアドレス生成部２２０５に出力する。より具体的には、バンクアドレスＢＡの順序が、「０」、「３」、「６」、「７」、「２」、「５」、「４」、「１」の順番であることを表すアドレス順序情報を、バッファリード制御部２２０３およびＤＭＡアドレス生成部２２０５に出力する。なお、図６の（ｂ）に示した一例では、アドレス順序生成部２２１０が決定した最終的なバンクの順序は、図６の（ａ）に示したリクエスト受け付け履歴情報ＲＥＱＨＩＳに示されているＤＲＡＭ３０にアクセスした履歴が古い順番となっている。
【０１１５】
一方、アドレス順序生成部２２１０は、ビジー終了タイミングがリクエスト許可タイミングよりも遅い場合には、出力したＤＭＡ要求に対するＤＭＡバス調停部２３０による受け付けが、ビジー終了タイミングとリクエスト許可タイミングとの差分の時間だけ待たされ、バンクビジー時間が経過したときに受け付けられると判定する。つまり、アドレス順序生成部２２１０は、ビジー終了タイミングとリクエスト許可タイミングとを比較したバンクにアクセスするＤＭＡ要求の出力は、バンクビジー状態が終了するまで待たされてしまい、実際のＤＲＡＭ３０に対するＤＭＡ転送のアクセスが遅くなって、ＤＲＡＭ３０に対するアクセスの効率が低下してしまうと判定する。この場合、アドレス順序生成部２２１０は、手順２において仮決定したリクエスト出力順序を変更する。そして、アドレス順序生成部２２１０は、変更したリクエスト出力順序に対して再度、手順３におけるリクエスト許可タイミングの算出を行って、ビジー終了タイミングと算出したリクエスト許可タイミングとを比較して、バンクビジー時間にかからずに実際のＤＲＡＭ３０に対するＤＭＡ転送のアクセスが実行されると判定することができるリクエスト出力順序を探索する。つまり、アドレス順序生成部２２１０は、仮決定するリクエスト出力順序の変更、手順３、および手順４のそれぞれの処理手順を繰り返して、ＤＭＡ転送においてアクセスする最終的なバンクの順序に決定する。
【０１１６】
なお、アドレス順序生成部２２１０がバンクビジー時間にかからないリクエスト出力順序を探索するために上述した処理手順を繰り返す回数は、予め定めた回数としてもよい。これは、アドレス順序生成部２２１０が上述した処理手順を繰り返すことによってバンクビジー時間にかからないリクエスト出力順序を探索することができるものの、上述した処理手順の繰り返しに時間を要してしまうことも、ＤＲＡＭ３０に対するアクセスの効率が低下してしまう要因となり得るからである。なお、アドレス順序生成部２２１０におけるリクエスト出力順序の別の一例については、後述する。
【０１１７】
次に、メモリアクセス制御装置２００の動作について説明する。図７は、本発明の第１の実施形態におけるメモリアクセス制御装置２００によるＤＲＡＭ３０のアクセスタイミングの一例を示したタイミングチャートである。図７には、２個のバスマスタ２２０のそれぞれからのＤＭＡ要求に応じてＤＭＡバス調停部２３０が実際にＤＲＡＭ３０にアクセスする際の制御信号のタイミングの一例を示している。より具体的には、メモリアクセス制御装置２００が、１回の連続転送において８回のＤＭＡ転送を連続して行う図５に示した構成の優先度が高いバスマスタ２２０と、ＤＲＡＭ３０に備えたそれぞれのバンクに対して１回のＤＭＡ転送を行う優先度が低いバスマスタ２２０と、ＤＭＡバス調停部２３０とによって構成されている場合のタイミングの一例を示している。なお、図７においては、ＤＲＡＭ３０に備えたそれぞれのバンクがバンクビジー状態であるか否かを表すバンクビジー時間を併せて示している。以下の説明においては、優先度が高いバスマスタ２２０（高優先バスマスタ）を「バスマスタ２２０−１」とし、優先度が低いバスマスタ２２０（以下、「低優先バスマスタ」という）を「バスマスタ２２０−２」として説明する。なお、低優先バスマスタには、リクエスト受け付け履歴情報ＲＥＱＨＩＳを参照してＤＭＡ転送においてアクセスするバンクアドレスＢＡの順序を決定する機能を備えていなくてもよい。
【０１１８】
図７に示したタイミングチャートでは、ＤＭＡバス調停部２３０が、バスマスタ２２０−２から出力されたＤＭＡ要求信号ＤＭＡＲＥＱ−２に応じて、バスマスタ２２０−２から指定されたバンクに対するＤＭＡ転送を実行している。ＤＭＡバス調停部２３０が、バスマスタ２２０−２からのＤＭＡ要求に応じたＤＭＡ転送の制御を実行すると、バスマスタ２２０−２から指定されたＤＲＡＭ３０のバンクはバンクビジー状態になり、バンクビジー時間が経過した後、再び同一のバンクにアクセスすることができる状態となる。
【０１１９】
その後、タイミングｔ１のときに、バスマスタ２２０−１がＤＭＡ要求信号ＤＭＡＲＥＱ−１を出力すると、ＤＭＡバス調停部２３０は、バスマスタ２２０−１から指定されたバンクに対するＤＭＡ転送を実行する。なお、バスマスタ２２０−１は、１回の連続転送を開始する直前に、ＤＭＡバス調停部２３０から出力されたリクエスト受け付け履歴情報ＲＥＱＨＩＳを参照して、それぞれのＤＭＡ転送においてアクセスするバンクアドレスＢＡの順序を決定し、決定した順序でそれぞれのバンクを指定したＤＭＡ要求信号ＤＭＡＲＥＱ−２を連続して出力する。
【０１２０】
図７においては、バスマスタ２２０−１が、図６の（ａ）に示したリクエスト受け付け履歴情報ＲＥＱＨＩＳを参照して決定した、図６の（ｂ）に示したバンクアドレスＢＡの順序で、ＤＲＡＭ３０に備えたそれぞれのバンクを指定している。これにより、図７に示したように、バスマスタ２２０−１は、１回の連続転送において、バンクビジー状態になっているバンクに対するアクセスを回避して、８回のＤＭＡ転送を行うことができる。つまり、バスマスタ２２０−１は、ＤＲＡＭ３０おけるアクセスの制約を回避した順番で、ＤＭＡ転送を連続して行うことができる。これにより、バスマスタ２２０−１は、アクセスの効率が高い状態で、ＤＲＡＭ３０に対するアクセスを行うことができる。
【０１２１】
なお、図７には、タイミングｔ２のとき、つまり、バスマスタ２２０−１が１回の連続転送におけるＤＭＡ要求信号ＤＭＡＲＥＱ−１を出力している期間中に、バスマスタ２２０−２が、バンクアドレスＢＡ−２＝２のバンクを指定する新たなＤＭＡ要求信号ＤＭＡＲＥＱ−２を出力した場合を示している。しかし、バスマスタ２２０−２は、バスマスタ２２０−１よりも優先度が低い低優先バスマスタである。このため、ＤＭＡバス調停部２３０は、バスマスタ２２０−２が出力したＤＭＡ要求信号ＤＭＡＲＥＱ−２がバンクビジー状態ではないバンクアドレスＢＡ−２＝２のバンクを指定するＤＭＡ要求であったとしても、バスマスタ２２０−２からのＤＭＡ要求を受け付けずに、タイミングｔ３において、バスマスタ２２０−１から出力されたＤＭＡ要求信号ＤＭＡＲＥＱ−１を引き続き受け付けるＤＭＡ許可信号ＤＭＡＡＣＫ−１を出力する。そして、ＤＭＡバス調停部２３０は、バスマスタ２２０−１からのＤＭＡ要求がなくなり、バンクアドレスＢＡ＝２のバンクのバンクビジー時間が経過した後のタイミングｔ４のときに、バスマスタ２２０−２から出力されたＤＭＡ要求信号ＤＭＡＲＥＱ−２を受け付けるＤＭＡ許可信号ＤＭＡＡＣＫ−２を出力する。
【０１２２】
このような構成および動作によって、メモリアクセス制御装置２００では、ＤＲＡＭ３０に備えたバンクビジー状態になっているバンクに対するアクセスを回避したＤＭＡ転送を行う。これにより、メモリアクセス制御装置２００では、ＤＲＡＭ３０に対するアクセスの効率を高めることができる。
【０１２３】
なお、図７には、参考として、バスマスタ２２０−１が、１回の連続転送において、アクセスするバンクアドレスＢＡの順序を変更することなく８回のＤＭＡ転送を連続して要求する場合の動作のタイミングの一例を、バスマスタ２２０−Ｘとして示している。このバスマスタ２２０−Ｘの動作のタイミングは、従来のバスマスタにおいて８回のＤＭＡ転送を連続して要求する場合の動作のタイミングに相当する。
【０１２４】
図７において参考として示したバスマスタ２２０−Ｘは、バスマスタ２２０−１と同様に、タイミングｔ１のときから１回の連続転送を開始し、バンクアドレスＢＡ−Ｘ＝０〜バンクアドレスＢＡ−Ｘ＝７のバンクを順番に指定するＤＭＡ要求信号ＤＭＡＲＥＱ−Ｘを順次、ＤＭＡバス調停部２３０に出力している。これにより、ＤＭＡバス調停部２３０は、バスマスタ２２０−ＸからのＤＭＡ要求をバスマスタ２２０−２よりも優先して受け付けて、ＤＭＡ許可信号ＤＭＡＡＣＫ−Ｘを出力する。
【０１２５】
ここで、バスマスタ２２０−１と、バスマスタ２２０−Ｘとのそれぞれによる１回の連続転送のタイミングを比較する。１回の連続転送における１回目のＤＭＡ転送においては、図７に示したように、バスマスタ２２０−Ｘが出力したバンクアドレスＢＡ−Ｘ＝０のバンクを指定するＤＭＡ要求信号ＤＭＡＲＥＱ−Ｘも、バスマスタ２２０−１と同様に、タイミングｔ１Ｘのときに受け付けられている。
【０１２６】
しかし、２回目のＤＭＡ転送では、図７に示したように、バスマスタ２２０−１が出力したＤＭＡ要求が受け付けられるタイミングよりも、バスマスタ２２０−Ｘが出力したＤＭＡ要求が受け付けられるタイミングの方が遅くなっている。より具体的には、バスマスタ２２０−１が出力したバンクアドレスＢＡ−１＝３のバンクを指定するＤＭＡ要求信号ＤＭＡＲＥＱ−１は、タイミングｔ２１のときに受け付けられている。これに対して、バスマスタ２２０−Ｘが出力したバンクアドレスＢＡ−Ｘ＝１のバンクを指定するＤＭＡ要求信号ＤＭＡＲＥＱ−Ｘは、タイミングｔ２１よりも後のタイミングｔ２Ｘのときに受け付けられている。これは、バスマスタ２２０−ＸがＤＭＡ転送を行うバンクとして指定したバンクアドレスＢＡ−Ｘ＝１のバンクは、バスマスタ２２０−Ｘが１回の連続転送を開始するタイミングｔ１よりも以前のタイミングでバスマスタ２２０−２がアクセスしたことによってバンクビジー状態となっているため、バンクビジー時間が経過するタイミングｔ２Ｘまで待たされているからである。これにより、バスマスタ２２０−Ｘでは、１回の連続転送、つまり、８回のＤＭＡ転送が終了するタイミングが、バスマスタ２２０−１よりも遅くなってしまう。
【０１２７】
このように、メモリアクセス制御装置２００では、ＤＲＡＭ３０に備えたそれぞれのバンクにアクセスする順番を、１回の連続転送を開始する直前のリクエスト受け付け履歴情報ＲＥＱＨＩＳを参照して変更することによって、それぞれのＤＭＡ転送において、バンクビジー状態になっているバンクを指定しないようにする。これにより、メモリアクセス制御装置２００では、ＤＲＡＭ３０に対するアクセスの効率を高め、一連のＤＭＡ転送が終了するまでの期間も短縮することができる。
【０１２８】
なお、上述した説明では、本発明の第１の実施形態におけるメモリアクセス制御装置２００に備えたバスマスタ２２０が、実行するＤＭＡ転送によるＤＲＡＭ３０へのアクセス方向が、ライトアクセス（データの書き込み）のみである場合の一例について、図５〜図７を用いて説明した。しかし、メモリアクセス制御装置２００に備えるバスマスタ２２０には、ＤＲＡＭ３０へのアクセス方向がリードアクセス（データの読み出し）のみであるＤＭＡ転送を行うバスマスタや、ライトアクセスとリードアクセスとの両方であるＤＭＡ転送を行うバスマスタも存在する。
【０１２９】
ＤＲＡＭ３０へのアクセス方向がリードアクセス（データの読み出し）のみであるバスマスタ２２０の構成や動作は、図５〜図７に示したライトアクセス（データの書き込み）のみを行うバスマスタ２２０において、ＤＲＡＭ３０へのアクセス方向を逆に考える、つまり、ライトアクセスをリードアクセスとするのみで、容易にその構成や動作を考えることができる。また、ＤＲＡＭ３０へのアクセス方向がライトアクセスとリードアクセスとの両方であるバスマスタ２２０の構成や動作も、図５〜図７に示したライトアクセス（データの書き込み）のみを行うバスマスタ２２０において、リードアクセスに対応する構成をさらに備える構成を考えるのみで、容易にその構成や動作を考えることができる。従って、ＤＲＡＭ３０へのアクセス方向がリードアクセスのみであるバスマスタ２２０、およびＤＲＡＭ３０へのアクセス方向がライトアクセスとリードアクセスとの両方であるバスマスタ２２０における構成や動作に関する詳細な説明は省略する。
【０１３０】
ただし、上述した説明では、図６に示したアドレス順序生成部２２１０がリクエスト受け付け履歴情報ＲＥＱＨＩＳを参照してアドレスの順序を決定するアドレス順序決定処理において、説明を容易にするため、ＤＲＡＭ３０に備えたそれぞれのバンクに対するアクセス方向の切り替えに要する時間（リードライト切り替え時間）を考慮しない場合について説明した。しかし、本発明の第１の実施形態におけるメモリアクセス制御装置２００における実際の動作においては、リードライト切り替え時間も考慮することが必要となる。従って、以下の説明においては、バスマスタ２２０に備えたアドレス順序生成部２２１０が、リードライト切り替え時間も考慮してアドレスの順序を決定するアドレス順序決定処理について説明する。なお、以下の説明においては、リードライト切り替え時間も考慮してアドレス（より具体的には、バンクアドレスＢＡ）の順序を決定するアドレス順序決定処理を行うアドレス順序生成部２２１０が、ＤＲＡＭ３０へのアクセス方向がライトアクセスとリードアクセスとの両方であるバスマスタ２２０に備えられているものとして説明する。
【０１３１】
（アドレス順序決定処理の第１の変形例）
図８は、本発明の第１の実施形態におけるメモリアクセス制御装置２００を構成するバスマスタ２２０に備えたアドレス順序生成部２２１０がアドレスの順序を決定する別の処理（アドレス順序決定処理）を説明する図である。図８は、ＤＲＡＭ３０へのアクセス方向がライトアクセスとリードアクセスとの両方であるバスマスタ２２０に備えたアドレス順序生成部２２１０が、リクエスト受け付け履歴情報ＲＥＱＨＩＳを参照してアドレスの順序を決定するアドレス順序決定処理の一例である。図８の（ａ）には、バスマスタ２２０が１回の連続転送の転送単位における最初のＤＭＡ転送の要求をＤＭＡバス調停部２３０に出力する直前に、ＤＭＡバス調停部２３０から出力されていたリクエスト受け付け履歴情報ＲＥＱＨＩＳの一例を示している。なお、図８の（ａ）は、図６の（ａ）に示したリクエスト受け付け履歴情報ＲＥＱＨＩＳの一例と同じであるため、詳細な説明は省略する。また、図８の（ｂ）には、アドレス順序生成部２２１０が、アドレス順序決定処理の第１の変形例において、アドレスの順序を決定する際に算出するタイミングおよび決定したバンクアドレスＢＡの順序の一例を示している。また、図８の（ｃ）には、アドレス順序生成部２２１０が、図６の（ｂ）において説明したアドレス順序決定処理でバンクアドレスＢＡの順序を決定した場合、つまり、図８の（ａ）に示したリクエスト受け付け履歴情報ＲＥＱＨＩＳに示されているＤＲＡＭ３０にアクセスした履歴が古い順番にバンクアドレスＢＡの順序を決定した場合の一例を、参考として示している。
【０１３２】
なお、図８の（ａ）に示した「Ｎｏ．」、「ＢＡ」、「ＲＷ」、および「Ｔ」は、図６の（ａ）と同様である。また、図８の（ｂ）および図８の（ｃ）に示した「ビジー終了タイミング」、「リクエスト出力順序」、「リクエスト許可タイミング」、および「バンクアドレスＢＡ」は、図６の（ｂ）と同様である。また、図８の（ｂ）および図８の（ｃ）に示した「アクセス方向ＲＷ」は、ＤＲＡＭ３０に備えたそれぞれバンクへのアクセス方向を表し、「Ｒ」がリードアクセス、「Ｗ」がライトアクセスであることを表している。
【０１３３】
アドレス順序決定処理の第１の変形例では、アドレス順序生成部２２１０が、図８の（ａ）に示したようなリクエスト受け付け履歴情報ＲＥＱＨＩＳに含まれるアクセス方向信号ＡＣＣＲＷの情報を参照して、ＤＲＡＭ３０に備えたそれぞれのバンクに対するアクセス方向の切り替えを少なくするようなバンクアドレスＢＡの順序を、以下のような処理手順によって決定する。つまり、アドレス順序決定処理の第１の変形例では、バスマスタ２２０がＤＲＡＭ３０にアクセスするバンクアドレスＢＡの順番が、アクセスした履歴が古い順番ではなく、リードアクセスとライトアクセスとの切り替えを少なくする順番となる。
【０１３４】
なお、以下の説明においては、上述したライトアクセス（データの書き込み）のみを行うバスマスタ２２０の一例と同様に、ＤＲＡＭ３０に備えたそれぞれのバンクにおけるバンクビジー時間が３０Ｔであるものとし、ＤＭＡバス調停部２３０においてＤＭＡ要求が許可される最小の間隔が４Ｔであるものとする。また、以下の説明においては、ＤＲＡＭ３０に備えたそれぞれのバンクに対するアクセス方向を切り替える際のリードライト切り替え時間が２０Ｔであるものとする。そして、以下の説明においては、バンクアドレスＢＡ＝０〜３にリードアクセスし、バンクアドレスＢＡ＝４〜７にライトアクセスするものとする。
【０１３５】
（手順Ａ）：まず、アドレス順序生成部２２１０は、連続した８回のＤＭＡ転送において、ＤＲＡＭ３０に対して直近にアクセスしたアクセス方向と同じ方向のアクセスをまとめて先に行い、ＤＲＡＭ３０に対して直近にアクセスしたアクセス方向と異なる方向のアクセスをまとめて後に行うように、仮のリクエスト出力順序を決定する。
【０１３６】
より具体的には、図８の（ａ）に示したリクエスト受け付け履歴情報ＲＥＱＨＩＳ−１では、バンクアドレスＢＡ−１＝１のバンクに対してアクセス方向ＲＷ−１＝Ｗのライトアクセスが実際に実行されたことを示している。従って、アドレス順序生成部２２１０は、リクエスト受け付け履歴情報ＲＥＱＨＩＳ−８〜リクエスト受け付け履歴情報ＲＥＱＨＩＳ−１のそれぞれに含まれるアクセス方向ＲＷを参照して、図８の（ｂ）に示したように、まず、ライトアクセスをまとめて行い、続いてリードアクセスをまとめて行うように、リクエスト出力順序を仮決定する。図８の（ｂ）に示した一例では、ライトアクセスにおいて履歴が古い順番に、バンクアドレスＢＡの順序を「６」、「７」、「５」、「４」の順番とし、その後、リードアクセスにおけるバンクアドレスＢＡの順序を「２」、「１」、「０」、「３」の順番とした場合の一例を示している。
【０１３７】
（手順Ｂ）：続いて、アドレス順序生成部２２１０は、図６の（ａ）に示したリクエスト受け付け履歴情報ＲＥＱＨＩＳを参照して、それぞれのバンクごとに、バンクビジー時間が終了するビジー終了タイミングを算出する。なお、手順Ｂにおけるビジー終了タイミングの算出方法は、上述した手順１と同様である。つまり、手順Ｂにおいても、アドレス順序生成部２２１０は、それぞれのバンクに対するアクセスが実際に実行された時間Ｔに、バンクビジー時間＝３０Ｔを加算することによってビジー終了タイミングを算出する。従って、手順Ｂの処理は、手順Ａの前に行ってもよい。
【０１３８】
（手順Ｃ）：続いて、アドレス順序生成部２２１０は、手順Ａにおいて仮決定したリクエスト出力順序でＤＭＡ転送を要求した際に、ＤＭＡ要求がＤＭＡバス調停部２３０によって最短で受け付けられた場合のリクエスト許可タイミングを順次算出する。なお、手順Ｃにおけるリクエスト許可タイミングの算出方法も、上述した手順３と同様である。ただし、アドレス順序決定処理の第１の変形例では、リードライト切り替え時間が考慮されている。アドレス順序生成部２２１０は、手順Ｃにおいて算出するリクエスト許可タイミングが、ＤＲＡＭ３０に対して異なるアクセス方向でアクセスするバンクに対するリクエストのリクエスト許可タイミングである場合には、ＤＭＡ要求が許可される最小の間隔の４Ｔではなく、リードライト切り替え時間の２０Ｔを加算することによって、リクエスト許可タイミングを算出する。
【０１３９】
より具体的には、リクエスト出力順序＝５に仮決定したバンクアドレスＢＡ＝２のバンクは、アクセス方向をライトアクセスからリードアクセスに切り替えるバンクである。このため、アドレス順序生成部２２１０は、リクエスト出力順序＝４に仮決定したバンクアドレスＢＡ＝４のバンクにおいて算出したリクエスト許可タイミング＝１２６Ｔに、リードライト切り替え時間の２０Ｔを加算することによって、リクエスト許可タイミング＝１２６Ｔ＋２０Ｔ＝１４６Ｔを算出する。以降同様に、アドレス順序生成部２２１０は、算出した直近のリクエスト許可タイミングに、ＤＭＡ要求が許可される最小の間隔が４Ｔまたはリードライト切り替え時間の２０Ｔを加算することによって、図８の（ｂ）に示したように、仮決定したリクエスト出力順序の順番でそれぞれのバンクに対するＤＭＡ要求が受け付けられた場合におけるリクエスト許可タイミングを順次算出する。
【０１４０】
なお、図８の（ｂ）に示したように、リクエスト出力順序＝３に仮決定したバンクアドレスＢＡ＝５のバンク、およびリクエスト出力順序＝４に仮決定したバンクアドレスＢＡ＝４のバンクは、算出したリクエスト許可タイミングが、算出した直近のリクエスト許可タイミングに、ＤＭＡ要求が許可される最小の間隔が４Ｔまたはリードライト切り替え時間の２０Ｔを加算したタイミングになっていない。そして、リクエスト出力順序＝３に仮決定したバンクアドレスＢＡ＝５のバンク、およびリクエスト出力順序＝４に仮決定したバンクアドレスＢＡ＝４のバンクは、算出したリクエスト許可タイミングが、手順Ｂまたは手順Ａの前に算出したビジー終了タイミングとなっている。本来であれば、リクエスト出力順序＝３に仮決定したバンクアドレスＢＡ＝５のバンク、およびリクエスト出力順序＝４に仮決定したバンクアドレスＢＡ＝４のバンクは、直前のアクセスと同じライトアクセスであるため、ＤＭＡ要求が許可される最小の間隔が４Ｔを加算することによってそれぞれのリクエスト許可タイミングを算出することができる。しかし、算出したそれぞれのリクエスト許可タイミングは、ビジー終了タイミングよりも前のタイミング、すなわち、それぞれのバンクにおけるバンクビジー時間の３０Ｔの期間内であることから、それぞれのバンクに対するＤＭＡ要求は、最小の間隔の４Ｔで受け付けられない。このため、リクエスト許可タイミングは、バンクビジー時間が終了するビジー終了タイミングとなっているのである。
【０１４１】
より具体的には、例えば、リクエスト出力順序＝３に仮決定したバンクアドレスＢＡ＝５のバンクは、リクエスト出力順序＝２に仮決定したバンクアドレスＢＡ＝７のバンクにおいて算出したリクエスト許可タイミング＝１０８Ｔに、ＤＭＡ要求が許可される最小の間隔が４Ｔを加算することによって、リクエスト許可タイミング＝１０８Ｔ＋４Ｔ＝１１２Ｔを算出する。しかし、リクエスト出力順序＝３に仮決定したバンクアドレスＢＡ＝５のバンクに対するアクセスが実際に実行された時間Ｔ−３は「９２Ｔ」であるため、リクエスト受け付け履歴情報ＲＥＱＨＩＳ−３に示された時間Ｔ−３＝９２Ｔにバンクビジー時間＝３０Ｔを加算することによって、バンクアドレスＢＡ−３＝５のバンクにおけるビジー終了タイミング＝９２Ｔ＋３０Ｔ＝１２２Ｔと算出されている。このため、リクエスト出力順序＝３に仮決定したバンクアドレスＢＡ＝５のバンクのリクエスト許可タイミングは「１２２Ｔ」となる。
【０１４２】
（手順Ｄ）：続いて、アドレス順序生成部２２１０は、最終的なリクエスト出力順序、つまり、ＤＭＡ転送においてアクセスするバンクの順序を決定する。なお、手順Ｄにおける最終的なリクエスト出力順序の決定方法は、上述した手順４と同様である。つまり、手順Ｄにおいても、アドレス順序生成部２２１０は、手順Ａにおいて仮決定したリクエスト出力順序で、手順Ｂまたは手順Ａの前に算出したビジー終了タイミングと、手順Ｃにおいて算出したリクエスト許可タイミングとのそれぞれを比較し、ビジー終了タイミングがリクエスト許可タイミング以下である場合に、仮決定したリクエスト出力順序のそれぞれのバンクを、ＤＭＡ転送においてアクセスする最終的なバンクの順序に決定する。
【０１４３】
このように、アドレス順序決定処理の第１の変形例では、アドレス順序生成部２２１０が、ＤＲＡＭ３０に備えたそれぞれのバンクに対するアクセス方向の切り替えが少なくなるように、直近にアクセスしたアクセス方向と同じ方向のアクセスを先に行い、引き続き、直近にアクセスしたアクセス方向と異なる方向のアクセスを行うように、バンクアドレスＢＡの順序を決定する。これにより、アドレス順序決定処理の第１の変形例では、ＤＲＡＭ３０に対するアクセスの効率を低下させることなく、１回の連続転送における一連のＤＭＡ転送を終了することができる。
【０１４４】
ここで、比較のため、図８の（ｃ）を用いて、アドレス順序生成部２２１０が、図８の（ａ）に示したリクエスト受け付け履歴情報ＲＥＱＨＩＳに示されているＤＲＡＭ３０にアクセスした履歴が古い順番にバンクアドレスＢＡの順序を決定した場合の一例について説明する。なお、図８の（ｃ）に示したアクセスした履歴が古い順番にバンクアドレスＢＡの順序を決定するアドレス順序決定処理の処理手順は、図６において説明したアドレス順序決定処理の処理手順と同様である。従って、図８の（ｃ）においては、図６の（ｂ）に示した一例と同様に、バンクアドレスＢＡの順序が、「０」、「３」、「６」、「７」、「２」、「５」、「４」、「１」の順番に決定されている。
【０１４５】
ただし、図８の（ｃ）に示した一例では、リクエスト許可タイミングを、リードライト切り替え時間を含めて算出している。このため、図８の（ｃ）に示した一例では、アクセス方向をライトアクセスからリードアクセスに切り替えるバンク、またはアクセス方向をリードアクセスからライトアクセスに切り替えるバンクのときに、ＤＭＡ要求が許可される最小の間隔の４Ｔではなく、リードライト切り替え時間の２０Ｔが加算して、リクエスト許可タイミングを算出している。
【０１４６】
より具体的には、例えば、リクエスト出力順序＝１に仮決定したバンクアドレスＢＡ−８＝０のバンクは、アクセス方向をライトアクセスからリードアクセスに切り替えるバンクである。このため、アドレス順序生成部２２１０は、図８の（ａ）においてリクエスト受け付け履歴情報ＲＥＱＨＩＳ−１が示している、直近のＤＲＡＭ３０に対するアクセスが実際に実行された時間Ｔ−１＝１００Ｔに、リードライト切り替え時間の２０Ｔを加算することによって、リクエスト許可タイミング＝１００Ｔ＋２０Ｔ＝１２０Ｔを算出する。また、例えば、リクエスト出力順序＝３に仮決定したバンクアドレスＢＡ−６＝６のバンクは、アクセス方向をリードアクセスからライトアクセスに切り替えるバンクである。このため、アドレス順序生成部２２１０は、リクエスト出力順序＝２に仮決定したバンクアドレスＢＡ−７＝３のバンクにおいて算出したリクエスト許可タイミング＝１２４Ｔに、同様にリードライト切り替え時間の２０Ｔを加算することによって、リクエスト許可タイミング＝１２４Ｔ＋２０Ｔ＝１４４Ｔを算出する。また、例えば、リクエスト出力順序＝５に仮決定したバンクアドレスＢＡ−４＝２のバンクは、アクセス方向をライトアクセスからリードアクセスに再び切り替えるバンクである。このため、アドレス順序生成部２２１０は、リクエスト出力順序＝４に仮決定したバンクアドレスＢＡ−５＝７のバンクにおいて算出したリクエスト許可タイミング＝１４８Ｔに、同様にリードライト切り替え時間の２０Ｔを加算することによって、リクエスト許可タイミング＝１４８Ｔ＋２０Ｔ＝１６８Ｔを算出する。
【０１４７】
なお、図８の（ｃ）に示した一例では、全てのビジー終了タイミングが、対応するリクエスト許可タイミング以下である。従って、アドレス順序生成部２２１０は、図８の（ｃ）に示したバンクアドレスＢＡの順序、すなわち、図８の（ａ）に示したリクエスト受け付け履歴情報ＲＥＱＨＩＳに示されているＤＲＡＭ３０へのアクセスの履歴が古い順番を、最終的なバンクアドレスＢＡの順序として決定することもできる。しかし、図８の（ｃ）に示した一例では、１回の連続転送における最後のＤＭＡ転送、つまり、８回目のＤＭＡ要求が許可されるリクエスト許可タイミングが、図８の（ｂ）に示した、ＤＲＡＭ３０に備えたそれぞれのバンクに対するアクセス方向の切り替えを少なくするようなバンクアドレスＢＡの順序を決定した場合よりも遅くなっている。より具体的には、図８の（ｂ）に示した一例では、リクエスト出力順序＝８のバンクアドレスＢＡ＝３におけるリクエスト許可タイミングが「１５８Ｔ」であるのに対して、図８の（ｃ）に示した一例では、リクエスト出力順序＝８のバンクアドレスＢＡ＝１におけるリクエスト許可タイミングが「２１２Ｔ」である。このため、アドレス順序生成部２２１０では、手順Ａにおいて仮決定したリクエスト出力順序（図８の（ｂ）を参照）のそれぞれのバンクを最終的なバンクの順序として決定する方が、１回の連続転送における一連のＤＭＡ転送をより早く終了することができる。
【０１４８】
（アドレス順序決定処理の第２の変形例）
上述したアドレス順序決定処理の第１の変形例の説明では、ＤＲＡＭ３０に対して直近にアクセスしたアクセス方向と同じ方向のアクセスを先に行い、続いて、ＤＲＡＭ３０に対して直近にアクセスしたアクセス方向と異なる方向のアクセスを行うようにリクエスト出力順序を仮決定する場合について説明した。しかし、ＤＲＡＭ３０の規格やＤＲＡＭ３０に対するアクセスの順番などの種々の条件によっては、一連のＤＭＡ転送をより早く終了することができるバンクアドレスＢＡの順番が異なってくる。このため、アドレス順序生成部２２１０は、複数種類のバンクアドレスＢＡの順序を算出し、算出したそれぞれのバンクアドレスＢＡの順序の中から、１回の連続転送における一連のＤＭＡ転送を最も早く終了することができる順序を、最終的なバンクの順序として決定する構成にしてもよい。
【０１４９】
図９は、本発明の第１の実施形態におけるメモリアクセス制御装置２００を構成するバスマスタ２２０に備えたアドレス順序生成部２２１０がアドレスの順序を決定するさらに別の処理（アドレス順序決定処理）を説明する図である。図９も、図８に示したアドレス順序決定処理の第１の変形例と同様に、ＤＲＡＭ３０へのアクセス方向がライトアクセスとリードアクセスとの両方であるバスマスタ２２０に備えたアドレス順序生成部２２１０が、リクエスト受け付け履歴情報ＲＥＱＨＩＳを参照してアドレスの順序を決定するアドレス順序決定処理の一例である。図９の（ａ）には、バスマスタ２２０が１回の連続転送の転送単位における最初のＤＭＡ転送の要求をＤＭＡバス調停部２３０に出力する直前に、ＤＭＡバス調停部２３０から出力されていたリクエスト受け付け履歴情報ＲＥＱＨＩＳの一例を示している。また、図９の（ｂ）には、アドレス順序生成部２２１０が、第１の実施形態の第１の変形例のアドレス順序決定処理と同様に、リードアクセスとライトアクセスとの切り替えを少なくする順番となるようにバンクアドレスＢＡの順序を決定する場合の一例を示している。また、図９の（ｃ）には、アドレス順序生成部２２１０が、第１の実施形態の第１の変形例のアドレス順序決定処理と同様に同じ方向のアクセスをまとめるが、バンクビジー時間にかかる期間が短くなるようにバンクアドレスＢＡの順序を決定する場合の一例を示している。
【０１５０】
なお、図９の（ａ）に示した「Ｎｏ．」、「ＢＡ」、「ＲＷ」、および「Ｔ」は、図８の（ａ）と同様である。また、図９の（ｂ）および図９の（ｃ）に示した「ビジー終了タイミング」、「リクエスト出力順序」、「リクエスト許可タイミング」、「バンクアドレスＢＡ」、および「アクセス方向ＲＷ」は、図８の（ｂ）と同様である。
【０１５１】
なお、以下の説明においては、アドレス順序決定処理の第１の変形例と同様に、バンクビジー時間が３０Ｔであり、ＤＭＡ要求が許可される最小の間隔が４Ｔであるものとする。ただし、アドレス順序決定処理の第２の変形例では、リードライト切り替え時間が１５Ｔであるものとする。なお、それぞれのバンクのアクセス方向は、アドレス順序決定処理の第１の変形例と同様であるものとする。つまり、アドレス順序決定処理の第２の変形例においても、バンクアドレスＢＡ＝０〜３にリードアクセスし、バンクアドレスＢＡ＝４〜７にライトアクセスするものとする。
【０１５２】
アドレス順序決定処理の第２の変形例でも、アドレス順序決定処理の第１の変形例と同様に、アドレス順序生成部２２１０が、図９の（ａ）に示したようなリクエスト受け付け履歴情報ＲＥＱＨＩＳに含まれるアクセス方向信号ＡＣＣＲＷの情報を参照して、リクエスト出力順序を仮決定する。そして、アドレス順序決定処理の第２の変形例でも、アドレス順序決定処理の第１の変形例と同様に、アドレス順序生成部２２１０が、ビジー終了タイミングとリクエスト許可タイミングとを算出して比較し、最終的なバンクの順序に決定する。なお、アドレス順序決定処理の第２の変形例における処理手順は、アドレス順序決定処理の第１の変形例における処理手順と同様である。ただし、アドレス順序決定処理の第２の変形例では、手順Ａにおいて、アドレス順序生成部２２１０は、複数種類のリクエスト出力順序を仮決定する。そして、アドレス順序決定処理の第２の変形例では、アドレス順序生成部２２１０が、仮決定したそれぞれのリクエスト出力順序に対して手順Ｂおよび手順Ｃの処理を行って、ＤＲＡＭ３０に対するアクセスの効率がより高く、１回の連続転送における一連のＤＭＡ転送をより早く終了することができるリクエスト出力順序を、最終的なバンクの順序として決定する。なお、アドレス順序生成部２２１０は、決定したそれぞれのリクエスト出力順序に対する手順Ｂおよび手順Ｃの処理を平行して同時に行ってもよい。
【０１５３】
ここで、アドレス順序生成部２２１０が、図９の（ａ）に示したような、バンクアドレスＢＡが「１」、「０」、「４」、「７」、「５」、「６」、「２」、「１」、「３」、「０」の順番で、バスマスタ２２０とＤＲＡＭ３０との間でのＤＭＡ転送が実際に行われたことを示すリクエスト受け付け履歴情報ＲＥＱＨＩＳを参照してアドレス順序決定処理を行う場合を考える。アドレス順序生成部２２１０は、手順Ａにおいて、リクエスト受け付け履歴情報ＲＥＱＨＩＳに含まれるアクセス方向信号ＡＣＣＲＷの情報を参照して、複数種類のリクエスト出力順序を仮決定する。
【０１５４】
図９の（ｂ）には、アドレス順序生成部２２１０が、手順Ａにおいて、同じ方向のアクセスをまとめた上で、直近にアクセスしたアクセス方向、かつリードアクセスとライトアクセスとの切り替えを少なくすることを優先的に考えて決定したリクエスト出力順序、およびこのリクエスト出力順序に対して手順Ｂおよび手順Ｃの処理を行って算出したビジー終了タイミングおよびリクエスト許可タイミングを示している。より具体的には、図９の（ｂ）には、ＤＲＡＭ３０に対する直近のアクセス方向と同じライトアクセスを「２」、「１」、「３」、「０」のバンクアドレスＢＡの順番で行い、引き続き、リードアクセスを「４」、「７」、「５」、「６」のバンクアドレスＢＡの順番で行うリクエスト出力順序を示している。図９の（ｂ）に示した一例では、リクエスト出力順序＝８のバンクアドレスＢＡ＝６におけるリクエスト許可タイミングが「１５７Ｔ」である。
【０１５５】
また、図９の（ｃ）には、アドレス順序生成部２２１０が、手順Ａにおいて、同じ方向のアクセスをまとめた上で、図９の（ａ）のリクエスト受け付け履歴情報ＲＥＱＨＩＳに示されたアクセスした履歴が古い順番を優先的に考えて決定したリクエスト出力順序、およびこのリクエスト出力順序に対して手順Ｂおよび手順Ｃの処理を行って算出したビジー終了タイミングおよびリクエスト許可タイミングを示している。より具体的には、図９の（ｃ）には、リードアクセスを「４」、「７」、「５」、「６」のバンクアドレスＢＡの順番で行い、引き続き、ライトアクセスを「２」、「１」、「３」、「０」のバンクアドレスＢＡの順番で行うリクエスト出力順序を示している。図９の（ｃ）に示した一例では、リクエスト出力順序＝８のバンクアドレスＢＡ＝０におけるリクエスト許可タイミングが「１５４Ｔ」である。
【０１５６】
この場合、アドレス順序生成部２２１０は、リクエスト出力順序＝８のバンクアドレスＢＡに対するＤＭＡ要求がより早く受け付けられる、図９の（ｃ）に示した一例のリクエスト出力順序を、最終的なバンクの順序として決定する。
【０１５７】
このように、アドレス順序決定処理の第２の変形例では、アドレス順序生成部２２１０が、複数種類のリクエスト出力順序を仮決定し、仮決定したそれぞれのリクエスト出力順序についてリクエスト許可タイミングを算出する。そして、アドレス順序決定処理の第２の変形例では、アドレス順序生成部２２１０が、算出したリクエスト許可タイミングにおいて、より早くＤＭＡ要求が受け付けられるリクエスト出力順序を、最終的なバンクの順序に決定する。これにより、アドレス順序決定処理の第２の変形例では、１回の連続転送における一連のＤＭＡ転送をより早く終了することができる。
【０１５８】
本第１の実施形態によれば、アドレス空間が複数のバンクに分けられたメモリ（ＤＲＡＭ３０）へのアクセスを要求するアクセス要求（ＤＭＡ要求）を出力する複数のバスマスタ（バスマスタ２２０）と、ＤＲＡＭ３０が接続され、バスマスタ２２０のそれぞれから出力されたＤＭＡ要求を調停し、受け付けたＤＭＡ要求に応じてＤＲＡＭ３０へのアクセスを制御するアービタ（ＤＭＡバス調停部２３０）と、ＤＭＡバス調停部２３０によって受け付けられた複数のＤＭＡ要求に関する情報（リクエスト受け付け履歴情報）を取得してリクエスト受け付け履歴情報（リクエスト受け付け履歴情報ＲＥＱＨＩＳ）として記憶し、記憶したそれぞれのリクエスト受け付け履歴情報ＲＥＱＨＩＳを出力するリクエスト受け付け履歴取得部（リクエスト受け付け履歴取得部２３１）と、を備え、複数のバスマスタ２２０の内、優先度が高い少なくとも１つのバスマスタ２２０を高優先バスマスタ（例えば、バスマスタ２２０−１）としたとき、バスマスタ２２０−１は、ＤＲＡＭ３０の複数のバンクに連続してアクセスする際に、リクエスト受け付け履歴情報ＲＥＱＨＩＳを参照して、それぞれのＤＭＡ要求によって指定するバンクの順序（より具体的には、バンクアドレスＢＡの順序）を決定し、決定した順序でバンクを指定するＤＭＡ要求を出力する、メモリアクセス制御装置（メモリアクセス制御装置２００）が構成される。
【０１５９】
また、本第１の実施形態によれば、リクエスト受け付け履歴取得部２３１は、少なくとも、ＤＭＡ要求において指定されたバンクの情報（バンクアドレスＢＡの情報）と、ＤＲＡＭ３０に対するアクセス方向を表す情報（アクセス方向ＲＷの情報）とを紐づけたリクエスト受け付け履歴情報ＲＥＱＨＩＳを、ＤＭＡバス調停部２３０によって受け付けられたそれぞれのＤＭＡ要求ごとに記憶し、バスマスタ２２０−１は、リクエスト受け付け履歴情報ＲＥＱＨＩＳに含まれるバンクアドレスＢＡの情報に基づいて、それぞれのＤＭＡ要求によって指定するバンクアドレスＢＡの順序を、同一のバンクへの所定の時間（バンクビジー時間）内でのアクセスを回避する順序に決定する、メモリアクセス制御装置２００が構成される。
【０１６０】
また、本第１の実施形態によれば、リクエスト受け付け履歴取得部２３１は、さらに、ＤＭＡバス調停部２３０によってＤＭＡ要求が受け付けられたタイミングを表す情報（時間Ｔの情報）を取得し、取得した時間Ｔの情報を、対応するリクエスト受け付け履歴情報に紐づけて、リクエスト受け付け履歴情報ＲＥＱＨＩＳとして記憶する、メモリアクセス制御装置２００が構成される。
【０１６１】
また、本第１の実施形態によれば、リクエスト受け付け履歴取得部２３１は、ＤＭＡバス調停部２３０によって最後に受け付けられたＤＭＡ要求から遡った予め定めた数（例えば、ＤＲＡＭ３０に備えたバンクの数と同じ数）、または現時点から過去の予め定めた一定期間（例えば、バンクビジー時間と同じ期間）のリクエスト受け付け履歴情報ＲＥＱＨＩＳを記憶する、メモリアクセス制御装置２００が構成される。
【０１６２】
また、本第１の実施形態によれば、リクエスト受け付け履歴取得部２３１は、バンクビジー時間に基づいて、リクエスト受け付け履歴情報ＲＥＱＨＩＳを記憶する期間（例えば、バンクビジー時間と同じ期間）を設定する、メモリアクセス制御装置２００が構成される。
【０１６３】
また、本第１の実施形態によれば、アドレス空間が複数のバンクに分けられたメモリ（ＤＲＡＭ３０）へのアクセスを要求するアクセス要求（ＤＭＡ要求）を出力する複数のバスマスタ（バスマスタ２２０）と、ＤＲＡＭ３０が接続され、バスマスタ２２０のそれぞれから出力されたＤＭＡ要求を調停し、受け付けたＤＭＡ要求に応じてＤＲＡＭ３０へのアクセスを制御するアービタ（ＤＭＡバス調停部２３０）と、ＤＭＡバス調停部２３０によって受け付けられた複数のＤＭＡ要求に関する情報（リクエスト受け付け履歴情報）を取得してリクエスト受け付け履歴情報（リクエスト受け付け履歴情報ＲＥＱＨＩＳ）として記憶し、記憶したそれぞれのリクエスト受け付け履歴情報ＲＥＱＨＩＳを出力するリクエスト受け付け履歴取得部（リクエスト受け付け履歴取得部２３１）と、を備え、複数のバスマスタ２２０の内、優先度が高い少なくとも１つのバスマスタ２２０を高優先バスマスタ（例えば、バスマスタ２２０−１）としたとき、バスマスタ２２０−１は、ＤＲＡＭ３０の複数のバンクに連続してアクセスする際に、リクエスト受け付け履歴情報ＲＥＱＨＩＳを参照して、それぞれのＤＭＡ要求によって指定するバンクの順序（より具体的には、バンクアドレスＢＡの順序）を決定し、決定した順序でバンクを指定するＤＭＡ要求を出力するメモリアクセス制御装置（メモリアクセス制御装置２００）、を備える、画像処理装置（画像処理装置２０）が構成される。
【０１６４】
また、本第１の実施形態によれば、アドレス空間が複数のバンクに分けられたメモリ（ＤＲＡＭ３０）へのアクセスを要求するアクセス要求（ＤＭＡ要求）を出力する複数のバスマスタ（バスマスタ２２０）と、ＤＲＡＭ３０が接続され、バスマスタ２２０のそれぞれから出力されたＤＭＡ要求を調停し、受け付けたＤＭＡ要求に応じてＤＲＡＭ３０へのアクセスを制御するアービタ（ＤＭＡバス調停部２３０）と、ＤＭＡバス調停部２３０によって受け付けられた複数のＤＭＡ要求に関する情報（リクエスト受け付け履歴情報）を取得してリクエスト受け付け履歴情報（リクエスト受け付け履歴情報ＲＥＱＨＩＳ）として記憶し、記憶したそれぞれのリクエスト受け付け履歴情報ＲＥＱＨＩＳを出力するリクエスト受け付け履歴取得部（リクエスト受け付け履歴取得部２３１）と、を備え、複数のバスマスタ２２０の内、優先度が高い少なくとも１つのバスマスタ２２０を高優先バスマスタ（例えば、バスマスタ２２０−１）としたとき、バスマスタ２２０−１は、ＤＲＡＭ３０の複数のバンクに連続してアクセスする際に、リクエスト受け付け履歴情報ＲＥＱＨＩＳを参照して、それぞれのＤＭＡ要求によって指定するバンクの順序（より具体的には、バンクアドレスＢＡの順序）を決定し、決定した順序でバンクを指定するＤＭＡ要求を出力するメモリアクセス制御装置（メモリアクセス制御装置２００）を備える画像処理装置（画像処理装置２０）、を備える、撮像装置（撮像装置１）が構成される。
【０１６５】
上述したように、本発明の第１の実施形態のメモリアクセス制御装置では、ＤＲＡＭ３０を共有するそれぞれのバスマスタ２２０によるＤＭＡ転送、つまり、ＤＲＡＭ３０に対するアクセスの履歴であるリクエスト受け付け履歴情報を記憶する。そして、本発明の第１の実施形態のメモリアクセス制御装置では、それぞれのバスマスタ２２０が、ＤＭＡ転送を開始する直前に、記憶されているリクエスト受け付け履歴情報を参照して、バンクビジー状態になっているバンクに対するアクセスを回避するように、ＤＲＡＭ３０に対してアクセスするバンクアドレスＢＡの順番、つまり、ＤＭＡ転送の順番を変更する。これにより、本発明の第１の実施形態のメモリアクセス制御装置では、ＤＲＡＭ３０におけるバンクビジー時間の制約を回避した順番で、ＤＭＡ転送を連続して行うことができる。このことにより、本発明の第１の実施形態のメモリアクセス制御装置では、ＤＲＡＭ３０との間でＤＭＡ転送を行う際に、ＤＲＡＭ３０に対するアクセスの効率を高めることができる。
【０１６６】
なお、本発明の第１の実施形態では、メモリアクセス制御装置２００に備えた高優先バスマスタであるバスマスタ２２０−１が、１回の連続転送において、ＤＲＡＭ３０に備えた複数のバンクに連続してアクセスしてＤＭＡ転送を行う場合を示した。そして、本発明の第１の実施形態では、バスマスタ２２０−１が１回の連続転送におけるＤＭＡ要求を出力している期間中、つまり、８回のＤＭＡ転送の期間中に、メモリアクセス制御装置２００に備えた低優先バスマスタであるバスマスタ２２０−２が新たなＤＭＡ要求を出力した場合でも、メモリアクセス制御装置２００に備えたアービタであるＤＭＡバス調停部２３０が、バスマスタ２２０−２からのＤＭＡ要求が受け付けない場合を示した。しかし、バスマスタ２２０−１が一連のＤＭＡ要求を出力している期間中にメモリアクセス制御装置２００に備えた他の低優先バスマスタが出力したＤＭＡ要求が、ＤＭＡバス調停部２３０によって受け付けられてしまうことも考えられる。この場合、バスマスタ２２０−１のＤＭＡ転送が、ＤＭＡ要求が受け付けられた他の低優先バスマスタのＤＭＡ転送が終了するまで待たされてしまうことになる。このため、本発明のメモリアクセス制御装置では、高優先バスマスタが一連のＤＭＡ要求を出力している期間中は、他の低優先バスマスタからのＤＭＡ要求を受け付けないようにする機能を備えていてもよい。この機能によって、本発明のメモリアクセス制御装置では、高優先バスマスタにおける一連のＤＭＡ転送が終了するまでの期間を短縮する効果を、より確実に得ることができる。
【０１６７】
また、第１の実施形態では、メモリアクセス制御装置２００に備えた高優先バスマスタであるバスマスタ２２０−１が、１回の連続転送を開始する直前のリクエスト受け付け履歴情報ＲＥＱＨＩＳを参照して、ＤＲＡＭ３０に対してアクセスするバンクアドレスＢＡの順番を決定する場合を示した。しかし、バスマスタ２２０−１がバンクアドレスＢＡの順番を決定するためのアドレス順序決定処理を行っている間に、メモリアクセス制御装置２００に備えたバスマスタ２２０−２も含む他の低優先バスマスタが、新たなＤＭＡ要求を出力してしまうことも考えられる。そして、メモリアクセス制御装置２００に備えた他の低優先バスマスタが指定するＤＲＡＭ３０のバンクが、バスマスタ２２０−１がアドレス順序決定処理において決定した１番目のバンクと同一のバンクであることも考えられる。この場合、バスマスタ２２０−１の１回の連続転送における１回目のＤＭＡ転送が、他の低優先バスマスタが指定したバンクのバンクビジー時間が経過するまで待たされてしまうことになる。このため、本発明のメモリアクセス制御装置では、高優先バスマスタがアドレス順序決定処理を行っている間、他の低優先バスマスタからのＤＭＡ要求を受け付けないようにする機能を備えていてもよい。この機能によって、本発明のメモリアクセス制御装置では、バンクアドレスＢＡの順番を変更することによる効果、つまり、ＤＲＡＭ３０に対するアクセスの効率を高め、一連のＤＭＡ転送が終了するまでの期間も短縮する効果を、より確実に得ることができる。
【０１６８】
（第２の実施形態）
次に、本発明の第２の実施形態のメモリアクセス制御装置について説明する。本発明の第２の実施形態のメモリアクセス制御装置は、高優先バスマスタが一連のＤＭＡ要求を出力している期間中、および高優先バスマスタがアドレス順序決定処理を行っている間に、他の低優先バスマスタからのＤＭＡ要求を受け付けないようにする機能を備えている構成のメモリアクセス制御装置である。
【０１６９】
なお、以下の説明においても、本発明の第２の実施形態のメモリアクセス制御装置が、例えば、静止画用カメラや動画用カメラなどの撮像装置に搭載されている画像処理装置に備えられている場合について説明する。本発明の第２の実施形態におけるメモリアクセス制御装置を備えた画像処理装置を搭載した撮像装置の構成は、図１に示した第１の実施形態におけるメモリアクセス制御装置を備えた画像処理装置２０を搭載した撮像装置１の概略構成と同様である。従って、本発明の第２の実施形態におけるメモリアクセス制御装置を備えた画像処理装置を搭載した撮像装置の構成に関する詳細な説明は省略し、図１に示した第１の実施形態におけるメモリアクセス制御装置を備えた画像処理装置２０を搭載した撮像装置１の構成要素と同様の構成要素を表すときには同一の符号を用いて説明する。
【０１７０】
次に、本発明の第２の実施形態のメモリアクセス制御装置の構成および動作について説明する。図１０は、本発明の第２の実施形態におけるメモリアクセス制御装置の概略構成を示したブロック図である。以下の説明においては、本発明の第２の実施形態におけるメモリアクセス制御装置を、「メモリアクセス制御装置５００」という。図１０には、図２に示した第１の実施形態のメモリアクセス制御装置２００と同様に、ｎ個（ｎ＝自然数、正の整数）のバスマスタとアービタとによって構成され、ＤＭＡ転送によってＤＲＡＭ３０にアクセスするメモリアクセス制御装置５００の概略構成の一例を示している。
【０１７１】
ただし、図１０に示したメモリアクセス制御装置５００では、１個のバスマスタが、優先度が高い高優先バスマスタとなっている。そして、メモリアクセス制御装置５００では、高優先バスマスタが一連のＤＭＡ要求を出力している期間中、およびＤＭＡ転送する際に指定するバンクアドレスＢＡの順番を決定するためのアドレス順序決定処理を行っている間に、他の低優先バスマスタからのＤＭＡ要求を受け付けないようにする機能を備えている。図１０に示したメモリアクセス制御装置５００は、高優先バスマスタ５２０と、ｎ−１個（ｎ＝自然数、正の整数）のバスマスタ２２０−２〜バスマスタ２２０−ｎと、ＤＭＡバス調停部５３０と、を備えている。
【０１７２】
図１０に示したメモリアクセス制御装置５００を構成する構成要素には、図２に示した第１の実施形態のメモリアクセス制御装置２００を構成する構成要素と同様の構成要素を含んでいる。従って、以下の説明においては、メモリアクセス制御装置５００を構成する構成要素において、第１の実施形態のメモリアクセス制御装置２００を構成する構成要素と同様の構成要素には同一の符号を付与し、それぞれの構成要素に関する詳細な説明は省略する。なお、以下の説明においても、バスマスタ２２０−２〜バスマスタ２２０−ｎのそれぞれを区別せずに表すときには、「バスマスタ２２０」という。なお、図１に示した撮像装置１においては、高優先バスマスタ５２０が、例えば、画像処理装置２０に備えた撮像インターフェース部２２１または表示インターフェース部２２４に相当し、バスマスタ２２０のそれぞれが、画像処理装置２０に備えた他のいずれかの処理ブロックに対応する。
【０１７３】
図１０に示したメモリアクセス制御装置５００では、高優先バスマスタ５２０を、図２に示した第１の実施形態のメモリアクセス制御装置２００に備えたバスマスタ２２０−１の代わりに備えている。また、図１０に示したメモリアクセス制御装置５００では、ＤＭＡバス調停部５３０を、図２に示した第１の実施形態のメモリアクセス制御装置２００に備えたＤＭＡバス調停部２３０の代わりに備えている。ＤＭＡバス調停部５３０は、アクセス調停部２３０１と、リクエスト受け付け履歴取得部２３１と、リクエスト受け付けマスク部５３２と、を備えている。なお、ＤＭＡバス調停部５３０の構成は、図３に示した第１の実施形態のメモリアクセス制御装置２００を構成するＤＭＡバス調停部２３０に、リクエスト受け付けマスク部５３２が追加された構成である。つまり、図１０においては、ＤＭＡバス調停部５３０にも備えている、ＤＭＡバス調停部２３０に備えたメモリ制御部２３０２と、マルチプレクサ（ＭＵＸ）２３０３と、アドレス生成部２３０４と、データ制御部２３０５とのそれぞれの構成要素の図示を省略している。
【０１７４】
高優先バスマスタ５２０は、それぞれのバスマスタ２２０と同様に、ＤＭＡ転送を開始する際に、ＤＲＡＭ３０に対してＤＭＡ転送を要求することを表すＤＭＡ要求信号ＤＭＡＲＥＱ−１と、アクセスするＤＲＡＭ３０のアドレスを表すＤＭＡアドレスＤＭＡＡＤ−１と、ＤＲＡＭ３０に対するアクセス方向を指定するＤＭＡリードライト信号ＤＭＡＲＷ−１とを、ＤＭＡバス調停部５３０に出力する。また、高優先バスマスタ５２０は、それぞれのバスマスタ２２０と同様に、ＤＭＡバス調停部５３０から出力されたＤＭＡ許可信号ＤＭＡＡＣＫ−１によってＤＭＡ許可が通知された後、要求したＤＭＡ転送を開始する。なお、図１０においては、高優先バスマスタ５２０がＤＭＡバス調停部５３０との間でやり取りするＤＭＡ要求信号ＤＭＡＲＥＱ−１とＤＭＡ許可信号ＤＭＡＡＣＫ−１との信号のみを示している。
【０１７５】
また、高優先バスマスタ５２０は、ＤＲＡＭ３０に対してＤＭＡ転送を要求する際に、メモリアクセス制御装置５００に備えたバスマスタ２２０から出力されたＤＭＡ要求のマスクを指示するリクエスト受け付けマスク信号ＲＥＱＭＡＳＫを、ＤＭＡバス調停部５３０に出力する。このリクエスト受け付けマスク信号ＲＥＱＭＡＳＫは、高優先バスマスタ５２０が、リクエスト受け付け履歴情報ＲＥＱＨＩＳを参照してバンクアドレスＢＡの順番を決定するアドレス順序決定処理の期間中に、ＤＭＡバス調停部５３０が、バスマスタ２２０から出力されたＤＭＡ要求信号ＤＭＡＲＥＱを受け付けないようにマスクするための信号である。
【０１７６】
ＤＭＡバス調停部５３０は、第１の実施形態のメモリアクセス制御装置２００を構成するＤＭＡバス調停部２３０と同様に、アクセス調停部２３０１によって、高優先バスマスタ５２０およびバスマスタ２２０のそれぞれから出力されたＤＭＡ要求信号ＤＭＡＲＥＱを調停し、ＤＭＡ要求を受け付けた高優先バスマスタ５２０またはバスマスタ２２０に、ＤＭＡ要求を受け付けたことを通知するためのＤＭＡ許可信号ＤＭＡＡＣＫを出力する。
【０１７７】
なお、ＤＭＡバス調停部５３０では、リクエスト受け付けマスク部５３２が、高優先バスマスタ５２０から出力されたＤＭＡ要求信号ＤＭＡＲＥＱ−１およびリクエスト受け付けマスク信号ＲＥＱＭＡＳＫに従って、それぞれのバスマスタ２２０から出力されたＤＭＡ要求信号ＤＭＡＲＥＱのアクセス調停部２３０１への出力をマスクする。これにより、ＤＭＡバス調停部５３０に備えたアクセス調停部２３０１は、ＤＭＡ要求信号ＤＭＡＲＥＱがマスクされたバスマスタ２２０からのＤＭＡ要求の調停を行わず、高優先バスマスタ５２０から出力されたＤＭＡ要求信号ＤＭＡＲＥＱ−１を受け付けることになる。
【０１７８】
そして、ＤＭＡバス調停部５３０は、ＤＭＡバス調停部２３０と同様に、ＤＭＡ要求を受け付けた高優先バスマスタ５２０またはバスマスタ２２０のいずれかからのＤＲＡＭ３０へのアクセスに応じてＤＲＡＭ３０を実際に制御して、ＤＭＡ要求を受け付けたバスマスタ２２０とＤＲＡＭ３０との間でのデータの受け渡し（ＤＭＡ転送）を行う。
【０１７９】
また、ＤＭＡバス調停部５３０は、第１の実施形態のメモリアクセス制御装置２００を構成するＤＭＡバス調停部２３０と同様に、リクエスト受け付け履歴取得部２３１によって、受け付けたＤＭＡ要求に関するリクエスト受け付け履歴情報を取得して記憶し、記憶したリクエスト受け付け履歴情報ＲＥＱＨＩＳを、高優先バスマスタ５２０およびバスマスタ２２０のそれぞれに出力する。
【０１８０】
次に、メモリアクセス制御装置５００を構成する高優先バスマスタ５２０のより詳細な構成および動作について説明する。なお、以下の説明においては、ＤＭＡ転送におけるＤＲＡＭ３０へのアクセス方向が、ライトアクセス（データの書き込み）のみである高優先バスマスタ５２０を例として説明する。このライトアクセスのみのＤＭＡ転送を行う構成の高優先バスマスタ５２０は、図１に示した撮像装置１においては、例えば、撮像インターフェース部２２１に相当する。
【０１８１】
図１１は、本発明の第２の実施形態におけるメモリアクセス制御装置５００を構成する高優先バスマスタ５２０の概略構成を示したブロック図である。図５に示したバスマスタ２２０と同様に、１回の連続転送においてＤＲＡＭ３０に備えた８つのバンクに対して連続して８回のＤＭＡ転送を行う高優先バスマスタ５２０の構成の一例を示している。高優先バスマスタ５２０は、バッファライト制御部２２０１と、バッファ部２２０２と、バッファリード制御部２２０３と、バスインターフェース部２２０４と、アドレス順序生成部５２１０と、を備えている。また、バスインターフェース部２２０４は、ＤＭＡアドレス生成部２２０５を備えている。
【０１８２】
高優先バスマスタ５２０は、リクエスト受け付けマスク信号ＲＥＱＭＡＳＫを出力する機能を備えている点のみが、図５に示したバスマスタ２２０と異なる。このため、図１１に示した高優先バスマスタ５２０の構成要素には、図５に示したバスマスタ２２０に備えた構成要素と同様の構成要素を含んでいる。従って、以下の説明においては、高優先バスマスタ５２０の構成要素において、バスマスタ２２０の構成要素と同様の構成要素には同一の符号を付与して詳細な説明は省略し、バスマスタ２２０と異なる点のみを説明する。
【０１８３】
アドレス順序生成部５２１０は、図５に示したバスマスタ２２０に備えたアドレス順序生成部２２１０と同様に、バッファライト制御部２２０１によってバッファ部２２０２内のいずれかの記憶領域の組に入力データが記憶（保存）されると、ＤＭＡバス調停部５３０から出力されたリクエスト受け付け履歴情報ＲＥＱＨＩＳを参照して、連続した８回のＤＭＡ転送によってＤＭＡ書き込みデータＤＭＡＷＤＡＴＡ（入力データ）をＤＭＡ転送する際に指定するＤＲＡＭ３０に備えたバンクを指定するバンクアドレスＢＡの順序を決定する。
【０１８４】
なお、アドレス順序生成部５２１０がリクエスト受け付け履歴情報ＲＥＱＨＩＳを参照してアドレスの順序を決定するアドレス順序決定処理は、図６および図８〜図９に示したアドレス順序生成部２２１０がリクエスト受け付け履歴情報ＲＥＱＨＩＳを参照してアドレスの順序を決定するアドレス順序決定処理と同様であるため、詳細な説明は省略する。
【０１８５】
また、アドレス順序生成部５２１０は、高優先バスマスタ５２０（より具体的には、バスインターフェース部２２０４）がＤＲＡＭ３０に対してＤＭＡ転送を要求する際に、メモリアクセス制御装置５００に備えたバスマスタ２２０のそれぞれから出力されたＤＭＡ要求信号ＤＭＡＲＥＱのマスクを指示するリクエスト受け付けマスク信号ＲＥＱＭＡＳＫを生成する。このリクエスト受け付けマスク信号ＲＥＱＭＡＳＫは、アドレス順序生成部５２１０がリクエスト受け付け履歴情報ＲＥＱＨＩＳを参照してバンクアドレスＢＡの順番を決定するアドレス順序決定処理を開始するとき（あるいは、その少し前のサイクル）から、バスインターフェース部２２０４がＤＭＡ要求信号ＤＭＡＲＥＱを出力するまでの間、メモリアクセス制御装置５００に備えた他のバスマスタ２２０からのＤＭＡ要求をマスクすることを指示する信号である。
【０１８６】
そして、アドレス順序生成部５２１０は、生成したリクエスト受け付けマスク信号ＲＥＱＭＡＳＫを、ＤＭＡバス調停部５３０に出力する。このリクエスト受け付けマスク信号ＲＥＱＭＡＳＫに従って、ＤＭＡバス調停部５３０の備えたリクエスト受け付けマスク部５３２が、上述したように、高優先バスマスタ５２０から出力されたＤＭＡ要求信号ＤＭＡＲＥＱ−１以外のＤＭＡ要求信号ＤＭＡＲＥＱのアクセス調停部２３０１への出力をマスクする。
【０１８７】
なお、アドレス順序生成部５２１０は、バッファライト制御部２２０１が１つの転送単位の入力データのバッファ部２２０２への記憶（保存）が完了したあとで、バッファリード制御部２２０３が記憶された（保存された）１つの転送単位の入力データのバッファ部２２０２からの読み出しを開始する前であれば、いかなるタイミングからリクエスト受け付けマスク信号ＲＥＱＭＡＳＫの出力を開始してもよい。
【０１８８】
ここで、高優先バスマスタ５２０の動作について説明する。図１２は、本発明の第２の実施形態におけるメモリアクセス制御装置５００を構成する高優先バスマスタ５２０の動作タイミングの一例を示したタイミングチャートである。図１２に示したタイミングチャートでは、アドレス順序生成部５２１０がリクエスト受け付けマスク信号ＲＥＱＭＡＳＫを生成する動作について説明する。
【０１８９】
タイミングｔ１から、高優先バスマスタ５２０に備えたバッファライト制御部２２０１は、入力された入力データ（例えば、イメージセンサ１０から出力された画素信号のデータ）を、バッファ部２２０２に順次出力して記憶（保存）させる。その後、バッファライト制御部２２０１は、１つの転送単位の入力データのバッファ部２２０２への記憶（保存）が完了したタイミングで、バッファ部２２０２への入力データの記憶（保存）が完了したことを、アドレス順序生成部５２１０およびバッファリード制御部２２０３に通知する。なお、高優先バスマスタ５２０においては、バッファライト制御部２２０１が１つの転送単位の入力データのバッファ部２２０２への記憶（保存）が完了したことを通知する方法に関しては、何ら限定しない。
【０１９０】
アドレス順序生成部５２１０は、バッファライト制御部２２０１から、１つの転送単位の入力データのバッファ部２２０２への記憶（保存）が完了したことが通知されると、タイミングｔ２のときから、リクエスト受け付け履歴情報ＲＥＱＨＩＳを参照してアドレス順序決定処理を開始する。なお、図１２に示したタイミングチャートには、アドレス順序生成部５２１０がアドレス順序決定処理の期間を、“Ｈｉｇｈ”レベルで示している。アドレス順序生成部５２１０は、リクエスト受け付け履歴情報ＲＥＱＨＩＳを参照してアドレス順序決定処理を開始するタイミングｔ２のときに、メモリアクセス制御装置５００に備えた他のバスマスタ２２０からのＤＭＡ要求をマスクすることを表す（図１２においては、“Ｈｉｇｈ”レベル）リクエスト受け付けマスク信号ＲＥＱＭＡＳＫを、ＤＭＡバス調停部５３０に出力する。これにより、ＤＭＡバス調停部５３０に備えたリクエスト受け付けマスク部５３２は、高優先バスマスタ５２０に備えたアドレス順序生成部５２１０から出力されたリクエスト受け付けマスク信号ＲＥＱＭＡＳＫに従って、メモリアクセス制御装置５００に備えた高優先バスマスタ５２０以外のバスマスタ２２０から出力されたＤＭＡ要求信号ＤＭＡＲＥＱをマスクする。
【０１９１】
その後、アドレス順序生成部５２１０は、タイミングｔ３においてアドレス順序決定処理が完了すると、決定したアドレス（より具体的には、バンクアドレスＢＡ）の順序を表すアドレス順序情報を、バッファリード制御部２２０３とバスインターフェース部２２０４内のＤＭＡアドレス生成部２２０５とのそれぞれに出力する。これにより、バッファリード制御部２２０３は、バッファ部２２０２に記憶（保存）された１回の連続転送の転送単位の全ての入力データ、つまり、８回分のＤＭＡ転送の入力データを、アドレス順序情報が表す順番で順次読み出して、バスインターフェース部２２０４に転送する。
【０１９２】
バスインターフェース部２２０４は、バッファリード制御部２２０３から１回目のＤＭＡ転送の転送単位の入力データが転送されると、この入力データのＤＭＡ転送を要求するためのＤＭＡ要求信号ＤＭＡＲＥＱ−１、ライトアクセスを表すＤＭＡリードライト信号ＤＭＡＲＷ−１、およびアドレス順序情報に示されたバンクアドレスＢＡを指定するＤＭＡアドレスＤＭＡＡＤのそれぞれを生成する。そして、バスインターフェース部２２０４は、タイミングｔ４において、生成したＤＭＡ要求信号ＤＭＡＲＥＱ−１、ＤＭＡリードライト信号ＤＭＡＲＷ−１（不図示）、およびＤＭＡアドレスＤＭＡＡＤ−１のそれぞれを、ＤＭＡバス調停部５３０に出力する。このとき、バスインターフェース部２２０４は、ＤＭＡ要求信号ＤＭＡＲＥＱ−１を出力したことを、アドレス順序生成部５２１０に通知する。なお、高優先バスマスタ５２０においては、バスインターフェース部２２０４がＤＭＡ要求信号ＤＭＡＲＥＱ−１を出力したことを通知する方法に関しては、何ら限定しない。
【０１９３】
アドレス順序生成部５２１０は、バスインターフェース部２２０４から入力されたＤＭＡ要求信号ＤＭＡＲＥＱ−１を出力したことを表す通知に応じて、ＤＭＡバス調停部５３０に出力しているリクエスト受け付けマスク信号ＲＥＱＭＡＳＫを、メモリアクセス制御装置５００に備えた他のバスマスタ２２０からのＤＭＡ要求をマスクしないことを表す状態（図１２においては、“Ｌｏｗ”レベル）にする。これにより、ＤＭＡバス調停部５３０に備えたリクエスト受け付けマスク部５３２は、高優先バスマスタ５２０に備えたアドレス順序生成部５２１０から出力されたリクエスト受け付けマスク信号ＲＥＱＭＡＳＫに従って、メモリアクセス制御装置５００に備えた高優先バスマスタ５２０以外のバスマスタ２２０から出力されたＤＭＡ要求信号ＤＭＡＲＥＱのマスクを解除する。
【０１９４】
このようなタイミングで、アドレス順序生成部５２１０は、リクエスト受け付け履歴情報ＲＥＱＨＩＳを参照してアドレス順序決定処理を開始するタイミングｔ２のときから、バスインターフェース部２２０４がＤＭＡ要求信号ＤＭＡＲＥＱを出力するタイミングｔ４のときまでの間、ＤＭＡバス調停部５３０に、リクエスト受け付けマスク信号ＲＥＱＭＡＳＫを出力する。これにより、ＤＭＡバス調停部５３０は、高優先バスマスタ５２０から出力されたＤＭＡ要求のみを受け付けて、ＤＭＡ許可信号ＤＭＡＡＣＫ−１を高優先バスマスタ５２０に出力する。以降、ＤＭＡバス調停部５３０は、高優先バスマスタ５２０から出力されたそれぞれのＤＭＡ要求信号ＤＭＡＲＥＱ−１に応じて、連続した８回のＤＭＡ転送（１回の連続転送）を行う。
【０１９５】
このように、メモリアクセス制御装置５００では、高優先バスマスタ５２０がリクエスト受け付けマスク信号ＲＥＱＭＡＳＫを出力することによって、リクエスト受け付け履歴情報ＲＥＱＨＩＳを参照してバンクアドレスＢＡの順番を決定するアドレス順序決定処理の期間中に他のバスマスタ２２０から出力されたＤＭＡ要求信号ＤＭＡＲＥＱを受け付けないように、ＤＭＡバス調停部５３０に指示する。これにより、メモリアクセス制御装置５００では、高優先バスマスタ５２０がＤＲＡＭ３０との間でＤＭＡ転送を行う際に、ＤＲＡＭ３０に対するアクセスの効率を高めると共に、一連のＤＭＡ転送が終了するまでの期間を短縮する効果を、より確実に得ることができる。
【０１９６】
本第２の実施形態によれば、高優先バスマスタ（高優先バスマスタ５２０）は、それぞれのアクセス要求（ＤＭＡ要求）によって指定するバンクの順序（より具体的には、バンクアドレスＢＡの順序）を決定する処理（アドレス順序決定処理）を開始するとき（あるいは、その少し前のサイクル）から、最初にＤＭＡ要求（ＤＭＡ要求信号ＤＭＡＲＥＱ）を出力するまでの期間中に、他のバスマスタ（バスマスタ２２０）から入力されたＤＭＡ要求の受け付けのマスクを指示するリクエスト受け付けマスク信号（リクエスト受け付けマスク信号ＲＥＱＭＡＳＫ）を出力し、アービタ（ＤＭＡバス調停部２３０）は、リクエスト受け付けマスク信号ＲＥＱＭＡＳＫに応じて、高優先バスマスタ５２０以外の他のバスマスタ２２０から入力されたＤＭＡ要求をマスクする、メモリアクセス制御装置（メモリアクセス制御装置５００）が構成される。
【０１９７】
また、本第２の実施形態によれば、ＤＭＡバス調停部２３０は、さらに、高優先バスマスタ５２０からそれぞれのＤＭＡ要求が出力されている期間中に、他のバスマスタ２２０から入力されたＤＭＡ要求をマスクする、メモリアクセス制御装置５００が構成される。
【０１９８】
上述したように、本発明の第２の実施形態のメモリアクセス制御装置でも、第１の実施形態のメモリアクセス制御装置と同様に、ＤＲＡＭ３０を共有する高優先バスマスタ５２０およびそれぞれのバスマスタ２２０によるＤＲＡＭ３０に対するアクセスの履歴（リクエスト受け付け履歴情報）を記憶し、バンクビジー状態になっているバンクに対するアクセスを回避するように、ＤＭＡ転送の順番を変更する。これにより、本発明の第２の実施形態のメモリアクセス制御装置でも、第１の実施形態のメモリアクセス制御装置と同様に、ＤＲＡＭ３０におけるバンクビジー時間の制約を回避した順番でＤＭＡ転送を連続して行って、ＤＲＡＭ３０に対するアクセスの効率を高めることができる。
【０１９９】
また、本発明の第２の実施形態のメモリアクセス制御装置では、高優先バスマスタ５２０が、リクエスト受け付け履歴情報を参照してバンクアドレスＢＡの順番を決定するアドレス順序決定処理の期間中に、他のバスマスタ２２０から出力されたＤＭＡ要求を受け付けないように、ＤＭＡバス調停部５３０に対してＤＭＡ要求のマスクを指示する。これにより、メモリアクセス制御装置５００では、高優先バスマスタ５２０が、ＤＲＡＭ３０に対するアクセスの効率を高める効果と、一連のＤＭＡ転送が終了するまでの期間を短縮する効果とを、より確実に得ることができる。
【０２００】
なお、従来のメモリ制御装置においても、優先度が低いバスマスタから出力されたＤＭＡ要求をマスクする機能を備えた構成を実現することもできるが、本発明の第２の実施形態のメモリアクセス制御装置では、アドレス順序決定処理において決定した、バンクビジー状態になっているバンクに対するアクセスを回避するバンクアドレスＢＡの順番でＤＲＡＭ３０に対してアクセスする。このため、本発明の第２の実施形態のメモリアクセス制御装置では、優先度が低いバスマスタから出力されたＤＭＡ要求をマスクする機能を備えた従来のメモリ制御装置よりも、より多くのバンク衝突を回避することができる。
【０２０１】
上記に述べたように、本発明の各実施形態によれば、本発明のメモリアクセス制御装置を構成するアービタ（ＤＭＡバス調停部）が、本発明のメモリアクセス制御装置を構成するそれぞれのバスマスタ（処理ブロック）がＤＭＡ転送において共有するＤＲＡＭにアクセスした履歴（リクエスト受け付け履歴情報）を記憶する。そして、本発明の各実施形態では、本発明のメモリアクセス制御装置を構成するバスマスタの内、優先度の高いバスマスタが、本発明のメモリアクセス制御装置を構成するアービタにＤＭＡ要求を出力する直前のリクエスト受け付け履歴情報を参照して、アクセスの効率が高い状態でＤＲＡＭに対してアクセスするように、ＤＭＡ転送を行う順序を決定し、決定した順序でＤＭＡ要求を出力する。より具体的には、本発明の各実施形態では、本発明のメモリアクセス制御装置を構成する優先度の高いバスマスタが、バンクビジー状態になっているバンクに対するアクセスを回避するように、ＤＭＡ転送においてＤＲＡＭに備えたそれぞれのバンクをアクセスする順序（バンクアドレスの順序）を決定し、決定したバンクアドレスの順序でＤＲＡＭとの間でＤＭＡ転送を行うためのＤＭＡ要求を出力する。これにより、本発明の各実施形態では、本発明のメモリアクセス制御装置を構成するアービタがＤＲＡＭにアクセスする際の効率を高めると共に、本発明のメモリアクセス制御装置を構成する優先度の高いバスマスタにおけるＤＭＡ転送の帯域を確保することができる。このことにより、本発明の各実施形態では、本発明のメモリアクセス制御装置を備えた画像処理装置における性能を確保することができる。そして、本発明の各実施形態では、本発明のメモリアクセス制御装置を備えた画像処理装置を搭載した撮像装置における機能を実現することができる。
【０２０２】
なお、本発明の各実施形態では、本発明のメモリアクセス制御装置を構成する全てのバスマスタに、リクエスト受け付け履歴情報を参照してＤＭＡ転送を行う順序を決定する機能を備える場合について説明した。これは、本発明のメモリアクセス制御装置を備えた画像処理装置を搭載した撮像装置における動作モードによって、優先度の高いバスマスタが異なることを考えたためである。しかし、例えば、動作モードにかかわらず、常に優先度が低いバスマスタがある場合には、この優先度が低いバスマスタには、リクエスト受け付け履歴情報を参照してＤＭＡ転送を行う順序を決定する機能を備えない構成にしてもよい。
【０２０３】
また、本発明の各実施形態では、本発明のメモリアクセス制御装置を構成するバスマスタの内、優先度の高いバスマスタが１個である場合について説明した。しかし、優先度の高いバスマスタは、メモリアクセス制御装置に複数存在することも考えられる。この場合、本発明のメモリアクセス制御装置では、優先度の高いバスマスタ同士で、決定したＤＭＡ転送を行う順序の情報を共有する構成など、リクエスト受け付け履歴情報に含まれていないバンクアドレスＢＡの順序の情報を互いに知る構成を備えてもよい。この構成を備えることによって、後からＤＭＡ転送を行う優先度の高いバスマスタが決定したＤＭＡ転送を行う際のバンクアドレスＢＡの順序が、先にＤＭＡ転送を行う優先度の高いバスマスタが決定したＤＭＡ転送を行う際のバンクアドレスＢＡの順序によって、アクセスの効率の低い順序になってしまうことを避けることができる。なお、他の高優先バスマスタのＤＭＡ要求が受け付けられたことを通知することによって、ＤＭＡ要求が受け付けられなかった高優先バスマスタが、リクエスト受け付け履歴情報を参照して、ＤＭＡ転送を行う順序を再度決定する構成にしてもよい。
【０２０４】
また、本発明の第２の実施形態では、本発明のメモリアクセス制御装置を構成するアービタ（ＤＭＡバス調停部５３０）に備えたリクエスト受け付けマスク部５３２が、本発明のメモリアクセス制御装置を構成する優先度の高いバスマスタ（高優先バスマスタ５２０）が、一連のＤＭＡ要求を出力している期間中にも、他のバスマスタからのＤＭＡ要求をマスクする構成を示した。より具体的には、リクエスト受け付けマスク部５３２が、リクエスト受け付けマスク信号ＲＥＱＭＡＳＫの他に、高優先バスマスタ５２０が出力したＤＭＡ要求信号ＤＭＡＲＥＱ−１によっても、他のバスマスタ２２０から出力されたＤＭＡ要求信号ＤＭＡＲＥＱをマスクする構成を示した。しかし、例えば、高優先バスマスタ５２０が１個である場合には、ＤＭＡバス調停部５３０は、通常の調停処理において、高優先バスマスタ５２０が出力する一連のＤＭＡ要求を優先して受け付けることができる。また、例えば、高優先バスマスタ５２０が複数ある場合においても、一連のＤＭＡ要求を出力している期間を判定する機能をＤＭＡバス調停部５３０に備える構成にすることによって、それぞれの高優先バスマスタ５２０から出力されたＤＭＡ要求を調停することができる。このような場合、リクエスト受け付けマスク部５３２は、高優先バスマスタ５２０がリクエスト受け付け履歴情報を参照してＤＭＡ転送を行う順序を決定する処理（アドレス順序決定処理）を行っている期間中のみ、他のバスマスタからのＤＭＡ要求をマスクする構成であってもよい。
【０２０５】
なお、本発明の各実施形態では、リクエスト受け付け履歴情報として、バンクアドレスの情報と、アクセス方向を表す情報と、ＤＭＡ要求を受け付けたタイミングを表す情報とのそれぞれの情報を記憶する場合について説明した。しかし、リクエスト受け付け履歴情報として記憶する情報は、本発明の各実施形態において示した情報に限定されるものではない。例えば、バスマスタから、ＤＭＡ転送においてＤＲＡＭとの間での受け渡しをするデータの数が、ＤＭＡ要求と共に出力されている場合には、このデータの数を表す情報も、リクエスト受け付け履歴情報としてそれぞれの情報と紐づけて記憶してもよい。この場合、１回のＤＭＡ転送で連続する複数のバンクアドレスに跨がってアクセスするようなＤＭＡ要求をバスマスタが出力した場合でも、リクエスト受け付け履歴情報に含まれるバンクアドレスの情報とデータの数を表す情報とに基づいて、バスマスタがアクセスした複数のバンクのそれぞれを認識することができる。
【０２０６】
なお、本発明の各実施形態では、リクエスト受け付け履歴情報を記憶するリクエスト受け付け履歴取得部２３１や、ＤＭＡ要求信号ＤＭＡＲＥＱをマスクするリクエスト受け付けマスク部５３２を、本発明のメモリアクセス制御装置を構成するアービタ（ＤＭＡバス調停部２３０やＤＭＡバス調停部５３０）に備える構成を示した。しかし、本発明においては、リクエスト受け付け履歴取得部２３１やリクエスト受け付けマスク部５３２を備える構成（つまり、リクエスト受け付け履歴取得部２３１やリクエスト受け付けマスク部５３２を配置する位置）は、本発明の各実施形態の構成に限定されるものではなく、アービタの外部に備える構成であってもよい。例えば、本発明のメモリアクセス制御装置のそれぞれの機能の一部または全部を、専用のＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）、いわゆる、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの集積回路で実現する場合には、アービタとして、すでに市販されている汎用のＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）コアやＩＰモジュールなどを使用することもある。この場合には、リクエスト受け付け履歴取得部２３１やリクエスト受け付けマスク部５３２を、汎用のＩＰコアやＩＰモジュールに変更を加えることによって追加することが困難である場合もある。そもそも、汎用のＩＰコアやＩＰモジュールの内部の構成に関する情報が公開されていないこともある。このため、リクエスト受け付け履歴取得部２３１やリクエスト受け付けマスク部５３２をアービタの外部に配置することになる。この場合においても、本発明の各実施形態と同様の効果を得ることができる。なお、リクエスト受け付け履歴取得部２３１をアービタの外部に備える構成にした場合、リクエスト受け付け履歴取得部２３１に備えられたリクエスト受け付け履歴記憶部２３１２は、アービタからいずれかのＤＭＡ許可信号ＤＭＡＡＣＫが出力されたタイミングで、このＤＭＡ許可信号ＤＭＡＡＣＫに対応するリクエスト受け付け履歴情報を記憶する構成となる。より具体的には、アービタからいずれかのＤＭＡ許可信号ＤＭＡＡＣＫが出力されたタイミングで、このＤＭＡ許可信号ＤＭＡＡＣＫに対応するＤＭＡアドレスＤＭＡＡＤが表すバンクアドレスＢＡの情報、ＤＭＡリードライト信号ＤＭＡＲＷが表すアクセス方向を表す情報、およびカウンタ部２３１１から出力された時間Ｔのそれぞれの情報を紐づけて、リクエスト受け付け履歴情報として記憶する構成となる。
【０２０７】
また、本発明の各実施形態では、本発明のメモリアクセス制御装置が、撮像装置に搭載される画像処理装置に備えられる構成について説明した。しかし、ＤＭＡ転送を行うメモリアクセス制御装置を備えるシステムは、本発明の各実施形態において示した画像処理装置や撮像装置の他にも種々のシステムが考えられる。従って、本発明の考え方に基づいたメモリアクセス制御装置を適用することができる処理装置やシステムは、何ら限定されるものではない。すなわち、ＤＭＡ転送を行う処理装置やシステムであれば、いかなる処理装置やシステムであっても、本発明のメモリアクセス制御装置における考え方を同様に適用することができる。そして、本発明のメモリアクセス制御装置と同様の効果を得ることができる。
【０２０８】
以上、本発明の好ましい実施形態を説明したが、本発明はこれら実施形態およびその変形例に限定されることはない。本発明の趣旨を逸脱しない範囲で、構成の付加、省略、置換、およびその他の変更ができる。
また、本発明は前述した説明によって限定されることはなく、添付のクレームの範囲によってのみ限定される。
【産業上の利用可能性】
【０２０９】
上記各実施形態によれば、複数の処理ブロックで共有するＤＲＡＭに対するアクセスの効率を高めることができる。
【符号の説明】
【０２１０】
１  撮像装置
１０  イメージセンサ（撮像装置）
２０  画像処理装置（撮像装置，メモリアクセス制御装置）
２１０  ＤＭＡバス
２２１  撮像インターフェース部（バスマスタ，メモリアクセス制御装置）
２２２  画像処理部（バスマスタ，メモリアクセス制御装置）
２２３  動画コーデック部（バスマスタ，メモリアクセス制御装置）
２２４  表示インターフェース部（バスマスタ，メモリアクセス制御装置）
２３０  ＤＭＡバス調停部（アービタ，メモリアクセス制御装置）
３０  ＤＲＡＭ（メモリ）
４０  表示装置（撮像装置）
２００  メモリアクセス制御装置（メモリアクセス制御装置）
２２０  バスマスタ（バスマスタ，メモリアクセス制御装置）
２２０−１  バスマスタ（バスマスタ，高優先バスマスタ，メモリアクセス制御装置）
２２０−２，２２０−ｎ  バスマスタ（バスマスタ，メモリアクセス制御装置）
２２０１  バッファライト制御部（バスマスタ）
２２０２  バッファ部（バスマスタ）
２２０３  バッファリード制御部（バスマスタ）
２２０４  バスインターフェース部（バスマスタ）
２２０５  ＤＭＡアドレス生成部（バスマスタ）
２２１０  アドレス順序生成部（バスマスタ）
２３０１  アクセス調停部（アービタ）
２３０２  メモリ制御部（アービタ）
２３０３  マルチプレクサ（アービタ）
２３０４  アドレス生成部（アービタ）
２３０５  データ制御部（アービタ）
２３１  リクエスト受け付け履歴取得部（リクエスト受け付け履歴取得部，メモリアクセス制御装置）
２３１１  カウンタ部（リクエスト受け付け履歴取得部）
２３１２  リクエスト受け付け履歴記憶部（リクエスト受け付け履歴取得部）
５００  メモリアクセス制御装置（メモリアクセス制御装置）
５２０  高優先バスマスタ（バスマスタ，高優先バスマスタ，メモリアクセス制御装置）
５２１０  アドレス順序生成部（バスマスタ）
５３０  ＤＭＡバス調停部（アービタ，メモリアクセス制御装置）
５３２  リクエスト受け付けマスク部（アービタ，メモリアクセス制御装置）
【図１】
0006676162.tif 000002
【図２】
0006676162.tif 000003
【図３】
0006676162.tif 000004
【図４】
0006676162.tif 000005
【図５】
0006676162.tif 000006
【図６】
0006676162.tif 000007
【図７】
0006676162.tif 000008
【図８】
0006676162.tif 000009
【図９】
0006676162.tif 000010
【図１０】
0006676162.tif 000011
【図１１】
0006676162.tif 000012
【図１２】
0006676162.tif 000013