説明

DMAコントローラ

【課題】データ転送に用いるバス帯域に応じてバスを解放するDMAコントローラを提供。
【解決手段】DMAコントローラ24は、各モジュールがデータ転送に用いるバス帯域を取得する帯域設定レジスタ38と、各モジュールのデータ転送回数を取得する転送カウンタ36と、各モジュールの優先度を取得する優先度レジスタ40を有し、バス帯域、データ転送回数、および優先度を基に各モジュールの優先順位を決定し、この優先順位に従って各モジュールにバスを解放することによって、帯域が設定されているモジュールには帯域を保証したデータ転送を行わせる装置である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ転送制御装置に関し、さらに詳細には、DMA(Direct Memory Access)とバスを介してデータ転送を行うDMAコントローラに関するものである。
【背景技術】
【0002】
複数のモジュールによるバスアクセスの制御方法として、緊急度の高いモジュールや一定量の帯域が必要なモジュールの優先度を高く、その他のモジュールの優先度を低くして各モジュールに優先順位をつける方法がある。しかし、この方式では、各モジュールの優先度を適切に設定しないと必要となる帯域を確保できない場合があるほか、単純に優先度を高くするだけで帯域が確保できるかどうかは保証されない。また、必要以上にバス帯域を占有し、他のモジュール動作に影響を与える可能性もある。例えばDMA等によるバスアクセスでは、優先度の高いモジュールが長い時間バスを占有し続け、優先度の低いモジュールが待たされてしまう。これらの問題を回避するため、バス使用権を確保していても、他の要求に応じて所定回数の転送毎にバス使用権が移るようにしたり、一定期間内にバス使用の優先順位を変更し、長時間占有することがないようにしている。
【特許文献1】特開2003−6139号公報
【特許文献2】特開2005−165508号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、いずれの方式においても、どの程度の時間占有したらバスを解放するか、または優先順位を変更するかを容易に決定することができないため、優先順位の設定に試行錯誤を要し、最適な設定を行うことが難しい。
【0004】
本発明はリアルタイム性のあるデータ転送に対しても破綻することなく転送を行うことができるデータ転送制御装置およびその転送制御方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
このような目的を達成するために本発明は、転送するデータをある短い単位に分割して転送する。さらに詳しく説明すると、本発明のDMAコントローラは、データを分割した複数のトランザクションとみなし、このデータを転送するモジュールが要求するバス帯域やそのモジュールの転送率などに応じてスケジューリングを行う。
【0006】
また、本発明によれば、時間変化する帯域に応じてスケジューリングを行う。さらに詳しく説明すると、本発明のDMAコントローラは、DMA転送リクエストの度にリクエストを行ったモジュールの帯域や転送率を取得する。
【発明の効果】
【0007】
本発明によれば、転送データを最小単位に分割してスケジューリングを行うため、優先度の高い一つの転送が、長い間バスを占有し続けるのを防ぐことができる。また、帯域保証をすることにより、リアルタイム性のある転送に関しても破綻することのないシステムを提供することができる。
【0008】
また、本発明によれば、1つのリクエスト単位で帯域をこまめに設定できるため、柔軟な設定が可能となり、同一モジュールによる転送であっても、時間により変化するバス帯域に対応してリアルタイム性を確保できる。
【0009】
また、本発明によれば、必要となるバス帯域に応じてバスの動作周波数をリアルタイムに設定でき、バスの高速化しつつ、省電力を実現できる。
【発明を実施するための最良の形態】
【0010】
次に添付図面を参照して本発明によるDMAコントローラの実施例を詳細に説明する。図1は、本発明によるDMAコントローラを使用したバス制御機構の実施例の構成を示す図である。本実施例によるバス制御機構10は、バス12、CPU14、16、第1モジュール18、第2モジュール20ないし第nモジュール22(nは正の整数)およびDMAコントローラ24を含んでいる。なお、本発明の理解に直接の関係ない要素は省略し冗長な説明を避ける。
【0011】
このようなDMAコントローラは、バスが搭載された任意の機器に用いることができ、例えば、音声や動画のリアルタイム配信システム、リアルタイム画像処理が必要なシステム、テレビ電話、携帯電話、デジタルビデオカメラ、デジタルスチルカメラなどに用いることができる。
【0012】
バス12はCPU14、16やモジュール18、20、22、DMAコントローラ24共用の情報伝送路である。CPU14、16は、バス12を介してバス制御機構10全体の統括、制御を行うものである。第1モジュール18は、任意の機能部であり、例えば本実施例のバス制御機構がデジタルカメラに搭載される場合には、信号処理部、画像処理部、メモリ、記録再生部などである。第2モジュール20ないし第nモジュール22についても同様である。これらのモジュールはバス12を介してデータの送受信を行う。DMAコントローラ24は、各モジュールのデータの転送を制御するものである。例えば、第1モジュール18がデータの転送を行う場合には、第1モジュール18からバスの解放を要求するリクエスト信号26が送られてくる。これに対しDMAコントローラ24はアクノリッジ信号32を返し、この信号により第1モジュール18がバス12を使用することを許可されれば、第1モジュールはデータの転送を行うことができる。なお、本実施例におけるバス制御機構10では、CPUは2つ、またDMAコントローラは1つ存在するが、本発明はこれに限定されるわけではなく、任意の数のCPUおよびDMAコントローラを用いることが可能である。
【0013】
本実施例のDMAコントローラ24は、DMA転送データを基本時間単位に分割された複数のトランザクションとみなし、個々のトランザクションの転送をスケジューリングするものであり、図1に示すように、期間設定レジスタ34、転送カウンタ36、帯域設定レジスタ38、優先度レジスタ40、バスアービタ42の各機能部を含んでいる。
【0014】
期間設定レジスタ34は、一定期間の値を保持し、一定期間情報44を転送カウンタに渡すものである。一定期間は、任意の方法で任意の値に設定可能である。
【0015】
転送カウンタ36は、一定期間にわたって第1モジュール18、第2モジュール20ないし第nモジュール22から転送されたトランザクションの数を計測して、それらの値をそれぞれ第1モジュールカウンタ46、第2モジュールカウンタ48ないし第nモジュールカウンタ50に保持するものである。過去転送回数情報52は必要に応じてバスアービタに渡される。転送カウンタは期間設定レジスタから受け取った情報44に基づいて、一定期間ごとにリセットされ、新たに転送回数を計測する。
【0016】
帯域設定レジスタ38は、第1モジュール18、第2モジュール20ないし第nモジュール22が必要とするバス帯域の値を、それぞれ第1モジュール帯域記憶部54、第2モジュール帯域記憶部56ないし第nモジュール帯域記憶部58に保持するものである。なお、本実施例では帯域はバスの時間占有率で表される。帯域はすべてのモジュールに設定されていなくてもよいが、すべての帯域値をバスの時間占有率に換算して合計した値が、1より大きくならないようにする。帯域の設定や変更は任意の方法で任意の時間に行うことができ、本実施例ではCPU14が行う。ただし、この設定や変更がDMAコントローラによる制御に反映されるのは一定期間ごとである。帯域情報60は必要に応じてバスアービタ42に渡され、帯域が設定されたモジュールに対しては、一定時間内での転送が確実に行われるよう、最優先でスケジューリングが行われる。
【0017】
優先度レジスタ40は、第1モジュール18、第2モジュール20ないし第nモジュール22の優先度を、それぞれ第1モジュール優先度記憶部62、第2モジュール優先度記憶部64ないし第nモジュール優先度記憶部66を保持し、必要に応じて優先度情報68をバスアービタに渡すものである。優先度の設定や変更は任意の方法で、任意の時間に行うことができ、本実施例ではCPU14が行う。この設定や変更がDMAコントローラによる制御に反映されるのは一定期間ごとである。
【0018】
バスアービタ42は、各モジュールの帯域、過去転送回数、優先度を含む優先判定情報を基に各トランザクションの転送優先順位計算を実行し、その結果を基に各モジュールに対しアクノリッジ信号32を出力するものである。帯域設定されたモジュールのリクエストが同一時間に複数存在し、これらのモジュールのバス占有率の合計値が1を超えた場合、CPUにエラー信号70を出力し、割り込みを発生させる。
【0019】
図2を参照して、本発明のDMAコントローラによるスケジューリング方法をより詳細に説明する。図2に示す例では、期間設定レジスタ34で設定されている一定期間72に、第1モジュールからデータ74を、第2モジュールからデータ76および78を、第3モジュールからデータ80、82および84を転送するためのリクエストが受け付けられている。まず初めに第1のモジュールおよび第3のモジュールから、それぞれデータ74および80を転送するためのリクエストが受け付けられ、これらのデータは、基本時間単位で分割された複数のトランザクションとみなされる。基本時間単位は任意に設定可能であり、例えば基本時間単位が16バイトに設定されている場合、データ量1KBのデータは64個のトランザクションとみなされる。このとき必要とされるデータ量の値は任意の方法で得られ、例えば、それぞれのモジュールからDMA転送リクエストとともにDMAコントローラから得る方法、CPUから得る方法、又は転送データの転送元やデータサイズなどを格納したレジスタ等から得る方法などがある。図2に示す例ではデータ74はトランザクション86、88等とみなされ、データ80はトランザクション90および92とみなされる。どのトランザクションを転送するかは、基本時間単位ごとに計算して決定される。例えば、基本時間単位が16バイトであり、バス幅が4バイトであれば、転送されるトランザクションは4バスサイクルごとに決定される。その結果、図2に示す例ではまず第3モジュールがバスの使用を許可されてトランザクション90を転送し、次に第1モジュールがバスの使用を許可されてトランザクション86を転送している。
【0020】
図2に示す例では、データ74の転送が完了する前に、第3モジュールからデータ82を、続いて第2モジュールからデータ76を転送するためのリクエストが受け付けられている。この場合DMAコントローラ24は、データ74の転送が完了するまで待たず、帯域や過去転送回数、優先度などを基に、新たなリクエストも含めてどのモジュールからのリクエストを優先的に実行させるかを判定し、最も優先順位の高いモジュールにバスの使用を許可する。一定期間72が経過すると、転送カウンタ36は一度リセットされ、再び一定期間カウントを行う。
【0021】
図3を参照して優先判定方法をより詳細に説明する。図3に示されているのは各モジュールの優先度や帯域、過去転送回数であり、優先判定に用いられる。図3に示す例では、優先度は数値の高いものほど優先度が高いものとし、最高を5、最低を1としている。図3に示す例では、第1モジュールと第5モジュールに設定されているが、その他のモジュールには設定されていない。過去転送回数は、直近の一定期間72の開始から現在にいたるまでに各モジュールから転送されたトランザクションの数である。図3に示される例では、過去転送回数はこの一定期間が開始してから10基本時間が経過した時の値とする。
【0022】
優先判定は、帯域設定されているモジュールから優先的に行われ、まず帯域と過去転送率とが比較される。過去転送率は、本実施例では、(過去転送回数)/(直近の一定期間の開始から現在までに経過した基本時間)で表される。つまり、図3に示される例では、第1モジュールの転送率は0.2であり、第5モジュールの優先率は0.3である。
【0023】
帯域と過去転送率とを比較し、帯域<過去転送率であれば緊急度は低く、帯域>過去の転送率であれば緊急度は高いと判断される。つまり、図3に示される例においては、第1モジュールでは、帯域値が0.1に対し過去の転送率が0.2であるため、緊急度は低いと判断される。また、第5モジュールでは、帯域が0.5であるのに対し過去の転送率は0.3であるため緊急度は高いと判断される。緊急度が高いと判断されたモジュールからのデータ転送は、最優先で実行される。図3の例では、第5モジュールからのデータ転送が実行される。帯域>過去の転送率であるモジュールが複数ある場合には、優先度が高いモジュールか転送率の低いモジュールからのデータ転送を実行する。この場合、どちらのモジュールを優先させるかは任意に設定可能である。したがって優先度が同じ場合には転送率の低いモジュールからの転送を優先させ、転送率が同じ場合には優先度の低いモジュールからのデータ転送を優先させればよい。まったく同条件の場合には、ラウンドロビン方式や、各モジュールについて優先度とは別に設定された固定優先度などを用いて優先判定を行う。
【0024】
帯域>過去の転送率であるモジュールがない場合の優先判定は、帯域設定されていないモジュールも含めて、帯域>過去の転送率であるモジュールが複数ある場合の判定方法と同様に行えばよい。帯域設定されているモジュールがない場合も同様である。
【0025】
図4は図1に示すDMAコントローラ24における優先判定処理手順の一例を示した流れ図である。図4を参照して、本発明で用いられるDMAコントローラ24の処理手順について具体的に説明する。まず、DMAコントローラにリクエストが受け付けられると(S10)、このリクエストによって転送されるデータは基本時間単位に分割された複数のトランザクションとみなされる(S12)。
【0026】
このリクエストを行ったモジュールの過去転送回数情52が、転送カウンタ36からバスアービタ42に送られる(S14)。また、このモジュールの帯域情報60が帯域設定レジスタからバスアービタに送られ、帯域が設定されているか否かの判断が行われる(S16)。
【0027】
帯域が設定されている場合(YES)には、このモジュールの帯域値と過去の転送率とが比較される(S18)。転送率より帯域値が大きい場合(NO)には、このモジュールからのリクエストは、緊急性の高いリクエストとみなされる(S20)。ここで、他のモジュールからのリクエストがあるか否かの判断がされ(S22)、他のモジュールからのリクエストがない場合(NO)にはこのリクエストは実行され(S24)、リクエストがある場合(YES)には、優先判定情報を基にもっとも優先順位の高いリクエストが選択されて(S26)実行される(S28)。
【0028】
リクエストを行ったモジュールに帯域が設定されていない場合には、ステップS22における判断がされ、以下同様に処理される。
【0029】
図5には、本発明によるDMAコントローラを使用したバス制御機構の別の一例が概念的に示されている。本実施例によるバス制御機構100では、各モジュールからのデータを、時間により変化する帯域に対応して転送させる。図5において図1と同じ参照番号は同様の構成要素を示す。
【0030】
図5に示す例では、転送データごとに指定された帯域に応じたバス使用の優先順位の割付けが行われる。より具体的には、DMAコントローラ100は、データ情報取得部102、帯域設定データスケジューリング部104、非帯域設定データスケジューリング部106および全体スケジュール管理部108を含み、データごとに指定された帯域値に応じてスケジューリングが行う。なお、図5に示す実施例では帯域はバスの時間占有率で表されている。
【0031】
データ情報取得部102は、リクエストと共にDMAコントローラに送られてきた転送データに関する情報を取得し、この転送データに帯域が設定されているか否かの判断を行うものである。転送データ情報には、優先度、帯域およびデータ量などが含まれ、帯域が設定されているデータのデータ情報110は帯域設定データスケジューリング部104に、帯域が設定されていないデータのデータ情報112は非帯域設定データスケジューリング部106に渡される。
【0032】
図6を参照して転送データの構成をより詳細に説明する。図6に示される例では、転送データはヘッダパケット114とデータパケット116で構成され、ヘッダパケット114にはこのデータの優先度、帯域値およびデータ量が格納されている。DMA転送リクエストの際、このヘッダパケットはデータ情報取得部102に送られて解析される。もちろん、これらのデータ情報は他の公知の手段を用いて取得されてもよいし、データの構成はパケットの構成に限られない。
【0033】
帯域設定データスケジューリング部104は、帯域設定されているデータを複数のトランザクションとみなし、そのデータの帯域に応じた転送が行われるよう、データ情報110を基に各トランザクションの転送スケジュール118を決定するものである。スケジュール118は全体スケジュール管理部108に渡される。
【0034】
非帯域設データスケジューリング部106は、帯域設定されていないデータを複数のトランザクションとみなし、データ情報112を基に各トランザクションの転送スケジュール120を決定するものである。帯域設定されていないデータの転送順位の割付けは、基本的には受け付けられた順に行われる。ただし、より優先度の高いパケットが後から来た場合、優先度の低いデータのスケジュールを解消し、再スケジューリングを行ってもよい。もちろん、ラウンドロビン方式や優先度とは別に設けられた固定優先度を用いて決定してもよい。スケジュール120は全体スケジュール管理部108に渡される。
【0035】
全体スケジュール管理部108は、スケジュール118と120を受け取り、両スケジュールの調整を行うものである。全体スケジュール管理部108は、スケジュール118のとおりに転送が行えない場合には、スケジューリング部104に対し再スケジューリングリクエスト122を出して、非帯域設定データを含むすべてのデータの転送を考慮したスケジューリングを行わせる。また、スケジュール120のとおりに転送が行えない場合には、スケジューリング部106に対し再スケジューリングリクエスト124を出して、帯域設定データのスケジュールの空き時間にデータが転送されるようスケジューリングを行わせる。スケジュール118および120の調整が行われてデータ全体のスケジュール126が決定すると、全体スケジュール126はバスアービタ42に渡される。なお、リクエストを行ったすべてのモジュールの帯域値の合計が1を超えるなどして、帯域を確保できるスケジューリングが行われなかった場合には、全体スケジュール管理部108はCPUに対しエラー割込みをかける。
【0036】
図7を参照して、データ分割およびスケジューリングの様子を詳細に説明する。図7に示す例では、まず初めに第1のデータ128、次に第2のデータ130、最後に第3のデータ132の転送を要求するリクエストが受け付けられている。第1のデータ128のデータ量は10であり、帯域値は0.5に設定されている。第2のデータ130のデータ量は6、優先度は2であり、帯域は設定されていない。第3のデータ132のデータ量は2、優先度は3であり、帯域は設定されていない。第1のデータは3つのトランザクション134、136、138とみなされ、第1データの帯域が0.5であることから各トランザクションのデータ量を4、4、2、各トランザクションの転送間隔を4データサイクルとしてスケジューリングされている。このスケジューリングはデータ128の転送前に決定され、転送途中で変更されない。トランザクションの数や各トランザクションのデータ量、転送間隔は任意の方法を用いて得ることができ、例えば、帯域や転送量に応じた値を、レジスタやデータ情報に格納し、必要に応じて取り出す方法などが考えられる。
【0037】
帯域設定されていない第2のデータはトランザクション140および142、第3のデータはトランザクション144として、データ128の転送スケジュールの空き時間に転送される。トランザクションの数や各トランザクションのデータ量を決定する方法は、帯域設定されているデータに対して用いられた方法と同様の方法を用いればよい。図3に示す例では、データ132の転送リクエストはデータ130の転送リクエストより後に受け付けられているが、データ132はより高い優先度を有するため、先にデータ132が転送されるようスケジューリングされている。
【0038】
図8は図5に示すDMAコントローラ24における処理手順の一例を示した流れ図である。図8を参照して、本発明のデータ転送の処理手順について具体的に説明する。図8において図4と同じ参照符号は、同様の処理を示す。まず、あるモジュールからのDMA転送リクエストおよびこのリクエストにより転送されるデータのデータ情報がDMAコントローラ24に受け付けられる(S30)。データ情報はデータ情報取得部102へ送られ、このデータに帯域が設定されているか否かの判断が行われる(S32)。
【0039】
帯域設定されているデータは、帯域設定データスケジューリング部104にて帯域に応じてスケジューリングされる(S34)。スケジューリングされたデータは、全体スケジュール管理部108において帯域設定データスケジューリング部104の要求どおりにスケジューリングできたか否か判断され(S36)、要求どおりにスケジューリングされれば(YES)そのスケジュールに従って転送され(S38)、要求どおりにスケジューリングできなければ(NO)、他のデータも含めて再スケジューリングされる(S40)。このとき、すでに決定された他のデータの転送スケジュールにより、帯域を満たすスケジューリングが行えない場合には、帯域設定されていないデータのスケジュールはすべて解消されて、再スケジューリングが行われる。その後、スケジューリング部104の要求どおりにスケジューリングできたか否か判断され(S42)、要求どおりにスケジューリングができた場合(YES)には、このスケジュールに従いデータ転送を行い(S38)、できなかった場合(NO)には全体スケジューリング部108からCPU16に対しエラー報告が行われる(S44)。
【0040】
一方、帯域設定されていないデータはスケジューリング部106にて他のデータの転送スケジュールの空き時間に転送されるようスケジューリングされる(S46)。
【0041】
図9には、本発明によるDMAコントローラを使用したバス制御機構の別の一例が概念的に示されている。図9に示すバス制御機構200では、バス12の動作速度を必要となるバス帯域に応じて変更する。図9において図1と同じ参照番号は同様の構成要素を示す。
【0042】
図9に示す例では、すべてのモジュールに帯域が設定され、バス12の動作速度をすべてのモジュールの帯域値の合計に応じて変更する。より具体的には、バス制御機構200はバスクロック制御部202およびクロックコントローラ204を含み、バスクロック制御部202およびクロックコントローラ204によってバスクロックを能動的に制御する。なお、図9に示す実施例では、帯域は単位時間当たりの転送量で表される。
【0043】
バスクロック制御部202は、各モジュールのデータ転送量の合計を基にバスの周波数を計算するものである。算出された周波数値206はクロックコントローラ204に出力される。
【0044】
クロックコントローラ204は、バス制御部からの設定値によるバスクロック制御も含め、回路全体のクロック制御を行うものである。クロックコントローラ204は周波数値206に応じたクロックを、各モジュールやCPUに渡す。
【0045】
図10を参照して周波数の算出方法をより詳細に説明する。図10に示される優先判定情報の過去転送回数は過去10基本時間における各モジュールの転送回数である。すべてのモジュールの帯域値を合計すると80MB/秒になる。各モジュールが要求するバスの占有率は(各モジュールの帯域値)/(すべてのモジュールの帯域値の合計)で表され、例えば、第5モジュールのバス占有率は0.5である。また、バス周波数は(すべてのモジュールの帯域値の合計)/(バス幅)で表される。図9に示す例においてバス幅が4バイトであるとすると、バス周波数は20MHzと計算される。また、第5モジュールのバス占有率は0.5であり、過去の転送率は0.3であるため、最優先で転送が行われる。
【図面の簡単な説明】
【0046】
【図1】本発明によるDMAコントローラを使用したバス制御機構の実施例の構成を示す機能ブロック図である。
【図2】図1に示すDMAコントローラによるスケジューリングの一例を示す図である。
【図3】同実施例における優先判定情報の一例を示す図である。
【図4】同実施例におけるDMAコントローラの動作を示すフローチャートである。
【図5】本発明によるDMAコントローラを使用したバス制御機構の他の実施例の構成を示す機能ブロック図である。
【図6】図5に示すモジュールから転送されるデータの構成の一例を示す図である。
【図7】同実施例におけるDMAコントローラによるスケジューリングの一例を示す図である。
【図8】同実施例におけるDMAコントローラの動作を示すフローチャートである。
【図9】本発明によるDMAコントローラを使用したバス制御機構の他の実施例の構成を示す機能ブロック図である。
【図10】図9に示す実施例における優先判定情報の一例を示す図である。
【符号の説明】
【0047】
10 バス制御機構
36 転送カウンタ
38 帯域設定レジスタ
42 バスアービタ
102 データ情報取得部



