数据存储系统内的符号频率校平

申请号 CN03823356.8 申请日 2003-08-29 公开(公告)号 CN1701513A 公开(公告)日 2005-11-23
申请人 桑迪士克股份有限公司; 发明人 杰弗里·S·冈沃尔; 斯蒂芬·J·格罗斯;
摘要 本 发明 揭示用于将数据变换为一可有效地存储于一非易失性 存储器 中的格式的方法和装置。根据本发明的一个方面,一种用于将一第一数据格式的信息存储到一存储系统中的方法包括:产生与该第一数据格式相关的统计信息,及利用该统计信息将该信息从该第一数据格式变换为一第二数据格式。在将该信息变换为该第二数据格式后,将该信息存储到一存储器中。将该第二数据格式的该信息存储到该存储器中包括:存储一标识一用于将该信息变换为该第二数据格式的变换的标识符。在一 实施例 中,与存储该第二数据格式的信息相关的成本小于或等于与存储该第一数据格式的信息相关的成本。
权利要求

1、一种用于在一存储系统中存储信息的方法,所述信息为一第一数据格式, 该方法包括:
产生与所述第一数据格式相关的统计信息;
利用所述统计信息将所述信息从所述第一数据格式变换为一第二数据格 式;及
将所述第二数据格式的信息存储到一与所述存储系统相关的存储器中,其 中将所述第二数据格式的信息存储到所述存储器中包括将一标识符存储到所述 存储器中,所述标识符指示一用于将所述信息从所述第一数据格式变换为所述 第二数据格式的变换。
2、根据权利要求1所述的方法,其中所述第一数据格式包括一第一符号的 至少一次出现,且产生与所述第一数据格式相关的所述统计信息包括:
确定所述第一数据格式的第一符号的一密度,其中确定所述密度包括确定 一与所述第一数据格式的第一符号的出现次数相关的数值,所述数值可表示所 述密度。
3、根据权利要求2所述的方法,其中利用所述统计信息将所述信息从所述 第一数据格式变换为所述第二数据格式包括:
将所述信息从所述第一数据格式变换为所述第二数据格式,以减小所述信 息中所述第一符号的密度。
4、根据权利要求1所述的方法,其中产生与所述第一数据格式相关的统计 信息包括:
确定一所述第一数据格式的第一符号的一密度,其中确定所述密度包括确 定一与所述第一数据格式的第一符号的出现次数相关的百分比。
5、根据权利要求4所述的方法,其中利用所述统计信息将所述信息从所述 第一数据格式变换为所述第二数据格式包括:
将所述信息从所述第一数据格式变换为所述第二数据格式,以增加所述信 息中所述第一符号的密度。
6、根据权利要求1所述的方法,其中在所述存储系统上接收所述第一数据 格式的信息包括:
从一主机系统接收所述信息,所述主机系统与所述存储系统进行通信。
7、根据权利要求1所述的方法,其中至少一个与存储所述第二数据格式的 信息相关的成本小于或等于至少一个与存储所述第一数据格式的信息相关的成 本。
8、根据权利要求1所述的方法,其中所述存储系统用于存储所述第二数据 格式的信息的功率小于或等于所述存储系统用于存储所述第一数据格式的信息 的功率。
9、一种用于在一存储器中检索信息的方法,所述信息以一第一数据格式存 储于所述存储系统的一存储器中,所述方法包括:
分析所述第一数据格式的信息,其中分析所述第一数据格式的信息包括确 定至少一种合适的变换以用于将所述信息从所述第一数据格式变换为一第二数 据格式;及
利用所述合适的变换将所述信息从所述第一数据格式变换为所述第二数据 格式。
10、根据权利要求9所述的方法,其中利用与所述第二数据格式相关的统 计信息对所述第二数据格式进行初始变换。
11、根据权利要求9所述的方法,其中分析所述第一数据格式的信息包括:
读取所述第一数据格式的信息的一段,其中所述段包含用于标识所述合适 的变换的符号。
12、根据权利要求9所述的方法,其中所述存储系统与一主机系统进行通 信,所述方法进一步包括:
将所述第二数据格式的已变换信息提供给所述主机系统。
13、根据权利要求9所述的方法,其中至少一个与将所述第一数据格式的 信息存储到所述存储器中相关的成本不大于至少一个与将所述第二数据格式的 信息存储到所述存储器中相关的成本。
14、根据权利要求9所述的方法,其中所述存储系统用于将所述第一数据 格式的信息存储到所述存储器中的功率不大于所述存储系统用于将所述第二数 据格式的信息存储到所述存储器中的功率
15、一种存储装置,其包括:
一存储器;
一输入接收器,所述输入接收器设置用于接收信息,所述信息设置为一第 一数据格式;
一统计信息产生器,所述统计信息产生器设置用于产生与所述第一数据格 式相关的统计信息;及
一变换器,所述变换器设置用于使用所述统计信息将所述信息从所述第一 数据格式变换为一第二数据格式,所述变换器进一步设置用于将所述第二数据 格式的信息存储到所述存储器中。
16、根据权利要求15所述的存储装置,其中与存储所述第二数据格式的信 息相关的成本小于或等于与存储所述第一数据格式的信息相关的成本。
17、根据权利要求15所述的存储装置,其中所述统计信息产生器进一步设 置用于通过确定一与所述第一数据格式的一第一符号的出现次数相关的数值来 确定所述第一数据格式的第一符号的一密度,所述数值可表示所述密度。
18、根据权利要求17所述的存储装置,其中所述变换器进一步设置用于将 所述信息从所述第一数据格式变换为所述第二数据格式,以减小所述信息内所 述第一符号的密度。
19、根据权利要求17所述的存储装置,其中,所述变换器进一步设置用于 将所述信息从所述第一数据格式变换为所述第二数据格式,以增大所述信息内 所述第一符号的密度。
20、根据权利要求17所述的存储装置,其中所述变换器进一步设置用于随 所述第二数据格式的信息存储一标识符,所述标识符设置用于大体上标识至少 一个用于将所述信息从所述第一数据格式变换为所述第二数据格式的变换。
21、根据权利要求20所述的存储装置,其进一步包括一信息处理器,所述 信息处理器设置用于读取所述标识符,所述信息处理器进一步设置用于与所述 变换器相配合,以使所述变换器标识至少一个用于将所述信息从所述第二数据 格式变换为所述第一数据格式的合适的变换。
22、根据权利要求21所述的存储装置,其中所述输入接收器设置用于介接 一主机系统,且所述变换器进一步设置用于在所述变换器将所述信息从所述第 二数据格式变换为所述第一数据格式后,将所述第一数据格式的信息提供给所 述主机系统。
23、根据权利要求15所述的存储装置,其中所述输入接收器设置用于介接 一主机系统,以从所述主机系统接收所述第一数据格式的信息。
24、根据权利要求15所述的存储装置,其中所述存储系统是一介接一主机 系统的非易失性存储系统。
25、根据权利要求24所述的存储装置,其中所述非易失性存储系统可从所 述主机系统移除。
26、根据权利要求24所述的存储装置,其中所述存储器是一非易失性存储 元件。
27、根据权利要求24所述的存储装置,其中所述存储装置是一选自由一PC 卡、一CompactFlash卡、一多媒体卡、一安全数字卡、一记忆棒卡及一智能媒 体卡组成的群组中的卡。
28、根据权利要求24所述的存储装置,其中所述存储装置是一单芯片装置。
29、一种系统,其包括:
一主机系统;及
一存储装置,所述存储装置设置用于介接所述主机系统,以从所述主机系 统获得设置为一第一数据格式的信息,所述存储装置包括一存储器、一统计信 息产生器和一变换器,其中所述统计信息产生器设置用于产生与所述第一数据 格式相关的统计信息,所述变换器设置用于使用所述统计信息将所述信息从所 述第一数据格式变换为一第二数据格式,所述变换器进一步设置用于将所述第 二数据格式的信息存储到所述存储器中。
30、根据权利要求29所述的系统,其中所述统计信息产生器进一步设置用 于通过确定一与所述第一数据格式的一第一符号的出现次数相关的百分比来确 定所述第一数据格式的第一符号的一密度。
31、根据权利要求30所述的系统,其中所述变换器进一步设置用于将所述 信息从所述第一数据格式变换为所述第二数据格式,以减小所述信息中所述第 一符号的密度。
32、根据权利要求30所述的系统,其中所述变换器进一步设置用于将所述 信息从所述第一数据格式变换为所述第二数据格式,以增大所述信息中所述第 一符号的密度。
33、根据权利要求29所述的系统,其中所述变换器进一步设置用于随所述 第二数据格式的信息存储一标识符,所述标识符设置用于大体上标识至少一个 用于将所述信息从所述第一数据格式变换为所述第二数据格式的变换。
34、根据权利要求33所述的系统,其中所述存储装置进一步包括一信息处 理器,所述信息处理器设置用于读取所述标识符,所述信息处理器进一步设置 用于与所述变换器相配合,以使所述变换器标识至少一个用于将所述信息从所 述第二数据格式变换为所述第一数据格式的合适的变换。
35、根据权利要求34所述的系统,其中所述存储装置设置用于在所述变换 器将所述信息从所述第二数据格式变换为所述第一数据格式后,将所述第一数 据格式的信息提供给所述主机系统。
36、根据权利要求33所述的系统,其中所述主机系统包括一信息处理器和 一第二变换器,所述信息处理器设置用于读取所述标识符,所述信息处理器进 一步设置用于与所述第二变换器相配合,以使所述第二变换器标识至少一个用 于将所述信息从所述第二数据格式变换为所述第一数据格式的合适的变换。
37、根据权利要求29所述的系统,其中所述存储系统是一非易失性存储系 统。
38、根据权利要求37所述的系统,其中所述非易失性存储系统可从所述主 机系统移除。
39、根据权利要求37所述的系统,其中所述非易失性存储系统嵌入于所述 主机系统中。
40、根据权利要求37所述的系统,其中所述存储器是一非易失性存储元件。
41、根据权利要求29所述的系统,其中所述存储装置是一选自由一PC卡、 一CompactFlash卡、一多媒体卡、一安全数字卡、一记忆棒卡及一智能媒体卡 组成的群组中的卡。
42、根据权利要求29所述的系统,其中所述存储装置是一单芯片装置。
43、根据权利要求29所述的系统,其中所述主机系统设置用于捕获所述信 息,并将所述信息以所述第一格式提供给所述存储装置。
44、根据权利要求43所述的系统,其中所述主机系统是一选自由一数字照 像机、一视频照像机、一蜂窝式电话、一通信装置、一音频播放器和一视频播 放器组成的群组中的系统。
45、根据权利要求29所述的系统,其中所述变换器进一步设置用于对所述 信息实施一额外的变换,其中所述额外的变换基本上不使用所述统计信息。
46、一种存储装置,其包括:
用于存储信息的构件;
用于接收输入的构件,所述用于接收输入的构件设置用于接收所述信息, 所述信息设置为一第一数据格式;
用于产生统计信息的构件,所述用于产生统计信息的构件设置用于产生与 所述第一数据格式相关的统计信息;及
用于变换所述信息的构件,所述用于变换所述信息的构件设置用于使用所 述统计信息将所述信息从所述第一数据格式变换为一第二数据格式。
47、根据权利要求46所述的存储装置,其中所述用于变换所述信息的构件 进一步设置用于将所述第二数据格式的信息存储到所述用于存储所述信息的构 件中。
48、根据权利要求46所述的存储装置,其中所述用于变换所述信息的构件 进一步设置用于实施一额外的变换,所述额外的变换设置为不使用所述统计信 息。
49、根据权利要求46所述的存储装置,其中与存储所述第二数据格式的信 息相关的成本小于或等于与存储所述第一数据格式的信息相关的成本。
50、根据权利要求46所述的存储装置,其中与存储所述第二数据格式的信 息相关的功率耗用量小于或等于与存储所述第一数据格式的信息相关的功率耗 用量。
51、根据权利要求46所述的存储装置,其中所述用于产生统计信息的构件 包括用于通过确定一与所述第一数据格式的一第一符号的出现次数相关的百分 比来确定所述第一数据格式的第一符号的一密度的构件。
52、根据权利要求51所述的存储装置,其中所述用于变换所述信息的构件 进一步设置用于将所述信息从所述第一数据格式变换为所述第二数据格式,以 减小所述信息中所述第一符号的密度。
53、根据权利要求51所述的存储装置,其中所述用于变换所述信息的构件 进一步设置用于将所述信息从所述第一数据格式变换为所述第二数据格式,以 增大所述信息中所述第一符号的密度。
54、根据权利要求46所述的存储装置,其中所述用于变换所述信息的构件 进一步设置用于存储一与所述第二数据格式的信息相关的标识符,所述标识符 设置用于大体上标识至少一个用于将所述信息从所述第一数据格式变换为所述 第二数据格式的变换。
55、根据权利要求54所述的存储装置,其进一步包括用于处理所述信息的 构件,所述用于处理所述信息的构件包括用于读取所述标识符的构件,所述用 于处理所述信息的构件进一步设置用于与所述用于变换所述信息的构件相配 合,以使所述用于变换的构件标识至少一个用于将所述信息从所述第二数据格 式变换为所述第一数据格式的合适的变换。
56、根据权利要求55所述的存储装置,其中所述用于接收输入的构件设置 用于介接一主机系统,且所述用于变换所述信息的构件包括用于在所述用于变 换所述信息的构件将所述信息从所述第二数据格式变换为所述第一数据格式 后,将所述第一数据格式的信息提供给所述主机系统的构件。
57、根据权利要求54所述的存储装置,其进一步包括:
用于处理所述信息的构件,所述用于处理所述信息的构件包括用于读取所 述标识符的构件;及
用于变换所述信息的第二构件,其中所述用于处理所述信息的构件设置用 于与所述用于变换所述信息的第二构件相配合,以使所述用于变换的第二构件 标识至少一个用于将所述信息从所述第二数据格式变换为所述第一数据格式的 合适的变换。
58、根据权利要求46所述的存储装置,其中所述用于接收输入的构件设置 用于介接一主机系统,以从所述主机系统接收所述第一数据格式的信息。
59、根据权利要求46所述的存储装置,其中所述存储系统是一介接一主机 系统的非易失性存储系统。
60、一种用于将数据从一第一格式变换为一第二格式的方法,所述方法包 括:
确定一第一符号的一第一密度,所述第一密度与所述第一格式相关;
确定一第二符号的一第二密度,所述第二密度与所述第一格式相关,其中 所述第一密度大于所述第二密度;及
利用所述第二符号校平所述第一符号,其中利用所述第二符号校平所述第 一符号包括:创建所述第一符号的一第三密度,所述第三密度与所述第二格式 相关,及创建所述第二符号的一第四密度,所述第四密度与所述第二格式相关, 其中所述第三密度不大于所述第一密度。
61、根据权利要求60所述的方法,其中所述第四密度不小于所述第二密度。
62、根据权利要求60所述的方法,其中所述第二格式包括一指示符,所述 指示符设置用于指示所述第一符号已使用所述第二符号校平。
63、一种用于将数据从一第一格式变换为一第二格式的方法,所述方法包 括:
确定一第一符号的一第一密度,所述第一密度与所述第一格式相关;
确定一第二符号的一第二密度,所述第二密度与所述第一格式相关,其中 所述第一密度不小于所述第二密度;及
利用所述第二符号校平所述第一符号,其中利用所述第二符号校平所述第 一符号包括:创建所述第一符号的一第三密度,所述第三密度与所述第二格式 相关,及创建所述第二符号的一第四密度,所述第四密度与所述第二格式相关, 其中所述第四密度不小于所述第二密度。
64、根据权利要求63所述的方法,其中所述第三密度不大于所述第一密度。
65、根据权利要求63所述的方法,其中所述第二格式包括一指示符,所述 指示符设置用于指示所述第一符号已使用所述第二符号校平。

