用于非易失性存储器的基于压缩的耗损均衡的制作方法

文档序号:6585627阅读:155来源:国知局
专利名称:用于非易失性存储器的基于压缩的耗损均衡的制作方法
技术领域
本公开描述了关于非易失性存储器的系统和技术。
背景技术
装置和系统可以使用例如闪存的非易失性存储器存储和检索数据。例如,数码相 机可以向非易失性存储器存储图像。在另一个例子中,诸如MP3播放器的数字媒体播放器 可以从非易失性存储器中读取数字音频文件并播放该音频文件的内容。例如移动电话或个 人数字助理(PDA)的移动装置可以从一个或多个非易失性存储器读取数据和向其中写入 数据。 装置和系统可以对非易失性存储器执行多个操作,例如读取和编程操作。各种类 型的编程操作可以包括写入和擦除数据。在此类存储器中擦除数据可以包括将数据区域标 志为无效或者未编程,或者可以包括向数据区域写入数据,以实现擦除。诸如闪存之类的非 易失性存储器可以被分为多个数据区域。每个数据区域可以单独寻址和访问。相应地,操 作可包括为一个或多个数据区域或一个数据区域的一部分获取地址。此外,一个数据区域 可以被划分为单独的位(bit)或者诸如字节之类的更大的聚集数据单元。

发明内容
本公开包括了用于基于压縮的非易失性存储器结构的耗损均衡(wearleveling) 的系统和技术。 用于基于压縮的耗损均衡的系统和技术可以包括获取要存储在非易失性存储器 中的信息,该信息包括数据段;压縮所述数据段中的数据;基于通过压縮获得的压縮结果, 将填充数据(pad data)包含到数据段的一个或多个部分中;以及写入数据段的数据。
这些和其他方面可以包括以下特征当中的一个或多个特征。将填充数据包含到数 据段的一个或多个部分中可以包括将填充数据插入数据段中的插入位置,该插入位置是根 据与非易失性存储器的数据扇区相关的编程计数器确定的。实施方式可以包括通过数据 段中的不同填充数据插入位置进行循环,以辅助对于非易失性存储器的物理写入操作的分 摊。将填充数据包含到数据段的一个或多个部分中可以包括将填充数据的至少一部分插入 到压縮后数据的不同部分之间。将填充数据包含到数据段的一个或多个部分中可以包括将 填充数据的不同部分插入到数据段内的不同位置。实施方式可以包括基于压縮后数据生 成错误检测信息;以及将错误检测信息写入到非易失性存储器。实施方式可以包括基于 压縮后数据和填充数据生成错误检测信息;以及将错误检测信息写入到非易失性存储器。 获取要存储在非易失性存储器中的信息可包括将信息分段为多个数据段。填充数据可包括 被设置为与非易失性存储器的擦除位状态相关的逻辑状态的一个或多个位。写入数据可包 括写入表示非易失性存储器的非擦除位状态的数据段的数据。 所述系统和技术可被实施于电子电路、计算机硬件、固件、软件或它们的组合中, 例如说明书中公开的结构性手段,以及结构性的等效手段。这可包括至少一个包含程序的
4计算机可读介质,该程序可操作用于使一个或多个数据处理设备(例如,包括可编程处理 器的信号处理装置)执行所述操作。因而,程序实施方式可以通过所公开的方法、系统或设 备来实现,而设备实施方式也可通过所公开的系统、计算机可读介质或方法实现。类似的, 方法实施方式可通过所公开的系统、计算机可读介质或者设备来实现,系统实施方式可通 过所公开的方法、计算机可读介质或者设备来实现。 例如,以下公开的( 一个或多个)实施例可以通过各种系统和设备来实施,该设备 包括但不限于专用数据处理设备(例如无线接入点、远程环境监视器、路由器、交换机、计 算机系统元件、媒体接入单元),移动数据处理设备(例如无线客户端、移动电话、个人数字 助理(PDA),移动计算机,数码相机),通用数据处理装置(例如微计算机、服务器、大型计算 机、超级计算机),或者这些的组合。 因而,根据所述系统和技术的另一个方面,系统可包括配置用来存储数据的非易 失性存储器结构,与非易失性存储器结构通信的控制器,和与控制器通信的处理器。该处 理器可配置为经由控制器与非易失性存储器结构通信。该控制器可被配置以执行操作,该 操作包括获取要存储在非易失性存储器结构中的信息,该信息包括数据段;压縮数据段 内的数据;基于通过压縮获得的压縮结果,将填充数据包括在数据段的一个或多个部分中; 并且向非易失性存储器结构写入数据段的数据。 这些以及其它方面可包括以下特征当中的一个或多个特征。将填充数据包含到数 据段的一个或多个部分中可以包括将填充数据插入数据段中的插入位置,该插入位置是根 据与非易失性存储器结构的数据扇区相关的编程计数器确定的。所述操作可以包括通过 数据段中的不同填充数据插入位置进行循环,以辅助对于非易失性存储器结构的物理写入 操作的分摊。将填充数据包含到数据段的一个或多个部分中可以包括将填充数据的至少一 部分插入到压縮后数据的不同部分之间。将填充数据包含到数据段的一个或多个部分中可 以包括将填充数据的不同部分插入到数据段内的不同位置。非易失性存储器结构可包括闪 存,而逻辑状态可相应于逻辑1。 另一方面,系统和装置可包括配置用于存储数据的非易失性存储器结构,以及与 所述非易失性存储器结构通信的控制器。所述控制器可被配置以执行操作,该操作包括获 取要存储在非易失性存储器结构中的信息,该信息包括数据段;压縮数据段内的数据;基 于通过压縮获得的压縮结果,将填充数据包含到数据段的一个或多个部分中;并且向非易 失性存储器结构写入数据段的数据。 这些以及其它方面可包括以下特征当中的一个或多个特征。将填充数据包含到数 据段的一个或多个部分中可以包括将填充数据插入数据段中的插入位置,该插入位置是根 据与非易失性存储器结构的数据扇区相关的编程计数器确定的。所述操作可以包括通过 数据段中的不同填充数据插入位置进行循环,以辅助对于非易失性存储器结构的物理写入 操作的分摊。将填充数据包含到数据段的一个或多个部分中可以包括将填充数据的至少一 部分插入到压縮后数据的不同部分之间。将填充数据包含到数据段的一个或多个部分中可 以包括将填充数据的不同部分插入到数据段内的不同位置。非易失性存储器结构可包括闪 存,而逻辑状态可相应于逻辑1。 实施说明书中所描述的主题可以实现如下的一个或多个潜在优点。所述系统和技 术的一个或多个可以增加非易失性存储器的寿命,并可提高非易失性存储器存储装置的吞吐量(throughput)。所述系统和技术的一个或多个可以最小化非易失性存储器在编程操作 期间的电流,从而能够节能。所述系统和技术的一个或多个可以提高数据存储可靠性并能 提供更高等级的服务质量。 以下将结合附图在说明书中详细描述一个或多个实施方式。其余特征、目的和优 点也将通过说明书、附图和权利要求变的更清楚。


