高性能CPU架构基础科普
1. 指令延迟与吞吐量
在程序执行中,指令的执行情况存在不同特性。以下是两个示例程序:
// Listing 4.4 两条指令相互独立
1 xaj = xa - xj;
2 yaj = ya - yj;
// Listing 4.5 第二条指令依赖第一条指令的计算结果
1 xaj = xa - xj;
2 xaj2 = xaj * xaj;
在 Listing 4.4 中,两条指令相互独立,可同时执行;而 Listing 4.5 中,第二条指令需等待第一条指令完成才能执行。基于此差异,Intel 定义了指令的两个重要属性:延迟(Latency)和吞吐量(Throughput)。
- 延迟 :指一条指令内容执行完成所需的时钟周期数,例如获取三角函数结果或数据完全写入系统内存所需的时间。
- 吞吐量 :指流水线准备好再次接受相同指令之前需要等待的时钟周期数。
为了实现高效计算,应构建程序使尽可能多的指令在吞吐量时间内完成处理。可以通过在高延迟指令之间插入低延迟指令来隐藏延迟,但这些指令之间不能存在依赖关系。不过,当前 CPU 的编译器优化通常能确定比手动调整更好的指令顺序,手动更改指令顺序不仅性能提升不显著,还会使源代码难以阅读,因此建议将指令顺序交给编译器处理。此外,考虑用低延迟指令替换高延迟指令也是一种优化方式。
高性能CPU架构与优化策略
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



