检测不稳定存储单元的分布的存储系统和方法

文档序号:6332748阅读:214来源:国知局
专利名称:检测不稳定存储单元的分布的存储系统和方法
检测不稳定存储单元的分布的存储系统和方法
相关申请的交叉引用
本申请要求于2009年10月1号向韩国知识产权局提交的韩国专利申请 No. 10-2009-0094047的优先权,其全部内容通过引用结合于此。技术领域
本发明概念涉及检测存储系统中的不稳定存储单元的分布的存储系统和相关方法。
背景技术
一些计算机使用的硬盘作为大容量存储介质来驱动。硬盘驱动可以提供大数据存 储量。但是,当硬盘驱动受到外部震动时,在硬盘中存储的数据可能会丢失。硬盘驱动通过 由制动器(actuator)移动的磁头(head)来读取和写入数据,其中,读取硬盘内侧部分的速 度和读取硬盘外侧部分的速度不一样。使用闪存(flash memory)的固态盘(solid state disc, SSD)正在日益替代硬盘驱动,用于特定的大量数据存储应用。数据存取速度比硬盘 驱动的情形快,特别是在同时读取多个文件的时候。
一般的存储系统包括存储数据的存储器,以及控制存储器的操作的存储控制器 (memory controller)。闪存是一类半导体存储器,其包括存储数据的晶体管存储单元,即, 浮栅(floating gate)晶体管。通过在浮栅中累积预定数量的电荷,执行编程操作。单比特 数据或多比特数据被存储在每个存储单元中。其中存储单比特数据的存储单元具有由阈值 电压的分布定义的两个电压,而其中存储多比特数据的存储单元具有四个或更多个电压。
单比特,即逻辑1和逻辑0,可以由晶体管的浮栅中累积的预定电荷量来表示。换 句话说,晶体管的阈值电压由浮栅中存储的电荷来确定。因此,当处于预定电压的信号被施 加到晶体管的栅极端时,导通晶体管和截止晶体管可以被互相区分开。为了读取单个比特, 单一类型的读电压可以被施加到晶体管的栅极端。
当多比特例如逻辑00、01、10和11被表示时,在浮栅上累积的电荷量应被分为三 类,因此,需要三类读电压。在闪存的浮栅中存储的电荷由于它们的移动性随着温度变化 而改变、所存储的电荷随时间而减少、在编程操作期间在相邻单元中发生干扰、以及其它影 响,而应在可接受的范围内均勻(uniformly)变化。因此,在浮栅上累积的电荷量考虑到从 编程操作到读电压的电压之间的预定间距(margin)来调整。
闪存中写入数据的基本单元是页(page)。为了对闪存中的存储单元进行编程,预 定的电压应被施加到源极、漏极、栅极以及块区域(bulk regions)。但是当正在执行编程操 作时电源突然被断开,则正被写入的数据可能没有被适当地存储到页中。在这种状态下存 入页的数据可能不被使用并且可能是不可纠正的。
在页读操作期间,存储控制器使用错误纠正码(error correction code, ECC)算 法来确定是否在页数据中产生了可纠正的ECC错误或不可纠正的ECC错误。当存储控制器 确定页没有被正常编程时,存储控制器生成不可纠正ECC的错误信号,从而页数据可能被处理为无效数据。换句话说,当确定页在电源切断前正被编程,并且由于电源的突然切断而 产生了错误时,页被处理为无效数据,并且最后写请求的逻辑块地址(LBA)数据被忽略。
但是,当编程操作接近完成,在页中存储的数据可能是可纠正的。在这种情况下, 存储控制器产生可纠正ECC错误信号,从而该页可被以后使用。当编程操作接近完成时,至 少有阈值数量的电荷被累积在浮栅上。但是,当页是可纠正的并且页中存储的数据没有完 成而被使用时,当数据被读取时可能会产生读错误。在这种情况下,由于可纠正错误信号由 存储控制器产生,对该页的编程操作之后没有被执行。因此,在浮栅上累积的电荷不足。
作为读取存储的数据的功能,由于自然泄露,在浮栅上累积的电荷量会减少。当在 浮栅上累积的电荷量不足时,在编程操作期间单元中存储的数据具有和预期值不同的值。
因此,需要一种方法,防止在读取编程操作接近完成的页中存储的数据时可能发 生的读错误。发明内容
根据本发明概念的实施例,存储系统包括固态盘(SSD)和存储控制器。SSD包括多 个存储单元。存储控制器将数据写入SSD或从SSD读取数据。存储控制器将标准读电压和 具有与标准读电压不同的预定电压的纠正读电压施加到SSD,并使用标准读电压和纠正读 电压来分析SSD中存储的数据的分布,并确定SSD中存储的数据是否有效,并纠正SSD中存 储的数据。
根据本发明概念的一些其它实施例,存储系统包括存储器和用于控制存储器的存 储控制器,其中,存储控制器通过使用标准读电压或纠正读电压读取存储器中包含的存储 单元中存储的数据或存储器中包含的存储单元的存储页中存储的数据,检测存储单元中发 生的读错误,在读电压被调整后读取存储单元中存储的数据,以执行根据检测结果或要新 存储在存储单元中的数据来确定存储单元是否被使用的功能,并检测存储单元中发生的读 错误。
根据本发明概念的一些其它实施例,一种从多个存储单元中检测不稳定存储单元 的分布的方法,其中包括了单个存储单元的页或多个存储单元。该方法包括存储单元初始 状态检查操作和存储单元纠正确定操作。在存储单元初始状态检查操作中,检查存储单元 中存储的数据的初始状态,并根据检查结果来确定在以标准电压读取存储单元中存储的数 据时是否没有发生数据错误、是否发生了该读错误并且该读错误是可纠正的、或者是否发 生了读错误并且该读错误是不可纠正的。在存储单元纠正确定操作中,如果确定读错误是 可纠正的,则确定通过以具有与标准读电压不同电压的纠正读电压读取存储单元中存储的 数据,存储单元是否是可纠正的,并且确定以纠正读电压读取存储单元中存储的数据时发 生的读错误是可纠正的还是不可纠正的。
根据本发明概念的一些其它实施例,一种从多个存储单元中检测不稳定存储单元 的分布的方法,其中包括了单个存储单元中的页或多个存储单元。该方法包括存储单元初 始状态检查操作和存储单元纠正确定操作。在存储单元初始状态检查操作中,检查存储单 元中存储的数据的初始状态,并根据检查结果来确定在以标准电压读取存储单元中存储的 数据时是否没有发生数据错误、是否发生了读错误并且该读错误是可纠正的、或者是否发 生了读错误并且该读错误是不可纠正的。在存储单元纠正确定操作中,如果确定读错误是可纠正的,则通过以具有与标准读电压不同电压的纠正读电压读取存储单元中存储的数 据,检查存储单元是否是可纠正的,并且确定以纠正读电压读取存储单元中存储的数据时 发生的读错误是可纠正的还是不可纠正的。通过将纠正读电压调整为至少两个电压,存储 单元纠正确定操作被重复执行,或者存储单元初始状态检查操作和存储单元纠正确定操作 在至少两个页上被重复执行。或者,这两个选项被重复执行。
其它一些实施例指向操作电路以从存储器的至少一页中的多个存储单元中检测 不稳定存储单元的方法。该方法包括根据存储单元中存储的数据的初始状态确定以标准读 电压读取数据时是否没有发生读错误、是否发生了读错误并且该读错误是可纠正的、以及 是否发生了读错误并且该读错误是不可纠正的。响应于确定发生可纠正的读错误,通过以 具有不同于标准读电压的电压的纠正读电压读取存储单元中存储的数据,确定以纠正读电 压读取的数据中发生的读错误是可纠正的还是不可纠正的,进一步确定存储单元是否是可 纠正的。
在一些另外的实施例中,通过确定存储单元或包括存储单元的页中存储的数据是 稳定的,对确定没有发生读错误做出响应,以及通过确定存储单元或包括存储单元的页中 存储的数据将不被用于主机装置的数据访问,来响应于确定读错误是不可纠正的。根据存 储单元中存储的数据的初始状态来确定包括根据存储单元中存储的初始状态来确定是否 已经发生了不可纠正的读错误,以及响应于确定没有发生不可纠正的读错误,确定是否没 有读错误。
根据存储单元中存储的数据的初始状态来确定可以包括第一确定在以标准读电 压读取存储单元中存储的数据时其中发生可纠正的读错误的存储单元的数量。进一步确定 存储单元是否是可纠正的可以包括确定在使用纠正读电压读取存储单元中存储的数据时 发生的读错误是可纠正的还是不可纠正的。
确定在使用纠正读电压读取存储单元中存储的数据时发生的读错误是可纠正的 还是不可纠正的可以包括确定读错误是否是不可纠正的;通过第二确定在使用纠正读电 压读取存储单元中存储的数据时其中发生可纠正的读错误的存储单元的数量,以响应于确 定读错误是可纠正的;以及确定在以纠正读电压读取时其中发生可纠正的读错误的存储单 元的数量是否大于在以标准读电压读取时其中发生可纠正的读错误的存储单元的数量。
响应于确定读错误是不可纠正的,进一步确定存储单元或包括存储单元的页中存 储的数据将不被用于主机的数据访问并限制主机对其的访问(这可以通过存储控制器来 实现)。响应于确定在以纠正读电压读取时其中发生可纠正的读错误的存储单元的数量大 于在以标准读电压读取时其中发生可纠正的读错误的存储单元的数量,进一步确定存储单 元或包括存储单元的页中存储的数据将不被用于主机的数据访问并限制主机对其的访问。 响应于在以纠正读电压读取时其中发生可纠正的读错误的存储单元的数量小于在以标准 读电压读取时其中发生可纠正的读错误的存储单元的数量,进一步确定存储单元或包括存 储单元的页中存储的数据是稳定的并且允许被主机访问。
根据存储单元中存储的数据的初始状态来确定以及确定存储单元是否是可纠正 的,可以对多个页重复执行。确定存储单元是否是可纠正的包括以多个不同的电压重复读 取存储单元。
一些其它实施例指向一种操作电路以从至少一页中的多个存储单元中检测不稳定的存储单元的方法。该方法包括根据存储单元中存储的数据的初始状态确定在以标准读 电压读取数据时是否没有发生读错误、是否发生了读错误并且该读错误是可纠正的、以及 是否发生了读错误并且该读错误是不可纠正的。响应于确定发生了可纠正的读错误,通过 以具有不同于标准电压的电压的纠正读电压来读取存储单元中存储的数据进一步确定存 储单元是否是可纠正的,以及确定以纠正读电压读取的数据中发生的读错误是可纠正的还 是不可纠正的。通过读取存储单元中存储的数据确定存储单元是否是可纠正的被以多个不 同纠正读电压重复执行。
一些其它实施例指向一种包括存储器和存储控制器的存储系统。存储控制器被配 置为控制存储器,其中,存储控制器使用标准读电压读取在存储器的存储单元中存储的数 据或存储器的存储单元的存储页中存储的数据,并且使用不同于标准读电压的纠正读电压 读取存储器的存储单元中存储的数据或存储器的存储单元的存储页中存储的数据,并且其 被配置为响应于在以纠正读电压读取和以标准读电压读取时检测存储单元中是否发生了 读错误,确定主机对存储单元的数据访问将被允许。
一些其它实施例指向一种包括固态盘(SSD)和存储控制器的存储系统。固态硬盘 包括多个存储单元。存储控制器被配置为将数据写入SSD和从SSD读取数据。存储控制器 顺序地使用标准读电压来从存储单元读取数据,和使用不同于标准读电压的纠正读电压来 从存储单元读取数据,以及确定以标准读电压和以纠正读电压来从存储单元读取的数据中 的读错误的分布,并且响应于所确定的读错误分布来确定多个存储单元中存储的数据是否 有效。
存储控制器可以包括中央处理器(CPU)和错误纠正码(ECC)单元,CPU向SSD提 供标准读电压并确定在使用标准读电压读取数据时的错误分布。ECC单元根据所确定的分 布来确定在SSD中存储的数据中是否发生了错误。响应于确定在SSD中存储的数据中发 生了错误,CPU确定该错误是可纠正的还是不可纠正的。响应于确定该错误是不可纠正的, CPU指示主机不使用该存储单元中存储的数据。响应于确定该错误是可纠正的,CPU向SSD 提供纠正读电压,并确定使用纠正读电压读取的数据中的错误分布,ECC单元根据所确定的 使用纠正读电压读取的数据中的错误分布来确定该错误是可纠正的还是不可纠正的,并且 CPU根据所确定的错误分布来纠正SSD中存储的数据。
存储控制器还可以包括随机存取存储器(RAM)。在纠正SSD中存储的数据时,CPU 将存储单元中存储的数据存入RAM,然后将RAM中存储的数据再写入SSD的存储单元。
SSD可以包括闪存。SSD中存储的数据的有效性可以基于SSD的部分(section) 中的一个中所包含的数据来确定。


