java学习快到碗里来编程语言爱好者Java 进阶

java并发编程(十四)什么是指令集并行?

2021-12-23  本文已影响0人  我犟不过你

本章节主要了解下什么指令集并行,用于理解前面章节多线程场景下出现的指令重排序问题。

一、基础概念

Clock Cycle Time (时钟周期时间)

Cycle Per Instruction(CPI,指令平均时钟周期数)

Instruction Per Clock Cycle(IPC)

CPU的执行时间

CPU执行时间 = 指令数 * CPI * Clock Cycle Time

二、指令重排序优化

在我们小时候,应该都学习过类似的题目:

小明的妈妈在做饭,烧水需要5分钟,洗菜需要5分钟,做饭需要5分钟,那么总共需要多少分钟?

实际上述题目,在烧水时不耽误洗菜,可以并行执行的,也就是最后需要10分钟就可以了。

现代处理器会设计为【一个时钟周期,完成一条执行时间最长的 CPU 指令】,而这条指令还可以划分为更小的阶段。

一条执行指令通常会分为以下5个阶段:

如果向上面做饭的例子一样,那么就会变成下面的样子,三道菜,需要执行三次相同的步骤:

指令重排序.png

如上的效率一定是不高的,所以CPU也会对其执行方式作出优化。

指令重排序 (1).png 指令重排序 (2).png

结论

鉴于CPU对于吞吐量的并行优化,所以带来了指令的乱序执行问题,也可以称之为指令重排序优化。

上一篇 下一篇

猜你喜欢

热点阅读