(57)【要約】【課題】比較的簡単な構成で、処理時間の短縮と省電力効果の向上を図る。【解決手段】情報処理システムは、バス１と、複数のバスマスタ２−０，・・・と、複数のバススレーブ３−０，・・・と、バスマスタ２−０，・・・からバス１を介して複数のバス権要求信号req0,・・・を受信し、このバス権要求信号req0,・・・の競合を調停していずれか１つのバスマスタ２−０，・・・にバス権を付与するバス調停回路２０と、複数のバス権要求信号req0,・・・の数を検出して検出数を出力するバス権検出回路２０と、クロック分周回路３０とを備えている。クロック分周回路３０は、基準クロックclk0を大きさの異なる複数の分周値で分周して大きさの異なる複数の周波数の分周信号を生成し、検出数の大きさに対応した大きさの周波数の前記分周信号を選択して動作クロックclk1を出力する。【選択図】図１
2008059047.tif 000002
【特許請求の範囲】
【請求項１】
データ転送を行うバスと、
前記バスに接続され、アクセスの対象になるバススレーブと、
前記バスに接続され、前記バススレーブに対するアクセス時に前記バスに対してバス権要求信号をそれぞれ出力する複数のバスマスタと、
前記バスに接続され、前記複数のバスマスタから前記バスを介して複数の前記バス権要求信号を受信し、前記複数のバス権要求信号の競合を調停していずれか１つの前記バスマスタにバス権を付与するバス調停回路と、
前記バス調停回路が受信した前記複数のバス権要求信号の数を検出して検出数を出力するバス権検出回路と、
一定周波数の基準クロック信号を大きさの異なる複数の分周値で分周して大きさの異なる複数の周波数の分周信号を出力する複数の分周回路と、前記検出数を入力し、前記検出数の大きさに対応した大きさの周波数の前記分周信号を選択して情報処理システム全体を動作させるための動作クロック信号を出力する選択手段とを有する周波数変更回路と、
を備えたことを特徴とする情報処理システム。
【請求項２】
前記バス権検出回路は、前記複数のバス権要求信号の数を加算して前記検出数を出力するリクエスト検出回路により構成されていることを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記バス権検出回路は、
前記複数のバス権要求信号の数を加算して加算数を出力するリクエスト検出回路と、
前記加算数を入力し、前記加算数が２以上の時にはサイクル数を計数して計数値を求め、前記計数値が所定値未満の場合には前記加算数をそのまま前記検出数として出力し、前記計数値が前記所定値以上の場合には前記加算数に所定数を加算して前記検出数として出力するサイクル検出回路と、
により構成されていることを特徴とする請求項１記載の情報処理システム。
【請求項４】
請求項１〜３のいずれか１項に記載の情報処理システムは、更に、
前記バスマスタの制御により、前記選択手段に入力する前記検出数を変更する検出数変更手段を有することを特徴とする情報処理システム。
【請求項５】
前記検出数変更手段は、前記バスマスタからの書き換え可能なレジスタであることを特徴とする請求項４記載の情報処理システム。
【請求項６】
請求項３〜５のいずれか１項に記載の情報処理システムは、更に、
前記バスマスタの制御により、前記サイクル検出回路における前記所定値を変更する所定値変更手段を有することを特徴とする情報処理システム。
【請求項７】
前記所定値変更手段は、前記バスマスタからの書き換え可能なレジスタであることを特徴とする請求項６記載の情報処理システム。
【請求項８】
データ転送を行うバスと、
前記バスに接続され、アクセスの対象になるバススレーブと、
前記バスに接続され、前記バススレーブに対するアクセス時に前記バスに対してバス権要求信号をそれぞれ出力する複数のバスマスタと、
前記バスに接続され、前記複数のバスマスタから前記バスを介して複数の前記バス権要求信号を受信し、前記複数のバス権要求信号の競合を調停していずれか１つの前記バスマスタにバス権を付与するバス調停回路と、
を有する情報処理システムの制御方法であって、
前記複数のバスマスタから前記複数のバス権要求信号が出力されると、前記複数のバス権要求信号の数を加算して加算数を求め、
前記加算数を入力し、前記加算数が２以上の時にはサイクル数を計数して計数値を求め、前記計数値を所定値と比較して、前記計数値が前記所定値未満の場合には前記加算数をそのまま検出数とし、前記計数値が前記所定値以上の場合には前記加算数に所定数を加算して前記検出数とし、
一定周波数の基準クロック信号を大きさの異なる複数の分周値で分周して大きさの異なる複数の周波数の分周信号を求めておき、前記検出数の大きさに対応した大きさの周波数の前記分周信号を選択して情報処理システム全体を動作させるための動作クロック信号を出力することを特徴とする情報処理システムの制御方法。
【請求項９】
前記検出数は、前記バスマスタの制御により変更することを特徴とする請求項８記載の情報処理システムの制御方法。
【請求項１０】
前記所定値は、前記バスマスタの制御により変更することを特徴とする請求項８又は９記載の情報処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、各種デバイス間でデータ転送を行えるように制御するバス調停回路（バスアービタ）を有する情報処理システム及びこの制御方法、特に、情報処理システムにおける省電力機能に関するものである。
【背景技術】
【０００２】
従来、情報処理システムにおけるハードウェア省電力化方式として、中央処理装置（以下「CPU」という。）上で動作するソフトウェアがシステムの状態に応じて、システムクロック周波数を変更する方式がよく行われている。これに関連する技術としては、例えば、次のような特許文献に記載されるものがあった。
【０００３】
【特許文献１】特開２００２−２６９０２６号公報
【特許文献２】特開２００３−３４５４５５号公報
【特許文献３】特開２００６−７２５９７号公報
【０００４】
これらの特許文献１〜３には、バスの調停の結果に応じてクロック信号（以下単に「クロック」という。）の周波数を切り替える技術が開示されている。
【０００５】
そのうち、特許文献１には、複数の周辺入／出力（以下「I/O」という。）回路からの割り込み要求を受け付け可能なマイクロコンピュータ装置の技術が記載されている。このマイクロコンピュータ装置は、周辺I/O回路からの割り込み要求信号とこの割り込み要求に対応する割り込み優先度を示す割り込み優先度信号（プライオリティ）とを受け付ける割り込みコントローラ回路を有している。割り込みコントローラ回路は、割り込み要求信号と割り込み優先度信号とに基づいて割り込みの調停を行うことにより、複数の周辺I/O回路からの割り込み処理を適切に調停し、更に、この割り込み処理の内容に応じて適切なクロック変更と、クロックに合わせた適切な周辺I/O回路、周辺メモリに対するアクセスサイクル数の変更とを行うことができるようになっている。
【０００６】
但し、この特許文献１の技術は、バス権要求信号の競合の技術ではなく、多重割り込み（複数の割り込みの競合）のプライオリティとクロック信号（以下単に「クロック」という。）の周波数の技術である。
【０００７】
特許文献２には、バス権調停手段自体が持つバス権識別情報を用いてクロックを制御したり、あるいは制御を開始することによって、バス権を持つ機能ブロックに適切な周波数のクロックを供給したり、低消費電力を実現するためのデータ処理装置の技術が記載されている。
【０００８】
このデータ処理装置では、データの通信を行うバスと、このバスを用いてデータを送信するに際し、バス権要求信号を出力すると共にバス権信号を受け取ることによりバスを使用する権利を得る複数個の機能ブロックと、この複数個の機能ブロックからそれぞれバス権要求信号を受け取り、調停して複数個の機能ブロックのうちの１つの機能ブロックに対してバス権信号を与えるバス調停手段と、各機能ブロックにクロックを供給するクロック制御手段と、前記バス調停手段からのバスマスタ情報にてクロックを制御するクロック制御手段とを備えている。ここで、バス調停手段からクロック制御手段へのバスマスタ情報はバス権を要求している機能ブロックを識別するバス権要求識別信号であり、バス権要求識別信号を元にクロックの周波数を変更するクロック制御手段を有している。このクロック制御手段は、バス権要求識別信号を元にクロックの周波数を変更する機能のオン／オフを制御するレジスタを備えている。
【０００９】
又、特許文献３には、バスクロック周波数を変更可能にして、モジュールを最低動作周波数近傍の周波数で動作させ、消費電力を低減するためのデータ処理装置の技術が記載されている。
【００１０】
このデータ処理装置は、バスクロック及びデータの伝送が可能なバスと、このバスに接続されてバスクロックに応じた動作周波数で動作して所定の機能を達成する複数の機能ブロックと、バスにバスクロックを供給するバスクロック発生源と、バスの使用状態に基づいてバスクロック発生源を制御してバスクロックの周波数を変更する調停回路とを有している。ここで、調停回路は、複数の機能ブロックのうちバス使用のリクエストを発生した機能ブロックの数に応じてバスクロックの周波数を変更したり、あるいは、リクエストの待ち時間が所定の閾値よりも大きい機能ブロックについては、バスクロックの周波数を変更してバスの使用を許可する機能を有している。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来の情報処理システムに関する技術では、次のような課題があった。  従来の情報処理システムにおいては、例えば、特定のバスマスタの転送に応じたシステムクロックの周波数を設定することが可能であるが、複数のバスマスタが転送要求を出して、優先度の高いバス転送が終了するのを待ち合わせているような状態（これを「バス転送の輻輳状態」という。）を早く回復することができない。このようなバス転送の輻輳状態が続くと、例えば、音楽再生のシステムで音とび等を発生させる等の場合、リアルタイム性を要求するデータ転送の帯域が減じて、システムの動作に支障を来す虞がある。
【００１２】
この解決策として、例えば、バス転送の輻輳状態による待ち合わせ時間を、システムとして許容できる時間以下にするために、システムクロックの周波数を上げることにより回避することも行われるが、この場合はシステムの消費電力の増大を招く。
【００１３】
他の解決策として、システムの状態に応じてソフトウェアにより最適な周波数を設定する方法も採られて、システムの消費電力の増加をより減らすこともできる。ところが、この方法では、システムの大きな状態遷移に対応したレベル（ソフト的に管理できるレベル）でしか、周波数を変更できないので、バス転送状態に対応して周波数を変更することはできない。そのため、バス転送の競合度合いに応じた、最適なクロックを供給することができない。
【００１４】
そこで、バス権要求信号の競合の技術である特許文献２や特許文献３の技術を利用することが考えられる。
【００１５】
しかし、特許文献２の技術では、各ブロックに与えるクロック周波数を選択して与えるため、ブロック毎に周波数が決定されてしまう。そのため、バス権要求識別信号を元にクロックを供給する機能ブロックを選択する機能のオン／オフはレジスタで行うが、バス権が競合した際に切り替えるものではないため、システムとして最適なクロックを供給することが難しい。
【００１６】
この特許文献２に対する解決策として、特許文献３の調停回路を用い、複数の機能ブロックのうちバス使用のリクエストを発生した機能ブロックの数に応じてバスクロックの周波数を変更したり、あるいは、リクエストの待ち時間が所定の閾値よりも大きい機能ブロックについては、バスクロックの周波数を変更してバスの使用を許可することも考えられる。ところが、特許文献３の調停回路では、バス権の検出処理をソフトウェアにより行っていると思われるので、処理時間が掛かってリアルタイム性に欠ける等の問題がある。
【００１７】
本発明は、このような従来の課題を解決し、比較的簡単な構成で、処理時間が短く、且つ、省電力効果を向上できる情報処理システム及びこの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明のうちの第１の発明の情報処理システムは、データ転送を行うバスと、前記バスに接続され、アクセスの対象になるバススレーブと、前記バスに接続され、前記バススレーブに対するアクセス時に前記バスに対してバス権要求信号をそれぞれ出力する複数のバスマスタと、前記バスに接続され、前記複数のバスマスタから前記バスを介して複数の前記バス権要求信号を受信し、前記複数のバス権要求信号の競合を調停していずれか１つの前記バスマスタにバス権を付与するバス調停回路と、前記バス調停回路が受信した前記複数のバス権要求信号の数を検出して検出数を出力するバス権検出回路（例えば、複数のバス権要求信号の数を加算して検出数を出力するリクエスト検出回路）と、周波数変更回路とを備えている。
【００１９】
前記周波数変更回路は、一定周波数の基準クロックを大きさの異なる複数の分周値で分周して大きさの異なる複数の周波数の分周信号を出力する複数の分周回路と、前記検出数を入力し、前記検出数の大きさに対応した大きさの周波数の前記分周信号を選択して情報処理システム全体を動作させるための動作クロックを出力する選択手段とを有している。
【００２０】
第２の発明の情報処理システムでは、第１の発明のバス権検出回路が、前記複数のバス権要求信号の数を加算して加算数を出力するリクエスト検出回路と、サイクル検出回路とにより構成されている。前記サイクル検出回路は、前記加算数を入力し、前記加算数が２以上の時にはサイクル数を計数して計数値を求め、前記計数値が所定値未満の場合には前記加算数をそのまま前記検出数として出力し、前記計数値が前記所定値以上の場合には前記加算数に所定数を加算して前記検出数として出力する回路である。
【００２１】
第３の発明の情報処理システムでは、第１又は第２の発明の情報処理システムにおいて、更に、検出数変更手段、及び／又は、所定値変更手段を有している。前記検出数変更手段は、前記バスマスタの制御により、前記選択手段に入力する前記検出数を変更するものであり、例えば、前記バスマスタからの書き換え可能なレジスタで構成されている。前記所定値変更手段は、前記バスマスタの制御により、前記サイクル検出回路における前記所定値を変更するものであり、例えば、前記バスマスタからの書き換え可能なレジスタで構成されている。
【００２２】
第４の発明の情報処理システムの制御方法は、前記バスと、前記バススレーブと、前記複数のバスマスタと、前記バス調停回路とを有する情報処理システムの制御方法であって、前記複数のバスマスタから前記複数のバス権要求信号が出力されると、前記複数のバス権要求信号の数を加算して加算数を求める。次に、前記加算数を入力し、前記加算数が２以上の時にはサイクル数を計数して計数値を求め、前記計数値を所定値と比較して、前記計数値が前記所定値未満の場合には前記加算数をそのまま検出数とし、前記計数値が前記所定値以上の場合には前記加算数に所定数を加算して前記検出数とする。
【００２３】
その後、一定周波数の基準クロックを大きさの異なる複数の分周値で分周して大きさの異なる複数の周波数の分周信号を求めておき、前記検出数の大きさに対応した大きさの周波数の前記分周信号を選択して情報処理システム全体を動作させるための動作クロックを出力する。
【００２４】
更に、制御方法に対し、第４の発明における検出数を、前記バスマスタの制御により変更し、あるいは第４の発明における所定値を、前記バスマスタの制御により変更する工夫もしている。
【発明の効果】
【００２５】
第１の発明の情報処理システムによれば、複数のバスマスタの出力するバス権要求信号の状態（即ち、数）に対応し、システムの動作クロック周波数を変更する構成にしているので、複数のバスマスタがバス権を要求している状態では、動作クロック周波数が上がり、バス転送の待ち状態（輻輳状態）を早期に完了させることができる。しかも、バスの輻輳状態に応じて、バス権検出回路及び周波数変更回路といった簡単なハードウェアにより、クロック周波数の変更を実施できるので、従来のようなソフトウェアにより設定を行うことによる遅延時間がなくなり、最適なクロック周波数でバスの転送を即座に行うことができる。この結果、情報処理システムの処理時間の低減、及び省電力効果が期待できる。
【００２６】
第２の発明の情報処理システム、あるいは、第４の発明の情報処理システムの制御方法によれば、複数のバスマスタの出力するバス権要求信号の状態（即ち、数）、及びその継続時間（即ち、サイクル数）に対応し、システムの動作クロック周波数を変更しているので、複数のバスマスタがバス権を要求している状態で、バス権要求信号の輻輳状態が指定のサイクル間続いた場合、動作クロック周波数が更に上がり、第１の発明より早期にバスの輻輳状態を解消することができる。更に、第１の発明より、最適なクロック周波数でバス１の転送を行うことができる。この結果、第１の発明より、更なる処理時間の低減効果が期待できる。
【００２７】
第３の発明の情報処理システム、あるいは第５の発明の情報処理システムの制御方法によれば、バスマスタの制御により、検出数や所定値を変更する構成にしたので、変更する動作クロック周波数をソフトウエアで設定したり、あるいは、輻輳状態継続時の動作クロック周波数を変更するタイミングをソフトウエアで設定することにより、初期の値とは異なる動作周波数、及び変更タイミングを選択できる。そのため、情報処理システムの動作の柔軟性が向上し、情報処理システムの状態に応じた最適な動作周波数を選択できる。この結果、情報処理システムの状態に応じた、処理時間、バス転送能力の最適化、及び省電力効果が期待できる。
【発明を実施するための最良の形態】
【００２８】
情報処理システムは、データ転送を行うバスと、前記バスに接続され、アクセスの対象になるバススレーブと、前記バスに接続され、前記バススレーブに対するアクセス時に前記バスに対してバス権要求信号をそれぞれ出力する複数のバスマスタと、前記バスに接続され、前記複数のバスマスタから前記バスを介して複数の前記バス権要求信号を受信し、前記複数のバス権要求信号の競合を調停していずれか１つの前記バスマスタにバス権を付与するバス調停回路と、前記バス調停回路が受信した前記複数のバス権要求信号の数を加算して検出数を出力するリクエスト検出回路と、周波数変更回路とを備えている。
【００２９】
前記周波数変更回路は、一定周波数の基準クロックを大きさの異なる複数の分周値で分周して大きさの異なる複数の周波数の分周信号を出力する複数の分周回路と、前記検出数を入力し、前記検出数の大きさに対応した大きさの周波数の前記分周信号を選択して情報処理システム全体を動作させるための動作クロックを出力する選択手段とを有している。
【実施例１】
【００３０】
（実施例１の構成）
図１（ａ）、（ｂ）は、本発明の実施例１を示す情報処理システムの概略の構成図であり、同図（ａ）は全体の構成図、及び同図（ｂ）はその中のバス調停回路の構成図である。
【００３１】
図１（ａ）に示される情報処理システムは、データバス、アドレスバス及び制御バスを有するシステムバス（以下単に「バス」という。）１を有している。バス１には、複数のバスマスタ（例えば、CPU２−０、ダイレクトメモリコントローラ0,1（以下「DMAC0,1」という。）２−１，２−２等）と、複数のバススレーブ（例えば、CPUが動作するためのプログラム等が格納されるリードオンリメモリ（以下「ROM」という。）３−０、データ等が格納されるランダムアクセスメモリ（以下「RAM」という。）３−１等）と、バス調停回路１０と、バス権検出回路２０と、周波数変更回路（例えば、クロック分周回路）３０とが接続されている。
【００３２】
バス１は、バスマスタ（CPU)２−０、バスマスタ（DMAC0)２−１、及びバスマスタ(DMAC1)２−２と、バススレーブ(ROM)３−０及びバススレーブ（RAM)３−１との間のデータ転送を行うために必要な信号接続用の信号線群である。このバス１には、各バスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２及び各バススレーブ(ROM,RAM)３−０，３−１に対してバス信号bus（例えば、アドレスやデータ信号等）の信号線が接続されており、これらのバス信号busには、各バスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２及び各バススレーブ(ROM,RAM)３−０，３−１間のデータ転送に必要な信号がすべて含まれている。
【００３３】
バスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２のうち、バスマスタ（CPU)２−０は、システム全体のプログラム制御を行うものである。このバスマスタ（CPU)２−０から出力されるバス権要求信号req0の信号線と、このバスマスタ（CPU)２−０に入力されるバス権許可信号grant0の信号線とは、それぞれバス調停回路１０に接続され、バススレーブ（ROM,RAM)３−０，３−１にアクセスを行いたい場合に、バス権要求信号req0を論理“Ｈ”とし、このバス権許可信号grant0が“Ｈ”となった場合に、バススレーブ(ROM,RAM)３−０，３−１にアクセスを行うことが可能となる。
【００３４】
バスマスタ（DMAC0)２−１は、バス１に接続されたバススレーブ(ROM,RAM)３−０，３−１へデータ転送を行うものである。このバスマスタ（DMAC0)２−１から出力されるバス権要求信号req1の信号線と、このバスマスタ（DMAC0)２−１に入力されるバス権許可信号grant1の信号線とは、それぞれバス調停回路１０に接続され、バススレーブ(ROM,RAM)３−０，３−１にアクセスを行いたい場合に、バス権要求信号req1を“Ｈ”とし、バス権許可信号grant1が“Ｈ”となった場合に、バススレーブ(ROM,RAM)３−０，３−１にアクセスを行うことが可能となる。
【００３５】
バスマスタ（DMAC1)２−２は、バス１に接続されたバススレーブ(ROM,RAM)３−０，３−１へデータ転送を行うものである。このバスマスタ（DMAC1)２−２から出力されるバス権要求信号req2の信号線と、このバスマスタ（DMAC1)２−２に入力されるバス権許可信号grant2の信号線とは、それぞれバス調停回路１０に接続され、バススレーブ(ROM,RAM)３−０，３−１にアクセスを行いたい場合に、バス権要求信号req2を“Ｈ”とし、バス権許可信号grant2が“Ｈ”となった場合に、バススレーブ（ROM,RAM)３−０，３−１にアクセスを行うことが可能となる。
【００３６】
バス調停回路１０は、複数のバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２が同時にバス１の使用を要求する場合、このバス１でのデータの衝突を回避し、バス１を使用するバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２が単一になるようにバス１の調停を行う回路である。バス調停回路１０では、各バスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２から出力されるバス権要求信号req0,req1,req2等が“Ｈ”である場合に、バス１の使用を許可する単一のバスマスタのバス権許可信号（grant0,grant1,grant2等）のみを“Ｈ”とする。これにより、バスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２は、バス権許可信号grant0,grant1,grant2等が“Ｈ”となった場合に、バス１を使用されることを許可されたと判断し、各バススレーブ（ROM,RAM)３−０，３−１に対してバス１を介してアクセスを行うことが可能となる。
【００３７】
このバス調停回路１０では、例えば、複数のバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２からバス１を使用する要求信号であるバス権要求信号req0,req1,req2が入力された場合、バスマスタ（DMAC1,DMAC0,CPU)２−２，２−１，２−０の優先順位でバス権を与え、バス権許可信号grant0,grant1,grant2を調停することとする。
【００３８】
バス権検出回路２０は、各バスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２から出力されるバス権要求信号req0,req1,req2を入力し、このバス権要求信号req0,req1,req2の例えば“Ｈ”の数を検出し、この検出結果である検出信号bus_detectをクロック分周回路３０へ通知する回路である。
【００３９】
クロック分周回路３０は、情報処理システムの基準クロックclk0（周波数はf）を入力し、この基準クロックclk0を分周数nで分周して、システム全体の動作クロックclk1（周波数はf/n)を生成する回路である。この動作クロックclk1は、システム全体の動作クロックとして使用されるため、情報処理システムを構成するすべての回路に入力される。クロック分周回路３０から出力される動作クロックclk1でシステム全体が動作するため、この動作クロックclk1の周波数f/nにより、バス１の転送速度が決まることとなる。
【００４０】
図１（ｂ）に示されるバス調停回路１０は、各バス権要求信号req0,req1,req2の状態により、出力するバス権許可信号grant0,grant1,grant2を切り替える回路であり、例えば、バス権要求信号req2が“Ｈ”であった場合は、次のサイクルでバス権許可信号grant2を“Ｈ”とする機能を有している。
【００４１】
このバス調停回路１０は、例えば、バス権要求信号req0,req1,req2により入力信号I'b1,I'b0（これは論理“１”、“０”の信号）を選択する複数のセレクタ１１−０〜１１−５と、これらのセレクタ出力がデータ入力されてバス権許可信号grant0,grant1,grant2を出力する複数のフリップフロップ（以下「F/F」という。）１２−０〜１２−２とにより構成されている。
【００４２】
図２は、図１中のバス権検出回路２０及びクロック分周回路３０を示す構成図である。
バス権検出回路２０は、バスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２からのバス権要求信号req0,req1,req2の“Ｈ”の数を検出してこの検出数（例えば、検出信号）bus_detectをクロック分周回路３０に通知する回路であり、リクエスト検出回路（REQ)２１を有している。リクエスト検出回路２１は、例えば、加算器により構成され、各バスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２から出力されるバス権要求信号req0,req1,req2を入力し、加算処理を行ってこの処理結果である検出信号bus_detectをクロック分周回路３０へ出力する回路である。
【００４３】
クロック分周回路３０は、入力される基準クロックclk0をそれぞれ分周無し（１分周）、２分周、４分周、８分周する複数の分周回路３１−０〜３１−２と、これらの分周回路３１−０〜３１−２から出力される分周信号を切り替える選択手段（例えば、セレクタ（Sl)３２、及びこのセレクタ３２を切り替えるためのセレクト信号SELを出力するクロック分周設定レジスタ３３）とにより構成されている。例えば、セレクト信号SELが“１”であった場合には、基準クロックclk0の４分周のクロックclk1がセレクタ３２から出力される。図２の例では、セレクト信号SELは少なくとも２ビットの信号となる。
【００４４】
セレクト信号SELを出力するクロック分周設定レジスタ３３は、バス権検出回路２０内のリクエスト検出回路２１から出力される検出信号bus_detectにより変更される。即ち、リクエスト検出回路２１からの検出信号bus_detectの値により、クロック分周設定レジスタ３３の値が決定される。例えば、検出信号bus_detectが“１”の場合は、クロック分周設定レジスタ３３の値が“１”に設定される。
【００４５】
図３は、図２中のリクエスト検出回路２１から出力される検出信号bus_detectの真理値を示す図である。
【００４６】
例えば、バス権要求信号req0,req1が“Ｈ”でバス権要求信号req2が“Ｌ”の場合は、リクエスト検出回路２１から出力される検出信号bus_detectは“２”となり、クロック分周設定レジスタ３３の値は２となる。これにより、１／２分周回路３１−０の分周信号がセレクタ３２で選択され、このセレクタ３２から、基準クロックclk0の２分周クロックが動作クロックclk1として出力され、情報処理システム全体が周波数の早いクロックで動作することとなる。
【００４７】
即ち、各バスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２からのバス権要求信号req0,req1,req2がない場合、基準クロックclk0の８分周、各バスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２からのバス権要求信号（req0,req1,req2）が競合なくいずれか１つの場合、基準クロックclk0の４分周、各バスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２からのバス権要求信号（req0,req1,req2）のいずれか２つが競合している場合、基準クロックclk0の２分周、各バスマスタ（CPU,DMAC0,DMAC1)２−０〜２からのバス権要求信号（req0,req1,req2）が３つとも競合している場合、基準クロックclk0の分周無しのクロックclk0が選択されるように、検出信号bus_detectがクロック分周設定レジスタ３３に設定される。このように、検出信号bus_detectは、複数のバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２からのバス権要求信号req0,req1,req2の“Ｈ”の数に対応して、基準クロックclk0の周波数を変更するための制御信号となる。
【００４８】
（実施例１の制御方法）
図４は、図１及び図２の情報処理システムの動作を示すタイムチャートである。
【００４９】
この図４では、、例えば、バスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２がバスアクセスを行っていない状態から、バスマスタ（CPU）２−０、バスマスタ（DMAC0）２−１、及びバスマスタ（DMAC1）２−２の順にバスアクセス要求が発生し、各バスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２のバスアクセスが完了するまでの動作が示されている。
【００５０】
時刻ｔ１までのバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２がバスアクセスを行っていない期間では、基準クロックclk0の８分周の動作クロックclk1がクロック分周回路３０から出力され、最も消費電力が低い状態となっている。
【００５１】
バスマスタ（CPU）２−０がバススレーブ（RAM)３−１をアクセスする場合、時刻ｔ１において、バス権要求信号req0を“Ｈ”として、バスのアクセス権をバス調停回路１０に対して要求する。バス調停回路１０は、バス権要求信号req0が“Ｈ”であることを検出し、次のクロックサイクルの時刻ｔ２で、バス権許可信号grant0の“Ｈ”を出力する。バス権許可信号grant0を受けたバスマスタ（CPU）２−０は、バススレーブ（RAM)３−１に対するアクセスを開始する。又、この動作と並行して、バス権要求信号req0が“Ｈ”となったことを検出したバス権検出回路２０は、時刻ｔ１において検出信号bus_detectの“１”を出力する。次の時刻ｔ２のクロックサイクルで、クロック分周回路３０の選択信号SELが“１”となり、セレクタ３２が切り替わり、基準クロックclk0の４分周の動作クロックclk1がクロック分周回路３０から出力され、バス１の転送速度が２倍に向上する。
【００５２】
バスマスタ（CPU）２−０がRAMアクセス中に、バスマスタ（DMAC0）２−１がバススレーブ（RAM)３−１に対するアクセスを要求する場合、時刻ｔ３において、バス権要求信号req1を“Ｈ”として、バス１のアクセス権をバス調停回路１０に対して要求する。バス調停回路１０はバス権要求信号req1が“Ｈ”であることを検出し、バスマスタ（CPU)２−０がバス権を持っているが、バスマスタ（DMAC0）２−１の優先順位がバスマスタ（CPU）２−０より高いので、次のクロックサイクルの時刻ｔ４で、バスマスタ（CPU）２−０のバス権許可信号grant0を“Ｌ”に落として、バスマスタ（DMAC0)２−１のバス権許可信号grant1の“Ｈ”を出力する。バス権許可信号grant1を受けたバスマスタ（DMAC0）２−１は、バススレーブ（RAM)３−１に対するアクセスを開始する。又、この動作と並行して、バス権要求信号req1が“Ｈ”になったことを検出したバス権検出回路２０は、この時、バス権要求信号req0も“Ｈ”であるため、時刻ｔ３で検出信号bus_detectの“２”を出力する。次のクロックサイクルの時刻ｔ４で、クロック分周回路３０のセレクト信号SELが“２”となり、セレクタ３２が切り替わり、基準クロックclk0の２分周の動作クロックclk1がクロック分周回路３０から出力され、バス１の転送速度が更に２倍に向上する。
【００５３】
バスマスタ（CPU）２−０のアクセス待ち状態（バス権要求信号req0が“Ｈ”の状態）でバスマスタ（DMAC0）２−１がRAMアクセス中に、バスマスタ（DMAC1）２−２がバススレーブ（RAM)３−１に対するアクセスを要求する場合、時刻ｔ５において、バス権要求信号req2を“Ｈ”として、バス１のアクセス権をバス調停回路１０に対して要求する。バス調停回路１０はバス権要求信号req2が“Ｈ”であることを検出し、バスマスタ（DMAC0）２−１がバス権を持っているが、バスマスタ（DMAC1）２−２の優先順位がバスマスタ（DMAC0）２−１よりも高いので、次のクロックサイクルの時刻ｔ６で、バスマスタ（DMAC0）２−１のバス権許可信号grant1を“Ｌ”に落として、バスマスタ（DMAC1）２−２のバス権許可信号grant2の“Ｈ”を出力する。
【００５４】
バス権許可信号grant2を受けたバスマスタ（DMAC1）２−２は、バススレーブ（RAM)３−１に対するアクセスを開始する。又、この動作と並行して、バス権要求信号req2が“Ｈ”になったことを検出したバス権検出回路２０は、この時、バス権要求信号req0及びreq1も“Ｈ”であるため、時刻ｔ５において、検出信号bus_detectの“３”を出力する。次のクロックサイクルの時刻ｔ６で、クロック分周回路３０のセレクト信号SELが“３”となり、セレクタ３２が切り替わり、基準クロックclk0の分周無し(1分周)の動作クロックclk1がクロック分周回路３０から出力され、バス１の転送速度が更に２倍に向上する。
【００５５】
バスマスタ（DMAC1）２−２のRAMアクセスが完了した場合、時刻ｔ７において、バス権要求信号req2を“Ｌ”として、バス調停回路１０に対してバス１のアクセス要求を取り止める。バス調停回路１０はバス権要求信号req2が“Ｌ”、バス権要求信号req1が“Ｈ”、且つバス権要求信号req0が“Ｈ”であることを検出し、次のクロックサイクルの時刻ｔ８で、バスマスタ（DMAC1）２−２のバス権を奪うため、バス権許可信号grant2を“Ｌ”に落とし、バスマスタ（DMAC0）２−１の優先順位がバスマスタ（CPU）２−０より高いので、バスマスタ（DMAC0）２−１のバス権許可信号grant1の“Ｈ”を出力する。
【００５６】
バス権許可信号grant1を受けたバスマスタ（DMAC0）２−１は、バススレーブ（RAM)３−１に対するアクセスを再度開始する。又、この動作と並行して、バス権要求信号req2が“Ｌ”になったことを検出したバス権検出回路２０は、この時、バス権要求信号req0及びreq1は“Ｈ”であるため、時刻ｔ７において、検出信号bus_detectの“２”を出力する。次のクロックサイクルの時刻ｔ８で、クロック分周回路３０のセレクト信号SELが“２”となり、セレクタ３２が切り替わり、基準クロックclk0の２分周のクロックがクロック分周回路３０から出力され、バス１の転送速度が１／２倍に低下する。これにより、３つのバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２からバス権を要求されている時と比較すると、バスの転送速度が１／２倍となる。
【００５７】
バスマスタ（DMAC0）２−１のRAMアクセスが完了した場合、時刻ｔ９において、バス権要求信号req1を“Ｌ”として、バス調停回路１０に対してバス１のアクセス要求を取りやめる。バス調停回路１０はバス権要求信号req1が“Ｌ”、且つバス権要求信号req0が“Ｈ”であることを検出し、バスマスタ（DMAC1）２−２のバス権を奪うため、次のクロックサイクルの時刻ｔ１０で、バス権許可信号grant1を“Ｌ”に落とし、バスマスタ（CPU）２−０のバス権許可信号grant0の“Ｈ”を出力する。
【００５８】
バス権許可信号grant0を受けたバスマスタ（CPU）２−０は、バススレーブ（RAM)３−１に対するアクセスを再度開始する。又、この動作と並行して、バス権要求信号req1が“Ｌ”になったことを検出したバス権検出回路２０は、この時、バス権要求信号req0が“Ｈ”であるため、時刻ｔ９において、検出信号bus_detectの“１”を出力する。次のクロックサイクルの時刻ｔ１０で、クロック分周回路３０のセレクト信号SELが“１”となり、セレクタ３２が切り替わり、基準クロックclk0の４分周の動作クロックclk1がクロック分周回路３０から出力され、バス１の転送速度が１／２倍に低下する。これにより、２つのバスマスタ（CPU,DMAC0)２−０，２−１からバス権を要求されている時と比較すると、バス１の転送速度が１／２倍となる。
【００５９】
バスマスタ（CPU）２−０のRAMアクセスが完了した場合、時刻ｔ１１において、バス権要求信号req0を“Ｌ”として、バス調停回路１０に対してバス１のアクセス要求を取りやめる。バス調停回路１０はバス権要求信号req0が“Ｌ”であることを検出し、バスマスタ（CPU）２−０のバス権を奪うため、次のクロックサイクルの時刻ｔ１２でバス権許可信号grant0を“Ｌ”に落とす。
【００６０】
バス権許可信号grant0が“Ｌ”になることにより、バスマスタ（CPU）２−０はバススレーブ(ROM,RAM)３−０，３−１に対してアクセスを行わない。又、この動作と並行して、バス権要求信号req0が“Ｌ”になったことを検出したバス権検出回路２０は、時刻ｔ１１において、検出信号bus_detectの“０”を出力する。次のクロックサイクルの時刻ｔ１２で、クロック分周回路３０のセレクト信号SELが“０”となり、セレクタ３２が切り替わり、基準クロックclk0の８分周の動作クロックclk1がクロック分周回路３０から出力され、バス１の転送速度が１／２倍となる。これにより、１つのバスマスタ（例えば、バスマスタ（CPU))２−０からバス権を要求されている時と比較すると、バス１の転送速度が１／２倍となる。
【００６１】
このように、バス権要求信号req0,req1,req2が複数のバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２から要求されている場合には、動作クロックclk1の周波数を上げてバス１の転送速度を向上させ、高優先バスマスタがバス１を使用する時間を短くすることにより、バス１の輻輳状態を短くし、バス権を要求するバスマスタが少ない場合には、動作クロックclk1の周波数を下げて低消費電力を実現する。
【００６２】
（実施例１の効果）
本実施例１によれば、複数のバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２がバス権を要求している状態で動作クロックclk1の周波数を上げることにより、バス転送の待ち状態（輻輳状態）を早期に完了させることができる。しかも、バス１の輻輳状態に応じて、バス権検出回路２０及びクロック分周回路３０といった簡単なハードウェアにより、クロック周波数の変更を実施できるので、従来のようなソフトウェアにより設定を行うことによる遅延時間がなくなり、最適なクロック周波数でバス１の転送を即座に行うことができる。この結果、情報処理システムの処理時間の低減、及び省電力効果が期待できる。
【実施例２】
【００６３】
（実施例２の構成）
図５（ａ）、（ｂ）は、本発明の実施例２の情報処理システムにおけるバス権検出回路及びクロック分周回路を示す構成図であり、同図（ａ）はバス権検出回路及びクロック分周回路の全体の構成図、及び同図（ｂ）はその中のサイクル検出回路の構成図である。この図５（ａ）、（ｂ）において、実施例１を示す図２中の要素と共通の要素には共通の符号が付されている。
【００６４】
図５（ａ）に示すように、本実施例２の情報処理システムにおける全体の構成は、実施例１の図１と同様であるが、本実施例２では、図２のバス権検出回路２０及びクロック分周回路３０に代えて、これとは構成の異なるバス権検出回路２０Ａ及びクロック分周回路３０Ａが設けられている。
【００６５】
バス権検出回路２０Ａは、実施例１と同様の加算器からなるリクエスト検出回路（REQ)２１と、この出力側に新たに付加されたサイクル検出回路（CYCLE）２２とを有している。サイクル検出回路２２は、リクエスト検出回路２１から出力される加算数である出力信号IN0を入力し、カウンタによりサイクル数を計数（カウント）してクロック分周回路３０Ａへ入力する検出数（例えば、検出信号）bus_detectを生成する回路であり、所定値である指定されたサイクル（例えば、１００サイクル）間、複数のバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２からのバス権要求信号req0,req1,req2があった場合に検出信号bus_detectを変化させ、クロック分周回路３０Ａに入力する機能を有している。
【００６６】
クロック分周回路３０Ａは、周波数fの基準クロックclk0を分周無し（１分周）、２分周、４分周、８分周、１６分周する複数の分周回路３１−０〜３１−３と、これらの分周回路３１−０〜３１−３から出力される分周信号をセレクト信号SELにより切り替える選択手段（例えば、セレクタ（Sl)３２Ａ、及びそのセレクト信号SELを出力するクロック分周設定レジスタ３３）とを有している。例えば、クロック分周設定レジスタ３３から出力されるセレクト信号SELが“１”の場合、基準クロックclk0の８分周の動作クロックclk1がセレクタ３２Ａから出力される。クロック分周設定レジスタ３３の値は、サイクル検出回路２２からの検出信号bus_detectの値により設定されて変更される。例えば、検出信号bus_detectが“１”の場合は、クロック分周設定レジスタ３３の値が“１”に設定される。
【００６７】
図５（ｂ）に示すように、サイクル検出回路２２は、例えば、クロックによりカウントアップするカウンタ２２ａと、予め設定された所定値である比較値RF（例えば、１００）とカウンタ２２ａの計数値（カウント値）とを比較する比較器２２ｂと、リクエスト検出回路２１の加算数である出力信号INOに対して所定数（例えば、＋１）を加算する加算器２２ｃと、比較器２２ｂの比較結果により、出力信号INO又は加算器２２ｃの出力信号のいずれか一方を選択して検出信号bus_detectを出力するセレクタ２２ｄとにより構成されている。セレクタ２２ｄは、比較器２２ｂの比較結果が“１”の場合（即ち、設定された比較値RFと一致した場合）、出力信号INOに対して加算器２２ｃで＋１加算された信号を選択し、検出信号bus_detectとして出力する機能を有している。
【００６８】
図６は、図５中のサイクル検出回路２２の真理値を示す図である。
複数のバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２からバス権要求信号req0,req1,req2があった場合、バス１の輻輳状態が１００サイクル未満の場合には、実施例1と同様、検出信号bus_detectは、すべてのバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２からのバス権要求がない場合は“０”、１つのバスマスタからバス権要求がある場合は“１”、２つのバスマスタからバス権要求がある場合は“２”、３つのバスマスタからバス権要求がある場合は“３”となる。バス１の輻輳状態が１００サイクル以上になった場合、検出信号bus_detectは、１つのバスマスタからバス権要求がある場合は“２”、２つのバスマスタからバス権要求がある場合は“３”、３つのバスマスタからバス権要求がある場合は“４”となる。
【００６９】
クロック分周回路３０Ａ内のクロック分周設定レジスタ３３には、検出信号bus_detectの値が設定され、この設定された分周の動作クロックclk1がセレクタ３２Ａから出力される。例えば、検出信号bus_detectが“２”の場合は、クロック分周設定レジスタ３３に“２”が設定され、基準クロックclk0の４分周の動作クロックclk1がセレクタ３２Ａから出力される。このように、検出信号bus_detectは、複数のバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２からのバス権要求信号req0,req1,req2の数、及びバス１の輻輳状態のサイクル数に対応して、動作クロックclk1の周波数f/nを変更するための制御信号となる。
【００７０】
（実施例２の制御方法）
図７は、図１及び図５の情報処理システムの動作を示すタイムチャートである。
【００７１】
この図７では、バスマスタ（CPU,DMAC0)２−０，２−１がバスアクセスを行っていない状態から、バスマスタ（CPU）２−０、バスマスタ（DMAC0）２−１の順にバスアクセス要求が発生し、各バスマスタ（CPU,DMAC0)２−０，２−１のバスアクセスと動作クロックclk1の周波数f/nの変化が示されている。
【００７２】
図７に示す時刻ｔ１までの期間において、バスマスタ（CPU,DMAC0)２−０，２−１がバスアクセスを行っていない状態では、基準クロックclk0の１６分周の動作クロックclk1がクロック分周回路３０Ａから出力され、最も消費電力が低い状態となっている。
【００７３】
バスマスタ（CPU）２−０がバススレーブ（RAM)３−１をアクセスする場合、時刻ｔ１において、バス権要求信号req0を“Ｈ”にして、バス１のアクセス権をバス調停回路１０に対して要求する。バス調停回路１０は、バス権要求信号req0が“Ｈ”であることを検出し、次のクロックサイクルの時刻ｔ２で、バス権許可信号grant0の“Ｈ”を出力する。バス権許可信号grant0を受けたバスマスタ（CPU）２−０は、バススレーブ（RAM)３−１に対するアクセスを開始する。又、この動作と並行して、バス権要求信号req0が“Ｈ”となったことを検出したバス権検出回路２０Ａは、時刻ｔ１において、検出信号bus_detectの“１”を出力する。次のクロックサイクルの時刻ｔ２で、クロック分周回路３０Ａのセレクト信号SELが“１”となり、セレクタ３２Ａが切り替わって、基準クロックclk0の８分周の動作クロックclk1が出力され、バス１の転送速度が２倍に向上する。
【００７４】
バスマスタ（CPU）２−０がRAMアクセス中にバスマスタ（DMAC0）２−１がバススレーブ（RAM)３−１に対するアクセスを要求する場合、時刻ｔ３において、バス権要求信号req1を“Ｈ”にして、バス１のアクセス権をバス調停回路１０に対して要求する。バス調停回路１０は、バス権要求信号req1が“Ｈ”であることを検出し、バスマスタ（CPU）２−０がバス権を持っているが、バスマスタ（DMAC0）２−１の優先順位がバスマスタ（CPU）２−０より高いので、次のクロックサイクルの時刻ｔ４で、バスマスタ（CPU）２−０のバス権許可信号grant0を“Ｌ”に落として、バスマスタ（DMAC0）２−１のバス権許可信号grant1の“Ｈ”を出力する。
【００７５】
バス権許可信号grant1を受けたバスマスタ（DMAC0）２−１は、バススレーブ（RAM)３−１に対するアクセスを開始する。又、この動作と並行して、バス権要求信号req1が“Ｈ”になったことを検出したバス権検出回路２０は、この時、バス権要求信号req0も“Ｈ”であるため、時刻ｔ３において、検出信号bus_detectの“２”を出力する。次のクロックサイクルの時刻ｔ４で、クロック分周回路３０Ａのセレクト信号SELが“２”となり、セレクタ３２が切り替わって、基準クロックclk0の４分周の動作クロックclk1が出力され、バス１の転送速度が更に２倍に向上する。又、バス権要求信号req0及びreq1が共に“Ｈ”であるため、時刻ｔ４において、サイクル検出回路２２内のカウンタ２２ａは、０からカウントアップを開始する。
【００７６】
時刻ｔ５において、サイクル検出回路２２内のカウンタ２２ａの値が１００になると、次のクロックサイクルの時刻ｔ６で、セレクタ２２ｄが検出信号bus_detectの“３”を出力する。更に次のクロックサイクルの時刻ｔ７で、クロック分周回路３０Ａのセレクト信号SELが“３”となり、セレクタ３２が切り替わって、基準クロックclk0の２分周の動作クロックclk1が出力され、バス１の転送速度が更に２倍に向上する。
【００７７】
（実施例２の効果）
本実施例２によれば、複数のバスマスタ（CPU,DMAC0)２−０，２−１がバス権を要求している状態で、バス権要求信号req0,req1の輻輳状態が指定のサイクル間続いた場合、クロックclk1の周波数f/nを更に上げるため、実施例１より早期にバス１の輻輳状態を解消することができる。更に、実施例１より、最適なクロック周波数f/nでバス１の転送を行うことができる。この結果、実施例１より、更なる処理時間の低減効果が期待できる。
【実施例３】
【００７８】
（実施例３の構成）
図８は、本発明の実施例３を示す情報処理システムの概略の構成図であり、実施例１を示す図１中の要素と共通の要素には共通の符号が付されている。
【００７９】
本実施例３の情報処理システムでは、図１のバス権検出回路２０及びクロック分周回路３０に代えて、これとは構成の異なるバス権検出回路２０Ｂ及びクロック分周回路３０Ｂが設けられている。バス権検出回路２０Ｂ及びクロック分周回路３０Ｂには、バス１に対してバス信号bus_sigの送受信処理を行うための回路が付加されている。バス信号bus_sigは、他のバス信号busと同様に、バスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２とバス権検出回路２０Ｂ又はクロック分周回路３０Ｂとの間で、バス１を介してデータ転送を行うための信号である。
【００８０】
図９（ａ）、（ｂ）は、図８中のバス権検出回路及びクロック分周回路を示す構成図であり、同図（ａ）はバス権検出回路及びクロック分周回路の全体の構成図、及び同図（ｂ）はその中のサイクル検出回路、及び周波数待ち合わせレジスタの構成図である。この図９において、実施例２を示す図５中の要素と共通の要素には共通の符号が付されている。
【００８１】
図９（ａ）に示すように、バス権検出回路２０Ｂは、実施例２と同様にバス権要求信号req0,req1,req2の“Ｈ”の数をカウントする加算器からなるリクエスト検出回路（REQ)２１と、この出力側に接続された実施例２のサイクル検出回路２２とは異なる構成のサイクル検出回路（CYCLE)２２Ｂと、この入力側に新たに付加されたバスインタフェース回路２３及び所定値変更手段（例えば、周波数待ち合わせレジスタ）２４とを有している。
【００８２】
サイクル検出回路２２Ｂは、リクエスト検出回路２１の出力信号INOを入力し、カウンタによりサイクル数をカウントとしてこのカウント結果の検出信号bus_detectをクロック分周回路３０Ｂへ出力する回路である。バスインタフェース回路２３は、バス１との接続のためのインタフェースを取り持つ回路であり、この出力側に周波数待ち合わせレジスタ２４が接続されている。周波数待ち合わせレジスタ２４は、ソフト制御により設定されるレジスタであり、バスマスタ（CPU）２−０からの書き換えや設定が可能になっている。バスマスタ（CPU）２−０から書き換えられた周波数待ち合わせレジスタ２４の値は、サイクル検出回路２２Ｂに入力され、検出信号bus_detectを出力するカウンタの値を設定することが可能になっている。
【００８３】
クロック分周回路３０Ｂは、基準クロックclk0を分周無し（１分周）、２分周、４分周、８分周、１６分周、３２分周するための実施例２とほぼ同様の複数の分周回路３１−０〜３１−４と、この分周回路３１−０〜３１−４の出力をセレクト信号SELにより切り替えるための実施例２とほぼ同様の選択手段（例えば、セレクタ（Sl)３２Ｂ、及びセレクト信号SELを出力するための実施例２と同様のクロック分周設定レジスタ３３）と、このクロック分周設定レジスタ３３の入力側に新たに付加されたバスインタフェース回路３４及び検出数変更手段（例えば、周波数設定レジスタ）３５とを有している。
【００８４】
セレクタ３２Ｂは、例えば、セレクト信号SELが“１”の場合は、基準クロックclk0を１６分周した動作クロックclk1を出力する機能を有している。セレクト信号SELを出力するクロック分周設定レジスタ３３の値は、周波数設定レジスタ３５により設定される。周波数設定レジスタ３５の値は、バス権検出回路２０Ｂからの検出信号bus_detectにより設定され、且つソフト制御により設定されるレジスタであり、バスインタフェース回路３４を介してバスマスタ（CPU）２−０からの書き換えや設定が可能になっている。
【００８５】
バスインタフェース回路３４は、バス１との接続のためのインタフェースを取り持つ回路であり、バスマスタ（CPU）２−０から周波数設定レジスタ３５に設定する場合に介する回路である。周波数設定レジスタ３５の値を設定することにより、初期の値とは異なる動作周波数を選択することが可能となり、より情報処理システムの状態に応じた最適な動作周波数を選択することが可能になっている。
【００８６】
図９（ｂ）に示すように、サイクル検出回路２２Ｂは、実施例２のサイクル検出回路２２において比較器２２bに与える所定値である比較値RFを、外部の周波数待ち合わせレジスタ２４内のレジスタ２４bにより設定できる回路構成になっている。周波数待ち合わせレジスタ２４は、バスインタフェース回路２３から与えられるレジスタ書き込み用のライトデータWD(例えば、１０００）とレジスタ活性化用のライトイネーブル信号WEとを入力するセレクタ２４ａと、このセレクタ２４ａの出力側に接続されてサイクル検出回路２２Ｂへ与える比較値RFを出力するレジスタ２４ｂとにより構成されている。
【００８７】
セレクタ２４ａは、例えば、バスインタフェース回路２３から与えられるライトイネーブル信号WEの“１”により、ライトデータWDを選択し、ライトイネーブル信号WEの“１”により、レジスタ２４ｂから出力される比較値RFを選択し、レジスタ２４ｂへ出力する回路である。レジスタ２４ｂは、バスインタフェース回路２３からのライトイネーブル信号WEにより、バスインタフェース回路２３からのライトデータWDを保持し、比較値RFをサイクル検出回路２２Ｂ内の比較器２２ｂへ出力する回路である。
【００８８】
図１０は、図９中のサイクル検出回路２２Ｂの真理値を示す図である。
複数のバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２からバス権要求信号req0,req1,req2があった場合、バス１の輻輳状態が周波数待ち合わせレジスタ２４で設定された値未満のサイクルの場合は、実施例1、２と同様、検出信号bus_detectはすべてのバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２からのバス権要求がない場合は“０”、１つのバスマスタからバス権要求がある場合は“１”、２つのバスマスタからバス権要求がある場合は“２”、３つのバスマスタからバス権要求がある場合は“３”となり、検出信号bus_detectがクロック分周回路３０Ｂへ出力される。バス１の輻輳状態が周波数待ち合わせレジスタ２４で設定された値以上になった場合は、１つのバスマスタからバス権要求がある場合は“２”、２つのバスマスタからバス権要求がある場合は“３”、３つのバスマスタからバス権要求がある場合は“４”となり、検出信号bus_detectがクロック分周回路３０Ｂへ出力される。
【００８９】
このように、サイクル検出回路２２Ｂから出力される検出信号bus_detectは、複数のバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２からのバス権要求信号req0,req1,req2の数及び設定可能なバス１の輻輳状態のサイクル数に対応して、動作クロックclk1の周波数f/nを変更するための制御信号となる。
【００９０】
図１１は、図９中の周波数設定レジスタ３５の真理値を示す図である。
例えば、周波数設定レジスタ３５が“１”且つ検出信号bus_detectが“１”の場合は、クロック分周設定レジスタ３３の値が“２”に設定され、セレクタ３２Ｂも“２”に設定されるため、基準クロックclk0を８分周した動作クロックclk1がセレクタ３２Ｂから出力される。
【００９１】
（実施例３の制御方法）
図１２は、図８及び図９の情報処理システムの動作を示すタイムチャートである。
【００９２】
この図１２では、バスマスタ（CPU,DMAC0)２−０，２−１がバスアクセスを行っていない状態から、バスマスタ（CPU）２−０、バスマスタ（DMAC0）２−１の順にバスアクセス要求が発生し、各バスマスタ（CPU,DMAC0)２−０，２−１のバスアクセスと動作クロックclk1の周波数f/nの変化が示されている。例えば、周波数待ち合わせレジスタ２４の初期値は１００、周波数設定レジスタ３５の初期値は０とする。
【００９３】
時刻ｔ１までの期間において、バスマスタバスマスタ（CPU,DMAC0)２−０，２−１がバスアクセスを行っていない状態では、基準クロックclk0の１６分周の動作クロックclk1がクロック分周回路３０Ｂから出力され、最も消費電力が低い状態となっている。
【００９４】
バスマスタ（CPU）２−０がバススレーブ（RAM)３−１をアクセスする場合、時刻ｔ１において、バス権要求信号req0を“Ｈ”にして、バス１のアクセス権をバス調停回路２０Ｂに対して要求する。バス調停回路２０Ｂは、バス権要求信号req0が“Ｈ”であることを検出し、次のクロックサイクルの時刻ｔ２で、バス権許可信号grant0の“Ｈ”を出力する。バス権許可信号grant0を受けたバスマスタ（CPU）２−０は、バススレーブ（RAM)３−１に対するアクセスを開始する。
【００９５】
又、この動作と並行して、バス権要求信号req0が“Ｈ”になったことを検出したバス権検出回路２０Ｂは、時刻ｔ１において、検出信号bus_detectの“１”を出力する。次のクロックサイクルの時刻ｔ２で、クロック分周回路３０Ｂのセレクト信号SELが“１”となり、セレクタ３２Ｂが切り替わって、基準クロックclk0の８分周の動作クロックclk1が出力され、バス１の転送速度が２倍に向上する。
【００９６】
サイクル検出回路２２Ｂの指定サイクル数を例えば１００サイクルから１０００サイクルに変更したい場合、時刻ｔ２’において、バスマスタ（CPU）２−０が周波数待ち合わせレジスタ２４に１０００を書き込み、これにより周波数待ち合わせレジスタ２４の値が１００から１０００に変化する。この時、バス権要求信号req0とバス権要求信号req1が共に“Ｈ”の期間が１０００サイクル間持続しないと、検出信号bus_detectの値は変化せず、動作クロックclk1の周波数f/nは変更されないようになる。
【００９７】
バスマスタ（CPU）２−０がRAMアクセス中にバスマスタ（DMAC0）２−１がバススレーブ（RAM)３−１に対するアクセスを要求する場合、時刻ｔ３において、バス権要求信号req1を“Ｈ”にして、バス１のアクセス権をバス調停回路１０に対して要求する。バス調停回路１０は、バス権要求信号req1が“Ｈ”であることを検出し、バスマスタ（CPU）２−０がバス権を持っているが、バスマスタ（DMAC0）２−１の優先順位がバスマスタ（CPU）２−０より高いので、次のクロックサイクルの時刻ｔ４で、バスマスタ（CPU）２−０のバス権許可信号grant0を“Ｌ”に落として、バスマスタ（DMAC0）２−１のバス権許可信号grant1の“Ｈ”を出力する。バス権許可信号grant1を受けたバスマスタ（DMAC0）２−１は、バススレーブ（RAM)３−１に対するアクセスを開始する。
【００９８】
又、この動作と並行して、バス権要求信号req1が“Ｈ”になったことを検出したバス権検出回路２０Ｂは、この時、バス権要求信号req0も“Ｈ”であるため、時刻ｔ３において、検出信号bus_detectの“２”を出力する。次のクロックサイクルの時刻ｔ４で、クロック分周回路３０Ｂのセレクト信号SELが“２”となり、セレクタ３２Ｂが切り替わって、基準クロックclk0の４分周の動作クロックclk1が出力され、バス１の転送速度が更に２倍に向上する。又、バス権要求信号req0及びreq1が共に“Ｈ”であるため、時刻ｔ４において、サイクル検出回路２２Ｂのカウンタ２２ａは、０からカウントアップを開始する。
【００９９】
時刻ｔ５において、サイクル検出回路２２Ｂのカウンタ２２aの値が１０００になった時、次のクロックサイクルの時刻ｔ６で、検出信号bus_detectの“３”を出力する。更に次のクロックサイクルの時刻ｔ７で、クロック分周回路３０Ｂのセレクト信号SELが“３”となり、セレクタ３２が切り替わって、基準クロックclk0の２分周の動作クロックclk1が出力され、バス１の転送速度が更に２倍に向上する。
【０１００】
このように、周波数待ち合わせレジスタ２４を用いてバス権要求信号の輻輳状態継続サイクルを設定することが可能となり、動作周波数f/nや切り替えタイミングを選択できるため、情報処理システムの動作の柔軟性が向上する。
【０１０１】
（実施例３の効果）
実施例３によれば、切り替える動作周波数、及び輻輳状態継続時の切り替えタイミングを予め設定できるレジスタ２４，３５を持つことにより、初期の値とは異なる動作周波数、及び切り替えタイミングを選択できるので、情報処理システムの動作の柔軟性が向上し、情報処理システムの状態に応じた最適な動作周波数f/nを選択できる。この結果、情報処理システムの状態に応じた、処理時間、バス転送能力の最適化、及び省電力効果が期待できる。
【実施例４】
【０１０２】
実施例１〜３では、１つのバスシステムを例に説明したが、本発明は複数のバスを有するマルチバスシステムにおいても適用可能である。
【０１０３】
図１３は、本発明の実施例４におけるマルチバスを採用した情報処理システムを示す概略の構成図であり、実施例１〜３を示す図１、図５、図８中の要素と共通の要素には共通の符号が付されている。
【０１０４】
本実施例４の情報処理システムでは、図１、図５、図８に示すバス権検出回路２０，２０Ａ又は２０Ｂと、この出力側に接続されたクロック分周回路３０，３０Ａ又は３０Ｂと、この出力側に接続されたマルチバスシステム本体４０とを備えている。
【０１０５】
マルチバスシステム本体４０は、複数のバス１−０〜１−２を有している。各バス１−０〜１−２には、各バスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２と、各バス調停回路１０−０〜１０−２とがそれぞれ接続されている。更に、、各バス１−０〜１−２のうち、バス１−０には、複数のバススレーブ（ROM,RAM)３−００，３−０１が、バス１−１には、複数のバススレーブ（ROM,RAM)３−１０，３−１１が、バス１−２には、複数のバススレーブ（ROM,RAM)３−２０，３−２１が、それぞれ接続されている。
【０１０６】
このような構成の情報処理システムによれば、複数のバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２がそれぞれ別のバススレーブ（ROM,RAM)３−００，３−０１，３−１０，３−１１，３−２０，３−２１へアクセスしている際は、それぞれのバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２がバス使用許可を得られるため、アクセス発生を待たされることはないが、複数のバスマスタ（CPU,DMAC0,DMAC1)２−０〜２−２が１つのバススレーブ（例えば、ROM３−００）へアクセスする際には、実施例１〜３とほぼ同様に、最適な動作クロックclk1を供給するため、バス転送の輻輳状態を少なくすることが可能である。
【０１０７】
（変形例）
本発明は、上記実施例１〜４に限定されず、例えば、図１のバス調停回路１０、図２、図５、図９のバス権検出回路２０，２０Ａ，２０Ｂ、及びクロック分周回路３０，３０Ａ，３０Ｂ等を図示以外の他の回路構成に変更する等、種々の利用形態や変形が可能である。
【図面の簡単な説明】
【０１０８】
【図１】本発明の実施例１を示す情報処理システムの概略の構成図である。
【図２】図１中のバス権検出回路２０及びクロック分周回路３０を示す構成図である。
【図３】図２中のリクエスト検出回路２１から出力される検出信号bus_detectの真理値を示す図である。
【図４】図１及び図２の情報処理システムの動作を示すタイムチャートである。
【図５】本発明の実施例２の情報処理システムにおけるバス権検出回路及びクロック分周回路を示す構成図である。
【図６】図５中のサイクル検出回路２２の真理値を示す図である。
【図７】図１及び図５の情報処理システムの動作を示すタイムチャートである。
【図８】本発明の実施例３を示す情報処理システムの概略の構成図である。
【図９】図８中のバス権検出回路及びクロック分周回路を示す構成図である。
【図１０】図９中のサイクル検出回路２２Ｂの真理値を示す図である。
【図１１】図９中の周波数設定レジスタ３５の真理値を示す図である。
【図１２】図８及び図９の情報処理システムの動作を示すタイムチャートである。
【図１３】本発明の実施例４におけるマルチバスを採用した情報処理システムを示す概略の構成図である。
【符号の説明】
【０１０９】
１，１−０〜１−２      バス
２−０〜２−２      バスマスタ
３−０，３−１，３−００，３−０１，３−１０，３−１１，３−２０，３−２１
バススレーブ
１０，１０−０〜１０−２      バス調停回路
２０，２０Ａ，２０Ｂ      バス権検出回路
２１      リクエスト検出回路
２２，２２Ｂ      サイクル検出回路
２４      周波数待ち合わせレジスタ
３０，３０Ａ，３０Ｂ      クロック分周回路
３１−０〜３１−４      分周回路
３３      クロック分周設定レジスタ
３４      バスインタフェース回路
３５      周波数設定レジスタ
４０      マルチバスシステム本体
【図１】
2008059047.tif 000003
【図２】
2008059047.tif 000004
【図３】
2008059047.tif 000005
【図４】
2008059047.tif 000006
【図５】
2008059047.tif 000007
【図６】
2008059047.tif 000008
【図７】
2008059047.tif 000009
【図８】
2008059047.tif 000010
【図９】
2008059047.tif 000011
【図１０】
2008059047.tif 000012
【図１１】
2008059047.tif 000013
【図１２】
2008059047.tif 000014
【図１３】
2008059047.tif 000015