固态硬盘搜集垃圾区块的方法

文档序号:9506134阅读:609来源:国知局
固态硬盘搜集垃圾区块的方法
【技术领域】
[0001]本发明有关一种固态硬盘,尤其关于固态硬盘执行搜集垃圾区块程序,发生异常状况时保护数据不遗失的方法。
【背景技术】
[0002]固态硬盘(Solid State Drive,简称SSD)是将数个非易失性的闪存(FlashMemory)整合成为单一储存装置。而闪存需要利用电压进行编程以存取数据,一旦编程中发生异常,极易损毁储存的数据。因此,保护数据不遗失成为固态硬盘重要课题。
[0003]现有技术的固态硬盘接收主机指令存取数据时,利用逻辑-实体对照表(MappingTable),将存取数据的逻辑页地址(Logical Page Adress,简称LPA)转换为实体页地址(Physical Page Adress,简称PPA),再传输至闪存。闪存具有数据区(Data Area)及备用区(Spare Area),每区各包含多个实体区块(Block),实体区块内含多个实体页,且需以实体区块为单位进行抹除数据。闪存由数据区的数据实体区块,读取该实体页地址的数据,经固态硬盘传输至主机更新数据后,固态硬盘在备用区选取的一备用实体区块,再将更新数据写入备用实体区块,形成数据区的新数据实体区块,并更改逻辑-实体对照表。另登录废弃原数据实体区块的该逻辑页地址的数据,以待固态硬盘执行搜集垃圾区块程序回收再利用。
[0004]如图1所示,为现有技术固态硬盘搜集垃圾区块的方法。现有技术固态硬盘开始执行搜集垃圾区块程序时(请参步骤P1);搜集数据区中超过预定数目废弃逻辑页的实体区块,作为垃圾区块(步骤P2);在备用区中选取一备用实体区块作为目的区块(步骤P3);复制垃圾区块中有效的数据,编程至目的区块的实体页(步骤P4);复制完成后,抹除垃圾区块中的全部数据(步骤P5);回收垃圾区块形成备用区中新的备用实体区块(步骤P6)。因此现有技术固态硬盘就可将垃圾区块的有效数据,重新集中整理在目的区块,空出数据区的实体区块,以作为轮替使用的备用实体区块。
[0005]然而,现有技术固态硬盘采用单一垃圾区块为单位,依序复制有效数据编程至目的区块,完成一垃圾区块就抹除该垃圾区块数据。只要过程中一垃圾区块编程至目的区块时发生异常状况,例如断电等,极易损毁目的区块相邻实体页已编程的有效数据。而损毁的相邻实体页的有效数据又属于前已回收的其它垃圾区块,因已将数据抹除,无法再恢复原始数据,将导致固态硬盘遗失储存的数据。因此,固态硬盘在搜集垃圾区块程序上,仍有问题亟待解决。

【发明内容】

