(57)【特許請求の範囲】
【請求項１】
プロセッサへの割込みを不能にする段階と、
前記プロセッサをアイドル状態に置く段階と、
出力端子に前記アイドル状態を示す信号をアサートする段階と、
前記プロセッサが前記アイドル状態に置かれている間に受信した割込みを無視するために前記プロセッサを制御する段階であって、前記割込みは前記アイドル状態の間前記プロセッサによって無視され、および前記割込みは前記アイドル状態を終了した後は前記プロセッサによって獲得されるが割込み復元まで動作しない、段階と、
から構成されることを特徴とする方法。
【請求項２】
前記プロセッサへのクロック信号入力を不能にする段階をさらに含むことを特徴とする請求項１記載の方法。
【請求項３】
前記プロセッサへの電力供給を削減する段階をさらに含むことを特徴とする請求項１記載の方法。
【請求項４】
アイドル・フラグをセットする段階と、
システム同期命令を処理する段階であって、前記システム同期命令は確認信号の生成をもたらす、段階と、
前記アイドル・フラグおよび前記確認信号の検出で前記プロセッサをアイドル状態に置く段階と、
をさらに含むことを特徴とする請求項１記載の方法。
【請求項５】
前記システム同期命令を処理する段階は、前記確認信号が生成される前に前記プロセッサが既知の状態に入る結果となることを特徴とする請求項４記載の方法。
【請求項６】
前記プロセッサはパイプラインを含み、前記方法は前記パイプライン中の動作をすべて取り消す段階をさらに含むことを特徴とする請求項１記載の方法。
【請求項７】
ウェークアップ信号を受け取る段階をさらに含むことを特徴とする請求項１記載の方法。
【請求項８】
実行される命令をフェッチするために形成されたフェッチ・ユニットを含む実行パイプラインと、
前記実行パイプラインと通信するアイドル・ハンドラと、
を含むプロセッサから成る装置であって、
前記アイドル・ハンドラは、システム同期確認と関連するアイドル命令に応答して前記フェッチ・ユニットを非活性化することによって前記実行パイプラインを停止させるために適合され、さらに前記アイドル・ハンドラは、アイドル状態からプロセッサを回復する信号に応答して前記フェッチ・ユニットを活性化するために適合され、
前記プロセッサはアイドル状態に続いて受信した割込みを無視するために適合し、前記割込みは前記アイドル状態の間前記プロセッサによって無視され、および前記割込みは前記アイドル状態を終了した後は前記プロセッサによって獲得されるが割込み復元まで動作しない、
ことを特徴とする装置。
【請求項９】
前記アイドル・ハンドラは出力端子を含み、前記アイドル・ハンドラはシステム同期確認と関連する前記アイドル命令に応答して前記出力端子に信号をアサートするために適合されることを特徴とする請求項８記載の装置。
【請求項１０】
前記出力端子は、メモリ・エレメントに結合されることを特徴とする請求項９記載の装置。
【請求項１１】
前記アイドル・ハンドラは、ウェークアップ入力端子を含み、前記アイドル・ハンドラは前記ウェークアップ入力端子上で受け取られた信号に応答して前記実行パイプラインの停止を中止するために適合されたことを特徴とする請求項８記載の装置。
【請求項１２】
前記アイドル・ハンドラは、前記アイドル命令に応答してアイドル・フラグ・ビットをセットし、かつシステム同期確認に応答して前記アイドル・フラグ・ビットをクリアするために適応されることを特徴とする請求項８記載の装置。
【請求項１３】
アイドル状態に入り、かつアイドル出力信号を供給するために適合された第１プロセッサであって、前記第１プロセッサは、さらに、前記アイドル状態の間に受信した割込みを無視するために適合され、前記割込みは前記アイドル状態の間前記プロセッサによって無視され、および前記割込みは前記アイドル状態を終了した後は前記プロセッサによって獲得されるが割込み復元まで動作しない、プロセッサと、
前記第１プロセッサに結合された第２プロセッサと、
前記第１プロセッサにクロック信号を供給するために適合されたクロックと、
前記第１プロセッサに結合されたスタティック・ランダム・アクセス・メモリと、から構成され、
前記第２プロセッサは、前記アイドル出力信号の検出に応答して前記第１プロセッサに供給された前記クロック信号を非活性化する、
ことを特徴とするシステム。
【請求項１４】
前記第１プロセッサは、実行パイプラインおよび前記実行パイプラインに結合されたアイドル・ハンドラを含むことを特徴とする請求項１３記載のシステム。
【請求項１５】
前記第１プロセッサは、前記アイドル状態にある間に前記第２プロセッサから出された割込みを無視するように適合されることを特徴とする請求項１３記載のシステム。
【請求項１６】
前記第２プロセッサは前記第１プロセッサにウェークアップ信号を供給するように適合し、前記第１プロセッサは前記第１プロセッサが前記ウェークアップ信号を検出すると、前記アイドル状態を終了するように適合される請求項１３記載のシステム。
【請求項１７】
クロック信号をプロセッサに供給する段階であって、前記プロセッサはアイドル状態にあり、前記アイドル状態の間に受信した割込みを無視し、前記割込みは前記アイドル状態の間前記プロセッサによって無視され、および前記割込みは前記アイドル状態を終了した後は前記プロセッサによって獲得されるが割込み復元まで動作しない、段階と、
前記アイドル状態を終了するように前記プロセッサに信号を送る段階と、
前記アイドル状態の終了に続いて割込みで動作する段階と、
から構成されることを特徴とする方法。
【請求項１８】
通常動作レベルでプロセッサへ電力を供給する段階をさらに含むことを特徴とする請求項１７記載の方法。
【請求項１９】
前記プロセッサに割込みを供給する段階と、
前記割込みを獲得する段階と、
前記アイドル状態を終了した後に前記割込みを処理するために、制御を割込みサービス・ルーチンへ転送する段階と、
をさらに含むことを特徴とする請求項１７記載の方法。
【請求項２０】
前記プロセッサは実行パイプラインを含み、前記方法は前記実行パイプライン中の動作をすべて取り消す段階をさらに含むことを特徴とする請求項１７記載の方法。
【請求項２１】
前記実行パイプライン中の前記動作をすべて取り消した後に、命令をフェッチする段階をさらに含むことを特徴とする請求項２０記載の方法。
【請求項２２】
前記フェッチされた命令によって、前記プロセッサが前記アイドル状態を終了することを特徴とする請求項２１記載の方法。
【請求項２３】
前記プロセッサは、アイドル出力信号を供給し、前記方法は前記アイドル出力信号をクリアする段階をさらに含むことを特徴とする請求項１７記載の方法。
【請求項２４】
プロセッサを第１モードで動作する段階と、
前記プロセッサに割込みを無視させる段階と、
前記プロセッサを第２モードに置く段階と、からなり、
前記プロセッサは、前記第１モードより少ない前記第２モードで電力を消費し、かつ、前記第２モードの間前記割込みを無視しおよび前記第２モードが終了した後は前記割込みを獲得するが割込み復元まで動作しないことを特徴とする方法。
【請求項２５】
前記プロセッサへのクロック信号入力を不能にする段階をさらに含むことを特徴とする請求項２４記載の方法。
【請求項２６】
前記プロセッサへ電力供給を削減する段階をさらに含むことを特徴とする請求項２４記載の方法。
【請求項２７】
前記プロセッサは実行パイプラインを含み、前記プロセッサが前記第２モードであるとき、前記実行パイプラインは動作を行なわないことを特徴とする請求項２４記載の方法。
【請求項２８】
前記プロセッサが第２モードであるとき、出力信号を出す段階をさらに含むことを特徴とする請求項２４記載の方法。
【請求項２９】
前記プロセッサが第２モードであるとき、前記プロセッサへ入力信号を出す段階と、
前記プロセッサを前記第１モードに戻す段階と、
前記プロセッサへの割込みを可能にする段階と、
をさらに含むことを特徴とする請求項２４記載の方法。
【請求項３０】
前記プロセッサは実行パイプラインを含み、前記プロセッサを前記第１モードに戻す段階は前記実行パイプライン中の動作をすべて取り消す段階をさらに含むことを特徴とする請求項２９記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラム可能なプロセッサをアイドル状態に置くことに関する。
【０００２】
【従来の技術】
コンピュータまたはデジタル信号処理システムのためのマイクロプロセッサのようなプログラム可能なプロセッサは、毎秒何百万もの電子動作を行なうことができる。いくつかのアプリケーションでは、プロセッサは、所定の時間に行なう動作をほとんど有しないことがあるが、しかし、プロセッサは、フルパワーを維持し、必要なときに実行するために準備している。例えば、プロセッサが電池式装置に組み入れられるとき、電力消費は望ましくないことがある。
【０００３】
【詳細な説明】
いくつかの例では、プロセッサの動作を保留（サスペンド）することが望ましいことがある。プロセッサの動作が保留されるとき、プロセッサへのパワーは減少され、それにより、エネルギ効率を改善することがあり、電池のパワーを延長することができる。以下に記述された技術は、プロセッサのためにアイドル・モードを作成する方法を提供することであり、そのモードで、プロセッサは動作をほとんど行なわないか全く行なわず、実行命令をフェッチすることもなく、また割込みも無視する。さらにプロセッサがアイドル状態からアクティブ状態に戻る「ウェークアップ」ための技術が記述される。
【０００４】
図１は、実行パイプライン１４および制御ユニット１２を有するプログラム可能なプロセッサ１０を図示するブロック図である。制御装置１２は、クロック・サイクル中にパイプライン１４を通る命令とデータのフローを制御する。制御ユニット１２は、命令の処理中に、命令を解読し、かつ対応する動作、例えばメモリに結果を書くために、パイプライン１４の多様なコンポーネントに命令を行なう。プロセッサ１０の多くの動作は、クロック制御装置１５によって供給されるクロック信号と共にクロックされる。
【０００５】
「アイドル出力」１７と表示された接続は、制御ユニット１２の一部として図１中に示されるように、パイプライン１４をアイドル・ハンドラ１１に結合する。アイドル・ハンドラ１１はアイドル状態を引き起こすことができる。加えて、アイドル・ハンドラ１１は、アイドル状態を示すためにアイドル出力ビット１７をアサート（明示）する。アイドル出力１７のアサートは、パイプライン１４を停止させる、パイプライン１４の動作を保留させる結果となる。動作保留は、プロセッサ１０をアイドル状態に置く一部である。アイドル・ハンドラ１１およびアイドル出力１７は、以下より詳細に記述される。
【０００６】
いくつかのアプリケーションでは、プログラム可能なプロセッサ１０は、メイン・プロセッサ１８と協力する。プロセッサ１０は、メイン・プロセッサ１８のスレーブまたはその相手である。他のアプリケーションでは、プログラム可能なプロセッサ１０は、別のプロセッサと協力しないことがある。図１の中で示されたシステムは、例示のために意図され、発明の範囲を制限するために意図されるものではない。加えて、アプリケーションは、スタティック・ランダム・アクセス・メモリ、バス・コントローラ、割込みハンドラおよび入出力装置のような図１中に示されていない追加のコンポーネントを含んでもよい。
【０００７】
メイン・プロセッサ１８は、アイドル出力１７を検出する。アイドル出力１７を検出すると、メイン・プロセッサ１８は、プロセッサ１０がアクティブ中かアイドル中かを検出する。メイン・プロセッサ１８は、ウェークアップ信号８４のアサートによってプロセッサ１０をウェークアップするように適合される。
【０００８】
命令キャッシュ・メモリ１６に格納された命令は、パイプライン１４の第１ステージにロードされ、続くステージを通って処理される。ステージは、他のステージと同時に実質的に処理する。データは、システムのクロック・サイクル中にパイプライン１４中のステージ間を通過する。命令の結果は、パイプライン１４の終端に間断なく出現する。
【０００９】
図２はパイプライン１４の例を図示する。パイプライン１４は、例えば、５つのステージ、すなわち命令フェッチ（ＩＦ）、命令デコード（ＤＥＣ）、アドレス計算（ＡＣ）、実行（ＥＸ）、そしてライトバック（書戻し）（ＷＢ）を有する。命令は、フェッチ・ユニット２０によって第１ステージ（ＩＦ）中に、メモリまたは命令キャッシュ１６からフェッチされ、第２ステージ（ＤＥＣ）中にアドレス・レジスタ２４内でデコードされる２２。次のクロック・サイクルで、その結果は第３ステージ（ＡＣ）に渡され、そこで、データ・アドレス・ジェネレータ２６は、その動作を実行するために使用されるすべてのメモリ・アドレスを計算する。実行ステージ（ＥＸ）中で、実行ユニット２８は、例えば２つの数の加算または乗算のような動作を行なう。最終段階（ＷＢ）中で、その結果は、データ・メモリに、またはデータ・レジスタ３０に書き戻される。
【００１０】
プログラム可能なプロセッサ１０を含むアプリケーションは、プロセッサ１０が行なうべきタスクを有していない状況に遭遇することがあり、依然として電力を消費する。そのような状況で、プロセッサ１０が、低電力のアイドル・モードに入ることは有益である。アイドル・モードは、ユーザが低電力状態に入るようにプロセッサ１０に命じることによって、またはプロセッサ１０が行なうべきタスクを有していない期間が経過した後メイン・プロセッサ１８によって、開始することができるが、本発明の範囲はこの点に制限されるものではない。図３は、アクティブ状態（５０）中のプロセッサ１０が低電力のアイドル・モードに入るプロセスを図示する。アイドルが、ユーザによってまたはメイン・プロセッサ１８によって示されると（５２）プロセッサ１０は、割込みを不能にする（５４）。割込みを不能にする１つの方法は、割込みハンドラによって使用される割込みマスクを変更するＣＬＩ（割込みのクリア）の命令を実行することである。ＣＬＩの命令を実行する結果として、プロセッサ１０は、アイドル状態に入っている間、割込みを無視することができる。アイドル状態にいる間、プロセッサ１０はさらに割込みを無視する。
【００１１】
その後、プロセッサ１０は、既知のアイドル状態に自分自身を置く（５６）。既知のアイドル状態にプロセッサ１０を置くことによって、リセットが行われなくても、プロセッサ１０が後にアイドル・モードから既知の状態に出て行くことを可能にする。図３は、プロセッサ１０をアイドル状態に置くための１つの方法を示す（５６）。アイドル要求は、アイドル命令をパイプライン１４を通して送ることによって示される（５２）。以下に記述されるように、アイドル命令は、アイドル・フラグ・ビット８０（図４を参照）設定することになる（５８）。アイドル・フラグ・ビット８０は、プロセッサ１０がアイドル状態を入ることを示す。アイドル・フラグ・ビット８０は、レジスタ１０２のようなメモリ・エレメントに格納される（図４を参照）。
【００１２】
システム同期（ＳＳＹＮＣ）命令（６０）は、パイプライン１４中でアイドル命令に続く。一般に、ＳＳＹＮＣ命令は、次の動作が開始する前にすべての継続中の処理動作が完了しなければならないことをアサートする。従って、ＳＳＹＮＣ命令は、既にパイプライン１４中の命令が出現することを可能にするが、システム確認８２が受け取られるまで、パイプライン１４が命令キャッシュ１６から新しい命令をフェッチするのを停止してもよい（図１および図４を参照）。システム確認８２は、すべての継続中のシステム動作が完了されたことを示す。換言すれば、パイプライン１４を通してＳＳＹＮＣを送ることにより、パイプライン１４を停止させ、それはＩＦステージ、ＤＥＣステージおよびＡＣステージを不活性化にする一方、その前の継続中の命令が実行を完了するのを可能にする。例えば、システム・バスに要求するＳＳＹＮＣ命令に先立つ命令は停止させられず、むしろ実行を完了することが認められ、それにより、バス・プロトコルを保存する。システムがＳＳＹＮＣ命令を受け取るまで、ＳＳＹＮＣはＥＸステージ中で停止する。
【００１３】
ＳＳＹＮＣ命令は、プロセッサ１０をアイドル状態に置くことに関してより他の動作を行なってもよいが、しかし、アイドル・フラグ・ビット８０をセットするアイドル命令と結合して実行された時、ＳＳＹＮＣ命令は、以下に示されるように、アイドル状態を引き起こす（５８）。ＳＳＹＮＣ命令に先立つ全ての命令が完了するまで、ＳＳＹＮＣ命令はパイプライン１４を停止させるので、ＳＳＹＮＣ命令はプロセッサ１０中の既知の状態を生成させる。加えて、ＳＳＹＮＣ命令がＷＢステージに達するとき、ＳＳＹＮＣ命令はパイプライン１４中のすべてまたはいくつかの動作を「消滅(kill)」させても、また、キャンセルしてもよい。
【００１４】
システム確認信号８２は、ＳＳＹＮＣ命令に先行する命令がプロセッサ１０によっておよびシステムの他のコンポーネント、例えばメイン・プロセッサ１８およびバス・コントローラによって実行されたことを示すために使用されてもよい。プロセッサ１０がシステム確認信号８２を受け取るに際して、ＳＳＹＮＣ命令は、通常ＷＢステージに入り、実行を完了する。しかしながら、アイドル命令がアイドル・フラグ・ビット８０をセットしたので（５８）、パイプライン１４は停止を続け、ＳＳＹＮＣ命令はＥＸステージに残ってもよい。システム確認８２は、アイドル・ハンドラ１１によって受け取られる（６２）。さらに、アイドル・フラグ・ビット８０の状態が検出され（６４）、アイドル出力１７でアイドル出力信号をアサート（明示）することになる（６６）。アイドル出力１７がアサートされている限り、パイプライン１４が停止し続ける。パイプライン１４が停止しているので、ＳＳＹＮＣ命令はＥＸステージ中で停止し、ＷＢステージに入らない。
【００１５】
アイドル・ハンドラ１１は、アイドル・フラグ・ビットをクリアする（６８）。アイドル・フラグ・ビット８０を検出すると（６４）、アイドル出力１７の設定（６６）およびアイドル・フラグ・ビット８０のクリア（６８）は、以下に記述されるように、アイドル・ハンドラ１１中のロジックによって行なわれる。加えて、メイン・プロセッサ１８は、アイドル出力１７を検出し、プロセッサ１０がアイドル状態にあることを検出し、プロセッサ１０へのクロックを止める（７０）。クロックを止めることに加えて、メイン・プロセッサ１８は、例えば、電圧供給を「アイドル・モード電圧レベル」に設定することによって、プロセッサ１０へ供給される電力を削減する（７０）。アイドル・モード電圧レベルは、一般にプロセッサ１０が通常動作する「アクティブ・モード電圧レベル」未満であるが、しかしレジスタ中の状態を保持するのに十分である。電力消費は一般に電圧の二乗に比例するので、１．３ボルトのような特定の実施例におけるアクティブ・モード電圧レベルから０．７ボルトのようなアイドル・モード電圧レベルへの低下は、顕著な電力削減に帰着するであろう。クロックが止められかつ電力が削減されると、プロセッサ１０は低電力のアイドル・モードとなる。
【００１６】
図４は、本発明の実施例に従うアイドル・ハンドラ１１の論理図である。図４は上述した方法を実行するための技術を図示する。プロセッサ１０がアクティブである間、ダイヤグラム中の全ビットは非有効化される。アイドル・フラグ・ビット８０はセットされておらず、また、アイドル出力ピン１７はアサートされていない。アイドル命令がＷＢステージに入ると、参照番号９６のビットがアサートされる。このビットは、レジスタ１０２のような格納エレメントによってラッチされる。次のクロック・サイクルで、レジスタ１０２はアイドル・フラグ・ビット８０をセットする。アイドル出力１７がアサートされるまで、アイドル・フラグ・ビット８０はＯＲゲート９８へのフィード・バックのためにアサートされ続ける。
【００１７】
アイドル・フラグ・ビット８０がＡＮＤ（８８）へアサートされ、ＳＳＹＮＣ  ８２への確認が受け取られると、高ビットが生成され、それはレジスタ９４でラッチされる。次のクロック・サイクルで、アイドル出力１７はセットされる。高のアイドル出力１７は反転されＡＮＤゲート１００に送られ、それは、レジスタ１０２に非有効化されたビットを置き、アイドル・フラグ・ビット８０が次のクロック・サイクルでクリアされる結果となる。ウェークアップ信号８４がアサートされるまで、アイドル出力１７はＯＲゲート９０へのフィード・バックのために高を維持する。ウェークアップ信号８４がアサートされるまで、プロセッサ１０はアイドルのままである。
【００１８】
プロセッサをアクティブ状態に戻すための方法の実施例は、図５に図示される。メイン・プロセッサ１８は、プロセッサ１０にクロックを戻し、電力供給をアクティブ・モードの電圧レベルに設定することによって、電力供給を動作レベルに戻す（１１０）。メイン・プロセッサ１８は、さらにウェークアップ信号８４を生成する（１１２）。図４で示されるように、ウェークアップ信号８４は、反転されてＡＮＤゲート９２に渡され、次のクロック・サイクルでアイドル出力ビット１７をクリアして、レジスタ９４でラッチされるビットを非有効化する（１１４）。
【００１９】
アイドル出力１７をクリアすることは、パイプライン１４が停止することから解放する。システム確認８２が送られたので、ＳＳＹＮＣ命令は、パイプライン１４中の動作をすべて取り消して、ＷＢステージに入る（１１６）。このポイントで、パイプライン１４への命令のフローは、ＳＳＹＮＣ命令に続く命令キャッシュ１６中の命令をフェッチすることにより、再び開始する（１１８）。ＳＳＹＮＣに続く命令は、典型的にはＳＴＩ（リストア割込み）命令であり、それは割込みマスクを回復する（１２０）。その後、パイプライン１４は、プログラム順に命令を処理するが（１２２）、それはウェークアップ時にプロセッサ１０がアイドル・モードに入った時のその終わったところからプロセッサ１０が再開することを意味する。
【００２０】
アイドル・モードの間、プロセッサ１０は割込みを無視する。プロセッサ１０は、さらにクロック復元に先立って受け取られた割込みを無視する（１１０）。クロック復元の後に、割込みは獲得されるが、割込み復元まで動作しなくてもよい（１２０）。割込み復元の後（１２０）、割込みは、通常の方法でプロセッサ１０の割込みハンドラによって処理される。
【００２１】
プロセッサをアクティブ状態に戻す別の実施例は、図６に示される。図６は、メイン・プロセッサ１８が割込みを生成する以外は、図５に似ている（１２６）。割込みは、クロックが回復された後（１１０）および割込みマスクが回復される前に（１２０）、図６に示されるどのステージで生じてもよい。上記されるように、制御が割り込みハンドラによって割り込みサービス・ルーチンに転送されるとき、割込みは割込み復元まで（１２０）、獲得されても動作しなくてもよい（１２４）。結果として、プロセッサ１０は、プログラム順に命令を処理する代わりに、割り込みサービス・ルーチンの命令を実行する（１２４）。
【００２２】
本発明の多くの実施例が記述された。これらおよび他の実施例は、次の請求項の範囲内にある。
【図面の簡単な説明】
【図１】  パイプライン方式のプログラム可能なプロセッサの例を図示するブロック図である。
【図２】  実行パイプラインの例を図示するブロック図である。
【図３】  アイドル状態にプロセッサを置くプロセスを図示するフローチャートである。
【図４】  アイドル・ハンドラの論理図である。
【図５】  アイドル状態からプロセッサを戻すプロセスを図示するフローチャートである。
【図６】  アイドル状態からプロセッサを戻すプロセスを図示するフローチャートである。
【図１】
0004488676.tif 000002
【図２】
0004488676.tif 000003
【図３】
0004488676.tif 000004
【図４】
0004488676.tif 000005
【図５】
0004488676.tif 000006
【図６】
0004488676.tif 000007