【发布时间】:2017-01-18 05:37:09
【问题描述】:
我正在上一门名为“计算机结构”的课程。目前,我必须做一些性能改进问题。我正在用头撞墙,因为我已经尝试了几个小时来解决问题,但仍然不知道如何解决它。我们的老师在课堂上给了我们一个问题,这是一个完全不同的问题,设置不同,从未教过我们如何解决这样的问题。我不是要求任何人做我的功课,而是要帮助指导我。我觉得我现在正在失去理智。这个问题是一个相当大的 3 部分问题,如果我对此了解更多,我会知道是否需要包括其他部分,但因为我不知道,所以我只需要为问题的长度道歉并发布所有 3。我做了前两部分,但我不知道它们是否正确。
3 个处理器:
P1: 2.0 GHz, 1.5 CPI
P2: 1.5 GHz, 1.0 CPI
P3: 3.0 GHz, 2.5 CPI
A) 哪个处理器的性能最高:
(My work)
Instruction Set = i, 1.5 GHz = 666.6 ps per cycle, 2 GHz = 500 ps per cycle, 3 GHz = 333.3 ps per cycle
P1 = i x 1.5 x 500 = i x 750
P2 = i x 1.0 x 666.6̅ = i x 666.6̅ (highest performance)
P3 = i x 2.5 x 333.3̅ = i x 833.3̅
B) 如果所有 3 个程序都运行一个程序 10 秒,则计算每个循环数和指令数:
(My work)
P1 = (2x10^9) x 10 seconds = (2.0x10^10) cycles / 1.5 = (1.3̅ x 10^10) instructions
P2 = (1.5x10^9) x 10 seconds = (1.5x10^10) cycles / 1.0 = (1.5 x 10^10) instructions
P3 = (3x10^9) x 10 seconds = (3.0x10^10) cycles / 2.5 = (1.2 x 10^10) instructions
C) 我们试图将时间减少 30%,但这会导致 CPI 增加 20%。我们应该有多少时钟频率来减少这个时间?
(My work)
20% increase in CPI = Old CPI x 1.2 | 30% decrease from 10 seconds is 7 seconds.
P1: CPI = 1.5 x 1.2 = 1.8 -> ((1.3̅ x 10^10) x 1.8) / 7 seconds = ~3.43 GHz
P2: CPI = 1.0 x 1.2 = 1.2 -> ((1.5 x 10^10) x 1.2) / 7 seconds = ~2.57 GHz
P3: CPI = 2.5 x 1.2 = 3 -> ((1.2 x 10^10) x 3.0) / 7 seconds = ~5.14 GHz
这是我遇到问题的部分。我也不确定过去的答案是否正确,但我只包括它们,因为我不知道我是否需要它们用于第三部分。
任何帮助/指导将不胜感激。我是在多次尝试失败后才来到 SO 的。
【问题讨论】:
-
您对 B 部分的回答不正确,请使用一些维度分析。 (还要注意你给出的答案与A部分的答案完全不一致)
-
@BenVoigt - 我对如何修复 B 部分有点困惑。我认为周期是一秒 x 总秒的总周期。例如,2 GHz 为 2x10^9,乘以 10 秒,产生 20x10^9 周期,即 2x10^10。
-
指令计数有问题吗?我应该将总周期除以 CPI 吗?所以 2x10^10 / 1.5?
标签: performance time