计组课设:多周期54条MIPS指令CPU设计(含代码)

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

单周期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划分成多周期的目的,这一点很容易理解。

        对于如何将整个指令的步骤划分到不同的周期中去,是需要斟酌的。如果划分成的周期所需时间不同,很有可能无法取得优化效果。最终我选择将周期划分成如下方式:

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值