zoukankan      html  css  js  c++  java
  • 【5分钟+】计算机系统结构:CPU性能公式

    计算机系统结构: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。

  • 相关阅读:
    C++编写ATM(2)
    【Python排序搜索基本算法】之Dijkstra算法
    Java中List转换为数组,数组转List
    [置顶] 亚信联创实习笔记
    PL/SQL 异常处理程序
    CSS position财产
    malloc()与calloc差异
    Qt5官方demo分析集10——Qt Quick Particles Examples
    栈和堆之间的差
    深入浅出JMS(一)——JMS简要
  • 原文地址:https://www.cnblogs.com/whuanle/p/12260224.html
Copyright © 2011-2022 走看看