本発明は、例えば、各種デバイス間でデータ転送を行えるように制御するバス調停回路(バスアービタ)を有する情報処理システム及びこの制御方法、特に、情報処理システムにおける省電力機能に関するものである。
従来、情報処理システムにおけるハードウェア省電力化方式として、中央処理装置(以下「CPU」という。)上で動作するソフトウェアがシステムの状態に応じて、システムクロック周波数を変更する方式がよく行われている。これに関連する技術としては、例えば、次のような特許文献に記載されるものがあった。
特開2002−269026号公報
特開2003−345455号公報
特開2006−72597号公報
これらの特許文献1〜3には、バスの調停の結果に応じてクロック信号(以下単に「クロック」という。)の周波数を切り替える技術が開示されている。
そのうち、特許文献1には、複数の周辺入/出力(以下「I/O」という。)回路からの割り込み要求を受け付け可能なマイクロコンピュータ装置の技術が記載されている。このマイクロコンピュータ装置は、周辺I/O回路からの割り込み要求信号とこの割り込み要求に対応する割り込み優先度を示す割り込み優先度信号(プライオリティ)とを受け付ける割り込みコントローラ回路を有している。割り込みコントローラ回路は、割り込み要求信号と割り込み優先度信号とに基づいて割り込みの調停を行うことにより、複数の周辺I/O回路からの割り込み処理を適切に調停し、更に、この割り込み処理の内容に応じて適切なクロック変更と、クロックに合わせた適切な周辺I/O回路、周辺メモリに対するアクセスサイクル数の変更とを行うことができるようになっている。
但し、この特許文献1の技術は、バス権要求信号の競合の技術ではなく、多重割り込み(複数の割り込みの競合)のプライオリティとクロック信号(以下単に「クロック」という。)の周波数の技術である。
特許文献2には、バス権調停手段自体が持つバス権識別情報を用いてクロックを制御したり、あるいは制御を開始することによって、バス権を持つ機能ブロックに適切な周波数のクロックを供給したり、低消費電力を実現するためのデータ処理装置の技術が記載されている。
このデータ処理装置では、データの通信を行うバスと、このバスを用いてデータを送信するに際し、バス権要求信号を出力すると共にバス権信号を受け取ることによりバスを使用する権利を得る複数個の機能ブロックと、この複数個の機能ブロックからそれぞれバス権要求信号を受け取り、調停して複数個の機能ブロックのうちの1つの機能ブロックに対してバス権信号を与えるバス調停手段と、各機能ブロックにクロックを供給するクロック制御手段と、前記バス調停手段からのバスマスタ情報にてクロックを制御するクロック制御手段とを備えている。ここで、バス調停手段からクロック制御手段へのバスマスタ情報はバス権を要求している機能ブロックを識別するバス権要求識別信号であり、バス権要求識別信号を元にクロックの周波数を変更するクロック制御手段を有している。このクロック制御手段は、バス権要求識別信号を元にクロックの周波数を変更する機能のオン/オフを制御するレジスタを備えている。
又、特許文献3には、バスクロック周波数を変更可能にして、モジュールを最低動作周波数近傍の周波数で動作させ、消費電力を低減するためのデータ処理装置の技術が記載されている。
このデータ処理装置は、バスクロック及びデータの伝送が可能なバスと、このバスに接続されてバスクロックに応じた動作周波数で動作して所定の機能を達成する複数の機能ブロックと、バスにバスクロックを供給するバスクロック発生源と、バスの使用状態に基づいてバスクロック発生源を制御してバスクロックの周波数を変更する調停回路とを有している。ここで、調停回路は、複数の機能ブロックのうちバス使用のリクエストを発生した機能ブロックの数に応じてバスクロックの周波数を変更したり、あるいは、リクエストの待ち時間が所定の閾値よりも大きい機能ブロックについては、バスクロックの周波数を変更してバスの使用を許可する機能を有している。
しかしながら、従来の情報処理システムに関する技術では、次のような課題があった。 従来の情報処理システムにおいては、例えば、特定のバスマスタの転送に応じたシステムクロックの周波数を設定することが可能であるが、複数のバスマスタが転送要求を出して、優先度の高いバス転送が終了するのを待ち合わせているような状態(これを「バス転送の輻輳状態」という。)を早く回復することができない。このようなバス転送の輻輳状態が続くと、例えば、音楽再生のシステムで音とび等を発生させる等の場合、リアルタイム性を要求するデータ転送の帯域が減じて、システムの動作に支障を来す虞がある。
この解決策として、例えば、バス転送の輻輳状態による待ち合わせ時間を、システムとして許容できる時間以下にするために、システムクロックの周波数を上げることにより回避することも行われるが、この場合はシステムの消費電力の増大を招く。
他の解決策として、システムの状態に応じてソフトウェアにより最適な周波数を設定する方法も採られて、システムの消費電力の増加をより減らすこともできる。ところが、この方法では、システムの大きな状態遷移に対応したレベル(ソフト的に管理できるレベル)でしか、周波数を変更できないので、バス転送状態に対応して周波数を変更することはできない。そのため、バス転送の競合度合いに応じた、最適なクロックを供給することができない。
そこで、バス権要求信号の競合の技術である特許文献2や特許文献3の技術を利用することが考えられる。
しかし、特許文献2の技術では、各ブロックに与えるクロック周波数を選択して与えるため、ブロック毎に周波数が決定されてしまう。そのため、バス権要求識別信号を元にクロックを供給する機能ブロックを選択する機能のオン/オフはレジスタで行うが、バス権が競合した際に切り替えるものではないため、システムとして最適なクロックを供給することが難しい。
この特許文献2に対する解決策として、特許文献3の調停回路を用い、複数の機能ブロックのうちバス使用のリクエストを発生した機能ブロックの数に応じてバスクロックの周波数を変更したり、あるいは、リクエストの待ち時間が所定の閾値よりも大きい機能ブロックについては、バスクロックの周波数を変更してバスの使用を許可することも考えられる。ところが、特許文献3の調停回路では、バス権の検出処理をソフトウェアにより行っていると思われるので、処理時間が掛かってリアルタイム性に欠ける等の問題がある。
本発明は、このような従来の課題を解決し、比較的簡単な構成で、処理時間が短く、且つ、省電力効果を向上できる情報処理システム及びこの制御方法を提供することを目的とする。
本発明のうちの第1の発明の情報処理システムは、データ転送を行うバスと、前記バスに接続され、アクセスの対象になるバススレーブと、前記バスに接続され、前記バススレーブに対するアクセス時に前記バスに対してバス権要求信号をそれぞれ出力する複数のバスマスタと、前記バスに接続され、前記複数のバスマスタから前記バスを介して複数の前記バス権要求信号を受信し、前記複数のバス権要求信号の競合を調停していずれか1つの前記バスマスタにバス権を付与するバス調停回路と、前記バス調停回路が受信した前記複数のバス権要求信号の数を検出して検出数を出力するバス権検出回路(例えば、複数のバス権要求信号の数を加算して検出数を出力するリクエスト検出回路)と、周波数変更回路とを備えている。
前記周波数変更回路は、一定周波数の基準クロックを大きさの異なる複数の分周値で分周して大きさの異なる複数の周波数の分周信号を出力する複数の分周回路と、前記検出数を入力し、前記検出数の大きさに対応した大きさの周波数の前記分周信号を選択して情報処理システム全体を動作させるための動作クロックを出力する選択手段とを有している。
第2の発明の情報処理システムでは、第1の発明のバス権検出回路が、前記複数のバス権要求信号の数を加算して加算数を出力するリクエスト検出回路と、サイクル検出回路とにより構成されている。前記サイクル検出回路は、前記加算数を入力し、前記加算数が2以上の時にはサイクル数を計数して計数値を求め、前記計数値が所定値未満の場合には前記加算数をそのまま前記検出数として出力し、前記計数値が前記所定値以上の場合には前記加算数に所定数を加算して前記検出数として出力する回路である。
第3の発明の情報処理システムでは、第1又は第2の発明の情報処理システムにおいて、更に、検出数変更手段、及び/又は、所定値変更手段を有している。前記検出数変更手段は、前記バスマスタの制御により、前記選択手段に入力する前記検出数を変更するものであり、例えば、前記バスマスタからの書き換え可能なレジスタで構成されている。前記所定値変更手段は、前記バスマスタの制御により、前記サイクル検出回路における前記所定値を変更するものであり、例えば、前記バスマスタからの書き換え可能なレジスタで構成されている。
第4の発明の情報処理システムの制御方法は、前記バスと、前記バススレーブと、前記複数のバスマスタと、前記バス調停回路とを有する情報処理システムの制御方法であって、前記複数のバスマスタから前記複数のバス権要求信号が出力されると、前記複数のバス権要求信号の数を加算して加算数を求める。次に、前記加算数を入力し、前記加算数が2以上の時にはサイクル数を計数して計数値を求め、前記計数値を所定値と比較して、前記計数値が前記所定値未満の場合には前記加算数をそのまま検出数とし、前記計数値が前記所定値以上の場合には前記加算数に所定数を加算して前記検出数とする。
その後、一定周波数の基準クロックを大きさの異なる複数の分周値で分周して大きさの異なる複数の周波数の分周信号を求めておき、前記検出数の大きさに対応した大きさの周波数の前記分周信号を選択して情報処理システム全体を動作させるための動作クロックを出力する。
更に、制御方法に対し、第4の発明における検出数を、前記バスマスタの制御により変更し、あるいは第4の発明における所定値を、前記バスマスタの制御により変更する工夫もしている。
第1の発明の情報処理システムによれば、複数のバスマスタの出力するバス権要求信号の状態(即ち、数)に対応し、システムの動作クロック周波数を変更する構成にしているので、複数のバスマスタがバス権を要求している状態では、動作クロック周波数が上がり、バス転送の待ち状態(輻輳状態)を早期に完了させることができる。しかも、バスの輻輳状態に応じて、バス権検出回路及び周波数変更回路といった簡単なハードウェアにより、クロック周波数の変更を実施できるので、従来のようなソフトウェアにより設定を行うことによる遅延時間がなくなり、最適なクロック周波数でバスの転送を即座に行うことができる。この結果、情報処理システムの処理時間の低減、及び省電力効果が期待できる。
第2の発明の情報処理システム、あるいは、第4の発明の情報処理システムの制御方法によれば、複数のバスマスタの出力するバス権要求信号の状態(即ち、数)、及びその継続時間(即ち、サイクル数)に対応し、システムの動作クロック周波数を変更しているので、複数のバスマスタがバス権を要求している状態で、バス権要求信号の輻輳状態が指定のサイクル間続いた場合、動作クロック周波数が更に上がり、第1の発明より早期にバスの輻輳状態を解消することができる。更に、第1の発明より、最適なクロック周波数でバス1の転送を行うことができる。この結果、第1の発明より、更なる処理時間の低減効果が期待できる。
第3の発明の情報処理システム、あるいは第5の発明の情報処理システムの制御方法によれば、バスマスタの制御により、検出数や所定値を変更する構成にしたので、変更する動作クロック周波数をソフトウエアで設定したり、あるいは、輻輳状態継続時の動作クロック周波数を変更するタイミングをソフトウエアで設定することにより、初期の値とは異なる動作周波数、及び変更タイミングを選択できる。そのため、情報処理システムの動作の柔軟性が向上し、情報処理システムの状態に応じた最適な動作周波数を選択できる。この結果、情報処理システムの状態に応じた、処理時間、バス転送能力の最適化、及び省電力効果が期待できる。
情報処理システムは、データ転送を行うバスと、前記バスに接続され、アクセスの対象になるバススレーブと、前記バスに接続され、前記バススレーブに対するアクセス時に前記バスに対してバス権要求信号をそれぞれ出力する複数のバスマスタと、前記バスに接続され、前記複数のバスマスタから前記バスを介して複数の前記バス権要求信号を受信し、前記複数のバス権要求信号の競合を調停していずれか1つの前記バスマスタにバス権を付与するバス調停回路と、前記バス調停回路が受信した前記複数のバス権要求信号の数を加算して検出数を出力するリクエスト検出回路と、周波数変更回路とを備えている。
前記周波数変更回路は、一定周波数の基準クロックを大きさの異なる複数の分周値で分周して大きさの異なる複数の周波数の分周信号を出力する複数の分周回路と、前記検出数を入力し、前記検出数の大きさに対応した大きさの周波数の前記分周信号を選択して情報処理システム全体を動作させるための動作クロックを出力する選択手段とを有している。
(実施例1の構成)
図1(a)、(b)は、本発明の実施例1を示す情報処理システムの概略の構成図であり、同図(a)は全体の構成図、及び同図(b)はその中のバス調停回路の構成図である。
図1(a)に示される情報処理システムは、データバス、アドレスバス及び制御バスを有するシステムバス(以下単に「バス」という。)1を有している。バス1には、複数のバスマスタ(例えば、CPU2−0、ダイレクトメモリコントローラ0,1(以下「DMAC0,1」という。)2−1,2−2等)と、複数のバススレーブ(例えば、CPUが動作するためのプログラム等が格納されるリードオンリメモリ(以下「ROM」という。)3−0、データ等が格納されるランダムアクセスメモリ(以下「RAM」という。)3−1等)と、バス調停回路10と、バス権検出回路20と、周波数変更回路(例えば、クロック分周回路)30とが接続されている。
バス1は、バスマスタ(CPU)2−0、バスマスタ(DMAC0)2−1、及びバスマスタ(DMAC1)2−2と、バススレーブ(ROM)3−0及びバススレーブ(RAM)3−1との間のデータ転送を行うために必要な信号接続用の信号線群である。このバス1には、各バスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2及び各バススレーブ(ROM,RAM)3−0,3−1に対してバス信号bus(例えば、アドレスやデータ信号等)の信号線が接続されており、これらのバス信号busには、各バスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2及び各バススレーブ(ROM,RAM)3−0,3−1間のデータ転送に必要な信号がすべて含まれている。
バスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2のうち、バスマスタ(CPU)2−0は、システム全体のプログラム制御を行うものである。このバスマスタ(CPU)2−0から出力されるバス権要求信号req0の信号線と、このバスマスタ(CPU)2−0に入力されるバス権許可信号grant0の信号線とは、それぞれバス調停回路10に接続され、バススレーブ(ROM,RAM)3−0,3−1にアクセスを行いたい場合に、バス権要求信号req0を論理“H”とし、このバス権許可信号grant0が“H”となった場合に、バススレーブ(ROM,RAM)3−0,3−1にアクセスを行うことが可能となる。
バスマスタ(DMAC0)2−1は、バス1に接続されたバススレーブ(ROM,RAM)3−0,3−1へデータ転送を行うものである。このバスマスタ(DMAC0)2−1から出力されるバス権要求信号req1の信号線と、このバスマスタ(DMAC0)2−1に入力されるバス権許可信号grant1の信号線とは、それぞれバス調停回路10に接続され、バススレーブ(ROM,RAM)3−0,3−1にアクセスを行いたい場合に、バス権要求信号req1を“H”とし、バス権許可信号grant1が“H”となった場合に、バススレーブ(ROM,RAM)3−0,3−1にアクセスを行うことが可能となる。
バスマスタ(DMAC1)2−2は、バス1に接続されたバススレーブ(ROM,RAM)3−0,3−1へデータ転送を行うものである。このバスマスタ(DMAC1)2−2から出力されるバス権要求信号req2の信号線と、このバスマスタ(DMAC1)2−2に入力されるバス権許可信号grant2の信号線とは、それぞれバス調停回路10に接続され、バススレーブ(ROM,RAM)3−0,3−1にアクセスを行いたい場合に、バス権要求信号req2を“H”とし、バス権許可信号grant2が“H”となった場合に、バススレーブ(ROM,RAM)3−0,3−1にアクセスを行うことが可能となる。
バス調停回路10は、複数のバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2が同時にバス1の使用を要求する場合、このバス1でのデータの衝突を回避し、バス1を使用するバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2が単一になるようにバス1の調停を行う回路である。バス調停回路10では、各バスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2から出力されるバス権要求信号req0,req1,req2等が“H”である場合に、バス1の使用を許可する単一のバスマスタのバス権許可信号(grant0,grant1,grant2等)のみを“H”とする。これにより、バスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2は、バス権許可信号grant0,grant1,grant2等が“H”となった場合に、バス1を使用されることを許可されたと判断し、各バススレーブ(ROM,RAM)3−0,3−1に対してバス1を介してアクセスを行うことが可能となる。
このバス調停回路10では、例えば、複数のバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2からバス1を使用する要求信号であるバス権要求信号req0,req1,req2が入力された場合、バスマスタ(DMAC1,DMAC0,CPU)2−2,2−1,2−0の優先順位でバス権を与え、バス権許可信号grant0,grant1,grant2を調停することとする。
バス権検出回路20は、各バスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2から出力されるバス権要求信号req0,req1,req2を入力し、このバス権要求信号req0,req1,req2の例えば“H”の数を検出し、この検出結果である検出信号bus_detectをクロック分周回路30へ通知する回路である。
クロック分周回路30は、情報処理システムの基準クロックclk0(周波数はf)を入力し、この基準クロックclk0を分周数nで分周して、システム全体の動作クロックclk1(周波数はf/n)を生成する回路である。この動作クロックclk1は、システム全体の動作クロックとして使用されるため、情報処理システムを構成するすべての回路に入力される。クロック分周回路30から出力される動作クロックclk1でシステム全体が動作するため、この動作クロックclk1の周波数f/nにより、バス1の転送速度が決まることとなる。
図1(b)に示されるバス調停回路10は、各バス権要求信号req0,req1,req2の状態により、出力するバス権許可信号grant0,grant1,grant2を切り替える回路であり、例えば、バス権要求信号req2が“H”であった場合は、次のサイクルでバス権許可信号grant2を“H”とする機能を有している。
このバス調停回路10は、例えば、バス権要求信号req0,req1,req2により入力信号I'b1,I'b0(これは論理“1”、“0”の信号)を選択する複数のセレクタ11−0〜11−5と、これらのセレクタ出力がデータ入力されてバス権許可信号grant0,grant1,grant2を出力する複数のフリップフロップ(以下「F/F」という。)12−0〜12−2とにより構成されている。
図2は、図1中のバス権検出回路20及びクロック分周回路30を示す構成図である。
バス権検出回路20は、バスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2からのバス権要求信号req0,req1,req2の“H”の数を検出してこの検出数(例えば、検出信号)bus_detectをクロック分周回路30に通知する回路であり、リクエスト検出回路(REQ)21を有している。リクエスト検出回路21は、例えば、加算器により構成され、各バスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2から出力されるバス権要求信号req0,req1,req2を入力し、加算処理を行ってこの処理結果である検出信号bus_detectをクロック分周回路30へ出力する回路である。
クロック分周回路30は、入力される基準クロックclk0をそれぞれ分周無し(1分周)、2分周、4分周、8分周する複数の分周回路31−0〜31−2と、これらの分周回路31−0〜31−2から出力される分周信号を切り替える選択手段(例えば、セレクタ(Sl)32、及びこのセレクタ32を切り替えるためのセレクト信号SELを出力するクロック分周設定レジスタ33)とにより構成されている。例えば、セレクト信号SELが“1”であった場合には、基準クロックclk0の4分周のクロックclk1がセレクタ32から出力される。図2の例では、セレクト信号SELは少なくとも2ビットの信号となる。
セレクト信号SELを出力するクロック分周設定レジスタ33は、バス権検出回路20内のリクエスト検出回路21から出力される検出信号bus_detectにより変更される。即ち、リクエスト検出回路21からの検出信号bus_detectの値により、クロック分周設定レジスタ33の値が決定される。例えば、検出信号bus_detectが“1”の場合は、クロック分周設定レジスタ33の値が“1”に設定される。
図3は、図2中のリクエスト検出回路21から出力される検出信号bus_detectの真理値を示す図である。
例えば、バス権要求信号req0,req1が“H”でバス権要求信号req2が“L”の場合は、リクエスト検出回路21から出力される検出信号bus_detectは“2”となり、クロック分周設定レジスタ33の値は2となる。これにより、1/2分周回路31−0の分周信号がセレクタ32で選択され、このセレクタ32から、基準クロックclk0の2分周クロックが動作クロックclk1として出力され、情報処理システム全体が周波数の早いクロックで動作することとなる。
即ち、各バスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2からのバス権要求信号req0,req1,req2がない場合、基準クロックclk0の8分周、各バスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2からのバス権要求信号(req0,req1,req2)が競合なくいずれか1つの場合、基準クロックclk0の4分周、各バスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2からのバス権要求信号(req0,req1,req2)のいずれか2つが競合している場合、基準クロックclk0の2分周、各バスマスタ(CPU,DMAC0,DMAC1)2−0〜2からのバス権要求信号(req0,req1,req2)が3つとも競合している場合、基準クロックclk0の分周無しのクロックclk0が選択されるように、検出信号bus_detectがクロック分周設定レジスタ33に設定される。このように、検出信号bus_detectは、複数のバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2からのバス権要求信号req0,req1,req2の“H”の数に対応して、基準クロックclk0の周波数を変更するための制御信号となる。
(実施例1の制御方法)
図4は、図1及び図2の情報処理システムの動作を示すタイムチャートである。
この図4では、、例えば、バスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2がバスアクセスを行っていない状態から、バスマスタ(CPU)2−0、バスマスタ(DMAC0)2−1、及びバスマスタ(DMAC1)2−2の順にバスアクセス要求が発生し、各バスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2のバスアクセスが完了するまでの動作が示されている。
時刻t1までのバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2がバスアクセスを行っていない期間では、基準クロックclk0の8分周の動作クロックclk1がクロック分周回路30から出力され、最も消費電力が低い状態となっている。
バスマスタ(CPU)2−0がバススレーブ(RAM)3−1をアクセスする場合、時刻t1において、バス権要求信号req0を“H”として、バスのアクセス権をバス調停回路10に対して要求する。バス調停回路10は、バス権要求信号req0が“H”であることを検出し、次のクロックサイクルの時刻t2で、バス権許可信号grant0の“H”を出力する。バス権許可信号grant0を受けたバスマスタ(CPU)2−0は、バススレーブ(RAM)3−1に対するアクセスを開始する。又、この動作と並行して、バス権要求信号req0が“H”となったことを検出したバス権検出回路20は、時刻t1において検出信号bus_detectの“1”を出力する。次の時刻t2のクロックサイクルで、クロック分周回路30の選択信号SELが“1”となり、セレクタ32が切り替わり、基準クロックclk0の4分周の動作クロックclk1がクロック分周回路30から出力され、バス1の転送速度が2倍に向上する。
バスマスタ(CPU)2−0がRAMアクセス中に、バスマスタ(DMAC0)2−1がバススレーブ(RAM)3−1に対するアクセスを要求する場合、時刻t3において、バス権要求信号req1を“H”として、バス1のアクセス権をバス調停回路10に対して要求する。バス調停回路10はバス権要求信号req1が“H”であることを検出し、バスマスタ(CPU)2−0がバス権を持っているが、バスマスタ(DMAC0)2−1の優先順位がバスマスタ(CPU)2−0より高いので、次のクロックサイクルの時刻t4で、バスマスタ(CPU)2−0のバス権許可信号grant0を“L”に落として、バスマスタ(DMAC0)2−1のバス権許可信号grant1の“H”を出力する。バス権許可信号grant1を受けたバスマスタ(DMAC0)2−1は、バススレーブ(RAM)3−1に対するアクセスを開始する。又、この動作と並行して、バス権要求信号req1が“H”になったことを検出したバス権検出回路20は、この時、バス権要求信号req0も“H”であるため、時刻t3で検出信号bus_detectの“2”を出力する。次のクロックサイクルの時刻t4で、クロック分周回路30のセレクト信号SELが“2”となり、セレクタ32が切り替わり、基準クロックclk0の2分周の動作クロックclk1がクロック分周回路30から出力され、バス1の転送速度が更に2倍に向上する。
バスマスタ(CPU)2−0のアクセス待ち状態(バス権要求信号req0が“H”の状態)でバスマスタ(DMAC0)2−1がRAMアクセス中に、バスマスタ(DMAC1)2−2がバススレーブ(RAM)3−1に対するアクセスを要求する場合、時刻t5において、バス権要求信号req2を“H”として、バス1のアクセス権をバス調停回路10に対して要求する。バス調停回路10はバス権要求信号req2が“H”であることを検出し、バスマスタ(DMAC0)2−1がバス権を持っているが、バスマスタ(DMAC1)2−2の優先順位がバスマスタ(DMAC0)2−1よりも高いので、次のクロックサイクルの時刻t6で、バスマスタ(DMAC0)2−1のバス権許可信号grant1を“L”に落として、バスマスタ(DMAC1)2−2のバス権許可信号grant2の“H”を出力する。
バス権許可信号grant2を受けたバスマスタ(DMAC1)2−2は、バススレーブ(RAM)3−1に対するアクセスを開始する。又、この動作と並行して、バス権要求信号req2が“H”になったことを検出したバス権検出回路20は、この時、バス権要求信号req0及びreq1も“H”であるため、時刻t5において、検出信号bus_detectの“3”を出力する。次のクロックサイクルの時刻t6で、クロック分周回路30のセレクト信号SELが“3”となり、セレクタ32が切り替わり、基準クロックclk0の分周無し(1分周)の動作クロックclk1がクロック分周回路30から出力され、バス1の転送速度が更に2倍に向上する。
バスマスタ(DMAC1)2−2のRAMアクセスが完了した場合、時刻t7において、バス権要求信号req2を“L”として、バス調停回路10に対してバス1のアクセス要求を取り止める。バス調停回路10はバス権要求信号req2が“L”、バス権要求信号req1が“H”、且つバス権要求信号req0が“H”であることを検出し、次のクロックサイクルの時刻t8で、バスマスタ(DMAC1)2−2のバス権を奪うため、バス権許可信号grant2を“L”に落とし、バスマスタ(DMAC0)2−1の優先順位がバスマスタ(CPU)2−0より高いので、バスマスタ(DMAC0)2−1のバス権許可信号grant1の“H”を出力する。
バス権許可信号grant1を受けたバスマスタ(DMAC0)2−1は、バススレーブ(RAM)3−1に対するアクセスを再度開始する。又、この動作と並行して、バス権要求信号req2が“L”になったことを検出したバス権検出回路20は、この時、バス権要求信号req0及びreq1は“H”であるため、時刻t7において、検出信号bus_detectの“2”を出力する。次のクロックサイクルの時刻t8で、クロック分周回路30のセレクト信号SELが“2”となり、セレクタ32が切り替わり、基準クロックclk0の2分周のクロックがクロック分周回路30から出力され、バス1の転送速度が1/2倍に低下する。これにより、3つのバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2からバス権を要求されている時と比較すると、バスの転送速度が1/2倍となる。
バスマスタ(DMAC0)2−1のRAMアクセスが完了した場合、時刻t9において、バス権要求信号req1を“L”として、バス調停回路10に対してバス1のアクセス要求を取りやめる。バス調停回路10はバス権要求信号req1が“L”、且つバス権要求信号req0が“H”であることを検出し、バスマスタ(DMAC1)2−2のバス権を奪うため、次のクロックサイクルの時刻t10で、バス権許可信号grant1を“L”に落とし、バスマスタ(CPU)2−0のバス権許可信号grant0の“H”を出力する。
バス権許可信号grant0を受けたバスマスタ(CPU)2−0は、バススレーブ(RAM)3−1に対するアクセスを再度開始する。又、この動作と並行して、バス権要求信号req1が“L”になったことを検出したバス権検出回路20は、この時、バス権要求信号req0が“H”であるため、時刻t9において、検出信号bus_detectの“1”を出力する。次のクロックサイクルの時刻t10で、クロック分周回路30のセレクト信号SELが“1”となり、セレクタ32が切り替わり、基準クロックclk0の4分周の動作クロックclk1がクロック分周回路30から出力され、バス1の転送速度が1/2倍に低下する。これにより、2つのバスマスタ(CPU,DMAC0)2−0,2−1からバス権を要求されている時と比較すると、バス1の転送速度が1/2倍となる。
バスマスタ(CPU)2−0のRAMアクセスが完了した場合、時刻t11において、バス権要求信号req0を“L”として、バス調停回路10に対してバス1のアクセス要求を取りやめる。バス調停回路10はバス権要求信号req0が“L”であることを検出し、バスマスタ(CPU)2−0のバス権を奪うため、次のクロックサイクルの時刻t12でバス権許可信号grant0を“L”に落とす。
バス権許可信号grant0が“L”になることにより、バスマスタ(CPU)2−0はバススレーブ(ROM,RAM)3−0,3−1に対してアクセスを行わない。又、この動作と並行して、バス権要求信号req0が“L”になったことを検出したバス権検出回路20は、時刻t11において、検出信号bus_detectの“0”を出力する。次のクロックサイクルの時刻t12で、クロック分周回路30のセレクト信号SELが“0”となり、セレクタ32が切り替わり、基準クロックclk0の8分周の動作クロックclk1がクロック分周回路30から出力され、バス1の転送速度が1/2倍となる。これにより、1つのバスマスタ(例えば、バスマスタ(CPU))2−0からバス権を要求されている時と比較すると、バス1の転送速度が1/2倍となる。
このように、バス権要求信号req0,req1,req2が複数のバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2から要求されている場合には、動作クロックclk1の周波数を上げてバス1の転送速度を向上させ、高優先バスマスタがバス1を使用する時間を短くすることにより、バス1の輻輳状態を短くし、バス権を要求するバスマスタが少ない場合には、動作クロックclk1の周波数を下げて低消費電力を実現する。
(実施例1の効果)
本実施例1によれば、複数のバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2がバス権を要求している状態で動作クロックclk1の周波数を上げることにより、バス転送の待ち状態(輻輳状態)を早期に完了させることができる。しかも、バス1の輻輳状態に応じて、バス権検出回路20及びクロック分周回路30といった簡単なハードウェアにより、クロック周波数の変更を実施できるので、従来のようなソフトウェアにより設定を行うことによる遅延時間がなくなり、最適なクロック周波数でバス1の転送を即座に行うことができる。この結果、情報処理システムの処理時間の低減、及び省電力効果が期待できる。
(実施例2の構成)
図5(a)、(b)は、本発明の実施例2の情報処理システムにおけるバス権検出回路及びクロック分周回路を示す構成図であり、同図(a)はバス権検出回路及びクロック分周回路の全体の構成図、及び同図(b)はその中のサイクル検出回路の構成図である。この図5(a)、(b)において、実施例1を示す図2中の要素と共通の要素には共通の符号が付されている。
図5(a)に示すように、本実施例2の情報処理システムにおける全体の構成は、実施例1の図1と同様であるが、本実施例2では、図2のバス権検出回路20及びクロック分周回路30に代えて、これとは構成の異なるバス権検出回路20A及びクロック分周回路30Aが設けられている。
バス権検出回路20Aは、実施例1と同様の加算器からなるリクエスト検出回路(REQ)21と、この出力側に新たに付加されたサイクル検出回路(CYCLE)22とを有している。サイクル検出回路22は、リクエスト検出回路21から出力される加算数である出力信号IN0を入力し、カウンタによりサイクル数を計数(カウント)してクロック分周回路30Aへ入力する検出数(例えば、検出信号)bus_detectを生成する回路であり、所定値である指定されたサイクル(例えば、100サイクル)間、複数のバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2からのバス権要求信号req0,req1,req2があった場合に検出信号bus_detectを変化させ、クロック分周回路30Aに入力する機能を有している。
クロック分周回路30Aは、周波数fの基準クロックclk0を分周無し(1分周)、2分周、4分周、8分周、16分周する複数の分周回路31−0〜31−3と、これらの分周回路31−0〜31−3から出力される分周信号をセレクト信号SELにより切り替える選択手段(例えば、セレクタ(Sl)32A、及びそのセレクト信号SELを出力するクロック分周設定レジスタ33)とを有している。例えば、クロック分周設定レジスタ33から出力されるセレクト信号SELが“1”の場合、基準クロックclk0の8分周の動作クロックclk1がセレクタ32Aから出力される。クロック分周設定レジスタ33の値は、サイクル検出回路22からの検出信号bus_detectの値により設定されて変更される。例えば、検出信号bus_detectが“1”の場合は、クロック分周設定レジスタ33の値が“1”に設定される。
図5(b)に示すように、サイクル検出回路22は、例えば、クロックによりカウントアップするカウンタ22aと、予め設定された所定値である比較値RF(例えば、100)とカウンタ22aの計数値(カウント値)とを比較する比較器22bと、リクエスト検出回路21の加算数である出力信号INOに対して所定数(例えば、+1)を加算する加算器22cと、比較器22bの比較結果により、出力信号INO又は加算器22cの出力信号のいずれか一方を選択して検出信号bus_detectを出力するセレクタ22dとにより構成されている。セレクタ22dは、比較器22bの比較結果が“1”の場合(即ち、設定された比較値RFと一致した場合)、出力信号INOに対して加算器22cで+1加算された信号を選択し、検出信号bus_detectとして出力する機能を有している。
図6は、図5中のサイクル検出回路22の真理値を示す図である。
複数のバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2からバス権要求信号req0,req1,req2があった場合、バス1の輻輳状態が100サイクル未満の場合には、実施例1と同様、検出信号bus_detectは、すべてのバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2からのバス権要求がない場合は“0”、1つのバスマスタからバス権要求がある場合は“1”、2つのバスマスタからバス権要求がある場合は“2”、3つのバスマスタからバス権要求がある場合は“3”となる。バス1の輻輳状態が100サイクル以上になった場合、検出信号bus_detectは、1つのバスマスタからバス権要求がある場合は“2”、2つのバスマスタからバス権要求がある場合は“3”、3つのバスマスタからバス権要求がある場合は“4”となる。
クロック分周回路30A内のクロック分周設定レジスタ33には、検出信号bus_detectの値が設定され、この設定された分周の動作クロックclk1がセレクタ32Aから出力される。例えば、検出信号bus_detectが“2”の場合は、クロック分周設定レジスタ33に“2”が設定され、基準クロックclk0の4分周の動作クロックclk1がセレクタ32Aから出力される。このように、検出信号bus_detectは、複数のバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2からのバス権要求信号req0,req1,req2の数、及びバス1の輻輳状態のサイクル数に対応して、動作クロックclk1の周波数f/nを変更するための制御信号となる。
(実施例2の制御方法)
図7は、図1及び図5の情報処理システムの動作を示すタイムチャートである。
この図7では、バスマスタ(CPU,DMAC0)2−0,2−1がバスアクセスを行っていない状態から、バスマスタ(CPU)2−0、バスマスタ(DMAC0)2−1の順にバスアクセス要求が発生し、各バスマスタ(CPU,DMAC0)2−0,2−1のバスアクセスと動作クロックclk1の周波数f/nの変化が示されている。
図7に示す時刻t1までの期間において、バスマスタ(CPU,DMAC0)2−0,2−1がバスアクセスを行っていない状態では、基準クロックclk0の16分周の動作クロックclk1がクロック分周回路30Aから出力され、最も消費電力が低い状態となっている。
バスマスタ(CPU)2−0がバススレーブ(RAM)3−1をアクセスする場合、時刻t1において、バス権要求信号req0を“H”にして、バス1のアクセス権をバス調停回路10に対して要求する。バス調停回路10は、バス権要求信号req0が“H”であることを検出し、次のクロックサイクルの時刻t2で、バス権許可信号grant0の“H”を出力する。バス権許可信号grant0を受けたバスマスタ(CPU)2−0は、バススレーブ(RAM)3−1に対するアクセスを開始する。又、この動作と並行して、バス権要求信号req0が“H”となったことを検出したバス権検出回路20Aは、時刻t1において、検出信号bus_detectの“1”を出力する。次のクロックサイクルの時刻t2で、クロック分周回路30Aのセレクト信号SELが“1”となり、セレクタ32Aが切り替わって、基準クロックclk0の8分周の動作クロックclk1が出力され、バス1の転送速度が2倍に向上する。
バスマスタ(CPU)2−0がRAMアクセス中にバスマスタ(DMAC0)2−1がバススレーブ(RAM)3−1に対するアクセスを要求する場合、時刻t3において、バス権要求信号req1を“H”にして、バス1のアクセス権をバス調停回路10に対して要求する。バス調停回路10は、バス権要求信号req1が“H”であることを検出し、バスマスタ(CPU)2−0がバス権を持っているが、バスマスタ(DMAC0)2−1の優先順位がバスマスタ(CPU)2−0より高いので、次のクロックサイクルの時刻t4で、バスマスタ(CPU)2−0のバス権許可信号grant0を“L”に落として、バスマスタ(DMAC0)2−1のバス権許可信号grant1の“H”を出力する。
バス権許可信号grant1を受けたバスマスタ(DMAC0)2−1は、バススレーブ(RAM)3−1に対するアクセスを開始する。又、この動作と並行して、バス権要求信号req1が“H”になったことを検出したバス権検出回路20は、この時、バス権要求信号req0も“H”であるため、時刻t3において、検出信号bus_detectの“2”を出力する。次のクロックサイクルの時刻t4で、クロック分周回路30Aのセレクト信号SELが“2”となり、セレクタ32が切り替わって、基準クロックclk0の4分周の動作クロックclk1が出力され、バス1の転送速度が更に2倍に向上する。又、バス権要求信号req0及びreq1が共に“H”であるため、時刻t4において、サイクル検出回路22内のカウンタ22aは、0からカウントアップを開始する。
時刻t5において、サイクル検出回路22内のカウンタ22aの値が100になると、次のクロックサイクルの時刻t6で、セレクタ22dが検出信号bus_detectの“3”を出力する。更に次のクロックサイクルの時刻t7で、クロック分周回路30Aのセレクト信号SELが“3”となり、セレクタ32が切り替わって、基準クロックclk0の2分周の動作クロックclk1が出力され、バス1の転送速度が更に2倍に向上する。
(実施例2の効果)
本実施例2によれば、複数のバスマスタ(CPU,DMAC0)2−0,2−1がバス権を要求している状態で、バス権要求信号req0,req1の輻輳状態が指定のサイクル間続いた場合、クロックclk1の周波数f/nを更に上げるため、実施例1より早期にバス1の輻輳状態を解消することができる。更に、実施例1より、最適なクロック周波数f/nでバス1の転送を行うことができる。この結果、実施例1より、更なる処理時間の低減効果が期待できる。
(実施例3の構成)
図8は、本発明の実施例3を示す情報処理システムの概略の構成図であり、実施例1を示す図1中の要素と共通の要素には共通の符号が付されている。
本実施例3の情報処理システムでは、図1のバス権検出回路20及びクロック分周回路30に代えて、これとは構成の異なるバス権検出回路20B及びクロック分周回路30Bが設けられている。バス権検出回路20B及びクロック分周回路30Bには、バス1に対してバス信号bus_sigの送受信処理を行うための回路が付加されている。バス信号bus_sigは、他のバス信号busと同様に、バスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2とバス権検出回路20B又はクロック分周回路30Bとの間で、バス1を介してデータ転送を行うための信号である。
図9(a)、(b)は、図8中のバス権検出回路及びクロック分周回路を示す構成図であり、同図(a)はバス権検出回路及びクロック分周回路の全体の構成図、及び同図(b)はその中のサイクル検出回路、及び周波数待ち合わせレジスタの構成図である。この図9において、実施例2を示す図5中の要素と共通の要素には共通の符号が付されている。
図9(a)に示すように、バス権検出回路20Bは、実施例2と同様にバス権要求信号req0,req1,req2の“H”の数をカウントする加算器からなるリクエスト検出回路(REQ)21と、この出力側に接続された実施例2のサイクル検出回路22とは異なる構成のサイクル検出回路(CYCLE)22Bと、この入力側に新たに付加されたバスインタフェース回路23及び所定値変更手段(例えば、周波数待ち合わせレジスタ)24とを有している。
サイクル検出回路22Bは、リクエスト検出回路21の出力信号INOを入力し、カウンタによりサイクル数をカウントとしてこのカウント結果の検出信号bus_detectをクロック分周回路30Bへ出力する回路である。バスインタフェース回路23は、バス1との接続のためのインタフェースを取り持つ回路であり、この出力側に周波数待ち合わせレジスタ24が接続されている。周波数待ち合わせレジスタ24は、ソフト制御により設定されるレジスタであり、バスマスタ(CPU)2−0からの書き換えや設定が可能になっている。バスマスタ(CPU)2−0から書き換えられた周波数待ち合わせレジスタ24の値は、サイクル検出回路22Bに入力され、検出信号bus_detectを出力するカウンタの値を設定することが可能になっている。
クロック分周回路30Bは、基準クロックclk0を分周無し(1分周)、2分周、4分周、8分周、16分周、32分周するための実施例2とほぼ同様の複数の分周回路31−0〜31−4と、この分周回路31−0〜31−4の出力をセレクト信号SELにより切り替えるための実施例2とほぼ同様の選択手段(例えば、セレクタ(Sl)32B、及びセレクト信号SELを出力するための実施例2と同様のクロック分周設定レジスタ33)と、このクロック分周設定レジスタ33の入力側に新たに付加されたバスインタフェース回路34及び検出数変更手段(例えば、周波数設定レジスタ)35とを有している。
セレクタ32Bは、例えば、セレクト信号SELが“1”の場合は、基準クロックclk0を16分周した動作クロックclk1を出力する機能を有している。セレクト信号SELを出力するクロック分周設定レジスタ33の値は、周波数設定レジスタ35により設定される。周波数設定レジスタ35の値は、バス権検出回路20Bからの検出信号bus_detectにより設定され、且つソフト制御により設定されるレジスタであり、バスインタフェース回路34を介してバスマスタ(CPU)2−0からの書き換えや設定が可能になっている。
バスインタフェース回路34は、バス1との接続のためのインタフェースを取り持つ回路であり、バスマスタ(CPU)2−0から周波数設定レジスタ35に設定する場合に介する回路である。周波数設定レジスタ35の値を設定することにより、初期の値とは異なる動作周波数を選択することが可能となり、より情報処理システムの状態に応じた最適な動作周波数を選択することが可能になっている。
図9(b)に示すように、サイクル検出回路22Bは、実施例2のサイクル検出回路22において比較器22bに与える所定値である比較値RFを、外部の周波数待ち合わせレジスタ24内のレジスタ24bにより設定できる回路構成になっている。周波数待ち合わせレジスタ24は、バスインタフェース回路23から与えられるレジスタ書き込み用のライトデータWD(例えば、1000)とレジスタ活性化用のライトイネーブル信号WEとを入力するセレクタ24aと、このセレクタ24aの出力側に接続されてサイクル検出回路22Bへ与える比較値RFを出力するレジスタ24bとにより構成されている。
セレクタ24aは、例えば、バスインタフェース回路23から与えられるライトイネーブル信号WEの“1”により、ライトデータWDを選択し、ライトイネーブル信号WEの“1”により、レジスタ24bから出力される比較値RFを選択し、レジスタ24bへ出力する回路である。レジスタ24bは、バスインタフェース回路23からのライトイネーブル信号WEにより、バスインタフェース回路23からのライトデータWDを保持し、比較値RFをサイクル検出回路22B内の比較器22bへ出力する回路である。
図10は、図9中のサイクル検出回路22Bの真理値を示す図である。
複数のバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2からバス権要求信号req0,req1,req2があった場合、バス1の輻輳状態が周波数待ち合わせレジスタ24で設定された値未満のサイクルの場合は、実施例1、2と同様、検出信号bus_detectはすべてのバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2からのバス権要求がない場合は“0”、1つのバスマスタからバス権要求がある場合は“1”、2つのバスマスタからバス権要求がある場合は“2”、3つのバスマスタからバス権要求がある場合は“3”となり、検出信号bus_detectがクロック分周回路30Bへ出力される。バス1の輻輳状態が周波数待ち合わせレジスタ24で設定された値以上になった場合は、1つのバスマスタからバス権要求がある場合は“2”、2つのバスマスタからバス権要求がある場合は“3”、3つのバスマスタからバス権要求がある場合は“4”となり、検出信号bus_detectがクロック分周回路30Bへ出力される。
このように、サイクル検出回路22Bから出力される検出信号bus_detectは、複数のバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2からのバス権要求信号req0,req1,req2の数及び設定可能なバス1の輻輳状態のサイクル数に対応して、動作クロックclk1の周波数f/nを変更するための制御信号となる。
図11は、図9中の周波数設定レジスタ35の真理値を示す図である。
例えば、周波数設定レジスタ35が“1”且つ検出信号bus_detectが“1”の場合は、クロック分周設定レジスタ33の値が“2”に設定され、セレクタ32Bも“2”に設定されるため、基準クロックclk0を8分周した動作クロックclk1がセレクタ32Bから出力される。
(実施例3の制御方法)
図12は、図8及び図9の情報処理システムの動作を示すタイムチャートである。
この図12では、バスマスタ(CPU,DMAC0)2−0,2−1がバスアクセスを行っていない状態から、バスマスタ(CPU)2−0、バスマスタ(DMAC0)2−1の順にバスアクセス要求が発生し、各バスマスタ(CPU,DMAC0)2−0,2−1のバスアクセスと動作クロックclk1の周波数f/nの変化が示されている。例えば、周波数待ち合わせレジスタ24の初期値は100、周波数設定レジスタ35の初期値は0とする。
時刻t1までの期間において、バスマスタバスマスタ(CPU,DMAC0)2−0,2−1がバスアクセスを行っていない状態では、基準クロックclk0の16分周の動作クロックclk1がクロック分周回路30Bから出力され、最も消費電力が低い状態となっている。
バスマスタ(CPU)2−0がバススレーブ(RAM)3−1をアクセスする場合、時刻t1において、バス権要求信号req0を“H”にして、バス1のアクセス権をバス調停回路20Bに対して要求する。バス調停回路20Bは、バス権要求信号req0が“H”であることを検出し、次のクロックサイクルの時刻t2で、バス権許可信号grant0の“H”を出力する。バス権許可信号grant0を受けたバスマスタ(CPU)2−0は、バススレーブ(RAM)3−1に対するアクセスを開始する。
又、この動作と並行して、バス権要求信号req0が“H”になったことを検出したバス権検出回路20Bは、時刻t1において、検出信号bus_detectの“1”を出力する。次のクロックサイクルの時刻t2で、クロック分周回路30Bのセレクト信号SELが“1”となり、セレクタ32Bが切り替わって、基準クロックclk0の8分周の動作クロックclk1が出力され、バス1の転送速度が2倍に向上する。
サイクル検出回路22Bの指定サイクル数を例えば100サイクルから1000サイクルに変更したい場合、時刻t2’において、バスマスタ(CPU)2−0が周波数待ち合わせレジスタ24に1000を書き込み、これにより周波数待ち合わせレジスタ24の値が100から1000に変化する。この時、バス権要求信号req0とバス権要求信号req1が共に“H”の期間が1000サイクル間持続しないと、検出信号bus_detectの値は変化せず、動作クロックclk1の周波数f/nは変更されないようになる。
バスマスタ(CPU)2−0がRAMアクセス中にバスマスタ(DMAC0)2−1がバススレーブ(RAM)3−1に対するアクセスを要求する場合、時刻t3において、バス権要求信号req1を“H”にして、バス1のアクセス権をバス調停回路10に対して要求する。バス調停回路10は、バス権要求信号req1が“H”であることを検出し、バスマスタ(CPU)2−0がバス権を持っているが、バスマスタ(DMAC0)2−1の優先順位がバスマスタ(CPU)2−0より高いので、次のクロックサイクルの時刻t4で、バスマスタ(CPU)2−0のバス権許可信号grant0を“L”に落として、バスマスタ(DMAC0)2−1のバス権許可信号grant1の“H”を出力する。バス権許可信号grant1を受けたバスマスタ(DMAC0)2−1は、バススレーブ(RAM)3−1に対するアクセスを開始する。
又、この動作と並行して、バス権要求信号req1が“H”になったことを検出したバス権検出回路20Bは、この時、バス権要求信号req0も“H”であるため、時刻t3において、検出信号bus_detectの“2”を出力する。次のクロックサイクルの時刻t4で、クロック分周回路30Bのセレクト信号SELが“2”となり、セレクタ32Bが切り替わって、基準クロックclk0の4分周の動作クロックclk1が出力され、バス1の転送速度が更に2倍に向上する。又、バス権要求信号req0及びreq1が共に“H”であるため、時刻t4において、サイクル検出回路22Bのカウンタ22aは、0からカウントアップを開始する。
時刻t5において、サイクル検出回路22Bのカウンタ22aの値が1000になった時、次のクロックサイクルの時刻t6で、検出信号bus_detectの“3”を出力する。更に次のクロックサイクルの時刻t7で、クロック分周回路30Bのセレクト信号SELが“3”となり、セレクタ32が切り替わって、基準クロックclk0の2分周の動作クロックclk1が出力され、バス1の転送速度が更に2倍に向上する。
このように、周波数待ち合わせレジスタ24を用いてバス権要求信号の輻輳状態継続サイクルを設定することが可能となり、動作周波数f/nや切り替えタイミングを選択できるため、情報処理システムの動作の柔軟性が向上する。
(実施例3の効果)
実施例3によれば、切り替える動作周波数、及び輻輳状態継続時の切り替えタイミングを予め設定できるレジスタ24,35を持つことにより、初期の値とは異なる動作周波数、及び切り替えタイミングを選択できるので、情報処理システムの動作の柔軟性が向上し、情報処理システムの状態に応じた最適な動作周波数f/nを選択できる。この結果、情報処理システムの状態に応じた、処理時間、バス転送能力の最適化、及び省電力効果が期待できる。
実施例1〜3では、1つのバスシステムを例に説明したが、本発明は複数のバスを有するマルチバスシステムにおいても適用可能である。
図13は、本発明の実施例4におけるマルチバスを採用した情報処理システムを示す概略の構成図であり、実施例1〜3を示す図1、図5、図8中の要素と共通の要素には共通の符号が付されている。
本実施例4の情報処理システムでは、図1、図5、図8に示すバス権検出回路20,20A又は20Bと、この出力側に接続されたクロック分周回路30,30A又は30Bと、この出力側に接続されたマルチバスシステム本体40とを備えている。
マルチバスシステム本体40は、複数のバス1−0〜1−2を有している。各バス1−0〜1−2には、各バスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2と、各バス調停回路10−0〜10−2とがそれぞれ接続されている。更に、、各バス1−0〜1−2のうち、バス1−0には、複数のバススレーブ(ROM,RAM)3−00,3−01が、バス1−1には、複数のバススレーブ(ROM,RAM)3−10,3−11が、バス1−2には、複数のバススレーブ(ROM,RAM)3−20,3−21が、それぞれ接続されている。
このような構成の情報処理システムによれば、複数のバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2がそれぞれ別のバススレーブ(ROM,RAM)3−00,3−01,3−10,3−11,3−20,3−21へアクセスしている際は、それぞれのバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2がバス使用許可を得られるため、アクセス発生を待たされることはないが、複数のバスマスタ(CPU,DMAC0,DMAC1)2−0〜2−2が1つのバススレーブ(例えば、ROM3−00)へアクセスする際には、実施例1〜3とほぼ同様に、最適な動作クロックclk1を供給するため、バス転送の輻輳状態を少なくすることが可能である。
(変形例)
本発明は、上記実施例1〜4に限定されず、例えば、図1のバス調停回路10、図2、図5、図9のバス権検出回路20,20A,20B、及びクロック分周回路30,30A,30B等を図示以外の他の回路構成に変更する等、種々の利用形態や変形が可能である。
本発明の実施例1を示す情報処理システムの概略の構成図である。
図1中のバス権検出回路20及びクロック分周回路30を示す構成図である。
図2中のリクエスト検出回路21から出力される検出信号bus_detectの真理値を示す図である。
図1及び図2の情報処理システムの動作を示すタイムチャートである。
本発明の実施例2の情報処理システムにおけるバス権検出回路及びクロック分周回路を示す構成図である。
図5中のサイクル検出回路22の真理値を示す図である。
図1及び図5の情報処理システムの動作を示すタイムチャートである。
本発明の実施例3を示す情報処理システムの概略の構成図である。
図8中のバス権検出回路及びクロック分周回路を示す構成図である。
図9中のサイクル検出回路22Bの真理値を示す図である。
図9中の周波数設定レジスタ35の真理値を示す図である。
図8及び図9の情報処理システムの動作を示すタイムチャートである。
本発明の実施例4におけるマルチバスを採用した情報処理システムを示す概略の構成図である。
符号の説明
1,1−0〜1−2 バス
2−0〜2−2 バスマスタ
3−0,3−1,3−00,3−01,3−10,3−11,3−20,3−21
バススレーブ
10,10−0〜10−2 バス調停回路
20,20A,20B バス権検出回路
21 リクエスト検出回路
22,22B サイクル検出回路
24 周波数待ち合わせレジスタ
30,30A,30B クロック分周回路
31−0〜31−4 分周回路
33 クロック分周設定レジスタ
34 バスインタフェース回路
35 周波数設定レジスタ
40 マルチバスシステム本体