CN107402719A - 可用于数据储存装置的数据储存方法与数据回复程序、以及采用这些方法的数据储存装置 - Google Patents

可用于数据储存装置的数据储存方法与数据回复程序、以及采用这些方法的数据储存装置 Download PDF

Info

Publication number
CN107402719A
CN107402719A CN201710406527.8A CN201710406527A CN107402719A CN 107402719 A CN107402719 A CN 107402719A CN 201710406527 A CN201710406527 A CN 201710406527A CN 107402719 A CN107402719 A CN 107402719A
Authority
CN
China
Prior art keywords
data
numbering
comparisons
tables
data block
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.)
Granted
Application number
CN201710406527.8A
Other languages
English (en)
Other versions
CN107402719B (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.)
Silicon Motion Inc
Original Assignee
Silicon Motion 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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN107402719A publication Critical patent/CN107402719A/zh
Application granted granted Critical
Publication of CN107402719B publication Critical patent/CN107402719B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • 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/0793Remedial or corrective actions
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提出可用于数据储存装置的一种数据储存方法与一种数据回复程序,以及采用这些方法的数据储存装置。数据储存方法包括:选取主动数据区块以储存来自主机的数据;判断是否发生电源中断事件;当判断为是时,记录主动数据区块的编号、以及主动数据区块中具有数据的最后一个数据页的编号;产生主要F2H对照表;以及将主要F2H对照表、主动数据区块的编号、以及具有数据的最后一个数据页的编号写入至指定数据区块。

Description

