JP2018055683A - バイトアドレス可能なフラッシュ基盤メモリモジュール、nvdimm型モジュール、及びそのデータ格納方法 - Google Patents

バイトアドレス可能なフラッシュ基盤メモリモジュール、nvdimm型モジュール、及びそのデータ格納方法 Download PDF

Info

Publication number
JP2018055683A
JP2018055683A JP2017169575A JP2017169575A JP2018055683A JP 2018055683 A JP2018055683 A JP 2018055683A JP 2017169575 A JP2017169575 A JP 2017169575A JP 2017169575 A JP2017169575 A JP 2017169575A JP 2018055683 A JP2018055683 A JP 2018055683A
Authority
JP
Japan
Prior art keywords
module
prefetch
write
memory
mode
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
JP2017169575A
Other languages
English (en)
Inventor
牧 天 張,
Mu-Tien Chang
牧 天 張,
ディ 民 牛,
di-min Niu
ディ 民 牛,
冬 岩 姜,
Dongyan Jiang
冬 岩 姜,
宏 忠 ズン,
Hongzhong Zheng
宏 忠 ズン,
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 JP2018055683A publication Critical patent/JP2018055683A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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
    • G06F13/1673Details of memory controller using buffers
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • G06F9/3455Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】フラッシュ基盤メモリモジュール及びその作動方法を提供する。【解決手段】インモジュールのプリフェッチャ200、インモジュールのプリフェッチバッファ160、メモリ150a〜150z及びメモリコントローラ140を含むメモリモジュール100にデータを格納する方法は、インモジュールのプリフェッチャからのアドレス情報をメモリコントローラ及びプリフェッチバッファに伝送する段階、メモリコントローラに伝送されたアドレス情報とプリフェッチバッファに伝送されたアドレス情報との比較によってプリフェッチの精度を判断する段階、プリフェッチ精度に基づいてプリフェッチモードを決定する段階及びプリフェッチモードにしたがってメモリにデータを格納する段階を含む。【選択図】図1

Description

