引言
自主研发高性能处理器芯片对于经济和国家安全方面具有重要意义。龙芯系列处理器的成功研制填补了我国自主研发高性能通用处理器的空白,龙芯2号采用先进的结构设计技术,已跻身于世界一流处理器的行列。SPEC CPU 2000是SPEC(标准性能评测组织)开发的专门用于评价CPU(中央处理器)性能的一套基准程序,在CPU性能测试领域具有很大的权威性。
当前,在许多的实际应用中,需要对处理器的性能进行评估,以确定处理器是否可以达到应用的要求,这种评估的结果需要客观和准确,这样才具备可信性。当前针对主流的处理器如Intel的X86处理器的测试方法已经有很多,而且这些方法也普遍的经过验证。针对国产龙芯处理器的测试方法还比较的缺乏,因此有必要寻找一种可以客观评价国产处理器的测试方法。
1 龙芯2E结构分析
龙芯系列处理器是中国科学院计算技术研究所研制的高性能通用处理器。
龙芯2E处理器是一款实现64位MIPSⅢ指令集的通用RISC处理器,采用了4发射超标量超流水结构,实现了先进的转移猜测、寄存器重命名、动态调度等乱序执行技术,以及非阻塞的高速缓存和取数操作猜测执行等动态存储访问机制。 欲了解更多信息请登录电子发烧友网(http://www.elecfans.com)
龙芯2E的一级Cache由64 KB的指令Cache和64 KB的数据Cache组成,片上二级Cache大小为512 KB,均采用四路组相联的结构。龙芯2E的基本流水线包括取指、预译码、译码、寄存器重命名、调度、发射、读寄存器、执行、提交等9级。龙芯2E先进的存储系统设计可以有效地提高流水线的效率。
2 SPEC 2000测试程序概述
SPEC CPU 2000是SPEC(标准性能评测组织)开发的专门用于评价CPU(中央处理器)性能的一套基准程序,主要应用于桌面型和服务器型CPU的性能评价,其目的是比较不同类型CPU的整点运算和浮点运算性能。SPEC是由计算机业界几十个芯片厂商、计算机系统厂商、研究团体等构成的非营利组织,其开发的SPEC CPU 2000在CPU的性能评价领域具有很高的权威性。
3 在龙芯2E上使用SPEC 2000进行测试
SPEC 2000由两套基准程序组成,分别测试CPU的整型运算性能和浮点运算性能。目前龙芯平台上运行的操作系统以开源Linux为主,因此SPEC 2000的运行需要GCC和Gfortran编译器的支持。
3.1 SPEC的安装
首先从软件包中解压tar-jxvf SPEC 2000.tar.bz2,进入SPEC 2000根目录运行install.sh进行安装,安装完成后运行./shrc启动SPEC程序,最后敲入命令runspec-V,如能正确显示SPEC工具版本信息,则说明安装成功。
3.2 SPEC的运行
SPEC CPU 2000基准主要由基准程序源文件、脚本管理程序、配置文件以及测试结果文件组成。管理程序中最重要的是runspec脚本管理程序,通过它用户可以编译、运行和维护基准程序。典型的runspec用法是:
runspec-c default.cfg int 其中:default.cfg为配置文件;int则表示运行所有的整型基准程序。
3.3 配置文件
配置文件中包含了许多信息,其中最为重要的是编译基准程序的指令参数,例如编译时所要用到的编译器,编译优化选项等,设置如下:
3.4 MD5码的生成
为了保证测试结果的公正性,测试中采用了数字签名技术。即在编译和运行测试程序时,对测试结果进行校验,从而保证测试结果是从各个基准程序中获得,没有经过人工篡改。运行成功后在配置文件末尾将自动生成以“MD5”开头的一段代码。
3.5 基准程序描述
SPEC2000基准程序存放在/spec2000/benchmark目录中,其中cint2000目录存放了12个整形基准程序,cep2000目录存放了14个浮点基准程序。SPEC2000并没有完全开放其源代码,而是开放了其基准程序的代码,因此运行runspec命令时需要针对基准程序进行编译,而编译规则只能在配置文件中设定。
SPEC 2000中的基准程序都是从实际应用程序中提取出来的,大多由C语言和Fortran语言编写,如表1,表2所示。虽然基准程序的设计来源于真实的应用程序(如gzip和bzip2是Linux系统下的通用压缩程序,gcc是Linux的默认编译器),但考虑到其可移植性以及平台之间的可比较性,基准程序经过了一些改动,与实际的应用程序略有不同,兼顾了真实性与通用性。
3.6 测试结果的生成
SPEC 2000能够生成多种格式的测试结果报表,包括asc,ps,raw,pdf,html等格式,报表所在目录为/spec2000/result。
整形和浮点性能测试结果分别如表3和表4所示。其中Reference TIme表示参考时间,Base RunTIme表示实际运行时间,Base RaTIo表示比值。其综合得分为206和168分,是各项基准程序得分的几何平均值,计算公式如下:
SPECint/fp=GEOMEAN(refTIme/runtime*100)
4 结语
目前,龙芯处理器有三个系列处于并行研发中。龙芯1号处理器系列主要面向嵌入式应用,龙芯2号超标量处理器系列主要面向桌面应用,龙芯3号多核处理器系列主要面向服务器和高性能机应用。随着龙芯各系列处理器的不断研制和发展,如何客观评价CPU的性能也逐渐将成为重要的研究课题。本文以SPEC 2000为例,介绍了在Linux操作系统下对龙芯2E处理器进行性能测试的一套方法,对于通用CPU性能的评价具有一定的现实意义。 欲了解更多信息请登录电子发烧友网(http://www.elecfans.com)
龙芯处理器作为我国自主研发的高性能通用处理器,已渗入到嵌入式领域、桌面应用领域以及高性能服务器领域,必将与Intel、AMD等国际知名CPU生产厂商全面抗衡。因此对CPU性能进行客观、全面的测试不仅可以衡量我国的CPU研制水平,也能够通过测试比较、总结出龙芯的优势和不足。相信随着龙芯平台性能的不断提高和周围软硬件环境的不断完善,龙芯系列处理器的市场竞争力会越来越强,这对于我国形成有自主知识产权的计算机产业具有重要意义。