1.3 异常,自陷,和中断

我们使用术语异常(exception) 来指在运行时发生的不寻常的情况。我们使用术语自陷(trap)来指当被一个异常条件引起的事件发生在一个 RISC-V 的线程里的时候,同步地把控制权传输给管理员环境。我们使用术语中断(interrupt )来指当由 RISC-V 线程之外的事件引起的事件发生的时候,异步地把控制权传输给管理员环境。

在接下去的章节中的指令叙述中,描述了在执行过程中,引起异常的情况。这样是否又如何被转换成自陷取决于执行环境,尽管预期是当发出异常信号的时候,大多数环境下将会采取精确的自陷(除了浮点异常,这在标准的浮点拓展中是不会导致自陷的)。

我们的“异常”和“自陷”的使用和在 IEEE-754 中的浮点标准相匹配。

photo1

图 1.1:RISC-V 指令长度编码格式

photo2

图 1.2:从寄存器中存储 32-bit 指令到存储器中建议的代码顺序。在大头优先和小头优先的存储系统中都能正确地操作并且避免了当有变长指令集拓展被使用时,不对齐的访问。