第 1 章:性能评估
学习目标
- 理解性能指标
- 计算 CPI 和 IPC
- 评估处理器性能
1.1 思考:什么是”快”?
你的五级流水线处理器”快”吗?
问题:如何量化”快”?
- 时钟频率?
- 执行时间?
- 吞吐量?
1.2 性能指标
CPU 时间
CPU Time = 指令数 × CPI × 时钟周期
CPI(Cycles Per Instruction):每条指令的平均周期数
IPC(Instructions Per Cycle):每周期执行的指令数
IPC = 1 / CPI
例子
假设程序有 1000 条指令:
- 理想流水线:CPI = 1,需要 1000 周期
- 有冒险的流水线:CPI = 1.5,需要 1500 周期
思考:你的处理器 CPI 是多少?
1.3 性能损失来源
- 结构冒险:资源冲突
- 数据冒险:需要等待数据
- 控制冒险:分支预测失败
CPI = 1 + 结构停顿 + 数据停顿 + 控制停顿
1.4 测量方法
reg [31:0] cycle_count;
reg [31:0] inst_count;
always @(posedge clk) begin
cycle_count <= cycle_count + 1;
if (inst_valid)
inst_count <= inst_count + 1;
end
wire [31:0] cpi = cycle_count / inst_count;
问题:如何统计各类停顿?