(57)【要約】    【課題】  本発明は、動作モードによりパイプラインバスとノンパイプラインバスに必要なバンド幅の割り付けを容易に行うことが可能なデータ処理装置及び方法を提供する。    【解決手段】  データ取り込みコントローラ１、データ処理コントローラ２、及びデータ出力コントローラ３が接続されたパイプラインバス（ＩｍａｇｅＢｕｓ）と、ＣＰＵ５、ＲＯＭコントローラ１７、及びメモリカードコントローラ１８が接続されたノンパイプラインバス（ＣＰＵＢｕｓ）の２つのバスがそれぞれ接続されたバスインターフェース回路からのメモリアクセスのアドレスをアドレス情報キュー４ｂに格納し、キューの段数を可変とすることにより、パイプラインバスとノンパイプラインバスに割り付けるデータ転送のバンド幅を可変とする。【選択図】      図７
2005309510.tif 000002
【特許請求の範囲】
【請求項１】
データを処理する複数のデータ処理手段と、前記複数のデータ処理手段により処理されるデータを格納するメモリと、前記メモリへのデータ・アクセスを制御するメモリ制御手段とを備えるデータ処理装置において、
前記複数のデータ処理手段のうちの少なくとも１つは、アクセスすべき複数のデータに対応する複数の第１のアドレス情報をデータ転送に先立って発行し、
前記複数のデータ処理手段のうちの少なくとも他の１つは、アクセスすべきデータに対応する第２のアドレス情報を前記データ転送が完了するまで発行し続け、
前記メモリ制御手段は、前記複数の第１のアドレス情報及び前記第２のアドレス情報を格納するアドレス情報格納手段を備え、
前記アドレス情報格納手段は、格納可能な前記アドレス情報の数が変更可能に構成されていることを特徴とするデータ処理装置。
【請求項２】
前記第１のアドレス情報はパイプラインアドレス情報であり、前記第２のアドレス情報はノンパイプラインアドレス情報であることを特徴とする請求項１記載のデータ処理装置。
【請求項３】
データを処理する複数のデータ処理手段と、前記複数のデータ処理手段により処理されるデータを格納するメモリと、前記メモリへのデータ・アクセスを制御するメモリ制御手段とを備えるデータ処理装置のデータ処理方法において、
前記メモリ制御手段は、アドレス情報格納手段に格納可能なアドレス情報の数を設定しておき、
前記複数のデータ処理手段のうちの少なくとも１つは、アクセスすべき複数のデータに対応する複数の第１のアドレス情報をデータ転送に先立って発行し、
前記複数のデータ処理手段のうちの少なくとも他の１つは、アクセスすべきデータに対応する第２のアドレス情報を前記データ転送が完了するまで発行し続け、
前記メモリ制御手段は、前記複数の第１のアドレス情報及び前記第２のアドレス情報を前記設定された数だけ前記アドレス情報格納手段に格納することを特徴とするデータ処理方法。
【請求項４】
前記第１のアドレス情報はパイプラインアドレス情報であり、前記第２のアドレス情報はノンパイプラインアドレス情報であることを特徴とする請求項３記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置及び方法に関し、特に、デジタルスチルカメラやテレビ電話端末装置、複写機、プリンタ、及びファクシミリ等の画像処理装置に適用可能なデータ処理装置及び方法に関する。
【背景技術】
【０００２】
近年、処理すべきデータの増大や処理すべきアルゴリズムの複雑化に伴って、メモリ・インテンシブなデータ処理を必要とする画像処理装置が増えてきている。例えば、画像処理装置としてのデジタルスチルカメラでは、ＣＣＤから取り込んだ画像データに対し、リアルタイムの信号処理を施しつつ、表示やデータ圧縮を行う必要がある。この場合、ＣＣＤから取り込まれたＲＡＷデータ（信号処理前生データ）は、一旦メモリに格納された後、該メモリから順次読み出されて信号処理が施され、またメモリに格納される。
【０００３】
一方、デジタルスチルカメラにおける表示部は、信号処理後の画像データをメモリから読み出しながら表示を行う。データ圧縮部において、信号処理後の画像データをメモリから読み出し、これを圧縮、エンコードした後に再びメモリに書き戻す。特に、表示部は、メモリからの画像データの読み出しが滞ると画像が乱れるなどの問題が発生するため、リアルタイム性が要求される。また、ＣＣＤから取り込まれたＲＡＷデータのメモリへの書き込み時、特に、連写時には、滞りなくメモリアクセスが必要とされる。
【０００４】
このように、メモリに対して大量のデータ転送が発生するデータ処理装置においては、従来、高速ページモードあるいはＥＤＯモード付のＤＲＡＭや、シンクロナスＤＲＡＭのような連続的なアドレスに対する連続的なデータ転送が高速化されたメモリデバイスがよく用いられている。理由としては、高速アクセスの可能なＳＲＡＭはビット単価が高いため、画像のようなデータ量の多いデータを扱う場合はシステム全体の価格が増大してしまう点、及び、多くの画像処理は、メモリアクセスのアドレス変化がシーケンシャルであるため、連続的なアドレスに対するデータ転送が上記ＤＲＡＭを用いても比較的パフォーマンスをあげやすいという点が挙げられる。
【０００５】
上記ＤＲＡＭが連続的なアドレスに対して高速にアクセス可能な共通的且つ基本的な原理は次のようなものである。すなわち、所定のローアドレスに対応するセンスアンプを一度アクティブにすると、同一ローアドレスに対するアクセスはアクティブになっているセンスアンプに対して行うため高速になる（ページ・ヒット）。一方、異なるローアドレスに対するアクセスが連続的に起こる場合（ページ・ミス・ヒット）は、センスアンプをプリチャージする必要があり、このプリチャージに時間（ペナルティ）がかかるため高速アクセスを行うことができない。
【０００６】
ＤＤＲ型、ＲＡＭＢＵＳ型を含むシンクロナスＤＲＡＭにおいては、さらに単一のメモリデバイスの中に複数のバンクを備えており、異なるバンクに対応する複数のローアドレスをアクティブにしておくことが可能である。この場合は、異なるローアドレスに対するアクセスに関してもバンクが異なるならば高速なアクセスが可能になる（例えば、特許文献１参照）。
【０００７】
従来技術においては、さらにデータ処理部によりアクセスされるメモリアドレスをデータ転送に先立って発行し、先行するアドレスに対するデータ転送中に次のアドレスに対するメモリアクセスの準備を行うような方法（パイプライン化）も採られている。例えば、シンクロナスＤＲＡＭを用いる場合には、先行するアドレスに対するデータ転送中に、後続のアドレスを次々にキューに格納しておき、キューの先頭（すなわち、現在アクセス中のアドレスの直後にアクセスされるアドレス）が、別バンクに対してページ・ミス・ヒットしていることが判明した場合、先行するデータ転送の最中においても別バンクのプリチャージを並行して行うことができるので、全体としてはプリチャージのためのペナルティを小さくすることができる。
【０００８】
一方、装置全体の制御やユーザインターフェースをつかさどるＣＰＵは、通常、ＲＯＭデバイスに格納された命令を実行し、データ参照が生じたときにのみメインメモリであるＤＲＡＭにアクセスする。また、通常は、命令参照時、データ参照時のレイテンシーがＣＰＵの性能に影響を及ぼすため、キャッシュメモリを内蔵している場合が多い。このようなＣＰＵでは、ＤＲＡＭアクセスはキャッシュミス時のデータ参照であり、頻度はさほど多くないがレイテンシーを小さくする必要がある。そのため、従来技術においては、回路構造の簡易なノンパイプライン型の外部バスを備え、バスアクセスのレイテンシーを小さくするような方法が取られている。
【０００９】
上記画像処理用のＤＲＡＭとＣＰＵのデータ参照用のＤＲＡＭは、それぞれ専用に備えることが可能であるが、より安価にシステムを構成する必要がある場合は、共用のＤＲＡＭを備える場合が多い。この場合、回路構成を簡易化するために、パイプラインアドレス用のキューの１エントリーをＣＰＵのデータ参照アドレス用に割り当てるという方式が考えられた。
【特許文献１】特開平１１−４５２２５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来技術はＣＰＵがキャッシュミス時のデータ参照にのみＤＲＡＭのアクセスを行うようなデータ処理には有効であったが、例えばＤＲＡＭからＣＰＵバスに接続されたメモリカードにデータをコピーするような処理を行う場合には問題となる。例えば、ＤＲＡＭ容量以上の複数枚画像データを連続撮影する場合、ＤＲＡＭ上のデータを速やかにメモリカードにコピーできなければ、高速の連続撮影を行うことができないという問題が発生する。
【００１１】
上記従来技術では、アドレスキューに格納されるアドレスの数は固定されているため、例えば１００ＭＢ／ｓのデータ転送能力（バンド幅）を有するＤＲＡＭに対し、１０段のアドレスキューを備えたメモリコントローラでは、最もメモリアクセスが込み合っている場合に、ノンパイプラインバスに１００×（１／１０）＝１０ＭＢ／ｓのバンド幅が割り付けられ、パイプラインバスに１００×（９／１０）＝９０ＭＢ／ｓのバンド幅が割り付けられる。ＥＶＦ（Electrical View Finder）動作時にはノンパイプラインバスのメモリアクセスはほとんど発生しないが、画像処理に９０ＭＢ／ｓ必要であり、一方、連続撮影時には、メモリカードへのデータコピーのために２０ＭＢ／ｓ必要だが、撮像のための画像処理には８０ＭＢ／ｓあればよいとしても、バンド幅の割付を変更することはできなかった。
【００１２】
本発明は、上記問題に鑑みてなされたもので、動作モードによりパイプラインバスとノンパイプラインバスに必要なバンド幅の割り付けを容易に行うことが可能なデータ処理装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、請求項１記載のデータ処理装置は、データを処理する複数のデータ処理手段と、前記複数のデータ処理手段により処理されるデータを格納するメモリと、前記メモリへのデータ・アクセスを制御するメモリ制御手段とを備えるデータ処理装置において、前記複数のデータ処理手段のうちの少なくとも１つは、アクセスすべき複数のデータに対応する複数の第１のアドレス情報をデータ転送に先立って発行し、前記複数のデータ処理手段のうちの少なくとも他の１つは、アクセスすべきデータに対応する第２のアドレス情報を前記データ転送が完了するまで発行し続け、前記メモリ制御手段は、前記複数の第１のアドレス情報及び前記第２のアドレス情報を格納するアドレス情報格納手段を備え、前記アドレス情報格納手段は、格納可能な前記アドレス情報の数が変更可能に構成されていることを特徴とする。
【００１４】
請求項２記載のデータ処理装置は、請求項１記載のデータ処理装置において、前記第１のアドレス情報はパイプラインアドレス情報であり、前記第２のアドレス情報はノンパイプラインアドレス情報であることを特徴とする。
【００１５】
上記目的を達成するために、請求項３記載のデータ処理方法は、データを処理する複数のデータ処理手段と、前記複数のデータ処理手段により処理されるデータを格納するメモリと、前記メモリへのデータ・アクセスを制御するメモリ制御手段とを備えるデータ処理装置のデータ処理方法において、前記メモリ制御手段は、アドレス情報格納手段に格納可能なアドレス情報の数を設定しておき、前記複数のデータ処理手段のうちの少なくとも１つは、アクセスすべき複数のデータに対応する複数の第１のアドレス情報をデータ転送に先立って発行し、前記複数のデータ処理手段のうちの少なくとも他の１つは、アクセスすべきデータに対応する第２のアドレス情報を前記データ転送が完了するまで発行し続け、前記メモリ制御手段は、前記複数の第１のアドレス情報及び前記第２のアドレス情報を前記設定された数だけ前記アドレス情報格納手段に格納することを特徴とする。
【００１６】
請求項４記載のデータ処理方法は、請求項３記載のデータ処理方法において、前記第１のアドレス情報はパイプラインアドレス情報であり、前記第２のアドレス情報はノンパイプラインアドレス情報であることを特徴とする。
【発明の効果】
【００１７】
請求項１記載の装置及び請求項２記載の方法によれば、複数のデータ処理手段のうちの少なくとも１つは、アクセスすべき複数のデータに対応する複数の第１のアドレス情報をデータ転送に先立って発行し、複数のデータ処理手段のうちの少なくとも他の１つは、アクセスすべきデータに対応する第２のアドレス情報をデータ転送が完了するまで発行し続け、当該複数の第１のアドレス情報及び第２のアドレス情報の数が変更可能に構成されているので、動作モードによりパイプラインバスとノンパイプラインバスに必要なバンド幅の割り付けを容易に行うことができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
【００１９】
図１は、本発明の実施の形態に係るデータ処理装置を搭載したデジタルスチルカメラの内部構成を示すブロック図である。同図において、各ブロック間を結合する線の表記は、データ系の接続を太い実線で図示し、制御系の接続を細い実線で図示した。ただし、すべての接続が図示されているわけではなく、説明に必要な代表的な接続のみを図示した。
【００２０】
デジタルスチルカメラは、主要なブロックとして、画像取り込みに関わる画像取り込みコントローラ１と、画像処理に関わる信号処理プロセッサ２と、画像表示に関わる表示コントローラ３と、画像メモリを制御するメモリコントローラ４と、全体制御に関わるＣＰＵ５と、ＣＰＵ５により実行される命令が格納されたＲＯＭ１８を制御するＲＯＭコントローラ１７と、撮影した画像データが格納されるメモリカード２０を制御するメモリカードコントローラ１９とを備える。
【００２１】
次に、図１のデジタルスチルカメラの動作を説明するために、上述した各ブロックの動作を説明する。
【００２２】
まず、レンズモジュール６（ＬＥＮＳＥ）に入力された画像は、ＣＣＤ７に結像する。レンズモジュール６は、レンズ、オートアイリスのための駆動部、及びオートフォーカスのための駆動部等から成る。駆動部の制御は、ＣＰＵ５による図示しない制御信号によって行われる。
【００２３】
ＣＣＤ７に結像した画像データは、画像データに前処理を行う前処理モジュール８（ＣＤＳ・ＡＧＣ）に入力される。なお、ＣＣＤ７の取り込む有効画素数は６４０×４８０画素（ＶＧＡ相当）である。
【００２４】
前処理モジュール８は、ＣＤＳ（相関二重サンプリング）及びＡＧＣ（自動利得制御）から成る。タイミング生成回路９（ＴＧ）は、ＣＣＤ７及び前処理モジュール８に対して、クロック及びタイミング信号を供給する。
【００２５】
前処理が行われた画像データは、ＡＤ変換器１０（ＡＤＣ）により１０ビットのディジタルデータに変換されて、タイミング生成回路１１（ＳＧ）により生成されるピクセルクロックに同期して画像取り込みコントローラ１に入力される。画像取り込みコントローラ１に入力された画像データは、まず取り込み回路１ａ（Capture）によって取り込まれ、直ちに有効画素データのみがメモリであるＦＩＦＯ１ｂに書き込まれる。
【００２６】
バスインターフェース回路１ｃ（ＢＵＳ  ＩＦ）は、ＦＩＦＯ１ｂに書き込まれたデータ数が所定値を超えると、Ｉｍａｇｅ  Ｂｕｓ１００上に書き込みのバストランザクションを発生し、メモリコントローラ４にＦＩＦＯ１ｂから読み出したデータを転送する。
【００２７】
バストランザクションは、データ転送を行うための転送先開始アドレス送出（アドレス・フェーズ）と転送すべきデータ送出（データ・フェーズ）の２つのフェーズから成る。本実施の形態では、１回のデータ・フェーズにおいて転送されるデータ量は固定されており、３２ビットデータバスを用いて４クロックサイクルで１２８ビットのデータを転送する。なお、バスインターフェース回路１ｃは、通常、画像取り込みクロック（Ｌａｔｃｈ  Ｃｌｏｃｋ）とは非同期のバスクロックで動作している。したがって、ＦＩＦＯ１ｂの読み出しクロックは、書き込みクロックと非同期であり、ＦＩＦＯ１ｂはこの非同期データ転送を緩衝するためにも用いられる。
【００２８】
Ｉｍａｇｅ  Ｂｕｓ１００には、他にもバストランザクションを発生するバスマスター（例えば、信号処理プロセッサ２、表示コントローラ３等）が複数接続されているので、同時に複数のバストランザクションが発生する可能性がある。しかしながら、バスアービター１２（Ａｒｂｉｔｅｒ）は、バスマスターが１度に１つだけのバストランザクションを発生できるようにＩｍａｇｅ  Ｂｕｓ１００を調停する。
【００２９】
メモリコントローラ４は、バスインターフェース回路４ａ（ＢＵＳ  ＩＦ）においてＩｍａｇｅ  Ｂｕｓ１００からバストランザクションを受信し、アドレス・フェーズにおいてアドレス情報をアドレス情報キュー４ｂ（ＱＵＥＵＥ）に書き込む。
【００３０】
ＤＲＡＭインターフェース回路４ｃ（ＤＲＡＭ  ＩＦ）は、画像メモリであるＤＲＡＭ１３への制御信号を出力すると共に、アドレス、データをＥＤＯモードでＤＲＡＭ１３に対して出力する。ここで、メモリアドレスは、バストランザクションのアドレス・フェーズにおいて得られたアドレスから生成される。
【００３１】
また、ＤＲＡＭインターフェース回路４ｃは、上記アドレスから始まる連続アドレスに対して、１２８ビット分のデータをＥＤＯモードで連続的にＤＲＡＭ１３に転送する。なお、バスインターフェース回路４ａ（ＢＵＳ  ＩＦ）、アドレス情報キュー４ｂ、及びＤＲＡＭインターフェース回路４ｃはバスクロックに同期して動作する。
【００３２】
信号処理プロセッサ２は、読み出しのためのバストランザクションを発生し、バスクロックで動作するバスインターフェース回路２ａ（ＢＵＳ  ＩＦ）によって、画像メモリから画像取り込みコントローラ１によって取り込まれた画像データを読み出す。読み出されたデータは、バスクロックに同期して双方向ＦＩＦＯ２ｂに書き込まれる。
【００３３】
ＤＳＰ２ｃは、バスクロックと異なるクロック（ＤＳＰクロック）で動作しており、ＤＳＰクロックに同期して双方向ＦＩＦＯ２ｂに書き込まれている画像データにアクセスして、カラーマトリクス処理によりＹＣ分離を行い、つづいて色補正、エッジ強調、ホワイトバランス調整、及びガンマ補正などの処理を行う。このようにして得られた画像データは、表示用に用いられるほか画像圧縮にも用いられる。表示用に用いられる場合は、表示コントローラ３が読み出せるように、バスインターフェース回路２ａを起動して書き込みのバストランザクションを発生し、ＤＲＡＭ１３にデータを転送する。
【００３４】
信号処理プロセッサ２においても、バストランザクションはデータ転送を行うための転送先開始アドレス送出（アドレス・フェーズ）と転送すべきデータ送出（データ・フェーズ）の２つのフェーズから成る。但し、アドレス・フェーズにおいては、読み出しか書き込みかを示す信号も合わせて送出される。
【００３５】
ＣＰＵ５は、ＣＰＵ  Ｂｕｓ２００上にバストランザクションを発生する。このバストランザクションは、Ｉｍａｇｅ  Ｂｕｓ１００上のトランザクションと異なり、アドレスフェーズ・データフェーズの区別はない。
【００３６】
ＣＰＵ５よりアドレスが送出されると、データの授受が終了するまでアドレス送出は持続される。メモリコントローラ４は、バストランザクションのアドレスがＤＲＡＭ１３の領域内である場合、バスインターフェース回路４ｄにおいてバストランザクションを受信し、アドレス情報をアドレス情報キュー４ｂに書き込む。同時にＩｍａｇｅ  Ｂｕｓ１００からのアドレス情報書き込みが発生した場合、Ｉｍａｇｅ  Ｂｕｓ１００のアドレス情報書き込みをＷＡＩＴさせる。
【００３７】
次に、図１のデジタルスチルカメラにおける動作モードについて説明する。動作モードとしては、ＥＶＦモード、撮影モード、及び再生モードがある。
【００３８】
ＥＶＦモードにおいては、上述した動作を１フレーム分の画像を取り込む毎に繰り返すことによって、連続したフレームを画像メモリに取り込む。信号処理プロセッサ２が画像メモリ上の領域にデータライトする動作としては、同一領域に上書きする動作でよい。
【００３９】
表示コントローラ３は、信号処理プロセッサ２がデータライトした画像メモリ上の領域より画像データを読み出すことにより表示データを得る。また、表示コントローラ３は、表示データ読み出しのためのバストランザクションを発生し、バスクロックで動作するバスインターフェース回路３ａによって画像メモリから表示データを読み出す。
【００４０】
次に、この表示データをバスクロックに同期してＦＩＦＯ３ｂの書き込みポートに入力する。ＮＴＳＣのモニタや液晶ディスプレイに代表されるように、一般に表示装置は、画面を絶え間なくリフレッシュする必要があるため、有効画面期間中は所定の表示ピクセルクロックで動作し続けなければならない。そのため、バスインターフェース回路３ａは、ＦＩＦＯ３ｂがフル状態になるまでデータを読み出し続ける。
【００４１】
次に、読み出し回路３ｃ（Ｄａｔａ  Ｒｅａｄ）は、表示ピクセルクロックに同期してＦＩＦＯ３ｂよりデータを読み出し、ＮＴＳＣエンコーダ３ｄ（ＮＴＳＣ）に送出する。ＮＴＳＣエンコーダ３ｄによってＮＴＳＣフォーマットに変換されたディジタルデータは、ＤＡコンバータ１４（ＤＡＣ）によってアナログ信号に変換された後にＮＴＳＣモニタ１５（ＭＯＮＩＴＯＲ）によって表示される。
【００４２】
上記動作をフレーム毎に連続して実行することにより、ＥＶＦモードの動作となる。
【００４３】
ＥＶＦモードにおいては、画像取り込みコントローラ１の書き込みと信号処理プロセッサ２の読み出しが画像メモリの１つのメモリ領域を共有し、信号処理プロセッサ２の書き込みと表示コントローラ３の読み出しが画像メモリのもう１つのメモリ領域を共有し、これら２つの領域へのメモリアクセスは並列的に行われる。
【００４４】
次に、撮影モードの動作を説明する。撮影モードでは、１フレーム分の画像を取り込んだ後、該データをＪＰＥＧ圧縮して外部記憶装置（不図示）等に記録する。
【００４５】
まず、スイッチ群１６（ＳＷ）のうちの１つはシャッターボタンであり、該ボタンの押下がＣＰＵ５によって検出されると、ＣＰＵ５は図示しない制御信号により画像取り込みコントローラ１に対し、次の１フレームを取り込み終わったら以降のフレームは取り込まないように指示する。同様に、信号処理プロセッサ２に対し、次の１フレームは画像圧縮処理を行うことを通知する。
【００４６】
画像取り込みコントローラ１は、ＥＶＦモードの場合とは異なり、１フレーム分の画像データを取り込んで画像メモリにデータ転送を行い、終わると一時停止する。一方、信号処理プロセッサ２は、取り込まれた画像データを読み出して、上述した表示データを生成した場合とまったく同様に、ＹＣ分離、色補正、エッジ強調、ホワイトバランス調整、及びガンマ補正等の画像処理を行った後、直ちに該データに対して、ＤＣＴ演算処理、量子化処理、及び可変長符号化処理などを施して得た符号データを、画像メモリ内の表示用データ領域とは別の領域に書き込む。
【００４７】
ＣＰＵ５は、ＣＰＵ  Ｂｕｓ２００上にリード・トランザクションを発生してメモリコントローラ４にアクセスすることによって符号データを読み出し、当該符号データに必要なマーカー等を付加してＪＰＥＧデータとした後に、再びＣＰＵ  Ｂｕｓ２００上にライト・トランザクションを発生して、メモリカードコントローラ１９（Memory Card Controller）にアクセスすることによりメモリカード１７（MEMORY CARD）に当該ＪＰＥＧデータを格納する。１フレーム分の画像データの格納が終了すると、ＣＰＵ５は画像取り込みコントローラ１に対して取り込み再開を通知する。
【００４８】
撮影モードにおいては、画像取り込みコントローラ１の書き込みと信号処理プロセッサ２の読み出しが１つのメモリ領域を共有し、信号処理プロセッサ２の書き込みとＣＰＵ５の読み出しがもう１つのメモリ領域を共有するが、これら２つの領域へのメモリアクセスは順次的に行われる。
【００４９】
次に、再生モードの動作を説明する。再生モードでは、画像取り込みコントローラ１は停止している。
【００５０】
ＣＰＵ５は、ＣＰＵ  Ｂｕｓ２００上にリード・トランザクションを発生してメモリカードコントローラ１９にアクセスすることによりメモリカード１７に格納されているＪＰＥＧデータを読み出し、マーカー等の削除を行って符号データとする。
【００５１】
つづいて、ＣＰＵ５は、ＣＰＵ  Ｂｕｓ２００上にライト・トランザクションを発生し、メモリコントローラ４にアクセスすることによってＤＲＡＭ１３に符号データを書き込む。信号処理プロセッサ２は、符号データをＤＲＡＭ１３より読み出して、復号化、逆量子化、及び逆ＤＣＴ変換等の画像伸長処理を行って表示可能な画像データとした後に、再びＤＲＡＭ１３に書き戻す。表示コントローラ３は、表示可能データをＤＲＡＭ１３より読み出して表示動作を行う。
【００５２】
再生モードにおいては、ＣＰＵ５の書き込みと信号処理プロセッサ２の読み出しが１つのメモリ領域を共有し、信号処理プロセッサ２の書き込みと表示コントローラ３の読み出しがもう１つのメモリ領域を共有するが、これら２つの領域へのメモリアクセスは順次的に行われる。
【００５３】
動作モードの変更は、ユーザによるスイッチ群１６の操作によって行われる。スイッチの構成は様々な例が考えられるが、例えば、本実施の形態ではダイアルと押しボタンにより構成する。ダイアルの回転により動作モードの候補が順次更新され、押しボタンの押下により候補が選択される。選択のイベントによりＣＰＵ５に割り込みが発生する。ＲＯＭ１９に格納された割り込み処理ルーチンは動作モード変更ルーチンをコールする。
【００５４】
動作モード変更ルーチンでは新たに選択された動作モードを読み取る。読み取られた動作モードに対応して各モジュールの設定を行う。
【００５５】
次に、アドレス情報キュー４ｂへのアドレス情報書き込み動作における、ＣＰＵ  Ｂｕｓ２００の基本プロトコルを図２のタイミングダイアグラムを参照して説明する。
【００５６】
ＣＰＵ５は、転送開始信号（ｓｔａｒｔ＿Ｌ）をアサート（「０」）すると共に、３２ビットの転送開始アドレス信号（ａｄｄｒ［３１：０］）、バイトイネーブル信号（ｂｙｔｅＥｎ［３：０］）及びライトインジケータ信号（ｗｒ＿Ｌ）を出力する（サイクル３）。バイトイネーブル信号は、３２ビット以下の１，２，３バイト転送時に有効なバイトレーンを示す。ライトインジケータ信号は、リード時に「１」、ライト時に「０」が出力される。
【００５７】
ＣＰＵ５は、バススレーブによってアサートされるデータアクノレッジ信号（ｒｄｙ＿Ｌ）が入力されるまで（サイクル５）、転送開始アドレス信号、バイトイネーブル信号、及びライトインジケータ信号の各信号を有効な値に保つ。
【００５８】
ＣＰＵ５は、リード・トランザクションの場合、データアクノレッジ信号のアサートされたサイクル（５）でデータ信号（ｄａｔａ［３１：０］）にドライブされている値を読み取る。一方、ライト・トランザクションの場合は、転送開始信号（ｓｔａｒｔ＿Ｌ）のアサート（サイクル１９）からデータアクノレッジ信号（ｒｄｙ＿Ｌ）のアサート（サイクル２０）まで、ＣＰＵ５はデータ信号（ｄａｔａ［３１：０］）上に書き込む値をドライブし続ける。
【００５９】
次に、Ｉｍａｇｅ  Ｂｕｓ１００の基本プロトコルを図３のタイミングダイアグラムを参照して説明する。
【００６０】
まず、バストランザクションを行いたいバスマスターは、バス要求信号（ｒｅｑ）をアサートする（サイクル０）。ここで、バスアービター１２は、バス使用権を与えるバスマスターに対してバス許可信号（ｇｎｔ）をアサートする（サイクル１）。バス使用権を与えられたバスマスターは、アドレスバス使用信号（ａｄｄｒＢｕｓｙ）をアサートすると共に、３２ビットの転送開始アドレス信号（ａｄｄｒ［３１：０］）及びリードインジケータ信号（ｒｅａｄ）を出力する（サイクル２）。リードインジケータ信号には、リード時に「１」、ライト時には「０」が出力される。
【００６１】
バスマスターは、バススレーブ（メモリコントローラ４）によってアサートされるアドレスアクノレッジ信号（ａｃｋ）が入力されるまで（サイクル３）、アドレスバス使用信号（ａｄｄｒＢｕｓｙ）をアサートし続けると共に、転送開始アドレス信号（ａｄｄｒ），リードインジケータ信号（ｒｅａｄ）の各信号を有効な値に保つ。アドレスバス使用信号（ａｄｄｒＢｕｓｙ）がアサートされている期間がアドレス・フェーズである。
【００６２】
バスアービター１２は、アドレス・フェーズ中、トランザクションの識別信号であるｔｘＩＤ［３：０］を出力する。この識別信号は、バススレーブに取り込まれて、データ・フェーズ開始時にどのアドレス・フェーズに対応するデータ・フェーズを開始するのかを通知するために用いられる。
【００６３】
アドレス・フェーズの最中であっても、引き続き転送要求のあるマスターはｒｅｑ信号をアサートし続けてよい（サイクル２，３）。現在処理中のアドレス・フェーズが終了すると、直ちに次のアービトレーションに移って、次のアドレス・フェーズのためのｇｎｔ信号がアサートされる（サイクル４）。図２では、サイクル２，３のアドレス・フェーズでアドレス情報としてａｄｄｒ＝Ａ１，ｒｅａｄ＝「１」，ｔｘＩＤ＝「０００１」が取り込まれ、サイクル５，６のアドレス・フェーズでアドレス情報としてａｄｄｒ＝Ａ２，ｒｅａｄ＝「０」，ｔｘＩＤ＝「００１０」が取り込まれる。
【００６４】
データ・フェーズは、バススレーブ（メモリコントローラ４）がデータ送受信の準備完了信号（ｓｌｖＤＲｄｙ）をアサートすることにより開始される。バススレーブは、準備完了信号（ｓｌｖＤＲｄｙ）をアサートすると共にこのデータ・フェーズがどのアドレス・フェーズに対応するデータ転送を行うかを示すために、アドレス・フェーズ時に取り込んでおいた識別信号（ｔｘＩＤ）をｎｅｘｔＩＤ［３：０］信号として出力する（サイクル４）。図２のサイクル４では、ｎｅｘｔＩＤが「０００１」であるので、これは一番目のアドレス・フェーズに対応するデータ・フェーズであることがわかる。
【００６５】
準備完了信号（ｓｌｖＤＲｄｙ）及び識別信号（ｎｅｘｔＩＤ）はバスアービター１２に入力される。バスアービター１２は、識別信号（ｔｘＩＤ）に基づいてどのマスターとどのスレーブのペアがデータ転送を行うかを判定し、それぞれにデータバス使用許可信号（ｍｓｔＤＧｎｔ，ｓｌｖＤＧｎｔ）をアサートする。
【００６６】
データバス使用許可信号（ｍｓｔＤＧｎｔ）をアサートされたバスマスターは、データバス使用信号（ｄａｔａＢｕｓｙ）をアサートしてバスアービター１２に対してデータバスを使用中であることを通知する。一方、バススレーブは、４クロックサイクル間のデータストローブ信号（ｄａｔａＳｔｒｏｂｅ）をアサートすると共に、リードの場合はデータバス上にデータをドライブする（サイクル６，７，８，９）。ライトの場合は、データストローブ信号に同期してデータバス上のデータをフェッチする（サイクル１５，１６，１７，１８）。データを直ちにドライブ又はフェッチすることができない場合は、データストローブ信号をデアサート状態に保っておく（サイクル１３，１４）。
【００６７】
バスマスターは、４クロックサイクル間のデータストローブ信号（ｄａｔａＳｔｒｏｂｅ）を検出したときは、データバス使用信号（ｄａｔａＢｕｓｙ）をデアサートする（サイクル１０）。バスアービター１２は、データバス使用信号（ｄａｔａＢｕｓｙ）がデアサートされたことを検出すると次のデータバスグラントのサイクル（サイクル１）に移行する。
【００６８】
バススレーブがアドレスの発行順序とデータ転送の順序を並び替える場合は、準備完了信号（ｓｌｖＤＲｄｙ）とともに出力する識別信号（ｎｅｘｔＩＤ）を用いる。図２では、ａｄｄｒ＝Ａ３に対応する識別信号「００１１」（リード），ａｄｄｒ＝Ａ４に対応する識別信号「０１００」（ライト）の順にアドレス・フェーズが発生しているが、サイクル１９においてｎｅｘｔＩＤとして「００１１」ではなく「０１００」が出力されていることから、ａｄｄｒ＝Ａ４に対するライト転送が先に開始される。
【００６９】
次に、図１におけるバスインターフェース回路１ｃ，２ａ，３ａの各動作を説明する。なお、バスインターフェース回路１ｃはライト動作のみを行い、バスインターフェース回路２ａはリード及びライト動作を行い、バスインターフェース回路３ａはリード動作のみを行うので、バスインターフェース回路２ａを例として説明する。
【００７０】
図４は、図１におけるバスインターフェース回路２ａの内部構成を示すブロック図である。
【００７１】
アドレス・フェーズ生成部２ａ１には、ＦＩＦＯ２ｂが出力するＦＩＦＯポインタステータス信号が入力され、ＦＩＦＯ２ｂの空き容量が転送データ長（本実施の形態では３２ビット×４）以上になったことを示すステータスに応じてバス要求信号（ｒｅｑ）をアサートする。
【００７２】
バスアービター１２よりバス許可信号（ｇｎｔ）が入力されると、アドレス・フェーズが開始される。アドレス・フェーズ生成部２ａ１は、アドレス・フェーズにおいては転送開始アドレス信号（ａｄｄｒ［３１：０］）、リードインジケータ信号（ｒｅａｄ）、及びバス使用信号（ａｄｄｒＢｕｓｙ）を出力すると共に、ペンディングアドレスＦＩＦＯ２ａ３に対してリードインジケータをプッシュ（ｐｕｓｈ）する。また、アドレス・フェーズ生成部２ａ１は、ペンディングアドレスＦＩＦＯ２ａ３のフルフラグをモニタしており、当該ペンディングアドレスＦＩＦＯ２ａ３がフルの場合は新たにバス要求信号をアサートしない。
【００７３】
本実施の形態では、ペンディングアドレスＦＩＦＯ２ａ３は、４つのエントリーを備えており、最大４つまでのアドレス・フェーズをペンディングにすることが可能である。アドレス・フェーズは、バススレーブの出力するアドレスアクノレッジ信号（ａｃｋ）が入力されると一度終了し、バスマスターはバス使用信号（ａｄｄｒＢｕｓｙ）をデアサートする。
【００７４】
アドレス生成部２ａ２は、ＣＰＵ５から入力されるアドレス設定信号に応じて開始アドレスが設定され、Ｉｍａｇｅ  Ｂｕｓ１００への３２ビットの転送開始アドレス信号（ａｄｄｒ［３１：０］）を生成する。
【００７５】
データ・フェーズ生成部２ａ４は、ペンディングアドレスＦＩＦＯ２ａ３のエンプティフラグの反転信号をスタート信号としてデータ・フェーズの待機に入る。バスアービター１２によりデータバス使用許可信号（ｍｓｔＤＧｎｔ）がアサートされると直ちにデータバス使用信号（ｄａｔａＢｕｓｙ）をアサートしデータストローブ信号の受信待ちとなる。
【００７６】
データライト時は、バススレーブからのデータストローブ信号に応じてＦＩＦＯ制御信号を駆動してＦＩＦＯ２ｂから３２ビットのＦＩＦＯデータ［３１：０］を取り出し、Ｉｍａｇｅ  Ｂｕｓ１００上に３２ビットのデータ信号（ｄａｔａ［３１：０］）を出力する。データリード時は、データストローブ信号に応じてＩｍａｇｅ  Ｂｕｓ１００上のデータを取り込み、ＦＩＦＯ制御信号を駆動してＦＩＦＯへデータを書き込む。本実施の形態では、１回のデータ転送に対して４クロックサイクル分のデータストローブ信号が出力されるので、データ・フェーズ生成部２ａ４は、４クロックサイクル分のデータストローブ信号を検知すると、データバス使用信号（ｄａｔａＢｕｓｙ）をデアサートすると同時に、ペンディングアドレスＦＩＦＯ２ａ３の先頭エントリーを引き抜く（ｐｏｐ）する。
【００７７】
次に、図１におけるバスアービター１２の動作を図５を参照して説明する。
【００７８】
図５は、図１におけるバスアービターの内部構成を示す図である。
【００７９】
本実施の形態では、Ｉｍａｇｅ  Ｂｕｓ１００上のバスマスターは、画像取り込みコントローラ１、信号処理プロセッサ２、及び表示コントローラ３の３つであり、バス要求信号（ｒｅｑ）、バス許可信号（ｇｎｔ）はバスマスター毎に１本ずつ、それぞれ３ビットのバスとしてリクエストエンコード・ＩＤ生成回路１２ａ（req Decoding and ID generation）に接続されている。
【００８０】
リクエストエンコード・ＩＤ生成回路１２ａは、アサートされているすべてのバス要求信号（ｒｅｑ）より、ローテーション方式の公平プライオリティ・スキームを用いて１つのバスマスターを選択する。さらに、リクエストエンコード・ＩＤ生成回路１２ａは、アドレスバス使用信号（ａｄｄｒＢｕｓｙ）がデアサートされているならば、選択したバスマスターに対応するバス許可信号（ｇｎｔ）をアサートすると同時に、識別信号（ｔｘＩＤ）を生成する。
【００８１】
本実施の形態では、ペンディングになり得るアドレス・フェーズは１マスターにつき最大４つまでであるので、１つのバスマスターに対しては２ｂｉｔで「００」→「０１」→「１０」→「１１」→「００」→「０１」→の順にシーケンシャルに変化するＩＤをそれぞれのバスマスターに割り当てる。また、バスマスターが３つあるので、どのマスターかを識別するために２ｂｉｔを用い、画像取り込みコントローラ１に対しては「００」、信号処理プロセッサ２に対しては「０１」、表示コントローラ３に対しては「１０」を割り当てる。マスター識別用の２ｂｉｔを上位に、マスター内のシーケンシャルなＩＤ２ｂｉｔを下位に連結した４ｂｉｔを識別信号（ｔｘＩＤ［３：０］）とする。
【００８２】
リクエストエンコード・ＩＤ生成回路１２ａは、バス許可信号（ｇｎｔ）をアサートすると同時に、識別信号（ｔｘＩＤ）をバススレーブ（メモリコントローラ）に通知すると共に、バスアービター１２の内部に備えるＩＤキュー１２ｂ（ＩＤ  Ｑｕｅｕｅ）にプッシュする。
【００８３】
ＩＤキュー１２ｂは、６エントリーを備えるキューであり、フルフラグがたっている場合は、リクエストエンコード・ＩＤ生成回路１２ａはどのマスターにもバス許可信号（ｇｎｔ）をアサートしない。したがって、３つのバスマスターのペンディングできるアドレス・フェーズは合計６個までとなる。
【００８４】
バススレーブが識別信号（ｎｅｘｔＩＤ）を有効にすると共に準備完了信号（ｓｌｖＤＲｄｙ）をアサートすると、比較器１２ｃ（Ｃｏｍｐａｒａｔｏｒ）はＩＤキュー１２ｂ内のすべての有効なエントリーとｎｅｘｔＩＤ入力とを比較し、６ｂｉｔの一致信号（ｍａｔｃｈ［５：０］）のうちの１本のみをアサートする。例えば、ＩＤキュー１２ｂの先頭から３番目のエントリーがマッチすると、ｍａｔｃｈ＝「０００１００」となる。
【００８５】
ｍａｔｃｈ信号がデータグラント生成回路１２ｄ（mstDGnt and slvDGnt generation）に入力されると、データグラント生成回路１２ｄは６ｂｉｔのキューエントリー引き抜き信号（ｐｏｐＰｏｓ［５：０］）のうちの１ビットを１クロックサイクルだけアサートすることによりＩＤキュー１２ｂのエントリーを取り出す。ＩＤキュー１２ｂから取り出された４ビットデータのうちの上位２ｂｉｔをデコードすることにより、どのバスマスターにデータバスの使用権を与えるべきかが特定できるので、データバス使用信号（ｄａｔａＢｕｓｙ）がデアサートされ次第、対応するデータバス使用許可信号（ｍｓｔＤＧｎｔ）の３ｂｉｔのうちの１ｂｉｔをアサートすると同時に、データバス使用許可信号（ｓｌｖＤＧｎｔ）をアサートする。
【００８６】
図６は、図３のサイクル１９におけるＩＤキュー１２ｂの内容と各信号の状態を示したものである。
【００８７】
図３におけるサイクル１９の時点では、ＩＤキュー１２ｂの先頭にはｔｘＩＤ＝「００１１」すなわちマスター「００」からの「１１」番目のトランザクションがキューイングされており，２番目のエントリーにはｔｘＩＤ＝「０１００」すなわちマスター「０１」からの「００」番目のトランザクションがキューイングされている。バススレーブが準備完了信号（ｓｌｖＤＲｄｙ）をアサートすると共に、出力している識別信号（ｎｅｘｔＩＤ）は「０１００」であるから、比較器１２ｃが出力するｍａｔｃｈ信号は「００００１０」となり、２番目のエントリーがマッチしていることがわかる。
【００８８】
データグラント生成回路１２ｄは、キューエントリー引き抜き信号（ｐｏｐＰｏｓ［５：０］)を１クロックサイクル間で「００００１０」とすることにより、２番目のエントリーを取り込み、上位２ビットをデコードすることにより、データバス使用許可信号（ｍｓｔＤＧｎｔ［１］）のみを「１」にアサートすることができる。
【００８９】
次に、図１のメモリコントローラ４のアドレス情報キュー４ｂにおいてアドレス情報が格納される動作を図７を参照して説明する。
【００９０】
図７は、図１におけるバスインターフェース回路４ａ，４ｄとアドレス情報キュー４ｂの接続を示すブロック図である。
【００９１】
図７において、バスインターフェース回路４ａ，４ｄ（Bus Interface）は、各々のバストランザクションを検出すると、調停選択回路４ｅ（Arbitration and Select）に対し、それぞれバストランザクション検出信号をアサートする。
【００９２】
調停選択回路４ｅは、アドレス情報キュー４ｂ（Address Queue）からのアドレスキューｆｕｌｌ信号がアサートされていなければ、ＣＰＵ  Ｂｕｓ２００又はＩｍａｇｅ  Ｂｕｓ１００のいずれか一方を選択し、選択信号をマルチプレクサ４ｆ（ＭＵＸ）に伝達する。
【００９３】
マルチプレクサ４ｆは、上記選択信号に基づきアドレス情報キュー４ｂに入力するアドレスをＣＰＵ  Ｂｕｓアドレス又はＩｍａｇｅ  Ｂｕｓアドレスのいずれか一方より選択する。同時に、調停選択回路４ｅは、アドレス情報キュー４ｂに対し、アドレス情報取り込み（ｐｕｓｈ）信号をアサートする。
【００９４】
次に、メモリコントローラ４内のＤＲＡＭインターフェース４ｃとＤＲＡＭ１３との接続状態の代表的な例を図８に示す。
【００９５】
図８において、１３ａ（ＤＲＡＭ＿Ｈ），１３ｂ（ＤＲＡＭ＿Ｌ）は、共に１Ｍワード×１６ビットのＥＤＯモードＤＲＡＭであり、データバス（Ｄ）の上位１６ビットがＤＲＡＭ＿Ｈ１３ａに、下位１６ビットがＤＲＡＭ＿Ｌ１３ｂに接続されている。ＣＡＳがそれぞれ一対一の接続になっている以外は、ＤＲＡＭの制御線は１３ａ，１３ｂで共用している。アドレス（Ａ）は１０ビットであり、ローアドレス、カラムアドレスともに１０ビットである。
【００９６】
このような構成に対するアドレス情報キュー４ｂの内部構成を図９に示す。
【００９７】
Ｉｍａｇｅ  Ｂｕｓ１００上、ＣＰＵ  Ｂｕｓ２００上のアドレス（ａｄｄｒ［３１：０］）は、共にバイトアドレスであるので、メモリに対して３２ビットアクセスを行う場合は下位２ビットが無視される。本実施の形態では、ａｄｄｒ［２１：１２］をローアドレスに割り付け、ａｄｄｒ［１１：２］をカラムアドレスに割り付ける。
【００９８】
図中の４ｂ１，４ｂ３，４ｂ５，４ｂ７，４ｂ９，４ｂ１１がローアドレスを格納するためのキュー要素であり、４ｂ２，４ｂ４，４ｂ６，４ｂ８，４ｂ１０，４ｂ１２がカラムアドレスを格納するためのキュー要素である。それぞれのキュー要素（ｉ）は、新規入力（ａｄｄｒ）、前段（ｉ−１）、後段（ｉ＋１）、及び自分自身（ｉ）の４つの値のいずれかによって置換可能となっており、どの値で置換するかをプッシュ・ポップ制御回路４ｂ１３が出力するｓｈｉｆｔ［１：０］信号によって制御する。具体的には、ｓｈｉｆｔ＝「００」のときは「自分自身」、ｓｈｉｆｔ＝「０１」のときは「前段」、ｓｈｉｆｔ＝「１０」のときは「後段」、ｓｈｉｆｔ＝「１１」のときは「新規入力」で置換する。
【００９９】
マルチプレクサ４ｃ１（ＭＵＸ）は、通常、ＤＲＡＭインターフェース４ｃ内に装備され、ＤＲＡＭのローサイクル、カラムサイクルに応じてキュー要素の最前段４ｂ１１，４ｂ１２の出力を選択してメモリアドレスＡ［９：０］としてメモリに出力する。
【０１００】
プッシュ・ポップ制御回路４ｂ１３は、内部にカウンタ（ｐｏｉｎｔｅｒ）を備えており、上記調停選択回路４ｅからのアドレス情報取り込み信号（ｐｕｓｈ）がアサートされるたびにｐｏｉｎｔｅｒをインクリメントする。また、ＤＲＡＭインターフェース回路４ｃからのアドレス情報削除信号（ｐｏｐ）がアサートされるたびにｐｏｉｎｔｅｒをデクリメントする。アドレス情報取り込み信号（ｐｕｓｈ）とアドレス情報削除信号（ｐｏｐ）が同時にアサートされた場合はｐｏｉｎｔｅｒの増減は行わない。
【０１０１】
プッシュ・ポップ制御回路４ｂ１３は、ｐｏｉｎｔｅｒの現在値に応じて必要なｓｈｉｆｔ信号を生成する。例えば、初期状態でｐｏｉｎｔｅｒ＝０の場合にｐｕｓｈ信号がアサートされると、キュー要素４ｂ１１，４ｂ１２に対応するｓｈｉｆｔ［１：０］を「１１」にドライブすることによりキュー位置０に新規入力を取り込み、ｐｏｉｎｔｅｒ＝１とする。さらに、ｐｕｓｈ信号がアサートされると、キュー要素４ｂ９，４ｂ１０に対応するｓｈｉｆｔ［１：０］を「１１」にドライブし、キュー要素４ｂ１１，４ｂ１２に対応するｓｈｉｆｔ［１：０］は「００」にドライブすることにより、キュー位置０の内容は保持し、キュー位置１に新規入力を取り込む。さらにｐｏｉｎｔｅｒ＝２とする。
【０１０２】
次に、プッシュ・ポップ制御回路４ｂ１３は、メモリインターフェース回路４ｃよりｐｏｐ信号を受信すると、キュー要素４ｂ１１，４ｂ１２に対応するｓｈｉｆｔ［１：０］を「０１」にドライブすることによりキュー位置０にキュー位置１に格納されていた情報をシフトし、ｐｏｉｎｔｅｒ＝１とする。
【０１０３】
ｐｏｉｎｔｅｒの値の上限は、キュー深さ設定回路４ｂ１４（Queue Depth）により決定される。キュー深さは図示しない制御信号を使用してＣＰＵ５により設定される。設定値は、比較器４ｂ１５（pointer ≧ Queue Depth）によりｐｏｉｎｔｅｒ値と比較され、ｐｏｉｎｔｅｒ値≧設定値となったときにキューｆｕｌｌ信号がアサートされ、バスインターフェース回路４ａまたは４ｄからの新たなアドレス情報の格納が停止する。
【０１０４】
次に、キュー深さの設定が４の場合に、アドレス情報キュー４ｂへアドレス情報が格納される動作を図１０及び図１１を用いて説明する。
【０１０５】
図１０は、キュー深さの設定が４の場合のアドレス情報の格納動作のタイミングダイアグラムを示す図であり、図１１は、図１０のタイミングダイアグラムにおけるアドレス情報キュー４ｂの状態遷移を示す図である。
【０１０６】
サイクル２においてＩｍａｇｅ  Ｂｕｓトランザクションが発生し、追ってサイクル３でＣＰＵ  Ｂｕｓトランザクションが発生する。この場合、サイクル３においてＩｍａｇｅ  Ｂｕｓ１００のアドレスＡ１がアドレス情報キュー４ｂにプッシュされる。つづいて、サイクル５においてＣＰＵ  Ｂｕｓ２００のアドレスａ１がプッシュされる。Ｉｍａｇｅ  Ｂｕｓ１００上では、後続のアドレス・フェーズが発生しているので、サイクル７においてアドレスＡ２がプッシュされ、サイクル１０ではアドレスＡ３がプッシュされる。この結果、ｐｏｉｎｔｅｒが４になるため、ｆｕｌｌ信号がアサートされ、アドレスＡ４のキューイングはウエイトされる（図１１（ｄ））。
【０１０７】
サイクル１４において、Ａ１に対応するデータ転送が終了し、Ａ１がポップされる。結果、ｐｏｉｎｔｅｒが３になるため（図１１（ｅ））、ｆｕｌｌ信号がネゲートされる。サイクル１５において、直ちにアドレスＡ４がプッシュされる。サイクル１８において、ＣＰＵ  Ｂｕｓ２００のａ１に対応するデータ転送が終了し、ａ１がポップされると同時に、ＣＰＵ  Ｂｕｓ２００上でデータアクノレッジ信号（ｒｄｙ＿Ｌ）がアサートされる。ＣＰＵ  Ｂｕｓ２００は、ノンパイプラインバスであるため、次のトランザクションはサイクル１９より開始される。サイクル１９では、直ちにＣＰＵ  Ｂｕｓ２００のアドレスａ２がプッシュされ、その後、ポップが発生するとＩｍａｇｅ  Ｂｕｓ１００のアドレスＡ５，Ａ６がプッシュされる。
【０１０８】
図１０に示すタイミングダイアグラムからわかるように、Ｉｍａｇｅ  Ｂｕｓトランザクションがメモリアクセスを行う機会は、ＣＰＵ  Ｂｕｓトランザクションがメモリアクセスを行う機会よりも３倍多くなっている。
【０１０９】
次に、キュー深さの設定が２の場合に、アドレス情報キュー４ｂへアドレス情報が格納される動作を図１２及び図１３を参照して説明する。
【０１１０】
図１２は、キュー深さの設定が２の場合のアドレス情報の格納動作のタイミングダイアグラムを示す図であり、図１３は、図１２のタイミングダイアグラムにおけるアドレス情報キュー４ｂの状態遷移を示す図である。
【０１１１】
サイクル２においてＩｍａｇｅ  Ｂｕｓトランザクションが発生し、追ってサイクル３でＣＰＵ  Ｂｕｓトランザクションが発生する。この場合、サイクル３においてＩｍａｇｅ  Ｂｕｓ１００のアドレスＡ１がアドレス情報キュー４ｂにプッシュされる。つづいて、サイクル５においてＣＰＵ  Ｂｕｓ２００のアドレスａ１がプッシュされる。この結果、ｐｏｉｎｔｅｒ値が２になるためｆｕｌｌ信号がアサートされ、アドレスＡ２のキューイングはウエイトされる。サイクル１０においてＡ１に対応するデータ転送が終了し、Ａ１がポップされる。結果、ｐｏｉｎｔｅｒが１になるため、ｆｕｌｌ信号がネゲートされる（図１２（ｃ））。
【０１１２】
サイクル１１において、直ちにアドレスＡ２がプッシュされる。サイクル１４において、ＣＰＵ  Ｂｕｓ２００のａ１に対応するデータ転送が終了し、ａ１がポップされると同時に、ＣＰＵ  Ｂｕｓ２００上でデータアクノレッジ信号（ｒｄｙ＿Ｌ）がアサートされる。ＣＰＵ  Ｂｕｓ２００は、ノンパイプラインバスであるため、次のトランザクションはサイクル１５より開始される。
【０１１３】
Ｉｍａｇｅ  Ｂｕｓ１００上では、すでにアドレスＡ３が出力されているが、ＣＰＵ  Ｂｕｓ２００の優先度が高いため、サイクル１５で直ちにＣＰＵ  Ｂｕｓ２００のアドレスａ２がプッシュされる。この後、ポップが発生する毎に、Ｉｍａｇｅ  ＢｕｓアドレスＡ３、ＣＰＵ  Ｂｕｓアドレスａ３、Ｉｍａｇｅ  ＢｕｓアドレスＡ４、ＣＰＵ  Ｂｕｓアドレスａ４の順にプッシュされる。
【０１１４】
図１１に示すタイミングダイアグラムからわかるように、Ｉｍａｇｅ  Ｂｕｓトランザクションがメモリアクセスを行う機会とＣＰＵ  Ｂｕｓトランザクションがメモリアクセスを行う機会とは、ほぼ一対一となっている。
【０１１５】
上記実施の形態によれば、Ｉｍａｇｅ  Ｂｕｓトランザクションがメモリアクセスを行う機会とＣＰＵ  Ｂｕｓトランザクションがメモリアクセスを行う機会との比率は、キュー深さの設定によって容易に制御することが可能である。
【０１１６】
したがって、ＥＶＦモードのように、ＣＰＵ５がメモリアクセスを行う機会は少ないが、Ｉｍａｇｅ  Ｂｕｓ１００上のデバイスが並列的に大量のデータ転送をメモリとの間で行う必要があるときにキュー深さを例えば６に設定し、撮影モードのように、ＥＶＦモードに比べるとＩｍａｇｅ  Ｂｕｓ１００上のデータ転送レートは低いが、ＣＰＵ５がメモリからメモリカードにデータ転送を行うデータ転送レートを高くしなければ連続撮影性能が低下するようなときは、キュー深さを例えば３に設定するように制御を行うことにより、動作モードに応じた最適なメモリバンド幅の分配が可能になる。
【図面の簡単な説明】
【０１１７】
【図１】本発明の実施の形態に係るデータ処理装置を搭載したデジタルスチルカメラの内部構成を示すブロック図である。
【図２】図１におけるＣＰＵ  Ｂｕｓの基本プロトコルのタイミングダイアグラムを示す図である。
【図３】図１におけるＩｍａｇｅ  Ｂｕｓの基本プロトコルのタイミングダイアグラムを示す図である。
【図４】図１におけるバスインターフェース回路の内部構成を示す構成図である。
【図５】図１におけるバスアービターの内部構成を示す図である。
【図６】図３のサイクル１９におけるＩＤキュー１２ｂの内容と各信号の状態を示す図である。
【図７】図１におけるバスインターフェース回路４ａ，４ｄとアドレス情報キュー４ｂの接続状態を示すブロック図である。
【図８】図１におけるＤＲＡＭインターフェース４ｃとＤＲＡＭ１３との接続状態を示す図である。
【図９】図１におけるアドレス情報キュー４ｂの内部構成を示す図である。
【図１０】キュー深さの設定が４の場合のアドレス情報の格納動作のタイミングダイアグラムを示す図である。
【図１１】図１０のタイミングダイアグラムにおけるアドレス情報キュー４ｂの状態遷移を示す図である。
【図１２】キュー深さの設定が２の場合のアドレス情報の格納動作のタイミングダイアグラムを示す図である。
【図１３】図１２のタイミングダイアグラムにおけるアドレス情報キュー４ｂの状態遷移を示す図である。
【符号の説明】
【０１１８】
１  画像取り込みコントローラ
２  信号処理プロセッサ
３  表示コントローラ
４  メモリコントローラ
４ｂ  アドレス情報キュー
４ｃ  ＤＲＡＭインターフェース回路
５  ＣＰＵ
１００  Ｉｍａｇｅ  Ｂｕｓ
２００  ＣＰＵ  Ｂｕｓ
【図１】
2005309510.tif 000003
【図２】
2005309510.tif 000004
【図３】
2005309510.tif 000005
【図４】
2005309510.tif 000006
【図５】
2005309510.tif 000007
【図６】
2005309510.tif 000008
【図７】
2005309510.tif 000009
【図８】
2005309510.tif 000010
【図９】
2005309510.tif 000011
【図１０】
2005309510.tif 000012
【図１１】
2005309510.tif 000013
【図１２】
2005309510.tif 000014
【図１３】
2005309510.tif 000015