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