下一篇:指令执行阶段
前言
新系列~为了准备数电期末作品而开的新坑~
推荐CMU的计算机组成原理课程,超赞。
本系列文章将介绍我的MIPS I CPU的实现,我们先规定我们的路线图:
- MIPS I中的R型、I型、J型指令,暂不支持
syscall
和break
指令 - 流水线
- 寄存器重命名
- 有一级指令缓存以及一级数据缓存
- 支持数据联络(通过UART与电脑传输数据)
待以后实现的:
- 整数乘除法流水线
- 浮点处理单元
- 与闪存的交互
- 异常处理器
- 分支预测
- 值预测
我将使用Verilog实现本项目,不过文章将不涉及具体的代码实现,只讲实现思路,如果有兴趣的话可以到我的GitHub仓库查看:
https://github.com/huanghongxun/MIPS-I-CPU
综述
MIPS 特点
我们首先浏览一下MIPS指令的特点:
- 所有指令都是32位长
- 有32个寄存器,可能是32位、64位等
- 所有运算都是32位的,没有只针对一个字节的运算
- 内存中的数据访问必须至少四字节(一个字长)对齐
- 跳转指令的目标地址只有