CN110688059A - 固态储存装置及其电源失效时的数据处理方法 - Google Patents

固态储存装置及其电源失效时的数据处理方法 Download PDF

Info

Publication number
CN110688059A
CN110688059A CN201810735749.9A CN201810735749A CN110688059A CN 110688059 A CN110688059 A CN 110688059A CN 201810735749 A CN201810735749 A CN 201810735749A CN 110688059 A CN110688059 A CN 110688059A
Authority
CN
China
Prior art keywords
data
storage device
state storage
write data
power failure
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.)
Pending
Application number
CN201810735749.9A
Other languages
English (en)
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.)
Jianxing Storage Technology Guangzhou Co ltd
Original Assignee
Guangbao Electronics (guangzhou) Co Ltd
Lite On Technology Corp
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 Guangbao Electronics (guangzhou) Co Ltd, Lite On Technology Corp filed Critical Guangbao Electronics (guangzhou) Co Ltd
Priority to CN201810735749.9A priority Critical patent/CN110688059A/zh
Priority to US16/118,549 priority patent/US20200012557A1/en
Publication of CN110688059A publication Critical patent/CN110688059A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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/0656Data buffering arrangements
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/143Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/143Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
    • G11C5/144Detection of predetermined disconnection or reduction of power supply, e.g. power down or power standby
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • 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
    • G11C2029/0411Online error correction

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)
  • Power Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种固态储存装置及其电源失效时的数据处理方法,固态储存装置包括:一缓冲器,暂时储存一写入数据;一非挥发性记忆体,包括多个芯片,每一该芯片中包括一第一部分空间作为一数据储存区;以及一控制器,连接至一主机、该缓冲器、该非挥发性记忆体。当一电源失效发生时,若该写入数据未到达一预定数据量时,该控制器对该写入数据进行一同位检查,并产生一同位数据;以及,该控制器将该缓冲器中的该写入数据分配为至少一笔子写入数据,并将该至少一笔子写入数据同时储存至部分该些芯片的该数据储存区,且该控制器将该同位数据以及一位置信息储存至该非挥发性记忆体的一系统储存区。

Description

固态储存装置及其电源失效时的数据处理方法
技术领域
本发明涉及一种固态储存装置及其数据处理方法,且特别涉及一种固态储存装置及其电源失效(power failure)时的数据处理方法。
背景技术
众所周知,早期电脑系统中的数据大多储存在硬盘中(Hard Disk Drive)。而容错式磁碟阵列(redundant array of independent disk,简称RAID)则是把多个硬盘组合起来,使其效能超过一个价格昂贵且容量具大的硬盘。
举例来说,RAID硬盘中包括多个独立的硬盘,于写入动作时,控制器可将写入数据分配为多笔子写入数据,并且同时将多笔子写入数据写入RAID硬盘内所有的独立硬盘中。
于读取动作时,控制器由RAID硬盘内所有的独立硬盘中取得多笔子读取数据,并组合成读取数据。因此,RAID硬盘的优点在于提高数据的处理效能(performance)、增强数据可靠度(reliability)以及增加数据储存容量(capacity)等等。
由于现今的固态储存装置已逐渐取代传统硬盘,因此RAID的概念也被运用于单一个固态储存装置中。
请参照图1,其所绘示为现有固态储存装置的示意图。固态储存装置160中包括一控制器162、一缓冲器164、一非挥发性记忆体166。其中,非挥发性记忆体166由多个芯片(die)111~126组成,而芯片111~126可为与非门快闪记忆体芯片(NAND flash die)。另外,缓冲器164可为动态随机存取记忆体(DRAM)。
固态储存装置160经由一外部总线152连接至主机(host)150,其中外部总线152可为USB总线、SATA总线、PCIe总线、M.2总线或者U.2总线等等。
再者,控制器162连接至非挥发性记忆体166以及缓冲器164。基本上,控制器162根据主机150所发出的写入命令,将主机150的写入数据暂存于缓冲器164,并于适当的时机再将缓冲器164中的写入数据储存于非挥发性记忆体166中。再者,控制器162根据主机150所发出的读取命令进一步操控非挥发性记忆体166并取得读取数据,经由控制器162传递至主机150。
为了让固态储存装置160达到RAID硬盘的效能,控制器162可将非挥发性记忆体166中的每一个芯片111~126视为一个独立的硬盘来操作。
首先,控制器162根据写入命令,将主机150的写入数据暂存于缓冲器164。之后,控制器162于适当的时机将缓冲器164中的写入数据分配为多笔子写入数据,并且将多笔子写入数据同时写入芯片111~126中。举例来说,当缓冲器164中的数据量到达一预设数据量时,控制器162将缓冲器164中的写入数据分配为多笔子写入数据,并且将多笔子写入数据同时写入芯片111~126中。
当控制器162执行主机150的读取命令时,控制器162由芯片111~126中取得多笔子写入数据,并组合成读取数据并传递至主机150。
请参照图2A与图2B,其所绘示为非发性记忆体中储存写入数据的示意图。基本上,当缓冲器164中暂存的写入数据到达特定数据量后,控制器162才会将缓冲器164中的写入数据储存至非挥发性记忆体166。
再者,每个芯片111~126中的大部分空间被规划为数据储存区(data storagearea)111d~126d。控制器162可以将主机150的写入数据储存于芯片111~126中的数据储存区(data storage area)111d~126d。也就是说,芯片111~126中的数据储存区(datastorage area)111d~126d为主机150可以储存以及读取数据的区域。
再者,芯片111~126中的数据储存区(data storage area)111d~126d区分为多个条带(stripe)。举例来说,假设非挥发性记忆体166中共有16个芯片111~126,且固态储存装置160中所设定的条带化尺寸(stripe size)为160Kbytes。因此,控制器162可同时写入10Kbytes的大小的子写入数据至每个芯片111~126。另外,为了要维持非挥发性记忆体166中的数据可靠度。最后一个芯片126用来储存同位数据(parity data)。
亦即,每个芯片111~126的数据储存区(data storage area)111d~126d中的每特定储存空间(例如10Kbytes)是被逻辑地结合成一个条带(stripe)的储存空间。而每一条带的储存空间即为上述条带化尺寸(stripe size)。
再者,当缓冲器164中暂存了150Kbytes的写入数据后,控制器164会对150Kbytes的写入数据进行同位检查(parity check)并产生10Kbytes的同位数据(parity data)。因此,写入数据加上同位数据相当于条带化尺寸(stripe size)的160Kbytes。
再者,控制器162将150Kbytes的写入数据区分为15笔子写入数据Da1~Da15后,控制器162即将子写入数据Da1~Da15与同位数据Dap同时储存至芯片111~126的数据储存区111d~126d的第一条带(stripe)SP1中。
如图2A所示,芯片111的数据储存区111d储存了10Kbytes的子写入数据Da1、芯片112的数据储存区112d储存了10Kbytes的子写入数据Da2、芯片113的数据储存区113d储存了10Kbytes的子写入数据Da3。依此类推,芯片125的数据储存区125d储存了10Kbytes的子写入数据Da15。另外,芯片126的数据储存区126d储存了10Kbytes的同位数据Dap。
再者,当控制器162执行读取命令时,控制器162同时由芯片111~126中取得15笔子写入数据Da1~Da15与同位数据Dap,并进行同位检查后组合成150Kbytes的读取数据并传递至主机150。
如图2B所示,当缓冲器164中再次暂存了150Kbytes的写入数据时,控制器164会进行相同的动作,并将15笔子写入数据Db1~Db15与同位数据Dbp同时储存至芯片111~126的数据储存区111d~126d的第二条带SP2中。
再者,固态储存装置160的条带化尺寸(stripe size)并不限定为160Kbytes,而非挥发性记忆体166中的芯片数目也不限定为16个芯片。举例来说,非挥发性记忆体166中有n个芯片,且固态储存装置160的条带化尺寸设定mKbytes。因此,每个子写入数据的大小为(m/n)Kbytes。
发明内容
本发明的目的在于提供一种固态储存装置及其电源失效时的数据处理方法。
本发明提供的固态储存装置,包括:一缓冲器,暂时储存一写入数据;一非挥发性记忆体,包括多个芯片,每一该芯片中包括一第一部分空间作为一数据储存区;以及一控制器,连接至一主机、该缓冲器、该非挥发性记忆体。当一电源失效发生时,若该写入数据未到达一预定数据量时,该控制器对该写入数据进行一同位检查,并产生一同位数据;以及,该控制器将该缓冲器中的该写入数据分配为至少一笔子写入数据,并将该至少一笔子写入数据同时储存至部分该些芯片的该数据储存区,且该控制器将该同位数据以及一位置信息储存至该非挥发性记忆体的一系统储存区。
本发明有关于一种固态储存装置的数据处理方法,该固态储存装置中的一非挥发性记忆体包括多个芯片,且每一该芯片中包括一第一部分空间作为一数据储存区。该数据处理方法包括下列步骤:于该固态储存装置正常运作时,将一写入数据储存于一缓冲器,且持续判断是否发生一电源失效;当该电源失效发生时,若该写入数据未到达一预定数据量时,对该写入数据进行一同位检查,并产生一同位数据;将该写入数据分配为至少一笔子写入数据,并将该至少一笔子写入数据同时储存至部分该些芯片的该数据储存区;以及,将该同位数据以及一位置信息储存至该非挥发性记忆体的一系统储存区。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为现有固态储存装置的示意图;
图2A与图2B为非发性记忆体中储存写入数据的示意图;
图3为本发明固态储存装置的示意图;
图4A为本发明固态储存装置遭遇电源失效时的数据处理方法的第一实施例;
图4B至图4C为本发明第一实施例的数据处理方法的示意图;
图5A为本发明固态储存装置遭遇电源失效时的数据处理方法的第二实施例;
图5B至图5C为本发明第二实施例的数据处理方法的示意图;
图6A为本发明固态储存装置遭遇电源失效时的数据处理方法的第三实施例;
图6B至图6C为本发明第三实施例的数据处理方法的示意图;
图7A为本发明固态储存装置遭遇电源失效时的数据处理方法的第四实施例;
图7B至图7C为本发明第四实施例的数据处理方法的示意图。
具体实施方式
下面结合附图对本发明的结构原理和工作原理作具体的描述:
基本上,运用于数据中心(data center)等级的固态储存装置必须要能够确保数据的可靠性,因此会有更多的数据保护措施用于固态储存装置。举例来说,电源失效(powerfailure)的数据保护措施。
请参照图3,其所绘示为本发明固态储存装置的示意图。相较于图1的固态储存装置。本发明固态储存装置360中的控制器362中包括一电压检测器(voltage detector)364连接至电源检测脚位(power detecting pin)pdp,用以检测固态储存装置360的电源电压Vcc是否稳定。
如图3所示,固态储存装置360中包括一电容器C,电容器C的第一端接收电源电压Vcc,电容器的第二端连接至接地电压。再者,控制器362的电源检测脚位pdp连接至电容器C的第一端。
根据本发明的实施例,当固态储存装置360正常运作时,控制器362的电压检测器364会持续检测电容器C上的电压。当电容器C上的电压下降至一特定电压值(例如0.95×Vcc)时,电压检测器364即判断出电源失效。此时,控制器362必须利用电容器C中残留的电量,进行数据保护动作。
在进行数据保护动作时,控制器362需要将缓冲器164中的写入数据储存至非挥发性记忆体166中,以防止缓冲器164中的写入数据随着固态储存装置160断电而消失。以下详细说明本发明固态储存装置遭遇电源失效时的数据处理方法。
请参照图4A,其所绘示为本发明固态储存装置遭遇电源失效时的数据处理方法的第一实施例。
首先,固态储存装置360正常运作(步骤S402)。亦即,当电源失效未发生时,固态储存装置360正常运作。此时,控制器362可以接收主机150并执行主机150的命令,例如控制器362执行写入命令,并将写入数据暂时储存于缓冲器164中。
再者,当电源失效发生(步骤S404)时,控制器362进行数据保护动作。此时,控制器362产生无效数据(invalid data)并进行同位检查,使得缓冲器164中的数据量扩充至条带化尺寸(步骤S406)。
接着,控制器362将缓冲器164中的数据区分为多笔子写入数据与同位数据(步骤S408)。之后,将所有子写入数据与同位数据同时储存至所有芯片111~126的数据储存区111d~126d中(步骤S410)。
接着,控制器362将系统数据更新于系统储存区(步骤S412)。
请参照图4B至图4C,其所绘示为本发明第一实施例的数据处理方法的示意图。举例来说,非挥发性记忆体166中共有16个芯片111~126,且固态储存装置360中所设定的条带化尺寸(stripe size)为160Kbytes。
根据本发明的实施例,每个芯片111~126中的大部分空间被规划为数据储存区(data storage area)111d~126d,而每个芯片111~126中的另一部分空间111s~126则组成一系统储存区(system storage area)。再者,芯片111~126中的数据储存区(datastorage area)111d~126d为主机150可以储存以及读取数据的区域,而主机150无法存取系统储存区中的数据。
基本上,系统储存区系储存系统数据(system data),其记录了固态储存装置360中的相关信息。举例来说,系统数据包括芯片111~126中数据储存区111d~126d内的可用空间范围、损坏区块(bad block)位置、或者记录发生的事件(event)等。
当固态储存装置360关机(turn off)时,控制器362会将系统数据更新于系统储存区。因此,当固态储存装置360再次开机(turn on)时,控制器362即可根据系统储存区中最新的系统数据来初始化(initialize)固态储存装置360后即可正常运作。
如图4B所示,在芯片111~126的数据储存区111d~126d的第一条带SP1中已经储存15笔子写入数据Da1~Da15与同位数据Dap。
假设电源失效发生时,缓冲器164中仅储存了20Kbytes的写入数据。此时,控制器362会产生130Kbytes的无效数据,并进行同位检查产生10Kbytes的同位数据。因此,缓冲器164中的数据量被扩充至160Kbytes的条带化尺寸。
如图4C所示,控制器362将缓冲器164中的写入数据区分为15笔子写入数据Db1、Db2、Div1~Div13与同位数据Dbp。之后,控制器362将所有子写入数据Db1、Db2、Div1~Div13与同位数据Dbp同时储存至芯片111~126的数据储存区111d~126d的第二条带SP2中。其中,子写入数据Div1~Div13为无效数据。
接着,控制器362将系统数据Ds1更新于系统储存区111s中。
当上述动作完成后,等到电容器C中残留的电量耗尽后,固态储存装置360便会被断电(power off)。
由以上的说明可知,当电源失效发生时,控制器362必须利用电容器C中残留的电量,进行数据保护动作以防止写入数据遗失,并确保写入数据的正确性。
然而,根据本发明的第一实施例,于进行数据保护动作时,控制器362必须产生无效数据、进行同位检查、将子写入数据与同位数据同时储存于所有芯片111~126的数据储存区111d~126d以及将系统数据更新于系统储存区。明显地,电容器C中残留的电量无法保证控制器362能够完成上述的所有动作。
请参照图5A,其所绘示为本发明固态储存装置遭遇电源失效时的数据处理方法的第二实施例。
首先,固态储存装置360正常运作(步骤S502)。亦即,当电源失效未发生时,固态储存装置360正常运作。此时,控制器362可以接收主机150并执行主机150的命令,例如写入命令或者读取命令。
当电源失效发生(步骤S504)时,控制器362进行数据保护动作。此时,控制器362根据缓冲器164中的写入数据来进行同位检查以产生同位数据(步骤S506)。
接着,控制器362将缓冲器164中的数据区分为多笔子写入数据与同位数据(步骤S508)。之后,将所有子写入数据与同位数据同时储存至部分芯片的数据储存区中(步骤S510)。
接着,控制器362将系统数据更新于系统储存区(步骤S512)。
请参照第请参照图5B至图5C,其所绘示为本发明第二实施例的数据处理方法的示意图。其中,非挥发性记忆体166中共有16个芯片111~126,且固态储存装置360中所设定的条带化尺寸(stripe size)为160Kbytes。
如图5B所示,在芯片111~126的数据储存区111d~126d的第一条带SP1中已经储存15笔子写入数据Da1~Da15与同位数据Dap。
假设电源失效发生时,缓冲器164中仅储存了20Kbytes的写入数据。此时,控制器362直接根据缓冲器164中的写入数据来进行同位检查,并产生10Kbytes的同位数据。此时,缓冲器164中的数据量仅被扩充至30Kbytes,未扩充到条带化尺寸。
如图5C所示,控制器362将缓冲器164中的写入数据区分为2笔子写入数据Db1、Db2与同位数据Dbp。之后,控制器362同时将子写入数据Db1、Db2与同位数据Dbp储存至三个芯片111~113的数据储存区111d~113d的第二条带SP2中,而其他芯片114~126的数据储存区114d~126d的第二条带SP2(虚线部分)中则未储存任何数据。如此,即可确保写入数据不会遗失。
接着,控制器362将系统数据Ds1更新于系统储存区111s中。
当上述动作完成后,等到电容器C中残留的电量耗尽后,固态储存装置360便会被断电(power off)。
相较于第一实施例,当电源失效发生时,第二实施例的控制器362不需要产生无效数据,所以可确保控制器362能够即时完成上述所有动作。然而,当同位数据Dbp写入芯片113的数据储存区113d之后,对应条带(stripe)内的其他空间(数据储存区114d~126d的第二条带SP2中的虚线部分区域)将暂时无法再被用来储存其他的子写入数据。换句话说,当固态储存装置360重新启动并欲储存新的写入数据时,新的写入数据将被储存至其他条带(stripe)中。例如,在上述实施例中,当固态储存装置360重新启动并欲写入新的写入数据时,新的写入数据无法被储存至第二条带SP2中的虚线部分区域,其将被储存至下个条带,例如第三条带SP3,中。
请参照图6A,其所绘示为本发明固态储存装置遭遇电源失效时的数据处理方法的第三实施例。
首先,固态储存装置360正常运作(步骤S602)。亦即,当电源失效未发生时,固态储存装置360正常运作。此时,控制器362可以接收主机150并执行主机150的命令,例如写入命令或者读取命令。
当电源失效发生(步骤S604)时,控制器362进行数据保护动作。此时,控制器362根据缓冲器164中的写入数据来进行同位检查以产生同位数据(步骤S606)。
接着,控制器362将缓冲器164中的数据区分为多笔子写入数据与同位数据(步骤S608)。之后,将所有子写入数据同时储存至部分芯片的数据储存区中(步骤S610)。
接着,控制器362将系统数据、位置信息以及同位数据更新于系统储存区(步骤S612)。
请参照图6B至图6C,其所绘示为本发明第三实施例的数据处理方法的示意图。其中,非挥发性记忆体166中共有16个芯片111~126,且固态储存装置360中所设定的条带化尺寸(stripe size)为160Kbytes。
如图6B所示,在芯片111~126的数据储存区111d~126d的第一条带SP1中已经储存15笔子写入数据Da1~Da15与同位数据Dap。
假设电源失效发生时,缓冲器164中仅储存了20Kbytes的写入数据。此时,控制器362直接根据缓冲器164中的写入数据来进行同位检查,并产生10Kbytes的同位数据。此时,缓冲器164中的数据量仅被扩充至30Kbytes,未扩充到条带化尺寸。
如图6C所示,控制器362将缓冲器164中的写入数据区分为2笔子写入数据Db1、Db2与同位数据Dbp1。之后,控制器362同时将子写入数据Db1、Db2储存至二个芯片111~112的数据储存区111d~112d的第二条带SP2中,而其他芯片113~126的数据储存区113d~126d的第二条带SP2中则未储存任何数据。
接着,控制器362将系统数据Ds1、位置信息Inf_b与同位数据Dbp1更新于系统储存区111s~113s中。其中,位置信息Inf_b用来指示子写入数据Db1、Db2在非挥发性记忆体166中的储存位置。亦即,同位数据Dbp1根据位置信息Inf_b所指示的子写入数据Db1、Db2来进行同位检查后所获得。换句话说,控制器362可根据位置信息Inf_b得知同位数据Dbp1是对应于哪些储存位置中的子写入数据进行同位检查后所产生。
当上述动作完成后,等到电容器C中残留的电量耗尽后,固态储存装置360便会被断电(power off)。
根据本发明的第三实施例,当电源失效发生时,控制器362不需要产生无效数据,所以可确保控制器362能够即时完成上述所有动作。再者,由于同位数据Dbp1更新于系统储存区111s~113s中,所以对应条带(stripe)内的其他空间将可继续用来储存子写入数据。换句话说,当固态储存装置360重新启动并欲储存新的写入数据时,新的写入数据可先被储存至断电前最后储存的对应条带中。例如,在上述实施例中,当固态储存装置360重新启动并欲储存新的写入数据时,新的写入数据可先被储存至其他芯片113~126的数据储存区113d~126d的第二条带SP2中。
请参照图7A,其所绘示为本发明固态储存装置遭遇电源失效时的数据处理方法的第四实施例。相较于本发明的第三实施例,第四实施例中增加了判断电源电压Vcc是否为假性电源失效(electrical brownout)的步骤(步骤S614)。
基本上,当电源失效时,控制器362会进行数据保护动作,且电容器C的电量会耗尽并使得固态储存装置360断电(步骤S616)。然而,当电容器C的电量耗尽之前,电源电压Vcc又回复正常时,则可视为假性电源失效(electrical brownout)。换句话说,如果电容器C的电量耗尽之前,电源电压Vcc又回复正常时,则控制器362回到步骤S602,使得固态储存装置360又再次正常运作。
请参照第请参照图7B至图7C,其所绘示为本发明第四实施例的数据处理方法的示意图。其中,图7B为接续图6C之后的运作。
如图6C所示,当控制器362将系统数据Ds1、位置信息Inf_b与同位数据Dbp1更新于系统储存区111s之后,控制器362将判断电源电压Vcc是否为假性电源失效(electricalbrownout)的步骤(步骤S614)。如果电源电压Vcc并非为假性电源失效,例如控制器362未检测到电源电压Vcc回复正常,则等到电容器C中残留的电量耗尽后,固态储存装置360便会被断电(power off)(步骤S616)。反之,如果确认电源电压Vcc是为假性电源失效,例如控制器362检测到电源电压Vcc又回复正常,则控制器362恢复为正常运作。
由于缓冲器164中已经暂存20Kbytes的写入数据。因此,当控制器362再接收130Kbyte的写入数据后,控制器362即可将缓冲器164中的写入数据进行同位检查并产生10Kbytes的同位数据Dbp2。亦即,缓冲器164中的数据量扩充至条带化尺寸。
如图7B所示,在正常运作下,控制器362将尚未写入非挥发性记忆体166的写入数据区分为13笔子写入数据Db3~Db15。接着,控制器362将13笔子写入数据Db3~Db15与同位数据Dp2储存于芯片113~126的数据储存区113d~126d的第二条带SP2中。
如图7C所示,假设缓冲器164中又接收了10Kbytes的写入数据时,电源失效发生。此时,控制器362直接根据缓冲器164中的写入数据来进行同位检查,并产生10Kbytes的同位数据。此时,缓冲器164中的数据量仅被扩充至20Kbytes,未扩充到条带化尺寸。
接着,控制器362将缓冲器164中的写入数据区分为1笔子写入数据Dc1与同位数据Dcp1。之后,控制器362同时将子写入数据Dc1储存至芯片111的数据储存区111d的第三条带SP3中,而第三条带SP3的其他数据储存区112d~126d中则未储存任何数据。
接着,控制器362将系统数据Ds2、位置信息Inf_c与同位数据Dcp1更新于系统储存区111s中。其中,系统数据Ds2、位置信息Inf_c与同位数据Dcp1将取代先前写入的系统数据Ds1、位置信息Inf_b与同位数据Dbp1。
当上述动作完成后,控制器362会持续判断是否为假性电源失效,即检测到电源电压Vcc是否回复正常,直到电容器C中残留的电量耗尽后被断电(power off)。
由以上的说明可知,本发明提出一种固态储存装置及其电源失效时的数据处理方法。固态储存装置360的控制器362中包括一电压检测器364可用来判断电源失效是否发生。当电源失效发生时,控制器362将缓冲器164中的写入数据储存至非挥发性记忆体166中,防止写入数据遗失。再者,同位检查后产生的同位数据,可以储存在非挥发性记忆体166的数据储存区或者系统储存区,如此将可以确保写入数据的正确性。
再者,本发明实施例中的电压检测器364也可以设计在控制器362外部。当电压检测器判断出电源失效时,则通知控制器362进行数据保护的动作。
另外,在本发明中利用每个芯片111~126中的小部分区域111s~126s来组成系统储存区。当然本发明并不限定于此,在此领域的技术人员也可以在非挥发性记忆体中增加一个芯片,并利用新增芯片内的空间来作为系统储存区。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (14)