本発明は改善されたフラッシュ基盤メモリモジュール、NVDIMM型モジュール、及びそのデータ格納方法に係り、より詳しくは、バイトアドレス可能なフラッシュ基盤メモリモジュール、NVDIMM型モジュール、及びそのデータ格納方法に関する。
メモリ格納装置の分野において、大容量メモリを格納するデータセンターは高容量、高性能、低電力及び低費用を達成しようとする。フラッシュメモリはデータセンターとして実現性のある候補であり、動的ランダムアクセスメモリ(DRAM)と比較する時、フラッシュメモリは少ない費用で高容量及び効率的電力使用を提供する。例えば、フラッシュメモリはモジュール当たりテラバイト(terabyte)の格納容量を提供し、これはDRAMより10倍程度大きい容量である。また、フラッシュメモリは低待機電力である。
しかし、フラッシュメモリはDRAMと比較して耐久性(endurance)は制限され性能が劣る。例えば、特定タイプのフラッシュメモリ(例えば、LLNAND又はZ−NAND)は、DRAMに比べて読出し及び書込み動作に対する待機時間が顕著に長い。さらに、バイトアドレス可能な(byte−addressable)LLNANDメモリを作るためにはアクセスグラニュラリティ(granularity)がDRAMの64Bに対して2KB又は4KBである。
本発明の目的は改善されたフラッシュ基盤メモリモジュール、NVDIMM型モジュール、及びそのデータ格納方法を提供することにある。
本発明の実施形態によれば、インモジュール(in−module)のプリフェッチャ(prefetcher)、インモジュールのプリフェッチバッファ、メモリ、及びメモリコントローラを含むメモリモジュールにデータを格納する方法を提供し、前記方法はインモジュールのプリフェッチャからのアドレス情報を前記メモリコントローラ及び前記プリフェッチバッファに提供する段階、前記メモリコントローラに送られたアドレス情報と前記プリフェッチバッファに送られたアドレス情報の比較によってプリフェッチの精度を判断する段階、前記プリフェッチの精度に基づいてプリフェッチモードを決定する段階、及び前記プリフェッチモードにしたがってメモリにデータを格納する段階を含む。
前記方法は前記インモジュールのプリフェッチャのアドレスヒストリーテーブルにおいて前記アドレス情報を受信する段階、及び前記アドレスヒストリーテーブルによってアクセスパターンを検出する段階をさらに含む。
前記プリフェッチモードを決定する段階は前記インモジュールのプリフェッチャのプリフェッチモードレジスターを利用してストライド(stride)、方向、グラニュラリティ(granularity)、プリフェッチタイム、及び休止時間の中の少なくとも1つを決定する段階を含む。
前記ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間の中の少なくとも1つを決定する段階は、アドレスヒストリーテーブルに格納されたアドレスヒストリー及び決定されたプリフェッチ精度に基づく。
前記方法は前記ストライド、方向、及びグラニュラリティに基づいてプリフェッチアドレスを生成する段階をさらに含む。
前記方法は前記ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間の中の決定された少なくとも1つによってインモジュールのプリフェッチャのプリフェッチングスケジューラーを使用してプリフェッチ動作をトリガーするために前記メモリコントローラに要請信号を伝送する段階をさらに含む。
前記方法はメモリモジュールのインモジュールの書込みバッファ及び書込み制御モジュールによりアドレス情報を受信する段階と、アドレス情報によってライトバック(write back)モード及びライトバックタイムの中の1つを決定する段階と、を含む。
前記ライトバックモードは可能な限り速やかにメモリに情報を書き込むための即時書込みモード(immediate write mode)又は1回書込みにより書込みバッファからの多数ブロックの情報を前記メモリに結合する融合書込みモード(coalesced write mode)を含む。
前記インモジュールの書込みバッファ及び書込みコントローラモジュールにより前記アドレス情報を受信する段階は、書込みアドレスヒストリーテーブルにおいて前記アドレス情報を受信する段階を含み、前記ライトバックモード及び前記ライトバックタイムの中の少なくとも1つを決定することは前記書込みアドレスヒストリーテーブルにさらに基づく。
前記方法は前記決定されたライトバックモード又は前記決定されたライトバックタイムを前記書込みバッファのスケジューラー及び書込みコントローラモジュールに伝送する段階、及び前記決定されたライトバックモード又は前記決定されたライトバックタイムに基づいて書込みバッファから前記メモリまでの書込みをスケジュールするためのスケジューラーを使用する段階を含む。
本発明の他の実施形態によれば、メモリコントローラ、前記メモリコントローラにプリフェッチ動作をトリガーするための要請を伝送するインモジュールのプリフェッチャ、前記インモジュールのプリフェッチャに結合されて前記インモジュールのプリフェッチャからデータを受信するためのインモジュールのプリフェッチバッファ、メモリに書き込まれる情報を格納するためのインモジュールの書込みバッファ、及び前記インモジュールの書込みバッファから前記メモリまでの書込みをスケジューリングするためのインモジュールの書込みコントローラを含むメモリモジュールを提供する。
前記インモジュールのプリフェッチャは前記メモリモジュールのプリフェッチモードを決定する多数のプリフェッチモードレジスターを含み、前記プリフェッチモードレジスターはストライドレジスター、方向レジスター、グラニュラリティレジスター、プリフェッチタイムレジスター、及び休止時間レジスターの中の少なくとも1つを含む。
前記ストライドレジスターは前記インモジュールのプリフェッチャが順次的にプリフェッチアドレスをアクセスするようにする順次プリフェッチングモード、前記インモジュールのプリフェッチャがオフセット方式にプリフェッチアドレスをアクセスするようにするストライドプリフェッチングモード、又は前記インモジュールのプリフェッチャがアドレスヒストリー及びプリフェッチ精度に基づいてプリフェッチアドレスをアクセスするようにする自動プリフェッチングモードの中の1つを決定する。また、前記方向レジスターは前記インモジュールのプリフェッチャが昇順にプリフェッチアドレスをアクセスするようにする昇順モード、前記インモジュールのプリフェッチャが降順にプリフェッチアドレスをアクセスするようにする降順モード、又は前記インモジュールのプリフェッチャが前記アドレスヒストリー及びプリフェッチ精度に基づいて降順又は昇順にプリフェッチアドレスをアクセスするようにする自動モードの中の1つを決定する。また、前記グラニュラリティレジスターはグラニュラリティが与えられたサイズの固定されたグラニュラリティであるか、又は前記アドレスヒストリー及び前記プリフェッチ精度に基づいたグラニュラリティであるかを決定する。また、プリフェッチタイムレジスターは前記インモジュールのプリフェッチャが継続的にプリフェッチングを遂行するようにする連続プリフェッチモード、前記インモジュールのプリフェッチャが要請がある時、プリフェッチングを遂行するようにする受信要請モード、前記インモジュールのプリフェッチャが単なるキャッシュ又はプリフェッチミスである場合、プリフェッチングを遂行するようにするキャッシュ/プリフェッチミス(miss)モード、又は前記インモジュールのプリフェッチャが前記アドレスヒストリー及び前記プリフェッチ精度にしたがってプリフェッチングを遂行するようにする自動モードの中の1つを決定する。また、休止時間レジスターは前記インモジュールのプリフェッチャが活性化されない常に休止モード(always paused mode)、前記インモジュールのプリフェッチャが常に活性化される非休止モード(never paused mode)、前記インモジュールのプリフェッチャが前記プリフェッチバッファがいっぱいに満たされる時、休止されるようにするバッファ容量モード、及び前記インモジュールのプリフェッチャが前記アドレスヒストリー及び前記プリフェッチ精度に基づいて休止されるようにする自動モードの中の1つを決定する。
前記インモジュールのプリフェッチャは前記プリフェッチモードレジスターから受信された情報によって前記メモリコントローラに要請を伝送するためのプリフェッチングスケジューラーを含む。
前記インモジュールの書込みコントローラは、多数の書込みバッファを含み、前記多数の書込みバッファは、ライトバックモードレジスターと、 ライトバックタイムレジスターと、を含む。
前記ライトバックモードレジスターはインモジュールの書込みバッファ及び書込みコントローラモジュールが可能な限り速やかにメモリモジュールのメモリに情報を書き込むようにする即時書込みモード、インモジュールの書込みバッファ及び書込みコントローラモジュールがメモリに1回書込みにより分離されたブロックの情報を結合する融合書込みモード、又はメモリモジュールが即時書込みモード又は融合書込みモードの中のどれを使用するかを決定するために書込みアドレスヒストリーテーブルを使用するようにする自動モードを含む。
前記ライトバックモードレジスターが融合書込みモードを決定すれば、前記ライトバックタイムレジスターは時間、前記インモジュールの書込みバッファの容量又はデータの持続性にしたがう優先順位に基づいて前記メモリにデータを書き込むタイムを決定する。
前記メモリモジュールは前記ホストと直接通信することができ、前記メモリモジュールのメモリキャッシュとして動作するDRAMをさらに含み、前記インモジュールのプリフェッチバッファ及び前記インモジュールの書込みバッファは前記DRAMの構成要素である。
本発明の他の実施形態によれば、メモリ、インモジュールのプリフェッチバッファ、ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間の中の少なくとも1つを決定し、ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間の中の少なくとも1つによってプリフェッチアドレスを生成するインモジュールのプリフェッチャ、及び可能な限り速やかにメモリに書き込むか、又は区別されたブロックのデータを結合して単一書込みでメモリに書き込むかを決定し、メモリに書込みスケジューリングをするためのインモジュールの書込みバッファ及び書込みコントローラモジュールを含むNVDIMM型モジュールを提供する。
前記NVDIMM型モジュールは前記メモリ、前記インモジュールのプリフェッチバッファ、及び前記インモジュールのプリフェッチャに結合されたメモリコントローラをさらに含み、前記メモリコントローラは前記インモジュールの書込みバッファ及び書込みコントローラモジュールを含む。
本発明によれば、待機時間を減少しながら、大量のメモリを十分に格納でき、耐久性を改善できるフラッシュ基盤メモリモジュール、NVDIMM型モジュール、及びそのデータ格納方法を提供できる。
本発明に係る実施形態のこれらの側面及び他の側面は明細書、請求の範囲及び添付図面を参照して理解されるべきである。
本発明の一実施形態に係るフラッシュ基盤メモリモジュールの構成要素を示したブロック図である。 本発明の一実施形態に係る図1に図示したフラッシュ基盤メモリモジュールのプリフェッチャの構成要素を示したブロック図である。 本発明の一実施形態に係る図1に図示したフラッシュ基盤メモリモジュールのインモジュールの書込みバッファ及び書込みコントローラモジュールを示したブロック図である。
本発明に係る実施形態は改善されたフラッシュ基盤メモリモジュール、NVDIMM型モジュール、及びそのデータ格納方法に係る。
本発明の特徴及びこれを達成する方法は次の実施形態及び添付図面の詳細な説明を参照すればより容易に理解される。以下、添付した図面を参照して本発明の望ましい実施形態に対して詳細に説明し、ここで同一の図面符号は明細書の全体に同一の構成要素を指称する。しかし、本発明は多様な形態にて具体化でき、ここに図示した実施形態に限定されると解釈されてはならない。むしろ、実施形態は本発明が完璧に、完全に、当業者に本発明の多様な側面及び特徴が十分に伝達されるように例示的に提供する。したがって、本発明の様相及び特徴の完全な理解のために当業者に不必要なプロセス、要素、及び技術は説明しないことがある。また他の言及が無い限り、同一の図面符号は添付した図面及び詳細な説明の全般にわたって同一の構成要素を示し、それに対する説明は反複しない。図面において、要素、層、及び領域の相対的なサイズは明確性のために誇張される。
‘‘第1’’、 ‘‘第2’’、‘‘第3’’等の用語は本明細書における多様な構成要素、成分、領域、層、及び/又はセクションを説明するために使用するが、これらの構成要素、部品、領域、層、及び/又はセクションはこれらの用語によって制限されない。これらの用語は1つの要素、成分、領域、層、又はセクションを他の要素、成分、領域、層、又はセクションと区別するために使用する。したがって、以下に説明する第1要素、成分、領域、層、又はセクションは本発明の思想及び範囲を逸脱せずに、第2要素、成分、領域、層、又はセクションとして説明できる。
‘‘下に’’、‘‘より下に’’、‘‘下部に’’、‘‘上に’’、‘‘上部に’’等の空間的に相対的な用語は図面に図示するように1つの構成要素又は他の要素又は特徴との特徴関係を説明するために、説明を簡易にするために使用する。また、空間的に相対的な用語は図面に図示した方向に追加して、使用又は作動の時、装置の異なる方向を含むと理解される。例えば、図面の装置が反転されれば、他の要素又は特徴の‘‘下’’又は‘‘低’’又は‘‘下部’’と記述された要素は他の要素又は特徴の‘‘上’’に位置する。したがって、‘‘下’’及び‘‘下端’’の例示的な用語は上及び下の方向の全てを含む。前記装置は他の方向に配置され(例えば、90°又は他の方位に回転される)、本明細書において使用する空間的に相対的な技術用語は状況に合うように解釈されなければならない。
構成要素、層、領域、又は成分が他の構成要素、層、領域又は成分の‘‘上に’’、‘‘結合された’’、‘‘連結された’’と言及する時、それは他の要素、層、領域、又は成分に直接的に上にあるか、連結されたか、或いは結合され、1つ以上の介在された構成要素、層、領域、又は成分が存在できる。また、1つの構成要素又は層が2つの構成要素又は層の‘‘間に’’あると言及する時、2つの構成要素又は層間に1つの構成要素又は層が存在するか、又はその間に1つ以上の構成要素又は層が存在する。
本明細書において使用した用語は実施形態を説明するためであり、本発明を制限しようとすることではない。ここで使用した単数形態は文脈の上に特に指示しない限り、複数形態を含む。本明細書において使用する‘‘含む’’、 ‘‘具備する’’、という用語は明示された特徴、整数、段階、動作、構成要素及び/又は成分の存在を特定するが、1つ以上の他の特徴、整数、段階、動作、構成要素、成分及び/又はこれらのグループの存在又は追加を排除しない。本明細書に使用したように、‘‘及び/又は’’という用語は1つ以上の列挙された関連項目の任意及びすべての組合せを含む。‘‘少なくとも1つ’’のような表現が複数の要素の前にある時、複数の要素の全体にかかり、その個別要素にかからない。
本明細書において使用する用語‘‘実質的に’’、‘‘約’’、及びこれと類似な用語は近似語として使用され、程度用語として使用されなく、当業者によって認識される測定された又は計算された数値の固有の偏差を説明するためである。また、本発明の概念の実施形態を記述する時、‘‘することができる’’を使用することは‘‘本発明の1つ以上の実施形態’’を意味する。本明細書に使用した用語‘‘使用する’’、‘‘使用’’、及び‘‘使用された’’は用語‘‘活用する’’、‘‘活用’’、及び‘‘活用された’’のそれぞれ同義語として考慮される。また‘‘例示的な’’という用語は例又は説明を意味する。
特定実施形態が実施される場合、特定処理順序が説明した順序と異なって遂行できる。例えば、2つが連続的に記述されたプロセスは実質的に同時に遂行されるか、或いは説明した順序と反対の順序にて遂行できる。
本明細書において記述する実施形態に係る電子又は電気装置及び/又は任意の他の関連装置又は構成要素は任意の適合なハードウェア、ファームウェア(例えば、注文形集積回路)、ソフトウェア、又はこれらの組合せを利用して実施される。例えば、このような装置の多様な構成要素は1つの集積回路(IC)チップ上に又は別のICチップ上に形成される。また、これら装置の多様な構成要素は可撓性印刷回路フィルム、テープキャリヤーパッケージ(TCP)、印刷回路基板(PCB)上に具現されるか、或いは1つの基板上に形成される。また、これら装置の多様な構成要素は1つ以上のプロセッサ、1つ以上のコンピューティング装置により実行され、コンピュータプログラム命令を遂行し、ここに説明した多様な機能を遂行するために他のシステム構成要素と相互作用するプロセス又はスレッド(thread)である。前記コンピュータプログラム命令は、例えばランダムアクセスメモリ(RAM)のような標準メモリ装置を利用するコンピューティング装置により具現されるメモリに格納される。また、前記コンピュータプログラム命令は、例えばCD−ROM、フラッシュドライブ等のような非一時的なコンピュータ読出し可能媒体に格納される。また、当業者は多様なコンピューティング装置の機能が単一コンピューティング装置に結合されるか、或いは統合され、又は特定コンピューティング装置の機能が本発明の思想と範囲を逸脱しない範囲内において1つ以上の他のコンピューティング装置にわたって分散される。
特に定義しない限り、本明細書に使用したすべての用語(技術的及び科学的用語を含む)は本発明が属する技術分野における当業者によって一般的に理解される同一の意味を有する。また、一般的に使用される辞典に定義された用語のような用語は関連技術及び/又は本明細書と関連してその意味と一致する意味を有すると解釈され、理想的であるか、或いはあまりにも形式的な意味として解釈されない。
前述したように、フラッシュ基盤メモリは動的ランダムアクセスメモリ(DRAM)と比較する時、所定の長所及び短所を有する。フラッシュ基盤メモリを使用する場合、プリフェッチング(例えば、後に使用するが、さらに速やかにアクセスするためにメインメモリからデータを臨時格納装置に伝送する)は特定応用プログラム(例えば、該当アクセスパターンを予測できる場合)として利用できる。例えば、制限されたボルツマンマシン(Restricted Boltzman Machine:RBM)と関連されて又は機械学習(即ち、畳み込みニューラルネットワーク(convolutional neural network)の完全連結されたレイヤー)と関連されて使用されるプリフェッチングはメモリにおいて共通物理的行(row)に位置している様々なデータワードに速くアクセスできることによって、待機時間(latency)を減少させる。例えば、プリフェッチが常に望むデータを得るのに成功すれば、プリフェッチングを使用することによって読出し待機時間がナノ秒単位に減少する。ここで読出し待機時間はプリフェッチバッファ待機時間、コントローラ待機時間、及びプロトコルオーバーヘッドを全て合わせたものである。
したがって、本発明の実施形態は長いアクセス待機時間を緩和し、耐久性を向上させながら、高速のバイトアドレスが可能な(byte−addressable)フラッシュ基盤(例えば、LLNAND基盤)メモリモジュールのアーキテクチャを提供する。また、フラッシュ基盤メモリモジュールは新規であり、向上したメモリインターフェイスプロトコルと共に使用される。付加的に、ここに説明したアーキテクチャは不揮発性デュアルインラインメモリモジュール(Non−Volatile Dual In−line Memory Module)(例えば、NAND及びDRAMをメモリアドレス空間にマッピングするNVDIMM−P LLNANDモジュール)又は任意の他のトランザクション(transaction)基盤LLNANDモジュール(例えば、非同期式メモリプロトコルを使用する潛在的に未来標準トランザクション基盤モジュールであるGen−Z LLNANDモジュール)と共に使用される。
図1は本発明の一実施形態に係るフラッシュ基盤メモリモジュールの構成要素を示したブロック図である。
図1にフラッシュ基盤メモリモジュール(例えば、NVDIMM−Pモジュール)100を示す。NVDIMM型モジュールを図示したが、本発明の他の実施形態はDIMMの他のタイプ又はフラッシュ基盤メモリモジュールの他のタイプを含む。待機時間の減少を達成するインモジュール(モジュール100内に位置する)のプリフェッチャ200及びインモジュールのプリフェッチバッファ160に注意するべきである。また、モジュール100の耐久性を向上させるためにモジュール内の書込み統合を可能にする書込みコントローラ144及び書込みバッファ142(例えば、図3に図示するインモジュールの書込みバッファ及び書込みコントローラモジュール300)に注意するべきである。このような構成要素及び特徴は図2及び図3を参照してさらに詳細に説明する。追加的に、本発明の実施形態においては書込みバッファ142及びプリフェッチバッファ160を別のモジュールとして示しているが、書込みバッファ142及びプリフェッチバッファ160は1つのモジュールの一部をなすか、又は別のチップに具備できる。他の実施形態において、書込みバッファ142とプリフェッチバッファ160とはDRAM110のDRAMバッファの別の論理的な細分区域(separate logical subdivisions)である。
アドレスバス(例えば、カラムアドレスバス)170及びDQバス180(例えば、データバス)はモジュール100とホストとの間の通信を許容するメモリインターフェイスを提供する。追加的に、フロントエンドのDRAM110は前記ホストと直接通信するためにモジュール100に含まれてメモリキャッシュとしての役割を遂行する。DRAM110に連結されたデータバッファ120は一時的ストレージとして前記ホストと通信する。また、DRAM110に連結されたレジスターリングクロックドライバー(Registering clock driver:RCD)バッファ130は前記ホストから受信されたアドレス情報(例えば、カラムアドレス情報)190に対応する情報をバッファーリングするために使用される。
メモリコントローラ(例えば、LLNANDコントローラ140)はメモリ/データストレージ(例えば、バックエンド(back−end)LLNANDデータストレージ150)にインターフェイスとして提供されてデータを格納するのに充分な高容量メモリを提供する。したがって、前記ホストが複数のバックエンドLLNANDモジュール150a乃至150zを含むバックエンドLLNANDデータストレージ150に格納されたデータにアクセスすることを望むと、前記ホストはLLNANDコントローラ140と先ず通信をしなければならない。ここではLLNANDコントローラ140に対応するLLNANDデータストレージ150を説明したが、他のタイプのメモリコントローラ及びフラッシュ基盤メモリのデータストレージは本発明の他の実施形態に関連されて使用される。
書込みバッファ142はLLNANDコントローラ140内に具備されて、バックエンドLLNANDデータストレージ150に伝送される書込みデータを一時的に格納し、LLNANDコントローラ140内にまた具備される書込みコントローラ144は何時どのようにしてバックエンドLLNANDデータストレージ150にデータを書き込むかをスケジュールする。これについては図3を参照してさらに具体的に後述する。また、LLNANDコントローラ140にはキャッシュコントローラ146が具備される。前記ホストは場合によっては、前記ホスト内に含まれたモジュール100をコントロールするためのマスターの代わりにDRAM110に直接アクセスするが、LLNANDコントローラ140が前記マスターとして機能する場合、LLNANDコントローラ140はDRAM110にアクセスするためにキャッシュコントローラ146を使用する。
また、モジュール100にはプリフェッチャ200及びプリフェッチバッファ160が含まれ、これは図2を参照して説明する。
図2は本発明の一実施形態に係る図1に図示したフラッシュ基盤メモリモジュールのプリフェッチャの構成要素を示したブロック図である。
図2を参照すれば、本実施形態に係る前記インモジュールのプリフェッチャ200はモジュール100がどんな形態のプリフェッチモードを使用するかを前記ホスト/マスターが決定できるようにする多数のプリフェッチモードレジスター210を含む。
第1プリフェッチモードレジスターはストライド(stride)レジスター210aである。ストライドレジスター210aはプリフェッチャ200がストライドプリフェッチング(例えば、以前アドレスから若干距離(S)が外れたアドレスをプリフェッチングする)するか、順次プリフェッチング(例えば、順次的にプリフェッチするか、又は順次プリフェッチングモードにおいて以前アドレスから前記若干距離(S)を外れたアドレスにプリフェッチする)するか、又は自動プリフェッチングモードを遂行するかを決定する。自動プリフェッチングモードはアドレスヒストリー220及びプリフェッチ精度230に基づいてモジュール100によって決定され、アドレスヒストリー220はプリフェッチャ200のアドレスヒストリーテーブル225に格納され、プリフェッチ精度230はプリフェッチャ200内において計算される。したがって、前記ホストは順次プリフェッチング又はストライドプリフェッチングを使用するか否かを指示し、したがって、モジュール100はホストがストライドレジスター210aによって表示されたプリフェッチングタイプを変化させる時まで対応するプリフェッチパターンを続けて使用する。代案的に、ホストは自動プリフェッチングモードに対応するようにストライドレジスター210aをプログラミングすることによって、モジュール100がどのプリフェッチングパターンを使用するかを決定する。
第2プリフェッチモードレジスターは方向レジスター210bである。方向レジスター210bはプリフェッチアドレスが昇順(例えば、プリフェッチアドレスが前記ストライド距離のポジティブ‘‘S’’に対応する昇順モード)にアクセスされるか、或いは前記プリフェッチアドレスが降順(例えば、プリフェッチアドレスが前記ストライド距離のネガティブ‘‘S’’に対応する降順モード)にアクセスされるように指示する。したがって、方向レジスター210bが降順を示せば、前記ホストは前記プリフェッチアドレスが降順にフェッチされるように指示し、方向レジスター210bが昇順を示せば、前記ホストは前記プリフェッチアドレスが昇順にフェッチされるように指示する。追加的に、方向レジスター210bは自動モードを示して、プリフェッチアドレスがアクセスされる方向はモジュール100によって(例えば、前記アドレスヒストリー220及び前記計算されたプリフェッチ精度230に基づいて)決定される。
第3プリフェッチモードレジスターはグラニュラリティ(granularity)レジスター210cである。グラニュラリティレジスター210cは多数の4KBに固定された固定グラニュラリティ、‘‘N’’(ここで、‘‘N’’は任意のサイズ(例えば、2KB)である)に固定されたグラニュラリティの使用を指示するか、又は自動モードの使用を指示し、自動モードにおいてグラニュラリティはモジュール100によって(例えば、アドレスヒストリー220及び計算されたプリフェッチ精度230に基づく)決定される。
第4プリフェッチモードレジスターはプリフェッチタイムレジスター210dである。プリフェッチタイムレジスター210dはモジュール100が何時プリフェッチングをするかを決定する。第1オプションとして、プリフェッチタイムレジスター210dは連続プリフェッチモードにおいて続けてプリフェッチングする。ここで、プリフェッチングは計算されたプリフェッチ精度230に関わらず、続けて維持される。第2オプションとして、プリフェッチタイムレジスター210dは前記ホストから受信要請がある時のみ、モジュール100がプリフェッチングを遂行するように指示する。第3オプションとして、プリフェッチタイムレジスター210dはただプリフェッチミス(prefetch miss)、又はキャッシュミス(cache miss)(即ち、モジュール100のDRAM110に対応するDRAMキャッシュミス(miss))である時のみにモジュール100がプリフェッチをすることを決定する。第4オプションとして、プリフェッチタイムレジスター210dは自動モード(例えば、モジュール100がアドレスヒストリー220及び計算されたプリフェッチ精度230に基づいてプリフェッチ時期を決定できる)を活性化させる。
第5プリフェッチモードレジスターはプリフェッチの休止時間を定義するように具現された休止時間レジスター210eである。即ち、休止時間レジスター210eはモジュール100が何時プリフェッチングを停止すべきかを示す。例えば、第1オプションとして、前記ホスト/マスターはプリフェッチが活性化されず、したがって絶対遂行されないように(即ち、プリフェッチャ200が常に休止される)休止時間レジスター210eを設定する。第2オプションとして、前記ホストは前記プリフェッチが環境に関わらず発生するように(即ち、プリフェッチャ200が絶対休止されないように)休止時間レジスター210eを設定する。第3として、休止時間レジスター210eは2ポートランダムアクセスメモリ(RAM)からなされたプリフェッチバッファ160が満たされれば、プリフェッチ動作を休止し、プリフェッチバッファ160が使用可能な充分な量を有すれば、休止させないようにプリフェッチ動作を設定する。第4として、休止時間レジスター210eはモジュール100が休止時間を決定するように(例えば、アドレスヒストリー220及び計算されたプリフェッチ精度230に基づいて)自動モードに前記休止時間を設定する。
したがって、上述したレジスター210を利用して、プリフェッチオプションはホストによって決定されるか、或いは代わりにモジュール100によって決定される。
プリフェッチャ200はモジュール100のRCDバッファ130からアドレス情報190に対応する情報を受信する。プリフェッチャ200はRCDバッファ130から受信された情報をデコーディングし、デコードされたアドレス情報をLLNANDコントローラ140及びプリフェッチバッファ160(例えば、プリフェッチバッファスケジューラ280を通じて)に分離して伝送するデコーダー240を含む。個別デコードされたアドレス情報(即ち、LLNANDコントローラ140に伝送される前記デコードされたアドレス情報、プリフェッチバッファ160に伝送される前記デコードされたアドレス情報)はプリフェッチ精度230を計算するために互いに比較される。したがって、計算完了したプリフェッチ精度230に基づいてプリフェッチ政策/プリフェッチモードを改善及び調整するためにプリフェッチバッファ160を活性化できるようにプリフェッチ精度230はプリフェッチバッファ160に伝送されるフィードバック情報としての役割を効果的に遂行する。
したがって、プリフェッチャ200はプリフェッチ精度230及びアドレスヒストリーテーブル225から獲得したアドレスヒストリー220を使用してアクセスパターンを感知する。また、プリフェッチャ200はストライドレジスター210a、方向レジスター210b、及びグラニュラリティレジスター210cの設定を使用してストライド250、方向252、及びグラニュラリティ254を各々計算し、したがってプリフェッチアドレスとグラニュラリティ260を生成してプリフェッチングスケジューラー270に伝送する。
プリフェッチャ200はプリフェッチタイム256及びプリフェッチ休止時間258を計算するために、プリフェッチタイムレジスター210d及び休止時間レジスター210eの設定と共に、アドレスヒストリー220とプリフェッチ精度230とを使用する。プリフェッチタイム256及びプリフェッチ休止時間258は、またプリフェッチングスケジューラ270に伝送される。ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間に対応する情報に基づいて、プリフェッチスケジューラ270はプリフェッチをトリガーするためにLLNANDコントローラ140に要請の形態により情報を伝送し、LLNANDデータストレージ150から何を読み出すかを決定するようにLLNANDコントローラ140を活性化させる。
追加的に、プリフェッチヒット(hit)が感知されれば、これは望むデータがプリフェッチバッファ160において発見されたことを意味し、プリフェッチバッファスケジューラ280はプリフェッチバッファ160に簡単に直接的にアクセスできるので、望むデータのためにLLNANDデータストレージ150に接近する必要はない。
前記プリフェッチアドレスは、またプリフェッチバッファ160から何時そして何を読み出すかを決定するように構成されたプリフェッチバッファスケジューラ280に伝送される。プリフェッチバッファ160は64Bグラニュラリティにアクセスされ、特別な機能レジスターによって構成される。プリフェッチバッファ160はLLNANDデータストレージ150と独立的であり、分離される物理的プリフェッチモードレジスター210の一部分である。
図3は本発明の一実施形態に係る図1のフラッシュ基盤メモリモジュールのインモジュールの書込みバッファ及び書込みコントローラモジュールを示したブロック図である。
図3を参照すれば、本発明のインモジュールの書込みバッファ及び書込みコントローラモジュール300は2つの対応する書込みバッファレジスター310を有する。第1書込みバッファレジスターはライトバック(back)モードを定義するライトバックモードレジスター310aであり、第2書込みバッファレジスターはライトバックタイムを定義するライトバックタイムレジスター310bである。
ライトバックモードレジスター310aについて説明すると、前記ライトバックモードの第1オプションは即時書込みの許容であり、これは情報が書込みバッファ142に含まれる時ごとに、LLNANDコントローラ140はできる限り速やかにLLNANDデータストレージ150に情報を再び書き込むことを意味する。例えば、LLNANDコントローラ140はLLNANDデータストレージ150に効果的に直ちに書込みバッファ142からの64B情報を書き込む。たとえこのような即時書込みモードが書込みバッファ142の有効性を増加させても、書込み情報が単に64Bである場合にも2KB書込みバンド幅(帯域幅)が必要であるのでLLNAND書込みバンド幅が浪費され、したがってLLNANDデータストレージ150の耐久性に否定的な影響を及ぼす。
ライトバックモードレジスター310aは、また融合(coalesced)書込みを許容する第2オプションを選択できる。たとえ、LLNANDデータストレージ150に対するグラニュラリティが2KB範囲であっても、フロントエンド(front end)アクセス(即ち、DRAM110にアクセスすること)に対するグラニュラリティは単なる64Bである。したがって、融合書込みを許容することによって、書込みバッファ142からの多数のブロックの情報を結合して、64Bにより構成された情報のブロックの各々は単一LLNAND書込み(即ち、大略2KB)を生成し、LLNANDデータストレージ150への書込みの全体数を減少させ、したがってLLNANDデータストレージ150の耐久性及び寿命を延長させる。したがって、融合書込みオプションの使用によって、LLNAND書込みバンド幅が浪費される量を減少させる。しかし、書込みバッファ142の有効性が減少する。即ち、書込みが遂行される前に、複数の64Bの書込みが、キューイングされ、マージされるので、64Bブロックの情報はLLNANDデータストレージ150に再び書き込まれる充分な数の他のブロックの情報と融合される前に延長された期間の間に書込みバッファ142に残る可能性がある。
ライトバックモードレジスター310aによる第3オプションはモジュール100がどのライトバックモードを使用するか(即ち、前記即時書込みモード又は融合書込みモード)を決定する自動モードである。例えば、モジュール100は最適なライトバックモード320が前記即時書込みモードであるか、又は融合書込みモードであるかを決定するために、前記インモジュールの書込みバッファ及び前記書込みコントローラモジュール内の書込みアドレスヒストリーテーブル350を使用する。
前記第2書込みバッファレジスターはライトバックタイムを構成するために使用されるライトバックタイムレジスター310bである。ライトバックタイムレジスター310bは前記融合書込みモードと共に使用される。ライトバックモードレジスター310aが前記融合書込みオプションの使用を選択した場合、理論的に書込みバッファ142からの情報がLLNANDデータストレージ150に再び書き込まれず、続けて待機することになる。したがって、データがLLNANDデータストレージ150に決して再び書き込まれないシナリオを避けるためにライトバックタイムレジスター310bの使用によって、前記融合書込みオプションが適用される時までの最大待機時間に対する閾値時間又はイベントが使用される。
決定されたライトバックタイム330は時間、書込みバッファ142の容量に満たされる程度、又は持続性(persistency)に基づいた優先順位によって決定される。NAND技術は持続的なデータを保存する長所を有するので、ライトバックタイムレジスター310bはLLNANDデータストレージ150に再び書き込まれるために持続的であるとされた情報が優先順位を得るか、又は書込みバッファ142を通過するかの決定において持続性を強要するかもしれない。したがって、例えば、LLNANDデータストレージ150に再び書き込むことは次の3つの場合の中の第1番目の発生にしたがってスケジュールされる。3つの場合とは64Bブロックの情報が前記閾値時間以上に書込みバッファ142に留まる場合、書込みバッファ142が与えられたバッファ容量に到達する場合(即ち、バッファ容量モードにおける書込みバッファ142の満たされた比率に基づく)、又は前記ライトバックの優先順位が持続性に基づいて割当される場合である。
追加的に、プリフェッチバッファ160及び書込みバッファ142の中の1つ或いは全ては他の実施形態においてモジュール100のDRAM110の構成要素としてインスタンス化(instantiated)される。さらに、書込みバッファ142は他の実施形態において書込みコントローラ144と分離される。本実施形態において、前記インモジュールの書込みバッファ及び書込みコントローラモジュール300は書込みアドレスヒストリーテーブル350を含む。したがって、書込みバッファ142はライトバックモード320及びライトバックタイム330の決定に基づいて書込みアドレスヒストリーテーブル350を利用する。ライトバックモード320及びライトバックタイム330を決定すれば、これに対応する情報はインモジュールの書込みバッファ及び書込みコントローラモジュール300のスケジューラ340に供給される。スケジューラ340はこの情報を使用して何時書込みバッファ142がLLNANDデータストレージ150に再び書き込むか、どの情報をLLNANDデータストレージ150に書き込むか、どの順序に情報をLLNANDデータストレージ150に書き込むかを決定する。
したがって、上述した実施形態はアドレスヒストリー及びプリフェッチ精度から決定されたアクセスパターンに基づいてプリフェッチ政策を調整することによって減少した待機時間を達成しながら、大量のメモリを十分に格納するフラッシュ基盤メモリモジュールを提供すると同時に、また書込みアドレス履歴に基づいてメモリに対する書込みの選択的なスケジューリングによって改善された耐久性を達成する。
前述した内容は例示的な実施形態を説明するためであり、本発明を限定すると解釈されてはならない。所定の例示的な実施形態を説明したが、当業者は例示的な実施形態の新規な教示及び長所から実質的に逸脱せずに例示的な実施形態の多くの変形が可能であることを容易に理解できる。したがって、そのようなすべての修正は請求項に定義された例示的な実施形態の範囲内に含まれる。請求の範囲において、手段と機能の部分は構造的等価物のみならず、等価構造を列挙するとして説明した構造を含む。したがって、上述の説明は例示的な実施形態を説明するためであり、開示した特定実施形態に限定されると解釈されてはならず、開示した例示的な実施形態及び他の例示的な実施形態に対する修正が含まれると理解されなければならない。添付した請求範囲の範疇内において、本発明の概念は請求の範囲によって定義され、請求項に含まれる等価物を含む。
100 NVDIMM−Pモジュール
110 DRAM
120 データバッファ
130 レジスターリングクロックドライバー(RCD)バッファ
140 LLNANDコントローラ
142 書込みバッファ
144 書込みコントローラ
146 キャッシュコントローラ
150 LLNANDデータストレージ
160 プリフェッチバッファ
170 アドレスバス
180 DQバス
190 アドレス情報
200 プリフェッチャ
210 プリフェッチモードレジスター
210a ストライドレジスター
210b 方向レジスター
210c グラニュラリティレジスター
210d プリフェッチタイムレジスター
210e 休止時間レジスター
220 アドレスヒストリー
225 アドレスヒストリーテーブル
230 プリフェッチ精度
240 デコーダー
250 ストライド
252 方向
254 グラニュラリティ
256 プリフェッチタイム
258 プリフェッチ休止時間
260 プリフェッチアドレスとグラニュラリティ生成
270 プリフェッチングスケジューラー
280 プリフェッチバッファスケジューラ
300 書込みバッファ及び書込みコントローラモジュール
310 書込みバッファレジスター
310a ライトバックモードレジスター
310b ライトバックタイムレジスター
320 ライトバックモード
330 ライトバックタイム
340 スケジューラ
350 書込みアドレスヒストリーテーブル
RBM ボルツマンマシン

Claims (20)

  1. インモジュール(in−module)のプリフェッチャ(prefetcher)、インモジュールのプリフェッチバッファ、メモリ、及びメモリコントローラを含むメモリモジュールにデータを格納する方法であって、
    前記インモジュールのプリフェッチャからのアドレス情報を前記メモリコントローラ及び前記プリフェッチバッファに伝送する段階と、
    前記メモリコントローラに伝送されたアドレス情報と前記プリフェッチバッファに伝送されたアドレス情報との比較によってプリフェッチ精度を判断する段階と、
    前記プリフェッチ精度に基づいてプリフェッチモードを決定する段階と、
    前記プリフェッチモードにしたがって前記メモリに前記データを格納する段階と、を含むことを特徴とするデータ格納方法。
  2. 前記インモジュールのプリフェッチャのアドレスヒストリーテーブルにおいて前記アドレス情報を受信する段階と、
    前記アドレスヒストリーテーブルによってアクセスパターンを検出する段階と、をさらに含むことを特徴とする請求項1に記載のデータ格納方法。
  3. 前記プリフェッチモードを決定する段階は、前記インモジュールのプリフェッチャのプリフェッチモードレジスターを使用してストライド(stride)、方向、グラニュラリティ(granularity)、プリフェッチタイム、及び休止時間の中の少なくとも1つを決定する段階を含むことを特徴とする請求項2に記載のデータ格納方法。
  4. 前記ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間の中の少なくとも1つを決定する段階は、アドレスヒストリーテーブルに格納されたアドレスヒストリー及び判断されたプリフェッチ精度に基づくことを特徴とする請求項3に記載のデータ格納方法。
  5. 前記ストライド、方向、及びグラニュラリティに基づいてプリフェッチアドレスを生成する段階をさらに含むことを特徴とする請求項3に記載のデータ格納方法。
  6. 前記ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間の中の決定された少なくとも1つによってインモジュールのプリフェッチャのプリフェッチングスケジューラーを使用してプリフェッチ動作をトリガーするためにメモリコントローラに要請信号を伝送する段階をさらに含むことを特徴とする請求項3に記載のデータ格納方法。
  7. メモリモジュールのインモジュールの書込みバッファ及び書込み制御モジュールによりアドレス情報を受信する段階と、
    アドレス情報によってライトバックモード及びライトバックタイムの中の1つを決定する段階と、をさらに含むことを特徴とする請求項1に記載のデータ格納方法。
  8. 前記ライトバックモードは、可能な限り速やかにメモリに情報を書込みための即時書込みモード(immediate write mode)又は1回書込みにより書込みバッファからの複数ブロックの情報を前記メモリに結合する融合書込みモード(coalesced write mode)を含むことを特徴とする請求項7に記載のデータ格納方法。
  9. 前記インモジュールの書込みバッファ及び書込みコントローラモジュールにより前記アドレス情報を受信する段階は、書込みアドレスヒストリーテーブルにおいて前記アドレス情報を受信する段階をさらに含み、
    前記ライトバックモード及び前記ライトバックタイムの中の少なくとも1つを決定することは、前記書込みアドレスヒストリーテーブルにさらに基づくことを特徴とする請求項7に記載のデータ格納方法。
  10. 前記決定されたライトバックモード又は前記決定されたライトバックタイムを前記書込みバッファのスケジューラー及び書込みコントローラモジュールに伝送する段階と、
    前記決定されたライトバックモード又は前記決定されたライトバックタイムに基づいて前記書込みバッファから前記メモリまでの書込みをスケジュールするためのスケジューラーを使用する段階と、を含むことを特徴とする請求項7に記載のデータ格納方法。
  11. メモリコントローラと、
    前記メモリコントローラにプリフェッチ動作をトリガーするための要請を伝送するインモジュールのプリフェッチャと、
    前記インモジュールのプリフェッチャに結合されて前記インモジュールのプリフェッチャからデータを受信するためのインモジュールのプリフェッチバッファと、
    メモリに書き込まれる情報を格納するためのインモジュールの書込みバッファと、
    前記インモジュールの書込みバッファから前記メモリへの書込みをスケジューリングするためのインモジュールの書込みコントローラと、を含むことを特徴とするメモリモジュール。
  12. 前記インモジュールのプリフェッチャは、前記メモリモジュールのプリフェッチモードを決定する複数のプリフェッチモードレジスターを含み、前記プリフェッチモードレジスターは、
    ストライドレジスターと、
    方向レジスターと、
    グラニュラリティレジスターと、
    プリフェッチタイムレジスターと、
    休止時間レジスターの中の少なくとも1つと、を含むことを特徴とする請求項11に記載のメモリモジュール。
  13. 前記ストライドレジスターは、前記インモジュールのプリフェッチャが順次的にプリフェッチアドレスをアクセスするようにする順次プリフェッチングモード、前記インモジュールのプリフェッチャがオフセット方式にプリフェッチアドレスをアクセスするようにするストライドプリフェッチングモード、又は前記インモジュールのプリフェッチャがアドレスヒストリー及びプリフェッチ精度に基づいてプリフェッチアドレスをアクセスするようにする自動プリフェッチングモードの中の1つを決定するように構成され、
    前記方向レジスターは、前記インモジュールのプリフェッチャが昇順にプリフェッチアドレスをアクセスするようにする昇順モード、前記インモジュールのプリフェッチャが降順にプリフェッチアドレスをアクセスするようにする降順モード、又は前記インモジュールのプリフェッチャが前記アドレスヒストリー及びプリフェッチ精度に基づいて降順又は昇順にプリフェッチアドレスをアクセスするようにする自動モードの中の1つを決定するように構成され、
    前記グラニュラリティレジスターは、グラニュラリティが与えられたサイズの固定されたグラニュラリティであるか、又は前記アドレスヒストリー及び前記プリフェッチ精度に基づいたグラニュラリティであるかを決定するように構成され、
    前記プリフェッチタイムレジスターは、前記インモジュールのプリフェッチャが継続的にプリフェッチングを遂行するようにする連続プリフェッチモード、前記インモジュールのプリフェッチャに要請がある時、プリフェッチングを遂行するようにする受信要請モード、前記インモジュールのプリフェッチャが単なるキャッシュミス又はプリフェッチミスである場合、プリフェッチングを遂行するようにするキャッシュ/プリフェッチミス(miss)モード、又は前記インモジュールのプリフェッチャが前記アドレスヒストリー及び前記プリフェッチ精度にしたがってプリフェッチングを遂行するようにする自動モードの中の1つを決定するように構成され、
    前記休止時間レジスターは、前記インモジュールのプリフェッチャが活性化されない常時休止モード(always paused mode)、前記インモジュールのプリフェッチャが常に活性化される非休止モード(never paused mode)、前記インモジュールのプリフェッチャが前記プリフェッチバッファが一杯に満たされる時、休止されるようにするバッファ容量モード、及び前記インモジュールのプリフェッチャが前記アドレスヒストリー及び前記プリフェッチ精度に基づいて休止されるようにする自動モードの中の1つを決定するように構成されることを特徴とする請求項12に記載のメモリモジュール。
  14. 前記インモジュールのプリフェッチャは、前記プリフェッチモードレジスターから受信された情報によって前記メモリコントローラに要請を伝送するためのプリフェッチングスケジューラーを含むことを特徴とする請求項12に記載のメモリモジュール。
  15. 前記インモジュールの書込みコントローラは、複数の書込みバッファを含み、前記複数の書込みバッファは、
    ライトバックモードレジスターと、
    ライトバックタイムレジスターと、を含むことを特徴とする請求項11に記載のメモリモジュール。
  16. 前記ライトバックモードレジスターは、
    インモジュールの書込みバッファ及び書込みコントローラモジュールが可能な限り速やかにメモリモジュールのメモリに情報を書き込むようにする即時書込みモードと、
    インモジュールの書込みバッファ及び書込みコントローラモジュールが分離されたブロックの情報をメモリに1回書込みにより結合する融合書込みモードと、
    メモリモジュールが即時書込みモード又は融合書込みモードの中のいずれを使用するかを決定するために書込みアドレスヒストリーテーブルを使用するようにする自動モードと、を含むことを特徴とする請求項15に記載のメモリモジュール。
  17. 前記ライトバックモードレジスターが融合書込みモードを決定すれば、前記ライトバックタイムレジスターは、時間、前記インモジュールの書込みバッファの容量、又はデータの持続性にしたがう優先順位に基づいて前記メモリにデータを書き込むタイムを決定することを特徴とする請求項16に記載のメモリモジュール。
  18. ホストと直接通信することができ、前記メモリモジュールのメモリキャッシュとして動作するDRAMをさらに含み、
    前記インモジュールのプリフェッチバッファ及び前記インモジュールの書込みバッファは、前記DRAMの構成要素であることを特徴とする請求項11に記載のメモリモジュール。
  19. メモリと、
    インモジュールのプリフェッチバッファと、
    ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間の中の少なくとも1つを決定し、ストライド、方向、グラニュラリティ、プリフェッチタイム、及び休止時間の中の少なくとも1つによってプリフェッチアドレスを生成するインモジュールのプリフェッチャと、
    その都度、即時にメモリに書き込むか、又は別々のブロックのデータを結合して単一書込みによりメモリに書き込むかを決定し、メモリに書込みスケジューリングをするためのインモジュールの書込みバッファ及び書込みコントローラモジュールを含むことを特徴とするNVDIMM型モジュール。
  20. 前記メモリ、前記インモジュールのプリフェッチバッファ、及び前記インモジュールのプリフェッチャに結合されたメモリコントローラをさらに含み、
    前記メモリコントローラは、前記インモジュールの書込みバッファ及び書込みコントローラモジュールを含むことを特徴とする請求項19に記載のNVDIMM型モジュール。
