文章内容更新请以 WGrape GitHub博客 : CPU原理之指令映射到电路 为准
前言
本文原创,著作权归WGrape所有,未经授权,严禁转载
一、指令映射到电路
一条指令通常不是原子性的,即一条指令映射到电路上时,通常会被分解成多个操作,由不同的模块执行。
一条指令不代表只有1个操作,反而是有很多个不同的操作共同组成的。若每一条指令映射到电路上需要有3个模块电路执行,每个模块工作需要耗时1时钟,则有下图。
1、非流水线执行
5 条指令全部执行完,需要耗时 5(1+1+1) = 53 = 15 时钟(由于当前指令执行完,下一个指令才能执行,于是1个指令需要3个时钟,5个指令执行完共需15分钟
)。
2、流水线执行
流水线技术只能提高CPU执行指令的吞吐量
5 条指令全部执行完,需要耗时 5+2 = 7 时钟 ( 执行5个时钟时指令1到如图位置,此时指令5已被模块1执行,指令5若被完全执行完还需要再经过2个模块共2个时钟,故共需7时钟
) 。