JP2017045457A - トランザクション基盤のハイブリッドメモリモジュール、及びそれを動作させる方法 - Google Patents

トランザクション基盤のハイブリッドメモリモジュール、及びそれを動作させる方法 Download PDF

Info

Publication number
JP2017045457A
JP2017045457A JP2016162674A JP2016162674A JP2017045457A JP 2017045457 A JP2017045457 A JP 2017045457A JP 2016162674 A JP2016162674 A JP 2016162674A JP 2016162674 A JP2016162674 A JP 2016162674A JP 2017045457 A JP2017045457 A JP 2017045457A
Authority
JP
Japan
Prior art keywords
memory
dram
cache
controller
transaction
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
Application number
JP2016162674A
Other languages
English (en)
Other versions
JP2017045457A5 (ja
Inventor
牧 天 張,
Mu-Tien Chang
牧 天 張,
宏 忠 ズン,
Hongzhong Zheng
宏 忠 ズン,
ディ 民 牛,
di-min Niu
ディ 民 牛,
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2017045457A publication Critical patent/JP2017045457A/ja
Publication of JP2017045457A5 publication Critical patent/JP2017045457A5/ja
Pending legal-status Critical Current

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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • 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/061Improving I/O performance
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】改善された性能を有するトランザクション基盤ハイブリッドメモリモジュールを提供する。【解決手段】ハイブリッドメモリモジュールはダイナミックランダムアクセスメモリ(DRAM)キャッシュ、フラッシュストレージ、及びメインコントローラを含む。前記DRAMキャッシュは1つ以上のDRAM装置とDRAMコントローラとを含み、前記フラッシュストレージは1つ以上のフラッシュ装置とフラッシュコントローラとを含む。前記メインコントローラは前記DRAMコントローラ及び前記フラッシュコントローラとインターフェイシングする。【選択図】図1

Description

本発明はメモリモジュール及びそれを動作させる方法に係り、より詳しくは、トランザクション基盤のハイブリッドメモリモジュール及びそれを動作させる方法に関する。
ソリッドステートドライブ(SSD)はダイナミックランダムアクセスメモリ(DRAM)及びフラッシュメモリ(flash memory)等の非回転ストレージ媒体内にデータを格納する。DRAMは速くて、低レイテンシ(latency)及び反複的なリード/ライトサイクルに対して高耐久性(high endurance)を有する。フラッシュメモリは典型的に安く、リフレッシュを要求せず、電力の消耗は低い。これらの優位な特性によって、DRAMは典型的に動作命令及び一時的データを格納するのに使用され、一方フラッシュメモリはアプリケーション及び使用者データを格納するのに使用される。
DRAM及びフラッシュメモリは多様なコンピューティング環境において共に使用される。例えば、データセンターは高容量、高性能、低電力、及び低費用メモリソリューションを要求する。データセンターに対する最近のメモリソリューションは主にDRAMに基づく。DRAMは高性能を提供するが、フラッシュメモリはDRAMに比べて相対的に高密度であり、低電力消耗であり、さらに低廉である。
動作原理の差異点によって、別のメモリコントローラがDRAMとフラッシュメモリとを制御するのに使用される。例えば、DRAMはバイト単位のアドレッシングであるのに比べて、フラッシュメモリはブロック単位のアドレッシングである。フラッシュメモリはウェアレベリング(wear leveling)及びガーベッジコレクション(garbage collection)を要求する反面、DRAMはリフレッシュを要求する。また、例えばDRAM及びフラッシュメモリ、両方を含むハイブリッドメモリシステムはDRAMとフラッシュメモリとの間のデータ伝送のためのインターフェイスを要求する。さらに、ハイブリッドメモリシステムはDRAMとフラッシュメモリとの間のデータ伝送のためにマッピングテーブルを要求する。DRAMとフラッシュメモリの間のアドレスマッピングテーブルはデータを格納し、伝送する時オーバーヘッド(overhead)をもたらす。結果的にハイブリッドメモリシステムの性能はオーバーヘッドによって低下する。
米国特許第7,856,537号公報 米国特許公開第2007/0136523号明細書 米国特許公開第2012/0124294号明細書 米国特許公開第2010/0115191号明細書 米国特許公開第2015/0095578号明細書 米国特許公開第2012/0159083号明細書 米国特許公開第2013/0138892号明細書
本発明が解決しようとする技術的課題は、改善された性能を有するトランザクション基盤ハイブリッドメモリモジュールを提供することにある。
本発明の一実施形態によるハイブリッドメモリモジュールはダイナミックランダムアクセスメモリ(DRAM)キャッシュ、フラッシュストレージ、及びメモリコントローラを含む。前記DRAMキャッシュは1つ以上のDRAM装置とDRAMコントローラとを含み、前記フラッシュストレージは1つ以上のフラッシュメモリとフラッシュコントローラとを含む。メモリコントローラは前記DRAMコントローラ及び前記フラッシュコントローラとインターフェイシングする。
一実施形態によるDRAMキャッシュとフラッシュストレージとを含むハイブリッドメモリモジュールを動作させる方法を開示する。前記方法は、ホストメモリコントローラからのメモリトランザクション要請を非同期的に受信し、前記メモリトランザクション要請を前記ハイブリッドメモリモジュールのバッファ内に格納し、前記ハイブリッドメモリモジュールのキャッシュタッグをチェックし、前記メモリトランザクション要請が前記DRAMキャッシュ内に格納されたデータをアクセスするための要請を含んでいるか否かを決定し、そして前記キャッシュタッグに基づいて前記メモリトランザクション要請を遂行することを含む。
具現の多様な新規詳細及びイベントの組合を含む前記及び他の望ましい特徴は添付図面の参照により詳細に説明され、請求の範囲内において言及する。ここに説明する特別なシステム及び方法が制限されることではなく、図示の目的として示したことが理解される。本分野の熟練された者によって理解できることであって、ここに開示する原理及び特徴は本発明の開示の範囲を逸脱しなく、多様であり、数多い実施形態に適用される。
本発明のトランザクション基盤のハイブリッドメモリモジュールによれば、オーバーヘッドが減って性能が改善される。
本発明の一実施形態による例示的なハイブリッドメモリモジュールの構成を示す。 本発明の一実施形態によるリードヒット動作の例示的なフローチャートである。 本発明の一実施形態によるリードミス動作の例示的なフローチャートである。 本発明の一実施形態によるライトヒット動作の例示的なフローチャートである。 本発明の一実施形態によるライトミス動作の例示的なフローチャートである。
図面において、類似の構造又は機能の構成要素は全図面において類似な参照符号により図示する。図面は明細書に説明する多様な実施形態の説明を容易にするためのみに図示する。図面は本明細書に開示する教示のすべての側面を説明することではなく、請求項の範囲を制限しない。
本明細書に開示する特徴及び教示(teaching)は各々個別的に活用されるか、或いはトランザクション基盤のハイブリッドメモリモジュール及びその動作方法を提供するために他の特徴及び教示と共に活用される。このような追加の特徴及び教示を個別に或いは組合せ的に多く活用する代表的な例を、添付する図面を参照にさらに詳細に説明する。詳細な説明は単なる本分野の熟練した者に本教示の態様を実施するための追加的な詳細を教えるための意図のみであり、特許請求の範囲を限定しようとする意図ではない。したがって、詳細な説明において、開示する特徴の組合せは広い意味の教示を実施するのに必要としないこともあり得、その代わりに本教示の特に代表的な例を説明するだけのために示している。
以下において、説明の目的のみに、特定名称が本発明の完全な理解を提供するために説明する。しかし、このような特定細部事項は本発明の開示の教示を実施するのに要求されないことが当業者に明らかである。
詳細な説明の一部はアルゴリズム及びコンピュータメモリ内のデータビットに対する動作のシンボル表現の側面により提供する。これらのアルゴリズムの説明及び表現は効果的に他の当業者に作業の実体を伝達するためにデータ処理分野の当業者によって使用される。アルゴリズムは一般的に、望む結果に至る段階の自らの一貫性シークェンス(self−consistent sequence)であるとして案出される。前記段階は物理量の物理的操作が必要であるものである。一般的に、必須的でないが、これらの量は格納、伝達、結合、比較及び他の処理による電気又は磁気信号の形態を取る。この信号に対してビット、値、エレメント、シンボル、キャラクター、用語、数字等として指称することが主に共通的な使用の理由の下においてしばしば便利である。
しかし、これら及び類似な用語の全ては適切な物理量と連関され、単なるこのような量に適用される便利なラベルであることを留意しなければならない。特別に以下の説明において明確に記載されない限り、説明の全体を通じて“処理”、“コンピューティング”、“計算”、“決定”、“表示”等の用語を活用する論議は、コンピュータシステムや類似な電子コンピューティング装置の作用及び処理を指称するとして理解される。ここで、作用及び処理はコンピュータシステムのレジスター及びメモリ内における物理的(電子的)量として表れるデータを他のデータに操作及び変換することを意味する。前記他のデータは前記コンピュータシステムのメモリ又はレジスタ、他の情報ストレージ、又は伝送又は表示装置内における物理量として類似に現れるデータである。
本発明に提示するアルゴリズムは任意の特定コンピュータ又は他の装置に本質的に関連されない。多様な汎用システム、コンピュータサーバー、又は個人用コンピュータは本明細書の教示にしたがうプログラムと共に使用できる。又は要求された方法段階を遂行するためにさらに特別化された装置を構成することが便利であり得る。このような多様なシステムに必要である構造は以下の説明に示す。多様なプログラミング言語がここに開示されたような発明の教示を具現するのに使用されることが理解されるべきである。
また、代表的な実施形態の多様な特徴と従属請求項は本教示の追加的な有用な実施形態を提供するために列挙されない方式に結合できる。また、エンティティーグループのすべての値の範囲又は表示(indications)は元の開示の目的のためはもちろん、請求された発明の思想を特定する意図としてすべての可能である中間値又は中間個体(エンティティー)を開示することが明示的に言及される。そして、図面内に示す構成要素の次元及び形状は本発明の教示がどのようにして実施されるかに対する理解を助けるために設定するだけであり、実施形態に示した次元及び形状に限定されないことがまた特別に言及される。
本発明は揮発性メモリ(例えば、DRAM)及び不揮発性メモリ(例えば、フラッシュメモリ)を含むトランザクション基盤のハイブリッドメモリモジュール及びその動作方法を提供する。一実施形態において、トランザクション基盤のハイブリッドメモリモジュールはDRAMキャッシュとフラッシュストレージとを含む。これと関連して、ハイブリッドメモリモジュールは、本明細書においてDRAM−フラッシュ或いはDRAM−フラッシュメモリモジュールと称される。DRAMキャッシュは前端(front−end)メモリキャッシュとして使用され、フラッシュストレージは後端(back−end)ストレージとして使用される。ホストメモリコントローラは前記ハイブリッドメモリモジュールに対してトランザクション基盤のメモリインターフェイス(transaction−based memory interface)を有する。ホストコンピュータ(又はホストコンピューターのCPU)からのメモリアクセス要請(requests)はトランザクションに基づいて非同期的に処理される。メモリアクセス要請はバッファ内に格納され、1回に1つずつ処理される。DRAMキャッシュ及びフラッシュストレージの全ては同一のメモリモジュール上に常駐(reside)し、単一メモリアドレス空間(single memory address space)内において動作する。本発明によるトランザクション基盤のハイブリッドメモリモジュールはフラッシュのようなメモリ容量、パワー、コスト、及びDRAMのような性能(performance)を提供できる。
ハイブリッドメモリモジュールはダイナミックランダムアクセスメモリ(DRAM)キャッシュ、フラッシュストレージ、及びメモリコントローラを含む。前記DRAMキャッシュは1つ以上のDRAM装置とDRAMコントローラとを含み、前記フラッシュストレージは1つ以上のフラッシュメモリとフラッシュコントローラとを含む。前記メモリコントローラは前記DRAMコントローラ及び前記フラッシュコントローラとインターフェイシングする。前記メモリコントローラはバッファ及びキャッシュタッグを含む。トランザクション基盤のメモリインターフェイスは前記メモリコントローラとホストメモリコントローラとを連結するように構成される。前記メモリコントローラの前記バッファは前記ホストメモリコントローラから受信されたメモリトランザクション要請を格納し、前記キャッシュタッグは、前記ホストメモリコントローラから受信されたメモリトランザクション要請がDRAMキャッシュをアクセスするための要請を含むか否かを示す。
図1は本発明の一実施形態による例示的なハイブリッドメモリモジュールの構成を示す。ハイブリッドメモリモジュール100はDRAM装置131を含む前端(front−end)メモリキャッシュとしてのDRAMキャッシュ110、フラッシュ装置141を含む後端(back−end)ストレージとしてのフラッシュストレージ120、及びメインコントローラ150を含む。メインコントローラ150はDRAMキャッシュ110のDRAMコントローラ130及びフラッシュストレージ120のフラッシュコントローラ140とインターフェイシングする。ハイブリッドメモリモジュール100はトランザクション基盤(例えば、非同期)のメモリインターフェイス155を経由してホストメモリコントローラ160とインターフェイシングする。同期メモリインターフェイスとは異なり、本発明のトランザクション基盤のメモリインターフェイスは設計柔軟性のためにハイブリッドメモリモジュール100をホストメモリコントローラ160から分離させる。トランザクション基盤のメモリインターフェイス155は連結されたハイブリッドメモリモジュール100のメモリアクセスレイテンシが非決定的(non−deterministic)である場合に使用される。
メインコントローラ150はキャッシュタッグ151及び前記キャッシュの臨時格納のためのバッファ152を含む。メインコントローラ150はキャッシュ管理及びフロー制御(cache management and flow control)を担当する。DRAMコントローラ130はDRAM装置131のメモリコントローラとして動作し、メモリトランザクション及びコマンドスケジューリングはもちろん、メモリリフレッシュ等のDRAM維持活動を管理する。フラッシュコントローラ140はフラッシュ装置141のSSDコントローラとして動作し、アドレス変換(address translation)、ガーベッジコレクション(garbage collection)、ウェアレベリング(wear leveling)、及びスケジューリング(scheduling)を管理する。
ホストメモリコントローラ160とハイブリッドメモリモジュール100間のメモリトランザクション及びメモリインターフェイス155の、関連した動作フローを参照して、4つの使用の場合を説明する。フラッシュメモリ対するリード/ライトグラニュラリティ(granularity)はフラッシュ製品に対応して変わり、例えば4KBである。行バッファ(又はページ)の大きさもフラッシュ製品に対応して変わり、例えば、2KBである。以下の例示において、DRAMキャッシュ110及びフラッシュストレージ120のアクセスグラニュラリティ(access granularity)は各々64B及び4KBであると仮定し、メモリコントローラのリード/ライト要請の大きさは64Bであると仮定する。しかし、これらは例示的な大きさに過ぎず、DRAMキャッシュ110及びフラッシュストレージ120のアクセスグラニュラリティの他の大きさ及びメモリコントローラのリード/ライト要請の大きさが本発明の技術的思想の範囲を逸脱しなくて使用されると理解するべきである。
図2は本発明の一実施形態によるリードヒット(read hit)動作の例示的なフローチャートである。段階201においてトランザクション基盤のメモリインターフェイス155を通じてホストメモリコントローラ160からの要請が受信される時、メインコントローラ150は段階202においてキャッシュタッグ151をチェックする。ホストメモリコントローラ160から受信された要請はバッファ152内に格納される。また、バッファ152はDRAMキャッシュ110とフラッシュストレージ120との間及びメインコントローラ150とホストメモリコントローラ160との間のデータ伝送に対する一時的データを格納する。キャッシュタッグ151は前記要請がDRAMキャッシュ110に対する及びDRAMキャッシュ110からのメモリトランザクションを含むか否かを示す。
バッファ152内にペンディング要請がある時、メインコントローラ150は前記要請と関連されたメモリアドレス或いはメモリアドレスの範囲を決定するために前記要請をデコーディングする。メインコントローラ150は格納されたデータと関連された所定のデータ(例えば、頻繁に使用されるデータ)をDRAMキャッシュ内に格納し、キャッシュタッグ151を前記格納されたデータと関連されたメモリアドレスを示すために設定(set)する。キャッシュタッグ151は前記メモリアドレスからデコーディングされ、要請されたデータが前記キャッシュ内にあるか否かを決定するのに使用される。キャッシュは多重キャッシュラインを含む。各キャッシュラインは自分の固有なインデックス及びタッグを有する。メモリ要請が入る時、メインコントローラ150のデコーダ(図示せず)は前記インデックス及び前記メモリアドレスと関連された前記キャッシュタッグを決定する。前記インデックス及びキャッシュタッグに基づいて、メインコントローラ150のキャッシュコントローラ(図示せず)はいずれのキャッシュラインが同一のインデックス及びキャッシュタッグを有するかを決定する。マッチ(match)すれば、これはキャッシュヒット(cache hit)とされる。マッチしなければ、これはキャッシュミス(cache miss)とされる。メインコントローラ150がキャッシュタッグ151を参照して、前記要請がリードコマンドを含むか否かを決定し、DRAMキャッシュ110が前記リードアドレスと関連された前記データを含むことを決定する場合に、即ち、段階203においてリードヒットとされれば、メインコントローラ150はDRAMコントローラ130がDRAMキャッシュ110をアクセスすることを命令する。DRAMコントローラ130は段階204においてDRAMキャッシュ110をアクセスし、段階205においてDRAMキャッシュ110から64Bデータを受信する。DRAMコントローラ130は段階206において前記64Bデータをメインコントローラ150にリターン(return)する。メインコントローラ150は段階207においてリンクバスを通じて前記64Bデータをホストメモリコントローラ160へ送る。DRAMキャッシュ110からリターンされるデータのタイミングは非決定的(non−deterministic)である。なぜならば、ホストメモリコントローラ160とハイブリッドメモリモジュール100との間のメモリインターフェイス155がトランザクション基盤であるためである。DRAMキャッシュ110及びフラッシュストレージ120からリターンされるデータのディレイ(delay)は異なってもよく、これについては以下においてさらに詳細に説明する。
図3は本発明の一実施形態によるリードミス動作の例示的なフローチャートである。キャッシュタッグ151が、ホストメモリコントローラ160からの要請が前記DRAMキャッシュ内には格納されていないリードメモリトランザクションを含むことを示す時、データはフラッシュストレージ120から獲得される。即ち、図2内の段階211のようにリードミスとされる場合に、メインコントローラ150はデータがフラッシュストレージ120内に格納されているか否かを決定し、フラッシュコントローラ140がフラッシュストレージ120に対する対応メモリアドレスからデータをリードするように命令する。フラッシュコントローラ140は段階212においてフラッシュストレージ120をアクセスして、段階213においてフラッシュストレージ120から4KBデータ(フラッシュストレージ120のアクセスグラニュラリティ)を受信する。フラッシュコントローラ140は段階214において前記4KBデータをメインコントローラ150にリターンする。メインコントローラ150は段階215において、受信された4KBデータに関連された64B(DRAMキャッシュ110のアクセスグラニュラリティ)を選択し、選択された64Bを前記リンクバスを通じてホストメモリコントローラ160へ送る。
メインコントローラ150はまた立退き(evict)のためにDRAMキャッシュページ(4KB)を探す。段階216において、前記4KBデータに対応するDRAMキャッシュページがクリーン(clean)であれば、メインコントローラ150は前記4KBデータをDRAMコントローラ130にライトし、続いてDRAMコントローラ130は前記4KBデータをDRAMキャッシュ110にライトする(段階217)。DRAMキャッシュ110はフラッシュストレージ120内に格納された4KBデータに更新(update)する。キャッシュ内の多重キャッシュラインは各々インデックス(index)、タッグ(tag)、及びダーティビット(dirty bit)を有する。メインコントローラ150は前記ダーティビットを参照してキャッシュラインのダーティ程度(dirtiness)を決定する。初期において、すべてのダーティビットは0に設定される。ここで、0はキャッシュラインがクリーン(clean)であることを意味する。キャッシュ内のデータはフラッシュストレージ120内のデータのサブセット(subset)である。クリーンは同一アドレスに対してキャッシュ内のデータとフラッシュストレージ120内のデータとが同一であることを意味する。逆に、ダーティは同一アドレスに対してキャッシュ内のデータがフラッシュストレージ120内のデータから更新されたことを意味する。したがって、フラッシュストレージ120内のデータは陳腐(stale)であることを示す。ダーティキャッシュラインが立退きであれば、フラッシュストレージ120内の対応するデータは更新されなければならない。クリーンキャッシュラインが立ち退かれる場合に更新は必要としない。
DRAMキャッシュ110が段階216においてダーティであれば、メインコントローラ150はDRAMコントローラ130がDRAMキャッシュ110から4KBダーティデータをリードするように命令する。DRAMコントローラ130は段階218においてDRAMキャッシュ110から4KBダーティデータをアクセスして受信する。DRAMコントローラ130は4KBダーティデータをメインコントローラ150にリターンし、メインコントローラ150はフラッシュコントローラ140が4KBダーティデータをフラッシュストレージ120にライトバックするように命令する(段階219)。メインコントローラ150は新しい4KBデータをDRAMコントローラ130にライトし、DRAMコントローラ130は前記新しい4KBデータをDRAMキャッシュ110にライトする(段階220)。DRAMキャッシュ110はフラッシュストレージ120内に格納された新しい4KBデータにより更新される。
次に、ライトヒット(write hit)及びライトミス動作を図1のハイブリッドメモリモジュール100の構造を参照に説明する。図4及び図5を参照して説明する例示的なフローチャートはライトスルーキャッシュ方策(write−through cache policy)を採用している。しかし、本発明は本発明の技術的思想を逸脱しない範囲内において他のキャッシュ方策を採用できることを理解するべきである。ライトスルーキャッシュ方策において、ライト要請は前端ストレージとしてのDRAMキャッシュ110及び後端フラッシュとしてのフラッシュストレージ120の全てに対して同期的に処理される。図4は本発明の一実施形態によるライトヒット動作の例示的なフローチャートである。段階301においてホストメモリコントローラ160からの要請がトランザクション基盤のメモリインターフェイス155を通じて受信されれば、メインコントローラ150は段階302においてキャッシュタッグ151をチェックして、ホストメモリコントローラ160から受信された前記要請がDRAMキャッシュ110に対するライトコマンドを含むか否かを決定する(段階303)。即ち、段階303においてはライトヒットとして示している。ライトヒットの場合に、メモリトランザクションは以下のシークェンスを発生する。メインコントローラ150は段階304において、ホストメモリコントローラ160から受信された64BデータをDRAMコントローラ130にライトする。DRAMコントローラ130は64Bデータを段階305においてDRAMキャッシュ110にライトする。メインコントローラ150は前記キャッシュページをダーティとしてマークし、DRAMキャッシュ110内のデータは段階306において更新される。ダーティとしてマークされた前記キャッシュページは前記キャッシュページに対する連続的なリードミスが図3の段階218乃至220におけるように生じる場合に立ち退かれる。
図5は本発明の一実施形態によるライトミス動作の例示的なフローチャートである。メインコントローラ150はホストメモリコントローラ160から受信された前記要請がフラッシュストレージ120に対するライトコマンドを含むか否かを決定するために段階311において、キャッシュタッグ151をチェックする。ここではライトミスとして示している。ライトミスの場合に、メモリトランザクションは次のようなシークェンスを発生する。先ず、メインコントローラ150はDRAMキャッシュページがクリーン或いはダーティであるかを段階312において決定する。DRAMキャッシュページがダーティであれば、メインコントローラ150はDRAMコントローラ130が4KBダーティデータをDRAMキャッシュ110からリードするように命令する。段階313において、DRAMコントローラ130はDRAMキャッシュ110から4KBダーティデータをアクセスしてリードし、4KBダーティデータをメインコントローラ150へリターンする。メインコントローラ150は4KBダーティデータをフラッシュコントローラ140にライトバックし、フラッシュコントローラ140は4KBダーティデータをフラッシュストレージ120にライトする(段階314)。
メインコントローラ150がDRAMキャッシュページがクリーンになったか(段階312)、又はダーティデータがフラッシュストレージにライトされた後であるか(段階314)を決定した場合に、メインコントローラ150はホストメモリコントローラ160から受信されたデータを前記キャッシュページ内に更新する準備をする。メインコントローラ150はホストメモリコントローラ160から受信された64BデータをDRAMコントローラ130にライトする(段階315)。DRAMコントローラ130は前記64BデータをDRAMキャッシュ110にライトする(段階316)。メインコントローラ150は段階317においてキャッシュページをダーティとしてマークする。
幾つかの実施形態において、メインコントローラ150は本発明の技術的思想を逸脱しない範囲内で多様なキャッシュ方策を採用できる。一実施形態において、メインコントローラ150はライトバックキャッシュ方策を採用する。メインコントローラ150がライトバックキャッシュ方策を採用する場合にメインコントローラ150はDRAMキャッシュ110に初期にライトを行い、データを含むキャッシュブロックが新しいデータに変更されるか、或いは置き換える時までフラッシュストレージ120へのライトを延期する。データが新しいデータによりライトされた場合にアドレスを追跡するために、メインコントローラ150はオーバーライトされたアドレスを“ダーティ”としてマーク(表示)する。新しいデータは、データがDRAMキャッシュ110から立ち退かれた時、フラッシュストレージ120にライトされる。
他の実施形態において、メインコントローラ150はライトアラウンドキャッシュ方策(write−around cache policy)を採用する。前記ライトアラウンドキャッシュ方策は前記ライトスルーキャッシュ方策と類似であるが、データがDRAMキャッシュ110をバイパスしてフラッシュストレージ120に直接的にライトされる。これはライト要請(後続的に再リードされる)で溢れるキャッシュを減らす。
さらに良い性能と速い応答を得るために、本発明のハイブリッドメモリモジュール100はフラッシュページをDRAMページにマッピングする。DRAMキャッシュ110とフラッシュストレージ1201との間のページマッピングは本発明のハイブリッドメモリモジュール100がオープンページ方策を採用できるようにする。前記オープンページ方策はDRAMキャッシュ110内のページをアクセルする時に、メモリアクセスをより速くする。例えば、DRAMキャッシュ110からデータをリードする時或いはDRAMキャッシュ110にデータをライト時に、本発明のハイブリッドメモリモジュール100は単なる1つのDRAM行活性化を必要とし、DRAM行バッファをオープンに置くので、オープンページ方策の長所を採択してカラムアクセスのシークェンスを発行する。DRAMメモリに対して、オープンページ方策を使用する時、アクセスのシークェンスが同一の行において生じる場合(ここでは行バッファヒットとして示す)に、本発明のトランザクション基盤ハイブリッドメモリモジュール100は行のクロージング(閉鎖)及びリオープン(再開)に対するオーバーヘッドを避ける。したがって、さらに良い且つ速い性能が得られる。
DRAMメモリ及びフラッシュストレージの両方を含む本発明のハイブリッドメモリ構造において、DRAMメモリはフラッシュストレージのキャッシュとして機能する。さらに頻繁にアクセスされるデータはフラッシュストレージ120からDRAMキャッシュ110に移動され、頻繁ではなくアクセスされるデータはDRAMキャッシュ110からフラッシュストレージ120に移動される。DRAMキャッシュ110とフラッシュストレージ120との間のデータの頻繁な移動はコスト(費用)が掛かる。コストを最小化するために本発明のハイブリッドメモリはフラッシュページをDRAMページにマッピングしてオープンページ方策を採用する。例えば、4KBのフラッシュページは2つの、2KBのDRAMページにマッピングされる。
一実施形態による本発明のハイブリッドメモリモジュール100はチェックポインティング(checkpointing)を支援する。チェックポイントが生じる時毎に(例えば、DRAMロケーションからフラッシュロケーションにデータをコピー)、メインコントローラ150はDRAMキャッシュ110からフラッシュストレージ120へのデータライトバックを遂行する。
一実施形態によれば本発明のハイブリッドメモリモジュール100はプリフェッチング(prefetching)を支援する。メインコントローラ150は性能を改善するために多重フラッシュページをフェッチする。前記多重フラッシュページは予め、DRAMキャッシュ110の特別なページと密接に関連されているページである。
本発明の一実施形態によれば、ハイブリッドメモリモジュール100は、1つ以上のDRAM装置とDRAMコントローラとを含むダイナミックランダムアクセスメモリ(DRAM)キャッシュ110、1つ以上のフラッシュ装置141とフラッシュコントローラ140とを含むフラッシュストレージ120、DRAMコントローラ130及びフラッシュコントローラ140とインターフェイシングするメインコントローラ150、及びメインコントローラ150とホストメモリコントローラ160とを連結するように構成されたトランザクション基盤のメモリインターフェイス155を含む。
メインコントローラ150は臨時キャッシュデータを格納するように構成されたバッファ152と、キャッシュタッグ151を含む。キャッシュタッグ151はホストメモリコントローラ160から受信されたメモリトランザクション要請がDRAMキャッシュ110をアクセスするための要請を含むか否かを示す。
メインコントローラ150はホストメモリコントローラ160から受信されたメモリトランザクション要請がリードヒット、リードミス、ライトヒット、又はライトミスであるかをキャッシュタッグ151に基づいて決定する。
メインコントローラ150はフラッシュストレージ120のフラッシュページをDRAMキャッシュ110の1つ以上のDRAMページに対してマッピングする。
トランザクション基盤のインターフェイス155はハイブリッドメモリモジュール100のメモリアクセスレイテンシが決定されない場合に、ホストメモリコントローラ160がハイブリッドメモリモジュール100をアクセスするようにする。
メインコントローラ150は、ホストメモリコントローラ160から受信されたメモリトランザクション要請がDRAMキャッシュ110からのリード要請であるか、或いはDRAMキャッシュ110へのライト要請であるかをキャッシュタッグ151に基づいて決定し、DRAMコントローラ130は前記メモリトランザクション要請に応答してDRAMキャッシュ110に対するメモリトランザクション及びコマンドスケジューリングを管理する。
メインコントローラ150は、ホストメモリコントローラ160から受信されたメモリトランザクション要請がフラッシュストレージ120からのリード要請であるか、或いはフラッシュストレージ120へのライト要請であるかをキャッシュタッグ151に基づいて決定し、フラッシュコントローラ140は前記メモリトランザクション要請に応答してフラッシュストレージ120に対するアドレス変換、ガーベッジコレクション、ウェアレベリング、及びスケジューリングを管理する。
一実施形態によれば、DRAMキャッシュ110とフラッシュストレージ120とを含むハイブリッドメモリモジュール100を動作させる方法は、ホストメモリコントローラ160からのメモリトランザクション要請を非同期的に受信し、前記メモリトランザクション要請をハイブリッドメモリモジュール100のバッファ152内に格納し、ハイブリッドメモリモジュール100のキャッシュタッグ151をチェックして前記メモリトランザクション要請がDRAMキャッシュ110内に格納されたデータをアクセスするための要請を含んでいるか否かを決定し、そしてキャッシュタッグ151に基づいて前記メモリトランザクション要請を遂行することを含む。
前記方法は、前記メモリトランザクション要請がDRAMキャッシュ110からのリード要請であるか否かをキャッシュタッグ151に基づいて決定し、前記メモリトランザクション要請に対応するDRAMキャッシュ110からのDRAMデータを受信し、そしてホストメモリコントローラ160へ前記DRAMデータを提供することをさらに含む。
前記方法は前記メモリトランザクション要請とキャッシュタッグ151とをバッファ152に格納することをさらに含む。
前記方法はフラッシュストレージ120のフラッシュページをDRAMキャッシュ110の1つ以上のDRAMページに対してマッピングすることをさらに含む。
前記方法は前記メモリトランザクション要請がDRAMキャッシュ110からのリード要請であるか、或いはDRAMキャッシュ110へのライト要請であるかをキャッシュタッグ151に基づいて決定し、前記メモリトランザクション要請に応答してDRAMキャッシュ110に対するメモリトランザクション及びコマンドスケジューリングを管理することをさらに含む。
前記方法は、メモリトランザクション要請がフラッシュストレージ120からのリード要請であるか、或いはフラッシュストレージ120へのライト要請であるかをキャッシュタッグ151に基づいて決定し、前記メモリトランザクション要請に応答してフラッシュストレージ120に対するアドレス変換、ガーベッジコレクション、ウェアレベリング、及びスケジューリングを管理することをさらに含む。
前記方法はDRAMキャッシュページがダーティであるか否かを決定し、DRAMキャッシュページからダーティデータをリードし、前記フラッシュストレージ120に前記ダーティデータをライトすることをさらに含む。
前記方法は、ホストメモリコントローラ160から受信されたデータをDRAMキャッシュ110にライトし、DRAMキャッシュ110をダーティとしてマーキングすることをさらに含む。
前記方法は、DRAMキャッシュ110のDRAMキャッシュページのオープンを維持し、前記オープンされたDRAMキャッシュページに対して一連のカラムアクセスを遂行することをさらに含む。
前記方法は、フラッシュストレージ120内に格納されたデータがホストメモリコントローラ160によって頻繁に要請されるか否かを決定し、ホストメモリコントローラ160によるデータ要請の頻繁度に基づいてフラッシュストレージ120内に格納された前記データをDRAMキャッシュ110にマッピングすることをさらに含む。
前記方法は、DRAMキャッシュ110及びフラッシュストレージ120のアクセスレイテンシは非決定的である。
上記した例示的な実施形態は、コプロセッサと入出力装置をメインコントローラを経由してインターフェイシングするシステム及び方法を具現する多様な実施形態を説明するために上述したように開示した。開示した例示的な実施形態から多様な変更及び出発が本分野の通常の知識を有する者において生じることができる。本発明の範囲以内に意図される技術的思想は以下の請求項において言及される。
100 ハイブリッドメモリモジュール
110 DRAMキャッシュ
120 フラッシュストレージ
130 DRAMコントローラ
131 DRAM装置
140 フラッシュコントローラ
141 フラッシュ装置
150 メインコントローラ
151 キャッシュタッグ
152 バッファ
155 メモリインターフェイス
160 ホストメモリコントローラ

Claims (19)

  1. 1つ以上のDRAM装置とDRAMコントローラとを含むダイナミックランダムアクセスメモリ(DRAM)キャッシュと、
    1つ以上のフラッシュ装置とフラッシュコントローラとを含むフラッシュストレージと、
    前記DRAMコントローラ及び前記フラッシュコントローラとインターフェイシングするメインコントローラと、
    前記メインコントローラとホストメモリコントローラとを連結するように構成されたトランザクション基盤のメモリインターフェイスと、を含むことを特徴とするトランザクション基盤ハイブリッドメモリモジュール。
  2. 前記メインコントローラは、臨時キャッシュデータを格納するように構成されたバッファと、キャッシュタッグを含むことを特徴とする請求項1に記載のトランザクション基盤ハイブリッドメモリモジュール。
  3. 前記キャッシュタッグは、前記ホストメモリコントローラから受信されたメモリトランザクション要請がDRAMキャッシュをアクセスするための要請を含むか否かを示すことを特徴とする請求項2に記載のトランザクション基盤ハイブリッドメモリモジュール。
  4. 前記メインコントローラは、前記ホストメモリコントローラから受信されたメモリトランザクション要請がリードヒット(read hit)、リードミス、ライトヒット(write hit)、又はライトミスであるかを前記キャッシュタッグに基づいて決定することを特徴とする請求項3に記載のトランザクション基盤ハイブリッドメモリモジュール。
  5. 前記メインコントローラは、前記フラッシュストレージのフラッシュページを前記DRAMキャッシュの1つ以上のDRAMページに対してマッピングすることを特徴とする請求項1に記載のトランザクション基盤ハイブリッドメモリモジュール。
  6. 前記トランザクション基盤のメモリインターフェイスは、前記ハイブリッドメモリモジュールのメモリアクセスレイテンシが決定されない場合に、前記ホストメモリコントローラがハイブリッドメモリモジュールをアクセスするようにすることを特徴とする請求項1に記載のトランザクション基盤ハイブリッドメモリモジュール。
  7. 前記メインコントローラは、前記ホストメモリコントローラから受信されたメモリトランザクション要請が前記DRAMキャッシュからのリード要請であるか、或いはDRAMキャッシュへのライト要請であるかをキャッシュタッグに基づいて決定し、前記DRAMコントローラは、前記メモリトランザクション要請に応答して前記DRAMキャッシュに対するメモリトランザクション及びコマンドスケジューリングを管理することを特徴とする請求項1に記載のトランザクション基盤ハイブリッドメモリモジュール。
  8. 前記メインコントローラは、前記ホストメモリコントローラから受信されたメモリトランザクション要請が前記フラッシュストレージからのリード要請であるか、或いはフラッシュストレージへのライト要請であるかをキャッシュタッグに基づいて決定し、前記フラッシュコントローラは、前記メモリトランザクション要請に応答して前記フラッシュストレージに対するアドレス変換、ガーベッジコレクション(garbage collection)、ウェアレベリング(wear leveling)、及びスケジューリングを管理することを特徴とする請求項1に記載のトランザクション基盤ハイブリッドメモリモジュール。
  9. DRAMキャッシュとフラッシュストレージとを含むハイブリッドメモリモジュールを動作させる方法において、
    ホストメモリコントローラからのメモリトランザクション要請を非同期的に受信し、
    前記メモリトランザクション要請を前記ハイブリッドメモリモジュールのバッファ内に格納し、
    前記ハイブリッドメモリモジュールのキャッシュタッグをチェックし、前記メモリトランザクション要請が前記DRAMキャッシュ内に格納されたデータをアクセスするための要請を含んでいるか否かを決定し、
    前記キャッシュタッグに基づいて前記メモリトランザクション要請を遂行することを含むことを特徴とするハイブリッドメモリモジュールを動作させる方法。
  10. 前記メモリトランザクション要請が前記DRAMキャッシュからのリード要請であるか否かを前記キャッシュタッグに基づいて決定し、
    前記メモリトランザクション要請に対応する前記DRAMキャッシュからのDRAMデータを受信し、
    前記ホストメモリコントローラへ前記DRAMデータを提供することをさらに含むことを特徴とする請求項9に記載のハイブリッドメモリモジュールを動作させる方法。
  11. 前記メモリトランザクション要請と前記キャッシュタッグとを前記バッファに格納することをさらに含むことを特徴とする請求項9に記載のハイブリッドメモリモジュールを動作させる方法。
  12. 前記フラッシュストレージのフラッシュページを前記DRAMキャッシュの1つ以上のDRAMページに対してマッピングすることをさらに含むことを特徴とする請求項9に記載のハイブリッドメモリモジュールを動作させる方法。
  13. メモリトランザクション要請が前記DRAMキャッシュからのリード要請であるか、或いはDRAMキャッシュへのライト要請であるかを前記キャッシュタッグに基づいて決定し、
    前記メモリトランザクション要請に応答して前記DRAMキャッシュに対するメモリトランザクション及びコマンドスケジューリングを管理することをさらに含むことを特徴とする請求項9に記載のハイブリッドメモリモジュールを動作させる方法。
  14. メモリトランザクション要請が前記フラッシュストレージからのリード要請であるか、或いはフラッシュストレージへのライト要請であるかを前記キャッシュタッグに基づいて決定し、
    前記メモリトランザクション要請に応答して前記フラッシュストレージに対するアドレス変換、ガーベッジコレクション、ウェアレベリング、及びスケジューリングを管理することをさらに含むことを特徴とする請求項9に記載のハイブリッドメモリモジュールを動作させる方法。
  15. DRAMキャッシュページがダーティであるか否か決定し、
    DRAMキャッシュページからダーティデータをリードし、
    前記フラッシュストレージに前記ダーティデータをライトすることをさらに含むことを特徴とする請求項9に記載のハイブリッドメモリモジュールを動作させる方法。
  16. 前記ホストメモリコントローラから受信されたデータを前記DRAMキャッシュにライトし、
    前記DRAMキャッシュをダーティとしてマーキングすることをさらに含むことを特徴とする請求項15に記載のハイブリッドメモリモジュールを動作させる方法。
  17. 前記DRAMキャッシュのDRAMキャッシュページのオープンを維持し、
    前記オープンされたDRAMキャッシュページに対して一連のカラムアクセスを遂行することをさらに含むことを特徴とする請求項9に記載のハイブリッドメモリモジュールを動作させる方法。
  18. 前記フラッシュストレージ内に格納されたデータが前記ホストメモリコントローラによって頻繁に要請されるかを決定し、
    前記ホストメモリコントローラによるデータ要請の頻繁度に基づいて前記フラッシュストレージ内に格納された前記データを前記DRAMキャッシュにマッピングすることをさらに含むことを特徴とする請求項9に記載のハイブリッドメモリモジュールを動作させる方法。
  19. 前記DRAMキャッシュ及びフラッシュストレージのアクセスレイテンシは非決定的であることを特徴とする請求項9に記載のハイブリッドメモリモジュールを動作させる方法。
JP2016162674A 2015-08-27 2016-08-23 トランザクション基盤のハイブリッドメモリモジュール、及びそれを動作させる方法 Pending JP2017045457A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562210939P 2015-08-27 2015-08-27
US62/210939 2015-08-27
US14/947,145 US20170060434A1 (en) 2015-08-27 2015-11-20 Transaction-based hybrid memory module
US14/947145 2015-11-20

Publications (2)

Publication Number Publication Date
JP2017045457A true JP2017045457A (ja) 2017-03-02
JP2017045457A5 JP2017045457A5 (ja) 2019-08-29

Family

ID=58104058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016162674A Pending JP2017045457A (ja) 2015-08-27 2016-08-23 トランザクション基盤のハイブリッドメモリモジュール、及びそれを動作させる方法

Country Status (5)

Country Link
US (1) US20170060434A1 (ja)
JP (1) JP2017045457A (ja)
KR (1) KR20170026114A (ja)
CN (1) CN106484628A (ja)
TW (1) TW201710910A (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10482013B2 (en) * 2014-09-30 2019-11-19 Hewlett Packard Enterprise Development Lp Eliding memory page writes upon eviction after page modification
US10387315B2 (en) * 2016-01-25 2019-08-20 Advanced Micro Devices, Inc. Region migration cache
US9830086B2 (en) * 2016-03-03 2017-11-28 Samsung Electronics Co., Ltd. Hybrid memory controller for arbitrating access to volatile and non-volatile memories in a hybrid memory group
CN110537172B (zh) * 2017-06-15 2024-03-12 拉姆伯斯公司 混合存储器模块
KR102319189B1 (ko) 2017-06-21 2021-10-28 삼성전자주식회사 스토리지 장치, 이를 포함하는 스토리지 시스템 및 스토리지 장치의 동작 방법
CN107844436B (zh) * 2017-11-02 2021-07-16 郑州云海信息技术有限公司 一种缓存中脏数据的组织管理方法、系统及存储系统
US10929291B2 (en) * 2017-12-06 2021-02-23 MemRay Corporation Memory controlling device and computing device including the same
KR102101622B1 (ko) * 2017-12-06 2020-04-17 주식회사 멤레이 메모리 제어 장치 및 이를 포함하는 컴퓨팅 디바이스
CN108052296B (zh) * 2017-12-30 2021-02-19 惠龙易通国际物流股份有限公司 一种数据读取方法、设备及计算机存储介质
US10990463B2 (en) 2018-03-27 2021-04-27 Samsung Electronics Co., Ltd. Semiconductor memory module and memory system including the same
KR102538679B1 (ko) 2018-04-06 2023-06-02 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10977198B2 (en) * 2018-09-12 2021-04-13 Micron Technology, Inc. Hybrid memory system interface
CN111399750B (zh) * 2019-01-03 2023-05-26 慧荣科技股份有限公司 闪存数据写入方法及计算机可读取存储介质
US11199991B2 (en) 2019-01-03 2021-12-14 Silicon Motion, Inc. Method and apparatus for controlling different types of storage units
CN109960471B (zh) * 2019-03-29 2022-06-03 深圳大学 数据存储方法、装置、设备以及存储介质
KR102560109B1 (ko) 2023-03-20 2023-07-27 메티스엑스 주식회사 바이트 어드레서블 장치 및 이를 포함하는 컴퓨팅 시스템

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050182893A1 (en) * 2004-02-16 2005-08-18 Samsung Electronics Co., Ltd. Controller for controlling nonvolatile memory
JP2006127110A (ja) * 2004-10-28 2006-05-18 Canon Inc Dramメモリアクセス制御手法、および手段
US20070288683A1 (en) * 2006-06-07 2007-12-13 Microsoft Corporation Hybrid memory device with single interface
JP2011118469A (ja) * 2009-11-30 2011-06-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
US20110161748A1 (en) * 2009-12-31 2011-06-30 Bryan Casper Systems, methods, and apparatuses for hybrid memory
JP2011198133A (ja) * 2010-03-19 2011-10-06 Toshiba Corp メモリシステムおよびコントローラ
US20120030428A1 (en) * 2010-07-30 2012-02-02 Kenta Yasufuku Information processing device, memory management device and memory management method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8397013B1 (en) * 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US20070136523A1 (en) * 2005-12-08 2007-06-14 Bonella Randy M Advanced dynamic disk memory module special operations
US7730268B2 (en) * 2006-08-18 2010-06-01 Cypress Semiconductor Corporation Multiprocessor system having an input/output (I/O) bridge circuit for transferring data between volatile and non-volatile memory
US7554855B2 (en) * 2006-12-20 2009-06-30 Mosaid Technologies Incorporated Hybrid solid-state memory system having volatile and non-volatile memory
CN102289414A (zh) * 2010-06-17 2011-12-21 中兴通讯股份有限公司 内存数据保护装置及方法
CN107391397B (zh) * 2011-09-30 2021-07-27 英特尔公司 支持近存储器和远存储器访问的存储器通道
US9063864B2 (en) * 2012-07-16 2015-06-23 Hewlett-Packard Development Company, L.P. Storing data in presistent hybrid memory
US9367262B2 (en) * 2013-02-26 2016-06-14 Seagate Technology Llc Assigning a weighting to host quality of service indicators
CN104346293B (zh) * 2013-07-25 2017-10-24 华为技术有限公司 混合内存的数据访问方法、模块、处理器及终端设备

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050182893A1 (en) * 2004-02-16 2005-08-18 Samsung Electronics Co., Ltd. Controller for controlling nonvolatile memory
KR20050081769A (ko) * 2004-02-16 2005-08-19 삼성전자주식회사 불 휘발성 메모리를 제어하기 위한 컨트롤러
JP2005235182A (ja) * 2004-02-16 2005-09-02 Samsung Electronics Co Ltd 不揮発性メモリを制御するためのコントローラ
JP2006127110A (ja) * 2004-10-28 2006-05-18 Canon Inc Dramメモリアクセス制御手法、および手段
JP2009540431A (ja) * 2006-06-07 2009-11-19 マイクロソフト コーポレーション 1つのインターフェースを有するハイブリッド・メモリ・デバイス
KR20090026276A (ko) * 2006-06-07 2009-03-12 마이크로소프트 코포레이션 하이브리드 메모리 장치를 위한 방법 및 시스템
US20070288683A1 (en) * 2006-06-07 2007-12-13 Microsoft Corporation Hybrid memory device with single interface
JP2011118469A (ja) * 2009-11-30 2011-06-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
US20110161748A1 (en) * 2009-12-31 2011-06-30 Bryan Casper Systems, methods, and apparatuses for hybrid memory
JP2013516020A (ja) * 2009-12-31 2013-05-09 インテル コーポレイション ハイブリッドメモリのためのシステム、方法及び装置
JP2011198133A (ja) * 2010-03-19 2011-10-06 Toshiba Corp メモリシステムおよびコントローラ
US20120030428A1 (en) * 2010-07-30 2012-02-02 Kenta Yasufuku Information processing device, memory management device and memory management method
JP2012033047A (ja) * 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置、メモリ管理装置、メモリ管理方法、及びプログラム

Also Published As

Publication number Publication date
KR20170026114A (ko) 2017-03-08
CN106484628A (zh) 2017-03-08
TW201710910A (zh) 2017-03-16
US20170060434A1 (en) 2017-03-02

Similar Documents

Publication Publication Date Title
JP2017045457A (ja) トランザクション基盤のハイブリッドメモリモジュール、及びそれを動作させる方法
US10248576B2 (en) DRAM/NVM hierarchical heterogeneous memory access method and system with software-hardware cooperative management
JP5580894B2 (ja) Tlbプリフェッチング
KR101636634B1 (ko) 프로세서로부터 메모리 서브시스템으로 데이터를 지능적으로 플러싱하기 위한 시스템 및 방법
US9286205B2 (en) Apparatus and method for phase change memory drift management
US9489239B2 (en) Systems and methods to manage tiered cache data storage
US20130275699A1 (en) Special memory access path with segment-offset addressing
US9501419B2 (en) Apparatus, systems, and methods for providing a memory efficient cache
US9645942B2 (en) Method for pinning data in large cache in multi-level memory system
US20110161597A1 (en) Combined Memory Including a Logical Partition in a Storage Memory Accessed Through an IO Controller
US20120102273A1 (en) Memory agent to access memory blade as part of the cache coherency domain
KR20170087043A (ko) 저속 메모리를 이용하여 페이지 리맵핑 방식으로 바이트 어드레스 지정 능력 및 근-dram 성능을 달성하는 메커니즘
US20130326143A1 (en) Caching Frequently Used Addresses of a Page Table Walk
WO2019062747A1 (zh) 数据访问方法以及计算机系统
US11016905B1 (en) Storage class memory access
CN109219804B (zh) 非易失内存访问方法、装置和系统
US10467138B2 (en) Caching policies for processing units on multiple sockets
WO2018090255A1 (zh) 内存访问技术
US8347034B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
CN114063934B (zh) 数据更新装置、方法及电子设备
US10769062B2 (en) Fine granularity translation layer for data storage devices
CN115617503A (zh) 用于异构存储器系统中的负载均衡的系统和方法
US7685372B1 (en) Transparent level 2 cache controller
US5835945A (en) Memory system with write buffer, prefetch and internal caches
US20140013054A1 (en) Storing data structures in cache

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190718

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190718

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200616

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201116

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210511