(57)【要約】【課題】ＤＭＡシステムにおいて，ディスクリプタチェイン方式のＤＭＡ転送を実行中に，転送データの転送内容を動的に変更する。【解決手段】ＤＭＡＣ５２は，メモリ５３に格納されたチェイン状のディスクリプタを順次読み出し，読み出したディスクリプタの転送制御情報に基づきメモリ５３に格納された転送データをＤＭＡ転送する。そして，ＣＰＵ５１からの一時停止信号に応答して前記読み出したディスクリプタに対するＤＭＡ転送を一時停止する。【選択図】図５
2012073745.tif 000002
【特許請求の範囲】
【請求項１】
転送データを格納するメモリと，
転送データの転送制御情報を含むチェイン状のディスクリプタを生成し前記メモリに格納するＣＰＵと，
前記メモリに格納された前記チェイン状のディスクリプタを順次読み出し，当該読み出されたディスクリプタの転送制御情報に基づき前記メモリに格納された転送データをＤＭＡ転送し，前記ＣＰＵからの一時停止信号に応答して前記読み出されたディスクリプタに対するＤＭＡ転送を一時停止するＤＭＡＣを有するＤＭＡシステム。
【請求項２】
請求項１において，
前記ＣＰＵは，前記転送データのＤＭＡ転送中に前記ＤＭＡＣに一時停止信号を出力し，新たなディスクリプタを生成し前記メモリに格納した後に，前記一時停止信号を解除するＤＭＡシステム。
【請求項３】
転送データを格納するメモリと，
転送データの転送制御情報を含むチェイン状のディスクリプタを生成し前記メモリに格納するＣＰＵと，
設定レジスタを有し当該設定レジスタに設定されるディスクリプタの転送制御情報に基づき前記メモリに格納された転送データをＤＭＡ転送する複数のＤＭＡＣと，
前記メモリに格納された前記チェイン状のディスクリプタを順次読み出し，当該読み出されたディスクリプタの転送制御情報を非動作のＤＭＡＣの設定レジスタに順次設定し，前記ＣＰＵからの一時停止信号に応答して，前記設定を一時停止することにより前記読み出されたディスクリプタに対するＤＭＡ転送を一時停止するＤＭＡＣアービタを有するＤＭＡシステム。
【請求項４】
請求項３において，
前記ＣＰＵは，前記転送データのＤＭＡ転送中に前記ＤＭＡＣアービタに一時停止信号を出力し，新たなディスクリプタを生成し前記メモリに格納した後に，前記一時停止信号を解除するＤＭＡシステム。
【請求項５】
請求項３又は４において，
前記ＤＭＡＣアービタは，指定レジスタを有し，前記ＣＰＵから前記指定レジスタに設定されたチャンネル番号に対応するＤＭＡＣの設定レジスタにディスクリプタの転送制御情報を設定するＤＭＡシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ＤＭＡシステムに関する。
【背景技術】
【０００２】
ＣＰＵの負荷を軽減するため，ＣＰＵを介さずにデータ転送を行うＤＭＡ（Direct Memory Access）システムが知られている。また，画像データなどのデータ量が多いデータを転送するため，ディスクリプタチェイン方式のＤＭＡ転送機能を有するＤＭＡシステムが提案されている。
【０００３】
ディスクリプタチェイン方式のＤＭＡ転送機能を有するＤＭＡシステムは，少なくとも，転送データを格納するメモリ，ＤＭＡ転送を制御するＤＭＡＣ（Direct Memory Access Controller），プログラムを逐次実行するＣＰＵを有する。ＣＰＵは，ＤＭＡ転送にあたり，例えば，転送データの転送制御情報を含むチェイン状のディスクリプタ１〜Ｍを生成しメモリに格納する。
【０００４】
ディスクリプタには，転送データの転送制御情報として，例えば，転送先デバイスのアドレス（ディスティネーションアドレスとも言う），転送データにおける転送単位区分であるブロックデータの先頭アドレス（ソースアドレスとも言う），当該ディスクリプタの次のディスクリプタのアドレスが記録されている。
【０００５】
ＤＭＡＣは，メモリに格納されたチェイン状のディスクリプタ１〜Ｍを順次読み出す。そして，読み出したディスクリプタ１〜Ｍのソースアドレスに対応するブロックデータ１〜Ｍを読み出して，ディスティネーションアドレスが示す送信先デバイスに順次転送する。以下，ブロックデータ１〜Ｍをデータ１〜Ｍと略記する。
【０００６】
このようなＤＭＡシステムが，例えば，特許文献１などに記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−２９８６４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで，ＤＭＡシステムがディスクリプタチェイン方式のＤＭＡ転送を実行中に，転送データの内容を動的に変更するリクエストが生じる場合がある。前記リクエストとしては，例えば，ブロックデータの転送順序を変更してデータ転送を実行する，あるブロックデータを除いてしてデータ転送を実行する，また，転送データに対して新たにデータを追加してデータ転送を行うリクエストがある。
【０００９】
このような場合，転送データの内容を動的に変更するため，ＣＰＵは，ディスクリプタを新たに生成する必要がある。
【００１０】
しかし，ＤＭＡＣによるＤＭＡ転送処理は，ＣＰＵの制御に基づき実行されるのではなくＤＭＡＣにより独立的に実行される。
【００１１】
それ故，ＣＰＵは，ＤＭＡＣによりディスクリプタチェイン方式のＤＭＡ転送が一旦開始されると，ＤＭＡＣが全データのＤＭＡ転送を完了するまで，ディスクリプタを新たに生成して，転送データの内容を動的に変更することはできない。
【００１２】
本発明の目的は，ディスクリプタチェイン方式のＤＭＡ転送を実行中に，転送データの転送内容を動的に変更するＤＭＡシステムを提供することにある。
【課題を解決するための手段】
【００１３】
ＤＭＡシステムの第１の側面は，転送データを格納するメモリと，
転送データの転送制御情報を含むチェイン状のディスクリプタを生成し前記メモリに格納するＣＰＵと，
前記メモリに格納された前記チェイン状のディスクリプタを順次読み出し，当該読み出されたディスクリプタの転送制御情報に基づき前記メモリに格納された転送データをＤＭＡ転送し，前記ＣＰＵからの一時停止信号に応答して前記読み出されたディスクリプタに対するＤＭＡ転送を一時停止するＤＭＡＣを有する。
【発明の効果】
【００１４】
第１の側面によれば，ＤＭＡ転送処理実行中に，転送データの転送内容を動的に変更することができる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態に関連するＤＭＡシステムの一例を示す図である。
【図２】ディスクリプタを説明する図である。
【図３】ＣＰＵによるＤＭＡＣの起動，ＤＭＡＣによるＤＭＡ転送を説明する図である。
【図４】ＤＭＡＣによるディスクリプタチェイン方式のＤＭＡ転送を説明する図である。
【図５】第１の実施の形態におけるＤＭＡシステムを示す図である。
【図６】ＤＭＡＣによるＤＭＡ転送，ＤＭＡ転送の一時停止，再開を説明する図である。
【図７】ＣＰＵによるＤＭＡＣに対するＤＭＡ転送の一時停止指示，一時停止指示の解除を説明する図である。
【図８】第２の実施の形態におけるＤＭＡシステムを示す図である。
【図９】第３の実施の形態におけるＤＭＡシステムを示す図である。
【図１０】ＣＰＵによるＤＭＡＣアービタの起動，ＤＭＡＣアービタによるディスクリプタの転送制御情報の設定，ＤＭＡＣによるＤＭＡ転送を説明する図である。
【図１１】ＤＭＡＣアービタによるディスクリプタの転送制御情報の設定，一時停止，ＤＭＡＣによるＤＭＡ転送を説明する図である。
【図１２】第４の実施の形態におけるＤＭＡシステムを示す図である。
【発明を実施するための形態】
【００１６】
図１は，本実施の形態に関連するＤＭＡシステムの一例を示す図で，ＤＭＡシステム１０は，ＣＰＵ１１，ＤＭＡＣ１２，メモリ１３を有する。なお，ＣＰＵ１１とＤＭＡＣ１２は，信号線Ｌ１を介して接続し，ＣＰＵ１１，ＤＭＡＣ１２，メモリ１３，外部バスＩ／Ｆ１５は，内部バスＢ１を介して接続し，外部バスＩ／Ｆ１５と外部デバイス１６は外部バスＢ２を介して接続している。
【００１７】
ＣＰＵ１１は，メモリ１３に格納されている転送データの転送制御情報を含むチェイン状のディスクリプタを生成しメモリ１３に格納する。なお，ディスクリプタについては，図２で説明する。
【００１８】
ＤＭＡＣ１２は，転送制御情報が設定される設定レジスタ１２ａを有し，メモリ１３に格納されたチェイン状のディスクリプタを順次読み出し，設定レジスタ１２ａに読み出したディスクリプタの転送制御情報を設定する。そして，ＤＭＡＣ１２は，設定レジスタ１２ａに設定されたディスクリプタの転送制御情報に基づきメモリ１３に格納された転送データを内部バスＢ１を介してＤＭＡ転送する。
【００１９】
メモリ１３は，転送データＴ１，転送データＴ１の転送制御情報を含むチェイン状のディスクリプタＤ１を格納する。図示例では，転送データＴ１のデータ１〜Ｍ１とディスクリプタＤ１のディスクリプタ１〜Ｍ１が対応している。なお，転送データＴ１のデータ０は，後述するＤＭＡＣ１２の起動時にＤＭＡ転送されるデータである。
【００２０】
外部バスＩ／Ｆ１５は，ＤＭＡシステム１０と外部デバイス１６とのバス通信におけるバス調停機能など様々なインターフェイス機能を提供する。
【００２１】
外部デバイス１６は，外部バスＩ／Ｆ１５経由でＤＭＡシステム１０とバス接続するＩ／Ｏデバイスであり，転送データＴ１の転送先デバイスであるとする。このようなデバイスをＤＭＡシステム１０内部に設けるようにしてもよい。
【００２２】
図２は，ディスクリプタを説明する図で，ディスクリプタ２０には，転送制御情報として，ステータス２１，ソースアドレス２２，ディスティネーションアドレス２３，転送サイズ２４，次のディスクリプタのアドレス２５が記録され，各情報がＤＭＡＣ１２の設定レジスタ１２ａに設定される。
【００２３】
ＤＭＡＣ１２の設定レジスタ１２ａは，前記各情報が設定される領域を有し，例えば，ステータス２１が設定されるステータス領域，ソースアドレス２２が設定されるソースアドレス領域などを有する。
【００２４】
ステータス２１には，設定レジスタ１２ａのステータス領域の初期化用データなどが記録される。ソースアドレス２２には，ＤＭＡ転送されるデータの先頭アドレスが記録される。ディスティネーションアドレス２３には，転送データの転送先デバイスのアドレスが記録される。転送サイズ２４にはＤＭＡ転送されるデータのサイズが記録される。次のディスクリプタのアドレス２５にはディスクリプタ２０の次のディスクリプタが格納されているメモリ１３のアドレスが記録される。
【００２５】
図２のディスクリプタ２０が，図１のメモリ１３に格納されているディスクリプタ１の場合，ソースアドレス２２には転送データＴ１のデータ１の先頭アドレス，ディスティネーションアドレス２３には，外部デバイス１６のアドレス，転送サイズ２４にはデータ１のデータサイズ，次のディスクリプタのアドレス２５には，ディスクリプタ２の先頭アドレスが記録される。
【００２６】
このように，ディスクリプタ２０に次のディスクリプタのアドレスを記録することで，複数のディスクリプタをチェイン状に連結することができる。
【００２７】
図３は，ＣＰＵによるＤＭＡＣの起動，ＤＭＡＣによるＤＭＡ転送を説明する図，図４は，ＤＭＡＣによるディスクリプタチェイン方式のＤＭＡ転送を説明する図である。
【００２８】
まず，ＣＰＵ１１によるＤＭＡＣ１２の起動について図３を用いて説明する。
【００２９】
ＣＰＵ１１は，転送データＴ１のデータ１〜Ｍ１に対応するディスクリプタＤ１（ディスクリプタ１〜Ｍ１）を生成しメモリ１３に格納する（Ｓ３１）。なお，転送データＴ１のデータ０は，ＤＭＡＣ起動時に転送されるデータであり，ＣＰＵ１１は，前記データ０のディスクリプタは生成しない。
【００３０】
次いで，ＣＰＵ１１は，ＤＭＡＣ１２を起動する（Ｓ３２）。具体的には，ＣＰＵ１１は，信号線Ｌ１を介して設定レジスタ１２ａに転送データＴ１のデータ０の転送制御情報としてソースアドレス，ディスティネーションアドレス，転送サイズ，ディスクリプタ１のアドレスをそれぞれ設定する。更に，ＤＭＡＣ１２の設定レジスタ１２ａにおけるステータス領域のＡＣＴビットをオン，ディスクリプタモードビットをオンに設定する。
【００３１】
前記ＡＣＴビットのオン設定により，ＤＭＡＣが起動し，前記ディスクリプタモードビットのオン設定により，以後，ＤＭＡＣは，自らディスクリプタを順次読み出す処理を実行する。
【００３２】
ＤＭＡＣ１２は，設定レジスタ１２ａに設定された転送制御情報に基づきメモリ１３に格納された転送データＴ１のデータ０をＤＭＡ転送する（Ｓ３３）。
【００３３】
具体的には，データ転送要求（書き込み要求）と，設定レジスタ１２ａに設定されたソースアドレスと転送サイズに対応するデータ０と，データ０のディスティネーションアドレスとを外部バスＩ／Ｆ１５に出力する。外部バスＩ／Ｆ１５は，受信したディスティネーションアドレスに基づき転送先デバイスを特定し，特定した転送先デバイスにデータの書き込み要求と，受信したデータと，ディスティネーションアドレスとを出力する。
【００３４】
前記ＤＭＡ転送が完了すると，ＤＭＡＣ１２は，図４のＳ４１の処理を実行する。図４のＳ４１において，ＤＭＡＣ１２は，設定レジスタ１２ａに設定されたディスクリプタ１のアドレスに基づきメモリ１３からディスクリプタ１を読み出す。ディスクリプタ１の読み出しが完了すると，ＤＭＡＣ１２は，設定レジスタ１２ａに読み出したディスクリプタ１の転送制御情報を設定する（Ｓ４２）。
【００３５】
ＤＭＡＣ１２は，設定レジスタ１２ａに設定されたディスクリプタ１の転送制御情報に基づきメモリ１３に格納されている転送データＴ１のデータ１をＤＭＡ転送する（Ｓ４３）。なお，転送制御情報が設定レジスタ１２ａに設定されると，ＤＭＡＣ１２は，設定レジスタ１２ａのステータス領域の動作ビットに“転送実行中”ビットを設定する。ＤＭＡＣ１２は，前記ＤＭＡ転送が完了すると，前記動作ビットに“非動作”ビットを設定する。
【００３６】
ＤＭＡ転送が完了すると，Ｓ４１に戻り，ＤＭＡＣ１２は，設定レジスタ１２ａに設定された次のディスクリプタのアドレスに基づきメモリ１３に格納されているディスクリプタ１の次のディスクリプタ２を読み出し，ＤＭＡＣ１２の設定レジスタ１２ａにディスクリプタ２の転送制御情報を設定する（Ｓ４２）。次いで，ＤＭＡＣ１２は，ディスクリプタ２の転送制御情報に基づき転送データＴ１のデータ２をＤＭＡ転送する（Ｓ４３）。
【００３７】
以後，ＤＭＡＣ１２は，ディスクリプタ３，４…とディスクリプタを順次読み出し，転送データＴ１の転送が完了するまで，Ｓ４１〜Ｓ４３の処理を繰り返す。
【００３８】
ところで，前述したように，ＤＭＡ転送中に，転送データの内容を変更するリクエストが生じる場合がある。例えば，転送データＴ１（データ１〜Ｍ１）の中の何れかのデータ（以下，当該データをデータＸと略記する）とデータＸの次のデータであるデータＸ＋１を入れ替えてＤＭＡ転送するリクエスト，転送データＴ１のデータＸを除いてＤＭＡ転送するリクエスト，転送データＴ１にデータＹを追加するリクエストなどである。このとき，ＣＰＵ１１は，転送データの内容変更に応じたディスクリプタを新たに生成しなければならない。
【００３９】
しかし，前述したように，ＣＰＵ１１は，ＤＭＡＣ１２によりディスクリプタチェイン方式のＤＭＡ転送が一旦開始されると，ＤＭＡＣ１２が全データのＤＭＡ転送を完了するまで，ディスクリプタを新たに生成して，転送データの内容を動的に変更することはできない。
【００４０】
そこで，以下に示す本実施の形態のＤＭＡシステムは，転送データの内容を動的に変更可能にした。
【００４１】
［第１の実施の形態］
図５は，第１の実施の形態におけるＤＭＡシステムを示す図で，ＤＭＡシステム５０は，ＣＰＵ５１，ＤＭＡＣ５２，メモリ５３を有する。なお，ＣＰＵ５１とＤＭＡＣ５２は，信号線Ｌ２を介して接続している。
【００４２】
ＣＰＵ５１は，メモリ５３に格納されている転送データの転送制御情報を含むチェイン状のディスクリプタを生成しメモリ５３に格納する。また，ＤＭＡＣ５２によるＤＭＡ転送中に，ＣＰＵ５１は，信号線Ｌ２を介してＤＭＡＣ５２に一時停止信号を出力する。そして，新たなディスクリプタを生成しメモリ５３に格納する。その後，信号線Ｌ２を介して前記一時停止信号を解除する。
【００４３】
ＤＭＡＣ５２は，転送制御情報が設定される設定レジスタ５２ａと，ＣＰＵ５１からの一時停止信号による一時停止ビットが設定される一時停止レジスタ５２ｂとを有する。
【００４４】
メモリ５３は，転送データＴ１，転送データＴ１の転送制御情報を含むチェイン状のディスクリプタＤ１を格納する。図示例では，転送データＴ１のデータ１〜Ｍ１とディスクリプタＤ１のディスクリプタ１〜Ｍ１が対応している。
【００４５】
なお，外部バスＩ／Ｆ５５，外部デバイス５６は，図１の外部バスＩ／Ｆ１５，外部デバイス１６と同様の機能を有する。
【００４６】
ＤＭＡＣ５２は，メモリ５３に格納されたチェイン状のディスクリプタを順次読み出し，設定レジスタ５２ａに読み出したディスクリプタの転送制御情報を設定する。そして，設定レジスタ５２ａに設定されたディスクリプタの転送制御情報に基づきメモリ５３に格納された転送データＴ１をＤＭＡ転送する。
【００４７】
また，ＣＰＵ５１が，信号線Ｌ２を介してＤＭＡＣ５２に一時停止信号を出力すると，ＤＭＡＣ５２は，前記一時停止信号に応答して，転送データＴ１のＤＭＡ転送を一時停止する。具体的には，ＤＭＡＣ５２は，一時停止レジスタ５２ｂを常時監視し，ＣＰＵ５１が，信号線Ｌ２を介して一時停止レジスタ５２ｂに一時停止ビットを設定（ｖａｌｉｄ値を設定）すると，ディスクリプタをメモリ５３から読み出し，設定レジスタ５２ａにディスクリプタの転送制御情報を設定する処理を一時停止する。
【００４８】
そして，ＣＰＵ５１が，信号線Ｌ２を介してＤＭＡＣ５２に前記一時停止信号の解除信号を出力すると（ＣＰＵ５１からの一時停止信号の解除），ＤＭＡＣ５２は，一時停止していた転送データＴ１のＤＭＡ転送を再開する。具体的には，ＤＭＡＣ５２は，一時停止レジスタ５２ｂを常時監視し，ＣＰＵ５１が，一時停止レジスタ５２ｂに設定された一時停止ビットを信号線Ｌ２を介して解除（ｉｎｖａｌｉｄ値を設定）すると，ＤＭＡＣ５２は，一時停止していた設定レジスタ５２ａに対するディスクリプタの転送制御情報の設定を再開する。
【００４９】
図６は，ＤＭＡＣ５２によるＤＭＡ転送，ＤＭＡ転送の一時停止，再開を説明する図，図７は，ＣＰＵ５１によるＤＭＡＣ５２に対するＤＭＡ転送の一時停止指示，一時停止指示の解除を説明する図である。
【００５０】
ＣＰＵ５１は，図３で説明したように，ＤＭＡＣ５２を起動し，ＤＭＡＣ５２は，転送データＴ１のデータ０のＤＭＡ転送を実行する。そして，ＤＭＡＣ５２は，ディスクリプタの転送制御情報に基づく転送データＴ１のＤＭＡ転送を実行する（図６のＳ６１〜Ｓ６３）。図６のＳ６１〜Ｓ６３は，図４のＳ４１〜Ｓ４３に対応する処理であり，その説明を省略する。
【００５１】
ＤＭＡＣ５２によるＤＭＡ転送中に，ＣＰＵ５１が転送データの内容を変更する場合，ＣＰＵ５１は，ＤＭＡＣ５２の一時停止レジスタ５２ｂに一時停止ビットを設定する（図７のＳ７１）。
【００５２】
一時停止レジスタ５２ｂに一時停止ビットが設定されて，設定レジスタ５２ａに設定されたディスクリプタの転送制御情報に基づく継続中のデータのＤＭＡ転送が完了すると，ＤＭＡＣ５２は，図６のＳ６４に示すように，ＤＭＡ転送を一時停止する（図６のＳ６４）。
【００５３】
図７の説明に戻る。ＣＰＵ５１は，Ｓ７１の処理を実行後，ＤＭＡＣ５２の設定レジスタ５２ａに設定されたディスクリプタの転送制御情報を参照して，前記した転送データの内容変更に応じたディスクリプタ（新たに生成するディスクリプタ）が，設定レジスタ５２ａに設定された転送制御情報に対応するディスクリプタ（以下，設定ディスクリプタと略記する）の後ろのディスクリプタに該当するものであるか確認する（Ｓ７２）。
【００５４】
ここで，設定ディスクリプタの後ろのディスクリプタとは，設定ディスクリプタの番号よりも大きい番号のディスクリプタを意味する。図５に示した例では，設定ディスクリプタの番号が２の場合（ディスクリプタ２），ディスクリプタ２の後ろのディスクリプタとは，ディスクリプタ３，４…を意味する。
【００５５】
Ｓ７２で前記確認をする理由を説明する。転送データＴ１のＤＭＡ転送が実行されている間に，例えば，転送データＴ１のデータＸを除いた前記転送データＴ１のＤＭＡ転送を実行する場合を想定する。
【００５６】
この場合，ＣＰＵ５１は，ＤＭＡＣ５２が…データＸ−１，データＸ＋１…の順にＤＭＡ転送できるように，データＸ−１に対応するディスクリプタＸ−１の内容を変更，すなわち，ディスクリプタＸ−１を新たに生成する。しかし，前記生成の際，既に，データＸのＤＭＡ転送が実行されていた場合には，ディスクリプタＸ−１を新たに生成しても意味がない。そこで，前記確認をする。
【００５７】
なお，前記変更としては，ディスクリプタＸ−１に記録されている次のディスクリプタのアドレス「ディスクリプタＸのアドレス」を「ディスクリプタＸ＋１のアドレス」に変更すればよい。
【００５８】
前記確認の一例としては，設定ディスクリプタと同じディスクリプタをメモリ５３に格納されているディスクリプタＤ１の中から検索する方法がある。このとき，検索範囲としてはディスクリプタＤ１の中のディスクリプタ１〜新たに生成するディスクリプタの１つ前のディスクリプタとする。検索キーとしては，例えば，転送制御情報のソースアドレス，次のディスクリプタのアドレスがある。前述の例では，検索範囲はディスクリプタＤ１のディスクリプタ１〜ディスクリプタＸ−２となる。
【００５９】
前記検索範囲の中で，設定ディスクリプタと同じディスクリプタを検索できた場合には，新たに生成するディスクリプタが，設定レジスタ５２ａに設定されたディスクリプタの後ろのディスクリプタであると確認できる。
【００６０】
前記確認がなされると，ＣＰＵ５１は，前記した転送データの内容変更に応じたディスクリプタを新たに生成しメモリ５３に格納する（Ｓ７３）。
【００６１】
次に，ＣＰＵ５１は，一時停止レジスタ５２ｂに設定した一時停止ビットを解除する（Ｓ７４）。
【００６２】
ＤＭＡＣ５２は，一時停止レジスタ５２ｂの一時停止ビットが解除されると，図６に示すように，ＤＭＡ転送を一時停止している状態（図６のＳ６４）から，Ｓ６１に移行する。以後，転送データの転送が完了するまで，ＤＭＡＣ５２は，ＤＭＡ転送を実行する。
【００６３】
第１の実施の形態によれば，ディスクリプタチェイン方式のＤＭＡ転送実行中に，転送データの転送内容を動的に変更する場合，ＣＰＵは，ＤＭＡＣの一時停止レジスタに一時停止ビットを設定してＤＭＡ転送を一時停止する。そして，新たなディスクリプタを生成しメモリに格納する。従って，ＤＭＡ転送実行中であっても，ＣＰＵは，転送データの転送内容を動的に変更することができる。
【００６４】
ＣＰＵとＤＭＡＣを接続する専用の信号線Ｌ２を設けることにより，内部バスＢ１の使用状態にかかわらず，ＣＰＵは，ＤＭＡＣに対して一時停止信号の出力，前記一時停止信号の解除を即座に実行することができる。なお，信号線Ｌ２は必ずしも設けなくてもよい。信号線Ｌ２を設けない場合，信号線Ｌ２の代わりに内部バスＢ１を利用すればよい。
【００６５】
［第２の実施の形態］
図８は，第２の実施の形態におけるＤＭＡシステムを示す図で，ＤＭＡシステム８０は，ＣＰＵ８１，ＤＭＡＣ８２，メモリ８３を有する。なお，ＣＰＵ８１とＤＭＡＣ８２のＤＭＡＣｃｈ８２０〜８２ｎは，信号線Ｌ３を介して接続している。
【００６６】
ＣＰＵ８１は，図５のＣＰＵ５１と同様にディスクリプタを生成しメモリ８３に格納する処理，ＤＭＡＣｃｈ８２０〜８２ｎの一時停止レジスタ８２０ｂ〜８２ｎｂに一時停止ビットを設定する処理，設定した一時停止ビットを解除する処理を実行する。
【００６７】
ＤＭＡＣ８２は，複数のＤＭＡＣチャンネルＤＭＡＣｃｈ８２０〜８２ｎを有し，ＤＭＡＣｃｈ８２０〜８２ｎは，図示のＤＭＡＣｃｈ０〜ＤＭＡＣｃｈｎに対応する。
【００６８】
ＤＭＡＣｃｈ８２０〜８２ｎは，図５のＤＭＡＣ５２と同じ機能を有するＤＭＡＣであり，設定レジスタ８２０ａ〜８２ｎａ，一時停止レジスタ８２０ｂ〜８２ｎｂを有する。
【００６９】
メモリ８３は，複数の転送データと当該複数の転送データの転送制御情報を含むディスクリプタを格納する。図示例では，２つの転送データＴ１，Ｔ２と当該２つの転送データＴ１，Ｔ２のディスクリプタＤ１，Ｄ２が格納されている。
【００７０】
外部バスＩ／Ｆ８５，外部デバイス８６は，図１の外部バスＩ／Ｆ１５，外部デバイス１６と同様の機能を有する。また，外部デバイス８７は，外部デバイス８６と同様のＩ／Ｏデバイスである。外部デバイス８６，８７は，転送データＴ１，Ｔ２の転送先デバイスであるとする。
【００７１】
以下の説明では，メモリ８３に格納されている２つの転送データＴ１，Ｔ２を同時にＤＭＡ転送する場合を例示して説明するが，２つ以上の転送データであっても同様に適用できることは言うまでもない。
【００７２】
ＣＰＵ８１は，転送データＴ１の転送制御情報を含むチェイン状のディスクリプタＤ１，転送データＴ２の転送制御情報を含むチェイン状のディスクリプタＤ２を生成し，メモリ８３に格納する。
【００７３】
そして，ＣＰＵ８１は，転送データＴ１のＤＭＡ転送を例えばＤＭＡＣｃｈ８２０に実行させる場合，図３で説明したように，ＤＭＡＣｃｈ８２０を起動する。起動したＤＭＡＣｃｈ８２０は，転送データＴ１のデータ０のＤＭＡ転送を実行する（図３のＳ３１〜Ｓ３３参照）。そして，ＤＭＡＣｃｈ８２０は，ディスクリプタの転送制御情報に基づく転送データＴ１のＤＭＡ転送を実行する（図６のＳ６１〜Ｓ６３参照）。
【００７４】
同様に，ＣＰＵ８１は，転送データＴ２のＤＭＡ転送を例えばＤＭＡＣｃｈ８２１に実行させる。
【００７５】
ＤＭＡ転送中に，例えば，ＣＰＵ８１がＤＭＡＣｃｈ８２０の一時停止レジスタ８２０ｂに一時停止ビットを設定すると（図７のＳ７１参照），ＤＭＡＣｃｈ８２０は，設定レジスタ８２０ａに対するディスクリプタの転送制御情報の設定を一時停止する。同時に，ＣＰＵ８１は，図７のＳ７２で説明した確認処理，同Ｓ７３で説明した新たに生成したディスクリプタをメモリ８３に格納する処理を実行し，ＤＭＡＣｃｈ８２０の一時停止レジスタ８２０ｂに設定された一時停止ビットを解除する（図７のＳ７４参照）。
【００７６】
ＤＭＡＣｃｈ８２０は，前記一時停止していた設定レジスタ８２０ａに対するディスクリプタの転送制御情報の設定を再開する。
【００７７】
ＣＰＵ８１が，ＤＭＡＣｃｈ８２１の一時停止レジスタ８２１ｂに一時停止ビットを設定し，新たなディスクリプタの生成後，前記設定した一時停止ビットを解除した場合も同様に，ＤＭＡＣｃｈ８２１は，設定レジスタ８２１ａに対するディスクリプタの転送制御情報の設定を一時停止し，再開する。
【００７８】
第２の実施の形態によれば，複数のＤＭＡＣがそれぞれディスクリプタチェイン方式のＤＭＡ転送を実行していても，ＣＰＵは，複数の転送データの内容を動的に変更することができる。更に，複数の転送データをＤＭＡ転送しているので，単位時間あたりの転送データ量（転送効率）を増やすことができる。
【００７９】
ＣＰＵとＤＭＡＣｃｈを接続する専用の信号線Ｌ３を設けることにより，内部バスＢ１の使用状態にかかわらず，ＣＰＵは，複数のＤＭＡＣｃｈに対して一時停止信号の出力，前記一時停止信号の解除を即座に実行することができる。なお，信号線Ｌ３は必ずしも設けなくてもよい。信号線Ｌ３を設けない場合，信号線Ｌ３の代わりに内部バスＢ１を利用すればよい。
【００８０】
［第３の実施の形態］
図９は，第３の実施の形態におけるＤＭＡシステムを示す図で，ＤＭＡシステム９０は，ＣＰＵ９１，ＤＭＡＣアービタ９２，ＤＭＡＣ９３，メモリ９４を有する。なお，ＣＰＵ９１とＤＭＡＣアービタ９２は，信号線Ｌ４を介して接続し，ＤＭＡＣアービタ９２とＤＭＡＣ９３のＤＭＡＣｃｈ９３０〜９３ｎは，信号線Ｌ５を介して接続し，ＣＰＵ９１とＤＭＡＣｃｈ９３０〜９３ｎは，信号線Ｌ６を介して接続している。
【００８１】
ＣＰＵ９１は，図５のＣＰＵ５１と同様にディスクリプタを生成しメモリ９４に格納する。
【００８２】
また，ＣＰＵ９１は，信号線Ｌ４を介してＤＭＡＣアービタ９２に一時停止信号を出力する。そして，新たなディスクリプタを生成しメモリ９４に格納する。その後，信号線Ｌ４を介して前記一時停止信号を解除する。なお，ＣＰＵ９１は，信号線Ｌ６を介してＤＭＡＣｃｈ９３０〜９３ｎを制御し，ＤＭＡ転送を実行させることもできる。
【００８３】
ＤＭＡＣアービタ９２は，メモリ９４に格納されたチェイン状のディスクリプタを順次読み出し，読み出したディスクリプタの転送制御情報を複数のＤＭＡＣｃｈ９３０〜９３ｎの中の非動作のＤＭＡＣｃｈの設定レジスタに信号線Ｌ５を介して順次設定する。これにより，非動作のＤＭＡＣｃｈは，設定レジスタに設定されたディスクリプタの転送制御情報に基づきＤＭＡ転送を実行する。
【００８４】
また，ＤＭＡＣアービタ９２は，ＣＰＵ９１からの一時停止信号による一時停止ビットが設定される一時停止レジスタ９２ａを有する。ＣＰＵ９１が，信号線Ｌ４を介してＤＭＡＣアービタ９２に一時停止信号を出力すると，ＤＭＡＣアービタ９２は，前記一時停止信号に応答して，読み出したディスクリプタの転送制御情報を複数のＤＭＡＣｃｈ９３０〜９３ｎの中の非動作のＤＭＡＣｃｈの設定レジスタに設定する処理を一時停止する。
【００８５】
具体的には，ＤＭＡＣアービタ９２は，一時停止レジスタ９２ａを常時監視し，ＣＰＵ９１が，信号線Ｌ４を介して一時停止レジスタ９２ａに一時停止ビットを設定すると，前記ディスクリプタの転送制御情報の設定を一時停止する。
【００８６】
そして，ＣＰＵ９１が，ＤＭＡＣアービタ９２に信号線Ｌ４を介して前記一時停止信号の解除信号を出力すると（ＣＰＵ９１からの一時停止信号の解除），ＤＭＡＣアービタ９２は，前記一時停止していたディスクリプタの転送制御情報の設定を再開する。
【００８７】
具体的には，ＣＰＵ９１が，一時停止レジスタ９２ａに設定された一時停止ビットを信号線Ｌ４を介して解除すると，ＤＭＡＣアービタ９２は，前記一時停止していたディスクリプタの転送制御情報の設定を再開する。
【００８８】
ＤＭＡＣ９３は，複数のＤＭＡＣチャンネルＤＭＡＣｃｈ９３０〜９３ｎを有し，ＤＭＡＣｃｈ９３０〜９３ｎは，図示のＤＭＡＣｃｈ０〜ＤＭＡＣｃｈｎに対応する。
【００８９】
ＤＭＡＣｃｈ９３０は，設定レジスタ９３０ａを有し，設定レジスタ９３０ａに設定されたディスクリプタの転送制御情報に基づきＤＭＡ転送する。
【００９０】
ＤＭＡＣｃｈ９３１〜９３ｎも，ＤＭＡＣｃｈ９３０と同じＤＭＡＣであり，ＤＭＡＣｃｈ９３０の設定レジスタ９３０ａと同じ設定レジスタ９３１ａ〜９３ｎａを有する。
【００９１】
外部バスＩ／Ｆ９５，外部デバイス９６は，図１の外部バスＩ／Ｆ１５，外部デバイス１６と同様の機能を有する。なお，外部デバイス９６は，転送データＴ１の転送先デバイスであるとする。
【００９２】
図１０は，ＣＰＵ９１によるＤＭＡＣアービタ９２の起動，ＤＭＡＣアービタ９２によるディスクリプタの転送制御情報の設定，ＤＭＡＣによるＤＭＡ転送を説明する図である。
【００９３】
ＣＰＵ９１は，転送データＴ１のデータ１〜Ｍ１に対応するディスクリプタＤ１（ディスクリプタ１〜Ｍ１）を生成しメモリ９４に格納する（Ｓ１０１）。次いで，ＣＰＵ９１は，ＤＭＡＣアービタ９２を起動する（Ｓ１０２）。具体的には，メモリ９４に格納されている転送データＴ１のデータ０の転送制御情報としてソースアドレス，ディスティネーションアドレス，転送サイズ，ディスクリプタ１のアドレスをＤＭＡＣアービタ９２に通知する。
【００９４】
ＤＭＡＣアービタ９２は，ＤＭＡＣｃｈ９３０〜９３ｎの設定レジスタ９３０ａ〜９３ｎａのステータス領域に設定されている値を確認し，“動作”ビットが設定されていないＤＭＡＣ，すなわち非動作のＤＭＡＣｃｈを検索する（Ｓ１０３）。ここでは，最初にＤＭＡＣｃｈ９３０を検索したとする。
【００９５】
そして，ＤＭＡＣｃｈ９３０の設定レジスタ９３０ａにデータ０の転送制御情報としてソースアドレス，ディスティネーションアドレス，転送サイズを設定する（Ｓ１０４）。このとき，ＤＭＡＣアービタ９２は，ＤＭＡＣｃｈ９３０の設定レジスタ９３０ａにおけるステータス領域のＡＣＴビットをオン，ディスクリプタモードビットをオフに設定する。ディスクリプタモードのオフ設定により，ＤＭＡＣｃｈ９３０は，自らディスクリプタを順次読み出す処理を実行しない。
【００９６】
ＤＭＡＣｃｈ９３０は，設定レジスタ９３０ａに設定された転送制御情報に基づきメモリ９４に格納された転送データＴ１のデータ０をＤＭＡ転送する（Ｓ１０５）。前記転送が完了すると，ＤＭＡＣｃｈ９３０は，設定レジスタ９３０ａのステータス領域の動作ビットに“非動作”ビットを設定し，非動作状態に移行する（Ｓ１０６）。
【００９７】
Ｓ１０４における設定が完了すると，ＤＭＡＣアービタ９２は，図１１のＳ１１１の処理を実行する。
【００９８】
図１１は，ＤＭＡＣアービタ９２によるディスクリプタの転送制御情報の設定，一時停止，再開，ＤＭＡＣによるＤＭＡ転送を説明する図である。なお，以下の説明において，ＤＭＡＣｃｈ９３０〜９３ｎの何れか１つのＤＭＡＣｃｈをＤＭＡＣｃｈ９３と記すことがある。
【００９９】
ＤＭＡＣアービタ９２は，ＤＭＡＣｃｈ９３０〜９３ｎの設定レジスタ９３０ａ〜９３ｎａのステータス領域に設定されている値を確認し，非動作のＤＭＡＣｃｈを検索する（Ｓ１１１）。ここでは，ＤＭＡＣアービタ９２が，非動作のＤＭＡＣｃｈとして，ＤＭＡＣｃｈ９３１を検索したとする。
【０１００】
ＤＭＡＣアービタ９２が，非動作のＤＭＡＣｃｈ９３１を検索すると，転送データＴ１のデータ０の転送制御情報に含まれるディスクリプタ１のアドレスに基づき，メモリ９４に格納されている１番目のディスクリプタ１を読み出す（Ｓ１１２）。前記転送データＴ１のデータ０の転送制御情報は，ＣＰＵ９１がＤＭＡＣアービタ９２を起動した際に，ＣＰＵ９１から通知されたものである（図１０のＳ１０２参照）。
【０１０１】
ディスクリプタ１の読み出しが完了すると，ＤＭＡＣアービタ９２は，非動作のＤＭＡＣｃｈ９３１の設定レジスタ９３１ａに読み出したディスクリプタ１の転送制御情報を設定する（Ｓ１１３）。
【０１０２】
なお，前述したように，ＤＭＡＣアービタ９２は，ＤＭＡＣｃｈ９３１の設定レジスタ９３１ａにおけるステータス領域のＡＣＴビットをオン，ディスクリプタモードビットをオフに設定する。以後，ＤＭＡＣアービタ９２が，非動作のＤＭＡＣｃｈ９３の設定レジスタ９３ａにディスクリプタの転送制御情報を設定する場合も同様に，ディスクリプタモードビットをオフに設定する。
【０１０３】
ＤＭＡＣアービタ９２により，ディスクリプタ１の転送制御情報がＤＭＡＣｃｈ９３１の設定レジスタ９３１ａに設定されると（Ｓ１１４），ＤＭＡＣｃｈ９３１は，設定レジスタ９３１ａに設定されたディスクリプタの転送制御情報に基づき転送データＴ１のデータ１をＤＭＡ転送する（Ｓ１１５）。前記転送が完了すると，ＤＭＡＣｃｈ９３１は，設定レジスタ９３１ａのステータス領域の動作ビットに“非動作”ビットを設定し，非動作状態に移行する（Ｓ１１６）。
【０１０４】
一方，ＤＭＡＣアービタ９２は，Ｓ１１１に戻り，非動作のＤＭＡＣｃｈ９３を検索し，前記読み出したディスクリプタ１の次のディスクリプタ２を読み出す（Ｓ１１２）。そして，検索した非動作のＤＭＡＣｃｈ９３の設定レジスタ９３ａに読み出したディスクリプタ２の転送制御情報を設定する（Ｓ１１３）。以後，転送データの転送が完了するまで，Ｓ１１１〜Ｓ１１３を繰り返す。
【０１０５】
ＤＭＡＣアービタ９２により，ディスクリプタの転送制御情報がＤＭＡＣｃｈ９３の設定レジスタ９３ａに設定されると（Ｓ１１４），ＤＭＡＣｃｈ９３は，設定レジスタ９３ａに設定されたディスクリプタの転送制御情報に基づき転送データＴ１のデータをＤＭＡ転送する（Ｓ１１５）。前記転送が完了すると，ＤＭＡＣｃｈ９３は，非動作状態に移行する（Ｓ１１６）。
【０１０６】
Ｓ１１１〜Ｓ１１６の処理が実行されている間に，ＣＰＵ９１が，転送データの内容を変更する場合，ＤＭＡＣアービタ９２の一時停止レジスタ９２ａに一時停止ビットを設定する。ＤＭＡＣアービタ９２は，一時停止レジスタ９２ａに一時停止ビットが設定されると，ディスクリプタを読み出しＤＭＡＣｃｈ９３の設定レジスタ９３ａに設定する処理を一時停止する（Ｓ１１７）。
【０１０７】
ここで，ＣＰＵ９１は，ＤＭＡＣアービタ９２が最後に読み出したディスクリプタを参照して，転送データの内容変更に応じたディスクリプタ（新たに生成するディスクリプタ）が，前記最後に読み出したディスクリプタの後ろのディスクリプタに該当するものであるか確認する（図７のＳ７２参照）。
【０１０８】
前記確認がなされると，ＣＰＵ９１は，前記した転送データの内容変更に応じたディスクリプタを新たに生成しメモリ９４に格納する。そして，ＤＭＡＣアービタ９２の一時停止レジスタ９２ａの一時停止ビットを解除する。前記解除により，ＤＭＡＣアービタ９２は，図１１のＳ１１７からＳ１１１に移行し，以後，Ｓ１１１〜Ｓ１１３の処理を実行する。
【０１０９】
第３の実施の形態によれば，ＤＭＡＣアービタの制御に基づきＤＭＡＣｃｈがＤＭＡ転送を実行している場合であっても，ＣＰＵは，ＤＭＡＣアービタの一時停止レジスタに一時停止ビットを設定してＤＭＡ転送を一時停止する。そして，新たなディスクリプタを生成しメモリに格納する。従って，ＤＭＡＣアービタの制御に基づきＤＭＡＣｃｈがＤＭＡ転送実行中であっても，ＣＰＵは，転送データの転送内容を動的に変更することができる。
【０１１０】
また，ＤＭＡ転送処理を非動作のＤＭＡＣｃｈに割り振ることができるので，単位時間あたりの転送データ量を増やすことができる。更に，ＤＭＡＣアービタがＤＭＡＣ転送処理の割り振りを実行するので，ＣＰＵの負荷が低下する。
【０１１１】
ＣＰＵとＤＭＡＣアービタを接続する専用の信号線Ｌ４を設けることにより，内部バスＢ１の使用状態にかかわらず，ＣＰＵは，ＤＭＡＣアービタに対して一時停止信号の出力，前記一時停止信号の解除を即座に実行することができる。また，ＤＭＡＣアービタと複数のＤＭＡＣｃｈを接続する専用の信号線Ｌ５を設けることにより，内部バスＢ１の使用状態にかかわらず，ＤＭＡＣアービタは，複数のＤＭＡＣｃｈに転送制御情報を即座に設定することができる。なお，信号線Ｌ４〜Ｌ６は必ずしも設けなくてもよい。信号線Ｌ４〜Ｌ６を設けない場合，信号線Ｌ４〜Ｌ６の代わりに内部バスＢ１を利用すればよい。
【０１１２】
［第４の実施の形態］
図１２は，第４の実施の形態におけるＤＭＡシステムを示す図である。
【０１１３】
ＤＭＡシステム１２０は，ＣＰＵ１２１，ＤＭＡＣアービタ１２２，ＤＭＡＣ１２３，メモリ１２４を有する。ＤＭＡＣ１２３は，図９で説明した，ＤＭＡＣ９３と同じ機能を有し，ＤＭＡＣ１２３のＤＭＡＣｃｈ１２３０〜１２３ｎは，ＤＭＡＣｃｈ９３０〜９３ｎと同じ機能を有する。なお，ＣＰＵ１２１とＤＭＡＣアービタ１２２は，信号線Ｌ７を介して接続し，ＤＭＡＣアービタ１２２とＤＭＡＣ１２３のＤＭＡＣｃｈ１２３０〜１２３ｎは，信号線Ｌ８を介して接続し，ＣＰＵ１２１とＤＭＡＣｃｈ１２３０〜１２３ｎは，信号線Ｌ９を介して接続している。
【０１１４】
ＣＰＵ１２１は，図９のＣＰＵ９１の機能に加えて，ＤＭＡＣアービタ１２２の制御に基づきＤＭＡ転送を実行するＤＭＡＣを予め指定する機能を有する。具体的には，信号線Ｌ７を介して，ＤＭＡＣアービタ１２２の指定レジスタ１２２ｂに，ＤＭＡＣアービタ１２２の制御に基づきＤＭＡ転送を実行するＤＭＡＣｃｈのチャンネル番号を設定する。
【０１１５】
ＤＭＡＣアービタ１２２は，一時停止レジスタ１２２ａを有し図９のＤＭＡＣアービタ９２と同様の機能を有する。更に，ＤＭＡＣアービタ１２２は，指定レジスタ１２２ｂを有し，指定レジスタ１２２ｂには，ＣＰＵ１２１から前記チャンネル番号が設定される。
【０１１６】
ＤＭＡＣアービタ１２２は，指定レジスタ１２２ｂに設定されたチャンネル番号に対応するＤＭＡＣｃｈのみを，図１１で説明した非動作のＤＭＡＣｃｈの検索対象とし，前記ＤＭＡＣｃｈにのみディスクリプタの転送制御情報を設定する（図１１のＳ１１１〜Ｓ１１３参照）。すなわち，前記チャンネル番号に対応しないＤＭＡＣｃｈについては，図１１で説明した非動作のＤＭＡＣｃｈの検索対象としない。その結果，ＣＰＵ１２１は，前記検索対象とされていないＤＭＡＣｃｈを自らの制御下に置くことができ，前記ＤＭＡＣｃｈにＤＭＡ転送を実行させることができる。
【０１１７】
例えば，ＣＰＵ１２１が，指定レジスタ１２２ｂにチャンネル番号として０，１，２，…ｍを設定するとする。
【０１１８】
ＤＭＡＣアービタ１２２は，ＤＭＡ転送にあたり，チャンネル番号０，１，２，…ｍに対応するＤＭＡＣｃｈ０〜ＤＭＡＣｃｈｍ（ＤＭＡＣｃｈ１２３０〜１２３ｍ）を図１１で説明した非動作のＤＭＡＣｃｈの検索対象とする。一方，前記チャンネル番号に対応しないＤＭＡＣｃｈｎ（ＤＭＡＣｃｈ１２３ｎ）については非動作のＤＭＡＣｃｈの検索対象としない。
【０１１９】
ここで，ＤＭＡＣアービタ１２２の制御に基づき，ＤＭＡＣｃｈ１２３０〜１２３ｍにより転送データＴ１のＤＭＡ転送が実行されている間に，ＣＰＵ１２１が，転送データＴ１と異なる転送データＴ２をＤＭＡＣｃｈにＤＭＡ転送させるとする。
【０１２０】
すると，ＣＰＵ１２１は，図３で説明したように，前記チャンネル番号１〜ｍに対応しないＤＭＡＣｃｈ１２３ｎを起動し，ＤＭＡＣｃｈ１２３ｎは，転送データＴ２のデータ０のＤＭＡ転送を実行する。そして，ＤＭＡＣｃｈ１２３ｎは，ディスクリプタの転送制御情報に基づく転送データＴ２のＤＭＡ転送を実行する（図６のＳ６１〜Ｓ６３参照）。
【０１２１】
なお，外部バスＩ／Ｆ１２５，外部デバイス１２６は，図１の外部バスＩ／Ｆ１５，外部デバイス１６と同様の機能を有する。また，外部デバイス１２７は，外部デバイス１２６と同様のＩ／Ｏデバイスである。外部デバイス１２６，１２７は，転送データＴ１，Ｔ２の転送先デバイスであるとする。
【０１２２】
第４の実施の形態によれば，ＣＰＵは，ＤＭＡＣアービタの制御に基づきディスクリプタチェイン方式のＤＭＡ転送処理を実行していないＤＭＡＣｃｈを使用して，ＤＭＡ転送を実行できる。
【０１２３】
従って，ＤＭＡＣアービタの制御に基づきＤＭＡＣｃｈが転送データをＤＭＡ転送している間に，ＣＰＵは，前記転送データとは異なる転送データをＤＭＡ転送することができる。
【０１２４】
以上の実施の形態をまとめると，次の付記のとおりである。
【０１２５】
（付記１）
転送データを格納するメモリと，
転送データの転送制御情報を含むチェイン状のディスクリプタを生成し前記メモリに格納するＣＰＵと，
前記メモリに格納された前記チェイン状のディスクリプタを順次読み出し，当該読み出されたディスクリプタの転送制御情報に基づき前記メモリに格納された転送データをＤＭＡ転送し，前記ＣＰＵからの一時停止信号に応答して前記読み出されたディスクリプタに対するＤＭＡ転送を一時停止するＤＭＡＣを有するＤＭＡシステム。
【０１２６】
（付記２）
付記１において，
前記ＣＰＵは，前記転送データのＤＭＡ転送中に前記ＤＭＡＣに一時停止信号を出力し，新たなディスクリプタを生成し前記メモリに格納した後に，前記一時停止信号を解除するＤＭＡシステム。
【０１２７】
（付記３）
付記２において，
前記ＤＭＡＣは，設定レジスタと，一時停止レジスタとを有し，
前記メモリから読み出したディスクリプタの転送制御情報を前記設定レジスタに設定し，
前記ＣＰＵからの前記一時停止信号により前記一時停止レジスタに一時停止ビットが設定されると，前記設定レジスタに対する前記ディスクリプタの転送制御情報の設定を一時停止し，
前記ＣＰＵからの前記一時停止信号の解除により前記一時停止レジスタの一時停止ビットが解除されると，前記一時停止していた前記設定レジスタに対する前記ディスクリプタの転送制御情報の設定を再開するＤＭＡシステム。
【０１２８】
（付記４）
付記１〜付記３の何れかにおいて，
前記ＤＭＡＣを複数有し，前記複数のＤＭＡＣはそれぞれ前記ディスクリプタの転送制御情報に基づくＤＭＡ転送を実行するＤＭＡシステム。
【０１２９】
（付記５）
転送データを格納するメモリと，
転送データの転送制御情報を含むチェイン状のディスクリプタを生成し前記メモリに格納するＣＰＵと，
設定レジスタを有し当該設定レジスタに設定されるディスクリプタの転送制御情報に基づき前記メモリに格納された転送データをＤＭＡ転送する複数のＤＭＡＣと，
前記メモリに格納された前記チェイン状のディスクリプタを順次読み出し，当該読み出されたディスクリプタの転送制御情報を非動作のＤＭＡＣの設定レジスタに順次設定し，前記ＣＰＵからの一時停止信号に応答して，前記設定を一時停止することにより前記読み出されたディスクリプタに対するＤＭＡ転送を一時停止するＤＭＡＣアービタを有するＤＭＡシステム。
【０１３０】
（付記６）
付記５において，
前記ＣＰＵは，前記転送データのＤＭＡ転送中に前記ＤＭＡＣアービタに一時停止信号を出力し，新たなディスクリプタを生成し前記メモリに格納した後に，前記一時停止信号を解除するＤＭＡシステム。
【０１３１】
（付記７）
付記６において，
前記ＤＭＡＣアービタは，一時停止レジスタを有し，
前記ＣＰＵからの前記一時停止信号により前記一時停止レジスタに一時停止ビットが設定されると，前記設定レジスタに対する前記ディスクリプタの転送制御情報の設定を一時停止し，
前記ＣＰＵからの前記一時停止信号の解除により前記一時停止レジスタの一時停止ビットが解除されると，前記一時停止していた前記設定レジスタに対する前記ディスクリプタの転送制御情報の設定を再開するＤＭＡシステム。
【０１３２】
（付記８）
付記５〜７の何れかにおいて，
前記ＤＭＡＣアービタは，指定レジスタを有し，前記ＣＰＵから前記指定レジスタに設定されたチャンネル番号に対応するＤＭＡＣの設定レジスタにディスクリプタの転送制御情報を設定するＤＭＡシステム。
【０１３３】
（付記９）
付記８において，
前記チャンネル番号に対応しないＤＭＡＣは，前記メモリに格納された転送データと異なる転送データをＤＭＡ転送するＤＭＡシステム。
【符号の説明】
【０１３４】
１０，５０，８０，９０，１２０…ＤＭＡシステム
１１，５１，８１，９１，１２１…ＣＰＵ
１２，５２，８２，９３，１２３，…ＤＭＡＣ
８２０〜８２ｎ，９３０〜９３ｎ，１２３０〜１２３ｎ…ＤＭＡＣｃｈ０〜ＤＭＡＣｃｈｎ
１２ａ，５２ａ，８２０ａ〜８２ｎａ，９３０ａ〜９３ｎａ，１２３０ａ〜１２３ｎａ…設定レジスタ
５２ｂ，８２０ｂ〜８２ｎｂ，９２ａ，１２２ａ…一時停止レジスタ
１２２ｂ…指定レジスタ
１３，５３，８３，９４，１２４…メモリ
９２，１２２…ＤＭＡＣアービタ
１５，５５，８５，１２５…外部バスＩＦ
１６，５６，８６，８７，９６，１２６，１２７…外部デバイス
２０…ディスクリプタ
Ｌ１〜Ｌ９…信号線
Ｂ１…内部バス
Ｂ２…外部バス
【図１】
2012073745.tif 000003
【図２】
2012073745.tif 000004
【図３】
2012073745.tif 000005
【図４】
2012073745.tif 000006
【図５】
2012073745.tif 000007
【図６】
2012073745.tif 000008
【図７】
2012073745.tif 000009
【図８】
2012073745.tif 000010
【図９】
2012073745.tif 000011
【図１０】
2012073745.tif 000012
【図１１】
2012073745.tif 000013
【図１２】
2012073745.tif 000014