题目
假设在一台40MHZ处理机上运行200,000条指令的目标代码,程序主要由四种指令组成。根据程序跟踪实验结果,已知指令混合比和每种指令所需的指令数如下:指令类型CPI指令混合比算术和逻辑160%高速缓存命中的加载/存储218%转移412%高速存储缺失的存储器访问810%计算在单处理机上用上述跟踪数据运行程序的平均CPI。根据所得的CPI,计算相应的MIPS速率。
假设在一台40MHZ处理机上运行200,000条指令的目标代码,程序主要由四种指令组成。根据程序跟踪实验结果,已知指令混合比和每种指令所需的指令数如下:
指令类型
CPI
指令混合比
算术和逻辑
1
60%
高速缓存命中的加载/存储
2
18%
转移
4
12%
高速存储缺失的存储器访问
8
10%
计算在单处理机上用上述跟踪数据运行程序的平均CPI。
根据所得的CPI,计算相应的MIPS速率。
题目解答
答案
平均=2.24
★★
解析
步骤 1:计算每种指令类型的指令数
根据指令混合比,我们可以计算出每种指令类型的指令数。
算术和逻辑指令数 = 200,000 * 60% = 120,000
高速缓存命中的加载/存储指令数 = 200,000 * 18% = 36,000
转移指令数 = 200,000 * 12% = 24,000
高速存储缺失的存储器访问指令数 = 200,000 * 10% = 20,000
步骤 2:计算每种指令类型的总CPI
根据每种指令类型的CPI和指令数,我们可以计算出每种指令类型的总CPI。
算术和逻辑指令的总CPI = 120,000 * 1 = 120,000
高速缓存命中的加载/存储指令的总CPI = 36,000 * 2 = 72,000
转移指令的总CPI = 24,000 * 4 = 96,000
高速存储缺失的存储器访问指令的总CPI = 20,000 * 8 = 160,000
步骤 3:计算平均CPI
平均CPI = (算术和逻辑指令的总CPI + 高速缓存命中的加载/存储指令的总CPI + 转移指令的总CPI + 高速存储缺失的存储器访问指令的总CPI) / 总指令数
平均CPI = (120,000 + 72,000 + 96,000 + 160,000) / 200,000
平均CPI = 448,000 / 200,000
平均CPI = 2.24
步骤 4:计算MIPS速率
MIPS速率 = 处理器频率 / 平均CPI
MIPS速率 = 40,000,000 / 2.24
MIPS速率 = 17,857,142.86
根据指令混合比,我们可以计算出每种指令类型的指令数。
算术和逻辑指令数 = 200,000 * 60% = 120,000
高速缓存命中的加载/存储指令数 = 200,000 * 18% = 36,000
转移指令数 = 200,000 * 12% = 24,000
高速存储缺失的存储器访问指令数 = 200,000 * 10% = 20,000
步骤 2:计算每种指令类型的总CPI
根据每种指令类型的CPI和指令数,我们可以计算出每种指令类型的总CPI。
算术和逻辑指令的总CPI = 120,000 * 1 = 120,000
高速缓存命中的加载/存储指令的总CPI = 36,000 * 2 = 72,000
转移指令的总CPI = 24,000 * 4 = 96,000
高速存储缺失的存储器访问指令的总CPI = 20,000 * 8 = 160,000
步骤 3:计算平均CPI
平均CPI = (算术和逻辑指令的总CPI + 高速缓存命中的加载/存储指令的总CPI + 转移指令的总CPI + 高速存储缺失的存储器访问指令的总CPI) / 总指令数
平均CPI = (120,000 + 72,000 + 96,000 + 160,000) / 200,000
平均CPI = 448,000 / 200,000
平均CPI = 2.24
步骤 4:计算MIPS速率
MIPS速率 = 处理器频率 / 平均CPI
MIPS速率 = 40,000,000 / 2.24
MIPS速率 = 17,857,142.86