JP6046277B2 - 書込み耐久性が限られたメモリのためのイントラセットウェアレベリングのための方法および装置 - Google Patents

書込み耐久性が限られたメモリのためのイントラセットウェアレベリングのための方法および装置 Download PDF

Info

Publication number
JP6046277B2
JP6046277B2 JP2015558211A JP2015558211A JP6046277B2 JP 6046277 B2 JP6046277 B2 JP 6046277B2 JP 2015558211 A JP2015558211 A JP 2015558211A JP 2015558211 A JP2015558211 A JP 2015558211A JP 6046277 B2 JP6046277 B2 JP 6046277B2
Authority
JP
Japan
Prior art keywords
cache
line
data
threshold
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015558211A
Other languages
English (en)
Other versions
JP2016510475A (ja
JP2016510475A5 (ja
Inventor
シアンユ・ドン
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2016510475A publication Critical patent/JP2016510475A/ja
Publication of JP2016510475A5 publication Critical patent/JP2016510475A5/ja
Application granted granted Critical
Publication of JP6046277B2 publication Critical patent/JP6046277B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本開示は一般に処理システムの態様に関し、詳細には書込み耐久性が限られたメモリの使用可能寿命を延長するための方法および装置に関する。
セル電話、ラップトップコンピュータ、パーソナルデータアシスタント(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 電源

Claims (19)

  1. キャッシュのウェアレベリングのための方法であって、
    前記キャッシュ内の書込み操作ごとに包括的計数器を増分するステップと、
    前記包括的計数器を閾値に到達させた現在の書込み操作に対応するデータのラインを前記キャッシュから退けるステップと、
    前記包括的計数器が前記閾値に到達したことに応答して、前記データのラインを次のレベルのキャッシュに書き込み、前記包括的計数器をリセットし、前記退けられたキャッシュラインを、前記キャッシュラインが最長時間未使用のキャッシュラインになるまで、空にしておくステップと
    を含む方法。
  2. 前記閾値が、前記包括的計数器の計数値出力と比較されるプログラム設定可能値であり、前記計数値出力と前記閾値が一致するときに前記比較により指示を提供する、請求項1に記載の方法。
  3. 次にアクセスされると、前記データのラインがすでに退けられているキャッシュラインとは異なるキャッシュ内のキャッシュラインに書き込まれる、請求項1に記載の方法。
  4. 前記データのラインが、前記キャッシュ内のウェイのアドレス指定されたセットのウェイから選択され、前記データのラインが、次にアクセスされると、ウェイの前記アドレス指定されたセットにおいて、前記データのラインが退けられたキャッシュラインとは異なるキャッシュラインに書き込まれる、請求項1に記載の方法。
  5. 前記包括的計数器をリセットするステップであって、それにより前記包括的計数器を初期化して後続するキャッシュ書込み監視期間に備えるステップ
    をさらに含む、請求項1に記載の方法。
  6. 前記キャッシュがレベル1キャッシュであり、また、前記次のレベルのキャッシュがレベル2キャッシュである、請求項1に記載の方法。
  7. 前記キャッシュがレベル2キャッシュであり、また、前記次のレベルのキャッシュがレベル3キャッシュである、請求項1に記載の方法。
  8. 前記包括的計数器を前記閾値に到達させた前記現在の書込み操作の影響を受けた前記データのラインに無効のマークを付けるステップであって、前記無効のマークによって前記データのラインが前記キャッシュから退けられるステップ
    をさらに含む、請求項1に記載の方法。
  9. キャッシュのウェアレベリングのための装置であって、
    前記キャッシュにデータを書き込む書込み操作を制御するプロセッサ複合体に結合された複数のウェイを有するキャッシュと、
    書込み閾値回路および包括的計数器回路であって、前記キャッシュへの各書込み操作を計数し、かつ、前記包括的計数器回路の包括的計数出力と閾値の比較に基づいて、前記包括的計数器回路が閾値に到達したときに指示を生成するように構成される書込み閾値回路および包括的計数器回路と、
    前記指示に応答して、現在の書込み操作に対応するデータのラインを前記キャッシュから退け、前記データのラインを次のレベルのキャッシュに書き込むように構成されるラインフラッシュ回路と、
    前記指示に応答して、前記退けられたキャッシュラインを、前記キャッシュラインが最長時間未使用のキャッシュラインになるまで、空にしておくように構成される置換ポリシー回路と
    を備える装置。
  10. 前記閾値が、前記包括的計数器回路の前記包括的計数出力と比較されるプログラム設定可能値であり、前記包括的計数出力と前記閾値が一致するときに前記比較により指示を提供する、請求項9に記載の装置。
  11. 前記閾値が、前記書込み閾値回路に記憶されるデフォルト値であり、動作中のプログラムに従って調整される、請求項10に記載の装置。
  12. 前記データのラインが、次にアクセスされると、すでに退けられているキャッシュラインとは異なるキャッシュラインに書き込まれる、請求項10に記載の装置。
  13. 前記データのラインが、前記キャッシュ内のウェイのアドレス指定されたセットのウェイから選択され、前記データのラインが、次にアクセスされると、ウェイの前記アドレス指定されたセットにおいて、前記データのラインが退けられたキャッシュラインとは異なるキャッシュラインに書き込まれる、請求項10に記載の装置。
  14. 前記包括的計数器回路を初期化して後続するキャッシュ書込み監視期間に備えるべく、前記包括的計数器回路がリセットされる、請求項10に記載の装置。
  15. 前記キャッシュとして構成されたレベル1キャッシュと、
    前記次のレベルのキャッシュとして構成されたレベル2キャッシュであって、前記データのラインが書き込まれるレベル2キャッシュと
    をさらに備える、請求項10に記載の装置。
  16. 前記キャッシュとして構成されたレベル2キャッシュと、
    前記次のレベルのキャッシュとして構成されたレベル3キャッシュであって、前記データのラインが書き込まれるレベル3キャッシュと
    をさらに備える、請求項10に記載の装置。
  17. 各キャッシュラインのタグに無効化ラインビットが含まれ、前記データのラインが確率的無効化されたデータのラインであり、前記データのラインの再使用を遅らせるべきであることを前記指示に応答して示す、請求項10に記載の装置。
  18. コンピュータ可読プログラムデータおよびコードを使用して符号化されたコンピュータ可読非一時的記憶媒体であって、前記プログラムデータおよびコードは、実行されると、
    キャッシュへの書込み操作ごとに包括的計数器を増分し、
    前記包括的計数器を閾値に到達させた現在の書込み操作に対応するデータのラインを前記キャッシュから退け、
    前記包括的計数器が前記閾値に到達したことに応答して、前記データのラインを次のレベルのキャッシュに書き込み、前記包括的計数器をリセットし、前記退けられたキャッシュラインを、前記キャッシュラインが最長時間未使用のキャッシュラインになるまで、空にしておく
    ように動作することができる、コンピュータ可読非一時的記憶媒体。
  19. キャッシュのウェアレベリングのための装置であって、
    プロセッサ複合体に結合された複数のウェイを有するキャッシュにデータを書き込むための手段と、
    前記キャッシュへの各書込み操作を計数し、かつ、包括的計数器が閾値に到達したときに指示を生成するための手段と、
    前記指示に応答して、現在の書込み操作に対応するデータのラインを前記キャッシュから退け、前記データのラインを次のレベルのキャッシュに書き込むための手段と、
    前記指示に応答して、前記退けられたキャッシュラインを、前記キャッシュラインが最長時間未使用のキャッシュラインになるまで、空にしておくための手段と
    を備える装置。
JP2015558211A 2013-02-19 2014-02-18 書込み耐久性が限られたメモリのためのイントラセットウェアレベリングのための方法および装置 Expired - Fee Related JP6046277B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/769,965 2013-02-19
US13/769,965 US9292451B2 (en) 2013-02-19 2013-02-19 Methods and apparatus for intra-set wear-leveling for memories with limited write endurance
PCT/US2014/016993 WO2014130483A1 (en) 2013-02-19 2014-02-18 Methods and apparatus for intra-set wear-leveling for memories with limited write endurance

Publications (3)

Publication Number Publication Date
JP2016510475A JP2016510475A (ja) 2016-04-07
JP2016510475A5 JP2016510475A5 (ja) 2016-07-21
JP6046277B2 true JP6046277B2 (ja) 2016-12-14

Family

ID=50277311

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015558211A Expired - Fee Related JP6046277B2 (ja) 2013-02-19 2014-02-18 書込み耐久性が限られたメモリのためのイントラセットウェアレベリングのための方法および装置

Country Status (6)

Country Link
US (1) US9292451B2 (ja)
EP (1) EP2959391B1 (ja)
JP (1) JP6046277B2 (ja)
KR (1) KR101668054B1 (ja)
CN (1) CN104981785B (ja)
WO (1) WO2014130483A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104254841A (zh) * 2012-04-27 2014-12-31 惠普发展公司,有限责任合伙企业 屏蔽存储器设备
US9348743B2 (en) 2013-02-21 2016-05-24 Qualcomm Incorporated Inter-set wear-leveling for caches with limited write endurance
US9176856B2 (en) * 2013-07-08 2015-11-03 Arm Limited Data store and method of allocating data to the data store
US10331537B2 (en) * 2016-12-23 2019-06-25 Advanced Micro Devices, Inc. Waterfall counters and an application to architectural vulnerability factor estimation
JP2018160060A (ja) 2017-03-22 2018-10-11 東芝メモリ株式会社 メモリシステム
US11074018B2 (en) * 2017-04-06 2021-07-27 International Business Machines Corporation Network asset management
US10592451B2 (en) 2017-04-26 2020-03-17 International Business Machines Corporation Memory access optimization for an I/O adapter in a processor complex
US10572286B2 (en) 2017-04-26 2020-02-25 International Business Machines Corporation Memory access optimization in a processor complex

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1294489A (en) 1970-05-12 1972-10-25 Solartron Electronic Group Linearizing circuit
US3772595A (en) 1971-03-19 1973-11-13 Teradyne Inc Method and apparatus for testing a digital logic fet by monitoring currents the device develops in response to input signals
US7035967B2 (en) 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US7046174B1 (en) 2003-06-03 2006-05-16 Altera Corporation Byte alignment for serial data receiver
US8112574B2 (en) 2004-02-26 2012-02-07 Super Talent Electronics, Inc. Swappable sets of partial-mapping tables in a flash-memory system with a command queue for combining flash writes
US7237067B2 (en) * 2004-04-22 2007-06-26 Hewlett-Packard Development Company, L.P. Managing a multi-way associative cache
US7568068B2 (en) * 2006-11-13 2009-07-28 Hitachi Global Storage Technologies Netherlands B. V. Disk drive with cache having volatile and nonvolatile memory
US9153337B2 (en) 2006-12-11 2015-10-06 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system
JP4470186B2 (ja) 2006-12-12 2010-06-02 エルピーダメモリ株式会社 半導体記憶装置
US20100115175A9 (en) 2006-12-18 2010-05-06 Zhiqing Zhuang Method of managing a large array of non-volatile memories
US8543742B2 (en) 2007-02-22 2013-09-24 Super Talent Electronics, Inc. Flash-memory device with RAID-type controller
FR2913785B1 (fr) 2007-03-13 2009-06-12 St Microelectronics Sa Gestion de memoire tampon circulaire
KR100857761B1 (ko) 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
US7934052B2 (en) 2007-12-27 2011-04-26 Pliant Technology, Inc. System and method for performing host initiated mass storage commands using a hierarchy of data structures
US8095724B2 (en) 2008-02-05 2012-01-10 Skymedi Corporation Method of wear leveling for non-volatile memory and apparatus using via shifting windows
US8275945B2 (en) 2008-02-05 2012-09-25 Spansion Llc Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer
US20100185816A1 (en) 2009-01-21 2010-07-22 Sauber William F Multiple Cache Line Size
US8255613B2 (en) 2009-04-30 2012-08-28 International Business Machines Corporation Wear-leveling and bad block management of limited lifetime memory devices
JP2012013733A (ja) 2010-06-29 2012-01-19 Renesas Electronics Corp 表示装置の駆動回路
US8356153B2 (en) 2010-11-19 2013-01-15 International Business Machines Corporation Adaptive wear leveling via monitoring the properties of memory reference stream
US20120311228A1 (en) * 2011-06-03 2012-12-06 Advanced Micro Devices, Inc. Method and apparatus for performing memory wear-leveling using passive variable resistive memory write counters
WO2012163027A1 (zh) * 2011-10-27 2012-12-06 华为技术有限公司 控制缓存映射的方法及缓存系统
JP2014530422A (ja) * 2011-10-27 2014-11-17 ▲ホア▼▲ウェイ▼技術有限公司 バッファマッピングを制御するための方法およびバッファシステム
US9665233B2 (en) * 2012-02-16 2017-05-30 The University Utah Research Foundation Visualization of software memory usage
US9348743B2 (en) 2013-02-21 2016-05-24 Qualcomm Incorporated Inter-set wear-leveling for caches with limited write endurance

Also Published As

Publication number Publication date
US9292451B2 (en) 2016-03-22
CN104981785B (zh) 2018-01-23
EP2959391A1 (en) 2015-12-30
JP2016510475A (ja) 2016-04-07
KR101668054B1 (ko) 2016-10-20
WO2014130483A1 (en) 2014-08-28
CN104981785A (zh) 2015-10-14
KR20150121046A (ko) 2015-10-28
EP2959391B1 (en) 2017-05-17
US20140237191A1 (en) 2014-08-21

Similar Documents

Publication Publication Date Title
JP6046277B2 (ja) 書込み耐久性が限られたメモリのためのイントラセットウェアレベリングのための方法および装置
US10521003B2 (en) Method and apparatus to shutdown a memory channel
US11200176B2 (en) Dynamic partial power down of memory-side cache in a 2-level memory hierarchy
KR101826073B1 (ko) 메모리 관리를 위한 캐시 동작들
US10719443B2 (en) Apparatus and method for implementing a multi-level memory hierarchy
US10102126B2 (en) Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
US9286205B2 (en) Apparatus and method for phase change memory drift management
US20210056030A1 (en) Multi-level system memory with near memory capable of storing compressed cache lines

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160601

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160601

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160601

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160926

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161017

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161116

R150 Certificate of patent or registration of utility model

Ref document number: 6046277

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees