CN112748873A - 存储器系统和控制器 - Google Patents
存储器系统和控制器 Download PDFInfo
- Publication number
- CN112748873A CN112748873A CN202010748382.1A CN202010748382A CN112748873A CN 112748873 A CN112748873 A CN 112748873A CN 202010748382 A CN202010748382 A CN 202010748382A CN 112748873 A CN112748873 A CN 112748873A
- Authority
- CN
- China
- Prior art keywords
- block
- copy
- original
- data
- controller
- 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/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/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/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
- 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/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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0626—Reducing size or complexity 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/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/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
- 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/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/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/7207—Details relating to flash memory management management of metadata or control data
Abstract
本发明公开一种存储器系统。该存储器系统包括:存储器装置,包括多个存储块;以及控制器,用于控制所述存储器装置。控制器将用户数据存储在从存储块之中选择的原始块中。当原始块改变为封闭块时,控制器通过将原始块的每个页面的数据复制到存储块之中的空闲块的具有相同页面地址的页面中,来生成复制块;并将与用户数据相关联的映射数据存储在存储器装置中,映射数据包括用户数据的逻辑地址、原始块的地址、复制块的地址和公共页面地址。公共页面地址是原始块和复制块中公共的页面地址。在实施例中,控制器根据可配置的复制级别来限制复制块的数量。
Description
相关申请的交叉引用
本申请要求于2019年10月31日提交的申请号为10-2019-0137531的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本发明的说明性实施例涉及一种存储器系统和用于控制存储器装置的控制器。
背景技术
计算机环境范例已经转变为能够随时随地使用计算系统的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统以存储数据。存储器系统可以用作便携式电子装置的主存储器装置或辅助存储器装置。
由于存储器系统没有移动部件,因此该存储器系统具有诸如优异的稳定性和耐用性、高信息访问速度和低功耗的优点。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、和固态驱动器(SSD)。
发明内容
本发明的实施例针对一种能够根据主机的选择来调整存储器系统的容量和存储器系统中存储的数据的可靠性的存储器系统和控制器。
本发明的实施例针对一种能够以低管理成本来确保存储器系统中存储的数据的可靠性的存储器系统和控制器。
本发明的实施例针对一种能够减少存储器系统中存储的数据的读取干扰的存储器系统和控制器。
根据本发明的实施例,一种存储器系统,包括:存储器装置,包括多个存储块;以及控制器,被配置为控制存储器装置;其中,控制器将用户数据存储在从存储块之中选择的原始块中,并且当原始块改变为封闭块时,通过将原始块的每个页面的数据复制到存储块之中的空闲块的具有相同页面地址的页面中,来生成复制块,并将与用户数据相关联的映射数据存储在存储器装置中;其中,映射数据包括用户数据的逻辑地址、原始块的地址、复制块的地址和公共页面地址;并且其中,公共页面地址是原始块和复制块中公共的页面地址。
根据本发明的另一实施例,一种用于控制存储器装置的控制器,包括:处理器,被配置为将用户数据存储在存储器装置的原始块中,并且当原始块改变为封闭块时,通过将原始块的每个页面的数据复制到存储器装置的存储块之中的空闲块的具有相同页面地址的页面中来生成复制块;以及存储器,被配置为存储包括用户数据的逻辑地址、原始块的地址、复制块的地址、和公共页面地址的映射数据;其中,公共页面地址是原始块和所述复制块中公共的页面地址。
附图说明
图1为示出了根据本发明实施例的包括存储器系统的数据处理系统的框图。
图2为示出了根据本发明实施例的存储器系统的框图。
图3示出了根据本发明实施例的存储器装置中包括的多个存储块。
图4示出了根据本发明实施例的复制级别。
图5示出了根据本发明实施例的映射数据。
图6示出了根据本发明实施例的复制队列。
图7、图8和图9为描述根据发明实施例的存储器系统的操作的流程图。
具体实施方式
以下将参照附图更详细地描述本发明的说明性实施例。然而,本发明可以以不同的形式来实现,并且不应被解释为限于本文阐述的实施例。相反,提供这些实施例以使得本公开将是彻底的和完整的,并向本领域技术人员充分传达本发明的范围。纵观本公开,相同的附图标记在本发明的各个附图和实施例中始终指代相同的部件。
在下文中,将参照附图更详细地描述本发明的实施例。
图1为示出了根据本发明实施例的包括存储器系统110的数据处理系统100的框图。
参照图1,数据处理系统100可以包括可操作地联接到存储器系统110的主机102。
主机102可以包括诸如移动电话、MP3播放器、和膝上型计算机的各种便携式电子装置中的任意一种,或者诸如台式计算机、游戏机、电视(TV)、和投影仪的各种非便携式电子装置中的任意一种。
主机102可以包括至少一个操作系统(OS),操作系统(OS)可以管理和控制主机102的整体功能和操作,并提供主机102与使用数据处理系统100或存储器系统110的用户之间的通信。OS可以支持与用户的使用目的和用途相对应的功能和操作。例如,根据主机102的移动性,OS可以划分为通用OS和移动OS。根据用户的环境,通用OS可以划分为个人OS和企业OS。
存储器系统110可以响应于主机102的请求进行操作以存储用于主机102的数据。存储器系统110的非限制性示例可以包括固态驱动器(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用串行总线(USB)装置、通用闪存存储(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储卡国际协会(PCMCIA)卡、和记忆棒。MMC可以包括嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)和微型MMC等。SD卡可以包括迷你SD卡或微型SD卡。
存储器系统110可以由各种类型的存储装置来实现。这样的存储装置的示例可以包括但不限于易失性存储器装置(诸如动态随机存取存储器(DRAM)和静态RAM(SRAM))以及非易失性存储器装置(诸如只读存储器(ROM)、掩膜ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)、和闪速存储器)。闪速存储器可以具有3维(3D)堆叠结构。
存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以存储用于主机102的数据,并且控制器130可以控制数据在存储器装置150中的存储。
控制器130和存储器装置150可以集成到单个半导体装置中。例如,控制器130和存储器装置150可以集成为一个半导体装置以构成固态驱动器(SSD)。当存储器系统110用作SSD时,可以提高连接到存储器系统110的主机102的操作速度。在另一个示例中,控制器130和存储器装置150可以集成为一个半导体装置以构成诸如PCMCIA卡、CF卡、SM卡、记忆棒、MMC、SD卡、SDHC卡或UFS装置的存储卡。
存储器系统110的非限制性应用示例可以包括计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑匣子、数码相机、数字多媒体广播(DMB)播放器、3维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境下传送/接收信息的装置、构成家庭网络的各种电子装置之一、构成计算机网络的各种电子装置之一、构成远程信息处理网络的各种电子装置之一、射频识别(RFID)装置、或构成计算系统的各种组件之一。
存储器装置150可以是非易失性存储器装置,并且即使不供应电力也可以保存其中存储的数据。存储器装置150可以通过编程操作存储从主机102提供的数据,并通过读取操作将其中存储的数据提供给主机102。存储器装置150可以包括多个存储块,每个存储块可以包括多个页面,并且每个页面可以包括联接到字线的多个存储器单元。在实施例中,存储块对应于总是通过擦除操作一起擦除的单元,并且页面对应于通过编程操作一起编程的单元。在实施例中,存储器装置150可以是闪速存储器。闪速存储器可以具有3维(3D)堆叠结构。
在本发明的实施例中,存储器装置150为诸如闪速存储器的非易失性存储器,例如NAND闪速存储器。然而,存储器装置150可以包括相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM或ReRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩磁性随机存取存储器(STT-RAM或STT-MRAM)等中的任意一种。
控制器130可以响应于来自主机102的请求来控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供给主机102,并且可以将从主机102提供的数据存储在存储器装置150中。为了执行这些操作,控制器130可以控制存储器装置150的读取操作、编程操作、擦除操作以及其它操作。
控制器130可以响应于来自主机102的请求将数据存储在存储器装置150中。控制器130可以基于从主机102提供的用户数据将原始数据和复制数据存储在存储器装置150中。当控制器130将原始数据和复制数据存储在存储器装置150中时,如果原始数据和复制数据中的一个被损坏,则另一个可能未被损坏,从而向主机102提供可靠的存储器系统110。
当存储器装置150存储所有用户数据的原始数据和复制数据时,主机102可用的存储器系统110的容量可以约为存储器装置150的实际容量的一半。当控制器130单独地执行用户数据的逻辑地址与存储原始数据的物理位置之间的第一映射以及逻辑地址与存储复制数据的物理位置之间的第二映射时,可能需要大量的映射数据(几乎与主机102存储与存储器装置150的实际容量相对应的数据时所需的量一样多)。
根据本公开的实施例,存储器系统110可以存储在存储器系统110中存储的用户数据的全部或部分的复制数据。例如,控制器130可以响应于从主机102提供的复制级别设置命令COPY_LEVEL_CMD来确定指示可以将多少复制数据存储在存储器装置150中的复制级别。例如,当复制级别最低时,控制器130不可以存储复制数据;当复制级别最高时,控制器130可以存储所有原始数据的复制数据;并且当复制级别为中间时,控制器130可以存储有限数量的原始数据的复制数据。因此,可以根据主机102的选择在存储器系统110的容量和可靠性之间取得平衡。
根据本公开的实施例,控制器130可以通过将原始块的每个页面的数据复制到空闲块的具有相同页面地址的页面中来生成复制块。原始块可以指用户数据作为原始数据被存储在其中的存储块。复制块可以指原始数据被复制并作为复制数据被存储在其中的存储块。相同的数据可以存储在原始块和复制块的具有相同页面地址并且彼此对应的页面中。
控制器130可以通过指定用户数据的原始块地址、复制块地址和公共页面地址来指定原始数据的物理地址和复制数据的物理地址二者。公共页面地址可以指原始块和复制块中公共的页面地址。每个页面的页面地址可以相对于包括该页面的存储块的开始。由于相同的数据存储在彼此对应的原始块和复制块中的具有相同页面地址的页面中,因此控制器130可以不必单独地指定原始数据的页面地址和与原始数据相对应的复制数据的页面地址以便指明原始数据的物理地址和复制数据的物理地址。因此,相较于例如当主机102存储与存储器装置150的实际容量相对应的数据时所需的映射大小,存储器装置150中存储的映射数据的大小可以减小。
根据本公开的实施例,当响应于用于相同逻辑地址的连续读取命令时,控制器130可以在访问原始数据和访问复制数据之间交替。因而,当主机102重复读取相同的逻辑地址时,可以通过交替访问原始数据和复制数据来防止在一个存储块中集中执行读取操作。因此,可以防止存储器装置150的读取干扰。
根据本公开的实施例,控制器130可以响应于来自主机102的读取请求来访问原始数据和复制数据中的一个,并且当访问的数据损坏时,控制器130可以向主机102提供原始数据和复制数据中保持未损坏的另一个。控制器130能够基于另一个数据来恢复损坏的数据。
图2为详细示出了根据本发明实施例的存储器系统110的框图。
存储器系统110可以包括存储器装置150和控制器130。图2所示的存储器装置150和控制器130可以对应于图1所示的存储器装置150和控制器130。
控制器130可以包括主机接口(I/F)132、处理器134、错误校正码(ECC)组件136、存储器接口(I/F)142和存储器144,它们全部经由内部总线可操作地联接。
主机I/F 132可以被配置为处理主机102的命令和数据,并且可以通过诸如通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)的各种接口协议中的一种或多种与主机102通信。
主机I/F 132可以通过被称为主机接口层(HIL)的固件来驱动,以便与主机交换数据。在实施例中,HIL固件可以由处理器134运行。
存储器I/F 142可以用作用于接口连接控制器130和存储器装置150的存储器/存储接口,使得控制器130可以响应于来自主机102的请求来控制存储器装置150。当存储器装置150是闪速存储器或者具体地是NAND闪速存储器时,存储器I/F 142可以生成用于存储器装置150的控制信号并且在处理器134的控制下处理待提供给存储器装置150的数据。存储器I/F 142可以用作用于处理控制器130与存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)。例如,存储器I/F 142可以支持控制器130与存储器装置150之间的数据传输。
存储器I/F 142可以通过被称为闪存接口层(FIL)的固件来驱动,以便与存储器装置150交换数据。在实施例中,FIL固件可以由处理器134运行。
ECC组件136可以检测并校正从存储器装置150读取的数据中包含的错误。换言之,ECC组件136可以使用在ECC编码处理期间生成的ECC值对从存储器装置150读取的数据执行错误校正解码处理。根据错误校正解码处理的结果,ECC组件136可以输出信号,例如错误校正成功/失败信号。当错误位的数量大于可校正错误位的阈值时,ECC组件136可以不校正错误位,并且可以输出错误校正失败信号。
存储器144可以用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可以响应于来自主机102的请求来控制存储器装置150执行读取操作、编程操作和擦除操作。控制器130可以将从存储器装置150读取的数据提供给主机102,可以将从主机102提供的数据存储到存储器装置150中。存储器144可以存储控制器130和存储器装置150执行这些操作所需的数据。
存储器144可以由易失性存储器来实现。例如,存储器144可以由静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实现。存储器144可以布置在控制器130的内部或外部。图1例示了布置在控制器130的内部的存储器144。在实施例中,存储器144可以由外部易失性存储器来实现,该外部易失性存储器具有在存储器144和控制器130之间传输数据的存储器接口。
存储器144可以临时存储用于在主机102和存储器装置150之间执行诸如写入操作和读取操作的操作的数据。例如,存储器144可以临时存储在主机102和存储器装置150之间交换的用户数据。作为另一示例,存储器144可以临时存储映射块的数据和复制队列块的数据之中的至少一部分数据,这将在之后进行描述,以执行写入操作和读取操作。
处理器134可以控制存储器系统110的整体操作。处理器134可以驱动固件以控制存储器系统110的整体操作。固件可以被称为闪存转换层(FTL)。另外,处理器134可以实现为微处理器或中央处理单元(CPU)。
例如,控制器130可以通过处理器134执行由主机102请求的操作。换言之,控制器130可以执行与从主机102接收的命令相对应的命令操作。控制器130可以执行作为与从主机102接收的命令相对应的命令操作的前台操作。例如,控制器130可以执行与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除命令相对应的擦除操作以及与设置参数命令或设置特征命令相对应的参数设置操作。
另外,控制器130可以通过处理器134对存储器装置150执行后台操作。例如,对存储器装置150执行的后台操作可以包括垃圾收集(GC)操作、耗损均衡(WL)操作、映射刷新操作或坏块管理操作。
存储器装置150可以将从主机102提供的用户数据、关于用户数据的元数据、和用于驱动存储器系统110的系统数据存储在多个存储块中。图2示出了存储块之中的原始块、复制块、映射块、和复制队列块。图2所示的每种类型的块的数量仅是说明性示例,并且实施例不限于此。
原始块可以将用户数据作为原始数据存储。复制块可以存储通过根据复制率复制至少一部分原始数据而获得的复制数据。复制块的数量可以小于或等于原始块的数量。一些原始块可以具有对应的复制块,而其它原始块可以没有对应的复制块。原始块和对应的复制块可以存储相同的数据。具有与原始块的特定页面相同的页面地址的复制块的页面可以存储与原始块的该特定页面相同的数据。下面将参照图3描述存储用户数据的原始数据和至少一部分复制数据的存储器装置150的示例。
映射块可以存储包括与用户数据的映射数据相对应的一个或多个条目的映射表。例如,映射数据可以包括用户数据的逻辑地址、原始块地址、复制块地址和公共页面地址。每个逻辑地址可以对应于可以存储在存储器装置150的一个页面中的数据量。稍后将参照图5描述映射数据的示例。
复制队列块可以存储用于根据存储器系统110的复制级别来维持原始块的数量和复制块的数量的复制队列。下文参照图6描述复制队列块的示例,并且下文参照图4描述复制级别的示例。
图3示出了根据本发明实施例的存储器装置150中包括的多个存储块。
图3示出了具有能够存储用户数据的十个存储块BLOCK1至BLOCK10的情况,其中每个块分别包括四个页面PAGE1至PAGE4,但是实施例不限于此。在图3的示例中,省略了映射块和复制队列块。图案化的区域可以表示存储有数据的页面,空白区域可以表示处于擦除状态的页面。存储有数据的页面可以存储有效数据或无效数据。写入“无效(INVALID)”的区域可以表示存储有无效数据的页面,写入逻辑地址(LBA)的区域可以表示存储有与逻辑地址相对应的有效数据的页面。
在图3的示例中,存储器装置150根据复制级别使用十个存储块之中的两个存储块(在该示例中为BLOCK4和BLOCK7)作为复制块。
图4示出了根据本发明实施例的复制级别。
图4的表示出了根据复制级别的复制率和容量。复制率可以指示可以用于存储复制数据的存储器装置150的用户数据存储空间的容量的分数。容量可以指示可以由主机102使用的存储器系统110的存储器装置150的用户数据存储空间的容量的分数。通常,存储器装置150的存储空间中的系统数据和元数据占据的空间很小,并且存储器装置150的大部分存储空间可以用于存储用户数据。
主机102可以通过使用复制级别设置命令来确定存储器系统110的复制级别。每个复制级别对应于存储器系统110的容量和存储器系统110中存储的数据的可靠性之间的不同折衷,并且复制级别可以根据使用存储器系统110的目的进行选择。在图4的示例中,主机102可以将复制级别设置为第一至第四级别LV1至LV4之中的任意一个,但是实施例不限于此。
当复制级别是第一级别时,存储器系统110可以根本不存储复制数据。主机102可以使用与存储器装置150的用户数据存储空间的整个容量相对应的存储空间。
当复制级别是第二级别时,存储器系统110可以将复制数据存储在存储器装置150的多达约20%的用户数据存储空间中。主机102可以使用与存储器装置150的约80%的容量相对应的存储空间。当原始数据所占据的存储空间超过用户数据存储空间的约20%,并且如果所有原始数据的复制数据存储在存储器装置150中,则复制数据所占据的存储空间将超过约20%。因此,存储器系统110可以仅针对一部分原始数据存储复制数据。例如,当原始数据的量超过用户数据存储空间的约20%时,存储器系统110可以从复制数据之中移除最旧的复制数据。
当复制级别是第三级别时,存储器系统110可以将复制数据存储在存储器装置150的多达约33.3%的用户数据存储空间中。主机102可以使用存储器装置150的约66.7%的容量。当原始数据占据存储器装置150的存储空间的约33.3%或更多时,存储器系统110可以仅针对一部分原始数据存储复制数据。
当复制级别是第四级别时,存储器系统110可以将复制数据存储在存储器装置150的多达最高50%的用户数据存储空间中。主机102可以使用存储器装置150的约50%的容量。由于原始数据在存储器装置150中占据约50%或更少,因此存储器系统110可以针对所有原始数据来存储复制数据。
图4的图表中所示的箭头用于解释复制级别的变化。
主机102可以通过使用复制级别设置命令并改变存储器系统110的复制级别来改变存储器系统110的容量和可靠性级别。
当存储器系统110的复制级别从当前级别改变到更高级别时,由于减小了主机102可用的存储空间,因此主机102可能会丢失存储器系统110的用户数据。根据本发明的实施例,当主机102发出用于将存储器系统110的复制级别设置成比现有级别更高的级别的命令时,存储器系统110可以移除所有用户数据并改变复制级别。
当存储器系统110的复制级别从当前级别改变到较低级别时,主机102可用的存储器装置150中的存储空间可以增加。当主机102发出用于将存储器系统110的复制级别设置成比现有级别更低的级别的命令时,存储器系统110可以改变复制级别而不移除任何原始数据。由于用于在存储器装置150中存储复制数据的存储空间可以减小,因此如果有必要,存储器系统110可以移除一些复制数据。
再参照图3,具有相同页面地址的第二存储块BLOCK2和第四存储块BLOCK4的页面可以存储相同的数据。例如,第二存储块BLOCK2可以是原始块,并且第四存储块BLOCK4可以是对应的复制块。类似地,第三存储块BLOCK3可以是原始块并且第七存储块BLOCK7可以是复制块,从而在第三存储块BLOCK3和第七存储块BLOCK7之中,具有相同页面地址的页面存储相同的数据。
存储器装置150中可能不存在存储与第一存储块BLOCK1相同的数据的存储块(即,与原始块BLOCK1相对应的复制块)。例如,如果第一存储块BLOCK1比第二存储块BLOCK2和第三存储块BLOCK3更旧,并且复制块的数量限于两个,则与第一存储块BLOCK1相对应的复制块的数据可能已被移除,如下文参照图6所述。
第五存储块BLOCK5可以是并非所有页面都已被编程数据的开放块。处理器134可以将空闲块之中的一个确定为开放块,以便将数据存储在存储器装置150中,空闲块是所有页面均被擦除的存储块,诸如块BLOCK6、BLOCK8、BLOCK9和BLOCK10。当在开放块的所有页面中对数据进行编程时,处理器134可以将开放块改变为封闭块,并且可以不将任何附加数据存储在封闭块中。
根据本发明的实施例,当将开放块改变为封闭块时,处理器134可以生成新封闭的存储块的复制块。在图3的示例中,由于第五存储块BLOCK5是开放块,因此存储器装置150中可能不存在与第五存储块BLOCK5相对应的复制块。
图5示出了根据本发明实施例的映射数据。
图5示出了映射表500,其中映射数据作为条目被存储在表结构中。图5所示的映射数据可以表示图3所示的多个存储块与逻辑地址之间的关系。映射表500可以包括关于与每个逻辑地址相对应的物理地址的信息。
当与逻辑地址相对应的原始数据和复制数据均存储在存储器装置150中时,该逻辑地址的映射数据的物理地址部分可以包括原始块地址、复制块地址和公共页面地址。例如,与第六逻辑地址LBA6相关联的用户数据可以存储在作为原始块的第二存储块BLOCK2的第二页面PAGE2和作为复制块的第四存储块BLOCK4的第二页面PAGE2中。第二页面PAGE2可以是用户数据共同存储在原始块和复制块中的页面。因而,如图5所示,与第六逻辑地址LBA6相对应的映射数据的物理地址部分可以包括第二存储块BLOCK2、第四存储块BLOCK4和第二页面PAGE2的地址。
当存储器装置150中仅存储与逻辑地址相对应的原始数据时,与逻辑地址相对应的映射数据的物理地址部分可以包括原始块地址和页面地址,并且在实施例中不包括有效的复制块地址。例如,与第一逻辑地址LBA1相关联的用户数据可以存储在作为原始块的第一块BLOCK1的第一页面PAGE1中。存储器装置150中可能不存在用户数据的复制数据。因此,与第一逻辑地址LBA1相对应的映射数据的物理地址部分可以包括第一块BLOCK1和第一页面PAGE1的地址,如图5所示。
图6示出了根据本发明实施例的复制队列600。
复制队列600可以以先进先出(FIFO)结构存储包括关于复制块和对应的原始块的信息的条目。图6所示的关于原始块和复制块的信息可以对应于图3中的原始块和复制块。
当复制级别防止将所有用户数据的复制数据存储在存储器装置150中时,处理器134可以将最近存储的用户数据的复制数据存储在存储器装置150中,并从存储器装置150移除旧的复制数据。
当数据存储在作为开放块的原始块的所有页面中时,处理器134可以将原始块从开放块改变为封闭块,并将改变后的原始块排队在复制队列600中。处理器134可以生成与排队的原始块相对应的复制块。根据本发明的实施例,处理器134可以在存储器装置150的空闲状态期间(例如,当没有来自主机102的命令正在处理时)生成复制块。当在存储器装置150进入空闲状态之前将多个原始块改变为封闭块时,处理器134可以首先将所有原始块排队在复制队列600中,然后当存储器装置150处于空闲状态时,处理器134可以生成与原始块相对应的多个复制块。
如图2所示,复制队列600可以存储在存储器装置150的复制队列块中。在处理器134生成与原始块相对应的复制块之前,存储器系统110中可能发生突然断电。当突然断电之后给存储器系统110通电时,处理器134可以从存储器装置150加载复制队列600,以确定是否已经生成了与在复制队列600中排队的所有原始块相对应的复制块。当存在尚未为其生成对应的复制块的原始块时,处理器134可以生成与原始块相对应的复制块。
当新的原始块在复制队列600中排队,而复制队列600已满时,可以从复制队列600移除最旧的原始块和对应的复制块的队列条目。在图3和6的示例中,当作为原始块的第五存储块BLOCK5从开放块改变为封闭块时,处理器134可以将第五存储块BLOCK5输入到复制队列600。当第五存储块BLOCK5被输入到复制队列600时,可以从复制队列600移除作为最旧的原始块的第二存储块BLOCK2的队列条目,和作为与第二存储块BLOCK2相对应的复制块的第四存储块BLOCK4的队列条目。然后,处理器134可以在空闲状态下生成与第五存储块BLOCK5相对应的复制块。
复制队列600的长度LENGTH可以基于复制级别来确定。在图3的示例中,由于根据复制级别,存储器装置150可以具有多达两个复制块,因此复制队列600的长度可以为2。作为另一示例,当复制级别为4并且具有能够存储用户数据的10个存储块时,存储器装置150可以具有最大数量的5个复制块,并且因此复制队列600的长度可以为5。
如图2所示,复制队列600可以存储在存储器装置150中。由于复制队列600存储在存储器装置150中,因此即使在存储器系统110断电之后也可以维持复制块信息。
图7为描述根据本发明实施例的存储器系统110的操作700的流程图。特别地,图7示出了通过将用户数据存储在开放的原始块的最后的未使用的页面中而启动的操作700。
在步骤S702中,当处理器134从主机102接收用户数据时,处理器134可将用户数据存储在原始块中。例如,处理器134可以控制存储器装置150将用户数据编程到作为开放块的原始块中。
在步骤S704中,当数据存储在原始块的所有页面中时,处理器134可以将原始块从开放块改变为封闭块。
在步骤S706中,处理器134可以将作为封闭块的原始块新排队到复制队列中。当在将原始块排队之前复制队列已满时,处理器134可以从复制队列移除与最旧原始块相对应的条目和与最旧原始块相对应的复制块的条目。可以不再维持从复制队列移除的、与原始块相关的用户数据的复制数据。因而,处理器134可以擦除移除的复制块并使之成为空闲块。因而,在实施例中,当必须释放复制块以使用新数据时,复制队列用于管理使用的替换策略(这里,“替换最旧的”)。
在步骤S708中,处理器134可以生成新的复制块。例如,处理器134可以通过选择存储器装置150的空闲块之中的一个空闲块、将选择的空闲块的地址作为复制块地址存储在队列条目中并存储与原始块相关联的映射数据、并且将在复制队列中新排队的原始块的每个页面的数据复制到选择的空闲块的具有相同页面地址的页面中,来生成新的复制块。当处理器134将原始块的所有数据复制到复制块中时,处理器134可以将复制块改变为封闭块。由于复制原始块的数据以生成对应的复制块,因此可以将相同的数据存储在原始块和与原始块相对应的复制块中的具有相同页面地址的页面中。
根据本发明的实施例,处理器134可以在存储器装置150处于空闲状态时执行步骤S708的操作。处理器134能够通过在空闲状态下执行生成复制块的操作来提高存储器系统110中存储的数据的可靠性,并防止存储器系统110对主机102的命令的响应延迟。
当处理器134正在生成复制块时发生中断时,可以在当前正在生成的复制块的生成完成之后执行应对该中断的处理,并且当存在尚未生成的复制块时,复制块的生成可能未完成。当多个中断与多个复制块生成操作处于竞争状态时,处理器134可以控制存储器装置150交替执行针对中断的操作和复制块生成操作。
在步骤S710中,处理器134可以更新映射数据。处理器134可以将存储在新的复制块中的用户数据的逻辑地址,原始块地址,复制块地址和公共页面地址的信息反映在映射数据中。例如,参照图5,当在步骤S708中将第四块BLOCK4作为第二块BLOCK2的复制块时,在S710中,逻辑地址LBA6、LBA7和LBA8的映射数据被更新以指示BLOCK4的复制块地址。当从复制队列移除条目时,处理器134可以从与从复制队列移除的块相关联的每个映射数据移除复制块地址信息。
图8为描述根据本发明实施例的存储器系统110的操作800的流程图。
在步骤S802中,处理器134可以从主机102接收读取命令和与读取命令相关联的读取逻辑地址。
在步骤S804中,处理器134可以找到与读取逻辑地址相关联的映射数据。
在步骤S806中,处理器134可以基于映射数据确定是否存在与读取逻辑地址相关联的复制数据。例如,当与读取逻辑地址相关联的物理地址中包括复制块地址时,处理器134可以确定存在与读取逻辑地址相关联的复制数据。
当不存在与读取逻辑地址相关联的复制数据时(步骤S806中的“否”),则在步骤S810中,处理器134可以访问与读取逻辑地址相关联的原始块。
在步骤S812中,ECC 136可以检测并校正从原始块读取的数据的错误。
当数据的错误校正成功时(步骤S812中的“是”),则在步骤S814中,主机接口单元132可以将错误校正的数据提供给主机102。
当数据的错误校正失败时(步骤S812中的“否”),则在步骤S816中,处理器134可以执行诸如读取重试的恢复操作。在步骤S814中,主机接口单元132可以向主机102提供通过恢复操作恢复的数据。
当存在与逻辑地址相关联的复制数据时(步骤S806中的“是”),则在步骤S808中,处理器134可以访问与读取逻辑地址相关联的原始块和复制块之间的一个。
当处理器134在重复读取读取逻辑地址时仅访问原始块或仅访问复制块时,访问的存储块的数据可能由于读取干扰而损坏。根据本发明的实施例,每当针对每个逻辑地址执行读取操作时,处理器134可以交替访问原始块和复制块,从而例如,对于每个逻辑地址,第一次读取访问原始块、第二次读取访问复制块、第三次读取访问原始块、第四次读取访问复制块,依此类推。因此,根据本发明的实施例,可以防止存储块的读取干扰。
处理器134可以在存储器144中存储位图,该位图针对每个逻辑地址指示待访问当前原始块和复制块之间的哪个块,以便交替访问原始块和复制块。在图8中,当前正在访问的存储块可以被称为第一访问块。
下文参照图9详细描述在步骤S808之后在存储器系统110中执行的操作。
图9为描述根据本发明实施例的存储器系统110的操作900的流程图。特别地,图9所示的操作900在图8所示的操作800的步骤S808之后。
在步骤S902中,ECC 136可以检测并校正从第一访问块读取的数据的错误。
当数据的错误校正成功时(步骤S902中的“是”),则在步骤S904中,主机接口单元132可以将经错误校正的数据提供给主机102。
当数据的错误校正失败时(步骤S902中的“否”),则在步骤S906中,处理器134可以访问第二访问块。第二访问块可以指与第一访问块相对应的存储块。例如,当第一访问块是复制块时,第二访问块可以是与复制块相对应的原始块;而当第一访问块是原始块时,第二访问块可以是与原始块相对应的复制块。
在步骤S908中,主机接口单元132可以将从第二访问块读取的数据提供给主机102。换言之,当第一访问块的数据损坏时,存储器系统110可以向主机102提供未损坏的第二访问块的数据。
当第一访问块中的数据被损坏严重导致错误校正失败时,则在步骤S910和S912中,处理器134可以通过使用未损坏的数据来生成新的原始数据和复制数据。
在步骤S910中,处理器134可以将第二访问块的有效数据作为原始数据复制到开放块中。当开放块改变为封闭块时,处理器134可以通过将改变的封闭块的数据复制到空闲块中来生成复制块。
在步骤S912中,处理器134可以擦除第一访问块和第二访问块。在实施例中,处理器134还可以改变与第一访问块和第二访问块相关联的映射数据以替代地参照新的原始块和新的复制块、移除与第一访问块和第二访问块相关联的复制队列条目、并且针对新的原始块和新的复制块创建新的复制队列条目。
根据本发明的实施例,控制存储器装置150的控制器130可以将用户数据存储在原始块中,并且当原始块从开放块改变为封闭块时,控制器130可以通过将原始块的每个页面的数据复制到空闲块的具有相同页面地址的页面中来生成复制块。
控制器130可以通过响应于来自主机102的复制级别设置命令来确定复制级别,在存储器系统110的容量和存储器系统110中存储的数据的可靠性之间折衷。
控制器130可以将包括逻辑地址、原始块地址、复制块地址和公共页面地址的映射数据存储在存储器装置150中。相比于原始数据的页面地址和复制数据的页面地址分别存储在存储器装置150中的情况,控制器130可以以更低的管理成本,来指定原始数据的物理地址和复制数据的物理地址。
当存在与读取逻辑地址相关联的原始块和复制块时,控制器130可以通过交替访问原始块和复制块来防止每个存储块的读取干扰。
根据本发明的实施例,存储器系统和控制器可以根据主机的选择来调整存储器系统的容量和存储器系统中存储的数据的可靠性。
根据本发明的实施例,存储器系统和控制器可以以低管理成本来确保存储器系统中存储的数据的可靠性。
根据本发明的实施例,存储器系统和控制器可以减少存储器系统中存储的数据的读取干扰。
尽管已经参照特定实施例描述了本发明,但是对本领域技术人员将显而易见的是,在不脱离如随附权利要求所定义的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (20)
1.一种存储器系统,包括:
存储器装置,包括多个存储块;以及
控制器,控制所述存储器装置;
其中,所述控制器:
将用户数据存储在所述存储块之中选择的原始块中,并且
当所述原始块改变为封闭块时,通过将所述原始块的每个页面的数据复制到所述存储块之中的空闲块的具有相同页面地址的页面中,来生成复制块,并将与所述用户数据相关联的映射数据存储在所述存储器装置中,
其中,所述映射数据包括所述用户数据的逻辑地址、所述原始块的地址、所述复制块的地址和公共页面地址,并且
其中,所述公共页面地址是所述原始块和所述复制块中公共的页面地址。
2.根据权利要求1所述的存储器系统,其中,所述存储器装置包括:
复制队列块,响应于所述原始块改变为所述封闭块而将所述原始块排队,并且当生成与所述原始块相对应的复制块时,所述复制队列块进一步将所述复制块与所述原始块相对应地排队。
3.根据权利要求2所述的存储器系统,其中,当所述存储器装置处于空闲状态时,
所述控制器通过参考所述复制队列块,生成尚未生成对应的复制块的原始块的复制块。
4.根据权利要求2所述的存储器系统,其中,当突然断电之后给所述存储器系统通电时,
所述控制器通过参考所述复制队列块,生成尚未生成对应的复制块的原始块的复制块。
5.根据权利要求2所述的存储器系统,其中,所述控制器基于来自主机的复制级别设置命令确定所述复制队列块的复制队列长度。
6.根据权利要求5所述的存储器系统,其中,当所述复制队列块中存储的原始块的数量超过所述复制队列长度时,所述控制器:
从所述复制队列块中移除最旧的原始块和与所述最旧的原始块相对应的复制块,
控制所述存储器装置擦除对应的复制块的数据,并且
从所述映射数据中移除所述对应的复制块中存储的所述用户数据的复制块地址。
7.根据权利要求1所述的存储器系统,其中,所述控制器:
响应于来自主机的读取命令,从所述映射数据之中检测与读取逻辑地址相对应的读取映射数据,并且
当所述读取映射数据包括指示与所述读取逻辑地址相对应的复制块的复制块地址信息时:
从与所述读取逻辑地址相对应的所述复制块和原始块之中选择第一访问块,
从所述第一访问块获取与所述读取逻辑地址相对应的用户数据,并且
向所述主机提供所获取的用户数据。
8.根据权利要求7所述的存储器系统,其中,每当执行针对所述读取逻辑地址的读取操作时,所述控制器在所述原始块和所述复制块之间交替选择所述第一访问块。
9.根据权利要求1所述的存储器系统,其中,所述控制器:
响应于来自主机的读取命令,从所述映射数据之中检测与读取逻辑地址相对应的读取映射数据,并且
当所述读取映射数据包括指示与所述读取逻辑地址相对应的复制块的复制块地址信息时:
从与所述读取逻辑地址相对应的所述复制块和原始块之间选择第一访问块,
从所述第一访问块获取与所述读取逻辑地址相对应的第一用户数据,
通过对所述第一用户数据执行错误检测来确定所述第一用户数据是否被损坏,并且
响应于确定所述第一用户数据被损坏,从第二访问块获取第二用户数据,并向所述主机提供所述第二用户数据,所述第二访问块对应于所述原始块和所述复制块中的任意一个未被选择为所述第一访问块。
10.根据权利要求9所述的存储器系统,其中,当从所述第二访问块获取所述第二用户数据时,
所述控制器将所述第二访问块的有效数据存储到在所述存储块之中选择的原始块中,并控制所述存储器装置擦除所述第一访问块和所述第二访问块。
11.一种用于控制存储器装置的控制器,包括:
处理器,将用户数据存储在所述存储器装置的原始块中,并且当所述原始块改变为封闭块时,通过将所述原始块的每个页面的数据复制到所述存储器装置的存储块之中的空闲块的具有相同页面地址的页面中来生成复制块;以及
存储器,存储包括所述用户数据的逻辑地址、所述原始块的地址、所述复制块的地址和公共页面地址的映射数据,
其中,所述公共页面地址是所述原始块和所述复制块中公共的页面地址。
12.根据权利要求11所述的控制器,其中,所述存储器包括:
复制队列,响应于所述原始块改变为所述封闭块而将所述原始块排队,并且
当生成与所述原始块相对应的复制块时,所述复制队列进一步将所述复制块与所述原始块相对应地排队。
13.根据权利要求12所述的控制器,其中,当所述存储器装置处于空闲状态时,
所述处理器通过参考所述复制队列,生成尚未生成对应的复制块的原始块的复制块。
14.根据权利要求12所述的控制器,其中,所述处理器将所述复制队列存储在所述存储器装置中,并且
当突然断电之后给所述控制器通电时,所述处理器通过参考所述存储器装置中存储的所述复制队列来生成尚未生成对应的复制块的原始块的复制块。
15.根据权利要求12所述的控制器,其中,所述处理器基于来自主机的复制级别设置命令确定所述复制队列的复制队列长度。
16.根据权利要求15所述的控制器,其中,当所述复制队列中存储的原始块的数量超过所述复制队列长度时,
所述处理器从所述复制队列移除最旧的原始块和与所述最旧的原始块相对应的复制块、控制所述存储器装置擦除对应的复制块的数据、并从所述映射数据中移除所述对应的复制块中存储的所述用户数据的复制块地址。
17.根据权利要求11所述的控制器,其中,所述处理器
响应于来自主机的读取命令,从所述映射数据之中检测与读取逻辑地址相对应的读取映射数据;
当所述读取映射数据包括指示与所述读取逻辑地址相对应的复制块的复制块地址信息时:
从与所述读取逻辑地址相对应的所述复制块和原始块之中选择第一访问块,
从所述第一访问块获取与所述读取逻辑地址相对应的用户数据,并且
向所述主机提供所获取的用户数据。
18.根据权利要求17所述的控制器,其中,每当执行针对所述读取逻辑地址的读取操作时,所述处理器在所述原始块和所述复制块之间交替选择所述第一访问块。
19.根据权利要求11所述的控制器,其中,所述处理器:
响应于来自主机的读取命令,从所述映射数据之中检测与读取逻辑地址相对应的读取映射数据,并且
当所述读取映射数据包括指示与所述读取逻辑地址相对应的复制块的复制块地址信息时:
从与所述读取逻辑地址相对应的所述复制块和原始块之间选择第一访问块,
从所述第一访问块获取与所述读取逻辑地址相对应的第一用户数据,
通过对所述第一用户数据执行错误检测来确定所述第一用户数据是否被损坏,并且
响应于确定所述第一用户数据被损坏,从第二访问块获取第二用户数据,并向所述主机提供获取的第二用户数据,所述第二访问块对应于所述原始块和所述复制块中的任意一个未被选择为所述第一访问块。
20.根据权利要求19所述的控制器,其中,当从所述第二访问块获取所述第二用户数据时,
所述处理器将所述第二访问块的有效数据存储在所述存储器装置的所述原始块中,并控制所述存储器装置擦除所述第一访问块和所述第二访问块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190137531A KR20210051803A (ko) | 2019-10-31 | 2019-10-31 | 메모리 시스템 및 컨트롤러 |
KR10-2019-0137531 | 2019-10-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112748873A true CN112748873A (zh) | 2021-05-04 |
Family
ID=75645376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010748382.1A Withdrawn CN112748873A (zh) | 2019-10-31 | 2020-07-30 | 存储器系统和控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11392310B2 (zh) |
KR (1) | KR20210051803A (zh) |
CN (1) | CN112748873A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11550710B2 (en) * | 2020-02-06 | 2023-01-10 | Realtek Semiconductor Corp. | Data processing method and memory controller utilizing the same |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59165207A (ja) * | 1983-03-11 | 1984-09-18 | Hitachi Ltd | 情報記録方式 |
US20060161724A1 (en) * | 2005-01-20 | 2006-07-20 | Bennett Alan D | Scheduling of housekeeping operations in flash memory systems |
US7930496B2 (en) * | 2006-06-29 | 2011-04-19 | International Business Machines Corporation | Processing a read request to a logical volume while relocating a logical volume from a first storage location to a second storage location using a copy relationship |
US7577787B1 (en) * | 2006-12-15 | 2009-08-18 | Emc Corporation | Methods and systems for scheduling write destages based on a target |
US8099632B2 (en) * | 2007-08-08 | 2012-01-17 | Sandisk Technologies Inc. | Urgency and time window manipulation to accommodate unpredictable memory operations |
JP2010287049A (ja) * | 2009-06-11 | 2010-12-24 | Toshiba Corp | メモリシステムおよびメモリシステムの管理方法 |
US8412987B2 (en) | 2009-06-30 | 2013-04-02 | Micron Technology, Inc. | Non-volatile memory to store memory remap information |
US8352681B2 (en) * | 2009-07-17 | 2013-01-08 | Hitachi, Ltd. | Storage system and a control method for accelerating the speed of copy processing |
KR20150110918A (ko) | 2014-03-21 | 2015-10-05 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 |
KR20160016421A (ko) | 2014-08-05 | 2016-02-15 | 삼성전자주식회사 | 비휘발성 메모리 기반의 스토리지 장치의 최적화 방법 |
US10175891B1 (en) * | 2016-03-15 | 2019-01-08 | Pavilion Data Systems, Inc. | Minimizing read latency for solid state drives |
KR102369402B1 (ko) | 2017-09-20 | 2022-03-02 | 삼성전자주식회사 | 스토리지 장치, 이의 동작 방법 및 스토리지 장치를 포함하는 스토리지 시스템 |
JP7159069B2 (ja) * | 2019-01-29 | 2022-10-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP2020149223A (ja) * | 2019-03-12 | 2020-09-17 | キオクシア株式会社 | メモリシステム |
-
2019
- 2019-10-31 KR KR1020190137531A patent/KR20210051803A/ko active IP Right Grant
-
2020
- 2020-06-17 US US16/904,039 patent/US11392310B2/en active Active
- 2020-07-30 CN CN202010748382.1A patent/CN112748873A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20210132848A1 (en) | 2021-05-06 |
KR20210051803A (ko) | 2021-05-10 |
US11392310B2 (en) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107025185B (zh) | 数据存储装置及其操作方法 | |
US9104329B2 (en) | Mount-time reconciliation of data availability | |
CN108932107B (zh) | 数据存储装置及其操作方法 | |
KR20150020385A (ko) | 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템 | |
US11544157B2 (en) | Apparatus and method for storing data in an MLC area of a memory system | |
CN110968522B (zh) | 存储器系统及其操作方法、包括存储器系统的数据库系统 | |
US11281574B2 (en) | Apparatus and method for processing different types of data in memory system | |
CN113110799A (zh) | 用于针对损耗均衡操作选择牺牲块的控制器和方法 | |
CN113900586A (zh) | 存储器系统及其操作方法 | |
CN111581121B (zh) | 用于管理存储器系统中的映射数据的方法和设备 | |
CN111755039A (zh) | 在恢复进程期间减少存储器系统中单元干扰的设备及方法 | |
CN112558860A (zh) | 分布和读取数据的存储器系统及其操作方法 | |
KR20200123684A (ko) | 메모리 시스템에서 맵 정보를 전송하는 장치 | |
JP2021533467A (ja) | 論理対物理テーブルフラグメント | |
CN111813328A (zh) | 存储器系统及其操作方法 | |
US11314653B2 (en) | Memory controller | |
US10877853B2 (en) | Data storage device and operation method optimized for recovery performance, and storage system having the same | |
CN109240949B (zh) | 数据存储装置及其操作方法 | |
US20200310968A1 (en) | Apparatus and method for transmitting garbage collection status information in a memory system | |
CN109918315B (zh) | 存储器系统及存储器系统的操作方法 | |
US11392310B2 (en) | Memory system and controller | |
US20220012180A1 (en) | Memory system for meta data management and operating method of memory system | |
US20190361608A1 (en) | Data storage device and operation method for recovery, and storage system having the same | |
US20210342083A1 (en) | Data processing system including plurality of memory systems | |
CN115080457A (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: 20210504 |
|
WW01 | Invention patent application withdrawn after publication |