用于存储并检索存储系统中信息的方法和存储装置的制作方法

文档序号:6600176阅读:355来源:国知局
专利名称:用于存储并检索存储系统中信息的方法和存储装置的制作方法
技术领域
本发明大体而言涉及大容量数字数据存储系统。更具体而言,本发明涉及用于在 一存储系统中自动实施符号或状态频率校平、以在该存储系统中存储基本上任何数据样式 时均有效满足性能目标的系统和方法。
背景技术
目前,诸如闪速存储器存储系统等非易失性存储系统的应用日益广泛,这是因为 此种存储系统的实体尺寸紧凑、而且非易失性存储器能够重复性再编程。闪速存储器存储 系统紧凑的实体尺寸有利于此种存储系统用于各种日益流行的装置内。使用闪速存储器存 储系统的装置包括,但不仅限于数字照相机、数字摄像机、数字音乐播放机、手持式个人计 算机及全球定位装置。闪速存储器存储系统内所包含的非易失性存储器重复编程的能力使 人们能够使用和重复使用闪速存储器存储系统。存储在一非易失性存储系统的一数据块中的数据集可实质上具有任何可能的数 据值组合。一个含有“N”个符号且每一符号均可存储为“m”个可能值之一的数据块可具有 “mN”个可能的数据值。考虑到所有可能的数据值均存储在一数据块中,存储系统的设计方 式通常须使其满足所有可能数据值的性能目标,而对于最常存储的数据样式而言此可能并 非最佳。亦即,为保证满足包括较不佳情形或不可能发生的情形在内的所有可能数据值或 数据样式的性能要求,可能要牺牲与最常用或较佳数据值相关的性能。若考虑将所有可能 的数据值存储在一存储系统的一数据块中,还可能导致相对复杂的设计问题、可靠性问题 增大、功率消耗增加、成本升高。在一数据块中可能存储的数据样式的数量可相对较大。甚至在一数据块中实质上 仅可存储二进制状态时,有可能存储在该数据块中的数据样式的数量也会很大。对于一可 存储一百个二进制位的数据块而言,实际上要安排该数据块存储2100个数据样式或情形。 对一存储这一百个二进制位的存储系统的要求是由少量的较不佳情形来设定或限制,这些 少量的较不佳情形可能需要专用电路来满足最低性能要求或可能消耗额外的功率。举例 而言,在某些系统中,将一百个二进制位存储为“ 1”可能是一较不佳情形,因为与涉及到以 “ 1,,和“0”值的混合来存储一百个二进制位的更佳情形相比,其所需的存储系统更加昂贵。 或者,一在存储较不佳或罕见情形时满足最低性能要求的存储系统可能会牺牲与存储更佳 情形相关的性能水平。通过牺牲与存储较佳情形相关的性能水平来满足与存储较不佳情形 相关的最低性能要求通常证明是低效的。除(或代替)可能导致牺牲性能外,若考虑将所有可能的数据值都存储在一个存储系统的数据块中,通常会导致生产成本升高,这是因为与存储所有可能的数据值相关的 电路成本可能较高。此种电路亦可能需消耗相对大的功率值。在数据存储及纳入额外的电 路来实现较不佳情形的存储两方面而言,一存储所有可能数据值的存储系统亦可能不甚可 靠。由于与为存储系统设计能使所有可能数据值得到存储的电路相关的设计问题,存储所 有可能数据值这一需要还可能导致开发时间变长,此本身又可能导致存储系统可上市之前 的设计至投产时间变长。因此,人们期望具有一种使较不佳情形能够有效地存储在非易失性存储器中而基 本不会牺牲与存储较佳情形相关的性能的系统。亦即,人们需要一种可有效地存储较不佳 情形及较佳情形二者的方法和装置。

发明内容
本发明涉及一种用於将数据变换为一可有效地存储于一非易失性存储器中的格 式的系统和方法。根据本发明的一个方面,一种用於在一存储系统中存储一第一数据格式 的信息的方法包括产生与该第一数据格式相关的统计信息,利用该统计信息将该信息从 该第一数据格式变换为一第二数据格式。在该信息变换为该第二数据格式后,将该信息以 第二数据格式存储到一存储器中。将该信息以第二数据格式存储到存储器包括在该存储 器中存储一标识符,该标识符指示或标识一用于将该信息从第一数据格式变换至第二数据 格式的变换。知晓该标识符通常使人们能够将该信息从第二数据格式变换回第一数据格 式。在一实施例中,与以第二数据格式存储信息相关的成本少于或等于与以第一数据格式 存储信息相关的成本。在另一实施例中,第一数据格式包括一第一符号的至少一次出现,且产生与该第 一数据格式相关的统计信息包括确定该第一数据格式的该第一符号的密度。确定该密度可 包括确定与该第一数据格式的第一符号的出现相关的百分比。在此一实施例中,利用统计 信息将信息从第一数据格式变换为第二数据格式可涉及将信息从第一数据格式变换为第 二数据格式,以减小信息中第一符号的密度。需存储到一存储系统中的数据可能具有多种不同的格式。某些格式(例如逻辑 状态或符号的组合)的存储效率可能比其他格式的存储效率低,这是因为某些格式可能允 许较不佳的情形。对于较不佳的情形(例如,其中一种逻辑状态构成一组数据的绝大部分 的情形)而言,如果其存储拟满足性能要求,则其可能需要专用电路或极大的功率需求来 实现存储目的。另外,一满足较不佳情形的存储性能要求的存储系统可能会牺牲与存储更 佳情形(例如,相对频繁出现的情形)相关的性能。通过在存储数据之前变换数据格式,例 如,从一种较不佳情形变换为一种较佳情形,则由于将较不佳情形有效地存储为较佳情形, 可有效地避免存储实际的较不佳情形。因此,可更有效地进行存储系统中数据的总体存储。 另外,可降低与存储系统相关的成本,且可增强存储系统的可靠性。根据本发明的另一方面,一种用于在一存储系统的一存储装置中检索以一第一数 据格式存储的信息的方法包括对第一数据格式的信息进行分析。对第一数据格式的信息 进行分析包括确定至少一种适用于将信息从该第一数据格式变换为一第二数据格式的合 适的变换。该方法亦包括利用该合适的变换将信息从该第一数据格式变换为该第二数据格 式。一与将信息以该第一数据格式存储到该存储装置中相关的成本不高于一与将该信息以该第二数据格式存储到该存储装置中相关的成本。在一实施例中,分析该第一数据格式的 信息包括读取该第一数据格式的信息的一段,以标识合适的变换。在另一实施例中,该存 储系统与一主机系统进行通信,该方法进一步包括向主机系统提供变换后的该第二数据格 式的信息。根据本发明的又一方面,一种能够变换及存储数据的系统包括一主机系统和一存 储装置。该存储装置介接该主机系统以从该主机系统获得设置成一第一数据格式的信息, 并包括一存储器、一统计信息产生器和一变换器。该统计信息产生器产生与该第一数据格 式相关的统计信息,该变换器利用该统计信息将该信息从该第一数据格式变换为一第二数 据格式。该变换器还将该信息以该第二数据格式存储到该存储器中。在一实施例中,该第 二数据格式的信息至少与该第一数据格式的信息同样容易地存储到该存储器中。在一实施例中,该变换器将一标识符作为该第二数据格式的信息的一部分进行存 储,该标识符实质上标识至少一种用于将信息从该第一数据格式变换为该第二数据格式的 变换。在此一实施例中,该主机系统可包括一信息处理器和一第二变换器。此一信息处理 器可读取该标识符,并与该第二变换器相协作,以标识至少一种用于将信息从该第二数据 格式变换为该第一数据格式的合适的变换。应了解,该变换器和该第二变换器可为分立的 变换器、并入一单个变换器中的变换器、或共享相同逻辑变换器、或者甚至为具有相同逻辑 但构造为起不同作用的变换器。在阅读以下详细说明并研究图式中的各图后,本发明的这些及其他优点即显而易 见。


