存储驱动器及其上的压缩系统及压缩其上的数据的方法与流程

文档序号:16429907发布日期:2018-12-28 20:04阅读:206来源:国知局
存储驱动器及其上的压缩系统及压缩其上的数据的方法与流程

本申请要求2017年6月20日提交的美国临时专利申请第62/522,423号的权益,所述申请的内容以全文引用的方式并入本文中。

本发明概念涉及一种存储系统,且更确切地说,涉及一种具有用于预测数据的可压缩性的压缩预测器和用于基于预测来压缩数据的压缩器的压缩系统、一种包含所述压缩系统的驱动器以及一种用于预测和压缩数据的方法。

背景技术

压缩数据是增大数据存储容量的有效使用的有效方式。然而,并非所有压缩算法都是等同的。一些压缩算法对某些类型的数据比对其它类型的数据更好地用,且一般来说,压缩算法以压缩率换得时间/处理量。

如果存储装置盲目地尝试压缩其接收和存储的所有数据,那么其将造成不必要的延迟、处理量降低以及处理器循环浪费。这是因为并非所有传入数据都适合于压缩。一些数据已在主机上压缩为单独、显式压缩特征的一部分,或是固有的,就如许多多媒体文件类型的情况一样。这些文件并不适合于造成处理量降低和延迟的额外压缩。如果平均压缩率良好,那么这类降低是可接受的(即,空间使用率大大降低)。然而,如果平均压缩率不佳,那么将不能实现数据压缩的目的且唯一结果将是性能损失。

将文件存储于相同大小的逻辑块中的常规块存储系统能够压缩个别逻辑块以增大存储容量。然而,块系统的存储结构使得难以基于文件类型和格式来改进所存储数据的压缩,因为难以在所述块中和在所述块之间定位特定类型或格式的个别文件。块存储系统中的各逻辑块可含有若干不同文件(或若干文件的部分),或相反地,单一数据文件可分散于若干逻辑块之间,从而使得难以分离特定文件类型以用于具有最适合于压缩所述特定类型的数据的算法的个别和针对性压缩。另外,逻辑块未必含有关于各个别数据文件的开始点和结束点的信息或关于输入数据格式的信息。

类似地,关于占据一或多个块的文件的标识的重要元数据可能不存在于特定块层级中。因此,传统的块系统将需要对任何块的数据进行采样并执行复杂的数学计算来测量块的潜在可压缩性。这导致额外的性能损失。另外,在基于块的驱动器上压缩信息需要大量背景活动以追踪目标文件的各块的位置,将那些位置压缩并汇编到新的块中,随后更新映射表以展示所压缩和所存储的信息的新位置,所述位置可能在压缩过程中已大体上改变。

键值存储系统与常规的块存储系统的不同在于其不含有相同大小的逻辑块,而替代地将数据存储为不同大小的值,其中所述值表示特定段的数据或文件。键值存储器使用指向存储于其中的特定值的键。键可含有关于所存储数据的有效信息,所述信息包含逻辑地址、衍生于数据的散列值、数据格式等。

所需要的是改进的压缩驱动器,所述改进的压缩驱动器利用键值存储系统的组织以便允许不同压缩,所述不同压缩改进总体存储压缩。举例来说,所需要的是能够确定在压缩之前预期是否良好压缩率从而避免无用压缩和性能损失的驱动器。另外,所需要的是不仅能够对主机数据执行压缩且还能基于数据的性质、驱动器能力和/或终端用户服务质量(qualityofservice,qos)需求来确定何时且如何最好地压缩这一数据(如果有的话)的驱动器。

本背景技术部分中所公开的以上信息仅用于增进对本公开的背景技术的理解,且因此可含有不构成现有技术的信息。



技术实现要素:

本发明的实施例包含一种具有用于预测数据的可压缩性的压缩预测器和用于基于所述预测来压缩数据的压缩器的压缩系统、一种包含所述压缩系统的驱动器以及一种用于预测和压缩数据的方法。

举例来说,本发明的实施例包含一种压缩系统,所述压缩系统包含:一或多个可压缩性输入;压缩预测器,配置成基于一或多个可压缩性输入来预测数据的可压缩性;压缩器,配置成压缩数据;以及一或多个压缩输入。压缩预测器或压缩器中的至少一个配置成基于一或多个压缩输入来确定如何压缩数据。一或多个可压缩性输入包含对象扩展名字典、对象签名字典以及熵估算算法库中的至少一个。一或多个压缩输入包含服务质量简档、装置性能简档以及压缩算法性能表中的至少一个。

