CN109753237A - 计算设备和非易失性双列直插式存储器模块 - Google Patents

计算设备和非易失性双列直插式存储器模块 Download PDF

Info

Publication number
CN109753237A
CN109753237A CN201811204256.9A CN201811204256A CN109753237A CN 109753237 A CN109753237 A CN 109753237A CN 201811204256 A CN201811204256 A CN 201811204256A CN 109753237 A CN109753237 A CN 109753237A
Authority
CN
China
Prior art keywords
data
memory
information
controller
order
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.)
Granted
Application number
CN201811204256.9A
Other languages
English (en)
Other versions
CN109753237B (zh
Inventor
赵仁顺
徐圣镕
黄珠荣
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 CN109753237A publication Critical patent/CN109753237A/zh
Application granted granted Critical
Publication of CN109753237B publication Critical patent/CN109753237B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/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
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • 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
    • 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/0683Plurality of storage devices
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • 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/602Details relating to cache prefetching
    • 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/6028Prefetching based on hints or prefetch instructions
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7202Allocation control and policies
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

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

提供了一种计算设备和非易失性双列直插式存储器模块。计算设备包括处理器和连接到处理器的非易失性双列直插式存储器模块(NVDIMM)。NVDIMM包括:第一存储器,具有第一处理速度和第一存储容量;第二存储器,具有低于所述第一处理速度的第二处理速度和大于所述第一存储容量的第二存储容量;控制器,在第一存储器和第二存储器之间驱逐或提取数据。当处理器识别出用于驱逐数据的第一情况或用于预取数据的第二情况时,处理器向NVDIMM发送包括以下信息的命令:与第一情况或第二情况相关联的数据的逻辑地址的第一信息、与第一情况或第二情况相关联的数据的长度的第二信息以及指示第一情况或第二情况的第三信息。

Description

计算设备和非易失性双列直插式存储器模块
本申请要求于2017年11月1日在韩国知识产权局提交的韩国专利申请No.10-2017-0144577的优先权,其公开内容通过引用整体并入本文。
技术领域
本公开涉及一种计算设备和非易失性双列直插式存储器模块(NVDIMM)。
背景技术
存储器设备分为易失性存储器设备和非易失性存储器设备。尽管易失性存储器设备高速读取和写入数据,但是当外部电源中断时,易失性存储器设备丢失存储的数据。相反,即使在外部电源中断时,非易失性存储器设备也可以保留存储的数据。因此,非易失性存储器设备用于存储不管是否向其供电都要保留的数据。
最近,需要大容量***存储器的应用已经普及。易失性存储器已广泛用作***存储器。由于对增加动态随机存取存储器(DRAM)的集成密度存在特定的技术限制,因此存在许多其中DRAM的存储容量严重不足而不能满足应用的要求的情况。因此,已经进行了关于满足应用要求的研究。
发明内容
本公开的各方面提供了一种计算设备,其中,低速大容量存储器和高速小容量存储器嵌入在非易失性双列直插式存储器模块(NVDIMM)中并用作单个***存储器,以产生与安装在计算设备中的高速大容量存储器相同的效果。
本公开的各方面还提供了一种NVDIMM,其中必要的数据保留在高速小容量存储器中。
本公开的其他方面将部分地在下面的描述中阐述,并且部分地将从描述中显而易见,或者可以通过实现本公开来被获知。
根据本公开的一方面,提供了一种计算设备。该计算设备包括处理器和连接到所述处理器的非易失性双列直插式存储器模块(NVDIMM)。所述NVDIMM包括:(1)第一存储器,具有第一处理速度和第一存储容量;(2)第二存储器,具有低于所述第一处理速度的第二处理速度以及大于所述第一存储容量的第二存储容量;(3)控制器,被配置为在所述第一存储器和所述第二存储器之间驱逐或提取数据。当所述处理器识别出用于驱逐数据的第一情况或用于预取数据的第二情况时,所述处理器向所述NVDIMM发送包括以下信息的命令:关于与所述第一情况或所述第二情况相关联的数据的逻辑地址的第一信息、关于与所述第一情况或所述第二情况相关联的数据的长度的第二信息以及指示所述第一情况或所述第二情况的第三信息。
根据本公开的另一方面,提供了一种非易失性双列直插式存储器模块(NVDIMM)。所述NVDIMM包括:(1)第一存储器,具有第一处理速度、第一存储容量以及存储第一数据的第一存储空间;(2)第二存储器,具有低于所述第一处理速度的第二处理速度、大于所述第一存储容量的第二存储容量以及存储与所述第一数据对应的第二数据的第二存储空间;(3)控制器,被配置为在所述第一存储器和所述第二存储器之间驱逐或提取数据;(4)主机接口。当所述控制器通过所述主机接口接收到第一命令时,所述控制器检查管理图并检查所述第一数据是否被改变,其中,第一命令包括关于所述第一数据的逻辑地址的第一信息、关于所述第一数据的长度的第二信息以及指示用于驱逐数据的第一情况的第三信息。
根据本公开的另一方面,提供了一种NVDIMM。所述NVDIMM包括:(1)第一存储器,具有第一处理速度和第一存储容量;(2)第二存储器,具有低于所述第一处理速度的第二处理速度、大于所述第一存储容量的第二存储容量以及存储第一数据的第一存储空间;(3)控制器,被配置为在所述第一存储器和所述第二存储器之间驱逐或提取数据;(4)主机接口。当所述控制器通过所述主机接口接收到第一命令时,所述控制器提取所述第一数据,并且将所述第一数据存储在在所述第一存储器中包括的第二存储空间中,其中,所述第一命令包括关于所述第一数据的逻辑地址的第一信息、关于所述第一数据的长度的第二信息以及指示用于预取所述第一数据的第一情况的第三信息。
根据本公开的另一方面,提供了一种存储器模块,其具有非易失性存储器、高速缓冲存储器和控制器。响应于从外部主机接收预取数据的请求,所述控制器将数据从所述非易失性存储器复制到所述高速缓冲存储器。
附图说明
通过参照附图详细描述本发明的实施例,本公开的上述和其他方面和特征将变得更加显而易见,其中:
图1是根据本公开的一些实施例的计算设备的示例的视图;
图2是根据本公开的一些实施例的非易失性双列直插式存储器模块(NVDIMM)的示例的框图;
图3是根据本公开的一些实施例的由计算设备的处理器生成的命令的示例的视图;
图4是根据本公开的一些实施例的由计算设备的处理器生成的命令的另一示例的视图;
图5是根据本公开的一些实施例的通过使用计算设备的处理器将与数据驱逐或数据预取对应的命令***到代码中的方法的示例的视图;
图6是根据本公开的一些实施例的通过使用计算设备的处理器将与数据驱逐或数据预取对应的命令***到代码中的方法的示例的视图;
图7是根据本公开的一些实施例的预取存储在计算设备中的NVDIMM中的数据的方法的示例的流程图;
图8是根据本公开的一些实施例的预取存储在计算设备中的NVDIMM中的数据的方法的示例的视图;
图9是根据本公开的一些实施例的预取存储在计算设备中的NVDIMM中的数据的方法的示例的视图;
图10是根据本公开的一些实施例的当在第一数据被预取到第一存储器的状态下接收到修改第一数据的修改命令时修改第一数据的方法的示例的视图;
图11是根据本公开的一些实施例的当在第一数据被预取到第一存储器的状态下接收到修改第一数据的修改命令时修改第一数据的方法的示例的视图;
图12是根据本公开的一些实施例的当在第一数据被预取到第一存储器的状态下接收到读取第一数据的读取命令时读取第一数据的方法的示例的视图;
图13是根据本公开的一些实施例的当在第一数据被预取到第一存储器的状态下接收到读取第一数据的读取命令时读取第一数据的方法的示例的视图;
图14是根据本公开的一些实施例的驱逐存储在计算设备中的NVDIMM中的数据的方法的示例的流程图;
图15是根据本公开的一些实施例的驱逐存储在计算设备中的NVDIMM中的数据的方法的示例的视图;
图16是根据本公开的一些实施例的驱逐存储在计算设备中的NVDIMM中的数据的方法的示例的视图;
图17是根据本公开的一些实施例的驱逐存储在计算设备中的NVDIMM中的数据的方法的示例的视图;
图18是根据本公开的一些实施例的驱逐存储在计算设备中的NVDIMM中的数据的方法的示例的视图;以及
图19是根据本公开的一些实施例的驱逐存储在计算设备中的NVDIMM中的数据的方法的示例的视图。
具体实施方式
在下文中,将参照图1至图5描述根据本公开的一些实施例的半导体设备。
图1是根据本公开的一些实施例的计算设备10的示例的视图。
参照图1,计算设备10可以包括处理器100(主机CPU)、至少一个双列直插式存储器模块200(DIMM)以及至少一个非易失性双列直插式存储器模块300(NVDIMM)。在实现计算设备10时,图1中所示的组件不是必不可少的,可以比上面列出的组件更多或更少。
计算设备10可以用作在以下项中包括的各种电子设备中的以下任何一种:计算机、便携式计算机、超便携个人计算机(UMPC)、工作站、数据服务器、上网本、网络平板电脑、电子书(e-book)、数码相机、数字音频播放器、记录器/播放器、数码相机/录像机/播放器、便携式游戏机、导航***、黑匣子、三维(3D)电视、被配置为在无线环境中接收和发送信息的设备、包括在家庭网络中的各种电子设备或者包括在计算***中的各种电子设备。
处理器100可以被实现为控制计算设备10的整体操作。此外,处理器100可以执行在计算设备10中执行各种操作并处理数据。处理器100可以驱动操作***(OS)、应用程序和数据库管理器,它们被配置为驱动计算设备10。
处理器100可以是中央处理单元(CPU)、协处理器、算术处理单元(APU)、图形处理单元(GPU)或数字信号处理器(DSP)。
根据一些实施例,处理器100还可以包括存储器管理单元(MMU),其被配置为管理DIMM 200和NVDIMM 300。
根据一些实施例,计算设备10可以仅包括NVDIMM 300而不包括DIMM 200。
DIMM 200可以包括至少一个动态随机存取存储器(DRAM)。
NVDIMM 300可以包括具有第一处理速度和第一存储容量的第一存储器以及具有低于第一处理速度的第二处理速度和大于第一存储容量的第二存储容量的第二存储器。下面将参照图2更详细地描述NVDIMM 300。
图2是根据本公开的一些实施例的NVDIMM 300的示例的框图。
根据一些实施例的NVDIMM 300可以包括控制器310、缓冲器芯片320、主机接口330、总线340、电源单元350、第一存储器360和第二存储器370。在实施NVDIMM 300时,图2所示的组件不是必不可少的,可以比上面列出的组件更多或更少。
控制器310可以控制NVDIMM 300的整体操作。
根据一些实施例,控制器310可以通过主机接口330接收用于控制第一存储器360和第二存储器370的命令。当接收到上述命令时,控制器310可以用于在第一存储器360和第二存储器370之间移动数据。即,当接收到上述命令时,控制器310可以用于在第一存储器360和第二存储器370之间驱逐或提取数据。
在一个示例中,当接收到与数据的预取对应的第一命令时,控制器310可以将存储在第二存储器370中的数据提取到第一存储器360并将该数据存储在第一存储器360中。
在另一示例中,当接收到与数据的驱逐对应的第二命令时,控制器310可以基于第一存储器360的管理图确定存储在第一存储器360中的数据是否被改变。当存储在第一存储器360中的数据被改变时,控制器310可以将存储在第一存储器360中的数据驱逐到第二存储器370并将该数据存储在第二存储器370中。
缓冲芯片320可以临时存储要存储在NVDIMM 300中的数据或要从NVDIMM 300读取的数据。
主机接口330可以提供计算设备的处理器100(参照图1)与NVDIMM 300之间的接口。
控制器310可以通过主机接口330从计算设备的处理器100接收命令、数据和信号。此外,控制器310可以通过主机接口330向主机发送命令、数据和信号。
电源单元350可以在控制器310的控制下向包括在NVDIMM 300中的每个组件供电。电源单元350可以包括电池。这里,电池可以是嵌入式电池或可更换电池。
根据一些实施例,在不从外部供电的情况下,控制器310可以控制电源单元350。电源单元350可以在控制器310的控制之下向NVDIMM 300中包括的每个组件供电。当通过电源单元350供电时,控制器310可以将存储在易失性存储器中的数据驱逐到非易失性存储器并将该数据存储在非易失性存储器中。因此,当突然中断供电时,可以防止存储在易失性存储器中的数据丢失。
控制器310、缓冲器芯片320、主机接口330、电源单元350、第一存储器360和第二存储器370可以经由总线340在彼此之间收发数据。
第一存储器360可以是具有第一处理速度和第一存储容量的存储器。这里,第一存储器360可以包括具有第一处理速度的多个存储芯片361、362......
第二存储器370可以是具有低于第一处理速度的第二处理速度和大于第一存储容量的第二存储容量的存储器。这里,第二存储器370可以包括具有第二处理速度的多个存储芯片371、372......
第一存储器360可以是易失性存储器。例如,第一存储器360可以实现为RAM、静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、晶闸管RAM(T-RAM)、零电容器RAM(Z-RAM)、双晶体管RAM(TTRAM),或其各种组合之一。
第二存储器370可以是非易失性存储器。例如,第二存储器370可以实现为电可擦除可编程只读存储器(EEPROM)、闪存、磁RAM(MRAM)、自旋转移矩MRAM、铁电RAM(FeRAM)、相变RAM(PRAM)、电阻RAM(RRAM)、多媒体卡(MMC)、嵌入式MMC(eMMC)、通用闪存(UFS)或其各种组合之一。
根据一些实施例,第一存储器360可以是非易失性存储器。然而,即使当第一存储器360是非易失性存储器时,第一存储器360的处理速度也可能高于第二存储器370的处理速度,并且第一存储器360的存储容量小于第二存储器370的存储容量。
例如,当第一存储器360包括多个PRAM芯片时,第二存储器370可以包括多个闪存芯片。在这种情况下,多个PRAM芯片的总存储容量可以小于多个闪存芯片的总存储容量。
图3是根据本公开的一些实施例的由计算设备的处理器生成的命令的示例的视图。图4是根据本公开的一些实施例的由计算设备的处理器生成的命令的另一示例的视图。
当包括在计算设备中的处理器100(参照图1)识别出需要驱逐数据的第一情况或需要预取数据的第二情况时,处理器100可以发送对应于NVDIMM的第一情况或第二情况的命令400(参照图3)。
参照图3,命令400可以包括例如三个字段。这里,字段可以指代包括命令中的特定信息的区域。
第一字段401可以包括命令名称。例如,用于驱逐数据或预取数据的命令的名称可以是“nvmadvise”。
第二字段402可以包括关于数据的逻辑地址的信息。
例如,第二字段402可以包括要被预取或驱逐的数据的逻辑地址。例如,第二字段402可以包括关于要被驱逐或预取的数据的逻辑地址的信息以及关于要被驱逐或预取的数据的长度的信息。
在另一示例中,当存在要被驱逐或预取的数据的多个不连续逻辑地址时,第二字段402可包括关于多个数据中的每个数据的逻辑地址的信息。例如,第二字段402可以包括关于多个数据中的每个数据的逻辑地址的信息和关于与每个逻辑地址相对应的数据的长度的信息的列表。在这种情况下,可以响应于一个命令来预取或驱逐多个数据,而不需要为所述多个数据调用多个命令,因此处理速度可以增加。
第三字段403可以包括指示需要驱逐数据的情况或需要预取数据的情况的信息。
在一个示例中,第三字段403可以在需要驱逐数据的情况下包括UNLOAD。在另一示例中,第三字段403可以在需要预取数据的情况下包括LOAD。也就是说,UNLOAD可以指示需要驱逐数据的情况,而LOAD可以指示需要预取数据的情况。
尽管图3示出了上述命令400用作预取命令或驱逐命令的典型情况,但在一些其他实施例中,具有与用于DRAM的写入命令500(参照图4)类似的结构的命令可以用作预取命令或驱逐命令。也就是说,当包括在计算设备中的处理器100(参照图1)识别出需要驱逐数据的第一情况或需要预取数据的第二情况时,处理器100可以将命令510(参照图4)发送到NVDIMM,命令510与上面参照图3描述的命令400不同。
参照图4,包括在用于DRAM的写入命令500中的第一字段501可以包括命令名称。包括在写入命令500中的第二字段502可以包括关于要存储数据的存储空间的地址的信息(例如,行地址和列地址)。包括在写入命令500中的第三字段503可以包括要写入的数据。包括在写入命令500中的第四字段504可以是带外(OOB)区域。
包括在对应于第一情况或第二情况的命令510中的第一字段511可以包括命令名称。例如,用于驱逐数据或预取数据的命令的名称可以是“nvmadvise”。
包括在命令510中的第二字段512可以包括虚拟信息NULL。当在DRAM上使用写入命令500时,尽管写入命令500的第二字段502可以包括关于要存储数据的存储空间的地址的信息,但是NVDIMM可以具有存储空间的地址,其与DRAM的地址不同。
命令510中包括的第三字段513可以包括关于存储数据的区域的信息。
例如,第三字段513可以包括关于要被驱逐或预取的数据的逻辑地址的信息以及关于数据长度的信息。
在另一示例中,当存在要被驱逐或预取的数据的多个不连续逻辑地址时,第三字段513可以包括关于多个数据中的每一个数据的逻辑地址的信息和关于对应于每个逻辑地址的数据的长度的信息的列表。在这种情况下,可以响应于一个命令来预取或驱逐多个数据,而不需要调用用于所述多个数据的多个命令,因此处理速度可以增加。
包括在命令510中的第四字段514可以包括指示需要驱逐数据的情况或者需要预取数据的情况的信息。
在一个示例中,第四字段514可以在需要驱逐数据的情况下包括UNLOAD。在另一示例中,第四字段514可以在需要预取数据的情况下包括LOAD。
图5和图6是根据本公开的一些实施例的通过使用计算设备的处理器将与数据驱逐或数据预取相对应的命令***到代码中的方法的示例的视图。
计算设备的处理器100(参照图1)还可以包括:编译器,其被配置为分析代码并将命令***代码中。
编译器可以分析代码并识别出需要驱逐数据的情况或需要预取数据的情况。
例如,参照图5,编译器可以在代码600中识别与存储器释放相关联的命令C,例如,free(idName)。在这种情况下,编译器可以识别出需要驱逐数据的情况。
参照图6,当编译器识别出需要驱逐数据的情况时,编译器可以将对应于驱逐的命令410***到代码600中。这里,可以在与释放内存相关联的命令C之后将对应于驱逐的命令410***到代码600中。
例如,包括在对应于驱逐的命令410中的第一字段可以包括“nvmadvise”作为命令名称,包括在命令410中的第二字段可以包括指示开始地址是“100”和数据长度是“10”的信息,并且包括在命令410中的第三字段可以包括指示需要驱逐数据的情况的UNLOAD。
尽管已经参照图5仅描述了数据的驱逐,但本公开不限于此。当编译器分析代码并识别出需要预取数据的情况时,编译器可以将对应于数据预取的命令***代码中。
同时,尽管未示出,但是根据一些实施例,计算设备的处理器100(参照图1)可以拦截***调用。这里,拦截的***调用可以是用于将关于存储器的存储区域的信息发送到OS的***调用。例如,madvise命令和fadvise命令可以对应于***调用。这里,madvise命令是用于向OS通知以int madvise形式(void*addr,size_t length,int advise)使用内存区域的计划的***调用,而fadvise命令是用于向OS通知使用文件区域的计划的***调用,如madvise命令。
当拦截的***调用是与数据驱逐相关联的命令时,处理器100(参照图1)可以将与数据驱逐相关联的命令转换为上面参照图3或图4描述的命令400或命令510。此外,当拦截的***调用是与预取数据相关联的命令时,处理器100(参照图1)可以将与预取数据相关联的命令转换为上面参照图3或图4描述的命令400或命令510。
例如,假设由处理器100(参照图1)拦截的***调用是madvise命令,madvise命令的第三参数(int advise)可以包括信息MADV_WILLNEED或信息MADV_DONTNEED,信息MADV_WILLNEED指示由第一参数(void*addr)和第二参数(size_t length)定义的存储区域将很快被使用,信息MADV_DONTNEED指示将不再使用该存储区域的。因此,当处理器100(参照图1)确认madvise命令的第三参数包括信息MADV_WILLNEED时,处理器100可识别出需要预取数据的情况并将madvise命令转换为包括第三字段403(参照图3)的nvmadvise命令,第三字段403包括LOAD。另一方面,当处理器100确认madvise命令的第三参数包括信息MADV_DONTNEED时,处理器100可以识别出需要驱逐数据的情况并将madvise命令转换为第三字段403(参照图3)的nvmadvise命令,第三字段403包括UNLOAD。
图7是根据本公开的一些实施例的预取存储在计算设备中的NVDIMM中的数据的方法的示例的流程图。图8和图9是根据本公开的一些实施例的预取存储在计算设备中的NVDIMM中的数据的方法的示例的视图。图10和图11是根据本公开的一些实施例的当在第一数据被预取到第一存储器的状态下接收到修改第一数据的修改命令时修改第一数据的方法的示例的视图。图12和图13是根据本公开的一些实施例的当在第一数据被预取到第一存储器的状态下接收到读取第一数据的读取命令时读取第一数据的方法的示例的视图。
参照图7,处理器100可以识别出需要预取数据的情况(S110)。这里,预取可以指预先将这样的数据提取到具有相对高处理速度的第一存储器并将该数据存储在第一内存中,其中,所述数据存储在NVDIMM 300中包括的第一存储器和第二存储器中具有相对低处理速度的第二存储器中。
在示例中,可以在执行的应用程序的进程或线程中明确定义需要预取数据的情况。
在另一示例中,处理器100可以识别出需要通过拦截和分析***调用来预取数据的情况。由于上面已经参照图5和图6详细描述了该过程,其详细描述将省略。
当处理器100识别出需要预取数据的情况时(S110),处理器100可以将预取命令发送到NVDIMM 300(S120)。这里,预取命令可以是包括以下项的命令:关于要被预取的数据的逻辑地址的第一信息、关于要被预取的数据的长度的第二信息以及指示NVDIMM 300中的预取情况的第三信息。由于已经参照图3或图4详细描述了预取命令,其详细描述将省略。
当NVDIMM 300的控制器310(参照图2)接收到预取命令时,可以将存储在第二存储器370(参照图3)中的要被预取的数据提取并存储在第一存储器360(参照图2)包括的存储空间中(S130)。
例如,参照图8,NVDIMM 300的控制器310可以通过主机接口330接收针对第一数据(数据1)的预取命令。这里,第一数据(数据1)可以是存储在第二存储器370的第一存储空间371a中的数据,第二存储器370具有低于第一存储器360的第一处理速度的第二处理速度以及大于第一存储器360的第一存储容量的第二存储容量。
参照图9,当通过主机接口330接收到针对第一数据(数据1)的预取命令时,控制器310可以基于包括在预取命令中的第一信息和第二信息来识别第二存储器370的第一存储空间371a。此外,控制器310可以将存储在第二存储器370的第一存储空间371a中的第一数据(数据1)提取到第一存储器360,并将第一数据(数据1)存储在第一存储器360的第二存储空间361a中。当第一数据(数据1)存储在第二存储空间361a中时,控制器310还可以存储指示存储第一数据(数据1)的空间是第一存储空间371a和第二存储空间361a的信息。
返回参照图7,当完成第一数据(数据1)的预取时,NVDIMM 300可以经由主机接口330向处理器100发送指示预取完成的信号。处理器100可以接收该信号并识别出已经完成第一数据(数据1)的预取。
根据一些实施例,当要修改或读取数据时,处理器100可以将修改命令或读取命令发送到NVDIMM 300(S140)。当接收到修改命令或读取命令时,NVDIMM 300可以修改或读取预取到具有相对较高处理速度的第一存储器360(参照图2)的数据(S150)。
在下文中,将参照图10和图11描述响应于修改命令而修改数据的方法,将参照图12和图13描述响应于读取命令而读取数据的方法。
参照图10,NVDIMM 300的控制器310可以通过主机接口330接收修改第一数据(数据1)的命令。当通过主机接口330接收到修改第一数据(数据1)的命令时,控制器310可以修改存储在第一存储器360的第二存储空间361a中第一数据(数据1)。
在一个示例中,参照图11,当控制器310接收到修改第一数据(数据1)的命令时,修改后的数据(数据1’)可以存储在第三存储空间361b中,该第三存储空间361b是新的并且与第一存储器360的第二存储空间361a不同。此外,控制器310可以在管理图中存储指示第一数据(数据1)被修改并且修改后的第一数据(数据1’)存储在第三存储空间361b中的信息。这里,管理图可以是被配置为对关于由于逻辑地址而检索的物理地址的信息以及指示数据是否被改变的信息进行管理的图。
在另一示例中,尽管未示出,但是当控制器310接收到修改第一数据(数据1)的命令时,控制器310可以将修改后的第一数据(数据1’)存储在第一存储器360的现有第二存储空间361a中。此外,控制器310可以在管理图中存储指示第一数据(数据1)被改变并且修改后的第一数据(数据1)被存储在第二存储空间361a中的信息。
如上所述,当在要修改的数据被预取到具有高处理速度的第一存储器360之后接收到修改命令时,可以修改存储在具有高处理速度的第一存储器360中的第一数据(数据1),而不是存储在具有低处理速度的第二存储器370中的第一数据(数据1)。因此,用户可能感觉好像他或她正在使用高速和大容量存储器。
尽管未示出,但是在完成第一数据(数据1)的修改之后通过主机接口330接收到读取第一数据(数据1)的命令时,控制器310可以通过主机接口330发送存储在第一存储器360中的修改后的第一数据(数据1’)。
根据一些实施例,除非通过主机接口330接收到驱逐命令,否则存储在第一存储器360中的修改后的第一数据(数据1’)可以不存储在第二存储器370中。
参照图12,NVDIMM 300的控制器310可以通过主机接口330接收读取第一数据(数据1)的命令。
参照图13,当通过主机接口330接收到读取第一数据(数据1)的命令时,控制器310可以发送第一存储器360的第二存储空间361a中的预取的第一数据(数据1)。也就是说,控制器310可以发送存储在具有相对高处理速度的第一存储器360中的第一数据(数据1),而不是存储在具有相对低处理速度的第二存储器370中的第一数据(数据1)。因此,用户可能感觉好像他或她正在使用高速和大容量存储器。
图14是根据本公开的一些实施例的驱逐存储在计算设备中的NVDIMM中的数据的方法的示例的流程图。图15至图19是根据本公开的一些实施例的驱逐存储在计算设备中的NVDIMM中的数据的方法的示例的视图。
参照图14,处理器100可以识别出需要驱逐数据的情况(S210)。这里,数据的驱逐可以指的是驱逐更新后的数据,并将其存储在第二存储器中,其中,所述更新后的数据存储在NVDIMM中包括的第一存储器和第二存储器中具有相对高处理速度的第一存储器中。
在示例中,可以在执行的应用程序的进程或线程中明确定义需要驱逐数据的情况。
在另一个示例中,处理器100可以通过拦截和分析***调用来识别出需要驱逐数据的情况。
当识别出需要驱逐数据的情况时(S210),处理器100可以将驱逐命令发送到NVDIMM 300(S220)。这里,驱逐命令可以是包括以下项的命令:关于在NVDIMM 300中要被驱逐的数据的逻辑地址的第一信息、关于要被驱逐的数据的长度的第二信息以及指示驱逐情况的第三信息。
当接收到驱逐命令时,NVDIMM 300可以经由管理图检查与驱逐命令相关联的数据(S230)。这里,管理图可以是被配置为对关于由于逻辑地址而检索的物理地址的信息以及指示数据是否被改变的信息进行管理的图。
例如,参照图15,控制器310可以通过主机接口330接收针对第一数据(数据1)的驱逐命令。当接收到针对第一数据(数据1)的驱逐命令时,控制器310可以检查管理图并获得关于对应于驱逐命令的第一数据(数据1)的信息。
返回参照图14,NVDIMM 300可以检查管理图(S230)并且识别存储在第一存储器360中的与驱逐命令相关联的数据是否被改变(S240)。
当识别出存储在第一存储器360中的与驱逐命令相关联的数据未被改变时(S240中的否),NVDIMM 300可以将存储与驱逐命令相关联的数据的存储空间从第一存储器360的存储空间改变为可用空间(S270)。
例如,返回参照图15,NVDIMM 300的控制器310可以检查上述管理图并确认存储在第一存储器360的第二存储空间361a中的与驱逐命令相关联的第一数据(数据1)是否与存储在第二存储器370的第一存储空间371a中的与驱逐命令相关联的第一数据(数据1)不同地被改变。
当控制器310识别出存储在第一存储器360中的第一数据(数据1)没有改变时,控制器310可以不将存储在第二存储空间361a中的第一数据(数据1)存储在第二存储器370中。
参照图16,当控制器310识别出存储在第一存储器360中的第一数据(数据1)没有改变时,控制器310可以将第一存储器360的存储有第一数据(数据1)的第二存储空间361a改变为可用空间。
返回参照图14,当NVDIMM 300识别出存储在第一存储器360中的与驱逐命令相关联的数据被改变时(S240中的是),NVDIMM 300可以驱逐存储在第一存储器360中的与驱逐命令相关联的数据并将该数据存储在第二存储器370中(S250)。
随后,NVDIMM 300可以存储指示存储在第一存储器360中的与驱逐命令相关联的数据已被改变的信息(S260)。
在将数据驱逐并存储在第二存储器370中之后,NVDIMM 300可以将存储有与驱逐命令相关联的数据的第一存储器360的存储空间改变为可用空间(S270)。
例如,参照图17,控制器310可以通过主机接口330接收针对第一数据(数据1)的驱逐命令。
当接收到针对第一数据(数据1)的驱逐命令时,控制器310可以经由管理图检查关于与驱逐命令对应的第一数据(数据1)的信息。控制器310可以检查管理图并识别第一数据(数据1)是否被改变。这里,第一数据(数据1)可以是存储在第一存储器360中的数据。
参照图18,当控制器310识别出第一数据(数据1)被改变时,控制器310可以将存储在第二存储空间361a中的与驱逐命令相关联的修改数据(数据1’)驱逐,或将该数据存储在其中存储未修改的第一数据(数据1)的现有第一存储空间371a中或第二存储器370的第四存储空间372a中。在这种情况下,当存储空间改变时,可以删除存储在第一存储空间371a中的未修改的第一数据(数据1)。此外,当数据存储空间改变时,控制器310可以更新指示第一数据(数据1)的存储空间是第四存储空间372a的信息。
参照图19,在将修改后的第一数据(数据1’)驱逐并存储在第二存储器370的第四存储空间372a中之后,控制器310可以将第一存储器360的存储与驱逐命令相关联的数据的第二存储空间361a改变为可用空间。
根据上述实施例,只有必要的数据可以总是留在第一存储器360中,第一存储器360是高速和小容量存储器。
另一方面,返回参照图14,当完成与驱逐命令相关联的数据的驱逐时,NVDIMM 300可以通过主机接口330将指示驱逐完成的信号发送到处理器100。处理器100可以接收该信号并且识别出完成数据的驱逐。
就像本领域中的常规做法那样,可以根据执行所描述的一个或多个功能的块来描述和说明实施例。这些块(这里可称为单元或模块等)在物理上由模拟和/或数字电路(诸如逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子元件、有源电子元件、光学组件、硬连线电路等)实现,并且可以可选地由固件和/或软件驱动。例如,电路可以体现在一个或多个半导体芯片中,或者体现在诸如印刷电路板等的基板支撑件上。构成块的电路可以由专用硬件实现,或者由处理器(例如,一个或多个编程的微处理器和相关电路)实现,或者由执行块的一些功能的专用硬件以及执行块的其他功能的处理器的组合实现。在不脱离本公开的范围的情况下,实施例的每个块可以在物理上分成两个或更多个交互且离散的块。同样地,在不脱离本公开的范围的情况下,可以将实施例的块物理地组合成更复杂的块。
尽管已经参照本公开的示例性实施例具体示出和描述了本公开,但是本领域普通技术人员将理解,在不脱离如权利要求所限定的本公开内容的精神和范围的情况下,可以在形式和细节上进行各种改变。示例性实施例应仅被认为是描述性意义而非出于限制的目的。

Claims (20)

1.一种计算设备,包括:
处理器;以及
连接到所述处理器的非易失性双列直插式存储器模块,其中,所述非易失性双列直插式存储器模块包括:
第一存储器,具有第一处理速度和第一存储容量,
第二存储器,具有低于所述第一处理速度的第二处理速度以及大于所述第一存储容量的第二存储容量,
控制器,用于在所述第一存储器和所述第二存储器之间驱逐或提取数据,以及
主机接口,其中,
响应于识别出用于驱逐数据的第一情况或用于预取数据的第二情况,所述处理器向所述非易失性双列直插式存储器模块发送包括以下信息的命令:与所述第一情况或所述第二情况相关联的数据的逻辑地址的第一信息、与所述第一情况或所述第二情况相关联的数据的长度的第二信息以及指示所述第一情况或所述第二情况的第三信息。
2.如权利要求1所述的计算设备,其中,响应于识别出针对第一数据的所述第一情况,所述处理器向所述非易失性双列直插式存储器模块发送包括以下信息的第一命令:所述第一数据的逻辑地址的信息、所述第一数据的长度的信息以及指示针对所述第一数据的所述第一情况的信息。
3.如权利要求2所述的计算设备,其中,响应于通过所述主机接口接收到所述第一命令,所述控制器检查管理图并检查所述第一数据是否被改变。
4.如权利要求3所述的计算设备,其中:
所述第一数据存储在所述第一存储器的第一存储空间中,
响应于识别出所述第一数据被改变,所述控制器从所述第一存储器中驱逐改变后的所述第一数据,并将改变后的所述第一数据存储在所述第二存储器的第二存储空间中。
5.如权利要求4所述的计算设备,其中,所述控制器将所述第一存储空间改变为可用空间。
6.如权利要求4所述的计算设备,其中,响应于识别出所述第一数据未被改变,所述控制器既不从所述第一存储器中驱逐所述第一数据也不将所述第一数据存储在所述第二存储器中。
7.如权利要求6所述的计算设备,其中,所述控制器将所述第一存储空间改变为可用空间。
8.如权利要求1所述的计算设备,其中,响应于识别出针对第二数据的所述第二情况,所述处理器向所述非易失性双列直插式存储器模块发送包括以下信息的第二命令:所述第二数据的逻辑地址的信息、所述第二数据的长度的信息以及指示针对所述第二数据的所述第二情况的信息。
9.如权利要求8所述的计算设备,其中,响应于通过所述主机接口接收到所述第二命令,所述控制器提取存储在所述第二存储器的第一存储空间中的所述第二数据,并将所述第二数据存储在所述第一存储器的第二存储空间中。
10.如权利要求1所述的计算设备,其中,所述处理器拦截***调用。
11.如权利要求10所述的计算设备,其中,响应于所述***调用是与所述第一情况相关联的命令,所述处理器将所述***调用改变为数据驱逐命令。
12.如权利要求10所述的计算设备,其中,响应于所述***调用是与所述第二情况相关联的命令,所述处理器将所述***调用改变为数据预取命令。
13.一种非易失性双列直插式存储器模块,包括:
第一存储器,具有第一处理速度、第一存储容量以及存储第一数据的第一存储空间;
第二存储器,具有低于所述第一处理速度的第二处理速度,大于所述第一存储容量的第二存储容量以及存储与所述第一数据对应的第二数据的第二存储空间;
控制器,用于在所述第一存储器和所述第二存储器之间驱逐或提取数据;以及
主机接口,其中
响应于通过所述主机接口接收到第一命令,所述控制器检查管理图并检查所述第一数据是否被改变,其中,所述第一命令包括所述第一数据的逻辑地址的第一信息、所述第一数据的长度的第二信息以及指示用于驱逐数据的第一情况的第三信息。
14.如权利要求13所述的非易失性双列直插式存储器模块,其中:
响应于识别出所述第一数据被改变,所述控制器从所述第一存储器中驱逐改变后的所述第一数据并将改变后的所述第一数据存储在所述第二存储器的所述第二存储空间中或与所述第二存储空间不同的第三存储空间中,和
响应于将所述第一数据存储在所述第三存储空间中,所述控制器更新关于所述第二数据的所述第二存储空间的信息。
15.如权利要求14所述的非易失性双列直插式存储器模块,其中,所述控制器将所述第一存储空间改变为可用空间。
16.如权利要求13所述的非易失性双列直插式存储器模块,其中,响应于识别出所述第一数据未被改变,所述控制器既不从所述第一存储器中驱逐所述第一数据也不将所述第一数据存储在所述第二存储器中。
17.如权利要求16所述的非易失性双列直插式存储器模块,其中,所述控制器将所述第二存储空间改变为可用空间。
18.一种非易失性双列直插式存储器模块,包括:
第一存储器,具有第一处理速度和第一存储容量;
第二存储器,具有低于所述第一处理速度的第二处理速度、大于所述第一存储容量的第二存储容量以及存储第一数据的第一存储空间;
控制器,用于在所述第一存储器和所述第二存储器之间驱逐或提取数据;以及
主机接口,其中
响应于通过所述主机接口接收到第一命令,所述控制器从所述第二存储器的所述第一存储空间提取所述第一数据,并且将所述第一数据存储在所述第一存储器内的第二存储空间中,其中,所述第一命令包括所述第一数据的逻辑地址的第一信息、所述第一数据的长度的第二信息以及指示用于预取所述第一数据的第一情况的第三信息。
19.如权利要求18所述的非易失性双列直插式存储器模块,其中,响应于通过所述主机接口接收到读取所述第一数据的第二命令,所述控制器通过所述主机接口发送存储在所述第二存储空间中的所述第一数据。
20.如权利要求18所述的非易失性双列直插式存储器模块,其中,响应于通过所述主机接口接收到修改所述第一数据的第三命令,所述控制器修改存储在所述第一存储器中的所述第一数据。
CN201811204256.9A 2017-11-01 2018-10-16 计算设备和非易失性双列直插式存储器模块 Active CN109753237B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0144577 2017-11-01
KR1020170144577A KR102353859B1 (ko) 2017-11-01 2017-11-01 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈

Publications (2)

Publication Number Publication Date
CN109753237A true CN109753237A (zh) 2019-05-14
CN109753237B CN109753237B (zh) 2024-04-05

Family

ID=66244028

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811204256.9A Active CN109753237B (zh) 2017-11-01 2018-10-16 计算设备和非易失性双列直插式存储器模块

Country Status (3)

Country Link
US (1) US10621098B2 (zh)
KR (1) KR102353859B1 (zh)
CN (1) CN109753237B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486729A (zh) * 2019-09-11 2021-03-12 国际商业机器公司 基于非易失性存储器的操作验证的安全数据提交扫描的调整

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11016669B2 (en) * 2018-05-01 2021-05-25 Qualcomm Incorporated Persistent write data for energy-backed memory

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103890688A (zh) * 2011-07-28 2014-06-25 奈特力斯公司 一种flash-dram混合存储器模块
KR20150055884A (ko) * 2013-11-14 2015-05-22 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 데이터 저장 장치 및 그것의 동작 방법
CN104937577A (zh) * 2013-03-15 2015-09-23 惠普发展公司,有限责任合伙企业 支持扩展写入的存储器模块控制器
CN105164657A (zh) * 2013-04-29 2015-12-16 亚马逊科技公司 程序数据至非易失性存储器的选择性备份
US20160004438A1 (en) * 2014-07-02 2016-01-07 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory and memory controller, and operating method of storage device
WO2016175855A1 (en) * 2015-04-30 2016-11-03 Hewlett Packard Enterprise Development Lp Replicating data using dual-port non-volatile dual in-line memory modules
CN106462520A (zh) * 2014-06-30 2017-02-22 英特尔公司 用于与非易失性双列直插式存储器模块的控制器通信的技术
CN106484571A (zh) * 2015-08-28 2017-03-08 株式会社东芝 存储装置和存储控制方法
CN106776358A (zh) * 2015-10-07 2017-05-31 三星电子株式会社 Dimm ssd寻址性能技术
US20170199814A1 (en) * 2016-01-11 2017-07-13 Qualcomm Incorporated Non-volatile random access system memory with dram program caching
CN107039059A (zh) * 2016-02-01 2017-08-11 三星电子株式会社 存储器封装,包括其的存储器模块及存储器封装操作方法
CN107239367A (zh) * 2016-03-28 2017-10-10 爱思开海力士有限公司 非易失性双列直插式存储器模块及其操作方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311260B1 (en) 1999-02-25 2001-10-30 Nec Research Institute, Inc. Method for perfetching structured data
GB2373595B (en) * 2001-03-15 2005-09-07 Italtel Spa A system of distributed microprocessor interfaces toward macro-cell based designs implemented as ASIC or FPGA bread boarding and relative common bus protocol
US20030105926A1 (en) * 2001-12-03 2003-06-05 International Business Machies Corporation Variable size prefetch cache
US7882307B1 (en) * 2006-04-14 2011-02-01 Tilera Corporation Managing cache memory in a parallel processing environment
US7506119B2 (en) * 2006-05-04 2009-03-17 International Business Machines Corporation Complier assisted victim cache bypassing
US8032711B2 (en) 2006-12-22 2011-10-04 Intel Corporation Prefetching from dynamic random access memory to a static random access memory
US8468151B2 (en) 2010-06-29 2013-06-18 Teradata Us, Inc. Methods and systems for hardware acceleration of database operations and queries based on multiple hardware accelerators
US8775775B1 (en) 2011-03-31 2014-07-08 Emc Corporation Dynamic prefetch throttling for multi-controller systems
US9196334B2 (en) 2012-04-19 2015-11-24 Qualcomm Incorporated Hierarchical memory magnetoresistive random-access memory (MRAM) architecture
US9390018B2 (en) 2012-08-17 2016-07-12 Advanced Micro Devices, Inc. Data cache prefetch hints
KR101667725B1 (ko) * 2013-11-21 2016-10-20 엘지전자 주식회사 무선 전력 전송 장치 및 그 제어 방법
US20150356125A1 (en) 2014-06-06 2015-12-10 Plexistor Ltd. Method for data placement based on a file level operation
ES2642218T3 (es) * 2014-06-27 2017-11-15 Huawei Technologies Co., Ltd. Controlador, aparato de memoria flash y procedimiento para escribir datos en aparato de memoria flash
US9418013B2 (en) 2014-06-30 2016-08-16 Intel Corporation Selective prefetching for a sectored cache
US9639481B2 (en) 2014-08-08 2017-05-02 PernixData, Inc. Systems and methods to manage cache data storage in working memory of computing system
KR102254101B1 (ko) 2014-10-20 2021-05-20 삼성전자주식회사 데이터 처리 시스템 및 이의 동작 방법
US9606926B2 (en) 2014-11-29 2017-03-28 Freescale Semiconductor, Inc. System for pre-fetching data frames using hints from work queue scheduler
US9971693B2 (en) * 2015-05-13 2018-05-15 Ampere Computing Llc Prefetch tag for eviction promotion
JP6458682B2 (ja) 2015-08-24 2019-01-30 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US9934154B2 (en) 2015-12-03 2018-04-03 Samsung Electronics Co., Ltd. Electronic system with memory management mechanism and method of operation thereof
US11636122B2 (en) * 2015-12-30 2023-04-25 Futurewei Technologies, Inc. Method and apparatus for data mining from core traces
KR102646619B1 (ko) * 2016-02-05 2024-03-11 삼성전자주식회사 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 시스템 및 방법
US10866897B2 (en) * 2016-09-26 2020-12-15 Samsung Electronics Co., Ltd. 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
US10268600B2 (en) * 2017-09-12 2019-04-23 Intel Corporation System, apparatus and method for prefetch-aware replacement in a cache memory hierarchy of a processor
US20190138236A1 (en) * 2017-11-09 2019-05-09 Dell Products, Lp System and Method to Reserve Persistent Memory Space in an NVDIMM for NVDIMM Namespace Support

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103890688A (zh) * 2011-07-28 2014-06-25 奈特力斯公司 一种flash-dram混合存储器模块
CN104937577A (zh) * 2013-03-15 2015-09-23 惠普发展公司,有限责任合伙企业 支持扩展写入的存储器模块控制器
CN105164657A (zh) * 2013-04-29 2015-12-16 亚马逊科技公司 程序数据至非易失性存储器的选择性备份
KR20150055884A (ko) * 2013-11-14 2015-05-22 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 데이터 저장 장치 및 그것의 동작 방법
CN106462520A (zh) * 2014-06-30 2017-02-22 英特尔公司 用于与非易失性双列直插式存储器模块的控制器通信的技术
US20160004438A1 (en) * 2014-07-02 2016-01-07 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory and memory controller, and operating method of storage device
WO2016175855A1 (en) * 2015-04-30 2016-11-03 Hewlett Packard Enterprise Development Lp Replicating data using dual-port non-volatile dual in-line memory modules
CN106484571A (zh) * 2015-08-28 2017-03-08 株式会社东芝 存储装置和存储控制方法
CN106776358A (zh) * 2015-10-07 2017-05-31 三星电子株式会社 Dimm ssd寻址性能技术
US20170199814A1 (en) * 2016-01-11 2017-07-13 Qualcomm Incorporated Non-volatile random access system memory with dram program caching
CN107039059A (zh) * 2016-02-01 2017-08-11 三星电子株式会社 存储器封装,包括其的存储器模块及存储器封装操作方法
CN107239367A (zh) * 2016-03-28 2017-10-10 爱思开海力士有限公司 非易失性双列直插式存储器模块及其操作方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486729A (zh) * 2019-09-11 2021-03-12 国际商业机器公司 基于非易失性存储器的操作验证的安全数据提交扫描的调整

Also Published As

Publication number Publication date
CN109753237B (zh) 2024-04-05
US10621098B2 (en) 2020-04-14
KR20190049098A (ko) 2019-05-09
US20190129854A1 (en) 2019-05-02
KR102353859B1 (ko) 2022-01-19

Similar Documents

Publication Publication Date Title
CN100489817C (zh) 具有保护的最近最少使用置换方法及其处理***
US10114556B2 (en) Method and apparatus for improving read performance of a solid state drive
CN105378682A (zh) 持久存储器中数据的观察
CN110781096A (zh) 用于通过预测需求时间来执行垃圾收集的设备和方法
KR20130071849A (ko) 비휘발성 메모리 장치의 블록 관리 방법 및 블록 관리 시스템
US10621097B2 (en) Application and processor guided memory prefetching
CN104346290A (zh) 存储装置、计算机***及其操作方法
CN104714893A (zh) 用于缩放垃圾收集的方法和***
US20180314444A1 (en) Memory device that writes data into a block based on time passage since erasure of data from the block
CN105095116A (zh) 缓存替换的方法、缓存控制器和处理器
CN103999042B (zh) 加载引导数据
CN104756088A (zh) 用于非易失性存储器的灵活磨损管理
US9697111B2 (en) Method of managing dynamic memory reallocation and device performing the method
CN101923518A (zh) 存储器***、操作方法和数据加载的方法
CN107408079A (zh) 带有一致单元的多级别***存储器的存储器控制器
CN108345545A (zh) 在逻辑地址与物理地址之间执行散列式转译的存储装置
KR20210051873A (ko) 컨트롤러 및 메모리 시스템
CN103218312A (zh) 文件访问方法及***
CN104679684B (zh) 半导体器件及其操作方法
US20200151109A1 (en) Storage device for performing map scheduling and electronic device including the same
CN106663059A (zh) 功率感知填充
US8782345B2 (en) Sub-block accessible nonvolatile memory cache
CN109753237A (zh) 计算设备和非易失性双列直插式存储器模块
CN102169464B (zh) 一种用于非易失性存储器的缓存方法、装置及智能卡
US9971549B2 (en) Method of operating a memory device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant