CN114201414A - 存储装置及其操作方法 - Google Patents
存储装置及其操作方法 Download PDFInfo
- Publication number
- CN114201414A CN114201414A CN202110549002.6A CN202110549002A CN114201414A CN 114201414 A CN114201414 A CN 114201414A CN 202110549002 A CN202110549002 A CN 202110549002A CN 114201414 A CN114201414 A CN 114201414A
- Authority
- CN
- China
- Prior art keywords
- block
- free
- memory
- blocks
- data
- 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
- 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
- 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
-
- 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/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/0608—Saving storage space on 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of 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/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
- 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/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
- 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
- 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/7211—Wear leveling
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及一种存储装置及其操作方法。该存储装置包括:存储器装置,包括存储数据的写入完成块和每个不包含数据的空闲块;以及存储器控制器,控制存储器装置以基于映射段的数量和空闲块的擦除计数执行垃圾收集操作,以将写入完成块之中的牺牲块中存储的有效数据存储在空闲块中的一个中,该映射段包括有效数据的逻辑地址与物理地址之间的映射信息。
Description
相关申请的交叉引用
本申请要求于2020年9月2日向韩国知识产权局提交的申请号为10-2020-0111848的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
各个实施例总体涉及一种电子装置,并且更特别地,涉及一种存储装置及其操作方法。
背景技术
存储装置被配置成响应于诸如计算机或智能电话的主机装置的控制存储数据。存储装置可以包括存储数据的存储器装置和控制存储器装置的存储器控制器。通常,存在两种类型的存储器装置:易失性存储器装置和非易失性存储器装置。
易失性存储器装置在供应电力时可以保留数据,并且在不供应电力时可能丢失所存储的数据。易失性存储器装置的示例包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
非易失性存储器装置即使在不供应电力时也不会丢失数据。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和闪速存储器。
发明内容
本公开的各个实施例针对一种考虑工作负载来执行损耗均衡的存储装置以及操作该存储装置的方法。
根据实施例,存储装置可以包括:存储器装置,包括存储数据的写入完成块和每个不包含数据的空闲块;以及存储器控制器,控制存储器装置以基于映射段的数量和空闲块的擦除计数执行垃圾收集操作,以将写入完成块之中的牺牲块中存储的有效数据存储在空闲块中的一个中,该映射段包括有效数据的逻辑地址与物理地址之间的映射信息。
根据实施例,存储装置可以包括:存储器装置,包括多个存储块;以及存储器控制器,控制存储器装置以根据多个存储块中存储的数据的大小和映射段的数量来分配存储与来自主机的写入请求相对应的写入数据的空闲块,并且控制存储器装置以响应于写入请求将写入数据存储在空闲块中,该空闲块在多个存储块中的每个不包含数据的空闲块之中,该映射段包括数据的逻辑地址与物理地址之间的映射信息。
根据实施例,存储装置可以包括:存储器装置,包括多个存储块,存储块包括多个写入完成块和一个或多个空闲块;以及存储器控制器,被配置成基于写入完成块之中的牺牲块中存储的有效数据的属性和空闲块的擦除计数来确定有效数据的属性以选择空闲块中的一个,并且将牺牲块的有效数据移动到所选择的空闲块中。
附图说明
图1是示出根据本公开的实施例的存储装置的示图;
图2是示出诸如图1的存储器装置的存储器装置的结构的示图;
图3是示出诸如图2的存储器单元阵列的存储器单元阵列的结构的示图;
图4是示出存储器控制器的结构的示图;
图5是示出诸如图4的映射表的映射表的示图;
图6是示出诸如图4的块信息的块信息的示图;
图7是示出根据本公开的实施例的存储装置在垃圾收集操作期间分配目标块的方法的示图;
图8是示出根据本公开的实施例的存储装置在垃圾收集操作期间分配目标块的方法的示图;
图9是示出根据本公开的另一实施例的存储装置在垃圾收集操作期间分配目标块的方法的示图;
图10是示出诸如图4的块信息的块信息的另一实施例的示图;
图11是示出基于与写入完成块的有效数据相对应的映射段的数量来分配存储主机的写入数据的空闲块的方法的示图;
图12是示出诸如图4的块信息的块信息的另一实施例的示图;
图13是示出基于与写入完成块的有效数据相对应的映射段的数量来分配存储主机的写入数据的空闲块的方法的示图;
图14是示出根据本公开的实施例的操作存储装置的方法的流程图;
图15是示出根据本公开的另一实施例的操作存储装置的方法的流程图;
图16是示出诸如图1中所示的存储器控制器的存储器控制器的实施例的示图;
图17是示出应用了根据本公开的存储装置的存储卡系统的框图;
图18是示出应用了根据本公开的存储装置的固态驱动器(SSD)系统的框图;以及
图19是示出应用了根据本公开的存储装置的用户系统的框图。
具体实施方式
参照附图,通过下面详细描述的实施例,本发明的优点和特征以及实现这些优点和特征的方法将是清楚的。然而,本发明可以以不同的形式实现,并且不应被解释为受限于本文阐述的实施例。相反,提供这些实施例以使本公开是彻底和完全的,并且将实施例的范围充分传达给本领域技术人员。在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。当本文使用术语“实施例”时不一定指代所有实施例。
图1是示出根据本公开的实施例的存储装置50的示图。
参照图1,存储装置50可以包括存储器装置100和控制存储器装置100的操作的存储器控制器200。存储装置50可以被配置成响应于主机400的控制来存储数据。存储装置50的示例可以包括蜂窝电话、智能电话、MP3播放器、膝上型电脑、台式计算机、游戏机、TV、平板计算机和/或车载式信息娱乐系统。
根据与主机400的通信方法相对应的主机接口,存储装置50可以被制造或配置为各种类型的存储装置中的任意一种。例如,存储装置50可以被配置为固态驱动器(SSD),MMC、eMMC、RS-MMC和微型MMC形式的多媒体卡,SD、迷你SD和微型SD形式的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-e或PCIe)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡和/或记忆棒。
存储装置50可以被制造为各种类型的封装中的任意一种。例如,存储装置50可以被制造为堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和/或晶圆级堆叠封装(WSP)。
存储器装置100可以存储数据。存储器装置100可以响应于存储器控制器200的控制来操作。存储器装置100可以包括存储器单元阵列,该存储器单元阵列包括存储数据的多个存储器单元。
存储器单元中的每一个可以是存储一位数据的单层单元(SLC)、存储两位数据的多层单元(MLC)、存储三位数据的三层单元(TLC)或存储四位数据的四层单元(QLC)。
存储器单元阵列可以包括多个存储块。存储块中的每一个可以包括多个存储器单元。每个存储块可以包括多个页面。根据实施例,页面可以是将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单位。
存储块可以是用于擦除数据的单位。根据实施例,存储器装置110可以被实现为或者包括:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、第四代低功率双倍数据速率(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)。在下面的描述中,假设存储器装置100是NAND闪速存储器。
存储器装置100可以从存储器控制器200接收命令和地址,并且访问存储器单元阵列中由该地址选择的区域。也就是说,存储器装置100可以对由地址选择的区域执行与命令相对应的操作。例如,存储器装置100可以执行写入操作(编程操作)、读取操作和擦除操作。在编程操作期间,存储器装置100可以将数据编程到由地址选择的区域中。在读取操作期间,存储器装置100可以从由地址选择的区域中读取数据。在擦除操作期间,存储器装置100可以擦除来自由地址选择的区域中的数据。
存储器控制器200可以控制存储装置50的一般操作。
当向存储装置50供应电力时,存储器控制器200可以运行固件(FW)。当存储器装置100是闪速存储器装置时,固件FW可以包括:主机接口层(HIL),控制与主机400的通信;闪存转换层(FTL),控制主机400和存储器装置100之间的通信;以及闪存接口层(FIL),控制与存储器装置100的通信。
根据实施例,存储器控制器200可以从主机400接收数据和逻辑块地址(LBA),并且将LBA转换为指示存储器装置100中的、存储数据的存储器单元的地址的物理块地址(PBA)。在本说明书中,逻辑块地址LBA可以指“逻辑的地址”或“逻辑地址”。在本说明书中,物理块地址PBA可以指“物理的地址”或“物理地址”。
存储器控制器200可以响应于来自主机400的请求而控制存储器装置100执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以将写入命令、物理块地址PBA和数据提供到存储器装置100。在读取操作期间,存储器控制器200可以将读取命令和物理块地址PBA提供到存储器装置100。在擦除操作期间,存储器控制器200可以将擦除命令和物理块地址PBA提供到存储器装置100。
根据实施例,存储器控制器200可以在没有来自主机400的请求的情况下,生成编程命令、地址和数据,并且将编程命令、地址和数据传送到存储器装置100。例如,存储器控制器200可以自主地向存储器装置100提供用于执行与执行损耗均衡、读取回收和垃圾收集相关联的读取操作和编程操作的命令、地址和数据。
根据实施例,存储器控制器200可以控制至少两个存储器装置100。存储器控制器200可以根据交错方案来控制存储器装置100,以便提高操作性能。根据交错方案,可以控制对至少两个存储器装置100的操作彼此重叠。
根据实施例,存储器控制器200可以包括操作控制器210、块分配控制器220和元数据存储装置230。
操作控制器210可以控制待由存储器装置100执行的操作。操作控制器210可以控制将响应于来自主机400的写入请求而提供的写入数据存储在存储器装置100中的编程操作。
操作控制器210可以控制在没有来自主机400的写入请求的情况下,根据由后台操作引起的写入请求将数据存储在存储器装置100中的编程操作。
块分配控制器220可以分配存储数据的存储块。根据实施例,块分配控制器220可以根据存储块的擦除计数来分配存储数据的存储块。存储块的擦除计数指示对该存储块已经执行擦除操作的次数。可以维持每个存储块的擦除计数。
更具体地,当存储相对频繁地访问的热数据时,块分配控制器220可以分配具有相对较小的擦除计数的存储块。当存储相对不频繁地访问的冷数据时,块分配控制器220可以分配具有相对较大的擦除计数的存储块。因此,存储器控制器200可以通过处理由主机400提供的写入请求或者通过执行由后台操作引起的写入操作来管理存储块的损耗均衡。
块分配控制器220可以响应于由主机400提供的写入请求来预测主机400的工作负载。例如,块分配控制器220可以基于存储在存储器装置100中的数据的量和与相应数据中的有效数据相对应的映射段的数量来预测工作负载。当存储的数据的量相对较大并且与有效数据相对应的映射段的数量相对较小时,主机400的工作负载的状态可以被认为是集中于写入顺序数据(顺序写入)的写入请求。另一方面,当存储的数据的量相对较小并且与有效数据相对应的映射段的数量相对较大时,主机400的工作负载的状态可以被认为是集中于写入随机数据(随机写入)的写入请求。
更具体地,顺序写入可以对应于针对与其相对应的顺序逻辑地址的写入请求,并且随机写入可以对应于针对与其相对应的非顺序逻辑地址的写入请求。换言之,块分配控制器220可以基于所存储的数据的量以及与有效数据相对应的映射段的数量相对于所有映射段的比率来预测主机400的写入请求的趋势。
根据实施例,当主机400的工作负载集中于顺序写入时,与写入请求相对应的写入数据可以被视为冷数据。另一方面,当主机400的工作负载集中于随机写入时,与写入请求相对应的写入数据可以被视为热数据。因此,块分配控制器220可以根据所存储的数据的量以及与有效数据相对应的映射段的数量相对于所有映射段的比率,分配存储响应于写入请求而输入的写入数据的存储块。
根据实施例,响应于由后台操作引起的写入操作,块分配控制器220可以根据与待存储的有效数据相对应的映射段的数量来分配存储块。例如,当与通过垃圾收集在牺牲块中存储的有效数据相对应的映射段的数量相对较大时,块分配控制器220可以分配具有相对较大的擦除计数的存储块。可选地,当与通过垃圾收集在牺牲块中存储的有效数据相对应的映射段的数量相对较小时,块分配控制器220可以分配具有相对较小的擦除计数的存储块。下面参照图4至图13更详细地描述分配存储块的方法。
元数据存储装置230可以存储元数据。元数据可以包括示出存储在存储器装置100中的数据的逻辑地址与物理地址之间的映射关系的映射表。
根据实施例,元数据可以包括关于存储块的块信息。
块信息可以进一步包括关于与每个存储块中存储的有效数据相对应的映射段的数量的信息以及指示每个存储块的擦除计数的擦除计数信息。根据实施例,块信息可以进一步包括指示每个存储块的状态的块状态信息。块状态信息可以指示存储块是已经完全存储数据的写入完成块、不包含数据的空闲块、尚未完全存储数据的开放块还是坏块。
主机400可以使用诸如以下的各种通信方法中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和/或负载减少的DIMM(LRDIMM)通信方法。
图2是示出图1的存储器装置100的结构的示图。
参照图2,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
外围电路120可以包括地址解码器121、电压生成器122、读取和写入电路123、数据输入和输出(输入/输出)电路124和感测电路125。
存储器单元阵列110可以包括多个存储块BLK1至BLKz,该多个存储块BLK1至BLKz可以通过行线RL联接到地址解码器121。存储块BLK1至BLKz可以通过位线BL1至BLm联接到读取和写入电路123。多个存储块BLK1至BLKz中的每一个可以包括多个存储器单元。根据实施例,多个存储器单元可以是非易失性存储器单元。在多个存储器单元之中,联接到相同字线的存储器单元可以被定义为一个页面。换言之,存储器单元阵列110可以包括多个页面。根据实施例,存储器单元阵列110中的多个存储块BLK1至BLKz中的每一个可以包括多个虚设单元。一个或多个虚设单元可以串联联接在漏极选择晶体管与存储器单元之间以及源极选择晶体管与存储器单元之间。
存储器装置100的存储器单元中的每一个可以包括存储单个位数据的单层单元(SLC)、存储两位数据的多层单元(MLC)、存储三位数据的三层单元(TLC)或存储四位数据的四层单元(QLC)。
外围电路120可以驱动存储器单元阵列110。例如,外围电路120可以驱动存储器单元阵列110,以执行编程操作、读取操作和擦除操作。
地址解码器121可以通过行线RL联接到存储器单元阵列110。行线RL可以包括漏极选择线、字线、源极选择线和公共源极线。根据本公开的实施例,字线可以包括普通字线和虚设字线。根据实施例,行线RL可以进一步包括管道选择线。
地址解码器121可以被配置成响应于控制逻辑130的控制来操作。地址解码器121可以从控制逻辑130接收地址ADDR。
地址解码器121可以被配置成对所接收到的地址ADDR中的块地址进行解码。地址解码器121可以根据经解码的块地址在存储块BLK1至BLKz之中选择至少一个存储块。地址解码器121可以被配置成对所接收到的地址ADDR中的行地址进行解码。地址解码器121可以根据经解码的行地址在所选择存储块的字线之中选择至少一个字线。地址解码器121可以将电压生成器122供应的工作电压Vop施加到所选择字线。
在编程操作期间,地址解码器121可以将编程电压施加到所选择字线,并且将具有比该编程电压低的电压电平的编程通过电压施加到未选择字线。在编程验证操作期间,地址解码器121可以将验证电压施加到所选择字线,并且将具有比该验证电压大的电压电平的验证通过电压施加到未选择字线。
在读取操作期间,地址解码器121可以将读取电压施加到所选择字线,并且将具有比该读取电压大的电压电平的读取通过电压施加到未选择字线。
可以以存储块为单位执行存储器装置100的擦除操作。在擦除操作期间,输入到存储器装置100的地址ADDR可以包括块地址。地址解码器121可以对块地址进行解码并且根据经解码的块地址来选择存储块中的至少一个。在擦除操作期间,地址解码器121可以将接地电压施加到所选择字线。
地址解码器121可以被配置成对所接收到的地址ADDR中的列地址进行解码。可以将经解码的列地址传送到读取和写入电路123。例如,地址解码器121可以包括诸如行解码器、列解码器和地址缓冲器的组件。
电压生成器122可以被配置成通过使用供应到存储器装置100的外部电源电压来生成多个操作电压Vop。电压生成器122可以由控制逻辑130控制。
电压生成器122可以通过调节外部电源电压来生成内部电源电压。由电压生成器122生成的内部电源电压可以用作存储器装置100的操作电压。
电压生成器122可以通过使用外部电源电压或内部电源电压来生成多个操作电压Vop。电压生成器122可以被配置成生成存储器装置100所使用的各种电压。例如,电压生成器122可以生成多个擦除电压、多个编程电压、多个虚拟通过电压、多个选择读取电压以及多个未选择读取电压。
电压生成器122可以包括接收内部电源电压的多个泵浦电容器以生成具有各种电压电平的多个操作电压Vop,并且可以响应于控制逻辑130的控制而通过选择性地启用多个泵浦电容器来生成多个操作电压Vop。
多个操作电压Vop可以通过地址解码器121供应到存储器单元阵列110。
读取和写入电路123可以包括第一至第m页面缓冲器PB1至PBm,第一至第m页面缓冲器PB1至PBm可以分别通过第一至第m位线BL1至BLm联接到存储器单元阵列110。第一至第m页面缓冲器PB1至PBm可以响应于控制逻辑130的控制而操作。
第一至第m页面缓冲器PB1至PBm可以与数据输入/输出电路124通信数据DATA。在编程操作期间,第一至第m页面缓冲器PB1至PBm可以通过数据输入/输出电路124和数据线DL接收待存储的数据DATA。
在编程操作期间,当将编程电压施加到所选择字线时,第一至第m页面缓冲器PB1至PBm可以将通过数据输入/输出电路124接收的数据DATA通过位线BL1至BLm传送到所选择存储器单元。可以根据所传送的数据DATA来对所选择页面的存储器单元进行编程。与施加有编程允许电压(例如,接地电压)的位线联接的存储器单元的阈值电压可能增加。与施加有编程禁止电压(例如,电源电压)的位线联接的存储器单元的阈值电压可被维持。在编程验证操作期间,第一至第m页面缓冲器PB1至PBm可以通过位线BL1至BLm从所选择存储器单元中感测所选择存储器单元中存储的数据DATA。
在读取操作期间,读取和写入电路123可以通过位线BL1至BLm从所选择页面的存储器单元读取数据DATA,并且可以将所读取的数据DATA存储在第一至第m页面缓冲器PB1至PBm中。
在擦除操作期间,读取和写入电路123可以使位线BL1至BLm浮置。根据实施例,读取和写入电路123可以包括列选择电路。
数据输入/输出电路124可以通过数据线DL联接到第一至第m页面缓冲器PB1至PBm。数据输入/输出电路124可以响应于控制逻辑130的控制而操作。
数据输入/输出电路124可以包括接收输入数据DATA的多个输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路124可以从外部控制器(未示出)接收待存储的数据DATA。在读取操作期间,数据输入/输出电路124可以将从读取和写入电路123中包括的第一至第m页面缓冲器PB1至PBm传送的数据DATA输出到外部控制器。
在验证操作期间,感测电路125可以响应于由控制逻辑130生成的允许位VRYBIT而生成参考电流。进一步地,感测电路125可以通过将来自读取和写入电路123的感测电压VPB与由参考电流生成的参考电压进行比较,将通过信号或失败信号输出到控制逻辑130。
控制逻辑130可以联接到地址解码器121、电压生成器122、读取和写入电路123、数据输入/输出电路124和感测电路125。控制逻辑130可以被配置成控制存储器装置100的一般操作。控制逻辑130可以响应于从外部装置传送的命令CMD而操作。
控制逻辑130可以通过响应于命令CMD和地址ADDR生成各种信号来控制外围电路120。例如,控制逻辑130可以响应于命令CMD和地址ADDR生成操作信号OPSIG、地址ADDR、读取和写入电路控制信号PBSIGNALS以及允许位VRYBIT。控制逻辑130可以将操作信号OPSIG输出到电压生成器122,将地址ADDR输出到地址解码器121,将读取和写入控制信号输出到读取和写入电路123,并且将允许位VRYBIT输出到感测电路125。另外,控制逻辑130可以响应于感测电路125输出的通过信号或失败信号((PASS/FAIL)来确定验证操作是通过还是失败。
图3是示出图2的存储器单元阵列110的结构的示图。
参照图3,第一至第z存储块BLK1至BLKz可以共同联接到第一至第m位线BL1至BLm。在图3中,通过示例的方式,示出了多个存储块BLK1至BLKz之中的第一存储块BLK1中的组件。第二至第z存储块BLK2至BLKz中的每一个可以具有与第一存储块BLK1的配置基本上相同的配置。
第一存储块BLK1可以包括多个单元串CSL_1至CS1_m,其中m为正整数。第一至第m单元串CS1_1至CS1_m中的每一个可以分别联接到第一至第m位线BL1至BLm。第一至第m单元串CS1_1至CS1_m中的每一个可以包括:漏极选择晶体管DST,串联联接的多个漏极虚设单元DDMC,串联联接的多个存储器单元MC1至MCN(其中N为正整数),串联联接的多个源极虚设单元SDMC和源极选择晶体管SST。
第一至第m单元串CS1_1至CS1_m中的每一个中包括的漏极选择晶体管DST的栅极端子可以联接到漏极选择线DSL。第一至第m单元串CS1_1至CS1_m中的每一个中包括的漏极虚设单元DDMC的栅极端子可以联接到漏极虚设字线DDWL。第一至第m单元串CS1_1至CS1_m中的每一个中包括的第一至第N虚设单元MC1至MCN的栅极端子可以分别联接到第一至第N字线WL_1至WL_N。第一至第m单元串CS1_1至CS1_m中的每一个中包括的源极虚设单元SDMC的栅极端子可以联接到源极虚设字线SDWL,并且第一至第m单元串CS1_1至CS1_m中的每一个中包括的源极选择晶体管SST的栅极端子可以联接到源极选择线SSL。
通过示例的方式,描述了多个单元串CS1_1至CS1_m之中的第一单元串CS1_1的结构。第二至第m单元串CS1_2至CS1_m中的每一个可以以与第一单元串CS1_1相同的方式配置。
第一单元串CS1_1中包括的漏极选择晶体管DST的漏极端子可以联接到第一位线BL1。第一单元串CS1_1中包括的漏极选择晶体管DST的源极端子可以联接到第一单元串CS1_1中包括的漏极虚设单元DDMC的漏极端子。第一至第N存储器单元MC1至MCN可以彼此串联联接。漏极虚设单元DDMC可以与第N存储器单元MCN串联联接,并且第一存储器单元MC1可以与源极虚设单元SDMC串联联接。第一单元串CS1_1中包括的源极选择晶体管SST的漏极端子可以联接到第一单元串CS1_1中包括的源极虚设单元SDMC的源极端子。第一单元串CS1_1中包括的源极选择晶体管SST的源极端子可以联接到公共源极线CSL。根据实施例,公共源极线CSL可以公共地连接到第一至第z存储块BLK1至BLKz。
漏极选择线DSL、漏极虚设字线DDWL、第一至第N字线WL_1至WL_N、源极虚设字线SDWL和源极选择线SSL可以包括在如图2所示的行线RL中。漏极选择线DSL、漏极虚设字线DDWL、第一至第N字线WL_1至WL_N、源极虚设字线SDWL和源极选择线SSL可以被地址解码器121控制。公共源极线CSL可以由控制逻辑130控制。第一至第m位线BL1至BLm可以由读取和写入电路123控制。
图4是示出存储器控制器200的结构的示图。
参照图4,存储器控制器200可以包括操作控制器210、块分配控制器220和元数据存储装置230。
操作控制器210可以包括垃圾收集控制器211和编程控制器212。
垃圾收集控制器211可以控制存储器装置100执行垃圾收集操作。垃圾收集控制器211可以将牺牲块确定为待被执行垃圾收集操作的目标块,并且可以将关于所确定的牺牲块的信息传送到块分配控制器220。关于牺牲块的信息可以是所确定的牺牲块的物理地址信息。
垃圾收集控制器211可以控制存储器装置100读取牺牲块中存储的有效数据,并且将读取数据存储在由块分配控制器220分配的目标块中。
编程控制器212可以响应于来自主机400的写入请求而控制存储器装置100以将写入数据存储在存储器装置100中。
编程控制器212可以请求块分配控制器220分配空闲块,以便将逻辑地址转换为物理地址。编程控制器212可以生成用于指示所分配的空闲块存储写入数据的编程命令,并且可以将所生成的编程命令提供到存储器装置100。
块分配控制器220可以包括工作负载预测器221和块分配器222。
工作负载预测器221可以预测存储装置50的工作负载。
当执行垃圾收集操作时,工作负载预测器221可以基于从垃圾收集控制器211提供的关于牺牲块的信息,根据与牺牲块中存储的有效数据相对应的映射段的数量来预测工作负载。当与牺牲块中存储的有效数据相对应的映射段的数量大于阈值时,工作负载预测器221可以确定有效数据是随机数据。另一方面,当与牺牲块中存储的有效数据相对应的映射段的数量小于阈值时,工作负载预测器221可以确定有效数据是顺序数据。顺序数据可以被视为主机400相对不频繁地访问的冷数据。随机数据可以被视为主机400相对频繁地访问的热数据。工作负载预测器221可以向块分配器222提供指示牺牲块中存储的有效数据是热数据还是冷数据的工作负载信息。
当运行主机400提供的写入请求时,工作负载预测器221可以响应于来自编程控制器212的空闲块分配请求来预测工作负载。
工作负载预测器221可以基于存储在存储器装置100中的数据的量以及与存储在存储器装置100中的有效数据相对应的映射段的数量来预测工作负载。更具体地,工作负载预测器221可以基于空闲块的数量和与有效数据相对应的映射段的数量的比率,或写入完成块的数量和与有效数据相对应的映射段的数量的比率来预测工作负载。
例如,当存在十(10)个空闲块和一百(100)个空闲块,并且存在分别与10个空闲块和100个空闲块的有效数据相对应的三千(3000)个映射段时,映射段的数量除以空闲块的数量分别为300和30。当除法的商较大时,工作负载可能包含相对较大的量的顺序数据。当使用写入完成块的数量来预测工作负载时,如果写入完成块的数量分别为一千(1000)和两千(2000),并且与写入完成块中的每一个的有效数据相对应的映射段的数量为1000。映射段的数量除以写入完成块的数量分别为1和0.5。当除法的商较小时,工作负载可能包含相对较大的量的顺序数据。
工作负载预测器221可以将阈值比率与空闲块的数量和对应于有效数据的映射段的数量的比率进行比较,或者将阈值比率与写入完成块的数量和对应于有效数据的映射段的数量的比率进行比较。进一步地,工作负载预测器221可以基于阈值比较结果,确定当前存储的数据主要是顺序数据还是随机数据。当数据包含大量顺序数据时,可以预测,可以输入主要针对主机400不频繁访问的冷数据的写入请求。另一方面,当数据包含大量随机数据时,可以预测,可以输入主要针对主机400频繁访问的热数据的写入请求。工作负载预测器221可以向块分配器222提供指示当前工作负载集中于热数据的热数据工作负载信息或指示当前工作负载集中于冷数据的冷数据工作负载信息。
块分配器222可以根据来自工作负载预测器221的工作负载信息来分配存储块。更具体地,块分配器222可以响应于指示牺牲块中存储的有效数据为热数据的工作负载信息而分配具有相对较低的擦除计数的存储块。另一方面,块分配器222可以响应于指示牺牲块中存储的有效数据为冷数据的工作负载信息而分配具有相对较高的擦除计数的存储块。
根据实施例,块分配器222可以响应于指示牺牲块中存储的有效数据为热数据的工作负载信息,根据空闲块的擦除计数信息,分配具有最低擦除计数的存储块作为垃圾收集目标块。另一方面,块分配器222可以响应于指示牺牲块中存储的有效数据为冷数据的工作负载信息,根据空闲块的擦除计数信息,分配具有最高擦除计数的存储块作为垃圾收集目标块。
根据各个实施例,块分配器222可以响应于指示牺牲块中存储的有效数据为热数据的工作负载信息,根据空闲块的擦除计数信息,分配擦除计数低于阈值计数的存储块之中的、具有最低擦除计数的存储块作为垃圾收集目标块。然而,块分配器222可以响应于指示牺牲块中存储的有效数据为冷数据的工作负载信息,根据空闲块的擦除计数信息,分配擦除计数低于阈值计数的存储块之中的、具有最高擦除计数的存储块作为垃圾收集目标块。
根据实施例,块分配器222可以响应于热数据工作负载信息,根据空闲块的擦除计数信息,分配具有最低擦除计数的存储块作为存储写入数据的存储块。另一方面,块分配器222可以响应于冷数据工作负载信息,分配具有最高擦除计数的存储块作为存储写入数据的存储块。
根据各个实施例,块分配器222可以响应于热数据工作负载信息,根据空闲块的擦除计数信息,分配擦除计数低于阈值计数的存储块之中的、具有最低擦除计数的存储块作为存储写入数据的存储块。另一方面,块分配器222可以响应于冷数据工作负载信息,根据空闲块的擦除计数信息,分配擦除计数低于阈值计数的存储块之中的、具有最高擦除计数的存储块作为存储写入数据的存储块。
元数据存储装置230可以包括映射表231和块信息232。映射表231可以包括与如上参照图3所述的第一至第z存储块BLK1至BLKz相对应的物理地址和分别与物理地址相对应的逻辑地址之间的映射信息。映射表231可以包括多个映射段。映射段中的每一个可以包括多个映射条目。映射条目可以指与一个逻辑地址相对应的映射信息。根据实施例,映射段可以是用于读取映射信息的单位。
块信息232可以指关于存储器装置100中包括的存储块的信息。
块信息232可以进一步包括关于与存储块中的每一个中存储的有效数据相对应的映射段的数量的信息以及指示各个存储块的擦除计数的擦除计数信息。根据实施例,块信息232可以进一步包括指示每个存储块的状态的块状态信息。更具体地,块状态信息可以指示存储块是已经完全存储数据的写入完成块、数据为空的空闲块、尚未完全存储数据的开放块还是坏块。
图5是示出图4的映射表231的示图。
通过示例的方式,图5示出了一个存储块的映射表231。然而,元数据存储装置230可以包括针对存储块中的每一个的映射表。
图5的映射表231可以包括第一至第五映射段seg1至seg5。在图5所示的示例中,每个映射段包括两个映射条目。然而,一个映射段中包括的映射条目的数量不限于两个;每个映射段可以包括任意合适数量的映射条目。
每个映射条目可以包括关于映射到主机提供的数据的逻辑块地址LBA的物理块地址PBA的信息。例如,第一至第十逻辑块地址LBA1至LBA10可以分别对应于第一至第十物理块地址PBA1至PBA10。通过示例的方式,图5中仅示出了第一至第十逻辑块地址LBA1至LBA10和第一至第十物理块地址PBA1至PBA10。然而,本公开并不限于此。
图6是示出图4的块信息的示图。
参照图6,块信息可以包括擦除计数信息232a和有效数据信息232b。
擦除计数信息232a可以包括针对存储器装置中的每个存储块的擦除计数(Erase_Count)。每个擦除计数指示相应存储块被擦除的次数。
根据实施例,擦除计数信息232a可以进一步包括针对存储器装置中的每个存储块的有效数据段计数(Valid_Seg_Count)。每个有效数据段计数指示与相应存储块中存储的有效数据相对应的映射段的数量。
有效数据段计数大于零(0)的存储块可以存储数据。有效数据段计数为零(0)的存储块可以是不包含数据的空闲块。
有效数据信息232b可以包括指示第一存储块BLK1中存储的数据是否是有效数据的信息。例如,有效数据信息232b可以包括多个逻辑块地址LBA和物理块地址(PBA)对以及关于与每对相关联的数据是否有效(Valid/Invalid)的指示。
擦除计数信息232a中的针对给定存储块的有效数据段计数(Valid_Seg_Count)可以基于与该存储块相对应的有效数据信息232b来计算。例如,假设一个映射段包括两个逻辑地址上的映射数据(映射条目),则第一存储块BLK1的有效数据段计数可以为三(3),其指示包括第一逻辑块地址LBA1和第二逻辑块地址LBA2的映射条目的映射段、包括第六逻辑块地址LBA6的映射条目的映射段和包括第十逻辑块地址LBA10的映射条目的映射段。
图7是示出根据本公开的实施例的在垃圾收集操作期间分配目标块的方法的示图。该方法可以由存储装置执行。
参照图4和图7,假设通过垃圾收集操作将两个牺牲块VIC1和VIC2中存储的有效数据(Valid)存储在新的空闲块中。两个牺牲块VIC1和VIC2可以是分别在两个不同的垃圾收集操作期间被确定为牺牲块的存储块。
块分配控制器220可以通过使用第一牺牲块VIC1的映射表来分配存储第一牺牲块VIC1中存储的有效数据的空闲块。
更具体地,工作负载预测器221可以通过使用第一牺牲块VIC1的映射表来确定与第一牺牲块VIC1中存储的有效数据相对应的映射段的数量。参照图7,四(4)个映射段可以与第一牺牲块VIC1中存储的有效数据相对应。更具体地,与第一牺牲块VIC1的第一、第二、第五、第七和第九逻辑块地址LBA1、LBA2、LBA5、LBA7和LBA9相对应的数据可能是有效的。与第三、第四、第六、第八和第十逻辑块地址LBA3、LBA4、LBA6、LBA8和LBA10相对应的数据可能是无效的,即无效数据(Invalid)。与有效数据相对应的段可以包括与第一和第二逻辑块地址LBA1和LBA2相对应的第一段seg1、与第五和第六逻辑块地址LBA5和LBA6相对应的第二段seg2、与第七和第八逻辑块地址LBA7和LBA8相对应的第三段seg3以及与第九和第十逻辑块地址LBA9和LBA10相对应的第四段seg4。因此,第一牺牲块VIC1的有效数据段计数可以为4。
工作负载预测器221可以将第一牺牲块VIC1的有效数据段计数与可以提前确定的阈值进行比较。作为比较的结果,当有效数据段计数大于阈值时,工作负载预测器221可以将牺牲块中存储的数据的属性确定为随机数据。在一些实施例中,阈值可以由存储器装置或存储块的大小来确定。例如,阈值可以为3。因为第一牺牲块VIC1的有效数据段计数为4,大于阈值3,所以工作负载预测器221可以将第一牺牲块VIC1中存储的数据的属性确定为随机数据。根据实施例,随机数据可以被视为热数据。
块分配器222可以基于指示牺牲块中存储的有效数据为热数据的工作负载信息,分配存储第一牺牲块VIC1的有效数据的目标块。更具体地,块分配器222可以分配第一至第十空闲块(Free_BLK1至Free_BLK10)之中的具有最低擦除计数的空闲块作为垃圾收集目标块。块分配器222可以基于块信息232中包括的空闲块的擦除计数信息(Free_BLK_E/C_Table)来分配存储第一牺牲块VIC1中存储的有效数据的空闲块。块分配器222可以分配Free_BLK1至Free_BLK10之中的具有最低擦除计数(即,1)的第三空闲块Free_BLK3作为存储第一牺牲块VIC1中存储的有效数据的目标块。
工作负载预测器221可以基于与第二牺牲块VIC2中存储的有效数据相对应的映射段的数量,分配存储第二牺牲块VIC2中存储的有效数据的目标块。
更具体地,与第二牺牲块VIC2中存储的有效数据相对应的映射段可以包括与第一和第二逻辑块地址LBA1和LBA2相对应的第一段seg1以及与第三和第四逻辑块地址LBA3和LBA4相对应的第二段seg2。因此,总有效数据段计数可以为2。
工作负载预测器221可以将第二牺牲块VIC2的有效数据段计数与可以提前确定的阈值进行比较。作为比较的结果,当有效数据段计数小于阈值时,工作负载预测器221可以确定牺牲块中存储的数据的属性为顺序数据。例如,阈值可以为3。因为第二牺牲块VIC2的有效数据段计数为2,小于阈值3,所以工作负载预测器221可以将第二牺牲块VIC2中存储的数据确定为顺序数据。根据实施例,顺序数据可以被视为冷数据。
块分配器222可以分配第一至第十空闲块Free_BLK1至Free_BLK10之中的具有最高擦除计数的空闲块作为存储第二牺牲块VIC2中存储的有效数据的目标块。因此,块分配器222可以分配擦除计数为13的第七空闲块Free_BLK7作为存储第二牺牲块VIC2中存储的有效数据的目标块。
图8是示出根据本公开的实施例的存储装置在垃圾收集操作期间分配目标块的方法的示图。
参照图4和图8,工作负载预测器221可以如参照图7所述将第一牺牲块VIC1中存储的数据的属性确定为随机数据。根据实施例,随机数据可以被视为热数据。块分配器222可以响应于指示第一牺牲块VIC1中存储的有效数据为热数据的工作负载信息而分配存储第一牺牲块VIC1的有效数据的目标块。
块分配器222可以分配第一至第十空闲块Free_BLK1至Free_BLK10之中的擦除计数小于擦除计数阈值的空闲块中的一个。在擦除计数阈值为7的示例中,块分配器222可以分配擦除计数小于7的空闲块之中的具有最低擦除计数(即,1)的第三空闲块Free_BLK3作为垃圾收集目标块。
以相同的方式,工作负载预测器221可以确定第二牺牲块VIC2中存储的数据的属性为顺序数据。根据实施例,顺序数据可以被视为冷数据。块分配器222可以响应于指示第二牺牲块VIC2中存储的有效数据为冷数据的工作负载信息,分配存储第二牺牲块VIC2的有效数据的目标块。
块分配器222可以分配第一至第十空闲块Free_BLK1至Free_BLK10之中的擦除计数小于擦除计数阈值的空闲块中的一个。在擦除计数阈值为7的示例中,块分配器222可以分配擦除计数小于7的空闲块之中的具有最高擦除计数(即,6)的第九空闲块Free_BLK9作为垃圾收集目标块。
图9是示出根据本公开的另一实施例的存储装置在垃圾收集操作期间分配目标块的方法的示图。
参照图4和图9,工作负载预测器221可以如参照图7所述将第一牺牲块VIC1中存储的数据的属性确定为随机数据。根据实施例,随机数据可以被视为热数据。块分配器222可以响应于指示第一牺牲块VIC1中存储的有效数据为热数据的工作负载信息,分配存储第一牺牲块VIC1的有效数据的目标块。
在图9的实施例中,块分配器222可以通过使用空闲块的平均擦除计数来分配存储牺牲块中存储的有效数据的目标块。
块分配器222可以计算第一至第十空闲块Free_BLK1至Free_BLK10的平均擦除计数。平均擦除计数可以通过将第一至第十空闲块Free_BLK1至Free_BLK10的擦除计数的总和除以空闲块的数量来计算。因为第一至第十空闲块Free_BLK1至Free_BLK10的总擦除计数为60,所以平均擦除计数为6。
块分配器222可以分配第一至第十空闲块Free_BLK1至Free_BLK10之中的擦除计数小于平均擦除计数的空闲块中的一个作为垃圾收集目标块。块分配器222可以分配擦除计数小于6(平均擦除计数)的空闲块中的任意一个作为垃圾收集目标块。因此,可以分配第一至第四空闲块Free_BLK1至Free_BLK4或第六空闲块Free_BLK6中的任意一个作为垃圾收集目标块。
工作负载预测器221可以将第二牺牲块VIC2中存储的数据的属性确定为顺序数据。根据实施例,顺序数据可以被视为冷数据。块分配器222可以响应于指示第二牺牲块VIC2中存储的有效数据为冷数据的工作负载信息,分配存储第二牺牲块VIC2的有效数据的目标块。
块分配器222可以分配第一至第十空闲块Free_BLK1至Free_BLK10之中的擦除计数大于平均擦除计数的空闲块中的一个作为垃圾收集目标块。因为平均擦除计数为6,所以块分配器222可以分配擦除计数大于6(平均擦除计数)的任意空闲块作为垃圾收集目标块。因此,块分配器222可以分配第五空闲块Free_BLK5、第七空闲块Free_BLK7、第八空闲块Free_BLK8和第十空闲块Free_BLK10(即,擦除计数分别为8、13、9和8的空闲块)中的一个作为垃圾收集目标块。
图10是示出图4的块信息的另一实施例的示图。
图11是示出基于与如图10所示的写入完成块的有效数据相对应的映射段的数量来分配存储主机的写入数据的空闲块的方法的示图。
参照图10和图11,可以为每个写入完成块保持关于与该写入完成块的有效数据相对应的映射段的数量的信息232c。
存储器控制器200可以响应于从主机400输入的写入请求来预测主机400提供的工作负载。
更具体地,存储器控制器200可以基于写入完成块的数量和与有效数据相对应的映射段的数量的比率来预测工作负载。
在图10所示的示例中,写入完成块有效数据段表(Closed_BLK_V/S_Table)可以包括针对第一至第十写入完成块Closed_BLK1至Closed_BLK10中的每一个的有效数据段计数(Valid_Seg_Count)。有效数据段计数(Valid_Seg_Count)中的每一个可以指示与该存储块中存储的有效数据相对应的映射段的数量。
根据实施例,写入完成块有效数据段表(Closed_BLK_V/S_Table)可以包括写入完成块的总数量,即Closed_BLK1至Closed_BLK10的总数量,以及每个这种块的有效数据段计数(Valid_Seg_Count)。写入完成块有效数据段表还可以包括第一至第十写入完成块Closed_BLK1至Closed_BLK10的有效数据段计数的总和,在图10所示的实施例中,该有效数据段计数的总和为26。
存储器控制器200可以基于有效数据段计数的总和以及写入完成块的数量来预测主机数据属性。总有效数据段计数24除以写入完成块(Closed_BLK)的数量(即,10)为2.4。存储器控制器200可以将写入完成块的数量和映射段的数量的比率与阈值进行比较。进一步地,存储器控制器200可以基于比较结果,确定当前所存储的数据主要是顺序数据还是随机数据。假设阈值为3,在图10的实施例中为2.4的写入完成块的数量和与有效数据相对应的映射段的数量的比率小于阈值。因此,存储器控制器200可以确定工作负载主要包括顺序数据。当所存储的数据主要是顺序数据时,可以预测,输入了集中于主机400相对不频繁访问的冷数据的写入请求。
参照图11,存储器控制器200可以分配第一至第十空闲块Free_BLK1至Free_BLK10之中的具有最高擦除计数的块作为存储写入数据的存储块。
更具体地,存储器控制器200可以分配第一至第十空闲块Free_BLK1至Free_BLK10之中的具有最高擦除计数(即,13)的第七空闲块Free_BLK7作为存储写入数据的存储块。
根据实施例,存储器控制器200可以分配第一至第十空闲块Free_BLK1至Free_BLK10之中的擦除计数小于擦除计数阈值的空闲块中的一个作为存储写入数据的存储块。例如,当擦除计数阈值为7时,存储器控制器200可以分配擦除计数小于7的空闲块之中的具有最低擦除计数(即,1)的第三空闲块Free_BLK3作为存储写入数据的存储块。
根据实施例,存储器控制器200可以计算第一至第十空闲块Free_BLK1至Free_BLK10的平均擦除计数。平均擦除计数可以通过将第一至第十空闲块Free_BLK1至Free_BLK10的擦除计数的总和除以空闲块的数量来计算。第一至第十空闲块Free_BLK1至Free_BLK10的总擦除计数可以是60。在这种情况下,第一至第十空闲块Free_BLK1至Free_BLK10的平均擦除计数为6。
存储器控制器200可以分配第一至第十空闲块Free_BLK1至Free_BLK10之中的擦除计数小于平均擦除计数的空闲块中的一个作为存储写入数据的存储块。例如,存储器控制器200可以分配擦除计数小于6的任意空闲块作为垃圾收集目标开放块。因此,可以分别分配擦除计数分别为4、3、1、5和3的第一至第四空闲块Free_BLK1至Free_BLK4和第六空闲块Free_BLK6中的一个作为存储写入数据的存储块。
图12是示出图4的块信息的另一实施例的示图。
图13是示出基于与如图12所示的写入完成块的有效数据相对应的映射段的数量来分配存储主机的写入数据的空闲块的方法的示图。
参照图12和图13,可以为每个写入完成块保持关于与相应写入完成块的有效数据相对应的映射段的数量的信息232d。
存储器控制器200可以响应于从主机400输入的写入请求来预测主机400提供的工作负载。
更具体地,存储器控制器200可以基于写入完成块的数量和与有效数据相对应的映射段的数量的比率来预测工作负载。
在图12所示的示例中,写入完成块有效数据段表(Closed_BLK_V/S_Table)可以包括针对第一至第十写入完成块Closed_BLK1至Closed_BLK10中的每一个的有效数据段计数(Valid_Seg_Count)。有效数据段计数(Valid_Seg_Count)中的每一个可以指示与相应的存储块中存储的有效数据相对应的映射段的数量。
根据实施例,写入完成块有效数据段表(Closed_BLK_V/S_Table)可以包括写入完成块的总数量和第一至第十写入完成块Closed_BLK1至Closed_BLK10的有效数据段计数(Valid_Seg_Counts)的总和,该总和在这种情况下为34。
存储器控制器200可以基于所有有效数据段计数的总和以及写入完成块的数量来预测主机数据属性。有效数据段计数的总和,在这种情况下为38,除以写入完成块的数量,即10,为3.8。存储器控制器200可以将写入完成块的数量和映射段的数量的比率与阈值进行比较。进一步地,存储器控制器200可以确定当前所存储的数据主要是顺序数据还是随机数据。假设阈值为3,因为写入完成块的数量和与有效数据相对应的映射段的数量的比率大于阈值,所以存储器控制器200可以确定工作负载主要为随机工作负载。当存在相对较大百分比的随机数据时,可以预测,输入了集中于主机400频繁访问的热数据的写入请求。
参照图13,存储器控制器200可以分配第一至第十空闲块Free_BLK1至Free_BLK10之中的具有最低擦除计数的空闲块作为存储写入数据的存储块。
存储器控制器200可以分配第一至第十空闲块Free_BLK1至Free_BLK10之中的具有最低擦除计数(即,1)的第三空闲块Free_BLK3作为存储写入数据的存储块。
根据实施例,存储器控制器200可以分配第一至第十空闲块Free_BLK1至Free_BLK10之中的擦除计数小于擦除计数阈值的空闲块中的一个作为存储写入数据的存储块。当擦除计数阈值为7时,存储器控制器200可以分配第一至第十空闲块Free_BLK1至Free_BLK10之中的擦除计数小于7的空闲块(即,第一空闲块Free_BLK1、第二空闲块Free_BLK2、第三空闲块Free_BLK3、第四空闲块Free_BLK4、第六空闲块Free_BLK6、第九空闲块Free_BLK9)之中的、具有最低擦除计数(即,1)的第三空闲块Free_BLK3作为存储写入数据的存储块。
根据实施例,存储器控制器200可以计算第一至第十空闲块Free_BLK1至Free_BLK10的平均擦除计数。平均擦除计数可以通过将第一至第十空闲块Free_BLK1至Free_BLK10的擦除计数的总和除以空闲块的数量来计算。第一至第十空闲块Free_BLK1至Free_BLK10的总擦除计数可以是60。在这种情况下,第一至第十空闲块Free_BLK1至Free_BLK10的平均擦除计数为6。
存储器控制器200可以分配第一至第十空闲块Free_BLK1至Free_BLK10之中的擦除计数小于平均擦除计数的空闲块中的一个作为存储写入数据的存储块。例如,存储器控制器200可以分配擦除计数小于6的任意空闲块作为存储写入数据的存储块。
因此,可以分配擦除计数分别为4、3、1、5和3的第一至第四空闲块Free_BLK1至Free_BLK4和第六空闲块Free_BLK6中的一个作为存储写入数据的存储块。
图14是示出根据本公开的实施例的操作存储装置的方法的流程图。
参照图14,在操作S1401,存储装置可以确定待被执行垃圾收集操作的牺牲块。例如,牺牲块可以是在牺牲块中存储的所有数据之中的有效数据的量最小的存储块。
在操作S1403,存储装置可以确定与通过垃圾收集操作待存储的有效数据相对应的映射段的数量是否超过阈值。作为确定的结果,当与有效数据相对应的映射段的数量超过阈值时,处理流程进行到操作S1405,否则,处理流程进行到操作S1409。
在操作S1405,存储装置可以确定待存储的有效数据是随机数据(即,热数据)。随机性被认为是有效数据的属性。
在操作S1407,存储装置可以将有效数据存储在存储器装置中包括的空闲块之中的具有相对较小的擦除计数的空闲块中。例如,存储装置可以将有效数据存储在存储器装置中的空闲块之中的具有最小擦除计数的空闲块中。在另一示例中,存储装置可以将有效数据存储在存储器装置中的空闲块之中的擦除计数小于或等于阈值擦除计数的空闲块之中的、具有最小擦除计数的空闲块中。在另一示例中,存储装置可以将有效数据存储在存储器装置中的空闲块之中的擦除计数小于平均擦除计数的空闲块之中的任意空闲块中。
在操作S1409,存储装置可以确定待存储的有效数据是顺序数据(即,冷数据)。顺序性被认为是有效数据的属性。
在操作S1411,存储装置可以将有效数据存储在存储器装置中包括的空闲块之中的具有相对较大擦除计数的空闲块中。例如,存储装置可以将有效数据存储在存储器装置中的空闲块之中的具有最大擦除计数的空闲块中。在另一示例中,存储装置可以将有效数据存储在存储器装置中的空闲块之中的擦除计数小于或等于阈值擦除计数的空闲块之中的具有最大擦除计数的空闲块中。在另一示例中,存储装置可以将有效数据存储在存储器装置中的空闲块之中的擦除计数小于平均擦除计数的空闲块之中的任意空闲块中。
图15是示出根据本公开的另一实施例的操作存储装置的方法的流程图。
参照图15,在操作S1501,存储装置可以从主机接收写入请求。
在操作S1503,存储装置可以预测主机的工作负载。更具体地,存储装置可以基于存储器装置中存储的数据的量以及与所存储的有效数据相对应的映射段的数量来预测工作负载。例如,存储装置可以确定写入完成块的数量和与有效数据相对应的映射段的数量的比率是否超过阈值比率。作为确定的结果,当写入完成块的数量和与有效数据相对应的映射段的数量的比率超过阈值比率时,处理流程进行到操作S1505,否则处理流程进行到操作S1509。
在操作S1505,存储装置可以将主机工作负载确定为随机数据(即,热数据)。
在操作S1507,存储装置可以将写入数据存储在存储器装置中包括的空闲块之中的具有相对较小擦除计数的空闲块中。例如,存储装置可以将写入数据存储在存储器装置中的空闲块之中的具有最小擦除计数的空闲块中。在另一示例中,存储装置可以将写入数据存储在存储器装置中的空闲块之中的擦除计数小于或等于阈值擦除计数的空闲块之中的具有最小擦除计数的空闲块中。在另一示例中,存储装置可以将写入数据存储在存储器装置中的擦除计数小于空闲块的平均擦除计数的空闲块之中的任意空闲块中。
在操作S1509,存储装置可以将主机工作负载确定为顺序数据(即,冷数据)。
在操作S1511,存储装置可以将写入数据存储在存储器装置中包括的空闲块之中的具有相对较大擦除计数的空闲块中。例如,存储装置可以将写入数据存储在存储器装置中的空闲块之中的具有最大擦除计数的空闲块中。在另一示例中,存储装置可以将写入数据存储在存储器装置中的空闲块之中的擦除计数小于或等于阈值擦除计数的空闲块之中的、具有最大擦除计数的空闲块中。在另一示例中,存储装置可以将写入数据存储在存储器装置中的擦除计数小于空闲块的平均擦除计数的空闲块之中的任意空闲块中。
图15示出了确定写入完成块的数量和与有效数据相对应的映射段的数量的比率是否超过阈值比率。然而,在操作S1503,存储装置还可以确定写入完成块的数量和与有效数据相对应的映射段的数量的比率是否小于阈值比率。
图16是示出诸如图1的存储器控制器200的存储器控制器的实施例的示图。
参照图16,存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误校正码(ECC)块1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。总线1070可以提供存储器控制器1000的组件之间的通道。
处理器1010可以控制存储器控制器1000的全部操作并且执行逻辑运算。处理器1010可以通过主机接口1040与外部主机通信,并且通过存储器接口1060与存储器装置通信。此外,处理器1010可以通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可以通过使用存储器缓冲器1020作为工作存储器、高速缓存存储器或缓冲存储器来控制存储装置的操作。
处理器1010可以执行闪存转换层(FTL)的功能。处理器1010可以通过闪存转换层FTL将由主机提供的逻辑块地址(LBA)转换成物理块地址(PBA)。闪存转换层FTL可以接收逻辑块地址LBA,并且通过使用映射表来将逻辑块地址LBA转换成物理块地址PBA。根据映射单位,存在闪存转换层FTL可以使用的各种地址映射方法。典型的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010可以使来自主机的数据随机化。例如,处理器1010可以使用随机化种子来使来自主机的数据随机化。经随机化的数据可以作为待存储的数据被提供到存储器装置,并且可以被编程在存储器单元阵列中。
处理器1010可以运行软件或固件以执行随机化操作和去随机化操作。
存储器缓冲器1020可以用作处理器1010的操作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储由处理器1010运行的代码和命令。存储器缓冲器1020可以存储由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC块1030可以执行错误校正。ECC块1030可以基于通过存储器接口1060而待写入存储器装置的数据来执行ECC编码。经ECC编码的数据可以通过存储器接口1060传送到存储器装置。ECC块1030可以基于通过存储器接口1060从存储器装置接收的数据来执行ECC解码。例如,ECC块1030可以作为存储器接口1060的组件而包括在存储器接口1060中。
主机接口1040可以在处理器1010的控制下与外部主机通信。主机接口1040可以使用诸如以下的各种通信方法中的至少一种来执行通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和/或负载减少的DIMM(LRDIMM)通信方法。
缓冲器控制电路1050可以在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060可以在处理器1010的控制下与存储器装置通信。存储器接口1060可以通过通道将命令、地址和数据传输到存储器装置/从存储器装置接收命令、地址和数据。
在另一实施例中,存储器控制器1000可不包括存储器缓冲器1020和缓冲器控制电路1050。这些组件可以在存储器控制器1000外部并且与存储器控制器1000通信。
在实施例中,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从存储器控制器1000中设置的非易失性存储器装置(例如,只读存储器)中加载代码。在另一示例中,处理器1010可以通过存储器接口1060从存储器装置加载代码。
例如,存储器控制器1000的总线1070可以被划分为控制总线和数据总线。数据总线可以被配置成在存储器控制器1000中传输数据,并且控制总线可以被配置成在存储器控制器1000中传输诸如命令或地址的控制信息。数据总线和控制总线可以彼此隔离,使得既不彼此干扰也不彼此影响。数据总线可以联接到主机接口1040、缓冲器控制电路1050、ECC块1030和存储器接口1060。控制总线可以联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图17是示出应用了根据实施例的存储装置的存储卡系统2000的框图。
参照图17,存储卡系统2000可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100可以联接到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可以被配置成提供存储器装置2200和主机之间的接口。存储器控制器2100可以被配置成驱动用于控制存储器装置2200的固件。存储器控制器2100可以具有与上参照图1描述的存储器控制器200的配置相同的配置。
在实施例中,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理器、主机接口、存储器接口和ECC块的组件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以基于特定通信协议与外部装置(例如,主机)通信。在实施例中,存储器控制器2100可以通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-e或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi、蓝牙和/或高速非易失性存储器(NVMe)协议。在实施例中,连接器2300可以由上述各种通信协议中的至少一种来定义。
在实施例中,存储器装置2200可以被实施为诸如以下的各种非易失性存储器装置中的任意一种:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和/或自旋转移力矩磁性RAM(STT-MRAM)。
存储器控制器2100和存储器装置2200可以集成到单个半导体装置中以形成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)、紧凑型闪存(CF)卡、智能媒体卡(例如,SM或SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC或微型MMC)、安全数字(SD)卡(例如,SD、迷你SD、微型SD或SDHC)和/或通用闪存(UFS)。
图18是示出应用了根据实施例的存储装置的固态驱动器(SSD)系统的示例的框图。
参照图18,SSD系统3000可以包括主机3100和SSD 3200。SSD 3200可以通过信号连接器3001与主机3100交换信号SIG,并且可以通过电源连接器3002接收电力PWR。SSD 3200可以包括SSD控制器3210、多个非易失性存储器3221至322n、辅助电源3230和缓冲存储器3240。
在实施例中,SSD控制器3210可以执行如上参照图1所描述的存储器控制器200的功能。
SSD控制器3210可以响应于从主机3100接收的信号SIG而来制多个非易失性存储器3221至322n。在实施例中,信号SIG可以是基于主机3100和SSD 3200的接口的信号。例如,信号SIG可以由诸如以下的各种接口中的至少一种来定义:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-e或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi、蓝牙和/或高速非易失性存储器(NVMe)接口。
辅助电源3230可以通过电源连接器3002联接到主机3100。可以利用来自主机3100的电力来供应辅助电源3230并对辅助电源3230充电。当从主机3100供应的电力不平稳时,辅助电源3230可以供应SSD 3200的电力。在实施例中,辅助电源3230可以设置在SSD 3200的内部或外部。例如,辅助电源3230可以设置在主板中,并且可以向SSD 3200供应辅助电力。
缓冲存储器3240可以用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可以临时地存储从主机3100接收的数据或从多个非易失性存储器3221至322n接收的数据,或者可以临时地存储多个非易失性存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器或者诸如FRAM、ReRAM、STT-MRAM和/或PRAM的非易失性存储器中的任意一种。
图19是示出应用了根据本公开的实施例的存储装置的用户系统4000的框图。
参照图19,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以运行用户系统4000中包括的组件、操作系统(OS)或用户程序。在实施例中,应用处理器4100可以包括用于控制用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以设置为片上系统(SoC)。
存储器模块4200可以用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDARM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性RAM或者诸如PRAM、ReRAM、MRAM和/或FRAM的非易失性RAM中的任意一种。在实施例中,应用处理器4100和存储器模块4200可以基于堆叠式封装(POP)进行封装,然后可以设置为单个半导体封装。
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、Wimax、WLAN、UWB、蓝牙或WiFi通信的无线通信。在实施例中,网络模块4300可以包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将存储模块4400中存储的数据传输到应用处理器4100。在实施例中,存储模块4400可以被实施为诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器或具有三维(3D)结构的NAND闪速存储器的非易失性半导体存储器装置。在实施例中,存储模块4400可以设置为用户系统400的诸如存储卡或外部驱动器的可移除存储介质(即,可移除驱动器)。
例如,存储模块4400可以包括多个非易失性存储器装置,非易失性存储器装置中的每一个可以以与上参照图1描述的存储器装置100相同的方式操作。存储模块4400可以以与以上参照图1描述的存储装置50相同的方式操作。
用户接口4500可以包括将数据或指令输入到应用处理器4100或者将数据输出到外部装置的接口。在实施例中,用户接口4500可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电装置的用户输入接口。用户接口4500可以进一步包括诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器的用户输出接口。
根据本公开的实施例,存储装置在考虑工作负载时执行损耗均衡。还提供了一种操作存储装置的方法。
在上述实施例中,不一定需要执行所有步骤;在一些实例中,可以省略一个或多个步骤。另外,不一定都需要按所陈述的顺序执行所有步骤;某些步骤可以以不同的顺序执行,甚至可以同时执行。更一般地,所公开的实施例旨在帮助本领域的技术人员更清楚地理解本公开,而不是限制本发明的范围。鉴于本公开的技术范围,本公开所属领域的技术人员将能够容易地理解的是,在不脱离本发明的精神或范围的情况下,可以对本公开的上述实施例中的任意一个进行各种修改。因此,本发明旨在涵盖所有这些修改,只要这些修改属于所附权利要求书及其等同方案的范围内即可。
Claims (20)
1.一种存储装置,包括:
存储器装置,包括存储数据的写入完成块和每个不包含数据的空闲块;以及
存储器控制器,控制所述存储器装置以基于映射段的数量和所述空闲块的擦除计数执行垃圾收集操作,以将所述写入完成块之中的牺牲块中存储的有效数据存储在所述空闲块中的一个中,所述映射段包括所述有效数据的逻辑地址与物理地址之间的映射信息。
2.根据权利要求1所述的存储装置,其中所述存储器控制器包括:
映射表,包括所述写入完成块中存储的数据的逻辑地址与物理地址之间的映射信息;
块信息,包括关于与所述写入完成块中存储的有效数据相对应的映射段的数量的信息以及擦除计数信息,所述擦除计数信息指示所述空闲块的擦除计数;
块分配控制器,根据将与所述写入完成块中存储的有效数据相对应的映射段的数量与阈值进行比较的结果,确定所述牺牲块中存储的有效数据的属性,并且基于所述有效数据的属性和所述擦除计数信息,分配存储所述牺牲块中存储的有效数据的目标块;以及
操作控制器,控制所述存储器装置以读取所述牺牲块中存储的有效数据并且将读取数据存储在所述目标块中。
3.根据权利要求2所述的存储装置,其中当与所述写入完成块中存储的有效数据相对应的映射段的数量超过所述阈值时,所述块分配控制器确定所述牺牲块中存储的有效数据的属性为随机数据。
4.根据权利要求3所述的存储装置,其中当确定所述牺牲块中存储的有效数据的属性为所述随机数据时,所述块分配控制器分配所述空闲块之中的具有最小擦除计数的空闲块作为所述目标块。
5.根据权利要求3所述的存储装置,其中当确定所述牺牲块中存储的有效数据的属性为所述随机数据时,所述块分配控制器分配擦除计数小于阈值计数的空闲块之中的、具有最小擦除计数的空闲块作为所述目标块。
6.根据权利要求2所述的存储装置,其中当与所述写入完成块中存储的有效数据相对应的映射段的数量小于或等于所述阈值时,所述块分配控制器确定所述牺牲块中存储的有效数据的属性为顺序数据。
7.根据权利要求6所述的存储装置,其中当确定所述牺牲块中存储的所述有效数据的属性为所述顺序数据时,所述块分配控制器分配所述空闲块之中的具有最大擦除计数的空闲块作为所述目标块。
8.根据权利要求6所述的存储装置,其中当确定所述牺牲块中存储的有效数据的属性为所述顺序数据时,所述块分配控制器分配擦除计数小于阈值计数的空闲块之中的、具有最大擦除计数的空闲块作为所述目标块。
9.根据权利要求6所述的存储装置,其中当确定所述牺牲块中存储的所述有效数据的属性为所述顺序数据时,所述块分配控制器计算所述空闲块的平均擦除计数,并且分配擦除计数超过所述平均擦除计数的空闲块中的一个作为所述目标块。
10.根据权利要求1所述的存储装置,其中所述牺牲块基于所述写入完成块中存储的所述有效数据的大小来确定。
11.根据权利要求1所述的存储装置,其中所述牺牲块是所述写入完成块之中存储有效数据的量最少的存储块。
12.一种存储装置,包括:
存储器装置,包括多个存储块;以及
存储器控制器,控制所述存储器装置以根据所述多个存储块中存储的数据的大小和映射段的数量来分配存储与来自主机的写入请求相对应的写入数据的空闲块,并且控制所述存储器装置以响应于所述写入请求将所述写入数据存储在所述空闲块中,所述空闲块在所述多个存储块中的每个不包含数据的空闲块之中,所述映射段包括所述数据的逻辑地址与物理地址之间的映射信息。
13.根据权利要求12所述的存储装置,其中所述存储器控制器包括:
映射表,包括所述多个存储块中存储的所述写入数据的逻辑地址与物理地址之间的映射信息;
块信息,包括关于所述多个存储块之中的存储数据的写入完成块的数量的信息以及关于与所述多个存储块中存储的有效数据相对应的映射段的数量的信息;
块分配控制器,基于所述写入完成块的数量和与所述多个存储块中存储的有效数据相对应的映射段的数量的比率来预测所述主机的工作负载,并且根据所述工作负载分配存储所述写入数据的所述空闲块;以及
操作控制器,控制所述存储器装置以将所述写入数据存储在所述空闲块中。
14.根据权利要求13所述的存储装置,其中当所述写入完成块的数量和与所述多个存储块中存储的有效数据相对应的映射段的数量的比率超过阈值比率时,所述块分配控制器确定所述工作负载为随机工作负载。
15.根据权利要求14所述的存储装置,其中所述块分配控制器响应于所述随机工作负载,分配空闲块之中的具有最小擦除计数的空闲块作为存储所述写入数据的存储块。
16.根据权利要求14所述的存储装置,其中所述块分配控制器响应于所述随机工作负载,分配擦除计数小于阈值计数的空闲块之中的、具有最小擦除计数的空闲块作为存储所述写入数据的存储块。
17.根据权利要求13所述的存储装置,其中当所述写入完成块的数量和与所述多个存储块中存储的有效数据相对应的映射段的数量的比率小于或等于阈值比率时,所述块分配控制器确定所述工作负载为顺序工作负载。
18.根据权利要求17所述的存储装置,其中所述块分配控制器响应于所述顺序工作负载,分配空闲块之中的具有最大擦除计数的空闲块作为存储所述写入数据的存储块。
19.根据权利要求17所述的存储装置,其中所述块分配控制器响应于所述顺序工作负载,分配擦除计数小于阈值计数的空闲块之中的、具有最大擦除计数的空闲块作为存储所述写入数据的存储块。
20.根据权利要求17所述的存储装置,其中所述块分配控制器响应于所述顺序工作负载,计算空闲块的平均擦除计数,并且分配擦除计数超过所述平均擦除计数的空闲块中的一个作为存储所述写入数据的存储块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0111848 | 2020-09-02 | ||
KR1020200111848A KR20220030090A (ko) | 2020-09-02 | 2020-09-02 | 저장 장치 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114201414A true CN114201414A (zh) | 2022-03-18 |
Family
ID=80358580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110549002.6A Withdrawn CN114201414A (zh) | 2020-09-02 | 2021-05-20 | 存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11567863B2 (zh) |
KR (1) | KR20220030090A (zh) |
CN (1) | CN114201414A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115270690A (zh) * | 2022-09-26 | 2022-11-01 | 中科声龙科技发展(北京)有限公司 | 查找空闲存储的装置、方法及芯片 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230418490A1 (en) * | 2022-06-22 | 2023-12-28 | Western Digital Technologies, Inc. | Rate Levelling Among Peer Data Storage Devices |
CN115586874B (zh) * | 2022-11-24 | 2023-03-10 | 苏州浪潮智能科技有限公司 | 一种数据块回收方法、装置及电子设备和存储介质 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9183134B2 (en) * | 2010-04-22 | 2015-11-10 | Seagate Technology Llc | Data segregation in a storage device |
KR20130032155A (ko) | 2011-09-22 | 2013-04-01 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 관리 방법 |
US20140181434A1 (en) * | 2012-12-20 | 2014-06-26 | Virtium Technology, Inc. | Integrated and naturalized static wear-leveling for block mapping |
CN104298465B (zh) * | 2013-07-17 | 2017-06-20 | 光宝电子(广州)有限公司 | 固态储存装置中的区块分组方法 |
CN104298605A (zh) * | 2013-07-17 | 2015-01-21 | 光宝科技股份有限公司 | 固态储存装置中用于垃圾搜集动作的区块分组方法 |
TWI529719B (zh) * | 2013-08-30 | 2016-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
US9423970B2 (en) * | 2013-12-30 | 2016-08-23 | Sandisk Technologies Llc | Method and system for predicting block failure in a non-volatile memory |
US9329797B2 (en) * | 2013-12-30 | 2016-05-03 | Sandisk Technologies Inc. | Method and system for adjusting block erase or program parameters based on a predicted erase life |
TWI516922B (zh) * | 2014-03-12 | 2016-01-11 | 慧榮科技股份有限公司 | 資料儲存裝置及快閃記憶體零散資料收集方法 |
US10971241B2 (en) * | 2017-01-30 | 2021-04-06 | Toshiba Memory Corporation | Performance based method and system for patrolling read disturb errors in a memory unit |
US10503412B2 (en) * | 2017-05-24 | 2019-12-10 | Western Digital Technologies, Inc. | Priority-based internal data movement |
WO2018232083A1 (en) * | 2017-06-14 | 2018-12-20 | Burlywood, LLC | Cooperative data migration for storage media |
CN109582599B (zh) * | 2017-09-29 | 2023-12-22 | 上海宝存信息科技有限公司 | 数据储存装置以及非挥发式存储器操作方法 |
KR102660399B1 (ko) * | 2018-09-20 | 2024-04-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR20200033461A (ko) | 2018-09-20 | 2020-03-30 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US11144224B2 (en) * | 2018-10-25 | 2021-10-12 | Dell Products L.P. | Locality-aware, memory-efficient, time-efficient hot data identification using count-min-sketch for flash or streaming applications |
KR20200141212A (ko) * | 2019-06-10 | 2020-12-18 | 에스케이하이닉스 주식회사 | 가비지콜렉션 동작을 위한 메모리 시스템 및 메모리 시스템의 동작방법 |
US11467980B2 (en) * | 2020-01-10 | 2022-10-11 | Micron Technology, Inc. | Performing a media management operation based on a sequence identifier for a block |
-
2020
- 2020-09-02 KR KR1020200111848A patent/KR20220030090A/ko unknown
-
2021
- 2021-03-08 US US17/194,727 patent/US11567863B2/en active Active
- 2021-05-20 CN CN202110549002.6A patent/CN114201414A/zh not_active Withdrawn
-
2022
- 2022-12-06 US US18/075,698 patent/US11954021B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115270690A (zh) * | 2022-09-26 | 2022-11-01 | 中科声龙科技发展(北京)有限公司 | 查找空闲存储的装置、方法及芯片 |
CN115270690B (zh) * | 2022-09-26 | 2022-11-29 | 中科声龙科技发展(北京)有限公司 | 查找空闲存储的装置、方法及芯片 |
Also Published As
Publication number | Publication date |
---|---|
KR20220030090A (ko) | 2022-03-10 |
US20230110691A1 (en) | 2023-04-13 |
US11567863B2 (en) | 2023-01-31 |
US11954021B2 (en) | 2024-04-09 |
US20220066925A1 (en) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11256614B2 (en) | Memory controller for allocating logical address and method of operating the same | |
CN110389720B (zh) | 存储装置及其操作方法 | |
US11194736B2 (en) | Memory controller having improved map data access performance and method of operating the same | |
US11307803B2 (en) | Storage device for suspending program operation and performing read operation and operating method thereof | |
CN112905502A (zh) | 存储装置及其操作方法 | |
US11954021B2 (en) | Storage device and operating method thereof | |
CN111352855B (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
CN111177020B (zh) | 存储装置及其操作方法 | |
US11543986B2 (en) | Electronic system including host, memory controller and memory device and method of operating the same | |
CN111752856A (zh) | 存储器控制器及其操作方法 | |
CN114860622A (zh) | 存储装置及操作存储装置的方法 | |
CN112988049A (zh) | 存储装置及其操作方法 | |
CN113223573A (zh) | 存储器控制器及其操作方法 | |
KR20210142981A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
US10996881B2 (en) | Storage device and method of operating the same | |
CN113448892A (zh) | 存储器控制器及其操作方法 | |
CN115509957A (zh) | 主机装置、存储装置及其操作方法 | |
CN112199037A (zh) | 存储器控制器及其操作方法 | |
US11500768B2 (en) | Storage device performing garbage collection and method of operating the same | |
US11599275B2 (en) | Memory controller for controlling power loss recovery and method of operating the same | |
US11481135B2 (en) | Storage device and method of operating the storage device | |
US20240028219A1 (en) | Memory controller and memory system including the same | |
CN117193627A (zh) | 计算系统及其操作方法 | |
CN114385413A (zh) | 存储器控制器及操作该存储器控制器的方法 | |
CN114077388A (zh) | 存储器控制器及其操作方法 |
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: 20220318 |
|
WW01 | Invention patent application withdrawn after publication |