计算机系统结构:CPU性能公式

基础知识

CPU 时间:一个程序在 CPU 上运行的时间。(不包括I/O时间)

主频、时钟频率:CPU 内部主时钟的频率,表示1秒可以完成多少个周期。

例如,主频为 4.1GHz,表示每秒可以完成 4.1*109 个时钟周期。

时钟周期:时钟周期也称为振荡周期,定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。

时钟周期 = 1 / 频率,例如 1/ 4.1*109

CPU 的时钟周期越短,CPU 性能越好。

指令周期:取出并执行一条指令的时间。

程序的时钟周期数

CPU时间 = 执行程序所需的时钟周期数 * 时钟周期时间

公式

指令周期:取出并执行一条指令的时间;

指令周期数CPI:平均每条指令耗费的时钟周期数

CPI = 执行程序所需的时钟周期数 / 所执行的指令条数

上面的公式换位置

执行程序所需要的时钟周期数 = CPI * 所执行的指令条数
CPU时间 / 时钟周期时间 = CPI * 所执行的指令条数
CPU时间 = CPI * 所执行的指令条数 * 时钟周期时间

我们约定 IC :所执行的指令条数,所以

CPU时间 = CPI * IC * 时钟周期时间
CPU时间 = (CPI * IC) / 时钟频率

CPIi :第 i 种指令所需要的时钟周期数;

ICi :在程序运行过程中,第 i 种指令被运行的次数;

i 表示序号。

因为时间上 CPU 指令集指令很多,我们需要求得每条指令的平均耗时和程序使用到的指令、指令执行的次数。

总CPU时间为各个指令的 CPU时间 之和。

CPUi = (CPIi * ICi ) / 时钟频率

所以,公式总结如下

(ICi / IC) 反映了第 i 种指令在程序中所占的比例

例题

各位同学,请看大屏幕:

先求得未改进前的 CPI,目前有 FP指令(25%)、非浮点指令(75%),还知道了各自的 CPI 。

方案一改进后,提示的程度等于 (改进前CPI - 改进后CPI)。

因为本身也可以求得 FPSQR 在整体的比例,所以方案一不需要加入 FR。

看不明白的话,笔者讲解一下。

整体的 CPI 为 2
其中改进前, FPSQR 的 CPI 20*2% = 0.4 ,
其它指令CPI + FRSQR的CPI = 2;其它指令CPI=1.6;
改进后,FPSQR 的 CPI 2*2% = 0.04
提升了 0.36。
改进后的 CPI 需要时间 1.6 + 改进后的FRSQR的CPI = 1.64。

处理器性能优化的策略

影响CPU性能的三个方面:时钟频率、CPI、指令的条数。

减少指令的条数可以使得CPU更加简洁、使用较少的寄存器,系统代码也会别的更加简洁。例如 RISC-V。底层的指令减少,上层例如操作系统、汇编程序需要编写的代码亦会变多。

但是因为各种指令使用到的频率和周期内不同信息的访问次数,设计CPU是要考虑到优化指令的执行速度,优化高频访问的指令,分配更多的资源。例如X86。

【5分钟+】计算机系统结构:CPU性能公式的更多相关文章

  1. linux查看CPU性能及工作状态的指令

    http://www.aikaiyuan.com/9347.html http://blog.csdn.net/jk110333/article/details/8683478 http://www. ...

  2. (转)linux查看CPU性能及工作状态的指令mpstat,vmstat,iostat,sar,top

    衡量CPU性能的指标: 1,用户使用CPU的情况:CPU运行常规用户进程CPU运行niced processCPU运行实时进程 2,系统使用CPU情况:用于I/O管理:中断和驱动用于内存管理:页面交换 ...

  3. CPU性能分析

    CPU性能分析工具 lscpu:查看CPU硬件信息 lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Litt ...

  4. linux查看CPU性能及工作状态的指令mpstat,vmstat,iostat,sar,top

    转载:http://www.cnblogs.com/xianghang123/archive/2011/08/25/2153591.html 衡量CPU性能的指标: 1,用户使用CPU的情况:CPU运 ...

  5. [转帖]超能课堂(210) 笔记本中常说的PL1、PL2到底如何影响CPU性能?

    超能课堂(210)笔记本中常说的PL1.PL2到底如何影响CPU性能? https://www.expreview.com/71943.html 本文约 4070 字,需 7 分钟阅读 (切换至标准版 ...

  6. 计算机组成原理 — CPU 中央处理器

    目录 文章目录 目录 前文列表 逻辑电路部件 组合逻辑电路 时序逻辑电路 阵列逻辑电路 中央处理器(CPU) 控制单元(控制器) 运算单元(运算器) 存储单元(寄存器组和片内缓存) CPU 的工作原理 ...

  7. 快速分析CPU性能问题

    Linux的CPU性能问题,相信在工作中很容易遇到.这篇文章会总结出一个大概的套路,相信能够解决工作中90%以上的CPU性能问题! 会告诉大家在不同的场景下,cpu性能指标工具如何选择,性能瓶颈怎么找 ...

  8. CPU性能监测介绍

    CPU的性能监测包含以下部分: * 检查系统运行队列并确保每个核心上不超过3个可运行进程* 确保CPU利用率的用户时间和系统时间在70/30之间* 当CPU花费更多的时间在system mode上时, ...

  9. 如何利用火焰图定位 Java 的 CPU 性能问题

     常见 CPU 性能问题 你所负责的服务(下称:服务)是否遇到过以下现象: 休息的时候,手机突然收到大量告警短信,提示服务的 99.9 line 从 20ms 飙升至 10s: 正在敲代码实现业务功能 ...

随机推荐

  1. php 实现店铺装修7

    type_id=0的情况 type_id=1的情况                         type_id=2的情况 /** * @title 店铺装修--商品分类 * @param type ...

  2. GSON使用笔记(3) -- 如何反序列化出List

    GSON使用笔记(3) -- 如何反序列化出List 时间 2014-06-26 17:57:06  CSDN博客原文  http://blog.csdn.net/zxhoo/article/deta ...

  3. php 键值数组搜索查询

    php  键值数组查询 ,需要先将其转换为纯数组,然后才能用in_array 进行搜索. $arr_combos = [ ['id' => '1001', 'value' => 'zs' ...

  4. BUU re1

    先shift+F12定位到关键句 然后crtl+X查看函数的交叉调用 定位到该函数处 F5查看伪代码 插入一段re1 re2题中都遇到的技巧: 很多时候出现的数字是asc码,热键R可以把数字转化成字母 ...

  5. k8s node断电重启

    kubernetes断电重启 导致部分pod无法删除 dashboard上处于黄色 kubectl get处于terminate 状态 kubectl delete报错: An error occur ...

  6. esxi 版本升级命令

    先把zip文件通过XShell或者WinSCP上传到esxi服务器上面去,然后执行以下命令,完成升级并重启就可以了.

  7. element设置headers添加token

    <template>   <div>     <el-upload       action="http://localhost:3000/picture&qu ...

  8. UAC绕过初探

    笔者最近在学习UAC绕过的技术,通过对其他师傅的文章进行总结,成功利用DLL劫持绕过了UAC,并且可以以High Mandatory Level来启动进程.在此记录下学习过程,笔者也是初次接触,若各位 ...

  9. Day8 - D - Multiplication Table CodeForces - 448D

    Bizon the Champion isn't just charming, he also is very smart. While some of us were learning the mu ...

  10. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-heart

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...