固态储存装置及遭遇低电压时的数据处理方法

文档序号:6500543阅读:182来源:国知局
固态储存装置及遭遇低电压时的数据处理方法
【专利摘要】一种固态储存装置的数据处理方法,包括下列步骤:接收一主机的写入数据,并转换为一待储存数据;比较一供应电压与一预设电压;以及,当该供应电压低于该预设电压时,以强页程式程序将该待储存数据储存于一多层晶胞闪存的一空白区域。
【专利说明】固态储存装置及遭遇低电压时的数据处理方法

【技术领域】
[0001]本发明是有关于一固态储存装置,且特别是有关于一种固态储存装置遭遇低电压时的数据处理方法。

【背景技术】
[0002]众所周知,固态储存装置(Solid State Drive, SSD)使用与非门闪存(NAND flashmemory)为主要储存组件,而此类的储存装置为一种非挥发性(non-volatile)的内存组件。也就是说,当数据写入闪存后,一旦系统电源关闭,数据仍保存在固态储存装置中。
[0003]基本上,闪存的每个晶胞(cell)中皆包含浮动闸晶体管(floating gatetransistor)。在程序(program)时是将热载子(hot carrier)注入(inject)浮动闸晶体管的浮动闸极,而根据注入热载子的数量即可改变浮动闸晶体管的临限电压(thresholdvoltage),并进而决定该晶胞的储存状态。于抹除(erase)时是将热载子退出(eject)浮动闸晶体管的浮动闸极。
[0004]闪存依据不同的设计,可分为单层晶胞(single-level cell,简称SLC)、与多层晶胞(mult1-level cell)。而多层晶胞可包括二层晶胞(double-level cell)、三层晶胞(triple-level cell)、四层晶胞(quadruple-level cell),或者更多层晶胞的闪存。
[0005]单层晶胞闪存的特性为访问速度快、价格贵、可抹除次数约为数万次以上,但是一个晶胞(cell)仅可储存I位的数据。三层晶胞闪存的特性为访问速度慢、价格便宜、可抹除次数约为I千次以下,但是一个晶胞可储存3位的数据。而二层晶胞闪存的特性介于单层晶胞闪存与三层晶胞闪存之间,访问速度与价格一般、可抹除次数约为I千至5千次之间,而一个晶胞可储存2位的数据。换句话说,由相同晶胞数目所组成的闪存,三层晶胞闪存将有最大的容量,单层晶胞闪存的容量最小。
[0006]请参照图1,其所绘示为各种闪存中的储存状态与临限电压的关系示意图。单层晶胞(SLC)闪存中,每个晶胞可储存一位的数据(lbit/cell)。因此,根据热载子的注入量,晶胞中的浮动闸晶体管可产生二种临限电压分布,用以代表二种相异的储存状态。举例来说,具备低临限电压的晶胞,其可视为储存状态“O”;具备高临限电压的晶胞,其可视为储存状态“ I ”。当然,此处的储存状态“O”与储存状态“ I ”仅是表示相异的二个储存状态,当然也可以用第一储存状态与第二储存状态来表示。举例来说,临限电压在OV附近的晶胞,其可视为第一储存状态;临限电压在IV附近的晶胞,其可视为第二储存状态。
[0007]同理,双层晶胞闪存中,每个晶胞可储存二位的数据(2bits/cell)。因此,根据热载子的注入量,晶胞中的浮动闸晶体管可产生四种临限电压分布,用以代表四种相异的储存状态。例如,临限电压由低至高依序为储存状态“ 00 ”、储存状态“ OI ”、储存状态“ 10 ”与储存状态“I I”。
[0008]三双层晶胞闪存中,每个晶胞可储存三位的数据(3bits/cell)。因此,根据热载子的注入量,晶胞中的浮动闸晶体管可产生八种临限电压分布,用以代表八种相异的储存状态。例如,临限电压由低至高依序为储存状态“000”、储存状态“001”、储存状态“010”、储存状态“011 ”、储存状态“ 10 ”、储存状态“101 ”、储存状态“110”与储存状态“111”。
[0009]四层晶胞闪存中,每个晶胞可储存四位的数据(4bits/cell)。因此,根据热载子的注入量,晶胞中的浮动闸晶体管可产生十六种临限电压分布,用以代表十六种相异的储存状态。例如,临限电压由低至高依序为储存状态“0000”、储存状态“0001”、储存状态“ 0010”、储存状态“0011 ”、储存状态“0100 ”、储存状态“0101”、储存状态“0110”、储存状态“0111”、储存状态“1000”、储存状态“1001”、储存状态“1010”、储存状态“1011”、储存状态"1100 ”、储存状态“1101”、储存状态“1110”与储存状态“1111”。
[0010]由以上说明可知,在闪存程序时,控制晶胞的载子注入量,即可改变晶胞的临限电压并更改其储存状态。然而,除了单层晶胞闪存在程序时,仅需进行一次程式程序(programprocedure)即可以达到想要的储存状态。而其他多层晶胞快闪记忆则需要进行多次程式程序才可以到达想要的储存状态。
[0011]以三层晶胞闪存为例来作说明。请参照图2A,其所绘示为将三层晶胞闪存程序为“100”储存状态的流程示意图。假设欲将三层晶胞闪存程序为“100”储存状态时,需要进行三次程式程序。于第一次程式程序时,提供一第一程序电压(program voltage),并改变为“111”储存状态。接着,于第二次程式程序时,再提供一第二程序电压用以改变为“101”储存状态。最后,于第三次程式程序时,再提供一第三程序电压用以改变为“ 100 ”储存状态。
[0012]由以上说明可知,需要先知道最终的储存状态,才来决定三层晶胞闪存要如何进行三次程式程序。如图2A中的虚线所示,假设欲将三层晶胞闪存程序为“011”储存状态时,需要先程序为“000”储存状态,接着程序为“010”储存状态,最后程序为“011”储存状态。而其他储存状态的三次程式程序也可以依此类推,不再赘述。
[0013]由以上说明可知,三层晶胞闪存在第一次程式程序后,仅能区别出二种相异的储存状态;在第二次程式程序后,能区别出四种相异的储存状态;而在第三次程式程序后,才可以完整的区别出八种相异的储存状态。
[0014]另外,如图2B所示,将二层晶胞闪存程序为各种储存状态则需要二个程式程序。同理,四层晶胞闪存需进行四次程式程序。
[0015]再者,多层晶胞闪存每次程式程序所耗费的程序时间(p1gram time)也不相同。以三层晶胞闪存为例,第一次程式程序的时间最短,约为Ims左右;第二次程式程序的时间会超过2.5ms ;第三次程式程序最长约为7.0ms。
[0016]总结来说,多层晶胞闪存的层数越多,需要执行越多的程式程序来改变至特定的储存状态,并且总程序时间也越长。再者,第一次程式程序的程序时间最短,最后一次程式程序的时间最长。
[0017]请参照图3,其所绘示为公知固态储存装置的示意图。固态储存装置300中包括一控制单元301、一缓冲单元307与一闪存305。控制单元301连接至缓冲单元307与闪存305。再者,控制单元301利用一外部总线310与主机(host) 320之间进行指令与数据的传递。基本上,当主机320提供写入数据欲写入闪存305时,控制单元301会先进行ECC编码程序,并且将编码后的待储存数据暂存于缓冲单元307。之后,控制单元301会适时的将待储存数据记录于闪存305。其中,缓冲单元307为SRAM或者DRAM,其暂存的所有数据会随着供应电源消失而不见;外部总线310可为USB总线、IEEE1394总线或SATA总线等等,而闪存305可为单层晶胞或多层晶胞闪存。
[0018]众所周知,固态储存装置300的控制单元301写入数据时是以页(page)为单位写入闪存305。页的大小可由闪存制造商来定义,举例来说每一页可为2K bytes、4K bytes或者8K bytes。以4K bytes页为例,待写入数据报括:用户数据、编码数据与其他相关数据,总共为4224bytes。亦即,如果利用单层晶胞闪存来储存一个4K bytes页的数据,则需要(4224X8)个晶胞来储存。
[0019]由于多层晶胞闪存的数据密度较高,所以(4224X8)个晶胞的二层晶胞闪存可以储存二个页的数据。同理,(4224X8)个晶胞的三层晶胞闪存可以储存三个页的数据;(4224X8)个晶胞的四层晶胞闪存可以储存四个页的数据。
[0020]请参照图4A与图4B,其所绘示为利用二层晶胞闪存来储存二个页的示意图。以第一个字节(Byte-1)为例,假设第M页的第一个字节的写入数据为0X65h(01100101b),第N页的第一个字节的写入数据为OXDBh(llOllOllb)。如图4A所示,于第一次程式程序时,是将第M页的第一个字节的写入数据(OllOOlOlb)程序至二层晶胞闪存的8个晶胞中。完成后,8 个晶胞的储存状态依序为 “ 00 ”、“ 11”、“ 11 ”、“ 00 ”、“ 00 ”、“ 11 ”、“ 00 ”、“11”。
[0021]如图4B所示,于第二次程式程序时,再将第N页的第一个字节的写入数据(IlOllOllb)程序至二层晶胞闪存的8个晶胞中。完成后,8个晶胞的储存状态更改为“01”、“ 11 ”、“ 10 ”、“ OI ”、“ OI ”、“ 10 ”、“ OI ”、“11”。
[0022]由上述的说明可知,于第一次程式程序后,(4224X8)个晶胞的二层晶胞闪存仅能够储存第M页第一字节的数据。而必须再次进行第二次程式程序之后,(4224X8)个晶胞的二层晶胞闪存才够同时储存第M页以及第N页的第一字节数据。
[0023]根据多层晶胞闪存的规格书的定义,第一次程式程序所写入的页,称为强页(strong page),而第二次程式程序之后所写入的页,称为弱页(weak page)。换句话说,多层晶胞闪存于写入数据时必须先进行强页的程式程序;接着继续进行弱页的程式程序。以二层晶胞闪存为例,利用(4224X8)的晶胞来储存二个页的总程序时间为3.5ms (lms+2.5ms)。
[0024]请参照图5,其所绘示为公知由多层晶胞闪存所组成的固态储存装置的数据写入方法流程图。当固态储存装置电源开启后,即可接收主机传送的写入数据并转换为待储存数据(步骤S502)。接着,于闪存中的一空白区域先进行强页的程式程序(步骤S504),之后进行弱页的程式程序(步骤S506)。当所有程式程序(步骤S504与步骤S506)完成后即完成整个数据写入动作,此时再次回到接收主机传送写入数据(步骤S502)的步骤,以进行其他页的写入动作。其中,闪存中的一空白区域包括:尚未写入数据的区域或者是已经抹除完成的区域。
[0025]再者,执行上述弱页的程式程序(步骤S506)的次数,需要根据多层晶胞闪存的层数来决定。若为二层晶胞闪存时,即进行一次弱页的程式程序即可回到步骤S502。若为三层晶胞闪存时,则需连续进行二次弱页的程式程序才可回到步骤S502 ;若为四层晶胞闪存时,则需连续进行三次弱页的程式程序才可回到步骤S502。
[0026]在正常的供电状况下,固态储存装置中的控制单元是根据图5的流程,将数据以页为单位写入多层晶胞闪存。然而,当固态储存装置的电源在没有预期的下被关闭时,上述数据写入方式可能由于总程序时间过长,而无法完成数据写入动作,造成写入动作失败、写入数据错误或者写入数据遗失的情况发生。