可用于数据储存装置的数据储存方法与数据回复程序、以及 采用这些方法的数据储存装置
技术领域
本发明是有关于数据储存的技术,尤其是有关于可用于数据储存装置的一种数据储存方法与一种数据回复程序、以及一种采用这些方法的数据储存装置。
背景技术
传统上,采用非易失性存储器(non-volatile memory)作为数据储存媒体的数据储存装置在运作时如果发生电源中断事件,必需立即产生实体地址至逻辑地址(flashphysical-to-host Logical address mapping table,F2H)对照表,以下简称为F2H对照表,以建立用户数据的实体地址(physical address)至逻辑地址(logical address)之间的对应关系(简称对应关系),避免用户数据的遗失。由此可知,F2H对照表对于数据储存装置的运作极为重要。
然而,电源中断事件发生后,数据储存装置需要在所剩无几的时间内建立并储存F2H对照表。因此,如何建立一个精简的F2H对照表并将它储存至适当的地方,以便复电时数据储存装置可以依据F2H对照表而取得用户数据,存在着实作上的需求。
发明内容
本发明的一目的在提供可用于数据储存装置的数据储存方法,以此方法所产生的F2H对照表的数据量较少。
本发明的另一目的在提供可用于数据储存装置的数据储存方法,以此方法所产生的F2H对照表的数据量较少。
本发明的再一目的在提供一种采用上述方法的数据储存装置。
本发明提出一种可用于数据储存装置的数据储存方法,此数据储存方法包括下列步骤:选取主动数据区块以储存来自主机的数据;判断是否发生电源中断事件;当判断为是时,记录主动数据区块的编号、以及主动数据区块中具有数据的最后一个数据页的编号;产生主要F2H对照表;以及将主要F2H对照表、主动数据区块的编号、以及具有数据的最后一个数据页的编号写入至指定数据区块。
本发明另提出一种可用于数据储存装置的数据储存方法,此数据储存方法包括下列步骤:选取主动数据区块以储存来自主机的数据;判断是否发生电源中断事件;当判断为是时,进一步判断主动数据区块是否已发生另一个电源中断事件;当进一步判断的结果为否时,记录主动数据区块的编号、以及主动数据区块中具有数据的最后一个数据页的主要编号;产生主要F2H对照表;以及将主要F2H对照表、主动数据区块的编号、以及具有数据的最后一个数据页的主要编号写入至指定数据区块。
本发明再提出一种可用于数据储存装置的数据回复程序,此数据回复程序包括下列步骤:读取指定数据区块而取得F2H对照表、主动数据区块的编号、以及具有数据的最后一个数据页的编号;判断F2H对照表的内容是否与主动数据区块的编号以及具有数据的最后一个数据页的编号一致;当判断为是时,将F2H对照表储存至易失性储存媒体;以及选取主动数据区块以储存来自主机的数据。
本发明又提出一种数据储存装置,包括非易失性储存媒体以及控制单元。控制单元用以自非易失性储存媒体选取主动数据区块以储存来自主机的数据,并判断是否发生电源中断事件。当判断为是时,控制单元便记录主动数据区块的编号、以及主动数据区块中具有数据的最后一个数据页的编号,据以产生主要F2H对照表,并将主要F2H对照表、主动数据区块的编号、以及具有数据的最后一个数据页的编号写入至非易失性储存媒体中的指定数据区块。
本发明又另提出一种数据储存装置,包括有非易失性储存媒体以及控制单元。控制单元用以自易失性储存媒体选取主动数据区块以储存来自主机的数据,并判断是否发生电源中断事件,当判断为是时,进一步判断主动数据区块是否已发生另一个电源中断事件。且当进一步判断的结果为否时,控制单元便记录主动数据区块的编号、以及主动数据区块中具有数据的最后一个数据页的主要编号,据以产生主要F2H对照表,并将主要F2H对照表、主动数据区块的编号、以及具有数据的最后一个数据页的主要编号写入至非易失性储存媒体的指定数据区块。
本发明又再提出一种数据储存装置,包括有易失性储存媒体、非易失性储存媒体以及控制单元。控制单元用以读取非易失性储存媒体中的指定数据区块而取得F2H对照表、主动数据区块的编号、以及具有数据的最后一个数据页的编号,并判断F2H对照表的内容是否与主动数据区块的编号以及具有数据的最后一个数据页的编号一致。当判断为是时,控制单元便将F2H对照表储存至易失性储存媒体,并自非易失性储存媒体选取主动数据区块以储存来自主机的数据。
在本发明中,由于控制单元在电源中断时所产生的F2H对照表仅记录部份数据页的数据的对应关系,因此,产生的F2H对照表的数据量会少于采习知方法所产生的完整F2H对照表的数据量,不但可以降低F2H对照表的数据量,更能减少产生的F2H对照表所需要的时间,且将F2H对照表储存至具有较佳数据保存能力的数据区块中,更能提供F2H对照表较佳的保护。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举优选实施例,并配合附图,详细说明如下。
附图说明
图1绘有依照本发明一实施例的数据储存装置及与主机的电性耦接关系。
图2绘有依照本发明一实施例的非易失性储存媒体220的实现方式。
图3为依照本发明一实施例的数据储存方法的流程图。
图4为依照本发明另一实施例的数据储存方法的流程图。
图5为本发明一实施例的数据回复程序的流程。
具体实施方式
图1绘有依照本发明一实施例的数据储存装置及与主机的电性耦接关系。请参照图1,主机100主要包括中央处理单元110与连接接口120。连接接口120适于电性耦接数据储存装置200。中央处理单元110用以透过连接接口120传送命令、数据给数据储存装置200,例如是传送读取命令给数据储存装置200,或是传送写入命令及欲写入数据储存装置200的数据给数据储存装置200。而在此例中,主机100包括以计算机、手机、平板、相机或是其他具运算功能的手持式电子装置来实现。
数据储存装置200主要包括控制单元210、非易失性储存媒体220与易失性储存媒体230。控制单元210电性耦接非易失性储存媒体220与易失性储存媒体230,并用以控制非易失性储存媒体220与易失性储存媒体230的操作(例如进行数据的存取与擦写)。在此例中,非易失性储存媒体220例如是以闪存(flash memory)、磁阻式随机存取存储器(magnetoresistive RAM)、铁电随机存取存储器(ferroelectric RAM)等具有长时间数据保存的存储器装置来实现,在下述的说明中将以闪存为例进行说明,但不以此为限。
易失性储存媒体230例如是以动态随机存取存储器(dynamic random-accessMemory,DRAM)、静态随机存取存储器(static random-access memory, SRAM)等具有数据缓冲(data buffering)功能的组件来实现。
控制单元210主要包括接口逻辑212、微处理器214与控制逻辑216。微处理器214电性耦接接口逻辑212与控制逻辑214。微处理器214用以透过控制逻辑216存取非易失性储存媒体220与易失性储存媒体230中的数据,且微处理器214还用以透过接口逻辑212接收来自主机100的命令或数据,例如:写入命令、欲写入数据储存装置200的数据、读取命令、抺除命令等。
图2绘有依照本发明一实施例的非易失性储存媒体220的实现方式。请参照图2,非易失性储存媒体220包括存储器0~4。存储器0较佳为SLC(single level cell,单阶储存单元)类型闪存,以提供较大的数据存取能力或较佳的数据正确性(data integrity)。存储器0可用以储存机密(confidential)数据、保护(protection)数据或管理(management)数据,其中,保护数据报括:用户设定的安全信息(例如密码)、侦错日志等,其中侦错日志较佳为S.M.A.R.T.(self-monitoring analysis and reporting technology,自我监测、分析及报告技术)信息。存储器0具有多个SLC类型数据区块240,而每一个SLC类型数据区块240较佳具有二个平面(planes),分别以平面P1与P2来表示。每一个平面具有Q+1个实体数据页(physical page),其中Q为自然数,例如是256。控制单元210较佳可同时对平面P1与P2的一个数据页进行存取,此运作模式称为多平面(multi-planes)存取,并将此二个平面P1与P2数据页逻辑上视为一个多平面数据页250。想当然尔,控制单元210亦可分别对平面P1与P2的一个数据页进行存取,此为实作上的选项,并不以此为限。
存储器1~4较佳为TLC(triple-level cell,三阶储存单元)类型闪存,用以储存用户数据。每一存储器1~4亦具有多个TLC类型数据区块,每一个TLC类型数据区块具有二个平面,分别以P1与P2来表示,支持多平面(multi-planes)存取;每一个平面具有R+1个数据页(或称实体数据页,physical page),其中R为自然数,例如是2304。控制单元210较佳可同时对存储器1~4的一个TLC类型数据区块进行存取,此时,逻辑上可将总共4个TLC类型数据区块视为一个超级数据区块260,并将总共8个数据页视为一个超级数据页270。想当然尔,控制单元210亦可只选取存储器1~4的其中一个数据区块进行存取,此为实作上的选项,并不以此为限。
在实作上,存储器0亦可为操作于binary mode的MLC(multi-level cell,多阶储存单元)或TLC类型闪存;存储器1~4亦可为MLC或SLC类型闪存。使用者可以依实际需求而进行替换,并不以本发明中的设定为限。
图3为依照本发明一实施例的数据储存方法的流程图,请同时参照图1~3。步骤S301:选取一个主动数据区块以储存来自主机100的数据。当数据储存装置200接收来自主机100的写入命令时,数据储存装置200的控制单元210便会选取一个超级数据区块260,例如:超级数据区块#0,作为主动数据区块,以储存来自主机100的数据,而来自主机100的数据较佳系依序储存至超级数据区块#0的超级数据页270。假设超级数据区块#0包含2304个超级数据页270,则来自主机100的数据较佳先从超级数据区块#0的超级数据页#0开始写入数据,接着是超级数据页#1,以下依此类推。如果超级数据区块#0已写满数据,则控制单元210便会选取另一个超级数据区块260,例如超级数据区块#1,作为主动数据区块,以储存后续的数据。
步骤S302,判断是否发生电源中断事件。控制单元210会持续地判断是否发生电源中断事件。当主机100因故停止对数据储存装置200进行供电,或要求数据储存装置200进入指定的电力状态(power state)以节约电力的消耗,皆可能触发电源中断事件。
步骤S303,记录主动数据区块的编号以及主动数据区块中具有数据的最后一个数据页的编号。假设发生电源中断事件时,最后一个完成数据写入或即将完成数据写入的是超级数据区块#0的超级数据页#63,则超级数据页#63为具有数据的最后一个超级数据页270,那么控制单元210就会将超级数据区块的编号0与超级数据页270的编号63这二者记录下来。
步骤S304,产生主要F2H对照表,其中,主要F2H对照表系记录具有数据的最后一个数据页及之前的所有数据页的数据的对应关系。以前述的例子来说,此主要F2H对照表系记录超级数据区块#0的超级数据页#63及以前的所有超级数据页270,即超级数据页#0至超级数据页#63共计64个超级数据页270,的数据的对应关系。相较于习知方法,依习知方法所产生的完整F2H对照表则需要将超级数据页#0至超级数据页#2303,总共2304个超级数据页270,的数据的对应关系通通记录下来。对比之下,依本发明的数据储存方法所产生的主要F2H对照表仅为完整F2H对照表的一部份,除了数据量较少之外,产生主要F2H对照表所需的时间亦较短。
在步骤S304的另一实施例中,主要F2H对照表仅记录具有数据的最后一个数据页及以前的所有数据页的有效数据的对应关系。以前述的例子来说,最后一个具有数据的数据页是超级数据页#63,假设超级数据页#0~#63所储存的数据皆为有效数据,则控制单元210会产生包含超级数据页#0~#63的数据的对应关系的主要F2H对照表,此主要F2H对照表的内容与上一实施例相同;假设超级数据页#0~#63中仅超级数据页#60~#63所储存的数据为有效数据,则控制单元210仅产生包含超级数据页#60~#63的数据的对应关系的主要F2H对照表,如此一来,此实施例的主要F2H对照表的大小会小于上一实施例。综上所述,依此实施例所产生的主要F2H对照表的数据量会小于完整F2H对照表的数据量。
步骤S305,将主要F2H对照表、主动数据区块的编号、以及具有数据的最后一个数据页的编号写入至指定数据区块,其中,指定数据区块与主动数据区块较佳为不同类型的数据区块,或指定数据区块的每个储存单元(cell)的数据储存能力不大于主动数据区块的每个储存单元(cell)的数据储存能力,或指定数据区块不用以储存来自主机100的数据。以上述为例,控制单元210便将产生的主要F2H对照表、超级数据区块260的编号0、以及具有数据的最后一个超级数据页270的编号63写入至SLC类型数据区块#0的多平面数据页250。
依习知方法所产生的完整F2H对照表,记录超级数据区块#0的2304个超级数据页270的数据的对应关系,而储存此完整F2H对照表共需要SLC类型数据区块240中的72个多平面数据页250来储存,则较佳将完整F2H对照表分割成72份,使每一分割后的完整F2H对照表可储存至SLC类型数据区块240的一个数据页,并分别给予一个编号,例如编号0~71,则第一个分割后的完整F2H对照表为F2H#0对照表,第72个分割后的完整F2H对照表为F2H#71对照表,而每一个分割后的完整F2H对照表系可记录32个超级数据页270的数据的对应关系。另外,使用者亦可使每一分割后的完整F2H对照表可储存至SLC类型数据区块240的复数个数据页,运作原理相似,故不多作说明。由于主要F2H对照表以及SLC类型数据区块240的多平面数据页250的大小为已知,因此,控制单元210可以计算出储存主要F2H对照表所需的多平面数据页250的数目,并将主要F2H对照表予以分割, 每一个分割后的主要F2H对照表给予一个编号(index),而此编号与分割后的完整F2H对照表的编号一致。
由于主要F2H对照表仅为完整F2H对照表的一部份,假设主要F2H对照表需储存至SLC类型数据区块240的二个多平面数据页250,那么控制单元210可将主要F2H对照表分割并写入至多平面数据页#K与#K+1,其中K亦为自然数,并在这二个多平面数据页250中分别储存F2H#0对照表与F2H#1对照表。较佳地,F2H#0对照表与F2H#1对照表的编号,即编号0以及1,可分别记录在多平面数据页#K与#K+1的诠释数据(matadata)中,以作为日后数据确认的依据。此外,超级数据区块260的编号(即编号0)、以及具有数据的最后一个超级数据页270的编号(即编号63)亦可记录在多平面数据页#K与#K+1的诠释数据中,同样可以作为日后数据确认的依据。
由于SLC类型闪存240的可靠性(即错误率)优于MLC类型闪存的可靠性,而MLC类型闪存的可靠性又优于TLC类型闪存的可靠性,因此将步骤S303所产生的主要F2H对照表储存在SLC类型数据区块240可以使主要F2H对照表得到较好的保护。
图4为依照本发明另一实施例的数据储存方法的流程图,相较于图3所对应的实施例,图4所对应的实施例可适用于同一主动数据区块上发生多重电源中断事件的处理。步骤S401:选取一个主动数据区块以储存来自主机100的数据;S402:判断是否发生电源中断事件。由于步骤S401与S301相同,步骤S402与S302相同,故不多作说明。
步骤S403,当步骤S402的判断结果为是时,判断此主动数据区块是否已发生另一电源中断事件。以前述例子来说就是判断超级数据区块#0是否已发生上述另一电源中断事件。
步骤S404,当步骤S403的判断结果为否时,记录主动数据区块的编号以及主动数据区块中具有数据的最后一个数据页的主要编号;步骤S405,产生主要F2H对照表,其中,主要F2H对照表系记录具有数据的最后一个数据页及其之前的所有数据页的数据的对应关系;步骤S406,将主要F2H对照表、主动数据区块的编号、以及具有数据的最后一个数据页的主要编号写入至指定数据区块,其中,指定数据区块与主动数据区块较佳为不同类型的数据区块,或指定数据区块的每个储存单元的数据储存能力不大于主动数据区块的每个储存单元的数据储存能力,或指定数据区块不用以储存来自主机100的数据。由于步骤S404与S303类似,步骤S405与S304相同,步骤S406与S305类似,主要的差异乃在于具有数据的最后一个数据页的编号变更为具有数据的最后一个数据页的主要编号,故不多作说明。
步骤S407,当步骤S403的判断结果为是时,记录主动数据区块的编号、以及具有数据的最后一个数据页的次要编号。假设超级数据区块#0曾发生过电源中断事件(称为第一次电源中断事件),且当时最后一个具有数据的超级数据页270是超级数据页#63。现在又再度发生电源中断事件(称为第二次电源中断事件),且最后一个具有数据的超级数据页270是超级数据页#127,那么控制单元210就会记录超级数据区块的编号0、以及超级数据页的编号127(即次要编号)。
步骤S408,产生次要F2H对照表,此次要F2H对照表系记录步骤S404的主要编号以及步骤S407的次要编号,此两个编号之间的所有数据页的数据的对应关系。控制单元210会产生一个次要F2H对照表,此次要F2H对照表系记录第一次电源中断事件时最后一个具有数据的超级数据页270的编号(即编号63)以及第二次电源中断事件时最后一个具有数据的超级数据页270的编号(编号127),两个编号之间的所有超级数据页270的数据的对应关系。由于次要F2H对照表系记录超级数据区块#0的超级数据页#64至超级数据页#127这64个超级数据页270的数据的对应关系,而非超级数据页#0至超级数据页#127这128个超级数据页270的数据的对应关系,因此,控制单元210仅需较少的时间即能完成次要F2H对照表的建立。
步骤S409,将次要F2H对照表、主动数据区块的编号、以及具有数据的最后一个数据页的次要编号写入至指定数据区块。控制单元210便将新产生的次要F2H对照表、超级数据区块260的编号(即编号0)、以及第二次电源中断时具有数据的的最后一个超级数据页270的次要编号(即编号127)写入至 SLC类型数据区块#0的多平面数据页250。
假设记录超级数据页#64至超级数据页#127这64个超级数据页270的数据的对应关系的次要F2H对照表需以SLC类型数据区块240中的二个多平面数据页250来储存,那么控制单元210可将次要F2H对照表分割并分别写入至多平面数据页#K+2与#K+3,并在这二个多平面数据页250中分别储存F2H#2对照表与F2H#3对照表。较佳地,F2H#2对照表与F2H#3对照表的编号,即编号2以及3,超级数据区块260的编号(即编号0)、以及具有数据的最后一个超级数据页270的编号(即编号127)记录在多平面数据页#K+2与#K+3的诠释数据中,以作为日后数据确认的依据。
假设记录超级数据页#64至超级数据页#127这64个超级数据页270的数据并非全是新的数据,而是更新后的数据,则分割后的F2H对照表的编号有可能会重复。例如,超级数据页#64至超级数据页#127所储存的数据报含32笔新的数据以及超级数据页#0-31的更新数据,则次要F2H对照表包含F2H#2对照表与更新后的F2H#0对照表,则控制单元210可将F2H#2对照表与更新后的F2H#0对照表储存至多平面数据页#K+2与#K+3,并将F2H#2对照表与更新后的F2H#0对照表的编号,即编号2以及0,可分别记录在多平面数据页#K+2与#K+3的诠释数据(matadata)中,以作为数据确认的依据。此外,超级数据区块260的编号(即编号0)、以及具有数据的最后一个超级数据页270的编号(即编号127)亦可记录在多平面数据页#K+2与#K+3的诠释数据中,同样可以作为数据确认的依据。
图5为本发明一实施例的数据回复程序的流程,本发明数据回复程序可应用于数据储存装置200,以便于复电后进行数据回复。步骤S501,读取指定数据区块而取得F2H对照表、主动数据区块的编号以及具有数据的最后一个数据页的编号。控制单元210读取SLC类型数据区块240的内容可以取得F2H对照表,例如,步骤S305所储存的主要F2H对照表,或是步骤S406所储存的主要F2H对照表以及步骤S409所储存的次要F2H对照表。
步骤S502判断F2H对照表的内容是否与主动数据区块的编号以及具有数据的最后一个数据页的编号一致。由于F2H对照表的编号乃已建立,因此,藉由诠释数据所记录的F2H对照表的编号即可得知分割后的F2H对照表的总数。再判断是否需要将分割后的F2H对照表予以合并,即可得到完整的主要F2H对照表以及次要F2H对照表。主要F2H对照表及次要F2H对照表的内容本身含有主动数据区块的编号以及具有数据的最后一个数据页的编号(主要编号及次要编号)的信息,控制单元210可藉比对此些数据即可得到判断的结果。假设诠释数据所记录的主动数据区块是超级数据区块#0,且具有数据的最后一个超级数据页270的主要编号是63,次要编号是127,那么控制单元210就会判断出这些是否符合主要F2H对照表以及次要F2H对照表的记录。如果F2H对照表包括主要F2H对照表以及次要F2H对照表,由于次要F2H对照表仅记录第一次电源中断事件后所新增或更新的数据的对应关系,因此,次要F2H对照表需结合主要F2H对照表的才是完整的F2H对照表,也才能得到超级数据区块#0中所有具有数据的超级数据页270的数据的对应关系。假如分割后的次要F2H对照表的编号与分割后的主要F2H对照表的编号重复时,如上述例子中所述的F2H#0对照表,这表示于第一次电源中断事件后,超级数据页#0~#31的数据已被更新,因此,超级数据页#0~#31的数据的对应关系将以分割后的次要F2H对照表(即F2H#0对照表)为准。
步骤S503,如果步骤S502的判断结果为是,则将F2H对照表储存至易失性储存媒体230。控制单元210会将主要F2H对照表储存至易失性储存媒体230,或同时将主要F2H对照表及次要F2H对照表储存至易失性储存媒体230。
步骤S504,选取主动数据区块以储存来自主机100的数据。以上述为例,由于超级数据区块#0仍有空间可以储存来自主机100的数据,则控制单元210会将后续的数据写入至超级数据区块#0中。以上述为例,如果F2H对照表仅包含主要F2H对照表,则后续的数据将写入至超级数据页#64以及后续的超级数据页270;如果F2H对照表包含主要F2H对照表以及次要F2H对照表,则后续的数据将写入至超级数据页#128以及后续的超级数据页270。
在另一实施例中,于步骤S503,控制单元210会将F2H对照表写入主动数据区块,并于步骤S504,选取另一个超级数据区块260,例如超级数据区块#1,作为主动数据区块,以储存来自主机100的数据。或者,于步骤S503,控制单元210会将主要F2H对照表以及次要F2H对照表写入主动数据区块,并于步骤S504,选取另一个超级数据区块260,例如超级数据区块#1,作为主动数据区块,以储存来自主机100的数据。在此实施例中,由于超级数据区块#0发生过电源中断事件,数据储存能力可能已受到影响,因此,将超级数据区块#0予以关闭,并选取超级数据区块#1作为主动数据区块,可以降低数据流失的风险。此外,若步骤S502中的判断结果为否,则控制单元210将执行数据修复程序(如步骤S505所示),由于数据修复程序为习知技术,故不多作说明。
综上所述,在本发明中,由于控制单元210在电源中断时所产生的主要或次要F2H对照表仅记录有储存数据的数据页的数据的对应关系,因此,产生的主要或次要F2H对照表的数据量会少于采习知方法所产生的完整F2H对照表的数据量,不但可以降低主要或次要F2H对照表的数据量,更能减少产生主要或次要F2H对照表所需要的时间,且将主要或次要F2H对照表储存至具有较佳数据保存能力的数据区块中,更能提供主要或次要F2H对照表较佳的保护。
虽然本发明以前述的实施例揭露如上,然其并非用于限定本发明,任何熟习此技艺者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的专利保护范围须视本说明书所附的申请专利范围所界定者为准。

