1、CPU从内存或缓存中取出指令,将其放入指令寄存器,并对指令进行解码。它将指令分解成一系列微操作,然后发出各种控制命令执行微操作系列,从而完成一条指令的执行。指令是计算机指定要执行的操作的类型和操作数的基本命令。一条指令由一个或多个字节组成,包括一个操作码字段,一个或多个与操作数地址有关的字段,以及一些表示机器状态的状态字和特征码。有些指令还直接包含操作数本身。
2、画
3、第一阶段fetch从内存或高速缓存中检索指令(数值或一系列数值)。存储器的位置由程序计数器指定,该计数器保存用于识别当前程序位置的数值。换句话说,程序计数器记录了当前程序中CPU的踪迹。指令取出后,程序计数器根据指令长度增加存储单元。指令的获取必须总是从相对较慢的存储器中找到,因此导致CPU等待指令被发送进来。这个问题主要在现代处理器的缓存和流水线架构中讨论。
4、译
5、根据CPU从存储器中提取的指令来执行。在解码阶段,指令被分解成有意义的片段。根据CPU的指令集架构(ISA)定义,数值被解释为指令。指令值的一部分是操作码,它指示要执行哪些操作。其他值通常为指令提供必要的信息,例如加法运算的运算目标。这种操作目标可以提供常数值(即立即值)或空间地址值:寄存器或存储器地址,这由地址模式决定。在旧的设计中,CPU的指令解码部分是一个不可改变的硬件设备。然而,在许多抽象和复杂的CPU和指令集体系结构中,微程序通常用于帮助将指令转换成各种信号。这些微程序往往可以在成品CPU中重写,方便更改解码指令。
6、执行
7、在提取和解码阶段之后,接着是执行阶段。在这个阶段,它连接到能够执行所需操作的各种CPU组件。例如,如果需要加法运算,算术逻辑单元(ALU)将连接到一组输入和一组输出。提供了要相加的值,输出将包含求和结果。ALU包含一个电路系统,使得输出可以很容易地执行简单的普通运算和逻辑运算(如加法和位运算)。如果加法运算产生的结果对于CPU处理来说太大,则可以在标志寄存器中设置算术溢出标志。
8、回复
9、最后是写回,简单的用某种格式写回执行阶段的结果。操作的结果通常被写入CPU的内部寄存器,以便后续指令快速访问。在其他情况下,计算结果可能写入速度较慢,但容量更大,成本更低的主存储器。一些类型的指令操作程序计数器而不直接产生结果。这些一般被称为ldquoJump”(跳转),并在程序中带来循环行为、条件执行(通过条件跳转)和函数。许多指令也会改变标志寄存器的状态位。这些标记可以用来影响程序行为,因为它们经常显示各种操作结果。例如,使用“比较”指令来判断两个值的大小,并根据比较结果在标志寄存器上设置一个值。该标志可以通过随后的跳转命令确定程序趋势。指令执行完毕,写回结果后,程序计数器的值将递增,整个过程重复进行,在下一个指令周期正常取下一条顺序指令。如果跳转指令完成,程序计数器将修改为跳转指令的地址,程序将继续正常执行。许多复杂的CPU可以同时获取、解码和执行多条指令。这部分一般涉及“经典RISC流水线”,实际上在很多使用简单CPU(通常称为微控制器)的电子设备中迅速普及。
10、基本结构
本文讲解到此结束,希望对大家有所帮助。