本发明实施例涉及芯片性能分析技术领域,尤其涉及一种性能分析方法、装置、设备及存储介质。
背景技术:
随着芯片行业的发展,尤其是人工智能专用加速芯片大量催生之后,越来越复杂的芯片设计使得芯片开发人员对芯片的性能分析需求愈加迫切,同时性能分析时遇到的困难也愈加巨大。
现有的芯片性能分析器,通常是基于性能计数器来分别获得每个硬件模块的少数性能信息,将该性能信息全部提供给用户。由用户根据经验去查看并分析这些性能信息,以对该芯片的性能进行分析。芯片性能分析器本身无法对这些信息进行综合分析,而且往往对进行性能分析的用户有较高的专业要求。
技术实现要素:
本发明实施例提供了一种性能分析方法,以实现对芯片性能的综合分析。
第一方面,本发明实施例提供了一种性能分析方法,该方法包括:
对目标芯片中的多个性能计数器的工作参数进行配置,其中,多个性能计数器中的至少两个性能计数器具有级联关系,且后级性能计数器的计数开始时机和/或计数结束时机由关联的前级性能计数器的计数状态确定;
通过多个性能计数器对所述目标芯片的多个待统计事件进行统计,得到计数数据;
获取至少一个性能计数器的计数数据,并根据所述计数数据对所述目标芯片的性能进行分析。
可选地,所述工作参数包括工作模式、计数开始时机、计数结束时机、需要计数的事件以及计数增加模式中的至少一个。
可选地,所述后级性能计数器与关联的所述前级性能计数器属于目标芯片中相同的硬件模块或不同的硬件模块。
可选地,所述后级性能计数器的计数开始时机和/或计数结束时机由关联的前级性能计数器的计数状态确定,包括:
所述后级性能计数器的计数开始时机和/或计数结束时机根据关联的前级性能计数器的计数值确定;或者,
所述后级性能计数器的计数开始时机和/或计数结束时机根据关联的前级性能计数器的计数值达到计数阈值的次数确定。
可选地,所述对目标芯片中的多个性能计数器的工作参数进行配置,包括:
根据多个待统计事件对目标芯片中至少一个硬件模块的性能计数器的数量以及工作参数进行配置。
可选地,所述获取至少一个性能计数器的计数数据,包括:
读取至少一个性能计数器的计数数据;或者,
接收至少一个性能计数器所上报的计数数据。
可选地,在所述获取至少一个性能计数器的计数数据之前,还包括:
停止目标芯片中多个性能计数器的计数。
第二方面,本发明实施例还提供了一种性能分析装置,该装置包括:
参数配置模块,用于对目标芯片中的多个性能计数器的工作参数进行配置,其中,多个性能计数器中的至少两个性能计数器具有级联关系,且后级性能计数器的计数开始时机和/或计数结束时机由关联的前级性能计数器的计数状态确定;
事件统计模块,用于通过多个性能计数器对所述目标芯片的多个待统计事件进行统计,得到计数数据;
性能分析模块,用于获取至少一个性能计数器的计数数据,并显示所述计数数据,以根据所述计数数据对所述目标芯片的性能进行分析。
第三方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任一所述的性能分析方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明实施例中任一所述的性能分析方法。
本发明实施例的技术方案,通过目标芯片中的性能计数器之间的级联关系能够实现级联计数,以在事件统计过程中实现各统计事件之间的逻辑组合,且后级性能计数器的计数开始时机和/或计数结束时机由关联的前级性能计数器的计数状态确定,能够使得性能计数器根据级联关系在需要开始或者结束计数的时候自动开始或者结束计数,不仅能够更加合理地使用性能计数器,而且还能够避免性能计数器上报大量冗余数据,为性能分析提供更加有效地依据,进而,通过多个性能计数器对所述目标芯片的多个待统计事件进行统计,得到计数数据;获取至少一个性能计数器的计数数据,并根据所述计数数据对所述目标芯片的性能进行分析,能够解决芯片性能分析器本身无法对这些信息进行综合分析的技术问题,克服了现有性能分析工具信息单一的缺陷,实现对芯片性能的综合分析。
附图说明
图1是本发明实施例一所提供的一种性能分析方法的流程示意图;
图2是本发明实施例二所提供的一种性能分析方法可选实例的流程示意图;
图3是本发明实施例三提供的一种性能分析装置的结构示意图;
图4是本发明实施例三提供的一种设备的结构示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一所提供的一种性能分析方法的流程示意图,本实施例尤其适用于需要对芯片性能进行综合分析的情况,该方法可以由性能分析装置来执行,该装置可以通过软件和/或硬件的方式来实现,并且一般可独立配置于终端或服务器中实现本实施例的方法。
如图1所示,本实施例的方法具体可包括:
s110、对目标芯片中的多个性能计数器的工作参数进行配置。
在本发明实施例中,所述工作参数可包括工作模式、计数开始时机、计数结束时机、需要计数的事件以及计数增加模式等参数中的至少一个。可选地,工作模式可以包括独立计数模式或并行计数模式层,还可以包括软件模式或硬件模式等。示例性地,计数增加模式可以是上升边沿累加、下降边沿累加或高电平累加等。
其中,多个性能计数器中的至少两个性能计数器具有级联关系,且后级性能计数器的计数开始时机和/或计数结束时机由关联的前级性能计数器的计数状态确定。其中,计数状态包括性能计数器的计数值和/或计数器的计数值达到计数阈值的次数等。在本发明实施例中,后级性能计数器的计数开始时机和/或计数结束时机可以由前级性能计数器的输出进行控制,实现级联计数。
作为本发明实施例的可选方案,所述后级性能计数器的计数开始时机和/或计数结束时机由关联的前级性能计数器的计数状态确定,可包括:所述后级性能计数器的计数开始时机和/或计数结束时机根据关联的前级性能计数器的计数值确定,例如,如果前级性能计数器的计数值大于或等于某个数值时后级性能计数器才开始或结束计数;或者,所述后级性能计数器的计数开始时机和/或计数结束时机根据关联的前级性能计数器的计数值达到计数阈值的次数确定,例如,如果统计出前级性能计数器的计数值达到计数阈值的次数达到或者超过预设次数阈值,则所述后级性能计数器开始或结束计数。
可选地,所述后级性能计数器与关联的所述前级性能计数器可属于目标芯片中相同的硬件模块或不同的硬件模块。即,同一硬件模块中的两个及两个以上的性能计数器之间可以具有级联关系,不同的硬件模块中的两个及两个以上的性能计数器之间也可以具有级联关系。
对目标芯片进行综合性能分析,往往需要结合多个性能评价指标。因此,在目标芯片的一个、两个以及两个以上的硬件模块中配置性能计数器,进一步地,可以在同一硬件模块配置多个性能计数器。可选地,对目标芯片中的多个性能计数器的工作参数进行配置,包括:根据多个待统计事件对目标芯片中至少一个硬件模块的性能计数器的数量以及工作参数进行配置。这样设置的好处在于,可以在事件统计过程中设定跨模块的复杂组合逻辑,以实现对目标芯片各个模块的综合性能分析。
在本发明实施例中,可以根据多个待统计事件之间的逻辑关系确定出目标芯片中需要设置性能计数器的至少一个硬件模块,进一步地还可以确定出每个硬件模块所需设置的性能计数器的数量,并配置性能计数器的工作参数。示例性地,可以根据多个待统计事件配置至少一个硬件模块的性能计数器单元,其中,所述性能计数器单元包括至少一个性能计数器。可以理解的是,一个性能计数器单元内的性能计数器的工作模式同样可以由另一个性能计数器单元的性能计数器输出来进行控制。
需要说明的是,可以在多个性能计数器计数之前,统一配置好每个性能计数器的工作参数,也可以在至少一个性能计数器开始计数之后,配置各个性能计数器的工作参数。即,可以根据实际需求对性能计数器的工作参数进行配置。
s120、通过多个性能计数器对所述目标芯片的多个待统计事件进行统计,得到计数数据。
其中,待统计事件可包括待统计软件事件和待统计硬件事件。性能计数器可用于在待统计事件的发生时进行计数,待统计事件每发生一次,性能计数器的计数值就加1。每个性能计数器可针对特定的待统计事件进行统计,产生计数数据。可以理解的是,要对目标芯片的某种性能进行分析,往往需要对两个及两个以上的待统计事件进行统计。
需要说明的是,待统计事件即需要计数的事件。可以是直接表征目标芯片执行功能的事件,如指令的执行、指令流水线停顿等,也可以是性能计数器的计数事件。例如,性能计数器的计数值设置有计数上限,待统计事件可以是性能计数器的计数值达到计数上限的次数等。
在通过多个性能计数器对所述目标芯片的多个待统计事件进行统计之前,需要启动多个性能计数器准备开始计数。启动需要性能分析的软件场景,软件运行过程中,如果目标芯片上发生待统计事件,则会触发性能计数器进行实际的计数动作。
s130、获取至少一个性能计数器的计数数据,并根据所述计数数据对所述目标芯片的性能进行分析。
如上所述,由于一个性能计数器往往是对一种统计事件的发生进行计数,而在对目标芯片进行性能分析时,可能需要一个、两个或多个性能计数器的计数数据。其中,获取至少一个性能计数器的计数数据,可以是主动获取也可以是被动接收性能计数器的计数数据。示例性地,获取至少一个性能计数器的计数数据可包括:读取至少一个性能计数器的计数数据;或者,接收至少一个性能计数器所上报的计数数据。
其中,读取至少一个性能计数器的计数数据,可进一步包括:实时读取至少一个性能计数器的计数数据;或者,根据预设时间间隔读取至少一个性能计数器的计数数据;或者,当接收到用户输入的数据读取请求时,读取至少一个性能计数器的计数数据等。
可选地,在所述获取至少一个性能计数器的计数数据之前,还包括:停止目标芯片中多个性能计数器的计数。本技术方案尤其适用于需要结合多个性能计数器的计数数据对目标芯片进行性能分析的情况。需要说明的是,停止目标芯片中多个性能计数器的计数,可以是停止目标芯片内全部性能计数器的计数,也可以是停止目标芯片内全部性能计数器中的部分性能计数器的计数。
可选地,停止目标芯片中多个性能计数器的计数,包括:停止至少一个硬件模块的多个性能计数器单元的计数。当然,可以是根据目标芯片的至少一项待分析性能确定出目标芯片中至少一个待停止性能计数器,进而停止所述至少一个性能计数器的计数。
根据所述计数数据对所述目标芯片的性能进行分析可以是,获取到至少一个性能计数器的计数数据后,对计数数据进行统计汇总与呈现。
为了便于用户对数据进行查看,可选地,在获取至少一个性能计数器的计数数据之后,还可以包括:显示所述计数数据。在上述各技术方案的基础上,在根据所述计数数据对所述目标芯片的性能进行分析之后,还可以包括:显示对所述目标芯片的分析结果。
本实施例的技术方案,通过目标芯片中的性能计数器之间的级联关系能够实现级联计数,以在事件统计过程中实现各统计事件之间的逻辑组合,且后级性能计数器的计数开始时机和/或计数结束时机由关联的前级性能计数器的计数状态确定,能够使得性能计数器根据级联关系在需要开始或者结束计数的时候自动开始或者结束计数,不仅能够更加合理地使用性能计数器,而且还能够避免性能计数器上报大量冗余数据,为性能分析提供更加有效地依据,进而,通过多个性能计数器对所述目标芯片的多个待统计事件进行统计,得到计数数据;获取至少一个性能计数器的计数数据,并根据所述计数数据对所述目标芯片的性能进行分析,能够解决芯片性能分析器本身无法对这些信息进行综合分析的技术问题,克服了现有性能分析工具信息单一的缺陷,实现对芯片性能的综合分析。
实施例二
图2为本发明实施例二所提供的一种性能分析方法的可选实例的流程示意图。如图2所示,本实施例的性能分析方法具体可包括:
s210、对目标芯片中当前的硬件模块中性能计数器单元中的至少一个性能计数器进行配置。
其中,目标芯片包括多个硬件模块。在对性能计数器进行配置时,可以以硬件模块的性能计数器单元为单位,对性能计数器单元中的一个两个或多个性能计数器进行配置。
对目标芯片中当前的硬件模块中性能计数器单元中的至少一个性能计数器进行配置,包括:根据待统计事件对配置硬件模块的前的硬件模块中性能计数器单元中每个性能计数器的工作参数进行配置。其中,对性能计数器的工作参数的配置,包括对每个性能计数器的工作模式、计数增加模式,触发开始计数的方式(计数开始时机),触发结束计数的方式(计数结束时机),以及待统计事件等。
示例性地,当前性能计数器的工作模式可包括并行计数模式与独立计数模式,即,确定当前性能计数器与除当前性能计数器之外的其余性能计数器是否需要并行计数。触发当前性能计数器开始计数的方式可包括由除当前性能计数器之外的其余性能计数器的计数值触发。当前性能计数器的待统计事件可包括所属硬件模块触发的软硬件事件,或者统计除当前性能计数器之外的其余性能计数器的计数值达到计数阈值(计数值上限)的次数。
s220、判断是否需要统计更多的待统计事件,若是,返回执行s210;若否,则执行s230。
由于一个性能计数器往往会针对一个预设的待统计事件进行统计。在本发明实施例中,可以根据待分析性能确定出目标待统计事件,进而可以根据目标待统计事件确定性能计数器的数量。如果判断出需要统计更多的待统计事件,则可根据增加该硬件模块的性能计数器单元的性能计数器,并根据上述s210中的方法对增加该硬件模块的性能计数器单元的性能计数器进行配置。如果否,则说明当前性能计数器单元的各个性能计数器已经配置完成。
s230、判断是否需要配置更多的硬件模块,若是,返回执行s210;若否,则执行s240。
在完成对当前硬件模块的性能器计数单元的各性能计数器的配置后,还需要进一步判断是否存在其他的硬件模块需要配置性能计数器。如果是,则可根据上述s210中的方法对该硬件模块的性能计数器单元进行配置。这样设置的好处在于,能够通过不同硬件模块的多个性能计数器的相互配合,实现级联统计多个待统计事件。
其中,多个性能计数器中的至少两个性能计数器具有级联关系,且后级性能计数器的计数开始时机和/或计数结束时机由关联的前级性能计数器的计数状态确定。
s240、启动各个性能计数器单元的各个性能计数器。
当目标芯片中当前需要配置的性能计数器单元全部配置完成后,启动各个性能计数器单元的性能计数器,以在待统计事件发生时进行计数。
s250、启动需要性能分析的软件场景。
启动需要进行性能分析的软件场景,触发各个硬件模块的待统计事件,由性能计数器单元对待统计事件进行统计。
s260、读取性能计数器单元的性能计数器的计数数据。
可以理解的是,可以根据实际的性能分析需求读取性能计数器单元的性能计数器的计数数据,对读取计数数据的具体条件在此不做限定。
s270、停止性能计数器单元的性能计数器的计数。
示例性地,如果当前待分析性能的各项计数数据均已统计,或者已达到预设的停止计数条件,则可以停止性能计数器单元的性能计数器的计数。其中,预设的停止计数条件可以是启动计数计数器的时间达到预设时间阈值,或者至少一个性能计数器的计数数据达到预设的计数阈值,比如超过预设的最高阈值。
s280、对多个性能计数器的计数数据进行汇总呈现。
根据各个性能计数器的计数数据进行性能分析,为了使得性能分析的结果更加直观,则需要对计数数据进行汇总处理显示。
本实施例的技术方案,基于目标芯片内配置的多个性能计数器,对影响芯片性能的软硬件待统计事件进行统计,可以在事件统计过程中设定跨模块的复杂组合逻辑,尤其适用于对具有复杂的硬件设计的芯片进行性能分析,实现对目标芯片各个硬件模块的综合性能分析。
实施例三
图3为本发明实施例三所提供的一种性能分析装置的结构示意图,本实施例的性能分析装置尤其适用于需要对芯片性能进行综合分析的情况,该装置可以通过软件和/或硬件的方式来实现,并且一般可独立配置于终端或服务器中实现本发明实施例的性能分析方法。如图3所示,本实施例的性能分析装置可包括:参数配置模块310、事件统计模块320和性能分析模块330。
其中,参数配置模块310,用于对目标芯片中的多个性能计数器的工作参数进行配置,其中,多个性能计数器中的至少两个性能计数器具有级联关系,且后级性能计数器的计数开始时机和/或计数结束时机由关联的前级性能计数器的计数状态确定;事件统计模块320,用于通过多个性能计数器对所述目标芯片的多个待统计事件进行统计,得到计数数据;性能分析模块330,用于获取至少一个性能计数器的计数数据,并显示所述计数数据,以根据所述计数数据对所述目标芯片的性能进行分析。
本实施例的技术方案,通过目标芯片中的性能计数器之间的级联关系能够实现级联计数,以在事件统计过程中实现各统计事件之间的逻辑组合,且后级性能计数器的计数开始时机和/或计数结束时机由关联的前级性能计数器的计数状态确定,能够使得性能计数器根据级联关系在需要开始或者结束计数的时候自动开始或者结束计数,不仅能够更加合理地使用性能计数器,而且还能够避免性能计数器上报大量冗余数据,为性能分析提供更加有效地依据,进而,通过多个性能计数器对所述目标芯片的多个待统计事件进行统计,得到计数数据;获取至少一个性能计数器的计数数据,并根据所述计数数据对所述目标芯片的性能进行分析,能够解决芯片性能分析器本身无法对这些信息进行综合分析的技术问题,克服了现有性能分析工具信息单一的缺陷,实现对芯片性能的综合分析。
在上述技术方案的基础上,所述工作参数可包括工作模式、计数开始时机、计数结束时机、需要计数的事件以及计数增加模式中的至少一个。
在上述各技术方案的基础上,所述后级性能计数器与关联的所述前级性能计数器可属于目标芯片中相同的硬件模块或不同的硬件模块。
在上述各技术方案的基础上,所述后级性能计数器的计数开始时机和/或计数结束时机由关联的前级性能计数器的计数状态确定,包括:
所述后级性能计数器的计数开始时机和/或计数结束时机根据关联的前级性能计数器的计数值确定;或者,
所述后级性能计数器的计数开始时机和/或计数结束时机根据关联的前级性能计数器的计数值达到计数阈值的次数确定。
在上述各技术方案的基础上,所述参数配置模块还可以用于:
根据多个待统计事件对目标芯片中至少一个硬件模块的性能计数器的数量以及工作参数进行配置。
在上述各技术方案的基础上,所述性能分析模块可用于:
读取至少一个性能计数器的计数数据;或者,
接收至少一个性能计数器所上报的计数数据。
在上述各技术方案的基础上,所述性能分析装置还可以包括:
计数停止模块,用于在所述获取至少一个性能计数器的计数数据之前,停止目标芯片中多个性能计数器的计数。
上述性能分析装置可执行本发明任意实施例所提供的性能分析方法,具备执行性能分析方法相应的功能模块和有益效果。
实施例四
图4为本发明实施例四所提供的一种设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性设备412的框图。图4显示的设备412仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,设备412以通用计算设备的形式表现。设备412的组件可以包括但不限于:一个或者多个处理器或者处理器416,存储装置428,用于存储一个或多个程序,连接不同系统组件(包括存储装置428和处理器416)的总线418。当所述一个或多个程序被所述一个或多个处理器416执行,使得所述一个或多个处理器416实现本发明任意实施例所述的性能分析方法。
总线418表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
设备412典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备412访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置428可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)430和/或高速缓存存储器432。设备412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线418相连。存储器428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块442的程序/实用工具440,可以存储在例如存储器428中,这样的程序模块442包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块442通常执行本发明所描述的实施例中的功能和/或方法。
设备412也可以与一个或多个外部设备414(例如键盘、指向设备、显示器424等)通信,还可与一个或者多个使得用户能与该设备412交互的设备通信,和/或与使得该设备412能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口422进行。并且,设备412还可以通过网络适配器420与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器420通过总线418与设备412的其它模块通信。应当明白,尽管图中未示出,可以结合设备412使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
处理器416通过运行存储在存储装置428中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的性能分析方法。
另外,本发明实施例还提供了一种包含计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行一种性能分析方法,该方法包括:对目标芯片中的多个性能计数器的工作参数进行配置,其中,多个性能计数器中的至少两个性能计数器具有级联关系,且后级性能计数器的计数开始时机和/或计数结束时机由关联的前级性能计数器的计数状态确定;通过多个性能计数器对所述目标芯片的多个待统计事件进行统计,得到计数数据;获取至少一个性能计数器的计数数据,并根据所述计数数据对所述目标芯片的性能进行分析。
可选的,该计算机可执行指令在由计算机处理器执行时还可以用于执行本发明任意实施例所提供的性能分析方法的技术方案。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读存储介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读存储介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。