Claims (14)

1.一种可用于数据储存装置的数据储存方法,其特征在于,所述数据储存方法包括:
选取一主动数据区块以储存来自一主机的数据;
判断是否发生一电源中断事件;
当判断为是时,记录所述主动数据区块的编号、以及所述主动数据区块中具有数据的最后一个数据页的编号;
产生一主要F2H对照表;以及
将所述主要F2H对照表、所述主动数据区块的编号、以及具有数据的最后一个数据页的编号写入至一指定数据区块。
2.如权利要求1所述的数据储存方法,其特征在于,所述主要F2H对照表记录具有数据的最后一个数据页及之前的所有数据页的数据的对应关系。
3.如权利要求1所述的数据储存方法,其特征在于,所述主要F2H对照表记录具有数据的最后一个数据页及之前的所有数据页的有效数据的对应关系。
4.如权利要求1所述的数据储存方法,其特征在于,更包括将所述主要F2H对照表予以分割,并对每个分割后的所述主要F2H对照表给予一编号,并将所述编号也写入至所述指定数据区块。
5.一种可用于数据储存装置的数据储存方法,其特征在于,所述数据储存方法包括:
选取一主动数据区块以储存来自主机的数据;
判断是否发生一电源中断事件;
当判断为是时,进一步判断所述主动数据区块是否已发生另一个电源中断事件;
当进一步判断的结果为是时,记录所述主动数据区块的编号、以及具有数据的最后一个数据页的次要编号;
产生一次要F2H对照表;以及
将所述次要F2H对照表、所述主动数据区块的编号、以及具有数据的最后一个数据页的所述次要编号写入至一指定数据区块。
6.如权利要求5所述的数据储存方法,其特征在于,所述次要F2H对照表记录一主要编号与所述次要编号之间的所有数据页的数据的对应关系。
7.如权利要求5所述的数据储存方法,其特征在于,更包括将所述次要F2H对照表予以分割,并对每一个分割后的所述次要F2H对照表给予一编号,并将所述编号也写入至所述指定数据区块。
8.一种可用于数据储存装置的数据回复程序,其特征在于,所述数据回复程序包括下列步骤:
读取一指定数据区块而取得一F2H对照表、一主动数据区块的编号、以及具有数据的最后一个数据页的编号;
判断所述F2H对照表的内容是否与所述主动数据区块的编号以及具有数据的最后一个数据页的编号一致;
当判断为是时,将所述F2H对照表储存至一易失性储存媒体;以及
选取所述主动数据区块以储存来自主机的数据。
9.如权利要求8所述的数据回复程序,其特征在于,当判断为否时,执行一数据修复程序。
10.一种数据储存装置,其特征在于,包括:
一非易失性储存媒体;以及
一控制单元,用以自所述非易失性储存媒体选取一主动数据区块以储存来自主机的数据,并判断是否发生电源中断事件,当判断为是时,记录所述主动数据区块的编号、以及所述主动数据区块中具有数据的最后一个数据页的编号,据以产生一主要F2H对照表,并将所述主要F2H对照表、所述主动数据区块的编号、以及具有数据的最后一个数据页的编号写入至所述非易失性储存媒体中的一指定数据区块。
11.一种数据储存装置,其特征在于,包括:
一非易失性储存媒体;以及
一控制单元,用以自所述非易失性储存媒体选取一主动数据区块以储存来自主机的数据,并判断是否发生一电源中断事件,当判断为是时,进一步判断所述主动数据区块是否已发生另一个电源中断事件,且当进一步判断的结果为是时,记录所述主动数据区块的编号、以及具有数据的最后一个数据页的一次要编号;产生一次要F2H对照表;以及将所述次要F2H对照表、所述主动数据区块的编号、以及具有数据的最后一个数据页的次要编号写入至一指定数据区块。
12.如权利要求10所述的数据储存装置,其特征在于,所述控制单元更包括将所述次要F2H对照表予以分割,并对每一个分割后的所述次要F2H对照表给予编号,并将所述编号也写入至所述指定数据区块。
13.一种数据储存装置,其特征在于,包括:
一易失性储存媒体;
一非易失性储存媒体;以及
一控制单元,用以读取所述非易失性储存媒体中的一指定数据区块而取得一F2H对照表、主动数据区块的编号、以及具有数据的最后一个数据页的编号,并判断所述F2H对照表的内容是否与所述主动数据区块的编号以及具有数据的最后一个数据页的编号一致,当判断为是时,将所述F2H对照表储存至所述易失性储存媒体,并自所述非易失性储存媒体选取一主动数据区块以储存来自主机的数据。
14.如权利要求13所述的数据储存装置,其特征在于,当判断为否时,所述控制单元执行一数据修复程序。
CN201710406527.8A 2016-11-25 2017-06-02 可用于数据储存装置的数据储存方法与数据回复方法、以及采用这些方法的数据储存装置 Active CN107402719B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW105138978 2016-11-25
TW105138978A TWI591533B (zh) 2016-11-25 2016-11-25 可用於資料儲存裝置之資料儲存方法與資料回復程序、以及採用這些方法的資料儲存裝置

