(57)【特許請求の範囲】
【請求項１】
バスを介してバススレーブにデータを転送する転送手段と、
前記データを転送すべき期限までの残り時間を計数する残り時間計数手段と、
前記データのうち、未転送の残りのデータ量を計数する残りデータ量計数手段と、
前記残り時間計数手段により計数された前記残り時間と、前記残りデータ量計数手段により計数された前記残りのデータ量とに基づいて、前記データを処理する処理モジュールの処理クロックを切り替えるクロック切り替え手段と
を備えたことを特徴とするバスシステム。
【請求項２】
前記クロック切り替え手段は、前記残り時間計数手段により計数された前記残り時間と、前記残りデータ量計数手段により計数された前記残りのデータ量との比に基づいて、前記処理クロックを切り替えることを特徴とする請求項１に記載のバスシステム。
【請求項３】
前記データの転送時間を設定する転送時間設定手段と、
前記データの転送量を設定する転送量設定手段とを有し、
前記残り時間計数手段は、前記転送時間設定手段により設定された転送時間に基づいて、前記データを転送すべき期限までの残り時間を計数し、
前記残りデータ量計数手段は、前記転送量設定手段により設定された転送量に基づいて、前記未転送の残りのデータ量を計数することを特徴とする請求項１又は２に記載のバスシステム。
【請求項４】
前記転送手段と、前記残り時間計数手段と、前記残りデータ量計数手段とを少なくとも有する複数のバスマスタ装置を備え、
前記複数のバスマスタ装置の要求レートに基づいて、優先度を決定する優先度決定手段を備え、
前記クロック切り替え手段は、前記優先度決定手段により決定された優先度と、前記要求レートとに基づいて、前記複数のバスマスタ装置に接続された各処理モジュールのクロックを切り替えることを特徴とする請求項１から３の何れか１項に記載のバスシステム。 
【請求項５】
前記複数のバスマスタ装置は、前記データの転送能力を設定する転送能力設定手段を備え、
前記優先度決定手段は、前記要求レートと前記データの転送能力との比に基づいて、優先度を決定することを特徴とする請求項４に記載のバスシステム。
【請求項６】
前記複数のバスマスタ装置は、自身に接続された処理モジュールの処理能力を検出する処理能力検出手段を備え、
前記クロック切り替え手段は、前記複数のバスマスタ装置の要求レートと、前記処理能力検出手段により検出された処理能力とに基づいて、前記複数のバスマスタ装置に接続された各処理モジュールのクロックを切り替えることを特徴とする請求項４に記載のバスシステム。
【請求項７】
前記複数のバスマスタ装置は、自身に接続された処理モジュールの処理能力を検出する処理能力検出手段を備え、
前記クロック切り替え手段は、前記優先度決定手段により決定された優先度と、前記要求レートと、前記処理能力検出手段により検出された処理能力とに基づいて、前記複数のバスマスタ装置に接続された各処理モジュールのクロックを切り替えることを特徴とする請求項４又は５に記載のバスシステム。
【請求項８】
前記クロック切り替え手段によって切り替えられたクロックの周波数に応じて、各処理モジュールを駆動する電源の電圧を切り替える手段を更に備えることを特徴とする請求項１から請求項７の何れか１項に記載のバスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスシステムに関し、特に、バスマスタがバスを介してバススレーブにデータを転送するために用いて好適なものである。
【背景技術】
【０００２】
バス上に複数のバスマスタが接続されており、各バスマスタがバスに接続されたバススレーブにデータ転送を行う技術が従来から実現されている（特許文献１を参照）。この場合、バスマスタは、バス上のアービタ（バス調停器）に転送要求を出力し、アービタから転送許可が与えられると、データ転送を開始するという構成が一般的である。また、アービタの調停アルゴリズムとしては、固定プライオリティ方式やラウンドロビン方式等が一般的である。
【特許文献１】特開２００１−２４３１７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、前述した固定プライオリティ方式やラウンドロビン方式といった調停アルゴリズムによるバス調停においては、各バスマスタがデータ転送を行う際に要求するデッドラインを保証することが困難であった。
【０００４】
例えば、ある所定期間内に各バスマスタが要求する「平均帯域の和」が、バスの割当可能な帯域の範囲内だとしても、所定期間内の一部の期間に着目すると、各バスマスタが要求する帯域の和が、バスの割当て可能な帯域を超えてしまうことがある。
【０００５】
この場合、固定プライオリティ方式やラウンドロビン方式といった単純な調停アルゴリズムでは、デッドラインを保証するという観点から適切なバス調停が行われないという問題点があった。
【０００６】
更に、階層化されたバスの場合、各階層ごとに固定プライオリティ方式やラウンドロビン方式といった単純な調停アルゴリズムによってバス調停を行うと、下位階層に接続されたバスマスタが、上位階層において必ずしも優先的にバス権を取得できない。このため、デッドラインを保証することが困難であるという問題点もあった。
【０００７】
また、デッドラインに対して必要以上の転送能力があるバスマスタには、待ち状態が発生する。その場合、待ち状態でもクロックが供給されることで、無駄な電力を消費していまうといった問題点があった。
【０００８】
本発明は、以上のような問題点に鑑みてなされたものであり、適切なデッドラインを保証することが、小さな消費電力で実現できるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明は上述の課題を解決するために、バスを介してバススレーブにデータを転送する転送手段と、前記データを転送すべき期限までの残り時間を計数する残り時間計数手段と、前記データのうち、未転送の残りのデータ量を計数する残りデータ量計数手段と、前記残り時間計数手段により計数された残り時間と、前記残りデータ量計数手段により計数された残りのデータ量とに基づいて、前記データを処理する処理モジュールの処理クロックを切り替えるクロック切り替え手段とを備えたことを特徴とするバスシステム等を提供する。
【発明の効果】
【００１０】
本発明によれば、データを転送すべき期限までの残り時間と、未転送の残りのデータ量とに基づいて、転送要求の優先度を決定する。従って、デッドラインの近いバスマスタに接続された処理モジュールの処理クロックの周波数を優先的に増加させ、単位時間当たりの転送量を上昇させることが可能になる。更には、デットラインに必要な処理性能を超えているバスマスタに接続された処理モジュールの処理クロックの周波数を減少させることが可能である。以上により、適切なデッドラインを保証することが、小さな消費電力で実現可能なバスシステムを構築できる。
【発明を実施するための最良の形態】
【００１１】
（第１の実施形態）
以下に、図面を参照しながら、本発明の第１の実施形態について説明する。
【００１２】
図１は、バスマスタの構成の一例を表すブロック図である。
【００１３】
図１において、バスマスタ１は、バススレーブＩ／Ｆ部１０、転送時間レジスタ１１、転送量レジスタ１２、転送開始レジスタ１３、処理サイクルレジスタ１５、バスマスタＩ／Ｆ部２０、及びバスマスタ制御部２１を備えて構成される。更にバスマスタ１は、データ処理部２２、転送要求度計算部２３、残り転送時間レジスタ２４、残り転送量レジスタ２５、及びＦＩＦＯ２７も備えている。
【００１４】
図２は、バスマスタ１を用いたバスシステムの概略構成の一例を表すブロック図である。尚、このバスシステムは、例えば計算機システムや画像処理システム等で使用される。
【００１５】
図２において、情報処理装置１００は、バス４０、ＣＰＵ４１、アービタ４２、バスマスタ４３〜４５、バススレーブ４６、４７、処理モジュール４８〜５０、及びクロック供給回路５１を備えて構成される。尚、図２に示すバスマスタ４３〜４５は、各々図１に示したバスマスタ１に相当する。
【００１６】
まず、図１に示したバスマスタ１の概要を説明する。
【００１７】
バススレーブＩ／Ｆ部１０は、バス４０上のＣＰＵ（図２のＣＰＵ４１に相当する）からのレジスタアクセスを受け付けるインターフェースである。
【００１８】
転送時間レジスタ１１は、バスマスタ１が行うデータ転送に要求される転送時間（即ち、転送開始から転送終了までの時間の最大値）を１μ秒単位で設定する、転送時間設定のためのレジスタである。転送量レジスタ１２は、バスマスタ１が行うデータ転送の転送量をバイト単位で設定する、転送量設定のためのレジスタである。
【００１９】
またバスマスタ１は、転送開始レジスタ１３に「１」が書き込まれることによってデータ転送を開始し、転送が完了すると転送開始レジスタ１３の値を自動的にクリアする。
【００２０】
ＦＩＦＯ２７は、処理モジュール（図２の処理モジュール４８〜５０に相当する）の処理クロック周波数とバス４０のクロック周波数との違いを吸収するために、処理モジュールからのデータや処理モジュールへのデータを一時的に格納する。ＦＩＦＯ２７があることで、処理モジュールの処理クロック周波数がバス４０のクロック周波数より遅くなっても、バス４０の転送効率を低下させないようにすることができる。
【００２１】
バスマスタＩ／Ｆ部２０は、バス４０上のバススレーブ（図２のバススレーブ４６、４７に相当する）と、後述するデータ処理部２２との間のデータ転送を行うためのインターフェースである。
【００２２】
バスマスタ制御部２１は、バスマスタＩ／Ｆ部２０、転送開始レジスタ１３、後述する残り転送時間レジスタ２４、並びに残り転送量レジスタ２５を制御する。
【００２３】
データ処理部２２は、転送データを生成又は受信する部分である。データ処理部２２が備える機能は、バスマスタ１に要求される機能によって異なる。データ処理部２２は、例えば、画像処理を行うブロックや、外部との通信を行うインターフェースブロック等を備えることができる。
【００２４】
次に、バスマスタ１の詳細について説明する。バス４０上のＣＰＵ４１から転送開始レジスタ１３に「１」が書き込まれると、バスマスタ制御部２１は、残り転送時間レジスタ２４並びに残り転送量レジスタ２５に対してロード信号をアサート（assert）する。
【００２５】
これにより、転送時間レジスタ１１の値が残り転送時間レジスタ２４にコピーされると共に、転送量レジスタ１２の値が残り転送量レジスタ２５にコピーされる。
【００２６】
その後バスマスタ制御部２１は、残り転送時間レジスタ２４に対しては１μ秒ごとに時間減算信号をアサートする。これにより、残り転送時間レジスタ２４は、時間減算信号を受信するたびに１μ秒を減算して、データを転送すべき期限までの残り時間を計数（残り時間計数）を行う。また、バスマスタ制御部２１は、残り転送量レジスタ２５に対してはデータ転送が行われる度に転送されたバイト数分の転送量減算信号をアサートする。これにより、残り転送量レジスタ２５は、転送量減算信号を受信するたびに、受信した転送量減算信号に応じて未転送の残りのデータ量を計数して、残りデータ量計数を行う。
【００２７】
例えば本実施形態においては、バス４０における１ワードは３２ビットである。このため、転送量減算信号として、１ワードの転送が行われた場合には「４」が、ハーフワード転送が行われた場合には「２」が、バイト転送が行われた場合には「１」がそれぞれアサートされる。残り転送量レジスタ２５は、自身の値から転送量減算信号の値を減算する。
【００２８】
以上により、残り転送時間レジスタ２４並びに残り転送量レジスタ２５の値は減算され、残り転送時間並びに残り転送量の値が適切に更新される。
【００２９】
データ処理部２２も、転送開始レジスタ１３に「１」が書き込まれることによって起動される。
【００３０】
データが送信可能若しくは受信可能になると、データ処理部２２は、バスマスタ制御部２１に対してデータレディ信号をアサートする。
【００３１】
データレディ信号のアサートを受けて、バスマスタ制御部２１は、バス４０上のアービタ（図２のアービタ４２に相当する）に対して転送要求信号をアサートするよう、バスマスタＩ／Ｆ２０を制御する。
【００３２】
一方、転送要求度計算部２３は、残り転送時間レジスタ２４並びに残り転送量レジスタ２５の値に基づいてデータ転送の要求レートを計算する。当該要求レートは、バスマスタの優先度決定のために利用できる。  本実施形態における転送要求度計算部２３の計算式は、以下の（１）式で与えられる。
【００３３】
要求レート＝（残り転送量レジスタ２５の値／残り転送時間レジスタ２４の値）  ・・・（１）
この計算式により、残りのデータ量が同一である場合、残り時間が少なくなるほど転送要求度（要求レート）は大きくなる。一方、同一の残り時間に対しては、残りデータ量が多くなるほど転送要求度は大きくなる。転送要求度計算部２３は、クロック供給回路５１に対して、要求レートの計算結果を出力する。
【００３４】
図３は、クロック供給回路５１の詳細な構成の一例を表す図である。
【００３５】
図３において、クロック選択回路６１は、バスマスタ４３〜４５毎の要求レートと処理サイクルとを入力し、各バスマスタ４３〜４５に接続される処理モジュール４８〜５０に対して最適な処理クロックを選択する。ここで、処理サイクルは、処理モジュール４８〜５０がＦＩＦＯ２７に１ワードを転送するために要するクロックサイクルであり、各処理モジュールの処理能力を表す。この処理サイクルは、処理サイクルレジスタ１５に設定される。よって、各バスマスタは、自身に接続された処理モジュールの処理能力検出を該処理サイクルレジスタ１５に設定された処理サイクルに基づいて行うことができる。
【００３６】
カウンタ６８は、バス４０の転送クロックによってカウントするカウンタである。本実施形態では、カウンタ６８は、１６０ＭＨｚの１６０進カウンタである。
【００３７】
ゲート信号生成回路６２〜６４はそれぞれ、クロック選択回路５１によって選択された周波数を出力するために、１６０進カウンタ６８のカウント値から、ゲート信号を生成する。クロックゲート回路６５、６６、６７は、それぞれゲート生成回路６２〜６４が生成したゲート信号によって決定される周波数のクロックを出力する。
【００３８】
本実施形態では、０〜１６０ＭＨｚのクロックを１ＭＨｚの分解能で生成することが可能である。
【００３９】
図４は、クロック選択回路６１の詳細なアルゴリズムの一例を表すフローチャートである。
【００４０】
ステップＳ４０１において、クロック選択回路６１は、変数の初期化を行う。具体的にクロック選択回路６１は、残りレートをバス４０の最大の転送レートである「１６０」に設定する。ここで、転送レートの単位はＭＷ/secであって、単位時間あたりのデータ量を表す（Ｍ＝１０６、Ｗ＝ワード）。また、ループ回数をバスマスタの総数に設定する。図２に示した例では、ループ回数を「３」に設定する。
【００４１】
次に、ステップＳ４０２において、クロック選択回路６１は、要求レートに基づいて、優先されるバスマスタを選択する。ここでは、要求レートの高いバスマスタを選択する。即ち、要求レートの高いバスマスタに高い優先度が与えられる。要求レートが同じ場合には、マスタ番号の小さいものが優先されるものとする。
【００４２】
次に、ステップＳ４０３において、クロック選択回路６１は、ステップＳ４０２で選択したバスマスタの要求レートが、残りレートよりも大きいか否かを判定する。この判定の結果、ステップＳ４０２で選択したバスマスタの要求レートが、残りレートよりも大きい場合（ステップＳ４０３において「ＹＥＳ」）にはステップＳ４０４へ進む。一方、残りレートの方が要求レートよりも大きい場合には（ステップＳ４０３において「ＮＯ」）、ステップＳ４０５へ進む。
【００４３】
ステップＳ４０４でクロック選択回路６１は、バスマスタ４３〜４５のうち、優先マスタとしてステップＳ４０２で選択されたバスマスタに接続された処理モジュールのクロック周波数を、残りレートに該バスマスタの処理サイクルを乗算した値に設定する。この設定値は、該処理モジュールが残りレートを達成するためのクロック周波数に等しい。また、周波数の分解能（本実施形態では１ＭＨｚ）対して端数がある場合には設定値を切り上げるものとする。
【００４４】
一方、ステップＳ４０５でクロック選択回路６１は、バスマスタ４３〜４５のうち、優先マスタとしてステップＳ４０２で選択されたバスマスタに接続された処理モジュールのクロック周波数を、要求レートに該バスマスタの処理サイクルを乗算した値とする。この設定値は、該処理モジュールが要求レートを達成するためのクロック周波数に等しい。また、周波数の分解能（本実施形態では１ＭＨｚ）に対して端数がある場合には設定値を切り上げるものとする。
【００４５】
以上のようにして処理モジュール４８〜５０のクロック周波数が設定されると、ステップＳ４０６に進む。ステップＳ４０６に進むと、クロック選択回路６１は、ループ回数から「１」を減算する。
【００４６】
次に、ステップＳ４０７において、クロック選択回路６１は、ループ回数が０であるか否かを判定する。この判定の結果、ループ回数が０（ゼロ）である場合には（ステップＳ４０７において「ＹＥＳ」）、クロック選択処理を終了する。一方、ループ回数が０でない場合は（ステップＳ４０７において「ＮＯ」）、ステップＳ４０２へ戻って、未選択のバスマスタについて、クロック周波数を選択するための処理を実行する。
【００４７】
図４の処理を周期的に行うことによって、各バスマスタ４３〜４５の要求レートに従ったクロック周波数を動的に設定すること（動的なクロック切り替え）が可能になる。
【００４８】
以下、図５を参照して、本実施形態に対応するクロック周波数の動的設定処理の具体例を説明する。図５は、３つのバスマスタが同時にデータの転送を開始した場合の様子の一例を表す図である。
【００４９】
本実施形態においては、バスマスタ４３（マスタ１）は、転送すべきデータ量：ｄ１、目標転送時間（デッドライン）：ｔ１として、初期の要求レートは１２０ＭＷ／ｓｅｃとなる。また、バスマスタ４４（マスタ２）は、転送すべきデータ量：ｄ２、目標転送時間（デッドライン）：ｔ２として、初期の要求レートは５０ＭＷ／ｓｅｃとなる。さらに、バスマスタ４５（マスタ３）は、転送すべきデータ量：ｄ３、目標転送時間（デッドライン）：ｔ３として、初期の要求レートは２５ＭＷ／ｓｅｃである。なお、本実施形態では、ｄ２＞ｄ１＞ｄ３である。  また、各バスマスタ４３〜４５に接続された処理モジュール４８〜５０の処理サイクルは、以下の通りである。即ち、処理モジュール４８の処理サイクルは１サイクルであり、処理モジュール４９の処理サイクルは２サイクルであり、処理モジュール５０の処理サイクルは２サイクルである。
【００５０】
データの転送を開始したときは、バスマスタ４３（マスタ１）の要求レートが最大であるので、バスマスタ４３（マスタ１）の要求を満足するようにデータを転送する。そのため、バスマスタ４３（マスタ１）に接続される処理モジュール４３には、要求レートに処理サイクルを乗算した１２０ＭＨｚのクロックが供給される。
【００５１】
次に優先されるバスマスタは、バスマスタ４４（マスタ２）である。従って、バスマスタ４４（マスタ２）のクロック周波数を、バスマスタ４３（マスタ１）の転送要求が満足するように決定する。つまり、バス４０の最大の転送能力は１６０ＭＷ／ｓｅｃであるので、バスマスタ４４（マスタ２）の転送レートは、１６０ＭＷ／ｓｅｃから１２０ＭＷ／ｓｅｃを減算した残りのレート（４０ＭＷ／ｓｅｃ）が最大値となる。
【００５２】
バスマスタ４４（マスタ２）の要求レートは５０ＭＷ／ｓｅｃであるが、この要求レートは、残りのレートを超えている。このため、バスマスタ４４（マスタ２）に接続された処理モジュール４９には、残りのレート（４０ＭＷ／ｓｅｃ）に処理サイクルを乗算した８０ＭＨｚのクロックが供給される。
【００５３】
バスマスタ４５（マスタ３）の要求レートは２５ＭＷ／ｓｅｃであるが、バスマスタ４３、４４（マスタ１、２）のデータ転送を満足させるようにすると残りのレートが０（ゼロ）である。このため、バスマスタ４５（マスタ３）に接続された処理モジュール５０は、０ＭＨｚ（停止状態）になる。
【００５４】
転送時間ｔ１が経過すると、バスマスタ４３（マスタ１）は全てのデータ量ｄ１の転送を終了する。そうすると、バスマスタ４３（マスタ１）の要求レートは０（ゼロ）になる。
【００５５】
転送時間ｔ１が経過した時点でのバスマスタ４４（マスタ２）の要求レートは、（ｄ２−４０ＭＷ・ｔ１）／（ｔ２−ｔ１）＝６０ＭＷ／ｓｅｃであり、バスマスタ４５（マスタ３）の要求レートは、ｄ３／（ｔ３−ｔ１）＝３０ＭＷ／ｓｅｃである。従って、要求レートが高いバスマスタ４４（マスタ２）がバスマスタ４５（マスタ３）に優先され、バスマスタ４４（マスタ２）に接続された処理モジュール４９には、要求レートに処理サイクルを乗算した１２０ＭＨｚのクロックが供給される。そうすると、残りのレートは１６０ＭＷ／ｓｅｃ−６０ＭＷ／ｓｅｃ＝１００ＭＷ／ｓｅｃである。バスマスタ４５（マスタ３）の要求レート（３０ＭＷ／ｓｅｃ）は、この残りのレートを超えない。このため、バスマスタ４５（マスタ３）に接続された処理モジュール５０には、要求レートに処理サイクルを乗算した６０ＭＨｚのクロックが供給される。
【００５６】
転送時間ｔ２が経過すると、バスマスタ４４（マスタ２）は全てのデータ量ｄ２の転送を終了する。そうすると、バスマスタ４４（マスタ２）の要求レートが０（ゼロ）になる。
【００５７】
転送時間ｔ２が経過した時点でのバスマスタ４５（マスタ３）の要求レートは｛ｄ３−（ｔ２−ｔ１）・３０ＭＷ｝／（ｔ３−ｔ２）＝３０ＭＷ／ｓｅｃである。よって、バスマスタ４５（マスタ３）に接続された処理モジュール５０には、要求レートに処理サイクルを乗算した６０ＭＨｚのクロックが引き続き供給される。
【００５８】
転送時間ｔ３が経過すると、バスマスタ４５（マスタ３）は全てのデータ量ｄ３の転送を終了する。そうすると、バスマスタ４５（マスタ３）での要求レートが０（ゼロ）となる。
【００５９】
尚、本実施形態において、バスマスタやそれに接続される処理モジュールの数は３個に限定されるものではない。
【００６０】
また、図３に示したカウンタ６８は、１６０ＭＨｚの１６０進カウンタに限定されるものではない。例えば、８進カウンタである場合はクロックの分解能が２０ＭＨｚとなる。
【００６１】
更に選択可能なクロックが単純な分周であってもよい。例えば、選択可能なクロックが１６０ＭＨｚ、８０ＭＨｚ、４０ＭＨｚ、２０ＭＨｚ、０ＭＨｚであってもよい。この場合、選択可能なクロック周波数の中から要求レートに最も近いクロック周波数に、処理モジュールのクロックを切り替えるようにすれば、図４のアルゴリズムを適応することが可能である。このように、段階的な周波数の切り替えであっても、動的に制御を行うことでデットラインの保証が可能となる。
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。尚、以下の説明において、第１の実施形態と同一の部分については、詳細な説明を省略する。
【００６２】
図６は、バスシステムの概略構成の一例を表すブロック図である。
【００６３】
図６において、情報処理装置２００は、上位階層バス１４０、ＣＰＵ１４１、アービタ１４２、バスマスタ１４３、バススレーブ１４６、処理モジュール１４８、及び下位階層バス１６０を備えて構成される。更に情報処理装置２００は、バスマスタ１４４、１４５、バススレーブ１４７、処理モジュール１４９、１５０、クロック供給部１５１、及びバスブリッジ１５２を備えている。
【００６４】
前述した第１の実施形態で説明した図２の情報処理装置１００と、本情報処理装置２００との相違点は、上位階層バス１４０と下位階層バス１６０との２つにバスが階層化されている点である。
【００６５】
バス階層を跨いたデータの転送は、バスブリッジ１５２を介して行われる。ここで、上位階層バス１４０では、１６０ＭＨｚのクロックでデータの転送が行われ、下位階層バス１６０では。４０ＭＨｚのクロックでデータの転送されるものとする。従って、バスの最大転送レートは、上位階層バス１４０で１６０ＭＷ／ｓｅｃとなり、下位階層バス１６０で４０ＭＷ／ｓｅｃとなる。
【００６６】
図８は、バスマスタの構成の一例を表すブロック図である。
【００６７】
図８において、バスマスタ１０１は、バススレーブＩ／Ｆ部１１０、転送時間レジスタ１１１、転送量レジスタ１１２、転送開始レジスタ１１３、転送能力レジスタ１１４、バスマスタＩ／Ｆ部１２０、及びバスマスタ制御部１２１を備えて構成される。更にバスマスタ１０１は、データ処理部１２２、転送要求度計算部１２３、残り転送時間レジスタ１２４、残り転送量レジスタ１２５、及びＦＩＦＯ１２７も備えている。
【００６８】
前述した第１の実施形態で説明した図１のバスマスタ１と、本バスマスタ１０１との相違点は、以下の２点である。第１に、本実施形態のバスマスタ１０１は、バスマスタに接続された処理モジュールの処理サイクルを設定する処理サイクルレジスタ１５を有していない。第２に、本実施形態のバスマスタ１０１は、転送サイクルレジスタ１１４を有している。転送サイクルレジスタ１１４は、後述の式（２）で求められるバスマスタの転送サイクル（転送能力）を設定する、転送能力設定のためのレジスタである。  
上位階層バス１４０に接続されたバスマスタ１４３の転送サイクルは、１サイクルである。下位階層バス１６０に接続されたバスマスタ１４４、１４５の転送サイクルは、以下の（２）式によって決定される。
【００６９】
転送サイクル＝（上位階層バス１４０のクロック周波数／下位階層バス１６０のクロック周波数）  ・・・（２）  
上述のように、上位階層バス１４０のクロック周波数は１６０ＭＨｚであり、下位階層バス１６０のクロック周波数は４０ＭＨｚである。従って、バスマスタ１４３（マスタ１）の転送サイクルは１サイクルになり、バスマスタ１４４、１４５（マスタ２、３）の転送サイクルは、１６０／４０＝４サイクルになる。
【００７０】
転送要求度計算部１２３は、残り転送時間レジスタ１２４並びに残り転送量レジスタ１２５の値、更にはＣＰＵ１４１によって予め設定された転送サイクルレジスタ１１４の値に基づいてデータ転送の要求レート及び要求度を計算する。
【００７１】
本実施形態における転送要求度計算部１２３は、要求レートを以下の（３）式で求める。
【００７２】
要求レート＝（残り転送量レジスタ１２５の値／残り転送時間レジスタ１２４の値）  ・・・（３）
また、転送用要求度計算部１２３は、要求度を以下の（４）式で求める。
【００７３】
要求度＝（要求レート×転送サイクルレジスタ１１４の値）  ・・・（４）で与えられる。
【００７４】
この（３）式及び（４）式により、バスマスタの転送サイクルが同一であり、且つ残りのデータ量が同一である場合には、残り時間が少なくなるほど転送要求度は大きくなる。
【００７５】
一方、バスマスタの転送サイクルが同一であり、且つ残り時間が同一である場合には、残りデータ量が多くなるほど転送要求度は大きくなる。
【００７６】
更には、残りのデータ量が同一であり、且つ残り時間が同一である場合には、バスマスタの転送サイクルが大きいほど転送要求度は大きくなる。
【００７７】
転送量転送要求度計算部１２３は、クロック供給回路１５１に対して、転送要求度の計算結果と要求レートの計算結果とを出力する。
【００７８】
転送要求度信号をアサートするタイミングは、転送要求信号のアサートの開始と同一サイクルであり、以降、データの転送が完了するまで転送要求度及び要求レートの値は保持される。
【００７９】
図１０は、クロック選択回路１６１の詳細なアルゴリズムの一例を表すフローチャートである。
【００８０】
ステップＳ１００１〜Ｓ１００３及びステップＳ１００６〜Ｓ１００７は、それぞれ第１の実施形態で説明した図４のステップＳ４０１〜Ｓ４０３及びステップＳ４０６〜Ｓ４０７と同じ処理を行う。
【００８１】
図１０のフローチャートと、第１の実施形態で説明した図４のフローチャートとの違いは以下の２点である。
【００８２】
第１に、ステップＳ１００４において、クロック選択回路１６１は、クロックを残りレートに設定する。第２に、ステップＳ１００５において、クロック選択回路１６１は、クロックを要求レートに設定する。
【００８３】
本実施形態では、バスマスタ１４３〜１４５に接続された全ての処理モジュール１４８〜１５０が、１クロックで１ワードの転送が可能であることを想定しており、処理モジュール１４８〜１５０の処理サイクルを考慮していない。しかしながら、処理モジュール１４８〜１５０が１ワードを転送するために複数のクロックを要する場合には、第１実施形態で説明した処理モジュールの処理サイクルを考慮しなければならない。
【００８４】
図９は、本実施形態のクロック供給回路１５１の詳細な構成の一例を表す図である。
【００８５】
図９において、１６１はクロック選択回路である。１６５〜１６７はクロックゲート回路である。１６２〜１６４はゲート信号生成回路である。
【００８６】
第１の実施形態で説明した図３のクロック供給回路５１と、図９のクロック供給回路１５１との違いは、以下の２点である。第１に、図９のクロック供給回路１５１は、各バスマスタ１４３〜１４５に接続された処理モジュール１４８〜１５０の処理サイクルを入力しない。第２に、図９のクロック供給回路１５１は、各バスマスタ１４３〜１４５の転送要求度計算部１２３が出力する要求度を入力する。
【００８７】
以下、図７を参照して、本実施形態に対応するクロック周波数の動的設定処理の具体例を説明する。図７は、バスが階層化されて構成されたバスマスタが同時にデータの転送を開始した場合の様子の一例を表す図である。
【００８８】
本実施形態では、バスマスタ１４３（マスタ１）の初期の要求レートを、転送すべきデータ量：ｄ１、目標転送時間（デッドライン）：ｔ１として、１２０ＭＷ／ｓｅｃとする。また、バスマスタ１４４（マスタ２）の初期の要求レートを、転送すべきデータ量：ｄ２、目標転送時間（デッドライン）：ｔ２として、３３ＭＷ／ｓｅｃとする。さらに、バスマスタ１４５（マスタ３）の初期の要求レートを、転送すべきデータ量：ｄ３、目標転送時間（デッドライン）：ｔ３として、２５ＭＷ／ｓｅｃとする。なお、本実施形態では、ｄ１＞ｄ３＞ｄ２である。  また、バスマスタ１４３（マスタ１）の転送サイクルは１サイクル、バスマスタ１４４（マスタ２）の転送サイクルは４サイクル、バスマスタ１４５（マスタ３）の転送サイクルは４サイクルである。
【００８９】
この場合、バスマスタ１４３（マスタ１）の初期の要求度は１２０（＝１２０×１）となる。また、バスマスタ１４４（マスタ２）の初期の要求度は１３２（＝３３×４）となる。さらに、バスマスタ１４５（マスタ３）の初期の要求度は１００（＝２５×４）となる。このように、データの転送を開始したときは、バスマスタ１４４（マスタ２）の要求度が最大である。
【００９０】
ここで注目すべきは、要求レートはバスマスタ１４４（マスタ２）の方が、バスマスタ１４３（マスタ１）よりも低いにもかかわらず、要求度はバスマスタ１４４（マスタ２）の方が、バスマスタ１４３（マスタ１）よりも高くなっている点である。これは、バスマスタ１４４（マスタ２）の転送能力が低いため（実際には下位階層バス１６０の転送能力が低いため）、デットラインを保証するための緊急度がバスマスタ１４３（マスタ１）よりもバスマスタ１４４（マスタ２）の方が高くなるからである。
【００９１】
従って、バスマスタ１４４（マスタ２）の要求を満足するようにデータを転送する。即ち、バスマスタ１４４（マスタ２）に接続された処理モジュール１４９には、３３ＭＨｚのクロックが供給される。
【００９２】
次に優先されるバスマスタは、バスマスタ１４３（マスタ１）である。従って、バスマスタ１４３（マスタ１）のクロック周波数を、バスマスタ１４４（マスタ２）の転送要求を満足するように決定する。つまり、残りの転送レートは１２７ＭＷ／ｓｅｃであるので、バスマスタ１４３（マスタ１）の要求レートは、この残りの転送レートを超えない。従って、バスマスタ１４３（マスタ１）に接続された処理モジュール１４８には、１２０ＭＨｚのクロックが供給される。そして、残りのレートは７ＭＷ／ｓｅｃとなる。バスマスタ１４５（マスタ３）の要求レートは、この残りのレートを超える。このため、バスマスタ１４５（マスタ３）に接続された処理モジュール１５０には、７ＭＨｚのクロックが供給される。
【００９３】
転送時間ｔ１が経過すると、バスマスタ１４３（マスタ１）は全てのデータ量ｄ１の転送を終了する。そうすると、バスマスタ１４３（マスタ１）の要求レートは０（ゼロ）になる。
【００９４】
転送時間ｔ１が経過した時点でのバスマスタ１４４（マスタ２）の要求レートは、（ｄ２−ｔ１・３３ＭＷ）／（ｔ２−ｔ１）＝３３ＭＷ／ｓｅｃとなる。また、バスマスタ１４５（マスタ３）の要求レートは、（ｄ３−ｔ１・７ＭＷ）／（ｔ３−ｔ１）＝２８ＭＷ／ｓｅｃである。この時点でのバスマスタ１４４（マスタ２）の要求度は、１３２（＝３３×４）であり、バスマスタ１４５（マスタ３）の要求度は、１１２（＝２８×４）である。従って、要求度が高いバスマスタ１４４（マスタ２）がバスマスタ１４５（マスタ３）に優先され、バスマスタ１４４（マスタ２）に接続された処理モジュール１４９には、３３ＭＨｚのクロックが供給される。
【００９５】
残りのレートは１２７ＭＷ／ｓｅｃである。この残りのレートは、バスマスタ１４５（マスタ３）の要求レートを超えている。このため、バスマスタ１４５（マスタ３）に接続された処理モジュール１５０には、２８ＭＨｚのクロックが供給される。
【００９６】
転送時間ｔ２が経過すると、バスマスタ１４４（マスタ２）は全てのデータ量ｄ２の転送を終了する。よって、バスマスタ１４４（マスタ２）の要求レートが０（ゼロ）になる。
【００９７】
転送時間ｔ２が経過した時点でのバスマスタ１４５（マスタ３）の要求度は｛ｄ３−（ｔ１・７ＭＷ）−（ｔ２−ｔ１）・２８ＭＷ｝／（ｔ３−ｔ２）＝２８ＭＷ／ｓｅｃである。よって、バスマスタ１４５（マスタ３）に接続された処理モジュール１５０には、２８ＭＨｚのクロックが引き続き供給される。
【００９８】
転送時間ｔ３が経過すると、バスマスタ１４５（マスタ３）は全てのデータ量ｄ３の転送を終了する。よって、バスマスタ１４５（マスタ３）での要求レートが０（ゼロ）となる。
【００９９】
なお、第１の実施形態で説明した図４、及び本実施形態で説明した図７では、バスの転送効率が１００％の場合を想定している。一方、現実のバスシステムは、バスマスタの切り替わりや、バススレーブの待ち時間等によって、転送効率が低下する場合が多い。
【０１００】
しかしながら、第１及び第２の実施形態では、実際の転送時間と転送量とを各バスマスタが監視（モニタ）している。従って、転送効率が低下した分、要求度や要求レートを上昇させることによって、動的な調整が可能となり、各バスマスタに対して正確にデットラインを保証することが可能になる。
【０１０１】
以上のような構成並びに方式を採り、バスマスタの転送クロックを制御することで、バスを階層化した構成にしても、そうしない構成にしても、各バスマスタに対して適切なデッドライン保証を行うことが可能となる。
【０１０２】
また、処理モジュールのクロックがデータの転送に最適化されるために、消費電力を軽減することが可能となる。
（第３の実施形態）
以下に、図面を参照しながら、本発明の第３の実施形態について説明する。
【０１０３】
図１１は、バスマスタ１を用いたバスシステムの概略構成の一例を表すブロック図である。尚、このバスシステムは、例えば計算機システムや画像処理システム等で使用される。
【０１０４】
図１１において、情報処理装置３００は、バス２４０、ＣＰＵ２４１、アービタ２４２、バスマスタ２４３〜２４５、バススレーブ２４６、２４７、処理モジュール２４８〜２５０、及びクロック供給回路２５１、電源供給回路２５２、２５３、２５４を備えて構成される。尚、図１１に示すバスマスタ２４３〜２４５は、各々図１に示したバスマスタ１に相当する。
【０１０５】
処理モジュール２４８、２４９、２５０用の駆動電源は、それぞれ電源供給回路２５２、２５３、２５４から供給される。その他のブロック２４１、２４２、２４３、２４４、２４５、２４６、２４７、２５１、２５２、２５３、２５４の電源は、外部のコア電源２６０から供給されるものとする。また、処理モジュール２４８、２４９、２５０は、それぞれバスマスタ２４３、２４４、２４５やクロック供給回路２５１と異なる電圧値によって電源が供給されても問題がないように回路が構成されているものとする。
【０１０６】
図１２は、本実施形態のクロック供給回路２５１の詳細な構成の一例を表す図である。
【０１０７】
図１２において、２６１はクロック選択回路である。２６５〜２６７はクロックゲート回路である。２６２〜２６４はゲート信号生成回路である。
【０１０８】
第１の実施形態で説明した図３のクロック供給回路５１と、図１２のクロック供給回路２５１との違いは、クロック選択回路２６１で生成する処理モジュール２４８、２４９、２５０のクロックの周波数値を出力していることである。当該クロック周波数値は、処理モジュール２４８、２４９、２５０にそれぞれ駆動電源の供給を行う電源供給回路２５２、２５３、２５４に出力される。
【０１０９】
図１３は、本実施形態の電源供給回路２５２、２５３、２５４の詳細な構成の一例を表す図である。
【０１１０】
図１３において、２７１は、クロック供給回路２５１のクロック選択回路２６１から供給されたクロック周波数値を電圧値に変換するためのルックアップテーブル（以下、ＬＵＴと呼ぶ）である。２７２は、ＬＵＴ２７１から与えられるデジタル値であるところの電圧値をアナログ値に変換するデジタルアナログ変換回路（以下、Ｄ／Ａ変換回路と呼ぶ）である。２７３は、Ｄ／Ａ変換回路によって与えられるアナログ値に応じてコア電源から処理モジュール２４８、２４９、２５０の電源を生成する電圧生成回路である。
【０１１１】
図１４は、ＬＵＴ２７１において周波数値を電圧値に変換する特性を表す図である。周波数が最大値の場合、電圧値はコア電圧と同じ値である。周波数値が下がると電圧値も降下する。この特性は本実施形態であるところのバスシステムが利用する半導体の特性に合わせればよい。
上述のように、処理モジュール２４８、２４９、２５０のバス転送の状況に応じて最適な周波数のクロックを供給するとともに、クロックの周波数に応じた最適な電圧を供給することで消費電力の更なる軽減が可能である。
（本発明の他の実施形態）
前述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、前記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給してもよい。そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【０１１２】
また、この場合、前記ソフトウェアのプログラムコード自体が前述した実施形態の機能を実現することになる。また、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えば、かかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０１１３】
また、コンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけでない。そのプログラムコードがコンピュータにおいて稼働しているオペレーティングシステムあるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【０１１４】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードに備わるＣＰＵが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【０１１５】
また、供給されたプログラムコードがコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいて機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【０１１６】
なお、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【０１１７】
【図１】本発明の第１の実施形態を示し、バスマスタの構成の一例を表すブロック図である。
【図２】本発明の第１の実施形態を示し、バスマスタを用いたバスシステムの概略構成の一例を表すブロック図である。
【図３】本発明の第１の実施形態を示し、クロック供給回路の詳細な構成の一例を表す図である。
【図４】本発明の第１の実施形態を示し、クロック選択回路の詳細なアルゴリズムの一例を表すフローチャートである。
【図５】本発明の第１の実施形態を示し、３つのバスマスタが同時にデータの転送を開始した場合の様子の一例を表す図である。
【図６】本発明の第２の実施形態を示し、バスシステムの概略構成の一例を表すブロック図である。
【図７】本発明の第２の実施形態を示し、バスが階層化されて構成されたバスマスタが同時にデータの転送を開始した場合の様子の一例を表す図である。
【図８】本発明の第２の実施形態を示し、バスマスタの構成の一例を表すブロック図である。
【図９】本発明の第２の実施形態を示し、クロック供給回路の詳細な構成の一例を表す図である。
【図１０】本発明の第２の実施形態を示し、クロック選択回路の詳細なアルゴリズムの一例を表すフローチャートである。
【図１１】本発明の第３の実施形態を示し、バスマスタを用いたバスシステムの概略構成の一例を表すブロック図である。
【図１２】本発明の第３の実施形態を示し、クロック供給回路の詳細な構成の一例を表す図である。
【図１３】本発明の第３の実施形態を示し、電源供給回路の詳細な構成の一例を表す図である。
【図１４】本発明の第３の実施形態を示し、周波数値と電圧値の特性を表す図である。
【符号の説明】
【０１１８】
１、１０１  バスマスタ
１０、１１０  バススレーブＩ／Ｆ部
１１、１１１  転送時間レジスタ
１２、１１２  転送量レジスタ
１３、１１３  転送開始レジスタ
１４  転送サイクルレジスタ
１５  処理サイクルレジスタ
２０、１２０  バスマスタＩ／Ｆ部
２１、１２１  バスマスタ制御部
２２、１２２  データ処理部
２３、１２３  転送要求度計算部
２４、１２４  残り転送時間レジスタ
２５、１２５  残り転送量レジスタ
２６、１２６  処理クロック供給部
２７、１２７  ＦＩＦＯ
４０、１４０、１６０  バス
４１、１４１、２４１  ＣＰＵ
４２、１４２、１６１、２４２  アービタ
４３、４４、４５、１４３、１４４、１４５、２４３、２４４、２４５  バスマスタ
４６、４７、１４６、１４７、２４６、２４７  バススレーブ
４８〜５０、１４８〜１５０、２４８〜２５０  処理モジュール
５１、１５１、２５１  クロック供給部
６１、１６１、２６１  クロック選択回路
６２〜６４、１６２〜１６４、２６２〜２６４  ゲート信号生成回路
６５〜６７、１６５〜１６７、２６５〜２６７  クロックゲート回路
６８、１６８、２６８  カウンタ
１００、２００、３００  情報処理装置
２５２、２５３、２５４  電源供給回路
２６０、コア電源
２７１  ＬＵＴ
２７２  Ａ／Ｄ変換回路
２７３  電圧生成回路
【図１】
0005408844.tif 000002
【図２】
0005408844.tif 000003
【図３】
0005408844.tif 000004
【図４】
0005408844.tif 000005
【図５】
0005408844.tif 000006
【図６】
0005408844.tif 000007
【図７】
0005408844.tif 000008
【図８】
0005408844.tif 000009
【図９】
0005408844.tif 000010
【図１０】
0005408844.tif 000011
【図１１】
0005408844.tif 000012
【図１２】
0005408844.tif 000013
【図１３】
0005408844.tif 000014
【図１４】
0005408844.tif 000015