1.一种固态储存装置,其特征在于,包括:
一缓冲器,暂时储存一写入数据;
一非挥发性记忆体,包括多个芯片,每一该芯片中包括一第一部分空间作为一数据储存区;以及
一控制器,连接至一主机、该缓冲器、该非挥发性记忆体;
其中,当一电源失效发生时,若该写入数据未到达一预定数据量时,该控制器对该写入数据进行一同位检查,并产生一同位数据;以及,该控制器将该缓冲器中的该写入数据分配为至少一笔子写入数据,并将该至少一笔子写入数据同时储存至部分该些芯片的该数据储存区,且该控制器将该同位数据以及一位置信息储存至该非挥发性记忆体的一系统储存区。
2.根据权利要求1所述的固态储存装置,其特征在于,更包括一电压检测器,接收该固态储存装置的一电源电压,其中当该电源电压下降至一特定电压值时,该电压检测器判断出发生该电源失效。
3.根据权利要求1所述的固态储存装置,其特征在于,若该写入数据的数据量加上该同位检查的数据量未到达一条带化尺寸时,则表示该写入数据未到达该预定数据量。
4.根据权利要求1所述的固态储存装置,其特征在于,该至少一笔子写入数据是储存至该些芯片的该数据储存区的一条带中,且当该固态储存装置重新启动并欲储存一新写入数据时,该新写入数据是先被储存于该条带中。
5.根据权利要求1所述的固态储存装置,其特征在于,当该电源失效发生时,该控制器更产生一系统数据储存至该系统储存区。
6.根据权利要求1所述的固态储存装置,其特征在于,每一该芯片包括一第二部分空间,且该些芯片的第二部分空间组合成该系统储存区。
7.一种固态储存装置的数据处理方法,该固态储存装置中的一非挥发性记忆体包括多个芯片,且每一该芯片中包括一第一部分空间作为一数据储存区,其特征在于,该数据处理方法包括下列步骤:
于该固态储存装置正常运作时,将一写入数据储存于一缓冲器,且持续判断是否发生一电源失效;
当该电源失效发生时,若该写入数据未到达一预定数据量时,对该写入数据进行一同位检查,并产生一同位数据;
将该写入数据分配为至少一笔子写入数据,并将该至少一笔子写入数据同时储存至部分该些芯片的该数据储存区;以及
将该同位数据以及一位置信息储存至该非挥发性记忆体的一系统储存区。
8.根据权利要求7所述的数据处理方法,其特征在于,当该固态储存装置的一电源电压下降至一特定电压值时,判断出发生该电源失效。
9.根据权利要求7所述的数据处理方法,其特征在于,若该写入数据的数据量加上该同位检查的数据量未到达一条带化尺寸时,则表示该写入数据未到达该预定数据量。
10.根据权利要求7所述的数据处理方法,其特征在于,该至少一笔子写入数据是储存至该些芯片的该数据储存区的一条带中,且当该固态储存装置重新启动并欲储存一新写入数据时,该新写入数据是先被储存于该条带中。
11.根据权利要求7所述的数据处理方法,其特征在于,当该电源失效发生时,更产生一系统数据储存至该系统储存区。
12.根据权利要求7所述的数据处理方法,其特征在于,每一该芯片包括一第二部分空间,且该些芯片的该第二部分空间组合成该系统储存区。
13.根据权利要求7所述的数据处理方法,其特征在于,更包括下列步骤:
于该电源失效发生后,判断是否发生一假性电源失效;以及
当该假性电源失效发生时,使得该固态储存装置回复正常运作。
14.根据权利要求13所述的数据处理方法,其特征在于,当该电源失效发生后,若检测到该固态储存装置的一电源电压回复正常时,则判断发生该假性电源失效。
CN201810735749.9A 2018-07-06 2018-07-06 固态储存装置及其电源失效时的数据处理方法 Pending CN110688059A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810735749.9A CN110688059A (zh) 2018-07-06 2018-07-06 固态储存装置及其电源失效时的数据处理方法
US16/118,549 US20200012557A1 (en) 2018-07-06 2018-08-31 Solid state storage device and data processing method when a power failure occurs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810735749.9A CN110688059A (zh) 2018-07-06 2018-07-06 固态储存装置及其电源失效时的数据处理方法

