CN114064345A - 数据存储设备及其操作方法 - Google Patents
数据存储设备及其操作方法 Download PDFInfo
- Publication number
- CN114064345A CN114064345A CN202110237545.4A CN202110237545A CN114064345A CN 114064345 A CN114064345 A CN 114064345A CN 202110237545 A CN202110237545 A CN 202110237545A CN 114064345 A CN114064345 A CN 114064345A
- Authority
- CN
- China
- Prior art keywords
- data
- storage device
- read
- mapping
- host
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
- G06F11/106—Correcting systematically all correctable errors, i.e. scrubbing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据存储设备,该数据存储设备可以包括:存储装置,包括用于存储第一数据的主数据区域和用于存储指示第一数据的属性的第二数据的备用区域;以及控制器,与主机通信并且被配置为基于来自主机的请求来控制存储装置,其中该控制器包括:第一错误检查和校正(ECC)引擎,被配置为对在存储装置的主数据区域中存储的第一数据执行错误校正;以及第二ECC引擎,被配置为对在存储装置的备用区域中存储的第二数据执行错误校正。
Description
相关申请的交叉引用
本专利文件要求于2020年8月7日向韩国知识产权局提交的韩国申请号10-2020-0099250的优先权,其通过引用整体并入本文。
技术领域
本专利文件中公开的技术和实施方式总体涉及一种半导体集成设备,包括数据存储设备及其操作方法。
背景技术
数据存储设备连接到主机以接收来自主机的请求,并且基于来自主机的请求对存储介质执行数据输入/输出操作。数据存储设备可以在控制器的控制下进行操作,该控制器在主机和存储介质之间中继通信。
数据存储设备可以由各种存储介质来实施,各种存储介质可以包括,例如,诸如闪速存储器设备的非易失性存储器设备。
为了访问从主机接收到请求的数据存储设备的存储介质,需要映射数据,该映射数据指示主机使用的逻辑地址和数据存储设备使用的物理地址之间的映射。映射数据可以存储在存储介质中,并且可以在数据存储设备的操作期间至少部分地加载到控制器使用的工作存储器中。
发明内容
在实施例中,一种数据存储设备可以包括:存储装置,包括主数据区域以及备用区域,该主数据区域用于存储第一数据,该备用区域用于存储指示第一数据的属性的第二数据;以及控制器,与主机通信并且被配置为基于来自主机的请求来控制存储装置。该控制器包括:第一错误检查和校正(ECC)引擎,被配置为对在存储装置的主数据区域中存储的第一数据执行错误校正;以及第二ECC引擎,被配置为对在存储装置的备用区域中存储的第二数据进行错误校正。
在实施例中,一种数据存储设备可以包括:存储装置,包括主数据区域和备用区域;以及控制器,与存储装置通信并且被配置为控制该存储装置,其中该控制器与主机通信并且包括:映射数据管理器,被配置为从主机接收写入请求,该写入请求包括待写入存储装置中的写入数据和与数据写入到存储装置中的位置相对应的逻辑地址,生成映射片段,该映射片段包括物理地址和逻辑地址之间的映射信息,并且基于写入数据的属性生成备用数据;第一ECC引擎,被配置为对包括写入数据或映射片段的主数据执行错误校正;第二ECC引擎,被配置为对备用数据执行错误校正;以及处理电路,被配置为将主数据写入主数据区域,并且将备用数据写入备用区域。
在实施例中,一种数据存储设备的操作方法包括:从主机接收请求以从数据存储设备中的存储装置读取或写入数据;以及执行操作以从数据存储设备读取或写入数据,该数据存储设备包括设置为存储第一数据的主数据区域和设置为存储第二数据的备用区域,第二数据基于第一数据的属性而生成,其中执行操作包括使用第一ECC引擎写入或读取第一数据并且使用第二ECC引擎写入或读取第二数据。
附图说明
图1是基于所公开的技术的实施例的数据存储设备的配置图。
图2是基于所公开的技术的实施例的控制器的配置图。
图3是基于所公开的技术的实施例的映射数据管理器的配置图。
图4a和图4b是基于所公开的技术的实施例的映射片段表和索引表的配置图。
图5是用于说明基于所公开的技术的实施例的数据存储设备的操作方法的流程图。
图6是用于说明基于所公开的技术的实施例的数据存储设备的操作方法的流程图。
图7是用于说明基于所公开的技术的实施例的数据存储设备的操作方法的流程图。
图8是基于所公开的技术的实施例的存储装置的配置图。
图9是示出基于所公开的技术的实施例的数据存储系统的示图。
图10和图11是示出基于所公开的技术的实施例的数据处理系统的示图。
图12是示出基于所公开的技术的实施例的包括数据存储装置的网络系统的示图。
图13是示出基于所公开的技术的实施例的数据存储装置中包括的非易失性存储器装置的框图。
具体实施方式
随着存储介质的容量增加,需要大尺寸的存储器以允许与存储介质的容量相对应的映射数据存在于控制器中。已经介绍了部分加载映射数据的方法。然而,当主机请求读取的数据的映射数据不存在于存储器中时,或者当随机读取负荷的比例较大时,重复从存储介质加载映射数据的进程,而重复加载映射数据可能会使操作性能劣化。可以实施所公开的技术以提供一种数据存储设备,该数据存储设备以减少上述劣化的方式处理读取操作或写入操作。
图1是基于所公开的技术的实施例的数据存储设备10的配置图。
参照图1,根据实施例的数据存储设备10可以包括控制器110、存储装置120和缓冲存储器130。
控制器110可以响应于来自主机的请求而控制存储装置120。例如,控制器110可以允许基于来自主机的写入请求来将数据编程到存储装置120。例如,控制器110可以基于主机的读取请求将写入在存储装置120中的数据提供给主机。
存储装置120可以用于基于控制器110的控制来将数据写入存储装置120中或输出存储装置120中存储的数据。存储装置120可以包括易失性或非易失性存储器设备。在实施例中,存储器装置120可以使用包括诸如以下的各种非易失性存储器元件的存储器元件来实施:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)或自旋力矩转移磁性RAM(STT-MRAM)。存储装置120可以包括多个管芯、多个芯片或多个封装。另外,存储装置120可以作为在一个存储器单元中存储一位数据的单层单元或在一个存储器单元中存储多位数据的多层单元进行操作。
在实施例中,存储装置120可以包括多个非易失性存储器设备(NVM)121至12N。非易失性存储器设备(NVM)121至12N中的每一个可以包括主数据区域R1和备用区域R2。主数据区域R1和备用区域R2可以构成一个页面。备用区域R2用于存储关于被编程到主数据区域R1的数据的属性信息。
缓冲存储器130用作当数据存储设备10与主机协作执行诸如写入或读取数据的一系列操作时能够临时存储数据的空间。缓冲存储器130可以设置在控制器110的外部和/或内部。
在实施例中,控制器110可以包括映射数据管理器210、读取/写入处理电路220以及错误检查和校正(ECC)引擎230。
映射数据管理器210可以管理存储装置120的物理存储空间的地址(物理地址)和由主机指派给存储装置120的逻辑地址之间的映射信息。在实施例中,映射数据管理器210可以配置图4a和图4b中所示的映射表和索引表。虽然稍后将基于图4a和图4b讨论更详细的说明,但是映射表包括映射片段,每个片段包括一些条目。每个条目指示一个逻辑地址和一个物理地址之间的映射信息。可以预设每个片段中包括的条目的数量并且可以将一组映射片段作为映射表进行管理。可以将映射表中的每个映射片段的位置作为索引表进行管理。
索引表和映射表可以存储在存储装置120中。当启动数据存储设备10时,索引表可以被加载到控制器110的工作存储器中并被参考。
读取/写入处理电路220可以响应于主机的读取/写入请求而控制ECC引擎230,并且基于由映射数据管理器210生成的映射片段将读取/写入命令传输到存储装置120。
ECC引擎230可以在读取/写入处理电路220的控制下对待写入到存储装置120的数据进行编码或者对从存储装置120读取的数据进行解码。在实施例中,ECC引擎230可以包括第一ECC引擎231和第二ECC引擎233。
可以响应于来自主机的写入请求生成包括映射片段的元数据。包括请求写入的主机数据或元数据的主数据可以存储在主数据区域R1中,并且基于主数据的属性生成的备用数据可以存储在备用区域R2中。主机数据是指主机请求写入或读取的数据。在这种情况下,控制器110可以控制主数据由第一ECC引擎231进行编码并且备用数据由第二ECC引擎233进行编码。在读取操作期间,主数据区域R1的数据由第一ECC引擎231进行解码,备用数据由第二ECC引擎233进行解码。
在某些情况下,由主机请求写入的数据可以具有与待写入的物理区域的地址相关联的特定模式。当请求写入的数据满足预定属性时,映射数据管理器210可以生成备用数据。
在实施例中,当请求写入的数据的物理地址连续时,映射数据管理器210可以为请求写入的数据的第一映射片段设置第一标志,将第一标志存储在索引表中,并且生成基础物理地址作为备用数据,该基础物理地址是第一映射片段中的物理地址的头部值(headvalue)。
在实施例中,当请求写入的数据具有一定的模式时,也就是说,当数据具有基本相同的逻辑值或重复特定的逻辑模式时,映射数据管理器210可以为请求写入的数据的第二映射片段设置第二标志,将第二标志存储在索引表中,并且生成重复的模式和重复的数量作为备用数据。
因此,为了读取被编程到连续物理空间的数据或具有特定模式的数据,将理解的是,对于高速操作有利的是,基于基础物理地址和映射片段大小来配置待在读取操作中使用的映射片段,或者基于重复模式省略相同模式的数据读取进程,而不是读取和解码与该数据相对应的所有映射数据并配置映射片段。
可以选择性地采用第一标志和第二标志中的至少一个,并且可以使用标志中的任何一个或两者来存储基于主数据的属性的备用数据。
在实施例中,第一ECC引擎231可以是使用低密度奇偶校验(LDPC)码的引擎,第二ECC引擎233可以是使用博斯-查德胡里-霍昆格姆(BCH:Bose Chaudhuri Hocquenghem)码的引擎。这些操作仅是示例,并且所公开的技术不限于此。因此,第一ECC引擎231和第二ECC引擎233可以被配置为也操作其他操作,只要第二ECC引擎233与第一ECC引擎231相比以更低的复杂度和更小的计算量来处理用于操作的数据。
图2是根据实施例的控制器110的配置图。
参照图2,根据实施例的控制器110可以包括处理器111、主机接口(IF)113、ROM1151、RAM 1153、存储器接口(IF)117、映射数据管理器210、读取/写入处理电路220和ECC引擎230。
处理器111可以被配置为将存储装置120的数据读取或写入操作所需的各种控制信息传送到主机IF 113、RAM 1153、存储器IF 117、映射数据管理器210、读取/写入处理电路220和ECC引擎230。在实施例中,处理器111可以根据为数据存储设备10的各种操作提供的固件来进行操作。在实施例中,可以以将硬件和由硬件运行的软件进行组合的形式配置处理器111,以便能够执行闪存转换层(FTL)的功能,该功能包括用于与其他组件协作管理存储装置120的各种功能,例如,垃圾收集、地址映射、损耗均衡等。
主机IF 113可以提供通信通道,该通信通道是用于在处理器111的控制下从主机接收命令和时钟信号并且控制主机与数据存储设备10之间的数据输入/输出的物理连接。此外,主机IF 113可以对应于主机的总线格式提供与数据存储设备10接口连接的接口。主机的总线格式可以包括诸如以下的标准接口协议中的至少一种:安全数字、通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、个人计算机存储卡国际协会(PCMCIA)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串行附接的SCSI(SAS)、外围组件互连(PCI)、高速PCI(PCI-E)或通用闪存(UFS)。
ROM 1151可以存储控制器110的操作所需的程序代码,例如,固件或软件,并且存储由程序代码使用的代码数据等。
RAM 1153可以存储控制器110的操作所需的数据或由控制器110生成的数据。
存储器IF 117可以提供用于控制器110和存储装置120之间的信号传输/接收的通信通道。存储器IF 117可以在处理器111的控制下将已临时存储在缓冲存储器130中的数据写入存储装置120。此外,存储器IF 117可以将从存储装置120读取的数据传送到缓冲存储器130,从而临时存储读取的数据。
映射数据管理器210可以将存储装置120的物理存储空间的地址(物理地址)与由主机指派给存储装置120的逻辑地址之间的映射信息作为映射片段进行管理。在实施例中,映射数据管理器210可以响应于来自主机的写入请求而配置映射片段并且对映射表中将要包括的映射片段进行管理。因此,映射数据管理器210可以配置包括映射片段的映射表。由存储器控制器110配置的索引表中可以包括映射表中的每个映射片段的位置。
在实施例中,当请求写入的主机数据的物理地址连续时,映射数据管理器210可以为请求写入的数据的第一映射片段设置第一标志F1,将第一标志F1添加到索引表,并且生成基础物理地址作为备用数据。基础物理地址对应于第一映射片段中的物理地址的头部值,头部值的物理地址是第一映射片段中包括的物理地址之中最小的。在本说明书中稍后将参照图4a和图4b更详细地说明映射表和索引表。
在实施例中,当请求写入的主机数据具有一定的模式时,例如,当主机数据具有基本相同的逻辑值或重复特定的逻辑模式时,映射数据管理器210可以为请求写入的数据的第二映射片段设置第二标志F2,将第二标志F2添加到索引表,并且生成重复模式和重复数量作为备用数据。
索引表可以被配置为包括第一标志F1和第二标志F2中的一个或两者以指示请求写入的主机数据的属性。
读取/写入处理电路220可以响应于主机的读取/写入请求而控制ECC引擎230,并且向存储装置120传输读取或编程命令。
ECC引擎230可以包括对主数据进行编码和解码的第一ECC引擎231以及对备用数据进行编码和解码的第二ECC引擎233。第二ECC引擎233与第一ECC引擎231相比以更低的复杂度和更少的计算量处理用于操作的数据,并且对备用数据进行编码和解码。在实施例中,第一ECC引擎231可以是使用低密度奇偶校验(LDPC)码的引擎,第二ECC引擎233可以是使用博斯-查德胡里-霍昆格姆(BCH:Bose Chaudhuri Hocquenghem)码的引擎。然而,那些操作仅是示例,并且所公开的技术不限于此。
在根据实施例的写入操作期间,读取/写入处理电路220可以控制不同的ECC引擎231和233分别对主数据和基于主数据的属性而生成的备用数据进行编码,并且传输编程命令以对主数据和备用数据进行编程。在实施例中,读取/写入处理电路220可以控制第一ECC引擎231对包括映射片段或主机数据的主数据进行编码,控制第二ECC引擎233对备用数据进行编码,并且将针对已编码的主数据和备用数据的编程命令传输到存储装置120。
在读取操作期间,读取/写入处理电路220可以检查与待读取的数据相对应的映射片段是否已经高速缓存在诸如缓冲存储器130或RAM 1153的工作存储器中。
当尚未高速缓存映射片段时,读取/写入处理电路220可以参考索引表来检查是否已经在请求读取的数据的映射片段中设置了标志。基于已经设置了标志的检查结果,读取/写入处理电路220可以从备用区域R2读取备用数据,并且控制第二ECC引擎233对读取的备用数据进行解码。当在索引表中设置的标志是第一标志F1时,可以从备用区域R2读取基础物理地址。
映射数据管理器210可以基于作为第二ECC引擎233的解码结果而得出的基础物理地址来配置待读取的数据的映射片段。在实施例中,映射数据管理器210可以根据设置的偏移量顺序地增加基础物理地址,并且配置和加载包括指定数量的数据的映射片段。在另一实施例中,映射数据管理器210可以不加载构成映射片段的所有映射数据,并且可以基于基础物理地址和待读取的数据的大小来配置映射片段。在这种情况下,映射数据管理器210可以最小化映射片段的大小。
读取/写入处理电路220可以基于所配置的映射片段来访问存储装置120并且读取主机数据。可以由第一ECC引擎231解码并且输出读取的主机数据。
当在索引表中设置的标志是第二标志F2时,可以从备用区域R2读取重复模式和重复数量并且由第二ECC引擎233对重复模式和重复数量进行解码。读取/写入处理电路220可以基于经解码的重复模式和重复数量来配置和输出主机数据。
当尚未设置标志时,读取/写入处理电路220可以基于在索引表中存储的映射片段的地址来从主数据区域R1读取映射片段,并且控制第一ECC引擎231对所读取的映射片段进行解码。在映射数据管理器210例如通过将映射片段加载到工作存储器中来配置映射片段时,读取/写入处理电路220可以访问由所配置的映射片段指示的存储装置120的区域,并且读取主机数据。可以由第一ECC引擎231解码并且输出所读取的主机数据。
在读取操作期间,当已经高速缓存映射片段时,读取/写入处理电路220可以基于所高速缓存的映射片段从存储装置120读取主机数据,控制第一ECC引擎231对所读取的主机数据进行编码并且输出经编码的主机数据。
图3是根据实施例的映射数据管理器210的配置图。
参照图3,映射数据管理器210可以包括映射表管理组件211、数据属性确定组件213和标志设置组件215。
映射表管理组件211可以通过将单元条目分组到预设单元中来配置映射片段并且将一组映射片段作为映射表来进行管理,该单元条目是请求写入的主机数据的逻辑地址和物理地址之间的映射信息。另外,映射表管理组件211可以将针对映射表中的每个映射片段标识符ID的映射片段存储位置和标志作为索引表进行管理。
映射表管理组件211可以为请求读取的主机数据配置映射片段。在实施例中,映射表管理组件211可以根据是否已经为请求读取的主机数据的映射片段设置标志来配置映射片段。当已经在映射片段中设置第一标志时,映射表管理组件211可以基于在备用区域R2中存储的基础物理地址来配置和加载映射片段。当尚未设置第一标志时,映射表管理组件211可以加载从存储装置120读取的所有映射片段。
数据属性确定组件213可以检查请求写入的数据是否满足预定属性。在实施例中,数据属性确定组件213可以检查请求写入的数据的物理地址是否连续或请求写入的数据是否具有特定模式,并且当请求写入的数据满足预定属性时生成备用数据。
在实施例中,当请求写入的数据的物理地址连续时,数据属性确定组件213可以生成基础物理地址作为备用数据,该基础物理地址是映射片段中的物理地址的头部值。在实施例中,当请求写入的数据具有一定的模式时,也就是说,当数据具有基本相同的逻辑值或重复特定的逻辑模式时,数据属性确定组件213可以生成请求写入的数据的重复模式和重复数量作为备用数据。
标志设置组件215可以基于数据属性确定组件213的检查结果来将第一标志F1和/或第二标志F2存储在索引表中。在实施例中,当请求写入的数据的物理地址连续时,标志设置组件215可以将第一标志F1存储在索引表中,并且当请求写入的数据具有一定的模式时,标志设置组件215可以将第二标志F2存储在索引表中。
图4a和图4b是基于所公开的技术的实施例的映射表和索引表的配置图。
参照图4a,映射表可以包括多个映射片段MS_ID0至MS_ID99。映射片段MS_ID0至MS_ID99中的每一个可以包括分别与多个逻辑地址LBAx相对应的多个物理地址PBAx(x是0至9999之间的自然数)。一个逻辑地址LBAx和一个物理地址PBAx之间的映射信息是条目ETR,并且映射片段MS_ID0至MS_ID99中的每一个可以包括m个条目(m是100)。
参照图4b,索引表可以包括存储映射片段MS_ID0至MS_ID99的存储装置120的地址ADDR,并且基于请求写入到相应的映射片段的数据是否满足预定属性来设置第一标志F1和第二标志F2。
在实施例中,第一标志F1可以与映射片段MS_ID0至MS_ID99中的每一个中包括的物理地址的连续性有关,并且第二标志F2可以与对应于每个条目ETR的数据的重复模式有关。因此,可以为映射片段MS_ID0至MS_ID99中的每一个设置第一标志F1,并且可以为条目ETR中的每一个设置第二标志F2。
图4a和图4b所示的索引表和映射表可以存储在存储装置120中。当启动数据存储设备10时,索引表可以被加载到控制器110的工作存储器中并且被参考。
图5是用于说明基于所公开的技术的实施例的用于写入数据的操作的流程图。该操作可以由图1所示的数据存储设备10执行。
在数据存储设备10正在操作或等待的同时,可以从主机传输包括待写入的主机数据和逻辑地址的写入请求。
控制器110可以基于来自主机的写入请求中包括的逻辑地址来配置映射片段(S101)。
控制器110可以检测请求写入的数据的属性(S103)。
控制器110可以确定在步骤S103中检测到的属性是否满足预定属性(S105)。在实施例中,预定属性可以包括请求写入的数据的物理地址的连续性和请求写入的数据的规律性(regularity)中的至少一个。例如,数据的规律性取决于是否重复特定的逻辑值。
当请求写入的数据的属性满足预定属性时(S105中为“是(Y)”),控制器110可以设置标志,将该标志存储在索引表中,并且生成备用数据(S107)。
在实施例中,当请求写入的数据的物理地址连续时,控制器110可以为请求写入的数据的映射片段设置第一标志F1,将第一标志F1添加到索引表,并且生成基础物理地址作为备用数据。作为备用数据,基础物理地址是映射片段中的物理地址的头部值。
在实施例中,当请求写入的数据具有一定的模式规律性时,控制器110可以为请求写入的数据的映射片段设置第二标志F2,将第二标志F2添加到索引表,并且生成重复模式和重复数量作为备用数据。
控制器110可以控制第一ECC引擎231对包括在步骤S101中生成的映射片段和主机数据的主数据进行编码(S109),并且控制第二ECC引擎233对在步骤S107中生成的备用数据进行编码(S111)。
然后,第一ECC引擎231和第二ECC引擎233可以分别将经编码的主数据和经编码的备用数据传输到存储装置120,并且控制数据以进行编程(S113)。
另一方面,当请求写入的数据的属性不满足预定属性时(S105中为“否(N)”),控制器110可以控制第一ECC引擎231对包括在步骤S101中生成的映射片段和主机数据的主数据进行编码(S115),将经编码的主数据传输到存储装置120,并且控制数据以进行编程(S113)。
图6是用于说明基于所公开的技术的实施例的用于读取数据的操作的流程图。该操作可以由图1所示的数据存储设备10执行并且示出根据是否已经设置第一标志来进行操作的示例。
在数据存储设备10正在操作或等待的同时,可以从主机传输包括待读取的主机数据的逻辑地址的读取请求。
控制器110可以检查与来自主机的读取请求中包括的逻辑地址相对应的映射片段是否已经高速缓存在工作存储器中(S201)。
当尚未高速缓存映射片段时(S201中为“否(N)”),控制器110可以通过参考已经加载在控制器110中的索引表来读取请求读取的数据的映射片段的标志(S203)。
当已经设置第一标志时(F1=SET)(S205中为“是(Y)”),控制器110可以从备用区域R2读取备用数据,例如,基础物理地址(S207),并且控制第二ECC引擎233对备用数据进行解码(S209)。
控制器110可以基于作为第二ECC引擎233的解码结果而得出的基础物理地址来配置待读取的数据的映射片段(S211)。在实施例中,控制器110可以基于设置的偏移量顺序地增加基础物理地址,并且配置和加载包括指定数量的映射数据的映射片段。在另一实施例中,控制器110可以不加载构成映射片段的所有映射数据,并且可以基于基础物理地址和待读取的数据的大小来配置映射片段。
控制器110可以基于所配置的映射片段来访问存储装置120并且读取主机数据(S213)。从存储装置120读取的主机数据可以由第一ECC引擎231进行解码(S215)并且输出(S217)。
当尚未设置第一标志时(F1≠SET)(S205中为“否(N)”),控制器110可以基于在索引表中存储的映射片段的地址从主数据区域R1读取映射片段(S219),并控制第一ECC引擎231对所读取的映射片段进行解码(S221)。因此,当配置了映射片段时(S223),控制器110可以访问由所配置的映射片段指示的存储装置120的区域,并且读取主机数据(S225)。所读取的主机数据可以由第一ECC引擎231进行解码(S227)并且输出(S217)。
当待读取的数据的映射片段已经高速缓存在工作存储器中时(S201中为“是(Y)”),控制器110可以基于所高速缓存的映射片段从存储装置120读取主机数据(S213),并且控制第一ECC引擎231对所读取的主机数据进行解码(S215)并且输出经解码的主机数据(S217)。
图7是用于说明基于所公开的技术的实施例的用于读取数据的操作的流程图。该操作可以由图1所示的数据存储设备10执行,并且示出根据是否已经设置第二标志来进行操作的示例。
在数据存储设备10正在操作或等待的同时,可以从主机传输包括待读取的主机数据的逻辑地址的读取请求。
图7的步骤S301与图6的步骤S201相同。控制器110可以通过参考已经加载在控制器110中的索引表来读取请求读取的数据的映射片段的标志(S303)。
当已经设置第二标志时(F2=SET)(S305中为“是(Y)”),控制器110可以从备用区域R2中读取备用数据,例如,数据的重复模式和重复数量(S307)并且控制第二ECC引擎233对备用数据进行解码(S309)。
控制器110可以基于经解码的重复模式和重复数量来配置主机数据(S311)并且输出主机数据(S313)。
当尚未设置第二标志时(F2≠SET)(S305中为“否(N)”),控制器110可以进行到图6的步骤S219。在另一实施例中,控制器110可以检查与主机的读取请求中包括的逻辑地址相对应的映射片段是否已经高速缓存在工作存储器中。
当已经高速缓存映射片段时,控制器110可以执行图6的步骤S213之后的操作。当待读取的数据的映射片段尚未高速缓存在工作存储器中时,控制器110可以执行图6的步骤S219之后的操作。
在实施例中,控制器110可以通过使用指示物理地址的连续性的第一标志F1和指示数据的可重复性的第二标志F2两者来执行读取操作。在这种情况下,当待读取的数据的映射片段尚未高速缓存在工作存储器中时,控制器110可以进行到图6的步骤S203,以基于是否已设置第一标志来执行读取操作。
图8是根据实施例的存储装置120的配置图。
参照图8,构成存储装置120的非易失性存储器设备(NVM)121至12N可以包括第一区域I1和第二区域I2。
第一区域I1是存储由数据存储设备10的文件系统管理的各种信息的区域,并且可以包括,例如,关于当前分配的文件的数量、有效页面的数量、当前分配的文件和有效页面的位置等的信息。第二区域I2可以是用于存储由用户实际使用的各种目录信息、数据、文件信息等的空间。
在实施例中,第一区域I1可以包括超级块、检查点区域(CPA)、片段信息表(SIT)、节点地址表(NAT)、片段摘要区域(SSA:segment summary area)等。
可以通过区ZONE、区段SECTION、片段SEGMENT和块BLOCK的分层结构来管理第二区域I2。
第一区域I1中的超级块可以存储文件系统的默认信息。
检查点区域(CPA)存储检查点。检查点是当在计算系统的操作期间发生诸如突然断电的系统中断事件时用于存储直至计算系统的逻辑断点之前的计算系统的状态的数据,并且可以使用检查点恢复数据。
片段信息表(SIT)包括关于每个片段中的有效页面的信息。
节点地址表(NAT)可以包括每个节点的标识符和与每个节点标识符相对应的物理地址,节点构成在存储装置120中存储的文件的索引树。
片段摘要区域(SSA)是收集第二区域I2的每个片段的摘要信息的区域。
在实施例中,可以将用于存储诸如主机数据和映射片段的主数据的主数据区域R1分配给第二区域I2,并且可以将用于存储备用数据的备用区域R2选择性地分配给第一区域I1或第二区域I2。
可以用随机写入方法来操作第一区域I1,并且在第二区域I2中,可以使用不同的位置更新方法来顺序地存储数据。因此,在第二区域I2中,可能会经常出现顺序写入和随机读取负荷。
在这样的结构中,当使用如本技术中的映射片段配置方法时,读取顺序地写入的数据所需的大量映射数据可以被高速读取,从而还可以改善随机读取性能。
图9是示出根据实施例的数据存储系统1000的示图。
参照图9,数据存储系统1000可以包括主机装置1100和数据存储装置1200。在实施例中,数据存储装置1200可以被配置为固态驱动器(SSD)。
数据存储装置1200可以包括控制器1210、多个非易失性存储器装置1220-0至1220-n、缓冲存储器装置1230、电源1240、信号连接器1101和电源连接器1103。
控制器1210可以控制数据存储装置1200的一般操作。控制器1210可以包括主机接口单元、控制单元、用作工作存储器的随机存取存储器、错误校正码(ECC)单元和存储器接口单元。在实施例中,控制器1210可以被配置为图1和图2所示的控制器110。
主机装置1100可以通过信号连接器1101与数据存储装置1200交换信号。该信号可以包括命令、地址、数据等等。
控制器1210可以分析并处理从主机装置1100接收的信号。控制器1210可以根据用于驱动数据存储装置1200的固件或软件来控制内部功能块的操作。
缓冲存储器装置1230可以临时存储待存储在非易失性存储器装置1220-0至1220-n中的至少一个中的数据。进一步,缓冲存储器装置1230可以临时存储从非易失性存储器装置1220-0至1220-n中的至少一个读取的数据。可以根据控制器1210的控制将临时存储在缓冲存储器装置1230中的数据传输到主机装置1100或非易失性存储器装置1220-0至1220-n中的至少一个。
非易失性存储器装置1220-0至1220-n可以用作数据存储装置1200的存储介质。非易失性存储器装置1220-0至1220-n可以分别通过多个通道CH0至CHn与控制器1210联接。一个或多个非易失性存储器装置可以联接到一个通道。联接到每个通道的非易失性存储器装置可以联接到相同的信号总线和数据总线。
电源1240可以将通过电源连接器1103输入的电力提供给数据存储装置1200的控制器1210、非易失性存储器装置1220-0至1220-n和缓冲存储器装置1230。电源1240可以包括辅助电源。辅助电源可以提供电力,以允许当发生突然断电时正常终止数据存储装置1200。辅助电源可以包括足够存储所需电荷的大容量电容器。
根据主机装置1100和数据存储装置1200之间的接口方案,信号连接器1101可以被配置为各种类型的连接器中的一个或多个。
根据主机装置1100的电力供应方案,电源连接器1103可以被配置为各种类型的连接器中的一个或多个。
图10是示出根据实施例的数据处理系统3000的示图。参照图10,数据处理系统3000可以包括主机装置3100和存储器系统3200。
主机装置3100可以被配置为板的形式,诸如印刷电路板。尽管未示出,但是主机装置3100可以包括用于执行主机装置的功能的内部功能块。
主机装置3100可以包括连接端子3110,诸如插座、插槽或连接器。存储器系统3200可以与连接端子3110配合。
存储器系统3200可以被配置为板的形式,诸如印刷电路板。存储器系统3200可以被称为存储器模块或存储卡。存储器系统3200可以包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231和3232、电源管理集成电路(PMIC)3240以及连接端子3250。
控制器3210可以控制存储器系统3200的一般操作。可以以与图1和图2所示的控制器110相同的方式配置控制器3210。
缓冲存储器装置3220可以临时存储待存储在非易失性存储器装置3231和3232中的数据。此外,缓冲存储器装置3220可以临时存储从非易失性存储器装置3231和3232读取的数据。根据控制器3210的控制,可以将在缓冲存储器装置3220中临时存储的数据传输到主机装置3100或非易失性存储器装置3231和3232。
非易失性存储器装置3231和3232可以用作存储器系统3200的存储介质。
PMIC 3240可以将通过连接端子3250输入的电力提供到存储器系统3200的内部。PMIC 3240可以根据控制器3210的控制来管理存储器系统3200的电力。
连接端子3250可以联接到主机装置3100的连接端子3110。通过连接端子3250,诸如命令、地址、数据等的信号以及电力可以在主机装置3100和存储器系统3200之间传送。根据主机装置3100与存储器系统3200之间的接口方案,连接端子3250可以被配置为各种类型中的一种或多种。如图所示,连接端子3250可以设置在存储器系统3200的一侧。
图11是示出根据实施例的数据处理系统4000的示图。参照图11,数据处理系统4000可以包括主机装置4100和存储器系统4200。
主机装置4100可以被配置为板的形式,诸如印刷电路板。尽管未示出,但是主机装置4100可以包括用于执行主机装置的功能的内部功能块。
可以以表面安装型封装的形式配置存储器系统4200。可以通过焊球4250将存储器系统4200安装到主机装置4100。存储器系统4200可以包括控制器4210、缓冲存储器装置4220和非易失性存储器装置4230。
控制器4210可以控制存储器系统4200的一般操作。可以以与图1和图2所示的控制器110相同的方式配置控制器4210。
缓冲存储器装置4220可以临时存储待存储在非易失性存储器装置4230中的数据。此外,缓冲存储器装置4220可以临时存储从非易失性存储器装置4230读取的数据。根据控制器4210的控制可以将在缓冲存储器装置4220中临时存储的数据传输到主机装置4100或非易失性存储器装置4230。
非易失性存储器装置4230可以用作存储器系统4200的存储介质。
图12是示出根据实施例的包括数据存储装置的网络系统5000的示图。参照图12,网络系统5000可以包括通过网络5500联接的服务器系统5300和多个客户端系统5410、5420和5430。
服务器系统5300可以响应于来自多个客户端系统5410至5430的请求来服务数据。例如,服务器系统5300可以存储由多个客户端系统5410至5430提供的数据。再例如,服务器系统5300可以向多个客户端系统5410至5430提供数据。
服务器系统5300可以包括主机装置5100和存储器系统5200。存储器系统5200可以被配置为图1所示的数据存储设备10、图9所示的数据存储装置1200、图10所示的存储器系统3200或图11所示的存储器系统4200。
图13是示出根据实施例的诸如数据存储设备10的数据存储装置中包括的非易失性存储器装置300的框图。参照图13,非易失性存储器装置300可以包括存储器单元阵列310、行解码器320、数据读取/写入块330、列解码器340、电压生成器350和控制逻辑360。
存储器单元阵列310可以包括布置在字线WL1至WLm和位线BL1至BLn彼此相交的区域处的存储器单元MC。
存储器单元阵列310可以包括三维存储器阵列。例如,三维存储器阵列在垂直于半导体衬底的平坦表面的方向上具有堆叠结构。此外,三维存储器阵列是指包括NAND串的结构,NAND串中包括的存储器单元垂直于半导体衬底的平坦表面堆叠。
三维存储器阵列的结构不限于上述指出的实施例。可以以具有水平方向性和垂直方向性的高度集成的方式形成存储器阵列结构。在实施例中,在三维存储器阵列的NAND串中,存储器单元相对于半导体衬底的表面在水平和垂直方向上布置。存储器单元可以以各种方式间隔开以提供不同的集成度。
行解码器320可以通过字线WL1至WLm与存储器单元阵列310联接。行解码器320可以根据控制逻辑360的控制进行操作。行解码器320可以对由外部装置(未示出)提供的地址进行解码。行解码器320可以基于解码结果来选择并且驱动字线WL1至WLm。例如,行解码器320可以将由电压生成器350提供的字线电压提供给字线WL1至WLm。
数据读取/写入块330可以通过位线BL1至BLn与存储器单元阵列310联接。数据读取/写入块330可以分别包括与位线BL1至BLn相对应的读取/写入电路RW1至RWn。数据读取/写入块330可以根据控制逻辑360的控制来进行操作。根据操作模式,数据读取/写入块330可以作为写入驱动器或读出放大器进行操作。例如,数据读取/写入块330可以作为写入驱动器进行操作,写入驱动器在写入操作中将由外部装置提供的数据存储在存储器单元阵列310中。再例如,数据读取/写入块330可以作为读出放大器进行操作,读出放大器在读取操作中从存储器单元阵列310读出数据。
列解码器340可以根据控制逻辑360的控制来进行操作。列解码器340可以对由外部装置提供的地址进行解码。列解码器340可以基于解码结果,将分别对应于位线BL1至BLn的数据读取/写入块330的读取/写入电路RW1至RWn与数据输入/输出线或数据输入/输出缓冲器联接。
电压生成器350可以生成待在非易失性存储器装置300的内部操作中使用的电压。可以将由电压生成器350生成的电压施加到存储器单元阵列310的存储器单元。例如,可以将在编程操作中生成的编程电压施加到待对其执行编程操作的存储器单元的字线。再例如,可以将在擦除操作中生成的擦除电压施加到待对其执行擦除操作的存储器单元的阱区。又例如,可以将在读取操作中生成的读取电压施加到待对其执行读取操作的存储器单元的字线。
基于由外部装置提供的控制信号,控制逻辑360可以控制非易失性存储器装置300的一般操作。例如,控制逻辑360可以控制非易失性存储器装置300的操作,诸如非易失性存储器装置300的读取操作、写入操作和擦除操作。
上述实施例旨在说明而非限制本公开。可以基于本专利文件中描述和说明的内容对所公开的实施例和其他实施例进行改变和优化。
Claims (22)
1.一种数据存储设备,包括:
存储装置,包括主数据区域和备用区域,所述主数据区域存储第一数据,所述备用区域存储指示所述第一数据的属性的第二数据;以及
控制器,与主机通信并且基于来自所述主机的请求来控制所述存储装置,
其中所述控制器包括:
第一错误检查和校正引擎即第一ECC引擎,对在所述存储装置的所述主数据区域中存储的所述第一数据执行错误校正;以及
第二ECC引擎,对在所述存储装置的所述备用区域中存储的所述第二数据执行错误校正。
2.根据权利要求1所述的数据存储设备,其中与所述第一ECC引擎处理所述第一数据相比,所述第二ECC引擎以更低的复杂度和更少的计算量来处理所述第二数据。
3.根据权利要求1所述的数据存储设备,其中所控制器进一步包括:
映射数据管理器:从所述主机接收写入请求,所述写入请求包括待写入所述存储装置中的写入数据以及与所述写入数据写入到所述存储装置中的位置相对应的逻辑地址,所述映射数据管理器生成映射片段,所述映射片段包括物理地址与所述逻辑地址之间的映射信息,所述映射数据管理器向所述第一ECC引擎提供包括所述写入数据或所述映射片段的所述第一数据,并且向所述第二ECC引擎提供基于所述写入数据或所述映射片段的属性生成的所述第二数据。
4.根据权利要求3所述的数据存储设备,其中所述控制器进一步:当所述写入数据的所述物理地址连续时,在用于管理所述映射片段的存储位置的索引表中为所述映射片段设置第一标志,并且生成所述第二数据,所述第二数据包括在所述映射片段中的所述物理地址之中具有最小值的基础物理地址。
5.根据权利要求4所述的数据存储设备,其中所述控制器进一步:从所述主机接收包括逻辑地址的读取请求,所述逻辑地址与读取数据在所述存储装置中被读取的位置相对应,并且当尚未高速缓存与所述读取数据的所述逻辑地址相对应的映射片段并且已经在所述索引表中设置所述第一标志时,基于从所述备用区域读取的所述基础物理地址来配置映射片段。
6.根据权利要求5所述的数据存储设备,其中所述控制器进一步将基于所配置的映射片段从所述主数据区域读取的所述读取数据输出到所述主机。
7.根据权利要求3所述的数据存储设备,其中所述控制器进一步:当所述写入数据具有重复的特定模式时,在用于管理所述映射片段的存储位置的索引表中为所述映射片段设置第二标志,并且生成所述第二数据,所述第二数据包括所述特定模式和所述写入数据中的所述特定模式的重复数量。
8.根据权利要求7所述的数据存储设备,其中所述控制器进一步:从所述主机接收包括逻辑地址的读取请求,所述逻辑地址与读取数据在所述存储装置中被读取的位置相对应,其中所述控制器进一步:当尚未高速缓存与所述读取数据的所述逻辑地址相对应的映射片段并且已经在所述索引表中设置所述第二标志时,基于从所述备用区域读取的所述特定模式和所述重复数量,将所述读取数据输出到所述主机。
9.根据权利要求1所述的数据存储设备,其中所述存储装置被划分为包括第一区域和第二区域的区域,文件系统的管理信息存储在所述第一区域,数据由于所述主机请求的操作而写入所述第二区域,并且
所述主数据区域被分配给所述第二区域并且所述备用区域被分配给所述第一区域或所述第二区域。
10.一种数据存储设备包括:
存储装置,包括主数据区域和备用区域;以及
控制器,与所述存储装置通信并且控制所述存储装置,
其中所述控制器与主机通信并且包括:
映射数据管理器:1)从所述主机接收写入请求,所述写入请求包括待写入所述存储装置中的写入数据以及与所述写入数据写入到所述存储装置中的位置相对应的逻辑地址,2)生成映射片段,所述映射片段包括物理地址和所述逻辑地址之间的映射信息,并且3)基于所述写入数据的属性生成备用数据;
第一ECC引擎,对包括所述写入数据或所述映射片段的主数据执行错误校正;
第二ECC引擎,对所述备用数据执行错误校正;以及
处理电路,将所述主数据写入所述主数据区域,并且将所述备用数据写入所述备用区域。
11.根据权利要求10所述的数据存储设备,其中所述映射数据管理器进一步:当所述写入数据的物理地址连续时,在用于管理所述映射片段的存储位置的索引表中为所述映射片段设置第一标志,并且生成所述备用数据,所述备用数据包括在所述映射片段中的所述物理地址之中具有最小值的基础物理地址。
12.根据权利要求11所述的数据存储设备,其中所述映射数据管理器进一步:从所述主机接收包括逻辑地址的读取请求,所述逻辑地址与读取数据在所述存储装置中被读取的位置相对应,并且当尚未高速缓存与所述读取数据的所述逻辑地址相对应的映射片段并且已经在所述索引表中设置所述第一标志时,基于从所述备用区域读取的所述基础物理地址来配置映射片段。
13.根据权利要求10所述的数据存储设备,其中所述映射数据管理器进一步:当所述写入数据具有重复的特定模式时,在用于管理所述映射片段的存储位置的索引表中为所述映射片段设置第二标志,并且生成所述备用数据,所述备用数据包括所述特定模式和所述写入数据中的所述特定模式的重复数量。
14.根据权利要求13所述的数据存储设备,其中所述映射数据管理器:从所述主机接收包括逻辑地址的读取请求,所述逻辑地址与读取数据在所述存储装置中被读取的位置相对应,其中所述控制器进一步:当尚未高速缓存与所述逻辑地址相对应的映射片段并且已经在所述索引表中设置所述第二标志时,基于从所述备用区域读取的所述特定模式和所述重复数量,将所述读取数据输出到所述主机。
15.一种数据存储设备的操作方法,包括:
从主机接收请求以从所述数据存储设备中的存储装置读取或写入数据;以及
执行操作以从所述数据存储设备读取或写入数据,所述数据存储设备包括设置为存储第一数据的主数据区域和设置为存储第二数据的备用区域,所述第二数据基于所述第一数据的属性而生成,
其中执行所述操作包括使用第一ECC引擎写入或读取所述第一数据并且使用第二ECC引擎写入或读取所述第二数据。
16.根据权利要求15所述的操作方法,其中与所述第一ECC引擎处理所述第一数据相比,所述第二ECC引擎以更低的复杂度和更少的计算量来处理所述第二数据。
17.根据权利要求15所述的操作方法,其中从所述主机连同逻辑地址一起接收将所述数据写入所述存储装置中的所述请求,所述逻辑地址与所述数据写入所述存储装置中的位置相对应,并且,
其中执行所述操作包括:
生成包括物理地址和所述逻辑地址之间的映射信息的映射片段;
向所述第一ECC引擎提供包括所述数据或所述映射片段的所述第一数据;并且
当所述数据满足预定属性时,生成所述第二数据并且向所述第二ECC引擎提供所述第二数据。
18.根据权利要求17所述的操作方法,进一步包括:
当请求写入的所述数据的所述物理地址连续时,在用于管理所述映射片段的存储位置的索引表中为所述映射片段设置第一标志;并且
生成所述第二数据,所述第二数据包括在所述映射片段中的所述物理地址之中具有最小值的基础物理地址。
19.根据权利要求18所述的操作方法,其中从所述主机连同逻辑地址一起接收从所述存储装置读取数据的所述请求,所述逻辑地址与所述数据在所述存储装置中被读取的位置相对应,其中执行所述操作包括:
当尚未高速缓存与所述逻辑地址相对应的映射片段并且已经在所述索引表中设置所述第一标志时,基于从所述备用区域读取的所述基础物理地址来配置映射片段。
20.根据权利要求19所述的操作方法,进一步包括:
基于所配置的映射片段从所述主数据区域读取所述数据,并且将所述数据输出到所述主机。
21.根据权利要求17所述的操作方法,进一步包括:
当请求写入的所述数据具有重复的特定模式时,在用于管理所述映射片段的存储位置的索引表中为所述映射片段设置第二标志;并且
生成包括所述特定模式和重复数量的所述第二数据。
22.根据权利要求21所述的操作方法,其中从所述主机连同逻辑地址一起接收从所述存储装置读取数据的所述请求,所述逻辑地址与所述数据在所述存储装置中被读取的位置相对应,其中执行所述操作包括:
当尚未高速缓存与所述逻辑地址相对应的映射片段并且已经在所述索引表中设置所述第二标志时,从所述备用区域读取所述数据的所述特定模式和所述重复数量以配置所述数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200099250A KR20220018757A (ko) | 2020-08-07 | 2020-08-07 | 데이터 저장 장치 및 동작 방법 |
KR10-2020-0099250 | 2020-08-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114064345A true CN114064345A (zh) | 2022-02-18 |
Family
ID=80115085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110237545.4A Withdrawn CN114064345A (zh) | 2020-08-07 | 2021-03-04 | 数据存储设备及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11422892B2 (zh) |
KR (1) | KR20220018757A (zh) |
CN (1) | CN114064345A (zh) |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533564B2 (en) | 2009-12-23 | 2013-09-10 | Sandisk Technologies Inc. | System and method of error correction of control data at a memory device |
KR20160056380A (ko) * | 2014-11-10 | 2016-05-20 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR102447471B1 (ko) | 2015-06-24 | 2022-09-27 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 스토리지 장치 |
KR102547713B1 (ko) * | 2016-09-01 | 2023-06-26 | 삼성전자주식회사 | 반도체 메모리 장치 및 이의 동작 방법 |
KR102388803B1 (ko) * | 2017-11-02 | 2022-04-20 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법 |
KR20190087217A (ko) | 2018-01-16 | 2019-07-24 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102432551B1 (ko) * | 2018-02-13 | 2022-08-16 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법 |
KR20200034420A (ko) * | 2018-09-21 | 2020-03-31 | 삼성전자주식회사 | 복수의 에러 정정 기능을 갖는 메모리 장치 및 메모리 시스템과 그 동작 방법 |
KR102579014B1 (ko) * | 2018-11-06 | 2023-09-15 | 삼성전자주식회사 | 에러 정정 코드 디코더, 반도체 메모리 장치 및 메모리 시스템 |
KR102599188B1 (ko) * | 2018-11-09 | 2023-11-08 | 삼성전자주식회사 | 호스트 메모리를 사용하는 스토리지 장치 및 그것의 동작 방법 |
KR20200074467A (ko) * | 2018-12-17 | 2020-06-25 | 삼성전자주식회사 | 에러 정정 코드 회로, 반도체 메모리 장치 및 메모리 시스템 |
KR102687192B1 (ko) * | 2019-02-18 | 2024-07-19 | 삼성전자주식회사 | 메모리 장치 및 시스템 |
KR20210026201A (ko) * | 2019-08-29 | 2021-03-10 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 리페어 제어 방법 |
KR20210089016A (ko) * | 2020-01-07 | 2021-07-15 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 시스템 |
-
2020
- 2020-08-07 KR KR1020200099250A patent/KR20220018757A/ko not_active Application Discontinuation
-
2021
- 2021-01-14 US US17/149,314 patent/US11422892B2/en active Active
- 2021-03-04 CN CN202110237545.4A patent/CN114064345A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US11422892B2 (en) | 2022-08-23 |
US20220043710A1 (en) | 2022-02-10 |
KR20220018757A (ko) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110874188B (zh) | 数据存储装置、其操作方法以及具有其的存储系统 | |
CN110083545B (zh) | 数据存储装置及其操作方法 | |
US11487669B2 (en) | Memory system for storing data of log-structured merge tree structure and data processing system including the same | |
CN111124273B (zh) | 数据存储装置及数据存储装置的操作方法 | |
US20220138096A1 (en) | Memory system | |
CN111752852A (zh) | 数据存储装置及数据存储装置的操作方法 | |
CN111414311B (zh) | 数据存储装置、其操作方法及其控制器 | |
CN113220216A (zh) | 数据存储设备及其操作方法 | |
CN113741798A (zh) | 数据存储装置及其操作方法 | |
US20200081649A1 (en) | Data storage device, operation method thereof and storage system including the same | |
US10691352B2 (en) | Data storage device and method of operating the same | |
US20210397378A1 (en) | Storage device and operating method thereof | |
CN114764396A (zh) | 数据存储装置及其操作方法 | |
CN112328516A (zh) | 控制器、控制器的操作方法以及包括控制器的存储装置 | |
CN115794535A (zh) | 事件日志管理方法、控制器和存储装置 | |
CN109840214B (zh) | 数据存储装置及其操作方法 | |
CN110442302B (zh) | 存储器系统及用于操作存储器系统的方法 | |
US11422892B2 (en) | Data storage apparatus and operating method thereof | |
CN113805793A (zh) | 存储装置及其操作方法 | |
CN113010092A (zh) | 数据存储设备及其操作方法 | |
CN112231240A (zh) | 控制器、存储器系统及其操作方法 | |
CN112084118A (zh) | 数据存储装置及其操作方法 | |
US11847332B2 (en) | Data storage apparatus and operating method thereof | |
US11379362B2 (en) | Memory system and operating method thereof | |
US11593006B2 (en) | Data storage apparatus and method for managing valid data based on bitmap table |
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: 20220218 |