(57)【要約】【課題】一度のバスホールド要求で複数のＤＭＡ要求を受け付け、バス支配権の調停手続き回数とチャネル間のレーテンシを低減できること。【解決手段】各ＤＭＡチャネルデータ量設定部１２には、予め複数のＤＭＡチャネル別のデータ転送量がデータ量あるいは割合で設定される。Ｃｈ選択制御回路１１は、アクティブなＤＭＡチャネルを判断する。データ転送制御回路１５は、Ｃｈ選択制御回路１１によりアクティブと判断されたＤＭＡチャネルのデータを、各ＤＭＡチャネルデータ量設定部１２により設定された各ＤＭＡチャネル別のデータ転送量に従いデータ転送する。これにより、一度のバスホールド要求で複数のＤＭＡ要求を受け付けてバス支配権の調停手続き回数とチャネル間のレーテンシを低減させる。【選択図】　　　図１
2004094452.tif 000002
【特許請求の範囲】
【請求項１】
複数のＤＭＡチャネルを有し、同一バス上に存在する複数の周辺装置からのＤＭＡ要求を一回のバス使用権獲得時に一度に処理するＤＭＡコントローラにおいて、
前記複数のＤＭＡチャネル別のデータ転送量を設定するデータ量設定手段と、
アクティブなＤＭＡチャネルを判断するチャネル選択制御手段と、
前記チャネル選択制御手段によりアクティブと判断された前記複数のＤＭＡチャネルの各データを、前記データ量設定手段により設定されたＤＭＡチャネル別のデータ転送量に従いデータ転送するデータ転送制御手段と、
を備えたことを特徴とするＤＭＡコントローラ。
【請求項２】
前記データ量設定手段は、
前記一回のバス使用権獲得で転送される全体のデータ量に対する前記複数のＤＭＡチャネル別の割合を設定することを特徴とする請求項１に記載のＤＭＡコントローラ。
【請求項３】
前記データ量設定手段は、
前記一回のバス使用権獲得で転送される全体のデータ量に対する前記複数のＤＭＡチャネル別の割合を設定するチャネルレシオレジスタと、
前記チャネルレシオレジスタにより設定された割合に基づき、全体のデータ量に対する前記複数のＤＭＡチャネルそれぞれのデータ量を演算するバースト長演算手段と、
を備えたことを特徴とする請求項２に記載のＤＭＡコントローラ。
【請求項４】
前記データ量設定手段は、
前記一回のバス使用権獲得で転送される前記複数のＤＭＡチャネルのデータ量を設定することを特徴とする請求項１に記載のＤＭＡコントローラ。
【請求項５】
前記データ量設定手段は、
前記一回のバス使用権設定で転送される前記複数のＤＭＡチャネル別のデータ量を設定するバースト長レジスタと、
前記バースト長レジスタで設定された前記複数のＤＭＡチャネル別のデータ量を読み出すセレクタと、
を備えたことを特徴とする請求項４に記載のＤＭＡコントローラ。
【請求項６】
前記チャネル選択制御手段は、
一回のバス使用権を獲得する直前にＤＭＡ転送要求があった前記複数のＤＭＡチャネルを選択することを特徴とする請求項１〜５のいずれか一つに記載のＤＭＡコントローラ。
【請求項７】
前記チャネル選択制御手段は、
一回のバス使用権を獲得している期間中、ＤＭＡ転送要求に基づいて前記複数のＤＭＡチャネルを選択し、該選択したチャネルのうち最終チャネルＤＭＡ転送が終了するまでに新たなチャネルのＤＭＡ転送要求が発生した場合には、該ＤＭＡ転送要求された新たなチャネルを選択することを特徴とする請求項１〜５のいずれか一つに記載のＤＭＡコントローラ。
【請求項８】
前記データ量設定手段は、
ＤＭＡ転送要求が未発生のＤＭＡチャネルが存在する場合、該未発生のＤＭＡチャネルに割り当てられた空き帯域を未使用にし前記バス使用権を開放することを特徴とする請求項１〜６のいずれか一つに記載のＤＭＡコントローラ。
【請求項９】
前記データ量設定手段は、
ＤＭＡ転送要求が未発生のＤＭＡチャネルが存在する場合、該未発生のＤＭＡチャネルに割り当てられた空き帯域を、ＤＭＡ転送要求した前記複数のＤＭＡチャネルに対し所定の割合で再度割り当てることを特徴とする請求項１〜６のいずれか一つに記載のＤＭＡコントローラ。
【請求項１０】
複数のＤＭＡチャネルを有し、同一バス上に存在する複数の周辺装置からのＤＭＡ要求を一回のバス使用権獲得時に一度に処理するＤＭＡ転送方法において、
前記複数のＤＭＡチャネル別のデータ転送量を設定するデータ量設定工程と、
アクティブなＤＭＡチャネルを判断するチャネル選択制御工程と、
前記チャネル選択制御工程によりアクティブと判断された前記複数のＤＭＡチャネルの各データを、前記データ量設定工程により設定されたＤＭＡチャネル別のデータ転送量に従いデータ転送するデータ転送制御工程と、
を含むことを特徴とするＤＭＡ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、複数のデータ転送チャネルに対するＤＭＡ転送をおこなうＤＭＡコントローラに関し、特に、データの高速転送とチャネル毎の最低転送レート幅の保証が可能なチャネル帯域保証型のＤＭＡコントローラおよびＤＭＡ転送方法に関する。
【０００２】
【従来の技術】
従来から、中央演算処理装置（以下、ＣＰＵと記す）を用いたシステムにおいては、複数の周辺装置とメモリとの間の高速データ転送のために、ＣＰＵを介さずにデータ転送をおこなうＤＭＡ転送機能を備えている。このＤＭＡ転送は、ＤＭＡコントローラによって制御され、以下にＤＭＡコントローラの基本的な動作の手順を説明する。
【０００３】
各チャネルに割り当てられた周辺装置からＤＭＡコントローラに対してＤＭＡ要求が発生すると、ＤＭＡコントローラは、ＣＰＵに対してバスホールド要求をおこなう。周辺装置からの複数のＤＭＡ要求に対しては、ＤＭＡコントローラは予め設定されている優先順位に従って、優先順位の高いチャネルについてのデータ転送を準備する。
【０００４】
ＣＰＵがＤＭＡコントローラからのバスホールド要求を受理すると、ＣＰＵはＤＭＡコントローラにバス支配権を受け渡したことになる。そして、ＤＭＡコントローラは、バスをＤＭＡ転送のデータ経路として使用して、メモリと周辺装置との間でデータ転送を開始する。データ転送は、ＤＭＡ要求が継続している間おこなわれる。バーストモードであれば予め定められたサイズでの転送も可能である。
【０００５】
【発明が解決しようとする課題】
しかしながら、従来の技術では、ＤＭＡ転送を開始する前準備として、必ずＤＭＡコントローラとＣＰＵとの間でバス支配権の調停手続きが必要となる。したがって、ＤＭＡ転送が頻繁におこなわれる場合、この調停手続きがデータ転送効率を低下させる原因となった。
【０００６】
バーストモードを用いることによりＤＭＡ転送の頻度を軽減することは可能であるが、反面、データ長が増加するために単一チャネルあたりのバス占有時間が増加傾向となる。したがって、ＤＭＡ要求が処理されるまでの待ち時間も長くなるため、各チャネル間のデータにレーテンシが生じる原因となる。加えて、データ保持に必要なバッファも大きなサイズが必要となる。
【０００７】
本発明は、上述した従来技術による問題点を解消するため、一度のバスホールド要求で複数のＤＭＡ要求を受け付け、バス支配権の調停手続き回数とチャネル間のレーテンシを低減できるチャネル帯域保証型のＤＭＡコントローラおよびＤＭＡ転送方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、本発明は、複数のＤＭＡチャネル別のデータ転送量を設定するデータ量設定手段と、アクティブなＤＭＡチャネルを判断するチャネル選択制御手段と、前記チャネル選択制御手段によりアクティブと判断された前記複数のＤＭＡチャネルの各データを、前記データ量設定手段により設定されたＤＭＡチャネル別のデータ転送量に従いデータ転送するデータ転送制御手段とを備える。
【０００９】
この発明によれば、同一バス上に存在する複数の周辺装置からのＤＭＡ要求を一回のバス使用権獲得時に一度に受け付け、アクティブなＤＭＡチャネルを判断し予め設定された複数のＤＭＡチャネル別のデータ転送量に基づき、ＤＭＡ転送する。この際、一回のバス使用権獲得で転送される全体のデータ量に対して、各ＤＭＡチャネルのデータ転送量を固定のデータ量、あるいは各チャネル別の割合に従い転送する。
【００１０】
【発明の実施の形態】
以下に、本発明の実施の形態について図面を参照しつつ詳細に説明する。この発明のチャネル帯域保証型のＤＭＡコントローラは、同一バス上に存在する複数の周辺装置からのＤＭＡ要求を一回のバス使用権獲得時に処理するものである。
【００１１】
（ＤＭＡコントローラの基本構成）
図１は、この発明のＤＭＡコントローラの基本構成を示すブロック図である。ＤＭＡコントローラ（ＤＭＡＣ）１には、複数のＤＭＡチャネル（以下チャネルと呼ぶ、Ｃｈ１〜Ｃｈｎ）の周辺機器（ペリフェラル−１〜ペリフェラル−ｎ）２ａ〜２ｎと、ＣＰＵ３と、メモリ４が接続されている。周辺機器２ａ〜２ｎは、ＤＭＡコントローラ１のＤＭＡ転送の制御によりバス（データ／アドレスバス）５を介してメモリ４との間でＤＭＡ転送をおこなう。
【００１２】
ＤＭＡコントローラ１は、複数の各チャネルの周辺機器２ａ〜２ｎのデータ転送を制御するＩ／Ｆ回路１０と、周辺機器２ａ〜２ｎの転送要求ＤＲＥＱに基づきアクティブなＤＭＡチャネルを判断し、このアクティブなＤＭＡチャネルの転送の実行を選択するＣｈ選択制御回路１１と、各チャネル毎のデータ転送量を予め設定しておく各ＤＭＡチャネルデータ量設定部１２と、１チャネルあたりのバースト長をカウントするバースト長カウンタ（１ＣｈＢｕｒｓｔカウンタ）１３と、各チャネル毎のデータおよびアドレスをカウントするチャネル制御回路（Ｃｈ制御回路）１４と、ＣＰＵ３との間バス使用権の調停、およびＤＭＡのリード／ライト等のデータ転送を制御するデータ転送制御回路１５とを備えている。
【００１３】
（実施の形態１）
図２は、本発明にかかるＤＭＡコントローラの実施の形態１の構成を示すブロック図である。実施の形態１は、１回のバス権獲得につき、ＤＭＡコントローラが転送する全体のデータ量に対する割合で各ＤＭＡチャネルのデータ量を設定する構成である。
【００１４】
ＤＭＡコントローラ１に設けられた各ＤＭＡチャネルデータ量設定部１２は、全体のデータ量に対する割合を設定するチャネルレシオレジスタ（ＣｈＲａｔｉｏレジスタ）２０と、全体のデータ量に対する割合からデータ量を演算するバースト長演算回路（１ＣｈＢｕｒｓｔ長演算回路）２１と、演算された各チャネルのデータ量を保持するバースト長保持回路（ＣｈＢｕｒｓｔ長保持回路）２２と、転送量全体のバースト長が設定されるバースト長レジスタ（ＴｏｔａｌＢｕｒｓｔ長レジスタ）２３とを備えている。
【００１５】
図３は、ＣｈＲａｔｉｏレジスタ２０の構成例を示す図表である。ＣｈＲａｔｉｏレジスタ２０は、各ＤＭＡチャネルの全体のデータ量に対する割合を設定する。各チャネルＣｈは、図３（ａ）に示すようにＲＴ１，ＲＴ０の２ビットを用いて、それぞれ図３（ｂ）に示すように４通りの割合を設定することができる。例えば、あるチャネルは、ＲＴ１が「０」，ＲＴ０が「１」の設定であれば、全体の転送レート（ＴｏｔａｌＢｕｒｓｔ長レジスタ２３）の２５％の割合を設定することができる。なお、図３（ｂ）に示すビット数を増大させれば、より細かな割合を設定できるようになる。
【００１６】
また、１ＣｈＢｕｒｓｔ長演算回路２１は、以下のように空領域の使用の有無に対応して構成を変更できる。即ち、アクティブとなっていない（非アクティブ）ＤＭＡチャネルの転送時間（空き時間）に、その他のアクティブになっているＤＭＡチャネルの転送をおこなうかどうかを設定できるようになっている。
【００１７】
図４は、１ＣｈＢｕｒｓｔ長演算回路の設定例を示す構成図である。この構成は、空領域を使用しない例である。各チャネル毎にマスク回路Ｃｈ１（３１ａ）〜Ｃｈｎ（３１ｎ）が設けられ、各チャネル別にそれぞれＣｈ選択制御回路１１からのアクティブ信号（ＡＣＴ＿ＣＨ−１〜ＡＣＴ＿ＣＨ−ｎ）と、ＣｈＲａｔｉｏレジスタ２０からのＣｈレシオ信号（ＣＨ１＿Ｒａｔｉｏ〜ＣＨｎ＿Ｒａｔｉｏ）が入力される。
【００１８】
マスク回路Ｃｈ１（３１ａ）〜Ｃｈｎ（３１ｎ）は、対応するアクティブ信号がアクティブであるときにそれぞれＣｈレシオ信号の割合に基づきチャネル毎のデータ量の割合（％）を演算し、この演算結果を後段の乗算器３２ａ〜３２ｎに出力する。乗算器３２ａ〜３２ｎには、ＴｏｔａｌＢｕｒｓｔ長レジスタ２３から全体のデータ量（Ｔｏｔａｌｂｕｒｓｔ長）が入力され、各チャネルのデータ量（ＣＨ１Ｂｕｒｓｔ長〜ＣＨｎＢｕｒｓｔ長）がそれぞれ演算出力される。対応するアクティブ信号が非アクティブであるときは、マスク回路Ｃｈ１（３１ａ）〜Ｃｈｎ（３１ｎ）は、それぞれチャネル毎のデータ量の割合として０（％）を出力する。
【００１９】
図４の構成によれば、各チャネルの状態（アクティブ／非アクティブ）にかかわらず、各チャネル毎に固定のデータ量を割り当てる構成であるため、空き時間に他のアクティブなＤＭＡチャネルのデータ転送はおこなわずにバス使用権を放棄する。
【００２０】
図５は、実施の形態１におけるＤＭＡ転送処理を説明するためのタイミングチャートである。設定条件は、ＴｏｔａｌＢｕｒｓｔ長レジスタ２３のＴｏｔａｌＢｕｒｓｔ長：１６Ｂｙｔｅ，ＣｈＲａｔｉｏレジスタ２０におけるＣｈ１Ｒａｔｉｏ：５０％，Ｃｈ２Ｒａｔｉｏ：２５％，ＣｈｎＲａｔｉｏ：２５％であるとする。
【００２１】
周辺機器２ａ〜２ｎのうち、始めに周辺機器２ａ，２ｂから転送要求ＤＲＥＱ＿１，ＤＲＥＱ＿２が出力され（時期Ｔ１）、ＤＲＥＱ＿ｎが遅れた場合（時期Ｔ２）には、これら始めの転送要求ＤＲＥＱ＿１，ＤＲＥＱ＿２の立ち上がりに基づき、Ｃｈ選択制御回路１１は、Ｃｈ１，２のみアクティブ（ＡＣＴ＿ＣＨ１，ＡＣＴ＿ＣＨ２）と判断する。そして、データ転送制御回路１５は、ＣＰＵ３に１回のバスホールド要求（ＨＯＬＤ）を出力する。
【００２２】
この後、１ＣｈＢｕｒｓｔ長演算回路２１で各チャネル毎のデータ量の割合が演算され、アクティブなチャネルがこの割合に基づきＤＭＡ転送が実行される。図示の例では、チャネル１，２のみアクティブと判断しており、Ｃｈ１についての割合はＴｏｔａｌＢｕｒｓｔ長である１６Ｂｙｔｅの５０％、即ち８ＢｙｔｅをＤＭＡ転送する。続いて、Ｃｈ２についてはＴｏｔａｌＢｕｒｓｔ長である１６Ｂｙｔｅの２５％、即ち４ＢｙｔｅをＤＭＡ転送する。
【００２３】
以上により、１回のバス使用権で同時にＤＭＡ転送要求しアクティブと判断されたＣｈ１，２のみＤＭＡ転送を実行する。この際、空容量を使用しないため、使用全体のデータ量１６ＢｙｔｅのうちＣｈ１，Ｃｈ２合計で１２Ｂｙｔｅのみのデータ転送をおこなうことになる。この際、Ｃｈｎに割り当てられた転送予定期間（時期Ｔ３）は、バス使用権を放棄する。
【００２４】
（実施の形態２）
次に、この発明の実施の形態２の構成を説明する。図６は、１ＣｈＢｕｒｓｔ長演算回路の他の構成例を示す構成図である。図示の例は、空領域を各ＤＭＡチャネルのデータ量割合で再設定する構成である。各チャネル毎にマスク回路Ｃｈ１（３１ａ）〜Ｃｈｎ（３１ｎ）が設けられ、各チャネル別にそれぞれＣｈ選択制御回路１１からのアクティブ信号（ＡＣＴ＿ＣＨ−１〜ＡＣＴ＿ＣＨ−ｎ）と、ＣｈＲａｔｉｏレジスタ２０からのＣｈレシオ信号（ＣＨ１＿Ｒａｔｉｏ〜ＣＨｎ＿Ｒａｔｉｏ）が入力される。
【００２５】
マスク回路Ｃｈ１（３１ａ）〜Ｃｈｎ（３１ｎ）は、それぞれＣｈレシオ信号の割合に基づきチャネル毎のデータ量の割合（％）を演算し、後段の除算器３４ａ〜３４ｎに出力され、また加算器３３に出力される。加算器３３では、全てのアクティブなチャネルのデータ量の割合を加算して除算器３４ａ〜３４ｎに出力する。したがって、除算器３４ａ〜３４ｎはアクティブな全チャネルの合計のデータ量の割合（％）に基づき、Ｃｈレシオ信号の割合で再度チャネル毎のデータ量の割合（％）を演算できる。
【００２６】
この後、各チャネルのデータ量の割合（％）は、乗算器３２ａ〜３２ｎに出力される。乗算器３２ａ〜３２ｎには、ＴｏｔａｌＢｕｒｓｔ長レジスタ２３から全体のデータ量（Ｔｏｔａｌｂｕｒｓｔ長）が入力され、各チャネルのデータ量（ＣＨ１Ｂｕｒｓｔ長〜ＣＨｎＢｕｒｓｔ長）がそれぞれ演算出力される。
【００２７】
図６の構成によれば、空領域が発生した場合、アクティブなチャネル全てに対しＣｈレシオの割合に基づいたデータ量を割り当てることができる。
【００２８】
図７は、実施の形態２におけるＤＭＡ転送処理を説明するためのタイミングチャートである。設定条件は、ＴｏｔａｌＢｕｒｓｔ長レジスタ２３のＴｏｔａｌＢｕｒｓｔ長：１６Ｂｙｔｅ，ＣｈＲａｔｉｏレジスタ２０におけるＣｈ１Ｒａｔｉｏ：５０％，Ｃｈ２Ｒａｔｉｏ：２５％，ＣｈｎＲａｔｉｏ：２５％であるとする。
【００２９】
周辺機器２ａ〜２ｎのうち、始めに周辺機器２ａ，２ｂから転送要求ＤＲＥＱ＿１，ＤＲＥＱ＿２が出力され（時期Ｔ１）、ＤＲＥＱ＿ｎが遅れた場合（時期Ｔ２）には、これら始めの転送要求ＤＲＥＱ＿１，ＤＲＥＱ＿２の立ち上がりに基づき、Ｃｈ選択制御回路１１は、Ｃｈ１，２のみアクティブ（ＡＣＴ＿ＣＨ１，ＡＣＴ＿ＣＨ２）と判断する。そして、ＣＰＵ３に１回のバスホールド要求（ＨＯＬＤ）を出力する。
【００３０】
この後、１ＣｈＢｕｒｓｔ長演算回路２１で各チャネル毎のデータ量の割合が演算され、アクティブなチャネルの合計のデータ量を各チャネルの割合で分割し、この割合に基づきＤＭＡ転送が実行される。図示の例では、チャネル１，２のみアクティブと判断している。ここで、Ｃｈ１，Ｃｈ２のみで１００％の割合となるよう割合を調整する。Ｃｈ１：Ｃｈ２＝５０％：２５％＝２：１であるため、全体の割合（１００％）で再計算すると、Ｃｈ１＝２／３＝６６．６％，Ｃｈ２＝１／３＝３３．３％となる。これにより、Ｃｈ１についての割合はＴｏｔａｌＢｕｒｓｔ長である１６Ｂｙｔｅの６６．６％、即ち１０ＢｙｔｅをＤＭＡ転送する。続いて、Ｃｈ２についてはＴｏｔａｌＢｕｒｓｔ長である１６Ｂｙｔｅの３３．３％、即ち６ＢｙｔｅをＤＭＡ転送する（時期Ｔ３）。
【００３１】
以上により、１回のバス使用権で同時にＤＭＡ転送要求しアクティブと判断されたＣｈ１，２のみＤＭＡ転送を実行する。この際、空容量をアクティブな各チャネルに対してこのアクティブなチャネル同士の割合に応じて再度割り当てる。そして、Ｃｈｎの転送予定期間を含め、使用全体のデータ量１６Ｂｙｔｅ全てをアクティブなＣｈ１，Ｃｈ２のみでデータ転送をおこなうことができる。
【００３２】
（実施の形態３）
この発明の実施の形態３は、１回のバスホールド要求（ＨＯＬＤ）の期間内であれば、同時にＤＭＡ転送要求されたときに限らずアクティブとなったチャネルＣｈ１〜ＣｈｎのＤＭＡ転送を実行させる構成である。図８は、実施の形態３の構成によるＤＭＡ転送処理を説明するためのタイミングチャートである。設定条件は、前述した実施の形態同様に、ＴｏｔａｌＢｕｒｓｔ長レジスタ２３のＴｏｔａｌＢｕｒｓｔ長：１６Ｂｙｔｅ，ＣｈＲａｔｉｏレジスタ２０におけるＣｈ１Ｒａｔｉｏ：５０％，Ｃｈ２Ｒａｔｉｏ：２５％，ＣｈｎＲａｔｉｏ：２５％であるとする。
【００３３】
例えば、周辺機器２ａ〜２ｎのうち、始めに周辺機器２ａ，２ｂから転送要求ＤＲＥＱ＿１，ＤＲＥＱ＿２が出力され（時期Ｔ１）、ＤＲＥＱ＿ｎが遅れた場合（時期Ｔ２）を考える。この場合、転送要求ＤＲＥＱ＿１，ＤＲＥＱ＿２の立ち上がりに基づき、Ｃｈ選択制御回路１１は、まず、Ｃｈ１，２がアクティブ（ＡＣＴ＿ＣＨ１，ＡＣＴ＿ＣＨ２）と判断する。
【００３４】
各チャネルにおけるデータ量は、空領域を使用しない構成であり、１ＣｈＢｕｒｓｔ長演算回路２１で各チャネル毎のデータ量の割合が演算され、アクティブなチャネルがこの割合に基づきＤＭＡ転送が実行される。図示の例では、チャネル１，２のみアクティブと判断しており、Ｃｈ１についての割合はＴｏｔａｌＢｕｒｓｔ長である１６Ｂｙｔｅの５０％、即ち８ＢｙｔｅをＤＭＡ転送する。続いて、Ｃｈ２についてはＴｏｔａｌＢｕｒｓｔ長である１６Ｂｙｔｅの２５％、即ち４ＢｙｔｅをＤＭＡ転送する。
【００３５】
そして、ＣＰＵ３に１回のバスホールド要求（ＨＯＬＤ）を出力し、順次Ｃｈ１，Ｃｈ２のＤＭＡ転送を実行する。そして、ＤＭＡ転送を実行している最終チャネル（図示の場合Ｃｈ２）のデータ転送終了（時期ｔ２）以前に以降のチャネル（Ｃｈｎ）がアクティブになった場合には、Ｃｈ選択制御回路１１は、この１回のバス使用権を獲得した期間内で、アクティブになったチャネルＣｈｎに対するＤＭＡ転送（４Ｂｙｔｅ）を実行させる（時期Ｔ３）。
【００３６】
この実施の形態３によれば、同時にＤＭＡ転送要求するに限らず、後からＤＭＡ転送要求したチャネルについても、この追加要求がアクティブなチャネルのＤＭＡ転送の終了前であれば、連続して実行できるようになる。
【００３７】
（実施の形態４）
図９は、本発明にかかるチャネル帯域保証型のＤＭＡコントローラの実施の形態４の構成を示すブロック図である。実施の形態４は、１回のバス権獲得につき、ＤＭＡコントローラが転送する各チャネルのデータ量をバイト単位で予め設定する構成である。各ＤＭＡチャネルデータ量設定部１２は、各チャネルのデータ量をバイト単位で設定するＣｈＢｕｒｓｔ長レジスタ４０と、ＣｈＢｕｒｓｔ長レジスタ４０から現在アクティブなチャネルのデータ量を読み出し１ＣｈＢｕｒｓｔカウンタ１３に出力するセレクタ４１によって構成されている。
【００３８】
図１０は、ＣｈＢｕｒｓｔ長レジスタ４０の構成例を示す図表である。ＣｈＢｕｒｓｔ長レジスタ４０は、各チャネル別のビット（Ｂｉｔ０〜７）にそれぞれ転送する固定のデータ量（バイト）を設定しておく。これにより、１回のバス使用権獲得時に複数の各チャネル別に転送するデータ量を規定しておくことができる。
【００３９】
以上説明したように、本実施の形態にかかるチャネル帯域保証型のＤＭＡコントローラは、１回のバス使用権の獲得毎に、複数チャネルのデータ転送を所定の割合で転送させることができるようになる。
【００４０】
（付記１）複数のＤＭＡチャネルを有し、同一バス上に存在する複数の周辺装置からのＤＭＡ要求を一回のバス使用権獲得時に一度に処理するＤＭＡコントローラにおいて、
前記複数のＤＭＡチャネル別のデータ転送量を設定するデータ量設定手段と、
アクティブなＤＭＡチャネルを判断するチャネル選択制御手段と、
前記チャネル選択制御手段によりアクティブと判断された前記複数のＤＭＡチャネルの各データを、前記データ量設定手段により設定されたＤＭＡチャネル別のデータ転送量に従いデータ転送するデータ転送制御手段と、
を備えたことを特徴とするＤＭＡコントローラ。
【００４１】
（付記２）前記データ量設定手段は、
前記一回のバス使用権獲得で転送される全体のデータ量に対する前記複数のＤＭＡチャネル別の割合を設定することを特徴とする付記１に記載のＤＭＡコントローラ。
【００４２】
（付記３）前記データ量設定手段は、
前記一回のバス使用権獲得で転送される全体のデータ量に対する前記複数のＤＭＡチャネル別の割合を設定するチャネルレシオレジスタと、
前記チャネルレシオレジスタにより設定された割合に基づき、全体のデータ量に対する前記複数のＤＭＡチャネルそれぞれのデータ量を演算するバースト長演算手段と、
を備えたことを特徴とする付記２に記載のＤＭＡコントローラ。
【００４３】
（付記４）前記データ量設定手段は、
前記一回のバス使用権獲得で転送される前記複数のＤＭＡチャネルのデータ量を設定することを特徴とする付記１に記載のＤＭＡコントローラ。
【００４４】
（付記５）前記データ量設定手段は、
前記一回のバス使用権設定で転送される前記複数のＤＭＡチャネル別のデータ量を設定するバースト長レジスタと、
前記バースト長レジスタで設定された前記複数のＤＭＡチャネル別のデータ量を読み出すセレクタと、
を備えたことを特徴とする付記４に記載のＤＭＡコントローラ。
【００４５】
（付記６）前記チャネル選択制御手段は、
一回のバス使用権を獲得する直前にＤＭＡ転送要求があった前記複数のＤＭＡチャネルを選択することを特徴とする付記１〜５のいずれか一つに記載のＤＭＡコントローラ。
【００４６】
（付記７）前記チャネル選択制御手段は、
一回のバス使用権を獲得している期間中、ＤＭＡ転送要求に基づいて前記複数のＤＭＡチャネルを選択し、該選択したチャネルのうち最終チャネルＤＭＡ転送が終了するまでに新たなチャネルのＤＭＡ転送要求が発生した場合には、該ＤＭＡ転送要求された新たなチャネルを選択することを特徴とする付記１〜５のいずれか一つに記載のＤＭＡコントローラ。
【００４７】
（付記８）前記データ量設定手段は、
ＤＭＡ転送要求が未発生のＤＭＡチャネルが存在する場合、該未発生のＤＭＡチャネルに割り当てられた空き帯域を未使用にし前記バス使用権を開放することを特徴とする付記１〜６のいずれか一つに記載のＤＭＡコントローラ。
【００４８】
（付記９）前記データ量設定手段は、
ＤＭＡ転送要求が未発生のＤＭＡチャネルが存在する場合、該未発生のＤＭＡチャネルに割り当てられた空き帯域を、ＤＭＡ転送要求した前記複数のＤＭＡチャネルに対し所定の割合で再度割り当てることを特徴とする付記１〜６のいずれか一つに記載のＤＭＡコントローラ。
【００４９】
（付記１０）前記データ量設定手段が割り当てる前記所定の割合は、
前記データ量設定手段によって設定された前記複数のＤＭＡチャネル別の割合に従うことを特徴とする付記９に記載のＤＭＡコントローラ。
【００５０】
（付記１１）複数のＤＭＡチャネルを有し、同一バス上に存在する複数の周辺装置からのＤＭＡ要求を一回のバス使用権獲得時に一度に処理するＤＭＡ転送方法において、
前記複数のＤＭＡチャネル別のデータ転送量を設定するデータ量設定工程と、
アクティブなＤＭＡチャネルを判断するチャネル選択制御工程と、
前記チャネル選択制御工程によりアクティブと判断された前記複数のＤＭＡチャネルの各データを、前記データ量設定工程により設定されたＤＭＡチャネル別のデータ転送量に従いデータ転送するデータ転送制御工程と、
を含むことを特徴とするＤＭＡ転送方法。
【００５１】
（付記１２）前記データ量設定工程は、
前記一回のバス使用権獲得で転送される全体のデータ量に対する前記複数のＤＭＡチャネル別の割合を設定することを特徴とする付記１１に記載のＤＭＡ転送方法。
【００５２】
（付記１３）前記データ量設定工程は、
前記一回のバス使用権獲得で転送される前記複数のＤＭＡチャネルのデータ量を設定することを特徴とする付記１１に記載のＤＭＡ転送方法。
【００５３】
【発明の効果】
本発明によれば、一度のバスホールド要求において、同一バス上に存在する複数の周辺装置から起動された複数のＤＭＡ要求に対して、チャネル毎に予め帯域を確保し各チャネルを連続してＤＭＡ転送するため、バス支配権の調停手続き回数とチャネル間のレーテンシを低減し、転送効率を向上でき各チャネルの最低転送レートを保証できる。これにより、システム設計時のバスのマネージメントを容易化できるようになる。
【図面の簡単な説明】
【図１】この発明のＤＭＡコントローラの基本構成を示すブロック図である。
【図２】本発明にかかるＤＭＡコントローラの実施の形態１の構成を示すブロック図である。
【図３】ＣｈＲａｔｉｏレジスタの構成例を示す図表である。
【図４】１ＣｈＢｕｒｓｔ長演算回路の設定例を示す構成図である。
【図５】実施の形態１におけるＤＭＡ転送処理を説明するためのタイミングチャートである。
【図６】１ＣｈＢｕｒｓｔ長演算回路の他の構成例を示す構成図である。
【図７】実施の形態２におけるＤＭＡ転送処理を説明するためのタイミングチャートである。
【図８】実施の形態３の構成によるＤＭＡ転送処理を説明するためのタイミングチャートである。
【図９】本発明にかかるＤＭＡコントローラの実施の形態４の構成を示すブロック図である。
【図１０】ＣｈＢｕｒｓｔ長レジスタの構成例を示す図表である。
【符号の説明】
１　ＤＭＡコントローラ（ＤＭＡＣ）
２ａ〜２ｎ　周辺機器（ペリフェラル−１〜ペリフェラル−ｎ）
３　ＣＰＵ
４　メモリ
５　バス（データ／アドレスバス）
１０　Ｉ／Ｆ回路
１１　Ｃｈ選択制御回路
１２　各ＤＭＡチャネルデータ量設定部
１３　１ＣｈＢｕｒｓｔカウンタ
１４　Ｃｈ制御回路
１５　データ転送制御回路
２０　ＣｈＲａｔｉｏレジスタ
２１　１ＣｈＢｕｒｓｔ長演算回路
２２　ＣｈＢｕｒｓｔ長保持回路
２３　ＴｏｔａｌＢｕｒｓｔ長レジスタ
３１ａ〜３１ｎ　マスク回路
３２ａ〜３２ｎ　乗算器
３３　加算器
３４ａ〜３４ｎ　除算器
４０　ＣｈＢｕｒｓｔ長レジスタ
４１　セレクタ
【図１】
2004094452.tif 000003
【図２】
2004094452.tif 000004
【図３】
2004094452.tif 000005
【図４】
2004094452.tif 000006
【図５】
2004094452.tif 000007
【図６】
2004094452.tif 000008
【図７】
2004094452.tif 000009
【図８】
2004094452.tif 000010
【図９】
2004094452.tif 000011
【図１０】
2004094452.tif 000012