专利名称:数据压缩设备、其操作方法以及包括该设备的数据处理装置的制作方法
技术领域:
本发明总体构思的示例实施例涉及数据压缩技术,例如,能够分析数据并基于分析结果确定是否压缩数据的数据压缩设备、操作数据压缩设备的方法、用于压缩数据的方法,和/或包括数据压缩设备的数据处理装置。
背景技术:
数据压缩指把数据更有效地存储在更小的存储空间中的技术以及这种技术的实际应用。常规的数据压缩包括编码和解码过程。在编码过程期间减小数据的大小。在解码过程期间,把编码数据恢复到原始数据。
发明内容
至少ー个示例实施例提供了ー种操作数据压缩设备的方法。根据至少此示例实施例,所述方法包括在数据在输入缓冲器中被缓冲时,使用数据模式分析器分析数据的模式;输出分析的结果;并根据分析的结果分流(bypass)或者压缩被缓冲的数据。在一个例子中,分析数据的模式可以包括分析数据的头中所包括的指示位,并基于被分析的指示位指示是否压缩数据。在另ー个例子中,分析数据的模式可以包括对数据中所包括的多个符号中的每ー个的频率进行计数。在这个例子中,分析的结果可以是參考值与被计数频率的最大者和最小者其中之一之间比较的結果。在又一个例子中,分析数据的模式可以包括对数据中所包括的多个符号中的每一个的频率进行计数;给多个符号中的每ー个分配码字;并使用多个符号中的每ー个的频率以及分配给多个符号中的每ー个的码字的位数来计算估计的数据大小。分析的结果可以是估计的数据大小和參考数据大小之间比较的結果。在再一个例子中,分析数据的模式可以包括分析数据的头中所包括的指示位以确定是否压缩数据;和,基于对指示位的分析的結果,对数据中所包括的多个符号中的每ー个的频率进行计数。在这个例子中,分析的结果可以是參考值与被计数频率的最大者和最小者其中任何一个之间比较的結果。分流或者压缩被缓冲的数据可以包括把分析的结果存储在存储器中,井根据存储在存储器中的分析的结果,使用处理器分流或者压缩被缓冲的数据。数据模式的分析可以在被缓冲的数据被输出之前完成。至少ー个其他的示例实施例提供了ー种数据压缩设备。根据至少这个示例实施例,数据压缩设备包括输入缓冲器;数据模式分析器,被配置成分析传送到输入缓冲器的数据的模式并输出分析码;和,数据压缩管理器,被配置成根据分析码把输入缓冲器中的被缓冲数据分流到非易失性存储器设备或者压缩被缓冲的数据以产生被压缩的数据并把被压缩的数据传送到非易失性存储器设备。在一个例子中,数据模式分析器可以分析数据的头中所包括的指示位以确定是否压缩数据,并基于指示位输出分析码。数据模式分析器可以对数据中所包括的多个符号中的每ー个的频率进行计数,并输出參考值与被计数频率的最大者和最小者其中之一之间比较的结果作为分析码。在另ー个例子中,数据模式分析器可以对数据中所包括的多个符号中的每ー个的频率进行计数;给多个符号中的每ー个分配码字,并输出參考数据大小和估计数据大小之间比较的结果作为分析码。可以使用多个符号中的每ー个的频率以及分配给多个符号中的每ー个的码字的位数来获取估计数据。根据至少某些示例实施例,数据模式分析器可以包括头分析器,被配置成根据包括在数据的头中的指示是否压缩数据的指示位输出控制信号;和,根据被激活的控制信号 被使能的估计器。所述估计器被配置成对数据中所包括的多个符号中的每ー个的频率进行计数,给多个符号中的每ー个分配码字,并输出參考数据的大小与估计数据大小之间比较的结果作为分析码。根据至少某些示例实施例,数据模式分析器可以包括模式分析器,模式分析器被配置成对数据中所包括的多个符号中的每ー个的频率进行计数,并给多个符号中的每ー个分配码字。数据模式分析器还可以包括估计器,估计器被配置成接收从所述模式分析器输出的符号中的每ー个的频率,并输出參考数据的大小与估计数据大小之间比较的结果作为分析码。基于多个符号中的每ー个的频率以及分配给多个符号中的每ー个的码字的位数可以获取估计的数据。数据压缩管理器可以包括存储器,被配置成存储分析码;处理器,被配置成压缩被缓冲的数据并输出被压缩的数据;和,选择器,被配置成根据存储在存储器中的分析码,把被缓冲的数据分流到非易失性存储器设备或者把被缓冲的数据传送到处理器。处理器可以顺次地压缩被缓冲的数据的各符号,并输出指示符号之间的关系的信息而不压缩被缓冲数据内的重复符号。至少ー个其他示例实施例提供了ー种数据处理装置。根据至少这个示例实施例,数据处理装置包括非易失性存储器设备;和,数据压缩设备,被配置成把被分流或者压缩的数据传送到非易失性存储器设备。数据压缩设备包括输入缓冲器;和,数据模式分析器,被配置成在数据被传送到输入缓冲器时分析数据的模式,并输出分析码。数据处理装置还包括数据压缩管理器,数据压缩管理器被配置成根据分析码输出被缓冲的数据作为被分流的数据,或者压缩被缓冲的数据并输出被压缩的数据。数据处理装置可以是固态驱动器(SSD)、智能卡、存储器卡、智能电话、平板个人电能(PC)、个人数字助理(PDA)、MP3或者其他音乐播放器设备,等等。数据压缩设备可以集成在被配置成控制非易失性存储器的存储器控制器中。至少ー个其他的示例实施例提供了一种压缩数据的方法,包含由数据模式分析器分析数据以确定是否压缩数据;产生分析的结果,分析和产生中的至少ー个在数据在输入缓冲器中被缓冲时被执行;和,基于分析的结果选择性地压缩输入缓冲器中的数据。至少ー个其他的示例实施例提供ー种操作数据压缩设备的方法,包含拦截传送到输入缓冲器的数据;分析被拦截的数据的模式并输出分析的结果;和,根据分析的结果输出输入缓冲器中的被缓冲数据和被压缩的数据其中之一,通过压缩被缓冲的数据产生被压缩的数据。在被缓冲的数据被从输入缓冲器输出之前完成数据的模式的分析。当数据是η位数据,其中η是自然数吋,被缓冲的数据是该数据的整数倍。根据至少某些示例实施例,分析数据可以包含分析数据的头中所包括的指示位,所述指示位指示是否压缩数据。基于对指示位的分析而产生分析的結果。根据至少某些示例实施例,分析数据可以包含对数据中所包括的多个符号中的每ー个的频率进行计数;把參考值与被计数频率中的最大者和最小者其中之ー进行比较; 其中,基于比较产生分析的結果。根据至少某些示例实施例,分析数据可以包含对数据中所包括的多个符号中的每ー个的频率进行计数;给多个符号中的每ー个分配码字;基于多个符号中的每ー个的频率以及分配给多个符号中的每ー个的码字的位数来计算被压缩数据的大小的估计;和,把估计的被压缩数据的大小与參考值进行比较,其中,基于所述比较产生分析的結果。根据至少某些示例实施例,分析数据可以包含分析数据的头中所包括的指示位,所述指示位指示是否压缩数据;基于指示位的分析对数据中所包括的多个符号中的每ー个的频率进行计数;和,把參考值与被计数频率中的最大者和最小者其中之ー进行比较;其中,基于比较产生分析的結果。选择性地压缩被缓冲的数据可以包含把分析的结果存储在存储器中;和,基于存储在存储器中的分析的结果,使用处理器选择性地压缩被缓冲的数据。可以在被缓冲数据出之前完成分析数据。至少ー个其他的示例实施例提供了ー种数据压缩设备,包含数据模式分析器,被配置成分析传送到输入缓冲器的数据,数据模式分析器还被配置成基于分析产生分析码;和,数据压缩管理器,被配置成基于分析码压缩输入缓冲器中的被缓冲数据。至少ー个其他的示例实施例提供了ー种数据处理装置,包含非易失性存储器设备;和,数据压缩设备,被配置成选择性地压缩被缓冲的数据。数据压缩设备包括输入缓冲器;数据模式分析器,被配置成分析数据的模式并输出分析码,分析模式和输出分析码其中至少ー个在数据被传送到输入缓冲器时被执行;和,数据压缩管理器,被配置成根据分析码选择性地压缩在输入缓冲中被缓冲的数据。根据至少某些示例实施例,数据模式分析器可以被配置成分析数据的头中所包括的指示位,并基于指示位的分析产生分析码。所述指示位可以指示是否压缩数据。根据至少某些示例实施例,数据分析器可以被配置成对数据中所包括的多个符号中的每ー个的频率进行计数,并基于參考值与被计数频率的最大者和最小者其中之一之间的比较产生分析码。根据至少某些示例实施例,数据模式分析器可用被配置成对数据中所包括的多个符号中的每ー个的频率进行计数;给多个符号中的每ー个分配码字,和,基于參考数据的大小与估计的压缩数据的大小之间的比较产生分析码,基于多个符号中的每ー个的频率以及分配给多个符号中的每ー个的码字的位数来计算估计压缩数据的大小。根据至少某些示例实施例,数据模式分析器可以包含头分析器,被配置成基于包括在数据的头中的指示位输出控制信号,所述指示位指示是否压缩数据;和,估计器,被配置成响应于激活控制信号被选择性地使能,所述估计器还被配置成对数据中所包括的多个符号中的每ー个的频率进行计数,给多个符号中的每ー个分配码字,并基于參考数据的大小与估计的压缩数据的大小之间比较的结果产生分析码;所述估计的压缩数据的大小被基于多个符号中的每ー个的频率以及分配给多个符号中的每ー个的码字的位数来计算。根据至少某些示例实施例,数据模式分析器可以包含模式分析器,被配置成对数据中所包括的多个符号中的每ー个的频率进行计数,并给多个符号中的每ー个分配码字;和,估计器,被配置成从所述模式分析器接收符号中的每ー个的频率和分配给多个符号中的每ー个的码字,并被配置成基于參考数据的大小与估计的压缩数据的大小之间比较的结果产生分析码;所述估计的压缩数据的大小被基于多个符号中的每ー个的频率以及分配给多个符号中的每ー个的码字的位数来计算。
根据至少某些示例实施例,数据压缩管理器可以包含存储器,被配置成存储分析码;处理器,被配置成压缩被缓冲的数据并输出被压缩的数据;和,选择器,被配置成基于存储在存储器中的分析码把被缓冲的数据输出到非易失性存储器设备和处理器其中之一。至少ー个其他的示例实施例提供了一种用于压缩输入数据的方法,包含在数据压缩设备,基于数据的模式和数据的头中所包括的指示位的值其中之一选择性地压缩数据,指示位和模式中的每ー个均指示数据是否是被压缩的数据。根据至少某些示例实施例,所述方法还可以包含确定数据是否包括头信息,其中,如果数据包括头信息,则基于指示位选择性地压缩数据。如果数据不包括头信息,则基于数据的模式选择性地压缩数据。根据至少某些示例实施例,所述方法还可以包含对数据中所包括的每ー个符号的频率进行计数;把被计数频率中的最大和最小频率其中之一与參考值进行比较,并且其中,选择性压缩步骤基于參考值与最大或者最小频率之间的比较选择性地压缩数据。根据至少某些示例实施例,所述方法还可以包含对数据中所包括的每ー个符号的频率进行计数;给数据中所包括的符号中的每ー个分配码字;基于被计数的频率以及每ー个被分配的码字的位数来估计压缩数据的大小;把估计的压缩数据的大小与參考值进行比较;并且其中,选择性压缩步骤基于估计的压缩数据大小和參考值之间的比较选择性地压缩数据。至少ー个其他示例实施例提供了ー种数据压缩设备,包含数据压缩管理器,被配置成基于数据的模式和数据的头中所包括的指示位的值其中之ー选择性地压缩数据,指示位和模式中的每ー个均指示数据是否是被压缩的数据。根据至少某些示例实施例,数据压缩设备可以包含数据模式分析器,被配置成确定数据是否包括头信息,并且其中,如果数据包括头信息,则数据压缩管理器基于指示位选择性地压缩数据。根据至少某些示例实施例,如果数据不包括头信息,则数据压缩管理器可以基于数据的模式选择性地压缩数据。数据模式分析器还可以被配置成对数据中所包括的每ー个符号的频率进行计数,并把被计数频率中的最大和最小频率其中之一与參考值进行比较。数据压缩管理器可以基于參考值与最大或最小频率之间的比较选择性地压缩数据。数据模式分析器还可以被配置成对数据中所包括的每ー个符号的频率进行计数,给数据中所包括的符号中的每ー个分配码字,基于频率以及每ー个被分配的码字的位数来估计压缩数据的大小,并把估计的压缩数据的大小与參考值进行比较。数据压缩管理器可以基于估计的压缩数据的大小和參考值之间的比较选择性地压缩数据。
从下面结合附图的详细描述中,本发明总体构思的示例实施例将变得更清晰地被通解,在附图中图IA是根据本发明总体构思的示例实施例的数据压缩设备的框图。 图IB是从图I的输入缓冲器30输出的被缓冲数据的示例输出时序图;图IC示出了图IB中所示的被缓冲数据的示例结构;图2是根据本发明总体构思的另ー示例实施例的数据压缩设备的框图;图3是用于说明图2的数据模式分析器20B的示例操作的表格;图4是根据本发明总体构思的另ー示例实施例的数据压缩设备的框图;图5是根据本发明总体构思的又一示例实施例的数据压缩设备的框图;图6是用于说明操作数据压缩设备的方法的示例实施例的流程图;图7是用于说明操作数据压缩设备的方法的另ー示例实施例的流程图;图8是用于说明操作数据压缩设备的方法的又一示例实施例的流程图;图9是用于说明操作使用静态霍夫曼编码规则的模式分析器的方法的示例实施例的流程图;图10是用于说明操作使用动态霍夫曼编码规则的模式分析器的方法的示例实施例的流程图;图11示出了包括根据本发明总体构思的示例实施例的数据压缩设备的数据处理系统;图12示出了包括根据本发明总体构思的另ー示例实施例的数据压缩设备的数据处理系统;图13是根据本发明总体构思的又一示例实施例的数据压缩设备的框图;图14是用于说明操作数据压缩设备的方法的另ー示例实施例的流程图;和图15是用于说明操作数据压缩设备的方法的又一示例实施例的流程图。
具体实施例方式现在此后将參考附图更全面地描述示例实施例。但是,示例实施例可以用很多不同的形式具体实施,并且不应被理解为限于这里给出的示例实施例。相反,提供了这些示例实施例以使本公开将会透彻和完整。在附图中,为了清晰可能夸大层和区域的尺寸和相对尺寸。相同的数字通篇指示相同的元素。将会理解,当一元素被称为“连接到”或者“耦接到”另一元素时,其可能直接连接或者耦接到所述另一元素,或者,可能存在居间的元素。相反,当一元素被称为“直接连接至IJ”或者“直接耦接到”另ー元素时,没有居间的元素存在。如这里所使用的那样,术语“和/或”包括一个或更多个相关联的被列出项目的任意以及全部组合,并且可以被简写为“/”。将会理解,尽管这里可能使用术语第一、第二等来描述各种元素,这些元素不应受这些术语限制。这些术语仅用来将ー个元素与另一元素区別。例如,第一信号可以被称为第二信号,并且类似地,第二信号可以被称为第一信号而不偏离本公开的教导。这里使用的术语仅仅是为了描述具体实施例的目的,并非g在限制。如这里使用的那样,预期単数形式“一”、“ー个”和“该”也包括复数形式,除非上下文明确地另有規定。还将会理解,当在本说明书中使用吋,术语“包含”或者“包括”规定存在所陈述的特征、区域、步骤、操作、元素,和/或部件,但是不排除存在或者添加一个或更多个其他的特征、区域、步骤、操作、元素,和/或部件,和/或其组。除非另外限定,否则这里使用的所有术语(包括技术和科学术语)具有和本发明示范性实施例所属技术领域技术人员通常理解的相同的含义。还将会理解,术语一一例如在常用词典中定义的那些,应该被解释为具有和其在相关技术和/或本说明书的上下文中的含义一致的含义,并且将不被以理想化或者过于正式地意义解释,除非在这里明确地如此限定。在某些替代的实施方案中,注明的功能/动作可能不按在图中注明的顺序出现。例如,连续示出的两幅图实际上可以被基本上并发地执行,或者有时候可能被按颠倒的顺序执行,取决于所涉及的功能/动作。尽管ー个流程图可能把操作描述为顺序的过程,但是这些操作中的很多可以被并行地、并发地或同时地执行。此外,操作的顺序可以被重新安排。一过程在其操作被完成时可被終止,但是也可能具有未被包括在图中的额外步骤。ー过程可能对应于方法、函数、步骤、子例程、子程序等。当ー过程对应于函数时,其終止可以对应于该函数返回调用函数或者主函数。在下面的描述中,至少某些示例实施例被參考动作或者操作的符号表示(例如以流程图、流图、数据流图、过程流图、部分过程流图、结构图、框图等的形式)描述,至少其中的某些可以被实施为程序模块或者包括例程、程序、对象、部件、数据结构等的功能过程,所述功能过程执行特定任务或者实施特定的抽象数据类型。这些程序模块和/或函数过程可被使用硬件实施,例如ー个或更多个中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路、现场可编程门阵列(FPGA)计算机,等等。如这里所公开的,术语“存储介质”或者“计算机可读存储介质”可以代表ー个或更多个用于存储数据的设备,包括只读存储器(ROM)、随机访问存储器(RAM)、磁性RAM、磁芯存储器、磁盘存储介质、光学存储介质、闪存存储器件,和/或其他用于存储信息的有形的机器可读介质。术语“计算机可读介质”可以包括但不限于便携式或者固定的存储设备、光学存储设备,以及能够存储、包含或者携帯指令和/或数据的各种其他介质。此外,示例实施例可以由硬件、软件、固件、中间件、微码、硬件描述语言,或者其任意组合实施。当在软件、固件、中间件或者微码中实施时,用于执行必要任务的程序代码或者代码段可以被存储在机器或者计算机可读介质中,诸如计算机可读存储介质。当在软件中实施时,处理器或者多个处理器将执行所述必要任务。代码段可以代表步骤、函数、子程序、程序、例程、子例程、模块、软件包、类,或者指令、数据结构或者程序语句的任意組合。代码段可以通过传递和/或接收信息、数据、自变量、參数或者存储器内容耦接到其他代码段或者硬件电路。可以通过任何适当的手段,包括存储器共享、消息传递、令牌传递、网络传输等来传递、转发或者传送信息、自变量、參数、数据等。图IA是根据本发明总体构思的示例实施例的数据压缩设备IOA的框图。图IB是从图I的输入缓冲器30输出的被缓冲数据的示例输出时序图。图IC示出了针对图IB讨论的被缓冲数据的示例结构。參考图1A-1C,数据压缩设备IOA包括数据模式分析器20A、输入缓冲器30和数据压缩管理器40。至少在图IA中所示的示例实施例中,数据压缩设备IOA还包括输出缓冲器50。在一个例子中,数据压缩设备IOA可以由集成电路(1C)、这里讨论的任何硬件或者类似的硬件来具体实施。 在一个例子中,数据模式分析器20A可以由这里讨论的硬件,诸如能够分析输入数据DATA的模式的处理器来具体实施。数据压缩管理器40可以由这里讨论的硬件,诸如能够基于来自数据模式分析器20A的分析码INFl选择性地压缩来自输入缓冲器30的被缓冲数据BDi的处理器来具体实施。在示例操作中,数据模式分析器20A分析被传送到输入缓冲器30的输入数据DATA的模式,并基于分析的模式产生分析码INFl (分析结果)。数据模式分析器20A以分析结果的形式把分析码INFl输出到数据压缩管理器40。仍參考图1A,数据模式分析器20A包括头分析器21。头分析器21分析输入数据DATA的头HEADER中所包括的指示位,并基于对指示位的分析产生分析码INFl。分析码INFl可以包括ー个或更多个位。即,例如,分析码INFl可以是单位码或者多位码。头HEADER中所包括的指示位指示输入数据DATA的体数据DATAl是否是压缩数据。尽管被作为ー个指示位讨论,但是该指示位也可以包括ー个或更多个位。在一个例子中,当体数据DATAl是压缩数据(例如多媒体数据)吋,头HEADER中所包括的指示位可以具有第一值(例如I)。在另一方面,当输入数据DATA的体数据DATAl是非压缩数据时,头HEADER中所包括的指示位可以具有不同于第一值的第二值(例如O)。在这个例子中,当指示位具有第一值时,头分析器21输出具有第一值(例如I)的分析码INF1,但是当指示位具有第二值(例如O)时输出具有第二值(例如O)的分析码INFl。输入缓冲器30缓冲从数据总线接收到的输入数据DATA,并输出被缓冲的数据BDi。在一个例子中,当输入数据DATA是包括“a”位数的多位数据时,被缓冲的数据BDi也可以是包括“b”位数的多位数据。在这种情况下,“a”和“b”是自然数,并且a = b,或者,“b”是“a”的整数倍。在更具体的例子中,当输入数据DATA是8位数据并且被缓冲的数据BDi是64位数据时,数据模式分析器20A在时间间隔T内分析每ー组8位输入数据的模式。输入缓冲器30根据当在输入缓冲器30接收到所有八个输入数据DATA时激活的使能信号EN输出被缓冲的数据BDi,其中,i = 0,1,2,3,···。仍參考图1A,数据压缩管理器40基于从数据模式分析器20A输出的分析码INFl选择性地压缩被缓冲的输入数据BDi。然后,数据压缩管理器40把来自输入缓冲器30的被缓冲数据BDi或者通过压缩被缓冲数据BDi产生的压缩数据CDATA其中之ー输出。换句话说,数据压缩管理器40分流(bypass)被缓冲数据BDi的压缩,或者压缩被缓冲的数据BDi以产生压缩数据CDATA。在一个例子中,当分析码INFl具有第二值(例如O)时,数据压缩管理器40压缩来自输入缓冲器30的被缓冲数据BDi以产生压缩数据CDATA,并且把压缩数据CDATA输出到输出缓冲器50。在另一方面,当分析码INFl具有第一值(例如I)时,数据压缩管理器40把被缓冲的数据BDi无压缩地输出到输出缓冲器50。在图IA中所示的示例实施例中,数据压缩管理器40包括存储器41、处理器43和选择器45。存储器41接收并存储分析码INFl。选择器45基于存储在存储器41中的分析码INFl,把被缓冲的数据BDi输出到输出缓冲器50或者把被缓冲数据BDi传送到处理器43供压缩。例如,如果分析码INFl具有第一值,则选择器45把被缓冲数据BDi输出到输出缓冲器50。但是,如果分析码INFl具有第二值,则选择器45把被缓冲数据BDi输出到处理器43以便压縮。处理器43压缩从选择器45输出的被缓冲数据BDi以产生压缩数据CDATA,并把压缩数据CDATA输出到输出缓冲器50 对于图IC中所示的数据,处理器43顺次地压缩各符号A1、A2和A3,并输出指示符号之间的关系的信息而不压缩与先前被压缩的符号相同的符号。在这个例子中,处理器43可以压缩第一符号Al,但是不压缩第四符号Al。或者,处理器43可以压缩被缓冲数据BDi的所有符号。再參考图1A,输出缓冲器50接收并缓冲来自数据压缩管理器40的数据(例如,被缓冲数据BDi或者压缩数据CDATA)。然后,数据被从输出缓冲器50输出到非易失性存储器。在图IA中所示的示例实施例中,在输入数据DATA被传送到输入缓冲器30和/或在输入缓冲器30被缓冲吋,数据模式分析器20A分析输入数据DATA的模式(例如,头HEADER中所包括的指示位)。然后,数据模式分析器20A基于分析把分析码INFl传送到数据压缩管理器40。数据压缩管理器40基于分析码INFl确定是否压缩被缓冲的数据BDi。因为数据压缩管理器40无需单独读取存储在输入缓冲器30中的每ー输入数据DATA或者每ー被缓冲的数据BDi来分析每ー输入数据DATA的模式,所以数据压缩速度可以提闻。图2是根据本发明总体构思的另ー示例实施例的数据压缩设备的框图。和图IA到图IC中的输入数据DATA不同,图2中的输入数据DATA不包括具有指示体数据DATAl中的数据是否是压缩数据的指示位的头信息。參考图2,数据压缩设备IOB包括数据模式分析器20B、输入缓冲器30和数据压缩管理器40。在图2中所示的示例实施例中,数据压缩设备IOB还包括输出缓冲器50。数据模式分析器20B包括模式分析器23。当输入数据DATA被传送到输入缓冲器30时,模式分析器23接收输入数据DATA,分析输入数据DATA的模式,并基于分析结果输出分析码INF2。在这种情况下,模式分析器23分析图IC的被缓冲数据DO中所包括的每ー输入数据DATA的模式,直到图IB的下ー被缓冲数据Dl被输出为止。在这个例子中,模式分析器23对输入数据DATA中所包括的多个符号中的每ー个的频率进行计数,把最大(或者最小)频率与參考值进行比较,并把比较结果作为分析码INF2输出到数据压缩设备40。单个符号可以包括k位,其中“k”是自然数。在一个例子中,k = 8图3是用于说明图2中所示的数据模式分析器20B的示例操作的表格。參考图2和图3,模式分析器23确定输入数据DATA中所包括的多个符号AA、BB、CC、DD、EE、FF等中的各个的频率10、100、1000、2、5、50等。然后,模式分析器把最大(或者
最小)频率与參考值进行比较。当最大频率大于參考值(例如,对应于最大频率的符号的重复数相对较高)时,模式分析器23把具有第二值(例如O)的分析码INF2输出到数据压缩管理器40。具有第二值的分析码INF2指示输入数据DATA应该被数据压缩管理器40压缩。响应于具有第二值的分析码INF2,数据压缩管理器40压缩来自输入缓冲器30的被缓冲数据BDi,并把被压缩数据CDATA直接或者通过输出缓冲器50输出到非易失性存储器件(例如闪存存储器件)。 当最大频率小于或等于參考值时,模式分析器23把具有第一值(例如I)的分析码INF2输出到数据压缩管理器40。具有第一值的分析码INF2指示被缓冲数据BDi不需要由数据压缩管理器40压缩。响应于具有第一值的分析码INF2,数据压缩管理器40分流被缓冲数据BDi的压缩,并把被缓冲数据BDi直接或者通过输出缓冲器50传送到非易失性存储器件。图4是根据本发明总体构思的又一示例实施例的数据压缩设备IOC的框图。參考图4,数据压缩设备IOC包括数据模式分析器20C、输入缓冲器30和数据压缩管理器40。在图4中所示的示例实施例中,数据压缩设备IOC还包括输出缓冲器50。数据模式分析器20C包括头分析器25和估计器26。头分析器25分析输入数据DATA的头HEADER中所包括的指示位。基于指示位,头分析器25把控制信号输出到估计器26,并把第一控制码输出到数据压缩管理器40。控制信号控制估计器26的操作,并且第一控制码控制数据压缩管理器40的操作。如果指示位具有第一值(例如I),指示体数据DATAl中所包括的数据是压缩数据,则头分析器25通过把具有第一值的控制信号(例如具有低电平的控制信号)输出到估计器26来禁止估计器26的操作。头分析器25也把第一控制码输出到数据压缩管理器40。在这个例子中,第一控制码指令数据压缩管理器40分流被缓冲数据BDi的压缩。如果指示位具有第二值(例如O),指示体数据DATAl中所包括的数据是未压缩数据,则头分析器25通过把控制信号(例如具有高电平的激活控制信号)输出到估计器26来使能估计器26的操作。当被使能时,估计器26对输入数据DATA (例如体数据DATA1)中所包括的各个符号 W_AA、BB、CC、DD、EE、FF·)的频率(例如 10、100、1000、2、5、50 等)进行计数,例如图3中所示。仍參考图4,估计器26还根据编码规则把码字1011、101、10、10101、10001、110等分配给各个符号AA、BB、CC、DD、EE、FF等。然后,估计器26基于各个符号AA、BB、CC、DD、EE、FF等的频率10、100、1000、2、5、50等以及被分配给各个符号AA、BB、CC、DD、EE、FF等的各个码字1011、101、10、10101、10001、110等的位数4、3、2、5、5、3等估计被压缩数据的大小。然后,估计器26把估计的被压缩数据的大小(此后,称为“估计数据ECDATA”)与参考数据的大小进行比较,并把比较结果输出到数据压缩管理器40。
在一个例子中,估计器26根据等式I计算估计数据ECDATA的大小。
权利要求
1.一种压缩数据的方法,包含 由分析器分析数据以确定是否压缩数据; 产生分析的結果,所述分析和产生中的至少一个在数据在输入缓冲器中被缓冲时被执行;和 基于分析的结果选择性地压缩被缓冲的数据。
2.如权利要求I所述的方法,其中,所述分析数据包含 分析数据的头中所包括的指示位,所述指示位指示是否压缩数据,其中 基于对指示位的分析而产生所述分析的結果。
3.如权利要求I所述的方法,其中,所述分析数据包含 对数据中所包括的多个符号中的每ー个的频率进行计数;和 把參考值与被计数频率的最大者和最小者其中之ー进行比较,其中 基于所述比较产生所述分析的結果。
4.如权利要求I所述的方法,其中,所述分析数据包含 对数据中所包括的多个符号中的每ー个的频率进行计数; 给多个符号中的姆ー个分配码字; 基于多个符号中的每ー个的频率以及分配给多个符号中的每ー个的码字的位数来计算如果被压缩的话数据的估计大小;和把估计的大小与參考值进行比较,其中基于所述比较产生所述分析的結果。
5.如权利要求I所述的方法,其中,所述分析数据包含 分析数据的头中所包括的指示位,所述指示位指示是否压缩数据; 基于对指示位的分析,对数据中所包括的多个符号中的每ー个的频率进行计数;和 把參考值与被计数频率的最大者和最小者其中之ー进行比较,其中 基于所述比较产生所述分析的結果。
6.如权利要求I所述的方法,其中,所述选择性地压缩被缓冲的数据包含 把分析的结果存储在存储器中;和 基于存储在存储器中的分析的结果,使用处理器选择性地压缩被缓冲的数据。
7.如权利要求I所述的方法,其中,在把被缓冲的数据从输入缓冲器输出之前完成所述分析数据。
8.ー种数据压缩设备,包含 数据模式分析器,被配置成分析传送到输入缓冲器的数据,数据模式分析器还被配置成基于数据的分析产生分析码;和 数据压缩管理器,被配置成基于分析码选择性地压缩输入缓冲器中的数据。
9.如权利要求8所述的数据压缩设备,其中,所述数据模式分析器被配置成分析数据的头中所包括的指示位,并基于指示位的分析产生分析码,所述指示位指示是否压缩数据。
10.如权利要求8所述的数据压缩设备,其中,所述数据模式分析器被配置成对数据中所包括的多个符号中的每ー个的频率进行计数,并基于參考值与被计数频率的最大者和最小者其中之一之间比较的结果产生分析码。
11.如权利要求8所述的数据压缩设备,其中,所述数据模式分析器被配置成对数据中所包括的多个符号中的每ー个的频率进行计数,给多个符号中的每ー个分配码字,并基于參考数据的大小与如果被压缩的话数据的估计大小之间的比较结果产生分析码,基于多个符号中的每ー个的被计数频率以及分配给多个符号中的每ー个的码字的位数来计算所述估计的大小。
12.如权利要求8所述的数据压缩设备,其中,所述数据模式分析器包含 头分析器,被配置成基于包括在数据的头中的指示位输出控制信号,所述指示位指示是否压缩数据;和 估计器,被配置成响应于激活控制信号被使能,所述估计器还被配置成对数据中所包括的多个符号中的每ー个的频率进行计数,给多个符号中的每ー个分配码字,并基于參考数据的大小与如果被压缩的话数据的估计大小之间的比较结果产生分析码,基于多个符号中的每ー个的频率以及分配给多个符号中的每ー个的码字的位数来计算所述估计大小。
13.如权利要求8所述的数据压缩设备,其中,所述数据模式分析器包含 模式分析器,被配置成对数据中所包括的多个符号中的每ー个的频率进行计数,并给多个符号中的姆ー个分配码字;和 估计器,被配置成从所述模式分析器接收多个符号中的每ー个的频率和分配给多个符号中的每ー个的码字,所述估计器还被配置成基于參考数据的大小与如果被压缩的话数据的估计大小之间的比较结果产生分析码,基于多个符号中的每ー个的频率以及分配给多个符号中的每ー个的码字的位数来计算所述估计大小。
14.如权利要求8所述的数据压缩设备,其中,所述数据压缩管理器包含 存储器,被配置成存储分析码; 处理器,被配置成压缩输入缓冲器中的数据并输出被压缩的数据;和 选择器,被配置成基于存储在存储器中的分析码把所述输入缓冲器中的数据输出到所述非易失性存储器设备和处理器其中之一。
15.如权利要求14所述的数据压缩设备,其中,所述处理器顺次地压缩所述输入缓冲器中的数据的各符号,并输出在没有压缩数据内的重复符号的情况下指示符号之间的关系的信息。
16.ー种数据处理装置,包含 非易失性存储器设备;和 数据压缩设备,被配置成选择性地压缩被缓冲的数据,所述数据压缩设备包括 输入缓冲器,被配置成缓冲数据; 数据模式分析器,被配置成分析数据并基于数据的分析产生分析码,所述数据的分析和分析码的产生其中至少之ー在数据被传送到输入缓冲器时被执行;和 数据压缩管理器,被配置成基于分析码选择性地压缩被缓冲的数据。
17.如权利要求16所述的数据处理装置,其中,所述数据模式分析器被配置成分析数据的头中所包括的指示位,并基于指示位产生分析码,所述指示位指示是否压缩数据。
18.如权利要求16所述的数据处理装置,其中,所述数据模式分析器被配置成对数据中所包括的多个符号中的每ー个的频率进行计数,并基于參考值与被计数频率的最大者和最小者其中之一之间比较的结果产生分析码。
19.如权利要求16所述的数据处理装置,其中,所述数据模式分析器被配置成对数据中所包括的多个符号中的每ー个的频率进行计数,给多个符号中的每ー个分配码字,并基于參考数据的大小与如果被压缩的话数据的估计大小之间的比较结果产生分析码,基于多个符号中的每ー个的频率以及分配给多个符号中的每ー个的码字的位数来计算所述估计大小。
20.如权利要求16所述的数据处理装置,其中,所述数据压缩管理器包含 存储器,被配置成存储分析码; 处理器,被配置成压缩被缓冲的数据并输出被压缩的数据;和选择器,被配置成基于存储在所述存储器中的分析码把被缓冲的数据输出到非易失性存储器设备和处理器其中之一。
21.如权利要求16所述的数据处理装置,其中,所述数据处理装置是固态驱动器(SSD)。
22.如权利要求16所述的数据处理装置,其中,所述数据处理装置是智能卡和存储器卡其中之一。
23.如权利要求16所述的数据处理装置,其中,所述数据处理装置是智能电话和平板个人计算机(PC)其中之一。
24.如权利要求16所述的数据处理装置,其中,所述数据压缩设备集成在被配置成控制非易失性存储器设备的存储器控制器中。
25.一种压缩数据的方法,所述方法包含 拦截传送到输入缓冲器的数据; 分析被拦截的数据并产生分析的结果;和 基于分析的结果输出来自输入缓冲器的数据和被压缩的数据其中之一,通过压缩输入缓冲器中的数据产生被压缩的数据。
26.如权利要求25所述的方法,其中,在数据被从输入缓冲器输出之前完成所述分析被拦截的数据。
27.如权利要求25所述的方法,其中,当数据包括一个或更多个位时,在所述输入缓冲器中缓冲的数据是该数据的整数倍。
28.如权利要求25所述的方法,其中,所述分析数据包含 分析数据的头中所包括的指示位,所述指示位指示是否压缩数据,其中 基于对指示位的分析而产生所述分析的結果。
29.如权利要求25所述的方法,其中,所述分析数据包含 对数据中所包括的多个符号中的每ー个的频率进行计数; 给多个符号中的姆ー个分配码字; 基于多个符号中的每ー个的频率以及分配给多个符号中的每ー个的码字的位数来计算如果被压缩的话数据的估计大小;和 把估计大小与參考数据的大小进行比较,其中 基于所述比较的结果产生所述分析的結果。
30.ー种用于压缩数据的方法,包含 在数据压缩设备中,基于数据的模式和数据的头中所包括的指示位的值其中之ー选择性地压缩数据,指示位和模式中的每ー个均指示数据是否是被压缩的数据。
31.如权利要求30所述的方法,还包含 确定数据是否包括头信息,并且其中, 如果数据包括头信息,则基于指示位选择性地压缩数据。
32.如权利要求31所述的方法,其中,如果数据不包括头信息,则基于数据的模式选择性地压缩数据。
33.如权利要求32所述的方法,还包含 对数据中所包括的每ー个符号的频率进行计数;和 把參考值与被计数频率中的最大者和最小者其中之ー进行比较,并且其中 基于所述比较选择性地压缩数据。
34.如权利要求32所述的方法,还包含 对数据中所包括的每ー个符号的频率进行计数; 给数据中所包括的符号中的每ー个分配码字; 基于被计数的频率以及每ー个被分配的码字的位数来估计如果被压缩的话数据的大小; 把估计的大小与參考值进行比较;并且 其中 基于估计的大小和參考值之间的比较选择性地压缩数据。
35.ー种数据压缩设备,包含 数据压缩管理器,被配置成基于数据的模式和数据的头中所包括的指示位的值其中之ー选择性地压缩数据,指示位和模式中的每ー个均指示数据是否是被压缩的数据。
36.如权利要求35所述的设备,还包含 数据模式分析器,被配置成确定数据是否包括头信息,并且其中 如果数据包括头信息,则所述数据压缩管理器基于指示位选择性地压缩数据。
37.如权利要求36所述的设备,其中,如果数据不包括头信息,则所述数据压缩管理器基于数据的模式选择性地压缩数据。
38.如权利要求37所述的设备,其中,所述数据模式分析器还被配置成对数据中所包括的每ー个符号的频率进行计数,并把參考值与每ー符号的被计数频率中的最大者和最小者其中之ー进行比较,其中数据压缩管理器基于所述比较选择性地压缩数据。
39.如权利要求37所述的设备,其中,所述数据模式分析器还被配置成对数据中所包括的每ー个符号的频率进行计数,给数据中所包括的符号中的每ー个分配码字,基于频率以及每ー个被分配的码字的位数来估计如果被压缩的话数据的大小,并把估计的大小与參考值进行比较,其中,数据压缩管理器基于估计的大小和參考值之间的比较选择性地压缩数据。
全文摘要
一种操作数据压缩设备的方法包括在数据由输入缓冲器缓冲时使用分析器分析数据并产生分析的结果,并且根据分析的结果选择性地压缩被缓冲的数据。一种数据压缩设备包括数据模式分析器,被配置成分析传送到输入缓冲器的数据,并基于数据的分析产生分析码;和,数据压缩管理器,被配置成基于分析码选择性地压缩输入缓冲器中的数据。
文档编号H03M7/30GK102694554SQ20111045364
公开日2012年9月26日 申请日期2011年12月30日 优先权日2011年1月19日
发明者孔骏镇, 尹弼相, 尹燦湖, 赵庆来 申请人:三星电子株式会社