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

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

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

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

异常事件处理

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

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

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

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

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

在这里插入图片描述

异常事件入口地址

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

在这里插入图片描述

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

http://www.dtcms.com/a/59372.html

相关文章:

  • 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 别名
  • 计算机网络笔记(二)——1.2互联网概述
  • 祛魅 Manus ,从 0 到 1 开源实现
  • 本地fake server,
  • 【IPFS应用开发】IPFS播放器-上传助手
  • 目标检测热力图的生成代码(基于GridCam)生成的
  • Vue3——Fragment
  • Java的基础:对象
  • 单细胞多数据集整合和去除批次效应教程,代做各领域生信分析
  • 【C语言】自定义类型:结构体,联合,枚举(上)
  • Deeplabv3+改进5:在主干网络中添加EMAattention|助力涨点!