【从零开始学习计算机科学】计算机组成原理(六)异常事件处理
- 异常事件处理
- 异常处理的数据通路
- 异常事件入口地址
异常事件处理
异常和中断事件改变处理机正常指令的执行顺序。异常指令执行过程中,由于操作非法和指令非法引起的事件。陷阱指陷阱指令,有些处理机用陷阱指令来实现操作系统的调用。中断指由外部I/O设备所引起的程序中断。
异常事件处理包括两方面的内容:
- 异常事件的检测,当异常事件发生时,应能让处理机知道。
- 处理机应有相应的硬件机制,实现向异常事件处理程序的转移及处理完毕后回到用户程序。
异常处理的数据通路
具有异常事件处理的过程为一旦检测到异常事件,在该指令的最后一个机器周期进行如下操作:
- 使
WriteEPC
、SelRS1
、SelEXC
有效,并输出向量V
,程序转移到“向量”入口地址执行程序。 - 在异常事件处理程序中,首先执行
rdepc rd
指令,保存EPC
内容到rd
寄存器,便于嵌套。 - 在返回前,根据是否嵌套决定是否执行
wrepc rs1
指令,然后再执行retex
指令实现返回。
异常事件入口地址
一般,异常事件入口地址的产生如下:
其中,地址低位0的个数取决于异常事件处理程序入口之间的间隔;向量的位数根据异常事件的种类而定;为灵活方便,可增加一个基址寄存器,异常事件处理程序可动态安排任何位置。