JP2017169575A 2016-09-26 2017-09-04 バイトアドレス可能なフラッシュ基盤メモリモジュール、nvdimm型モジュール、及びそのデータ格納方法 Pending JP2018055683A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662400048P 2016-09-26 2016-09-26
US62/400048 2016-09-26
US15/349,949 US10866897B2 (en) 2016-09-26 2016-11-11 Byte-addressable flash-based memory module with prefetch mode that is adjusted based on feedback from prefetch accuracy that is calculated by comparing first decoded address and second decoded address, where the first decoded address is sent to memory controller, and the second decoded address is sent to prefetch buffer
US15/349949 2016-11-11

Publications (1)

Publication Number Publication Date
JP2018055683A true JP2018055683A (ja) 2018-04-05

Family

ID=61686251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017169575A Pending JP2018055683A (ja) 2016-09-26 2017-09-04 バイトアドレス可能なフラッシュ基盤メモリモジュール、nvdimm型モジュール、及びそのデータ格納方法

Country Status (5)

Country Link
US (1) US10866897B2 (ja)
JP (1) JP2018055683A (ja)
KR (1) KR102381449B1 (ja)
CN (1) CN107870873B (ja)
TW (1) TWI761360B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020101983A (ja) * 2018-12-21 2020-07-02 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102353859B1 (ko) * 2017-11-01 2022-01-19 삼성전자주식회사 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈
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 주식회사 멤레이 메모리 제어 장치 및 이를 포함하는 컴퓨팅 디바이스
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US10880401B2 (en) 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US10713053B2 (en) 2018-04-06 2020-07-14 Intel Corporation Adaptive spatial access prefetcher apparatus and method
US11948073B2 (en) 2018-04-20 2024-04-02 Advanced Micro Devices, Inc. Machine learning inference engine scalability
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
US10691611B2 (en) 2018-07-13 2020-06-23 Micron Technology, Inc. Isolated performance domains in a memory system
KR20200015233A (ko) 2018-08-03 2020-02-12 삼성전자주식회사 불휘발성 메모리 장치들을 포함하는 반도체 메모리 모듈
TWI703566B (zh) * 2018-08-30 2020-09-01 大陸商合肥沛睿微電子股份有限公司 快閃記憶體控制器及相關的存取方法及電子裝置
TWI698874B (zh) * 2018-08-31 2020-07-11 大陸商合肥沛睿微電子股份有限公司 快閃記憶體控制器及相關的存取方法及電子裝置
CN110888588B (zh) * 2018-09-07 2023-09-01 合肥沛睿微电子股份有限公司 快闪记忆体控制器及相关的访问方法及电子装置
CN111104054B (zh) * 2018-10-29 2023-10-27 伊姆西Ip控股有限责任公司 管理输入/输出操作的方法、装置和计算机程序产品
US11769041B2 (en) 2018-10-31 2023-09-26 Advanced Micro Devices, Inc. Low latency long short-term memory inference with sequence interleaving
JP2020091930A (ja) 2018-12-07 2020-06-11 キオクシア株式会社 半導体記憶装置
CN111353575A (zh) * 2018-12-20 2020-06-30 超威半导体公司 用于卷积神经网络的图块化格式
CN111723918A (zh) 2019-03-18 2020-09-29 超威半导体公司 用于卷积内核的自动生成和调谐工具
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
CN110427332B (zh) * 2019-08-05 2021-08-20 上海兆芯集成电路有限公司 数据预取装置、数据预取方法及微处理器
CN110704107B (zh) * 2019-09-30 2022-03-22 上海兆芯集成电路有限公司 预取器、预取器的运作方法及处理器
US11231930B2 (en) * 2019-11-25 2022-01-25 Alibaba Group Holding Limited Methods and systems for fetching data for an accelerator
US11294808B2 (en) 2020-05-21 2022-04-05 Micron Technology, Inc. Adaptive cache
US11422934B2 (en) 2020-07-14 2022-08-23 Micron Technology, Inc. Adaptive address tracking
US11409657B2 (en) 2020-07-14 2022-08-09 Micron Technology, Inc. Adaptive address tracking
US11803311B2 (en) 2021-03-31 2023-10-31 Advanced Micro Devices, Inc. System and method for coalesced multicast data transfers over memory interfaces

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628180A (ja) * 1991-07-30 1994-02-04 Hitachi Ltd プリフェッチバッファ
JP2001147854A (ja) * 1999-10-01 2001-05-29 Hitachi Ltd 処理システム、書き込みバッファユニット内の格納の最適化方法、並びに、データの格納及び分配方法
JP2001166989A (ja) * 1999-12-07 2001-06-22 Hitachi Ltd プリフェッチ機構を有するメモリシステム及びその動作方法
JP2002297379A (ja) * 2001-03-29 2002-10-11 Hitachi Ltd ハードウェアプリフェッチシステム
US20040123043A1 (en) * 2002-12-19 2004-06-24 Intel Corporation High performance memory device-state aware chipset prefetcher
US20040260909A1 (en) * 2003-06-20 2004-12-23 Lee Terry R. Memory hub and access method having internal prefetch buffers
JP2005524146A (ja) * 2002-04-25 2005-08-11 インターナショナル・ビジネス・マシーンズ・コーポレーション 破壊読み出し型ランダム・アクセス・メモリ・システム
US20070214324A1 (en) * 2006-03-09 2007-09-13 Mediatek Inc. Command controller, prefetch buffer and methods for accessing a serial flash in an embedded system
JP2008186457A (ja) * 2007-01-29 2008-08-14 Internatl Business Mach Corp <Ibm> ハブ装置、プリフェッチ・モードを選択するための方法、メモリ・システム及びメモリ・サブシステム
US20090006813A1 (en) * 2007-06-28 2009-01-01 Abhishek Singhal Data forwarding from system memory-side prefetcher
JP2009059077A (ja) * 2007-08-30 2009-03-19 Toshiba Corp キャッシュシステム
CN102156628A (zh) * 2010-04-27 2011-08-17 威盛电子股份有限公司 微处理器、预取数据至微处理器的快取存储器阶层的方法
JP2014078231A (ja) * 2012-10-08 2014-05-01 Hgst Netherlands B V 低電力・低遅延・大容量ストレージ・クラス・メモリのための装置および方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04233642A (ja) * 1990-07-27 1992-08-21 Dell Usa Corp キャッシュアクセスと並列的にメモリアクセスを行なうプロセッサ及びそれに用いられる方法
US5721860A (en) * 1994-05-24 1998-02-24 Intel Corporation Memory controller for independently supporting synchronous and asynchronous DRAM memories
US5699548A (en) * 1995-06-01 1997-12-16 Intel Corporation Method and apparatus for selecting a mode for updating external memory
US5941981A (en) * 1997-11-03 1999-08-24 Advanced Micro Devices, Inc. System for using a data history table to select among multiple data prefetch algorithms
US6532505B1 (en) * 1999-11-12 2003-03-11 Infineon Technologies Ag Universal resource access controller
US6496277B1 (en) * 1999-07-23 2002-12-17 Xerox Corporation Data flow control and storage facility for an image reproduction system
US8452912B2 (en) 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
US20070233955A1 (en) 2000-01-06 2007-10-04 Super Talent Electronics Inc. Mixed-Mode ROM/RAM Booting Using an Integrated Flash Controller with NAND-Flash, RAM, and SD Interfaces
US6880073B2 (en) * 2000-12-28 2005-04-12 International Business Machines Corporation Speculative execution of instructions and processes before completion of preceding barrier operations
US6499085B2 (en) * 2000-12-29 2002-12-24 Intel Corporation Method and system for servicing cache line in response to partial cache line request
US6571318B1 (en) * 2001-03-02 2003-05-27 Advanced Micro Devices, Inc. Stride based prefetcher with confidence counter and dynamic prefetch-ahead mechanism
US6862223B1 (en) 2002-07-05 2005-03-01 Aplus Flash Technology, Inc. Monolithic, combo nonvolatile memory allowing byte, page and block write with no disturb and divided-well in the cell array using a unified cell structure and technology with a new scheme of decoder and layout
US6976147B1 (en) * 2003-01-21 2005-12-13 Advanced Micro Devices, Inc. Stride-based prefetch mechanism using a prediction confidence value
US7238218B2 (en) * 2004-04-06 2007-07-03 International Business Machines Corporation Memory prefetch method and system
US7472222B2 (en) * 2004-10-12 2008-12-30 Hitachi Global Storage Technologies Netherlands B.V. HDD having both DRAM and flash memory
CN101558390B (zh) * 2006-12-15 2014-06-18 密克罗奇普技术公司 用于微处理器的可配置高速缓冲存储器
US20090063895A1 (en) * 2007-09-04 2009-03-05 Kurt Smith Scaleable and maintainable solid state drive
US8650364B2 (en) * 2008-05-28 2014-02-11 Vixs Systems, Inc. Processing system with linked-list based prefetch buffer and methods for use therewith
US8274829B2 (en) * 2008-06-09 2012-09-25 Aplus Flash Technology, Inc. Row-decoder and source-decoder structures suitable for erase in unit of page, sector and chip of a NOR-type flash operating below +/− 10V BVDS
US20110047313A1 (en) 2008-10-23 2011-02-24 Joseph Hui Memory area network for extended computer systems
US8019921B2 (en) * 2008-11-14 2011-09-13 GlobalFoundries, Inc. Intelligent memory buffer
JP2012064158A (ja) * 2010-09-17 2012-03-29 Toshiba Corp メモリ管理装置及びメモリ管理方法
EP2761480A4 (en) * 2011-09-30 2015-06-24 Intel Corp APPARATUS AND METHOD FOR IMPLEMENTING MULTINIVE MEMORY HIERARCHY ON COMMON MEMORY CHANNELS
WO2013100988A1 (en) * 2011-12-28 2013-07-04 Intel Corporation Retrieval of previously accessed data in a multi-core processor
US9058278B2 (en) * 2012-12-19 2015-06-16 Advanced Micro Devices, Inc. Tracking prefetcher accuracy and coverage
US9146928B1 (en) 2012-12-31 2015-09-29 Emc Corporation Techniques for storing metadata of a filesystem in persistent memory
US9384136B2 (en) * 2013-04-12 2016-07-05 International Business Machines Corporation Modification of prefetch depth based on high latency event
US9785545B2 (en) 2013-07-15 2017-10-10 Cnex Labs, Inc. Method and apparatus for providing dual memory access to non-volatile memory
US10275171B2 (en) 2014-09-16 2019-04-30 Kove Ip, Llc Paging of external memory
US9704563B2 (en) 2014-12-08 2017-07-11 Intel Corporation Apparatus, method and system for performing successive writes to a bank of a dynamic random access memory
US9983997B2 (en) * 2015-07-24 2018-05-29 Futurewei Technologies, Inc. Event based pre-fetch caching storage controller
US10678459B2 (en) * 2015-08-06 2020-06-09 Rambus Inc. High performance, high capacity memory modules and systems
US10176090B2 (en) * 2016-09-15 2019-01-08 Qualcomm Incorporated Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628180A (ja) * 1991-07-30 1994-02-04 Hitachi Ltd プリフェッチバッファ
JP2001147854A (ja) * 1999-10-01 2001-05-29 Hitachi Ltd 処理システム、書き込みバッファユニット内の格納の最適化方法、並びに、データの格納及び分配方法
JP2001166989A (ja) * 1999-12-07 2001-06-22 Hitachi Ltd プリフェッチ機構を有するメモリシステム及びその動作方法
JP2002297379A (ja) * 2001-03-29 2002-10-11 Hitachi Ltd ハードウェアプリフェッチシステム
JP2005524146A (ja) * 2002-04-25 2005-08-11 インターナショナル・ビジネス・マシーンズ・コーポレーション 破壊読み出し型ランダム・アクセス・メモリ・システム
US20040123043A1 (en) * 2002-12-19 2004-06-24 Intel Corporation High performance memory device-state aware chipset prefetcher
US20040260909A1 (en) * 2003-06-20 2004-12-23 Lee Terry R. Memory hub and access method having internal prefetch buffers
US20070214324A1 (en) * 2006-03-09 2007-09-13 Mediatek Inc. Command controller, prefetch buffer and methods for accessing a serial flash in an embedded system
JP2008186457A (ja) * 2007-01-29 2008-08-14 Internatl Business Mach Corp <Ibm> ハブ装置、プリフェッチ・モードを選択するための方法、メモリ・システム及びメモリ・サブシステム
US20090006813A1 (en) * 2007-06-28 2009-01-01 Abhishek Singhal Data forwarding from system memory-side prefetcher
JP2009059077A (ja) * 2007-08-30 2009-03-19 Toshiba Corp キャッシュシステム
CN102156628A (zh) * 2010-04-27 2011-08-17 威盛电子股份有限公司 微处理器、预取数据至微处理器的快取存储器阶层的方法
JP2014078231A (ja) * 2012-10-08 2014-05-01 Hgst Netherlands B V 低電力・低遅延・大容量ストレージ・クラス・メモリのための装置および方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020101983A (ja) * 2018-12-21 2020-07-02 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP7140972B2 (ja) 2018-12-21 2022-09-22 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法

