JP6158265B2 - キャッシュメモリシステム - Google Patents

キャッシュメモリシステム Download PDF

Info

Publication number
JP6158265B2
JP6158265B2 JP2015183193A JP2015183193A JP6158265B2 JP 6158265 B2 JP6158265 B2 JP 6158265B2 JP 2015183193 A JP2015183193 A JP 2015183193A JP 2015183193 A JP2015183193 A JP 2015183193A JP 6158265 B2 JP6158265 B2 JP 6158265B2
Authority
JP
Japan
Prior art keywords
area
size
data
error
error rate
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.)
Active
Application number
JP2015183193A
Other languages
English (en)
Other versions
JP2017058953A (ja
Inventor
紘希 野口
紘希 野口
藤田 忍
忍 藤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2015183193A priority Critical patent/JP6158265B2/ja
Priority to US15/262,413 priority patent/US10360100B2/en
Publication of JP2017058953A publication Critical patent/JP2017058953A/ja
Application granted granted Critical
Publication of JP6158265B2 publication Critical patent/JP6158265B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • 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/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping

Landscapes

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

Description

本発明の実施形態は、不揮発メモリを備えたキャッシュメモリシステムに関する。
SRAM(Static Random Access Memory)は待機電力が大きく価格も高いことから、不揮発メモリを用いたキャッシュメモリが検討されている。不揮発メモリの中でも、MRAM(Magnetoresistive Random Access Memory)は、書換耐性が高く、セル面積も小さくて高集積化が可能であるが、アクセス速度の観点では、SRAMには及ばない。
また、MRAMなどの不揮発メモリは、構成材料の状態変化を利用してデータの論理を保持するため、アクセス回数、経年劣化、および温度や湿度などの環境変化により、誤りの発生率(以下、誤り率)が高くなる。
特開2003−131954号公報
本実施形態は、アクセス回数、経年劣化および環境変化により、不揮発メモリの誤り率が高くなっても、信頼性が低下しないようにしたキャッシュメモリシステムを提供するものである。
本実施形態では、読み書き可能なデータを格納する第1領域と、前記第1領域内のデータの誤りを訂正するための誤り訂正符号を格納する第2領域と、を有する不揮発メモリと、
前記誤り訂正符号を生成するとともに、前記誤り訂正符号を用いて前記第1領域内のデータの誤り訂正を行う誤り訂正器と、
前記第1領域内のデータの誤り率を検出する誤り率検出器と、
前記誤り率に基づいて、前記不揮発メモリ内の前記第2領域のサイズを調整する領域サイズ調整部と、を備えるキャッシュメモリシステムが提供される。
一実施形態のキャッシュメモリシステムの概略構成を示すブロック図。 セットアソシアティブのキャッシュメモリの構造を示す図。 (a)〜(d)は第1領域と第2領域のサイズを変える例を示す図。 キャッシュメモリの内部構成をより詳細に示すブロック図。 データのビット数と誤り訂正可能なビット数との関係を示す図。 タグメモリ内のタグ情報格納部に格納されるタグ情報の詳細情報を示す図。 図1にローテーション制御部を追加したブロック図。 信頼性制御部の処理動作の第1例を示すフローチャート。 図8のステップS1のリフレッシュ動作の詳細フローチャート。 信頼性制御部の処理動作の第2例を示すフローチャート。 各ウェイ内で第1領域と第2領域のサイズを可変調整可能にした例を示す図。
以下、図面を参照しながら、本発明の一実施形態を説明する。図1は一実施形態のキャッシュメモリシステム1の概略構成を示すブロック図である。図1のキャッシュメモリシステム1は、プロセッサ2に接続されたキャッシュメモリ3を備えている。プロセッサ2の内部には、不図示のコアと、不図示の1次キャッシュメモリ(以下、L1キャッシュ)とが内蔵されている。
図1のキャッシュメモリ3は、MRAM等の不揮発メモリを有する。図1のキャッシュメモリ3は、2階層以上の階層化されたキャッシュメモリ3でもよいが、以下では、簡略化のため、図1のキャッシュメモリ3が2次キャッシュメモリ(以下、L2キャッシュ)である例を示す。このL2キャッシュメモリ3は、不図示のメインメモリに接続されている。
図1のキャッシュメモリ3は、データメモリ4、タグメモリ5、キャッシュコントローラ6、および信頼性制御部7を有する。
データメモリ4は、例えば512ビットのキャッシュラインごとにデータを格納する。後述するように、データメモリ4は、プロセッサ2が読み書きを行うデータを格納する第1領域と、第1領域内のデータの誤りを訂正するための誤り訂正符号を格納する第2領域とを有する。タグメモリ5は、データメモリ4の各キャッシュラインのアドレス情報などを格納する。
キャッシュコントローラ6は、プロセッサ2との間でデータの送受を行うキャッシュインタフェース部(キャッシュI/F)6aを有する。キャッシュコントローラ6は、プロセッサ2からアクセス要求のあったアドレスに応じて、L2キャッシュへのデータの書き込みとL2キャッシュからのデータの読出しとを行う。
信頼性制御部7は、誤り訂正器8と、誤り率検出器9と、領域サイズ調整部10とを有する。
誤り訂正器8は、データメモリ4の各キャッシュラインのデータを誤り訂正するのに必要な誤り訂正符号(ECC:Error Correcting Code)を生成するとともに、誤り訂正符号を用いて各キャッシュラインのデータの誤り訂正を行う。
誤り率検出器9は、データメモリ4内の第1領域の各キャッシュラインのデータの誤り率を検出する。領域サイズ調整部10は、誤り率検出器9で検出された誤り率に基づいて、不揮発メモリ内の第2領域のサイズを調整する。
この他、信頼性制御部7は、リフレッシュ制御部(制御部)11を有する場合がありうる。リフレッシュ制御部11は、データメモリ4内の第1領域に書き込まれたデータを定期的に読み出して誤り訂正器8に供給する。誤り訂正器8は、リフレッシュ制御部11が読み出したデータに誤りがあるか否かを検出し、誤りがあれば誤り訂正を行う。
本実施形態によるキャッシュメモリ3は、セットアソシアティブ構造を有する。図2はセットアソシアティブのキャッシュメモリ3の構造を示す図である。図2に示すように、本実施形態によるキャッシュメモリ3は、複数のウェイに分かれている。各ウェイは、キャッシュライン分のデータビット幅を有する。複数のウェイの特定のセットは、プロセッサ2からアクセス要求のあったアドレスの一部であるインデックスアドレスにて選択される。特定のセットには、複数のウェイ数分のキャッシュラインが含まれている。キャッシュラインは、例えば512ビットである。
本実施形態では、インデックスアドレスにて選択された複数のウェイ数分のキャッシュラインのうち、任意の数のウェイを、誤り訂正符号を格納するための第2領域として使用できるようにしている。第2領域として使用するウェイの数は、インデックスアドレスごと、すなわちセットごとに可変としてもよい。このように、本実施形態では、セットごとに、ウェイ単位で、第1領域と第2領域のサイズを可変調整することができる。
図3(a)は16ウェイのすべてを第1領域4aとして使用する例である。図3(b)は16ウェイのうち15ウェイを第1領域4aとして使用し、残りの1ウェイを第2領域4bとして使用する例である。図3(c)は16ウェイのうち14ウェイを第1領域4aとして使用し、残りの2ウェイを第2領域4bとして使用する例である。図3(d)は16ウェイのうち13ウェイを第1領域4aとして使用し、残りの3ウェイを第2領域4bとして使用する例である。
図3(b)の場合は、例えば第1領域4a内のデータの256ビットごとに1ビットの誤り訂正が可能である。すなわち、1キャッシュライン(1ウェイ)が512ビットであるとすると、1ウェイを半分のデータビット幅に分割して、各分割領域(256ビット)ごとに1ビットの誤り訂正を行えるため、1ウェイでは2ビットの誤り訂正が可能となる。
図3(c)の場合は、例えば第1領域4a内のデータの64ビットごとに1ビットの誤り訂正が可能である。この場合は、1ウェイを4分割し、各分割領域(64ビット)ごとに1ビットの誤り訂正を行えるため、1ウェイでは4ビットの誤り訂正が可能となる。
図3(d)の場合は、例えば第1領域4a内のデータの32ビットごとに1ビットの誤り訂正が可能である。この場合は、1ウェイを8分割し、各分割領域(32ビット)ごとに1ビットの誤り訂正を行えるため、1ウェイでは8ビットの誤り訂正が可能となる。
本実施形態では、後述するように、各セットごとに誤り率を検出し、誤り率に基づいて各セットごとに第1領域4aと第2領域4bのサイズ(メモリ容量)をウェイ単位で調整する。これにより、誤り率が高いセットについては、第2領域4bのサイズを増やすことで、より多くの誤りを訂正でき、不揮発メモリの信頼性の低下を防止することができる。
図4はキャッシュメモリ3の内部構成をより詳細に示すブロック図である。タグメモリ5は、タグアドレス選択部21と、タグ情報格納部22と、ヒット判定部23とを有する。タグアドレス選択部21は、読み出すべきウェイを選択し、選択したウェイにアドレス情報を供給する。タグ情報格納部22は、データメモリ4内の各データに対応するタグ情報を格納する。ヒット判定部23は、タグ情報格納部22から読み出したタグ情報を、プロセッサ2からアクセス要求のあったブロックアドレス内のインデックスアドレスとを比較し、ヒット/ミス判定信号を出力する。
タグ情報格納部22は、第1領域4a内のデータのアドレス情報の他に、第2領域4bを有するか否かを示す情報(ECCフラグ情報、第1情報)と、第2領域4bとして使われているウェイを特定する情報(第2情報)とを格納する。
データメモリ4は、データ格納部26と、書込み部27と、読出し部28とを有する。データ格納部26は、複数のウェイに分かれており、ウェイ単位で、データの書き込みまたは読出しを行う。書込み部27は、データメモリ4に書き込むべきウェイを選択して、選択したウェイに書き込むべきデータを供給する。読出し部28は、データメモリ4から読み出すべきウェイを選択して、選択したウェイから読み出すべきデータを供給する。
図4のECC生成器8aと誤り訂正部8bは、図1の誤り訂正器8に内蔵されるものである。ECC生成器8aは、データメモリ4に書き込むべきデータの誤り訂正符号を生成する。誤り訂正部8bは、データメモリ4から読み出したデータの誤り訂正を行う。
図5はデータのビット数と誤り訂正可能なビット数との関係を示す図である。図5は1つのウェイ(キャッシュライン)が512ビットの例を示している。本実施形態では、誤り訂正能力を可変できるようにしており、それぞれ異なる誤り訂正能力をECCモード1〜ECCモード4としている。
ECCモード1は、512ビットデータ内の1ビットの誤りを訂正するモードである。512ビットデータ内の1ビットの誤りを訂正するには、例えば11ビットの誤り訂正符号を必要とする。よって、15個のウェイのそれぞれについて1ビットの誤りを訂正するには、第2領域4bに11×15=165ビットの誤り訂正符号を格納しておく必要がある。
ECCモード2は、256ビットデータ内の1ビットの誤りを訂正するモードである。256ビットデータ内の1ビットの誤りを訂正するには、例えば10ビットの誤り訂正符号を必要とする。よって、512ビットデータでは、2ビットの誤りを訂正可能となり、これらの誤りを訂正するには、10×2=20ビットの誤り訂正符号を必要とする。よって、第1領域4a内の15個のウェイのそれぞれについて2ビットまでの誤りを訂正するには、第2領域4bには、20×15=300ビットの誤り訂正符号を格納しておく必要がある。
ECCモード3は、128ビットデータ内の1ビットの誤りを訂正するモードである。128ビットデータ内の1ビットの誤りを訂正するには、例えば9ビットの誤り訂正符号を必要とする。よって、512ビットデータでは、4ビットの誤りを訂正可能となり、これらの誤りを訂正するには、9×4=36ビットの誤り訂正符号を必要とする。よって、第1領域4a内に15個のウェイがあったとして、各ウェイごとに4ビットまでの誤りを訂正するには、第2領域4bには、36×15=540ビットの誤り訂正符号を格納しておく必要がある。第2領域4bが1個のウェイを有する場合、最大512ビットの情報しか格納できない。よって、第2領域4bとして2個のウェイを必要とする。この場合、第1領域4aは14個のウェイとなり、36×14=504ビットの誤り訂正符号を第2領域4bに格納することになる。
ECCモード4は、64ビットデータ内の1ビットの誤りを訂正するモードである。64ビットデータ内の1ビットの誤りを訂正するには、例えば8ビットの誤り訂正符号を必要とする。よって、512ビットデータでは、8ビットの誤りを訂正可能となり、これらの誤りを訂正するには、8×8=64ビットの誤り訂正符号を必要とする。第1領域4aが14個のウェイを有するとすると、第2領域4bには、64×14=896ビットの誤り訂正符号を格納しておく必要がある。
このように、誤り訂正能力によって、必要とする誤り訂正符号のビット数が変わるため、誤り訂正能力に応じて第1領域4aと第2領域4bのサイズを可変調整する必要がある。この可変調整は、図1の領域サイズ調整部10が行う。
図6はタグメモリ5内のタグ情報格納部22に格納されるタグ情報の詳細情報を示す図である。タグ情報格納部22は、各セットごとにタグ情報を格納する。タグ情報は、図6に示すように、Valid情報31と、Dirty情報32と、LRU情報33と、Sec情報34と、ECCフラグ情報35と、アドレス情報36とを含んでいる。
Valid情報31は、対応する第1領域4a内のデータが有効か否かを示す情報である。Dirty情報32は、対応する第1領域4a内のデータを下位階層のメモリにライトバックする必要があるか否かを示す情報である。LRU情報33は、対応する第1領域4a内のデータがLRU(Least Recently Used)データであるか否かを示す情報である。Sec情報34は、対応する第1領域4a内のデータのセキュリティ情報である。ECCフラグ情報は、対応する第1領域4a内のデータが第1領域4aだけでなく、第2領域4bを有するか否かを示す情報を格納する。ECCフラグ情報35は、誤り訂正能力を示す誤り訂正モードを特定する情報(以下、ECCモード)と、第2領域4bのローテーション情報とを含んでいてもよい。ECCモードは、例えば図5に示した4つのモードを含めて複数のモードのうちのいずれかを選択するものである。例えば、全部で8つのモードがある場合には、ECCモードとして3ビットが必要となる。ローテーション情報は、誤り訂正符号を格納する第2領域4bを不揮発メモリ内で定期的にシフトさせるためのものである。これにより、不揮発メモリ内のアクセス頻度を均等にすることができ、不揮発メモリの書込み耐性を高めることができる。例えば、キャッシュメモリ3が16個のウェイを有し、各ウェイを順繰りに第2領域4bとして用いる場合、16個の選択肢があるため、いずれか一つのウェイを選択するのに4ビットが必要となる。
よって、ECCフラグ情報35は、例えば、ECCモードとして3ビット、ローテーション情報として4ビットが必要となり、最低7ビットが必要となる。
信頼性制御部7は、リフレッシュ制御部11にて不揮発メモリのリフレッシュを行う際に読み出したデータの誤り率を誤り率検出器9にて検出し、検出した誤り率に基づいて、領域サイズ調整部10にて第1領域4aと第2領域4bのサイズを調整することができる。
第2領域4bのローテーションを行うには、図7に示すように、信頼性制御部7の内部にローテーション制御部12と、ローテーション制御用のカウンタ(アクセス回数計測器)12aとを設けるのが望ましい。このカウンタ12aは、第2領域4bのアクセス回数を計測する。ローテーション制御部12は、カウンタ12aで計測したアクセス回数が所定の閾値を超えると、第2領域4bを別のウェイにシフトする。
図8は信頼性制御部7の処理動作の第1例を示すフローチャートである。まず、リフレッシュ動作を行う(ステップS1)。図9は図8のステップS1のリフレッシュ動作の詳細フローチャートである。図9のフローチャートは、リフレッシュ制御部11にて行われる。まず、リフレッシュ対象のデータを読み出す(ステップS11)。リフレッシュ対象のデータとは、例えば不揮発メモリの第1領域4aに書き込んでから所定時間が経過したデータである。このデータは、第1領域4aに書き込んでから所定時間が経過した後、定期的にリフレッシュ対象となる。
次に、ステップS11で読み出したデータを誤り訂正器8に供給する。誤り訂正器8は、リフレッシュ対象のデータの誤り訂正符号を用いて、このデータに誤りがあるか否かを検出する(ステップS12)。誤り訂正器8は、誤りが検出された場合は、誤り訂正符号を用いて誤り訂正を行う(ステップS13)。ステップS13の処理が終了すると、誤り回数を計測するカウンタ11aをカウントアップする(ステップS14)。
ステップS12で誤りがないと判定された場合、あるいはステップS14の処理が終了すると、次のリフレッシュ対象のアドレスを選択する(ステップS15)。
図9のステップS1の処理、すなわちリフレッシュ対象のデータのリフレッシュ動作が終了すると、誤り率検出器9は、ステップS14でカウントアップしたカウンタで計測した誤り回数に基づいて、誤り率を検出する(ステップS2)。次に、領域サイズ調整部10は、誤り率が第1閾値以上か否かを判定し(ステップS3)、第1閾値以上の場合は、誤り訂正能力を増強するべくECCモードを変更する(ステップS4)。この場合、領域サイズ調整部10は、第2領域4bのサイズを第1サイズから、より大きい第2サイズに変更する。
次に、領域サイズ調整部10は、誤り率が第1閾値より小さい第2閾値未満か否かを判定し(ステップS5)、誤り率が第2閾値未満の場合は、誤り訂正能力を低下するべくECCモードを変更する(ステップS6)。誤り率が第2閾値以上の場合は、ECCモードを現状維持とする(ステップS7)。
次に、リフレッシュ対象アドレスのすべてについてのリフレッシュ動作が終了したか否かを判定する(ステップS8)。まだ終わっていないリフレッシュ対象アドレスがあれば、ステップS1以降の処理を繰り返し、すべてのリフレッシュ対象アドレスについてのリフレッシュ動作が終了したら、図8の処理を終了する。
信頼性制御部7の処理動作は図8に示したものに限定されない。例えば、信頼性制御部7は、信頼性が著しく低いセットについては、セット内の書込みデータを下位階層のメモリにもライトスルーで書き込んでもよい。図10は信頼性制御部7の処理動作の第2例を示すフローチャートである。まず、図9と同様の処理にてリフレッシュ動作を行う(ステップS21)。リフレッシュ対象のデータのリフレッシュ動作が終了すると、次に誤り率を検出し(ステップS22)、誤り率が第1閾値よりも大きい第3閾値以上か否かを判定する(ステップS23)。誤り率が第3閾値以上の場合には、エラー訂正を行うとともに、このデータを下位階層のメモリにライトスルーで書き込む(ステップS24)。その際、ECCモードを変更して、誤り訂正能力を向上させてもよい。
ステップS23で誤り率が第3閾値未満と判定されると、次に誤り率が第1閾値以上か否かを判定する(ステップS25)。その後、図8のステップS3〜S8と同様の処理を行う(ステップS25〜S30)。
上述した実施形態では、セットごとに、ウェイ単位で第1領域4aと第2領域4bのサイズを可変調整する例を説明したが、図11に示すように、各ウェイ内で第1領域4aと第2領域4bのサイズを可変調整してもよい。例えば、1つのウェイが512ビットの場合、512ビットのうちの一部のビットを第1領域4aとし、残りのビットを第2領域4bとしてもよい。
このように、本実施形態では、不揮発メモリの第1領域4a内のデータの誤り率に基づいて、誤り訂正符号を格納する第2領域4bのサイズを調整するため、第1領域4a内のデータの誤り率が大きい場合には誤り訂正符号を増やすことができ、第1領域4a内のデータを正しく誤り訂正できる可能性が高くなる。これにより、アクセス回数や経年劣化、温度などの環境条件によって不揮発メモリの誤り率が高くなっても、実用上問題なく不揮発メモリを使用することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 キャッシュメモリシステム、2 プロセッサ、3 キャッシュメモリ、4 データメモリ、5 タグメモリ、6 キャッシュコントローラ、7 信頼性制御部、8 誤り訂正器、9 誤り率検出器、11 リフレッシュ制御部、12 ローテーション制御部、21 タグアドレス選択部、22 タグ情報格納部、23 ヒット判定部、26 データ格納部、27 書込み部、28 読出し部

Claims (14)

  1. 読み書き可能なデータを格納する第1領域と、前記第1領域内のデータの誤りを訂正するための誤り訂正符号を格納する第2領域と、を有する不揮発メモリと、
    前記誤り訂正符号を生成するとともに、前記誤り訂正符号を用いて前記第1領域内のデータの誤り訂正を行う誤り訂正器と、
    前記第1領域内のデータの誤り率に基づいて、前記不揮発メモリ内の前記第2領域のサイズを調整するとともに、所定の条件に基づいて、前記不揮発メモリ内で前記第2領域をシフトさせる領域サイズ調整部と、を備えるキャッシュメモリシステム。
  2. 前記第2領域に対するアクセス回数を計測するアクセス回数計測器を備え、
    前記領域サイズ調整部は、前記アクセス回数計測器で計測されたアクセス回数が所定回数に達すると、前記不揮発メモリ内で前記第2領域をシフトさせる請求項に記載のキャッシュメモリシステム。
  3. 読み書き可能なデータを格納する第1領域と、前記第1領域内のデータの誤りを訂正するための誤り訂正符号を格納する第2領域と、を有する不揮発メモリと、
    前記誤り訂正符号を生成するとともに、前記誤り訂正符号を用いて前記第1領域内のデータの誤り訂正を行う誤り訂正器と、
    前記第1領域内のデータの誤り率に基づいて、前記不揮発メモリ内の前記第2領域のサイズを調整する領域サイズ調整部と、を備え
    前記不揮発メモリは、前記第1領域および前記第2領域を有するデータキャッシュと、前記第1領域内のデータのアドレス情報を格納するタグメモリと、を有し、
    前記タグメモリは、前記第2領域を有するか否かを示す第1情報と、前記第2領域の場所を特定する第2情報とを含むキャッシュメモリシステム。
  4. 前記不揮発メモリは、複数のウェイを有するセットアソシアティブ構造であり、
    セットごとにウェイ単位で前記第1領域または前記第2領域が設定され、
    前記第1情報は、セットごとに設けられ、
    前記第2情報は、各セットごとに、前記第2領域として割り当てられているウェイを特定する情報である請求項に記載のキャッシュメモリシステム。
  5. 読み書き可能なデータを格納する第1領域と、前記第1領域内のデータの誤りを訂正するための誤り訂正符号を格納する第2領域と、を有する不揮発メモリと、
    前記誤り訂正符号を生成するとともに、前記誤り訂正符号を用いて前記第1領域内のデータの誤り訂正を行う誤り訂正器と、
    前記第1領域内のデータの誤り率が第1の誤り率の場合の前記第1領域のサイズは、前記誤り率が前記第1の誤り率よりも小さい第2の誤り率の場合の前記第1領域のサイズよりも小さく、かつ前記誤り率が前記第1の誤り率の場合の前記第2領域のサイズは、前記誤り率が前記第2の誤り率の場合の前記第2領域のサイズよりも大きくなるように、前記第1領域および前記第2領域を調整する領域サイズ調整部と、を備えるキャッシュメモリシステム。
  6. 読み書き可能なデータを格納する第1領域と、前記第1領域内のデータの誤りを訂正するための誤り訂正符号を格納する第2領域と、を有する不揮発メモリと、
    前記誤り訂正符号を生成するとともに、前記誤り訂正符号を用いて前記第1領域内のデータの誤り訂正を行う誤り訂正器と、
    第1の誤り率の場合、第1領域のサイズを第1サイズから第1サイズより小さい第2サイズへと変化させ、かつ第2領域を第3サイズから第3サイズより大きい第4サイズへと変化させ、第1の誤り率より小さな第2の誤り率の場合、第1領域のサイズを第5サイズから第5サイズより大きい第6サイズへと変化させ、かつ第2領域を第7サイズから第7サイズより小さい第8サイズへと変化させるように、前記第1領域および前記第2領域を調整する領域サイズ調整部と、を備えるキャッシュメモリシステム。
  7. 前記不揮発メモリは、キャッシュラインを単位としてデータの読出しおよび書き込みを行い、
    前記誤り訂正器は、前記キャッシュラインを単位としてデータの誤り訂正を行い、
    前記領域サイズ調整部は、前記キャッシュラインを単位とする前記誤り率に基づいて前記第2領域のサイズを調整する請求項1乃至6のいずれか1項に記載のキャッシュメモリシステム。
  8. 前記不揮発メモリは、複数のウェイを有するセットアソシアティブ構造であり、
    前記複数のウェイのそれぞれは、前記キャッシュラインのデータビット幅を有し、
    前記領域サイズ調整部は、前記不揮発メモリの各セットごとに、前記誤り率に基づいて、ウェイを単位として前記第2領域のサイズを調整する請求項に記載のキャッシュメモリシステム。
  9. 前記不揮発メモリ内の前記第1領域に書き込まれたデータを定期的に読み出して、読み出したデータを前記誤り訂正器に供給する制御部を備え請求項1乃至のいずれか1項に記載のキャッシュメモリシステム。
  10. 前記第1誤り率は、第1閾値以上の値であり、
    前記第2誤り率は、前記第1閾値未満の値であり、
    前記領域サイズ調整部は、前記誤り率が前記第1閾値以上の場合の前記第2領域のサイズを、前記誤り率が前記第1閾値未満の場合の前記第2領域のサイズよりも大きくする
    請求項1乃至のいずれか1項に記載のキャッシュメモリシステム。
  11. 前記領域サイズ調整部は、前記誤り率が前記第1閾値より大きい第2閾値以上であれば、前記第1領域にデータを書き込む際に、このデータを前記不揮発メモリの下位階層のメモリに書き込む請求項10に記載のキャッシュメモリシステム。
  12. 前記領域サイズ調整部は、所定の条件に基づいて、前記不揮発メモリ内で前記第2領域をシフトさせる請求項3乃至11のいずれか1項に記載のキャッシュメモリシステム。
  13. 前記第2領域に対するアクセス回数を計測するアクセス回数計測器を備え、
    前記領域サイズ調整部は、前記アクセス回数計測器で計測されたアクセス回数が所定回数に達すると、前記不揮発メモリ内で前記第2領域をシフトさせる請求項1、2または12に記載のキャッシュメモリシステム。
  14. 前記不揮発メモリは、MRAM(Magnetoresistive Random Access Memory)を含む請求項1乃至13のいずれか1項に記載のキャッシュメモリシステム。
JP2015183193A 2015-09-16 2015-09-16 キャッシュメモリシステム Active JP6158265B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015183193A JP6158265B2 (ja) 2015-09-16 2015-09-16 キャッシュメモリシステム
US15/262,413 US10360100B2 (en) 2015-09-16 2016-09-12 Cache memory system and processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015183193A JP6158265B2 (ja) 2015-09-16 2015-09-16 キャッシュメモリシステム

Publications (2)

Publication Number Publication Date
JP2017058953A JP2017058953A (ja) 2017-03-23
JP6158265B2 true JP6158265B2 (ja) 2017-07-05

Family

ID=58257459

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015183193A Active JP6158265B2 (ja) 2015-09-16 2015-09-16 キャッシュメモリシステム

Country Status (2)

Country Link
US (1) US10360100B2 (ja)
JP (1) JP6158265B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018156463A (ja) 2017-03-17 2018-10-04 東芝メモリ株式会社 メモリシステム
JP2018163539A (ja) * 2017-03-27 2018-10-18 日本電気株式会社 自己診断方法および自己診断プログラム
KR20190012566A (ko) * 2017-07-27 2019-02-11 삼성전자주식회사 에러 정정 기능을 갖는 메모리 시스템, 메모리 모듈 및 메모리 컨트롤러의 동작 방법
US20190243566A1 (en) * 2018-02-05 2019-08-08 Infineon Technologies Ag Memory controller, memory system, and method of using a memory device
US10540228B2 (en) 2018-03-07 2020-01-21 Micron Technology, Inc. Providing data of a memory system based on an adjustable error rate
JP7353889B2 (ja) * 2019-09-19 2023-10-02 キオクシア株式会社 メモリシステムおよび方法
US11210167B2 (en) 2019-10-28 2021-12-28 Intel Corporation Memory wordline isolation for improvement in reliability, availability, and scalability (RAS)
CN113223602B (zh) * 2021-05-31 2023-09-15 西安紫光国芯半导体有限公司 存储器刷新补偿方法、装置、补偿电路及存储器件

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804799B2 (en) 2001-06-26 2004-10-12 Advanced Micro Devices, Inc. Using type bits to track storage of ECC and predecode bits in a level two cache
US6961890B2 (en) 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code
US7210077B2 (en) 2004-01-29 2007-04-24 Hewlett-Packard Development Company, L.P. System and method for configuring a solid-state storage device with error correction coding
JP4201783B2 (ja) * 2005-08-04 2008-12-24 富士通マイクロエレクトロニクス株式会社 キャッシュメモリ装置、半導体集積回路およびキャッシュ制御方法
JP2007305267A (ja) 2006-05-15 2007-11-22 Toshiba Corp 半導体記憶装置
US7739576B2 (en) * 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
JP4661809B2 (ja) 2007-03-15 2011-03-30 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
US20080298468A1 (en) * 2007-06-04 2008-12-04 Mediaphy Corporation Error tagging for decoder
WO2010054410A2 (en) * 2008-11-10 2010-05-14 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for predicting failures in solid-state storage
JP2010256944A (ja) 2009-04-21 2010-11-11 Mitsubishi Electric Corp Nand型フラッシュメモリ保守装置及びnand型フラッシュメモリ保守プログラム及びnand型フラッシュメモリ保守方法
JP2011198272A (ja) 2010-03-23 2011-10-06 Toshiba Corp 半導体記憶装置および半導体記憶装置の制御方法
US20120254686A1 (en) 2010-10-01 2012-10-04 SIGLEAD Inc. Non-volatile semiconductor memory devices and error correction methods
US8719663B2 (en) * 2010-12-12 2014-05-06 Lsi Corporation Cross-decoding for non-volatile storage
JP5364750B2 (ja) 2011-03-25 2013-12-11 株式会社東芝 メモリシステム、及び不揮発性メモリデバイスの制御方法
US9164679B2 (en) * 2011-04-06 2015-10-20 Patents1, Llc System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class
KR20130060791A (ko) 2011-11-30 2013-06-10 삼성전자주식회사 마모도 제어 로직을 포함하는 메모리 시스템, 데이터 저장 장치, 메모리 카드, 그리고 솔리드 스테이트 드라이브
KR101893145B1 (ko) * 2011-12-06 2018-10-05 삼성전자주식회사 메모리 시스템들 및 그것들의 블록 복사 방법들
JP5722754B2 (ja) * 2011-12-06 2015-05-27 株式会社日立製作所 ソフトエラー耐性調整機能を備えた電子システム装置及びソフトエラー耐性調整方法
US8930778B2 (en) * 2012-11-15 2015-01-06 Seagate Technology Llc Read disturb effect determination
US9059736B2 (en) * 2012-12-03 2015-06-16 Western Digital Technologies, Inc. Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme
JP5851441B2 (ja) 2013-03-25 2016-02-03 株式会社東芝 Nandフラッシュメモリコントローラ
KR20140146275A (ko) * 2013-06-14 2014-12-26 삼성전자주식회사 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 시스템
US9653184B2 (en) * 2014-06-16 2017-05-16 Sandisk Technologies Llc Non-volatile memory module with physical-to-physical address remapping
US9477548B2 (en) * 2014-08-01 2016-10-25 Freescale Semiconductor, Inc. Error repair location cache
JP6304007B2 (ja) * 2014-12-09 2018-04-04 株式会社デンソー マイクロコントローラ
US9916237B2 (en) * 2014-12-12 2018-03-13 Sandisk Technologies Llc Model based configuration parameter management
KR102406267B1 (ko) * 2015-11-19 2022-06-08 삼성전자주식회사 불휘발성 메모리 모듈 및 이를 포함하는 전자 장치

Also Published As

Publication number Publication date
JP2017058953A (ja) 2017-03-23
US20170075756A1 (en) 2017-03-16
US10360100B2 (en) 2019-07-23

Similar Documents

Publication Publication Date Title
JP6158265B2 (ja) キャッシュメモリシステム
US11347402B2 (en) Performing wear leveling operations in a memory based on block cycles and use of spare blocks
US9087614B2 (en) Memory modules and memory systems
US10445005B2 (en) Memory system and operating method thereof
US7975170B2 (en) Memory refresh system and method
US7996710B2 (en) Defect management for a semiconductor memory system
JP6697360B2 (ja) メモリシステムおよびプロセッサシステム
US10372544B2 (en) Apparatus including refresh controller controlling refresh operation responsive to data error
US10656832B2 (en) Memory system and operation method thereof
US9990153B2 (en) Memory system and wear-leveling method thereof
US9875810B2 (en) Self-identifying memory errors
KR20190087499A (ko) 태그 매칭 명령에 응답하는 저장회로
US20170123979A1 (en) Systems, devices, and methods for handling partial cache misses
US10481975B2 (en) Memory system
US10916325B2 (en) Memory chip and test system including the same
US11836089B2 (en) Cache memory, memory system including the same and operating method thereof
US10607694B2 (en) Memory system including memory device and memory controller, and operation method thereof
US10936481B2 (en) Semiconductor system and method for operating the semiconductor system
US10140025B2 (en) Memory system including memory controller and operation method thereof
US10521134B2 (en) Memory system
US9824029B2 (en) Memory device and operation method of the same
JP2016152054A (ja) 半導体記憶装置のテスト方法及び半導体記憶装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170110

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: 20170509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170607

R151 Written notification of patent or utility model registration

Ref document number: 6158265

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350