CPU性能指标简览

news2024/11/24 13:25:51

作为计算机的运算核心和控制核心,CPU(Central Processing Unit)由运算器、控制器、寄存器和实现其之间联系的数据、控制及状态的总线构成,决定着计算机运算性能强弱。作为信息技术产业的核心基础元器件,CPU的运作可分为四个阶段:提取(Fetch)、译码(Decode)、执行(Execute)和回写(Writeback)。

用一句话来概括CPU的运作原理:CPU从存储器或高速缓冲存储器中取出指令,将指令放入寄存器,并对指令译码、执行指令。

在嵌入式系统行业,用于评价CPU性能指标的标准主要有:

  • MIPS(Million Instructions Per Second)即每秒能够执行的百万级机器语言指令数,用于计算系统的秒级处理能力,是衡量CPU速度的一个指标。

  • DMIPS(Dhrystone MIPS)指CPU运行整数运算(Dhrystone)时所表现的相对性能,只适用于评估标量机(对应:向量机)。

  • FLOPS(Floating-point Operations Per Second)表示CPU每秒执行的浮点运算次数,主要用于衡量计算机的浮点运算能力。

  • CoreMark:以每秒迭代次数作为性能评价。

MIPS标准

1970年代,小型电脑的性能是通过与VAX MIPS相比较来评估的,指比较与VAX 11/780(市场公认的1 MIPS机器)运行同一工作的运行时间。

▲ 已经46岁的VAX 11/780

MIPS无法在不同的处理器架构下进行比较。由于不是每一条机械指令都能在单周期计算完成,所以计算MIPS的时候会引入一个CPI(Clock cycle per intruction,每条指令的平均时钟周期数)值。公式如下:

  • MIPS=指令数/(执行时间*1000000)

  • MIPS=主频/(CPI*1000000)

DMIPS标准

在一定意义上,DMIPS也是以VAX 11/780处理器作为标称值的。

这里要先引入当今最有代表性的通用跑分处理程序之一,Dhrystone。Dhrystone是由Reinhold P. Weicker在1984年提出来的一个基准测试程序,其主要目的是测试处理器整数运算和逻辑运算的性能。由于VAX 11/780处理器每秒能够循环Dhrystone程序1757次,因此其他处理器每秒钟执行Dhrystone程序的循环次数除以1757即为其 DMIPS值。

在此基础上,除去工艺、功耗等可能的影响因素,将处理器的DMIPS值除以其频率,便可得到更能直观体现处理器微架构设计本身性能的DMIPS/MHz。

MIPS和DMIPS的区别:

  • MIPS反映的能力——每秒钟能够执行的指令集数量,这个能力由CPU的架构、内存的访问速度等硬件特性决定;

  • DMIPS反映的能力——每秒钟能够实现的工作数量。

*按字面意思进行理解,MIPS与DMIPS之间似乎存在转换公式,但经查证,两者完全是从不同角度来评估CPU性能的,并无直接转换关系。

*“Dhrystone”名字的由来是相对更早出现的另一个测试CPU浮点计算性能的工具“Wetstone”。“Wetstone”本意为“湿石头”,Dhrystone则是干石头,用于测试CPU的整数计算性能。

FLOPS标准

FLOPS常被用来估算电脑的执行效能,尤其是在使用到大量浮点运算的科学计算领域中。“浮点运算”由于涵盖所有涉及小数的运算,相较于整数运算会更花时间。当前大部分的处理器中都会配备专用于处理浮点运算的“浮点运算器”(Float Point Unit,FPU),因此FLOPS标准所测量的实际上是FPU执行速度。

CoreMark标准

CoreMark可以理解为与Dhrystone类似的综合处理器跑分程序,由非营利组织嵌入式微处理器基准评测协会EEMBC的Shay Gla-On于2009年提出,其主要目标是测试处理器核心性能。

*EEMBC:Embedded Micro-processor Benchmark Consortium