其它实施例包含一种存储驱动器,所述存储驱动器包含压缩系统。

另外,实施例包含一种压缩存储驱动器上的数据的方法,其中所述方法包含:基于一或多个可压缩性输入来预测驱动器上的数据的可压缩性;基于一或多个压缩输入来确定如何压缩数据;以及基于确定如何压缩数据来压缩数据。一或多个可压缩性输入包含对象扩展名字典、对象签名字典以及熵估算算法库中的至少一个。一或多个压缩输入包含服务质量简档、装置性能简档以及压缩算法性能表中的至少一个。

附图说明

结合附图通过参考所综述的以下详细描述,其它特征和方面将变得显而易见且将通过其来最好地理解。在附图中:

图1是示意性地示出根据示范性实施例的压缩驱动器的流程图。

图2是示出在特定处理量下的某些压缩算法的相应压缩率的表。

图3是示出使用图1的压缩驱动器来预测和压缩数据的方法的流程图。

附图标号说明

1:键;

2:值/给定值;

3:压缩预测器;

4:对象扩展名字典/对象扩展名目录;

5:对象签名字典;

6:熵估算算法库;

7:压缩器;

10:压缩驱动器;

11:接收开关;

12:出口开关/多路复用器;

13:输出;

14:qos简档;

15:装置性能简档;

16:压缩算法性能表;

17:压缩算法库;

21:预测;

22:确定;

23:压缩;

24:输出;

25:存储;

26:箭头。

具体实施方式

本文中所描述的电子装置或电气装置和/或根据本发明的实施例的任何其它相关装置或组件可利用任何合适的硬件、固件(例如专用集成电路)、软件,或软件、固件以及硬件的组合来实施。举例来说,这些装置的各种组件可形成于一个集成电路(integratedcircuit,ic)芯片上或形成于单独ic芯片上。另外,这些装置的各种组件可实施于柔性印刷电路膜、载带封装(tapecarrierpackage;tcp)、印刷电路板(printedcircuitboard;pcb)上,或形成于一个基底上。另外,这些装置的各种组件可以是运行于一或多个处理器上、一或多个计算装置中,执行计算机程序指令且与其它系统组件交互以执行本文中所描述的各种功能的进程或线程。计算机程序指令存储于可使用例如随机存取存储器(randomaccessmemory;ram)的标准存储器装置在计算装置中实施的存储器中。计算机程序指令还可存储于例如cd-rom、闪存驱动器或类似物的其它非暂时性计算机可读介质中。此外,本领域的技术人员应认识到可在不脱离本发明的示范性实施例的精神和范围的情况下,将各种计算装置的功能组合或集成到单一计算装置中,或可使特定计算装置的功能分布于一或多个其它计算装置上。

本发明的实施例涉及具有改进可压缩性的固态驱动器。最初,对存储于驱动器上的文件的特征进行分析来预测各文件能够受压缩的程度(即,文件的可压缩性)。一旦得到关于可压缩性的预测,将作出关于是否压缩数据的决策。这个决策可基于所预测的数据的可压缩性以及其它因素,例如服务质量(qos)需求和目前装置能力。如果作出压缩的决策,那么随后作出关于如何压缩数据的判定,考虑例如数据和装置的特征以及qos需求的因素来确定在当前条件下哪一算法将最适于使用,以优化总体性能。

图1是示出根据一个实施例的压缩驱动器10的流程图。这个实施例中的驱动器10是键值存储驱动器,以便利用存储于驱动器10上所存储的数据的键和值中的可易于存取的信息。图1的流程图示出包含键1和值2的驱动器10的示范性数据集。可通过压缩预测器3对键1和值2中所含有的信息进行分析以确定值2的可压缩性。压缩预测器3可使用对象扩展名字典4、对象签名字典5和/或熵估算算法库6中所含有的信息来确定或帮助确定值2的可压缩性。