通过以下结合附图的具体描述,本发明概念的示例性实施例将被更清楚地理解, 其中
图1示出了最低有效位(LSB)页的编程分布;
图2示出了 LSB页和最高有效位(MSB)页的编程分布;
图3是示出根据本发明概念的一些实施例的检测不稳定存储单元的分布的方法 的流程图4是示出根据本发明概念的一些其它实施例的检测不稳定存储单元的分布的 方法的流程图,所述方法包括调整纠正读电压的操作;
图5是示出根据本发明概念的一些其它实施例的检测不稳定存储单元的分布的 方法的流程图,所述方法包括对多个页重复执行编程操作的操作;
图6是示出根据本发明的一些其它实施例的包括存储控制器的存储系统的框图, 该存储控制器被配置来检测不稳定存储单元的分布;
图7到图9示出了处理包括不稳定存储单元的页的例子;以及
图10是根据本发明概念的一些其它实施例的存储系统。
具体实施方式
现在将参考其中示出了发明实施例的附图在以下更充分地描述本发明的实施例。 但是,本发明可以以多种不同形式来实现,并且不应被理解为限于这里阐述的实施例。相 反,这些实施例被提供从而使本公开全面和完整,并且将向本领域技术人员充分地传达本 发明的范围。在全文中相同的标号表示相同的元件。
应当理解,尽管术语第一、第二等可以在这里用来描述各种不同的元件,这些元件 不应被这些术语所限制。这些术语仅用于区分一个元件与另一个元件。例如,第一元件可以 被称为第二元件,并且类似地,第二元件可以被称为第一元件,而不偏离本发明的范围。如 这里所用,术语“和/或”包括一个或更多个相关所列条目的任意或全部的组合。
这里使用的术语仅用于描述特定实施例的目的,而不是要限制本发明。如这里所 用,单数形式“一”、“一个”和“该”旨在也包含复数形式,除非上下文明确另外表示。还应 当理解,术语“包括”和/或“包含”在这里使用时,表示所述特征、整体、步骤、操作、元件和 /或组件的存在,但并不排除一个或更多个其它特征、整体、步骤、操作、元件、组件和/或其 组合的存在。
除非另外定义,这里使用的所有术语(包括技术和科学术语)具有和本发明所述 领域的普通技术人员所一般理解的相同的含义。还应当理解,这里使用的术语应被解释为 具有和本说明书及相关领域中的含义一致的含义,并且不应该被解释为理想化或过于形式 化的意义,除非这里明确这样表示。
应当理解,当一个元件被称为“连接”或“耦接”到另一元件时,它可以直接连接或 耦接到另一元件,或者可以存在中间的元件。相反,当一个元件被称为“直接连接”或“直接 耦接”到另一元件,则不存在中间的元件。
根据一些实施例,使用不同于在普通操作状态中使用的标准读电压的纠正读电压 来检测存储单元的阈值电压的分布,并基于检测结果来确定相应存储单元的编程操作的有 效性。同时,由于在编程操作期间发生问题后或在执行正常编程操作后存储装置的环境改 变而可能发生的错误被事先检查和测量。
图1示出了最低有效位(LSB)页的编程分布。LSB页在单层单元(singlelevel cell, SLC)或多层单元(multi-level cell, MLC)中被表示为逻辑高或逻辑低。由实线表 示的正常分布Pl代表LSB页被正常编程的情形,而由虚线表示的非正常分布ΡΓ代表编程 操作被非正常执行或者编程操作被正常执行但由于存储装置的环境因素引起分布变化的 情形。横轴代表电压,而纵轴代表对应于电压的存储单元的数量。存储单元的电压是被用来开启(turn on)存储单元的电压,即,阈值电压。分布的概念被使用,因为用于写入存储 单元中存储的数据的基本单元是页,并且在一页中包括多个存储单元。
当存储单元中存储的数据对应于正常分布Pl时,在使用标准读电压readl来读取 存储单元中存储的数据时,不会发生数据错误。换句话说,没有发现每个具有对应于标准读 电压readl的阈值电压的存储单元。在正常分布Pl中,没有每个具有对应于纠正读电压 readl'的阈值电压的存储单元,该纠正读电压readl’与标准读电压readl相差预定的差 值。当由于编程操作被正常执行后的存储单元的环境因素或者在浮栅上累积的电荷没有泄 露,从而存储单元的阈值电压没有被调整时,则如上所述,即使标准读电压readl和纠正读 电压readl’在预定范围内被纠正时也不会发生读错误。
但是,在其中编程操作被非正常编程的非正常分布ΡΓ中,在使用标准读电压 readl来读取存储单元中存储的数据时,不会发生错误。但是,在使用纠正读电压readl’来 读取存储单元中存储的数据时,发生读错误。换句话说,存在多个存储单元,每个具有对应 于纠正读电压readl’的阈值电压。
如上所述,在正常的存储单元中,即使在标准读电压readl和纠正读电压readl’ 在预定的范围内调整,也会发生读错误。另一方面,在非正常的存储单元中,即使在标准读 电压readl和纠正读电压readl’被略微调整,发生读错误的概率也会增加。纠正读电压 readl’和标准读电压readl之间的差值可以根据要在存储单元中使用的晶体管来确定。该 差值可以以0. 05V的步幅(steps)来增加或降低。
图2示出了 LSB页和最高有效位(MSB)页的编程分布。图2中示出的分布指向 MLC中的MSB或LSB页。由实线表示的正常分布PI、P2和P3代表MSB或LSB页被正常编 程的情形,而由虚线表示的非正常分布P1’、P2’和P3’代表编程操作被正常执行但分布由 于存储装置的环境因素而变化的情形。图2中的分布指向多比特,因此多比特的每一个的 分布表示逻辑00、01、10或11。
参考图2,在被正常编程的存储单元的正常分布PI、P2和P3中,没有存储单元具 有对应于标准读电压readl、read2和read3以及纠正读电压readl,、read2,和read3,的 阈值电压。在被非正常编程的存储单元的非正常分布P1、P2和P3中,没有存储单元具有对 应于标准读电压readl、read2和read3的阈值电压,但有存储单元具有对应于纠正读电压 readl \read2'和 read3,的阈值电压。
参考图1和图2,当正常编程的存储单元或包括正常编程的存储单元的存储系统 的环境因素发生改变时,如果存储单元的阈值电压几乎没有被调整,则在全部以标准读电 压readl、read2和read3来读取数据的情形和以纠正读电压readl,、read2,和read3,来 读取数据的情形下,都不会发生读错误。但是,响应于非正常编程的存储单元或包括非正常 编程的存储单元的存储系统的环境因素的改变,当存储单元的阈值电压被快速调整时,会 发生读错误。下面,将基于上述描述来描述各个实施例。
图3是示出根据本发明概念的一些实施例的检测不稳定存储单元的分布的方法 (300)的流程图。参考图3,该方法包括读取存储单元中存储的数据(操作310)、检测数据 的初始状态(操作320)、确定读错误是否是可纠正的(操作350)、确定未使用的存储单元 (操作380)、重新编程被确定为未使用存储单元的存储单元(操作380-1)、以及确定稳定的 存储单元(操作390)。
在操作310中,以标准读电压读取存储单元中存储的数据。
在操作320中,以标准读电压读取存储单元中存储的数据,并确定是否发生了错 误。当读错误发生时,进一步确定该读错误是可纠正的还是不可纠正的。因此,操作320 包括第一确定读错误是否是不可纠正的(操作321)以及第二确定是否没有读错误(操作 322)。
当在操作321中确定读错误是不可纠正的,则确定在发生读错误的存储单元或者 页中存储的数据没有被使用(操作380)。在这种情况下,最终执行被确定为未使用存储单 元的重新编程存储单元(操作380-1)。如果在操作321中确定读错误是可纠正的,则没有 读错误或者仅剩可纠正的读错误。如果在操作322中确定没有读错误,则在存储单元或页 中存储的数据中没有问题,并且因此,存储单元或页可以被确定为是稳定的(操作390)。
当在操作320中确定读错误是可纠正时,操作350随后被执行。在操作350中,以 具有与标准读电压不同电压的纠正读电压读取存储单元中存储的数据,并且在以纠正读电 压读取存储单元中存储的数据时确定读错误是可纠正的还是不可纠正的。
操作350包括第一确定(操作360)和确定纠正读错误(操作370)。
操作360包括确定在以标准读电压读取存储单元中存储的数据时其中发生可纠 正读错误的存储单元的数量N(操作361),以及确定纠正读电压(操作362)。
操作370包括第三确定(操作371)、第二确定(操作372)和第四确定(操作373)。 确定在使用纠正读电压读取存储单元中存储的数据时发生的读错误是可纠正的还是不可 纠正的。
在操作371中,如果确定在读取存储单元中存储的数据时发生的读错误是不可纠 正的,则在存储单元或页中存储的数据被确定为将不被使用(操作380),并且相应的指示 信号可以被产生并用来控制存储单元的编程。
在操作372中,如果确定读错误不是不可纠正的,则确定在使用纠正读电压读取 存储单元中存储的数据时其中发生可纠正的读错误的存储单元的数量N’。
在操作373中,确定在操作372中确定的可纠正存储单元的数量N’是否大于在操 作360中确定的可纠正存储单元的数量N(N’ > N)。响应于操作373中的确定,当在操作 372中确定的可纠正存储单元的数量N’大于操作360中确定的可纠正存储单元的数量N(N’ >N)时,则在存储单元或页中存储的数据被确定为将不被使用(操作380),并且相应的指 示信号可以被产生并用来控制存储单元的编程。相反,当在操作372中确定的可纠正存储 单元的数量N’小于操作360中确定的可纠正存储单元的数量N(N’ < N)时,则在存储单元 或页中存储的数据被确定为是稳定的(操作390),并且相应的指示信号可以被产生并用来 控制存储单元的编程。
如上所述,当确定在使用标准读电压读取存储单元中存储的数据时发生的读错误 是可纠正的时,检测不稳定存储单元的分布(300)会更有效。在这种情况下,再一次使用通 过调整读电压而得到的纠正读电压读取存储单元中存储的数据。使用标准读电压读取存储 单元中存储的数据的情形和使用纠正读电压读取存储单元中存储的数据的情形被互相比 较,并且确定存储单元或页是将被使用还是将被重新编程。换句话说,在使用标准读电压读 取存储单元中存储的数据时发生的可纠正的读错误的数量和在使用纠正读电压读取存储 单元中存储的数据时发生的可纠正的读错误的数量被互相比较,并且如果在使用纠正读电压读取存储单元中存储的数据时发生的可纠正读错误的数量不少于使用标准读电压读取 存储单元中存储的数据时发生的可纠正的读错误的数量,则确定在存储单元或页中发生不 可纠正的读错误的可能性很高,并且可以采取充分的措施。
上述描述涉及一个存储单元或一页。同时,纠正读电压可以被设置在一个任意电 压。但是,如以下将描述的,本发明不限于此。
图4是示出根据本发明概念的一些其它实施例的检测不稳定存储单元的分布的 方法G00)的流程图,该方法包括调整纠正读电压的操作。参考图4,可以使用具有不同电 压的多个纠正读电压来执行检测不稳定存储单元的分布G00)。其它操作对应于图3中示 出的各种操作,因此,现在将只描述通过调整纠正读电压读取存储单元中存储的数据(操 作 430)。
在操作430中,当在标准读电压Ini中顺序地加上或减去预定的电压Inc时,读取 存储单元中存储的数据,直到纠正电压变为最后读电压LAST。这里,i是变量,L是整数。 U. C. E.表示不可纠正的错误,C/E表示可纠正的错误。
图5是示出根据本发明概念的一些其它实施例的检测不稳定存储单元的分布的 方法(500)的流程图,该方法包括对多个页重复执行编程操作的操作。参考图5,检测不稳 定存储单元的分布(500)可以很容易地对多个页L执行。
考虑到本申请公开,对于本领域普通技术人员来说图4或图5中示出的流程图可 以被理解,因此这里不再提供其更详细的描述。同时,考虑到本申请公开,本领域普通技术 人员可以将图4和图5合并为一个流程图,因此,这里不再提供对这种合并的具体描述。
图6是根据本发明概念的一些实施例的包括存储控制器电路的存储系统600的框 图,该存储控制器电路被配置为检测不稳定存储单元的分布,其可以被配置为实现这里公 开的操作,包括但不限于图3、图4和/或图5中的操作。参考图6,存储系统包括存储控制 器610和存储器620。
存储控制器610通过使用标准读电压和纠正读电压读取存储器620中包含的存储 单元中存储的数据或者存储器620中包含的存储单元的存储页中存储的数据,检测存储单 元中发生的读错误,在调整读电压后读取存储单元中存储的数据,以执行确定根据检测结 果来使用存储单元的情形和数据将被新存入存储单元的情形中的一种的功能,并检测存储 单元中发生的读错误。根据检测的结果,确定存储单元是将被使用还是将对存储单元新执 行编程操作。
该过程以图3、图4和图5中示出的检测不稳定存储单元的分布的各种操作来描 述。
如上所述,当确定必须对存储单元新执行编程操作时,下列三种对包括不稳定存 储单元分布的页进行处理的操作被执行。
图7到图9示出了对包括不稳定存储单元的页进行处理的例子。参考图7,其示出 了对包括不稳定存储单元分布的页进行处理的第一类型,当编程操作在页单元中执行时电 源被突然切断,在包括发生可纠正ECC错误的块的页编程的数据被确定为将不被使用O)。 在这种情况下,在对应于电源切断时的最后的写请求的本地块地址(LBA)上再次执行编程 操作。
参考图8,其示出了对包括不稳定存储单元分布的页进行处理的第二类型,在包括发生可纠正ECC错误的块的页中存储的数据被复制到内部富余块(surplus block)即好块 之后(1),关于对应于LBA的物理位置的信息被更新O)。在这种情况下,编程操作不再被 执行,因此,电源被切断时的写请求的LBA被确定为被正常处理。
参考图9,其示出了对包括不稳定存储单元分布的页进行处理的第三类型,在包括 发生可纠正ECC错误的块的页中存储的数据被复制到好块上的临时缓存中(1),然后被重 新复制到原始页即不稳定块C3)。在执行重新复制C3)前,在执行了不完全编程操作的页中 存储的数据可以被删除O)。在这种情况下,关于对应于LBA的物理位置的信息不必被更新。
图10是根据本发明概念的一些其它实施例的存储系统1000。参考图10,存储系 统1000包括存储控制器1020,固态盘(SSD) 1010。SSD 1010可以被实现为多个闪存单元。
存储控制器1020被配置为在SSD 1010中写入数据和读取SSD 1010中写入的数 据。特别地,存储控制器1020将标准读电压和与标准读电压具有预定电压差值的纠正读电 压施加到SSD 1010,并通过使用标准读电压和纠正读电压来分析SSD 1010中存储的数据 的分布,确定SSD 1010中存储的数据是否有效,并纠正SSD 1010中存储的数据。
为了执行上述功能,存储控制器1020包括主机接口(I/F) 1021、随机存取存储器 (RAM) 1022、中央处理器(CPU) 1023、ECC单元1024和存储器I/F 1025。主机I/F 1021在 存储控制器1020和主机(未示出)之间交互(interfaces),并且存储器IF 1025在存储控 制器1020和SSD 1010之间交互。
CPU 1023将标准读电压发送到SSD 1010并根据标准读电压来分析数据的分布。 ECC单元IOM根据数据分布来确定SSD 1010中存储的数据中是否存在错误,并且如果确 定SSD 1010中存储的数据中存在错误,则ECC单元IOM还确定该错误是可纠正的还是不 可纠正的。
当确定错误是不可纠正的时,CPU 1023指示主机(未示出)在存储单元中存储的 数据将不被使用。当确定错误是可纠正的时,CPU 1023将纠正读电压发送到SSD 1010,根 据纠正读电压来分析数据的分布。ECC单元IOM根据分析结果来确定该错误是可纠正的还 是不可纠正的。CPU 1023根据确定的结果来纠正SSD 1010中存储的数据。
数据的分布是指基于标准读电压或纠正读电压确定的存储单元的分布。图1和图 2中示出了示例性的分布。
可以使用CPU 1023以多种方式来纠正SSD 1010中存储的数据。作为例子,在SSD 1010的存储单元中存储的数据被存入RAM 1022后,RAM 1022中存储的数据再被写入SSD 1010的存储单元。
SSD 1010中包含的多个存储单元在页单元中被互相区分。数据通常被写入页单元 中的多个存储单元中。在一些实施例中,可以在页单元中确定写入数据的有效性。
在图10中,功能块被示出为可以包含在存储控制器1020中,并且它们可以包括主 机接口 1021、RAM 1022、CPU 1023、ECC 10 和存储器接口 1025。应当理解该示例性实施 例仅用于说明的方便性,并且不是限制本发明的范围。
尽管本发明概念已经参考其示例性实施例被具体示出和描述,应当理解,可以对 形式和细节进行各种修改,而不偏离权利要求书的精神和范围。1权利要求
1.一种操作电路以从至少一页中的多个存储单元中检测不稳定的存储单元的方法,该 方法包括根据存储单元中存储的数据的初始状态来确定在以标准读电压读取数据时是否没有 发生读错误,是否发生了读错误并且该读错误是可纠正的,以及是否发生了读错误并且该 读错误是不可纠正的;以及响应于确定发生了可纠正的读错误,通过以具有不同于标准读电压的电压的纠正读电 压读取存储单元中存储的数据,以及通过确定以纠正读电压读取的数据中发生的读错误是 可纠正的还是不可纠正的,进一步确定存储单元是否是可纠正的。
2.如权利要求1所述的方法,还包括通过确定存储单元或包括存储单元的页中存储 的数据是稳定的,来响应于确定没有读错误发生,以及通过确定存储单元或包括存储单元 的页中存储的数据将不被用于主机装置的数据访问,来响应于确定读错误是不可纠正的。
3.如权利要求2所述的方法,其中,根据存储单元中存储的数据的初始状态来确定包括根据存储单元中存储的数据的初始状态来确定是否发生了不可纠正的读错误;以及响应于确定没有发生不可纠正的读错误,确定是否没有读错误。
4.如权利要求1所述的方法,其中根据存储单元中存储的数据的初始状态来确定包括第一确定在以标准读电压读取存 储单元中存储的数据时其中发生可纠正的读错误的存储单元的数量;以及进一步确定存储单元是否是可纠正的包括确定在使用纠正读电压读取存储单元中存 储的数据时发生的读错误是可纠正的还是不可纠正的。
5.如权利要求4所述的方法,其中,确定在使用纠正读电压读取存储单元中存储的数 据时发生的读错误是可纠正的还是不可纠正的包括确定读错误是否是不可纠正的;响应于确定读错误是可纠正的,第二确定在使用纠正读电压读取存储单元中存储的数 据时其中发生可纠正的读错误的存储单元的数量;以及确定在以纠正读电压读取时其中发生可纠正的读错误的存储单元的数量是否大于在 以标准读电压读取时其中发生可纠正的读错误的存储单元的数量。
6.如权利要求5所述的方法,还包括响应于确定读错误是不可纠正的,确定存储单元或包括存储单元的页中存储的数据将 不被用于主机的数据访问并限制主机对其的访问;响应于确定在以纠正读电压读取时其中发生可纠正的读错误的存储单元的数量大于 在以标准读电压读取时其中发生可纠正的读错误的存储单元的数量,确定存储单元或包括 存储单元的页中存储的数据将不被用于主机的数据访问并限制主机对其的访问;以及响应于在以纠正读电压读取时其中发生可纠正的读错误的存储单元的数量小于在以 标准读电压读取时其中发生可纠正的读错误的存储单元的数量,确定存储单元或包括存储 单元的页中存储的数据是稳定的并且允许被主机访问。
7.如权利要求1所述的方法,其中,对多个页重复执行根据存储单元中存储的数据的 初始状态的确定以及确定存储单元是否是可纠正的。
8.如权利要求1所述的方法,其中,确定存储单元是否是可纠正的包括以多个不同的电压来重复读取存储单元。
9.一种操作电路以从至少一页中的多个存储单元中检测不稳定的存储单元的方法,该 方法包括根据存储单元中存储的数据的初始状态确定在以标准读电压读取数据时是否没有发 生读错误,是否发生了读错误并且该读错误是可纠正的,以及是否发生了读错误并且该读 错误是不可纠正的;响应于确定发生了可纠正的读错误,通过以具有不同于标准读电压的电压的纠正读电 压读取存储单元中存储的数据,以及通过确定以纠正读电压读取的数据中发生的读错误是 可纠正的还是不可纠正的,进一步确定存储单元是否是可纠正的;以及通过以多个不同的纠正读电压来读取存储单元中存储的数据来重复执行确定存储单 元是否是可纠正的。
10.一种存储系统,包括存储器;以及存储控制器,其被配置为控制该存储器,其中,该存储控制器使用标准读电压读取存储 器的存储单元中存储的数据或存储器的存储单元的存储页中存储的数据,并且使用不同于 标准读电压的纠正读电压读取存储器的存储单元中存储的数据或存储器的存储单元的存 储页中存储的数据,并且其被配置为响应于在以纠正读电压读取以及在以标准读电压读取 时检测存储单元中是否发生了读错误,来确定主机对存储单元的数据访问将被允许。
11.一种存储系统,包括固态盘SSD,包括多个存储单元;以及存储控制器,其被配置为将数据写入SSD以及从SSD读取数据,其中,该存储控制器顺序使用标准读电压来从存储单元读取数据和使用不同于标准读 电压的纠正读电压来从存储单元读取数据,并确定以标准读电压和以纠正读电压从存储单 元读取的数据中读错误的分布,以及响应于所确定的读错误的分布来确定多个存储单元中 存储的数据是否有效。
12.如权利要求11所述的存储系统,其中,所述存储控制器包括中央处理器CPU和错 误纠正码ECC单元,其中,CPU向SSD提供标准读电压,并确定在使用标准读电压读取数据 时的错误分布,而ECC单元根据所确定的分布来确定在SSD中存储的数据中是否发生了错 误,并且响应于确定在SSD中存储的数据中发生了错误,CPU确定该错误是可纠正的还是不 可纠正的,并且响应于确定该错误是不可纠正的,CPU指示主机不使用该存储单元中存储的 数据,并且响应于确定该错误是可纠正的,CPU向SSD提供纠正读电压,并确定使用纠正读 电压读取的数据中的错误分布,以及ECC单元根据所确定的使用纠正读电压读取的数据中 的错误分布来确定该错误是可纠正的还是不可纠正的,而CPU根据所确定的错误分布纠正 SSD中存储的数据。
13.如权利要求12所述的存储系统,其中,所述存储控制器还包括随机存取存储器 RAM,并且在纠正SSD中存储的数据时,CPU将存储单元中存储的数据存入RAM,然后再将RAM 中存储的数据写入SSD的存储单元中。
14.如权利要求11所述的存储系统,其中,所述SSD包括闪存。
15.如权利要求11所述的存储系统,其中,基于所述SSD的部分中的一个中所包含的数据来确定SSD中存储的数据的有效性。
全文摘要
操作电路以从至少一页中的多个存储单元中检测不稳定的存储单元。根据存储单元中存储的数据的初始状态来确定以标准读电压读取数据时是否没有发生读错误,是否发生了读错误并且该读错误是可纠正的,以及是否发生了读错误并且该读错误是不可纠正的。响应于确定发生了可纠正的读错误,通过以具有不同于标准读电压的电压的纠正读电压读取存储单元中存储的数据,以及通过确定以纠正读电压读取的数据中发生的读错误是可纠正的还是不可纠正的,进一步确定存储单元是否是可纠正的。
文档编号G06F11/00GK102033785SQ20101029336
公开日2011年4月27日 申请日期2010年9月26日 优先权日2009年10月1日
发明者庆允英, 金善择 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1