JP6039772B1 - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP6039772B1
JP6039772B1 JP2015183279A JP2015183279A JP6039772B1 JP 6039772 B1 JP6039772 B1 JP 6039772B1 JP 2015183279 A JP2015183279 A JP 2015183279A JP 2015183279 A JP2015183279 A JP 2015183279A JP 6039772 B1 JP6039772 B1 JP 6039772B1
Authority
JP
Japan
Prior art keywords
memory
data
cache
dlt
read
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
JP2015183279A
Other languages
English (en)
Other versions
JP2017058960A (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 JP2015183279A priority Critical patent/JP6039772B1/ja
Priority to US15/263,017 priority patent/US10521134B2/en
Application granted granted Critical
Publication of JP6039772B1 publication Critical patent/JP6039772B1/ja
Publication of JP2017058960A publication Critical patent/JP2017058960A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Landscapes

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

Abstract

【課題】不揮発メモリを用いながらも、信頼性およびアクセス性能を向上可能なメモリシステムを提供する。【解決手段】メモリシステム1は、不揮発メモリデータ領域を含む第1メモリ17と、不揮発メモリデータ領域内のデータのうち、第1メモリよりもアクセス優先度の低い下位階層の第2メモリ23への書き戻しを行っていないデータを、第2メモリに格納する前に格納する第3メモリ20と、を備え、第3メモリのビットエラー率は、第1メモリのビットエラー率よりも低い。【選択図】図1

Description

本発明は、メモリシステムに関する。
携帯情報端末に用いられるプロセッサは、低消費電力であることが求められる。プロセッサの低消費電力化手法の1つとして、待機電力の大きいSRAM(Static Random Access Memory)を用いたキャッシュメモリを、不揮発性メモリに置換する手法がある。
不揮発メモリには、MRAM(Magnetoresistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、ReRAM(Resistance Random Access Memory)などがあるが、特にMRAMは、現在提案されている不揮発性メモリの中で高い書き換え耐性と、高速の読出しと書込みが可能な動作性能と、高集積可能なセル面積との3つの特徴を同時に満たしうるメモリである。
しかしながら、MRAMは、SRAMやDRAMと比べて、ビットエラー率が高い。
国際公開2012/029137 国際公開2013/042240
本実施形態は、不揮発メモリを用いながらも、信頼性およびアクセス性能を向上可能なメモリシステムを提供するものである。
上記の課題を解決するために、本発明の一態様では、不揮発メモリデータ領域を含む第1メモリと、
前記不揮発メモリデータ領域内のデータのうち、前記第1メモリよりもアクセス優先度の低い下位階層の第2メモリへの書き戻しを行っていないデータを、前記第2メモリに格納する前に格納する第3メモリと、を備え、
前記第3メモリのビットエラー率は、前記第1メモリのビットエラー率よりも低いメモリシステムが提供される。
一実施形態によるキャッシュメモリシステムの概略構成を示すブロック図。 本実施形態のキャッシュメモリシステムの処理動作を模式的に示す図。 CPUのリードアクセス時の処理動作の一例を示すフローチャート。 CPUの書込み要求によりL2キャッシュからデータが追い出された場合の処理動作の一例を示すフローチャート。
以下、本発明の実施の形態について、詳細に説明する。図1は一実施形態によるメモリシステム1の概略構成を示すブロック図である。図1のメモリシステム1は、複数のソケット2を備えている。各ソケット2は、複数のコア部3と、L2キャッシュバス4と、L2キャッシュ(L2$、第4メモリ)5と、L2キャッシュコントローラ6と、L2誤り検知訂正部7と、を有する。ソケット2の数は任意である。同様に、各ソケット2内のコア部3の数も任意である。各ソケット2は、1個または複数のチップで構成可能である。同様に、各コア部3も、1個または複数のチップで構成可能である。なお、図1のような複数のソケット2や複数のコア部3を設けることは必須ではない。
L2キャッシュバス4は、複数のコア部3に接続されている。複数のコア部3は、L2キャッシュバス4とL2キャッシュコントローラ6を介して、共通のL2キャッシュ5にアクセスする。L2キャッシュ5のメモリ容量は、例えば256kバイトである。L2キャッシュ5は、L2タグ部(不図示)と、L2データキャッシュ部(不図示)とを有する。L2誤り検知訂正部7は、L2データキャッシュ部に書き込んだデータを読み出す際に、誤り検知と誤り訂正とを行う。
各コア部3は、CPUコア11と、L1データキャッシュ(L1d$)12と、L1データキャッシュコントローラ13と、L1命令キャッシュ(L1i$)14と、Iキャッシュコントローラ15とを有する。L1データキャッシュ12とL1命令キャッシュ14のメモリ容量は任意だが、例えば32kバイトのメモリ容量を有する。
この他、図1のメモリシステム1は、L3キャッシュバス16と、L3キャッシュ(L3$、第1メモリ)17と、L3キャッシュコントローラ18と、L3誤り検知訂正部(誤り訂正部)19と、ダーティラインテーブル(DLT:Dirty Line Table、第3メモリ)20と、DLTコントローラ21と、DLT誤り検知訂正部22と、メインメモリ(第2メモリ)23と、メモリコントローラ24と、MAIN誤り検知訂正部25とを有する。L3キャッシュバス16は、複数のソケット2に接続されている。DLT誤り検知訂正部22はDLT20自体がエラー率の低いメモリで構成されるため、必ずしも必須要件ではない。基本となるキャッシュ階層が3階層の場合、L3キャッシュ17とメインメモリ23との間の階層にDLT20が実装されるが、基本となるキャッシュ階層が2階層の場合は、L2キャッシュ5とメインメモリ23との間の階層にDLT20が実装される場合もある。
各ソケット2は、L3キャッシュバス16とL3キャッシュコントローラ18を介して、共通のL3キャッシュ17にアクセスする。L3キャッシュ17のメモリ容量は例えば32Mバイトである。
L3キャッシュ17は、L3タグ部と、L3データキャッシュ部とを有する。L3データキャッシュ部は、STT−MRAM等の不揮発メモリで構成される不揮発メモリデータ領域である。L3タグ部は、例えばSRAM等のL3データキャッシュ部よりもアクセス速度が速いメモリである。L3誤り検知訂正部19は、L3データキャッシュ部に書き込んだデータを読み出す際に、誤り検知と誤り訂正とを行う。
DLT20は、DLTコントローラ21によりアクセスされる。DLTコントローラ21は、L3キャッシュコントローラ18に接続されている。DLT20は、L3キャッシュ17とメインメモリ23との間の階層のキャッシュメモリとみなすこともできるし、L3キャッシュ17と同じ階層のキャッシュメモリとみなすこともできる。後述するように、DLT20は、部分的には通常のキャッシュメモリに類似する動作を行うが、通常のキャッシュメモリと異なる動作も行う部分もある。
DLT20のメモリ容量は、L3キャッシュ17のメモリ容量よりもはるかに小さく、例えば64kバイト程度で構わない。DLT20のアクセス速度は、L3キャッシュ17のアクセス速度よりも速くするのが望ましいが、L3キャッシュ17と同等あるいはL3キャッシュ17以下のアクセス速度でも構わない。
DLT20は、DLTタグ部(不図示)と、DLTデータキャッシュ部(不図示)とを有する。DLTデータキャッシュ部は、L3データキャッシュ部よりもビットエラー率の低いSRAM等のメモリで構成されている。なお、後述するように、DLTデータキャッシュ部とL3データキャッシュ部がともにMRAMで構成されていてもよい。この場合、後述するように、MRAMの使い方やアクセス方式を変えることで、DLTデータキャッシュ部のビットエラー率をL3データキャッシュ部のビットエラー率よりも低くすることができる。
DLT誤り検知訂正部22は、DLTデータキャッシュ部に格納されたデータを読み出す際に、誤り検知と誤り訂正とを行う。
メインメモリ23は、メモリコントローラ24によりアクセスされる。メモリコントローラ24は、DLTコントローラ21に接続されている。メインメモリ23は、例えばDRAMで構成される。MAIN誤り検知訂正部25は、メインメモリ23に格納されたデータを読み出す際に、誤り検知と誤り訂正とを行う。
なお、図1のメモリシステム1のうち、一部の構成部(例えば、複数のコア部3やメインメモリ23など)は、別の半導体チップや回路基板に配置される場合がありうる。すなわち、本実施形態によるメモリシステム1は、少なくともL3キャッシュ17と、L3キャッシュコントローラ18と、L3誤り検知訂正部19と、DLT20と、DLTコントローラ21と、DLT誤り検知訂正部22とを有する。
図1では、L3キャッシュ17を制御するL3キャッシュコントローラ18と、DLT20を制御するDLTコントローラ21と、メインメモリ23を制御するメモリコントローラ24とを別個に設ける例を示しているが、これらコントローラのうち2つ以上を1つのコントローラに統合してもよい。
図2は本実施形態のメモリシステム1の処理動作を模式的に示す図である。図2に示すように、図1のメモリシステム1は、L1キャッシュ12、L2キャッシュ5、L3キャッシュ17、およびメインメモリ23と4階層のメモリ構成になっており、L1キャッシュが最上位階層であり、メインメモリ23が最下位階層である。また、L3キャッシュ17は、最下位のキャッシュメモリであり、LLC(Last Level Cache)と呼ばれる。下位階層のメモリほど、メモリ容量が大きくなり、かつアクセス速度が遅くなる。
なお、LLCは、必ずしもL3キャッシュ17とは限らない。例えば、L4キャッシュ以降の高次のキャッシュメモリをLLCとしてもよい。反対に、キャッシュ階層を2階層にして、L2キャッシュ5をLLCとしてもよい。
図2に示すように、本実施形態のキャッシュメモリは、LLCとメインメモリ23との間に、LLCよりも小メモリ容量のDLT20を設けている。
DLT20は、LLCに新たなデータを格納する際、そのデータがダーティなデータの場合に格納される。すなわち、LLCに新たに格納されるデータが、LLCよりも下位階層のメインメモリ23にまだ書き込まれていない場合には、そのデータがLLCとDLT20の双方に格納される。
このようにする理由は、DLT20は、LLCよりもビットエラー率が低いことから、LLCから読み出したデータに誤りがあっても、DLT20から同じデータを読み出せば、CPUに正しいデータを引き渡せるためである。
LLCがL3キャッシュ17であれば、L3キャッシュ17から読み出したデータは、L3誤り検知訂正部19にて誤り訂正を行うことができる。よって、L3誤り検知訂正部19で正しく誤り訂正できたデータは、そのままCPUに引き渡せばよい。
図2では、L1キャッシュ12、L2キャッシュ5、LLC17およびメインメモリ23間でのデータの送受を矢印線で表している。CPU11とL1キャッシュ12間のデータ送受(矢印線y1)と、L1キャッシュ12とL2キャッシュ5間のデータ送受(矢印線y2)とは、従来のキャッシュメモリと同じである。
LLC(L3キャッシュ17)に書き込まれたデータ(矢印線y3)のうち、ダーティなデータはDLT20にも書き込まれる(矢印線y4)。LLC(L3キャッシュ17)から読み出されるデータ(矢印線y5)のうち、L3誤り検知訂正部19で誤り訂正できなかったデータは、DLT20から読み出される(矢印線y6)。
DLT20に書き込まれたデータは、所定のタイミングでメインメモリ23に書き戻される(矢印線y7)。所定のタイミングとは、DLT20に新たなデータを書き込む場合や、DLT20の電源をオフする場合である。
メインメモリ23から読み出されたデータは、DLT20には書き込まれずにLLC(L3キャッシュ17)に書き込まれる(矢印線y8)。
このように、DLT20は、LLC(L3キャッシュ17)に新たに書き込まれるデータのうち、ダーティなデータだけを格納し、DLT20に格納されたデータは、所定のタイミングでメインメモリ23に書き戻されるため、DLT20は小メモリ容量で構わない。ただし、DLT20はLLC(L3キャッシュ17)よりもビットエラー率が低いことが前提である。これにより、LLC(L3キャッシュ17)から読み出したデータに誤りがあって、その誤りがL3誤り検知訂正部19で訂正できない場合には、DLT20から正しいデータを読み出すことができる。ここで、DLT20内のDLTデータキャッシュ部がLLC(L3キャッシュ17)よりもビットエラー率が低くない場合であっても、DLT20に接続されたDLT誤り検知訂正部22がLLC(L3キャッシュ17)よりも低いエラー率を検知訂正機能を用いて実現できていればよい。本明細書では、DLT誤り検知訂正部22にて低ビットエラー率を実現する場合も含めて、DLT20のビットエラー率がLLCのビットエラー率より低いと定義する。
DLT20は、L3キャッシュ17からデータを読み出す際のデータの信頼性を向上させるために設けられるものである。よって、メインメモリ23からデータを読み出す際には、そのデータをDLT20に格納する必要はない。このように、DLT20は、厳密な意味では、LLC(L3キャッシュ17)よりも下位階層のキャッシュメモリではない。
上述したように、L3キャッシュ17に新たなデータを書き込む場合に、そのデータがメインメモリ23に格納されていないダーティなデータであれば、DLT20にも書き込まれる。このため、DLT20にデータを書き込んだ時点では、同じデータが必ずL3キャッシュ17にも存在する。その後、L3キャッシュ17にクリーンなデータを書き込むなどして、DLT20に書き込んだデータと同じデータをL3キャッシュ17から消去(更新)する場合がありうる。よって、DLT20に書き込んだデータは、その直後はL3キャッシュ17にも存在するが、時間の経過とともにL3キャッシュ17に存在しなくなる可能性がありうる。
上述した説明では、L3キャッシュ17がLLCの場合に、L3キャッシュ17に対応づけてDLT20を設ける例を説明したが、L3キャッシュ17以外の階層のキャッシュメモリがLLCの場合は、そのLLCに対応づけてDLT20を設ければよい。また、DLT20は必ずしもLLCに対応づけて設けられるわけではない。例えば、L3キャッシュ17よりも高次のキャッシュメモリが存在する場合に、L3キャッシュ17に対応づけてDLT20を設けてもよい。すなわち、DLT20よりも優先順位の低い高次のキャッシュメモリが存在していてもよい。さらに、LLCよりも上位の階層において、キャッシュ階層間に設けることも可能である。その場合は、たとえばL2キャッシュ5とL3キャッシュ17の間などにDLT20を設けることも可能である。また、この場合、ソケット2ごとに独立したL2キャッシュ5とソケット2間で共有されたL3キャッシュ17との間にDLT20を設けることも可能である。
DLT20は、LLC(L3キャッシュ17)よりもビットエラー率が低いことを特徴とする。LLC(L3キャッシュ17)のL3データキャッシュ部がMRAMで構成されている場合、DLT20のDLTデータキャッシュ部をMRAMよりもビットエラー率が低いメモリ(例えば、SRAM、DRAM、FeRAMまたはReRAMなど)で構成してもよい。また、DLTデータキャッシュ部を同じくMRAMで構成する場合には、複数のMRAMセルにて1セルを構成してビットエラー率を低くしてもよい。あるいは、DLTデータキャッシュ部におけるMRAMの書込み電圧をL3データキャッシュ部におけるMRAMの書込み電圧よりも高くしてビットエラー率を低くしてもよい。あるいは、DLTデータキャッシュ部におけるMRAMの書込みパルス幅をL3データキャッシュ部におけるMRAMの書込みパルス幅よりも長くしてビットエラー率を低くしてもよい。あるいは、DLTデータキャッシュ部については、MRAMのベリファイ処理を設けることで、ビットエラー率を低くしてもよい。あるいは、DLTデータキャッシュ部におけるMRAMの読出し電流をL3データキャッシュ部におけるMRAMより低くしてビットエラー率を低くしてもよい。あるいは、DLTデータキャッシュ部については、より強力なエラー訂正機能を持ったDLT誤り検知訂正部22を設けることでビットエラー率を低くしてもよい。
図3はCPU11のリードアクセス時の処理動作の一例を示すフローチャートである。図3のフローチャートは、L3キャッシュ17がLLCで、L3キャッシュ17に対応してDLT20が設けられている場合の処理動作を示している。上述したように、L3キャッシュ17にダーティなデータを格納する場合は、DLT20にも同じデータが格納されるものとする。
まず、CPU11が読出し要求をしたデータをL1キャッシュ12またはL2キャッシュ5から正しく読み出せたか否かを判定する(ステップS1)。正しく読み出せた場合は、読み出したデータをCPU11に返す(ステップS2)。
ステップS1の判定がNOの場合は、読出し要求のあったデータがL1キャッシュ12とL2キャッシュ5に格納されていないか、あるいは読出し要求のあったデータがL1キャッシュ12またはL2キャッシュ5に格納されているが、格納されているデータに誤り訂正不可能な誤りがある場合である。
ステップS1の判定がNOの場合は、L3キャッシュ17にアクセスする(ステップS3)。ここでは、CPU11が読出し要求をしたデータのアドレスがL3キャッシュ17のL3タグ部にヒットしたか否かを判定する(ステップS4、ヒット判定部)。ヒットすれば、ヒットしたデータをL3データキャッシュ部から読み出す(ステップS5)。そして、読み出したデータに誤りがあった場合には、その誤りを訂正できるか否かを判定する(ステップS6、誤り訂正判定部)。
ステップS6の判定がYESの場合は、L3キャッシュ17から読み出したデータに誤りがなければそのデータを直接、あるいはL3キャッシュ17から読み出したデータに誤りがあれば、L3誤り検知訂正部19で誤り訂正したデータをCPU11に返す(ステップS7)。ステップS6の判定がNOの場合は、DLT20にアクセスする(ステップS8)。すなわち、CPU11が読出し要求をしたデータのアドレスがDLTタグ部にヒットしたか否かを判定する(ステップS9)。ヒットすれば、ヒットしたデータをDLTデータキャッシュ部から読み出す(ステップS10)。ここでは、DLTデータキャッシュ部の信頼性は十分に高いことを前提としており、仮にDLTデータキャッシュ部から読み出したデータに誤りがあっても、その誤りをDLT誤り検知訂正部22にて訂正できるものと仮定している。
一方、ステップS9でミスした場合には、メインメモリ23にアクセスする(ステップS11)。そして、CPU11が読出し要求をしたデータをメインメモリ23から読み出して(ステップS12)、読み出したデータをL1キャッシュ12、L2キャッシュ5およびL3キャッシュ17に書き込む(フィルする)(ステップS13)。この場合、メインメモリ23から読み出されたデータは、DLT20には書き込まれない。このように、メインメモリからのデータを読み出す際には、そのデータはDLTにフィルされない。この点で、DLT20は、通常のキャッシュメモリとは動作が異なる。
図4はCPU11の書込み要求によりL2キャッシュ5からデータが追い出された場合の処理動作の一例を示すフローチャートである。L2キャッシュ5からデータが追い出されると、L3キャッシュ17にアクセスする(ステップS21)。ここでは、L2キャッシュ5から追い出されたデータのアドレスがL3タグ部にヒットしたか否かを判定する(ステップS22)。ヒットした場合には、L3データキャッシュ部内の対応データを、L2キャッシュ5から追い出されたデータに更新する(ステップS23)。ステップS22でミスした場合は、L3キャッシュ17から、無効(Invalid)なデータまたはクリーンなデータを消去して、消去したデータの代わりにL2キャッシュ5から追い出されたデータを書き込む(ステップS24)。
ステップS23またはS24の処理が終了すると、次に、DLT20にアクセスする(ステップS25)。ここでは、L3キャッシュ17に書き戻したデータのアドレスがDLTタグ部にヒットしたか否かを判定する(ステップS26)。ヒットすれば、L3キャッシュ17に書き戻したデータ、すなわちL2キャッシュ5から追い出されたデータをDLT20にも書き込む(ステップS27)。ステップS26でミスすれば、DLT20内の古いデータを追い出して(Evictして)、代わりに、L2キャッシュ5から追い出されたデータをDLT20にも書き込む(ステップS28)。次に、DLT20から追い出されたデータをメインメモリ23に書き戻す(ステップS29)。
このように、本実施形態では、階層化された複数のキャッシュメモリのうち、少なくとも1階層のキャッシュメモリ(例えば、LLC)に対応づけてDLT20を設ける。DLT20はLLCよりも、ビットエラー率が低いメモリであり、LLCは不揮発メモリデータ領域を有する。そして、LLCに新たにダーティなデータを書き込む際には、DLT20にも同じデータを書き込む。これにより、LLCから正しいデータを読み出せなくても、DLT20から正しいデータを読み出せるようになり、LLCに不揮発メモリデータ領域を設けたとしても、データの信頼性が低下するおそれはなくなる。不揮発メモリデータ領域としてMRAMを用いる場合、NAND型フラッシュメモリよりも高集積化が可能であり、アクセス速度も速いため、LLCのアクセス性能を向上できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 キャッシュメモリシステム、2 ソケット、3 コア部、4 L2キャッシュバス、5 L2キャッシュ、6 L2キャッシュコントローラ、7 L2誤り検知訂正部、11 CPUコア、12 L1データキャッシュ、13 L1データキャッシュコントローラ、14 L1命令キャッシュ、15 Iキャッシュコントローラ、16 L3キャッシュバス、17 L3キャッシュ、18 L3キャッシュコントローラ、19 L3誤り検知訂正部、20 DLT、21 DLTコントローラ、22 DLT誤り検知訂正部、23 メインメモリ、24 メモリコントローラ、25 MAIN誤り検知訂正部

Claims (10)

  1. 不揮発メモリデータ領域を含む第1メモリと、
    前記不揮発メモリデータ領域内のデータのうち、前記第1メモリよりもアクセス優先度の低い下位階層の第2メモリへの書き戻しを行っていないデータを、前記第2メモリに格納する前に格納する第3メモリと、を備え、
    前記第3メモリのビットエラー率は、前記第1メモリのビットエラー率よりも低いメモリシステム。
  2. 読出し要求のあった前記不揮発メモリデータ領域内のデータの誤りを訂正する誤り訂正部と、
    読出し要求のあったデータのうち、前記誤り訂正部で訂正できないデータを前記第3メモリから読み出す制御を行うコントローラと、を備える請求項1に記載のメモリシステム。
  3. 読出し要求のあったデータが前記不揮発メモリデータ領域に格納されているか否かを判定するヒット判定部と、
    前記ヒット判定部により格納されていると判定されたデータに誤りがあるか否かを検知し、誤りがあれば前記誤り訂正部での誤り訂正が可能か否かを判定する誤り訂正判定部と、を備え、
    前記コントローラは、前記ヒット判定部により格納されていると判定されたデータに誤りがない場合には、前記不揮発メモリデータ領域からデータを読み出す制御を行い、前記ヒット判定部により格納されていると判定されて前記不揮発メモリデータ領域から読み出されたデータに前記誤り訂正部で誤り訂正可能な誤りがある場合には、前記誤り訂正部で誤り訂正したデータを読み出す制御を行い、前記ヒット判定部により格納されていないと判定された場合には前記第3メモリから前記読出し要求のあったデータを読み出す制御を行う請求項2に記載のメモリシステム。
  4. 前記コントローラは、前記第2メモリからデータを読み出す場合には、このデータを前記第3メモリには書き込まずに、前記第1メモリに書き込む制御を行う請求項2または3に記載のメモリシステム。
  5. 前記コントローラは、前記第3メモリに新たなデータを書き込む場合、あるいは前記第3メモリの電源をオフにする場合に、前記第3メモリに格納されたデータを前記第2メモリに書き戻す請求項乃至4のいずれか1項に記載のメモリシステム。
  6. 前記第3メモリのメモリ容量は、前記第1メモリのメモリ容量よりも小さい請求項1乃至5のいずれか1項に記載のメモリシステム。
  7. 前記第3メモリは、前記第1メモリよりもアクセス速度が高速な揮発データ領域または不揮発データ領域を有する請求項1乃至6のいずれかに記載のメモリシステム。
  8. 前記第1メモリよりもアクセス優先度が高い第4メモリを備え、
    前記第1メモリは、読出し要求のあったデータが前記第4メモリに格納されていなかった場合と、書込み要求により前記第4メモリからデータが追い出された場合とにアクセスされる請求項1乃至7のいずれかに記載のメモリシステム。
  9. 前記第1メモリは、最下位階層のキャッシュメモリであり、
    前記第2メモリは、メインメモリである請求項1乃至8のいずれか1項に記載のメモリシステム。
  10. 前記不揮発メモリデータ領域は、MRAM(Magnetoresistive Random Access Memory)を含む請求項1乃至9のいずれかに記載のメモリシステム。
JP2015183279A 2015-09-16 2015-09-16 メモリシステム Active JP6039772B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015183279A JP6039772B1 (ja) 2015-09-16 2015-09-16 メモリシステム
US15/263,017 US10521134B2 (en) 2015-09-16 2016-09-12 Memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015183279A JP6039772B1 (ja) 2015-09-16 2015-09-16 メモリシステム

Publications (2)

Publication Number Publication Date
JP6039772B1 true JP6039772B1 (ja) 2016-12-07
JP2017058960A JP2017058960A (ja) 2017-03-23

Family

ID=57483222

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015183279A Active JP6039772B1 (ja) 2015-09-16 2015-09-16 メモリシステム

Country Status (2)

Country Link
US (1) US10521134B2 (ja)
JP (1) JP6039772B1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200127793A (ko) * 2019-05-03 2020-11-11 에스케이하이닉스 주식회사 메모리 장치의 캐시 시스템 및 캐시 시스템의 데이터 캐싱 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090411A (ja) * 2006-09-29 2008-04-17 Fujitsu Ltd 情報処理装置、命令制御機構及び命令制御方法
JP2015519640A (ja) * 2012-04-19 2015-07-09 クアルコム,インコーポレイテッド 階層メモリの磁気抵抗ランダムアクセスメモリ(mram)アーキテクチャ
JP2015528601A (ja) * 2012-08-10 2015-09-28 クアルコム,インコーポレイテッド マルチコアプロセッサ用の調整可能なマルチティアstt−mramキャッシュ

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3457394B2 (ja) 1994-09-16 2003-10-14 株式会社東芝 情報記憶装置
JP3789998B2 (ja) * 1997-01-17 2006-06-28 株式会社ルネサステクノロジ メモリ内蔵プロセサ
US6078992A (en) * 1997-12-05 2000-06-20 Intel Corporation Dirty line cache
US20050071564A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation Reduction of cache miss rates using shared private caches
WO2007097027A1 (ja) 2006-02-27 2007-08-30 Fujitsu Limited 縮退制御装置および縮退制御プログラム
US7752395B1 (en) * 2007-02-28 2010-07-06 Network Appliance, Inc. Intelligent caching of data in a storage server victim cache
JP2008276646A (ja) 2007-05-02 2008-11-13 Hitachi Ltd ストレージ装置及びストレージ装置におけるデータの管理方法
JP5202130B2 (ja) * 2008-06-24 2013-06-05 株式会社東芝 キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法
WO2012029137A1 (ja) 2010-08-31 2012-03-08 富士通株式会社 演算処理装置、情報処理装置、及び演算処理装置の制御方法
US9396135B2 (en) * 2011-05-18 2016-07-19 University Of North Texas Method and apparatus for improving computer cache performance and for protecting memory systems against some side channel attacks
WO2013042240A1 (ja) 2011-09-22 2013-03-28 富士通株式会社 情報処理装置及び情報処理装置の制御方法
US20140189204A1 (en) 2012-12-28 2014-07-03 Hitachi, Ltd. Information processing apparatus and cache control method
JP6029737B2 (ja) 2013-02-15 2016-11-24 三菱電機株式会社 制御装置
JP6275427B2 (ja) 2013-09-06 2018-02-07 株式会社東芝 メモリ制御回路およびキャッシュメモリ
JP2015135603A (ja) 2014-01-17 2015-07-27 株式会社東芝 ストレージ装置及びデータを書き込む記憶領域を選択する方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090411A (ja) * 2006-09-29 2008-04-17 Fujitsu Ltd 情報処理装置、命令制御機構及び命令制御方法
JP2015519640A (ja) * 2012-04-19 2015-07-09 クアルコム,インコーポレイテッド 階層メモリの磁気抵抗ランダムアクセスメモリ(mram)アーキテクチャ
JP2015528601A (ja) * 2012-08-10 2015-09-28 クアルコム,インコーポレイテッド マルチコアプロセッサ用の調整可能なマルチティアstt−mramキャッシュ

Also Published As

Publication number Publication date
US20170075601A1 (en) 2017-03-16
JP2017058960A (ja) 2017-03-23
US10521134B2 (en) 2019-12-31

Similar Documents

Publication Publication Date Title
US10691626B2 (en) Memory channel that supports near memory and far memory access
JP6124366B2 (ja) 方法、プロセッサ、システム、およびプログラム
JP6030085B2 (ja) キャッシュメモリおよびプロセッサシステム
US8037232B2 (en) Data protection method for power failure and controller using the same
US9189325B2 (en) Memory system and operation method thereof
JP4989872B2 (ja) 半導体記憶装置および演算処理装置
US8966181B2 (en) Memory hierarchy with non-volatile filter and victim caches
JP2005301591A (ja) 不揮発性メモリを備えた装置及びメモリコントロ−ラ
KR20100097454A (ko) 복수의 상 변화 메모리들, 버퍼램, 및 낸드 플래시 메모리를 구비한 메모리 모듈
CN108292283B (zh) 用于基于写入计数调整写入参数的设备及方法
JP5259138B2 (ja) 記憶装置
JP2007199905A (ja) 半導体記憶装置の制御方法
JP5337277B1 (ja) 磁気ランダムアクセスメモリ及びメモリシステム
JP2018049385A (ja) メモリシステムおよびプロセッサシステム
US10235049B2 (en) Device and method to manage access method for memory pages
US10496546B2 (en) Cache memory and processor system
JP2007094921A (ja) メモリカードとその制御方法
JP6039772B1 (ja) メモリシステム
US10402325B2 (en) Memory system
JP2011070470A (ja) 半導体記憶装置
JP2006031778A (ja) 半導体記憶装置及びメモリへのアクセス方法
JP2012018700A (ja) 演算処理装置、および記憶システム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160920

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161104

R151 Written notification of patent or utility model registration

Ref document number: 6039772

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