(57)【特許請求の範囲】
【請求項１】
回路ブロックをパワーダウンさせる前に実行される第１の組のオペレーションと、前記回路ブロックをパワーアップさせるためにその後に実行させる第２の組のオペレーションとを識別するデータを記憶するメモリであって、前記回路ブロックをパワーダウンさせる前に実行される前記第１の組のオペレーションは、前記回路ブロック内のレジスタに対する少なくとも１つのレジスタ書込みオペレーションを含む当該メモリと、
前記メモリ及び制御回路を含むシステム内のプロセッサがパワーダウンされるときの間に、前記回路ブロックをパワーダウンさせる要求を受信するために接合された制御回路であって、前記要求に応答して前記第１の組のオペレーションに対応する前記メモリ内で識別され且つ前記少なくとも１つのレジスタ書込みオペレーションを含むオペレーションを実行する前記制御回路と、
を含む装置。
【請求項２】
前記第１の組のオペレーションは、前記回路ブロックにおける複数の第１レジスタに関する複数の第１のレジスタ書込みオペレーションを含み、当該複数の第１のレジスタ書込みオペレーションは前記少なくとも１つのレジスタ書込みオペレーションを含み、前記メモリ内のデータは、前記複数の第１レジスタを識別する複数の第１アドレスと、前記複数の第１アドレスに書込まれる複数の第１データ値とを含み、
前記第２の組のオペレーションは、前記回路ブロックにおける複数の第２レジスタに関する複数の第２のレジスタ書込みオペレーションを含み、前記メモリ内のデータは、前記複数の第２レジスタを識別する複数の第２アドレスと、前記複数の第２アドレスに書込まれる複数の第２データ値とを含む、
ことを特徴とする請求項１に記載の装置。
【請求項３】
第１レジスタが、前記複数の第１レジスタ及び前記複数の第２のレジスタの両方に含まれる、請求項２に記載の装置。
【請求項４】
前記メモリは、前記第１の組のオペレーション及び第２の組のオペレーションによりソフトウェアによってプログラム可能な１以上のレジスタを含む、請求項１に記載の装置。
【請求項５】
前記制御回路は、前記システム内のプロセッサがパワーダウンされるときの間に前記回路ブロックをパワーアップさせる要求を受信し、及び、前記回路ブロックをパワーアップさせる要求に応答して、前記第２の組のオペレーションに対応する前記メモリ内で識別されたオペレーションを実行する、請求項１に記載の装置。
【請求項６】
１以上のプロセッサと、前記回路ブロックが前記１以上のプロセッサに結合されたキャッシュである、請求項１に記載された装置とを含むシステムであって、
前記制御回路と前記メモリは前記キャッシュに結合されたブリッジ内に含まれ、前記メモリは、前記第１の組のオペレーション及び前記第２の組のオペレーションをあらわすデータによりプログラム可能である複数のレジスタを含み、前記ブリッジは、前記キャッシュに関するパワーダウンイベントに応答して前記第１の組のオペレーションを実行し、そして前記キャッシュに関するパワーアップイベントに応答して前記第２の組のオペレーションを実行する、前記システム。
【請求項７】
前記１以上のプロセッサがパワーダウンされることの検出に応答し、更に１以上の周辺機器から未処理のオペレーションがないことを検出することに応答して、パワーダウンイベントを生成するよう構成されたパワーマネージャーを更に含む、請求項６に記載のシステム。
【請求項８】
前記ブリッジは、前記複数の第１オペレーションを完了することに応答して、前記パワーダウンイベントを肯定応答する、請求項７に記載のシステム。
【請求項９】
前記パワーマネージャーは前記パワーアップイベントを生成し、前記ブリッジは前記複数の第２オペレーションが完了することに応答して前記パワーアップイベントを肯定応答する、請求項７に記載のシステム。
【請求項１０】
複数の命令を実行することに応答して、１以上のプロセッサのうちの第１プロセッサが、
前記キャッシュの１以上のコンフィグレーションレジスタを初期化し、
パワーダウンイベント及びその後のパワーアップイベントに引き続いて前記コンフィグレーションレジスタを自動的に元の状態に戻すために、前記ブリッジ内のメモリに前記コンフィグレーションレジスタに関する対応データを書込む、
処理を行なう請求項６に記載のシステム。
【請求項１１】
前記複数の命令を実行することに応答して、前記第１プロセッサが、
各コンフィグレーションレジスタに関する各対応データに対して、前記対応データがパワーアップイベント中に書込まれることを示すフラグを書込むよう更に構成される、請求項１０に記載のシステム。
【請求項１２】
前記複数の命令を実行することに応答して、前記第１プロセッサが、
パワーダウンイベント中に実行される１以上の追加的レジスタ書込みオペレーションに対応する前記ブリッジ内のメモリにデータを書込み、
前記１以上の追加的レジスタ書込みオペレーションがパワーダウンイベント中に実行されることを示す、前記追加的レジスタ書込みオペレーション対応フラグを書込むよう更に構成される、請求項１０に記載のシステム。
【請求項１３】
前記１以上の追加的レジスタ書込みオペレーションは前記キャッシュ内に同期オペレーションを生じさせる、請求項１２に記載のシステム。
【請求項１４】
回路ブロックに結合された１以上のプロセッサを含むシステム内で前記回路ブロックがパワーアップされることを検出する処理と、
前記回路ブロック及び１以上の周辺機器に結合される制御回路に要求を発行する処理と、
前記回路ブロック内の１以上のコンフィグレーションレジスタを初期化するために、前記制御回路が、前記制御回路に記憶された複数のオペレーションを実行することによって前記要求に応答する処理と、
パワーダウンされる前記回路ブロックを検出する処理と、
パワーダウンされる前記回路ブロックを検出することに応答して、前記制御回路へ第２の要求を発行する処理と、
前記制御回路が、前記制御回路に記憶された１以上の第２のオペレーションを実行することによって前記第２の要求に応答する処理であって、前記１以上の第２のオペレーションがキャッシュ内の第１のコンファイルグレーションレジスタに対する第１の書込みオペレーションを含む当該応答する処理と、を含む方法。
【請求項１５】
各オペレーションは前記コンフィグレーションレジスタのアドレス、及び前記コンフィグレーションレジスタ内に書込まれる値によってあらわされる、請求項１４に記載の方法。
【請求項１６】
前記１以上の第２のオペレーションは前記回路ブロック内で同期オペレーションを生じさせる、請求項１４に記載の方法。
【請求項１７】
前記１以上の第２のオペレーションが完了したことを前記制御回路により決定する処理と、
前記決定に応答して、前記制御回路は前記第２の要求を肯定応答する処理と、
前記ブリッジの肯定応答に応答して前記回路ブロックをパワーダウンさせる処理と、
を更に含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデジタルシステムの分野に関し、特にデジタルシステムにおけるパワー管理に関する。
【背景技術】
【０００２】
集積回路“チップ”上に含まれるトランジスタの数は増加し続けており、この集積回路におけるパワー管理の重要性が増大している。携帯型情報端末（ＰＤＡ）、セル式携帯電話、多機能携帯電話（スマートフォン）、ラップトップコンピュータ、ネットトップコンピュータなどのモバイルデバイスに含まれる集積回路に対するパワー管理は重大なものとして位置づけられ得る。これらのモバイルデバイスは、しばしばバッテリーパワーに依存し、集積回路でのパワー消費を減少させることがバッテリー寿命を延ばすことを可能にさせてきた。さらに、パワー消費を減少させることは、集積回路が発散する熱を少なくさせ、集積回路を含むデバイス内の冷却条件（バッテリーパワーに依存しているか否か）を緩和させることができる。
【０００３】
クロックゲートは集積回路におけるダイナミックなパワー消費を少なくさせるのによく用いられており、アイドル回路に対するクロックの無効化をしてアイドル回路でのスイッチングを避けていた。或る集積回路はクロックゲートに加えてパワーゲートを実装してきた。パワーゲートによって、アイドル回路のグランドパスへのパワーが遮断され、漏れ電流がほぼゼロに減少する。パワーをブロックにゲートして後に回復させるとき、ブロックは再初期化を要求することができる。この再初期はシステム内のプロセッサで実行されるソフトウェアによって処理される。
【発明の概要】
【課題を解決するための手段】
【０００４】
一実施例において、制御回路は、パワーダウンされた後にパワーアップされる回路ブロックにオペレーションを送信し、オペレーション用の回路ブロックを再初期化するよう構成される。オペレーションはメモリ（例えば、一組のレジスタ）内に格納され、制御回路はこのメモリに結合し、そして制御回路及び回路ブロックを含むシステム内で実行するソフトウェアは、回路ブロックがパワーダウンする前に一度にオペレーションによってメモリをプログラム処理化する。一実施例において、回路ブロックがパワーダウンする前に、制御回路はメモリから回路ブロックへ他のオペレーションを送信するよう構成される。したがって、システム内のプロセッサがパワーダウンされる（したがって、ソフトウェアがそのときに実行可能でない）ときの間であっても、パワーアップ／パワーダウンイベントのためにプロセッサを活動させることなしに、回路ブロックはパワーアップされたりパワーダウンされたりし得る。
【０００５】
一実施例において、回路ブロックは１以上のプロセッサに結合されたキャッシュであり、制御回路は、１以上の周辺機器に結合するブリッジ及び／又はキャッシュに対する終編インタフェースコントローラの一部である。プロセッサがパワーダウンされ、かつ周辺機器が一時期（少なくともアクセスメモリに関して）アイドル状態である場合、キャッシュはパワーダウンされる。周辺メモリオペレーションのために、メモリプロセッサをパワーアップするために、キャッシュをパワーアップする。一実施例において、キャッシュ制御回路はパワーダウンされるが、キャッシュメモリはキャッシュに格納されるキャッシュブロックを保持するためにパワーされ続ける。
【０００６】
後述する詳細な説明は添付の図面を引用する。図面の簡単な説明は以下のとおりである。
【図面の簡単な説明】
【０００７】
【図１】図１は、システムの一実施例のブロック図である。
【図２】図２は、図１に示すシステムの一部のブロック図であり、実施例をより詳細に示している。
【図３】図３は、キャッシュをダイナミックにパワーダウンするパワーマネージャーのオペレーションを例示したフローチャートである。
【図４】図４は、キャッシュをダイナミックにパワーダウンするコアインタフェースのオペレーションを例示したフローチャートである。
【図５】図５は、キャッシュをダイナミックにパワーアップするパワーマネージャーのオペレーションを例示したフローチャートである。
【図６】図６は、キャッシュをダイナミックにパワーアップするコアインタフェースのオペレーションを例示したフローチャートである。
【図７】図７は、キャッシュのダイナミックなパワーダウン及びパワーアップを示したタイミング図である。
【図８】図８は、キャッシュのコンフィグレーションコードのオペレーションを例示したフローチャートである。
【図９】図９は、コンピュータアクセス可能な記憶媒体のブロック図である。
【図１０】図１０は、システムの別の実施例のブロック図である。
【発明を実施するための形態】
【０００８】
本発明は様々な修正及び代替態様を受け入れる余地がある一方で、それらの特定の実施例は図面で例示する方法によって示され、詳細が記述されるであろう。しかしながら、図面及び詳細な説明は、ここでは本願発明を開示された特別な態様に限定する意図はなく、これとは反対に、あらゆる修正、均等、及び代替が添付の図面により定められる本願の精神及び範囲内に収まるようにカバーされることを理解されたい。ここで用いている見出しは記載を組織化する目的であり、記載の範囲を制限するために用いている意味ではない。本願全体を通して用いられている「できる(may)」は、義務の意味（すなわち、しなければならない(mustの意味)というよりは、許可の意味（すなわち、可能性を持つ意味）である。同様に、「含む(include, including, includes)」の語は、含むの意味であり、これに制限されることではないことを理解されたい。
【０００９】
様々な装置、回路、又は他の構成要素が、１以上のタスクを実行するよう「構成される」ものとして記載され得る。そのような意味で、「構成される(configured to)」は、オペレーション中のタスクを実行する「回路をもつ」一般的意味の構成である広い規定である。その結果、装置／回路／構成要素は、現時点では存在しないときでさえ当該タスクを実行するよう構成することができる。一般的に、「構成される」に対応する構成を形成する回路はハードウェア回路を含む。メモリは、静的又は動的なランダムアクセスメモリなどの揮発性メモリ、及び／又は光又は磁気ディスク媒体、フラッシュメモリ、プログラム可能なリードオンリーメモリなどの不揮発性メモリを含むことができる。同様に、様々な装置／回路／構成要素は、記載の簡便さのためにタスクを実行するものとして記載されている。このような記載は「構成される」を含むものとして解釈されるべきである。１以上のタスクを実行するよう構成された装置／回路／構成要素を規定することは、装置／回路／構成要素の解釈である合衆国法典３５編第１１２条第６パラグラフを行使しないよう明確に意図されている。
【００１０】
典型的なシステム及び集積回路を以下に示すが、そこではプロセッサがパワーダウンされていながら、レベル２（Ｌ２）キャッシュがパワーアップ又はダウンされる。そして、ブリッジ内の制御回路は、パワーアップでキャッシュを初期化し、及び／又は、パワーダウンのためのキャッシュを準備するオペレーションを実行するよう構成される。しかしながら、他の実施例は、システム内のプロセッサがパワーダウンしている間に任意の回路ブロックをパワーアップ／パワーダウンさせる同様のメカニズムを実装する。Ｌ２キャッシュに関して後述するとおり、オペレーションはレジスタ書込みオペレーションの構成であったり、又はレジスタ読出しオペレーションなどの他のタイプのオペレーション若しくはパワーアップ／パワーダウンに関する回路ブロック状態を変更する回路ブロックによって解釈されるコマンドであったりする。
【００１１】
一般的に、回路ブロックは１以上の識別可能な機能を実行する一組の関連回路を含む。この関連回路は論理回路又は論理電気回路と呼ばれるが、その理由としては、その回路が出力を生成する入力に関する論理オペレーションを実行するからである。所与の回路ブロック内の複数の回路が関連するので、それらはユニットとしてパワーアップ／パワーダウンされる。集積回路の設計の間で各回路ブロックはユニットとして一般的に扱われる（例えば、ユニットとして集積回路内に物理的に配置される）。回路ブロックはメモリ回路（例えば、様々なスタティックランダムアクセスメモリ、すなわちＳＲＡＭ）、及び論理回路の部分である他の記憶デバイスを更に含む。例えば、システムオンチップ（ＳＯＣ）を実装する集積回路において、ＳＯＣのコンポーネントはそれぞれ別個の回路ブロックである。
【００１２】
概観
図１を参照すると、システム５の一実施例のブロック図が示されている。図１の実施例において、システム５は外部メモリ１２Ａ−１２Ｂに接合された集積回路（ＩＣ）１０を含む。例示の実施例の場合、集積回路１０は中央処理装置（ＣＰＵ）ブロック１４を含み、ＣＰＵブロック１４は１以上のプロセッサ１６とレベル２（Ｌ２）キャッシュ１８を含む。別の実施例はＬ２キャッシュ１８を含まないか、付加的なレベルのキャッシュを含むの少なくとも何れかである。さらに、２以上のプロセッサ１６を含む実施例、及び１つだけのプロセッサ１６を含む実施例が検討される。集積回路１０は更に１以上の非リアルタイム（ＮＲＴ）周辺機器２０のセットと、１以上のリアルタイム（ＲＴ）周辺機器２２のセットを含む。例示の実施例の場合、ＣＰＵブロック１４は、ブリッジ／ダイレクトメモリアクセス（ＤＭＡ）コントローラ３０に結合され、ブリッジ／ダイレクトメモリアクセス（ＤＭＡ）コントローラ３０は１以上の周辺デバイス３２Ａ−３２Ｃ及び／又は１以上の周辺インタフェースコントローラ３４に結合する。様々な実施例において、周辺デバイス３２及び周辺インタフェースコントローラ３４の数は、０から任意の所望の数まで変化する。図１に示したシステム５はＧ０  ３８Ａ及びＧ１  ３８Ｂなどの１以上のグラフィックコントローラを含むグラフィックユニットを更に含む。グラフィックユニット当りのグラフィックコントローラの数、及びグラフィックユニットの数は、他の実施例では変わることがある。図１に示すように、システム５は１以上のメモリ物理インタフェース回路（ＰＨＹ）４２Ａ−４２Ｂに結合するメモリコントローラ４０を含む。メモリ物理インタフェース回路（ＰＨＹ）４２Ａ−４２Ｂは、メモリ１２Ａ−１２Ｂと集積回路１０のピン上で通信するよう構成されている。また、メモリコントローラ４０は、一組のポート４４Ａ−４４Ｅを含む。ポート４４Ａ−４４Ｂのそれぞれは、グラフィックコントローラ３８Ａ−３８Ｂのそれぞれと結合する。ＣＰＵブロック１４はポート４４Ｃと結合する。ＮＲＴ（非リアルタイム）周辺機器２０及びＲＴ（リアルタイム）周辺機器２２は、ポート４４Ｄ−４４Ｅとそれぞれ結合する。メモリコントローラ４０に含まれるポート数は、メモリコントローラの数であるので、他の実施例において変化し得る。つまり、図１に示すポートよりも多かったり少なかったりするポートがあり得る。メモリＰＨＹ４２Ａ−４２Ｂの数及び対応するメモリ１２Ａ−１２Ｂは、他の実施例においては１又は２以上である。
【００１３】
一般的に、ポートは、１以上のソースと通信するメモリコントローラ４０上の通信ポイントである。或るケースにおいては、ポートはソース専用となる（例えば、ポート４４Ａ−４４Ｂは、グラフィックコントローラ３８Ａ−３８Ｂそれぞれに専用となる。）他のケースでは、多数のソース間でポートが共有される（例えば、プロセッサ１６はＣＰＵポート４４Ｃを共有し、ＮＲＴ周辺機器２０はＮＲＴポート４４Ｄを共有し、ディスプレイパイプ２６及びイメージプロセッサ２４などのＲＴ周辺機器はＲＴポート４４Ｅを共有する。）各ポート４４Ａ−４４Ｅは、その各エージェントと通信するインタフェースに結合する。インタフェースは任意のタイプの通信媒体（例えば、バス、ポイントツー・ポイント相互接続など）であり、任意のプロトコルを実装する。メモリコントローラとソース間の相互接続もまた、メッシュ、チップファブリックのネットワーク、共有バス、ポイントツー・ポイント相互接続などの他の任意の所望の相互接続を含む。
【００１４】
プロセッサ１６は、どんな命令セットアーキテクチャもインプリメントし、その命令セットアーキテクチャに定義されている命令を実行（演算）する。プロセッサ１６はスケーラー、スーパー・スケーラ−、パイプライン、スーパー・パイプライン、順序外、順序どおり、推論、非推論等又はそれらの組み合わせを含む任意のマイクロ・アーキテクチャを用いる。プロセッサ１６は、回路を含み、そしてマイクロコーディング  テクニックを選択的にインプリメントする。プロセッサ１６は１以上のレベル１  キャッシュを含み、そしてその結果、キャッシュ１８はＬ２キャッシュである。他の実施例では、プロセッサ１６内のマルチキャッシュレベルを含む。キャッシュ１８は階層的に次のレベルに下降する。キャッシュ１８は任意のサイズ及びコンフィグレーション（セット関連、ダイレクトマッピングなど）を適用する。
【００１５】
グラフィックコントローラ３８Ａ−３８Ｂは、グラフィック処理回路である。一般的に、グラフィックコントローラ３８Ａ−３８Ｂはフレームバッファに表示されるようオブジェクトをレンダーする。グラフィックコントローラ３８Ａ−３８Ｂは、一部又は全てのグラフィックオペレーションを実行するグラフィックソフトウェア、又は或るグラフィックオペレーションのハードウェア加速の少なくともいずれかを演算するグラフィックプロセッサを含む。ハードウェア加速の量及びソフトウェアインプリメンテーションは、各実施例で変化する。
【００１６】
ＮＲＴ周辺機器２０は、非リアルタイム周辺機器を含み、そのパフォーマンス及び／又はバンド幅の理由から、メモリ１２Ａ−１２Ｂへの独立したアクセスを提供する。つまり、ＮＲＴ周辺機器２０によるアクセスは、ＣＰＵブロック１４とは独立し、ＣＰＵブロックメモリオペレーションとは並行して進む。周辺機器３４などの他の周辺機器及び／又は周辺インタフェースコントロール３４によって制御された周辺インタフェースと接合する周辺機器も非リアルタイム周辺機器であるが、独立したメモリアクセスを要求していない。ＮＲＴ周辺機器２０の様々な実施例は、ビデオエンコーダ及びデコーダ、スケーラー(scaler)/ローテイター(rotator)回路、画像の圧縮/復元回路などを含む。
【００１７】
ＲＴ周辺機器２２はメモリ待ち時間を要求するリアルタイムをもつ任意の周辺機器を含む。例えば、ＲＴ周辺機器はイメージプロセッサ及び１以上のディスプレイパイプを含む。ディスプレイパイプは１以上のフレームをフェッチし、フレームをブレンドし、ディスプレイイメージを形成する回路を含む。ディスプレイパイプは１以上のビデオパイプラインを更に含む。ディスプレイパイプの結果は、ディスプレイスクリーン上のディスプレイスクリーンに表示されるべきピクセルストリームである。ディスプレイスクリーン上のディスプレイに関するディスプレイコントローラにピクセル値を送信する。イメージプロセッサはカメラデータを受信し、メモリに記憶されるイメージにデータを処理する。
【００１８】
ブリッジ/ＤＭＡコントローラ３０は周辺機器３２及びメモリ空間に対する周辺インタフェースコントローラ３４にブリッジする回路を含む。例示の実施例の場合、ブリッジ/ＤＭＡコントローラ３０は、ブロック１４を介した、周辺インタフェースコントローラからＣＰＵメモリコントローラ４０へのメモリオペレーションをブリッジする。また、ＣＰＵブロック１４は、ブリッジされたメモリオペレーション群、及びプロセッサ１６/Ｌ２キャッシュ１８からのメモリオペレーション群間のコヒーレンスを保持する。Ｌ２キャッシュ１８は、ＣＰＵインタフェース上で送信されるプロセッサ１６からＣＰＵポート４４Ｃまでのメモリオペレーションによりブリッジされたメモリオペレーションを仲介する。また、ブリッジ/ＤＭＡコントローラ３０は、周辺機器３２及び周辺インタフェースコントローラ３４のためにＤＭＡオペレーションを提供し、メモリから及びメモリへデータブロックを転送する。詳細にいうと、ＤＭＡコントローラは、周辺機器３２及び周辺インタフェースコントローラ３４のために、メモリコントローラ４０を介して、メモリ１２Ａ−１２Ｂから及びメモリ１２Ａ−１２Ｂへの転送を実行するよう構成されている。ＤＭＡコントローラは、プロセッサ１６によってプログラム化され、ＤＭＡコントローラは、オペレーションを実行する。例えば、ＤＭＡコントローラは、記述子を介してプログラム可能である。この記述子はＤＭＡ変換子（例えば、送信元アドレス及び宛先アドレス、サイズなど）を記述するメモリ１２Ａ−１２Ｂに記憶されたデータ構造である。或いは又、ＤＭＡコントローラはＤＭＡコントローラ（不図示）内のレジスタを介してプログラム化が可能である。
【００１９】
周辺機器３２Ａ−３２Ｃは、所望の入力/出力デバイス又は集積回路１０に含まれる他のハードウェアデバイスを含む。例えば、周辺機器３２Ａ−３２Ｃは、イーサネット（登録商標）ＭＡＣ（メディアアクセスコントローラ）又は無線フィデリティ（ＷｉＦｉ）などの１以上のネットワークＭＡＣといったネットワーク周辺機器を含む。様々なオーディオ処理デバイスを含むオーディオユニットが周辺機器３２Ａ−３２Ｃに含まれる。１以上のデジタル信号プロセッサが周辺機器３２Ａ−３２Ｃに含まれる。周辺機器３２Ａ−３２Ｃは、タイマー、ｏｎチップ  シークレットメモリ、暗号エンジンやこれらの組み合わせなど他の任意の機能を含む。
【００２０】
周辺インタフェースコントローラ３４は、任意のタイプの周辺インタフェースに関する任意のコントローラを含む。例えば、周辺インタフェースコントローラは、ＵＳＢコントローラ、周辺コンポーネント相互接続高速（ＰＣＩｅ）コントローラ、フラッシュメモリインタフェース、汎用入出力（Ｉ/Ｏ）ピンなどの様々なインタフェースコントローラを含む。
【００２１】
メモリ１２Ａ−１２Ｂは、ダイナミック・ランダムアクセスメモリ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ，ＦＤＤＲ２，ＤＤＲ３など）、（ｍＤＤＲ３などの携帯バージョンのＳＤＲＡＭ、ＬＰＤＤＲ２などの低パワーバージョンのＳＤＲＡＭの少なくともいずれかを含む）ＳＤＲＭ、ＲＡＭＢＵＳ ＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）などの任意のタイプのメモリである。１以上のメモリデバイスがメモリモジュールを形成する回路基板上で接合される。ここで、メモリモジュールとは、単一インライン・メモリモジュール（ＳＩＭＭ）、デュアルインライン・メモリモジュール（ＤＩＭＭ）などである。あるいはまた、デバイスはチップｏｎチップ構成、パッケージｏｎパッケージ構成、又はマルチチップモジュール構成の集積回路１０によりマウントされる。
【００２２】
メモリＰＨＹ４２Ａ−４２Ｂは、メモリ１２Ａ−１２Ｂに対して低レベル周辺インタフェースを扱う。例えば、メモリＰＨＹ４２Ａ−４２Ｂは、同期ＤＲＡＭメモリなどに正確なクロッキング（clocking）用の信号タイミングに責任を負う。一実施例において、メモリＰＨＹ４２Ａ−４２Ｂは、集積回路１０内に供給されるクロックをロックするよう構成され、そしてメモリ１２により用いられるクロックを生成するよう構成される。
【００２３】
他の実施例は、図１で示すコンポーネント及び／又は他のコンポーネントのサブセット又はスーパーセットを含むコンポーネントの組み合わせを含むことに留意されたい。所与のコンポーネントの一実例が図１に示される一方で、他の実施例は所与のコンポーネントの１以上の実例を含む。同様に、発明の詳細な説明の全体を通して、所与のコンポーネントの１以上の実例は、たとえ１つしか示されていないとしても、１つの実例を含む実施例を含み、複数の実例が示される場合にも用いられる。
【００２４】
Ｌ２キャッシュのパワーアップ／パワーダウン
図２を参照すると、集積回路１０の一部の実施例のブロック図が詳細に示されている。特に、ＣＰＵブロック１４及びブリッジ/ＤＭＡコントローラ３０がパワーマネージャー５０と共に示されている。ＣＰＵブロック１４はプロセッサ１６及びＬ２キャッシュ１８を含む。図２の実施例の場合、Ｌ２キャッシュ１８はＬ２キャッシュコントロール１８Ａ及びＬ２キャッシュメモリ１８Ｂとして示されている。Ｌ２キャッシュコントロール１８Ａは、キャッシュ制御回路５２及びコヒーレンス制御回路５４を含む。キャッシュ制御回路５２及びコヒーレンス制御回路５４のそれぞれは、コンフィグレーションレジスタ５６Ａ−５６Ｄなどのコンフィグレーションレジスタを含む。プロセッサ１６は、Ｌ２キャッシュコントロール１８Ａ、特にコヒーレンス制御回路５４と結合される。コヒーレンス制御回路５４はキャッシュ制御回路５２と結合される。Ｌ２キャッシュコントロール１８Ａ及び特にキャッシュ制御回路５２は、Ｌ２キャッシュメモリ１８Ｂと結合される。Ｌ２キャッシュコントロール１８Ａは更にメモリコントローラ４０（例えば、図１のＣＰＵポート４４Ｃ）と結合する。パワーマネージャー５０は、Ｌ２キャッシュコントロール１８Ａ（例えば、図２のＬ２パワー制御信号）及びプロセッサ１６（例えば、図２のプロセッサパワー制御信号）と結合する。
【００２５】
ブリッジ/ＤＭＡコントローラ３０は、コヒーレントＩ/Ｏインタフェースユニット（ＣＩＦ）５８、パワーアップ／パワーダウンメモリ６０、ＤＭＡコントローラ６２を含む。ＣＩＦ５８は、ワーアップ／パワーダウンメモリ６０と、ＤＭＡコントローラ６２と、Ｌ２キャッシュコントロール１８Ａと（特に、コヒーレンス制御回路５４）、パワーマネージャー５０と（例えば、図２のＩ/Ｏアイドル、ＰＷｒＵｐＲｅｑ、ＰＷｒＵｐＡｃｋ信号を介して）、周辺回路３２Ａ−３２Ｃと、周辺インタフェースコントローラ３４との少なくとも何れか一つと結合される。ＤＭＡコントローラ６２は更に、周辺回路３２Ａ−３２Ｃと、周辺インタフェースコントローラ３４と結合する。一実施例において、ＤＭＡコントローラ６２及びＣＩＦ５８は、周辺回路３２Ａ−３２Ｃ及び／又は周辺インタフェースコントローラ３４の各サブセットと結合する。サブセットはオーバーラップし得る（例えば、ある周辺機器/周辺インタフェースコントローラは、ＤＭＡを介して及びＣＩＦ５８との直接通信を介しての両方によりメモリと通信するよう構成されている）。他の周辺機器/周辺インタフェースコントローラは、ＤＭＡを介してのみ又はＣＩＦ５８に直接送信されたオペレーションを介してのみメモリと通信する。
【００２６】
コンフィグレーションレジスタ５６Ａ−５６Ｄはソフトウェアによってプログラム化され、キャッシュ制御回路５２及びコヒーレンス制御回路５４のオペレーションの様々な面を制御する。一般的に、回路ブロックは、様々なプログラム可能なコンフィグレーションの間でソフトウェアを選択できるようにするコンフィグレーションレジスタを実装する。例えば、Ｌ２キャッシュ１８のサイズ及びコンフィグレーションは、或る所定の最大数の範囲内で選択可能であう。キャッシュの書込みスルー/書込みバックオペレーションが構成される。コヒーレントモードはコンフィグレーションレジスタ５６Ａ−５６Ｄを通じて有効化されコントロールされる。或る実施例において、キャッシュ制御回路５２だけがキャッシュコンフィグレーションレジスタ５６Ａ−５６Ｄを含むか、若しくは、コヒーレンス制御回路５４だけがキャッシュコンフィグレーションレジスタを５６Ａ−５６Ｄを含む。
【００２７】
Ｌ２キャッシュ１８がパワーダウンされる場合、コンフィグレーションレジスタ５６Ａ−５６Ｄの少なくとも幾つかに記憶されたコンフィグレーションデータが失われる。Ｌ２キャッシュ１８がパワーダウンされ、その後にパワーアップされた後にコンフィグレーションを復活させるため、コンフィグレーションデータをパワーアップ／パワーダウンメモリ６０に記憶する。例えば、ソフトウェアがコンフィグレーションレジスタ５６Ａ−５６Ｄをパワーアップで復活されるはずの値でプログラムされるとき、ソフトウェアはパワーアップ／パワーダウンメモリ６０に値を書込む。同様に、パワーダウンの前に実行される、コンフィグレーションレジスタ書込み又は他のレジスタ書込みがある。例えば、パワーダウンの前に、（任意の未処理メモリオペレーション若しくは他の通信が完了することを保証しながら）レジスタがＬ２キャッシュ１８を同期させる同期コマンドで書込まれる。
【００２８】
パワーアップ／パワーダウンイベントの間中、ＣＩＦ５８はパワーアップ／パワーダウンメモリ６０からオペレーションを読出すように構成される。パワーマネージャー５０はＣＩＦ５８に対してパワーアップ又はパワーダウンイベントを信号送信するよう構成され、そしてＣＩＦ５８はメモリ６０を読出して対応のイベントをＬ２キャッシュ１８に送信するよう構成される。オペレーションが終了すると、ＣＩＦ５８はパワーマネージャー５０に対して終了報告を通信するよう構成される。これに応答して、パワーマネージャー５０はパワーアップ／パワーダウンイベントを完了させる。
【００２９】
パワーマネージャー５０及びＣＩＦ５８の間で任意の通信が実行される。例示した実施例においては、パワーマネージャー５０はＰｗｒＵｐＲｅｑ信号を用いながらパワーアップ若しくはパワーダウンイベントを信号送信する。詳しく言うと、パワーマネージャー５０は、Ｌ２キャッシュ１８がパワーアップされることを示すためにＰｗｒＵｐＲｅｑ信号をアクティブな状態にし、Ｌ２キャッシュ１８がパワーダウンされることを示すためにＰｗｒＵｐＲｅｑ信号をアクティブでない状態に構成される。ＰｗｒＵｐＲｅｑ信号のアクティブ状態にあわせて、ＣＩＦ５８の間５８は、パワーアップオペレーションとして示されるパワーアップ／パワーダウンメモリ６０内の任意のオペレーションを読出して、このオペレーションをＬ２キャッシュ１８に通信するよう構成されている。ＣＩＦ５８は、オペレーションが完了したことを決定し（例えば、各レジスタ書込みオペレーションに対応する書込み完了を受信すること）、そしてパワーアップイベントを肯定応答するためにＣＩＦ５８はＰｗｒＵｐＡｃｋ信号をアクティブ状態にする。パワーマネージャー５０は、ＰｗｒＵｐＡｃｋ信号のアクティブ状態に反応してＬ２キャッシュ１８への通信を再びイネーブルする。
【００３０】
Ｌ２キャッシュ１８をパワーダウンすることはキャッシュ制御回路５２を少なくともパワーダウンすることを含む。ある実施例においては、コヒーレンス制御回路５４もまたパワーダウンされる。Ｌ２キャッシュ１８Ｂは幾つかの実施例においては、キャッシュ内のキャッシュ状態（例えば、メモリからの様々なキャッシュブロック、タグ・有効性・コヒーレンス状態などのキャッシュブロック）を保持しながらパワーオンされたままである。或いはまた、Ｌ２キャッシュ１８Ｂは、Ｌ２キャッシュ１８をパワーダウンする一部としてパワーダウンされている。パワーダウンされた回路/メモリは、パワーアップイベントに応答して再びパワーアップされ得る。
【００３１】
パワーアップ／パワーダウンメモリ６０は任意の半導体ストレージから形成される。例えば、ソフトウェアによって読出され/書込まれるマルチレジスタが提供される。他の実施例は、他の形式のストレージ（例えば、スタティックＲＡＭなどのランダムアクセスメモリ（ＲＡＭ））を用いる。
【００３２】
パワーアップ／パワーダウンメモリ６０は一般的にマルチエントリを含む。図２のメモリ６０に典型的な２つのエントリを示す。例示の実施例の場合、パワーアップ／パワーダウンメモリ６０内の各エントリは、図２のエントリにおいて、フィールドとデータフィールドとして示したように、アドレスとデータの組を含む。アドレスは書込まれるコンフィグレーションレジスタを識別し、データはそのコンフィグレーションレジスタに書込まれる値である。アドレスは相対的なものであり（例えば、アドレスはＬ２キャッシュコントロール１８Ａに対応するベースアドレスからのオフセットであったり、又は、コヒーレンス制御回路５４及び／又はキャッシュ制御回路５２のためのベースアドレスである）。或いはまた、このアドレスは、対応のレジスタ５６Ａ−５６Ｄに対する書込みオペレーションにある、プロセッサが送信したであろう完全アドレスである。また、各エントリは、エントリが有効情報を記憶しているか否かを示す有効ビット（Ｖ）を含む。さらに、この実施例の場合、各エントリは、パワーダウン中又はパワーアップ中にコンフィグレーションレジスタ書込みが実行されるかどうかを示すパワーダウン（Ｄ）フィールドを含む。Ｄフィールド内のＤビットはパワーダウンレジスタ書込みを示すためにセットされ、パワーアップレジスタ書込みを示すことが明らかである。他の実施例は、パワーダウン及びパワーアップに関して異なるメモリを使用したり、又は既知の形式でメモリを分割したりし、そしてＤフィールドは各エントリに含まれていないかもしれない。
【００３３】
一実施例において、ソフトウェアは、パワーアップ／パワーダウンメモリ６０の初期エントリにパワーダウンアドレス／データの組を書込み、そしてその後のエントリにパワーアップアドレス／データの組を書込むことが見込まれている。このような実施例の場合、パワーダウンイベントに応答して、Ｄビットをクリアさせるエントリに遭遇するまで、ＣＩＦ５８は初期エントリをもつオペレーション始めを読出す。ＣＩＦ５８はポインタをエントリに残し、パワーアップイベントに応答して示されたエントリからパワーアップオペレーションを読出すことを始める（その後で、そのポインタは初期エントリに対するポイントに再びリセットされる）。
【００３４】
パワーアップ／パワーダウンメモリ６０がコンフィグレーションレジスタ書込みを記憶する一方で、他の実施例は実行されるべき任意のタイプのオペレーション（例えば、レジスタ書込み、レジスタ読出し、コマンドなど）を記憶する。したがって、Ｌ２キャッシュ１８をパワーアップし及びパワーダウンするためのフレキシブルなメカニズムがサポートされる。このメカニズムはＬ２キャッシュ１８をパワーアップし又はパワーダウンすることをサポートしながら、プロセッサ１６を（プロセッサ１６を起動することなく）パワーダウンする。くわえて、オペレーションがメモリ６０内でプログラム可能であることから、実行されるはずのオペレーションは変更され、そしてオペレーションの順序が変更される。したがって、メカニズム自体がハードウェアで動作かするとしても、そのメカニズムはソフトウェア変更を介して（オペレーティングにエラーがあれば）訂正される。
【００３５】
一般的に、キャッシュ制御回路５２はＬ２キャッシュ１８Ｂにアクセスすることを管理するよう構成される。このキャッシュ制御回路５２は、キャッシュアクセスに関するヒット/ミスを検出し、ミスのためのキャッシュ充填を開始し、Ｌ２キャッシュ１８内の置き換えポリシーを管理したりする。コヒーレンス制御回路５４は、プロセッサ１６のメモリオペレーションのために、そしてＣＩＦ５８からのメモリオペレーションのために（例えば、ＤＭＡコントローラ６２からのＤＭＡオペレーション及び／又は周辺機器３２Ａ−３２Ｃから直接受信した他のメモリオペレーション及び／又は周辺インタフェースコントローラ３４）、ＣＰＵブロック１４におけるキャッシュコヒーレントをコントロールする。コヒーレンス制御回路５４は、プロセッサ１６内のキャッシュに関するスヌープ（詮索）タグを保持し、そしてキャッシュコヒーレンス目的のためにＬ２キャッシュメモリ１８Ｂを詮索するため、キャッシュコントロールプロセッサ１６に対するキャッシュアクセスを生成するよう構成される。
【００３６】
パワーマネージャー５０は、プロセッサ１６及びＬ２キャッシュ１８、さらには集積回路１０における他の様々なアクティビティ（不図示）をモニタリングするよう構成される。パワーマネージャー５０は、プロセッサ１６のパワーアップ又はダウンを含むパワー状態を、プロセッサパワー制御信号を介してコントロールする。プロセッサ１６は様々な実施例において独立して又は同期してパワーアップ又はパワーダウンされる。
【００３７】
パワーマネージャー５０は、Ｌ２キャッシュ１８がアイドル（遊休）状態である場合、Ｌ２キャッシュ１８をパワーダウンする。パワーマネージャー５０は、Ｌ２キャッシュ１８が様々な態様でアイドル（遊休）状態であることを検出する。例えば、プロセッサ１６がパワーダウンされ、その結果、どのメモリオペレーションもプロセッサ１６から見込まれていないことにパワーマネージャー５０は気づく。さらに、パワーマネージャー５０は、ブリッジ/ＤＭＡコントローラが少なくともメモリオペレーションに関してアイドル状態であることを検出する。例示の実施例の場合、ＣＩＦ５８はＩ/Ｏアイドル信号を生成する。ＣＩＦ５８は、周辺機器３２Ａ−３２Ｃ及び／又は周辺インタフェースコントローラ３４からのメモリオペレーションがないということを示すＩ/Ｏアイドル信号（ＤＭＡコントローラ６２からの何のメモリオペレーションもないことを含む）をアサートする。一実施例において、ＣＩＦ５８は、パワーマネージャー５０へＩ/Ｏアイドル信号をアサートする前に、プログラム可能な連続クロックサイクル数に関するメモリオペレーションがないことを検出する。一実施例において、ＣＩＦ５８はＩ/Ｏアイドル信号をアサートしないよう構成される。しかしながら、ＣＩＦ５８は、パワーマネージャー５０から、メモリオペレーションが送信され得る知らせを待つ。その知らせは、パワーマネージャー５０がメモリオペレーションを受信する前にパワーダウンイベントを開始したという競争状態を避け、その結果、パワーダウンイベントの一環として失われることとなるＬ２キャッシュ１８へのメモリオペレーション送信を避ける。一実施例において、準備完了信号（不図示）がパワーマネージャー５０によって提供され、Ｉ/Ｏアイドル信号のアサーション（及びアサーション停止）の後に、Ｌ２キャッシュ１８がメモリオペレーションにとって準備完了であることを示す。
【００３８】
次に、図３〜６を参照すると、パワーマネージャー５０及びＬ２キャッシュ１８をパワーアップ及びダウンさせるＣＩＦ５８のオペレーションをあらわすフローチャートが示されている。理解を容易にするために特定の順序でブロックを示しているが、他の順序も用いられる。パワーマネージャー５０及び／又はＣＩＦ５８の組み合わせ論理において並行してブロックが実行される。ブロック、ブロックの組み合わせ、及び／又はフローチャートは、全体として、マルチクロックサイクルでパイプラインされる。メモリコントローラ４０は、図１９に示すオペレーションを実行するように構成される。パワーマネージャー５０及び／又はＣＩＦ５８はフローチャートに示したオペレーションを実行するよう構成される。詳細には、パワーマネージャー５０及び／又はＣＩＦ５８は、図示したオペレーションを実行するハードウェア回路を含む。
【００３９】
図３は、パワーダウンイベントに関するパワーマネージャー５０の一実施例におけるオペレーションを示したフローチャートである。パワーマネージャー５０は、プロセッサ１６がパワーダウンし（判断ブロック７０の「Ｙｅｓ」）、かつ、ＣＩＦ５８５８が信号送信されたＩ/Ｏアイドルをもつ場合（判断ブロック７２の「Ｙｅｓ」）、パワーダウンイベントが生じたことを決定する。その場合、パワーマネージャー５０は、ＣＩＦ５８にＰｗｒＵｐＲｅｑ信号のアサート停止をして（ブロック７４）、パワーダウンイベントを開始する。パワーマネージャー５０は、ＣＩＦ５８からの肯定応答（Ａｃｋ）を待ち（判断ブロック７６）、そしてＰｗｒＵｐＡｃｋのアサート停止に応答して（判断ブロック７６の「Ｙｅｓ」）、パワーマネージャー５０はＬ２キャッシュをパワーダウンさせる（ブロック７８）。
【００４０】
図４は、パワーダウンイベントに関するＣＩＦ５８の一実施例におけるオペレーションを示したフローチャートである。パワーダウンイベントのＣＩＦ５８処理は、パワーマネージャー５０からのＰｗｒＵｐＲｅｑ信号をアサーション停止することに応答して開始する（判断ブロック８０の「Ｙｅｓ」）。ＣＩＦ５８は、パワーアップ/パワーダウンメモリ６０から初期エンティティを読出し（ブロック８２）、そのエンティティが有効であり且つパワーダウンイベントに関するものであるか否かを決定する（Ｖ及びＤセット、判断ブロック８４）。そうである場合（判断ブロック８４が「Ｙｅｓ」）、ＣＩＦ５８はアドレス/データの組をＬ２コントロール１８Ａに送信して、識別されたコンフィグレーションレジスタ５６Ａ−５６Ｄをアップデートする（ブロック８６）とともに、次のエントリをメモリ６０に読出す（ブロック８２）。そうでない場合（判断ブロック８４が「Ｎｏ」）、ＣＩＦ５８はすべてのコンフィグレーションレジスタ書込みに対する書込み応答がＬ２コントロール１８Ａから受信されたかどうかを決定する（判断ブロック８８の「Ｙｅｓ」）。応答が受信されていた場合（判断ブロック８０の「Ｙｅｓ」）、Ｌ２コントロール１８Ａはパワーダウンのために準備され、そしてＣＩＦ５８はパワーダウン要求を肯定応答するためにＰｗｒＵｐＡｃｋ信号をアサート停止にする（ブロック９０）。
【００４１】
図５は、パワーアップイベントに関するパワーマネージャー５０のオペレーションを示したフローチャートである。パワーマネージャー５０は、プロセッサ１６がパワーアップされる場合若しくはメモリオペレーションがＣＩＦ５８に受信される場合に（Ｉ/Ｏアイドルのアサート停止を生じさせることになる）、パワーアップイベントが生じることを決定する。パワーマネージャー５０は、Ｌ２キャッシュコントロールをパワーアップし（ブロック１００）、そしてパワーが安定するまで待つ。パワーマネージャー５０はＰｗｒＵｐＲｅｑ信号をアサートし（ブロック１０２）、Ｌ２キャッシュ１８が初期化されて再び通信の準備完了であることを決定するために、アサートされるはずのＰｗｒＵｐＡｃｋ信号を待つ（ブロック１０４）。
【００４２】
図６は、パワーアップイベントに関するＣＩＦ５８のオペレーションを示したフローチャートである。ＣＩＦ５８は、ＰｗｒＵｐＲｅｑ信号のアサーションに応答して開始する（判断ブロック１１０の「Ｙｅｓ」）。ＣＩＦ５８は、パワーアップ/パワーダウンメモリ６０内の次のエンティティを読出す（ブロック１１２）。そのエンティティが有効であり且つパワーアップオペレーションであるならば（Ｖセット及びＤクリア、判断ブロック１１４の「Ｙｅｓ」）、ＣＩＦ５８はコンフィグレーションレジスタ書込みをＬ２キャッシュコントロール１８Ａに送信し（ブロック１１６）、そしてメモリ６０内の次のエンティティを読出す（ブロック１１２）。エンティティが有効ではないか又はパワーダウンオペレーションであるならば（判断ブロック１１４の「Ｎｏ」）、ＣＩＦ５８はレジスタ書込みに対する応答が受信されたかどうかを決定する（判断ブロック１１８）。応答が受信されていた場合（判断ブロック１１８の「Ｙｅｓ」）、ＣＩＦ５８はＰｗｒＵｐＡｃｋ信号をアサートする（ブロック１２０）。
【００４３】
或る実施例において、パワーマネージャー５０は、パワーアップイベントの処理の間中、Ｌ２キャッシュ１８がパワーダウンされているかを決定したり、又はパワーダウンイベントの処理の間中、Ｌ２キャッシュ１８がパワーアップされているかを決定する。幾つかのインプレメンテ−ション（実装例）において、パワーマネージャー５０は、新たな遷移を開始する前に、進行中の遷移を完了できるようにする。別のインプレメンテ−ションにおいては、パワーマネージャー５０は、（例えば、ＰｗｒＵｐＲｅｑ信号の状態を変化させることによって）決定がなされると新たな遷移を信号送信するよう構成される。ＣＩＦ５８は、状態変化を検出するためのＰｗｒＵｐＲｅｑ信号をモニタリングし、進行中のイベントを処理することを終わらせる。ＣＩＦ５８は、更なる処理をすることなく変化した状態を肯定応答したり、或いは新たなイベントを処理（新たなイベントに関するレジスタ書込みを実行すること）したりのいずれかを行なう。
【００４４】
図７は、一実施例に関するＬ２キャッシュ１８のパワーダウン及びパワーアップシーケンスを示すタイミング図である。時間（タイム）は、図７の左から右に任意の単位で増加する。このＬ２キャッシュ１８はタイミング図の開始でパワーアップしオペレーティングされ（ブロック１３０）、そしてＰｗｒＵｐＲｅｑ及びＰｗｒＵｐＡｃｋ信号の両方ともがアサートされる。パワーマネージャー５０は、Ｌ２キャッシュがパワーダウンされているかを決定し、ＰｗｒＵｐＲｅｑ信号をアサート停止にする（点線１３２）。ＣＩＦ５８は、レジスタ書込みを送信し応答を収集することを開始する。（ブロック１３４）。ひとたび書込みが完了して応答が受信されると、ＣＩＦ５８はＰｗｒＵｐＡｃｋ信号をアサート停止にし（点線１３６）、そしてＬ２キャッシュ１８はパワーダウンされる（ブロック１３８）。後のポイントで、パワーマネージャー５０は、Ｌ２キャッシュがパワーアップされているかを決定し、Ｌ２キャッシュ１８にパワーを確立したあとでＰｗｒＵｐＲｅｑ信号をアサートする（点線１４０）。ＣＩＦ５８はコンフィグレーションレジスタを初期化するためにレジスタ書込みを送信し（ブロック１４２）、書込みを完了すること及び応答を受信することに反応してＰｗｒＵｐＡｃｋ信号をアサートする（点線１４４）。Ｌ２キャッシュ１８はパワーアップされ、そしてこのポイントで再びオペレートする（ブロック１４６）。
【００４５】
図８を参照すると、Ｌ２キャッシュコンフィグレーションをアップデートするソフトウェアの一実施例を示すフローチャートが記載されている。例えば、ソフトウェアは、システム５のブート中及び／又はＬ２キャッシュコンフィグレーションを変更するシステムオペレーション間の他の時点で演算されるコンフィグレーションコードを含む。Ｌ２コンフィグレーションコードは図８に示すオペレーションをインプリメントするプロセッサ１６の一つで演算される。つまり、Ｌ２コンフィグレーションコードは命令を含み、それはプロセッサ１６の一つによって演算されるときに図８に示すオペレーションを実行（インプレメント）する。理解を容易にするために特定の順序でブロックを示しているが、他の順序も用いられる。
【００４６】
Ｌ２キャッシュコンフィグレーションコードはＬ２キャッシュ１８内に１以上のコンフィグレーションレジスタを書込む（ブロック１５０）。１以上のコンフィグレーションレジスタがL2キャッシュ１８中に書込まれることを必要とされるならば（判断ブロック１５２の「Ｙｅｓ」）、このコードはパワーアップ/パワーダウンメモリ６０に対するコンフィグレーションレジスタのアドレス及び対応データを書込む（ブロック１５４）。例えば、Ｌ２キャッシュ１８の同期を生じさせるレジスタ書込みを含む。コードは、パワーダウン書込みにより各エントリ書込みにＶ及びＤビットをセットする。１以上のコンフィグレーションレジスタがＬ２キャッシュ１８のパワーアップ中に回復される場合（判断ブロック１５６の「Ｙｅｓ」）、このコードはパワーアップ/パワーダウンメモリ６０に対するコンフィグレーションレジスタのアドレス及び対応データを書込み、そして各エントリにＶビットをセットしてＤビットをクリアする（ブロック１５８）。幾つかの実施例において、パワーダウン書込み及びパワーアップ書込みの両方に、同じコンフィグレーションレジスタを含むことに留意されたい。
【００４７】
別の実施例において、ＣＩＦ５８は、コンフィグレーションレジスタ５６Ａ−５６Ｄに対する書込み（又はパワーアップイベントに再び記憶され及び／又はパワーダウンイベントに書込まれるはずのコンフィグレーションレジスタのサブセット）を検出するよう構成される。ＣＩＦ５８は、レジスタに書かれた値をパワーアップ/パワーダウンメモリ６０において自動的にキャプチャーする。その結果、Ｌ２コンフィグレーションコードはメモリ６０への書込みを明示的に実行する必要はない。このような実施例の場合、Ｌ２コンフィグレーションコードは、上述した自動的なキャプチャーに加えて、メモリ６０をアップデートこともできる。Ｌ２コンフィグレーションコードは、例えば、パワーダウンイベントのための同期コマンドを挿入する。
【００４８】
図９を参照すると、コンピュータアクセス可能な記憶媒体２００のブロック図が示されている。一般的に言って、コンピュータアクセス可能な記憶媒体は、コンピュータに命令及び／又はデータを提供するために使用する間にコンピュータがアクセスする任意の記憶媒体を含む。例えば、コンピュータアクセス可能な記憶媒体は、例えばディスク（固定若しくはリムーバブル）、テープ、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ、ＣＲ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、又はブルーレイといった磁気や光メディアの記憶媒体を含む。記憶媒体は、ＲＡＮ（例えば、同期ダイナミックＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ，ＦＤＤＲ２，ＤＤＲ３など）、ＳＤＲＡＭ、低パワーＤＤＲ（ＬＰＤＤＲ２など）、ＳＤＲＡＭ、ＲａｍｂｕｓＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）など）、ＲＯＭ、フラッシュメモリ、ユニバーサルバス（ＵＳＢ）インタフェースなどの周辺インタフェースを介してアクセス可能な不揮発性メモリ（例えば、フラッシュメモリ）。記憶媒体は、マイクロマシン技術（ＭＥＭＥＳ）の他に、ネットワーク及び／又は無線リンクなどの通信媒体を介してアクセス可能な記憶媒体を含む。図９のコンピュータアクセス可能な記憶媒体２００は、Ｌ２コンフィグレーションコードを記憶し、それは図８のフローチャートを実行する。一般的に、コンピュータアクセス可能な記憶媒体２００は命令のセットを記憶し、それは実行時において、図８のフローチャートの一部又は全部を実行する。キャリア媒体は、コンピュータアクセス可能な記憶媒体と、優先若しくは無線伝送の伝送媒体とを含む。
【００４９】
図１０を参照すると、システム３５０の一実施例のブロック図が示されている。例示の実施例において、システム３５０は、外部メモリ１２に結合された集積回路１０の少なくとも１つのインスタンスを含む。外部メモリ３５２は図１に関して上述した主メモリサブシステムを形成する（例えば、外部メモリ３５２はメモリ１２Ａ−１２Ｂを含む）。集積回路１０は１以上の周辺機器３５４及び外部メモリ１２に結合する。電源供給３５６が提供され、集積回路３５８に電圧を供給するとともに、メモリ３５２及び／又は周辺機器３５４に電圧を供給する。幾つかの実施例において、１より多い集積回路１０のインスタンスが含まれる（そして同様に、１より多い外部メモリ３５２が含まれる）。
【００５０】
メモリ３５２は任意のタイプのメモリである。例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、同期ダイナミックＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ，ＦＤＤＲ２，ＤＤＲ３など）、ＳＤＲＡＭ（ｍＤＤＲ３などのＳＤＲＡＭのモバイルバージョン、及び／又はＬＰＤＤＲ２などのＳＤＲＡＭの低パワーバージョンを含む）、ＲＡＭＢＵＳ  ＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）などである。１以上のメモリデバイスは、単一インラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（DＩＭＭ）などのメモリモジュールを形成する回路基板上に接合される。或いはまた、デバイスはチップオンチップコンフィグレーション、パッケージオンパッケージコンフィグレーション、マルチチップモジュールコンフィグレーションの集積回路１０によりマウントされる。
【００５１】
周辺機器３５４はシステム３５０のタイプによって望しい回路を含む。例えば、一実施例において、システム３５０はモバイル機器（例えば、携帯情報端末（ＰＤＡ）、スマートフォンなど）であり、そして周辺機器３５４は様々なタイプの無線通信（例えば、ｗｉｆｉ、ｂｌｕｅｔｏｏｔｈ、セルラー、ＧＰＳなど）を含む。また、周辺機器３５４はＲＡＭ記憶媒体、固体記憶媒体、ディスク記憶媒体を含む追加的ストレージを含む。周辺機器３５４はディスプレイスクリーンなど（例えば、タッチディスプレイスクリーン又はマルチタッチディスプレイスクリーン、キーボード若しくは他の入力デバイス、マイクロフォン、スピーカー）のユーザインタフェース機器を含む。他の実施例では、システム３５０は任意のタイプのコンピュータシステム（例えば、デスクトップＰＣ、ラップトップ、ワークステーション、ネットトップなど）である。
【００５２】
上述したように開示が理解される場合、様々なバリエーション及び修正が当業者にとって明らかとなる。添付の特許請求の範囲はこのようなバリエーション及び修正をとらえるために解釈されることを意図している。
【図１】
0005537533.tif 000002
【図２】
0005537533.tif 000003
【図３】
0005537533.tif 000004
【図４】
0005537533.tif 000005
【図５】
0005537533.tif 000006
【図６】
0005537533.tif 000007
【図７】
0005537533.tif 000008
【図８】
0005537533.tif 000009
【図９】
0005537533.tif 000010
【図１０】
0005537533.tif 000011