(57)【特許請求の範囲】
【請求項１】
複数のキャッシュラインをデータメモリ内に記憶し、
前記複数のキャッシュラインに対応する複数のタグを記憶し、それぞれの前記複数のタグは状態及びグループ識別子（ＩＤ）を含み、前記グループＩＤは、前記キャッシュラインをキャッシュ内に記憶させる要求のデータフローグループを同定し、
第１のグループＩＤに対するすべてのキャッシュラインをクリアする第１の要求を受信し、
前記第１の要求の受信に応答して前記複数のタグ内の開始位置の第１の開始インデックスを記録し、
前記第１のグループＩＤに属するキャッシュラインを同定するために前記複数のタグにステップスルーし、
前記複数のキャッシュラインの第１のキャッシュラインが前記第１のグループＩＤに属すると判定することに応答して、
前記第１のキャッシュラインのスティッキー状態をクリアし、
前記第１のキャッシュラインが変更されている場合にはアクセス可能なものとして前記第１のキャッシュラインを維持するよう構成されたキャッシュ。
【請求項２】
前記キャッシュが、
前記第１のキャッシュラインが変更されていない場合には前記第１のキャッシュラインを無効にし、
前記第１の開始インデックスに戻ると、前記複数のタグへのステップスルーを停止するよう更に構成されている、請求項１に記載のキャッシュ。
【請求項３】
前記キャッシュが、第２のグループＩＤに対するすべてのキャッシュラインをクリアする第２の要求の受信に応答して、前記複数のタグ内の開始位置の第２の開始インデックスを記録するよう更に構成されており、前記第２の要求は、前記第１の開始インデックスに戻る前に受信されている、請求項２に記載のキャッシュ。
【請求項４】
前記第２の要求の受信に応答して、前記キャッシュが、
前記第１のグループＩＤ又は前記第２のグループＩＤのいずれかに属するキャッシュラインを同定するために前記複数のタグにステップスルーし、
前記複数のキャッシュラインの第２のキャッシュラインが前記第１のグループＩＤ又は前記第２のグループＩＤのいずれかに属すると判定することに応答して、
前記第２のキャッシュラインのスティッキー状態をクリアし、
前記第２のキャッシュラインが変更されている場合にはアクセス可能なものとして前記第２のキャッシュラインを維持するよう更に構成されている、請求項３に記載のキャッシュ。
【請求項５】
前記第１の開始インデックスへ戻ることに続き、前記キャッシュが、前記第２のグループＩＤに属するキャッシュラインを同定するために前記複数のタグへステップスルーするよう更に構成されている、請求項４に記載のキャッシュ。
【請求項６】
前記第２の開始インデックスに戻ると、前記キャッシュが、前記複数のタグへのステップスルーを停止するよう更に構成されている、請求項５に記載のキャッシュ。
【請求項７】
前記キャッシュがＮウェイ・セット・アソシエイティブ構成を有し、Ｎは整数であり、前記キャッシュは、前記第１のグループＩＤに属する任意のキャッシュラインを同定するよう、それぞれのタグインデックスでのすべてのＮウェイを検索するよう構成されている、請求項４に記載のキャッシュ。
【請求項８】
前記第１のキャッシュラインの前記スティッキー状態をクリアすることが、前記第１のキャッシュラインが変更されている場合には前記第１のキャッシュラインの前記状態を最長期間未使用の（ＬＲＵ）ダーティに変更することを含む、請求項１に記載のキャッシュ。
【請求項９】
前記キャッシュが、対応するグループＩＤに対するダーティなキャッシュラインがメモリに書き戻されるべきか、又はドロップされるべきかをそれぞれ指定するよう、フラッシュ又はドロップにセットされたグループＩＤ毎の割当量クリア方法インジケータを維持するよう更に構成されている、請求項１に記載のキャッシュ。
【請求項１０】
前記キャッシュが、前記第１のグループＩＤに対する前記割当量クリア方法インジケータがフラッシュにセットされているとの判定に応答して、前記第１のグループＩＤに対応するすべてのキャッシュラインをフラッシュするよう更に構成されている請求項９に記載のキャッシュ。
【請求項１１】
前記キャッシュの制御ユニットが、前記割当量クリア方法インジケータがドロップにセットされているとの判定に応答して、前記第１のグループＩＤに対応するすべてのキャッシュラインを無効化するよう更に構成されている、請求項９に記載のキャッシュ。
【請求項１２】
システムキャッシュのタグメモリのエントリに、前記システムキャッシュからの第１のグループＩＤのキャッシュラインを解除する要求を検出することに応答してステップスルーすることと、
それぞれのエントリにて、前記エントリのグループＩＤが前記第１のグループＩＤに割り当てられているか判定することと、
前記タグメモリの前記エントリの第１のエントリが前記第１のグループＩＤに割り当てられていると判定することに応答して、
前記第１のエントリのスティッキー状態をクリアすることと、
前記第１のエントリが変更されている場合にはアクセス可能なものとして前記第１のエントリを維持することとを含む方法。
【請求項１３】
前記タグメモリの前記エントリのすべてにステップスルーする前に、前記システムキャッシュから第２のグループＩＤのキャッシュラインを解除する要求を検出することと、
前記第２のグループＩＤのキャッシュラインを解除する前記要求を検出することに応答して、前記タグメモリの前記エントリへの最近のステップスルーのインデックスをロギングすることと、
それぞれのエントリにて、前記エントリのグループＩＤが前記第１のグループＩＤ又は前記第２のグループＩＤのいずれかに割り当てられているか判定することと、
前記タグメモリの前記エントリの第２のエントリが前記第１のグループＩＤ又は前記第２のグループＩＤのいずれかに割り当てられているかを判定することに応答して、
前記第２のエントリのスティッキー状態をクリアし、
前記第２のエントリが変更されている場合にはアクセス可能なものとして前記第２のエントリを維持することと、を更に含む、請求項１２に記載の方法。
【請求項１４】
前記第１のエントリが変更されていない場合には前記第１のエントリを無効にし、
前記タグメモリの前記エントリの開始にラップアラウンドすることと、前記タグメモリの最後のエントリに到達することに応答して、前記タグメモリの前記エントリへのステップスルーを続けることと、を更に含む、請求項１３に記載の方法。
【請求項１５】
前記ロギングしたインデックスに到達するまで、前記タグメモリの前記エントリへのステップスルーを続けることを更に含む、請求項１４に記載の方法。
【請求項１６】
前記第１のエントリの前記スティッキー状態をクリアすることが、前記第１のエントリが変更されている場合には前記第１のエントリの前記状態を最長期間未使用の（ＬＲＵ）ダーティに変更することを含む、請求項１２に記載の方法。
【請求項１７】
対応するグループＩＤに対するダーティなキャッシュラインが、メモリに書き戻されるべきか、又はドロップされるべきかをそれぞれ指定するよう、フラッシュ又はドロップにセットされたグループＩＤ毎の割当量クリア方法インジケータを維持することを更に含む、請求項１２に記載の方法。
【請求項１８】
前記第１のグループＩＤに対する前記割当量クリア方法インジケータがフラッシュにセットされていると判定することに応答して、前記第１のグループＩＤに対応するすべてのキャッシュラインをフラッシュすることを更に含む、請求項１７に記載の方法。
【請求項１９】
前記割当量クリア方法がドロップにセットされていると判定することに応答して、前記第１のグループＩＤに対応するすべてのキャッシュラインを無効化することを更に含む、請求項１７に記載の方法。
【請求項２０】
前記タグメモリの前記エントリの開始までラップアラウンドすることと、前記タグメモリの最後のエントリに到達したことに応答して、前記タグメモリの前記エントリへのステップスルーを続けることと、を更に含む、請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的にデータキャッシュに関し、より詳細には、メモリコントローラ内に位置するシステムキャッシュを最適化する方法及びメカニズムに関する。
【背景技術】
【０００２】
今日のモバイル電子デバイスは多くの場合に、１つ又はそれ以上のメモリデバイスへのアクセスを共有する複数の構成要素又はエージェントを含む。これらの複数のエージェントはメモリに多数の要求をすることができ、これらの要求数が増加するにつれてデバイスの電力消費が増え、デバイスのバッテリ寿命を制限する。電力消費を低減する１つのアプローチは、データをプロセッサ内又はその付近にキャッシュ記憶することによって、外部メモリがアクセスされる回数を低減するよう試みることである。
【０００３】
従来のキャッシュは一般的に、プロセッサ又はその近傍に結合されており、プロセッサにより頻繁にアクセスされるデータを記憶して待ち時間を低減する。従来のキャッシュでは、データは、各アクセスの時間局所性に基づいてキャッシュ内に保持され得る。例えば、１つのラインがキャッシュに割り付けられている場合、このラインが参照される回数が増えると、このラインを置き換えることが難しくなる。しかし、従来のキャッシュは、アクセスが時間的に広範に拡がっている場合に複数回アクセスされるデータを記憶するように設計されていない。そのようなデータは、従来のキャッシュからは退去させられる傾向となる。
【発明の概要】
【０００４】
システムキャッシュ内の１つ又はそれ以上のグループＩＤのキャッシュラインのスティッキー状態(sticky states)をクリアするためのシステム、メモリコントローラ、キャッシュ、及び方法が開示されている。システムオンチップでは複数のエージェントがメモリコントローラに結合されることができ、これは同様に、１つ又はそれ以上のメモリデバイスに結合されることができる。複数のエージェントは、メモリコントローラを介してメモリデバイス（単一又は複数）にアクセスすることができる。メモリコントローラは、外部メモリにアクセスする要求数を低減させる目的で、データを記憶するよう構成されたシステムキャッシュを含むことができる。
【０００５】
システムキャッシュは、一般的なプロセッサキャッシュに認められるものとは異なる種類のアクセスパターンを伴う複数のエージェントによって共有されてもよい。いくつかのキャッシュラインは複数回参照され得るが、時間的に局所的な様式では参照され得ない。システムキャッシュはどのラインが再使用されるかを認識し得ないため、したがって、各ラインがシステムキャッシュ内にどのように割り付けられているかを要求エージェントが判定してもよい。
【０００６】
一実施形態では、システムキャッシュは、データメモリ及びタグメモリを含むことができる。データメモリは複数のキャッシュラインを記憶することができ、タグメモリは、複数のキャッシュラインに対応する複数のタグを記憶することができる。システムキャッシュはまた、スティッキー抜去エンジン（sticky removal engine）を含むことができ、ソフトウェアが所与のグループＩＤに対するスティッキー状態を解除するときに、所与のグループＩＤに割り当てられたキャッシュラインに対するスティッキー状態を抜去する。スティッキー抜去エンジンは、タグメモリのタグインデックスをウォークスルーするよう構成されることができ、所与のグループＩＤに対応する任意のタグを検索する。
【０００７】
一実施形態では、システムキャッシュは、マルチウェイ・セット・アソシエイティブ構成を有することができる。スティッキー抜去エンジンは、単一のインデックスでの複数のキャッシュラインに対するスティッキー状態を、複数のエビクションを直ちに処理する必要なく抜去することができる。キャッシュラインのスティッキー状態がクリアされた後、システムキャッシュ内にてミスした新規要求に対してキャッシュラインが実際に再生されると、キャッシュラインのエビクションが後の時点にて生じ得る。一実施形態では、解除されているグループＩＤに割り当てられたキャッシュラインの状態は、すでに変更されている場合はＬＲＵダーティ状態に（すなわち、ダーティ状態）、変更されていない場合は無効状態に（すなわち、クリーン状態）、スティッキー抜去エンジンによって変更されることができる。更に、中間スクラッチパッドの場合など、変更されたライン（ダーティ状態）が再度参照されないことをエージェントが認識している場合は、このグループＩＤに関連付けられたライン（ＬＲＵダーティ状態ではなく無効）を破棄し得る。ＬＲＵダーティ状態を伴うキャッシュラインは、ミスが生じた場合の置き換えに対する最良の候補として識別されてもよい。
【０００８】
様々な実施形態では、スティッキー抜去エンジンは、エンジンがタグメモリの各インデックスをウォークスルーするにつれて、複数のグループＩＤを解除するよう構成されてもよい。スティッキー抜去エンジンは第１の要求を受信して、第１のグループＩＤに対して割り付けられたキャッシュラインを解除することができ、これに応じてエンジンはタグメモリをウォークスルーし始め、第１のグループＩＤに割り当てられたグループＩＤタグを探すことができる。一実施形態では、システムキャッシュが１６のウェイを有する場合、エンジンは、タグメモリをウォークスルーするそれぞれのステップにおいて、インデックス毎に１６のタグをチェックすることができる。エンジンが任意のウェイにおいて第１のグループＩＤに割り当てられたグループＩＤタグを見つける毎に、エンジンは、対応するラインの状態をＬＲＵダーティ状態又は無効に変更することができる。
【０００９】
タグメモリを辿って第１のグループＩＤマッチを探す間、スティッキー抜去エンジンは、第２のグループＩＤに割り付けられたすべてのキャッシュラインを解除する第２の要求を受信することができる。スティッキー抜去エンジンは現在のインデックスを、第２のグループＩＤのクリアランスプロセスに対する開始アドレスとしてログを取ることができる。続いて、スティッキー抜去エンジンはタグメモリへのそのウォークスルーを続けることができ、それぞれのインデックスでのそれぞれのグループＩＤタグにて第１のグループＩＤ又は第２のグループＩＤのいずれかを探す。スティッキー抜去エンジンは、エンジンが第２のグループＩＤの開始アドレスにラップアラウンドするまで、そのウォークを続けることができる。更に、任意の数の更なる解除要求は、任意の数の他のグループＩＤに対して受信されてもよい。任意の数のクリアランスプロセスは、スティッキー抜去エンジンがタグメモリをウォークスルーするにつれて重複可能とされてもよく、エンジンは、それぞれの新規に受信した要求に対する開始アドレスのスナップショットを撮ることができる。
【００１０】
これら及び他の機能並びに利点は、本明細書に提示されたアプローチの以下の詳細説明を考慮して、当業者には明白となるであろう。
【図面の簡単な説明】
【００１１】
方法及びメカニズムの上記の利点及び更なる利点は、添付図面と併せて以下の説明を参照することでより理解され得る。
【００１２】
【図１】電子デバイスの一部分の一実施形態を示す図である。
【図２】集積回路の一部分の一実施形態を示す図である。
【図３】システムキャッシュの一実施形態を示すブロック図である。
【図４】一対のタグメモリウェイの一実施形態を示すブロック図である。
【図５】システムキャッシュに要求を運ぶ要求エージェントの一実施形態を示す図である。
【図６】システムキャッシュ内のスティッキー抜去エンジンの一実施形態のブロック図である。
【図７】スティッキー抜去エンジンの別の実施形態のブロック図である。
【図８】複数のグループＩＤに対するスティッキー状態を解除する方法の一実施形態を示す一般的フロー図である。
【図９】システムの一実施形態のブロック図である。
【発明を実施するための形態】
【００１３】
以下の説明では、本明細書に提示された方法及びメカニズムの完全な理解を提供するために、数多くの具体的な詳細が記載される。しかし、様々な実施形態が、これら具体的な詳細なく実施され得ることを当業者は認識するはずである。いくつかのインスタンスでは、本明細書に説明するアプローチが不明瞭となることを回避するため、既知の構造、構成要素、信号、コンピュータプログラム命令、及び技術は詳細に示されていない。例示の簡素化及び明瞭さのため、図に示す各要素は必ずしも縮尺通りに描かれていないことが理解されよう。例えば、いくつかの要素の寸法は、他の要素に対して誇張され得る。
【００１４】
本明細書は、「一実施形態」に対する参照を含む。異なる文脈において、表現「一実施形態では」が用いられている場合は、必ずしも同じ実施形態を参照しない。特定の機能、構造又は特性は、本開示に整合する任意の好適な方法で組み合わせ得る。更に、本出願全体を通じて使用されるとき、「〜してもよい（may）」という語は、義務的な意味（すなわち、〜なければならない（must）を意味する）ではなく、許容的な意味で使用される（すなわち、〜する可能性を有していることを意味する）。同様に、「含む（include）」、「含む（including）」、及び「含む（includes）」という語は、〜を含むが、それに限定するものではないことを意味する。
【００１５】
用語。以下の段落は、（付随する特許請求の範囲を含む）本開示内に見られる用語の定義及び／又は文脈を提供する。
【００１６】
「含む」、「備える」。この用語は、オープンエンドである。特許請求の範囲で用いられているこの用語は、追加の構造又は手順を除外しない。「システムキャッシュを含むメモリコントローラ．．．」と列挙する請求項についての考察。そのような請求項は、追加的構成要素（例えば、メモリチャネルユニット、スイッチ）を含むことからメモリコントローラを除外しない。
【００１７】
「構成される」。様々なユニット、回路又はその他の構成要素は、タスクを実行する「ように構成される」と記載又は特許請求し得る。このような文脈において、「構成される」は、ユニット／回路／構成要素が、動作中に１つ又は複数のタスクを実行する構造体（例えば、回路）を含むことを示すことによって構造体を暗示するときに使用される。したがって、ユニット／回路／構成要素は、特定のユニット／回路／構成要素が現在動作していない（例えば、オンの状態でない）ときでもタスクを実行するように構成されると言い得る。「構成される」という言葉と共に用いられるユニット／回路／構成要素はハードウェア、例えば、回路、動作を実行できるプログラム命令を格納するメモリ、等を含む。ユニット／回路／構成要素が１つ又は複数のタスクを実行するように「構成されている」と記載するのは、そのユニット／回路／構成要素について、米国特許法第１１２条第６段落を発動しないように明示的に意図している。更に、「構成される」は、ソフトウェア及び／又はファームウェア（例えば、ＦＰＧＡ又はソフトウェアを実行する汎用プロセッサ）によって操作され、問題のタスクを実行可能な方法で動作する一般的な構造体（例えば、一般的な回路）を含む。また、「構成される」は、１つ以上のタスクを実施又は実行するのに適した装置（例えば、集積回路）を組み立てるように製造工程（例えば、半導体組み立て設備）を構成することも含み得る。
【００１８】
「第１」、「第２」等。本明細書で用いられているこれらの用語は、続く名詞の標識として使用され、いかなるタイプの順序付け（例えば、空間的、時間的又は論理的等）も意味しない。例えば、複数のキャッシュラインを伴うキャッシュでは、用語「第１の」及び「第２の」キャッシュラインは、複数のキャッシュラインの任意の２つを参照するために使用され得る。
【００１９】
「基づく」。本明細書で用いられているとき、この用語は、判定に影響を及ぼす１つ以上の要因を言い表すときに使用される。この用語は、判定に影響を及ぼし得る追加の要因を排除しない。即ち、判定はこれらの要因だけに基づくか、又は、少なくとも部分的にこれらの要因に基づき得る。「Ｂに基づきＡを判定する」というフレーズを検討してみる。ＢはＡの判定に影響を及ぼす要因であるが、このようなフレーズはＡの判定がＣにも基づくことを排除しない。他の例では、ＡはＢだけに基づいて判定されることがあり得る。
【００２０】
図１をここで参照すると、電子デバイスの一部分の一実施形態を示すブロック図が示されている。示された実施形態では、電子デバイス１０は、メモリ１２、メモリコントローラ１４、コヒーレンスポイント１８、プロセッサ複合体２０、グラフィックスエンジン２２、非リアルタイム（ＮＲＴ）周辺装置２４、及びリアルタイム（ＲＴ）周辺装置２６を含む。電子デバイス１０はまた、図１に示されていない他の構成要素も含み得ることに注意されたい。更に、別の実施形態では、図１に示す１つ又はそれ以上の構成要素は、電子デバイス１０から取り除かれてもよい。様々な実施形態では、電子デバイス１０はまた、装置、モバイル機器、又はコンピューティングデバイスとして参照されてもよい。
【００２１】
メモリ１２は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３等）、ＳＤＲＡＭ（ｍＤＤＲ３などのモバイルバージョンのＳＤＲＡＭ、及び／又はＬＰＤＤＲ２などの低電力バージョンのＳＤＲＡＭを含む）、ＲＡＭＢＵＳ  ＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）などの任意の数及び種類のメモリデバイスを表す。１つ又はそれ以上のメモリデバイスを回路基板に結合して、シングルインラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）などのメモリモジュールを形成し得る。
【００２２】
メモリコントローラ１４はメモリ１２と相互作用するよう構成された回路を含むことができ、様々な構成要素は、コヒーレンスポイント１８を介してメモリコントローラ１４に結合されてもよい。他の実施形態では、図１に示す１つ又はそれ以上の他のデバイスは、コヒーレンスポイント１８を通しての結合ではなく、メモリコントローラ１４に直接結合されてもよい。様々な実施形態では、メモリコントローラ１４は、様々な周辺装置、構成要素、及び／又は要求エージェントに結合するための任意の数のポートを含むことができる。
【００２３】
メモリコントローラ１４は、メモリ１２から取得した、又はこれを対象としたデータを記憶するためのシステムキャッシュ１６を含むことができる。システムキャッシュ１６は、複数の要求エージェントからのメモリ要求を処理するよう構成されてもよい。１つ又はそれ以上の要求エージェントは、コヒーレンスポイント１８に接続された状態で示されている任意のデバイス内に含まれてもよい。一実施形態では、キャッシュラインは、スティッキー状態又は非スティッキー状態のいずれかにてシステムキャッシュ１６内に割り付けられてもよい。システムキャッシュ１６内にどのデータを保持するかを決定する際に、システムキャッシュ１６は、キャッシュラインのスティッキー状態に基づいて決定することができる。例えば、１つのシナリオでは、プロセッサ複合体２０にジオメトリデータが提供されてもよく、このジオメトリデータは、グラフィックスエンジン２２内の３Ｄエンジンが理解し得るデータ構造に変換されてもよい。変換が行われた後、３Ｄエンジンは、変換されたデータ構造を複数回、単一のフレーム内にて参照してもよい。したがって、変換されたデータ構造はスティッキーとしてシステムキャッシュ１６内に割り付けられることができ、データ構造を記憶するキャッシュラインがシステムキャッシュ１６内にて他のデータによって置き換えられないことを確かにする。再使用されるデータに対するスティッキー割り付けを使用した結果として、メモリ１２に行われるアクセス数が低減され得、メモリ要求の待ち時間及び電子デバイス１０の電力消費を低減する。
【００２４】
コヒーレンスポイント１８は、メモリコントローラ１４へ及びからコヒーレント及び非コヒーレントトラフィックを送るよう構成されてもよい。コヒーレンスポイント１８はまた、コヒーレンススイッチとして参照されてもよい。図１に示されていないが、コヒーレンスポイント１８は、フラッシュコントローラ、カメラ、ディスプレイ、及び他のデバイスなど、他のデバイスに結合されてもよい。
【００２５】
プロセッサ複合体２０は、任意の数の中央処理装置（ＣＰＵ）（図示せず）及び様々な他の構成要素（例えば、キャッシュ、バスインタフェースユニット）を含んでもよい。プロセッサ複合体２０のＣＰＵ（単一又は複数）は、オペレーティングシステム（ＯＳ）を実行する回路を含んでもよい。様々な実施形態では、このＯＳは任意の種類のＯＳ（例えば、ｉＯＳ）としてもよい。それぞれのＣＰＵはレベル１（Ｌ１）キャッシュ（図示せず）を含むことができ、それぞれのＬ１キャッシュはレベル２（Ｌ２）キャッシュに結合されてもよい。他の実施形態は、更なるキャッシュのレベル（例えば、レベル３（Ｌ３）キャッシュ）を含んでもよい。
【００２６】
グラフィックスエンジン２２は、任意の種類のグラフィックス処理回路機構を含むことができる。一般的に、グラフィックスエンジン２２は、フレームバッファ（図示せず）内に表示されるオブジェクトをレンダーリングするよう構成されてもよい。グラフィックスエンジン２２は、グラフィック動作の一部又はすべてを実行するグラフィックソフトウェア及び／又は特定のグラフィック動作のハードウェアアクセラレーションを実行するグラフィックスプロセッサを有してもよい。ハードウェアアクセラレーション及びソフトウェア実装の量は、実施形態によって異なり得る。ＮＲＴ周辺装置２４は、任意の非リアルタイム周辺装置を含んでよい。ＮＲＴ周辺装置２４の様々な実施形態は、ビデオ符号器及び復号器、スケーラ／ローテータ回路、画像圧縮／復元回路、等を含んでもよい。ＲＴ周辺装置２６は、任意の数及び種類のリアルタイム周辺装置を含んでもよい。
【００２７】
他の実施形態は、図１に示す構成要素及び／又は他の構成要素の下位集合又は上位集合を含む他の組み合わせの構成要素を含み得ることに注意されたい。所与の構成要素の１つの事例は図１に示され得、他の実施形態は、所与の構成要素の２つ又はそれ以上の事例を含んでもよい。同様に、本詳細説明を通して、１つのみが示されているとしても、所与の構成要素の２つ又はそれ以上の事例が含まれ得、及び／又は、複数の事例が示されているとしても、１つの事例のみを含む実施形態が使用され得る。
【００２８】
ここで図２を参照すると、集積回路の一部分の一実施形態が示されている。集積回路（ＩＣ）３０は、要求エージェント３２Ａ〜Ｃ、スイッチインタフェース３４、コヒーレンスポイント３６並びに３８、及びメモリコントローラ４０を含むことができる。メモリコントローラ４０は、メモリコントローラキャッシュ４２並びに４４、メモリチャネルスイッチ４６、及びメモリチャネルユニット４８並びに５０を含むことができる。メモリコントローラ４０は、１つ又はそれ以上のメモリデバイス（図示せず）に結合されてもよい。様々な実施形態では、ＩＣ  ３０は、モバイル、バッテリ式デバイスを含む、任意の様々な種類の電子デバイス内に含まれてもよい。ＩＣ  ３０はまた、システムオンチップ（ＳｏＣ）として参照されてもよい。ＩＣ  ３０は、図２に示されていない他の構成要素及びインタフェースを含み得ることに注意されたい。
【００２９】
要求エージェント３２Ａ〜Ｃはシステム内で様々な動作を行うよう構成されてもよく、これらの動作を行う一部としてメモリにアクセスしてもよい。例えば、要求エージェント３２は、プロセッサ（汎用プロセッサ又はグラフィックスプロセッサなどの専用プロセッサのいずれ）としてもよい。プロセッサは実行のための命令をフェッチするためにメモリにアクセスするよう構成されてもよく、また、命令の実行に応じてメモリ内の命令の様々なデータオペランドにアクセスするよう構成されてもよい。他の要求エージェントは、固定機能回路（例えば、ＤＭＡコントローラ、周辺インターフェイスコントローラ）を含むことができる。要求エージェント３２は、プロセッサの別々のインスタンスなど、物理的に分離した回路としてもよい。あるいは、要求エージェントは、単一の物理的プロセッサが複数の論理リクエスタを含むことができるような、プロセッサ上のプロセス又はスレッド実行など、論理エンティティとしてもよい。１つの所与の実施形態に含まれる要求エージェント３２Ａ〜Ｃの数は、１つから任意の数の要求エージェントと異なってもよい。
【００３０】
所与の要求エージェント（物理的又は論理的）は、要求エージェント識別子（ＩＤ）によって識別され得る。様々な実施形態では、要求エージェントは、それぞれ個別の要求を別々に追跡するよう、トランザクション識別子（ＴＩＤ）を追加することができる。要求エージェント３２Ａ〜Ｃによって生成されたそれぞれの要求は、グループＩＤを伴ってもよい。グループＩＤはまた、データセットＩＤとして参照されることができる。グループＩＤは要求エージェントＩＤ及びＴＩＤからの別々の識別子とすることができ、グループＩＤ値を表すよう使用されるビット数は、実施形態によって異なってもよい。例えば、一実施形態では、４ビットを使用してグループＩＤ値を表すことができ、１６の別々のグループＩＤがあってもよい。グループＩＤは、要求が属するデータフローに基づいて、要求に割り当てられることができる。ＯＳ又はデバイスドライバ（実施形態に依存する）は、グループＩＤを割り当ててもよい。いくつかの種類のデータフローについては、同じグループＩＤが、複数の要求エージェントＩＤによって共有されてもよい。一実施形態では、ページング変換テーブルに対する要求は同じデータフローの一部とみなされてもよく、任意のこれらの要求は、要求エージェントＩＤに関わらず、共通のグループＩＤに割り当てられてもよい。他の種類のデータフローについては、グループＩＤは、単一の要求エージェントのみによって利用されてもよい。
【００３１】
コヒーレンスポイント３６及び３８は、要求エージェント３２Ａ〜Ｃからメモリコントローラ４０に伝えられた要求のコヒーレンシー（coherency）を管理するよう構成されてもよい。一実施形態では、要求エージェント３２Ａ〜Ｃからのトラフィックはスイッチインタフェース３４内にて分離されてもよく、特定のメモリ要求が対象としているアドレスに依存して特定のコヒーレンスポイントを横断してもよい。他の実施形態は、他の数のコヒーレンスポイントを含むことができる。
【００３２】
メモリコントローラキャッシュ４２及び４４は別々の物理的キャッシュとしてもよいが、単一の論理メモリコントローラキャッシュとみなしてもよい。より詳細には、メモリコントローラキャッシュ４２及び４４は単一のアドレス空間を共有することができ、キャッシュ４２のアドレス空間を参照するメモリ要求は、スイッチインタフェース３４によってコヒーレントポイント３６を経由してキャッシュ４２に送られることができ、キャッシュ４４のアドレス空間を参照するメモリ要求は、スイッチインタフェース３４によってコヒーレントポイント３８を経由してキャッシュ４４に送られることができる。スイッチインタフェース３４は任意の種類の通信媒体（例えば、バス、ポイント・ツー・ポイント相互接続、等）とすることができ、任意のプロトコルを実施することができる。インタフェースは、インタフェースの信号定義及び電気的特性を参照することができ、プロトコルは、（例えば、コマンド、順序付け規則、コヒーレンスサポートを含む）インタフェース上の通信の論理定義とすることができる。メモリコントローラキャッシュ４２及び４４はまた、システムキャッシュとして参照され得ることに注意されたい。他の実施形態では、メモリコントローラ４０は、他の数のメモリコントローラキャッシュを含むことができる。例えば、別の実施形態では、メモリコントローラ４０は、４つの別々のメモリコントローラキャッシュを含むことができる。
【００３３】
メモリコントローラキャッシュ４２及び４４は、キャッシュ内に記憶されたそれぞれのキャッシュラインに対するスティッキーステータスを維持するよう構成されることができる。スティッキーステータスは、スティッキー状態、スティッキーフラグ、スティッキービット、スティッキータグ、又は他の同様のフィールドを介して実施されてもよい。一実施形態では、タグメモリは、データメモリ内に記憶されたキャッシュラインに相当するタグエントリを記憶するよう利用されてもよい。タグエントリは、スティッキーステータスフィールド及びグループＩＤフィールドを含む複数のフィールドを含んでよく、キャッシュラインがキャッシュ内に割り付けられるようにした要求のデータフロー源を同定する。一実施形態では、スティッキーとして割り付けられたキャッシュラインは、キャッシュがスティッキー割り付けをクリアするソフトウェアコマンドを受信するまで維持されてもよい。それぞれのキャッシュ４２及び４４は、既存のキャッシュラインに対する置き換えポリシーを実施するよう構成されてもよいが、置き換えポリシーは、スティッキーラインを置き換えるものとみなすことからは除外してもよい。キャッシュラインは、要求がスティッキー割り付けヒントを含む場合に、キャッシュ内にてミスした要求に対するスティッキーとして割り付けられることができる。要求エージェントは、特定の要求がスティッキー割り付けヒントを有するべきかの決定を行うことができ、その要求エージェントは、特定の要求により参照されたデータが後続の要求によって使用される可能性があるかどうかに基いて決定を行うことができる。
【００３４】
メモリコントローラスイッチ４６は、メモリコントローラキャッシュ４２及び４４とメモリチャネルユニット４８及び５０との間にトラフィックを送ることができる。所与の実施形態内に含まれるそれぞれのメモリチャネルに対しては１つのメモリチャネルユニット４８及び５０があってもよく、他の実施形態は、１つのチャネル又は２つを超えるチャネルを含んでもよい。メモリチャネルユニット４８及び５０は、メモリチャネル上に送信されるメモリ動作をスケジュールするよう構成されてもよい。メモリチャネルユニット４８及び５０は、メモリ読み込み動作（又は読み込み）及びメモリ書き込み動作（又は書き込み）を別々に待ち行列に入れるよう構成されてもよく、例えばクレジットベースシステムを使用して、読み込みと書き込みとの間を仲裁するよう構成されてもよい。クレジットベースシステムでは、読み込み及び書き込みは特定のクレジット数に割り付けられてもよい。
【００３５】
一実施形態では、メモリチャネルユニット４８及び５０は、メモリ動作をバースト動作にてスケジュールしてもよい。スケジューリングにバーストメモリ動作を生成するため、メモリチャネルユニット４８及び５０は、メモリ動作をアフィニティグループに集約してもよい。メモリ動作は、動作が、時間的に極めて接近して行われたときにメモリインタフェース上にて効果的に行われ得る場合に、別のメモリ動作とのアフィニティを示していると言うことができる。
【００３６】
図２に例示された機能の分布は、集積回路に利用され得る唯一の考えられるアーキテクチャではないことが理解されるべきである。他の集積回路は、他の構成要素を含むことができ、示されている構成要素を１つ又はそれ以上取り除くことができ、及び／又は構成要素間の機能の異なる配列を含むことができる。
【００３７】
図３をここで参照すると、システムキャッシュの一実施形態のブロック図が示されている。一実施形態では、システムキャッシュ６０は、タグメモリ６２、データメモリ６４、キャッシュ制御ユニット６６、及び構成レジスタ６８を含むことができる。システムキャッシュ６０はまた、図３に示されていない他の構成要素及びロジックを含むことができることに注意されたい。例えば、他の実施形態では、システムキャッシュ６０は、各要求間を仲裁する仲裁回路を含むことができる。図３に示すシステムキャッシュアーキテクチャは、実装されることができる単に１つの考えられるアーキテクチャであることが理解されるであろう。他の実施形態では、他のシステムキャッシュアーキテクチャが、本明細書に開示する方法及びメカニズムと共に利用されてもよい。
【００３８】
一実施形態では、タグメモリ６２は、メモリ要求に対するアドレスを要求エージェントから受信するよう結合されてもよい。用語「メモリ要求（memory request）」及び「トランザクション（transaction）」は、本開示を通して互換的に使用され得ることに注意されたい。データメモリ６４は、トランザクションに対するデータを受信するよう、又はデータを提供するよう結合されてもよい。様々な実施形態では、タグメモリ６２及びデータメモリ６４は複数のウェイを含むことができ、それぞれのウェイは、インデックスによってアドレス可能とすることができる。例えば、一実施形態では、タグメモリ６２及びデータメモリ６４は、それぞれ１６のウェイを含むことができる。他の実施形態では、タグメモリ６２及びデータメモリ６４は、他の数のウェイを含むことができる。
【００３９】
キャッシュ制御ユニット６６はタグメモリ６２及びデータメモリ６４に結合されており、キャッシュ制御ユニット６６は、受信したトランザクションに関する様々な制御データを受信し、受信した制御データに応答するよう構成されてもよい。キャッシュ制御ユニット６６はスティッキー抜去エンジン６９を含むことができ、スティッキー抜去エンジン６９は、タグメモリ６２内のすべてのタグインデックスをウォークスルーし、所与のグループＩＤに対するスティッキー状態を、ソフトウェアが所与のグループＩＤに対するスティッキー状態を解除したときに抜去するよう構成されることができる。様々な実施形態では、スティッキー抜去エンジン６９は、ハードウェア、ソフトウェア、又は任意のそれらの組み合わせとすることができる。キャッシュ制御ユニット６６は単一のユニットとして図３に示されているが、他の実施形態では、キャッシュ制御ユニット６６は、システムキャッシュ６０内の複数のユニットに分離され得ることに注意されたい。構成レジスタ６８は、システムキャッシュ６０内に記憶されたデータに関連付けられた様々なグループＩＤに対する構成情報を含むことができる。構成レジスタ６８は、ＯＳ及び／又は様々な要求エージェントからキャッシュ制御ユニット６６に送信されたソフトウェアコマンドによってプログラムされてもよい。
【００４０】
構成レジスタ６８は、システムキャッシュ６０の一部として利用され得る任意の数の構成レジスタを表す。例えば、一実施形態では、システムキャッシュ６０を使用するようＯＳによって割り当てられたそれぞれのグループ識別子（ＩＤ）に対する別々の構成レジスタ６８があってもよい。この実施形態では、それぞれの構成レジスタは、各グループＩＤに対するステータス、割当量、及びクリアランスポリシーを定義することができる。ステータスは、システムキャッシュ６０に送信されたソフトウェアコマンドによってアクティブ又はインアクティブのいずれかにセットされることができる。ステータスがインアクティブにセットされているときは、これはキャッシュ制御ユニット６６を起動し、この特定グループＩＤに割り付けられているすべてのラインを無効にする。割当量は、システムキャッシュ６０内にて各グループＩＤに対して割り付けられ得るラインの数量を制限するようセットされてもよい。一実施形態では、キャッシュ制御ユニット６６内のそれぞれのグループＩＤに対する割当量カウンタ（図示せず）があってもよい。割当量カウンタは、対応するグループＩＤに対するシステムキャッシュ６０内のキャッシュライン数を把握することができる。置き換えポリシーは、所与のグループＩＤがその自身のスティッキーラインを新規スティッキーラインと置き換えることができるか指定することができる。一実施形態では、この置き換えポリシーは、スティッキー置き換え構成オプションインジケータを使用して示されてもよい。この置き換えポリシーは、新規スティッキーラインに対して、利用できる非スティッキーキャッシュライン記憶ロケーションがシステムキャッシュ６０内にない場合にのみ実行されてもよい。
【００４１】
データメモリ６４はデータエントリのセットを含むことができ、それぞれはデータのキャッシュラインを記憶する容量を有する。キャッシュラインは、データメモリ６４における割り付け及び割り付け解除の単位とすることができる。キャッシュラインは、３２バイト又は６４バイトなど、任意の好ましいサイズとすることができるが、他の実施形態では、これより大きいキャッシュラインサイズも小さいキャッシュラインサイズもサポートされてもよい。別の実施形態では、データメモリ６４のキャッシュラインは、「キャッシュブロック」として参照されてもよい。
【００４２】
様々な実施形態では、データメモリ６４は、任意の種類のメモリデバイスを利用してもよい。一実施形態では、データメモリ６４は、例えば、エントリ番号によってインデックスが設けられたＲＡＭを備えてもよい。データメモリ６４は、キャッシュライン記憶ロケーションのセットが入力アドレスのインデックス部分（例えば、実施セット数の中から１つのセットを一意的に選択するようデコードされ得るアドレスのビット数）に応答する読み込み／書き込み動作に対して選択されることができるように配列されることができる。アクセスされるキャッシュライン記憶ロケーションは、キャッシュ制御ユニット６６によって（例えば、要求に対するキャッシュヒットの検出に応答して、ミスしたキャッシュラインを記憶するキャッシュライン記憶ロケーションの割り付けに応答して）同定されることができる。データはアクセスされたキャッシュライン記憶ロケーションから読み込まれることができ、読み込みキャッシュヒットに対するリクエスタに戻るか、又はシステムキャッシュ６０から退去させられたキャッシュラインに対するメモリに送信する。データは、リクエスタからの書き込みキャッシュヒットに対してアクセスされたキャッシュライン記憶ロケーションに書き込まれることができるか、又は、割り付けられたキャッシュライン記憶ロケーション内にミスしたキャッシュラインがキャッシュをフィルするのを完了する。いくつかの実施形態では、データメモリ６４はバンクされた実装としてもよく、同様に、バンク選択制御がキャッシュ制御ユニット６６から提供されてもよい。
【００４３】
タグメモリ６２は、例えばＲＡＭなど、任意の種類のメモリデバイスを利用することができる。あるいは、タグメモリ６２は、監視目的の内容参照可能メモリ（ＣＡＭ）又はＲＡＭ／ＣＡＭの組み合わせを含むことができる。タグメモリ６２は複数のタグエントリを含むことができ、それぞれのエントリは、上記の異なる値のインデックスにより選択されている。選択されたタグエントリは、インデックスにより選択されたシステムキャッシュ６０内のキャッシュライン記憶ロケーションのセットに相当するタグを記憶することができる。それぞれのタグは各キャッシュライン記憶ロケーション内のキャッシュラインに相当し、対応するキャッシュラインのアドレスのタグ部分（すなわち、キャッシュライン内のオフセットを定義する最下位ビット及びインデックスに使用されるビットのないアドレス）及び様々な他の状態情報を含むことができる。タグメモリ６２は、要求に応じてインデックスをデコードし、処理のためにキャッシュ制御ユニット６６にタグを出力するよう構成されることができる。一実施形態では、タグメモリ６２はまた、タグを要求アドレスのタグ部分と比較するよう構成されたタグ比較回路を含むことができ、比較結果をキャッシュ制御ユニット６６に提供することができる。別の実施形態では、キャッシュ制御ユニット６６は、タグを比較することができる。キャッシュ制御ユニット６６はまた、タグエントリを書き込むことで、様々なタグの更新を行うよう構成されてもよい。
【００４４】
システムキャッシュ６０は任意の構成を有することができる。いくつかの実施形態では、ダイレクトマッピング又はセットアソシエイティブ構成を実装することができる。一般的なダイレクトマッピング及びセットアソシエイティブキャッシュでは、タグエントリとデータエントリとの間に予め構成された１対１の対応がある。ダイレクトマッピング構成では、それぞれアドレスは、１つの可能なエントリ（タグメモリ６２及びデータメモリ６４）を、対応するキャッシュラインが記憶されるシステムキャッシュ６０内にマッピングする。一実施形態では、システムキャッシュ６０はアソシエイティブとすることができ、所与のアドレスは、キャッシュラインを記憶するのに適し得るデータメモリ６４内の２つ又はそれ以上のキャッシュライン記憶ロケーションにマッピングする。システムキャッシュ６０はセットアソシエイティブとすることができ、それぞれのアドレスは、（キャッシュの結合性（associativity）によって決まる）２つ又はそれ以上の考えられるエントリにマッピングする。一実施形態では、Ｎキャッシュライン記憶ロケーションは、インデックスとして参照されるアドレスビットの下位集合内に同じ値を有するアドレスにマッピングされており、ここでＮは１より大きく、かつデータメモリ６４内のキャッシュライン記憶ロケーションの合計数未満の１つの整数である。所与のインデックスに対応するセットを形成するＮキャッシュライン記憶ロケーションは多くの場合に、「ウェイ（way）」として参照される。他の実施形態はフルアソシエイティブとすることができ、任意のキャッシュライン記憶ロケーションは、任意のアドレスにマッピングされることができる。
【００４５】
キャッシュ制御ユニット６６は、データエントリをデータメモリ６４内に動的に割り付けることができ、システムキャッシュ６０により受信したトランザクションに対するデータを記憶する。このトランザクションは、例えばメモリへの書き込みとすることができる。このトランザクションはまた、要求エージェントから以前に受信し、メモリを対象とした読み込みに応じて、メモリ（図示せず）から提供された（データを伴う）読み込み完了とすることができる。
【００４６】
一実施形態では、システムキャッシュ６０により要求エージェントから受信したそれぞれのトランザクションは、グループＩＤ番号、キャッシュ割り付けヒント、及び１つ又はそれ以上の他の属性を含むことができる。キャッシュ割り付けヒントは、システムキャッシュ６０及びキャッシュ制御ユニット６６によって利用されることができ、トランザクションがシステムキャッシュ６０内にてミスした場合に、キャッシュラインをトランザクションに対してどのように割り付けるかを決定する。新規のキャッシュラインがトランザクションに対して割り付けられている場合は、グループＩＤ番号は、タグメモリ６２内の対応するエントリ内に記憶されてもよい。
【００４７】
一実施形態では、キャッシュ制御ユニット６６は、利用できるエントリが要求エージェントからのスティッキートランザクションの受信に応じてデータメモリ６４内にあるかを判定することができる。トランザクションがスティッキーかつキャッシュミスであり、利用できる非スティッキーエントリがデータメモリ６４内にある場合は、新規スティッキーエントリがトランザクションに対して割り付けられてもよく、利用できる非スティッキーエントリを置き換える。トランザクションがスティッキーであり、非スティッキーエントリに対するキャッシュヒットである場合は、非スティッキーエントリはこのヒットによりスティッキーに変換され得ない。別のシナリオでは、非スティッキートランザクションがスティッキーエントリにヒットする場合は、スティッキーエントリはスティッキーのままとされ得る。
【００４８】
タグメモリ６２は、システムキャッシュ６０内にキャッシュされたキャッシュラインに対する様々なタグを記憶するよう構成されることができる。例えば、一実施形態では、タグは、コヒーレンス状態、スティッキー状態、ダーティインジケータ、最長期間未使用の（ＬＲＵ）データ、グループ識別（ＩＤ）、及び他のデータを含むことができる。実施形態により、これらのタグの一部又はすべては、タグメモリ６２のそれぞれのエントリ内に含まれることができる。
【００４９】
一実施形態では、キャッシュラインは、特定の要求エージェントによって非スティッキートランザクションに最初に割り付けられることができる。キャッシュラインが最初に割り付けられた特定の要求エージェントは、そのラインの主ユーザーとみなすことができる。他のグループＩＤによるこのエントリに対する任意の後続のヒットは二次的なユーザーとみなすことができ、したがって、元の非スティッキー状態は、キャッシュラインに対する後続のヒットがスティッキートランザクションに対するものである場合でも、キャッシュラインに対して維持されることができる。
【００５０】
一実施形態では、第１のグループＩＤに対して割り付けられたスティッキー状態を伴うキャッシュラインは、第２のグループＩＤに対するスティッキートランザクションによりヒットされ得る。このシナリオでは、キャッシュラインに対応するタグエントリのグループＩＤは、第２のグループＩＤに変更されてもよい。言い換えると、第２のグループＩＤは、第１のグループＩＤからのキャッシュラインを受け継ぐことができる。キャッシュラインを受け継ぐこのメカニズムは、特定のグラフィックス処理アプリケーションにおいて、以前のフレームに対するデータが次のフレームに対して再度使用され得る場合に有用となり得る。このデータの再使用を促進するため、キャッシュラインの所有権は、第１のグループＩＤから第２のグループＩＤに移されてもよい。
【００５１】
いくつかの実施形態では、キャッシュラインの所有権は、第１のグループＩＤから第２のグループＩＤへ、キャッシュ制御ユニット６６に送信されたソフトウェアコマンドを介して移されることができる。ソフトウェアコマンドは、第１のグループＩＤに割り当てられているすべてのキャッシュラインが第２のグループＩＤに移されることを指定することができる。この機能は、グラフィックスアプリケーションを含む、多くのアプリケーションにて有益であることを証明することができる。
【００５２】
ここで図４を参照すると、一対のタグメモリウェイの一実施形態のブロック図が示されている。タグメモリウェイ７０Ａ〜Ｂは、（図３の）タグメモリ６２などのタグメモリ内に含まれ得る任意の数のウェイを表す。一実施形態では、それぞれのタグメモリウェイ７０Ａ〜Ｂは、対応するデータメモリウェイ内に記憶されたキャッシュラインに対応するデータに対する任意の数のエントリを含むことができる。それぞれのタグメモリウェイ７０Ａ〜Ｂに、サンプルエントリを示す。
【００５３】
それぞれのタグエントリは、入力要求アドレスに対して比較されるアドレス（タグアドレス７２Ａ〜Ｂ）のタグ部分を含むことができる。タグアドレス７２Ａ〜Ｂは、受信したトランザクションに対する実アドレスフィールドの最上位ビットを含むことができる。タグアドレス７２フィールドに使用するビット数は、実施形態によって異なってもよい。状態７４Ａ〜Ｂは、データメモリ内に記憶された対応するキャッシュラインの状態を表すことができる。これらは、実施形態によって異なる、状態７４Ａ〜Ｂが採り得る複数の異なる値でもよい。例えば、一実施形態では、異なる考えられる状態は、次の、無効（invalid）、クリーン（clean）、ダーティ（dirty）、データペンディング（data pending）、スティッキークリーン（sticky clean）、スティッキーダーティ（sticky dirty）、及びＬＲＵダーティ（LRU dirty）を含むことができる。キャッシュラインのクリーン／ダーティステータスは、要求エージェントによってシステムキャッシュへのトランザクションと共に運ばれることができる。要求エージェントはまた、トランザクションのスティッキーステータスに対して、ヒントを提供することができる。データペンディング状態は、キャッシュラインに対するデータが現在、メモリからフェッチされていることを示すことができる。無効状態を伴う任意のエントリは、新規ラインがシステムキャッシュに割り付けられる場合に、置き換えに対する最良の候補として選択されることができる。置き換えに対する次善の候補は、ＬＲＵダーティ状態を伴う任意のエントリとすることができる。別の実施形態では、タグメモリウェイ７０Ａ〜Ｂ内のそれぞれエントリはスティッキーフラグ又はスティッキービットを含むことができ、これは、エントリが、状態フィールドではなくて、スティッキーであるかを示すことができることに注意されたい。
【００５４】
トランザクションの生成に責任を負う要求エージェントは、対応するタグエントリに割り当てられる状態を決定するトランザクションと共にヒントを運ぶことができる。このヒントは、トランザクションに関連付けられたデータがシステムキャッシュ内に記憶されているかを決定することができる。例えば、１つのシナリオでは、トランザクションに伴うヒントは、トランザクションがスティッキーであることを特定のトランザクションに対して示すことができる。トランザクションがスティッキーヒントを伴い、トランザクションがシステムキャッシュ内にてミスしている場合には、データはメモリから取得され、スティッキーにセットされたタグ状態７４を伴ってシステムキャッシュ内に割り付けられることができる。状態をスティッキーに設定することは、このデータがキャッシュ内に「スティック（stick）」し、システムキャッシュによって抜去されないことを示す。別のスティッキートランザクションに対する異なるグループＩＤからのデータがシステムキャッシュ内のスペースに割り付けられるよう試みられた場合は、このデータは、他のグループＩＤからスティッキーラインを置き換えられることが防止される。
【００５５】
一実施形態では、スティッキーデータを抜去する唯一の方法は、システムキャッシュに対して、特定のグループＩＤに対する特定のスティッキーデータが抜去されてもよいことを示すソフトウェアコマンドを受信することである。別の実施形態では、第１のグループＩＤに対するスティッキーデータは、対応する構成レジスタの設定に基づいて、第１のグループＩＤからの他のスティッキーデータによって、システムキャッシュから抜去されてもよい。特定のグループＩＤに対する構成レジスタの設定が、このグループＩＤがスティッキーラインを他のスティッキーラインと置き換え得ることを示す場合は、スティッキーラインは、このグループＩＤに対する別のスティッキーラインによって置き換えられることができる。この設定は、スティッキー構成オプションとして参照されることができる。
【００５６】
いくつかの実施形態では、スティッキーラインの所有権は、１つのグループＩＤから別のグループＩＤへ移されてもよい。この所有権の移送は、データが第１のグループＩＤによって最初に使用され、続いて第２のグループＩＤによって後に使用され得る様々なシナリオにて利用されることができる。例えば、グラフィックスアプリケーションでは、１つのフレームを構築するために特定のデータが使用されてもよい。第１のグループＩＤを使用する第１のエージェントは、このグラフィックスフレームに対して最初にデータを割り付けることができる。続いて、第２のグループＩＤを使用する第２のエージェントは、グラフィックスアプリケーションの次のフレームに対してこのデータを再使用することができる。ソフトウェアは、フレームデータの所有権を第１のグループＩＤから第２のグループＩＤに移す要求を生成することができる。システムキャッシュはこのソフトウェア要求を受信することができ、結果として、データをスティッキーとして維持した状態で、第１のグループから第２のグループに所有権を渡すことができる。また、３次元（３Ｄ）グラフィックスアプリケーションの現在のフェーズにおいて使用されるテクスチャは、次のフェーズに対して再使用されてもよい。各３Ｄフェーズとの間には特定の境界タイルといった重複があってもよく、これらのタイルは、連続したフェーズに対する各グループＩＤとの間で移送されてもよい。各グループＩＤとの間のキャッシュラインの所有権の移送はまた、単にグラフィックスアプリケーションだけでなく、様々な他のアプリケーションにて起こってもよい。
【００５７】
スティッキー状態を伴うシステムキャッシュ内へのラインの割り付けは結果として、スティッキーラインへの各アクセスの間の時間総量がたとえ大きくても、このラインがシステムキャッシュ内に保持されることとなる。例えば、特定のデータは頻繁にアクセスされ得るが、各アクセスとの間の期間は長くともよい。このデータは、スティッキーにセットされた状態７４を伴って、システムキャッシュ内に置かれてもよい。したがって、このデータは各アクセスとの間の期間がどれほど長いかに関わらず、システムキャッシュ内に維持される。例えば、第１のキャッシュラインはスティッキーとしてシステムキャッシュ内に割り付けられることができ、キャッシュ内のすべての他のラインが置き換えられるか、又は第１のキャッシュラインが再度アクセスされる前に少なくとも一度アクセスされるかのいずれとなり得るように時間が経過してもよい。新規のラインがキャッシュ内に割り付けられる必要がある場合は、たとえ非スティッキーラインが第１のキャッシュラインよりも最近にアクセスされていても、新規のラインは、キャッシュ内の非スティッキーラインの１つと置き換わる。第１のキャッシュラインは、たとえそれがキャッシュ内に最長期間未アクセスのラインであっても、キャッシュ内に残ることができる。これは、最近アクセスされたラインがキャッシュ内に保持されている従来のキャッシュとは反対であり、長期間未アクセスのラインは置き換えられる。
【００５８】
ＬＲＵ  ７６Ａ〜Ｂフィールドは、対応するラインに関連付けられた使用ステータスを示す値を記憶することができる。このＬＲＵ  ７６Ａ〜Ｂフィールドは、対応するラインがどれほど最近に、及び／又はどれほど頻繁にアクセスされたかを示すことができ、このフィールド内のビット数は、実施形態によって異なり得る。グループＩＤ  ７８Ａ〜Ｂフィールドは、システムキャッシュのデータメモリ内に、対応するラインを所有するグループを同定するグループＩＤを記憶することができる。グループは、１つ又はそれ以上の要求エージェントによって使用されている特定のデータフローを参照することができる。「グループＩＤ」はまた、いくつかの実施形態では「データセットＩＤ」として参照され得ることに注意されたい。実施形態により、グループＩＤを表すことに様々なビット数が利用されてもよい。グループＩＤ  ７８Ａ〜Ｂフィールドは、対応するキャッシュラインに関連付けられたグループＩＤが追加されてもよい。
【００５９】
場合によっては、単一のグループＩＤは２つ又はそれ以上の要求エージェントによって共有されてもよい。例えば、ページング変換テーブルは複数の要求エージェントによって利用されてもよく、ページング変換テーブルを参照する任意のトランザクションは、共通のグループＩＤを割り当てられてもよい。この共通のグループＩＤは、複数の要求エージェントにわたって使用されてもよい。また、それぞれの要求エージェントは、複数の別々のグループＩＤを、要求エージェントによって利用されている異なるデータフローに対して使用することができる。グループＩＤは、ホスト電子デバイスのＯＳによって、１つ又はそれ以上の要求エージェントに対するデータフローに割り当てられることができる。一実施形態では、デバイスドライバは、ＯＳからグループＩＤを要求することができる。要求の一部として、デバイスドライバは、どのデータ型が要求に相当するかを同定することができる。続いて、デバイスドライバからの要求の受信に応じて、ＯＳは、アクセスされているデータ型に基づいて、この要求に使用されるグループＩＤを指定することができる。
【００６０】
グループＩＤによって表されたそれぞれのグループは、システムキャッシュ内のキャッシュラインの特定の割当量が割り当てられてもよい。グループがその割当量の合計量に到達すると、このグループは任意の更なるラインをシステムキャッシュ内に割り付けることができなくともよい。その代わり、特定のグループは、キャッシュ内のその既存のラインを、新規に割り付けられたラインと置き換えることができる。一実施形態では、所与のグループＩＤに対して置き換えられている第１のラインは、ＬＲＵダーティ状態を有するラインが続く、無効状態を有するラインとされ得る。
【００６１】
パリティ８０Ａ〜Ｂフィールドは任意の数のパリティビットを含むことができ、全フィールドにわたる全エントリ内のデータの精度の示度を提供する。他の実施形態では、タグメモリウェイ７０Ａ〜Ｂのそれぞれのエントリは、図４に示されていない情報の１つ又はそれ以上の更なるフィールドを含むことができる。例えば、キャッシュラインがどれほど最近に置き換えられたかについての情報はまた、タグメモリウェイ７０Ａ〜Ｂのそれぞれのタグ内に記憶されることができる。また、他の実施形態では、タグメモリウェイ７０Ａ〜Ｂは、任意の他の適当な様式にて構造化されることができる。
【００６２】
図５をここで参照すると、要求をシステムキャッシュに運ぶ要求エージェントの一実施形態が示されている。要求エージェント９０は、任意の数及び種類の要求エージェントを表す。要求エージェント９０はメモリコントローラ１１０への直接の送信要求９２として示されているが、１つ又はそれ以上の構成要素（例えば、コヒーレントポイント、スイッチ）が、要求エージェント９０とメモリコントローラ１１０との間に位置し得ることに注意されたい。
【００６３】
要求エージェント９０から送信されたそれぞれの要求は、複数のフィールドを含むことができる。例えば、一実施形態では、要求９２は、送信されている要求の種類（例えば、読み込み、書き込み）を示すコマンド９４を含むことができる。要求９２はまた、要求９２に関連付けられたトランザクションＩＤを示すトランザクションＩＤ  ９６を含むことができる。トランザクションＩＤ  ９６は、要求エージェント９０に対する要求を一意的に同定することができる。トランザクションＩＤ  ９６はまた、「要求ＩＤ」として参照され得ることにも注意されたい。更に、他の実施形態では、要求９２はまた、要求エージェントを同定するエージェントＩＤを含むことができる。要求９２はまた、（書き込み要求に対する）メモリアドレス及びデータをそれぞれ同定するアドレス９８及びデータ１００フィールドを含むことができる。
【００６４】
要求９２はまた、書き込みデータがダーティであるかを示すダーティ状態標識１０２を含むことができる。要求９２はまた、要求９２のグループＩＤを同定するグループＩＤ  １０４を含むことができる。割り付けヒント１０６は、要求９２がシステムキャッシュ１１２によってどのように扱われているかを決定することができる。他の実施形態では、割り付けヒント１０６は、「スティッキーヒント」、「スティッキーフラグ」、「スティッキービット」、又は「スティッキー属性」として参照されることができる。他の属性１０８は、要求９２の一部とすることができる任意の数及び種類の更なる属性（例えば、コヒーレンシー、ＱｏＳ、要求のサイズ、リクエスタＩＤ）を表す。
【００６５】
システムキャッシュ１１２は単一のユニットとして示されているが、他の実施形態では、システムキャッシュ１１２は、２つ又はそれ以上の別々のユニットに分離され得ることが理解されるべきである。例えば、メモリコントローラ１１０は２つのチャネルを含むことができ、システムキャッシュ１１２は、１つの論理システムキャッシュとして管理された２つの別々の物理的システムキャッシュに分離されてもよい。
【００６６】
ここで図６を参照すると、システムキャッシュ内のスティッキー抜去エンジンの一実施形態のブロック図が示されている。一実施形態では、スティッキー抜去エンジン１２４は、タグメモリの各インデックスをウォークスルーし、解除されているグループＩＤに属する、対応するキャッシュラインのスティッキー状態をクリアするよう構成されることができる。タグウェイ１２２Ａ〜Ｂは図６に示され、タグウェイ１２２Ａ〜Ｂは、タグメモリの任意の数のウェイを表す。タグウェイ１２２Ａ〜Ｂのそれぞれのエントリは、図が混乱することを回避するために図６に示されていないインデックス、状態フィールド、グループＩＤフィールド、及び１つ又はそれ以上の他のフィールドを含むことができる。
【００６７】
一実施形態では、スティッキー抜去エンジン１２４は、グループＩＤ  ２に属するキャッシュラインを解除するソフトウェアコマンドを受信することができる。エンジン１２４は、グループＩＤ  ２に対するテーブル１２６内の開始インデックス０のログを取ることができる。エンジン１２４はグループＩＤ  ２に対する解除要求を受信する前にアイドル状態であって、したがって、エンジン１２４は、タグメモリをウォークスルーする際に、インデックス０にて開始し得ることが、この説明の目的として想定されるであろう。
【００６８】
それぞれのインデックスにて、エンジン１２４は、その特定のインデックスにてそれぞれのウェイ１２２Ａ〜ＢにおいてのグループＩＤマッチを探すことができる。例えば、別の実施形態では、タグメモリは１６のウェイを含むことができ、各タグメモリインデックスのそれぞれのステップスルーでは、エンジン１２４は、クリアされているグループＩＤに対して、１６のウェイすべてのグループＩＤフィールドを比較することができる。エンジン１２４がマッチを見つけた場合、エントリの状態フィールドは、ＬＲＵダーティに変更されてもよい。別の実施形態では、エンジン１２４がマッチを見つけた場合、状態フィールドは、対応するキャッシュラインが置き換えに対する主な候補であることを特定する別の状態に変更されてもよい。例えば、一実施形態では、状態フィールドがダーティ（スティッキー又は非スティッキー）の場合はＬＲＵダーティに変更されてもよく、状態フィールドがクリーン（スティッキー又は非スティッキー）の場合は無効に変更されてもよい。対応するキャッシュラインを置き換えるべきであることを示す他の好適な技術が可能であり、想到される。エンジン１２４は、複数のマッチが見つかった場合に、単一のインデックスでの複数のウェイにおいて複数のエントリを変更し得ることに注意されたい。エンジン１２４は、テーブル１２６に示される開始インデックスに戻るまで、インデックスを継続してウォークスルーすることができる。
【００６９】
エンジン１２４が特定のエントリの状態フィールドをクリアすると、その特定のエントリの対応するキャッシュラインは直ちにはシステムキャッシュから抜去されなくともよい。むしろ、キャッシュラインは、要求がシステムキャッシュ内にてミスし、新規のキャッシュラインがこの要求に対して割り付けられているときは、ある将来の時点にて置き換えられてもよい。これは、クリア処理中に生成されたトラフィック量を低減することで、クリア処理を迅速に終了することを可能とする。いくつかの実施形態では、タグパイプラインは、クロックサイクル毎の単一のトランザクションの生成のみを可能としてもよい。クリア処理が、照合キャッシュラインを直ちにフラッシュするよう構成されていた場合は、これはクリア処理を遅らせ得る。例えば、単一のインデックスにて複数のエントリと共に複数のマッチが見つかった場合は、複数のダーティなキャッシュラインはフラッシュされてメモリに戻される必要がある。この場合、クリア処理は、ダーティなラインがフラッシュされるのを待つことで遅れが生じる。したがって、この種の遅延を回避するため、クリア処理はキャッシュラインを、置き換えに対する主な候補としてマークし、続いてタグメモリの次のインデックスに移動することができる。キャッシュ制御ユニットが後のある時点での置き換え候補を検索しているときは、キャッシュ制御ユニットは、置き換えに対する主な候補としてマークされたこれらのキャッシュラインの１つを置き換えることを好適とすることができる。
【００７０】
一実施形態では、割当量クリア方法は、システムキャッシュの構成レジスタ１２０に指定されてもよい。スティッキー抜去エンジン１２４は、レジスタ１２０に問い合わせることで、割当量クリア方法を決定することができる。割当量クリア方法がフラッシュにセットされている場合は、ダーティなキャッシュラインは、所与のグループＩＤをシステムキャッシュからクリアする際に、メモリに書き込まれることができる。割当量クリア方法がドロップにセットされている場合は、ダーティなキャッシュラインはメモリに書き戻されず、代わりに無効とされ得る。
【００７１】
構成レジスタ１２０はまた、グループＩＤ毎の割当量有効インジケータを含むことができる。一実施形態では、所与のグループＩＤに対してクリアランスプロセスを開始するため、ソフトウェアエージェントはコマンドを送ることができ、所与のグループＩＤに対する割当量有効インジケータをクリアする。システムキャッシュは割当量有効インジケータ上の遷移を検出することができ、続いてシステムキャッシュは、スティッキー抜去エンジン１２４を起動することができる。スティッキー抜去エンジンは続いて、構成レジスタ１２０に指定された割当量クリア方法に基づいて、所与のグループＩＤに対して割り付けられたすべてのキャッシュラインをクリアすることができる。割当量クリア方法がフラッシュにセットされている場合は、所与のグループＩＤに対するダーティなラインはＬＲＵダーティにセットされ、後にメモリに書き戻されることができる。割当量クリア方法がドロップにセットされている場合は、所与のグループＩＤに対するダーティなラインは無効とされることができる。所与のグループＩＤに対するすべてのラインがクリアされた後、構成レジスタ１２０内の所与のグループＩＤに対する割当量状態インジケータビットは０にクリアされることができる。クリア処理が依然として実行されている間にソフトウェアエージェントが割当量有効インジケータをセットする場合は、そのグループＩＤを伴う要求は、クリア処理が完了するまでシステムキャッシュ内に割り付けられ得ない。
【００７２】
図７をここで参照すると、スティッキー抜去エンジンの別の実施形態のブロック図が示されている。図７に示す例は、図６に示すスティッキー抜去エンジン１２４のインデックスウォークの続きである。スティッキー抜去エンジン１２４は、タグウェイ１２２Ａ内のエントリに示すように、インデックス４５に到達していてよい。エンジン１２４は、図６に示すように、インデックス０からインデックス４５にウォークスルーしていてよく、グループＩＤ  ２に対して受信した解除要求に基づき、グループＩＤ  ２とのマッチを検索する。０の開始インデックスは、グループＩＤ  ２に対するテーブル１２６に記録されることができる。
【００７３】
図７に示すように、スティッキー抜去エンジン１２４がグループＩＤ  ２を解除するためのインデックスウォークにてインデックス４５に到達すると、エンジン１２４は、グループＩＤ  ５に対する解除要求を受信することができる。これに応じて、エンジン１２４は、テーブル１２６の開始インデックスフィールド内のインデックス４５のその現在のロケーションのログを取ることができる。エンジン１２４はまた、構成レジスタ１２０に問い合わせることができ、グループＩＤ  ５に利用する特定の種類のクリアランスプロセスを決定する。続いて、エンジン１２４はタグウェイ１２２Ａ〜Ｂのそのウォークスルーを続けることができ、このときにはグループＩＤ  ２又は５とのマッチを検索する。
【００７４】
スティッキー抜去エンジン１２４がタグメモリウェイ１２２Ａ〜Ｂの最後のインデックスに到達すると、スティッキー抜去エンジン１２４はウェイ１２２Ａ〜Ｂの第１のインデックスまでラップアラウンドすることができ、インデックスウォークをそこから続けることができる。エンジン１２４はその時点でグループＩＤ  ２に対するキャッシュラインのクリア状態を停止することができるが、テーブル１２６にロギングされた開始インデックス（４５）に戻るまで、グループＩＤ  ５に対するキャッシュラインのクリア状態を続けることができる。エンジン１２４は、タグウェイ１２２Ａ〜Ｂのインデックスウォークスルーを行っている間に、任意の数の解除要求を受信することができることに注意されたい。エンジン１２４は、解除要求が受信されたそれぞれのグループＩＤに対する、テーブル１２６内の開始インデックスを記憶することができる。エンジン１２４は、任意の数の同時クリアランスプロセスを行うよう構成されてもよい。
【００７５】
ここで図８を参照すると、複数のグループＩＤに対するスティッキー状態を解除する方法１３０の一実施形態が示されている。説明のために、この実施形態での各ステップは、発生する順番に示されている。以下に説明する方法の様々な実施形態では、説明された１つ又はそれ以上の要素は、示されたものとは異なる順序にて同時に行われることができ、又は、全体が省略され得ることに注意するべきである。所望に応じて他の追加の要素が実行されてもよい。
【００７６】
一実施形態では、スティッキー抜去エンジンは、第１のグループＩＤに割り当てられたキャッシュラインに対するスティッキー状態を解除する要求を受信することができる（ブロック１３２）。この要求の受信に応じて、スティッキー抜去エンジンは、タグメモリの第１のエントリにて始まる、タグメモリへのステップスルーを開始することができる（ブロック１３４）。他の実施形態では、スティッキー抜去エンジンは、いくつかの他のエントリにて、タグメモリへのそのウォークスルーを始めることができる。それぞれのステップにて、エンジンは、タグが第１のグループＩＤに割り当てられている場合にタグのスティッキー状態をクリアすることができる（ブロック１３６）。一実施形態では、タグメモリは、マルチウェイ・セット・アソシエイティブ構成を有することができる。この実施形態では、エンジンは、それぞれのウェイにおけるタグのグループＩＤフィールドを読み込み、第１のグループＩＤに割り当てられた任意のタグのスティッキー状態をクリアすることができる。エンジンは、単一のインデックスでの１つを超えるタグが第１のグループＩＤに割り当てられている場合に、単一のステップでの複数のエントリのスティッキー状態をクリアすることができる。
【００７７】
第１のグループＩＤのスティッキー状態を解除する、タグメモリのウォークスルー中は、スティッキー抜去エンジンは、第２の解除要求を受信することができる（ブロック１３８）。第２の解除要求は、第２のグループＩＤに対するものとすることができ、システムキャッシュからそのキャッシュラインのすべてをクリアする。第２のグループＩＤに対する第２の解除要求の受信に応じて、エンジンは、タグメモリ内のエンジンの現在のロケーションのインデックスのログを取ることができる（ブロック１４０）。一実施形態では、このインデックスはテーブル内に記憶されることができ、このインデックスは第２のグループＩＤに関連付けられているものと同定されることができる。続いて、エンジンはタグメモリのそのウォークスルーを続けることができるが、ここでエンジンは、第１のグループＩＤ又は第２のグループＩＤのいずれかとのマッチを探すその検索を拡げることができる（ブロック１４２）。エンジンが第１又は第２のグループＩＤのいずれかとのマッチを見つけると、エンジンは、照合タグエントリのスティッキー状態をクリアすることができる（ブロック１４４）。一実施形態では、エンジンは、タグの状態をＬＲＵダーティに設定することで、照合タグエントリのスティッキー状態をクリアしてもよい。
【００７８】
エンジンがタグメモリの最後のエントリに到達すると（条件ブロック１４６、「はい」の分岐）、エンジンは、第１のグループＩＤに対してスティッキー状態クリア処理が完了したことの示度を生成することができる（ブロック１４８）。一実施形態では、エンジンは、構成レジスタ内の第１のグループＩＤに対するインアクティブに対して割当量状態インジケータをクリアすることで、スティッキー状態クリア処理の終了を信号伝達することができる。エンジンがタグメモリの最後のエントリに到達していない場合は、（条件ブロック１４６、「いいえ」の分岐）、エンジンは、第１のグループＩＤ又は第２のグループＩＤのいずれかとのマッチを探す、タグメモリのそのウォークスルーを続けることができる（ブロック１４２）。
【００７９】
ブロック１４８の後、エンジンは、タグメモリの第１のエントリまでラップアラウンドすることができる（ブロック１５０）。続いて、エンジンは、タグメモリのエントリへのステップスルーを続けることができるが、それぞれのエントリにて、エンジンは、第２のグループＩＤとのマッチのみを探すことができる（ブロック１５２）。エンジンが第２のグループＩＤとのマッチを見つけると、エンジンは照合タグエントリのスティッキー状態をクリアすることができる（ブロック１５４）。
【００８０】
エンジンが第２のグループＩＤに対する第２の解除要求の受信時にロギングされたインデックスに戻っている場合は（条件ブロック１５６、「はい」の分岐）、エンジンは、第２のグループＩＤに対するスティッキー状態クリア処理が完了したことを信号伝達することができる（ブロック１５８）。エンジンがロギングしたインデックスに戻っていない場合は（条件ブロック１５６、「いいえ」の分岐）、エンジンは、第２のグループＩＤとのマッチを探すためにタグメモリのそのウォークスルーを続けることができる（ブロック１５２）。ブロック１５８の後、方法１３０は終了することができる。
【００８１】
スティッキー抜去エンジンは、２つを超えるグループＩＤに対してスティッキークリア処理を同時に行うことができることに注意されたい。エンジンは、３つ又はそれ以上のグループＩＤに対する方法を、方法１３０と同様の様式にて利用することができる。エンジンがグループＩＤに対する解除要求を受信する毎に、エンジンは、エンジンの現在のロケーションのタグメモリのインデックスのログを取ることができる。続いて、エンジンは、ロギングしたインデックスに戻るまで、そのウォークスルーにてタグメモリをラップアラウンドすることができる。エンジンは、任意の数のグループＩＤに対する任意の数のインデックスのログを取ることができ、タグメモリへのそれぞれのステップスルーにて、複数の別々のグループＩＤを検索することができる。
【００８２】
次に図９を参照すると、システム１９０の一実施形態のブロック図が示されている。図示のように、システム１９０は、デスクトップコンピュータ２００、ラップトップコンピュータ２１０、タブレットコンピュータ２２０、携帯電話２３０、テレビジョン２４０（若しくは、テレビジョンに結合されるよう構成されたセットトップボックス）、又はその他のチップ、回路、構成要素、等を表すことができる。図示の実施形態では、システム１９０は、外部メモリ１９２に結合される（図２の）ＩＣ  ３０の少なくとも１つのインスタンスを含む。
【００８３】
ＩＣ  ３０は、１つ又はそれ以上の周辺装置１９４及び外部メモリ１９２に結合されている。ＩＣ  ３０に供給電圧を供給するとともに、メモリ１９２及び／又は周辺装置１９４に１つ以上の供給電圧を供給する電源１９６も提供されている。様々な実施形態では、電源１９６は、バッテリ（例えば、スマートフォン、ラップトップ又はタブレットコンピュータの充電式バッテリ）を表すことができる。実施形態によっては、ＩＣ  ３０の１つを超えるインスタンスが含まれてもよい（及び１つを超える外部メモリ１９２も含まれてよい）。
【００８４】
メモリ１９２は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３等）、ＳＤＲＡＭ（ｍＤＤＲ３などのモバイルバージョンのＳＤＲＡＭ、及び／又はＬＰＤＤＲ２などの低電力バージョンのＳＤＲＡＭを含む）、ＲＡＭＢＵＳ  ＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）などの任意のタイプのメモリであり得る。１つ以上のメモリデバイスを回路基板に結合して、シングルインラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）などのメモリモジュールを形成し得る。あるいは、デバイスは、チップ・オン・チップ構成、パッケージ・オン・パッケージ構成、又はマルチチップモジュール構成にてＩＣ  ３０に装着され得る。
【００８５】
周辺装置１９４は、システム１９０の種類に応じて、任意の所望の回路機構を含んでよい。例えば、一実施形態では、周辺機器１９４は、ＷｉＦｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、セルラー、全地球測位システムなどの様々なタイプの無線通信装置を含み得る。また、周辺機器１９４は、ＲＡＭ記憶装置、半導体ストレージ、又はディスクストレージなど、追加記憶装置を含み得る。周辺装置１９４は、タッチ表示画面又はマルチタッチ表示画面を含む表示画面、キーボード又はその他の入力デバイス、マイクロフォン、スピーカなど等のユーザインタフェースデバイスを含んでもよい。
【００８６】
上記の実施形態は、実現形態の非制限例のみであることが強調されるべきである。上述の開示が完全に理解されれば、当業者には数多くの変形及び変更が明らかになるであろう。添付の請求項はこのような変形及び変更をすべて包含するように解釈されることが意図されている。
【図１】
0005976225.tif 000002
【図２】
0005976225.tif 000003
【図３】
0005976225.tif 000004
【図４】
0005976225.tif 000005
【図５】
0005976225.tif 000006
【図６】
0005976225.tif 000007
【図７】
0005976225.tif 000008
【図８】
0005976225.tif 000009
【図９】
0005976225.tif 000010