控制是处理器设计中最具挑战性的一方面:它同时是最难得到正确结果部分和最难快速实现的部分。控制最难实现的一个方面是异常和中断,它们是不同于分支或者跳转一样来改变正常执行的指令流。它们最初的用处是处理处理器内部的意外事件,比如说算术溢出。同样的基础概念也扩展到输入/输出设备与处理器的通信。
很多体系结构师和作者不区分中断和异常之间的差别,经常使用中断(interrupt)来涉及这两种事件类型。例如,英特尔 x86使用中断。我们保遵从MIPS的惯例,使用异常(exception)术语来涉及到任何意外的控制流的改变,而不区分它是由处理器内部或者外部引起的,而中断则仅仅是指由处理器外部引起的事件。下面的例子显示了由处理器内部或者外部引起的情况:
事件类型 内部/外部 MIPS术语
I/O设备请求 外部 中断
用户程序调用操作系统 内部 异常
算术溢出 内部 异常
使用未定义指令 内部 异常
硬件故障 内部/外部 异常或中断