如何确定哪个处理器具有最高性能

How to determine which processor has the highest performance

存在以下条件。

Consider three diff erent processors P1, P2, and P3 executing the same instruction set. P1 has a 3 GHz clock rate and a CPI of 1.5. P2 has a 2.5 GHz clock rate and a CPI of 1.0. P3 has a 4.0 GHz clock rate and has a CPI of 2.2.

问题是

Which processor has the highest performance when executing the same program?

我学会了在比较计算机性能时比较cpu执行。

但是,由于cpu execution time = CPI * instruction set * 1/clock rate,指令集的大小不能仅凭上述问题中的条件知道,我认为处理器之间的性能无法比较。

我查找了与此类似的其他问题,问题是 Which processor has the highest performance expressed in instructions per second? 我们在每秒指令数的条件下比较了处理器之间的性能,如图所示。

所以我想知道是否可以在没有任何特殊条件的情况下比较处理器之间的性能。 (给的问题是不是错了?)如果可以的话,我想知道如何比较它们。

However, since cpu execution time = CPI * instruction set * 1/clock rate, the size of the instruction set cannot be known only with the conditions in the above problem, I thought that the performance between processors could not be compared.

对于那个公式;我假设 instruction set 反映了完成同样的工作需要多少条指令。例如。如果一个指令集可以在一条指令中执行乘法,它可能有 instruction set = 1,而如果另一个指令集需要 20 条指令来执行一次乘法,那么它可能有 instruction set = 20,因为你需要 20 倍的指令完成同样的工作。

对于您的家庭作业(3 个处理器都执行相同的指令集),instruction set 是无关紧要的 - 它们都采用相同数量的指令来完成任何数量的工作。考虑到这一点,你可以做 performance = clock rate / CPI。更具体地说:

P1 = 3 GHz / 1.5 = 2,000,000,000
P2 = 2.5 GHz / 1.0 = 2,500,000,000
P3 = 4 GHz / 2.2 = 1,818,181,818

当然,家庭作业过于简单了 - 停顿(时间 CPU 在等待缓存未命中和分支预测错误后的指令获取等事情时什么都不做)往往会对性能比时钟速度或“理论最大 CPI”;和“实际测量的 CPI”取决于使用了哪些特定指令(并且永远不能是所有程序的单个数字,如“1.5 CPI”)。换句话说,在实践中,很容易出现 CPU 对一个程序来说最快而对另一个程序最慢的情况。