(57)【特許請求の範囲】
【請求項１】
システムバスに結合される少なくとも１つのチャネルを含み、該少なくとも１つのチャネルのＤＭＡ転送設定に従い該システムバスを介したＤＭＡ転送を実行するＤＭＡコントローラと、
該ＤＭＡコントローラに結合されるＤＭＡＣ制御装置
を含み、該ＤＭＡＣ制御装置は、
それぞれがＤＭＡ転送設定可能な複数の仮想チャネルと、
該複数の仮想チャネルの１つを選択する仮想チャネルアービタと、
該選択された仮想チャネルの該ＤＭＡ転送設定の内容を読み出して該ＤＭＡコントローラの該少なくとも１つのチャネルにＤＭＡ転送設定として書き込むＤＭＡ設定回路
を含み、該複数の仮想チャネルの各々は、
該ＤＭＡコントローラの該少なくとも１つのチャネルのチャネルレジスタとＤＭＡ転送設定の内容に関して同一構成の仮想チャネルレジスタと、
該ＤＭＡコントローラの該少なくとも１つのチャネルの該チャネルレジスタにはないＤＭＡ転送設定を格納する拡張レジスタと
を含み、該ＤＭＡＣ制御装置は該選択された仮想チャネルの該仮想チャネルレジスタの内容及び該拡張レジスタの内容の少なくとも一方に応じて該ＤＭＡコントローラの動作を制御することを特徴とするＤＭＡ転送システム。
【請求項２】
該少なくとも１つのチャネルの各々は、
該システムバスのバスマスタとして機能するＤＭＡ制御回路と、
ＤＭＡ転送設定を格納するチャネルレジスタ
を含むことを特徴とする請求項１記載のＤＭＡ転送システム。
【請求項３】
該システムバスに結合されるＣＰＵを更に含み、該ＤＭＡＣ制御装置は該システムバスに結合され、該複数の仮想チャネルは該システムバスを介して該ＣＰＵにより該ＤＭＡ転送設定可能なように構成されることを特徴とする請求項１記載のＤＭＡ転送システム。
【請求項４】
該ＤＭＡコントローラの該少なくとも１つのチャネルは、該ＣＰＵにより該システムバスを介してＤＭＡ転送設定可能なように構成されることを特徴とする請求項３記載のＤＭＡ転送システム。
【請求項５】
該ＤＭＡＣ制御装置は、該ＤＭＡコントローラの該少なくとも１つのチャネルからのＤＭＡ転送終了を示す信号を受け取り、該選択された仮想チャネルのレジスタ設定内容を更新するライトバック回路を更に含むことを特徴とする請求項１記載のＤＭＡ転送システム。
【請求項６】
該拡張レジスタは、該ＤＭＡコントローラが実行する該ＤＭＡ転送が複数の転送元アドレスを対象とする場合に、該複数の転送元アドレスの少なくとも１つを格納する拡張アドレスレジスタを含むことを特徴とする請求項１記載のＤＭＡ転送システム。
【請求項７】
該拡張レジスタは、該ＤＭＡコントローラの該少なくとも１つのチャネルにＤＭＡ転送設定を複数回書き込むことにより該ＤＭＡＣ制御装置が該ＤＭＡコントローラに複数回のＤＭＡ転送を実行させて擬似的にチェイン転送を実現する場合に、該チェイン転送を指定する拡張転送モードレジスタを含むことを特徴とする請求項１記載のＤＭＡ転送システム。
【請求項８】
該複数の仮想チャネルの各々は少なくとも１つのグループにグループ分けされ、該少なくとも１つのグループは該ＤＭＡコントローラの該少なくとも１つのチャネルに一対一に対応付けられており、該仮想チャネルアービタは該少なくとも１つのチャネルの１つに対して、該少なくとも１つのグループのうちの対応するグループの中から該複数の仮想チャネルのうちの１つを選択するよう構成されることを特徴とする請求項１記載のＤＭＡ転送システム。
【請求項９】
該ＤＭＡコントローラの該少なくとも１つのチャネルに該ＤＭＡ転送設定を書き込む動作に関して、該少なくとも１つのグループ間で優先順位が割当てられていることを特徴とする請求項８記載のＤＭＡ転送システム。
【請求項１０】
該拡張レジスタは、該ＤＭＡコントローラに該ＤＭＡ転送を複数回実行させる場合の該ＤＭＡ転送の実行回数を格納する拡張転送回数レジスタを含むことを特徴とする請求項１記載のＤＭＡ転送システム。
【請求項１１】
システムバスに結合される少なくとも１つのチャネルを含み、該少なくとも１つのチャネルのチャネルレジスタのＤＭＡ転送設定に従い該システムバスを介したＤＭＡ転送を実行するＤＭＡコントローラと、
該システムバスと該ＤＭＡコントローラとに結合されるＤＭＡＣ制御装置と、
該システムバスに結合されるＣＰＵと、
を含み、該ＤＭＡＣ制御装置は、
それぞれがＤＭＡ転送設定可能な複数の仮想チャネルと、
該複数の仮想チャネルの１つを選択する仮想チャネルアービタと、
該選択された仮想チャネルの該ＤＭＡ転送設定の内容を読み出して該ＤＭＡコントローラの該少なくとも１つのチャネルの該チャネルレジスタにＤＭＡ転送設定として書き込むＤＭＡ設定回路
を含み、
該ＤＭＡＣ制御装置の該複数の仮想チャネルは、該システムバスを介して該ＣＰＵにより該ＤＭＡ転送設定可能なように構成され
該ＤＭＡコントローラの該少なくとも１つのチャネルの該チャネルレジスタは、該ＣＰＵから該システムバスを介してアクセスされ前記仮想チャネルを介することなくＤＭＡ転送設定可能であるように構成されることを特徴とするＤＭＡ転送システム。
【請求項１２】
該少なくとも１つのチャネルの各々は、
該システムバスのバスマスタとして機能するＤＭＡ制御回路と、
ＤＭＡ転送設定を格納するチャネルレジスタ
を含み、該複数の仮想チャネルの各々はＤＭＡ転送設定を格納する仮想チャネルレジスタを含むことを特徴とする請求項１１記載のＤＭＡ転送システム。
【請求項１３】
該ＤＭＡＣ制御装置は、該ＤＭＡコントローラの該少なくとも１つのチャネルからのＤＭＡ転送終了を示す信号を受け取り、該選択された仮想チャネルのレジスタ設定内容を更新するライトバック回路を更に含むことを特徴とする請求項１１記載のＤＭＡ転送システム。
【請求項１４】
該複数の仮想チャネルの各々は少なくとも１つのグループにグループ分けされ、該少なくとも１つのグループは該ＤＭＡコントローラの該少なくとも１つのチャネルに一対一に対応付けられており、該仮想チャネルアービタは該少なくとも１つのチャネルの１つに対して、該少なくとも１つのグループのうちの対応するグループの中から該複数の仮想チャネルのうちの１つを選択するよう構成されることを特徴とする請求項１１記載のＤＭＡ転送システム。
【請求項１５】
該ＤＭＡコントローラの該少なくとも１つのチャネルに該ＤＭＡ転送設定を書き込む動作に関して、該少なくとも１つのグループ間で優先順位が割当てられていることを特徴とする請求項１４記載のＤＭＡ転送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータ転送システムに関し、詳しくはＤＭＡ転送システムに関する。
【背景技術】
【０００２】
ＤＭＡ（Direct  Memory  Access）転送システムにより、ＣＰＵを介すことなく転送元から転送先へ直接にデータ転送することで、高速なデータ転送が可能となる。図１は、従来のＤＭＡ転送システムの構成の一例を示す図である。
【０００３】
図１のＤＭＡ転送システム１０は、ＣＰＵ１１、ＤＭＡコントローラ（ＤＭＡＣ）１２、メモリ１３、メモリ１４、及びシステムバス１５を含む。ＣＰＵ１１、ＤＭＡコントローラ１２、メモリ１３、及びメモリ１４は、システムバス１５により互いに接続される。
【０００４】
ＣＰＵ１１は、ＤＭＡの転送元アドレス、転送先アドレス、転送データサイズ、転送回数等を指定して、ＤＭＡコントローラ１２に対してＤＭＡ転送の設定をする。ＤＭＡコントローラ１２は、これに応じて、指定されたＤＭＡ転送を実行する。例えば、ＤＭＡコントローラ１２は、メモリ１３内の転送元アドレスから転送データサイズで指定される大きさのデータを読み出し、システムバス１５を介して、メモリ１４内の転送先アドレスへ転送する。ＤＭＡコントローラ１２は、転送元アドレス及び転送先アドレスを順次増減させながら、このデータ転送を指定された回数実行する。このようにしてＤＭＡ転送が実行される間、ＣＰＵ１１は他の処理を実行することが可能となる。
【０００５】
ＤＭＡコントローラ１２は、チャネルアービタ２１、１つ又は複数のチャネル２２、及びＦＩＦＯ２３を含む。チャネル２２は、各々が独立して実行されるＤＭＡ転送処理に対応し、ｎ個のチャネルが設けられている場合にはｎ個の独立したＤＭＡ転送処理を実行することができる。１つのチャネル２２は、ＤＭＡ制御回路２４及びチャネルレジスタ２５を含む。ＣＰＵ１１による上記のＤＭＡ転送設定は、各チャネル２２のチャネルレジスタ２５に対して行われる。
【０００６】
チャネルレジスタ２５は、転送要求レジスタ、転送モードレジスタ、転送幅レジスタ、転送回数レジスタ、転送元アドレスレジスタ、転送先アドレスレジスタ、及びオプションレジスタ等のレジスタを含む。転送要求レジスタには、転送要求の有無を設定する。転送モードレジスタには、シングル転送やバースト転送などの転送の種類を設定する。転送幅レジスタには、バイト／ハーフワード／ワード等の転送幅を設定する。転送回数レジスタには、上記転送モード及び転送幅で実行するデータ転送の回数を設定する。転送元アドレスレジスタには、データを読み出す元であるメモリ内のアドレスを設定する。転送先アドレスレジスタには、データを書き込む先であるメモリ内のアドレスを設定する。オプションレジスタには、一時停止、強制停止、転送終了後のアドレス又は転送回数のリロード、割込み信号の有無選択等、ＤＭＡ転送のために必須ではない転送オプションを設定する。これらの設定は、システムバス１５を介してＣＰＵ１１により行われる。
【０００７】
チャネルアービタ２１は、各チャネル２２の転送要求レジスタを常時参照し、転送要求が有りの場合、転送要求有りの複数のチャネル２２のうちで、実際にＤＭＡ転送を実行するチャネル２２を所定の優先順位に従って１つ選択する。チャネルアービタ２１は、選択したチャネル２２に対して当該チャネルが選択された旨を通知する。選択通知されたチャネル２２が転送処理を実行して転送要求を下げると、チャネルアービタ２１は、転送要求有りの複数のチャネル２２の中から次のＤＭＡ転送を実行する１つのチャネル２２を選択する。
【０００８】
チャネルアービタ２１が、ＤＭＡ転送を実行する１つのチャネル２２を選択する際に使用する所定の優先順位としては、例えば「固定優先順位」や「回転優先順位」がある。固定優先順位は、チャネルに割当てられた優先順位が完全に固定であり、優先順位の最も高いチャネルが常に選択されてＤＭＡ転送を実行する。この順位方式は、チャネル（転送パス）間の優先順位が明確である場合に有効である。また回転優先順位では、最後にＤＭＡ転送を実行したチャネルを基準として優先順位が回転する。この順位方式は、特定のチャネルを優先することをなくし、全ての転送を並列的に実行する場合に有効である。
【０００９】
チャネルアービタ２１が１つのチャネル２２を選択し選択通知すると、選択通知されたチャネル２２においては、ＤＭＡ制御回路２４がシステムバス１５のバスマスタとなり、ＤＭＡ転送を実行する。即ちＤＭＡ制御回路２４が、転送元アドレスレジスタが指し示す転送元アドレス（例えばメモリ１３内のアドレス）にシステムバス１５を介してアクセスして、転送幅レジスタにより指定されるデータサイズのデータをシステムバス１５に読み出す。読み出したデータはＦＩＦＯ２３に一旦格納される。ＤＭＡ制御回路２４は更に、転送先アドレスレジスタが指し示す転送先アドレス（例えばメモリ１４内のアドレス）に、ＦＩＦＯ２３に格納された読み出しデータを、システムバス１５を介して書き込む。
【００１０】
ＤＭＡ転送が終了すると、ＤＭＡ転送したチャネル２２において、チャネルレジスタ２５の転送要求レジスタの転送要求を下げ、ＤＭＡ制御回路２４が転送終了を示す割込み信号をアサートする。
【００１１】
近年、システムにおける各種処理（例えばマルチメディア処理）の高度化により、同時に処理したい転送数が増えている。これは、ＤＭＡコントローラに対するチャネル数の増加要求となる。しかしＤＭＡコントローラに実装するチャネル数を増加することは、回路規模の増大につながる。特に携帯端末向けＬＳＩのように、チップサイズ及び消費電力が問題となる分野では、回路規模の増大は非常に大きな負担となる。
【００１２】
一方、同時に要求される転送経路の数に対して、実装されているＤＭＡコントローラのチャネル数が少ない場合、システム全体の性能低下を惹き起こす。この場合、ＣＰＵが転送要求を調停しながらＤＭＡ転送を制御する構成としたのでは、ＣＰＵへの負担が増大してしまう。ＣＰＵへの負担を減らすためには、ＤＭＡコントローラのチャネル数を増やせばよいが、ＤＭＡコントローラはハードウェアで設計されるため、チャネルだけを増減することは難しい。そこで図２に示すように複数個のＤＭＡコントローラ１２−１乃至１２−３を実装するシステム構成とすることが考えられる。しかしこの構成の場合、１つの転送が終了するたびに複数のＤＭＡコントローラ１２−１乃至１２−３間でシステムバス１５の奪い合いが発生するため、パフォーマンスの低下が避けられない。また、実装するＤＭＡコントローラの個数に応じて回路規模が増加する。
【００１３】
またＤＭＡコントローラに要求される転送機能はシステム毎に異なるので、単純な転送機能のみ備えたＤＭＡコントローラを各システムに用いていたのでは、十分な転送性能を得ることができない。従って、特定のシステムに特化した転送機能を備えるＤＭＡコントローラを設計することが、そのシステムでの性能を重視した場合には好ましい。しかし、そのように設計されたＤＭＡコントローラを他のシステムで使用する場合には、上記の特化した転送機能が活かされないことがあり、不要な回路が含まれることとなってしまう。また各システム毎に最適化したＤＭＡコントローラを設計していたのでは、設計、開発、検証の各工程がシステム毎に必要となり負担が大きい。
【特許文献１】特開２００３−２５６３５６号公報
【特許文献２】特開２００３−２４２０９８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
以上を鑑みて、本発明は、回路規模を大幅に増大することなくチャネル数を増加し、更に特定のシステムに対して機能特化することなく高度な機能を実現可能なＤＭＡ転送システムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
ＤＭＡ転送システムは、システムバスに結合される少なくとも１つのチャネルを含み、該少なくとも１つのチャネルのＤＭＡ転送設定に従い該システムバスを介したＤＭＡ転送を実行するＤＭＡコントローラと、該ＤＭＡコントローラに結合されるＤＭＡＣ制御装置を含み、該ＤＭＡＣ制御装置は、それぞれがＤＭＡ転送設定可能な複数の仮想チャネルと、該複数の仮想チャネルの１つを選択する仮想チャネルアービタと、該選択された仮想チャネルの該ＤＭＡ転送設定の内容を読み出して該ＤＭＡコントローラの該少なくとも１つのチャネルにＤＭＡ転送設定として書き込むＤＭＡ設定回路を含み、該複数の仮想チャネルの各々は、該ＤＭＡコントローラの該少なくとも１つのチャネルのチャネルレジスタとＤＭＡ転送設定の内容に関して同一構成の仮想チャネルレジスタと、該ＤＭＡコントローラの該少なくとも１つのチャネルの該チャネルレジスタにはないＤＭＡ転送設定を格納する拡張レジスタとを含み、該ＤＭＡＣ制御装置は該選択された仮想チャネルの該仮想チャネルレジスタの内容及び該拡張レジスタの内容の少なくとも一方に応じて該ＤＭＡコントローラの動作を制御することを特徴とする。
【発明の効果】
【００１６】
本発明の少なくとも１つの実施例によれば、システムにおいて利用可能なチャネル数は、ＤＭＡＣ制御装置に実装される仮想チャネルの数に等しい。従って、仮想チャネルの数を調節するだけで、容易にチャネルの数を増加することができる。この際、ＤＭＡコントローラは従来のＤＭＡコントローラの構成のままでよいので、容易にチャネル数を増加することができる。またＤＭＡＣ制御装置を用いてチャネル数を増加させた場合、チャネルの設定を保持するレジスタ分しか回路が増加しないので、チャネル数増加に伴う回路規模増大を必要最小限に抑えることができる。
【００１７】
また仮想チャネルに拡張レジスタを設ける構成とすれば、この拡張レジスタを利用することで高機能な転送機能を実現することができる。例えば、ＣＰＵからＤＭＡＣ制御装置にＤＭＡ転送を１回設定するだけで、ＤＭＡＣ制御装置がＤＭＡコントローラへ複数回のＤＭＡ転送設定を実行し、複雑なＤＭＡコントローラの制御を実行すること等ができる。
【発明を実施するための最良の形態】
【００１８】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１９】
図３は、本発明によるＤＭＡ転送システム３０の構成の一例を示す図である。図３において、図１と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００２０】
図３のＤＭＡ転送システム３０は、ＣＰＵ１１、ＤＭＡコントローラ（ＤＭＡＣ）１２、メモリ１３、メモリ１４、システムバス１５、メモリ１６、専用バス１７、及びＤＭＡＣ制御装置３１を含む。ＣＰＵ１１、ＤＭＡコントローラ１２、メモリ１３、及びメモリ１４は、システムバス１５により互いに接続される。ＤＭＡコントローラ１２及びＤＭＡＣ制御装置３１は、専用バス１７及び所定の信号線を介して接続される。専用バス１７は、バスアクセス競合によるパフォーマンスの低下を無視すれば、システムバス１５であっても原理的には問題がない。また専用バス１７は、直接に接続した双方向の信号線であっても構わない。
【００２１】
ＤＭＡコントローラ１２は図１で説明したＤＭＡコントローラと同じ構成でよいが、説明のために、チャネル２２が拡張用チャネル２２ＡとＣＰＵ用チャネル２２Ｂとにグループ分けされている。拡張用チャネル２２Ａは、本発明によるＤＭＡＣ制御装置３１によりアクセスされ設定されるチャネルである。ＣＰＵ用チャネル２２Ｂは、従来どおりＣＰＵ１１によりアクセスされ設定されるチャネルである。この例では、２つの拡張用チャネル２２Ａと１つのＣＰＵ用チャネル２２Ｂとが図示さているが、これらの数に限定されるものではなく、１又は複数の任意の数の拡張用チャネル２２Ａ及びＣＰＵ用チャネル２２Ｂが設けられていてよい。
【００２２】
図１の構成と同様に、ＣＰＵ１１は、ＤＭＡの転送元アドレス、転送先アドレス、転送データサイズ、転送回数等を指定して、ＤＭＡコントローラ１２のＣＰＵ用チャネル２２Ｂのチャネルレジスタ２５に対してＤＭＡ転送の設定をする。ＤＭＡコントローラ１２のＣＰＵ用チャネル２２ＢのＤＭＡ制御回路２４は、設定内容に応じて、指定されたＤＭＡ転送を実行する。
【００２３】
本発明によるＤＭＡＣ制御装置３１は、複数の仮想チャネル３２、仮想チャネルアービタ３３、ＤＭＡ設定回路３４、及びライトバック回路３５を含む。仮想チャネル３２は、ＣＰＵ１１によりシステムバス１５を介して設定される。仮想チャネルアービタ３３は、ＤＭＡ転送を要求している複数の仮想チャネル３２間でのアービトレーションを行い、１つの仮想チャネル３２を選択する。ＤＭＡ設定回路３４は、仮想チャネルアービタ３３により選択された仮想チャネル３２の設定内容を、ＤＭＡコントローラ１２の拡張用チャネルのチャネルレジスタ２５に専用バス１７を介して設定する。ライトバック回路３５は、ＤＭＡ処理を終了したＤＭＡコントローラ１２の拡張用チャネルから割り込み信号を受け取り、仮想チャネル３２へのライトバックを実行する。
【００２４】
図４は、仮想チャネル３２のレジスタ構成を示す図である。１つの仮想チャネル３２は、（ａ）に示す仮想チャネルレジスタ４０を含む。仮想チャネルレジスタ４０は、転送要求レジスタ、転送モードレジスタ、転送幅レジスタ、転送回数レジスタ、転送元アドレスレジスタ、転送先アドレスレジスタ、オプションレジスタ、及び拡張レジスタ４１等のレジスタを含む。拡張レジスタ４１以外は、従来のＤＭＡコントローラ１２のチャネルレジスタ２５と同様の構成である。転送要求レジスタには、転送要求の有無を設定する。転送モードレジスタには、シングル転送やバースト転送などの転送の種類を設定する。転送幅レジスタには、バイト／ハーフワード／ワード等の転送幅を設定する。転送回数レジスタには、上記転送モード及び転送幅で実行するデータ転送の回数を設定する。転送元アドレスレジスタには、データを読み出す元であるメモリ内のアドレスを設定する。転送先アドレスレジスタには、データを書き込む先であるメモリ内のアドレスを設定する。オプションレジスタには、一時停止、強制停止、転送終了後のアドレス又は転送回数のリロード、割込み信号の有無選択等、ＤＭＡ転送のために必須ではない転送オプションを設定する。これらの設定は、システムバス１５を介してＣＰＵ１１により行われる。
【００２５】
拡張レジスタ４１の構成が図４（ｂ）に示される。拡張レジスタ４１は、拡張転送回数レジスタ、拡張転送モードレジスタ、拡張アドレスレジスタ、拡張用チャネル選択レジスタ等を含む。拡張レジスタ４１のこれらのレジスタは、ＤＭＡコントローラ１２のチャネルレジスタ２５ではできない設定を行なうレジスタである。この拡張レジスタ４１の構成は、ＤＭＡＣ制御装置３１にどのような拡張転送機能を設けるかにより異なる。
【００２６】
拡張レジスタ４１を使用しない場合には、ＣＰＵ１１から見るとＤＭＡコントローラ１２とＤＭＡＣ制御装置３１とは同一のインターフェースとなる。ＤＭＡＣ制御装置３１により提供される拡張機能を用いる場合にのみ、拡張レジスタ４１を使用する。
【００２７】
例えば、ＤＭＡコントローラ１２のチャネルレジスタ２５の転送回数レジスタが１６ｂｉｔである場合、一度の設定で最大６５，５３６回の転送を実行することができる。この場合、ＤＭＡＣ制御装置３１が拡張転送回数レジスタとして４ｂｉｔレジスタを有しているとすると、この拡張転送回数レジスタを利用してＤＭＡＣ制御装置３１の制御下でＤＭＡコントローラ１２によるＤＭＡ転送を複数回実行すれば、一度の設定で最大１，０４８，５７６回の転送が実行できるようになる。これにより、ＣＰＵ１１への割込み回数を最大１／１６に減らすことができる。またＤＭＡコントローラ１２がチェイン転送機能を実装していない場合、ＤＭＡＣ制御装置３１の拡張レジスタ４１の拡張転送モードレジスタにチェイン転送設定を行なうことで、擬似的なチェイン転送を実行することができる。この際、複数の転送元または転送先のアドレスが必要になるため、拡張アドレスレジスタが使用される。チェイン転送については後ほど詳細に説明する。
【００２８】
仮想チャネルアービタ３３は、各仮想チャネル３２の転送要求レジスタを常時参照し、転送要求が有りの場合、転送要求有りの複数の仮想チャネル３２のうちで、実際にＤＭＡ転送を実行する仮想チャネル３２を所定の優先順位に従って１つ選択する。仮想チャネルアービタ３３は、選択した１つの仮想チャネル３２のレジスタ設定を、ＤＭＡ設定回路３４に通知する。ＤＭＡ設定回路３４は、専用バス１７（システムバス１５の場合にはシステムバス１５）のバスマスタとなり、選択された仮想チャネル３２のレジスタ設定内容に従って、ＤＭＡコントローラ１２の拡張用チャネル２２Ａのチャネルレジスタ２５にＤＭＡ転送設定を行なう。
【００２９】
ＤＭＡＣ制御装置３１により制御されるＤＭＡコントローラ１２の拡張用チャネル２２Ａの割込み信号は、ＤＭＡＣ制御装置３１のライトバック回路３５に接続されている。拡張用チャネルがＤＭＡ転送を終了すると、割込み信号が出力され、ライトバック回路３５に伝えられる。ライトバック回路３５は割込み信号に応答して、仮想チャネルアービタ３３から何れの仮想チャネル３２が選択されたかを参照し、終了した拡張用チャネルレジスタから得た所定の情報を、選択された仮想チャネル３２へ書き込む（ライトバック）。またライトバック回路３５は、上記割込み信号に応答して、選択された仮想チャネル３２の割込み信号ビットを有効にする。この割込み信号ビットに応じた割り込み信号がＣＰＵ１１に供給される。
【００３０】
上記説明では、仮想チャネルアービタ３３が、転送要求有りの複数の仮想チャネル３２のうちの１つを所定の優先順位に従って選択し、ＤＭＡ設定回路３４が、選択された仮想チャネル３２のレジスタ設定内容に従ってＤＭＡコントローラ１２の拡張用チャネル２２Ａのチャネルレジスタ２５にＤＭＡ転送設定を行なうと説明した。しかしこの場合、実際には、ＤＭＡコントローラ１２に拡張用チャネル２２Ａが１つだけ設けられている構成であるか、或いは複数の拡張用チャネル２２Ａのうちで設定対象である拡張用チャネルが既に決まっている必要がある。そうでない場合には、何れの拡張用チャネル２２ＡにＤＭＡ転送設定をするのか、ＤＭＡ設定回路３４が管理する必要が生じる。
【００３１】
図５は、複数の拡張用チャネル２２ＡがＤＭＡコントローラ１２に設けられている場合にＤＭＡ設定回路３４によりＤＭＡ転送設定する構成の一例を示す図である。図５の例では、３個の拡張用チャネル２２Ａ−１乃至２２Ａ−３がＤＭＡコントローラ１２に設けられている。これに対応して、ＤＭＡ設定回路３４は設定回路５３−１乃至５３−３を含み、仮想チャネルアービタ３３は転送チャネル選択回路５１−１乃至５１−３を含む。
【００３２】
図５の例では、６個の仮想チャネル３２−１乃至３２−６が設けられている。仮想チャネル３２−１及び３２−２は、転送チャネル選択回路５１−１に予め割当てられている。また仮想チャネル３２−３及び３２−５は転送チャネル選択回路５１−２に、仮想チャネル３２−４及び３２−６は転送チャネル選択回路５１−３に、予めそれぞれ割当てられている。
【００３３】
転送チャネル選択回路５１−１は、仮想チャネル３２−１及び３２−２から転送要求があると、何れか１つを選択する。選択された仮想チャネルのレジスタ設定内容は、設定回路５３−１に供給される。設定回路５３−１は、選択された仮想チャネルのレジスタ設定内容を、専用バス１７を介して拡張用チャネル２２Ａ−１のチャネルレジスタ２５に格納する。転送チャネル選択回路５１−２は、仮想チャネル３２−３及び３２−５から転送要求があると、何れか１つを選択する。選択された仮想チャネルのレジスタ設定内容は、設定回路５３−２に供給される。設定回路５３−２は、選択された仮想チャネルのレジスタ設定内容を、専用バス１７を介して拡張用チャネル２２Ａ−２のチャネルレジスタ２５に格納する。転送チャネル選択回路５１−３は、仮想チャネル３２−４及び３２−６から転送要求があると、何れか１つを選択する。選択された仮想チャネルのレジスタ設定内容は、設定回路５３−３に供給される。設定回路５３−３は、選択された仮想チャネルのレジスタ設定内容を、専用バス１７を介して拡張用チャネル２２Ａ−３のチャネルレジスタ２５に格納する。
【００３４】
このように、各仮想チャネル３２−１乃至３２−６を拡張用チャネル２２Ａ−１乃至２２Ａ−３の何れか１つに予め割当ててグループ分けしておき、同一の拡張用チャネルに割当てられている複数の仮想チャネルの中で仮想チャネルアービタ３３による調停を行うようにする。なお複数の設定回路５３−１乃至５３−３から同時に複数のＤＭＡ転送設定を行うことはできないので、設定回路５３−１乃至５３−３間でも優先順位に従った選択が必要である。この目的のために、ＤＭＡ設定回路３４にはセレクタ５４が設けられる。一旦ＤＭＡ転送が開始されると、ＤＭＡ転送は１チャネルずつしか終了しないので、ＤＭＡ転送設定も１つずつしか行なわれない。従って、設定回路５３−１乃至５３−３に対しては、回転優先順位等の単純な優先順位を１つ決めておけばよい。
【００３５】
何れの仮想チャネルが何れの拡張用レジスタに対応するかを示す情報は、仮想チャネルアービタ３３のチャネル割当てレジスタ５２にて一元的に管理する。このチャネル割当てレジスタ５２に、各仮想チャネル３２−１乃至３２−６が何れの転送チャネル選択回路５１−１乃至５１−３に割当てられるかを示す情報を設定することで、動的に仮想チャネルのグルーピングを変更することが可能である。
【００３６】
図５に示す構成とすることで、グループ間の優先順位の設定によりＤＭＡコントローラ１２の拡張チャネル間の優先順位を制御し、更に各グループ毎に仮想チャネルに対して他のグループとは独立に優先順位を設定することができる。これにより、きめ細かい優先順位方式を容易に実現することが可能となる。
【００３７】
図６は、図３のＤＭＡ転送システムによるＤＭＡ転送処理のフローチャートを示す図である。ステップＳ１で、ＤＭＡＣ制御装置３１の仮想チャネルアービタ３３が仮想チャネル３２の転送要求の有無を監視する。ステップＳ２で、仮想チャネルアービタ３３が所定の優先順位に従ってＤＭＡ転送する仮想チャネル３２を選択する。ステップＳ３で、選択された仮想チャネル３２のレジスタ設定に従って、ＤＭＡ設定回路３４が、専用バス１７を介してＤＭＡコントローラ１２の拡張用チャネル２２ＡにＤＭＡ転送の設定を行なう。
【００３８】
ステップＳ４において、ＤＭＡコントローラ１２が、ステップＳ３で設定された拡張用チャネル２２Ａについて、ＤＭＡ転送処理を実行する。ステップＳ５において、ＤＭＡＣ制御装置３１のライトバック回路３５が、ＤＭＡコントローラ１２からＤＭＡ転送終了／エラー割込みがかかるのを待機する。ＤＭＡ転送終了／エラー割込みがかかると、ステップＳ６で、ライトバック回路３５が仮想チャネルアービタ３３を参照し、転送を終了した仮想チャネル（現在選択されている仮想チャネル）を確認する。
【００３９】
ステップＳ７で、ライトバック回路３５が、仮想チャネル３２の仮想チャネルレジスタ４０の内容を、ＤＭＡコントローラ１２の拡張用チャネル２２Ａのチャネルレジスタ２５の値に応じて更新する。ステップＳ８で、ライトバック回路３５が、仮想チャネルレジスタ４０の値に基づいて、ＤＭＡ転送が全て終了したか否かを判定する。まだ終了していないＤＭＡ転送処理が有る場合には、ステップＳ１に戻り上記の処理を繰り返す。
【００４０】
全てのＤＭＡ転送処理が終了した場合には、ステップＳ９で、ライトバック回路３５が、仮想チャネル３２の終了／エラー割込み信号を有効にしたり、拡張設定を読み込んで次の転送の準備をしたりするなど、終了に伴う処理を実行する。以上でＤＭＡ転送処理を終了する。
【００４１】
図７は、ＤＭＡ転送を実行する仮想チャネルレジスタを選択する処理のフローチャートを示す図である。ステップＳ１で、仮想チャネルアービタ３３が、何れかの仮想チャネル３２から転送要求が出ているかを判定する。ステップＳ２で、仮想チャネルアービタ３３が、予め設定された選択優先順位に従って、ＤＭＡ転送を実行する仮想チャネル３２を１つ選択する。ステップＳ３で、仮想チャネルアービタ３３は、選択した仮想チャネル３２の転送要求が下がるのを待つ。ステップＳ３で転送要求が下がると選択処理が終了し、新たな選択処理がステップＳ１から開始され、次の転送チャネルを選択する。
【００４２】
以上説明した本発明によるＤＭＡ転送システム３０によれば、システムにおいて利用可能なチャネル数は、ＤＭＡＣ制御装置３１に実装される仮想チャネル３２の数に等しい。従って、仮想チャネル３２の数を調節するだけで、容易にチャネルの数を増加することができる。この際、ＤＭＡコントローラ１２は従来のＤＭＡコントローラの構成のままでよいので、容易にチャネル数を増加することができる。
【００４３】
またＤＭＡコントローラ１２を複数個実装してチャネル数を増やした場合には、増加させたＤＭＡコントローラ１２の個数分だけ回路規模が増大する。これに対して、ＤＭＡＣ制御装置３１を用いてチャネル数を増加させた場合、チャネルの設定を保持するレジスタ分しか回路が増加しないので、チャネル数増加に伴う回路規模増大を必要最小限に抑えることができる。
【００４４】
また図２のようにＤＭＡコントローラ１２を複数個実装してチャネル数を増加させた場合は、ＤＭＡコントローラ１２間でシステムバスの奪い合いが生じ、転送パフォーマンスが低下する。しかし図３の構成の場合は、ＤＭＡＣ制御装置３１が全仮想チャネルの優先順位を一括管理してＤＭＡコントローラ１２を制御するので、パフォーマンスの低下を回避できる。
【００４５】
図８は、図１の従来のＤＭＡ転送システム１０におけるＤＭＡ転送を示すシーケンス図である。図９は、図２の従来のＤＭＡ転送システムにおけるＤＭＡ転送を示すシーケンス図である。図１０は、図３の本発明によるＤＭＡ転送システム３０におけるＤＭＡ転送を示すシーケンス図である。
【００４６】
図８乃至図１０において、「レジスタ設定」は、ＣＰＵによるチャネルレジスタの設定動作を示す。「読み出し制御」は、ＤＭＡコントローラ１２からメモリに対して実行される読み出しアクセスの動作シーケンスを示す。「リードデータ」は、読み出しアクセスに対して読み出されたデータの転送動作を示す。「書き込み制御」は、ＤＭＡコントローラ１２からメモリに対して実行される書き込みアクセスの動作シーケンスを示す。「書き込み完了」は、書き込みアクセスに対して、書き込み処理が終了したことを通知する動作を示す。「終了割り込み」は、ＤＭＡコントローラ１２或いはＤＭＡＣ制御装置３１からＣＰＵ１１へのＤＭＡ転送終了を示す割り込み信号である。また「割り込みクリア」は、「終了割り込み」に対してＣＰＵ１１が割り込み信号をクリアする動作を示す。
【００４７】
図８に示す図１の従来のＤＭＡ転送システム１０におけるＤＭＡ転送動作においては、最初にＣＰＵ１１からＤＭＡコントローラ１２の２つのチャネル２２についてのレジスタ設定が実行される。実際のＤＭＡ転送動作としては、チャネル２２の１つであるＣｈａｎｎｅｌ１についてのＤＭＡ転送が最初に実行され、その後、もう１つのチャネル２２であるＣｈａｎｎｅｌ２についてのＤＭＡ転送が実行される。ＤＭＡコントローラ１２に設けられるチャネル数が２つである場合、３以上の数のＤＭＡ転送を実行するためには、ＣＰＵ１１からのレジスタ設定を含む図８に示す処理全体を繰り返して実行する必要がある。この場合、ＣＰＵ１１への負担が大きい。
【００４８】
図９に示す図２の従来のＤＭＡ転送システムにおけるＤＭＡ転送動作の例においては、２つのＤＭＡコントローラ１２−１及び１２−２が利用される。最初にＣＰＵ１１からＤＭＡコントローラ１２−１の２つのチャネル２２についてのレジスタ設定が実行され、更にＤＭＡコントローラ１２−２の２つのチャネル２２についてのレジスタ設定が実行される。実際のＤＭＡ転送動作としては、まずＤＭＡコントローラ１２−１のチャネル２２の１つであるＣｈａｎｎｅｌ１−１についてのＤＭＡ転送が最初に実行され、その後、ＤＭＡコントローラ１２−２のチャネル２２の１つであるＣｈａｎｎｅｌ２−１についてのＤＭＡ転送が実行される。この際、Ｃｈａｎｎｅｌ１−１についてのＤＭＡ転送の終了後に、ＤＭＡコントローラ１２−１とＤＭＡコントローラ１２−２との間で、バスアクセス権を獲得するための競合が発生し、時間ロス６０が生じる。Ｃｈａｎｎｅｌ２−１についてのＤＭＡ転送が実行され終了すると、その後、ＤＭＡコントローラ１２−１のチャネル２２の１つであるＣｈａｎｎｅｌ１−２についてのＤＭＡ転送が実行される。この際、Ｃｈａｎｎｅｌ２−１についてのＤＭＡ転送の終了後に、ＤＭＡコントローラ１２−１とＤＭＡコントローラ１２−２との間で、バスアクセス権を獲得するための競合が発生し、時間ロス６１が生じる。Ｃｈａｎｎｅｌ１−２についてのＤＭＡ転送後には、同様に、時間ロス６２が生じる。
【００４９】
このように複数のＤＭＡコントローラを設ける構成の場合、ＤＭＡ転送が１つ完了するたびに、システムバス１５の奪い合いが発生してしまう。そのために、ＤＭＡ転送間に時間のロスが生じ、パフォーマンスの低下に繋がってしまう。
【００５０】
図１０に示す図３のＤＭＡ転送システム３０におけるＤＭＡ転送においては、最初にＣＰＵ１１からＤＭＡＣ制御装置３１の４つの仮想チャネル３２についてのレジスタ設定が実行される。ＤＭＡコントローラ１２で使用されるチャネル２２Ａの数は２つであるが、ＤＭＡＣ制御装置３１に４つの仮想チャネル３２が設けられているために、ＣＰＵ１１は４つのＤＭＡ転送処理について、レジスタ設定を纏めて終了させてしまうことができる。
【００５１】
ＤＭＡＣ制御装置３１は、仮想チャネル３２の１つであるＣｈａｎｎｅｌ１についてのレジスタ設定を、ＤＭＡコントローラ１２のチャネル２２Ａの１つであるＣｈａｎｎｅｌ−Ａに書き込む。これによりＣｈａｎｎｅｌ−ＡについてのＤＭＡ処理が最初に実行される。これと並行して、ＤＭＡＣ制御装置３１は、仮想チャネル３２の１つであるＣｈａｎｎｅｌ２についてのレジスタ設定を、ＤＭＡコントローラ１２のチャネル２２Ａの１つであるＣｈａｎｎｅｌ−Ｂに書き込む。従って、Ｃｈａｎｎｅｌ−ＡについてのＤＭＡ処理が終了すると、直ちにＣｈａｎｎｅｌ−ＢについてのＤＭＡ処理が実行される。
【００５２】
Ｃｈａｎｎｅｌ−ＢについてのＤＭＡ処理に並行して、ＤＭＡＣ制御装置３１は、仮想チャネル３２の１つであるＣｈａｎｎｅｌ３についてのレジスタ設定を、ＤＭＡコントローラ１２のチャネル２２Ａの１つであるＣｈａｎｎｅｌ−Ａに書き込む。これによりＣｈａｎｎｅｌ−ＢについてのＤＭＡ処理が終了すると、直ちにＣｈａｎｎｅｌ−ＡについてのＤＭＡ処理が実行される。これと並行して、ＤＭＡＣ制御装置３１は、仮想チャネル３２の１つであるＣｈａｎｎｅｌ４についてのレジスタ設定を、ＤＭＡコントローラ１２のチャネル２２Ａの１つであるＣｈａｎｎｅｌ−Ｂに書き込む。従って、Ｃｈａｎｎｅｌ−ＡについてのＤＭＡ処理が終了すると、直ちにＣｈａｎｎｅｌ−ＢについてのＤＭＡ処理が実行される。
【００５３】
図１０に示すように、本発明のＤＭＡ転送システム３０のＤＭＡ転送処理においては、ＤＭＡコントローラ１２に設けられる拡張用チャネル２２Ａの数が２つであるにも関わらず、ＣＰＵ１１を介さずに４チャネル分のＤＭＡ転送を連続して実行することができる。また図９の場合のようにシステムバス１５の奪い合いが発生しないので、各ＤＭＡ転送間で時間ロスが生じることもない。
【００５４】
また図９のように複数個のＤＭＡコントローラを用いた場合、各チャネルが複数個のＤＭＡコントローラ１２を跨いで実装されるので、チャネル間での厳密な優先順位制御が困難になる。それに対して図１０のようにＤＭＡＣ制御装置３１を用いた場合には、ＤＭＡＣ制御装置３１においてチャネル間の優先順位を一元的に管理するので、意図した通りの優先順位を厳密に守りながらＤＭＡ転送することができる。
【００５５】
また本発明のＤＭＡ転送システム３０のＤＭＡ転送処理においては、ＤＭＡＣ制御装置３１を介さずに、従来と同様にＣＰＵ１１からＤＭＡコントローラ１２に直接にＤＭＡ設定することもできる。図１１は、図３のＤＭＡ転送システム３０においてＤＭＡコントローラ１２に対するＣＰＵからのＤＭＡ設定とＤＭＡＣ制御装置３１からのＤＭＡ設定とが混在する場合のＤＭＡ転送処理を示す図である。
【００５６】
図１１のＤＭＡ転送処理においては、ＤＭＡコントローラ１２のＣｈａｎｎｅｌ−ＡがＣＰＵ用チャネル２２Ｂとして使用され、Ｃｈａｎｎｅｌ−Ｂが拡張用チャネル２２Ａとして使用されている。図１１に示されるように、ＤＭＡコントローラ１２のＣＰＵ用チャネル２２Ｂに対してはＣＰＵ１１から直接にレジスタ設定が行われ、拡張用チャネル２２Ａに対してはＣＰＵ１１からＤＭＡＣ制御装置３１を介してレジスタ設定が行われる。この構成ではＣＰＵ１１がＤＭＡコントローラ１２のＣＰＵ用チャネルへダイレクトにＤＭＡ転送設定して、転送を実行することができる。この場合、ＤＭＡＣ制御装置３１を介さないため、ＣＰＵ１１の命令に対する反応が早く、緊急度の高い転送など、転送命令発生から転送開始までの時間を短くしたい場合に有効な構成である。
【００５７】
ＣＰＵ１１は、ＤＭＡコントローラ１２のＣＰＵ用チャネル２２Ｂに対しては、ＤＭＡ転送が終了する度に随時レジスタ設定を実行している。それに対してＤＭＡコントローラ１２の拡張用チャネル２２Ａに対しては、ＤＭＡＣ制御装置３１を用いているので、ＤＭＡＣ制御装置３１の複数の仮想チャネル３２にＣＰＵ１１から纏めて最初にレジスタ設定をしておけばよい。その後、ＤＭＡＣ制御装置３１が随時ＤＭＡコントローラ１２の拡張用チャネル２２Ａに対するレジスタ設定処理を実行する。
【００５８】
また図３に示すＤＭＡ転送システム３０においては、仮想チャネル３２の拡張レジスタ４１を利用することにより、高機能な転送機能を実現することができる。例えば、ＣＰＵ１１からＤＭＡＣ制御装置３１にＤＭＡ転送を１回設定するだけで、ＤＭＡＣ制御装置３１がＤＭＡコントローラ１２へ複数回のＤＭＡ転送設定を実行し、複雑なＤＭＡコントローラ１２の制御を実行することができる。
【００５９】
具体例としてＤＭＡ転送システム３０においてチェイン転送を実現する場合について説明する。チェイン転送とは１つ又は複数の転送元から１つ又は複数の転送先への転送を順番に実行する転送方式である。例えば、１）メモリ１３からメモリ１６へ画像のヘッダ情報を書き込み、２）メモリ１４からメモリ１６へ画像のデータ情報を書き込み、３）メモリ１３からメモリ１６へ画像のフッタ情報を書き込む、という転送を実行するとメモリ１６には所定のフォーマットの画像データが形成される。これら１）乃至３）のような一連の転送処理を１回の設定で実行する転送方式をチェイン転送方式と呼ぶ。
【００６０】
図１２は、図１に示すような従来のＤＭＡコントローラ１２のみを用いた構成においてチェイン転送機能が実装されていない場合のＤＭＡ転送処理を示す図である。図１２においては、上記１）乃至３）のように、２つの転送元メモリから１つの転送先メモリに順次データを転送する処理が示される。図１２に示すように、ＣＰＵ１１からＤＭＡコントローラ１２へのレジスタ設定とＤＭＡコントローラ１２によるＤＭＡ転送処理とを、上記１）乃至３）の各転送処理に対して逐一独立に実行する必要がある。
【００６１】
図１３は、図３に示すＤＭＡ転送システム３０においてＤＭＡＣ制御装置３１の拡張レジスタ４１を用いることでチェイン転送機能を実現した場合のＤＭＡ転送処理を示す図である。まずＣＰＵ１１から、ＤＭＡＣ制御装置３１の仮想チャネル３２の１つであるＣｈａｎｎｅｌ１にレジスタ設定をする。この際、第１の転送元のアドレス（メモリ１３のアドレス）は、Ｃｈａｎｎｅｌ１の仮想チャネルレジスタ４０の転送元アドレスレジスタに設定される。更に仮想チャネルレジスタ４０への通常の設定に加え、Ｃｈａｎｎｅｌ１の拡張レジスタ４１の拡張転送モードレジスタにチェイン転送設定をする。また第２の転送元のアドレス（メモリ１４のアドレス）は、拡張レジスタ４１の拡張アドレスレジスタに設定される。
【００６２】
拡張レジスタ４１の拡張転送モードレジスタへのチェイン転送設定を検出すると、ＤＭＡＣ制御装置３１は、ＤＭＡコントローラ１２に第１の転送元であるメモリ１３からメモリ１６へのＤＭＡ転送を実行させるように、ＤＭＡコントローラ１２の拡張用チャネル２２Ａにレジスタ設定をする。このＤＭＡ転送が終了すると、ＤＭＡＣ制御装置３１は、ＤＭＡコントローラ１２に第２の転送元であるメモリ１４からメモリ１６へのＤＭＡ転送を実行させるように、ＤＭＡコントローラ１２の拡張用チャネル２２Ａに次のレジスタ設定をする。このＤＭＡ転送が終了すると、最後に、ＤＭＡコントローラ１２に第１の転送元であるメモリ１３からメモリ１６へのＤＭＡ転送を実行させるように、ＤＭＡＣ制御装置３１はＤＭＡコントローラ１２の拡張用チャネル２２Ａにレジスタ設定をする。
【００６３】
このように本発明のＤＭＡ転送システム３０では、ＣＰＵ１１からＤＭＡＣ制御装置３１に対してＤＭＡ転送設定を１回行うだけで、ＤＭＡＣ制御装置３１がＤＭＡコントローラ１２に対して複数回のＤＭＡ転送設定を実行して、擬似的にチェイン転送を実現することができる。これによりＣＰＵ１１への割り込み回数が減り、ＣＰＵ１１への負荷の軽減と転送パフォーマンスの向上を図ることができる。
【００６４】
図１４は、本発明によるＤＭＡ転送システム３０の変形例の構成を示す構成図である。図１４において、図３と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００６５】
図１４のＤＭＡ転送システム３０Ａにおいては、２つのＤＭＡコントローラ１２−１及び１２−２が設けられ、ＤＭＡＣ制御装置３１Ａがこれら２つのＤＭＡコントローラ１２−１及び１２−２を制御する構成となっている。ＤＭＡコントローラ１２−１及び１２−２の各々は、図３のＤＭＡコントローラ１２と同様の構成でよい。またＤＭＡＣ制御装置３１Ａの構成についても、例えば図５に構成例を示したように複数の拡張用チャネル２２Ａに対してレジスタ設定可能な構成であれば、図３のＤＭＡＣ制御装置３１の場合と同様でよい。また一度には１つのＤＭＡ転送しか実行されないので、ＤＭＡコントローラ１２−１及び１２−２からライトバック回路３５へのＤＭＡ転送終了の通知等も、図３のＤＭＡＣ制御装置３１の構成と同様に、拡張用チャネル２２Ａから直接にライトバック回路３５に通知する構成でよい。
【００６６】
図１４の構成では、例えばＤＭＡコントローラ１２−１としては基本的なＤＭＡ転送機能のみを備えたＤＭＡコントローラを用い、ＤＭＡコントローラ１２−２としては特定の転送に特化したＤＭＡ転送機能を備えたＤＭＡコントローラを用いる等が考えられる。このようにすることで、ＤＭＡＣ制御装置３１Ａでも手間のかかる特殊なＤＭＡ転送を効率的に実行することができる。
【００６７】
図１５は、本発明によるＤＭＡ転送システム３０の別の変形例の構成を示す構成図である。図１５において、図１４と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００６８】
図１５のＤＭＡ転送システム３０Ｂにおいては、図１４の構成と同様に、２つのＤＭＡコントローラ１２−１及び１２−２が設けられ、ＤＭＡＣ制御装置３１Ｂがこれら２つのＤＭＡコントローラ１２−１及び１２−２を制御する構成となっている。但しＤＭＡＣ制御装置３１Ｂは、ＤＭＡコントローラ１２−１用のＤＭＡ設定回路３４−１とＤＭＡコントローラ１２−２用のＤＭＡ設定回路３４−２とを別々に備えている。
【００６９】
図１６は、本発明によるＤＭＡ転送システム３０の別の変形例の構成を示す構成図である。図１６において、図１４と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００７０】
図１６のＤＭＡ転送システム３０Ｃにおいては、システムバスがシステムバス１５−１とシステムバス１５−２とに分割され、システムバス１５−１とシステムバス１５−２との間をＤＭＡＣ制御装置３１Ｃにより結合している。システムバス１５−１には、ＣＰＵ１１、メモリ１３、メモリ１４、ＤＭＡコントローラ１２−１、及びＤＭＡＣ制御装置３１Ｃが接続され、システムバス１５−２には、メモリ７１、メモリ７２、ＤＭＡコントローラ１２−２、及びＤＭＡＣ制御装置３１Ｃが接続されている。
【００７１】
この構成により、２つのシステムバスを跨いだＤＭＡＣ制御をＤＭＡＣ制御装置３１Ｃが行なう。ＤＭＡ転送設定は、ＣＰＵ１１が、システムバス１５−１を介してＤＭＡＣ制御装置３１に対して実行する。ＤＭＡＣ制御装置３１は、仮想チャネル３２の拡張レジスタ４１を用いて、システムバス１５−１とシステムバス１５−２とを区別可能なように構成すればよい。
【００７２】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【００７３】
【図１】ＤＭＡ転送システムの構成の一例を示す図である。
【図２】複数個のＤＭＡコントローラを実装するシステム構成を示す図である。
【図３】本発明によるＤＭＡ転送システムの構成の一例を示す図である。
【図４】仮想チャネルのレジスタ構成を示す図である。
【図５】複数の拡張用チャネルがＤＭＡコントローラに設けられている場合にＤＭＡ設定回路によりＤＭＡ転送設定する構成の一例を示す図である。
【図６】図３のＤＭＡ転送システムによるＤＭＡ転送処理のフローチャートを示す図である。
【図７】ＤＭＡ転送を実行する仮想チャネルレジスタを選択する処理のフローチャートを示す図である。
【図８】図１の従来のＤＭＡ転送システムにおけるＤＭＡ転送を示すシーケンス図である。
【図９】図２の従来のＤＭＡ転送システムにおけるＤＭＡ転送を示すシーケンス図である。
【図１０】図３の本発明によるＤＭＡ転送システムにおけるＤＭＡ転送を示すシーケンス図である。
【図１１】図３のＤＭＡ転送システムにおいてＤＭＡコントローラに対するＣＰＵからのＤＭＡ設定とＤＭＡＣ制御装置からのＤＭＡ設定とが混在する場合のＤＭＡ転送処理を示す図である。
【図１２】図１に示す従来のＤＭＡコントローラのみを用いた構成においてチェイン転送機能が実装されていない場合のＤＭＡ転送処理を示す図である。
【図１３】図３に示すＤＭＡ転送システムにおいてＤＭＡＣ制御装置の拡張レジスタを用いることでチェイン転送機能を実現した場合のＤＭＡ転送処理を示す図である。
【図１４】本発明によるＤＭＡ転送システムの変形例の構成を示す構成図である。
【図１５】本発明によるＤＭＡ転送システムの別の変形例の構成を示す構成図である。
【図１６】本発明によるＤＭＡ転送システムの別の変形例の構成を示す構成図である。
【符号の説明】
【００７４】
１１  ＣＰＵ
１２  ＤＭＡコントローラ
１３  メモリ
１４  メモリ
１５  システムバス
１６  メモリ
１７  専用バス
２１  チャネルアービタ
２２  チャネル
２２Ａ  拡張用チャネル
２２Ｂ  ＣＰＵ用チャネル
２３  ＦＩＦＯ
３０  ＤＭＡ転送システム
３１  ＤＭＡＣ制御装置
３２  仮想チャネル
３３  仮想チャネルアービタ
３４  ＤＭＡ設定回路
３５  ライトバック回路
【図１】
0004499008.tif 000002
【図２】
0004499008.tif 000003
【図３】
0004499008.tif 000004
【図４】
0004499008.tif 000005
【図５】
0004499008.tif 000006
【図６】
0004499008.tif 000007
【図７】
0004499008.tif 000008
【図８】
0004499008.tif 000009
【図９】
0004499008.tif 000010
【図１０】
0004499008.tif 000011
【図１１】
0004499008.tif 000012
【図１２】
0004499008.tif 000013
【図１３】
0004499008.tif 000014
【図１４】
0004499008.tif 000015
【図１５】
0004499008.tif 000016
【図１６】
0004499008.tif 000017