说明书全文

技术领域

发明大体而言涉及大容量数字数据存储系统。更具体而言,本发明涉及 用于在一存储系统中自动实施符号或状态频率校平、以在该存储系统中存储基 本上任何数据样式时均有效满足性能目标的系统和方法。

背景技术

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

发明内容

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

具体实施方式

通过在存储数据之前变换数据格式,例如,从一较不佳情形变换为一较佳 情形,则由于将一较不佳情形有效地存储为一较佳情形,从而可有效地避免存 储实际上的较不佳情形。因此,可更有效地进行存储系统中数据的总体存储, 这是因为存储较不佳情形所消耗的功率将通常不会大于存储较佳情形所消耗的 功率,且可避免与存储较不佳情形相关的性能损失。另外,在一将较不佳情形 存储为更佳情形的存储系统中,与数据存储相关的电路的复杂性可得到降低, 例如,设计所花费的时间更短,且可在一定程度上更易于生产。亦即,可降低 与功率耗用、性能损失、设计问题和生产问题中至少一项相关的总成本或成本 因素。例如,可降低与功率消耗相关的成本、可降低性能损失或成本、可降低 与设计复杂电路相关的成本及可降低生产成本。
当数据拟存储到诸如一非易失性存储装置的存储装置上时,主机系统可将 该数据提供至该非易失性存储装置。在一实施例中,非易失性存储装置可有效 地减少数据,以确定数据内所出现的逻辑状态和符号的相对密度,然后根据该 相对密度选择一合适的变换来用于将数据变换为一有效存储格式。一符号可为 一个位或实质上任何数量的位的组合。虽然一视为可有效存储的数据格式可视 具体系统的要求而变化很大,但可有效存储的数据格式可包括:包含有实质上 均匀分布的逻辑状态的格式;会将特定逻辑状态的最大密度最小化的格式;以 及会将特定逻辑状态的最小密度最大化的格式。
首先参照图1a,下文将介绍一通用主机系统,其包括一非易失性存储装置 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的多个 分立组件上。下文中将根据图1b更详细地介绍非易失性存储装置120的一实施 例。
非易失性存储器124设置用于存储数据,以便可视需要存取和读取数据。 存储于非易失性存储器124内的数据也可视需要擦除,当然应了解,非易失性 存储器124内的某些数据不可擦除。数据存储、读取和擦除过程通常由存储器 控制系统128控制。在一实施例中,存储器控制系统128管控非易失性存储器 124的运行,以便通过基本上使非易失性存储器124的各区段大致上同等地耗损 来使非易失性存储器124的寿命最大化。
上文已一般性地将非易失性存储装置120描述为包含一存储器控制系统 128,即一控制器。通常,非易失性存储装置120可包括分别用于非易失性存储 器124和存储器控制系统128(即控制器)功能的单独芯片。举例而言,尽管包 括(但不仅限于)PC卡、CompactFlash卡、多媒体(MultiMedia)卡及安全数 字(secure digital)卡在内的非易失性存储装置包含可构建于一单独芯片上的控 制器,但其他非易失性存储装置可不包含构建于一单独芯片上的控制器。在一 其中非易失性存储装置120不包含单独的存储器和控制器芯片的实施例中,如 所属技术领域的技术人员所了解,存储器和控制器的功能可集成在一单一芯片 内。
下文将参照图1b、根据本发明的一实施例更详细地阐述非易失性存储装置 120。如前面所述,非易失性存储装置120包括非易失性存储器124和存储器控 制系统128。存储器124和控制系统128(或控制器)是非易失性存储装置120 的主要组件。存储器124可为一形成于一半导体衬底上的存储单元阵列,其中, 通过将两个或多个电荷电平中的一个电荷电平存储于存储单元的各存储元件上 而将一或多位数据存储在各存储单元中。用于此等系统的一常见类型存储器的 实例是非易失性闪速电可擦可编程只读存储器(EEPROM)。
控制系统128通过总线15与一主机计算机或其他正使用该存储系统存储数 据的系统进行通信。总线15通常是图1a中总线104的一部分。控制系统128 还控制存储器124(其可包括一存储单元阵列11)的运行,以写入主机所提供 的数据、读取主机所请求的数据、并在正运行的存储器124中执行各种内务功 能。控制系统128通常包括一具有相关软件存储器和各种逻辑电路的通用微处 理器。通常还包括一或多个状态机,以控制专用例行程序的性能。
存储单元阵列11一般由控制系统128通过地址解码器17进行寻址。解码 器17向阵列11的各极线和位线施加正确的电压,以便向正由控制系统128 寻址的一组存储单元编程数据、从该组存储单元读取数据或者擦除该组存储单 元。辅助电路19包括用于控制施加至阵列元件的电压的编程驱动器,该些电压 取决于编程至一所寻址存储单元组中的数据。电路19还包括读出放大器和其他 从一所寻址存储单元组读取数据所必需的电路。待编程至阵列11中的数据或从 阵列11最新读取的数据通常存储在控制系统128内的一缓冲存储器21中。控 制系统128通常还包括用于临时存储命令和状态数据及类似数据的各种寄存器。
阵列11分为大量的存储单元块BLOCKS 0-N。通常对于闪速EEPROM系 统来说,块即为擦除单位。换言之,每个块均包含可一起擦除的最小数量的存 储单元。亦如图1b所示,每个块通常分为若干页面。页面是编程单位。换言之, 一基本编程操作是将数据写入一个单元页面这一最小单位内。每个页面内通常 存储一个或多个数据扇区。如图1b所示,一个扇区包括用户数据和开销数据。 开销数据一般包括一根据该扇区的用户数据计算出的纠错码(ECC)。控制系统 128的一部分23在数据正编程至阵列11内时计算ECC,且亦在正从阵列11读 取数据时校验ECC。或者,将ECC存储到与其所从属的用户数据不同的页面或 不同的块中。
一用户数据扇区通常为512字节,此等于磁盘驱动器内一扇区的大小。开 销数据通常为一附加的28字节。最常见地,每个页面中包含一个数据扇区,但 两个或更多个扇区也可构成一个页面。大量页面即构成一个块,例如从8个页 面到高达512个,1024个或更多个页面不等。块的数量的选择旨在为存储系统 提供一所期望的数据存储容量。阵列11通常分为数个子阵列(未图示),其中 每一子阵列皆包含这些块中的一部分,这些子阵列在一定程度上彼此独立运行 以提高在执行各种存储作业时的平行度。美国专利第5,890,192号中阐述了使用 多个子阵列的一个实例,该专利的全文以引用的方式并入本文中。
通过图1a中的总线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中不同于存储有该已编码数据的区段的另一区段相关的查找表中, 而不是通过将位并入已编码数据中来指示如何解码该已编码数据。然后,当需 要使用存储信息时或当需将已编码数据解码时,可存取此一标识符。
应了解,当数据已处于一较佳的或所期望的数据样式时,变换器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检索数据时,将已由一变换器处理(例如,由图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′,利用一 具有一更小密度的不同符号或一稀疏符号实施一第二次变换来校平符号“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,下文将根据本发明一实施例来阐述一解码变换器,该解码变换 器适于有效地反演由图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将一变换阐述为适用于利用一状态来校平另一状 态。如上文中所述,在拟减小一种以上的状态时,可使用多次变换。应了解, 通常可将单次通过此一变换器设置为减小多于一种状态。举例而言,可在单次 通过此一变换器中校平两个或更多个符号或状态对。当在单次通过此一变换器 中校平多于一个状态对时,为完成对数据的一给定变换或校平而需通过变换器 的总次数可减少。
一般而言,与数据编码和解码相关的步骤可变化很大。可增加、去除、修 改及重排各步骤,此不会背离本发明的精神或范围。例如,在一编码或变换过 程中,对于一如前文中所述在分析原始的或未经变换的数据时即确定为完成总 的数据变换而需使用的变换的实施例中,基本上可以省去分析已变换数据的步 骤。或者,分析已变换数据的步骤可居于确定一总体变换是否已完成之前。
在上文中已将对一数据集内的状态进行变换或校平阐述为适用于将该数据 集的已变换版本内任一状态的最大密度基本最小化,或者适用于将该数据集的 已变换版本内任一状态的最小密度基本最大化。亦可对各状态实施校平来使一 特定状态的最大密度基本最小化、同时使另一状态的最小密度基本最大化。应 了解,亦可对各状态实施校平来有效地确保一数据集的已变换版本内所有状态 的密度均落入一给定范围内。换言之,可将各状态校平为:在一数据集的已变 换版本内,任一状态的密度均不超过一上限阈值,且任一状态的密度均不下降 到低于一下限阈值。虽然不同状态的上限阈值可基本上相同,且不同状态的下 限阈值可基本上相同,但不同状态的各阈值亦可不同。
在上文中,将确定一数据样式或数据集内各特定状态的密度阐述为确定该 数据样式内各特定状态的一百分比。在一实施例中,例如在一其中数据样式的 长度基本上固定的实施例中,确定各特定状态的密度可基本上仅涉及计数这些 特定状态所出现的次数。因此,确定各特定状态的密度通常可涉及使一数值(如 一计数值或一百分比)与每个状态所出现的次数相关联。
虽然对一数据集实施的变换或校平的量通常可选择为使该数据集的一已变 换版本内的状态可满足所期望的最大和最小密度,但变换或校平的量亦可根据 其他标准进行选择,此不背离本发明的精神或范围。举例而言,校平的量可选 择为使计算开销不超过一定的量。将校平量选择为使计算开销不超过一定的量 可显著提高数据存储的效率,而不会显著影响与变换和存储数据相关的总体系 统的性能。尽管一规定计算开销不超过一特定水平的实施例可能会稍微损害一 变换过程,例如,一特定状态的最大密度可能稍高于较佳情况,但如果总体系 统的性能保持在一特定水平,则上述损害可视为是可接受的。因此,应将这些 实例视为举例说明性而非限制性,并且本发明并非仅限于本文所给出的详细阐 述,而是可在随附权利要求范围内进行修改。
QQ群二维码
意见反馈