CN111090387B - 存储模块、操作其的方法以及操作控制其的主机的方法 - Google Patents
存储模块、操作其的方法以及操作控制其的主机的方法 Download PDFInfo
- Publication number
- CN111090387B CN111090387B CN201910952640.5A CN201910952640A CN111090387B CN 111090387 B CN111090387 B CN 111090387B CN 201910952640 A CN201910952640 A CN 201910952640A CN 111090387 B CN111090387 B CN 111090387B
- Authority
- CN
- China
- Prior art keywords
- refresh
- reference time
- memory device
- target data
- random access
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
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)
- Computer Security & Cryptography (AREA)
- Dram (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
提供了存储模块、操作其的方法以及操作控制其的主机的方法。所述存储模块包括动态随机存取存储器(DRAM)装置、非易失性存储器装置和高速缓冲存储器。操作所述存储模块的方法包括:响应于外部设备进入页面故障模式,将存储在所述非易失性存储器装置中的目标数据复制到所述高速缓冲存储器;从所述外部设备接收第一刷新命令;以及响应于所述第一刷新命令,在第一刷新参考时间内执行与所述DRAM装置相关联的第一刷新操作,并且将复制到所述高速缓冲存储器的所述目标数据移动到所述DRAM装置。
Description
相关申请的交叉引用
本申请要求于2018年10月24日在韩国知识产权局提交的韩国专利申请No.10-2018-0127261的优先权,通过引用将该申请的全部内容并入本文。
技术领域
本发明构思的实施例涉及半导体存储器,更具体地,涉及存储模块、操作存储模块的方法以及操作控制存储模块的主机的方法。
背景技术
半导体存储器可以被分类为易失性存储器装置和非易失性存储器装置,易失性存储器装置例如,静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM))中存储的数据在电源切断时消失,非易失性存储器装置(例如,闪存装置、相变RAM(PRAM)、磁RAM(MRAM)、电阻RAM(RRAM)或铁电RAM(FRAM))中存储的数据即使在电源切断时也会保留。
正在开发诸如使用非易失性存储器(例如,闪存)的非易失性双列直插式内存模块(NVDIMM)的装置。由于NVDIMM可以连接到与系统的处理器直接相连的DIMM插槽,因此NVDIMM可以提供快速的运行速度。然而,由于与处理器和内存模块之间的接口速度相比,NVDIMM中使用的非易失性存储器提供相对慢的运行速度,因此在访问存储在非易失性存储器中的数据时延迟时间增加。
发明内容
本发明构思的实施例提供具有改善的性能的存储模块、操作存储模块的方法以及操作控制存储模块的主机的方法。
根据一个示例实施例,存储模块包括动态随机存取存储器(DRAM)装置、非易失性存储器装置和高速缓冲存储器。操作所述存储模块的方法包括:响应于外部设备进入页面故障模式,将存储在所述非易失性存储器装置中的目标数据复制到所述高速缓冲存储器;从所述外部设备接收第一刷新命令;以及响应于所述第一刷新命令,在第一刷新参考时间内执行与所述DRAM装置相关联的第一刷新操作,并且将复制到所述高速缓冲存储器的所述目标数据移动到所述DRAM装置。
根据一个示例实施例,存储模块包括:动态随机存取存储器(DRAM)装置,所述DRAM装置通过第一接口与外部设备通信;非易失性存储器装置;高速缓冲存储器;以及控制器,所述控制器耦接到所述第一接口,并且被配置为响应于所述外部设备进入页面故障模式,将目标数据从所述非易失性存储器装置复制到所述高速缓冲存储器。所述DRAM装置被配置为:在第一刷新参考时间内,响应于来自进入所述页面故障模式的所述外部设备的第一刷新命令执行刷新操作,并且所述控制器被配置为将复制到所述高速缓冲存储器的所述目标数据移动到所述DRAM装置。所述第一刷新参考时间比所述DRAM装置执行所述刷新操作所需的最短时间长。
根据一个示例实施例,主机被配置为对包括动态随机存取存储器(DRAM)装置和非易失性存储器装置的存储模块进行控制,并且操作主机的方法包括:当所述DRAM装置中不存在目标数据时进入页面故障模式;响应于进入所述页面故障模式,将刷新参考时间从第一参考时间改变为第二参考时间,所述第二参考时间长于所述第一参考时间;向所述存储模块发送刷新命令;以及在从发送所述刷新命令的时间点开始经过了所述第二参考时间之后,向所述存储模块提供有效命令。
附图说明
通过参照附图详细描述本发明构思的示例实施例,本发明构思的上述以及其他目的和特征将变得显而易见。
图1是例示了根据本发明构思的一个实施例的计算系统的框图。
图2是例示了图1的存储模块的操作的流程图。
图3A和图3B是描绘了根据图2的流程图的操作的示图。
图4是例示了图1的主机的操作的流程图。
图5是描绘了根据图4的流程图的操作的示图。
图6A和图6B是描绘了根据图4的流程图的刷新参考时间的时序图。
图7是例示了图1的主机的操作的流程图。
图8是例示了图1的存储模块的操作的流程图。
图9是例示了图1的存储模块的操作的流程图。
图10是描绘了根据图9的流程图的操作的示图。
图11是例示了根据本发明构思的一个实施例的计算系统的框图。
图12是例示了根据本发明构思的一个实施例的存储模块的示图。
图13是例示了可以应用根据本发明构思的一个实施例的存储模块的用户系统的框图。
图14是例示了可以应用根据本发明构思的一个实施例的存储模块的用户系统的框图。
具体实施方式
现在将参照示出了示例实施例的附图更全面地描述本发明构思的示例实施例。
图1是例示了根据本发明构思的一个实施例的计算系统的框图。参照图1,计算系统100可以包括主机101和存储模块110。在一个示例实施例中,计算系统100可以以如下形式实现:例如,便携式通信终端、个人数字助理(PDA)、便携式多媒体播放器(PMP)、智能手机、可穿戴设备、和/或诸如个人电脑、服务器、工作站或笔记本电脑的计算系统。
主机101可以将数据存储到存储模块110或者可以读取存储在存储模块110中的数据。在一个示例实施例中,主机101可以是包括在计算系统100中的中央处理单元(CPU)或应用处理器(AP)。
存储模块110可以包括存储器装置111、控制器112、非易失性存储器装置113和高速缓冲存储器114。在主机101的控制下,存储器装置111可以存储数据和/或可以输出所存储的数据。
控制器112可以控制包括在存储模块110中的存储器装置111、非易失性存储器装置113和/或高速缓冲存储器114。例如,控制器112可以将存储在非易失性存储器装置113中的数据移动/复制到高速缓冲存储器114,和/或可以将存储在高速缓冲存储器114中的数据移动/复制到非易失性存储器装置113。在一些实施例中,控制器112可以将存储在高速缓冲存储器114中的数据移动/复制到存储器装置111,和/或可以将存储在存储器装置111中的数据移动/复制到高速缓冲存储器114。
非易失性存储器装置113可以在控制器112的控制下运行。例如,非易失性存储器装置113可以被配置为在控制器112的控制下将存储在其中的数据提供给高速缓冲存储器114和/或存储来自高速缓冲存储器114的数据。在一个示例实施例中,非易失性存储器装置113可以是NAND闪存。然而,本发明构思不限于此。例如,非易失性存储器装置113可以用诸如电阻RAM(ReRAM)、相变RAM(PRAM)和磁RAM(MRAM)的各种非易失性存储器装置实现。
高速缓冲存储器114可以在控制器112的控制下运行。例如,高速缓冲存储器114可以被配置为在控制器112的控制下将存储在其中的数据提供给存储器装置111和/或非易失性存储器装置113,和/或存储来自存储器装置111和/或非易失性存储器装置113的数据。
下面,为了便于描述,假设存储器装置111是动态随机存取存储器(DRAM)装置(并且可以被称为DRAM装置111),高速缓冲存储器114是静态RAM(SRAM)装置(并且可以被称为SRAM装置114)。
然而,本发明构思不限于此。例如,存储器装置111和高速缓冲存储器114可以用具有比非易失性存储器装置113更快的运行速度的任何类型的存储器装置来实现。高速缓冲存储器114可以用具有比存储器装置111和非易失性存储器装置113更快的运行速度的任何类型的存储器装置来实现。也就是说,存储器装置111可以具有比非易失性存储器装置113更快的运行速度,并且高速缓冲存储器114可以具有比存储器装置111更快的运行速度。在一个示例实施例中,非易失性存储器装置113可以具有比存储器装置111更大的存储空间。
下面,假设存储模块110基于双倍数据速率(DDR)接口与主机101通信。然而,本发明构思不限于此。例如,存储模块110与主机101之间的接口可以包括诸如以下各种接口中的至少一种:通用串行总线(USB)接口、多媒体卡(MMC)接口、外围组件互连(PCI)接口、高速PCI(PCI-e)接口、高级技术附件(ATA)接口、串行ATA(SATA)接口、并行ATA(PATA)接口、小型计算机系统接口(SCSI)、增强型小磁盘接口(ESDI)、电子集成驱动器(IDE)接口、移动产业处理器接口(MIPI)、高速非易失性存储器(NVM-e)接口以及通用闪存(UFS)接口。所提供的接口类型列表仅是示例,并且在不偏离本发明构思的情况下,可以在主机101与存储模块110之间使用其他类型的接口。
在页面故障模式中,根据本发明构思的一个实施例的存储模块110可以响应于来自主机101的刷新命令来执行数据移动操作。例如,如上所述,主机101可以基于DDR接口访问DRAM装置111。在DRAM装置111中不存在主机101要访问的数据(在下文中被称为“目标数据”)的情况下,主机101可以进入页面故障模式。进入页面故障模式的主机101可以向存储模块110发送刷新命令。
存储模块110的控制器112可以检查在主机101与DRAM装置111之间交换的信号,并且可以确定主机101是否已经进入页面故障模式。例如,包括在控制器112中的数据管理器112a可以检查在主机101与DRAM装置111之间交换的信号,并且可以确定目标数据是否存在于DRAM装置111中。
在目标数据不存在于DRAM装置111中的情况下,主机101可以确定主机101已经进入页面故障模式。在这种情况下,数据管理器112a可以将存储在非易失性存储器装置113中的目标数据移动/复制到SRAM装置114中。在一个示例实施例中,由于在控制器112的控制下在非易失性存储器装置113与SRAM装置114之间执行将数据移动/复制到SRAM装置114,所以主机101和DRAM装置111可以在执行移动/复制的同时正常地执行任何其他操作。
之后,存储模块110可以从主机101接收刷新命令。响应于刷新命令,存储模块110可以对DRAM装置111执行刷新操作,并且可以执行将目标数据从SRAM装置114移动/复制到DRAM装置111的操作。例如,控制器112可以包括刷新命令检测器(REF Det.)112b,该刷新命令检测器112b被配置为检测来自主机101的刷新命令。响应于刷新命令检测器112b的检测结果,控制器112可以执行将目标数据从SRAM装置114移动/复制到DRAM装置111的操作。在一个示例实施例中,可以在刷新参考时间(例如,tRFC)内执行刷新操作和数据移动/复制操作。
如上所述,根据本发明构思的一个实施例的存储模块110可以基于主机101与存储模块110之间的接口来确定主机101是否已经进入页面故障模式;在主机101进入页面故障模式的情况下,存储模块110可以将数据从非易失性存储器装置113移动/复制到SRAM装置114。之后,响应于来自主机101的刷新命令,存储模块110可以在刷新参考时间内执行与DRAM装置111相关联的刷新操作以及将目标数据从SRAM装置114移动/复制到DRAM装置111的操作。
图2是例示了图1的存储模块的操作的流程图。下面,为了便于描述,在页面故障模式中,将数据从非易失性存储器装置113移动/复制到SRAM装置114的操作被称为“准备目标数据的操作”,将数据从SRAM装置114移动/复制到DRAM装置111的操作被称为“迁移目标数据的操作”。然而,以上术语仅是用于描述本发明构思的一个实施例的示例,本发明构思不限于此。
参照图1和图2,在操作S110中,存储模块110可以执行正常操作。例如,存储模块110可以在主机101的控制下执行各种操作(例如,读取操作、写入操作和刷新操作)。
在操作S120中,存储模块110可以确定主机101是否已经进入页面故障模式。例如,在DRAM装置111中不存在主机101请求的数据(即,目标数据)的情况下,主机101可以进入页面故障模式。存储模块110可以基于主机101与存储模块110之间的接口确定主机101是否已经进入页面故障模式。
在一个示例实施例中,主机101可以基于存储在DRAM装置111中的页表(未示出)来确定目标数据是否存在于DRAM装置111中。存储模块110的控制器112可以基于上述接口识别目标数据,并且可以基于存储在DRAM装置111中的页表(未示出)确定目标数据是否存在于DRAM装置111中。在DRAM装置111中不存在目标数据的情况下,主机101可以进入页面故障模式,并且存储模块110可以确定主机101已经进入页面故障模式。
在主机101未进入页面故障模式的情况下,存储模块110可以在主机101的控制下执行正常操作。
在主机101进入页面故障模式的情况下,在操作S130中,存储模块110可以执行准备目标数据的操作。例如,在DRAM装置111中不存在目标数据的情况下,存储模块110的控制器112可以在非易失性存储器装置113中搜索目标数据。控制器112可以将找到的目标数据从非易失性存储器装置113移动/复制到SRAM装置114中。
在操作S140中,存储模块110可以从主机101接收刷新命令REF。例如,进入页面故障模式的主机101可以向存储模块110发送刷新命令REF。
在操作S150中,响应于刷新命令REF,存储模块110可以在刷新参考时间tRFC内执行与DRAM装置111相关联的刷新操作和目标数据迁移操作。例如,从主机101接收到刷新命令REF的时间点开始直到经过了刷新参考时间tRFC为止,才可以从主机101提供任何其他命令或信号。在这个时间(即,刷新参考时间tRFC)内,存储模块110可以对DRAM装置111执行刷新操作,并且可以执行将目标数据从SRAM装置114移动/复制到DRAM装置111的目标数据迁移操作。
在一个示例实施例中,对于DRAM装置111,可以预先确定执行刷新操作所需的最少时间(即,最少刷新参考时间tRFC(分钟))。可以根据DRAM装置111的容量、结构和性能条件来确定最少刷新参考时间tRFC(分钟)。在一个示例实施例中,执行刷新操作和目标数据迁移操作的刷新参考时间tRFC可以比最少刷新参考时间tRFC(分钟)长。
在一个示例实施例中,在执行目标数据迁移操作之后,存储模块110可以更新存储在DRAM装置111中的页表(未示出)。例如,存储模块110可以基于指示目标数据存储在DRAM装置111中的信息来更新页表。然后,主机101可以基于更新后的页表访问存储在DRAM装置111中的目标数据。
在传统的计算系统中,在DRAM装置中不存在目标数据的情况下,主机进入页面故障模式,然后执行从任何其他存储设备获取目标数据的操作。在这种情况下,可能需要用于从任何其他存储设备获取数据的单独的命令,并且在执行上述操作时出现很长的延迟时间。
相比之下,根据本发明构思的一个实施例的存储模块110确定主机101是否已经进入页面故障模式,根据确定结果执行目标数据准备操作,并且响应于来自主机101的刷新命令REF执行目标数据迁移操作。在这种情况下,由于目标数据迁移操作是响应于作为存在于DDR接口中的命令的刷新命令REF而执行的,因此目标数据迁移操作不需要单独的命令。此外,由于目标数据迁移操作涉及将数据从作为高速缓冲存储器的SRAM装置114移动到DRAM装置111的操作,因此与将数据从非易失性存储器装置113直接移动到DRAM装置111的操作相比,可以提高操作速度。此外,由于目标数据准备操作是在控制器112的控制下在非易失性存储器装置113与SRAM装置114之间执行的,因此无论目标数据准备操作如何,主机101与DRAM装置111之间的操作都可以正常执行。换句话说,可以独立于主机101与DRAM装置111之间的操作(例如,读取操作、写入操作和/或刷新操作)来执行目标数据准备操作。也就是说,减少了或不会出现由于目标数据准备操作而被外部识别出的延迟时间。因此,可以减少数据移动所需的额外的时间延迟。因此,根据本发明构思的实施例,提供了一种具有改善的性能的存储模块。
图3A和图3B是描述了根据图2的流程图的操作的示图。为了便于描述,将省略对描述本发明构思的实施例不必要的组件和描述。
参照图1、图3A和图3B,主机101和存储模块110可以执行正常操作[1]。例如,存储模块110的DRAM装置111可以在主机101的控制下执行诸如读取操作、写入操作或刷新操作的正常操作。
当主机101和存储模块110执行正常操作时,主机101可以进入页面故障模式。在这种情况下,控制器112的数据管理器(D/M)112a可以确定主机101已经进入页面故障模式[2]。例如,控制器112可以共享主机101与DRAM装置111之间的接口。也就是说,控制器112可以通过检测主机101与DRAM装置111之间交换的信号和/或信息来确定主机101是否已经进入页面故障模式。
在主机101进入页面故障模式的情况下,控制器112可以执行目标数据准备操作[3]。例如,控制器112可以将存储在非易失性存储器装置113中的目标数据TD移动/复制到SRAM装置114。
然后,如图3B所示,主机101可以向存储模块110发送刷新命令REF[4]。存储模块110的DRAM装置111可以响应于来自主机101的刷新命令REF执行刷新操作[5]。
控制器112可以响应于来自主机101的刷新命令REF执行目标数据迁移操作[6]。例如,控制器112可以包括刷新命令检测器(REF Det.)112b。响应于刷新命令检测器112b的检测结果,控制器112可以将存储在SRAM装置114中的目标数据TD移动到DRAM装置111。
在一个示例实施例中,可以在刷新参考时间tRFC内执行图3B中所示的操作[5]和操作[6]。在一个示例实施例中,在刷新参考时间tRFC内,主机101可以不向存储模块110提供任何命令和/或信号。
在图3B所示的示例中,响应于刷新命令REF对DRAM装置111执行刷新操作,然后执行目标数据迁移操作,但是本发明构思不限于此。例如,可以先响应于刷新命令REF执行目标数据迁移操作,然后可以对DRAM装置111执行刷新操作。在一些实施例中,可以并行地执行目标数据迁移操作和刷新操作(例如,可以同时执行目标数据迁移操作的至少一部分操作和刷新操作的至少一部分操作)。
在一个示例实施例中,可以基于第一数据单元执行目标数据准备操作,可以基于小于第一数据单元的第二数据单元来执行目标数据迁移操作。例如,可以基于数据输入/输出单元(例如,利用具有特定大小的数据输入/输出单元,诸如页面单元或4KB的单元)来执行目标数据准备操作。例如,非易失性存储器装置113可以被配置为基于页面单元(例如,4KB)输入和输出数据。控制器112可以基于页面单元将目标数据从非易失性存储器装置113移动/复制到SRAM装置114。在一个示例实施例中,SRAM装置114可以被配置为具有比非易失性存储器装置113的页面单元更大的存储空间。
在一个示例实施例中,可以基于页面单元和/或基于预设数据单元来执行目标数据迁移操作。例如,控制器112可以通过执行目标数据迁移操作,基于页面单元将存储在SRAM装置114中的目标数据移动/复制到DRAM装置111。
在一些实施例中,控制器112可以通过执行目标数据迁移操作,基于预设数据单元将存储在SRAM装置114中的目标数据移动/复制到DRAM装置111。预设数据单元可以小于页面单元。在这种情况下,控制器112可以通过响应于来自主机101的多个刷新命令REF执行多个目标数据迁移操作,来将目标数据从SRAM装置114移动/复制到DRAM装置111。
在一个示例实施例中,尽管未在附图中示出,但是可以并行地执行DRAM装置111的刷新操作和非易失性存储器装置113与SRAM装置114之间的目标数据准备操作。由于目标数据准备操作是在非易失性存储器装置113与SRAM装置114之间执行的,因此不管目标数据准备操作如何,DRAM装置111都可以正常地执行刷新操作。
如上所述,在DRAM装置111中不存在目标数据的情况下,由于使用了已经被DRAM装置111使用的刷新命令REF和刷新参考时间tRFC,因此可以在不降低性能和/或不出现时间延迟的情况下,将数据从非易失性存储器装置113迁移到DRAM装置111。这意味着提供了具有改善的性能的存储模块。
图4是例示了图1的主机的操作的流程图。为了便于描述,将省略对描述本发明构思的实施例不必要的组件和描述。参照图1和图4,在操作S101中,主机101可以执行正常操作。例如,主机101和存储模块110可以通过DDR接口执行正常操作(例如,读取操作、写入操作或刷新操作)。如本文中所使用的,对“正常”操作的引用不是为了限制,而是仅为了将该操作与诸如与页面故障模式相关联的操作的其他类型的操作区分开。
在操作S102中,主机101可以确定当前模式是否是页面故障模式。例如,主机101可以基于页表确定目标数据是否存储在DRAM装置111中。主机101可以在目标数据存储在DRAM装置111中的情况下执行正常操作,可以在DRAM装置111中不存在目标数据的情况下进入页面故障模式。在一个示例实施例中,存储模块110可以检测页面故障模式,并且可以响应于检测结果执行目标数据准备操作。
在主机101进入页面故障模式的情况下,在操作S103中,主机101可以将刷新参考时间tRFC从第一参考时间tRFC1调整到第二参考时间tRFC2。例如,在主机101执行正常操作的情况下,主机101不会向存储模块110提供任何其他命令和/或信号,直到从向存储模块110发送刷新命令REF的时间点开始经过了第一参考时间tRFC1为止。也就是说,存储模块110可以在第一参考时间tRFC1内执行刷新操作。
相比之下,在主机101进入页面故障模式的情况下,主机101可以将刷新参考时间tRFC调整为比第一参考时间tRFC1长的第二参考时间tRFC2。使刷新参考时间tRFC更长是为了确保存储模块110执行刷新操作和目标数据迁移操作的时间。在一个示例实施例中,可以通过设置主机101的内核层的寄存器值来改变刷新参考时间tRFC。
之后,在操作S104中,主机101可以向存储模块110发送刷新命令REF。在操作S105中,主机101可以确定是否已经经过了第二参考时间tRFC2。例如,如上所述,主机101不会向存储模块110提供任何其他命令和/或信号,直到从发送刷新命令REF的时间点开始经过了第二参考时间tRFC2为止。这是为了确保存储模块110执行刷新操作和目标数据迁移操作的时间。也就是说,响应于刷新命令REF,存储模块110可以执行与DRAM装置111相关联的刷新操作以及目标数据迁移操作。换句话说,可以在第二参考时间tRFC2内执行刷新操作和目标数据迁移操作。
在经过了第二参考时间tRFC2之后,在操作S106中,主机101可以将刷新参考时间tRFC从第二参考时间tRFC2调整到第一参考时间tRFC1。之后,在操作S107中,主机101可以执行正常操作。例如,主机101可以向存储模块110和/或DRAM装置111提供有效命令。在一些实施例中,主机101可以基于第一参考时间tRFC1将刷新命令REF提供给存储模块110和/或DRAM装置111。也就是说,主机101可以在正常操作中将刷新命令REF提供给存储模块110,可以在经过了第一参考时间tRFC1之后向存储模块110和/或DRAM装置111提供任何其他有效命令。
如上所述,根据本发明构思的一个实施例的主机101可以在正常操作中将刷新参考时间tRFC设置为第一参考时间tRFC1,可以在进入页面故障模式时将刷新参考时间tRFC设置为比第一参考时间tRFC1长的第二参考时间tRFC2。也就是说,主机101可以根据操作模式改变刷新参考时间tRFC。在这种情况下,在页面故障模式中,存储模块110可以响应于刷新命令REF在第二参考时间tRFC2内执行刷新操作和目标数据迁移操作。
图5是描述根据图4的流程图的操作的示图。为了便于描述,将省略对描述本发明构思的实施例不必要的组件和描述。而且,为了便于描述,假设根据图5的实施例的主机101处于进入页面故障模式的状态。
参照图1和图5,进入页面故障模式的主机101可以调整刷新参考时间tRFC[1]。例如,主机101可以包括与刷新参考时间tRFC相关联的寄存器101a。寄存器101a可以被包括在主机101的内核层中,和/或可以通过主机101的内核层被访问。主机101可以通过调整寄存器101a的值将刷新参考时间tRFC从第一参考时间tRFC1调整到第二参考时间tRFC2。之后,主机101可以向存储模块110发送刷新命令REF[2],DRAM装置111可以执行刷新操作[3],并且控制器112可以执行目标数据迁移操作[4]。上面描述了操作[2]、操作[3]和操作[4],因此,将省略额外的描述以避免冗余。
在一个示例实施例中,在发送了刷新命令REF然后经过了第二参考时间tRFC2的情况下,主机101可以将寄存器101a的值从第二参考时间tRFC2调整到第一参考时间tRFC1。之后,主机101可以基于第一参考时间tRFC1执行正常操作。
图6A和图6B是描绘了根据图4的流程图的刷新参考时间的时序图。为了便于描述,将省略对描述本发明构思的实施例不必要的组件和描述。
首先,参照图1和图6A,在正常操作中,主机101可以基于第一参考时间tRFC1进行操作。例如,如图6A所示,主机101可以向存储模块110发送刷新命令REF。存储模块110(具体地,DRAM装置111)可以响应于刷新命令REF执行刷新操作。
在正常操作中,主机101可以在从发送刷新命令REF的时间点开始经过了第一参考时间tRFC1之后发送有效命令VA(例如,激活命令ACT)。也就是说,存储模块110可以在第一参考时间tRFC1内执行刷新操作。
相比之下,如图6B所示,在页面故障模式中,主机101可以将刷新参考时间tRFC改变为比第一参考时间tRFC1长的第二参考时间tRFC2。在这种情况下,主机101可以在从发送刷新命令REF的时间点开始经过了第二参考时间tRFC2之后发送有效命令VA。如图6B所示,响应于刷新命令REF,存储模块110可以在第二参考时间tRFC2内执行刷新操作和目标数据(TD)迁移操作。
图7是例示了图1的主机的操作的流程图。为了便于描述,将省略上述组件和与上述组件相关的额外描述以避免冗余。参照图1和图7,主机101可以执行操作S201至操作S205。操作S201至操作S205可以分别类似于图4的操作S101至操作S105。因此,将省略额外的描述以避免冗余。
在发送刷新命令REF之后经过了第二参考时间tRFC2的情况下,在操作S206中,主机101可以执行正常操作。也就是说,主机101可以对存储模块110执行诸如读取操作或写入操作的正常操作。
在一个示例实施例中,在操作S206中,如果主机101在执行正常操作时进入页面故障模式,则主机101可以向存储模块110发送刷新命令REF,并且存储模块110可以响应于刷新命令REF执行刷新操作和目标数据迁移操作。也就是说,在操作S206中执行正常操作时,刷新参考时间tRFC可以对应于第二参考时间tRFC2。
在操作S207中,主机101可以确定与对存储模块110的访问相关联的命中率是否大于第一值V1。例如,在执行正常操作时,主机101可以对DRAM装置111中存在预期数据的事件(即,命中事件)和DRAM装置中不存在预期数据的事件(即,未命中事件)进行计数,并且可以管理与存储模块110相关联的命中率。在一些实施例中,命中率可以是允许将命中事件的数目与未命中事件的数目进行比较的任何值。
在一个示例实施例中,命中率不大于第一值V1可以说明主机101进入页面故障模式的频率高;命中率大于第一值V1可以说明主机101进入页面故障模式的频率低。
也就是说,在命中率不大于第一值V1的情况下,主机101执行正常操作而不改变刷新参考时间tRFC(即,刷新参考时间tRFC保持在第二参考时间tRFC2)。在命中率大于第一值V1的情况下,在操作S208中,主机101可以将刷新参考时间tRFC从第二参考时间tRFC2调整到第一参考时间tRFC1。
如上所述,根据本发明构思的主机101可以在进入页面故障模式时改变刷新参考时间tRFC(即,可以增加tRFC)。在随后的正常操作中如果命中率大于第一值V1,主机101可以恢复刷新参考时间tRFC(即,可以减小tRFC)。因此,在主机101进入页面故障模式的事件不频繁发生的情况下,可以减少刷新参考时间tRFC,从而防止或减少存储模块110的整体性能的降低。
在一个示例实施例中,可以不同地改变或修改诸如与目标数据相关联的命中率的参数。例如,与目标数据相关联的命中率可以改变为以下条件:在没有页面故障的情况下执行正常操作的次数,在进入页面故障模式之后经过的时间,以及主机101在特定持续时间内进入页面故障模式的次数。然而,本发明构思不限于此。
图8是例示了图1的存储模块的操作的流程图。为了便于描述,将省略对描述本发明构思的实施例不必要的组件。参照图1和图8,在操作S210中,存储模块110可以确定数据的属性。例如,控制器112的数据管理器112a可以确定存储在DRAM装置111中的数据的属性和存储在非易失性存储器装置113中的数据的属性。数据的属性可以例如基于以下条件来确定:主机101访问数据的频率、数据的大小、数据的类型(例如,文件类型)和/或数据的保留时间。
在操作S215中,存储模块110可以确定移动数据是否有利。例如,将以下数据移动到DRAM装置111可能是有利的:存储在非易失性存储器装置113中的数据当中的未存储在DRAM装置111中且为主机101频繁访问的目标的数据,和/或存储在非易失性存储器装置113中的数据当中被访问的概率很高的数据。也就是说,通过移动主机101频繁访问的目标数据或具有很高的被主机101访问的概率的数据,可以减少页面故障发生的频率。这意味着存储模块110的整体性能得到改善。
在一些实施例中,可以通过将存储在DRAM装置111中的数据当中的未被主机101访问的数据移动到非易失性存储器装置113,来确保DRAM装置111的可用容量。也就是说,可以通过根据数据属性将数据存储到DRAM装置111和非易失性存储器装置113中的任何一个来改善存储模块110的整体性能。
在移动数据有利的情况下,在操作S220中,存储模块110可以确定数据移动是否对应于从DRAM装置111到非易失性存储器装置113的移动。例如,将存储在DRAM装置111中的数据当中具有低访问频率的数据(例如,冷数据)移动到非易失性存储器装置113是有利的。
相反地,将存储在非易失性存储器装置113中的数据当中具有高访问频率的数据(或具有很高的被访问的概率的数据)(例如,热数据)移动到DRAM装置111是有利的。
在将数据从非易失性存储器(NVM)装置113移动到DRAM装置111(即,操作S220中的否)是有利的情况下,在操作S225中,存储模块110可以执行将数据从非易失性存储器装置113移动到SRAM装置114的数据准备操作。例如,控制器112可以将存储在非易失性存储器装置113中的数据当中作为移动目标的数据(例如,热数据)移动/复制到SRAM装置114。
在一个示例实施例中,由于在控制器112的控制下在非易失性存储器装置113与SRAM装置114之间执行对应于操作S225的数据准备操作,所以不管对应于操作S225的数据准备操作如何,DRAM装置111都可以在主机101的控制下执行正常操作。
之后,在操作S230中,存储模块110可以从主机101接收刷新命令REF。
在操作S235中,响应于刷新命令REF,存储模块110可以在刷新参考时间tRFC内执行刷新操作和数据迁移操作。例如,DRAM装置111可以响应于刷新命令REF执行刷新操作。控制器112可以响应于刷新命令REF将存储在SRAM装置114中的数据(即,热数据)移动/复制到DRAM装置111。在一个示例实施例中,可以在刷新参考时间(例如,tRFC)内执行刷新操作和数据迁移操作。
在将数据从DRAM装置111移动到非易失性存储器装置113(即,操作S220中的是)是有利的情况下,在操作S245中,存储模块110可以从主机101接收刷新命令REF。
在操作S250中,响应于刷新命令REF,存储模块110可以在刷新参考时间tRFC内执行刷新操作和数据准备操作。例如,DRAM装置111可以响应于刷新命令REF执行刷新操作。响应于刷新命令REF,控制器112可以将存储在DRAM装置111中的数据当中具有低访问频率或具有低访问概率的数据(即,冷数据)移动/复制到SRAM装置114。在一个示例实施例中,可以在刷新参考时间tRFC内执行刷新操作和数据准备操作。
然后,在操作S260中,存储模块110可以执行将数据从SRAM装置114迁移到非易失性存储器(NVM)装置113的数据迁移操作。例如,存储模块110可以将存储在SRAM装置114中的数据(例如,冷数据)移动/复制到非易失性存储器装置113。在一个示例实施例中,由于对应于操作S260的数据迁移操作是在控制器112的控制下在SRAM装置114与非易失性存储器装置113之间执行的,所以不管与操作S260相对应的数据迁移操作如何,DRAM装置111都可以在主机101的控制下执行正常操作。
在一个示例实施例中,在操作S235和/或操作S260之后,存储模块110可以更新页表。例如,存储模块110可以基于关于已经在DRAM装置111与非易失性存储器装置113之间移动的特定数据的信息来更新页表。主机101可以基于更新后的页表确定该特定数据是否存在于DRAM装置111中。
图9是例示了图1的存储模块的操作的流程图。图10是描述了根据图9的流程图的操作的示图。为了便于描述,将省略对描述本发明构思的实施例不必要的组件及其描述。
参照图1、图9和图10,可以执行操作S310和操作S330。操作S310至操作S330分别类似于图2的操作S110至操作S130,因此,将省略额外的描述以避免冗余。
在操作S340中,存储模块110可以从主机101接收连续的刷新命令。例如,如图10所示,主机101可以以刷新周期tREFI为间隔向存储模块110发送刷新命令REF。在刷新命令REF之间的间隔(即,tREFI)内,主机101可以与存储模块110(详细地,DRAM装置111)交换各种命令和/或信号,以便执行正常操作。
在主机101进入页面故障模式的情况下,主机101可以在刷新周期tREFI内向存储模块110发送多个刷新命令REF。在这种情况下,可以以刷新参考时间tRFC为间隔提供相应的刷新命令REF。
在操作S350中,响应于连续的刷新命令REF,存储模块110可以在多个刷新参考时间tRFC内执行与DRAM装置111相关联的刷新操作以及目标数据迁移操作。例如,DRAM装置111可以响应于来自主机101的连续的刷新命令REF中的每个刷新命令执行刷新操作。控制器112可以响应于连续的刷新命令REF执行目标数据迁移操作。详细地,如图10所示,控制器112可以响应于在从接收到一个刷新命令的时间点开始经过了刷新参考时间tRFC之后立即接收到的另一个刷新命令,来执行目标数据迁移操作。
如上所述,在以刷新参考时间tRFC为间隔连续接收多个刷新命令REF的情况下,主机101不提供任何其他单独的命令(CMD)或信号。也就是说,当连续提供多个刷新命令REF时,DRAM装置111不会从主机101接收任何其他请求。因此,控制器112可以在除了DRAM装置111执行刷新操作的时间之外的其余时间内执行目标数据迁移操作。在这种情况下,可以在不增加或改变刷新参考时间tRFC的情况下,正常地执行目标数据迁移操作。
图11是例示了根据本发明构思的一个实施例的计算系统的框图。参照图11,计算系统1000可以包括主机1010、内存模块1100和存储模块1200。主机1010可以通过第一信道CH1与内存模块1100通信,可以通过第二信道CH2与存储模块1200通信。在一个示例实施例中,第一信道CH1和第二信道CH2可以是基于DDR接口的信道,但是本发明构思不限于此。
内存模块1100可以在主机1010的控制下操作。在一个示例实施例中,内存模块1100可以是包括DRAM装置的双列直插式内存模块(DIMM)。
存储模块1200可以在主机1010的控制下操作。在一个示例实施例中,
图11的存储模块1200可以是参照图1至图10所描述的存储模块(例如,存储模块110),或者可以基于参照图1至图10所描述的方法进行操作。例如,存储模块1200可以包括DRAM装置、控制器、非易失性存储器装置和SRAM装置。存储模块1200可以根据主机1010的模式(即,页面故障模式)将目标数据从非易失性存储器装置移动到SRAM装置,并且可以响应于来自主机1010的刷新命令REF将数据从SRAM装置移动到DRAM装置。
在一个示例实施例中,主机1010可以通过使用固定的刷新参考时间tRFC来控制内存模块1100。也就是说,主机1010可以通过使用具有预定值的固定的刷新参考时间tRFC来控制内存模块1100。
相比之下,主机1010可以通过使用可变的刷新参考时间tRFC来控制存储模块1200。也就是说,主机1010可以通过使用第一刷新参考时间tRFC1对存储模块1200执行正常操作,可以在页面故障模式中通过使用比第一刷新参考时间tRFC1更长的第二刷新参考时间tRFC2来控制存储模块1200。
在一个示例实施例中,内存模块1100和存储模块1200可以具有与DIMM相同的形状因子(form-factor)。主机1010可以基于来自内存模块1100和存储模块1200中的每个模块中所包括的串行存在检测(SPD)芯片的信息,来确定所连接的模块是正常的内存模块还是存储模块,并且可以根据如上所述的确定结果来控制每个模块。
图12是例示了根据本发明构思的一个实施例的存储模块的示图。参照图12,存储模块2100可以包括多个非易失性存储器装置NVM、多个SRAM装置SRAM、多个DRAM装置DRAM、控制器2110和寄存器时钟驱动器(RCD)2120。
RCD 2120可以从外部设备(例如,主机)接收命令/地址CA和时钟信号CK,并且可以将接收到的信号提供给多个DRAM装置DRAM和控制器2110。
多个DRAM装置DRAM均可以响应于来自RCD 2120的信号,通过数据线DQ和数据选通线DQS与外部设备交换数据。
多个非易失性存储器装置NVM可以在控制器2110的控制下分别与多个SRAM装置SRAM交换数据。多个SRAM装置SRAM可以在控制器2110的控制下分别与多个非易失性存储器装置NVM或多个DRAM装置DRAM交换数据。
在一个实施例中,控制器2110可以是参照图1至图10所描述的控制器(例如,控制器112)。例如,控制器2110可以检测外部设备的页面故障模式,可以根据检测结果执行将目标数据从多个非易失性存储器装置NVM移动/复制到多个SRAM装置SRAM的目标数据准备操作,可以响应于来自外部设备的刷新命令执行将数据从多个SRAM装置SRAM移动/复制到多个DRAM装置DRAM的目标数据迁移操作。
图12以寄存DIMM(RDIMM)的形式示出了存储模块2100,但是本发明构思不限于此。存储模块2100可以以例如DIMM、RDIMM、LRDIMM、UDIMM和NVDIMM的各种形式实现。
图13是例示了可以应用根据本发明构思的一个实施例的存储模块的用户系统的框图。用户系统3000可以包括:例如,计算机、便携式计算机、超移动个人计算机(UMPC)、工作站、服务器计算机、上网本、个人数字助理(PDA)、网络平板、无线电话、移动电话、智能电话、数码相机、数字录音机、数字音频播放器、数码录像机、数码照片播放器、数字录像机、数字视频播放器、可以在无线环境中发送或接收信息的设备、和/或包括家庭网络的各种电子设备中的一种。
用户系统3000可以包括处理器3100、内存模块3210、存储模块3220、芯片组3300、图形处理单元(GPU)3400、输入/输出装置3500和存储设备3600。处理器3100可以控制用户系统3000的整体操作。处理器3100可以执行用户系统3000的各种操作。
内存模块3210和存储模块3220可以与处理器3100连接。在一些实施例中,内存模块3210和存储模块3220可以直接与处理器3100连接。例如,内存模块3210和存储模块3220可以具有双列直插式内存模块(DIMM)的形式,并且内存模块3210和存储模块3220可以安装在与处理器3100连接的DIMM插槽中,并且可以基于DDR接口与处理器3100通信。
在一个示例实施例中,存储模块3220可以是参照图1至图11所描述的存储模块(例如,存储模块110),或者可以以类似于存储模块110的方式操作。在一个示例实施例中,处理器3100可以改变与存储模块3220相关联的刷新参考时间tRFC。
芯片组3300可以电连接到处理器3100,并且可以在处理器3100的控制下控制用户系统3000的硬件。例如,芯片组3300可以通过主总线与GPU 3400、输入/输出装置3500和存储器装置3600连接,并且可以对主总线执行桥接操作。
GPU 3400可以执行用于输出用户系统3000的图像数据的一系列操作。在一个示例实施例中,GPU 3400可以以单片系统的形式嵌入在处理器3100中。
输入/输出装置3500包括能够向用户系统3000输入数据和/或指令、和/或能够将数据输出到外部设备的各种装置。存储设备3600可以用作用户系统3000的高容量存储介质。存储设备3600可以包括例如诸如硬盘驱动器(HDD)、固态硬盘(SSD)、存储卡和记忆棒的高容量存储介质。
图14是例示了可以应用根据本发明构思的一个实施例的存储模块的用户系统的框图。参照图14,用户系统4000可以包括处理器4001、第一内存模块4110、第二内存模块4120、第三内存模块4130和第四内存模块4140(在下文中被称为第一内存模块4110至第四内存模块4140)。
处理器4001可以包括控制器4002,该控制器4002被配置为分别控制第一内存模块4110至第四内存模块4140。在一个示例实施例中,第一内存模块4110至第四内存模块4140中的至少一个内存模块可以是参照图1至图12所描述的存储模块(例如,存储模块110),或者可以以类似于存储模块110的方式操作。
在一个示例实施例中,包括在处理器4001中的控制器4002可以支持参照图1至图12描述的操作存储模块的方法和/或操作主机的方法。例如,处理器4001的控制器4002可以被配置为改变与第一内存模块4110至第四内存模块4140中的存储模块相关联的刷新参考时间tRFC。在一些实施例中,控制器4002可以被配置为执行第一内存模块4110至第四内存模块4140中的存储模块中所包括的控制器的一个或更多个功能。
在一个示例实施例中,控制器4002可以以硬件、软件或它们的组合的形式实现。可以以设备驱动程序的形式提供与控制器4002相关联的操作或功能。
根据本发明构思,在主机进入页面故障模式的情况下,存储模块可以执行将目标数据从非易失性存储器装置移动到高速缓冲存储器的目标数据准备操作,然后可以在刷新参考时间内响应于来自主机的刷新命令,将高速缓冲存储器中的目标数据移动到DRAM装置。在这种情况下,由于目标数据准备操作是独立执行的,目标数据迁移操作是在刷新参考时间内执行的,所以可以在不降低性能的情况下将数据从非易失性存储器装置移动到DRAM装置。因此,提供了具有改善的性能的存储模块、操作存储模块的方法以及操作控制存储模块的主机的方法。
应当理解的是,尽管本文中使用术语“第一”、“第二”等来描述本发明构思的示例实施例中的元件、区域、层、部分、部件、组件和/或元件,但是元件、区域、层、部分、部件、组件和/或元件不应当受这些术语的限制。这些术语仅用于将一个元件、区域、部分、部件、组件或元件与另一个元件、区域、部分、部件、组件或元件区分开。因此,在不脱离本发明构思的范围的情况下,下面描述的第一元件、区域、部分、部件、组件或元件也可以被称为第二元件、区域、部分、部件、组件和/或元件。例如,在不脱离本发明构思的范围的情况下,第一元件也可以被称为第二元件,并且类似地,第二元件也可以被称为第一元件。
本文中使用的术语仅用于描述特定实施例的目的,并不旨在限制示例实施例。如本文中所使用的,单数形式的术语“一”、“一个”“该”也旨在包括复数形式,除非上下文另有明确说明。将进一步理解的是,术语“包括”和/或“包含”(如果在本文中使用)是指存在所述的特征、整数、步骤、操作、元件和/或组件,但不排除存在或添加一个或更多个其他特征、整数、步骤、操作、元件、组件和/或它们的组合。
除非另外定义,否则本文中使用的所有术语(包括技术和科学术语)具有与本发明构思所属领域的普通技术人员通常理解的含义相同的含义。还应理解的是,诸如在常用词典中定义的那些术语应当被解释为具有与其在本说明书的上下文以及相关领域的含义一致的含义,并且将不以理想化或过于形式的意义进行解释,除非本文中明确如此定义。
当某个示例实施例可以不同地实现时,可以与所描述的顺序不同地执行特定的过程顺序。例如,两个连续描述的过程可以基本上同时执行或者以与所描述的顺序相反的顺序执行。
如本文中所使用的,术语“和/或”包括一个或更多个相关所列项的任何和所有组合。当位于元件列表之前时,诸如“至少一个”之类的表述修饰整个元件列表而不修饰列表中的单个元件。
应当理解的是,当一个元件被称为“连接”或“耦接”到另一个元件时,该元件可以直接连接或耦接到另一个元件,或者可以存在中间元件。相比之下,当元件被称为“直接连接”或“直接耦接”到另一个元件时,则不存在中间元件。用于描述元件或层之间关系的其他词语应当以类似的方式解释(例如,“位于……之间”与“直接位于……之间”、“相邻”与“直接相邻”、“位于……之上”与“直接位于……之上”)。
在整个说明书中,相同的附图标记表示相同的元件。因此,即使在相应的附图中既没有提及也没有描绘相同或相似的附图标记,也可以参照其他附图描述它们。而且,可以参照其他附图来描述未用附图标记表示的元件。
尽管已经参照本发明构思的示例实施例描述了本发明构思,但是对于本领域普通技术人员来说显而易见的是,在不脱离如所附权利要求阐述的本发明构思的精神和范围的情况下,可以对其进行各种改变和修改。
Claims (19)
1.一种操作存储模块的方法,所述存储模块包括动态随机存取存储器装置、非易失性存储器装置和高速缓冲存储器,所述方法包括:
响应于外部设备进入页面故障模式,将存储在所述非易失性存储器装置中的目标数据复制到所述高速缓冲存储器;
从所述外部设备接收第一刷新命令;
响应于所述第一刷新命令,在第一刷新参考时间内执行与所述动态随机存取存储器装置相关联的第一刷新操作,并且将复制到所述高速缓冲存储器的所述目标数据移动到所述动态随机存取存储器装置,
当所述外部设备不处于所述页面故障模式时,响应于接收到第二刷新命令,对所述动态随机存取存储器装置执行第二刷新操作;以及
在从接收到所述第二刷新命令的时间点开始经过了第二刷新参考时间之后,从所述外部设备接收第一有效命令,所述第二刷新参考时间比所述第一刷新参考时间短。
2.根据权利要求1所述的方法,其中,从接收到所述第一刷新命令的时间点开始直到经过了所述第一刷新参考时间为止,才从所述外部设备提供信号。
3.根据权利要求1所述的方法,所述方法还包括:
在从接收到所述第一刷新命令的时间点开始经过了所述第一刷新参考时间之后,从所述外部设备接收第二有效命令。
4.根据权利要求1所述的方法,其中,将所述目标数据复制到所述高速缓冲存储器是基于所述非易失性存储器装置的输入/输出数据单元进行的。
5.根据权利要求1所述的方法,其中,所述外部设备是否进入所述页面故障模式是基于页表确定的,所述页表包括关于先前存储在所述动态随机存取存储器装置中的数据的信息。
6.根据权利要求5所述的方法,所述方法还包括:
基于表示所述目标数据被移动到所述动态随机存取存储器装置的信息来更新所述页表。
7.根据权利要求1所述的方法,其中,将存储在所述非易失性存储器装置中的所述目标数据复制到所述高速缓冲存储器是独立于所述外部设备与所述动态随机存取存储器装置之间的操作而执行的。
8.根据权利要求1所述的方法,其中,所述高速缓冲存储器的第一运行速度比所述非易失性存储器装置的第二运行速度快。
9.根据权利要求1所述的方法,其中,所述非易失性存储器装置的第一存储容量大于所述高速缓冲存储器的第二存储容量,并且大于所述动态随机存取存储器装置的第三存储容量。
10.根据权利要求1所述的方法,其中,所述动态随机存取存储器装置和所述外部设备基于双倍数据速率接口彼此通信。
11.一种存储模块,所述存储模块包括:
动态随机存取存储器装置,所述动态随机存取存储器装置被配置为通过第一接口与外部设备通信并响应于来自所述外部设备的刷新命令执行刷新操作;
非易失性存储器装置;
高速缓冲存储器;以及
控制器,所述控制器耦接到所述第一接口并且被配置为:
响应于所述外部设备进入页面故障模式,将目标数据从所述非易失性存储器装置复制到所述高速缓冲存储器,
其中,所述控制器还被配置为,当所述外部设备处于所述页面故障模式时,响应于所述刷新命令将复制到所述高速缓冲存储器的所述目标数据移动到所述动态随机存取存储器装置,
其中,所述动态随机存取存储器装置还被配置为:当所述外部设备处于所述页面故障模式时,在从自所述外部设备接收到所述刷新命令的时间点开始经过了第一刷新参考时间之后,从所述外部设备接收有效命令,所述动态随机存取存储器装置还被配置为:当所述外部设备不处于所述页面故障模式时,在从自所述外部设备接收到所述刷新命令的时间点开始经过了第二刷新参考时间之后,从所述外部设备接收所述有效命令,并且
其中,所述第一刷新参考时间比所述第二刷新参考时间长。
12.根据权利要求11所述的存储模块,其中,从所述外部设备接收到所述刷新命令的所述时间点开始直到经过了所述第一刷新参考时间或所述第二刷新参考时间为止,才通过所述第一接口提供信号。
13.根据权利要求11所述的存储模块,其中,所述动态随机存取存储器装置还被配置为执行与所接收到的有效命令相对应的操作。
14.根据权利要求11所述的存储模块,其中,所述控制器还被配置为:
基于第一数据单元将所述目标数据从所述非易失性存储器装置复制到所述高速缓冲存储器,以及
基于第二数据单元将复制到所述高速缓冲存储器的所述目标数据移动到所述动态随机存取存储器装置,所述第二数据单元与所述第一数据单元相同或比所述第一数据单元小。
15.根据权利要求11所述的存储模块,其中,所述控制器还被配置为:
基于页表确定所述外部设备是否已经进入所述页面故障模式,所述页表包括关于先前存储在所述动态随机存取存储器装置中的数据的信息;以及
在将复制到所述高速缓冲存储器的所述目标数据移动到所述动态随机存取存储器装置之后,基于所述目标数据被移动到所述动态随机存取存储器装置更新所述页表。
16.一种操作主机的方法,所述主机被配置为对包括高速缓冲存储器、动态随机存取存储器装置和非易失性存储器装置的存储模块进行控制,所述方法包括:
当所述动态随机存取存储器装置中不存在目标数据时进入页面故障模式;
响应于进入所述页面故障模式,将刷新参考时间从第一参考时间改变为第二参考时间,所述第二参考时间长于所述第一参考时间;
向所述存储模块发送刷新命令,使得所述存储模块响应于所述刷新命令,将在检测到所述主机进入所述页面故障模式时从所述非易失性存储器装置复制到所述高速缓冲存储器中的所述目标数据移动到所述动态随机存取存储器装置中;以及
在从发送所述刷新命令的时间点开始经过了所述第二参考时间之后,向所述存储模块提供有效命令。
17.根据权利要求16所述的方法,所述方法还包括:
在从发送所述刷新命令的时间点开始经过了所述第二参考时间之后,将所述刷新参考时间从所述第二参考时间改变为所述第一参考时间。
18.根据权利要求16所述的方法,其中,所述目标数据是第一目标数据,所述方法还包括:
确定与所述存储模块中的第二目标数据相关联的命中率;以及
当所述命中率不小于参考值时,将所述刷新参考时间从所述第二参考时间改变为所述第一参考时间。
19.根据权利要求16所述的方法,其中,所述第一参考时间是所述动态随机存取存储器装置执行刷新操作所需的最短时间。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180127261A KR102583266B1 (ko) | 2018-10-24 | 2018-10-24 | 스토리지 모듈, 스토리지 모듈의 동작 방법, 및 스토리지 모듈을 제어하는 호스트의 동작 방법 |
KR10-2018-0127261 | 2018-10-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111090387A CN111090387A (zh) | 2020-05-01 |
CN111090387B true CN111090387B (zh) | 2023-07-28 |
Family
ID=70325293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910952640.5A Active CN111090387B (zh) | 2018-10-24 | 2019-10-09 | 存储模块、操作其的方法以及操作控制其的主机的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10884655B2 (zh) |
KR (1) | KR102583266B1 (zh) |
CN (1) | CN111090387B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11301403B2 (en) * | 2019-03-01 | 2022-04-12 | Micron Technology, Inc. | Command bus in memory |
KR20220091794A (ko) | 2020-12-24 | 2022-07-01 | 삼성전자주식회사 | 반도체 장치 및 이를 포함하는 전자 장치 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1823390A (zh) * | 2003-07-14 | 2006-08-23 | 兹莫斯技术有限公司 | 1t1c sram |
KR20110076116A (ko) * | 2009-12-29 | 2011-07-06 | 주식회사 프롬나이 | Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법 |
CN102820049A (zh) * | 2011-06-09 | 2012-12-12 | 三星电子株式会社 | 用于刷新以及数据清理存储器件的方法和装置 |
CN107015628A (zh) * | 2017-03-30 | 2017-08-04 | 中国科学院计算技术研究所 | 一种面向近似应用的低开销dram刷新方法及系统 |
US9779016B1 (en) * | 2012-07-25 | 2017-10-03 | Smart Modular Technologies, Inc. | Computing system with backup and recovery mechanism and method of operation thereof |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101612922B1 (ko) * | 2009-06-09 | 2016-04-15 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템 관리 방법 |
US9552175B2 (en) | 2011-02-08 | 2017-01-24 | Diablo Technologies Inc. | System and method for providing a command buffer in a memory system |
US20140101370A1 (en) | 2012-10-08 | 2014-04-10 | HGST Netherlands B.V. | Apparatus and method for low power low latency high capacity storage class memory |
US9189387B1 (en) | 2013-06-24 | 2015-11-17 | Emc Corporation | Combined memory and storage tiering |
US9478274B1 (en) | 2014-05-28 | 2016-10-25 | Emc Corporation | Methods and apparatus for multiple memory maps and multiple page caches in tiered memory |
CN105808455B (zh) | 2014-12-31 | 2020-04-28 | 华为技术有限公司 | 访问内存的方法、存储级内存及计算机系统 |
US9916241B2 (en) | 2015-08-14 | 2018-03-13 | Netapp, Inc. | Storage controller caching using symmetric storage class memory devices |
US9852060B2 (en) | 2016-03-31 | 2017-12-26 | Dell Products L.P. | Storage class memory (SCM) memory mode cache system |
US20180011714A1 (en) | 2016-07-08 | 2018-01-11 | Super Micro Computer, Inc. | Graceful shutdown with asynchronous dram refresh of non-volatile dual in-line memory module |
KR102392844B1 (ko) * | 2017-03-10 | 2022-05-03 | 삼성전자주식회사 | 메모리 컨트롤러 및 그것을 포함하는 저장 장치 |
US10545692B2 (en) * | 2017-04-04 | 2020-01-28 | Sandisk Technologies Llc | Memory maintenance operations during refresh window |
US11030132B2 (en) * | 2018-02-05 | 2021-06-08 | Micron Technology, Inc. | Synchronous memory bus access to storage media |
-
2018
- 2018-10-24 KR KR1020180127261A patent/KR102583266B1/ko active IP Right Grant
-
2019
- 2019-04-17 US US16/386,645 patent/US10884655B2/en active Active
- 2019-10-09 CN CN201910952640.5A patent/CN111090387B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1823390A (zh) * | 2003-07-14 | 2006-08-23 | 兹莫斯技术有限公司 | 1t1c sram |
KR20110076116A (ko) * | 2009-12-29 | 2011-07-06 | 주식회사 프롬나이 | Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법 |
CN102820049A (zh) * | 2011-06-09 | 2012-12-12 | 三星电子株式会社 | 用于刷新以及数据清理存储器件的方法和装置 |
US9779016B1 (en) * | 2012-07-25 | 2017-10-03 | Smart Modular Technologies, Inc. | Computing system with backup and recovery mechanism and method of operation thereof |
CN107015628A (zh) * | 2017-03-30 | 2017-08-04 | 中国科学院计算技术研究所 | 一种面向近似应用的低开销dram刷新方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20200133565A1 (en) | 2020-04-30 |
US10884655B2 (en) | 2021-01-05 |
KR20200047814A (ko) | 2020-05-08 |
KR102583266B1 (ko) | 2023-09-27 |
CN111090387A (zh) | 2020-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10649894B2 (en) | Nonvolatile memory module and operation method thereof | |
US9824734B2 (en) | Nonvolatile memory module having backup function | |
US10509602B2 (en) | Data storage device and operating method thereof | |
JP5344411B2 (ja) | シリアルインターフェースメモリの同時読み出し及び書き込みメモリ動作 | |
KR102362229B1 (ko) | 메모리 컨트롤러, 메모리 시스템 및 메모리 컨트롤러를 포함하는 어플리케이션 프로세서 | |
US9336855B2 (en) | Methods and systems for smart refresh of dynamic random access memory | |
US10559335B2 (en) | Method of training drive strength, ODT of memory device, computing system performing the same and system-on-chip performing the same | |
US20220140829A1 (en) | Apparatus for transmitting and receiving a signal, a method of operating the same, a memory device, and a method of operating the memory device | |
US8935467B2 (en) | Memory system, and a method of controlling an operation thereof | |
US10929064B2 (en) | Methods of operating mixed device type memory modules, and processors and systems configured for operating the same | |
US20200218653A1 (en) | Controller, data storage device, and operating method thereof | |
KR102592796B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20190083148A (ko) | 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템 | |
CN111090387B (zh) | 存储模块、操作其的方法以及操作控制其的主机的方法 | |
US20230128653A1 (en) | Memory device and method for controlling row hammer | |
KR20200114212A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20170371785A1 (en) | Techniques for Write Commands to a Storage Device | |
US20170147230A1 (en) | Memory device and memory system having heterogeneous memories | |
CN114464225A (zh) | 存储装置及其操作方法 | |
KR20210028405A (ko) | 서치 회로 및 컨트롤러 | |
US11450394B2 (en) | Controller and operating method thereof | |
KR20200034312A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20230147402A1 (en) | Memory system, refresh control circuit, and refresh control method | |
US11397699B2 (en) | Interrupt coalescing protection logic | |
US11854648B2 (en) | Method of resetting storage device, storage device performing the same and data center including the same |
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 |