CN109977034A - 数据储存装置以及非挥发式存储器操作方法 - Google Patents
数据储存装置以及非挥发式存储器操作方法 Download PDFInfo
- Publication number
- CN109977034A CN109977034A CN201810710193.8A CN201810710193A CN109977034A CN 109977034 A CN109977034 A CN 109977034A CN 201810710193 A CN201810710193 A CN 201810710193A CN 109977034 A CN109977034 A CN 109977034A
- Authority
- CN
- China
- Prior art keywords
- data
- active block
- memory device
- page
- control unit
- 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
Links
- 238000011017 operating method Methods 0.000 title claims abstract description 12
- 238000013507 mapping Methods 0.000 claims description 67
- 230000007935 neutral effect Effects 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 2
- 239000011800 void material Substances 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 8
- 230000008020 evaporation Effects 0.000 description 14
- 238000001704 evaporation Methods 0.000 description 14
- 238000000034 method Methods 0.000 description 8
- 241001269238 Data Species 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000007789 sealing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及数据储存装置的复电技术,尤其提供一数据储存装置以及非挥发式存储器操作方法。该数据储存装置具有一非挥发式存储器以及一控制单元。该数据储存装置复电时,该控制单元对该非挥发式存储器填虚数据,自一主动区块上一最末页指标所指下一页开始填写虚数据,直至该主动区块上一空页指标所指一空页所属的一第一字线群填满虚数据,以避开不稳定空间的使用。
Description
技术领域
本发明有关于数据储存装置以及其中非挥发式存储器的操作方法。
背景技术
非挥发式存储器有多种形式─例如,快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存。
然而,非挥发式存储器的写入操作可能被非预期断电中断。为确保数据可靠度,数据储存装置的复电程序为本技术领域一项重要课题。
发明内容
根据本发明一种实施方式实现的数据储存装置包括一非挥发式存储器以及一控制单元。该数据储存装置复电时,该控制单元对该非挥发式存储器填虚数据(dummy data),自一主动区块上一最末页指标所指下一页开始填写虚数据,直至该主动区块上一空页指标所指一空页所属的一第一字线群填满虚数据。该控制单元可更在对该非挥发式存储器填毕上述虚数据后,更新该空页指标指向接续的一第二字线群。该控制单元可更在更新该空页指标后,根据该最末页指标,进行该第一字线群至该第二字线群的数据搬移,以保全原本储存在该第一字线群的数据。所述技术避开不稳定空间的使用。
根据本发明一种实施方式实现的数据储存装置包括一非挥发式存储器以及一控制单元。该数据储存装置复电时,该控制单元若判断该非挥发式存储器断电前尚不存在一备用主动区块,则对该非挥发式存储器填虚数据,自一主动区块上一最末页指标所指下一页开始填写虚数据,直至该主动区块上一空页指标所指一空页所属的一第一字线群填满虚数据。该数据储存装置复电时,该控制单元若判断该非挥发式存储器断电前已存在该备用主动区块,则根据该备用主动区块的一最末页指标,将数据自该备用主动区块搬移到一新配置备用主动区块。该备用主动区块是在该主动区块完成数据接收时配置使用,供该控制单元在该备用主动区块的操作空档进行该主动区块的映射资讯封存。
一种实施方式中,一非挥发式存储器控制方法包括:于一数据储存装置复电时,若判断该数据储存装置中一非挥发式存储器断电前尚不存在一备用主动区块,则对该非挥发式存储器填虚数据,自一主动区块上一最末页指标所指下一页开始填写虚数据,直至该主动区块上一空页指标所指一空页所属的一第一字线群填满虚数据。该数据储存装置复电时,若判断该非挥发式存储器断电前已存在该备用主动区块,则根据该备用主动区块的一最末页指标,将数据自该备用主动区块搬移到一新配置备用主动区块。该备用主动区块是在该主动区块完成数据接收时配置使用,且该备用主动区块的操作空档用于进行该主动区块的映射资讯封存。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1以方块图图解根据本发明一种实施方式所实现的一数据储存装置100,其中包括快闪存储器102以及控制单元104;
图2为流程图,图解根据本发明一种实施方式所实现的一复电程序;
图3流程图是关于步骤S212的不可靠数据即时搬移;
图4以图例说明本发明技术如何应付打断步骤S306的非预期断电事件;
图5流程图图解步骤S306搬移数据的一种实施方式,其中除了采单发完成写入操作,更在搬移数据前再度确认数据正确性;且
图6图解区块C2/C3存在时,复电所做的不可靠数据搬移。
符号说明
100~数据储存装置;
102~快闪存储器;
104~控制单元;
106~主机:
112~系统内程式码区块池;
114~系统资讯区块池;
116~闲置区块池;
118~数据区块池;
122~微处理器;
124~只读存储器;
126~挥发式存储器;
130、132、134、136~页;
140、142、144、146~映射资讯;
152、154~字线群;
402~空页指标*Empty更新后所指示的页;
404~字线群;
412、414、416、418~映射表更新;
602~映射资讯;
604、606~单发完成写入操作以及对应的映射资讯更新;
608、610~单发完成写入操作以及对应的映射资讯更新;
A_BLK~主动区块;
F2H、H2F~映射表;
*A_BLK~指标,指向主动区块A_BLK;
*seal~指标,指示映射表封存进度;
*Empty~指标,定义主动区块A_BLK之空页;
C2/C3、C4/C5~区块;
S202…S212、S302…S306、S502…S522~步骤;
SPO~非预期断电事件。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求书来界定。
非挥发式存储器可以是快闪存储器(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即遗失,扫描元数据也可以重建之。
本发明快闪存储器特别采用一种高密度储存技术,提升单位物理空间的储存密度。例如,相较于单阶储存(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)若遭非预期断电事件(sudden power-offevent)中断,其写入内容将损毁或不可靠。甚至,前后空间的可靠度都会受影响。例如,刚复电时可正确读出的数据,过一阵子后,就损毁无法读出。非预期断电事件影响的空间可能阔达一字线群(word line group,其空间填写涉及M回单发完成写入操作,例如,包括M*N页)。如此数据稳定度问题都需要在复电程序中考量。
图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以复电程序重新收集映射资讯。复电程序更包括不可靠数据之搬移。
复电程序中,单发完成写入操作(one shot programming)的尺寸可用于调整主动区块A_BLK的最末页指标。此外,复电程序包括数据搬移,避开非预期断电事件可能影响的一字线群(word line group)的空间。
如图所示,复电程序启动后,控制单元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将空页指标*Empty记录下来,属系统资讯区块池114提供的系统资讯之一。一种实施方式中,系统资讯区块池114是以总表方式记录此类系统资讯。控制单元104更初始化该主动区块A_BLK的一最末页指标指向空页130前一页132。控制单元104会检查该最末页指标所指的页132是否是一回单发完成写入操作(one shot programming)所写入的N页中的最末页。若如图例,页132并非一回单发完成写入操作(one shot programming)所写入的N页中的最末页,控制单元104在主动区块A_BLK前推,寻得前一回单发完成写入操作(one shot programming),校正该最末页指标指向页134,并将挥发式存储器126上随复电扫描而收集的映射资讯140舍弃。映射资讯140是复电扫描时取自页134的下一页至页132的元数据。
页132所属的单发完成写入操作(one shot programming)显然受非预期断电事件中断。以上将主动区块A_BLK的最末页指标校正到页134的动作,使极可能被非预期断电事件损毁的该回单发完成写入操作(one shot programming)被视为无效。如此一来,数据可靠度大幅提升。
随着最末页指标校正到页134,所指该回单发完成写入操作(one shotprogramming)写入的N页数据可更被错误校验。倘若N页有任一页无法通过错误校验(如,UECC发生),则表示该回单发完成写入操作(one shot programming)受非预期断电事件损毁。控制单元104在主动区块A_BLK前推,寻得更前一回的单发完成写入操作(one shotprogramming)。该最末页指标经校正,指向新寻得的该回单发完成写入操作(one shotprogramming)写入的N页数据中的最末页。映射表F2H中相应舍弃映射资讯。
图例是确认主动区块A_BLK使用的最末页指标指向页134。空页指标*Empty用于字线群辨认。图示中,空页指标*Empty所指示的空页130属字线群152,包括M*N页,M为数值。根据指向页134的最末页指标,控制单元104可得知p回单发完成写入所涉及的p*N页因属于字线群152,可靠度低,需要搬移。本发明自最末页指标所指的页134的下一页开始填写虚数据(dummy data),直至字线群152的最末页,以避开使用字线群152剩余的闲置空间。虚拟数据填充后,控制单元104将空页指标*Empty更新,改指向下一字线群154的起始页136。字线群152的头p回单发完成写入操作的p*N页复制至下一字线群154,以p回单发完成写入操作写入p*N页数据。不稳定的字线群152因而被避开使用。特别是,空页指标*Empty的更新设计(由空页130改指向页136)有其特殊效用。若虚数据填完又发生非预期断电事件损伤新字线群154的空间,控制单元104也可因为空页指标*Empty已经指向页136,而明白知道损伤是发生在新的这个字线群154。再次复电时,会将此新的字线群154填满虚数据,避开使用。
至于映射表F2H,字线群15的之虚数据填写会反映为映射资讯140(对应虚数据的新版本)以及142。映射资讯140与142可都标示代表虚数据的特定值。另外,对应p回单发完成写入操作的数据搬移,映射资讯144将取代映射资讯146。
图2为流程图,图解根据本发明一种实施方式所实现的一复电程序;以下搭配图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的最末页指标指向一回单发完成写入操作(one shot programming)写入的N页数据中的最末页。步骤S208,控制单元104对主动区块A_BLK的最末页指标所关联的N页(同回单发完成写入操作写入)进行错误校验。若有任一页没有办法通过错误校验(如,发生UECC),控制单元104进行步骤S210舍弃映射表F2H所载关于该N页的映射资讯,再次进行步骤S206,以N页为跨距,前移主动区块A_BLK的最末页指标。若步骤S208无发生错误校验失败(如,UECC)事件,控制单元104进行步骤S212,将不可靠数据即时搬移。
图3流程图是关于步骤S212的不可靠数据即时搬移。步骤S302,控制单元104自最末页指标指示该页134的下一页开始,以虚数据填满空页指标*Empty所指的字线群152。步骤S304,控制单元104更新空页指标*Empty指向下一字线群154的起始页136。步骤S306,控制单元104将字线群152中,最末页指标指示该页134之前的p*N页数据搬移到字线群154的起始p*N页。倘若不可靠数据搬移(第3图步骤S306)再次经非预期断电事件中断,控制单元104再次复电的程序可略去图2的扫描、最末页指标校正、错误校验等步骤,即切入图3步骤。此时,断电前步骤S304的空页指标*Empty及时维护设计(130更新到136)就可以派上效能。此次复电进行的步骤S302是填写虚数据在最新版空页指标*Empty(指向页136)所涉及的字线群上,可避开此不稳定的字线群,确保使用者数据不填入之。
图4以图例说明本发明技术如何应付打断步骤S306的非预期断电事件。图示单发完成写入一次写入4页数据。第一次复电扫描到的空页130为0x10,校正后的最末页指标所指的页134为0x07。空页130对应的字线群152包括16页。虚拟页是自页134的下一页0x08填写到字线群152尾页0x15。虚拟数据填写后,空页指标*Empty换指向编号136的页0x16。步骤S306数据搬移开始。此时,非预期断电事件SPO再次发生。再次复电后,控制单元104根据空页指标*Empty所指的页0x16获知字线群154不稳定。控制单元104进行步骤S302,自最末页指标所指的下一页0x08至字线群154尾页0x31填满虚数据。虚拟数据填写后,空页指标*Empty换指向编号402的页0x32,对应的字线群404。字线群404无不稳定问题。0x00~0x07如此两回单发完成写入操作的八页数据,也是以两回单发完成写入操作搬移至0x32~0x39。两次断电所影响的字线群152以及154都被避开使用。
映射表F2H的维护则分几个阶段。映射数据重建412可以是根据步骤S204重建。两次复电所进行的虚数据填写步骤S302则对应映射数据更新414以及416。第二次复电所做的不可靠数据重新写入步骤S306则对应映射表更新418。
图5流程图图解步骤S306搬移数据的一种实施方式,其中除了采单发完成写入操作,更在搬移数据前再度确认数据正确性。此段落佐以图4说明各步骤。步骤S502设定搬移起始点为页0x00,最末页指标所指该页134的字线群152起始页。步骤S504读取数据。一种实施方式是采单面逐页完整读取,一次读取一页的完整内容(包括元数据),以取得其中错误校验码(如,ECC code)。步骤S506进行错误校验,若不通过错误校验(如,发生UECC),则步骤S508舍弃该字线群152数据,挥发式存储器126上重建(操作412)的映射表F2H相关内容随之清空。若错误校验通过,步骤S510确认是否达最末页指标所指页134。若未达、且步骤S512确认还未缓冲收集到满足单发完成写入操作尺寸的页数(N页),步骤S514递增读取指标,再次进行步骤S504以及S506。若步骤S512确定单发完成写入操作的N页数据收集完成,步骤S516确认缓冲器非空,步骤S518将步骤S504读取的数据再次写入快闪存储器(如,字线群404的闲置页),且步骤S520使挥发式存储器126上的映射表F2H随之更新(操作418)。待缓冲器缓冲的N页清空,步骤S522判断是否已完成最末页指标所指页134的数据搬移。若完成,则流程结束。若尚未完成,则流程进行步骤S514。
一种实施方式中,连续数据以及零散数据有各自的数据接收区块,分别标号为C0以及C1。控制单元104复电程序须对两种数据接收区块C0以及C1都进行修复。一种实施方式中,区块C0/C1结束接收数据后,控制单元104会再配置区块C2/C3用作连续/零散数据的接收。区块C0/C1的映射表F2H至映射表H2F封存可安插在区块C2/C3的操作空档。复电程序中,控制单元104若自系统资讯区块池114获知区块C2/C3不存在,则区块C0/C1因断电而不可靠的数据搬移是以图3方式实现,包括虚数据填写。若区块C2/C3存在,一种实施方式是采与图3流程不同方式进行区块C2/C3之不可靠数据保全。考量除了区块C2/C3本身映射资讯,区块C1/C2映射资讯可能也有重建需求。若又以图3流程填虚数据,虚数据映射资讯也很占空间。因此,控制单元104是将区块C2/C3内容复制到闲置区块C4/C5上,以略去再利用区块C2/C3所必须做的虚数据填写。
图6图解区块C2/C3存在时,复电所做的不可靠数据搬移。对应复电寻得最末页指标134,区块C2/C3上不可靠数据所对应的映射表F2H映射资讯标号602。控制单元104另行配置区块C4/C5。区块C2/C3至区块C4/C5的不可靠数据搬移604是N页进行,遵循单发完成写入操作。数据搬移604对应的映射资讯系动态更新606至挥发式存储器126上,组成区块C4/C5的映射表。区块C2/C3至区块C4/C5的不可靠数据搬移608也是N页进行,遵循单发完成写入操作。数据搬移608对应的映射资讯系动态更新610至挥发式存储器126上,组成区块C4/C5的映射表。区块C2/C3至区块C4/C5的数据搬移604、608以及相应的映射表更新606、610可同样以图5流程实现─遵循单发完成写入操作的概念,并在数据搬移时再次确认对数据进行错误校验。
举凡在数据储存装置的复电程序中,考量字线组(word line group)数据不可靠而做出相应处理的技术,都属于本发明所欲保护的范围。基于以上技术内容,本发明还涉及非挥发式存储器操作方法。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (19)
1.一种数据储存装置,包括:
一非挥发式存储器;以及
一控制单元,于该数据储存装置复电时,对该非挥发式存储器填虚数据,自一主动区块上一最末页指标所指下一页开始填写虚数据,直至该主动区块上一空页指标所指一空页所属的一第一字线群填满虚数据。
2.如权利要求1所述的数据储存装置,其特征在于:
该控制单元还在对该非挥发式存储器填毕上述虚数据后,更新该空页指标指向接续的一第二字线群。
3.如权利要求2所述的数据储存装置,其特征在于:
该控制单元还在更新该空页指标后,根据该最末页指标,进行该第一字线群至该第二字线群的数据搬移,以保全原本储存在该第一字线群的数据。
4.如权利要求3所述的数据储存装置,其特征在于:
该非挥发式存储器是藉由单发完成写入操作接收数据;
各单发完成写入操作写入N页数据,N为大于1的数字;
于该数据储存装置复电时,该控制单元令该最末页指标指向一回单发完成写入操作写入的N页数据中的最末页;且
该控制单元是采单发完成写入操作进行该第一字线群至该第二字线群的数据搬移。
5.如权利要求4所述的数据储存装置,其特征在于:
该控制单元进行该第一字线群至该第二字线群的数据搬移时,更进行错误校验,并略去无法通过错误校验的数据的搬移。
6.一种数据储存装置,包括:
一非挥发式存储器;以及
一控制单元,于该数据储存装置复电时,若判断该非挥发式存储器断电前尚不存在一备用主动区块,则对该非挥发式存储器填虚数据,自一主动区块上一最末页指标所指下一页开始填写虚数据,直至该主动区块上一空页指标所指一空页所属的一第一字线群填满虚数据;
其中:
于该数据储存装置复电时,该控制单元若判断该非挥发式存储器断电前已存在该备用主动区块,则根据该备用主动区块的一最末页指标,将数据自该备用主动区块搬移到一新配置备用主动区块;且
该备用主动区块是在该主动区块完成数据接收时配置使用,供该控制单元在该备用主动区块的操作空档进行该主动区块的映射资讯封存。
7.如权利要求6所述的数据储存装置,其特征在于:
该非挥发式存储器是藉由单发完成写入操作接收数据;
各单发完成写入操作写入N页数据,N为大于1的数字;
于该数据储存装置复电时,该控制单元令该备用主动区块上该最末页指标指向一回单发完成写入操作写入的N页数据中的最末页;且
该控制单元是采单发完成写入操作进行该备用主动区块至该新配置备用主动区块的数据搬移。
8.如权利要求7所述的数据储存装置,其特征在于:
该控制单元进行该备用主动区块至该新配置备用主动区块的数据搬移时,更进行错误校验,并略去无法通过错误校验的数据的搬移。
9.如权利要求8所述的数据储存装置,其特征在于:
该控制单元更在对该非挥发式存储器填毕上述虚数据后,更新该空页指标指向接续的一第二字线群。
10.如权利要求9所述的数据储存装置,其特征在于:
该控制单元更在更新该空页指标后,根据该主动区块的该最末页指标,进行该第一字线群至该第二字线群的数据搬移,以保全原本储存在该第一字线群的数据。
11.如权利要求10所述的数据储存装置,其特征在于:
于该数据储存装置复电时,该控制单元若判断该非挥发式存储器断电前已存在该备用主动区块,该控制单元令该主动区块的该最末页指标指向一回单发完成写入操作写入的N页数据中的最末页;且
该控制单元是采单发完成写入操作进行该第一字线群至该第二字线群的数据搬移。
12.如权利要求11所述的数据储存装置,其特征在于:
该控制单元进行该第一字线群至该第二字线群的数据搬移时,更进行错误校验,并略去无法通过错误校验的数据的搬移。
13.一种非挥发式存储器操作方法,包括:
于一数据储存装置复电时,若判断该数据储存装置中一非挥发式存储器断电前尚不存在一备用主动区块,则对该非挥发式存储器填虚数据,自一主动区块上一最末页指标所指下一页开始填写虚数据,直至该主动区块上一空页指标所指一空页所属的一第一字线群填满虚数据;且
于该数据储存装置复电时,若判断该非挥发式存储器断电前已存在该备用主动区块,则根据该备用主动区块的一最末页指标,将数据自该备用主动区块搬移到一新配置备用主动区块;
其中:
该备用主动区块是在该主动区块完成数据接收时配置使用,且该备用主动区块的操作空档用于进行该主动区块的映射资讯封存。
14.如权利要求13所述的非挥发式存储器操作方法,其特征在于:
该非挥发式存储器是藉由单发完成写入操作接收数据;
各单发完成写入操作写入N页数据,N为大于1的数字;
于该数据储存装置复电时,该备用主动区块上该最末页指标被指向一回单发完成写入操作写入的N页数据中的最末页;且
该备用主动区块至该新配置备用主动区块的数据搬移是采单发完成写入操作进行。
15.如权利要求14所述的非挥发式存储器操作方法,其特征在于,还包括:
进行该备用主动区块至该新配置备用主动区块的数据搬移时,更进行错误校验,并略去无法通过错误校验的数据的搬移。
16.如权利要求15所述的非挥发式存储器操作方法,其特征在于,还包括:
在对该非挥发式存储器填毕上述虚数据后,更新该空页指标指向接续的一第二字线群。
17.如权利要求16所述的非挥发式存储器操作方法,其特征在于,还包括:
在更新该空页指标后,根据该主动区块的该最末页指标,进行该第一字线群至该第二字线群的数据搬移,以保全原本储存在该第一字线群的数据。
18.如权利要求17所述的非挥发式存储器操作方法,其特征在于,还包括:
于该数据储存装置复电时,若判断该非挥发式存储器断电前已存在该备用主动区块,则令该主动区块的该最末页指标指向一回单发完成写入操作写入的N页数据中的最末页;且
采单发完成写入操作进行该第一字线群至该第二字线群的数据搬移。
19.如权利要求18所述的非挥发式存储器操作方法,其特征在于,还包括:
进行该第一字线群至该第二字线群的数据搬移时,更进行错误校验,并略去无法通过错误校验的数据的搬移。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106146236A TWI645404B (zh) | 2017-12-28 | 2017-12-28 | 資料儲存裝置以及非揮發式記憶體操作方法 |
TW106146236 | 2017-12-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109977034A true CN109977034A (zh) | 2019-07-05 |
CN109977034B CN109977034B (zh) | 2022-09-16 |
Family
ID=65431718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810710193.8A Active CN109977034B (zh) | 2017-12-28 | 2018-07-02 | 数据储存装置以及非挥发式存储器操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10776264B2 (zh) |
CN (1) | CN109977034B (zh) |
TW (1) | TWI645404B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104061A (zh) * | 2019-11-21 | 2020-05-05 | 深圳忆联信息系统有限公司 | 避免固体存储设备因异常掉电导致数据丢失的方法、装置、计算机设备及存储介质 |
CN112306742A (zh) * | 2019-07-23 | 2021-02-02 | 慧荣科技股份有限公司 | 瞬间断电回复处理方法及计算机可读取存储介质以及装置 |
TWI816401B (zh) * | 2022-03-16 | 2023-09-21 | 日商鎧俠股份有限公司 | 記憶體系統及記憶體系統之控制方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI664527B (zh) * | 2018-03-20 | 2019-07-01 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行初始化之方法、記憶裝置及其控制器以及電子裝置 |
KR102583810B1 (ko) * | 2018-05-15 | 2023-10-05 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102610395B1 (ko) * | 2019-01-22 | 2023-12-05 | 삼성전자주식회사 | 비휘발성 메모리 장치를 포함하는 메모리 시스템 |
JP2020123412A (ja) | 2019-01-30 | 2020-08-13 | キオクシア株式会社 | 半導体記憶装置 |
KR20200113992A (ko) * | 2019-03-27 | 2020-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치 |
CN113918081B (zh) * | 2020-07-08 | 2024-03-26 | 慧荣科技股份有限公司 | 计算机可读取存储介质、配置可靠命令的方法及装置 |
KR20220053374A (ko) * | 2020-10-22 | 2022-04-29 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
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 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101483067A (zh) * | 2008-01-11 | 2009-07-15 | 群联电子股份有限公司 | 快闪存储器数据写入方法及其快闪存储器控制器 |
CN104750619A (zh) * | 2013-12-26 | 2015-07-01 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
US20160124820A1 (en) * | 2014-11-03 | 2016-05-05 | Silicon Motion, Inc. | Data Storage Device and Flash Memory Control Method |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1926616B (zh) * | 2004-01-19 | 2011-09-14 | 特科2000国际有限公司 | 使用存储器地址映射表的便携式数据存储设备 |
TWI298836B (en) * | 2005-10-12 | 2008-07-11 | Sunplus Technology Co Ltd | Apparatus for controlling flash memory and method thereof |
US9123422B2 (en) * | 2012-07-02 | 2015-09-01 | Super Talent Technology, Corp. | Endurance and retention flash controller with programmable binary-levels-per-cell bits identifying pages or blocks as having triple, multi, or single-level flash-memory cells |
TWI385516B (zh) * | 2008-08-12 | 2013-02-11 | Phison Electronics Corp | 快閃記憶體儲存系統及其資料寫入方法 |
CN101876949B (zh) * | 2009-11-30 | 2012-04-25 | 威盛电子股份有限公司 | 数据储存系统与方法 |
US8892815B2 (en) * | 2012-09-13 | 2014-11-18 | Sandisk Technologies Inc. | Optimized fragmented block compaction with a bitmap |
KR102127284B1 (ko) * | 2013-07-01 | 2020-06-26 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 관리 방법 |
CN106155942B (zh) * | 2015-03-27 | 2019-05-31 | 漳州灿坤实业有限公司 | 断电记忆装置及其系统 |
US10326473B2 (en) * | 2017-04-13 | 2019-06-18 | Sk Hynix Inc | Symbol-based coding for NAND flash devices |
-
2017
- 2017-12-28 TW TW106146236A patent/TWI645404B/zh active
-
2018
- 2018-07-02 CN CN201810710193.8A patent/CN109977034B/zh active Active
- 2018-12-21 US US16/229,122 patent/US10776264B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101483067A (zh) * | 2008-01-11 | 2009-07-15 | 群联电子股份有限公司 | 快闪存储器数据写入方法及其快闪存储器控制器 |
CN104750619A (zh) * | 2013-12-26 | 2015-07-01 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
US20160124820A1 (en) * | 2014-11-03 | 2016-05-05 | Silicon Motion, Inc. | Data Storage Device and Flash Memory Control Method |
CN105740157A (zh) * | 2014-11-03 | 2016-07-06 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306742A (zh) * | 2019-07-23 | 2021-02-02 | 慧荣科技股份有限公司 | 瞬间断电回复处理方法及计算机可读取存储介质以及装置 |
CN111104061A (zh) * | 2019-11-21 | 2020-05-05 | 深圳忆联信息系统有限公司 | 避免固体存储设备因异常掉电导致数据丢失的方法、装置、计算机设备及存储介质 |
TWI816401B (zh) * | 2022-03-16 | 2023-09-21 | 日商鎧俠股份有限公司 | 記憶體系統及記憶體系統之控制方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI645404B (zh) | 2018-12-21 |
CN109977034B (zh) | 2022-09-16 |
TW201931366A (zh) | 2019-08-01 |
US10776264B2 (en) | 2020-09-15 |
US20190205247A1 (en) | 2019-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109977034A (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
CN104750625B (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN102354299B (zh) | 存储卡和半导体器件 | |
CN109976938A (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
CN108664418A (zh) | 数据储存装置以及其操作方法 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
CN107111456A (zh) | 用于生成与主机命令相关联的提示信息的系统和方法 | |
CN107273058A (zh) | 逻辑地址偏移 | |
US9268688B2 (en) | Data management method, memory controller and memory storage apparatus | |
KR20100113083A (ko) | 셀당 단일 비트 nand 플래시 메모리를 에뮬레이팅하기 위한 셀당 다수 비트 nand 플래시 메모리에 대한 제어기 | |
CN106598479A (zh) | 闪速存储器的故障安全擦除的方法和装置 | |
CN109885506A (zh) | 数据储存装置、主机装置、以及数据写入方法 | |
US8769243B2 (en) | Apparatus with smart card chip for storing communication file in non-volatile memory | |
CN110058795A (zh) | 管理闪存模块的方法及相关的闪存控制器及电子装置 | |
CN108701084A (zh) | 部分写入块处理 | |
CN110096385A (zh) | 存储器系统及其操作方法 | |
US8074128B2 (en) | Block management and replacement method, flash memory storage system and controller using the same | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN109521944A (zh) | 数据储存装置以及数据储存方法 | |
US20120166706A1 (en) | Data management method, memory controller and embedded memory storage apparatus using the same | |
KR102578191B1 (ko) | 리커버리 성능이 최적화된 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
US8943264B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US20140089566A1 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US9312011B1 (en) | Data writing method, memory storage device and memory control circuit unit | |
CN110119326A (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 |