【发明内容】

[0027]本发明的目的在于提供一种固态储存装置及遭遇低电压时的数据处理方法,以改进公知技术中存在的缺陷。
[0028]为实现上述目的,本发明提供的固态储存装置,连接至一主机,包括:
[0029]一控制单元,接收该主机的一写入数据,并且转换为一待储存数据;
[0030]一缓冲单元,暂存该待储存数据;
[0031]一多层晶胞闪存,连接至该控制单元;以及
[0032]一电压侦测单元,接收一供应电压,当该供应电压低于一预设电压时,产生一通知信号至该控制单元;
[0033]其中,当该控制单元接收到该通知信号时,以一强页程式程序将该待储存数据储存于该多层晶胞闪存的一空白区域。
[0034]所述的固态储存装置,其中,当该控制单元未接收到该通知信号时,依序进行该强页程式程序以及一弱页程式程序,以将该待储存数据储存于该多层晶胞闪存。
[0035]所述的固态储存装置,其中,该多层晶胞闪存为一二层晶胞闪存、一三层晶胞闪存或者一四层晶胞闪存。
[0036]所述的固态储存装置,其中,执行该强页程式程序后,该空白区域中的每个晶胞仅能区别出二种储存状态。
[0037]本发明提供的固态储存装置的数据处理方法,包括下列步骤:
[0038]接收一主机的写入数据,并转换为一待储存数据;
[0039]比较一供应电压与一预设电压;以及
[0040]当该供应电压低于该预设电压时,以一强页程式程序将该待储存数据储存于一多层晶胞闪存的一空白区域。
[0041]所述的数据处理方法,其中,包括当该供应电压未低于该预设电压时,依序进行该强页程式程序以及一弱页程式程序,以将该待储存数据储存于该多层晶胞闪存。
[0042]所述的数据处理方法,其中,该多层晶胞闪存为一二层晶胞闪存、一三层晶胞闪存、或者一四层晶胞闪存。
[0043]所述的数据处理方法,其中,执行该强页程式程序后,该空白区域中的每个晶胞仅能区别出二种储存状态。
[0044]本发明提供的固态储存装置及遭遇低电压时的数据处理方法,确实可以降低总程序时间。

【专利附图】

【附图说明】
[0045]图1所绘示为各种闪存中的储存状态与临限电压的关系示意图。
[0046]图2A所绘示为将三层晶胞闪存程序为“100”储存状态的流程示意图。
[0047]图2B所示为将二层晶胞闪存程序为各种储存状态的流程示意图。
[0048]图3所绘示为公知固态储存装置的示意图。
[0049]图4A图与图4B所绘示为利用二层晶胞闪存来储存二个页的示意图。
[0050]图5其所绘示为公知由多层晶胞闪存所组成的固态储存装置的数据写入方法流程图。
[0051]图6所绘示为本发明固态储存装置的示意图。
[0052]图7所绘示为固态储存装置的供电系统突然断电时供应电压变化示意图。
[0053]图8所绘示为本发明的固态储存装置的数据写入方法流程图。
[0054]附图中符号说明:
[0055]300固态储存装置;301控制单元;305闪存;307缓冲单元;310外部总线;320主机;600固态储存装置;601控制单元;603电压侦测单元;605多层晶胞闪存;607缓冲单元;610外部总线;620主机。

【具体实施方式】
[0056]本发明是有关于一种固态储存装置,连接至一主机,包括:一控制单元,接收该主机的一写入数据,并且转换为一待储存数据;一缓冲单元,暂存该待储存数据;一多层晶胞闪存,连接至该控制单元;以及一电压侦测单元,接收一供应电压,当该供应电压低于一预设电压时,产生一通知信号至该控制单元;其中,当该控制单元接收到该通知信号时,以强页程式程序将该待储存数据储存于该多层晶胞闪存的一空白区域。
[0057]本发明还提出一种固态储存装置的数据处理方法,包括下列步骤:接收一主机的写入数据,并转换为一待储存数据;比较一供应电压与一预设电压;以及,当该供应电压低于该预设电压时,以强页程式程序将该待储存数据储存于一多层晶胞闪存的一空白区域。
[0058]为了对本发明的上述及其他方面有更佳的了解,下文特举较佳实施例,并配合附图作详细说明如下:
[0059]请参照图6,其所绘示为本发明固态储存装置的示意图。固态储存装置600中包括一控制单元601、一电压侦测单元603、一缓冲单元607与一多层晶胞闪存605。控制单元601连接至缓冲单元607与多层晶胞闪存605。于一供电系统正常提供一供应电压(Vs)时,固态储存装置600的所有组件即能够正常的运作,其中此供电系统可为一外部电源供应器(未绘示),或者是主机602内部的电源供应器。
[0060]再者,控制单元601利用一外部总线610与主机620之间进行指令与数据的传递。基本上,当主机620提供写入数据欲写入多层晶胞闪存605时,控制单元601会先进行ECC编码程序,并且将编码后的待储存数据暂存于缓冲单元607。之后,控制单元601会适时的将待储存数据记录于多层晶胞闪存605。其中,缓冲单元607为SRAM或者DRAM,其暂存的所有数据会随着供应电压消失而不见;外部总线610可为USB总线、IEEE1394总线或SATA
> Qi' ^Xiο
[0061]根据本发明的实施例,固态储存装置600中的电压侦测单元603接收并侦测供应电压(Vs)。根据本发明的实施例,控制单元601与电压侦测单元603为分开的二个组件。当然,电压侦测单元603也可以整合于控制单元601内,并且执行相同的侦测动作。
[0062]当供应电压(Vs)低于一预设电压(Vdet)时,电压侦测单元603即产生一通知信号(D)至控制单元601,使得控制单元601执行一紧急写入动作,将待储存数据写入多层晶胞闪存605。换句话说,当供电系统正常提供一高于预设电压(Vdet)的供应电压(Vs)时,固态储存装置600将待储存数据写入多层晶胞闪存605的方法相同于图5,此处不再赘述。反之,当供电系统提供的供应电压(Vs)低于一预设电压(Vdet)时,固态储存装置600会执行紧急写入动作,以下详细说明。
[0063]请参照图7,其所绘示为固态储存装置的供电系统突然断电时的供应电压变化示意图。于时间点t0之前,供电电压(Vs)的电压值为Vcc。亦即,固态储存装置600接收正常的供应电压(Vs),并且正常运作。于时间点t0之后供电系统突然中断,供应电压(Vs)由Vcc开始下降,直到时间点t3电压值为O。
[0064]本发明的电压侦测器603持续侦测供应电压(Vs)。当供应电压(Vs)于时间点tl降低至预设电压(Vdet)时,电压侦测单元603即产生一通知信号(D)至控制单元601。当供应电压(Vs)于时间点t2降低至一低电压(Vmin)时,固态储存装置600已无法运作。
[0065]由以上说明可知,当供电系统突然断电时,于时间点tl时,控制单元601根据通知信号(D)来开始执行一紧急写入动作。并且,到达时间点t2时,控制单元601必需要将所有的待储存数据写入多层晶胞闪存605中,否则在缓冲单元607的待储存数据将会遗失。
[0066]由于公知将待储存数据写入多层晶胞闪存的过程,需要依次进行强页的程式程序以及弱页的程式程序。因此,当停止提供供应电压或是供应电压过低时,如果继续按照公知的程式程序将待储存数据写入多层晶胞闪存,会造成总程序时间过长。本发明即针对此问题进行修正,以降低总程序时间。
[0067]请参照图8,其所绘示为本发明的固态储存装置的数据写入方法流程图。当固态储存装置的电源开启后,即可接收主机传送的写入数据并转换为待储存数据(步骤S802)。接着,判断是否侦测出停止提供供应电压(步骤S804)。其中,本发明利用电压侦测单元603来比较供应电压(Vs)与预设电压(Vdet)之间的关系。当供应电压(Vs)由Vcc下降到预设电压(Vdet)时,电压侦测单元603可侦测出供电系统此时提供较低的供应电压(Vs)。
[0068]当供电系统正常提供供应电压(Vs)时,侦测单元603侦测出供应电压(Vs)大于预设电压(Vdet)。此时的数据写入动作与公知数据写入动作相同。亦即,于多层晶胞闪存中的一空白区域先进行强页的程式程序(步骤S806),之后进行弱页的程式程序(步骤S808)。并且,当所有程式程序(步骤S806与步骤S808)完成后,再次回到接收主机传送写入数据(步骤S802)的步骤。
[0069]本发明主要的技术特征在于,当侦测单元603侦测出供电系统提供的供应电压(Vs)小于预设电压(Vdet)时,将所有待储存数据以强页的程式程序储存于空白区域(步骤S810)。换句话说,当控制单元601确定供电系统提供的供应电压(Vs)小于预设电压(Vdet)时,例如为供电系统停止供应电压或供电系统提供的电压值不稳定而低于预设电压(Vdet)时,控制单元601会执行一紧急写入动作,以确保待储存资料可以全部储存于多层晶胞闪存605中。此时,控制单元601需要以最快的速度,将缓冲单元607中的待储存数据储存于多层晶胞闪存605中,例如在图7中,于供应电压(Vs)降低至低电压(Vmin)之前,亦即时间点tl至时间点t2之间,将待储存数据储存于多层晶胞闪存605。
[0070]由于强页的程式程序所需的程序时间最短。本发明在电压不足的情况下,仅利用强页的程式程序,将所有的待储存数据储存于空白区域。因此,可在最短的总程序时间将所有的待储存数据储存于空白区域。再者,执行该强页程式程序后,该空白区域中的每个晶胞仅能区别出二种储存状态。因此,本发明需要更多的空白区域来储存该待储存数据。
[0071]以二层晶胞闪存为例,假设控制单元601执行紧急写入动作时,缓冲单元607中尚有二个页的待储存数据。此时,共需要[2X (4224X8)]个晶胞所组成的空白区域来储存此二个页的待储存数据。亦即,第一页的待储存数据是以强页的程式程序储存于第一(4224X8)的晶胞;且第二页的待储存数据也是以强页的程式程序储存于另一(4224X8)的晶胞。如此,控制单元601储存二个页的总程序时间仅为2ms(lms+lms)。
[0072]相较于传统固态储存装置利用(4224X8)的晶胞来储存二个页的总程序时间为
3.5ms (lms+2.5ms)。本发明在紧急写入动作时,确实可以缩短总程序时间。
[0073]由以上说明可知,本发明提出一种固态储存装置遭遇低电压时的数据处理方法。当供电系统提供的供应电压不足时(低于预设电压),固态储存装置执行紧急写入动作。此时,控制单元601将缓冲单元607中所有的待储存数据以强页的程式程序储存于多层晶胞闪存的空白区域。因此,本发明可以在低电压或断电时快速地处理待储存数据,以节省总程序时间,并且防止因供应电压过低时无法完全处理完待储存数据而导致待储存数据遗失的缺点。
[0074]综上所述,虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明。本领域技术人员在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围应当以申请的权利要求范围所界定的内容为准。
【权利要求】
1.一种固态储存装置,连接至一主机,包括: 一控制单元,接收该主机的一写入数据,并且转换为一待储存数据; 一缓冲单元,暂存该待储存数据; 一多层晶胞闪存,连接至该控制单元;以及 一电压侦测单兀,接收一供应电压,当该供应电压低于一预设电压时,产生一通知信号至该控制单元; 其中,当该控制单元接收到该通知信号时,以一强页程式程序将该待储存数据储存于该多层晶胞闪存的一空白区域。
2.如权利要求1所述的固态储存装置,其中,当该控制单元未接收到该通知信号时,依序进行该强页程式程序以及一弱页程式程序,以将该待储存数据储存于该多层晶胞闪存。
3.如权利要求1所述的固态储存装置,其中,该多层晶胞闪存为一二层晶胞闪存、一三层晶胞闪存或者一四层晶胞闪存。
4.如权利要求1所述的固态储存装置,其中,执行该强页程式程序后,该空白区域中的每个晶胞仅能区别出二种储存状态。
5.一种固态储存装置的数据处理方法,包括下列步骤: 接收一主机的写入数据,并转换为一待储存数据; 比较一供应电压与一预设电压;以及 当该供应电压低于该预设电压时,以一强页程式程序将该待储存数据储存于一多层晶胞闪存的一空白区域。
6.如权利要求5所述的数据处理方法,其中,包括当该供应电压未低于该预设电压时,依序进行该强页程式程序以及一弱页程式程序,以将该待储存数据储存于该多层晶胞闪存。
7.如权利要求5所述的数据处理方法,其中,该多层晶胞闪存为一二层晶胞闪存、一三层晶胞闪存、或者一四层晶胞闪存。
8.如权利要求5所述的数据处理方法,其中,执行该强页程式程序后,该空白区域中的每个晶胞仅能区别出二种储存状态。
【文档编号】G06F11/14GK104050107SQ201310077807
【公开日】2014年9月17日 申请日期:2013年3月12日 优先权日:2013年3月12日
【发明者】张昆昌, 叶志伟, 李威汉 申请人:光宝科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1