图1A示出了闪存单元结构的例子。 图IB示出了具有非易失性存储器的系统的例子。 图2示出了存储装置架构的例子。 图3示出了包括数据压縮和填充数据包括的耗损均衡技术的例子。 图4示出了包括数据编码的技术的例子。 图5示出了包括数据编码的技术的另一个例子。 图6示出了输入数据扇区变换的例子。 图7示出了变换后的数据扇区的例子。 图8A、8B、8C、8D示出了基于编程计数器的数据扇区变换的不同例子。 不同的附图中,相同的标号表示相同的元件。
具体实施例方式
诸如闪存结构或者相变存储器结构之类的非易失性存储器结构可能遭受操作性 干扰。在操作性干扰下,诸如数据单元之类的存储区域在许多次操作后可能变的愈发不可 靠。各种操作的例子包括擦除和编程循环。设备和系统可使用耗损均衡技术以缓解操作性 干扰对于一个或多个非易失性存储器结构的影响。除其他事项外,本文描述了耗损均衡技 术,其可包括数据压縮和数据后勤(data logistics)技术。 一般地,遭受操作性干扰的存 储器结构可以通过使用一个或多个此处提供的技术而受益。 例如,闪存装置由于擦除和编程(E/P)循环会承担耗损。耗损基于闪存装置的复 杂性可变化。例如,一些单级单元(single level cell, SLC)闪存装置在可察觉的性能影 响出现前,可维持平均100,000个E/P循环。 一些多级单元(multi-level cell,MLC)闪存 装置可维持10,000个E/P循环。此处描述的耗损均衡技术可以延长基于闪存的存储装置 的寿命。所述技术可具有另外的益处,例如更高的吞吐量和降低的位错误。用于耗损均衡 的设备和系统可包括压縮和解压单元以及相应的数据管理系统。 存储装置可包括存储器单元结构,例如SLC结构或MLC结构,其在一个排列中包括 多个存储单元。例如,一些闪存装置可包括以诸如X-Y阵列之类的排列而组织的闪存单元。 装置可以使用位线和字线来对X-Y阵列中单独的单元寻址。在一些实施方式中,闪存单元 可以处在擦除状态或者编程状态,在标称平均阈值电压附近存在某种不确定度。
图1A示出了闪存单元结构的一个例子。闪存装置可包括以X-Y阵列排列的多个 单元104a、104b。单元104a、104b可包括被配置来存储信息的逻辑(logic)。在一些实施 方式中,与单元104a、104b相关联的不同的逻辑状态可表示不同的逻辑值,例如逻辑l或逻 辑0。诸如闪存控制器之类的控制器可使用位线103a、103b、103c、103d和字线102a、102b、102c、102d对单独的单元104a、104b寻址。 在一些实施方式中,擦除状态由逻辑1表示,而编程状态由逻辑0表示。如果一个1位被存储在闪存单元,例如X-Y阵列的单元中,则相应的位线上的电压升高,且编程被禁止;因此,该单元处于擦除状态。否则,在相应的字线和相应的位线之间建立电压差以将闪存单元编程为O状态。在一些实施方式中,字线可与控制栅极关联,而位线可与漏极和源极相关联。在一些实施方式中,实现单元变化的电压差的范围为5到20伏。
物理编程和擦除技术可包括将电流施加到一个或多个闪存单元。选择性物理编程和擦除技术可控制到诸如闪存结构之类的存储器的电流。例如,选择性物理编程和擦除技术可限制从闪存结构的浮动栅极到衬底的电流量。选择性技术可以缓解闪存单元受到的应力。 一些闪存控制器可以基于待写入闪存单元的数据的位状态,以及闪存单元的状态,执行闪存单元的选择性物理编程。 一些闪存控制器可以使用另外的技术使得流往闪存单元的电流最小化。 在一些闪存设计中,编程操作可以将一个闪存单元设置为存储逻辑l,其可相应于擦除状态。相应地,如果待编程的位在逻辑上等同于擦除状态,则擦除状态下的闪存单元可能不需要物理编程操作。在一些实施方式中,逻辑1状态的闪存单元可能不需要物理编程操作以表示逻辑l。擦除操作可将闪存单元设置为逻辑l。 一些闪存控制器可以基于闪存单元的状态,执行闪存单元的选择性物理擦除。在一些实施方式中,逻辑1状态下的闪存单元可能不需要物理擦除。 除选择性物理编程和擦除技术外,存储装置还可使用一个或多个耗损均衡技术以延长包括在装置中的存储器的寿命。耗损均衡技术可包括在存储装置级执行数据压縮。耗损均衡技术可利用通过数据压縮带来的数据大小的降低来插入例如伪数据的填充数据,以维持原始未压縮数据扇区(sector)的长度。此类技术可以提高装置性能,延长单元寿命,并可提高装置吞吐量。 主机装置可以对使用一个或多个耗损均衡技术的存储装置读写数据。在读或写操作中,主机装置可以对一个或多个逻辑段进行寻址。存储装置可使用固定的或可配置的数据段大小进行存储装置的寻址,该数据段大小可由主机装置获得或确定。存储装置可在数据被写入存储器时变更数据以提高装置性能。为提供对于主机装置的透明度,存储装置可以在内部数据表示和外部数据表示之间进行转换。 用于不同输入数据段的压縮结果可能不同。例如,所得压縮比,即未压縮大小和压縮后大小的比值可能不同。尽管如此,耗损均衡和数据压縮技术仍可维持输入数据段的大小,以降低数据管理和索引复杂度。存储装置可基于所得压縮比而在压縮后的数据段中包括填充数据,以维持输入数据段大小。例如,存储装置所包括的填充数据的量可以等于未压縮大小和压縮后大小之差。 一些装置可使用诸如逻辑1之类的伪数据作为填充数据,以使装置存储器中的电流最小化。 图1B示出了具有非易失性存储器的系统的例子,该系统可执行此处描述的一个或多个技术。系统可包括具有嵌入式或可移除式非易失性存储器的数据处理装置。数据处理装置例如是数字媒体播放器、数码相机、个人数字助理(PDA)、移动电话、计算机或嵌入式装置,其可包括一个或多个非易失性存储装置115,该非易失性存储装置可包括一个或多个闪存结构,处理装置105,以及诸如视频/音频/图像输入、文本输入、定位输入或视频/音频/图像输出之类的输入/输出(1/0)120信道和连接。在一些实施方式中,处理装置105 可包括一个或多个处理器或专用处理逻辑。在一些实施方式中,处理装置105可包括存储 用于操作处理器从而与非易失性存储装置115交互的指令的存储器。 处理装置105可以从非易失性存储装置115读取,和/或向其中写入。例如,从I/ 0 120接收的数据可存储在非易失性存储装置115上。在另一个例子中,来自从非易失性 存储装置115检索出的文件的内容可在I/0 120上数字地再现作为输出。在一些实施方式 中,可移除单元可以包含非易失性存储器结构115。在一些实施方式中,非易失性存储装置 115可包括处理器电子装置。 在一些实施方式中,处理装置105可以基于诸如(一个或多个)数据扇区之类的 数据段访问非易失性存储装置115。一个数据扇区可包括固定量的数据,例如固定数目的字 节。在一些实施方式中,处理装置105可以向非易失性存储装置115写入诸如逻辑数据扇 区之类的数据,非易失性存储装置115又可向物理数据扇区(例如一组存储单元)写入数 据。 图2示出了存储装置架构的例子。存储装置架构200可包括控制器205,压縮模块 210,填充数据插入模块215,编码模块220,以及非易失性存储器结构250。控制器205可以 从诸如处理器或计算机之类的外部资源获得数据,并可将该数据存储在非易失性存储器结 构250的一个或多个数据段230、232、234中。控制器205可以从一个或多个数据段230、 232、234读取数据,并可将数据发送给外部资源例如处理器或计算机。 控制器205可与压縮模块210,填充数据插入模块215,编码模块220,以及例如非 易失性存储器结构250的一个或多个存储器结构连通。在一些实施方式中,压縮模块210 可以执行压縮和解压縮,填充数据插入模块215可以插入和移除填充数据,而编码模块220 可对数据编码并处理获得的编码数据,以用于错误检测和校正。在一些实施方式中,控制器 205可包括一个或多个压縮模块210,填充数据插入模块215,以及编码模块220。在一些实 施方式中,控制器205可包括非易失性存储器结构250。 存储装置架构200可包括一个或多个被配置来存储数据的存储器结构,例如非易 失性存储器结构250。非易失性存储器结构250可被配置来存储操作性数据,例如编程计数 器。例如,非易失性存储器结构250可存储分别与数据段230、232、234相关联的编程计数 器值240、243、244,从而为编程操作计数。控制器205可将编程计数器值240、242、 244用作 填充数据插入模块215的输入。存储装置架构200可使用不同的配置实施。此类配置的各 种例子的实施方式包括在单一集成电路管芯上、在具有单一芯片封装的多个管芯上以及在 一个器件封装中各自芯片中的管芯上实现存储装置架构200。 图3示出了包括了数据压縮和填充数据包括的耗损均衡技术的例子。在305,耗损
均衡技术可以包括获得要存储在非易失性存储器上的信息。该信息可包括一个或多个数据
段。获得要存储在非易失性存储器上的信息可包括将所述信息分割为多个数据段。 该技术可包括在310将数据段内的数据压縮,以在数据段内具有更小的数据规模
(footprint)。装置可就地压縮数据,或者可生成包括压縮后数据的新的数据结构,所述新
的数据结构例如是第二数据段。装置可在数据段内分配压縮后的数据,以便为包括填充数
据留出空间。 压縮数据可包括使用一个或多个数据压縮算法。压縮技术的各种例子包括块_块,块_变量,变量_块,变量_变量。在一些块_块数据压縮算法实施方式中,源字和 码字可以具有固定的长度。在一些变量-变量数据压縮算法实施方式中,源字和码字可以 有不同的长度。数据压縮算法的各种例子包括Shannon-Fano码、静态Huffman码、自适应 Huffman码、Fibonacci码、算术码以及L卿el-Ziv码。 压縮后,被压縮段的大小可以比由装置分配的指定空间更小。装置可以使用压縮 比控制插入到数据段中的填充数据的量。在315,可使用通过压縮获得的压縮结果将填充数 据包括在数据段的一个或多个部分中。 在320,该技术可包括基于各自数据位状态向非易失性存储器中选择性地写入数 据段的数据。在一些实施方式中,填充数据可包括被设置为与非易失性存储器的擦除位状 态关联的逻辑状态的一个或多个位。装置可以向非易失性存储器的数据段写入数据段的数 据,该数据表示非擦除位状态。 在一些实施方式中,存储装置可基于压縮后的数据生成错误检测信息。在一些实 施方式中,存储装置可基于压縮后的数据和填充数据生成错误检测信息。存储装置可向非 易失性存储器的一个或多个区域写入数据和相应的错误检测信息。在一些实施方式中,错 误检测信息可包括校正数据错误的信息。 图4示出了包括数据编码的技术的例子。在405,存储装置可从诸如主机装置或主 机处理器之类的源获得待存储数据。在一些实施方式中,在410,存储装置可将输入的数据 分割为一个或多个逻辑数据扇区。数据扇区大小值的各种例子包括512字节和1024字节 以及其它值。 在一些实施方式中,在415,逻辑段数据可进入数据压縮单元,其可减小包含在输 入段中的数据的大小。在420,压縮后的数据可进行一次或多次编码,例如纠错编码(ECC)。 在425,填充数据可被插入到压縮后数据段的空余空间,以维持扇区大小不变。在430,控制 器可以向非易失性存储器写入数据段。 一些存储装置可以只对压縮后的数据进行编码。然 而, 一些存储装置可以对压縮后的数据和插入的伪数据进行编码。 图5示出了包括数据编码的技术的另一个例子。在505,存储装置可从主机获得待 存储的数据。在一些实施方式中,主机可向存储装置提供分段格式的数据。在510,装置可 压縮主机提供的每个段。在515,例如逻辑1的填充数据可被插入压縮数据段,以维持数据 段大小不变。在520,装置可对压縮数据和插入的填充数据之一或二者进行编码。在525, 装置可将数据段写入非易失性存储器中。 图6示出了输入数据扇区变换的例子。压縮模块可将输入数据扇区605变换为更 小的压縮数据扇区610。填充数据插入模块可以将填充数据部分615插入到压縮模块创建 的空间中。控制器可将压縮后的数据扇区610和填充数据部分615写入到存储器的数据区 域。在一些实施方式中,与压縮数据扇区610相关的编码信息可被存储在相邻的区域。
图7示出了变换后数据扇区的例子。压縮后的数据可分割成不同的数据部分,例 如数据部分X1、X2、X3和X4(分别为701、703、705、707)。填充数据710、712、714可插入到 数据部分701、703、705、707之间。压縮数据和填充数据的其它布局也是可以的。
数据段的一个或多个部分中填充数据的定位可变化。 一些存储装置可将填充数据 插入到一个插入位置,该插入位置是根据与诸如物理扇区之类的存储器区域相关联的编程 计数器确定的。在一些实施方式中,当数据写入物理扇区时,递增与该物理扇区相关联的编程计数器。 一些装置可通过填充数据插入位置进行循环。在数据扇区内通过不同的填充数据插入位置进行循环可为物理扇区分摊耗损。 图8A、8B、8C和8D示出了基于编程计数器的数据扇区变换的不同实施例。与存储器的物理扇区关联的编程计数器的不同的值802、804、806、808可以使得控制器在对相同的物理扇区进行不同的写入操作时将填充数据810、815、820、830插入到物理扇区的不同位置。例如,用于填充数据插入的开始位置偏移可因对相同物理扇区的一次或多次连续的写入操作而递增固定的或可配置的量。 在图8A中,填充数据810在压縮数据812之后被插入。在图8B中,填充数据815在压縮数据817之前被插入。在这个实施例中,压縮数据817被移位到右侧以维持扇区边界,以辅助填充数据815的插入。在图8C中,填充数据820被插入两个压縮数据部分825和827之间。在图8D中,填充数据830被插入到两个压縮数据部分835和837之间的不同位置。 在一些实施方式中,控制器可存储关于插入填充数据的位置的元数据信息。控制器可使用该元数据移除填充数据。在一些实施方式中,控制器可存储关于扇区中的(一个或多个)压縮数据位置的元数据信息。 在一些实施方式中,逻辑扇区数据可能会经历一种或多种编码,例如ECC。在一些实施方式中,编码数据可以进入数据压縮单元,其可縮小编码数据扇区的大小。在数据压縮后,例如逻辑1的伪数据可被插入到压縮数据扇区,这样扇区大小不变,且与闪存装置所接受的大小一致,例如4KB+128字节。格式化的数据扇区可写入到闪存。诸如伪数据之类的填充数据可以以多种不同样式之一插入。在一些实施方式中,填充数据可包括除逻辑l以外的数据。 以上详细描述了几个实施例,而各种修改也是可能的。所公开的主题,包括说明书中描述的功能性操作,可以通过电子电路、计算机硬件、固件、软件或它们的组合实施,例如本说明书公开的结构性手段和结构性等同物,潜在地包括可用来使得一个或多个数据处理装置执行所述操作的程序(例如在计算机可读介质中编码的程序,该介质可以是内存装置、外存装置、机器可读存储基板或其它物理的机器可读的介质,或它们中一个或多个的组合)。 术语"数据处理设备"涵盖了所有用于处理数据的设备、装置和机器,以举例的方式包括可编程处理器、计算机、或多处理器或计算机。除硬件外,所述设备还可包括为有关的计算机程序创建执行环境的代码,例如组成处理器固件、协议栈、数据库管理系统、操作系统或它们中一个或多个的组合的代码。 程序(也称为计算机程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,或陈述性或程序性语言,并且其可以任何方式配置,包括作为独立程序或是作为模块、组件、子程序或其它适用于计算机环境的单位。程序不必须对应于文件系统中的文件。程序可存储在保有其它程序或数据的文件的一部分中(例如,存储在一个标记语言文档中的一个或多个脚本),还可存储在专用于所需程序的单一文件中或者多个协作文件中(例如存储一个或多个模块、子程序或代码部分的文件)。程序可被配置以在一台或位于同一地点的或者分布于多个地点并且通过通信网络互联的多台计算机上执行。
尽管本说明书包含许多细节,但这些不能被理解为对权利要求范围的限定,而是 作为特定实施例可能特有的特征的描述。本说明书中在不同实施例的上下文中描述的某些 特征也可组合起来在一个实施例中实施。相反,在一个实施例的上下文中描述的各个特征 也可以在多个实施例中分别地或以任何合适的子组合的形式实施。而且,尽管以上可能将 特征描绘素为在特定的组合中动作,甚至最初如此要求保护,但所要求保护的组合中的一 个或多个特征在一些情况下可以从组合中去除,而所要求保护的组合可以涉及子组合或子 组合的变体。 类似地,尽管操作在附图中以特定的顺序描述,但这不能理解为需要所述操作以 所示的特定顺序或者依顺序执行,或者所有描述的操作都被执行,以获得期望的结果。在一 定的情况下,多任务或并行处理可能是有益的。而且,上述实施例中不同系统元件的分离不 应被理解为所有实施例中都需要这样的分离。
其它实施例落在权利要求书的保护范围中。 本申请要求受益于序号为No. 61/103, 133,提交日为2008年10月6日的美国临 时申请,题为"使用数据压縮用于向闪存装置存储数据的方法和装置"(Methods and Means for Storing Data to Flash Memory Devices UsingData Compression),其整个内容在此 被引为参考。
权利要求
一种方法,包括获取要存储在非易失性存储器中的信息,该信息包括数据段;压缩所述数据段内的数据;基于通过压缩获得的压缩结果,将填充数据包含到所述数据段的一个或多个部分中;以及写入所述数据段的数据。
2. 权利要求1所述的方法,其中将填充数据包含到所述数据段的一个或多个部分中包 括将所述填充数据插入到所述数据段中的插入位置,该插入位置是根据与所述非易失性存 储器的数据扇区关联的编程计数器确定的。
3. 权利要求1所述的方法,进一步包括通过数据段内的不同的填充数据插入位置进行循环,以辅助分摊对所述非易失性存储 器的物理写入操作。
4. 权利要求1所述的方法,其中将填充数据包含到所述数据段的一个或多个部分中包 括将所述填充数据的至少一部分插入到压縮后数据的不同部分之间。
5. 权利要求1所述的方法,其中将填充数据包含到所述数据段的一个或多个部分中包 括将所述填充数据的不同部分插入到所述数据段内的不同位置。
6. 权利要求1所述的方法,进一步包括 基于压縮后的数据生成错误检测信息;并且 将所述错误检测信息写入到所述非易失性存储器中。
7. 权利要求1所述的方法,进一步包括 基于压縮后的数据和填充数据生成错误检测信息;并且 将所述错误检测信息写入到所述非易失性存储器中。
8. 权利要求1所述的方法,其中获取要存储在非易失性存储器中的信息包括将该信息 分割为多个数据段。
9. 权利要求1所述的方法,其中所述填充数据包括设为与所述非易失性存储器的擦除 位状态关联的逻辑状态的一个或多个位,其中写入数据包括向所述非易失性存储器写入数 据段的数据,该数据表示非擦除位状态。
10. —种设备,包括非易失性存储器结构,该非易失性存储器结构被配置来存储数据;以及 控制器,该控制器与所述非易失性存储器结构通信,并被配置来执行操作,所述操作包括获取要存储在所述非易失性存储器结构中的信息,该信息包括数据段; 压縮所述数据段内的数据;基于通过压縮获得的压縮结果,将填充数据包含到所述数据段的一个或多个部分中;以及向所述非易失性存储器结构中写入所述数据段的数据。
11. 权利要求10所述的设备,其中将填充数据包含到所述数据段的一个或多个部分中 包括将所述填充数据插入到所述数据段中的插入位置,该插入位置是根据与所述非易失性 存储器结构的数据扇区关联的编程计数器确定的。
12. 权利要求10所述的设备,所述操作进一步包括通过数据段内的不同的填充数据插入位置进行循环,以辅助分摊对所述非易失性存储器结构的物理写入操作。
13. 权利要求IO所述的设备,其中将填充数据包含到所述数据段的一个或多个部分中包括将所述填充数据的至少一部分插入到压縮后数据的不同部分之间。
14. 权利要求IO所述的设备,其中将填充数据包含到所述数据段的一个或多个部分中包括将所述填充数据的不同部分插入到所述数据段内的不同位置。
15. 权利要求IO所述的设备,其中所述非易失性存储器结构包括闪存,其中所述逻辑状态对应于逻辑l。
16. —种系统,包括非易失性存储器结构,该非易失性存储器结构被配置来存储数据;控制器,该控制器与所述非易失性存储器结构通信,并被配置来执行操作,所述操作包括获取要存储在所述非易失性存储器结构中的信息,该信息包括数据段;压縮所述数据段内的数据;基于通过压縮获得的压縮结果,将填充数据包含到所述数据段的一个或多个部分中;以及向所述非易失性存储器结构中写入所述数据段的数据;以及处理器,该处理器与所述控制器通信,所述处理器被配置来经由所述控制器与所述非易失性存储器结构通信。
17. 权利要求16所述的系统,其中将填充数据包含到所述数据段的一个或多个部分中包括将所述填充数据插入到所述数据段中的插入位置,该插入位置是根据与所述非易失性存储器结构的数据扇区关联的编程计数器确定的。
18. 权利要求16所述的系统,所述操作进一步包括通过数据段内的不同的填充数据插入位置进行循环,以辅助分摊对所述非易失性存储器结构的物理写入操作。
19. 权利要求16所述的系统,其中将填充数据包含到所述数据段的一个或多个部分中包括将所述填充数据的至少一部分插入到压縮后数据的不同部分之间。
20. 权利要求16所述的系统,其中将填充数据包含到所述数据段的一个或多个部分中包括将所述填充数据的不同部分插入到所述数据段内的不同位置。
全文摘要
本发明公开包括与非易失性存储器相关的系统和技术,尤其涉及用于非易失性存储器的基于压缩的耗损均衡。所述系统和技术可包括获取要存储在非易失性存储器中的信息,该信息包括数据段;压缩数据段内的数据;基于通过压缩获得的压缩结果,将填充数据包含到数据段的一个或多个部分中;并且写入数据段的数据。
文档编号G06F12/02GK101719100SQ20091024680
公开日2010年6月2日 申请日期2009年10月9日 优先权日2008年10月6日
发明者杨雪石 申请人:马维尔国际贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1