快闪存储器和平衡磨损率的闪存编程方法

文档序号:6749984阅读:183来源:国知局
专利名称:快闪存储器和平衡磨损率的闪存编程方法
技术领域
本发明涉及一种快闪存储器,尤其是,涉及一种用于平衡磨损率快闪存储器的快 闪存储器和快闪存储器编程方法。
背景技术
快闪存储器,作为及非易失性存储器半导体,其作为PC或服务器中的硬盘的替代 存储介质已在许多领域成为关注的焦点,由于快闪存储器耐冲击、具有低功耗可操作性并 具有高集成度,其同样也用于便携终端和嵌入式系统。不像硬盘之类的一般数据块,快闪存储器需要执行对应位置的擦除操作以更新一 次存储的数据。也就是说,在所有存储器存储单元的值被初始化为“ 1,,的状态下,通过将所需存储 器存储单元的值改变为“0”,来执行快闪存储器的写入操作。如上所述,要更新存储的数据, 在对应位置的每个存储单元都被初始化为“ 1 ”,之后再次执行写入操作。在这种情况下,读取操作和写入操作在页面单元被执行。所述快闪存储器的页面 表示具有物理连续地址的字节。擦除操作不像读取操作和写入操作,其在数据块单元被执 行。所述快闪存储器的数据块表示多个物理连续页面。根据现有实施例,页面的大小为512B 至4KB,数据块的大小为16KB至512KB。根据传统的示例性实施例,所述快闪存储器的页面分为主要区域和辅助区域。所 述主要区域存储数据,而辅助区域存储被存储在主要区域中的数据相关信息和页面的相关 信息。存储在辅助区域中的信息被称为元信息(meta-information)。元信息的例子包括循 环冗余校验(CRC ;Cyclic Redundancy Check)或纠错码(ECC ;Error Correction Codes) 信息。在写入操作或读取操作期间,当检测页面错误或检验页面物理损坏时,可使用所述 CRC 或 ECC。快闪存储器的所有读取、写入和擦除操作可能会对存储数据的存储器存储单元造 成电子压力并导致微小的磨损(minute wear) 0因此,长时间使用快闪存储器时,存储器存 储单元最后可能会进入的无法正常区分“ 1,,和“0”的状态。由于写入操作和擦除操作的磨损率远远超过读取操作的磨损率,为延长快闪存储 器寿命,需要尽可能地努力减少发生在单一存储器存储单元内的写入操作和擦除操作的次 数。用于平衡磨损率的现有发明,是在数据块程度内,也就是用于擦除操作的单元内 平衡磨损率方法。也就是,通过录制擦除操作和将擦除操作的次数维持在等于或少于建议 的一定次数来管理快闪存储器的方法。用于平衡磨损率的所述现有方法,假设属于单一数 据块的每个存储器存储单元都具有相同的磨损率。此外,现有方法可能无法考虑每个存储 器存储单元级的磨损率差异。

发明内容
技术目的本发明的一个方面,提供一种使用新的编程体系来延长存储器存储单元寿命的装 置和方法。本发明的另一个方面,还提供一种使用新的数据检测体系来平衡存储器存储单元 级的磨损率的装置和方法。技术方案根据本发明的一个方面,提供一种内存装置,其包括存储器存储单元阵列;反转决 定单元,其通过基于数据页面中“ 1,,和“0”的数目反转或不反转所述数据页面来生成编程页 面;编程单元,其在所述存储器存储单元阵列中存储生成的所述编程页面;和数据检验单元, 其读取存储在所述存储器存储单元阵列中的所述编程页面,以根据读取的所述编程页面中是 否存在错误来从所述编程页面恢复所述数据页面,并输出恢复的所述数据页面。根据本发明的另一个方面,提供一种内存装置,其包括存储器存储单元阵列;页 面划分单元,其将数据页面划分为多个数据子页面;反转决定单元,其通过基于每个数据子 页面中的“ 1,,和“0”的数目反转或不反转每个所述数据子页面,生成对应每个所述数据子 页面的每个编程页面;和编程单元,其将每个生成的编程页面存储至所述存储器存储单元 阵列。根据本发明的另一个方面,提供一种内存编程方法,其包括基于数据页面中“1” 和“0”的数目,决定是否执行所述数据页面的反转;根据是否执行所述数据页面的反转的 决定,从所述数据页面生成编程页面;在存储器存储单元阵列中存储生成的所述编程页面; 读取存储在所述存储器存储单元阵列中的所述编程页面;根据读取编程页面中是否存在错 误,决定是否执行所述读取编程页面的反转;根据是否执行所述读取编程页面的反转的决 定,从所述读取编程页面恢复所述数据页面。根据本发明的另一个方面,提供一种内存编程方法,其包括将数据页面划分为多 个数据子页面;基于每个所述数据子页面中“1”和“0”的数目,决定是否执行每个所述数据 子页面的反转;根据是否执行每个所述数据子页面的反转的决定,从每个所述数据子页面 生成对应每个所述数据子页面的编程页面;和将每个生成的编程页面存储至所述存储器存 储单元阵列。


