CN114764396A - 数据存储装置及其操作方法 - Google Patents
数据存储装置及其操作方法 Download PDFInfo
- Publication number
- CN114764396A CN114764396A CN202111207662.2A CN202111207662A CN114764396A CN 114764396 A CN114764396 A CN 114764396A CN 202111207662 A CN202111207662 A CN 202111207662A CN 114764396 A CN114764396 A CN 114764396A
- Authority
- CN
- China
- Prior art keywords
- block
- garbage collection
- open
- data storage
- open block
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- 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/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
-
- 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/7211—Wear leveling
Abstract
本公开涉及一种数据存储装置,该数据存储装置包括:非易失性存储器设备,包括被分配作为用于垃圾收集以外的目的的第一开放块的多个存储块;以及控制器。控制器被配置为在将非易失性存储器设备切换到垃圾收集模式时,在第一开放块之中分配用于执行垃圾收集操作的垃圾收集的开放块,并且在垃圾收集操作期间,复制牺牲块的有效页面中存储的数据,将所复制的数据存储到用于垃圾收集的开放块中,并且擦除牺牲块,从而获得空闲块。
Description
相关申请的交叉引用
本申请要求于2021年1月15日提交的申请号为10-2021-0005807的韩国申请的优先权,该韩国申请通过引用整体并入本文。
技术领域
本公开的各个实施例总体上涉及一种半导体设备,并且更特别地,涉及一种数据存储装置及其操作方法。
背景技术
使用存储器设备的数据存储装置的优点在于:由于没有机械驱动单元而稳定性和耐久性优异,信息访问速度很快并且功耗较低。具有这些优点的数据存储装置的示例可以包括通用串行总线(USB)存储器设备、具有各种接口的存储卡、通用闪存(UFS)装置和固态驱动器。
垃圾收集是获得空闲块的操作。当数据存储装置没有足够的时间进行垃圾收集操作或者由于断电、恢复、清除过程等的重复,可能难以获得空闲块。
发明内容
本公开的各个实施例旨在提供一种具有改进的空闲块获得性能的数据存储装置及其操作方法。
在本公开的实施例中,一种数据存储装置可以包括:非易失性存储器设备,包括多个存储块,多个存储块被分配作为用于垃圾收集以外的目的的第一开放块;以及控制器,被配置为在将非易失性存储器设备切换到垃圾收集模式时,在第一开放块之中分配用于执行垃圾收集操作的用于垃圾收集的开放块,并且在垃圾收集操作期间,复制牺牲块的有效页面中存储的数据,将所复制的数据存储到用于垃圾收集的开放块中,并且擦除牺牲块,从而获得空闲块。
在本公开的实施例中,一种数据处理系统可以包括:主机,被配置为根据预设条件来生成用于仅执行垃圾收集操作的垃圾收集请求;以及数据存储装置,被配置为当由于接收到垃圾收集请求而切换到垃圾收集模式时,在用于垃圾收集以外的目的的第一开放块之中分配用于执行垃圾收集操作的用于垃圾收集的开放块。
在本公开的实施例中,一种数据存储装置可以包括:非易失性存储器设备,包括开放块;以及控制器,被配置为控制非易失性存储器设备以利用开放块执行垃圾收集操作、损耗均衡操作、读取回收操作和主机写入操作中的任意一个。非易失性存储器设备在不执行损耗均衡操作、读取回收操作和主机写入操作中的任意一个时执行垃圾收集操作。
根据本实施例,由于稳定地获得空闲块,因此可以预期可以缩短针对来自主机的数据写入指令的操作处理时间。
此外,根据本实施例,由于在垃圾收集操作期间使用了用于垃圾收集以外的目的的开放块而不是空闲块,因此可以防止空闲块被不必要地消耗,从而稳定地保持获得空闲块的状态。
附图说明
图1是示出根据本公开的实施例的数据存储装置的配置的示图。
图2和图3是描述根据本公开的实施例的获得空闲块的方法的示图。
图4和图5是描述根据本公开的实施例的选择牺牲块的方法的示图。
图6是描述根据本公开的实施例的获得空闲块的另一方法的示图。
图7是描述根据本公开的实施例的执行垃圾收集的方法的示图。
图8是示出根据本公开的实施例的数据处理系统的配置的示图。
图9示出根据本公开的实施例的包括固态驱动器(SSD)的数据处理系统的示图。
图10是示出根据本公开的实施例的图9的控制器的配置的示图。
图11是示出包括根据本公开的实施例的数据存储装置的数据处理系统的示图。
图12是示出包括根据本公开的实施例的数据存储装置的数据处理系统的示例性示图。
图13是示出包括根据本公开的实施例的数据存储装置的网络系统的示图。
图14是示出根据本公开的实施例的数据存储装置中包括的非易失性存储器设备的示图。
具体实施方式
在下文中,将参照附图描述各个实施例。
图1是示出根据本公开的实施例的数据存储装置10的配置的示图。
参照图1,根据本实施例的数据存储装置10可以存储由诸如蜂窝电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视机和车载信息娱乐系统的主机(未示出)访问的数据。数据存储装置10也可以称为存储器系统。
根据连接到主机的接口协议,数据存储装置10可以被制造为各种类型的存储装置中的任意一种。例如,数据存储装置10可以被配置为诸如以下的各种类型的存储装置中的任意一种:固态驱动器(SSD)、MMC、eMMC、RS-MMC或微型MMC形式的多媒体卡,SD、迷你SD或微型SD形式的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡形式的存储装置,外围组件互连(PCI)卡形式的存储装置,高速PCI(PCI-E)卡、紧凑型闪存(CF)卡、智能媒体卡和记忆棒形式的存储装置。
数据存储装置10可以被制造为各种类型的封装中的任意一种。例如,数据存储装置10可以被制造为诸如以下的各种类型的封装中的任意一种:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)或者晶圆级堆叠封装(WSP)。
数据存储装置10可以包括非易失性存储器设备100和控制器200。
参照图1,非易失性存储器设备100可以包括被分配作为用于垃圾收集以外的目的的第一开放块的多个存储块。
此外,除了第一开放块之外,非易失性存储器设备100还可以包括用于垃圾收集的开放块GC open block。在这种情况下,用于垃圾收集的开放块GC open block可以指存储块,牺牲块的有效页面中的数据被复制到该存储块中。
第一开放块可以包括用于内部操作的开放块以及用于主机写入的开放块Hostopen block,该内部操作包括损耗均衡操作和读取回收操作。
用于主机写入的开放块Host open block可以是用于写入从主机(未示出)传输的数据的主机写入操作的开放块。用于内部操作的开放块也可以是用于损耗均衡的开放块WLopen block或者是用于读取回收的开放块。用于损耗均衡的开放块WL open block可以用于损耗均衡操作。用于读取回收的开放块可以用于读取回收操作。
上述的第一开放块是指为垃圾收集以外的目的而分配的开放块,并且除了上述损耗均衡、读取回收和主机写入之外,还可以包括用于垃圾收集以外的目的的开放块。
每个开放块的使用可以被设置为当数据在控制器200的控制下首先被存储在非易失性存储器设备100中时使用的目的,但不限于此。对开放块的使用进行分类可以用于通过根据待存储的数据的属性来区分和管理开放块来延长存储器的寿命。
上述的块是指同时执行擦除操作的多个数据页面单元,并且被作为一个单元进行管理的多个块单元称为超级块。因此,非易失性存储器设备100中的数据存储区域可以指管芯(Die)、平面、超级块、块、数据页面等。本实施例中公开的块可以是单个块或超级块。
非易失性存储器设备100可以作为数据存储装置10的存储介质操作。非易失性存储器设备100可以被配置为诸如以下的各种类型的非易失性存储器设备中的任意一种:NAND闪速存储器设备、NOR闪速存储器设备、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧道磁阻(TMR)层的磁性随机存取存储器(MRAM)、使用硫族化物合金的相变随机存取存储器(PRAM)和使用过渡金属氧化物的电阻式随机存取存储器(ReRAM)。
非易失性存储器设备100可以包括具有多个存储器单元的存储器单元阵列(未示出),该多个存储器单元分别布置在多条位线(未示出)和多条字线(未示出)的交叉区域中。例如,存储器单元阵列中的每个存储器单元可以是存储一位数据的单层单元(SLC)、能够存储两位数据的多层单元(MLC)、能够存储三位数据的三层单元(TLC)或者能够存储四位数据的四层单元(QLC)。存储器单元阵列可以包括单层单元、多层单元、三层单元和四层单元中的至少一个。例如,存储器单元阵列可以包括具有二维水平结构的存储器单元或具有三维垂直结构的存储器单元。
控制器200可以通过驱动存储器230上加载的固件或软件来控制数据存储装置10的全部操作。控制器200可以解码并且驱动诸如固件或软件的代码类型指令或算法。控制器200可以被实现为硬件或者硬件和软件的结合。
当将非易失性存储器设备100切换到垃圾收集模式时,控制器200可以在第一开放块之中分配用于执行垃圾收集操作的用于垃圾收集的开放块GC open block,并且在垃圾收集操作期间,复制牺牲块的有效页面中存储的数据,将所复制的数据存储到用于垃圾收集的开放块GC open block中,并且擦除牺牲块,从而获得空闲块。
可以通过将包括有效页面和无效页面的块中的有效页面复制到用于垃圾收集的开放块GC open block中并且删除或擦除包括无效页面的块来执行上述垃圾收集操作。删除后的块或擦除后的块可以称为空闲块。
具体地,控制器200可以包括主机接口210、处理器220、存储器230和存储器接口240。尽管图1中未示出,但是控制器200进一步可以包括错误校正码(ECC)引擎,错误校正码(ECC)引擎通过对从主机提供的写入数据进行ECC编码来生成奇偶校验,并且通过使用奇偶校验对从非易失性存储器设备100读取的读取数据进行ECC解码。ECC引擎可以设置在存储器接口240的内部或外部。
主机接口210可以作为主机和与主机的协议相对应的数据存储装置10之间的接口。例如,主机接口210可以通过诸如以下的协议中的任意一个与主机通信:通用串行总线(USB)、通用闪存(UFS)、多媒体卡(MMC)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、外围组件互连(PCI)和高速PCI(PCI-E)。
在本实施例中,当将非易失性存储器设备100切换到垃圾收集模式时,处理器220可以不使用来自空闲块之中的用于垃圾收集的开放块,而是使用用于垃圾收集以外的目的(例如,主机写入、损耗均衡、读取回收等)的开放块,作为用于垃圾收集的开放块。
具体地,当将非易失性存储器设备100切换到垃圾收集模式时,处理器220可以在第一开放块之中分配用于执行垃圾收集操作的用于垃圾收集的开放块GC open block。在这种情况下,第一开放块可以指用于垃圾收集以外的目的的开放块。
本实施例中公开的垃圾收集模式可以指停止主机写入和内部操作并且仅执行垃圾收集操作的模式。
根据本实施例,即使当为了获得空闲块而执行垃圾收集操作时,也可以通过将除了空闲块之外的用于垃圾收集以外的目的的开放块分配作为用于垃圾收集的开放块GCopen block来减少空闲块消耗。
当非易失性存储器设备100中的空闲块的总数量等于或小于参考数量时或者当接收到从主机(未示出)传送的垃圾收集请求时,处理器220可以将非易失性存储器设备100切换到仅执行垃圾收集操作的垃圾收集模式。
在垃圾收集操作期间,处理器220可以复制牺牲块的有效页面中存储的数据,将复制的数据存储到用于垃圾收集的开放块GC open block中,并且擦除牺牲块,从而获得空闲块。
图2和图3是描述根据本公开的实施例的获得空闲块的方法的示图。图2示出执行垃圾收集操作的示例,图3示出从第一开放块中选择用于垃圾收集的开放块GC open block的示例。
如图2所示,在非易失性存储器设备100中已经分配了用于主机写入的开放块Hostopen block、用于损耗均衡的开放块WL open block、用于垃圾收集的开放块GC openblock和空闲块Free block#1至Free block#3的状态下,处理器220可以执行垃圾收集操作。在这种情况下,图2的Free block#1至Free block#3被示出为在擦除之前存在无效页面的状态;然而,本公开不限于此,并且其他状态(例如,擦除状态)也是可能的。
如图3所示,当上一个用于垃圾收集的开放块Prev GC open block的存储空间不足并且需要分配下一个用于垃圾收集的开放块时,或者当首先需要分配用于垃圾收集的开放块时,处理器220可以分配用于垃圾收集以外的目的的开放块(例如,用于损耗均衡的开放块WL open block)作为用于垃圾收集的开放块GC open block。在这种情况下,所选择的用于损耗均衡的开放块WL open block可以是先前已经执行了损耗均衡操作的用于损耗均衡的开放块WL open block,即已经写入数据的开放块。
处理器220可以重复地执行垃圾收集操作,直到空闲块的总数量等于参考数量。例如,当空闲块的总数量为3并且参考数量为6时,处理器220可以执行垃圾收集操作直到进一步获得三个空闲块。
图4和图5是描述根据本公开的实施例的选择牺牲块的方法的示图。图4示出候选牺牲块包括仅包含一个块的单个块的示例,图5示出候选牺牲块是超级块的示例。
当在垃圾收集操作期间选择牺牲块时,处理器220可以在多个候选牺牲块之中按照有效页面的数量的升序来选择数量对应于参考数量与空闲块的总数量之间的差值的牺牲块。
参照图4,当参考数量为6并且空闲块的总数量为4时,处理器220需要另外获得两个空闲块,并且可以在候选牺牲块Free block#0至Free block#2之中按照有效页面的数量的升序来选择Free block#0和Free block#2作为牺牲块。换言之,Free block#1的有效页面的数量可以大于Free block#2的有效页面的数量,并且Free block#2的有效页面的数量可以大于Free block#0的有效页面的数量。
参照图5,当参考数量为6并且空闲块的总数量为4时,处理器220需要另外获得两个空闲块,并且可以在候选牺牲块Super block#0至Super block#2之中按照有效页面的数量的升序来选择Super block#0和Super block#2作为牺牲块。换言之,Super block#1的有效页面的数量可以大于Super block#2的有效页面的数量,并且Super block#2的有效页面的数量可以大于Super block#0的有效页面的数量。
在这种情况下,当候选牺牲块是一个超级块或多个超级块时,可以基于被分组到相同组中的超级块的所有有效页面的数量来选择牺牲块。
在垃圾收集操作期间,处理器220可以检查用于垃圾收集的开放块GC open block的空闲空间和牺牲块的有效页面的数量,并且确定所检查的空闲空间是否可以存储牺牲块的有效页面中存储的所有数据。
如果牺牲块包括至少一个超级块,则处理器220可以将该至少一个超级块的所有有效页面的数量与用于垃圾收集的开放块GC open block的空闲空间进行比较。
例如,参照图3,当超级块①是牺牲块时,处理器220可以将超级块①的有效页面的数量与用于垃圾收集的开放块GC open block的空闲空间进行比较。也就是说,处理器220检查超级块①的有效页面中的所有数据是否可以复制到用于垃圾收集的开放块GC openblock中。
当无法将存储在牺牲块的有效页面中的所有数据存储在用于垃圾收集的开放块GC open block的空闲空间中时,如果在牺牲块的有效页面被复制到开放块GC open block的同时用于垃圾收集的开放块GC open block的空闲空间被减少到小于预设参考值,则处理器220可以在第一开放块之中分配下一个用于垃圾收集的开放块。在这种情况下,分配下一个用于垃圾收集的开放块是为了能够连续执行垃圾收集操作。
图6是描述根据本公开的实施例的获得空闲块的方法的示图。
当将非易失性存储器设备100切换到垃圾收集模式时,处理器220可以通过将为主机写入和内部操作保留的空闲块添加到空闲块列表来增加空闲块的总数量。
在这种情况下,为主机写入和内部操作保留的空闲块可以指在被擦除之后尚未写入数据的块。也就是说,为主机写入和内部操作保留的空闲块是指为主机写入和内部操作分配的但尚未用于主机写入和内部操作的块。
例如,参照图6,当存在三个空闲块Free block#1至Free block#3时,处理器220可以在将非易失性存储器设备100切换到垃圾收集模式之前将下一个用于主机写入的开放块Host next open block和下一个用于损耗均衡的开放块WL next open block分别分配作为Free block#4和Free block#5,Host next open block和WL next open block是处于作为为垃圾收集以外的目的分配的空闲块的状态下的开放块。
处理器220可以将处于作为为垃圾收集以外的目的分配的空闲块的状态下的开放块分配作为空闲块,然后将空闲块添加到空闲块列表中。
参照图6,在存在3个空闲块Free block#1至Free block#3的状态下,通过另外地获得Free block#4和Free block#5,空闲块的数量增加到5。
图7是描述根据本公开的实施例的执行垃圾收集的方法的示图。
在垃圾收集操作期间,处理器220可以通过参考映射表来确定用于垃圾收集的开放块GC open block的最终写入位置,然后将牺牲块的有效页面中存储的数据存储到所确定的最终写入位置之后的位置。
在这种情况下,映射表可以包括匹配了每个数据块的逻辑地址和物理地址的数据写入信息。
如图7所示,处理器220可以确定用于垃圾收集以外的目的的开放块(例如,用于损耗均衡的开放块WL open block)中的被分配作为用于垃圾收集的开放块GC open block的块的最终写入位置,然后将有效数据存储到该最终写入位置之后的位置。
参照图1至图7公开的第一开放块、牺牲块、空闲块和用于垃圾收集的开放块GCopen block均可以是包括至少两个块的超级块或包括一个块的单个块。
重新参照图1,处理器220可以由微控制单元(MCU)和中央处理单元(CPU)组成。处理器220可以处理从主机传输的请求。为了处理从主机传输的请求,处理器220可以驱动存储器230上加载的代码类型指令或算法,即固件,并且控制诸如主机接口210、存储器230、存储器接口240和非易失性存储器设备100的内部装置的操作。
处理器220可以基于从主机传输的请求来生成用于控制非易失性存储器设备100的操作的控制信号,并且通过存储器接口240向非易失性存储器设备100提供所生成的控制信号。
存储器230可以由诸如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)的随机存取存储器组成。存储器230可以存储由处理器220驱动的固件。此外,存储器230可以存储驱动固件所需的数据,例如,元数据。也就是说,存储器230可以作为处理器220的工作存储器操作。尽管图1中未示出,但是处理器220可以进一步包括邻近处理器220设置的处理器专用存储器,并且存储器230中存储的固件和元数据也可以加载到处理器专用存储器上。
元数据可以指诸如固件代码、地址映射数据的由直接控制非易失性存储器设备100的控制器200生成并且使用的数据以及用于管理用户数据的数据。由于元数据由控制器200生成,因此元数据可以从控制器200提供。
用户数据可以指诸如应用程序代码和文件的由用户控制的主机的软件层生成并且使用的数据。用户数据由主机的软件层生成,但可以应主机的请求从控制器200提供。
存储器230可以被配置为包括数据缓冲器,该数据缓冲器用于临时存储待从主机传输到非易失性存储器设备100的写入数据,或待从非易失性存储器设备100读取并且待传输到主机的读取数据。也就是说,存储器230可以作为缓冲存储器操作。
图1示出存储器230设置在控制器200内部的示例;然而,存储器230还可以设置在控制器200外部。
存储器接口240可以在处理器220的控制下控制非易失性存储器设备100。当非易失性存储器设备100被配置为NAND闪速存储器时,存储器接口240还可以称为闪存控制顶部(flash control top,FCT)。存储器接口240可以将由处理器220生成的控制信号传输到非易失性存储器设备100。控制信号可以包括用于控制非易失性存储器设备100的操作的命令、地址、操作控制信号等。操作控制信号可以包括,例如,芯片使能信号、命令锁存使能信号、地址锁存使能信号、写入使能信号、读取使能信号、数据选通信号等,但是不特别限于此。此外,存储器接口240可以将写入数据传输到非易失性存储器设备100或者从非易失性存储器设备100接收读取数据。
存储器接口240和非易失性存储器设备100可以通过多个通道CH1至CHn电连接。存储器接口240可以通过多个通道CH1至CHn将诸如命令、地址、操作控制信号和数据(即,写入数据)的信号传输到非易失性存储器设备100。此外,存储器接口240可以通过多个通道CH1至CHn从非易失性存储器设备100接收状态信号(例如,就绪/忙碌)和数据(即,读取数据)。
图8是示出根据本公开的实施例的数据处理系统20的配置的示图。
参照图8,数据处理系统20可以包括主机300和数据存储装置10。
主机300可以根据预设条件来生成用于仅执行垃圾收集操作的垃圾收集请求。
作为示例,在执行非易失性存储器设备100的断电、睡眠模式切换和空闲模式切换中的任意一个之前,主机300可以生成垃圾收集请求并且将垃圾收集请求传输到数据存储装置10。
作为另一示例,当非易失性存储器设备100中的空闲块的总数量等于或小于参考数量时,主机300可以生成垃圾收集请求并且将垃圾收集请求传输到数据存储装置10。
为此,主机300需要通过周期性地或非周期性地将查询传输到数据存储装置10来识别空闲块的数量。
在执行非易失性存储器设备100的断电、睡眠模式切换和空闲模式切换中的任意一个之前主机300将垃圾收集请求传输到数据存储装置10的情况下,当接收到从数据存储装置10传送的垃圾收集完成响应时,主机300可以执行非易失性存储器设备100的断电、睡眠模式切换和空闲模式切换中的任意一个。
这允许主机300在执行非易失性存储器设备100的断电、睡眠模式切换和空闲模式切换中的任意一个之前获得与参考数量相对应的数量的空闲块。当主机300以这种方式预先获得相应数量的空闲块时,可以提高与从主机300生成的数据写入命令相对应的数据写入的速度。也就是说,根据本实施例,可以防止由于空闲块的不足而导致的数据写入延迟。
当由于接收到垃圾收集请求而将非易失性存储器设备100切换到垃圾收集模式时,数据存储装置10可以在用于垃圾收集以外的目的的第一开放块之中分配用于执行垃圾收集操作的用于垃圾收集的开放块GC open block。
数据存储装置10可以包括非易失性存储器设备100和控制器200。
非易失性存储器设备100可以包括被分配作为用于垃圾收集以外的目的的第一开放块的多个存储块。
当将非易失性存储器设备100切换到垃圾收集模式时,在垃圾收集操作期间,控制器200可以在第一开放块之中分配用于执行垃圾收集操作的用于垃圾收集的开放块GCopen block,并且复制牺牲块的有效页面中存储的数据,并且将所复制的数据存储到用于垃圾收集的开放块GC open block中,从而获得空闲块。第一开放块可以包括用于包括损耗均衡和读取回收的内部操作的开放块以及用于主机写入的开放块Host open block。
控制器200可以重复执行垃圾收集操作,直到空闲块的总数量等于参考数量。
当在垃圾收集操作期间选择牺牲块时,控制器200可以在多个候选牺牲块之中按照有效页面的数量的升序来选择与参考数量和空闲块的总数量之间的差值相对应的数量的牺牲块。
在垃圾收集操作期间,控制器200可以检查用于垃圾收集的开放块GC open block的空闲空间和牺牲块的有效页面的数量,并且确定所检查的空闲空间是否可以存储牺牲块的有效页面中存储的所有数据。
当牺牲块包括至少一个超级块时,控制器200可以将该至少一个超级块的所有有效页面的数量与用于垃圾收集的开放块GC open block的空闲空间进行比较。
当无法将牺牲块的有效页面中存储的所有数据存储在用于垃圾收集的开放块GCopen block的空闲空间中时,如果在牺牲块的有效页面被复制到开放块GC open block的同时用于垃圾收集的开放块GC open block的空闲空间减少到小于预设参考值,则控制器200可以在第一开放块之中分配下一个用于垃圾收集的开放块。
上述的第一开放块、牺牲块、空闲块和用于垃圾收集的开放块GC open block均可以是包括至少两个块的超级块(见图2、图3、图5和图6)或包括一个块的单个块(见图4)。
图9示出根据本公开的实施例的包括固态驱动器(SSD)的数据处理系统的示图。参照图9,数据处理系统2000可以包括主机2100和固态驱动器(在下文中,称为SSD)2200。
SSD 2200可以包括控制器2210、缓冲存储器设备2220、非易失性存储器设备2231至223n、电源2240、信号连接器2250以及电源连接器2260。
控制器2210可以控制SSD 2200的全部操作。
缓冲存储器设备2220可以临时存储待存储在非易失性存储器设备2231至223n中的数据。此外,缓冲存储器设备2220可以临时存储从非易失性存储器设备2231至223n读取的数据。可以在控制器2210的控制下,将缓冲存储器设备2220中临时存储的数据传输到主机2100或非易失性存储器设备2231至223n。
非易失性存储器设备2231至223n可以用作SSD 2200的存储介质。非易失性存储器设备2231至223n可以通过多个通道CH1至CHn电连接到控制器2210。一个或多个非易失性存储器设备可以电连接到一个通道。电连接到一个通道的非易失性存储器设备可以电连接到相同的信号总线和数据总线。
电源2240可以向SSD 2200的内部提供通过电源连接器2260输入的电力PWR。电源2240可以包括辅助电源2241。辅助电源2241可以供应电力,使得当发生突然断电时SSD2200正常停止。辅助电源2241可以包括能够存储电力PWR的大容量电容器。
控制器2210可以通过信号连接器2250与主机2100交换信号SGL。信号SGL可以包括命令、地址、数据等。根据主机2100与SSD 2200之间的接口方法,信号连接器2250可以由各种类型的连接器组成。
图10是示出根据本公开的实施例的图9的控制器的示图。参照图10,控制器2210可以包括主机接口单元2211、控制单元2212、随机存取存储器2213、错误校正码(ECC)单元2214和存储器接口单元2215。
根据主机2100的协议,主机接口单元2211可以用作主机2100与SSD 2200之间的接口。例如,主机接口单元2211可以通过诸如以下的协议中的任意一个与主机2100通信:安全数字、通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、个人计算机存储卡国际协会(PCMCIA)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、外围组件互连(PCI)、高速PCI(PCI-E)和通用闪存(UFS)。此外,主机接口单元2211可以执行磁盘模拟功能,该磁盘模拟功能使主机2100能够将SSD 2200识别为例如硬盘驱动器(HDD)的通用数据存储装置。
控制单元2212可以分析和处理从主机2100输入的信号SGL。控制单元2212可以根据驱动SSD 2200的固件或软件来控制内部功能块的操作。随机存取存储器2213可以用作驱动这种固件或软件的工作存储器。
错误校正码(ECC)单元2214可以生成待传输到非易失性存储器设备2231至223n的数据的奇偶校验数据。所生成的奇偶校验数据可以与数据一起存储在非易失性存储器设备2231至223n中。基于奇偶校验数据,错误校正码(ECC)单元2214可以检测从非易失性存储器设备2231至223n读取的数据的错误。当检测到的错误在可校正范围内时,错误校正码(ECC)单元2214可以校正检测到的错误。
存储器接口单元2215可以在控制单元2212的控制下向非易失性存储器设备2231至223n提供诸如命令和地址的控制信号。此外,存储器接口单元2215可以在控制单元2212的控制下与非易失性存储器设备2231至223n交换数据。例如,存储器接口单元2215可以向非易失性存储器设备2231至223n提供缓冲存储器设备2220中存储的数据,或向缓冲存储器设备2220提供从非易失性存储器设备2231至223n读取的数据。
图11是示出包括根据本公开的实施例的数据存储装置的数据处理系统的示图。参照图11,数据处理系统3000可以包括主机3100和数据存储装置3200。
可以以诸如印刷电路板的板的形式配置主机3100。尽管在附图中未示出,但是主机3100可以包括用于执行主机的功能的内部功能块。
主机3100可以包括诸如插座、插槽或连接器的接入终端3110。数据存储装置3200可以安装到接入终端3110。
可以以诸如印刷电路板的板的形式配置数据存储装置3200。数据存储装置3200可以被称为存储器模块或存储卡。数据存储装置3200可以包括控制器3210、缓冲存储器设备3220、非易失性存储器设备3231和3232、电源管理集成电路(PMIC)3240以及接入终端3250。
控制器3210可以控制数据存储装置3200的全部操作。可以以与图10所示的控制器2210相同的方式配置控制器3210。
缓冲存储器设备3220可以临时存储待存储在非易失性存储器设备3231和3232中的数据。此外,缓冲存储器设备3220可以临时存储从非易失性存储器设备3231和3232读取的数据。可以在控制器3210的控制下,将缓冲存储器设备3220中临时存储的数据传输到主机3100或非易失性存储器设备3231和3232。
非易失性存储器设备3231和3232可以用作数据存储装置3200的存储介质。
PMIC 3240可以向数据存储装置3200的内部提供通过接入终端3250输入的电力。PMIC 3240可以在控制器3210的控制下管理数据存储装置3200的电力。
接入终端3250可以电连接到主机3100的接入终端3110。可以通过接入终端3250在主机3100与数据存储装置3200之间传送诸如命令、地址和数据的信号以及电力。可以根据主机3100与数据存储装置3200之间的接口方法,将接入终端3250配置为各种形式。接入终端3250可以设置在数据存储装置3200的一侧。
图12是示出包括根据本公开的实施例的数据存储装置的数据处理系统的示图。参照图12,数据处理系统4000可以包括主机4100和数据存储装置4200。
可以以诸如印刷电路板的板的形式配置主机4100。尽管在附图中未示出,但是主机4100可以包括用于执行主机的功能的内部功能块。
可以以表面安装封装形式配置数据存储装置4200。数据存储装置4200可以通过焊球4250被安装到主机4100。数据存储装置4200可以包括控制器4210、缓冲存储器设备4220和非易失性存储器设备4230。
控制器4210可以控制数据存储装置4200的全部操作。可以以与图10所示的控制器2210相同的方式配置控制器4210。
缓冲存储器设备4220可以临时存储待存储在非易失性存储器设备4230中的数据。此外,缓冲存储器设备4220可以临时存储从非易失性存储器设备4230读取的数据。可以在控制器4210的控制下,将缓冲存储器设备4220中临时存储的数据传输到主机4100或非易失性存储器设备4230。
非易失性存储器设备4230可以用作数据存储装置4200的存储介质。
图13是示出包括根据本公开的实施例的数据存储装置的网络系统5000的示图。参照图13,网络系统5000可以包括通过网络5500彼此电连接的服务器系统5300以及多个客户端系统5410、5420和5430。
服务器系统5300可以响应于多个客户端系统5410、5420和5430的请求而服务数据。例如,服务器系统5300可以存储从多个客户端系统5410、5420和5430提供的数据。又例如,服务器系统5300可以向多个客户端系统5410、5420和5430提供数据。
服务器系统5300可以包括主机5100和数据存储装置5200。数据存储装置5200可以被配置为图1的数据存储装置10、图9的数据存储装置2200、图11的数据存储装置3200以及图12的数据存储装置4200。
图14是示出根据本公开的实施例的数据存储装置中包括的非易失性存储器设备的框图。参照图14,非易失性存储器设备100可以包括存储器单元阵列110、行解码器120、列解码器140、数据读取/写入块130、电压生成器150和控制逻辑160。
存储器单元阵列110可以包括存储器单元MC,存储器单元MC布置在字线WL1至WLm和位线BL1至BLn的交叉区域中。
行解码器120可以通过字线WL1至WLm来电连接到存储器单元阵列110。行解码器120可以在控制逻辑160的控制下操作。行解码器120可以对从外部装置(未示出)提供的地址进行解码。行解码器120可以基于解码结果来选择和驱动字线WL1至WLm。例如,行解码器120可以向字线WL1至WLm提供从电压生成器150提供的字线电压。
数据读取/写入块130可以通过位线BL1至BLn来电连接到存储器单元阵列110。数据读取/写入块130可以包括分别与位线BL1至BLn相对应的读取/写入电路RW1至RWn。数据读取/写入块130可以在控制逻辑160的控制下操作。根据操作模式,数据读取/写入块130可以作为写入驱动器或读出放大器操作。例如,数据读取/写入块130可以作为写入驱动器操作,写入驱动器在写入操作期间将从外部装置提供的数据存储在存储器单元阵列110中。又例如,数据读取/写入块130可以作为读出放大器操作,读出放大器在读取操作期间从存储器单元阵列110读取数据。
列解码器140可以在控制逻辑160的控制下操作。列解码器140可以对从外部装置提供的地址进行解码。列解码器140可以基于解码结果,将数据读取/写入块130的、分别对应于位线BL1至BLn的读取/写入电路RW1至RWn与数据输入/输出线(或数据输入/输出缓冲器)电连接。
电压生成器150可以生成待在非易失性存储器设备100的内部操作中使用的电压。可以将由电压生成器150生成的电压施加到存储器单元阵列110的存储器单元。例如,可以将在编程操作期间生成的编程电压施加到待进行编程操作的存储器单元的字线。又例如,可以将在擦除操作期间生成的擦除电压施加到待进行擦除操作的存储器单元的阱区。在另一示例中,可以将在读取操作期间生成的读取电压施加到待进行读取操作的存储器单元的字线。
控制逻辑160可以基于从外部装置提供的控制信号来控制非易失性存储器设备100的全部操作。例如,控制逻辑160可以控制诸如读取操作、写入操作和擦除操作的非易失性存储器设备100的操作。
在上述的本实施例中,由于使用了用于主机写入的开放块Host open block和用于内部操作的开放块而不是空闲块,在仅执行垃圾收集的模式中,写入放大因子(WAF)由于超量配置(over-provisioning)的使用而减少,使得可以预期执行有效垃圾收集操作的效果。
由于本公开所属领域的技术人员可以在不改变本公开的技术精神或本质特征的情况下以其他特定形式实施本公开,因此应当理解的是,上述实施例在各方面都是示例性的而不是限制性的。本公开的范围由下面将要描述的权利要求书而不是具体实施方式来限定,并且应当理解的是,权利要求书的含义和范围以及从权利要求的等效概念衍生的所有变化或修改形式都被包括在本公开的范围内。
Claims (21)
1.一种数据存储装置,包括:
非易失性存储器设备,包括多个存储块,所述多个存储块被分配作为用于垃圾收集以外的目的的第一开放块;以及
控制器,在将所述非易失性存储器设备切换到垃圾收集模式时,在所述第一开放块之中分配用于执行垃圾收集操作的用于垃圾收集的开放块,并且在所述垃圾收集操作期间,复制牺牲块的有效页面中存储的数据,将所复制的数据存储到所述用于垃圾收集的开放块中,并且擦除所述牺牲块,从而获得空闲块。
2.根据权利要求1所述的数据存储装置,其中,当所述非易失性存储器设备中的空闲块的总数量等于或小于参考数量时或者当接收到从主机传送的垃圾收集命令时,所述控制器进一步将所述非易失性存储器设备切换到仅执行所述垃圾收集操作的所述垃圾收集模式。
3.根据权利要求2所述的数据存储装置,其中所述控制器进一步重复地执行所述垃圾收集操作直到所述空闲块的总数量等于所述参考数量。
4.根据权利要求2所述的数据存储装置,其中所述控制器进一步按照存储块中包括的有效页面的数量的升序来选择与所述参考数量和所述空闲块的总数量之间的差值相对应的数量的所述牺牲块。
5.根据权利要求4所述的数据存储装置,
其中,在所述垃圾收集操作期间,所述控制器进一步检查所述用于垃圾收集的开放块的空闲空间以及所述牺牲块的有效页面的数量,并且确定所检查的空闲空间是否能够存储所述牺牲块的有效页面中存储的所有数据,并且
其中,当所述牺牲块包括至少一个超级块时,所述控制器进一步将所述至少一个超级块的所有有效页面的数量与所述用于垃圾收集的开放块的空闲空间进行比较。
6.根据权利要求5所述的数据存储装置,其中,当无法将所述牺牲块的有效页面中存储的所有数据存储在所述用于垃圾收集的开放块的空闲空间中时,所述控制器进一步在所述牺牲块的有效页面被复制到所述用于垃圾收集的开放块的同时,当所述用于垃圾收集的开放块的空闲空间减少到小于预设参考值时,在所述第一开放块之中分配下一个用于垃圾收集的开放块。
7.根据权利要求1所述的数据存储装置,其中,在将所述非易失性存储器设备切换到所述垃圾收集模式时,所述控制器进一步通过将为主机写入和内部操作保留的空闲块添加到空闲块列表来增加空闲块的总数量。
8.根据权利要求1所述的数据存储装置,其中,在所述垃圾收集操作期间,所述控制器进一步通过参考映射表来确定所述用于垃圾收集的开放块的最终写入位置,并且将存储在所述牺牲块的有效页面中的数据存储到所确定的最终写入位置之后的位置。
9.根据权利要求1所述的数据存储装置,其中所述第一开放块包括用于内部操作的开放块和用于主机写入操作的开放块,所述内部操作包括损耗均衡操作和读取回收操作。
10.根据权利要求1所述的数据存储装置,其中所述第一开放块、所述牺牲块、所述空闲块和所述用于垃圾收集的开放块中的每一个都是包括一个或多个块的超级块。
11.一种数据处理系统,包括:
主机,根据预设条件来生成用于仅执行垃圾收集操作的垃圾收集请求;以及
数据存储装置,当由于接收到所述垃圾收集请求而切换到垃圾收集模式时,在用于垃圾收集以外的目的的第一开放块之中分配用于执行所述垃圾收集操作的用于垃圾收集的开放块,并且执行所述垃圾收集操作。
12.根据权利要求11所述的数据处理系统,
其中在执行所述数据存储装置的断电、睡眠模式切换和空闲模式切换中的一个之前,或者当所述数据存储装置中包括的非易失性存储器设备中的空闲块的总数量等于或小于参考数量时,所述主机生成所述垃圾收集请求,并且
其中所述主机进一步将所述垃圾收集请求传输到所述数据存储装置。
13.根据权利要求12所述的数据处理系统,其中所述主机进一步当从所述数据存储装置接收作为对在执行所述数据存储装置的所述断电、所述睡眠模式切换和所述空闲模式切换中的一个之前提供的所述垃圾收集请求的响应的垃圾收集完成响应时,执行所述数据存储装置的所述断电、所述睡眠模式切换和所述空闲模式切换中的一个。
14.根据权利要求12所述的数据处理系统,其中所述数据存储装置包括:
所述非易失性存储器设备,包括被分配作为用于垃圾收集以外的目的的所述第一开放块的多个存储块;以及
控制器,在将所述非易失性存储器设备切换到所述垃圾收集模式时,分配用于执行所述垃圾收集操作的所述用于垃圾收集的开放块,并且在所述垃圾收集操作期间,复制牺牲块的有效页面中存储的数据,将所复制的数据存储到所述用于垃圾收集的开放块中,并且擦除所述牺牲块,从而获得空闲块。
15.根据权利要求14所述的数据处理系统,其中所述控制器进一步重复地执行所述垃圾收集操作直到所述空闲块的总数量等于所述参考数量。
16.根据权利要求14所述的数据处理系统,其中所述控制器进一步按照存储块中包括的有效页面的数量的升序来选择与所述参考数量和所述空闲块的总数量之间的差值相对应的数量的所述牺牲块。
17.根据权利要求16所述的数据处理系统,
其中,在所述垃圾收集操作期间,所述控制器进一步检查所述用于垃圾收集的开放块的空闲空间和所述牺牲块的有效页面的数量,并且确定所检查的空闲空间是否能够存储所述牺牲块的有效页面中存储的所有数据,并且
其中,当所述牺牲块包括至少一个超级块时,所述控制器进一步将所述至少一个超级块的所有有效页面的数量与所述用于垃圾收集的开放块的空闲空间进行比较。
18.根据权利要求17所述的数据处理系统,其中,当无法将所述牺牲块的有效页面中存储的所有数据存储在所述用于垃圾收集的开放块的空闲空间中时,所述控制器进一步在所述牺牲块的有效页面被复制到所述用于垃圾收集的开放块的同时,当所述用于垃圾收集的开放块的空闲空间减少到小于预设参考值时,在所述第一开放块之中分配下一个用于垃圾收集的开放块。
19.根据权利要求11所述的数据处理系统,其中所述第一开放块包括用于内部操作的开放块和用于主机写入操作的开放块,所述内部操作包括损耗均衡操作和读取回收操作。
20.根据权利要求14所述的数据处理系统,其中所述第一开放块、所述牺牲块、所述空闲块和所述用于垃圾收集的开放块中的每一个都是包括一个或多个块的超级块。
21.一种数据存储装置,包括:
非易失性存储器设备,包括开放块;以及
控制器,控制所述非易失性存储器设备以利用所述开放块执行垃圾收集操作、损耗均衡操作、读取回收操作和主机写入操作中的任意一个,
其中所述非易失性存储器设备在不执行所述损耗均衡操作、所述读取回收操作和所述主机写入操作中的任意一个时,执行所述垃圾收集操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2021-0005807 | 2021-01-15 | ||
KR1020210005807A KR20220103340A (ko) | 2021-01-15 | 2021-01-15 | 데이터 저장 장치 및 그것의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114764396A true CN114764396A (zh) | 2022-07-19 |
Family
ID=82364843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111207662.2A Withdrawn CN114764396A (zh) | 2021-01-15 | 2021-10-18 | 数据存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220229775A1 (zh) |
KR (1) | KR20220103340A (zh) |
CN (1) | CN114764396A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116909495A (zh) * | 2023-09-14 | 2023-10-20 | 合肥康芯威存储技术有限公司 | 一种存储装置及其控制方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200085513A (ko) * | 2019-01-07 | 2020-07-15 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7437557B2 (en) * | 2003-06-03 | 2008-10-14 | Lg Electronics Inc. | Garbage collection system and method for a mobile communication terminal |
KR101774496B1 (ko) * | 2010-12-08 | 2017-09-05 | 삼성전자주식회사 | 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법 |
US10725668B1 (en) * | 2014-08-29 | 2020-07-28 | SK Hynix Inc. | Data separation during garbage collection and wear leveling |
KR20160075229A (ko) * | 2014-12-19 | 2016-06-29 | 삼성전자주식회사 | 가비지 컬렉션 동작 방법 및 이를 적용하는 레이드 스토리지 시스템 |
US20170228191A1 (en) * | 2016-02-08 | 2017-08-10 | Western Digital Technologies, Inc. | Systems and methods for suppressing latency in non-volatile solid state devices |
TWI652577B (zh) * | 2017-06-19 | 2019-03-01 | 慧榮科技股份有限公司 | 資料儲存裝置及非揮發式記憶體操作方法 |
JP7030463B2 (ja) * | 2017-09-22 | 2022-03-07 | キオクシア株式会社 | メモリシステム |
CN109901782A (zh) * | 2017-12-07 | 2019-06-18 | 上海宝存信息科技有限公司 | 数据储存装置与数据储存方法 |
US11537513B2 (en) * | 2017-12-11 | 2022-12-27 | SK Hynix Inc. | Apparatus and method for operating garbage collection using host idle |
JP2019168937A (ja) * | 2018-03-23 | 2019-10-03 | 東芝メモリ株式会社 | メモリシステム、制御方法及びコントローラ |
JP7401193B2 (ja) * | 2019-04-17 | 2023-12-19 | キヤノン株式会社 | 情報処理装置及びその制御方法並びにプログラム |
KR20210001414A (ko) * | 2019-06-28 | 2021-01-06 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 그 저장 방법 |
KR102626058B1 (ko) * | 2019-07-08 | 2024-01-18 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
-
2021
- 2021-01-15 KR KR1020210005807A patent/KR20220103340A/ko unknown
- 2021-07-16 US US17/378,147 patent/US20220229775A1/en not_active Abandoned
- 2021-10-18 CN CN202111207662.2A patent/CN114764396A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116909495A (zh) * | 2023-09-14 | 2023-10-20 | 合肥康芯威存储技术有限公司 | 一种存储装置及其控制方法 |
CN116909495B (zh) * | 2023-09-14 | 2023-12-15 | 合肥康芯威存储技术有限公司 | 一种存储装置及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20220103340A (ko) | 2022-07-22 |
US20220229775A1 (en) | 2022-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180130537A1 (en) | Data storage device and operating method thereof | |
CN110908594B (zh) | 存储器系统的操作方法和存储器系统 | |
US11487669B2 (en) | Memory system for storing data of log-structured merge tree structure and data processing system including the same | |
KR102592803B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN109783008B (zh) | 数据存储装置及其操作方法 | |
US20200218653A1 (en) | Controller, data storage device, and operating method thereof | |
CN111061653A (zh) | 数据存储装置及其操作方法 | |
US20230273748A1 (en) | Memory system, operating method thereof and computing system | |
CN111752852A (zh) | 数据存储装置及数据存储装置的操作方法 | |
KR20200129863A (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
CN109240937B (zh) | 数据存储装置及其操作方法 | |
CN113704138A (zh) | 存储装置及其操作方法 | |
US20220229775A1 (en) | Data storage device and operating method thereof | |
CN112286443A (zh) | 控制器、存储器系统及其操作方法 | |
US10877853B2 (en) | Data storage device and operation method optimized for recovery performance, and storage system having the same | |
KR102270103B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20230075820A1 (en) | Event log management method, controller and storage device | |
KR20220076803A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20200394134A1 (en) | Data storage device and operating method thereof | |
KR20210156061A (ko) | 저장 장치 및 그 동작 방법 | |
KR20210079894A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN112783429A (zh) | 数据存储装置、使用其的存储系统及其操作方法 | |
US9966148B1 (en) | Data storage device and operating method thereof | |
US11422892B2 (en) | Data storage apparatus and operating method thereof | |
US20220171706A1 (en) | Memory system and operating method thereof |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220719 |