在谈论为什么一个时钟周期可以执行两条代码之前,我们需要先了解CPU指令的执行过程。CPU执行指令时,需要经过取指、译码、执行、存储四个步骤,这四个步骤统称为CPU指令周期。具体来说,取指就是从内存中取出下一条指令,译码则是把该指令翻译成CPU可执行的指令,执行则是CPU根据翻译后的指令执行相应的操作,存储则是把执行结果存储到内存或寄存器中。其中,每个步骤都需要一个时钟周期来完成。
为了提高CPU执行指令的效率,人们开发出了流水线技术。流水线就是把CPU指令周期中的四个步骤分别放到四个独立的阶段中,每个阶段都可以并行处理不同指令。这样就可以在一个时钟周期内,让一个指令的取指、译码、执行、存储等步骤同时进行,从而大大提高了CPU的执行效率。
除了流水线技术,还有一种常见的指令并行技术——指令级并行。指令级并行是指在一个时钟周期内,通过同时执行多条不相关(指相互之间没有影响的)指令,从而提高CPU的指令执行效率。由于不同指令之间没有影响,因此可以在同一个时钟周期内同时执行。这就是为什么一个时钟周期可以执行两条代码的原因之一。
超标量技术是一种先进的指令级并行技术,它可以在一个时钟周期内同时执行多条指令,而且这些指令可以是相关指令。超标量CPU具有多个指令译码器、多个执行单元和多个存储单元,可以同时处理多个指令,从而提高CPU的执行效率。有些超标量CPU甚至可以在一个时钟周期内执行4条或更多的指令,这就是为什么一个时钟周期可以执行两条代码的原因之二。