数据储存装置以及错误校正方法与流程

文档序号:11829263阅读:217来源:国知局
数据储存装置以及错误校正方法与流程

本发明系关于一种数据储存装置,特别是关于可对同一芯片中的不同存储器平面以不同的错误校正能力进行存取的数据储存装置。



背景技术:

快闪存储器为一种可以被电抹除并且重新写入的非易失性存储器,并且主要是应用在存储卡、USB随身盘、eMMC以及固态硬盘(Solid-State Disk)中,借以作为一般的储存与电脑装置和数字产品间的数据的转运。

快闪存储器于生产过程中,会因为粉尘或是光罩问题,使得快闪存储单元中的一整列(column)的数据都无法正确存取。传统上,可以扫描的方式检测出坏列的数量。但是,一旦无法存取的数据列数目太多,则会影响到错误检查码进行修正的能力。



技术实现要素:

本发明所提供的数据储存装置以及错误校正方法,可实施具有不同的错误比特更正能力的错误校正(Error Correction)在同一芯片的不同存储器平面上。

本发明提供一种数据储存装置包括一快闪存储器以及一控制器。快闪存储器包括多个芯片(die),并且每一芯片包括一第一存储器平面(plane)以及一第二存储器平面(plane),其中第一存储器平面以及第二存储器平面分别包括多个页面(page)。控制器被设置为用以根据一错误校正能力表,对第一存储器平面以及第二存储器平面中所储存的数据进行错误校正,其中错误校正能力表用以记录第一存储器平面的一第一错误比特校正能力值以及第二存储器平面所相应的一第二错误比特校正能力值。

在一实施例中,控制器更包括一随机存取存储器,并且控制器更用以将错误校正能力表载入随机存取存储器,以根据随机存取存储器中的错误校正能力 表,对第一存储器平面以及第二存储器平面中的页面的数据进行错误校正以及编码。

在另一实施例中,控制器更包括一错误校正引擎,控制器更被设置为根据对第一存储器平面进行读取的一第一读取命令,传送随机存取存储器所储存的错误校正能力表中相应于第一存储器平面的第一错误比特校正能力值至错误校正引擎,使得错误校正引擎依照第一错误比特校正能力值对第一存储器平面中的页面的数据进行错误校正,或者根据对第二存储器平面进行读取的一第二读取命令,传送随机存取存储器所储存的错误校正能力表中相应于第二存储器平面的第二错误比特校正能力值至错误校正引擎,使得错误校正引擎依照第二错误比特校正能力值对第二存储器平面中的页面的数据进行错误校正。

又另一实施例中,控制器更包括一第一错误校正引擎以及一第二错误校正引擎,其中第一错误校正引擎是以第一错误比特校正能力值对数据进行编码以及错误校正,并且第二错误校正引擎是以第二错误比特校正能力值对数据进行编码以及错误校正。控制器更被设置为用以根据错误校正能力表,将第一存储器平面的页面的数据分配给第一错误校正引擎进行编码以及错误校正,并且将第二存储器平面的页面的数据分配给第二错误校正引擎进行编码以及错误校正。

另外,第一存储器平面以及第二存储器平面中的每一页面分别包括多个数据块(chunk),每一数据块包括一数据段以及一校验码(parity),其中第一存储器平面中的校验码具有一第一长度,第二存储器平面中的校验码具有一第二长度,并且第一长度不同于第二长度。

本发明亦提供一种错误校正方法,适用于一数据储存装置,其中数据储存装置包括一快闪存储器,快闪存储器包括多个芯片(die),并且每一芯片包括一第一存储器平面(plane)以及一第二存储器平面(plane),其中每一第一存储器平面以及第二存储器平面分别包括多个页面(page)。数据存取方法包括:根据一第一错误比特校正能力值,对第一存储器平面的页面的数据进行错误校正;以及根据一第二错误比特校正能力值,对第二存储器平面的页面的数据进行错误校正。

在一实施例中,错误校正方法更包括:将一错误校正能力表,载入一随机 处理存储器;根据用以对第一存储器平面进行读取的一第一读取命令,传送随机存取存储器所储存的错误校正能力表中相应于第一存储器平面的第一错误比特校正能力值至一错误校正引擎;以及根据用以对第二存储器平面进行读取的一第二读取命令,传送随机存取存储器中的错误校正能力表中相应于第二存储器平面的第二错误比特校正能力值至错误校正引擎,其中错误校正引擎是用以对第一存储器平面以及第二存储器平面中的页面的数据进行错误校正。

在另一实施例中,错误校正方法更包括:将一错误校正能力表,载入一随机处理存储器,其中错误校正能力表用以记录第一存储器平面的第一错误比特校正能力值以及第二存储器平面所相应的第二错误比特校正能力值;根据对第一存储器平面进行读取的一第一读取命令以及错误校正能力表,将第一存储器平面的页面的数据分配给一第一错误校正引擎进行编码以及错误校正;以及根据对第二存储器平面进行读取的一第二读取命令以及错误校正能力表,将第二存储器平面的页面的数据分配给一第二错误校正引擎进行编码以及错误校正。

另外,第一存储器平面以及第二存储器平面中的每一页面分别包括多个数据块(chunk),每一数据块包括一数据段以及一校验码(parity),其中错误校正方法更包括:根据第一存储器平面中的数据块中的校验码,对第一存储器平面中的数据块中的数据段进行错误校正;以及根据第二存储器平面中的数据块中的校验码,对第二存储器平面中的数据块中的数据段进行错误校正,其中第一存储器平面中的校验码具有一第一长度,第二存储器平面中的校验码具有一第二长度,并且第一长度不同于第二长度。

又另一实施例中,错误校正方法更包括根据第一存储器平面以及第二存储器平面中的坏列(bad column),定义第一存储器平面所相应的第一错误校正能力以及第二存储器平面所相应的第二错误校正能力。

附图说明

图1为本发明所提供的一电子系统的一种实施例的方块图。

图2为本发明所提供的芯片的一种实施例的示意图。

图3为本发明所提供的页面的一种实施例的示意图。

图4为本发明所提供的页面的另一种实施例的示意图。

图5为本发明所提供的一错误校正方法的一种实施例的流程图。

图6为本发明所提供的一错误校正方法的另一种实施例的流程图。

附图标记说明:

100 电子系统;

120 主机;

140 数据储存装置;

160 控制器;

162 运算单元;

164 永久存储器;

166 随机存取存储器;

180 快闪存储器;

182 错误校正能力表;

D0~DN 芯片;

BU 缓冲器;

PL0、PL1 存储器平面;

S500~S512、S600~S612 步骤。

具体实施方式

以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。

图1为本发明所提供的一电子系统的一种实施例的方块图。电子系统100包括一主机120以及一数据储存装置140。数据储存装置140包括一快闪存储器180以及一控制器160,且可根据主机110所下达的命令操作。控制器160包括一运算单元162、一永久存储器(如,只读存储器ROM)164以及随机存取存储器(RAM)166。永久存储器164与所载的程序码、数据组成固件(firmware),由运算单元162执行,使控制器160基于该固件控制该快闪存储器180。随机存取存储器(RAM)166用以载入程序码与参数以提供控制器160根据所载入的 程序码与参数动作。快闪存储器180包括多个芯片(die)D0~DN,如图2所示。每一芯片D0~DN包括一缓冲器BU、一第一存储器平面(plane)PL0以及一第二存储器平面(plane)PL1。每一第一存储器平面PL0以及第二存储器平面PL1分别包括多个页面(page)P0~PN。值得注意的是,在本实施例中,每一芯片D0~DN包括一缓冲器BU,用以缓冲第一存储器平面PL0以及第二存储器平面PL1的数据,但本发明不限于此。在其他实施例中,每一芯片D0~DN可包括两个缓冲器,分别用以缓冲第一存储器平面PL0以及第二存储器平面PL1的数据。

快闪存储器于生产过程中,会因为粉尘或是光罩问题,使得快闪存储单元中的一整列(column)的数据都无法正确存取,损毁的列称为坏列(bad column)。然而,在同一芯片中的存储器平面所具有坏列的数量可能彼此不同。坏列的数量越多,存储器平面中的页面里可利用的存储器空间则越少,其中存储器空间的大小影响到错误比特校正能力。详细而言,具有越高的错误比特校正能力的错误校正(Error Correction)的编码,会产生长度越长的校验码(Parity)。

图3为本发明所提供的页面的一种实施例的示意图。在本实施例中,第一存储器平面PL0的每一页面中,分别具有1000字节(Byte)无法使用的坏列,第二存储器平面PL1每一页面中,分别具有900字节(Byte)无法使用的坏列。值得注意的是,图3示意性的将坏列显示于页面P0尾端,但实际上坏列是随机散落于页面中。在本实施例中,产品设计者将同一芯片中具有不同坏列数量的第一存储器平面PL0以及第二存储器平面PL1的错误比特校正能力,皆定义为同一错误比特校正能力值。举例而言,在本实施例中,第一存储器平面PL0以及第二存储器平面PL1的错误比特校正能力值皆为59比特(Bit),59比特的错误比特校正能力值需要长度为104字节的校验码。以第一存储器平面PL0以及第二存储器平面PL1的页面P0为例,页面P0分别具有7个数据块(Chunk)C0~C6以及一元数据段(Meta data)MD。每一数据块C0~C6分别具有一数据段以及一校验码段(parity)。数据段的长度为1024字节。校验码的长度为104字节。元数据段MD的长度为32字节。如图3所示,具有较少坏列的第二存储器平面PL1由于配合具有较多坏列的第一存储器平面PL0,会损失可使用的100字节,造成资源的浪费。值得注意的是,坏列的数量、元数据段MD的长度、数据段的长度、以及错误比特校正能力值皆为本发明的一种实施例,但本发明不限于 此。每一个不同的存储器平面皆可能由于不同的生产环境具有不同数量的坏列。页面中数据块的数量、错误比特校正能力值以及数据段的长度皆可由产品开发者自行决定,其中元数据段MD的长度则是由所决定的错误比特校正能力值以及错误校验的种类而决定的。

图4为本发明所提供的页面的另一种实施例的示意图。在本实施例中,第一存储器平面PL0的每一页面中,分别具有1000字节(Byte)无法使用的坏列,第二存储器平面PL1每一页面中,分别具有900字节(Byte)无法使用的坏列。值得注意的是,图4示意性的将坏列显示于页面P0尾端,但实际上坏列是随机散落于页面中。在本实施例中,相应于不同的坏列数量,第一存储器平面PL0以及第二存储器平面PL1具有不同的错误比特校正能力值。第一存储器平面PL0具有一第一错误比特校正能力值并且第二存储器平面PL1具有一第二错误比特校正能力值。另外,由于第一存储器平面PL0以及第二存储器平面PL1具有不同的错误比特校正能力值,因此第一存储器平面PL0以及第二存储器平面PL1中的校验码具有不同的长度。换言之,第一存储器平面PL0中的校验码具有一第一长度,第二存储器平面PL1中的校验码具有一第二长度,并且第一长度不同于第二长度。举例而言,在本实施例中,第一存储器平面PL0的错误比特校正能力值为59比特,第二存储器平面PL1的错误比特校正能力值为67比特(Bit),但本发明不限于此。59比特的错误比特校正能力值需要长度为104字节的校验码。67比特的错误比特校正能力值需要长度为118字节的校验码。以第一存储器平面PL0以及第二存储器平面PL1的页面P0为例,页面P0分别具有7个数据块(Chunk)C0~C6以及一元数据段(Meta data)MD。每一数据块C0~C6分别具有一数据段以及一校验码段(parity)。在第一存储器平面PL0中,数据段的长度为1024字节、校验码的长度为104字节以及元数据段MD的长度为32字节。在第二存储器平面PL1中,数据段的长度为1024字节、校验码的长度为118字节以及元数据段MD的长度为32字节。如图4所示,具有较少坏列的第二存储器平面PL1具有较多的空间可以储存具有较高错误比特校正能力的校验码。相较于图3的实施例,本实施例可较有效的利用存储器空间。值得注意的是,坏列的数量、元数据段MD的长度、数据段的长度、以及错误比特校正能力值皆为本发明的一种实施例,但本发明不限于此。每一个不同的存储器 平面皆可能由于不同的生产环境具有不同数量的坏列。页面中数据块的数量、错误比特校正能力值以及数据段的长度皆可由产品开发者自行决定,其中元数据段MD的长度则是由所决定的错误比特校正能力值以及错误校验的种类决定。

在图4的实施例中,快闪存储器180更包括一错误校正能力表182,其中错误校正能力表182用以记录第一存储器平面PL0的第一错误比特校正能力值以及第二存储器平面PL1所相应的第二错误比特校正能力值。在数据储存装置140上电后,控制器160被设置为将错误校正能力表182载入随机存取存储器166,以根据随机存取存储器166中的错误校正能力表182,对第一存储器平面PL0以及第二存储器平面PL1中的页面进行编码以及错误校正。换言之,在读取数据时,控制器160被设置为用以根据错误校正能力表182,对第一存储器平面PL0以及第二存储器平面PL1中所储存的数据进行错误校正。在写入数据时,控制器160被设置为用以根据错误校正能力表182,对将写入第一存储器平面PL0以及第二存储器平面PL1中的数据进行编码,以分别获得具有不同长度的校验码,并且在获得校验码后,将数据与校验码写入第一存储器平面PL0以及第二存储器平面PL1中。

在一实施例中,控制器160具有一错误校正引擎(未图示)。在本实施例中,该一个错误校正引擎用以分别进行具有不同错误比特校正能力的错误校正。举例而言,当控制器160接收到一读取命令时,控制器160可根据读取命令的地址判断读取命令是用以对第一存储器平面PL0进行读取的一第一读取命令或者用以对第二存储器平面PL1进行读取的一第二读取命令。当读取命令为用以对第一存储器平面PL0进行读取的第一读取命令时,控制器160被设置为根据对第一存储器平面PL0进行读取的第一读取命令,传送随机存取存储器166所储存的错误校正能力表182中相应于第一存储器平面PL0的第一错误比特校正能力值至错误校正引擎,使得错误校正引擎可依照第一错误比特校正能力值对第一存储器平面PL0中的页面的数据进行错误校正。当读取命令为用以对第二存储器平面PL1进行读取的第二读取命令时,控制器160被设置为根据对第二存储器平面PL1进行读取的第二读取命令,传送随机存取存储器166中所储存的错误校正能力表182中相应于第二存储器平面PL1的第二错误比特校正能力值 至错误校正引擎,使得错误校正引擎依照第二错误比特校正能力值对第二存储器平面PL1中的页面的数据进行错误校正。同理,当控制器160接收到一写入命令时,控制器160可根据数据写入的地址判断数据是预计被写入第一存储器平面PL0或者第二存储器平面PL1。当数据是预计被写入第一存储器平面PL0时,控制器160被设置为传送随机存取存储器166中的错误校正能力表182中相应于第一存储器平面PL0的第一错误比特校正能力值至错误校正引擎,使得错误校正引擎可依照第一错误比特校正能力值对预计写入的数据进行编码,并获得符合第一错误比特校正能力值的校验码,以将数据以及校验码储存至第一存储器平面PL0。当数据是预计被写入第二存储器平面PL1时,控制器160被设置为传送随机存取存储器166中所储存的错误校正能力表182中相应于第二存储器平面PL1的第二错误比特校正能力值至错误校正引擎,使得错误校正引擎依照第二错误比特校正能力值对预计写入的数据进行编码,并获得符合第二错误比特校正能力值的校验码,以将数据以及校验码储存至第二存储器平面PL1。

在另一实施例中,控制器160更包括一第一错误校正引擎(未图示)以及一第二错误校正引擎(未图示),其中第一错误校正引擎具有第一错误比特校正能力值,并且第二错误校正引擎具有第二错误比特校正能力值。换言之,第一错误校正引擎是用以对第一存储器平面PL0的数据进行编码以及错误校正,而第二错误校正引擎是用以对第二存储器平面PL1的数据进行编码以及错误校正。在本实施例中,控制器160更被设置为用以根据错误校正能力表182,将第一存储器平面PL0的页面的数据分配给第一错误校正引擎进行编码以及错误校正,并且将第二存储器平面PL1的页面的数据分配给第二错误校正引擎进行编码以及错误校正。举例而言,当控制器160接收到一读取命令时,控制器160可根据读取命令的地址判断读取命令为对第一存储器平面PL0进行读取的一第一读取命令或者对第二存储器平面PL1进行读取的一第二读取命令。当读取命令为用以对第一存储器平面PL0进行读取的第一读取命令时,控制器160被设置为根据对第一存储器平面PL0进行读取的第一读取命令,将所读取的第一存储器平面PL0的页面的数据分配给第一错误校正引擎进行错误校正(解码)。当读取命令为用以对第二存储器平面PL1进行读取的第二读取命令时,控制器 160被设置为根据对第二存储器平面PL1进行读取的第二读取命令,将所读取的第二存储器平面PL1的页面的数据分配给第二错误校正引擎进行错误校正(解码)。同理,当控制器160接收到一写入命令时,控制器160可根据数据写入的地址判断数据是预计被写入第一存储器平面PL0或者第二存储器平面PL1。当数据是预计被写入第一存储器平面PL0时,控制器160被设置为将预计写入第一存储器平面PL0的数据传送至第一错误校正引擎,使得第一错误校正引擎可依照第一错误比特校正能力值对预计写入的数据进行编码,并获得符合第一错误比特校正能力值的校验码,以将数据以及校验码储存至第一存储器平面PL0。当数据是预计被写入第二存储器平面PL1时,控制器160被设置为将预计写入第二存储器平面PL1的数据传送至第二错误比特校正引擎,使得第二错误校正引擎依照第二错误比特校正能力值对预计写入的数据进行编码,并获得符合第二错误比特校正能力值的校验码,以将数据以及校验码储存至第二存储器平面PL1。

图5为本发明所提供的一错误校正方法的一种实施例的流程图。错误校正方法适用于图1所示的电子系统100。流程开始于步骤S500。在步骤S500开始之前,产品设计者可根据第一存储器平面PL0以及第二存储器平面PL1中的坏列(bad column)的数量,定义第一存储器平面PL0所相应的第一错误校正能力以及相应于第二存储器平面PL1所相应的第二错误校正能力。另外,在本实施例中,控制器160具有一错误校正引擎(未图示),并且该一个错误校正引擎用以分别进行具有不同错误比特校正能力的错误校正。

在步骤S500中,在数据储存装置140上电后,控制器160被设置为将错误校正能力表182载入随机存取存储器166中,其中错误校正能力表182用以记录第一存储器平面PL0的第一错误比特校正能力值以及第二存储器平面PL1所相应的第二错误比特校正能力值。

接着,在步骤S502中,控制器160判断数据储存装置140是否自主机120接收到一读取命令。当数据储存装置140自主机120接收到读取命令时,流程进行至步骤S504;否则,控制器160继续判断数据储存装置140是否自主机120接收到一读取命令。

在步骤S504中,控制器160可根据读取命令的地址判断读取命令为对第 一存储器平面PL0进行读取的一第一读取命令或者对第二存储器平面PL1进行读取的一第二读取命令。当读取命令为第一读取命令时,流程进行至步骤S506。当读取命令为第二读取命令时,流程进行至步骤S510。

在步骤S506中,控制器160被设置为传送随机存取存储器166中所储存的错误校正能力表182中相应于第一存储器平面PL0的第一错误比特校正能力值至错误校正引擎。

接着,在步骤S508中,错误校正引擎依照第一错误比特校正能力值对第一存储器平面PL0中的页面的数据进行错误校正,其中错误校正引擎是根据第一存储器平面PL0中的数据块中的校验码,对第一存储器平面PL0中的数据块中的数据段进行错误校正。流程结束于步骤S508。

在步骤S510中,控制器160被设置为传送随机存取存储器166中所储存的错误校正能力表182中相应于第二存储器平面PL1的第二错误比特校正能力值至错误校正引擎。

接着,在步骤S512中,错误校正引擎依照第二错误比特校正能力值对第二存储器平面PL1中的页面的数据进行错误校正,其中错误校正引擎是根据第二存储器平面PL1中的数据块中的校验码,对第二存储器平面PL1中的数据块中的数据段进行错误校正。值得注意的是,第二存储器平面PL1的校验码与第一存储器平面PL0的校验码的长度不同。流程结束于步骤S512。

图6为本发明所提供的一错误校正方法的另一种实施例的流程图。错误校正方法适用于图1所示的电子系统100。流程开始于步骤S600。在步骤S600开始之前,产品设计者可根据第一存储器平面PL0以及第二存储器平面PL1中的坏列(bad column)的数量,定义第一存储器平面PL0所相应的第一错误校正能力以及相应于第二存储器平面PL1所相应的第二错误校正能力。在本实施例中,控制器160包括一第一错误校正引擎(未图示)以及一第二错误校正引擎(未图示),其中第一错误校正引擎是以第一错误比特校正能力值对数据进行编码以及错误校正,并且第二错误校正引擎是以第二错误比特校正能力值对数据进行编码以及错误校正。值得注意的是,步骤S600~S604相似于图5的步骤S500~S504,步骤S600~S604的详细说明请参考图5的说明,在此不在赘述。

在步骤S606中,控制器160读取在随机存取存储器166中所储存的错误 校正能力表182中相应于第一存储器平面PL0的第一错误比特校正能力值。

接着,在步骤S608中,控制器160根据第一错误比特校正能力值,将第一存储器平面PL0的页面的数据分配给第一错误校正引擎,使得第一错误校正引擎依照第一错误比特校正能力值对第一存储器平面PL0中的页面的数据进行解码,其中错误校正引擎是根据第一存储器平面PL0中的数据块中的校错误校正,对第一存储器平面PL0中的数据块中的数据段进行错误校正。流程结束于步骤S608。

在步骤S610中,控制器160读取在随机存取存储器166中所储存的错误校正能力表182中相应于第二存储器平面PL0的第二错误比特校正能力值。

接着,在步骤S612中,控制器160根据第二错误比特校正能力值,将第二存储器平面PL1的页面的数据分配给第二错误校正引擎,使得第二错误校正引擎依照第二错误比特校正能力值对第二存储器平面PL0中的页面的数据进行解码,其中错误校正引擎是根据第二存储器平面PL1中的数据块中的校验码,对第二存储器平面PL1中的数据块中的数据段进行错误校正。流程结束于步骤S612。

本发明所提供的数据储存装置140以及错误校正方法,可实施具有不同的错误比特更正能力的错误校正(Error Correction)在同一芯片的不同存储器平面上。

本发明的方法,或特定型态或其部分,可以以程序码的型态存在。程序码可储存于实体媒体,如软盘、光盘片、硬盘、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程序产品,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程序码也可通过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。

惟以上所述者,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即大凡依本发明权利要求及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或权利要求 不须达成本发明所揭露的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1