(57)【要約】【課題】簡易な構成で、各チャネル（ｃｈ）に適切な優先順位を容易に設定して、ＤＭＡ転送全体の効率を向上することができるＤＭＡ制御方法及びＤＭＡコントローラを提供する。【解決手段】各チャネルの優先順位の初期値として、ｃｈ１〜ｃｈ９に“１”〜“９”の値を設定する。また、各チャネルの優先順位の設定値として、優先度が高いｃｈ３にのみ“４”、その他に“９”を設定する。ｃｈ１〜ｃｈ３に関するデータ転送要求を同時的に受け付けた場合、まず優先順位が“１”であるｃｈ１に係るＤＭＡ転送が実行されてｃｈ１の優先順位が“９”となり（図６（ａ））、他のｃｈはラウンドロビン方式で優先順位が繰り上がる。次に、ｃｈ１と同様にｃｈ２が処理される（図６（ｂ））。最後に優先順位が“１”であるｃｈ３に係るＤＭＡ転送が実行されてｃｈ３の優先順位が“４”となり、ｃｈ４〜ｃｈ６の優先順位がラウンドロビン方式状に繰り上がる（図６（ｃ））。【選択図】図６
2008027353.tif 000002
【特許請求の範囲】
【請求項１】
夫々に優先順位が設定されている複数のチャネルに係るＤＭＡ転送を制御するＤＭＡコントローラを用いて、
各チャネルに関するデータの転送を要求する転送要求信号を受け付ける受付ステップと、
転送要求信号を受け付けたチャネルに係るＤＭＡ転送の内、最も優先順位が高いチャネルに係るＤＭＡ転送を実行する実行ステップと、
ＤＭＡ転送が実行された一のチャネルの優先順位を最下位に設定する第１設定ステップと
を含むＤＭＡ制御方法において、
ＤＭＡ転送が実行された他のチャネルの優先順位を、ＤＭＡ転送が実行されたときの順位又は該順位とは異なる順位であって、最下位を除く所定の順位に設定する第２設定ステップと、
前記第１設定ステップ又は前記第２設定ステップで優先順位が設定されることによって複数のチャネルに対して同一の優先順位が設定される場合に、前記第１設定ステップ又は前記第２設定ステップで優先順位が設定されたチャネル以外のチャネルの優先順位を繰り上げ（又は繰り下げ）る調整ステップと
を含むことを特徴とするＤＭＡ制御方法。
【請求項２】
複数のチャネルに係るＤＭＡ転送を制御するＤＭＡコントローラにおいて、
各チャネルの優先順位の初期値を格納する初期順位レジスタと、
ＤＭＡ転送が実行された場合の各チャネルの優先順位の設定値を格納する設定順位レジスタと、
各チャネルの優先順位の現在値を格納する優先順位レジスタと、
前記初期順位レジスタに格納されている優先順位の初期値を、優先順位の現在値として前記優先順位レジスタに格納する初期化手段と、
各チャネルに関するデータの転送を要求する転送要求信号を受け付ける受付手段と、
該受付手段が転送要求信号を受け付けたチャネルの優先順位の現在値を前記優先順位レジスタから読み出す第１読出手段と、
該第１読出手段が読み出した優先順位の現在値に応じた順番で前記チャネルに係るＤＭＡ転送を実行する転送手段と、
該転送手段が前記チャネルに係るＤＭＡ転送を実行した場合、ＤＭＡ転送が実行されたチャネルの優先順位の設定値を前記設定順位レジスタから読み出す第２読出手段と、
該第２読出手段が読み出した設定値に基づいて、前記優先順位レジスタに格納される優先順位の現在値を書き換える書換手段と
を備えることを特徴とするＤＭＡコントローラ。
【請求項３】
前記初期順位レジスタ及び／又は設定順位レジスタに格納すべき各チャネルの優先順位の値が夫々外部から設定可能であることを特徴とする請求項２に記載のＤＭＡコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、転送要求信号を受け付けたチャネルに係るＤＭＡ転送の内、最も優先順位が高いチャネルに係るＤＭＡ転送を実行するＤＭＡ制御方法及びＤＭＡコントローラに関する。
【背景技術】
【０００２】
ＤＭＡ（Direct Memory Access）転送においては、ＣＰＵが関与することなく、例えば１個のデータ記憶装置と、データの転送を要求する複数の転送要求デバイスとの間でデータが直接的に転送される。この場合、各転送要求デバイスについてＤＭＡ転送が実行され、各ＤＭＡ転送のデータ転送経路はチャネルと呼ばれる。
【０００３】
複数のチャネルが存在する場合でも、データ転送経路として用いられるハードウェア（データバス、アドレスバス等）は一般に１つであるため、一のチャネルでＤＭＡ転送を実行している場合、即ち一のチャネルに係るＤＭＡ転送によってバスが占有されている場合には、他のチャネルに係るＤＭＡ転送を実行することはできない。
このため、ＤＭＡ転送においては、各チャネルに優先順位が設定され、複数のチャネルに係るＤＭＡ転送が同時的に要求された場合には、より高い優先順位が設定されているチャネルにバスの占有が許可される。
【０００４】
各チャネルに対する優先順位の設定方式としては、従来、各チャネルに固定的に不変の優先順位を設定する固定優先順位方式が知られている。
また、各チャネルに優先順位を適宜に設定し、ＤＭＡ転送が実行されたチャネルの優先順位を最下位に設定するラウンドロビン方式、最上位に設定するＬＲＵ（Least Recently Used ）方式も知られている。
更に、各チャネルの優先順位を格納するプライオリティレジスタを用いる方式が知られている。プライオリティレジスタを用いる場合、プライオリティレジスタに設定する値を書き換えることによって、各チャネルの優先順位が変更される。
【０００５】
以上のような各方式には夫々一長一短がある。
互いの長所を生かし短所を補うため、従来、ラウンドロビン方式とＬＲＵ方式とを切り換えてデータを転送するバスアービタ回路が提案されている（特許文献１参照）。
また、プライオリティレジスタと、固定優先順位方式又はラウンドロビン方式によって、データ転送が要求される都度、各チャネルの優先順位を判断する判断部とを併用する記録装置が提案されている（特許文献２参照）。
【特許文献１】特開２０００−１４８６６７号公報
【特許文献２】特開２００５−７１１８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示されているバスアービタ回路はラウンドロビン方式とＬＲＵ方式を適切に切り換えるための複雑な回路と繁雑な制御用ソフトウエアとが必要になる。
一方、特許文献２に開示されている記録装置は、転送要求信号を受け付ける都度、転送要求信号を受け付けたチャネルの優先順位を判断してプライオリティレジスタを書き換えるための複雑な回路と繁雑な制御用ソフトウエアとが必要になる。
【０００７】
また、固定優先順位方式及びＬＲＵ方式では、優先順位が高いチャネルに係るＤＭＡ転送要求が連続すると、優先順位が低いチャネルに係るＤＭＡ転送要求が全く受け付けられず、このチャネルに関する必要な帯域（データ転送速度）が確保できないことがあり、このため、システム全体に支障をきたすことがある。
【０００８】
ラウンドロビン方式では、ＤＭＡ転送を許可したチャネルの優先順位が最下位に回されるため、一旦転送を許可されたチャネルに対する転送要求が、他のチャネルに対する転送要求が処理された後でないと許可されないことがある。この結果、帯域確保のため優先的にＤＭＡ転送を実行する必要があるチャネル、使用頻度が高いチャネル等（即ち優先度が高いチャネル）のＤＭＡ転送が後回しにされて、このチャネルよりも優先度が低いチャネルに係るＤＭＡ転送が先に実行され、システム全体に支障をきたすことがある。
【０００９】
本発明は斯かる事情に鑑みてなされたものであり、その主たる目的は、ＤＭＡ転送が実行された一のチャネルの優先順位を最下位に設定し、他のチャネルの優先順位を、最下位を除く所定の順位に設定することにより、各チャネルに適切な優先順位を容易に設定して、ＤＭＡ転送全体の効率を向上することができるＤＭＡ制御方法を提供することにある。
【００１０】
本発明の他の目的は、各チャネルの優先順位の初期値、ＤＭＡ転送が実行された場合の各チャネルの優先順位の設定値、及び各チャネルの優先順位の現在値を夫々格納するレジスタを備えることにより、簡易な構成で各チャネルに適切な優先順位を設定して、ＤＭＡ転送全体の効率を向上することができるＤＭＡコントローラを提供することにある。
【００１１】
本発明の更に他の目的は、レジスタに格納すべき値を外部から設定する構成とすることにより、各チャネルに更に適切な優先順位を設定することができるＤＭＡコントローラを提供することにある。
【課題を解決するための手段】
【００１２】
第１発明に係るＤＭＡ制御方法は、夫々に優先順位が設定されている複数のチャネルに係るＤＭＡ転送を制御するＤＭＡコントローラを用いて、各チャネルに関するデータの転送を要求する転送要求信号を受け付ける受付ステップと、転送要求信号を受け付けたチャネルに係るＤＭＡ転送の内、最も優先順位が高いチャネルに係るＤＭＡ転送を実行する実行ステップと、ＤＭＡ転送が実行された一のチャネルの優先順位を最下位に設定する第１設定ステップとを含むＤＭＡ制御方法において、ＤＭＡ転送が実行された他のチャネルの優先順位を、ＤＭＡ転送が実行されたときの順位又は該順位とは異なる順位であって、最下位を除く所定の順位に設定する第２設定ステップと、前記第１設定ステップ又は前記第２設定ステップで優先順位が設定されることによって複数のチャネルに対して同一の優先順位が設定される場合に、前記第１設定ステップ又は前記第２設定ステップで優先順位が設定されたチャネル以外のチャネルの優先順位を繰り上げ（又は繰り下げ）る調整ステップとを含むことを特徴とする。
【００１３】
第２発明に係るＤＭＡコントローラは、複数のチャネルに係るＤＭＡ転送を制御するＤＭＡコントローラにおいて、各チャネルの優先順位の初期値を格納する初期順位レジスタと、ＤＭＡ転送が実行された場合の各チャネルの優先順位の設定値を格納する設定順位レジスタと、各チャネルの優先順位の現在値を格納する優先順位レジスタと、前記初期順位レジスタに格納されている優先順位の初期値を、優先順位の現在値として前記優先順位レジスタに格納する初期化手段と、各チャネルに関するデータの転送を要求する転送要求信号を受け付ける受付手段と、該受付手段が転送要求信号を受け付けたチャネルの優先順位の現在値を前記優先順位レジスタから読み出す第１読出手段と、該第１読出手段が読み出した優先順位の現在値に応じた順番で前記チャネルに係るＤＭＡ転送を実行する転送手段と、該転送手段が前記チャネルに係るＤＭＡ転送を実行した場合、ＤＭＡ転送が実行されたチャネルの優先順位の設定値を前記設定順位レジスタから読み出す第２読出手段と、該第２読出手段が読み出した設定値に基づいて、前記優先順位レジスタに格納される優先順位の現在値を書き換える書換手段とを備えることを特徴とする。
【００１４】
第３発明に係るＤＭＡコントローラは、前記初期順位レジスタ及び／又は設定順位レジスタに格納すべき各チャネルの優先順位の値が夫々外部から設定可能であることを特徴とする。
【００１５】
本発明にあっては、複数のチャネルに係るＤＭＡ転送を制御すべく、ＤＭＡコントローラが初期順位レジスタと設定順位レジスタと優先順位レジスタとを備える。
また、ＤＭＡコントローラは、初期化手段、受付手段、第１読出手段、転送手段、第２読出手段、及び書換手段を備える。
第２発明に係るＤＭＡコントローラは、例えば、第１発明に係るＤＭＡ制御方法に基づく制御用ソフトウエアによって制御される。このＤＭＡ制御方法は、受付ステップと、実行ステップと、第１設定ステップと、第２設定ステップと、調整ステップとを有する。
【００１６】
初期順位レジスタには、各チャネルの優先順位の初期値が格納される。この初期値は、各チャネルの優先度に応じた値であることが望ましい。即ち、優先度の高いチャネルから順に、高い優先順位が与えられる。ここで、初期順位レジスタに関しては、複数のチャネルに同一の値が与えられることはない。
【００１７】
設定順位レジスタには、ＤＭＡ転送が実行された場合の各チャネルの優先順位の設定値が格納される。この設定値としては、最下位の値と、最下位を除く所定の順位の値とが用いられる。
ただし、この設定値も、各チャネルの優先度に応じた値であることが望ましい。即ち、優先度が低いチャネルに対しては最下位の値が与えられ、優先度が高いチャネルに対しては、最下位を除く所定の順位の値が与えられる。
設定順位レジスタに関しては、複数のチャネルに同一の値が与えられることもある。
【００１８】
優先順位レジスタには、各チャネルの優先順位の現在値が格納される。そして、優先順位レジスタに各チャネルの優先順位の現在値が格納されることによって、複数のチャネル夫々に、互いに異なる優先順位が設定される。
このために、ＤＭＡコントローラの初期化手段は、例えばＤＭＡコントローラの起動直後、又は前回の一連のＤＭＡ転送作業の終了時に、初期順位レジスタに格納されている優先順位の初期値を、優先順位の現在値として優先順位レジスタに格納する。
【００１９】
さて、受付手段は、各チャネルに関するデータの転送を要求する転送要求信号を受け付ける（受付ステップ）。
転送要求信号を受け付けたチャネルに係るＤＭＡ転送の内、最も優先順位が高いチャネルに係るＤＭＡ転送を実行する実行ステップの前段階として、第１読出手段は、受付手段が転送要求信号を受け付けたチャネルの優先順位の現在値を優先順位レジスタから読み出す。
次に、転送手段が、実行ステップの後段階として、第１読出手段が読み出した優先順位の現在値に応じた順番で、転送要求信号を受け付けたチャネルに係るＤＭＡ転送を実行する。
【００２０】
この結果、転送要求信号を受け付けたチャネルが単一である場合は、このチャネルに係るＤＭＡ転送が実行されるが、転送要求信号を受け付けたチャネルが複数である場合は、優先順位が高いチャネルに係るＤＭＡ転送から順にＤＭＡ転送が実行される。
【００２１】
第２読出手段は、転送手段が、受付手段が転送要求信号を受け付けたチャネルに係るＤＭＡ転送を実行した場合、ＤＭＡ転送が実行されたチャネルの優先順位の設定値を設定順位レジスタから読み出し、書換手段は、第２読出手段が読み出した設定値に基づいて、優先順位レジスタに格納される優先順位の現在値を書き換える。
【００２２】
第２読出手段が設定順位レジスタから読み出した設定値が最下位の値である場合、ＤＭＡ転送が実行されたチャネル（一のチャネル）の優先順位は最下位に設定される（第１設定ステップ）。
一方、第２読出手段が設定順位レジスタから読み出した設定値が、最下位を除く所定の順位の値である場合、ＤＭＡ転送が実行されたチャネル（他のチャネル）の優先順位は、最下位を除く所定の順位に設定される（第２設定ステップ）。この順位は、ＤＭＡ転送が実行されたときの順位か、又はＤＭＡ転送が実行されたときの順位とは異なる順位である。
【００２３】
ところで、設定順位レジスタには、複数のチャネルに同一の値が与えられることもあるため、第１設定ステップ又は第２設定ステップで優先順位が設定されることによって複数のチャネルに対して同一の優先順位が設定されることがある。
この場合、書換手段は、第１設定ステップ又は第２設定ステップで優先順位が設定されたチャネル以外のチャネルの優先順位を繰り上げ（又は繰り下げ）ることによって、優先順位レジスタに関し、複数のチャネルに同一の優先順位が設定されることがないよう調整する（調整ステップ）。
【００２４】
このように、優先順位レジスタに格納される値は、ＤＭＡ転送の実行によって変化し得るが、初期順位レジスタ及び設定順位レジスタ夫々に格納される値は、ＤＭＡ転送の実行によって変化することはない。
しかも、優先順位レジスタに格納される値は、各チャネルに固定的な不変の値ではなく、また、ＤＭＡ転送が実行されたチャネルを必ず最下位又は最上位に回すような値でもないため、チャネルの優先度に応じた適切な優先順位が各チャネルに設定されることになる。
【００２５】
第３発明にあっては、初期順位レジスタ及び設定順位レジスタ夫々に格納される値は、例えばＤＭＡコントローラの起動後、一連のＤＭＡ転送作業の終了時等に、外部から設定可能である。
【発明の効果】
【００２６】
第１発明のＤＭＡ制御方法及び第２発明のＤＭＡコントローラによる場合、ＤＭＡ転送が実行されたチャネルに、このチャネルの優先順位として、最下位、又は最下位以外の所定の順位を柔軟に設定することができる。このため、ＤＭＡ転送が実行されたチャネルに、チャネル毎の固定値が設定されることも、必ず最下位又は最上位の値が設定されることもない。
【００２７】
具体的には、初期順位レジスタ及び設定順位レジスタ夫々に、各チャネルに対応して適切な値を格納しておくことによって、優先順位レジスタに、各チャネルに対応する適切な優先順位の現在値を格納することができる。そして、複数のＤＭＡ転送要求を、優先順位レジスタに格納された優先順位の現在値の順番で、即ち適切な順番で処理していくことができる。
【００２８】
この結果、簡易な構成のＤＭＡコントローラを用いて、各チャネルに適切な優先順位を容易に設定することができ、延いては、ＤＭＡ転送全体の効率を向上することができる。
【００２９】
第３発明のＤＭＡコントローラによる場合、例えばＤＭＡコントローラの起動後、一連のＤＭＡ転送作業の終了時等に、次に実行すべきＤＭＡ転送の優先度に応じて、初期順位レジスタ及び／又は設定順位レジスタに格納すべき各チャネルの適切な優先順位の値を夫々外部から設定することができる。このため、優先順位レジスタに各チャネルの優先順位の適切な現在値を格納することができ、この結果、各チャネルに更に適切な優先順位を設定することができる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明を、その実施の形態を示す図面に基づいて詳述する。
【００３１】
図１は、本発明に係るＤＭＡコントローラ１の構成を示すブロック図である。
本実施の形態におけるＤＭＡコントローラ１は、９個のチャネルに係るＤＭＡ転送を制御すべく、デジタル複合機に組み込まれている。図１は、このデジタル複合機の要部の構成を示すブロック図でもある。
【００３２】
デジタル複合機は、制御中枢としてのプロセッサであるＣＰＵ２１が、ＲＡＭ２３を作業領域として用いつつ、ＲＯＭ２２に格納されているコンピュータプログラム及びデータに従って、スキャナによる原稿画像の読み取り、プリンタによる原稿画像のコピー出力（プリントアウト）、ファクシミリ通信によるデータの送信、ファクシミリ通信により受信したデータのプリントアウト等の機能を実現する。
ＣＰＵ２１は、ＲＯＭ２２、ＲＡＭ２３、及びＤＭＡコントローラ１に、システムバス５１を介して接続されている。
【００３３】
ＤＭＡコントローラ１には、データバス５２を介して直接的に、ＳＤＲＡＭを用いてなるデータ記憶装置４が接続されている。
また、ＤＭＡコントローラ１には、システムバス５１を介して直接的に、データの転送を要求する９個の転送要求デバイスとして、データ入出力装置（Ｉ／Ｏ）３１，３２，…，３９が接続されている。つまり、Ｉ／Ｏ３１，３２，…，３９とデータ記憶装置４とは直接的に接続されておらず、ＤＭＡコントローラ１を介して接続されている。
ここで、データの転送とは、データ記憶装置４に対するデータの書き込み又は読み出しである。
【００３４】
Ｉ／Ｏ３１，３２，…，３９は、具体的には、データ記憶装置４に対するファクシミリ画像データの書き込み又は読み出しを要求するモデム、スキャナが原稿から読み取ってなる画像データの書き込みを要求する読取用コーデック、プリンタが記録シートに画像を形成すべく用いる画像データの読み出しを要求するプリント用コーデック等である。
【００３５】
データ記憶装置４に対するデータの入出力は、ＤＭＡコントローラ１によるＤＭＡ転送によってＣＰＵ２１の介在なしで行われる。
ここで、Ｉ／Ｏ３１に関するデータの転送経路をチャネル（ｃｈ）１とする。Ｉ／Ｏ３１は、信号線を介して、ＤＭＡコントローラ１へ、ｃｈ１に関するデータの転送を要求する転送要求信号ｄｒｅｑ１を出力し、ｄｒｅｑ１によるＤＭＡ転送に応答する転送応答信号ａｃｋ１をＤＭＡコントローラ１から入力される。ただし、Ｉ／Ｏ３１は、ａｃｋ１が入力されるまで、ｄｒｅｑ１の出力を継続する。
【００３６】
データ記憶装置４へデータを書き込む場合、ａｃｋ１を入力されたＩ／Ｏ３１は、書き込むべきデータをシステムバス５１へ出力する。ｄｒｅｑ１を入力されたＤＭＡコントローラ１は、システムバス５１へ出力されたデータをデータ記憶装置４に書き込む。
データ記憶装置４からデータを読み出す場合、ｄｒｅｑ１を入力されたＤＭＡコントローラ１は、読み出すべきデータをデータ記憶装置４から読み出してシステムバス５１へ出力する。ａｃｋ１を入力されたＩ／Ｏ３１は、システムバス５１へ出力されたデータを受け取る。
【００３７】
Ｉ／Ｏ３１と同様に、ｃｈ２，…，９夫々に対応するＩ／Ｏ３２，…，３９は、ｄｒｅｑ２，…，９及びａｃｋ２，…，９を用いてデータの読み書きを行なう。
【００３８】
次に、ＤＭＡコントローラ１の構成を詳述する。
ＤＭＡコントローラ１は、各ｃｈ１，２，…，９の優先順位の初期値を格納する初期順位レジスタ１１と、ＤＭＡ転送が実行された場合の各ｃｈ１，２，…，９の優先順位の設定値を格納する設定順位レジスタ１２と、各ｃｈ１，２，…，９の優先順位の現在値を格納する優先順位レジスタ１３と、優先順位レジスタ１３を内蔵する制御部１４と、セレクタ１５とを備える。
【００３９】
優先順位レジスタ１３に優先順位の現在値が格納されることによって、ＤＭＡコントローラ１は、夫々に優先順位が設定されている複数のチャネルに係るＤＭＡ転送を制御するＤＭＡコントローラとして機能する。
以下に、ＤＭＡコントローラ１によるＤＭＡ転送について説明する。
【００４０】
ＤＭＡコントローラ１の制御部１４は信号線を介してＩ／Ｏ３１，３２，…，３９夫々に接続されており、Ｉ／Ｏ３１，３２，…，３９からｄｒｅｑ１，２，…，９を入力された場合に、ａｃｋ１，２，…，９をＩ／Ｏ３１，３２，…，３９へ出力することによって、ＤＭＡ転送を制御する。
【００４１】
このために、制御部１４は、所定のタイミングで、初期順位レジスタ１１に格納されている優先順位の初期値を、優先順位の現在値として優先順位レジスタ１３に格納する。つまり制御部１４は、優先順位レジスタ１３に格納されている値を初期値に初期化する初期化手段として機能する。
このタイミングは、例えば、優先順位レジスタ１３の初期化を指示する指示信号がＣＰＵ２１から入力された場合である。具体的には、ＣＰＵ２１は、デジタル複合機の電源がオフからオンになった場合、Ｉ／Ｏ３１，３２，…，３９全部に関するデータ転送が実行されていない場合、所定時刻に達した場合等に制御部１４へ指示信号を出力する。
【００４２】
また、制御部１４は、Ｉ／Ｏ３１，３２，…，３９からｄｒｅｑ１，２，…，９を入力されることによって、各ｃｈ１，２，…，９に関するデータの転送を要求する転送要求信号を受け付ける受付手段として機能する。
受付手段は、各チャネルに関するデータの転送を要求する転送要求信号を受け付ける受付ステップを実行する。
【００４３】
１又は複数のｄｒｅｑが入力されている場合、制御部１４は、入力されているｄｒｅｑに対応するチャネル（即ち制御部１４へｄｒｅｑを出力しているチャネル）の優先順位の現在値を優先順位レジスタ１３から読み出す。つまり制御部１４は、受付手段が転送要求信号を受け付けたチャネルの優先順位の現在値を優先順位レジスタ１３から読み出す第１読出手段として機能する。
【００４４】
制御部１４は、優先順位レジスタ１３から読み出した優先順位の現在値が最も小さい（優先順位が最も高い）チャネルへ、このチャネルに対応するａｃｋを出力し、そして、このチャネルに係るＤＭＡ転送を行なう。ここで、ａｃｋの出力によって、制御部１４に対するｄｒｅｑの入力は停止する。制御部１４へｄｒｅｑを出力しているチャネルが１個である場合、制御部１４がａｃｋを出力すべきチャネルは、当然ながらこのチャネルとなる。
【００４５】
制御部１４がａｃｋを出力したチャネルに係るＤＭＡ転送が終了した後で、制御部１４は、後述するように優先順位レジスタ１３の書き換えを行なう。
優先順位レジスタ１３の書き換え後、１又は複数のｄｒｅｑが制御部１４に入力されている場合、制御部１４は、入力されているｄｒｅｑに対応するチャネルの優先順位の現在値を再び優先順位レジスタ１３から読み出し、読み出した優先順位の現在値が最も小さいチャネルへ、このチャネルに対応するａｃｋを出力し、そして、このチャネルに係るＤＭＡ転送を行なう。
優先順位レジスタ１３の書き換え後、ｄｒｅｑが制御部１４に入力されていない場合、制御部１４はｄｒｅｑが入力されるまで待機する。
【００４６】
つまり、制御部１４は、第１読出手段が読み出した優先順位の現在値に応じた順番で、転送要求信号を受け付けたチャネルに係るＤＭＡ転送を実行する転送手段として機能する。
以上のように、第１読出手段及び転送手段は、転送要求信号を受け付けたチャネルに係るＤＭＡ転送の内、最も優先順位が高いチャネルに係るＤＭＡ転送を実行する実行ステップを実行する。
【００４７】
さて、ａｃｋを出力した制御部１４は、セレクタ１５を制御して、データ記憶装置４に対するデータの入出力を行なう。
セレクタ１５は、システムバス５１及びデータバス５２両方に直接的に接続されている。
【００４８】
セレクタ１５は、セレクタ１５が内蔵するアドレス管理部１５１に格納されているｃｈ１，２，…，９のアドレスに基づいて、チップセレクト信号ＣＳ及び読み出し信号ＲＤをデータ記憶装置４へ出力し、データ記憶装置４から読み出したデータを、データバス５２、セレクタ１５自身及びシステムバス５１を介して所要のＩ／Ｏ（Ｉ／Ｏ３１，３２，…，３９の何れか一つ）へ出力する。同様に、セレクタ１５は、チップセレクト信号ＣＳ及び書き込み信号ＷＤをデータ記憶装置４へ出力し、Ｉ／Ｏ３１，３２，…，３９の何れか一つが出力したデータを、システムバス５１、セレクタ１５自身及びデータバス５２を介してデータ記憶装置４に書き込む。
【００４９】
以上のようにしてＤＭＡ転送を実行した後、制御部１４は、制御部１４がａｃｋを出力したチャネルの優先順位の設定値を、設定順位レジスタ１２から読み出す。つまり、制御部１４は、受付手段が転送要求信号を受け付けたチャネルに係るＤＭＡ転送を転送手段が実行した場合、ＤＭＡ転送が実行されたチャネルの優先順位の設定値を設定順位レジスタ１２から読み出す第２読出手段として機能する。
【００５０】
更に制御部１４は、設定順位レジスタ１２から読み出した優先順位の設定値に基づいて、優先順位レジスタ１３に格納されている優先順位の現在値を書き換える。つまり、制御部１４は、第２読出手段が読み出した設定値に基づいて、優先順位レジスタ１３に格納される優先順位の現在値を書き換える書換手段として機能する。
【００５１】
ところで、デジタル複合機は、図示しない操作パネルを備える。操作パネル５１は、デジタル複合機を操作するために設けられた各種のファンクションキー、液晶ディスプレイを利用した表示装置等を備えている。
デジタル複合機のユーザは、この操作パネルを用いてデジタル複合機にデータ（例えば優先順位の初期値及び／又は設定値）を入力する。ＣＰＵ２１は、操作パネルを介して入力されたデータをＲＡＭ２３に書き込み、また、ＲＡＭ２３から読み出す。
【００５２】
ユーザによって、優先順位の初期値が入力された場合、ＣＰＵ２１は、入力されたデータを初期順位レジスタ１１に格納する。同様に、優先順位の設定値が入力された場合、ＣＰＵ２１は、入力されたデータを設定順位レジスタ１２に格納する。
即ちユーザは、Ｉ／Ｏ３１，３２，…，３９に関するデータ転送の優先度に応じて、適切な優先順位の初期値及び設定値を設定することが可能である。
【００５３】
なお、例えばユーザによる優先順位の初期値（及び／又は設定値）の入力がない場合、ＣＰＵ２１は、ＲＯＭ２２に予め記憶されている初期値（及び／又は設定値）を初期順位レジスタ１１（及び／又は設定順位レジスタ１２）に格納する。
【００５４】
つまり、初期順位レジスタ１１及び／又は設定順位レジスタ１２に格納すべき各ｃｈ１，２，…，９の優先順位の値は、夫々ＤＭＡコントローラ１の外部から設定可能であるよう構成されている。
【００５５】
次に、制御部１４によって優先順位レジスタ１３に格納される優先順位の現在値の書き換えについて詳述する。
図２は、初期順位レジスタ１１に格納される優先順位の初期値の一例を示す模式図であり、図３は、設定順位レジスタ１２に格納される優先順位の設定値の一例を示す模式図である。
本実施の形態においては９個のチャネルが存在するため、優先順位は最上位の“１”から最下位の“９”までの９個の自然数で示される。
【００５６】
図２に示すように、初期順位レジスタ１１には、各ｃｈ１，２，…，９に関連付けて、最上位“１”から最下位“９”までの互いに異なる９種類の初期値が格納される。図２には、ｃｈ１に関連付けて“１”、ｃｈ２に関連付けて“２”、…、ｃｈ９に関連付けて“９”が格納されている場合が例示してある。
各ｃｈ１，２，…，９に関連付けられる優先順位の初期値は、各ｃｈ１，２，…，９の優先度に応じて適切に設定される。つまり、帯域確保のため優先的にＤＭＡ転送を実行する必要があるチャネル、使用頻度が高いチャネル等、優先度が高いチャネルには高い優先順位（小さい初期値）が設定される。
【００５７】
また、図３に示すように、設定順位レジスタ１２には、各ｃｈ１，２，…，９に関連付けて、最上位“１”から最下位“９”までの何れかの値を有する設定値が格納される。各ｃｈ１，２，…，９に関連付けられる設定値は、互いに等しくても異なってもよい。ただし、少なくとも１個のチャネルに関連付けて最下位“９”が関連付けられ、少なくとも１個のチャネルに関連付けて、最下位“９”を除く順位が関連付けられる。
【００５８】
最下位“９”が関連付けられるチャネルは優先度が低いチャネルであり、最下位“９”を除く順位が関連付けられるチャネルは優先度が高いチャネルである。また、優先度がより高いチャネルほど、より高い優先度（より小さい設定値）が設定される。
図３には、ｃｈ３に関連付けて“４”が格納され、ｃｈ３以外のチャネル夫々に関連付けて“９”が格納されている場合が例示してある。つまり、ｃｈ３の優先度が高く、ｃｈ３以外のチャネルの優先度が低い場合が例示してある。
【００５９】
以下では、ｃｈ１，２，３，４に係る転送要求が同時的に発生した場合、即ちＩ／Ｏ３１，３２，３３，３４が出力したｄｒｅｑ１，２，３，４がＤＭＡコントローラ１の制御部１４に同時的に入力されている場合を例示する。
図４〜図５は、図２及び図３に示すような値が初期順位レジスタ１１及び設定順位レジスタ１２夫々に格納されている場合に優先順位レジスタ１３に格納される優先順位の現在値の遷移の一例を示す模式図であり、図６〜図７は、ＤＭＡコントローラ１による優先順位の遷移の一例を示す説明図である。
【００６０】
図４（ａ）は、優先順位レジスタ１３が初期化された直後の優先順位の現在値を示している。このため、図２に示す初期順位レジスタ１１に格納されている初期値と同様に、ｃｈ１に関連付けて“１”、ｃｈ２に関連付けて“２”、…、ｃｈ９に関連付けて“９”が格納されている。
制御部１４は、入力されているｄｒｅｑ１，２，３，４に対応するチャネルの優先順位の現在値を図４（ａ）に示す優先順位レジスタ１３から読み出す。この場合、ｃｈ１の優先順位の現在値が最も小さい“１”であるため、ｃｈ１へａｃｋ１を出力し、そして、ｃｈ１に係るＤＭＡ転送を行なう。ａｃｋ１の出力によって、制御部１４に対するｄｒｅｑ１の入力は停止する。
【００６１】
ｃｈ１に係るＤＭＡ転送の終了後、制御部１４は、ｃｈ１の優先順位の設定値を、設定順位レジスタ１２から読み出す。
更に制御部１４は、設定順位レジスタ１２から読み出した優先順位の設定値“９”に基づいて、優先順位レジスタ１３に格納されている優先順位の現在値を書き換える。
このとき、制御部１４が優先順位レジスタ１３に格納される優先順位の現在値を書き換えた結果が図４（ｂ）に示されている。
【００６２】
図６（ａ）には、優先順位の順にｃｈ１〜ｃｈ９が並んでいる状態を示している。優先順位“１”のｃｈ１に係るＤＭＡ転送が終了した場合、ｃｈ１には、設定順位レジスタ１２から読み出した優先順位の設定値である“９”が付与される。
ｃｈ１に優先順位“９”が付与された時点で、ｃｈ１及びｃｈ９夫々に同一の優先順位“９”が設定される（優先順位のバッティングが生じる）ため、本実施の形態においては、この時点で優先順位“９”が付与されたｃｈ１を優先順位“９”に設定しておき、ｃｈ９の優先順位を繰り上げて“８”とする。
【００６３】
同様に、ｃｈ８の優先順位を繰り上げて“７”とし、ｃｈ７の優先順位を繰り上げて“６”とし、…、ｃｈ２の優先順位を繰り上げて“１”とする。
即ち、ｃｈ１に係るＤＭＡ転送の終了後、ｃｈ１〜ｃｈ９夫々の優先順位がラウンドロビン方式で設定される。
【００６４】
この結果、図４（ｂ）に示すように、優先順位レジスタ１３には、ｃｈ１に関連付けて“９”、ｃｈ２に関連付けて“１”、ｃｈ３に関連付けて“２”、…、ｃｈ９に関連付けて“８”が格納される。
【００６５】
優先順位レジスタ１３の書き換え後、制御部１４は、入力されているｄｒｅｑ２，３，４に対応するチャネルの優先順位の現在値を優先順位レジスタ１３から読み出す。この場合、ｃｈ２の優先順位の現在値が最も小さい“１”であるため、ｃｈ２へａｃｋ２を出力し、そして、ｃｈ２に係るＤＭＡ転送を行なう。ａｃｋ２の出力によって、制御部１４に対するｄｒｅｑ２の入力は停止する。
【００６６】
ｃｈ２に係るＤＭＡ転送の終了後、制御部１４は、ｃｈ２の優先順位の設定値を、設定順位レジスタ１２から読み出す。
更に制御部１４は、設定順位レジスタ１２から読み出した優先順位の設定値“９”に基づいて、優先順位レジスタ１３に格納されている優先順位の現在値を書き換える。
このとき、制御部１４が優先順位レジスタ１３に格納される優先順位の現在値を書き換えた結果が図４（ｃ）に示されている。
【００６７】
図６（ｂ）には、優先順位“１”のｃｈ２に係るＤＭＡ転送が終了した場合、ｃｈ２に、設定順位レジスタ１２から読み出した優先順位の設定値である“９”が付与される状態が示されている。
この場合も、ｃｈ１〜ｃｈ９夫々の優先順位がラウンドロビン方式で設定され、この結果、図４（ｃ）に示すように、優先順位レジスタ１３には、ｃｈ１に関連付けて“８”、ｃｈ２に関連付けて“９”、ｃｈ３に関連付けて“１”、ｃｈ４に関連付けて“２”、…、ｃｈ９に関連付けて“７”が格納される。
【００６８】
優先順位レジスタ１３の書き換え後、制御部１４は、入力されているｄｒｅｑ３，４に対応するチャネルの優先順位の現在値を優先順位レジスタ１３から読み出す。この場合、ｃｈ３の優先順位の現在値が最も小さい“１”であるため、ｃｈ３へａｃｋ３を出力し、そして、ｃｈ３に係るＤＭＡ転送を行なう。ａｃｋ３の出力によって、制御部１４に対するｄｒｅｑ３の入力は停止する。
【００６９】
ｃｈ３に係るＤＭＡ転送の終了後、制御部１４は、ｃｈ３の優先順位の設定値を、設定順位レジスタ１２から読み出す。
更に制御部１４は、設定順位レジスタ１２から読み出した優先順位の設定値“４”に基づいて、優先順位レジスタ１３に格納されている優先順位の現在値を書き換える。
このとき、制御部１４が優先順位レジスタ１３に格納されている優先順位の現在値を書き換えた結果が図５（ａ）に示されている。
【００７０】
図６（ｃ）には、優先順位“１”のｃｈ３に係るＤＭＡ転送が終了した場合、ｃｈ３に、設定順位レジスタ１２から読み出した優先順位の設定値である“４”が付与される状態が示されている。
ｃｈ３に優先順位“４”が付与された時点で、ｃｈ３及びｃｈ６夫々に同一の優先順位“４”が設定されるため、本実施の形態においては、この時点で優先順位“４”が付与されたｃｈ３を優先順位“４”に設定しておき、ｃｈ６の優先順位を繰り上げて“３”とする。
【００７１】
同様に、ｃｈ５の優先順位を繰り上げて“２”とし、ｃｈ４の優先順位を繰り上げて“１”とする。
即ち、ｃｈ１に係るＤＭＡ転送の終了後、ｃｈ３〜ｃｈ６夫々の優先順位がラウンドロビン方式状に設定される。
また、ｃｈ７〜ｃｈ９及びｃｈ１，２夫々は、優先順位のバッティングが生じないため、優先順位の書き換えは行なわれない。
【００７２】
この結果、図５（ａ）に示すように、優先順位レジスタ１３には、ｃｈ１に関連付けて“８”、ｃｈ２に関連付けて“９”、ｃｈ３に関連付けて“４”、ｃｈ４に関連付けて“１”、ｃｈ５に関連付けて“２”、ｃｈ６に関連付けて“３”、ｃｈ７に関連付けて“５”、ｃｈ８に関連付けて“６”、ｃｈ９に関連付けて“７”が格納される。
【００７３】
優先順位レジスタ１３の書き換え後、制御部１４は、入力されているｄｒｅｑ４に対応するチャネルの優先順位の現在値を優先順位レジスタ１３から読み出す。この場合、ｃｈ４の優先順位の現在値が最も小さい“１”であるため、ｃｈ４へａｃｋ４を出力し、そして、ｃｈ４に係るＤＭＡ転送を行なう。ａｃｋ４の出力によって、制御部１４に対するｄｒｅｑ４の入力は停止する。
【００７４】
ｃｈ４に係るＤＭＡ転送の終了後、制御部１４は、ｃｈ４の優先順位の設定値を、設定順位レジスタ１２から読み出す。
更に制御部１４は、設定順位レジスタ１２から読み出した優先順位の設定値“９”に基づいて、優先順位レジスタ１３に格納されている優先順位の現在値を書き換える。
このとき、制御部１４が優先順位レジスタ１３に格納される優先順位の現在値を書き換えた結果が図５（ｂ）に示されている。
【００７５】
図７（ａ）には、優先順位“１”のｃｈ４に係るＤＭＡ転送が終了した場合、ｃｈ４に、設定順位レジスタ１２から読み出した優先順位の設定値である優先順位“９”が付与される状態が示されている。
この場合も、ｃｈ１〜ｃｈ９夫々の優先順位がラウンドロビン方式で設定され、この結果、図５（ｂ）に示すように、優先順位レジスタ１３には、ｃｈ１に関連付けて“７”、ｃｈ２に関連付けて“８”、ｃｈ３に関連付けて“３”、ｃｈ４に関連付けて“９”、…、ｃｈ９に関連付けて“６”が格納される。
【００７６】
この状態で、更に優先順位“１”のｃｈ５に係るＤＭＡ転送が終了した場合、ｃｈ５に、設定順位レジスタ１２から読み出した優先順位の設定値である優先順位“９”が付与される状態が図７（ｂ）に示されている。
この場合も、ｃｈ１〜ｃｈ９夫々の優先順位がラウンドロビン方式で設定される。
【００７７】
以上のようにして、第２読出手段及び書換手段（即ち制御部１４）は、設定順位レジスタ１２から読み出した優先順位の設定値が優先順位の最下位の値である場合、ＤＭＡ転送が実行された一のチャネルの優先順位を最下位に設定する第１設定ステップを実行する。
【００７８】
また、第２読出手段及び書換手段は、設定順位レジスタ１２から読み出した優先順位の設定値が優先順位の最下位を除く所定の順位の値である場合、ＤＭＡ転送が実行された他のチャネルの優先順位を、ＤＭＡ転送が実行されたときの順位又はこの順位とは異なる順位であって、最下位を除く所定の順位に設定する第２設定ステップを実行する。
【００７９】
そして、書換手段である制御部１４は、第１設定ステップ又は第２設定ステップで優先順位が設定されることによって複数のチャネルに対して同一の優先順位が設定される場合に、第１設定ステップ又は第２設定ステップで優先順位が設定されたチャネル以外のチャネルの優先順位を繰り上げる調整ステップを実行する。
なお、例えば第２設定ステップで優先順位が設定されたチャネルの優先順位が最上位である場合、調整ステップにおいて、第２設定ステップで優先順位が設定されたチャネル以外のチャネルの優先順位を繰り下げてもよい。
【００８０】
図８は、設定順位レジスタ１２に格納される優先順位の設定値の他の一例を示す模式図である。
図８には、最も優先度が高いｃｈ１，２に関連付けて“２”が格納され、次に優先度が高いｃｈ５，６に関連付けて“６”が格納され、優先度が低いｃｈ３，４に関連付けて“８”が格納され、更に優先度が低いｃｈ７，８，９に関連付けて“９”が格納されている場合が例示してある。
【００８１】
以下では、ｃｈ１，３，５，９に係る転送要求が同時的に発生した場合、即ちＩ／Ｏ３１，３３，３５，３９が出力したｄｒｅｑ１，３，５，９がＤＭＡコントローラ１の制御部１４に同時的に入力されている場合を例示する。
図９〜図１０は、図２及び図８に示すような値が初期順位レジスタ１１及び設定順位レジスタ１２夫々に格納されている場合に優先順位レジスタ１３に格納される優先順位の現在値の遷移の他の一例を示す模式図である。
【００８２】
図９（ａ）は、優先順位レジスタ１３が初期化された直後の優先順位の現在値を示している。このため、図２に示す初期順位レジスタ１１に格納されている初期値と同様に、ｃｈ１に関連付けて“１”、ｃｈ２に関連付けて“２”、…、ｃｈ９に関連付けて“９”が格納されている。
制御部１４は、入力されているｄｒｅｑ１，３，５，９に対応するチャネルの優先順位の現在値を図９（ａ）に示す優先順位レジスタ１３から読み出す。この場合、ｃｈ１の優先順位の現在値が最も小さい“１”であるため、ｃｈ１へａｃｋ１を出力し、そして、ｃｈ１に係るＤＭＡ転送を行なう。ａｃｋ１の出力によって、制御部１４に対するｄｒｅｑ１の入力は停止する。
【００８３】
ｃｈ１に係るＤＭＡ転送の終了後、制御部１４は、ｃｈ１の優先順位の設定値を、設定順位レジスタ１２から読み出す。
更に制御部１４は、設定順位レジスタ１２から読み出した優先順位の設定値“２”に基づいて、優先順位レジスタ１３に格納されている優先順位の現在値を書き換える。
即ち、ｃｈ１に係るＤＭＡ転送の終了後、ｃｈ１及びｃｈ２夫々の優先順位がラウンドロビン方式状に設定される。ここで、ｃｈ３〜ｃｈ９夫々は、優先順位のバッティングが生じないため、優先順位の書き換えは行なわれない。
このとき、制御部１４が優先順位レジスタ１３に格納される優先順位の現在値を書き換えた結果が図９（ｂ）に示されている。
【００８４】
優先順位レジスタ１３の書き換え後、制御部１４は、入力されているｄｒｅｑ３，５，９に対応するチャネルの優先順位の現在値を優先順位レジスタ１３から読み出す。この場合、ｃｈ３の優先順位の現在値が最も小さい“３”であるため、ｃｈ３へａｃｋ３を出力し、そして、ｃｈ３に係るＤＭＡ転送を行なう。ａｃｋ３の出力によって、制御部１４に対するｄｒｅｑ３の入力は停止する。
【００８５】
ｃｈ３に係るＤＭＡ転送の終了後、制御部１４は、ｃｈ３の優先順位の設定値を、設定順位レジスタ１２から読み出す。
更に制御部１４は、設定順位レジスタ１２から読み出した優先順位の設定値“８”に基づいて、優先順位レジスタ１３に格納されている優先順位の現在値を書き換える。
【００８６】
即ち、ｃｈ３に係るＤＭＡ転送の終了後、ｃｈ３〜ｃｈ８夫々の優先順位がラウンドロビン方式状に設定され、ｃｈ１、ｃｈ２及びｃｈ９夫々の優先順位は変化しない。
このとき、制御部１４が優先順位レジスタ１３に格納される優先順位の現在値を書き換えた結果が図９（ｃ）に示されている。
【００８７】
優先順位レジスタ１３の書き換え後、制御部１４は、入力されているｄｒｅｑ５，９に対応するチャネルの優先順位の現在値を優先順位レジスタ１３から読み出す。この場合、ｃｈ５の優先順位の現在値が最も小さい“４”であるため、ｃｈ５へａｃｋ５を出力し、そして、ｃｈ５に係るＤＭＡ転送を行なう。ａｃｋ５の出力によって、制御部１４に対するｄｒｅｑ５の入力は停止する。
【００８８】
ｃｈ５に係るＤＭＡ転送の終了後、制御部１４は、ｃｈ５の優先順位の設定値を、設定順位レジスタ１２から読み出す。
更に制御部１４は、設定順位レジスタ１２から読み出した優先順位の設定値“６”に基づいて、優先順位レジスタ１３に格納されている優先順位の現在値を書き換える。
【００８９】
即ち、ｃｈ５に係るＤＭＡ転送の終了後、ｃｈ５〜ｃｈ７夫々の優先順位がラウンドロビン方式状に設定され、ｃｈ１〜ｃｈ４及びｃｈ８〜ｃｈ９夫々の優先順位は変化しない。
このとき、制御部１４が優先順位レジスタ１３に格納される優先順位の現在値を書き換えた結果が図１０（ａ）に示されている。
【００９０】
仮に、ｃｈ５に係るＤＭＡ転送の終了後（即ち図９（ｃ）の状態で）、設定順位レジスタ１２から読み出した優先順位の設定値が“４”である場合、この値と、ｃｈ５に関連付けて優先順位レジスタ１３に格納されている優先順位の現在値とが等しいため、ｃｈ１〜ｃｈ９夫々の優先順位は変化しない。つまり、ｃｈ１〜ｃｈ９夫々の優先順位は固定優先順位方式状に設定される。
【００９１】
優先順位レジスタ１３の書き換え後、制御部１４は、入力されているｄｒｅｑ９に対応するチャネルの優先順位の現在値を優先順位レジスタ１３から読み出す（図１０（ａ））。この場合、ｃｈ９の優先順位の現在値が最も小さい“９”であるため、ｃｈ９へａｃｋ９を出力し、そして、ｃｈ９に係るＤＭＡ転送を行なう。ａｃｋ９の出力によって、制御部１４に対するｄｒｅｑ９の入力は停止する。
【００９２】
ｃｈ９に係るＤＭＡ転送の終了後、制御部１４は、ｃｈ９の優先順位の設定値を、設定順位レジスタ１２から読み出す。
更に制御部１４は、設定順位レジスタ１２から読み出した優先順位の設定値“９”に基づいて、優先順位レジスタ１３に格納されている優先順位の現在値を書き換える。
【００９３】
しかしながら、設定順位レジスタ１２から読み出した優先順位の設定値“９”は、ｃｈ９に関連付けて優先順位レジスタ１３に格納されている優先順位の現在値“９”に等しいため、ｃｈ１〜ｃｈ９夫々の優先順位は変化しない。つまり、ｃｈ１〜ｃｈ９夫々の優先順位は固定優先順位方式状に設定される。
このとき、制御部１４が優先順位レジスタ１３に格納される優先順位の現在値を書き換えた結果が図１０（ｂ）に示されている。
【００９４】
図１１及び図１２夫々は、設定順位レジスタ１２に格納される優先順位の設定値の更に他の一例を示す模式図である。
図１１には、ｃｈ１，２，３夫々に関連付けて“３”が格納され、更に、ｃｈ４に関連付けて“４”、ｃｈ５に関連付けて“５”、…、ｃｈ９に関連付けて“９”が格納されている場合が例示してある。
図１２には、ｃｈ１に関連付けて“１”、ｃｈ２に関連付けて“２”、ｃｈ３に関連付けて“３”が格納され、更に、ｃｈ４，５，…，９夫々に関連付けて“９”が格納されている場合が例示してある。
【００９５】
図２及び図１１に示すような値が初期順位レジスタ１１及び設定順位レジスタ１２夫々に格納されている場合、優先順位レジスタ１３に格納されるｃｈ１，２，３の優先順位の現在値はラウンドロビン方式状に設定され、ｃｈ４，５，…，９の優先順位の現在値は、固定優先順位方式状に設定される。
一方、図２及び図１２に示すような値が初期順位レジスタ１１及び設定順位レジスタ１２夫々に格納されている場合、優先順位レジスタ１３に格納されるｃｈ１，２，３の優先順位の現在値は固定優先順位方式状に設定され、ｃｈ４，５，…，９の優先順位の現在値は、ラウンドロビン方式状に設定される。
【００９６】
以上のようなＤＭＡ制御方法は、基本的にはラウンドロビン方式状に各チャネルに優先順位を設定するが、ＤＭＡ転送終了後の優先順位を最下位か、又は最下位以外の順位に設定するため、優先度が高いチャネル、即ち帯域確保のため優先的にＤＭＡ転送を実行する必要があるチャネル、使用頻度が高いチャネル等の優先順位が過剰に下がることが抑制される。この結果、システム全体のパフォーマンスが向上される。
【００９７】
しかも、ＤＭＡ転送終了後の順位はＣＰＵ（ホスト）側から各チャネルに対して設定可能であるため、状況に応じて優先順位を適宜に設定することによって、更にシステム全体のパフォーマンスが向上される。
【００９８】
なお、各チャネルに対する設定順位レジスタの設定値を全て最下位の値にした場合は、ＤＭＡコントローラはラウンドロビン方式と同様に作動し、全て最上位の値にした場合はＬＲＵ方式と同様に作動する。また、各チャネルに対する初期順位レジスタの初期値と設定順位レジスタの設定値とを等しい値にした場合は、ＤＭＡコントローラは固定値方式と同様に作動する。
つまり、本発明のＤＭＡコントローラは多様なＤＭＡ制御方法に柔軟に対応可能な構成である。
【００９９】
しかしながら、このように制御する場合、本発明のＤＭＡコントローラの構成は、設定順位レジスタを必要とする分だけ、ラウンドロビン方式単独、ＬＲＵ方式単独、又は固定値単独のＤＭＡコントローラ夫々の構成よりも冗長になりがちである。
即ち、本発明のＤＭＡコントローラは、各チャネルにラウンドロビン方式的に所定の優先順位を設定する本発明のＤＭＡ制御方法にて使用する場合に最も効率よく作動する。
【０１００】
また、複数のチャネルに対する設定順位レジスタの設定値を全て最下位の値にし、これらのチャネル以外の複数のチャネルに対する設定順位レジスタの設定値を全て最上位の値にした場合は、ＤＭＡコントローラはラウンドロビン方式及びＬＲＵ方式を混合したように作動する。ただし、ラウンドロビン方式及びＬＲＵ方式を切り換える判定が不要であるため、ＤＭＡコントローラの構成は簡易である。
【０１０１】
ところで、本実施の形態においては、本発明のＤＭＡコントローラを備え、本発明のＤＭＡ制御方法を実施するデジタル複合機を例示したが、これに限定されるものではない。また、チャネルの個数も９個に限るものではない。
【図面の簡単な説明】
【０１０２】
【図１】本発明に係るＤＭＡコントローラの構成を示すブロック図である。
【図２】本発明に係るＤＭＡコントローラが備える初期順位レジスタに格納される優先順位の初期値の一例を示す模式図である。
【図３】本発明に係るＤＭＡコントローラが備える設定順位レジスタに格納される優先順位の設定値の一例を示す模式図である。
【図４】本発明に係るＤＭＡコントローラが備える優先順位レジスタに格納される優先順位の現在値の遷移の一例を示す模式図である。
【図５】本発明に係るＤＭＡコントローラが備える優先順位レジスタに格納される優先順位の現在値の遷移の一例を示す模式図である。
【図６】本発明に係るＤＭＡコントローラによる優先順位の遷移の一例を示す説明図である。
【図７】本発明に係るＤＭＡコントローラによる優先順位の遷移の一例を示す説明図である。
【図８】本発明に係るＤＭＡコントローラが備える設定順位レジスタに格納される優先順位の設定値の他の一例を示す模式図である。
【図９】本発明に係るＤＭＡコントローラが備える優先順位レジスタに格納される優先順位の現在値の遷移の他の一例を示す模式図である。
【図１０】本発明に係るＤＭＡコントローラが備える優先順位レジスタに格納される優先順位の現在値の遷移の他の一例を示す模式図である。
【図１１】本発明に係るＤＭＡコントローラが備える設定順位レジスタに格納される優先順位の設定値の更に他の一例を示す模式図である。
【図１２】本発明に係るＤＭＡコントローラが備える設定順位レジスタに格納される優先順位の設定値の更に他の一例を示す模式図である。
【符号の説明】
【０１０３】
１    ＤＭＡコントローラ
１１  初期順位レジスタ
１２  設定順位レジスタ
１３  優先順位レジスタ
１４  制御部
１５  セレクタ
２１  ＣＰＵ
３１，３２，３９  Ｉ／Ｏ
４    データ記憶装置
【図１】
2008027353.tif 000003
【図２】
2008027353.tif 000004
【図３】
2008027353.tif 000005
【図４】
2008027353.tif 000006
【図５】
2008027353.tif 000007
【図６】
2008027353.tif 000008
【図７】
2008027353.tif 000009
【図８】
2008027353.tif 000010
【図９】
2008027353.tif 000011
【図１０】
2008027353.tif 000012
【図１１】
2008027353.tif 000013
【図１２】
2008027353.tif 000014