处理器的双发射是什么?
这是一个处理器微架构层面的概念,对于理解现代高性能CPU(包括一些Cortex-M7/M55/M85等高端MCU内核)如何提升性能至关重要。
核心摘要
双发射 是一种处理器设计技术,允许CPU的译码器在一个时钟周期内,同时解码并派发两条指令到不同的执行单元中去执行。它的终极目标是让处理器在一个时钟周期内完成超过一条指令,从而提升指令级并行(ILP)和整体性能。
你可以把它想象成一个银行的柜台:
- 单发射:只有一个柜台,每个时钟周期只能服务一位顾客(处理一条指令)。
- 双发射:有两个柜台,每个时钟周期可以同时服务两位顾客(处理两条指令)。
1. 从“单发射”说起
要理解双发射,首先要明白传统的“单发射”流水线是如何工作的。
在一个标准的5级流水线(取指 -> 译码 -> 执行 -> 访存 -> 写回)中:
- 取指(IF):从指令缓存中取一条指令。
- 译码(ID):解析这条指令,弄清楚它要做什么(是加法?还是加载数据?)。
- 执行(EX):在ALU(算术逻辑单元)等部件中执行计算。
- 访存(MEM):如果需要,访问数据缓存。
- 写回(WB):将结果写回到寄存器。
在单发射设计中,流水线的每一个阶段,每个时钟周期都只处理一条指令。理想情况下,CPI(Cycles Per