Publications (1)

Publication Number Publication Date
CN110688059A true CN110688059A (zh) 2020-01-14

Family

ID=69101415

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810735749.9A Pending CN110688059A (zh) 2018-07-06 2018-07-06 固态储存装置及其电源失效时的数据处理方法

Country Status (2)

Country Link
US (1) US20200012557A1 (zh)
CN (1) CN110688059A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966294B (zh) * 2020-08-18 2023-02-17 杭州海康存储科技有限公司 存储数据的方法、装置、设备及存储介质
US11726911B2 (en) * 2021-01-25 2023-08-15 Western Digital Technologies, Inc. NVMe persistent memory region quick copy

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1908907A (zh) * 2005-08-01 2007-02-07 普安科技股份有限公司 改善资料写入效率的方法以及实施此方法的子系统与系统
US20100138603A1 (en) * 2008-12-03 2010-06-03 Atul Mukker System and method for preventing data corruption after power failure
CN102662791A (zh) * 2010-12-14 2012-09-12 西部数据技术公司 在万一失去电力时维护固态存储器内数据冗余方案的系统和方法
CN107741913A (zh) * 2013-08-05 2018-02-27 慧荣科技股份有限公司 用来管理一记忆装置的方法、记忆装置与控制器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1908907A (zh) * 2005-08-01 2007-02-07 普安科技股份有限公司 改善资料写入效率的方法以及实施此方法的子系统与系统
US20100138603A1 (en) * 2008-12-03 2010-06-03 Atul Mukker System and method for preventing data corruption after power failure
CN102662791A (zh) * 2010-12-14 2012-09-12 西部数据技术公司 在万一失去电力时维护固态存储器内数据冗余方案的系统和方法
CN107741913A (zh) * 2013-08-05 2018-02-27 慧荣科技股份有限公司 用来管理一记忆装置的方法、记忆装置与控制器