Also Published As

Publication number Publication date
KR102381449B1 (ko) 2022-03-31
US20180089087A1 (en) 2018-03-29
CN107870873B (zh) 2023-08-08
TW201814531A (zh) 2018-04-16
US10866897B2 (en) 2020-12-15
TWI761360B (zh) 2022-04-21
CN107870873A (zh) 2018-04-03
KR20180034193A (ko) 2018-04-04

Similar Documents

Publication Publication Date Title
JP2018055683A (ja) バイトアドレス可能なフラッシュ基盤メモリモジュール、nvdimm型モジュール、及びそのデータ格納方法
US10453501B2 (en) Hybrid LPDDR4-DRAM with cached NVM and flash-NAND in multi-chip packages for mobile devices
US11449445B2 (en) Transaction-based hybrid memory
US9201796B2 (en) System cache with speculative read engine
US9400544B2 (en) Advanced fine-grained cache power management
US9146867B2 (en) Methods and apparatus to access memory using runtime characteristics
US9135177B2 (en) Scheme to escalate requests with address conflicts
KR20100077051A (ko) 메모리 액세스들의 순서를 수정하기 위한 시스템, 장치 및 방법
US20140089600A1 (en) System cache with data pending state
CN108139994B (zh) 内存访问方法及内存控制器
US11934317B2 (en) Memory-aware pre-fetching and cache bypassing systems and methods
US10191664B2 (en) Memory system
TWI526831B (zh) 針對瀏覽應用程式最佳化之快取分配方法
US8977817B2 (en) System cache with fine grain power management
US20080098176A1 (en) Method and Apparatus for Implementing Memory Accesses Using Open Page Mode for Data Prefetching
KR102422654B1 (ko) 프로세서 측 트랜잭션 콘텍스트 메모리 인터페이스 시스템 및 방법
JP2016085515A (ja) 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム
US11354246B2 (en) Memory-side transaction context memory interface systems and methods based on clock cycles and wires

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200813

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220128

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220614