(57)【要約】【課題】メモリ装置に対するメモリアクセスを好適に制御する。【解決手段】最初に受信した先頭アクセス要求が発行されてから、連結を行う期間内に発行されるアクセス要求を連結して、連結アクセス要求を生成する。このとき連結を行う期間は、先頭アクセス要求が発行されてからメモリ装置への他のアクセスがなされるまでの時間内に、連結アクセス要求に対応するデータについてのアクセスが完了するように設定される。【選択図】図２
2014167763.tif 000002
【特許請求の範囲】
【請求項１】
システムバスに接続されたメモリ装置へのアクセス制御を行う電子機器であって、
前記メモリ装置へのアクセス要求を発行し、１回のアクセス要求に対応して第１のデータ長を有するデータの送受信を行う処理回路と、
前記処理回路により発行されたアクセス要求を連結して、１つの連結アクセス要求を生成する連結手段と、
前記連結手段によるアクセス要求の連結を行う期間を設定する設定手段と、
前記連結手段により連結されたアクセス要求の各々に対応した、送受信を行うデータのデータ長を合算して、前記連結アクセス要求に対応して送受信するデータのデータ長であって、前記第１のデータ長より長い第２のデータ長を決定する決定手段と、
前記システムバスを介して、前記連結アクセス要求を送出し、前記決定手段により決定された前記第２のデータ長のデータについて、前記メモリ装置にアクセスするアクセス制御手段と、を有し、
前記連結手段は、最初に受信した先頭アクセス要求が発行されてから前記連結を行う期間内に発行されるアクセス要求を連結して、前記連結アクセス要求を生成する
ことを特徴とする電子機器。
【請求項２】
前記設定手段は、前記先頭アクセス要求が発行されてから前記メモリ装置への他のアクセスがなされるまでの時間内に、前記連結アクセス要求に対応する前記第２のデータ長のデータについてのアクセスが完了するように、前記連結を行う期間を設定することを特徴とする請求項１に記載の電子機器。
【請求項３】
前記設定手段は、前記先頭アクセス要求が発行されてから前記メモリ装置への他のアクセスがなされるまでの時間から、前記連結アクセス要求を発行した後、前記連結アクセス要求が受理されて前記第２のデータ長のデータについてのアクセスが完了するまでに要する最大所要時間を減算して得られた値を、前記連結を行う期間として設定することを特徴とする請求項１または２に記載の電子機器。
【請求項４】
前記設定手段は、同時に前記システムバスを介したアクセスを行う処理回路の最大数に応じて前記最大所要時間を決定することを特徴とする請求項３に記載の電子機器。
【請求項５】
前記メモリ装置に対してなされたアクセス要求を保持する保持手段をさらに有し、
前記設定手段は、前記保持手段が保持するアクセス要求の最大数に応じて前記最大所要時間を決定する
ことを特徴とする請求項３または４に記載の電子機器。
【請求項６】
前記連結手段は、前記先頭アクセス要求が発行されてから前記メモリ装置への他のアクセスがなされるまでの時間が規定できない場合に、アクセス要求の連結を行わないことを特徴とする請求項２乃至５のいずれか１項に記載の電子機器。
【請求項７】
前記連結手段は、前記システムバスにおいてデータ転送に使用されている帯域が所定値以上を占める場合に、アクセス要求の連結を行わないことを特徴とする請求項１乃至６のいずれか１項に記載の電子機器。
【請求項８】
アクセス要求は、前記メモリ装置のアクセス開始アドレス及び前記第１のデータ長を含み、
前記連結手段は、新たに発行されたアクセス要求に含まれる前記アクセス開始アドレスが、直前に発行されたアクセス要求に含まれる前記アクセス開始アドレスに前記第１のデータ長を加算した値と異なる場合に、前記新たに発行されたアクセス要求よりも前に発行されたアクセス要求を連結する
ことを特徴とする請求項１乃至７のいずれか１項に記載の電子機器。
【請求項９】
システムバスに接続されたメモリ装置へのアクセス制御を行う電子機器の制御方法であって、前記電子機器は、前記メモリ装置へのアクセス要求を発行し、１回のアクセス要求に対応して第１のデータ長を有するデータの送受信を行う処理回路を有し、
前記制御方法は、
前記電子機器の連結手段が、前記処理回路により発行されたアクセス要求を連結して、１つの連結アクセス要求を生成する連結工程と、
前記電子機器の設定手段が、前記連結工程におけるアクセス要求の連結を行う期間を設定する設定工程と、
前記電子機器の決定手段が、前記連結工程において連結されたアクセス要求の各々に対応した、送受信を行うデータのデータ長を合算して、前記連結アクセス要求に対応して送受信するデータのデータ長であって、前記第１のデータ長より長い第２のデータ長を決定する決定工程と、
前記電子機器のアクセス制御手段が、前記システムバスを介して、前記連結アクセス要求を送出し、前記決定工程において決定された前記第２のデータ長のデータについて、前記メモリ装置にアクセスするアクセス制御工程と、を有し、
前記連結手段は前記連結工程において、最初に受信した先頭アクセス要求が発行されてから前記連結を行う期間内に発行されるアクセス要求を連結して、前記連結アクセス要求を生成する
ことを特徴とする電子機器の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器及びその制御方法に関し、特にメモリ装置へのアクセス制御技術に関する。
【背景技術】
【０００２】
デジタルカメラ等の電子機器では、様々な信号処理機能を備える。近年、例えば画像データのような信号処理対象のデータの容量は増加傾向にあり、処理量もそれに応じて増大する。このため、各信号処理機能については、応答性能の向上等、高速化が要求される。また画像処理等では、処理対象のデータを例えばＳＤＲＡＭ等のバスを介して接続されるメモリ装置に格納し、格納したデータを読み出しながら処理を適用する等の動作が行われている。メモリ装置を介する信号処理機能を実現する処理回路（クライアント）とメモリ装置とは、バスマスタ及びバスを介して接続される。このとき、バスマスタから大容量のデータをメモリ装置に書き込むあるいは読み出すメモリアクセスを高速化するために、バスの広帯域化がなされている。
【０００３】
しかしながら、広帯域バスの帯域幅に対して、クライアントの内部回路が最適設計なされていないことがある。このような場合、クライアントから受信されたデータを、バスマスタが広帯域バスに送出する際に不整合が生じ、アクセス効率が低下する可能性がある。
【０００４】
ここで、図９（ａ）を用いてアクセス効率の低下について例示する。図は、画像処理回路（クライアント）が、バスマスタであるＤＭＡＣ（Direct Memory Access Controller）を経由して、バスを介してＳＤＲＡＭにライトアクセス（書き込み）を行う場合の処理を概略的に示している。
【０００５】
ライトアクセスを行う場合、クライアントはまず、ＳＤＲＡＭへのライトリクエストをＤＭＡＣに送信する。このときクライアントは、ライトリクエストと共にライト先アドレス及びバースト長（転送長）の情報を送信する。ＤＭＡＣは、ライトリクエストを受信すると、ライトアクノレッジ信号をクライアントに対して返す。
【０００６】
クライアントは、ＤＭＡＣからのライトアクノレッジ信号を受信すると、ライトアクセスを開始する。図９（ａ）の例では、クライアントの１つのデータのデータ幅は３２ｂｉｔであり、バースト長は８であるものとする。このときクライアントは、バースト長分、即ち８個の連続したデータを、ＤＭＡＣに送信する。つまり、１回のライトリクエストに対応して、３２×８＝２５６ｂｉｔのデータがＤＭＡＣを介してバスに送出される。
【０００７】
一方で、ＳＤＲＡＭへのアクセスにおけるデータ幅が１２８ｂｉｔであるとする。つまり、クライアントから送出される１２８÷３２＝４回分のデータが、ＳＤＲＡＭへのＤＭＡＣの１アクセスで書き込まれる。
【０００８】
またＳＤＲＡＭのアクセスにおけるバースト長は、選択されるＳＤＲＡＭ内におけるデータの処理方式によって決定される。具体的には、ＳＤＲＡＭ内で１サイクルに処理可能なビット数が予め定義されている。例えばＤＤＲ２タイプのＳＤＲＡＭでは、１サイクルで４ｂｉｔのデータが処理可能であり、これを４ビットプリフェッチと呼ぶ。即ち、４ビットプリフェッチである場合、ＳＤＲＡＭの最小のバースト長は４バーストとなり、これ以上転送長を短くすることはできない。つまり、図９（ａ）の例では、ＤＭＡＣからＳＤＲＡＭに書き込まれる４バーストのデータ長１２８×４＝５１２ｂｉｔが、ＤＭＡＣの１回のライトアクセスの転送長となる。
【０００９】
これに対し、１回のライトリクエストでクライアントから送出されるデータ長は２５６ｂｉｔであるため、図９（ａ）の下部に示されたＳＤＲＡＭライトデータのように、ＳＤＲＡＭへの後半の２バースト分のアクセスは無駄な処理となる。なお、実際は後半の２バースト分のアクセスはマスク信号によってマスクされ、ＳＤＲＡＭへの書き込みはなされない。即ち、このようなＤＭＡＣのＳＤＲＡＭへのデータアクセス長と、１回のライトリクエストでのデータアクセス長の違いによって、ＳＤＲＡＭへの無駄なアクセスがなされる問題があった。
【００１０】
特許文献１には、ＤＭＡ転送により任意のデータ量を転送する際に、ＤＭＡＣからのデータ転送回数少なくして転送時間を短縮することで、バスへのアクセス効率を改善することが開示されている。また同様に、例えば図９（ａ）の環境において、図９（ｂ）のようにクライアントからの２回のライトリクエストをまとめてからＤＭＡＣに送信することで、ＤＭＡＣからＳＤＲＡＭへの無駄なアクセスを回避することが考えられる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０００−１３２４９７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、図９（ａ）と図９（ｂ）とを対比してわかるように、ＳＤＲＡＭへの転送長を考慮してリクエストをまとめる方法では、１回目のライトリクエストに対応するデータが送出されてＳＤＲＡＭに書き込まれるまでの時間（レイテンシ）が長くなる。また図９（ｂ）のようにライトリクエストが連続して行われない場合、即ち１回目のライトリクエストの発行から２回目のライトリクエストを発行するまでに時間が空く場合は、さらにレイテンシが大きくなる。
【００１３】
このようにクライアントのデータ送出から、ＳＤＲＡＭにデータが書き込まれるまでのレイテンシが大きくなった場合、次のような問題が生じる。ＳＤＲＡＭに書き込まれたデータを読み出して処理する他のクライアント、あるいは書き込みを行ったクライアント自身が、ＳＤＲＡＭへの書き込みが完了していないにも関わらず、該データのリードアクセスを行ってしまう可能性がある。即ち、クライアントによるＳＤＲＡＭへのライトアクセスを、クライアントによるＳＤＲＡＭからのリードアクセスが追い越してしまう可能性がある。
【００１４】
本発明は、上述の問題点に鑑みてなされたものであり、メモリ装置に対するメモリアクセスを好適に制御する電子機器及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
前述の目的を達成するために、本発明の電子機器は、以下の構成を備える。
システムバスに接続されたメモリ装置へのアクセス制御を行う電子機器であって、メモリ装置へのアクセス要求を発行し、１回のアクセス要求に対応して第１のデータ長を有するデータの送受信を行う処理回路と、処理回路により発行されたアクセス要求を連結して、１つの連結アクセス要求を生成する連結手段と、連結手段によるアクセス要求の連結を行う期間を設定する設定手段と、連結手段により連結されたアクセス要求の各々に対応した、送受信を行うデータのデータ長を合算して、連結アクセス要求に対応して送受信するデータのデータ長であって、第１のデータ長より長い第２のデータ長を決定する決定手段と、システムバスを介して、連結アクセス要求を送出し、決定手段により決定された第２のデータ長のデータについて、メモリ装置にアクセスするアクセス制御手段と、を有し、連結手段は、最初に受信した先頭アクセス要求が発行されてから連結を行う期間内に発行されるアクセス要求を連結して、連結アクセス要求を生成することを特徴とする。
【発明の効果】
【００１６】
このような構成により本発明によれば、メモリ装置に対するメモリアクセスを好適に制御することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係るデジタルカメラ１００の機能構成を示したブロック図
【図２】本発明の実施形態に係る検出処理系１０３の内部構成を例示したブロック図
【図３】本発明の実施形態１に係るライトリクエスト連結部２０４の詳細構成を示したブロック図
【図４】本発明の実施形態に係る、リクエストの連結処理を説明するための図
【図５】本発明の実施形態に係る、リクエストの連結処理におけるタイムアウト時間を説明するための図
【図６】本発明の実施形態１に係るデジタルカメラ１００で実行される、処理系アクセス処理を例示したフローチャート
【図７】本発明の実施形態２に係るライトリクエスト連結部２０４の詳細構成を示したブロック図
【図８】本発明の実施形態２に係るデジタルカメラ１００で実行される、処理系アクセス処理を例示したフローチャート
【図９】従来のメモリアクセスを説明するための図
【発明を実施するための形態】
【００１８】
［実施形態１］
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、電子機器の一例としての、複数の処理系が、データをＳＤＲＡＭに書き込み、あるいは読み出ししながら処理を行うデジタルカメラに、本発明を適用した例を説明する。しかし、本発明は、複数の処理系がメモリ装置を交互にアクセスすることが可能な任意の機器に適用可能である。
【００１９】
《デジタルカメラ１００の構成》
図１は、本発明の実施形態に係るデジタルカメラ１００の機能構成を示すブロック図である。
【００２０】
ＣＰＵ１０５は、デジタルカメラ１００が備える各ブロックの動作を制御する。具体的にはＣＰＵ１０５は、不図示のＲＯＭに格納されたデジタルカメラ１００の動作プログラムを読み出し、不図示のＲＡＭに展開して実行することにより各ブロックの動作を制御する。
【００２１】
ＳＤＲＡＭ１１３は、本実施形態のデジタルカメラ１００が有する各処理系の回路における処理で使用されるデータを格納するメモリ装置である。ＳＤＲＡＭ１１３に対するデータの書き込みや読み出しは、ＳＤＲＡＭコントローラ１１２により管理され、行われる。本実施形態のデジタルカメラ１００は、データを送受信する、撮像系１０１、信号処理系１０２、検出処理系１０３、及び画像圧縮伸長系１０４の４つの処理系（処理回路）を有する。
【００２２】
撮像系１０１は、撮像処理を行い、画像データを生成する。撮像系１０１は、例えばＣＣＤやＣＭＯＳセンサ等の撮像素子を有する。撮像素子は、光学系１１７を介して撮像素子上に結像された光学像を光電変換し、撮像信号を生成する。また撮像系１０１は、撮像信号に含まれるリセットノイズを除去する相関二重サンプリング、撮像信号のレベルを利得可変に増幅する利得可変増幅、及びアナログデータをデジタルデータに量子化するＡ／Ｄ変換に係る処理を行う。なお、光学系１１７は対物レンズ、フォーカスレンズ、絞り等で構成される。
【００２３】
信号処理系１０２は、撮像系１０１により生成されたデジタル画像データについて、種々のデジタル信号処理を行う。具体的には信号処理系１０２は、不図示の画像評価値を取得し、該評価値に基づいて適切なデジタル信号処理を行う。
【００２４】
検出処理系１０３は、撮像系１０１あるいは信号処理系１０２により生成されたデジタル画像データについて、画像中の特徴検出処理や動体追尾処理等を行う。検出処理系１０３では、画素間引き読み出しにより得られた画像データや、ブロック分割された一部の画像データが用いられる。
【００２５】
画像圧縮伸長系１０４は、信号処理系１０２により生成された画像データに対して、例えばＪＰＥＧ形式等の、予め設定されている画像圧縮形式に準じた符号化処理を行い、記録用の画像データを生成する。生成された記録用の画像データは、後述する記録媒体１１５に記録される。また画像圧縮伸長系１０４は、記録媒体１１５から読み出された圧縮画像データに対して伸長処理を行い、ＳＤＲＡＭ１１３に表示する画像データを生成する。
【００２６】
セレクタ１０６は、本実施形態が備える各種処理系に係るデータ転送がある場合に、処理系と後述する第１ＤＭＡＣ１０７、第２ＤＭＡＣ１０８、及び第３ＤＭＡＣ１０９とを選択的に接続する。
【００２７】
第１ＤＭＡＣ１０７、第２ＤＭＡＣ１０８、及び第３ＤＭＡＣ１０９は、本実施形態のデジタルカメラ１００が備える、ＳＤＲＡＭ１１３に対するＤＭＡ転送用のコントローラである。撮像系１０１、信号処理系１０２、検出処理系１０３、及び画像圧縮伸長系１０４は、ＤＭＡＣを介することで、ＣＰＵを経由せずにＳＤＲＡＭ１１３にアクセスすることができる。なお、以下の説明において、単に「ＤＭＡＣ」と記載した場合は、第１ＤＭＡＣ１０７、第２ＤＭＡＣ１０８、及び第３ＤＭＡＣ１０９のいずれであってもよいものとする。
【００２８】
表示デバイス１１１は、例えばＬＣＤ等のデジタルカメラ１００が有する表示装置である。表示デバイス１１１は、撮像系１０１により撮影された画像データがスルー表示されることで、電子ビューファインダとして機能する。また表示デバイス１１１には、画像圧縮伸長系１０４により伸長された、記録媒体１１５から読み出された画像データが表示される。表示デバイス１１１の表示制御は表示コントローラ１１０により行われる。
【００２９】
記録媒体１１５は、例えばデジタルカメラ１００が有する内蔵メモリや、メモリカードやＨＤＤ等のデジタルカメラ１００に着脱可能に接続された記録装置である。媒体コントローラ１１４は、記録媒体１１５へのデータの書き込み、及び記録媒体１１５からのデータの読み出しを制御する。
【００３０】
なお、ＣＰＵ１０５、各ＤＭＡＣ、表示コントローラ１１０、ＳＤＲＡＭコントローラ１１２、及び媒体コントローラ１１４は、システムバス１１６を介して接続される。システムバス１１６は、デジタルカメラ１００に合わせて帯域幅が設計されており、所謂広帯域バスであるものとする。ここで、ＣＰＵ１０５及び各ＤＭＡＣはバスマスタ、表示コントローラ１１０、ＳＤＲＡＭコントローラ１１２、及び媒体コントローラ１１４はバススレーブである。
【００３１】
〈各種処理系の内部構成〉
次に、検出処理系１０３を例に、各種処理系の内部構成について図２を参照して説明する。
【００３２】
各種処理系は、対応する処理を実行するチップ等の処理コアを有する。検出処理系１０３の場合、検出処理コア２０１が検出処理を行う。検出処理コア２０１には、ＤＭＡＣを介してＳＤＲＡＭ１１３への書き込み、あるいはＳＤＲＡＭ１１３からの読み出しを行うために、ＤＭＡＣとのインタフェースが接続される。具体的には検出処理コア２０１は、データ書き込み用のライトＩＦ２０２、及びデータ読み出し用のリードＩＦ２０３が接続される。
【００３３】
例えば検出処理コア２０１がＳＤＲＡＭ１１３へのデータの書き込みを行う場合は、まず検出処理コア２０１からライトリクエスト信号がＤＭＡＣに対して発行される。そしてＤＭＡＣからリクエストへの応答であるライトアクノレッジ信号を受信すると、検出処理コア２０１は書き込むデータを出力する。
【００３４】
ここで、本実施形態の処理系の各々は、上述したようにＳＤＲＡＭ１１３のデータ幅やシステムバス１１６の帯域幅に、必ずしも最適化されている訳ではない。これは、新たに開発されたデジタルカメラ１００において、全ての処理系の処理コアが一新される訳ではないことによる。即ち、システムバス１１６の帯域幅が拡張されたとしても、各処理コアのインタフェースからローカルバスに出力されるデータ幅は変更されない可能性がある。
【００３５】
本実施形態では各種処理系とＳＤＲＡＭ１１３間のデータ転送を効率化するために、処理系はライトリクエストあるいはリードリクエストを連結するライトリクエスト連結部２０４及びリードリクエスト連結部２０５を有する。ライトＩＦ２０２とライトリクエスト連結部２０４、リードＩＦ２０３とリードリクエスト連結部２０５は、それぞれ第１ローカルデータバス２０６、第２ローカルデータバス２０７で接続される。本実施形態の検出処理系１０３の第１ローカルデータバス２０６及び第２ローカルデータバス２０７では、ライトＩＦ２０２あるいはリードＩＦ２０３に合わせ、１データのデータ幅が３２ｂｉｔのデータがやり取りされる。
【００３６】
ライトリクエスト連結部２０４及びリードリクエスト連結部２０５は、ライトＩＦ２０２あるいはリードＩＦ２０３から受け付けたリクエストを連結し、１つの連結リクエストとしてＤＭＡＣに対して送出する。また各連結部は、ライトＩＦ２０２あるいはリードＩＦ２０３から受け付けたリクエストの情報を格納すると、リクエストについてのアクノレッジ信号を、ライトＩＦ２０２あるいはリードＩＦ２０３に出力する。
【００３７】
またライトリクエスト連結部２０４は、ライトＩＦ２０２からライトリクエストに対応して受信したデータを、内蔵する後述のデータバッファ３０３に蓄積する。そして連結ライトリクエストについての連結ライトアクノレッジ信号を受信すると、ライトリクエスト連結部２０４は連結したライトリクエストに対応して受信したデータを第３ローカルデータバス２０８を介してセレクタ１０６に出力する。即ち、ライトリクエスト連結部２０４は、ＳＤＲＡＭ１１３へのデータのアクセス制御を行う。このとき、第３ローカルデータバス２０８に出力される１データのデータ幅は、ＳＤＲＡＭ１１３のデータ幅やシステムバス１１６の帯域幅に適合されているものとする。即ち、本実施形態のライトリクエスト連結部２０４は、３２ｂｉｔから１２８ｂｉｔへの変換を行う。
【００３８】
一方、リードリクエスト連結部２０５は、リードＩＦ２０３からのリードリクエストを連結した連結リクエストについて、対応するデータをＤＭＡＣを介して受信する。リードリクエスト連結部２０５は、受信したデータをリードＩＦ２０３が扱うデータ幅に変換して第２ローカルデータバス２０７に送出する。即ち、本実施形態のリードリクエスト連結部２０５は、１２８ｂｉｔから３２ｂｉｔへの変換を行う。
【００３９】
《ライトリクエスト連結部２０４の詳細構成》
ここで、本実施形態の各連結部の詳細構成について、ライトリクエスト連結部２０４を例に図３を用いて説明する。
【００４０】
ライトリクエスト連結部２０４において、ライトＩＦ２０２において発行されたライトリクエストは、比較器３０１及びリクエストキューバッファ３０２に入力される。なお、ライトリクエストは、以下の情報を含む。
・データを書き込むＳＤＲＡＭ１１３上のライトアドレス（アクセス開始アドレス）の情報
・１アクセスのデータ転送におけるバースト長（３２ｂｉｔのデータの連続転送回数：第１のデータ長）
【００４１】
リクエストキューバッファ３０２は、受信したライトリクエストに含まれるライトアドレス及びバースト長の情報を保持する。リクエストキューバッファ３０２は、受信したライトリクエストの情報を、管理するポインタ値で示されるアドレスに格納すると、受信完了通知であるライトアクノレッジ信号を返却する。なお、リクエストキューバッファ３０２に保持されるライトリクエストの情報は、連結するリクエストのみであってよい。本実施形態のリクエストキューバッファ３０２は、連結ライトリクエストが送出された後、後述するリクエスト発行制御部３０６によりリセットされる。
【００４２】
比較器３０１は、受信したライトリクエストで指定されるライトアドレスが、直前に受信したライトリクエストに対応したデータがＳＤＲＡＭ１１３に書き込まれた際の最終アドレスに連続するかを判定する。本実施形態のように複数のリクエストを１つの連結リクエストに変換する場合、ＤＲＡＭから見れば、ＳＤＲＡＭ１１３に対して１つのリクエストで指定される先頭アドレスから、所定のデータ長のデータにアクセスすることになる。即ち、連結リクエストによりアクセスするＳＤＲＡＭ１１３の領域は、連続している必要がある。このため、本実施形態では比較器３０１においてリクエストを連結した場合にアクセスするアドレスが連続するかを判断する。具体的には比較器３０１は、受信したライトリクエストで指定される最新開始アドレスと、最後に受信したライトリクエストで指定される直前開始アドレス及び直前バースト長との間に、
（最新開始アドレス）−（直前開始アドレス）＝（直前バースト長）
の関係が成り立つか否かを判定する。例えば図４に示されるようなライトリクエストが行われる場合、１回目に発行されたライトリクエストと２回目に発行されたライトリクエストとの間では、
０ｘ１００８−０ｘ１０００＝０ｘ０００８
であり、バースト長８（ＢＬ０）と等しいため上述の関係が成り立つ。一方、４回目に発行されたライトリクエストと５回目に発行されたライトリクエストとの間では、
０ｘ２０００−０ｘ１０１０＝０ｘ０ＦＦ０≠０ｘ０００４（ＢＬ３）
であるため上述の関係は成り立たない。
【００４３】
比較器３０１は、判定結果を、アドレス連続判定信号として後述のリクエスト発行制御部３０６に出力する。
【００４４】
データバッファ３０３は、ライトアクノレッジ信号に対応してライトＩＦ２０２から入力されるデータを格納する。データバッファ３０３は、データを格納すると例えばデータが格納されている最終アドレスのポインタ値をリクエスト発行制御部３０６に出力する。該ポインタ値は、リクエスト発行制御部３０６にデータバッファ３０３に蓄積されたデータ容量を認識させるために用いられる。
【００４５】
加算器３０４は、連結ライトリクエストをＤＭＡＣに送信する際に、リクエストキューバッファ３０２に保持されている全てのリクエストのバースト長を合算し、バースト長の総和をリクエスト発行制御部３０６に出力する。
【００４６】
リクエスト発行制御部３０６は、連結ライトリクエストのＤＭＡＣへの発行を制御する。具体的にはリクエスト発行制御部３０６は、アドレス連結判定信号を参照し、アドレスジャンプが発生したと判定される前までに受信したライトリクエストを連結し、連結ライトリクエストを発行する。リクエスト発行制御部３０６は、リクエストキューバッファ３０２に保持されている、最初に受信されたライトリクエストに含まれるライトアドレス情報と、加算器３０４により出力されたバースト長の総和（第２のデータ長）とを含めて、連結ライトリクエストを発行する。なお、アドレスジャンプが発生したと判定した場合、リクエスト発行制御部３０６は、受信したライトリクエストの情報の格納及びライトアクノレッジ信号の返却をリクエストキューバッファ３０２に行わせないように制御する。
【００４７】
またリクエスト発行制御部３０６は、連結ライトリクエストに対する応答である連結ライトアクノレッジ信号を受信すると、データバッファ３０３に格納されている、連結ライトリクエストに対応するデータを第３ローカルデータバス２０８に送出させる。本実施形態では、データバッファ３０３から送出されるデータは、１データのデータ長が１２８ｂｉｔに変換されたデータとなる。例えば図４に示す例の場合、ライトアドレスのアドレスジャンプが検出された際（アドレス連続判定信号がＨｉｇｈ）に、連結ライトリクエストが発行され、ＤＭＡＣに対して送出される。図４の場合、連結ライトリクエストは、最初に受信したライトリクエストのライトアドレス（０ｘ１０００）、及びバースト長の総和（８＋４＋４＋４＝２０）を用いて発行される。なお、連結ライトリクエストにおけるバースト長の情報は、本実施形態ではライトリクエスト連結部２０４の前後で書き込み対象の１データのデータ長が３２ｂｉｔから１２８ｂｉｔに変換される。このため、１データが１２８ｂｉｔの場合のバースト長に変換する必要があるため、連結ライトリクエストで伝達されるバースト長の情報は、２０÷（１２８÷３２）＝５バーストとなる。
【００４８】
またリクエスト発行制御部３０６は、ＳＤＲＡＭ１１３へのデータの書き込みの完了前に、該データの読み出しに係る要求がＳＤＲＡＭ１１３に行われないように、ライトリクエストの連結について他の条件を定める。具体的にはリクエスト発行制御部３０６は、連結するライトリクエストのうち、最初のライトリクエスト（先頭ライトリクエスト）の発行から、連結したデータのＳＤＲＡＭ１１３への書き込みが完了するまでの時間を考慮し、ライトリクエストを連結する。
【００４９】
本実施形態ではライトリクエスト連結部２０４は、先頭ライトリクエストの発行からの経過時間を計測するタイマ３０５を有する。タイマ３０５は、先頭ライトリクエストの発行から予め設定した時間（タイムアウト時間）が経過した場合、タイムアウト検出信号をリクエスト発行制御部３０６に送出する。そしてリクエスト発行制御部３０６は、タイムアウト検出信号を受け取った時点で受信していたライトリクエストを、連結対象のライトリクエストとして決定する。なお、タイムアウト時間については、セレクタ１０６によりタイマ３０５に供給される。
【００５０】
〈タイムアウト時間〉
ここで、タイマ３０５に対して供給されるタイムアウト時間の決定方法について、図５を用いて詳細を説明する。
【００５１】
図５に示されるように、先頭ライトリクエストが発行された際にタイマ３０５のカウントが開始される。このとき、連結するライトリクエストを決定するためのタイムアウト時間Ｔ２は、次のように決定される。
【００５２】
まず、１つの処理系のライトＩＦ２０２が１つのデータについてライトリクエストを発行してから、同一のあるいは他の処理系によるＳＤＲＡＭ１１３に書き込まれた該データへのアクセスがなされるまでの最短時間Ｔ０が得られる。最短時間Ｔ０は、デジタルカメラ１００で行われる各処理系の並列動作等により規定される。
【００５３】
また図示される時間Ｔ１は、ＤＭＡＣのライトリクエスト（連結ライトリクエスト）発行から、該リクエストがＳＤＲＡＭ１コントローラ１１２により受け付けられるまでに要する最大所要時間を示す。最大所要時間Ｔ１は、デジタルカメラ１００において同時並行的に発生しうる、システムバス１１６へのバスマスタからの同時アクセス処理を考慮して、次のように規定することができる。なお、最大所要時間Ｔ１は、設定されている撮影モード等、デジタルカメラ１００のステータスに応じて変化するものであってもよい。この場合ＣＰＵ１０５は、現在のデジタルカメラ１００のステータスを判断して最大所要時間Ｔ１を決定し、タイムアウト時間Ｔ２を算出してタイマ３０５に供給すればよい。
【００５４】
例えば、本実施形態のように４つのバスマスタ（ＣＰＵ１０５、第１ＤＭＡＣ１０７、第２ＤＭＡＣ１０８、及び第３ＤＭＡＣ１０９）が、ＳＤＲＡＭ１１３にアクセスするために、システムバス１１６に対して同時アクセスする場合を考える。ＳＤＲＡＭ１１３にアクセスするために、各バスマスタが先行して発行したリクエストは、本実施形態ではＳＤＲＡＭコントローラ１１２において４つまで保持（キューイング）されることが可能であるものとする。また、本例ではシステムバス１１６に対して、４つのバスマスタから同時並行的にアクセスが発生しうるものとする。つまり、本実施形態のデジタルカメラ１００では、１つのバスマスタによるＳＤＲＡＭ１１３へのアクセスは、少なくとも
・キューイングされたリクエスト４回分（最大数）に係るアクセス
・システムバス１１６におけるバスアービトレーションによる４回分（最大数）のアクセス
が完了した後には行われることになる。即ち、合計４＋４＝８回分のＳＤＲＡＭ１１３へのアクセスが完了すれば、該１つのバスマスタによるＳＤＲＡＭ１１３へのリクエストが受理され、アクセスが可能になる。
【００５５】
ここで、ＳＤＲＡＭ１１３への１回分のデータアクセスに係る最長時間Ｔａｃｃは、バスマスタの最大バースト長から規定することができる。即ち、本例では１つのバスマスタからの結合ライトリクエストを発行してから受け付けられるまでの保証時間であるＴ１は、Ｔａｃｃ×８と定義することができる。このようにして規定された最短時間Ｔ０から最大所要時間Ｔ１を減算することにより、タイムアウト時間Ｔ２が規定できる（Ｔ２＝Ｔ０−Ｔ１）。ＣＰＵ１０５は、このように規定したタイムアウト時間Ｔ２を、セレクタ１０６に供給する。
【００５６】
また、ライトリクエスト連結部２０４のデータバッファ３０３は有限領域である。このため、上述した条件とは別に、ＳＤＲＡＭ１１３への書き込みを行うデータでデータバッファ３０３が満たされた場合（データバッファＦＵＬＬを受信）に、リクエスト発行制御部３０６は連結するライトリクエストの受け付けを中断する。なお、データバッファ３０３の容量は、例えばＳＤＲＡＭ１１３への最大バースト長分に設定されていればよい。
【００５７】
即ち、本実施形態のリクエスト発行制御部３０６は、
１．連続して受信したリクエストによりアクセスするアドレスが不連続の場合
２．最初のリクエスト発行からタイムアウト時間を超えた場合
３．データバッファ３０３がＦＵＬＬ状態になった場合
のいずれかである場合に、それまでに受信したリクエストを連結する。
【００５８】
《処理系アクセス処理》
このような構成をもつ本実施形態のデジタルカメラ１００の処理系アクセス処理について、図６のフローチャートを用いて具体的な処理を説明する。なお、本処理系アクセス処理は、例えば１つの処理系（対象処理系）においてＳＤＲＡＭ１１３とのアクセスが必要な処理が行われる際に開始されるものとして説明する。
【００５９】
Ｓ６０１で、ＣＰＵ１０５は、システムバス１１６に同時動作しうるバスマスタの数を取得する。同時動作しうるバスマスタの数の情報は、上述したようにデジタルカメラ１００のステータスに応じて予め規定され、例えば不図示のＲＯＭに格納されているものとする。ＣＰＵ１０５は、該情報を読み出し、同時動作しうるバスマスタの数を取得する。
【００６０】
Ｓ６０２で、ＣＰＵ１０５は、同時動作しうるバスマスタのうち、最長のバースト転送を行うバスマスタを特定し、１回分のデータアクセスに係る最長時間Ｔａｃｃを特定する。
【００６１】
Ｓ６０３で、ＣＰＵ１０５は、予め定められた最短時間Ｔ０、１回分のデータアクセスに係る最長時間Ｔａｃｃ、及び同時動作しうるバスマスタの数から、タイムアウト時間Ｔ２を算出して、対象処理系のタイマ３０５に供給する。
【００６２】
Ｓ６０４で、対象処理系はＣＰＵ１０５の制御により処理を開始する。
【００６３】
Ｓ６０５で、対象処理系のリクエスト発行制御部３０６は、いずれかのリクエストの連結条件を満たしたか否かを判断する。リクエスト発行制御部３０６は、リクエストの連結条件を満たしたと判断した場合は処理をＳ６０６に移し、満たしていないと判断した場合は処理をＳ６０７に移す。
【００６４】
Ｓ６０６で、リクエスト発行制御部３０６は、リクエストを連結し、連結リクエストをセレクタ１０６に出力する。またリクエスト連結部は、連結リクエストに対するアクノレッジ信号を受信すると、ＳＤＲＡＭ１１３へのアクセスを開始する。例えば書き込み動作の場合、ライトリクエスト連結部２０４はデータバッファ３０３に蓄積されたライトデータをセレクタ１０６に出力する。
【００６５】
Ｓ６０７で、ＣＰＵ１０５は、対象処理系の処理が完了したか否かを判断する。ＣＰＵ１０５は、対象処理系の処理が完了したと判断した場合は処理をＳ６０８に移し、完了していないと判断した場合は処理をＳ６０５に移す。
【００６６】
Ｓ６０８で、リクエスト連結部は、ＣＰＵ１０５の制御の下、未送出の受信したリクエストに係る処理を実行し、本処理系アクセス処理を完了する。例えば書き込み動作の場合、ライトリクエスト連結部２０４は、データバッファ３０３に残存しているデータをＦＬＵＳＨ処理（強制的にＳＤＲＡＭ１１３に対して書き込む）する。具体的にはＣＰＵ１０５が、ＦＬＵＳＨ処理の要求信号をリクエスト発行制御部３０６に供給することで、ＦＬＵＳＨ処理が実行される。
【００６７】
以上説明したように、本実施形態の電子機器は、メモリ装置に対するメモリアクセスを好適に制御することができる。具体的には電子機器は、最初に受信した先頭アクセス要求が発行されてから、連結を行う期間内に発行されるアクセス要求を連結して、連結アクセス要求を生成する。このとき連結を行う期間は、先頭アクセス要求が発行されてからメモリ装置への他のアクセスがなされるまでの時間内に、連結アクセス要求に対応するデータについてのアクセスが完了するように設定される。
【００６８】
このようにすることで、例えばアクセス要求を連結している期間に、他の処理系によって該連結したアクセス要求によってアクセスされるＳＤＲＡＭ１１３のデータへのアクセスが生じないようにすることができる。より詳細には、連結したアクセス要求によりＳＤＲＡＭ１１３に書き込まれるデータについての読み出し処理が、前後して行われることを回避することができる。
【００６９】
［実施形態２］
上述した実施形態１では、１つの処理系のライトリクエストが発行されてから、該リクエストで書き込まれたデータへの次のアクセスがなされるまでの最短時間Ｔ０が、予め定められるものとして説明した。一般に、同時動作するバスマスタが多く、使用されているシステムバス１１６の帯域が大きい場合に、ライトアクセスの遅延が生じうる。本実施形態では、このような、例えばＣＰＵ１０５の処理がシステムバス１１６の帯域を広く占有する場合等、最短時間Ｔ０を具体的に規定することが困難、即ちタイムアウト時間を規定することが困難な状況での処理について以下に説明する。なお、本実施形態のデジタルカメラ１００において、上述した実施形態１と同様の構成については、同一の参照符号を付して説明を省略するものとする。
【００７０】
《ライトリクエスト連結部２０４の詳細構成》
本実施形態のライトリクエスト連結部２０４は、上述した実施形態１の構成に加えて第１セレクタ７０１及び第２セレクタ７０２を有する。
【００７１】
本実施形態では、ＣＰＵ１０５は、最短時間Ｔ０が規定できない場合、あるいは使用されているシステムバス１１６の帯域が所定値以上を占める場合には、ＳＤＲＡＭ１１３に対するアクセスの不整合が生じないように制御を行う。具体的にはＣＰＵ１０５は、上述の条件に該当する場合は、アクセス遅延が生じうると判断し、アクセス要求の連結を行わないためのリクエスト連結処理中止信号を、第１セレクタ７０１及び第２セレクタ７０２に供給する。
【００７２】
第１セレクタ７０１には、ライトリクエスト連結部２０４に入力されたライトリクエストと、リクエスト発行制御部３０６から出力された連結ライトリクエストとが入力される。第１セレクタ７０１は、ＣＰＵ１０５よりリクエスト連結処理中止信号が供給された場合は、ライトリクエスト連結部２０４に入力されたライトリクエスト、即ちライトＩＦ２０２が出力したライトリクエストを連結せずに出力する。また第１セレクタ７０１は、リクエスト連結処理中止信号が供給されない場合は、リクエスト発行制御部３０６により入力された連結ライトリクエストを出力する。
【００７３】
第２セレクタ７０２には、ライトリクエスト連結部２０４に入力されたライトリクエストがリクエストキューバッファ３０２に格納されたことを示すライトアクノレッジ信号と、ＤＭＡＣより返却されたライトアクノレッジ信号とが入力される。第２セレクタ７０２は、ＣＰＵ１０５よりリクエスト連結処理中止信号が供給された場合は、ＤＭＡＣより返却されたライトアクノレッジ信号を、ライトリクエスト連結部２０４のライトアクノレッジ信号として出力する。このとき出力されるライトアクノレッジ信号は、第１セレクタ７０１が出力した、ライトＩＦ２０２が出力したライトリクエストに対する、ＤＭＡＣの応答信号である。また第２セレクタ７０２は、リクエスト連結処理中止信号が供給されない場合は、リクエストキューバッファ３０２が出力するライトアクノレッジ信号を出力する。
【００７４】
つまり、本実施形態のライトリクエスト連結部２０４は、ＣＰＵ１０５がリクエスト連結処理中止信号を出力する場合、ライトＩＦ２０２から入力されるアクセス要求をスルーしてＤＭＡＣに出力する。またライトリクエスト連結部２０４は、ＤＭＡＣから返却されたアクノレッジ信号をスルーしてライトＩＦ２０２に出力する。
【００７５】
《処理系アクセス処理》
このような構成を有する本実施形態のデジタルカメラ１００の処理系アクセス処理について、図８のフローチャートを用いて具体的な処理を説明する。なお、本処理系アクセス処理は、例えば１つの処理系（対象処理系）においてＳＤＲＡＭ１１３とのアクセスが必要な処理が行われる際に開始されるものとして説明する。なお、本処理系アクセス処理において、上述の実施形態１の処理系アクセス処理と同様の処理を行うステップについては、同一の参照符号を付して説明を省略するものとする。
【００７６】
処理が開始すると、ＣＰＵ１０５はＳ８０１で、対象処理系がライトリクエストを発行してから、リクエストに対応してＳＤＲＡＭ１１３に書き込まれたデータが、次に読み出されるまでの最短時間Ｔ０を規定できるか否かを判断する。具体的にはＣＰＵ１０５は、例えば現在同時動作しているバスマスタの数や行われている処理を判断し、最短時間Ｔ０を規定できるか否かを判断する。ＣＰＵ１０５は、最短時間Ｔ０が規定できると判断した場合は処理をＳ６０１に移し、規定できないと判断した場合は処理をＳ８０２に移す。
【００７７】
Ｓ８０２で、ＣＰＵ１０５は、使用されているシステムバス１１６の帯域が予め定められた閾値以下であるか否かを判断する。帯域の閾値は、例えば実験的に得られた、最短時間Ｔ０が規定できない状況下でアクセス不整合が生じない値であってよい。ＣＰＵ１０５は、使用されている帯域が閾値以下であると判断した場合は、最短時間Ｔ０が規定できない状況下でアクセス不整合が生じなかった際に得られた、次のアクセスまでに要する時間を最短時間Ｔ０として規定して処理をＳ６０１に移す。またＣＰＵ１０５は、使用されている帯域が閾値より大きいと判断した場合は処理をＳ８０３に移す。
【００７８】
Ｓ８０３で、ＣＰＵ１０５は、リクエストの連結を行わないよう、ライトリクエスト連結部２０４にリクエスト連結処理中止信号を供給し、処理をＳ６０４に移す。なお、この場合、Ｓ６０５における連結条件の判断は、常に満たしていないと判断される。
【００７９】
このようにすることで、システムバス１１６の使用状況や各バスマスタでの処理に応じて、好適にメモリ装置に対するメモリアクセスを制御できる。
【００８０】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014167763.tif 000003
【図２】
2014167763.tif 000004
【図３】
2014167763.tif 000005
【図４】
2014167763.tif 000006
【図５】
2014167763.tif 000007
【図６】
2014167763.tif 000008
【図７】
2014167763.tif 000009
【図８】
2014167763.tif 000010
【図９】
2014167763.tif 000011