CN112684976A - 用于执行迁移操作的存储器系统及其操作方法 - Google Patents
用于执行迁移操作的存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN112684976A CN112684976A CN202010739365.1A CN202010739365A CN112684976A CN 112684976 A CN112684976 A CN 112684976A CN 202010739365 A CN202010739365 A CN 202010739365A CN 112684976 A CN112684976 A CN 112684976A
- Authority
- CN
- China
- Prior art keywords
- region
- block
- blocks
- victim
- memory
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- 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/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
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- 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/065—Replication mechanisms
-
- 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/0653—Monitoring storage devices or 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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
- G06F2212/1036—Life time enhancement
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及一种存储器系统,该存储器系统包括:非易失性存储器,包括第一区域和第二区域;以及控制器,被配置成管理第一区域和第二区域中包括的多个存储块的迁移操作,其中控制器包括:迁移模块,被配置成通过以下操作来执行迁移操作:当第一区域中没有空闲存储空间时,基于第一区域中包括的每个存储块的有效页面的数量来选择一个或多个牺牲块;在第二区域中选择分别与牺牲块的数量对应的一个或多个目标块;并且将第一区域中的一个或多个牺牲块中的每个的类型信息交换为第二区域中的一个或多个目标块中的相应目标块的类型信息。
Description
相关申请的交叉引用
本申请要求于2019年10月18日提交的申请号为10-2019-0130019的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开的实施例涉及一种半导体装置,且更特别地,涉及一种包括非易失性存储器单元的存储器系统及其操作方法。
背景技术
近来,计算机环境的范例已经转变为允许随时随地使用计算机系统的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已经迅速增加。通常,这种便携式电子装置使用包括存储器装置的存储器系统,即数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
发明内容
各个实施例涉及一种存储器系统及其操作方法,该存储器系统当包括第一区域和第二区域的非易失性存储器中的第一区域中没有空闲存储空间时,通过以下操作来管理第一区域的存储空间:基于第一区域中包括的多个存储块之中的有效页面的数量来选择一个或多个存储块;在第二区域中选择与所选择的存储块的数量对应的空闲块;并且将第一区域的所选择的一个或多个存储块的位置信息交换为第二区域的空闲块的位置信息。
在实施例中,一种存储器系统,包括:非易失性存储器,包括第一区域和第二区域;以及控制器,被配置成管理第一区域和第二区域中包括的多个存储块的迁移操作,其中控制器包括:迁移模块,被配置成通过以下操作来执行迁移操作:当第一区域中没有空闲存储空间时,基于第一区域中包括的每个存储块的有效页面的数量来选择一个或多个牺牲块;在第二区域中选择分别与牺牲块的数量对应的一个或多个目标块;并且将第一区域中的一个或多个牺牲块中的每一个的类型信息交换为第二区域中的一个或多个目标块中的相应目标块的类型信息。
在实施例中,一种操作存储器系统的方法,该存储器系统包括非易失性存储器和控制器,该非易失性存储器包括第一区域和第二区域,该控制器管理非易失性存储器,该方法包括:从第一区域的存储块之中选择第一比较块,并且从第二区域的存储块之中选择第二比较块;将第一比较块的有效页面的数量和第二比较块的有效页面的数量进行比较,并且当第二比较块的有效页面的数量小于第一比较块的有效页面的数量时,选择该第二比较块作为牺牲块;将第二区域的牺牲块中存储的有效数据复制到第二区域的开放块中;对第二区域的牺牲块执行擦除操作,并选择已执行了擦除操作的牺牲块作为目标块;检查在第二区域中选择的目标块的数量,并且在第一区域中的多个源块之中选择与目标块的数量对应的一个或多个牺牲块;以及将在第一区域中选择的一个或多个牺牲块的类型信息交换为第二区域的目标块的类型信息。
在实施例中,一种操作存储器系统的方法,该存储器系统包括非易失性存储器和控制器,该非易失性存储器包括第一区域和第二区域,该控制器管理第一区域和第二区域中包括的多个存储块的迁移操作,该方法包括:当第一区域中没有空闲存储空间时,基于第一区域中的多个源块中的每个的有效页面的数量,在多个源块之中选择一个或多个牺牲块;通过基于一个或多个牺牲块而从第二区域中包括的存储块之中选择一个或多个目标块来执行迁移操作;并且将第一区域的一个或多个牺牲块的类型信息交换为第二区域的一个或多个目标块的类型信息。
根据基于各个实施例的存储器系统及其操作方法,当包括第一区域和第二区域的非易失性存储器中的第一区域中没有空闲存储空间时,可以减少第一区域和第二区域之间的数据移动操作,并且减少对第一区域和第二区域的擦除次数,从而执行高效的迁移操作。
附图说明
图1是用于示出根据实施例的包括存储器系统的数据处理系统的示图。
图2是用于示出根据实施例的存储器系统中的控制器的示图。
图3是用于示出根据实施例的迁移操作的示图。
图4是示出迁移操作的流程图。
图5至图7A和图7B是用于示出根据实施例的迁移模块的操作的示图。
图8至图10是用于示出根据实施例的迁移操作的示图。
具体实施方式
以下描述集中于本发明的各个实施例的特征和方面。为了避免不必要地模糊本发明的主题,可以省略公知信息。
下面参照附图更详细地描述各个实施例。在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
图1是示出根据实施例的包括存储器系统110的数据处理系统100的框图。
参照图1,数据处理系统100可包括主机102和存储器系统110。
主机102可由例如以下的各种电子装置中的任意一种来实现:诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式计算机、游戏机、电视(TV)和投影仪的非便携式电子装置,即有线和无线电子装置中的任意一种。
而且,主机102包括至少一个操作系统(OS)。操作系统通常管理和控制主机102的功能和操作,并且使用数据处理系统100或存储器系统110提供主机102与用户之间的互操作性。操作系统支持与用户的使用目的和操作系统的使用对应的功能和操作。例如,根据主机102的移动性,操作系统可以是通用操作系统或移动操作系统。根据用户的使用环境,通用操作系统可以是个人操作系统或企业操作系统。例如,被配置成支持对一般用户提供服务功能的个人操作系统可包括Windows和Chrome,并且被配置成确保和支持高性能的企业操作系统可包括Windows Server、Linux和Unix。被配置成支持向用户提供移动服务功能和系统节能功能的移动操作系统可包括Android、iOS、Windows mobile等。主机102可包括多个操作系统,并且运行操作系统以根据用户的请求来利用存储器系统110执行操作。主机102将对应于用户请求的多个命令传输到存储器系统110,因此存储器系统110执行与命令对应的操作,即与用户请求对应的操作。
存储器系统110响应于主机102的请求进行操作,并且特别地,存储待由主机102访问的数据。换言之,存储器系统110可用作主机102的主存储器装置或辅助存储器装置。根据与主机102联接的主机接口协议,存储器系统110可被实施为各种类型的存储装置中的任意一种。例如,存储器系统110可被实施为以下中的任意一种:固态驱动器(SSD)、多媒体卡(例如,MMC、嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)和微型MMC)、安全数字卡(例如,SD、迷你SD和微型SD)、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡和记忆棒。
实施存储器系统110的存储装置中的任意一种可包括诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)的易失性存储器装置,或者诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁性RAM(MRAM)和/或电阻式RAM(RRAM)的非易失性存储器装置。
存储器系统110包括存储待由主机102访问的数据的存储器装置150,以及控制数据在存储器装置150中的存储的控制器130。
控制器130和存储器装置150可集成到一个半导体装置中。例如,控制器130和存储器装置150可集成到一个半导体装置中,并且配置固态驱动器(SSD)。在存储器系统110用作SSD的情况下,联接到存储器系统110的主机102的操作速度可提高。控制器130和存储器装置150可集成到一个半导体装置中以形成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)卡、紧凑型闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC和微型MMC)、安全数字卡(例如,SD、迷你SD、微型SD和SDHC)和/或通用闪存(UFS)装置。
在另一实施例中,存储器系统110可被设置在计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、3维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下发送和接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或配置计算系统的各种组成元件之一中。
存储器装置150可包括多个非易失性存储器,并且可在控制器130的控制下执行对应于控制器130的请求的操作(例如,读取操作、写入操作等)。例如,为了便于说明,图1示出一个非易失性存储器1501。非易失性存储器1501可包括第一区域1501A和第二区域1501B。第一区域1501A可包括缓冲区域,并且第二区域1501B可包括主区域。如图1所示,第一区域1501A和第二区域1501B可被实施为一个存储器装置。然而,在另一实施例中,第一区域1501A和第二区域1501B可分别被实施为单独的存储器装置。
例如,第一区域1501A可被实施为执行高速操作的存储器,并且可将适于高速操作的映射方案应用于第一区域1501A。也就是说,第一区域1501A可以是高性能写入缓冲区域,其被分配为使用包括在非易失性存储器1501中的多个存储块中的一些作为用于执行高速操作的存储器。此外,第一区域1501A可被配置为每存储器单元存储1位数据的单层闪速存储器(SLC闪速存储器)。可基于非易失性存储器1501的总容量来确定第一区域1501A的大小,并且可与超量配置区域以及对应于非易失性存储器1501的逻辑块地址(LBA)的数量对应地确定第一区域1501A的大小。
另一方面,第二区域1501B可被实施为执行低速操作的存储器,并且可将适于低速操作的映射方案应用于第二区域1501B。第二区域1501B可被配置为每存储器单元存储N位数据(N是等于或大于2的整数)的多层闪速存储器(MLC闪速存储器)。例如,第二区域1501B可被配置为每存储器单元存储3位数据的多层闪速存储器。因为第二区域1501B需要每存储器单元存储3位数据,所以执行信号处理和错误校正操作可能需要更长的时间,使得第二区域1501B中的处理速度可能比第一区域1501A中的写入操作速度相对更慢。
在存储器系统110中,控制器130响应于来自主机102的请求来控制存储器装置150。例如,控制器130向主机102提供从存储器装置150读取的数据,并且将主机102提供的数据存储在存储器装置150中。为此,控制器130控制存储器装置150的操作,诸如读取操作、写入或编程操作、擦除操作等。
更具体地,控制器130包括主机接口单元(主机I/F)132、处理器134、迁移模块136、存储器接口单元(存储器I/F)142和存储器144。
主机接口单元132用于处置从主机102传输的命令、数据等。作为示例而非限制,主机接口单元132可包括命令队列(未示出)。命令队列可顺序地存储从主机102传输的命令、数据等中的至少一些,并且以它们的存储顺序将它们输出到高速缓存控制器(未示出)。
主机接口单元132处理来自主机102的命令和数据,并且可使用诸如以下的各种接口协议中的至少一种来与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)和移动工业处理器接口(MIPI)。主机接口单元132可通过被称为主机接口层(HIL)的固件来驱动,主机接口层(HIL)是用于与主机102交换数据的区域。
存储器接口单元142用作存储器接口和/或存储装置接口,以便执行控制器130与存储器装置150之间的接口连接,使得控制器130可响应于来自主机102的命令控制存储器装置150。存储器接口单元142生成用于控制存储器装置150的控制信号,并且在处理器134的控制下处理数据。当存储器装置150是闪速存储器时,特别是当存储器装置150是NAND闪速存储器时,存储器接口单元142是NAND闪存控制器(NFC)。存储器接口单元142可支持处理控制器130和存储器装置150之间的命令和数据的接口操作。例如,存储器接口单元142可支持NAND闪存接口以执行控制器130和存储器装置150之间的数据输入/输出。存储器接口单元142可通过被称为闪存接口层(FIL)的固件来驱动,该闪存接口层(FIL)是用于与存储器装置150交换数据的区域。
作为存储器系统110和控制器130的工作存储器,存储器144存储用于驱动存储器系统110和控制器130的数据。例如,当控制器130响应于来自主机102的命令而控制存储器装置150时,控制器130可将从存储器装置150读取的数据提供到主机102,并且/或者将由主机102提供的数据存储在存储器装置150中。为此,当控制器130控制存储器装置150的操作,诸如读取操作、写入操作、编程操作和擦除操作时,存储器144存储允许由存储器系统110执行这种操作所需的数据。也就是说,存储器144存储在控制器130与存储器装置150之间执行这种操作所需的数据。
存储器144可由易失性存储器来实现。例如,存储器144可由静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实现。此外,如图1所示,存储器144可设置在控制器130内。可选地,存储器144可在控制器130的外部,并且在这方面,存储器144可被实现为通过存储器接口与控制器130通信的单独的外部易失性存储器。
如上所述,存储器144存储在主机102和存储器装置150之间执行读取和写入操作所需的数据,并且当执行读取和写入操作时存储读取和写入数据。对于这种数据存储,存储器144可被用作程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等中的一种或多种。
处理器134控制存储器系统110的所有操作。特别地,处理器134分别响应于来自主机102的写入请求或读取请求来控制对存储器装置150的编程操作或读取操作。处理器134驱动被称为闪存转换层(FTL)的固件,以控制存储器系统110的一般操作。处理器134可包括一个或多个处理器,每个处理器可由微处理器或中央处理单元(CPU)来实现。
例如,通过使用由微处理器或中央处理单元(CPU)实现的处理器134,控制器130对存储器装置150执行由主机102请求的操作,也就是说,对存储器装置150执行与从主机102接收的命令对应的命令操作。控制器130可执行与从主机102接收的命令对应的命令操作作为前台操作。例如,前台操作包括与写入命令对应的编程操作、与读取命令对应的读取操作、与擦除命令对应的擦除操作或者与诸如设置参数命令或设置特征命令的设置命令对应的参数设置操作。
同时,当从主机102接收到包括高速操作模式的写入请求时,控制器130将数据存储在非易失性存储器1501的第一区域1501A中,以便高速处理写入请求。如上所述,当控制器130处理从主机102接收的并包括高速操作模式的写入请求时,第一区域1501A可能没有足够的能够存储数据的空闲存储空间。如上所述,当第一区域1501A中的空闲存储空间不足时,需要通过使用迁移模块136来执行迁移操作,以便在第一区域1501A中生成空闲存储空间。
为了管理第一区域1501A的存储空间,迁移模块136可使用各种方法来确定是否开始迁移操作。也就是说,在第一种方法中,当第一区域1501A中的空闲存储空间等于或小于预设空间量时,或者当第一区域1501A中没有空闲存储空间时,迁移模块136可执行迁移操作。在第二种方法中,迁移模块136可在预定时间周期性地开始迁移操作。在第三种方法中,每当检测到存储器装置150的空闲时间时,迁移模块136就可执行迁移操作。
迁移模块136可如上所述的检查是否执行迁移操作,并且使用各种方法来执行迁移操作。迁移操作可包括将数据从第一区域1501A移动到第二区域1501B的操作,或者将包括在第一区域1501A中的至少一个存储块的类型信息交换为包括在第二区域1501B中的至少一个空闲块的类型信息的操作。将参照图5至图7A和图7B详细描述由迁移模块136执行的迁移操作。
图2示出根据实施例的存储器系统中的控制器。图2的控制器可对应于图1的控制器130。
参照图2,与主机102和存储器装置150协作的控制器130可包括主机I/F 132、闪存转换层单元(FTL)40、存储器I/F 142和存储器144。
主机I/F 132接收从主机102传送的命令、数据等。例如,主机I/F132可包括:命令队列56,可顺序地存储包括从主机102传送的命令、数据等的主机任务,然后根据存储的顺序输出主机任务;缓冲器管理器52,可对从命令队列56传送的主机任务进行分类或者调整主机任务的处理顺序;以及事件队列54,用于顺序地传送用于处理从缓冲器管理器52传送的主机任务等的事件。在以下描述中,主机任务被用作表示控制器130响应于从主机102传输的命令将数据写入存储器装置150或读取被写入存储器装置150的数据的操作的术语。
可从主机102连续传送具有基本相同特性的多个命令和数据,或者可从主机102传送具有不同特性的多个命令和数据。例如,可传送用于读取数据的多个读取命令,或者可从主机102交替传送读取命令和编程命令。主机I/F 132将从主机102传送的命令、数据等顺序地存储在命令队列56中。然后,可根据从主机102传送的命令、数据等的特性来预测待由控制器130执行的操作,并且可基于预测结果来确定命令、数据等的处理顺序或优先级。此外,主机I/F 132中的缓冲器管理器52可根据从主机102传送的命令、数据等的特性,确定是将命令、数据等存储在存储器144中还是将命令、数据等传送到FTL 40。事件队列54可根据从主机102传送的命令、数据等从缓冲器管理器52接收需要由存储器系统或控制器130内部执行和处理的事件,然后以接收的顺序将事件传送到FTL 40。
根据实施例,FTL 40可包括用于管理从事件队列54接收到的事件的主机请求管理器(HRM)46、用于管理映射数据的映射数据管理器(映射管理器(MM))44、用于执行垃圾收集或损耗均衡的状态管理器(GC/WL)42以及用于对存储器装置150中的块执行命令的块管理器(BM/BBM)48。
例如,HRM 46可通过使用MM 44和BM/BBM 48来处理从主机I/F132接收的读取和编程命令以及基于事件的请求。HRM 46可向MM 44发送查询请求以便理解与接收到的请求的逻辑地址对应的物理地址,向存储器I/F 142传输关于该物理地址的闪存读取请求,并且处理该读取请求。另一方面,HRM 46可通过向BM/BBM 48传输编程请求来将数据编程到存储器装置150的未写入(无数据)特定页面,然后通过向MM 44传输针对编程请求的映射更新请求,来更新编程在逻辑-物理地址的映射信息中的数据内容。
BM/BBM 48可将由HRM 46、MM 44和GC/WL 42请求的编程请求转换成对存储器装置150的编程请求,并管理存储器装置150中的块。为了最大化存储器系统110的编程或写入性能,BM/BBM 48可收集编程请求并且将用于多平面和单触发编程操作的闪存编程请求发送到存储器I/F 142。此外,为了使多通道和多方向闪存控制器的并行处理最大化,BM/BBM 48还可向存储器I/F 142传输各种优异的闪存编程请求。
另一方面,BM/BBM 48可根据有效页面的数量来管理闪存块。当需要空闲块时,BM/BBM 48可选择并擦除没有有效页面的块。当需要垃圾收集时,BM/BBM 48可选择包括最小数量的有效页面的块。为了使BM/BBM 48具有足够的空块,GC/WL 42可执行垃圾收集以收集有效数据,将所收集的有效数据移动到空块,并删除具有已移动了有效数据的块。当BM/BBM48向GC/WL 42提供关于待删除的块的信息时,GC/WL 42可首先检查待删除的块的所有闪存页面,并检查每个页面是否有效。例如,为了确定每个页面的有效性,GC/WL 42可识别每个页面的带外(OOB)区域中记录的逻辑地址,然后将该页面的实际地址与映射到从MM 44的查询请求获得的逻辑地址的实际地址进行比较。GC/WL 42可将每个有效页面的编程请求传输到BM/BBM48。当编程操作完成时,可通过更新MM 44来更新映射表。
MM 44可管理逻辑-物理映射表并处理诸如由HRM 46和GC/WL42生成的查询和更新的请求。MM 44可将整个映射表存储在闪速存储器中,并根据存储器144的容量高速缓存映射项目。当在MM 44处理查询和更新请求时发生映射高速缓存未命中时,MM 44可向存储器I/F142传输读取请求,并加载存储在存储器装置150中的映射表。当MM44的脏高速缓存块的数量超过特定阈值时,MM 44可通过将编程请求传输到BM/BBM 48来生成干净高速缓存块,并且将脏映射表存储在存储器装置150中。
另一方面,当执行垃圾收集时,HRM 46可针对页面中的基本相同的逻辑地址编程最新版本的数据,并且在GC/WL 42复制有效页面的同时发出更新请求。当在有效页面的复制未正常完成的状态下,GC/WL 42请求映射更新时,MM 44可不更新映射表。仅当最新的映射表仍然指示先前的实际地址时,MM 44才可执行映射更新,从而确保准确性。
根据实施例,GC/WL 42、MM 44和BM/BBM 48中的至少一个可包括图1的迁移模块136。例如,即使没有从主机I/F 132传送的命令,GC/WL 42、MM 44和BM/BBM 48中的至少一个也可执行后台操作。将参照图5至图7A和图7B详细描述迁移模块136。
存储器I/F 142用作执行控制器130与存储器装置150之间的接口连接的存储器/存储装置接口,以便控制器130响应于来自主机102的请求控制存储器装置150。
此外,存储器I/F 142可包括作为能够存储用于执行具有不同属性的任务的命令的多个装置命令队列的第一装置命令队列PQ和第二装置命令队列SQ。第一装置命令队列PQ和第二装置命令队列SQ中的每一个可存储一个或多个装置任务(DT)。装置任务是用于表示控制器130在独立于主机102的特定状态下执行存储器装置150的后台操作的任务的术语,并且可包括诸如垃圾收集、损耗均衡、映射表更新、由于SPO的重建操作以及读取回收的后台操作。
存储器装置150可包括至少一个非易失性存储器。非易失性存储器可包括多个存储块。根据可在一个存储器单元中存储或表示的位的数量,多个存储块可包括单层单元(SLC)存储块、多层单元(MLC)存储块等。SLC存储块包括由在一个存储器单元中存储1位数据的存储器单元实施的多个页面,并且具有较快的数据操作性能和较高的耐久性。MLC存储块包括由在一个存储器单元中存储多位(例如,2位或更多位)数据的存储器单元实施的多个页面,并且可具有比SLC存储块更大的数据存储空间,即可高度集成。特别地,除了包括由能够在一个存储器单元中存储2位数据的存储器单元实施的多个页面的MLC存储块之外,存储器装置150还可包括三层单元(TLC)存储块、四层单元(QLC)存储块、多层单元存储块等作为MLC存储块,其中三层单元存储块(TLC)包括由能够在一个存储器单元中存储3位数据的存储器单元实施的多个页面,四层单元存储块(QLC)包括由能够在一个存储器单元中存储4位数据的存储器单元实施的多个页面,多层单元存储块包括由能够在一个存储器单元中存储5位或更多位数据的存储器单元实施的多个页面。
在下文中,在实施例中,为了便于描述,将描述存储器装置150由诸如闪速存储器,例如NAND闪速存储器的非易失性存储器来实施的示例。然而,在另一实施例中,存储器装置150可被实施为诸如以下的存储器中的任意一种:相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM(ReRAM))、铁电随机存取存储器(FRAM)、自旋转移力矩磁性随机存取存储器(STT-RAM(STT-MRAM))。
图3是示出根据实施例的图1所示的存储器系统110的迁移操作的示图。
参照图1和图3,存储器系统110可包括迁移模块136和包括多个存储块的非易失性存储器1501。非易失性存储器1501可将多个存储块划分成第一区域1501A和第二区域1501B。例如,当非易失性存储器1501包括多个存储块BLK1至BLK10时,第一区域1501A可包括第一存储块BLK1、第二存储块BLK2、第三存储块BLK3和第四存储块BLK4。第二区域1501B可包括第五存储块BLK5、第六存储块BLK6、第七存储块BLK7、第八存储块BLK8、第九存储块BLK9和第十存储块BLK10。本公开的范围不限于此。
多个存储块BLK1至BLK10中的每一个可被分类为空闲块FB、开放块OB或活动块以及源块SB中的任意一种。空闲块FB指示未存储数据的块。例如,在图3中,第一区域1501A的第四存储块BLK4以及第二区域1501B的第八至第十存储块BLK8至BLK10可以是空闲块。开放块OB是存储数据并且包括能够在其中编程数据的至少一个空页面的块。例如,第二区域1501B的第五存储块BLK5可以是开放块。源块SB是存储数据并且处于能够在其中编程数据的页面已耗尽的关闭状态的块。也就是说,源块不包括能够在其中编程数据的空页面。例如,在图3中,第一区域1501A的第一存储块BLK1、第二存储块BLK2和第三存储块BLK3以及第二区域1501B的第六存储块BLK6和第七存储块BLK7可以是源块。
迁移模块136检查第一区域1501A中的存储块BLK1至BLK4之中的源块。接下来,迁移模块136在检查到的源块之中,选择有效页面的数量等于或小于任意设置阈值的源块作为牺牲块。选择有效页面的数量较少的源块作为牺牲块的原因是:当对有效页面的数量较大的源块执行迁移操作时,执行数据迁移所需的时间和成本增加,即对存储器系统110中的资源的使用增加,并且可能进一步减少存储器装置150的寿命。接下来,迁移模块136选择第二区域1501B中的、包括能够编程第一区域1501A的牺牲块中包括的有效数据的页面的开放块作为目标块,并且将牺牲块中包括的有效数据复制到目标块中以进行存储。同时,迁移模块136可将第二区域1501B中的未存储数据的空闲块设置为目标块,并且将第一区域1501A的牺牲块中包括的有效数据复制到目标块中以进行存储。然后,当将有效数据复制并存储在目标块中时,迁移模块136可擦除第一区域1501A的牺牲块中存储的所有数据。
例如,迁移模块136检查第一区域1501A的第一至第四存储块BLK1至BLK4之中的源块。迁移模块136可检查出源块是第一区域1501A的第一至第四存储块BLK1至BLK4之中的第一至第三存储块BLK1至BLK3(在下文中,称为第一至第三源块)。接下来,在迁移模块136选择有效页面的数量等于或小于阈值65的源块作为牺牲块的情况下,当假设第一源块BLK1的有效页面的数量为80、第二源块BLK2的有效页面的数量为70并且第三源块BLK3的有效页面的数量为30时,迁移模块136可选择有效页面的数量等于或小于65的第三源块BLK3作为牺牲块。此外,迁移模块136可将所选择的牺牲块BLK3中存储的有效数据复制到作为第二区域1501B中的开放块的第五存储块BLK5中以进行存储。然后,迁移模块136可以擦除作为第一区域1501A中的牺牲块的第三源块BLK3中存储的所有数据,并且将该第三源块BLK3设置为空闲块。
在前述迁移操作中,为了将有效数据从第一区域1501A中的源块移动到第二区域1501B中的开放块,控制器130可从存储器装置150的源块中读取有效数据,将所读取的有效数据加载到存储器144中,然后将存储在存储器144中的所读取的有效数据编程到开放块中。
图4是示出参照图3描述的迁移操作的流程图。
参照图4,在步骤S401中,迁移模块136检查第一区域1501A中的多个存储块BLK1至BLK4之中的源块。在步骤S403中,迁移模块136在第一区域1501A中的检查到的源块之中,选择有效页面的数量小于任意设置阈值的源块作为牺牲块。选择有效页面的数量较少的源块作为牺牲块的原因是:当对有效页面的数量较大的源块执行迁移操作时,执行数据迁移所需的时间和成本增加,即对存储器系统中的资源的使用增加,并且可能进一步缩短存储器装置150的寿命。
在步骤S405中,迁移模块136选择第二区域1501B中的、具有能够在其中编程有效数据的页面的开放块作为目标块,并且将第一区域1501A的牺牲块中存储的有效数据复制到目标块中。可选地,可从第二区域1501B中包括的空闲块中选择目标块。
在步骤S407中,当将第一区域1501A的牺牲块中存储的有效数据复制到第二区域1501B的目标块中时,迁移模块136可擦除第一区域1501A的牺牲块中存储的所有数据,然后将该牺牲块设置为空闲块。
以这种方式,控制器130可管理第一区域1501A的存储空间。当将第一区域1501A中包括的源块的类型信息交换为第二区域1501B中的目标块的类型信息时,控制器130可更高效地管理第一区域1501A的存储空间,而无需将第一区域1501A中包括的源块的有效数据移动到第二区域1501B的目标块。这将参照图5至图7A和图7B进行描述。
图5至图7A和图7B是用于说明根据实施例的迁移模块135的操作的示图。图5至图7A和图7B示出用于更高效地管理非易失性存储器1501中的第一区域1501A的存储空间的迁移操作。
参照图5,迁移模块136可包括空闲块管理单元136A、比较单元136B、第一迁移执行单元136C、第二迁移执行单元136D和第三迁移执行单元136E。
空闲块管理单元136A检查非易失性存储器1501中包括的第二区域1501B的多个存储块之中的空闲块的数量,并且检查空闲块的数量是否等于或大于第一阈值TH1。当第二区域1501B中的空闲块的数量等于或大于第一阈值TH1时,空闲块管理单元136A使用第一迁移执行单元136C来管理第一区域1501A的存储空间。另一方面,当空闲块管理单元136A的检查结果指示第二区域1501B中的空闲块的数量小于第一阈值TH1时,比较单元136B选择第一区域1501A中包括的源块之中的、有效页面的数量最小的源块作为第一比较块,并且选择第二区域1501B中包括的源块之中的、有效页面的数量最小的源块作为第二比较块。然后,比较单元136B将第一比较块的有效页面的数量与第二比较块的有效页面的数量进行比较。当比较结果指示第二比较块的有效页面的数量小于第一比较块的有效页面的数量时,比较单元136B将比较结果传输到第二迁移执行单元136D以管理第一区域1501A的存储空间。另一方面,当比较结果指示第二比较块的有效页面的数量等于或大于第一比较块的有效页面的数量时,比较单元136B将比较结果传输到第三迁移执行单元136E以管理第一区域1501A的存储空间。
具体地,空闲块管理单元136A检查第二区域1501B中的空闲块的数量是否等于或大于第一阈值TH1。检查第二区域1501B的空闲块的数量的原因是:当第二区域1501B的空闲块的数量等于或大于第一阈值TH1时,可以将在第一区域1501A中选择的牺牲块的类型信息交换为在第二区域1501B中选择的空闲块的类型信息,而无需执行将第二区域1501B中包括的源块改变为空闲块的过程。也就是说,通过省略将第二区域1501B中包括的源块改变为空闲块的过程,可以缩短在第一区域1501A中生成空闲块的时间。
当第二区域1501B中的空闲块的数量等于或大于第一阈值TH1时,空闲块管理单元136A将第二区域1501B中的空闲块的数量等于或大于第一阈值TH1的结果传输到第一迁移执行单元136C,以管理第一区域1501A的存储空间。在下文中,将参照图6详细描述第一迁移执行单元136C。第一迁移执行单元136C检查第一区域1501A中的多个存储块BLK1至BLK4之中的源块。例如,第一区域1501A中的多个存储块BLK1至BLK4之中的源块可以是第一存储块BLK1、第二存储块BLK2和第三存储块BLK3。为了便于描述,第一存储块至第三存储块BLK1至BLK3将被称为第一至第三源块。
接下来,第一迁移执行单元136C从第一区域1501A中的第一至第三源块BLK1至BLK3中选择牺牲块。在从第一区域1501A中的第一至第三源块BLK1至BLK3中选择牺牲块的方法中,可选择第一区域1501A中的第一至第三源块BLK1至BLK3之中的、有效页面的数量大于第二阈值TH2的源块作为牺牲块,或者可选择第一区域1501A中的第一至第三源块BLK1至BLK3之中的、有效页面的数量最大的源块作为牺牲块。
在下文中,将描述选择第一区域1501A中的第一至第三源块BLK1至BLK3之中的、有效页面的数量大于第二阈值TH2(例如,70)的源块作为牺牲块的情况作为示例。例如,当第一区域1501A的第一源块BLK1的有效页面的数量为80、第二源块BLK2的有效页面的数量为65并且第三源块BLK3的有效页面的数量为60时,第一迁移执行单元136C可选择有效页面的数量大于作为第二阈值TH2的70的第一源块BLK1作为牺牲块。
接下来,第一迁移执行单元136C在第二区域1501B中的多个空闲块之中,选择与在第一区域1501A中选择的牺牲块的数量对应的目标块。例如,参照图6,因为在第一区域1501A中选择的牺牲块的数量是1,所以第一迁移执行单元136C选择第二区域1501B中的多个空闲块中的一个空闲块作为目标块。在这种情况下,可基于第二区域1501B中的多个空闲块的擦除/写入(E/W)数量来选择目标块。
接下来,第一迁移执行单元136C将第一区域1501A的牺牲块的类型信息交换为第二区域1501B的目标块的类型信息。第一区域1501A的牺牲块的类型信息可包括第一区域1501A中的牺牲块的存储位置信息,并且第二区域1501B的目标块的类型信息可包括第二区域1501B中的目标块的存储位置信息。存储位置信息可包括物理地址。如上所述,在第一区域1501A中的源块之中,选择有效页面的数量大于第二阈值TH2的源块作为牺牲块,并且将在第一区域1501A中选择的牺牲块的类型信息交换为在第二区域1501B中选择的目标块的类型信息,使得由于执行数据迁移,可以减少数据迁移时间和成本,即减少对存储器系统中的资源的使用。此外,不对第一区域1501A中的牺牲块执行擦除操作,使得可以进一步增加存储器装置150的寿命。并且第一迁移执行单元136C基于所交换的类型信息,例如所交换的物理地址来更新映射表。
重新参照图5,当第二区域1501B中的多个存储块之中的空闲块的数量小于第一阈值TH1时,空闲块管理单元136A将第二区域1501B中的空闲块的数量小于第一阈值TH1的结果传输到比较单元136B,以将第一区域1501A中的第一比较块的有效页面的数量与第二区域1501B中的第二比较块的有效页面的数量进行比较。
首先,当比较单元136B的比较结果指示第一区域1501A中的第一比较块的有效页面的数量等于或大于第二区域1501B中的第二比较块的有效页面的数量时,比较单元136B将比较结果传输到第二迁移执行单元136D以管理第一区域1501A的存储空间。在这方面,将参照图7A和图7B描述第二迁移执行单元136D。
另一方面,当第一区域1501A中的第一比较块的有效页面的数量小于第二区域1501B中的第二比较块的有效页面的数量时,比较单元136B将比较结果传输到第三迁移执行单元136E以管理第一区域1501A的存储空间。因为第三迁移执行单元136E的操作与参照图3和图4描述的操作基本相同,因此此处将省略对其的描述。
参照图7A,作为检查第二区域1501B中的多个存储块之中的空闲块的数量是否小于第一阈值TH1(例如,3)的结果,空闲块管理单元136A可识别出第二区域1501B中的空闲块的数量为2,其中2小于第一阈值TH1。
接下来,比较单元136B检查第一区域1501A和第二区域1501B中的多个存储块BLK1至BLK10之中的源块。例如,第一区域1501A中的多个存储块BLK1至BLK4之中的源块可包括第一存储块BLK1、第二存储块BLK2和第三存储块BLK3。第二区域1501B中的多个存储块BLK5至BLK10之中的源块可包括第六存储块BLK6、第七存储块BLK7和第八存储块BLK8。为了便于描述,第一区域1501A中的第一至第三存储块BLK1至BLK3被表示为第一至第三源块,并且第二区域1501B中的第六至第八存储块BLK6至BLK8被表示为第六至第八源块。
接下来,比较单元136B从第一区域1501A和第二区域1501B中的多个源块中选择第一比较块和第二比较块。在从第一区域1501A和第二区域1501B中的源块中选择第一比较块和第二比较块的方法中,可将第一区域1501A和第二区域1501B的每一个中的源块之中的、有效页面的数量最小的源块选择为比较块,或者可将第一区域1501A和第二区域1501B的每一个中的源块之中的、有效页面的数量小于任意设置阈值的源块选择为比较块。
例如,将描述比较单元136B将第一区域1501A和第二区域1501B的每一个中的源块之中的、有效页面的数量最小的源块选择为比较块的情况。例如,在第一区域1501A中,当第一源块BLK1的有效页面的数量为80、第二源块BLK2的有效页面的数量为65并且第三源块BLK3的有效页面的数量为60时,比较单元136B可选择第一区域1501A中的第三源块BLK3作为第一比较块。在第二区域1501B中,当第六源块BLK6的有效页面的数量为60、第七源块BLK7的有效页面的数量为50并且第八源块BLK8的有效页面的数量为40时,比较单元136B可选择第八源块BLK8作为第二比较块。然后,比较单元136B将第一比较块的有效页面的数量与第二比较块的有效页面的数量进行比较。因为第一区域1501A中的第一比较块的有效页面的数量为60,第二区域1501B中的第二比较块的有效页面的数量为40,所以可看出第二区域1501B的第二比较块的有效页面的数量最小。因此,比较单元136B将第二比较块的有效页面的数量小于第一比较块的有效页面的数量的比较结果传输到第二迁移执行单元136D,以管理第一区域1501A的存储空间。
第二迁移执行单元136D选择作为第二区域1501B中的第二比较块的源块作为牺牲块,并且将所选择的牺牲块的有效数据复制到第二区域1501B中的开放块中以进行存储。例如,第二迁移执行单元136D可选择作为第二区域1501B中的第二比较块的第八源块BLK8作为牺牲块。然后,第二迁移执行单元136D可将第二区域1501B的牺牲块中存储的有效数据复制到作为第二区域1501B中的开放块的第五存储块BLK5中以进行存储。然后,第二迁移执行单元136D可对作为第二区域1501B的牺牲块的第八存储块BLK8执行擦除操作,并且将该第八存储块BLK8设置为空闲块。然后,第二迁移执行单元136D可选择已被设置为空闲块的第八存储块BLK8作为目标块。
接下来,第二迁移执行单元136D在第一区域1501A中的源块之中,按照有效页面的数量的降序来选择与第二区域1501B中的目标块的数量对应的源块作为牺牲块。例如,因为在第二区域1501B中被选择作为目标块的存储块为一个,即仅第八存储块BLK8被选择作为目标块,所以第二迁移执行单元136D可从第一区域1501A中的源块之中选择一个牺牲块。也就是说,第二迁移执行单元136D可从第一区域1501A中的源块之中选择第一存储块BLK1作为牺牲块,该第一存储块BLK1是有效页面的数量最大的源块。
接下来,参照图7B,第二迁移执行单元136D将在第一区域1501A中选择的牺牲块的类型信息交换为在第二区域1501B中选择的目标块的类型信息。例如,通过将作为在第一区域1501A中选择的牺牲块的第一存储块BLK1的类型信息交换为作为在第二区域1501B中选择的目标块的第八存储块BLK8的类型信息,第二迁移执行单元136D可将第一区域1501A的牺牲块的存储位置信息交换为第二区域1501B的目标块的存储位置信息。如上所述,将第一区域1501A中的有效页面的数量最大的源块选择为牺牲块,并且将在第一区域1501A中选择的牺牲块的类型信息交换为在第二区域1501B中选择的目标块的类型信息,使得可确保第一区域1501A的空闲存储空间。因此,可以减少执行数据迁移操作所需的时间和成本,即减少对存储器系统中的资源的使用。此外,不对在第一区域1501A中选择的牺牲块执行擦除操作,使得可以进一步增加存储器装置150的寿命。并且第二迁移执行单元136D基于所交换的类型信息,例如所交换的物理地址来更新映射表。
图8至图10是示出根据实施例的迁移操作的示图。图8和图9涉及用于更高效地管理第一区域1501A的存储空间的迁移操作,并且图10涉及一般的迁移操作。
参照图8,在步骤S801中,迁移模块136检查非易失性存储器1501中包括的第二区域1501B中的多个存储块之中的空闲块的数量FBC_M。在步骤S803中,迁移模块136检查第二区域1501B中包括的空闲块的数量FBC_M是否等于或大于第一阈值TH1。
作为检查的结果,当第二区域1501B中的多个存储块之中的空闲块的数量FBC_M等于或大于第一阈值TH1(是)时,在步骤S805中,迁移模块136使用第一迁移执行单元136C执行第一迁移操作。将参照图9描述由第一迁移执行单元136C执行的第一迁移操作。
另一方面,当第二区域1501B中的多个存储块之中的空闲块的数量FBC_M小于第一阈值TH1(否)时,在步骤S807中,迁移模块136选择第一区域1501A中包括的源块之中的、有效页面的数量最小的源块作为第一比较块,并且选择第二区域1501B中包括的源块之中的、有效页面的数量最小的源块作为第二比较块。
在步骤S809中,迁移模块136比较第一比较块的有效页面的数量是否大于第二比较块的有效页面的数量。作为比较的结果,当第一比较块的有效页面的数量大于第二比较块的有效页面的数量(是)时,在步骤S811中,迁移模块136使用第二迁移执行单元136D管理第一区域1501A的存储空间。将参照图10描述由第二迁移执行单元136D执行的第二迁移操作。
另一方面,当第一比较块的有效页面的数量小于或等于第二比较块的有效页面的数量(否)时,在步骤S813中,迁移模块136使用第三迁移执行单元136E管理第一区域1501A的存储空间。因为由第三迁移执行单元136E执行的第三迁移操作与图4中的基本相同,所以此处将省略对其的描述。
图9是示出根据实施例的第一迁移操作的示图。图9是示出第二区域1501B中的多个存储块之中的空闲块的数量等于或大于第一阈值TH1的情况的示图。
参照图8,在步骤S803中,迁移模块136检查第二区域1501B中的多个存储块之中的空闲块的数量是否等于或大于第一阈值TH1。检查第二区域1501B中的空闲块的数量的原因是:当第二区域1501B中的空闲块的数量等于或大于第一阈值TH1时,可以将在第一区域1501A中选择的牺牲块的类型信息交换为在第二区域1501B中选择的空闲块的类型信息,而无需执行将第二区域1501B中包括的源块改变为空闲块的过程。也就是说,通过省略将第二区域1501B中包括的源块改变为空闲块的过程,可以缩短生成第一区域1501A中的空闲块的时间。
在S803中确定第二区域1501B中的多个存储块之中的空闲块的数量等于或大于第一阈值TH1之后,参照图9,在步骤S901中,迁移模块136检查第一区域1501A中的多个存储块之中的源块,然后从第一区域1501A中检查到的源块之中选择牺牲块。在从第一区域1501A中的源块之中选择牺牲块的方法中,可选择在第一区域1501A中检查到的源块之中的、有效页面的数量大于任意设置的第二阈值TH2的源块作为牺牲块,或者可选择在第一区域1501A中检查到的源块之中的、有效页面的数量最大的源块作为牺牲块。
在步骤S903中,迁移模块136在第二区域1501B中的多个空闲块之中,选择与在第一区域1501A中选择的牺牲块的数量对应的目标块。在这种情况下,可基于第二区域1501B中的多个空闲块的E/W的数量来选择目标块。
在步骤S905中,迁移模块136将第一区域1501A的牺牲块的类型信息交换为第二区域1501B的目标块的类型信息。第一区域1501A的牺牲块的类型信息可包括第一区域1501A中的牺牲块的存储位置信息,并且第二区域1501B的目标块的类型信息可包括第二区域1501B中的目标块的存储位置信息。如上所述,将第一区域1501A中的具有许多有效页面的源块选择为牺牲块,并且将在第一区域1501A中选择的牺牲块的类型信息交换为在第二区域1501B中选择的目标块的类型信息,使得可以减少由于执行数据迁移而所需的数据迁移时间和成本(对存储器系统中的资源的使用)。此外,不对在第一区域1501A中选择的牺牲块执行擦除操作,使得可以进一步增加存储器装置150的寿命。并且迁移模块136基于所交换的类型信息,例如所交换的物理地址来更新映射表。
图10是示出根据实施例的第二迁移操作的示图。图10是示出第二区域1501B中的多个存储块之中的空闲块的数量小于第一阈值TH1,并且第一区域1501A中的第一比较块的有效页面的数量等于或大于第二区域1501B的第二比较块的有效页面的数量的情况的示图。
参照图10,在步骤S1001中,迁移模块136选择作为第二区域1501B中的第二比较块的源块作为牺牲块。在步骤S1003中,迁移模块136将所选择的牺牲块的有效数据复制到第二区域1501B中的开放块以进行存储。
在步骤S1005中,迁移模块136可对第二区域1501B中的牺牲块执行擦除操作,并且将该牺牲块设置为空闲块。然后,迁移模块136可选择已被设置为空闲块的存储块作为目标块。
在步骤S1007中,迁移模块136在第一区域1501A中的源块之中,选择与第二区域1501B的目标块的数量对应的一个或多个牺牲块。可以按照源块之中有效页面的数量的降序来选择在第一区域1501A中选择的牺牲块。也就是说,选择有效页面的数量较大的源块作为牺牲块。
在步骤S1009中,迁移模块136将在第一区域1501A中选择的牺牲块的类型信息交换为在第二区域1501B中选择的目标块的类型信息。如上所述,将第一区域1501A中的有效页面的数量较大的源块选择为牺牲块,并且将在第一区域1501A中选择的牺牲块的类型信息交换为在第二区域1501B中选择的目标块的类型信息,使得可确保第一区域1501A的空闲存储空间。因此,可以减少执行数据迁移操作所需的时间和成本,即减少对存储器系统中的资源的使用。此外,不对在第一区域1501A中选择的牺牲块执行擦除操作,使得可以进一步增加存储器装置的寿命。
虽然为了说明的目的已经描述各个实施例,但是对于本领域技术人员显而易见的是,在不脱离所附权利要求中限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (18)
1.一种存储器系统,包括:
非易失性存储器,包括第一区域和第二区域;以及
控制器,管理所述第一区域和所述第二区域中包括的多个存储块的迁移操作,
其中所述控制器包括:
迁移模块,通过以下操作来执行所述迁移操作:当所述第一区域中没有空闲存储空间时,基于所述第一区域中包括的每个存储块的有效页面的数量来选择一个或多个牺牲块;在所述第二区域中选择分别与牺牲块的数量对应的一个或多个目标块;并且将所述第一区域中的所述一个或多个牺牲块中的每个牺牲块的类型信息交换为所述第二区域中的所述一个或多个目标块中的相应目标块的类型信息。
2.根据权利要求1所述的存储器系统,其中所述迁移模块包括:
空闲块管理单元,检查所述第二区域中的存储块之中的空闲块的数量;
第一迁移执行单元,当所述第二区域中包括的空闲块的数量等于或大于第一阈值时,执行第一迁移操作;
比较单元,当所述第二区域中包括的空闲块的数量小于所述第一阈值时,从所述第一区域中的存储块之中选择第一比较块,从所述第二区域中的存储块之中选择第二比较块,并且将所述第一比较块的有效页面的数量与所述第二比较块的有效页面的数量进行比较;
第二迁移执行单元,当所述第一比较块的有效页面的数量大于所述第二比较块的有效页面的数量时,执行第二迁移操作;以及
第三迁移执行单元,当所述第一比较块的有效页面的数量小于或等于所述第二比较块的有效页面的数量时,执行第三迁移操作。
3.根据权利要求2所述的存储器系统,其中所述第一迁移执行单元从所述第一区域中包括的多个源块之中选择所述一个或多个牺牲块,从所述第二区域中的空闲块之中选择与所选择的一个或多个牺牲块的数量对应的所述一个或多个目标块,并且将所述第一区域的所述一个或多个牺牲块的类型信息交换为所述第二区域的所述一个或多个目标块的类型信息,在所述第一区域中包括的多个源块之中所述一个或多个牺牲块的有效页面的数量最大。
4.根据权利要求2所述的存储器系统,其中当所述第二区域中的存储块之中的空闲块的数量小于所述第一阈值时,所述比较单元从所述第一区域中包括的多个源块之中选择有效页面的数量最小的源块作为所述第一比较块,并且从所述第二区域中包括的多个源块之中选择有效页面的数量最小的源块作为所述第二比较块。
5.根据权利要求2所述的存储器系统,其中所述第二迁移执行单元选择所述第二区域的所述第二比较块作为牺牲块,将所述第二区域的牺牲块中存储的数据复制到所述第二区域的开放块中,对牺牲块执行擦除操作,选择执行了所述擦除操作的牺牲块作为目标块,从所述第一区域中选择与所述第二区域的所述目标块的数量对应的一个或多个牺牲块,并且将所述第一区域的所选择的一个或多个牺牲块的类型信息交换为所述第二区域的所述目标块的类型信息。
6.根据权利要求5所述的存储器系统,其中在所述第一区域中选择的所述一个或多个牺牲块是在所述第一区域中的多个源块之中的、有效页面的数量最大的一个或多个源块。
7.根据权利要求1所述的存储器系统,其中所述第一区域中的牺牲块的类型信息和所述第二区域中的所述目标块的类型信息中的每个包括存储位置信息,并且所述存储位置信息包括物理地址。
8.根据权利要求2所述的存储器系统,其中所述第三迁移执行单元从所述第一区域中的多个源块之中选择有效页面的数量小于任意设置阈值的源块作为牺牲块,选择所述第二区域中的开放块作为目标块,并且将所述第一区域的牺牲块中存储的有效数据复制到所述第二区域的所述目标块中。
9.根据权利要求8所述的存储器系统,其中在将所述第一区域的牺牲块中存储的有效数据复制到所述第二区域的所述目标块中之后,所述第三迁移执行单元擦除所述第一区域的牺牲块中存储的所有数据,并且将牺牲块设置为空闲块。
10.一种操作存储器系统的方法,所述存储器系统包括非易失性存储器和控制器,所述非易失性存储器包括第一区域和第二区域,所述控制器管理所述非易失性存储器,所述方法包括:
从所述第一区域中的存储块之中选择第一比较块,并且从所述第二区域中的存储块之中选择第二比较块;
将所述第一比较块的有效页面的数量和所述第二比较块的有效页面的数量进行比较,并且当所述第二比较块的有效页面的数量小于所述第一比较块的有效页面的数量时,选择所述第二比较块作为牺牲块;
将所述第二区域的牺牲块中存储的有效数据复制到所述第二区域的开放块中;
对所述第二区域的牺牲块执行擦除操作,并且选择已执行了所述擦除操作的牺牲块作为目标块;
检查在所述第二区域中选择的所述目标块的数量,并且在所述第一区域中的多个源块之中选择与所述目标块的数量对应的一个或多个牺牲块;以及
将在所述第一区域中选择的所述一个或多个牺牲块的类型信息交换为所述第二区域的所述目标块的类型信息。
11.根据权利要求10所述的方法,进一步包括,在选择所述第一比较块和选择所述第二比较块之前:
检查所述第二区域的存储块之中的空闲块的数量,并且检查所述第二区域的空闲块的数量是否等于或大于阈值。
12.根据权利要求11所述的方法,进一步包括,当所述第二区域中包括的空闲块的数量等于或大于所述阈值时:
在所述第一区域中包括的多个源块之中选择有效页面的数量最大的所述一个或多个牺牲块;并且
在所述第二区域的空闲块之中选择与所述一个或多个牺牲块的数量对应的一个或多个目标块。
13.根据权利要求11所述的方法,进一步包括,当所述第二区域中包括的空闲块的数量小于所述阈值时:
在所述第一区域中包括的多个源块之中选择有效页面的数量最小的源块作为所述第一比较块;并且
在所述第二区域中包括的多个源块之中选择有效页面的数量最小的源块作为所述第二比较块。
14.根据权利要求10所述的方法,其中在所述第一区域中的多个源块之中选择与在所述第二区域中选择的目标块的数量对应的所述一个或多个牺牲块包括:
按照降序对所述第一区域中的多个源块的有效页面的数量进行排序;并且
在所述多个源块之中选择有效页面的数量最大的、与在所述第二区域中选择的目标块的数量对应的源块作为所述一个或多个牺牲块。
15.根据权利要求10所述的方法,其中所述第一区域的所述一个或多个牺牲块的类型信息和所述第二区域的所述目标块的类型信息中的每个包括存储位置信息,并且所述存储位置信息包括物理地址。
16.根据权利要求10所述的方法,其中当所述第一比较块的有效页面的数量小于或等于所述第二比较块的有效页面的数量时,所述方法进一步包括:
在所述第一区域的多个源块之中选择有效页面的数量小于任意设置阈值的源块作为牺牲块;
选择所述第二区域的开放块作为目标块;以及
将所述第一区域的牺牲块中存储的有效数据复制到所述第二区域的所述目标块中。
17.根据权利要求16所述的方法,其中在将所述第一区域的牺牲块中存储的有效数据复制到所述第二区域的所述目标块中之后,所述方法进一步包括:
擦除所述第一区域的牺牲块中存储的所有数据;并且
将该牺牲块设置为空闲块。
18.一种操作存储器系统的方法,所述存储器系统包括非易失性存储器和控制器,所述非易失性存储器包括第一区域和第二区域,所述控制器管理所述第一区域和所述第二区域中包括的多个存储块的迁移操作,所述方法包括:
当所述第一区域中没有空闲存储空间时,基于所述第一区域中的多个源块中的每个的有效页面的数量,在所述多个源块之中选择一个或多个牺牲块;
通过基于所述一个或多个牺牲块而从所述第二区域中包括的存储块之中选择一个或多个目标块来执行迁移操作;并且
将所述第一区域的所述一个或多个牺牲块的类型信息交换为所述第二区域的所述一个或多个目标块的类型信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190130019A KR20210046377A (ko) | 2019-10-18 | 2019-10-18 | 마이그레이션 동작을 위한 메모리 시스템 및 메모리 시스템의 동작방법 |
KR10-2019-0130019 | 2019-10-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112684976A true CN112684976A (zh) | 2021-04-20 |
Family
ID=75445353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010739365.1A Withdrawn CN112684976A (zh) | 2019-10-18 | 2020-07-28 | 用于执行迁移操作的存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11392309B2 (zh) |
KR (1) | KR20210046377A (zh) |
CN (1) | CN112684976A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115629719A (zh) * | 2022-12-19 | 2023-01-20 | 合肥康芯威存储技术有限公司 | 一种存储装置及其控制方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11210168B1 (en) * | 2020-06-25 | 2021-12-28 | Micron Technology, Inc. | Error handling optimization in memory sub-system mapping |
US20220188242A1 (en) * | 2020-12-11 | 2022-06-16 | Micron Technology, Inc. | Multi-tier cache for a memory system |
KR102514268B1 (ko) * | 2021-07-14 | 2023-03-24 | 연세대학교 산학협력단 | 데이터 마이그레이션 정책 스위칭 방법 및 장치 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101861170B1 (ko) | 2011-08-17 | 2018-05-25 | 삼성전자주식회사 | 마이그레이션 관리자를 포함하는 메모리 시스템 |
KR20160105624A (ko) * | 2015-02-27 | 2016-09-07 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그것의 동작 방법 |
-
2019
- 2019-10-18 KR KR1020190130019A patent/KR20210046377A/ko not_active Application Discontinuation
-
2020
- 2020-05-27 US US16/885,025 patent/US11392309B2/en active Active
- 2020-07-28 CN CN202010739365.1A patent/CN112684976A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115629719A (zh) * | 2022-12-19 | 2023-01-20 | 合肥康芯威存储技术有限公司 | 一种存储装置及其控制方法 |
CN115629719B (zh) * | 2022-12-19 | 2023-04-14 | 合肥康芯威存储技术有限公司 | 一种存储装置及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US20210117122A1 (en) | 2021-04-22 |
KR20210046377A (ko) | 2021-04-28 |
US11392309B2 (en) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110781096B (zh) | 用于通过预测需求时间来执行垃圾收集的设备和方法 | |
CN111240586A (zh) | 存储器系统及其操作方法 | |
US11449418B2 (en) | Controller and method for selecting victim block for wear leveling operation | |
US10860231B2 (en) | Memory system for adjusting map segment based on pattern and operating method thereof | |
US11392309B2 (en) | Memory system for performing migration operation and operating method thereof | |
KR20200068941A (ko) | 메모리 시스템 내 저장된 데이터를 제어하는 방법 및 장치 | |
CN113900586A (zh) | 存储器系统及其操作方法 | |
US11422930B2 (en) | Controller, memory system and data processing system | |
US20200334139A1 (en) | Apparatus and method for processing different types of data in memory system | |
KR20200132047A (ko) | 메모리 시스템에서 맵 데이터를 전송하는 방법 및 장치 | |
KR20200014175A (ko) | 소요시간을 예측하여 가비지 컬렉션을 수행하는 방법 및 장치 | |
US11409444B2 (en) | Memory system and operation method thereof | |
US20220012180A1 (en) | Memory system for meta data management and operating method of memory system | |
US11775209B2 (en) | Controller and operation method thereof | |
CN110825317B (zh) | 用于分布式存储输入数据的存储器系统和数据处理系统 | |
US20220164119A1 (en) | Controller, and memory system and data processing system including the same | |
US11275694B2 (en) | Memory system and method of operating method thereof | |
US11657000B2 (en) | Controller and memory system including the same | |
US20220156003A1 (en) | Controller and operation method thereof | |
US20220100671A1 (en) | Controller, operation method thereof, and memory system including the same | |
KR20210063814A (ko) | 메모리 시스템의 리드 동작 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210420 |