(57)【要約】【課題】メモリとメモリとの間のデータ転送の転送時間を短縮し、全体的なメモリに対するデータの入出力動作の高速化を図ることを目的とする。【解決手段】メモリ制御装置は、同一のメモリデータバス１６６に接続されたメモリ１４０およびメモリ１５０と、メモリデータバス１６６に接続されたメモリ１４０に対しアドレスを指定するメモリアドレス発生器１３５と、メモリ１５０に対しアドレスを指定するメモリアドレス発生器１３６と、メモリ１４０に対しリードコマンドを発行するメモリコマンド発生器１３３と、メモリコマンド発生器１３３が発行するリードコマンドの発行タイミングに対しメモリ１４０のレーテンシー分遅延したタイミングで、メモリ１５０に対しライトコマンドを発行するメモリコマンド発生器１３４とを備えている。【選択図】図１
2006031147.tif 000002
【特許請求の範囲】
【請求項１】
同一のデータバスに接続された第1のメモリおよび第２のメモリと、
前記第１のメモリに対しアドレスを指定する第１のアドレス指定手段と、
前記第２のメモリに対しアドレスを指定する第２のアドレス指定手段と、
前記第１のメモリに対し、前記第１のアドレス指定手段が指定したアドレスに基づく記憶領域からデータを読み出すためのリードコマンドを発行する第１のコマンド発行手段と、前記第１のコマンド発行手段が発行するリードコマンドの発行タイミングに対し前記第１のメモリのレーテンシー分遅延したタイミングで、前記第２のメモリに対し、前記第２のアドレス指定手段が指定したアドレスに基づく記憶領域にデータを書き込むためのライトコマンドを発行する第２のコマンド発行手段と、
を有することを特徴とするメモリ制御装置。
【請求項２】
前記データバスにおける前記第１のメモリと前記第２のメモリとの間で形成される伝送経路に、前記第１のメモリと前記第２のメモリとを接続状態または開放状態に制御するスイッチ手段を更に備えたことを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
前記第１のコマンド発行手段は、前記第１のメモリに対し、データを読み出すためのリードコマンドを発行するとともにデータを書き込むためのライトコマンドを発行し、
前記第２のコマンド発行手段は、前記第２のメモリに対し、データを書き込むためのライトコマンドを発行するとともにデータを読み出すためのリードコマンドを発行する
ことを特徴とする請求項１記載のメモリ制御装置。
【請求項４】
データバスに接続された第１のメモリに対しアドレスを指定する第１のアドレス指定ステップと、
前記データバスに接続された第２のメモリに対しアドレスを指定する第２のアドレス指定ステップと、
前記第１のメモリに対し、前記第１のアドレス指定ステップにより指定されたアドレスに基づく記憶領域からデータを読み出すためのリードコマンドを発行する第１のコマンド発行ステップと、
前記第１のコマンド発行ステップにより発行されるリードコマンドの発行タイミングに対し前記第１のメモリのレーテンシー分遅延したタイミングで、前記第２のメモリに対し、前記第２のアドレス指定ステップにより指定されたアドレスに基づく記憶領域にデータを書き込むためのライトコマンドを発行する第２のコマンド発行ステップと、
を含むことを特徴とするメモリ制御方法。
【請求項５】
前記データバスにおける前記第１のメモリと前記第２のメモリとの間で形成される伝送経路の所定の部分を接続状態または開放状態に制御することで、前記第１のメモリと前記第２のメモリとを接続状態または開放状態に制御するスイッチステップを更に含むことを特徴とする請求項４記載のメモリ制御方法。
【請求項６】
前記第１のコマンド発行ステップは、前記第１のメモリに対し、データを読み出すためのリードコマンドを発行するとともにデータを書き込むためのライトコマンドを発行するステップを含み、
前記第２のコマンド発行ステップは、前記第２のメモリに対し、データを書き込むためのライトコマンドを発行するとともにデータを読み出すためのリードコマンドを発行するステップを含むことを特徴とする請求項４記載のメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＭＡ（ダイレクト・メモリ・アクセス）制御を行うメモリ制御装置及びメモリ制御方法に関するものである。
【背景技術】
【０００２】
従来、メモリ内部に格納された画像等のデータを他のメモリに高速で転送するデータ転送の高速化のための手法として、ＣＰＵ（中央演算処理装置）を介さずに、ＤＭＡ（ダイレクト・メモリ・アクセス）コントローラを用いて高速にデータ転送を行う技術が知られている。
【０００３】
図５は、従来のメモリ制御装置の構成を示すブロック図である。図５において、メモリ制御装置は、このシステムを制御するＣＰＵ４０１、ＣＰＵ４０１が実行する制御プログラムなどを格納しているＲＯＭ４０２、ＤＭＡコントローラ４０３、メモリコントローラ４０４及びメモリ４０５を備えている。
【０００４】
メモリ４０５は、ＤＭＡコントローラ（以下、「ＤＭＡＣ」という。）４０３がＤＭＡアクセスをサービスするメモリエリアに配置されたメモリである。
【０００５】
システムバス４０６は、ＣＰＵ４０１、ＲＯＭ４０２、ＤＭＡＣ４０３及びメモリコントローラ４０４が接続されているバスである。このシステムバス４０６には、コントロール信号が伝送される。
【０００６】
メモリバス４０７は、メモリコントローラ４０４とメモリ４０５とが接続されているバスである。このメモリバス４０７には、コントロール信号が伝送される。
【０００７】
次に、図５に示したＤＭＡＣ４０３の動作について、図６を参照して説明する。図６は、図５に示した従来のメモリ制御装置のメモリ制御動作を示すタイムチャートを示している。
【０００８】
図６において、（ａ）のＣＬＫは、メモリバス４０７に伝送されている同期クロック信号を示し、（ｂ）のＣｏｍｍａｎｄは、メモリコントローラ４０４から発行されるメモリ４０５に対するコマンド信号を示し、（ｃ）のＤａｔａは、メモリバス４０７に伝送されている信号を示している。
【０００９】
メモリ−メモリ間のデータ転送（データをコピー）するような場合、先ずＤＭＡＣ４０３は、メモリコントローラ４０４に対し、特定のメモリアドレスに格納されたデータリードの要求を行う。
【００１０】
この要求を受けてメモリコントローラ４０４は、メモリ４０５に対する指定されたアドレスの領域に記憶されているデータの読み込みを行うために、図６（ｂ）に示すように、メモリ４０５に対し、アクセス（Ａｃｃｅｓｓ）を始めるためにアクティブ（Ａｃｔｉｖｅ）コマンド［ＡＣＴ］を発行し、続いてリード（Ｒｅａｄ）コマンド［ＲＤｘ］、例えばリードコマンド［ＲＤ０］〜［ＲＤ３］を発行する。
【００１１】
すると、メモリ４０５は、受け取ったリードコマンド（例えばリードコマンド［ＲＤ０］〜［ＲＤ３］）に基づいて、前記アドレスの領域に記憶されているデータ（例えばデータ［Ｄ０］〜［Ｄ３］）を自己記憶領域から読み出して、メモリバス４０７に出力する。
【００１２】
この結果、メモリバス４０７には、メモリ４０５から出力されたデータ（例えばデータ［Ｄ０］〜［Ｄ３］）が伝送される（図６（ｃ）参照）。そして、これらのデータ［Ｄ０］〜［Ｄ３］は、メモリコントローラ４０４を経由してＤＭＡＣ４０３に取り込まれる。
【００１３】
そして、ＤＭＡＣ４０３は、前記読み込みデータ（例えばデータ［Ｄ０］〜［Ｄ３］）をコピー先のメモリアドレスに格納するために、メモリコントローラ４０４に対し、アドレスおよび前記読み込みデータとともにデータライトの要求を送出する。
【００１４】
この要求を受けてメモリコントローラ４０４は、メモリ４０５に対する指定されたアドレスの領域へのデータ書込みを行うために、図６（ｂ）に示すように、メモリ４０５に対し、アクセス（Ａｃｃｅｓｓ）を始めるためにアクティブ（Ａｃｔｉｖｅ）コマンド［ＡＣＴ］を発行し、続いてライト（Ｗｒｉｔｅ）コマンド［ＷＴｘ］、例えばライトコマンド［ＷＴ０］〜［ＷＴ３］を発行するとともに、ＤＭＡＣ４０３からのデータ（ライトデータ）つまりデータ［Ｄ０］〜［Ｄ３］を送出する。
【００１５】
この結果、メモリバス４０７には、図６（ｃ）に示すように、例えばデータ［Ｄ０］〜［Ｄ３］が伝送される。これらのデータ［Ｄ０］〜［Ｄ３］は、メモリ１５０の指定されたアドレスの領域に書き込まれることになる。
【００１６】
上述した動作を予め指定されたデータ量繰り返すことによりメモリ−メモリ間のデータコピーが完了する。
【００１７】
図７は、従来のメモリ制御装置の他の構成を示すブロック図である。図７において、このシステムを制御するＣＰＵ５０１、ＣＰＵ５０１の制御プログラムなどを格納しているＲＯＭ５０２、ＤＭＡＣ５０３、メモリコントローラ５０４、メモリコントローラ５０５、メモリ５０６、メモリ５０７およびデータ処理装置５０８を備えている。
【００１８】
メモリコントローラ５０５は、画像処理等で使用するメモリ５０７を管理する。メモリ５０６は、ＤＭＡＣ５０３がＤＭＡアクセスをサービスするメモリエリアに配置されたシステムメモリである。メモリ５０７は、ＤＭＡＣ５０３がＤＭＡアクセスをサービスするメモリエリアに配置されたローカルメモリである。
【００１９】
システムバス５０９は、ＣＰＵ５０１、ＲＯＭ５０２、ＤＭＡＣ５０３、メモリコントローラ５０４及びメモリコントローラ５０５が接続されているバスである。このシステムバス５０９には、コントロール信号が伝送される。
【００２０】
メモリバス５１０は、メモリ５０６とメモリコントローラ５０４とが接続されているバスであり、メモリバス５１１は、メモリ５０７とメモリコントローラ５０５とが接続されているバスである。これらのメモリバス５１０，５１１には、コントロール信号が伝送される。
【００２１】
このようなメモリ制御装置では、ＣＰＵ５０１によって作成されメモリ５０６に格納された画像データ等のデータを、メモリ５０７にコピーし、このコピーされたデータに対し画像処理等の処理を行うときに、メモリ５０７をワークメモリ空間、すなわちシステムメモリとは独立したローカルメモリとして用いるようにしている。
【００２２】
次に、図７に示したＤＭＡＣ５０３の動作について図８を参照して説明する。図８は、図７に示した従来のメモリ制御装置のメモリ制御動作を示すタイムチャートを示している。
【００２３】
図８において、（ａ）のＣＬＫ１は、メモリバス５１０に伝送されている同期クロック信号を示し、（ｂ）のＣｏｍｍａｎｄ１は、メモリコントローラ５０４から発行されるメモリ５０６に対するコマンド信号を示し、（ｃ）のＤａｔａ１は、メモリバス５１０に伝送されている信号を示し、（ｄ）のＣＬＫ２は、メモリバス５１１に伝送されている同期クロック信号を示し、（ｅ）のＣｏｍｍａｎｄ２は、メモリコントローラ５０５から発行されるメモリ５０７に対するコマンド信号を示し、（ｆ）のＤａｔａ２は、メモリバス５１１に伝送されている信号を示している。
【００２４】
メモリ−メモリ間のデータ転送（データをコピー）するような場合、先ずＤＭＡＣ５０３はメモリコントローラ５０４に対し特定のメモリアドレスに格納されたデータリードの要求を行う。
【００２５】
この要求を受けてメモリコントローラ５０４は、メモリ５０６に対し、指定されたアドレスの領域に記憶されているデータの読み込みを行うために、図８（ｂ）に示すように、メモリ５０６に対し、アクセス（Ａｃｃｅｓｓ）を始めるためにアクティブ（Ａｃｔｉｖｅ）コマンド［ＡＣＴ］を発行し、続いてリード（Ｒｅａｄ）コマンド［ＲＤｘ］、例えばリードコマンド［ＲＤ０］〜［ＲＤ３］を発行する。
【００２６】
すると、メモリ５０６は、受け取ったリードコマンド（例えばリードコマンド［ＲＤ０］〜［ＲＤ３］）および前記アドレス情報に基づいて、自己記憶領域におけるこのアドレスの領域に記憶されているデータ（例えばデータ［Ｄ０］〜［Ｄ３］）を読み出して、メモリバス５１０に出力する。
【００２７】
このようにしてメモリ５０６から出力されたリードデータ（例えばリードデータ［Ｄ０］〜［Ｄ３］）は、メモリバス５１０及びメモリコントローラ５０４を経由してＤＭＡＣ５０３に取り込まれる。
【００２８】
そして、ＤＭＡＣ５０３は、取り込んだリードデータをコピー先のメモリアドレスに格納するために、メモリコントローラ５０５に対し、アドレス情報およびライトデータとしのリードデータ（例えばデータ［Ｄ０］〜［Ｄ３］）とともにデータライトの要求を送出する。
【００２９】
この要求を受けてメモリコントローラ５０５は、メモリ５０７に対し、指定されたアドレスへのデータ書込みを行うために、図８（ｅ）に示すように、メモリ５０７に対し、
アクセス（Ａｃｃｅｓｓ）を始めるためにアクティブ（Ａｃｔｉｖｅ）コマンド［ＡＣＴ］を発行し、続いてライト（Ｗｒｉｔｅ）コマンド［ＷＴｘ］、例えばライトコマンド［ＷＴ０］〜［ＷＴ３］を発行するとともに、ＤＭＡＣ５０３からのデータ（ライトデータ）つまりデータ［Ｄ０］〜［Ｄ３］を送出する。
【００３０】
この結果、メモリバス５１１には、図８（ｆ）に示すように、例えばデータ［Ｄ０］〜［Ｄ３］が伝送される。これらのデータ［Ｄ０］〜［Ｄ３］は、メモリ５０６の指定されたアドレスの領域に書き込まれることになる。
【００３１】
上述した動作を予め指定されたデータ量繰り返すことによりメモリ−メモリ間のデータコピーが完了する。
【００３２】
なお、従来のメモリ制御装置としては、（特許文献１）に記載された装置（メモリアクセス制御装置）が知られている。
【特許文献１】特許第２５６５９１６号公報
【発明の開示】
【発明が解決しようとする課題】
【００３３】
しかしながら、上記従来のメモリ制御装置では、メモリに格納されたデータを読み出すためのコマンドを発行した後に（図６の（ｂ）あるいは図８の（ｂ）参照）、有効データをＤＭＡコントローラ内部に一度取り込んだ後（図６の（ｃ）あるいは図８の（ｃ）参照）、再度メモリに対しデータを格納するためのコマンドを発行すると同時に（図６の（ｂ）あるいは図８の（ｅ）参照）、この一度取り込んだデータをデータバス上に出力することで（図６の（ｃ）あるいは図８の（ｆ）参照）、メモリ−メモリ間のデータ転送を実現しなければならす、次のような問題がある。
【００３４】
すなわち、一つのデータを転送するに際し、“データ取り込みに要する時間”と“データ格納に要する時間”がそれぞれ必要となり、図５に示した従来のメモリ制御装置では、図６に示すように、少なくとも時間Ｔａを必要とし、一方、図７に示した従来のメモリ制御装置では、図８に示すように、少なくとも時間Ｔｂを必要とする。
【００３５】
また、一度のデータ取り込みおよびデータ格納の時間を短くするために、メモリに対しバーストアクセスを行い、一度に大量のデータを取り込みおよび格納する方法も考えられるが、ＤＭＡコントローラ内部にこのデータを一度格納するための大容量のバッファが必要となるため現実的ではない。仮にこの方法を実現したとしても“データ取り込みに要する時間”と“データ格納に要する時間”は独立に存在するので、この場合も、“データ取り込みに要する時間”と“データ格納に要する時間”がそれぞれ必要となり、より高速なデータ転送を実現することは困難であった。
【００３６】
そこで、本発明は、メモリとメモリとの間のデータ転送の転送時間を短縮し、全体的なメモリに対するデータの入出力動作の高速化を図ることのできるメモリ制御装置及びメモリ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００３７】
この課題を解決するために、本発明のメモリ制御装置は、同一のデータバスに接続された第1のメモリおよび第２のメモリと、前記第１のメモリに対しアドレスを指定する第１のアドレス指定手段と、前記第２のメモリに対しアドレスを指定する第２のアドレス指定手段と、前記第１のメモリに対し、前記第１のアドレス指定手段が指定したアドレスに基づく記憶領域からデータを読み出すためのリードコマンドを発行する第１のコマンド発行手段と、前記第１のコマンド発行手段が発行するリードコマンドの発行タイミングに対し前記第１のメモリのレーテンシー分遅延したタイミングで、前記第２のメモリに対し、前記第２のアドレス指定手段が指定したアドレスに基づく記憶領域にデータを書き込むためのライトコマンドを発行する第２のコマンド発行手段とを有する構成としたものである。
【００３８】
本発明の好ましい形態において、前記データバスにおける前記第１のメモリと前記第２のメモリとの間で形成される伝送経路に、前記第１のメモリと前記第２のメモリとを接続状態または開放状態に制御するスイッチ手段を更に備えている。
【００３９】
本発明のさらに好ましい形態において、前記第１のコマンド発行手段は、前記第１のメモリに対し、データを読み出すためのリードコマンドを発行するとともにデータを書き込むためのライトコマンドを発行し、前記第２のコマンド発行手段は、前記第２のメモリに対し、データを書き込むためのライトコマンドを発行するとともにデータを読み出すためのリードコマンドを発行する。
【００４０】
また、この課題を解決するために、本発明のメモリ制御方法は、データバスに接続され
た第１のメモリに対しアドレスを指定する第１のアドレス指定ステップと、前記データバスに接続された第２のメモリに対しアドレスを指定する第２のアドレス指定ステップと、前記第１のメモリに対し、前記第１のアドレス指定ステップにより指定されたアドレスに基づく記憶領域からデータを読み出すためのリードコマンドを発行する第１のコマンド発行ステップと、前記第１のコマンド発行ステップにより発行されるリードコマンドの発行タイミングに対し前記第１のメモリのレーテンシー分遅延したタイミングで、前記第２のメモリに対し、前記第２のアドレス指定ステップにより指定されたアドレスに基づく記憶領域にデータを書き込むためのライトコマンドを発行する第２のコマンド発行ステップとを含む構成としたものである。
【００４１】
本発明の好ましい形態において、前記データバスにおける前記第１のメモリと前記第２のメモリとの間で形成される伝送経路の所定の部分を接続状態または開放状態に制御することで、前記第１のメモリと前記第２のメモリとを接続状態または開放状態に制御するスイッチステップを更に含む。
【００４２】
本発明のさらに好ましい形態において、前記第１のコマンド発行ステップは、前記第１のメモリに対し、データを読み出すためのリードコマンドを発行するとともにデータを書き込むためのライトコマンドを発行するステップを含み、前記第２のコマンド発行ステップは、前記第２のメモリに対し、データを書き込むためのライトコマンドを発行するとともにデータを読み出すためのリードコマンドを発行するステップを含む。
【発明の効果】
【００４３】
本発明によれば、第１のコマンド発行手段によって発行されたリードコマンドおよび第１のアドレス指定手段によって指定されたアドレスに基づくデータの読み出し動作と、第２のコマンド発行手段によって発行されたライトコマンドおよび第２のアドレス指定手段によって指定されたアドレスに基づくデータの書込み動作とを同時に行うようにしたので、メモリとメモリとの間のデータ転送の転送時間を短縮し、全体的なメモリに対するデータの入出力動作の高速化を図ることができるという有効な効果が得られる。
【００４４】
また、本発明によれば、スイッチ手段によって第１のメモリと第２のメモリとが接続状態に制御されたときは、メモリとメモリとの間のデータ転送の転送時間を短縮し、全体的なメモリに対するデータの入出力動作の高速化を図ることができ、また、スイッチ手段によって第１のメモリと第２のメモリとが開放状態に制御されたときは、第１のメモリおよび第２のメモリをそれぞれ独立したメモリとして使用することができるという有効な効果が得られる。
【００４５】
さらに、本発明によれば、メモリとメモリとの間のデータ転送の転送時間を短縮し、全体的なメモリに対するデータの入出力動作の高速化を図ることができるという有効な効果が得られる。
【００４６】
さらに、本発明によれば、第１のコマンド発行ステップにより発行されたリードコマンドおよび第１のアドレス指定ステップにより指定されたアドレスに基づくデータの読み出し動作と、第２のコマンド発行ステップにより発行されたライトコマンドおよび第２のアドレス指定ステップにより指定されたアドレスに基づくデータの書込み動作とを同時に行うようにしたので、メモリとメモリとの間のデータ転送の転送時間を短縮し、全体的なメモリに対するデータの入出力動作の高速化を図ることができるという有効な効果が得られる。
【００４７】
さらに、本発明によれば、スイッチステップにより第１のメモリと第２のメモリとが接続状態に制御されたときは、メモリとメモリとの間のデータ転送の転送時間を短縮し、全
体的なメモリに対するデータの入出力動作の高速化を図ることができ、また、スイッチステップにより第１のメモリと第２のメモリとが開放状態に制御されたときは、第１のメモリおよび第２のメモリをそれぞれ独立したメモリとして使用することができるという有効な効果が得られる。
【発明を実施するための最良の形態】
【００４８】
本発明の請求項１に記載の発明は、同一のデータバスに接続された第1のメモリおよび第２のメモリと、第１のメモリに対しアドレスを指定する第１のアドレス指定手段と、第２のメモリに対しアドレスを指定する第２のアドレス指定手段と、第１のメモリに対し、第１のアドレス指定手段が指定したアドレスに基づく記憶領域からデータを読み出すためのリードコマンドを発行する第１のコマンド発行手段と、第１のコマンド発行手段が発行するリードコマンドの発行タイミングに対し第１のメモリのレーテンシー分遅延したタイミングで、第２のメモリに対し、第２のアドレス指定手段が指定したアドレスに基づく記憶領域にデータを書き込むためのライトコマンドを発行する第２のコマンド発行手段とを有するメモリ制御装置であり、第１のコマンド発行手段によって発行されたリードコマンドおよび第１のアドレス指定手段によって指定されたアドレスに基づくデータの読み出し動作と、第２のコマンド発行手段によって発行されたライトコマンドおよび第２のアドレス指定手段によって指定されたアドレスに基づくデータの書込み動作とを同時に行うようにしたので、メモリとメモリとの間のデータ転送の転送時間を短縮し、全体的なメモリに対するデータの入出力動作の高速化を図ることができるという作用を有する。
【００４９】
本発明の請求項２に記載の発明は、請求項１記載の発明において、データバスにおける第１のメモリと第２のメモリとの間で形成される伝送経路に、第１のメモリと第２のメモリとを接続状態または開放状態に制御するスイッチ手段を更に備えたメモリ制御装置であり、スイッチ手段によって第１のメモリと第２のメモリとが接続状態に制御されたときには、メモリとメモリとの間のデータ転送の転送時間を短縮し、全体的なメモリに対するデータの入出力動作の高速化を図ることができ、また、スイッチ手段によって第１のメモリと第２のメモリとが開放状態に制御されたときは、第１のメモリおよび第２のメモリをそれぞれ独立したメモリとして使用することができるという作用を有する。
【００５０】
本発明の請求項３に記載の発明は、請求項１記載の発明において、第１のコマンド発行手段は、第１のメモリに対し、データを読み出すためのリードコマンドを発行するとともにデータを書き込むためのライトコマンドを発行し、第２のコマンド発行手段は、第２のメモリに対し、データを書き込むためのライトコマンドを発行するとともにデータを読み出すためのリードコマンドを発行するメモリ制御装置であり、メモリとメモリとの間のデータ転送の転送時間を短縮し、全体的なメモリに対するデータの入出力動作の高速化を図ることができるという作用を有する。
【００５１】
本発明の請求項４に記載の発明は、データバスに接続された第１のメモリに対しアドレスを指定する第１のアドレス指定ステップと、データバスに接続された第２のメモリに対しアドレスを指定する第２のアドレス指定ステップと、第１のメモリに対し、第１のアドレス指定ステップにより指定されたアドレスに基づく記憶領域からデータを読み出すためのリードコマンドを発行する第１のコマンド発行ステップと、第１のコマンド発行ステップにより発行されるリードコマンドの発行タイミングに対し第１のメモリのレーテンシー分遅延したタイミングで、第２のメモリに対し、第２のアドレス指定ステップにより指定されたアドレスに基づく記憶領域にデータを書き込むためのライトコマンドを発行する第２のコマンド発行ステップとを含むメモリ制御方法であり、第１のコマンド発行ステップにより発行されたリードコマンドおよび第１のアドレス指定ステップにより指定されたアドレスに基づくデータの読み出し動作と、第２のコマンド発行ステップにより発行されたライトコマンドおよび第２のアドレス指定ステップにより指定されたアドレスに基づくデ
ータの書込み動作とを同時に行うようにしたので、メモリとメモリとの間のデータ転送の転送時間を短縮し、全体的なメモリに対するデータの入出力動作の高速化を図ることができるという作用を有する。
【００５２】
本発明の請求項５に記載の発明は、請求項４記載の発明において、データバスにおける第１のメモリと第２のメモリとの間で形成される伝送経路の所定の部分を接続状態または開放状態に制御することで、第１のメモリと第２のメモリとを接続状態または開放状態に制御するスイッチステップを更に含むメモリ制御方法であり、スイッチステップにより第１のメモリと第２のメモリとが接続状態に制御されたときは、メモリとメモリとの間のデータ転送の転送時間を短縮し、全体的なメモリに対するデータの入出力動作の高速化を図ることができ、また、スイッチステップにより第１のメモリと第２のメモリとが開放状態に制御されたときは、第１のメモリおよび第２のメモリをそれぞれ独立したメモリとして使用することができるという作用を有する。
【００５３】
本発明の請求項６に記載の発明は、請求項４記載の発明において、第１のコマンド発行ステップは、第１のメモリに対し、データを読み出すためのリードコマンドを発行するとともにデータを書き込むためのライトコマンドを発行するステップを含み、第２のコマンド発行ステップは、第２のメモリに対し、データを書き込むためのライトコマンドを発行するとともにデータを読み出すためのリードコマンドを発行するステップを含むメモリ制御方法であり、メモリとメモリとの間のデータ転送の転送時間を短縮し、全体的なメモリに対するデータの入出力動作の高速化を図ることができるという作用を有する。
【００５４】
以下、本発明を実施するための最良の形態を、図面を参照しつつさらに具体的に説明する。ここで、添付図面において同一の部材には同一の符号を付しており、また、重複した説明は省略されている。なお、ここでの説明は本発明が実施される最良の形態であることから、本発明は当該形態に限定されるものではない。
【００５５】
（実施の形態１）
図１は本発明の実施の形態１におけるメモリ制御装置の構成を示すブロック図、図２は図１に示したメモリ制御装置のメモリ制御動作を示すタイムチャートである。
【００５６】
図１において、メモリ制御装置は、このシステムを制御するＣＰＵ（中央演算処理装置）１１０と、ＣＰＵ１１０が実行する制御プログラムなどを格納しているＲＯＭ１２０と、メモリコントローラ１３０と、システムで使用するメモリ空間を提供するメモリ１４０と、ローカルメモリであるメモリ１５０とを有している。
【００５７】
メモリ（第１のメモリ）１４０は、ＣＰＵ１１０によって作成され、行および列で配列された画素の値を表す画素データ等からなるデータを記憶する。メモリ（第２のメモリ）１５０は、画像処理等を行うためのデータを一時的に記憶する。ここでは、メモリ１４０はソースメモリであり、メモリ１５０はディスティネーションメモリである。
【００５８】
メインコントローラ１３０において、アービタ１３１は、システムバス１６１およびＤＭＡＣ１３２からのメモリアクセスのリクエストに対し調停（アービトレーション）を行う。ＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）１３２は、メモリ−メモリ間のデータ転送の要求および制御を行う。
【００５９】
メモリコマンド発生器（第１のコマンド発行手段）１３３は、メモリ１４０に対しコントロールするためのコマンド例えばデータを読み出すためのリードコマンドを発生（発行）する。
【００６０】
メモリコマンド発生器（第２のコマンド発行手段）１３４は、メモリ１５０に対しコントロールするためのコマンド例えばデータを書き込むためのライトコマンドを発生（発行）する。
【００６１】
メモリアドレス発生器（第１のアドレス指定手段）１３５は、メモリ１４０に対し、書込みおよび読出しのアドレスを発生（指定）し、メモリアドレス発生器（第２のアドレス指定手段）１３６は、メモリ１５０に対し、書込みおよび読出しのアドレスを発生（指定）する。
【００６２】
データインターフェース部１３７は、メモリ１４０及びメモリ１５０とのデータのやり取りを行う。なお、メモリ１４０とメモリ１５０との間のデータ転送つまりデータコピーの動作のときは、データインターフェース部１３７の上記機能は停止状態となる。
【００６３】
システムバス１６１は、ＣＰＵ１１０とＲＯＭ１２０とメインコントローラ１３０とを接続するバスである。システムバス１６１にはコントロール信号が伝送される。
【００６４】
メモリアドレスバス１６２は、メモリアドレス発生器１３５とメモリ１４０間とを接続するバスであり、メモリアドレスバス１６３は、メモリアドレス発生器１３６とメモリ１５０とを接続するバスである。これらのメモリアドレスバス１６２，１６３にはアドレス信号が伝送される。
【００６５】
メモリコントロールバス１６４は、メモリコマンド発生器１３３とメモリ１４０とを接続するバスであり、メモリコントロールバス１６４には、上述したリードコマンドなどのメモリ制御信号が伝送される。
【００６６】
メモリコントロールバス１６５は、メモリコマンド発生器１３４とメモリ１５０とを接続するバスであり、メモリコントロールバス１６５には、上述したライトコマンドなどのメモリ制御信号が伝送される。
【００６７】
メモリデータバス１６６は、データインターフェース部１３７とメモリ１４０及びメモリ１５０とを接続するバスである。メモリデータバス１６６にはデータ信号が伝送される。
【００６８】
次に、ＤＭＡＣ１３２によるメモリ１４０の記憶内容をメモリ１５０にデータコピーする際のデータ転送処理について説明する。
【００６９】
ＤＭＡＣ１３２は、アービタ１３１に対しメモリアクセスをリクエストする。アービタ１３１は、ＤＭＡＣ１３２からのリクエスト（メモリアクセスリクエスト）を受けメモリアクセスの調停を行い、この調停の結果、競合するリクエストが存在しないと判断した場合は、ＤＭＡＣ１３２に対しメモリアクセスを許可する旨を通知する。
【００７０】
ＤＭＡＣ１３２は、メモリアクセスを許可する旨（メモリアクセス許可）を受け取った後、メモリコマンド発生器１３３，１３４、及びメモリアドレス発生器１３５，１３６に対しＤＭＡリクエストを発行する。
【００７１】
メモリコマンド発生器１３３は、ＤＭＡＣ１３２からのＤＭＡリクエストを受け、メモリ１４０に対し、データリード（データの読み出し）を行うためのリードコマンドを発行する。これと同時に、メモリアドレス発生器１３５は、メモリコマンド発生器１３３が発行するリードコマンド信号に同期してデータリードを行うメモリアドレスを発行する。
【００７２】
すると、メモリ１４０は、メモリアドレス発生器１３５からのメモリアドレスに基づく記憶領域に記憶されているデータを読み出して、メモリデータバス１６６に出力する。メモリデータバス１６６に出力されたデータ（読み出しデータ）はメモリ１５０に入力されることになる。
【００７３】
一方、メモリコマンド発生器１３４は、メモリコマンド発生器１３３が発行するリードコマンドの発行タイミングに対しメモリ１４０のレーテンシー分遅延したタイミングで、メモリ１５０に対し、データライト（データの書込み）を行うためのライトコマンドを発行する。これと同時に、メモリアドレス発生器１３６は、メモリコマンド発生器１３４が発行するライトコマンド信号に同期してデータライトを行うメモリアドレスを発行する。
【００７４】
すると、メモリ１５０は、メモリアドレス発生器１３６からのメモリアドレスに基づく記憶領域に、メモリデータバス１６６からのデータ（読み出しデータ）を書き込む。
【００７５】
上述した動作を行うことにより、メモリ１４０とメモリ１５０との間で直接、データを転送させて、データのリード動作およびライト動作を行うことが可能となり、高速なデータコピー動作を実現することができる。
【００７６】
次に、メモリ制御装置のメモリ制御動作について図２を参照して説明する。
【００７７】
図２において、（ａ）のＣＬＫは、メモリ１４０及びメモリ１５０とメモリコントローラ１３０との間で信号をやり取りする際の同期クロック信号を示し、（ｂ）のＣｏｍｍａｎｄ１は、メモリコマンド発生器１３３から発行されるメモリ１４０に対するコマンド信号を示し、（ｃ）のＣｏｍｍａｎｄ２は、メモリコマンド発生器１３４から発行されるメモリ１５０に対するコマンド信号を示し、（ｄ）のＤａｔａは、メモリデータバス１６６に伝送される信号を示している。
【００７８】
なお、このＣＬＫ信号は、図６（ａ）に示したＣＬＫ信号および図８（ａ）、（ｄ）に示したＣＬＫ信号と同一のクロック周波数に設定されている。
【００７９】
まず、メモリコマンド発生器１３３は、図２（ｂ）に示すように、メモリ１４０に対しアクセス（Ａｃｃｅｓｓ）を始めるためにアクティブ（Ａｃｔｉｖｅ）コマンド［ＡＣＴ］を発行し、続いてリード（Ｒｅａｄ）コマンド［ＲＤｘ］、例えばリードコマンド［ＲＤ０］〜［ＲＤ３］を発行する。これらのリードコマンド［ＲＤ０］〜［ＲＤ３］は、メモリコントロールバス１６４を介してメモリ１４０に入力される。
【００８０】
これと同時に、メモリアドレス発生器１３５は、メモリコマンド発生器１３３が発行するリードコマンド信号に同期してデータリードを行うメモリアドレスを発行する。このメモリアドレスは、メモリアドレスバス１６２を介してメモリ１４０に入力される。
【００８１】
そして、メモリ１４０は、本メモリの記憶領域における上記メモリアドレスに基づく記憶領域からデータを読み出すとともに、メモリデータバス１６６に伝送されるリードコマンドを受付けした時点からデータレーテンシー（データ処理遅延）分の時間が経過した後に、読み出したデータ（リードデータ）例えばデータ［Ｄ０］〜［Ｄ３］をメモリデータバス１６６に出力する。これらのデータ［Ｄ０］〜［Ｄ３］は、メモリデータバス１６６を介してメモリ１５０に入力される（図２（ｃ）参照）。
【００８２】
上述したデータの読出し動作に伴いメモリコマンド発生器１３４は、図２（ｂ）に示すように、メモリ１５０に対し、メモリ１４０がメモリデータバス１６６上にリードデータを出力するタイミングとメモリ１５０に対するライト（Ｗｒｉｔｅ）コマンドを発行する
タイミングとが同期するようにアクティブコマンド［ＡＣＴ］を発行し、続いてライトコマンド［ＷＴｘ］、例えばライトコマンド［ＷＴ０］〜［ＷＴ３］を発行する。
【００８３】
また、ライトコマンド［ＷＴｘ］が発行されると同時に、メモリアドレス発生器１３６は、メモリコマンド発生器１３４が発行するライトコマンド信号に同期してデータライトを行うメモリアドレスを発行する。このメモリアドレスはメモリアドレスバス１６３を介してメモリ１５０に入力される。
【００８４】
そして、ライトコマンド［ＷＴ０］〜［ＷＴ３］及びメモリアドレスを受け取ったメモリ１５０では、このメモリアドレスに基づく記憶領域に、データバス１６６を介して入力されたデータ［Ｄ０］〜［Ｄ３］を書き込む。
【００８５】
以上説明したように、実施の形態１によれば、メモリコマンド発生器（第１のコマンド発行手段）１３３によって発行されたリードコマンド及びメモリアドレス発生器（第１のアドレス指定手段）１３５によって指定されたアドレスに基づくデータの読み出し動作と、メモリコマンド発生器（第２のコマンド発行手段）１３４によって発行されたライトコマンド及びメモリアドレス発生器（第２のアドレス指定手段）１３６によって指定されたアドレスに基づくデータの書込み動作とを、同一のデータバスを介して同時に行うようにしたので、メモリとメモリとの間のデータ転送の転送時間を短縮し、全体的なメモリに対するデータの入出力動作の高速化を図ることができる。
【００８６】
具体的には、“データ取り込みに要する時間”と“データ格納に要する時間”は、本実施の形態では図２に示すように時間Ｔ１であるのに対し、従来のメモリ制御装置では図６に示した時間Ｔａや図８に示したＴｂを必要とする。すなわち、図２の内容と図６および図８の内容とからは、時間Ｔ１は、時間Ｔａあるいは時間Ｔｂと比較して大幅に短縮されていることが分かる。このように本実施の形態のメモリ制御装置は、上記従来のメモリ制御装置と比較して非常に短い時間でのコピー動作が可能となる。
【００８７】
また、実施の形態１によれば、データ転送においてはバッファメモリ等を使用することなく、メモリ１４０とメモリ１５０との間で直接、データを転送させて、データのリード動作およびライト動作を行うことができるので、バーストのサイズについても外部回路上の制限がないため、より高速なデータ転送を実現することができる。
【００８８】
（実施の形態２）
図３は本発明の実施の形態２におけるメモリ制御装置の構成を示すブロック図、図４は図３に示したメモリ制御装置のメモリ制御動作を示すタイムチャートである。
【００８９】
図３において、メモリ制御装置は、ＣＰＵ２１０と、ＲＯＭ２２０と、メモリコントローラ２３０と、メモリコントローラ２４０と、ＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）２５０と、システムで使用するメモリ空間を提供するメモリ２６０と、ローカルメモリであるメモリ２７０と、バススイッチ２８０と、データ処理部２９０と、を有している。
【００９０】
ＣＰＵ２１０はこのシステムを制御するものであり、ＲＯＭ２２０はＣＰＵ２１０が実行する制御プログラムなどを格納している。
【００９１】
メモリコントローラ２３０は、アービタ２３１０とメモリ制御部２３２０とを有している。アービタ２３１０は、システムバス３１０およびＤＭＡＣ２５０からのメモリアクセスのリクエストに対し調停（アービトレーション）を行う。メモリ制御部２３２０は、メモリ２６０に対する書込みおよび読み出しを制御する。
【００９２】
メモリ制御部２３２０において、メモリアドレス発生器（第１のアドレス指定手段）２３２１は、メモリ２６０に対し書込みおよび読出しのアドレスを発行（指定）する。
【００９３】
メモリコマンド発生器（第１のコマンド発生手段）２３２２は、メモリ２６０に対しコントロールするためのコマンドを発生（発行）する。例えば、データを読み出すためのリードコマンドを発生（発行）するとともに、データを書き込むためのライトコマンドを発生（発行）する。
【００９４】
データインターフェース部２３２３は、メモリ２６０とのデータのやり取りを行う。なお、メモリ２６０とメモリ２７０との間のデータ転送つまりデータコピーの動作のときは、データインターフェース部２３２３の上記機能は停止状態となる。
【００９５】
一方、メモリコントローラ２４０は、アービタ２４１０とメモリ制御部２４２０とを有している。アービタ２４１０は、ローカルバス３２０およびＤＭＡＣ２５０からのメモリアクセスのリクエストに対し調停（アービトレーション）を行う。メモリ制御部２４２０は、メモリ２７０に対する書込みおよび読み出しを制御する。
【００９６】
メモリ制御部２４２０において、メモリアドレス発生器（第２のアドレス指定手段）２４２１は、メモリ２７０に対し書込みおよび読出しのアドレスを発行（指定）する。
【００９７】
メモリコマンド発生器（第２のコマンド発生手段）２４２２は、メモリ２７０に対しコントロールするためのコマンドを発生（発行）する。例えば、データを読み出すためのリードコマンドを発生（発行）するとともに、データを書き込むためのライトコマンドを発生（発行）する。
【００９８】
データインターフェース部２４２３は、メモリ２７０とのデータのやり取りを行う。なお、メモリ２６０とメモリ２７０との間のデータ転送つまりデータコピーの動作のときは、データインターフェース部２３２３の上記機能は停止状態となる。
【００９９】
ＤＭＡＣ２５０は、メモリコントローラ２３０，２４０を介して、メモリ−メモリ間のデータ転送の要求および制御を行う。ＤＭＡＣ２５０は、メモリコントローラ２３０に対しＤＭＡ制御信号３０１を発行するとともに、メモリコントローラ２４０に対しＤＭＡ制御信号３０２を発行する。
【０１００】
メモリ２６０は、ＣＰＵ２１０によって作成され、行および列で配列された画素の値を表す画素データ等からなるデータを記憶する。メモリ２７０は、画像処理等を行うためのデータを一時的に記憶する。ここでは、メモリ２６０はソースメモリであり、メモリ２７０はディスティネーションメモリである。
【０１０１】
バススイッチ（スイッチ手段）２８０は、メモリ２６０とメモリ２７０との間の２つのデータバスを接続（短絡）状態あるいは開放状態に制御する。すなわち、後述するメモリデータバス３５１と後述するメモリデータバス３５２とを、接続状態あるいは開放状態にする。接続状態のときは、メモリデータバス３５１及びメモリデータバス３５２で同一のデータバスとみなすことができ、一方、開放状態のときは、メモリデータバス３５１及びメモリデータバス３５２はそれぞれ独立したデータバスとみなすことができる。
【０１０２】
データ処理部２９０は、メモリ２７０に格納された画像データ等のデータに対し処理を行う。この場合、メモリ２７０から読み出されるデータは、メモリデータバス３５２、データインターフェース部２４２３およびローカルバス３２０を介してデータ処理部２９０
に入力されることになる。
【０１０３】
メモリコントローラ同期信号３０３は、メモリコントローラ２３０とメモリコントローラ２４０との間の同期動作を行うためのものである。
【０１０４】
バススイッチコントロール信号３０４は、バススイッチ２８０に対し接続状態および開放状態を制御するためのものである。
【０１０５】
システムバス３１０は、ＣＰＵ２１０とＲＯＭ２２０とメモリコントローラ２３０とを接続するバスである。システムバス３１０にはコントロール信号が伝送される。
【０１０６】
ローカルバス３２０は、データ処理部２９０とメモリコントローラ２４０とを接続するバスである。ローカルバス３２０にはコントロール信号が伝送される。
【０１０７】
メモリアドレスバス３３１は、メモリアドレス発生器２３２１とメモリ２６０とを接続するバスである。メモリアドレスバス３３１にはアドレス信号が伝送される。
【０１０８】
メモリコントロールバス３４１は、メモリコマンド発生器２３２２とメモリ２６０とを接続するバスである。メモリコントロールバス３４１にはメモリコマンド発生器２３２２からのリードコマンドやライトコマンドなどのメモリ制御信号が伝送される。
【０１０９】
メモリデータバス３５１は、データインターフェース部２３２３とメモリ２６０とバススイッチ２８０とを接続するバスである。メモリデータバス３５１にはデータ信号が伝送される。
【０１１０】
メモリアドレスバス３３２は、メモリアドレス発生器２４２１とメモリ２７０とを接続するバスである。メモリアドレスバス３３２にはアドレス信号が伝送される。
【０１１１】
メモリコントロールバス３４２は、メモリコマンド発生器２４２２とメモリ２７０とを接続するバスである。メモリコントロールバス３４２にはメモリコマンド発生器２４２２からのリードコマンドやライトコマンドなどのメモリ制御信号が伝送される。
【０１１２】
メモリデータバス３５２は、データインターフェース部２４２３とメモリ２７０とバススイッチ２８０とを接続するバスである。メモリデータバス３５２にはデータ信号が伝送される。
【０１１３】
次に、ＤＭＡＣ２５０によるメモリ２６０の記憶内容をメモリ２７０にデータコピーする際のデータ転送処理について説明する。
【０１１４】
ＤＭＡＣ２５０は、メモリコントローラ２３０及びメモリコントローラ２４０に対し、ＤＭＡ動作のリクエスト（ＤＭＡリクエスト）を行うと同時に、ＤＭＡ動作のソースアドレス、ディスティネーションアドレスおよび転送サイズを通知する。
【０１１５】
メモリコントローラ２３０のアービタ２３１０及びメモリコントローラ２４０のアービタ２４２０は、ＤＭＡＣ２５０からのＤＭＡリクエストを受け取ると、メモリアクセスの調停（アービトレーション）を行い、この調停の結果、競合するリクエストが存在しないと判断した場合に、ＤＭＡＣ２５０に対し、メモリアクセス許可を通知する。
【０１１６】
これと同時に、メモリコントローラ２１３０のメモリ制御部２３２０及びメモリコントローラ２４０のメモリ制御部２４２０は、メモリアクセスを開始する。
【０１１７】
先ずメモリコントローラ２１３０では、メモリ制御部２３２０は、接続（短絡）状態を示す旨のバススイッチコントロール信号３０４をバススイッチ２８０に出力する。
【０１１８】
次に、メモリコマンド発生器２３２２がアービタ２３１０からのＤＭＡリクエストを受け、メモリ２６０に対するデータリードを行うためのコマンド（リードコマンド）を発行する。
【０１１９】
これと同時に、メモリアドレス発生器２３２１は、メモリコマンド発生器２３２２が発行するコマンド信号に同期してデータリードを行うメモリアドレスを発行する。
【０１２０】
すると、メモリ２６０は、上記リードコマンドが発行された時点から、メモリ２６０のＣａｓ（行アドレス・ストローブ）レーテンシー（処理遅延）分遅延した時点で、メモリアドレス発生器２３２１からのメモリアドレスに基づく記憶領域に記憶されているデータを読み出して、メモリデータバス３５１に出力する。
【０１２１】
ところで、接続状態を示す旨のバススイッチコントロール信号３０４を既に受け取っているバススイッチ２８０によって、メモリデータバス３５１とメモリデータバス３５２とが接続状態になっているので、メモリデータバス３５１に出力されたデータは、メモリデータバス３５２にも伝送される。
【０１２２】
一方、メモリコントローラ２４０において、メモリ制御部２４２０（メモリアドレス発生器２４２１及びメモリコマンド発生器２４２２）では、メモリコントローラ２３０の状態をメモリコントローラ同期信号３０３を使用し、メモリコマンド発生器２４２２は、メモリ２６０に対し発行するリードコマンド信号の発行タイミングに対しメモリ２６０のレーテンシー（処理遅延）分遅延したタイミングで、メモリ２７０に対しライトコマンドを発行する。
【０１２３】
これと同時に、メモリアドレス発生器２４２１は、メモリコマンド発生器２４２２が発行するコマンド信号に同期してデータライトを行うメモリアドレスを発行する。すると、メモリ２７０では、指定されたメモリアドレスに基づく記憶領域に、メモリデータバス３５２に伝送され、取り込んだメモリ２６０からのデータ（リードデータ）を書き込む。
【０１２４】
以上の動作を行うことにより、リアルタイムにデータリードおよびデータライトの動作を行うことが可能になり、高速なデータコピー動作を実現することができる。
【０１２５】
上述したようにして１サイクル分のデータのリード動作およびライド動作が終了した場合、メモリコントローラ２３０は、開放状態を示す旨のバススイッチコントロール信号３０４をバススイッチ２８０に出力することができる。
【０１２６】
バススイッチ２８０が、メモリデータバス３５１とメモリデータバス３５２とを接続状態から開放状態に変更することにより、メモリ２７０は、メモリ２６０から切り離されローカルメモリとして独立に動作することが可能となり、広帯域のメモリ空間を提供することが可能となる。
【０１２７】
次に、メモリ制御装置のメモリ制御動作について図４を参照して説明する。
【０１２８】
図４において、（ａ）のＣＬＫは、メモリ２６０及びメモリ２７０とメモリコントローラ２３０及びメモリコントローラ２４０との間で信号のやり取りをする際の同期クロック信号を示し、（ｂ）のＣｏｍｍａｎｄ１は、メモリコマンド発生器２３２２から発行され
るメモリ２６０に対するコマンド信号を示し、（ｃ）のＣｏｍｍａｎｄ２は、メモリコマンド発生器２４２２から発行されるメモリ２７０に対するコマンド信号を示し、（ｄ）のＤａｔａ１は、メモリデータバス３５１に伝送されるデータを示し、（ｅ）のＤａｔａ２は、メモリデータバス３５２に伝送されるデータを示し、（ｆ）のＢｕｓＳＷは、バススイッチコントロール信号３０４を示している。
【０１２９】
まず、メモリコントローラ２３０のメモリ制御部２３２０は、接続状態を示す旨のバススイッチコントロール信号３０４をバススイッチ２８０に出力する（図４（ｆ）参照）。
【０１３０】
次に、メモリコマンド発生器２３２２は、メモリ２６０に対し、アクセス（Ａｃｃｅｓｓ）を始めるためにアクティブ（Ａｃｔｉｖｅ）コマンド［ＡＣＴ］を発行し、続いてリード（Ｒｅａｄ）コマンド［ＲＤｘ］例えば［ＲＤ０］〜［ＲＤ３］を発行する（図８（ｂ）参照））。これらのリードコマンド［ＲＤ０］〜［ＲＤ３］は、メモリコントロールバス３４１を介してメモリ２６０に入力される。
【０１３１】
これと同時に、メモリアドレス発生器２３２１は、メモリコマンド発生器２３２２が発行するリードコマンド信号に同期してデータリードを行うメモリアドレスを発行する。このメモリアドレスは、メモリアドレスバス３３１を介してメモリ２６０に入力される。
【０１３２】
そして、メモリ２６０は、本メモリの記憶領域における上記メモリアドレスに基づく記憶領域からデータ例えばデータ［Ｄ０］〜［Ｄ３］を読み出すとともに、上記リードコマンドを受付けした時点からデータレーテンシー（データ処理遅延）分の時間が経過した後に、読み出したデータ（データ［Ｄ０］〜［Ｄ３］）をメモリデータバス３５１に出力する（図８（ｄ）参照）。
【０１３３】
ところで、接続状態を示す旨のバススイッチコントロール信号３０４を既に受け取っているバススイッチ２８０によって、メモリデータバス３５１とメモリデータバス３５２とが接続状態になっているので、メモリデータバス３５１に出力されたデータ（データ［Ｄ０］〜［Ｄ３］）は、メモリデータバス３５２にも伝送される（図８（ｅ）参照）。
【０１３４】
上述したデータの読出し動作に伴いメモリコマンド発生器２４２０は、メモリ２７０に対し、メモリ２６０がメモリデータバス３５１上にリードデータを出力するタイミングとメモリ２７０に対するライト（Ｗｒｉｔｅ）コマンドの発行タイミングとが同期するように、アクティブ（Ａｃｔｉｖｅ）コマンド［ＡＣＴ］を発行し、続いてライト（Ｗｒｉｔｅ）コマンド［ＷＴｘ］例えば［ＷＴ０］〜［ＷＴ３］を発行する（図８（ｃ）参照）。
【０１３５】
また、ライトコマンド［ＷＴｘ］が発行されると同時に、メモリアドレス発生器２４２０は、メモリコマンド発生器２４２２が発行するライトコマンド信号に同期してデータライトを行うメモリアドレスを発行する。このメモリアドレスはメモリアドレスバス３３２を介してメモリ２７０に入力される。
【０１３６】
そして、ライトコマンド［ＷＴ０］〜［ＷＴ３］及びメモリアドレスを受け取ったメモリ２７０では、このメモリアドレスに基づく記憶領域に、メモリデータバス３５２を介して入力されたデータ［Ｄ０］〜［Ｄ３］を書き込む。
【０１３７】
以上の制御により、メモリ２６０からメモリ２７０へのデータ転送つまりデータコピー動作が終了したことになる。
【０１３８】
次に、メモリコントローラ２３０が開放状態を示す旨のバススイッチコントロール信号３０４をバススイッチ２８０に出力すると、バススイッチ２８０は、メモリデータバス３
５１とメモリデータバス３５２とを接続状態から開放状態に制御する。
【０１３９】
これにより、メモリデータバス３５１とメモリデータバス３５２とは開放状態となる（図４の（ｆ）参照）。この時点でメモリ２６０及びメモリ２７０は全く別のデータバスに接続されたメモリとなり、メモリコントローラ２３０はメモリ２６０に対するライド動作のための制御を行うことができ（図４の（ｂ）、（ｄ）参照）、一方、メモリコントローラ２４０は、メモリコントローラ２３０とは独立して、メモリ２７０に対するリード動作のための制御を行うことがきる（図４の（ｃ）、（ｅ）参照）。
【０１４０】
このように、メモリデータバス３５１及びメモリデータバス３５２が開放状態になった場合には、メモリ２６０及びメモリ２７０それぞれを独立にメモリ制御することができる。
【０１４１】
この実施の形態においては、メモリコマンド発生器２３２２は、メモリ２６０に対しリードコマンドを発行するとともにライトコマンドを発行し、メモリコマンド発生器２４２２は、メモリ２７０に対しライトコマンドを発行するとともにリードコマンドを発行するようになっているので、メモリ２６０からメモリ２７０へのデータ転送に加えて、メモリ２７０からメモリ２６０へのデータ転送を実施することができる。
【０１４２】
この場合、メモリ２７０が第１のメモリ（ソースメモリ）となり、メモリ２６０が第２のメモリ（ディスティネーションメモリ）となる。
【０１４３】
以上説明したように、実施の形態２によれば、メモリコマンド発生器（第１のコマンド発行手段）２３２２によって発行されたリードコマンド及びメモリアドレス発生器（第１のアドレス指定手段）２３２１によって指定されたアドレスに基づくデータの読み出し動作と、メモリコマンド発生器（第２のコマンド発行手段）２４２２によって発行されたライトコマンド及びメモリアドレス発生器（第２のアドレス指定手段）２４２１によって指定されたアドレスに基づくデータの書込み動作とを、同一のデータバスを介して同時に行うようにしたので、メモリとメモリとの間のデータ転送の転送時間を短縮し、全体的なメモリに対するデータの入出力動作の高速化を図ることができる。
【０１４４】
具体的には、“データ取り込みに要する時間”と“データ格納に要する時間”は、本実施の形態では図４に示すように時間Ｔ２であるのに対し、従来のメモリ制御装置では図６に示した時間Ｔａや図８に示したＴｂを必要とする。すなわち、図４の内容と図６および図８の内容とからは、時間Ｔ２は、時間Ｔａあるいは時間Ｔｂと比較して大幅に短縮されていることが分かる。このように本実施の形態のメモリ制御装置は、上記従来のメモリ制御装置と比較して非常に短い時間でのコピー動作が可能となる。
【０１４５】
また、実施の形態２によれば、データ転送においてはバッファメモリ等を使用することなく、メモリ２６０とメモリ２７０との間で直接、データを転送させて、データのリード動作およびライト動作を行うことができるので、バーストのサイズについても外部回路上の制限がないため、より高速なデータ転送を実現することができる。
【０１４６】
さらに、実施の形態２によれば、バススイッチ（スイッチ手段）２８０によってメモリ（第１のメモリ）２６０とメモリ（第２のメモリ）２７０とが接続状態に制御されたときは、メモリ２６０とメモリ２７０との間のデータ転送の転送時間を短縮し、全体的なメモリに対するデータの入出力動作の高速化を図ることができ、また、バススイッチ２８０スイッチ手段によってメモリ２６０とメモリ２７０とが開放状態に制御されたときは、メモリ２６０及びメモリ２７０をそれぞれ独立したメモリとして使用することができる。
【０１４７】
さらに、実施の形態２によれば、メモリコマンド発生器２３２２は、メモリ２６０に対しリードコマンドを発行するとともにライトコマンドを発行し、メモリコマンド発生器２４２２は、メモリ２７０に対しライトコマンドを発行するとともにリードコマンドを発行するようにしているので、メモリ２６０からメモリ２７０へのデータ転送に加えて、メモリ２７０からメモリ２６０へのデータ転送を実施することができる。そのため、メモリ２６０からデータ転送されメモリ２７０に格納されたデータに基づいてデータ処理を実行し、このデータ処理の結果を、メモリ２６０に書き戻すことができる。
【産業上の利用可能性】
【０１４８】
本発明は、メモリデータのコピーを行うソースメモリおよびディスティネーションメモリに対しそれぞれ独立のメモリ制御信号を持ち、かつ前記各メモリをそれぞれ同一データバス上に配置するようにしたものであり、印刷装置に用いられるコントローラに適用することができる。
【図面の簡単な説明】
【０１４９】
【図１】本発明の実施の形態１におけるメモリ制御装置の構成を示すブロック図
【図２】図１に示したメモリ制御装置のメモリ制御動作を示すタイムチャート
【図３】本発明の実施の形態２におけるメモリ制御装置の構成を示すブロック図
【図４】図３に示したメモリ制御装置のメモリ制御動作を示すタイムチャート
【図５】従来のメモリ制御装置の構成を示すブロック図
【図６】図５に示した従来のメモリ制御装置のメモリ制御動作を示すタイムチャート
【図７】従来のメモリ制御装置の他の構成を示すブロック図
【図８】図７に示した従来のメモリ制御装置のメモリ制御動作を示すタイムチャート
【符号の説明】
【０１５０】
１１０，２１０    ＣＰＵ
１２０，２２０    ＲＯＭ
１３０，２３０，２４０    メモリコントローラ
１３１，２３１０，２４１０    アービタ
１３２，２５０    ＤＭＡＣ
１３３，２３２２    メモリコマンド発生器（第１のコマンド発行手段）
１３４，２４２２    メモリコマンド発生器（第２のコマンド発行手段）
１３５，２３２１    メモリアドレス発生器（第１のアドレス指定手段）
１３６，２４２１    メモリアドレス発生器（第２のアドレス指定手段）
１３７，２３２３，２４２３    データインターフェース部
１４０，２６０    メモリ（第１のメモリ）
１５０，２７０    メモリ（第２のメモリ）
１６１，３１０    システムバス
１６２，１６３，３３１，３３２    メモリアドレスバス
１６４，１６５，３４１，３４２    メモリコントロールバス
１６６，３５１，３５２    メモリデータバス（データバス）
２８０    バススイッチ（スイッチ手段）
３０１，３０２    ＤＭＡ制御信号
３０３    メモリコントローラ同期信号
３０４    バススイッチコントロール信号
２３２０，２４２０    メモリ制御部
【図１】
2006031147.tif 000003
【図２】
2006031147.tif 000004
【図３】
2006031147.tif 000005
【図４】
2006031147.tif 000006
【図５】
2006031147.tif 000007
【図６】
2006031147.tif 000008
【図７】
2006031147.tif 000009
【図８】
2006031147.tif 000010