Also Published As

Publication number Publication date
US20200012557A1 (en) 2020-01-09

Similar Documents

Publication Publication Date Title
US9772796B2 (en) Multi-package segmented data transfer protocol for sending sub-request to multiple memory portions of solid-state drive using a single relative memory address
US20210103388A1 (en) Storage system managing metadata, host system controlling storage system, and storage system operating method
US7114117B2 (en) Memory card and memory controller
US8489806B2 (en) Storage apparatus and method of managing data storage area
US10824344B2 (en) Solid-state drive with non-volatile random access memory
US9946616B2 (en) Storage apparatus
US20160268000A1 (en) Power fail saving modes in solid state drive with mlc memory
US8612836B2 (en) Non-volatile memory device with uncorrectable information region and operation method using the same
US20170300393A1 (en) Raid rebuild algorithm with low i/o impact
CN110908594B (zh) 存储器系统的操作方法和存储器系统
US20130311822A1 (en) System and method for failure protection in a storage array
US20170220462A1 (en) Data storage method and system thereof
WO2023241350A1 (zh) 数据处理方法、装置、数据接入端及存储介质
US20160179596A1 (en) Operating method of data storage device
CN112988044A (zh) 存储器系统及包括该存储器系统的数据处理系统
CN109727630B (zh) 存储系统及其操作方法
TW201445306A (zh) 磁碟陣列系統及資料處理方法
CN110688059A (zh) 固态储存装置及其电源失效时的数据处理方法
US11016689B2 (en) Data storage system
US10915401B2 (en) Data saving caused by a partial failure of the memory device
US11169871B2 (en) Data storage device and operating method thereof
CN110968473B (zh) 存储器控制器和包括存储器控制器的存储装置
US20130124778A1 (en) Method of storing host data and meta data in a nand memory, a memory controller and a memory system
US20170102883A1 (en) System and method for replacing storage devices
US11966610B2 (en) Storage device capable of adjusting size of zoned namespace and operating method thereof

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right

Effective date of registration: 20200102

Address after: Room 302, factory a, No.8 Guangbao Road, Science City, Huangpu District, Guangzhou City, Guangdong Province

Applicant after: Jianxing storage technology (Guangzhou) Co.,Ltd.

Address before: 510663 No. 25 West spectral Road, Guangzhou hi tech Industrial Development Zone, Guangdong

Applicant before: LITE-ON ELECTRONICS (GUANGZHOU) Ltd.

Applicant before: Lite-On Technology Co.,Ltd.

TA01 Transfer of patent application right
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200114

WD01 Invention patent application deemed withdrawn after publication