(57)【要約】インターコネクト(14)によって接続された、マスタユニット(8、10)およびスレーブユニット(6、18、20)を含む、集積回路などのデバイス(2)について記載する。トランザクションと共に渡される、通常のデータ信号(22)およびアドレス信号(24)の他に、次のトランザクションがスレーブユニットに送られるまでの時間間隔を指定する使用信号(26)も渡される。ローカルスレーブ電力コントローラ(34)は、このような使用信号(26)に応答して、低電力モードに切り換え、かつ受け取るべき次のトランザクションに応答するのに間に合うように、プリエンプティブに動作モードに戻るように切り換える。
2009545048.tif 000002
【特許請求の範囲】
【請求項１】
データを処理するためのデバイスであって、
1つまたは複数のマスタユニットと、
1つまたは複数のスレーブユニットと、
前記1つまたは複数のマスタユニットと前記1つまたは複数のスレーブユニットの間の配線経路に沿って、データ転送トランザクションを含むトランザクションを経路指定するように、前記1つまたは複数のマスタユニットおよび前記1つまたは複数のスレーブユニットに結合されたインターコネクトと
を備え、
前記1つまたは複数のスレーブユニットの少なくとも1つによって受け取られるトランザクションは、いつ次のトランザクションが前記1つまたは複数のスレーブユニットの前記少なくとも1つに送られるかを示す使用予測を指定する1つまたは複数の使用信号を含み、
前記1つまたは複数のスレーブユニットの前記少なくとも1つは、前記次のトランザクションを受け取ると予想される前の間隔の間、前記1つまたは複数のスレーブユニットの前記少なくとも1つを第1のスレーブ電力状態に切り換え、前記次のトランザクションを処理するのに間に合うように、前記1つまたは複数のスレーブユニットの前記少なくとも1つを第2のスレーブ電力状態に切り換えるように、前記1つまたは複数の使用信号に応答するローカルスレーブ電力コントローラを有し、
前記第1のスレーブ電力状態は、前記第2のスレーブ電力状態より低い電力消費を有するとともに、
前記第1のスレーブ電力状態は、前記第2のスレーブ電力状態より長い応答待ち時間を有するデバイス。
【請求項２】
トランザクションを発行するマスタユニットが、前記マスタユニットの現在の状態に応じて、前記トランザクション内に、前記1つまたは複数の使用信号を供給する、請求項1に記載のデバイス。
【請求項３】
前記インターコネクトが、前記デバイスの現在の状態に応じて、前記トランザクション内に、前記1つまたは複数の使用信号を供給する、請求項1および2のいずれか一項に記載のデバイス。
【請求項４】
前記インターコネクトが、複数のマスタユニットからそれぞれのトランザクションと共に受け取った使用信号の間で調停し、前記1つまたは複数のスレーブユニットの前記少なくとも1つに渡され、前記複数のマスタユニットのいずれかからいつ次のトランザクションが前記1つまたは複数のスレーブユニットの前記少なくとも1つに送られるかを示す、調停された使用信号を供給する、請求項3に記載のデバイス。
【請求項５】
前記1つまたは複数のスレーブユニットの前記少なくとも1つが、前記第1のスレーブ電力状態として用いることができる、それぞれの電力消費および応答待ち時間をもつ複数の低電力状態を有し、前記ローカルスレーブ電力コントローラは、前記次のトランザクションが予想される前の前記間隔に応じて、前記第1のスレーブ電力状態として前記複数の低電力状態のうちのどれを用いるかを選択する、請求項1から4のいずれか一項に記載のデバイス。
【請求項６】
前記ローカルスレーブ電力コントローラはまた、前記1つまたは複数のスレーブユニットの前記少なくとも1つの現在の状態に応じて、前記第1のスレーブ電力状態として前記複数の低電力状態のうちのどれを用いるかを選択する、請求項5に記載のデバイス。
【請求項７】
前記1つまたは複数の使用信号に応答するローカルスレーブ電力コントローラをそれぞれが含む、複数のスレーブユニットを備える、請求項1から6のいずれか一項に記載のデバイス。
【請求項８】
前記1つまたは複数のスレーブユニットの少なくとも1つは、前記1つまたは複数のマスタユニットの1つからトランザクションを受け取るとすぐに、前記1つまたは複数のマスタユニットの前記1つに肯定応答を発行し、前記肯定応答は、前記1つまたは複数のスレーブユニットの前記少なくとも1つが、いつ前記1つまたは複数のマスタユニットの前記1つへの前記トランザクションを完了することになるかを示す1つまたは複数の遅延予測信号を含み、
前記1つまたは複数のマスタユニットの前記1つは、前記トランザクションの完了が予想される前の間隔の間、前記1つまたは複数のマスタユニットの前記1つを第1のマスタ電力状態に切り換え、前記トランザクションの完了に間に合うように、前記1つまたは複数のマスタユニットの前記1つを第2のマスタ電力状態に切り換えるように、前記1つまたは複数の遅延予測信号に応答するローカルマスタ電力コントローラを含み、前記第1のマスタ電力状態は前記第2のマスタ電力状態より低い電力消費を有し、前記第1のマスタ電力状態は前記第2のマスタ電力状態より長い応答待ち時間を有する、請求項1から7のいずれか一項に記載のデバイス。
【請求項９】
前記1つまたは複数の遅延予測信号はまた、前記1つまたは複数のスレーブユニットの前記少なくとも1つと前記1つまたは複数のマスタユニットの前記1つの間の経路上に介在する1つまたは複数の回路要素が、電力消費低減状態に入るのをトリガするように働く、請求項8に記載のデバイス。
【請求項１０】
前記インターコネクトが、別々に制御可能な電力状態をもつ複数の部分と、
前記1つまたは複数の使用信号に応答して、前記インターコネクトの前記複数の部分のそれぞれの電力状態を制御する、ローカルインターコネクト電力コントローラと
を含む、請求項1から9のいずれか一項に記載のデバイス。
【請求項１１】
前記1つまたは複数の使用信号が、複数の使用信号を含み、前記使用予測の少なくともいくつかの値に対して対数符号化を用いる、請求項1から10のいずれか一項に記載のデバイス。
【請求項１２】
前記1つまたは複数の使用信号によって表される最低の非ゼロ値に対応する使用予測が、前記1つまたは複数のスレーブユニットの1つに対する最低の実効非活動間隔に対応する、請求項1から11のいずれか一項に記載のデバイス。
【請求項１３】
前記1つまたは複数の使用信号が、前記次のトランザクションの前の不定な時間を示す値を有し、前記ローカルスレーブ電力コントローラは、それに応答して前記1つまたは複数のスレーブユニットの前記少なくとも1つを低電力消費モードに切り換える、請求項1から12のいずれか一項に記載のデバイス。
【請求項１４】
前記1つまたは複数のマスタユニットのそれぞれ1つに関連付けられ、前記1つまたは複数のマスタユニットの前記1つによって発生されるべき使用信号を指定する、ソフトウェアにより書き込み可能な値を記憶する少なくとも1つの使用指定レジスタを備える、請求項1から13のいずれか一項に記載のデバイス。
【請求項１５】
前記トランザクションの1つを開始するためにプログラム命令に応答するプロセッサを備え、前記プログラム命令に伴うフィールドは、前記トランザクションに付随されるべき前記1つまたは複数の使用信号のための値を指定する、請求項1から14のいずれか一項に記載のデバイス。
【請求項１６】
前記プログラム命令が、オペレーティングシステムプログラムの一部であり、前記フィールドは、前記オペレーティングシステムプログラムによって判定される、前記デバイスの少なくとも一部分の現在の状態に応じて変えられる、請求項15に記載のデバイス。
【請求項１７】
前記1つまたは複数の使用信号はまた、1つまたは複数の電力コマンドを渡すことができる、請求項1から16のいずれか一項に記載のデバイス。
【請求項１８】
前記1つまたは複数の電力コマンドが、
ローカルシャットダウン、
グローバルシャットダウン、
ローカルスリープ、
グローバルスリープ、
ローカルクロック停止、
グローバルクロック停止、
ローカルクロック速度指定、
グローバルクロック速度指定、
低動作電圧モード、
低漏洩モード、
ウェイクアップ、
間隔延長
の1つまたは複数を含む、請求項17に記載のデバイス。
【請求項１９】
前記デバイスが、
集積回路、
マルチチップモジュール、
複数の接続された集積回路を搭載したプリント回路基板
の1つである、請求項1から18のいずれか一項に記載のデバイス。
【請求項２０】
前記インターコネクトが、ポイントツーポイントインターコネクトである、請求項1から19のいずれか一項に記載のデバイス。
【請求項２１】
前記インターコネクトが、1つのマスタユニットと1つのスレーブユニットの間の専用の接続である、請求項1から19のいずれか一項に記載のデバイス。
【請求項２２】
前記1つのマスタユニットがプロセッサコアであり、前記1つのスレーブユニットがキャッシュメモリである、請求項21に記載のデバイス。
【請求項２３】
前記使用信号が、前記トランザクションの一部を形成する他の1つまたは複数の信号と共有される配線経路にて経路指定される、請求項1から22のいずれか一項に記載のデバイス。
【請求項２４】
前記ローカル電力コントローラが、複数のスレーブユニットによって共有される、請求項1から23のいずれか一項に記載のデバイス。
【請求項２５】
1つまたは複数のマスタユニットと、1つまたは複数のスレーブユニットと、前記1つまたは複数のマスタユニットと前記1つまたは複数のスレーブユニットの間の配線経路に沿って、データ転送トランザクションを含むトランザクションを経路指定するように、前記1つまたは複数のマスタユニットおよび前記1つまたは複数のスレーブユニットに結合されたインターコネクトとを用いてデータを処理する方法であって、
前記1つまたは複数のスレーブユニットの少なくとも1つによって受け取られるトランザクションを発生する段階であって、前記トランザクションは、いつ次のトランザクションが前記1つまたは複数のスレーブユニットの前記少なくとも1つに送られるかを示す使用予測を指定する1つまたは複数の使用信号を含む段階と、
前記1つまたは複数の使用信号に応答して、前記次のトランザクションを受け取ると予想される前の間隔の間、前記1つまたは複数のスレーブユニットの前記少なくとも1つを第1のスレーブ電力状態に切り換え、前記次のトランザクションを処理するのに間に合うように、前記1つまたは複数のスレーブユニットの前記少なくとも1つを第2のスレーブ電力状態に切り換えるために、前記1つまたは複数のスレーブユニットの前記少なくとも1つのローカルスレーブ電力コントローラを用いる段階であって、前記第1のスレーブ電力状態は前記第2のスレーブ電力状態より低い電力消費を有し、前記第1のスレーブ電力状態は前記第2のスレーブ電力状態より長い応答待ち時間を有する段階と
を含む方法。
【請求項２６】
前記トランザクション内の前記1つまたは複数の使用信号が、マスタユニットにより、前記マスタユニットの現在の状態に応じて供給される、請求項25に記載の方法。
【請求項２７】
前記トランザクション内の前記1つまたは複数の使用信号が、前記インターコネクトにより、前記デバイスの現在の状態に応じて供給される、請求項25および26のいずれか一項に記載の方法。
【請求項２８】
前記1つまたは複数のスレーブユニットの前記少なくとも1つに渡され、前記複数のマスタユニットのいずれかからいつ次のトランザクションが前記1つまたは複数のスレーブユニットの前記少なくとも1つに送られるかを示す、調停された使用信号を供給するように、前記複数のマスタユニットからそれぞれのトランザクションと共に受け取られた使用信号の間で、前記インターコネクトを調停する段階を含む、請求項27に記載の方法。
【請求項２９】
前記1つまたは複数のスレーブユニットの前記少なくとも1つが、前記第1のスレーブ電力状態として用いることができる、それぞれの電力消費および応答待ち時間をもつ複数の低電力状態を有し、前記ローカルスレーブ電力コントローラは、前記次のトランザクションが予想される前の前記間隔に応じて、前記第1のスレーブ電力状態として前記複数の低電力状態のうちのどれを用いるかを選択する、請求項25から28のいずれか一項に記載の方法。
【請求項３０】
前記ローカルスレーブ電力コントローラはまた、前記1つまたは複数のスレーブユニットの前記少なくとも1つの現在の状態に応じて、前記第1のスレーブ電力状態として前記複数の低電力状態のうちのどれを用いるかを選択する、請求項29に記載の方法。
【請求項３１】
それぞれがローカルスレーブ電力コントローラを含む、複数のスレーブユニットは、前記1つまたは複数の使用信号に応答する、請求項25から30のいずれか一項に記載の方法。
【請求項３２】
前記1つまたは複数のスレーブユニットの少なくとも1つは、前記1つまたは複数のマスタユニットの1つからトランザクションを受け取るとすぐに、前記1つまたは複数のマスタユニットの前記1つに肯定応答を発行し、前記肯定応答は、前記1つまたは複数のスレーブユニットの前記少なくとも1つが、いつ前記1つまたは複数のマスタユニットの前記1つへの前記トランザクションを完了するかを示す1つまたは複数の遅延予測信号を含み、
前記1つまたは複数の遅延予測信号に応答して、前記1つまたは複数のマスタユニットの前記1つの、ローカルマスタ電力コントローラを用いて、前記トランザクションの完了が予想される前の間隔の間、前記1つまたは複数のマスタユニットの前記1つを第1のマスタ電力状態に切り換え、前記トランザクションの完了に間に合うように、前記1つまたは複数のマスタユニットの前記1つを第2のマスタ電力状態に切り換え、前記第1のマスタ電力状態は前記第2のマスタ電力状態より低い電力消費を有し、前記第1のマスタ電力状態は前記第2のマスタ電力状態より長い応答待ち時間を有する、請求項25から31のいずれか一項に記載の方法。
【請求項３３】
前記1つまたは複数の遅延予測信号はまた、前記1つまたは複数のスレーブユニットの前記少なくとも1つと前記1つまたは複数のマスタユニットの前記1つの間の経路上に介在する1つまたは複数の回路要素が、電力消費低減状態に入るのをトリガするように働く、請求項32に記載の方法。
【請求項３４】
前記インターコネクトが、別々に制御可能な電力状態をもつ複数の部分を含み、前記インターコネクトの前記複数の部分のそれぞれの電力状態を制御するために、前記1つまたは複数の使用信号に応答して前記インターコネクトのローカルインターコネクト電力コントローラを用いる段階をさらに含む、請求項25から33のいずれか一項に記載の方法。
【請求項３５】
前記1つまたは複数の使用信号が、複数の使用信号を含み、前記使用予測の少なくともいくつかの値に対して対数符号化を用いる、請求項25から34のいずれか一項に記載の方法。
【請求項３６】
前記1つまたは複数の使用信号によって表される最低の非ゼロ値に対応する使用予測が、前記1つまたは複数のスレーブユニットの1つに対する最低の実効非活動間隔に対応する、請求項25から35のいずれか一項に記載の方法。
【請求項３７】
前記1つまたは複数の使用信号が、前記次のトランザクションの前の不定な時間を示す値を有し、不定な時間を示す前記値に応答して、前記1つまたは複数のスレーブユニットの前記少なくとも1つを低電力消費モードに切り換えるために、前記ローカルスレーブ電力コントローラを用いる段階をさらに含む、請求項25から36のいずれか一項に記載の方法。
【請求項３８】
前記1つまたは複数のマスタユニットのそれぞれ1つに関連付けられた少なくとも1つの使用指定レジスタに、前記1つまたは複数のマスタユニットの前記1つによって発生されるべき使用信号を指定する値を、ソフトウェアの制御下で記憶する段階を含む、請求項25から37のいずれか一項に記載の方法。
【請求項３９】
プロセッサによって実行されるプログラム命令に応答して、前記トランザクションの1つを開始する段階を含み、前記プログラム命令に伴うフィールドは、前記トランザクションに付随されるべき前記1つまたは複数の使用信号のための値を指定する、請求項25から38のいずれか一項に記載の方法。
【請求項４０】
前記プログラム命令が、オペレーティングシステムプログラムの一部であり、前記フィールドは、前記オペレーティングシステムプログラムによって判定される、前記デバイスの少なくとも一部分の現在の状態に応じて変えられる、請求項39に記載の方法。
【請求項４１】
前記1つまたは複数の使用信号はまた、1つまたは複数の電力コマンドを渡すことができる、請求項25から40のいずれか一項に記載の方法。
【請求項４２】
前記1つまたは複数の電力コマンドが、
ローカルシャットダウン、
グローバルシャットダウン、
ローカルスリープ、
グローバルスリープ、
ローカルクロック停止、
グローバルクロック停止、
ローカルクロック速度指定、
グローバルクロック速度指定、
低動作電圧モード、
低漏洩モード、
ウェイクアップ、
間隔延長
の1つまたは複数を含む、請求項41に記載の方法。
【請求項４３】
前記方法が、
集積回路、
マルチチップモジュール、
複数の接続された集積回路を搭載したプリント回路基板
の1つにおいて行われる、請求項25から42のいずれか一項に記載の方法。
【請求項４４】
前記インターコネクトが、ポイントツーポイントインターコネクトである、請求項25から43のいずれか一項に記載の方法。
【請求項４５】
前記インターコネクトが、1つのマスタユニットと1つのスレーブユニットの間の専用の接続である、請求項25から43のいずれか一項に記載の方法。
【請求項４６】
前記1つのマスタユニットがプロセッサコアであり、前記1つのスレーブユニットがキャッシュメモリである、請求項45に記載の方法。
【請求項４７】
前記使用信号が、前記トランザクションの一部を形成する他の1つまたは複数の信号と共有される配線経路にて経路指定される、請求項25から46のいずれか一項に記載の方法。
【請求項４８】
前記ローカル電力コントローラが、複数のスレーブユニットによって共有される、請求項25から47のいずれか一項に記載の方法。
【請求項４９】
データを処理するためのデバイスであって、
1つまたは複数のマスタユニット手段と、
1つまたは複数のスレーブユニット手段と、
前記1つまたは複数のマスタユニット手段と前記1つまたは複数のスレーブユニット手段の間の配線経路に沿って、データ転送トランザクションを含むトランザクションを経路指定するように、前記1つまたは複数のマスタユニットおよび前記1つまたは複数のスレーブユニットに結合されたインターコネクト手段と
を備え、
前記1つまたは複数のスレーブユニット手段の少なくとも1つによって受け取られるトランザクションは、いつ次のトランザクションが前記1つまたは複数のスレーブユニット手段の前記少なくとも1つに送られるかを示す使用予測を指定する1つまたは複数の使用信号を含み、
前記1つまたは複数のスレーブユニット手段の前記少なくとも1つは、前記次のトランザクションを受け取ると予想される前の間隔の間、前記1つまたは複数のスレーブユニット手段の前記少なくとも1つを第1のスレーブ電力状態に切り換え、前記次のトランザクションを処理するのに間に合うように、前記1つまたは複数のスレーブユニット手段の前記少なくとも1つを第2のスレーブ電力状態に切り換えるように、前記1つまたは複数の使用信号に応答するローカルスレーブ電力コントローラ手段を有し、
前記第1のスレーブ電力状態は、前記第2のスレーブ電力状態より低い電力消費を有するとともに、
前記第1のスレーブ電力状態は、前記第2のスレーブ電力状態より長い応答待ち時間を有するデバイス。
【請求項５０】
1つまたは複数のマスタユニットと、1つまたは複数のスレーブユニットと、前記1つまたは複数のマスタユニットと前記1つまたは複数のスレーブユニットの間の配線経路に沿って、データ転送トランザクションを含むトランザクションを経路指定するように、前記1つまたは複数のマスタユニットおよび前記1つまたは複数のスレーブユニットに結合されたインターコネクトとを有するデバイス内で用いるためのスレーブユニットであって、
前記1つまたは複数のスレーブユニットの少なくとも1つによって受け取られるトランザクションは、いつ次のトランザクションが前記1つまたは複数のスレーブユニットの前記少なくとも1つに送られるかを示す使用予測を指定する1つまたは複数の使用信号を含み、
前記次のトランザクションを受け取ると予想される前の間隔の間、前記1つまたは複数のスレーブユニットの前記少なくとも1つを第1のスレーブ電力状態に切り換え、前記次のトランザクションを処理するのに間に合うように、前記1つまたは複数のスレーブユニットの前記少なくとも1つを第2のスレーブ電力状態に切り換えるように、前記1つまたは複数の使用信号に応答し、
前記第1のスレーブ電力状態は、前記第2のスレーブ電力状態より低い電力消費を有するとともに、
前記第1のスレーブ電力状態は、前記第2のスレーブ電力状態より長い応答待ち時間を有するローカルスレーブ電力コントローラを備えるスレーブユニット。
【請求項５１】
1つまたは複数のマスタユニットと、1つまたは複数のスレーブユニットと、前記1つまたは複数のマスタユニットと前記1つまたは複数のスレーブユニットの間の配線経路に沿って、データ転送トランザクションを含むトランザクションを経路指定するように、前記1つまたは複数のマスタユニットおよび前記1つまたは複数のスレーブユニットに結合されたインターコネクトとを有するデバイス内で用いるためのマスタユニットであって、
前記1つまたは複数のスレーブユニットの少なくとも1つによって受け取られ、いつ次のトランザクションが前記1つまたは複数のスレーブユニットの前記少なくとも1つに送られるかを示す使用予測を指定する1つまたは複数の使用信号を含むトランザクションを発生するように構成されたトランザクション発生器を備えるマスタユニット。
【請求項５２】
1つまたは複数のマスタユニットと、1つまたは複数のスレーブユニットと、前記1つまたは複数のマスタユニットと前記1つまたは複数のスレーブユニットの間の配線経路に沿って、データ転送トランザクションを含むトランザクションを経路指定するように、前記1つまたは複数のマスタユニットおよび前記1つまたは複数のスレーブユニットに結合されたインターコネクトとを有するデバイス内で用いるためのインターコネクトであって、
前記1つまたは複数のスレーブユニットの少なくとも1つによって受け取られ、いつ次のトランザクションが前記1つまたは複数のスレーブユニットの前記少なくとも1つに送られるかを示す使用予測を指定する1つまたは複数の使用信号を含むトランザクションを渡すように構成された信号接続を備えるインターコネクト。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理デバイスの分野に関するものである。より詳細には、本発明は、そのようなデバイス内の電力消費の管理に関するものである。
【背景技術】
【０００２】
システムオンチップ集積回路ならびに、携帯電話およびコンピュータなどのデバイスにおける電力消費は、主要な重要事項である。非携帯型のデバイスにおいても電力損失を低減することは、それによってコストが低減され、冷却、パッケージング、および電源の設計が簡単になり、信頼性が向上するので重要である。
【０００３】
知られている電力管理方式は、2つの主なグループに分けられる。第1のおよび最も一般的な種類は、たとえばある期間の非活動状態の後にディスプレイをターンオフする、またはCPUクロックを低下させる、アイドルタイムアウトなどの、発見的電力管理方法である。第2の種類は、確率論的またはマルコフモデルを用いて、たとえばいつデバイスが用いられなくなるかの予測を試み、一時停止させる方式である。このタイプの方式は、オペレーティングシステムレベルで制御されるアダプティブな周波数および電圧スケーリングを含む。
【０００４】
知られている電力管理方式の概説は、Luca Beniniらによる「A Survey of Design Techniques For System Level Dynamic Power Management」、IEEE Transactions On Very Large Scale Integration (VLSI) Systems, Volume 8, No. 3, 2002年6月において見ることができる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Luca Beniniら「A Survey of Design Techniques For System Level Dynamic Power Management」、IEEE Transactions On Very Large Scale Integration (VLSI) Systems, Volume 8, No. 3, 2002年6月
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記すべての方式に伴う問題は、ある程度の、電力と遅延のトレードオフを生じる傾向があることであり、すなわちこれらは電力は節約するが、待ち時間が増加する。多くの処理ユニットおよび周辺装置を含むシステムオンチップシステムの電力の管理は特に難しい。たとえば、メモリなどの共有される周辺装置は、特定の時間間隔で特定のプロセッサによって用いられ得るが、その間隔の間に別のプロセッサによって低い待ち時間にて必要とされ得る。AMBA 3 AXI電力管理チャネル、およびIEEE 802.11無線プロトコルなどの知られている方式は、このようなシステム電力の問題を解決するのに、単一の電力管理回路に依存している。これらの集中型の方式は、より大きなシステムに対しては良好にスケーリングすることができない。主要通信バスとは別に経路指定をされる電力管理信号伝達を統合することも追加のオーバヘッドとなり、困難さを生ずる。
【課題を解決するための手段】
【０００７】
一態様から見ると、本発明は、データを処理するためのデバイスであって、
1つまたは複数のマスタユニットと、
1つまたは複数のスレーブユニットと、
前記1つまたは複数のマスタユニットと前記1つまたは複数のスレーブユニットの間の配線経路に沿って、データ転送トランザクションを含むトランザクションを経路指定するように、前記1つまたは複数のマスタユニットおよび前記1つまたは複数のスレーブユニットに結合されたインターコネクトと
を備え、前記1つまたは複数のスレーブユニットの少なくとも1つによって受け取られるトランザクションは、いつ次のトランザクションが前記1つまたは複数のスレーブユニットの前記少なくとも1つに送られるかを示す使用予測を指定する1つまたは複数の使用信号を含み、
前記1つまたは複数のスレーブユニットの前記少なくとも1つは、前記次のトランザクションを受け取ると予想される前の間隔の間、前記1つまたは複数のスレーブユニットの前記少なくとも1つを第1のスレーブ電力状態に切り換え、前記次のトランザクションを処理するのに間に合うように、前記1つまたは複数のスレーブユニットの前記少なくとも1つを第2のスレーブ電力状態に切り換えるように、前記1つまたは複数の使用信号に応答するローカルスレーブ電力コントローラを有し、前記第1のスレーブ電力状態は前記第2のスレーブ電力状態より低い電力消費を有し、前記第1のスレーブ電力状態は前記第2のスレーブ電力状態より長い応答待ち時間を有するデバイスを提供する。
【０００８】
本技術は、マイクロアーキテクチャレベルで信号が送られるまでデバイスが非活動状態となる期間を、ほぼ正確に示すことを可能にすることにより、電力と遅延のトレードオフを軽減して電力を管理しようとするものである。これにより、複雑であり不正確な、発見的および/または予測モデルが不要となる。本技術は、電力管理を個々のスレーブおよびマスタに委譲する。これは付随する複雑な中央電力コントローラが必要ないので、容易にスケーリング可能である。
【０００９】
好ましい実施形態では、より一般的には使用信号はそれら自体の分離された経路指定/バスを有することができるが、実装およびスケーラビリティを容易にするために、電力管理信号は他の通信信号と共に経路指定することができる。配線経路は、共に経路指定された様々な信号と組み合わせられたバス、またはそれら自体の経路指定を有するいくつかの別々のバスとすることができる。電力管理信号伝達を標準の通信の一部として組み込むことで、スケーラビリティの助けとなる。
【００１０】
使用信号は、開始されたトランザクションとそのトランザクションの目標の間の、様々なポイントにて、発生または変更(調停)することができる。使用信号の1つの重要な供給源は、トランザクションを発行するマスタユニットであり、なぜならマスタユニットは、次にそのスレーブにトランザクションを発行するのがいつであったかを正確に識別し、それに従ってトランザクションと共に適切な使用信号を組み込むことができる可能性が高いからである。使用信号を挿入または変更するもう1つの適切なポイントは、インターコネクトのレベルにおけるものであり、インターコネクトは全体としてのデバイスの状態に関する情報を有している可能性が高く、たとえば、インターコネクト内で行われる調停の決定により、そのトランザクションを開始したマスタによって示されるものよりも長い期間、所与のスレーブの使用が繰り返されることは起こりそうもないと判定することが可能となり得る。
【００１１】
好ましい実施形態ではインターコネクトは、複数のマスタユニットからそれぞれのトランザクションと共に受け取った使用信号に対して調停し、目標のスレーブデバイスに渡される調停された使用信号を供給する機能をもたらす。インターコネクトは、どのような使用信号を目標のスレーブデバイスに渡すかを決定するにおいて、スレーブへの前のトランザクション、および前の使用情報、ならびに現在のトランザクションに付随する情報を考慮に入れる立場にある。
【００１２】
スレーブユニットにてもたらされる精巧さのレベルは様々なものが可能であり、有利にはスレーブユニットは、それぞれの電力消費および応答待ち時間をもつ複数の低電力状態を有することになり、通常は電力消費が低いほど待ち時間が大きくなる。スレーブユニットは、次のトランザクションが到達すると予測される前の間隔に応じて、入るべき適切なパワーダウンモードを選ぶことができ、たとえば次のトランザクションまでの間隔が短いときに、入るのに長い時間がかかり、出るのに長い時間がかかる非常に深いパワーダウンモードに入るのは有用でない場合があるが、その短い期間、クロックを停止するだけで一部の電力を節約するのに有用となり得る。
【００１３】
有利には複数のスレーブユニットによって共有されるローカルスレーブ電力コントローラも、次のトランザクションまでの間隔、ならびにスレーブユニットの現在の状態に応じて低電力状態を選択することができ、たとえばスレーブユニットが、次のトランザクションまでの間隔によって示される特定の低電力モードにパワーダウンすることができないことを示す、特定のトランザクションには関係のない他の何らかの活動を処理するなど、関係しているスレーブユニットに関連する他の何らかの状態変数が存在し得る。
【００１４】
上記では、適当なローカルスレーブ電力コントローラを組み込んだ1つだけのスレーブユニットを用いて述べられ、有用であるが、この技術は、複数のスレーブユニットが、使用信号に応答するそれぞれのローカルスレーブ電力コントローラを含むシステムにおいて、容易にスケーリング可能であり有利であることが理解されよう。同様にこの技術は、使用信号を発生するように適切に構成された複数のマスタユニットを組み込んだシステムに良く適している。
【００１５】
好ましい技術によれば、前記1つまたは複数のスレーブユニットの少なくとも1つは、前記1つまたは複数のマスタユニットの1つからトランザクションを受け取るとすぐに、前記1つまたは複数のマスタユニットの前記1つに肯定応答を発行し、前記肯定応答は、前記1つまたは複数のスレーブユニットの前記少なくとも1つが、いつ前記1つまたは複数のマスタユニットの前記1つへの前記トランザクションを完了することになるかを示す1つまたは複数の遅延予測信号を含み、
前記1つまたは複数のマスタユニットの前記1つは、前記トランザクションの完了が予想される前の間隔の間、前記1つまたは複数のマスタユニットの前記1つを第1のマスタ電力状態に切り換え、前記トランザクションの完了に間に合うように、前記1つまたは複数のマスタユニットの前記1つを第2のマスタ電力状態に切り換えるように、前記1つまたは複数の遅延予測信号に応答するローカルマスタ電力コントローラを含み、前記第1のマスタ電力状態は前記第2のマスタ電力状態より低い電力消費を有し、前記第1のマスタ電力状態は前記第2のマスタ電力状態より長い応答待ち時間を有する。
【００１６】
使用信号に従った、スレーブユニットのインテリジェントかつ決定性のパワーダウンは、逆方向にマスタユニットに拡張することができる。スレーブユニットからトランザクションを受け取るとすぐに(場合によっては、使用信号ライン/接続を再使用して)返されるすべての肯定応答信号は、スレーブユニットがそのトランザクションを完了できるまでどれ位かかることになるかを示すことができ、それに従って、たとえばメモリフェッチを処理する待ち時間など、トランザクションの完了を待つ間、マスタユニットがより低い電力モードに入る可能性が生じる。
【００１７】
所与のトランザクションにおいて関係するマスタおよびスレーブの電力モードを制御するために用いられると共に、本技術および使用信号はまた、スレーブとマスタ間の経路上に介在する1つまたは複数の回路を、電力消費低減状態に入るようにトリガするために働くことができる。これは、使用信号によって示されるように決められた期間、休止することが分かっている、インターコネクトの部分を含むことができる。これによってさらに電力を節約することができる。
【００１８】
使用信号は、様々な方法で遅延を表すことができるが、用意する必要がある使用信号の数と、表すことができる遅延の範囲との有用なトレードオフは、対数符号化が利用されるものである。表現できる最低の非ゼロ値は、通信できる任意のスレーブの最低の実効非活動間隔に対応するように選択することができ、これは、可能なパワーダウン間隔としてそのような用い得る最低の間隔より小さいものを通信するのは有用とはなり得ないからである。
【００１９】
次のトランザクションまでの時間が不定であるときは、これを使用信号によって通信することもでき、ローカルスレーブ電力コントローラは、望むなら、それに応答して低電力消費モードに切り換えることができる。次のトランザクションに間に合うように、スレーブユニットがプリエンプティブにパワーアップするのは不可能となるので、このような不定な時間間隔には、ある待ち時間を伴うことが理解されよう。
【００２０】
使用信号の供給源が、どの使用信号をアサートするかを選択する方法は、様々なものが可能である。1つのタイプの実施形態では、使用指定レジスタをマスタユニットと関連付け、そのマスタユニットから生ずるトランザクションに付随してどの使用信号が発生されるべきかを指定する値を用いて、ソフトウェアの制御下で書き込み可能とすることができる。これによって使用信号を指定できる方法に大幅な融通性がもたらされるが、その代償として何らかのソフトウェア介入が必要となる。このような使用値のソフトウェアによるプログラミングは、パワーアップまたはシステム初期化時に行うことができる。
【００２１】
使用信号を指定するための上記のレジスタの使用の代替または追加として、使用信号値はまた、マスタとして働きトランザクションを開始する、プロセッサ上で実行されるプログラム命令内で符号化することができる。したがって各トランザクションは、それに関連付けられたそれ自体の使用信号をもつことができ、この使用信号は、そのプログラムによって開始される次のトランザクションが、いつ起きるかという知識を用いて、コンパイラによって自動的に行われるなどにより、ソフトウェアが書かれた時点で決定されたものである。
【００２２】
さらに別の代替または追加としては、スレッド活動など、システムのパラメータを監視するオペレーティングシステムプログラムが、どのような使用値を指定すべきかを決定し、適当なプログラム命令を用いて、そのような使用値を、スレーブに対して発行されるトランザクションに関連付ける。
【００２３】
次のトランザクションまでの間隔に関する情報を転送するのに加えて、使用信号はまた、ローカルシャットダウン、グローバルシャットダウン、ローカルスリープ、グローバルスリープ、ローカルクロック停止、グローバルクロック停止、ローカルクロック速度指定、グローバルクロック速度指定、低動作電圧モード、低漏洩モード、ウェイクアップおよび/または間隔延長などの電力コマンドを渡すために用いることができる。使用信号は、すでにインターコネクトを通じて経路指定されており、したがってこのような電力コマンドをシステム全体に渡すための便利な手段を提供する。
【００２４】
本技術は、多種多様な形を有するデバイスに適用できることが理解されよう。本技術は、集積回路またはマルチチップモジュール内で用いるのに特に良く適しているが、複数の接続された集積回路を搭載したプリント回路基板に拡張可能であり、たとえば、特に電力を食うスレーブはチップ外のメモリであり、上述の使用信号技術を用いてこれをパワーダウンすることが望ましくなり得る。
【００２５】
インターコネクトは、プロセッサコアとキャッシュメモリの間など、1つのマスタユニットと1つのスレーブユニットの間の、専用の接続を含む多くの形態をとることができるが、本技術は拡張可能であり、特に、たとえば英国ケンブリッジのARM Limitedによって提供されるAXIインターコネクトシステムなどの、より一般的なポイントツーポイント接続をもたらすインターコネクトの環境に適用可能である。
【００２６】
もう1つの態様から見ると、本発明は、1つまたは複数のマスタユニットと、1つまたは複数のスレーブユニットと、前記1つまたは複数のマスタユニットと前記1つまたは複数のスレーブユニットの間の配線経路に沿って、データ転送トランザクションを含むトランザクションを経路指定するように、前記1つまたは複数のマスタユニットおよび前記1つまたは複数のスレーブユニットに結合されたインターコネクトとを用いてデータを処理する方法であって、
前記1つまたは複数のスレーブユニットの少なくとも1つによって受け取られるトランザクションを発生する段階であって、前記トランザクションは、いつ次のトランザクションが前記1つまたは複数のスレーブユニットの前記少なくとも1つに送られるかを示す使用予測を指定する1つまたは複数の使用信号を含む段階と、
前記1つまたは複数の使用信号に応答して、前記次のトランザクションを受け取ると予想される前の間隔の間、前記1つまたは複数のスレーブユニットの前記少なくとも1つを第1のスレーブ電力状態に切り換え、前記次のトランザクションを処理するのに間に合うように、前記1つまたは複数のスレーブユニットの前記少なくとも1つを第2のスレーブ電力状態に切り換えるために、前記1つまたは複数のスレーブユニットの前記少なくとも1つのローカルスレーブ電力コントローラを用いる段階であって、前記第1のスレーブ電力状態は前記第2のスレーブ電力状態より低い電力消費を有し、前記第1のスレーブ電力状態は前記第2のスレーブ電力状態より長い応答待ち時間を有する段階とを含む方法を提供する。
【００２７】
さらなる態様から見ると、本発明は、データを処理するためのデバイスであって、
1つまたは複数のマスタユニット手段と、
1つまたは複数のスレーブユニット手段と、
前記1つまたは複数のマスタユニット手段と前記1つまたは複数のスレーブユニット手段の間の配線経路に沿って、データ転送トランザクションを含むトランザクションを経路指定するように、前記1つまたは複数のマスタユニットおよび前記1つまたは複数のスレーブユニットに結合されたインターコネクトと
を備え、前記1つまたは複数のスレーブユニット手段の少なくとも1つによって受け取られるトランザクションは、いつ次のトランザクションが前記1つまたは複数のスレーブユニット手段の前記少なくとも1つに送られるかを示す使用予測を指定する1つまたは複数の使用信号を含み、
前記1つまたは複数のスレーブユニット手段の前記少なくとも1つは、前記次のトランザクションを受け取ると予想される前の間隔の間、前記1つまたは複数のスレーブユニット手段の前記少なくとも1つを第1のスレーブ電力状態に切り換え、前記次のトランザクションを処理するのに間に合うように、前記1つまたは複数のスレーブユニット手段の前記少なくとも1つを第2のスレーブ電力状態に切り換えるように、前記1つまたは複数の使用信号に応答するローカルスレーブ電力コントローラ手段を有し、前記第1のスレーブ電力状態は前記第2のスレーブ電力状態より低い電力消費を有し、前記第1のスレーブ電力状態は前記第2のスレーブ電力状態より長い応答待ち時間を有するデバイスを提供する。
【００２８】
さらなる態様から見ると、本発明は、1つまたは複数のマスタユニットと、1つまたは複数のスレーブユニットと、前記1つまたは複数のマスタユニットと前記1つまたは複数のスレーブユニットの間の配線経路に沿って、データ転送トランザクションを含むトランザクションを経路指定するように、前記1つまたは複数のマスタユニットおよび前記1つまたは複数のスレーブユニットに結合されたインターコネクトとを有するデバイス内で用いるためのスレーブユニットであって、前記1つまたは複数のスレーブユニットの少なくとも1つによって受け取られるトランザクションは、いつ次のトランザクションが前記1つまたは複数のスレーブユニットの前記少なくとも1つに送られるかを示す使用予測を指定する1つまたは複数の使用信号を含み、
前記次のトランザクションを受け取ると予想される前の間隔の間、前記1つまたは複数のスレーブユニットの前記少なくとも1つを第1のスレーブ電力状態に切り換え、前記次のトランザクションを処理するのに間に合うように、前記1つまたは複数のスレーブユニットの前記少なくとも1つを第2のスレーブ電力状態に切り換えるように、前記1つまたは複数の使用信号に応答し、前記第1のスレーブ電力状態は前記第2のスレーブ電力状態より低い電力消費を有し、前記第1のスレーブ電力状態は前記第2のスレーブ電力状態より長い応答待ち時間を有するローカルスレーブ電力コントローラを備えるスレーブユニットを提供する。
【００２９】
さらなる態様から見ると、本発明は、1つまたは複数のマスタユニットと、1つまたは複数のスレーブユニットと、前記1つまたは複数のマスタユニットと前記1つまたは複数のスレーブユニットの間の配線経路に沿って、データ転送トランザクションを含むトランザクションを経路指定するように、前記1つまたは複数のマスタユニットおよび前記1つまたは複数のスレーブユニットに結合されたインターコネクトとを有するデバイス内で用いるためのマスタユニットであって、
前記1つまたは複数のスレーブユニットの少なくとも1つによって受け取られ、いつ次のトランザクションが前記1つまたは複数のスレーブユニットの前記少なくとも1つに送られるかを示す使用予測を指定する1つまたは複数の使用信号を含むトランザクションを発生するように構成されたトランザクション発生器を備えるマスタユニットを提供する。
【００３０】
さらなる態様から見ると、本発明は、1つまたは複数のマスタユニットと、1つまたは複数のスレーブユニットと、前記1つまたは複数のマスタユニットと前記1つまたは複数のスレーブユニットの間の配線経路に沿って、データ転送トランザクションを含むトランザクションを経路指定するように、前記1つまたは複数のマスタユニットおよび前記1つまたは複数のスレーブユニットに結合されたインターコネクトとを有するデバイス内で用いるためのインターコネクトであって、
前記1つまたは複数のスレーブユニットの少なくとも1つによって受け取られ、いつ次のトランザクションが前記1つまたは複数のスレーブユニットの前記少なくとも1つに送られるかを示す使用予測を指定する1つまたは複数の使用信号を含むトランザクションを渡すように構成された信号接続を備えるインターコネクトを提供する。
【００３１】
次に、本発明の実施形態について添付の図面を参照して、例としてのみ説明する。
【図面の簡単な説明】
【００３２】
【図１】電力管理技術を利用したデバイスの概略的に示す図である。
【図２】マスタとスレーブの間のトランザクションに付随して、インターコネクトを通じて渡される並列信号を概略的に示す図である。
【図３】使用信号の符号化の一実施例を概略的に示す図である。
【図４】ローカルスレーブ電力コントローラを組み込んだスレーブユニットを概略的に示す図である。
【図５】ローカルスレーブ電力コントローラを概略的に示す図である。
【図６】ローカルスレーブ電力コントローラの動作を概略的に示す流れ図である。
【図７】ローカルマスタ電力コントローラを組み込んだマスタユニットを概略的に示す図である。
【図８】ローカルマスタ電力コントローラの動作を概略的に示す流れ図である。
【図９】使用信号調停機能を組み込んだインターコネクトを概略的に示す図である。
【図１０】使用信号調停を概略的に示す流れ図である。
【発明を実施するための形態】
【００３３】
図1は、集積回路4およびスレーブサブシステム6を組み込んだ、プリント回路基板の形のデバイス2を示す。集積回路4は、マルチチップモジュール、システムオンチップ集積回路、または標準の集積回路でよい。集積回路は、マスタユニット8、マスタとしても働くプロセッサコア10、およびプロセッサコア10に結合されたキャッシュメモリ12を組み込んでいる。キャッシュメモリ12は、プロセッサコア10に対するスレーブとして、またインターコネクト14に対するマスタとして働く。プロセッサコア10とキャッシュメモリ12の間には、以下に説明するような本技術による使用信号を渡す、専用のインターコネクト16がある。この例示の実施形態では、インターコネクト14は、ポイントツーポイント接続性、および知られているAXI技術によるこのような接続に対する調停機能を組み込んだAXIインターコネクトの変形である。インターコネクト14は、スレーブ18、20、6の1つなどのスレーブユニットが、いつ次のトランザクションを受け取るかの表示を渡す、本技術による使用信号を設けることにより、この知られている機能を超えて拡張される。スレーブサブシステム6は、インターコネクト14に対してスレーブとして動作するが、関係しているトランザクションに応じて使用されるまたは使用されない、2つ以上の関連する機能要素をそれ自体に有し、さらに信号経路指定を必要とする。スレーブサブシステム6は、何らかのローカルメモリ、および追加として、ローカルメモリが特定のトランザクションを処理できない場合に必要となり得るハードディスク装置などの何らかの高位のメモリを有するメモリシステムであり得る。
【００３４】
図2は、インターコネクト14によって渡されるトランザクションの一部を形成する信号を概略的に示す。これらの信号は、データ信号22、アドレス信号24、および使用信号26を含む。アドレス信号24およびデータ信号22は、知られているAXIシステムおよびプロトコルに従うものとすることができ、これらの知られているシステムプロトコルに従って(別々に、または共に)経路指定し、それらの間で調停することができる。使用信号26は、このトランザクションに追加され、同じ経路指定調停および遅延を受けるように、同じ経路指定に従うことができる。別法として使用信号26は、それら自体の経路指定および調停を有して、別に設けてもよい。使用信号26は、そのマスタから生じて目標のスレーブユニットに渡る次のトランザクションがいつ発生するかが分かった時点で、それを指定する情報を渡す。この情報は、スレーブによって、それ自体を適当なパワーダウンモードにパワーダウンし、不利な待ち時間を生じることなく次のトランザクションを処理するのに間に合うようにプリエンプティブにそれ自体をもとにパワーアップするために用いることができる。
【００３５】
図3は、例示の3ビット使用信号用に用いることができる、符号化の一実施例を概略的に示す。この符号化は、最初と最後の値の他は、すべて対数的である。最初の値は、予測される間隔を指定せず、スレーブはアクティブのままであるべきことを示す。最後の符号化は、不定な間隔を表し、プリエンプティブなパワーアップのないスリープモードを開始するなど、様々な異なる形にスレーブによって解釈することができる。これらの両極端の間では、符号化は、通常のAXIインターコネクト実装の場合の4クロックサイクルなど、サポートされる最小パワーダウン間隔の倍数によって表現される、次のトランザクションまでの間隔を表す。この最小間隔より小さな細分性を用意する必要はない。
【００３６】
図4は、スレーブユニット28を概略的に示す。これは、そのスレーブユニット28によってもたらされる機能に従い、かつAXIトランザクションの場合に予想されるようなほぼ通常の方法で、受け取られるトランザクションを処理するいくつかの機能ブロック30、32を組み込んでいる。さらに、ローカルスレーブ電力コントローラ34が設けられ、これは、使用信号および機能ブロック30から渡される状態情報に応答して、受け取ったトランザクションを処理した後に複数のパワーダウンモードの1つに入るのが適切かどうか、およびどれだけ長くそのパワーダウンモードに入るべきかを判定する。スレーブユニット28がパワーダウンされる場合は、このパワーダウンを開始し、後でプリエンプティブなパワーアップを開始するために、適当なクロック制御信号および/または電圧制御信号が機能ブロック30、32に供給される。ローカルスレーブ電力コントローラ34は、複数のスレーブユニットによって共有されてもよい。
【００３７】
図5は、ローカルスレーブ電力コントローラ34をより詳しく概略的に示す。使用信号は、スレーブユニット28の現在の状態の1つまたは複数の側面を表す状態変数と共に、電力制御論理回路36に供給される。これらの信号は、スレーブユニット28がどのパワーダウンモードに、どれだけの期間置かれるべきかを判定するために用いられる。これに従って、適切なタイマ値がタイマ38にロードされ、次いでタイマ38は、プリエンプティブなウェイクアップが必要となるまでの時間の経過を、(たとえば最小パワーダウン間隔を単位として)カウントダウンし、次いで電力制御論理回路36に渡されるウェイクアップ信号を発生する。適切なパワーダウンモードに入るために電力制御論理回路36によって発生されるクロック制御信号および電圧制御信号は、様々な異なる効果をもつことができる。クロック信号は、停止するか、異なる値に減速することができる。電圧は、低下させるか、スイッチオフすることができる。システムは、低漏洩モード、または電力を低減するために行われるその他の何らかの電圧操作状態に置くことができる。様々なパワーダウンモードが知られており、それらのいずれも用いることができる。
【００３８】
図6は、電力制御論理回路36によって行われる制御を概略的に示す流れ図である。ステップ40では、システムは、使用信号を受け取るのを待つ。そのような信号を受け取ると、ステップ42の処理は、次のトランザクションまでの間隔の長さ、および現在のスレーブ状態に応じて入るべきパワーダウンモードを選択する。間隔が短い場合は、入って出るのに長い時間がかかる深いパワーダウンモードに入るのは有用でない場合がある。同様に、スレーブユニット28の現在の状態により、示される間隔とは無関係に、(その状態変数によって信号伝達される)入り得るパワーダウンモードに制限が課され得る。パワーダウンモードが選択されたときは、次いで、ウェイクアップ時間を決定することができる。異なるパワーダウンモードは、それから出るのに異なる長さの時間を必要とし、したがってウェイクアップは、早くまたは遅く生ずることが必要になる。ステップ44では、タイマ38に、必要なウェイクアップポイントまでの間隔がロードされる。次いでステップ46は、ステップ40にて検出された使用信号を伴った現在のトランザクションが完了したかどうかを確認する。このトランザクションが完了したときは、処理はステップ48へ進み、そこでは、選択されたパワーダウンモードに対して適切なクロックおよび電圧を制御するための信号が発行され、スレーブユニットは、そのパワーダウンモードに切り換えられる。ステップ50では、必要なウェイクアップポイントにタイマが達したかどうかを絶えず確認する。ウェイクアップポイントに達したときは、処理はステップ52へ進み、そこでは、ウェイクアップが開始され、電力制御論理回路36は、スレーブユニット28を、それが次のトランザクションに応答することが可能となる動作モードに戻すために、適切なクロック制御および電圧制御信号を発行する。電力制御論理回路36の目的は、スレーブユニット28をその動作モードに戻し、それにより次のトランザクションを受け取るのに丁度間に合うように、次のトランザクションに対して準備することである。
【００３９】
図6には示されていないが、スレーブユニット28は、開始元のマスタに対して、いま受け取ったトランザクションをスレーブユニット28が完了できるまでにどれ位かかるかを示す肯定応答を返送するために、使用信号を利用することができる。この肯定応答信号は、そのマスタユニットとの完了されたトランザクションを受け取るのを待つ間、適切であればマスタ自体をパワーダウンし、完了されたトランザクションを受け取るのに間に合うようにマスタ自体をプリエンプティブにパワーアップするために、マスタによって用いられる。
【００４０】
図7は、マスタユニット54を概略的に示す。マスタユニット54は、実質的に、知られている方法でAXIトランザクションなどのトランザクションを発生し、それらがプログラマブルであればプログラム命令に応答する、1つまたは複数の機能ブロック56、58を組み込んでいる。また、マスタユニット54内には、ローカルマスタ電力コントローラ60が設けられる。ローカルマスタ電力コントローラ60は、マスタユニット54からスレーブユニットへ送出されるトランザクションに付随して、どのような使用信号68を発行するかを決定するに際して、間隔レジスタ62内に記憶された1つまたは複数のソフトウェアにより書き込み可能な間隔値、信号ライン64上の復号化された間隔を与える、プログラム命令内のフィールドから復号化された信号、およびマスタユニット54の現在の状態を指定する状態変数信号66に応答する。使用信号は、マスタユニット54が、そのスレーブに対して次にいつトランザクションを開始すると予想するかを指定する。この示された使用信号値は、マスタユニット54自体内でマイクロアーキテクチャレベルで決定され、したがって、たとえば予期しない割込みの発生などにより絶対的に保証はできないが、比較的正確となる傾向がある。
【００４１】
ローカルマスタ電力コントローラ60はまた、使用信号ライン68を通じてスレーブから戻された肯定応答信号に応答して、パワーダウンモードに入りかつ出ることが正当化される期間、スレーブが、たとえば要求データを返すなどのトランザクションを完了しないことを示すときは、マスタユニット54をパワーダウンする。ローカルマスタ電力コントローラは、それに従ってクロック制御信号および電圧制御信号を発生し、これらはマスタ54内でパワーダウンモードに入るために機能ブロック56、58に渡される。
【００４２】
図8は、ローカルマスタ電力コントローラ60によって行われる制御を、概略的に示す。ステップ70では、発行される必要があるトランザクションを待つ。トランザクションが発行されるべき場合は、次いでステップ72は、レジスタ62内の間隔レジスタ値によって指定される間隔と、復号化間隔信号ライン64上の、プログラム命令から復号化された間隔と、状態変数信号ライン66上の状態変数によって指定される何らかの制限に応じたもののうち、最も短いものから、そのトランザクションに付随することになる使用信号内で指定されるべき間隔を決定する。この決定が完了すると、ステップ74は、トランザクションと共に、信号ライン68上に使用信号を発行する。ステップ76は、スレーブがトランザクションを完了できるまでどの位かかるかを示す、スレーブから戻される場合がある肯定応答信号を待つ。このような肯定応答信号を受け取った場合は、処理はステップ78へ進み、そこではたとえば、クロック停止、クロック減速、低電圧、低漏洩、スリープ、パワーダウン、データ保持など、その特定のマスタユニット54によってサポートされ得る複数のパワーダウンモードから選択されるものとして、利用すべきパワーダウンモードの決定がなされる。ステップ80では、用いられるパワーダウンモードに関連する、必要なウェイクアップ時間までの間隔が決定され、ローカルマスタ電力コントローラ60内のタイマにロードされる。ステップ82では、ローカルマスタ電力コントローラ60は、マスタユニット54をパワーダウンモードに切り換える。ステップ84では、ローカルマスタ電力コントローラ60は、タイマがウェイクアップポイントに達する時点まで待ち、その時点になると処理はステップ86に進み、マスタユニット54は、データが返されるまたはその他の何らかの形でトランザクションが完了するのに間に合うように、その動作モードに戻るように切り換えられる。
【００４３】
図9は、本技術により用いることができる、インターコネクトブロック14を概略的に示す。このインターコネクトブロック14は、知られているAXI技術またはその他の技術に従った、アドレスおよびデータならびに制御情報の経路指定をサポートする。知られているこれらの機能をサポートするためにインターコネクト14内に含まれる要素については、当技術分野の者には良く知られているので、ここではさらに述べない。インターコネクト14は、その通常の要素に加えて、マスタとスレーブの間でインターコネクト14を通過する使用信号を調停するように働く、インターコネクト使用信号調停ブロック88を含む。タイマ90は、たとえば、4クロックサイクルなど、最小パワーダウン間隔のステップでインクリメントする時間インデックス値を発生する。使用信号がトランザクションに付随して受け取られると、接続されたマスタに関連付けられ、いつそれらのマスタが関係している特定のスレーブを必要とすることになるかを示す、記憶された時間インデックス値が、目標のスレーブユニットに対する現在の受け取った使用信号によって示されるものの前または後に、そのような次の使用を示すかどうかの判定がなされる。これらの記憶された時間インデックス値は、レジスタ92および94内に保持される。記憶された次の使用要件が、現在の受け取った使用信号において示されるものより前である場合は、インターコネクト使用信号調停ブロック88は、使用信号を変更し、それが指定する間隔を、レジスタ92、94内に記憶された次の使用値のうちの1つによって示される、短い方の間隔に置き換える。現在の受け取った使用信号によって示される次の使用が、記憶されたもののどれよりも前である場合は、使用信号は変更されずにトランザクションと共に渡される。
【００４４】
この実施例では、複数のマスタの間の調停は、インターコネクト14内で行われることが理解されよう。別法として、特にそのスレーブユニットが、メモリコントローラなど、より複雑なタイプであり、すでに設計済みで、複数のマスタからの重複するトランザクションに対処するために設けられたシステムを有していた場合は、調停はスレーブユニット自体の中で行い得る。
【００４５】
インターコネクト14は、そのデータおよびアドレス経路指定機能をもたらすのに、様々な異なる部分を組み込んでおり、それらは、インターコネクト14を通過する使用信号に応答して、選択的にパワーアップおよびパワーダウンすることができる。インターコネクトブロック14は、それが渡す使用信号から、特定の経路が、ある期間必要とされなくなることを判定することができ、それにしたがって、それ自体の部分であろうと、またはインターコネクトブロックの外部の追加部分でありそこを通る使用信号に応答したそれら自体のローカル電力制御を受けないものであろうと、その経路をパワーダウンすることができる
【００４６】
図10は、インターコネクト使用信号調停ブロック88によって行われる調停を概略的に示す流れ図である。ステップ96では、インターコネクト使用信号調停ブロック88は、トランザクションを待つ。そのようなトランザクションが受け取られると、ステップ98は、受け取ったトランザクション内の関係している使用信号から取り出された次の使用時間を、レジスタ92、94に記憶された、他のマスタから前に受け取ったトランザクション用のそれら他のマスタに対する次の使用時間インデックスと比較する。次いでステップ100は、他のいずれかのマスタが、より短い次の使用までの間隔を示したかどうかを判定する。他のいずれかのマスタが、より短い間隔を有する場合は、処理はステップ102へ進み、そうでない場合は飛ばされ、ステップ102では、受け取った使用信号はその代わりに、インターコネクトブロック14が認識しているいずれかのマスタに対する最も短い間隔で、インターコネクトブロック14自体によって課され得る追加の遅延に応答したものを表すように変更される。インターコネクト使用信号調停ブロック88は、インターコネクトブロック14の状態を指定し、かつ知られているAXI技術に従って動作するデータおよびアドレス経路指定ブロックがシステム内の他の何らかの要素に特定の経路を割り当て、それにより次のトランザクションが実際に、関係しているスレーブユニットに到達できるまで上記のすべてとは無関係な異なる時間間隔が課されることになるなどの要因を示すことができる、状態変数信号に応答する。ステップ104では、受け取ったトランザクションの送り元のマスタに対する次の使用時間インデックスは、レジスタ92、94の適切な1つにおいて更新される。ステップ106では、調停された使用信号が、目標のスレーブユニットに対して発行される。
【００４７】
使用信号は、次のトランザクションまでの時間間隔を指定し、現在のトランザクションの完了までの時間間隔を示す肯定応答信号を戻すために用いられると共に、より標準のパワーダウンコマンドを渡すこともでき、それらは、通常のデータおよびアドレス経路指定のインフラストラクチャ上に載せて、好都合にかつスケーリング可能にシステム全体に経路指定できることが理解されよう。ローカルスレーブ電力コントローラ、ローカルマスタ電力コントローラ、およびインターコネクトブロック自体の電力コントローラに供給することができる、このようなパワーダウン信号の例は、ローカルシャットダウン、グローバルシャットダウン、ローカルスリープ、グローバルスリープ、ローカルクロック停止、グローバルクロック停止、ローカルクロック速度指定、グローバルクロック速度指定、低動作電圧モード、低漏洩モード、ウェイクアップ、および間隔延長(これは、すでに指定されている、次のトランザクションまでまたはトランザクションの完了までの時間間隔を延長するためのコマンドである)などを含む。
【符号の説明】
【００４８】
2  デバイス
4  集積回路
6  スレーブサブシステム
8  マスタユニット
10  プロセッサコア
12  キャッシュメモリ
14  インターコネクト
16  インターコネクト
18  スレーブ
20  スレーブ
22  データ信号
24  アドレス信号
26  使用信号
28  スレーブユニット
30  機能ブロック
32  機能ブロック
34  ローカルスレーブ電力コントローラ
36  電力制御論理回路
38  タイマ
40  ステップ
42  ステップ
44  ステップ
46  ステップ
48  ステップ
50  ステップ
52  ステップ
54  マスタユニット
56  機能ブロック
58  機能ブロック
60  ローカルマスタ電力コントローラ
62  間隔レジスタ
64  信号ライン
66  状態変数信号
68  使用信号
70  ステップ
72  ステップ
74  ステップ
76  ステップ
78  ステップ
80  ステップ
82  ステップ
84  ステップ
86  ステップ
88  インターコネクト使用信号調停ブロック
90  タイマ
92  レジスタ
94  レジスタ
96  ステップ
98  ステップ
100  ステップ
102  ステップ
104  ステップ
106  ステップ
【図１】
2009545048.tif 000003
【図２】
2009545048.tif 000004
【図３】
2009545048.tif 000005
【図４】
2009545048.tif 000006
【図５】
2009545048.tif 000007
【図６】
2009545048.tif 000008
【図７】
2009545048.tif 000009
【図８】
2009545048.tif 000010
【図９】
2009545048.tif 000011
【図１０】
2009545048.tif 000012
【国際調査報告】
2009545048.tif 000013
2009545048.tif 000014
2009545048.tif 000015