【特許請求の範囲】
【請求項1】
システムバスに接続されたモジュールより転送要求を受けて該モジュール間におけるDMA転送を制御するDMAコントローラにおいて、該DMAコントローラは、
前記要求により転送されるデータを転送するために用いられるバス帯域を取得する帯域取得手段と、
前記モジュールのデ−タ転送回数を計測する計測手段と、
前記バス帯域からバス時間占有率を求め、前記転送回数から転送率を求め、前記占有率と前記転送率とを比較し、比較結果に応じて前記モジュールに前記システムバスを解放する転送制御手段とを含むことを特徴とするDMAコントローラ。
【請求項2】
請求項1に記載のDMAコントローラにおいて、前記転送制御手段は、前記転送率より前記占有率が高いモジュールに、前記システムバスを解放することを特徴とするDMAコントローラ。
【請求項3】
請求項1に記載のDMAコントローラにおいて、前記転送制御手段は、前記転送率より前記占有率が高いモジュールが複数ある場合、または前記転送率より前記占有率が高いモジュールがない場合には、最も転送率の低いモジュールに前記システムバスを解放することを特徴とするDMAコントローラ。
【請求項4】
請求項1に記載のDMAコントローラにおいて、
該DMAコントローラはさらに、前記モジュールの優先度を記憶する第2の記憶手段を含み、
前記転送制御手段は、前記転送率より前記占有率が高いモジュールが複数ある場合、または前記転送率より前記占有率が高いモジュールがない場合で、かつ最も転送率の低いモジュールが複数ある場合には、最も優先度の高いモジュールに前記システムバスを解放することを特徴とするDMAコントローラ。
【請求項5】
請求項1に記載のDMAコントローラにおいて、
該DMAコントローラはさらに、前記モジュールの優先度を記憶する第2の記憶手段を含み、
前記転送制御手段は、前記転送率より前記占有率が高いモジュールが複数ある場合、または前記転送率より前記占有率が高いモジュールがない場合には、最も優先度の高いモジュールに前記システムバスを解放することを特徴とするDMAコントローラ。
【請求項6】
請求項1に記載のDMAコントローラにおいて、前記転送制御手段は、前記転送率より前記占有率が高いモジュールが複数ある場合、または前記転送率より前記占有率が高いモジュールがない場合で、かつ最も優先度の高いモジュールが複数ある場合には、最も転送率の低いモジュールに前記システムバスを解放することを特徴とするDMAコントローラ。
【請求項7】
システムバスに接続されたモジュールより転送要求を受けて該モジュール間におけるDMA転送を制御するDMAコントローラにおいて、該DMAコントローラは、
前記要求により転送されるデータを転送するために用いられるバス帯域と、該データのデータ量とを取得するデータ情報取得手段と、
前記バス帯域と前記データ量に応じて前記転送データを送信するモジュールに前記システムバスを解放する転送制御手段とを含むことを特徴とするDMAコントローラ。
【請求項8】
請求項7に記載のDMAコントローラにおいて、前記転送制御手段は帯域設定されているデータの転送スケジュールの空き時間に帯域設定されていないデータを送信するモジュールに前記システムバスを解放することを特徴とするDMAコントローラ。
【請求項9】
請求項1または7に記載のDMAコントローラにおいて、前記帯域は前記モジュールごとに設定されていることを特徴とするDMAコントローラ。
【請求項10】
請求項1または7に記載のDMAコントローラにおいて、前記帯域は前記データごとに設定されていることを特徴とするDMAコントローラ。
【請求項11】
請求項1または7に記載のDMAコントローラにおいて、該DMAコントローラはさらに、前記システムバスの周波数を前記バス帯域に応じて設定するバスクロック制御手段を含むことを特徴とするDMAコントローラ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate