存储系统及其数据处理方法

文档序号:6776967阅读:94来源:国知局
专利名称:存储系统及其数据处理方法
技术领域
一般地讲,本发明涉及电子装置,更具体地讲,本发明涉及一种存储系 统和与存储系统相关的tt据处理技术。
背景技术
闪速存储装置是一种EEPROM,其中,经由一次编程操作对多个存储区 域进行擦除或编程。传统的EEPROM能够一次(at a stroke )对一个存储区域 擦除或编程。这意味着,当使用闪速存储装置的系统对不同的存储区域同时 进行读取并写入时,闪速存储装置较快地且更有效地工作。由于围绕用于存 储数据的电荷存储器件的绝缘膜的失效,所有类型的闪速存储器和EEPROM 会在特定次数的擦除操作之后损坏。
闪速存储装置的优点在于其可以通过这样的方式在硅芯片上存储信息, 即,不需要功率来保持所存储的信息。这意味着,如果对芯片切断功率,则 在无功耗的情况下保存信息。闪速存储装置的其它特性包括耐冲击和快速读 取访问时间。由于这些特性,闪速存储装置通常用于在提供有来自电池的功 率的设备中的存储。根据逻辑门类型,将闪速存储装置分为两种类型,即, NOR闪速存储装置和NAND闪速存储装置。
闪速存储装置将信息存储在晶体管阵列中,每个晶体管称作单元(cell ), 用于存储l位(bit)信息。较新的闪速存储装置(例如,多级单元装置)能 够通过改变施加到单元的浮置栅极的电荷的量而每单元存储多于1位。
在具有浮置栅极的闪速存储装置中,最关键的可靠性因素为数据保持特 性和可在无劣化的情况下执行的编程/擦除循环的次数(或耐久性)。存储的 电荷(电子)会由于各种失效机制(例如,通过有缺陷的多晶硅层间电介质 的热离子发射和电荷扩散、离子污染、编程干扰应力等)而从浮置电极漏出。
6这导致阈值电压降低。当浮置栅极在控制栅极由于读取干扰(read disturbance ) 而保持处于一定的电压(例如,电源电压或读取电压)的情况下慢慢地获取 电子时,效果相反的电荷获取(charge gain )会发生,因此导致阈值电压升高。 因此,存储单元的阈值电压分布会由于电荷损失(charge loss)和电荷获 取而逐渐变宽。例如,假设在每个存储单元中存储了 2位数据。在这种假设 下,如图1A所示,每个存储单元可具有擦除状态E和三个编程状态P1、 P2 和P3中的一个状态。理想地,在状态E、 Pl、 P2和P3之间存在恒定的单元 余量(或读取余量),因此,所示的阈值电压分布IO、 11、 12和13分别对应 于状态E、 Pl、 P2和P3。然而,如图1B所示,阈值电压分布10、 11、 12 和13,特别是分别与程序状态Pl、 P2和P3对应的阔值电压分布11、 12和 13由于上述的电荷损失和电荷获取而变宽。这意味着,从存储单元读取的数 据会包括许多错误位。具体地讲,随着在存储单元中存储的数据位的数量增 多,这种现象变得严重。发明内容本发明旨在提供一种包括闪速存储器的存储系统的数据处理方法,所述 数据处理方法包括以下步骤判断从所述闪速存储器的选择的页面最初读取 的数据能否纠正;如果判断出最初读取的数据不能纠正,则基于每个最新确 定的读取电压从所述选择的页面最新读取数据;基于与最初读取的数据对应 的EDC数据,收集最新读取的数据的无错子扇区;基于与所述最初读取的数 据对应的ECC数据,纠正所述无错子扇区的彩:据。本发明还旨在提供一种包括闪速存储器和存储控制器的存储系统,所述 存储控制器包括纠错处理器和ECC块,所述存储控制器构造为控制所述闪速 存储器,其中,当判断出从所述闪速存储器的选择的页面最初读取的数据不 能通过ECC块纠正时,所述纠错处理器控制所述闪速存储器,从而根据每个 最新确定的读取电压从所述选择的页面最新读取数据,并且所述纠错处理器 基于与所述最初读取的数据对应的EDC数据来收集最新读取的数据的无错 子扇区。


根据参照附图的以下描述,本发明的以上和其它目的和特征将变得明显,其中,除非另外指明,否则相同的标号在各个附图中始终指相同的部件,在附图中图1A和图1B是用于解释存储单元的阈值电压分布由于电荷损失和电荷 获取而变宽的示图;图2是示出实现本发明各个实施例的存储系统的框图;图3是示出才艮据本发明实施例的框图;图4是用于描述存储系统的数据处理或操:作的示图;图5是示出在存储系统中使用的写入方法的流程图;图6是示出根据写入方法来改变数据的方式的示图;图7是示出了在存储系统中使用的读取方法的流程图;图8是示出根据读取方法来读取数据的方式的示图;图9是示出根据另一读取方法来读取数据的方式的示图;图10是用于描述根据本发明另 一实施例的存储系统的it据处理或操作 的示图;图11是示出根据另一实施例的在存储系统中使用的写入方法的流程图; 图12是示出根据另一实施例的写入方法来改变数据的方式的示图; 图13是示出根据另 一 实施例的在存储系统中使用的读取方法的流程图; 图14是用于描述根据另 一实施例的读取方法来确定最优化读取电压的 过程的示图;图15是示出根据又一实施例的数据读取方法的示图; 图16是用于描述根据又一实施例的在存储系统中收集无错子扇区的操 作的流程图;图17是示出收集无错子扇区的操作的示图;图18是示出包括闪速存储器的示意性计算系统的框图;图19是基于存储器的存储装置的框图;图20是基于存储器的存储装置的框图。
具体实施方式
在下文中,将参照附图详细描述本发明的各个实施例,使用闪速存储装 置作为例子对结构和操作特征进行举例说明。然而,本发明构思可以以不同 的方式实施,而不应当解释为局限于在此阐述的实施例。而是提供这些实施例以使本公开将是彻底的且完整的,并将把实施例的范围充分地传达给本领 域的技术人员。在整个附图中,相同的标号表示相同的元件。在本说明书中使用的术语"扇区"应当理解为是指ECC (纠错码)处理 单位。为了便于描述,将在一个扇区由ECC处理单位组成的假设下描述实施 例。然而,可以z使用两个或更多个扇区组成ECC处理单位。此外,指示ECC 处理单位的术语不限于扇区。图2是示出实现本发明各个实施例的存储系统的框图。参照图2,存储 系统101与主机电子系统(例如,计算机系统)的系统总线102相连。 一些 示例性的主机电子系统可以包括使用存储系统101的计算机、膝上型计算机、 手持式计算机、掌上型计算机、PDA、 MP3和其它音频播放器、数字相机、 视频相机、电子游戏机、无线和有线电话装置、应答一几、录音器、网络路由 器或其它系统。主机电子系统可以包括系统总线102、中央处理器300(例如,微处理器)、 输入输出装置(例如,用于提供与电路互连的电路400 )和易失性存储器500, 如图2所示。 一些示例性的输入输出装置可以包括键盘、监视器、调制解调 器等。存储系统101可以包括存储控制器IOO和具有闪速存储单元阵列的闪 速存储器200。存储控制器100和闪速存储器200可以是集成电路,通常称 之为芯片。可选地,两个或更多个集成电路芯片可以一起形成存储系统101。 例如,存储控制器100可以是专用的集成电路,闪速存储器200可以根据所 需的存储容量是一个或多个芯片。可以将存储系统IOI包装成小型卡,该小 型卡可以永久地安装在计算才几(主机装置)中或者可移除地连4矣到主机或从 主机连接。闪速存储器200可以存储单个位数据和/或多位(多级)数据。具 体地讲,闪速存储器200的每个存储单元可以存储2位数据、3位数据或4 位数据。图3是示出根据本发明实施例的存储系统的框图。参照图3,存储控制 器IOO可以包括主机接口 110、闪存接口 120、嵌入式处理器130、緩沖器140、 纠错处理器150和ECC块160。在图3中示出的主机接口 IIO可以提供与外部装置(即,主机系统)的 接口,闪存接口 120可以提供与闪速存储器200的接口。例如,闪存接口 120 可以根据外部装置(例如,主机系统)的请求,控制与闪速存储器200有关 的读取和写入操作。嵌入式处理器130可以控制存储控制器100的总体操作。緩冲器140可用于临时存储将存储在闪速存储器200中的数据或从闪速存储 器200读取出的数据。此外,緩冲器140可用于存储在存储控制器100内处 理过的数据。緩冲器140可以由一个或多个易失性存储器形成。在随后的写改变为能够容易地检测到错误的数据,随后将在下文中对此加以描述。纠错 处理器150还可以在读取操作期间使从闪速存储器200读取出的数据的错误 位最少化,在下文中也将对此加以描述。ECC块160可以在写入#:作过程中 从要存储在闪速存储器200中的数据产生ECC (纠错码)数据,并可以在读 取操作过程中检测并纠正从闪速存储器200读取出的数据中的错误。ECC块 160可以实现为具有一般的纠错能力。图4是用于描述在图3中示出的存储系统的数据处理或操作的示图。参 照图4,当外部装置(即,主机系统)请求写入操作时,数据可从主机系统 输入到存储系统101。输入数据可以经由主机接口 110临时存储在缓冲器140 中。此时,在框1010中,临时存储的输入数据可以由纠错处理器150改变为 易于检测到错误的数据。用于产生易于检测到错误的数据的编码方法可以以 不同方式实现,在下文中将对此加以描述。在框1020中,通过ECC块160 将ECC数据添加到改变的数据中。如标号1030所示,改变的数据可以与ECC 数据一起存储在闪速存储器200中。当外部装置(主机系统)请求读取操作 时,可以从闪速存储器200读取出数据,如标号1040所示。如上所述,读取 数据可以包括改变的数据和ECC数据。然后,在框1050中,在不考虑ECC 数据的情况下,纠错处理器150可以使读取的数据的错误位最少化。在框1060 中,基于ECC数据,读取的数据内的错误可以由ECC块160 4企测并纠正。 然后,可以将错误处理过的数据发送到外部装置(主机系统)。在本发明的实施例中,将输入数据改变为易于检测到错误的数据的操作 不是在将数据输入到存储控制器时执行的,而是相反地在将数据传输到闪速 存储器时执行的。因此,通过在写入操作时将数据改变为易于检测到错误的 数据,并在读取操作时使改变的数据的错误位最少化,由此可以通过具有一 般纠错能力的ECC块160的纠错能力来纠正错误位。图5是示出在存储系统中使用的写入方法的流程图,图6是示出根据写 入方法来改变数据的方式的示图。在下文中,将参照图5和图6描述存储系 统的写入方法。10当外部装置(即,主机系统)请求写入操作时,在步骤S100中,将将要写入在闪速存储器200中的数据经由主机接口 110存储在緩沖器140中。例 如,输入的数据可以是扇区数据。即,根据传输单元,512B数据可以顺序地 存储在緩冲器140中。在步骤S120中,纠错处理器150可以将输入的数据划 分为多个子扇区(或多个组)。可以产生标志(flag)信息,从而能够检测相 应的子扇区中的错误,标志信息可以是奇偶(parity)数据。奇偶数据可以由 N位奇偶数据(N为大于或等于1的整数)形成。因此,如图6所示,可以 将输入的512B扇区数据划分为多个子扇区数据,可以将N位奇偶数据PT添 加到每个子扇区数据,以提供易于检测到错误的改变的数据。这可以经由纠 错处理器150执行。可以以不同方式改变子扇区的数量。然后,可以将输入的数据(即,改变为易于检测到错误的数据)传递到 闪速存储器200。在传递时,ECC块160可以首先在步骤S140中根据公知的 方式使用输入的数据来产生ECC数据。ECC数据可以基于标志信息和输入的 数据或基于输入的数据来产生。然后,在步骤S160中,输入的数据可以与 ECC数据和标志信息一起存储在闪速存储器200中。输入的数据可以存储在 闪速存储器200的主要区段(main field)(或区域)中,ECC数据和标志信 息可以存储在闪速存储器200的剩余区段(spare field)(或区域)中。图7是示出在存储系统使用的读取方法的流程图,图8是示出根据读取 方法来读取数据的方式的示图。在下文中将参照图7和图8描述存储系统的 读取方法。当请求读取操作时,在存储控制器100的控制下,可以从闪速存储器200 读取出数据。更详细地讲,在步骤S200中,在存储控制器IOO的控制下,可 以从闪速存储器200读取出数据。读取的数据可以包括ECC数据和标志信息, 并可以存储在緩沖器140中。以公知的方法,ECC块160可以检测读取的数 据是否存在错误。如果检测到错误,则ECC块160可以在步骤S210中判断 检测到的错误是否可以纠正。如果检测到的错误可以纠正,则在步骤S260中 根据公知方式基于ECC数据来纠正读取的数据的错误,然后可以将纠正的读 取的数据发送到外部装置(即,主机系统),且读取4喿作可以结束。同样,如 果未检测到错误,则可以将读取的数据传输到外部装置(即,主机系统),且 读取操作可以结束。返回到图7中的步骤S210,如果判断出检测到的错误不能由ECC块160ii纠正,则在步骤S220中,在纠错处理器150的控制下,可以收集读取的数据 的子扇区的无错的子扇区。可以基于对应的标志信息(即,对应的奇偶数据) 来选择无错的子扇区。也就是说,纠错处理器150可以基于对应的奇偶数据 来判断存储在緩沖器140中的每个子扇区的数据是否存在错误。根据判断结 果,可以将无错的子扇区(即,最终数据)存储在緩冲器140的另一区域中, 如图8所示。在收集了无错的子扇区之后,纠错处理器150可以随后在步骤 S230中控制闪速存储器200,使得在不同的读取条件下从闪速存储器200读 取出数据。例如,纠错处理器150可以经由闪存接口 120来控制闪速存储器 200,使得当前读取操作的读取电压变得低于先前读取操作的读取电压一给定 的电压或高于先前读取操作的读取电压一给定的电压。可选地,纠错处理器 150可以控制闪速存储器200,从而使读取电压被设置为给定的电压,并根据 读取操作的重复而逐渐提高。在改变的读取条件下再次读取的数据可以存储 在緩沖器140中。
例如,在重复读取操作时确定的开始读取电压可以比在第一次读取操作 过程中使用的读取电压低,并可以考虑存储在存储单元中的数据位的数量、 数据保持时间等以不同方式来确定开始读取电压。可选地,在重复读取操作 时确定的开始读取电压可以比在第一次读取操作过程中使用的读取电压高。 在嵌入式处理器130而不是纠错处理器150的控制下执行读取操作的重复。
在步骤S240中,纠错处理器150可以收集根据改变的读取条件读取的数 据的子扇区的无错子扇区。在这种情况下,可以从判断步骤中排除先前判断 为无错子扇区的子扇区。如上所述,无错的子扇区可以基于对应的标志信息 (即,对应的奇偶^t据)来选择。在步骤S250中,判断上述的对于所有子扇 区的错误判断和读取过程是否完成。如果判断出对于所有子扇区的错误判断 和读取过程未完成,则过程返回到步骤S230。如果判断出对于所有子扇区的 错误判断和读取过程完成,则过程前进到步骤S260,在步骤S260中,可以 根据公知的方式基于ECC数据来纠正读取的数据的错误。然后,可以将纠正 的读取的数据传输到外部装置(即,主机侧),且可以完成读取操作。
在以上实施例中,可以将对于子扇区的错误判断和读取过程限制为对于 错误子扇区的给定的读取次数。例如,虽然在对于错误子扇区的给定的读取 次数内将任意子扇区判断为有错,但可以将对于所有子扇区的错误判断和读 取过程视为由纠错处理器150完成。由以上描述理解到,可以通过将输入的数据改变为易于检测到错误的数 据并收集经由重复的读取过程读取的数据的无错子扇区而使读取的数据的错 误位的数量最少化。然后,可以基于ECC数据来纠正错误最少化的数据。换 言之,相邻的阈值电压分布会由于制造工艺、存储在存储单元中的数据位的
增加、电荷损失和电荷获取而重叠,如图1B所示。由于相邻的阈值电压分布 的重叠而出现超过ECC块160的纠错能力的错误。虽然ECC块160的纠错 能力未提高,但可以经由以上实施例的数据处理方式来纠正超过ECC块160 的纠错能力的错误。
在以上实施例中,可以以不同方式改变作为标志信息的奇偶数据的位数。 下面将更充分地描述一些示例方法。
使用1位奇偶数据
在i位奇偶数据的情况下,当"r,的数量为奇数时,将奇偶数据设为"r, 当"r的数量为偶数时,将奇偶数据设为"o"。如果在该条件下错误地读取 子扇区中的一位数据,那么因为所计算的奇偶数据和所读取的(在写入操作
时存储的)奇偶数据彼此不同,所以通过纠错处理器150可以将这样的子扇
区判断为错误子扇区。如果子扇区中的数据的两个数据位被损坏,则不能判 断出子扇区是否错误。但是,在实际情况下,例如,假设在这样的情况下,
即,虽然ECC块160具有8位ECC容量,但由于产生10位错误,所以不能 恢复数据。在该假设下,如果将一个扇区划分为32个子扇区,则因为在一个 子扇区同时产生两位,所以不能恢复10位错误的可能性低。由于该原因,可 以应用上述的奇偶方案。如果恢复另一子扇区的错误,那么,尽管这样的错 误出现,但是扇区的错误位数量仍在ECC块160的可纠正的范围内,从而经 由最后的ECC过程(ECC块)来恢复数据。 使用2位奇偶数据
在使用2位奇偶数据的情况下,可以将X以4为模所得的数确定为奇偶 数据。这里,X表示包括在子扇区中的"1"的数量。即,假设子扇区的大小 为16。在该假设下,如果包括在16B子扇区中的"1"的数量是65,则65 以4为^^莫是1。因此,可以将与"1"对应的"01"确定为2位奇偶数据。在 这种情况下,因为可以判断出是否产生错误以及"1"的数量是多还是少,所 以能够更准确地补偿数据。在一个子扇区的两个数据位被损坏的情况下,如 果将一位的数据"0"偶然读取为数据"1",且将另一位的数据"1"偶然读取为数据"0",则不能恢复数据。但是,因为这样的可能性非常低,且相当
大地减少了错误产生,所以可以经由具有一般纠错能力的ecc块160(例如, 8位ecc或16位ecc )检测并纠正错误。
作为另一示例,在使用3位奇偶数据的情况下,与2位奇偶数据类似, 可以通过确定x以8为模所得的数(x是包括在子扇区中的"1"的数量)来 提高错误检测能力。
在示例性实施例中,可以使用循环冗余检验(crc)作为奇偶。在这种
情况下,与上述方法比较,虽然同时产生"o"和"r错误,但仍能够检测
出错误。即,在使用3位奇偶数据的情况下,可以提高检测错误的能力。另
一方面,不能判断出"1"的数量是多还是少。
应当理解的是,根据示例性实施例的奇偶产生方法不限于本公开。
当使用x以4为模所得的数作为2位奇偶数据(x是包括在子扇区中的 "1"的数量)时,可以经由方向特性使用更改进的方法。例如,在使用x 以4为模所得的数作为奇偶数据的情况下,当从子扇区计算的奇偶值不同于
读取出的奇偶值时,可以判断子扇区的数据是多读取了 "r的数据还是少读
取了 "1"的数据。布支设计算的奇偶值为"00",读取出的奇偶值为"01",可
以将子扇区的数据判断为少读取了 "1"的数据。在这种情况下,改变读取条
件,从而多读取了 "1"。如图9所示,可以根据改变的读取条件从闪速存储 器200读取出数据。假设计算的奇偶值为"01",读取出的奇偶值为"00", 可以将子扇区的数据判断为多读取了 "1"的数据。在这种情况下,改变读取 条件,从而少读取了 "1"。如图9所示,可以根据改变的读取条件从闪速存 储器200读取出数据。
因此,随着读取电压被再次设定为任意方向,判断出多读取了 "r的方 向或少读取了 "r,的方向。但是,读取条件的改变并不一定意味着错误被减 小的方向。然而,在示例性实施例的情况下,因为没有对无^i昔的子扇区进一 步进行处理,所以消除了正确读取的数据在下一条件下被读错的可能性,仅 在多读取了 "r的读取条件过程中确认少读取了 't,的子扇区的奇偶,作 为确认结果而判断出的没有错误的子扇区被选择为最终数据。换言之,如果 尽管沿着少读取了 "r的方向读取少读取了 "r的子扇区而没有检测到错 误,则实际上没有错误。这意味着,因为奇偶由于错误的另外产生而最终匹 配的可能性高,所以消除了错误。同样,当沿着少读取了 "r的方向再次读
14取子扇区时,多读取了 "1"的子扇区被正确读取的可能性高。在这种情况下, 可以选择具有匹配的奇偶的数据。在执行读取操作的情况下,可以经由奇偶 确认来减少错误。
在示例性实施例中,纠错处理器能够设定用来从使用闪速存储器的时间 点工作或者在经过给定的时间(或给定的程序擦除循环)之后工作。
图10是用于描述根据本发明另 一实施例的存储系统的数据处理或操作 的示图。参照图10,当从外部装置(即,主机系统)请求写入操作时,可以
将数据从主机系统输入到存储系统101。在框3010中,输入的数据可以经由 主机接口 110存储在緩冲器140中。然后,可以将在緩沖器140中存储的数 据传输到闪速存储器200。当在緩冲器140中存储的数据被传输到闪速存储 器200时,ECC块160可以基于传输的数据产生ECC数据,纠错处理器150 可以基于传输的数据产生子扇区单元的EDC (检一睹码)数据,如框3020所 示。扇区单元数据由多个子扇区形成,对每个子扇区产生EDC数据。在下文 中将更充分地对此加以描述。然后,可以将传输的lt据与ECC数据和EDC 数据一起存储在闪速存储器200中,如标号3030所示。
当从外部装置(主机系统)请求读取操作时,可以/人闪速存储器200读 取出数据,如标号3040所示。读取的数据可以包括原始数据和ECC数据。 ECC块160可以基于ECC数据来判断读取的数据是否有错。如果判断出读取 的数据有错,则在框3050中ECC块160可以检查读取的数据的错误是否能 够纠正。如果判断出读取数据的错误不能通过ECC数据纠正,则在框3060 中纠错处理器150可以使读取的数据的错误位化最少,而不用考虑ECC数据。 后面将更力。充分地对此加以描述。在使读取的数据的错误位最少化之后,在 框3070中,ECC块160可以基于ECC数据来检测并纠正读取的数据的错误。 如果在框3050中判断出可通过ECC数据纠正读取数据的错误,则可以执行 在框3070中描述的操作。可以将错误处理过的数据发送到外部装置(主机系 统)。
通过在写入操作时改变数据以适合于进行错误检测并在读取操作时使改 变的数据的错误位最少化,能够使用一般纠错能力(例如,8位ECC)而不 是高性能纠错能力(例如,16/24位ECC )来纠正超出纠错能力之外的错误 位。具体地讲,这样的数据处理方案可以用于存储3位数据或4位数据的存 储系统。
15在示例性实施例中,可以在闪速存储器的给定的编程擦除循环之后或者 在经过给定的参考时间之后,执行使错误位最少化的操作。但是,这样的操 作不限于本公开。
图11是示出在根据另一实施例的存储系统中使用的写入方法的流程图, 图12是示出根据另一实施例的写入方法来改变数据的方式的示图。将参照附 图更加充分地描述^f艮据这个实施例的存储系统的写入方法。
当从外部装置(即,主机系统)请求写入操作时,可以经由主机接口 110
将将要在步骤S300中写入在闪速存储器200中的数据存储在緩冲器140中。 例如,输入的数据可以是扇区数据。即,可以根据传输单元将512B数据顺序 地存储在緩冲器140中。
可以将在緩冲器140中存储的数据发送到闪速存储器200。在将存储在 緩冲器140中的邀:据传输到闪速存储器200时,如图12所示,ECC块160 可以基于传输的数据产生ECC数据,纠错处理器150可以基于传输的数据以 子扇区单位产生EDC数据。这些操作可以在步骤S310中执行。换言之,纠 错处理器150可以将传输的数据划分为子扇区,并针对每个子扇区产生EDC 数据。因此,扇区单位数据由多个子扇区组成,可以针对每个子扇区产生EDC 数据。在步骤S320中,可以将输入的数据与ECC数据和EDC数据一起存储 在闪速存储器200中。可以将输入的数据存储在闪速存储器200的主要区段
(或区域)中,可以将ECC数据和EDC数据存储在闪速存储器200的剩余 区段(或区域)中。将这样的剩余区段(或区域)称为页面元数据区段(或 区域)。将与页面有关的信息存储在元数据区域中,可将相关信息的EDC数 据和元数据ECC数据一起存储在元数据区域中。
在示例性实施例中,EDC数据为CRC数据。CRC数据可以是4位CRC 数据。但是,CRC数据不限于4位CRC数据。CRC数据的位数的增多能够 使检测错误位的能力提高。此外,可以以不同方式改变子扇区的数量。
图13是示出在根据这个实施例的存储系统中使用的读取方法的流程图, 图14是用于描述根据读取方法来确定最优化读取电压的过程的示图,图15 是示出数据读取方法的示图。将参照附图更充分地描述^^艮据这个实施例的存 储系统的读取方法。
当请求读取操作时,可以在存储控制器100的控制下从闪速存储器200
(或从闪速存储器200的选择的页面)读取出数据。更详细地讲,首先在步骤S400中,可以在存储控制器100的控制下从闪速存储器200读取出数据。 读取的数据可以包括ECC数据,并可以存储在緩冲器140中。ECC块160 可以基于读取的数据检测读取的数据是否有错。如果检测到错误,则在步骤 S410中ECC块160可以判断检测到的错误是否可以纠正。如果检测到可以 纠正的错误,则可以在步骤S450中根据公知的方式基于ECC数据来纠正读 取的数据的错误。然后,可以将读取的数据发送到外部装置(即,主机系统), 且读取操作可以结束。同样,如果没有检测到错误,则可以在没有纠错-操作 的情况下将读取的数据发送到外部装置(即,主才几系统),且读取操作可以结 束。
返回图13中的步骤S410,如果确定检测到的错误不能通过ECC块160 纠正,则过程前进至步骤S420,由此纠错处理器150可以确定最优化读取电 压。详细地讲,参照图14,存储在緩冲器140中的数据可以是使用最初读取 电压VR(O)读取的数据。最初读取电压VR(O)可以是缺省读取电压。纠確普处理 器150可以控制闪速存储器200,从而使用在最初读取电压VR(O)的基础上提 高了给定值的读取电压VR(1)和VR(2)以及在最初读取电压VR(O)的基础上降
据可以存储在緩沖器140中。这里,例如,给定值可以为40mV。但是,给 定值不限于本公开。基于根据最初读取电压VR(O)读取的数据,纠错处理器 150可以检测根据改变的读取条件VR(-2)、 VR(-1)、 VR(l)、 VR(2)中的每个 条件而读取的数据的翻转/反转位(flipped/toggledbit)。纠错处理器150可以 将用于读取翻转/反转位的数量为最少的数据的读取电压确定为最优化读取 电压。例如,如图14所示,使用读取电压VR(-l)读取的数据的翻转/反转位 的数量为最少,从而将读取电压VR(-1)确定为最优化读取电压。
在另一示例性实施例中,能够根据嵌入式处理器130而不是纠错处理器 150的控制来执行确定最优化读取电压的操作。
再参照图13,在确定出最优化读取电压之后,可以在步骤S440中根据 EDC数据收集读取的数据的子扇区中的无错子扇区,该步骤可以在纠错处理 器150的控制下进行。为此,首先,纠错处理器150可以在步骤S430中控制 闪速存储器200,从而使用在最优化读取电压的基础上顺序地提高了给定值
连续执行读取操作。读取电压的提高量可以与读取电压的降低量相同。读取的数据可以临时存储在緩沖器140中。然后,如上所述,纠错处理器150可 以基于对应的EDC数据来选择无错的子扇区,如图15所示。在无错的子扇 区的选择过程中,会存在错误的子扇区(例如,图15中的子扇区SS30)。在 这种情况下,才艮据翻转/反转位的组合或高频率的翻转/反转位的组合,可以将 错误的子扇区视为无错的子扇区。下面将更充分地对此加以描述。在步骤S440 中收集了无错的子扇区之后,过程进行至步骤S450,在步骤S450中,以公 知的方式基于ECC数据来纠正读取的数据的错误。然后,可以将读取的数据 发送到外部装置(即,主机侧),且读取操作可以终止。
在这个实施例中,连续执行根据改变的读取条件读取数据的操作,对于 错误的子扇区重复进行错误判断操作。另一方面,对于每个改变的读取条件, 能够独立地进行读取数据的操作和选择读取数据的无错子扇区的操作。
在示例性实施例中,可以在改变读取条件之前读取EDC数据。可选地, 可以一起读取EDC数据和ECC数据。但是,EDC数据的读取时间不限于本 公开。
图16是用于描述根据又一实施例的在存储系统中收集无错子扇区的操 作的流程图,图17是示出收集无错子扇区的操作的示图。将参照附图更充分 地描述在存储系统中收集无错子扇区的操作。
如图13所示,可以根据改变的读取条件连续读取数据,读取的翁:据可以 存储在緩沖器140中。然后,在步骤S441中,纠错处理器150可以基于EDC 数据选择无错的子扇区,如图15所示,管理所选的子扇区,作为最终数据。 在下面的步骤S442中,纠错处理器150可以判断错误的子扇区是否存在。如 果不存在错误的子扇区,则过程前进至图13的步骤S450。如果存在错误的 子扇区,则过程前进至步骤S443,在步骤S443中,纠错处理器150可以使 用错误子扇区的翻转/反转位产生可能的图案,换言之,如图17所示,错误 子扇区的位的翻转/反转位(例如,两位)(即,"00"、 "01"、 "10"和"00" 的值)可以用于产生四个子扇区图案。在产生可能的图案之后,在步骤S444 中,纠错处理器150可以基于对应的EDC数据来判断所产生的子扇区图案中 的一个是否有错。如果判断出所产生的子扇区图案中的一个没有错误,如图 17所示,在步骤S445中可以将这样的子扇区图案作为无错的子扇区。然后, 过程进行至步骤S447。
如果判断出产生的子扇区图案都是有错的,则过程继续进行至步骤S446,在步骤S446中,纠错处理器150可以将从读取数据的翻转/反转位中 较频繁4企测到的位作为正确位。例如,如图17所示,在第二位3001的情况 下,"0"的值可以是更频繁检测到的位。在第四位3002的情况下,"1"的值 可以是更频繁检测到的位。因此,可以将具有更频繁检测到的位的子扇区作 为无错的子扇区。在随后的步骤S447中,纠错处理器150可以判断另外的错 误子扇区是否存在。如果不存在另外的错误子扇区,则过程继续进行至步骤 S450,如图13所示。如果另外的错误子扇区存在,则过程继续进行至步骤 S443,从而重复执行上述步骤S443至S446。
如上所述,可以通过根据EDC数据收集无错子扇区并针对错误子扇区使 用翻转/反转位产生最优化子扇区来使读取数据的错误位最少化。因此,能够 使用相对低性能的ECC块而不是相对高性能的EDC块来纠正错误。读取数 据的步骤、收集的步骤和纠正的步骤在经过参考时间之后或在闪速存储器的 编程擦除循环之后进行。
同时,闪速存储器是各种各样的非易失性存储器,其能够保持存储在其 中的数据而无需供电。随着使用移动设备(例如,虫奪窝电话、个人数字助理 (PDA)、数字相机、便携式游戏机和MP3)的快速增长,闪速存储器广泛地 用于代码存储以及数据存储。闪速存储器还可以用在家用电器(例如,高清 晰TV、数字通用盘(DVD)、路由器和全球定位系统(GPS))中。
图18是示出包括根据示例性实施例的闪速存储器的示意性计算系统的 框图。将计算系统2000组织为包括处理单元2100 (例如,;微处理器或中央 处理单元)、用户接口 2200、调制解调器2300 (例如,基带芯片组)、存储控 制器2400和闪速存储器2500。可以将闪速存储器2500构造为与上述基本上 相同。在闪速存储器2500中,通过存储控制器2400存储将由处理单元2100 处理的N位数据(N为正整数)。如果图18所示的计算系统为移动装置,则 该移动装置还包括用于向其供电的电池2600。虽然在图18中未示出,但计 算系统还可以配备有应用芯片组、相机图像处理器(例如,CMOS图像传感 器(CIS))、移动式DRAM等等。例如,存储控制器2400和闪速存储器2500 可以形成为构成使用非易失性存储器来存储数据的固态驱动器/盘(SSD )。
图19是才艮据其它示例性实施例的基于存储器的存储装置的框图。在图 19中示出的基于存储器的存储装置可以如下来实现,即,存储器3510和存 储控制器3520构成卡3530。例如,卡3530可以是存储卡,例如,闪速存储
19卡。即,卡3530可以是满足任何工业标准的卡,以供消费电子装置(例如, 数字相机、个人计算机等等)使用。应当明白的是,存储控制器3520可以基 于卡3530从另一装置(例如,外部装置)接收的控制信号来控制存〗诸器3510。
图20是示出根据其它示例性实施例的基于存储器的存储装置的框图。图 20示出便携式装置4000。便携式装置4000可以是MP3播放器、视频播放器、 组合视频和音频播放器等等。如图所示,便携式装置4000包括存^f诸器3510 和存储控制器3520。便携式装置4000还可以包括编码器和解码器4610、呈 现纟J/f牛(presentation component) 4620禾口4妻口 4630。
可以通过编码器和解码器(EDC) 4610使数据(视频、音频等等)经由 存储控制器3520输入到存储器3510并从存储器3510输出。如图20中的虚 线所示,可以将数据从EDC 4610直接输入到存储器3510和/或从存^f诸器3510 直接输出到EDC 4610。
EDC 4610可以对存储在存储器3510中的数据进行编码。例如,EDC 4610 可以执行对存储在存储器3510中的音频数据的MP3编码。可选地,EDC 4610 可以冲丸行对存储在存储器3510中的3见频数据的MPEG编码(例如,MPEG2、 MPEG4等等)。此外,EDC4610可以包括根据不同的数据格式来对不同类型 的数据进行编码的多个编码器。例如,EDC4610可以包括用于音频lt据的 MP3编码器和用于^L频数据的MPEG编码器。
EDC 4610可以对从存储器3510的输出进行解码。例如,EDC4610可以 执行对从存储器3510输出的音频数据的MP3解码。可选地,EDC4610可以 执行对从存储器3510输出的视频数据的MPEG解码(例如,MPEG2、 MPEG4 等等)。此外,EDC4610可以包括根据不同数据格式来对不同类型的数据进 行编码的多个解码器。例如,EDC 4610可以包括用于音频数据的MP3解码 器和用于视频数据的MPEG解码器。
还应当明白的是,EDC4610可以仅包括解码器。例如,已经编码的数据 可以由EDC 4610接收,并传输到存储控制器3520和/或存储器3510。
EDC 4610可以经由接口 4630接收用于编码的数据或接收已经编码过的 数据。接口 4630可以遵守已知的标准(例如,火线、USB等等)。^妾口 4630 还可以包括一个以上的接口。例如,接口 4630可以包括火线接口 、 USB接口 等等。来自存储器3510的数据还可以经由接口 4630输出。
呈现组件4620可以向用户呈现从存储器输出的数据和/或由EDC 4610
20解码的数据。例如,呈现组件4620可以包括用于输出音频数据的麦克风插孔
和/或用于输出视频数据的显示屏等等。
根据示例性实施例的闪速存储器和/或存储控制器可以使用各种类型的
封装件来封装,例如,PoP(层叠封装件)、球栅阵列(BGA)、芯片级封装 件(CSP)、塑料引线芯片载体(PLCC)、塑料双列直插式封装件(PDIP)、 华夫包中芯片(Die in Waffle Pack )、晶片华夫形式芯片(Die in Wafer Form)、 板上芯片(COB)、陶瓷双列直插式封装件(CERDIP)、塑料度量四方扁平封 装件(MQFP)、薄型四方扁平封装件(TQFP)、小外形IC(SOIC)、缩小外 型封装件(SSOP)、薄小外形封装件(TSOP)、封装件中系统(SIP)、多芯 片封装件(MCP )、晶片级制造封装件(WFP )、晶片级处理堆叠封装件(WSP ) 等等。
如此描述了示例实施例,显而易见的是,可以以许多方式改变示例实施 例。这些改变不应当视为脱离示例实施例,所有这些修改意在被包括在权利 要求书的范围内。
权利要求
1、一种包括闪速存储器的存储系统的数据处理方法,包括下列步骤判断从所述闪速存储器的选择的页面最初读取的数据能否纠正;如果判断出最初读取的数据不能纠正,则基于每个最新确定的读取电压从所述选择的页面最新读取数据;基于与最初读取的数据对应的检错码数据,收集最新读取的数据的无错子扇区;基于与所述最初读取的数据对应的纠错码数据,纠正错误的子扇区的数据。
2、 如权利要求1所述的数据处理方法,其中,将第一读耳又电压确定为用 于从所述选择的页面最新读取数据的所述最新确定的读取电压包括使用第二读取电压/人所述选择的页面连续读取数据,所述第二读取电压是从用于读取所述最初读取的数据的最初读取电压分别逐步提高和降低的电压;将与连续读取的数据对应的第二读取电压中的与所述最初读取的数据相比具有最少数量的翻转/反转位的第二读取电压确定为最优化读取电压;选择第三读取电压作为第一读取电压,所述第三读取电压是从所述最优 化读取电压分别逐步提高和降低的电压。
3、 如权利要求2所述的数据处理方法,其中,将所述第三读取电压的提 高量设置为与所述第三读取电压的降低量相同。
4、 如权利要求1所述的数据处理方法,其中,收集无错子扇区的步骤包括判断所述最新读取的数据的任意子扇区是否为错误子扇区; 如果存在错误子扇区,则使用所述错误子扇区的翻转/反转位产生子扇区 图案;基于与所述最初读取的数据对应的检错码数据,判断每个子扇区图案是 否有错;将判断为无错的子扇区图案作为无错子扇区进行收集。
5、 如权利要求4所述的数据处理方法,其中,如果判断出所述子扇区图 案都有错,则通过以下步骤将错误子扇区改变为无错子扇区将根据每个最新确定的读取电压读取的子扇区图案的翻转/反转位中的较频繁4企测到的位选才奪为正确位;用所选4奪的正确位代替翻转/反转位。
6、 如权利要求1所述的数据处理方法,其中,如果检测到4晉误子扇区同 时收集了无错子扇区,则基于根据每个最新确定的读取电压读取的数据的翻 转/反转位与翻转/反转位中的较频繁检测到的位的组合,将所述^"误子扇区改 变为无错子扇区。
7、 如权利要求1所述的数据处理方法,其中,如果检测到错误子扇区同 时收集了无错子扇区,则收集无错子扇区的步骤包括将根据每个最新确定的读取电压读取的数据的翻转/反转位中的较频繁 检测到的位作为正确位;用所选择的正确位代替翻转/反转位,从而将错误子扇区改变为无错子扇区。
8、 如权利要求1所述的数据处理方法,其中,所述闪速存^f诸器是存储一 位数据或M位数据的NAND闪速存储器,其中,M是大于或等于2的整数。
9、 如权利要求1所述的数据处理方法,其中,所述闪速存储器是存储卡 和固态驱动器/盘中的 一种。
10、 如权利要求1所述的数据处理方法,其中,所述读取凄t据的步骤、器的编程擦除循环之后进行的。
11、 如权利要求1所述的数据处理方法,其中,从所述选择的页面读取 的数据是由多个子扇区形成的扇区数据,当将所述扇区数据写入在所述选择 的页面时,产生与所述多个子扇区中的每个子扇区对应的枱^普码凝:据。
12、 如权利要求11所述的数据处理方法,其中,将检错码数据存储在与 所述选择的页面对应的页面元数据区域中。
13、 如权利要求11所述的数据处理方法,其中,所述扇区数据的单位是 纠错码处理单位。
14、 如权利要求11所述的数据处理方法,其中,所述检错码数据是循环 冗余检验数据。
15、 一种存储系统,包括 闪速存储器;存储控制器,包括纠错处理器和纠错码块,所述存储控制器构造为控制 所述闪速存储器,其中,当判断出从所述闪速存储器的选择的页面最初读耳又的数据不能通 过纠错码块纠正时,所述纠错处理器控制所述闪速存储器,从而根据每个最新确定的读取电 压从所述选择的页面最新读取数据,所述纠错处理器基于与所述最初读取的数据对应的检错码教:据来收集最 新读取的数据的无错子扇区。
16、 如权利要求15所述的存储系统,其中,纠错码块基于所述最初读取 的数据的纠错码数据来纠正错误的子扇区的数据。
17、 如权利要求15所述的存储系统,其中,如果在收集无错子扇区的过 程中检测到错误子扇区,则所述纠错处理器根据按照每个最新确定的读取电 压读取的数据的翻转/反转位与翻转/反转位中的较频繁^f企测到的位的组合,将 错误子扇区改变为无错子扇区。
18、 如权利要求15所述的存储系统,其中,如果在收集无错子扇区的过 程中检测到错误子扇区,则所述纠错处理器通过以下步骤将错误子扇区改变 为无4昔子扇区将根据每个最新确定的读取电压读取的数据的翻转/反转位中的较频繁 检测到的位选择为正确位;用所选择的正确位代替翻转/反转位。
19、 如权利要求15所述的存储系统,其中,所述纠错处理器通过以下步 骤收集无错子扇区判断所述最新读取的数据的任意子扇区是否为错误子扇区; 如果存在错误子扇区,则使用错误子扇区的翻转/反转位产生子扇区图案;基于与所述最初读取的数据对应的检错码数据,判断每个子扇区图案是 否有错;将判断为无错的子扇区图案作为无错子扇区进行收集。
20、 如权利要求19所述的存储系统,其中,如果判断出子扇区图案都有 错,则所述纠错处理器通过以下步骤将错误子扇区改变为无错子扇区将根据每个最新确定的读取电压读取的子扇区图案的翻转/反转位中的较频繁4企测到的位选择为正确位;用所选择的正确位代替翻转/反转位。
全文摘要
本发明提供了一种存储系统及其数据处理方法,包括闪速存储器的存储系统的数据处理方法包括判断从所述闪速存储器的选择的页面最初读取的数据能否纠正。如果判断出最初读取的数据不能纠正,则基于每个最新确定的读取电压从所述选择的页面最新读取数据。然后,基于与最初读取的数据对应的EDC数据,收集最新读取的数据的无错子扇区。然后,基于与所述最初读取的数据对应的ECC数据,纠正所述无错子扇区的数据。
文档编号G11C16/02GK101667454SQ200910168379
公开日2010年3月10日 申请日期2009年8月31日 优先权日2008年9月5日
发明者吴和锡, 宋宗旭, 崔珍赫 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1