[0006]本发明的目的是提供一种固态硬盘搜集垃圾区块的方法,在复制有效数据到目的区块后,藉由编程无用数据填满有效数据的实体单元,再抹除垃圾区块的数据,以保护数据。
[0007]本发明另一目的在提供一种固态硬盘搜集垃圾区块的方法,在编程无用数据过程中发生异常,由尚未抹除垃圾区块复制原始数据至目的区块,以避免数据遗失。
[0008]为了达到前述发明的目的,本发明固态硬盘搜集垃圾区块的方法,固态硬盘启动搜集垃圾区块,开始执行搜集垃圾区块的程序,搜集多层单元的闪存中数据区的垃圾区块;选取闪存中备用实体区块作为目的区块;复制垃圾区块中的有效数据编程至目的区块的实体单元的实体页;搜寻目的区块中具有有效数据且未编程满实体页的实体单元;利用预设无用数据编程满实体单元的实体页;抹除垃圾区块中的数据;回收垃圾区块形成备用区中新的备用实体区块。
[0009]本发明固态硬盘搜集垃圾区块的方法,在搜寻不具有有效数据且未编程满实体页的实体单元,则抹除垃圾区块的数据。而编程无用数据时,依目的区块的逻辑页编码顺序及交叉相隔方式进行编程,且编程满具有有效数据且未编程满实体页的实体单元。出现异常状况,造成已编程的实体页的有效数据损毁,由垃圾区块重新复制有效数据继续在目的区块编程,并将编程无用数据的实体页及损毁有效数据的实体页,登录废弃。目的区块对编程无用数据的且未编程满实体页的实体单元,在后续回收其它垃圾区块而损毁无用数据,则直接废弃实体单元。
【附图说明】
[0010]图1为现有技术固态硬盘搜集垃圾区块方法的流程图。
[0011]图2为本发明使用的固态硬盘的结构图。
[0012]图3为本发明使用的闪存的实体区块的结构图。
[0013]图4为本发明使用的闪存编程的示意图。
[0014]图5为本发明固态硬盘执行搜集垃圾区块程序的示意图。
[0015]图6为本发明固态硬盘搜集垃圾区块的方法的流程图。
[0016]图7为本发明固态硬盘执行搜集垃圾区块程序出现异常的示意图。
[0017]图8为本发明出现异常固态硬盘搜集垃圾区块的方法的流程图。
【具体实施方式】
[0018]有关本发明为达成上述目的,所采用的技术手段及其功效,兹举较佳实施例,并结合附图加以说明如下。
[0019]请同时参阅图2、图3及图4,图2为本发明使用的固态硬盘的结构图,图3为闪存的实体区块31的结构图,图4为闪存30编程的示意图。图2中本发明使用现有的固态硬盘10,固态硬盘10内设控制器20、缓冲存储器21及闪存30。其中控制器20配合储存闪存30的控制参数的缓冲存储器21,控制储存数据的多个闪存30,进行存取数据。而闪存30包含多个实体区块31,每一实体区块31包含256个实体页(Physical Page),以储存256个逻辑页(Logical Page)数据。
[0020]闪存30 —般依据存储单元(Cell)可储存的位数据(Bit),分为单层单元(SingleLevel Cell,简称SLC)、多层单兀(Multi Level Cell,简称MLC)、三层单兀(Triple LevelCell,简称TLC)及四层单元(Quad Level Cell,简称QLC)等。本发明使用的闪存30为多层单元,本实施例虽以双层储存位数据的MLC闪存30为例说明,但本发明包含且不限于MLC闪存。图3中MLC闪存30由上下存储层组成,将上下存储层相邻且可同时存取的实体页规划成一实体单元40,再将编号000至127的128个实体单元40划分成一实体区块31,以储存256个逻辑页的数据。为了避免编程电压影响邻近的已编程的实体页电压,通常MLC闪存30编程时,依逻辑页的编码顺序编程,且采交叉相隔在实体页方式编程逻辑页。并形成MLC闪存30的每一实体区块31的256个实体页地址相对应储存256个逻辑页地址的逻辑-实体对照表,储存在缓冲存储器21。
[0021]图4中实体单元40包含一下层实体页(Lower page) L及一上层实体页(Higherpage)H,每一实体页包含数个存储电路单位41,利用存储电路单位41负载不同的电压,区分出代表的不同数字讯号。实体单元40另设标志电路单位42,利用标志电路单位42载不同的电压,区分出代表的一次编程或二次编程,以作为标示实体单元40编程次数的标志(Flag) ο
[0022]MLC闪存31如将逻辑页0与逻辑页4编程至实体单元40。在未编程实体单元40前,实体单元40的存储电路单位41的电压维持在抹除电压,而标志电路单位42则维持在代表一次编程标志电压50。一次编程时,对实体单元40的下层实体页L增加预设的电压,将存储电路单位41形成不同负载的抹除电压43与一次编程电压44,而标志电路单位42则仍在代表一次编程标志电压50,以将逻辑页0编程在下层实体页L。MLC闪存31 二次编程时,对实体单元40的上层实体页Η由一次编程电压增加预设的电压,将上层实体页Η的存储电路单位41形成不同负载的二次编程电压45、46、47及48,并将标志电路单位42增压至代表二次编程标志电压51,以将逻辑页4编程在上层实体页Η。读取数据时,再利用预设不同的临界电压V1-V5分辨各存储电路单位的电压大小,区分出代表数字讯号的[1]或[0],以读取下层实体页L与上层实体页Η储存的逻辑页0与逻辑页4的数据。
[0023]由于MLC闪存31为避免过大的电压破坏内存,采用逐次增加电压的方式编程上下层实体页。当后编程的上层实体页Η发生
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1