《深入浅出计算机组成原理》-入门篇(三)(笔记)

本篇主要是通过CPU主频,讲讲什么是“性能”。

通俗的来说,“性能”就是时间的倒数。

一、两个指标:

  1、响应时间(执行时间):执行一个程序,花费的时间越少,性能越好。

    提升响应时间:可以理解为让计算机“跑的更快”。

  2、吞吐率(带宽):在一定的时间范围内,计算的数据或者执行的程序指令越多,性能越好。

    提升吞吐率:可以理解为让计算机“搬得更多”。

二、计算机的计时单位:CPU时钟

  为什么不用自然时间来衡量?

    1、程序运行的时间可能会包含各个程序之间切换的时间。

    2、程序每次运行的环境不同,无法保证每次都是在相同的频率下运行的。

  Linux下执行命令:time

    real     运行程序整个过程所用的时间(包括与其他程序之间切换的时间)

    user    CPU在用户态运行指令的时间

    sys      CPU在操作系统内核中运行的时间

  CPU time = user time + sys time

  时间这个指标还会收到主板、内存这些其他硬件的影响,所以:

    CPU执行时间 = CPU时钟周期数 * 时钟周期时间

    时钟周期时间:和我们平时戴的石英表类似,CPU内部有一个叫晶体振荡器(OScillator 简称:晶振)的东西,晶振带来的每一次“嘀嗒”,就是时钟周期时间。                  类似我们平时所说的一秒。

  所以根据公式(CPU执行时间 = CPU时钟周期数 * 时钟周期时间)可以看出:

  1、提升性能最简单的方式就是缩短时钟周期时间,也就是提升主频;通俗点,就是换一块好一点的CPU。(从硬件角度出发)

  2、减少程序所需的CPU时钟周期数,一样能够提升性能。

  分解CPU时钟周期数:“指令数*每条指令所需的平均时钟周期数(Cycles Per Instruction 简:CPI)”

  所以公式可表示为:

  CPU执行时间 = 指令数 * CPI * 时钟周期时间

  因此,最后总结,要解决性能问题,其实就是优化这三者。

    1、时钟周期时间 :就是计算机主频,取决于计算机的硬件

    2、每条指令所需的平均时钟周期数,CPI,就是一条指令需要多少CPU Cycle

    3、指令数:执行程序所需多少条指令

 

  与上一章同一天更新的原因主要是最近需求赶得急,所以上一篇一直没机会总结。

  多有瑕疵,敬请见谅!

posted @ 2021-03-02 18:04  与疯  阅读(177)  评论(0)    收藏  举报