当前位置: 首页 > news >正文

【从零开始学习计算机科学】计算机组成原理(六)异常事件处理

【从零开始学习计算机科学】计算机组成原理(六)异常事件处理

      • 异常事件处理
        • 异常处理的数据通路
        • 异常事件入口地址

异常事件处理

异常和中断事件改变处理机正常指令的执行顺序。异常指令执行过程中,由于操作非法和指令非法引起的事件。陷阱指陷阱指令,有些处理机用陷阱指令来实现操作系统的调用。中断指由外部I/O设备所引起的程序中断。

异常事件处理包括两方面的内容:

  1. 异常事件的检测,当异常事件发生时,应能让处理机知道。
  2. 处理机应有相应的硬件机制,实现向异常事件处理程序的转移及处理完毕后回到用户程序。
异常处理的数据通路

具有异常事件处理的过程为一旦检测到异常事件,在该指令的最后一个机器周期进行如下操作:

  1. 使 WriteEPCSelRS1SelEXC 有效,并输出向量 V,程序转移到“向量”入口地址执行程序。
  2. 在异常事件处理程序中,首先执行 rdepc rd 指令,保存 EPC 内容到 rd 寄存器,便于嵌套。
  3. 在返回前,根据是否嵌套决定是否执行 wrepc rs1 指令,然后再执行 retex 指令实现返回。

在这里插入图片描述

异常事件入口地址

一般,异常事件入口地址的产生如下:

在这里插入图片描述

其中,地址低位0的个数取决于异常事件处理程序入口之间的间隔;向量的位数根据异常事件的种类而定;为灵活方便,可增加一个基址寄存器,异常事件处理程序可动态安排任何位置。

相关文章:

  • Manus无需邀请码即可使用的平替方案-OpenManus实测
  • 利用FatJar彻底解决Jar包冲突(一)
  • 【系统设计架构师】特定领域软件体系结构
  • MyBatis Mapper 接口的作用,以及如何将 Mapper 接口与 SQL 映射文件关联起来
  • 周鸿祎开始补录网安岗了
  • 2022IJCAI速读:SparseTT,使用稀疏Transformers进行视觉跟踪
  • EngineerCMS完整版发布,带freecad、math和mapus例子
  • es6+新增特性有哪些
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之功能优化,添加列宽调整功能Table12
  • 二分查找(递归和迭代)– Python
  • 我想写日记了
  • 新能源汽车充电综合解决方案:安科瑞电气助力绿色出行
  • 第二章:C++标准库
  • C++11新特性 11.基于范围的for循环
  • deepseek在pycharm中的配置和简单应用
  • ThinkPhp 5 安装阿里云内容安全(绿化)
  • DeepLabv3+改进6:在主干网络中添加SegNext_Attention|助力涨点
  • Pycharm 取消拼写错误检查(Typo:in word xxx)
  • 【后端开发面试题】每日 3 题(九)
  • SQL 别名
  • 离休干部周惠梅逝世,曾从事多年地下革命工作
  • 国家统计局:要持续加大好房子建设供应力度,积极推动城市更新行动和保障房建设
  • 广东信宜一座在建桥梁暴雨中垮塌,镇政府:未造成人员伤亡
  • 特朗普称即将与伊朗达成核协议,外交部:中方愿继续发挥建设性作用
  • 中方是否计划解除或调整稀土出口管制?外交部回应
  • 中国恒大披露清盘进展:要求债权人提交债权证明表