通过题目来讲一讲计算机系统概述相关知识 3 | 计算机组成与系统结构专题
题目 1
假设某机器 M 的时钟频率为 4GHz,用户程序 P 在 M 上的指令条数为 8x10^9,其 CPI 为 1.25,则 P 在 M 上的执行时间是多少?若在机器 M 上从程序 P 开始启动到执行结束所需的时间是 4 秒,则 P 占用的 CPU 时间的百分比是多少?
题目 1 解答
CPI = 所需时钟周期数 / 指令条数 CPU 执行时间 = 所需时钟周期数 / 时钟频率 P 在 M 上的执行时间 = CPI * 指令条数 / 时钟频率 = 1.25 * 8*10^9 / 4 * 10^9 =2.5s
从启动 P 执行开始到执行结束的总时间为 4 秒,其中 2.5 秒是 P 在 CPU 上真正的执行时间,其他事件可能执行操作系统程序或其他用户程序。所占的百分比为:2.5/4 = 62.5%
题目 2
假定某编译器对某段高级语言程序编译生成两种不同的指令序列 S1 和 S2,在时钟频率为 500MHz 的机器 M 上运行,目标指令序列中用到的指令类型有 A、B、C 和 D 四类。四类指令在 M 上的 CPI 和两个指令序列所用的各类指令条数如下表所示:
请问:S1 和 S2 各有多少条指令?CPI 各为多少?所含的时钟周期数各为多少?执行时间各为多少?
题目 2 解答
S1 和 S2 的指令条数分别为:10 和 8
S1 和 S2 的 CPI 分别为:
S1:1x2/10+2x2/10+3x2/10+4x4/10=28/10=2.8
S2:1x4/8+2x1/8+3x2/8+4x1/8=16/8=2
所含时钟周期 = CPI * 指令条数
S1 和 S2 所含的时钟周期数分别为:
所以 S1:28;S2:16
CPU 执行时间 = 所含时钟周期数 * 时间周期
S1:28x1/500M = 56ns;
S2:16x1/500M = 32ns
题目 3
假定机器 M 的时钟频率为 1.2GHz,某程序 P 在机器 M 上的执行时间为 12 秒钟。对 P 优化时,将其所有的乘 4 指令都换成了一条左移 2 位的指令,得到优化后的程序 P’。已知在 M 上乘法指令的 CPI 为 5,左移指令的 CPI 为 2,P 的执行时间是 P’执行时间的 1.2 倍,则 P 中有多少条乘法指令被替换成了左移指令?
题目 3 解答
P’执行时间 = P 执行时间 / 1.2 = 10s
CPU 执行时间 = 所含时钟周期 * 时钟周期
CPI = 所含时钟周期 / 指令数
CPU 执行时间 = 指令数 * CPI / 时钟频率
(12-10)s = n * (5-2) / 1.2G
n = 2 * 1.2G / 3 = 0.8G = 800M
版权声明: 本文为 InfoQ 作者【Regan Yue】的原创文章。
原文链接:【http://xie.infoq.cn/article/2aad3d9db3ffbe555f35f77d2】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论