实现所有Y86-64指令所需要的计算可以被组织成6个基本阶段:取诣,译码,执行,访存,写回和更新PC。
硬件单元与各个阶段相关联:
取诣:将程序计数器寄存器作为地址,指令内存读取指令的字节。PC增加器计算valP,即增加了程序计数器。
译码:寄存器文件的两个读端口A和B,从这两个端口同时读取寄存器的值。
执行:执行阶段会根据指令的类型,将算术、逻辑单元用于不同的目的,对整数操作,它要执行指令所指定的运算。对于其他指令,它会作为一个加法器来计算增加或者减少栈指针,或者计算有效地址,或者只是简单地加0,将一个输入传递到输出。
访存:在执行访存操作时候,数据内存读出或者写入一个内存字。指令和数据内存访问的是相同的内存位置,但是用不同的目的。
写回:寄存器文件有两个写端口,端口E是用来写ALU计算出来的值,而端口M用来写从数据内存读出的值。
PC更新:程序计数器的新值选择自:valP,下一条指令的地址:valC,调用指令或跳转指令指定的目标地址:valM,从内存读取的返回地址。