在闪存上提升存取效能的控制方法与流程

文档序号:16246040发布日期:2018-12-11 23:35阅读:274来源:国知局
本申请是有关于一种在闪存上的控制方法,特别是有关于一种可以在闪存上提升资料存取效能的控制方法。
背景技术
:nand闪存(flash)是固态硬盘(ssd)用来承载、存储数据的内存,固态硬盘可通过控制器(controller)进行各种运算处理,而这些过程中的任何一个细节,都有可能影响到固态硬盘的产品效能表现、可靠度、稳定度等等。闪存在格式上可分为单层式存储(single-levelcell,slc)、多层式存储(multiple-levelcell,mlc)或是三层式存储(triple-levelcell,tlc),其是以内存单元数组的方式来存储数据,而内存单元是由一浮动闸极晶体管(floating-gatetransistor)来进行实作,通过控制浮动闸极晶体管上的电荷个数来设定导通此内存单元的所需临界电压,进而存储至少一位以上的信息,而当一特定电压施加于浮动闸极晶体管的控制闸极上时,浮动闸极晶体管的导通状态便会指示出浮动闸极晶体管中所存储的一或多个二进制数。然而,当内存单元无法完全支持所写入的电压位准或是电压位准发生漂移(shift)或沾黏(sticky)的问题时,则此时数据的写入便会发生错误,而发生此种错误的区块便称的为故障区块(badblock)。一般来说,故障区块可区分为两种,一种是在nand闪存的制造过程中而产生的故障区块,称为早期坏块(earlybadblock),另一种则是在使用的过程中,随着写入、抹除的操作次数增加,而逐渐产生故障区块,此种区块则称为后期坏块(latterbadblock)。更进一步地说明,一故障区块可根据错误检查纠正码(errordetectionandcorrectioncode,ecccode)的个数来进行判断。在nand闪存中,每一个页(page)都会伴随着一固定长度的ecccode,当写入一数据至此页而发生错误时,若发生错误的位长度少于固定长度,则此资料便可以利用此ecccode来进行修复,反之,一但大于此固定长度时,则此页便无法使用ecccode来自我修复,控制器便会将包含此页的使用区块判断为一故障区块。现行的故障区块管理机制是通过利用控制器来达成,此控制器会侦测并标示nand闪存中的故障区块,以提升数据存取的可靠度(reliability)。仔细地说,控制器的故障区块管理机制会在第一次启动nand闪存时,建立一故障区块表(badblocktable),尔后,控制器也会在使用的过程中将所判断出的故障区块记录在此表内,以防止任何数据被写入至此故障区块表所记录的故障区块。在现行的故障区块管理机制中,被判断为故障区块的使用区块将永远没有再被使用的价值,因此,若能妥善使用该些可能成为故障区块的使用区块,使其在成为故障区块前另可产生额外的功能,将可有效地提升固态硬盘的使用效率,并可避免成本上的浪费。技术实现要素:有鉴于上述习知技艺的问题,本申请的目的就是在提供一种在闪存上提升存取效能的控制方法,其包含下列步骤。读取每一多个存储区块的一抹除次数。当此抹除次数超过一抹除上限阈值时,将此存储区块转换为一单层式单元格式。将此转换为单层式单元格式的存储区块加入所述数据快取区,其中此资料快取区是属于单层式单元格式。优选地,每一多个存储区块包含多个数据存储页。优选地,本发明的控制方法更可包含以下步骤。读取每一多个数据存储页所包含的一错误检查纠正码。当侦测到错误检查纠正码内发生错误的位总个数大于等于一侦错阈值时,将此存储区块转换为所述单层式单元格式。优选地,此数据快取区是由闪存的一多余存储空间转换而来。优选地,此多余存储空间是由所述控制单元对一写入至闪存的数据执行一数据缩减技术而形成。附图说明图1为本申请实施例所绘示的主机系统与内存存储装置。图2为本申请所绘示的闪存与主机系统。图3为本申请的在闪存上提升存取效能的控制方法的第一步骤流程图。图4为本申请的在闪存上提升存取效能的控制方法的第二步骤流程图。具体实施方式为利了解本发明的技术特征、内容与优点及其所能达成的功效,兹将本申请配合附图,并以实施例的表达形式详细说明如下,而其中所使用的附图,其主旨仅为示意及辅助说明书的用,未必为本申请实施后的真实比例与精准配置,故不应就所附的附图的比例与配置关系解读、局限本申请于实际实施上的权利范围,合先叙明。请参阅图1,其为本申请实施例所绘示的主机系统与内存存储装置。一般来说,内存存储装置22可包含一控制器221与内存芯片222,其中此内存芯片222通常为一非挥发性内存,且此内存存储装置22是与一主机系统21共同使用。主机系统21可以将一数据写入至此内存存储装置22,或是从内存存储装置22读取此数据。而此内存存储装置22通常可为一u盘、记忆卡或是固态硬盘(solidstatedrive,ssd)等的可复写式非挥发性内存存储装置。如图所示,本申请的主机系统21包含一计算机211与一输出/输入设备212,其中此计算机211可包含一中央处理器2111、一动态随机存取内存2112(dynamicrandomaccessmemory,dram)、一系统总线2113及一数据传输接口2114,输出/输入设备212可包含鼠标、键盘、屏幕、打印机、麦克风及喇叭等。然而,可以理解的是,本申请的输出/输入设备212并不局限于上述的装置,更可包含其他装置。系统总线2113可连接中央处理器2111、一动态随机存取内存2112及数据传输接口2114,可用以降低成本和促进模块化。在本发明的实施例中,内存存储装置22通过数据传输接口2114与计算机211进行连接。更进一步地说明,计算机211可通过中央处理器2111、动态随机存取内存2112及输出/输入设备212的操作,将数据写入至内存存储装置22,或者是从内存存储装置22读取数据,其中此数据传输接口2114可包含scsi(smallcomputersysteminterface)、ata(advancedtechnologyattachment)、sas(serialattachedscsi)或sata(serialadvancedtechnologyattachment)接口。请参阅图2,其为本申请所绘示的闪存与主机系统,并请一并参阅图1所绘示的主机系统及内存存储装置。在本实施例中,闪存10即为图1中的内存存储装置22,而此闪存10通过连接器15与主机系统21进行连接,其中此连接器15内的传输接口包含第1图内的数据传输接口2114,而此连接器15本身可以为一sata连接器、sas连接器、iscsi连接器、usb连接器或m.2连接器,而闪存10本身则可为一多层式存储闪存或一三层式存储闪存。在本实施例中,闪存10中可包含一数据快取区12、一控制单元11及多个存储区块13,此控制单元11是用以执行以硬件型式或是韧体型式实作的多个逻辑闸或控制指令,并且根据主机系统21的指令在存储区块13中进行数据的写入、读取与抹除等操作。存储区块13是用以存储来自主机所写入的数据,且其控制单元11在闪存10中进行数据抹除时的一最小单位,在本实施例中,此存储区块13的格式可为一多层式单元格式或一三层式单元格式,即,此存储区块13本身可属于一多层式存储闪存或是一三层式存储闪存。在本申请中,资料快取区12属于一单层式单元格式,其由前述的多层式单元格式或三层式单元格式转换而来。更详细地说明,在本实施例中,数据快取区12原属于存储区块13的一部份,其通过韧体的执行将多层式存储闪存或三层式存储闪存模拟成单层式单元格式的写入方式,进而作为快取之用。此外,在本实施例中,存储区块13及此数据快取区12是电性连接至控制单元11,其中利用韧体模拟出单层式单元格式的写入方式为相关领域中既有的习知技艺,故在此不加以赘述。请参阅图3及图4,其为本申请的在闪存上提升存取效能的控制方法的第一步骤流程图及第二步骤流程图。如第3图所示,在此闪存上提升存取效能的控制方法可包含下列步骤。步骤s11读取每一多个存储区块的一抹除次数。步骤s12是当此抹除次数超过一抹除上限阈值时,将此存储区块转换为一单层式单元格式,其中当此存储区块属于一多层式存储闪存,则此抹除上限阈值可以为3000次,若属于一三层式存储闪存,则抹除上限阈值则可以为500次。步骤s13将转换为单层式单元格式的存储区块加入所述数据快取区,其中此资料快取区属于单层式单元格式。上述的步骤s11~s13可由控制单元进行操作。关于上述的存储区块及数据快取区,其可以属于同一个内存晶粒(die)或属于不同的内存晶粒,每一存储区块可分别包含多个数据存储页。举例来说,一存储区块可以由128个数据存储页所组成,然而,可以理解的是,本申请并不以此为限,存储区块也可以由64个数据存储页或是256个资料存储页所组成,其中每一个数据存储页可包含用户数据(userdata)位区与冗余(redundancy)位区,前者用以存储用户的数据,后者用以存储系统数据,如一错误检查纠正码(errorchecking&correctioncode)。此外,属于同一个存储区块的数据存储页可被独立地写入数据,并可在同一时间抹除同一存储区块上所有数据存储页上的数据。更详细地说,数据存储页为控制单元进行写入及读取时的一最小单位。在一优选实施例中,本申请的控制方法更可包含以下步骤。步骤s21是读取每一多个数据存储页所包含的一错误检查纠正码。步骤s22是当侦测到所述错误检查纠正码内发生错误的位总个数大于等于一侦错阈值时,将此存储区块转换为单层式单元格式,其中此侦错阈值的大小可由使用者自行制定。在一实施例中,数据快取区可由闪存的一多余存储空间转换而来,其中此多余存储空间是由控制单元对一写入至闪存的数据执行一数据缩减技术而形成。进一步地说明,此数据缩减技术是利用数据熵(dataentropy)的概念来达到更高的效能。当利用此数据缩减技术将数据传送到闪存时,它会使用删除重复数据技术、压缩技术或数据异化(datadifferencing)技术等来重新安排信息,这会让整体信息占用存储区块上更少的存储位。而当数据从闪存被读取后,数据缩减技术会藉由设计将原始的内容全部复原到主系统内,故此技术亦称为无损耗式(loss-less)数据缩减技术。当使用此数据缩减技术来传送数据到闪存时,此时实际所写入至存储区块的所需大小必小于此数据的实际大小,而所多出的空间即为本申请的多余存储空间。举例来说,若此闪存为一多层式存储闪存,且此闪存的存储区块的总容量大小为128gb。当一实际大小为128gb的数据通过数据缩减技术写入至此存储区块之后,其所实际占据的空间大小为120gb,则此时所闲置出来的8gb即属于一多余存储空间,使用者可将此多余存储空间的格式转换为使用寿命较长且写入速度较快的单层式单元格式,并将其作为此闪存上的数据快取区,进而达到增加此闪存的存取效率的功效。综合以上所述,本申请的控制方法可以妥善使用可能成为故障区块的使用区块,其利用存储区块的抹除次数及数据存储页的错误检查纠正码来作为转换成单层式单元格式的依据,能够将可能成为故障的存储区块转换为快取区块,进而有效地增加整体闪存的存取效率。以上所述仅为举例性,而非为限制性者。任何未脱离本申请的精神与范畴,而对其进行的等效修改或变更,均应包含于权利要求书中。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1