关于后端:CPU及并发

3次阅读

共计 2193 个字符,预计需要花费 6 分钟才能阅读完成。

2.9G Hz, 即每秒进行 2.9G 次运算(即 29 亿次)

几个命令

  • us: 用户应用的 cpu
  • sy: 零碎 (内核) 应用的 cpu
  • id: idle, 即闲暇 cpu
  • wa: 期待 I / O 的 cpu
  • st: 开虚拟机后会有的一个指标, 即虚拟机的 cpu 使用率


一个过程领有一整套虚拟地址空间, 该过程的所有线程都共享该地址空间.

线程是 CPU 运算的最小单位.CPU 不关注是哪个过程, 只是轮换着线程来运行, 不须要晓得该线程属于哪个过程.

线程的五种状态:

只有 运行中 占用 CPU 资源, 其余包含阻塞状态, 都不占用 CPU 资源.

应用 线程池 , 能够优化线程 创立 / 销毁 带来的性能损耗(申请 cpu 计算资源需进入内核态)

协程是用户自定义的线程, 不须要进入内核态进入申请计算资源.(这里的用户就是指应用程序及编程语言了..)


CPU 性能掂量参数

主频

主频 又称 时钟频率,指 CPU 外部晶振的频率,罕用单位为 MHz 或 GHz,它反映了 CPU 的根本工作节奏;

个别用 f 示意 (frequency)

时钟周期

时钟周期 $ t = \frac{1}{f} $

时钟周期 = 主频的倒数

机器周期

机器周期 = m*t

一个 机器周期 蕴含若干个 时钟周期

指令周期

指令周期 = m*t*n

执行一条指令所须要的工夫,个别蕴含若干个 机器周期

CPI

CPI = m*n;

每条指令的均匀时钟周期个数

指令周期 = CPI×机器周期 = n(CPI=n)×m×时钟周期 =nm/ 主频 f

留神指令周期单位是 s 或者 ns,CPI 无穷纲

MIPS(MillionInstructions Per Second)

MIPS = 每秒执行百万条指令数 = 1/(CPI×时钟周期)= 主频 /CPI

MFLOPS 每秒百万浮点运算次数。

示意秒钟所能执行的指令条数,对于微型计算机, 可用 CPU 的主频和每条指令执行所需的时钟周期来掂量。

蕴含关系:指令周期通常用若干个机器周期来示意,在机器语言中,应用执行一条指令所须要的机器周期数来阐明指令执行的速度。而机器周期又蕴含若干个时钟周期。时钟周期是最根本的操作单位。

留神:计算机的运算速度个别用每秒钟所能执行的指令条数来示意。因为不同类型的指令所需工夫长度不同,因此运算速度的计算方法也不同。例如,依据不同类型的指令呈现的频度,乘上不同的系数求得统计平均值,失去均匀运算速度。这种办法用 MIPS(Millions of Instruction Per Second)作单位,即每秒百万条指令。

又如,间接给出 CPU 的主频和每条指令的执行所需的时钟周期。周期个别以 MHz 为单位。主频即计算机的时钟频率,它在很大水平上决定了主机的工作速度。例如,型号为 486DX-133 的微型计算机,表明它的 CPU 型号为 486,DX 为含浮点处理器,数字 133 的含意是主频为 133MHz。


例题

<1>:若某处理器的时钟频率为 500MHz,每 4 个时钟周期组成一个机器周期,执行一条指令须要 3 个机器周期,则该处理器的一个机器周期▁8▁ns,均匀执行速度为▁42▁MIPS

解析如下:

时钟周期 T 等于主频的倒数,即 T =1/500MHz=1/(0.5×10 的 9 次方 Hz)=2 ns,机器周期等于 4 个时钟周期即 =4T=4×2 ns=8 ns,每条指令的时钟周期数 CPI=3×4=12,则平均速度为:f/(CPI×10 的 6 次方)=(500×10 的 6 次方)/(12×10 的 6 次 方)=500/12=41.6≈42MIPS. 计算主频的倒数时要留神把主频的 MHz 换算成 Hz 即 500 前面加 6 个 0 =500×10 的 6 次方 =0.5×10 的 9 次方,1/10 的 9 次方 Hz=1ns

每条指令的时钟周期数 CPI=3×4=12,执行一条指令须要 3 个机器周期数,一个机器周期蕴含 4 个时钟周期,所以 CPI=3×4=12,这里计算 的都是周期的个数,和具体的工夫 ns 纳秒没有关系,若带上具体的工夫,一个时钟周期 T =2ns,一个机器周期就是 2×4=8ns,执行一条指令须要三个机 器周期得出执行一条指令须要的具体工夫为 3×8=24ns,执行每条指令的须要的时钟周期数 CPI 换句话说就是把执行每条指令须要的工夫 24ns 换算成时 钟周期个数示意,为多少个时钟周期个数? 时钟周期是最根本的工夫操作单位,500MHz 主频的处理器一个时钟周期为 2ns,24ns 等于多少个时钟周期?24/2=12 个时钟周期,即那一句:“每条指令的时钟周期数 CPI=12”。


<2>: 某计算机系统的 CPU 主频为 2.8GHz。某应用程序包含 3 类指令,各类指令的 CPI(执行每条指令所须要的时钟周期数)及指令比例 如下表所示。

执行该应用程序时的均匀 CPI 为();

<font size=1>A、25 B、3 C、3.5 D、4 </font>

运算速度用 MIPS 示意,约为()。

<font size=1>A、700 B、800 C、930 D、1100 </font>

解:

(1) 求 均匀 CPI, 即对列出的 CPI 求平均数

4*35% + 2*45% + 6*20% = 3.5

(2) 求 MIPS, 即每秒执行的百万条指令数

依据第一问 CPI,每条指令须要的时钟周期为 4,每个时钟周期为主频的倒数,即 1 /2.8G 秒,则每条指令须要工夫 3.5/2.8G 秒。

每秒执行指令数为1/(3.5/2.8G)=2.8G/3.5=0.8G=800M

(1M=106,1G=109)


拓展浏览:

阮一峰 - 为什么寄存器比内存快?

阮一峰 - 汇编语言入门教程

CPU 性能掂量参数 - 主频,MIPS,CPI,时钟周期,机器周期,指令周期

本文由 mdnice 多平台公布

正文完
 0