存储空间管理方法与流程

文档序号:26538557发布日期:2021-09-07 20:46阅读:245来源:国知局

1.本公开涉及一种存储空间管理方法,特别是涉及一种延长使用寿命的存储空间管理方法。


背景技术:

2.固态硬盘(solid state drive,ssd)的使用寿命受限于其内部的闪存的读写次数。当读写次数超过设计的上限值,闪存可能无法正确保存数据,因此,固态硬盘的控制芯片将标记此存储区块为坏块(bad block)。
3.随着越来越多存储区块被标记成坏块,当固态硬盘中所剩余可以使用的存储器容量小于初始时的宣告容量(declared capacity)时,传统的存储器控制器将认定此固态硬盘的使用寿命已尽而无法再进行存取运作。
4.针对上述情形,如何延长固态硬盘的使用寿命为本领域的重要课题。


技术实现要素:

5.本公开内容的一方面涉及一种存储空间管理方法,用于包含控制器和存储器的存储装置,包含:由控制器计算存储器的预期使用容量和有效容量,其中有效容量与存储器的多个区块中被标记为坏块的数量呈负相关;当有效容量小于等于宣告容量且有效容量与预期使用容量的差值小于预定临界容量时,由控制器禁止对存储器进行写入操作;以及当有效容量小于等于宣告容量且有效容量与预期使用容量的差值不小于预定临界容量时,由控制器允许对存储器进行写入操作。
6.本公开内容的一方面涉及另一种存储空间管理方法,用于包含控制器和存储器的存储装置,包含:由控制器计算存储器的预期使用容量和有效容量,其中有效容量与存储器的多个区块中被标记为坏块的数量呈负相关;由控制器决定存储器的这些区块中的每一区块是否为不再使用情形;当这些区块之一被决定为不再使用情形时,由控制器将区块标记为损坏区块或限制区块,以使得有效容量不小于存储装置的宣告容量;以及由控制器比较有效容量与被标记为限制区块的数量的差值和预期使用容量来决定是否禁止对存储器进行写入操作。
7.本公开内容的一方面涉及另一种存储空间管理方法,用于包含控制器和存储器的存储装置,包含:控制器存储有至少一个重初始化容量,其中至少一个重初始化容量小于宣告容量;由控制器计算存储器的有效容量,其中有效容量与存储器的多个区块中被标记为坏块的数量呈负相关;由控制器依据有效容量与宣告容量之间的差值以决定是否启动存储装置以至少一个重初始化容量进行再初始化程序。
附图说明
8.图1为根据本公开内容之实施例之一种存储装置的示意图。
9.图2为根据本公开内容之实施例之一种存储空间管理方法的流程图。
10.图3和图4为根据本公开内容之实施例之存储装置的容量变化的示意图。
11.图5为根据本公开内容之实施例之一种存储装置和电子装置的信息传送流程图。
具体实施方式
12.下文举实施例配合附图进行详细说明,但所描述的具体实施例仅用于解释本技术,并不用来限定本技术,而结构操作之描述不用于限制其执行之顺序,任何由组件重新组合之结构、所产生具有均等功效的装置皆为本公开内容所涵盖的范围。
13.请参考图1。图1为根据本公开内容之实施例之一种存储装置100的示意图。如图1所示,存储装置100包含存储器110、控制器120和警示器130。存储器110包含多个存储区块block。控制器120包含控制电路121、读写电路122、存储电路123和通信接口124。
14.结构上,控制器120耦接到存储器110和警示器130。控制电路121耦接到读写电路122、存储电路123、通信接口124和警示器130。具体而言,控制电路121通过读写电路122耦接到存储区块block。
15.在部分实施例中,存储器110可为非易失性(non-volatile)存储器,例如,nand型闪存阵列。在部分实施例中,控制器120可以是各种处理电路或控制芯片。
16.操作上,控制电路121用于控制读写电路122以针对存储区块中一者或多者进行写入(program)、读取(read)、清除(erase)、验证或其他动作,并将相应于每一个存储区块的读写次数(p/e cycle)记录在存储电路123中。当存储区块进行写入操作时,用于存储数据。控制电路121可根据存储电路123中的记录,计算当前所有存储区块中存储有数据的空间大小,即为当前使用容量。而控制电路121可计算当前使用容量和当前欲写入的数据的总和,即为预期使用容量。例如,若当前使用容量为1tb,而欲写入0.2tb的数据时,预期使用容量则为1.2tb。
17.此外,当控制电路121对某一个或多个存储区块进行写入操作时,用于判断此存储区块是否被标记为坏块(bad block)。未被标记为坏块的区块代表此存储区块中的存储单元(cell)仍能正常运作,而被标记为坏块的区块代表此存储区块已无法正确保存数据。当控制电路121判断某一存储区块无法正确保存数据时,控制电路121将标记此存储区块为坏块。
18.具体而言,在部分实施例中,当相应于此存储区块的读写次数大于此存储区块在设计规格中的读写次数上限值时,控制电路121会判断此存储区块应标记为坏块。在其他部分实施例中,控制电路121通过读写电路对此存储区块进行验证操作。当此存储区块未通过验证操作时,控制电路121会判断此存储区块需标记为坏块。如此一来,存储装置100通过计算没有被标记(属于可保存数据的空间)的存储区块的数量,便能得知存储器110当前的有效容量。换言之,有效容量与存储器110的存储区块中被标记为坏块的数量呈负相关。
19.为方便及清楚说明起见,存储装置100的具体操作将在下文配合图1~图5所示实施例进行说明,但不以此为限,任何熟习此的技术人员,在不脱离本技术之精神和范围内,可以进行各种更改与润饰。请参考图2。图2为根据本公开内容之实施例之一种存储空间管理方法200的流程图。如图2所示,存储空间管理方法200包含操作s210、s220、s230、s240、s250、s260、s270、s280以及290。
20.首先,在操作s210中,由控制器120计算当前使用容量、预期使用容量和有效容量。
接着,在操作s220中,由控制器120判断有效容量是否小于等于宣告容量。
21.当有效容量大于宣告容量时,代表存储器110还没过度损坏或老化而保有足够的有效存储空间。因此,进行操作s230,由控制器120判断预期使用容量是否大于宣告容量。
22.当预期使用容量小于等于宣告容量时,代表存储器110中还有足够的未使用空间可对当前数据进行写入。因此,进行操作s240,允许写入操作。
23.反之,当预期使用容量大于宣告容量时,代表存储器110中没有足够的未使用空间可写入当前数据。因此,进行操作s250,由控制器120先禁止对存储器110进行写入操作同时产生相对应信号,并由此产生可减少使用容量的相对应操作。相对应信号包含警示通知、安全容量、当前使用容量和待删除容量。详细内容将于下文进行说明。
24.举例来说,如图3所示,横轴为时间,纵轴为容量。宣告容量bd为在存储装置100进行初始化(如图3中时间点t0)时,使用者能够存取的初始容量(即,出厂所设定的标示容量)。当前使用容量bu随用户进行写入而增加,进行数据删除而减少。有效容量ba则随被标记为坏块的存储区块的数量增加而递减。
25.在时间点t0,存储装置100的有效容量ba必然大于等于宣告容量,例如宣告容量bd为2.0tb的存储装置100,其实际容量b0为2.2tb。在时间点t0之后,开始对存储器110进行写入操作,因此当前使用容量bu由零开始增加。
26.在期间p1中,由于有效容量ba大于宣告容量bd(即,存储器110还没过度损坏或老化而保有足够的有效存储空间),因此在操作s220之后会反复进行操作s230~s250。例如,在时间点t0和t1之间,由于每次欲进行写入的预期使用容量小于宣告容量bd,因此反复进行操作s220、s230和s240,维持允许写入操作使得当前使用容量bu持续增加。直到时间点t1时,当前使用容量bu等于宣告容量bd,代表存储器110中2tb的宣告容量bd都已经存储数据了。此时不论当前欲写入的新数据的内容大小,预期使用容量都将超出宣告容量,因此将进行操作s250,禁止写入操作。直到对存储器110进行数据删除(即,减少当前使用容量bu)操作而使得当前使用容量bu再次小于宣告容量bd时,将再次进行操作s220。
27.另一方面,如图3中时间点t2所示,当有效容量ba等于宣告容量bd时,代表存储器110中的存储区块已经损坏、老化到剩余的有效存储空间将少于宣告容量bd。在期间p2中,传统的存储装置的控制器认定此固态硬盘的使用寿命已尽而无法再进行存取运作。
28.然而,在本技术中,如图2所示,在操作s220中,当有效容量小于等于宣告容量时,将进行操作s260,由控制器120判断当前使用容量是否小于有效容量。若当前使用容量大于等于有效容量时,进行操作s290,禁止写入操作。若当前使用容量小于有效容量时,进行操作s270,由控制器120判断预期使用容量是否小于等于有效容量。
29.当预期使用容量小于等于有效容量时,进行操作s280,允许写入操作。反之,当预期使用容量大于有效容量时,进行操作s290,禁止写入操作。
30.举例来说,如图3所示,在时间点t2之后,即便有效容量ba小于等于宣告容量bd(如,有效容量ba为1.8tb,小于初始时2tb的宣告容量bd),但由于使用容量bu(如1.5tb)并未大于等于有效容量ba(如1.8tb),因此有效容量ba仍足以正常保存当前使用容量bu的数据。此外,只要预期使用容量未大于有效容量ba,将可进行操作s280,允许写入操作。
31.然而,在时间点t3时,由于当前使用容量bu将超出有效容量ba,将导致当前使用容量bu中的存储数据内容可能无法正确保存,因此将执行操作s290,禁止写入操作。直到对存
储器110进行删除操作使得使用容量bu再次小于宣告容量bd及有效容量ba时(如时间点t3之后),将可再次进行操作s270,以判断是否可以允许当前数据的写入操作。
32.如此一来,即便存储装置100中的存储区块因老化、损坏至其有效容量ba小于应有的宣告容量bd时,仍可通过判断实际可用的有效容量ba和当前使用容量bu、预期使用容量的大小,来决定允许或禁止写入操作,以延长存储装置100使用寿命。以图3的例子进行说明,在时间点t2时,有效容量ba自2.2tb递减到宣告容量bd的2.0tb时,当前使用容量bu约为1.5tb。即便当前使用容量bu距离宣告容量bd还有0.5tb的容量,然而一般的存储装置将因有效容量ba递减到宣告容量bd而造成存储装置无法正常运作的状态。反观本技术在时间点t2之后,虽然有效容量ba已递减至低于宣告容量bd,但只要有效容量ba和当前使用容量bu之间还存有空间,便能继续允许数据写入、删除等操作,因而大幅的延长存储装置100使用寿命。
33.在另一实施例,请参照图3,在期间p2,有效容量ba’可一直维持不小于宣告容量bd。具体而言,在期间p1时,控制电路121会将无法正确保存数据的存储区块标记为「坏块」,其中,被标记为坏块的存储区块之数量约为实际容量b0和有效容量ba的差值。而在期间p2时,控制电路121将无法正确保存数据的存储区块标记为「限制区块」,其中被标记为「限制区块」的存储区块之数量约为宣告容量bd和有效容量ba的差值。标记为「限制区块」的区块是禁止读写的存储区块。但标记为限制区块的存储区块不列入计算「坏块」数量,而是列入「非坏块」(即,有效容量ba’)的数量。换言之,在期间p2控制电路121将无法正确保存数据的区块标记为「限制区块」的存储区块,即,具有标记「坏块」的实质效力(禁止读写),但不列入统计「坏块」的数量(即,计入有效容量ba’)。也就是,当存储区块之一被决定为不再使用情形时,由控制器121根据有效容量ba’大于宣告容量bd对此存储区块标记为损坏区块,而根据有效容量ba’等于宣告容量bd对此存储区块标记为限制区块。因此,在期间p2时,本技术的存储装置100的控制器120仍可以使得有效容量ba’不小于存储装置100的宣告容量bd。
34.以控制器120的角度来说明一种简单实现方式:在期间p1时,控制电路121将判定需要标记成「坏块」的存储区块直接标记为「坏块」;以及在期间p1过渡至期间p2时,控制电路121开始将判定需要标记成「坏块」的存储区块改标记为「限制区块」即可达到上述功效。由上述说明可知,被标注成「坏块」的数量不大于实际容量b0和宣告容量bd的差值,以确保有效容量ba’不小于宣告容量bd(如图3所示),其中有效容量ba’等于正常读写的存储区块的有效容量ba加上被标记「限制区块」的存储区块容量。
35.在另一实施例中,控制电路121具有宣告容量表。宣告容量表具有多个宣告容量(例如:2.0t、1.0t、512g、500g、480g、250g

等)和/或对应容量的其他相关信息。当控制电路121发现有效容量ba小于等于宣告容量bd时(如图3所示,在时间点t2之后),控制电路121在用户许可的情形下,选择宣告容量表中之一个新(较小容量)容量的初始化操作,以达到宣告容量bd可逐步变小进而延长存储装置100使用寿命的效果。
36.在其他部分实施例中,当进行操作s290时,控制器120中的控制电路121可发送警告信号至警示器130,使得警示器130根据警告信号发出警示音或闪烁警示灯,以提醒用户目前有效容量ba已低于宣告容量bd且存储器110处于禁止写入的状态。或者,控制电路121可通过通信接口124发送警告信号至电子装置,在电子装置中显示警告通知。
37.进一步而言,在部分实施例中,控制器120中的控制电路121根据有效容量ba计算
相应的预警容量。当有效容量ba小于等于宣告容量bd且当前使用容量bu大于等于预警容量或预期使用容量大于预警容量时,由控制器120中的控制电路121发出预警信号至警示器130,或通过通信接口124发送预警信号至电子装置。例如,当当前有效容量ba为1.8tb时,预警容量可为1.7tb,以保留0.1tb的存储空间提前提醒使用者注意。警示器130根据警示信号和预警信号可相应闪烁不同颜色、频率或数量的灯号。
38.另外,当有效容量ba小于宣告容量bd时,在部分实施例中,控制器120还用于根据有效容量ba计算安全容量。也就是说,在操作s260和s270中,控制器120用于判断当前使用容量bu是否小于安全容量,以及预期使用容量是否小于等于安全容量。具体而言,如图4所示,当有效容量ba递减至宣告容量bd(即时间点t4)时,控制电路121将有效容量ba扣除一个默认容量作为安全容量bs。而每当有效容量ba递减至此安全容量bs(如时间点t5)时,控制电路121将有效容量ba再扣除一个默认容量作为新的安全容量bs。换言之,安全容量bs等于有效容量ba减去预定临界容量。
39.如此一来,当有效容量ba小于宣告容量bd时,经由安全容量bs可避免当前使用容量bu和有效容量ba的差距过小而导致可能无法正确保存数据。此外,经由安全容量bs亦可避免当前使用容量bu删减不足时,存储装置100过于频繁地发出警示信息。
40.值得注意的是,虽然图4中所绘示每次扣除的默认容量皆相等。在其他部分实施例中,每次扣除的默认容量可随有效容量ba的递减而增加。例如,扣除的默认容量为0.1tb、0.2tb、0.3tb,则安全容量为1.9tb、1.7tb、1.4tb,以此类推。换言之,安全容量为可调整的。安全容量与有效容量存在比例关系。
41.在上述实施例中,由存储装置100的控制器120决定是否禁止对存储器110进行写入操作,并由存储装置100的警示器130呈现当前的状态。在其他部分实施例中,可由存储装置中的控制电路121通过通信接口124和其他电子装置通信,使得电子装置300决定是否禁止进行写入操作,并相应显示相关信息。
42.具体而言,如图5所示,当存储装置100发出警告信息,电子装置300中的处理器310便根据警告信息发送询问(polling)。存储装置100响应于询问将返回目前的有效容量ba和当前使用容量bu。处理器310将根据安全容量bs和当前使用容量bu或预期使用容量决定是否禁止写入操作。当当前使用容量bu或预期使用容量将大于安全容量bs时,处理器310根据安全容量bs和当前使用容量bu或预期使用容量计算待删除容量及/或提供建议删除或备份云端的清单,并传送警示通知、安全容量bs、当前使用容量bu、预期使用容量和待删除容量至显示器320。
43.具体而言,如图4所示,在时间点t4,当当前使用容量bu将大于安全容量bs时,处理器310根据当前使用容量bu减去安全容量bs的差值作为待删除容量bd1。又例如,在时间点t5,处理器310根据当前使用容量bu减去安全容量bs的差值作为待删除容量bd2。
44.接着,如图5所示,若处理器310对存储装置100进行擦除操作后,存储装置100的当前使用容量bu将下降。通过存储装置再次返回安全容量bs和当前使用容量bu,处理器310可根据当前使用容量bu小于安全容量bs而重新允许写入操作,并更新安全容量bs和当前使用容量bu至显示器320。
45.如此一来,经由电子装置300便能告知用户目前存储装置100不足宣告容量bd但实际仍可使用的有效容量ba有多少,并通过持续监测以提示使用者建议删除多少内容以释放
足够有效空间ba来确保数据存储的正确性。
46.综上所述,经由存储空间管理方法200,当有效容量ba小于宣告容量bd时,根据当前使用容量bu或预期使用容量将超过有效容量ba时暂时禁止写入,并根据预期使用容量未达有效容量ba时重新允许写入。因此,能够在确保正确保存数据的条件下,延长存储装置100的使用寿命。
47.虽然本公开内容已以实施方式公开如上,然其并非用于限定本公开内容,所属技术领域具有通常知识者在不脱离本公开内容之精神和范围内,当可进行各种更改与润饰,因此本公开内容之保护范围应该以所附本技术权利要求的范围所界定者为准。
48.【符号说明】
49.100...存储装置
50.110...存储器
51.120...控制器
52.121...控制电路
53.122...读写电路
54.123...存储电路
55.124...通信接口
56.130...警示器
57.block...存储区块
58.200...存储空间管理方法
59.s210、s220、s230、s240a、s240b、s250、s260、s270、s280、290...操作
60.b0...实际容量
61.bd...宣告容量
62.ba...有效容量
63.bu...当前使用容量
64.bs...安全容量
65.bd1、bd2...待删除容量
66.t1、t2、t3、t4、t5...时间点
67.p1、p2...期间
68.300...电子装置
69.310...处理器
70.320...显示器
当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!