(57)【要約】【課題】  装置の性能を維持しつつ、効果的な省電力化を実現することはできない。【解決手段】  情報処理装置は、複数のマスタモジュールと少なくとも１つのスレーブモジュールとの間のデータ転送を行うデータ転送処理手段と、一つの前記スレーブモジュールに対して、データ転送要求を発行した複数のマスタモジュールから、何れか一つの前記マスタモジュールの前記データ転送要求を選択し、データ転送を行うように調停する調停手段と、前記調停手段に選択されなかった前記データ転送要求を発行したマスタモジュールと、前記データ転送要求を発行していないマスタモジュールとを省電力状態に制御する制御手段と、を備えることにより、装置の性能が低下せずに効果的な省電力化を実現できる。【選択図】  図２
2016218731.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタモジュールと少なくとも１つのスレーブモジュールとの間のデータ転送を行うデータ転送処理手段と、
一つの前記スレーブモジュールに対して、データ転送要求を発行した複数のマスタモジュールから、何れか一つの前記マスタモジュールの前記データ転送要求を選択し、データ転送を行うように調停する調停手段と、
前記調停手段に選択されなかった前記データ転送要求を発行したマスタモジュールと、前記データ転送要求を発行していないマスタモジュールとを省電力状態に制御する制御手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
何れか一つの前記マスタモジュールの発行した前記データ転送要求が、ロック転送要求である場合は、前記調停手段は、前記ロック転送要求を選択することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
データ転送を行っている前記マスタモジュールが、ロック転送解除要求を発行した場合は、前記制御手段は、省電力状態にある前記マスタモジュールを、前記省電力状態から解除することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
何れか一つの前記マスタモジュールの前記データ転送要求の転送長が、所定の転送長以上である場合は、前記調停手段は、前記所定の転送長以上の前記データ転送要求を選択することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記所定の転送長以上のデータ転送要求が選択され、該データ転送における所定のデータ転送状況に基づいて、前記制御手段は、省電力状態にある前記マスタモジュールを、前記省電力状態から解除することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記調停手段は、一つの前記スレーブモジュールがデータ転送処理をしていないと判定した場合、選択した前記データ転送要求を発行した前記マスタモジュールに接続しているデータ転送許可信号を駆動してバス使用権を与えることを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
複数のマスタモジュールと少なくとも１つのスレーブモジュールとの間のデータ転送を行うデータ転送処理手段と、
一つの前記スレーブモジュールに対して、複数のマスタモジュールがデータ転送要求を発行した場合、何れか一つの前記マスタモジュールの前記データ転送要求を選択し、データ転送を行うように調停する調停手段と、
それぞれの前記マスタモジュールが発行した前記データ転送要求を、前記調停手段が選択した回数をカウントするカウント手段と、
それぞれの前記マスタモジュールからの前記データ転送要求を、前記調停手段が所定期間に選択可能な所定回数を保持する保持手段と、
複数の前記マスタモジュールの内、カウントされた前記回数が前記所定回数に到達した前記マスタモジュールを、省電力状態に制御する制御手段と、
を備えることを特徴とする情報処理装置。
【請求項８】
複数の前記マスタモジュールのそれぞれが発行した前記データ転送要求を、前記調停手段が選択した回数が、すべて前記所定回数に到達した場合に、前記カウント手段のカウントした前記回数のカウント値がリセットされ、
前記制御手段は、省電力状態にある前記マスタモジュールを、前記省電力状態から解除することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記制御手段がＣＰＵを含む前記マスタモジュールを省電力状態に制御しない場合は、前記調停手段は、前記ＣＰＵを含む前記マスタモジュールの前記データ転送要求を選択した回数が前記所定回数に到達した後に、前記ＣＰＵを含む前記マスタモジュールの前記データ転送要求を選択しないことを特徴とする請求項７又は８に記載の情報処理装置。
【請求項１０】
複数のマスタモジュールと少なくとも１つのスレーブモジュールとの間のデータ転送を行うデータ転送処理手段と、
一つの前記スレーブモジュールに対して、複数のマスタモジュールがデータ転送要求を発行した場合、何れか一つの前記マスタモジュールの前記データ転送要求を選択し、データ転送を行うように調停する調停手段と、
前記調停手段によって選択された前記データ転送要求を発行した前記マスタモジュールと一つの前記スレーブモジュールとの間のデータ転送量を取得する取得手段と、
それぞれの前記マスタモジュールと一つの前記スレーブモジュールとの間の前記データ転送量の所定期間における制限量を保持する保持手段と、
複数の前記マスタモジュールの内、取得された前記データ転送量が前記制限量に到達した前記マスタモジュールを、省電力状態に制御する制御手段と、
を備えることを特徴とする情報処理装置。
【請求項１１】
複数の前記マスタモジュールのそれぞれの前記データ転送量が、すべて前記制限量に到達した場合に、前記制御手段は、省電力状態にある前記マスタモジュールを、前記省電力状態から解除することを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記調停手段は調停回路を備え、前記調停回路は前記保持手段を備えることを特徴とする請求項７乃至１１の何れか１項に記載の情報処理装置。
【請求項１３】
前記制御手段は、前記マスタモジュールに供給されるクロック信号を遮断することによって、前記マスタモジュールを省電力状態に制御することを特徴とする請求項１乃至１２の何れか１項に記載の情報処理装置。
【請求項１４】
前記制御手段は、前記マスタモジュールに供給されるクロック信号の動作周波数をより低い動作周波数に変更することによって、前記マスタモジュールを省電力状態に制御することを特徴とする請求項１乃至１３の何れか１項に記載の情報処理装置。
【請求項１５】
前記調停手段は、前記データ転送処理手段の内部に含まれることを特徴とする請求項１乃至１４の何れか１項に記載の情報処理装置。
【請求項１６】
前記スレーブモジュールはメモリコントローラ又はＳＲＡＭモジュールであることを特徴とする請求項１乃至１５の何れか１項に記載の情報処理装置。
【請求項１７】
前記マスタモジュールはＣＰＵを含み、前記ＣＰＵを含む前記マスタモジュールが転送以外の情報処理中である場合は、前記制御手段は、前記マスタモジュールを省電力状態に制御しないことを特徴とする請求項１乃至１６の何れか１項に記載の情報処理装置。
【請求項１８】
前記制御手段は、省電力状態にある前記マスタモジュールを、前記省電力状態から解除する場合は、前記調停手段に選択されなかった前記データ転送要求を発行したマスタモジュールを優先して前記省電力状態から解除することを特徴とする請求項１乃至１７の何れか１項に記載の情報処理装置。
【請求項１９】
複数のマスタモジュールと少なくとも１つのスレーブモジュールとの間のデータ転送を行うデータ転送処理手段を備える情報処理装置を制御する方法であって、
一つの前記スレーブモジュールに対して、データ転送要求を発行した複数のマスタモジュールから、何れか一つの前記マスタモジュールの前記データ転送要求を選択し、データ転送を行うように調停する調停工程と、
前記調停手段に選択されなかった前記データ転送要求を発行したマスタモジュールと、前記データ転送要求を発行していないマスタモジュールとを省電力状態に制御する工程と、
を有することを特徴とする制御方法。
【請求項２０】
複数のマスタモジュールと少なくとも１つのスレーブモジュールとの間のデータ転送を行うデータ転送処理手段を備える情報処理装置を制御する方法であって、
一つの前記スレーブモジュールに対して、複数のマスタモジュールがデータ転送要求を発行した場合、何れか一つの前記マスタモジュールの前記データ転送要求を選択し、データ転送を行うように調停する調停工程と、
それぞれの前記マスタモジュールが発行した前記データ転送要求を、前記調停手段が選択した回数をカウントするカウント工程と、
それぞれの前記マスタモジュールからの前記データ転送要求を、前記調停手段が所定期間に選択可能な所定回数を保持する保持工程と、
複数の前記マスタモジュールの内、カウントされた前記回数が前記所定回数に到達した前記マスタモジュールを、省電力状態に制御する制御工程と、
を有することを特徴とする制御方法。
【請求項２１】
複数のマスタモジュールと少なくとも１つのスレーブモジュールとの間のデータ転送を行うデータ転送処理手段を備える情報処理装置を制御する方法であって、
一つの前記スレーブモジュールに対して、複数のマスタモジュールがデータ転送要求を発行した場合、何れか一つの前記マスタモジュールの前記データ転送要求を選択し、データ転送を行うように調停する調停工程と、
前記調停手段によって選択された前記データ転送要求を発行した前記マスタモジュールと一つの前記スレーブモジュールとの間のデータ転送量を取得する取得工程と、
それぞれの前記マスタモジュールと一つの前記スレーブモジュールとの間の前記データ転送量の所定期間における制限量を保持する保持工程と、
複数の前記マスタモジュールの内、取得された前記データ転送量が前記制限量に到達した前記マスタモジュールを、省電力状態に制御する制御工程と、
を有することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置におけるマスタモジュールの省電力化に関する。
【背景技術】
【０００２】
半導体集積回路の集積度の向上や処理能力の向上は消費電力の増大を招き、消費電力の削減対策が必須となった。
【０００３】
近年の半導体集積回路は、データ転送要求を発行するマスタモジュール、データ転送要求に応答するスレーブモジュールおよびデータ転送を担うバスシステム（以下、「データ転送処理部」とも記載する）などで構成される。マスタモジュールには、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）や中央演算装置（ＣＰＵ）などがある。スレーブモジュールには、メモリコントローラやスタティックランダムアクセスメモリモジュール（ＳＲＡＭモジュール）などがある。また、データ転送処理部は、インターコネクト、ファブリック、オンチップネットワークとも呼ばれる。
【０００４】
マスタモジュールは、しばしば、クロック信号を遮断もしくは変更する技術によって省電力化が図られている。これらの技術を制御する方法として、ソフトウェア手続きによるものとハードウェア機構によるものがある。ソフトウェア手続きによる制御に関しては、ＣＰＵが所定のレジスタを参照することでマスタモジュールの状態を検知し、その状態に応じてクロック信号を制御するといった方法がある。一方、ハードウェア機構による制御に関しては、バス調停回路を利用するものが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−４０２７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年の大規模な半導体集積回路においては、マスタモジュールの数は１００を超え、その消費電力も大きくなっている。そのため、マスタモジュールがデータ転送処理部に対してデータ転送要求を発行しないアイドル状態では、そのマスタモジュールのクロック信号を遮断もしくは変更することで消費電力を削減することが課題である。
【０００７】
例えば、マスタモジュールがデータ転送要求を発行する準備中、もしくは、データ転送要求を発行し、その要求がデータ転送処理部によって処理されるまでの待機中など、マスタモジュールが動作中の状態にあるケースが多い。マスタモジュールがデータ転送要求を発行する準備中で、データ転送要求を発行しそうな状態にある場合でも、データ転送処理部が転送要求を受信しない場合が多々存在する。このような状態においても、データ転送性能を低下させない範囲でマスタモジュールのクロック信号を遮断もしくは変更し、データ転送要求を発行させないことで更なる省電力化を図る必要性が高まってきている。
【０００８】
従来のソフトウェア手続きにより制御する方法では、処理に数十サイクルは要してしまうため、動作中の状態にあるマスタモジュールのクロック信号を短い周期で遮断もしくは変更することは困難であった。また、特許文献１はハードウェア機構により制御する方法である。この方法は、複数のマスタモジュールからデータ転送要求信号が発行され、それに応答して調停部よりデータ転送許可信号が活性化されるまで、データ転送要求信号を発行したマスタモジュールのクロック信号をディセーブルする。
【０００９】
しかし、この方法では、データ転送要求を発行したマスタモジュール自身しか省電力化を図ることができない。
【００１０】
本発明はこのような問題点に鑑みなされたものである。データ転送要求を発行していないマスタモジュールも含めて省電力化を実現することを目的とする。
【課題を解決するための手段】
【００１１】
上述の課題を解決するための情報処理装置は、以下の構成を備える。すなわち、複数のマスタモジュールと少なくとも１つのスレーブモジュールとの間のデータ転送を行うデータ転送処理手段と、一つの前記スレーブモジュールに対して、データ転送要求を発行した複数のマスタモジュールから、何れか一つの前記マスタモジュールの前記データ転送要求を選択し、データ転送を行うように調停する調停手段と、前記調停手段に選択されなかった前記データ転送要求を発行したマスタモジュールと、前記データ転送要求を発行していないマスタモジュールとを省電力状態に制御する制御手段と、を備える。
【発明の効果】
【００１２】
本発明によれば、選択されなかったデータ転送要求を発行したマスタモジュールと、データ伝送要求を発行していないマスタモジュールとを省電力状態に制御することができる。
【図面の簡単な説明】
【００１３】
【図１】情報処理装置の構成例を示すブロック図である。
【図２】データ転送処理部とクロック信号制御部の構成例を示すブロック図である。
【図３】データ転送を説明する図である。
【図４】データ転送処理部の構成例を示すブロック図である。
【図５】ロック転送を説明する図である。
【図６】（ａ）データ転送処理部の処理を説明するフローチャートである。（ｂ）クロック信号制御部の処理を説明するフローチャートである。
【図７】マスタモジュールの電力状態の遷移を示す図である。
【図８】（ａ）データ転送処理部の処理を説明するフローチャートである。（ｂ）クロック信号制御部の処理を説明するフローチャートである。
【図９】マスタモジュールの電力状態の遷移を示す図である。
【発明を実施するための形態】
【００１４】
以下に、本実施形態の情報処理装置を、図面を参照して詳細に説明する。なお、以下の実施形態は例示であり、本発明の範囲を限定するものではない。
【００１５】
［装置の構成］
まず、図１のブロック図により情報処理装置１００の構成例を示す。
【００１６】
情報処理装置１００は、データ転送を司るデータ転送処理部３０を有する。データ転送処理部３０には、プロセッサとして複数のＣＰＵ１０と１１、ディジタル信号プロセッサ（ＤＳＰ）１２およびグラフィカルプロセッサ（ＧＰＵ）１３などが接続される。データ転送処理部３０には、データ転送コントローラとして複数のＤＭＡＣ１４と１５およびメモリコントローラ（ＭＥＭＣ）２０などが接続される。データ転送処理部３０には、図示しない周辺機器を接続するための例えばＰＣＩエクスプレスコントローラ（ＰＣＩｅ）２１およびＵＳＢコントローラ（ＵＳＢ）２２などが接続される。データ転送処理部３０には、メモリとしてリードオンリメモリ（ＲＯＭ）２３およびＳＲＡＭ２４などが接続される。データ転送処理部３０には、更にクロック信号制御部２５が接続される。
【００１７】
ＭＥＭＣ２０は、情報処理装置１００の外部のダイナミックランダムアクセスメモリ（ＤＲＡＭ）５００に接続されている。ＣＰＵ１０は、ＤＲＡＭ５００をワークメモリとして、ＲＯＭ２３に格納されたプログラムを実行する。図１に示す情報処理装置１００の構成は、システムオンチップと呼ばれる半導体装置に代表的な構成であり、データ転送を司るデータ転送処理部３０は、インターコネクト、ファブリック、オンチップネットワークまたはネットワークオンチップと呼ばれる。
【００１８】
なお、ＣＰＵ１０と１１、ＤＳＰ１２、ＧＰＵ１３、ＤＭＡＣ１４と１５は、データ転送要求を発行するモジュール群であり、以下ではマスタモジュール３００と総称する場合がある。一方、ＭＥＭＣ２０、ＰＣＩｅ２１、ＵＳＢ２２、ＲＯＭ２３、ＳＲＡＭ２４、クロック信号制御部２５は、データ転送要求を受信した後に応答するモジュール群であり、以下ではスレーブモジュール４００と総称する場合がある。なお、データ転送要求の発行と応答の両方の機能を有するモジュールも存在するが、図には示さない。
【００１９】
［データ転送処理部とクロック信号制御部］
次に、図２のブロック図によりデータ転送処理部３０とクロック信号制御部２５の構成例を示す。
【００２０】
データ転送処理部３０は、マスタモジュール３００より転送データを受信し、その転送データに含まれる転送情報に基づいて、マスタモジュール３００のデータ転送要求を調停する調停部１０１を有する。調停部１０１は、その調停結果に基づいて、転送データを後段のスレーブモジュール４００に送信する。また、調停部１０１は、クロック信号制御部２５に対して、その調停結果を送信する機能を有する。例えば、調停部１０１に選択されなかったデータ転送要求を出力したマスタモジュールは、転送データを処理しないと判断し、そのマスタモジュールのクロック信号の遮断もしくは変更を指示するクロック遮断変更指示信号を発行する機能を有する。クロック信号制御部２５は、調停部１０１が発行するクロック遮断変更指示信号に基づいて、マスタモジュール３００のクロック信号を制御する。
【００２１】
図３のデータ波形によりデータ転送処理部３０のデータ転送を説明する。データは、データ転送要求信号とデータ転送許可信号の二線ハンドシェイクプロトコルによって転送される。データを送信するモジュール（以下、送信モジュール）はデータ転送要求信号と転送データの信号線を駆動し、データを受信するモジュール（以下、受信モジュール）は送信モジュールにバス使用権を与える際にデータ転送許可信号を駆動する。そして、データ転送要求信号とデータ転送許可信号が共にアクティブの際にデータ転送が成立する。なお、データ転送要求信号とデータ転送許可信号はＨレベルでアクティブ（ハイアクティブ）である。
【００２２】
図４のブロック図によりデータ転送処理部３０と調停部１０１の回路の構成例を示す。
【００２３】
なお、図４のブロック図は、後述する説明の理解を容易にするためにアドレスＩ／Ｆの結線と回路ブロックを示しており、ライトデータＩ／ＦやリードデータＩ／Ｆを含めた全ての結線や回路ブロックを示しているわけではない。また、図４に示すデータ転送処理部３０には、調停部１０２も含まれているが、調停部１０２の構成及び処理は調停部１０１と同じであるので、その説明を省略する。
【００２４】
データ転送処理部３０は、マスタモジュール３０１〜３０４からの転送データを受信する複数のマスタモジュールデータ転送制御Ｉ／Ｆ５０１〜５０４、転送データを後段のスレーブモジュール９０１に送信するスレーブモジュールデータ転送制御Ｉ／Ｆ８０２を有する。なお、本実施形態では、スレーブモジュール９０１はＭＥＭＣである。アドレスデコード回路６０１〜６０４は、それぞれマスタモジュールデータ転送制御Ｉ／Ｆ５０１〜５０４から出力された転送データの転送先を解析し、データ転送要求を転送相手のスレーブモジュール９０１に対応する調停回路７０１に送信する。調停回路７０１は、マスタモジュール３０１〜３０４からのデータ転送要求の一つを選択する調停を行う。調停回路７０１は、調停結果を選択回路７０２およびスレーブモジュールデータ転送制御Ｉ／Ｆ８０２に出力し、調停結果又は調停結果から生成したクロック遮断変更指示信号をクロック信号制御部２５に出力する。
【００２５】
選択回路７０２は、調停結果に基づき転送データを選択し、選択した転送データをスレーブモジュールデータ転送制御Ｉ／Ｆ８０２に出力する。スレーブモジュールデータ転送制御Ｉ／Ｆ８０２は、調停結果と選択された転送データを受信し、スレーブモジュール９０１との間でデータの送受信を行う。また、その転送情報をキュー８０１に格納する。キュー８０１は、発行したトランザクションに対応するデータ転送許可信号をスレーブモジュール９０１から全て受信するまで、その転送情報を保持する。
【００２６】
クロック信号制御部２５は、受信したクロック遮断変更指示信号に基づいて、マスタモジュール３０１〜３０４のクロック信号を制御する。なお、クロック遮断変更指示信号は、例えばマスタモジュール数と等しいビット列の信号であり、Ｈレベルでアクティブ（ハイアクティブ）とする。また、クロック遮断解除もしくはクロック変更解除指示信号とは、クロック遮断変更指示信号における対応するビットがＬレベルに遷移することを示す。
【００２７】
以下、クロック遮断変更指示信号を発行する際のデータ転送処理部３０とクロック信号制御部２５の動作について、ケース別に説明する。
【００２８】
●転送要求の属性に応じてクロック遮断変更指示信号を発行する場合
複数のマスタモジュールがそれぞれバスやＤＲＡＭの帯域確保のために、ロック転送を使用する場合がある。ロック転送とは、排他制御の転送の一種であり、例えば、図４のマスタモジュール３０１がスレーブモジュールであるＭＥＭＣ９０１へ転送処理を行う際に、ロック転送要求を発行するとする。そのロック転送要求が調停部１０１に選択され、データ転送処理部３０が転送処理を行っている間は、別のマスタモジュール３０２〜３０４は同一スレーブモジュールであるＭＥＭＣ９０１に対して転送処理を行うことができない、という特徴を持つ。
【００２９】
ロック転送は、マスタモジュール３０１がロック転送解除要求を発行することで完了となる。なお、ロック転送要求とは、図５（ａ）のアドレスＩ／Ｆのデータ波形のように、データ転送要求に付随して、ロックという属性情報を発行することで実現し、ロック転送解除要求は、同様にアンロックという属性情報を発行することで実現する。ロック転送を行っている間、マスタモジュール３０１がスレーブモジュールであるＭＥＭＣ９０１をロックする。これらの転送要求が書き込み要求であったとすると、ライトデータは、例えば、図５（ｂ）のライトデータＩ／Ｆのデータ波形が示すように転送される。
【００３０】
ロック転送を使用する際のマスタモジュールの省電力化の処理方法を説明する。図４のブロック図と図６のフローチャートによりデータ転送処理部３０およびクロック信号制御部２５の動作について説明する。
【００３１】
まず、データ転送処理部３０の動作について図６（ａ）を用いて説明する。電源が供給されると、動作を開始する。ステップＳ１１では、データ転送処理部３０は、全てのマスタモジュールはクロック信号が供給されている状態であることを確認する。ステップＳ１２に遷移する。ステップＳ１２では、データ転送処理部３０の調停部１０１にある調停回路７０１がいずれかのマスタモジュールからロック転送要求が発行されていないかを確認する。
【００３２】
例えば、マスタモジュール３０１からロック転送要求が発行されると、データ転送要求とロックの属性情報を調停回路７０１が受信し、ステップＳ１３に遷移する。ロック転送要求がない場合にはステップＳ１１に遷移する。ステップＳ１３では、調停回路７０１がキュー８０１から情報を受け取り、スレーブモジュール９０１からの応答待ちのトランザクションがないか（データ転送の処理中であるか）を判定する。応答待ちのトランザクションがなければ、スレーブモジュール９０１がデータ転送処理をしていないと判定し、調停回路７０１はマスタモジュール３０１に接続されているデータ転送許可信号を駆動してバス使用権を与える。同時に、調停回路７０１は調停結果を選択回路７０２とスレーブモジュールデータ転送制御Ｉ／Ｆ８０２に出力する。
【００３３】
そして、ステップＳ１４に遷移する。応答待ちのトランザクションがあれば、ステップＳ１３を繰り返す。ステップＳ１４では、調停回路７０１がクロック遮断変更指示信号におけるマスタモジュール３０２〜３０４の該当ビットをイネーブルにし、クロック信号制御部２５に送信する。
【００３４】
ステップＳ１５に遷移する。ステップＳ１５では、調停回路７０１がマスタモジュール３０１からロック転送解除要求が発行されていないかを確認する。ロック転送解除要求が発行されると、データ転送要求とアンロックの属性情報を調停回路７０１が受信し、ステップＳ１６に遷移する。ロック転送解除要求が発行されていない場合は、ステップＳ１５を繰り返す。ステップＳ１６では、調停回路７０１がクロック遮断変更指示信号におけるマスタモジュール３０２〜３０４の該当ビットをディセーブルし、ステップＳ１１に遷移する。
【００３５】
次に、クロック信号制御部２５の動作、について図６（ｂ）を用いて説明する。電源が供給されると、動作を開始する。ステップＳ２１では、クロック信号制御部２５は、全てのマスタモジュールはクロック信号が供給されている状態であることを確認する。ステップＳ２２に遷移する。ステップＳ２２では、クロック信号制御部２５が調停回路７０１から発行されたクロック遮断変更指示信号にイネーブルビットが存在するかどうかを確認する。存在すれば、ステップＳ２３に遷移する。存在しなければ、ステップＳ２１に遷移する。
【００３６】
ステップＳ２３では、クロック信号制御部２５が調停回路７０１より受信したクロック遮断変更指示信号のイネーブルビットに基づいて、対象となるマスタモジュールのクロック信号を制御する。本実施形態の例では、マスタモジュール３０２〜３０４に対応するビットがイネーブルされており、それらのマスタモジュールのクロック信号を遮断する。次にステップＳ２４に遷移する。ステップＳ２４では、調停回路７０１から発行されたクロック遮断変更指示信号がディセーブルされたかを確認する。ディセーブルされていれば、ステップＳ２５に遷移する。ディセーブルされていなければ、ステップＳ２４を繰り返す。ステップＳ２５では、マスタモジュール３０２〜３０４にクロック信号を供給し、ステップＳ２１に遷移する。
【００３７】
上記では、マスタモジュール３０１がロック転送を使用する場合のデータ転送処理部３０およびクロック信号制御部２５の動作について説明したが、他の複数のマスタモジュールがロック転送を使用する場合も同様の制御で実現できる。
【００３８】
図７にマスタモジュール３０１〜３０４の電力状態の遷移の一例を示す。この例では、マスタモジュールは四つなので、クロック遮断変更指示信号は４ビット信号である。最下位ビットがマスタモジュール３０１に対応し、最上位ビットがマスタモジュール３０４に対応する。対応するビットに１が立つことで遮断指示が有効となる。クロック信号ＣＬＫ０、クロック信号ＣＬＫ１、クロック信号ＣＬＫ２およびクロック信号ＣＬＫ３はそれぞれマスタモジュール３０１〜３０４のクロック信号である。
【００３９】
時刻Ｔ０において、マスタモジュール３０３がデータ転送要求を発行するが、通常のデータ転送要求であるため、各マスタモジュールのクロック信号は供給されたままで、電力状態の遷移はない。時刻Ｔ０’において、このデータ転送は完了する。
【００４０】
時刻Ｔ１において、マスタモジュール３０１がロック転送要求を発行する。前述した所定の処理を経て、マスタモジュール３０１以外のマスタモジュール３０２〜３０４は、クロック信号が遮断され、省電力状態に遷移する。時刻Ｔ２において、マスタモジュール３０１がロック転送解除要求を発行する。所定の処理を経て、マスタモジュール３０２〜３０４は、クロック信号が供給され、通常状態に戻る。
【００４１】
同様に、時刻Ｔ３においてマスタモジュール３０２がロック転送要求を発行し、所定の処理を経て、マスタモジュール３０２以外のマスタモジュール３０１、マスタモジュール３０３およびマスタモジュール３０４のクロックが遮断され、省電力状態に遷移する。時刻Ｔ４において、マスタモジュール３０２がロック転送解除要求を発行し、所定の処理を経て、マスタモジュール３０１、マスタモジュール３０３およびマスタモジュール３０４が通常状態に戻る。これらのマスタモジュールが通常状態に戻ることによって、それぞれのマスタモジュールが行うべき処理は、省電力状態に遷移しなかった場合と比べると、遅延することがなく、実現することができる。
【００４２】
時刻Ｔ３において、マスタモジュール３０１、マスタモジュール３０３およびマスタモジュール３０４が通常のデータ転送要求を発行していないが、これに限定する必要はない。例えば、時刻Ｔ３において、マスタモジュール３０１が通常のデータ転送要求を発行したが、調停部１０１に選択されていない場合、クロック信号制御部２５は、マスタモジュール３０１のクロックを遮断するかを判断することができる。マスタモジュール３０１のクロックを遮断する場合は、マスタモジュール３０１のデータ転送要求等をレジスタ（非図示）に記憶させてから、マスタモジュール３０１のクロックを遮断することができる。
【００４３】
時刻Ｔ４において、マスタモジュール３０２がロック転送解除要求を発行し、所定の処理を経て、マスタモジュール３０１、マスタモジュール３０３およびマスタモジュール３０４を同時に通常状態に戻すことができるが、これに限定する必要はない。例えば、レジスタ（非図示）に調停部１０１に選択されなかったマスタモジュール３０１の通常のデータ転送要求が記憶されている場合、マスタモジュール３０１を優先的に通常状態に戻すことができる。この場合は、ロック転送の処理によって待機することとなったマスタモジュール３０１のデータ転送要求を速やかに処理することができる。
【００４４】
時刻Ｔ５において、マスタモジュール３０４がデータ転送要求を発行するが、通常のデータ転送要求であるため、各マスタモジュールのクロック信号は供給されたままで、電力状態の遷移はない。
【００４５】
以上のように、各マスタモジュールの電力状態が遷移する。図７では、クロック信号を遮断し、省電力状態に移行する例を示したが、低い動作周波数に変更し、省電力状態に移行することもできる。また、マスタモジュール３０４はＣＰＵを含むサブシステムであり、サブシステムの内部処理でｂｕｓｙ状態であるなどの時に、ＣＰＵに直結するクロック信号を遮断すると、サブシステムの処理に影響を及ぼしてしまうような場合がある。この場合、例えば、処理中のマスタモジュール３０４へのクロック信号を遮断せず、マスタモジュール３０４の転送を司るバスＩ／Ｆのクロック信号のみ遮断することもできる。また、ＣＰＵを含むマスタモジュールに限定する必要はない。例えば、クロック信号制御部２５は、各マスタモジュールが処理中であるかを判定し、処理中ではないと判定したマスタモジュールへのクロック信号を遮断し、処理中と判定したマスタモジュールへのクロック信号を遮断しないことができる。これによって、処理中のマスタモジュールへ影響を避けることができる。
【００４６】
また、ロック転送と同様にして、バスやＤＲＡＭの帯域確保のために、転送長の長い転送データが処理されることがしばしばある。この場合、ロック転送要求が発行されていなくても、所定の転送長以上のデータ転送要求が発行された場合に、ロック転送要求が発生されたた場合と同様に調停することができる。また、ロック転送解除要求が発行されていなくても、所定のデータ転送状況に基づいて、例えば、最後の転送データを検出した時に、ロック転送解除要求を発行した場合と同様に制御することができる。このように処理することで、転送長が所定値以上のデータ転送要求を発行した場合に、ロック転送の発行した場合と同様な制御で各マスタモジュールの省電力状態への移行を制御することが可能である。
【００４７】
●データ転送要求の選択回数の閾値に到達し指示信号を発行する場合
複数のマスタモジュールに対して、それぞれバスやＤＲＡＭの帯域を割り当てるための手段として、調停回路７０１が各マスタモジュールの同一スレーブモジュール９０１に対するデータ転送要求の選択回数を計数する（カウントする）方法がある。調停部１０１に設けられたカウンター又はカウント部（非図示）がデータ転送要求の選択回数をカウントする。また、調停回路７０１内の保持部が、それぞれのマスタモジュールのデータ転送要求の選択回数の閾値としての所定回数を保持する。
【００４８】
データ転送要求の選択回数が所定回数に到達したマスタモジュールは、他の全てのマスタモジュールのデータ転送要求の選択回数が所定回数に到達するまで、調停部１０１により次のデータ転送要求が選択されない、という特徴を持つ。各マスタモジュールに対して、データ転送要求の選択回数の閾値を設けた場合のマスタモジュールの省電力化の方法を説明する。調停回路７０１により、マスタモジュール３０１〜３０４に対するデータ転送要求の選択回数の閾値がそれぞれ、１、２、３、１、と割り当てられているとする。
【００４９】
図４のブロック図と図８のフローチャートによりデータ転送処理部３０およびクロック信号制御部２５の動作について説明する。
【００５０】
まず、データ転送処理部３０の動作について、図８（ａ）を用いて説明する。電源が供給されると、動作を開始する。ステップＳ３１では、データ転送処理部３０は、全てのマスタモジュールはクロック信号が供給されている状態であることを確認する。ステップＳ３２に遷移する。ステップＳ３２では、データ転送処理部３０の調停部１０１にある調停回路７０１がいずれかのマスタモジュールからデータ転送要求が発行されていないかを確認する。
【００５１】
例えば、マスタモジュール３０１からデータ転送要求が発行されると、データ転送要求を調停回路７０１が受信し、ステップＳ３３に遷移する。データ転送要求がない場合には、ステップＳ４０に遷移する。ステップＳ３３では、調停回路７０１はマスタモジュール３０１に接続されているデータ転送許可信号を駆動してバス使用権を与えて、データ転送要求を選択する。調停結果を選択回路７０２とスレーブモジュールデータ転送制御Ｉ／Ｆ８０２に出力し、マスタモジュール３０１のデータ転送要求選択回数のカウント値を加算する。
【００５２】
そして、ステップＳ３４に遷移する。ステップＳ３４では、調停回路７０１がマスタモジュール３０１のデータ転送要求の選択回数のカウント値が閾値に到達したかどうかを検出する。即ち、調停回路７０１が選択した、マスタモジュール３０１からのデータ転送要求の選択回数が所定回数未満であるかを検知する。マスタモジュール３０１に対するデータ転送要求の選択回数の閾値は１であり、所定回数に到達しているため、ステップＳ３５に遷移する。もし、閾値に到達していなければ（所定回数未満）、いずれかのマスタモジュールから新たなデータ転送要求を選択するため、ステップＳ３２に遷移する。
【００５３】
ステップＳ３５では、マスタモジュール３０１の転送処理が完了したかどうかを検出する。調停回路７０１がキュー８０１から情報を受け取り、スレーブモジュールであるＭＥＭＣ９０１からの応答待ち状態でないかどうかを確認する。応答待ちの状態でなければ、この転送処理が完了したと判定できるため、ステップＳ３６に遷移する。応答待ち状態の際は、ステップＳ４３に遷移する。ステップＳ３６では、前述した検出結果に基づいて、調停回路７０１がクロック遮断変更指示信号におけるマスタモジュール３０１に該当するビットをイネーブルして、ステップＳ３７に遷移する。ステップＳ３７では、調停回路７０１が全てのマスタモジュールのデータ転送要求選択回数のカウント値が閾値に到達したかどうかを検出する。マスタモジュール３０２〜３０４のデータ転送要求の選択回数は閾値に到達していないので、ステップＳ３２に遷移し、同様な手順を繰り返す。
【００５４】
その後、ステップＳ３７において、全てのマスタモジュールのデータ転送要求の選択回数のカウント値が閾値に到達した場合、ステップＳ３８に遷移する。ステップＳ３８では、調停回路７０１がクロック遮断変更指示信号の全てのビットをディセーブルし、ステップＳ３９に遷移する。ステップＳ３９では、調停回路７０１が全てのマスタモジュールのデータ転送要求の選択回数のカウント値をクリアし、データ転送要求選択回数のカウント値をリセットする。これによって、各マスタモジュールからの次のデータ転送要求を選択可能な状態にする。
【００５５】
そして、ステップＳ３１に遷移する。なお、ステップＳ３２から遷移するステップＳ４０、ステップＳ４１、ステップＳ４２およびステップＳ３５から遷移するステップＳ４３、ステップＳ４４、ステップＳ４５はデッドロックを防止するためのステップである。必ずしも全てのマスタモジュールのデータ転送要求の選択回数が所定回数に到達するとは限らないため、所定期間が経過したら、調停回路７０１が、クロック遮断変更指示信号の各ビットの状態にかかわらず、全てディセーブルする。また、全てのマスタモジュールのデータ転送要求選択回数のカウント値をクリアし、データ転送要求選択回数のカウント値をリセットする。これによって、各マスタモジュールからの次のデータ転送要求を選択可能な状態にし、ステップＳ３１に遷移する。
【００５６】
次に、クロック信号制御部２５の動作、図８（ａ）を用いて説明する。電源が供給されると、動作を開始する。ステップＳ５１では、クロック信号制御部２５は、全てのマスタモジュールはクロック信号が供給されている状態であることを確認する。ステップＳ５２に遷移する。ステップＳ５２では、クロック信号制御部２５が調停回路７０１から発行されたクロック遮断変更指示信号に新たなイネーブルビットが存在するかどうかを確認する。存在すれば、ステップＳ５３に遷移する。存在しなければ、ステップＳ５４に遷移する。
【００５７】
ステップＳ５３では、クロック信号制御部２５が調停回路７０１より受信したクロック遮断変更指示信号のイネーブルビットに基づいて、対象となるマスタモジュールのクロック信号を制御する。本実施形態の例では、まず、マスタモジュール３０１に対応するビットがイネーブルされており、マスタモジュール３０１のクロック信号を遮断する。次にステップＳ５４に遷移する。ステップＳ５４では、調停回路５０３から発行されたクロック遮断変更指示信号がディセーブルされたかを確認する。ディセーブルされていなければ、ステップＳ５２に遷移し、同様な手順を繰り返す。ディセーブルされていれば、ステップＳ５５に遷移する。ステップＳ５５では、全てのマスタモジュールに対して、クロック信号を供給し、ステップＳ５１に遷移する。
【００５８】
図９にマスタモジュール３０１〜３０４の電力状態の遷移の一例を示す。この例では、マスタモジュールは四つなので、クロック遮断変更指示信号は４ビット信号である。最下位ビットがマスタモジュール３０１に対応し、最上位ビットがマスタモジュール３０４に対応する。対応するビットに１が立つことで遮断指示が有効となる。クロック信号ＣＬＫ０、クロック信号ＣＬＫ１、クロック信号ＣＬＫ２およびクロック信号ＣＬＫ３はそれぞれマスタモジュール３０１〜３０４のクロック信号である。それぞれのマスタモジュールのデータ転送要求の選択回数の閾値は、１、２、３、１、と割り当てられているとする。
【００５９】
マスタモジュール３０１は、時刻Ｔ０に発行したデータ転送要求が調停回路７０１に選択されて、その転送処理が完了した時刻Ｔ０’に省電力状態に移行する。同様にマスタモジュール３０４は、時刻Ｔ１に発行したデータ転送要求が調停回路７０１に選択されて、その転送処理が完了した時刻Ｔ１’に省電力状態に移行する。
【００６０】
同様にマスタモジュール３０２は、時刻Ｔ２に発行した二つ目のデータ転送要求が調停回路７０１に選択されて、その転送処理が完了した時刻Ｔ２’に省電力状態に移行する。マスタモジュール３０３は、時刻Ｔ３に発行した三つ目のデータ転送要求が調停回路７０１に選択されて、全てのマスタモジュールのデータ転送要求の選択回数が閾値に到達したことになる。したがって、その転送処理が完了した時刻Ｔ３’にマスタモジュール３０１、マスタモジュール３０２およびマスタモジュール３０４が通常状態に戻る。
【００６１】
以上のように、各マスタモジュールの電力状態が遷移する。図９では、クロック信号を遮断し省電力状態に移行する例を示したが、低い動作周波数に変更し、省電力状態に移行することもできる。また、前述したが、マスタモジュール３０４はＣＰＵを含むサブシステムであり、ＣＰＵが転送以外の情報処理中である場合に、ＣＰＵに直結するクロック信号を遮断すると、サブシステムの処理に影響を及ぼしてしまうような場合がある。この場合、例えば、マスタモジュール３０４を省電力状態に制御せず、マスタモジュール３０４の転送を司るバスＩ／Ｆのクロック信号のみ遮断することもできる。
【００６２】
また、各マスタモジュールに対して、調停部１０１がデータ転送要求を選択した回数の所定回数の替わりに、各マスタモジュールと一つのスレーブモジュールとの間のデータ転送量の制限量を使用して制御することができる。この場合は、調停部１０１に設けられた取得部（非図示）が各マスタモジュールと一つのスレーブモジュールとの間のデータ転送量を取得する。調停部１０１に設けられた保持部は各マスタモジュールと一つのスレーブモジュールとの間のデータ転送量の制限量を保持する。
【００６３】
処理の一例として、マスタモジュール３０１とスレーブモジュール９０１との間のデータ転送量が制限量に到達した後に、クロック信号制御部２５がマスタモジュール３０１を省電力状態に移行するように制御する。この時に、マスタモジュール３０２〜３０４のそれぞれとスレーブモジュール９０１との間のデータ転送量が制限量未満なので、調停部１０１がマスタモジュール３０２〜３０４からのデータ転送要求を選択可能な状態にある。すべてのマスタモジュール３０１〜３０４のデータ転送量が制限量に到達した場合は、調停部１０１がすべてのマスタモジュール３０１〜３０４からのデータ転送要求を選択可能な状態になる。
【００６４】
このように、マスタモジュール３００とデータ転送処理部３０の連携により、調停結果に応じて、一つあるいは複数のマスタモジュールのクロック信号を遮断あるいは変更し、情報処理装置におけるマスタモジュールの消費電力を低減することができる。
【００６５】
特許文献１の方法では、データ転送要求を発行したマスタモジュール自身しか省電力化を図ることができない。データ転送要求を発行したマスタモジュールより、データ転送要求を発行していないマスタモジュールが多い場合は、特許文献１の方法の省電力効果が低い。また、特許文献１の方法では、データ転送許可信号が活性化されるまで、データ転送要求信号を発行したマスタモジュールのクロック信号がディセーブルされる。データ転送要求を発行したマスタモジュールが多数ある場合、データ転送許可信号が活性化される優先順位の低いマスタモジュールでは、データ転送等のデータ処理のできない期間が長く、装置の性能が低下する恐れがある。
【００６６】
本実施形態は、装置の性能を低下させずに、選択されなかったデータ転送要求を発行したマスタモジュールと、データ伝送要求を発行していないマスタモジュールとを省電力状態に制御することができる。
【符号の説明】
【００６７】
２５  クロック信号制御部
３０  データ転送処理部
１０１  調停部
３０１  マスタモジュール
９０１  スレーブモジュール
【図１】
2016218731.tif 000003
【図２】
2016218731.tif 000004
【図３】
2016218731.tif 000005
【図４】
2016218731.tif 000006
【図５】
2016218731.tif 000007
【図６】
2016218731.tif 000008
【図７】
2016218731.tif 000009
【図８】
2016218731.tif 000010
【図９】
2016218731.tif 000011