JP2016170729A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2016170729A JP2016170729A JP2015051379A JP2015051379A JP2016170729A JP 2016170729 A JP2016170729 A JP 2016170729A JP 2015051379 A JP2015051379 A JP 2015051379A JP 2015051379 A JP2015051379 A JP 2015051379A JP 2016170729 A JP2016170729 A JP 2016170729A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- cache
- mode
- data
- cache memory
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
- G06F2212/6012—Reconfiguration of cache memory of operating mode, e.g. cache mode or local memory mode
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
Abstract
【課題】アクセス性能を低下させずに、大容量化と低消費電力化を図る。【解決手段】メモリシステムは、揮発性メモリを有する第1キャッシュメモリと、揮発性メモリよりもアクセス速度が低速な不揮発性メモリを有する第2キャッシュメモリと、第2キャッシュメモリを第1キャッシュメモリよりも下位階層のキャッシュメモリとして使用する第1モードと、第1キャッシュメモリおよび第2キャッシュメモリを同一階層の別個のキャッシュメモリとして使用する第2モードとの切替を行う再構成コントローラと、を備える。【選択図】図1
Description
本発明の実施形態は、キャッシュメモリを備えたメモリシステムに関する。
メモリウォール問題と称されるように、メモリアクセスに要する時間と消費電力が演算コアの性能向上を阻害する大きな要因となっている。
このため、メインメモリよりも高速なキャッシュメモリを大容量化する方策などが取られている。従来のキャッシュメモリは、メインメモリとして用いられるDRAM(Dynamic Random Access Memory)よりも高速なSRAM(Static RAM)を用いることが多かったが、SRAMはDRAMほどは高集積化ができず、価格も高いため、キャッシュメモリを大容量化すると、回路面積の増大や価格の上昇という問題を引き起こす。
SRAM以外の次世代メモリを用いることも検討されており、例えば、DRAMよりも高速なMRAM(Magnetoresistive RAM)をキャッシュメモリとして利用する検討もなされている。MRAMは、高集積化が比較的容易な不揮発性メモリであり、低リーク電力であるため省電力化も可能であるが、特に書き込み時の速度がSRAMよりも遅いため、アクセス速度の観点ではSRAMよりも劣っている。
本発明が解決しようとする課題は、アクセス性能を低下させずに、大容量化と低消費電力化を図ることが可能なメモリシステムを提供するものである。
本実施形態では、揮発性メモリを有する第1キャッシュメモリと、
前記揮発性メモリよりもアクセス速度が低速な不揮発性メモリを有する第2キャッシュメモリと、
前記第2キャッシュメモリを前記第1キャッシュメモリよりも下位階層のキャッシュメモリとして使用する第1モードと、前記第1キャッシュメモリおよび前記第2キャッシュメモリを同一階層の別個のキャッシュメモリとして使用する第2モードとの切替を行う再構成コントローラと、を備えるメモリシステムが提供される。
前記揮発性メモリよりもアクセス速度が低速な不揮発性メモリを有する第2キャッシュメモリと、
前記第2キャッシュメモリを前記第1キャッシュメモリよりも下位階層のキャッシュメモリとして使用する第1モードと、前記第1キャッシュメモリおよび前記第2キャッシュメモリを同一階層の別個のキャッシュメモリとして使用する第2モードとの切替を行う再構成コントローラと、を備えるメモリシステムが提供される。
以下、図面を参照して本発明の実施形態を説明する。以下の実施形態では、メモリシステム内の特徴的な構成および動作を中心に説明するが、メモリシステムには以下の説明で省略した構成および動作が存在しうる。ただし、これらの省略した構成および動作も本実施形態の範囲に含まれるものである。
図1は一実施形態によるメモリシステム1を備えたプロセッサシステム2の概略構成を示すブロック図である。図1のプロセッサシステム2は、演算コア3と、メモリシステム1とを備えている。メモリシステム1は、L1キャッシュ4と、再構成可能なキャッシュメモリ5とを備えている。メモリシステム1には、最下層のメモリであるメインメモリ6が接続されている。メモリシステム1の中にメインメモリ6を含めてもよいが、本明細書では、メモリシステム1の外部にメインメモリ6が設けられる例を説明する。
演算コア3は、複数のコア部を有するマルチコア構成でもよいし、シングルコア構成でもよい。演算コア3はL1キャッシュ4に接続されている。演算コア3は、演算に利用するデータや命令の読み出し、および演算結果のデータの格納をL1キャッシュ4に対して行う。
L1キャッシュ4は、最上層のキャッシュメモリであり、高速のアクセス性能が要求されるため、例えばSRAMで構成されている。
再構成可能なキャッシュメモリ5は、L1キャッシュ4よりも下位階層のキャッシュメモリである。図1の例では、演算コア3が要求したデータがL1キャッシュ4内に格納されていない場合に、再構成可能なキャッシュメモリ5へのアクセスが行われる。再構成可能とは、キャッシュメモリの構造を複数通りに切り替えることができることを意味する。後述するように、再構成可能なキャッシュメモリ5は、複数のキャッシュメモリを有し、これら複数のキャッシュメモリを別階層のキャッシュメモリとして使用するモード(第1モード)と、同一階層でアクセス速度が相違する別個のキャッシュメモリとして使用するモード(第2モード)とに切替可能である。
なお、本明細書では、再構成可能なキャッシュメモリ5が2つのキャッシュメモリで構成されている例を説明するが、再構成可能なキャッシュメモリ5内に含まれるキャッシュメモリの数は2以上であればよく、その数は任意である。例えば、再構成可能なキャッシュメモリ5内に3つのキャッシュメモリが含まれる場合、第1モードでは、これら3つのキャッシュメモリを別階層のキャッシュメモリとして利用し、第2モードでは、これら3つのキャッシュメモリを同一階層でアクセス速度がそれぞれ相違する別個のキャッシュメモリとして利用する。本明細書では、説明の簡略化のために、再構成可能なキャッシュメモリ5の中に2つのキャッシュメモリがあり、第1モードまたは第2モードに切替可能である例を説明する。
メインメモリ6は、例えばDRAMで構成されている。演算コア3が要求したデータがL1キャッシュ4に格納されていない場合、このデータが再構成可能なキャッシュメモリ5に格納されているか否かが検索され、再構成可能なキャッシュメモリ5にも格納されていなければ、メインメモリ6へのアクセスが行われる。
図2は再構成可能なキャッシュメモリ5の内部構成の一例を示すブロック図である。図2に示す再構成可能なキャッシュメモリ5は、L2データアレイ(第1キャッシュメモリ、第1キャッシュデータ部)11と、第1L2タグアレイ(第1タグ部)12と、L2コントローラ(第1コントローラ)13と、L3データアレイ(第2キャッシュメモリ、第2キャッシュデータ部)14と、第2L2タグアレイ(第2タグ部)15と、L3タグアレイ16と、L3コントローラ(第2コントローラ)17と、再構成コントローラ18と、構成情報レジスタ(切替情報格納部)19と、誤り訂正回路(誤り訂正部)20と、を有する。
ここで、再構成可能なキャッシュメモリ5は、必ずしもL2階層とL3階層のキャッシュメモリを対象としたものとは限らない。例えば、L1キャッシュ4とL2キャッシュまでは既存のキャッシュメモリと同様の階層化メモリとし、L3キャッシュとL4キャッシュを再構成可能なキャッシュメモリ5に置換してもよい。以下では、説明の簡略化のために、再構成可能なキャッシュメモリ5が図2のような構成である例を説明する。
L2データアレイ11は、演算コア3から要求のあったデータを格納する揮発性メモリであり、第1L2タグアレイ12は、第1モード時にL2データアレイ11内のデータのアドレス情報を格納する揮発性メモリである。より具体的な一例では、L2データアレイ11と第1L2タグアレイ12はいずれも、SRAMで構成されている。
L2コントローラ13は、後述するように、再構成コントローラ18が切り替えたモードに応じて、L2データアレイ11へのアクセスを制御する。より具体的には、L2コントローラ13は、第1モード時には、L2データアレイ11をL1キャッシュ4の下位階層のL2キャッシュメモリとみなしてアクセスを行う。この場合、L2コントローラ13は、キャッシュライン単位でL2データアレイ11にアクセスする。一方、L2コントローラ13は、第2モード時には、L2データアレイ11へのアクセスを停止する。このように、第2モード時では、L2コントローラ13と第1L2タグアレイ12は使用しなくてもよい。
L3データアレイ14は、演算コア3から要求のあったデータを格納する不揮発性メモリである。第2L2タグアレイ15は、後述する第1モードでは使用せず、第2モード時にL2データアレイ11内のデータのアドレス情報を格納する揮発性メモリである。L3タグアレイ16は、L3データアレイ14内のデータのアドレス情報を格納する揮発性メモリである。より具体的な一例では、L3データアレイ14はMRAMで構成され、第2L2タグアレイ15とL3タグアレイ16はSRAMで構成されている。L3タグアレイ16をSRAMにする理由は、演算コア3から要求のあったデータがL3データアレイ14内に格納されているか否かのヒット/ミス判定をできるだけ迅速に行う必要があるためである。また、L3タグアレイ16はL3データアレイ14に比べてメモリ容量が小さいため、SRAMを用いたとしても、回路面積の増大やコストアップが問題になることはない。なお、場合によっては、L3タグアレイ16をMRAM等の不揮発性メモリで構成してもよい。
L3データアレイ14とL3タグアレイ16は、第1モード時には、L3キャッシュメモリとして機能する。また、第2モード時には、L2データアレイ11とL3データアレイ14は、同一階層でアクセス速度が互いに相違するハイブリッドメモリとして機能する。
誤り訂正回路20は、L3データアレイ14から読み出したデータに対して誤り訂正処理を行い、誤り訂正されたデータをL3コントローラ17に供給する。誤り訂正回路20が必要になる理由は、L3データアレイ14としてMRAMを用いた場合、SRAMと比較して、ビットエラーの発生頻度が高いためである。演算コア3が要求したデータをL3データアレイ14から読み出した場合は、誤り訂正回路20で誤り訂正を行った後のデータが、演算コア3や、L1キャッシュ4およびL2データアレイ11に供給されるため、MRAMから読み出したデータであっても、データの信頼性が低下することはない。
再構成コントローラ18は、L2データアレイ11をL1キャッシュ4の下位階層のキャッシュメモリとして使用する第1モードと、L2データアレイ11および第3データアレイを同一階層でアクセス速度が互いに相違する別個のキャッシュメモリとして使用する第2モードとの切替を行う。
再構成コントローラ18は、後述するように、L2データアレイ11とL3データアレイ14のアクセス頻度情報に基づいて、第1モードと第2モードとの切替を行う。再構成コントローラ18は、切り替えるモードの情報を構成情報レジスタ19に格納する。この構成情報レジスタ19は、再構成コントローラ18の内部に設けてもよい。
L2コントローラ13の内部には、不図示のL2データレジスタが設けられている。同様に、L3コントローラ17の内部には、不図示のL3データレジスタが設けられている。再構成コントローラ18は、構成情報レジスタ19に設定されたモード情報を、L2コントローラ13およびL3コントローラ17に通知し、L2コントローラ13はL2データレジスタにモード情報を格納し、L3コントローラ17はL3データレジスタにモード情報を格納する。図2の構成情報レジスタ19、L2データレジスタおよびL3データレジスタの構成は一例である。例えば、構成情報レジスタ19のみを保持し、L2コントローラおよびL3コントローラが構成情報レジスタ19を参照する形態であってもよい。
L2コントローラ13は、L2データレジスタ内のモード情報に基づいて、第1モードか第2モードかを判別し、L2データアレイ11へのアクセスを制御する。同様に、L3コントローラ17は、L3データレジスタ内のモード情報に基づいて、第1モードか第2モードかを判別し、L2データアレイ11とL3データアレイ14とに対するアクセスを制御する。
(モード遷移)
図3は再構成可能なキャッシュメモリ5を第2モードから第1モードに再構成した場合のブロック図である。図3の破線部分は、第1モードでは使用されないことを示している。
図3は再構成可能なキャッシュメモリ5を第2モードから第1モードに再構成した場合のブロック図である。図3の破線部分は、第1モードでは使用されないことを示している。
再構成コントローラ18は、L2データアレイ11とL3データアレイ14のアクセス頻度により、第2モードから第1モードへの再構成を決定すると、構成情報レジスタ19に、第1モードのモード情報(例えば1)を書き込むとともに、このモード情報をL2コントローラ13とL3コントローラ17に通知する。この通知を受けて、L2コントローラ13はL2データレジスタに第1モードのモード情報(例えば1)を書き込む。同様に、L3コントローラ17はL3データレジスタに同様のモード情報を書き込む。
第2モードから第1モードに切り替えた場合、今までL2データアレイ11に格納されていたデータは無効となる。よって、L2コントローラ13は、L2データアレイ11の初期化処理を行う。この初期化処理では、例えば、L2データアレイ11にのみ存在する情報(書き込みが行われたデータ)を下位階層に書き戻すライトバック処理や、第1L2タグアレイ12内の全メモリ領域にも0を書き込む処理を行うことが考えられる。すなわち、L2コントローラ13は、L2データアレイ11と第1L2タグアレイ12の全メモリ領域を0にする処理を行う。
なお、L3データアレイ14に格納されていたデータは、そのままにしておく。L3データアレイ14内のデータをそのまま保持することで、第2モードから第1モードに切り替えた直後であっても、演算コア3から要求のあったデータをL3データアレイ14から取得できる。
第1モードでは、L2データアレイ11とL3データアレイ14は、それぞれ別階層のメモリ(L2キャッシュメモリとL3キャッシュメモリ)として用いられる。より詳細には、L2データアレイ11は、演算コア3が要求したデータがL1キャッシュ4内に存在しない場合、すなわちL1キャッシュ4でキャッシュミスが生じた場合にアクセスされる。L2コントローラ13は、L1キャッシュ4を介して演算コア3からの読み出し要求を受け取ると、その読み出し要求のあったアドレスが第1L2タグアレイ12内のアドレス情報にヒットするか否かを調べて、ヒットすれば、L2データアレイ11へのアクセスを行う。L2コントローラ13は、L2データアレイ11から読み出したデータを、L1キャッシュ4に転送するとともに、演算コア3にも転送する。
L3データアレイ14は、演算コア3が要求したデータがL1キャッシュ4にもL2データアレイ11にも存在しない場合にアクセスされる。L3コントローラ17は、L2コントローラ13を介して演算コア3からの読み出し要求を受け取ると、その読み出し要求のあったアドレスがL3タグアレイ16内のアドレス情報にヒットするか否かを調べて、ヒットすれば、L3データアレイ14へのアクセスを行う。L3コントローラ17は、L3データアレイ14から読み出したデータを、L1キャッシュ4およびL2キャッシュ11に転送すると共に、演算コア3にも転送する。
このように、第1モードでは、L1キャッシュ4、L2データアレイ11(L2キャッシュメモリ)およびL3データアレイ14(L3キャッシュメモリ)は階層化キャッシュメモリとして機能し、例えば、L1キャッシュ4に格納される全データがL2データアレイ11に格納され、L2データアレイ11に格納される全データがL3データアレイ14に格納され、L3データアレイ14に格納される全データがメインメモリ6に格納される。
一般的に、L2データアレイ11は、L1キャッシュ4以上のメモリ容量を必要とする。また、L3データアレイ14は、L2データアレイ11以上のメモリ容量を必要とする。L1キャッシュ4、およびL2データアレイ11に読み書きされるデータ量のアクセス単位は同じ(例えば、64バイトのキャッシュライン単位)でもよいし、異なっていてもよい。例えば、L1キャッシュ4とL2データアレイ11は64バイトのキャッシュライン単位でアクセスし、L3データアレイ14は128バイトのキャッシュライン単位でアクセスしてもよい。いずれにしても、第1モードでは、L2データアレイ11とL3データアレイ14は、キャッシュライン単位でアクセスされる。
図4は再構成可能なキャッシュメモリ5を第1モードから第2モードに再構成した場合のブロック図である。図4の破線部分は、第2モードでは使用されないことを示している。
再構成コントローラ18は、第1モードから第2モードへの再構成を決定すると、構成情報レジスタ19に第2モードのモード情報(例えば0)を書き込むとともに、このモード情報をL2コントローラ13とL3コントローラ17に通知する。この通知を受けて、L2コントローラ13はL2データレジスタに第2モードのモード情報(例えば0)を書き込む。同様に、L3コントローラ17はL3データレジスタに同様のモード情報を書き込む。
再構成コントローラ18は、第1モードから第2モードへの再構成を決定すると、構成情報レジスタ19に第2モードのモード情報(例えば0)を書き込むとともに、このモード情報をL2コントローラ13とL3コントローラ17に通知する。この通知を受けて、L2コントローラ13はL2データレジスタに第2モードのモード情報(例えば0)を書き込む。同様に、L3コントローラ17はL3データレジスタに同様のモード情報を書き込む。
第1モードから第2モードに切り替えた場合、今までL2データアレイ11に格納されていたデータは無効となる。よって、L2コントローラ13は、L2データアレイ11と第1L2タグアレイ12の初期化処理を行う。
ただし、L3データアレイ14に格納されていたデータは、そのままにしておく。よって、第1モードから第2モードに切り替えた直後は、演算コア3からの読み出し要求に応じて、L2データアレイ11から高速にデータを読み出すことはできないが、L3データアレイ14内には演算コア3から要求のあったデータが格納されている。演算コア3から要求されたデータがL3データアレイ14に格納されていれば、メインメモリ6にアクセスするよりも高速の読み出しを行うことができる。このように、L3データアレイ14内の情報を初期化しないことで、第1モードから第2モードに再構成した際のメモリアクセス性能の低下を抑制できる。
第2モードでは、L2データアレイ11とL3データアレイ14は、擬似的に同一階層のメモリとして用いられる。後述するように、キャッシュライン中のアクセス頻度の高いワードデータをL2データアレイ11に格納しておけば、アクセス頻度の高いデータをより高速にアクセスすることができる。
なお、再構成コントローラ18が第1モードまたは第2モードの切替をL2コントローラ13とL3コントローラ17に通知するタイミングはどのようなタイミングでも構わない。例えば、再構成コントローラ18が構成情報レジスタ19を書き換えるタイミングに合わせて通知を行ってもよいし、あるいは、構成情報レジスタ19を書き換えた後に演算コア3からのアクセス要求をL2コントローラ13とL3コントローラ17に送信するタイミングに合わせて、モード情報の切替を通知してもよい。
(ハイブリッドメモリのデータ構成)
L3コントローラ17は、第2モードでは、L2データアレイ11とL3データアレイ14を同一階層のキャッシュメモリ、すなわちハイブリットメモリとして利用する。図5はハイブリッドメモリのデータ構成の第1例を示す図である。図5のハイブリッドメモリは、3つのメモリ領域m1,m2,m3を有する。メモリ領域m1は、L3タグアレイ16によるタグ領域である。メモリ領域m2は、L2データアレイ11によるワードデータ格納領域である。メモリ領域m3は、L3データアレイ14によるキャッシュラインデータ格納領域である。
L3コントローラ17は、第2モードでは、L2データアレイ11とL3データアレイ14を同一階層のキャッシュメモリ、すなわちハイブリットメモリとして利用する。図5はハイブリッドメモリのデータ構成の第1例を示す図である。図5のハイブリッドメモリは、3つのメモリ領域m1,m2,m3を有する。メモリ領域m1は、L3タグアレイ16によるタグ領域である。メモリ領域m2は、L2データアレイ11によるワードデータ格納領域である。メモリ領域m3は、L3データアレイ14によるキャッシュラインデータ格納領域である。
メモリ領域m1,m2は、SRAM等の高速の揮発性メモリで構成されており、高速アクセスが可能である。メモリ領域m3は、MRAM等の不揮発性メモリで構成されており、メモリ領域m1,m2よりはアクセス速度が遅いものの、メモリ容量がより大きい。
図5のハイブリッドメモリは、複数のウェイway0〜way7に分けられており、各ウェイにはキャッシュライン単位でアクセスが行われる。なお、ウェイの数は8つに限定されない。また、データアレイを複数のウェイに分けることは必須ではない。
メモリ領域m2に対応するL2データアレイ11には、メモリ領域m3に対応するL3データアレイ14よりも高速アクセスが可能であるため、L3データアレイ14内の各キャッシュライン中のうち、演算コアから最初に参照される頻繁が高いワードデータ、すなわちクリティカルワードをメモリ領域m2に格納するのが望ましい。図5では、各ウェイごとに、2ワードずつのクリティカルワードを格納可能なメモリ領域m2を設ける例を示しているが、メモリ領域m2のメモリ容量については特に制限はない。
図5のようなハイブリッドメモリを設けることで、MRAM等の不揮発性メモリの欠点である低アクセス速度と高消費電力による性能低下を抑制することができる。例えば、各キャッシュライン中で最初にアクセスされる頻度の高いワードデータをメモリ領域m2に格納することで、平均的なアクセス速度を向上でき、消費電力も抑制できる。
図6はハイブリッドメモリのデータ構成の第2例を示す図である。図6のハイブリッドメモリは、図5のメモリ領域m1〜m3に加えて、メモリ領域m4を有する。メモリ領域m4は、メモリ領域m2のワードデータのアドレス情報を格納するタグ領域である。メモリ領域m4には、図2の第2L2タグアレイ15が用いられる。
1ワードデータが8バイトで、1キャッシュラインが64バイトであるとすると1キャッシュライン中に8ワードが格納される。
メモリ領域m4にアドレス情報を格納する場合、1キャッシュライン中のどのワードデータがメモリ領域m2に格納されたかを識別するためには、最低3ビットが必要となる。したがって、メモリ領域m4は、最低でもL2データアレイ11に格納されるワードデータの数×3ビット分のメモリ容量を必要とする。メモリ領域m4にラインの先頭ワードから何ワード目かを格納する場合、8個のワードのうち何番目かを表現するのに1ワードにつき3ビットが必要となる。メモリ領域m4にビットベクタを保持する場合、8個のワードそれぞれに1ビットを対応させ、8ビットが必要となる。例えば、ラインの先頭ワードを1ビット目に対応させ、ラインの先頭から2番目のワードを2ビット目に対応させればよい。例えば、L2データアレイ11に格納されているワードと対応するビットを1とし、格納されていないワードに対応するビットを0とすればよい。
(再構成のポリシ)
再構成コントローラ18が再構成を行うポリシの一つとして、よりメモリレイテンシを小さくすることが可能なキャッシュ構成を選択することが考えられる。再構成可能な各キャッシュ構成におけるL2データアレイ11へのヒット回数がわかれば、以下の(1)式と(2)式から、各キャッシュ構成のオーバーヘッドを算出することができる。
再構成コントローラ18が再構成を行うポリシの一つとして、よりメモリレイテンシを小さくすることが可能なキャッシュ構成を選択することが考えられる。再構成可能な各キャッシュ構成におけるL2データアレイ11へのヒット回数がわかれば、以下の(1)式と(2)式から、各キャッシュ構成のオーバーヘッドを算出することができる。
Overhead1=LatencySRAM×HitCountSRAM+LatencyMRAM×HitCountMRAM …(1)
Overhead2=LatencySRAM×HitCountSRAM+LatencyMRAM×(HitCountMRAM−HitCountSRAM)
…(2)
Overhead2=LatencySRAM×HitCountSRAM+LatencyMRAM×(HitCountMRAM−HitCountSRAM)
…(2)
(1)式と(2)式では、L2データアレイ11がSRAMで、L3データアレイ14がMRAMの例を示している。Overhead1は第1モードでのオーバーヘッド、Overhead2は第2モードでのオーバーヘッドである。ここで、オーバーヘッドとは、L2データアレイ11とL3データアレイ14にアクセスするのに要する演算コア3の処理負荷である。また、LatencySRAMはL2データアレイ11のレイテンシすなわちアクセス速度、LatencyMRAMはL3データアレイ14のレイテンシ、HitCountSRAMはL2データアレイ11のアクセス回数、HitCountMRAMはL3データアレイ14のアクセス回数である。
(1)式に示すように、第1モードでのオーバーヘッドは、L2データアレイ11のレイテンシにそのアクセス回数を乗じた値と、L3データアレイ14のレイテンシにそのアクセス回数を乗じた値との和になる。
また、(2)式に示すように、第2モードでのオーバーヘッドは、L2データアレイ11のレイテンシにそのアクセス回数を乗じた値と、L3データアレイ14のレイテンシにそのアクセス回数を乗じた値との和になる。第2モードにおけるL3データアレイ14のアクセス回数は、アクセス総回数からL2データアレイ11のアクセス回数を引いた値になる。
再構成コントローラ18は、(1)式と(2)式により求めた各キャッシュ構成のオーバーヘッドに基づいて、オーバーヘッドが最小のモードを選択する。より具体的には、再構成コントローラ18は、例えば図7に示すフローチャートに基づいて、第1モードまたは第2モードを選択する。このように、アクセス回数というアクセス頻度情報をベースとしたモード選択の制御を行うことができる。本実施形態では、レイテンシ情報も用いることで比較的正確なオーバヘッドを算出したが、よりシンプルな情報を用いた制御を行ってもよい。例えば、第1モードの単位時間当たりのL3データアレイ14のアクセス回数が閾値を超えたら第2モードを選択し、第2モードのL3データアレイ14へのアクセス回数が閾値を下回ったら第1モードを選択するといった形態であってもよい。
まず、再構成コントローラ18は、L2データアレイ11のレイテンシLatencySRAMおよびアクセス回数HitCountSRAMと、L3データアレイ14のレイテンシLatencyMRAMおよびアクセス回数HitCountMRAMとを取得する(ステップS1)。LatencySRAMとLatencyMRAMは、例えば、SRAMやMRAMの設計仕様で定まるレイテンシの値を適用すればよい。HitCountSRAMとHitCountMRAMは、例えばL2コントローラ13とL3コントローラ17に不図示のカウンタをそれぞれ設けて計測したヒット回数を適用すればよい。より具体的には、(1)式のOverhead1を求める際のHitCountSRAMはL2コントローラ13のカウンタで計測し、HitCountMRAMはL3コントローラ17のカウンタで計測すればよい。また、(2)式のOverhead2を求める際のHitCountSRAMとHitCountMRAMは、ともにL3コントローラ17のカウンタで計測すればよい。
次に、再構成コントローラ18は、ステップS1で取得したレイテンシLatencySRAM、LatencyMRAMとアクセス回数HitCountSRAM、HitCountMRAMとを用いて、(1)式と(2)式にて、第1モードでのオーバーヘッドOverhead1と第2モードでのオーバーヘッドOverhead2を演算する(ステップS2)。
次に、再構成コントローラ18は、オーバーヘッドOverhead1、Overhead2を比較し(ステップS3)、いずれか小さい方を選択して、選択したオーバーヘッドに対応するモードを選択する(ステップS3)。そして、再構成コントローラ18は、選択したモードの識別情報(モード情報)を構成情報レジスタ19に書き込む(ステップS4)。
なお、図7の処理は、一つのモードを選択中に、定期的あるいは不定期に行ってもよい。例えば、あるモードを選択中に、再構成可能な各キャッシュ構成についてのプロファイルを取得して、各キャッシュ構成についてのオーバーヘッドを計算して、オーバーヘッドが最小の構成に動的に切り替えるようにしてもよい。
第1モードおよび第2モードそれぞれでプロファイルを取得し、適切なモードを選択する方式は、プロファイル取得時間がオーバーヘッドとなるおそれがある。そこで、選択しているキャッシュ構成は通常のプロファイルを取得し、選択しているキャッシュ構成以外のキャッシュ構成のプロファイルをシミュレーションにより求めてもよい。
例えば、第2モードを選択している最中に、無効化されている第1L2タグアレイ12を用いて第1モードでL2データアレイ11にアクセスしたアクセス回数をシミュレーションで求めてもよい。この場合、第2モードでのL3データアレイ14へのアクセス回数から、シミュレーションにより求められたL2データアレイ11へのアクセス回数を減算することにより、第1モードでのL2データアレイ11へのアクセス回数も求めることが出来る。また、第1モードを選択している際に、無効化されている第2L2タグアレイ15を用いて、第2モードでL2データアレイ11にアクセスする回数をシミュレーションで求めてもよい。第1モードでは、L2データアレイ11でキャッシュヒットした場合、L3コントローラ17へアクセスする必要は無い。しかし、前述のシミュレーションのため、L2データアレイ11にヒットした場合でも、アクセスデータのアドレス情報をL3コントローラ17に送付し、第2モードでのL2データアレイ11へのアクセス回数とL3データアレイ14へのアクセス回数をシミュレーションしてもよい。
(InclusiveとExclusive)
第2モード時にハイブリッドメモリを構成するL2データアレイ11にワードデータを格納し、L3データアレイ14にラインデータを格納する際のポリシとして、InclusiveポリシとExclusiveポリシの2つが考えられる。Inclusiveポリシでは、L2データアレイ11に格納するワードデータをL3データアレイ14にも重複して格納する。Exclusiveポリシでは、L2データアレイ11に格納するワードデータは、L3データアレイ14には重複して格納しない。
第2モード時にハイブリッドメモリを構成するL2データアレイ11にワードデータを格納し、L3データアレイ14にラインデータを格納する際のポリシとして、InclusiveポリシとExclusiveポリシの2つが考えられる。Inclusiveポリシでは、L2データアレイ11に格納するワードデータをL3データアレイ14にも重複して格納する。Exclusiveポリシでは、L2データアレイ11に格納するワードデータは、L3データアレイ14には重複して格納しない。
図8はInclusiveポリシ(第1ポリシ)を説明する図である。図8は、図5と同じデータ構成のハイブリッドメモリを用いた例を示している。なお、後述する図9と図10でも、図5と同じデータ構成のハイブリッドメモリを用いている。Inclusiveポリシでは、L3データアレイ14にキャッシュライン単位で格納されるキャッシュラインデータ中の一部のワードデータがL2データアレイ11のメモリ領域m2に重複して格納される。L3コントローラ17は、アクセスしたいワードデータが、L3タグアレイ16内のタグ情報により、メモリ領域m2に格納されていることがわかると、L3データアレイ14にアクセスするのと並行して、メモリ領域m2内のワードデータにアクセスする。
図8では、メモリ領域m4を省略しているが、図5と同様にメモリ領域m4を設けて、メモリ領域m2に格納する各ワードデータの識別情報を格納してもよい。なお、後述する図9と図10でもメモリ領域m4を省略しているが、メモリ領域m4を設けてもよい。
図9はExclusiveポリシ(第2ポリシ)を説明する図である。Exclusiveポリシでは、L3データアレイ14にキャッシュライン単位で格納されるキャッシュラインデータ中の一部のワードデータをL2データアレイ11のメモリ領域m2に格納した後は、このワードデータをL3データアレイ14から削除して、L3データアレイ14とL2データアレイ11で排他的にデータを格納する。これにより、L3データアレイ14内のメモリ領域を有効活用することができる。
図6のInclusiveポリシでも、図8のExclusiveポリシでも、L3データアレイ14が複数のウェイに分かれている場合は、各ウェイごとに等しい数のワードデータをL2データアレイ11のメモリ領域m2に格納する方式を採用してもよい。これに対して、アクセス頻度に応じて、各ウェイに優先度を持たせて、優先度の高い順に、より多くのワードデータをL2データアレイ11のメモリ領域m2に格納する方式(以下、アクセス頻度ワード数可変方式)を採用してもよい。
(アクセス頻度ワード数可変方式)
図10は図5のハイブリッドメモリのアクセス頻度ワード数可変方式を説明する図である。L3コントローラ17は、アクセスの時間局所性を、LRU(Least Recently Used)ポジションとして管理している。このLRUポジションを利用することで、L3データアレイ14内の各ウェイごとに、メモリ領域m2に格納するワードデータの数を可変にしてもよい。図10の例では、ウェイ0とウェイ1ではそれぞれ4ワードデータを、ウェイ2では2ワードデータを、ウェイ6とウェイ7ではそれぞれ1ワードデータをL2データアレイ11内のメモリ領域m2に格納している。
図10は図5のハイブリッドメモリのアクセス頻度ワード数可変方式を説明する図である。L3コントローラ17は、アクセスの時間局所性を、LRU(Least Recently Used)ポジションとして管理している。このLRUポジションを利用することで、L3データアレイ14内の各ウェイごとに、メモリ領域m2に格納するワードデータの数を可変にしてもよい。図10の例では、ウェイ0とウェイ1ではそれぞれ4ワードデータを、ウェイ2では2ワードデータを、ウェイ6とウェイ7ではそれぞれ1ワードデータをL2データアレイ11内のメモリ領域m2に格納している。
図10のアクセス頻度ワード数可変方式では、以下の2つを考慮に入れて各ウェイに優先度をつけている。
1.演算コア3が実行する一般的な時間局所性が存在するプログラムでは、ウェイ1はウェイ7より参照される可能性が高い。
2.重要なワードデータすなわちクリティカルワードの特定には予測を用いるため、場合によっては予測ミスが発生する。したがって、多数のワードを保持できるほど、予測精度の向上が見込める。
図10は、上記2.による効果を効果的に得るため、1.の性質を利用した構成となっている。上記1,2を考慮に入れて、図10では、番号の若いウェイほど、より多くのワードデータをL2データアレイ11のメモリ領域m2に格納している。
なお、クリティカルワードの特定方法としては、例えば、以下の第1方法〜第3方法の3通りが考えられる。
第1方法は、アドレス順である。キャッシュライン内の先頭側のアドレスほど、演算コア3によって最初に参照されやすい。そこで、第1方法では、L3データアレイ14の各ウェイごとに、キャッシュラインの先頭側のワードデータをL2データアレイ11のメモリ領域m2に格納する。この第1方法は、メモリ領域m2に格納すべきワードデータの決定が容易であり、L3コントローラ17は、各キャッシュラインの先頭アドレスから所定ワード分のワードデータを順にメモリ領域m2に格納すればよい。第1方法を用いる場合、図4のように、クリティカルワードを動的に決定する必要が無いため、L2データアレイ11のメモリ領域m3は保持しなくてもよい。
第2方法は、前回参照したワードデータを優先することである。L3コントローラ17は、L3データアレイ14に格納されたワードデータの時間的局所性を利用して、直近にアクセスされたワードデータから順にメモリ領域m2に格納する。これを実現するには、例えば、メモリ領域M2に格納するワードをLRU方式で決定してもよい。
第3方法は、参照回数の多いワードデータを優先することである。数多く参照されたワードデータほど、参照されやすい性質を利用する。L3コントローラ17は、ワードデータごとに参照回数を計測し、参照回数の多いワードデータから順にメモリ領域m2に格納する。
L3コントローラ17に対する読み出し要求には様々なものがあるが、代表的なものとしてラインデータを一意に特定可能なラインアドレスによる要求と、ワードデータを一意に特定可能なワードアドレスによる要求がある。例えば、ワードアドレスによるアクセスであれば第1方法・第2方法・第3方法のどれかを用いればよいし、ラインアドレスによるアクセスであれば第1方法を用いればよい。
なお、本実施形態での読み出し・書き込み要求者はL1キャッシュ4である。L3コントローラ17は、読み出されたデータを順次読み出し要求者であるL1キャッシュ4に転送する。L1キャッシュ4はL2キャッシュから送られてきたデータに演算コア3が読み出し要求を出したデータが含まれていれば、当該データを演算コア3に送付する。例えば、第2モードにおいて、L2データアレイ11に格納されていたクリティカルワードが演算コア3が読み出し要求を出したデータであれば、先に到着したこのデータを演算コアに送付する。その後、L3データアレイ14から読み出されたデータが到着すると、このデータをL1キャッシュ4に格納する。
(ハイブリッドメモリからの読み出し手順)
次に、第2モード選択時のハイブリッドメモリからの読み出し手順を説明する。L2キャッシュ7のタグアクセスとデータアクセスの手順には、一般に以下の2通りがある。一つは、タグアクセスとデータアクセスを並行して行う並行アクセス方式である。もう一つは、タグアクセスとデータアクセスを逐次的に行う逐次アクセス方式である。
次に、第2モード選択時のハイブリッドメモリからの読み出し手順を説明する。L2キャッシュ7のタグアクセスとデータアクセスの手順には、一般に以下の2通りがある。一つは、タグアクセスとデータアクセスを並行して行う並行アクセス方式である。もう一つは、タグアクセスとデータアクセスを逐次的に行う逐次アクセス方式である。
本実施形態では、これら2つのアクセス方式に加えて、L2データアレイ11のメモリ領域m2へのアクセスとL3データアレイ14へのアクセスとを並行して行うか、逐次的に行うかの選択肢がある。よって、例えばこれらの組合せとして、本実施形態の読み出し手順には、以下の3つの方式が存在する。
1.第2L2タグアレイ15のメモリ領域m4と、L2データアレイ11のメモリ領域m2と、L3データアレイ14m3と、L3タグアレイ16のメモリ領域m1に並行してアクセスする方式。
2.L3タグアレイ16のメモリ領域m1と第2L2タグアレイ15のメモリ領域m4にアクセスし、次にL2データアレイ11のメモリ領域m2にアクセスし、次にL3データアレイ14のメモリ領域m3にアクセスする方式。この方式では、まず、L3タグアレイ16のメモリ領域m1と第2L2タグアレイ15のメモリ領域m4にアクセスする。その結果、L2データアレイ11のメモリ領域m2にワードデータが存在することがわかると、次にメモリ領域m2にアクセスすると共に、L3データアレイ14のメモリ領域m3にアクセスする。高速に読み出し可能なL2データアレイ11のデータを先行して読み出し元に転送し、その後、L3データアレイ14のデータを転送する。一方、メモリ領域m2にワードデータが存在せず、L3データアレイ14のメモリ領域m3に存在することがわかると、L3データアレイ14にアクセスする。
3.L3タグアレイ16のメモリ領域m1、第2L2タグアレイ15のメモリ領域m4およびL2データアレイ11のメモリ領域m1に並行してアクセスする方式。この方式では、メモリ領域m1,m4のタグとメモリ領域m2のワードデータに並行してアクセスし、ワードデータが存在すれば読み出して転送する。その後、L3データアレイ14のメモリ領域m3にアクセスし、ラインデータを転送する。メモリ領域m2にワードデータが存在しない場合は、メモリ領域m1のタグによりL3データアレイ14に対象データが存在することがわかれば、L3データアレイ14にアクセスする。
上記の読み出し手順では、L2データアレイ11にワードデータが存在した場合でも、L3データアレイ14にアクセスを行いラインデータを読み出す例を示したが必ずしもこのような制御を行わなくてもよい。例えば、読み出し元がワードデータのみ要求していれば、L3データアレイ14へのアクセスは行わなくてもよい。
(ハイブリッドメモリへの書込み手順)
次に、本実施形態によるハイブリッドメモリへの書き込み手順を説明する。
書き込み元がライン単位での書き込み要求を行い、L3データアレイ14にヒットした場合は以下のような手順で書き込みを行う。まず、L3データアレイ14に書き込みを行う。同時に、必要に応じてL2データアレイ11のメモリ領域m2を参照し、L2データアレイ11に格納されているワードデータに対して書き込みを行う。
書き込み元がワード単位での書き込み要求を行う場合、もしくは、ライン単位の書き込み要求であってもキャッシュコントローラがライン中の書き換えられているワードを特定する場合は、以下のような方式も選択可能である。このような場合に、第2L2タグアレイ15のメモリ領域m4内のタグにキャッシュヒットした場合の書き込み方式として、以下の2つの方式が存在する。
次に、本実施形態によるハイブリッドメモリへの書き込み手順を説明する。
書き込み元がライン単位での書き込み要求を行い、L3データアレイ14にヒットした場合は以下のような手順で書き込みを行う。まず、L3データアレイ14に書き込みを行う。同時に、必要に応じてL2データアレイ11のメモリ領域m2を参照し、L2データアレイ11に格納されているワードデータに対して書き込みを行う。
書き込み元がワード単位での書き込み要求を行う場合、もしくは、ライン単位の書き込み要求であってもキャッシュコントローラがライン中の書き換えられているワードを特定する場合は、以下のような方式も選択可能である。このような場合に、第2L2タグアレイ15のメモリ領域m4内のタグにキャッシュヒットした場合の書き込み方式として、以下の2つの方式が存在する。
1.書き込むべきアドレスのワードデータがL2データアレイ11のメモリ領域m2に存在する場合に、メモリ領域m2のワードデータを上書きし、かつL3データアレイ14のメモリ領域m3にも書き込む方式。
2.書き込むべきアドレスのワードデータがL2データアレイ11のメモリ領域m2に存在する場合に、メモリ領域m2のワードデータを上書きするが、L3データアレイ14のメモリ領域m3には書き込まない方式。
上記2の方式の場合、L3データアレイ14には最新のワードデータを書き込んでいないため、下位階層のキャッシュメモリやメインメモリ6に古いワードデータを書き戻してしまわないように、メモリ領域m2内の各ワードデータごとにダーティフラグを用意する必要がある。ダーティフラグは例えばメモリ領域m2に格納される。また、下位階層のキャッシュメモリやメインメモリ6にライトバックする際には、メモリ領域m2内のダーティな各ワードデータとL3データアレイ14内のキャッシュラインデータとをマージする必要がある。したがって、ライトバック時には、ダーティフラグに基づいて、メモリ領域m2内に書き戻すべきワードデータがあるか否かをチェックする必要がある。
(ハイブリッドメモリのLRUリプレースメント)
次に、ハイブリットメモリのLRUリプレースメントの手順について説明する。LRUポジションに基づいて、L3データアレイ14からL2データアレイ11のメモリ領域m2にワードデータをコピーまたは移動する場合、L3データアレイ14の各ウェイごとに、コピーまたは移動するワードデータの数が同じであれば、L3タグアレイ16のメモリ領域m1のタグ情報を更新するだけで、LRUリプレースメントを行える。一般的には、各エントリに対応付けられるLRU順序記憶領域を書き換えるのみでよい。例えば、図4の構成であれば、それぞれのエントリに対応付けられているWay0やWay8といった情報を書き換えるのみでよい。
次に、ハイブリットメモリのLRUリプレースメントの手順について説明する。LRUポジションに基づいて、L3データアレイ14からL2データアレイ11のメモリ領域m2にワードデータをコピーまたは移動する場合、L3データアレイ14の各ウェイごとに、コピーまたは移動するワードデータの数が同じであれば、L3タグアレイ16のメモリ領域m1のタグ情報を更新するだけで、LRUリプレースメントを行える。一般的には、各エントリに対応付けられるLRU順序記憶領域を書き換えるのみでよい。例えば、図4の構成であれば、それぞれのエントリに対応付けられているWay0やWay8といった情報を書き換えるのみでよい。
一方、図10の構成のように、各ウェイごとに、コピーまたは移動するワードデータの数が異なる場合、一般的なキャッシュメモリの制御に加えて、以下の手順が必要となる。
1.L3データアレイ14のコピーまたは移動するワードデータの数が少ないウェイから、コピーまたは移動するワードデータの数が多いウェイにデータを移動する場合、新たにコピーまたは移動可能な数分のワードデータをL3データアレイ14からL2データアレイ11のメモリ領域m2にコピーまたは移動する。
2.L3データアレイ14のコピーまたは移動するワードデータの数が多いウェイから、コピーまたは移動するワードデータの数が少ないウェイにデータを移動する場合、いままでコピーまたは移動していた複数のワードデータのうち、優先度の高いワードデータのみをL2データアレイ11のメモリ領域m2にコピーまたは移動する。
なお、LRUポジションの入替ごとにL2データアレイ11のメモリ領域m2の全体を書き換えるのは非効率である。そこで、メモリ領域m2に格納するワードデータの数の差分のみについて、ワードデータを更新してもよい。例えば、データAが保持されているウェイ1には2ワードデータが、データBが保持されているウェイ8には1ワードデータが、それぞれL2データアレイ11のメモリ領域m2に確保されている場合に、ウェイ1とウェイ8でLRUポジションを入れ替える場合は、以下の手順で行えばよい。
まず、一般のキャッシュメモリと同様にタグ情報を更新し、データAに対応するメモリ領域m2の1ワードデータ分の領域を、データBの1ワードデータ分の領域として再割り当てする。次に、データBに新たに割り当てられた1ワードデータ分の領域に、データBの1ワードデータを書き込む。
このように、本実施形態では、揮発性メモリで構成されたL2データアレイ11と不揮発性メモリで構成されたL3データアレイ14とを階層化キャッシュメモリとして使用する第1モードと、同一階層でアクセス速度が相違するハイブリッドメモリとして使用する第2モードとを、切替可能にしたため、モード切替を適切に行うことで、アクセス性能を低下させずに低消費電力化を図ることができる。すなわち、モード切替を行う再構成コントローラ18は、L2データアレイ11およびL3データアレイ14のアクセス頻度に基づいて、各モードでのオーバーヘッドを比較し、オーバーヘッドが小さいモードを選択するため、アクセス速度の向上と消費電力の低減とを両立させることができる。これにより、不揮発性メモリとしてMRAMのようなアクセス速度がSRAMよりも低速で、ビットエラー率も高いものを用いても、アクセス性能およびデータの信頼性の低下を抑制することが出来る。特に、L2データアレイ11としてSRAMを用いて、L3データアレイ14としてMRAMを用いれば、本来はL3データアレイ14に格納されるべきキャッシュラインデータのうち、アクセス頻度の高いデータや、演算コアの実行速度に影響を与えるワードデータをプログラムの特徴にあわせてSRAMに格納することができ、メモリ容量の大容量化とアクセス性能の向上を図ることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 メモリシステム、2 プロセッサシステム、3 演算コア、4 L1キャッシュ、5 再構成可能なキャッシュメモリ、6 メインメモリ、11 L2データアレイ、12 第1L2タグアレイ、13 L2コントローラ、14 L3データアレイ、15 第2L2タグアレイ、16 L3タグアレイ、17 L3コントローラ、18 再構成コントローラ、19 構成情報レジスタ、20 誤り訂正回路
Claims (14)
- 揮発性メモリを有する第1キャッシュメモリと、
前記揮発性メモリよりもアクセス速度が低速な不揮発性メモリを有する第2キャッシュメモリと、
前記第2キャッシュメモリを前記第1キャッシュメモリよりも下位階層のキャッシュメモリとして使用する第1モードと、前記第1キャッシュメモリおよび前記第2キャッシュメモリを同一階層の別個のキャッシュメモリとして使用する第2モードとの切替を行う再構成コントローラと、を備えるメモリシステム。 - 前記第1モードまたは前記第2モードの切替情報を格納する切替情報格納部を備える請求項1に記載のメモリシステム。
- 読み出し時に誤り訂正処理を必要としない揮発性メモリを有する第1キャッシュメモリと、
前記揮発性メモリよりもアクセス速度が低速で、かつ読み出し時に誤り訂正処理を必要とする不揮発性メモリを有する第2キャッシュメモリと、
前記第2キャッシュメモリを前記第1キャッシュメモリよりも下位階層のキャッシュメモリとして使用する第1モードと、前記第1キャッシュメモリおよび前記第2キャッシュメモリを同一階層の別個のキャッシュメモリとして使用する第2モードとの切替を行う再構成コントローラと、
前記第2キャッシュメモリから読み出したデータの誤り訂正処理を行う誤り訂正部と、を備えるメモリシステム。 - 前記第1モード時には前記第1キャッシュメモリへのアクセスを行い、前記第2モード時には前記第1キャッシュメモリへのアクセスを停止する第1コントローラと、
前記第1モード時には前記第2キャッシュメモリへのアクセスを行い、前記第2モード時には前記第1および第2キャッシュメモリへのアクセスを行う第2コントローラと、を備える請求項1乃至3のいずれかに記載のメモリシステム。 - 前記第2コントローラは、前記第2モード時には、前記第1キャッシュメモリにアクセスするデータ量の単位よりも多い単位で前記第2キャッシュメモリにアクセスする請求項4に記載のメモリシステム。
- 前記第2コントローラは、前記第2モード時には、前記第1キャッシュメモリにワード単位でアクセスし、かつ前記第2キャッシュメモリにキャッシュライン単位でアクセスする請求項5に記載のメモリシステム。
- 前記第2コントローラは、前記第2モード時には、前記第1キャッシュメモリに格納したデータのすべてを前記第2キャッシュメモリにも格納する請求項4乃至6のいずれか1項に記載のメモリシステム。
- 前記第2コントローラは、前記第2モード時には、前記第1キャッシュメモリおよび前記第2キャッシュメモリに排他的にデータを格納する請求項4乃至6のいずれか1項に記載のメモリシステム。
- 前記第2コントローラは、前記第2モード時には、プロセッサが最初にアクセスする頻度が高いワードデータを前記第1キャッシュメモリに格納する請求項4乃至8のいずれか1項に記載のメモリシステム。
- 前記第1コントローラは、前記第1モード時には、キャッシュライン単位で前記第1キャッシュメモリにアクセスし、
前記第2コントローラは、前記第1モード時には、キャッシュライン単位で前記第2キャッシュメモリにアクセスする請求項4乃至9のいずれかに記載のメモリシステム。 - 前記再構成コントローラは、前記第1モードまたは前記第2モードの切替情報を前記第1コントローラおよび前記第2コントローラに通知する請求項4乃至10のいずれか1項に記載のメモリシステム。
- 前記第1キャッシュメモリは、
前記揮発性メモリを有する第1キャッシュデータ部と、
前記揮発性メモリを有し前記第1キャッシュデータ部に格納したデータに対応するアドレス情報を格納する第1タグ部と、を有し、
前記第2キャッシュメモリは、
前記不揮発性メモリを有する第2キャッシュデータ部と、
前記揮発性メモリを有し前記第2キャッシュデータ部に格納したデータに対応するアドレス情報を格納する第2タグ部と、を有する請求項1乃至11のいずれかに記載のメモリシステム。 - 前記再構成コントローラは、少なくとも前記第1キャッシュメモリへのアクセス頻度と、前記第2キャッシュメモリへのアクセス頻度と、に基づいて、前記第1モードと前記第2モードとの切替を行う請求項1乃至12のいずれか1項に記載のメモリシステム。
- 前記揮発性メモリはSRAM(Static Random Access Memory)であり、
前記不揮発性メモリはMRAM(Magnetoresistive Random Access Memory)である請求項1乃至13のいずれか1項に記載のメモリシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015051379A JP2016170729A (ja) | 2015-03-13 | 2015-03-13 | メモリシステム |
US15/067,658 US9959212B2 (en) | 2015-03-13 | 2016-03-11 | Memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015051379A JP2016170729A (ja) | 2015-03-13 | 2015-03-13 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016170729A true JP2016170729A (ja) | 2016-09-23 |
Family
ID=56887729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015051379A Pending JP2016170729A (ja) | 2015-03-13 | 2015-03-13 | メモリシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9959212B2 (ja) |
JP (1) | JP2016170729A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019020965A (ja) * | 2017-07-14 | 2019-02-07 | 富士通株式会社 | 情報処理装置、プログラム及び情報処理方法 |
WO2019211697A1 (ja) * | 2018-05-02 | 2019-11-07 | 株式会社半導体エネルギー研究所 | 半導体装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10936493B2 (en) * | 2019-06-19 | 2021-03-02 | Hewlett Packard Enterprise Development Lp | Volatile memory cache line directory tags |
KR20210128073A (ko) * | 2020-04-16 | 2021-10-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3789998B2 (ja) | 1997-01-17 | 2006-06-28 | 株式会社ルネサステクノロジ | メモリ内蔵プロセサ |
US8397016B2 (en) * | 2008-12-31 | 2013-03-12 | Violin Memory, Inc. | Efficient use of hybrid media in cache architectures |
JP2010198129A (ja) | 2009-02-23 | 2010-09-09 | Toshiba Corp | キャッシュシステム |
US8615637B2 (en) | 2009-09-10 | 2013-12-24 | Advanced Micro Devices, Inc. | Systems and methods for processing memory requests in a multi-processor system using a probe engine |
US8463984B2 (en) * | 2009-12-31 | 2013-06-11 | Seagate Technology Llc | Dynamic data flow management in a multiple cache architecture |
AU2011293015B2 (en) | 2010-08-25 | 2015-05-21 | Nevex Virtual Technologies Inc. | Method and system for cache tiering |
US9244853B2 (en) * | 2012-08-10 | 2016-01-26 | Qualcomm Incorporated | Tunable multi-tiered STT-MRAM cache for multi-core processors |
KR102219288B1 (ko) * | 2013-12-09 | 2021-02-23 | 삼성전자 주식회사 | 캐시 모드 및 메모리 모드 동작을 지원하는 메모리 장치 및 이의 동작 방법 |
US9472257B2 (en) * | 2014-05-15 | 2016-10-18 | Qualcomm Incorporated | Hybrid magnetoresistive read only memory (MRAM) cache mixing single-ended and differential sensing |
-
2015
- 2015-03-13 JP JP2015051379A patent/JP2016170729A/ja active Pending
-
2016
- 2016-03-11 US US15/067,658 patent/US9959212B2/en active Active
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019020965A (ja) * | 2017-07-14 | 2019-02-07 | 富士通株式会社 | 情報処理装置、プログラム及び情報処理方法 |
US10713182B2 (en) | 2017-07-14 | 2020-07-14 | Fujitsu Limited | Information processing apparatus and method |
JP6996139B2 (ja) | 2017-07-14 | 2022-01-17 | 富士通株式会社 | 情報処理装置、プログラム及び情報処理方法 |
WO2019211697A1 (ja) * | 2018-05-02 | 2019-11-07 | 株式会社半導体エネルギー研究所 | 半導体装置 |
JPWO2019211697A1 (ja) * | 2018-05-02 | 2021-06-17 | 株式会社半導体エネルギー研究所 | 半導体装置 |
US11355176B2 (en) | 2018-05-02 | 2022-06-07 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device |
JP7241068B2 (ja) | 2018-05-02 | 2023-03-16 | 株式会社半導体エネルギー研究所 | 半導体装置 |
US11742014B2 (en) | 2018-05-02 | 2023-08-29 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device |
Also Published As
Publication number | Publication date |
---|---|
US20160267008A1 (en) | 2016-09-15 |
US9959212B2 (en) | 2018-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10430349B2 (en) | Scaled set dueling for cache replacement policies | |
TWI522802B (zh) | 確保微處理器之快取記憶體層級之資料一致性的裝置與方法 | |
US10126964B2 (en) | Hardware based map acceleration using forward and reverse cache tables | |
US9098417B2 (en) | Partitioning caches for sub-entities in computing devices | |
JP6118285B2 (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
US10120750B2 (en) | Cache memory, error correction circuitry, and processor system | |
US10031854B2 (en) | Memory system | |
JP6088951B2 (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
US9557801B2 (en) | Cache device, cache system and control method | |
US20170083444A1 (en) | Configuring fast memory as cache for slow memory | |
US9959212B2 (en) | Memory system | |
JP3900025B2 (ja) | 共有キャッシュメモリのヒット判定制御方法及び共有キャッシュメモリのヒット判定制御方式 | |
EP3411798B1 (en) | Cache and method | |
US20170357596A1 (en) | Dynamically adjustable inclusion bias for inclusive caches | |
JP7072573B2 (ja) | 非割り当てキャッシュポリシー | |
JP3929872B2 (ja) | キャッシュメモリ、プロセッサ及びキャッシュ制御方法 | |
US8832376B2 (en) | System and method for implementing a low-cost CPU cache using a single SRAM | |
JP6093322B2 (ja) | キャッシュメモリおよびプロセッサシステム | |
JP6140233B2 (ja) | メモリシステム | |
US10853267B2 (en) | Adaptive method for selecting a cache line replacement algorithm in a direct-mapped cache | |
CN110045921B (zh) | 用于数据处理的装置和访问存储电路的方法 | |
US20120102271A1 (en) | Cache memory system and cache memory control method |