计算 CPU 中每条指令的总时钟周期



我正在阅读一些大学材料,我发现要计算CPU的CPI(每条指令的时钟周期(,我们使用以下公式:

CPI = 总执行周期数/执行指令数

这很清楚并且确实有意义,但对于此示例,它说已执行n指令:

instruction type   frequency     relative CPI
1                      50%            3
2                      20%            4
3                      30%            5

为什么总CPI等于3*0.5+4*0.2+5*0.3 = 3.8而不是3.8/3 = 1.26,因为按照上述公式,总共有3条执行指令,还是我对公式的理解错误?

公式是正确的,但您没有正确阅读表格。

instruction type   frequency     relative CPI
1                      50%            3
2                      20%            4
3                      30%            5

第一行表示您有一个使用 3 CPI 的指令,该指令的频率为 50%,这基本上意味着程序中的每一条指令都是此指令。

指令 2 需要 4 个 CPI 才能执行,但在您的程序中只出现 20%。 指令 3 需要 5 CPI,但出现 30%。

因此,您计算0.5 * 3 + 0.2 * 4 + 0.3 + 5 = 3.8.它基本上是平均CPI。


想象一下你有以下程序:

INS_1   3 CPI
INS_3   5 CPI
INS_1   3 CPI
INS_3   5 CPI
INS_2   4 CPI
INS_1   3 CPI
INS_3   5 CPI
INS_2   4 CPI
INS_1   3 CPI
INS_1   3 CPI 
--------------
38 CPI / 10 (Instructions) = 3.8

最新更新