32位MIPSI CPU设计详解:赵继业讲授的静态流水线技术

需积分: 46 49 下载量 93 浏览量 更新于2024-07-15 2 收藏 307KB PDF 举报
"MIPSI指令集32位CPU设计实例,由赵继业老师讲解,涉及CPU的全32位操作、静态流水线技术、Forwarding、L1 Cache及MIPS指令格式等内容,包括R、I、J三类指令,并深入探讨了流水线结构、存储系统体系和管理,以及取指、发射、执行、写回等关键步骤。" 在MIPSI指令集的32位CPU设计中,全32位操作意味着所有的指令和地址都是32位宽,提供了32个32位通用寄存器。静态流水线设计允许CPU同时进行多个处理阶段,通常包括3到5级,以提高处理速度。Forwarding技术用于解决内部数据相关问题,减少流水线中的等待时间。CPU内置L1 Cache,分为4KByte的指令Cache和数据Cache,均通过硬件初始化,以提升数据访问效率。 MIPS指令格式包含R、I、J三种类型。R型指令涉及寄存器间的运算,如ADD、SUB等;I型指令使用立即数,如ADDI;J型指令用于跳转,如J和JR。此外,还包括访存、跳转和其他特殊指令,如LW、SW、MTC0、MFC0、CACHE、ERET等。 CPU的流水线结构分为取指&译码、发射、执行&写回三个主要阶段。当遇到指令相关或特殊指令(如Cache操作、跳转指令)时,可能会出现取指堵塞,此时需要停止取指。跳转指令会引入延迟槽,即在跳转指令之后的指令必须执行完才能进行跳转,以确保流水线的连续性。对于分支预测和延迟槽的处理,可以通过预测跳转目标来优化性能。 在存储系统方面,MIPS CPU支持用户态和核心态两种操作方式。取指模块由PC控制,PC的来源可以是常规的PC+4、跳转指令的目标地址或异常处理的入口地址。当遇到特定情况,如Cache0指令、无转移预测的跳转或取指地址错误,需要停止取指,并通过设置PC的有效位来标记。指令Cache的实现要考虑同步和异步RAM的问题,确保指令的正确读取和写入。 这个32位CPU设计实例深入地剖析了MIPSI指令集的使用,流水线的运作机制,以及存储系统的管理,为理解CPU设计提供了一个详实的案例。