CN107240420B - 数据存储装置及其操作方法 - Google Patents

数据存储装置及其操作方法 Download PDF

Info

Publication number
CN107240420B
CN107240420B CN201610833632.5A CN201610833632A CN107240420B CN 107240420 B CN107240420 B CN 107240420B CN 201610833632 A CN201610833632 A CN 201610833632A CN 107240420 B CN107240420 B CN 107240420B
Authority
CN
China
Prior art keywords
page
data
program
seed value
storage device
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
Application number
CN201610833632.5A
Other languages
English (en)
Other versions
CN107240420A (zh
Inventor
金世玹
朴振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN107240420A publication Critical patent/CN107240420A/zh
Application granted granted Critical
Publication of CN107240420B publication Critical patent/CN107240420B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Abstract

本发明提供一种数据存储装置,其包括:非易失性存储器装置;随机化单元,其被配置成通过使用种子值随机化待被存储在非易失性存储器装置中的数据和去随机化从非易失性存储器装置读取的数据;以及控制单元,其被配置成在从电源故障状态返回至正常状态的情况下,检测已经发生电源问题的非易失性存储器装置的页面并通过随机化单元通过使用与对应于已经发生电源问题的页面的种子值不同的种子值随机化已经发生电源问题的页面的数据。

Description

数据存储装置及其操作方法
相关申请的交叉引用
本申请要求于2016年3月28日向韩国知识产权局提交的申请号为10-2016-0036730的韩国申请的优先权,其全部内容通过引用并入本文。
技术领域
各个实施例总体涉及一种将非易失性存储器装置作为存储介质使用的数据存储装置。
背景技术
近来,计算机环境范例已变为普适计算使得计算机系统可以随时随地使用。因此,便携式电子装置诸如移动电话、数码相机和笔记本电脑的使用已经快速增加。一般来说,这些便携式电子装置使用数据存储装置,该数据存储装置使用存储器装置。数据存储装置用于存储在便携式电子装置中使用的数据。
由于没有机械驱动部件,所以使用存储器装置的数据存储装置提供优良的稳定性和耐用性、高的信息存取速度和低功耗的优点。具有这些优点的数据存储装置包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、通用闪速存储(UFS)装置和固态驱动器(SSD)。
发明内容
各个实施例涉及能够提高数据可靠性的数据存储装置。
在实施例中,数据存储装置可包括:非易失性存储器装置;随机化单元,其被配置成通过使用种子值随机化待存储在非易性失存储器装置中的数据并去随机化从非易失性存储器装置读取的数据;以及控制单元,其被配置成在从电源故障状态返回至正常状态的情况下,检测已经发生电源问题的非易失性存储器装置的页面并通过随机化单元,通过使用与对应于已经发生电源问题的页面的种子值不同的种子值,随机化已经发生电源问题的页面的数据。
在实施例中,一种将包括页面的非易失性存储器装置作为存储介质使用的数据存储装置的操作方法可包括:在从电源故障状态返回至正常状态的情况下,检测已经发生电源问题的页面;恢复在电源问题发生之前完成操作的页面的数据;以及破坏已经发生电源问题的页面的数据。
根据实施例,由于有可能降低读出错误的可能性,所以存储在数据存储装置中的数据的可靠性可得到提高。
附图说明
图1是说明根据本发明的实施例的数据存储装置的实例的框图。
图2是说明根据本发明的实施例的随机化单元的实例的简图。
图3是说明根据本发明的实施例的在图1所示的数据存储装置中采用的随机存取存储器中驱动的软件的实例的简图。
图4是根据本发明的实施例的电源故障恢复模块的操作的流程图。
图5是说明根据本发明的实施例的帮助解释电源故障恢复模块的操作的非易失性存储器装置的页面状态的实例的简图。
图6是说明根据本发明的实施例在电源故障恢复操作中使用的种子值的实例的表。
图7是说明根据本发明的实施例的包括数据存储装置的数据处理系统的框图。
图8是说明根据本发明的实施例的包括固态驱动器(SSD)的数据处理系统的框图。
图9是说明根据本发明的实施例的在图8的SSD中采用的SSD控制器的实例的框图。
图10是说明根据本发明的实施例的包括数据存储装置的计算机系统的框图。
图11是说明根据本发明的实施例的包含在数据存储装置中的非易失性存储器装置的实例的框图。
具体实施方式
在本发明中,在结合附图阅读以下实施例之后,用于实现实施例的优点、特征及方法将变得更加显而易见。然而,本发明可以体现为不同的形式,并且不应被解释为限于本文阐述的实施例。相反,提供这些实施例以详细描述本发明,达到本发明所属领域的技术人员能够实践本发明的程度。
本文将理解的是,本发明的实施例并不限于附图中所示的细节,并且附图不一定按比例绘制,在某些情况下,比例可能已经被夸大以便更清楚描绘本发明的一些特征。虽然本文使用特定术语,但是将理解的是,本文所使用的术语仅用于描述具体实施例的目的并不旨在限制本发明的范围。
如本文所使用的,术语“和/或”包括相关的所列项目中的一个或多个的任意和所有组合。将理解的是,当元件被称为在另一个元件“上”、“连接至”或“联接至”另一个元件时,它可能直接在另一个元件上、连接至或联接至另一个元件或可能存在中间元件。除非上下文清楚另有说明,否则,如本文所使用的单数形式也旨在包括复数形式。将进一步理解的是,在本说明书中使用时,术语“包括”、“包括有”、“包含”和/或“包含有”说明至少一个陈述的特征、步骤、操作和/或元件的存在,但不排除一个或多个其它特征、步骤、操作和/或其元件的存在或添加。
在下文中,将参照附图描述包括数据存储装置及其操作方法的各个实施例。
现参照图1,提供根据本发明的实施例的数据存储装置100。图2说明在图1的数据存储装置中采用的随机化单元的实例。
数据存储装置100可存储待通过主机装置(未示出)诸如移动电话、MP3播放器、膝上型电脑、台式电脑、游戏机、电视、车载信息娱乐系统等访问的数据。数据存储装置100也可被称为存储器系统。
数据存储装置100可被制造成各种存储装置中的任何一种并且可根据主机接口传输协议被联接至主机装置。例如,数据存储装置100可配置成诸如以下的各个存储装置的任何一种:固态驱动器,MMC、eMMC、RS-MMC和微型-MMC形式的多媒体卡、SD、迷你-SD和微型-SD形式的安全数字卡、通用串行总线(USB)存储装置、通用闪速存储(UFS)装置、个人计算机存储卡国际协会(PCMCIA)卡类型存储装置、外围组件互联(PCI)卡类型存储装置、高速PCI(PCI-E)卡类型存储装置、标准闪存(CF)卡、智能媒体卡、记忆棒等。
数据存储装置100可被制造成诸如以下的各种封装中的任何一种:封装堆叠(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶片级制造封装(WFP)以及晶片级堆叠封装(WSP)。
数据存储装置100可包括控制器200和非易失性存储器装置300。
非易失性存储器装置300可用作数据存储装置100的存储介质。非易失性存储器装置300可通过诸如以下的各种非易失性存储器装置中的任何一种来配置:NAND闪速存储器装置、NOR闪速存储器装置、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧道磁阻(TMR)层的磁性随机存取存储器(MRAM)、使用硫系合金的相变随机存取存储器(PCRAM)以及使用过渡金属氧化物的电阻随机存取存储器(RERAM)。
铁电随机存取存储器(FRAM)、磁性随机存取存储器(MRAM)、相变随机存取存储器(PCRAM)和电阻随机存取存储器(RERAM)是能够随机访问存储器单元的非易失性随机存取存储器装置的实例。在实施例中,非易失性存储器装置300可通过NAND闪速存储器装置和上述各种非易失性随机存取存储器装置中的至少一个的组合来配置。例如,在下面的描述中将举例说明通过NAND闪速存储器装置配置的非易失性存储器装置300。
控制器200可包括控制单元210、随机存取存储器230、随机化单元250以及内部总线。
控制单元210可控制控制器200的一般操作中的一个或多个。控制单元210可驱动装载在随机存取存储器230中的代码类型的指令或算法例如软件并可控制控制器200中功能模块的操作。控制单元210可分析和处理通过主机接口传输的主机装置的请求。
随机存取存储器230可存储待通过控制单元210驱动的软件。随机存取存储器230可存储驱动软件所需的数据。也就是说,随机存取存储器230可作为控制单元210的工作存储器操作。
随机存取存储器230可作为数据缓冲存储器或数据高速缓冲存储器操作。例如,随机存取存储器230可临时存储待从主机装置传输至非易失性存储器装置300的数据或待从非易失性存储器装置300传输至主机装置的数据。
在实施例中,随机存取存储器230可通过诸如动态RAM(DRAM)或静态RAM(SRAM)的易失性存储器装置来配置。在另一实施例中,随机存取存储器230可通过诸如铁电随机存取存储器(FRAM)、磁性随机存取存储器(MRAM)、相变随机存取存储器(PCRAM)和电阻随机存取存储器(RERAM)的非易失性存储器装置来配置。
如图2所示,随机化单元250逻辑上计算输入的数据Din和种子值SD、随机化或去随机化输入的数据Din并输出数据Dout。随机化和去随机化操作可以是使用相同种子值的可逆操作。也就是说,原始数据及其随机化数据可利用相同的种子值被可逆地转换成彼此。
例如,在输入待存储在非易失性存储器装置300中的数据DT的情况下,随机化单元250可随机化数据DT并输出随机化的数据RDT。又例如,在输入从非易失性存储器装置300读取的随机化的数据RDT的情况下,随机化单元250可使随机化的数据RDT去随机化并输出原始数据DT。
在一般情况下,随机化单元250在随机化原始数据DT和去随机化原始数据DT的随机化的数据RDT时都可以使用相同的种子值。
在特殊情况下,随机化单元250在随机化原始数据DT和去随机化原始数据DT的随机化的数据RDT时可使用不同的种子值。例如,当数据存储装置100从下面将详细描述的意外电源故障中恢复时,特殊情况可发生。
图3说明在图1所示的随机存取存储器中驱动的软件的实例。
在非易失性存储器装置300通过NAND闪速存储器装置配置的情况下,控制单元210可控制非易失性存储器装置300以存储块为单位的擦除操作,并控制非易失性存储器装置300以页面为单位的读取操作和编程(或写入)操作。此外,由于非易失性存储器装置300执行重写操作通常是不可能的,所以控制单元210可在存储数据的存储器单元中预先执行擦除操作以用于存储新数据。
数据存储装置100的控制单元210可驱动闪存转换层FTL以便控制通过闪速存储器装置配置的非易失性存储器装置300的固有操作并为主机装置提供装置兼容性。通过驱动这种闪存转换层FTL,数据存储装置100可被主机装置识别为诸如硬盘的通用数据存储装置。
装载在随机存取存储器230上的闪存转换层FTL可通过用于执行各种功能的模块和驱动模块所需的元数据来配置。例如,如图3所示,闪存转换层FTL可包括地址映射表MAP、磨损均衡模块WLM、坏块管理模块BBM、垃圾收集模块GCM和电源故障恢复模块PRM。
在主机装置访问数据存储装置100(例如,请求数据的读取操作或写入操作)的情况下,主机装置可为数据存储装置100提供逻辑地址。闪存转换层FTL可将提供的逻辑地址转换成非易失性存储器装置300的物理地址,并通过参照转换的物理地址执行请求的操作。为了执行地址转换操作,地址转换数据即地址映射表MAP可被包括在闪存转换层FTL中。
磨损均衡模块WLM可管理针对非易失性存储器装置300的存储块的磨损水平。非易失性存储器装置300的存储器单元可通过反复擦除和编程操作而老化。老化的存储器单元,即磨损的存储器单元会导致失效(例如物理缺陷)。磨损均衡模块WLM可管理各个存储块的擦除-写入计数,以这种方式在存储块之间更均匀地分布以防止一些存储块比其它存储块过早磨损。
坏块管理模块BBM可管理非易失性存储器装置300的存储块中已经发生失效的存储块。如上所述,失效(例如物理缺陷)可发生在磨损的存储器单元中。存储在失效的存储器单元中的数据可能不会被正常读出。此外,数据可能不能被正常存储在失效的存储器单元中。坏块管理模块BBM可管理具有失效的存储器单元的存储块,以这种方式防止其进一步使用。
非易失性存储器装置300的擦除操作需要很长时间。出于这个原因,控制单元210不擦除当前存储待更新的数据的存储器单元或将更新数据重写在擦除的存储器单元中以用于服务用更新数据替换待更新的数据的当前写入请求。相反,控制单元210将更新数据存储在已经被擦除的另一存储器单元中而不是当前存储待更新的数据的存储器单元中。通过控制单元210的这种操作,有效数据和无效数据被混合在非易失性存储器装置300中。视情况需要,控制单元210可执行将有效数据收集至一个地方并擦除存储有无效数据的存储器单元的一系列操作,即垃圾收集操作。垃圾收集操作可被称为合并操作。
如果在对存储器单元执行编程操作时,供给至数据存储装置100的电源被突然切断,则对非易失性存储器装置300的编程操作被中断,因此编序操作无法正常完成。当数据存储装置100从意外的电源故障恢复时,电源故障恢复模块PRM可管理由于电源故障导致具有高错误率的存储器单元、页面或存储块。下面将详细说明电源故障恢复模块PRM的电源故障恢复操作。
图4是根据实施例的帮助解释电源故障恢复模块PRM的操作的流程图的实例。图5是举例说明根据本发明的实施例的帮助解释电源故障恢复模块的操作的非易失性存储器装置300的页面状态的实例的简图。图6是根据本发明的实施例的帮助解释用于电源故障恢复操作中的种子值的表的实例。
作为实例,仅用于说明目的,图5说明每一个包括五个页面且每个页面通过五个存储器单元配置的两个存储块B1和B2。此外,假设包括在存储块B1和B2中的每个中的页面按升序编程。
现参照图4,在步骤S110处,电源故障恢复模块PRM可确定电源故障是否已经发生。除非从电源故障状态返回至正常状态,电源故障恢复模块PRM的操作才可结束。
相反地,在从电源故障状态返回至正常状态的情况下,电源故障恢复模块PRM可执行电源故障恢复操作,其包括检测在对其编程操作期间已经发生电源问题PP的页面(以下称为“电源问题页面”)的检测步骤S120和S130;恢复在电源问题PP发生之前完成编程操作的页面(以下称为“编程完成页面”)的数据的恢复步骤S140-S160;以及破坏由于电源问题PP中断编程操作的页面(以下称为“编程中断页面”)的数据的破坏步骤S170-S190。
在步骤S120处,电源故障恢复模块PRM可读取存储块的页面并检测电源问题页面。
如上所述,为了将新数据存储在已经存储数据的存储器单元中,擦除操作应提前被执行。这意味着擦除状态的存储器单元尚未被编程。例如,电源故障恢复模块PRM可通过检测包括全部被擦除的存储器单元的擦除页面来检测电源问题页面。
例如,参照图5,电源故障恢复模块PRM可根据编程顺序读取第一存储块B1的页面P1-P5并首先在擦除页面P4和P5之间将页面P4检测为擦除页面。电源故障恢复模块PRM可根据编程顺序将擦除页面P4前的页面,即按编程顺序在擦除页面P4之前编程的页面P3确定或检测为电源问题页面。电源问题页面可凑巧但如果有也很少是电源完整页面。电源问题页面是编程中断页面的可能性可能很高。在实施例中,电源故障恢复模块PRM可将图5中的电源问题页面P3确定为编程中断页面。
电源故障恢复模块PRM可通过步骤S140-S160恢复编程完成页面(例如图5的页面P1和P2)的数据。
在步骤S140处,电源故障恢复模块PRM可通过随机化单元250利用对应于编程完成页面的种子值重新随机化编程完成页面的数据。对应于编程完成页面的种子值可以是当随机化和去随机化编程完成页面的数据时使用的种子值。因此,电源故障恢复模块PRM可利用与在去随机化操作中使用的种子值相同的种子值重新随机化编程完成页面的数据。
例如,参照图6,电源故障恢复模块PRM可利用对应于第一页面P1的第一种子值SD1重新随机化第一编程完成页面P1的数据。对应于第一页面P1的第一种子值SD1可用于去随机化第一页面P1的数据。并且,电源故障恢复模块PRM可利用对应于第二页面P2的第二种子值SD2重新随机化第二编程完成页面P2的数据。对应于第二页面P2的第二种子值SD2可用于去随机化第二页面P2的数据。
在步骤S150处,电源故障恢复模块PRM可将编程完成页面P1和P2的重新随机化的数据存储在另一存储区域(例如第二存储块B2)中。在步骤S160处,电源故障恢复模块PRM可以使被存储在第二存储块B2中的重新随机化的数据有效。
例如,参照图5,电源故障恢复模块PRM可将第一编程完成页面P1的重新随机化的数据存储在第二存储块B2的第一页面P1'中。此外,电源故障恢复模块PRM可使被存储在第二存储块B2的第一页面P1'中的数据有效。电源故障恢复模块PRM可将第二页面P2的重新随机化的数据存储在第二存储块B2的第二页面P2'中。此外,电源故障恢复模块PRM可使被存储在第二存储块B2的第二页面P2'中的数据有效。
电源故障恢复模块PRM可通过步骤S170-S190破坏编程中断页面(例如图5的页面P3)的数据。
编程中断页面的存储器单元可能存储不完全数据。此外,由于施加诸如干扰、与相邻存储器单元耦合等的不利影响的效果或机制,编程中断页面的存储器单元造成读取失败的可能性可能很高。因此,可能有必要故意破坏编程中断页面的数据并确实地使编程中断页面的数据无效。数据可通过改变数据被破坏使得数据不能被恢复到其原始值或不能对改变的数据进行错误修正。
根据实施例,编程中断页面的数据可通过利用与对应于编程中断页面的种子值不同的种子值重新随机化被破坏。换言之,编程中断页面的数据可利用与当去随机化编程完成页面的数据时使用的种子值不同的种子值被重新随机化。在编程中断页面的数据利用与对应于编程中断页面的种子值不同的种子值重新随机化的情况下,不可能利用与对应于编程中断页面的种子值去随机化重新随机化的数据。这可意味着,编程中断页面的数据通过利用与对应于编程中断页面的种子值不同的种子值的重新随机化被破坏。
在步骤S170处,电源故障恢复模块PRM可通过随机化单元250利用与对应于编程中断页面的种子值不同的种子值重新随机化编程中断页面的数据。
例如,参照图6,电源故障恢复模块PRM可利用与对应于第三页面P3或编程中断页面的种子值SD3不同的种子值SDr重新随机化第三页面P3(即编程中断页面)的数据。用于重新随机化作为编程中断页面的第三页面P3的数据的随机种子值SDr不在去随机化第三页面P3的数据中使用。也就是说,在去随机化作为编程中断页面的第三页面P3的数据的情况下,可使用对应于第三页面P3的原始种子值SD3。因此,通过使用不同的随机种子值SDr重新随机化的第三页面P3的数据即使它利用原始种子值SD3去随机化也不能被恢复至原始值,这可意味着作为编程中断页面的第三页面P3的数据被破坏。
在步骤S180处,电源故障恢复模块PRM可存储页面P3或编程中断页面的重新随机化的数据。在步骤S190处,电源故障恢复模块PRM可使重新随机化的数据无效。
例如,参照图5,电源故障恢复模块PRM可将第三页面P3或编程中断页面的重新随机化的数据存储到第二存储块B2的第三页面P3'中。此外,电源故障恢复模块PRM可使被存储在第二存储块B2的第三页面P3'中的数据无效。换言之,电源故障恢复模块PRM可使数据无效使得通过重新随机化操作破坏的数据在随后的操作中不被存取。
图7说明根据本发明的实施例的包括数据存储装置1200的数据处理系统1000。根据图7的实施例,数据处理系统1000包括被联接至主机装置1100的数据存储装置1200。
数据存储装置1200可包括控制器1210和非易失性存储器装置1220。数据存储装置1200可通过联接至诸如移动电话、MP3播放器、膝上型电脑、台式计算机、游戏机、电视、车载信息娱乐系统等主机装置1100来使用。数据存储装置1200也被称为存储器系统。
控制器1210可包括通过内部总线可操作地联接的主机接口单元1211、控制单元1212、存储器接口单元1213、随机存取存储器1214、错误校正码(ECC)单元1215和随机化单元1216。
控制单元1212可响应于来自主机装置1100的请求控制控制器1210的一般操作。例如,控制单元1212可驱动用于控制非易失性存储器装置1220的固件或软件。
控制单元1212可检测非易失性存储器装置1220的电源问题页面。控制单元1212可通过随机化单元1216利用与对应于编程中断页面的原始种子值不同的种子值重新随机化编程中断页面的数据。因此,已经发生电源问题的不稳定页面的数据可被有意破坏并可被确实地无效。
随机存取存储器1214可用作控制单元1212的工作存储器。随机存取存储器1214可用作临时存储从非易失性存储器装置1220中读出的数据或从主机装置1100提供的数据的缓冲存储器。
主机接口单元1211可接合主机装置1100和控制器1210。例如,主机接口单元1211可通过诸如下列的各种接口协议中的一种与主机装置1100通信:通用串行总线(USB)协议、通用闪速存储(UFS)协议、多媒体卡(MMC)协议、外围组件互联(PCI)协议、高速PCI(PCI-E)协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机系统接口(SCSI)协议和串列SCSI(SAS)协议。
存储器接口单元1213可接合控制器1210和非易失性存储器装置1220。存储器接口单元1213可为非易失性存储器装置1220提供指令和地址。此外,存储器接口单元1213可与非易失性存储器装置1220交换数据。
错误校正码(ECC)单元1215可ECC-编码待被存储在非易失性存储器装置1220中的数据。并且,错误校正码(ECC)单元1215可ECC-解码从非易失性存储器装置1220中读出的数据。
非易失性存储器装置1220可用作数据存储装置1200的存储介质。非易失性存储器装置1220可包括多个非易失性存储器芯片(或管芯)NVM_1-NVM_k。
控制器1210和非易失性存储器装置1220可被制造成各种数据存储装置中的任何一种。例如,控制器1210和非易失性存储器装置1220可被集成到一个半导体装置中,并且可以被制造成以下中的任何一种:MMC、eMMC、RS-MMC和微型-MMC形式的多媒体卡,SD、迷你-SD和微型-SD形式的安全数字卡,通用串行总线(USB)存储装置,通用闪速存储(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡,标准闪存(CF)卡,智能媒体卡,存储棒等。
图8说明根据本发明的实施例的包括固态驱动器(SSD)2200的数据处理系统2000。参照图8,数据处理系统2000可包括主机装置2100和固态驱动器(SSD)2200。
SSD 2200可包括SSD控制器2210、缓冲存储器装置2220、非易失性存储器装置2231-223n、电源2240、信号连接器2250和电源连接器2260。
SSD控制器2210可响应于来自主机装置2100的请求访问非易失性存储器装置2231至223n。
缓冲存储器装置2220可临时存储待被存储在非易失性存储器装置2231至223n中的数据。此外,缓冲存储器装置2220可临时存储从非易失性存储器装置2231至223n中读出的数据。在SSD控制器2210的控制下,被临时存储在缓冲存储器装置2220中的数据可被传输至主机装置2100或非易失性存储器装置2231至223n。
非易失性存储器装置2231至223n可用作SSD 2200的存储介质。非易失性存储器装置2231至223n可分别通过多个通道CH1至CHn与SSD控制器2210联接。一个或多个非易失性存储器装置可被联接至一个通道。联接至每个通道的非易失性存储器装置可被联接至相同的信号总线和数据总线。
电源2240可将通过电源连接器2260输入的电源PWR提供至SSD2200的内部。电源2240可包括辅助电源2241。辅助电源2241可提供电源以当突然断电发生时允许SSD 2200正常地终止。辅助电源2241可包括能够给电源PWR充电的大电容电容器。
SSD控制器2210可通过信号连接器2250与主机装置2100交换信号SGL。信号SGL可包括命令、地址、数据等。根据主机装置2100和SSD2200之间的接口方案,信号连接器2250可通过诸如通用闪速存储器(UFS)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、外围组件互联(PCI)和高速PCI(PCI-E)协议的连接器来配置。
图9说明图8所示的SSD控制器的实例。参照图9,SSD控制器2210可包括通过内部总线联接的存储器接口单元2211、主机接口单元2212、错误校正码(ECC)单元2213、控制单元2214、随机存取存储器2215和随机化单元2216。
存储器接口单元2211可为非易失性存储器装置2231至223n提供诸如命令和地址的控制信号。此外,存储器接口单元2211可与非易失性存储器装置2231至223n交换数据。存储器接口单元2211可在控制单元2214的控制下将从缓冲存储器装置2220传输的数据分散至各个通道CH1至CHn。此外,存储器接口单元2211可在控制单元2214的控制下将从非易失性存储器装置2231至223n读出的数据传输至缓冲存储器装置2220。
主机接口单元2212可根据主机装置2100的协议提供相对于SSD2200的接口。例如,主机接口单元2212可通过下列中的任何一种与主机装置2100通信:通用闪速存储器(UFS)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、外围组件互联(PCI)和高速PCI(PCI-E)协议。另外,主机接口单元2212可执行支持主机装置2100以将SSD 2200识别为硬盘驱动器(HDD)的磁盘仿效功能。
控制单元2214可分析并处理从主机装置2100输入的信号SGL。控制单元2214可根据用于驱动SSD 2200的固件或软件控制缓冲存储器装置2220和非易失性存储器装置2231至223n的操作。随机存取存储器2215可用作用于驱动固件或软件的工作存储器。
控制单元2214可检测非易失性存储器装置2231至223n的电源问题页面。控制单元2214可通过随机化单元2216通过使用与对应于编程中断页面的原始种子值不同的种子值重新随机化编程中断页面的数据。因此,其中已经发生电源问题的不稳定页面的数据可被有意破坏并可以可靠的方式无效。
错误校正码(ECC)单元2213可在被存储在缓冲存储器装置2220的数据之中生成待被传输至非易失性存储器装置2231至223n的校验数据。生成的校验数据可连同数据一起被存储在非易失性存储器装置2231至223n中。错误校正码(ECC)单元2213可以检测从非易失性存储器装置2231至223n读出的数据的错误。当检测的错误在可校正的范围内时,错误校正码(ECC)单元2213可校正检测的错误。
图10是说明根据本发明的实施例的安装有数据存储装置的计算机系统的实例的框图。参照图10,计算机系统3000包括电联接至系统总线3700的网络适配器3100、中央处理单元3200、数据存储装置3300、RAM3400、ROM 3500和用户接口3600。数据存储装置3300可通过图1所示的数据存储装置100、图7所示的数据存储装置1200或图8所示的SSD2200来配置。
网络适配器3100可提供计算机系统3000和外部网络之间的接口。中央处理单元3200可执行用于驱动驻留在RAM 3400处的操作系统或应用程序的一般计算处理。
数据存储装置3300可存储计算机系统3000中所需要的一般数据。例如,用于驱动计算机系统3000的操作系统、应用程序、各种程序模块、程序数据和用户数据可被存储在数据存储装置3300中。
RAM 3400可用作计算机系统3000的工作存储器。一经启动,从数据存储装置3300读出的操作系统、应用程序、各种程序模块和驱动程序所需的程序数据可被装载在RAM3400中。在驱动操作系统前被激活的BIOS(基本输入/输出系统)可被存储在ROM 3500中。计算机系统3000和用户之间的信息交换可通过用户接口3600来实施。
图11是说明根据本发明的实施例的包含在数据存储装置中的非易失性存储器装置的实例的框图。参照图11,非易失性存储器装置300可包括存储器单元阵列310、行解码器320、列解码器330、数据读取/写入块340、电压发生器350和控制逻辑360。
存储器单元阵列310可包括被布置在字线WL1至WLm和位线BL1至BLn彼此相交的区域处的存储器单元MC。
行解码器320可通过字线WL1至WLm与存储器单元阵列310联接。行解码器320可根据控制逻辑360的控制操作。行解码器320可以解码从外部装置(未示出)提供的地址。行解码器320可基于解码结果选择并驱动字线WL1至WLm。例如,行解码器320可为字线WL1至WLm提供从电压发生器350提供的字线电压。
数据读取/写入块340可通过位线BL1至BLn与存储器单元阵列310联接。数据读取/写入块340可包括分别对应于位线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块340可根据控制逻辑360的控制操作。数据读取/写入块340可根据操作模式操作为写入驱动器或感测放大器。例如,数据读取/写入块340可在写入操作中操作为将从外部装置提供的数据存储在存储器单元阵列310中的写入驱动器。又例如,数据读取/写入块340可在读取操作中操作为从存储器单元阵列310读出数据的感测放大器。
列解码器330可根据控制逻辑360的控制操作。列解码器330可解码从外部装置提供的地址。列解码器330可基于解码结果将分别对应于位线BL1至BLn的数据读取/写入块340的读取/写入电路RW1至RWn和数据输入/输出线(或数据输入/输出缓冲器)联接。
电压发生器350可产生待用于非易失性存储器装置300的内部操作的电压。通过电压发生器350产生的电压可应用于存储器单元阵列310的存储器单元。例如,在编程操作中产生的编程电压可应用于将要执行编程操作的存储器单元的字线。又例如,在擦除操作中产生的擦除电压可应用于将要执行擦除操作的存储器单元的阱区。又例如,在读取操作中产生的读取电压可应用于将要执行读取操作的存储器单元的字线。
控制逻辑360可基于从外部装置提供的控制信号控制非易失性存储器装置300的一般操作。例如,控制逻辑360可控制诸如非易失性存储器装置300的读取、写入和擦除操作的非易失性存储器装置300的操作。
虽然上面已经描述各个实施例,但是本领域技术人员将理解的是,描述的实施例仅仅是实例。因此,本文描述的数据存储装置及其操作方法不应该限于所描述的实施例。并且,注意到,在一些情况下,如将对本发明所属领域的技术人员显而易见的是,除非另有特别说明,否则结合一个实施例所描述的元件或特征可单独使用或与另一实施例的其它特征或元件组合使用。

Claims (15)

1.一种数据存储装置,其包括:
非易失性存储器装置;
随机化单元,其适于利用种子值随机化待被存储在所述非易失性存储器装置的页面中的数据和去随机化从所述非易失性存储器装置的页面读取的数据;以及
控制单元,其适于在从电源故障状态返回至正常状态的情况下,检测已经发生电源问题的所述非易失性存储器装置的编程中断页面并控制所述随机化单元利用与对应于所述编程中断页面的第一种子值不同的第二种子值重新随机化所述编程中断页面的数据。
2.根据权利要求1所述的数据存储装置,其中所述控制单元将所重新随机化的数据存储在空白页面中并使所重新随机化的数据无效。
3.根据权利要求1所述的数据存储装置,其中所述控制单元控制所述随机化单元利用所述第一种子值去随机化所重新随机化的数据。
4.根据权利要求1所述的数据存储装置,其中,在从所述电源故障状态返回至所述正常状态的情况下,所述控制单元检测尚未发生电源故障的所述非易失性存储器装置的编程完成页面并利用对应于所述编程完成页面的第一种子值重新随机化所述编程完成页面的数据。
5.根据权利要求4所述的数据存储装置,其中所述控制单元将利用所述第一种子值重新随机化的数据存储在空白页面中并使所重新随机化的数据有效。
6.根据权利要求5所述的数据存储装置,其中所述控制单元控制所述随机化单元利用所述第一种子值去随机化所重新随机化的数据。
7.根据权利要求1所述的数据存储装置,其中所述控制单元将编程操作中断的页面检测为所述编程中断页面。
8.根据权利要求7所述的数据存储装置,其中所述控制单元将按编程顺序在擦除页面之前的页面检测为所述编程中断页面。
9.一种数据存储装置的操作方法,所述数据存储装置包括非易失性存储器装置,所述方法包括:
在从电源故障状态返回至正常状态的情况下,检测已经发生电源故障的编程中断页面;
恢复在发生电源问题前完成操作的编程完成页面的数据;以及
破坏所述编程中断页面的数据,
其中破坏包括利用与对应于所述编程中断页面的第一种子值不同的第二种子值重新随机化所述编程中断页面的数据。
10.根据权利要求9所述的方法,其进一步包括:
将所述编程中断页面的重新随机化的数据存储在空白页面中;以及
使所述编程中断页面的重新随机化的数据无效。
11.根据权利要求9所述的方法,其进一步包括:
利用对应于所述编程中断页面的第一种子值去随机化所述编程中断页面的重新随机化的数据。
12.根据权利要求9所述的方法,其中恢复包括利用对应于所述编程完成页面的第一种子值重新随机化所述编程完成页面的数据。
13.根据权利要求12所述的方法,其进一步包括:
将所述编程完成页面的重新随机化的数据存储在空白页面中;以及
使所述编程完成页面的重新随机化的数据有效。
14.根据权利要求12所述的方法,其进一步包括:
利用对应于所述编程完成页面的第一种子值去随机化所述编程完成页面的重新随机化的数据。
15.根据权利要求9所述的方法,其中检测包括将按编程顺序在擦除页面之前的页面检测为所述编程中断页面。
CN201610833632.5A 2016-03-28 2016-09-20 数据存储装置及其操作方法 Active CN107240420B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2016-0036730 2016-03-28
KR1020160036730A KR102515137B1 (ko) 2016-03-28 2016-03-28 데이터 저장 장치 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
CN107240420A CN107240420A (zh) 2017-10-10
CN107240420B true CN107240420B (zh) 2020-11-06

Family

ID=59898649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610833632.5A Active CN107240420B (zh) 2016-03-28 2016-09-20 数据存储装置及其操作方法

Country Status (3)

Country Link
US (1) US10067819B2 (zh)
KR (1) KR102515137B1 (zh)
CN (1) CN107240420B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10289321B1 (en) * 2017-05-05 2019-05-14 Amazon Technologies, Inc. Bad block table recovery in a solid state drives
TWI659304B (zh) * 2017-10-20 2019-05-11 慧榮科技股份有限公司 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
KR102500618B1 (ko) * 2017-12-12 2023-02-16 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR102571747B1 (ko) * 2018-04-06 2023-08-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20200136183A (ko) 2019-05-27 2020-12-07 에스케이하이닉스 주식회사 스토리지 장치 및 그것의 동작 방법
KR20200137542A (ko) 2019-05-30 2020-12-09 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 저장 장치
US11250913B2 (en) * 2020-05-21 2022-02-15 Western Digital Technologies, Inc. Scrambling using different scrambling seeds for defect reduction and improved programming efficiency
US20240028198A1 (en) * 2022-07-22 2024-01-25 Silicon Motion, Inc. Method and apparatus for performing data retention management of memory device with aid of pre-shutdown control

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5603000A (en) * 1989-05-15 1997-02-11 Dallas Semiconductor Corporation Integrated circuit memory with verification unit which resets an address translation register upon failure to define one-to-one correspondences between addresses and memory cells
CN1518000A (zh) * 2003-01-26 2004-08-04 深圳市朗科科技有限公司 闪存介质中的数据管理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100843134B1 (ko) * 2006-09-15 2008-07-02 삼성전자주식회사 인터럽트 금지구간 처리 장치 및 방법과 페이지 고정 장치및 방법
KR101554159B1 (ko) 2008-10-08 2015-09-21 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
JP2012226822A (ja) * 2011-04-15 2012-11-15 Samsung Electronics Co Ltd 不揮発性メモリ装置
KR101818671B1 (ko) * 2011-04-19 2018-02-28 삼성전자주식회사 불휘발성 메모리 장치, 불휘발성 메모리 시스템 및 그것의 랜덤 데이터 읽기 방법
KR20130049332A (ko) * 2011-11-04 2013-05-14 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
US20140310534A1 (en) * 2013-04-15 2014-10-16 Apple Inc. Data scrambling in memory devices using combined sequences
KR102102224B1 (ko) * 2013-10-01 2020-04-20 삼성전자주식회사 저장 장치 및 그것의 프로그램 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5603000A (en) * 1989-05-15 1997-02-11 Dallas Semiconductor Corporation Integrated circuit memory with verification unit which resets an address translation register upon failure to define one-to-one correspondences between addresses and memory cells
CN1518000A (zh) * 2003-01-26 2004-08-04 深圳市朗科科技有限公司 闪存介质中的数据管理方法

Also Published As

Publication number Publication date
CN107240420A (zh) 2017-10-10
US10067819B2 (en) 2018-09-04
KR20170111386A (ko) 2017-10-12
KR102515137B1 (ko) 2023-03-29
US20170277588A1 (en) 2017-09-28

Similar Documents

Publication Publication Date Title
US11854596B2 (en) Data storage device and operating method thereof
US10102059B2 (en) Data storage device capable of preventing a data retention fail of a nonvolatile memory device and operating method thereof
CN107240420B (zh) 数据存储装置及其操作方法
CN107799149B (zh) 数据存储装置及其操作方法
CN108932107B (zh) 数据存储装置及其操作方法
US20180130537A1 (en) Data storage device and operating method thereof
US10943639B2 (en) Data storage device and operating method thereof
US20160179596A1 (en) Operating method of data storage device
CN109240937B (zh) 数据存储装置及其操作方法
US10558562B2 (en) Data storage device and operating method thereof
CN113741798A (zh) 数据存储装置及其操作方法
US20190324680A1 (en) Electronic device
US9837166B2 (en) Data storage device and operating method thereof
US20180314642A1 (en) Data storage device and operating method thereof
US9966148B1 (en) Data storage device and operating method thereof
US10657046B2 (en) Data storage device and operating method thereof
US20230214151A1 (en) Memory system and operating method thereof
US10726938B2 (en) Data storage device and operating method thereof
US20220244852A1 (en) Memory system and operating method thereof

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