JP2007048166A - 情報処理システム、及び、情報処理システムの制御方法 - Google Patents
情報処理システム、及び、情報処理システムの制御方法 Download PDFInfo
- Publication number
- JP2007048166A JP2007048166A JP2005233884A JP2005233884A JP2007048166A JP 2007048166 A JP2007048166 A JP 2007048166A JP 2005233884 A JP2005233884 A JP 2005233884A JP 2005233884 A JP2005233884 A JP 2005233884A JP 2007048166 A JP2007048166 A JP 2007048166A
- Authority
- JP
- Japan
- Prior art keywords
- clock
- bus
- frequency
- processing system
- information processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Transfer Systems (AREA)
- Memory System (AREA)
Abstract
【課題】 バスを介してデータ転送する情報処理システムにおいて、データ転送速度を充分に発揮しつつ、データ転送時の省電力化を図ることである。
【解決手段】 データ転送を行うバスと、前記バスに接続され且つバス権要求信号を出力する複数のマスタデバイスと、前記複数のマスタデバイスから前記バスを介してバス権要求信号を受信し、何れかのマスタデバイスにバス権を付与することを示すバス権許可信号を前記マスタデバイスに出力するバス調停回路と、前記複数のマスタデバイスの状態に応じて、前記複数のマスタデバイスの何れかが、各マスタデバイスの動作時のクロック周波数に対応した周波数情報を記録する第1のレジスタと、前記バス権許可信号を受信し、前記第1のレジスタから当該バス権許可信号に対応する周波数情報を読み出して、当該周波数情報に対応する周波数のクロックを出力するクロック出力回路と、を備えた情報処理システム。
【選択図】 図2
【解決手段】 データ転送を行うバスと、前記バスに接続され且つバス権要求信号を出力する複数のマスタデバイスと、前記複数のマスタデバイスから前記バスを介してバス権要求信号を受信し、何れかのマスタデバイスにバス権を付与することを示すバス権許可信号を前記マスタデバイスに出力するバス調停回路と、前記複数のマスタデバイスの状態に応じて、前記複数のマスタデバイスの何れかが、各マスタデバイスの動作時のクロック周波数に対応した周波数情報を記録する第1のレジスタと、前記バス権許可信号を受信し、前記第1のレジスタから当該バス権許可信号に対応する周波数情報を読み出して、当該周波数情報に対応する周波数のクロックを出力するクロック出力回路と、を備えた情報処理システム。
【選択図】 図2
Description
本発明は、情報処理システム、特に、各種デバイス間でバスを介してデータ転送を行う情報処理システムに関する。
また、本発明は、情報処理システムの制御方法、特に、各種デバイス間でバスを介してデータ転送を行う情報処理システムの制御方法に関する。
従来からハードウェアの省電力化手法としては、ハードウェアを構成する半導体装置の各回路でのスイッチング時の消費電力が大きいことに着目して、ハードウェア全体あるいは部分的にクロックを停止させたり、クロック周波数を低減する手法が提案されている。クロック周波数の低減の方法では、1つのバスマスタ(以下、マスタデバイスという)がバス権を取得した後、システムのクロック周波数を必要に応じて低減する方法がとられている。
特許文献1には、データの通信を行うバスと、バスを用いてデータを転送するに際しバス権要求信号を出力すると共にバス権信号を受け取ることによりバスを使用する権利を得る複数個の機能ブロック(マスタデバイス)と、この複数個の機能ブロックからそれぞれバス権要求信号を受け取り、調停して複数個の機能ブロックの内1つの機能ブロックに対してバス権信号を与えると共にバス権要求識別信号を出力するバス調停手段と、バス権要求識別信号に基づいてクロック周波数を制御するクロック制御手段とを備えたデータ処理回路が記載されている。このデータ処理装置では、バス調停手段からのバス権要求識別信号に基づいて、クロック制御手段が、バス権を持つ機能ブロックに適した周波数にクロックを制御し、低消費電力化を図っている。
特許文献2には、動作周波数の異なるスレーブデバイスが混在するI2Cバスシステムにおいて、制御対象のスレーブデバイスが低速スレーブデバイスか高速スレーブデバイスかを判定し、マスタバスクロックラインのクロック信号の周波数を制御対象のスレーブデバイスの動作周波数に設定する周波数設定手段と、周波数設定手段によって設定された動作周波数のクロックをマスタバスクロックラインに出力するI2C制御部と、制御対象のスレーブデバイスが低速のスレーブデバイスの場合は、I2C制御部から低速スレーブデバイス側のマスタバスクロックラインのみにクロック信号を供給し、制御対象のスレーブデバイスが高速のスレーブデバイスの場合は、I2C制御部から高速スレーブデバイス側のマスタバスクロックラインのみにクロック信号を供給するスイッチと、を備えた電子機器が記載されている。この電子機器では、高速スレーブデバイスにクロックを供給する際には低速スレーブデバイスを切り離し、低速スレーブデバイスにクロックを供給する際には高速スレーブデバイスを切り離すので、システムの動作速度を低速スレーブデバイスの動作速度に合わせる必要がなくなり、システムの高速化が可能となる。
特開2003−345455
特開2003−141061
特許文献1に記載の構成では、クロック制御手段は、バス権を持つ機能ブロックを識別する情報を含むバス権要求識別信号から当該機能ブロックに対応したクロック周波数を判断し、クロック周波数を設定している。しかしながら、バス権を持つ機能ブロックがバスを介してスレーブデバイス同士のデータ転送を行う場合、スレーブデバイスの種類によってはデータ転送に適した周波数が変わる。例えば、機能ブロックがDMAC(Direct Memory Access Controller)であり、DMACがUSB(Universal Serial Bus)とRAM(Random Access Memory)との間のデータ転送を行う場合と、DMACがROM(Read Only Memory)とRAMとの間のデータ転送を行う場合とでは、データ転送速度が異なる。USBとRAMとの間のデータ転送速度は、ROMとRAMとの間のデータ転送速度よりも速い。しかしながら、特許文献1に記載の構成では、USBとRAMとの間のデータ転送時と、ROMとRAMとの間のデータ転送時とにおいて、DMACの動作周波数を変更することができず、何れのデータ転送にも同一のクロック周波数を用いるか、各データ転送ごとに別々のDMACを用意する必要がある。何れのデータ転送にも同一クロック周波数を用いる場合には、低い周波数に合わせると本来高速のデータ転送が可能なUSBとRAMとの間のデータ転送能力を充分に発揮できず、高い周波数に合わせると省電力化を十分に図ることができない。一方、各データ転送ごとに別々のDMACを設ける場合には、システムの構成が複雑となり、コストアップを招く問題がある。
特許文献2に記載の構成では、クロック供給の際に高速スレーブデバイスと低速スレーブデバイスとを分離して、スレーブデバイスの動作周波数に応じてクロックを最適な周波数に設定しているが、動作周波数の種類が増加すると、例えば、1/8分周、1/4分周、1/2分周、1分周の4種類の動作周波数を用いる場合には、4種類のマスタバスクロックラインを切り換えるスイッチが必要となり装置の大型化を招く虞がある。
本発明の目的は、バスを介してデータ転送する情報処理システムにおいて、データ転送速度を充分に発揮しつつ、データ転送時の省電力化を図ることである。
本発明に係る情報処理システムは、データ転送を行うバスと、前記バスに接続され且つバス権要求信号を出力する複数のマスタデバイスと、前記複数のマスタデバイスから前記バスを介してバス権要求信号を受信し、何れかのマスタデバイスにバス権を付与することを示すバス権許可信号を前記マスタデバイスに出力するバス調停回路と、前記複数のマスタデバイスの状態に応じて、前記複数のマスタデバイスの何れかが、各マスタデバイスの動作時のクロック周波数に対応した周波数情報を記録する第1のレジスタと、前記バス権許可信号を受信し、前記第1のレジスタから当該バス権許可信号に対応する周波数情報を読み出して、当該周波数情報に対応する周波数のクロックを出力するクロック出力回路と、を備えた情報処理システム。
この情報処理システムでは、複数のマスタデバイスの少なくとも1つからの信号によって各マスタデバイスの動作時の周波数情報を記録することができるため、同一マスタデバイスに対して、スレーブデバイス間のデータ転送速度に応じてクロックの周波数を変更することが可能になる。従って、同一マスタデバイスのデータ転送速度の変化に応じて最適なクロック周波数を設定することが可能となる。この結果、データ転送速度を充分に発揮しつつ、データ転送時の省電力化を図るように、クロック周波数を変更することができる。
〔全体構成〕
図1は、本発明に係る情報処理システム1の全体構成を示すブロック図である。
図1は、本発明に係る情報処理システム1の全体構成を示すブロック図である。
情報処理システム1は、マスタデバイスとしてのCPU1C、DMAC0及びDMAC1と、スレーブデバイスとしてのROM21、RAM22、UART23、USB24と、バス3と、バス調停回路4と、クロック分周回路5とを備えている。
CPU1Cは、中央演算装置であり、情報処理システム1全体の制御を行う。DMAC0及びDMAC1は、ダイレクトメモリアクセスコントローラ(Direct Memory Access Controller)であり、バス3に接続されたスレーブデバイス間のデータ転送を制御するマスタデバイスである。
CPU1Cは、DMAC0がUART23とRAM22との間のデータ転送を行う様にDMAC0を設定すると共に、DMAC1がUSB24とRAM22との間のデータ転送を行う様にDMAC1を設定する。DMAC0は、CPU1Cからの設定に基づいて、UART23とRAM22との間のデータ転送を行う。DMAC1は、CPU1Cからの設定に基づいて、USB24とRAM22との間のデータ転送を行う。
UART23のデータ転送速度は低速であるため、UART23からRAM22にデータ転送を行う場合には、クロック周波数を低くしても問題がなく、DMAC0の動作時のクロックは1/4分周に設定する。一方、USB24のデータ転送速度は高速であるため、USB24からRAM22にデータ転送を行う場合には、クロック周波数を高く設定する必要があり、DMAC1の動作時のクロックは1/2分周に設定する。
バス3は、CPU1C、DMAC0、DMAC1からなるマスタデバイスと、ROM21、RAM22、UART23、USB24からなるスレーブデバイスとの間のデータ転送を行うために必要な信号接続用ブロックである。BusC、Bus0、Bus1は、それぞれ、バス3とCPU1C、DMAC0、DMAC1との間を接続するバス信号又は信号線である。Bus11、Bus12、Bus13、Bus14は、それぞれ、バス3とROM21、RAM22、UART23、USB24との間を接続するバス信号又は信号線である。Bus50は、バス3とクロック分周回路50との間を接続するバス信号又は信号線である。これらのバス信号には、各マスタスレーブ間のデータ転送に必要な信号が含まれる。
ROM21は、リードオンリメモリ(Read Only Memory)であり、例えば、CPU1Cを動作させるためのプログラムを格納する。RAM22は、ランダムアクセスメモリ(Random Access Memory)であり、例えば、ROM21から読み出されたプログラムを一時的に記憶すると共にCPU1Cにより処理されたデータを一時的に格納する作業用メモリとして機能する。UART(Universal Asynchronous Receiver Transmitter)23は、非同期シリアルポートであり、外部機器と比較的低速な、USBによるシリアル通信に比較して低速なシリアル通信を行う。UARTによるデータ転送速度は、最大921.6kbps程度である。USB24は、ユニバーサルシリアルポート(Universal Serial Bus)であり、外部機器と高速なシリアル通信を行う。USBによるデータ転送速度は、USB1.1の場合に最大12Mbps、USB2.0の場合に最大480Mbpsである。
バス調停回路4は、複数のマスタデバイスが同時にバス3にアクセスする場合に、バス3でのデータの衝突を回避し、バス3にアクセスする複数のマスタデバイスの中から1つのマスタデバイスに対して、バス3へのアクセスを許可するための回路である。
バス調停に使用する信号は、バス調停回路4と各マスタデバイスとに接続される信号である。バス権要求信号REQCは、CPU1Cがバス権を要求する信号である。バス権要求信号REC0は、DMAC0がバス権を要求する信号である。バス権要求信号REQ1は、DMAC1がバス権を要求する信号である。CPU1Cは、バス権を要求する場合にバス権要求信号REQCをアサートする。DMAC0は、バス権を要求する場合にバス権要求信号REQ0をアサートする。DMAC1は、バス権を要求する場合にバス権要求信号REQ1をアサートする。
バス権許可信号GRANTC、GRANT0、GRANT1は、バス調停回路4から各マスタデバイスに接続されると共に、クロック分周回路5に接続されている。バス権許可信号GRANTCは、CPU1Cがバス3の使用を許可されたことを示す信号である。バス権許可信号GRANT0は、DMAC0がバス3の使用を許可されたことを示す信号である。バス権許可信号GRANT1は、DMAC1がバス3の使用を許可されたことを示す信号である。バス調停回路4は、CPU1Cにバス権を許可する場合、バス権許可信号GRANTCをアサートする。バス調停回路4は、DMAC0にバス権を許可する場合、バス権許可信号GRANT0をアサートする。バス調停回路4は、DMAC1にバス権を許可する場合、バス権許可信号GRANT1をアサートする。
バス調停回路4は、バス権要求信号の何れかがアサートされると、マスタデバイスによるバス3の使用に競合がないか否かを判定する。バス調停回路4は、バス3の使用に競合がない場合、バス権要求信号をアサートしたマスタデバイスのバス権許可信号をアサートする。一方、バス調停回路4は、バス3の使用に競合がある場合には、バス権要求信号をアサートしたマスタデバイスのバス権許可信号をアサートしない。例えば、バス調停回路4は、バス権要求信号REQCがアサートされると、他のマスタデバイスのバス権許可信号GRANT0又はGRANT1の何れかが既にがアサートされているか否かを判定する。バス調停回路4は、バス権許可信号GRANT0又はGRANT1の何れかが既にがアサートされている場合には、バス権許可信号GRANTCをアサートしない。一方、バス調停回路4は、バス権許可信号GRANT0又はGRANT1の何れもアサートされていない場合には、バス権許可信号GRANTCをアサートする。
クロック分周回路5は、基準となるクロックCLK0(周波数f0)を分周して、動作クロックとしてのクロックCLK1(周波数f1)を生成する回路である。より詳細には、クロック分周回路5は、クロックCLK0の入力を受け付け、マスタデバイスとスレーブデバイスとの間のデータ転送速度に応じた周波数になるようにクロックCLK0を分周してクロックCLK1を生成し、クロックCLK1をバス3に出力する。クロックCLK1は、バス3を介して、各マスタデバイス及び各スレーブデバイスに供給され、システム全体の動作クロックとなる。バス権が許可されているマスタデバイスは、クロックCLK1によって動作し、スレーブデバイス間のデータ転送を行う。
〔クロック分周回路〕
以下、クロック分周回路5の詳細を図面を参照して説明する。
以下、クロック分周回路5の詳細を図面を参照して説明する。
図2は、クロック分周回路5の構成を示す機能ブロック図である。
クロック分周回路5は、前述したように、クロックCLK0を分周する機能を持つ。ここでは、クロック分周回路5の例として、分周比8(1/8分周)、分周比(1/4分周)、分周比(1/2分周)、及び、分周比1(1/1分周:分周なし)の分周比でクロックCLK0を分周する場合を例に挙げて説明する。クロック分周回路5に於いて1/n分周(nは正の整数)が選択された場合には、クロックCLK1の周波数f1は、クロックCLK0の周波数f0の1/nとなり、f1=f0/nである。
また、ここでは、4種類の分周比で分周する場合を例に挙げるが、分周比の種類は3種類以下であっても、5種類以上であっても良い。例えば、分周比16(1/16分周)、分周比8(1/8分周)、分周比(1/4分周)、分周比(1/2分周)、及び、分周比1(1/1分周:分周なし)の分周比でクロックCLK0を分周する場合にも適用することができる。
クロック分周回路5は、分周制御回路501と、クロック分周設定レジスタ506と、マスタ検出回路507と、マスタ周波数設定レジスタ508と、バスインターフェース回路509とを備えている。
分周制御回路501は、クロック分周設定レジスタ506に記録されている値を読み込んで、当該値に対応した分周比で分周されたクロックCLK0をクロックCLK1として出力する。クロック分周設定レジスタ506に記録されている値は、分周制御回路501でクロックCLK0を分周する際の分周比を設定するための周波数情報であり、分周比に対応している。また、周波数情報は、分周比を指定することにより結果的に動作クロックCLK1の周波数を設定するため、動作周波数CLK1の周波数自体を指定する情報とも言える。
分周制御回路501は、セレクタ502と、1/8分周回路503、1/4分周回路504、1/2分周回路505と、を有している。
セレクタ501は、1/8分周回路503の出力が入力されるポートDと、1/4分周回路504の出力が入力されるポートCと、1/2分周回路505の出力が入力されるポートBと、CLK0が入力されるポートAとを有している。
以下の説明では、クロックCLK0をn分周したクロックをCLK0(1/n)と表現する。
ポートDは、クロックCLK0を1/8分周したクロックCLK0(1/8)が入力される。ポートCは、クロックCLK0を1/4分周したクロックCLK0(1/4)が入力される。ポートBは、クロックCLK0を1/2分周したクロックCLK0(1/2)が入力される。ポートAは、クロックCLK0が分周なしで入力される。セレクタ501は、クロック分周設定レジスタ506に記録された周波数情報を読み込み、周波数情報に基づいてポートA〜Dの何れかに入力されるクロックを出力ポートからクロックCLK1として出力する。
クロック分周設定レジスタ506は、マスタ検出回路507によって周波数情報が書き込まれる。本実施形態では、周波数情報は、「00B」、「01B」、「10B」、「11B」の何れかの値である。周波数情報が「00B」である場合、セレクタ502は、ポートAの入力であるクロックCLK0をクロックCLK1=CLK0として出力する。周波数情報が「01B」である場合、セレクタ502は、ポートBの入力であるクロックCLK0(1/2)をクロックCLK1=CLK0(1/2)として出力する。周波数情報が「10B」である場合、セレクタ502は、ポートCの入力であるクロックCLK0(1/4)をクロックCLK1=CLK0(1/4)として出力する。周波数情報が「11B」である場合、セレクタ502は、ポートDの入力であるクロックCLK0(1/8)をクロックCLK1=CLK0(1/8)として出力する。
バスインターフェース509は、バス3との接続のためのインターフェース回路である。バスインターフェース509は、マスタ周波数設定レジスタ508とバス3との信号の送受信をインターフェースする。また、バスインターフェース509は、クロック分周設定レジスタ506とバス3との信号の送受信をインターフェースする。
マスタ検出回路507は、バス調停回路4からバス権許可信号GRANTC、GRANT0、GRANT1が接続されており、バス調停回路4によってアサートされたバス権許可信号(GRANTC、GRANT0、GRANT1の何れか)に応じて、マスタ周波数設定レジスタ508に記録されている周波数情報を読み出し、読み出した周波数情報にクロック分周設定レジスタ506の記録内容を書き換える。前述したように、バス権許可信号GRANTCがアクティブの場合にCPU1Cにバス権が許可され、バス権許可信号GRANT0がアクティブの場合にDMAC0にバス権が許可され、バス権許可信号GRANT1がアクティブの場合に、DMAC1にバス権が許可される。
マスタ周波数設定レジスタ508は、マスタデバイスによって書き換え可能なレジスタであり、CPU1Cからの設定が可能である。マスタ周波数設定レジスタ508は、バスインターフェース509を介してバス3と接続されており、CPU1Cからの信号をバス3、バスインターフェース509を介して受信し、受信した信号に基づいて記録内容が書き換えられる。CPU1Cは、バス権の切り換えによりバス権が許可されるマスタデバイスを切り換える場合に、マスタ周波数設定レジスタ508に周波数情報を予め設定する。マスタ周波数設定レジスタ508は、情報処理システムが動作中に変更可能である。後述するように、DMAC1によるUSB24とRAM22との間のデータ転送が完了し、CPU1Cが、DMAC1から完了信号を受信し、USB24を使用することがない状況であり且つメモリ間転送が必要になったと判断すると、CPU1Cは、DMAC1のデータ転送の設定をROM21とRAM22との間に設定し、ROM21とRAM21との間のデータ転送速度に応じた周波数情報をマスタ周波数設定レジスタ508に設定する。
図3は、マスタ周波数設定レジスタ508のデータ構成例である。同図(a)に示すように、マスタ周波数設定レジスタ508は、バス権許可信号GRANTCによって読み出される領域508Cと、バス権許可信号GRANT0によって読み出される領域5080と、バス権許可信号GRANT1によって読み出される領域5081とを有する。
領域508Cは、CPU1Cがデータ転送を行う際の動作クロックCLK1の周波数を設定するための分周比に対応する値を周波数情報として格納する領域である。言い換えれば、領域508Cは、CPU1C用のクロックCLK1の周波数を指定する値を格納する。本実施形態では、CPU1CのクロックCLK1を生成するための分周比は1、対応する値は「00B」である。
領域5080は、DMAC0がデータ転送を行う際の動作クロックCLK1の周波数を設定するための分周比に対応する値を周波数情報として格納する領域である。言い換えれば、領域5080は、DMAC0用のクロックCLK1の周波数を指定する値を格納する。本実施形態では、DMAC0のクロックCLK1を生成するための分周比は4、対応する値は「10B」である。
領域5081は、DMAC1がデータ転送を行う際の動作クロックCLK1の周波数を設定するための分周比に対応する値を周波数情報として格納する領域である。領域5081は、DMAC1用のクロックCLK1の周波数を指定する値を格納する。本実施形態では、DMAC1のクロックCLK1を生成するための分周比は2、対応する値は「01B」である。
マスタ周波数設定レジスタ508の各領域の格納値は、CPU1Cによって設定可能であり、CPU1Cからバス3及びバスインターフェース回路509を介して受信する信号によって書き換えられる。例えば、図3(b)に示すように、領域5081に「01B」が格納されている場合において、バス調停回路4がDMAC1にバス権を付与してバス調停回路4がGRANT1をアサートしたとき、マスタ検出回路507は、マスタ周波数設定レジスタ508の領域5081から「01B」を読み出し、「01B」をクロック分周設定レジスタ506に書き込む。この結果、クロック分周制御回路501からは「01B」に対応する分周比2のCLK1=CLK0(1/2)がバス3に出力される。一方、マスタ調停回路4が同一バス権を付与している間、即ちDMAC1にバス権を付与している間において、図3(c)に示すようにマスタ周波数設定レジスタ508の領域5081がCPU1Cによって「11B」に書き換えられると、マスタ検出回路507は、マスタ周波数設定レジスタ508の領域5081から「11B」を読み出し、クロック分周設定レジスタ506を「01B」から「11B」に書き換える。この結果、クロック分周設定レジスタ501からは「11B」に対応する分周比8のCLK1=CLK0(1/8)がバス3に出力される。
このようなマスタ周波数設定レジスタ508及びマスタ検出回路507によれば、システムの動作中に状態が変化したとしても、同一バス権においてクロックCLK1の周波数を変更することができる。例えば、同一バス権において、データ転送速度を低下させても良い場合には、CPU1Cからの信号によってマスタ周波数設定レジスタ508の値を変更することにより、クロックCLK1の周波数をデータ転送速度に応じた周波数に低減することができる。これにより、システムの省電力化を図ることができる。
〔動作〕
〔UARTとRAMとの間のデータ転送〕
図3(b)に示すように、マスタ周波数設定レジスタ508の領域508C、5080、5081にそれぞれ、「00B」、「10B」、「01B」が記録されていると仮定して説明する。
〔UARTとRAMとの間のデータ転送〕
図3(b)に示すように、マスタ周波数設定レジスタ508の領域508C、5080、5081にそれぞれ、「00B」、「10B」、「01B」が記録されていると仮定して説明する。
UART23からDMAC0に対してデータ転送要求があった場合、DMAC0は、バス調停回路4に対してバス権要求信号REQ0をアサートする。バス調停回路4は、バス権要求信号REQ0のアサートに応じて、バスマスタの競合があるか否かを判定、即ち、DMAC0以外のマスタデバイスがバス権要求信号をアサートしているか否かを判定する。バス調停回路4は、バスマスタの競合がない場合、即ち、DMAC0以外のマスタデバイスがバス権要求信号をアサートしていない場合、DMAC0及びクロック分周回路5に対してバス権許可信号GRANT0を出力する。バス権許可信号GRANT0は、DMAC0がバス3を使用することを許可することを表す信号である。クロック分周回路5は、バス権許可信号GRANT0の入力を受けて、GRANT0に応じた分周比でクロックCLK0を分周してクロックCLK1=CLK0(1/4)をバス3に出力する。DMAC0は、クロックCLK1=CLK0(1/4)で動作して、USB24とUART23との間のデータ転送を開始する。
このときのクロック分周回路5の動作を詳細に説明すると以下の通りである。
マスタ検出回路507は、バス調停回路4からGRANT0の入力を受け付けると、マスタ周波数設定レジスタ508の領域5080からGRANT0に対応した値「10B」を読み込み、読み込んだ値「01B」をクロック分周設定レジスタ506に書き込む。
クロック分周制御回路501は、クロック分周設定レジスタ506に書き込まれた値「10B」を読み込み、読み込んだ値「10B」に対応する分周比4で分周されたクロックCLK1をバス3に出力する。クロック分周制御回路501では、セレクタ502がクロック設定レジスタ506に書き込まれた値「10B」を読み込み、読み込んだ値「10B」に対応する分周比4で分周されたクロックCLK0(CLK0(1/4))が入力されるポートCと出力ポートとを接続し、クロックCLK1=CLK0(1/4)を出力ポートからバス3に出力する。
クロック分周制御回路501は、クロック分周設定レジスタ506に書き込まれた値「10B」を読み込み、読み込んだ値「10B」に対応する分周比4で分周されたクロックCLK1をバス3に出力する。クロック分周制御回路501では、セレクタ502がクロック設定レジスタ506に書き込まれた値「10B」を読み込み、読み込んだ値「10B」に対応する分周比4で分周されたクロックCLK0(CLK0(1/4))が入力されるポートCと出力ポートとを接続し、クロックCLK1=CLK0(1/4)を出力ポートからバス3に出力する。
クロック分周回路5からバス3にクロックCLK1=CLK0(1/4)が出力されると、DMAC0がクロックCLK1=CLK0(1/4)で動作して、USB24とUART23との間のデータ転送を開始する。
〔USBとRAMとの間のデータ転送〕
USB24からDMAC1に対してデータ転送要求があった場合、DMAC1は、バス調停回路4に対してバス権要求信号REQ1をアサートする。バス調停回路4は、バス権要求信号REQ1のアサートに応じて、バスマスタの競合があるか否かを判定、即ち、DMAC1以外のマスタデバイスがバス権要求信号をアサートしているか否かを判定する。バス調停回路4は、バスマスタの競合がない場合、即ち、DMAC1以外のマスタデバイスがバス権要求信号をアサートしていない場合、DMAC1及びクロック分周回路5に対してバス権許可信号GRANT1を出力する。バス権許可信号GRANT1は、DMAC1がバス3を使用することを許可することを表す信号である。クロック分周回路5は、バス権許可信号GRANT1の入力を受けて、GRANT1に応じた分周比2でクロックCLK0を分周してクロックCLK1=CLK0(1/2)をバス3に出力する。DMAC1は、クロックCLK1=CLK0(1/2)で動作して、USB24とRAM22との間のデータ転送を開始する。
USB24からDMAC1に対してデータ転送要求があった場合、DMAC1は、バス調停回路4に対してバス権要求信号REQ1をアサートする。バス調停回路4は、バス権要求信号REQ1のアサートに応じて、バスマスタの競合があるか否かを判定、即ち、DMAC1以外のマスタデバイスがバス権要求信号をアサートしているか否かを判定する。バス調停回路4は、バスマスタの競合がない場合、即ち、DMAC1以外のマスタデバイスがバス権要求信号をアサートしていない場合、DMAC1及びクロック分周回路5に対してバス権許可信号GRANT1を出力する。バス権許可信号GRANT1は、DMAC1がバス3を使用することを許可することを表す信号である。クロック分周回路5は、バス権許可信号GRANT1の入力を受けて、GRANT1に応じた分周比2でクロックCLK0を分周してクロックCLK1=CLK0(1/2)をバス3に出力する。DMAC1は、クロックCLK1=CLK0(1/2)で動作して、USB24とRAM22との間のデータ転送を開始する。
このときのクロック分周回路5の動作を詳細に説明すると以下の通りである。
マスタ検出回路507は、バス調停回路4からGRANT1の入力を受け付けると、マスタ周波数設定レジスタ508からGRANT1に対応した値「01B」を読み込み、読み込んだ値「01B」をクロック分周設定レジスタ506に書き込む。クロック分周制御回路501は、クロック分周設定レジスタ506に書き込まれた値「10B」を読み込み、読み込んだ値「01B」に対応する分周比2で分周されたクロックCLK0(CLK0(1/2))をバス3に出力する。クロック分周制御回路501では、セレクタ502がクロック設定レジスタ506に書き込まれた値「01B」を読み込み、読み込んだ値「01B」に対応する分周比2で分周されたクロックCLK0であるCLK0(1/2)が入力されるポートBと出力ポートとを接続し、クロックCLK1=CLK0(1/2)を出力ポートからバス3に出力する。
クロック分周回路5からバス3にクロックCLK1=CLK0(1/2)が出力されると、DMAC1がクロックCLK1=CLK0(1/2)で動作して、USB24とRAM22との間のデータ転送を開始する。
〔ROMからRAMへのデータ転送〕
CPU1Cは、DMAC1によるデータ転送の開始と完了とを管理しており、DMAC1によるUSB24からRAM22へのデータ転送が完了すると、CPU1Cは、DMAC1から転送完了を示す信号を受信する。CPU1Cは、DMAC1から転送完了を示す信号を受信すると、他のマスタデバイスがUSB24を使用する状況であるか否かを判断し、ROM21とRAM22との間でメモリ間転送が必要か否かを判断する。CPU1Cは、USB24を使用することがない状態であり、且つ、メモリ間転送が必要となった場合に、DMAC1のデータ転送の設定を「ROM21とRAM22との間のデータ転送」に切り換える。
CPU1Cは、DMAC1によるデータ転送の開始と完了とを管理しており、DMAC1によるUSB24からRAM22へのデータ転送が完了すると、CPU1Cは、DMAC1から転送完了を示す信号を受信する。CPU1Cは、DMAC1から転送完了を示す信号を受信すると、他のマスタデバイスがUSB24を使用する状況であるか否かを判断し、ROM21とRAM22との間でメモリ間転送が必要か否かを判断する。CPU1Cは、USB24を使用することがない状態であり、且つ、メモリ間転送が必要となった場合に、DMAC1のデータ転送の設定を「ROM21とRAM22との間のデータ転送」に切り換える。
このデータ転送には高速処理が要求されないと仮定すると、CPU1Cは、図3(c)に示すように、506の領域508C、5080、5081にそれぞれ「00B」、「10B、「11B」を書き込む。
ROM21からRAM22へのデータ転送を起動するために、CPU1CからDMAC1に対して転送起動要求を出すと、DMAC1は、バス調停回路4に対してバス権要求信号REQ1をアサートする。これを受けたバス調停回路4は、バスの競合がなければ、バス権許可信号GRANT1をアサートする。バス権許可信号REQ1は、DMAC1及びマスタ検出回路507(クロック分周回路5)に接続されており、マスタ検出回路507は、バス権許可信号GRANT1に応じてマスタ周波数設定レジスタ508の領域5081の値を読み出し、読み出した値をクロック分周設定レジスタ506に書き込む。この場合、マスタ周波数設定レジスタ508の領域5081には「11B」が格納されているので、マスタ検出回路507は「11B」を読み出して、クロック分周設定レジスタ506に「11B」を書き込む。クロック分周制御回路5は、クロックCLK0を1/8に分周したクロックCLK1=CLK0(1/8)を出力する。この結果、DMAC1は、クロックCLK0を8分周したクロックCLK=CLK0(1/8)で動作して、ROM21とRAM22との間のデータ転送を行う。
同一のマスタデバイス、DMAC1にバス権が付与される場合であっても、USB24とRAM22との間のデータ転送時と、ROM21とRAM22との間のデータ転送時とでは、DMAC1の動作時のクロックCLK1の周波数を変更する。USB24とRAM22との間のデータ転送時には、高速処理が要求されるため、高い周波数である分周比2のクロックCLK1=CLK0(1/2)を用る。一方、ROM21とRAM22との間のデータ転送時には、高速処理が要求されないため、分周比2よりも低い分周比8のクロックCLK1=CLK0(1/8)を用いる。このように、同一マスタデバイスのデータ転送時において、同一マスタデバイスが高速のスレーブデバイス間のデータ転送を行う際には、CLK1の周波数を高く設定してデータ転送速度を最大限に発揮させ、一方、同一マスタデバイスが低速のスレーブデバイス間のデータ転送を行う際には、マスタデバイスの動作周波数を低下させて省電力化を図る。
〔作用効果〕
本実施形態では、バス調停回路4がバス権付与を示すバス権許可信号をマスタデバイス及びクロック分周回路5に出力し、マスタデバイスにバス権を付与すると共にマスタデバイスの動作に最適な周波数のクロックをマスタデバイスに供給することができるので、バス権の切り換えと同時に最適なクロックの周波数を設定することができる。従って、クロック周波数の変更のために一旦CPU1Cがソフトウェアによる設定を行うまでの遅延時間がなくなり、最適な周波数のクロックでマスタデバイスの動作を即座に行うことができる。この結果、処理時間の低減、装置の省電力効果を期待することができる。
本実施形態では、バス調停回路4がバス権付与を示すバス権許可信号をマスタデバイス及びクロック分周回路5に出力し、マスタデバイスにバス権を付与すると共にマスタデバイスの動作に最適な周波数のクロックをマスタデバイスに供給することができるので、バス権の切り換えと同時に最適なクロックの周波数を設定することができる。従って、クロック周波数の変更のために一旦CPU1Cがソフトウェアによる設定を行うまでの遅延時間がなくなり、最適な周波数のクロックでマスタデバイスの動作を即座に行うことができる。この結果、処理時間の低減、装置の省電力効果を期待することができる。
本実施形態では、マスタ検出回路507及びマスタ周波数設定レジスタ508によって同一マスタデバイスに対する周波数情報を変更可能としたので、システムの動作中に状態が変化する場合に、同一のバス権において動作周波数を選択可能となる。これにより、システムの柔軟性が向上し、常に最適な動作周波数を選択できる。この結果、省電力効果とバス転送能力の最適化を図ることができる。
本実施形態に係るマスタ検出回路507及びマスタ周波数設定レジスタ508によればマスタ検出回路507及びマスタ周波数設定レジスタ508によれば、システムの動作中に状態が変化し、マスタデバイスのデータ転送速度が変化する場合、データ転送速度に対応してクロックCLK1の周波数を変更することができる。また、マスタ検出回路507及びマスタ周波数設定レジスタ508によれば、システムの動作中にデータ転送速度が変化したとしても、同一バス権において、クロックCLK1の周波数を変更することができる。
具体的には、システムの動作中にデータ転送速度が変化する場合、CPU1Cがデータ転送速度の変化に応じてマスタ周波数設定レジスタ508の値を書き換え、マスタ検出回路507が更新後の値を読み出してクロック分周設定レジスタ506の値を書き換えるので、同一のバス権において、データ転送速度の変化に応じてクロックCLK1の周波数を最適な値に変更することができる。これにより、データ転送速度に最適なクロック周波数に変更してバス転送処理能力の最適化を図ることができると共に、データ転送速度に最適なクロック周波数に変更することより、システムの省電力化を図ることができる。
1 情報処理システム
21 ROM
22 RAM
23 UART
24 USB
3 バス
4 バス調停回路
5 クロック分周回路
501 クロック分周制御回路
502 セレクタ
503 1/8分周回路
504 1/4分周回路
505 1/2分周回路
506 クロック分周設定レジスタ
507 マスタ検出回路
508 マスタ周波数設定レジスタ
509 バスインターフェース回路
21 ROM
22 RAM
23 UART
24 USB
3 バス
4 バス調停回路
5 クロック分周回路
501 クロック分周制御回路
502 セレクタ
503 1/8分周回路
504 1/4分周回路
505 1/2分周回路
506 クロック分周設定レジスタ
507 マスタ検出回路
508 マスタ周波数設定レジスタ
509 バスインターフェース回路
Claims (10)
- データ転送を行うバスと、
前記バスに接続され且つバス権要求信号を出力する複数のマスタデバイスと、
前記複数のマスタデバイスから前記バスを介してバス権要求信号を受信し、何れかのマスタデバイスにバス権を付与することを示すバス権許可信号を前記マスタデバイスに出力するバス調停回路と、
前記複数のマスタデバイスの状態に応じて、前記複数のマスタデバイスの何れかが、各マスタデバイスの動作時のクロック周波数に対応した周波数情報を記録する第1のレジスタと、
前記バス権許可信号を受信し、前記第1のレジスタから当該バス権許可信号に対応する周波数情報を読み出して、当該周波数情報に対応する周波数のクロックを出力するクロック出力回路と、
を備えた情報処理システム。 - 前記クロック出力回路は、第1のクロックを入力され、前記周波数情報に対応する分周比で前記第1のクロックを分周して、前記周波数情報に対応する周波数のクロックとして第2のクロックを出力する分周回路である、請求項1に記載の情報処理システム。
- 前記分周回路は、
前記第1のクロックを複数の分周比で分周する複数の分周ユニットと、
前記複数の分周ユニットから出力されるクロックのうち、前記周波数情報に対応する分周比のクロックを選択して前記第2のクロックとして出力する選択回路と、
を有する請求項2に記載の情報処理システム。 - 前記クロック出力回路は、
前記バス権許可信号を受信し、当該バス権許可信号に対応する周波数情報を前記第1のレジスタから取得し、当該周波数情報を出力する検出回路と、
前記検出回路から出力される前記周波数情報が記録される第2のレジスタとをさらに有し、
前記選択回路は、前記第2のレジスタに記録されている前記周波数情報を取得し、当該周波数情報に対応する前記第2のクロックを出力する、
請求項3に記載の情報処理システム。 - 前記情報処理システムは、前記バスに接続され且つ前記マスタデバイスがデータ転送を行うスレーブデバイスをさらに備え、
前記マスタデバイスの状態は、各マスタデバイスがデータ転送を制御するスレーブデバイスのデータ転送速度である、請求項1乃至4の何れかに記載の情報処理システム。 - 前記第1のレジスタは、情報処理システムが動作中に書き換え可能である、請求項1乃至5の何れかに記載の情報処理システム。
- データ転送を行うバスと、前記バスに接続された複数のマスタデバイスを備えた情報処理システムの制御方法であって、
前記複数のマスタデバイスの状態に応じて、各マスタデバイスの動作時のクロック周波数に対応した周波数情報を第1のレジスタに記録するステップと、
前記マスタデバイスの少なくとも1つからバス権要求信号を受信して何れか1つのマスタデバイスにバス権許可信号を出力するステップと、
前記第1のレジスタから前記バス権許可信号に対応する周波数情報を読み出して、当該周波数情報に対応する周波数のクロックを出力するステップと、
を含む情報処理システムの制御方法。 - 前記クロックを出力するステップは、前記周波数情報に対応する分周比で第1のクロックを分周して、前記周波数情報に対応する周波数のクロックとして第2のクロックを出力するステップである、請求項7に記載の情報処理システムの制御方法。
- 前記情報処理システムは、前記バスに接続され且つ前記マスタデバイスがデータ転送を行うスレーブデバイスをさらに備え、
前記マスタデバイスの状態は、各マスタデバイスがデータ転送を制御するスレーブデバイスのデータ転送速度である、請求項7乃至8の何れかに記載の情報処理システムの制御方法。 - 前記第1のレジスタを情報処理システムが動作中に書き換える、請求項7乃至9の何れかに記載の情報処理システムの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005233884A JP2007048166A (ja) | 2005-08-12 | 2005-08-12 | 情報処理システム、及び、情報処理システムの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005233884A JP2007048166A (ja) | 2005-08-12 | 2005-08-12 | 情報処理システム、及び、情報処理システムの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007048166A true JP2007048166A (ja) | 2007-02-22 |
Family
ID=37850925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005233884A Pending JP2007048166A (ja) | 2005-08-12 | 2005-08-12 | 情報処理システム、及び、情報処理システムの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007048166A (ja) |
-
2005
- 2005-08-12 JP JP2005233884A patent/JP2007048166A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6151651A (en) | Communication link with isochronous and asynchronous priority modes coupling bridge circuits in a computer system | |
CN101120294B (zh) | 管理电子设备中的时钟速度的系统和方法 | |
JP2012064021A (ja) | 通信システム、マスター装置、及びスレーブ装置、並びに通信方法 | |
US20050198418A1 (en) | Multilayer system and clock control method | |
JP3954011B2 (ja) | サブシステム間で通信するための方法およびコンピュータ・システム | |
JP2008009817A (ja) | 半導体装置及びデータ転送方法 | |
KR102101840B1 (ko) | 범용 직렬 인터페이스 및 이를 포함하는 반도체 장치 | |
KR100480605B1 (ko) | 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기 | |
KR20030069851A (ko) | 정보 처리 장치 | |
US20060026330A1 (en) | Bus arbitration system that achieves power savings based on selective clock control | |
US20150177816A1 (en) | Semiconductor integrated circuit apparatus | |
JP4902640B2 (ja) | 集積回路、及び集積回路システム | |
US8799699B2 (en) | Data processing system | |
US9311261B2 (en) | Universal serial interface and semiconductor device including the same | |
JP2007048166A (ja) | 情報処理システム、及び、情報処理システムの制御方法 | |
JP2005092764A (ja) | 画像形成装置、インタフェースボード、インタフェース用チップ及び情報処理装置 | |
US11157206B2 (en) | Multi-die system capable of sharing non-volatile memory | |
WO2001001228A1 (fr) | Systeme lsi | |
KR100487218B1 (ko) | 칩 내장형 버스를 인터페이스하기 위한 장치 및 방법 | |
JPH09153009A (ja) | 階層構成バスのアービトレーション方法 | |
JP4838458B2 (ja) | 半導体装置 | |
JP2008059047A (ja) | 情報処理システム及びこの制御方法 | |
JP2006072597A (ja) | データ処理装置及びデータ処理方法 | |
JP2007128196A (ja) | 情報処理システム及び情報処理システムの制御方法 | |
JP4190969B2 (ja) | バスシステム及びambaにおけるバス調停システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070216 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20070206 |