(57)【要約】      （修正有）【課題】動作していない箇所の消費電力を低下させるとともに、装置のハングアップを防止できる技術を提供する。【解決手段】バス制御装置１００において、バス調停部は、アクセス要求を出力する複数のバスマスタからのアクセス要求を調停して、バスマスタからのアクセス要求を受け付けるとともに、そのアクセス要求が受け付けられた第１バスマスタに供給するクロック信号の周波数を第１周波数とし、複数のバスマスタの内、第１バスマスタ以外のバスマスタに供給するクロック信号の周波数を第１周波数よりも低い第２周波数とする。【選択図】図１
2018072896.tif 000002
【特許請求の範囲】
【請求項１】
アクセス要求を出力する複数のバスマスタと、
前記複数のバスマスタからのアクセス要求を調停して、バスマスタからのアクセス要求を受け付ける調停手段と、
前記調停手段によってアクセス要求が受け付けられた第１バスマスタに供給するクロック信号の周波数を第１周波数とし、前記複数のバスマスタの内、前記第１バスマスタ以外のバスマスタに供給するクロック信号の周波数を前記第１周波数よりも低い第２周波数とするクロック制御手段と、
を有することを特徴とするバス制御装置。
【請求項２】
前記クロック制御手段は、
基準クロック信号から、互いに異なる周波数の複数のクロック信号を生成する複数の分周手段と、
前記複数のクロック信号のいずれかを、前記調停手段からの周波数情報に基づいて選択する選択手段と、
を有することを特徴とする請求項１に記載のバス制御装置。
【請求項３】
前記選択手段は、前記複数の分周手段から出力される前記複数のクロック信号を入力するマルチプレクサを含み、前記マルチプレクサは、前記調停手段からの周波数情報に基づいて生成された選択信号に応じて、前記複数のクロック信号のいずれかを選択することを特徴とする請求項２に記載のバス制御装置。
【請求項４】
前記調停手段は、前記複数のバスマスタからのアクセス要求が競合する場合、可変型の優先順位方式に従って、アクセス要求を受け付けるバスマスタを決定することを特徴とする請求項１乃至３のいずれか１項に記載のバス制御装置。
【請求項５】
前記調停手段は、前記複数のバスマスタからのアクセス要求が競合する場合、前記アクセス要求の先着順に、アクセス要求を受け付けるバスマスタを決定することを特徴とする請求項１乃至３のいずれか１項に記載のバス制御装置。
【請求項６】
前記調停手段は、前記アクセス要求を受け付けるバスマスタに供給するクロック信号の周波数変更要求と前記周波数情報を前記クロック制御手段に出力することを特徴とする請求項２に記載のバス制御装置。
【請求項７】
前記調停手段は、更に、前記アクセス要求に伴う処理が終了したバスマスタに供給するクロック信号の周波数を、前記第１周波数から前記第２周波数に低下させるように前記クロック制御手段を制御することを特徴とする請求項１乃至６のいずれか１項に記載のバス制御装置。
【請求項８】
前記調停手段は、更に、前記アクセス要求に伴うデータ転送で転送されるデータ量が所定値以下の場合は、前記クロック制御手段が、前記調停手段によってアクセス要求が受け付けられた第１バスマスタに供給するクロック信号の周波数を変更しないように制御することを特徴とする請求項１に記載のバス制御装置。
【請求項９】
前記データ量は、前記データ転送で転送されるデータのバースト長であることを特徴とする請求項８に記載のバス制御装置。
【請求項１０】
前記クロック制御手段は、更に、前記第１バスマスタから転送されたデータを受け取るバススレーブに供給するクロック信号の周波数を前記第１周波数とすることを特徴とする請求項１乃至９のいずれか１項に記載のバス制御装置。
【請求項１１】
前記調停手段は、更に、前記アクセス要求に伴うデータ転送が終了すると、前記バススレーブに供給するクロック信号の周波数を前記第１周波数から前記第２周波数に低下させるように前記クロック制御手段を制御することを特徴とする請求項１０に記載のバス制御装置。
【請求項１２】
前記クロック制御手段は更に、前記基準クロック信号の位相に同期したクロック信号を生成するＰＬＬ同期制御手段を有することを特徴とする請求項２に記載のバス制御装置。
【請求項１３】
アクセス要求を出力する複数のバスマスタからのアクセス要求を制御するバス制御装置の制御方法であって、
調停手段が、前記複数のバスマスタからのアクセス要求を調停して、バスマスタからのアクセス要求を受け付ける調停工程と、
クロック制御手段が、前記調停工程でアクセス要求が受け付けられた第１バスマスタに供給するクロック信号の周波数を第１周波数とし、前記複数のバスマスタの内、前記第１バスマスタ以外のバスマスタに供給するクロック信号の周波数を前記第１周波数よりも低い第２周波数とするクロック制御工程と、
を有することを特徴とするバス制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス制御装置とその制御方法に関するものである。
【背景技術】
【０００２】
半導体集積回路の省電力制御において、動作していない部分へのクロック信号の供給を遮断するクロックゲーティング手法は、回路全体の消費電力を低減する手法として広く利用されている。例えば特許文献１には、このクロックゲーティング手法をバス制御装置に採用し、バスの使用状況に応じて装置の低電力化を図る技術が提案されている。これによれば、バス調停回路において、複数のバスマスタから同一のバススレーブに対するアクセス要求の競合状態を検出して、バス権を獲得できなかったバスマスタに対応するバス調停回路内の要求保持回路へクロック信号の供給を停止している。これにより、バスマスタが待ち状態や転送要求を発行していないときは、バス調停回路内のバスマスタに対応する転送回路の消費電力を低減させることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１８５３７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、動作していない部分へのクロック信号の供給を停止すると、例えば、クロック信号が供給されていない回路内のレジスタに対してＣＰＵからアクセス要求が発生した場合、そのアクセス要求に対する応答信号等を発行できない。このため、ＣＰＵはアクセス要求に対する応答信号が受信できないため待ち状態となり、動作がハングアップしてしまう。このような場合は、動作しているＯＳやソフトウェアでの制御が不能になり、装置の電源を遮断したり、或いはリセット操作をしないと復帰できないという課題がある。
【０００５】
本発明の目的は、上記従来技術の課題を解決することにある。
【０００６】
本発明の目的は、動作していない箇所の消費電力を低下させるとともに、装置のハングアップを防止できる技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明の一態様に係るバス制御装置は以下のような構成を備える。即ち、
アクセス要求を出力する複数のバスマスタと、
前記複数のバスマスタからのアクセス要求を調停して、バスマスタからのアクセス要求を受け付ける調停手段と、
前記調停手段によってアクセス要求が受け付けられた第１バスマスタに供給するクロック信号の周波数を第１周波数とし、前記複数のバスマスタの内、前記第１バスマスタ以外のバスマスタに供給するクロック信号の周波数を前記第１周波数よりも低い第２周波数とするクロック制御手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、データ転送を行わないバスマスタへ供給するクロックの周波数を低下させ、データ転送を行うバスマスタへ供給するクロックの周波数を、より高い周波数とする。これにより、消費電力を低減しながら、動作のハングアップを防止できるという効果がある。
【０００９】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１０】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態１に係るバス制御装置の構成を説明するブロック図。
【図２】実施形態１に係るクロック制御部の構成を説明するブロック図。
【図３】実施形態１に係る周波数変更制御部のそれぞれのＬＵＴに格納されるクロック周波数選択テーブルを説明する図。
【図４】実施形態１に係るバス制御装置が、リセット直後に行う、バスマスタ及びススレーブの動作クロック信号の周波数の初期設定の制御を説明するフローチャート。
【図５】実施形態１に係るバス調停部とクロック制御部による制御処理を説明するフローチャート。
【図６】実施形態１に係るバス調停部とクロック制御部、及びバスマスタの動作例を説明するタイミングチャート。
【図７】実施形態１に係るバス制御装置において、ＣＰＵからバスマスタに対してレジスタアクセスする際の、レジスタアクセスバスのタイミングチャートの一例を示す図。
【図８】実施形態２に係るバス調停部とクロック制御部による制御処理を説明するフローチャート。
【図９】実施形態２に係るバス調停部とクロック制御部、及びバスマスタの動作例を説明するタイミングチャート。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１２】
［実施形態１］
図１は、本発明の実施形態１に係るバス制御装置１００の構成を説明するブロック図である。
【００１３】
このバス制御装置１００は、ＣＰＵ１０１、バスマスタ１０２〜１０４、バス調停部１０５、バススレーブ１０６、基準クロック生成部１０７及びクロック制御部１０８を有している。バスマスタ１０２〜１０４は、バス上のデータの転送制御を行うモジュールであり、それぞれバス調停部１０５とバス接続され、バス調停部１０５での調停の結果、バスの使用権を得ると、ターゲットとなるバススレーブ１０６に対してデータ転送を行う。
【００１４】
バス調停部１０５は、バスに対する使用要求の競合を調整するモジュールであり、バスマスタ１０２〜１０４、バススレーブ１０６とバスを介して接続されている。ここでは、所定の調停方式（優先順位、先着順位など）に従って、バスの使用権をバスマスタ１０２〜１０４のいずれかに与えて、バススレーブ１０６へのデータ転送を許可する。バススレーブ１０６は、バス上のデータ転送制御を行うモジュールであり、バス調停部１０５とバスを介して接続され、バス調停部１０５での調停の結果、バスの使用権を得たバスマスタから転送されるデータを受け取る。
【００１５】
ＣＰＵ１０１は、予め定められた命令セットに従って処理を実行するデータ処理ユニットであり、バスマスタ１０２〜１０４、バス調停部１０５、バススレーブ１０６、クロック制御部１０８とレジスタアクセスバス１１０を介して接続されている。ＣＰＵ１０１は、このレジスタアクセスバス１１０を介して、接続される各モジュールのレジスタに対して命令をセットすることにより、各モジュールの動作を制御する。
【００１６】
基準クロック生成部１０７は、水晶発振子や、出力信号の周波数を任意の値に変更可能な水晶発振器等を有し、このバス制御装置１００で使用されるクロック信号の基準となる基準クロック信号を生成する。基準クロック生成部１０７で生成された基準クロック信号はクロック制御部１０８へ供給される。クロック制御部１０８は、バス調停部１０５から供給される周波数変更要求１〜４、及び周波数情報１〜４と、基準クロック生成部１０７から供給される基準クロック信号よりクロック信号１〜４を生成する。クロック制御部１０８の動作の詳細は後述する。
【００１７】
図１において、バス制御装置１００が有するバスマスタとバススレーブとして、説明の簡略化のためバスマスタの数は３、バススレーブの数は１として示したが、それ以外のバスマスタの数、バススレーブの数であっても構わない。
【００１８】
図２は、実施形態１に係るクロック制御部１０８の構成を説明するブロック図である。
【００１９】
このクロック制御部１０８は、４つのクロック制御モジュール部２１０，２２０，２３０，２４０を含んでいる。実施形態１では、制御するクロック信号は４本であるため、クロック制御モジュール部の数は４であり、クロック制御モジュール部２１０，２２０，２３０，２４０のそれぞれの内部構成は同じである。
【００２０】
ＰＬＬ同期制御部２１１，２２１，２３１，２４１はそれぞれ、図示しない位相比較器、ループフィルタ、電圧制御発振器などを含み、基準クロック生成部１０７より入力された基準クロック信号の位相に同期したクロック信号を生成する。分周器２１２〜２１５，２２２〜２２５，２３２〜２３５，２４２〜２４５はそれぞれ、各対応するＰＬＬ同期制御部２１１，２２１，２３１，２４１から供給されるクロック信号の周波数を整数分の１に低下させる（分周する）。これら分周器は、ＣＰＵ１０１から設定される、任意の整数値（分周値）に応じてクロック信号の周波数を分周するプログラマブル分周器である。実施形態１では、分周器２１２，２２２，２３２，２４２には分周値として「２」が設定されているため、これら分周器２１２，２２２，２３２，２４２からは、基準クロック信号の周波数の１／２の周波数のクロック信号が出力される。また分周器２１３，２２３，２３３，２４３には分周値として「４」が設定されているため、分周器２１３，２２３，２３３，２４３からは基準クロック信号の周波数の１／４の周波数のクロック信号が出力される。また分周器２１４，２２４，２３４，２４４には分周値として「１０」が設定されているため、分周器２１４，２２４，２３４，２４４からは基準クロック信号の周波数の１／１０の周波数のクロック信号が出力される。更に、分周器２１５，２２５，２３５，２４５には分周値として「２０」が設定されているため、これら分周器２１５，２２５，２３５，２４５からは基準クロック信号の周波数の１／２０の周波数のクロック信号が出力される。図２におけるクロック制御モジュール部２１０，２２０，２３０，２４０には、それぞれ４個の分周器２１２〜２１５，２２２〜２２５，２３２〜２３５，２４２〜２４５が設けられている。
【００２１】
ＭＵＸ２１６，２２６，２３６，２４６はそれぞれ、５入力１出力のマルチプレクサで、入力信号として、対応するＰＬＬ同期制御部２１１，２２１，２３１，２４１のいずれか、及び４個の分周器により生成されるクロック信号が入力される。即ち、ＭＵＸ２１６，２２６，２３６，２４６のそれぞれには、対応するＰＬＬ同期制御部と分周器から供給される、互いに周波数が異なる５本のクロック信号が入力される。ＭＵＸ２１６，２２６，２３６，２４６の選択信号として、各対応する周波数変更制御部２１７，２２７，２３７，２４７から供給される選択信号２１８，２２８，２３８，２４８が入力される。そして、この選択信号の値に従って、５本のクロック信号の中から選択されたクロック信号が、それぞれクロック信号１〜４として出力される。
【００２２】
ここで例えば、周波数変更制御部２１７は、バス調停部１０５から供給される周波数変更要求１と周波数情報１に基づいて、ＭＵＸ２１６へ選択信号２１８を出力する。周波数変更制御部２１７は、内部に図示しないＬＵＴを有し、そのＬＵＴに、予め作成された周波数選択テーブルが格納されている。そして周波数変更要求１を受け取ると、周波数情報１に対応する、周波数選択テーブルのアドレスを参照して、そのアドレスに格納されている値を選択信号２１８としてＭＵＸ２１６に出力する。他の周波数変更制御部２２７，２３７，２４７の動作も、周波数変更要求と周波数情報、及びＭＵＸが異なるだけで、基本的には同様の動作を実行する。
【００２３】
図３は、実施形態１に係る周波数変更制御部２１７，２２７，２３７，２４７のそれぞれのＬＵＴに格納される周波数選択テーブルのデータ例を説明する図である。
【００２４】
ここでは周波数情報として「２００」が入力された場合は、周波数変更制御部は選択信号として「１」を出力する。また周波数情報として「１００」が入力された場合は、周波数変更制御部は選択信号として「２」を出力する。同様に、周波数情報として「５０」が入力された場合は選択信号として「３」を出力する。更に、周波数情報として「２０」が入力された場合は選択信号として「４」を、周波数情報として「１０」が入力された場合は選択信号として「５」を出力する。
【００２５】
周波数変更制御部２１７，２２７，２３７，２４７はそれぞれ選択信号を出力し、周波数が変更されたクロック信号１〜４の位相が、基準クロック信号の位相と同期した後に、周波数変更応答１〜４をバス調停部１０５へ出力する。周波数が変更されたクロック信号１〜４の位相が、基準クロック信号の位相に同期するまでの時間は、各対応するＰＬＬ同期制御部２１１，２２１，２３１，２４１によるループフィルタの時定数によって決定される。
【００２６】
よって、周波数変更要求１〜４が発行されてから、ループフィルタの時定数と、周波数変更量を加味した予め決められた時間が経過したタイミングで、周波数変更応答１〜４がバス調停部１０５に返される。
【００２７】
次に実施形態１の特徴である、バスの使用状況に応じて、バスマスタ、バススレーブの動作クロック信号の周波数を変更する制御について説明する。
【００２８】
図４は、実施形態１に係るバス制御装置１００が、リセット直後に行う、バスマスタ１０２〜１０４及びススレーブ１０６の動作クロック信号の周波数の初期設定の制御を説明するフローチャートである。
【００２９】
初めにＳ４０１において、バス制御装置１００の全体にかかるリセット信号が解除されるのを待つ。Ｓ４０２で、リセット信号が解除されるのを待ち、リセット信号が解除されるとＳ４０３へ進むが、リセットが解除されていない場合はＳ４０１へ進む。尚、このリセット信号は、バス制御装置１００の基準クロック生成部１０７を除く全てのモジュールに対して入力される。従って、リセット信号がかかっている状態でも基準クロック生成部１０７からは、基準クロック信号が出力され続けている。尚、バス制御装置１００へリセット信号が出力されてから所定時間が経過すると、リセット信号は解除される。Ｓ４０３でバス調停部１０５は、全てのバスマスタ、バススレーブの動作クロック信号の周波数を、データ転送時の周波数よりも低くなるように設定する。
【００３０】
リセット信号が解除されると、基準クロック信号が次に立ち上がるタイミングで、周波数変更制御部２１７，２２７，２３７，２４７のそれぞれより、予め決められた値の各選択信号２１８，２２８，２３８，２４８が、各対応するＭＵＸに出力される。この選択信号により、クロック制御部１０８からバスマスタ１０２〜１０４、バススレーブ１０６へ供給される動作クロック信号であるクロック信号１〜４の周波数が決定され、Ｓ４０３では、データ転送時の周波数よりも低くなるように設定される。
【００３１】
例えば実施形態１では、説明の簡略化のために、データ転送時のクロック信号１〜４の周波数を２００ＭＨｚとし、基準クロック生成部１０７より供給される基準クロック信号の周波数も同様に、２００ＭＨｚである場合を例に説明する。
【００３２】
実施形態１において、例えば、クロック制御モジュール部２１０を例に説明する。分周器２１２、分周器２１３、分周器２１４、分周器２１５には、上述したように、分周値としてそれぞれ「２」、「４」、「１０」、「２０」が設定されている。このとき、これら分周器２１２，２１３，２１５，２１５から出力されるクロック信号の周波数は、それぞれ１００ＭＨｚ、５０ＭＨｚ、２０ＭＨｚ、１０ＭＨｚとなる。そして、この初期状態時に出力される選択信号２１８が「２」とすると、ＭＵＸ２１６の、この選択信号２１８の値に対応する入力端子（２）に接続されている分周器２１２から供給されているクロック信号が選択されてクロック信号１として出力される。これによりクロック信号１の周波数は、データ転送時の周波数である２００ＭＨｚよりも低い周波数である１００ＭＨｚとなる。これは他のクロック制御モジュール部２２０，２３０，２４０の場合も同様に動作する。
【００３３】
図５は、実施形態１に係るバス調停部１０５とクロック制御部１０８による制御処理を説明するフローチャートである。ここでは、データ転送する際の、バスマスタ１０２〜１０４及びバススレーブ１０６の動作クロック信号の周波数の変更制御に関わる処理を示している。尚、データ転送を行うジョブは、バスマスタ１０２，１０３，１０４より、それぞれ３サイクル、２サイクル、３サイクル分のデータがバス上に転送される場合を例に説明する。
【００３４】
先ずＳ５０１，Ｓ５０２でバス調停部１０５は、バスマスタ１０２〜１０４のいずれかからデータの転送を要求する要求信号が発行されるのを待つ。Ｓ５０２で要求信号が発行されたと判定した場合はＳ５０３へ進む。ここではＣＰＵ１０１が、バスを使用してデータ転送を行うジョブを実行すると、ＣＰＵ１０１より、ジョブで使用するバスマスタ１０２〜１０４に対して、データ転送に必要な転送先のアドレス情報や転送サイズ情報などに関するレジスタ設定が行われる。これにより、そのバスマスタからバス調停部１０５に対して、バスの使用権を求めるために転送要求信号をオンにする。
【００３５】
Ｓ５０３でバス調停部１０５は、バスマスタ１０２〜１０４のうち複数のバスマスタから、同一バススレーブへの転送要求が発生して競合しているか否かを判定する。ここで転送要求が競合していると判定した場合はＳ５０５へ進み、そうでないときはＳ５０６へ進む。
【００３６】
尚、ここで、複数のバスマスタが同一のバススレーブに対してデータ転送要求を発行して転送要求が競合している状態は、ここではバススレーブ１０６の数は１であるため、複数のバススレーブ１０２〜１０４からの転送要求信号が全てオンになっていることを意味する。
【００３７】
図６は、実施形態１に係るバス調停部１０５とクロック制御部１０８、及びバスマスタ１０２〜１０４の動作例を説明するタイミングチャートである。
【００３８】
例えばタイミングＴ１では、バスマスタ１０２からの転送要求信号１、バスマスタ１０３からの転送要求信号２、バスマスタ１０４からの転送要求信号３の全てがオンとなって、３つのバスマスタからの転送要求信号が発行されている。
【００３９】
以下、図６のタイミングチャートを参照しながら図５のフローチャートを説明する。
【００４０】
図６のタイミングＴ１では、バスマスタ１０２〜１０４からの転送要求信号１〜３の全てが出力されている（転送要求が競合している）ため、Ｓ５０４の条件分岐では、転送要求が競合していると判定してＳ５０５に処理を進める。Ｓ５０５でバス調停部１０５は、所定の調停方式に従って、バスの使用権の調停を行う。このバスの調停方式には、先着順位方式、優先順位方式（固定型、可変型）など複数あり、実施形態１に係るバス制御装置１００の特性や目的に合わせて、適切な調停方式が採用される。ここでは、可変型の優先順位方式を採用し、全てのバスマスタに対して順番に優先順位を割り当て、バスの使用権を獲得したバスマスタは、次は、一番低い優先順位へと割り当てる、ラウンドロビン方式を例に説明する。
【００４１】
タイミングＴ１において、バスマスタ１０２〜１０４からの転送要求が競合している際の優先順位は１＞２＞３となっている。従って、バスマスタ１０２の優先順位が「１」、バスマスタ１０３の優先順位は「２」、バスマスタ１０３の優先順位は「３」である。このように、優先順位情報の「１＞２＞３」は、バスマスタ１０２＞バスマスタ１０３＞バスマスタ１０４の順に優先順位が高くなっていることを示している。
【００４２】
従って、タイミングＴ１において、転送要求信号１〜３がオンであるバスマスタ１０２〜１０４のうち、優先順位が一番高いのはバスマスタ１０２である。従って、バス調停部１０５はＳ５０７で、バスの使用権を与えるバスマスタとしてバスマスタ１０２を選定してＳ５０８に処理を進める。
【００４３】
Ｓ５０８でバス調停部１０５は、バスの使用権が与えられたバスマスタ１０２とバススレーブ１０６のクロック信号の周波数を高く（実施形態１では、２００ＭＨｚ）設定する。図６の例では、タイミングＴ１でバス調停部１０５は、バスの使用権を与えるバスマスタとしてバスマスタ１０２を選定すると、クロック制御部１０８に対して、バスマスタ１０２に対する周波数変更要求１をオンにする。また、これと同時に、変更する周波数の情報を示す周波数情報１を送信する。
【００４４】
この実施形態１では、データ転送がされていない時のクロック信号１〜４の周波数は全て１００ＭＨｚとし、データ転送する時のクロック信号１〜４の周波数は２００ＭＨｚとする。よって、図６のタイミングＴ１では、周波数情報１として、２００ＭＨｚに対応する「２００」が送信される。
【００４５】
こうして周波数変更要求１がオンになると、クロック制御部１０８の周波数変更制御部２１７は、周波数情報１（ここでは「２００」）に対応する周波数選択テーブルを参照して、選択信号２１８として「１」を出力する。この選択信号「１」がＭＵＸ２１６に供給されるとＭＵＸ２１６は、ＭＵＸ２１６の入力端子（１）に入力されているＰＬＬ同期制御部２１１から供給されるクロック信号を選択し、クロック信号１として出力する。ここでＰＬＬ同期制御部２１１から供給されているクロック信号の周波数は２００ＭＨｚであるため、クロック信号１の周波数は２００ＭＨｚとなる。
【００４６】
こうしてクロック信号１の周波数を変更した後、周波数変更制御部２１７は、変更後のクロック信号１の位相が基準クロック信号と同期したタイミングで、バス調停部１０５に対して周波数変更応答１をオンにする（図６のタイミングＴ２）。こうしてバス調停部１０５は、クロック制御部１０８の周波数変更制御部２１７よりの周波数変更応答１がオンになっているのを確認すると、バスマスタ１０２に対する転送許可信号１をオンにする（図６のタイミングＴ３）。これにより、周波数が２００ＭＨｚのクロック信号１に同期して、バスマスタ１０２からバス調停部１０５を介してバススレーブ１０６へデータが転送される。
【００４７】
上記のバスマスタ１０２の動作クロック信号であるクロック信号１の周波数を変更する際にバス調停部１０５は、同時に、バススレーブ１０６の動作クロック信号であるクロック信号４の周波数も変更するよう制御する。尚、このクロック信号４の周波数を変更する処理は、クロック制御部１０８のクロック制御モジュール部２４０で行われるが、その処理はクロック制御モジュール部２１０の場合と同様であり、そのタイミングも同じであるため、その説明を割愛する。
【００４８】
こうしてＳ５０９に進み、バスの使用権が与えられたバスマスタ１０２からバススレーブ１０６へのデータ転送が実行される。図６に示す例では、転送許可信号１がオンになってから、クロック信号１の３サイクル分のデータ転送がデータ信号１で示すように、バスマスタ１０２よりバススレーブ１０６に対して実行される。
【００４９】
そして、このデータ転送が終了するとＳ５１０に進みバス調停部１０５は、バスの使用権が与えられたバスマスタ１０２とバススレーブ１０６の動作クロック信号の周波数を元に戻す。
【００５０】
実施形態１では、バスを使用してデータ転送を行う際のプロトコルとして、バスマスタ１０２から転送される最後のデータがデータ信号１として転送されるタイミングで、終了信号１がオンになる。こうしてバスマスタ１０２よりの終了信号１がオンになると、バス調停部１０５は、図６のタイミングＴ４で、周波数変更要求１をオンに、周波数情報１として「１００」をクロック制御部１０８へ送信する。これによりクロック制御部１０８の周波数変更制御部２１７は、周波数情報１に対応するクロック周波数選択テーブルを参照して選択信号を出力する。即ち、図３に示す周波数選択テーブルがＬＵＴに設定されている場合には、周波数情報１として「１００」が入力されると、選択信号として「２」が選択されてＭＵＸ２１６の選択信号２１８として供給される。これによりＭＵＸ２１６は、選択信号２１８として「２」が入力されるため、ＭＵＸ２１６の入力端子（２）に入力されている分周器２１２から供給されるクロック信号を選択し、クロック信号１として出力する。このとき分周器２１２から供給されるクロック信号の周波数は１００ＭＨｚであるため、クロック信号１の周波数は２００ＭＨｚから１００ＭＨｚに変更される。
【００５１】
こうしてクロック信号１の周波数を変更した後、周波数変更制御部２１７は、変更後のクロック信号１の位相が、基準クロック信号と同期したタイミングで、バス調停部１０５に対して周波数変更応答１をオンにする（図６のタイミングＴ５）。そしてＳ５１１に進みバス調停部１０５は、転送要求を発行した全てのバスマスタによるデータ転送が終了したか否かを判定し、終了している場合は、この処理を終了するが、そうでないときはＳ５０１へ進む。
【００５２】
バスマスタ１０２からのデータ転送が終了した後、図６のタイミングＴ６では、バスマスタ１０３とバスマスタ１０４からの転送要求信号２と転送要求信号３とがオンになっている。よってＳ５０４では、転送要求が競合していると判定してＳ５０５へ進む。Ｓ５０５でバス調停部１０５は、前述した調停方式に従ってバスの使用権の調停を行う。ここでは、タイミングＴ６で優先順位は、２＞３＞１となっている。つまりタイミングＴ６では、転送要求信号２〜３をオンにしているバスマスタ１０３，１０４のうち、優先順位が高いのはバスマスタ１０３である。従って、バス調停部１０５はＳ５０７で、バスの使用権を与えるバスマスタとしてバスマスタ１０３を選定する。そしてＳ５０８に進み、バスの使用権が与えられたバスマスタ１０３とバススレーブ１０６の動作クロック信号の周波数を高く設定する。
【００５３】
即ち、タイミングＴ６では、クロック制御部１０８に対して、バスマスタ１０３に対する周波数変更要求２をオンにし、周波数変更要求２として「２００」を発行する。これによりクロック制御部１０８の周波数変更制御部２２７は、周波数情報２に対応する周波数選択テーブル（図３）を参照して選択信号２２８を出力する。ここでは、図３に示す周波数選択テーブルがＬＵＴに設定されているため、周波数情報２が「２００」のときは選択信号として「１」が選択され、ＭＵＸ２２６に選択信号２２８として供給される。これによりＭＵＸ２２６は、選択信号「１」に対応するＭＵＸ２２６の入力端子（１）に入力されているＰＬＬ同期制御部２２１から供給されるクロック信号を選択し、クロック信号２として出力する。このときＰＬＬ同期制御部２２１から供給されているクロック信号の周波数は２００ＭＨｚであるため、クロック信号２の周波数は２００ＭＨｚに変更される。こうしてクロック信号２の周波数を変更した後、周波数変更制御部２２７は、変更後のクロック信号２の位相が、基準クロック信号と同期したタイミングで、バス調停部１０５に対し、周波数変更応答２をオンにする（図６のタイミングＴ７）。こうしてバス調停部１０５は、クロック制御部１０８の周波数変更制御部２２７より周波数変更応答２がオンであることを確認すると、バスマスタ１０３に対する転送許可信号２をオンにする（図６のタイミングＴ８）。これによりＳ５０９で、バスの使用権が与えられたバスマスタ１０３からバススレーブ１０６へのデータ転送が実行される。
【００５４】
図６に示す例では、転送許可信号２がオンになってから、クロック信号１の２サイクル分の転送データが、データ信号２としてバスマスタ１０３よりバススレーブ１０６に転送される。そしてデータ転送が終了するとＳ５１０に進みバス調停部１０５は、バスの使用権が与えられたバスマスタ１０３とバススレーブ１０６の動作クロック信号の周波数を元に戻す。ここではバスマスタ１０２よりの終了信号２がオンになると、バス調停部１０５は、図６のタイミングＴ９において、周波数変更要求２をオンに、周波数情報２を「１００」にしてクロック制御部１０８へ送信する。こうして周波数変更要求２がオンになると、クロック制御部１０８の周波数変更制御部２２７は、周波数情報１に対応する周波数選択テーブルを参照して選択信号２２８をＭＵＸ２２６に出力する。図３に示す周波数選択テーブルがＬＵＴに設定されている場合には、周波数情報２として「１００」が入力されると選択信号として「２」が選択され、これが選択信号２２８としてＭＵＸ２２６に供給される。ＭＵＸ２２６は、この選択信号２２８を受け取ると、ＭＵＸ２２６の入力端子（２）に入力されている分周器２２２から供給されるクロック信号を選択し、ＭＵＸ２２６の出力信号であるクロック信号２として出力する。このとき分周器２２２から供給されているクロック信号の周波数は１００ＭＨｚであるため、クロック信号２の周波数は２００ＭＨｚから１００ＭＨｚに変更される。こうしてクロック信号２の周波数を変更した後、周波数変更制御部２２７は、変更後のクロック信号２の位相が、基準クロック信号と同期したタイミングで、バス調停部１０５に対する周波数変更応答２をオンにする（図６のタイミングＴ１０）。
【００５５】
こうしてバスマスタ１０３からのデータ転送が終了した後、図６のタイミングＴ１１では、バスマスタ１０４から転送要求信号３のみがオンになっている。よってＳ５０４の条件分岐では、転送要求が競合していないと判定してＳ５０６へ進む。Ｓ５０６では、バススレーブ１０６へデータの転送要求を行っているのはバスマスタ１０４のみで、転送要求の競合は発生していないため、バスの使用権を与えるバスマスタとしてバスマスタ１０４を選定する。そしてＳ５０８に進みバス調停部１０５は、バスの使用権が与えられたバスマスタ１０４とバススレーブ１０６の動作クロック信号の周波数を高く設定する。
【００５６】
図６のタイミングＴ１１において、クロック制御部１０８に対して、バスマスタ１０４に対する周波数変更要求３をオンにし、周波数変更要求２を「２００」にする。こうして周波数変更要求３がオンになると、クロック制御部１０８の周波数変更制御部２３７は、周波数情報３に対応する周波数選択テーブルを参照して選択信号２３８を出力する。ここでは周波数情報３として「２００」が入力されると、選択信号として「１」が選択され、選択信号「１」がＭＵＸ２３６に供給される。これによりＭＵＸ２３６は、選択信号「１」に応じてＭＵＸ２３６の入力端子（１）に入力されているＰＬＬ同期制御部２３１から供給されるクロック信号を選択し、クロック信号３として出力する。ここでＰＬＬ同期制御部２３１から供給されるクロック信号の周波数は２００ＭＨｚであるため、クロック信号３の周波数は１００ＭＨｚから２００ＭＨｚへ変更される。こうしてクロック信号３の周波数を変更した後、周波数変更制御部２３７は、変更後のクロック信号３の位相が、基準クロック信号と同期したタイミングで、バス調停部１０５に対して周波数変更応答３をオンにする（図６のタイミングＴ１２）。これによりバス調停部１０５は、クロック制御部１０８の周波数変更制御部２３７からの周波数変更応答３がオンになっていることを確認すると、バスマスタ１０４に対する転送許可信号３をオンにする（図６のタイミングＴ１３）。
【００５７】
こうしてＳ５０９で、バスの使用権が与えられたバスマスタ１０４からバススレーブ１０６へのデータ転送が実行される。図６に示す例では、転送許可信号３がオンになってから、クロック信号３の３サイクル分のデータがデータ信号３としてバスマスタ１０４より転送される。こうしてデータ転送が終了すると、Ｓ５１０でバス調停部１０５は、バスの使用権が与えられたバスマスタ１０４とバススレーブ１０６の動作クロック信号の周波数を元に戻す。そして、バスマスタ１０４よりの終了信号３がオンになるとバス調停部１０５は、図６のタイミングＴ１４で、周波数変更要求３をオンにし、周波数情報３を「１００」にしてクロック制御部１０８へ送信する。これによりクロック制御部１０８の周波数変更制御部２３７は、周波数情報３に対応する周波数選択テーブルを参照して選択信号２３８をＭＵＸ２３６に出力する。ここでは周波数情報１である「１００」に対応する選択信号「２」を取得し、これが選択信号２３８としてＭＵＸ２３６に供給される。これによりＭＵＸ２３６は、選択信号「２」に対応する入力端子（２）に入力されている分周器２３２から供給されるクロック信号を選択し、ＭＵＸ２３６からのクロック信号３として出力する。このとき分周器２３２から供給されるクロック信号の周波数は１００ＭＨｚであるため、クロック信号３の周波数は２００ＭＨｚから１００ＭＨｚに変更される。
【００５８】
こうしてクロック信号３の周波数を変更した後、周波数変更制御部２３７は、変更後のクロック信号３の位相が、基準クロック信号と同期したタイミングで、バス調停部１０５に対する周波数変更応答３をオンにする（図６のタイミングＴ１５）。そしてバスマスタ１０４からのデータ転送が終了した後、Ｓ５１２の条件分岐において、転送要求を発行した全てのバスマスタによるデータ転送が終了しているため、この処理を終了する。
【００５９】
以上に説明したように実施形態１によれば、バスを介したデータ転送を行う場合は、バスマスタへ供給するクロック信号の周波数を、例えば２００ＭＨｚのように高くし、そのバスマスタ以外のクロック信号の周波数を低くする。これにより、データ転送を実施していない箇所の消費電力を抑えることができるとともに、その消費電力を抑えた箇所に対して、何らかの要求が発行された場合でも、それに対する応答を返すことができる。これにより、ハングアップの発生を防止できる。
【００６０】
ここでバス制御装置１００において、データ転送中に発生するダイナミック消費電力Ｐは、回路の負荷容量をＣ、電源電圧をＶｄｄ、クロック信号の周波数をＦとすると、以下の式１で表せる。
【００６１】
Ｐ＝Ｃ×（Ｖｄｄの２乗）×Ｆ      …（式１）
この式１から明らかなように、ダイナミック消費電力は、クロック信号の周波数に比例する。実施形態１では、データ転送を実行しない箇所のクロック信号の周波数を、例えばデータ転送時の周波数の１／２にすることにより、データ転送を実行しないときのダイナミック消費電力を、データ転送時の約１／２に低減することができる。
【００６２】
尚、実施形態１では、説明の便宜上、データ転送を行う際のバスマスタのクロック信号の周波数を、データ転送を実施しない場合の２倍にする例で説明した。しかしながら、データ転送が行われない際のクロック信号の周波数を、より低くすることにより、よりダイナミック消費電力を削減できることが予想される。例えば、データ転送が実施されていないバスマスタで実行される処理は、データ転送の進捗状況を確認するためのＣＰＵからのレジスタアクセスに対する応答等が考えられる。この場合、ＣＰＵが、応答を受信しないためにハングアップすることがない程度の周波数のクロック信号を供給すれば良い。従って、データ転送時以外のクロック信号の周波数は、もっと低くすることができる。これにより、データ転送時以外のダイナミック消費電力は、もっと低減できると考えられる。
【００６３】
図７は、実施形態１に係るバス制御装置１００において、ＣＰＵ１０１からバスマスタ１０２〜１０４に対してレジスタアクセスする際の、レジスタアクセスバスのタイミングチャートの一例を示す図である。ここでは、タイミングＴ１において、クロック信号の周波数を、前述したように、１／２まで低下している例を示している。
【００６４】
図７に示すように、タイミングＴ１以降は、クロック信号は周波数が低下しているが供給され続けているため、ＣＰＵ１０１が発行したレジスタアクセス要求に対するス応答信号を発行することができる。よって、ＣＰＵ１０１からのレジスタアクセスが発生した場合にも、それに対する応答を返せるため、前述したようなハングアップの発生を防止することができる。
【００６５】
［実施形態２］
上述の実施形態１では、バスを介したデータ転送時のみ、バスの使用権を獲得したバスマスタ１０２〜１０４のクロック信号１〜３の周波数を、データ転送に必要な周波数まで高くする制御について説明した。これに対して本発明の実施形態２では、バスの使用権を獲得したバスマスタからのデータ転送でのデータの転送量を参照し、その転送量が所定の値よりも大きい場合のみ、対応するクロック信号の周波数を、データ転送に必要な周波数まで上げるように制御する。
【００６６】
これは、転送するデータ量が少ない場合には、クロック信号の周波数の変更に要する処理時間を考慮すると、クロック信号の周波数が低いままでも、データ転送を速く終了できる場合があるためである。よって、転送するデータ量が少ない場合は、クロック信号１〜３の周波数を、より高い周波数に変更することなく、そのままの周波数でデータ転送する例で説明する。
【００６７】
図８は、実施形態２に係るバス調停部１０５とクロック制御部１０８による制御処理を説明するフローチャートである。尚、図８に示す実施形態２のフローチャートは、前述の実施形態１に係る図５のフローチャートとほぼ同じであるため、それとの差分を中心に説明する。
【００６８】
尚、ここでは、データの転送量を表す情報として、バースト長を例に説明する。このデータの転送量を表す情報としては、他にもビート長、バイト数や、複数サイクル分の転送を期待するような転送種別信号などが考えられる。
【００６９】
以下、図８に示すフローチャートを説明するにあたり、データ転送を行うジョブは、
バスマスタより、それぞれ１，２，３のバースト長分のデータがバス上に転送される場合を例に説明する。そして、図８のＳ８０１〜Ｓ８０７までの処理は、前述の実施形態１の図５のＳ５０１〜Ｓ５０７の処理と同じであるため、その説明を割愛する。
【００７０】
Ｓ８０８でバス調停部１０５は、バスの使用権が与えたバスマスタからのデータ転送における、データのバースト長を取得し、Ｓ８０９で、そのバースト長が所定値よりも大きいか否かを判定する。この実施形態２では、Ｓ８０８における所定値が「１」の場合を例にして説明する。
【００７１】
図９は、実施形態２に係るバス調停部１０５とクロック制御部１０８、及びバスマスタ１０２〜１０４の動作例を説明するタイミングチャートである。
【００７２】
実施形態２では、バスを使用してデータ転送を行う際のプロトコルとして、転送要求信号１〜４を発行するタイミングと合わせて、データ転送のバースト長の値が、バースト長信号１〜４としてバス調停部１０５へ送信される。
【００７３】
図９のタイミングＴ１において、バス調停部１０５は、バスの使用権が与えられたバスマスタ１０２のバースト長信号１を参照し、バスマスタ１０２のバースト長が「１」であることを確認する。これによりＳ８０９の分岐において、バスマスタ１０２のバースト長である「１」は、予め決められた所定値「１」よりも大きくない、即ち、所定値以下であるため、Ｓ８１０の周波数を高くする処理をスキップしてＳ８１１へ進む。Ｓ８１０からＳ８１１までの処理は、前述の実施形態１における図５のＳ５０８からＳ５０９までの処理と同じであるため、その説明を割愛する。
【００７４】
そしてＳ８１１におけるデータ転送が終了するとＳ８１２に進み、バスの使用権が与えられたバスマスタからの転送のバースト長と、前述の所定値とを比較する。ここでバースト長が所定値よりも大きい場合はＳ８１３に進み、そうでないときはＳ８１４に進む。これにより、最初にバスの使用権が与えられたバスマスタ１０２からのデータ転送では、Ｓ８１３のクロック信号の周波数を元に戻す処理を実行せずにＳ８１４へ進む。Ｓ８１３〜Ｓ８１５までの処理は、実施形態１の図５のＳ５１０〜Ｓ５１２までの処理と同じであるため、説明を割愛する。
【００７５】
こうしてバスマスタ１０２からのデータ転送が終了した後、図９のタイミングＴ２では、バスマスタ１０３とバスマスタ１０４から転送要求信号２、転送要求信号３が共にオンになって競合している。これによりバス調停部１０５での調停の結果、バスマスタ１０３が、バスの使用権を与えられたバスマスタとして選定される（Ｓ８０５、Ｓ８０７）。
【００７６】
図９のタイミングＴ２でバス調停部１０５は、バスの使用権が与えられたバスマスタ１０３のバースト長信号２を参照し、バスマスタ１０３のバースト長が「２」であることを確認する（Ｓ８０８）。そしてＳ８０９の条件分岐において、バスマスタ１０３のバースト長「２」は、予め決められた所定数である「１」よりも大きいためＳ８１０へ進む。Ｓ８１０でバス調停部１０５は、クロック制御部１０８に対して、バスマスタ１０３に対する周波数変更要求２をオンにし、周波数変更要求２として「２００」を発行して、クロック信号２の周波数を高くするように設定を行う。
【００７７】
こうしてＳ８１１でバスマスタ１０３からバススレーブ１０６へのデータ転送が実行され、それが終了すると、Ｓ８１２で、バースト長と所定値とを比較する。ここではバスマスタ１０３のバースト長「２」は、予め決められた所定数である「１」よりも大きいためＳ８１３に進み、バス調停部１０５は、バスの使用権が与えられたバスマスタ１０３とバススレーブ１０６の動作クロック信号の周波数を元に戻す。
【００７８】
次に図９のタイミングＴ３で、バスマスタ１０４から転送要求信号３のみがオンになっている。この場合、転送要求が競合していないため、バス調停部１０５により、バスの使用権を与えられたバスマスタとしてバスマスタ１０４を選定する（Ｓ８０６）。
【００７９】
これにより図９のタイミングＴ３で、バス調停部１０５は、バスの使用権が与えられたバスマスタ１０４についてのバースト長信号３を参照し、バスマスタ１０４のバースト長が「３」であることを確認する（Ｓ８０８）。この場合は、Ｓ８０９の条件分岐において、バスマスタ１０３のバースト長である「３」は、予め決められた所定数である「１」よりも大きいためＳ８１０へ進む。Ｓ８１０でバス調停部１０５は、クロック制御部１０８に対して、バスマスタ１０４に対する周波数変更要求３をオンにし、周波数変更要求３として「２００」を発行して、クロック信号３の周波数を高くするように設定する。こうしてＳ８１１でバスマスタ１０４からバススレーブ１０６へのデータ転送が実行され、それが終了すると、Ｓ８１２で、バースト長と所定値とを比較する。ここではバスマスタ１０４のバースト長「３」は、予め決められた所定数である「１」よりも大きいためＳ８１３に進み、バス調停部１０５は、バスの使用権が与えられたバスマスタ１０４とバススレーブ１０６の動作クロック信号の周波数を元に戻す。そしてＳ８１４に進みバス調停部１０５は、転送要求を発行した全てのバスマスタによるデータ転送が終了していると判定すると、この処理を終了する。
【００８０】
以上に説明したように実施形態２によれば、転送するデータのバースト長が所定値よりも小さい場合は、そのデータ転送を行うバスマスタへ供給するクロック信号の周波数を変更しない。つまり、データ転送量が少なく、クロック信号の周波数の変更をしない方が、データ転送全体に要する時間が短くなる場合には、そのデータ転送に係るバスマスタのクロック信号の周波数を、より高い周波数に変更しないようにする。こうして、全体のデータ転送時間を考慮しながら、データ転送時のダイナミック消費電力を低減できるという効果がある。
【００８１】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８２】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００８３】
１０１…ＣＰＵ、１０２〜１０４…バスマスタ、１０５…バス調停部、１０６…バススレーブ、１０７…基準クロック生成部、１０８…クロック制御部
【図１】
2018072896.tif 000003
【図２】
2018072896.tif 000004
【図３】
2018072896.tif 000005
【図４】
2018072896.tif 000006
【図５】
2018072896.tif 000007
【図６】
2018072896.tif 000008
【図７】
2018072896.tif 000009
【図８】
2018072896.tif 000010
【図９】
2018072896.tif 000011