CN115390747A - 存储设备及其操作方法 - Google Patents
存储设备及其操作方法 Download PDFInfo
- Publication number
- CN115390747A CN115390747A CN202210580061.4A CN202210580061A CN115390747A CN 115390747 A CN115390747 A CN 115390747A CN 202210580061 A CN202210580061 A CN 202210580061A CN 115390747 A CN115390747 A CN 115390747A
- Authority
- CN
- China
- Prior art keywords
- physical
- data
- memory
- physical area
- area
- 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
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/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/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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- 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/0683—Plurality of storage 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/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/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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种存储设备及其操作方法。根据本发明的一个实施例的存储设备可以包括:存储器装置,包括多个管芯;以及存储器控制器,从外部主机接收数据和关于所述数据属性的日志,基于所述数据的日志分配将要存储所述数据的所述存储器装置中的超级块和所述超级块中包括的物理区域,并存储每个所述物理区域存储的数据的日志和关于不存在空区域的处于满状态的物理区域转换为满状态的时间点的信息,其中所述存储器控制器可以被配置为控制所述存储器装置以基于内部区域全部为空的处于空状态的物理区域的数量执行垃圾收集,并且在执行所述垃圾收集时,基于所述数据的日志和关于满状态转换时间点的信息选择牺牲物理区域。
Description
技术领域
本发明涉及一种电子设备,更具体地,本发明涉及一种存储设备及其操作方法。
背景技术
存储设备将从主机接收的逻辑地址转换为物理地址并使用,因此,主机中的逻辑区域和存储设备的物理区域是相互关联的。因此,为了提高电子设备的性能,需要一种能够互补地控制主机和存储设备的新装置或方法。
发明内容
(一)要解决的技术问题
本发明的实施例提供了一种能够根据每个数据的特性进行有效管理的存储设备及其操作方法。
(二)技术方案
根据本发明的实施例的存储设备可以包括:存储器装置,包括多个管芯;以及存储器控制器,从外部主机接收数据和关于所述数据属性的日志,基于所述数据的日志分配将要存储所述数据的所述存储器装置中的超级块和所述超级块中包括的物理区域,并存储每个所述物理区域存储的数据的日志和关于不存在空区域的处于满状态的物理区域转换为满状态的时间点的信息,其中所述存储器控制器可以被配置为控制所述存储器装置以基于内部区域全部为空的处于空状态的物理区域的数量执行垃圾收集,并且在执行所述垃圾收集时,基于所述数据的日志和关于满状态转换时间点的信息选择牺牲物理区域。
根据本发明的实施例的操作方法是一种存储设备的操作方法,所述存储设备包括:存储器装置,包括多个管芯;以及存储器控制器,从外部主机接收数据和关于所述数据属性的日志,基于所述数据的日志分配将要存储所述数据的所述存储器装置中的超级块和所述超级块中包括的物理区域,所述存储设备的操作方法可以包括以下步骤:基于内部区域全部为空的处于空状态的物理区域的数量来确定是否执行垃圾收集;从不存在空区域的处于满状态的物理区域中选择候选物理区域;以及基于存储在所述候选物理区域中的数据的日志和候选物理区域转换为满状态的时间点确定牺牲物理区域。
根据本发明的实施例的存储设备可以包括:存储器装置,包括多个存储器管芯;以及存储器控制器,将所述存储器装置划分为多个超级块并进行控制,其中所述多个超级块中的一个以上的超级块可以分别包括多个物理区域,所述物理区域包括不同的存储器管芯中包括的每个存储器块的一部分,所述存储器控制器可以控制所述存储器装置以基于关于所述物理区域的信息执行垃圾收集。
根据本发明的实施例的控制器的操作方法可以包括以下步骤:当处于空(empty)状态的存储单元的数量小于或等于阈值时,基于日志和每个超级块中的处于满(full)状态的每个存储单元的时间点定义的超级块的成本,选择仅具有处于满(full)状态的存储单元和处于准备复位(ready to reset)状态的存储单元的超级块;以及控制存储器装置以对选择的超级块中的处于满(full)状态的存储单元执行垃圾收集,其中处于空(empty)状态的存储单元的内部充满了能够存储数据的空的空间,处于满(full)状态的存储单元的内部充满了存储的数据,所述日志至少与存储在相应的处于满(full)状态的存储单元中的数据的访问频率相关并且从外部提供,所述时间点表示相应的处于满(full)状态的存储单元的内部充满存储的数据的时间。
根据本发明的实施例的控制器的操作方法可以包括以下步骤:当处于空(empty)状态的存储单元的数量介于第一阈值和第二阈值之间时,基于日志和处于满(full)状态的每个存储单元的时间点定义的成本,从处于满(full)状态的存储单元选择牺牲存储单元;以及控制存储器装置以将有效数据从所述牺牲存储单元移动到另一存储单元,其中处于空(empty)状态的存储单元的内部充满了能够存储数据的空的空间,处于满(full)状态的存储单元的内部充满了存储的数据,所述日志至少与存储在相应的处于满(full)状态的存储单元中的数据的访问频率相关并且从外部提供,所述时间点表示相应的处于满(full)状态的存储单元的内部充满存储的数据的时间。
(三)有益效果
本技术提供了一种能够根据每个数据的特性进行有效管理的存储设备及其操作方法。
附图说明
图1是用于说明根据本发明的一个实施例的包括存储设备的电子设备的图。
图2是用于说明图1的存储器装置的图。
图3是用于说明图2的存储器单元阵列的图。
图4是用于说明根据本发明的一个实施例的存储设备的图。
图5是用于说明根据本发明的一个实施例的存储设备的超级块分配过程的图。
图6是用于说明根据本发明的一个实施例的存储设备的超级块管理的图。
图7是用于说明由文件系统分配的分区的结构的图。
图8是用于说明由文件系统分配第一分区组的新的分区的过程的图。
图9和图10是用于说明由文件系统分配第二分区组的新的分区的过程的图。
图11是用于说明通过文件系统的第一分区组的复位过程的图。
图12是用于说明通过文件系统的第二分区组的复位过程的图。
图13是用于说明根据本发明的一个实施例的数据分类的图。
图14是用于说明根据本发明的另一实施例的数据分类的图。
图15是用于说明根据本发明的一个实施例的存储设备的垃圾收集的流程图。
图16是用于说明根据本发明的一个实施例的选择存储设备的牺牲物理区域的过程的流程图。
图17是用于说明根据本发明的一个实施例的在存储设备中对牺牲物理区域执行垃圾收集的过程的流程图。
图18是用于说明根据本发明的另一实施例的选择存储设备的牺牲物理区域的过程的流程图。
图19是用于说明根据本发明的另一实施例的在存储设备中对牺牲物理区域执行垃圾收集的过程的流程图。
图20是用于说明根据本发明的一个实施例的在执行垃圾收集时复制牺牲物理区域中的数据的过程的图。
图21是示出图1的存储器控制器的另一实施例的图。
图22是示出应用了根据本发明的实施例的存储设备的存储卡系统的框图。
图23是示出应用了根据本发明的实施例的存储设备的固态硬盘(SSD)系统的框图。
图24是示出应用了根据本发明的实施例的存储设备的用户系统的框图。
附图标记说明
50:存储设备
100:存储器装置
200:存储器控制器
400:主机
具体实施方式
在本说明书或申请中公开的根据本发明构思的实施例的特定结构或功能说明仅是为了举例说明根据本发明构思的实施例,根据本发明构思的实施例可以以各种形式实施,并且不应被解释为限于在本说明书或申请中说明的实施例。
图1是用于说明根据本发明的一个实施例的包括存储设备的电子设备的图。
参照图1,存储设备(storage device)50可以包括存储器装置(memory device)100和存储器控制器(memory controller)200。存储设备50可以是在主机(host)400的控制下存储数据的装置,例如手机、智能手机、MP3播放器、便携式计算机、台式计算机、游戏机、电视、平板计算机或车载信息娱乐系统(in-vehicle infotainment)。或者,存储设备50可以是在一个地方存储大容量数据的在主机400的控制下存储数据的装置,例如服务器或数据中心。
根据作为与主机400的通信方式的主机接口,存储设备50可以被制造为各种类型的存储设备中的任何一种。例如,存储设备50可以被配置为各种类型的存储设备中的任何一种,例如SSD、MMC、eMMC、RS-MMC、micro-MMC形式的多媒体卡(multimedia card);SD、mini-SD、micro-SD形式的安全数字卡(secure digital card);USB(通用串行总线(Universal Serial Bus))存储设备、UFS(通用闪存(Universal Flash Storage))装置、PCMCIA(个人计算机存储卡国际协会(personal computer memory card internationalassociation))卡形式的存储设备;PCI(外围组件互连(peripheral componentinterconnection))卡形式的存储设备;PCI-E(快速的外围组件互连(PCI-express))卡形式的存储设备;CF(紧凑型闪存(compact flash))卡;智能媒体卡;记忆棒(memory stick)。
存储设备50可以以各种类型的封装(package)形式中的任何一种来制造。例如,存储设备50可以以诸如POP(叠层封装(package on package))、SIP(系统级封装(system inpackage))、SOC(片上系统(system on chip))、MCP(多芯片封装(multi-chip package))、COB(板上芯片(chip on board))、WFP(晶圆级制造封装(wafer-level fabricatedpackage))、WSP(晶圆级堆叠封装(wafer-level stack package))的各种类型的封装形式中的任何一种来制造。
存储器装置100可以存储数据。存储器装置100响应于存储器控制器200的控制而操作。存储器装置100可以包括存储器单元阵列(未示出),该存储器单元阵列包括用于存储数据的多个存储器单元。
每个存储器单元可以被配置为存储一个数据位的单级单元(Single Level Cell,SLC)、存储两个数据位的多级单元(Multi Level Cell,MLC)、存储三个数据位的三级单元(Triple Level Cell,TLC)或能够存储四个数据位的四级单元(Quad Level Cell,QLC)。
存储器单元阵列(未示出)可以包括多个存储器块。每个存储器块可以包括多个存储器单元。每个存储器块可以包括多个页面。在实施例中,页面可以是用于在存储器装置100中存储数据或读取存储在存储器装置100中的数据的单位。存储器块可以是用于擦除数据的单位。
在实施例中,存储器装置100可以是DDR SDRAM(双倍数据速率同步动态随机存取存储器(Double Data Rate Synchronous Dynamic Random Access Memory))、LPDDR4(低功耗双倍数据速率4(Low Power Double Data Rate4))SDRAM、GDDR(图形双倍数据速率(Graphics Double Data Rate))SDRAM、LPDDR(低功耗DDR(Low Power DDR))、RDRAM(存储器总线式动态随机存取存储器(Rambus Dynamic Random Access Memory))、NAND闪存(NAND flash memory)、竖直NAND闪存(Vertical NAND)、NOR闪存(NOR flash memory)、RRAM(阻变式随机存取存储器(resistive random access memory))、PRAM(相变RAM(Phase-change RAM))、MRAM(磁阻式随机存取存储器(magnetoresistive random accessmemory))、FRAM(铁电随机存取存储器(ferroelectric random access memory))、STT-RAM(自旋转移矩随机存取存储器(spin transfer torque random access memory))等。在本说明书中,为了便于说明,假设存储器装置100是NAND闪存。
存储器装置100被配置为从存储器控制器200接收命令和地址,并访问存储器单元阵列中的根据地址选择的区域。存储器装置100可以针对根据地址选择的区域执行命令指示的操作。例如,存储器装置100可以执行写入操作(编程操作)、读取操作和擦除操作。在编程操作时,存储器装置100将数据编程到根据地址选择的区域中。在读取操作时,存储器装置100从根据地址选择的区域读取数据。在擦除操作时,存储器装置100擦除存储在根据地址选择的区域中的数据。
存储器控制器200可以控制存储设备50的整体操作。
在实施例中,存储器控制器200可以从主机400接收数据和逻辑地址(logicaladdress,LA),存储器控制器200可以包括能够将逻辑地址(LA)转换为物理地址(PA)的固件(firmware;未示出),该物理地址(PA)指示包括在存储器装置100中的将要存储数据的存储器单元的地址。另外,存储器控制器200可以将构成逻辑地址(LA)和物理地址(PA)之间的映射(mapping)关系的逻辑-物理地址映射表存储在缓冲存储器中。
存储器控制器200可以根据主机400的请求控制存储器装置100执行编程操作、读取操作或擦除操作等。在编程操作时,存储器控制器200可以向存储器装置100提供编程命令、物理地址和数据。在读取操作时,存储器控制器200可以向存储器装置100提供读取命令和物理地址。在擦除操作时,存储器控制器200可以向存储器装置100提供擦除命令和物理地址。或者,存储器控制器200可以根据主机400的请求打开或关闭存储器装置100中的物理区域(physical zone)。打开物理区域可以表示为对应于该物理区域的逻辑地址组,例如为对应于由主机分配给数据的分区的逻辑地址创建映射表。关闭物理区域可以表示在再次接收到该物理区域的打开请求之前,不会有将数据存储在该区域中的写入请求。主机400可以将这样的打开或关闭物理区域的请求作为单独的请求提供,或者可以与诸如写入请求的其他请求一起提供。
在实施例中,存储器控制器200可以与来自主机400的请求无关地自己生成命令、地址和数据,并将生成的命令、地址和数据传送到存储器装置100。例如,存储器控制器200可以向存储器装置100提供用于执行在执行磨损均衡(wear leveling)、读取回收(readreclaim)、垃圾收集(garbage collection)等时所伴随的编程操作、读取操作和擦除操作的命令、地址和数据。
在实施例中,存储器控制器200可以包括闪存转换层(Flash TranslationLayer)。闪存转换层可以将对应于从主机400接收的请求的逻辑地址(LA)转换为物理地址(PA),并将转换后的物理地址(PA)输出到存储器装置100。
例如,如上所述,闪存转换层可以将对应于编程请求的逻辑地址(LA)转换为物理地址(PA),或者可以将对应于读取请求的逻辑地址(LA)转换为物理地址(PA),或者可以将对应于擦除请求的逻辑地址(LA)转换为物理地址(PA)。闪存转换层可以将转换后的物理地址(PA)输出到存储器装置100,并且存储器装置100可以对对应于物理地址(PA)的页面或存储器块执行操作。
在实施例中,存储器控制器200可以从文件系统(file system)420接收逻辑地址并且将接收的逻辑地址转换为连续的物理地址。当连续的物理地址被输出到存储器装置100时,存储器装置100可以执行对应于连续的物理地址的连续操作。此时,可以根据被分配的物理区域的类型确定连续的物理地址。将参照图5和图6等更详细地说明物理区域的类型。
在实施例中,存储设备50可以进一步包括缓冲存储器(未示出)。存储器控制器200可以控制主机400和缓冲存储器(未示出)之间的数据交换。或者,存储器控制器200可以将用于控制存储器装置100的系统数据临时存储在缓冲存储器中。例如,存储器控制器200可以将从主机400输入的数据临时存储在缓冲存储器中,然后将临时存储在缓冲存储器中的数据传送到存储器装置100。
在各种实施例中,缓冲存储器可以用作存储器控制器200的操作存储器和高速缓冲存储器。缓冲存储器可以存储由存储器控制器200执行的代码或命令。或者,缓冲存储器可以存储由存储器控制器200处理的数据。
在实施例中,缓冲存储器可以被实现为诸如DDR SDRAM(双倍数据速率同步动态随机存取存储器)、DDR4 SDRAM、LPDDR4(低功耗双倍数据速率4)SDRAM、GDDR(图形双倍数据速率)SDRAM、LPDDR(低功耗DDR)、RDRAM(存储器总线式动态随机存取存储器)的DRAM(动态随机存取存储器)或SRAM(静态随机存取存储器)。
在各种实施例中,缓冲存储器可以在存储设备50的外部连接到存储设备50。在这种情况下,在存储设备50的外部连接到存储设备50的易失性存储器装置可以用作缓冲存储器。
在实施例中,存储器控制器200可以控制至少两个存储器装置100。在这种情况下,存储器控制器200可以根据交错方式控制存储器装置100以提高操作性能。交错方式可以是控制至少两个存储器装置100的操作重叠的方式。或者,交错方式可以是控制在一个存储器装置100中划分的多个组的操作重叠的方式。此时,组可以是一个以上的存储器管芯(memory die)单位或一个以上的存储器平面(memory plane)单位。
主机400可以利用诸如USB(通用串行总线(Universal Serial Bus))、SATA(串行高级技术附件(Serial AT Attachment))、SAS(串行连接SCSI(Serial Attached SCSI))、HSIC(高速芯片间(High Speed Interchip))、SCSI(小型计算机系统接口(Small ComputerSystem Interface))、PCI(外围组件互连(Peripheral Component Interconnection))、PCIe(快速的外围组件互连(PCI express))、NVMe(非易失性存储器主机控制器接口规范(NonVolatile Memory express))、UFS(通用闪存(Universal Flash Storage))、SD(安全数字(Secure Digital))、MMC(多媒体卡(MultiMedia Card))、eMMC(嵌入式多媒体卡(embedded MMC))、DIMM(双列直插式存储器模块(Dual In-line Memory Module))、RDIMM(带寄存器的双列直插式存储器模块(Registered DIMM))、LRDIMM(低负载双列直插式存储器模块(Load Reduced DIMM))的各种通信方式中的至少一种与存储设备50进行通信。
在实施例中,主机400可以包括应用(application)410。应用410也被称为应用程序(application program),并且可以是在操作系统(OS)中执行的软件。应用410可以响应于用户输入来处理数据。例如,应用410可以响应于用户输入来处理数据并且将用于将处理后的数据存储在存储设备50的存储器装置100中的请求传送到文件系统420。
文件系统420可以响应于从应用传送的请求分配将要存储数据的逻辑地址(LA)。在实施例中,文件系统420可以是日志结构文件系统(Log structure File System,LFS)。日志结构文件系统(LFS)可以考虑输入数据的属性来生成日志,并且可以基于日志分配与数据对应的分区。此时,分区可以是逻辑地址集合。因此,分配分区可以表示分配与相应数据对应的逻辑地址。被分配分区的数据可以被顺序地存储在对应于分区的存储器装置100的存储区域中。例如,日志结构文件系统(LFS)可以是闪存友好文件系统(flash friendlyfile system,F2FS)。闪存友好文件系统(F2FS)是考虑到固态硬盘(Solid State Drive,SSD)的特性而设计的基于日志的文件系统,可以通过使用多头(Multi-Head)日志来增加SSD内部的并行度。可以为生成不同日志的数据分配不同的分区。日志结构文件系统(LFS)无法覆盖(overwrite)数据。当修改数据时,日志结构文件系统(LFS)可以重新分配与要修改的数据对应的逻辑地址,并将数据写入对应的物理区域。
由应用410请求写入的数据可以存储在主机中的主机存储器(未示出)中,并且可以根据来自应用的请求通过设备接口(未示出)刷新(flush)到存储设备50。主机存储器可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM、GRAM的易失性存储器或诸如FRAM、ReRAM、STT-MRAM、PRAM的非易失性存储器。
图2是用于说明图1的存储器装置的图。
参照图2,存储器装置100可以包括存储器单元阵列110、电压产生部120、地址解码器130、输入/输出电路140和控制逻辑150。
存储器单元阵列110包括多个存储器块(BLK1~BLKi)。多个存储器块(BLK1~BLKi)通过行线(RL)连接到地址解码器130。多个存储器块(BLK1~BLKi)可以通过列线(CL)连接到输入/输出电路140。在实施例中,行线(RL)可以包括字线、源极选择线和漏极选择线。在实施例中,列线(CL)可以包括位线。
在实施例中,存储器单元阵列110可以包括一个以上的存储器管芯(Memory Die),并且每个存储器管芯可以包括一个以上的平面(Plane),该平面包括一个以上的存储器块。
另外,存储器单元阵列110中包括的多个存储器块(BLK)可以被分组成两个以上的超级块(Super Block)。超级块可以是控制逻辑150管理存储器单元阵列110中包括的多个存储器块(BLK)的单位。超级块可以包括多个存储器块(BLK)。一个超级块可以是同时或在同一时间段内执行读取操作和/或写入操作等或结合执行或相关联地执行读取操作和/或写入操作等的存储器块(BLK)的集合,或者一个超级块可以是针对一个命令执行读取操作和/或写入操作等的存储器块(BLK)集合,或者一个超级块可以是在存储器单元阵列110中结合执行或同时执行读取操作和/或写入操作等的一组存储器块(BLK)的集合。此外,多个存储器块(BLK)中的在管理或操作方面彼此不同的存储器块(BLK)组可以被称为超级块。在实施例中,一个超级块可以存储被分类为相同的数据类型的数据。两个以上的超级块中的每一个的大小可以相同。即,两个以上的超级块中的每一个中包括的存储器块(BLK)的数量可以相同。或者,两个以上的超级块中的至少一个可以具有与其余的超级块不同的大小。即,多个超级块中的至少一个超级块中包括的存储器块(BLK)的数量可以与其余的超级块中包括的存储器块(BLK)的数量不同。另外,两个以上的超级块中的每一个中包括的两个以上的存储器块(BLK)可以都位于相同的一个存储器管芯上。与此不同,两个以上的超级块中的每一个中包括的两个以上的存储器块(BLK)可以位于两个以上的不同的存储器管芯上。
多个存储器块(BLK1~BLKi)中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。在多个存储器单元中,连接到同一字线的存储器单元可以被定义为一个物理页面。即,存储器单元阵列110可以包括多个物理页面。存储器装置100的每个存储器单元可以被配置为存储一个数据位的单级单元(SLC)、存储两个数据位的多级单元(MLC)、存储三个数据位的三级单元(TLC)或能够存储四个数据位的四级单元(QLC)。
在实施例中,电压产生部120、地址解码器130和输入/输出电路140可以统称为外围电路(peripheral circuit)。外围电路可以在控制逻辑150的控制下驱动存储器单元阵列110。外围电路可以驱动存储器单元阵列110以执行编程操作、读取操作和擦除操作。
电压产生部120被配置为利用供应到存储器装置100的外部电源电压产生多个操作电压。电压产生部120响应于控制逻辑150的控制而操作。
在实施例中,电压产生部120可以通过调节外部电源电压来产生内部电源电压。由电压产生部120产生的内部电源电压被用作存储器装置100的操作电压。
在实施例中,电压产生部120可以利用外部电源电压或内部电源电压产生多个操作电压。电压产生部120可以被配置为产生存储器装置100所需的各种电压。例如,电压产生部120可以产生多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压和多个非选择读取电压。
电压产生部120包括接收内部电源电压的多个泵送电容器以产生具有不同电压电平的多个操作电压,并且电压产生部120可以响应于控制逻辑150的控制来选择性地激活多个泵送电容器以产生多个操作电压。
产生的多个操作电压可以通过地址解码器130被供应到存储器单元阵列110。
地址解码器130通过行线(RL)连接到存储器单元阵列110。地址解码器130被配置为响应于控制逻辑150的控制而操作。地址解码器130可以从控制逻辑150接收地址(ADDR)。地址解码器130可以对接收的地址(ADDR)中的块地址进行解码。地址解码器130根据解码的块地址从存储器块(BLK1~BLKi)中选择至少一个存储器块。地址解码器130可以对接收的地址(ADDR)中的行地址进行解码。地址解码器130可以根据解码的行地址从选择的存储器块的字线中选择至少一条字线。在实施例中,地址解码器130可以对接收的地址(ADDR)中的列地址进行解码。地址解码器130可以根据解码的列地址连接输入/输出电路140和存储器单元阵列110。
例如,地址解码器130可以包括诸如行解码器、列解码器、地址缓冲器的组件。
输入/输出电路140可以包括多个页面缓冲器。多个页面缓冲器可以通过位线连接到存储器单元阵列110。在编程操作时,可以根据存储在多个页面缓冲器中的数据将数据存储在选择的存储器单元中。
在读取操作时,可以通过位线感测存储在选择的存储器单元中的数据,并且可以将感测的数据存储在页面缓冲器中。
控制逻辑150可以控制地址解码器130、电压产生部120和输入/输出电路140。控制逻辑150可以响应于从外部设备传送的命令(CMD)而操作。控制逻辑150可以响应于命令(CMD)和地址(ADDR)产生控制信号以控制外围电路。
图3是用于说明图2的存储器单元阵列的图。
参照图3,存储器单元阵列110可以包括一个以上的存储器管芯,并且每个存储器管芯可以包括一个以上的平面,该平面包括一个以上的存储器块。虽然在图3中示出存储器单元阵列110包括四个存储器管芯(DIE#0、DIE#1、DIE#2、DIE#3),但是存储器管芯的数量不限于此。多个存储器管芯可以通过多个通道向存储器控制器传送或从存储器控制器接收,并且每个通道可以连接到一个以上的存储器管芯。例如,如果一个通道连接到一个存储器管芯,则一个存储器管芯一次可以接收一个命令,一个存储器管芯中包括的平面可以并行处理由存储器管芯接收的命令。
图4是用于说明根据本发明的一个实施例的存储设备的图。
参照图4,主机设备的文件系统420可以响应于来自应用410的请求写入数据的请求来生成关于数据属性的日志,并且基于该日志分配与数据对应的分区。分区可以是多个逻辑地址的组,分配与数据对应的分区可以表示将该分区中包括的多个逻辑地址中的一部分或全部分配给该数据。在一个实施例中,对应于一个分区的多个逻辑地址可以是连续的逻辑地址。或者,对应于一个分区的多个逻辑地址可以不连续,但是关于每个分区中包括的逻辑地址的信息可以存储在主机中的存储器或存储设备中的存储器等中,并且可以管理每个分区的逻辑地址。另外,文件系统420可以基于分配给数据的日志确定包括分区的分区组。分区组可以包括多个分区,并且一个分区组中的分区中包括的逻辑地址可以是连续的。或者,一个分区组中的分区中包括的逻辑地址可以不连续,但是关于每个分区组中包括的逻辑地址的信息存储在主机中的存储器或存储设备中的存储器等中,并且可以管理每个分区的逻辑地址。在一个实施例中,分区组可以包括第一分区组和第二分区组,在所述第一分区组中文件系统将分区组中的任何一个空分区分配为新的分区,而不管分区组中的分区顺序如何,在所述第二分区组中文件系统根据分区组中的分区顺序分配新的分区。
另外,主机400可以将由文件系统420分配日志和分区的数据提供给存储设备50。在一个示例中,可以通过主机400中的设备接口(未示出)将数据提供给存储设备50。文件系统420可以将存储设备50中的存储器装置100划分为多个区域并进行管理。在一个实施例中,文件系统420可以将存储器装置100中的存储空间划分为检查点区域(Check PointArea)、段信息表(Segment Info.Table,SIT)、节点地址表(Node Address Table,NAT)、段摘要区域(Segment Summary Area,SSA)和主区域(Main Area)。检查点区域可以存储检查点。检查点是在计算系统运行期间发生诸如突然断电(Sudden Power Off)的系统中断事件时保存直到系统的逻辑中断点的状态的数据,并且可以利用该检查点恢复数据。段信息表(SIT)可以包括每个段中的有效页面信息。节点地址表(NAT)可以包括构成存储在存储器装置100中的文件的索引树的每个节点的标识符和对应于每个节点标识符的物理地址。段摘要区域(SSA)可以包括后面描述的主区域的每个段的摘要信息。主区域可以是存储实际用户使用的各种目录信息、数据、文件信息等的空间。在本说明书中,存储在主区域中的所有数据和信息都被定义为数据。此时,存储在主区域中的数据可以根据其类型分类为节点或数据。节点可以表示索引节点(inode)或索引(index),而数据可以表示目录(directory)或用户文件数据(user file data)。另外,存储的数据可以根据温度进行分类,数据的温度可以分别分类为热、温和冷。在此,数据的温度可以表示数据的访问频率。因此,文件系统420可以将数据分类为热节点、温节点、冷节点、热数据、温数据、冷数据等,并且数据可以在被分配日志之后存储在主区域中。因此,主区域可以被划分为对应于由文件系统420分配的段的虚拟区域,并且每个虚拟区域可以分配有特定的日志。另外,这样的虚拟区域可以被分组成并区分为对应于由文件系统420确定的分区组的虚拟区域组。另外,每个虚拟区域可以包括多个段,并且数据可以顺序地存储在每个段中。此时,一个段可以对应于一个或多个逻辑地址。这样的虚拟区域可以在主机中的主机存储器(未示出)或存储设备的缓冲存储器装置(未示出)等中物理地实现,或者可以通过在主机存储器或缓冲存储器装置中管理关于每个分区和每个分区组中包括的逻辑地址的信息来逻辑地实现。
存储设备50可以包括存储器控制器200和存储器装置100,并且存储器控制器200可以包括区域管理部210和区域信息存储部220。
存储器控制器200可以从主机400接收数据。数据可以是由文件系统420分配日志和分区的数据。区域管理部210可以基于接收的数据的日志来分配将要存储数据的超级块。超级块可以包括多个物理区域,由于包括在其中的物理区域的形态根据超级块的类型而不同,因此分配超级块可以是确定存储数据的物理区域的形态。即,可以确定应被包括在包括一个存储器管芯中的一个以上的存储器块的第一物理区域和包括不同的存储器管芯中包括的每个存储器块的一部分的第二物理区域中的哪个物理区域。此时,包括多个第一物理区域的超级块可以被称为第一超级块,并且包括多个第二物理区域的超级块可以被称为第二超级块。此时,存储在第一超级块中的数据可以是由文件系统420分配了第一分区组中的分区的数据,并且存储在第二超级块中的数据可以是被分配第二分区组中的分区的数据。
区域管理部210可以将关于将要存储数据的物理区域的类型的信息提供给闪存转换层(未示出),并且闪存转换层(未示出)可以基于此将被分配分区的数据的逻辑地址转换为物理地址。在一个实施例中,被分配分区的数据可以被赋予分区中包括的逻辑地址,闪存转换层(未示出)可以将将要存储的数据的逻辑地址转换为由区域管理部210确定的物理区域中的连续物理地址。闪存转换层(未示出)可以将转换后的物理地址传送到区域管理部210,并且区域管理部210可以控制存储器装置100以将数据存储在接收的物理地址中。
另外,区域信息存储部220可以存储由区域管理部210分配的每个物理区域的状态信息。每个物理区域可以被划分为满(full)状态、空(empty)状态和激活(active)状态。满状态可以表示数据存储在物理区域中的所有区域中而区域中不存在空区域的状态。空状态可以表示没有数据存储在物理区域中的区域中而物理区域为空的状态。激活状态可以表示数据仅存储在物理区域中的一部分区域中的状态,并且可以是打开(open)状态或关闭(close)状态。打开状态可以表示在数据仅存储在物理区域中的一部分区域的物理区域中当前数据正在被编程的物理区域,关闭状态可以表示在数据仅存储在物理区域中的一部分区域的物理区域中当前数据没有正在被编程的物理区域。另外,根据物理区域的类型,可以进一步具有准备复位(ready to reset)状态。准备复位状态可以表示虽然执行了用于通过擦除物理区域来使其变成空状态的复位操作,但是根据包括物理区域的超级块中的其他物理区域的状态复位操作尚未完成的状态。对此将在后面描述的图5、图6和图12中更详细地说明。区域信息存储部220可以存储关于这样的每个物理区域的状态和每个物理区域的状态转换的时间点的信息。在实施例中,区域信息存储部220可以存储关于物理区域转换为满状态的时间点的信息。
另外,区域信息存储部220可以存储存储在每个物理区域的数据的日志。如上所述,这样的数据的日志基于数据的类型和温度等属性,并且可以由主机400的文件系统420生成。在相同的物理区域中可以存储具有相同的日志的数据。
区域信息存储部220可以控制以将每个区域的状态信息和存储的数据的日志存储在存在于存储器控制器200内部或外部的缓冲存储器(未示出)或存储器装置100的一部分中。区域信息存储部220可以提供关于存储的物理区域的信息以在执行垃圾收集时选择牺牲物理区域。
图5是用于说明根据本发明的一个实施例的存储设备的超级块分配过程的图。
参照图1和图5,主机400的文件系统420基于数据的属性为应用410请求写入的数据生成日志,并且基于此,对数据进行分类并确定包括要分配给数据的分区的分区组。根据各种标准,数据可以分为被分配第一分区组421a中的第一分区422a的第一类数据和被分配第二分区组421b中的第二分区422b的第二类数据。由文件系统分配第一分区组421a中的第一分区422a的数据可以在存储器控制器200的控制下存储在存储器装置100的第一超级块111a中的第一物理区域112a中,并且由文件系统分配第二分区组421b中的第二分区422b的数据可以存储在存储器装置100的第二超级块111b中的第二物理区域112b中。第一分区组421a对应于第一超级块111a,因此,第一分区422a对应于第一物理区域112a。可以与分区组中的分区顺序无关地被分配为新的分区的第一分区422a的特性符合以每个存储器管芯管理的第一物理区域112a的特性,并且第一分区422a和第一物理区域112a具有相同的特性,即第一分区422a和第一物理区域112a都能够以一个分区或区域为单位执行复位或擦除操作。另外,根据分区组中的分区顺序被分配为新的分区的第二分区422b的特性符合跨多个存储器管芯形成的第二物理区域112b的特性,并且第二分区422b和第二物理区域112b具有相同的特性,即第二分区422b和第二物理区域112b都不能以一个分区或区域为单位执行复位或擦除操作,在其各自所属的第二分区组421b和第二超级块111b都处于能够复位或擦除的状态之后以分区组和超级块为单位执行复位或擦除操作。将参照图6更详细地说明第一物理区域112a和第二物理区域112b的形态,将参照图7至图11更详细地说明第一分区422a和第二分区422b的分配和复位。
可以与分区顺序无关地分配第一分区组421a中的第一分区422a,并且可以响应于来自主机400的将要存储被分配分区的数据的物理区域分配请求,存储器控制器200可以分配形成为一个存储器管芯中的区域的第一物理区域112a。可以根据分区顺序分配第二分区组422b中的第二分区422b,并且可以响应于来自主机400的将要存储被分配分区的数据的物理区域分配请求,存储器控制器200可以分配形成为包括多个存储器管芯中的存储器块的一部分的区域的第二物理区域112b。针对主机400的物理区域分配请求,当存储器控制器200回复当前使用的超级块中不存在额外的可被分配的物理区域的信息时,文件系统420可以在分配新的分区组之后分配新的分区组中的分区,作为响应,存储器控制器200可以在分配新的超级块和包括在其中的新的物理区域之后存储被分配新的分区的数据。或者,文件系统420不从存储器控制器200接收关于超级块和物理区域的信息,可以自行分配新的分区组和包括在其中的分区。
图6是用于说明根据本发明的一个实施例的存储设备的超级块管理的图。
参照图1、图4和图6,存储器单元阵列110可以包括多个存储器管芯,例如,可以包括四个存储器管芯(DIE#0~DIE#3)。另外,每个存储器管芯可以包括多个平面,每个平面包括多个存储器块,例如,可以包括四个平面(PLANE#0~PLANE#3)。存储器控制器200可以通过将存储器装置100的存储器单元阵列110划分为多个超级块来控制存储器单元阵列110。超级块可以包括存储器单元阵列110中包括的两个以上的存储器块。超级块可以包括多个物理区域(physical zone)。可以跨多个存储器管芯形成超级块,并且如图6所示,可以跨所有存储器管芯形成超级块。超级块可以根据包括在其中的物理区域的形态分为第一超级块111a和第二超级块111b。在根据本发明的一个实施例的存储设备中,作为存储器控制器200控制存储器装置100的单位的超级块可以仅由包括第一物理区域112a的第一超级块111a组成,或者可以仅由包括第二物理区域112b的第二超级块111b组成,或者可以包括第一超级块和第二超级块。
第一超级块111a中包括的第一物理区域112a可以包括一个存储器管芯中的一个以上的块。例如,如图6所示,对于每个存储器管芯,包括平面0至平面3中包括的一个存储器块的区域可以被指定为一个区域(zone),因此,第一超级块111a可以包括四个第一物理区域112a,每个存储器管芯形成一个第一物理区域112a。
第二超级块111b中包括的第二物理区域112b可以包括不同的存储器管芯中包括的每个块的一部分。例如,如图6所示,第二物理区域112b可以跨所有四个存储器管芯(DIE#0~DIE#3)形成,并且可以仅包括每个平面中包括的每个存储器块的一部分。例如,如图6所示,可以仅包括每个平面中包括的每个存储器块的页面中的1/4页面。因此,第二超级块111b可以跨所有存储器管芯形成,并且可以包括形成为仅包括每个存储器块的一部分页面的四个第二物理区域112b。
在一个实施例中,第一超级块111a和第二超级块111b的大小可以相同。即,第一超级块111a和第二超级块111b可以包括相同数量的存储器块。另外,第一物理区域112a和第二物理区域112b的大小可以相同。即,第一物理区域112a和第二物理区域112b中包括的页面数量可以相同。第一物理区域112a可以形成在一个存储器管芯中,而第二物理区域112b可以跨多个存储器管芯形成。因此,在第二物理区域112b的情况下,可以以管芯交错方式操作,特别地,如图6所示,当第二物理区域112b跨所有存储器管芯形成时,可以以全管芯(full-die)交错方式操作。然而,不能同时分配和编程不同的第二物理区域112b。另外,由于第二物理区域仅包括每个存储器块的一部分,因此当要擦除特定的物理区域时无法立即擦除,当可以擦除部分包括在该物理区域中的每个存储器块的所有页面时,即,当可以擦除包括该物理区域的超级块的所有物理区域时,可以擦除该物理区域。因此,在第二物理区域的情况下,虽然具有可以以存储器管芯为单位以交错方式操作的优点,但考虑到编程和擦除时的限制,可能不适合存储输入/输出频率高的数据。因此,通过同时使用第一超级块和第二超级块,可以在第一超级块的第一物理区域中存储容量较小或输入/输出频率高的数据,并且可以在第二超级块的第二物理区域中存储容量较大或输入/输出频率低的数据,从而可以提高存储设备的性能。
如上所述,诸如第一物理区域和第二物理区域的超级块中包括的物理区域可以被划分为满(full)状态、空(empty)状态和激活(active)状态,在第二物理区域的情况下,可以进一步具有准备复位(ready to reset)状态。物理区域的复位操作可以表示通过擦除物理区域来使该物理区域变成空状态的操作。擦除可以以存储器块为单位执行,如图6所示,在第二物理区域112b的情况下,仅包括多个存储器块中的每一个的一部分。另一方面,在第一物理区域112a的情况下,可以包括一个以上的整个存储器块。因此,当要复位特定的第一物理区域112a时,可以立即擦除该物理区域。另一方面,当要复位特定的第二物理区域112b时,当可以擦除部分包括在该物理区域中的每个存储器块的所有页面时,即,当可以擦除包括该物理区域的超级块的所有物理区域时,可以擦除该物理区域。因此,当对第二物理区域112b执行复位操作时,该物理区域不会被立即擦除,而是转换为准备复位状态,当包括第二物理区域112b的第二超级块111b中的所有第二物理区域112b转换为准备复位状态时,该超级块中的所有第二物理区域112b可以被一次性擦除以转换为空状态。
图7是用于说明由文件系统分配的分区的结构的图。
参照图7,分区可以包括多个逻辑地址。一个分区中包括的逻辑地址可以是连续地址或非连续地址。为数据分配分区可以表示分配了分区中的逻辑地址。关于每个分区中包括的地址的信息可以包括在主机中的存储器或存储设备中的存储器中。可以根据请求写入的数据的大小顺序地分配逻辑地址。例如,当有特定大小的数据D1和D2的写入请求并且图5的分区被分配给数据D1和D2时,LA1至LA3的逻辑地址可以被分配给D1,LA4和LA5的逻辑地址可以被分配给D2。
图8是用于说明由文件系统分配第一分区组的新的分区的过程的图。
参照图8,可以与分区组中的分区顺序无关地分配新的分区的分区组可以被定义为第一分区组421a。此时,包括在分区组中的分区中的逻辑地址可以彼此连续,并且随着分区组中的分区号增加,逻辑地址可以增加。因此,分区顺序可以表示分区组中的分区号顺序,这可以表示逻辑地址增加的方向上的顺序。或者,包括在分区组中的分区中的逻辑地址可以彼此不连续。在这种情况下,可以基于存储在单独的存储器中的分区和关于包括在每个分区组中的逻辑地址的信息来确定分区顺序。在第一分区组421a的情况下,由于可以与分区顺序无关地分配分区并分配逻辑地址,因此第三分区(分区#3)可以被首先分配并且第三分区中的所有逻辑地址被分配,从而可以在变成满分区(Full Section)之后分配第一分区(分区#1)并且可以分配新的数据的逻辑地址。当作为打开分区(Open Section)的第一分区的所有逻辑地址被分配给数据并且第一分区变成满分区时,文件系统420可以分配作为空分区(Empty Section)的第零分区(分区#0)和第二分区中的任何一个作为新的分区,并且可以将包括在其中的逻辑地址分配给数据。
图9和图10是用于说明由文件系统分配第二分区组的新的分区的过程的图。
参照图9和图10,可以根据分区组中的分区顺序分配新的分区的分区组可以被定义为第二分区组421b。如图9所示,在第二分区组中,第零分区(分区#0)可以最先被打开并将包括在其中的逻辑地址分配给数据,当第零分区变成满分区时,可以分配作为下一个顺序的分区的第一分区(分区#1)作为新的分区以存储数据。如图10所示,当第二分区组421b中的所有分区都是满分区时,文件系统420可以在分配新的第二分区组421b之后,分配作为新的第二分区组中的第一个分区的第零分区(分区#0)作为新的分区,并且可以将包括在其中的逻辑地址分配给数据。此时,在第二分区组421b的情况下,可以根据分区组中的分区顺序分配分区,当作为最后一个分区的第三分区(分区#3)是满分区时,在其之前的分区中不可能存在空分区。因此,在第二分区组421b的情况下,无需在分区组中寻找空分区,如果第二分区组421b中不存在下一个顺序的分区,则文件系统420分配新的第二分区组421b。
图11是用于说明通过文件系统的第一分区组的复位过程的图。
参照图11,在第一分区组421a中,1)当第零分区(分区#0)被复位时,2)通过丢弃(discard)与第零分区中的逻辑地址对应的所有数据,第零分区变成空(empty)分区,完成复位操作。另外,3)当第一分区(分区#1)被复位时,4)通过丢弃与第一分区中的逻辑地址对应的所有数据,第一分区变成空分区,完成复位操作。另外,5)当第二分区(分区#2)被复位时,6)通过丢弃与第二分区中的逻辑地址对应的所有数据,第二分区变成空分区,完成复位操作。即,当对第一分区组421a中包括的一个分区执行复位操作时,作为响应,与该分区中的逻辑地址对应的数据被丢弃,从而该分区可以立即变成空分区,因此,可以完成复位操作。此时,在对分区执行复位操作时丢弃与逻辑地址对应的数据可以表示解除逻辑地址和数据之间的映射关系。当与特定的分区中的逻辑地址对应的数据全部无效时执行复位操作,如果存在有效数据,则将其映射到另一分区的逻辑地址,并且可以在将与相应逻辑地址对应的数据处理为无效后执行复位操作。完成复位的分区中包括的逻辑地址可以重新被分配给新数据。这样的复位操作可以由文件系统执行。
图12是用于说明通过文件系统的第二分区组的复位过程的图。
参照图5和图12,在第二分区组421b中,1)当第零分区(分区#0)被复位时,2)与第零分区中的逻辑地址对应的数据不会被立即丢弃,并且指示第零分区准备复位的信息存储在位图中。另外,3)当第一分区(分区#1)被复位时,4)与第一分区中的逻辑地址对应的数据不会被立即丢弃,并且指示第一分区准备复位的信息存储在位图中。另外,5)当第二分区(分区#2)被复位时,6)与第二分区中的逻辑地址对应的数据不会被立即丢弃,并且指示第二分区准备复位的信息存储在位图中。另外,7)当第三分区(分区#3)被复位时,8)与第三分区中的逻辑地址对应的数据不会被立即丢弃,并且指示第三分区准备复位的信息存储在位图中。9)因此,当指示第二分区组421b的所有分区准备复位的信息存储在位图中时,与所有所述分区中的所有逻辑地址对应的所有数据都被丢弃,并且第二分区组421b中的所有分区一次性地变成空分区,从而可以完成复位操作。即,在第二分区组421b的情况下,当仅一部分分区被复位时,数据不会被立即丢弃,因此分区不会变成空分区,在对第二分区组421b中的所有分区执行复位操作之后,即在存储了指示所有分区准备复位的信息之后,与包括在第二分区组421b中的所有分区的逻辑地址对应的数据被丢弃,从而第二分区组421b中的所有分区可以同时变成空分区。当复位操作完成时,指示第二分区组421b中的所有分区准备复位的信息可以被删除。此时,存储指示准备复位的信息的位图可以包括在存储设备中的任意位置中。此时,在分区的复位操作中丢弃与逻辑地址对应的数据可以表示解除逻辑地址和数据之间的映射关系。当与特定的分区中的逻辑地址对应的数据全部无效(invalid)时,执行复位操作,如果存在有效数据,则将其映射到另一个分区的逻辑地址,并且在与该逻辑地址对应的数据被处理为无效后,可以执行复位操作。完成复位的分区中包括的逻辑地址可以重新分配给新的数据。这样的复位操作可以由文件系统执行。即,这样的第二分区的复位操作对应于图5的第二超级块111b中的第二物理区域112b的复位操作。即,当对第二分区422b执行复位操作时,第二分区处于准备复位状态,因此,对应于第二分区422b的第二物理区域112b不会被立即擦除,而是被转换为准备复位状态。随后,当包括第二分区422b的第二分区组421b中的所有第二分区422b都被转换为准备复位状态时,即,当包括第二物理区域112b的第二超级块111b中的所有第二物理区域112b被转换为准备复位状态时,与第二分区组421b中的所有第二分区422b的逻辑地址对应的数据被丢弃,从而第二分区组421b中的所有分区同时变成空分区,对应的第二超级块111b中的所有第二物理区域112b被擦除并变成空状态。
图13是用于说明根据本发明的一个实施例的数据分类的图。
在一个实施例中,由应用请求写入的数据可以根据其类型分类为节点或数据,并且可以根据温度分类为热、温和冷。因此,文件系统420可以根据数据的属性为数据生成热节点、温节点、冷节点、热数据、温数据、冷数据等的日志。例如,热节点可以是目录(directory)的索引节点(inode)或直接节点块(direct node block),因此,热节点可以是覆盖或更新频率非常高并且成为垃圾收集对象的概率也高的数据。温节点可以是普通文件(regular file)的索引节点或直接节点块,因此,温节点可以是覆盖或更新频率高并且成为垃圾收集对象的概率也相当高的数据。冷节点可以是间接节点块(indirect nodeblock),因此,冷节点可以是虽然覆盖和更新频率低但成为垃圾收集对象的概率非常高的数据。热数据可以是目录条目块(directory entry block)、分配量(quota)或64KB以下的容量较小的文件数据,因此,热数据可以是与其他数据相比覆盖或更新频率高并且成为垃圾收集对象的概率高的数据。温数据可以是用户创建的数据块,例如,可以是64KB以上的容量较大的文件数据,因此,温数据可以是虽然更新频率较高但成为垃圾收集对象的概率较低的数据。冷数据可以是通过清理(cleaning)或垃圾收集移动的数据、由用户分类为冷数据的数据块或具有特定格式(ex、.db、.jpg等)的文件数据,例如,多媒体文件数据,因此,冷数据可以是覆盖频率低并且成为垃圾收集对象的概率也较低的数据。然而,这种数据的分类不限于该方法,并且可以修改为具有包括以下图14中的方式的各种标准的方法。在本说明书中,文件系统的清理可以表示为了从主机的角度确保空分区,在将另一分区分配给与牺牲分区中的逻辑地址对应的有效数据之后,解除牺牲分区中的逻辑地址和与其对应的数据之间的关系,垃圾收集可以表示为了从存储设备的角度确保空物理区域或确保空存储器块,在将存储在存储设备的牺牲物理区域中的数据中的有效数据移动到另一物理区域之后擦除该物理区域。即,从结果来看,清理和垃圾收集可以表示相同的操作。
参照图13,第一分区组中包括的第一分区422a可以被分配给热节点、温节点、冷节点和热数据,并且第二分区组中包括的第二分区422b可以被分配给温数据和冷数据。此时,被分配第一分区组中包括的第一分区的热节点、温节点、冷节点和热数据可以被定义为第一类数据,被分配第二分区组中包括的第二分区的温数据和冷数据可以被定义为第二类数据。然而,包括在第一分区组和第二分区组中的每个数据的分类不限于图13所示的,并且可以根据设置对数据进行各种分类。优选地,第一类数据可以是容量较小的数据,或者可以是被更新或覆盖的可能性高的数据。另外,第二类数据可以是容量较大的数据,或者可以是被更新或覆盖的可能性低的数据。因此,第二类数据可以是比第一类数据相对更受输入/输出性能影响的数据。此时,对于被分类为第一类数据的数据,可以与该数据的具体属性无关地分配一个第一分区组中的分区。或者,即使是相同的第一类数据,当数据类型(节点或数据)或温度(热、温、冷)等属性不同时,可以相应地分配多个不同的第一分区组中的分区。类似地,对于被分类为第二类数据的数据,可以与该数据的具体属性无关地分配一个第二分区组中的分区。或者,即使是相同的第二类数据,当数据类型(节点或数据)或温度(热、温、冷)等属性不同时,可以相应地分配多个不同的第二分区组中的分区。被分配第一分区422a的第一类数据可以存储在第一超级块111a中的第一物理区域112a中。另外,被分配第二分区422b的第二类数据可以存储在第二超级块111b中的第二物理区域112b中。
图14是用于说明根据本发明的另一实施例的数据分类的图。
参照图14,可以根据不同于图13的分类标准对数据进行分类。在图14的情况下,将数据分类为热节点、温节点、热数据、温数据和冷数据。热节点可以包括目录的索引节点、文件的索引节点和直接节点,温节点可以包括间接节点、目录条目块和分配量。另外,热数据可以包括小文件数据,温数据可以包括中文件数据,冷数据可以是大文件数据或具有特定格式的任意大小的文件数据。即,图14所示的数据的分类可以是基于数据类型、数据大小、数据出现频率、覆盖频率等对各种属性的数据进行重新分类,以更适合对分区组和超级块进行划分和管理。因此,被分类的热节点、温节点和热数据可以被分类为第一类数据,并且可以为其分配第一分区组中的分区,并且被分类的温数据和冷数据可以被分类为第二类数据,并且可以为其分配第二分区组中的分区。被分配第一分区422a的第一类数据可以存储在第一超级块111a中的第一物理区域112a中。另外,被分配第二分区422b的第二类数据可以存储在第二超级块111b中的第二物理区域112b中。然而,数据分类标准不限于参照图13说明的内容和图14所示的内容。
图15是用于说明根据本发明的一个实施例的存储设备的垃圾收集的流程图。
参照图15,在步骤S1501中,存储设备可以确认多个物理区域中具有空状态(emptystate)的物理区域的数量。可以基于所确认的处于空状态的物理区域的数量来确定是否执行垃圾收集和执行方法。
例如,在步骤S1503中,可以确认所确认的处于空状态的物理区域的数量是否小于第一阈值。当处于空状态的物理区域的数量大于等于第一阈值时,可以不执行垃圾收集,并且可以重复确认处于空状态的物理区域的数量。当处于空状态的物理区域的数量小于第一阈值时,可以执行垃圾收集。在步骤S1505中,可以确认在步骤S1501中确认的处于空状态的物理区域的数量是否小于第二阈值。此时,第二阈值可以小于第一阈值。当处于空状态的物理区域的数量小于第二阈值时,可以判断为急需确保处于空状态的物理区域,并且在步骤S1507中,可以以超级块为单位执行垃圾收集。当处于空状态的物理区域的数量大于等于第二阈值时,即介于第一阈值和第二阈值之间,可以判断为确保处于空状态的物理区域相对不那么紧迫,并且在步骤S1509中,可以以物理区域为单位执行垃圾收集。将参照图16至图19更详细地说明根据步骤S1507和步骤S1509执行垃圾收集的过程。
图16是用于说明根据本发明的一个实施例的选择存储设备的牺牲物理区域的过程的流程图。
图16的过程可以是以超级块为单位执行垃圾收集的图15的步骤S1507的示例。参照图4和图16,在步骤S1601中,可以选择候选超级块。可以从仅包括处于满状态的物理区域和处于准备复位状态的物理区域的超级块中选择候选超级块。此时,可以基于由区域信息存储部220存储的关于每个物理区域的信息来选择候选超级块。
在步骤S1603中,可以选择候选物理区域。可以从候选超级块中包括的物理区中选择候选物理区域。可以从候选超级块中包括的物理区中的具有满状态的物理区域中选择候选物理区域。此时,可以基于由区域信息存储部220存储的关于物理区域的信息来选择候选物理区域。
在步骤S1605中,可以计算候选物理区域的成本。此时,可以基于由区域信息存储部220存储的关于候选物理区域的信息来计算成本。可以根据预先确定的方法计算每个候选物理区域的成本,在一个实施例中,可以计算为执行垃圾收集的需求高的区域具有低成本。在实施例中,可以基于存储在候选物理区域中的数据的日志和候选物理区域转换为满状态的时间点来计算候选物理区域的成本。例如,在考虑存储在候选物理区域中的数据的日志时,当数据的温度越低并且数据类型越是数据而不是节点时,可以判断为该候选物理区域中的数据无效的可能性低,可以计算成本以增加这些物理区域被选为牺牲物理区域的可能性。另外,在考虑候选物理区域的满状态转换时间点时,当转换为满状态的时间越长时,可以判断为该候选物理区域中的数据无效的可能性低,可以计算成本以增加这些物理区域被选为牺牲物理区域的可能性。
在步骤S1607中,可以基于每个候选超级块中包括的候选物理区域的成本来计算候选超级块的成本。例如,在基于候选超级块中处于准备复位状态的物理区域的数量计算成本后,可以通过将在步骤S1605中针对每个候选超级块中包括的候选物理区域计算的成本相加来计算候选超级块的成本。可以计算成本使得候选超级块中处于准备复位状态的物理区域的数量越多被选为牺牲物理区域的可能性越高。
在步骤S1609中,可以通过比较候选超级块的成本来确定牺牲超级块。计算为具有最低成本的候选超级块可以被确定为牺牲超级块。
在步骤S1611中,可以将牺牲超级块中包括的所有候选物理区域确定为牺牲物理区域。
图17是用于说明根据本发明的一个实施例的在存储设备中对物理区域执行垃圾收集的过程的流程图。
图17可以是对图16中确定的牺牲物理区域执行垃圾收集的过程的示例。参照图17,在步骤S1701中,可以复制存储在牺牲物理区域中的数据并将其存储在不同于牺牲超级块的另一超级块中。此时,当牺牲超级块是第一超级块时,复制的数据可以存储在另一第一超级块中,当牺牲超级块是第二超级块时,复制的数据可以存储在另一第二超级块中。
在步骤S1703中,可以对数据移动完成的牺牲超级块执行擦除。因此,牺牲超级块中包括的所有物理区域都可以转换为空状态。
图18是用于说明根据本发明的另一实施例的选择存储设备的牺牲物理区域的过程的流程图。
图18的过程可以是以物理区域为单位执行垃圾收集的图15的步骤S1509的示例。参照图4和图18,在步骤S1801中,可以选择候选物理区域。可以从具有满状态的物理区域中选择候选物理区域。
在步骤S1803中,可以计算候选物理区域的成本。此时,可以基于由区域信息存储部220存储的关于候选物理区域的信息来计算成本。在实施例中,候选物理区域的成本可以基于存储在候选物理区域中的数据的日志和候选物理区域转换为满状态的时间点来计算。例如,在考虑存储在候选物理区域中的数据的日志时,当数据的温度越低并且数据类型越是数据而不是节点时,可以判断为该候选物理区域中的数据无效的可能性低,可以计算成本以增加这些物理区域被选为牺牲物理区域的可能性。另外,在考虑候选物理区域的满状态转换时间点时,当转换为满状态的时间越长时,可以判断为该候选物理区域中的数据无效的可能性低,可以计算成本以增加这些物理区域被选为牺牲物理区域的可能性。
在步骤S1805中,可以通过比较候物理区域的成本来确定牺牲物理区域。计算为具有最低成本的候选物理区域可以被确定为牺牲物理区域。
图19是用于说明书根据本发明的另一实施例的在存储设备中对牺牲物理区域执行垃圾收集的过程的流程图。
图19可以是对图18中确定的牺牲物理区域执行垃圾收集的过程的示例。参照图19,在步骤S1901中,可以复制存储在牺牲物理区域中的数据并将其存储在不同于牺牲超级块的另一超级块中。此时,当牺牲超级块是第一超级块时,复制的数据可以存储在另一第一超级块中,当牺牲超级块是第二超级块时,复制的数据可以存储在另一第二超级块中。
在步骤S1903中,可以确认牺牲物理区域的物理区域类型。当在步骤S1905确认为牺牲物理区域是第一物理区域时,在步骤S1907中可以擦除牺牲物理区域,因此,在步骤S1909中,可以将牺牲物理区域的状态改变为空状态。
当在步骤S1905中确认为牺牲物理区域不是第一物理区域时,即当确认为牺牲物理区域是第二物理区域时,可以不立即擦除牺牲物理区域,在步骤S1911中可以仅将状态改变为准备复位状态。之后,当包括牺牲物理区域的超级块中的所有物理区域都处于准备复位状态时,可以擦除整个超级块,因此,该超级块中的所有物理区域的状态可以改变为空状态。
即,由于用于通过擦除物理区域来使其变成空状态的复位操作的过程根据物理区域的形态而不同,因此对于每种类型的物理区域可以以不同的形式执行垃圾收集。
图20是用于说明书根据本发明的一个实施例的在执行垃圾收集时复制牺牲物理区域中的数据的过程的图。
参照图20,如图17的步骤S1701和步骤S1901,当复制存储在牺牲物理区域中的数据并将其存储在新的超级块中时,新的超级块可以考虑包括牺牲物理区域的超级块的类型。即,可以考虑存储在牺牲物理区域中的数据的日志。例如,如图20的热节点、温节点、冷节点和热数据,被分类为第一类数据并存储在第一超级块中的第一物理区域中的数据在该物理区域被确定为牺牲物理区域的情况下移动到另一第一超级块中的第一物理区域。当第一超级块中不存在要分配的第一物理区域时,可以在分配新的第一超级块之后分配包括在其中的任何一个第一物理区域作为存储在牺牲物理区域中的数据将被存储的新的物理区域。另外,如图20的温数据和冷数据,被分类为第二类数据并存储在第二超级块中的第二物理区域中的数据在该物理区域被确定为牺牲物理区域的情况下移动到另一第二超级块中的第二物理区域。当第二超级块中不存在要分配的第二物理区域时,可以在分配新的第二超级块之后分配包括在其中的任何一个第二物理区域作为存储在牺牲物理区域中的数据将被存储的新的物理区域。
图21是示出图1的存储器控制器的另一实施例的图。
参照图21,存储器控制器1000可以包括处理器1010、内部存储器1020、纠错码电路1030、主机接口1040、缓冲存储器接口1050和存储器接口1060。
处理器1010可以执行用于控制存储器装置100的各种运算或者可以生成各种命令。当处理器1010从主机400接收到请求时,处理器1010可以根据接收的请求生成命令并将生成的命令传送到队列控制器(未示出)。另外,处理器1010可以响应于来自主机400的物理区域分配请求,分配将要存储从主机接收的数据的存储器装置中的超级块和包括在其中的物理区域,并且可以管理分配的超级块和物理区域。另外,处理器1010可以基于关于每个物理区域的信息执行垃圾收集。
内部存储器1020可以存储存储器控制器1000的操作所需的各种信息。例如,内部存储器1020可以包括逻辑和物理地址映射表。内部存储器1020可以被配置为RAM(随机存取存储器)、动态RAM(DRAM)、静态RAM(SRAM)、高速缓存(cache)和紧耦合存储器(tightlycoupled memory,TCM)中的至少一种。内部存储器1020可以存储关于由处理器分配的每个物理区域的信息。例如,可以存储存储在每个物理区域中的数据的日志和每个物理区域的状态信息等。
纠错码电路1030被配置为利用纠错码(ECC)检测并纠正从存储器装置100接收的数据中的错误。处理器1010可以控制存储器装置100以根据纠错码电路1030的错误检测结果调整读取电压并执行重新读取。在示例性实施例中,可以提供纠错块作为存储器控制器1000的组件。
主机接口1040可以在存储器控制器1000和主机400之间交换命令、地址和数据等。例如,主机接口1040可以从主机400接收请求、地址、数据等,并且可以将从存储器装置100读取的数据输出到主机400。主机接口1040可以使用诸如USB(通用串行总线(UniversalSerial Bus))、SATA(串行高级技术附件(Serial AT Attachment))、SAS(串行连接SCSI(Serial Attached SCSI))、HSIC(高速芯片间(High Speed Interchip))、SCSI(小型计算机系统接口(Small Computer System Interface))、PCI(外围组件互连(PeripheralComponent Interconnection))、PCIe(快速的外围组件互连(PCI express))、NVMe(非易失性存储器主机控制器接口规范(NonVolatile Memory express))、UFS(通用闪存(Universal Flash Storage))、SD(安全数字(Secure Digital))、MMC(多媒体卡(MultiMedia Card))、eMMC(嵌入式多媒体卡(embedded MMC))、DIMM(双列直插式存储器模块(Dual In-line Memory Module))、RDIMM(带寄存器的双列直插式存储器模块(Registered DIMM))、LRDIMM(低负载双列直插式存储器模块(Load Reduced DIMM))、ESDI(增强型小型磁盘机接口(enhanced small disk interface))或IDE(电子集成驱动器(Integrated Drive Electronics))的协议来与主机400进行通信。
缓冲存储器接口1050可以在处理器1010和缓冲存储器之间传送数据。缓冲存储器可以用作存储器控制器1000的操作存储器或高速缓冲存储器,并且可以存储在存储设备50中使用的数据。通过处理器1010,缓冲存储器接口1050可以将缓冲存储器用作读取缓冲器、写入缓冲器、映射缓冲器等。根据实施例,缓冲存储器可以包括DDR SDRAM(双倍数据速率同步动态随机存取存储器)、DDR4 SDRAM、LPDDR4(低功耗双倍数据速率4)SDRAM、GDDR(图形双倍数据速率)SDRAM、LPDDR(低功耗DDR)或RDRAM(存储器总线式动态随机存取存储器)。当缓冲存储器包括在存储器控制器1000内部时,可以省略缓冲存储器接口1050。
存储器接口1060可以在存储器控制器1000和存储器装置100之间交换命令、地址和数据。例如,存储器接口1060可以通过通道(channel)将命令、地址、数据等传送到存储器装置100,并且可以从存储器装置100接收数据等。存储器接口1060可以基于由处理器1010分配和管理的超级块和区域向存储器装置100传送命令、地址和数据或从存储器装置100接收命令、地址和数据等。另外,当执行垃圾收集时,被选为牺牲物理区域的物理区域中的数据可以被移动到不同于包括牺牲物理区域的超级块的另一超级块,并且可以对牺牲物理区域执行擦除操作,或者可以通过改变牺牲物理区域的状态并将改变的状态信息提供给内部存储器1020。
图22是示出应用了根据本发明的实施例的存储设备的存储卡系统的框图。
参照图22,存储卡系统2000包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100连接到存储器装置2200。存储器控制器2100被配置为访问存储器装置2200。例如,存储器控制器2100可以被配置为控制存储器装置2200的读取、编程、擦除和后台(background)操作。存储器控制器2100被配置为提供存储器装置2200和主机之间的接口。存储器控制器2100被配置为驱动用于控制存储器装置2200的固件(firmware)。存储器控制器2100可以以与参照图1描述的存储器控制器200相同的方式实现。例如,存储器控制器2100可以在存储器装置2200中分配物理区域和包括该物理区域的超级块,并可以以物理区域和超级块为单位控制存储器装置2200。
例如,存储器控制器2100可以包括诸如RAM(随机存取存储器)、处理单元、主机接口、存储器接口、纠错部的组件。
存储器控制器2100可以通过连接器2300与外部设备进行通信。存储器控制器2100可以根据特定的通信标准与外部设备(例如,主机)进行通信。例如,存储器控制器2100可以被配置为通过诸如USB(通用串行总线(Universal Serial Bus))、MMC(多媒体卡(MultiMedia Card))、eMMC(嵌入式多媒体卡(embedded MMC))、PCI(外围组件互连(Peripheral Component Interconnection))、PCI-E(快速的外围组件互连(PCIexpress))、ATA(高级技术附件(Advanced Technology Attachment))、Serial-ATA(串行ATA)、Parallel-ATA(并行ATA)、SCSI(小型计算机系统接口(Small Computer SystemInterface))、ESDI(增强型小型磁盘机接口(enhanced small disk interface))、IDE(电子集成驱动器(Integrated Drive Electronics))、Firewire(火线)、UFS(通用闪存(Universal Flash Storage))、WIFI、蓝牙(Bluetooth)、NVMe的各种通信标准中的至少一种与外部设备进行通信。例如,连接器2300可以由上述各种通信标准中的至少一种来定义。
例如,存储器装置2200可以被配置为诸如EEPROM(电可擦除可编程ROM(Electrically Erasable and Programmable ROM))、NAND闪存、NOR闪存、PRAM(相变RAM(Phase-change RAM))、ReRAM(电阻RAM(Resistive RAM))、FRAM(铁电RAM(FerroelectricRAM))、STT-MRAM(自旋转移矩RAM(Spin Transfer Torque Magnetic RAM))的各种非易失性存储设备。
存储器控制器2100和存储器装置2200可以集成到一个半导体器件中以构成存储卡。例如,存储器控制器2100和存储器装置2200可以集成到一个半导体器件中以构成诸如PC卡(个人计算机存储卡国际协会(personal computer memory card internationalassociation,PCMCIA))、CF卡、智能媒体卡(SM、SMC)、记忆棒、多媒体卡(MMC、RS-MMC、MMCmicro、eMMC)、SD卡(SD、miniSD、microSD、SDHC)、通用闪存(UFS)的存储卡。
图23是示出应用了根据本发明的实施例的存储设备的固态硬盘(Solid StateDrive,SSD)系统的框图。
参照图23,SSD系统3000包括主机3100和SSD 3200。SSD 3200通过信号连接器3001向主机3100传送信号和从主机3100接收信号,并且通过电源连接器3002接收电力。SSD3200包括SSD控制器3210、多个闪存3221~322n、辅助电源装置3230和缓冲存储器3240。
根据本发明的实施例,SSD控制器3210可以执行参照图1说明的存储器控制器200的功能。
SSD控制器3210可以响应于从主机3100接收的信号来控制多个闪存3221~322n。SSD控制器3210可以通过多个通道CH1~CHn控制多个闪存。一个以上的存储器管芯可以连接到每个通道。例如,信号可以是基于主机3100和SSD 3200的接口的信号。例如,信号可以是由诸如USB(通用串行总线(Universal Serial Bus))、MMC(多媒体卡(MultiMediaCard))、eMMC(嵌入式多媒体卡(embedded MMC))、PCI(外围组件互连(PeripheralComponent Interconnection))、PCI-E(快速的外围组件互连(PCI express))、ATA(高级技术附件(Advanced Technology Attachment))、Serial-ATA(串行ATA)、Parallel-ATA(并行ATA)、SCSI(小型计算机系统接口(Small Computer System Interface))、ESDI(增强型小型磁盘机接口(enhanced small disk interface))、IDE(电子集成驱动器(IntegratedDrive Electronics))、Firewire(火线)、UFS(通用闪存(Universal Flash Storage))、WIFI、蓝牙(Bluetooth)、NVMe的接口中的至少一种定义的信号。SSD控制器3210可以根据从主机3100接收的垃圾收集执行请求来执行垃圾收集或者可以自行执行垃圾收集。
辅助电源装置3230通过电源连接器3002连接到主机3100。辅助电源装置3230可以从主机3100接收电力并进行充电。当来自主机3100的电力供应不顺畅时,辅助电源装置3230可以向SSD 3200供应电力。例如,辅助电源装置3230可以位于SSD 3200内或可以位于SSD 3200外部。例如,辅助电源装置3230可以位于主板上以向SSD 3200供应辅助电力。
缓冲存储器3240作为SSD 3200的缓冲存储器操作。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪存3221~322n接收的数据,或者缓冲存储器3240可以临时存储闪存3221~322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器或诸如FRAM、ReRAM、STT-MRAM、PRAM的非易失性存储器。
图24是示出应用了根据本发明的实施例的存储设备的用户系统的框图。
参照图24,用户系统4000包括应用处理器(Application Processor)4100、存储器模块(Memory Module)4200、网络模块(Network Module)4300、存储模块(Storage Module)4400和用户界面(User Interface)4500。
应用处理器4100可以驱动包括在用户系统4000中的组件、操作系统(OS)、用户程序或文件系统等。例如,应用处理器4100可以包括控制包括在用户系统4000中的组件的控制器、接口和图形引擎等。应用处理器4100可以被提供为片上系统(SoC)。应用处理器4100可以为用户请求写入的数据生成日志,基于该日志分配分区组和分区,并且将分区被分配到的数据提供给存储模块4400。
存储器模块4200可以作为用户系统4000的主存储器、操作存储器、缓冲存储器或高速缓冲存储器来操作。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDR SDARM、LPDDR2 SDRAM、LPDDR3 SDRAM的易失性随机存取存储器或诸如PRAM、ReRAM、MRAM、FRAM的非易失性随机存取存储器。例如,应用处理器4100和存储器模块4200可以基于POP(叠层封装(Package on Package))封装并且可以被提供为单个半导体封装。
网络模块4300可以与外部设备进行通信。例如,网络模块4300可以支持诸如CDMA(码分多址(Code Division Multiple Access))、GSM(全球移动通信系统(Global Systemfor Mobile communication))、WCDMA(宽带CDMA(wideband CDMA))、CDMA-2000、TDMA(时分多址(Time Division Multiple Access))、LTE(长期演进(Long Term Evolution))、Wimax、WLAN、UWB、蓝牙、Wi-Fi的无线通信。例如,网络模块4300可以包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。或者,存储模块4400可以将存储在存储模块4400中的数据传送到应用处理器4100。例如,存储模块4400可以实现为诸如PRAM(相变RAM(Phase-change RAM))、MRAM(磁性RAM(Magnetic RAM))、RRAM(电阻RAM(Resistive RAM))、NAND闪存、NOR闪存、三维结构的NAND闪存的非易失性半导体存储器器件。例如,存储模块4400可以被提供为诸如用户系统4000的存储卡或外部驱动器的可移动驱动器(removable drive)。
例如,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置可以以与参照图1说明的存储器装置100相同的方式操作。存储模块4400可以以与参照图1说明的存储设备50相同的方式操作。
用户界面4500可以包括用于将数据或命令输入到应用处理器4100或者将数据输出到外部设备的界面。例如,用户界面4500可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像头、麦克风、陀螺仪传感器、振动传感器、压电元件的用户输入界面。用户界面4500可以包括诸如LCD(液晶显示器(Liquid Crystal Display))、OLED(有机发光二极管(Organic Light Emitting Diode))显示器、AMOLED(有源矩阵OLED(ActiveMatrix OLED))显示器、LED、扬声器和监视器的用户输出界面。
Claims (20)
1.一种存储设备,包括:
存储器装置,包括多个管芯;以及
存储器控制器,从外部主机接收数据和关于所述数据属性的日志,基于所述数据的日志分配将要存储所述数据的所述存储器装置中的超级块和所述超级块中包括的物理区域,并存储每个所述物理区域存储的数据的日志和关于不存在空区域的处于满状态的物理区域转换为满状态的时间点的信息,
其中,所述存储器控制器被配置为:
控制所述存储器装置以基于内部区域全部为空的处于空状态的物理区域的数量执行垃圾收集,
在执行所述垃圾收集时,基于所述数据的日志和关于满状态转换时间点的信息选择牺牲物理区域。
2.根据权利要求1所述的存储设备,其中,
所述日志基于所述数据的类型和温度分配。
3.根据权利要求2所述的存储设备,其中,
所述超级块基于所述数据的日志被确定为包括多个第一物理区域的第一超级块或包括多个第二物理区域的第二超级块,所述第一物理区域包括一个存储器管芯中的一个以上的存储器块,所述第二物理区域包括不同的存储器管芯中包括的每个存储器块的一部分。
4.根据权利要求3所述的存储设备,其中,
存储在所述第一物理区域中的数据比存储在所述第二物理区域中的数据容量小或输入/输出频率高。
5.根据权利要求4所述的存储设备,其中,
存储在所述第一物理区域中的数据的日志是热节点、温节点、冷节点和热数据中的一种。
6.根据权利要求4所述的存储设备,其中,
存储在所述第二物理区域中的数据的日志是温数据和冷数据中的一种。
7.根据权利要求3所述的存储设备,其中,
所述物理区域具有满状态、空状态、激活状态和准备复位状态中的任何一种状态,所述满状态是物理区域中不存在空区域的状态,所述空状态是物理区域为空的状态,所述激活状态是数据仅存储在物理区域中的一部分区域中的状态,并且所述准备复位状态是虽然执行了用于通过擦除物理区域来使其变成空状态的复位操作,但是根据包括所述物理区域的超级块中的其他物理区域的状态复位操作尚未完成的状态。
8.根据权利要求7所述的存储设备,其中,
从处于满状态的物理区域中选择所述牺牲物理区域。
9.根据权利要求8所述的存储设备,其中,
所述存储器控制器进行控制以复制存储在所述牺牲物理区域中的数据并将其存储在另一超级块中的物理区域中。
10.根据权利要求9所述的存储设备,其中,
所述存储器控制器被配置为:
当所述牺牲物理区域是第一物理区域时,进行控制以将从牺牲物理区域复制的数据存储在包括第一物理区域的另一超级块中的物理区域中,
当所述牺牲物理区域是第二物理区域时,进行控制以将从牺牲物理区域复制的数据存储在包括第二物理区域的另一超级块中的物理区域中。
11.一种存储设备的操作方法,所述存储设备包括:存储器装置,包括多个管芯;以及存储器控制器,从外部主机接收数据和关于所述数据属性的日志,基于所述数据的日志分配将要存储所述数据的所述存储器装置中的超级块和所述超级块中包括的物理区域,所述存储设备的操作方法包括以下步骤:
基于内部区域全部为空的处于空状态的物理区域的数量来确定是否执行垃圾收集;
从不存在空区域的处于满状态的物理区域中选择候选物理区域;以及
基于存储在所述候选物理区域中的数据的日志和候选物理区域转换为满状态的时间点确定牺牲物理区域。
12.根据权利要求11所述的存储设备的操作方法,其中,
所述超级块被确定为包括多个第一物理区域的第一超级块和包括多个第二物理区域的第二超级块中的一种,所述第一物理区域包括一个存储器管芯中的一个以上的存储器块,所述第二物理区域包括不同的存储器管芯中包括的每个存储器块的一部分。
13.根据权利要求12所述的存储设备的操作方法,其中,
在确定是否执行垃圾收集的步骤中,当所述处于空状态的物理区域的数量小于第一阈值时,执行所述垃圾收集。
14.根据权利要求13所述的存储设备的操作方法,其中,
当所述处于空状态的物理区域的数量小于比第一阈值小的第二阈值时,从仅包括处于满状态的物理区域和处于准备复位状态的物理区域的超级块中的物理区域中选择所述候选物理区域,所述满状态是内部不存在空区域的状态,所述准备复位状态是虽然执行了用于通过擦除物理区域来使其变成空状态的复位操作,但是根据包括所述物理区域的超级块中的其他物理区域的状态复位操作尚未完成的状态。
15.根据权利要求14所述的存储设备的操作方法,其中,
确定牺牲物理区域的步骤包括以下步骤:
基于存储在候选物理区域中的数据的日志和牺牲物理区域转换为满状态的时间点计算候选物理区域的成本;
基于包括每个候选物理区域的候选超级块中的所有候选物理区域的成本计算所述候选超级块的成本;以及
通过比较所述候选超级块的成本来确定牺牲超级块,并且将所述牺牲超级块中包括的所有物理区域确定为牺牲物理区域。
16.根据权利要求15所述的存储设备的操作方法,进一步包括以下步骤:
将包括在所述牺牲物理区域中的数据存储在另一超级块中包括的物理区域中;以及
擦除所述牺牲超级块。
17.根据权利要求13所述的存储设备的操作方法,其中,
当所述处于空状态的物理区域的数量小于所述第一阈值并且大于比所述第一阈值小的第二阈值时,确定牺牲物理区域的步骤包括以下步骤:
基于存储在候选物理区域中的数据的日志和候选物理区域转换为满状态的时间点来计算候选物理区域的成本;以及
通过比较所述候选物理区域的成本来确定牺牲物理区域。
18.根据权利要求17所述的存储设备的操作方法,进一步包括以下步骤:
将包括在所述牺牲物理区域中的数据存储在另一超级块中包括的物理区域中;以及
擦除所述物理区域或转换为准备复位状态。
19.根据权利要求18所述的存储设备的操作方法,其中,
当所述牺牲物理区域是第一物理区域时,擦除所述牺牲物理区域,
当所述牺牲物理区域是第二物理区域时,将所述牺牲物理区域转换为准备复位状态。
20.一种存储设备,包括:
存储器装置,包括多个存储器管芯;以及
存储器控制器,将所述存储器装置划分为多个超级块并进行控制,
其中,所述多个超级块中的一个以上的超级块分别包括多个物理区域,所述物理区域包括不同的存储器管芯中包括的每个存储器块的一部分,
所述存储器控制器控制所述存储器装置以基于关于所述物理区域的信息执行垃圾收集。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163192877P | 2021-05-25 | 2021-05-25 | |
US63/192,877 | 2021-05-25 | ||
KR10-2021-0086013 | 2021-06-30 | ||
KR20210086013 | 2021-06-30 | ||
KR1020220060487A KR20220159270A (ko) | 2021-05-25 | 2022-05-17 | 스토리지 장치 및 그 동작 방법 |
KR10-2022-0060487 | 2022-05-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115390747A true CN115390747A (zh) | 2022-11-25 |
Family
ID=84117036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210580061.4A Withdrawn CN115390747A (zh) | 2021-05-25 | 2022-05-25 | 存储设备及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11954350B2 (zh) |
CN (1) | CN115390747A (zh) |
TW (1) | TW202314471A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11960753B2 (en) * | 2021-08-25 | 2024-04-16 | Western Digital Technologies, Inc. | Solution for super device imbalance in ZNS SSD |
US20240061587A1 (en) * | 2022-08-22 | 2024-02-22 | Micron Technology, Inc. | Zone write operation techniques |
US12135904B2 (en) * | 2022-11-22 | 2024-11-05 | SanDisk Technologies, Inc. | Folding zone management optimization in storage device |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7315894B2 (en) | 2001-07-17 | 2008-01-01 | Mcafee, Inc. | Network data retrieval and filter systems and methods |
US8799572B2 (en) * | 2009-04-20 | 2014-08-05 | Microsoft Corporation | Sliding-window multi-class striping |
US9489296B1 (en) | 2012-10-17 | 2016-11-08 | Western Digital Technologies, Inc. | Methods, devices and systems for hardware-based garbage collection in solid state drives |
US9773014B2 (en) | 2014-06-03 | 2017-09-26 | Samsung Electronics Co., Ltd. | Heterogeneous distributed file system using different types of storage mediums |
JP6450598B2 (ja) | 2015-01-19 | 2019-01-09 | 東芝メモリ株式会社 | 情報処理装置、情報処理方法およびプログラム |
WO2016162981A1 (ja) * | 2015-04-08 | 2016-10-13 | 株式会社日立製作所 | 計算機システム、及び、データベース管理方法 |
KR102653401B1 (ko) | 2016-07-18 | 2024-04-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
KR102681659B1 (ko) | 2017-01-12 | 2024-07-05 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102457564B1 (ko) | 2017-09-20 | 2022-10-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
JP2019079464A (ja) | 2017-10-27 | 2019-05-23 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
JP7074453B2 (ja) * | 2017-10-30 | 2022-05-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
KR102524432B1 (ko) * | 2018-04-09 | 2023-04-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102624911B1 (ko) | 2018-06-13 | 2024-01-12 | 삼성전자주식회사 | 개선된 메타 데이터 관리를 통한 플래시 메모리의 내구성 향상 방법 |
KR20200044460A (ko) | 2018-10-19 | 2020-04-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US11341010B2 (en) * | 2020-01-15 | 2022-05-24 | EMC IP Holding Company LLC | Dynamic reclamation of storage stripes |
US11620050B2 (en) * | 2020-09-25 | 2023-04-04 | Sandisk Technologies Llc | Soft data compression for non-volatile memory |
US11989445B2 (en) * | 2021-05-13 | 2024-05-21 | Micron Technology, Inc. | Automatic operating mode management for memory using workload profile data |
-
2022
- 2022-05-24 US US17/752,147 patent/US11954350B2/en active Active
- 2022-05-24 TW TW111119338A patent/TW202314471A/zh unknown
- 2022-05-25 CN CN202210580061.4A patent/CN115390747A/zh not_active Withdrawn
-
2024
- 2024-03-26 US US18/616,171 patent/US20240231663A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220382454A1 (en) | 2022-12-01 |
US20240231663A1 (en) | 2024-07-11 |
TW202314471A (zh) | 2023-04-01 |
US11954350B2 (en) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111240586B (zh) | 存储器系统及其操作方法 | |
US11782617B2 (en) | Host device, storage device, and electronic device | |
US11543986B2 (en) | Electronic system including host, memory controller and memory device and method of operating the same | |
TW201732597A (zh) | 資料儲存裝置和其操作方法 | |
CN111435289A (zh) | 映射数据访问性能提高的存储器控制器及其操作方法 | |
CN115390747A (zh) | 存储设备及其操作方法 | |
CN111444115B (zh) | 存储装置及其操作方法 | |
WO2019203915A1 (en) | Storage cache management | |
US20240070033A1 (en) | Storage device including nonvolatile memory device and operating method of storage device | |
CN111338978B (zh) | 存储装置以及操作存储装置的方法 | |
KR20200032404A (ko) | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
CN114327240A (zh) | 计算机可读存储介质、闪存存储器的数据存储方法及装置 | |
CN117999547A (zh) | 用于存储器子系统中的两遍次编程的虚拟管理单元方案 | |
CN114115709A (zh) | 存储器控制器及其操作方法 | |
KR20220103340A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20240078027A1 (en) | Storage device including nonvolatile memory device and operating method of storage device | |
US12007887B2 (en) | Method and system for garbage collection | |
TW202433299A (zh) | 包括儲存裝置和控制器的電子裝置及其操作方法 | |
KR20220159270A (ko) | 스토리지 장치 및 그 동작 방법 | |
CN111309246A (zh) | 存储装置及其操作方法 | |
CN111857563A (zh) | 数据存储装置、包括其的电子装置及其操作方法 | |
US20240264757A1 (en) | Memory system and operating method thereof | |
KR20220159269A (ko) | 스토리지 장치 및 그 동작 방법 | |
US11693574B2 (en) | Method of writing data in storage device and storage device performing the same | |
TW202437123A (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: 20221125 |
|
WW01 | Invention patent application withdrawn after publication |