(57)【要約】【課題】  バスのデータ幅を最大限に利用した効率的なＤＭＡ転送を行うことができるＤＭＡＣを提供する【解決手段】  トランスファ制御部２８は、転送処理待ちデータの先頭のもののソースアドレスが８の倍数でない場合には、転送処理待ちデータの先頭のもののソースアドレスが８の倍数となるまで、８アドレス分のデータ単位よりも小さなデータ単位で転送処理待ちデータをソースからＡＨＢバス６０を介してＦＩＦＯ２１に転送し、転送処理待ちデータの先頭のもののソースアドレスが８の倍数となった場合には、ＦＩＦＯ２１がオーバフローしないことを条件に、可能な回数だけ、８アドレス分のデータ単位で転送処理待ちデータをソースからＡＨＢバス６０を介してＦＩＦＯ２１に転送する。【選択図】図１
2009237790.tif 000002
【特許請求の範囲】
【請求項１】
ソースおよびディスティネーション間のバスを介したＤＭＡ転送を制御するＤＭＡコントローラにおいて、
先入れ先出し方式のバッファと、
転送処理待ちデータの先頭のもののソースアドレスが２ｍ（ｍは１以上の所定の整数）の倍数でない場合には、転送処理待ちデータの先頭のもののソースアドレスが２ｍの倍数となるまで、２ｍアドレス分のデータ単位よりも小さなデータ単位で転送処理待ちデータを前記ソースから前記バスを介して前記バッファに転送し、転送処理待ちデータの先頭のもののソースアドレスが２ｍの倍数となった場合には、前記バッファがオーバフローしないことを条件に、可能な回数だけ、２ｍアドレス分のデータ単位で転送処理待ちデータを前記ソースから前記バスを介して前記バッファに転送し、転送処理待ちデータの先頭のもののディスティネーションアドレスが２ｍ（ｍは１以上の所定の整数）の倍数でない場合には、転送処理待ちデータの先頭のもののディスティネーションアドレスが２ｍの倍数となるまで、２ｍアドレス分のデータ単位よりも小さなデータ単位で転送処理待ちデータを前記バッファから前記バスを介して前記ディスティネーションに転送し、転送処理待ちデータの先頭のもののディスティネーションアドレスが２ｍの倍数となった場合には、前記バッファがアンダフローしないことを条件に、可能な回数だけ、２ｍアドレス分のデータ単位で転送処理待ちデータを前記バッファから前記バスを介して前記ディスティネーションに転送するトランスファ制御部と
を具備することを特徴とするＤＭＡコントローラ。
【請求項２】
前記トランスファ制御部は、転送バイト数が指定されたスキャッタリングカウントに到達する毎にディスティネーションアドレスを指定されたスキャッタリングインターバルだけ変化させるスキャッタリング手段を具備することを特徴とする請求項１に記載のＤＭＡコントローラ。
【請求項３】
前記トランスファ制御部は、転送バイト数が指定されたギャザリングカウントに到達する毎にソースアドレスを指定されたギャザリングインターバルだけ変化させるギャザリング手段を具備することを特徴とする請求項１または２に記載のＤＭＡコントローラ。
【請求項４】
前記トランスファ制御部は、ソースのデータ幅がディスティネーションのデータ幅よりも大きい場合に、ソースから取得したデータをディスティネーションのデータ幅のデータとし、前記バッファに格納するパック手段を具備することを特徴とする請求項１〜３のいずれか１の請求項に記載のＤＭＡコントローラ。
【請求項５】
前記トランスファ制御部は、ディスティネーションのデータ幅がソースのデータ幅よりも大きい場合に、ソースから取得したデータを前記バッファから読み出して、前記ディスティネーションのデータ幅のデータとし、前記ディスティネーションに転送するアンパック手段を具備することを特徴とする請求項１〜４のいずれか１の請求項に記載のＤＭＡコントローラ。
【請求項６】
連係して実行すべき複数種類のＤＭＡ転送に関する制御情報を記憶する記憶手段を具備し、
前記トランスファ制御手段は、前記記憶手段に記憶された各ＤＭＡ転送に関する制御情報を順次読み出し、各ＤＭＡ転送を順次実行するチェーン転送手段を具備することを特徴とする請求項１〜５のいずれか１の請求項に記載のＤＭＡコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、メモリと他の装置との間のＤＭＡ（Direct Memory Access）転送を制御するＤＭＡＣ（Direct Memory Access Controller）に係り、特に画像処理装置に好適なＤＭＡＣに関する。
【背景技術】
【０００２】
画像処理装置では、画像処理のために、連続したアドレス領域に属する一群のデータをプロセッサとメモリとの間で転送することが多い。そこで、データ転送に関するプロセッサの制御負担を減らして処理効率を高めるため、データ転送の手段としてＤＭＡＣが利用されることが多い。
【特許文献１】特開２００６−６５８６４号公報
【特許文献２】特開２００８−３３７１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、ＤＭＡＣによるデータ転送の効率を高めるためには、データ伝送路であるバスのデータ幅を大きくして、一度に転送するデータ量を大きくすることが好ましい。一方、例えばＡＭＢＡ（Advanced Micro-controller Bus Architecture；商標）のＡＨＢ（Advanced High performance Bus；商標）等では、転送の際に指定するアドレスを転送サイズと等しいアドレス境界に合わせる必要がある。例えば３２ビット＝１ワードのデータ幅のバスを利用して１ワードのデータ転送を行う場合には、転送の際に指定するアドレスは、ワードアドレス境界である４の倍数のアドレスに合わせる必要がある。このＡＨＢ等のバスを利用する場合において、ＤＭＡ転送の対象である一群のデータのソースアドレスおよびディスティネーションアドレスが、バスのデータ幅と等しいアドレス境界のアドレスから始まるのであれば、バスのデータ幅を転送サイズとして最大効率でのＤＭＡ転送が可能である。しかしながら、転送対象であるデータ群の先頭のデータのソースアドレスまたはディスティネーションアドレスがこのようなアドレス境界のアドレスから始まらない場合もある。このような場合、バスのデータ幅よりも小さなデータ単位でのＤＭＡ転送をしなければならず、ＤＭＡ転送の効率が低くなるという問題があった。
【０００４】
この発明は、以上説明した事情に鑑みてなされたものであり、転送対象である一群のデータのソースアドレスまたはディスティネーションが任意のアドレスである場合においても、バスのデータ幅を最大限に利用した効率的なＤＭＡ転送を行うことができるＤＭＡコントローラを提供することを目的としている。
【課題を解決するための手段】
【０００５】
この発明は、ソースおよびディスティネーション間のバスを介したＤＭＡ転送を制御するＤＭＡコントローラにおいて、先入れ先出し方式のバッファと、転送処理待ちデータの先頭のもののソースアドレスが２ｍ（ｍは１以上の所定の整数）の倍数でない場合には、転送処理待ちデータの先頭のもののソースアドレスが２ｍの倍数となるまで、２ｍアドレス分のデータ単位よりも小さなデータ単位で転送処理待ちデータを前記ソースから前記バスを介して前記バッファに転送し、転送処理待ちデータの先頭のもののソースアドレスが２ｍの倍数となった場合には、前記バッファがオーバフローしないことを条件に、可能な回数だけ、２ｍアドレス分のデータ単位で転送処理待ちデータを前記ソースから前記バスを介して前記バッファに転送し、転送処理待ちデータの先頭のもののディスティネーションアドレスが２ｍ（ｍは１以上の所定の整数）の倍数でない場合には、転送処理待ちデータの先頭のもののディスティネーションアドレスが２ｍの倍数となるまで、２ｍアドレス分のデータ単位よりも小さなデータ単位で転送処理待ちデータを前記バッファから前記バスを介して前記ディスティネーションに転送し、転送処理待ちデータの先頭のもののディスティネーションアドレスが２ｍの倍数となった場合には、前記バッファがアンダフローしないことを条件に、可能な回数だけ、２ｍアドレス分のデータ単位で転送処理待ちデータを前記バッファから前記バスを介して前記ディスティネーションに転送するトランスファ制御部とを具備することを特徴とするＤＭＡコントローラを提供する。
かかる発明によれば、転送対象である一群のデータのソースアドレスまたはディスティネーションが任意のアドレスである場合においても、バスのデータ幅を最大限に利用した効率的なＤＭＡ転送を行うことができる。
【発明を実施するための最良の形態】
【０００６】
以下、図面を参照し、この発明の実施の形態を説明する。
図１はこの発明の一実施形態であるＤＭＡＣ２０を含む画像処理装置の構成を示すブロック図である。図示のように、画像処理装置は、画像処理ＬＳＩ１と、ホストＣＰＵ２と、圧縮動画ＲＯＭ３と、画像メモリ４とを有する。
【０００７】
圧縮動画ＲＯＭ３には、各種の動画シーンの圧縮符号化データが記憶されている。これらの圧縮符号化データは、動画シーンを構成する一連のフレームの画像データに対し、動き補償を伴ったフレーム間符号化アルゴリズムによる圧縮符号化処理を施すことにより得られたデータである。
【０００８】
画像処理ＬＳＩ１は、ホストＣＰＵ２からの指示に従い、圧縮動画ＲＯＭ３から動画の圧縮符号化データを読み出し、その復号化を行うことを主な役割とする装置である。画像メモリ４は、復号結果である画像データを記憶するためのメモリである。この画像メモリ４は、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）であり、いわゆるページモードでのブロック転送が可能な構成となっている。
【０００９】
画像処理ＬＳＩ１は、動画デコーダ１００と、ホストＩ／Ｆ（インタフェース）１０１と、ＲＯＭ  Ｉ／Ｆ１０２と、ＳＤＲＡＭ  Ｉ／Ｆ１０３とを有する。ホストＩ／Ｆ１０１は、ホストＣＰＵ２からの指令を動画デコーダ１００に伝える装置である。ＲＯＭ  Ｉ／Ｆ１０２は、動画デコーダ１００からの指令に従って圧縮動画ＲＯＭ３から動画の圧縮符号化データを読み出す装置である。ＳＤＲＡＭ  Ｉ／Ｆ１０３は、動画デコーダ１００と画像メモリ４との間のデータの授受の仲介をする装置である。
【００１０】
動画デコーダ１００は、画像処理ＬＳＩ１の主たる役割である動画の復号化処理を実行する装置であり、レジスタ１０と、本実施形態によるＤＭＡＣ２０と、画像プロセッサ３０と、ＣＧメモリＩ／Ｆ４０と、フレームバッファＩ／Ｆ５０と、ＡＭＢＡ（商標）の仕様に従ったＡＨＢバス６０とを有する。
【００１１】
レジスタ１０は、ホストＩ／Ｆ１０１を介して与えられるホストＣＰＵ２からの指令情報を記憶するレジスタである。本実施形態では、主として動画の圧縮符号化データの復号化処理に関する指令情報がレジスタ１０に書き込まれる。この指令情報は、復号化対象である動画の圧縮符号化データのアドレス等を含む。
【００１２】
画像プロセッサ３０は、主として動画の圧縮符号化データの復号化のための演算処理を実行するプロセッサである。本実施形態における画像プロセッサ３０は、復号化対象である圧縮符号化データおよび復号結果である画像データを記憶するためのＳＲＡＭ（Static Random Access Memory）３１を内蔵している。
【００１３】
ＤＭＡＣ２０は、画像プロセッサ３０からの指令に従い、ＡＨＢバス６０を介して接続された装置（画像プロセッサ３０内のＳＲＡＭ３１を含む）間のＤＭＡ転送を制御する装置である。このＤＭＡＣ２０は、転送対象であるデータを一時記憶するための先入れ先出し方式のバッファであるＦＩＦＯ（First In First Out）２１を内蔵している。画像プロセッサ３０は、ＤＭＡＣ２０にＤＭＡ転送を行わせる際、データの転送元のデバイスであるソースと、データの転送先のデバイスであるディスティネーションを指定するとともに、ソースにおける転送対象のデータ群のアドレス範囲であるソースアドレス範囲、ディスティネーションにおけるデータの転送先のアドレス範囲であるディスティネーションアドレス範囲を特定する。ＤＭＡＣ２０は、ＦＩＦＯ２１がオーバフローしないことを条件に、データのリード指令をＡＨＢバス６０を介してソースに連続的に発行し、ソースアドレス範囲内のデータをＡＨＢバス６０を介して取得し、ＦＩＦＯ２１に取り込む。また、ＤＭＡＣ２０は、ＦＩＦＯ２１がアンダフローしないことを条件に、データのライト指令をＡＨＢバス６０を介してディスティネーションに連続的に発行し、ＦＩＦＯ２１内のデータをＡＨＢバス６０を介してディスティネーションに送り、ディスティネーションアドレス範囲内の領域に書き込む。
【００１４】
本実施形態では、ＡＨＢバス６０を介したデータの移動をトランスファという。ＡＨＢバス６０は、６４ビットのデータ幅を有する。従って、本実施形態では、１トランスファ当たりのデータの転送サイズを１バイト、２バイト、４バイト、８バイトの中から選択可能である。上述したリード指令は、転送対象であるデータのうち最もソースアドレスが若いもののソースアドレスと、転送バイト数を指定する転送サイズ情報を含む。また、ライト指令は、転送対象であるデータのうち最もディスティネーションアドレスが若いもののディスティネーションアドレスと、転送バイト数を指定する転送サイズ情報を含む。１または複数回のリード指令の発行により行われるソースからＤＭＡＣ２０のＦＩＦＯ２１へのデータの移動と１または複数回のライト指令の発行により行われるＤＭＡＣ２０のＦＩＦＯ２１からディスティネーションへのデータの移動の組をシングル転送という。ソースアドレス範囲内のデータをディスティネーションアドレス範囲内のアドレス領域に転送することをブロック転送という。ブロック転送は、１または複数のシングル転送によって構成される。
【００１５】
ＣＧメモリＩ／Ｆ４０は、バッファ４１を内蔵している。ＣＧメモリＩ／Ｆ４０は、ＤＭＡＣ２０から与えられるリード指令に従い、圧縮動画ＲＯＭ３から圧縮符号化データを読み出す旨のリード指令をＲＯＭ  Ｉ／Ｆ１０２に与えるとともに、ＲＯＭ  Ｉ／Ｆ１０２を介して圧縮動画ＲＯＭ３から読み出された圧縮符号化データをバッファ４１に蓄積し、バッファ４１内の圧縮符号化データをＡＨＢバス６０に出力する。
【００１６】
フレームバッファＩ／Ｆ５０は、リードバッファ５１およびライトバッファ５２を内蔵している。フレームバッファＩ／Ｆ５０は、ＤＭＡＣ２０から与えられるリード指令に従い、画像メモリ４から圧縮符号化データを読み出す旨のリード指令をＳＤＲＡＭ  Ｉ／Ｆ１０３に与えるとともに、ＳＤＲＡＭ  Ｉ／Ｆ１０３を介して画像メモリ４から読み出された画像データをリードバッファ５１に蓄積し、リードバッファ５１内の画像データをＡＨＢバス６０に出力する。また、フレームバッファＩ／Ｆ５０は、ＤＭＡＣ２０から与えられるライト指令に従い、画像メモリ４への書き込み対象である画像データをＡＨＢバス６０から取り込んでライトバッファ５２に蓄積し、この蓄積した画像データを画像メモリ４に書き込むべき旨のライト指令をＳＤＲＡＭ  Ｉ／Ｆ１０３に与える。
【００１７】
本実施形態において、画像プロセッサ３０は、ＤＭＡＣ２０によるＤＭＡ転送を利用して、動画の圧縮符号化データの復号化処理を実行する。さらに詳述すると、画像プロセッサ３０は、復号化対象である圧縮動画ＲＯＭ３内の圧縮符号化データをＲＯＭ  Ｉ／Ｆ１０２、ＣＧメモリＩ／Ｆ４０およびＡＨＢバス６０を介して画像プロセッサ３０のＳＲＡＭ３１に転送するリード転送をＤＭＡＣ２０に実行させる。次に画像プロセッサ３０は、ＳＲＡＭ３１内の圧縮符号化データの復号化処理を実行する。ここで、復号化対象である圧縮符号化データが、先行するフレームの画像データを参照して圧縮符号化されたものである場合に、その先行するフレームの画像データを復号化処理のために参照する必要がある。そこで、画像プロセッサ３０は、先行するフレームの復号結果である画像メモリ４内の画像データをＳＤＲＡＭ  Ｉ／Ｆ１０３、フレームバッファＩ／Ｆ５０およびＡＨＢバス６０を介して画像プロセッサ３０のＳＲＡＭ３１に転送するリード転送をＤＭＡＣ２０に実行させる。そして、画像プロセッサ３０は、ＳＲＡＭ３１内の圧縮符号化データを復号化し、復号結果である画像データをＳＲＡＭ３１に書き込むと、このＳＲＡＭ３１内の画像データをＡＨＢバス６０、フレームバッファＩ／Ｆ５０およびＳＤＲＡＭ  Ｉ／Ｆ１０３を介して画像メモリ４に転送するライト転送をＤＭＡＣ２０に実行させる。以上のような処理の繰り返しにより、画像プロセッサ３０は、動画の圧縮符号化データを一連のフレームの画像データに復号化するのである。
【００１８】
本実施形態によるＤＭＡＣ２０は、画像プロセッサ３０が以上のような処理を効率的に実行するのを可能にするため、幾つかの特徴的な機能を備えている。以下、それらの機能について説明する。
【００１９】
＜スキャッタリング／ギャザリング機能＞
本実施形態では、ＳＲＡＭ３１と画像メモリ４とで画像データの格納方法が異なる。本実施形態では、一画面分の画像データを１６×１６画素のブロックに分割し、ブロック単位で復号化処理を実行する。図２に例示するように、復号化により得られる１ブロック分の各画素の画像データは、ＳＲＡＭ３１内の１次元的に連続したアドレス領域に格納される。これに対し、画像メモリ４では、１つのブロックの各画素の画像データの格納先は、いわば２次元的な領域となる。すなわち、ブロック内のある行の各画素の画像データの格納先は、同一のロウアドレスを有し、かつ、異なるカラムアドレスを有する連続したアドレス領域となるが、その次の行の各画素の画像データの格納先は、１つ隣のロウアドレスを有し、異なるカラムアドレスを有する連続したアドレス領域となる。このようにＳＲＡＭ３１では連続したアドレス領域に格納される１６×１６画素の画像データが、画像メモリ４では、互いに隔たった１６個の連続アドレス領域に行毎に分離されて格納されるのである。このようなデータの格納方法を異にする２つのメモリ間のＤＭＡ転送を行うためにＤＭＡＣ２０に設けられた機能がスキャッタリング機能およびギャザリング機能である。
【００２０】
スキャッタリングでは、図３に例示するように、ソースからの転送バイト数が予め定められたスキャッタリングカウントに到達する毎に、ディスティネーションアドレスを予め定められたスキャッタリングインターバルだけ不連続に増加させ、ソース内の連続したアドレス領域に記憶されたデータ群（図３ではデータＡ、Ｂ、Ｃ）をディスティネーション内の互いに隔たった複数の連続アドレス領域に分散させて転送する。本実施形態では、このスキャッタリング機能がＳＲＡＭ３１から画像メモリ４へのＤＭＡ転送に利用される。
【００２１】
一方、ギャザリングでは、図４に例示するように、ディスティネーションへの転送バイト数が予め定められたギャザリングカウントに到達する毎に、ソースアドレスを予め定められたギャザリングインターバルだけ不連続に増加させ、ソース内の互いに隔たった複数の連続アドレス領域に分散して記憶されたデータ群（図４ではデータＡ、Ｂ、Ｃ）を１つにまとめてディスティネーション内の連続したアドレス領域に転送する。本実施形態では、このギャザリング機能が画像メモリ４からＳＲＡＭ３１へのＤＭＡ転送に利用される。
なお、スキャッタリング、ギャザリングに関しては、例えば特許文献２に開示がある。
【００２２】
＜チェーン転送機能＞
本実施形態において圧縮符号化データから復号化される画像データは、Ｙ成分、Ｕ成分、Ｖ成分からなる。そして、圧縮符号化データの復号化処理では、必ずＹ成分、Ｕ成分、Ｖ成分の画像データをセットにして、画像メモリ４からＳＲＡＭ３１へ、あるいはＳＲＡＭ３１から画像メモリ４へ転送する。その際、画像プロセッサ３０が、Ｙ成分、Ｕ成分、Ｖ成分の各々についてＤＭＡ転送の指令をＤＭＡＣ２０に逐一与えるのでは、画像プロセッサ３０の制御負担が重くなり、効率的な画像処理を行う上での障害となる。このような画像プロセッサ３０の制御負担をなくすためにＤＭＡＣ２０に設けられた機能がチェーン転送機能である。このチェーン転送機能は、Ｙ成分の画像データのＤＭＡ転送が終わったらＵ成分の画像データのＤＭＡ転送、Ｕ成分の画像データのＤＭＡ転送が終わったらＶ成分の画像データのＤＭＡ転送、という具合に、画像プロセッサ３０からの指示によらず、複数種類のＤＭＡ転送を自動的に連係させて進める機能である。
【００２３】
このチェーン転送機能を働かせるため、ＤＭＡ転送に関する制御情報の集合体であるディスクリプタが連係させる複数のＤＭＡ転送の各々について用意される。これらの各ディスクリプタは、複数種類のＤＭＡ転送の連係関係を反映した構成となっている。具体的には、連続して実行される２つのＤＭＡ転送に関する２つのディスクリプタにおいて、先に実行されるＤＭＡ転送に関するディスクリプタは、後に実行されるＤＭＡ転送に関するディスクリプタの所在を示す情報を含んでいる。ＤＭＡＣ２０は、この情報を手掛かりに、連係関係を持った一連のディスクリプタを順次読み出し、複数種類のＤＭＡ転送を順次実行するのである。
なお、複数色の画像データをまとめて読み出す技術に関しては、例えば特許文献１に開示がある。
【００２４】
＜パック／アンパック機能＞
ソースとディスティネーションとで、アクセス単位であるデータ幅が異なる場合がある。例えば、本実施形態では、画像メモリ４では、１アドレス当たり１バイトのデータが記憶されるのに対し、ＳＲＡＭ３１では、１アドレス当たり２バイトのデータが記憶されるようになっている。この場合において、ＳＲＡＭ３１における１アドレスを画像メモリ４における１アドレスに対応付けて、ＳＲＡＭ３１および画像メモリ４間のデータの交換を行うためには、ＳＲＡＭ３１の１アクセス単位である２バイトのうち上位１バイトを無効なデータとして取り扱わざるを得ない。従来技術の下では、そのための処置を画像プロセッサ３０に行わせていたが、そのために画像プロセッサ３０の負担が重くなり、画像処理装置の効率を低下させていた。そこで、本実施形態では、ＳＲＡＭ３１における１アクセス単位である２バイトのうちの上位１バイトを無効なデータとして取り扱うためのパック、アンパックをＤＭＡＣ２０に行わせるようにしている。
【００２５】
ここで、パックとは、例えばＳＲＡＭ３１をソース、画像メモリ４をディスティネーションとしてＤＭＡ転送を行う場合において、ソースから１回のアクセスにより読み出される２バイトのデータのうち上位１バイトをＤＭＡＣ２０において削除し、下位１バイトのみをＤＭＡＣ２０からディスティネーションに送る機能である。本実施形態では、上位１バイトの削除をＦＩＦＯ２１への格納前の段階において行い、ＦＩＦＯ２１へはソースから供給される２バイトのうちの下位１バイトのみを書き込む。
【００２６】
一方、アンパックとは、例えば画像メモリ４をソース、ＳＲＡＭ３１をディスティネーションとしてＤＭＡ転送を行う場合において、ソースから１回のアクセスにより読み出される１バイトのデータに対してＤＭＡＣ２０が上位１バイトを付加し、合計２バイトをＤＭＡＣ２０からディスティネーションに送る機能である。本実施形態では、ディスティネーションへの転送対象であるデータをＦＩＦＯ２１から読み出した段階において、そのデータに上位１バイトを付加することによりアンパックを行う。従って、ＦＩＦＯ２１に無効なデータを記憶させることなく、効率的にＤＭＡ転送を行うことができる。
【００２７】
＜バス転送効率化のためのトランスファ幅最適化機能＞
本実施形態において、ＡＨＢバス６０のデータ幅は６４ビットであり、１トランスファ当たり最大８バイトのデータを転送可能である。従って、バス効率を低下させないためにも、極力、１トランスファ当たり８バイトのＤＭＡ転送を行うことが望ましい。しかし、ＡＭＢＡ（商標）のＡＨＢでは、リード指令に従って転送されるデータ群の先頭のデータのソースアドレスは、そのトランスファのデータ幅に対応したアドレス境界のアドレスから始まらなければならず、ライト指令に従って転送されるデータ群の先頭のデータのディスティネーションアドレスも、そのトランスファのデータ幅に対応したアドレス境界のアドレスから始まらなければならない。このため、従来技術の下では、転送対象であるデータ群の先頭のデータのソースアドレスまたはディスティネーションアドレスがＡＨＢバス６０のデータ幅である６４ビットのアドレス境界のアドレスでない場合に、ＡＨＢバス６０のデータ幅を最大限に利用したＤＭＡ転送を行うことができず、３２ビット、１６ビット、８ビット等、より少ないデータ単位でのＤＭＡ転送を行い、ＡＨＢバス６０の使用効率を低下させていた。そこで、本実施形態では、１トランスファ当たりのデータ幅を最適化し、ＡＨＢバス６０のデータ幅を最大限に利用してＤＭＡ転送を行うための機能がＤＭＡＣ２０に設けられている。
【００２８】
すなわち、ＤＭＡＣ２０は、転送処理待ちデータの先頭のもののソースアドレスが２３＝８の倍数でない場合には、転送処理待ちデータの先頭のもののソースアドレスが２３＝８となるまで、２３＝８アドレス分のデータ単位よりも小さなデータ単位で転送処理待ちデータをソースからＡＨＢバス６０を介してＦＩＦＯ２１に転送し、転送処理待ちデータの先頭のもののソースアドレスが２３＝８の倍数となった場合には、ＦＩＦＯ２１がオーバフローしないことを条件に、可能な回数だけ、２３＝８アドレス分のデータ単位で転送処理待ちデータをソースからＡＨＢバス６０を介してＦＩＦＯ２１に転送する。また、ＤＭＡＣ２０は、転送処理待ちデータの先頭のもののディスティネーションアドレスが２３＝８の倍数でない場合には、転送処理待ちデータの先頭のもののディスティネーションアドレスが２ｍ＝８の倍数となるまで、２ｍ＝８アドレス分のデータ単位よりも小さなデータ単位で転送処理待ちデータをＦＩＦＯ２１からＡＨＢバス６０を介してディスティネーションに転送し、転送処理待ちデータの先頭のもののディスティネーションアドレスが２３＝８の倍数となった場合には、ＦＩＦＯ２１がアンダフローしないことを条件に、可能な回数だけ、２３＝８アドレス分のデータ単位で転送処理待ちデータをＦＩＦＯ２１からＡＨＢバス６０を介してディスティネーションに転送するのである。
【００２９】
次に図５を参照し、本実施形態によるＤＭＡＣ２０の構成の詳細を説明する。図５において、ＡＨＢマスタＩ／Ｆ２２は、ＤＭＡＣ２０がバスマスタとしてＡＨＢバス６０を使用する場合におけるＡＨＢバス６０を介したデータの授受の制御を行う装置である。ＡＨＢスレーブＩ／Ｆ２３は、ＤＭＡＣ２０がバススレーブとしてＡＨＢバス６０を使用する場合におけるＡＨＢバス６０を介したデータの授受の制御を行う装置である。本実施形態において、画像プロセッサ３０がＤＭＡＣ２０にＤＭＡ転送を指令する場合、画像プロセッサ３０がバスマスタ、ＤＭＡＣ２０がバススレーブとなり、画像プロセッサ３０は、ＤＭＡ転送に関する制御情報をＡＨＢバス６０を介してＤＭＡＣ２０に与える。また、本実施形態において、ＤＭＡＣ２０が画像プロセッサ３０から指令されたＤＭＡ転送を行う場合、ＤＭＡＣ２０がバスマスタ、ソースがバススレーブとなり、ソースからＤＭＡＣ２０へのリード転送を行わせ、次いでＤＭＡＣ２０がバスマスタ、ディスティネーションがバススレーブとなり、ＤＭＡＣ２０からディスティネーションへのライト転送を行わせる。
【００３０】
ＤＭＡＣ２０は、ＤＭＡレジスタ２４と、２チャネル分のＤＭＡチャネルレジスタ２５０および２５１と、ディスクリプタレジスタ２６とを有する。ＤＭＡレジスタ２４は、ＤＭＡＣ２０全体の制御に関わる制御情報を記憶する装置であり、ＤＭＡコントロールレジスタＤＭＡＣＴＲと、ＤＭＡステータスレジスタＤＭＡＳＴとからなる。ＤＭＡＣ２０では、共通のＦＩＦＯ２１を利用して、ＣＨ０およびＣＨ１の２チャネルのＤＭＡ転送を進めることが可能である。ＤＭＡコントロールレジスタＤＭＡＣＴＲには、この２チャネルのＤＭＡ転送のチャネル間のアービトレーション方式を指定する情報等、全チャネルに共通の制御情報が格納される。ＤＭＡステータスレジスタＤＭＡＳＴには、現在いずれのチャネルのＤＭＡ転送にＦＩＦＯ２１が使用されているかを示すＦＩＦＯ使用チャネルＦＵＣやＦＩＦＯ２１内の転送未了のデータのバイトカウントＦＢＣ等、ＤＭＡＣ２０内の状態を示す情報が格納される。
【００３１】
ＤＭＡチャネルレジスタ２５０および２５１は、ＣＨ０のＤＭＡ転送に関する制御情報およびＣＨ１のＤＭＡ転送に関する制御情報やステータス情報を各々記憶するレジスタである。ディスクリプタレジスタ２６は、基本的にはＤＭＡチャネルレジスタ２５０および２５１と同様な種類の制御情報やステータス情報を記憶するレジスタである。複数種類のブロック転送を連係させたチェーン転送を行う場合、最初のブロック転送に関する制御情報やステータス情報はＤＭＡチャネルレジスタ２５０または２５１に格納され、後続のブロック転送に関する制御情報やステータス情報はディスクリプタとしてディスクリプタレジスタ２６に格納される。
【００３２】
次にＤＭＡチャネルレジスタ２５ｘ（ｘはチャネル番号で、０または１）の詳細な構成について説明する。各ＤＭＡチャネルレジスタ２５ｘは、以下の各レジスタの集合体である。
【００３３】
ＤＭＡチャネルコントロールレジスタＤＣＨＣＴＲｘ：ＣＨｘのＤＭＡ転送に関する制御情報を記憶するレジスタである。このＤＭＡチャネルコントロールレジスタＤＣＨＣＴＲｘに記憶される制御情報には、ソースアドレスインクリメントＳＡＩ、ソースデータ幅ＳＤＷ、ディスティネーションアドレスインクリメントＤＡＩ、ディスティネーションデータ幅ＤＤＷ、パック／アンパックイネーブルＰＵＰＥを含む。
【００３４】
ソースアドレスインクリメントＳＡＩは、ソースアドレスを固定してリード転送を行うか、ソースアドレスをインクリメントしながらリード転送を行うかを指定する情報である。ソースデータ幅ＳＤＷは、ソースの１アクセス単位のデータ幅を指定する情報である。ディスティネーションアドレスインクリメントＤＡＩは、ディスティネーションアドレスを固定してライト転送を行うか、ディスティネーションアドレスをインクリメントしながらライト転送を行うかを指定する情報である。ディスティネーションデータ幅ＤＤＷは、ディスティネーションの１アクセス単位のデータ幅を指定する情報である。パック／アンパックイネーブルＰＵＰＥは、パック／アンパックを行うか否かを指定する情報である。
【００３５】
ソースデータ幅ＳＤＷおよびディスティネーションデータ幅ＤＤＷが同じである場合、ＤＭＡＣ２０は、パックもアンパックも行わず、ソースからのデータをそのままディスティネーションに転送する。
【００３６】
パック／アンパックイネーブルＰＵＰＥが“０”（ディゼーブル）であり、ソースデータ幅ＳＤＷがディスティネーションデータ幅ＤＤＷよりも大きい場合、ＤＭＡＣ２０は、ソースからのデータをディスティネーションデータ幅ＤＤＷのデータに分割し、ディスティネーションに転送する。パック／アンパックイネーブルＰＵＰＥが“０”（ディゼーブル）であり、ディスティネーションデータ幅ＤＤＷがソースデータ幅ＳＤＷよりも大きい場合、ＤＭＡＣ２０は、ソースからの複数のデータをディスティネーションデータ幅ＤＤＷのデータに統合し、ディスティネーションに転送する。
【００３７】
パック／アンパックイネーブルＰＵＰＥが“１”（イネーブル）であり、ソースデータ幅ＳＤＷがディスティネーションデータ幅ＤＤＷよりも大きい場合、ＤＭＡＣ２０は、ソースからのデータにパックを施してディスティネーションデータ幅ＤＤＷのデータとし、ディスティネーションに転送する。パック／アンパックイネーブルＰＵＰＥが“１”（イネーブル）であり、ディスティネーションデータ幅ＤＤＷがソースデータ幅ＳＤＷよりも大きい場合、ＤＭＡＣ２０は、ソースからのデータにアンパックを施してディスティネーションデータ幅ＤＤＷのデータとし、ディスティネーションに転送する。
【００３８】
ＤＭＡチャネルステータスレジスタＤＣＨＳＴｘ：ＣＨｘのＤＭＡ転送に関するステータス情報を記憶するレジスタである。このレジスタには、例えばＣＨｘのブロック転送が終了した場合にその旨の情報が書き込まれる。
【００３９】
ＤＭＡソースアドレスレジスタＤＳＡＤｘ：ＣＨｘのＤＭＡ転送において、転送処理待ちのデータの先頭のもののソースアドレスＳＡＤを記憶するレジスタである。ソースアドレスインクリメントＳＡＩがソースアドレスのインクリメントを指示している場合、ＤＭＡソースアドレスレジスタＤＳＡＤｘ内のソースアドレスＳＡＤは、リード指令に従った転送が終了する毎にインクリメントされる。
【００４０】
ＤＭＡディスティネーションアドレスレジスタＤＤＡＤｘ：ＣＨｘのＤＭＡ転送において、転送処理待ちのデータの先頭のもののディスティネーションアドレスＤＡＤを記憶するレジスタである。ディスティネーションアドレスインクリメントＤＡＩがディスティネーションアドレスのインクリメントを指示している場合、ＤＭＡディスティネーションアドレスレジスタＤＤＡＤｘ内のディスティネーションアドレスＤＡＤは、ライト指令に従った転送が終了する毎にインクリメントされる。
【００４１】
ＤＭＡバイトカウントレジスタＤＢＣｘ：ＣＨｘのＤＭＡ転送において、１ブロック当たりのバイト数ＢＣを記憶するレジスタである。本実施形態では、最大２５６ｋバイトまでのバイト数ＢＣをこのレジスタに設定可能である。ＤＭＡバイトカウントレジスタＤＢＣｘ内のバイト数ＢＣは、ライト指令に従った転送が完了する毎にデクリメントされ、ブロック転送が終了すると０になる。
【００４２】
ＤＭＡチェーンアドレスレジスタＤＣＮＡｘ：ＤＭＡチャネルレジスタ２５ｘに格納された各情報により制御されるブロック転送の後に続けて実行すべきブロック転送がある場合に、そのブロック転送に関するディスクリプタを記憶しているディスクリプタレジスタ２６内のレジスタのレジスタ番号ＣＮＡＤがこのＤＭＡチェーンアドレスレジスタＤＣＮＡｘに格納される。ＣＨｘのブロック転送が終了したとき、チェーン転送が有効であると、このＤＭＡチェーンアドレスレジスタＤＣＮＡｘ内のレジスタ番号ＣＮＡＤにより特定されるレジスタからディスクリプタが読み出され、ＤＭＡチャネルレジスタ２５ｘに格納される。そして、このディスクリプタに従ってブロック転送の制御が行われる。ディスクリプタに従って行われるブロック転送の後に続けて他の種類のブロック転送を行う場合もある。そのような場合には、先行するブロック転送に関するディスクリプタには、後続のブロック転送に関するディスクリプタの所在を示すレジスタ番号ＣＮＡＤが含まれている。先行するブロック転送の終了時には、このレジスタ番号ＣＮＡＤを参照することにより、後続のブロック転送に関するディスクリプタがディスクリプタレジスタ２６から読み出され、ＤＭＡチャネルレジスタ２５ｘに格納され、後続のブロック転送の制御に用いられる。
【００４３】
ＤＭＡギャザリングレジスタＤＧＴＨｘ：このＤＭＡギャザリングレジスタＤＧＴＨｘは、ギャザリングイネーブルＧＴＨＥ、ギャザリングカウントＧＴＨＣ、ギャザリングインターバルＧＴＩを記憶するレジスタである。ギャザリングイネーブルＧＴＨＥは、ＣＨｘのＤＭＡ転送においてギャザリングを行う場合には“１”、ギャザリングを行わない場合には“０”とされる。ギャザリングイネーブルＧＴＨＥが“１”である場合、ＤＭＡＣ２０は、前掲図４の例のように、ディスティネーションへの転送バイト数がギャザリングカウントＧＴＨＣに到達する毎に、ソースアドレスをギャザリングインターバルＧＴＩだけ増加させる。
【００４４】
ＤＭＡスキャッタリングレジスタＤＳＣＴｘ：このＤＭＡスキャッタリングレジスタＤＳＣＴｘは、スキャッタリングイネーブルＳＣＴＥ、スキャッタリングカウントＳＣＴＣ、スキャッタリングインターバルＳＣＴＩを記憶するレジスタである。スキャッタリングイネーブルＳＣＴＥは、ＣＨｘのＤＭＡ転送においてスキャッタリングを行う場合には“１”、スキャッタリングを行わない場合には“０”とされる。スキャッタリングイネーブルＳＣＴＥが“１”である場合、ＤＭＡＣ２０は、前掲図３の例のように、ソースからの転送バイト数がスキャッタリングカウントＳＣＴＣに到達する毎に、ディスティネーショ
ンアドレスをスキャッタリングインターバルＳＣＴＩだけ増加させる。
以上がＤＭＡＣ２０内に設けられた各種のレジスタの詳細である。
【００４５】
図５において、優先度制御部２７は、ＤＭＡコントロールレジスタＤＭＡＣＴＲに記憶されたアービトレーション方式を指定する情報に従って、ＤＭＡ転送を行うチャネルとしてＣＨ０またはＣＨ１を選択し、選択したチャネルのＤＭＡチャネルレジスタ２５ｘ内の情報をトランスファ制御部２８に引き渡す装置である。
【００４６】
トランスファ制御部２８は、優先度制御部２７を介して引き渡された情報に従って、ＡＨＢバス６０を介したソースからＦＩＦＯ２１へのリード転送およびＦＩＦＯ２１からディスティネーションへのライト転送を行わせ、ソースからディスティネーションへのＤＭＡ転送を行わせる。その際、実行すべき旨の指定があれば、上述したスキャッタリング、ギャザリングのためのアドレス制御、パック／アンパックの制御、チェーン転送の制御を行う。
【００４７】
さらに詳述すると、トランスファ制御部２８は、転送バイト数が指定されたスキャッタリングカウントに到達する毎にディスティネーションアドレスを指定されたスキャッタリングインターバルだけ変化させるスキャッタリング手段として機能する。また、トランスファ制御部２８は、転送バイト数が指定されたギャザリングカウントに到達する毎にソースアドレスを指定されたギャザリングインターバルだけ変化させるギャザリング手段として機能する。また、トランスファ制御部２８は、ソースのデータ幅がディスティネーションのデータ幅よりも大きい場合に、ソースから取得したデータをディスティネーションのデータ幅のデータとし、ＦＩＦＯ２１に格納するパック手段として機能する。また、トランスファ制御部２８は、ディスティネーションのデータ幅がソースのデータ幅よりも大きい場合に、ソースから取得したデータをＦＩＦＯ２１から読み出して、ディスティネーションのデータ幅のデータとし、ディスティネーションに転送するアンパック手段として機能する。さらにトランスファ制御部２８は、ＤＭＡチャネルレジスタ２５ｘ内の制御情報に従って実行しているＤＭＡ転送と連係して実行すべき１または複数種類のＤＭＡ転送に関する制御情報であるディスクリプタがディスクリプタレジスタ２６に格納されている場合に、それらのディスクリプタを順次読み出し、各ＤＭＡ転送を順次実行するチェーン転送手段として機能する。
【００４８】
そして、ＤＭＡ転送が終了したとき、トランスファ制御部２８は、その旨の通知を割り込み制御部２９へ送る。これにより割り込み制御部２９は、割り込み信号を画像プロセッサ３０に送り、ＤＭＡ転送の終了を通知する。
【００４９】
本実施形態の１つの特徴として、トランスファ制御部２８によって実行されるバス転送効率化のためのトランスファ幅最適化制御がある。図６は、このトランスファ幅最適化制御の処理内容を示すフローチャートである。このトランスファ幅最適化制御の処理内容は、リード転送でもライト転送でも基本的には同様な内容であるので、以下、リード転送を例に説明する。
【００５０】
まず、トランスファ制御部２８は、ソースにおける転送待ちデータのバイト数に関する判断を行う（ステップＳ１）。そして、転送待ちデータのバイト数が８以上である場合、ＤＭＡソースアドレスレジスタＤＳＡＤｘの記憶内容、すなわち、転送処理待ちのデータの先頭のもののソースアドレスＳＡＤが８の倍数か否かを判断する（ステップＳ２）。この判断結果が「ＮＯ」である場合、転送処理待ちのデータの先頭のもののソースアドレスＳＡＤが４の倍数か否かを判断する（ステップＳ３）。この判断結果が「ＮＯ」である場合、転送処理待ちのデータの先頭のもののソースアドレスＳＡＤが２の倍数か否かを判断する（ステップＳ４）。この判断結果が「ＮＯ」である場合、ステップＳ１４に進み、１バイトのリード指令を発行可能かどうか、具体的にはＦＩＦＯ２１に１バイト以上のデータを書き込む余裕があるか否かを判断する。この判断結果が「ＹＥＳ」である場合、１バイトのリード指令を発行し（ステップＳ２４）、ステップＳ１に戻る。一方、ステップＳ１４の判断結果が「ＮＯ」である場合は、ＦＩＦＯ２１が満杯なのでリード転送を終了する。
【００５１】
ステップＳ４の判断結果が「ＮＯ」となった後、ステップＳ２４が実行されると、転送処理待ちのデータの先頭のもののソースアドレスＳＡＤは２の倍数となる。ここで、ソースアドレスＳＡＤが２の倍数ではあるが、４の倍数ではない場合、ステップＳ４の判断結果が「ＹＥＳ」となってステップＳ１３に進む。このステップＳ１３では、２バイトのリード指令を発行可能か否かを判断する。具体的にはＦＩＦＯ２１に２バイト以上のデータを書き込む余裕があるか否かを判断する。また、ギャザリングを行っている場合には、２バイトのリード指令を発行すると、それらの２バイトの各ソースアドレスがギャザリングインターバルの加算を行うアドレスを跨ぐことにならないか否かを判断する。ＦＩＦＯ２１に２バイト以上のデータを書き込む余裕があり、かつ、２バイトのリード指令を発行してもそれらの２バイトの各ソースアドレスがギャザリングインターバルの加算を行うアドレスを跨ぐことにならない（ギャザリングを行っている場合のみ）場合、ステップＳ１３の判断結果は「ＹＥＳ」となる。この場合、ステップＳ２３に進んで２バイトのリード指令を１回発行し、ステップＳ１に戻る。これに対し、ステップＳ１３の判断結果が「ＮＯ」である場合は、ステップＳ１４を介してステップＳ２４に進み、１バイトのリード指令を発行する。
【００５２】
ステップＳ３の判断結果が「ＮＯ」となった後、ステップＳ４およびＳ１３の判断結果が「ＹＥＳ」となってステップＳ２３が実行されると、転送処理待ちのデータの先頭のもののソースアドレスＳＡＤは４の倍数となる。ここで、ソースアドレスＳＡＤが４の倍数ではあるが、８の倍数ではない場合、ステップＳ３の判断結果が「ＹＥＳ」となってステップＳ１２に進む。このステップＳ１２では、４バイトのリード指令を発行可能か否かを判断する。具体的にはＦＩＦＯ２１に４バイト以上のデータを書き込む余裕があるか否かを判断する。また、ギャザリングを行っている場合には、４バイトのリード指令を発行すると、それらの４バイトの各ソースアドレスがギャザリングインターバルの加算を行うアドレスを跨ぐことにならないか否かを判断する。ステップＳ１２の判断結果が「ＹＥＳ」である場合、ステップＳ２２に進んで４バイトのリード指令を１回発行し、ステップＳ１に戻る。これに対し、ステップＳ１２の判断結果が「ＮＯ」である場合は、ステップＳ１３に進む。以後の処理は既に説明した通りである。
【００５３】
ステップＳ２の判断結果が「ＮＯ」となった後、ステップＳ３およびＳ１２の判断結果が「ＹＥＳ」となってステップＳ２２が実行されると、転送処理待ちのデータの先頭のもののソースアドレスＳＡＤは８の倍数となる。この場合、ステップＳ１からステップＳ２に進んだとき、その判断結果が「ＹＥＳ」となってステップＳ１１に進む。このステップＳ１１では、８バイトのリード指令を発行可能か否かを判断する。具体的にはＦＩＦＯ２１に８バイト以上のデータを書き込む余裕があるか否かを判断する。また、ギャザリングを行っている場合には、８バイトのリード指令を発行すると、それらの８バイトの各ソースアドレスがギャザリングインターバルの加算を行うアドレスを跨ぐことにならないか否かを判断する。ステップＳ１１の判断結果が「ＹＥＳ」である場合、ステップＳ２１に進む。このステップＳ２１では、可能な回数だけ８バイトのリード指令を発行する。ここで、「可能な回数だけ」とは、ＦＩＦＯ２１がオーバフローせず、かつ、ギャザリングを行っている場合には、８バイトのリード指令により読み出される８バイトの各ソースアドレスがギャザリングインターバルの加算を行うアドレスを跨ぐことにならない範囲で、という意味である。このステップＳ２１の処理を終えると、ステップＳ１に戻る。これに対し、ステップＳ１１の判断結果が「ＮＯ」である場合は、ステップＳ１２に進む。以後の処理は既に説明した通りである。
【００５４】
リード転送が進み、転送待ちデータのバイト数が８未満になると、ステップＳ１からステップＳ３０に進むこととなる。このステップＳ３０では、４バイト、２バイト、１バイトのリード指令を組み合わせて発行し、転送待ちデータをソースからＦＩＦＯ２１に転送する。そして、転送待ちデータのバイト数が０またはＦＩＦＯ２１が満杯となったとき、リード転送を終了する。
【００５５】
以上、リード転送を例に説明したが、ライト転送の場合の処理内容も基本的に同様である。ただし、ライト転送の場合は、ステップＳ２、Ｓ３およびＳ４の判断の対象は、ＤＭＡディスティネーションアドレスレジスタＤＤＡＤｘの記憶内容、すなわち、転送処理待ちのデータの先頭のもののディスティネーションアドレスＤＡＤとなる。また、ステップＳ１１、Ｓ１２、Ｓ１３、Ｓ１４、Ｓ２１では、ＦＩＦＯ２１がアンダフローしないか否かの判断を行うとともに、スキャッタリングを行っている場合には、ライト指令により転送されるバイトのディスティネーションアドレスがスキャッタリングインターバルの加算を行うアドレスを跨ぐことになるか否かの判断を行うことになる。
【００５６】
以上が本実施形態の詳細である。本実施形態によれば、トランスファ制御部２８が以上説明したトランスファ幅最適化制御を行うので、バスのデータ幅を最大限に利用した効率的なＤＭＡ転送を行うことができる。また、本実施形態によれば、ＤＭＡＣ２０がスキャッタチング、ギャザリング、パック／アンパック、チェーン転送の機能を備えているので、画像プロセッサ３０の負担を減らし、画像処理装置全体としての処理効率を高めることができる。また、本実施形態によれば、スキャッタリングやギャザリングといった複雑なアドレス制御を行う場合でも、トランスファ制御部２８は、それに対応してトランスファ幅最適化制御を実行するので、バスの使用効率を総合的に高めることができる。
【００５７】
以上、この発明の一実施形態について説明したが、この発明にはこれ以外にも他の実施形態が考えられる。例えば上記実施形態では、ＡＨＢバス６０のデータ幅を６４ビットとしたため、ｍ＝３とし、転送待ちデータの先頭のもののソースアドレスまたはディスティネーションを２ｍ＝２３＝８の倍数まで進めるための小さなデータ幅でのリード転送またはライト転送を行い、８バイト幅での効率的なリード転送またはライト転送へ移行させた。しかし、ＡＨＢバス６０のデータ幅は、６４ビット以外でもよく、その場合にも、ＡＨＢバス６０のデータ幅に応じてｍの値を決定すればよい。
【図面の簡単な説明】
【００５８】
【図１】この発明の一実施形態であるＤＭＡＣ２０を含む画像処理装置の構成を示すブロック図である。
【図２】同実施形態において行われるスキャッタリングおよびギャザリングを説明する図である。
【図３】同実施形態におけるスキャッタリングの際のアドレス制御を説明する図である。
【図４】同実施形態におけるギャザリングの際のアドレス制御を説明する図である。
【図５】同実施形態におけるＤＭＡＣ２０の構成を示すブロック図である。
【図６】同ＤＭＡＣ２０のトランスファ制御部の処理内容を示すフローチャートである。
【符号の説明】
【００５９】
１……画像処理ＬＳＩ、２……ホストＣＰＵ、３……圧縮動画ＲＯＭ、１０１……ホストＩ／Ｆ、１０２……ＲＯＭ  Ｉ／Ｆ、１０３……ＳＤＲＡＭ  Ｉ／Ｆ、１００……動画デコーダ、１０……レジスタ、２０……ＤＭＡＣ、２１……ＦＩＦＯ、３０……画像プロセッサ、３１……ＳＲＡＭ、４０……ＣＧメモリＩ／Ｆ、４１……バッファ、５０……フレームバッファＩ／Ｆ、５１……リードバッファ、５２……ライトバッファ、６０……ＡＨＢバス、２２……ＡＨＢマスタＩ／Ｆ、２３……ＡＨＢスレーブＩ／Ｆ、２４……ＤＭＡレジスタ、２５０，２５１……チャネルレジスタ、２６……ディスクリプタレジスタ、２７……優先度制御部、２８……トランスファ制御部、２９……割り込み制御部。
【図１】
2009237790.tif 000003
【図２】
2009237790.tif 000004
【図３】
2009237790.tif 000005
【図４】
2009237790.tif 000006
【図５】
2009237790.tif 000007
【図６】
2009237790.tif 000008