Publications (2)

Publication Number Publication Date
CN107402719A true CN107402719A (zh) 2017-11-28
CN107402719B CN107402719B (zh) 2020-10-16

Family

ID=60048250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710406527.8A Active CN107402719B (zh) 2016-11-25 2017-06-02 可用于数据储存装置的数据储存方法与数据回复方法、以及采用这些方法的数据储存装置

Country Status (3)

Country Link
US (1) US10579483B2 (zh)
CN (1) CN107402719B (zh)
TW (1) TWI591533B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102457564B1 (ko) * 2017-09-20 2022-10-21 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11275512B2 (en) * 2018-05-08 2022-03-15 Micron Technology, Inc. Asynchronous power loss impacted data structure
JP6708762B1 (ja) * 2019-01-29 2020-06-10 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN113535459B (zh) 2020-04-14 2024-04-12 慧荣科技股份有限公司 响应电源事件的数据存取方法及装置
KR20220133003A (ko) * 2021-03-24 2022-10-04 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727401A (zh) * 2008-10-15 2010-06-09 慧国(上海)软件科技有限公司 连接表的回复方法
CN101876949A (zh) * 2009-11-30 2010-11-03 威盛电子股份有限公司 数据储存系统与方法
CN101957798A (zh) * 2009-07-17 2011-01-26 旺宏电子股份有限公司 具有存储器集成电路的装置
TW201308089A (zh) * 2011-08-02 2013-02-16 Hon Hai Prec Ind Co Ltd 資料高速傳輸電路與方法
KR20150017990A (ko) * 2013-08-08 2015-02-23 삼성전자주식회사 서버 클러스터의 데이터 분배 방법 및 장치
US20150113237A1 (en) * 2013-10-21 2015-04-23 SK Hynix Inc. Data storing system and operating method thereof
CN104881334A (zh) * 2015-02-06 2015-09-02 北京飞杰信息技术有限公司 缓存数据的防掉电保护方法及系统
KR101676175B1 (ko) * 2015-06-16 2016-11-14 한양대학교 산학협력단 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4317607B2 (ja) 1998-12-14 2009-08-19 株式会社日立製作所 情報処理装置、耐タンパ処理装置
KR100588199B1 (ko) 2004-12-07 2006-06-08 주식회사 팬택 휴대 단말기에서 프로그램 다운로드 실패시 이의 복구방법 및 이를 적용한 휴대 단말기
CN101458659A (zh) 2007-12-14 2009-06-17 环达电脑(上海)有限公司 闪存储存系统及其方法
US8495423B2 (en) * 2009-08-11 2013-07-23 International Business Machines Corporation Flash-based memory system with robust backup and restart features and removable modules
TW201107970A (en) 2009-08-21 2011-03-01 Hsu Hsiu Yu Memory accessing method for microcontroller
US8886870B2 (en) * 2010-05-25 2014-11-11 Marvell World Trade Ltd. Memory access table saving and restoring system and methods
US9164887B2 (en) * 2011-12-05 2015-10-20 Industrial Technology Research Institute Power-failure recovery device and method for flash memory
TWI448891B (zh) 2012-09-06 2014-08-11 Silicon Motion Inc 資料儲存裝置與快閃記憶體控制方法
US9268682B2 (en) * 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
JP2016506585A (ja) * 2013-01-08 2016-03-03 ヴァイオリン メモリー インコーポレイテッド データストレージのための方法及びシステム
US9830257B1 (en) * 2013-06-12 2017-11-28 Western Digital Technologies, Inc. Fast saving of data during power interruption in data storage systems
US9645896B2 (en) 2013-12-26 2017-05-09 Silicon Motion, Inc. Data storage device and flash memory control method
US10915256B2 (en) * 2015-02-25 2021-02-09 SK Hynix Inc. Efficient mapping scheme with deterministic power transition times for flash storage devices
CN106095699B (zh) * 2015-03-20 2020-12-01 爱思开海力士有限公司 用于快闪存储器的可扩展spor算法
US9940261B2 (en) * 2016-05-05 2018-04-10 Western Digital Technology, Inc. Zoning of logical to physical data address translation tables with parallelized log list replay
US20180260319A1 (en) * 2017-03-10 2018-09-13 Toshiba Memory Corporation Writing ssd system data

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727401A (zh) * 2008-10-15 2010-06-09 慧国(上海)软件科技有限公司 连接表的回复方法
CN101957798A (zh) * 2009-07-17 2011-01-26 旺宏电子股份有限公司 具有存储器集成电路的装置
CN101876949A (zh) * 2009-11-30 2010-11-03 威盛电子股份有限公司 数据储存系统与方法
TW201308089A (zh) * 2011-08-02 2013-02-16 Hon Hai Prec Ind Co Ltd 資料高速傳輸電路與方法
KR20150017990A (ko) * 2013-08-08 2015-02-23 삼성전자주식회사 서버 클러스터의 데이터 분배 방법 및 장치
US20150113237A1 (en) * 2013-10-21 2015-04-23 SK Hynix Inc. Data storing system and operating method thereof
CN104881334A (zh) * 2015-02-06 2015-09-02 北京飞杰信息技术有限公司 缓存数据的防掉电保护方法及系统
KR101676175B1 (ko) * 2015-06-16 2016-11-14 한양대학교 산학협력단 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법

