单周期CPU:计组课设:单周期31条MIPS指令CPU设计_a_vegetable的博客-优快云博客
参考代码:https://github.com/while-TuRe/multicycle-CPU54
为什么要划分多周期?
为不同指令按需分配周期,节省时间。
以【j】指令和【lw】指令为例:j指令,只需要完成【读取指令、为PC赋值实现跳转】,而lw指令则需要【读取指令、获得地址、通过地址读取通用寄存器内容、通过寄存器内容读取data memory、将读取结果写入通用寄存器】。如果使用单周期实现,在决定周期长度时就不得不采用lw指令能完成的时长,此时执行j指令就会有相当长时间空闲。但是采用多周期的话,为j指令分配2个周期,lw分配5个周期,时钟频率就可以大幅增加,提高效率。
怎样划分周期?
一个周期需要完成一批非阻塞赋值操作(因为时间相同,容易度量)。理解了单周期CPU划分成多周期的目的,这一点很容易理解。
对于如何将整个指令的步骤划分到不同的周期中去,是需要斟酌的。如果划分成的周期所需时间不同,很有可能无法取得优化效果。最终我选择将周期划分成如下方式:

本文详细介绍了单周期CPU与多周期CPU的区别,阐述了多周期设计的必要性,以MIPS指令集为例,展示了如何将单周期CPU划分为多个执行阶段以提高效率。通过具体指令如j和lw的执行过程,解释了周期划分的合理性,并讨论了如何实现模块划分和状态转换。此外,还提到了测试与调试方法,包括加载指令和使用MARS进行验证。
最低0.47元/天 解锁文章
645

被折叠的 条评论
为什么被折叠?