对象扩展名目录4含有已知对象扩展名(即,文件扩展名)列表,以及对于多种压缩技术中的每一种来说那些类型的对象的可压缩程度的评估。这一信息由对象扩展名目录4提供给压缩预测器3以便于压缩预测,且可引起进行一些形式的可压缩性预测而不对值2中所含有的显著数据量直接地进行采样。举例来说,键1可含有可提供关于文件的可压缩性的线索的文件扩展名,所述文件扩展名指示数据文件是pptx、pdf、mp3、jpg等。如果键1指示文件含有本身已压缩的mp3文件,那么驱动器10可在不对值2的任何数据进行采样的情况下了解到不大可能另外压缩值2。另一方面,如果键1指示其存储黑白位图(bitmap;bmp)图像,那么驱动器10将在不对值2进行采样的情况下了解到值2将是用于压缩的良好候选。

键1可含有关于可压缩性的其它线索,其包含文件签名(即,对象签名)。文件签名是提供关于存储于值2中的文件类型的信息的代码行。数据类型的已知签名列表和其可压缩程度的评估可维持于对象签名字典5中。因此,如果文件扩展名未包含于键1中,那么文件签名可以是且可提供关于存储于值2中的文件类型的信息。将来自对象签名字典5的信息提供给压缩预测器3以便于压缩预测。

虽然文件扩展名和文件签名用作这个实施例中的实例以展示可帮助预测可压缩性的存储于键1中的元数据类型,但可包含除文件扩展名和/或文件签名外或代替文件扩展名和/或文件签名可用于预测可压缩性的其它元数据。使这一其它元数据与文件类型和压缩有效性相关联的信息可存储于词典中且可用于压缩预测器。

如果键1不含元数据提示,那么可能必需对值2中所含有的数据进行采样。然而,由于驱动器10是键值驱动器,相较于常规基于块的驱动器,易于定位数据集的开始点和结束点。这意味两件事:第一,保证所取得的任何样本仅来自所关注的数据,从而使得任何压缩预测较准确。第二,知道数据的开始点允许易于定位值2的标头,所述标头可含有可在不需对值2另外采样且不需要较复杂计算的情况下用以预测压缩性能的线索(例如,不在键1中的元数据或签名)。

如果文件扩展名和/或文件签名并未包含于键1中,那么其可包含于标头中或在值2内的特定已知位置处。举例来说,一些文件签名定位于从文件的开始特定偏移处。下表1是若干常见文件类型以及其相关联签名和偏移的列表。

表1

如表1中所示出,许多文件类型定位于0偏移处,即文件标头的开始处,从而使得寻找文件签名的对值2的采样相对容易。即使文件签名不在标头的开始处,可对特定偏移进行采样以搜索常用文件类型的签名。因此,如果键1不含有关于文件类型的信息,那么可对值2内的特定位置进行采样以便快速且有效地搜索文件签名。

虽然文件签名用作这个实施例中的实例以展示可存储于可帮助预测可压缩性的标头中的元数据类型,但在标头中或在值内的可预测偏移处可包含除文件签名外或代替文件签名可用于预测可压缩性的其它元数据。举例来说,标头可包含指示值的文件格式是什么的其它元数据。使其它元数据与文件类型和压缩性能相关联的信息可存储于词典中且可用于压缩预测器。

如果与压缩相关的元数据并未在键1中且并未在所采样文件标头和偏移位置中,那么可能需要数学上较复杂的可压缩性算法(例如基于熵计算的测量)。

熵估算算法库6含有用于测试任何所采样数据的熵并因而确定其可压缩程度的代码。基于熵的计算可用于检索值2的部分以预测文件是否可压缩。基于熵的计算在熵或随机数据较难压缩的原则下运行。一般来说,已压缩的文件具有较高熵特征。未压缩的文件更可能具有较容易压缩的有序数据。举例来说,压缩算法可将包含具有成一行的一百个“1”的重复代码的区域的未压缩文件压缩为表示(本质上)在所述区域中具有“1”×100的较短、较无序代码行。

由于数据集的开始点和结束点在键值系统中是已知的,所以基于熵的计算可用于值的样本部分以准确地预测整个值的可压缩性。显示高熵的结果将指示值可能不可压缩,且显示低熵的结果将指示值可能是可压缩的。可将来自熵估算算法库6的信息提供到压缩预测器3以帮助预测。

