写点什么

通过题目来讲一讲计算机系统概述相关知识 3 | 计算机组成与系统结构专题

用户头像
Regan Yue
关注
发布于: 刚刚

题目 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

发布于: 刚刚阅读数: 2
用户头像

Regan Yue

关注

还未添加个人签名 2020.08.12 加入

对Go、Python、网络安全、区块链感兴趣. · 华为云云享专家 · 掘金资讯创作者

评论

发布
暂无评论
通过题目来讲一讲计算机系统概述相关知识 3 | 计算机组成与系统结构专题