(57)【要約】【課題】  データ処理装置において、データ転送に先立って送出したアドレスの順序を入れ替えて、入れ替えた順序に基づいてデータ転送を行う。【解決手段】  データ取り込みコントローラ1、データ処理コントローラ2、データ出力コントローラ3はメモリコントローラ４に対してアクセスすべきメモリのアドレス情報を転送すべきデータに先立って送信する。メモリコントローラ４は、データ転送の転送効率が向上する場合はアドレス情報を並べ替えて、並べ替えた順にデータ転送を行う。【選択図】  図１
2006099585.tif 000002
【特許請求の範囲】
【請求項１】
データを処理する複数のデータ処理手段と、
前記データ処理手段によって処理されるデータを格納するメモリと、
前記メモリへのデータ・アクセスを制御するメモリ制御手段と、を備えるデータ処理装置であって、
前記データ処理手段はアクセスすべき複数のデータの対応する複数のアドレス情報をデータ転送に先立って発行し、前記メモリ制御手段は、前記複数のアドレス情報を格納するアドレス情報格納手段を備え、アドレス情報の発行順にデータ転送を行うよりもデータ転送効率が向上する転送順が存在する場合に前記転送順にアドレス情報の格納順を並び替え、前記データ処理手段は、前記並び替えられたアドレス情報の格納順に応じてデータ・アクセスを行うように構成されていることを特徴とするデータ処理装置。
【請求項２】
前記メモリはローアドレスとカラムアドレスを用いてアクセスされるDRAMであり、前記メモリ制御手段は、同一ローアドレスに対するデータ・アクセスが連続するようにアドレス情報を並び替えることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記メモリはローアドレスとカラムアドレスを用いてアクセスされる複数のバンクから構成されるDRAMであり、前記メモリ制御手段は、同一バンクに対しかつ異なるローアドレスに対するデータ・アクセスが連続しないようにアドレス情報を並び替えることを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
前記メモリはバンクアドレスとローアドレスとカラムアドレスを用いてアクセスされるシンクロナスDRAMであり、前記メモリ制御手段は、同一バンクに対しかつ異なるローアドレスに対するデータ・アクセスが連続しないようにアドレス情報を並び替えることを特徴とする請求項１に記載のデータ処理装置。
【請求項５】
前記メモリはチップ選択信号とバンクアドレスとローアドレスとカラムアドレスを用いてアクセスされる複数のシンクロナスDRAMであり、前記メモリ制御手段は、同一チップかつ同一バンクに対しかつ異なるローアドレスに対するデータ・アクセスが連続しないようにアドレス情報を並び替えることを特徴とする請求項１に記載のデータ処理装置。
【請求項６】
前記アドレス情報格納手段の先頭に格納されているアドレス情報は並び替えの対象としないことを特徴とする請求項１に記載のデータ処理装置。
【請求項７】
前記アドレス情報格納手段に格納されているアドレス情報のうち一度並び替えによって後続のアドレス情報に追い越されたアドレス情報は並び替えの対象としないことを特徴とする請求項１に記載のデータ処理装置。
【請求項８】
前記アドレス情報格納手段に新たに格納されるべきアドレス情報のアドレスが、すでに格納されているアドレス情報のアドレスと一致する場合は、少なくともアドレスの一致したアドレス情報を追い越すような並び替えを行わないことを特徴とする請求項１に記載のデータ処理装置。
【請求項９】
前記アドレス情報格納手段に新たに格納されるべきアドレス情報を送出している前記データ処理手段と同一のデータ処理手段から送出されたすでに格納されているアドレス情報を追い越すような並び替えを行わないことを特徴とする請求項１に記載のデータ処理装置。
【請求項１０】
前記データ処理手段は追い越し許可通知手段を備え、前記追い越し許可が通知された場合に限り、前記アドレス情報格納手段に新たに格納されるべきアドレス情報を送出している前記データ処理手段と同一のデータ処理手段から送出されたすでに格納されているアドレス情報を追い越すような並び替えを許すことを特徴とする請求項９に記載のデータ処理装置。
【請求項１１】
前記データ処理手段のうち少なくとも１つは常時追い越し要求通知手段を備え、前記常時追い越し要求通知手段を備えたデータ処理手段から送出されたアドレス情報は、アドレス情報の発行順にデータ転送を行うよりもデータ転送効率が向上する転送順が存在するか否かに関わらず、常にアドレス格納手段の先頭に格納されることを特徴とする請求項１に記載のデータ処理装置。
【請求項１２】
前記アドレス情報格納手段の先頭に格納されているアドレス情報は追い越しの対象としないことを特徴とする請求項１１に記載のデータ処理装置。
【請求項１３】
前記アドレス情報格納手段に格納されているアドレス情報のうち一度並び替えによって後続のアドレス情報に追い越されたアドレス情報は追い越しの対象としないことを特徴とする請求項１１に記載のデータ処理装置。
【請求項１４】
前記アドレス情報格納手段に新たに格納されるべきアドレス情報のアドレスが、すでに格納されているアドレス情報のアドレスと一致する場合は、少なくともアドレスの一致したアドレス情報を追い越すような並び替えを行わないことを特徴とする請求項１１に記載のデータ処理装置。
【請求項１５】
前記アドレス情報格納手段に新たに格納されるべきアドレス情報を送出している前記データ処理手段と同一のデータ処理手段から送出されたすでに格納されているアドレス情報を追い越すような並び替えを行わないことを特徴とする請求項１１に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置に関し、特にディジタルスチルカメラやテレビ電話端末装置、複写機、プリンター、ファクシミリ等の画像処理装置に適用できるものである。
【背景技術】
【０００２】
近年、処理データの増大や処理アルゴリズムの複雑化に伴って、メモリ・インテンシブなデータ処理を必要とする画像処理装置が増えてきている。例えば、ディジタルスチルカメラでは、CCDから取り込んだ画像データに対し、リアルタイムの信号処理を施しつつ、表示やデータ圧縮を行う必要がある。この場合、CCDから取り込んだローデータ（信号処理前生データ）は一旦メモリに格納され、これをメモリから順次読み出しながら信号処理を施し、信号処理を施したデータはまたメモリに格納される。一方表示部は、信号処理後の画像データをメモリから読み出しながら表示を行う。データ圧縮部においても、信号処理後のデータをメモリから読み出し、これを圧縮、エンコードした後のデータを再びメモリに書き戻す。特に、表示部はメモリからのデータの読み出しが滞ると画像が乱れるなどの問題が発生するため、リアルタイム性が要求される。また、CCDから取り込んだローデータのメモリへの書き込みに関しても、特に連写時には滞りないメモリアクセスが必要とされる。
【０００３】
このようにメモリに対して大量のデータ転送が発生するようなデータ処理装置においては、従来、高速ページモードあるいはEDOモード付のDRAMや、シンクロナスDRAMのような連続的なアドレスに対する連続的なデータ転送が高速化されたメモリデバイスがよく用いられている。理由としては、高速アクセスの可能なSRAMはビット単価が高いため、画像のようなデータ量の多いデータを扱う場合はシステム全体の価格が増大してしまう点、および、多くの画像処理は、メモリアクセスのアドレス変化がシーケンシャルであるため、連続的なアドレスに対するデータ転送は上記のようなDRAMを用いても比較的パフォーマンスをあげやすいという点が挙げられる。
【０００４】
上記のDRAMが連続的なアドレスに対して高速にアクセス可能な共通的かつ基本的な原理は次のようなものである。すなわち、あるローアドレスに対応するセンスアンプを一度アクティブにすると、同一ローアドレスに対するアクセスはアクティブになっているセンスアンプに対して行うため高速になる（ページ・ヒット）。裏を返せば、異なるローアドレスに対するアクセスが連続的に起こる場合（ページ・ミス・ヒット）は、センスアンプをプリチャージする必要があり、このプリチャージに時間（ペナルティ）がかかるため高速アクセスを行うことができない。DDR型、RAMBUS型を含むシンクロナスDRAMにおいては、さらに単一のメモリデバイスの中に複数のバンクを備えており、バンクに対応する複数のローアドレスをアクティブにしておくことが可能である。この場合は、異なるローアドレスに対するアクセスに関してもバンクが異なるならば高速なアクセスが可能になる。
【０００５】
従来技術においては、さらにデータ処理部によりアクセスされるメモリアドレスをデータ転送に先立って発行して、先行するアドレスに対するデータ転送中に次のアドレスに対するメモリアクセスの準備を行うような方法もとられている(例えば〔特許文献１〕参照)。例えば、シンクロナスDRAMを用いる場合には、先行するアドレスに対するデータ転送中に、後続のアドレスが別バンクに対してページ・ミス・ヒットしていることが判明した場合、先行するデータ転送の最中においても別バンクのプリチャージを並行して行うことができるので、全体としてはプリチャージのためのペナルティを小さくすることができる。
【特許文献１】特開２００２−２４４８４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術は比較的単純なデータ処理、すなわち、ある時刻に同時にメモリアクセス要求を発生するデータ処理部が高々数個であり、全体の処理としては順次異なるデータ処理部が行うようなデータ処理には有効であったが、より複雑なデータ処理、すなわち多くのデータ処理部が同時にメモリアクセス要求を発生し、また処理自体も並列的に行われるようなデータ処理装置においては不十分である。
【０００７】
例えば、データ処理部Aとデータ処理部Bがそれぞれ同一バンクのローアドレスAとローアドレスBに同時にメモリアクセス要求を行うような場合、メモリ制御部にはA、B、A、B、A、B、A、B、のように交互にページ・ミス・ヒットするアドレスが転送される。この場合は、従来技術を用いて、アドレスがデータに先立って発行されたとしても転送毎にプリチャージを行う必要があるため、プリチャージのペナルティを軽減することはできなかった。
【０００８】
本発明は上記従来例に鑑みてなされたもので、複雑なデータ処理時にもデータ転送効率のよいデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
以上の目的を達成するために、本発明によるデータ処理装置においては、データを処理する複数のデータ処理手段と、前記データ処理手段によって処理されるデータを格納するメモリと、前記メモリへのデータ・アクセスを制御するメモリ制御手段とを備えて、前記データ処理手段はアクセスすべき複数のデータの対応する複数のアドレス情報をデータ転送に先立って発行し、前記メモリ制御手段は、前記複数のアドレス情報を格納するアドレス情報格納手段を備え、アドレス情報の発行順にデータ転送を行うよりもデータ転送効率が向上する転送順が存在する場合に前記転送順にアドレス情報の格納順を並び替え、前記データ処理手段は、前記並び替えられたアドレス情報の格納順に応じてデータ・アクセスを行うように構成する。
【００１０】
前記メモリはローアドレスとカラムアドレスを用いてアクセスされるDRAMであり、前記メモリ制御手段は、同一ローアドレスに対するデータ・アクセスが連続するようにアドレス情報を並び替えるように構成することも好ましい。
【００１１】
前記メモリはローアドレスとカラムアドレスを用いてアクセスされる複数のバンクから構成されるDRAMであり、前記メモリ制御手段は、同一バンクに対しかつ異なるローアドレスに対するデータ・アクセスが連続しないようにアドレス情報を並び替えるように構成することも好ましい。
【００１２】
前記メモリはバンクアドレスとローアドレスとカラムアドレスを用いてアクセスされるシンクロナスDRAMであり、前記メモリ制御手段は、同一バンクに対しかつ異なるローアドレスに対するデータ・アクセスが連続しないようにアドレス情報を並び替えることように構成することも好ましい。
【００１３】
前記メモリはチップ選択信号とバンクアドレスとローアドレスとカラムアドレスを用いてアクセスされる複数のシンクロナスDRAMであり、前記メモリ制御手段は、同一チップかつ同一バンクに対しかつ異なるローアドレスに対するデータ・アクセスが連続しないようにアドレス情報を並び替えるように構成することも好ましい。
【００１４】
前記アドレス情報格納手段の先頭に格納されているアドレス情報は並び替えの対象としないように構成することも好ましい。
【００１５】
前記アドレス情報格納手段に格納されているアドレス情報のうち一度並び替えによって後続のアドレス情報に追い越されたアドレス情報は並び替えの対象ように構成することも好ましい。
【００１６】
前記アドレス情報格納手段に新たに格納されるべきアドレス情報のアドレスが、すでに格納されているアドレス情報のアドレスと一致する場合は、少なくともアドレスの一致したアドレス情報を追い越すような並び替えを行わないように構成することも好ましい。
【００１７】
前記アドレス情報格納手段に新たに格納されるべきアドレス情報を送出している前記データ処理手段と同一のデータ処理手段から送出されたすでに格納されているアドレス情報を追い越すような並び替えを行わないように構成することも好ましい。
【００１８】
前記データ処理手段は追い越し許可通知手段を備え、前記追い越し許可が通知された場合に限り、前記アドレス情報格納手段に新たに格納されるべきアドレス情報を送出している前記データ処理手段と同一のデータ処理手段から送出されたすでに格納されているアドレス情報を追い越すような並び替えを許すことを特徴とする請求項９に記載のデータ処理装置。
【００１９】
前記データ処理手段のうち少なくとも１つは常時追い越し要求通知手段を備え、前記常時追い越し要求通知手段を備えたデータ処理手段から送出されたアドレス情報は、アドレス情報の発行順にデータ転送を行うよりもデータ転送効率が向上する転送順が存在するか否かに関わらず、常にアドレス格納手段の先頭に格納されるように構成することも好ましい。
【発明の効果】
【００２０】
以上に述べたように本発明のデータ処理装置によれば、単一のデータ処理部は連続的なアドレスにアクセスするが、多くのデータ処理部が同時にメモリアクセス要求を発生しまた処理自体も並列的に行われるようなデータ処理装置においても、アドレスの非連続部のペナルティを軽減してメモリとの間のデータ転送のスループットが飛躍的に向上する。
【発明を実施するための最良の形態】
【００２１】
（実施形態１）
次に、本発明に係る一実施例を図面を用いて詳細に説明する。図１は本発明の1例である携帯型テレビ電話端末の電気的な構成を示すブロック図である。
【００２２】
ブロック間を結合する線の表記は、データ系の接続を太い実線で図示し、制御系の接続を細い実線で図示した。ただし、すべての接続が図示されているわけではなく、説明に必要な代表的な接続のみを図示した。
【００２３】
主要なブロックとして、画像取り込みに関わる画像取り込みコントローラ1、画像処理に関わる信号処理プロセッサ2、画像表示に関わる表示コントローラ３、画像メモリ制御のメモリコントローラ４、全体制御に関わるCPU５からなる。
【００２４】
次に、本発明の携帯型テレビ電話端末の動作を説明するために、各ブロックの動作を説明する。
【００２５】
まずレンズモジュール６に入力された画像がCCD７に結像する。レンズモジュール６はレンズ、オートアイリスのための駆動系、オートフォーカスのための駆動系等からなる。駆動系の制御は図示しない制御信号によってCPU5によって行われる。CCD７に結像した画像データは前処理モジュール8に入力される。本実施例においては、CCDの取り込む有効画素数は640ｘ480画素（VGA相当）である。前処理モジュール8はCDS（相関二重サンプリング）およびAGC（自動利得制御）からなる。また、CCD７および前処理モジュール8に対するクロックおよびタイミング信号はタイミング生成回路9（TG）より供給される。前処理を行った画像データはAD変換器10により10ビットのディジタルデータに変換されて、タイミング生成回路11（SG)により生成されるピクセルクロックに同期して画像取り込みコントローラ１に入力される。
【００２６】
画像取り込みコントローラ1に入力された画像データは、まず取り込み回路1aによって取り込まれ、直ちに有効画素データのみがFIFO1bに書き込まれる。
【００２７】
バスインターフェース回路1cはFIFO1bに書き込まれたデータ数が所定値を超えると、メインバスMB上に書き込みのバストランザクションを発生し 、メモリコントローラ4にFIFO1bから読み出したデータを転送する。バストランザクションはデータ転送を行うための転送先開始アドレス送出(アドレス・フェーズ)と転送すべきデータ送出(データ・フェーズ)の２つのフェーズからなる。本実施例では、1回のデータ・フェーズにおいて転送されるデータ量は固定であり、32ビットデータバスを用いて4クロックサイクルで128ビットを転送する。
【００２８】
なお、バスインターフェース回路1cは通常画像取り込みクロック(Latch Clock)とは非同期のバスクロックで動作している。したがって、FIFO1bの読み出しクロックは、書き込みクロックとは非同期であり、FIFO1bはこの非同期データ転送を緩衝するための目的にも用いられる。
【００２９】
メインバスMBには、他にもバストランザクションを発生するバスマスターが複数接続されている（信号処理プロセッサ、表示コントローラ、CPU）ので、同時に複数のバストランザクションが発生する可能性がある。バスアービター12は、1度に１つだけのバスマスターがバストランザクションを発生できるようにバスを調停する。
【００３０】
メモリコントローラ4は、バスインターフェース回路4aにおいてバストランザクションを受信し、アドレス・フェーズにおいてアドレス情報をアドレス情報キュー4bに書き込む。DRAMインターフェース回路4cはDRAMへの制御信号を出力するとともにアドレス、データをEDOモードDRAM１３に対して出力する。ここで、メモリアドレスはバストランザクションのアドレス・フェーズにおいて得られたアドレスから生成される。DRAMインターフェース4cは前記アドレスから始まる連続アドレスに対して、128ビット分のデータをEDOモードで連続的に転送する。なお、バスインターフェース回路4a、アドレス情報キュー4b、DRAMインターフェース回路4cはバスクロックに同期して動作する。
【００３１】
次に、信号処理プロセッサ2は読み出しのためのバストランザクションを発生し、バスクロックで動作するバスインターフェース回路2aによって画像メモリから画像取り込みコントローラによって取り込まれた画像データを読み出す。読み出されたデータはバスクロックに同期して双方向FIFO2bに書き込まれる。DSP2cはバスクロックと異なるクロック（DSPクロック）で動作しており、DSPクロックに同期して双方向FIFO2bのデータにアクセスして、カラーマトリクス処理によりYC分離を行い、続いて色補正、エッジ強調、ホワイトバランス調整、ガンマ補正などの処理を行う。このようにして得られた画像データは、表示に用いられるほか画像圧縮にも用いられる。表示用に用いる場合は、表示コントローラ3が読み出せるように、バスインターフェース回路2aを起動して書き込みのバストランザクションを発生し、DRAM13にデータを転送する。
【００３２】
信号処理プロセッサにおいても、バストランザクションはデータ転送を行うための転送先開始アドレス送出(アドレス・フェーズ)と転送すべきデータ送出(データ・フェーズ)の２つのフェーズからなる。但し、アドレス・フェーズにおいては、読み出しか書き込みかを示す信号も合わせて送出される。
【００３３】
次に、本発明の携帯型テレビ電話端末におけるそれぞれの動作モードについて説明する。動作モードとしては、EVFモード、撮影モード、再生モード、テレビ電話モードがある。
【００３４】
EVFモードにおいては、上述した動作を毎フレーム繰り返すことによって、連続したフレームを画像メモリに取り込む。信号処理プロセッサ2がデータライトする画像メモリ上の領域としては、同一領域を上書きする動作でよい。表示コントローラ3は前記領域より画像データを読み出すことにより、表示データを得る。
【００３５】
表示コントローラ3は読み出しのためのバストランザクションを発生し、バスクロックで動作するバスインターフェース回路3aによって画像メモリから表示データを読み出す。次に、このデータをバスクロックに同期してFIFO3bの書き込みポートに入力する。NTSCのモニタや液晶ディスプレイに代表されるように、一般に表示装置は画面を絶え間なくリフレッシュする必要があるため、有効画面期間中はあるピクセルクロックで動作し続けなければならない。そのためバスインターフェース回路3aは、FIFO3bがフル状態になるまでデータを読み出し続ける。
【００３６】
次に、読み出し回路3cは表示ピクセルクロックに同期してFIFO3bよりデータを読み出し、NTSCエンコーダ3dに送出する。NTSCエンコーダ3dによってNTSCフォーマットに変換されたディジタルデータは、DAコンバータ14によってアナログ信号に変換された後にNTSCモニタ15によって表示される。
【００３７】
上記の動作をフレームごとに連続することにより、EVFモードの動作となる。
【００３８】
EVFモードにおいては画像取り込みコントローラ１の書き込みと信号処理プロセッサ２の読み出しが１つのメモリ領域を共有し、信号処理プロセッサ２の書き込みと表示コントローラ３の読み出しがもう１つのメモリ領域を共有し、これら２つの領域へのメモリアクセスは並列的に行われる。
【００３９】
次に、撮影モードの動作を説明する。撮影モードでは1フレーム分の画像を取り込んだ後、該データをJPEG圧縮して外部記憶等に記録する。
【００４０】
まず、スイッチ群16のうちの１つはシャッターボタンであり、該ボタンの押下がCPU5によって検出されると、CPUは図示しない制御信号により画像取り込みコントローラ1に対し、次の1フレームを取り込み終わったら以降のフレームは取り込まないように指示する。同様に、信号処理プロセッサ2に対し、次の1フレームは画像圧縮処理を行うことを通知する。
【００４１】
画像取り込みコントローラ1はEVFモードの場合とは異なり、1フレーム取り込んで画像メモリにデータ転送を行い終わると一時停止する。信号処理プロセッサ2は取り込まれたデータを読み出して、表示データを生成した場合とまったく同様にYC分離、色補正、エッジ強調、ホワイトバランス調整、ガンマ補正等の画像処理を行った後、直ちに該データに対して、DCT演算処理、量子化処理、可変長符号化処理などを施して得た符号データを、画像メモリ内の表示用データ領域とは別の領域に書き込む。
【００４２】
CPU5は前記データを読み出し、必要なマーカー等を付加してJPEGデータとした後に、メモリカード17に格納する。1フレーム分のデータの格納が終了すると、CPU5は画像取り込みコントローラ1に対して、取り込み再開を通知する。
【００４３】
なお、メモリカード17に格納されたデータはホストインターフェースとなるコミュニケーション回路18によりパーソナルコンピュータ等からアクセスすることが可能である。本実施例において、コミュニケーション回路18はシリアルインターフェース、USB、IrDAおよび携帯電話モジュールなどからなる。
【００４４】
撮影モードにおいては画像取り込みコントローラ１の書き込みと信号処理プロセッサ２の読み出しが１つのメモリ領域を共有し、信号処理プロセッサ２の書き込みとCPU5の読み出しがもう１つのメモリ領域を共有するが、これら２つの領域へのメモリアクセスは順次的に行われる。
【００４５】
次に再生モードの動作を説明する。再生モードでは、画像取り込みコントローラ1は停止している。CPU5はメモリカード17に格納された符号化された圧縮データを読み出してDRAM13に書き込む。信号処理プロセッサ2は、符号データをDRAM13より読み出して、復号化、逆量子化、逆DCT変換等の画像伸長処理を行って表示可能な画像データとしたのちに再びDRAM13に書き戻す。表示コントローラ3は前記表示可能データをDRAM13より読み出して表示動作を行う。
【００４６】
再生モードにおいてはCPU５の書き込みと信号処理プロセッサ２の読み出しが１つのメモリ領域を共有し、信号処理プロセッサ２の書き込みと表示コントローラ3の読み出しがもう１つのメモリ領域を共有するが、これら２つの領域へのメモリアクセスは順次的に行われる。
【００４７】
次に、テレビ電話モードの動作を説明する。撮影モードでは、1フレーム取り込んだ後に画像取り込みコントローラ1は一時停止したが、テレビ電話モードでは、取り込みを中断せずに次々に連続するフレームを取り込む。取り込まれた画像は撮影モードと同様の処理によって信号処理プロセッサ2によって画像処理および画像圧縮・符号化を施され、DRAM13に書き込まれる。書き込まれた符号データは、CPU5により読み出され所定のマーカー挿入等を行ったのちにコミュニケーション回路18の携帯電話モジュールによって電話回線を通じて通話相手に対して転送される。
【００４８】
一方、電話回線を通じて通話相手より受信した符号データは、コミュニケーション回路18からCPU5を経由してDRAM13に書き込まれる。信号処理プロセッサ2は、符号データをDRAM13より読み出して、復号化、逆量子化、逆DCT変換等の画像伸長処理を行って表示可能な画像データとしたのちに再びDRAM13に書き戻す。表示コントローラ3は前記表示可能データをDRAM13より読み出して表示動作を行う。以上のようにして、自画像を通話相手に電送すると同時に相手画像を自端末に表示する。
【００４９】
テレビ電話モードにおいては画像取り込みコントローラ１の書き込みと信号処理プロセッサ２の読み出しが１つのメモリ領域を共有し、信号処理プロセッサ２の書き込みとCPU5の読み出しがもう１つのメモリ領域を共有し、CPU5の書き込みと信号処理プロセッサ２の読み出しがさらにもう１つのメモリ領域を共有し、信号処理プロセッサ２の書き込みと表示コントローラ3の読み出しがさらにもう１つのメモリ領域を共有するうえに、これら４つの領域へのメモリアクセスはほぼ並列的である。
【００５０】
動作モードの変更は、ユーザによるスイッチ群16の操作によって行われる。スイッチの構成は様々な例が考えられるが、本実施例ではダイアルと押しボタンにより構成する。ダイアルの回転により動作モードの候補が順次更新され、押しボタンの押下により候補が選択される。選択のイベントによりCPU5に割り込みが発生する。ROM19に格納された割り込み処理ルーチンは動作モード変更ルーチンをコールする。
【００５１】
動作モード変更ルーチンでは新たに選択された動作モードを読み取る。読み取られた動作モードに対応して各モジュールの設定を行う。
【００５２】
次に、データ転送順の並び替え動作を説明するために、バスの基本プロトコルを図２のタイミングダイアグラムを用いて解説する。
【００５３】
まず、バストランザクションを行いたいバスマスターはバス要求信号(req)をアサートする（サイクル０）。バスアービターはバス使用権を与えるマスターに対してバス許可信号(gnt)をアサートする（サイクル１）。バス使用権を与えられたマスターは、アドレスバス使用信号（addrBusy）をアサートするとともに、32ビットの転送開始アドレス(addr[31:0])およびリードインジケータ信号（read）を出力する（サイクル2）。リードインジケータ信号にはリード時に“１”、ライト時には“０”が出力される。バスマスターはバススレーブ（メモリコントローラ）によってアサートされるアドレスアクノレッジ信号(ack)が入力されるまで（サイクル3）、addrBusyをアサートし続けるとともにaddr, readの各信号を有効な値に保つ。addrBusyがアサートされている期間がアドレス・フェーズである。バスアービターはアドレス・フェーズ中、トランザクションの識別信号であるtxID[3:0]を出力する。この識別信号はバススレーブに取り込まれて、データ・フェーズ開始時にどのアドレス・フェーズに対応するデータ・フェーズを開始するのかを通知するために用いられる。
【００５４】
アドレス・フェーズの最中であっても、引き続き転送要求のあるマスターはreqをアサートし続けてよい（サイクル２，３）。現在処理中のアドレス・フェーズが終了すると、直ちに次のアービトレーションに移って、次のアドレス・フェーズのためのgnt信号がアサートされる（サイクル4）。図２の例では、サイクル２，３のアドレス・フェーズでアドレス情報としてaddr=A1, read='1',txID=“0001”が取り込まれ、サイクル５，６のアドレス・フェーズでアドレス情報としてaddr=A2, read='0', txID=“0010”が取り込まれる。
【００５５】
データ・フェーズはバススレーブ（メモリコントローラ）がデータ送受信の準備完了信号(slvDRdy)がアサートされることにより開始される。バススレーブはslvDRdy信号をアサートするとともにこのデータ・フェーズがどのアドレス・フェーズに対応するデータ転送を行うかを示すために、アドレス・フェーズ時に取り込んでおいた識別信号(txID)をnextID[3:0]信号として出力する（サイクル４）。図２のサイクル4ではnextIDが“0001”であるので、これは一番目のアドレス・フェーズに対応するデータ・フェーズであることがわかる。SlvDRdy信号およびnextID信号はバスアービターに入力される。バスアービターは識別信号を基にどのマスターとどのスレーブのペアがデータ転送を行うかを判定し、それぞれにデータバス使用許可信号(mstDGnt, slvDGnt)をアサートする。mstDGnt信号をアサートされたバスマスターはデータバス使用信号(dataBusy)をアサートしてバスアービターに対してデータバスを使用中であることを通知する。一方、バススレーブは、4クロックサイクル間データストローブ信号（dataStrobe）をアサートするとともにリードの場合はデータバス上にデータをドライブする（サイクル6，7，8，9）。ライトの場合は、データストローブ信号に同期してデータバス上のデータをフェッチする（サイクル15，16，17，18）。データを直ちにドライブまたはフェッチすることができない場合は、dataStrobeをデアサート状態に保っておく（サイクル13，14）。バスマスターは4サイクルのデータストローブ信号を検出したら、dataBusyをデアサートする（サイクル10）。バスアービターはdataBusyがデアサートされたことを検出すると次のデータバスグラントのサイクルに移行する。
【００５６】
バススレーブがアドレスの発行順序とデータ転送の順序を並び替える場合は、slvDRdy信号とともに出力する識別信号nextIDを用いる。図２では、addr=A3に対応する識別信号“0011”(リード), addr=A4に対応する識別信号“0100”（ライト）の順にアドレス・フェーズが発生しているが、サイクル19においてnextIDとして“0011”ではなく“0100”が出力されていることから、addr=A4に対するライト転送が先に開始される。
【００５７】
次にバスインターフェース回路1c, 2a, 3aの動作を説明する。バスインターフェース回路2aはリードとライト動作を行うので、これを例として説明する。バスインターフェース回路1cはライト動作のみ、3aはリード動作のみを行う。
【００５８】
図３はバスインターフェース回路2aの内部構成を示す構成図である。
【００５９】
アドレス・フェーズ生成部2a1にはFIFO2bが出力するFIFOポインタステータス信号が入力され、FIFO2bの空き容量が転送データ長（本例では32ビットｘ４）以上になったことを示すステータスに応じてバス要求信号（req）をアサートする。バスアービター12よりバス許可信号(gnt) が入力されると、アドレス・フェーズが開始される。アドレス・フェーズにおいては転送開始アドレス（addr［31:0］）、リードインジケータ信号(read)およびバス使用信号(addrBusy)を出力するとともにペンディングアドレスFIFO2a3に対してリードインジケータをプッシュ(push)する。アドレス・フェーズ生成部2a1はペンディングアドレスFIFO2a3のフルフラグをモニタしており、FIFO2a3がフルの場合は新たにバス要求信号をアサートしない。本実施例では、FIFO2a3は4つのエントリーを備えており、最大４つまでのアドレス・フェーズをペンディングにすることが可能である。アドレス・フェーズはバススレーブの出力するアドレスアクノレッジ信号(ack)が入力されると一度終了し、バスマスターはaddrBusyをデアサートする。
【００６０】
アドレス生成部2a2はCPU5から入力されるアドレス設定信号に応じて開始アドレスが設定されメインバスMBへの32ビットアドレス出力(addr[31:0])を生成する。
【００６１】
データ・フェーズ生成部2a4はペンディングアドレスFIFO2a3のエンプティフラグの反転信号をスタート信号としてデータ・フェーズの待機に入る。バスアービターによりmstDGnt信号がアサートされると直ちにdataBusy信号をアサートしdataStrobe信号の受信待ちとなる。データライト時は、バススレーブからのdataStrobe信号に応じてFIFO制御信号を駆動してFIFO2bから32ビットのFIFOデータを取り出し、メインバスMB上に32ビットデータ(data[31:0])を出力する。データリード時は、データストローブ信号に応じてメインバスMB上のデータを取り込み、FIFO制御信号を駆動してFIFOへデータを書き込む。本実施例では、1回のデータ転送に対して4クロックサイクル分のデータストローブ信号が出力されるので、データ・フェーズ生成部2a4は、4サイクルのデータストローブ信号を検知するとdataBusy信号をデアサートすると同時に、ペンディングアドレスFIFO2a3の先頭エントリーを引き抜く（pop）する。
【００６２】
次に、バスアービター12の動作を図４の構成図を用いて説明する。本実施例では、メインバスMB上のバスマスターは画像取り込みコントローラ1、信号処理プロセッサ2、表示コントローラ３、CPU５の４つであり、req信号、gnt信号はマスターごとに1本づつ、それぞれ4ビットのバスとしてリクエストエンコード・ID生成回路12aに接続されている。リクエストエンコード・ID生成回路12aはアサートされているすべてのreq信号より、ローテーション方式の公平プライオリティ・スキームを用いて１つのマスターを選択する。さらに、リクエストエンコード・ID生成回路12aはaddrBusyがデアサートされているならば、選択したマスターに対応するgnt信号をアサートすると同時にtxID信号を生成する。本実施例ではペンディングになり得るアドレス・フェーズは1マスターにつき最大４つまでであるので、1つのマスターに対しては2bitで“00”→“01”→“10”→“11”→“00”→“01”→の順にシーケンシャルに変化するIDをそれぞれのマスターに割り当てる。また、マスターが４つあるので、どのマスターかを識別するために2bitを用い、画像取り込みコントローラ1に対しては“００”、信号処理プロセッサ2に対しては“０１”、表示コントローラ３に対しては“１０”、CPU５に対しては“１１”を割り当てる。マスター識別用の２bitを上位に、マスター内のシーケンシャルなID2bitを下位に連結した4bitをtxID[3:0]とする。リクエストエンコード・ID生成回路12aはgnt信号をアサートすると同時にtxID信号をバススレーブ（メモリコントローラ）に通知するとともにバスアービターの内部に備えるIDキュー12bにプッシュする。IDキュー12bは８エントリーを備えるキューであり、フルフラグがたっている場合は、リクエストエンコード・ID生成回路12aはどのマスターにもgnt信号をアサートしない。したがって、４マスターのペンディングできるアドレス・フェーズは合計８個までとなる。
【００６３】
バススレーブがnextID信号を有効にするとともにslvDRdy信号をアサートすると、比較器12cはIDキュー12b内のすべての有効なエントリーとnextID入力を比較し、8bitの一致信号(match[7:0])のうちの１本のみをアサートする。例えばIDキュー12bの先頭から３番目のエントリーがマッチするとmatch=“00000100”となる。match信号がデータグラント生成回路12dに入力されるとデータグラント生成回路12dは8bitのキューエントリー引き抜き信号(popPos[7:0])のうちの１ビットを１クロックサイクルだけアサートすることによりIDキュー12bのエントリーを取り出す。キューから取り出された４ビットデータのうちの上位2bitをデコードすることによりどのマスターにデータバスの使用権を与えるべきかが特定できるので、dataBusy信号がデアサートされ次第、対応するmstDGnt信号の4bitのうちの1bitをアサートすると同時にslvDGnt信号をアサートする。
【００６４】
図５は、図２のタイミング図のサイクル１９におけるIDキュー12bの内容と各信号の状態を示したものである。サイクル１９の時点では、IDキュー12bの先頭にはtxID=“0011”すなわちマスター“００”からの“１１”番目のトランザクションがキューイングされており，２番目のエントリーにはtxID=“0100”すなわちマスター“０１”からの“００”番目のトランザクションがキューイングされている。バススレーブがslvDRdyをアサートするとともに出力しているnextIDは“0100”であるから、比較器12cが出力するmatch信号は“00000010”となり、２番目のエントリーがマッチしていることがわかる。データグラント生成回路12dはpopPos[7:0]を１クロックサイクル間“00000010”とすることにより、２番目のエントリーを取り込み、上位２ビットをデコードすることにより、mstDGnt[1]のみを“１”にアサートすることができる。
【００６５】
次にメモリコントローラ４のアドレス情報キュー４bにおいてアドレス情報が並び替えられる動作について説明する。
【００６６】
まず、メモリコントローラ内のDRAMインターフェース4cとDRAM13の接続の代表的な例として図６に接続図を示す。13a,13bはともに1Mワードｘ１６ビットのEDOモードDRAMであり、データバス(D)の上位１６ビットが13aに、下位１６ビットが13bに接続されている。CASがそれぞれ一対一の接続になっている以外は、DRAMの制御線は13a,13bで共用している。アドレス(A)は１０ビットであり、ローアドレス、カラムアドレスともに１０ビットである。
【００６７】
このような構成に対するアドレス情報キュー４ｂの内部構成図は図７のようになる。メインバス上のアドレス(addr[31:0])はバイトアドレスであるので、メモリに対して３２ビットアクセスを行う場合は下位２ビットが無視される。本実施例では、addr[21:12]をローアドレスに割り付け、addr[11:2]をカラムアドレスに割り付ける。4b1,4b3,4b5,4b7,4b9,4b11がローアドレスを格納するためのキュー要素であり、4a2,4a4,4a6,4a8,4a10,4a12がカラムアドレスを格納するためのキュー要素である。また、4b19,4b20,4b21,4b22,2b23,4b24はtxIDを格納するためのキュー要素である。それぞれのキュー要素(i)は新規入力(addr)、前段(i-1)、後段(i+1)、自分自身(i)の４つの値のいずれかによって置換可能となっており、どの値で置換するかをプッシュ位置判定回路４ｂ25が出力するshift[1:0]信号によって制御する。具体的にはshift=“00”のとき自分自身、shift=“01”のとき前段、shift=“10”のとき後段、shift=“11”のとき新規入力で置換する。4c1のマルチプレクサは通常DRAMインターフェース4c内に装備され、DRAMのローサイクル、カラムサイクルに応じてキュー要素の最前段４b１１，４b１２の出力を選択してメモリアドレスA[9:0]としてメモリに出力する。比較器４b１３，４b１４，４b１５，４b１６，４b１７，４b１８はそれぞれキュー要素4b1,4b3,4b5,4b7,4b9,4b11のローアドレスと新規入力のローアドレスとを比較し、一致した場合“１”を出力する。今、メインバスからトランザクションA,B,C,Dのアドレス・フェーズが発生した場合を考える。ここに、Aはローアドレス0x00,カラムアドレス0x00であり、Bはローアドレス0x0１,カラムアドレス0x00であり、Cはローアドレス0x00,カラムアドレス0x１0であり、Dはローアドレス0x0１,カラムアドレス0x１0であるとする。
【００６８】
従来技術による並び替えを行わないメモリコントローラによるDRAMアクセスでは、A-B,B-C,C-Dがすべてページ・ミス・ヒットするのでメモリアクセスのタイミングは図８のタイミング図のようになる。それぞれのトランザクション間で一度RASがデアサートされ、一定期間（プリチャージ時間）後に再度RASがアサートされ、さらにRAS-CASディレイ時間後にCASがアサートされる。EDOモードのサイクルタイムを30ns、プリチャージ時間を50ns、RAS-CASディレイ時間を20nsとすると、転送時間はおよそ(20+30x4+50)x4=800nsである。
【００６９】
ここでBとCを入れ替えるような並び替えを行うと、A-Cはページヒット、C-Bはページ・ミス・ヒット、B-Dはページヒットするので、メモリアクセスのタイミング図は図９のようになり、転送時間はおよそ(20+30x8+50)x2=620nsとなり２０％以上の高速化が図られる。
【００７０】
このようなB,Cの入れ替えがアドレス情報キュー４ｂ内でどのように実現されるかをさらに詳しく説明する。図１０は、トランザクションA,Bがキューに格納された状態でトランザクションCが到着した時点の主要な要素と信号を示している。4b11に0x00,4b9に０x１０が格納された状態で新たに入力されたローアドレスが０x００である。従って、比較器４b１８の出力は“１”となり４b１７の出力は“０”となる。比較器の出力を受けたプッシュ位置判定回路４b25はshift信号を制御して入れ替えを行う。図１１は実際のshift信号の値と入れ替えが起こった後のキュー要素の状態を示している。要素(0)はshift=“00”により入れ替えなし、要素（１）はshift=“11”により新規入力により置換され、要素（２）はshift=“01”により前段（１）により置換される。結果としてキュー要素はA,C,Bの順に並び替えられる。さらに後続のDが入力された場合にはBとページヒットするので要素（３）の位置に格納される。以上に述べたような操作により、トランザクションはA,C,B,Dの順にアドレス情報キュー４ｂのなかに格納され、この順番でメモリアクセスを行うことが可能となる。
【００７１】
DRAMインターフェース4cとDRAM13の第２の接続例を図１２の接続図に示す。13a,13b、13ｃ,13ｄはともに1Mワードｘ１６ビットのEDOモードDRAMであり、データバス(D)の上位１６ビットが13a、１３cに、下位１６ビットが13b、１３dに接続されている。RASを２本備え、RAS0が13a,13bにRAS１が13ｃ,13ｄに接続されている。これは、「13a,13b」の組をバンク０、「13ｃ,13ｄ」の組をバンク１と扱っていることになり、いわゆるバンク・インターリーブの動作が可能である。
【００７２】
第２の構成に対するアドレス情報キュー４ｂの内部構成図は図１３のようになる。図７の構成に加えて、addr[22]をバンク選択(bs)に用いており、bsに対応するキュー要素として4b27,4b28,4b29,4b30,4b31,4b32が付加されている。bsキューの最前段出力はRAS０信号の生成に用いられると同時にインバータ４b２６に接続されて、インバータ４b２６の出力がRAS１信号の生成に用いられる。すなわち、addr[22]=“０”のときRAS0（アクティブロー）がアサートされ、addr[22]=“１”のときRAS1（アクティブロー）がアサートされる。比較器４b１３，４b１４，４b１５，４b１６，４b１７，４b１８はそれぞれ「ローアドレスのキュー要素と新規入力のローアドレスが一致し、かつバンク選択のキュー要素と新規入力のバンク選択が一致した場合」、または、「バンク選択のキュー要素と新規入力のバンク選択が一致しない場合」に“１”を出力する。さらに５つの比較器4b33,4b34,4b35,4b36,4b37はキュー要素(i)と(i-1)間のバンク・コンフリクト(bc)の検出を行う。すなわち、前後のキュー要素間でバンクが同一だがローアドレスが一致しない場合に“１”を出力する。
【００７３】
再び、メインバスからトランザクションA,B,C,Dのアドレス・フェーズが発生した例を用いて第２の構成をもつアドレス情報キュー４bの動作を説明する。ここに、A、Bは同一バンク（RAS０）でローアドレスが異なるトランザクションであり、C、DはA,Bとは別バンク（RAS1）でC,D間のローアドレスが異なるトランザクションである。
【００７４】
従来技術による並び替えは行わないがバンク・インターリーブを行うメモリコントローラを用いてDRAMアクセスを行うと、A-B,C-Dはページ・ミス・ヒットするが、B-C間でバンク・インターリーブが機能するのでメモリアクセスのタイミングは図１４のタイミング図のようになる。すなわち、Bのデータ転送中にRAS1のプリチャージ、アクティベイトをオーバーラップすることが可能となるため図８に示す転送と比較すると若干性能向上が得られる。
【００７５】
ここでさらにBとCを入れ替えるような並び替えを行うと、A-C間とB-D間でともにバンク・インターリーブが機能するので、メモリアクセスのタイミング図は第図１５のようになり、転送の高速化が図られる。
【００７６】
並び替えを行うか否かの判定および並び替えを行う場合のキュー要素の選択は以下のようになされる。すなわち、トランザクションA,Bが格納された時点で、比較器4b37によりA-B間のバンク・コンフリクトが検出される。ここにトランザクションCが入力されると、比較器4b18によりA-C間にバンク・コンフリクトがないことが検出される。以上の情報を用いてプッシュ位置判定回路４b２５は第１の構成とまったく同様の動作を行うことにより並び替えが実現される。
【００７７】
DRAMインターフェース4cとDRAM13の第３の接続例を図１６の接続図に示す。13a,13b、13ｃ,13ｄはともに1Mワードｘ１６ビットx2バンクのシンクロナスDRAMであり、データバス(D)の上位１６ビットが13a、１３cに、下位１６ビットが13b、１３dに接続されている。シンクロナスDRAMは通常チップ内に複数バンクを備えており、本例ではBA信号によってチップ内バンク０、１の２バンクが選択される。また、EDOモードDRAMの構成との対比を明確にするために、ローアドレス、カラムアドレスはEDOモードの例と同様にそれぞれ１０ビットとする。DRAMインターフェース4c はチップ選択信号（CS）を２本備え、CS0が13a,13bにCS１が13ｃ,13ｄに接続されている。これにより、「13a,13b」の組をチップ間バンク０、「13ｃ,13ｄ」の組をチップ間バンク１として取り扱うことが可能になる。したがって、第３の構成は、合計４バンクの構成として扱うことができる。
【００７８】
第３の構成に対するアドレス情報キュー４ｂの内部構成図は図１７のようになる。図１３の構成に加えて、addr[23]をもう一本のバンク選択(bs[1])に用いており、addr[22]に対応するbs[0]と合わせて２ビットで４種類のバンクを表す。bsキューの最前段出力上位ビットはCS０信号の生成に用いられると同時にインバータ４b２６に接続されて、インバータ４b２６の出力がCS１信号の生成に用いられる。すなわち、addr[2３]=“０”のときCS0（アクティブロー）がアサートされ、addr[2３]=“１”のときCS1（アクティブロー）がアサートされる。またbsキューの最前段出力下位ビットはシンクロナスDRAMのバンクアドレス（BA）信号の生成に用いられる。比較器４b１３，４b１４，４b１５，４b１６，４b１７，４b１８は第２の構成と同様に、それぞれ「ローアドレスのキュー要素と新規入力のローアドレスが一致し、かつバンク選択のキュー要素と新規入力のバンク選択が一致した場合」、または、「バンク選択のキュー要素と新規入力のバンク選択が一致しない場合」に“１”を出力する。比較器4b33,4b34,4b35,4b36,4b37も第２の構成と同様にキュー要素(i)と(i-1)間のバンク・コンフリクト(bc)の検出を行う。すなわち、前後のキュー要素間でバンクが同一だがローアドレスが一致しない場合に“１”を出力する。
【００７９】
第３の構成によるアドレス情報キュー４bの動作は第２の構成によるアドレス情報キュー４bの動作とまったく同じである。ただし、DRAMインターフェース４cの動作はシンクロナスDRAMのプロトコルに従ったものになる。すなわちローアドレス・サイクルはバンク・アクティベート・コマンドの発行に置き換えられ、複数のカラムアドレス・サイクルはバースト長４の場合、１サイクルのリードまたはライトコマンドの発行に置き換えられる。
【００８０】
DRAMインターフェース４cの回路構成をより簡易化するために、DRAMに対して出力するアドレス情報（CS,BA,A）としてアドレス情報キュー４bの最前段の出力をそのまま利用する構成が考えられる。この場合、アドレス情報キュー４bのキュー引き抜き動作は、DRAMアクセスが終了するたびに行われる。また、DRAMアクセスの最中はアドレス情報が変化しないことが要求される。このような構成を実現するためには、アドレス情報キュー４bの最前段の要素は並び替えの対象から除外する必要がある。具体的には、プッシュ位置判定回路４b２５において要素(1)に対するshift信号として前段要素による置換を出力しないように制御するとともに、キューがエンプティでない場合は要素（０）を新規入力で置換しないように制御する。
【００８１】
このような構成をとることにより、DRAMインターフェースの回路構成が簡易になり、回路規模が小さくなるため安価なシステムを提供できるという利点がある。また、回路設計と設計検証が容易になり開発期間を短縮できるという利点がある。
【００８２】
同一バスマスターから発行されてペンディングになっている複数のアドレス・フェーズの並び替えを禁止することによりバスマスターの回路構成をより簡易化することが可能になる。そのためには、バススレーブ側でキューイングしているアドレス情報のなかのバスマスターの識別信号と新規入力のアドレス情報に含まれるバスマスター識別信号を比較して、少なくとも識別信号が一致しているキュー要素を新規入力のアドレス情報が追い越すような並び替えを禁止すればよい。このような機能を実現するためのアドレス情報キュー４bの構成は図１８のようになる。
【００８３】
比較器4b38,4b39,4b40,4b41,4b42,4b43はすでに格納されているtxIDのキュー要素と新規入力のtxID信号の上位２ビット(txID[3:2]：バスマスターの識別子)を比較して、一致している場合は“１”を出力する。上記比較器の出力はプッシュ位置判定回路４b２５の同一マスター検出信号(sameID)入力に接続される。プッシュ位置判定回路４b２５は少なくともsameID信号がアサートされているキュー要素が新規入力によって追い越されないように並び替えを制御する。
【００８４】
このような構成をとることにより、バスインターフェースの回路構成が簡易になり、回路規模が小さくなるため安価なシステムを提供できるという利点がある。また、回路設計と設計検証が容易になり開発期間を短縮できるという利点がある。
【００８５】
一方、単一のバスマスターの内部構成が、実は複数のデータFIFOと接続された論理的には複数のバスマスターが単一のバスインターフェース回路を共有しているようなバスマスターの構成も考えられる。例えば、単一のバスマスターが、４つの独立したデータFIFOと４つの独立したアドレス生成回路を備えており、必ず順次１つずつのデータFIFOのデータがバス上で転送される場合を想定する。この場合、同一バスマスターから発行されてペンディングになっている複数のアドレス・フェーズの並び替えを禁止する必要はない。このようなマスターと前記の同一バスマスターから発行されてペンディングになっている複数のアドレス・フェーズの並び替えを禁止するバスマスターが混在するシステムにおいては、アドレス情報キュー４b内の前記比較器4b38,4b39,4b40,4b41,4b42,4b43が同一マスター間の並び替えを禁止しないマスターに対応するマスターIDをsameID信号をアサートする条件から除外することにより実現可能である。
【００８６】
このような構成をとることにより、様々な構成のバスマスターを単一のバス上で結合することが可能になるため、より複雑なシステムをより簡易に構築できるという利点がある。
【００８７】
さて、上記のいずれの構成においても、ページ・ミス・ヒットを起こして並び替えによって後続のトランザクションに追い越されたトランザクションのさらに後続の複数のトランザクションが先に追い越したトランザクションに対してページ・ヒットしている場合、一度追い越されたトランザクションが次々に後続のトランザクションに追い越されるような事態が考えられる。最悪の場合、後続のトランザクションがページ・ヒットを続ける限り、永遠に後続のトランザクションに追い越されつづける。このような問題点を解決するために、アドレス情報キュー４bの各キュー要素に一度追い越されたことを記録する履歴ビット（フラグ）を設け、履歴ビットがセットされているキュー要素を追い越しの対象から除外するようにすればよい。図１９に示すアドレス情報キュー４bの構成図においては、カラム・アドレス要素を１ビット拡張し、履歴ビット（Flg）としている。プッシュ位置判定回路４b２５は一度でも追い越しを受けたキュー要素に対してset flag信号をアサートして履歴ビットをセットする。そして図示しないモニタ線により各キュー要素の履歴ビットを観測し、新たに入力されたトランザクションが履歴ビットのセットされているキュー要素を追い越さないようにshift信号を制御する。
【００８８】
このような構成をとることにより、容易にシステムのデッドロックや特定マスターのスタベーションを回避できるという利点がある。
【００８９】
先行したライト・トランザクションがアクセスしたメモリ・アドレスを後続のリード・トランザクションが参照する場合、後続のリードによって読み出されるデータは、先行のライトによって書かれたデータであることを保証すべきシステムにおいて、本発明を適用するためには、アドレス情報キュー４bにさらに比較器を設け、格納されている全アドレス情報要素と新規入力のアドレス要素を比較して、アドレスが一致している場合は一致したキュー要素を追い越しの対象から除外するような制御をプッシュ位置判定回路４b２５に追加すればよい。
【００９０】
このような構成をとることにより、強いメモリ・オーダリングを要求するシステムに対しても本発明は容易に適用可能となる。
【００９１】
CPU5は通常ROM１９に格納されたプログラムを実行しているが、データ参照はメインメモリであるDRAM１３に対して実行する場合もある。また、安価な大容量ROMは通常アクセス時間がDRAMより遅いため、プログラムをDRAM上に展開して実行するようなシステムも考えられる。このようなシステムでは、CPU5のDRAMアクセスのレイテンシーがパフォーマンスに大きな影響を及ぼす。本発明のようなアドレス情報をキューイングするシステムは、データ転送のスループットは大きいがレイテンシーは比較的大きくなりやすく、CPUがプログラム実行によりリアルタイム制御を行う場合に性能が低下する恐れがある。このような場合には、アドレス情報キュー４b内に特定のマスターIDを検出する機構を設け、入力されたトランザクションのマスターIDが前記特定IDと一致する場合は、常にアドレス情報キューの最前段に格納するようにすればよい。このように構成した場合においても、前述したような並び替えを禁止あるいは追い越し対象から除外する機構を併用することも可能である。すなわち、CPU５のメモリアクセス要求であっても、アドレス情報キューの最前列（０）には格納されず、第２番目のキュー要素（１）に格納されるようにする。また、すでに格納されているCPU５のアドレス情報は追い越さないようにする。さらに、CPU５のメモリアクセスといえども一度追い越されたキュー要素は追い越さないようにする。
【００９２】
このような構成をとることにより、スループットよりもレイテンシーの方が性能に与える影響が大きいバスマスターを含むシステムにおいても、特定マスターに対してレイテンシーを小さく保つことが容易になり、システム全体の性能が向上するという利点がある。
【００９３】
以上のような様々な並び替え方式の制御はそれぞれの方式ごとに有効にするか無効にするかを設定可能なレジスタを設け、CPU5による設定によって並び替え方式の一部のみを有効にするような構成も可能である。このような構成をとることにより、本発明によるデータ処理装置を様々なアプリケーションに対して最適に適用することが可能となる。
【図面の簡単な説明】
【００９４】
【図１】本発明の一実施例の携帯型テレビ電話端末の電気的な構成を示すブロック図。
【図２】バスの基本プロトコルのタイミングダイアグラム。
【図３】バスインターフェース回路2aの内部構成を示す構成図。
【図４】バスアービターの構成図。
【図５】サイクル１９におけるIDキュー12bの内容と各信号の状態を示す図。
【図６】DRAMインターフェース4cとDRAM13の接続図。
【図７】アドレス情報キュー４ｂの内部構成図。
【図８】並び替えを行わないメモリコントローラによるメモリアクセスのタイミング図。
【図９】BとCを入れ替えるような並び替えを行うメモリアクセスのタイミング図。
【図１０】トランザクションA,Bがキューに格納された状態でトランザクションCが到着した時点の主要な要素と信号を示す図。
【図１１】shift信号の値と入れ替えが起こった後のキュー要素の状態を示す図。
【図１２】DRAMインターフェース4cとDRAM13の第２の接続図。
【図１３】第２の構成に対するアドレス情報キュー４ｂの内部構成図。
【図１４】並び替えは行わないがバンク・インターリーブを行うメモリコントローラによるメモリアクセスのタイミング図。
【図１５】A-C間とB-D間でともにバンク・インターリーブが機能する場合のメモリアクセスのタイミング図。
【図１６】DRAMインターフェース4cとDRAM13の第３の接続図。
【図１７】第３の構成に対するアドレス情報キュー４ｂの内部構成図。
【図１８】同一バスマスターから発行されてペンディングになっている複数のアドレス・フェーズの並び替えを禁止するアドレス情報キュー４ｂの内部構成図。
【図１９】履歴ビット（フラグ）を設けたアドレス情報キュー４ｂの内部構成図。
【符号の説明】
【００９５】
１  画像取り込みコントローラ
１ａ  取り込み回路
１ｂ,２ｂ,３ｂ  ＦＩＦＯ
１ｃ,２ａ,３ａ,４ａ  バスインターフェース回路 
２  信号処理プロセッサ
２ｃ  ＤＳＰ 
３  表示コントローラ
３ｂ  バッファー
３ｃ  読み出し回路
３ｄ  NTSCエンコーダ
４  メモリコントローラ
４ｂ  アドレス情報キュー
４ｃ  DRAMインターフェース回路
５  CPU
６  レンズモジュール
７  CCD
８  CDS・AGC
９  タイミング生成回路TG
１０  AD変換器
１１  タイミング生成回路SG
１２  アービター
１３、１３ａ、１３ｂ、１３ｃ、１３ｄ  DRAM
１４  DA変換器
１５  NTSCモニタ
１６  スイッチ群
１７  メモリカード
１８  コミュニケーション回路
１９  ROM
ＭＢ  メインバス
２ａ１  アドレス・フェーズ生成部
２ａ２  アドレス生成部
２ａ３  ペンディングアドレスFIFO
２ａ４  データ・フェーズ生成部
１２ａ  リクエストエンコード・ID生成回路
１２ｂ  IDキュー
１２ｃ  比較器
１２ｄ  データグラント生成回路
４ｂ１，４ｂ３，４ｂ５，４ｂ７，４ｂ９，４ｂ１１  ローアドレスキュー要素
４ｂ２，４ｂ４，４ｂ６，４ｂ８，４ｂ１０，４ｂ１２  カラムアドレスキュー要素
４ｂ１３，４ｂ１４，４ｂ１５，４ｂ１６，４ｂ１７，４ｂ１８  比較器
４ｂ１９，４ｂ２０，４ｂ２１，４ｂ２２，４ｂ２３，４ｂ２４  txIDキュー要素
４ｂ２５  プッシュ位置判定回路
４ｂ２６  インバータ
４ｂ２７，４ｂ２８，４ｂ２９，４ｂ３０，４ｂ３１，４ｂ３２  バンク選択キュー要素
４ｂ３３，４ｂ３４，４ｂ３５，４ｂ３６，４ｂ３７  比較器
４ｂ３８，４ｂ３９，４ｂ４０，４ｂ４１，４ｂ４２，４ｂ４３  比較器
４ｃ１  マルチプレクサ
【図１】
2006099585.tif 000003
【図２】
2006099585.tif 000004
【図３】
2006099585.tif 000005
【図４】
2006099585.tif 000006
【図５】
2006099585.tif 000007
【図６】
2006099585.tif 000008
【図７】
2006099585.tif 000009
【図８】
2006099585.tif 000010
【図９】
2006099585.tif 000011
【図１０】
2006099585.tif 000012
【図１１】
2006099585.tif 000013
【図１２】
2006099585.tif 000014
【図１３】
2006099585.tif 000015
【図１４】
2006099585.tif 000016
【図１５】
2006099585.tif 000017
【図１６】
2006099585.tif 000018
【図１７】
2006099585.tif 000019
【図１８】
2006099585.tif 000020
【図１９】
2006099585.tif 000021