图1示出根据一个示例性实施例的快闪存储器;图2示出根据另一个示例性实施例的快闪存储器;图3示出根据另一个示例性实施例的存储器存储单元阵列;图4示出根据一个示例性实施例的在快闪存储器中执行的内存编程方法;图5是示出在图4的快闪存储器中执行的存储器编程方法的操作流程图;图6是示出根据一个示例性实施例的存储器读取方法的操作流程图;图7示出根据另一个示例性实施例的在快闪存储器中执行的内存编程方法;和图8是示出根据另一个示例性实施例的存储器读取方法操作流程图。
具体实施例方式虽然本发明的几个实施例将被展示和描述,本发明不仅限于所描述的示例性实施 例,其中,相同数字始终表示相同元素。作为用于擦除操作目标的数据块中的每个快闪存储器存储单元,不具有同等水平 的磨损率。擦除操作就是将对应数据块中的每个存储器存储单元的值初始化为“1”。在执 行擦除操作的数据块中,有具有从“0”到“ 1,,的变化值的存储器存储单元,和不发生改变的 具有维持为“1”的值的存储器存储单元。在这种情况下,所述具有通过写入操作而最初从 “ 1,,改变为“0”的值并之后通过擦除操作而从“ 1,,改变为“0”的存储器存储单元,比具有维 持为“ 1”的值的存储器存储单元具有更大的磨损率。因此,由于一些存储器存储单元具有即使反复执行写入操作和擦除操作也一直维 持为“1”的值,所以其对应数据块的磨损率降低,因此可延长整个快闪存储器信元的寿命。本发明的快闪存储器,可提供一种对每个存储器存储单元最小化磨损率的方法, 由此可以延长整个快闪存储器的寿命。当作为用于写入操作目标的页面中,具有值“0”的比特的数目大于具有值“1”的 比特的数量时,本发明的快闪存储器可反转“0”和“1”,并存储反转的值,由此最小化具有 改变为“0”的值的存储器存储单元的数目。图1示出根据一个示例性实施例的快闪存储器100。参考图1,所述快闪存储器100包括存储器存储单元阵列110、编程单元120、反转 决定单元130和数据检验单元140。所述存储器存储单元阵列110可包括页面111。所述编程单元120、反转决定单元130和数据检验单元140中的每一个,可被包括 在所述快闪存储器的外围电路(peripheral circuit)或快闪存储器100预定的计算机系 统的控制器中。所述反转决定单元130,通过基于数据页面中的“1”和“0”的数目反转或不反转数 据页面来生成编程页面。在本说明书中,作为被同时编程并被快闪存储器100的控制器(未示出)处理的 单元的数据,被称为数据页面。此外,在说明书中,作为被同时编程并被物理编程至存储器 存储单元阵列110的页面111的单位的数据,被称为编程页面。贯穿整个说明书指示的项目“数据页面”和“编程页面”,被上面描述的功能和使用 所规定,但是,其权利范围不局限于所述项目。所述反转决定单元130,当数据页面中“0”的数目大于“ 1,,的数目时,通过反转数 据页面生成编程页面。对存储器存储单元阵列110的物理编程操作,可以是将值从“0”改变为“1”的操 作,但是不再加以详细介绍。在这种情况下,当数据页面中“1”的数目大于“0”的数目时, 所述反转决定单元130可反转数据页面并生成编程页面。由于快闪存储器100用于减少存储器存储单元的磨损率,所以改变对应物理编程 操作的反转决定单元130的操作对那些精通该技术的人来说是显而易见的。所述编程单元120,可在存储器存储单元阵列中存储生成的编程页面111。在这种情况下,所述编程单元120的数据存储操作,可以是在一定时间内对页面111中的每个存储器存储单元应用高电压的操作。所述高电压的施加可包括每个存储器存 储单元上的压力,并可能导致每个存储器存储单元的物理损坏。所述编程单元120的数据存储操作,可以是改变页面111中的每个存储器存储单 元的阈值电压的操作。由于数据存储操作可能会增加每个存储器存储单元的磨损率,所以 调整数据存储操作以减少具有变化的阈值电压的存储器存储单元的数目是可取的。根据示例性实施例的所述反转决定单元130,可在编程单元120的数据存储操作 期间,决定是否在页面111的存储器存储单元中执行数据页面的反转,以调整使具有变化
的阈值电压的存储器存储单元的数目少于具有不变化的阈值电压的存储器存储单元的数目。所述快闪存储器100,可在如所上述的配置中减少页面111中的存储器存储单元 的压力,并还可以减少对存储器存储单元的磨损率和物理损坏。所述快闪存储器100可不存储反转决定单元130是否在存储器存储单元阵列110 中反转数据页面的相关信息。所述数据检验单元140可读取存储在存储器存储单元阵列110中的页面111中的 编程页面。数据检验单元140可根据读取编程页面中是否存在错误从编程页面恢复数据页 面,并输出恢复的所述数据页面。当读取编程页面中存在错误时,所述数据检验单元140,可反转读取编程页面并恢 复数据页面。当数据页面和编程页面之间的关系的相关信息没有存储在存储器存储单元 阵列110中时,所述数据检验单元140可假设数据页面是没有被反转就作为编程页面生成 的,并可对读取编程页面执行错误检测。当读取编程页面中存在错误时,所述数据检验单元 140,可检验所述关于编程页面的假设是不正确的。当读取编程页面中存在错误时,数据检 验单元140可反转读取编程页面以恢复数据页面,并输出恢复的数据页面。根据应用编程,存储在存储器存储单元阵列110中的“0”的频率可能比存储在存 储器存储单元阵列中的“1”的频率高。在这种情况下,数据检验单元140可假设数据页面 被反转和作为编程页面生成,并可反转读取编程页面并执行错误检测。数据检验单元140读取的对编程页面的错误检测方法,包括来自包括在读取编程 页面中的错误控制代码(ECC)的错误的检测、读取编程页面的ECC解码、和包括在读取编程 页面中的奇偶校性(parity)检测。所述快闪存储器100,可以不单独存储在存储器存储单元阵列110中数据页面是 否被反转的相关信息,并可在恢复数据页面期间使用已包含在数据页面中的ECC或奇偶 性,由此可以减少用于存储数据的空间的开销(overhead)。图2示出根据另一个示例性实施例的快闪存储器200。参考图2,快闪存储器200包括存储器存储单元阵列210、编程单元220、反转决定 单元230和页面划分单元240。所述存储器存储单元阵列210可包括页面211。所述编程单元220、反转决定单元230、和页面划分单元240中的每一个,都可包含 在快闪存储器的外围电路或快闪存储器200的控制器中。所述页面划分单元240,可将数据页面划分为多个数据子页面。反转决定单元230,决定是否对每个数据子页面执行反转。反转决定单元230,通过基于每个数据子页面中的“ 1,,和“0”的数目反转或不反转每个数据子页面,生成对应每 个数据子页面的每个编程页面。页面划分单元240将单一数据页面划分为四个数据子页面的示例性实施例如图2 所示。反转决定单元230决定是否对四个数据子页面中每一个执行反转所述编程单元220,在存储器存储单元阵列210的页面211中存储每个生成的编程 页面。所述编程单元220在存储器存储单元阵列中存储表示编程页面是否通过反转数 据子页面而生成的标志旗。反转标志旗可针对每个数据子页面生成。所述编程单元220可 在页面211的辅助区域存储所述反转标志旗。反转决定单元230可决定是否对每个数据子页面执行反转。当第一数据子页面中 的“0”的数目大于“ 1,,的数目时,反转决定单元230可反转第一数据子页面并生成第一编 程页面,而当第二数据子页面中的“0”的数目不大于“ 1”的数目时,反转决定单元230可不 反转第二数据子页面并生成第二编程页面。编程单元220的数据存储操作,可以是改变页面211中的每个存储器存储单元的 阈值电压的操作。在这种情况下,反转决定单元230可在编程单元220的数据存储操作期 间,决定是否执行所述数据页面的反转,以调整使页面211中的存储器存储单元中具有变 化的阈值电压的存储器存储单元的数目少于具有不变化的阈值电压的存储器存储单元的 数目。快闪存储器200可进一步包括数据检验单元(未示出)。所述数据检验单元可读 取存储在存储器存储单元阵列210的页面211中的每个编程页面和存储在存储器存储单元 阵列210中的反转标志旗。所述数据检验单元,可根据读取反转标志旗通过反转或不反转 读取编程页面来恢复数据页面。所述数据检验单元,可通过将恢复的数据子页面结合来恢 复数据页面。作为另一个示例性实施例,快闪存储器200可进一步包括数据检验单元(未示 出)。所述数据检验单元,可读取存储在所述存储器存储单元阵列210中的页面211中的 每个编程页面。所述数据检验单元,可根据每个读取编程页面中是否存在错误从每个编程 页面恢复每个数据子页面。所述数据检验单元,可通过将恢复的数据子页面结合来恢复数 据页面。在这种情况下,快闪存储器200可不在存储器存储单元阵列210存储是否每个数 据子页面被反转的相关信息。所述数据检验单元可决定是否对每个读取编程页面执行反转 面。也就是说,当第一读取编程页面中存在错误时,所述数据检验单元,反转第一读取编程 页面并生成第一数据子页面,当第二读取编程页面中不存在错误时,所述数据检验单元,可 不反转第二读取编程页面并生成第二数据子页面。所述数据检验单元,可执行解码每个读 取编程页面的ECC或检查所述读取编程页面奇偶性,以检验所述错误的存在。另一个本发明的快闪存储器(未示出),当在页面的辅助区域中存储了作为元信 息的ECC或奇偶性时,即使其没有存储每个区域的反转信息,其也可检验页面是否在读取 操作中被反转,并由此可以恢复正常的数据。图3示出根据另一个示例性实施例的存储器存储单元阵列。参考图3,存储器存储单元阵列包括(N+1)个数据块。
所述存储器存储单元阵列包括数据块0 310、数据块1 320、和数据块N 340。每个 数据块都是用于执行擦除操作的单位。每个数据块包含M个页面。在图3中,包括页面0 331、页面1 332、页面2 333、页面3 334等。每个页面都是用于执行编程操作的单元。当存储在单一页面中的数据被更新时,更新的数据被存储在包含在被擦除和初始 化的页面中的整个数据块之后。图4示出根据一个示例性实施例的在快闪存储器100中执行的存储器编程方法。参考图4,初始化的数据块K 410可包括四个页面。为了方便描述,假设在图4的 存储器编程方法中的数据块已被初始化。由控制器转移至快闪存储器100的数据页面,是第一数据页面431和第二数据页 面441。第一数据页面和第二数据页面的分别对应初始化的数据块K 410的第二页面和第
三页面。所述快闪存储器100比较第一数据页面431中的“0”的数目和“ 1 ”的数目。为了 方便描述,假设第一数据页面431是8比特。由于第一数据页面431中的“0”的数目为六 个而“ 1,,的数目为两个,快闪存储器可反转第一数据页面431并生成第一编程页面432。所述快闪存储器100比较第二数据页面441中的“0”的数目和“ 1 ”的数目。由于 第一数据页面441中的“0”的数目为两个而“ 1,,的数目为六个,快闪存储器可不反转第二 数据页面441并生成第二编程页面442。所述快闪存储器100,可将被生成的第一编程页面432存储在数据块K 420的第二 页面422中,并将被生成的第二编程页面442存储在数据块K 420的第三页面423中。在数据块K 420中的第一页面421和第四页面424保持处于初始化状态。图5是示出在图4的存储器编程方法的操作流程图。参考图5,在操作S510中,存储器编程方法计算数据页面中的“1”和“0”的数目。所述存储器编程方法,可基于计算的“ 1,,和“0”的数目,决定是否执行所述数据页 面的反转。所述存储器编程方法,可基于是否执行反转的决定,从数据页面生成编程页面。在操作S520中,当数据页面中“0”的数目大于“1”的数目时,所述存储器编程方 法反转“0”和“ 1 ”。在这种情况下,存储器编程方法生成具有“0”和“ 1,,被反转了的数据的 编程页面。当数据页面中“0”的数目不大于“ 1,,的数目时,存储器编程方法可生成具有数据 页面的编程页面。在操作S530中,所述存储器编程方法,在存储器存储单元阵列中存储生成的编程 页面。图6是示出根据另一个示例性实施例的存储器读取方法的操作流程图。参考图6,在操作S610中,所述存储器读取方法,读取存储在存储器存储单元阵列 中的编程页面。在操作S620中,所述存储器读取方法,检验在读取编程页面中是否检测到了错误。
所述存储器读取方法,可根据所述读取编程页面中是否存在错误,决定是否执行 所述读取编程页面的反转。所述内存读取方法,可基于是否执行反转的决定,从读取编程页面恢复数据页面。在操作S630中,当在所述读取编程页面中检测到了错误时,所述存储器读取方 法,反转读取编程页面中的“0”和“ 1 ”。在操作S640中,所述存储器读取方法,检验反转的编程页面中是否检测到了错误。当在反转的编程页面中检测到了错误时,所述存储器读取方法,决定读取编程页 面包含错误。在这种情况下,所述存储器读取方法可再次读取编程页面。当在反转的编程页面中没检测到错误时,所述方法将反转的编程页面恢复为数据 页面。图7示出根据另一个示例性实施例的在快闪存储器中执行的存储器编程方法。参考图7,初始化的数据块K 710包括四个页面。为了方便描述,假设图7的存储 器编程方法中的数据块已被初始化。由控制器转移至存储器装置200的数据页面对应初始化的数据块K 710的第二页面。所述快闪存储器200,将所述数据页面划分为两个数据子页面。划分出的第一数据子页面731包括一个“0”和三个“1”。快闪存储器200无需反转第一数据子页面731,就可生成第一编程子页面733。划分出的第二数据子页面732包括三个“0”和1个“1”。快闪存储器200,通过反转第二数据子页面732,生成第二编程子页面734。快闪存储器200,在数据块K 720中的第二页面722中存储生成的第一编程子页面 733和第二编程子页面734。数据块720K中的第一页面721、第三页面723和第四页面724保持在初始化状态。图8是示出在快闪存储器中执行的存储器读取方法操作流程图。参考图8,在操作S810中,所述存储器读取方法,从存储器存储单元阵列210读取 编程页面。在操作S820中,所述存储器读取方法,计算编程页面中划分的区域的数目。在这 种情况下,编程页面的划分的相关信息,可作为元信息存储在编程页面的辅助区域。在操作S830中,所述存储读取方法,检验在读取编程页面中是否检测到了错误。当没有检测到错误时,所述存储读取方法,可恢复读取编程页面作为数据页面,并 输出恢复的数据页面至控制器。在操作S840中,当检测到了错误时,所述存储器读取方法,可针对读取编程页面 搜索未检查的划分的区域的反转结合。在操作S850中,所述存储器读取方法,根据检索的反转结合,反转划分的区域中 的 “0” 和 “1”。在操作S830中,所述存储器读取方法,再次检验是否在反转的编程页面中检测到 了错误。作为操作S840的搜索结果,当没有更多的反转结合时,所述存储器读取方法,可最终决定所述读取编程页面包含错误。当最终决定为所述页面包含错误时,所述存储器读取方法,可从存储器存储单元 阵列再次读取编程页面。当划分的区域的数目是N = 2k时,所述存储器读取方法,可使用作为在辅助区域 中的元信息存储的值,或预设为k的值。所述存储器读取方法,可使用ECC或奇偶校验对页 面执行错误检测,且作为错误检测的结果,当不存在错误时,所述存储器读取方法可决定为 不存在反转的区域。当编程页面被划分为N个区域时,可最多2N次反复进行使用ECC或奇偶校验的错 误检测,并可进行使用硬件电路的并行处理。再次参考图2,所述页面划分单元240,可将数据页面划分一定数目的具有一定大 小的数据子页面,以最小化物理存储的“0”的数目。在这种情况下,划分和反转的有关信息, 可被存储在页面211的辅助区域。所述存储的划分和反转信息,可用于在读取操作期间恢 复数据页面。当将数据页面划分为四个数据子页面时,所述页面划分单元240,可允许第一数据 子页面包括a比特、第二数据子页面包括b比特、第三数据子页面包括c比特和第四个数据 子页面包括d比特。在这种情况下,编程页面220可存储关于页面211中的四个数据子页面的四个划 分信息。每个划分信息可包括划分的数据子页面的大小a比特、b比特、c比特和d比特。 所述编程单元220可将四个划分信息与页面211中每个数据子页面是否被反转的相关反转
信息一起存储。当划分和反转信息是元信息时,由于元信息表示每个数据子页面的大小(比特), 且每个数据子页面是否被反转,当每个数据子页面的大小被表示为X比特时,所述元信息 可能需要(χ+1)比特。随着划分的数据子页面数目的增加,元信息的大小也增加,并且用于恢复数据页 面的处理也变得复杂。所述页面划分单元240,可基于元信息的大小和恢复处理的复杂性决 定划分的最佳数目。根据本发明,可通过使用新的编程方法,延长快闪存储器的寿命。此外,根据本发明,可通过使用新的编程方法和新的数据检测方法,均衡存储器存 储单元的负载程度。根据示例性实施例的所述内存编程方法和内存读取控制方法,可被记录在包括由 计算机执行各种操作的编程指令的计算机可读介质中。所述介质还可包括,单个或组合的 编程指令、数据文件、数据结构等。所述媒体和编程指令,可以是用于本示例性实施例目的 而特别设计构成的,或者是擅长电脑软件技术的人员熟知并可以使用的。计算机可读介质 的例子包括硬盘、软盘和磁带之类的磁介质,CD ROM和DVD之类的光记录介质,光盘之类 的磁光介质,以及专门配置为存储和执行编程指令的硬件装置如只读内存(ROM)、随机存取 内存(RAM)、快闪存储器等。编程指令的例子不仅包括机器代码,如由编译器产生的,也可包 括含有可由计算机使用解译器执行的更高级代码的文件。所述硬件装置,可配置为为执行 本示例性实施例的操作而运行的一个或一个以上软件模块。根据示例性实施例的快闪存储器和/或内存控制器可使用各种类型的封装(package)来实施。例如,快闪存储器和/或内存控制器可使用下列封装来实施,如 PoPs (Package on Packages)、球栅阵列(Ball Grid Arrays :BGAs)、芯片级封装(Chip Scale Packages :CSPs)、塑料有引线芯片载体(Plastic Leaded Chip Carrier :PLCC)、 塑料双列直插式封装(Plastic DualIn-Line Package :PDIP)、Die in Waffle Pack、Die in Wafer Form、板上芯片封装(Chip On Board :COB)、陶瓷双列直插式封装(Ceramic DualIn-Line Package :CERDIP)、塑料公制四方扁平封装(Plastic Metric Quad Flat Pack :MQFP)、四方扁平封装(Quad Flat pack :QFP)、小外形集成电路(Small Outline Integrated Circuit :SOIC)、收缩小外形封装(Shrink Small Outline Package :SSOP)、薄 型小外形封装(Thin Small Outline :TSOP)、薄型四方扁平封装(Thin Quad Flat pack TQFP)、系统封装(System In Package :SIP)、多芯片封装(Multi Chip Package :MCP)、晶圆 级制备封装(Wafer-level Fabricated Package :WFP)、晶圆级堆叠工艺封装(Wafer-Level Processed Stack Package :WSP)等。所述快闪存储器和/或存储器控制器可构成内存卡。在这种情况下,存储器控 制器可被构建为用于与外部装置通信,如使用下列各种类型协议中任何一种的主机,即 通用串行总线(USB)、多媒体卡(MMC)、外设部件互连标准总线(Peripheral Component Interconnect-Express :PCI-E)、串高级技术附件(Serial Advanced Technology Attachment :SATA)、并行ATA(Parallel ATA :PATA)、小型计算机系统接口(Small Computer System Interface :SCSI)、增强小型装置接口 (Enhanced Small Device Interface :ESDI) 禾口集成驱动器电子(Integrated Drive Electronic :IDE)。所述快闪存储器可为非易失性存储器,即使在电源被切断时其存储的数据也可以 保持。随着移动装置使用的增加,如手机、个人数字助理(PDA)、数码相机、便携式游戏机和 MP3播放器,快闪存储器可被更广泛地用作数据存储和代码存储。快闪存储器可用于家庭电 器,如高清晰度电视(HDTV)、数字视频光盘(DVD)、路由器和全球定位系统(GPS)。根据示例性实施例的计算机系统可包括与总线、用户界面、调制解调器如基带芯 片组、存储器控制器和快闪存储器电子连接的微处理器。快闪存储器可经由存储器控制器 存储N位数据。所述N位数据已经或者将要被微处理器处理,且N可以是1或大于1的整 数。当计算机系统是移动装置时,可额外提供电池来供应用于计算机系统的操作电压电源。对于掌握本技术一般技巧的人员来说,很明显,根据示例性实施例的计算机系统 可进一步包括应用编程芯片组、摄像头图像处理器(camera image processor :CIS)、移动 动态随机存取内存体(Dynamic Random Access Memory =DRAM)等。所述存储器控制器和快 闪存储器可构成使用非易失性存储器来存储数据的固态驱动器/磁盘(SSD)。虽然本发明一些实施例已被展示和描述,但是本发明不仅限于所描述的实施例。 相反,本技术领域的技术人员可以理解,在不脱离本发明的原则和精神范围内可对这些实 施例执行改变,其范围由权利要求书及其等同物决定。
权利要求
一种存储器,包括存储器存储单元阵列;反转决定单元,其通过基于数据页面中“1”和“0”的数目反转或不反转所述数据页面来生成编程页面;编程单元,其在所述存储器存储单元阵列中存储生成的所述编程页面;和数据检验单元,其读取存储在所述存储器存储单元阵列中的所述编程页面,以根据读取的所述编程页面中是否存在错误来从所述编程页面恢复所述数据页面,并输出恢复的所述数据页面。
2.如权利要求1所述的存储器,其中,所述反转决定单元,当所述数据页面中“0”的数 目大于“ 1,,的数目时,通过反转所述数据页面生成所述编程页面。
3.如权利要求1所述的存储器,其中,所述反转决定单元,在所述编程单元存储所述编 程页面的同时,决定是否执行所述数据页面的反转,以使所述存储器存储单元陈列中的阈 值电压发生变化的存储器存储单元的数目少于阈值电压不发生变化的存储器存储单元的 数目。
4.如权利要求1所述的存储器,其中,所述数据检验单元,当读取编程页面存在错误 时,反转所述读取编程页面以恢复所述数据页面。
5.如权利要求1所述的存储器,其中,所述数据检验单元,通过解码所述读取编程页面 的纠错码(ECC)或检查所述读取编程页面的奇偶性,检验所述错误的存在。
6.如权利要求1所述的存储器,其中,所述编程页面是不是通过所述数据页面的反转 而生成的相关信息,不被存储在所述存储器存储单元阵列中。
7.一种存储器,包括存储器存储单元阵列;页面划分单元,其将数据页面划分为多个数据子页面;反转决定单元,其通过基于每个数据子页面中的“ 1,,和“0”的数目反转或不反转每个 所述数据子页面,生成对应每个所述数据子页面的每个编程页面;和编程单元,其将每个生成的编程页面存储至所述存储器存储单元阵列。
8.如权利要求7所述的存储器,其中,所述编程单元,在所述存储器存储单元阵列中存 储表示每个所述数据子页面是否被反转的反转标志旗。
9.如权利要求8所述的存储器,进一步包括数据检验单元,其读取存储在所述存储器存储单元阵列中的每个编程页面和存储在所 述存储器存储单元阵列中的所述反转标志旗,以根据读取反转标志旗通过反转或不反转读 取编程页面来恢复数据页面,并输出恢复的所述数据页面。
10.如权利要求7所述的存储器,进一步包括数据检验单元,其读取存储在所述存储器存储单元阵列中的每个编程页面,以根据每 个读取编程页面中是否存在错误从所述编程页面恢复所述数据子页面,以将每个恢复的所 述数据子页面结合来恢复所述数据页面,并输出恢复的所述数据页面。
11.如权利要求10所述的存储器,其中,所述数据检验单元,当所述读取编程页面中存 在错误时,通过反转每个读取编程页面来恢复每个所述数据子页面。
12.如权利要求10所述的存储器,其中,所述数据检验单元,通过解码每个读取编程页面的ECC或检查所述读取编程页面奇偶性,检验所述错误的存在。
13.如权利要求7所述的存储器,其中,所述反转决定单元,当每个所述数据子页面中 的“0 ”的数目大于“ 1”的数目时,通过反转每个所述数据子页面,生成所述编程页面。
14.如权利要求7所述的存储器,其中,所述反转决定单元,在所述编程单元存储每个 编程页面的同时,决定是否执行每个数据子页面的反转,以使所述存储器存储单元阵列中 的阈值电压发生变化的存储器存储单元的数目少于阈值电压不发生变化的存储器存储单 元的数目。
15.一种存储器编程方法,所述方法包括基于数据页面中“1”和“0”的数目,决定是否执行所述数据页面的反转;根据是否执行所述数据页面的反转的决定,从所述数据页面生成编程页面;在存储器存储单元阵列中存储生成的所述编程页面;读取存储在所述存储器存储单元阵列中的所述编程页面;根据读取编程页面中是否存在错误,决定是否执行所述读取编程页面的反转;和根据是否执行所述读取编程页面的反转的决定,从所述读取编程页面恢复所述数据页
16.如权利要求15所述的方法,其中,所述从所述数据页面生成所述编程页面的步骤, 当所述数据页面中的“0”的数目大于“ 1”的数目时,决定执行所述数据页面的反转。
17.如权利要求15所述的方法,其中,所述决定是否执行所述读取编程页面的反转的 步骤,当所述读取编程页面中存在错误时,决定执行所述读取编程页面的反转。
18.一种存储器编程方法,所述方法包括 将数据页面划分为多个数据子页面;基于每个所述数据子页面中“ 1,,和“0”的数目,决定是否执行每个所述数据子页面的 反转;根据是否执行每个所述数据子页面的反转的决定,从每个所述数据子页面生成对应每 个所述数据子页面的编程页面;和将每个生成的编程页面存储至存储器存储单元阵列。
19.如权利要求18所述的方法,进一步包括在所述存储器存储单元阵列中存储表示是否每个所述数据子页面被反转的反转标志旗;读取存储在所述存储器存储单元阵列中的每个编程页面和存储在所述存储器存储单 元阵列中的所述反转标志旗;通过根据读取所述反转标志旗反转或不反转每个读取编程页面,恢复每个所述数据子 页面;和通过将每个恢复的数据子页面结合,恢复所述数据页面。
20.如权利要求18所述的方法,进一步包括读取所述存储器存储单元阵列中的存储的每个编程页面; 根据每个读取程序页面中是否存在错误,决定是否执行每个编程页面的反转; 根据是否执行每个所述读取编程页面的反转的决定,从每个读取编程页面恢复每个所 述数据子页面;和通过将每个恢复的数据子页面结合,恢复所述数据页面。
21. 一种存储执行权利要求15至20任一项所述方法的程序的计算机可读记录装置。
全文摘要
本发明公开了一种快闪存储器和可以平衡磨损率的快闪存储器编程方法。所述快闪存储器包括存储器存储单元阵列;反转决定单元,其通过基于数据页面中“1”和“0”的数目反转或不反转所述数据页面来生成编程页面;编程单元,其在所述存储器存储单元阵列中存储生成的所述编程页面;和数据检验单元,其读取存储在所述存储器存储单元阵列中的所述编程页面,以根据读取的所述编程页面中是否存在错误来从所述编程页面恢复所述数据页面,并输出恢复的所述数据页面,由此可以平衡存储器存储单元的磨损率。
文档编号G11C16/34GK101999148SQ200880127721
公开日2011年3月30日 申请日期2008年8月25日 优先权日2007年12月27日
发明者朴汉默, 郑贤模, 金范洙 申请人:韩商英得联股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1