32位MIPSI CPU设计详解:赵继业讲授的静态流水线技术
需积分: 46 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设计提供了一个详实的案例。
2019-09-01 上传
2021-09-24 上传
2021-10-03 上传
2021-07-13 上传
2023-02-27 上传
2021-09-24 上传
2021-09-24 上传
ppcust
- 粉丝: 38
- 资源: 725
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