架构
哈弗架构:就是把指令存储器和数据存储器分开,就有两个存储器。这样子呢,就是解决了architecture hazards。
顺便解释一下architecture hazards就是,有多个部件要同时访问同一个存储器,把指令存储器和数据存储器分开之后,可以允许同时访问指令存储器同时访问数据存储器。
流水线
按照多少个时钟周期吐出一条指令的运行结果,可以分为单周期,多周期和流水线的。
- 单周期就是每条指令都在一个时钟周期内运行完,最大的缺点就是逻辑路径超长。
- 多周期就是每条指令都需要多个时钟周期,比如一条指令5个时钟,运行2条指令就要10个时钟,这个最大的问题就是,吞吐率太低啦。
- 第三种就是流水线啦,可以尽量保证每个时钟吐出一条指令的运行结果,尽量的意思是如果遇到分支啊,data hazard啊就需要stall,就无法一个时钟吐出一个。
- 本次设计采用标准的5级的流水线把。分别是 取指(IF)-》译码(DE)-》执行(EXE)-》访存(MEM)-》写会(WB)
存储结构
- 32个通用寄存器,每个寄存器32位,其中第一个一直为0。
- 指令存储器:128*32
- 数据存储器:1024*32
设计规划
- 第一个版本实现一个5级流水线的,不支持分支结构的,没有data hazard和control hazard的简单版本
- 第二个版本加上data hazards解决方案的版本
- 第三个版本再加上分支结构的部分,就是完整的版本
微架构总结
- 哈弗结构
- 5级流水线
- 把datapath和control path分开