CoreMark程序使用C语言写成,包含如下的运算法则:列举(寻找并排序)、数学矩阵操作(普通矩阵运算)、状态机(用来确定输入流中是否包含有效数字)和CRC(Cyclic Redundancy Check,循环冗余校验)。CoreMark具有特定的运行和报告规则,从而可以避免由于所使用的编译库不同而导致的测试结果难以比较。因此CoreMark标准被认为比Dhrystone标准更有实际价值。

CoreMark标准以在某配置参数组合下,单位时间内CoreMark程序的运行次数作为度量标准,其指标单位为CoreMark/MHz。CoreMark数字越高,意味着性能更高。

▲ARM处理器官方性能对比:Cortex-M部分系列

参考文献

[1]顾梦杰. 基于RISC-V指令集架构的通用微控制器设计[D].东华大学,2022.DOI:10.27012/d.cnki.gdhuu.2022.000609.

[2]从性能指标角度看ARM Cortex-M各处理器区别,https://mp.weixin.qq.com/s/o1amLyzc8ZO8l59N5F2vyw

[3]性能评估单位说明,https://zhuanlan.zhihu.com/p/571545878

[4]科普总结:Flops、FLOPS、GFLOPS,https://imgtec.eetrend.com/blog/2020/100048896.html

[5]Classic Benchmarks,http://www.roylongbottom.org.uk/classic.htm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/749370.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3-40V输入,2.7V启动,20A电流,PWM\模拟信号调光

应用说明: Hi600X 是一系列外围电路简洁的宽调光比升压恒流驱动器,适用于 3-40V 输入电压范围的 LED 照明领域。 Hi600X 系列芯片,2.7V 启动电压,工作电压范围 5-40V,VIFB反馈电压 0.2V,提高整体转换效率。…

JVM的类加载机制和垃圾回收机制

目录 类加载机制类加载机制的步骤加载验证准备解析初始化 双亲委派模型工作原理双亲委派模型的优点 垃圾回收机制死亡对象的判断可达性分析算法可达性分析算法的缺点引用计数算法循环引用问题 垃圾回收算法标记-清除算法复制算法标记-整理算法分代算法 类加载机制 对于任意一个…

使用 vector + 递归 解决问题

class Solution {const char* To[10] { "","", "abc", "def", "ghi","jkl", "mno", "pqrs","tuv", "wxyz" };//常量字符串初始化string 注意此非定义(缺省值)--实例化…

收好这5个SVG编辑器,轻松实现高效创作

随着设计工作的不断发展,对SVG图形的需求也逐渐增加,SVG编辑器就随之诞生。可市面上的SVG编辑质量参差不齐,设计师无法第一时间找到适合自己的,于是本文就收集整理了5款相对来说比较好用的SVG编辑器为设计师们推荐,一起…

java项目之个人网站(ssm+mysql+jsp)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的个人网站。技术交流和部署相关看文章末尾! 开发环境: 后端: 开发语言:Java 框架&#xf…

golang macaron静态资源访问配置

1、本地文件目录如下: 2、macaron配置 package mainimport ("log""net/http""gopkg.in/macaron.v1" )func myHandler(ctx *macaron.Context) string {return "the request path is: " ctx.Req.RequestURI }func main() …

基于linux下的高并发服务器开发(第一章)- Makefile(2)1.11

03 / 工作原理 ◼ 命令在执行之前,需要先检查规则中的依赖是否存在  如果存在,执行命令  如果不存在,向下检查其它的规则,检查有没有一个规则是用来生成这个依赖的,如 果找到了,则执行该规则中…

PowerShell 报错:因为在此系统上禁止运行脚本。有关详细信息

PowerShell 报错:因为在此系统上禁止运行脚本。有关详细信息 Import-Module : 无法加载文件 D:\\Documents\WindowsPowerShell\Modules\posh-git\1.1.0\posh-git.psm1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.…

k8s 查看程序日志输出

总是和k8s大交道,把相关的命令也学习一下 查看程序日志输出: kubectl logs -f ce202307130100024-gy-decision-xkygl-64f795ff7b-mtr67 --tail1000 不重定向的情况下,可以把多进程下的日志都输出出来。挺好用的 kubectl logs -f pod --tailxx…

稳定币成关键指标,DeFi蓝筹拥抱RWA!下轮牛市会由什么叙事掀起?

从上海升级、BRC20、Meme 乃至老调重弹的减半叙事,每一次热炒都会激起新的市场关注。上半年,稳定币市场经历了一波格局调整,不少 DeFi 项目也出现了一些引人注目的叙事。下轮牛市,会是新一轮“DeFi盛夏”吗? 作为一个半…

如何编写测试用例

用例的五个构成元素: 下面从这五个元素的角度,去剖析如何编写测试用例 用例标题 用例标题就是测试点名称。用例标题是用来说明这个用例的测试目的的,好的用例标题是别人看完你这个用例标题后就知道你这个用例是测什么的。但并不是标题越详…

(自动机)+(卡常)+(前缀和)

edu151 C. Strong Password 样例&#xff1a; s123412341234 m2 s11234 s24321nt[i][j]:有了j以后找下一个数的位置的坐标。void solve() {cin>>s;ll lens.size();vector<array<ll,10>>nt(len1);nt[len].fill(len1);for(int ilen-1;i>0;i--){nt[i]nt[i1]…

js每隔两条或者几条数据,则就插入(新增)一条数据

js每隔两条(自定义条数)数据&#xff0c;则添加一个空的 item&#xff08;这个也可以新增你指定的数据&#xff09;,但是最后一条则不需要新增条数 let temp [] // 你需要处理的原数据 // 新的数组 const newData []for (let i 0; i < temp.length; i) {// 将原始数据添…

Vue3 使用存储库Pinia(state)

一、创建state import { defineStore } from "pinia"; export const useStore defineStore(main, {state() {return {name: 张三,age:26 }} })二、引用store.js import {useStore} from "../store/store" // 引入store const store useStore()三、html…

Flutter底部导航BottomNavigationBar

Flutter底部导航BottomNavigationBar 主要代码&#xff1a; bottomNavigationBar: BottomNavigationBar(//选中菜单颜色fixedColor: Colors.red,//图标大小&#xff0c;默认24.0iconSize: 30,//第几个菜单选中currentIndex: currentIndex,//当item数量大于3个时需要设置type属…

线性回归模型(Linear regression)

- 回归问题的标记如下 【假设可以写成h&#xff0c;也可以写成函数f】 - 工作方式 这就是一个监督学习算法的工作方式&#xff0c;我们可以看到这里有我们的训练集&#xff08;房屋平米数x&#xff0c;房屋价格y&#xff09; &#xff0c;我们把它喂给我们的学习算法&#xf…

css3提供的网页布局

css3提供的网页布局 弹性盒子模型&#xff08;flex box&#xff09;&#xff1a; 设置成弹性盒子 默认横着排放&#xff08;div也是&#xff09; 当子盒子给的宽度过大&#xff0c;总的子盒子宽度超过父级盒子&#xff0c;会自动适配&#xff0c;计算整个盒子父级的大小&#…

MMTracking目标跟踪环境搭建(一)

1、环境搭建 创建conda虚拟环境并激活。 conda create -n mmtrack python3.8 -y conda activate mmtrack 按照官方说明安装 PyTorch 和 torchvision 可以通过指定版本号切换到其他版本。 #如果网不好&#xff0c;可以这样安装 pip3 install torch1.8.2cu102 torchvision0.9…

Vue3 使用存储库Pinia(创建)

前言 使用vue编写项目时&#xff0c;经常用到组件传值&#xff0c;比如父传子、子传父、跨组件传值等&#xff0c;如果项目体量不大的情况这种方式完全够用&#xff0c;但如果项目大&#xff0c;内容丰富&#xff0c;那我们就需要用到状态管理工具——Pinia 官方文档 一、什么…

python优化库scipy.optimize测试(notebook版本)

代码链接notebook 数据准备 使用一个混合高斯分布作为测试&#xff08;两个均值不同的高斯分布相加&#xff09;&#xff0c;存在两个极值点(-1,-1)和(1,1) # 二维正态分布生成函数 def gaussian2d(x, y, x_mean, y_mean, x_std, y_std):return np.exp(-((x - x_mean) ** 2 …