性能分析与VTune Amplifier XE使用指南
1. CPU流水线分析
CPU流水线主要分为前端(Front End)和后端(Back End),不同部分承担着不同的任务,其性能瓶颈也各有特点。
1.1 前端瓶颈(Front End Bound)
前端负责指令获取、解码为微操作(µops),并将其传递给后端执行。一般来说,当前端瓶颈占比超过30%时,就需要重点关注。
- 指令获取与解码流程
- 通过传统解码器流水线(Legacy Decoder Pipeline ,即MITE)从内存中获取指令,以16字节为块进行操作。
- 利用专用指令缓存(ICache)和TLB(ITLB)减少内存访问开销。现代英特尔处理器为指令和数据分别提供了L1缓存。
- 指令获取后,由一系列解码单元进行解码。每个解码单元每个周期能生成一定数量的µops,如果一条指令生成的µops超过所选解码单元的生成能力,该指令就需要多个周期来解码。解码后的µops会输出到µop队列等待执行。从第二代英特尔酷睿微架构开始,µops还会被添加到解码指令缓存(Decoded ICache,即DSB)中。
- DSB的作用
- DSB以32字节为块缓存指令解码结果,通过指令指针进行索引,但存在一些架构限制,例如在第二代英特尔酷睿微架构中,每个条目最多允许两个分支和19个µops。
- 在调用MITE之前,会根据获取地址在DSB中搜索指令块。如果找到,就跳过获取和解码阶段,直接将µops从DSB缓存传递到µop队列;如果未找到,MITE会进行获取和解码,并尝试将结果添加到缓
超级会员免费看
订阅专栏 解锁全文
1万+

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



