5性能基准程序测试方法
在计算机设计中用到的性能基准程序,是以单个某一领域典型的一个计算任务或者一组计算任务采用某种语言编写的程序的形式出现,它可以用来度量计算机系统或构件性能的在某一领域的典型计算性能。用来进行性能评测的基准程序,可以称为工作负载。在基准程序中,必须明确规定所选用的基准程序及其特性、运行方式,并规定评估指标体系。一般需要重复多次运行基准程序,对获取的性能指标进行统计分析后,才能获得有意义的评测结果。
性能基准程序评价法是采用软件的方法评测系统的性能,其较高的灵活性、较低成本加上易于在线实现的特性,使这一方法成为普遍流行的评测方法。但是通过软件得到的测量结果精度较低,并且执行基准程序会影响系统的性能,进而影响结果的可靠性。基于软件任务的软件方法,进行测试时,不可避免地占用到系统上的有限资源,所以干扰度大、精度低、分辨率低,但是同时,具有灵活性高、成本低、安装使用方便的特点。这一方法,不适用于测量精度要求很高的系统参数。在构建测量工具环境时,应发挥软件测量的优势,注重于功能的测试,考虑选用实际的应用程序或与它们功能相同的专用测试程序。这样,可以弥补硬件方法所不能解决的问题缺点。
性能基准程序测试系统性能的常见方法有:时钟频率、指令执行速度、等效指令速度方法、核心程序法、综合程序法、应用程序法等。时钟频率、指令执行速度、等效指令速度法属于计算机发展初期阶段常用的手段,随着计算机系统复杂性的提高,这几类方法不能反映系统的整体性能;核心程序法、综合程序法占用内存空间较小,在有Cache的系统中只能测量系统的CPIJ性能。
用于计算机性能评测的基准程序法可以分为两种:测量系统级参数(如响应时间、上下文切换时间等)的微观基准程序,以计算任务提供的工作负载、通过工作负载的运行得到待测系统宏观方面参数(如任务执行时间)的宏观基准程序。以被测试对象来对基准程序分类,经常把性能基准程序分为通用性能基准程序与实时性能基准程序,通用性基准程序针对一般的计算机系统,实时性能基准程序针对实时系统,测量系统的实时性能。
从系统角度看,一个嵌入式系统的主要构件是微处理机、操作系统和应用软件(包括开发工具)。这样,嵌入式系统的性能基准程序可分为如下3类:
(1)面向微处理机的基准程序,主要是为了帮助设计人员合理地选择嵌入式微控制器、通用微处理机或DSP;
(2)面向操作系统的基准程序,帮助设计人员了解操作系统的量化性能指标;
(3)面向专门应用的基准程序,帮助设计人员确定最终目标系统的性能。在嵌入式系统中,由于面向微处理机的基准程序和面向操作系统的基准程序极大地依赖于应用领域,因此,面向专门应用的基准程序相对来讲用的就比较少。这一方面,在嵌入式系统的应用与设计越来越成熟的情况下,会在不久的将来有所改变。
5.1通用性能基准程序
5.1.1 SPEC
SPEC(the Standard Performance Evaluation Corporation)是为了建立、维护并许可一组被标准化的相关的性能基准程序的非盈利性组织,该组性能基准程序主要用于评测最新的高性能计算机,以对VAX11/780机的测试结果作为基数,其他计算机的测试结果以相对于这个基数的比率来表示。SPEC性能基准程序分为CPU、高性能计算、图形应用、Java客户/服务器、邮件服务器、网络文件系统、网站服务器几大类。
CPU2000是SPEC中测量CPU功能的最新版性能基准程序组,目的是为不同计算机系统计算密集型的工作负载提供性能评估的测量工具,SPEC CPU 2000包含2组性能基准程序:CINT2000测量比较计算密集型定点运算,CFP2000测量比较计算密集型浮点运算。最新版本为CPU2000 V1.3。CPU2000为被测系统提供性能参数,主要测量系统的处理器、内存以及编译器性能。
5.1.2 TPC
TPC(Transaction Processing Council)成立于1988年,已有40多个成员,TPC系列基准是现在流行的商业基准组,主要服务器和数据库企业都派代表加入了这一组织,用于评测计算机的事务处理、数据库处理、企业管理与决策支持等方面的性能。TPC不给出基准程序的代码,而只给出基准程序的标准规范(Standard Specification)。任何厂家或其他测试者都可以根据规范,最优地构造出自己的系统(测试平台和测试程序)。1989年以来相继发表的TPC基准测试程序包括TPC-A,TPC-B,TPC-C,TPC-D,TPC-W,TPC-R和TPC-H等。其中TPC-A用于在线事务处理下更新密集的数据库环境下的性能测试,TPC-B用于数据库系统及运行它的操作系统的核心性能测试,TPC-C则用于在线事务处理测试。有2种评价指标:吞吐率(Throughput,tpmC)、性价比(Price/Perform-ance,Price/tpmC)。tpmC定义:TPC-C的吞吐量,按有效TPC-C配置期间每分钟处理的平均交易次数测量,至少要运行12 min。TPC-D用于决策支持系统测试,TPC-H是基于TPC-D基础上决策支持基准测试,TPC-W是用于电子商务应用软件测试。
5.1.3 Whetstone
它是用FORTRAN语言编写的综合性测试程序,主要包括浮点运算、整数算术运算、功能调用、数组变址、条件转移、超越函数,测试结果用单位Kwips表示,1Kwips表示机器每秒钟能执行1 000条Whetstone指令。在实时性能基准程序Hartstone中被调用。
5.1.4 Lmbench
Lmbench性能基准程序通过运行大量的程序,测试大多数公认的有可能成为性能瓶颈的重要参数,这些参数通过几组微观性能基准程序加以识别、分辨,而且是可重现的。Lmbench中主要测量的参数是处理器、内存、网络、文件系统与硬盘之间的系统延时与数据通路带宽。Lmbench仅测量处理器、内存、网络、文件系统与硬盘之间传送数据的能力,清楚地描述时间延时与数据通路带宽方面的各种参数,Lmbench中的各个性能基准程序组作为测量系统性能的补充常用于测量系统相应的延时与带宽。
5.2嵌入式系统设计中的实时性能测试基准程序
5.2.1 Rhealstone
Rhealstone性能基准程序是一组由6个C语言程序组成的程序集,通过这6个程序测量实时操作系统的7个微观参数:上下文切换、抢占时间、中断延迟、信号量混洗时间、死锁解除时间、信息传递延迟、数据报吞吐时间。Rhealstone性能基准程序有2个缺点,一是它测量的是平均时间,而不是最坏值;二是其最后的结论是加权平均值,但没有给出确定权值的依据。
5.2.2 EEMBC
EEMBC(Embedded Microprocessor BenchmarkConsortiurn)性能基准程序采用具有代表性的真实应用中的基本算法与功能函数,目的是为不同嵌入式计算机提供评价性能的参数。最新的EEMBC性能基准程序涵盖7类应用领域:电信、电子产品、网络、办公自动化、自动化与工业控制、数字娱乐、车载系统与Java,后两类是新加入的。EEMBC性能基准程序属于商用性能基准程序,参照EEMBC的设计思路,源代码公开的Mibench分为6类,较多的用于学术研究领域。
5.2.3 Hartstone
Hartstone性能基准程序由美国Carnegie Mellon大学用Ada语言编写,是依据需求构成的一组合成应用,选用Whetstone性能基准程序作为合成工作负载,目的是测量硬实时系统。Hartstone性能基准程序需要不同测试序列,每个测试序列中的测试结果只有2种情况:满足或者不满足时间限制。若任一个程序不满足时限,那么测试结论就是“不通过”。共有5种测试序列:任务周期有规律的周期性任务、任务周期无规律的周期性任务、任务周期有规律但非周期性处理的周期性任务、任务周期有规律有同步的周期性任务、任务周期有规律有同步但非周期性处理的周期性任务。
现有的性能基准程序从构建方法上来看,有的通过应用类别选取典型应用构建工作负载(如SPEC,EEMBC,Mibench),这类性能基准程序可进行功能测试,也可根据系统表现计算系统的性能,该类性能基准程序属于宏观性能基准程序,随着应用领域的增多,需要不断扩充;有的通过测量影响系统性能的重要参数(如Rhealstone,Lanbench等),该类性能基准程序属于微观性能基准程序,但是现阶段影响系统性能的重要参数数量多,相互影响的程度,对系统性能影响的程度,很难给出量化的指标,所以该类性能基准程序很难对测量结果给出合理的解释;有的针对典型应用,不仅选用典型的工作负载还是用根据程序被调用的频度,模拟真实的工作负载,(如TPC,Hartstone等),该类性能基准程序能够从宏观上观察系统在模拟工作负载下的表现,具有较高的实用价值,构建该类性能基准程序的难点在于如何真实地反应系统的实际工作负载。
5.3嵌入式系统的系统级高层次设计测试基准程序
随着电子系统设计的自动化程度提高,应对嵌入式系统设计复杂性增加,并加快系统设计的速度,采用一系列的威廉希尔官方网站
,如基于IP复用的威廉希尔官方网站
、软硬件协同威廉希尔官方网站
、高层次的系统级建模与威廉希尔官方网站
等。随着嵌入式计算机的设计进入到SoC的设计时代,将一个嵌入式系统的软件、硬件子系统在系统级的体系结构优化、划分后,使用硬件描述语言和软件开发语言分别设计出嵌入式系统的硬件组成部分和软件组成部分。嵌入式计算机设计到了SoC设计时,同时意味着嵌入式计算机的设计进入到了系统级的设计时代。对于SoC这种系统级的嵌入式系统设计,涉及到系统软/硬件结构组成结构的优化、系统在总体设计体系结构上的优化,在不同设计目标(成本、面积、功耗、性能等)方面的总体折中平衡。在系统级设计的早期阶段,也出现了一些相应的测试基准程序,以辅助系统设计在系统级能确定出一个相对较优的系统结构。
E3S就是Princeton大学的CAD研究项目中用于进行嵌入式系统级设计过程中,进行系统级综合(System Level Synthesis)的设计测试基准程序。E3S,依据嵌入式微处理器测试基准(Embedded Microprocessor Benchmark Consortium,EEMBC)中对嵌入式微处理器和用来测试的计算任务信息的测试基准程序而设计的用于系统级综合设计测试基准。它主要用于在嵌入式计算机系统的系统级设计中,对系统级综合设计所涉及到的3个过程:系统级任务的分配(Allocation)、指派(Assignment)、调度(Scheduling),提供测试的基准。目前的最新版本是V0.9版,可以对17种微处理器,像AMD ElanSC520,Analog Devices 21065L,Motorola MPC555,TI TMS320C6203等进行测试。测试的数据,像处理器的性能以47个典型计算任务的执行时间度量,功耗数据则参照处理器的设计文档(Datasheets),另外,提供给系统级综合工具的附加测试信息,如硅片尺寸以及其他用于系统级综合评估(Estimated)的数据和价格(Prices),则通过咨询多个处理器提供商取得。另外,E3S包含着相应的系统级通信模型,用于系统级设计过程中的测试基准程序对多种不同总线,如CAN,IEEE1394,PCI,USB 2.0,VME等进行建模和评测。
6结 语
随着嵌入式计算机威廉希尔官方网站
的发展,可复用IP核与基于平台的威廉希尔官方网站
应用于当今的嵌入式计算机设计中,需要在早期的设计阶段就要对嵌入式计算机的硬件子系统、软件子系统与软硬件集成后的系统原型进行早期的性能评价,目前在国外,已经应用于早期设计阶段的系统级性能评测技术与方法出现。测试的技术与威廉希尔官方网站
的成熟度同比发展,随着威廉希尔官方网站
的发展,相应的测试技术也需要有相应成熟的测试例程、特定应用领域的测试基准程序来作测试评测的标准。可以预见,在未来几年里,测试基准程序和针对嵌入式计算机设计的性能测试基准程序,将会在系统设计过程中的更早阶段——系统级构架优化与性能测度方面,取得很大的发展。
5性能基准程序测试方法
在计算机设计中用到的性能基准程序,是以单个某一领域典型的一个计算任务或者一组计算任务采用某种语言编写的程序的形式出现,它可以用来度量计算机系统或构件性能的在某一领域的典型计算性能。用来进行性能评测的基准程序,可以称为工作负载。在基准程序中,必须明确规定所选用的基准程序及其特性、运行方式,并规定评估指标体系。一般需要重复多次运行基准程序,对获取的性能指标进行统计分析后,才能获得有意义的评测结果。
性能基准程序评价法是采用软件的方法评测系统的性能,其较高的灵活性、较低成本加上易于在线实现的特性,使这一方法成为普遍流行的评测方法。但是通过软件得到的测量结果精度较低,并且执行基准程序会影响系统的性能,进而影响结果的可靠性。基于软件任务的软件方法,进行测试时,不可避免地占用到系统上的有限资源,所以干扰度大、精度低、分辨率低,但是同时,具有灵活性高、成本低、安装使用方便的特点。这一方法,不适用于测量精度要求很高的系统参数。在构建测量工具环境时,应发挥软件测量的优势,注重于功能的测试,考虑选用实际的应用程序或与它们功能相同的专用测试程序。这样,可以弥补硬件方法所不能解决的问题缺点。
性能基准程序测试系统性能的常见方法有:时钟频率、指令执行速度、等效指令速度方法、核心程序法、综合程序法、应用程序法等。时钟频率、指令执行速度、等效指令速度法属于计算机发展初期阶段常用的手段,随着计算机系统复杂性的提高,这几类方法不能反映系统的整体性能;核心程序法、综合程序法占用内存空间较小,在有Cache的系统中只能测量系统的CPIJ性能。
用于计算机性能评测的基准程序法可以分为两种:测量系统级参数(如响应时间、上下文切换时间等)的微观基准程序,以计算任务提供的工作负载、通过工作负载的运行得到待测系统宏观方面参数(如任务执行时间)的宏观基准程序。以被测试对象来对基准程序分类,经常把性能基准程序分为通用性能基准程序与实时性能基准程序,通用性基准程序针对一般的计算机系统,实时性能基准程序针对实时系统,测量系统的实时性能。
从系统角度看,一个嵌入式系统的主要构件是微处理机、操作系统和应用软件(包括开发工具)。这样,嵌入式系统的性能基准程序可分为如下3类:
(1)面向微处理机的基准程序,主要是为了帮助设计人员合理地选择嵌入式微控制器、通用微处理机或DSP;
(2)面向操作系统的基准程序,帮助设计人员了解操作系统的量化性能指标;
(3)面向专门应用的基准程序,帮助设计人员确定最终目标系统的性能。在嵌入式系统中,由于面向微处理机的基准程序和面向操作系统的基准程序极大地依赖于应用领域,因此,面向专门应用的基准程序相对来讲用的就比较少。这一方面,在嵌入式系统的应用与设计越来越成熟的情况下,会在不久的将来有所改变。
5.1通用性能基准程序
5.1.1 SPEC
SPEC(the Standard Performance Evaluation Corporation)是为了建立、维护并许可一组被标准化的相关的性能基准程序的非盈利性组织,该组性能基准程序主要用于评测最新的高性能计算机,以对VAX11/780机的测试结果作为基数,其他计算机的测试结果以相对于这个基数的比率来表示。SPEC性能基准程序分为CPU、高性能计算、图形应用、Java客户/服务器、邮件服务器、网络文件系统、网站服务器几大类。
CPU2000是SPEC中测量CPU功能的最新版性能基准程序组,目的是为不同计算机系统计算密集型的工作负载提供性能评估的测量工具,SPEC CPU 2000包含2组性能基准程序:CINT2000测量比较计算密集型定点运算,CFP2000测量比较计算密集型浮点运算。最新版本为CPU2000 V1.3。CPU2000为被测系统提供性能参数,主要测量系统的处理器、内存以及编译器性能。
5.1.2 TPC
TPC(Transaction Processing Council)成立于1988年,已有40多个成员,TPC系列基准是现在流行的商业基准组,主要服务器和数据库企业都派代表加入了这一组织,用于评测计算机的事务处理、数据库处理、企业管理与决策支持等方面的性能。TPC不给出基准程序的代码,而只给出基准程序的标准规范(Standard Specification)。任何厂家或其他测试者都可以根据规范,最优地构造出自己的系统(测试平台和测试程序)。1989年以来相继发表的TPC基准测试程序包括TPC-A,TPC-B,TPC-C,TPC-D,TPC-W,TPC-R和TPC-H等。其中TPC-A用于在线事务处理下更新密集的数据库环境下的性能测试,TPC-B用于数据库系统及运行它的操作系统的核心性能测试,TPC-C则用于在线事务处理测试。有2种评价指标:吞吐率(Throughput,tpmC)、性价比(Price/Perform-ance,Price/tpmC)。tpmC定义:TPC-C的吞吐量,按有效TPC-C配置期间每分钟处理的平均交易次数测量,至少要运行12 min。TPC-D用于决策支持系统测试,TPC-H是基于TPC-D基础上决策支持基准测试,TPC-W是用于电子商务应用软件测试。
5.1.3 Whetstone
它是用FORTRAN语言编写的综合性测试程序,主要包括浮点运算、整数算术运算、功能调用、数组变址、条件转移、超越函数,测试结果用单位Kwips表示,1Kwips表示机器每秒钟能执行1 000条Whetstone指令。在实时性能基准程序Hartstone中被调用。
5.1.4 Lmbench
Lmbench性能基准程序通过运行大量的程序,测试大多数公认的有可能成为性能瓶颈的重要参数,这些参数通过几组微观性能基准程序加以识别、分辨,而且是可重现的。Lmbench中主要测量的参数是处理器、内存、网络、文件系统与硬盘之间的系统延时与数据通路带宽。Lmbench仅测量处理器、内存、网络、文件系统与硬盘之间传送数据的能力,清楚地描述时间延时与数据通路带宽方面的各种参数,Lmbench中的各个性能基准程序组作为测量系统性能的补充常用于测量系统相应的延时与带宽。
5.2嵌入式系统设计中的实时性能测试基准程序
5.2.1 Rhealstone
Rhealstone性能基准程序是一组由6个C语言程序组成的程序集,通过这6个程序测量实时操作系统的7个微观参数:上下文切换、抢占时间、中断延迟、信号量混洗时间、死锁解除时间、信息传递延迟、数据报吞吐时间。Rhealstone性能基准程序有2个缺点,一是它测量的是平均时间,而不是最坏值;二是其最后的结论是加权平均值,但没有给出确定权值的依据。
5.2.2 EEMBC
EEMBC(Embedded Microprocessor BenchmarkConsortiurn)性能基准程序采用具有代表性的真实应用中的基本算法与功能函数,目的是为不同嵌入式计算机提供评价性能的参数。最新的EEMBC性能基准程序涵盖7类应用领域:电信、电子产品、网络、办公自动化、自动化与工业控制、数字娱乐、车载系统与Java,后两类是新加入的。EEMBC性能基准程序属于商用性能基准程序,参照EEMBC的设计思路,源代码公开的Mibench分为6类,较多的用于学术研究领域。
5.2.3 Hartstone
Hartstone性能基准程序由美国Carnegie Mellon大学用Ada语言编写,是依据需求构成的一组合成应用,选用Whetstone性能基准程序作为合成工作负载,目的是测量硬实时系统。Hartstone性能基准程序需要不同测试序列,每个测试序列中的测试结果只有2种情况:满足或者不满足时间限制。若任一个程序不满足时限,那么测试结论就是“不通过”。共有5种测试序列:任务周期有规律的周期性任务、任务周期无规律的周期性任务、任务周期有规律但非周期性处理的周期性任务、任务周期有规律有同步的周期性任务、任务周期有规律有同步但非周期性处理的周期性任务。
现有的性能基准程序从构建方法上来看,有的通过应用类别选取典型应用构建工作负载(如SPEC,EEMBC,Mibench),这类性能基准程序可进行功能测试,也可根据系统表现计算系统的性能,该类性能基准程序属于宏观性能基准程序,随着应用领域的增多,需要不断扩充;有的通过测量影响系统性能的重要参数(如Rhealstone,Lanbench等),该类性能基准程序属于微观性能基准程序,但是现阶段影响系统性能的重要参数数量多,相互影响的程度,对系统性能影响的程度,很难给出量化的指标,所以该类性能基准程序很难对测量结果给出合理的解释;有的针对典型应用,不仅选用典型的工作负载还是用根据程序被调用的频度,模拟真实的工作负载,(如TPC,Hartstone等),该类性能基准程序能够从宏观上观察系统在模拟工作负载下的表现,具有较高的实用价值,构建该类性能基准程序的难点在于如何真实地反应系统的实际工作负载。
5.3嵌入式系统的系统级高层次设计测试基准程序
随着电子系统设计的自动化程度提高,应对嵌入式系统设计复杂性增加,并加快系统设计的速度,采用一系列的威廉希尔官方网站
,如基于IP复用的威廉希尔官方网站
、软硬件协同威廉希尔官方网站
、高层次的系统级建模与威廉希尔官方网站
等。随着嵌入式计算机的设计进入到SoC的设计时代,将一个嵌入式系统的软件、硬件子系统在系统级的体系结构优化、划分后,使用硬件描述语言和软件开发语言分别设计出嵌入式系统的硬件组成部分和软件组成部分。嵌入式计算机设计到了SoC设计时,同时意味着嵌入式计算机的设计进入到了系统级的设计时代。对于SoC这种系统级的嵌入式系统设计,涉及到系统软/硬件结构组成结构的优化、系统在总体设计体系结构上的优化,在不同设计目标(成本、面积、功耗、性能等)方面的总体折中平衡。在系统级设计的早期阶段,也出现了一些相应的测试基准程序,以辅助系统设计在系统级能确定出一个相对较优的系统结构。
E3S就是Princeton大学的CAD研究项目中用于进行嵌入式系统级设计过程中,进行系统级综合(System Level Synthesis)的设计测试基准程序。E3S,依据嵌入式微处理器测试基准(Embedded Microprocessor Benchmark Consortium,EEMBC)中对嵌入式微处理器和用来测试的计算任务信息的测试基准程序而设计的用于系统级综合设计测试基准。它主要用于在嵌入式计算机系统的系统级设计中,对系统级综合设计所涉及到的3个过程:系统级任务的分配(Allocation)、指派(Assignment)、调度(Scheduling),提供测试的基准。目前的最新版本是V0.9版,可以对17种微处理器,像AMD ElanSC520,Analog Devices 21065L,Motorola MPC555,TI TMS320C6203等进行测试。测试的数据,像处理器的性能以47个典型计算任务的执行时间度量,功耗数据则参照处理器的设计文档(Datasheets),另外,提供给系统级综合工具的附加测试信息,如硅片尺寸以及其他用于系统级综合评估(Estimated)的数据和价格(Prices),则通过咨询多个处理器提供商取得。另外,E3S包含着相应的系统级通信模型,用于系统级设计过程中的测试基准程序对多种不同总线,如CAN,IEEE1394,PCI,USB 2.0,VME等进行建模和评测。
6结 语
随着嵌入式计算机威廉希尔官方网站
的发展,可复用IP核与基于平台的威廉希尔官方网站
应用于当今的嵌入式计算机设计中,需要在早期的设计阶段就要对嵌入式计算机的硬件子系统、软件子系统与软硬件集成后的系统原型进行早期的性能评价,目前在国外,已经应用于早期设计阶段的系统级性能评测技术与方法出现。测试的技术与威廉希尔官方网站
的成熟度同比发展,随着威廉希尔官方网站
的发展,相应的测试技术也需要有相应成熟的测试例程、特定应用领域的测试基准程序来作测试评测的标准。可以预见,在未来几年里,测试基准程序和针对嵌入式计算机设计的性能测试基准程序,将会在系统设计过程中的更早阶段——系统级构架优化与性能测度方面,取得很大的发展。
举报