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

问题描述 投票:1回答:1

我正在阅读一些大学资料,发现要计算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条指令,或者我是否以错误的方式理解了该公式?

mips cpu pipeline
1个回答
1
投票
公式正确,但是您没有正确阅读表格。

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

© www.soinside.com 2019 - 2024. All rights reserved.