除对值2的样本执行基于熵的计算外或代替对所述值的样本执行基于熵的计算,可对值2的一部分执行样本压缩以估算可压缩性。举例来说,值2的区域(例如,已知且相对较小区域)可使用测试算法来压缩。如果空间节省超出某一阈值(指示可压缩性是合理的),那么将是可压缩性的积极指示,且可将测试压缩的结果发送到驱动器10上的压缩器7以帮助压缩值2。在一些实施例中,多个算法可使用于值2的相同区域上,以使得可较好地优化压缩。然而,这类方法将消耗较多时间和资源且用户可能仅想在qos需求较低时进行这类过程。

总之,存在可检查的各种位置和可在键值装置中执行以预测可压缩性的分析,且这些位置和分析可混合和匹配以在变化速度下提供不同准确度。一般来说,预测的准确度和实现预测的速度是成反比相关的。举例来说,相较于扫描值2的样本部分并执行基于熵的计算,搜索键1和值2的标头以审查关于可压缩性(例如,根据文件扩展名或文件签名)的元数据线索相对较快。然而,元数据线索理论上相较于基于熵的计算更不精确。

除上述元数据信息和分析外,压缩预测器3可考虑各种其它因素以预测可压缩性,所述因素包含qos需求和驱动器10的性能能力。

qos需求和信息可并入到qos简档14中。qos简档14并入例如用户的当前性能需求和需要的考虑因素,以使得执行的任何压缩算法将不会不利地影响用户的性能需求。qos信息可告知驱动器10的机载控制器其需要的性能参数以维持对终端用户是可接受的,机载控制器在所述驱动器中处理性能管理任务。qos信息可由压缩预测器3使用来确定是否预测压缩率符合qos需求。另外,qos信息可用于设置机制,可压缩性可通过所述机制由压缩预测器3预测。举例来说,qos需求可限制可用于压缩的处理量水平和带宽,且可将由压缩引起的延迟的可接受量限制到不会不利地影响用户的需要的限值。另外,用户的qos需求可要求一定量的处理器功率来执行供用户使用的应用、方法等。这些需求限制压缩算法(且潜在地限制再压缩工作期间的减压算法),所述压缩算法可用于当时并未超出用户的带宽、处理量、延迟、处理器或其它需求的算法。

驱动器10的性能能力可存储于装置性能简档15中。装置性能简档15追踪驱动器10的性能的静态方面和动态方面。这一信息由压缩预测器3使用以确定值是否可充分压缩(且如果是,程度)以符合qos14和驱动器10两者的需要。

上述元数据信息、基于熵的计算、样本压缩、qos需求以及装置信息中的一些或全部可由压缩预测器3分析以预测压缩值2是否将得到有用压缩率,和/或其是否将不利地影响qos。考虑这些因素中的一些或全部,最终预测可以是基于阈值的。举例来说,在一些实施例中,如果预测可压缩性高于预定阈值(考虑与预测可压缩性相关的上述因素中的任一个或全部,可由用户指定和输入阈值),那么压缩预测器3将确定压缩应进行。如果预测可压缩性低于预定阈值,那么压缩预测器3将确定不应压缩值2。在其它实施例中,决策可以是多个阈值检查点的结果。举例来说,例如qos需求、基于熵的计算、样本压缩等的不同因素可具有将考虑到以便确定压缩是否应进行的不同阈值或若干阈值。如果这些阈值中的任何一个或在一些实施例中这些阈值的任何组合不符合,那么将不会进行压缩。关于这些阈值的信息可维持于决策表中。除例如预测压缩率、当前系统性能特征以及各种qos需求的因素外,决策表将包含类似于上述因素的因素,在下文更详细地论述。这些各种因素的分析可用于确定可压缩性是否应发生。

最终,无论预测方法是什么,将进行关于值的可压缩程度的预测。这一决策可基于一或多个阈值,例如速度或可压缩性阈值、决策表或其类似物。

一旦通过压缩预测器3进行关于是否压缩值2的确定,将这一结果提供到接收开关11。接收开关11接收值2,且基于来自压缩预测器3的结果,在将值2输出到压缩器7或避开压缩器7与将值2直接发送到输出13的出口开关12之间切换。因此,如果压缩预测器3确定压缩应进行,那么接收开关11将将值2发送到压缩器7,而如果压缩预测器3确定压缩不应进行,那么接收开关11将将值2发送到输出13的出口开关12。

如果发现值2许可压缩且将所述值发送到压缩器7,那么压缩器7随后将确定如何压缩驱动器10。替代地,压缩预测器3可确定在将值2发送到压缩器7之前如何压缩驱动器10。确定如何压缩文件可需要考虑各种因素,因为并非所有压缩算法都是相等的。一些算法比其它算法更好地运行来压缩一些形式的数据,一些算法比其它算法要求更多的处理器或存储器能力,一些算法比其它算法具有更大处理量,且一些算法比其它算法提供总体更好的压缩率。在确定如何压缩值2中,压缩器7(或压缩预测器3)可考虑来自包含qos简档14、装置性能简档15以及压缩算法性能表16的各种输入的信息以确定何种压缩算法适用于数据。

来自qos简档14的qos信息可用于确定给定压缩算法的性能特征是否符合终端用户的需要。

来自装置性能简档15的信息可用于确定何种压缩算法将最有效地利用装置资源、待压缩的给定值2。

压缩算法性能表16含有关于多个压缩算法的信息,所述信息包含各算法的平均压缩率(单独或通过文件类型)、各算法的处理量以及各算法的计算和存储器资源需求。压缩算法性能表16允许基于文件类型和可用的处理量(所述处理量可以通过来自qos简档14的qos需要来确定)以及基于装置性能简档15的装置能力来选择特定算法。如上文所论述,特定压缩算法可提供更大压缩率以用于特定数据格式且因此可相较于其它压缩算法是优选的。图2简单地示出多种本领域常用压缩算法(和算法设置)的比较。各算法/设置具有处理量和所压缩文件大小的特征化组合(用于常量目标文件)。一般来说,可看到压缩愈多文件(较小压缩文件大小),处理量愈低。因此,所要求的发明考虑存储系统的各种属性以选取当时用于系统的处理量与压缩大小的最佳平衡。另外,如图2所示,某些压缩算法在特定可用的处理量下相对于其它压缩算法具有更好的压缩率。考虑当前qos和处理量的装置需求,考虑例如图2中所含有的信息允许选择优化压缩率的压缩算法。

因此,视当前qos需要(如由qos简档14提供)和驱动器10的性能能力(如由装置性能简档15提供)而定,特定算法相较于其它算法可以是优选的。

通过考虑所有这些因素,驱动器10可确定何种压缩算法在当前条件下适用于值2。视环境而定,一种压缩技术可比其它压缩技术更适合于一种情形。这一实施例考虑待压缩的数据类型、驱动器上可用的资源以及将压缩算法动态指派到待压缩数据的用户qos需求,以使得ssd的总体性能得到优化。这一确定可视当前条件和qos需求而定使得不同压缩算法应用于特定值。举例来说,如果来自装置上的其它活动的当前性能需求较高,那么可选择具有相对低的压缩率的压缩算法以使得用户的总体性能需要不受不利的影响。

虽然在这个实施例中,考虑来自qos简档14、装置性能简档15以及压缩算法性能表16的信息,但在其它实施例中,可能仅考虑上文所论述因素中之一些来确定待使用的压缩算法。另外,还可能考虑可影响用于特定值的优选的压缩算法的额外信息。

一旦压缩算法选定,那么压缩算法库17将向压缩器7提供代码以启动给定值2的压缩。压缩算法库17含有用于执行压缩算法的代码。一旦压缩完成,那么将经由多路复用器12将压缩值输出到输出13。

在一些模式(尤其其中对数据进行串联压缩而非静止压缩的那些模式,或在即时qos需求允许最小处理时)中,在一个写入处所实现的实际压缩率可能不是理想压缩率。这可能由例如写入缓冲器分配给传入数据的有限空间引起(使得并非可一次分析和压缩所有数据),或由于驱动器由其它高值任务占据,从而迫使低强度压缩。

举例来说,同时,qos需求可要求“快速而粗糙的(quickanddirty)”压缩(其中快速压缩数据,但未必达到其最理想压缩)以维持用户所需要的驱动器10的性能能力。在这类情境中,有可能驱动器可随后更高效地再压缩数据。举例来说,稍后当磁盘是空闲或必须另外读取和写入主题信息(ie,垃圾收集/耗损均衡)时,可能对已压缩值进行减压且再次分析(使用上述方法)以确定是否可实现更佳压缩。

以这样的方式,例如原先串联压缩的数据流可随后在“静止”情形中更充分地压缩。

