在前面我们讲述了一些简单的cpu结构和指令集相关知识,接下来我们将会具体的介绍每个部件。
注意在这里我们讲述的是一个最基础的模型,其所涉及的指令也只包含如下的一个MIPS指令集的核心子集:
1、方寸指令:取字节(lw)和存字节(sw)
2、算术逻辑指令:加法(add)、减法(sub)、与运算(AND)、或运算(OR)和小于则设置(slt)。
3、分支指令:相等则分支(beq)和跳转(j)。
接下来我们将会分部件的介绍其结构。
首先我们介绍指令存储器(IM,instruction memory),我们可以把指令存储器看成是一个存放指令的地方。我们在之前说过,指令是32位的,于是我们不妨把指令存储器看成是由一行一行的32位的存储单位组成的一个存储器,每一行都存着一条指令。其作用就是根据传进来的指令地址取出相应的指令传出去。抽象一下就如下图所示:
接下来我们介绍与指令存储器相关的程序计数器,也即PC(program counter),其负责给出我们要取的指令的pc,这个pc也是一个32位的二进制码。在这里我们要注意一点,我们指令的存储是32位存储的,按照8位一字编址的话,其地址应该呈现出0、4、8这样的规律,反馈到pc的二进制上,我们可以认为其最后两