指令执行步骤:
1.根据PC计数器,从内存中取出指令,PC指向该内存的地址
2.通过指令字段的内容,选取一到两个寄存器。对于取字指令,只需读取一个寄存器。
3.根据指令执行结果,修改PC或PC+4
指令格式:
单周期实现数据通路:
指令和数据分开。一个时钟周期无法同时操作同一个内存。
跳转指令/分支指令
跳转指令目标地址:PC+4的高四位;跳转指令的26位地址;低两位00
分支指令的目标地址:PC+4 或者 PC+4+ 符号扩展并左移两位的指令低16位偏移地址
为什么不使用单周期实现方式
单周期设计中,时钟周期堆所有指令都等长,时钟周期由最长的路径决定。某些指令本可以在更短的时间内完成。
多周期实现
时钟周期由基本功能单元延时代替,每条指令需要多个时钟周期。功能单元可共享。
指令和数据使用同一个存储器单元;
只有一个ALU;
功能单元加上了一个或者多个寄存器输出值,以便后面周期使用。