为便于这类再压缩,可将编码压缩信息的隐藏键添加到原始键。由于正常键处理例如指数建构、检索等的操作,所以可忽略这一隐藏键,但当压缩相关活动相关时,例如当qos需求低时,可存取所述隐藏键。隐藏键可包含关于当前使用的压缩类型和启动再压缩的命令的信息。不论何时新的压缩方案应用于值,可更新隐藏键。

在使用中,如图3中所示,压缩驱动器10使用预测压缩器3来首先预测21特定键值数据集的可压缩性。取决于硬件处理能力或由qos需求施加的限制,可分别地或同时进行若干数据集的可压缩性预测。预测可基于来自文件扩展名、文件签名、基于熵的计算、样本压缩、qos信息和/或装置性能信息的信息,如上文关于图1所论述。

举例来说,驱动器10的机载控制器或驱动器10上的处理器可搜索可提供关于可压缩性的线索的用于文件扩展名或签名的键1。如果定位文件扩展名或文件签名,那么可分别对其进行分析且与由对象扩展名字典4和对象签名字典5提供到压缩预测器3的信息进行比较以帮助预测值2的可压缩性。在其它实施例中,或在文件签名和文件扩展名未定位于键1中的情况下,驱动器10可搜索值2的标头或特定偏移以用于文件签名。如果定位文件签名,那么可对其进行分析且与由对象签名字典5提供到压缩预测器3的信息进行比较以帮助预测值2的可压缩性。如果文件扩展名或文件签名两者都未定位于键1或值2中,那么驱动器10可使用由熵估算算法库6提供的信息来执行基于熵的计算,或驱动器10可执行如上文所论述的样本压缩。在一些实施例中,压缩预测器3还可分析由qos简档14和/或装置性能简档15提供的信息以帮助估算可压缩性。

预测可以是基于阈值的,以使得如果符合特定阈值或由用户设置的阈值(可由用户指定和输入或输入作为决策表的部分的一或多个阈值,考虑与预测可压缩性相关的上述因素中的任一个或全部),那么将压缩值2。举例来说,如果预测可压缩性高于预定阈值,那么压缩预测器3将确定压缩可进行。如果预测可压缩性低于预定阈值,那么压缩预测器3将确定不应压缩值2。

如果压缩预测器3确定应压缩值2,那么经由接收开关11将数据发送到压缩器7。压缩器随后确定22如何压缩值2。在确定如何压缩值2中,压缩器7可考虑来自包含qos简档14、装置性能简档15以及压缩算法性能表16的各种输入的信息以确定何种压缩算法适用于值2。

一旦压缩算法选定,将使用由压缩算法库17提供的代码来压缩23值2以启动给定值2的压缩。压缩后,将经由出口开关12从压缩器7输出24压缩值。

如果压缩预测器3确定不应压缩值2,那么将经由出口开关12输出24数据。

从压缩器7中输出24后,可将关于压缩类型和再压缩值2的命令的信息存储25于键1的隐藏部分(即,隐藏键)中。可随后,例如当qos需求较低和/或驱动器10静止时,存取这一信息以确定是否再压缩值2以便优化压缩。

另外,输出24且不压缩后,可包含关于是否随后尝试压缩值2(例如,是否qos需求防止先前尝试的压缩)的信息。这一信息可包含尝试压缩的命令。当qos需求低和/或驱动器10静止时可尝试这一压缩(参见箭头26)。

虽然上述实施例将压缩器7描述为确定如何压缩值2,但这一过程也可由压缩预测器3执行。在确定如何压缩值2中,压缩器3可类似地考虑来自包含(例如)qos简档14、装置性能简档15以及压缩算法性能表16的各种输入的信息以确定何种压缩算法适用于值2。一旦压缩预测器3确定应用的压缩算法,所述压缩预测器可将信息输出到压缩器7以用于压缩。

虽然上述实施例参考键值驱动器描述,但如上文所描述的预测可压缩性并确定如何压缩数据的方法也可用于传统的基于块的驱动器。由于基于块的驱动器并不包含大量的键值驱动器中所包含的元数据,所以本方法将可能要求比键值驱动器更多时间和处理功率。

虽然已描述本发明的示范性实施例,但应理解本发明不应限于这些示范性实施例,而是可在如上文由所附权利要求书和其等效物所要求的本发明的精神和范围内由本领域的普通技术人员作出各种改变和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1