CPU异常与中断支持:实验4-2实现与设计
本篇文档是关于"实验4-2 CPU例外与中断支持"的详细报告,由学生张丽玮在2016年编写的,旨在让CPU支持异常中断和系统调用。实验任务主要包括以下几个关键点: 1. **指令实现**: - **MTC0**、**MFC0** 和 **ERET** 指令的实现,它们涉及CPU内部状态的管理和异常返回。 - **SYSCALL** 指令,用于处理系统调用,涉及EPC寄存器的使用,用于记录系统调用发生的地址。 2. **CP0寄存器**: - **STATUS** 和 **CAUSE** 寄存器:前者用于控制中断屏蔽,后者记录引发异常的原因,通过exccode字段判断异常类型。 - **EPC** (Exception Program Counter) 寄存器,用于异常返回时恢复执行地址。 - **COUNT**、**COMPARE** 和 **BADVADDR** 寄存器,分别记录计数溢出、比较结果和地址错误的虚拟地址。 3. **异常支持**: - **地址错**:由ADD、ADDI或SUB指令执行结果溢出引起。 - **整数溢出**:当指令结果超出有效范围时,触发此异常。 - **保留指令**:处理未实现指令时的异常,即未定义指令。 - **断点**:break指令导致的中断。 4. **硬件中断支持**: - 增加时钟中断,绑定到硬件中断5号,处理周期性事件。 5. **fetch模块**: - fetch模块的改动集中在处理异常情况,如trap异常跳转到特定地址except_addr=32'hbfc00380,ERET指令则返回到EPC地址。 6. **decode模块**: - 新增了与CP0寄存器相关的接口,用于处理异常和系统调用的上下文切换。 整个实验设计涉及CPU异常处理的多个层面,从指令集扩展到异常处理逻辑,以及与系统调用相关的寄存器管理。通过这个实验,学生不仅增强了对CPU内部结构的理解,还掌握了异常处理的基本原理和技术。
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)