首页> 中国专利> 瞬间断电回复处理方法及计算机可读取存储介质以及装置

瞬间断电回复处理方法及计算机可读取存储介质以及装置

摘要

本发明涉及一种瞬间断电回复处理方法,由处理单元执行,包含:在瞬间断电而重启电源后,依序读取当前块的页面;依据当前块的页面读取状态来标识当前块中最后一个正确页面;配置当前块中最后一个正确页面的下一个页面之后n1个页面为虚假页面;以及将当前块中最后一个正确页面及之前的页面存储到当前块中最后一个虚假页面之后的空页面,其中,存储的页面总数为n2个。虚假页面的配置以及最后一个正确页面及之前的页面的迁移,可避免发生瞬间断电时所影响的邻近物理字符线及页面的记忆单元的可用性减损。

著录项

  • 公开/公告号CN112306742A

    专利类型发明专利

  • 公开/公告日2021-02-02

    原文格式PDF

  • 申请/专利权人 慧荣科技股份有限公司;

    申请/专利号CN201910666078.X

  • 发明设计人 林文生;

    申请日2019-07-23

  • 分类号G06F11/14(20060101);G06F12/02(20060101);

  • 代理机构11315 北京国昊天诚知识产权代理有限公司;

  • 代理人南霆;程爽

  • 地址 中国台湾新竹县竹北市台元街36号8楼之1

  • 入库时间 2023-06-19 09:44:49

说明书

技术领域

本发明涉及闪存存储装置,尤指一种瞬间断电回复处理方法及计算机可读取存储介质以及装置。

背景技术

