每秒钟CPU指令数

3
我在备考中遇到了这个问题,但我不知道如何解决。我的考试就要开始了,希望能得到一些帮助。
如果CPU每条指令都发出一个内存请求,计算机运行速度为200 MIPS,那么需要多少个CPU才能使400-MHZ总线达到饱和?假设每次内存引用需要一个总线周期。现在,对于一个使用缓存的系统,并且缓存具有90%的命中率,请重复这个问题。最后,需要什么样的缓存命中率才能让32个CPU共享总线而不会超载?
1个回答

6

我正在尝试指导您找出答案...希望这有所帮助。

如果总线速度为400-MHZ,需要多少个CPU才能饱和?

计算处理器数量很简单,只需进行除法运算。您知道总线速度和每个处理器的操作数。这基本上是显而易见的答案。

现在,在使用缓存且缓存命中率为90%的系统中重复此问题。

好的,所以您需要确定每个处理器的指令中有多少命中总线,并使用该数字代替200 MIPS。同上面一样进行除法运算。

最后,如果要让32个CPU共享总线而不超载,需要什么缓存命中率?

这基本上是上面问题的反过来...您知道总线速率和期望的处理器数量。确定每个处理器的指令中有多少到达总线(除法),然后使用该数字来确定每个处理器的缓存命中率(也是除法)。


所以... 200 MIPS = 200 MHz,因此400 MIPS = 400 MHz,意味着2个CPU吗? 我不理解整个“hits”事情。我在本地得到了一些帮助,得到了20个CPU的答案,但我真的不理解。 - snotyak
是的,你走在正确的道路上。400 MHz,每个周期1个请求=总线上的400M个请求。每个CPU正在加载200M个请求,因此有2个CPU。现在计算出每个CPU以90%的命中率将多少个操作放在总线上...然后确定具有该请求数量的CPU数量。 - Tevo D
我们在课堂上刚刚讲解了它。b部分。 0.1 * 200 MIPS = 20 MIPS 400 MHz / 20 MIPS = 20个CPU。c. 400/32 = 12.5 MIPS/CPU (200-12.5)/200 = 187.5/200 = 93.75% - snotyak
不要过于关注数学问题,而是思考命中率的含义。90% 的命中率意味着在100次访问中有90次可以在缓存中处理,而无需进入内存总线。这意味着还有10次需要访问内存。10/100 * 200 MIPS * 1 指令访问 = 每个 CPU 的20M 访问次数。 - Paul S

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接