计算 CPU 中每条指令的总时钟周期
Calculating the total clock cycles per instruction in a CPU
我在读一些大学 material,我发现要计算 CPU 的 CPI(每条指令的时钟周期),我们使用以下公式:
CPI = Total execution cycles / executed instructions count
这很清楚并且确实有道理,但是对于这个例子,它说 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条指令,还是我对公式的理解有误?
公式是正确的,但您没有正确阅读table。
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
我在读一些大学 material,我发现要计算 CPU 的 CPI(每条指令的时钟周期),我们使用以下公式:
CPI = Total execution cycles / executed instructions count
这很清楚并且确实有道理,但是对于这个例子,它说 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条指令,还是我对公式的理解有误?
公式是正确的,但您没有正确阅读table。
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