CN113704138A - 存储装置及其操作方法 - Google Patents
存储装置及其操作方法 Download PDFInfo
- Publication number
- CN113704138A CN113704138A CN202110043393.4A CN202110043393A CN113704138A CN 113704138 A CN113704138 A CN 113704138A CN 202110043393 A CN202110043393 A CN 202110043393A CN 113704138 A CN113704138 A CN 113704138A
- Authority
- CN
- China
- Prior art keywords
- blocks
- completed
- memory
- garbage collection
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
- G06F12/0276—Generational garbage collection
-
- 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
- G06F12/0261—Garbage collection, i.e. reclamation of unreferenced memory using reference counting
-
- 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/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
- 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/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
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
-
- 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
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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
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 Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本公开涉及一种存储装置,该存储装置包括:非易失性存储器,包括多个第一块和多个第二块,该多个第一块具有每个被配置成存储一位数据的存储器单元,该多个第二块具有每个被配置成存储多位数据的存储器单元;以及控制器,被配置成确定多个第二块的使用完成的第二块之中的每个具有第一阈值数量或更少的有效页面的使用完成的第二块的数量是否等于或大于第二阈值数量,并且根据确定结果,在多个第一块的使用完成的第一块之中或者每个具有第一阈值数量或更少的有效页面的使用完成的第二块之中选择待执行垃圾收集的牺牲块。
Description
相关申请的交叉引用
本申请要求于2020年5月22日向韩国知识产权局提交的申请号为10-2020-0061334的韩国申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
各个实施例总体涉及一种存储装置,并且更特别地,涉及一种存储装置及其操作方法。
背景技术
近年来,计算机环境范例已经转变成可以随时随地使用计算机***的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子设备的使用已经迅速增加。通常,便携式电子设备使用采用存储器装置的数据存储装置。数据存储装置可以用于将所使用的数据存储在便携式电子设备中。
使用存储器装置的数据存储装置不具有机械驱动单元,因而表现出良好的稳定性和耐久性、快速的信息访问速率和低功耗。这种数据存储装置包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、通用闪存(UFS)装置、固态驱动器(SSD)等。
发明内容
实施例提供了一种能够防止性能劣化并且提高空间效率的技术及其操作方法。
在本公开的实施例中,一种存储装置可以包括:非易失性存储器,包括多个第一块和多个第二块,该多个第一块具有每个被配置成存储一位数据的存储器单元,该多个第二块具有每个被配置成存储多位数据的存储器单元;以及控制器,被配置成确定多个第二块的使用完成的第二块之中的每个具有第一阈值数量或更少的有效页面的使用完成的第二块的数量是否等于或大于第二阈值数量,并且根据确定结果,在多个第一块的使用完成的第一块之中或者每个具有第一阈值数量或更少的有效页面的使用完成的第二块之中选择待执行垃圾收集的牺牲块。
在本公开的实施例中,一种存储装置的操作方法,该存储装置包括非易失性存储器和控制器,非易失性存储器包括多个第一块和多个第二块,该多个第一块具有每个被配置成存储一位数据的存储器单元,该多个第二块具有每个被配置成存储多位数据的存储器单元,控制器被配置成控制非易失性存储器,该方法可以包括:确定是否满足非易失性存储器的垃圾收集触发条件;确定多个第二块的使用完成的第二块之中的每个具有第一阈值数量或更少的有效页面的使用完成的第二块的数量是否等于或大于第二阈值数量;并且根据针对使用完成的第二块的数量的确定结果,在多个第一块的使用完成的第一块之中或者每个具有第一阈值数量或更少的有效页面的使用完成的第二块之中选择待执行垃圾收集的牺牲块。
在本公开的实施例中,一种存储装置可以包括:非易失性存储器,包括多个单层单元(SLC)块和多个超层单元(XLC)块;以及控制器,被配置成基于多个XLC块中的使用完成的XLC块之中的每个具有K个或更少的有效页面的使用完成的XLC块的数量,在多个SLC块之中或在多个XLC块之中选择待执行垃圾收集的牺牲块,其中K为1或更大的自然数。
在本公开的实施例中,一种存储装置可以包括:非易失性存储器,包括多个第一块和多个第二块,该多个第一块具有每个被配置成存储一位数据的存储器单元,该多个第二块具有每个被配置成存储多位数据的存储器单元;易失性存储器,被配置成将有效页面存储在多个第二块之中的每个具有第一阈值数量或更少的有效页面的使用完成的第二块中;以及控制器,被配置成确定每个具有第一阈值数量或更少的有效页面的使用完成的第二块的数量是否大于或等于第二阈值数量,并且根据确定结果,在多个第一块的使用完成的第一块之中或者每个具有第一阈值数量或更少的有效页面的使用完成的第二块之中选择待执行垃圾收集的牺牲块。
根据实施例,通过对SLC块执行垃圾收集(即,迁移),直到具有等于或小于确定值的有效页面的XLC块的数量变为确定值或更大,可以提高写入速度,并且当具有等于或小于确定值的有效页面的XLC块的数量是确定值或更大时,通过对XLC块执行垃圾收集,可以将空闲块的数量保持在恒定水平。根据实施例,可以防止存储装置中的写入性能的劣化,同时可以连续地保持恒定数量或更多的空闲块。
下面更详细地描述这些和其它特征、方面和实施例。
附图说明
从以下结合附图的详细描述中,将更清楚地理解本公开的主题的上述和其它方面、特征和优点,其中:
图1是示出根据本公开的实施例的电子装置的示图;
图2是示出根据本公开的实施例的存储装置的控制器的配置的示图;
图3是示出根据本公开的实施例的存储装置的非易失性存储器的配置的示图;
图4是示出诸如图3的存储器芯片的配置的示图;
图5是示出诸如图2的易失性存储器的配置的示图;
图6是示出根据本公开的实施例的闪存转换层(FTL)的配置的示图;
图7是示出根据本公开的实施例的存储装置的操作方法的流程图;
图8是示出根据实施例的包括固态驱动器(SSD)的数据处理***的示图;
图9是示出诸如图8所示的控制器的示图;
图10是示出根据实施例的包括数据存储设备的数据处理***的示图;
图11是示出根据实施例的包括数据存储设备的数据处理***的示图;
图12是示出根据实施例的包括数据存储设备的网络***的示图;以及
图13是示出根据实施例的数据存储设备中包括的非易失性存储器装置的示图。
具体实施方式
参照附图更详细地描述本教导的各个实施例。附图是各个实施例(和中间结构)的框图和示意图。然而,本领域技术人员根据本公开将认识到的是,本发明可以以其它形式和方式来实施。因此,本发明不被所公开的实施例的任意一种限制或不限于所公开的实施例中的任意一种,也不限于本文的任何特定细节。相反,本发明涵盖与本文的教导相对应的并且在权利要求的范围内的所有变型。
在特定实施例的上下文中提供了本教导。然而,本教导超出了所公开的实施例。如本领域技术人员将认识到的,在不脱离本教导的原理和精神的情况下,本发明可以不同地实现。而且,在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的(多个)实施例。当本文使用术语“实施例”时不一定指所有实施例。
图1是示出根据实施例的电子装置10的配置的示图。
参照图1,根据实施例的电子装置10可以包括主机100和存储装置200。
主机100可以是诸如移动电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)和/或车载信息娱乐***的装置。主机100可以包括文件***110。尽管图1中未示出,但是主机100可以包括处理器(例如,中央处理单元(CPU))和驱动器。处理器可以控制主机100的全部操作,并且驱动器可以根据处理器的控制来驱动存储装置200。在实施例中,主机100的驱动器可以包括应用(未示出)、文件***110、主机存储器(未示出)等。
应用可以指应用程序,并且可以是在操作***(OS)上运行的软件。应用可以响应于用户输入来处理数据。例如,应用可以响应于用户输入来处理用户数据,并且将用于将处理后的用户数据存储在存储装置200的非易失性存储器(参见图2的210)中的命令传送到文件***110。
文件***110可以响应于从应用传送的命令,分配其中待存储用户数据的逻辑块地址(LBA)。在实施例中,文件***110可以是闪存友好文件***(F2FS)、扩展文件***4(EXT4)或与其类似的另一种类型的文件***,但是本发明不限于任何特定类型的文件***。
主机存储器可以临时存储待写入存储装置200的非易失性存储器210中的数据或从存储装置200的非易失性存储器210读出的数据。主机存储器可以用作被配置成驱动(或运行)应用、文件***110等的工作存储器。
重新参照图1,存储装置200可以存储待由主机100访问的数据。存储装置200可以指数据存储装置或存储器***。
根据联接到主机100的接口协议,存储装置200可以包括各种类型的存储装置中的任意一种。例如,存储装置200可以包括诸如以下的各种类型的存储装置中的任意一种:固态驱动器(SSD),以嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)和/或微型MMC形式的多媒体卡(MMC),以迷你SD和/或微型SD形式的安全数字(SD)卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,***组件互连(PCI)卡型存储装置,高速PCI(PCI-e)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡和/或记忆棒。
存储装置200可以被制造为各种类型的封装中的任意一种。例如,存储装置200可以被制造为堆叠封装(POP)、***级封装(SIP)、片上***(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和/或晶圆级堆叠封装(WSP)。
图2和图3是示出根据实施例的存储装置200的配置的示图。图2是示出存储装置200的控制器220的配置的示图,并且图3是示出存储装置200的非易失性存储器210的配置的示图。
参照图2和图3,存储装置200可以包括非易失性存储器210和控制器220。
非易失性存储器210可以作为存储装置200的存储介质操作。根据存储器单元,非易失性存储器210可以包括诸如以下的各种类型的非易失性存储器中的任意一种:NAND闪速存储器装置、NOR闪速存储器装置、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧道磁阻(TMR)层的磁性随机存取存储器(MRAM)、使用硫族化物合金的相变随机存取存储器(PRAM)和使用过渡金属化合物的电阻式随机存取存储器(ReRAM)。
非易失性存储器210可以包括存储器单元阵列(未示出),该存储器单元阵列包括布置在多个字线(未示出)和多个位线(未示出)相交的区域中的多个存储器单元。
例如,存储器单元阵列中的存储器单元中的每一个可以是待存储单个位数据的单层单元(SLC)或待存储2位或更多位数据的超层单元(XLC)。XLC可以包括待存储2位数据的多层单元(MLC)、待存储3位数据的三层单元(TLC)、待存储4位数据的四层单元(QLC)等。存储器单元阵列可以包括以二维(2D)水平结构布置的存储器单元或以3D垂直结构布置的存储器单元。
控制器220可以通过驱动(或运行)被加载到易失性存储器250中的固件或软件来控制存储装置200的全部操作。控制器220可以解码并驱动(或运行)诸如固件或软件的代码类型指令或算法。控制器220可以由硬件或硬件和软件的组合来实施。
控制器220可以包括主机接口230、处理器240、易失性存储器250和存储器接口260。尽管未在图2中示出,但是控制器220可以进一步包括错误校正码(ECC)电路,其通过对从主机100提供的数据执行ECC编码来生成奇偶校验信息,并使用奇偶校验信息对从非易失性存储器210读出的读取数据执行ECC解码。
根据主机100的协议,主机接口230可以执行主机100和存储装置200之间的接口连接。例如,主机接口230可以通过以下中的任意一种与主机100通信:USB协议、UFS协议、MMC协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机***接口(SCSI)协议、串列SCSI(SAS)协议、PCI协议和PCI-E协议。
处理器240可以被配置为微型控制单元(MCU)、中央处理单元(CPU)等。处理器240可以处理从主机100传输的请求。为了处理从主机100传输的请求,处理器240可以驱动(或运行)被加载到易失性存储器250中的代码类型指令或算法(例如,固件),并控制诸如主机接口230、易失性存储器250和存储器接口260的内部功能块以及非易失性存储器210。
处理器240可以基于从主机100传输的请求生成用于控制非易失性存储器210的操作的命令,并且可以通过存储器接口260将所生成的命令提供到非易失性存储器210。
易失性存储器250可以被配置为动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。易失性存储器250可以存储通过处理器240驱动的固件。易失性存储器250还可以存储用于驱动固件的数据(例如,元数据)。例如,易失性存储器250可以作为处理器240的工作存储器进行操作。
易失性存储器250可以临时存储待从主机100传输到非易失性存储器210的数据(例如,写入数据)或临时存储待从非易失性存储器210传输到主机100的数据(例如,读取数据)。例如,易失性存储器250可以作为缓冲存储器进行操作。
根据处理器240的控制,存储器接口260可以控制非易失性存储器210。存储器接口260可以将由处理器240生成的命令提供到非易失性存储器210。存储器接口260可以将临时存储在易失性存储器250中的写入数据提供到非易失性存储器210,或者可以从非易失性存储器210接收读取数据,并将所接收的读取数据临时存储在易失性存储器250中。
参照图3,非易失性存储器210可以包括多个存储器芯片211。多个存储器芯片211可以被分组为多个存储器芯片组2111至211m,但是本发明不限于此。多个存储器芯片组2111-211m中的每一个可以包括n个存储器芯片2111-1至2111-n~211m-1至211m-n(其中n为1或大于1的自然数)。多个存储器芯片组2111至211m可以分别通过通道CH1至CHm(其中,m为大于1的自然数)与控制器220通信。
例如,多个存储器芯片组2111至211m中的每一个中的多个存储器芯片2111-1至2111-n~211m-1至211m-n中的每一个可以电联接到指定的(多个)通道CH1至CHm。相同组中的存储器芯片可以电联接到相同通道。通道CH1至CHm可以指独立的总线,该总线将命令、地址和数据传输到存储器芯片2111-1至2111-n~211m-1至211m-n并从存储器芯片2111-1至2111-n~211m-1至211m-n接收命令、地址和数据。联接到不同通道的存储器芯片可以独立操作。
图4是示出图3的存储器芯片的配置的示图。在图4中示例性示出了第一存储器芯片组2111的第一存储器芯片2111-1,应当理解的是,非易失性存储器210中的其余存储器芯片中的每一个可以具有与图4所示的第一存储器芯片2111-1相同的配置。
参照图4,存储器芯片2111-1可以包括多个存储块BLK1至BLKi。存储块BLK1至BLKi中的每一个可以包括多个页面PG1至PGj。尽管在图4中未示出,但是存储器芯片2111-1可以包括多个平面,并且多个平面中的每一个可以包括多个存储块。为了简便,有时将存储块简称为块。
尽管在图4中未示出,但是非易失性存储器210中的多个存储块中的一些可以是被配置成以SLC模式写入数据的SLC块,并且非易失性存储器210中的其它块可以是被配置成以XLC模式写入数据的XLC块。
SLC块可以用于在短时间内存储从主机100提供的写入数据。例如,SLC块可以用作缓冲器。然后,可以将存储在(多个)SLC块中的数据迁移到(多个)XLC块。例如,当XLC块是能够在每个存储器单元中存储3位数据的TLC块时,与SLC块中的三个字线联接的存储器单元的三个物理页面中存储的数据可以被迁移到与XLC块的一个字线联接的存储器单元的一个物理页面。这种过程可以指针对SLC块的数据迁移或垃圾收集。
当将从主机100提供的数据直接存储在XLC块中时,写入速度可能会显著降低,并且因此写入性能可能劣化。因此,在实施例中,从主机100提供的数据可以迅速地存储在SLC块中,然后可以将所存储的数据迁移到XLC块。
通常,非易失性存储器210中待用作SLC块的存储块的最大数量可以是固定的。因此,当仅使用SLC块来提高写入性能时,可以增加执行针对(多个)SLC块的垃圾收集的次数。
在这种情况下,可以相对减少对(多个)XLC块执行垃圾收集的次数,并且可以增加有效页面的数量非常少的XLC块的数量。因此,空闲块,即可用的XLC块可能会显著减少。当增加对(多个)XLC块执行垃圾收集的次数以获得空闲块时,可能延迟处理从主机100接收的请求的时间,这可能导致存储装置200的性能劣化。
例如,当对(多个)SLC块执行的垃圾收集的次数相当多时,可以保持高写入性能,但是XLC块之中的空闲块的数量可能会快速减少。当对(多个)XLC块执行垃圾收集的次数相当多时,可以在短时间内获得大量空闲块,但是可能会延迟获得空SLC块,并且因此写入性能可能劣化。
因此,必须在适当的时间点对(多个)SLC块和(多个)XLC块执行垃圾收集,从而在防止存储装置200的性能劣化的同时仍容易获得空闲块。
根据实施例,控制器220的处理器240可以对使用完成的XLC块之中的具有K(其中K为1或大于1的自然数)个或更少的有效页面的XLC块的数量进行计数,在具有K个或更少的有效页面的XLC块数量达到P(其中P为1或大于1的自然数)之前对(多个)SLC块执行垃圾收集,并且当具有K个或更少的有效页面的XLC块的数量等于P时对(多个)XLC块执行垃圾收集。使用完成可以意指访问操作已经完成。例如,该使用完成意味着对XLC块的访问操作已经完成。
图5是示出图2的易失性存储器250的配置的示图。
参照图5,易失性存储器250可以包括待存储闪存转换层FTL的第一区域251、用作待存储元数据的元区域的第二区域252、用作待临时存储写入数据的写入数据缓冲器WDB的第三区域255、用作待临时存储读取数据的读取数据缓冲器RDB的第四区域256等。如本领域技术人员将理解的,易失性存储器250可以包括用于各种其它目的的其它区域。
当非易失性存储器210被配置为闪速存储器时,处理器240可以控制非易失性存储器210的内在(intrinsic)操作并驱动(或运行)被称为闪存转换层FTL的软件以提供与主机100的装置兼容性。主机100可以通过闪存转换层FTL的驱动(或运行)来识别存储装置200并将其用作诸如硬盘驱动器(HDD)的通用数据存储装置。闪存转换层FTL可以包括被配置成执行各种功能的模块以及用于驱动模块的元数据。闪存转换层FTL可以存储在非易失性存储器210的***区域(未示出)中,并且当存储装置200通电时,可以从非易失性存储器210的***区域中读取闪存转换层FTL,并将闪存转换层FTL存储在易失性存储器250的第一区域251中。
图6是示出根据实施例的闪存转换层FTL的配置的示图。
参照图6,闪存转换层FTL可以包括垃圾收集模块GCM、损耗均衡模块(WLM)等,但是FTL不限于该特定配置。例如,闪存转换层FTL可以进一步包括写入模块、读取模块、坏块管理模块、地址映射模块等。
垃圾收集模块GCM可以在一个存储块中收集非易失性存储器210的存储块之中分布的有效数据并将该有效数据存储在该存储块中,并且管理非易失性存储器210和易失性存储器250以对无效数据执行擦除操作。
由于结构特性,被配置为闪速存储器的非易失性存储器210可能不支持数据重新写入。这是因为当将数据重新写入已经存储有数据的存储器单元时,不一定保证或保持存储在相应存储器单元中的数据的可靠性。因此,为了将数据写入已经存储有数据的存储器单元,必须在这种写入操作之前对该存储器单元执行擦除操作。
因为对非易失性存储器210的擦除操作是以存储块为单位执行的,所以执行擦除操作耗费相当长的时间。因此,当与写入地址相对应的存储器单元处于写入状态时,处理器240可不对相应存储器单元执行擦除/写入操作,但是可将数据写入处于空状态的另一存储器单元。在这种情况下,与写入地址相对应的存储器单元中存储的原始数据可以是被认为无效的旧数据,并且其它存储器单元中存储的数据可以是被认为有效的最新数据。
因此,有效数据和无效数据混合在非易失性存储器210的块内。如果有必要,例如,当空闲块的数量等于或小于阈值时,处理器240可以驱动(或运行)垃圾收集模块GCM以选择具有相对少量的有效数据(或存储块之中的最少的有效数据)的存储块作为牺牲块(源块),并且执行将牺牲块中的有效数据迁移到另一存储块(目标块)的垃圾收集。因此,源块可以被分类为仅存在无效数据的空闲块。空闲块可以指可用的存储块。
重新参照图5,有效页面计数表(VPCT)253被配置成将多个存储块中的每一个的有效页面的数量存储在非易失性存储器210中,并且低有效页面计数器(LVPC)254被配置成存储具有K个或更少的有效页面的存储块的数量。VPCT 253和LVPC 254都可以存储在易失性存储器250的第二区域252中。
VPCT 253和LVPC 254可以由处理器240生成。每当执行映射更新操作时,可以更新存储在VPCT 253和LVPC 254中的值。
例如,处理器240可以确认或计算非易失性存储器210的每个存储块中的有效页面的数量,并且在VPCT 253中的各个位置中存储或更新那些数量。也就是说,VPCT 253可以具有分别与存储块相对应的位置,用于保持其有效页面计数。进一步地,处理器240可以通过参考VPCT253来确认具有K个(其中K为1或大于1的自然数)个或更少的有效页面的XLC块的数量,并且利用所确认的值来更新LVPC 254中存储的值。
处理器240可以确定是否满足针对非易失性存储器210的垃圾收集触发条件。例如,当非易失性存储器210中的空闲块的数量等于或小于阈值时,处理器240可以确定满足垃圾收集触发条件。此处,空闲块可以指XLC块之中的可用的块,例如,没有存储数据的块。
在另一实施例中,当响应于主机100的请求而写入非易失性存储器210中的数据的大小等于或大于阈值时,处理器240可以确定满足垃圾收集触发条件。在另一实施例中,当没有从主机100接收到请求的时间,即空闲时间,等于或大于阈值时,处理器240可以确定满足垃圾收集触发条件。其它条件也可以用于触发垃圾收集。
当确定满足垃圾收集触发条件时,处理器240可以确定具有K个或更少的有效页面的XLC块的数量是否等于或大于P(其中P为1或大于1的自然数)。例如,控制器220可以通过将P与易失性存储器250的第二区域252中的LVPC 254中存储的值进行比较,来确定具有K个或更少的有效页面的XLC块的数量是否等于或大于P。
当具有K个或更少的有效页面的XLC块的数量等于或大于P时,处理器240可以在具有K个或更少的有效页面的XLC块之中选择牺牲块,并且对所选择的牺牲块执行垃圾收集。例如,控制器220可以在具有K个或更少的有效页面的XLC块之中选择具有最小有效页面数量的XLC块作为牺牲块,但是本发明不限于此。
当具有K个或更少的有效页面的XLC块的数量小于P时,处理器240可以在存储有数据(例如,写入数据)的SLC块之中选择牺牲块,并且对所选择的牺牲块执行垃圾收集。例如,处理器240可以通过将存储在所选择的牺牲块的SLC块中的数据迁移到XLC块,来对SLC块执行垃圾收集。
如上所述,根据实施例,在存在具有确定数量(例如,K个)或更多的有效页面的确定数量(例如,P个)的XLC块之前,可以对SLC块执行垃圾收集(即,迁移)以提高写入速度,并且当具有确定数量(例如,K个)或更多的有效页面的XLC块的数量等于或大于确定数量(例如,P个)时,可以对XLC块执行垃圾收集,以确保供应足够的空闲块。因此,在保持高写入性能的同时,可以容易保持至少固定数量的空闲块。
图7是根据实施例的存储装置200的操作方法。首先参照图7,其次参照图2至图6,主要描述根据实施例的存储装置200的操作方法。
在操作S710,控制器220可以确定是否达到即满足非易失性存储器210的垃圾收集触发条件。例如,当非易失性存储器210中的空闲块的数量等于或小于阈值时,控制器220可以确定满足垃圾收集触发条件。在另一实施例中,当响应于主机100的请求而写入非易失性存储器210中的数据的大小等于或大于阈值时,控制器220可以确定满足垃圾收集触发条件。在另一实施例中,当没有从主机100接收到请求的时间,即空闲时间,等于或大于阈值时,控制器220可以确定满足垃圾收集触发条件。另外,各种其它垃圾收集条件可以用于触发垃圾收集。
当确定满足垃圾收集触发条件时,控制器220可以进行到操作S720。当确定不满足垃圾收集触发条件时,控制器220可以继续操作S710。可以重复执行操作S710,直到满足垃圾收集触发条件为止。
在操作S720,控制器220可以确定具有K个或更少的有效页面的XLC块的数量是否等于或大于P。例如,控制器220可以通过将P与易失性存储器250的第二区域252中的LVPC254中存储的值进行比较,来确定具有K个或更少的有效页面的XLC块的数量是否等于或大于P。
当确定具有K个或更少的有效页面的XLC块的数量等于或大于P时,控制器220可以进行到操作S730。当确定具有K个或更少的有效页面的XLC块的数量小于P时,控制器220可以进行到操作S740。
在操作S730,控制器220可以在具有K个或更少的有效页面的XLC块之中选择牺牲块,并且对所选择的牺牲块执行垃圾收集。例如,控制器220可以在具有K个或更少的有效页面的XLC块之中选择具有最小有效页面数量的XLC块作为牺牲块,但是本发明不限于此。
在操作S740,控制器220可以在存储有数据(例如,写入数据)的SLC块之中选择牺牲块,并且对所选择的牺牲块执行垃圾收集。例如,控制器220可以通过将被选择为牺牲块的SLC块中存储的数据迁移到XLC块,来对SLC块执行垃圾收集。
图8是示出根据实施例的包括固态驱动器(SSD)的数据处理***的示图。参照图8,数据处理***2000可以包括主机设备2100和SSD2200。
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可以将通过电源连接器2260输入的电力PWR提供到SSD2200的内部。电源2240可以包括辅助电源2241。辅助电源2241可以供应电力,使得即使在发生突然断电时,SSD 2200也能正确地终止。辅助电源2241可以包括能够对SSD 2200进行充电的大容量电容器。
控制器2210可以通过信号连接器2250与主机设备2100交换信号SGL。信号SGL可以包括命令、地址、数据等。根据主机设备2100和SSD 2200之间的接口连接方法,信号连接器2250可以是各种类型的连接器中的任意一种。
图9是示出图8的控制器的示图。参照图9,控制器2210可以包括主机接口2211、控制组件2212、随机存取存储器(RAM)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。根据用于驱动SSD2200的固件和/或软件,控制组件2212可以控制内部功能块的操作。RAM 2213可以作为用于驱动固件或软件的工作存储器进行操作。
ECC组件2214可以生成用于待被传送到非易失性存储器装置2231至223n的数据的奇偶校验数据。所生成的奇偶校验数据可以与该数据一起存储在非易失性存储器装置2231至223n中。ECC组件2214可以基于奇偶校验数据检测从非易失性存储器装置2231至223n读取的数据中的错误。当检测到的错误的数量在可校正范围内时,ECC组件2214可以校正检测到的错误。
根据控制组件2212的控制,存储器接口2215可以将诸如命令和地址的控制信号提供到非易失性存储器装置2231至223n。根据控制组件2212的控制,存储器接口2215可以与非易失性存储器装置2231至223n交换数据。例如,存储器接口2215可以将存储在缓冲存储器装置2220中的数据提供到非易失性存储器装置2231至223n,或者将从非易失性存储器装置2231至223n读取的数据提供到缓冲存储器装置2220。
图10是示出根据实施例的包括数据存储设备的数据处理***的示图。参照图10,数据处理***3000可以包括主机设备3100和数据存储设备3200。
主机设备3100可以以诸如印刷电路板(PCB)的板形式来配置。尽管在图10中未示出,但是主机设备3100可以包括被配置成执行主机设备3100的功能的内部功能块。
主机设备3100可以包括诸如插座、插槽或连接器的连接端子3110。数据存储设备3200可以安装在连接端子3110上。
数据存储设备3200可以以诸如PCB的板形式来配置。数据存储设备3200可以指存储器模块或存储卡。数据存储设备3200可以包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231至3232、电源管理集成电路(PMIC)3240以及连接端子3250。
控制器3210可以控制数据存储设备3200的全部操作。控制器3210可以被配置为与图9所示的控制器2210相同。
缓冲存储器装置3220可以临时存储待存储在非易失性存储器装置3231和3232中的数据。缓冲存储器装置3220可以临时存储从非易失性存储器装置3231和3232读取的数据。根据控制器3210的控制,可以将临时存储在缓冲存储器装置3220中的数据传输到主机设备3100或非易失性存储器装置3231和3232。
非易失性存储器装置3231和3232可以用作数据存储设备3200的存储介质。
PMIC 3240可以将通过连接端子3250输入的电力提供到数据存储设备3200的内部。根据控制器3210的控制,PMIC 3240可以管理数据存储设备3200的电力。
连接端子3250可以联接到主机设备3100的连接端子3110。诸如命令、地址、数据的信号以及电力可以通过连接端子3250在主机设备3100和数据存储设备3200之间传输。连接端子3250可以根据主机设备3100与数据存储设备3200之间的接口连接方法以各种形式中的任意一种来配置。连接端子3250可以布置在数据存储设备3200的任意一侧中或任意一侧上。
图11是示出根据实施例的包括数据存储设备的数据处理***的示图。参照图11,数据处理***4000可以包括主机设备4100和数据存储设备4200。
主机设备4100可以以诸如PCB的板形式来配置。尽管在图11中未示出,但是主机设备4100可以包括被配置成执行主机设备4100的功能的内部功能块。
数据存储设备4200可以以表面安装型封装形式来配置。数据存储设备4200可以通过焊球4250而安装在主机设备4100上。数据存储设备4200可以包括控制器4210、缓冲存储器装置4220以及非易失性存储器装置4230。
控制器4210可以控制数据存储设备4200的全部操作。控制器4210可以被配置为与图9所示的控制器2210相同。
缓冲存储器装置4220可以临时存储待存储在非易失性存储器装置4230中的数据。缓冲存储器装置4220可以临时存储从非易失性存储器装置4230读取的数据。临时存储在缓冲存储器装置4220中的数据可以通过控制器4210的控制被传输到主机设备4100或非易失性存储器装置4230。
非易失性存储器装置4230可以用作数据存储设备4200的存储介质。
图12是示出根据实施例的包括数据存储设备的网络***5000的示图。参照图12,网络***5000可以包括通过网络5500联接的服务器***5300和多个客户端***5410至5430。
服务器***5300可以响应于多个客户端***5410至5430的请求来服务数据。例如,服务器***5300可以存储从多个客户端***5410至5430提供的数据。在另一示例中,服务器***5300可以将数据提供到多个客户端***5410至5430。
服务器***5300可以包括主机设备5100和数据存储设备5200。数据存储设备5200可以被配置为图1的存储装置200、图8的SSD 2200、图10的数据存储设备3200或图11的数据存储设备4200。
图13是示出根据实施例的数据存储设备中包括的非易失性存储器装置的示图。参照图13,非易失性存储器装置210可以包括存储器单元阵列211、行解码器212、列解码器214、数据读取/写入块213、电压生成器215以及控制逻辑216。
存储器单元阵列211可以包括布置在字线WL1至WLm和位线BL1至BLn彼此相交的区域中的存储器单元MC。
行解码器212可以通过字线WL1至WLm联接到存储器单元阵列211。行解码器212可以通过控制逻辑216的控制来操作。行解码器212可以对从外部设备(未示出)提供的地址进行解码。行解码器212可以基于解码结果来选择并驱动字线WL1至WLm。例如,行解码器212可以将从电压生成器215提供的字线电压提供到字线WL1至WLm。
数据读取/写入块213可以通过位线BL1至BLn联接到存储器单元阵列211。数据读取/写入块213可以包括与位线BL1至BLn相对应的读取/写入电路RW1至RWn。数据读取/写入块213可以根据控制逻辑216的控制来操作。根据操作模式,数据读取/写入块213可以操作为写入驱动器或读出放大器。例如,在写入操作中,数据读取/写入块213可以操作为写入驱动器,该写入驱动器被配置成将从外部设备提供的数据存储在存储器单元阵列211中。在另一示例中,在读取操作中,数据读取/写入块213可以操作为读出放大器,该读出放大器被配置成从存储器单元阵列211读取数据。
列解码器214可以通过控制逻辑216的控制来操作。列解码器214可以对从外部设备(未示出)提供的地址进行解码。列解码器214可以基于解码结果,将与位线BL1至BLn相对应的数据读取/写入块213的读取/写入电路RW1至RWn与数据输入/输出(I/O)线(或数据I/O缓冲器)联接。
电压生成器215可以生成用于非易失性存储器装置210的内部操作的电压。通过电压生成器215生成的电压可以被施加到存储器单元阵列211的存储器单元。例如,可以将在编程操作中生成的编程电压施加到待执行编程操作的存储器单元的字线。在另一示例中,可以将在擦除操作中生成的擦除电压施加到待执行擦除操作的存储器单元的阱区。在另一示例中,可以将在读取操作中生成的读取电压施加到待执行读取操作的存储器单元的字线。
控制逻辑216可以基于从外部设备提供的控制信号来控制非易失性存储器装置210的全部操作。例如,控制逻辑216可以控制非易失性存储器装置210的操作,诸如非易失性存储器装置210的读取操作、写入操作、擦除操作。
本发明的上述实施例旨在示出而非限制本发明。可进行各种替代方案和等同方案。本发明不受本文描述的实施例的限制。本发明也不限于任何特定类型的半导体装置。本领域技术人员将理解的是,鉴于本公开,可进行其它的增加、减少或修改。本发明涵盖所附落入权利要求范围内的所有这种变型。
Claims (20)
1.一种存储装置,包括:
非易失性存储器,包括多个第一块和多个第二块,所述多个第一块具有每个存储一位数据的存储器单元,所述多个第二块具有每个存储多位数据的存储器单元;以及
控制器,确定所述多个第二块的使用完成的第二块之中的每个具有第一阈值数量或更少的有效页面的使用完成的第二块的数量是否等于或大于第二阈值数量,并且根据确定结果,在所述多个第一块的使用完成的第一块之中或者每个具有所述第一阈值数量或更少的有效页面的使用完成的第二块之中选择待执行垃圾收集的牺牲块。
2.根据权利要求1所述的存储装置,其中所述多个第一块包括单层单元块即SLC块,并且所述多个第二块包括超层单元块即XLC块。
3.根据权利要求1所述的存储装置,其中当每个具有所述第一阈值数量或更少的有效页面的使用完成的第二块的数量小于所述第二阈值数量时,所述控制器在使用完成的第一块之中选择待执行所述垃圾收集的牺牲块。
4.根据权利要求3所述的存储装置,其中所述控制器通过将存储在所选择的牺牲块中的所有数据迁移到所述多个第二块中的至少一个,对所选择的牺牲块执行所述垃圾收集。
5.根据权利要求1所述的存储装置,其中当每个具有所述第一阈值数量或更少的有效页面的使用完成的第二块的数量等于或大于所述第二阈值数量时,所述控制器在每个具有所述第一阈值数量或更少的有效页面的使用完成的第二块之中选择待执行所述垃圾收集的牺牲块。
6.根据权利要求5所述的存储装置,其中所述控制器通过将存储在所选择的牺牲块的有效页面中的数据迁移到另一第二块,对所选择的牺牲块执行所述垃圾收集。
7.根据权利要求6所述的存储装置,其中所述另一第二块是当前正在使用的第二块和未使用的第二块中的一个。
8.根据权利要求1所述的存储装置,其中所述控制器基于使用完成的第二块中的每一个的有效页面的数量,对每个具有所述第一阈值数量或更少的有效页面的第二块的数量进行计数,并且将所计数的第二块的数量与所述第二阈值进行比较。
9.一种存储装置的操作方法,所述存储装置包括非易失性存储器和控制器,所述非易失性存储器包括多个第一块和多个第二块,所述多个第一块具有每个存储一位数据的存储器单元,所述多个第二块具有每个存储多位数据的存储器单元,所述控制器控制所述非易失性存储器,所述操作方法包括:
确定是否满足所述非易失性存储器的垃圾收集触发条件;
确定所述多个第二块的使用完成的第二块之中的每个具有第一阈值数量或更少的有效页面的使用完成的第二块的数量是否等于或大于第二阈值数量;并且
根据针对使用完成的第二块的数量的确定结果,在所述多个第一块的使用完成的第一块之中或者每个具有所述第一阈值数量或更少的有效页面的使用完成的第二块之中选择待执行垃圾收集的牺牲块。
10.根据权利要求9所述的操作方法,其中所述多个第一块包括单层单元块即SLC块,并且所述多个第二块包括超层单元块即XLC块。
11.根据权利要求9所述的操作方法,其中当每个具有所述第一阈值数量或更少的有效页面的使用完成的第二块的数量小于所述第二阈值数量时,选择待执行所述垃圾收集的牺牲块包括在使用完成的第一块之中选择待执行所述垃圾收集的牺牲块。
12.根据权利要求11所述的操作方法,进一步包括:通过将存储在所选择的牺牲块中的所有数据迁移到所述多个第二块的至少一个,对所选择的牺牲块执行所述垃圾收集。
13.根据权利要求9所述的操作方法,其中当每个具有所述第一阈值数量或更少的有效页面的使用完成的第二块的数量等于或大于所述第二阈值数量时,选择待执行所述垃圾收集的牺牲块包括在每个具有所述第一阈值数量或更少的有效页面的使用完成的第二块之中选择待执行所述垃圾收集的牺牲块。
14.根据权利要求13所述的操作方法,进一步包括:通过将存储在所选择的牺牲块的有效页面中的数据迁移到另一第二块,对所选择的牺牲块执行所述垃圾收集。
15.根据权利要求14所述的操作方法,其中所述另一第二块是当前正在使用的第二块和未使用的第二块中的一个。
16.根据权利要求9所述的操作方法,进一步包括:基于使用完成的第二块中的每一个的有效页面的数量,对每个具有所述第一阈值数量或更少的有效页面的第二块的数量进行计数。
17.根据权利要求16所述的操作方法,其中确定每个具有所述第一阈值数量或更少的有效页面的使用完成的第二块的数量是否等于或大于所述第二阈值数量包括将所计数的第二块的数量与所述第二阈值数量进行比较。
18.一种存储装置,包括:
非易失性存储器,包括多个单层单元块即SLC块以及多个超层单元块即XLC块;以及
控制器,基于所述多个XLC块中的使用完成的XLC块之中的每个具有K个或更少的有效页面的使用完成的XLC块的数量,在所述多个SLC块之中或在所述多个XLC块之中选择待执行垃圾收集的牺牲块,其中K为1或大于1的自然数。
19.根据权利要求18所述的存储装置,其中当每个具有K个或更少的有效页面的使用完成的XLC块的数量小于P时,所述控制器通过在所述多个SLC块之中选择使用完成的SLC块作为牺牲块来执行所述垃圾收集,其中P为1或大于1的自然数。
20.根据权利要求18所述的存储装置,其中当每个具有K个或更少的有效页面的使用完成的XLC块的数量等于或大于P时,所述控制器通过在具有K个或更少的有效页面的使用完成的XLC块之中选择牺牲块来执行所述垃圾收集,其中P为1或大于1的自然数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200061334A KR20210144249A (ko) | 2020-05-22 | 2020-05-22 | 저장 장치 및 이의 동작 방법 |
KR10-2020-0061334 | 2020-05-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113704138A true CN113704138A (zh) | 2021-11-26 |
Family
ID=78607856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110043393.4A Withdrawn CN113704138A (zh) | 2020-05-22 | 2021-01-13 | 存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11526439B2 (zh) |
KR (1) | KR20210144249A (zh) |
CN (1) | CN113704138A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023039459A (ja) * | 2021-09-09 | 2023-03-22 | キオクシア株式会社 | メモリシステムおよび方法 |
CN114564147B (zh) * | 2022-01-06 | 2024-07-12 | 浙江华忆芯科技有限公司 | 一种数据流的自适应调整方法、***、硬盘和存储介质 |
US11875061B2 (en) * | 2022-04-22 | 2024-01-16 | Micron Technology, Inc. | Enhanced write performance utilizing program interleave |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102301772B1 (ko) * | 2015-03-09 | 2021-09-16 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 가비지 컬렉션 방법 |
KR102653401B1 (ko) * | 2016-07-18 | 2024-04-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
US10380018B2 (en) | 2017-04-04 | 2019-08-13 | Micron Technology, Inc. | Garbage collection |
KR20190044798A (ko) | 2017-10-23 | 2019-05-02 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
TWI698749B (zh) * | 2019-03-13 | 2020-07-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
-
2020
- 2020-05-22 KR KR1020200061334A patent/KR20210144249A/ko active Search and Examination
-
2021
- 2021-01-13 CN CN202110043393.4A patent/CN113704138A/zh not_active Withdrawn
- 2021-01-14 US US17/149,366 patent/US11526439B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20210365367A1 (en) | 2021-11-25 |
US11526439B2 (en) | 2022-12-13 |
KR20210144249A (ko) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110858129B (zh) | 数据存储装置及其操作方法 | |
US10789161B2 (en) | Data storage device to identify and process a sequential read request and operating method thereof | |
KR102419036B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20200095103A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
US10838854B2 (en) | Data storage device and operating method thereof | |
US20200218653A1 (en) | Controller, data storage device, and operating method thereof | |
US11520694B2 (en) | Data storage device and operating method thereof | |
US11526439B2 (en) | Storage device and operating method thereof | |
US11163696B2 (en) | Controller, memory system and operating method thereof for controlling a non-volatile memory device during a sync-up operation | |
KR20200121645A (ko) | 컨트롤러 및 그것의 동작 방법과 메모리 시스템 | |
US11379363B2 (en) | Controller, memory system, and operating methods thereof | |
KR102544162B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN111752858A (zh) | 控制器、存储器***及其操作方法 | |
CN114764396A (zh) | 数据存储装置及其操作方法 | |
KR20210156090A (ko) | 저장 장치 및 그 동작 방법 | |
KR20210156010A (ko) | 저장 장치 및 그 동작 방법 | |
US20210397558A1 (en) | Storage device and operating method thereof | |
CN110795360B (zh) | 数据存储设备以及该数据存储设备的操作方法 | |
US11157401B2 (en) | Data storage device and operating method thereof performing a block scan operation for checking for valid page counts | |
US10657046B2 (en) | Data storage device and operating method thereof | |
US20200250082A1 (en) | Controller, memory system, and operating method thereof | |
CN113010445A (zh) | 数据存储装置、其操作方法及使用其的存储*** | |
CN112231240A (zh) | 控制器、存储器***及其操作方法 | |
US11216384B2 (en) | Controller, memory system and operating method of the controller | |
US11429530B2 (en) | Data storage device 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 |
Application publication date: 20211126 |
|
WW01 | Invention patent application withdrawn after publication |