CN105874420A - 对数据进行压缩的系统和方法 - Google Patents
对数据进行压缩的系统和方法 Download PDFInfo
- Publication number
- CN105874420A CN105874420A CN201480069431.1A CN201480069431A CN105874420A CN 105874420 A CN105874420 A CN 105874420A CN 201480069431 A CN201480069431 A CN 201480069431A CN 105874420 A CN105874420 A CN 105874420A
- Authority
- CN
- China
- Prior art keywords
- data
- identifier
- context
- memorizer
- packet
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
-
- 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/0656—Data buffering 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
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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)
- Memory System (AREA)
Abstract
一种方法,包括:响应于与第一数据和采用第一标识符可识别的第一上下文相对应的第一写入命令以及与第二数据和采用第二标识符可识别的第二上下文相对应的第二写入命令,来确定第一上下文的第一标识符与第二上下文的第二标识符是否匹配。方法还包括:如果第一上下文的第一标识符被确定为与第二上下文的第二标识符匹配,则形成包括第一数据和第二数据的数据的压缩分组并且生成与数据的压缩分组相对应的压缩数据。
Description
技术领域
本公开通常涉及对进行压缩以用于在数据存储设备处存储数据。
背景技术
一些主机设备和数据存储设备使用数据压缩来有效地利用存储器的存储容量。数据压缩通过对包括第一比特集合的数据进行编码以生成第二比特集合来执行,其中,与第一比特集合相比,第二比特集合包括较少的比特。因此,与被用于表示原始数据的比特相比,使用较少的比特来表示压缩数据。因此,可以使用较少的存储器可用存储容量来将压缩数据存储在存储器中。
通常,数据压缩从数据中移除冗余或不必要的信息。当较大的数据块被一起压缩时而不是当较小的数据块被一起压缩时,数据压缩趋向于更加的空间有效。例如,当大的数据块被压缩时,与下述情况相比更多的比特可以被认为是冗余的:如果在压缩之前,大的数据块被划分为许多较小的数据块,则将是上述这种情况。因此,通过对大的数据块(作为单位)进行压缩而不是对单独的较小的块进行压缩,可以移除更多的比特。
然而,数据的压缩和解压缩花费时间并且消耗电力。额外地,被一起压缩的数据通常必须作为整体被解压缩,而与是否仅数据的一部分被主机设备请求无关。因此,虽然对大的不相关数据的块一起进行压缩可以节约空间,但是当主机设备请求数据的一部分时,整个大的块(包括不相关部分)需要被解压缩以访问期望的部分。对大的数据块进行解压缩是时间和电力密集的。另外,与大的块的解压缩操作相关联的延迟可能导致令人不满的用户体验。
发明内容
在特定的实施例中,由主机设备所提供的信息被用于控制在数据存储设备处的数据压缩。例如,主机设备可以向数据存储设备提供上下文(context)标识符作为写入指令的一部分。上下文标识符可以由主机设备根据eMMC标准(例如,上下文标识符可以被包括在eMMC上下文ID字段中)、根据通用闪速存储(UFS)标准(例如,上下文标识符可以被包括在UFS上下文ID字段中)或两者而被生成并且被提供。数据存储设备可以使用上下文标识符来识别相关的或者很可能一起被访问的数据。在写入操作期间,数据存储设备可以使用根据上下文标识符相关的数据来生成压缩分组。数据存储设备可以在线地(on-the-fly)执行上下文匹配以用于压缩,或者可替换地诸如通过存储与访问相关联的上下文标识符、离线地对其进行匹配以及相应地进行压缩可以离线地执行上下文匹配以用于压缩。来自压缩分组的数据可以被一起压缩(例如,作为单个单位),以生成要写入到数据存储设备的存储器的压缩数据。如果压缩分组过大(例如,大于阈值大小),则压缩分组可以被分割为两个或更多个子分组以用于压缩。在读取操作期间,与压缩分组相关联的压缩数据可以一起被解压缩(例如,作为单位)。相应地,在读取操作期间,数据存储设备能够有效地利用存储器的存储容量,并且避免解压缩大量的不相关数据。
附图说明
图1是包括被配置为对数据进行压缩以用于存储的数据存储设备的系统的第一特定实施例的框图;
图2是包括被配置为对数据进行压缩以用于存储的数据存储设备的系统的第二特定实施例的框图;
图3是示出在数据存储设备处对数据进行压缩的方法的第一特定实施例的流程图;
图4是示出在数据存储设备处对数据进行压缩的方法的第二特定实施例的流程图;
图5是示出在数据存储设备处对数据进行压缩的方法的第三特定实施例的流程图;
图6是示出在数据存储设备处对数据进行压缩的方法的第四特定实施例的流程图;以及
图7是示出了从数据存储设备读取压缩数据的方法的特定实施例的流程图。
具体实施方式
图1是包括被配置为对数据进行压缩以用于存储的数据存储设备102的系统100的第一特定实施例的框图。数据存储设备102包括控制器106和存储器104(例如,非易失性存储器)。在特定的实现方式中,存储器104在与控制器106分离的并且经由总线耦接到控制器106的存储器裸芯上。在其他实现方式中,存储器104和控制器106可以在公共裸芯上。
存储器104可以是非易失性存储器,诸如,闪速存储器(例如,NAND、NOR、多级单元(Multi-Level Cell,MLC)、位线分割NOR(DINOR)、AND、高电容耦合比(HiCR)、不对称非接触式晶体管(ACT)或其他闪速存储器)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、只读存储器(ROM)、阻变式随机存取存储器(RRAM或ReRAM)、一次可编程存储器(OTP)或者任何其他类型的存储器。存储器104可以具有三维(3D)存储器配置,诸如垂直位线(VBL)3D架构。例如,存储器104可以包括3D VBL ReRAM。在特定的实现方式中,存储器104是具有3D存储器配置的非易失性存储器,该3D存储器配置整体地形成在具有被布置在硅衬底之上的有源区的存储器单元的阵列的一个或更多个物理级(level)中。可替换地,存储器104可以具有另外的配置,诸如,二维(2D)存储器配置或堆叠的2D存储器配置。
数据存储设备102可以被配置为与主机设备120接合(interface)。主机设备120可以被配置为向数据存储设备102提供数据以用于在存储器104处进行存储,并且请求要从存储器104所读取的数据。例如,主机设备120可以包括移动电话、音乐播放器、视频播放器、游戏控制器、电子书据阅读器、个人数字助理(PDA)、诸如膝上型计算机、笔记本式计算机或平板式计算机的计算机、任何其他电子设备或其任何组合。主机设备120经由存储器接口进行通信,该存储器接口使得能够从数据存储设备102进行读取并且写入到数据存储设备102。例如,主机设备120可以遵照联合电子设备工程会议(JEDEC)工业规范——诸如,嵌入式多媒体卡(eMMC)规范——来进行操作。作为其他示例,主机设备120可以遵照通用闪速存储(UFS)主机控制器接口规范、通用串行总线(USB)规范或者安全数据(SD)主机控制器规范来进行操作,如示意性的示例那样。可替换地,主机设备120可以根据另外的通信协议来与数据存储设备102进行通信。
在特定的实施例中,数据存储设备102被配置为耦接到主机设备120作为嵌入式存储器。在另外的特定的实施例中,数据存储设备102是偶接到主机设备120的可移除设备。例如,数据存储设备102可以是存储卡。数据存储设备102可以遵照JEDEC工业规范、一个或更多个其他规范或者其组合来进行操作。例如,数据存储设备102可以遵照eMMC规范、遵照USB规范、UFS规范、SD规范或者其组合来进行操作。
在特定的实施例中,数据存储设备102被配置为从主机设备102接收数据以用于在存储器104处进行存储。主机设备120可以为数据提供上下文标识符。上下文标识符可以由数据存储设备102使用以识别相关数据。例如,主机设备120可以包括或执行与第一文件122和第二文件124相关的操作。第一文件122可以与第一上下文相关联,并且第二文件124可以与第二上下文相关联。主机设备120可以将第一上下文标识符指派给第一上下文并且将第二上下文标识符指派给第二上下文。尽管在图1中上下文与文件相关联,但是这仅是为了例示的方便。在各种实现方式中,主机设备120可以将上下文标识符指派给应用、处理或数据集合。
控制器106可以使用上下文标识符来确定哪些数据应当被一起分组以用于压缩。例如,控制器106可以被配置为经由第一写入命令126来从主机设备120接收第一数据。第一写入命令126可以包括识别与第一数据相关联的第一上下文的第一上下文标识符。控制器106还可以经由第二写入命令128从主机设备120接收第二数据。第二数据可以包括识别与第二数据相关联的第二上下文的第二上下文标识符。第一上下文和第二上下文可以相同。例如,第一数据和第二数据两者可以与第一文件122相关联。可替换地,第一上下文和第二上下文可以不同。例如,第一数据可以与第一文件122相关联,并且第二数据可以与第二文件124相关联。
在接收第一数据和第二数据之后,控制器106可以确定第一上下文与第二上下文是否匹配。例如,上下文比较器110可以将第一上下文标识符与第二上下文标识符进行比较。在第一上下文与第二上下文匹配的情况下,控制器106可以使用第一数据和第二数据来生成压缩数据以用于在存储器104处进行存储。例如,控制器106可以将第一数据和第二数据指派给数据的压缩分组。数据的压缩分组可以被压缩(例如,作为单位)以生成压缩数据132。例如,数据的压缩分组可以通过对第一数据和第二数据进行组合(例如,合并)来生成。在此示例中,压缩引擎108可以将数据的压缩分组中的数据一起进行压缩,以形成压缩数据132。因此,压缩数据132与第一数据和第二数据一起被压缩的版本相对应。
在特定的实施例中,第一写入命令126、第二写入命令128或者两者可以包括指示与每个写入命令相关联的数据是否可压缩的、来自主机设备120的信息。例如,第一写入命令126可以包括标志、数据、数据的标识符或者指示第一数据是否可压缩的、来自主机设备120的其他信息。为了例示,当主机120已经对第一数据进行压缩时第一数据可以是不可压缩的。在另外的示例中,由于第一数据的类型或本质,第一数据可以是不可压缩的。
在特定的实施例中,数据存储设备102可以在执行压缩之前接收多个写入命令,诸如,第一写入命令126、第二写入命令128以及第三写入命令130。例如,如果从主机设备120所接收的第一数据是可压缩的,则控制器106可以在接收第一写入命令126之后并且在接收第二写入命令128之前,暂时地存储第一数据(例如,通过将第一数据写入到存储器104的区域)。如果第一数据不可压缩,则第一数据可以被存储在存储器104处而不被压缩。在接收第二写入命令128之后,上下文比较器110可以将第一写入命令126的上下文标识符与第二写入命令128的上下文标识符进行比较。如果第一上下文标识符与第二上下文标识符匹配,则控制器106可以生成包括第一数据和第二数据的数据的压缩分组。例如,可以通过从存储器的区域中读取第一数据并且对第一数据和第二数据进行组合以形成数据的压缩分组,来生成数据的压缩分组。控制器106可以将数据的压缩分组提供给压缩引擎108以生成压缩数据132。
当上下文比较器110确定上下文标识符不同时(即,第一上下文标识符与第二上下文标识符不匹配),第二数据可以暂时地被存储(例如,通过将第二数据写入到存储器的区域)以等待与第二上下文相关的其他数据的到达。当接收第三写入命令130时,上下文比较器110可以将与第三写入命令130相关联的第三上下文标识符与第一上下文标识符、第二上下文标识符或者两者进行比较。如果第三上下文标识符与第一上下文标识符匹配,则第三数据可以与第一数据组合以形成包括第一数据和第三数据的数据的压缩分组。可替换地,如果第三上下文标识符与第二上下文标识符匹配,则第三数据可以与第二数据组合以形成包括第二数据和第三数据的数据的压缩分组。数据的压缩分组可以被压缩以形成压缩数据132。
在特定的实施例中,当数据的压缩分组达到预定的阈值大小时,控制器106可以对数据的压缩分组执行压缩操作以形成压缩数据。例如,当接收第一写入命令126时,控制器106可以确定第一数据是否满足阈值,例如,是否具有大于或等于阈值大小的大小。当第一数据小于阈值大小时,控制器106可以将第一数据写入到存储器的区域,以等待与第一上下文相关联的额外的数据。当接收第二写入命令128时,如果第二上下文与第一上下文匹配,则控制器106可以形成包括第一数据和第二数据的数据的压缩分组。然后,控制器106可以将数据的压缩分组的大小与阈值大小进行比较。如果数据的压缩分组的大小满足(例如,大于或等于)阈值大小,则控制器106可以引导压缩引擎108来生成压缩数据132。然而,如果数据的压缩分组的大小不满足阈值大小(例如,小于阈值大小),则控制器106可以暂时地存储第二数据(例如,将第二数据写入到存储器104的区域),以等待与同一上下文相关联的额外的数据。
在接收到第三写入命令130之后,上下文比较器110可以确定第三数据是否和与第一数据以及第二数据相同的上下文相关联。如果第三数据和与第一数据以及第二数据相同的上下文相关联,则控制器106可以将第三数据添加到包括第一数据和第二数据的数据的压缩分组。控制器106可以确定数据的压缩分组的大小是否满足阈值大小(例如,大于或等于阈值大小)。如果数据的压缩分组的大小满足阈值大小,则控制器106可以引导压缩引擎108基于数据的压缩分组来生成压缩数据132。如果数据的压缩分组的大小不满足阈值大小,则控制106可以暂时地存储第三数据(例如,通过将第三数据写入到存储器104的区域)以等待与同一上下文相关的额外的数据的接收。
在特定的实施例中,当主机设备120停止使用上下文(例如,关闭文件或停止处理时),主机设备120传送关闭上下文通知(如参考图2进一步描述地)。关闭上下文通知包括正在被关闭的上下文的上下文标识符。当数据存储设备102接收关闭上下文通知时,控制器106可以确定暂时被存储的数据是否与被关闭的上下文相关联。控制器106可以引导压缩引擎108基于与被关闭的上下文相关联的数据的压缩分组(例如,当接收到关闭上下文通知时与数据的压缩分组的大小无关地)来生成压缩数据。
在对数据的压缩分组进行压缩以生成压缩数据132之后,压缩数据132可以被写入到与一个或更多个地址相对应的存储器104的存储元件。控制器106可以存储映射信息112,映射信息112将压缩数据132的分组标识符映射到一个或多个地址。例如,映射信息112可以识别分组标识符和与压缩数据132的存储位置相对应的一个或多个逻辑块地址。压缩数据132被写入到的特定的逻辑块地址集合可以限定逻辑块地址的连续范围。
分组标识符可以和与压缩数据132相对应的数据的压缩分组相关联。在特定的实施例中,分组标识符被控制器106(例如,分组标识符与由主机设备120所指派的上下文标识符不同)指派给数据的压缩分组。在另外的特定的实施例中,分组标识符包括或对应于与被分组在数据的压缩分组中的数据相关联的上下文标识符(例如,分组标识符对应于由主机设备120所指派的上下文标识符)。
在一些实现方式中,主机设备120可以重新使用上下文标识符。例如,虽然主机设备120正在使用第一文件122,但是第一上下文标识符可以与第一文件122相关联。在主机设备120关闭或停止对第一文件122的操作之后,主机设备120可以打开另一文件(例如,第二文件124)。主机设备120可以将上下文标识符指派给第二文件124,该上下文标识符可以与当第一文件122被打开并且被使用时被指派给第一文件122的上下文标识符相同。因此,在其中主机设备120重新使用上下文标识符的实现方式中,当主机设备120已经停止与特定的上下文相关联的操作时,主机设备120可以向数据存储设备102发送关闭上下文通知。当数据存储设备102接收与之前被关闭的上下文标识符相关联的随后的写入命令时,控制器106可以将新的分组标识符指派给与上下文标识符相关联的数据的压缩分组。
在将压缩数据132写入到存储器104之后,数据存储设备102可以从主机设备120或从另外的主机设备(未示出)接收读取命令。读取命令可以识别要被读取的存储元件集合(例如,通过提供诸如与存储元件集合相关联的、特定的逻辑块地址)。控制器106可以确定在读取命令中所识别的地址是否与映射信息112中的分组标识符相关联。当地址与映射信息112中的分组标识符相关联时,控制器106可以从与和映射信息112中的分组标识符相关联的存储器地址相对应的每个存储元件中读取数据。例如,当地址与映射信息中的第一分组标识符相关联时,控制器106可以确定与映射信息112中的分组标识符相对应的存储器104的物理(或逻辑)地址。在映射信息112中,分组标识符与数据的整个压缩分组的存储位置相关联。控制器106可以读取与分组标识符相关联的每个存储位置。因此,控制器106读取与数据的整个压缩分组(例如,而不是仅由读取命令所识别的地址)相对应的压缩数据。控制器106可以使得压缩引擎108对从存储器104所读取的数据进行解压缩。因此,响应于读取命令,控制器106可以对基于数据的压缩分组所生成的压缩数据132进行解压缩。
因此,数据存储设备102能够通过对相关的数据一起进行压缩来有效地利用存储器104的存储容量。额外地,通过使用与单个上下文相对应的数据的压缩分组来生成压缩数据132,数据存储设备102避免在读取操作期间与对大量的不相关数据进行解压缩相关联的延时和电力使用。
图2是包括被配置为对数据进行压缩以用于存储的数据存储设备202的系统200的第二特定实施例的框图。数据存储设备202包括:可以被(逻辑地或物理地)划分为多个区域——诸如第一存储器区域240和第二存储器区域250的存储器204(例如,非易失性存储器)。数据存储设备202还包括控制器206。控制器206包括压缩引擎208、上下文比较器210以及映射信息212。控制器206还包括逻辑-物理地址表216,或者具有对逻辑-物理地址表216的访问。数据存储设备202可以耦接到主机设备220以接收要写入到存储器204的数据,或接收用于从存储器204读取数据的命令。在特定的实施例中,数据存储器202与图1的数据存储设备102相对应。例如,控制器206可以与图1的控制器106相对应,并且存储器204可以与图1的存储器104相对应。
压缩引擎208可以被配置为生成压缩数据以用于在存储器204处进行存储。在特定的实施例中,压缩数据被存储在第二存储器区域250处。控制器206还可以暂时地在第一存储器区域240处存储数据,直到数据被提供给压缩引擎208以生成压缩的数据为止。在此实施例中,第二存储器区域250可以与多级单元闪速存储器相对应,并且第一存储器区域240可以与单级(singlelevel)单元闪速存储器相对应。
在操作中,主机设备220可以向数据存储设备202提供多个写入命令222至226。写入命令222至226中的每个可以包括数据和与数据相关联的上下文标识符。上下文标识符可以由主机设备120指派,并且可以指示与主机设备220内的数据相关联的特定的操作上下文。上下文标识符可以使得控制器206能够识别要被一起压缩的相关数据。
数据存储设备202可以从主机设备220接收包括第一数据和第一上下文标识符的第一写入命令222。控制器206可以将第一输入写入到第一存储器区域240作为第一数据241。在接收到第一写入命令222之后,数据存储设备202可以从主机设备220接收包括第二数据和第二上下文标识符的第二写入命令223。响应于接收第二写入命令223,上下文比较器210可以将第二上下文标识符与第一数据241的第一上下文标识符进行比较。在图2中,采用交叉影线示出了在第一存储器区域240中所存储的、与第一上下文相关的数据,并且未采用交叉影线示出了与第二上下文(与第一上下文不同)相关的数据。因此,在图2中所示的示例中,第一数据241与第一上下文和第一上下文标识符相关,并且第二数据242与第二上下文和第二上下文标识符相关。由于第一上下文和第二上下文不同,所以第一上下文标识符与第二上下文标识符不匹配。因为第一上下文标识符与第二上下文标识符不匹配,所以未使用第一数据和第二数据形成数据的压缩分组。
在接收到第二写入命令223之后,数据存储设备202可以从主机设备220接收包括第三数据和第三上下文标识符的第三写入命令224。上下文比较器210可以将第三上下文标识符和与在第一存储器区域240中所存储的其他数据相关联的上下文标识符(例如,第一上下文标识符和第二上下文标识符)进行比较。在图2中所示的示例中,第三数据与第一上下文标识符相关联(例如,第三上下文标识符与第一上下文标识符匹配)。因此,控制器206可以使用第一数据241和第三数据243来形成数据的第一压缩分组。
当数据的压缩分组达到阈值大小时,当接收到和与数据的压缩分组相关联的上下文相关的关闭上下文通知时或者当上述两者时,压缩引擎208可以使用数据的压缩分组来生成压缩数据。在下面的论述中,描述了第一示例:在第一示例中,当数据的压缩分组达到阈值大小时,压缩引擎208生成压缩数据。在第一示例之后,描述了第二示例:在第二示例中,当接收到和与数据的压缩分组相关联的上下文相关的关闭上下文通知之后,压缩引擎208生成压缩数据。使用图2来描述第一示例和第二示例两者。额外地,参考图4来描述与第一示例相对应的方法,并且参考图5来描述与第二示例相对应的方法。
在第一示例中,在接收到第三写入命令224之后,控制器206基于数据的第一压缩分组的大小来确定是否生成压缩数据。例如,控制器206可以将包括第一数据241和第三数据243的数据的第一压缩分组的大小与阈值大小进行比较。如果数据的第一压缩分组的大小大于或等于阈值大小,则控制器206基于数据的第一压缩分组来生成第一压缩数据251。如果数据的第一压缩分组的大小小于阈值大小,则控制器206继续等待与第一上下文相关的额外的数据并且尚未生成第一压缩数据251。
在接收到第三写入命令224之后,数据存储设备202可以从主机设备220接收包括第四数据224和第四上下文标识符的第四写入命令225。上下文比较器210可以将第四上下文标识符和与在第一存储器区域240中所存储的数据相关联的上下文标识符(例如,第一上下文标识符和第二上下文标识符)进行比较。在图2中所示的示例中,第四数据244与第一上下文相关联(例如,第四上下文标识符与第一上下文标识符匹配)。因此,上下文比较器210将第四数据添加到包括第一数据241和第三数据243的数据的第一压缩分组。
在第四数据244被添加到数据的第一压缩分组之后,控制器206确定是否基于数据的第一压缩分组来生成第一压缩数据251。例如,压缩引擎208可以将数据的第一压缩数据的大小与阈值大小进行比较。如果第一压缩分组的大小等于或大于阈值大小,则压缩引擎208基于第一压缩分组来生成第一压缩数据251。如果第一压缩分组的大小小于阈值大小,则压缩引擎208继续等待与第一上下文相关的额外的数据并且尚未生成第一压缩数据251。
在接收到第四写入命令225之后,数据存储设备202可以从主机设备220接收包括第五数据245和第五上下文标识符的第五写入命令226。上下文比较器210可以将与第五数据245相关联的第五上下文标识符和与在第一存储器区域240中所存储的数据相关联的上下文标识符(例如,与第一数据241、第三数据243和第四数据244相关联的第一上下文标识符以及与第二数据242相关联的第二上下文标识符)进行比较。在图2中所示的示例中,第五数据245与第二上下文相关联(例如,第五上下文标识符与第二上下文标识符匹配)。因此,第五数据245与第二数据242组合以形成数据的第二压缩分组。控制器206可以基于数据的第二压缩分组来确定是否形成第二压缩数据252。例如,数据的第二压缩分组的大小可以与阈值大小进行比较。如果数据的第二压缩分组的大小大于或等于阈值大小,则压缩引擎208生成第二压缩数据252。如果数据的第二压缩分组的大小小于阈值大小,则压缩引擎208等待与第二上下文相关的额外的数据,并且尚未生成第二压缩数据252。
在特定的实施例中,当主机设备220完成与第一上下文相关联的处理时,主机设备220向数据存储设备202发送与第一上下文相关联的关闭上下文通知227(例如,包括第一上下文标识符)。响应于接收到与特定的上下文相关联的关闭上下文通知(诸如,关闭上下文通知227),控制器206基于与特定的上下文相关联的数据的压缩分组来生成压缩数据。在图2中所示的示例中,关闭上下文通知227包括第一上下文标识符。包括第一数据214、第三数据243以及第四数据244的数据的第一压缩分组与第一上下文标识符相关联。因此,压缩引擎208响应于接收到关闭上下文通知227来生成与数据的第一压缩分组相关联的第一压缩数据251。
在生成第一压缩数据251之后,第一压缩数据251可以被存储在第二存储器区域250处。第一压缩数据251的存储位置(例如,一个或更多个存储器地址)可以在映射信息212中被识别并且与分组标识符相关联。在特定的实施例中,映射信息212可以存储与数据的压缩分组相关联的分组标识符以及在其处与数据的每个压缩分组相对应的压缩数据被存储的存储器地址(例如,逻辑块地址或物理地址)。在特定的实施例中,与数据的单个压缩分组相关联的压缩数据可以被存储在存储器204中、在连续的逻辑块地址集合处。控制器206可以将分组标识符指派给数据的每个压缩分组或相对应的压缩数据。例如,第一分组标识符可以被控制器206指派给第一压缩数据251。
在其中在接收到和与数据的压缩分组相关联的上下文相关的关闭上下文通知之后压缩引擎208生成压缩数据的第二示例中,控制器206可以针对每个上下文来继续向第一存储器区域240添加数据,直到接收到用于特定的上下文的关闭上下文通知(例如,与第一上下文相关的关闭上下文通知227)。为了例示,在图2中,与由数据存储设备202所接收的第一上下文标识符相关联的数据可以继续被写入到第一存储器区域240,直到接收到关闭上下文通知227为止(例如,在接收到每个写入命令之后不需将数据的压缩分组与阈值大小进行比较)。
在接收到关闭上下文通知227之后,控制器206可以确定与所关闭的上下文(例如,第一上下文)相关联的数据是否过大而无法被高效地一起压缩。例如,控制器206可以将与所关闭的上下文相关联的数据集合的大小(例如,在此示例中为第一数据241、第三数据243以及第四数据244)与阈值大小进行比较。如果与所关闭的上下文相关联的数据集合的大小超过阈值大小,则控制器206可以将与所关闭的上下文相关联的数据集合划分为多个子分组。在此示例中,子分组中的每个与数据的一个压缩分组相对应。如果与所关闭的上下文相关联的数据集合的大小小于阈值大小,则控制器206生成包括数据集合的数据的单个压缩分组。压缩引擎208基于数据的一个或更多个压缩分组中的每个来生成压缩数据。
在压缩数据(例如,或者根据以上所述的第一示例或者根据以上所述的第二示例)被生成并且被存储在存储器240处之后,数据存储设备202可以从主机设备220接收读取请求228。读取请求228可以识别与要被读取的数据相关联的地址。读取请求228还可以包括上下文标识符(例如,第N上下文标识符)。控制器206可以访问逻辑-物理地址表216,以将来自读取请求228的地址与存储器204的一个或更多个存储位置相关联。控制器206还可以确定读取请求228的地址是否与映射信息212中的分组标识符相关联。当读取请求228的地址与映射信息212中的分组标识符相关联时,控制器206可以从第二存储器区域250读取与分组标识符相关联的压缩数据。例如,读取请求228的地址可以与存储器204的单个逻辑块地址相对应。然而,如果地址与映射信息212中的分组标识符相关联,则控制器206可以从多于单个逻辑块地址中读取数据。为了例示,控制器206可以从存储元件中读取数据,该存储元件和与来自第二存储器区域250的分组标识相对应的地址集合(例如,可能多于单个逻辑块地址)中的每个地址相关联。压缩引擎208可以使用从存储元件所读取的数据来生成和与分组标识符相关联的数据的压缩分组相对应的解压缩的数据。当读取请求228的地址与分组标识符不相关联时,仅与由读取请求228所识别的特定的地址相对应的数据被读取。为了例示,当读取请求228的地址与单个逻辑块址相对应时,基于读取请求228,仅与单个逻辑块地址相对应的数据被读取,并且没有额外的数据(例如,与数据的压缩分组相对应的数据)被读取。解压缩数据可以被提供给主机设备220作为数据230。
因此,数据存储设备202能够通过对相关的数据一起进行压缩来有效地利用存储器204的存储容量。额外地,通过使用与单个上下文相对应的数据的压缩分组来生成压缩数据,数据存储设备202避免在读取操作期间与对大量的不相关数据进行解压缩相关联的延时和电力使用。
图3是示出在数据存储设备处对数据进行压缩的方法300的第一具体实施例的流程图。数据存储设备可以与图1的数据存储设备102、图2的数据存储设备202或两者相对应。例如,方法300可以在图1的控制器106或在图2的控制器206处执行。
方法300包括:在302处,获得(例如,接收或访问)与第一数据和采用第一上下文标识符可识别的第一上下文相对应的第一写入命令;并且在304处,获得(例如,接收或访问)与第二数据和采用第二上下文标识符可识别的第二上下文相对应的第二写入命令。例如,图1的数据存储设备102可以从主机设备120接收第一写入命令126和第二写入命令128。第一写入命令126可以包括第一数据并且可以与如由第一上下文标识符所指示的第一上下文相关联,而第二写入命令128可以包括第二数据并且可以与如由第二上下文标识符所指示的第二上下文相关联。
方法300还包括:在306处,确定第一标识符与第二标识符是否匹配。方法300还包括:如果第一标识符与第二标识符匹配,则在308处形成包括第一数据和第二数据的数据的压缩分组。例如,参考图1,控制器106可以执行与第一写入命令126的第一上下文相对应的第一上下文标识符和与第二写入命令128的第二上下文相对应的第二上下文标识符的比较。如果第一上下文标识符与第二上下文标识符匹配,则控制106可以选择第一数据和第二数据,以包括在数据的压缩分组中。然后,控制器106可以生成包括第一数据和第二数据的数据的压缩分组。
方法300还包括:在310处,生成与数据的压缩分组相对应的压缩数据。例如,控制器106可以确定数据的压缩分组的大小是否满足阈值大小,或控制器106可以从主机设备接收关闭上下文通知。控制器106可以向压缩引擎108提供数据的压缩分组,以生成压缩数据132。压缩数据132可以被存储在非易失性存储器104处。
因此,方法300使得数据存储设备能够通过对相关的数据一起进行压缩来有效地利用存储器的存储容量。额外地,通过使用与单个上下文相对应的数据的压缩分组来生成压缩数据,数据存储设备避免在读取操作期间与对大量的不相关数据进行解压缩相关联的延时和电力使用。
图4是示出在数据存储设备处对数据进行压缩的方法400的第二具体实施例的流程图。数据存储设备可以与图1的数据存储设备102、图2的数据存储设备202或两者相对应。例如,方法400可以在图1的控制器106或在图2的控制器206处执行。
方法400包括:在402处,获得(例如,接收或访问)与第一数据和第一上下文相对应的第一写入命令。方法400还包括:在404处,将第一数据写入到存储器。例如,图2的数据存储设备202可以从主机设备220接收包括第一数据241和第一上下文标识符的第一写入命令222。第一数据241可以被写入到第一存储器区域240。
方法400还包括:在406处,获得(例如,接收或访问)与第二数据和第二上下文相对应的第二写入命令。例如,在图2中,数据存储设备202可以从主机设备202接收包括第二数据242和第二上下文标识符的第二写入命令223。方法400还包括:在408处,将第一上下文的第一上下文标识符与第二上下文的第二上下文标识符进行比较。当在410处第一上下文标识符与第二上下文标识符不匹配时,方法400包括在412处将第二数据写入到存储器。例如,在图2中,第二数据242与第二上下文相关联,第二上下文和与第一数据相关联的上下文标识符不匹配。因此,第二数据242被写入到第一存储器区域240。第二数据可以在被写入到第一存储器区域240之前(独立于第一数据)被压缩。当在412处将第二数据写入到存储器之后,方法包括在414处接收额外的数据。额外的数据可以包括与第一上下文相关的额外的数据、与第二上下文相关的额外的数据、与另外的上下文相关的额外的数据或者其组合。例如,在图2中,在接收到第二写入命令223之后,数据存储设备202可以接收一个或更多个额外的写入命令223,诸如第三写入命令224、第四写入命令225或者第五写入命令226。与所接收的每个额外的写入命令相关联的上下文标识符可以和与被存储在存储器204中的数据相关联的上下文标识符进行比较,以识别匹配上下文。当与匹配上下文相关联的数据被识别时,数据可以如以下针对第一标识符与第二标识符匹配的示例所描述地那样被处理。
当在410处第一标识符与第二标识符匹配时,方法400包括在416处从存储器读取第一数据,并且在418处对第一数据与第二数据进行组合以形成数据的压缩分组。方法400还可以包括:在420处,确定数据的压缩分组的大小。当在422处数据的压缩分组的大小超过阈值大小时,方法400包括对数据的压缩分组进行压缩以生成与数据的压缩分组相对应的压缩数据。当在422处数据的压缩分组的大小未超过阈值大小时,方法400包括在426处接收额外的数据或关闭上下文通知。在接收到与数据的压缩分组相关的额外的数据之后或在接收到关闭上下文通知之后,方法400可以包括:在424处,对数据的压缩分组进行压缩,以生成与数据的压缩分组相对应的压缩数据。例如,参考图2,第一压缩数据251可以在接收到用于第一上下文的关闭上下文通知227之后被生成,或在数据的第一压缩分组的大小达到阈值大小之后被生成。
因此,方法400使得数据存储设备能够通过对相关数据一起进行压缩来有效地利用存储器的存储容量。额外地,通过使用与单个上下文相对应的数据的压缩分组来生成压缩数据,数据存储设备避免在读取操作期间与对大量的不相关数据进行解压缩相关联的延时和电力使用。
图5是示出在数据存储设备处对数据进行压缩的方法500的第一具体实施例的流程图。数据存储设备可以与图1的数据存储设备102、图2的数据存储设备202或两者相对应。例如,方法500可以在图1的控制器106或在图2的控制器206处执行。
方法500包括:在502处,获得(例如,接收或访问)与第一数据和第一上下文相对应的第一写入命令;并且在504处,获得(例如,接收或访问)与第二数据和第二上下文相对应的第二写入命令。第一上下文和第二上下文可以相同或可以不同。例如,图2的数据存储设备202可以从主机设备220接收第一写入命令222和第二写入命令223。第一写入命令222包括第一数据241并且与(如由第一上下文标识符所指示的)第一上下文相关联,而第二写入命令223包括第二数据242并且与(如由第二上下文标识符所指示的)第二上下文相关联。在方法500的此示例中,第一上下文与第二上下文不同。然而,在来自图2的另一示例中,图2的数据存储设备202可以从主机设备220接收第一写入命令222和第三写入命令224。第一写入命令222包括第一数据241并且与(如由第一上下文标识符所指示的)第一上下文相关联,而第三写入命令224包括第三数据243并且与(如由第一上下文标识符所指示的)第一上下文相关联。在方法500的此示例中,第一上下文与第二上下文相同。方法500还可以包括:在506处,获得(例如,接收或访问)与额外的数据相对应的一个或更多个额外的数据写入命令。一个或更多个额外的写入命令可以与第一上下文、第二上下文或额外的上下文(例如,第三上下文)相对应。
方法500还包括:在508处,接收与特定的上下文相关联的关闭上下文通知。例如,参考图2,数据存储设备202可以在接收写入命令222至226中的一个或更多个之后接收关闭上下文通知227。方法500可以包括:在510处,识别与特定的上下文相关联的相关数据。例如,在图2中,关闭上下文通知227与第一上下文相关联。因此,控制器206可以识别被存储在第一存储器区域240中的、与第一上下文相关联的数据(例如,第一数据241、第三数据243和第四数据244)。
方法500还可以包括:在512处,确定相关数据的大小(例如,数据大小、诸如比特数量)。例如,参考图2,控制器206可以确定在第一存储器区域240中所存储的、与第一上下文相关联的数据(例如,第一数据241、第三数据243和第四数据244)的大小。如果在514处相关数据的大小未超过阈值大小,则方法500包括在516处生成与包括相关数据的数据的压缩分组相对应的压缩数据。例如,在图2中,如果数据的第一压缩分组的大小小于阈值大小,则压缩引擎208可以生成与数据的第一压缩分组——第一数据241、第三数据243和第四数据244——相对应的第一压缩数据251。
如果在514处相关数据的大小超过阈值大小,则方法500包括在518处将相关数据划分为数据的多个子分组并且生成多个压缩分组,其中,每个压缩分组与数据的子分组中的一个相对应。方法500还可以包括:在520处,生成与数据的压缩分组(例如,相关数据的子分组)相对应的压缩数据,并且在522处生成与数据的一个或更多个压缩分组(例如,相关数据的其他子分组)相对应的额外的压缩数据。例如,在图2中,压缩引擎208可以生成与和第一上下文相关的数据的第一子分组(例如,包括第一数据241和第三数据243的数据的第一压缩分组)相对应的第一压缩数据251。压缩引擎208还可以生成和与第一上下文相关的数据的第二子分组(例如,包括第四数据244的数据的第二压缩分组)相对应的第二压缩数据252。
因此,方法500能够使得数据存储设备通过对相关数据一起进行压缩来有效地利用存储器的存储容量。额外地,通过使用与单个上下文相对应的数据的压缩分组来生成压缩数据,数据存储设备避免在读取操作期间与对大量的不相关数据进行解压缩相关联的延时和电力使用。
图6是示出在数据存储设备处对数据进行压缩的方法600的第二具体实施例的流程图。数据存储设备可以与图1的数据存储设备102、图2的数据存储设备202或两者相对应。例如,方法600可以在图1的控制器106或在图2的控制器206处执行。
方法600包括:在602处,获得(例如,接收或访问)与第一数据和采用第一上下文标识符可识别的第一上下文相对应的第一写入命令;并且在604处,获得(例如,接收或访问)与第二数据和采用第二上下文标识符可识别的第二上下文相对应的第二写入命令。例如,图2的数据存储设备202可以从主机设备220接收第一写入命令222和第二写入命令223。第一写入命令222包括第一数据241并且与如由第一上下文标识符所指示的第一上下文相关联,而第二写入命令223包括第二数据242并且可以与如由第二上下文标识符所指示的第二上下文相关联。
方法600还包括:在606处,如果第一上下文标识符与第二上下文标识符匹配,生成与数据的压缩分组相应的压缩数据,其中,数据的压缩分组包括第一数据和第二数据。例如,响应于确定图2的第一写入命令222的第一上下文标识符与第三写入命令224的第三上下文标识符匹配,控制器206可以生成包括第一数据241和第三数据243的数据的压缩分组。控制器206可以将数据的压缩分组提供给压缩引擎208,以生成与第一数据241和第三数据243相应的第一压缩数据251。方法600还包括:在608处,将压缩数据写入到存储器的区域。例如,参考图2,第一压缩数据251可以被写入到第二存储器区域250,该第二存储器区域250可以与在逻辑-物理地址表216中所识别的逻辑块地址集合相关联。
方法600包括:在610处,将分组标识符指派给数据的压缩分组(或压缩数据),并且在612处,存储映射信息,该映射信息将地址集合(例如,逻辑块地址集合)与数据的压缩分组的分组标识符相关联。例如,图2的控制器206可以在映射信息212处存储与数据的第一压缩分组(和第一压缩数据)相关联的分组标识符以及识别在其处存储用于数据的第一压缩分组的压缩数据的存储器地址集合的信息。
因此,方法600使得数据存储设备能够通过对相关数据一起进行压缩来有效地利用存储器的存储容量。额外地,通过使用与单个上下文相对应的数据的压缩分组来生成压缩数据,数据存储设备避免在读取操作期间与对大量的不相关数据进行解压缩相关联的延时和电力使用。
图7是示出了从数据存储设备读取压缩数据的方法700的具体实施例的流程图。数据存储设备可以与图1的数据存储设备102、图2的数据存储设备202或两者相对应。例如,方法700可以在图1的控制器106或在图2的控制器206处执行。在特定的实施例中,可以在根据方法300、方法400、方法500、方法600或其组合的、具有所存储的压缩数据和映射信息的数据存储设备处执行方法700。
方法700包括:在702处,在存储映射信息之后接收读取命令,其中,读取命令与特定的存储器地址相关联。例如,在图2中,数据存储设备202可以从主机设备220接收读取请求228。读取请求228包括识别存储器地址的信息。
方法700包括:在704处,基于映射信息来确定特定的存储器地址是否与分组标识符相关联。例如,控制器206可以将来自读取请求208的地址与映射信息212进行比较,以确定读取请求228的地址是否与映射信息212中的分组标识符相关联。
当特定的存储器地址与分组标识符相关联时,方法700包括在706处确定与由分组标识符所识别的分组相对应的存储器地址集合,该存储器地址集合包括特定的存储器地址以及一个或更多个额外的存储器地址。例如,控制器206可以使用映射信息212来识别与数据的压缩分组相对应的LBA集合。控制器206还可以使用逻辑-物理地址表216来确定与LBA集合相对应的存储元件。
方法700还包括:在708处,执行读取操作以从存储器的存储元件集合中读取压缩数据,该存储元件集合与存储器地址集合相对应,并且在710处,生成与数据的压缩分组相对应的解压缩数据。例如,参考图2,当读取请求228的地址与数据的第一压缩分组(例如,根据其形成了第一压缩数据251的数据的压缩分组)的分组标识符相关联时,控制器206可以从第二存储器区域250读取多个地址,其中,多个地址中的每个与分组标识符相关联。因此,包括与数据的压缩分组相关联的数据的存储元件集合中的每个存储元件可以被读取,即使特定的存储器地址仅与存储元件集合的子集相对应时也如此。
当特定的存储器地址不与任何分组标识符相关联时,方法700包括:在712处,执行读取操作以从与特定的存储器地址相对应的存储器的存储元件中读取数据(例如,不读取其他存储器地址),并且在714处,生成与特定的存储器地址相对应的解压缩数据。例如,参考图2,当在读取请求280中所指示的地址不与映射信息212中的分组标识符相关联时,控制器206可以仅读取与在读取请求228中所指示的地址相对应的数据,以生成数据230。
尽管在本文中所描绘的各种组件被示为方框组件并且以通用术语被描述,但是这样的组件可以包括一个或更多个微处理器、状态机或者被配置为使得数据存储设备——诸如图1的数据存储设备102或图2的数据存储设备202——能够执行归属于这样的组件或其任何组合的特定的功能。在本文中所描述的组件可以使用一个或更多个节点、一个或更多个总线(例如,数据总线和/或控制总线)、一个或更多个其他结构或者其组合可操作地彼此耦接。在本文中所描述的一个或更多个组件(例如,图1的控制器106或图2的控制器206)可以表示物理组件——诸如硬件控制器、状态机、逻辑电路或其他结构——以指令压缩引擎108、上下文比较器110、压缩引擎208、上下文比较器210或其组合生成压缩数据(诸如,压缩数据132、压缩数据251或者压缩数据252)。
控制器106或控制器206可以使用被编程为生成压缩数据(例如,使用图3的方法300、图4的方法400、图5的方法500或图6的方法600中的一个或更多个操作)或生成解压缩的数据(例如使用图7的方法700中的一个或更多个操作)的微处理器或微控制器来实现。在特定的实施例中,控制器106或控制器206包括分别地被存储在存储器104或存储器204处的处理器运行指令。可替换地或额外地,由处理器所运行的可运行指令可以被存储在不是存储器104或存储器204的部分的单独的存储器位置处,诸如只读存储器(ROM)处(未示出)。
为了进一步例示,控制器(例如,控制器106或控制器206)可以包括被配置为运行指令以执行在本文中所描述的特定的操作的处理器。处理器可以包括可操作为运行指令的运行单元。处理器可以运行指令以从主机设备接收命令(例如,接收图2的第一写入命令222和第二写入命令223)。例如,处理器可以运行与通信协议有关的一个或更多个指令,诸如,用于实现JEDEC工业规范——诸如eMMC规范、通用闪速存储(UFS)规范、USB规范或SD规范——的指令。处理器可以进一步运行指令,以对上下文标识符进行比较。例如,处理器可以运行一个或更多个指令,以执行与第一写入命令相关联的第一上下文的第一标识符和与第二写入命令相关联的第二上下文的第二标识符的比较。在另一示例中,处理器可以运行一个或更多个指令,以向上下文比较器——诸如图1的上下文比较器110或图2的上下文比较器210——提供第一标识符和第二标识符。在比较指示第一标识符与第二标识符匹配的情况下,处理器可以进一步运行指令,以形成包括第一数据和第二数据的数据的压缩分组。例如,如果第一标识符与第二标识符匹配,则处理器可以运行一个或更多个指令以对第一数据和第二数据进行组合(例如,合并)。处理器可以进一步运行指令,以生成与数据的压缩分组相对应的压缩数据。例如,处理器可以运行一个或更多个指令,以使用赫夫曼(Huffman)编码、算术编码、部分串匹配(PPM)压缩的预测、上下文树加权(CTW)加权、Lemple-Ziv(LZO)编码或另外的压缩技术来执行数据压缩。
数据存储设备102或数据存储设备202可以被附接或嵌入在一个或更多个主机设备中,诸如,在便携式通信设备的壳体内。例如,数据存储设备102或数据存储设备202可以在封装的装置内,诸如无线电话、个人数字助理(PDA)、游戏设备或控制器、便携式导航设备或使用内部非易失性存储器的其他设备。然而,在其他实施例中,数据存储设备102或数据存储设备202可以是被配置为选择性地耦接到一个或更多个外部设备的便携式设备。
为了进一步例示,数据存储设备(例如,数据存储设备102或数据存储设备202)可以被配置为耦接到主机设备(例如,主机设备120或主机设备220)作为嵌入式存储器,诸如与嵌入式多媒体卡(JEDEC SolidState Technology Association,Arlington,Virginia的商标)配置相连,如示意性的示例那样。数据存储设备可以与eMMC设备相对应。作为另一示例,数据存储设备可以与存储卡相对应,诸如数字安全卡、微型卡、迷你SDTM卡(SD-3C LLC,Wilmington,Delaware的商标)、多媒体卡TM(MMCTM)卡(JEDEC Solid State Technology Association,Arlington,Virginia的商标)或紧凑型闪速(CF)卡(SanDisk Corportaiton,Milpitas,California的商标)。数据存储设备可以遵照JEDEC工业规范进行操作。例如,数据存储设备可以遵照JEDEC eMMC规范、JEDEC通用闪速存储(UFS)规范、一个或更多个其他规范或者其组合来进行操作。
在特定的实施例中,存储器(例如,存储器104或存储器204)包括三维(3D)存储器,诸如阻变式随机存取存储器(ReRAM)、闪速存储器(例如,NAND存储器、NOR存储器、单级单元(SLC)闪速存储器、多级单元(MLC)闪速存储器、位线分割NOR(DINOR)存储器、AND存储器、高电容耦合比(HiCR)设备、不对称非接触式晶体管(ACT)设备或其他闪速存储器)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、只读存储器(ROM)、一次可编程存储器(OTP)或者起组合。可替换地或者额外地,存储器可以包括另外的类型的存储器。存储器可以包括半导体存储器器件。
半导体存储器器件包括易失性存储器器件,诸如动态随机存储器存储器(“DRAM”)或静态随机存储器存储器(“SRAM”)设备、非易失性存储器器件,诸如阻变式随机存取存储器(“ReRAM”)、电可擦可编程只读存储器(“EEPROM”)、闪速存储器(其还可以被认为是EEPROM的子集)、铁电随机存取存储器(“FRAM”)以及能够存储信息的其他半导体元件。每个类型的存储器器件可以具有不同的配置。例如,闪速存储器可以被配置为NAND或NOR配置。
存储器器件可以以任何组合从无源元件和/或有源元件中形成。通过非限制性示例的方式,无源半导体存储器元件包括ReRAM设备元件,在一些实施例中,其包括电阻性开关存储元件,诸如抗熔断、相变材料等,并且可选地包括电流引导元件,诸如二极管等。进一步通过非限制性示例的方式,有源半导体存储器元件包括EEPROM和闪速存储器元件,在一些实施例中,其包括包含电荷存储区域的元件,诸如浮动栅极、导电纳米粒子或电荷存储介电材料。
多个存储器元件可以被配置为使得其被串联或使得每个元件可单独地被访问。通过非限制性示例的方式,为NAND配置(NAND存储器)的闪速存储器器件典型地包含串联的存储器元件。NAND存储器阵列可以被配置为使得阵列由多个存储器串构成,其中,串由共享单个位线并且作为分组可被访问的多个存储器元件构成。可替换地,存储器元件可以被配置为使得每个元件可单独地被访问,例如,NOR存储器阵列。NAND和NOR存储器配置是示例性的,并且存储器元件可以以其他方式被配置。
位于衬底内和/或位于衬底上的半导体存储器元件可以被布置为二维或三维,诸如二维存储器结构或三维存储器结构。在二维存储器结构中,半导体存储器元件被布置在单个平面或单个存储器器件层中。典型地,在二维存储器结构中,存储器元件被布置在基本上与支撑存储器元件的衬底的主表面平行地延伸的平面中(例如,在x-z方向的平面中)。衬底可以是晶片,在该晶片上或在该晶片中,形成有存储器元件的层,或者其可以是在存储器元件被形成之后附接到存储器元件的承载衬底。作为非限制性示例,衬底可以包括诸如硅的半导体。
存储器元件可以被布置在有序阵列中的单个存储器器件层中,诸如在多个行和/或列中。然而,存储器元件可以被布置为非规则的或非正交的配置。存储器元件可以各自具有两个或更多个电极或接触线,诸如位线和字线。
三维存储器阵列被布置为使得存储器元件占据多个平面或多个存储器层,从而形成三维结构(即,在x、y和z方向上,其中,y方向与衬底的主要平面基本上垂直,而x和z方向与衬底的主表面基本上平行)。作为非限制性示例,三维存储器结构可以垂直地被布置为多个二维存储器器件层的堆叠。作为另一个非限制性示例,三维存储器阵列可以被布置为多个垂直列(例如,与衬底的主表面基本上垂直,即,在y方向上延伸的列),其中,每个列在各自列中具有多个存储器元件。列可以被布置为二维配置,例如,在x-z平面中,从而在元件在多个垂直堆叠的存储器平面上的情况下导致了存储器元件的三维布置。存储器元件的其他三维布置也可能构成三维存储器元件阵列。
通过非限制性示例的方式,在三维NAND存储器阵列中,存储器元件可以耦接到一起以在单个水平(例如,x-z)存储器器件层内形成NAND串。可替换地,存储器元件可以耦接到一起以形成横跨多个水平存储器器件层的垂直NAND串。可以预见到其他三维配置,其中,一些NAND串包含在单个存储器层中的存储器元件,而其他串包含跨越多个存储器层的存储器元件。三维存储器阵列还可以被设计为NOR配置和ReRAM配置。
典型地,在整体的三维存储器阵列中,一个或更多个存储器器件层被形成在单个衬底上。可选地,整体的三维存储器阵列还可以具有至少部分地在单个衬底内的一个或更多个存储器层。作为非限制性的示例,衬底可以包括诸如硅的半导体。在整体的三维阵列中,构成阵列的每个存储器器件层的分层(layer)可以典型地形成在阵列的下层存储器器件层的分层上。然而,整体的三维存储器阵列的相邻存储器器件层的分层可以被共享,或者在存储器器件层之间具有中间分层。
可替换地,二维阵列可以单独地形成并且然后被封装到一起,以形成具有多个存储器层的非整体的存储器器件。例如,非整体地堆叠的存储器可以通过在单独的衬底上形成存储器层并且然后将存储器层堆叠在彼此的顶部来形成存储器层。衬底可以在堆叠之前被减薄或从存储器器件层移除,但是当存储器器件层初始地形成在单独的衬底上时,生成的存储器阵列不是整体的三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(整体的或非整体的)可以被形成在单独的芯片上并且然后被封装在一起以形成堆叠芯片存储器器件。
相关联的电路通常被用于促进存储器元件的操作,并且用于与存储器元件的通信。作为非限制性示例,存储器器件可以具有被用于控制并且驱动存储器元件以完成诸如编程和读取的功能的电路。该相关联的电路可以与存储器元件在同一衬底上和/或在单独的衬底上。例如,用存储器读取-写入操作的控制器可以位于单独的控制器芯片上和/或在与存储器元件相同的衬底上。
以上公开的主题将被认为是示意性的而不是限制性的,并且所附的权利要求旨在覆盖落入在本公开的范围内的所有这些修改、增强和其他实施例。因此,在法律所允许的最大范围内,本公开的范围将由所附的权利要求及其等同形式的最宽泛可允许解释来确定,并且不应当被前述的详细说明所约束或限制。
Claims (30)
1.一种方法,包括:
在包括控制器和存储器的数据存储设备处,执行:
响应于与第一数据和采用第一标识符可识别的第一上下文相对应的第一写入命令以及与第二数据和采用第二标识符可识别的第二上下文相对应的第二写入命令,来确定所述第一上下文的第一标识符与所述第二上下文的第二标识符是否匹配;
如果所述第一上下文的第一标识符被确定为与所述第二上下文的第二标识符匹配,则形成包括所述第一数据和所述第二数据的数据的压缩分组;以及
生成与所述数据的压缩分组相对应的压缩数据。
2.根据权利要求1所述的方法,进一步包括:
在对所述第二写入命令进行响应之前,将所述第一数据写入到所述存储器;以及
在对所述第二写入命令进行响应之后,如果所述第一标识符与所述第二标识符匹配,则:
从所述存储器读取所述第一数据;
对所述第一数据和所述第二数据进行组合,以形成所述数据的压缩分组;以及
对所述数据的压缩分组进行压缩以生成所述压缩数据。
3.根据权利要求1所述的方法,进一步包括确定所述数据的压缩分组的大小,其中,响应于确定所述数据的压缩分组的大小超过阈值大小来生成所述压缩数据。
4.根据权利要求1所述的方法,进一步包括:
在相关数据之中,
如果所述相关数据的大小超过阈值大小,则将所述相关数据划分为数据的多个子分组,其中,所述数据的压缩分组与多个子分组中的一个子分组相对应;以及
生成与所述多个子分组中的其他子分组相对应的额外的压缩数据。
5.根据权利要求1所述的方法,其中,在从主机设备接收指示所述第一数据和所述第二数据可压缩的数据之后生成所述压缩数据。
6.根据权利要求1所述的方法,其中,所述第一标识符和所述第二标识符是根据eMMC标准从主机设备所接收的上下文标识符。
7.根据权利要求1所述的方法,其中,所述第一标识符和所述第二标识符是根据通用闪速存储(UFS)标准从主机设备所接收的上下文标识符。
8.根据权利要求1所述的方法,进一步包括:
将所述压缩数据写入到与存储器的存储器地址集合相关联的所述存储器的区域;以及
存储映射信息,所述映射信息将所述存储器地址集合与所述数据的压缩分组的分组标识符相关联。
9.根据权利要求8所述的方法,其中,所述存储器地址集合与逻辑块地址的连续范围相对应。
10.根据权利要求8所述的方法,进一步包括:
在存储所述映射信息之后接收读取命令,所述读取命令与特定的存储器地址相关联;
基于所述映射信息来确定所述特定的存储器地址是否与所述分组标识符相关联;
如果所述特定的存储器地址与所述分组标识符相关联,则读取与所述分组标识符相关联的所述存储器地址集合中的每个存储器地址;以及
使用从所述存储器地址集合所读取的数据来生成与所述数据的压缩分组相对应的解压缩数据。
11.根据权利要求8所述的方法,其中,所述分组标识符是所述第一上下文或所述第二上下文的上下文标识符。
12.根据权利要求8所述的方法,进一步包括将所述分组标识符指派给所述数据的压缩分组,其中,所述分组标识符与所述第一标识符不同并且与所述第二分组标识符不同。
13.根据权利要求1所述的方法,进一步包括:
响应于与第三数据和采用第三标识符可识别的第三上下文相对应的第三写入命令,来确定所述第三标识符与所述第一标识符是否匹配;
如果所述第三标识符与所述第一标识符不匹配,则生成与所述第三数据相对应的第二压缩数据;以及
如果所述第三标识符与所述第一标识符匹配,则在生成所述压缩数据之前将所述第三数据添加到所述数据的压缩分组。
14.根据权利要求1所述的方法,其中,所述存储器具有三维(3D)存储器配置。
15.根据权利要求14所述的方法,其中,所述3D存储器配置单片地形成在具有在硅衬底之上的有源区的存储器裸芯的存储器单元的阵列的一个或更多个物理级中,以及其中,所述存储器裸芯进一步包括与所述存储器单元的操作相关联的电路。
16.一种数据存储设备,包括:
控制器;以及
耦接到所述控制器的存储器,其中,所述控制器被配置为:
执行与第一写入命令相关联的第一上下文的第一标识符和与第二写入命令相关联的第二上下文的第二标识符的比较;以及
基于所述比较来生成压缩数据,其中:
如果所述第一标识符与所述第二标识符匹配,则通过对包括与所述第一写入命令相对应的第一数据和与所述第二写入命令相对应的第二数据的数据的压缩分组进行压缩来生成所述压缩数据;以及
如果所述第一标识符与所述第二标识符不匹配,则针对所述第一数据生成第一压缩数据并且针对所述第二数据生成第二压缩数据。
17.根据权利要求16所述的数据存储设备,其中,所述控制器进一步被配置为:
在生成所述压缩数据之前将所述第一数据写入到所述存储器;以及
在执行所述比较之后,如果所述第一标识符与所述第二标识符匹配,则:
从所述存储器中读取所述第一数据;以及
对所述第一数据和所述第二数据进行组合以形成所述数据的压缩分组。
18.根据权利要求16所述的数据存储设备,其中,所述第一标识符和所述第二标识符是根据eMMC标准从主机设备所接收的上下文标识符。
19.根据权利要求16所述的数据存储设备,其中,所述第一标识符和所述第二标识符是根据通用闪速存储(UFS)标准从主机设备所接收的上下文标识符。
20.根据权利要求16所述的数据存储设备,其中,所述控制器进一步被配置为,如果所述第一标识符与所述第二标识符匹配,则:
将所述压缩数据写入到所述存储器的存储器地址集合;以及
存储映射信息,所述映射信息将所述存储器地址集合与分组标识符相关联,其中,所述分组标识符与所述数据的压缩分组相关联。
21.根据权利要求20所述的数据存储设备,其中,所述存储器地址集合与逻辑块地址的连续范围相对应。
22.根据权利要求20所述的数据存储设备,其中,所述控制器进一步被配置为:
在存储所述映射信息之后接收读取命令,所述读取命令与特定的存储器地址相关联;
基于所述映射信息来确定所述特定的存储器地址是否与所述分组标识符相关联;
如果所述特定的存储器地址与所述分组标识符相关联,则读取所述存储器地址集合中的每个存储器地址;以及
使用从所述存储器地址集合所读取的数据来生成与所述数据的压缩分组相对应的解压缩数据。
23.根据权利要求20所述的数据存储设备,其中,所述分组标识符是所述第一上下文或所述第二上下文的上下文标识符。
24.根据权利要求20所述的数据存储设备,其中,所述控制器进一步被配置为将所述分组标识符指派给所述数据的压缩分组,其中,所述分组标识符与所述第一标识符不同并且与所述第二分组标识符不同。
25.根据权利要求16所述的数据存储设备,其中,所述存储器具有三维(3D)存储器配置。
26.根据权利要求25所述的数据存储设备,其中,所述3D存储器配置单片地形成在具有在硅衬底之上的有源区的存储器裸芯的存储器单元的阵列的一个或更多个物理级中,以及其中,所述存储器裸芯进一步包括与所述存储器单元的操作相关联的电路。
27.一种方法,包括:
在包括控制器和存储器的数据存储设备处,执行:
响应于与特定的存储器地址相关联的读取命令,基于映射信息来确定特定的存储器地址是否与分组标识符中的任何一个相关联,所述映射信息将所述存储器的存储器地址映射到与数据的压缩分组相关联的分组标识符;以及
如果所述特定的存储器地址与分组标识符相关联,则:
确定与由所述分组标识符所标识的数据的压缩分组相对应的存储器地址集合,所述存储器地址集合包括所述特定的存储器地址以及一个或更多个额外的存储器地址;
执行读取操作以从存储器的存储元件集合中读取压缩数据,所述存储元件集合与所述存储器地址集合相对应;以及
生成与所述压缩数据相对应的解压缩数据。
28.根据权利要求27所述的方法,进一步包括,如果所述特定的存储器地址不与所述分组标识符中的任何一个相关联,则执行读取操作以从与所述特定的存储器地址相对应的存储器的存储元件中读取数据。
29.根据权利要求27所述的方法,其中,在所述控制器形成所述数据的压缩分组之后,由所述控制器将所述映射信息存储在存储器中。
30.根据权利要求27所述的方法,其中,由所述控制器将所述分组标识符指派给所述数据的压缩分组。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361919614P | 2013-12-20 | 2013-12-20 | |
US61/919,614 | 2013-12-20 | ||
US14/502,554 US9959072B2 (en) | 2013-12-20 | 2014-09-30 | Systems and methods of compressing data |
US14/502,554 | 2014-09-30 | ||
PCT/US2014/069240 WO2015094800A1 (en) | 2013-12-20 | 2014-12-09 | Systems and methods of compressing data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105874420A true CN105874420A (zh) | 2016-08-17 |
CN105874420B CN105874420B (zh) | 2019-06-18 |
Family
ID=53400069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480069431.1A Active CN105874420B (zh) | 2013-12-20 | 2014-12-09 | 对数据进行压缩的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9959072B2 (zh) |
EP (1) | EP3084586B1 (zh) |
KR (1) | KR102051179B1 (zh) |
CN (1) | CN105874420B (zh) |
WO (1) | WO2015094800A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109709589A (zh) * | 2019-01-09 | 2019-05-03 | 深圳市芯鹏智能信息有限公司 | 一种海空区域立体感知防控系统 |
CN111801659A (zh) * | 2018-02-12 | 2020-10-20 | 美光科技公司 | 存储器系统中的数据存取及通信的优化 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015120825A1 (en) * | 2014-02-17 | 2015-08-20 | Mediatek Inc. | Data access methods and data access devices utilizing the same |
JP6570809B2 (ja) * | 2014-02-28 | 2019-09-04 | 三菱重工サーマルシステムズ株式会社 | 冷凍機制御装置、冷凍機、及び冷凍機の診断方法 |
US10613756B2 (en) * | 2015-09-03 | 2020-04-07 | Qualcomm Incorporated | Hardware-accelerated storage compression |
CN105204781B (zh) * | 2015-09-28 | 2019-04-12 | 华为技术有限公司 | 压缩方法、装置和设备 |
CN107526538B (zh) * | 2016-06-22 | 2020-03-20 | 伊姆西Ip控股有限责任公司 | 用于在存储系统中传递消息的方法和系统 |
US10735462B2 (en) * | 2016-12-01 | 2020-08-04 | Kaminario Technologies Ltd. | Computer malware detection |
US10387305B2 (en) * | 2016-12-23 | 2019-08-20 | Intel Corporation | Techniques for compression memory coloring |
US10761756B1 (en) * | 2016-12-28 | 2020-09-01 | EMC IP Holding Company LLC | Compressing data in line using weighted compression budgets |
US11052930B2 (en) | 2017-06-16 | 2021-07-06 | Verb Surgical Inc. | Robotic arm cart having locking swivel joints and other position adjustment features and uses therefor |
US11099789B2 (en) | 2018-02-05 | 2021-08-24 | Micron Technology, Inc. | Remote direct memory access in multi-tier memory systems |
US11429279B2 (en) * | 2020-09-16 | 2022-08-30 | Samsung Electronics Co., Ltd. | Automatic data separation and placement for compressed data in a storage device |
CN115225094A (zh) * | 2021-04-21 | 2022-10-21 | 伊姆西Ip控股有限责任公司 | 数据压缩方法、电子设备和计算机程序产品 |
US20240143227A1 (en) * | 2022-10-26 | 2024-05-02 | Western Digital Technologies, Inc. | Data Storage Device and Method for Reducing Flush Latency |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000019293A2 (en) * | 1998-09-25 | 2000-04-06 | Anzus, Inc. | Method and apparatus for compressing data |
CN101521039A (zh) * | 2008-02-29 | 2009-09-02 | 群联电子股份有限公司 | 数据储存系统、控制器及方法 |
US20130179409A1 (en) * | 2012-01-06 | 2013-07-11 | International Business Machines Corporation | Separation of data chunks into multiple streams for compression |
US20130246721A1 (en) * | 2012-02-08 | 2013-09-19 | Kabushiki Kaisha Toshiba | Controller, data storage device, and computer program product |
CN103455440A (zh) * | 2012-06-04 | 2013-12-18 | 慧荣科技股份有限公司 | 快闪内存装置及快闪内存的数据存取方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996025801A1 (en) * | 1995-02-17 | 1996-08-22 | Trustus Pty. Ltd. | Method for partitioning a block of data into subblocks and for storing and communicating such subblocks |
US5870036A (en) * | 1995-02-24 | 1999-02-09 | International Business Machines Corporation | Adaptive multiple dictionary data compression |
US6100825A (en) * | 1998-12-31 | 2000-08-08 | Microsoft Corporation | Cluster-based data compression system and method |
US6819271B2 (en) * | 1999-01-29 | 2004-11-16 | Quickshift, Inc. | Parallel compression and decompression system and method having multiple parallel compression and decompression engines |
US6446145B1 (en) * | 2000-01-06 | 2002-09-03 | International Business Machines Corporation | Computer memory compression abort and bypass mechanism when cache write back buffer is full |
US6618397B1 (en) * | 2000-10-05 | 2003-09-09 | Provisionpoint Communications, Llc. | Group packet encapsulation and compression system and method |
US7047382B2 (en) * | 2000-11-29 | 2006-05-16 | Quickshift, Inc. | System and method for managing compression and decompression and decompression of system memory in a computer system |
KR100777271B1 (ko) * | 2001-02-28 | 2007-11-20 | 엘지전자 주식회사 | 디지털 시스템의 메모리 관리 방법 |
US6859858B2 (en) | 2001-11-15 | 2005-02-22 | Intel Corporation | Methods and apparatuses for content-based speed variation of an optical storage drive |
US7081377B2 (en) * | 2002-06-27 | 2006-07-25 | Sandisk 3D Llc | Three-dimensional memory |
US6711635B1 (en) * | 2002-09-30 | 2004-03-23 | Western Digital Technologies, Inc. | Disk drive employing thresholds for cache memory allocation |
US7433994B2 (en) | 2004-12-07 | 2008-10-07 | Ocz Technology Group, Inc. | On-device data compression to increase speed and capacity of flash memory-based mass storage devices |
US7711890B2 (en) * | 2006-06-06 | 2010-05-04 | Sandisk Il Ltd | Cache control in a non-volatile memory device |
US8412682B2 (en) * | 2006-06-29 | 2013-04-02 | Netapp, Inc. | System and method for retrieving and using block fingerprints for data deduplication |
US8327051B2 (en) | 2007-11-20 | 2012-12-04 | Sandisk Technologies Inc. | Portable handheld memory card and methods for use therewith |
US8954654B2 (en) * | 2008-06-18 | 2015-02-10 | Super Talent Technology, Corp. | Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance |
US8630987B2 (en) | 2008-07-16 | 2014-01-14 | Cleversafe, Inc. | System and method for accessing a data object stored in a distributed storage network |
US8533564B2 (en) | 2009-12-23 | 2013-09-10 | Sandisk Technologies Inc. | System and method of error correction of control data at a memory device |
WO2012056493A1 (en) * | 2010-10-26 | 2012-05-03 | Hitachi, Ltd. | File management method and computer system |
KR20130030640A (ko) * | 2011-09-19 | 2013-03-27 | 삼성전자주식회사 | 저장 매체에 데이터를 저장하는 방법 및 그것을 포함하는 데이터 저장 장치 |
WO2013100959A1 (en) | 2011-12-28 | 2013-07-04 | Intel Corporation | Processor accelerator interface virtualization |
WO2013098463A1 (en) * | 2011-12-29 | 2013-07-04 | Nokia Corporation | Method for erasing data entity in memory module |
US8918579B2 (en) | 2012-02-06 | 2014-12-23 | Sandisk Technologies Inc. | Storage device and method for selective data compression |
-
2014
- 2014-09-30 US US14/502,554 patent/US9959072B2/en active Active
- 2014-12-09 WO PCT/US2014/069240 patent/WO2015094800A1/en active Application Filing
- 2014-12-09 EP EP14824632.5A patent/EP3084586B1/en not_active Not-in-force
- 2014-12-09 KR KR1020167018184A patent/KR102051179B1/ko active IP Right Grant
- 2014-12-09 CN CN201480069431.1A patent/CN105874420B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000019293A2 (en) * | 1998-09-25 | 2000-04-06 | Anzus, Inc. | Method and apparatus for compressing data |
CN101521039A (zh) * | 2008-02-29 | 2009-09-02 | 群联电子股份有限公司 | 数据储存系统、控制器及方法 |
US20130179409A1 (en) * | 2012-01-06 | 2013-07-11 | International Business Machines Corporation | Separation of data chunks into multiple streams for compression |
US20130246721A1 (en) * | 2012-02-08 | 2013-09-19 | Kabushiki Kaisha Toshiba | Controller, data storage device, and computer program product |
CN103455440A (zh) * | 2012-06-04 | 2013-12-18 | 慧荣科技股份有限公司 | 快闪内存装置及快闪内存的数据存取方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111801659A (zh) * | 2018-02-12 | 2020-10-20 | 美光科技公司 | 存储器系统中的数据存取及通信的优化 |
CN109709589A (zh) * | 2019-01-09 | 2019-05-03 | 深圳市芯鹏智能信息有限公司 | 一种海空区域立体感知防控系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3084586A1 (en) | 2016-10-26 |
KR102051179B1 (ko) | 2020-01-08 |
CN105874420B (zh) | 2019-06-18 |
KR20160105802A (ko) | 2016-09-07 |
US20150178013A1 (en) | 2015-06-25 |
US9959072B2 (en) | 2018-05-01 |
EP3084586B1 (en) | 2021-12-29 |
WO2015094800A1 (en) | 2015-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105874420B (zh) | 对数据进行压缩的系统和方法 | |
CN106663073B (zh) | 用于适应性突发模式的储存设备和方法 | |
US9626312B2 (en) | Storage region mapping for a data storage device | |
US10540274B2 (en) | Memory devices including dynamic superblocks, and related methods and electronic systems | |
CN107111456B (zh) | 用于生成与主机命令相关联的提示信息的系统和方法 | |
US10318193B2 (en) | Systems and methods of command authorization | |
US9582358B2 (en) | Initialization scheme during dual programming of a memory system | |
US9720769B2 (en) | Storage parameters for a data storage device | |
US9977628B2 (en) | Storage module and method for configuring the storage module with memory operation parameters | |
CN106463499A (zh) | 存储器模块 | |
CN106255954A (zh) | 主从环境中的通信命令数据的系统和方法 | |
US20150348649A1 (en) | Bit error rate mapping in a memory system | |
CN109074318B (zh) | 用于执行转换层表的自适应主机存储器缓冲区高速缓存的系统和方法 | |
CN110383250A (zh) | 配置为使用无线接口执行操作的数据存储设备 | |
US9582205B2 (en) | Protection scheme with dual programming of a memory system | |
CN104866246A (zh) | 一种混合固态硬盘 | |
US20160070643A1 (en) | System and method of counting program/erase cycles | |
US9870167B2 (en) | Systems and methods of storing data | |
CN107980126A (zh) | 多裸芯储存装置的调度方案 | |
US20170109078A1 (en) | Memory System and Method for Increasing Read Parallelism of Translation Pages | |
CN107810533A (zh) | 使用位线缺陷信息解码数据 | |
CN108694980A (zh) | 数据存储装置及其操作方法 | |
CN109426453A (zh) | 数据存储装置及其操作方法 | |
US11429663B2 (en) | Storage system and method for host-assisted memory block color coding for faster media search |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |