(57)【要約】【課題】  バスを介してデータ転送する情報処理システムにおいて、データ転送速度を充分に発揮しつつ、データ転送時の省電力化を図ることである。【解決手段】  データ転送を行うバスと、前記バスに接続され且つバス権要求信号を出力する複数のマスタデバイスと、前記複数のマスタデバイスから前記バスを介してバス権要求信号を受信し、何れかのマスタデバイスにバス権を付与することを示すバス権許可信号を前記マスタデバイスに出力するバス調停回路と、前記複数のマスタデバイスの状態に応じて、前記複数のマスタデバイスの何れかが、各マスタデバイスの動作時のクロック周波数に対応した周波数情報を記録する第１のレジスタと、前記バス権許可信号を受信し、前記第１のレジスタから当該バス権許可信号に対応する周波数情報を読み出して、当該周波数情報に対応する周波数のクロックを出力するクロック出力回路と、を備えた情報処理システム。【選択図】      図２
2007048166.tif 000002
【特許請求の範囲】
【請求項１】
データ転送を行うバスと、
前記バスに接続され且つバス権要求信号を出力する複数のマスタデバイスと、
前記複数のマスタデバイスから前記バスを介してバス権要求信号を受信し、何れかのマスタデバイスにバス権を付与することを示すバス権許可信号を前記マスタデバイスに出力するバス調停回路と、
前記複数のマスタデバイスの状態に応じて、前記複数のマスタデバイスの何れかが、各マスタデバイスの動作時のクロック周波数に対応した周波数情報を記録する第１のレジスタと、
前記バス権許可信号を受信し、前記第１のレジスタから当該バス権許可信号に対応する周波数情報を読み出して、当該周波数情報に対応する周波数のクロックを出力するクロック出力回路と、
を備えた情報処理システム。
【請求項２】
前記クロック出力回路は、第１のクロックを入力され、前記周波数情報に対応する分周比で前記第１のクロックを分周して、前記周波数情報に対応する周波数のクロックとして第２のクロックを出力する分周回路である、請求項１に記載の情報処理システム。
【請求項３】
前記分周回路は、
前記第１のクロックを複数の分周比で分周する複数の分周ユニットと、
前記複数の分周ユニットから出力されるクロックのうち、前記周波数情報に対応する分周比のクロックを選択して前記第２のクロックとして出力する選択回路と、
を有する請求項２に記載の情報処理システム。
【請求項４】
前記クロック出力回路は、
前記バス権許可信号を受信し、当該バス権許可信号に対応する周波数情報を前記第１のレジスタから取得し、当該周波数情報を出力する検出回路と、
前記検出回路から出力される前記周波数情報が記録される第２のレジスタとをさらに有し、
前記選択回路は、前記第２のレジスタに記録されている前記周波数情報を取得し、当該周波数情報に対応する前記第２のクロックを出力する、
請求項３に記載の情報処理システム。
【請求項５】
前記情報処理システムは、前記バスに接続され且つ前記マスタデバイスがデータ転送を行うスレーブデバイスをさらに備え、
前記マスタデバイスの状態は、各マスタデバイスがデータ転送を制御するスレーブデバイスのデータ転送速度である、請求項１乃至４の何れかに記載の情報処理システム。
【請求項６】
前記第１のレジスタは、情報処理システムが動作中に書き換え可能である、請求項１乃至５の何れかに記載の情報処理システム。
【請求項７】
データ転送を行うバスと、前記バスに接続された複数のマスタデバイスを備えた情報処理システムの制御方法であって、
前記複数のマスタデバイスの状態に応じて、各マスタデバイスの動作時のクロック周波数に対応した周波数情報を第１のレジスタに記録するステップと、
前記マスタデバイスの少なくとも１つからバス権要求信号を受信して何れか１つのマスタデバイスにバス権許可信号を出力するステップと、
前記第１のレジスタから前記バス権許可信号に対応する周波数情報を読み出して、当該周波数情報に対応する周波数のクロックを出力するステップと、
を含む情報処理システムの制御方法。
【請求項８】
前記クロックを出力するステップは、前記周波数情報に対応する分周比で第１のクロックを分周して、前記周波数情報に対応する周波数のクロックとして第２のクロックを出力するステップである、請求項７に記載の情報処理システムの制御方法。
【請求項９】
前記情報処理システムは、前記バスに接続され且つ前記マスタデバイスがデータ転送を行うスレーブデバイスをさらに備え、
前記マスタデバイスの状態は、各マスタデバイスがデータ転送を制御するスレーブデバイスのデータ転送速度である、請求項７乃至８の何れかに記載の情報処理システムの制御方法。
【請求項１０】
前記第１のレジスタを情報処理システムが動作中に書き換える、請求項７乃至９の何れかに記載の情報処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、特に、各種デバイス間でバスを介してデータ転送を行う情報処理システムに関する。
【０００２】
また、本発明は、情報処理システムの制御方法、特に、各種デバイス間でバスを介してデータ転送を行う情報処理システムの制御方法に関する。
【背景技術】
【０００３】
従来からハードウェアの省電力化手法としては、ハードウェアを構成する半導体装置の各回路でのスイッチング時の消費電力が大きいことに着目して、ハードウェア全体あるいは部分的にクロックを停止させたり、クロック周波数を低減する手法が提案されている。クロック周波数の低減の方法では、１つのバスマスタ（以下、マスタデバイスという）がバス権を取得した後、システムのクロック周波数を必要に応じて低減する方法がとられている。
【０００４】
特許文献１には、データの通信を行うバスと、バスを用いてデータを転送するに際しバス権要求信号を出力すると共にバス権信号を受け取ることによりバスを使用する権利を得る複数個の機能ブロック（マスタデバイス）と、この複数個の機能ブロックからそれぞれバス権要求信号を受け取り、調停して複数個の機能ブロックの内１つの機能ブロックに対してバス権信号を与えると共にバス権要求識別信号を出力するバス調停手段と、バス権要求識別信号に基づいてクロック周波数を制御するクロック制御手段とを備えたデータ処理回路が記載されている。このデータ処理装置では、バス調停手段からのバス権要求識別信号に基づいて、クロック制御手段が、バス権を持つ機能ブロックに適した周波数にクロックを制御し、低消費電力化を図っている。
【０００５】
特許文献２には、動作周波数の異なるスレーブデバイスが混在するＩ２Ｃバスシステムにおいて、制御対象のスレーブデバイスが低速スレーブデバイスか高速スレーブデバイスかを判定し、マスタバスクロックラインのクロック信号の周波数を制御対象のスレーブデバイスの動作周波数に設定する周波数設定手段と、周波数設定手段によって設定された動作周波数のクロックをマスタバスクロックラインに出力するＩ２Ｃ制御部と、制御対象のスレーブデバイスが低速のスレーブデバイスの場合は、Ｉ２Ｃ制御部から低速スレーブデバイス側のマスタバスクロックラインのみにクロック信号を供給し、制御対象のスレーブデバイスが高速のスレーブデバイスの場合は、Ｉ２Ｃ制御部から高速スレーブデバイス側のマスタバスクロックラインのみにクロック信号を供給するスイッチと、を備えた電子機器が記載されている。この電子機器では、高速スレーブデバイスにクロックを供給する際には低速スレーブデバイスを切り離し、低速スレーブデバイスにクロックを供給する際には高速スレーブデバイスを切り離すので、システムの動作速度を低速スレーブデバイスの動作速度に合わせる必要がなくなり、システムの高速化が可能となる。
【特許文献１】特開２００３−３４５４５５
【特許文献２】特開２００３−１４１０６１
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の構成では、クロック制御手段は、バス権を持つ機能ブロックを識別する情報を含むバス権要求識別信号から当該機能ブロックに対応したクロック周波数を判断し、クロック周波数を設定している。しかしながら、バス権を持つ機能ブロックがバスを介してスレーブデバイス同士のデータ転送を行う場合、スレーブデバイスの種類によってはデータ転送に適した周波数が変わる。例えば、機能ブロックがＤＭＡＣ（Direct Memory Access Controller）であり、ＤＭＡＣがＵＳＢ（Universal Serial Bus）とＲＡＭ（Random Access Memory）との間のデータ転送を行う場合と、ＤＭＡＣがＲＯＭ（Read Only Memory）とＲＡＭとの間のデータ転送を行う場合とでは、データ転送速度が異なる。ＵＳＢとＲＡＭとの間のデータ転送速度は、ＲＯＭとＲＡＭとの間のデータ転送速度よりも速い。しかしながら、特許文献１に記載の構成では、ＵＳＢとＲＡＭとの間のデータ転送時と、ＲＯＭとＲＡＭとの間のデータ転送時とにおいて、ＤＭＡＣの動作周波数を変更することができず、何れのデータ転送にも同一のクロック周波数を用いるか、各データ転送ごとに別々のＤＭＡＣを用意する必要がある。何れのデータ転送にも同一クロック周波数を用いる場合には、低い周波数に合わせると本来高速のデータ転送が可能なＵＳＢとＲＡＭとの間のデータ転送能力を充分に発揮できず、高い周波数に合わせると省電力化を十分に図ることができない。一方、各データ転送ごとに別々のＤＭＡＣを設ける場合には、システムの構成が複雑となり、コストアップを招く問題がある。
【０００７】
特許文献２に記載の構成では、クロック供給の際に高速スレーブデバイスと低速スレーブデバイスとを分離して、スレーブデバイスの動作周波数に応じてクロックを最適な周波数に設定しているが、動作周波数の種類が増加すると、例えば、１／８分周、１／４分周、１／２分周、１分周の４種類の動作周波数を用いる場合には、４種類のマスタバスクロックラインを切り換えるスイッチが必要となり装置の大型化を招く虞がある。
【０００８】
本発明の目的は、バスを介してデータ転送する情報処理システムにおいて、データ転送速度を充分に発揮しつつ、データ転送時の省電力化を図ることである。
【課題を解決するための手段】
【０００９】
本発明に係る情報処理システムは、データ転送を行うバスと、前記バスに接続され且つバス権要求信号を出力する複数のマスタデバイスと、前記複数のマスタデバイスから前記バスを介してバス権要求信号を受信し、何れかのマスタデバイスにバス権を付与することを示すバス権許可信号を前記マスタデバイスに出力するバス調停回路と、前記複数のマスタデバイスの状態に応じて、前記複数のマスタデバイスの何れかが、各マスタデバイスの動作時のクロック周波数に対応した周波数情報を記録する第１のレジスタと、前記バス権許可信号を受信し、前記第１のレジスタから当該バス権許可信号に対応する周波数情報を読み出して、当該周波数情報に対応する周波数のクロックを出力するクロック出力回路と、を備えた情報処理システム。
【発明の効果】
【００１０】
この情報処理システムでは、複数のマスタデバイスの少なくとも１つからの信号によって各マスタデバイスの動作時の周波数情報を記録することができるため、同一マスタデバイスに対して、スレーブデバイス間のデータ転送速度に応じてクロックの周波数を変更することが可能になる。従って、同一マスタデバイスのデータ転送速度の変化に応じて最適なクロック周波数を設定することが可能となる。この結果、データ転送速度を充分に発揮しつつ、データ転送時の省電力化を図るように、クロック周波数を変更することができる。
【発明を実施するための最良の形態】
【００１１】
〔全体構成〕
図１は、本発明に係る情報処理システム１の全体構成を示すブロック図である。
【００１２】
情報処理システム１は、マスタデバイスとしてのＣＰＵ１Ｃ、ＤＭＡＣ０及びＤＭＡＣ１と、スレーブデバイスとしてのＲＯＭ２１、ＲＡＭ２２、ＵＡＲＴ２３、ＵＳＢ２４と、バス３と、バス調停回路４と、クロック分周回路５とを備えている。
【００１３】
ＣＰＵ１Ｃは、中央演算装置であり、情報処理システム１全体の制御を行う。ＤＭＡＣ０及びＤＭＡＣ１は、ダイレクトメモリアクセスコントローラ(Direct Memory Access Controller)であり、バス３に接続されたスレーブデバイス間のデータ転送を制御するマスタデバイスである。
【００１４】
ＣＰＵ１Ｃは、ＤＭＡＣ０がＵＡＲＴ２３とＲＡＭ２２との間のデータ転送を行う様にＤＭＡＣ０を設定すると共に、ＤＭＡＣ１がＵＳＢ２４とＲＡＭ２２との間のデータ転送を行う様にＤＭＡＣ１を設定する。ＤＭＡＣ０は、ＣＰＵ１Ｃからの設定に基づいて、ＵＡＲＴ２３とＲＡＭ２２との間のデータ転送を行う。ＤＭＡＣ１は、ＣＰＵ１Ｃからの設定に基づいて、ＵＳＢ２４とＲＡＭ２２との間のデータ転送を行う。
【００１５】
ＵＡＲＴ２３のデータ転送速度は低速であるため、ＵＡＲＴ２３からＲＡＭ２２にデータ転送を行う場合には、クロック周波数を低くしても問題がなく、ＤＭＡＣ０の動作時のクロックは１／４分周に設定する。一方、ＵＳＢ２４のデータ転送速度は高速であるため、ＵＳＢ２４からＲＡＭ２２にデータ転送を行う場合には、クロック周波数を高く設定する必要があり、ＤＭＡＣ１の動作時のクロックは１／２分周に設定する。
【００１６】
バス３は、ＣＰＵ１Ｃ、ＤＭＡＣ０、ＤＭＡＣ１からなるマスタデバイスと、ＲＯＭ２１、ＲＡＭ２２、ＵＡＲＴ２３、ＵＳＢ２４からなるスレーブデバイスとの間のデータ転送を行うために必要な信号接続用ブロックである。ＢｕｓＣ、Ｂｕｓ０、Ｂｕｓ１は、それぞれ、バス３とＣＰＵ１Ｃ、ＤＭＡＣ０、ＤＭＡＣ１との間を接続するバス信号又は信号線である。Ｂｕｓ１１、Ｂｕｓ１２、Ｂｕｓ１３、Ｂｕｓ１４は、それぞれ、バス３とＲＯＭ２１、ＲＡＭ２２、ＵＡＲＴ２３、ＵＳＢ２４との間を接続するバス信号又は信号線である。Ｂｕｓ５０は、バス３とクロック分周回路５０との間を接続するバス信号又は信号線である。これらのバス信号には、各マスタスレーブ間のデータ転送に必要な信号が含まれる。
【００１７】
ＲＯＭ２１は、リードオンリメモリ(Read Only Memory)であり、例えば、ＣＰＵ１Ｃを動作させるためのプログラムを格納する。ＲＡＭ２２は、ランダムアクセスメモリ(Random Access Memory)であり、例えば、ＲＯＭ２１から読み出されたプログラムを一時的に記憶すると共にＣＰＵ１Ｃにより処理されたデータを一時的に格納する作業用メモリとして機能する。ＵＡＲＴ(Universal Asynchronous Receiver Transmitter)２３は、非同期シリアルポートであり、外部機器と比較的低速な、ＵＳＢによるシリアル通信に比較して低速なシリアル通信を行う。ＵＡＲＴによるデータ転送速度は、最大９２１．６ｋｂｐｓ程度である。ＵＳＢ２４は、ユニバーサルシリアルポート(Universal Serial Bus)であり、外部機器と高速なシリアル通信を行う。ＵＳＢによるデータ転送速度は、ＵＳＢ１．１の場合に最大１２Ｍｂｐｓ、ＵＳＢ２．０の場合に最大４８０Ｍｂｐｓである。
【００１８】
バス調停回路４は、複数のマスタデバイスが同時にバス３にアクセスする場合に、バス３でのデータの衝突を回避し、バス３にアクセスする複数のマスタデバイスの中から１つのマスタデバイスに対して、バス３へのアクセスを許可するための回路である。
【００１９】
バス調停に使用する信号は、バス調停回路４と各マスタデバイスとに接続される信号である。バス権要求信号ＲＥＱＣは、ＣＰＵ１Ｃがバス権を要求する信号である。バス権要求信号ＲＥＣ０は、ＤＭＡＣ０がバス権を要求する信号である。バス権要求信号ＲＥＱ１は、ＤＭＡＣ１がバス権を要求する信号である。ＣＰＵ１Ｃは、バス権を要求する場合にバス権要求信号ＲＥＱＣをアサートする。ＤＭＡＣ０は、バス権を要求する場合にバス権要求信号ＲＥＱ０をアサートする。ＤＭＡＣ１は、バス権を要求する場合にバス権要求信号ＲＥＱ１をアサートする。
【００２０】
バス権許可信号ＧＲＡＮＴＣ、ＧＲＡＮＴ０、ＧＲＡＮＴ１は、バス調停回路４から各マスタデバイスに接続されると共に、クロック分周回路５に接続されている。バス権許可信号ＧＲＡＮＴＣは、ＣＰＵ１Ｃがバス３の使用を許可されたことを示す信号である。バス権許可信号ＧＲＡＮＴ０は、ＤＭＡＣ０がバス３の使用を許可されたことを示す信号である。バス権許可信号ＧＲＡＮＴ１は、ＤＭＡＣ１がバス３の使用を許可されたことを示す信号である。バス調停回路４は、ＣＰＵ１Ｃにバス権を許可する場合、バス権許可信号ＧＲＡＮＴＣをアサートする。バス調停回路４は、ＤＭＡＣ０にバス権を許可する場合、バス権許可信号ＧＲＡＮＴ０をアサートする。バス調停回路４は、ＤＭＡＣ１にバス権を許可する場合、バス権許可信号ＧＲＡＮＴ１をアサートする。
【００２１】
バス調停回路４は、バス権要求信号の何れかがアサートされると、マスタデバイスによるバス３の使用に競合がないか否かを判定する。バス調停回路４は、バス３の使用に競合がない場合、バス権要求信号をアサートしたマスタデバイスのバス権許可信号をアサートする。一方、バス調停回路４は、バス３の使用に競合がある場合には、バス権要求信号をアサートしたマスタデバイスのバス権許可信号をアサートしない。例えば、バス調停回路４は、バス権要求信号ＲＥＱＣがアサートされると、他のマスタデバイスのバス権許可信号ＧＲＡＮＴ０又はＧＲＡＮＴ１の何れかが既にがアサートされているか否かを判定する。バス調停回路４は、バス権許可信号ＧＲＡＮＴ０又はＧＲＡＮＴ１の何れかが既にがアサートされている場合には、バス権許可信号ＧＲＡＮＴＣをアサートしない。一方、バス調停回路４は、バス権許可信号ＧＲＡＮＴ０又はＧＲＡＮＴ１の何れもアサートされていない場合には、バス権許可信号ＧＲＡＮＴＣをアサートする。
【００２２】
クロック分周回路５は、基準となるクロックＣＬＫ０（周波数ｆ０）を分周して、動作クロックとしてのクロックＣＬＫ１（周波数ｆ１）を生成する回路である。より詳細には、クロック分周回路５は、クロックＣＬＫ０の入力を受け付け、マスタデバイスとスレーブデバイスとの間のデータ転送速度に応じた周波数になるようにクロックＣＬＫ０を分周してクロックＣＬＫ１を生成し、クロックＣＬＫ１をバス３に出力する。クロックＣＬＫ１は、バス３を介して、各マスタデバイス及び各スレーブデバイスに供給され、システム全体の動作クロックとなる。バス権が許可されているマスタデバイスは、クロックＣＬＫ１によって動作し、スレーブデバイス間のデータ転送を行う。
【００２３】
〔クロック分周回路〕
以下、クロック分周回路５の詳細を図面を参照して説明する。
【００２４】
図２は、クロック分周回路５の構成を示す機能ブロック図である。
【００２５】
クロック分周回路５は、前述したように、クロックＣＬＫ０を分周する機能を持つ。ここでは、クロック分周回路５の例として、分周比８（１／８分周）、分周比（１／４分周）、分周比（１／２分周）、及び、分周比１（１／１分周：分周なし）の分周比でクロックＣＬＫ０を分周する場合を例に挙げて説明する。クロック分周回路５に於いて１／ｎ分周（ｎは正の整数）が選択された場合には、クロックＣＬＫ１の周波数ｆ１は、クロックＣＬＫ０の周波数ｆ０の１／ｎとなり、ｆ１＝ｆ０／ｎである。
【００２６】
また、ここでは、４種類の分周比で分周する場合を例に挙げるが、分周比の種類は３種類以下であっても、５種類以上であっても良い。例えば、分周比１６（１／１６分周）、分周比８（１／８分周）、分周比（１／４分周）、分周比（１／２分周）、及び、分周比１（１／１分周：分周なし）の分周比でクロックＣＬＫ０を分周する場合にも適用することができる。
【００２７】
クロック分周回路５は、分周制御回路５０１と、クロック分周設定レジスタ５０６と、マスタ検出回路５０７と、マスタ周波数設定レジスタ５０８と、バスインターフェース回路５０９とを備えている。
【００２８】
分周制御回路５０１は、クロック分周設定レジスタ５０６に記録されている値を読み込んで、当該値に対応した分周比で分周されたクロックＣＬＫ０をクロックＣＬＫ１として出力する。クロック分周設定レジスタ５０６に記録されている値は、分周制御回路５０１でクロックＣＬＫ０を分周する際の分周比を設定するための周波数情報であり、分周比に対応している。また、周波数情報は、分周比を指定することにより結果的に動作クロックＣＬＫ１の周波数を設定するため、動作周波数ＣＬＫ１の周波数自体を指定する情報とも言える。
【００２９】
分周制御回路５０１は、セレクタ５０２と、１／８分周回路５０３、１／４分周回路５０４、１／２分周回路５０５と、を有している。
【００３０】
セレクタ５０１は、１／８分周回路５０３の出力が入力されるポートＤと、１／４分周回路５０４の出力が入力されるポートＣと、１／２分周回路５０５の出力が入力されるポートＢと、ＣＬＫ０が入力されるポートＡとを有している。
【００３１】
以下の説明では、クロックＣＬＫ０をｎ分周したクロックをＣＬＫ０（１／ｎ）と表現する。
【００３２】
ポートＤは、クロックＣＬＫ０を１／８分周したクロックＣＬＫ０（１／８）が入力される。ポートＣは、クロックＣＬＫ０を１／４分周したクロックＣＬＫ０（１／４）が入力される。ポートＢは、クロックＣＬＫ０を１／２分周したクロックＣＬＫ０（１／２）が入力される。ポートＡは、クロックＣＬＫ０が分周なしで入力される。セレクタ５０１は、クロック分周設定レジスタ５０６に記録された周波数情報を読み込み、周波数情報に基づいてポートＡ〜Ｄの何れかに入力されるクロックを出力ポートからクロックＣＬＫ１として出力する。
【００３３】
クロック分周設定レジスタ５０６は、マスタ検出回路５０７によって周波数情報が書き込まれる。本実施形態では、周波数情報は、「００Ｂ」、「０１Ｂ」、「１０Ｂ」、「１１Ｂ」の何れかの値である。周波数情報が「００Ｂ」である場合、セレクタ５０２は、ポートＡの入力であるクロックＣＬＫ０をクロックＣＬＫ１＝ＣＬＫ０として出力する。周波数情報が「０１Ｂ」である場合、セレクタ５０２は、ポートＢの入力であるクロックＣＬＫ０（１／２）をクロックＣＬＫ１＝ＣＬＫ０（１／２）として出力する。周波数情報が「１０Ｂ」である場合、セレクタ５０２は、ポートＣの入力であるクロックＣＬＫ０（１／４）をクロックＣＬＫ１＝ＣＬＫ０（１／４）として出力する。周波数情報が「１１Ｂ」である場合、セレクタ５０２は、ポートＤの入力であるクロックＣＬＫ０（１／８）をクロックＣＬＫ１＝ＣＬＫ０（１／８）として出力する。
【００３４】
バスインターフェース５０９は、バス３との接続のためのインターフェース回路である。バスインターフェース５０９は、マスタ周波数設定レジスタ５０８とバス３との信号の送受信をインターフェースする。また、バスインターフェース５０９は、クロック分周設定レジスタ５０６とバス３との信号の送受信をインターフェースする。
【００３５】
マスタ検出回路５０７は、バス調停回路４からバス権許可信号ＧＲＡＮＴＣ、ＧＲＡＮＴ０、ＧＲＡＮＴ１が接続されており、バス調停回路４によってアサートされたバス権許可信号（ＧＲＡＮＴＣ、ＧＲＡＮＴ０、ＧＲＡＮＴ１の何れか）に応じて、マスタ周波数設定レジスタ５０８に記録されている周波数情報を読み出し、読み出した周波数情報にクロック分周設定レジスタ５０６の記録内容を書き換える。前述したように、バス権許可信号ＧＲＡＮＴＣがアクティブの場合にＣＰＵ１Ｃにバス権が許可され、バス権許可信号ＧＲＡＮＴ０がアクティブの場合にＤＭＡＣ０にバス権が許可され、バス権許可信号ＧＲＡＮＴ１がアクティブの場合に、ＤＭＡＣ１にバス権が許可される。
【００３６】
マスタ周波数設定レジスタ５０８は、マスタデバイスによって書き換え可能なレジスタであり、ＣＰＵ１Ｃからの設定が可能である。マスタ周波数設定レジスタ５０８は、バスインターフェース５０９を介してバス３と接続されており、ＣＰＵ１Ｃからの信号をバス３、バスインターフェース５０９を介して受信し、受信した信号に基づいて記録内容が書き換えられる。ＣＰＵ１Ｃは、バス権の切り換えによりバス権が許可されるマスタデバイスを切り換える場合に、マスタ周波数設定レジスタ５０８に周波数情報を予め設定する。マスタ周波数設定レジスタ５０８は、情報処理システムが動作中に変更可能である。後述するように、ＤＭＡＣ１によるＵＳＢ２４とＲＡＭ２２との間のデータ転送が完了し、ＣＰＵ１Ｃが、ＤＭＡＣ１から完了信号を受信し、ＵＳＢ２４を使用することがない状況であり且つメモリ間転送が必要になったと判断すると、ＣＰＵ１Ｃは、ＤＭＡＣ１のデータ転送の設定をＲＯＭ２１とＲＡＭ２２との間に設定し、ＲＯＭ２１とＲＡＭ２１との間のデータ転送速度に応じた周波数情報をマスタ周波数設定レジスタ５０８に設定する。
【００３７】
図３は、マスタ周波数設定レジスタ５０８のデータ構成例である。同図（ａ）に示すように、マスタ周波数設定レジスタ５０８は、バス権許可信号ＧＲＡＮＴＣによって読み出される領域５０８Ｃと、バス権許可信号ＧＲＡＮＴ０によって読み出される領域５０８０と、バス権許可信号ＧＲＡＮＴ１によって読み出される領域５０８１とを有する。
【００３８】
領域５０８Ｃは、ＣＰＵ１Ｃがデータ転送を行う際の動作クロックＣＬＫ１の周波数を設定するための分周比に対応する値を周波数情報として格納する領域である。言い換えれば、領域５０８Ｃは、ＣＰＵ１Ｃ用のクロックＣＬＫ１の周波数を指定する値を格納する。本実施形態では、ＣＰＵ１ＣのクロックＣＬＫ１を生成するための分周比は１、対応する値は「００Ｂ」である。
【００３９】
領域５０８０は、ＤＭＡＣ０がデータ転送を行う際の動作クロックＣＬＫ１の周波数を設定するための分周比に対応する値を周波数情報として格納する領域である。言い換えれば、領域５０８０は、ＤＭＡＣ０用のクロックＣＬＫ１の周波数を指定する値を格納する。本実施形態では、ＤＭＡＣ０のクロックＣＬＫ１を生成するための分周比は４、対応する値は「１０Ｂ」である。
【００４０】
領域５０８１は、ＤＭＡＣ１がデータ転送を行う際の動作クロックＣＬＫ１の周波数を設定するための分周比に対応する値を周波数情報として格納する領域である。領域５０８１は、ＤＭＡＣ１用のクロックＣＬＫ１の周波数を指定する値を格納する。本実施形態では、ＤＭＡＣ１のクロックＣＬＫ１を生成するための分周比は２、対応する値は「０１Ｂ」である。
【００４１】
マスタ周波数設定レジスタ５０８の各領域の格納値は、ＣＰＵ１Ｃによって設定可能であり、ＣＰＵ１Ｃからバス３及びバスインターフェース回路５０９を介して受信する信号によって書き換えられる。例えば、図３（ｂ）に示すように、領域５０８１に「０１Ｂ」が格納されている場合において、バス調停回路４がＤＭＡＣ１にバス権を付与してバス調停回路４がＧＲＡＮＴ１をアサートしたとき、マスタ検出回路５０７は、マスタ周波数設定レジスタ５０８の領域５０８１から「０１Ｂ」を読み出し、「０１Ｂ」をクロック分周設定レジスタ５０６に書き込む。この結果、クロック分周制御回路５０１からは「０１Ｂ」に対応する分周比２のＣＬＫ１＝ＣＬＫ０（１／２）がバス３に出力される。一方、マスタ調停回路４が同一バス権を付与している間、即ちＤＭＡＣ１にバス権を付与している間において、図３（ｃ）に示すようにマスタ周波数設定レジスタ５０８の領域５０８１がＣＰＵ１Ｃによって「１１Ｂ」に書き換えられると、マスタ検出回路５０７は、マスタ周波数設定レジスタ５０８の領域５０８１から「１１Ｂ」を読み出し、クロック分周設定レジスタ５０６を「０１Ｂ」から「１１Ｂ」に書き換える。この結果、クロック分周設定レジスタ５０１からは「１１Ｂ」に対応する分周比８のＣＬＫ１＝ＣＬＫ０（１／８）がバス３に出力される。
【００４２】
このようなマスタ周波数設定レジスタ５０８及びマスタ検出回路５０７によれば、システムの動作中に状態が変化したとしても、同一バス権においてクロックＣＬＫ１の周波数を変更することができる。例えば、同一バス権において、データ転送速度を低下させても良い場合には、ＣＰＵ１Ｃからの信号によってマスタ周波数設定レジスタ５０８の値を変更することにより、クロックＣＬＫ１の周波数をデータ転送速度に応じた周波数に低減することができる。これにより、システムの省電力化を図ることができる。
【００４３】
〔動作〕
〔ＵＡＲＴとＲＡＭとの間のデータ転送〕
図３（ｂ）に示すように、マスタ周波数設定レジスタ５０８の領域５０８Ｃ、５０８０、５０８１にそれぞれ、「００Ｂ」、「１０Ｂ」、「０１Ｂ」が記録されていると仮定して説明する。
【００４４】
ＵＡＲＴ２３からＤＭＡＣ０に対してデータ転送要求があった場合、ＤＭＡＣ０は、バス調停回路４に対してバス権要求信号ＲＥＱ０をアサートする。バス調停回路４は、バス権要求信号ＲＥＱ０のアサートに応じて、バスマスタの競合があるか否かを判定、即ち、ＤＭＡＣ０以外のマスタデバイスがバス権要求信号をアサートしているか否かを判定する。バス調停回路４は、バスマスタの競合がない場合、即ち、ＤＭＡＣ０以外のマスタデバイスがバス権要求信号をアサートしていない場合、ＤＭＡＣ０及びクロック分周回路５に対してバス権許可信号ＧＲＡＮＴ０を出力する。バス権許可信号ＧＲＡＮＴ０は、ＤＭＡＣ０がバス３を使用することを許可することを表す信号である。クロック分周回路５は、バス権許可信号ＧＲＡＮＴ０の入力を受けて、ＧＲＡＮＴ０に応じた分周比でクロックＣＬＫ０を分周してクロックＣＬＫ１＝ＣＬＫ０（１／４）をバス３に出力する。ＤＭＡＣ０は、クロックＣＬＫ１＝ＣＬＫ０（１／４）で動作して、ＵＳＢ２４とＵＡＲＴ２３との間のデータ転送を開始する。
【００４５】
このときのクロック分周回路５の動作を詳細に説明すると以下の通りである。
【００４６】
マスタ検出回路５０７は、バス調停回路４からＧＲＡＮＴ０の入力を受け付けると、マスタ周波数設定レジスタ５０８の領域５０８０からＧＲＡＮＴ０に対応した値「１０Ｂ」を読み込み、読み込んだ値「０１Ｂ」をクロック分周設定レジスタ５０６に書き込む。
クロック分周制御回路５０１は、クロック分周設定レジスタ５０６に書き込まれた値「１０Ｂ」を読み込み、読み込んだ値「１０Ｂ」に対応する分周比４で分周されたクロックＣＬＫ１をバス３に出力する。クロック分周制御回路５０１では、セレクタ５０２がクロック設定レジスタ５０６に書き込まれた値「１０Ｂ」を読み込み、読み込んだ値「１０Ｂ」に対応する分周比４で分周されたクロックＣＬＫ０（ＣＬＫ０（１／４））が入力されるポートＣと出力ポートとを接続し、クロックＣＬＫ１＝ＣＬＫ０（１／４）を出力ポートからバス３に出力する。
【００４７】
クロック分周回路５からバス３にクロックＣＬＫ１＝ＣＬＫ０（１／４）が出力されると、ＤＭＡＣ０がクロックＣＬＫ１＝ＣＬＫ０（１／４）で動作して、ＵＳＢ２４とＵＡＲＴ２３との間のデータ転送を開始する。
【００４８】
〔ＵＳＢとＲＡＭとの間のデータ転送〕
ＵＳＢ２４からＤＭＡＣ１に対してデータ転送要求があった場合、ＤＭＡＣ１は、バス調停回路４に対してバス権要求信号ＲＥＱ１をアサートする。バス調停回路４は、バス権要求信号ＲＥＱ１のアサートに応じて、バスマスタの競合があるか否かを判定、即ち、ＤＭＡＣ１以外のマスタデバイスがバス権要求信号をアサートしているか否かを判定する。バス調停回路４は、バスマスタの競合がない場合、即ち、ＤＭＡＣ１以外のマスタデバイスがバス権要求信号をアサートしていない場合、ＤＭＡＣ１及びクロック分周回路５に対してバス権許可信号ＧＲＡＮＴ１を出力する。バス権許可信号ＧＲＡＮＴ１は、ＤＭＡＣ１がバス３を使用することを許可することを表す信号である。クロック分周回路５は、バス権許可信号ＧＲＡＮＴ１の入力を受けて、ＧＲＡＮＴ１に応じた分周比２でクロックＣＬＫ０を分周してクロックＣＬＫ１＝ＣＬＫ０（１／２）をバス３に出力する。ＤＭＡＣ１は、クロックＣＬＫ１＝ＣＬＫ０（１／２）で動作して、ＵＳＢ２４とＲＡＭ２２との間のデータ転送を開始する。
【００４９】
このときのクロック分周回路５の動作を詳細に説明すると以下の通りである。
【００５０】
マスタ検出回路５０７は、バス調停回路４からＧＲＡＮＴ１の入力を受け付けると、マスタ周波数設定レジスタ５０８からＧＲＡＮＴ１に対応した値「０１Ｂ」を読み込み、読み込んだ値「０１Ｂ」をクロック分周設定レジスタ５０６に書き込む。クロック分周制御回路５０１は、クロック分周設定レジスタ５０６に書き込まれた値「１０Ｂ」を読み込み、読み込んだ値「０１Ｂ」に対応する分周比２で分周されたクロックＣＬＫ０（ＣＬＫ０（１／２））をバス３に出力する。クロック分周制御回路５０１では、セレクタ５０２がクロック設定レジスタ５０６に書き込まれた値「０１Ｂ」を読み込み、読み込んだ値「０１Ｂ」に対応する分周比２で分周されたクロックＣＬＫ０であるＣＬＫ０（１／２）が入力されるポートＢと出力ポートとを接続し、クロックＣＬＫ１＝ＣＬＫ０（１／２）を出力ポートからバス３に出力する。
【００５１】
クロック分周回路５からバス３にクロックＣＬＫ１＝ＣＬＫ０（１／２）が出力されると、ＤＭＡＣ１がクロックＣＬＫ１＝ＣＬＫ０（１／２）で動作して、ＵＳＢ２４とＲＡＭ２２との間のデータ転送を開始する。
【００５２】
〔ＲＯＭからＲＡＭへのデータ転送〕
ＣＰＵ１Ｃは、ＤＭＡＣ１によるデータ転送の開始と完了とを管理しており、ＤＭＡＣ１によるＵＳＢ２４からＲＡＭ２２へのデータ転送が完了すると、ＣＰＵ１Ｃは、ＤＭＡＣ１から転送完了を示す信号を受信する。ＣＰＵ１Ｃは、ＤＭＡＣ１から転送完了を示す信号を受信すると、他のマスタデバイスがＵＳＢ２４を使用する状況であるか否かを判断し、ＲＯＭ２１とＲＡＭ２２との間でメモリ間転送が必要か否かを判断する。ＣＰＵ１Ｃは、ＵＳＢ２４を使用することがない状態であり、且つ、メモリ間転送が必要となった場合に、ＤＭＡＣ１のデータ転送の設定を「ＲＯＭ２１とＲＡＭ２２との間のデータ転送」に切り換える。
【００５３】
このデータ転送には高速処理が要求されないと仮定すると、ＣＰＵ１Ｃは、図３（ｃ）に示すように、５０６の領域５０８Ｃ、５０８０、５０８１にそれぞれ「００Ｂ」、「１０Ｂ、「１１Ｂ」を書き込む。
【００５４】
ＲＯＭ２１からＲＡＭ２２へのデータ転送を起動するために、ＣＰＵ１ＣからＤＭＡＣ１に対して転送起動要求を出すと、ＤＭＡＣ１は、バス調停回路４に対してバス権要求信号ＲＥＱ１をアサートする。これを受けたバス調停回路４は、バスの競合がなければ、バス権許可信号ＧＲＡＮＴ１をアサートする。バス権許可信号ＲＥＱ１は、ＤＭＡＣ１及びマスタ検出回路５０７（クロック分周回路５）に接続されており、マスタ検出回路５０７は、バス権許可信号ＧＲＡＮＴ１に応じてマスタ周波数設定レジスタ５０８の領域５０８１の値を読み出し、読み出した値をクロック分周設定レジスタ５０６に書き込む。この場合、マスタ周波数設定レジスタ５０８の領域５０８１には「１１Ｂ」が格納されているので、マスタ検出回路５０７は「１１Ｂ」を読み出して、クロック分周設定レジスタ５０６に「１１Ｂ」を書き込む。クロック分周制御回路５は、クロックＣＬＫ０を１／８に分周したクロックＣＬＫ１＝ＣＬＫ０（１／８）を出力する。この結果、ＤＭＡＣ１は、クロックＣＬＫ０を８分周したクロックＣＬＫ＝ＣＬＫ０（１／８）で動作して、ＲＯＭ２１とＲＡＭ２２との間のデータ転送を行う。
【００５５】
同一のマスタデバイス、ＤＭＡＣ１にバス権が付与される場合であっても、ＵＳＢ２４とＲＡＭ２２との間のデータ転送時と、ＲＯＭ２１とＲＡＭ２２との間のデータ転送時とでは、ＤＭＡＣ１の動作時のクロックＣＬＫ１の周波数を変更する。ＵＳＢ２４とＲＡＭ２２との間のデータ転送時には、高速処理が要求されるため、高い周波数である分周比２のクロックＣＬＫ１＝ＣＬＫ０（１／２）を用る。一方、ＲＯＭ２１とＲＡＭ２２との間のデータ転送時には、高速処理が要求されないため、分周比２よりも低い分周比８のクロックＣＬＫ１＝ＣＬＫ０（１／８）を用いる。このように、同一マスタデバイスのデータ転送時において、同一マスタデバイスが高速のスレーブデバイス間のデータ転送を行う際には、ＣＬＫ１の周波数を高く設定してデータ転送速度を最大限に発揮させ、一方、同一マスタデバイスが低速のスレーブデバイス間のデータ転送を行う際には、マスタデバイスの動作周波数を低下させて省電力化を図る。
【００５６】
〔作用効果〕
本実施形態では、バス調停回路４がバス権付与を示すバス権許可信号をマスタデバイス及びクロック分周回路５に出力し、マスタデバイスにバス権を付与すると共にマスタデバイスの動作に最適な周波数のクロックをマスタデバイスに供給することができるので、バス権の切り換えと同時に最適なクロックの周波数を設定することができる。従って、クロック周波数の変更のために一旦ＣＰＵ１Ｃがソフトウェアによる設定を行うまでの遅延時間がなくなり、最適な周波数のクロックでマスタデバイスの動作を即座に行うことができる。この結果、処理時間の低減、装置の省電力効果を期待することができる。
【００５７】
本実施形態では、マスタ検出回路５０７及びマスタ周波数設定レジスタ５０８によって同一マスタデバイスに対する周波数情報を変更可能としたので、システムの動作中に状態が変化する場合に、同一のバス権において動作周波数を選択可能となる。これにより、システムの柔軟性が向上し、常に最適な動作周波数を選択できる。この結果、省電力効果とバス転送能力の最適化を図ることができる。
【００５８】
本実施形態に係るマスタ検出回路５０７及びマスタ周波数設定レジスタ５０８によればマスタ検出回路５０７及びマスタ周波数設定レジスタ５０８によれば、システムの動作中に状態が変化し、マスタデバイスのデータ転送速度が変化する場合、データ転送速度に対応してクロックＣＬＫ１の周波数を変更することができる。また、マスタ検出回路５０７及びマスタ周波数設定レジスタ５０８によれば、システムの動作中にデータ転送速度が変化したとしても、同一バス権において、クロックＣＬＫ１の周波数を変更することができる。
【００５９】
具体的には、システムの動作中にデータ転送速度が変化する場合、ＣＰＵ１Ｃがデータ転送速度の変化に応じてマスタ周波数設定レジスタ５０８の値を書き換え、マスタ検出回路５０７が更新後の値を読み出してクロック分周設定レジスタ５０６の値を書き換えるので、同一のバス権において、データ転送速度の変化に応じてクロックＣＬＫ１の周波数を最適な値に変更することができる。これにより、データ転送速度に最適なクロック周波数に変更してバス転送処理能力の最適化を図ることができると共に、データ転送速度に最適なクロック周波数に変更することより、システムの省電力化を図ることができる。
【図面の簡単な説明】
【００６０】
【図１】本発明に係る情報処理システムの全体構成を示すブロック図である。
【図２】図１の情報処理システムに含まれるクロック分周回路の構成を示すブロック図である。
【図３】図１のクロック分周回路に含まれるマスタ周波数設定レジスタの構成を示す図である。
【符号の説明】
【００６１】
１    情報処理システム
２１  ＲＯＭ
２２  ＲＡＭ
２３  ＵＡＲＴ
２４  ＵＳＢ
３    バス
４    バス調停回路
５    クロック分周回路
５０１  クロック分周制御回路
５０２  セレクタ
５０３  １／８分周回路
５０４  １／４分周回路
５０５  １／２分周回路
５０６  クロック分周設定レジスタ
５０７  マスタ検出回路
５０８  マスタ周波数設定レジスタ
５０９  バスインターフェース回路
【図１】
2007048166.tif 000003
【図２】
2007048166.tif 000004
【図３】
2007048166.tif 000005