CN101719100B - 用于非易失性存储器的基于压缩的耗损均衡 - Google Patents

用于非易失性存储器的基于压缩的耗损均衡 Download PDF

Info

Publication number
CN101719100B
CN101719100B CN200910246805.3A CN200910246805A CN101719100B CN 101719100 B CN101719100 B CN 101719100B CN 200910246805 A CN200910246805 A CN 200910246805A CN 101719100 B CN101719100 B CN 101719100B
Authority
CN
China
Prior art keywords
data
padding
compression
data segment
nonvolatile memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200910246805.3A
Other languages
English (en)
Other versions
CN101719100A (zh
Inventor
杨雪石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kaiwei International Co
Marvell International Ltd
Marvell Asia Pte Ltd
Original Assignee
Mawier International Trade Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mawier International Trade Co Ltd filed Critical Mawier International Trade Co Ltd
Publication of CN101719100A publication Critical patent/CN101719100A/zh
Application granted granted Critical
Publication of CN101719100B publication Critical patent/CN101719100B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开包括与非易失性存储器相关的系统和技术,尤其涉及用于非易失性存储器的基于压缩的耗损均衡。所述系统和技术可包括:获取要存储在非易失性存储器中的信息,该信息包括数据段;压缩数据段内的数据;基于通过压缩获得的压缩结果,将填充数据包含到数据段的一个或多个部分中;并且写入数据段的数据。

Description

用于非易失性存储器的基于压缩的耗损均衡
技术领域
本公开描述了关于非易失性存储器的系统和技术。
背景技术
装置和系统可以使用例如闪存的非易失性存储器存储和检索数据。例如,数码相机可以向非易失性存储器存储图像。在另一个例子中,诸如MP3播放器的数字媒体播放器可以从非易失性存储器中读取数字音频文件并播放该音频文件的内容。例如移动电话或个人数字助理(PDA)的移动装置可以从一个或多个非易失性存储器读取数据和向其中写入数据。
装置和系统可以对非易失性存储器执行多个操作,例如读取和编程操作。各种类型的编程操作可以包括写入和擦除数据。在此类存储器中擦除数据可以包括将数据区域标志为无效或者未编程,或者可以包括向数据区域写入数据,以实现擦除。诸如闪存之类的非易失性存储器可以被分为多个数据区域。每个数据区域可以单独寻址和访问。相应地,操作可包括为一个或多个数据区域或一个数据区域的一部分获取地址。此外,一个数据区域可以被划分为单独的位(bit)或者诸如字节之类的更大的聚集数据单元。
发明内容
本公开包括了用于基于压缩的非易失性存储器结构的耗损均衡(wearleveling)的系统和技术。
用于基于压缩的耗损均衡的系统和技术可以包括:获取要存储在非易失性存储器中的信息,该信息包括数据段;压缩所述数据段中的数据;基于通过压缩获得的压缩结果,将填充数据(pad data)包含到数据段的一个或多个部分中;以及写入数据段的数据。
这些和其他方面可以包括以下特征当中的一个或多个特征。将填充数据包含到数据段的一个或多个部分中可以包括将填充数据插入数据段中的插入位置,该插入位置是根据与非易失性存储器的数据扇区相关的编程计数器确定的。实施方式可以包括通过数据段中的不同填充数据插入位置进行循环,以辅助对于非易失性存储器的物理写入操作的分摊。将填充数据包含到数据段的一个或多个部分中可以包括将填充数据的至少一部分插入到压缩后数据的不同部分之间。将填充数据包含到数据段的一个或多个部分中可以包括将填充数据的不同部分插入到数据段内的不同位置。实施方式可以包括:基于压缩后数据生成错误检测信息;以及将错误检测信息写入到非易失性存储器。实施方式可以包括:基于压缩后数据和填充数据生成错误检测信息;以及将错误检测信息写入到非易失性存储器。获取要存储在非易失性存储器中的信息可包括将信息分段为多个数据段。填充数据可包括被设置为与非易失性存储器的擦除位状态相关的逻辑状态的一个或多个位。写入数据可包括写入表示非易失性存储器的非擦除位状态的数据段的数据。
所述系统和技术可被实施于电子电路、计算机硬件、固件、软件或它们的组合中,例如说明书中公开的结构性手段,以及结构性的等效手段。这可包括至少一个包含程序的计算机可读介质,该程序可操作用于使一个或多个数据处理设备(例如,包括可编程处理器的信号处理装置)执行所述操作。因而,程序实施方式可以通过所公开的方法、系统或设备来实现,而设备实施方式也可通过所公开的系统、计算机可读介质或方法实现。类似的,方法实施方式可通过所公开的系统、计算机可读介质或者设备来实现,系统实施方式可通过所公开的方法、计算机可读介质或者设备来实现。
例如,以下公开的(一个或多个)实施例可以通过各种系统和设备来实施,该设备包括但不限于:专用数据处理设备(例如无线接入点、远程环境监视器、路由器、交换机、计算机系统元件、媒体接入单元),移动数据处理设备(例如无线客户端、移动电话、个人数字助理(PDA),移动计算机,数码相机),通用数据处理装置(例如微计算机、服务器、大型计算机、超级计算机),或者这些的组合。
因而,根据所述系统和技术的另一个方面,系统可包括配置用来存储数据的非易失性存储器结构,与非易失性存储器结构通信的控制器,和与控制器通信的处理器。该处理器可配置为经由控制器与非易失性存储器结构通信。该控制器可被配置以执行操作,该操作包括:获取要存储在非易失性存储器结构中的信息,该信息包括数据段;压缩数据段内的数据;基于通过压缩获得的压缩结果,将填充数据包括在数据段的一个或多个部分中;并且向非易失性存储器结构写入数据段的数据。
这些以及其它方面可包括以下特征当中的一个或多个特征。将填充数据包含到数据段的一个或多个部分中可以包括将填充数据插入数据段中的插入位置,该插入位置是根据与非易失性存储器结构的数据扇区相关的编程计数器确定的。所述操作可以包括通过数据段中的不同填充数据插入位置进行循环,以辅助对于非易失性存储器结构的物理写入操作的分摊。将填充数据包含到数据段的一个或多个部分中可以包括将填充数据的至少一部分插入到压缩后数据的不同部分之间。将填充数据包含到数据段的一个或多个部分中可以包括将填充数据的不同部分插入到数据段内的不同位置。非易失性存储器结构可包括闪存,而逻辑状态可相应于逻辑1。
另一方面,系统和装置可包括配置用于存储数据的非易失性存储器结构,以及与所述非易失性存储器结构通信的控制器。所述控制器可被配置以执行操作,该操作包括:获取要存储在非易失性存储器结构中的信息,该信息包括数据段;压缩数据段内的数据;基于通过压缩获得的压缩结果,将填充数据包含到数据段的一个或多个部分中;并且向非易失性存储器结构写入数据段的数据。
这些以及其它方面可包括以下特征当中的一个或多个特征。将填充数据包含到数据段的一个或多个部分中可以包括将填充数据插入数据段中的插入位置,该插入位置是根据与非易失性存储器结构的数据扇区相关的编程计数器确定的。所述操作可以包括通过数据段中的不同填充数据插入位置进行循环,以辅助对于非易失性存储器结构的物理写入操作的分摊。将填充数据包含到数据段的一个或多个部分中可以包括将填充数据的至少一部分插入到压缩后数据的不同部分之间。将填充数据包含到数据段的一个或多个部分中可以包括将填充数据的不同部分插入到数据段内的不同位置。非易失性存储器结构可包括闪存,而逻辑状态可相应于逻辑1。
实施说明书中所描述的主题可以实现如下的一个或多个潜在优点。所述系统和技术的一个或多个可以增加非易失性存储器的寿命,并可提高非易失性存储器存储装置的吞吐量(throughput)。所述系统和技术的一个或多个可以最小化非易失性存储器在编程操作期间的电流,从而能够节能。所述系统和技术的一个或多个可以提高数据存储可靠性并能提供更高等级的服务质量。
以下将结合附图在说明书中详细描述一个或多个实施方式。其余特征、目的和优点也将通过说明书、附图和权利要求变的更清楚。
附图说明
图1A示出了闪存单元结构的例子。
图1B示出了具有非易失性存储器的系统的例子。
图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相关联的不同的逻辑状态可表示不同的逻辑值,例如逻辑1或逻辑0。诸如闪存控制器之类的控制器可使用位线103a、103b、103c、103d和字线102a、102b、102c、102d对单独的单元104a、104b寻址。
在一些实施方式中,擦除状态由逻辑1表示,而编程状态由逻辑0表示。如果一个1位被存储在闪存单元,例如X-Y阵列的单元中,则相应的位线上的电压升高,且编程被禁止;因此,该单元处于擦除状态。否则,在相应的字线和相应的位线之间建立电压差以将闪存单元编程为0状态。在一些实施方式中,字线可与控制栅极关联,而位线可与漏极和源极相关联。在一些实施方式中,实现单元变化的电压差的范围为5到20伏。
物理编程和擦除技术可包括将电流施加到一个或多个闪存单元。选择性物理编程和擦除技术可控制到诸如闪存结构之类的存储器的电流。例如,选择性物理编程和擦除技术可限制从闪存结构的浮动栅极到衬底的电流量。选择性技术可以缓解闪存单元受到的应力。一些闪存控制器可以基于待写入闪存单元的数据的位状态,以及闪存单元的状态,执行闪存单元的选择性物理编程。一些闪存控制器可以使用另外的技术使得流往闪存单元的电流最小化。
在一些闪存设计中,编程操作可以将一个闪存单元设置为存储逻辑1,其可相应于擦除状态。相应地,如果待编程的位在逻辑上等同于擦除状态,则擦除状态下的闪存单元可能不需要物理编程操作。在一些实施方式中,逻辑1状态的闪存单元可能不需要物理编程操作以表示逻辑1。擦除操作可将闪存单元设置为逻辑1。一些闪存控制器可以基于闪存单元的状态,执行闪存单元的选择性物理擦除。在一些实施方式中,逻辑1状态下的闪存单元可能不需要物理擦除。
除选择性物理编程和擦除技术外,存储装置还可使用一个或多个耗损均衡技术以延长包括在装置中的存储器的寿命。耗损均衡技术可包括在存储装置级执行数据压缩。耗损均衡技术可利用通过数据压缩带来的数据大小的降低来插入例如伪数据的填充数据,以维持原始未压缩数据扇区(sector)的长度。此类技术可以提高装置性能,延长单元寿命,并可提高装置吞吐量。
主机装置可以对使用一个或多个耗损均衡技术的存储装置读写数据。在读或写操作中,主机装置可以对一个或多个逻辑段进行寻址。存储装置可使用固定的或可配置的数据段大小进行存储装置的寻址,该数据段大小可由主机装置获得或确定。存储装置可在数据被写入存储器时变更数据以提高装置性能。为提供对于主机装置的透明度,存储装置可以在内部数据表示和外部数据表示之间进行转换。
用于不同输入数据段的压缩结果可能不同。例如,所得压缩比,即未压缩大小和压缩后大小的比值可能不同。尽管如此,耗损均衡和数据压缩技术仍可维持输入数据段的大小,以降低数据管理和索引复杂度。存储装置可基于所得压缩比而在压缩后的数据段中包括填充数据,以维持输入数据段大小。例如,存储装置所包括的填充数据的量可以等于未压缩大小和压缩后大小之差。一些装置可使用诸如逻辑1之类的伪数据作为填充数据,以使装置存储器中的电流最小化。
图1B示出了具有非易失性存储器的系统的例子,该系统可执行此处描述的一个或多个技术。系统可包括具有嵌入式或可移除式非易失性存储器的数据处理装置。数据处理装置例如是数字媒体播放器、数码相机、个人数字助理(PDA)、移动电话、计算机或嵌入式装置,其可包括一个或多个非易失性存储装置115,该非易失性存储装置可包括一个或多个闪存结构,处理装置105,以及诸如视频/音频/图像输入、文本输入、定位输入或视频/音频/图像输出之类的输入/输出(I/O)120信道和连接。在一些实施方式中,处理装置105可包括一个或多个处理器或专用处理逻辑。在一些实施方式中,处理装置105可包括存储用于操作处理器从而与非易失性存储装置115交互的指令的存储器。
处理装置105可以从非易失性存储装置115读取,和/或向其中写入。例如,从I/O 120接收的数据可存储在非易失性存储装置115上。在另一个例子中,来自从非易失性存储装置115检索出的文件的内容可在I/O 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码、算术码以及Lempel-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字节。格式化的数据扇区可写入到闪存。诸如伪数据之类的填充数据可以以多种不同样式之一插入。在一些实施方式中,填充数据可包括除逻辑1以外的数据。
以上详细描述了几个实施例,而各种修改也是可能的。所公开的主题,包括说明书中描述的功能性操作,可以通过电子电路、计算机硬件、固件、软件或它们的组合实施,例如本说明书公开的结构性手段和结构性等同物,潜在地包括可用来使得一个或多个数据处理装置执行所述操作的程序(例如在计算机可读介质中编码的程序,该介质可以是内存装置、外存装置、机器可读存储基板或其它物理的机器可读的介质,或它们中一个或多个的组合)。
术语“数据处理设备”涵盖了所有用于处理数据的设备、装置和机器,以举例的方式包括可编程处理器、计算机、或多处理器或计算机。除硬件外,所述设备还可包括为有关的计算机程序创建执行环境的代码,例如组成处理器固件、协议栈、数据库管理系统、操作系统或它们中一个或多个的组合的代码。
程序(也称为计算机程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,或陈述性或程序性语言,并且其可以任何方式配置,包括作为独立程序或是作为模块、组件、子程序或其它适用于计算机环境的单位。程序不必须对应于文件系统中的文件。程序可存储在保有其它程序或数据的文件的一部分中(例如,存储在一个标记语言文档中的一个或多个脚本),还可存储在专用于所需程序的单一文件中或者多个协作文件中(例如存储一个或多个模块、子程序或代码部分的文件)。程序可被配置以在一台或位于同一地点的或者分布于多个地点并且通过通信网络互联的多台计算机上执行。
尽管本说明书包含许多细节,但这些不能被理解为对权利要求范围的限定,而是作为特定实施例可能特有的特征的描述。本说明书中在不同实施例的上下文中描述的某些特征也可组合起来在一个实施例中实施。相反,在一个实施例的上下文中描述的各个特征也可以在多个实施例中分别地或以任何合适的子组合的形式实施。而且,尽管以上可能将特征描绘素为在特定的组合中动作,甚至最初如此要求保护,但所要求保护的组合中的一个或多个特征在一些情况下可以从组合中去除,而所要求保护的组合可以涉及子组合或子组合的变体。
类似地,尽管操作在附图中以特定的顺序描述,但这不能理解为需要所述操作以所示的特定顺序或者依顺序执行,或者所有描述的操作都被执行,以获得期望的结果。在一定的情况下,多任务或并行处理可能是有益的。而且,上述实施例中不同系统元件的分离不应被理解为所有实施例中都需要这样的分离。
其它实施例落在权利要求书的保护范围中。
本申请要求受益于序号为No.61/103,133,提交日为2008年10月6日的美国临时申请,题为“使用数据压缩用于向闪存装置存储数据的方法和装置”(Methods and Means for Storing Data to Flash Memory Devices UsingData Compression),其整个内容在此被引为参考。

Claims (13)

1.一种用于非易失性存储器的方法,包括:
获取要存储在非易失性存储器中的信息,该信息包括数据段;
压缩所述数据段内的数据;
基于通过压缩获得的压缩结果,将填充数据包含到所述数据段的一个或多个部分中;
写入所述数据段的数据;以及
通过数据段内的不同的填充数据插入位置进行循环,以辅助分摊对所述非易失性存储器的物理写入操作。
2.权利要求1所述的方法,其中将填充数据包含到所述数据段的一个或多个部分中包括将所述填充数据插入到所述数据段中的插入位置,该插入位置是根据与所述非易失性存储器的数据扇区关联的编程计数器确定的。
3.权利要求1所述的方法,其中将填充数据包含到所述数据段的一个或多个部分中包括将所述填充数据的至少一部分插入到压缩后数据的不同部分之间。
4.权利要求1所述的方法,其中将填充数据包含到所述数据段的一个或多个部分中包括将所述填充数据的不同部分插入到所述数据段内的不同位置。
5.权利要求1所述的方法,进一步包括:
基于压缩后的数据生成错误检测信息;并且
将所述错误检测信息写入到所述非易失性存储器中。
6.权利要求1所述的方法,进一步包括:
基于压缩后的数据和填充数据生成错误检测信息;并且
将所述错误检测信息写入到所述非易失性存储器中。
7.权利要求1所述的方法,其中获取要存储在非易失性存储器中的信息包括将该信息分割为多个数据段。
8.权利要求1所述的方法,其中所述填充数据包括设为与所述非易失性存储器的擦除位状态关联的逻辑状态的一个或多个位,其中写入数据包括向所述非易失性存储器写入数据段的数据,该数据表示非擦除位状态。
9.一种用于非易失性存储器的设备,包括:
用于获取要存储在所述非易失性存储器结构中的信息的装置,该信息包括数据段;
用于压缩所述数据段内的数据的装置;
用于基于通过压缩获得的压缩结果,将填充数据包含到所述数据段的一个或多个部分中的装置;
用于向所述非易失性存储器结构中写入所述数据段的数据的装置;以及
用于通过数据段内的不同的填充数据插入位置进行循环,以辅助分摊对所述非易失性存储器结构的物理写入操作的装置。
10.权利要求9所述的设备,其中将填充数据包含到所述数据段的一个或多个部分中包括将所述填充数据插入到所述数据段中的插入位置,该插入位置是根据与所述非易失性存储器结构的数据扇区关联的编程计数器确定的。
11.权利要求9所述的设备,其中将填充数据包含到所述数据段的一个或多个部分中包括将所述填充数据的至少一部分插入到压缩后数据的不同部分之间。
12.权利要求9所述的设备,其中将填充数据包含到所述数据段的一个或多个部分中包括将所述填充数据的不同部分插入到所述数据段内的不同位置。
13.权利要求9所述的设备,其中所述非易失性存储器结构包括闪存,其中逻辑状态对应于逻辑1。
CN200910246805.3A 2008-10-06 2009-10-09 用于非易失性存储器的基于压缩的耗损均衡 Active CN101719100B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10313308P 2008-10-06 2008-10-06
US61/103,133 2008-10-06

Publications (2)

Publication Number Publication Date
CN101719100A CN101719100A (zh) 2010-06-02
CN101719100B true CN101719100B (zh) 2014-04-09

Family

ID=42076706

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910246805.3A Active CN101719100B (zh) 2008-10-06 2009-10-09 用于非易失性存储器的基于压缩的耗损均衡

Country Status (2)

Country Link
US (1) US8347023B2 (zh)
CN (1) CN101719100B (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140744B2 (en) * 2004-07-01 2012-03-20 Seagate Technology Llc Method and system for increasing data storage reliability and efficiency via compression
US8938591B2 (en) * 2005-09-30 2015-01-20 Cleversafe, Inc. Dispersed storage processing unit and methods with data aggregation for use in a dispersed storage system
US12061519B2 (en) 2005-09-30 2024-08-13 Purage Storage, Inc. Reconstructing data segments in a storage network and methods for use therewith
US20110238903A1 (en) * 2008-12-10 2011-09-29 Amir Ban Method and device of managing a reduced wear memory
US8341501B2 (en) 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
US8769374B2 (en) 2010-10-13 2014-07-01 International Business Machines Corporation Multi-write endurance and error control coding of non-volatile memories
WO2012053015A2 (en) * 2010-10-22 2012-04-26 Jana, Tejaswini, Ramesh Compression and decompression of data at high speed in solid state storage
TWI459396B (zh) * 2010-12-30 2014-11-01 Phison Electronics Corp 資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置
KR101759658B1 (ko) * 2011-02-23 2017-07-19 삼성전자 주식회사 메모리 장치 및 메모리 시스템
JP5687639B2 (ja) * 2012-02-08 2015-03-18 株式会社東芝 コントローラ、データ記憶装置及びプログラム
CN102740074A (zh) * 2012-06-05 2012-10-17 沙基昌 一种视频数据的压缩/解压缩方法及系统
US9148172B2 (en) 2012-06-22 2015-09-29 Micron Technology, Inc. Data compression and management
FI125308B (en) * 2012-07-05 2015-08-31 Blancco Oy Ltd Device, arrangement, method, and computer program for erasing data stored in mass storage
KR102081980B1 (ko) 2012-10-08 2020-02-27 삼성전자 주식회사 메모리 시스템에서의 라이트 동작 또는 리드 동작 수행 방법
CN103955355B (zh) * 2013-03-18 2016-12-28 清华大学 一种应用于非易失处理器中的分段并行压缩方法及系统
JP6073471B2 (ja) * 2013-05-17 2017-02-01 株式会社日立製作所 ストレージ装置
US20150143197A1 (en) * 2013-07-10 2015-05-21 Shmuel T. Klein Codes for Enhancing the Repeated Use of Flash Memory
US20150067436A1 (en) * 2013-09-03 2015-03-05 Sandisk Technologies Inc. Nonvolatile Memory System Compression
US9612971B2 (en) 2014-08-19 2017-04-04 Qualcomm Incorporated Supplemental write cache command for bandwidth compression
US9858196B2 (en) 2014-08-19 2018-01-02 Qualcomm Incorporated Power aware padding
CN105653391B (zh) * 2014-11-13 2018-11-02 群联电子股份有限公司 数据存取方法、存储器控制电路单元及存储器储存装置
US9672928B2 (en) 2015-11-10 2017-06-06 Samsung Electronics Co., Ltd. Method and apparatus for estimating read levels of nonvolatile memory and for programming pilot signals used for such estimation
US10877544B2 (en) * 2016-01-12 2020-12-29 Smart Modular Technologies, Inc. Memory management system with backup system and method of operation thereof
US9971523B2 (en) * 2016-03-10 2018-05-15 Toshiba Memory Corporation Memory controller with data compression and padding features, method of controlling nonvolatile memory and memory system
US10061691B2 (en) * 2016-09-08 2018-08-28 Toshiba Memory Corporation Write data optimization methods for non-volatile semiconductor memory devices
US10275165B2 (en) * 2016-09-12 2019-04-30 Toshiba Memory Corporation Memory controller
CN107592117B (zh) * 2017-08-15 2019-09-24 深圳前海信息技术有限公司 基于Deflate的压缩数据块输出方法及装置
JP2020154525A (ja) * 2019-03-19 2020-09-24 キオクシア株式会社 メモリシステムおよび情報処理システム
KR20220093883A (ko) * 2020-12-28 2022-07-05 현대자동차주식회사 차량 및 그 제어 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5018154A (en) * 1989-09-12 1991-05-21 Brother Kogyo Kabushiki Kaisha Semiconductor laser drive device
US6216213B1 (en) * 1996-06-07 2001-04-10 Motorola, Inc. Method and apparatus for compression, decompression, and execution of program code

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805086A (en) * 1995-10-10 1998-09-08 International Business Machines Corporation Method and system for compressing data that facilitates high-speed data decompression
US7457359B2 (en) * 2001-09-26 2008-11-25 Mabey Danny L Systems, devices and methods for securely distributing highly-compressed multimedia content
JP4019790B2 (ja) * 2002-05-23 2007-12-12 富士ゼロックス株式会社 画像処理装置および画像処理プログラム
JP4194479B2 (ja) * 2003-11-20 2008-12-10 キヤノン株式会社 画像処理装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
KR100551432B1 (ko) * 2004-07-29 2006-02-09 주식회사 팬택앤큐리텔 부가 데이타 전송 기능을 구비한 단문 메시지 관리 시스템
KR100708180B1 (ko) * 2005-09-22 2007-04-17 삼성전자주식회사 화상 압축 장치 및 방법
JPWO2007066709A1 (ja) * 2005-12-07 2009-05-21 ソニー株式会社 符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム
JP2007226615A (ja) * 2006-02-24 2007-09-06 Matsushita Electric Ind Co Ltd 情報処理装置、圧縮プログラム生成方法及び情報処理システム
WO2007117514A1 (en) * 2006-03-31 2007-10-18 Hewlett-Packard Company Mobile device capable of multiple updates
US7733910B2 (en) * 2006-12-29 2010-06-08 Riverbed Technology, Inc. Data segmentation using shift-varying predicate function fingerprinting
CN101398752B (zh) * 2007-09-29 2011-08-31 国际商业机器公司 重叠指令存取单元和重叠指令存取方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5018154A (en) * 1989-09-12 1991-05-21 Brother Kogyo Kabushiki Kaisha Semiconductor laser drive device
US6216213B1 (en) * 1996-06-07 2001-04-10 Motorola, Inc. Method and apparatus for compression, decompression, and execution of program code

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开2007-226615A 2007.09.06

Also Published As

Publication number Publication date
US8347023B2 (en) 2013-01-01
US20100088464A1 (en) 2010-04-08
CN101719100A (zh) 2010-06-02

Similar Documents

Publication Publication Date Title
CN101719100B (zh) 用于非易失性存储器的基于压缩的耗损均衡
US20200042223A1 (en) System and method for facilitating a high-density storage device with improved performance and endurance
US8732538B2 (en) Programmable data storage management
KR101636785B1 (ko) 독립 실리콘 소자들을 갖는 동적 상위 레벨 리던던시 모드 관리
CN109783017B (zh) 一种存储设备坏块的处理方法、装置及存储设备
US8281064B2 (en) Systems, methods and computer program products for encoding data to be written to a nonvolatile memory based on wear-leveling information
US11474708B2 (en) Memory system for handling a bad block and operation method thereof
CN108447523B (zh) 用来控制一记忆装置的方法以及记忆装置与控制器
US9582224B2 (en) Memory control circuit unit, memory storage apparatus and data accessing method
US11164652B2 (en) Two-layer code with low parity cost for memory sub-systems
US9304907B2 (en) Data management method, memory control circuit unit and memory storage apparatus
CN101727983A (zh) 存储设备及其编程方法
CN113971103A (zh) 数据存储中针对极端温度使用条件改进的数据可靠性
KR20210079611A (ko) 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법
CN116775368A (zh) 用于以不同码率在分区之间回拷的多层码率架构
US9467175B2 (en) Decoding method, memory storage device and memory controlling circuit unit
US8276033B2 (en) Data writing method for a flash memory, and flash memory controller and flash memory storage apparatus using the same
KR20240112955A (ko) 스토리지 클래스 메모리, 데이터 프로세싱 방법, 및 프로세서 시스템
US9009389B2 (en) Memory management table processing method, memory controller, and memory storage apparatus
KR101041710B1 (ko) 비휘발성 메모리의 섹터 관리 방법
US11061834B2 (en) Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
Chung et al. C-HYFLUR: Recovery for Power-off Failure in Flash Memory Storage Systems Using Compression Scheme for HYbrid FLUsh Recovery
TWI541818B (zh) 於記憶體陣列編碼資料之技術
CN102117230B (zh) 数据写入方法、闪存控制器与闪存储存装置
CN114664340A (zh) 存储器系统的随机种子生成电路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200424

Address after: Singapore City

Patentee after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Patentee before: Kaiwei international Co.

Effective date of registration: 20200424

Address after: Ford street, Grand Cayman, Cayman Islands

Patentee after: Kaiwei international Co.

Address before: Hamilton, Bermuda

Patentee before: Marvell International Ltd.

Effective date of registration: 20200424

Address after: Hamilton, Bermuda

Patentee after: Marvell International Ltd.

Address before: Babado J San Michael

Patentee before: MARVELL WORLD TRADE Ltd.

TR01 Transfer of patent right