CN107025185B - 数据存储装置及其操作方法 - Google Patents
数据存储装置及其操作方法 Download PDFInfo
- Publication number
- CN107025185B CN107025185B CN201610592048.5A CN201610592048A CN107025185B CN 107025185 B CN107025185 B CN 107025185B CN 201610592048 A CN201610592048 A CN 201610592048A CN 107025185 B CN107025185 B CN 107025185B
- Authority
- CN
- China
- Prior art keywords
- page
- memory block
- list
- invalid
- pages
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 50
- 238000000034 method Methods 0.000 title claims description 24
- 230000015654 memory Effects 0.000 claims abstract description 69
- 238000013507 mapping Methods 0.000 claims abstract description 16
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 238000011084 recovery Methods 0.000 claims description 3
- 230000005856 abnormality Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 10
- 230000004044 response Effects 0.000 description 4
- 239000010410 layer Substances 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000011017 operating method Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 229910003797 SPO1 Inorganic materials 0.000 description 1
- 229910003798 SPO2 Inorganic materials 0.000 description 1
- 101100150136 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SPO1 gene Proteins 0.000 description 1
- 101100478210 Schizosaccharomyces pombe (strain 972 / ATCC 24843) spo2 gene Proteins 0.000 description 1
- 239000000956 alloy Substances 0.000 description 1
- 229910045601 alloy Inorganic materials 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 238000012005 ligant binding assay Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 229910000314 transition metal oxide Inorganic materials 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- 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
- 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/1441—Resetting or repowering
-
- 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/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- 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
-
- 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/84—Using snapshots, i.e. a logical point-in-time copy of the data
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开一种数据存储装置,其包括:包括存储块的非易失性存储器装置,由于数据存储装置至少发生一次突然断电(SPO)而使对存储块的写入操作中断并且没有完成,其中存储块包括在中断前产生的包含一个或多个有效页面的至少一个第一有效页面组和由中断引起的具有一个或多个无效页面的至少一个无效页面组;以及控制器,其适于:在数据存储装置在SPO后被通电之后将第一有效页面组的至少一个物理地址‑逻辑地址(P2L)列表写入到无效页面组中,以及在完成对存储块的写入操作后基于P2L列表恢复存储块的地址映射表。
Description
相关申请的交叉引用
本申请要求于2016年2月1日向韩国知识产权局提交的申请号为10-2016-0012343的韩国申请的优先权,其通过引用以其整体并入本文。
技术领域
各个实施例总体涉及一种半导体装置,且更特别地,涉及一种数据存储装置及其操作方法。
背景技术
数据存储装置可以响应于来自外部装置的写入请求存储由外部装置提供的数据,并且响应于来自外部装置的读取请求将存储的数据提供至外部装置。外部装置可以是能够处理数据的电子装置,且可包括例如计算机、数码相机或移动电话。数据存储装置可被构造为外部装置的组成部分,或者可以分离的形式制造,其之后可以被联接至外部装置。
数据存储装置可以包括例如个人计算机存储卡国际协会(PCMCIA)卡,标准闪存(CF)卡,智能媒介卡,记忆棒,MMC、eMMC、RS-MMC和微型MMC形式的多媒体卡,SD、迷你SD和微型SD形式的安全数字卡、通用闪存(UFS)或固态驱动器(SSD)。
数据存储装置可以包括用于存储数据的非易失性存储器装置。甚至在电源未被连接至非易失性存储器装置时,该装置仍可以保留所存储的数据。非易失性存储器装置可以包括诸如NAND闪存或NOR闪存的闪速存储器装置、FeRAM(铁电随机存取存储器)、PCRAM(相变随机存取存储器)、MRAM(磁性随机存取存储器)或ReRAM(电阻随机存取存储器)。
发明内容
各个实施例涉及能够缩短映射表恢复时间的数据存储装置及其操作方法。
在一个实施例中,数据存储装置可以包括:非易失性存储器装置,其包括存储块,由于数据存储装置至少发生一次突然断电(SPO)而使对存储块的写入操作中断并且没有完成,其中存储块包括在中断前产生的包含一个或多个有效页面的至少一个第一有效页面组和由中断引起的具有一个或多个无效页面的至少一个无效页面组;以及控制器,其适于在数据存储装置在SPO后被通电之后将第一有效页面组的至少一个物理地址-逻辑地址(P2L)列表写入到无效页面组中,并在完成对存储块的写入操作后基于P2L列表恢复存储块的地址映射表。
在一个实施例中,提供了一种操作包括非易失性存储器装置的数据存储装置的方法,该非易失性存储器装置包括存储块,由于数据存储装置至少发生一次突然断电(SPO)而使对存储块的写入操作中断并且没有完成,其中存储块包括在中断前产生的包含一个或多个有效页面的至少一个第一有效页面组和由中断引起的具有一个或多个无效页面的至少一个无效页面组;该方法包括:在数据存储装置在SPO后被通电之后将第一有效页面组的至少一个物理地址-逻辑地址(P2L)列表写入到无效页面组中,以及在完成对存储块的写入操作后基于P2L列表恢复存储块的地址映射表。
根据实施例,当突然断电(SPO)发生在对开放块的写入操作期间时,可以检测由于SPO发生导致的存储异常数据的无效页面,并且可以将SPO发生之前存储正常数据的有效页面的P2L列表存储在检测到的无效页面中。
因此,当生成完成写入操作的封闭块的P2L列表时,可参考存储在无效页面中的有效页面的P2L列表。因此,没有必要额外扫描封闭块中的有效页面,因此可以缩短用于封闭块的P2L表恢复时间。
附图说明
图1是示出根据本发明的一个实施例的数据存储装置的框图。
图2是示出包括在图1的非易失性存储器装置中的存储块的一个实例的简图。
图3A是示出包括无效页面的开放块的一个实例的简图。
图3B是示出在图3A的开放块的无效页面中生成虚拟页面的一个实例的简图。
图3C是示出完成写入操作的封闭块的一个实例的简图。
图4是生成多个连续的虚拟页面的一个实例的简图。
图5是示出包括多个无效页面的开放块的一个实例的简图。
图6是示出生成多个不连续的虚拟页面的一个实例的简图。
图7是根据本发明的一个实施例在用于操作数据存储装置的方法中虚拟页面生成方法的流程图。
图8是根据本发明的一个实施例在用于操作数据存储装置的方法中映射表管理方法的流程图。
图9是示出根据本发明的一个实施例的固态驱动器(SSD)的框图。
图10是示出根据本发明的一个实施例的包括数据存储装置的数据处理***的框图。
具体实施方式
下文中,将参照附图描述包括数据存储装置及其操作方法的本发明的各个实施例。
然而,应注意本发明可体现为多种不同的形式,而不应解释为限于本文示出的实施例。相反,提供这些实施例作为实例,使得本发明将是全面且完整的,并将本发明的各个方面和特征充分传达给本领域技术人员。
还应理解,虽然术语“第一”、“第二”、“第三”等在本文中可用于描述各个元件,但是这些元件并不受这些术语的限制。这些术语用于将一个元件与另一个元件区分开来。因此,在不背离本发明的精神和范围的情况下,下文描述的第一元件也可以称为第二或第三元件。
还应理解,当一个元件被称为“连接至”或“联接至”与另一个元件时,它可以直接在另一个元件上、直接连接至或联接至另一元件,或者可以存在一个或多个中间元件。此外,还应理解,当一个元件被称为位于两个元件之间时,其可以是两个元件之间仅有的元件,或者还可以存在一个或多个中间元件。
本文所用的术语仅用于描述特定实施例的目的,并不意在限制本发明。如本文所用,单数还意在包括复数形式,除非上下文中另有明确说明。
还应理解,当说明书中使用术语“包含”、“包含有”、“包括”和“包括有”时,指的是存在阐明的元件但不排除一个或多个其它元件的存在或添加。
而且,当在本文中使用时,术语“和/或”包括一个或多个关联的列举项的任何和所有组合。
除非另外限定,否则本文所用的包括技术和科学术语的所有术语具有与本发明构思所属领域的技术人员通常理解的含义相同的含义。还应理解,诸如常用字典中定义的那些术语的术语应解释为具有与它们在相关领域的上下文中的含义一致的含义,且不应以理想的或者过于正式的含义进行解释,除非本文另外明确限定。
在以下描述中,阐述许多具体细节以提供对本发明的全面理解。可以在没有一些或所有这些具体细节的情况下实施本发明。在其它情况下,并未详细描述公知的处理结构和/或过程,以不使本发明不必要的模糊。
下文中,将参照附图详细描述本发明的各个实施例。
现参照图1,根据本发明的一个实施例,提供了数据存储装置10的实例。
根据图1的实施例,数据存储装置10可以包括至少一个非易失性存储器装置100、随机存取存储器200和用于控制至少一个非易失性存储器装置100和随机存取存储器200的控制器300。
非易失性存储器装置100可以作为数据存储装置10的存储介质操作。非易失性存储器装置100可被配置为例如NAND快速存储器装置。然而,本发明可不限于仅NAND快速存储器装置。例如,根据构建存储器单元区域(未示出)的存储器单元,非易失性存储器装置100可被配置为诸如以下的其它各种类型的非易失性存储器装置的任一种:例如,NOR快速存储器装置、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧穿磁阻(TMR)层的磁性随机存取存储器(MRAM)、使用硫族化物合金的相变随机存取存储器(PRAM)和使用过渡金属氧化物的电阻式随机存取存储器(RERAM)。
非易失性存储器装置100可以包括多个存储块BLK1至BLKn,其中n是等于或大于2的整数。
图2是包括在图1的非易失性存储器装置100中的多个存储块BLK1至BLKn之中的存储块BLK1的实例的简图。
参照图2,存储块BLK1可以包括分别对应于多个字线WL1至WLm的多个页面P1至Pm。虽然图2示出一个页面对应单个字线,但应注意在该实施例中,对应于单个字线的页面的数量并不以此方式限制。例如,对应于单个字线的页面的数量可以变化,例如根据联接至单个字线的每个存储器单元中可以存储多少位数据而变化。例如,对应于单个字线的页面的数量可以根据联接至单个字线的存储器单元是SLC(单层单元)、MLC(多层单元)还是TLC(三层单元)而变化。
页面可以是非易失性存储器装置100执行写入操作和/读取操作的单位。非易失性存储器装置100可以通过驱动对应的字线而访问每个页面,并且对访问的页面执行写入操作和/或读取操作。例如,参照图2,非易失性存储器装置100可以通过驱动联接至第一页面P1的第一字线WL1而访问第一页面P1,并且对访问的第一页面P1执行写入操作和/或读取操作。如图2所示,非易失性存储器装置100可以在由箭头指示的方向上顺序地对存储块的页面执行写入操作,即从第一页面P1开始,接着是第二页面、第三页面……,并以最后页面Pm结束。
随机存取存储器200可以存储将由控制器300驱动的固件或软件。而且,随机存取存储器200可以存储驱动固件或软件所需的数据,例如元数据。也就是说,随机存取存储器200可以作为控制器300的工作存储器操作。
随机存取存储器200可以暂时地存储将从主机装置(未示出)传输到非易失性存储器装置100或从非易失性存储器装置100传输到主机装置的数据。随机存取存储器200可以作为数据缓冲存储器或数据高速缓冲存储器操作。
控制器300可以执行数据存储装置10的一般操作。例如,控制器300可以响应于从主机装置传输的写入请求,控制非易失性存储器装置100的写入操作以将数据存储在非易失性存储器装置100中。而且,作为实例,控制器300可以响应于从主机装置传输的读取请求,控制非易失性存储器装置100的读取操作,以读取存储在非易失性存储器装置100中的数据并将读取数据输出至主机装置。例如,控制器300可以生成用于从主机装置传输的写入请求和/读取请求的写入命令和/或读取命令,并且可以将生成的写入命令和/或读取命令提供至非易失性存储器装置100。然后,非易失性存储器装置100可以执行与从控制器300提供的写入命令和/或读取命令相应的写入操作和/或读取操作。
包括在非易失性存储器装置100中的多个存储块BLK1至BLKn可以分为:完成写入操作的存储块、正在执行写入操作的存储块和未开始写入操作的存储块。而且,已经完成对所有页面的写入操作的存储块将被成为封闭存储块(或封闭块),而未完成对所有页面的写入操作的存储块将被成为开放存储块(或开放块)。
一般而言,控制器300可以生成非易失性存储器装置100的存储块BLK1至BLKn之中的封闭块的物理地址至逻辑地址(P2L)列表,并将生成的P2L列表存储在随机存取存储器200的地址映射表中。而且,控制器300不生成已经开始对开放页面的写入操作的开放块的P2L列表,直至写入操作完成。
控制器300可以通过从最后页面至第一页面顺序地扫描封闭块以及将存储在每个页面中的逻辑块地址(LBA)和每个页面的物理地址匹配,来生成封闭块的P2L列表。
突然断电(SPO)是意外的供电中断,其可以发生在对存储块BLK1的写入操作中间,因此对存储块BLK1的写入操作可能由于SPO而没有完成。SPO可导致存储块BLK1的一个或多个页面存储异常数据。由于SPO而存储异常数据的页面在下文可被称为无效页面。
当数据存储装置10在SPO后恢复为通电状态时,控制器300可以通过顺序地扫描开放块来检测开放块的无效页面,可以生成有效页面的P2L列表,并且可以将生成的有效页面的P2L列表写入由于SPO导致的无效页面中。
图3A示出包括一个无效页面P7的开放块OBLK的实例,图3B示出在无效页面P7中生成虚拟页面的实例,图3C示出完成写入操作的封闭块CBLK的实例。
例如,参照图3A,当SPO发生在对开放块OBLK的第七页面P7的写入操作的中间且然后数据存储装置10变为通电状态时,控制器300可以从第m个页面至第一页面P1顺序地扫描开放块OBLK。作为扫描的结果,控制器300可以检测开放快OBLK中的空白页面、存储异常数据的无效页面和存储正常数据的有效页面。开放块OBLK的第七页面P7可以被检测为无效页面。
控制器300可以通过分别存储在第一页面P1至第六页面P6中的LBA生成有效页面(即第一页面P1至第六页面P6)的P2L列表,并且可以将生成的P2L列表写入无效页面(即第七页面P7)中。存储有效页面的P2L列表的无效页面将被称为虚拟页面D。存储有效页面的P2L列表的虚拟页面D不再是无效页面。生成虚拟页面D的实例示于图3B中。在一个实施例中,控制器300可以将用于调试的信息例如固件(FW)寄存器值、计数器值、指示器值和指示对应页面是虚拟页面的识别信息以及有效页面的P2L列表存储在虚拟页面D中。
参照图3C,在生成虚拟页面D后,控制器300可以从第八页面P8至第m页面Pm顺序地继续对开放块OBLK的写入操作,其中第八页面P8至第m页面Pm是虚拟页面D之后的页面)。当完成对最后页面或第m页面Pm的写入操作时,开放块OBLK变为封闭块CBLK,且控制器300可以通过从第m页面Pm至虚拟页面D顺序地执行扫描封闭块CBLK来生成封闭块CBLK的P2L列表。也就是说,由于有效页面(即第一页面P1至第六页面P6)的P2L列表被存储在虚拟页面D中,因此没有必要扫描第一页面P1至第六页面P6。因此,可以缩短生成封闭块CBLK的P2L列表所需的时间。在扫描封闭块CBLK的P2L列表期间,虚拟页面D可以通过存储在其中的识别信息来识别。
在一个实施例中,在扫描虚拟页面D后,控制器300可以确定存储在虚拟页面D中的有效页面的P2L列表是否正常。如果存储在虚拟页面D中的有效页面的P2L列表正常,则控制器300可以通过使用存储在虚拟页面D中的有效页面的P2L列表生成封闭块CBLK的P2L列表。如果存储在虚拟页面D中的有效页面的P2L列表异常,则控制器300可以不使用存储在虚拟页面D中的有效页面的P2L列表,并且可以通过从第六页面P6至第一页面P1顺序地扫描再次生成有效页面(即第一页面P1至第六页面P6)的P2L列表。
在一个实施例中,控制器300可以为开放块OBLK中的单个无效页面生成多个虚拟页面。例如,参照图3A和图4,控制器300可以将有效页面(即第一页面P1至第六页面P6)的P2L列表写入无效的第七页面P7中以作为第一虚拟页面D1并将有效页面(即第一页面P1至第六页面P6)的P2L列表写入第八页面P8中以作为第二虚拟页面D2,其中第八页面P8是与无效的第七页面P7连续的空白页面。换言之,有效页面的相同P2L列表可被写入第一虚拟页面D1和第二虚拟页面D2两者中。
在一个实施例中,控制器300可以将指示存储相同P2L列表的虚拟页面的总数量的信息写入多个虚拟页面的每个(例如,第一虚拟页面D1和第二虚拟页面D2中的每个)中。因此,在多个虚拟页面之一异常的情况下,控制器300可以使用存储在多个虚拟页面的另一个中的有效页面的P2L列表。虽然图4示出其中生成两个虚拟页面D1和D2的实例,但应注意该实施例不限于这个实例。在不同的实例中,可以生成至少三个虚拟页面。
如上所述,SPO可以导致存储块BLK1的一个或多个页面存储异常数据,这意味着由于SPO可能在开放块OBLK中存在多个无效页面。
根据图5的实例,假设第七页面P7和第八页面P8均是无效页面。在这种情况下,控制器300可以将有效页面(即第一页面P1至第六页面P6)的P2L列表写入无效的第七页面P7和无效的第八页面P8中以分别作为第一虚拟页面D1和第二虚拟页面D2。有效页面的相同P2L列表可被写入第一虚拟页面D1和第二虚拟页面D2两者中。
同时,数次SPO可以发生在对单个开放块OBLK的写入操作的中间。图6作为一个实例,示出其中在写入操作期间发生2次SPO并生成2个虚拟页面的封闭块。
例如,参照图6,由于在对开放块OBLK的第四页面P4的写入操作的中间的第一次突然断电SPO1,控制器300可以生成作为无效的第四页面P4之前的第一组有效页面的第一页面P1至第三页面P3的P2L列表,并将生成的第一组有效页面的P2L列表写入第四页面P4中,这将是第一虚拟页面D1。
此后,控制器300可以从第五页面P5开始继续对开放块OBLK的写入操作。由于当数据存储装置10恢复为通电状态时在对开放块OBLK的第(m-2)页面Pm-2的写入操作的中间的第二次突然断电SPO2,控制器300可以生成作为无效的第(m-2)页面Pm-2之前的第二组有效页面的第五页面P5至第(m-3)页面Pm-3(未示出)的P2L列表,并将生成的第二组有效页面的P2L列表写入无效的第(m-2)页面Pm-2中,这将是第二虚拟页面D2。控制器300可以将第一虚拟页面D1的位置信息写入第二虚拟页面D2中。此处,位置信息可以是数据头(header)信息。
此后,控制器300可以从第(m-1)页面Pm-1至第m页面Pm继续对开放块OBLK的写入操作。当完成对最后页面或第m页面Pm的写入操作时,对应的开放块OBLK变为封闭块CBLK。然后,控制器300可以通过扫描第m页面Pm至第(m-1)页面Pm-1、第二虚拟页面D2和第一虚拟页面D1而生成封闭块CBLK的P2L列表。即,由于第二组有效页面(即第五页面P5至第(m-3)页面Pm-3)的P2L列表和第一虚拟页面D1的数据头信息存储在第二虚拟页面D2中且第一组有效页面(即第一页面P1至第三页面P3)的P2L列表存储在第一虚拟页面D1中,控制器300不需要扫描第一组有效页面和第二组有效页面。
图7是根据本发明的实施例的在用于操作数据存储装置的方法中的虚拟页面生成方法的流程图。
参照图1至图7,根据一个实施例的虚拟页面生成方法包括下列步骤。在步骤S710中,数据存储装置10从由于SPO导致的断电状态接通电源。在步骤S720中,控制器300可以扫描开放块OBLK的所有页面。例如,控制器300可以从第m页面Pm至第一页面P1顺序地扫描开放块OBLK。
在步骤S730中,控制器300可以通过扫描步骤S720检测开放块OBLK中的无效页面。而且,控制器300可以确定开放块OBLK中的有效页面和空白页面。在步骤S740中,控制器300可以生成开放块OBLK中的有效页面(即按写入操作的顺序位于无效页面之前的有效页面)的P2L列表(S740)。
在步骤S750中,控制器300可以通过将有效页面的P2L列表存储在无效页面中而生成虚拟页面D(S750)。存储有效页面的P2L列表的虚拟页面D不再是无效页面。
参照图4至图6描述了用于生成虚拟页面D的各个实施例。
生成虚拟页面D之后,控制器300可以从与虚拟页面D连续的第一空白页面开始继续对开放块OBLK的写入操作。开放块OBLK可以在完成对其中所有页面的写入操作时变为封闭块CBLK。
图8是根据本发明的一个实施例的在用于操作数据存储装置的方法中的映射表管理方法的流程图。
参照图1至图6和图8,根据本实施例的映射表管理方法如下。
在步骤S810中,在数据存储装置10在SPO后被通电之后,控制器300可以检测封闭块CBLK。
在步骤S820中,控制器300可以开始扫描封闭块的每个页面。
对于每个扫描的页面,在步骤S830中,控制器300可以通过存储在扫描的页面中的识别信息确定扫描的页面是否为虚拟页面。在当前扫描的页面不是虚拟页面的情况下,作为步骤S830的确定结果,在步骤S840中,控制器300可连续地扫描下一页面。下一页面可以是按写入操作的顺序位于当前扫描的页面之前的页面。步骤S830和S840可以迭代地执行直至当前扫描的当前页面是虚拟页面。
在扫描的当前页面是虚拟页面的情况下,在步骤S850中,控制器300可以读取存储在当前虚拟页面中的有效页面的P2L列表。此处,P2L列表可以是按写入操作的顺序位于当前虚拟页面之前的有效页面的P2L列表。在步骤S860中,控制器300可以确定按写入操作的顺序位于当前虚拟页面之前的在先虚拟页面是否存在。如上参照图6例示,其中在对单个开放块OBLK的写入操作的中间发生数次SPO,控制器300可以将在先虚拟页面(即第一虚拟页面D1)的位置信息作为数据头信息写入当前虚拟页面(即第二虚拟页面D2)中。因此,控制器300可以根据存储在当前虚拟页面中的数据头信息识别在先虚拟页面的存在和位置。
当作为步骤S860的确定结果在先虚拟页面存在时,控制器300可以从当前虚拟页面跳到在先虚拟页面,在步骤S870中扫描在先虚拟页面,并对在先虚拟页面重复步骤S850。换言之,不扫描当前虚拟页面和在先虚拟页面之间的有效页面。可以对包括在封闭块中的全部虚拟页面迭代地执行上述步骤S850至S870。
当作为步骤S860的确定结果在先虚拟页面不存在时,控制器300可以通过使用存储在全部虚拟页面中的有效页面的P2L列表而生成整个封闭块的P2L列表,并且可以通过使用生成的封闭块的P2L列表恢复随机存取存储器200的地址映射表。
现在参照图9,根据本发明的一个实施例,提供了固态驱动器(SSD)1000。
SSD 1000可以包括SSD控制器1100和存储介质1200。
SSD控制器1100可以控制主机装置1500和存储介质1200之间的数据交换。SSD控制器1100可以包括处理器1110、RAM 1120、ROM 1130、ECC单元1140、主机接口单元1150和存储接口单元1160。
SSD控制器1100可以与图1的控制器300大体上类似的方式操作。
处理器1110可以控制SSD控制器1100的一般操作。例如,处理器1110可以根据来自主机装置1500的请求将数据写入存储介质1200中并从存储介质1200读取存储的数据。为了有效地管理存储介质1200,处理器1110可以控制SSD 1000的一个或多个内部操作,诸如,例如合并操作、平均读写操作等。
RAM 1120可以存储将被处理器1110使用的程序和程序数据。RAM1120可以在将从主机接口单元1150传输的数据转移至存储介质1200之前暂时地存储该数据。RAM 1120可以在将从存储介质1200传输的数据转移至主机装置1500之前暂时地存储该数据。
ROM 1130可以存储将被处理器1110读取的程序代码。程序代码可以包括将被处理器1110处理以用于处理器1110控制SSD控制器1100的内部单元的指令。
ECC单元1140可以编码将被存储在存储介质1200中的数据,并且可以解码从存储介质1200读取的数据。ECC单元1140可以根据ECC算法检测和纠正数据中出现的错误。
主机接口单元1150可以与主机装置1500交换请求、数据等。
存储接口单元1160可以将控制信号和数据传输到存储介质1200。存储接口单元1160可以传输来自存储介质1200的数据。存储接口单元1160可以通过多个通道CH0至CHn(n是等于或大于2的整数)与存储介质1200电联接。
存储介质1200可以包括多个非易失性存储器装置NVM0至NVMn。多个非易失性存储器装置NVM0至NVMn的每个可以根据SSD控制器1100的控制而执行写入操作和读取操作。多个非易失性存储器装置NVM0至NVMn的每个可以与图1的非易失性存储器装置100大体上类似的方式配置和操作。
图10是示出根据应用的实施例的包括数据存储装置10的数据处理***2000的框图。
参照图10,根据一个实施例的数据处理***2000可以是或包括计算机、笔记本电脑、上网本、智能电话、数字TV、数码相机、导航器等。根据图10示出的实施例,数据处理***2000可以包括主处理器2100、主存储器装置2200、存储器装置2300和输入/输出装置2400。数据处理***2000的内部单元可以通过***总线2500交换数据、控制信号等。
主处理器2100可以控制数据处理***2000的一般操作。主处理器2100可以是中央处理单元,例如,诸如微处理器。主处理器2100可以执行主存储器装置2200上的软件,诸如操作***、应用、设备驱动程序等。
主存储器装置2200可以存储将被主处理器2100使用的程序和程序数据。主存储器装置2200可以暂时地存储将被传输到存储器装置2300和输入/输出装置2400的数据。
存储器装置2300可以包括存储器控制器2310和存储介质2320。存储器装置2300可以与图1的数据存储装置10大体上类似的方式配置和操作。
输入/输出装置2400可以是或包括键盘、扫描仪、触摸屏、鼠标等,其能够与用户交换数据,诸如从用户接收用于控制数据处理***2000的命令或提供处理的结果至用户。
根据一个实施例,数据处理***2000可以通过诸如LAN(局域网)、WAN(广域网)、无线网等网络2600与至少一个服务器2700通信。数据处理***2000可以包括网络接口单元(未示出)以访问网络2600。
虽然以上已经描述了包括数据存储装置及其操作方法的各个实施例,但本领域技术人员应理解所描述的实施例仅是实例且相关领域技术人员在不背离如权利要求所限定的本发明的精神和/或范围的情况下可以设想到许多其它的实施例或其变型。
Claims (16)
1.一种数据存储装置,其包括:
非易失性存储器装置,其包括存储块,由于所述数据存储装置至少发生一次突然断电即SPO而使对所述存储块的写入操作中断并且没有完成,其中所述存储块包括在中断前产生的包含一个或多个有效页面的至少一个第一有效页面组和由所述中断引起的具有一个或多个无效页面的至少一个无效页面组;以及
控制器,其适于:
在所述数据存储装置在所述SPO后被通电之后将所述存储块的第一有效页面组的至少一个物理地址-逻辑地址列表即P2L列表写入到所述存储块的无效页面组中,以及
在完成对所述存储块的写入操作后基于所述P2L列表恢复所述存储块的地址映射表。
2.根据权利要求1所述的数据存储装置,其中所述控制器通过以与对所述存储块的写入操作相反的方向扫描所述存储块来检测所述无效页面组,并且
其中所述写入操作从所述存储块的第一页面开始,并且以所述存储块的最后页面结束。
3.根据权利要求1所述的数据存储装置,其中所述控制器进一步将所述P2L列表写入与所述无效页面组连续的一个或多个空白页面中。
4.根据权利要求1所述的数据存储装置,其中所述控制器控制所述非易失性存储器装置继续对除所述第一有效页面组和所述无效页面组外的所述存储块的剩余页面的写入操作,以完成对所述存储块的写入操作。
5.根据权利要求4所述的数据存储装置,
其中,在完成对所述存储块的写入操作后,所述控制器通过以与对所述存储块的写入操作相反的方向扫描所述存储块的剩余页面来进一步生成包括一个或多个有效页面的第二有效页面组的P2L列表,其中在通电后继续对所述第二有效页面组的写入操作;以及
其中所述控制器基于所述第一有效页面组的P2L列表和所述第二有效页面组的P2L列表恢复所述地址映射表。
6.根据权利要求5所述的数据存储装置,其中在存储在所述无效页面组中的所述第一有效页面组的P2L列表异常的情况下,所述控制器通过扫描所述第一有效页面组而再次生成所述第一有效页面组的P2L列表,以恢复所述地址映射表,并且
其中所述P2L列表异常表示所述P2L列表不是有效数据。
7.根据权利要求1所述的数据存储装置,
其中,当所述SPO发生多次时,所述控制器将多个第一有效页面组的多个P2L列表分别写入到多个无效页面组中,
其中所述多个第一有效页面组分别对应于所述SPO的多次发生,所述多个无效页面组分别对应于所述SPO的多次发生,以及
其中所述控制器进一步将在先无效页面组的位置信息存储到所述多个无效页面组的下一无效页面组中。
8.根据权利要求7所述的数据存储装置,其中所述控制器通过凭借存储在所述无效页面组的每个中的位置信息定位所述多个无效页面组来读取所述多个P2L列表。
9.一种用于操作数据存储装置的方法,所述数据存储装置包括非易失性存储器装置,所述非易失性存储器装置包括存储块,由于所述数据存储装置至少发生一次突然断电即SPO而使对所述存储块的写入操作中断并且没有完成,其中所述存储块包括在中断前产生的包含一个或多个有效页面的至少一个第一有效页面组和由所述中断引起的具有一个或多个无效页面的至少一个无效页面组;所述方法包括:
在所述数据存储装置在所述SPO后被通电之后将所述存储块的第一有效页面组的至少一个物理地址-逻辑地址列表即P2L列表写入到所述存储块的无效页面组中;以及
在完成对所述存储块的写入操作后基于所述P2L列表恢复所述存储块的地址映射表。
10.根据权利要求9所述的方法,其进一步包括:
通过以与对所述存储块的写入操作相反的方向扫描所述存储块来检测所述无效页面组,
其中所述写入操作从所述存储块的第一页面开始,并且以所述存储块的最后页面结束。
11.根据权利要求9所述的方法,其中所述P2L列表的写入包括将所述P2L列表写入与所述无效页面组连续的一个或多个空白页面中。
12.根据权利要求9所述的方法,其进一步包括:继续对除所述第一有效页面组和所述无效页面组外的所述存储块的剩余页面的写入操作,以完成对所述存储块的写入操作。
13.根据权利要求12所述的方法,
其进一步包括:在完成对所述存储块的写入操作后,通过以与对所述存储块的写入操作相反的方向扫描所述存储块的剩余页面来生成包括一个或多个有效页面的第二有效页面组的P2L列表,其中在通电后继续对所述第二有效页面组的写入操作,以及
其中基于所述第一有效页面组的P2L列表和所述第二有效页面组的P2L列表执行所述地址映射表的恢复。
14.根据权利要求13所述的方法,其中,在存储在所述无效页面组中的所述第一有效页面组的P2L列表异常的情况下,所述地址映射表的恢复包括通过扫描所述第一有效页面来生成所述第一有效页面组的P2L列表,并且
其中所述P2L列表异常表示所述P2L列表不是有效数据。
15.根据权利要求14所述的方法,
其中,当所述SPO发生多次时,通过将多个第一有效页面组的多个P2L列表分别写入到多个无效页面中来执行所述P2L列表的写入,
其中所述多个第一有效页面组分别对应于所述SPO的多次发生,所述多个无效页面组分别对应于所述SPO的多次发生,并且
所述方法进一步包括将在先无效页面组的位置信息存储到所述多个无效页面组中的下一无效页面组中。
16.根据权利要求15所述的方法,其中所述地址映射表的恢复包括通过凭借存储在所述无效页面组的每个中的位置信息定位所述多个无效页面组来读取所述多个P2L列表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160012343A KR102625637B1 (ko) | 2016-02-01 | 2016-02-01 | 데이터 저장 장치 및 그것의 동작 방법 |
KR10-2016-0012343 | 2016-02-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107025185A CN107025185A (zh) | 2017-08-08 |
CN107025185B true CN107025185B (zh) | 2020-09-11 |
Family
ID=59387563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610592048.5A Active CN107025185B (zh) | 2016-02-01 | 2016-07-25 | 数据存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9940045B2 (zh) |
KR (1) | KR102625637B1 (zh) |
CN (1) | CN107025185B (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI546666B (zh) * | 2014-11-03 | 2016-08-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
KR20190061942A (ko) * | 2017-11-28 | 2019-06-05 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI653533B (zh) * | 2017-03-07 | 2019-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
KR102259256B1 (ko) * | 2017-05-16 | 2021-06-02 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102410296B1 (ko) * | 2017-11-06 | 2022-06-20 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
KR102415218B1 (ko) * | 2017-11-24 | 2022-07-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
TWI733964B (zh) * | 2017-12-13 | 2021-07-21 | 英業達股份有限公司 | 記憶體整體測試之系統及其方法 |
KR20190075563A (ko) * | 2017-12-21 | 2019-07-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102430798B1 (ko) * | 2018-01-11 | 2022-08-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102578191B1 (ko) * | 2018-04-09 | 2023-09-14 | 에스케이하이닉스 주식회사 | 리커버리 성능이 최적화된 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
CN108681509B (zh) * | 2018-04-20 | 2022-04-08 | 江苏华存电子科技有限公司 | 一种快速建立闪存映射表的方法 |
CN110459256A (zh) * | 2018-05-08 | 2019-11-15 | 美光科技公司 | 动态p2l异步功率损耗降低 |
KR20200019429A (ko) * | 2018-08-14 | 2020-02-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US11112997B2 (en) * | 2018-08-21 | 2021-09-07 | Samsung Electronics Co., Ltd. | Storage device and operating method thereof |
KR102590886B1 (ko) * | 2018-10-30 | 2023-10-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102102248B1 (ko) * | 2018-12-05 | 2020-04-20 | 성균관대학교산학협력단 | 솔리드 스테이트 드라이브 에뮬레이터의 동작 테스트 방법 |
KR102637478B1 (ko) | 2018-12-05 | 2024-02-15 | 삼성전자주식회사 | 오픈 채널 솔리드 스테이트 드라이브, 이를 포함하는 비휘발성 메모리 시스템 및 오픈 채널 솔리드 스테이트 드라이브의 파워 로스 프로텍션 방법 |
JP6708762B1 (ja) * | 2019-01-29 | 2020-06-10 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
KR20200113047A (ko) * | 2019-03-20 | 2020-10-06 | 삼성전자주식회사 | 오픈 채널 스토리지 장치의 동작 방법 |
TWI745695B (zh) * | 2019-05-22 | 2021-11-11 | 慧榮科技股份有限公司 | 用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置 |
CN112306742A (zh) * | 2019-07-23 | 2021-02-02 | 慧荣科技股份有限公司 | 瞬间断电回复处理方法及计算机可读取存储介质以及装置 |
CN112286721A (zh) * | 2019-07-23 | 2021-01-29 | 慧荣科技股份有限公司 | 瞬间断电回复处理方法及计算机可读取存储介质以及装置 |
KR20220007300A (ko) * | 2020-07-10 | 2022-01-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US11494111B2 (en) * | 2020-12-17 | 2022-11-08 | Micron Technology, Inc. | Data operation based on valid memory unit count |
US20220222008A1 (en) * | 2021-01-14 | 2022-07-14 | Silicon Motion, Inc. | Method for managing flash memory module and associated flash memory controller and memory device |
CN114911631B (zh) * | 2022-07-18 | 2022-10-21 | 深圳市泛联信息科技有限公司 | 基于持久内存技术的全局资源管理方法及*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231618A (zh) * | 2002-10-02 | 2008-07-30 | 松下电器产业株式会社 | 非易失性存储器装置的控制方法 |
CN101458961A (zh) * | 2007-10-31 | 2009-06-17 | 三星电子株式会社 | 非易失性存储设备中数据管理方法和映射表更新方法 |
CN101770809A (zh) * | 2008-12-31 | 2010-07-07 | J·埃金顿 | 非易失性存储器掉电后的恢复 |
CN101901189A (zh) * | 2009-05-26 | 2010-12-01 | 联发科技股份有限公司 | 更新用户数据的方法以及恢复用户数据的方法 |
CN102576332A (zh) * | 2009-10-01 | 2012-07-11 | 美光科技公司 | 电力中断管理 |
CN103530062A (zh) * | 2012-07-03 | 2014-01-22 | 群联电子股份有限公司 | 数据存储方法、存储器控制器与存储器存储装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100706808B1 (ko) * | 2006-02-03 | 2007-04-12 | 삼성전자주식회사 | 쓰기 버퍼로서 동작하는 불 휘발성 메모리를 구비한 데이터저장 장치 및 그것의 블록 회수 방법 |
KR102015053B1 (ko) * | 2013-02-20 | 2019-08-27 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 데이터 처리 방법 |
KR102025180B1 (ko) * | 2013-08-08 | 2019-09-26 | 삼성전자주식회사 | 스토리지 시스템 및 그것의 쓰기 방법 |
US9632880B2 (en) * | 2013-12-26 | 2017-04-25 | Silicon Motion, Inc. | Data storage device and flash memory control method |
KR102233808B1 (ko) * | 2014-03-14 | 2021-03-30 | 삼성전자주식회사 | 저장 장치 및 그것의 테이블 관리 방법 |
-
2016
- 2016-02-01 KR KR1020160012343A patent/KR102625637B1/ko active IP Right Grant
- 2016-06-07 US US15/175,998 patent/US9940045B2/en active Active
- 2016-07-25 CN CN201610592048.5A patent/CN107025185B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231618A (zh) * | 2002-10-02 | 2008-07-30 | 松下电器产业株式会社 | 非易失性存储器装置的控制方法 |
CN101458961A (zh) * | 2007-10-31 | 2009-06-17 | 三星电子株式会社 | 非易失性存储设备中数据管理方法和映射表更新方法 |
CN101770809A (zh) * | 2008-12-31 | 2010-07-07 | J·埃金顿 | 非易失性存储器掉电后的恢复 |
CN101901189A (zh) * | 2009-05-26 | 2010-12-01 | 联发科技股份有限公司 | 更新用户数据的方法以及恢复用户数据的方法 |
CN102576332A (zh) * | 2009-10-01 | 2012-07-11 | 美光科技公司 | 电力中断管理 |
CN103530062A (zh) * | 2012-07-03 | 2014-01-22 | 群联电子股份有限公司 | 数据存储方法、存储器控制器与存储器存储装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20170091389A (ko) | 2017-08-09 |
US9940045B2 (en) | 2018-04-10 |
CN107025185A (zh) | 2017-08-08 |
KR102625637B1 (ko) | 2024-01-17 |
US20170220274A1 (en) | 2017-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107025185B (zh) | 数据存储装置及其操作方法 | |
US11243709B2 (en) | Data storage apparatus and operating method thereof | |
KR102571747B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US10997039B2 (en) | Data storage device and operating method thereof | |
KR20200022118A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
US10007451B2 (en) | Scalable SPOR algorithm for flash memories | |
US10083114B2 (en) | Data storage device and operating method thereof | |
US20160179596A1 (en) | Operating method of data storage device | |
US11334272B2 (en) | Memory system and operating method thereof | |
CN112015329A (zh) | 存储***及其操作方法 | |
CN107066201B (zh) | 数据存储装置及其方法 | |
US20100011151A1 (en) | Data accessing method, and storage system and controller using the same | |
US10191790B2 (en) | Data storage device and error recovery method thereof | |
US9507710B2 (en) | Command execution using existing address information | |
CN107045484B (zh) | 数据存储装置 | |
US10691352B2 (en) | Data storage device and method of operating the same | |
US20210349825A1 (en) | Memory controller | |
CN108255637B (zh) | 数据存储装置及其操作方法 | |
CN113903384A (zh) | 存储器***、存储器控制器以及操作存储器***的方法 | |
CN109918315B (zh) | 存储器***及存储器***的操作方法 | |
US20190278703A1 (en) | Memory system, operating method thereof and electronic device | |
US11392310B2 (en) | Memory system and controller | |
US20150149740A1 (en) | Data storage device and data processing system including the same | |
US20200310873A1 (en) | Controller and memory system including the same | |
US20170109047A1 (en) | Data storage device 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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240613 Address after: American Texas Patentee after: Mimi IP Co.,Ltd. Country or region after: U.S.A. Address before: Gyeonggi Do, South Korea Patentee before: Sk Hynix Inc. Country or region before: Republic of Korea |