结合附图并参阅下文说明,可最佳地了解本发明,附图如下图la是一根据本发明一实施例,一包括一非易失性存储装置的通用主机系统的 示意图。图lb是根据本发明一实施例,一非易失性存储装置(例如图la中的非易失性存 储装置120)的示意图。图2a是根据本发明一实施例,一包括一变换器的第一非易失性存储系统的示意 图。图2b是根据本发明一实施例,一包括一变换器的第二非易失性存储系统的示意 图。图2c是根据本发明一实施例,一包括一变换器的第三非易失性存储系统的示意 图。图3a是根据本发明一实施例,一主机与一第一非易失性存储系统进行通信的示 意图,其中在存储数据之前对数据实施多次变换。图3b是根据本发明一实施例,一主机与一第二非易失性存储系统进行通信的示 意图,其中在存储数据之前对数据实施多次变换。图4a是一根据本发明一实施例的过程流程图,其图解说明与一种将一主机提供 的数据有效地存储到非易失性存储器中的方法相关的步骤。图4b是一根据本发明一实施例分过程流程图,其图解说明与另一种将一主机提
7供的数据有效地存储到非易失性存储器中的方法相关的步骤。图5是根据本发明一实施例,一非易失性存储系统的示意图,该非易失性存储系 统包括一对已编码数据进行解码的变换器。图6是根据本发明一实施例,一主机及一非易失性存储系统的示意图,该非易失 性存储系统包括一向该主机直接提供已解码数据的变换器。图7是根据本发明一实施例,一主机及一非易失性存储系统的示意图,该非易失 性存储系统包括一可在将已解码数据提供给该主机之前利用多次迭代进行数据解码的变 换器。图8是一根据本发明一实施例的过程流程图,其图解说明与对已编码数据进行解 码相关的步骤。图9a是根据本发明一实施例,一对数据进行编码的变换器的示意图。图9b是根据本发明一实施例,一与图9a中的编码变换器918相关的变换的示意 图。图10a是根据本发明一实施例,一对数据进行解码的变换器的示意图。图10b是根据本发明一实施例,一解码变换器的示意图,该解码变换器适合将图 9b中的编码变换器918'实施的编码进行反演。
具体实施例方式通过在存储数据之前变换数据格式,例如,从一较不佳情形变换为一较佳情形,则 由于将一较不佳情形有效地存储为一较佳情形,从而可有效地避免存储实际上的较不佳情 形。因此,可更有效地进行存储系统中数据的总体存储,这是因为存储较不佳情形所消耗的 功率将通常不会大于存储较佳情形所消耗的功率,且可避免与存储较不佳情形相关的性能 损失。另外,在一将较不佳情形存储为更佳情形的存储系统中,与数据存储相关的电路的复 杂性可得到降低,例如,设计所花费的时间更短,且可在一定程度上更易于生产。亦即,可降 低与功率耗用、性能损失、设计问题和生产问题中至少一项相关的总成本或成本因素。例 如,可降低与功率消耗相关的成本、可降低性能损失或成本、可降低与设计复杂电路相关的 成本及可降低生产成本。当数据拟存储到诸如一非易失性存储装置的存储装置上时,主机系统可将该数据 提供至该非易失性存储装置。在一实施例中,非易失性存储装置可有效地减少数据,以确定 数据内所出现的逻辑状态和符号的相对密度,然后根据该相对密度选择一合适的变换来用 于将数据变换为一有效存储格式。一符号可为一个位或实质上任何数量的位的组合。虽然 一视为可有效存储的数据格式可视具体系统的要求而变化很大,但可有效存储的数据格式 可包括包含有实质上均勻分布的逻辑状态的格式;会将特定逻辑状态的最大密度最小化 的格式;以及会将特定逻辑状态的最小密度最大化的格式。首先参照图la,下文将介绍一通用主机系统,其包括一非易失性存储装置120,例 如一 CompactFlash存储卡(CF卡)。主机或计算机系统100通常包括一系统总线104,该 系统总线104使一微处理器108、一随机存取存储器(RAM) 112及各输入/输出电路116能 够进行通信。应了解,主机系统100可通常包含其他组件,例如显示装置及联网装置,此处 出于图解说明目的,未展示出这些组件。
一般而言,主机系统100所能捕获的信息包括(但并不限于)静止图像信息、音 频信息及视频图像信息。这些信息可实时捕获,并可以无线方式发送至主机系统100。虽然 主机系统100实质上可为任一系统,但主机系统100通常为一如下系统例如数字照像机、 视频照像机、蜂窝式通信装置、音频播放器或视频播放器。然而,应了解,主机系统100—般 而言可实质上为任一种存储数据或信息及检索数据或信息的系统。应了解,主机系统100还可为一仅捕获数据或仅检索数据的系统。亦即,主机系统 100可为一用于存储数据的专用系统,或者可为一用于读取数据的专用系统。例如,主机系 统100可为一个仅设置用于写入或存储数据的存储记录器。或者,主机系统100可为一诸 如MP3播放器等通常设置用于读取或检索数据而非捕获数据的装置。非易失性存储装置120在一实施例中为一可拆式非易失性存储装置,其布置成介 接至总线104以存储信息。一可选的输入/输出电路块130可使非易失性存储装置120间 接地介接总线104。如所属技术领域的技术人员所了解,输入/输出电路块130,在存在时, 用于降低总线104上的负荷。非易失性存储装置120包括非易失性存储器124和一存储器 控制系统128。在一实施例中,非易失性存储装置120可构建在一单一芯片或电路小片上。 或者,非易失性存储装置120可构建在一多芯片模块上或构建在可一同用作非易失性存储 装置120的多个分立组件上。下文中将根据图lb更详细地介绍非易失性存储装置120的 一实施例。非易失性存储器124设置用于存储数据,以便可视需要存取和读取数据。存储于 非易失性存储器124内的数据也可视需要擦除,当然应了解,非易失性存储器124内的某些 数据不可擦除。数据存储、读取和擦除过程通常由存储器控制系统128控制。在一实施例 中,存储器控制系统128管控非易失性存储器124的运行,以便通过基本上使非易失性存储 器124的各区段大致上同等地耗损来使非易失性存储器124的寿命最大化。上文已一般性地将非易失性存储装置120描述为包含一存储器控制系统128,即 一控制器。通常,非易失性存储装置120可包括分别用于非易失性存储器124和存储器 控制系统128(即控制器)功能的单独芯片。举例而言,尽管包括(但不仅限于)PC卡、 CompactFlash卡、多媒体(MultiMedia)卡及安全数字(secure digital)卡在内的非易失 性存储装置包含可构建于一单独芯片上的控制器,但其他非易失性存储装置可不包含构建 于一单独芯片上的控制器。在一其中非易失性存储装置120不包含单独的存储器和控制器 芯片的实施例中,如所属技术领域的技术人员所了解,存储器和控制器的功能可集成在一 单一芯片内。下文将参照图lb、根据本发明的一实施例更详细地阐述非易失性存储装置120。 如前面所述,非易失性存储装置120包括非易失性存储器124和存储器控制系统128。存储 器124和控制系统128 (或控制器)是非易失性存储装置120的主要组件。存储器124可 为一形成于一半导体衬底上的存储单元阵列,其中,通过将两个或多个电荷电平中的一个 电荷电平存储于存储单元的各存储元件上而将一或多位数据存储在各存储单元中。用于此 等系统的一常见类型存储器的实例是非易失性闪速电可擦可编程只读存储器(EEPR0M)。控制系统128通过总线15与一主机计算机或其他正使用该存储系统存储数据的 系统进行通信。总线15通常是图la中总线104的一部分。控制系统128还控制存储器 124(其可包括一存储单元阵列11)的运行,以写入主机所提供的数据、读取主机所请求的数据、并在正运行的存储器124中执行各种内务功能。控制系统128通常包括一具有相关 软件存储器和各种逻辑电路的通用微处理器。通常还包括一或多个状态机,以控制专用例 行程序的性能。存储单元阵列11 一般由控制系统128通过地址解码器17进行寻址。解码器17 向阵列11的各门极线和位线施加正确的电压,以便向正由控制系统128寻址的一组存储单 元编程数据、从该组存储单元读取数据或者擦除该组存储单元。辅助电路19包括用于控制 施加至阵列元件的电压的编程驱动器,该些电压取决于编程至一所寻址存储单元组中的数 据。电路19还包括读出放大器和其他从一所寻址存储单元组读取数据所必需的电路。待 编程至阵列11中的数据或从阵列11最新读取的数据通常存储在控制系统128内的一缓冲 存储器21中。控制系统128通常还包括用于临时存储命令和状态数据及类似数据的各种 寄存器。阵列11分为大量的存储单元块BLOCKS 0_N。通常对于闪速EEPR0M系统来说,块 即为擦除单位。换言之,每个块均包含可一起擦除的最小数量的存储单元。亦如图lb所示, 每个块通常分为若干页面。页面是编程单位。换言之,一基本编程操作是将数据写入一个 单元页面这一最小单位内。每个页面内通常存储一个或多个数据扇区。如图lb所示,一个 扇区包括用户数据和开销数据。开销数据一般包括一根据该扇区的用户数据计算出的纠错 码(ECC)。控制系统128的一部分23在数据正编程至阵列11内时计算ECC,且亦在正从阵 列11读取数据时校验ECC。或者,将ECC存储到与其所从属的用户数据不同的页面或不同 的块中。一用户数据扇区通常为512字节,此等于磁盘驱动器内一扇区的大小。开销数据 通常为一附加的28字节。最常见地,每个页面中包含一个数据扇区,但两个或更多个扇区 也可构成一个页面。大量页面即构成一个块,例如从8个页面到高达512个,1024个或更多 个页面不等。块的数量的选择旨在为存储系统提供一所期望的数据存储容量。阵列11通 常分为数个子阵列(未图示),其中每一子阵列皆包含这些块中的一部分,这些子阵列在一 定程度上彼此独立运行以提高在执行各种存储作业时的平行度。美国专利第5,890,192号 中阐述了使用多个子阵列的一个实例,该专利的全文以引用的方式并入本文中。通过图la中的总线104提供给非易失性存储装置120以存储到非易失性存储器 124(例如,非易失性存储器124中的存储单元)中的数据通常可包括较佳情形和较不佳情 形。较佳情形可包括相对频繁出现的数据样式或含有被视为相对易于存储或检索(例如, 需要相对少的开销或功率)的符号(例如状态)密度的数据样式。另一方面,较不佳情形 可包括相对不频繁地出现的数据样式或含有被视为相对难以存储或检索的符号密度的数 据样式。在所述实施例中,较佳情形通常为相对易于或有效地存储到非易失性存储器124 中或从非易失性存储器124检索出的数据样式,而较不佳情形通常为相对难以或低效地存 储到非易失性存储器124中或从非易失性存储器124检索出的数据样式。通过在将数据存储到非易失性存储器124中之前对数据进行变换,以便可有效地 避免较不佳情形,亦即以便将较不佳情形变换或编码成更佳情形,会使数据得到有效地存 储。通过对数据进行变换或操纵,以使基本上所有数据样式皆可作为相对较佳情形存储到 非易失性存储器124中,使得能够相对廉价地进行存储作业。通过动态地变换数据,会使在存储数据之前将一可能为较不佳情形的数据样式变换为一更佳情形。在非易失性存储器124中除存储变换后的数据外,还可存储用于指示曾 对数据进行变换及所实施变换类型二者的其他数据。在从非易失性存储器124中检索该数 据以将该数据重新变换成原始状态之前,可使用此信息。亦即,在变换和存储数据时,亦存 储与该变换相关的信息,以便在接收到变换后的数据时能够逆向进行该变换,从而有效地 使该数据恢复到其原始状态。在一实施例中,将与变换有关的信息存储为5位,当然位的数 量可变化很大。一般而言,与变换有关的信息可预先考虑至、附加至、并入或插入到变换后 的数据中。然而,应了解,该数据亦可独立于变换后的数据进行存储。可实施一变换来确保不会有数据样式带有高于某一百分比的一第一符号或少于 某一百分比的一第二符号。举例而言,可将任一特定符号的最大密度最小化,或将任一具体 符号的最小密度最大化。在某些实施例中,可进行变换来有效地确保变换后的数据样式满 足不同符号的一定最小百分比和一定最大百分比。通过确保各符号达到一定的百分比,例 如,使每种符号的最大密度最小化,通常可避免较不佳情形。如所属技术领域的技术人员所 了解,各符号可与表示不同状态相关联。一般而言,数据可在存储到一非易失性存储系统中的一数据块中之前进行变换。 虽然数据变换可在将数据提供给一非易失性存储系统之前在一主机上进行,但数据变换一 般是在非易失性存储系统内进行。在一实施例中,数据变换是在将数据从主机读入一与该 非易失性存储系统相关的缓冲器之后、但在数据存储到一数据块中之前进行。参照图2a,下 文将根据本发明阐述一包括一变换器的非易失性存储系统的实施例。一非易失性存储系统 202与一主机206进行通信,以使主机206可向系统202提供数据值。主机206向一缓冲器 210和一统计信息产生器214提供数据,例如“原始”数据或未经变换的数据。在一实施例 中,一非易失性存储系统202'可与一主机206进行通信,主机206将未经变换的数据提供 至缓冲器210,但不提供至统计信息产生器214,如图2b所示。在此一实施例(即图2b所 示的实施例)中,缓冲器210可设置为向统计信息产生器214提供未经变换的数据。重新参照图2a,缓冲器210设置用于在由变换器218变换数据之前临时存储数据, 而统计信息产生器214则对数据进行分析或缩减,以产生统计信息,该统计信息用于确定 变换器218拟使用的变换。在一实施例中,统计信息产生器214设置用于确定在该数据中 每种符号所出现的次数。统计信息产生器214亦可设置用于确定每种符号相对于整个数据 流出现的总百分比。变换器218使用由统计信息产生器214产生的统计信息将数据编码成一较佳的数 据样式。一般而言,变换器218亦将已编码数据存储到一非易失性存储器222中,该非易失 性存储器222可包括存储单元或存储块。如所属技术领域的技术人员所了解,使用统计信 息产生器214所产生的统计信息的变换器218可仅为与非易失性存储系统202相关的复数 个变换器中的一个。举例而言,如下文中根据图2c所阐述,在变换器218实施变换之前或 之后可进行其他变换。变换器218亦可向已编码数据中增加位,这些位设置用于指示(例如)当从非易 失性存储器222获得该已编码数据时如何解码或重新变换该已编码数据,如前文所述。在 一实施例中,可将一标识符单独存储到(例如)一与非易失性存储器222中不同于存储有 该已编码数据的区段的另一区段相关的查找表中,而不是通过将位并入已编码数据中来指 示如何解码该已编码数据。然后,当需要使用存储信息时或当需将已编码数据解码时,可存
11取此一标识符。应了解,当数据已处于一较佳的或所期望的数据样式时,变换器218可选择不对 该数据进行编码。换言之,并非所有通过变换器218的数据均得到变换。当一数据样式未 经变换器218变换时,在将数据存储到非易失性存储器222中之前,变换器218亦可不将任 何符号或位附加至、预先考虑至、并入或插入到该数据样式中,这是因为基本上不需要用于 指示如何重新变换该数据样式的位。或者,变换器218可将用于指示数据样式已经过变换 器218处理但未进行变换的位附加至、预先考虑至、并入或插入到一数据样式中。
在数据经过变换器218处理后,经处理的数据一般存储到非易失性存储器222中。 如在下文中所更详细阐述,在一实施例中,可将通过变换器218的已编码数据读入到缓冲 器210中,以在实施存储作业之前,可由变换器218对变换后的数据至少实施另一次变换, 以进一步变换符号密度,例如状态密度。变换可包括校平过程,该等校平过程可设置用于减 小一或多种符号在一数据样式中出现的频率、或者增加一或多种符号在该数据样式中出现 的频率。校平过程亦可设置用于既减小一或多种符号在一数据样式中出现的频率、又增加 一或多种符号在该数据样式中出现的频率。如前文中所述,一非易失性存储系统可具有多于一个相关变换器。图2c是根据本 发明一实施例,一主机与一非易失性存储系统进行通信的示意图,该非易失性存储系统包 括复数个变换器。一非易失性存储系统202"与一主机206进行通信,以使主机206可向系 统202"提供数据值。主机206可向一可选的第一变换器280提供数据,例如“原始”数据 或未经变换的数据,该第一变换器280可利用基本上任何适当的变换演算法对数据进行变 换。适当的变换演算法可包括,但不限于一预先确定的变换演算法、一基于使用一随机数 字产生器来识别一适当变换的变换演算法、或者一旋转变换演算法。然后,可将经可选的第 一变换器280处理的数据提供给缓冲器210和一统计信息产生器214。缓冲器210设置用于在由变换器218变换数据之前对数据进行临时存储。统计信 息产生器214对数据进行分析或缩减,以产生统计信息,这些统计信息用于确定变换器218 将使用的变换。在一实施例中,统计信息产生器214设置用于确定在数据(即由可选的第 一变换器280处理的数据)中每种符号所出现的次数量。统计信息产生器214亦可设置用 于确定每种符号相对于整个数据流出现的总百分比。变换器218使用由统计信息产生器214产生的统计信息将数据编码成一较佳的数 据样式。在所述实施例中,变换器218亦可将已编码数据提供给一第二可选变换器282,该 第二可选变换器282可利用基本上任何未基于由统计信息产生器214产生的统计信息的变 换对已编码数据进行变换。亦即,变换器218可将已编码数据提供给第二可选变换器282, 第二可选变换器282可利用一传统的变换方法对已编码数据进行进一步变换。第二可选变 换器282可将变换后的数据存储到一非易失性存储器222中,该非易失性存储器222可包 括存储单元或存储块。应了解,非易失性存储系统202"中可包括第一可选变换器280和第 二可选变换器282中的一个或同时包括两者。图3a是根据本发明一实施例,一主机与一非易失性存储系统进行通信的示意图, 其中,在存储数据之前可对数据实施多次变换。类似于图2a中的非易失性存储系统202,一 非易失性存储系统302包括一缓冲器310、一变换器318、一统计信息产生器314和一非易 失性存储器322。非易失性存储器322通常包括其中可存储数据的存储块或存储单元。系统302与一主机306或一源进行通信,以使主机306可向系统302内提供数据值或信息。主机306将符号形式的数据提供给缓冲器310和统计信息产生器314。尽管是由 主机306向统计信息产生器314提供数据,但在一实施例中,可由缓冲器310向统计信息产 生器314提供数据,如图3b非易失性存储系统302'中所示。返回图3a,缓冲器设置用于 对数据进行临时存储,例如,缓冲器310可在由变换器318变换数据之前用作数据的一中间 停留区。统计信息产生器314可根据该数据产生统计信息,该统计信息有效地用于标识一 将由变换器318用来处理数据的合适的变换。如所属技术领域的技术人员所了解,虽然所 产生的统计信息可基本上为任何适当的信息,但可标识一数据样式中特定符号或状态的密 度的统计信息可能尤其有用。变换器318可利用由统计信息产生器314根据数据产生的统计信息将数据编码为 一较佳的数据样式。在某些情况下,可使用多次变换来获得一可有效地存储到非易失性存 储器322中的较佳数据样式,即便该数据样式可仅通过一次变换来获得。举例而言,由于 电路考虑因素、功率考虑因素、设计考虑因素和速度考虑因素的任一组合,多次变换可能优 于单次变换。相应地,变换器318可将变换后的数据提供给缓冲器310和统计信息产生器 314。然后,统计信息产生器314可根据经变换的数据产生统计信息,变换器318可利用该 统计信息对数据进行进一步变换。当经过变换器318处理的数据得到最终编码以使相关的 数据样式成为一较佳情形时,将该数据连同用于标识在创建存储于非易失性存储器322中 的数据样式时所曾使用的变换的位一起存储到非易失性存储器322中。在一实施例中,基 本上包含用于对变换后的数据进行完全解码所需信息的信息可在一初始变换期间存储到 非易失性存储器322中,例如,与所有变换相关的信息基本上仅可在进行初始变换时存储。图4a是一过程流程图,其图解说明在本发明一实施例中与将一主机所提供的数 据有效地存储到非易失性存储器中相关的步骤。一存储数据的过程400开始于步骤404, 在步骤404中,(例如)由一诸如图2a中所示非易失性存储系统202或图3a中所示非易 失性存储系统302的非易失性存储系统从一主机获得数据。在从主机获得数据后,在步骤 408中对该数据进行分析。对从主机获得的数据进行分析可包括,但不限于产生关于该数 据中特定符号或状态的出现密度百分比的统计信息。数据在步骤408中经过分析后,在步骤412中进行变换。在所述实施例中,根据在 步骤408中所实施的分析来有效地变换数据。举例而言,如果通过分析确定出数据中特定 符号或状态出现的密度和频率高于期望值,则可利用分析结果,以将所选的变换设置成减 小彼等符号或状态的密度。应了解,当数据已呈一较佳情形的格式时,可不必对数据进行变 换。一般而言,当数据在步骤412中进行变换时,将产生一新数据样式。为使该新数据 样式能够得到解码或“解除变换”,以便可有效地重新创建从主机获得的原始数据样式,可 将一系列位预先考虑至、附加至或并入该新数据样式中。该一系列位可设置用于规定对原 始数据样式进行编码时所曾使用的变换,或者规定一可用于将该新数据样式解码成原始数 据样式的合适的逆变换。在步骤416中,确定数据变换是否完成。亦即,确定在步骤412中实施的变换是否 有效地创建了一可得到有效存储的数据样式。如果确定该变换尚未完成,则通常表明在变 换后的数据样式中至少一种符号或状态的出现频率过高或不够高。由此,可将变换后的数据样式至少再进行一次变换。相应地,过程流程从步骤416前进到步骤420,在步骤420中 对变换后的数据进行分析,以产生关于已变换数据的统计信息。然后,在步骤424中,根据 分析结果来变换该变换后的数据。当该变换后的数据在步骤424中得到变换后,过程流程 返回到步骤416,在步骤416中确定该变换是否完成。如果在步骤416中确定已将数据成功变换为一较佳情形,则表明该数据无需再实 施额外的变换。此后,在步骤428中,将变换后的数据存储在非易失性存储器中,且有效存 储数据的过程完成。另一种用于将一主机所提供数据存储到非易失性存储器中的合适的方法显示在 图4b中。图4b是一过程流程图,其图解说明根据本发明一实施例,与另一种将一主机所提 供数据有效地存储到非易失性存储器中的方法相关的步骤。一存储数据的过程400'起始 于步骤404',在步骤404'中从一主机获得数据。在从该主机获得数据后,在步骤408'中 对该数据进行分析。如前文所述,对从主机获得的数据进行分析可包括产生关于该数据中 特定符号或状态的出现密度百分比的统计信息。数据在步骤408 ‘中经过分析后,在步骤412 ‘中进行变换,例如,利用步骤408 ‘ 中所实施的分析的结果进行变换。当数据在步骤412'中进行变换时,通常会产生一新数据 样式。为使该新数据样式能够得到解码或“解除变换”以便可有效地重新创建从主机获得 的原始数据样式,可将一系列位并入(例如,预先考虑至)该新数据样式中。所附加的该一 系列位可设置用于规定在对原始数据样式进行编码时所曾使用的变换,或者规定可用于将 该新数据样式解码成原始数据样式的合适的逆变换。在步骤416'中,确定在步骤412'中实施的变换是否有效地创建了一可有效得 到存储的数据样式。如果确定出该变换尚未完成,则通常表明在该变换后的数据样式中 至少一种符号或状态的出现频率过高或不够高。由此,可将该变换后的数据样式至少再进 行一次变换。相应地,过程流程从步骤416'前进到步骤424',在步骤424'中,对变换 后的数据进行变换。当该变换后的数据在步骤424'中得到变换后,过程流程返回到步骤 416',在步骤416'中确定该变换是否完成。如果在步骤416'中确定已将数据成功变换 为一较佳情形,则表明该数据无需再实施额外的变换。此后,在步骤428'中,将变换后的数 据存储在非易失性存储器中,且有效存储数据的过程完成。编码为一相对较佳情形、然后存储到非易失性存储器中的数据可有效地得到存 储。例如,与存储该数据相关的时间相对短,且存储该数据所消耗的功率相对低。更具体而 言,对基本上所有所存储已编码数据情形而言,与存储该已编码数据相关的时间及存储该 已编码数据的功率要求可保持恒定,因为即使较不佳的情形亦可变换为相对较佳的情形。 另外,由于事实上不再存储较不佳情形,亦即,将较不佳情形存储为已变换成较佳情形的数 据,故基本上不需要使用为存储较不佳情形所实际需要的电路。在拟遵照一来自一主机的命令从一非易失性存储器获得已编码数据时,该已编码 数据在提供给该主机之前通常得到解码。此解码作业一般是在与该非易失性存储器相关的 非易失性存储系统内进行。参考图5,下文将根据本发明来阐述一非易失性存储系统的一实 施例,该非易失性存储系统包括一用于对编码数据进行解码的变换器。一主机506与一非 易失性存储系统502进行通信,以使主机506与系统502之间可交换数据或信息。当主机 506试图从与系统502相关的一非易失性存储器522检索数据时,将已由一变换器处理(例
1如,由图3中变换器318编码)的数据读入变换器518中并提供给一变换信息处理器515。变换信息处理器515通常从经处理的数据中读取信息,以确定为将经处理的数据 解码而将由变换器518实施的一合适的变换。如上文所述,在存储变换后的数据时,该变换 后的数据存储带有表明如下内容的信息在变换该数据时所曾使用的变换,或可用于逆向 进行在变换该数据时所曾使用的变换的逆变换。此后,变换信息处理器515研究随已编码 数据存储的信息,例如,预先考虑到一经处理的数据样式上的信息,并有效地标识一拟由变 换器518用于对已编码数据进行解码的合适的逆变换。在已编码数据得到解码,例如,在已 编码数据恢复到一原始状态后,将已解码数据提供给系统502的一缓冲器510。此后,缓冲 器510将已解码数据提供给主机506。在一实施例中,例如在一其中将标识一合适的逆变换的信息预先考虑到经处理的 数据样式的实施例中,可基本上省去缓冲器510。当将标识一合适的逆变换的信息预先考虑 到经处理的数据样式中时,在将经处理的数据样式读入变换器518之前,事实上即已知晓 该合适的逆变换。因此,由于将标识一合适的逆变换的信息预先考虑到经处理的数据中,所 以在读入经处理的数据之前,变换器518将事实上知晓如何实施一逆变换。因此,在将经处 理的数据提供给变换器518之前,事实上不需要先对经处理的数据进行缓冲,这是因为在 从非易失性存储器522读取经处理的数据之前,可根据预先考虑的信息识别出合适的逆变 换。在另一实施例中,一变换器可将已解码数据直接提供给一主机。图6是根据本发 明一实施例,一主机及一非易失性存储系统的示意图,该非易失性存储系统包括一向该主 机直接提供已解码数据的变换器。在一主机606请求来自一非易失性存储系统602的信息 时,系统602的一非易失性存储器622将经处理的(例如,经编码的)数据提供给一系统 602的一缓冲器610和一变换信息处理器615。变换数据处理器615读取与从非易失性存 储器622接收的经处理的数据相关的符号,该等符号指示在处理经处理的数据时所曾使用 的变换,或指示适于将经处理的数据恢复到其原始格式或已解码格式的合适的逆变换。变换信息处理器615将信息提供给变换器618,以使通过缓冲器610从非易失性存 储器622接收经处理的数据的变换器618可逆向进行任何与经处理的数据相关的变换。亦 即,变换器618利用由变换信息处理器615提供的信息将存储在非易失性存储器622中的 已编码数据进行解码。在变换器618将该已编码数据进行解码后,将已解码数据提供给主 机 606。如上文中关于图3所述,为满足与一非易失性存储器相关的存储要求,可对数据 实施多次变换,以便可将数据编码为一较佳情形。亦即,可对数据实施多于一次变换,以将 其变换为一视为可接受的格式,例如,以有效地确保与数据相关的存储元件或单元处于任 一单一逻辑状态的百分比小于一最大允许百分比。当利用多次变换对数据进行变换时,通 常利用多次逆变换将变换后的数据解码或者将变换后的数据恢复至其原始格式,即未经变 换的格式。图7是根据本发明一实施例,一主机及一非易失性存储系统的示意图,该非易失 性存储系统包括一可在将已解码数据提供给该主机之前利用多次迭代进行数据解码的变 换器。响应于一来自一主机706的对存储在一非易失性存储系统702中的信息的请求,系 统702的一非易失性存储器722将数据(例如,已编码数据)提供给系统702的一变换器718和一变换信息处理器715。变换信息处理器715读取与接收自非易失性存储器722的 已编码数据相关的用于指示以下内容的位在处理已编码数据时所曾使用的变换,或适于 将已编码数据恢复到其原始格式或经解码格式的合适的逆变换。在所述实施例中,指示相 关的变换或逆变换的符号亦可包含指示实施变换所曾使用的顺序的信息,或者实施逆变换 所拟使用的顺序的信息。另外,该等符号可包括关于所曾实施的变换次数的信息。变换信息处理器715将信息提供给变换器718,以使变换器718可对已编码数据实 施一第一次逆变换。由变换信息处理器715提供给变换器718的信息使变换器718能够确 定一适于对已编码数据实施的合适的逆变换。在变换器718对已编码数据实施一第一次逆 变换后,变换器718向一缓冲器710提供已至少部分解码的数据。如果拟对已部分解码的数据实施额外的变换,则缓冲器710将已部分解码的数据 提供给变换器718,且视需要提供给变换信息处理器715。在存储在非易失性存储器722中 的已编码数据完全解码后,缓冲器710将已解码数据提供给主机706。应了解,用于指示对 数据进行编码所实施的变换或可用于将已编码数据解码的逆变换的符号通常由变换器718 从提供给主机706的数据样式中除去。一般而言,与将已编码数据进行解码相关的步骤可变化很大。参考图8,下文将根 据本发明一实施例说明一种将已编码数据解码的方法。一过程800起始于步骤804,在步骤 804中,从一非易失性存储器,例如从一作为总存储系统之一部分的非易失性存储器获得数 据。具体而言,通常在从一主机接收到一请求已编码数据的请求时,将已编码数据从非易失 性存储器读入一变换器或一缓冲器。在从非易失性存储器804获得数据后,在步骤808中根据变换信息对该数据进行 变换。在所述实施例中,对存储在非易失性存储器中的数据进行一逆变换。如前文中所述, 通过读取随非易失性存储器中所存储数据一起存储的符号,可确定对该数据实施的逆变 换。在步骤812中确定数据变换是否完成。亦即,确定在步骤804中获得的数据是否已 变换回其原始格式,即数据在为进行存储而实施变换之前的格式。如果确定该数据变换已 完成,则表明不需进行额外的逆变换来将数据完全解码。换言之,表明该数据已得到解码。 由此,在步骤816中将已解码数据提供给主机,且数据解码的过程完成。或者,如果在步骤812中确定数据变换尚未完成,则表明在数据恢复其原始格式 之前,需对数据实施至少一次额外的逆变换。因此,过程流程从步骤812移动到步骤820,在 步骤820中,根据随该数据一起存储的变换信息再次变换该已部分变换的数据,即已部分 解码的数据。在完成对已部分变换的数据的变换之后,过程流程返回步骤812,在步骤812 中,确定是否已完成对在步骤804中获得的数据的变换。如前文中所述,一变换器对输入数据进行处理,例如编码,以创建该输入数据的一 输出数据版本。变换器通常可利用任何适当的变换或变换演算法对输入数据进行处理。图 9a是一根据本发明一实施例用于对数据进行编码的变换器的示意图。一变换器918 (其可 以是图2a中变换器218或图3a中变换器318的表示形式)设置为从一主机接受输入930。 变换器918对输入930进行处理并产生输出934,输出934通常是输入930的表示形式。在 一实施例中,输入930可设置成一可视为存储效率相对低的第一数据格式。当输入930为 一第一格式时,变换器918可对输入930进行处理,以使输出934实际上成为输入930的一经过变换或编码的版本。如前文中所述,输出934除为输入930的一经过编码的表示形式 外,通常还包括用于指示在产生输出934时所用变换的信息。该信息可存储在单元或额外 的符号中,例如存储在两个单元或两个额外的符号中,这些存储单元或符号事实上附加到 输出934中含有输入930的已变换版本的存储单元中。变换器918通常可校平_例如减小或增大_基本上任何符号的密度。举例而言, 变换器918可校平具有最大密度的符号或逻辑状态,以减小彼符号的密度。在一实施例中, 可利用具有最小密度的符号来校平具有最大密度的符号,亦即,通过增大呈未编码格式的 具有最小密度的符号的密度,可实现具有最大密度的符号的校平。在将经变换的输出存储 到(例如)一非易失性存储器之前,可利用多次变换或校平过程来获得每种符号的所期望 密度。据观察,在某些系统中,将一逻辑状态校平以使任何符号的出现时间均不大于约50% 的时间,会将性能速度提高约5%。图9b中显示一校平演算法的一实例。具体而言,图9b是一根据本发明一实施例, 与图9a中编码变换器918相关的变换的示意图。如图中所示,输入930'中密度最大的符 号标记为符号“D”,而输入930'中密度最小的符号标记为符号“S”。在所述实施例中,密 度最大的符号和密度最小的符号是有可能与输入930'相关的十六种符号中的两种。为便 于论述,图中仅主要显示符号“D”和“S”。然而,应了解,其他符号可出现于与输入930'相 关的整个数据流中的基本上任何位置上。换言之,其他符号可出现在与输入930'相关的 数据流之前、之后或插入到该数据流内。为进行图解说明起见,尽管符号“F”和“G”在输入 930'中比符号“S”出现得更为频繁,但在与输入930'相关的数据流中显示每个符号“F” 和“G”仅出现了一次。在所述实施例中,未实施涉及到使用符号“F”和“G”的校平。因此, 变换器918'实际上未对符号“F”和“G”的出现进行变换。虽然输入930'是一有序的数据流,亦即,其是一串行提供给编码变换器918'的 数据流,但该数据流亦可以一无序格式提供。当该数据流以一无序格式提供时,可修改与编 码变换器918'相关的过程,以变换该无序数据流。输入930'提供给编码变换器918',编码变换器918'设置用于利用符号“S”来 校平符号“D”。亦即,编码变换器918'执行一通过使用符号“S”会来减小符号“D”的密度 的变换演算法。在所述实施例中,编码变换器918'使首次出现的符号“D”或“S”保持相 同。具体而言,在符号“D”和“S”之间,无论哪个符号首先出现在输入930'中,都将编码为 相同的符号。所有随后出现的符号“S”都编码为与先前最近的编码符号“D”或“S”相同的 符号。例如,如果先前最近的符号已编码为符号“S”,则将当前符号“S”编码为符号“S”;而 如果先前最近的编码符号已编码为符号“D”,则当前符号“S”编码为符号“D”。所有随后出 现的输入符号“D”情形均以与先前最近出现的编码符号相反的方式进行编码。举例而言, 如果先前最近的符号已编码为符号“S”,则当前的符号“D”编码为符号“D” ;如果先前最近 的符号已编码为符号“D”,则当前的符号“D”编码为符号“S”。如图所示,输出934'为输入930'的一经校平的表示形式,其包含的符号“D”的 出现次数变少。换言之,输出934'中符号“D”的密度减小。应了解,虽然图中显示符号 “S”的密度增加,但可通过利用另一符号校平符号“S”来减小符号“S”的密度。亦即,在输 出934'中,符号“S”可标识为具有大于所期望密度的密度,且可通过将输出934'作为一 新输入提供给编码变换器918',利用一具有一更小密度的不同符号或一稀疏符号实施一
17第二次变换来校平符号“S”。对于一其中存在16种状态或符号的实施例,最多可有约240种变换演算法,这些 演算法可有效地用于校平输入918'中密度最大和最小的符号。在此一实施例中,一变换可 涉及校平一单对符号,且与输入930'相关的密度最小的符号在该变换之后所出现的时间 不少于约6.67%。变换器918'可用于校平符号,以使在经变换的数据样式中不会出现超 过约50%的时间的符号。举例而言,如图所示,符号“D”可利用符号“S”进行校平,以使输 出934'中符号“D”和符号“S”出现的时间均不超过约50%。变换器918'亦可用于通过(例如)顺序性地实施多次变换对数据进行顺序性地 编码。当对数据进行顺序性地编码时,变换器918'可利用一密度最小的状态或符号来校平 一密度最大的状态或符号。在一已编码数据集934'形成后,变换器918'可利用新的最稀 疏的符号或已编码数据中最稀疏的符号来校平新的密度最大的符号或已编码数据中密度 最大的符号。在一有16种符号的实施例中,当进行两个顺序性的校平过程后,在所完成的 变换中任何符号出现的时间均不超过约50%。在一实施例中,当进行两个顺序性的校平过 程后,变换器918'可利用新的最稀疏的符号校平新的密度最大的符号,即在经两次编码后 的数据中密度最大的符号和最稀疏的符号。此一第三次变换的结果是,在所完成的变换中 任何符号出现的时间不超过约25%。变换器918'可设置为基本上同时(即并行)校平至少两种密集的符号。每当通过 变换器918'期间,变换器918'可设置用于利用一最稀疏的符号来校平一密度最大的符 号,同时利用一第二最稀疏的符号来校平一第二最大密度的符号。例如,如上文中所述,当 利用一密度最小的符号校平一密度最大的符号时,在已编码数据或输出934'中任何符号 出现的时间不超过约50%。然而,当变换器918'对数据进行顺序性地编码以便在第二次 通过变换器918'期间,利用已编码数据中最稀疏的符号校平已编码数据中密度最大的符 号、同时利用已编码数据中第二最稀疏的符号校平已编码数据中第二最大密度的符号时, 在经过两次编码后的数据中任何符号出现的时间不超过约25%。如上述实例所示,增加与对一组数据实施重复变换相关的额外复杂性,通常会使 一最大符号密度进一步减小。然而,与上述减小符号最大密度的过程相关的复杂性可能会 影响一存储作业的总体性能,该影响可达到实际上可能会损害与增加校平度相关的优点的 程度。该复杂性可与为完成多次变换所需的额外计算时间、额外电路或额外功率相关。因 此,在与校平或变换过程相关的复杂性与存储优点之间可存在折衷。另外,在为实现并行或 基本上同时的变换所需的逻辑(例如电路)成本与为顺序性地实施多次变换所需的时间之 间亦可存在折衷。当数据经过编码或校平后,在请求检索所存储的已编码数据时,已编码数据通常 变为一解码变换器的输入。图10a是一根据本发明一实施例对数据进行解码的变换器的示 意图。一解码变换器1018接受一输入1030,输入1030通常由一诸如图9a中编码变换器 918的编码变换器进行处理,例如,编码或校平。在一实施例中,解码变换器1018和图9a 中的编码变换器918可为一与一非易失性存储系统相关的总变换器之一部分。解码变换器 1018对输入1030进行解码,以产生输出1034。一般而言,输出1034的格式与提供给一编 码变换器的输入(如图9a中的输入930)的格式相同。参照图10b,下文将根据本发明一实施例来阐述一解码变换器,该解码变换器适于
18有效地反演由图9b中的编码变换器918'实施的编码。已由图9b中的编码变换器918'编 码的输入1030'提供给解码变换器1018'。解码变换器1018'设置为利用通过读取输入 1030'中的符号(例如插入到输入1030'中的两个符号,其标识创建输入1030'所用的变 换或对输入1030'进行解码所用的一合适的逆变换)而获得的信息,来创建输出1034'。在所述实施例中,解码变换器1018'并不改变首次出现的符号“D”或符号“S”。解 码变换器1018'设置为在输入1030'中,如果在一当前出现的符号“S”之前所出现的一 符号“S”比所出现的一符号“D”更近,则解码变换器1018'将基本上所有出现的符号“S” 均解码为符号“S”。亦即,如果输入1030'中先前更近的符号是符号“S”,则将当前出现的 符号“S”解码为符号“S”。否则,将当前出现的符号“S”解码为符号“D”,除非当前出现的 符号“S”是首次出现且其出现在一第一次出现的符号“D”之前,在这种情况下,将当前出现 的符号“S”解码为符号“S”。解码变换器1018'亦设置为如果符号“D”比符号“S”更近地位于一当前出现的 符号“D”之前,则将该当前出现的符号“D”解码为符号“S”,而如果符号“S”更近地位于当 前出现的符号“D”之前,则将该当前出现的符号“D”解码为符号“D”。如果第一次出现的符 号“D”出现在输入1030'中所出现的任何符号“S”之前,则将该第一次出现的符号“D”解 码为符号“D”。虽然数据可变换为使一特定符号或状态的最大密度最小化,但数据亦可变换为有 效地确保每种符号或状态均具有一最小密度。举例而言,在一其中符号为“1”或“0”的二 进制系统中,可利用图9b中的变换器918'对数据进行变换,以使经变换后的数据中符号 “ 1,,和符号“0”的百分比均大于一约为33%的最小值。尽管上文仅阐述了本发明的几个实施例,但应了解,也可以许多种其他特定形式 来实施本发明,此不会背离本发明的精神或范围。举例而言,尽管上文将对数据进行编码和 解码的过程一般性地阐述为在一与一主机系统通信的存储装置上进行,但编码过程和解码 过程中的任一过程或两者亦可在该主机系统上进行。换言之,一主机系统可设置用于产生 关于拟存储数据的统计信息,并在将经变换的数据存储到一存储装置上之前根据该统计信 息将该数据变换为一不同的格式。或者,一主机系统可设置为从一存储装置读取已编码数 据、确定一用于对该数据进行解码的合适的变换,然后对该数据进行解码。本发明通常可对任何合适的存储装置实施。如前文中所述,合适的存储装置可包 括PC卡、CompactFlash卡、多媒体卡及安全数字卡。其他合适的存储装置可包括,但不限 于智能媒体(SmartMedia)卡和记忆棒(Memory Stick)卡。在一实施例中,一主机可产生一数据样式的统计信息,然后将该数据样式及统计 信息提供给一存储装置。当该主机产生统计信息时,该存储装置可将该数据样式变换为一 较佳格式而不需产生任何统计信息。亦即,当该主机产生与一数据样式相关的统计信息时, 一存储装置可仅使用彼等统计信息来变换该数据样式。如前文中所述,可对一给定的数据集或样式实施多次变换,以将该数据集变换为 一合适的格式进行存储。在一实施例中,在完成多次变换中的每次变换后,一统计信息产生 器可对各变换或各中间变换进行研究或处理,以确定为创建一可有效存储的格式,是否需 要再进行额外的变换。虽然上文中是将一对数据进行编码的变换器与一对数据进行解码的变换器分别进行阐述,但应了解,一单个变换器通常既可对数据进行编码,又可对数据进行解码。亦即, 一非易失性存储系统可包括一既具有数据编码功能、又具有数据解码功能的单个变换器。 同样地,一统计信息产生器和一变换信息处理器可为一单个处理器的一部分,该单个处理 器设置为既确定与待变换的数据相关的统计信息,又有效地确定已变换数据是如何得到变 换的。对与基本上任一非易失性存储系统相关的已变换数据均可实施多次逆变换。换言 之,尽管在本文中将多次逆变换阐述为适用于在一其中将数据从一非易失性存储器读入一 变换器、然后读入一缓冲器的系统中变换数据,但亦可在一其中已变换数据在由一变换器 进行处理之前提供给一缓冲器的系统中实施多次逆变换。尽管上文中是阐述为使数据得到更有效存储而实施数据变换以自较不佳的数据 样式或边际情形有效地创建较佳或更常见数据样式,但应了解,亦可为了许多其他的目的 而进行数据变换来创建较佳的数据样式。亦即,可为了基本上任何合适的目的而对一数据 集中出现的符号实施校平。举例而言,对一拟从一个位置传输到另一位置的数据样式内的 状态进行校平可使该传输过程更有效地进行,且亦可使接收过程更有效地进行。此等传输 过程可包括在一网络内进行的有线传输或在一网络内进行的无线传输。上文中已例如参照图9b将一变换阐述为适用于利用一状态来校平另一状态。如 上文中所述,在拟减小一种以上的状态时,可使用多次变换。应了解,通常可将单次通过此 一变换器设置为减小多于一种状态。举例而言,可在单次通过此一变换器中校平两个或更 多个符号或状态对。当在单次通过此一变换器中校平多于一个状态对时,为完成对数据的 一给定变换或校平而需通过变换器的总次数可减少。一般而言,与数据编码和解码相关的步骤可变化很大。可增加、去除、修改及重排 各步骤,此不会背离本发明的精神或范围。例如,在一编码或变换过程中,对于一如前文中 所述在分析原始的或未经变换的数据时即确定为完成总的数据变换而需使用的变换的实 施例中,基本上可以省去分析已变换数据的步骤。或者,分析已变换数据的步骤可居于确定 一总体变换是否已完成之前。在上文中已将对一数据集内的状态进行变换或校平阐述为适用于将该数据集的 已变换版本内任一状态的最大密度基本最小化,或者适用于将该数据集的已变换版本内任 一状态的最小密度基本最大化。亦可对各状态实施校平来使一特定状态的最大密度基本最 小化、同时使另一状态的最小密度基本最大化。应了解,亦可对各状态实施校平来有效地确 保一数据集的已变换版本内所有状态的密度均落入一给定范围内。换言之,可将各状态校 平为在一数据集的已变换版本内,任一状态的密度均不超过一上限阈值,且任一状态的密 度均不下降到低于一下限阈值。虽然不同状态的上限阈值可基本上相同,且不同状态的下 限阈值可基本上相同,但不同状态的各阈值亦可不同。在上文中,将确定一数据样式或数据集内各特定状态的密度阐述为确定该数据样 式内各特定状态的一百分比。在一实施例中,例如在一其中数据样式的长度基本上固定的 实施例中,确定各特定状态的密度可基本上仅涉及计数这些特定状态所出现的次数。因此, 确定各特定状态的密度通常可涉及使一数值(如一计数值或一百分比)与每个状态所出现 的次数相关联。虽然对一数据集实施的变换或校平的量通常可选择为使该数据集的一已变换版
20本内的状态可满足所期望的最大和最小密度,但变换或校平的量亦可根据其他标准进行选 择,此不背离本发明的精神或范围。举例而言,校平的量可选择为使计算开销不超过一定的 量。将校平量选择为使计算开销不超过一定的量可显著提高数据存储的效率,而不会显著 影响与变换和存储数据相关的总体系统的性能。尽管一规定计算开销不超过一特定水平的 实施例可能会稍微损害一变换过程,例如,一特定状态的最大密度可能稍高于较佳情况,但 如果总体系统的性能保持在一特定水平,则上述损害可视为是可接受的。因此,应将这些实 例视为举例说明性而非限制性,并且本发明并非仅限于本文所给出的详细阐述,而是可在 随附权利要求范围内进行修改。
权利要求
一种用于在一存储系统中存储信息的方法,所述信息为一第一数据格式,该方法包括产生与所述第一数据格式相关的统计信息,所述第一数据格式经安置以包含两个或两个以上符号,所述统计信息经安置以指示所述两个或两个以上符号的一具有最高密度的第一符号和一具有最低密度的第二符号出现数量;将所述信息从所述第一数据格式变换为一第二数据格式,所述变换减少所述信息中所述第一符号的密度并增加所述第二符号的密度从而使得所述第二数据格式中的符号比所述第一数据格式中的符号分布更平均;及将所述第二数据格式的信息存储到一与所述存储系统相关的存储器中,其中将所述第二数据格式的信息存储到所述存储器中包括将一标识符存储到所述存储器中,所述标识符指示一用于将所述信息从所述第一数据格式变换为所述第二数据格式的变换。
2.根据权利要求1所述的方法,其中利用所述统计信息将所述信息从所述第一数据格 式变换为所述第二数据格式包括将所述信息从所述第一数据格式变换为所述第二数据格式,以减小所述信息中所述第 一符号的密度。
3.根据权利要求1所述的方法,其中利用所述统计信息将所述信息从所述第一数据格 式变换为所述第二数据格式包括将所述信息从所述第一数据格式变换为所述第二数据格式,以增加所述信息中所述第 一符号的密度。
4.根据权利要求1所述的方法,其中在所述存储系统上接收所述第一数据格式的信息 包括从一主机系统接收所述信息,所述主机系统与所述存储系统进行通信。
5.根据权利要求1所述的方法,其中至少一个与存储所述第二数据格式的信息相关的 成本小于或等于至少一个与存储所述第一数据格式的信息相关的成本。
6.根据权利要求1所述的方法,其中所述存储系统用于存储所述第二数据格式的信息 的功率小于或等于所述存储系统用于存储所述第一数据格式的信息的功率。
7.根据权利要求1所述的方法,其中所述第一数据格式包含十六个符号。
8.根据权利要求1所述的方法,其中所述第一符号的密度是与所述第一数据格式相关 联的最高密度,且所述第二符号的密度是与所述第一数据格式相关联的最低密度。
9.根据权利要求1所述的方法,其进一步包括随后读取所述第二数据格式中的所述信 息并将所述信息变换回所述第一数据格式。
10.一种用于在一存储系统中检索信息的方法,所述信息以一第一数据格式存储于所 述存储系统的一存储器中,所述方法包括分析所述第一数据格式的信息,所述第一数据格式包含两个或两个以上符号,包含一 具有最高密度的第一符号和一具有最低密度的第二符号,其中分析所述第一数据格式的信 息包括确定至少一种合适的变换以用于将所述信息从所述第一数据格式变换为一第二数 据格式;及将所述信息从所述第一数据格式变换为所述第二数据格式,所述变换减少所述信息中 所述第一符号的密度并增加所述第二符号的密度从而使得所述第二数据格式中的符号比所述第一数据格式中的符号分布更平均。
11.根据权利要求10所述的方法,其中利用与所述第二数据格式的两个或两个以上符 号相关的统计信息对所述第二数据格式进行初始变换。
12.根据权利要求10所述的方法,其中分析所述第一数据格式的信息包括读取所述第一数据格式的信息的一段,其中所述段包含用于标识所述合适的变换的符号。
13.根据权利要求10所述的方法,其中所述存储系统与一主机系统进行通信,所述方 法进一步包括将所述第二数据格式的已变换信息提供给所述主机系统。
14.根据权利要求10所述的方法,其中至少一个与将所述第一数据格式的信息存储到 所述存储器中相关的成本不大于至少一个与将所述第二数据格式的信息存储到所述存储 器中相关的成本。
15.根据权利要求10所述的方法,其中所述存储系统用于将所述第一数据格式的信息 存储到所述存储器中的功率不大于所述存储系统用于将所述第二数据格式的信息存储到 所述存储器中的功率。
16.一种存储装置,其包括一存储器;一输入接收器,所述输入接收器设置用于接收信息,所述信息设置为一第一数据格式, 所述第一数据格式包含两个或两个以上符号;一统计信息产生器,所述统计信息产生器设置用于产生与所述第一数据格式的两个或 两个以上符号相关的统计信息;及一变换器,所述变换器使用所述统计信息将所述信息从所述第一数据格式变换为一第 二数据格式,所述变换器进一步将所述第二数据格式的信息存储到所述存储器中,所述第 一和第二数据格式包含一具有最高密度的第一符号和一具有最低密度的第二符号的数量, 所述变换器减少所述信息中所述第一符号的密度并增加所述第二符号的密度从而使得所 述第二数据格式中的符号频率比所述第一数据格式中的符号频率分布更平均。
17.根据权利要求16所述的存储装置,其中与存储所述第二数据格式的信息相关的成 本小于或等于与存储所述第一数据格式的信息相关的成本。
18.根据权利要求16所述的存储装置,其中所述统计信息产生器进一步设置用于通过 确定一与所述第一数据格式的一第一符号的出现次数相关的数值来确定所述第一数据格 式的第一符号的一密度,所述数值可表示所述密度。
19.根据权利要求18所述的存储装置,其中所述变换器进一步设置用于将所述信息从 所述第一数据格式变换为所述第二数据格式,以减小所述信息内所述第一符号的密度。
20.根据权利要求18所述的存储装置,其中,所述变换器进一步设置用于将所述信息 从所述第一数据格式变换为所述第二数据格式,以增大所述信息内所述第一符号的密度。
21.根据权利要求18所述的存储装置,其中所述变换器进一步设置用于随所述第二数 据格式的信息存储一标识符,所述标识符设置用于大体上标识至少一个用于将所述信息从 所述第一数据格式变换为所述第二数据格式的变换。
22.根据权利要求21所述的存储装置,其进一步包括一信息处理器,所述信息处理器设置用于读取所述标识符,所述信息处理器进一步设置用于与所述变换器相配合,以使所 述变换器标识至少一个用于将所述信息从所述第二数据格式变换为所述第一数据格式的 合适的变换。
23.根据权利要求22所述的存储装置,其中所述输入接收器设置用于介接一主机系 统,且所述变换器进一步设置用于在所述变换器将所述信息从所述第二数据格式变换为所 述第一数据格式后,将所述第一数据格式的信息提供给所述主机系统。
24.根据权利要求16所述的存储装置,其中所述输入接收器设置用于介接一主机系 统,以从所述主机系统接收所述第一数据格式的信息。
25.根据权利要求16所述的存储装置,其中所述存储装置是一介接一主机系统的非易 失性存储系统。
26.根据权利要求25所述的存储装置,其中所述非易失性存储系统可从所述主机系统 移除。
27.根据权利要求25所述的存储装置,其中所述存储器是一非易失性存储元件。
28.根据权利要求25所述的存储装置,其中所述存储装置是一选自由一PC卡、一 CompactFlash卡、一多媒体卡、一安全数字卡、一记忆棒卡及一智能媒体卡组成的群组中的 卡。
29.根据权利要求25所述的存储装置,其中所述存储装置是一单芯片装置。
30.一种用于在一存储单元阵列中存储数据的方法,一单独的存储器单元具有两个或 两个以上用于表示一个或一个以上数据位的状态,所述方法包括接收用于存储在所述存储阵列中的数据,所接收的数据处于一第一格式,处于所述第 一格式的数据存储需要将单元编程至一具有最高密度的第一状态和一具有最低密度的第 二状态;分析处于所述第一格式的所述数据以确定哪些数据部分应被变换和哪些变换应被施 加,其中无论对应于所述第一状态的数据部分或者对应于所述第二状态的数据部分中哪个 数据部分首次出现,都不进行变换;所有随后出现的对应于所述第二状态的数据部分经编 码为与先前最近的编码符号相同的符号;所有随后出现的对应于所述第一状态的数据部分 以与先前最近出现的编码符号相反的方式进行编码;以及随后将所述数据写入到所述存储单元阵列中。
31.根据权利要求30所述的方法,其中所述存储单元阵列合并在一具有一接口并符合 以下标准的可移动存储卡中PC卡、CompactFlash卡、多媒体卡、安全数字卡、记忆棒卡或 智能媒体卡。
32.根据权利要求30所述的方法,其中由一主机系统执行所述分析,所述主机系统与 所述存储单元阵列通信,所述主机系统向所述存储阵列发送由所述分析得出的信息。
33.根据权利要求30所述的方法,其进一步包括在将所述数据存储到所述存储单元阵 列中之前,将所述数据从所述第二格式变换为一第三格式,所述数据以所述第三格式存储。
全文摘要
本发明揭示用于将数据变换为一可有效地存储于一非易失性存储器中的格式的方法和装置。根据本发明的一个方面,一种用于将一第一数据格式的信息存储到一存储系统中的方法包括产生与该第一数据格式相关的统计信息,及利用该统计信息将该信息从该第一数据格式变换为一第二数据格式。在将该信息变换为该第二数据格式后,将该信息存储到一存储器中。将该第二数据格式的该信息存储到该存储器中包括存储一标识一用于将该信息变换为该第二数据格式的变换的标识符。在一实施例中,与存储该第二数据格式的信息相关的成本小于或等于与存储该第一数据格式的信息相关的成本。
文档编号G06F12/00GK101867375SQ20101013936
公开日2010年10月20日 申请日期2003年8月29日 优先权日2002年8月29日
发明者斯蒂芬·J·格罗斯, 杰弗里·S·冈沃尔 申请人:桑迪士克股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1