(57)【要約】【課題】  メモリ構成の互いに異なるメモリ間で、任意の矩形領域内のデータを高速にデータ転送可能な転送回路を実現する。【解決手段】  転送回路１１のアドレス差レジスタ２４・２６には、転送元となるメインメモリ２、および、転送先となるビデオメモリ３のそれぞれにおいて、隣接する各水平ラインの開始アドレス同士の差が格納されている。転送回路１１の各アドレス算出部３３・３４は、転送処理部３１によるデータ転送の度に、各メモリ２・３において、次に転送すべきアドレスを算出し、転送処理部３１へ指示している。また、転送制御部３２が現水平ラインにおける矩形領域の終端に到達したと判断した場合、上記各アドレス算出部３３・３４は、上記各アドレス差レジスタ２４・２６をそれぞれ参照して、次のラインの矩形領域の開始アドレスを算出し、転送処理部３１へ指示する。【選択図】  図１
2006072449.tif 000002
【特許請求の範囲】
【請求項１】
転送元メモリにて、隣接するライン間の開始アドレス同士の差を示すアドレス差情報を格納する転送元アドレス差レジスタと、
転送先メモリにて、隣接するライン間の開始アドレス同士の差を示すアドレス差情報を格納する転送先アドレス差レジスタと、
上記転送元メモリの指示されたアドレスから、上記転送先メモリの指示されたアドレスへとデータを転送する転送処理回路と、
上記転送処理回路によるデータ転送毎に、次にデータ転送すべき転送元メモリのアドレスを算出して、上記転送処理回路へ指示する転送元アドレス算出回路と、
上記転送処理回路によるデータ転送毎に、次にデータ転送すべき転送先メモリのアドレスを算出して、上記転送処理回路へ指示する転送先アドレス算出回路と、
上記転送処理回路によるデータ転送毎に、現ラインにおける矩形領域の転送が終了したか否かを判定する判定回路とを備え、
上記各アドレス算出回路は、上記判定回路が現ラインの矩形領域の転送が終了したと判断した場合、上記各アドレス差レジスタのうち、それぞれに対応するアドレス差レジスタに格納されたアドレス差情報を参照して、上記矩形領域の次のラインにおける開始アドレスを算出し、次にデータ転送すべきアドレスとして出力することを特徴とする転送回路。
【請求項２】
上記転送処理回路は、上記転送元および転送先の少なくとも一方のメモリの複数アドレスのデータを一括して転送することを特徴とする請求項１記載の転送回路。
【請求項３】
上記転送処理回路は、上記転送元メモリから転送先メモリへデータ転送可能であることを特徴とする請求項１または２記載の転送回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ構成の異なるメモリ間で、データ転送毎およびライン毎に指示を出すことなく、矩形領域のデータを転送可能な転送回路に関するものである。
【背景技術】
【０００２】
従来から、情報処理装置において、画像処理や画像表示にあたって、メインメモリと他のメモリ（例えば、バッファやビデオメモリなど）との間で、画面のデータを転送することが広く行われている。
【０００３】
例えば、後述する特許文献１では、図１９に示すように、作業領域として、１次元的なアドレスによってアクセス可能なバッファ５１５を複数設けておき、ＡＬＵ５１１が、バッファ５１５（１）の画像データにアクセスしてフィルタリングなどの処理をしている間に、ＤＭＡＣ５１６が、他方のバッファ５１５（２）へメインメモリ５０２の画像データを持ってくる情報処理装置が開示されている。さらに、当該情報処理装置は、バッファ５１５（１）の画像データに対するフィルタリングなどの処理が終わると、ＤＭＡＣ５１６の動作によって、処理終了後のバッファ５１５（１）の画像データをメインメモリ５０２に格納させることができ、この格納と同時に、ＡＬＵ５１１はバッファ５１５（２）に対する画像処理を行うことができる。つまり、データ処理とデータ転送を並行して行うことができる。
【０００４】
上記情報処理装置では、メインメモリ５０２の画像データをバッファ５１５の１つへ転送する場合に、以下の処理が行われる。すなわち、メインメモリ５０２のプログラムデータに基づき、ＡＬＵ５１１は、２次元アドレスを生成してＤＭＡＣ５１６に供給する。ＤＭＡＣ５１６内のアドレス変換回路６６１は、２次元アドレスからメインメモリ５０２の画像データをアクセスするための１次元アドレスに変換してメインメモリ５０２に供給する。メインメモリ５０２から読み出された画像データは、バッファ５１５に与えられる。ＡＬＵ５１１は、プログラムデータに基づき、バッファ５１５に画像データを格納するための２次元アドレスを生成してアドレス変換回路５１４に与える。アドレス変換回路５１４は、１次元アドレスに変換してバッファ５１５に与えてメインメモリ５０２からの画像データを格納する。
【特許文献１】特開平６−２３１０３５号公報（公開日：1994年８月１９日）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の構成では、データ転送の度にＡＬＵがアドレスを生成する構成であり、ＡＬＵの負担が大きくなってしまう。特に、汎用のコンピュータなどにおいて、転送の対象とするデータをＣＰＵが指定する構成において、ＣＰＵが、この処理を行おうとすると、ＣＰＵの負担が重くなるだけではなく、メモリの転送速度に間に合わなくなり、データ転送速度が低下してしまう。さらに、上記従来の構成では、バッファには、データが連続して格納されており、他のメモリ構成（他のデータの格納方法）のメモリに転送することができない。
【０００６】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、メモリ構成の互いに異なるメモリ間で、任意の矩形領域内のデータを高速にデータ転送可能な転送回路を実現することにある。
【課題を解決するための手段】
【０００７】
本発明に係る転送回路は、上記課題を解決するために、転送元メモリにて、隣接するライン間の開始アドレス同士の差を示すアドレス差情報を格納する転送元アドレス差レジスタと、転送先メモリにて、隣接するライン間の開始アドレス同士の差を示すアドレス差情報を格納する転送先アドレス差レジスタと、上記転送元メモリの指示されたアドレスから、上記転送先メモリの指示されたアドレスへとデータを転送する転送処理回路と、上記転送処理回路によるデータ転送毎に、次にデータ転送すべき転送元メモリのアドレスを算出して、上記転送処理回路へ指示する転送元アドレス算出回路と、上記転送処理回路によるデータ転送毎に、次にデータ転送すべき転送先メモリのアドレスを算出して、上記転送処理回路へ指示する転送先アドレス算出回路と、上記転送処理回路によるデータ転送毎に、現ラインにおける矩形領域の転送が終了したか否かを判定する判定回路とを備え、上記各アドレス算出回路は、上記判定回路が現ラインの矩形領域の転送が終了したと判断した場合、上記各アドレス差レジスタのうち、それぞれに対応するアドレス差レジスタに格納されたアドレス差情報を参照して、上記矩形領域の次のラインにおける開始アドレスを算出し、次にデータ転送すべきアドレスとして出力することを特徴としている。なお、上記ラインとしては、水平ラインまたは垂直ラインなどが挙げられる。
【０００８】
上記構成では、各アドレス算出回路は、上記判定回路が現ラインの矩形領域の転送が終了したと判断した場合、それぞれのアドレス差情報を参照して、次のラインの開始アドレスを算出し、次にデータ転送すべきアドレスとして出力する。したがって、矩形領域を構成するライン毎、および、データ処理部によるデータ転送毎に、転送回路の外部に設けられた外部回路（例えば、ＣＰＵなど）が指示する構成とは異なって、転送回路は、何ら支障なく、転送元のメモリから転送先のメモリへと、矩形領域のデータを転送できる。この結果、上記ライン毎あるいはデータ転送毎に外部回路が転送回路へ指示することに起因するオーバーヘッドの発生を防止できる。
【０００９】
また、上記転送元アドレス差レジスタと転送先アドレス差レジスタとが別々に設けられているので、各レジスタに予め値を設定しておくことで、転送元のメモリ構成（隣接するライン間の開始アドレス差）が互いに異なる転送元メモリから転送先メモリへ、任意の矩形領域のデータを転送できる。
【００１０】
これらの結果、メモリ構成の互いに異なるメモリ間で、任意の矩形領域内のデータを高速にデータ転送可能な転送回路を実現できる。特に、各レジスタが上記外部回路から設定可能であれば、動作中にメモリ構成が変化して、隣接するライン間の開始アドレス差が変化する場合であっても、上記各アドレス差レジスタの値を適切に設定し直すことによって、転送回路は、何ら支障なく、任意の矩形領域内のデータを高速にデータ転送できる。
【００１１】
さらに、上記構成に加えて、上記転送処理回路は、上記転送元および転送先の少なくとも一方のメモリの複数アドレスのデータを一括して転送してもよい。なお、一括転送の方法としては、例えば、バースト転送などが挙げられる。
【００１２】
上記構成では、転送処理回路が、複数アドレスのデータを一括転送するので、アドレス毎にデータ転送する構成と比較して、転送処理回路がメモリにアドレスを指定する回数を削減できる。したがって、アドレス毎にデータ転送する構成よりも、高速に転送可能な転送回路を実現できる。
【００１３】
さらに、上記構成に加えて、上記転送処理回路は、上記転送元メモリから転送先メモリへデータ転送可能であってもよい。上記構成では、転送元メモリから転送先メモリにもデータ転送できる。したがって、例えば、基本的には、メインメモリからビデオメモリにデータ転送する構成ではあるが、ビデオキャプチャ回路など、ビデオメモリに直接データを書き込む回路によって書き込まれたデータを、メインメモリに転送して、当該データを、外部回路が参照する用途などにも使用できる。
【発明の効果】
【００１４】
本発明によれば、メモリ構成の互いに異なるメモリ間で、任意の矩形領域内のデータを高速にデータ転送可能な転送回路を実現できるので、例えば、メインメモリとビデオメモリとの間のデータ転送をはじめとして、種々のメモリ間のデータ転送を行う転送回路として、広く好適に使用できる。
【発明を実施するための最良の形態】
【００１５】
〔第１の実施形態〕
本発明の一実施形態について図１ないし図１２に基づいて説明すると以下の通りである。すなわち、本実施形態に係る情報処理装置１は、複数の互いに異なる蓄積方法で、画像のデータを蓄積しているメモリ間で、画像の任意の矩形領域のデータを高速に転送可能な装置であって、図２に示すように、上記画像のデータを蓄積するメモリとして、メインメモリ２と、ビデオメモリ３とを備えている。
【００１６】
上記ビデオメモリ３は、グラフィックコントローラ４が表示装置５へ出力する映像信号を生成するために参照するものであって、比較的小規模な回路で、高速に各画素のデータを読み出すことができるようにするため、例えば、図３に示すように、画像の各ラインのデータは、互いに隣接する２つのラインのデータの開始アドレス同士の差が２n で表現できるように配置されている。なお、このように各ラインのデータを配置すると、画素の解像度（画素数）によっては、次のラインの最初の画素のデータを格納したアドレス（次のラインの開始アドレス）が、あるラインの末尾の画素のデータを格納したアドレスに連続しなくなることもあるが、この場合、当該アドレス（末尾のアドレス）の次のアドレスから、次のラインの開始アドレスの直前までの記憶領域は、使用されない。
【００１７】
例えば、図３は、水平解像度が８００画素の画像をビデオメモリ３に格納している状態を示している。図３では、互いに隣接する２つのラインのデータの開始アドレス同士の差が２10で表現できるように、各ラインのデータが配置され、１ワード（１アドレス分の記憶領域）に、１画素分のデータが格納されている場合を例示している。したがって、ある水平ライン分の画像データは、ビデオメモリ３のＡ００１ｈ〜Ａ３２０ｈに格納され、次の水平ライン分の画像データは、Ａ４０１ｈ〜Ａ７２０ｈに格納されている。
【００１８】
当該構成では、基準とするラインの次のラインの開始アドレスを算出する際、基準とするラインの開始アドレスのうち、予め定められた上位ビットをインクリメントし、残余の下位ビットを連結すれば、次のラインの開始アドレスを算出できる。したがって、グラフィックコントローラ４が所定の周期（例えば、１フレーム期間毎など）毎に、画像の各画素の輝度を示す映像信号をそれぞれ出力する場合のように、高速なアクセスが必要な場合であっても、グラフィックコントローラ４を、比較的小規模な回路で実現できる。
【００１９】
一方、本実施形態に係るメインメモリ２は、主として、情報処理装置１のＣＰＵ６によりアクセスされるメモリであって、図４に示すように、ある水平ラインの画像データは、その前の水平ラインの画像データが格納されているアドレスに連続するアドレスに格納されている。
【００２０】
例えば、図４は、図３と同様に、水平解像度が８００画素で、１画素のデータが１ワードで表現されている場合を例示しているが、図３とは異なって、ある水平ライン分の画像データは、メインメモリ２のＡ００１ｈ〜Ａ３２０ｈに格納され、次の水平ライン分の画像データはＡ３２１ｈ〜Ａ６４０ｈに格納されている。
【００２１】
さらに、本実施形態に係る情報処理装置１には、図２に示すように、メインメモリ２とビデオメモリ３との双方にアクセス可能な転送回路１１が設けられており、当該転送回路１１は、ＣＰＵ６などの外部回路からの指示に従って、画像中の指示された矩形領域Ａ（図５参照）のデータを、メインメモリ２からビデオメモリ３へ、あるいは、ビデオメモリ３からメインメモリ２へ転送することができる。
【００２２】
本実施形態に係る転送回路１１は、予め転送指示として、矩形領域の幅（画素数）および高さ（ライン数）と、転送元のメモリにおける開始アドレス、および、転送元のメモリにおける各ラインの開始アドレスの差と、転送先のメモリにおける開始アドレス、および、転送先のメモリにおける各ラインの開始アドレスの差とを受け取っており、矩形領域を構成する水平ライン毎に転送指示を受け取らなくても、矩形領域を構成する各水平ライン毎に、以下の処理、すなわち、転送元および転送先のメモリの双方における当該ラインの開始アドレスの算出処理と、当該ラインを構成する各画素のデータの転送処理とを繰り返すことができる。これにより、転送回路１１は、矩形領域の位置および大きさ、並びに、転送元および転送先のメモリにおける各ラインの開始アドレスの差に拘わらず、矩形領域を構成する水平ライン毎に転送指示を受け取ることなく、矩形領域のデータを転送することができる。
【００２３】
具体的には、本実施形態に係る転送回路１１は、図１に示すように、矩形領域の幅（画素数）および高さ（ライン数）をそれぞれ格納する幅および高さレジスタ２１・２２と、メインメモリ２における矩形領域の開始アドレス、および、メインメモリ２における隣接する水平ラインの開始アドレス同士の差を、それぞれ格納する開始アドレスおよびアドレス差レジスタ２３・２４と、ビデオメモリ３における矩形領域の開始アドレス、および、ビデオメモリ３における隣接する水平ラインの開始アドレス同士の差を、それぞれ格納する開始アドレスおよびアドレス差レジスタ２５・２６とを備えている。なお、上記各アドレス差レジスタ２４・２６が特許請求の範囲に記載の転送元および転送先アドレス差レジスタにそれぞれ対応する。
【００２４】
ここで、上記各開始アドレスレジスタ２３・２５に格納される値（矩形領域の開始アドレス）は、メインメモリ２およびビデオメモリ３において、矩形領域のデータ転送全体の開始アドレスであって、本実施形態では、一例として、矩形領域の左上を基点にしてデータ転送を開始しているので、上記矩形領域の開始アドレスは、矩形領域の左上の画素のデータが格納されるアドレスになる。
【００２５】
さらに、上記転送回路１１には、メインメモリ２の指示されたアドレスとビデオメモリ３の指示されたアドレスとの間で、データ転送を行う転送処理部（転送処理回路）３１と、上記幅および高さレジスタ２１・２２の値を参照して、当該転送処理部３１によるデータ転送が終了する毎に、転送対象となる画素の位置している水平ラインにおいて当該画素が矩形領域の終端（この例では、右端）に到達したか否かと、矩形領域全体のデータ転送が終了したか否かとを判定し、判定結果を制御信号Ｓ１として出力すると共に、矩形領域のデータ転送が終了していないと判定した場合は、上記転送処理部３１へ次のデータ転送を指示する転送制御部（判定回路）３２と、上記開始アドレスおよびアドレス差レジスタ２３・２４に格納された値と矩形領域の転送（ＢｉｔＢｌｔ）が指示されたか否かと上記制御信号Ｓ１と上記転送処理部３１からの制御信号Ｓ５が転送元となるメモリ（この場合は、メインメモリ２）からの読み出し終了を示しているか否かとに基づいて、メインメモリ２において次にデータを転送するアドレスを算出し、当該アドレスを示すアドレス信号Ａ１を上記転送処理部３１へ出力するメインメモリアドレス算出部（転送元アドレス算出回路）３３と、上記開始アドレスおよびアドレス差レジスタ２５・２６に格納された値と矩形領域の転送が指示されたか否かと上記制御信号Ｓ１とに基づいて、ビデオメモリ３において次にデータを転送するアドレスを算出し、当該アドレスを示すアドレス信号Ａ２を上記転送処理部３１へ出力するビデオメモリアドレス算出部（転送先アドレス算出回路）３４とを備えている。
【００２６】
なお、上記各アドレス算出部３３・３４は、矩形領域の転送開始指示を直接受け取ってもよいが、本実施形態では、転送制御部３２は、矩形領域の転送開始指示を受け取り、制御信号Ｓ２によって、上記各アドレス算出部３３・３４へ伝えている。また、転送制御部３２は、上記転送制御部３２への転送指示を、各アドレス算出部３３・３４を介して通知してもよいが、本実施形態では、転送制御部３２は、転送処理部３１への制御信号Ｓ３によってデータ転送を指示している。また、転送制御部３２は、転送処理部３１の入出力信号を監視したり、予め定められた時間が経過したか否かを判定したりして、当該転送処理部３１によるデータ転送が終了したか否かを検出してもよいが、本実施形態では、データ転送を終了する度に、転送処理部３１が転送終了を示す制御信号Ｓ４を出力しており、転送制御部３２は、当該制御信号Ｓ４に基づいて、転送処理部３１によるデータ転送が終了したか否かを検出している。なお、本実施形態では、後述する制御部４３が制御信号Ｓ２およびＳ３を生成している。
【００２７】
上記転送制御部３２は、図６に示すように、転送対象となる画素の位置している水平ライン（現水平ライン）において、これまでに転送した画素数を記憶する幅カウンタ４１と、これまでに転送した水平ライン数を記憶するライン数カウンタ４２と、当該両カウンタ４１・４２のカウント値、矩形領域のデータ転送が指示されたか否かを示す制御、および、転送処理部３１によるデータ転送が終了したことを示す信号（この例では、制御信号Ｓ４）に基づいて、当該転送処理部３１によるデータ転送が終了する毎に、上記制御信号Ｓ１を生成すると共に、各カウンタ４１・４２を制御する制御部４３とを備えている。
【００２８】
上記制御部４３は、例えば、ＣＰＵ６などの外部回路から、矩形領域のデータ転送が指示された場合、上記各カウンタ４１・４２をリセットできる。また、上記制御部４３は、制御信号Ｓ４を受け取る度に、上記各カウンタ４１・４２のカウント値と、上記両レジスタ２１・２２の値とをそれぞれ比較して、現水平ラインにおいて矩形領域の終端に到達したか否かと、矩形領域全体のデータ転送が終了したか否かとを示す制御信号Ｓ１を生成できる。
【００２９】
さらに、上記制御部４３は、終端に到達していないと判定した場合、上記幅カウンタ４１のカウント値をデータ転送した画素数だけインクリメントすると共に、終端に到達したと判定した場合は、上記幅カウンタ４１をリセットできる。なお、本実施形態では、転送処理部３１は、１画素ずつ、データ転送しているので、制御部４３は、幅カウンタ４１を１インクリメントする。
【００３０】
また、上記制御部４３は、終端に到達したと判定し、しかも、矩形領域全体のデータ転送が終了していないと判定した場合は、上記ライン数カウンタ４２のカウント値を１インクリメントできる。
【００３１】
一方、上記メインメモリアドレス算出部３３は、図７に示すように、現水平ラインにおける矩形領域の始端（この例では、左端）のアドレス（ライン開始アドレス）を記憶するライン開始アドレスレジスタ５１と、転送対象とする画素のメインメモリ２におけるアドレス（現アドレス）を記憶すると共に、記憶されたアドレスを上記アドレス信号Ａ１として出力する現アドレスカウンタ５２と、これらの部材５１・５２および上記各レジスタ２３・２４の値、転送制御部３２からの制御信号Ｓ１・Ｓ２、並びに、転送処理部３１からの制御信号Ｓ５に基づき、上記各部材５１・５２を制御する制御部５３とを備えている。
【００３２】
上記制御部５３は、上記制御信号Ｓ２によって、矩形領域の転送が指示された場合、上記開始アドレス２３の値を、上記ライン開始アドレスレジスタ５１および現アドレスカウンタ５２に格納できる。
【００３３】
また、上記制御信号Ｓ１が、現水平ラインの終端に到達し、しかも、矩形領域の転送が終了していないことを示している場合、上記制御部５３は、上記ライン開始アドレスレジスタ５１に格納されている値を、アドレス差レジスタ２４に格納されている値の分だけ増加させると共に、現アドレスカウンタ５２に、増加後の値を格納できる。
【００３４】
さらに、上記制御部５３は、転送処理部３１からの制御信号Ｓ５が転送元となるメモリ（この場合は、メインメモリ２）からの読み出し終了を示している場合、上記現アドレスカウンタ５２のカウント値を、転送処理部３１によってデータ転送されたアドレスの分だけ、インクリメントさせることができる。なお、本実施形態では、転送処理部３１がメインメモリ２の１アドレス分ずつデータ転送しているので、上記制御部５３は、現アドレスカウンタ５２のカウント値を１ずつインクリメントする。
【００３５】
なお、上記現アドレスカウンタ５２は、転送処理部３１によるデータ転送の度に、インクリメントできればよいので、上記制御部５３は、転送処理部３１からの制御信号Ｓ５を参照せず、転送制御部３２からの制御信号Ｓ１が、そのラインの終端への未到達と、矩形領域全体の転送の未終了とを示している場合に、現アドレスカウンタ５２をインクリメントしてもよい。ただし、本実施形態では、現アドレスカウンタ５２の動作時間をより長く確保するため、転送処理部３１は、転送元となるメインメモリ２からの読み出し終了を示す制御信号Ｓ５を出力し、制御部５３は、制御信号Ｓ５が真になった時点で、現アドレスカウンタ５２をインクリメントしている。
【００３６】
同様に、上記ビデオメモリアドレス算出部３４は、図８に示すように、現水平ラインのライン開始アドレスを記憶するライン開始アドレスレジスタ６１と、ビデオメモリ３における現アドレスを記憶すると共に、記憶されたアドレスを上記アドレス信号Ａ２として出力する現アドレスカウンタ６２と、これらの部材６１・６２および上記各レジスタ２５・２６の値、および、転送制御部３２からの制御信号Ｓ１・Ｓ２に基づいて、上記各部材６１・６２を制御する制御部６３とを備えている。
【００３７】
上記制御部６３は、上記制御信号Ｓ２によって、矩形領域の転送が指示された場合、上記開始アドレス２５の値を、上記ライン開始アドレスレジスタ６１および現アドレスカウンタ６２に格納できる。
【００３８】
また、上記制御信号Ｓ１が、現水平ラインの終端に到達し、しかも、矩形領域の転送が終了していないことを示している場合、上記制御部６３は、上記ライン開始アドレスレジスタ６１に格納されている値を、アドレス差レジスタ２６に格納されている値の分だけ増加させると共に、現アドレスカウンタ６２に、増加後の値を格納できる。
【００３９】
さらに、上記制御部６３は、転送制御部３２からの制御信号Ｓ１が、そのラインの終端への未到達と、矩形領域全体の転送の未終了とを示している場合、上記現アドレスカウンタ６２のカウント値を、転送処理部３１によってデータ転送されたアドレスの分だけ、インクリメントさせることができる。なお、本実施形態では、転送処理部３１がビデオメモリ３の１アドレス分ずつデータ転送しているので、上記制御部６３は、現アドレスカウンタ６２のカウント値を１ずつインクリメントする。
【００４０】
上記構成では、ＣＰＵ６は、矩形領域の転送に先立って、上記幅および高さレジスタ２１・２２に、矩形領域の幅および高さを格納する。さらに、ＣＰＵ６は、矩形領域の転送に先立って、メインメモリ２およびビデオメモリ３における矩形領域の開始アドレスを、各開始アドレスレジスタ２３・２５に格納する。また、アドレス差レジスタ２４・２６の値は、予め定められた固定値であってもよいが、本実施形態では、ＣＰＵ６が、矩形領域の転送に先立って、メインメモリ２およびビデオメモリ３のメモリマップに合わせて、アドレス差レジスタ２４・２６の値を設定する。
【００４１】
各レジスタ２１〜２６に値が設定され、ＣＰＵ６が矩形領域のデータ転送の開始を指示すると、転送制御部３２は、各アドレス算出部３３・３４へ、転送開始が指示されたことを示す制御信号Ｓ２を出力する。これに応じて、各アドレス算出部３３・３４は、次にデータを転送するアドレスとして、開始アドレス２３・２５の値をそれぞれ示すアドレス信号Ａ１・Ａ２を出力する。
【００４２】
さらに、転送処理部３１は、転送制御部３２からの制御信号Ｓ３に応じて、メインメモリ２のうち、メインメモリアドレス算出部３３からのアドレス信号Ａ１の示すアドレスに格納されたデータを読み出すと共に、読み出しが終了すると、読み出し終了を示す制御信号Ｓ５をメインメモリアドレス算出部３３へ出力する。また、転送処理部３１は、読み出したデータを、ビデオメモリ３のうち、ビデオメモリアドレス算出部３４からのアドレス信号Ａ２の示すアドレスへ当該データを書き込むと共に、書き込みが終了すると、書き込み終了を示す制御信号Ｓ４を転送制御部３２へ出力する。
【００４３】
一方、転送処理部３１からの制御信号Ｓ４によって、転送処理部３１がデータの転送を出力したことを検出すると、転送制御部３２は、現水平ラインの終端に到達したか否かと、矩形領域のデータ転送が終了したか否かを示す制御信号Ｓ１を出力する。
【００４４】
ここで、転送処理部３１がデータを転送しても、現水平ラインの終端に到達しない場合は、上記転送制御部３２は、転送処理部３１がデータ転送する度に、終端への未到達と、矩形領域全体の転送の未終了とを示す制御信号Ｓ１を出力する。
【００４５】
したがって、各アドレス算出部３３・３４は、転送処理部３１がデータ転送する度に、以下の処理、すなわち、転送したデータが各メモリ２・３に占めるアドレスの分だけ、各メモリ２・３の現アドレスを変更する処理を繰り返す。
【００４６】
ここで、メインメモリ２とビデオメモリ３とのそれぞれに対応して、現アドレスカウンタ５２・６２が設けられており、各現アドレスカウンタ５２・６２のインクリメント量は、転送したデータが各メモリ２・３に占めるアドレスに合わせて設定されている。したがって、画素のデータをメインメモリ２に格納する際のデータ構造（メモリ構成；例えば、メインメモリ２において、各画素を示すデータが占有するアドレスの数など）と、画素のデータをビデオメモリ３に格納する際のデータ構造とが互いに異なっており、しかも、転送処理部３１がデータ転送毎にＣＰＵ６からの指示を受けていないにも拘わらず、転送処理部３１は、何ら支障なく、各画素のデータを、メインメモリ２からビデオメモリ３に転送できる。
【００４７】
現水平ラインに関するデータ転送が繰り返され、現水平ラインの終端に到達すると、上記転送制御部３２は、終端への到達を示す制御信号Ｓ１を出力する。
【００４８】
この場合、各アドレス算出部３３・３４は、それぞれに対応するアドレス差レジスタ２４・２６を参照して、次の水平ラインのライン開始アドレスを決定すると共に、各ライン開始アドレスをそれぞれ示すアドレス信号Ａ１・Ａ２を出力する。
【００４９】
ここで、上述したように、本実施形態に係る転送回路１１では、メインメモリ２に対応するアドレス差レジスタ２４およびライン開始アドレスレジスタ５１とは別に、ビデオメモリ３に対応するアドレス差レジスタ２６およびライン開始アドレスレジスタ６１が設けられている。したがって、画素のデータをメインメモリ２に格納する際のデータ構造（メモリ構成；例えば、隣接する水平ラインの開始アドレス同士の差など）と、画素のデータをビデオメモリ３に格納する際のデータ構造とが互いに異なっており、しかも、転送処理部３１が各水平ラインのデータ転送毎にＣＰＵ６からの指示を受けていないにも拘わらず、転送処理部３１は、何ら支障なく、各画素のデータを、メインメモリ２からビデオメモリ３に転送できる。
【００５０】
上記各水平ラインのデータ転送は、矩形領域の高さ分の水平ラインが転送されるまで繰り返され、矩形領域の高さ分の水平ラインのデータ転送が終了すると、転送制御部３２は、例えば、矩形領域全体のデータ転送が終了したことを示す制御信号をＣＰＵ６へ出力するなどして、矩形領域全体のデータ転送が終了したことをＣＰＵ６に通知する。
【００５１】
このように、本実施形態に係る転送回路１１では、メインメモリ２に対応するアドレス差レジスタ２４、ライン開始アドレスレジスタ５１および現アドレスカウンタ５２とは別に、ビデオメモリ３に対応するアドレス差レジスタ２６、ライン開始アドレスレジスタ６１および現アドレスカウンタ６２が設けられているので、両メモリ２・３に画素のデータを格納する際のデータ構造が互いに異なっており、しかも、矩形領域のデータ転送を開始してから終了するまでの間に、ＣＰＵ６が転送回路１１に指示をしていないにも拘わらず、任意の矩形領域内の画素のデータを、メインメモリ２とビデオメモリ３との間で転送できる。したがって、ＣＰＵ６の負担を軽減できる。
【００５２】
さらに、例えば、各水平ラインの終了時点など、矩形領域のデータ転送中の時点に、ＣＰＵ６が転送回路１１へ指示する構成とは異なり、ＣＰＵ６が転送回路１１へ指示することに起因するオーバーヘッドの発生を防止できる。この結果、メモリ構成の互いに異なるメモリ２・３間で、任意の矩形領域内のデータを高速にデータ転送できる。
【００５３】
加えて、本実施形態に係る転送回路１１では、上記アドレス差レジスタ２４・２６は、ＣＰＵ６から値を設定可能に構成されている。したがって、メモリ構成が変化して、隣接する水平ライン間の開始アドレス差が変化する場合であっても、各レジスタ２４・２６の値を適切に設定し直すことによって、転送回路１１は、何ら支障なく、任意の矩形領域内のデータを高速にデータ転送できる。
【００５４】
以下では、図９〜図１２を参照しながら、転送回路１１の各部材３１〜３４の詳細な回路構成例について説明する。
【００５５】
すなわち、図９に示す構成例では、メインメモリ２およびビデオメモリ３が、ＤＲＡＭ（Dynamic Randam Acess Memory ）によって実現されており、転送処理部３１には、それぞれの読み書きを制御するためのＤＲＡＭコントローラ１０１および１０２と、メインメモリ２のデータ端子に出力されたデータをラッチし、ビデオメモリ３のデータ端子へ出力するバッファ１０３と、バッファ１０３がメインメモリ２の出力したデータをラッチするまでの間、ＤＲＡＭコントローラ１０２がバッファ１０３のデータをビデオメモリ３への書き込みを遅延させるタイミング制御回路１０４とを備えている。
【００５６】
また、本構成例に係る転送回路１１は、矩形領域の転送中、メインメモリ２およびビデオメモリ３へのアクセス権を占有し続けるのではなく、ＣＰＵ６等の外部回路がメインメモリ２またはビデオメモリ３にアクセスする際には、矩形領域のデータ転送中であっても、適切なタイミングで、データ転送を中断し、メインメモリ２またはビデオメモリ３へのアクセスを許可するように構成されている。
【００５７】
具体的には、上記転送処理部３１は、メインメモリ２へのアクセス権を調停する調停回路１１１と、当該調停回路１１１からの制御信号ＲＥＱ１＿ＯＫが転送回路１１へアクセス権を与えていること（矩形領域のデータ転送を許可していること）を示している間は、上記メインメモリアドレス算出部３３からのアドレス信号Ａ１を選択し、残余の間は、外部バスからのアドレス信号を選択すると共に、選択した方を、ＤＲＡＭコントローラ１０１のＡｄｄｒｅｓｓ端子へ出力するマルチプレクサ１１２とを備えている。さらに、上記転送処理部３１には、上記外部バスからメインメモリ２のデータ端子までの間に配され、ＤＲＡＭコントローラ１０１への書き込み制御信号Ｗｒｉｔｅ＿Ｌが読み出しを指示している間にのみ、データの通過を遮断する３ステート・バッファ１１３と、調停回路１１１からの制御信号ＲＥＱ１＿ＯＫが転送回路１１へアクセス権を与えていないことを示しており、しかも、上記外部バスからの制御信号が書き込みを指示している場合にのみ、ＤＲＡＭコントローラ１０１へ書き込みを指示する書き込み制御信号Ｗｒｉｔｅ＿Ｌを出力し、残余の場合は、読み出しを指示する書き込み制御信号Ｗｒｉｔｅ＿Ｌを出力する論理回路１１４とが設けられている。なお、本実施形態では、転送回路１１へアクセス権を与えている場合、制御信号ＲＥＱ１＿ＯＫが真であり、外部からの制御信号および書き込み制御信号Ｗｒｉｔｅ＿Ｌが偽の場合は、読み出しを意味している。したがって、上記論理回路１１４は、ＯＲ素子によって実現されている。
【００５８】
また、本構成例に係る転送回路１１は、矩形領域の転送中、メインメモリ２およびビデオメモリ３へのアクセス権を占有し続けるのではなく、ＣＰＵ６等の外部回路がメインメモリ２またはビデオメモリ３にアクセスする際には、矩形領域のデータ転送中であっても、適切なタイミングで、データ転送を中断し、メインメモリ２またはビデオメモリ３へのアクセスを許可するように構成されている。
【００５９】
同様に、上記転送処理部３１は、ビデオメモリ３へのアクセス権を調停する調停回路１２１と、当該調停回路１２１からの制御信号ＲＥＱ１＿ＯＫが転送回路１１へアクセス権を与えていること（矩形領域のデータ転送を許可していること）を示している間は、上記ビデオメモリアドレス算出部３４からのアドレス信号Ａ２を選択し、残余の間は、外部バスからのアドレス信号を選択すると共に、選択した方を、ＤＲＡＭコントローラ１０２のＡｄｄｒｅｓｓ端子へ出力するマルチプレクサ１２２とを備えている。さらに、上記転送処理部３１には、上記外部バスからビデオメモリ３のデータ端子までの間に配され、ＤＲＡＭコントローラ１０２への書き込み制御信号Ｗｒｉｔｅ＿Ｌが読み出しを指示している間にのみ、データの通過を遮断する３ステート・バッファ１２３と、調停回路１２１からの制御信号ＲＥＱ１＿ＯＫが転送回路１１へアクセス権を与えていないことを示しており、しかも、上記外部バスからの制御信号が読み出しを指示している場合にのみ、ＤＲＡＭコントローラ１０２へ読み出しを指示する書き込み制御信号Ｗｒｉｔｅ＿Ｌを出力し、残余の場合は、書き込みを指示する書き込み制御信号Ｗｒｉｔｅ＿Ｌを出力する論理回路１２４とが設けられている。
【００６０】
なお、本実施形態では、転送回路１１へアクセス権を与えている場合、制御信号ＲＥＱ１＿ＯＫが真であり、外部からの制御信号および書き込み制御信号Ｗｒｉｔｅ＿Ｌが偽の場合は、読み出しを意味している。また、外部からの制御信号は、インバータによって反転された後、論理回路１２４に印加されている。したがって、上記論理回路１２４は、ＮＯＲ素子によって実現されている。
【００６１】
さらに、上記転送処理部３１には、当該調停回路１２１からの制御信号ＲＥＱ１＿ＯＫが転送回路１１へアクセス権を与えていることを示している間は、上記バッファ１０３からのデータ信号を選択し、残余の間は、外部バスからのデータ信号を選択すると共に、選択した方を、上記３ステート・バッファ１２３へ出力するマルチプレクサ１２５も設けられている。
【００６２】
また、本構成例に係るタイミング制御回路１０４は、調停回路１１１からの制御信号ＲＥＱ１＿ＯＫを反転および遅延させることによって、転送回路１１へのアクセス権要求の有無を示すＲＥＱ１を生成し、上記調停回路１２１へ印加している。
【００６３】
さらに、本構成例では、上述した転送制御部３２からの制御信号Ｓ３は、転送回路１１へのアクセス権要求の有無を示すＲＥＱ１として、上記調停回路１２１へ印加されている。また、転送処理部３１に設けられたタイミング制御回路１２６は、上記調停回路１２１からの制御信号ＲＥＱ１＿ＯＫを、反転および遅延した後、転送処理部３１によるデータ転送の終了を示す、パルス状の制御信号Ｓ４として出力する。なお、制御信号Ｓ４を受け取った転送制御部３２は、新たな制御信号Ｓ３を出力するので、当該制御信号Ｓ３を受け付けた調停回路１１１は、ＤＲＡＭコントローラ１０１へ指示して、バッファ１０３のデータを書き換える。この結果、上記タイミング制御回路１２６の遅延時間が短いと、調停回路１２１がＤＲＡＭコントローラ１０２へ矩形領域のためのデータ転送を指示してから、ＤＲＡＭコントローラ１０２がビデオメモリ３にバッファ１０３のデータを書き込むまでの間に、バッファ１０３のデータが書き換えられてしまう。したがって、上記遅延時間は、調停回路１２１がＤＲＡＭコントローラ１０２へ矩形領域のためのデータ転送を指示してから、ＤＲＡＭコントローラ１０２がビデオメモリ３にバッファ１０３のデータを書き込むまでの間に、バッファ１０３のデータが変更されないように設定されている。
【００６４】
また、上記外部バスからの信号であって、メインメモリ２またはビデオメモリ３へのアクセス権の要求を示す信号は、それぞれ、ワンショット・マルチバイブレータによって遅延された後、調停回路１１１・１２１に、ＲＥＱ０として入力されている。また、ＤＲＡＭコントローラ１０１・１０２からのＢｕｓｙ信号は、それぞれ対応する調停回路１１１・１２１のＢｕｓｙ端子に入力されており、各調停回路１１１・１２１から出力された、アクセス許可を示すＡｃｃｅｓｓ信号は、それぞれ対応するＤＲＡＭコントローラ１０１・１０２のＡｃｃｅｓｓ端子に入力されている。
【００６５】
これにより、調停回路１１１は、転送制御部３２からの制御信号Ｓ３と、外部バスからＲＥＱ０端子へ入力されている信号とに基づいて、転送制御部３２と外部バスとのそれぞれがメインメモリ２へのアクセスを要求しているか否かを判定できる。
【００６６】
また、調停回路１１１は、ＤＲＡＭコントローラ１０１からのＢｕｓｙ信号が偽である期間に（ＤＲＡＭコントローラ１０１が空いている期間）に、ＲＥＱ０・ＲＥＱ１端子の少なくとも一方が真である場合（アクセスを要求している場合）は、予め定められた手順で、アクセスを要求しているものうちのいずれか１つにアクセス権を与え、転送回路１１にアクセス権を与えているか否かを示す制御信号ＲＥＱ１＿ＯＫを出力できる。また、転送回路１１または外部バスに接続された回路の一方にアクセス権を与えた場合は、アクセスを許可することを示すＡｃｃｅｓｓ信号をＤＲＡＭコントローラ１０１へ出力できる。
【００６７】
同様に、調停回路１２１は、タイミング制御回路１０４からＲＥＱ１端子へ入力されている信号と、外部バスからＲＥＱ０端子へ入力されている信号とに基づいて、転送制御部３２と外部バスとのそれぞれがビデオメモリ３へのアクセスを要求しているか否かを判定できる。
【００６８】
また、調停回路１２１は、ＤＲＡＭコントローラ１０２からのＢｕｓｙ信号が偽である期間に（ＤＲＡＭコントローラ１０２が空いている期間）に、ＲＥＱ０・ＲＥＱ１端子の少なくとも一方が真である場合（アクセスを要求している場合）は、予め定められた手順で、アクセスを要求しているものうちのいずれか１つにアクセス権を与え、転送回路１１にアクセス権を与えているか否かを示す制御信号ＲＥＱ１＿ＯＫを出力できる。また、転送回路１１または外部バスに接続された回路の一方にアクセス権を与えた場合は、アクセスを許可することを示すＡｃｃｅｓｓ信号をＤＲＡＭコントローラ１０２へ出力できる。
【００６９】
上記構成では、外部からのアクセス要求がない場合、調停回路１１１は、転送制御部３２からの制御信号Ｓ３が真になると、ＤＲＡＭコントローラ１０１が空いている期間に、転送回路１１にアクセス権を与えていることを示すＡｃｃｅｓｓ信号およびＲＥＱ１＿ＯＫ信号を出力する。これにより、マルチプレクサ１１２は、アドレス信号Ａ１をＤＲＡＭコントローラ１０１へ出力し、論理回路１１４は、ＤＲＡＭコントローラ１０１へ読み出しを指示すると共に、３ステート・バッファ１１３は、外部バスからメインメモリ２へのデータを遮断する。この結果、メインメモリ２から、アドレス信号Ａ１の示すアドレスに格納されたデータが出力され、バッファ１０３にラッチされる。
【００７０】
当該バッファ１０３にデータがラッチされた後、調停回路１１１からの制御信号ＲＥＱ１＿ＯＫは、調停回路１２１のＲＥＱ１端子に入力される。したがって、調停回路１２１は、転送回路１１にアクセス権を与えていることを示すＡｃｃｅｓｓ信号およびＲＥＱ１＿ＯＫ信号を出力する。これにより、マルチプレクサ１２２は、アドレス信号Ａ２をＤＲＡＭコントローラ１０２へ出力し、論理回路１２４は、ＤＲＡＭコントローラ１０２へ書き込みを指示すると共に、マルチプレクサ１２５および３ステート・バッファ１２３は、バッファ１０３からのデータをビデオメモリ３のデータ端子へ入力する。この結果、メインメモリ２からのデータは、ビデオメモリ３のうち、アドレス信号Ａ２の示すアドレスに格納される。さらに、タイミング制御回路１２６は、上記調停回路１２１からの制御信号ＲＥＱ１＿ＯＫを遅延および反転させ、パルス状の制御信号Ｓ４として出力する。
【００７１】
一方、図１０に示すように、本構成例に係る転送制御部３２の制御部４３は、幅レジスタ２１の値と幅カウンタ４１のカウント値とを比較して、一致／不一致を判定するコンパレータ２０１と、高さレジスタ２２値とライン数カウンタ４２のカウント値とを比較して、一致／不一致を判定するコンパレータ２０２と、コンパレータ２０１の出力および転送処理部３１からの制御信号Ｓ４に基づいて、現水平ラインにおける矩形領域の終端へ到達したか否かを示す制御信号Ｓ１１を生成する論理回路２０３と、上記両コンパレータ２０１・２０２の出力および上記制御信号Ｓ４に基づいて、上記終端への到達および矩形領域全体の転送の未終了の双方が成立しているか否かを示す制御信号Ｓ１２を生成する論理回路２０４と、上記両コンパレータ２０１・２０２の出力および上記制御信号Ｓ４に基づいて、上記終端への到達および矩形領域全体の転送の終了の双方が成立しているか否かを示す制御信号Ｓ１３を生成する論理回路２０５とを備えている。
【００７２】
これにより、制御部４３は、転送処理部３１がデータ転送をする度に、制御信号Ｓ１としての制御信号Ｓ１１およびＳ１２を出力できる。なお、当該制御信号Ｓ１２は、上述の制御信号Ｓ１の一部として、各アドレス算出部３３・３４と転送制御部３２とで共用されている回路２２１・２２２（いずれも後述）へ入力されている。
【００７３】
上記論理回路２０３は、コンパレータ２０１の出力が不一致を示しているか否かを、転送処理部３１から制御信号Ｓ４のパルスが印加されている期間中、出力する回路であって、論理回路２０３の出力する制御信号Ｓ１１は、上述の制御信号Ｓ１の一部として、ビデオメモリアドレス算出部３４へ出力される。また、上記制御信号Ｓ１１は、幅カウンタ４１のインクリメント端子ＩＮＣへ入力されている。
【００７４】
また、上記論理回路２０４は、コンパレータ２０１の出力が一致を示すという条件と、コンパレータ２０２の出力が不一致を示すという条件との双方が成立しているか否かを、転送処理部３１から制御信号Ｓ４のパルスが印加されている期間中、出力する回路であって、論理回路２０４の出力する制御信号Ｓ１２は、ライン数カウンタ４２のインクリメント端子ＩＮＣへ入力されている。
【００７５】
さらに、上記論理回路２０５は、コンパレータ２０１・２０２の出力の双方が一致を示しているか否かを、転送処理部３１から制御信号Ｓ４のパルスが印加されている期間中、出力する回路であって、論理回路２０５の出力する制御信号Ｓ１３は、後述する転送状態レジスタ２１１へリセット端子Ｒに入力されている。
【００７６】
一方、上記転送制御部３２の制御部４３は、ＣＰＵ６などの外部回路から、外部バスを介してアクセス可能な転送状態レジスタ２１１を備えており、上記外部回路は、当該転送状態レジスタ２１１をセットすることによって、転送回路１１へ矩形領域の転送を指示できる。
【００７７】
また、上記論理回路２０５は、矩形領域の転送が終了した場合、上記転送状態レジスタ２１１をリセットすると共に、転送状態レジスタ２１１の出力は、バッファを介して外部バスへ出力されている。これにより、上記外部回路は、転送状態レジスタ２１１の出力を読み出すことによって、矩形領域の転送が終了したか否かを確認することができる。
【００７８】
さらに、上記転送状態レジスタ２１１の出力信号は、例えば、ワンショット・マルチバイブレータなどによって実現されるタイミング制御回路２１２によって遅延された後、パルス状の制御信号Ｓ２として、上述した各アドレス算出部３３・３４へ出力される。これにより、制御部４３は、矩形領域の転送が指示された場合に制御信号Ｓ２を出力できる。また、当該制御信号Ｓ１２は、インバータによって反転された後、ライン数カウンタ４２のローアクティブなリセット端子に入力される。
【００７９】
また、上記制御部４３は、上記制御信号Ｓ２と上記制御信号Ｓ１２との論理和を算出するＯＲ回路２２１と、ＯＲ回路２２１の出力を反転して、上記幅カウンタ４１のローアティブなリセット端子に入力するインバータ２２２とを備えている。これらの回路２２１・２２２は、図１に示す両アドレス算出部３３・３４の一部でもあって、インバータ２２２の出力信号Ｓ１４は、各アドレス算出部３３・３４のライン開始アドレスレジスタ５１・６１および現アドレスカウンタ５２・６２へ、負論理のＬｏａｄ信号として入力されている。
【００８０】
さらに、上記制御部４３には、例えば、ワンショット・マルチバイブレータなどによって実現され、上記ＯＲ回路２２１の出力信号を遅延するタイミング制御回路２３１と、当該タイミング制御回路２３１の出力信号と、上記制御信号Ｓ１１との論理和を算出し、制御信号Ｓ３として出力するＯＲ回路２３２とが設けられている。
【００８１】
これにより、制御部４３は、矩形領域のデータ転送が指示された場合、および、転送処理部３１がデータ転送を終了する度に、転送処理部３１へ新たな転送を指示する制御信号Ｓ３を出力できる。
【００８２】
一方、図１１に示すように、本構成例に係るメインメモリアドレス算出部３３の制御部５３は、ライン開始アドレスレジスタ５１の値とアドレス差レジスタ２４の値とを加算する加算器３０１と、上記転送制御部３２からの制御信号Ｓ２に基づいて、当該加算器３０１の出力値と開始アドレスレジスタ２３の出力値との一方を選択して、ライン開始アドレスレジスタ５１および現アドレスカウンタ５２へ入力するマルチプレクサ３０２とを備えている。
【００８３】
上記構成において、矩形領域の転送が開始された場合、転送制御部３２から制御信号Ｓ２が真になる。これに応じて、上記マルチプレクサ３０２は、開始アドレスレジスタ２３の値を上記両回路５１・５２に入力する。
【００８４】
また、制御信号Ｓ２が真になった後、図１０に示すＯＲ回路２２１・２２３およびタイミング制御回路２３１の遅延時間だけ遅延して、負論理の制御信号Ｓ１４が真（Ｌｏｗ）になる。この時点では、上記両回路５１・５２の入力端子Ｄには、開始アドレスレジスタ２３の値が入力されているので、上記両回路５１・５２は、当該値を記憶する。なお、制御信号Ｓ２のパルス幅は、少なくとも、制御信号Ｓ２が真になってから、開始アドレスレジスタ２３の値が上記両回路５１・５２に格納されるまでの間、制御信号Ｓ２が真であり続けるように設定されている。
【００８５】
また、上記現アドレスカウンタ５２には、転送処理部３１から制御信号Ｓ５が入力されているので、制御信号Ｓ５が入力される度に、上記現アドレスカウンタ５２の値は、インクリメントされる。
【００８６】
一方、矩形領域の転送開始が指示され、パルス状の制御信号Ｓ２が出力された後は、制御信号Ｓ２は、常時、偽に保たれている。この状態では、マルチプレクサ３０１は、加算器３０１の出力を選択しているので、上記両回路５１・５２の入力端子Ｄには、ライン開始アドレスレジスタ５１の値とアドレス差レジスタ２４の値とを加算した結果が入力されている。
【００８７】
この状態で、転送制御部３２の論理回路２０３が、現水平ラインにおいて矩形領域の終端に到達したと判断し、制御信号Ｓ１２を真にすると、制御信号Ｓ１４が真になる。したがって、上記両回路５１・５２は、新たに、上記記加算結果を記憶する。
【００８８】
同様に、本構成例に係るビデオメモリアドレス算出部３４の制御部６３は、図１２に示すように、ライン開始アドレスレジスタ６１の値とアドレス差レジスタ２６の値とを加算する加算器４０１と、上記転送制御部３２からの制御信号Ｓ２に基づいて、当該加算器４０１の出力値と開始アドレスレジスタ２５の出力値との一方を選択して、ライン開始アドレスレジスタ６１および現アドレスカウンタ１２へ入力するマルチプレクサ４０２とを備えている。
【００８９】
なお、ビデオメモリアドレス算出部３４に関連する各部材２５・２６・６１・６２・３０１・３０２の動作は、以下の点、すなわち、現アドレスカウンタ６２のインクリメント端子ＩＮＣに、制御信号Ｓ５に代えて、制御信号Ｓ１１が入力されており、当該現アドレスカウンタ６２のカウント値が、制御信号Ｓ１１が真になる度にインクリメントされる点を除けば、メインメモリアドレス算出部３３に関連する各部材２３・２４・５１・５２・４０１・４０２の動作と同一なので、これらの説明を省略する。
【００９０】
〔第２の実施形態〕
ところで、上記第１の実施形態では、転送処理部３１が画素のデータを１ワードずつ伝送する場合を例にして説明した。これに対して、本実施形態では、メインメモリ２およびビデオメモリ３がバースト転送可能であり、転送処理部が複数ワードずつバースト転送する構成について説明する。
【００９１】
なお、後述するように、転送処理部が複数画素分のデータをバースト転送してもよいが、以下では、１画素分のデータが、メインメモリ２およびビデオメモリ３では、複数ワードのデータに対応している場合を例にして説明する。
【００９２】
すなわち、図１に示すように、本実施形態に係るメインメモリ２ａおよびビデオメモリ３ａは、第１の実施形態に係るメインメモリ２およびビデオメモリ３と略同様であるが、１画素分のデータが、複数のアドレスに渡って書き込まれている。
【００９３】
また、本実施形態に係る転送回路１１ａは、図１に示す転送回路１１と略同様であるが、各アドレス算出部３３ａ・３４ａの現アドレスカウンタ５２ａ・５２ａの増分が、それぞれ、メインメモリ２ａにおいて１画素のデータが占めるアドレスの数、および、ビデオメモリ３ａにおいて１画素のデータが占めるアドレスの数に設定されている。
【００９４】
さらに、本実施形態に係る転送処理部３１ａでは、バッファ１０３ａが、ＦＩＦＯ（First In First Out）バッファによって実現されており、１画素分のデータを蓄積できる。また、ＤＲＡＭコントローラ１０１ａは、バースト転送によって、メインメモリ２のデータをバッファ１０３ａに書き込み、ＤＲＡＭコントローラ１０２ａは、バースト転送によって、バッファ１０３ａのデータを、ビデオメモリ３に書き込むように構成されている。ここで、ＤＲＡＭコントローラ１０１ａ・１０２ａがバースト転送する際のバースト長は、メインメモリ２ａにおいて１画素のデータが占めるアドレスの数、および、ビデオメモリ３ａにおいて１画素のデータが占めるアドレスの数になるように設定されている。
【００９５】
なお、転送回路１１ａの部材のうち、上記で説明しなかった部材、並びに、上記で説明した部材の機能および動作であっても、説明しなかった機能および動作は、第１の実施形態に係る転送回路１１の各部材、あるいは、対応する部材（参照符号の末尾のａを除いた部材）と同じなので、説明を省略する。
【００９６】
上記構成では、１画素分のデータが複数のアドレスに渡ってメインメモリ２ａおよびビデオメモリ３ａに書き込まれているにも拘わらず、バースト転送によって、各画素のデータが転送元のメモリ（この場合は、メインメモリ２ａ）から転送先のメモリ（この場合は、ビデオメモリ３ａ）に転送される。したがって、１ワードずつ転送する場合よりも、より短い時間で、矩形領域内のデータを転送できる。
【００９７】
この場合であっても、ＣＰＵ６などの外部回路は、転送処理部３１ａによるデータ転送毎、あるいは、転送処理部３１ａによる１水平ライン分のデータ転送毎に、転送処理部３１ａへ指示する必要がないので、外部回路が転送回路１１ａへ指示することに起因するオーバーヘッドの発生を防止できる。この結果、メモリ構成の互いに異なるメモリ２ａ・３ａ間で、任意の矩形領域内のデータを高速にデータ転送できる。
【００９８】
なお、両メモリ２・３において、１画素分のデータが占めるアドレスの数は、互いに同一であってもよいし、互いに異なっていてもよい。読み出しの単位（１ワード分のデータ量）と書き込みの単位とが異なっている場合、ＦＩＦＯバッファ１０３ａは、書き込もうとするＤＲＡＭコントローラ（この場合は、１０１ａ）から見れば、そのＤＲＡＭコントローラの単位での書き込みを受け付け、読み出そうとするＤＲＡＭコントローラ（この場合は、１０２ａ）から見れば、そのＤＲＡＭコントローラの単位での読み出しを受け付けることができるように構成されていればよい。また、上記では、メインメモリ２およびビデオメモリ３の双方に対して、バースト転送する場合を例にして説明したが、一方のみがバースト転送しても、同様の効果が得られる。
【００９９】
ところで、上記では、バースト転送の例として、１画素分のデータがメインメモリ２およびビデオメモリ３では、複数ワードのデータに対応しており、転送処理部３１ａが１画素分のデータを転送する場合について説明した。これに対して、以下では、複数画素のデータをバースト転送する場合について説明する。なお、以下の構成は、１画素分のデータが複数ワードに対応している場合にも適用できるが、以下では、説明の便宜上、第１の実施形態と同様に、１画素分のデータが１ワードに対応している場合について説明する。
【０１００】
すなわち、本変形例に係る転送回路１１ｂは、図１３に示すように、転送回路１１と略同様に構成されているが、転送処理部３１ｂは、複数画素分のデータを、バースト転送可能に構成されており、各アドレス算出部３３ｂ・３４ｂの現アドレスカウンタ５２ｂ・５２ｂの増分が、それぞれ、メインメモリ２またはビデオメモリ３において上記複数画素分のデータが占めるアドレスの数に設定されている。また、本変形例に係る転送制御部３２ｂでは、幅カウンタ４１ｂの増分が、一括転送する画素数に設定されている。
【０１０１】
さらに、本変形例に係る転送制御部３２ｂは、転送制御部３２の判定に加えて、現水平ラインの終端へ到達せず、しかも、矩形領域全体の転送が終了していない場合は、次に転送すべき画素数を算出し、制御信号Ｓ６として、転送処理部３１ｂに出力できる。上記制御信号Ｓ６を出力する回路は、例えば、幅レジスタ２１に格納されている値から、幅カウンタ４１のカウント値を減算する回路などによって実現できる。
【０１０２】
また、転送処理部３１ｂは、例えば、ＤＲＡＭコントローラ１０１ｂ・１０２ｂへ、上記制御信号Ｓ６の画素数に対応するワード数を、各ＤＲＡＭコントローラ１０１ｂ・１０２ｂのバースト長として出力する回路を設けるなどして、上記制御信号Ｓ６の示す画素数に対応するワード数のデータを、バースト転送できるように構成されている。
【０１０３】
一例として、１画素分のデータが各メモリ２・３での１ワードに対応し、転送処理部３１ｂが、４画素分のデータをバースト転送可能に構成されている場合、上記各アドレス算出部３３ｂ・３４ｂの現アドレスカウンタ５２ｂ・５２ｂの増分は、４ワードに設定されている。
【０１０４】
また、この場合、上記転送制御部３２ｂは、現水平ラインの終端へ到達せず、しかも、矩形領域全体の転送が終了していない場合、現水平ラインの矩形領域が４画素以上残っていれば、制御信号Ｓ６として、４を出力し、３、２または１画素しか残っていない場合は、制御信号Ｓ６として、３、２または１を出力する。
【０１０５】
さらに、転送処理部３１ｂは、現水平ラインの矩形領域が４画素以上残っていれば、メインメモリ２のデータを４ワード、バースト転送によって読み出し、４ワードのバースト転送によって、当該データをビデオメモリ３に書き込む。
【０１０６】
一方、現水平ラインの矩形領域が３画素しか残っていない場合は、メインメモリ２のデータを、それに対応するワード（この場合は、３ワード）、バースト転送によって読み出し、残っている画素数に応じたワード（この場合は、３ワード）のバースト転送によって、当該データをビデオメモリ３に書き込む。
【０１０７】
なお、転送回路１１ｂの部材のうち、上記で説明しなかった部材、並びに、上記で説明した部材の機能および動作であっても、説明しなかった機能および動作は、上記転送回路１１の各部材、あるいは、対応する部材（参照符号の末尾のｂを除いた部材）と同じなので、説明を省略する。
【０１０８】
上記構成でも、バースト転送によって、各画素のデータが転送元のメモリ（この場合は、メインメモリ２）から転送先のメモリ（この場合は、ビデオメモリ３）に転送される。したがって、転送回路１１ａと同様に、メモリ構成の互いに異なるメモリ２・３間で、任意の矩形領域内のデータを高速にデータ転送できる。
【０１０９】
〔第３の実施形態〕
ところで、上記第１および第２の実施形態では、一例として、転送回路がメインメモリからビデオメモリへ矩形領域のデータを転送する構成について説明した。これに対して、本実施形態では、転送回路が双方向にデータを転送する構成について説明する。なお、本構成は、第２の実施形態にも適用できるが、以下では、一例として、第１の実施形態に適用した場合について説明する。
【０１１０】
すなわち、本実施形態に係る転送回路１１ｃは、図１４に示すように、ＣＰＵ６などの外部回路からの指示に応じて、転送方向を、メインメモリ２からビデオメモリ３への方向だけではなく、その逆方向に変更できるように構成されている。
【０１１１】
具体的には、図１５に示すように、転送回路１１ｃには、ＣＰＵ６などの外部回路からアクセス可能な転送方向レジスタ２４１が設けられており、転送方向レジスタ２４１に設定された値を、制御信号Ｓ７として、転送処理部３１ｃに出力できる。なお、本実施形態では、一例として、転送方向レジスタ２４１が転送制御部３２ｃに設けられている構成について説明するが、転送処理部３１ｃが上記外部回路から直接転送方向の指示を受け取ってもよい。
【０１１２】
一方、転送処理部３１ｃには、図９に示す転送処理部３１の構成に加えて、図１６に示すように、バッファ１０３と同様の構成のバッファ１０５が設けられている。ただし、当該バッファ１０５は、バッファ１０３と逆方向の転送用のバッファであり、入力端子Ｄには、ビデオメモリ３からのデータが、バッファを介して入力されている。また、バッファ１０５の出力は、外部バスと３ステート・バッファ１１３との間に設けられたマルチプレクサ１０６を介して、３ステート・バッファ１１３に入力されている。当該マルチプレクサ１０６は、制御信号Ｓ７がビデオメモリ３からメインメモリ２への転送を指示している間、バッファ１０５の出力を選択し、それ以外の場合は、外部バスを選択するように構成されている。
【０１１３】
さらに、転送処理部３１ｃには、図１６に示す回路だけではなく、図１７に示す回路も追加されている。すなわち、制御信号Ｓ３が図９に示す調停回路１１１のＲＥＱ１端子へ入力されるまでの間には、制御信号Ｓ７に応じて、入力の一方を選択するマルチプレクサ１５１が設けられている。当該マルチプレクサ１５１は、制御信号Ｓ７がビデオメモリ３への転送を指示している場合は、上記制御信号Ｓ３をＲＥＱ１端子へ入力すると共に、メインメモリ２への転送を指示している場合は、制御信号Ｓ３に代えて、図９に示すタイミング制御回路１２６の出力を、上記ＲＥＱ１端子に入力できる。
【０１１４】
また、転送処理部３１ｃにおいて、図９に示すタイミング制御回路１０４と調停回路１２１のＲＥＱ１端子との間には、制御信号Ｓ７に応じて、入力の一方を選択するマルチプレクサ１５２が設けられている。当該マルチプレクサ１５２は、制御信号Ｓ７がビデオメモリ３への転送を指示している場合は、タイミング制御回路１０４の出力を、調停回路１２１のＲＥＱ１端子へ入力すると共に、メインメモリ２への転送を指示している場合は、タイミング制御回路１０４の出力に代えて、上記制御信号Ｓ３を、調停回路１２１のＲＥＱ１端子に入力できる。
【０１１５】
さらに、図９に示すタイミング制御回路１０４および１２６の出力が制御信号Ｓ５およびＳ４として出力されるまでの間には、制御信号Ｓ７に応じて、両者を入れ換える置換回路１５３が設けられている。当該置換回路１５３は、制御信号Ｓ７がビデオメモリ３への転送を指示している場合は、図９と同様に、タイミング制御回路１０４および１２６の出力を制御信号Ｓ５およびＳ４として出力できる。一方、制御信号Ｓ７がメインメモリ２への転送を指示している場合は、図９とは異なり、タイミング制御回路１０４の出力を、制御信号Ｓ４として出力すると共に、タイミング制御回路１２６の出力を、制御信号Ｓ５として出力できる。
【０１１６】
また、各アドレス算出部３３ｃ・３４ｃには、両者に共通の回路として、図１８に示す置換回路３１１が設けられている。当該置換回路３１１は、転送制御部３２ｃからの制御信号Ｓ１１と、転送処理部３１ｃからの制御信号Ｓ５との一方を、メインメモリアドレス算出部３３ｃの現アドレスカウンタ５２に入力すると共に、他方を、ビデオメモリアドレス算出部３４ｃの現アドレスカウンタ６２に入力する回路であって、制御信号Ｓ７がビデオメモリ３への転送を示している場合は、制御信号Ｓ５を現アドレスカウンタ５２へ入力すると共に、メインメモリ２への転送を示している場合は、制御信号Ｓ５を現アドレスカウンタ６２へ入力できる。
【０１１７】
上記構成では、制御信号Ｓ７がビデオメモリ３への転送を示している場合、転送回路１１ｃの各部材は、第１の実施形態の転送回路１１と同様に動作して、メインメモリ２のデータをビデオメモリ３へ転送する。
【０１１８】
一方、制御信号Ｓ７がメインメモリ２への転送を示している場合は、メインメモリ２とビデオメモリ３との役割が入れ替わり、ビデオメモリ３のデータがバッファ１０５を介してメインメモリ２へ書き込まれる。
【０１１９】
いずれの場合であっても、上記各実施形態と同様に、ＣＰＵ６などの外部回路は、転送処理部３１ｃによるデータ転送毎、あるいは、転送処理部３１ｃによる１水平ライン分のデータ転送毎に、転送処理部３１ｃへ指示する必要がないので、外部回路が転送回路１１へ指示することに起因するオーバーヘッドの発生を防止できる。この結果、メモリ構成の互いに異なるメモリ２・３間で、任意の矩形領域内のデータを高速にデータ転送できる。
【０１２０】
また、本実施形態では、ビデオメモリ３からメインメモリ２への方向にもデータを転送できるので、例えば、図示しないビデオキャプチャ回路など、ビデオメモリ３に直接データを書き込む回路によって書き込まれたデータを、メインメモリ２に転送することができ、当該データを、ＣＰＵ６などの外部回路が把握することができる。
【０１２１】
なお、上記各実施形態では、各レジスタ２１〜２６に、幅、高さ、開始アドレスあるいはアドレス差自体が格納される場合を例にして説明したが、これに限るものではなく、例えば、複数の値から演算によって、これらの値を特定可能な情報（例えば、幅および高さに代えて、左上および右下の座標など）を格納し、演算によって、上記各値を算出してもよい。ただし、上記各実施形態のように、各値を直接格納した方が、転送回路（１１〜１１ｃ）での演算が不要になるので、転送回路の回路構成を簡略化できる。
【産業上の利用可能性】
【０１２２】
本発明によれば、メモリ構成の互いに異なるメモリ間で、任意の矩形領域内のデータを高速にデータ転送可能な転送回路を実現できるので、例えば、メインメモリとビデオメモリとの間のデータ転送をはじめとして、種々のメモリ間のデータ転送を行う転送回路として、広く好適に使用できる。
【図面の簡単な説明】
【０１２３】
【図１】本発明の実施形態を示すものであり、転送回路の要部構成を示すブロック図である。
【図２】上記転送回路を含む情報処理装置の要部構成を示すブロック図である。
【図３】上記情報処理装置に設けられたビデオメモリのメモリ構成を示す図面である。
【図４】上記情報処理装置に設けられたメインメモリのメモリ構成を示す図面である。
【図５】上記情報処理装置の表示画面を示す図面である。
【図６】上記転送回路に設けられた転送制御部の要部構成を示すブロック図である。
【図７】上記転送回路に設けられたメインメモリアドレス算出部の要部構成を示すブロック図である。
【図８】上記転送回路に設けられたビデオメモリアドレス算出部の要部構成を示すブロック図である。
【図９】上記転送回路に設けられた転送処理部の構成例を示す回路図である。
【図１０】上記転送制御部の構成例を示す回路図である。
【図１１】上記メインメモリアドレス算出部の構成例を示す回路図である。
【図１２】上記ビデオメモリアドレス算出部の構成例を示す回路図である。
【図１３】本発明の他の実施形態を示すものであり、転送回路の要部構成を示すブロック図である。
【図１４】上記転送回路の変形例を示すものであり、転送回路の要部構成を示すブロック図である。
【図１５】本発明のさらに他の実施形態を示すものであり、転送回路に設けられた転送方向レジスタを示すブロック図である。
【図１６】上記転送回路の転送処理部の構成例を示すものであり、追加されたバッファおよびマルチプレクサを示す回路図である。
【図１７】上記転送回路の転送処理部の構成例を示すものであり、両調停回路近傍に追加された回路を示す回路図である。
【図１８】上記転送回路の両アドレス算出部の構成例を示すものであり、追加された置換回路を示すブロック図である。
【図１９】従来技術を示すものであり、情報処理装置の要部構成を示すブロック図である。
【符号の説明】
【０１２４】
１１〜１１ｃ  転送回路
２４          アドレス差レジスタ（転送元アドレス差レジスタ）
２６          アドレス差レジスタ（転送先アドレス差レジスタ）
３１〜３１ｃ  転送処理部（転送処理回路）
３２〜３２ｃ  転送制御部（判定回路）
３３〜３３ｃ  メインメモリアドレス算出部（転送元アドレス算出回路）
３４〜３４ｃ  ビデオメモリアドレス算出部（転送先アドレス算出回路）
【図１】
2006072449.tif 000003
【図２】
2006072449.tif 000004
【図３】
2006072449.tif 000005
【図４】
2006072449.tif 000006
【図５】
2006072449.tif 000007
【図６】
2006072449.tif 000008
【図７】
2006072449.tif 000009
【図８】
2006072449.tif 000010
【図９】
2006072449.tif 000011
【図１０】
2006072449.tif 000012
【図１１】
2006072449.tif 000013
【図１２】
2006072449.tif 000014
【図１３】
2006072449.tif 000015
【図１４】
2006072449.tif 000016
【図１５】
2006072449.tif 000017
【図１６】
2006072449.tif 000018
【図１７】
2006072449.tif 000019
【図１８】
2006072449.tif 000020
【図１９】
2006072449.tif 000021