HITwh NSCSCC Team | 哈尔滨工业大学(威海)全国大学生计算机系统能力培养大赛小组
[TOC]
大家是否还记得这一张图:
这是一个典型的单周期MIPS CPU架构:
- PC生成下一个指令的地址;
- 译码模块译码,CU通过译码模块翻译出来的操作码控制寄存器堆(Register File)的相应读写;
- CU将控制信号传给ALU控制器,然后ALU控制器控制ALU进行相应的运算;
- 最后ALU的结果需要写回给寄存器堆或者内存,CU仍然需要发出控制信号控制RegFile等器件的行为;
这幅图与我们当时设计的CPU还是有所区别的:
- 我们采用状态机完成CPU;
- 完成指令不止一个时钟周期;
- 图里面多了很多寄存器。
于是:
- 由于有寄存器,每一个上升沿或下降沿会进行一次数据锁存;
- 通过状态机和控制器,控制整个处理过程的状态,每个周期只做一个过程(比如取值或者译码过程);
- 在本质上其实是多周期处理器。
- 分析指令系统,得出数据通路;
- 为数据通路选择合适的器件;
- 连接组件建立数据通路;
- 分析每条指令的实现,确定控制信号;
- 集成控制信号,形成完整的控制逻辑。