固态储存装置及其读取表管理方法

文档序号:1506873 发布日期:2020-02-07 浏览:32次 >En<

阅读说明:本技术 固态储存装置及其读取表管理方法 (Solid state storage device and read table management method thereof ) 是由 曾士家 郭俊纬 陈冠群 傅仁傑 于 2018-07-25 设计创作,主要内容包括:本发明为一种固态储存装置的读取表管理方法。于一读取表调整程序时,当热群中的一最小计算值小于冷群中的一最大计算值时,对调该热群中对应于该最小计算值的一第一读取电压组与该冷群中对应于该最大计算值的一第二读取电压组,使该第二读取电压组属于该热群,且该第一读取电压组属于该冷群。(The invention relates to a management method for a reading table of a solid-state storage device. When a minimum calculated value in a hot group is smaller than a maximum calculated value in a cold group during a reading table adjusting procedure, a first reading voltage group corresponding to the minimum calculated value in the hot group and a second reading voltage group corresponding to the maximum calculated value in the cold group are exchanged, so that the second reading voltage group belongs to the hot group, and the first reading voltage group belongs to the cold group.)

固态储存装置及其读取表管理方法

技术领域

本发明是有关于一种固态储存装置及其相关控制方法,且特别是有关于一种固态储存装置及其读取表(read table)的管理方法。

背景技术

众所周知,固态储存装置(Solid State Storage Device,简称SSD)已经非常广泛的应用于各种电子产品,例如SD卡、固态硬盘等等。

一般来说,固态储存装置中包括一非挥发性记忆体(non-volatile memory)。当数据写入非挥发性记忆体后,一旦固态储存装置的电源被关闭,数据仍可保存在非挥发性记忆体中。

请参照图1,其所绘示为现有固态储存装置示意图。固态储存装置10包括:控制电路101以及非挥发性记忆体107。

控制电路101中更包括一错误校正码电路(简称ECC电路)104与一读取表(readtable)105。其中,读取表105可储存于控制电路101内的一记忆体中,读取表105包含多个读取电压组(read voltage set)。

再者,非挥发性记忆体107中更包含记忆胞阵列(memory cell array)109。记忆胞阵列109由多个记忆胞(memory cell)所组成。一般而言,记忆胞阵列被划分成多个区块(block),每个区块再分成多个页(page)。

固态储存装置10经由一外部总线12连接至主机(host)14,其中外部总线12可为USB总线、SATA总线、PCIe总线、M.2总线或者U.2总线等等。

再者,控制电路101经由一内部总线113连接至非挥发性记忆体107,用以根据主机14所发出的写入命令进一步将主机14的写入数据存入记忆胞阵列109,以及根据主机14所发出的读取命令由记忆胞阵列109中取得读取数据,经由控制电路101传递至主机14。

基本上,控制电路101中的读取表(read)105中包括一预设读取电压组(defaultread voltage set)。当控制电路101接收到读取命令时将启动一读取周期。于读取周期(read cycle)时,控制电路101经由内部总线113,传送操作指令到非挥发性记忆体107令其利用预设读取电压组来读取非挥发性记忆体107中记忆胞阵列109之前所存入的数据。

再者,控制电路101中的错误校正码电路(简称ECC电路)104用来更正读取数据中的错误位(error bits),并且于更正完成后将正确的读取数据传递至主机14。

另外,当ECC电路104无法成功地校正读取数据中所有的错误位时,控制电路101由读取表105中依序提供其他多组重试读取电压组(retry read voltage set),使控制电路101采用重试读取电压组来对非挥发性记忆体107进行读取重试(read retry)流程。详细说明如下:

根据每个记忆胞所储存的数据量,可进一步区分为每个记忆胞储存一位的单层记忆胞(Single-Level Cell,简称SLC记忆胞)、每个记忆胞储存二位的多层记忆胞(Multi-Level Cell,简称MLC记忆胞)、每个记忆胞储存三位的三层记忆胞(Triple-Level Cell,简称TLC记忆胞)以及每个记忆胞储存四位的四层记忆胞(Quad-Level Cell,简称QLC记忆胞)。因此,记忆胞阵列109可为SLC记忆胞阵列、MLC记忆胞阵列、TLC记忆胞阵列或者QLC记忆胞阵列。

在记忆胞阵列109里,每个记忆胞内皆包括一浮动栅极晶体管(floating gatetransistor),而控制热载子(hot carrier)注入浮动栅极(floating gate)的数量,即可控制浮动栅极晶体管的储存状态。换言之,一个记忆胞内的浮动栅极晶体管可记录二种储存状态即为SLC记忆胞;一个记忆胞内的浮动栅极晶体管可记录四种储存状态即为MLC记忆胞;一个记忆胞内的浮动栅极晶体管可记录八种储存状态即为TLC记忆胞;一个记忆胞内的浮动栅极晶体管可记录十六种储存状态即为QLC记忆胞。

请参照图2A,其所绘示为TLC记忆胞的储存状态示意图。TLC记忆胞的一个记忆胞可以根据热载子的注入量而呈现八个储存状态“Erase”、“A”~“G”。在未注入热载子时,记忆胞可视为储存状态“Erase”,而随着热载子注入的量的增加,可再区分为其他七种储存状态“A”~“G”。举例来说,储存状态“G”的记忆胞具有最高的临限电压准位,储存状态“Erase”的记忆胞具有最低的临限电压准位。再者,当记忆胞经过抹除动作(erase action)之后,会回复至未注入热载子的储存状态“Erase”。

一般而言,于编程周期(program cycle)时,若将多个记忆胞编程为相同的储存状态时,并非每个记忆胞的临限电压都会相同,而是会呈现一分布曲线(distributioncurve),且其分布曲线可对应至一中位临限电压。由图2A可知,储存状态“Erase”的中位临限电压为Ver,储存状态“A”的中位临限电压为Va、储存状态“B”的中位临限电压为Vb、储存状态“C”的中位临限电压为Vc、储存状态“D”的中位临限电压为Vd,储存状态“E”的中位临限电压为Ve、储存状态“F”的中位临限电压为Vf、储存状态“G”的中位临限电压为Vg。举例来说,在统计储存状态“A”的所有记忆胞的临限电压后,中位临限电压Va的记忆胞数目最多。

如图2A所示,根据TLC记忆胞中各个储存状态的分布曲线即可据以产生七个读取电压Vra~Vrg作为预设读取电压组(default read voltage set)。于读取周期时,控制电路101即提供预设读取电压组至非挥发性记忆体107,以检测记忆胞阵列109中TLC记忆胞的储存状态。

如图2A所示,预设读取电压组Vra~Vrg是用来决定TLC记忆胞储存状态的重要依据。举例来说,非挥发性记忆体107提供读取电压Vrg至记忆胞阵列109。临限电压大于读取电压Vrg而无法被开启的记忆胞即可被判定为储存状态“G”,而临限电压小于读取电压Vrg而被开启的记忆胞即被判定为不是储存状态“G”。换言之,运用预设读取电压组Vra~Vrg的七个读取电压即可判断出TLC记忆胞的八种储存状态。

同理,运用预设读取电压组的十五个读取电压即可判断出QLC记忆胞的十六种储存状态。运用预设读取电压组的三个读取电压即可判断出MLC记忆胞的四种储存状态。而运用一个预设读取电压即可判断出SLC记忆胞的二种储存状态。

如图2B所示,其所绘示为TLC记忆胞的储存状态偏移示意图。固态储存装置10在实际使用的时候会遇到各种不同的操作条件。例如重复抹写(Cycling)、高温/常温放置时间长短(High/Room temperature baking)、重复读取(read disturb)的情况。上述的各种情况也会造成记忆胞阵列109中的记忆胞的分布曲线偏移(shift)。另外,当TLC记忆胞中的储存数据放置时间过久(例如储存数据放置1个月以上)时,也可能会造成分布曲线偏移。

如图2B所示,当TLC记忆胞的分布曲线偏移后,储存状态“Erase”的中位临限电压为Ver',储存状态“A”的中位临限电压为Va’、储存状态“B”的中位临限电压为Vb’、储存状态“C”的中位临限电压为Vc’、储存状态“D”的中位临限电压为Vd’,储存状态“E”的中位临限电压为Ve’、储存状态“F”的中位临限电压为Vf’、储存状态“G”的中位临限电压为Vg’。

因此,利用预设读取电压组Vra~Vrg来决定TLC记忆胞储存状态时,将会造成读取数据中的错误位(error bits)增加。当ECC电路104无法成功地校正读取数据中所有的错误位时,控制电路101需要由读取表105中提供其他的重试读取电压组Vra'~Vrg'来进行读取重试(read retry)流程。

请参照图3,其所绘示为现有固态储存装置的错误更正流程示意图。于读取周期时,控制电路101先进行解码流程(decoding process)A,其为利用预设读取电压组来进行硬解码(hard decoding)。于进行解码流程A时,控制电路101提供预设读取电压组至非挥发记忆体107,并利用ECC电路104中的硬解码(hard decoding method)来校正读取数据。

当读取数据中的错误位可以被更正时,代表通过(pass)解码流程A而解码成功。因此,控制电路101即可将正确的读取数据传递至主机14。反之,当读取数据中的错误位无法被更正时,将无法获得正确的读取数据,代表解码流程A失败(fail),因此控制电路101进入读取重试(read retry)流程。

再者,当控制电路101进入读取重试流程时,先进行解码流程B。解码流程B,其为利用重试读取电压组来进行硬解码。举例来说,控制电路101由读取表105中取得一笔选定重试读取电压组Vra’~Vrg’(selected retry read voltage set)并提供至非挥发记忆体107以获得读取数据。接着,利用ECC电路104中的硬解码来校正读取数据。当读取数据中的错误位可以被更正时,代表通过(pass)解码流程B而解码成功,并可将正确的读取数据传递至主机14。反之,当读取数据中的错误位无法被更正时,代表无法通过(fail)解码流程B,而控制电路101继续由读取表105中取得另一笔选定重试读取电压组来获得读取数据。

由于控制电路101中的读取表105中储存多个重试读取电压组(例如n个重试读取电压组)。只要控制电路101利用其中的一个重试读取电压组而能够解码成功时,即代表通过(pass)解码流程B。反之,如果使用了全部的n个重试读取电压组后仍无法解码成功时,即代表解码流程B失败(fail)。因此,控制电路101进行解码流程C。明显地,解码流程B所需的时间大于解码流程A。

控制电路101进行解码流程C,其为利用重试读取电压组来进行软解码(softdecoding)。相较于硬解码,软解码具有更佳的错误更正能力,但是需要同时利用多笔重试读取电压组才能够获得一笔读取数据。因此,软解码会更耗时,意即解码流程C所需的时间大于解码流程B。

同理,只要控制电路101能够解码成功时,即代表通过(pass)解码流程C,并可将正确的读取数据传递至主机14。反之,如果控制电路101无法解码成功时,即代表解码流程C失败(fail)。此时,控制电路101确定无法获得正确的读取数据,并且回复主机14解码失败。

由以上固态储存装置的错误更正流程可知,当解码流程A失败后,控制电路101会进入读取重试(read retry)流程。而于读取重试流程时,控制电路101需要先进行解码流程B。再者,于确认解码流程B失败后,控制电路101继续进行解码流程C。另外,当控制电路101确认解码流程C失败后,才会回复主机14解码失败,无法提供正确的读取数据。

一般来说,当非挥发性记忆体107制造完成后,制造商会进行多项实验,并获得多个读取电压组并提供给固态储存装置10制造商。于制造固态储存装置10时,这些读取电压组即被记录于控制电路101中的读取表105中。因此,固态储存装置10正常运作时,即可以根据读取表105所提供的读取电压组来进行图3的解码流程A、解码流程B与解码流程C。

请参照图4A,其所绘示为现有读取表的示意图。读取表105中包括顺序栏位(Order)与(n+1)个读取电压组RS0~RSn。基本上,控制电路101根据读取表105顺序栏位来决定(n+1)个读取电压组提供至非挥发性记忆体107的提供顺序。

举例来说,次序0的读取电压组RS0最先被提供至非挥发性记忆体107,且读取电压组RS0被设定为预设读取电压组。而于读取重试流程时,次序1~次序n的读取电压组RS1~RSn会依序被提供至非挥发性记忆体107,且读取电压组RS1~RSn被设定为n个重试读取电压组RS1~RSn。

于进行图3的解码流程A时,控制电路101即提供读取表105中的预设读取电压组RS0至非挥发性记忆体107。同理,于进行图3的解码流程B时,控制电路101即可依序提供读取表105中的n个重试读取电压组RS1~RSn至非挥发性记忆体107。

在现有的控制电路101中,当(n+1)个读取电压组RS0~RSn记录于读取表105后,其顺序不会再变更。因此,可能会造成固态储存装置10的读取速度(read speed)下降。以下举例说明之。

固态储存装置10在经过多次的读取周期后,通过统计可获得读取电压组与读取成功机率的关系。请参照图4B,其所绘示为所有读取电压组与读取成功机率的关系图。

如图4B所示的例子,次序0的预设读取电压组RS0具备较高的读取成功机率(约55%)。所以在读取周期时,控制电路101有较高的机率利用解码流程A即可获得正确的读取数据。

然而,当进入读取重试流程的解码流程B时,控制电路101会依序提供n个重试读取电压组至非挥发性记忆体107。在图4B的例子中,最后一个(第n个)重试读取电压组RSn有较高的机率(约为15%)可以解码成功。

换言之,当控制电路101进入读取重试流程的解码流程B之后,控制电路101可能连续提供了(n-1)个重试读取电压组RS1~RSn-1至非挥发性记忆体107皆无法解码成功。并直到提供最后一个(第n个)重试读取电压组RSn至非挥发性记忆体107后才解码成功。如此,固态储存装置10的读取速度(read speed)会明显地下降。

发明内容

本发明有关于一种固态储存装置,包括:一控制电路以及一非挥发性记忆体。控制电路中包括一读取表,用以储存多个读取电压组及对应的计算值。其中该些读取电压组中的一第一部分属于一热群,且该些读取电压组中的一第二部分属于一冷群。于一读取周期时,该控制电路根据该读取表记录的一特定提供顺序,由该些读取电压组中决定一选定读取电压组提供至该非挥发性记忆体。于解码成功时,修改该读取表中该选定读取电压组所对应的计算值。于解码不成功时,根据该特定提供顺序,由该些读取电压组中决定另一选定读取电压组提供至该非挥发性记忆体。再者,于一读取表调整程序时,当该热群中的一最小计算值小于该冷群中的一最大计算值时,该控制电路对调该热群中对应于该最小计算值的一第一读取电压组与该冷群中对应于该最大计算值的一第二读取电压组,使该第二读取电压组属于该热群,且该第一读取电压组属于该冷群。

本发明有关于一种上述固态储存装置的读取表管理方法,包括下列步骤:于一读取周期时,根据该读取表记录的一特定提供顺序,由该些读取电压组中决定一选定读取电压组提供至该非挥发性记忆体;于解码成功时,修改该读取表中该选定读取电压组所对应的计算值;于解码不成功时,根据该特定提供顺序,由该些读取电压组中决定另一选定读取电压组提供至该非挥发性记忆体;以及于一读取表调整程序时,当该热群中的一最小计算值小于该冷群中的一最大计算值时,对调该热群中对应于该最小计算值的一第一读取电压组与该冷群中对应于该最大计算值的一第二读取电压组,使该第二读取电压组属于该热群,且该第一读取电压组属于该冷群。

为了对本发明的上述及其他方面有更佳的了解,下文特举实施例,并配合所附图式详细说明如下。

附图说明

图1为现有固态储存装置示意图。

图2A为TLC记忆胞的储存状态示意图。

图2B为TLC记忆胞的储存状态偏移示意图。

图3为现有固态储存装置的错误更正流程示意图。

图4A为现有读取表的示意图。

图4B为所有读取电压组与读取成功机率的关系图。

图5为本发明固态储存装置示意图。

图6A为本发明读取表示意图。

图6B为控制电路启动读取表调整程序的流程图。

图7A至图7F为本发明读取表及管理读取表的示意图。

具体实施方式

由于读取表提供读取电压组的顺序会影响固态储存装置的读取速度。因此,本发明提出一种固态储存装置及其读取表管理方法。根据读取电压组的利用状况来动态调整读取表提供读取电压组的顺序,并改善固态储存装置的读取速度。

请参照图5,其所绘示为本发明固态储存装置示意图。本发明的固态储存装置50包括:控制电路501以及非挥发性记忆体107。相较于现有固态储存装置10,本发明的固态储存装置50中,控制电路501有效率地管理读取表505中的内容,用以改善固态储存装置50的读取速度。以下以读取表505中有11个读取电压组RS0~RS10为例来进行说明,当然本发明并不限定读取表505中读取电压组的总数目。

请参照图6A,其所绘示为本发明读取表示意图。在读取表505中,多个读取电压组RS0~RS10被区分为热群(Hot group)与冷群(Cold group)。其中,热群对应的次序是排在冷群对应的次序之前。以图6A为例,热群中包括4个读取电压组RS0~RS3,冷群中包括7个读取电压组RS4~RS10。热群对应的次序为前4个次序,即次序0~次序3,其排在冷群对应的次序(次序4~次序10)之前。再者,由于控制电路501是根据读取表505中的顺序来依序提供读取电压组,因此,热群中4个读取电压组RS0~RS3的提供顺序优先于冷群中7个读取电压组RS4~RS10的提供顺序。换句话说,于读取周期时,控制电路501优先提供热群中的读取电压组来读取数据。

在此实施例中,是以读取表505中的热群包括4个读取电压组RS0~RS3,冷群包括7个读取电压组RS4~RS10为例来进行说明,当然本发明并不限定读取表505中的热群及冷群所包含的读取电压组数目。

根据本发明的实施例,当控制电路501利用任一个读取电压组而成功解码时,对应读取电压组的累计值(accumulative count)会加1。举例来说,控制电路501在解码流程A时解码成功并获得读取数据后,则预设读取电压组RS0所对应的累计值会加1。同理,控制电路501在解码流程B时利用重试读取电压组RS6而解码成功并获得读取数据后,预设读取电压组RS6所对应的累计值会加1。依此类推。

再者,当控制电路501进行特定次数(例如1000次)的读取周期后,控制电路501对启动读取表505调整程序。

请参照图6B,其所绘示为控制电路启动读取表调整程序的流程图。当控制电路启动读取表调整程序时,控制电路101判断热群中的最小累计值是否小于冷群中的最大累计值(步骤S602)。于确认热群中的最小累计值小于冷群中的最大累计值时,对调(swap)热群中对应最小累计值的读取电压组与冷群中对应最大累计值的读取电压组(步骤S604)。以下以一个范例来介绍读取表调整程序。

请参照图7A至图7F,其所绘示为本发明读取表及管理读取表的示意图。首先,当固态储存装置10新出厂时,读取表505的内容如图6A所示,所有读取电压组RS0~RS10所对应的累计值皆为0。当固态储存装置50开始读取数据时,控制电路501即根据图6A所示读取表505中的次序来提供读取电压组,并更新对应解码成功的读取电压组的累计值。

当控制电路501进行特定次数(例如1000次)的读取周期后,控制电路501启动读取表调整程序。假设此时读取表505中的累计值如图7A所示。

由于热群中的最小累计值15小于冷群中的最大累计值60。因此,控制电路501对调(swap)热群中对应最小累计值的读取电压组RS2以及冷群中对应最大累计值的读取电压组RS7,使读取电压组RS7属于热群而读取电压组RS2属于冷群。当然,控制电路501也会同时对调其对应的累计值。

在本发明实施中,热群所对应的次序以及冷群所对应的次序并不会随着读取电压组的对调而变动。如图7B所示,即为控制电路501进行调整程序后的读取表505内容。在对调读取电压组后,热群对应的次序仍为次序0~次序3,冷群对应的次序仍为次序4~次序10。再者,读取电压组RS7属于热群中的次序2,而读取电压组RS2属于冷群中的次序7。于后续的读取周期,控制电路501根据图7B所示读取表505的顺序来提供读取电压组。

以图3的错误更正流程为例。于进行图3的解码流程A时,控制电路501依照图7B所示读取表505中的顺序,先提供读取表505中次序0的读取电压组RS0至非挥发性记忆体107。换句话说,热群中最优先顺序的读取电压组被设定为预设读取电压组。

接着,当解码流程A失败而需进行图3的解码流程B时,控制电路501将依照图7B所示读取表505中的顺序,依序提供读取表105中次序1的读取电压组RS1,次序2的读取电压组RS7,次序3的读取电压组RS3,次序4的读取电压组RS4,并以此类推。在上述解码流程B中,控制电路501会根据当次选取的读取电压组的解码结果来决定是否需提供下一次序的读取电压组至非挥发性记忆体107。

当控制电路501再次进行特定次数(例如1000次)的读取周期后,控制电路501再次启动读取表调整程序。假设此时读取表505中的累计值如图7C所示。

由于热群中的最小累计值51小于冷群中的最大累计值85。因此,控制电路501对调(swap)热群中对应最小累计值的读取电压组RS1以及冷群中对应最大累计值的读取电压组RS9,使读取电压组RS9属于热群而读取电压组RS1属于冷群。当然,控制电路501也会同时对调其对应的累计值。

如图7D所示,即为控制电路501进行调整程序后读取表505内容。其中,读取电压组RS9属于热群中的次序1,而读取电压组RS1属于冷群中的次序9。于后续的读取周期,控制电路501根据图7D所示读取表505的顺序来提供读取电压组。

当控制电路501再次进行特定次数(例如1000次)的读取周期后,控制电路501再次启动读取表调整程序。假设此时读取表505中的累计值如图7E所示。

由于热群中的最小累计值107小于冷群中的最大累计值134。因此,控制电路501对调(swap)热群中对应最小累计值的读取电压组RS3以及冷群中对应最大累计值的读取电压组RS10,使读取电压组RS10属于热群而读取电压组RS3属于冷群。当然,控制电路501也会同时对调其对应的累计值。

如图7F所示,即为控制电路501进行调整程序后的读取表505内容。其中,读取电压组RS10属于热群中的次序3,而读取电压组RS3属于冷群中的次序10。于后续的读取周期,控制电路501根据图7F所示读取表505的顺序来提供读取电压组。

当然,随着读取周期越来越多,读取表505中的所有累计值会持续改变,而控制电路501也会在适当的时机来调整读取表505的内容。因此,于读取周期时,在大部分的状况下,控制电路501使用热群中的读取电压组即可解码成功,仅有少数的状况需要使用到冷群中的读取电压才能解码成功。所以固态储存装置50的读取速度将可有效地提升。

由以上的说明可知,本发明提出一种固态储存装置及其读取表管理方法。于控制电路501进行特定次数的读取周期后,控制电路501启动读取表505调整程序,用以改变读取电压组的提供顺序,并提升固态储存装置50的读取速度。

在以上的实施例中,控制电路501会计算进行读取周期的次数,当控制电路501进行特定次数的读取周期后,即启动读取表调整程序。然而,本发明并不限定于此,在此领域的技术人员也可以根据固态储存装置50的运作时间来启动该读取表调整程序。举例来说,固态储存装置50每运作一个特定时间(例如100个小时)后,控制电路501即启动一次读取表调整程序。

另外,控制电路501在进行读取表调整程序时,根据读取电压组的累计值来作为调整依据。然而,本发明并不限定于此,在此领域的技术人员也可以根据其他计算值来进行调整。举例来说,计算值可以是一机率值,代表对应选定读取电压组的解码成功机率。

换言之,控制电路501在进行读取表调整程序时,根据读取电压组的计算值来作为对调依据,而计算值可为机率值或者累计值。

综上所述,虽然本发明已以实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视后附的申请专利范围所界定者为准。

24页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:读取延迟控制电路及方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!