Also Published As

Publication number Publication date
TWI591533B (zh) 2017-07-11
US20180150357A1 (en) 2018-05-31
TW201820116A (zh) 2018-06-01
US10579483B2 (en) 2020-03-03
CN107402719B (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
CN107402719A (zh) 可用于数据储存装置的数据储存方法与数据回复程序、以及采用这些方法的数据储存装置
CN111475425B (zh) 管理闪存模块的方法及相关的闪存控制器与电子装置
US9058296B2 (en) Data processing method, memory storage device and memory control circuit unit
KR100816761B1 (ko) 낸드 플래시 메모리 및 에스램/노어 플래시 메모리를포함하는 메모리 카드 및 그것의 데이터 저장 방법
CN103106143B (zh) 固态储存装置及其逻辑至实体对应表建立方法
US9619380B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN103064792A (zh) 数据写入方法及装置
US8634243B2 (en) Data writing method and data storage device
CN106155582B (zh) 非挥发性储存装置与控制器
CN108228091B (zh) 配置数据分区保存方法及系统、配置数据校验方法及系统
US20110055430A1 (en) Method for establishing a communication channel between a host device and a memory device, associated memory device and controller thereof, and associated host device and host device application
CN109976673A (zh) 一种数据写入方法和装置
CN106155580B (zh) 一种基于嵌入式多媒体卡eMMC的存储方法及系统
CN105988936B (zh) 非挥发性储存装置与控制器
CN105138472B (zh) 闪存磨损优化方法及设备
CN105446848B (zh) 电子设备的数据处理性能的测试方法及装置
CN103279401A (zh) 一种访问存储器的方法及装置
CN102867046B (zh) 基于固态硬盘的数据库优化方法及系统
CN109840165A (zh) 存储器系统及其操作方法
TWI670640B (zh) 可用於資料儲存裝置之資料儲存方法與資料回復程序、以及採用這些方法的資料儲存裝置
CN107229580A (zh) 顺序流检测方法与装置
CN107193485A (zh) 储存装置、其控制单元、及可用于储存装置的数据储存方法
TW201621668A (zh) 資料儲存裝置及其資料寫入方法
CN106326142A (zh) 缓冲存储器存取方法、存储器控制器与存储器存储装置
TW202028984A (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