CN104471547A - 数据压缩及管理 - Google Patents
数据压缩及管理 Download PDFInfo
- Publication number
- CN104471547A CN104471547A CN201380038327.1A CN201380038327A CN104471547A CN 104471547 A CN104471547 A CN 104471547A CN 201380038327 A CN201380038327 A CN 201380038327A CN 104471547 A CN104471547 A CN 104471547A
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- page
- manager unit
- data segment
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/6082—Selection strategies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明包含用于数据压缩及管理的设备及方法。多种方法包含:接收对应于管理单元数据量的多个数据段;确定所述多个数据段中的每一者的相应可压缩性;根据所述多个数据段中的每一者的相应所确定的可压缩性而压缩所述多个数据段中的每一者;形成压缩管理单元,所述压缩管理单元包含对应于与所述管理单元数据量对应的所述多个数据段的压缩及/或未压缩数据段;及形成包括至少所述压缩管理单元的数据页。
Description
技术领域
本发明一般是关于半导体存储器及方法,且更特定地说,本发明是关于用于数据压缩及管理的设备及方法。
背景技术
存储器装置通常用作为计算机或其它电子装置中的内部半导体集成电路。存在多种不同类型的存储器,其包含易失性存储器及非易失性存储器。易失性存储器可能需要电力来维持其数据,且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM),以及其它。非易失性存储器可通过在断电时保持所存储的数据而提供持久数据,且可包含反及快闪存储器、反或快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)及电阻可变存储器(例如相变随机存取存储器(PCRAM)、电阻随机存取存储器(RRAM)及磁阻随机存取存储器(MRAM)),以及其它。
存储器装置可被组合在一起以形成例如固态硬盘(SSD)等存储器系统的存储容积。固态硬盘可包含非易失性存储器(例如反及快闪存储器及反或快闪存储器),及/或可包含易失性存储器(例如DRAM及SRAM),以及各种其它类型的非易失性及易失性存储器。
SSD可用于代替硬盘驱动器作为计算机的主存储容积,此是因为固态硬盘可在性能、大小、重量、耐用性、操作温度范围及功率消耗方面优于硬盘驱动器。例如,归因于没有移动部件,SSD可避免与磁盘驱动器关联的寻道时间、延时及其它机电延迟,所以SSD可具有比磁盘驱动器优异的性能。SSD制造者可使用非易失性快闪存储器来产生可不使用内部电池电源的快闪SSD,因此允许固态硬盘具有更多用途且更紧凑。
SSD可从与存储器操作(例如读取及写入操作)关联的主机接收命令以传送数据(例如在存储器装置与所述主机之间)。例如,增加与SSD关联的吞吐量及/或增加SSD的存储容量可为有益的。
附图说明
图1是根据本发明的多个实施例的呈包含至少一个存储器系统的计算系统的形式的设备的框图。
图2是绘示根据本发明的多个实施例的数据压缩的框图。
图3A及图3B绘示根据本发明的多个实施例的多个压缩管理单元的组织。
图4绘示根据本发明的多个实施例的对应于数据压缩及管理的功能流程图。
图5绘示根据本发明的多个实施例的与数据压缩及管理关联的功能流程图。
图6A绘示根据本发明的多个实施例的管理单元。
图6B绘示根据本发明的多个实施例的指派给多个页数据的多个CMU。
图6C绘示根据本发明的多个实施例的指派给一页数据的多个CMU。
图7绘示根据本发明的多个实施例的对应于数据压缩及管理的功能流程图。
具体实施方式
本发明包含用于数据压缩及管理的设备及方法。多个方法包含:接收对应于管理单元数据量的多个数据段;确定所述多个数据段中的每一者的相应可压缩性;根据所述多个数据段的各自经确定的可压缩性而压缩所述多个数据段中的每一者;形成压缩管理单元,所述压缩管理数据包含对应于与所述管理单元数据量对应的所述多个数据段的压缩及/或未压缩数据段;及形成包括至少所述压缩管理单元的数据页。
多个方法包含将数据页存储于存储器中,其中所述数据页包含指示所述数据页内的多个压缩管理单元的物理组织的元数据。所述多个压缩管理单元中的每一者对应于管理单元数据量,所述管理单元数据量对应于某数量(N)个未压缩数据段,且所述压缩管理单元中的每一者开始于所述页的多个量化边界之一,其中每个连续量化边界之间的空间分配能够容纳未压缩数据段。
在本发明的以下详细描述中,参考构成本发明的一部分的附图,且在附图中以绘示方式展示可如何实践本发明的一或多项实施例。这些实施例被足够详细地描述以使一般技术者能够实践本发明的所述实施例,且应了解:可利用其它实施例;及可在不脱离本发明的范围的情况下作出过程、电性及/或结构变化。如本文中所使用,指示符“N”(尤其关于图示中的参考数字)指示:可包含多个如此指明的特定特征。如本文中所使用,“多个”特定事物可能是指这些事物中的一个或多个(例如,多个存储器装置可能是指一个或多个存储器装置)。
本文中的图遵循编号惯例,其中首位或前几位数字对应于图示图号且剩余数字识别图示中的元件或组件。可通过使用类似数字而识别不同图之间的类似元件或组件。例如,230可指图2中的元件“30”,且类似元件可在图4中标示为430。应了解,本文各种实施例中所展示的元件可被添加、交换及/或消除以便提供本发明的多个额外实施例。另外,应了解,图中所提供元件的比例及相对尺度旨在绘示本发明的某些实施例,而不应被视为有所限制。
图1是根据本发明的多个实施例的呈包含至少一个存储器系统104的计算系统100的形式的设备的框图。如本文中所使用,存储器系统104、控制器108或存储器装置110还可能被分别视为“设备”。存储器系统104可例如为固态硬盘(SSD),且可包含主机接口106、控制器108(例如处理器及/或其它控制电路)及多个存储器装置110-1、……、110-N(例如固态存储器装置,例如反及快闪装置),所述存储器装置提供存储器系统104的存储容积。
如图1中所绘示,控制器108可经由多个信道而耦合至主机接口106及存储器装置110-1、……、110-N,且可用于在存储器系统104与主机102之间传送数据。接口106可呈标准化接口的形式。例如,当存储器系统104在计算系统100中用于数据存储时,接口106可为串行高级技术附接(SATA)、快速外围组件互连(PCIe)或通用串行总线(USB),以及其它连接器及接口。然而,一般来说,接口106可提供接口以在存储器系统104与主机102(其具有用于接口106的兼容接受器)之间传递控制信号、地址信号、数据信号及其它信号。
主机102可为主机系统,例如个人膝上型计算机、台式计算机、数字照相机、移动电话或存储器卡读取器,以及各种其它类型的主机。主机102可包含系统主板及/或背板,且可包含多个存储器存取装置(例如多个处理器)。
控制器108可与存储器装置110-1、……、110-N通信以控制数据读取、写入及擦除操作,以及其它操作。控制器108可包含例如呈硬件及/或固件(例如一个或多个集成电路)及/或软件形式的多个组件以控制对多个存储器装置110-1、……、110-N的存取及/或促进主机102与存储器装置110-1、……、110-N之间的数据传送。例如,在图1所绘示的示例中,控制器108包含压缩/解压组件112(例如压缩/解压引擎)、加密组件114、转译组件116及缓冲区管理组件118。
压缩/解压组件112可用于根据本文中所描述的多个实施例而压缩及/或解压数据。加密组件114可用于根据加密规范(例如高级加密标准(AES))而加密及/或解密数据。转译组件116可例如用于将接收自主机102的命令转译为适当命令以实现对多个存储器装置110-1、……、110-N的所需存取。例如,主机102可在定址存储器系统104时使用逻辑地址(例如逻辑区块地址(LBA))。转译组件116可提供从逻辑地址至存储器装置110-1、……、110-N中的物理位置(例如物理地址)的映射,且反之亦然(例如作为快闪转译层(FTL)的部分)。这些地址映射可由转译组件116以数据结构的形式(例如表)提供,且可允许主机102忽略存储器装置110-1、……、110-N的物理特性,使得存储器系统104的存储容积可被看作逻辑数据段(例如区段)的连续线性映射。
控制器108可包含其它组件,例如缓冲区管理组件118,以及各种其它组件,其可用于控制与存储器系统104关联的存储器操作。如本文中进一步描述,缓冲区管理组件118可包含可用于根据本发明的多个实施例的数据压缩及管理的多个缓冲区。
存储器装置110-1、……、110-N可包含多个存储器单元(例如非易失性存储器单元)阵列。所述阵列可例如为具有反及架构的快闪阵列。然而,实施例不受限于特定类型的存储器阵列或阵列架构。例如,存储器单元可分组为包含多个存储器单元物理页的多个区块。多个区块可包含于存储器单元的平面中,且阵列可包含多个平面。作为示例,存储器装置可经配置以存储每页8KB(千字节)的用户数据、每区块128页的用户数据、每平面2048区块及每装置16个平面。
在操作中,数据可作为例如数据页被写入至及/或读取自存储器系统的存储器装置(例如系统104的存储器装置110-1、……、110-N)。因而,数据页可被称为存储器系统的数据传送大小。数据可以被称为区段(例如主机区段)的数据段形式传送至主机(例如主机102)/自主机传送。因而,数据的区段可被称为主机的数据传送大小。
虽然数据页可包括多个字节的用户数据(例如包含多个数据区段的数据有效负载)以及对应于所述用户数据的元数据,但数据页的大小通常可只是指用于存储所述用户数据的字节数。作为示例,具有4KB的页大小的数据页可包含4KB的用户数据(例如,采用512B的区段大小的8个区段)以及对应于所述用户数据的多个字节(例如,32B、54B、224B等等)的元数据。所述元数据可包含完整性数据,例如错误数据(例如错误检测及/或校正码数据)及/或地址数据(例如逻辑地址数据),以及对应于用户数据的其它元数据。
图2是绘示根据本发明的多个实施例的数据压缩的框图。在图2中,区块230表示接收自主机(例如上文结合图1所描述的主机102)且将(例如结合写入操作)存储于(例如写入至)存储器(例如图1中所展示的存储器装置110-1、……、110-N)中的数据段(例如用户数据区段)。各数据区段230可具有对应于其(例如与各数据区段关联)的逻辑地址(例如LBA)且可具有“X”个字节的区段大小,其中X可例如为512B。实施例不受限于特定区段大小且接收自主机的一些区段230可具有不同区段大小。虽然图2中已绘示一个区段230,但可例如结合特定写入操作而从主机接收多个区段230(例如对应于多个连续LBA的多个区段)。
如图2中所展示,区段230可提供至压缩组件212,例如上文结合图1所描述的控制器108的压缩/解压组件112。压缩组件212可经配置以根据多个压缩方案(例如霍夫曼(Huffman)编码、香农-范诺(Shannnon-Fano)编码、斐波那契(Fibonacci)编码、算术编码及/或埃利阿斯伽玛(Elias gamma)编码,以及其它压缩方案)而压缩数据。
在本发明的多个实施例中,压缩组件212可确定区段230的可压缩性(例如区段的可压缩量)。在多个实施例中,压缩组件212可经配置以根据区段230的所确定的可压缩性而压缩区段230,且确定对应于可压缩区段230的压缩级别(CL)(例如在区段230可压缩的条件下,基于其可压缩性)。在多个实施例中,压缩组件212可将压缩标头(CH)添加至区段230。所述压缩标头可例如提供信息,例如区段230是否可压缩、区段230的可压缩性(例如对应于区段的压缩比)、压缩区段的大小(例如对应于压缩区段的数据字节数)及/或压缩区段的格式,以及其它信息。所述压缩标头可具有“Y”个字节的大小,其中Y可例如为4B。
图2绘示基于区段230的不同可压缩性而确定的多个不同压缩级别232-U(未压缩)、232-0(CL0)、232-1(CL1)、232-2(CL2)及232-3(CL3)。例如,压缩级别232-U对应于未压缩区段234,其可被称为不可压缩区段234。未压缩区段234表示包含不可压缩数据或可最低限度压缩数据的X字节区段230(例如不可压缩或至多可压缩至X-Z个字节的X字节区段230,其中“Z”等于可例如为4B的逻辑地址(LA)大小)。因而,不可压缩区段234可包含与所接收的区段230相同的字节数量(例如,在此情况中为X个字节)。不可压缩区段234还包含压缩标头240-U,其可提供所述区段不包含压缩数据或与所述区段关联的数据被压缩的量小于最小阈值(例如小于X-Z个字节)的指示,以及对应于区段234的其它信息。作为示例,对应于未压缩区段234的压缩标头240-U可为对应于区段234的LA且可具有4B的大小。
在图2所绘示的示例中,压缩级别232-0对应于压缩区段236-0,压缩级别232-1对应于压缩区段236-1,压缩级别232-2对应于压缩区段236-2,及压缩级别232-3对应于压缩区段236-3。在图2所绘示的示例中,压缩区段236-0表示经确定为可压缩至X-Z个字节与(X+Y)/2-Y-Z个字节之间的X字节区段230,压缩区段236-1表示经确定为可压缩至(X+Y)/2-Y-Z个字节与(X+Y)/4-Y-Z个字节之间的X字节区段230,压缩区段236-2表示经确定为可压缩至(X+Y)/4-Y-Z个字节与(X+Y)/8-Y-Z个字节之间的X字节区段230,及压缩区段236-3表示经确定为可压缩至小于或等于(X+Y)/8-Y-Z个字节的X字节区段230。
压缩区段236-0、236-1、236-2及236-3中的每一者具有对应于其的相应数量的“无用”数据238-0、238-1、238-2及238-3。所述“无用”数据可指其中暂时保存压缩区段236-0、236-1、236-2及236-3的缓冲区的剩余部分。例如,如果压缩数据区段(例如236-0)包含400个字节的数据且保存于512字节缓冲区中,那么无用数据部分(例如238-0)将为填充所述缓冲区的剩余部分的112个字节的数据。
压缩区段236-0、236-1、236-2及236-3中的每一者包含对应于其的相应压缩标头240-0、240-1、240-2及240-3及逻辑地址242-0、242-1、242-2及242-3。压缩标头240-0、240-1、240-2及240-3可例如为4B标头且可提供与相应压缩区段236-0、236-1、236-2及236-3有关的各种信息。逻辑地址242-0、242-1、242-2及242-3可例如为对应于相应压缩区段236-0、236-1、236-2及236-3的4B LBA。实施例不受限于压缩标头240-0、240-1、240-2及240-3或逻辑地址242-0、242-1、242-2及242-3的特定大小。在此示例中,CH大小及LA大小可影响对应于压缩级别232-U及232-0至232-3的可压缩性范围。
在多个实施例中,压缩区段236-0、236-1、236-2及236-3及未压缩区段234可在由压缩组件212压缩之后被加密(例如经由加密组件,例如图1中所展示的加密组件114)。在多个实施例中,压缩标头240-0、240-1、240-2、240-3及240-U及/或逻辑地址242-0、242-1、242-2及242-3可保持不加密(例如,其可被绕过加密组件投送)。
图2还绘示标准区段230-S及对应LA 242-S。如本文中所使用,标准区段(例如230-S)可指不提供至压缩组件(例如212)的主机区段(例如230)。因而,在此示例中,区段230-S的大小可为512B且LA 242-S的大小可为4B。
如下文进一步描述,在多个实施例中,可形成多个压缩管理单元(CMU),所述CMU可各自包含指派给其的多个压缩数据段(例如压缩区段236-0、236-1、236-2及236-3)及对应压缩值,所述对应压缩值可基于对应于与CMU对应的所述压缩数据段的所确定的可压缩性及/或压缩级别。所述CMU可(例如经由控制器)指派给数据页(例如逻辑页),所述数据页可例如包含指示所述页内的所述多个CMU的特定位置的元数据。在多个实施例中,可形成包含例如具有不同对应压缩值的CMU的数据页。
图3A及图3B绘示根据本发明的多个实施例的多个压缩管理单元(CMU)的组织。图3A及图3B中所绘示的示例包含多个数据页350、350-0、350-1、350-2、350-3、350-4及350-5。如上文所描述,数据页可指存储器系统(例如图1的系统104)的数据传送大小。例如,数据可一次一页地写入至及/或读取自存储器系统。数据页可经配置以例如存储管理单元的量的用户数据。如本文中所使用,管理单元是指对应于由转译组件(例如FTL)(例如图1中所展示的转译组件116)管理的特定数量(例如“N”)个未压缩数据段(例如主机区段及对应逻辑地址)的数据量。作为示例且如图3A中所展示,管理单元(MU)360可包括对应于8个数据段(例如8个主机区段331-1至331-8,以及其8个相应LA)的数据量。因而,假定未压缩主机区段大小为512B及LA大小为4B,那么管理单元量的数据360可为4,128B(例如516B/区段×8个区段)。实施例不受限于特定管理单元大小,且数据页可经配置以存储一个以上管理单元量的数据360。
在图3A及图3B所绘示的示例中,数据页350、350-0、350-1、350-2、350-3、350-4及350-5中的每一者包括一个管理单元量的数据360(例如,对应于512B主机区段大小及4B LA大小的八个516B数据段)。页350-0、350-1、350-2、350-3、350-4及350-5中的每一者包含有效负载部分,其包含一个或多个压缩管理单元(CMU)以及对应于所述CMU的元数据。CMU是指已经历压缩(例如经由压缩组件,例如图1中所展示的112)的管理单元量的数据360。因为对应于MU的数据段(例如331-1至331-8)中的一个或多个无法被压缩或可被最低限度压缩(例如图2中所展示的不可压缩区段234),所以CMU的大小可变动。例如,CMU可具有MU的相同及/或类似大小(例如所有区段不可压缩或可最低限度压缩)或可具有减小大小(例如对应于MU的多个数据段中的一个或多个可压缩)。因而,对应于管理单元量的数据360的数据页可包括多个CMU(例如,多个CMU可指派给数据页)。
在图3A及图3B所展示的示例中,页350、350-0、350-1、350-2、350-3、350-4及350-5中的每一者包含相应元数据362、362-0、362-1、362-3、362-4及362-5,以及相应元数据365、365-0、365-1、365-3、365-4及365-5。如本文中进一步所描述,元数据362、362-0、362-1、362-3、362-4及362-5可包含拓扑元数据,其指示相应页内(例如指派给相应页)的CMU的组织。作为示例,元数据362、362-0、362-1、362-3、362-4及362-5可指示对应于相应页的所述多个CMU如何布置于页内及/或指示对应于与相应页对应的相应数量的CMU的压缩值。作为示例,元数据362、362-0、362-1、362-3、362-4及362-5可包含拓扑元数据,例如图3B中所绘示的拓扑元数据366及367。在图3A及图3B所绘示的示例中,元数据365、365-0、365-1、365-3、365-4及365-5包含对应于与相应页对应的一个或多个CMU的错误数据(例如错误校正码(ECC)数据)。实施例不受限于特定类型的错误数据且可包含例如循环冗余校验(CRC)码。
在图3A及图3B中,数据页350、350-0、350-1、350-2、350-3、350-4及350-5各自包含多个CMU。作为示例,每个CMU可包含(例如由控制器)指派给其的特定数目个(例如8个)压缩及/或未压缩区段(例如,图2中所展示的压缩区段236-0、236-1、236-2、236-3及/或未压缩区段234)。因而,每个CMU可包含对应于特定数目个(例如8个)LBA的数据。在多个实施例中,每个CMU可包含对应于连续LBA的数据(例如,对应于LBA0至LBA 7的数据区段可指派给特定CMU,且对应于LBA 8至LBA 15的数据区段可指派给不同CMU)。如上文结合图2所描述,可针对每一相应区段(例如基于其可压缩性或缺乏可压缩性)而确定压缩级别(例如未压缩、CL0、CL1、CL2及CL3)。所述压缩级别可表示可压缩性范围。例如,在图2所绘示的示例中,压缩至X个字节与X-Z个字节之间的区段(例如主机区段230+Z,其中Z等于LA大小)对应于不可压缩或可最低限度压缩的区段(未压缩),压缩至X-Z个字节与(X+Y)/2-Y-Z个字节之间的区段对应于压缩级别CL0,压缩至(X+Y)/2-Y-Z个字节与(X+Y)/4-Y-Z个字节之间的区段对应于压缩级别CL1,压缩至(X+Y)/4-Y-Z个字节与(X+Y)/8-Y-Z个字节之间的区段对应于压缩级别CL2,及压缩至小于(X+Y)/8-Y-Z个字节的区段对应于压缩级别CL3。在多个实施例中,压缩级别的数量可为固定的;然而,实施例不受限于特定数目个压缩级别(例如,可存在多于或少于四个不同压缩级别及未压缩级别)。
在多个实施例中,每个CMU可具有对应于其的特定压缩值(例如CV0、CV1、CV2及CV3或未压缩)。对应于相应CMU的压缩值可指示分配至指派给相应CMU的相应压缩区段的空间量(例如以字节为单位),且可例如基于对应于指派给相应CMU的相应压缩区段的所确定压缩级别(例如CL0、CL1、CL2及CL3或未压缩)。例如,假定未压缩区段大小为512B,CH大小为4B,及LA大小为4B,那么CL0的压缩级别可指示508B与250B之间的压缩区段大小,CL1的压缩级别可指示250B与120B之间的压缩区段大小,CL2的压缩级别可指示120B与56B之间的压缩区段大小,及CL3的压缩级别可指示小于或等于56B的压缩区段大小。作为示例,压缩值(例如CV0、CV1、CV2及CV3或未压缩)可对应于与特定压缩级别(例如CL0、CL1、CL2及CL3或未压缩)对应的最高压缩区段大小。例如,压缩值CV0可指示对应于特定CMU的每压缩区段的508B空间分配(例如,其中508B为对应于压缩级别CL0的最高压缩区段大小)。类似地,压缩值CV1可指示对应于特定CMU的每压缩区段的250B空间分配(例如,其中250B为对应于压缩级别CL1的最高压缩区段大小)。此外,压缩值CV2可指示对应于特定CMU的每压缩区段的120B空间分配(例如,其中120B为对应于压缩级别CL2的最高压缩区段大小),及压缩值CV3可指示对应于特定CMU的每压缩区段的56B空间分配(例如,其中56B为对应于压缩级别CL3的最高压缩区段大小)。“未压缩”的压缩值可指示MU数据量(例如516B)可压缩至不小于508B。因而,在多个实施例中,压缩值(例如CV0、CV1、CV2及CV3或未压缩)可对应于压缩比。例如,在上述示例中,CV1可对应于1/2的压缩比,CV2可对应于1/4的压缩比,及CV3可对应于1/8的压缩比。实施例不受限于这些示例。
在多个实施例中,可基于对应于MU数据量的相应数量的(例如N个)压缩区段中的可最少压缩区段而确定对应于CMU的压缩值(例如CV0、CV1、CV2及CV3或未压缩)。例如,如果MU对应于八个区段(例如MU 360)的数据(其中所述区段中的六者具有CL3的压缩级别,及所述区段中的两者具有CL2的压缩级别),那么CV2的压缩值(其对应于CL2的压缩级别)可指派给所述CMU。因而,尽管具有CL3的压缩级别的压缩区段被压缩至56B或更小,仍可给所述CMU提供每压缩区段120B的空间分配。因而,压缩值还可指示特定CMU的空间分配(例如大小)。在此示例中,包括八个压缩区段(例如对应于八个LBA的CMU)及具有CV2的压缩值的CMU可指示约1KB的CMU大小(例如,每压缩区段120B+每区段4B CH与每区段4B LA×每CMU 8个区段)。实施例不受限于此示例。
在图3A所绘示的示例中,页350包含一个具有“未压缩”的压缩值的CMU。即,页350的CMU包括对应于MU数据量360的未压缩或最低限度压缩的数据段。例如,对应于页350的MU 360的“N”个数据段为例如结合图2所描述的数据段234的段。在图3A所绘示的示例中,页350-0包含具有CV0的对应压缩值的CMU。页350-1包含各具有CV1的对应压缩值的两个CMU。页350-2包含各具有CV2的对应压缩值的四个CMU。页350-3包含各具有CV3的对应压缩值的八个CMU。
在其中主机区段(例如图2中所展示的区段230)不可压缩的情况下,具有固定页大小的页可包括固定数目个区段(例如各对应于相应固定大小区段的固定数目个LBA)。例如,4KB页大小可包括八个未压缩区段(例如,各对应于相应512B区段的八个LBA)。根据本文中所描述实施例的数据压缩及管理可增加对应于特定页大小的区段(例如LBA)数量及/或能够提供包括不同数目个区段的数据页,其可相较于先前的数据压缩及管理系统而增加存储容量及/或改良存储器系统的吞吐量,以及提供其它益处。
考虑示例,其中页350、350-0、350-1、350-2及350-3中的每一者具有4128B的页大小(例如4KB的用户数据+LA数据),且各CMU包括八个压缩及/或未压缩区段(例如各对应于相应512B区段的八个LBA)连同所述区段的对应4B CH及/或4B LA。对于此示例,假设:对应于页350的CMU的压缩值“未压缩”指示对应于CMU的八个区段被分配516B(例如,对应于CMU的区段中的每一者被压缩至至多508B+4B CH)。因而,页350的CMU的空间分配(例如大小)为4128B(例如516B×8个未压缩或最低限度压缩的区段)且页350的总大小为4128B(例如每CMU 4128B×每页1个CMU)。在此示例中,假设:压缩值CV0指示对应于CMU的八个区段被分配508B(例如,对应于CMU的区段中的每一者被压缩至250B与508B之间)。类似于页350,页350-0的CMU的空间分配为4128B,使得页350-0的大小为4128B(例如,页350容纳压缩至250B与508B之间的8个主机区段+每区段4B CH及每区段4B LA)。对于图3A中所展示的示例,假设:对应于页350-1的两个CMU的压缩值CV1指示对应于相应CMU的八个压缩区段中的每一者被分配250B(例如,压缩区段中的每一者已被压缩至250B或更小)。因而,针对页350-1的各CMU的空间分配为2064B(例如250B×8个压缩区段+每区段4B CH及每区段4B LA)且页350-1的总大小为4128B(例如每CMU 2064B×每页2个CMU),其匹配4128B的页大小。然而,页350-1包括两倍于页350及350-0(例如包括具有未压缩或CV0的压缩值的CMU的页)(其包括8个区段)的区段(例如16个)。对于此示例,假设:对应于页350-2中的四者的压缩值CV2指示对应于相应CMU的四个压缩区段中的每一者被分配120B(例如,压缩区段中的每一者已被压缩至120B或更小)。因而,各CMU的大小为1024B(例如120B×8个压缩区段+每区段4B CH及每区段4B LA),使得页350-2的有效负载部分为4096B(例如每CMU 1024B×每页4个CMU),其略小于4128B的页大小。然而,页350-2包括四倍于页350及350-0(例如包括具有未压缩或CV0的压缩值的CMU的页)(其包括8个区段)的区段(例如32个)。对于此示例,假设:对应于页350-3的八个CMU的压缩值CV3指示对应于相应CMU的八个压缩区段中的每一者被分配56B(例如,压缩区段中的每一者已被压缩至56B或更小)。因而,各CMU的大小为512B(例如56B×8个压缩区段+4B CH区段及每区段4B LA),使得页350-3的有效负载部分为4096B(例如每CMU 512B×每页8个CMU),其略小于4128B的页大小。然而,页350-3包括八倍于页350及350-0(例如包括具有未压缩或CV0的压缩值的CMU的页)(其包括8个区段)的区段(例如64个)。
图3B绘示可根据本文中所描述的实施例而形成的页350-4及350-5。如图3B中所绘示,页350-4及350-5包括具有不同对应压缩值的多个CMU。如图所绘示,页350-4及350-5的CMU被收容于等于MU数据量360的空间分配内。在此示例中,页350-4包含具有CV3的压缩值的两个CMU 358-1、具有CV2的压缩值的一个CMU 356-1及具有CV1的压缩值的一个CMU 354-1。页350-5包含各具有CV1的压缩值的两个CMU354-1。
图3B还绘示对应于页350-4的拓扑元数据366及对应于页350-5的拓扑元数据367的示例。拓扑元数据可包含于相应元数据字段362-4及362-5内且可例如指示CMU在相应页内的组织方式。在图3B所展示的示例中,拓扑元数据(例如366及367)包括8位模式,其可指示在特定页350-4/350-5内的相应CMU的压缩值以及CMU如何定位于所述特定页内。
在图3B所展示的示例中,拓扑元数据366包括位模式“11101000”,其可指示相应数量的CMU 358-1、356-1及354-1在页350-4内的特定位置以及这些相应CMU的压缩值。类似地,拓扑元数据367包括位模式“10001000”,其可指示相应数量的CMU354-1在页350-5内的特定位置以及这些相应CMU的压缩值。
如下文进一步所描述,在多个实施例中,拓扑元数据(例如366/367)可(例如作为元数据362-1至362-5的至少一部分)连同对应数据页一起存储于存储器(例如图1中所展示的存储器装置110-1、……、110-N)中。可自所述存储器(例如结合读取操作)检索拓扑元数据以确定在所述特定数据页内的多个CMU的组织。
实施例不受限于结合图3A及图3B所描述的示例。例如,如下文结合图6至图7进一步所描述,在多个实施例中,可对待存储于存储器中的管理单元量的所接收数据执行压缩操作,且CMU可包含对应于MU的压缩及/或未压缩数据段。对应于MU数据量的多个(例如N个)数据段(例如区段)可被压缩为群组(例如形成CMU量的数据)或N个区段可被个别压缩且接着被组合以形成CMU。CMU可指派给包括至少所述CMU的数据页,所述CMU开始于所述页的多个量化边界之一,其中所述连续量化边界中的每一者之间的空间分配能够容纳未压缩数据段。
图4绘示根据本发明的多个实施例的对应于数据压缩及管理的功能流程图。在图4中,方框430表示接收自主机(例如接收自主机(例如图1中所展示的主机102)的多个数据区段)且提供至压缩组件412(例如结合写入操作)的多个数据段。所述压缩组件可为例如图2中所展示的压缩组件212或图1中所展示的压缩/解压组件112的压缩组件。在此示例中,对应于八个逻辑地址(LA)的数据被提供至压缩组件412。所述八个LA可对应于八个区段(例如八个512B未压缩主机区段),其可对应于管理单元数据量。因而,在多个实施例中且在图4所绘示的示例中,每个CMU可包括八个区段的有价值用户数据(例如对应于八个逻辑地址的用户数据)。在多个实施例中,所述LA可为连续逻辑地址,使得每个CMU包括对应于例如八个连续LBA的区段。然后,实施例不受限于此。
如图4中所绘示,所接收的数据430可由压缩组件412压缩(例如根据其相应可压缩性),且压缩区段433-0至433-7可被提供至相应缓冲区415。如上文所描述,可针对相应压缩区段433-0至433-7中的每一者而确定压缩级别。在此示例中,压缩区段433-0、433-2、433-3、433-5、433-6及433-7各自具有CL3的压缩级别,及压缩区段433-1及433-4各自具有CL2的压缩级别。作为示例,压缩级别CL2可对应于压缩至120B与56B之间的区段及压缩级别CL3可对应于压缩至56B或更小的区段。
可形成包括八个压缩区段433-0至433-7(例如对应于MU量的接收数据的压缩数据)的CMU 456。CMU 456可被指派压缩值,所述压缩值可基于压缩区段433-0至433-7的所确定压缩级别及/或可压缩性。所指派的压缩值可例如基于所述多个区段433-0至433-7的可最少压缩区段。例如,在此示例中,所指派的压缩值为对应于区段433-1及433-4的压缩级别CL2的CV2。
如图4中所绘示,CMU 456可指派给包括多个CMU的页450。在此示例中,页450包括四个CMU;然而,如上文所描述,数据页可包括多于或少于四个CMU。应注意,对于此示例,具有CV3的压缩值的两个CMU可对应于512B,而具有CV2的压缩值的CMU 456可对应于1024个字节,且具有CV1的压缩值的CMU可对应于2064B,总共为4112B,其小于4128的页大小。然而,相较于总页大小,CMU的总大小可提供可接受的压缩增益。页450可存储于存储器中(例如写入至存储器单元的物理页)。即,指派给逻辑页450的CMU可存储于所述存储器的存储器单元的物理页中。逻辑页大小可相同或不同于存储器单元的物理页。
图5绘示根据本发明的多个实施例的对应于数据压缩及管理的功能流程图。图5中所展示的示例包含页550,其包括多个CMU 555-1、555-2及555-3及元数据(META)。CMU 555-1、555-2及555-3可为例如上文结合图2、图3A、图3B及图4所描述的CMU的CMU。在图5所绘示的示例中,CMU 555-1、555-2及555-3各自包括八个压缩区段的数据(例如对应于八个LBA的压缩数据)。CMU 555-1及555-2具有指派给其的对应压缩值CV2,所述对应压缩值在此示例中指示每区段120B的空间分配(例如,指派给CMU555-1及555-2的每个压缩区段被压缩至120B或更小)。如图5中所展示,CMU 555-2包括压缩区段582-0至582-7。
页550的元数据(META)可包含拓扑元数据574(例如图3B中所描述的拓扑元数据366及367),其可指示页550内的CMU 555-1、555-2及555-3的物理组织以及对应于所述CMU的相应压缩值。页550的元数据(META)还可包含CMU索引576,其可例如用于定位特定CMU 555-1、555-2及555-3在页550内的起始位置。
图5绘示根据本发明的多个实施例的存取对应于目标逻辑地址的目标CMU(例如结合读取操作)的示例。例如,图5中所展示的区块570表示对应于与页560的CMU 555-2对应的目标逻辑地址584的读取请求。所述读取请求可例如由主机(例如图1中所描述的主机102)及/或控制器(例如图1中所描述的控制器108)发起。
在多个实施例中,数据结构(例如地址转译表)可存储于控制器上的存储器中(例如DRAM、SRAM等等)及/或所述地址转译表的至少一部分可存储于与所述控制器耦合的存储器(例如多个存储器装置(例如110-1、……、110-N))中。所述地址转译表可由转译组件(例如图1中所描述的转译组件116)维持且可包含逻辑地址至物理地址的映射。
例如,在图5所绘示的示例中,映射572指示对应于被指派目标逻辑地址584的页550的物理地址。在多个实施例中且如图5中所展示,映射572还包含对应于目标逻辑地址584的特定CMU(例如555-2)的偏移索引(例如578)。在操作中,由映射572提供的物理地址可用于定位页550在多个存储器装置中的位置。可自页550的元数据(META)检索拓扑元数据574。如上文所描述,拓扑元数据574指示页550内的CMU(例如555-1、555-2及555-3)的物理组织(例如CMU在页内的特定位置、对应于所述CMU的压缩值等等)。由映射572提供的偏移索引可指示目标CMU在页550内的起始位置。
例如,在图5所展示的示例中,偏移索引578(例如“2”)指示目标CMU 555-2在页550内的起始位置。基于指派给目标CMU 555-2的已知压缩值(例如,在此示例中为CV2),可有效遍历(traverse)对应于目标CMU 555-2的区段(例如582-0至582-7)。可定位目标逻辑地址584,且可将对应于所述目标逻辑地址的压缩数据582-3传送至主机以完成对应于读取请求570的读取操作。在多个实施例中,对应于目标逻辑地址(例如584)的压缩数据(例如582-3)可在传送至主机之前被解压(例如经由压缩/解压组件,例如图1中所展示的压缩/解压组件112)。
图6A绘示根据本发明的多个实施例的管理单元660。如上文所描述,管理单元(MU)可能是指对应于多个未压缩数据段(例如区段)的数据量(例如大小)。可对MU量的数据段执行压缩操作以形成CMU。如上文所描述,对应于MU的数据段的数量(例如N)可例如为八个,且可或不可经由压缩操作压缩,使得一个或多个CMU可被收容于对应于MU的空间分配内。例如,如果对应于MU 660的”N”个区段不可压缩或可最低限度压缩,那么只有一个包括所述”N”个区段的CMU可被收容于对应于MU 660的空间分配内。
作为示例,MU 660可表示等于八个未压缩512B主机区段(例如4KB)的空间分配。在多个实施例中且如图6A中所绘示,对应于MU(例如660)的空间分配可被分成对应于“N”个区段(例如八个512B区段)的多个量化空间分配(例如671-1至671-8)。因而,图6A中所展示的MU 660包含对应于相应空间分配671-1至671-8的多个量化边界673-1至673-8。因此,每个连续量化边界673-1至673-8之间的空间分配能够容纳未压缩区段。
图6B绘示根据本发明的多个实施例的指派给多个数据页650-1及650-2的多个CMU 661-1、661-2、661-3、661-4。在多个实施例中,页可容纳MU量的数据660,其中MU对应于N个(例如8个)未压缩区段。例如图6B中所绘示,页650-1可容纳MU量的数据660及页650-2可容纳MU量的数据660。在此示例中,页650-1及650-2包含元数据(例如662-1及662-2),其可指示相应页内的CMU的物理组织及对应于所述页的错误数据(例如665-1)(例如ECC数据)。
如上文所描述,CMU 661-1、661-2、661-3、661-4中的每一者可对应于MU量的数据(例如N个区段,其中N可例如为8)。指派给一页的每个CMU可包含对应于八个压缩或未压缩区段的用户数据。作为示例,CMU 661-1至661-4中的每一者包含对应于八个压缩区段(例如,N等于8)的用户数据。
在多个实施例中且如图6B中所绘示,一页的CMU中的每一者开始于所述页的多个量化边界之一。如图6B中所展示,页的量化边界可对应于与MU(例如660)关联的量化空间分配。在多个实施例中,页的CMU还结束于页的量化边界;然而,CMU可开始于第一页(例如650-1)的量化边界且结束于不同页(例如650-2)的量化边界。
在图6B的示例中,页650-1及650-2包含对应于与MU 660关联的八个相应空间分配671-1至671-8的八个量化边界673-1至673-8。CMU 661-1开始于页650-1的量化边界673-1且结束于边界673-3,使得其跨越两个空间分配。在此示例中,对应于CMU 661-1的用户数据被压缩至小于两个完全空间分配的量。因而,CMU 661-1包括一定量的无用数据675-1,其可用于填充对应于CMU 661-1的缓冲区(图中未展示)。CMU 661-2开始于页650-1的量化边界673-3且结束于边界673-4,使得其跨越一个空间分配。在此示例中,对应于CMU 661-2的用户数据被压缩至小于一个完全空间分配的量。因而,CMU661-2包括一定量的无用数据675-2。CMU 661-3开始于页650-1的量化边界673-4且结束于边界673-8,使得其跨越四个空间分配。在此示例中,对应于CMU 661-3的用户数据被压缩至小于四个完全空间分配的量。因而,CMU 661-3包括一定量的无用数据675-3。CMU 661-4开始于页650-1的量化边界673-8且结束于页650-2的边界673-2,使得其跨越两个空间分配。在此示例中,对应于CMU 661-4的用户数据被压缩至小于两个完全空间分配的量。因而,CMU 661-4包括一定量的无用数据675-4。
CMU 661-1至661-4中的每一者包含相应元数据字段663-1至663-4。元数据字段663-1至663-4可例如指示对应CMU的大小(例如长度)、下一个CMU的起始位置及/或与CMU关联的其它信息。在多个实施例中,CMU(例如661-1至661-4)可不包含分离的相应元数据字段,或元数据字段(例如663-1至663-4)可位于除了对应CMU的开始位置以外的位置处。
图6C绘示根据本发明的多个实施例的指派给数据页650-3的多个CMU 661-1至661-8。页650-3可容纳MU量的数据660,例如对应于八个未压缩区段的数据量。在此示例中,页650-3包含元数据662-3,其可指示所述页内的CMU的物理组织及对应于所述页的错误数据665-3(例如ECC数据)。
如上文所描述,CMU 661-1至661-8中的每一者可对应于八个区段(例如,假设:MU 660对应于等于八个区段+对应LA的数据量)。因而,指派给页650-3的各CMU 661-1至661-8可包含对应于八个压缩或未压缩区段的用户数据。在此示例中,CMU 661-1至661-8中的每一者包含对应于八个压缩区段的用户数据(例如,N等于8且CMU中的每一者对应于可压缩的八个主机区段)。
在图6C所绘示的实施例中,页650-3的CMU 661-1至661-8中的每一者开始于所述页的多个量化边界673-1至673-8之一。在此示例中,页650-3包含对应于与MU 660关联的八个相应空间分配671-1至671-8的八个量化边界673-1至673-8。在图6C所展示的示例中,CMU 661-1至661-8中的每一者包含可压缩的用户数据,使得其被收容于八个量化边界673-1至673-8的连续边界之间(例如,CMU 661-1至661-8中的每一者收容于图6A中所展示的八个空间分配671-1至671-3中的单一空间分配内)。CMU 661-1开始于页650-3的量化边界673-1且结束于边界673-2,并且包括可用于填充对应于CMU661-1的缓冲区(图中未展示)的一定量的无用数据675-1。CMU 661-2开始于页650-3的量化边界673-2且结束于边界673-3,并且包括一定量的无用数据675-2。CMU 661-3开始于页650-3的量化边界673-3且结束于边界673-4,并且包括一定量的无用数据675-3。CMU 661-4开始于页650-3的量化边界673-4且结束于边界673-5,并且不包括一定量的无用数据。CMU 661-5开始于页650-3的量化边界673-5且结束于边界673-6,并且包括一定量的无用数据675-5。CMU 661-6开始于页650-3的量化边界673-6且结束于边界673-7,并且不包括一定量的无用数据。CMU 661-7开始于页650-3的量化边界673-7且结束于边界673-8,并且包括一定量的无用数据675-7。CMU 661-8开始于页650-3的量化边界673-8,跨越空间分配671-8,且包括一定量的无用数据675-8。
页650-3的CMU 661-1至661-8中的每一者包含相应元数据字段663-1至663-8。元数据字段663-1至663-8可例如指示对应CMU的大小(例如长度)、下一个CMU的起始位置及/或与CMU关联的其它信息。在多个实施例中,CMU(例如661-1至661-8)可不包含分离的相应元数据字段,或元数据字段(例如663-1至663-4)可位于除了对应CMU的起始位置以外的位置处。
图7绘示根据本发明的多个实施例的对应于数据压缩及管理的功能流程。在图7中,方框730表示接收自主机(例如接收自主机(例如图1中所展示的主机102)的多个数据区段)且提供至压缩组件712(例如结合写入操作)的多个数据段。压缩组件712可为例如图2中所展示的压缩组件212或图1中所展示的压缩/解压组件112的压缩组件。在此示例中,对应于N个逻辑地址(例如8个逻辑地址(LA))的MU量的数据(例如8个区段)被提供至压缩组件712。所述N个LA可对应于可与所述MU量的数据对应的N个512B未压缩主机区段。
压缩组件712可压缩对应于所接收MU的N个区段(如果所述区段中的一个或多个可压缩),从而形成压缩管理单元(CMU)。因而,在多个实施例中,CMU可包括N个区段的量的用户数据(例如对应于N个逻辑地址的用户数据)。在多个实施例中,对应于由压缩组件712接收的MU的N个未压缩数据区段可被个别压缩(例如根据相应可压缩性)且接着被组合以形成CMU。然而,实施例不受限于此。例如,在多个实施例中,对应于由压缩组件712接收的MU的N个未压缩区段的群组可被一起压缩以形成CMU。
在多个实施例中且如图7中所绘示,由压缩组件712形成的CMU可指派给数据页(例如页750)。如上文所描述,数据页可包括多个CMU。在多个实施例中,所述CMU可开始于对应于页750的多个量化边界(例如773-1至773-8)之一。连续边界773-1至773-8之间的空间分配可经设定大小以例如容纳未压缩区段。
在此示例中,页750包含元数据762,其可提供例如页750内的CMU的物理组织的信息。页750还包含CMU元数据763,其可提供与指派给页750的特定CMU有关的信息。作为示例,元数据763可指示特定CMU的大小(例如长度)及/或对应于特定CMU的逻辑地址信息,以及其它信息。
结论
本发明包含用于数据压缩及管理的设备及方法。多个方法包含:接收对应于管理单元数据量的多个数据段;确定所述多个数据段中的每一者的相应可压缩性;根据所述多个数据段中的每一者的相应所确定的可压缩性而压缩所述多个数据段中的每一者;形成压缩管理单元,所述压缩管理单元包含对应于与所述管理单元数据量对应的所述多个数据段的压缩及/或未压缩数据段;及形成包括至少所述压缩管理单元的数据页。
虽然已在本文中绘示及描述具体实施例,但所属领域的一般技术人员应了解,经计算以实现相同结果的布置可代替所展示的具体实施例。本发明旨在涵盖本发明的一或多项实施例的调适或变动。应了解,已以绘示方式而非限制方式给出上述描述。所属领域的技术人员将在检阅上述描述之后明白上述实施例及本文中未具体描述的其它实施例的组合。本发明的一或多项实施例的范围包含其中使用上述结构及方法的其它应用。因此,应参考随附权利要求以及这些权利要求有权拥有的等效物的全部范围而确定本发明的一或多项实施例的范围。
在以上【具体实施方式】中,为了简化本发明,将一些特征在单一实施例中分组在一起。本发明的方法不应被解译为反映以下意图:本发明的所揭示实施例必须使用比每个权利要求中明确叙述的特征更多的特征。相反,如所附权利要求书所反映,本发明主体可体现于比单一所揭示实施例的所有特征少的特征中。因此,所附权利要求书特此并入至【具体实施方式】中,其中每个权利要求独立作为单独实施例。
Claims (38)
1.一种用于操作存储器的方法,所述方法包括:
接收对应于管理单元数据量的多个数据段;
确定所述多个数据段中的每一者的相应可压缩性;
根据所述多个数据段中的每一者的相应所确定的可压缩性而压缩所述多个数据段中的每一者;
形成压缩管理单元,所述压缩管理单元包含对应于与所述管理单元数据量对应的所述多个数据段的压缩及/或未压缩数据段;以及
形成包括至少所述压缩管理单元的数据页。
2.根据权利要求1所述的方法,其中所述多个数据段是第一数量的数据段且所述压缩管理单元是第一压缩管理单元,且其中所述方法包含:
接收对应于所述管理单元数据量的第二数量的数据段;
确定所述第二数量的数据段中的每一者的相应可压缩性;
根据所述第二数量的数据段中的每一者的相应所确定的可压缩性而压缩所述第二数量的数据段中的每一者;
形成第二压缩管理单元,所述第二压缩管理单元包含对应于与所述管理单元数据量对应的所述第二数量的数据段的压缩及/或未压缩数据段;以及
形成所述数据页,使得其包括至少所述第一压缩管理单元及所述第二压缩管理单元。
3.根据权利要求1所述的方法,其中形成所述压缩管理单元包含确定所述压缩管理单元的压缩值。
4.根据权利要求3所述的方法,其中确定所述压缩管理单元的压缩值包含确定所述压缩管理单元的所述数据段中的可最低压缩数据段。
5.根据权利要求3所述的方法,其中形成所述页还包括形成包含具有不同所确定压缩值的至少两个压缩管理单元的页。
6.根据权利要求1至5中任一权利要求所述的方法,其还包括将所述数据页存储于所述存储器中,其中所述数据页包含:
至少所述压缩管理单元;以及
元数据,其指示所述压缩管理单元在所述页内的特定位置。
7.根据权利要求1至5中任一权利要求所述的方法,其包含基于所述多个数据段中的每一者的所确定可压缩性而确定所述多个数据段中的每一者的相应压缩级别,且其中形成压缩管理单元还包括形成包含具有不同所确定压缩级别的数据段的压缩管理单元。
8.根据权利要求1至5中任一权利要求所述的方法,其中形成所述页包括形成具有各自包含相同数量的数据段的至少两个压缩管理单元的页。
9.根据权利要求1至5中任一权利要求所述的方法,其中接收多个数据段包括在控制器处接收所述多个数据段。
10.根据权利要求1至5中任一权利要求所述的方法,其中根据所述多个数据段中的每一者的相应所确定的可压缩性而压缩所述多个数据段中的每一者包括:如果所述多个数据段中的特定数据段被确定为不可压缩,那么不压缩所述多个数据段中的所述特定数据段。
11.根据权利要求1至5中任一权利要求所述的方法,其中所述多个数据段为接收自主机的未压缩数据区段以及对应多个逻辑地址,其中所述管理单元数据量对应于N个未压缩数据区段以及N个逻辑地址,其中N个未压缩数据区段以及所述N个逻辑地址被收容于所述页中,且其中形成所述页还包括形成包含至少两个压缩管理单元的页,其中所述至少两个压缩管理单元中的每一者对应于N个压缩及/或未压缩数据区段以及所述N个逻辑地址。
12.一种用于操作存储器的方法,所述方法包括:
接收待存储于所述存储器中且对应于管理单元数据量的多个数据段;
确定所述多个数据段的相应可压缩性;
根据所述多个数据段的所确定的可压缩性而压缩所述多个数据段,且将相应压缩标头添加至所述多个压缩数据段中的每一者;
形成压缩管理单元,所述压缩管理单元包含所述多个压缩数据段且具有至少部分基于所述所确定的可压缩性的对应压缩值;以及
将数据页存储于所述存储器中,其中所述数据页包含所述压缩管理单元及至少一个其它压缩管理单元。
13.根据权利要求12所述的方法,其中对应于所述压缩管理单元的所述压缩值对应于压缩比,且其中所述至少一个其它压缩管理单元具有对应于其的不同压缩比。
14.一种用于压缩数据管理的方法,所述方法包括:
将数据页存储于存储器中,其中所述数据页包含元数据以指示所述数据页内的多个压缩管理单元的物理组织;
其中所述压缩管理单元中的每一者具有相应压缩值,所述压缩值至少部分基于对应于所述压缩管理单元的多个压缩数据段的压缩级别;以及
其中对应于相应压缩管理单元的所述多个压缩数据段中的每一者具有对应于所述压缩数据段的相应逻辑地址及压缩标头。
15.根据权利要求14所述的方法,其还包括提供映射,所述映射指示:
所述数据页的物理地址;以及
对应于目标逻辑地址的目标压缩管理单元在所述数据页内的位置。
16.根据权利要求15所述的方法,其还包括至少部分基于与所述目标压缩管理单元关联的所述压缩值,通过遍历所述目标压缩管理单元而定位对应于所述目标逻辑地址的特定压缩数据段。
17.根据权利要求15所述的方法,其中提供所述映射还包括提供索引以指示所述目标压缩管理单元在所述数据页内的起始位置。
18.根据权利要求14至17中任一权利要求所述的方法,其中将数据页存储于存储器中包括响应于主机写入请求而将所述数据页存储于所述存储器中;且其中所述方法还包括响应于与目标逻辑地址关联的主机读取请求而在所述存储器中存取所述数据页。
19.根据权利要求14至17中任一权利要求所述的方法,其还包括:解压对应于目标逻辑地址的压缩数据段;以及与主机读取请求相结合地而将所述解压数据段提供至主机。
20.一种设备,其包括:
存储器,其包括多个存储器装置;以及
控制器,其耦合至所述多个存储器装置且经配置以控制:
接收对应于管理单元数据量的多个数据段;
确定所述多个数据段中的每一者的相应可压缩性;
根据所述多个数据段中的每一者的相应所确定的可压缩性而压缩所述多个数据段中的每一者;
形成压缩管理单元,所述压缩管理单元包含对应于与所述管理单元数据量对应的所述多个数据段的多个压缩及/或未压缩数据段;以及
形成包括至少所述压缩管理单元的数据页。
21.根据权利要求20所述的设备,其中所述数据页还包括拓扑元数据以指示所述压缩管理单元在所述页内的特定位置。
22.根据权利要求21所述的设备,其中所述控制器还经配置以控制提供数据结构以将与所述多个数据段关联的逻辑地址映射至所述存储器中的所述多个数据段的物理位置,其中所述数据结构包含:
物理地址,其与所述多个数据段关联;以及
偏移索引,其指示:
所述压缩管理单元在所述页内的物理位置;以及
指派给所述页的多个额外压缩管理单元在所述页内的物理位置。
23.根据权利要求20至22中任一权利要求所述的设备,其中所述控制器包含加密组件,所述加密组件经配置以在所述形成所述压缩管理单元之前对所述多个压缩数据段加密。
24.一种设备,其包括:
存储器,其存储数据页,其中所述数据页包含元数据以指示所述数据页内的多个压缩管理单元的物理组织;
其中所述压缩管理单元中的每一者具有相应压缩值,所述压缩值至少部分基于对应于所述压缩管理单元的多个压缩数据段的压缩级别;以及
其中对应于相应压缩管理单元的所述多个压缩数据段中的每一者具有对应于所述压缩数据段的相应逻辑地址及压缩标头。
25.根据权利要求24所述的设备,其还包括耦合至所述存储器的控制器,所述控制器包含转译组件,所述转译组件提供映射以指示所述数据页的物理地址及对应于目标逻辑地址的目标压缩管理单元在所述数据页内的位置。
26.根据权利要求25所述的设备,其中所述控制器经配置以控制:至少部分基于对应于所述目标压缩管理单元的所述压缩值,通过遍历所述目标压缩管理单元而定位对应于所述目标逻辑地址的特定压缩数据段。
27.根据权利要求25所述的设备,其中所述映射还包括指示所述目标压缩管理单元在所述数据页内的起始位置的索引。
28.一种设备,其包括:
存储器,其包括多个存储器装置;以及
控制器,其耦合至所述多个存储器装置且经配置以控制:
接收待存储于所述存储器中的数据;
对所述所接收数据的管理单元量执行压缩操作,所述管理单元量是多个(N个)未压缩数据段;
形成包含对应于所述N个数据段的压缩及/或未压缩数据段的第一压缩管理单元;以及
形成包括至少所述第一压缩管理单元的数据页,其中所述第一压缩管理单元开始于所述页的多个量化边界中的一者上,所述连续量化边界中的每一者之间的空间分配能够容纳未压缩数据段。
29.根据权利要求28所述的设备,其中所述页的量化边界的所述数量为N,且其中所述第一压缩管理单元跨越所述N个量化边界中的至少两者。
30.根据权利要求29所述的设备,其中所述第一压缩管理单元从所述数据页跨越至额外数据页。
31.根据权利要求28所述的设备,其中所述页的量化边界的所述数量为N,且其中所述第一压缩管理单元被收容于所述多个量化边界中的一者与所述多个量化边界中的下一个连续量化边界之间。
32.根据权利要求31所述的设备,其中所述数据页包括N个压缩管理单元,其中所述N个压缩管理单元中的每一者开始于所述N个量化边界中的不同量化边界上。
33.根据权利要求28至32中任一权利要求所述的设备,其中所述控制器还经配置以控制:
对所述接收数据的额外管理单元量执行压缩操作,所述额外管理单元量是N个未压缩数据段;
形成额外压缩管理单元,所述额外压缩管理单元包含对应于所述接收数据的所述额外管理单元量的所述N个数据段的压缩及/或未压缩数据段;以及
形成所述数据页使得其包括至少所述第一压缩管理单元及所述额外压缩管理单元,其中所述额外压缩管理单元开始于所述页的所述多个量化边界中的一者上。
34.根据权利要求28至32中任一权利要求所述的设备,其中所述控制器经配置以控制对所述接收数据的所述管理单元量执行所述压缩操作还包括所述控制器经配置以控制个别地压缩所述N个未压缩数据段中的每一者且然后与形成CMU相结合地组合所述个别地压缩的N个数据段。
35.一种用于压缩数据管理的方法,所述方法包括:
将数据页存储于存储器中,其中所述数据页包含元数据以指示所述数据页内的多个压缩管理单元的物理组织;
其中所述多个压缩管理单元中的每一者对应于管理单元数据量,所述管理单元数据量对应于多个(N个)未压缩数据段;以及
其中所述压缩管理单元中的每一者开始于所述页的多个量化边界中的一者上,每个连续量化边界之间的空间分配能够容纳未压缩数据段。
36.根据权利要求35所述的方法,其还包括:
从所述存储器读取所述数据页;
解压对应于所述多个压缩管理单元的压缩数据段;以及
将所述解压数据段提供给主机。
37.根据权利要求35至36中任一权利要求所述的方法,其还包括给所述相应数量的压缩管理单元中的每一者提供单独元数据字段,所述单独元数据字段指示所述相应数量的压缩管理单元的大小。
38.根据权利要求35至36中任一权利要求所述的方法,其中所述多个未压缩数据段是主机区段,且其中N等于8。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/531,090 US9148172B2 (en) | 2012-06-22 | 2012-06-22 | Data compression and management |
US13/531,090 | 2012-06-22 | ||
PCT/US2013/047107 WO2013192548A1 (en) | 2012-06-22 | 2013-06-21 | Data compression and management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104471547A true CN104471547A (zh) | 2015-03-25 |
CN104471547B CN104471547B (zh) | 2018-04-20 |
Family
ID=49769439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380038327.1A Active CN104471547B (zh) | 2012-06-22 | 2013-06-21 | 数据压缩及管理 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9148172B2 (zh) |
EP (1) | EP2864889A4 (zh) |
JP (1) | JP6096291B2 (zh) |
KR (1) | KR101660190B1 (zh) |
CN (1) | CN104471547B (zh) |
TW (1) | TWI542159B (zh) |
WO (1) | WO2013192548A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107624179A (zh) * | 2015-06-26 | 2018-01-23 | 英特尔公司 | 高效固态驱动器数据压缩方案和布局 |
CN108804042A (zh) * | 2018-06-16 | 2018-11-13 | 王梅 | 一种基于缓存内移出的数据组进行动态处理的方法及系统 |
CN107037979B (zh) * | 2015-11-16 | 2021-04-16 | 马维尔亚洲私人有限公司 | 用于在存储器设备中管理地址映射数据的系统和方法 |
CN117240305A (zh) * | 2023-11-15 | 2023-12-15 | 上海叁零肆零科技有限公司 | 一种管网拓扑数据压缩方法、装置、设备及可读存储介质 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9772936B2 (en) | 2008-07-10 | 2017-09-26 | Micron Technology, Inc. | Data collection and compression in a solid state storage device |
US9927998B2 (en) * | 2014-02-05 | 2018-03-27 | Tidal Systems, Inc. | Flash memory compression |
US10838862B2 (en) | 2014-05-21 | 2020-11-17 | Qualcomm Incorporated | Memory controllers employing memory capacity compression, and related processor-based systems and methods |
US10503661B2 (en) | 2014-05-21 | 2019-12-10 | Qualcomm Incorporated | Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system |
US11336294B2 (en) * | 2016-06-10 | 2022-05-17 | Apple Inc. | Hybrid, adaptive virtual memory compression |
US10503443B2 (en) * | 2016-09-13 | 2019-12-10 | Netapp, Inc. | Systems and methods for allocating data compression activities in a storage system |
US10592170B2 (en) | 2017-01-25 | 2020-03-17 | International Business Machines Corporation | Optimizing dual-layered compression in storage systems |
KR102299880B1 (ko) * | 2017-04-04 | 2021-09-09 | 에스케이하이닉스 주식회사 | 데이터 변환 장치 및 방법 |
US10140215B1 (en) | 2017-05-26 | 2018-11-27 | Seagate Technology Llc | Low overhead mapping for highly sequential data |
KR20190059053A (ko) | 2017-11-22 | 2019-05-30 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
CN109274377A (zh) * | 2018-08-22 | 2019-01-25 | 泰康保险集团股份有限公司 | 区块链网络的数据处理方法、装置、介质及电子设备 |
JP2020154525A (ja) | 2019-03-19 | 2020-09-24 | キオクシア株式会社 | メモリシステムおよび情報処理システム |
KR20200114483A (ko) * | 2019-03-28 | 2020-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN111966285B (zh) * | 2020-07-20 | 2022-09-06 | 四川虹美智能科技有限公司 | 向eeprom存储数据的方法、主控芯片和系统 |
TWI770870B (zh) * | 2021-03-11 | 2022-07-11 | 台灣優化水務股份有限公司 | 流體量時間變化模式數據編碼方法 |
US11632128B2 (en) * | 2021-06-07 | 2023-04-18 | Dell Products L.P. | Determining compression levels to apply for different logical chunks of collected system state information |
US20230236725A1 (en) * | 2022-01-25 | 2023-07-27 | Dell Products L.P. | Method to opportunistically reduce the number of SSD IOs, and reduce the encryption payload, in an SSD based cache in a deduplication file system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194596B2 (en) * | 2004-06-09 | 2007-03-20 | Simpletech Global Limited | Method of efficient data management with flash storage system |
US20110289263A1 (en) * | 2007-05-30 | 2011-11-24 | Mcwilliams Thomas M | System including a fine-grained memory and a less-fine-grained memory |
CN102318327A (zh) * | 2009-03-31 | 2012-01-11 | 株式会社Ntt都科摩 | 数据共享系统、共享数据管理装置、共享数据管理装置的控制方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6577254B2 (en) | 2001-11-14 | 2003-06-10 | Hewlett-Packard Development Company, L.P. | Data compression/decompression system |
US6657564B2 (en) | 2001-12-13 | 2003-12-02 | International Business Machines Corporation | Method and apparatus for compressing data in which dictionary sizes are reduced |
KR100524076B1 (ko) | 2003-11-13 | 2005-10-26 | 삼성전자주식회사 | 데이터 압축 및 복원 장치 |
KR100849305B1 (ko) | 2006-11-24 | 2008-07-29 | 삼성전자주식회사 | 데이터를 압축하여 관리하는 메모리 및 그 방법 |
US9395929B2 (en) * | 2008-04-25 | 2016-07-19 | Netapp, Inc. | Network storage server with integrated encryption, compression and deduplication capability |
US9772936B2 (en) | 2008-07-10 | 2017-09-26 | Micron Technology, Inc. | Data collection and compression in a solid state storage device |
US8347023B2 (en) | 2008-10-06 | 2013-01-01 | Marvell World Trade Ltd. | Compression based wear leveling for non-volatile memory |
US8131688B2 (en) | 2009-08-26 | 2012-03-06 | Lsi Corporation | Storage system data compression enhancement |
KR101602939B1 (ko) | 2009-10-16 | 2016-03-15 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법 |
US8364929B2 (en) | 2009-10-23 | 2013-01-29 | Seagate Technology Llc | Enabling spanning for a storage device |
US8013762B2 (en) | 2009-11-03 | 2011-09-06 | Seagate Technology Llc | Evaluating alternative encoding solutions during data compression |
JP2011128792A (ja) * | 2009-12-16 | 2011-06-30 | Toshiba Corp | メモリ管理装置 |
KR20110113420A (ko) * | 2010-04-09 | 2011-10-17 | 삼성전자주식회사 | 저장 매체에 데이터를 저장하는 방법, 그를 이용한 데이터 저장 장치, 및 그것을 포함한 시스템 |
US8892809B2 (en) * | 2010-10-25 | 2014-11-18 | Marvell World Trade Ltd. | Data compression and encoding in a memory system |
-
2012
- 2012-06-22 US US13/531,090 patent/US9148172B2/en active Active
-
2013
- 2013-06-21 WO PCT/US2013/047107 patent/WO2013192548A1/en active Application Filing
- 2013-06-21 CN CN201380038327.1A patent/CN104471547B/zh active Active
- 2013-06-21 JP JP2015518612A patent/JP6096291B2/ja active Active
- 2013-06-21 EP EP13807412.5A patent/EP2864889A4/en not_active Ceased
- 2013-06-21 KR KR1020157001499A patent/KR101660190B1/ko active IP Right Grant
- 2013-06-24 TW TW102122429A patent/TWI542159B/zh active
-
2015
- 2015-09-28 US US14/867,139 patent/US9696910B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194596B2 (en) * | 2004-06-09 | 2007-03-20 | Simpletech Global Limited | Method of efficient data management with flash storage system |
US20110289263A1 (en) * | 2007-05-30 | 2011-11-24 | Mcwilliams Thomas M | System including a fine-grained memory and a less-fine-grained memory |
CN102318327A (zh) * | 2009-03-31 | 2012-01-11 | 株式会社Ntt都科摩 | 数据共享系统、共享数据管理装置、共享数据管理装置的控制方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107624179A (zh) * | 2015-06-26 | 2018-01-23 | 英特尔公司 | 高效固态驱动器数据压缩方案和布局 |
CN107624179B (zh) * | 2015-06-26 | 2022-01-25 | 英特尔公司 | 高效固态驱动器数据压缩方案和布局 |
CN107037979B (zh) * | 2015-11-16 | 2021-04-16 | 马维尔亚洲私人有限公司 | 用于在存储器设备中管理地址映射数据的系统和方法 |
CN108804042A (zh) * | 2018-06-16 | 2018-11-13 | 王梅 | 一种基于缓存内移出的数据组进行动态处理的方法及系统 |
CN108804042B (zh) * | 2018-06-16 | 2021-06-15 | 浙江力石科技股份有限公司 | 一种基于缓存内移出的数据组进行动态处理的方法及系统 |
CN117240305A (zh) * | 2023-11-15 | 2023-12-15 | 上海叁零肆零科技有限公司 | 一种管网拓扑数据压缩方法、装置、设备及可读存储介质 |
CN117240305B (zh) * | 2023-11-15 | 2024-01-26 | 上海叁零肆零科技有限公司 | 一种管网拓扑数据压缩方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US9696910B2 (en) | 2017-07-04 |
TW201419770A (zh) | 2014-05-16 |
EP2864889A4 (en) | 2016-07-13 |
CN104471547B (zh) | 2018-04-20 |
JP6096291B2 (ja) | 2017-03-15 |
KR20150033663A (ko) | 2015-04-01 |
JP2015525423A (ja) | 2015-09-03 |
US20160018993A1 (en) | 2016-01-21 |
US20130342375A1 (en) | 2013-12-26 |
US9148172B2 (en) | 2015-09-29 |
TWI542159B (zh) | 2016-07-11 |
KR101660190B1 (ko) | 2016-09-26 |
EP2864889A1 (en) | 2015-04-29 |
WO2013192548A1 (en) | 2013-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104471547A (zh) | 数据压缩及管理 | |
US11449252B2 (en) | Method of writing and reading data in an NVM using Lpage identification headers | |
TWI609263B (zh) | 可變大小快閃轉變層 | |
KR101564569B1 (ko) | 상위-레벨 리던던시 정보 계산 | |
US9495288B2 (en) | Variable-size flash translation layer | |
KR102328612B1 (ko) | 호스트와 컨트롤러 간에 파티셔닝된 변환 계층 | |
KR101730497B1 (ko) | 에러 정정 성능 신장 방법 및 이를 이용한 저장 장치 | |
US8806299B2 (en) | Method and apparatus for compressing data sectors in storage drive | |
US20180276114A1 (en) | Memory controller | |
US8933828B2 (en) | Using variable encodings to compress an input data stream to a compressed output data stream | |
KR20140094468A (ko) | 비휘발성 메모리에 대한 기록들의 관리 및 그 기록들의 영역 선택 | |
US9477406B2 (en) | Locating data in non-volatile memory | |
CN103620564A (zh) | 用于存储器设备的数据压缩和紧缩 | |
CN105302659A (zh) | 固态器件中的多纠错码代码字尺寸 | |
CN112585589A (zh) | 将压缩数据块和未压缩数据块压紧的设备及方法 | |
WO2016132430A1 (ja) | データ圧縮装置、データ伸張装置、データ圧縮方法、データ伸張方法及びプログラム | |
TW201415225A (zh) | 矽獨立元件之部分冗餘陣列 | |
KR20220072398A (ko) | 메모리 장치 및 메모리 시스템 | |
US20210281276A1 (en) | Encoded block format | |
Koranne et al. | Compression Engines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |