CN110347530B - 数据存储装置及其操作方法 - Google Patents
数据存储装置及其操作方法 Download PDFInfo
- Publication number
- CN110347530B CN110347530B CN201811427742.7A CN201811427742A CN110347530B CN 110347530 B CN110347530 B CN 110347530B CN 201811427742 A CN201811427742 A CN 201811427742A CN 110347530 B CN110347530 B CN 110347530B
- Authority
- CN
- China
- Prior art keywords
- decoding
- page
- data
- system data
- user
- 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.)
- Active
Links
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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/27—Built-in tests
-
- 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/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/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/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
- 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
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种数据存储装置,该数据存储装置包括非易失性存储器装置和控制非易失性存储器装置的控制器。当数据存储装置在突然断电(SPO)之后被供电时,控制器通过扫描而不解码非易失性存储器装置的第一系统数据块来检测擦除页面,对擦除页面之前的第一系统页面的第一系统数据执行简单解码,并且如果简单解码失败,则通过从第二系统数据块的对应的第二系统页面读出第二系统数据来恢复简单解码失败的第一系统数据,第二系统数据块是第一系统数据块的副本块。
Description
相关申请的交叉参考
本申请要求于2018年4月6日提交到韩国知识产权局的申请号为10-2018-0040226的韩国申请的优先权,其全部内容通过引用而并入本文。
技术领域
各个实施例总体涉及一种半导体装置,更具体地,涉及一种数据存储装置及其操作方法。
背景技术
近来,计算机环境的范例可以转变至能够随时随地利用计算机系统的普适计算环境。由于该事实,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用快速增长。通常,这种便携式电子装置使用利用存储器装置的数据存储装置。数据存储装置被用于存储在便携式电子装置中使用的数据。
由于不存在机械驱动件,因此利用存储器装置的数据存储装置提供以下优点:稳定性和耐久性极好,信息访问速度较高且功耗较少。具有这种优点的数据存储装置包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、通用闪速存储(UFS)装置、固态硬盘(SSD)。
发明内容
各个实施例针对数据存储装置及其操作方法,该数据存储装置能够缩短突然断电(SPO)之后执行的恢复的时间,并且将读取干扰最小化。
在实施例中,数据存储装置包括非易失性存储器装置和控制非易失性存储器装置的控制器。当数据存储装置在突然断电(SPO)之后被供电时,控制器通过扫描而不解码非易失性存储器装置的第一系统数据块来检测擦除页面,对擦除页面之前的第一系统页面的第一系统数据执行简单解码,如果简单解码失败,则通过从第二系统数据块中的对应的第二系统页面读出第二系统数据来恢复第一系统数据,第二系统数据块是第一系统数据块的副本块。
在实施例中,用于操作数据存储装置的方法可以包括:当突然断电(SPO)之后通电数据存储装置时,通过扫描而不解码非易失性存储器装置的第一系统数据块来检测第一擦除页面;对第一擦除页面之前的第一系统页面中存储的第一系统数据执行简单解码;确定简单解码是否失败;并且如果确定简单解码失败,则通过从第二系统数据块中的对应的第二系统页面读出第二系统数据来恢复简单解码失败所针对的第一系统数据,其中该第二系统数据块是该第一系统数据块的副本块。
在实施例中,一种数据存储装置包括存储器装置和控制器,该存储器装置包括第一系统数据块和第二系统数据块,该控制器适用于:控制存储器装置将原始的系统数据存储在第一系统数据块中,并在第二系统数据块中复制系统数据;通过扫描而不解码第一系统数据块来检测擦除页面;读取并执行第一系统数据的简单解码,该第一系统数据存储在第一系统数据块中的擦除页面之前的至少一个第一数据页面中;如果第一系统数据的简单解码失败,则从第二系统数据块中的第二数据页面读取第二系统数据,该第二系统数据是第一系统数据的副本数据;以及使用第二系统数据恢复第一系统数据。
根据实施例,在SPO之后执行的恢复操作中,跳过对为查找第一擦除页面的读取操作而读出的读取数据的解码,而对存在副本数据的系统数据或者由SPO中断编程的数据执行解码,直到仅进行至硬判决解码。因而,由于不执行不必要的解码,可以缩短恢复操作所需的时间。
此外,由于不执行不必要的解码,因此可以防止恢复目标存储块的读取计数显著增加,由此可以防止大量数据受到读取干扰的损坏。
附图说明
图1是示出根据实施例的数据存储装置的示图。
图2A是示出包括在非易失性存储器装置的系统区域中的系统数据块的示例的示图。
图2B是示出包括在非易失性存储器装置的用户区域中的开放块的示例的示图。
图3是示出根据实施例的错误校正码(ECC)电路的示图。
图4是示出根据实施例的数据存储装置的操作方法的流程图。
图5是示出根据实施例的数据存储装置的操作方法的流程图。
图6A是示出根据实施例的搜索擦除页面的进程的示图。
图6B是示出根据实施例的解码系统数据的示图。
图6C是示出根据实施例的解码用户数据的示图。
图7是示出根据本公开的实施例的包括固态硬盘(SSD)的数据处理系统的示图。
图8是示出根据本公开的实施例的控制器的示图。
图9是示出根据本公开的实施例的包括数据存储装置的数据处理系统的示图。
图10是示出根据本公开的实施例的包括数据存储装置的数据处理系统的示图。
图11是示出根据本公开的实施例的包括数据存储装置的网络系统的示图。
图12是示出根据本公开的实施例的数据存储装置中包括的非易失性存储装置的框图。
具体实施方式
以下将通过各个实施例并参考附图来描述数据存储装置及其操作方法。应该注意,在说明书中,参考“实施例”等并不是必然仅参考一个实施例,不同地参考任意这种用语并不必然参考相同的实施例。
图1是示出根据实施例的数据存储装置10的示图。
参考图1,数据存储装置10可以存储由诸如移动电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)或车载信息娱乐系统的主机装置(未示出)访问的数据。数据存储装置10可以被称为存储器系统。
根据限定与主机装置的通信的接口的协议,数据存储装置10可以被制造成或者配置成各种类型的存储装置中的任何一种。例如,数据存储装置10可以被配置为固态硬盘、多媒体卡(例如MMC、eMMC、RS-MMC和微型MMC)、安全数字卡(例如SD、迷你SD和微型SD)、通用串行总线(USB)存储装置、通用闪存(UFS)装置、个人计算机存储卡国际协会(PCMCIA)卡式存储装置、外围组件互连(PCI)卡式存储装置、高速PCI(PCI-e或者PCIe)卡式存储装置、紧凑型闪存(CF)卡、智能媒体卡和记忆棒中的任何一种。
数据存储装置10可以被制造为各种类型的封装中的任何一种。例如,数据存储装置10可以被制造成封装叠层(POP)、系统封装(SIP),片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
数据存储装置10可以包括非易失性存储器装置100和控制器200。
非易失性存储器装置100可以作为数据存储装置10的存储介质操作。根据存储器单元,非易失性存储器装置100可以由诸如NAND闪存装置、NOR闪存装置、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧道磁阻(TMR)膜的磁性随机存取存储器(MRAM)、使用硫属化物合金的相变随机存取存储器(PRAM)、和使用过渡金属化合物的电阻随机存取存储器(ReRAM或者RRAM)的各种类型的非易失性存储器装置中的任何一种来实现。
图1示出数据存储装置10包括一个非易失性存储器装置100,这仅仅是示例,数据存储装置10可以包括多个非易失性存储器装置。另外,本发明的方面可以相同的方式应用到包括多个非易失性存储器装置的数据存储装置。
非易失性存储装置100可以包括存储器单元阵列(未示出),该存储器单元阵列具有布置在多个位线(未示出)和多个字线(未示出)相互交叉的区域上的多个存储器单元。存储器单元阵列可以多个存储块,并且多个存储块中的每一个可以包括多个页面。
例如,存储器单元阵列的每个存储器单元可以是能够存储一位的单层单元(SLC)、能够存储2位数据的多层单元(MLC)、能够存储3位数据的三层单元(TLC)、或能够存储4位数据的四层单元(QLC)。存储器单元阵列可以包括单层单元、多层单元、三层单元和/或四层单元。例如,存储器单元阵列可以包括二维水平结构的存储器单元或三维垂直结构的存储器单元。
图2A是示出系统区域例如图1的非易失性存储器装置100的系统区域中包括的系统数据块的示图,图2B是示出用户区域例如非易失性存储器装置100的用户区域中包括的开放块的示图。
参照图2A,非易失性存储装置100可以包括系统区域和用户区域。在系统区域中,可以存储非易失性存储器装置100的操作所需的各种系统数据。作为驱动固件所需的数据的系统数据可以包括各种数据,例如非易失性存储装置100的映射表和初始化信息、操作定时信息,坏块信息、修复信息和操作状态信息。系统数据可以重复地存储在为损坏而准备的两个块中。也就是说,如图2A所示,非易失性存储器装置100的系统区域可以包括第一系统数据块和第二系统数据块,每个系统数据块存储相同的系统数据。
存储在第一系统数据块的各个页面中的系统数据存储在第二系统数据块的相同页面中。第一系统数据块可以被称为原始系统数据块,第二系统数据块可以被称为副本系统数据块。
参照图2B,非易失性存储器装置100的用户区域可包括多个用户数据块,在用户数据块中存储从主机装置接收的写入数据。处理器220在多个用户数据块中选择一个块,并控制非易失性存储器装置100以将从主机装置接收的写入数据存储在相应的块中。由处理器220选择并且正在使用的用户数据块被称为开放块。
再次参照图1,控制器200可以通过执行加载在存储器230中的固件或软件来控制数据存储装置10的一般操作。控制器200可以解码和驱动代码型指令或算法,例如固件或软件。控制器200可以以硬件的形式或以硬件和软件的组合的形式来实现。
控制器200可以包括主机接口210、处理器220、存储器230、错误校正码(ECC)电路240和存储器接口250。
主机接口210可以对应于主机装置的协议接口连接主机装置和数据存储装置10。例如,主机接口210可以通过通用串行总线(USB)、通用闪存(UFS)、多媒体卡(MMC)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串行附件SCSI(SAS)、外围组件互连(PCI)和高速PCI(PCI-e或PCIe)协议中的任何一种与主机装置进行通信。
处理器220可以由微控制单元(MCU)或中央处理单元(CPU)实现。处理器220可以处理从主机装置接收的请求。为了处理这样的接收请求,处理器220可以驱动加载在存储器230中的代码型指令或算法,即固件,并且可以控制内部功能块,例如主机接口210、存储器230、ECC电路240和存储器接口250以及非易失性存储器装置100。
处理器220可以基于从主机装置接收的请求生成用于控制非易失性存储装置100的操作的控制信号,并且可以将所生成的控制信号提供给存储器接口250。
处理器220可以在突然断电(SPO)之后执行数据存储装置10的恢复操作。恢复操作可以是被执行以允许数据存储装置10处于能够执行响应于来自主机的操作(例如,读取操作或写入操作)的状态的操作(例如,读取请求或写入请求)。例如,恢复操作可以包括将引导加载程序从数据存储装置10的只读存储器(ROM)(未示出)加载到存储器230的操作、通过利用引导加载程序将代码型指令从非易失性存储装置100加载到存储器230而执行启动的操作、从非易失性存储装置100读取系统数据并将系统数据加载到存储器230中的操作、以及基于系统数据通过找到在SPO发生时使用的开放块而搜索第一擦除页面,并且恢复在第一个擦除页面之前的页面中写入的数据的操作。
处理器220可以控制ECC电路240在执行特定操作时跳过解码。例如,特定操作包括在恢复操作中要执行的操作中搜索第一擦除页面的操作。处理器220可以控制ECC电路240跳过为找到第一擦除页面的读取操作(被称为“第一读取操作”)所读出的数据的解码操作。
处理器220可以控制ECC电路240对通过针对系统数据的读取操作(称为“第二读取操作”)读出的系统数据执行简单解码。处理器220可以控制ECC电路240对由针对页面的读取操作(称为“第三读取操作”)读出的用户数据执行简单解码,其中该页面被假定是由SPO引起的编程中断的页面。简单解码可以意味着顺序地执行正常解码和硬判决解码。
处理器220可以控制ECC电路240对由针对被写在第一擦除页面之前的页面中的用户数据的读取操作(称为“第四读取操作”)读出的用户数据进行完全解码。完全解码可以意味着顺序地执行正常解码、硬判决解码和软判决解码。
存储器230可以由诸如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)的随机存取存储器实现。存储器230可以存储将由处理器220驱动的固件。此外,存储器230可以存储驱动固件所需的数据,例如,元数据。即,存储器230可以用作处理器220的工作存储器。
存储器230可以被配置为临时存储将从主机装置发送到非易失性存储器装置100的编程数据,或者读取将从非易失性存储器装置100发送到主机装置的数据。换句话说,存储器230可以用作缓冲存储器。
ECC电路240可以被配置为校正从非易失性存储器装置100读出的读取数据中包括的错误。ECC电路240可以通过根据错误校正码解码读取数据来校正错误。例如,错误校正码可以包括各种方案的错误校正码,例如Bose、Chaudhri、Hocquenghem(BCH)码,ReedSolomon(RS)码,Reed-Muller码,汉明码,卷积码和低密度奇偶校验码(LDPC)。同样可以使用任何其他合适的错误校正码。
图3是示出根据实施例的错误校正码(ECC)电路例如图1的ECC电路240的示图。ECC电路240可以包括硬判决解码器241和软判决解码器243。虽然图3仅示出ECC电路240包括硬判决解码器241和软判决解码器243,ECC电路240还可包括用于执行编码操作的编码器、用于输入/输出数据的输入/输出电路(例如编码数据或者解码数据)、用于执行ECC电路240的一般操作的控制电路,以及其他相关组件。
硬判决解码器241可以被配置为根据硬判决算法校正从非易失性存储器装置100读出的第二至第四读取数据中包括的错误。软判决解码器243可以被配置为根据软判决算法,校正通过基于软判决读取电压的多个读取操作从非易失性存储器装置100读出的多个第四数据中包括的错误。由于硬判决解码和软判决解码对应于本领域中已知的技术,因此这里省略对这种解码的详细描述。
根据处理器220的控制,ECC电路240可以通过跳过解码将特定读取数据(即,由第一读取操作读出的读取数据)提供给处理器220。通过第一读取操作读取的读取数据可以包括与数据相关联的数据和奇偶校验信息。ECC电路240可以通过从读取数据中排除奇偶校验信息而仅向处理器220提供数据。图1的处理器220可以基于从ECC电路240提供的数据,确定相应页面是否是擦除页面。换句话说,不管在第一读取操作读出的读取数据中是否存在错误,处理器220可以根据相应的读取数据确定相应的页面是擦除页面或编程页面。当相应的读取数据具有擦除状态的值时,处理器220可以确定相应的页面是擦除页面。当相应的读取数据具有编程状态的值时,处理器220可以确定相应的页面是编程页面。
ECC电路240可以根据处理器220的控制对第一系统数据和第一用户数据顺序执行正常解码和硬判决解码的简单解码。可以通过第二次读取操作从第一系统数据块读出第一系统数据。可以通过第三读取操作从应该由SPO编程中断的页面读出第一用户数据。
如果第一系统数据的简单解码失败,则处理器220可以恢复简单解码失败的第一系统数据。处理器220可以通过中断第一系统数据的恢复操作、以及读取和解码存储在第二系统数据块的相应系统页面中的第二系统数据并加载存储器230中的第二系统数据来执行恢复第一系统数据。也就是说,对于在两个块中重复存储的系统数据,处理器220可以不执行超过硬判决解码的不必要的恢复操作,并且可以通过从存储相同的系统数据的第二系统数据块的对应区域读取系统数据来恢复第一系统数据。
如果第一用户数据(即,SPO中断编程的数据)的简单解码失败,则处理器220可以通过确定对应的页面是由SPO编程中断的页面来中断第一用户数据的恢复操作,并且可以处理存储第一用户数据的页面,作为无效页面。
以这种方式,在SPO之后执行的恢复操作中,为找到第一擦除页面的读取操作所读出的读取数据的解码被跳过,并且对存在副本数据的系统数据或者由SPO中断的编程的数据的解码仅执行到硬判定解码。由于这个事实,由于重复执行不必要的解码的次数减少,所以可以缩短恢复操作所需的时间。
此外,由于不执行不必要的解码,因此可以防止恢复目标存储块的读取计数增加,结果,可以防止大量数据受到读取干扰的影响而损坏。
再次参照图1,存储器接口250可以根据处理器220的控制来控制非易失性存储器装置100。存储器接口250也可以被称为存储器控制器。存储器接口250可以向非易失性存储器装置100提供控制信号。控制信号可以包括用于控制非易失性存储器装置100的命令,地址等。存储器接口250可以向非易失性存储器装置100提供数据或者可以从非易失性存储装置100提供数据给存储器接口250。
图4是示出根据实施例的用于操作数据存储装置(例如,数据存储装置10)的方法的流程图。详细地说,图4示出在SPO之后通电的数据存储装置10中执行的第一恢复操作。第一恢复操作可以包括将存储在非易失性存储器装置100中的系统数据加载到存储器230中的进程。参考图1至3、6A和6B,将描述用于操作图1的数据存储装置10的方法。
参照图4,在步骤S401,图1的控制器200的处理器220可以确定数据存储装置10是否通电。当数据存储装置10通电时(S401,是),进程可以进行到步骤S403。
在步骤S403,处理器220可以通过扫描而不解码存在于非易失性存储器装置100的系统区域中的第一系统数据块来检测擦除页面。通过执行扫描而不解码来检测擦除页面可以包括读出存储在第一系统数据块的每个页面中的系统数据,而不对读出的系统数据执行解码。在步骤S403检测的擦除页面可以是第一系统数据块中的多个擦除页面中的第一擦除页面。
处理器220可以执行一个或多个第一读取操作,以用于检测第一系统数据块中的第一擦除页面。例如,为了检测第一系统数据块中的第一擦除页面,处理器220可以通过存储器接口250向非易失性存储器装置100提供至少一个第一读取命令。响应于提供的第一读取命令,非易失性存储器装置100可以从第一系统数据块的相应第一系统数据页面读出第一系统数据,并且可以将读出的第一系统数据提供给存储器接口250。
存储器接口250可以将从非易失性存储器装置100提供的第一系统数据发送到ECC电路240。ECC电路240可以根据处理器220的控制,跳过对第一系统数据的解码并且仅向处理器220提供通过从第一系统数据排除奇偶校验获得的系统数据。处理器220可以基于从ECC电路240提供的数据确定相应的系统页面是处于擦除状态还是编程状态。
以下将参考图6A描述示例。在该示例中,图6A中示出的存储块包括是系统数据块。这里,假设从第一页P1开始扫描存储块,并且存储块的第四页面P4中存储的数据是不可校正的数据。
例如,处理器220通过存储器接口250向非易失性存储器装置100提供用于对存储块的第一页面P1执行读取操作的读取命令。非易失性存储器装置100通过响应于提供的读取命令而执行对存储块的第一页面P1的读取操作而从第一页面P1读出数据(例如,第一数据),并将读出的第一数据提供给存储器接口250。
存储器接口250将从非易失性存储器装置100提供的第一数据发送到ECC电路240,并且ECC电路240不对第一数据执行解码。ECC电路240仅将通过从第一数据排除奇偶校验信息而获得的数据提供给处理器220,并且处理器220基于从ECC电路240提供的数据将第一页面P1确定为编程状态。
此后,处理器220将用于存储块的第二页面P2至第m页面Pm的读取命令顺序地提供给非易失性存储器装置100。非易失性存储器装置100响应于顺序提供的读取命令,从页面P2到页面Pm的各个页面读出数据,并将读出的数据提供给存储器接口250。
如图6A所示,当不可校正的数据存储在存储块的第四页面P4中时,ECC电路240不对从第四页面P4读出的数据执行解码,并且仅将通过从相应的读出数据中排除奇偶校验信息而获得的数据提供给处理器220。处理器220基于提供的数据确定第四页面P4是编程状态。
以这种方式,在用于在存储块中搜索已擦除页面的步骤中,仅确定数据是否存储在每个页面中,而无论存储块的每个页面中存储的数据中是否存在错误。换句话说,在搜索存储块中的擦除页面时,由于不执行对存储块的每个页面中存储的数据的解码,因此也不执行由于解码失败而导致的恢复操作。
在步骤S405,处理器220可以控制非易失性存储器装置100执行第二读取操作,以读出存储在第一系统数据块的第n个系统页面中的第一系统数据。这里,n可以是1或更大的整数。例如,处理器220可以控制非易失性存储器装置100读出存储在第一系统数据块的第一页面中的第一系统数据至紧接着在步骤S403中检测到的第一擦除页之前的页面中存储的第一系统数据。
处理器220可以控制ECC电路240的操作以对由第二读取操作读出的第一系统数据执行解码。在步骤S405执行的对第一系统数据的解码可以是正常解码。
在步骤S407,处理器220可以确定正常解码是否失败。也就是说,处理器220可以确定从第一系统数据块的第n系统页面读出的第一系统数据的解码是否失败。如果解码成功(S407,否),则进程可以进行到步骤S415。如果解码失败(S407,是),则进程可以进行到步骤S409。
在步骤S409,处理器220可以控制非易失性存储器装置100再次执行对第一系统数据块的第n系统页面的第二读取操作,并且可以控制ECC电路240对读出的第一系统数据执行硬判决解码。
在步骤S411,处理器220可以确定从第一系统数据块的第n系统页面读出的第一系统数据的硬判决解码是否失败。如果硬判决解码成功(S411,否),则进程可以进行到步骤S415。如果硬判决解码失败(S411,是),则进程可以进行到步骤S413。
在步骤S413,处理器220可以控制非易失性存储器装置100从第二系统数据块的第n系统页面读出相应的第二系统数据。在第二系统数据块中,系统数据被重复地存储,这与存储在第一系统数据块中的第一系统数据相同。处理器220可以通过使用从第二系统数据块读出的第二系统数据来控制ECC电路240以恢复第一系统数据。通过使用第二系统数据恢复第一系统数据可以通过解码第二系统数据并将解码的第二系统数据加载到存储器230而不是第一系统数据来执行。
在图6B中,假设存储在第一系统数据块的第四页面中的第一系统数据是不可校正的数据,并且存储在第二系统数据块的第四页面中的第二系统数据是可校正的数据。
例如,处理器220向非易失性存储器装置100提供用于读出存储在第一系统数据块的第一页面P1中的第一系统数据的读取命令。然后,非易失性存储器装置100响应于读取命令读出来自第一系统数据块的第一页面P1的第一系统数据,并将读出的第一系统数据提供给存储器接口250。
存储器接口250将第一系统数据提供给ECC电路240。ECC电路240对第一系统数据执行简单解码。由于存储在第一系统数据块的第一页面P1至第三页面P3中的第一系统数据是可校正数据,因此对每个第一系统数据的简单解码将会成功。
此后,处理器220向非易失性存储器装置100提供用于读出存储在第一系统数据块的第四页面P4中的第一系统数据的读取命令。然后,非易失性存储器装置100响应于读取命令,从第一系统数据块的第四页面P4读出第一系统数据,并将读出的第一系统数据提供给存储器接口250。
存储器接口250将第一系统数据提供给ECC电路240。ECC电路240对第一系统数据执行简单解码。由于存储在第四页面P4中的第一系统数据是不可校正的数据,因此简单解码将失败。ECC电路240向处理器220提供表示存储在第一系统数据块的第四页面P4中的第一系统数据的解码结果是失败的信息。
处理器220向非易失性存储器装置100提供用于读出存储在第二系统数据块的第四页面P4中的第二系统数据的读取命令。然后,非易失性存储装置100响应于读取命令,从第二系统数据块的第四页面P4读出第二系统数据,并将读出的第二系统数据提供给存储器接口250。
存储器接口250将第二系统数据提供给ECC电路240。ECC电路240对第二系统数据执行简单解码。由于存储在第二系统数据块的第四页面P4中的第二系统数据是可校正数据,因此对第二系统数据的简单解码将会成功,并且可以将简单解码成功的第二系统数据加载到存储器230中。
这样,对于将相同的数据重复地存储在两个存储块中的系统数据,在简单解码失败的情况下不再执行恢复操作,并且通过使用存储在另一个存储块中的相同的系统数据执行恢复,从而减少不必要的解码。
在步骤S415,处理器220可以确定是否完成了系统数据的加载。如果完成系统数据的加载,则进程可以进行到(A)并且可以执行图5中所示的操作。如果没有完成系统数据的加载,则进程可以进行到步骤S405,并且可以执行对存储在下一页面中的系统数据的第二读取操作。
图5是示出根据实施例的用于操作数据存储装置例如图1的数据存储装置10的方法的流程图。特别地,图5示出了第一恢复操作之后的第二恢复操作。第二恢复操作可以包括用于存储用户数据的开放块的恢复进程。在描述用于操作图5中所示的数据存储装置10的方法时,还参考图1至3和6C。
当在图4的步骤S415完成系统数据的加载时,可以执行步骤S501。在步骤S501,处理器220可以检测非易失性存储器装置100的用户区域中的开放块。可以基于加载在存储器230中的系统数据来执行检测开放块。
在步骤S503,处理器220可以通过扫描而不解码开放块来检测擦除页面。在步骤S503检测的擦除页面可以是存在于开放块中的多个擦除页面中的第一擦除页面。用于检测擦除页面的进程可以通过本领域已知的各种方法来执行;因此,这里省略其详细描述。
处理器220可以执行用于检测开放块中的第一个擦除页面的一个或多个第一读取操作。处理器220可以控制ECC电路240的操作以跳过对第一读取操作读出的数据的解码。以上参考图6A描述了这些内容。处理器220可以将紧邻检测到的第一擦除页面的先前页面(称为“第一先前页面”)确定为由SPO中断编程的页面。
在步骤S505,处理器220可以控制非易失性存储器装置100执行第三读取操作,以读出存储在与检测到的第一擦除页面相邻的第一先前页面中的第一用户数据。处理器220可以控制ECC电路240的操作以对由第三读取操作读出的第一用户数据(即,编程中断的用户数据)执行解码。在步骤S505中执行的对第一用户数据的解码可以是正常解码。
在步骤S507,处理器220可以确定从第一先前页面读出的第一用户数据的解码(即,正常解码)是否失败。如果确定解码成功(S507,否),则进程可以进行到步骤S515。如果确定解码失败(S507,是),则进程可以进行到步骤S509。
在步骤S509,处理器220可以控制非易失性存储器装置100再次执行第一先前页面的第三读取操作,并且可以控制ECC电路240对读出的第一用户数据执行硬判决解码。
在步骤S511,处理器220可以确定从第一先前页面读出的第一用户数据的硬判决解码是否失败。如果确定硬判决解码成功(S511,否),则进程可以进行到步骤S515。如果确定硬判决解码失败(S511,是),则进程可以进行到步骤S513。
在步骤S513,处理器220可以中断对第一先前页面的解码,并且可以将第一先前页面处理为无效页面。
在步骤S515,处理器220可以读取除第一先前页面之外的第一擦除页面之前的第二先前页面中存储的第二用户数据。然后,处理器220可以通过对读出的第二用户数据执行完全解码来控制非易失性存储器装置100和ECC电路240以恢复第二用户数据。
以下将参考图6C进行进一步描述。为方便起见,假设开放块的第四页面P4是第一先前页面并存储不可校正的数据。
例如,处理器220向非易失性存储器装置100提供用于读出存储在开放块的第四页面P4中的第四用户数据的读取命令。然后,非易失性存储器装置100响应于读取命令从开放块的第四页面P4读出第四用户数据,并将读出的第四用户数据提供给存储器接口250。
存储器接口250将第四用户数据提供给ECC电路240。然后,ECC电路240对第四用户数据执行简单解码。由于存储在开放块的第四页面P4中的第四用户数据是不可校正的数据,因此对第四用户数据的简单解码失败。ECC电路240向处理器220提供表示存储在开放块的第四页面P4中的第四用户数据的解码失败的信息。
处理器220中断对开放块的第四页面P4中存储的数据的恢复,并将开放块的第四页面P4处理为无效页面。
此后,处理器220将用于读出存储在开放块的第一页面P1至第三页面P3中的第一至第三用户数据的读取命令顺序地提供到非易失性存储器装置100。然后,非易失性存储器装置100响应于读取命令,从开放块的第一页面P1至第三页面P3读出第一用户数据至第三用户数据,并将读出的第一用户数据至第三用户数据提供给存储器接口250。
存储器接口250将第一用户数据至第三用户数据提供给ECC电路240,并且ECC电路240对第一用户数据至第三用户数据执行完全解码。
图7是示出根据实施例的包括固态硬盘(SSD)的数据处理系统1000的示图。参照图7,数据处理系统2000可包括主机装置1100和SSD 2200。
SSD 2200可包括控制器2210、缓冲存储器装置2220、非易失性存储器装置2231至223n、电源2240、信号连接器2250和电源连接器2260。
控制器2210可控制SSD 2200的一般操作。
缓冲存储器装置2220可临时存储待存储在非易失性存储器装置2231至223n中的数据。缓冲存储器装置2220可临时存储从非易失性存储器装置2231至223n读取的数据。被临时存储在缓冲存储器装置2220中的数据可根据控制器2210的控制被传输到主机装置2100或非易失性存储器装置2231至223n。
非易失性存储器装置2231至223n可用作SSD 2200的存储介质。非易失性存储器装置2231至223n可通过多个信道CH1至CHn联接到控制器2210。一个或多个非易失性存储器装置可联接到一个信道。联接到相同信道的非易失性存储器装置可联接到相同的信号总线和数据总线。
电源2240可将通过电源连接器2260输入的电力PWR提供到SSD 2200的内部。电源2240可包括辅助电源1241。即使当发生突然断电时,辅助电源1241可供电以正常地终止SSD2200。辅助电源1241可包括能够对电力PWR充电的大容量电容器。
控制器2210可通过信号连接器2250与主机装置2100交换信号SGL。信号SGL可包括命令、地址、数据等。信号连接器2250可根据主机装置2100和SSD 2200之间的接口连接方法由各种类型的连接器配置。
图8是示出根据本公开的控制器例如图7的控制器2210的示图。参照图8,控制器2210可包括主机接口2211、控制组件2212、随机存取存储器(RAN)2213、错误校正码(ECC)组件2214和存储器接口2215。
主机接口2211可根据主机装置2100的协议在主机装置2100和SSD 2200之间进行接口连接。例如,主机接口2211可通过以下协议中的任何一种与主机装置1100进行通信:安全数字协议、通用串行总线(USB)协议、多媒体卡(MMC)协议、嵌入式MMC(eMMC)协议、个人计算机存储卡国际协会(PCMCIA)协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机系统接口(SCSI)协议、串列SCSI(SAS)协议、外围组件互连(PCI)协议、高速PCI(PCI-e或者PCIe)协议和通用闪存(UFS)协议。主机接口2211可执行光盘仿真功能,主机装置2100将SSD 2200识别为通用目的的数据存储装置,例如硬盘驱动器HDD。
控制组件2212可分析和处理从主机装置2100输入的信号SGL。控制组件2212可根据用于驱动SDD 2200的固件和/或软件来控制内部功能块的操作。RAM 2213可操作为驱动固件或软件的工作存储器。
ECC组件2214可生成用于待传输到非易失性存储器装置2231至223n的数据的奇偶校验数据。生成的奇偶校验数据可与数据一起被存储在非易失性存储器装置2231至223n中。ECC组件2214可基于奇偶校验数据来检测从非易失性存储器装置2231至223n读取的数据的错误。当检测到的错误在可校正的范围内时,ECC组件2214可校正检测到的错误。
存储器接口2215可根据控制组件2212的控制将诸如命令和地址的控制信号提供给非易失性存储器装置2231至223n。存储器接口2215可根据控制组件2212的控制与非易失性存储器装置2231至223n交换数据。例如,存储器接口2215可将存储在缓冲存储器装置2220中的数据提供给非易失性存储器装置2231至223n,或者将从非易失性存储器装置2231至223n读取的数据提供给缓冲存储器装置2220。
图9是示出根据实施例的包括数据存储装置的数据处理系统3000的示图。参照图9,数据处理系统3000可包括主机装置3100和数据存储装置3200。
主机装置3100可以被配置成诸如印刷电路板(PCB)的板的形式。虽然图9中未示出,但是主机装置3100可包括被配置为执行各种功能的内部功能块。
主机装置3100可包括诸如插座、插槽或连接器的连接端子3110。数据存储装置3200可被安装到连接端子3110。
数据存储装置3200可以诸如PCB的板的形式来配置。数据存储装置3200可被称为存储器模块或存储卡。数据存储装置3200可包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231和3232、电源管理集成电路(PMIC)3240和连接端子3250。
控制器3210可控制数据存储装置3200的一般操作。控制器3210可被配置为具有与图8所示的控制器2210相同的结构。
缓冲存储器装置3220可临时存储待被存储在非易失性存储器装置3231和3232中的数据。此外,缓冲存储器装置3220可临时存储从非易失性存储器装置3231和3232读取的数据。被临时存储在缓冲存储器装置3220中的数据可根据控制器3210的控制被传输到主机装置3100或非易失性存储器装置3231和3232。
非易失性存储器装置3231和3232可用作数据存储装置3200的存储介质。
PMIC 2240可将通过连接端子2250输入的电力提供到数据存储装置3200的内部。PMIC 3240可根据控制器3210的控制来管理数据存储装置3200的电力。
连接端子3250可联接到主机装置3100的连接端子3110。通过连接端子3250,可在主机装置3100和数据存储装置3200之间传输诸如命令、地址和数据的信号和电力。根据主机装置3100和数据存储装置3200之间的接口连接方法,连接端子3250可被配置为各种类型。连接端子3250可被设置在数据存储装置3200的任意一侧上。
图10是示出根据实施例的包括数据存储装置的数据处理系统4000的示图。参照图10,数据处理系统4000可包括主机装置4100和数据存储装置4200。
主机装置4100可以被配置成诸如印刷电路板(PCB)的板。虽然图10中未示出,但是主机装置4100可包括被配置为执行各种功能的内部功能块。
数据存储装置4200可以表面安装型封装的形式来配置。数据存储装置4200可通过焊球4250而安装到主机装置4100。数据存储装置4200可包括控制器4210、缓冲存储器装置4220和非易失性存储器装置4230。
控制器4210可控制数据存储装置4200的一般操作。控制器4210可以被配置为具有与图8所示的控制器2210相同的配置。
缓冲存储器装置4220可临时存储待被存储在非易失性存储器装置4230中的数据。缓冲存储器装置4220可临时存储从非易失性存储器装置4230读取的数据。被临时存储在缓冲存储器装置4220中的数据可通过控制器4210的控制被传输到主机装置4100或非易失性存储器装置4230。
非易失性存储器装置4230可用作数据存储装置4200的存储介质。
图11是示出根据实施例的包括数据存储装置的网络系统5000的示图。参照图11,网络系统5000可包括通过网络5500联接的服务器系统5300和多个客户端系统5410至5430。
服务器系统5300可以响应于来自多个客户端系统5410至5430的请求来服务数据。例如,服务器系统5300可存储从多个客户端系统5410至5430提供的数据。又例如,服务器系统5300可将数据提供给多个客户端系统5410至5430。
服务器系统5300可包括主机装置5100和数据存储装置5200。数据存储装置5200可被配置有图1的数据存储装置10、图7的数据存储装置2200、图9的数据存储装置3200或图10的数据存储装置4200。
图12是示出根据实施例的包括在数据存储装置100中的非易失性存储器装置的框图。参照图12,非易失性存储器装置100可以包括存储器单元阵列110、行解码器120、列解码器140、数据读取/写入块130、电压发生器150和控制逻辑160。
存储器单元阵列110可以包括布置在字线WL1至WLm和位线BL1至BLn彼此相交的区域中的存储器单元MC。
行解码器120可以通过字线WL1至WLm联接到存储器单元阵列110。行解码器120可以通过控制逻辑160的控制来操作。行解码器120可以解码从外部设备(未示出)(例如,图1的控制器200)提供的地址。行解码器320可以基于解码结果来选择并驱动字线WL1至WLm。例如,行解码器320可以将从电压发生器350提供的字线电压提供给字线WL1至WLm。
数据读取/写入块130可以通过位线BL1至BLn联接到存储器单元阵列110。数据读取/写入块130可以包括对应于位线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块330可以根据控制逻辑160的控制来操作。数据读取/写入块130可以根据操作模式而作为写入驱动器或读出放大器来操作。例如,在写入操作中,数据读取/写入块130可以用作写入驱动器来操作,该写入驱动器被配置成将从外部设备提供的数据存储在存储器单元阵列110中。在另一示例中,在读取操作中,数据读取/写入块130可以用作读出放大器,该读出放大器被配置成从存储器单元阵列110读取数据。
列解码器140可以根据控制逻辑160的控制来操作。列解码器140可以解码从外部设备(未示出)提供的地址。列解码器140可以基于解码结果来联接对应于位线BL1至BLn的数据读取/写入块130的读取/写入电路RW1至RWn和数据输入/输出(I/O)线路(或数据I/O缓冲器)。
电压发生器150可以产生用于非易失性存储器装置100的内部操作的电压。通过电压发生器150产生的电压可以被施加到存储器单元阵列110的存储器单元。例如,在编程操作中产生的编程电压可以被施加到在其中待执行编程操作的存储器单元的字线。又例如,在擦除操作中产生的擦除电压可以被施加到在其中待执行擦除操作的存储器单元的阱区。再例如,在读取操作中产生的读取电压可以被施加到在其中待执行读取操作的存储器单元的字线。
控制逻辑160可以基于从外部设备提供的控制信号来控制非易失性存储器装置100的总体操作。例如,控制逻辑360可以控制非易失性存储器装置100的操作,诸如非易失性存储器装置100的读取操作、写入操作和擦除操作。
本发明的上述实施例的目的在于说明而不限制本发明。可能存在各种可选方案和等同方案,基于本公开,这些方案对于本领域技术人员是显而易见的。本发明不受本文所述的实施例的限制。本发明不限于任何具体类型的半导体装置。因而本发明涵盖了落入所附权利要求的范围内的所有增加、删减和/或修改。
Claims (14)
1.一种数据存储装置,包括:
非易失性存储器装置,包括第一系统数据块和作为所述第一系统数据块的副本的第二系统数据块;和
控制器,控制所述非易失性存储器装置,
其中,当所述数据存储装置在突然断电即SPO之后被供电时,所述控制器通过扫描而不解码来检测擦除页面,对所述擦除页面之前的第一系统页面的第一系统数据执行简单解码,并且如果所述简单解码失败,则通过从所述第二系统数据块中的对应于所述第一系统页面的第二系统页面读出第二系统数据来恢复所述第一系统数据,
所述简单解码表示顺序地执行正常解码和硬判决解码。
2.根据权利要求1所述的数据存储装置,其中,所述控制器通过控制所述非易失性存储器装置对所述第一系统数据块的一个或多个页面执行读取操作、跳过对通过所述读取操作从所述第一系统数据块读出的数据的解码、并且从而确定所述擦除页面,来检测所述擦除页面。
3.根据权利要求1所述的数据存储装置,其中,所述控制器控制所述非易失性存储器装置执行对各个所述第一系统页面的读取操作,以从中读出所述第一系统数据,对所读出的第一系统数据执行正常解码,如果所述正常解码失败,则控制所述非易失性存储器装置再次执行所述第一系统页面的读取操作,并对通过再次执行所述读取操作而从所述第一系统页面读取的所述第一系统数据执行所述硬判决解码。
4.根据权利要求1所述的数据存储装置,其中,当完成所述第一系统数据的加载时,所述控制器基于所述第一系统数据检测所述非易失性存储器装置中的开放块,通过扫描而不解码所述开放块而检测擦除页面,对紧邻所述擦除页面的先前的第一用户页面中存储的第一用户数据执行简单解码,并且如果对所述第一用户数据的简单解码失败,则中断解码并将所述第一用户页面处理为无效页面。
5.根据权利要求4所述的数据存储装置,其中,所述控制器对存储在除所述第一用户页面之外的所述擦除页面之前的第二用户页面中的第二用户数据执行完全解码,
所述完全解码表示顺序地执行正常解码、硬判决解码和软判决解码。
6.根据权利要求5所述的数据存储装置,其中,所述控制器控制所述非易失性存储器装置执行对各个第二用户页面的读取操作,以从中读出第二用户数据,对读出的第二用户数据执行正常解码,如果所述正常解码失败,则控制所述非易失性存储器装置再次执行所述第二用户页面的读取操作,对通过再次执行所述读取操作读出的所述第二用户数据执行所述硬判决解码,如果所述硬判决解码失败,则控制所述非易失性存储器装置再次执行所述第二用户页面的读取操作,并对通过再次执行所述读取操作而从所述第二用户页面读出的第二用户数据执行所述软判决解码。
7.一种操作数据存储装置的方法,包括:
当所述数据存储装置在突然断电即SPO之后通电时,通过扫描而不解码非易失性存储器装置的第一系统数据块来检测擦除页面;
对所述擦除页面之前的第一系统页面中存储的第一系统数据执行简单解码;
确定所述简单解码是否失败;以及
如果确定所述简单解码失败,则通过从第二系统数据块中的对应的第二系统页面读出第二系统数据来恢复所述简单解码失败所针对的所述第一系统数据,其中所述第二系统数据块是所述第一系统数据块的副本块,
所述简单解码表示顺序地执行正常解码和硬判决解码。
8.根据权利要求7所述的方法,其中,检测所述擦除页面包括:
对所述第一系统数据块的一个或多个第一系统页面执行读取操作;和
跳过对通过所述读取操作从所述一个或多个第一系统页面读出的一个或多个第一系统数据的解码,并且从而确定所述擦除页面。
9.根据权利要求7所述的方法,其中,执行所述简单解码包括:
对所述擦除页面之前的各个第一系统页面执行读取操作;
对从所述第一系统页面读出的所述第一系统数据执行正常解码;
确定所述正常解码是否失败;
如果确定所述正常解码失败,则再次执行对所述第一系统页面的读取操作;以及
通过再次执行所述读取操作,对从所述第一系统页面读出的第一系统数据执行硬判决解码。
10.根据权利要求7所述的方法,进一步包括:
确定是否完成所述第一系统数据的加载。
11.根据权利要求10所述的方法,进一步包括:
基于所述第一系统数据检测所述非易失性存储器装置中的开放块;
通过扫描而不解码所述开放块来检测擦除页面;
对紧邻所述擦除页面的先前的第一用户页面中存储的第一用户数据执行简单解码;
确定对所述第一用户数据的简单解码是否失败;以及
如果确定所述第一用户数据的简单解码失败,则中断解码并将所述第一用户页面处理为无效页面。
12.根据权利要求11所述的方法,进一步包括:
在将所述第一用户页面处理为无效页面之后,对除了所述第一用户页面之外的所述擦除页面之前的第二用户页面中存储的第二用户数据执行完全解码,
其中,所述完全解码表示顺序地执行正常解码、硬判决解码和软判决解码。
13.根据权利要求12所述的方法,其中,执行所述完全解码包括:
执行各个第二用户页面的读取操作;
对从所述第二用户页面读出的所述第二用户数据执行正常解码;
确定所述正常解码是否失败;
如果确定所述正常解码失败,则再次执行所述第二用户页面的读取操作;
通过再次执行所述读取操作,对从所述第二用户页面读出的所述第二用户数据执行硬判决解码;
确定所述硬判决解码是否失败;
如果确定所述硬判决解码失败,则再次执行所述第二用户页面的读取操作;以及
通过再次执行所述读取操作,对从所述第二用户页面读出的所述第二用户数据执行软判决解码。
14.一种数据存储装置,包括:
存储器装置,包括第一系统数据块和第二系统数据块;和
控制器:
控制所述存储器装置将原始的系统数据存储在所述第一系统数据块中,并将副本系统数据存储在所述第二系统数据块中;
在突然断电即SPO之后通电时,通过扫描而不解码所述第一系统数据块来检测擦除页面;
读取并执行所述第一系统数据的简单解码,所述第一系统数据存储在所述第一系统数据块中的擦除页面之前的至少一个第一数据页面中;
如果所述第一系统数据的简单解码失败,则从所述第二系统数据块中的第二数据页面读取第二系统数据,所述第二系统数据是所述第一系统数据的副本数据;以及
使用所述第二系统数据恢复所述第一系统数据,
其中,所述简单解码表示顺序地执行正常解码和硬判决解码。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180040226A KR102571747B1 (ko) | 2018-04-06 | 2018-04-06 | 데이터 저장 장치 및 그것의 동작 방법 |
KR10-2018-0040226 | 2018-04-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110347530A CN110347530A (zh) | 2019-10-18 |
CN110347530B true CN110347530B (zh) | 2023-07-28 |
Family
ID=68098891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811427742.7A Active CN110347530B (zh) | 2018-04-06 | 2018-11-27 | 数据存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10824523B2 (zh) |
KR (1) | KR102571747B1 (zh) |
CN (1) | CN110347530B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190128392A (ko) | 2018-05-08 | 2019-11-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102583810B1 (ko) * | 2018-05-15 | 2023-10-05 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10726936B2 (en) * | 2018-12-20 | 2020-07-28 | Micron Technology, Inc. | Bad block management for memory sub-systems |
CN111506450B (zh) * | 2019-01-31 | 2024-01-02 | 伊姆西Ip控股有限责任公司 | 用于数据处理的方法、设备和计算机程序产品 |
KR20200120159A (ko) * | 2019-04-11 | 2020-10-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 이의 동작 방법 |
US11106372B2 (en) | 2019-12-27 | 2021-08-31 | Micron Technology, Inc. | Asynchronous power loss handling approach for a memory sub-system |
US20220164107A1 (en) * | 2020-11-25 | 2022-05-26 | Micron Technology, Inc. | Using bad blocks for system data in memory |
CN112735498B (zh) * | 2021-02-03 | 2024-02-20 | 山东大学 | 一种存储器译码方法 |
TWI784750B (zh) * | 2021-10-15 | 2022-11-21 | 啟碁科技股份有限公司 | 終端裝置的資料處理方法及終端裝置的資料處理系統 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673581A (zh) * | 2008-06-13 | 2010-03-17 | 三星电子株式会社 | 存取半导体存储设备的存储系统和方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100833627B1 (ko) * | 2007-02-08 | 2008-05-30 | 삼성전자주식회사 | 리페어가 가능한 반도체 메모리 장치 및 그 방법 |
US9921896B2 (en) * | 2007-08-30 | 2018-03-20 | Virident Systems, Llc | Shutdowns and data recovery to avoid read errors weak pages in a non-volatile memory system |
US8055942B2 (en) * | 2009-12-03 | 2011-11-08 | Seagate Technology Llc | Data storage devices and methods for power-on initialization |
EP2989547B1 (en) * | 2013-04-23 | 2018-03-14 | Hewlett-Packard Development Company, L.P. | Repairing compromised system data in a non-volatile memory |
KR20150006616A (ko) * | 2013-07-09 | 2015-01-19 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그것의 동작 방법 |
KR102149668B1 (ko) * | 2014-04-22 | 2020-08-31 | 삼성전자주식회사 | 비휘발성 메모리 장치의 데이터 디코딩 방법 |
KR20150122493A (ko) * | 2014-04-23 | 2015-11-02 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20170031311A (ko) | 2015-09-10 | 2017-03-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102515137B1 (ko) * | 2016-03-28 | 2023-03-29 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102547642B1 (ko) * | 2016-05-18 | 2023-06-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
-
2018
- 2018-04-06 KR KR1020180040226A patent/KR102571747B1/ko active IP Right Grant
- 2018-10-19 US US16/165,646 patent/US10824523B2/en active Active
- 2018-11-27 CN CN201811427742.7A patent/CN110347530B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673581A (zh) * | 2008-06-13 | 2010-03-17 | 三星电子株式会社 | 存取半导体存储设备的存储系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110347530A (zh) | 2019-10-18 |
KR102571747B1 (ko) | 2023-08-29 |
US20190310923A1 (en) | 2019-10-10 |
US10824523B2 (en) | 2020-11-03 |
KR20190117117A (ko) | 2019-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347530B (zh) | 数据存储装置及其操作方法 | |
CN109426580B (zh) | 数据存储设备及其操作方法 | |
US10943639B2 (en) | Data storage device and operating method thereof | |
US8331151B2 (en) | Semiconductor memory including control unit responsive to erase command to determine selection of redundant memory block | |
US11204846B2 (en) | Memory system and method for operating the same | |
US20160004596A1 (en) | Data storage device with in-memory parity circuitry | |
US20140136925A1 (en) | Method of operating a data storage device | |
CN111489782A (zh) | 存储器系统及其操作方法 | |
US11966603B2 (en) | Memory system for updating firmware when SPO occurs and operating method thereof | |
US20170286219A1 (en) | Data storage device and operating method thereof | |
CN110299181B (zh) | 非易失性存储器装置、其操作方法及数据存储装置 | |
US10917111B2 (en) | Error correction code unit and error correction method | |
US10720943B2 (en) | Data storage device, operation method thereof and storage system having the same | |
US10108561B2 (en) | Data storage device and operating method thereof | |
KR20190037659A (ko) | 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 장치를 포함하는 데이터 저장 장치 | |
US20230214151A1 (en) | Memory system and operating method thereof | |
US20240054047A1 (en) | NVMe Boot Partition Error Correction Code Enhancement | |
CN116386708A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |