本网站可能会通过此页面上的链接获得会员佣金。 使用条款 .

设计CPU使其可以处理超出其原始程序顺序的指令,可以加快解码和执行速度。芯片复杂度增加,但是并行执行独立指令可以提高性能。而不是等待一条指令处理后再转移到下一条—例如,当必须从主存储器中获取数据时,会导致长时间的停顿—CPU在其他指令上工作,从而显着提高了性能。

CPU架构师已经为指令处理顺序创建了许多策略,例如按顺序完成的顺序问题,按顺序完成的顺序问题以及按顺序完成的顺序问题。有序发布会将指令按程序顺序发送到管道。写入结果时,按顺序完成功能相同。处理器可以按顺序发出指令,但是执行和完成指令的方式有所不同。

无序调度需要在管道的解码和执行阶段之间使用指令缓冲区。自然,将数据写入寄存器和存储器时,CPU必须最终维护程序的完整性。增加的乱序操作需要更多的缓冲区。一些CPU具有集中的指令窗口,以缓冲发往所有执行单元的解码指令。其他设计用途 预约站 —在输入到各个执行单元之前的小指令窗口。

据说具有多个执行单元的当今处理器具有解耦的超标量体系结构,因为获取和解码阶段完全独立于后续阶段。即使执行单元正在处理其他指令,解码器也可以将其结果发送到中央缓冲区或保留站。并且如果解码停顿,执行单元可以从预留站获得已经翻译的指令。

当用于多个执行单元的预留站具有许多排队的指令时,它们可以在单元之间乱序执行,从而提高了总体吞吐量。处理器可以评估大量指令,并根据资源和操作数可用性等因素确定最适合在给定时间执行的指令。

乱序完成意味着结果是按程序顺序写入内存的,但事实并非如此。芯片上的临时缓冲区保存结果,并将结果按程序顺序写入系统存储器。处理器在跟踪和标记流水线中指令的方法上可能有所不同,但是所有CPU最终都会按程序顺序更新体系结构寄存器(外部可见)和系统内存。当然,所有这些魔术都是由程序员完成的’s sight.