MIPS异常和中断如何工作?

时间:2012-11-25 19:05:53

标签: exception-handling mips cpu-architecture interrupt-handling mips32

我正在开发类似CPU的MIPS32,我想知道MIPS32异常和中断处理是如何工作的。 MIPS32特权资源架构指南没有提供太多信息。我想知道几件事情:

  1. 如果异常或中断处理程序中存在异常或中断,会发生什么?

  2. MIPS32在原因寄存器中有5个硬件中断和2个软件中断。软件是否中断异常或异常代码值中显示的异常?

  3. 是否有不同的中断和异常向量?

  4. 如果在清除异常之前有2个异常在管道中出现会发生什么?例如,有一个溢出异常,后跟另一个异常和一个中断。会发生什么?

  5. 赞赏任何有用资源的链接。

1 个答案:

答案 0 :(得分:1)

  1. 异常处理程序在保存EPC,SR等之前不应重新启用异常。
  2. 软件中断是例外情况。
  3. 一些MIPS CPU使用不同的中断和异常向量构建,但结果并不是很有用。
  4. MIPS有一些确切的例外:即异常出现在指令序列中,只有管道中的第一个异常在架构上可见。
  5. See MIPS Run Linux是MIPS异常和MIPS PRA的最佳和最具可读性的参考。