JP2018049385A - メモリシステムおよびプロセッサシステム - Google Patents
メモリシステムおよびプロセッサシステム Download PDFInfo
- Publication number
- JP2018049385A JP2018049385A JP2016183344A JP2016183344A JP2018049385A JP 2018049385 A JP2018049385 A JP 2018049385A JP 2016183344 A JP2016183344 A JP 2016183344A JP 2016183344 A JP2016183344 A JP 2016183344A JP 2018049385 A JP2018049385 A JP 2018049385A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- accessed
- processor
- access
- substrate
- 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/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- 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
-
- 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/0866—Addressing 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
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
-
- 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/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
Abstract
【課題】不揮発メモリを用いつつ、アクセス性能の低下を防止して、データ書き込み時の信頼性も向上可能とする。
【解決手段】メモリシステムは、第1データサイズごとにアクセスされる第1メモリと、第1データサイズよりも小さい第2データサイズごとにアクセスされ、第1メモリよりも高速アクセスが可能な第2メモリと、第1メモリにアクセスするためのアドレス変換情報を格納する第3メモリと、を備え、第1メモリおよび第3メモリは不揮発メモリである。
【選択図】図1
Description
本発明の実施形態は、メモリシステムおよびプロセッサシステムに関する。
プロセッサのメインメモリとして、従来はDRAM(Dynamic Random Access Memory)を使用していた。ところが、DRAMは、定期的にリフレッシュが必要であり、消費電力が増大してしまう。そこで、DRAMの代わりに大容量の不揮発メモリをメインメモリとして使用する技術が提案されている。
しかしながら、不揮発メモリは、書込み速度がDRAMよりも遅かったり、書き換え耐数もDRAMより劣る場合が少なくない。
本実施形態は、不揮発メモリを用いつつ、アクセス性能の低下を防止して、データ書き込み時の信頼性も向上可能なメモリシステムおよびプロセッサシステムを提供するものである。
本実施形態によれば、第1データサイズごとにアクセスされる第1メモリと、
前記第1データサイズよりも小さい第2データサイズごとにアクセスされ、前記第1メモリよりも高速アクセスが可能な第2メモリと、
前記第1メモリにアクセスするためのアドレス変換情報を格納する第3メモリと、を備え、
前記第1メモリおよび前記第3メモリは不揮発メモリである、メモリシステムが提供される。
前記第1データサイズよりも小さい第2データサイズごとにアクセスされ、前記第1メモリよりも高速アクセスが可能な第2メモリと、
前記第1メモリにアクセスするためのアドレス変換情報を格納する第3メモリと、を備え、
前記第1メモリおよび前記第3メモリは不揮発メモリである、メモリシステムが提供される。
以下、図面を参照しながら、本発明の実施形態を説明する。
(第1の実施形態)
図1は第1の実施形態によるメモリシステム1を内蔵したプロセッサシステム2の概略構成を示すブロック図である。図1のプロセッサシステム2は、プロセッサ3を有する第1基板4と、メモリシステム1を構成する第2基板5および第3基板6とを備えている。
図1は第1の実施形態によるメモリシステム1を内蔵したプロセッサシステム2の概略構成を示すブロック図である。図1のプロセッサシステム2は、プロセッサ3を有する第1基板4と、メモリシステム1を構成する第2基板5および第3基板6とを備えている。
第1基板4は、一つまたは複数の半導体チップを含んでいてもよい。プロセッサ3は、複数のマルチコアユニット7と、ラストレベルキャッシュ8と、TLB(Transfer Lookaside Buffer)9と、ページテーブル(PT)10と、DRAM制御回路11と、DRAM駆動回路12と、SCM制御回路13と、SCM駆動回路14とを有する。なお、プロセッサ3は、図1に図示された以外の種々の回路ブロックを備えているが、図1では省略している。
各マルチコアユニット7は、複数のコア15と、複数のコア15が共有する分散共有キャッシュ16とを有する。なお、図1では省略しているが、各コア15は、その内部に少なくとも1階層の個別キャッシュ(例えばL1キャッシュ)を有する。分散共有キャッシュ16は、対応するマルチコアユニット7内の複数のコア15によってアクセスされるキャッシュメモリ(例えば、L2キャッシュ)である。
ラストレベルキャッシュ8は、階層化されたキャッシュメモリのうちのアクセス優先度が最も低いキャッシュメモリである。ラストレベルキャッシュ8は、複数のマルチコアユニット7によってアクセスされる。
プロセッサ3は、アクセス要求をしたアドレスがラストレベルキャッシュ8にヒットしない場合、SCM(Storage Class Memory、第1メモリ)21が実装された第2基板5か、第4メモリ(例えばDRAM)22が実装された第3基板6にアクセスする。SCM21と第4メモリ22は、同一階層のメモリであり、いわゆるメインメモリである。プロセッサ3は、主記憶マップ上の第1アドレス空間にSCM21を割り当て、別の第2アドレス空間に第4メモリ22を割り当てている。以下では、第4メモリ22がDRAMの例を説明する。
SCM制御回路13は、SCM21(Storage Class Memory)が実装された第2基板5に対するアクセスを制御する。SCM駆動回路14は、SCM制御回路13からの指示に従って、SCM21へのアクセスを実行する。
DRAM制御回路11は、DRAM22が実装された第3基板6に対するアクセスを制御する。DRAM駆動回路12は、DRAM制御回路11からの指示に従って、DRAM22を駆動する。
第2基板5と第3基板6は、メモリ容量を必要に応じて増減できるように、着脱自在なインタフェース機能を備えているのが望ましい。例えば、DRAM22が実装された第3基板6は、DIMM(Dual Inline Memory Module)規格に従うメモリモジュールであってもよい。同様に、第2基板5も、規格化されたメモリモジュールであってもよい。
本実施形態では、第2基板5に実装されるメモリの少なくとも一部をSCM21と呼んでいる。より具体的には、第2基板5は、第1メモリ21と、第2メモリ23と、第3メモリ24と、第1制御回路25と、第2制御回路26と、I/F切替回路27とを有する。第2基板5上の各構成部品は、一つまたは複数の半導体チップで構成されていてもよい。
第1メモリ21は、第1データサイズごとにアクセスされる。本実施形態では、第1データサイズをセグメントサイズと呼ぶ。セグメントサイズの具体的な値は特に問わない。一例として、セグメントサイズは、4kバイトのページの1000ページ分のデータサイズを有する。第1メモリ21は、不揮発メモリを想定している。不揮発メモリの具体的な種類は問わない。第1メモリ21は、大容量の不揮発メモリであり、例えば、大容量化が可能なクロスポイント型の三次元構造の不揮発メモリが望ましい。具体的な一例としては、第1メモリ21は、相変化メモリ(PCM:Phase Change Random Access Memory)や抵抗変化メモリ(ReRAM:Resistance Random Access Memory)などでもよく、本実施形態ではSCMと呼ぶ。
第2メモリ23は、第1データサイズよりも小さい第2データサイズごとにアクセスされ、第1メモリ21よりも高速アクセスが可能である。第2データサイズは、例えばページサイズである。1ページは例えば4kバイトである。
本実施形態では、第1メモリ21と第2メモリ23は、プロセッサ3のそれぞれ異なるアドレス空間に配置されており、プロセッサ3が発行するアドレスによって、第1メモリ21と第2メモリ23のいずれにアクセスするかが決定される。第2メモリ23は、揮発メモリでもよいし、不揮発メモリでもよい。一例としては、第2メモリ23は、第1メモリ21よりも高速アクセスが可能なDRAM22で構成される。上述したように、第3基板6上の第4メモリ22もプロセッサ3の特定のアドレス空間に配置されており、結局、第1の実施形態によるプロセッサ3は、第1メモリ21、第2メモリ23および第4メモリ22のいずれかに対してアドレスを指定してアクセスすることができる。
第3メモリ24は、第1メモリ21にアクセスするためのページアドレス変換情報を格納する。ページアドレス変換情報は、ページアドレスをセグメント単位のアドレスに変換するための情報である。第1メモリ21は、セグメント単位でデータを格納しているため、ページ変換情報でセグメント単位のアドレスに変換することで、アクセス可能となる。
第3メモリ24は、不揮発メモリを想定している。より具体的な一例では、第3メモリ24は、第1メモリ21よりもメモリ容量が小さくて、第1メモリ21よりも高速アクセスが可能な不揮発メモリである。第3メモリ24として用いられる不揮発メモリは、例えばMRAMである。MRAMの中でも、例えばSTT(Spin Transfer Torque)−MRAMは、スピントロニクスを利用してTMR(Tunnel Magneto Resistance)効果を動作原理とする不揮発メモリであり、高速アクセス性能を有するため、第3メモリ24の候補となりえる。
このように、本実施形態では、第2基板5上の第1メモリ21と第3メモリ24は不揮発メモリであり、第2メモリ23は揮発メモリである。一例として、本実施形態では、第1メモリ21をMRAM以外のSCM21とし、第2メモリ23をDRAM22とし、第3メモリ24をMRAMとしている。
プロセッサ3がアクセス要求をしたアドレスによって、第2基板5上の第1メモリ(SCM)21、第2メモリ(DRAM)23、第3基板6上の第4メモリ(DRAM)22のどれにアクセスするべきかが決定される。第2基板5上の第1メモリ(SCM)21か第2メモリ(DRAM)23にアクセスする場合は、SCM制御回路13からの制御により、I/F切替回路27は、第1制御回路25と第2制御回路26のいずれか一方を選択して、プロセッサ3からのアクセス要求を伝達する。第1制御回路25は、プロセッサ3からのアクセス要求に応じて、第3メモリ24内のアドレス変換情報に基づいて、第1メモリ(SCM)21に対するアクセスを制御する。第2制御回路26は、プロセッサ3からのアクセス要求に応じて、第2メモリ(DRAM)23に対するアクセスを制御する。
図2は第1の実施形態によるプロセッサシステム2の処理動作を示すフローチャートである。このフローチャートは、プロセッサ3がメモリシステム1に対してアクセス要求(書込み要求または読出要求)を行った場合に開始される。
まず、コア15の個別キャッシュにヒットしたか否かを判定する(ステップS1)。個別キャッシュにヒットした場合、個別キャッシュにアクセスして図2の処理を終了する。個別キャッシュにミスした場合、分散共有キャッシュ16にヒットしたか否かを判定する(ステップS2)。分散共有キャッシュ16にヒットした場合、分散共有キャッシュ16にアクセスして図2の処理を終了する。分散共有キャッシュ16にミスした場合、TLB9にヒットしたか否かを判定する(ステップS3)。TLB9にミスした場合、ページテーブル10のエントリ(PTE)にアクセスして、ページアドレスを取得する(ステップS4)。ステップS3でTLB9にヒットした場合、またはステップS4の処理が終了した場合、取得したページアドレスがラストレベルキャッシュ(LLC)8にヒットしたか否かを判定する(ステップS5)。ラストレベルキャッシュ8にヒットした場合には、ラストレベルキャッシュ8へのアクセスを行って、図2の処理を終了する。
ステップS5でラストレベルキャッシュ8にミスしたと判定された場合、プロセッサ3がアクセス要求をしたページアドレスを確認して、第2基板5と第3基板6のいずれにアクセスするべきかを判断する(ステップS6)。
第2基板5にアクセスするべきと判断した場合は、第2基板5にアクセスし(ステップS7)、ページアドレスに基づいて、第1メモリ21にアクセスするべきか、または第2メモリ23にアクセスするべきかを判断する(ステップS8)。第1メモリ21にアクセスするべきと判断した場合は、第3メモリ24内のアドレス変換情報を参照して、ページアドレスをセグメントアドレスに変換し(ステップS9)、変換後のセグメントアドレスを用いて第1メモリ(SCM)21にアクセスし、図2の処理を終了する(ステップS10)。ステップS8で第2メモリ23にアクセスするべきと判断した場合は、ページアドレスにて第2メモリ(DRAM)23にアクセスし、図2の処理を終了する(ステップS11)。
ステップS6で第3基板6にアクセスするべきと判断した場合は、第3基板6内の第4メモリ(DRAM)22にアクセスして図2の処理を終了する(ステップS12)。
このように、第1の実施形態では、第4メモリ(DRAM)22が実装された第3基板6とは別個に、第1メモリ(SCM)21と第2メモリ(DRAM)23が実装された第2基板5を設けて、プロセッサ3は第3基板6上の第4メモリ(DRAM)22と、第2基板5上の第1メモリ(SCM)21および第2メモリ(DRAM)23とをそれぞれ別個のアドレスでアクセスできるようにする。
第2基板5には、第1メモリ(SCM)21の他に、第2メモリ(DRAM)23や第3メモリ24(MRAM)等の揮発メモリと不揮発メモリが混載されており、これらのメモリを用いることで、SCM21の欠点である低アクセス性能を補償することができる。このように、本実施形態では、メインメモリを揮発メモリと不揮発メモリで構成している。メインメモリを揮発メモリだけで構成すると、プロセッサシステム2の電源がオフになると、メインメモリ内の全データが消去してしまうが、本実施形態では、メインメモリの一部に不揮発メモリを用いているため、電源がオフになっても残しておきたいデータを不揮発メモリに格納することで、電源が再度オンになったときにメインメモリにデータをロードしなくて済み、プロセッサシステム2全体の処理を高速化できる。
また、本実施形態は、第1メモリ(SCM)21にはセグメント単位でアクセスを行い、例えばDRAM22で構成される第2メモリ23にはページ単位でアクセスを行うため、アクセス速度が遅いSCM21に対して、より大きいデータサイズでアクセスを行うため、高速アクセスが可能となる。このように、第1メモリ21と第2メモリ23でアクセスするデータサイズが異なっていても、第3メモリ24にアドレス変換情報を格納しておくため、特に支障なく第1メモリ21と第2メモリ23にアクセスすることができる。
(第2の実施形態)
図3は第2の実施形態によるプロセッサシステム2の概略構成を示すブロック図である。図3のプロセッサシステム2は、第2基板5の構成の一部が図1とは異なっている。図3では、図1と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。
図3は第2の実施形態によるプロセッサシステム2の概略構成を示すブロック図である。図3のプロセッサシステム2は、第2基板5の構成の一部が図1とは異なっている。図3では、図1と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。
図3のプロセッサシステム2内の第2基板5は、第1メモリ21と、第2メモリ23と、第3メモリ24と、I/F制御回路31とを有する。すなわち、図3の第2基板5は、図1の第2基板5上の第1制御回路25と、第2制御回路26と、I/F切替回路27とを、I/F制御回路31に置換した構成になっている。
第1の実施形態では、第2基板5上の第1メモリ(SCM)21と第2メモリ(DRAM)23がプロセッサ3のそれぞれ異なるアドレス空間に配置されている例を示したが、本実施形態では、第2メモリ23は第1メモリ21のキャッシュメモリとして用いられ、第2メモリ23はプロセッサ3のアドレス空間には配置されていない。
第2基板5上の第3メモリ24は、第1の実施形態と同様のアドレス変換情報だけでなく、第2メモリ23を第1メモリ21のキャッシュメモリとして使用するためのキャッシュ管理情報を格納している。
第2基板5上のI/F制御回路31は、第3メモリ24内のアドレス変換情報とキャッシュ管理情報に基づいて、第1メモリ21と第2メモリ23に対するアクセスを制御する。キャッシュ管理情報は、第2メモリ23に格納されたデータとアドレスとの対応関係や、ダーティフラグ、有効フラグなどの各種フラグ情報などを含んでいる。
プロセッサ3は、第1メモリ(SCM)21と第2メモリ(DRAM)23を有する第2基板5と、第4メモリ(DRAM)22を有する第3基板6とのいずれにアクセスするかを決定する。第2基板5にアクセスする場合には、SCM制御回路13は、SCM駆動回路14を介して、I/F制御回路31にアクセスを指示する。I/F制御回路31は、第3メモリ24内のアドレス変換情報とキャッシュ管理情報を参照して、第1メモリ(SCM)21と第2メモリ(DRAM)23のいずれかにアクセスする。第3基板6にアクセスする場合には、DRAM制御回路11は、DRAM駆動回路12を介して、第4メモリ(DRAM)22に対するアクセスを制御する。
図4は第3メモリ24のデータ構成を示す図である。第3メモリ24は、有効フラグ情報と、ダーティフラグ情報と、物理ページ番号(PPN:Physical Page Number)と、セグメント情報と、第1フラグ情報(1st Flag)と、第2フラグ情報(2nd Flag)と、キャッシュアドレスとを関連づけて格納している。これらの情報がアドレス変換情報とキャッシュ管理情報に相当する。
プロセッサ3がアクセス要求を行う際に指定する物理アドレスは、物理ページ番号とページオフセットとで構成される。第1メモリ21のアドレスは、セグメントIDと、セグメントオフセットと、ページオフセットとで構成される。キャッシュアドレスは、キャッシュタグと、キャッシュインデックスと、ページオフセットとで構成される。
有効フラグ情報は、対応するデータが有効であるか否かを示す情報である。ダーティフラグ情報は、第2メモリ23内の対応するデータを第1メモリ21に書き戻したか否かを示す情報である。
第1フラグ情報は、第1メモリ21内の各データが第2メモリ23にも存在するか否かを示す情報である。第2フラグ情報は、第2メモリ23内の各データを追い出すことを許容するか否かを示すロックダウン用の情報である。この他、第2メモリ23内の各データがLRU(Least Recently Used)データか否かを示すフラグ情報などを設けてもよい。
このように、第3メモリ24は、第1メモリ21と第2メモリ23にアクセスするためのアドレス変換情報とキャッシュ管理情報とを格納している。よって、I/F制御回路31は、第3メモリ24を参照することで、第1メモリ21と第2メモリ23に対するアクセス制御を行うことができ、図1よりも第2基板5上の構成を簡略化できる。
図5は第2の実施形態によるプロセッサシステム2の処理動作を示すフローチャートである。ステップS21〜S27は、図2のステップS1〜S7と同じである。ステップS27で第2基板5にアクセスした後、第3メモリ(MRAM)24にアクセスする(ステップS28)。第3メモリ24内のキャッシュ管理情報を参照して、プロセッサ3のアクセス要求に応じたページアドレスを確認し、第1メモリ21と第2メモリ23のいずれにアクセスするべきかを判断する(ステップS29)。第1メモリ21にアクセスするべきと判断した場合は、第1メモリ2(SCM)1にアクセスし(ステップS30)、第2メモリ23にアクセスするべきと判断した場合は、第2メモリ(DRAM)23にアクセスする(ステップS31)。
ステップS26で第3基板6にアクセスするべきと判断した場合は、図2のステップS12と同様に、第3基板6内の第4メモリ(DRAM)22にアクセスして図5の処理を終了する(ステップS32)。
このように、第2の実施形態では、第2基板5上の第2メモリ(DRAM)23を第1メモリ(SCM)21のキャッシュメモリとして使用するため、第2基板5へのアクセスを高速化できる。よって、低速な第1メモリ(SCM)21を第2基板5に実装したとしても、高速な第2メモリ(DRAM)23をキャッシュメモリとして用いることで、SCM21の欠点を補償できる。よって、アクセス性能を低下させずに、メインメモリを揮発メモリと不揮発メモリで構成できる。
(第3の実施形態)
図6は第3の実施形態によるプロセッサシステム2の概略構成を示すブロック図である。図6のプロセッサシステム2は、第2基板5内の第2メモリ23をDRAM22の代わりにMRAMにしたものであり、それ以外は、図3と同じ構成である。
図6は第3の実施形態によるプロセッサシステム2の概略構成を示すブロック図である。図6のプロセッサシステム2は、第2基板5内の第2メモリ23をDRAM22の代わりにMRAMにしたものであり、それ以外は、図3と同じ構成である。
第2メモリ23は、第1メモリ21よりもメモリ容量が小さいため、第2メモリ23を不揮発メモリにすると、同じく不揮発メモリで構成される第1メモリ21よりもアクセス速度を高速化できる可能性が高い。しかも、MRAMは、MRAM以外の不揮発メモリよりもアクセス速度が速いという特徴があるため、第2メモリ23をMRAMにして、第1メモリ21を例えばMRAM以外の不揮発メモリにすれば、第2メモリ23のアクセス速度を第1メモリ21のアクセス速度よりもかなり高速化でき、第2メモリ23を第1メモリ21のキャッシュメモリとして利用する際にアクセス速度の向上が図れる。
また、第2の実施形態では、第2メモリ23をDRAM22等の揮発メモリにする例を示したが、第2メモリ23を揮発メモリにすると、電源遮断時やシステムリセット時等に、第2メモリ23内のすべての有効データを第1メモリ21に待避させる処理が必要となり、処理の迅速性が損なわれる。第2メモリ23を不揮発メモリにすると、電源をオフにしても、データは消去されないため、データを待避させる必要もなく、処理の高速化が図れる。
図7は第3の実施形態によるプロセッサシステム2の処理動作を示すフローチャートである。図7はステップS51の処理が図5のステップS31と異なる他は、図5の処理と同じである。ステップS51では、第2基板5上の第2メモリ23にアクセスするべきと判断した場合は、第2メモリ23であるMRAMにアクセスする。
このように、第3の実施形態では、第2基板5上のキャッシュメモリとして用いられる第2メモリ23をMRAMにするため、第1メモリ21よりも高速に第2メモリ23にアクセス可能となり、かつ電源遮断時等に第2メモリ23内のデータを待避させる必要もなくなり、第2メモリ23に対するアクセス制御が容易になる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 メモリシステム、2 プロセッサシステム、3 プロセッサ、4 第1基板、5 第2基板、6 第3基板、7 マルチコアユニット、8 ラストレベルキャッシュ、9 TLB、10 ページテーブル、11 DRAM制御回路、12 DRAM駆動回路、13 SCM制御回路、14 SCM駆動回路、15 コア、16 分散共有ユニット、17 マルチコアユニット、21 第1メモリ、22 第4メモリ、23 第2メモリ、24 第3メモリ、25 第1制御回路、26 第2制御回路、27 I/F切替回路、31 I/F制御回路
Claims (13)
- 第1データサイズごとにアクセスされる第1メモリと、
前記第1データサイズよりも小さい第2データサイズごとにアクセスされ、前記第1メモリよりも高速アクセスが可能な第2メモリと、
前記第1メモリにアクセスするためのアドレス変換情報を格納する第3メモリと、を備え、
前記第1メモリおよび前記第3メモリは不揮発メモリである、メモリシステム。 - プロセッサからのアクセス要求に応じて、前記第1メモリにアクセスするか、前記第2メモリにアクセスするかを切り替えるインタフェース切替回路と、
前記アドレス変換情報に基づいて、前記第1メモリに対するアクセスを制御する第1制御回路と、
前記第2メモリに対するアクセスを制御する第2制御回路と、を備える、請求項1に記載のメモリシステム。 - 前記第2メモリは、前記第1メモリよりもアクセス優先度が高く、かつ前記第1メモリに格納されたデータまたは格納されるべきデータを格納し、
前記第3メモリは、前記アドレス変換情報に加えて、前記第2メモリを前記第1メモリのキャッシュメモリとして使用するためのキャッシュ管理情報を格納する、請求項1に記載のメモリシステム。 - 前記キャッシュ管理情報は、前記第1メモリに格納されているデータが前記第2メモリにも存在するか否かを示す第1フラグ情報を含む、請求項3に記載のメモリシステム。
- 前記キャッシュ管理情報は、前記第2メモリに格納されるデータを追い出すことを許容するか否かを示す第2フラグ情報を含む、請求項4に記載のメモリシステム。
- プロセッサからのアクセス要求に応じて、前記アドレス変換情報および前記キャッシュ管理情報に基づいて、前記第1メモリおよび前記第2メモリに対するアクセスを制御するインタフェース制御回路を備える、請求項4または5に記載のメモリシステム。
- 前記第3メモリは、前記第1メモリよりもメモリ容量が小さくて、前記第1メモリよりも高速アクセスが可能である、請求項1乃至6のいずれか一項に記載のメモリシステム。
- 前記第2メモリは、揮発メモリである、請求項1乃至7のいずれか一項に記載のメモリシステム。
- 前記第2メモリは、不揮発メモリである、請求項1乃至7のいずれか一項に記載のメモリシステム。
- 前記第2メモリは、前記第1メモリとは異なるメモリセル構造を有する不揮発メモリである、請求項9に記載のメモリシステム。
- 前記第1メモリとは異なるアドレスによってプロセッサからアクセスされる第4メモリを備え、
前記第4メモリは、揮発メモリである、請求項1乃至10のいずれか一項に記載のメモリシステム。 - 前記第3メモリは、MRAM(Magnetoresistive Random Access Random Memory)である、請求項1乃至11のいずれか一項に記載のメモリシステム。
- プロセッサと、
プロセッサによりアクセスされるメモリシステムと、を備え、
前記メモリシステムは、
第1データサイズごとにアクセスされる第1メモリと、
前記第1データサイズよりも小さい第2データサイズごとにアクセスされ、前記第1メモリよりも高速アクセスが可能な第2メモリと、
前記第1メモリにアクセスするためのアドレス変換情報を格納する第3メモリと、を備え、
前記第1メモリおよび前記第3メモリは不揮発メモリである、プロセッサシステム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016183344A JP2018049385A (ja) | 2016-09-20 | 2016-09-20 | メモリシステムおよびプロセッサシステム |
CN201710136121.2A CN107844264B (zh) | 2016-09-20 | 2017-03-09 | 存储器系统以及处理器系统 |
US15/455,483 US10423536B2 (en) | 2016-09-20 | 2017-03-10 | Memory system with plural nonvolatile memories having different access sizes, different speeds using address conversion information to access one memory by converting an address to access another memory |
TW106108075A TWI663542B (zh) | 2016-09-20 | 2017-03-10 | Memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016183344A JP2018049385A (ja) | 2016-09-20 | 2016-09-20 | メモリシステムおよびプロセッサシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018049385A true JP2018049385A (ja) | 2018-03-29 |
Family
ID=61620571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016183344A Pending JP2018049385A (ja) | 2016-09-20 | 2016-09-20 | メモリシステムおよびプロセッサシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US10423536B2 (ja) |
JP (1) | JP2018049385A (ja) |
CN (1) | CN107844264B (ja) |
TW (1) | TWI663542B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022548888A (ja) * | 2019-09-17 | 2022-11-22 | マイクロン テクノロジー,インク. | データが格納されているメモリデバイスを特定するための格納されたメタデータに対するアクセス |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10956071B2 (en) | 2018-10-01 | 2021-03-23 | Western Digital Technologies, Inc. | Container key value store for data storage devices |
US10769062B2 (en) | 2018-10-01 | 2020-09-08 | Western Digital Technologies, Inc. | Fine granularity translation layer for data storage devices |
KR20200044312A (ko) | 2018-10-19 | 2020-04-29 | 삼성전자주식회사 | 반도체 장치 |
US10740231B2 (en) * | 2018-11-20 | 2020-08-11 | Western Digital Technologies, Inc. | Data access in data storage device including storage class memory |
US10963396B1 (en) | 2019-09-17 | 2021-03-30 | Micron Technology, Inc. | Memory system for binding data to a memory namespace |
US11269780B2 (en) | 2019-09-17 | 2022-03-08 | Micron Technology, Inc. | Mapping non-typed memory access to typed memory access |
US11016905B1 (en) | 2019-11-13 | 2021-05-25 | Western Digital Technologies, Inc. | Storage class memory access |
US11249921B2 (en) | 2020-05-06 | 2022-02-15 | Western Digital Technologies, Inc. | Page modification encoding and caching |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4049297B2 (ja) * | 2001-06-11 | 2008-02-20 | 株式会社ルネサステクノロジ | 半導体記憶装置 |
US6834327B2 (en) * | 2002-02-08 | 2004-12-21 | Hewlett-Packard Development Company, L.P. | Multilevel cache system having unified cache tag memory |
CN101673245B (zh) * | 2008-09-09 | 2016-02-03 | 株式会社东芝 | 包括存储器管理装置的信息处理装置和存储器管理方法 |
US8250282B2 (en) | 2009-05-14 | 2012-08-21 | Micron Technology, Inc. | PCM memories for storage bus interfaces |
TWI460588B (zh) * | 2009-07-17 | 2014-11-11 | Toshiba Kk | Memory management device and memory information processing device |
US8914568B2 (en) * | 2009-12-23 | 2014-12-16 | Intel Corporation | Hybrid memory architectures |
JP2013030552A (ja) | 2011-07-27 | 2013-02-07 | Toshiba Corp | 不揮発性半導体記憶装置 |
EP2761468B1 (en) * | 2011-09-30 | 2019-12-11 | Intel Corporation | Platform storage hierarchy with non-volatile random access memory having configurable partitions |
EP2761464B1 (en) * | 2011-09-30 | 2018-10-24 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy having different operating modes |
US8868843B2 (en) * | 2011-11-30 | 2014-10-21 | Advanced Micro Devices, Inc. | Hardware filter for tracking block presence in large caches |
US9280497B2 (en) * | 2012-12-21 | 2016-03-08 | Dell Products Lp | Systems and methods for support of non-volatile memory on a DDR memory channel |
US9323662B2 (en) * | 2012-12-31 | 2016-04-26 | SanDisk Technologies, Inc. | Flash memory using virtual physical addresses |
US9547594B2 (en) * | 2013-03-15 | 2017-01-17 | Intel Corporation | Instructions to mark beginning and end of non transactional code region requiring write back to persistent storage |
JP6088951B2 (ja) | 2013-09-20 | 2017-03-01 | 株式会社東芝 | キャッシュメモリシステムおよびプロセッサシステム |
CN103810126B (zh) * | 2014-01-27 | 2017-06-13 | 上海新储集成电路有限公司 | 混合dram存储器及降低该dram存储器刷新时功耗的方法 |
US20160253123A1 (en) * | 2014-03-19 | 2016-09-01 | Bruce Ledley Jacob | NVMM: An Extremely Large, Logically Unified, Sequentially Consistent Main-Memory System |
-
2016
- 2016-09-20 JP JP2016183344A patent/JP2018049385A/ja active Pending
-
2017
- 2017-03-09 CN CN201710136121.2A patent/CN107844264B/zh active Active
- 2017-03-10 TW TW106108075A patent/TWI663542B/zh active
- 2017-03-10 US US15/455,483 patent/US10423536B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022548888A (ja) * | 2019-09-17 | 2022-11-22 | マイクロン テクノロジー,インク. | データが格納されているメモリデバイスを特定するための格納されたメタデータに対するアクセス |
Also Published As
Publication number | Publication date |
---|---|
CN107844264A (zh) | 2018-03-27 |
TW201814493A (zh) | 2018-04-16 |
US20180081820A1 (en) | 2018-03-22 |
TWI663542B (zh) | 2019-06-21 |
US10423536B2 (en) | 2019-09-24 |
CN107844264B (zh) | 2022-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844264B (zh) | 存储器系统以及处理器系统 | |
US10379746B2 (en) | Information processing apparatus, storage device, and computer program product | |
US8954672B2 (en) | System and method for cache organization in row-based memories | |
EP3121703B1 (en) | Data caching method, cache and computer system | |
US20160378652A1 (en) | Cache memory system and processor system | |
US11580029B2 (en) | Memory system, computing system, and methods thereof for cache invalidation with dummy address space | |
US9740613B2 (en) | Cache memory system and processor system | |
US10031854B2 (en) | Memory system | |
JP6027562B2 (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
US20210056030A1 (en) | Multi-level system memory with near memory capable of storing compressed cache lines | |
US20200089426A1 (en) | Management device, information processing apparatus, and memory control method | |
US10445003B2 (en) | Memory system for dualizing first memory based on operation mode | |
US20170109066A1 (en) | Memory system | |
US20170109071A1 (en) | Memory system | |
US11221965B2 (en) | Cache memory, memory system including the same, and eviction method of cache memory | |
US20170109086A1 (en) | Memory system | |
US10467137B2 (en) | Apparatus, system, integrated circuit die, and method to determine when to bypass a second level cache when evicting modified data from a first level cache | |
US10402325B2 (en) | Memory system | |
JP2018049672A (ja) | メモリシステムおよびプロセッサシステム | |
JP6039772B1 (ja) | メモリシステム | |
US10423540B2 (en) | Apparatus, system, and method to determine a cache line in a first memory device to be evicted for an incoming cache line from a second memory device | |
KR20170054609A (ko) | 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20170605 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180904 |