CPU时钟周期的那些事儿

一、CPU时钟周期和指令周期

1.1 时钟周期

主频:代表CPU内部的主时钟频率;主频倒数是CPU时钟周期,通常以MHz(兆赫兹)为单位,1Hz表示每秒1次。
说明:本次讨论基频,不考虑超频。
# lscpu 
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                18
On-line CPU(s) list:   0-17
Thread(s) per core:    1
Core(s) per socket:    18
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 85
Model name:            Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz
Stepping:              7
CPU MHz:               3001.000
CPU max MHz:           3001.0000
CPU min MHz:           1200.0000
BogoMIPS:              6000.00
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              1024K
L3 cache:              25344K
NUMA node0 CPU(s):     0-17

1.2 时钟周期的计算方式

这里面的3.00GHz就是主频,表示这台电脑一秒可以完成3.00 * 10^9个时钟周期,就表示计算机一秒可以经历3.00 * 10^9个时钟周期;则,一个时钟周期仅需:
1秒/3.00 * 10^9也就是:3.33 * 10^-10 = 0.000000000333

嗯,可以很强势,看似说了什么又好像什么也没说....

那时钟周期到底是个什么啊?

    CPU时钟周期通常为节拍脉冲或T周期,即主频的倒数,它是CPU中最小的时间单位,每个动作至少需要一个时钟周期。
    简单来说就是把前面的公式中的秒这个单位忽略掉,发现分子是1,所以在数学上表示为倒数,CPU时钟周期即主频的倒数?为什么呢?
  • 以10980xe的CPU为例:主频为:3.00GHz = 3.00 * 10^9
  • 则一个时钟周期仅需:1秒 / 3.00 * 10^9 = 3.33 * 10^-10 秒
  • 时钟周期 = 1秒 / 3.00 * 10^9 == 1 / 3.00 * 10^9 == 1 / 主频 == 主频的倒数
  • 具体公式如下:

 

1.2 指令周期

CPU从主存中每取出并执行一条指令所需的全部时间称为:指令周期,也就是CPU完成一条指令的时间。
  • 指令周期常常用若干个机器周期表示
  • 机器周期又包含若干个时钟周期
  • 沃德法.......到底在说什么啊?看下面的图,哈哈

1.3 各个周期的关系图

由图可知:
  • 在这种情况下,一个指令周期由4 * 3 = 12个时钟周期组成;一个机器周期有四个时钟周期,上图各颜色用于区分。
  • CPU执行时间是指运行一个程序所花费的时间。

下次有空继续聊聊Cache line的那些事儿,我先准备一下。

 

 

posted @ 2022-08-02 22:09  OS_Performance  阅读(1972)  评论(0编辑  收藏  举报