闪存通常分为NOR闪存与NAND闪存。NOR闪存为随机存取装置,主装置(Host)可在地址引脚上提供任何存取NOR闪存的地址,并及时地从NOR闪存的数据引脚上获得存储在该地址上的数据。相反地,NAND闪存并非随机存取,而是串行存取。NAND闪存无法像NOR闪存一样,可以存取任何随机地址,主装置反而需要写入串行的字节(Bytes)的值到NAND闪存中,用以定义请求命令(Command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(闪存中写入操作的最小数据块)或一个区块(闪存中抹除操作的最小数据块)。

由于自然或人为引起的瞬间断电可能中断NAND闪存存储装置的写入操作,因此,本发明实施例提出一种的瞬间断电回复处理方法及计算机可读取存储介质以及装置,用于回复中断的写入操作。

发明内容

有鉴于此,如何减轻或消除上述相关领域的缺失,实为有待解决的问题。

本发明涉及一种瞬间断电回复处理方法,该方法由处理单元在加载并执行软件或固件模块的程序码时实施,包含:在瞬间断电而重启电源后,依序读取当前块的页面;依据当前块的页面读取状态来标识当前块中最后一个正确页面;配置当前块中最后一个正确页面的下一个页面之后n1个页面为虚假页面;以及将当前块中最后一个正确页面及之前的页面存储到当前块中最后一个虚假页面之后的空页面,其中,存储的页面总数为n2个,n1及n2都是正整数。

本发明另涉及一种瞬间断电回复处理的计算机可读取存储介质,用于存储能够被处理单元执行的计算机程序,该计算机程序被该处理单元执行时实现上述方法步骤。

本发明另涉及一种瞬间断电回复处理装置,包含:闪存存取接口及处理单元。处理单元执行如上所述的方法。

上述实施例的优点之一,在瞬间断电回复处理中,通过虚假页面的配置以及最后一个正确页面及之前的页面的迁移,可避免发生瞬间断电时所影响的邻近物理字符线及页面的记忆单元的可用性减损。

本发明的其他优点将配合以下的说明和附图进行更详细的解说。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1为依据本发明实施例的闪存存储器的系统架构示意图。

图2为依据本发明实施例的存取子接口与多个存储子单元的连接示意图。

图3为依据本发明实施例的数据组织示意图。

图4为依据本发明实施例的因应瞬间断电回复的数据块配置示意图。

图5及图6为依据本发明实施例的当前块、暂存块及备份块中存储的保护信息示意图。

图7为依据本发明实施例的将不满一整页的数据写入暂存块的空页面的方法流程图。

图8为依据本发明实施例的将一整页的数据写入当前块的空页面的方法流程图。

图9为依据本发明实施例的在瞬间断电回复处理中的标识正确页面的方法流程图。

图10为依据本发明实施例的当前块、暂存块及备份块中存储的数据及保护信息示意图。

图11为依据本发明实施例的在瞬间断电回复处理中的迁移无法错误校验修正页面(uncorrectable ECC—UECC page)的邻近页面的方法流程图。

图12为依据本发明实施例的UECC页面的邻近页面处理的示意图。

图13为依据本发明实施例的在瞬间断电回复处理中的迁移UECC页面的邻近页面的方法流程图。

【附图标记列表】

100 闪存记忆系统

110 主机端

130 装置端

131 物理层

132 数据链接层

133 闪存控制器

134 处理单元

136 静态随机存取存储器

139 闪存存取接口

150 存储单元

170 通用闪存存储互联层

139_0 存取子接口

150_0~150_i 存储子单元

210 数据线

230_0~230_i 芯片启动控制信号

310、330 数据平面

310_0~310_m、330_0~330_m 块

410 数据缓冲区

451 当前块

453 暂存块

455 备份块

510、510a、510b、530、550a、550b 剩余空间

S710~S730 方法步骤

S810~S860 方法步骤

S910~S990 方法步骤

1010a~1014a、1010a~1014b、1050a~1050b、1030、1031 剩余空间

S1110~S1150 方法步骤

S1300~S1330 方法步骤

具体实施方式

以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。

必须了解的是,使用在本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、作业处理、组件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。

本发明中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。

必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。使用于描述组件之间关系的其他语词也可类似方式解读,例如“介于”相对于“直接介于”,或者是“邻接”相对于“直接邻接”等等。

参考图1。闪存系统架构100包含主机端(host)110、装置端(device)130及存储单元150。此系统架构可实施于个人计算机、笔记本计算机(Laptop PC)、平板计算机、移动电话、数字相机、数字摄影机等电子产品。装置端130可包含处理单元133。主机端110及装置端130间可以闪存通信协议(例如,通用闪存存储,Universal Flash Storage UFS)彼此通信。闪存控制器133通过数据链接层132及物理层131电性连接(耦接)主机端110。闪存控制器133可通过直接存储器访问控制器(未显示于图1)从数据缓冲区(未显示于图1)读取从存储单元150取得的用户数据,并通过驱动数据链接层132及物理层131依序敲出给主机端110。闪存控制器133可通过直接存储器访问控制器(未显示于图1)将主机端110欲写入的用户数据存储至数据缓冲区。处理单元134可使用多种方式实施,例如使用通用硬件,如单处理器、具并行处理能力的多处理器、图形处理器、轻简型通用目的处理器(Lightweight General-Purpose Processor)或其他具运算能力的处理器,并且在执行指令(Instructions)、宏码(Macrocode)或微码(Microcode)时,提供之后描述的功能。闪存控制器133可为UFS控制器,通过UFS通信协议与主机端110进行通信。虽然本发明实施例以UFS通信协议举例,但本发明也可应用到其他的通信协议,例如通用串行总线(Universal Serial Bus,USB)、先进技术附件(advanced technology attachment,ATA)、串行先进技术附件(serial advancedtechnology attachment,SATA)、快速外设组件互联(peripheral componentinterconnect express,PCI-E)或其他接口的通信协议。

装置端130另包含闪存存取接口139,使得处理单元134可通过闪存存取接口139与存储单元150通信,详细来说,可采用双倍数据率(Double Data Rate DDR)通信协议,例如,开放NAND闪存(Open NAND Flash Interface ONFI)、双倍数据率开关(DDR Toggle)或其他接口。处理单元134通过闪存存取接口139写入用户数据到存储单元150中的指定地址(目的地址),以及从存储单元150中的指定地址(来源地址)读取用户数据。闪存存取接口139使用数个电子信号来协调处理单元134与存储单元150间的数据与命令传递,包含数据线(dataline)、时钟信号(clock signal)与控制信号(control signal)。数据线可用以传递命令、地址、读出及写入的数据;控制信号线可用以传递芯片启动(Chip Enable CE)、地址提取启动(Address Latch Enable ALE)、命令提取启动(Command Latch Enable CLE)、写入启动(Write Enable WE)等控制信号。

存储单元150可包含多个存储子单元,每个存储子单元,各自使用关联的存取子接口与处理单元134进行通信。一或多个存储子单元可封装在一个芯粒(Die)之中。闪存存取接口139可包含j个存取子接口,每一个存取子接口连接i个存储子单元。存取子接口及其后连接的存储子单元又可统称为输出输入通道,每个存储子单元可以逻辑单元编号(LogicUnit Number LUN)标识。换句话说,i个存储子单元共享一个存取子接口。例如,装置端130包含4个输出输入且每一个输出输入连接4个存储子单元时,装置端130可存取16个存储子单元。处理单元134可驱动存取子接口中之一者,从指定的存储子单元读取,或写入数据至指定的存储子单元。每个存储子单元拥有独立的芯片启动(CE)控制信号。换句话说,当欲对指定的存储子单元进行数据读取或写入时,需要驱动关联的存取子接口来启动此存储子单元的芯片启动控制信号。参考图2。处理单元134可通过存取子接口139_0使用独立的芯片启动控制信号230_0至230_i从连接的存储子单元150_0至150_i中选择出其中一者,接着,通过共享的数据线210从选择出的存储子单元的指定地址读取数据,或传送欲写入指定地址的用户数据至选择出的存储子单元。

每个存储子单元可包含多个数据平面(data planes),每个数据平面可包含多个块(blocks),并且每个块可包含多个页面(pages)。参考图3,以存储子单元150_0为例。存储子单元150_0包含两个数据平面310及330。数据平面310包含块310_0至310_m,且数据平面330包含块330_0至330_m。每个块包含n+1个页面。每个块可配置为单层式单元块(SingleLogical Cell SLC block)、多层式单元块(Multi-Level Cell MLC block)或三层式单元块(Triple Level Cell TLC block)。SLC、MLC及TLC块中的每个存储器单元(memorycells)可分别存储两个、四个及八个状态。SLC块中的每个字符线(word line)可存储一个页面的数据。MLC块中的每个字符线可存储两个页面的数据,包含最高有效位页面(MostSignificant Bit MSB page)及最低有效位页面(Least Significant Bit LSB page)。TLC块中的每个字符线可存储三个页面的数据,包含最高有效位页面、中间有效位页面(CenterSignificant Bit CSB page)及最低有效位页面。

参考图4。在直接写入模式(direct-write mode),静态随机存取存储器(StaticRandom Access Memory SRAM)136中没有配置缓存空间(cache)来缓存主机端110发出的大量主机写命令(host write commands)及待写入数据,只有配置有限空间的命令队列及数据缓冲区(data buffer)410来存储主机写命令及待写入数据。不同于缓存模式(cachemode),处理单元134于直接写入模式依据主机写命令驱动闪存存取接口139将待写入数据写入存储单元150后才算完成主机写命令的处理。为了处理主机端110发出的各式各样的主机写命令,存储子单元150_0可配置两个块:当前块(current block)451及暂存块(temporary block)453。当前块451配置为MLC或TLC块,而暂存块453配置为SLC块。假设主机端110管理数据的最小单位为4K字节,且存储子单元150_0中每个页面存储的数据长度为16K字节:当主机写命令指示写入一或多个页面长度的数据时,处理单元134驱动闪存存取接口139以MLC或TLC模式将数据写入当前块451中一或多个空页面。当主机写命令指示写入少于页面长度的数据时,处理单元134驱动闪存存取接口139以SLC模式将数据写入暂存块453中空页面的一或多个区段(sectors),其中每个区段存储4K字节的数据。一旦暂存块453中的任何页面填满数据,处理单元134可驱动闪存存取接口139以MLC或TLC模式将暂存块453中的整页数据写入当前块451中的一个空页面。

由于当前块451为MLC或TLC块,也就是说二或三个页面的数据存储于同一个字符线,若数据写入当前块451的过程发生瞬间断电(sudden power off SPO),可能会损坏之前已经写入的页面数据。例如,参考图3,当块310_0为MLC块(当前块),其中的页面P#0为一个字符线的LSB页面,且页面P#3为同一个字符线的MSB页面,页面P#0及P#3可称为页面对(page pair)。若数据写入块310_0的页面P#3的过程发生瞬间断电,可能连带损坏之前已经写入页面P#0的数据。为了防止如上所述的问题,参考图4,存储子单元150_0可更配置备份块455,配置为SLC块。在写入数据到当前块(如块310_0)中的一个MSB页面(如页面P#3)前,处理单元134驱动闪存存取接口139先将当前块中此MSB页面的相应LSB页面(如页面P#0)的数据存储(备份)至备份块455中的空页面,之后再写入数据到此MSB页面。

类似地,针对当前块为TLC块的情况,处理单元134可驱动闪存存取接口139先将当前块中此MSB页面的相应CSB页面的数据存储(备份)至备份块455中的空页面,之后再写入数据到此MSB页面。或者,处理单元134可驱动闪存存取接口139先将当前块中此CSB页面的相应LSB页面的数据存储(备份)至备份块455中的空页面,之后再写入数据到此CSB页面。

所属技术领域人员可将当前块451、暂存块453及备份块455中的任何一个实施于任何的数据平面上(如图3所示的数据平面310或330)。

为了缩短瞬间断电回复的处理时间,处理单元134尽可能不要花费时间来通过闪存存取接口139重新写入数据到当前块451,而是从暂存块453及/或备份块455中取得相应数据以重建当前块451。本发明实施例利用当前块451、暂存块453及备份块455中每个页面的剩余空间(spare space)来存储保护信息(protection information),让未来可能的瞬间断电回复处理(sudden power off recovery SPOR process)使用。为了维护当前块451、暂存块453及备份块455中页面数据的存储顺序,当前块451的一个页面的剩余空间可纪录于存储此页面数据当时指向暂存块453的第一个空页面的地址信息(例如暂存块453的编号及其中第一个空页面的编号),而暂存块453的一个页面的剩余空间可纪录于存储此页面数据当时指向当前块451的第一个空页面的地址信息(例如当前块451的编号及其中第一个空页面的编号)。又由于当前块451的CSB页面或LSB页面(可称为原始页面)的数据可能备份到备份块455中的一个页面(可称为备份页面),因此,备份块455的一个或多个页面的剩余空间可纪录存储此页面数据当时指向当前块451的第一个空页面的地址信息(例如当前块451的编号及其中第一个空页面的编号),以及指向暂存块453的第一个空页面的地址信息(例如暂存块453的编号及其中第一个空页面的编号)。

在一些实施例中,当前块451、暂存块453及备份块455中每个页面的剩余空间能够存储指向两个以上页面的信息。参考图5,举个使用案例,当前块451的第N页面中的数据备份到备份块455的第O页面。图5中斜线的方块代表空页面。当前块451的第N页面的剩余空间510可存储指向暂存块453的第M+1页面的地址信息。暂存块453的第M页面的剩余空间530可存储指向当前块451的第N+1页面的地址信息。备份块455的第O页面的剩余空间550a可存储指向当前块451的第N+1页面的地址信息,以及剩余空间550b可存储指向暂存块453的第M+1页面的地址信息。

在另一些实施例中,当前块451、暂存块453及备份块455中每个页面的剩余空间只能够存储指向一个页面的信息。若要完整纪录如上所述备份块455的剩余空间需要存储的保护信息,处理单元134以交替的方式将数据存储到数据平面310及数据平面330的当前块的空页面,并且将数据平面310及数据平面330的两个页面视为页面组(page group)。例如,参考图4,假设块310_1为数据平面310的当前块,而块330_1为数据平面330的当前块:处理单元134可依序将数据写入当前块310_1的页面P#0、当前块330_1的页面P#0、当前块310_1的页面P#1、当前块330_1的页面P#1,其中当前块310_1及当前块330_1的页面P#0为一个页面组,且当前块310_1及当前块330_1的页面P#1为另一个页面组。参考图6,举个使用案例,当前块451a设置于数据平面310,而当前块451b设置于数据平面330。当前块451a的第N页面的数据备份到备份块455的第O页面,并且当前块451b的第N页面的数据备份到备份块455的第O+1页面。图6中斜线的方块代表空页面。当前块451a及当前块451b的第N页面为页面组。当前块451a的第N页面的剩余空间510a可存储指向暂存块453的第M页面的地址信息,而当前块451b的第N页面的剩余空间510b可不存储任何地址信息。暂存块453的第M页面的剩余空间530可存储指向当前块451a的第N+1页面的地址信息。备份块455的第O页面的剩余空间550a可存储指向当前块451a的第N+1页面的地址信息,以及备份块455的第O+1页面的剩余空间550b可存储指向暂存块453的第M页面的地址信息。

参考图7。图7所示的方法可由处理单元134在加载并执行特定固件或软件指令时实施。处理单元134依据命令队列中的主机写指令准备写入不满一整页长度的数据(如4K、8K、12K的数据)到暂存块的一个空页面后(步骤S710),产生暂存页面的保护信息,包含指向当前块的第一个空页面的地址信息(步骤S730)。例如,处理单元134产生图6中暂存块453的剩余空间530,或图7中暂存块453的剩余空间530a或530b即将存储的保护信息。接着,处理单元134驱动闪存存取接口139将数据及保护信息写入到暂存块的第一个空页面(步骤S750)。

参考图8。图8所示的方法可由处理单元134在加载并执行特定固件或软件指令时实施。处理单元134依据命令队列中的主机写指令准备写入一整个页面的数据到当前块的一个空页面(步骤S810)。所属技术领域人员理解一整个页面的数据可包含或不包含从暂存块中取得的数据。接着,处理单元134判断即将写入页面的字符线(wordline)是否存在已写入的页面数据(步骤S820)。例如,字符线是否存在处理上一个主机写命令时已写入的LSB或CSB页面数据。如果判断为否(步骤S820中“否”的路径),例如,即将写入页面为一个字符线的LSB页面,或者是,已写入的LSB或CSB页面数据为处理同一个主机写命令时写入的数据,处理单元134产生当前页面的保护信息,包含指向暂存块中的第一个空页面的地址信息(步骤S830)。例如,处理单元134产生图6中当前块451的剩余空间510,或图7中当前块451a的剩余空间510a或当前块451b的剩余空间510b即将存储的保护信息。接着,处理单元134驱动闪存存取接口139将数据及保护信息写入当前块的第一个空页面(步骤S840)。

若判断为是(步骤S820中”是”的路径),处理单元134产生备份页面的保护信息,包含指向当前块的第一个空页面的地址信息,以及指向暂存块的第一个空页面的地址信息(步骤S850)。例如,处理单元134产生图6或图7中备份块455的剩余空间550a及550b即将存储的保护信息。处理单元134驱动闪存存取接口139将已写入的页面数据及保护信息写入到备份块的第一个空页面(步骤S860)。接着,处理单元134执行如上所述步骤S830及S840的处理。

由于瞬间断电可能伤害已经写入或正在写入的页面数据,因此,在发生瞬间断电后而重启电源时,处理单元134可执行瞬间断电回复处理,用于标识当前块及暂存块中的正确数据。参考图9。图9所示的方法可由处理单元134于加载并执行特定固件或软件指令时实施。处理单元134使用变量i来记录当前块中正在扫描的页面编号,初始为0(步骤S910)。处理单元134反复执行一个循环(步骤S920至S940),用于找出当前块中因瞬间断电而伤害到的页面。在每个回合,处理单元134驱动闪存存取接口139读取当前块的第i页面(步骤S920),并且执行两个判断(步骤S930及S940)。当读取的页面没有出现无法修复的情形(步骤S930中“否”的路径)或读取的页面虽然无法修复但已经备份于备份块中(步骤S930中“是”的路径接着步骤S940中“是”的路径),判断读取页面的数据为正确数据,将变量i加1以进行下一个页面的判断(步骤S935)。当读取的页面出现无法修复的情形(步骤S930中“是”的路径)并且没有备份于备份块中(步骤S940中“否”的路径),判断读取页面的数据为不正确数据,并结束循环。读取的页面出现无法修复的情形指处理单元134使用读取页面数据中的错误校验修正码(error check and correction ECC code)仍然无法修复读取数据中的错误比特。出现无法修复情形的页面可称为无法错误校验修正的页面(uncorrectableECC—UECC page)。在循环结束后,处理单元134使用变量v1=i-1,用于记录当前块中最后一个正确页面的编号,换句话说,当前块中第i页面以及之后的页面都是被瞬间断电伤害到的页面。所属技术领域人员可不在数据写入至当前块时加上备份块的备份机制,使得如上所述的方法可不进行步骤S940的判断。

接着,处理单元134使用变量j来记录暂存块中正在扫描的页面编号,初始为0(步骤S960)。处理单元134反复执行一个循环(步骤S970至S980),用于找出暂存块中正确的页面。在每个回合,处理单元134驱动闪存存取接口139读取暂存块的第j页面的保护信息(步骤S970),并且判断保护信息是否指向当前块第v1页面之后的页面(步骤S980)。当读取的保护信息没有指向当前块第v1页面之后的页面,也就是说,指向当前块第v1页面或之前的页面(步骤S980中“否”的路径),判断读取页面的数据为正确数据,将变量j加1以进行下一个页面的判断(步骤S975)。当读取的保护信息指向当前块第v1页面之后的页面(步骤S980中“是”的路径),判断读取页面的数据为不正确数据,并结束循环。在循环结束后,处理单元134使用变量v2=j-1,用于记录暂存块中最后一个正确页面的编号,换句话说,暂存块中第j页面(也就是暂存块中的第一个不正确页面)以及之后的页面都是瞬间断电后不可使用的暂存数据。

从一个面向来说,本发明实施例提出一种由装置端130中的处理单元134执行相关程序代码所实施的方法步骤:在瞬间断电而重启电源后,驱动闪存存取接口139依序读取当前块451的页面;依据当前块451的页面读取状态来标识当前块451中最后一个正确页面;驱动闪存存取接口139依序读取暂存块453的页面的保护信息以标识暂存块453中第一个不正确页面,其中,暂存块453中第一个不正确页面的保护信息包含指向当前块451中最后一个正确页面之后的页面的地址信息;以及舍弃暂存块453中含第一个不正确页面之后的页面数据。在瞬间断电回复处理中,通过根据暂存块453中的保护信息来舍弃暂存块453中存储时间晚于当前块451中最后一个正确页面的所有页面数据,可确保当前块451及暂存块453中回复页面的时间顺序性,避免在回复后的正确页面间夹杂了没被回复的页面数据。

参考图10所示的使用案例。假设当前块451a设置于数据平面310,而当前块451b设置于数据平面330,当前块451a的第Q+1页面存储于备份块455中的第P页面,当前块451b的第Q+1页面存储于备份块455中的第P+1页面,暂存块453的第R页面的保护信息1030指向当前块451a及451b的第Q+3页面,暂存块453的第R+1页面的保护信息1031指向当前块451a及451b的第Q+4页面。当处理单元134扫描到当前块451a及451b第Q+1页面为UECC页面(步骤S930中“是”的路径)但已经备份于备份块455中(步骤S940中“是”的路径),分别使用备份块455中第P页面及第P+1页面的数据取代当前块451a及451b第Q+1页面的数据,并继续往下扫描。当处理单元134扫描到当前块451a及451b第Q+4页面为UECC页面(步骤S930中“是”的路径)但没有备份于备份块455中(步骤S940中“否”的路径),处理单元134判断当前块451a及451b中的最后正确页面为第Q+3页面(步骤S950)。

此外,当处理单元134扫描到暂存块453第R+1页面的保护信息指向当前块451a及451b中的最后正确页面之后的页面(步骤S980中“是”的路径),处理单元134判断暂存块453中的最后正确页面为第R页面(步骤S990)。

虽然最终侦测到的UECC页面之前页面的数据都为正确数据,但是发生瞬间断电时,UECC页面邻近的物理字符线及页面有可能受到影响而减损其存储单元的可用性,例如减少可正常读取的次数等。参考图11。图11所示的方法可由处理单元134于加载并执行特定固件或软件指令时实施。处理单元134驱动闪存存取接口139将当前块中最后正确页面及之前的t-1个页面的数据复制到暂存块的空页面(步骤S1110)。t可依据不同的系统需求设为2到5之间的任意整数。接着,处理单元134将当前块中侦测到的UECC页面之后的t个页面配置为虚假页面(dummy pages)(步骤S1130)。在一些实施例中,处理单元134可驱动闪存存取接口139将当前块中侦测到的UECC页面之后的t个页面填满虚假值(dummy values),例如0xFF。接着,处理单元134驱动闪存存取接口139将暂存块中存储的数据写入到新的当前块的空页面或此当前块中最后一个虚假页面后的空页面(步骤S1150)。

接续图10的使用案例,参考图12。当前块451a及451b中第Q+1至Q+3页面的数据及保护信息1011a至1013c复制存储到当前块451a及451b中第Q+1至Q+3页面(步骤S1110及S1150)。当前块451a及451b中第Q+5至Q+7页面配置为虚假页面(步骤S1130)。

然而,相同当前块在数据写入过程中可能发生两次或以上的瞬间断电,使得先前被迁移走的页面数据被误判为正确的页面数据。为解决这样情况发生的问题,静态随机存取存储器136中关联于当前块的闪存主机地址映射表(Flash-to-Host F2H table)中的每一笔纪录加上有效字段,用于指出当前块的特定页面中的数据为有效或无效。此外,图11所示的方法可修改为图13所示。在成功配置当前块中的虚假页面及迁移候选页面的数据到当前块中最后一个虚假页面后的空页面后(步骤S1110、S1130及S1310),将当前块的F2H表中关联于被迁移页面、UECC页面及虚假页面的纪录的有效字段设为无效(步骤S1330)。例如,参考图12,当前块451a及451b的F2H表中关联于第Q+1至Q+7页面的纪录的有效字段设为无效。所属技术领域人员理解,主机端110可发出主机抹除命令给处理单元134,指示抹除特定逻辑地址的数据。经过地址转译后,处理单元134知道逻辑地址映射到当前块的哪个页面中的哪个或哪些区段。当前块中的一个页面中所有区段的数据都因主机抹除命令而删除后,处理单元134可将F2H表中关联于此页面的纪录中的有效字段设为无效。

此外,图11的步骤S1110修改为图13的步骤S1300,处理单元1340还检查F2H表中关联于当前块中最后正确页面及之前的t-1个页面的有效性。如果当前块中最后正确页面及之前的t-1个页面为无效页面,则处理单元1340不会进行如步骤S1310及S1330的迁移操作。换句话说,步骤S1330中所述的最后正确页面及之前的t-1个页面都是有效的。

虽然如上所述实施例中的迁移页面及虚假页面的数目是相同的,所属技术领域人员可将迁移页面及虚假页面的数目配置为不同的数目,例如,迁移页面的总数为n2个,虚假页面的总数为n1个,n1及n2中的每一个可为介于2至5间的整数。

处理单元134所执行如图7至图9、图11及图13的方法步骤,可用一或多个功能模块组成的计算机程序产品来实现。这些功能模块存储于非易失性存储装置,并且可被处理单元134于特定时间点加载并执行。本发明所述的方法中的全部或部分步骤可以计算器程序实现,例如计算机的操作系统、计算机中特定硬件的驱动程序、或软件程序。此外,也可实现在如上所示的其他类型程序。所属技术领域具有通常知识者可将本发明实施例的方法撰写成计算机程序,为求简明不再加以描述。依据本发明实施例方法实施的计算机程序可存储在适当的计算机可读取存储介质,例如DVD、CD-ROM、USB、硬盘,也可置于可通过网络(例如,互联网,或其他适当载具)存取的网络服务器。

虽然图1、图2及图4中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,已达成更佳的技术效果。此外,虽然图7至图9、图11及图13的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或并行地执行更多步骤,本发明也不因此而局限。

虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用于限缩本发明。相反地,此发明涵盖了所属技术领域中的技术人员显而易见的修改与相似设置。所以,权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号