CN109976938A - 数据储存装置以及非挥发式存储器操作方法 - Google Patents

数据储存装置以及非挥发式存储器操作方法 Download PDF

Info

Publication number
CN109976938A
CN109976938A CN201810709213.XA CN201810709213A CN109976938A CN 109976938 A CN109976938 A CN 109976938A CN 201810709213 A CN201810709213 A CN 201810709213A CN 109976938 A CN109976938 A CN 109976938A
Authority
CN
China
Prior art keywords
data
page
shot
last page
write operation
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
CN201810709213.XA
Other languages
English (en)
Other versions
CN109976938B (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 CN109976938A publication Critical patent/CN109976938A/zh
Application granted granted Critical
Publication of CN109976938B publication Critical patent/CN109976938B/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/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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • 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
    • 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/064Management of blocks
    • 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
    • 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
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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/7207Details relating to flash memory management management of metadata or control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及一种数据储存装置的复电技术,尤其涉及数据储存装置以及非挥发式存储器操作方法。该数据储存装置具有一非挥发式存储器以及一控制单元。该非挥发式存储器藉由单发完成写入操作接收数据。各单发完成写入操作写入N页数据。N为大于1的数字。于复电该数据储存装置时,该控制单元令该非挥发式存储器断电前使用的一主动区块的一最末页指标指向一回单发完成写入操作写入的N页数据中的最末页。

Description

数据储存装置以及非挥发式存储器操作方法
技术领域
本发明有关于数据储存装置以及其中非挥发式存储器的操作方法。
背景技术
非挥发式存储器有多种形式─例如,快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存。
然而,非挥发式存储器的写入操作可能被非预期断电中断。为确保数据可靠度,数据储存装置的复电程序为本技术领域一项重要课题。
发明内容
本发明在数据储存装置复电时,基于单发完成写入操作(one shot programming)之尺寸进行数据可靠度判断。
根据本发明一种实施方式所实现的一数据储存装置包括一非挥发式存储器以及一控制单元。该非挥发式存储器藉由单发完成写入操作接收数据。各单发完成写入操作写入N页数据。N为大于1的数字。该数据储存装置复电时,控制单元令该非挥发式存储器断电前使用的一主动区块的一最末页指标指向一回单发完成写入操作写入的N页数据中的最末页。
本发明另一种实施方式提出一种非挥发式存储器操作方法,包括:令一非挥发式存储器藉由单发完成写入操作接收数据,各单发完成写入操作写入N页数据,N为大于1的数字;以及于该数据储存装置复电时,令该非挥发式存储器断电前使用的一主动区块的一最末页指标指向一回单发完成写入操作写入的N页数据中的最末页。
一种实施方式中,该最末页指标所指空间对应的单发完成写入操作的N页数据须进行错误校验。错误校验失败时,该最末页指标需校正,指向更前一回单发完成写入操作写入的N页数据中的最末页。
一种实施方式中,该最末页指标确定后,该最末页指标所指空间对应的单发完成写入操作的N页数据是否受断电波及也需要再做判断,以搬移之。
一种实施方式中,该最末页指标所指的空间若不接续空页,则不搬移该最末页指标所指空间对应的单发完成写入操作的N页数据。
一种实施方式中,该最末页指标所指空间对应的单发完成写入操作的映射资讯若已封存,则不搬移该最末页指标所指空间对应的单发完成写入操作的N页数据。
一种实施方式中,该最末页指标确定后,该最末页指标所指空间对应的单发完成写入操作的N页数据若已被更新或搬移,则不做搬移。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1以方块图图解根据本发明一种实施方式所实现的一数据储存装置100,其中包括快闪存储器102以及控制单元104;
图2为流程图,图解根据本发明一种实施方式所实现的一复电程序,其中更包括不可靠数据的判断以及搬移(步骤S208以及S212);
图3以图例说明图2流程;
图4另举一例说明不可靠数据的搬移步骤S212的例外状况;
图5另举一例说明不可靠数据的搬移步骤S212的例外状况。
符号说明
100~数据储存装置;
102~快闪存储器;
104~控制单元;
106~主机:
112~系统内程式码区块池;
114~系统资讯区块池;
116~闲置区块池;
118~数据区块池;
122~微处理器;
124~只读存储器;
126~挥发式存储器;
130、132、134~页;
140~映射资讯;
A_BLK~主动区块;
F2H、H2F~映射表;
*A_BLK~指标,指向主动区块A_BLK;
*seal~指标,指示映射表封存进度;
S202…S212~步骤。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求书界定。
非挥发式存储器可以是快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,提供长时间数据保存之储存媒体,可用于实现数据储存装置、或应用于数据中心。以下特别以快闪存储器(flash memory)为例进行讨论。
现今数据储存装置常以快闪存储器为储存媒体,用来实现记忆卡(memory card)、通用串行总线闪存装置(USB flash device)、固态硬碟(SSD)…等产品。有一种应用是采多晶片封装、将快闪存储器与其控制器包装在一起─称为嵌入式快闪存储器模组(如eMMC)。
以快闪存储器为储存媒体的数据储存装置可应用于多种电子装置中。所述电子装置包括智慧型手机、穿戴装置、平板电脑、虚拟实境设备…等。电子装置的运算模块可视为一主机(host),操作所使用的数据储存装置,以存取其中快闪存储器。
快闪存储器实现的储存媒体也可用于建构数据中心。例如,伺服器可操作固态硬碟(SSD)阵列形成数据中心。伺服器即可视为一主机(host),操作所连结之固态硬碟,以存取其中快闪存储器。
主机(host)端是以逻辑地址(例如,逻辑区块地址LBA或全域主机页编号GHP…等)区别数据。快闪存储器的物理空间则是以区块(blocks)为单位,配置来接收主机要求写入的多个页(pages)数据。为了最佳化使用快闪存储器,快闪存储器的储存空间是动态配置对应主机所识别的逻辑地址。逻辑地址以及储存空间之间的映射资讯需妥善管理。
快闪存储器多种操作都需参考、或可能牵动映射资讯。例如,快闪存储器的读取需要参考映射资讯,快闪存储器的写入则需更新映射资讯。特别是,快闪存储器储存空间需以区块为单位进行抹除(erase)后方能再次使用。由于各区块可承受的抹除次数有上限,快闪存储器的操作有抹写平均(wear leveling)议题需要考量。另外,旧数据更新并非同空间复写。新版的数据被写入闲置空间后,旧空间内容将被标为无效。一区块可能零星留存有效数据,故垃圾回收(garbage collection)需求相应产生。一区块中留存的零星有效数据可经垃圾回收技术搬移到闲置空间,使得徒留无效数据的区块得以被抹除再利用。上述抹写平均以及垃圾回收技术,都涉及映射资讯的参考或更新。映射资讯的维护为必要。
映射资讯的维护有多种方式。关于正在配置使用的数据接收区块(接收主机要求的写入数据,或作为垃圾回收的收集区块),其动态变化的映射资讯可以映射表F2H动态更新。映射表F2H以物理空间为索引,标注对应的逻辑地址,可在挥发式存储器上进行动态维护。映射表F2H需反向整理入映射表H2F,提供以逻辑地址为索引的映射资讯查询机制。映射表H2F需要以非挥发方式备份在快闪存储器上;即,小表F2H的映射资讯需封存(seal)至大表H2F。此外,当小表F2H封存至大表H2F后,亦可将该小表F2H储存一份在快闪存储器上,以供后续垃圾回收运作时判断数据接收区块各页是否储存有效数据之用。特别是,数据接收区块各页对应的逻辑地址可记录在该页的元数据(meta data)中。如此一来,若有非预期断电事件(sudden power-off event)发生,即使挥发式存储的小表F2H未来得及封存至大表H2F即遗失,扫描元数据也可以重建。
关于非预期断电事件(sudden power-off event),遭其中断的写入操作将不可靠,甚至影响前后空间的可靠度。例如,刚复电时可正确读出的数据,过一阵子后,就损毁无法读出。如此数据稳定度问题都需要在复电程序中考量。
本发明快闪存储器特别采用一种高密度储存技术,提升单位物理空间的储存密度。例如,相较于单阶储存(SLC),多阶储存(MLC)使得单位物理空间得以储存双倍数据,而三阶储存(TLC)使得单位物理空间得以储存三倍数据。本发明所采用的高密度储存技术特别提供一种单发完成写入操作(one shot programming),使单位物理空间的多页数据乃同时写入。甚至,快闪存储器可有单面(1-plane)、双面(2-plane)、甚至更多面的读/写设计,决定单次读/写操作涉及的面的数量(如,单纯涉及单面、或横跨双面、或横跨更多面)。如此一来,单发完成写入操作(one shot programming)是做N页写入,N为大于1的整数,可为Level#(共享单位物理空间的数据页数)与Plane#(共操作之面数)的乘积:N=Level#*Plane#。以3D的MLC快闪存储器为例,共享单位物理空间的数据页数为2。双面(2-plane)写入时,N值为2x2,即4。或者,更考虑多晶片致能功能,若可藉由规划晶片致动信号(CEsignals)而交错致动的物理空间数量为CE#,则N值计算须更乘以CE#,为Level#*Plane#*CE#。本发明考量如此单发完成写入操作(one shot programming)特色来进行复电程序。
图1以方块图图解根据本发明一种实施方式所实现的一数据储存装置100,其中包括快闪存储器102以及控制单元104。根据主机106发出的要求,控制单元104操作快闪存储器102回应。快闪存储器102的储存空间经配置使用后,可有多种分类。系统内程式码(in-system code,简称ISP)区块池112储存系统内程式码(in-system code,简称ISP)。系统资讯区块池114储存系统资讯。主动区块A_BLK则是自闲置区块池116选取使用,用于数据接收,可因应写入要求、或是用作垃圾回收的收集区块。特别是,主动区块A_BLK是由前述单发完成写入操作(one shot programming)接收数据。以SLC进行双面写入时,主动区块A_BLK一次接收两页数据。以MLC进行单面写入时,主动区块A_BLK一次接收两页数据。以MLC进行双面写入时,主动区块A_BLK一次接收四页数据。以TLC进行单面写入时,主动区块A_BLK一次接收三页数据。以TLC进行双面写入时,主动区块A_BLK一次接收六页数据。完成数据接收后,主动区块A_BLK将推入数据区块池118。系统资讯区块池114所储存的系统资讯可包括映射表H2F,也可记录指标*A_BLK显示目前使用哪个物理空间作为主动区块A_BLK。
控制单元104包括一微处理器122、一只读存储器124以及一挥发式存储器126。只读存储器124以及挥发式存储器126可与微处理器122整合在一起,或是外接该微处理器122。只读存储器124载有只读程式码。微处理器122可根据只读存储器124所载的只读程式码以及ISP区块池112所载的系统内程式码运作该快闪存储器102,期间微处理器122可利用该挥发式存储器126动态整理对应该主动区块A_BLK的映射表F2H。挥发式存储器126可能空间有限,映射表F2H可定量封存至映射表H2F。一种实施方式中,映射表F2H是在收到掉电通知(PON,power off notification)时局部封存至快闪存储器102。一种实施方式中,映射表F2H可更在复电(SPOR)重建后局部封存至快闪存储器102。映射表F2H封存至映射表H2F的进度也可呈系统资讯(如,指标*seal)记录在系统资讯区块池114中。非预期断电事件若发生,挥发式存储器126上尚未封存的映射资讯将遗失。本发明控制单元104对此状况进行复电程序,其中特别将主动区块A_BLK的单发完成写入操作(one shot programming)考量其中,加强复电后的数据可靠度。
如图所示,复电程序启动后,控制单元104会检查系统资讯区块池114,根据指标*A_BLK以及指标*seal,得知断电打断的主动区块A_BLK为何、且主动区块A_BLK的映射表F2H至映射表H2F的封存已经进行到何处。根据指标*seal指示,控制单元104起始该主动区块A_BLK的元数据(meta data)扫描,顺着主动区块A_BLK内空间的使用顺序获得各页对应的逻辑地址,将主动区块A_BLK未来得及封存的映射资讯整理在挥发式存储器126,重建映射表F2H。扫描到无内容元数据时,即寻得空页(图中为130)。控制单元104可初始化该主动区块A_BLK的一最末页指标指向空页130前一页132。控制单元104会检查该最末页指标所指的页132是否是一回单发完成写入操作(one shot programming)所写入的N页中的最末页。若如图例,页132并非一回单发完成写入操作(one shot programming)所写入的N页中的最末页,控制单元104在主动区块A_BLK前推,寻得前一回单发完成写入操作(one shotprogramming),校正该最末页指标指向页134,并将挥发式存储器126上随复电扫描而收集的映射资讯140舍弃。映射资讯140是复电扫描时取自页134之下一页至页132的元数据。
页132所属的单发完成写入操作(one shot programming)显然受非预期断电事件中断。以上将主动区块A_BLK的最末页指标校正到页134的动作,使极可能被非预期断电事件损毁的该回单发完成写入操作(one shot programming)被视为无效。如此一来,数据可靠度大幅提升。
该最末页指标校正到页134后,同回单发完成写入操作(one shot programming)写入的N页数据可一同更被错误校验。倘若N页有任一页无法通过错误校验(如,UECC发生),则表示该回单发完成写入操作(one shot programming)受非预期断电事件损毁。控制单元104在主动区块A_BLK前推,寻得更前一回的单发完成写入操作(one shot programming)。该最末页指标经校正,指向所述更前一回单发完成写入操作(one shot programming)写入的N页数据中的最末页。映射表F2H中相应舍弃映射资讯。
图2为流程图,图解根据本发明一种实施方式所实现的一复电程序,其中更包括不可靠数据的判断以及搬移(步骤S208以及S212);以下搭配图1进行说明。步骤S202,控制单元104进行复电程序。根据系统资讯区块池114所载的指标*A_BLK,控制单元104寻得被非预期断电事件中断的主动区块A_BLK。根据系统资讯区块池114所载的指标*seal,控制单元104获知断电前该主动区块A_BLK的映射资讯封存进度。步骤S204,根据封存进度,控制单元104设定该主动区块A_BLK的起始扫描页,起始逐页收集元数据中的映射资讯(各页对应的逻辑地址),于挥发式存储器126重建该主动区块A_BLK的映射表F2H。控制单元104扫描到空页130(该页元数据无内容)后,进行步骤S206。若空页130前一页132并非N页一组的单发完成写入操作(one shot programming)的最末页,控制单元104会在步骤S206进行主动区块A_BLK的最末页校正,使主动区块A_BLK的最末页指标指向一回单发完成写入操作(oneshot programming)写入的N页数据中的最末页。步骤S208中,控制单元104对主动区块A_BLK的最末页指标所关联的N页(同回单发完成写入操作写入)进行错误校验。若有任一页没有办法通过错误校验(如,发生UECC),控制单元104进行步骤S210舍弃映射表F2H所载关于该N页的映射资讯,再次进行步骤S206,前移主动区块A_BLK的最末页指标。若步骤S208无发生错误校验失败(如,UECC)事件,控制单元104进行步骤S212,将不可靠数据即时搬移。
图3以图例说明图2流程。复电后,步骤S204进行的元数据扫描可为双面扫描,其中对跨及两面的两页的元数据进行扫描。页0x00以及0x01的元数据所载的逻辑地址会单发更新至映射表F2H。元数据的双面扫描可一路进行到空页0x26。此时,映射表F2H对应更新到页0x24以及0x25的映射资讯。此实施例采MLC双面写入,主动区块A_BLK一次接收四页数据的程式化。空页0x26前一页0x25对应的单发完成写入操作涉及页0x24~0x27。页0x25并非N页写入中的最末页0x27。因此,主动区块A_BLK的最末页指标藉由步骤S206校正至页0x23,对齐前一回单发完成写入操作的4页0x20~0x23的最末页0x23。根据步骤S208,控制单元104自页0x20逐页完整读取4页0x20~0x23。所读取4页0x20~0x23的数据都会被用各自元数据所储存的校验码(例如,ECC code)校验。若有UECC发生,四页0x20~0x23内容以及映射资讯一起舍弃(步骤S210),主动区块A_BLK的最末页指标藉由步骤S206校正至页0x19,对齐更前一回单发完成写入操作的4页0x16~0x19的最末页0x19。即使步骤S208判定无UECC发生,不可靠的数据也可藉步骤S212搬移。例如,倘若页0x20~0x23尚能读出、但不可靠,步骤S212可将之搬移到其他空间。
步骤S212可有多种例外,使数据搬移可略过。一种实施方式中,通过错误校验的该回单发完成写入操作的最末页的下一页若非空页,则代表非预期断电事件并不发生在该回单发完成写入操作,无不可靠数据需要靠步骤S212搬移。参阅图3,倘若主动区块A_BLK确定后的(通过错误校验)最末页指标是指到页0x23,则由于页0x23的下一页0x24非空页0x26,故页0x20~0x23可靠,无须在步骤S212搬移。
图4另举一例说明不可靠数据的搬移步骤S212的例外状况。通过错误校验的该回单发完成写入操作的映射资讯若早已封存(小表F2H至大表H2F),则代表非预期断电事件并不发生在该回单发完成写入操作,无不可靠数据需要靠步骤S212搬移。图4显示非预期断电事件发生前,映射表F2H至映射表H2F的封存进度(指标*seal所载)已达页0x23。如此一来,非预期断电事件并不发生在页0x20~0x23的单发完成写入操作。页0x20~0x23可靠,无须在步骤S212搬移。
图5另举一例说明不可靠数据的搬移步骤S212的例外状况。通过错误校验的该回单发完成写入操作的映射资讯若事实上为无效数据(例如,早被抹除或是更新),则也无需要在步骤S212搬移的必要。图5显示主动区块A_BLK最末页指标指向页0x23。即使页0x20~0x23通过错误校验,但因为查询结果显示页0x20~0x23皆为无效,故无须在步骤S212搬移。数据有效与否可藉由查询该系统资讯区块池214所储存的系统资讯进行判断。一种实施方式中,快闪存储器102非挥发性储存的映射表F2H以及H2F可用作上述系统资讯,帮助判断数据有/无效。映射表F2H查询到一区块上一页所对应的逻辑区块地址LBA后,查询到的LBA将以映射表H2F复核。若映射表H2F显示该LBA的确对应该区块的该页,则表示所储存为有效数据,反之则为无效数据。或者,复电过程中,控制单元104也可在挥发式存储器126上整理出系统资讯,帮助判断数据有效与否。
一种实施方式中,该控制单元104于确定该最末页指标后,更在判定该最末页指标所指空间所储存数据仍有效、该最末页指标所指的空间接续空页、且该最末页指标所指空间对应的单发完成写入操作的映射数据未封存时,搬移该最末页指标所指空间对应的单发完成写入操作的N页数据。
一种实施方式中,连续数据以及零散数据有各自的数据接收区块,分别标号为C0以及C1。控制单元104复电程序须对两种数据接收区块C0以及C1都进行修复。一种实施方式中,区块C0/C1结束接收数据后,控制单元104会再配置区块C2/C3用作连续/零散数据的接收。区块C0/C1的映射表F2H至映射表H2F封存可安插在区块C2/C3的操作空档。复电程序中,控制单元104若自系统资讯区块池214获知区块C2/C3存在,则步骤S204扫描需包括区块C2/C3扫描。若区块C2/C3不存在,则控制单元104是扫描区块C0/C1重建。
举凡在数据储存装置的复电程序中,根据单发完成写入操作的尺寸(N页)而做的数据可靠度判断,都属于本发明所欲保护的范围。基于以上技术内容,本发明更涉及非挥发式存储器操作方法。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。

Claims (20)

1.一种数据储存装置,包括:
一非挥发式存储器,藉由单发完成写入操作接收数据,各单发完成写入操作写入N页数据,N为大于1的数字;以及
一控制单元,于该数据储存装置复电时,令该非挥发式存储器断电前使用的一主动区块的一最末页指标指向一回单发完成写入操作写入的N页数据中的最末页。
2.如权利要求1所述的数据储存装置,其特征在于:
该控制单元包括对该最末页指标所指空间对应的单发完成写入操作的N页数据进行错误校验,并于错误校验失败时,校正该最末页指标指向更前一回单发完成写入操作写入的N页数据中的最末页。
3.如权利要求2所述的数据储存装置,其特征在于:
该控制单元于确定该最末页指标后,还判断该最末页指标所指空间对应的单发完成写入操作的N页数据是否受断电波及,以搬移之。
4.如权利要求3所述的数据储存装置,其特征在于:
该控制单元于该最末页指标所指的空间不接续空页时,判定该最末页指标所指空间对应的单发完成写入操作的N页数据不受断电波及,不搬移之。
5.如权利要求3所述的数据储存装置,其特征在于:
该最末页指标所指空间对应的单发完成写入操作的映射资讯已封存时,该控制单元判定该最末页指标所指空间对应的单发完成写入操作的N页数据不受断电波及,不搬移之。
6.如权利要求2所述的数据储存装置,其特征在于:
该控制单元于确定该最末页指标后,更判断该最末页指标所指空间对应的单发完成写入操作的N页数据是否已被更新或搬移,以略去无效数据的搬移。
7.如权利要求2所述的数据储存装置,其特征在于:
该控制单元于确定该最末页指标后,更在判定该最末页指标所指空间所储存数据仍有效、该最末页指标所指的空间接续空页、且该最末页指标所指空间对应的单发完成写入操作的映射数据未封存时,搬移该最末页指标所指空间对应的单发完成写入操作的N页数据。
8.如权利要求2所述的数据储存装置,其特征在于:
该数据储存装置复电时,该控制单元顺着填写顺序扫描该主动区块,逐页检查元数据,令元数据无内容者为第一空页,且初始化该最末页指标指向该第一空页前一页。
9.如权利要求8所述的数据储存装置,其特征在于:
该控制单元逐页检查元数据时也重建该主动区块的映射表F2H;且
于确定该最末页指标后,该控制单元令该映射表F2H对应该最末页指标所指空间之后的映射资讯无效。
10.如权利要求1所述的数据储存装置,其特征在于:
各单发完成写入操作令共用储存单元的数据单发写入。
11.一种非挥发式存储器操作方法,包括:
令一非挥发式存储器藉由单发完成写入操作接收数据,各单发完成写入操作写入N页数据,N为大于1的数字;以及
于该数据储存装置复电时,令该非挥发式存储器断电前使用的一主动区块的一最末页指标指向一回单发完成写入操作写入的N页数据中的最末页。
12.如权利要求11所述的非挥发式存储器操作方法,其特征在于,还包括:
对该最末页指标所指空间对应的单发完成写入操作之N页数据进行错误校验;以及
于错误校验失败时,校正该最末页指标指向更前一回单发完成写入操作写入的N页数据中的最末页。
13.如权利要求12所述的非挥发式存储器操作方法,其特征在于,还包括:
于确定该最末页指标后,更判断该最末页指标所指空间对应的单发完成写入操作的N页数据是否受断电波及,以搬移之。
14.如权利要求13所述的非挥发式存储器操作方法,其特征在于,还包括:
于该最末页指标所指的空间不接续空页时,判定该最末页指标所指空间对应的单发完成写入操作的N页数据不受断电波及,不搬移之。
15.如权利要求13所述的非挥发式存储器操作方法,其特征在于:
该最末页指标所指空间对应的单发完成写入操作的映射资讯已封存时,判定该最末页指标所指空间对应的单发完成写入操作的N页数据不受断电波及,不搬移之。
16.如权利要求12所述的非挥发式存储器操作方法,其特征在于,还包括:
于确定该最末页指标后,判断该最末页指标所指空间对应的单发完成写入操作的N页数据是否已被更新或搬移,以略去无效数据的搬移。
17.如权利要求12所述的非挥发式存储器操作方法,其特征在于,还包括:
于确定该最末页指标后,更在判定该最末页指标所指空间所储存数据仍有效、该最末页指标所指的空间接续空页、且该最末页指标所指空间对应的单发完成写入操作的映射数据未封存时,搬移该最末页指标所指空间对应的单发完成写入操作的N页数据。
18.如权利要求12所述的非挥发式存储器操作方法,其特征在于,还包括:
在该数据储存装置复电时,顺着填写顺序扫描该主动区块,逐页检查元数据,令元数据无内容者为第一空页,且初始化该最末页指标指向该第一空页前一页。
19.如权利要求18所述的非挥发式存储器操作方法,其特征在于,还包括:
在逐页检查元数据时,更重建该主动区块的映射表F2H;以及
于确定该最末页指标后,令该映射表F2H对应该最末页指标所指空间之后的映射资讯无效。
20.如权利要求11所述的非挥发式存储器操作方法,其特征在于:
各单发完成写入操作令共用储存单元的数据单发写入。
CN201810709213.XA 2017-12-27 2018-07-02 数据储存装置以及非挥发式存储器操作方法 Active CN109976938B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW106145988 2017-12-27
TW106145988A TWI646535B (zh) 2017-12-27 2017-12-27 資料儲存裝置以及非揮發式記憶體操作方法

Publications (2)

Publication Number Publication Date
CN109976938A true CN109976938A (zh) 2019-07-05
CN109976938B CN109976938B (zh) 2022-09-23

Family

ID=65804045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810709213.XA Active CN109976938B (zh) 2017-12-27 2018-07-02 数据储存装置以及非挥发式存储器操作方法

Country Status (3)

Country Link
US (1) US10789163B2 (zh)
CN (1) CN109976938B (zh)
TW (1) TWI646535B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527184A (zh) * 2019-09-17 2021-03-19 群联电子股份有限公司 数据管理方法、存储器控制电路单元以及存储器存储装置
TWI777087B (zh) * 2019-09-06 2022-09-11 群聯電子股份有限公司 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190092054A (ko) * 2018-01-30 2019-08-07 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102583810B1 (ko) * 2018-05-15 2023-10-05 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10747612B2 (en) * 2018-12-31 2020-08-18 Micron Technology, Inc. Multi-page parity protection with power loss handling
CN113535459B (zh) * 2020-04-14 2024-04-12 慧荣科技股份有限公司 响应电源事件的数据存取方法及装置
US10990526B1 (en) * 2020-04-30 2021-04-27 Micron Technology, Inc. Handling asynchronous power loss in a memory sub-system that programs sequentially
EP4283474A1 (en) * 2022-05-23 2023-11-29 Samsung Electronics Co., Ltd. Storage device, memory device, and computing system including the same

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080270680A1 (en) * 2005-11-17 2008-10-30 Chee Keng Chang Controller for Non-Volatile Memories and Methods of Operating the Memory Controller
US20120265921A1 (en) * 2011-04-14 2012-10-18 Apple Inc. Boot data storage schemes for electronic devices
US20130055046A1 (en) * 2011-08-31 2013-02-28 Greg A. Blodgett Memory refresh methods and apparatuses
US20140219020A1 (en) * 2013-02-04 2014-08-07 Donghun Kwak Memory system comprising nonvolatile memory device and program method thereof
US20150127887A1 (en) * 2013-11-07 2015-05-07 SK Hynix Inc. Data storage system and operating method thereof
US20150332772A1 (en) * 2014-05-13 2015-11-19 Kyungryun Kim Nonvolatile memory system including nonvolatile memory device and memory controller and operating method of memory controller
US20170185336A1 (en) * 2015-12-24 2017-06-29 SK Hynix Inc. Memory system and operating method thereof
US20170301400A1 (en) * 2016-04-14 2017-10-19 SK Hynix Inc. Memory system and operating method thereof

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6988175B2 (en) * 2003-06-30 2006-01-17 M-Systems Flash Disk Pioneers Ltd. Flash memory management method that is resistant to data corruption by power loss
TWI546666B (zh) * 2014-11-03 2016-08-21 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
US20180157428A1 (en) * 2016-12-01 2018-06-07 Alibaba Group Holding Limited Data protection of flash storage devices during power loss
US10326473B2 (en) * 2017-04-13 2019-06-18 Sk Hynix Inc Symbol-based coding for NAND flash devices

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080270680A1 (en) * 2005-11-17 2008-10-30 Chee Keng Chang Controller for Non-Volatile Memories and Methods of Operating the Memory Controller
US20120265921A1 (en) * 2011-04-14 2012-10-18 Apple Inc. Boot data storage schemes for electronic devices
US20130055046A1 (en) * 2011-08-31 2013-02-28 Greg A. Blodgett Memory refresh methods and apparatuses
US20140219020A1 (en) * 2013-02-04 2014-08-07 Donghun Kwak Memory system comprising nonvolatile memory device and program method thereof
US20150127887A1 (en) * 2013-11-07 2015-05-07 SK Hynix Inc. Data storage system and operating method thereof
US20150332772A1 (en) * 2014-05-13 2015-11-19 Kyungryun Kim Nonvolatile memory system including nonvolatile memory device and memory controller and operating method of memory controller
US20170185336A1 (en) * 2015-12-24 2017-06-29 SK Hynix Inc. Memory system and operating method thereof
US20170301400A1 (en) * 2016-04-14 2017-10-19 SK Hynix Inc. Memory system and operating method thereof

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI777087B (zh) * 2019-09-06 2022-09-11 群聯電子股份有限公司 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
US11687444B2 (en) 2019-09-06 2023-06-27 Phison Electronics Corp. Data managing method. memory controlling circuit unit and memory storage device
CN112527184A (zh) * 2019-09-17 2021-03-19 群联电子股份有限公司 数据管理方法、存储器控制电路单元以及存储器存储装置

Also Published As

Publication number Publication date
TWI646535B (zh) 2019-01-01
US20190196960A1 (en) 2019-06-27
CN109976938B (zh) 2022-09-23
TW201928968A (zh) 2019-07-16
US10789163B2 (en) 2020-09-29

Similar Documents

Publication Publication Date Title
CN109976938A (zh) 数据储存装置以及非挥发式存储器操作方法
CN109977034A (zh) 数据储存装置以及非挥发式存储器操作方法
CN108664418A (zh) 数据储存装置以及其操作方法
CN102354299B (zh) 存储卡和半导体器件
CN1930635B (zh) 对多个区块进行适应性确定群组以成为多个多区块单元
CN104750626B (zh) 数据储存装置以及快闪存储器控制方法
KR101517416B1 (ko) 셀당 단일 비트 nand 플래시 메모리를 에뮬레이팅하기 위한 셀당 다수 비트 nand 플래시 메모리에 대한 제어기
CN110442304A (zh) 用以执行连续读取操作的设备和方法
US9582358B2 (en) Initialization scheme during dual programming of a memory system
CN109582599A (zh) 数据储存装置以及非挥发式存储器操作方法
CN100585570C (zh) 具有存储元件的存储卡及其控制方法
CN109885506A (zh) 数据储存装置、主机装置、以及数据写入方法
CN104126177B (zh) 预交错顺序数据的系统及方法
CN108733510A (zh) 数据储存装置及映射表重建方法
CN109542675A (zh) 存储器系统及其操作方法
CN109840215A (zh) 未对齐写入的处理
US20150348649A1 (en) Bit error rate mapping in a memory system
CN106598479A (zh) 闪速存储器的故障安全擦除的方法和装置
CN107273058A (zh) 逻辑地址偏移
CN107111456A (zh) 用于生成与主机命令相关联的提示信息的系统和方法
CN108874301A (zh) 数据储存装置以及其操作方法
CN104885052B (zh) 读写存储设备的数据映像中的虚拟边界码
CN110032521A (zh) 用于增强闪存转换层映射灵活性以得到性能和寿命改进的方法和系统
CN106201908A (zh) 包括半导体存储器件的存储系统及其操作方法
CN108073357A (zh) 以raid方式存储数据的存储装置

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