特許第6039772号(P6039772)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧

<>
  • 特許6039772-メモリシステム 図000002
  • 特許6039772-メモリシステム 図000003
  • 特許6039772-メモリシステム 図000004
  • 特許6039772-メモリシステム 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6039772
(24)【登録日】2016年11月11日
(45)【発行日】2016年12月7日
(54)【発明の名称】メモリシステム
(51)【国際特許分類】
   G06F 12/08 20160101AFI20161128BHJP
   G06F 11/10 20060101ALI20161128BHJP
【FI】
   G06F12/08 509B
   G06F12/08 553B
   G06F11/10 664
【請求項の数】10
【全頁数】11
(21)【出願番号】特願2015-183279(P2015-183279)
(22)【出願日】2015年9月16日
【審査請求日】2015年9月16日
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成27年度、独立行政法人新エネルギー・産業技術総合開発機構「ノーマリーオフコンピューティング基盤技術開発」委託研究、産業技術力強化法第19条の適用を受ける特許出願
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】100117787
【弁理士】
【氏名又は名称】勝沼 宏仁
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100118876
【弁理士】
【氏名又は名称】鈴木 順生
(74)【代理人】
【識別番号】100103263
【弁理士】
【氏名又は名称】川崎 康
(72)【発明者】
【氏名】野口 紘希
(72)【発明者】
【氏名】藤田 忍
【審査官】 後藤 彰
(56)【参考文献】
【文献】 特開2008−090411(JP,A)
【文献】 特表2015−528601(JP,A)
【文献】 特表2015−519640(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/08
G06F 11/10
(57)【特許請求の範囲】
【請求項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のいずれかに記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリシステムに関する。
【背景技術】
【0002】
携帯情報端末に用いられるプロセッサは、低消費電力であることが求められる。プロセッサの低消費電力化手法の1つとして、待機電力の大きいSRAM(Static Random Access Memory)を用いたキャッシュメモリを、不揮発性メモリに置換する手法がある。
【0003】
不揮発メモリには、MRAM(Magnetoresistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、ReRAM(Resistance Random Access Memory)などがあるが、特にMRAMは、現在提案されている不揮発性メモリの中で高い書き換え耐性と、高速の読出しと書込みが可能な動作性能と、高集積可能なセル面積との3つの特徴を同時に満たしうるメモリである。
【0004】
しかしながら、MRAMは、SRAMやDRAMと比べて、ビットエラー率が高い。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】国際公開2012/029137
【特許文献2】国際公開2013/042240
【発明の概要】
【発明が解決しようとする課題】
【0006】
本実施形態は、不揮発メモリを用いながらも、信頼性およびアクセス性能を向上可能なメモリシステムを提供するものである。
【課題を解決するための手段】
【0007】
上記の課題を解決するために、本発明の一態様では、不揮発メモリデータ領域を含む第1メモリと、
前記不揮発メモリデータ領域内のデータのうち、前記第1メモリよりもアクセス優先度の低い下位階層の第2メモリへの書き戻しを行っていないデータを、前記第2メモリに格納する前に格納する第3メモリと、を備え、
前記第3メモリのビットエラー率は、前記第1メモリのビットエラー率よりも低いメモリシステムが提供される。
【図面の簡単な説明】
【0008】
図1】一実施形態によるキャッシュメモリシステムの概略構成を示すブロック図。
図2】本実施形態のキャッシュメモリシステムの処理動作を模式的に示す図。
図3】CPUのリードアクセス時の処理動作の一例を示すフローチャート。
図4】CPUの書込み要求によりL2キャッシュからデータが追い出された場合の処理動作の一例を示すフローチャート。
【発明を実施するための形態】
【0009】
以下、本発明の実施の形態について、詳細に説明する。図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を設けることは必須ではない。
【0010】
L2キャッシュバス4は、複数のコア部3に接続されている。複数のコア部3は、L2キャッシュバス4とL2キャッシュコントローラ6を介して、共通のL2キャッシュ5にアクセスする。L2キャッシュ5のメモリ容量は、例えば256kバイトである。L2キャッシュ5は、L2タグ部(不図示)と、L2データキャッシュ部(不図示)とを有する。L2誤り検知訂正部7は、L2データキャッシュ部に書き込んだデータを読み出す際に、誤り検知と誤り訂正とを行う。
【0011】
各コア部3は、CPUコア11と、L1データキャッシュ(L1d$)12と、L1データキャッシュコントローラ13と、L1命令キャッシュ(L1i$)14と、Iキャッシュコントローラ15とを有する。L1データキャッシュ12とL1命令キャッシュ14のメモリ容量は任意だが、例えば32kバイトのメモリ容量を有する。
【0012】
この他、図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が実装される場合もある。
【0013】
各ソケット2は、L3キャッシュバス16とL3キャッシュコントローラ18を介して、共通のL3キャッシュ17にアクセスする。L3キャッシュ17のメモリ容量は例えば32Mバイトである。
【0014】
L3キャッシュ17は、L3タグ部と、L3データキャッシュ部とを有する。L3データキャッシュ部は、STT−MRAM等の不揮発メモリで構成される不揮発メモリデータ領域である。L3タグ部は、例えばSRAM等のL3データキャッシュ部よりもアクセス速度が速いメモリである。L3誤り検知訂正部19は、L3データキャッシュ部に書き込んだデータを読み出す際に、誤り検知と誤り訂正とを行う。
【0015】
DLT20は、DLTコントローラ21によりアクセスされる。DLTコントローラ21は、L3キャッシュコントローラ18に接続されている。DLT20は、L3キャッシュ17とメインメモリ23との間の階層のキャッシュメモリとみなすこともできるし、L3キャッシュ17と同じ階層のキャッシュメモリとみなすこともできる。後述するように、DLT20は、部分的には通常のキャッシュメモリに類似する動作を行うが、通常のキャッシュメモリと異なる動作も行う部分もある。
【0016】
DLT20のメモリ容量は、L3キャッシュ17のメモリ容量よりもはるかに小さく、例えば64kバイト程度で構わない。DLT20のアクセス速度は、L3キャッシュ17のアクセス速度よりも速くするのが望ましいが、L3キャッシュ17と同等あるいはL3キャッシュ17以下のアクセス速度でも構わない。
【0017】
DLT20は、DLTタグ部(不図示)と、DLTデータキャッシュ部(不図示)とを有する。DLTデータキャッシュ部は、L3データキャッシュ部よりもビットエラー率の低いSRAM等のメモリで構成されている。なお、後述するように、DLTデータキャッシュ部とL3データキャッシュ部がともにMRAMで構成されていてもよい。この場合、後述するように、MRAMの使い方やアクセス方式を変えることで、DLTデータキャッシュ部のビットエラー率をL3データキャッシュ部のビットエラー率よりも低くすることができる。
【0018】
DLT誤り検知訂正部22は、DLTデータキャッシュ部に格納されたデータを読み出す際に、誤り検知と誤り訂正とを行う。
【0019】
メインメモリ23は、メモリコントローラ24によりアクセスされる。メモリコントローラ24は、DLTコントローラ21に接続されている。メインメモリ23は、例えばDRAMで構成される。MAIN誤り検知訂正部25は、メインメモリ23に格納されたデータを読み出す際に、誤り検知と誤り訂正とを行う。
【0020】
なお、図1のメモリシステム1のうち、一部の構成部(例えば、複数のコア部3やメインメモリ23など)は、別の半導体チップや回路基板に配置される場合がありうる。すなわち、本実施形態によるメモリシステム1は、少なくともL3キャッシュ17と、L3キャッシュコントローラ18と、L3誤り検知訂正部19と、DLT20と、DLTコントローラ21と、DLT誤り検知訂正部22とを有する。
【0021】
図1では、L3キャッシュ17を制御するL3キャッシュコントローラ18と、DLT20を制御するDLTコントローラ21と、メインメモリ23を制御するメモリコントローラ24とを別個に設ける例を示しているが、これらコントローラのうち2つ以上を1つのコントローラに統合してもよい。
【0022】
図2は本実施形態のメモリシステム1の処理動作を模式的に示す図である。図2に示すように、図1のメモリシステム1は、L1キャッシュ12、L2キャッシュ5、L3キャッシュ17、およびメインメモリ23と4階層のメモリ構成になっており、L1キャッシュが最上位階層であり、メインメモリ23が最下位階層である。また、L3キャッシュ17は、最下位のキャッシュメモリであり、LLC(Last Level Cache)と呼ばれる。下位階層のメモリほど、メモリ容量が大きくなり、かつアクセス速度が遅くなる。
【0023】
なお、LLCは、必ずしもL3キャッシュ17とは限らない。例えば、L4キャッシュ以降の高次のキャッシュメモリをLLCとしてもよい。反対に、キャッシュ階層を2階層にして、L2キャッシュ5をLLCとしてもよい。
【0024】
図2に示すように、本実施形態のキャッシュメモリは、LLCとメインメモリ23との間に、LLCよりも小メモリ容量のDLT20を設けている。
【0025】
DLT20は、LLCに新たなデータを格納する際、そのデータがダーティなデータの場合に格納される。すなわち、LLCに新たに格納されるデータが、LLCよりも下位階層のメインメモリ23にまだ書き込まれていない場合には、そのデータがLLCとDLT20の双方に格納される。
【0026】
このようにする理由は、DLT20は、LLCよりもビットエラー率が低いことから、LLCから読み出したデータに誤りがあっても、DLT20から同じデータを読み出せば、CPUに正しいデータを引き渡せるためである。
【0027】
LLCがL3キャッシュ17であれば、L3キャッシュ17から読み出したデータは、L3誤り検知訂正部19にて誤り訂正を行うことができる。よって、L3誤り検知訂正部19で正しく誤り訂正できたデータは、そのままCPUに引き渡せばよい。
【0028】
図2では、L1キャッシュ12、L2キャッシュ5、LLC17およびメインメモリ23間でのデータの送受を矢印線で表している。CPU11とL1キャッシュ12間のデータ送受(矢印線y1)と、L1キャッシュ12とL2キャッシュ5間のデータ送受(矢印線y2)とは、従来のキャッシュメモリと同じである。
【0029】
LLC(L3キャッシュ17)に書き込まれたデータ(矢印線y3)のうち、ダーティなデータはDLT20にも書き込まれる(矢印線y4)。LLC(L3キャッシュ17)から読み出されるデータ(矢印線y5)のうち、L3誤り検知訂正部19で誤り訂正できなかったデータは、DLT20から読み出される(矢印線y6)。
【0030】
DLT20に書き込まれたデータは、所定のタイミングでメインメモリ23に書き戻される(矢印線y7)。所定のタイミングとは、DLT20に新たなデータを書き込む場合や、DLT20の電源をオフする場合である。
【0031】
メインメモリ23から読み出されたデータは、DLT20には書き込まれずにLLC(L3キャッシュ17)に書き込まれる(矢印線y8)。
【0032】
このように、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のビットエラー率より低いと定義する。
【0033】
DLT20は、L3キャッシュ17からデータを読み出す際のデータの信頼性を向上させるために設けられるものである。よって、メインメモリ23からデータを読み出す際には、そのデータをDLT20に格納する必要はない。このように、DLT20は、厳密な意味では、LLC(L3キャッシュ17)よりも下位階層のキャッシュメモリではない。
【0034】
上述したように、L3キャッシュ17に新たなデータを書き込む場合に、そのデータがメインメモリ23に格納されていないダーティなデータであれば、DLT20にも書き込まれる。このため、DLT20にデータを書き込んだ時点では、同じデータが必ずL3キャッシュ17にも存在する。その後、L3キャッシュ17にクリーンなデータを書き込むなどして、DLT20に書き込んだデータと同じデータをL3キャッシュ17から消去(更新)する場合がありうる。よって、DLT20に書き込んだデータは、その直後はL3キャッシュ17にも存在するが、時間の経過とともにL3キャッシュ17に存在しなくなる可能性がありうる。
【0035】
上述した説明では、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を設けることも可能である。
【0036】
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を設けることでビットエラー率を低くしてもよい。
【0037】
図3はCPU11のリードアクセス時の処理動作の一例を示すフローチャートである。図3のフローチャートは、L3キャッシュ17がLLCで、L3キャッシュ17に対応してDLT20が設けられている場合の処理動作を示している。上述したように、L3キャッシュ17にダーティなデータを格納する場合は、DLT20にも同じデータが格納されるものとする。
【0038】
まず、CPU11が読出し要求をしたデータをL1キャッシュ12またはL2キャッシュ5から正しく読み出せたか否かを判定する(ステップS1)。正しく読み出せた場合は、読み出したデータをCPU11に返す(ステップS2)。
【0039】
ステップS1の判定がNOの場合は、読出し要求のあったデータがL1キャッシュ12とL2キャッシュ5に格納されていないか、あるいは読出し要求のあったデータがL1キャッシュ12またはL2キャッシュ5に格納されているが、格納されているデータに誤り訂正不可能な誤りがある場合である。
【0040】
ステップS1の判定がNOの場合は、L3キャッシュ17にアクセスする(ステップS3)。ここでは、CPU11が読出し要求をしたデータのアドレスがL3キャッシュ17のL3タグ部にヒットしたか否かを判定する(ステップS4、ヒット判定部)。ヒットすれば、ヒットしたデータをL3データキャッシュ部から読み出す(ステップS5)。そして、読み出したデータに誤りがあった場合には、その誤りを訂正できるか否かを判定する(ステップS6、誤り訂正判定部)。
【0041】
ステップS6の判定がYESの場合は、L3キャッシュ17から読み出したデータに誤りがなければそのデータを直接、あるいはL3キャッシュ17から読み出したデータに誤りがあれば、L3誤り検知訂正部19で誤り訂正したデータをCPU11に返す(ステップS7)。ステップS6の判定がNOの場合は、DLT20にアクセスする(ステップS8)。すなわち、CPU11が読出し要求をしたデータのアドレスがDLTタグ部にヒットしたか否かを判定する(ステップS9)。ヒットすれば、ヒットしたデータをDLTデータキャッシュ部から読み出す(ステップS10)。ここでは、DLTデータキャッシュ部の信頼性は十分に高いことを前提としており、仮にDLTデータキャッシュ部から読み出したデータに誤りがあっても、その誤りをDLT誤り検知訂正部22にて訂正できるものと仮定している。
【0042】
一方、ステップS9でミスした場合には、メインメモリ23にアクセスする(ステップS11)。そして、CPU11が読出し要求をしたデータをメインメモリ23から読み出して(ステップS12)、読み出したデータをL1キャッシュ12、L2キャッシュ5およびL3キャッシュ17に書き込む(フィルする)(ステップS13)。この場合、メインメモリ23から読み出されたデータは、DLT20には書き込まれない。このように、メインメモリからのデータを読み出す際には、そのデータはDLTにフィルされない。この点で、DLT20は、通常のキャッシュメモリとは動作が異なる。
【0043】
図4はCPU11の書込み要求によりL2キャッシュ5からデータが追い出された場合の処理動作の一例を示すフローチャートである。L2キャッシュ5からデータが追い出されると、L3キャッシュ17にアクセスする(ステップS21)。ここでは、L2キャッシュ5から追い出されたデータのアドレスがL3タグ部にヒットしたか否かを判定する(ステップS22)。ヒットした場合には、L3データキャッシュ部内の対応データを、L2キャッシュ5から追い出されたデータに更新する(ステップS23)。ステップS22でミスした場合は、L3キャッシュ17から、無効(Invalid)なデータまたはクリーンなデータを消去して、消去したデータの代わりにL2キャッシュ5から追い出されたデータを書き込む(ステップS24)。
【0044】
ステップS23またはS24の処理が終了すると、次に、DLT20にアクセスする(ステップS25)。ここでは、L3キャッシュ17に書き戻したデータのアドレスがDLTタグ部にヒットしたか否かを判定する(ステップS26)。ヒットすれば、L3キャッシュ17に書き戻したデータ、すなわちL2キャッシュ5から追い出されたデータをDLT20にも書き込む(ステップS27)。ステップS26でミスすれば、DLT20内の古いデータを追い出して(Evictして)、代わりに、L2キャッシュ5から追い出されたデータをDLT20にも書き込む(ステップS28)。次に、DLT20から追い出されたデータをメインメモリ23に書き戻す(ステップS29)。
【0045】
このように、本実施形態では、階層化された複数のキャッシュメモリのうち、少なくとも1階層のキャッシュメモリ(例えば、LLC)に対応づけてDLT20を設ける。DLT20はLLCよりも、ビットエラー率が低いメモリであり、LLCは不揮発メモリデータ領域を有する。そして、LLCに新たにダーティなデータを書き込む際には、DLT20にも同じデータを書き込む。これにより、LLCから正しいデータを読み出せなくても、DLT20から正しいデータを読み出せるようになり、LLCに不揮発メモリデータ領域を設けたとしても、データの信頼性が低下するおそれはなくなる。不揮発メモリデータ領域としてMRAMを用いる場合、NAND型フラッシュメモリよりも高集積化が可能であり、アクセス速度も速いため、LLCのアクセス性能を向上できる。
【0046】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0047】
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誤り検知訂正部
【要約】      (修正有)
【課題】不揮発メモリを用いながらも、信頼性およびアクセス性能を向上可能なメモリシステムを提供する。
【解決手段】メモリシステム1は、不揮発メモリデータ領域を含む第1メモリ17と、不揮発メモリデータ領域内のデータのうち、第1メモリよりもアクセス優先度の低い下位階層の第2メモリ23への書き戻しを行っていないデータを、第2メモリに格納する前に格納する第3メモリ20と、を備え、第3メモリのビットエラー率は、第1メモリのビットエラー率よりも低い。
【選択図】図1
図1
図2
図3
図4