在了解测试过程之前,先来聊聊cpu测评的左右,cpu测评就是对不同厂商cpu性能的测试工作,通过一些参数来查看cpu好坏。但我这次测试的所有厂商都是armA8系列的cpu,不同的厂商为什么会有差异呢?这就是我要说的要理解ARM只是负责标准的公司,它负责输出一套标准,只负责算术运算单元以及逻辑运算单元的设计,不负责其他外设的设计与实现,说白了就是指负责计算机最核心运算单元,不同系列下的标准不同,比如说指令集多少,是否增加其他指令集等等。而cpu制造商就是根据这个ARM标准来制造cpu,并增加其他外设接口,RAM,NorFlash等,通过设计来实现将cpu的性能最大化,如访问内存速度,IO接口读取速度等等,这些都是cpu生产厂商生产cpu好坏的标准,根据对于cpu支持的io口个数,io性能,制作工艺性能等是存在差异的,所以就出现了都是基于ARMa8系列的cpu但是出现了不同的cpu型号。
接下来就简单介绍如何测试一款cpu
1. 首先就是编译Linux内核,或其他开源操作系统内核。使用指定cpu厂商的交叉编译工具,对于对应的cpu有更好的兼容性,而且虽然ARM是负责制造标准的,如指令集等,但是cpu厂商也是可以优化的,所以不同的厂商可能有不同编译工具。
Linux操作系统的编译过程简单介绍
a) 指定CC编译工具
b) rm –rf build
c) mkdir build
d) make O=xxx(输出目录) –mrproper(清理旧的编译生成的文件及其他配置等文件,)
e) make O=xxxmenuconfig (根据目录下的默认的.config 生成menuconfig配置界面用于指定编译哪些东西,不编译哪些东西等)
f) make O=xxx (根据修改的.config文件生成内核版本,对应的不同arm架构下的 Image.gz)
2. 打包生成可以通过boot启动的操作系统,要增加fs文件系统以及dtb文件(略过)
3. 编译CoreMark工具
a) CoreMark工具介绍
CoreMark是用来衡量嵌入式系统中中心处理单元(CPU,或叫做微控制器MCU)性能的标准。通过一个最终数值进行显示CPU性能
b) 通过交叉编译工具,编译CoreMark即修改makefile文件
c) 执行make,生成coremark.exe
d) 下载到单板上运行,输出报告
例如:
CoreMark 1.0 : 80006.950496 / GCC5.0.1 xxx(这就是所谓的cpu跑分个人理解)
4. 编译LMBench工具
(待完善)