(57)【特許請求の範囲】
【請求項１】
キャッシュのウェアレベリングのための方法であって、
前記キャッシュ内の書込み操作ごとに包括的計数器を増分するステップと、
前記包括的計数器を閾値に到達させた現在の書込み操作に対応するデータのラインを前記キャッシュから退けるステップと、
前記包括的計数器が前記閾値に到達したことに応答して、前記データのラインを次のレベルのキャッシュに書き込み、前記包括的計数器をリセットし、前記退けられたキャッシュラインを、前記キャッシュラインが最長時間未使用のキャッシュラインになるまで、空にしておくステップと
を含む方法。
【請求項２】
前記閾値が、前記包括的計数器の計数値出力と比較されるプログラム設定可能値であり、前記計数値出力と前記閾値が一致するときに前記比較により指示を提供する、請求項1に記載の方法。
【請求項３】
次にアクセスされると、前記データのラインがすでに退けられているキャッシュラインとは異なるキャッシュ内のキャッシュラインに書き込まれる、請求項1に記載の方法。
【請求項４】
前記データのラインが、前記キャッシュ内のウェイのアドレス指定されたセットのウェイから選択され、前記データのラインが、次にアクセスされると、ウェイの前記アドレス指定されたセットにおいて、前記データのラインが退けられたキャッシュラインとは異なるキャッシュラインに書き込まれる、請求項1に記載の方法。
【請求項５】
前記包括的計数器をリセットするステップであって、それにより前記包括的計数器を初期化して後続するキャッシュ書込み監視期間に備えるステップ
をさらに含む、請求項1に記載の方法。
【請求項６】
前記キャッシュがレベル1キャッシュであり、また、前記次のレベルのキャッシュがレベル2キャッシュである、請求項1に記載の方法。
【請求項７】
前記キャッシュがレベル2キャッシュであり、また、前記次のレベルのキャッシュがレベル3キャッシュである、請求項1に記載の方法。
【請求項８】
前記包括的計数器を前記閾値に到達させた前記現在の書込み操作の影響を受けた前記データのラインに無効のマークを付けるステップであって、前記無効のマークによって前記データのラインが前記キャッシュから退けられるステップ
をさらに含む、請求項1に記載の方法。
【請求項９】
キャッシュのウェアレベリングのための装置であって、
前記キャッシュにデータを書き込む書込み操作を制御するプロセッサ複合体に結合された複数のウェイを有するキャッシュと、
書込み閾値回路および包括的計数器回路であって、前記キャッシュへの各書込み操作を計数し、かつ、前記包括的計数器回路の包括的計数出力と閾値の比較に基づいて、前記包括的計数器回路が閾値に到達したときに指示を生成するように構成される書込み閾値回路および包括的計数器回路と、
前記指示に応答して、現在の書込み操作に対応するデータのラインを前記キャッシュから退け、前記データのラインを次のレベルのキャッシュに書き込むように構成されるラインフラッシュ回路と、
前記指示に応答して、前記退けられたキャッシュラインを、前記キャッシュラインが最長時間未使用のキャッシュラインになるまで、空にしておくように構成される置換ポリシー回路と
を備える装置。
【請求項１０】
前記閾値が、前記包括的計数器回路の前記包括的計数出力と比較されるプログラム設定可能値であり、前記包括的計数出力と前記閾値が一致するときに前記比較により指示を提供する、請求項9に記載の装置。
【請求項１１】
前記閾値が、前記書込み閾値回路に記憶されるデフォルト値であり、動作中のプログラムに従って調整される、請求項10に記載の装置。
【請求項１２】
前記データのラインが、次にアクセスされると、すでに退けられているキャッシュラインとは異なるキャッシュラインに書き込まれる、請求項10に記載の装置。
【請求項１３】
前記データのラインが、前記キャッシュ内のウェイのアドレス指定されたセットのウェイから選択され、前記データのラインが、次にアクセスされると、ウェイの前記アドレス指定されたセットにおいて、前記データのラインが退けられたキャッシュラインとは異なるキャッシュラインに書き込まれる、請求項10に記載の装置。
【請求項１４】
前記包括的計数器回路を初期化して後続するキャッシュ書込み監視期間に備えるべく、前記包括的計数器回路がリセットされる、請求項10に記載の装置。
【請求項１５】
前記キャッシュとして構成されたレベル1キャッシュと、
前記次のレベルのキャッシュとして構成されたレベル2キャッシュであって、前記データのラインが書き込まれるレベル2キャッシュと
をさらに備える、請求項10に記載の装置。
【請求項１６】
前記キャッシュとして構成されたレベル2キャッシュと、
前記次のレベルのキャッシュとして構成されたレベル3キャッシュであって、前記データのラインが書き込まれるレベル3キャッシュと
をさらに備える、請求項10に記載の装置。
【請求項１７】
各キャッシュラインのタグに無効化ラインビットが含まれ、前記データのラインが確率的無効化されたデータのラインであり、前記データのラインの再使用を遅らせるべきであることを前記指示に応答して示す、請求項10に記載の装置。
【請求項１８】
コンピュータ可読プログラムデータおよびコードを使用して符号化されたコンピュータ可読非一時的記憶媒体であって、前記プログラムデータおよびコードは、実行されると、
キャッシュへの書込み操作ごとに包括的計数器を増分し、
前記包括的計数器を閾値に到達させた現在の書込み操作に対応するデータのラインを前記キャッシュから退け、
前記包括的計数器が前記閾値に到達したことに応答して、前記データのラインを次のレベルのキャッシュに書き込み、前記包括的計数器をリセットし、前記退けられたキャッシュラインを、前記キャッシュラインが最長時間未使用のキャッシュラインになるまで、空にしておく
ように動作することができる、コンピュータ可読非一時的記憶媒体。
【請求項１９】
キャッシュのウェアレベリングのための装置であって、
プロセッサ複合体に結合された複数のウェイを有するキャッシュにデータを書き込むための手段と、
前記キャッシュへの各書込み操作を計数し、かつ、包括的計数器が閾値に到達したときに指示を生成するための手段と、
前記指示に応答して、現在の書込み操作に対応するデータのラインを前記キャッシュから退け、前記データのラインを次のレベルのキャッシュに書き込むための手段と、
前記指示に応答して、前記退けられたキャッシュラインを、前記キャッシュラインが最長時間未使用のキャッシュラインになるまで、空にしておくための手段と
を備える装置。 
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に処理システムの態様に関し、詳細には書込み耐久性が限られたメモリの使用可能寿命を延長するための方法および装置に関する。
【背景技術】
【０００２】
セル電話、ラップトップコンピュータ、パーソナルデータアシスタント(PDA)、等々などの多くの携帯型製品は、通信プログラムおよび多重媒体プログラムなどのプログラムを実行する処理システムを利用している。そのような製品のための処理システムは、複数のプロセッサ、命令およびデータを記憶するための多重レベルのキャッシュおよびメモリを含んだ複合メモリシステム、コントローラ、通信インターフェースなどの周辺デバイス、およびたとえば単一チップ上に構成された固定機能論理ブロックを含むことができる。それと同時に、携帯型製品は、処理システムによる高性能動作をサポートし、かつ、機能の増加につれてますます増加するメモリ容量をサポートするためにしばしば要求される電池の形態の限られたエネルギー源を有している。電池寿命を改善するためには、これらの動作を可能な限り効率的に実施することが望ましい。しかしながらスタティックランダムアクセスメモリ(SRAM)および埋設ダイナミックランダムアクセスメモリ(eDRAM)などの共通メモリプラットフォームのスケーリングは、漏れ電力およびセル密度によってますます制約されている。そのような問題は、少ない総エネルギー消費で動作させるための有効な設計を使用して同じく開発されているパーソナルコンピュータ製品にまで及んでいる。
【０００３】
フラッシュメモリ、磁気抵抗ランダムアクセスメモリ(MRAM)、位相変化メモリ(PCM)、抵抗性RAM(ReRAM)、等々などの多くのメモリ技術は、メモリセルが使い古されて機能を停止し始める前にデバイスに対して実施することができる書込み操作の数に対する様々な限界を有している。空間的局所参照性および一時的局所参照性の原理に基づいて、高データ転送速度で動作するキャッシュなどのメモリは、プログラムからプログラムへのキャッシュラインアクセスにおける広範囲の可変性を示し、また、極めて速い書込みアクセス速度を経験するセルを有することがある。たとえば各セットが複数の選択可能キャッシュウェイに分割され、セット内の各ウェイがキャッシュラインを保持する複数のセットのデータを有するセットアソシエイティブキャッシュは、実行中のプログラムに応じて、各セット内で異なる書込みアクセスパターンを経験する。また、セット内のラインからラインへの書込みアクセス可変性は極めて大きくなることがあり、また、システムが動作している間、動的に変化することがある。
【０００４】
たとえば8ウェイセットアソシエイティブ64kバイトキャッシュは、1セットにつき8×32バイトキャッシュラインである256セットで構築することができ、また、ウェイごとに1本のキャッシュラインにアクセスすることができる。そのようなキャッシュは、セル電話、タブレット、ラップトップ、等々などの携帯型デバイス内のレベル1データキャッシュに使用することができる。プログラムXのための8ウェイセットアソシエイティブキャッシュでは、ウェイ2内のデータのラインに対する書込みアクセスは、ウェイ7などの異なるキャッシュウェイ内のデータのラインに対する書込みアクセスより何十倍も頻繁に生じることがある。したがってウェイ2のためのキャッシュの内部のメモリのラインは、ウェイ7内のメモリライン、およびウェイ2の書込みアクセス速度より遅い書込みアクセス速度を有するキャッシュ内のほとんどの他のラインよりはるかに早く機能を停止することがある。メモリ摩耗耐久性は、各レベルおよび各デバイスで程度は異なるが、レベル1キャッシュ、レベル2キャッシュおよびレベル3キャッシュなどのメモリハイアラーキの各レベル、フラッシュメモリおよびシステムメモリに影響を及ぼす。プロセッサがギガヘルツ(GHz)周波数で走っている場合、キャッシュは、キャッシュ内の特定のラインに対するものであってもよい多数の書込みアクセスを経験し、したがってアクセスのそのような局所参照性は、場合によってはシステムがキャッシュメモリの書込み限界に著しく速く近づく原因になることがある。何らかのキャッシュラインは、実行中のプログラムに応じて高い書込み操作を経験することになり、また、そのようなキャッシュラインホットスポットは前もっては分からないため、すべてのキャッシュラインを監視して、キャッシュセット内のどのキャッシュラインが影響を受けたかを決定し、かつ、再配置して摩耗を少なくすべきかどうかを決定するためのコストは、場合によっては禁止的である。
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示は、そのいくつかの態様の中でも、とりわけ、イントラセットウェアレベリングのためのより有効な方法および装置を提供することにより、書込み耐久性が限られたメモリの使用可能寿命が延長されることを認識している。そのような目的を達成するために、本発明の実施形態は、キャッシュのウェアレベリングのための方法を取り扱っている。計数器は、キャッシュへの書込み操作ごとに増分される。計数器を閾値に到達させた現在の書込み操作の影響を受けたラインはキャッシュから退けられる。現在の書込み操作の影響を受けたラインに対する現在の書込みは、計数器が閾値に達しているため、停止される。
【０００６】
別の実施形態は、キャッシュのウェアレベリングのための装置を取り扱っている。複数のウェイを有するキャッシュは、キャッシュにデータを書き込むプロセッサ複合体に結合される。書込み閾値回路および計数器回路は、キャッシュへの書込み操作を計数し、かつ、書込み閾値回路における比較に基づいて、計数器回路が閾値に到達したときに指示を生成するように構成される。ラインフラッシュ回路は、その指示に応答して、現在の書込み操作の影響を受けたラインをキャッシュから退けるように構成される。置換ポリシー回路は、その指示に応答して、現在ライン置換ポリシーポインタを変更するための更新を停止するように構成される。
【０００７】
別の実施形態は、コンピュータ可読プログラムデータおよびコードを使用して符号化されたコンピュータ可読非一時的媒体を取り扱っている。計数器は、キャッシュへの書込み操作ごとに増分される。計数器を閾値に到達させた現在の書込み操作の影響を受けたラインはキャッシュから退けられる。現在の書込み操作の影響を受けたラインへの現在の書込みは、計数器が閾値に達しているため、停止される。
【０００８】
さらに他の実施形態は、キャッシュのウェアレベリングのための装置を取り扱っている。プロセッサ複合体に結合された複数のウェイを有するキャッシュにデータを書き込むための手段が利用される。キャッシュへの書込み操作を計数し、かつ、計数器が閾値に到達したときに指示を生成するための手段が利用される。その指示に応答して、現在の書込み操作の影響を受けたラインをキャッシュから退けるための手段が利用される。その指示に応答して、現在ライン置換ポリシーポインタを変更するための更新を停止するための手段が利用される。
【０００９】
本発明の他の実施形態については、当業者には、本発明の様々な実施形態が実例として示され、かつ、説明されている以下の詳細な説明から容易に明らかになるであろうことは理解されよう。認識されるように、本発明は、すべて本発明の精神および範囲を逸脱することなく、他の異なる実施形態が可能であり、また、そのいくつかの詳細は、様々な他の点に関して修正が可能である。したがって図面および詳細な説明は、その性質が例証的なものであり、本発明を制限するものではないことを理解されたい。
【００１０】
添付の図面は、非制限の例として本発明の様々な態様を示したものである。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態を有利に使用することができる例示的キャッシュシステムを示す図である。
【図２】ウェアレベリングのための有利なプロセスを示す図である。
【図３】携帯型デバイスメモリシステムにおける摩耗耐久性を延長するように構成されるプロセッサ複合体を有する携帯型デバイスの特定の実施形態を示す図である。
【発明を実施するための形態】
【００１２】
添付の図面に関連して以下で示される詳細な説明には、本発明の様々な例示的実施形態を説明することが意図されており、本発明を実践することができる実施形態のみを示すことは意図されていない。詳細な説明は、本発明の完全な理解を提供するための特定の詳細を含む。しかしながら、本発明は、これらの特定の詳細がなくても実践することができることは当業者には明らかであろう。いくつかの例では、本発明の概念を明確にするために、よく知られている構造および構成要素は、ブロック図の形態で示されている。
【００１３】
図1は、本発明の実施形態を有利に使用することができる例示的メモリシステム100を示したものである。メモリシステム100は、キャッシュ102、たとえばデータキャッシュ、次のレベルのキャッシュ103、システムメモリ105およびプロセッサ複合体106を含む。システムメモリ105は、キャッシュ102中または次のレベルのキャッシュ103中では見出されない命令およびデータのためのアクセスを提供する。キャッシュ102および次のレベルのキャッシュ103は、プロセッサ複合体106と統合することができることに留意されたい。また、システムメモリ105は、プロセッサ複合体106と統合することも、またはプロセッサ複合体106に個別に結合することも可能である。プロセッサ複合体106は、二重プロセッサシステムまたは四重プロセッサシステムなどの1つまたは複数のプロセッサを含むことができる。キャッシュ102は、レベル1データキャッシュを示すNウェイセットアソシエイティブキャッシュとして示されており、また、この場合、次のレベルのキャッシュ103はレベル2(L2)キャッシュである。本明細書において説明されているウェアレベリング技法は、メモリハイアラーキの各レベルで使用されるメモリのタイプに応じて、L2キャッシュおよびレベル3(L3)キャッシュにも適用することができることに留意されたい。システムメモリ105は、概して、キャッシュ内で経験した形態とは異なる形態のウェアレベリングを経験する。キャッシュ102は、キャッシュ102内でウェアレベリングを実現するためのキャッシュ書込み計数器110、書込み閾値回路111、アドレスタグセレクタ回路114、ラインフラッシュ回路115および置換ポリシー回路116を有するキャッシュ制御回路108を備えている。また、キャッシュ102は、ウェイ1  1181、ウェイ2  1182、…、ウェイN  118Nを同じく備えている。各ウェイは、ウェイ1  1181内にタグ122およびライン123を備えるセットi  120などのセットを使用して構成され、各ウェイ1182…118Nも同様に構成される。
【００１４】
キャッシュのウェアレベリングのための技法は、キャッシュラインが重く書き込まれることになり、そのためにキャッシュ内の他のラインよりはるかに速く機能を停止する原因になる、キャッシュライン上の不平衡書込みトラフィックを取り扱う。また、限られた書込み耐久性を有するシステムメモリ105などの大容量メモリ内のメモリのブロックへの書込みトラフィックも、場合によっては同じく不平衡になり、そのためにメモリブロックが重く書き込まれ、大容量メモリ内の他のメモリブロックより早く機能を停止する原因になることに同じく留意されたい。書込み耐久性が限られたキャッシュにおけるウェアレベリングのこの問題を取り扱うために、キャッシュへの書込み操作を計数し、かつ、書込み閾値に到達したときに指示を生成する手段が提供される。たとえばキャッシュ書込み計数器110は、キャッシュ制御回路108の制御の下で、キャッシュ書込み操作ごとに計数を増分するように構成される。ラインフラッシュ閾値(FT:line-flush  threshold)とも呼ばれる書込み計数閾値に到達するか、または書込み計数閾値を超えると、現在の書込み操作中のキャッシュラインは、たとえばラインフラッシュ回路115によって提供されるように、ラインをフラッシュすることによってキャッシュから退けられる。概して、ラインは、そのラインが最長時間未使用(LRU:least  recently  used)ラインであることが示されると、キャッシュからフラッシュされ、したがって再書込みに利用することができる。FTに到達した場合、この現在の書込み操作のためのキャッシュライン置換操作に対する更新を停止するための手段が提供される。次いでキャッシュ書込み計数器110がリセットされ、次のキャッシュ書込み監視期間に備えて計数器が初期化される。退けられたキャッシュラインは次のレベルのキャッシュに書き込まれ、そのキャッシュラインが再びアクセスされると、いつでも、退けられたラインとは異なるキャッシュラインを示す置換ポリシーに基づいてキャッシュ内のラインにリロードされる。
【００１５】
詳細には、キャッシュラインがより下位のレベルのキャッシュから退けられると、そのキャッシュラインに無効のマークが付され、この無効ラインを新しいコンテントで満たすことができることを示す。キャッシュラインは、キャッシュラインに関連付けられているタグ内の有効ビットを無効状態に設定することによって無効のマークを付けることができる。標準操作で退けられるキャッシュラインは、概して、再書込みに利用することができるようにするために、最長時間未使用(LRU)ポリシーなどの置換ポリシーによって識別される。無効状態になると、頻繁に使用されるキャッシュラインには、その頻繁に使用されるキャッシュラインが同じキャッシュライン上で続いて生じるミスの上に再書込みされる可能性がある。退けられたキャッシュラインに対するこの再書込みの問題を回避するために、キャッシュ書込み計数器が計数閾値に到達するか、または計数閾値を超えると、現在ライン置換ポリシーポインタに対する更新が阻止され、ポインタは更新されない。置換ポリシーポインタが更新されないため、現在LRUポインタは、たとえば、退けられたラインとは異なるラインを指している。したがって退けられたキャッシュラインは、そのラインが真に最長時間未使用になるまでの間、空の状態を維持する。
【００１６】
たとえばキャッシュ102が書込み操作のために構成されている図1では、プロセッサ複合体106は、キャッシュ102にアドレス130を発行する。書込み操作に応答してアドレスタグ131が生成され、かつ、タグ比較回路124内で各ウェイ内のタグ、たとえばウェイ1  1181内のタグ122などと比較される。タグ比較が一致すると、タグ比較回路124は、キャッシュライン選択回路125にウェイへの経路、たとえばウェイ1  1181内のライン123に関連付けられている経路などを選択させ、選択されたライン123にデータ132が書き込まれる。また、ライン123中のデータが修正されたことを示す汚染ビットをタグ122に書き込むことも可能である。書込み操作ごとにキャッシュ書込み計数器110が増分される。書込み操作は、キャッシュ内の特定のウェイおよびラインにデータを書き込まなければならない場合に生成される、キャッシュ制御回路108の内部の書込み信号によって決定することができ、かつ、キャッシュ書込み計数器が増分される。別法としては、キャッシュ制御回路108は、内部コマンド復号操作を使用して、指令された操作が書込み操作を実施することになるか、または読出し操作を実施することになるかどうかを示すビット、すなわち内部信号状態を設定することができる。
【００１７】
キャッシュ書込み計数器110からの計数値は、書込み閾値回路111内のFTなどのプリセット閾値と比較される。閾値に到達するか、または閾値を超えるとラインフラッシュ回路115に通知され、選択されたラインへのデータの書込みではなく、現在の書込み操作のためのキャッシュラインがフラッシュされる。ウェイ1  1181内のライン123などの退けられたラインは、キャッシュ102がレベル1データキャッシュである場合、L2キャッシュなどの次のレベルのキャッシュ103に書き込まれる。代替実施形態では、退けられたラインは、キャッシュ102がL2キャッシュであり、また、プロセッサ複合体106がレベル1データキャッシュを含んでいる場合、L3キャッシュに書き込まれる。また、置換ポリシー回路116にも同じく通知され、最長時間未使用(LRU)などの置換ポリシーは更新されない。後に、退けられたキャッシュライン123がキャッシュ102に再書込みされる場合、キャッシュ制御回路108は、退けられたキャッシュライン123がセットi  120内の異なる位置、たとえばウェイ2  1182からウェイN  118Nまでの他のウェイのうちの1つのウェイ内のラインなどに書き込まれることを保証する。
【００１８】
キャッシュラインにプログラムを頻繁に書き込めば書き込むほど、プリセット閾値に到達するか、またはプリセット閾値を超えることによってキャッシュ書込み計数器が飽和すると、そのキャッシュラインが選択されることになる可能性が高くなる。このウェアレベリング技法は、動作期間にわたって確率的であり、ホットスポットキャッシュラインを退け、また、キャッシュアレイ全体にわたって著しく高度のウェアレベリングを提供する異なるキャッシュ位置にこれらのラインを再配置する。したがってキャッシュ書込みアクセスの包括的計数器を使用することにより、コストがかかる各キャッシュラインの監視を必要とすることなく、著しく高度のウェアレベリングが低コストで達成される。また、書込み計数閾値を設定可能にすることにより、動作プログラムに応じて閾値を動的に調整することができる。書込み計数閾値が小さければ小さいほど、ラインが無効になる頻度が高くなるため、閾値を動的に調整することにより、特定のプログラムまたはプログラムのセットへの適合が可能な、よりバランスが取れたイントラセット書込み分布を提供することができる。たとえば先行する動作プログラムと比較して、キャッシュ内におけるホットスポットの数が増加している新しいプログラムが実行されると、ホットスポットに対する書込み操作を少なくすることの優劣の差を改善し、延いてはそのキャッシュの摩耗耐久性を改善するために、そのキャッシュに対する書込み計数器閾値が低減される。
【００１９】
代替実施形態では、退けられたキャッシュラインを無効にし、かつ、退けられたラインのために置換ポリシーに対する更新を阻止する代わりに、追加ビットを各キャッシュラインのタグに追加し、このキャッシュラインが確率的無効化ラインであり、退けられたラインの再使用を遅らせるべきであることを示すことができる。LRUなどの置換ポリシーは、選択されたLRUラインがこのビットセットを有している場合、放逐のために異なるラインを選択することになる。確率的無効化ラインビットは、たとえば、そのキャッシュセットに対して所定の数だけ首尾よくキャッシュライン書込み操作が終了するとリセットすることができ、またはタイマの制御の下で所定の時間期間が経過するとリセットすることができる。
【００２０】
キャッシュユニット102は、独立型キャッシュチップまたは固定統合モジュールとして、書込み閾値回路111に閾値をロードするための制御134を受け取ることができる。制御134は、初期化時またはプロセッサ複合体106上で動作するプログラムによって決定される時間に閾値をロードするために使用される直列入力経路を含むことができる。閾値は、最初は、チップ上または固定統合モジュール上にハードコード化されたデフォルト閾値であってもよい。次いでデフォルト閾値は、書込み閾値回路111にロードされると、動作中のプログラムに従って調整することができる。代替実施形態では、性能低下モニタまたは摩耗有効性モニタなどのモニタは、キャッシュ102の外部のハードウェア、またはプロセッサ複合体106上で動作するプログラム中に符号化されたソフトウェアで実現される。次いで内部キャッシュ制御回路108は、書込み閾値回路111内の閾値を大きくすべきか、小さくすべきか、またはすでに設定されている状態と同じ状態を維持させるべきかを示す信号を1つまたは複数のそのようなモニタから受け取る。
【００２１】
図2は、ウェアレベリングのための有利なプロセス200を示したものである。ブロック202で書込み操作に対するキャッシュ操作が監視される。決定ブロック204でキャッシュ書込みが検出されたかどうかが決定される。キャッシュ書込み操作は、たとえば図1のキャッシュ制御回路108で決定することができる。キャッシュ書込み操作が識別されなかった場合、プロセス200はブロック202へ戻る。キャッシュ書込み操作が識別された場合、プロセス200はブロック206へ進行する。ブロック206でキャッシュ書込み計数器が増分される。ブロック208で、キャッシュ書込み計数器の計数値がプリセット閾値(FT)に等しいかどうか、または代替実施形態ではプリセット閾値(FT)を超えたかどうかが決定される。計数値がプリセット閾値FTに等しくないか、またはプリセット閾値FTを超えていないことが決定されると、プロセス200はブロック202へ戻る。計数値がプリセット閾値FTに等しいか、またはプリセット閾値FTを超えている場合、プロセス200はブロック210へ進行する。ブロック210でキャッシュ書込み計数器がリセットされ、監視されたキャッシュに書き込まれた可能性があるラインが代わりに次のレベルのキャッシュに書き込まれ、監視されたキャッシュ内のラインが無効にされ、また、置換ポリシーの更新がこの書込みのために阻止される。プロセス200はブロック202へ戻る。
【００２２】
図3は、デバイス300のメモリシステムにおいて、限られた摩耗耐久性を有するメモリの使用可能寿命を延長するように構成されるキャッシュコントローラ回路328を有するデバイス300の特定の実施形態を示したものである。デバイス300はワイヤレス電子携帯型デバイスであってもよく、ソフトウェア命令318を有するシステムメモリ312に結合されたプロセッサ複合体310を含む。システムメモリ312は、図1のシステムメモリ105を含むことができる。プロセッサ複合体310は、プロセッサ311、レベル1データキャッシュ(L1  Dキャッシュ)322、レベル1命令キャッシュ(L1  Iキャッシュ)324およびキャッシュコントローラ回路328を有する統合メモリサブシステム314を含むことができる。プロセッサ複合体310は、図1のプロセッサ複合体106を含むことができる。また、統合メモリサブシステム314は、レベル2(L2)ユニファイドキャッシュ326を含むことも可能である。L1  Dキャッシュ322は、図1のキャッシュ102を含むことができ、また、L2ユニファイドキャッシュ326は、図1の次のレベルのキャッシュ103を含むことができ、これらの各々は、限られた摩耗耐久性を有することができる。
【００２３】
統合メモリサブシステム314は、プロセッサ複合体310の中に含めることも、またはプロセッサ複合体310の外部の1つまたは複数の個別のデバイスまたは回路機構(図示せず)として実現することも可能である。実例では、プロセッサ複合体310は、ソフトウェア命令318に従って動作し、また、図1および図2に示されている任意の実施形態、または図1および図2に関連する任意の実施形態に従って動作する。たとえば図3に示されているように、L1  Iキャッシュ326、L1  Dキャッシュ322およびキャッシュコントローラ回路328は、プロセッサ複合体310内でアクセス可能であり、また、プロセッサ311は、統合メモリサブシステム314のメモリまたはシステムメモリ312に記憶されているデータまたはプログラム命令にアクセスするように構成される。
【００２４】
カメラインターフェース334はプロセッサ複合体310に結合されており、また、ビデオカメラ336などのカメラに同じく結合されている。表示コントローラ340は、プロセッサ複合体310および表示デバイス342に結合されている。また、符号器/復号器(CODEC)344も同じくプロセッサ複合体310に結合することができる。スピーカ346およびマイクロホン348はCODEC344に結合することができる。ワイヤレスインターフェース350は、プロセッサ複合体310およびワイヤレスアンテナ352に結合することができ、ワイヤレスアンテナ352は、このアンテナ352を介してワイヤレスデータが受け取られるように結合されており、また、ワイヤレスインターフェース350は、二重プロセッサ311に提供することができる。
【００２５】
プロセッサ311は、システムメモリ312からアクセスされる、非一時的コンピュータ可読媒体に記憶されている、実行してプロセッサ311などのコンピュータに図2のプロセス200などのプログラムを実行させることができるソフトウェア命令318を実行するように構成することができる。ソフトウェア命令318は、さらに、実行してプロセッサ311に、統合メモリサブシステム314のメモリおよびシステムメモリ312に対して読取りアクセスおよび書込みアクセスを実施する命令を処理させることができる。
【００２６】
特定の実施形態では、プロセッサ複合体310、表示コントローラ340、システムメモリ312、CODEC344、ワイヤレスインターフェース350およびカメラインターフェース334は、システムインパッケージまたはシステムオンチップデバイス304の中に含まれている。特定の実施形態では、入力デバイス356および電源358は、システムオンチップデバイス304に結合される。さらに、特定の実施形態では、図3に示されているように、表示デバイス342、入力デバイス356、スピーカ346、マイクロホン348、ワイヤレスアンテナ352、ビデオカメラ336および電源358は、システムオンチップデバイス304の外部に存在している。しかしながら、表示デバイス342、入力デバイス356、スピーカ346、マイクロホン348、ワイヤレスアンテナ352、ビデオカメラ336および電源358の各々は、システムオンチップデバイス304の構成要素、たとえば関連するインターフェースまたはコントローラなどに結合することも可能である。
【００２７】
本明細書において説明されている実施形態によるデバイス300は、セットトップボックス、娯楽ユニット、ナビゲーションデバイス、通信デバイス、パーソナルディジタルアシスタント(PDA)、固定位置データユニット、モバイル位置データユニット、モバイル電話、セルラー電話、コンピュータ、携帯型コンピュータ、タブレット、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、ディジタル音楽プレーヤ、携帯型音楽プレーヤ、ビデオプレーヤ、ディジタルビデオプレーヤ、ディジタルビデオディスク(DVD)プレーヤ、携帯型ディジタルビデオプレーヤ、データまたはコンピュータ命令を記憶し、もしくは検索する何らかの他のデバイス、またはそれらの何らかの組合せなどの様々な電子デバイスの中に組み込むことができる。
【００２８】
本明細書において開示されている実施形態に関連して説明されている様々な実例の論理ブロック、モジュール、回路、要素または構成要素は、汎用プロセッサ、ディジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラム可能論理構成要素、離散ゲートもしくはトランジスタ論理、離散ハードウェア構成要素、または本明細書において説明されている機能を実施するように設計されたそれらの何らかの組合せを使用して実現し、または実施することができる。プロセッサ311は汎用プロセッサであってもよく、または代替では、プロセッサ311は、従来のプロセッサ、ディジタル信号プロセッサ、マイクロコントローラもしくは状態マシンの組合せであってもよい。また、プロセッサ311は、計算構成要素の組合せ、たとえばDSPとマイクロプロセッサ、複数のマイクロプロセッサ、DSPコアと関連した1つまたは複数のマイクロプロセッサの組合せ、または所望の用途に適した何らかの他のそのような構成の組合せとして実現することも可能である。
【００２９】
本明細書において開示されている実施形態に関連して説明されている方法は、ハードウェア、プロセッサによって実行されるソフトウェアモジュールまたはそれらの2つの組合せで直接具体化することができる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取外し可能ディスク、CD-ROMまたは当分野で知られている非一時的記憶媒体の何らかの他の形態の中に常駐させることができる。非一時的記憶媒体は、プロセッサが非一時的記憶媒体から情報を読み取り、かつ、非一時的記憶媒体に情報を書き込むことができるようにプロセッサに結合することができる。代替では、非一時的記憶媒体はプロセッサに統合することができる。
【００３０】
図1のプロセッサ複合体106または図3のプロセッサ311は、たとえば、命令キャッシュを介して利用することができるようなプロセッサ311に局所的に直接関連付けられているか、または入力デバイス356もしくはワイヤレスインターフェース350を介してアクセスすることができるコンピュータ可読非一時的記憶媒体上に記憶されているウェアレベリングプログラムから選択される命令を含んだ命令を実行するように構成することができる。また、入力デバイス356またはワイヤレスインターフェース350も、プロセッサに局所的に直接関連付けられている、L1  Iキャッシュ324、L1  Dキャッシュ322、L2キャッシュ326などのメモリデバイス、または別のプロセッサのメモリからアクセスすることができるメモリデバイスに常駐しているデータにアクセスすることができる。コンピュータ可読非一時的記憶媒体は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、同期ダイナミックランダムアクセスメモリ(SDRAM)、フラッシュメモリ、リードオンリメモリ(ROM)、プログラマブルリードオンリメモリ(PROM)、消去可能プログラマブルリードオンリメモリ(EPROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、コンパクトディスク(CD)、ディジタルビデオディスク(DVD)、他のタイプの取外し可能ディスクまたは何らかの他の適切な非一時的記憶媒体を含むことができる。
【００３１】
本発明は、プロセッサシステムに使用するための実例の実施形態の文脈で開示されているが、当業者には、以上の説明および以下の特許請求の範囲と矛盾しない、広範囲にわたる様々な実施態様を使用することができることが認識されよう。たとえば固定機能実施態様は、本発明の様々な実施形態を利用することも可能である。
【符号の説明】
【００３２】
100  メモリシステム
102  キャッシュ
103  次のレベルのキャッシュ
105  システムメモリ
106  プロセッサ複合体
108  キャッシュ制御回路
110  キャッシュ書込み計数器
111  書込み閾値回路
114  アドレスタグセレクタ回路
115  ラインフラッシュ回路
116  置換ポリシー回路
1181  ウェイ1
1182  ウェイ2
118N  ウェイN
120  セットi
122  タグ
123  ライン
124  タグ比較回路
125  キャッシュライン選択回路
130  アドレス
131  アドレスタグ
314  統合メモリサブシステム
132  データ
134  制御
300  デバイス
304  システムオンチップデバイス
310  プロセッサ複合体
311  プロセッサ(二重プロセッサ)
312  システムメモリ
318  ソフトウェア命令
322  レベル1データキャッシュ(L1  Dキャッシュ)
324  レベル1命令キャッシュ(L1  Iキャッシュ)
326  レベル2(L2)ユニファイドキャッシュ
328  キャッシュコントローラ回路
334  カメラインターフェース
336  ビデオカメラ
340  表示コントローラ
342  表示デバイス
344  符号器/復号器(CODEC)
346  スピーカ
348  マイクロホン
350  ワイヤレスインターフェース
352  ワイヤレスアンテナ
356  入力デバイス
358  電源
【図１】
0006046277.tif 000002
【図２】
0006046277.tif 000003
【図３】
0006046277.tif 000004