Machine Trap Delegation Registers

  • 默认情况下,所有的trap都是在machine mode中处理的;
  • 虽然machine-mode可以通过调用MRET指令,来重新将traps给到其他的mode来执行,但是性能上并不好;
  • 因此增加如下两个寄存器:mideleg/medeleg,分别将对应bit的excp/int指定给更低权限等级的mode执行;
  • medeleg/mideleg都是可读可写的;

实现了S-Mode的系统,medeleg/mideleg是必须实现的,如果设置了对应的bit, 可以将s-mode/u-mode下的trap, 委托给s-mode处理,而不是m-mode;

没有实现S-mode的系统,可以不实现这两个寄存器; 

如果一个trap委托给了s-mode,需要做如下处理:

  • scause记录trap cause;
  • sepc记录发生异常的指令的pc;
  • stval用来写入异常相关的数据;
  • mstatus.SPP, 记录trap发生时候所处于的mode;
  • mstatus.SPIE记录发生trap时,mstatus.SIE;
  • mstatus.SIE被清除;
  • 此时mcause/mepc/mtval/mstatus.MPP,mstatus.MPIE都不写入任何数据;

mideleg/medeleg,可以再进行细分,用每个bit表示需要将哪种类型的trap进行委托;

  • 实现时,medeleg不应该有任何一个bit是read-only one的,因为任何一个异常,都应该可以指定是委托还是不委托;
  • 实现时,mideleg中,与machine-level相关的bit,不应该是固定read-only one的;其他lower-level的是可以的;

M-mode产生的traps, 不能delegate到S-mode; 但是,S-mode的traps, 可以delegate到S-mode, 也就是说,可以平级的delegate;

  • 如果某一个中断,被delegate了,那么在被delegate的那个privilege level, 该中断就被mask了;
  • 例如,如果STI被delegate到S-mode, 那么,如果当前的mode是M-mode, 此时发生了STI,则不会被处理,会被mask掉;
  • 对于更低等级的level, medeleg应该是read-only zero的;
  • 中断委托,不能把M-mode的中断委托给S-mode;
  • mideleg/medeleg,只能在M-mode下访问和修改;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/322022.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Sentinel 降级、限流、熔断

前言 在现代分布式系统中,如何有效地保护系统免受突发流量和故障的影响,是每个开发人员和架构师都需要思考的重要问题。在这样的背景下,Sentinel作为一个强大的系统保护和控制组件,为我们提供了降级、限流、熔断等多种策略&#…

边缘数据采集网关无法上传数据是什么原因?如何解决?

边缘数据采集网关是物联网系统中的常见设备,主要用途包括数据采集、协议转换、边缘数据处理、数据传输分发等,实现多设备和多系统的互联互通和数据协同应用,对于提高物联网感知和响应效率、加强物联网联动协同能力、提升数据安全性等方面都具…

MATLAB实验Simulink的应用

本文MATLAB源码,下载后直接打开运行即可[点击跳转下载]-附实验报告https://download.csdn.net/download/Coin_Collecter/88740734 一、实验目的 1.熟悉Simulink操作环境。 2.掌握建立系统仿真模型以及系统仿真分析的方法。 二、实验内容 1.利用Simulink仿真下列曲…

怎样实现安全便捷的网间数据安全交换?

数据安全交换是指在数据传输过程中采取一系列措施来保护数据的完整性、机密性和可用性。网间数据安全交换,则是需要进行跨网络、跨网段甚至跨组织地进行数据交互,对于数据的传输要求会更高。 大部分企业都是通过网闸、DMZ区、VLAN、双网云桌面等方式实现…

【Azure 架构师学习笔记】- Azure Databricks (6) - 配置Unity Catalog

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (5) - Unity Catalog 简介 UC的关键特性 之所以DataBricks要用UC, 很大程度是对安全的管控。从上文可以了解到它的四大特性&#…

Python 以相对/绝对路径的方式压缩文件

文章目录 1. tarfile 简单介绍2. tarfile 支持的模式3. 绝对路径压缩4. 相对路径压缩5. 参考 1. tarfile 简单介绍 Python 的 tarfile 模块提供了对 .tar 格式归档文件的全面支持,允许用户创建、读取、修改和写入 tar 归档文件。在实际应用中,tar 文件通…

护眼台灯是智商税吗?写作业使用的护眼台灯推荐

在当今社会,越来越多的人在工作和生活中长时间地盯着电脑屏幕或手机屏幕,给眼睛带来了很大的压力和损害。为了缓解眼睛的疲劳和不适,护眼台灯成为了很多人的选择。然而,市场上的护眼台灯种类繁多,价格各异,…

M-A352AD10高精度三轴加速度计

一般描述 M-A352是一种三轴数字输出加速度计,具有超低噪声、高稳定性、低功耗等特点,采用了夸特的精细处理技术。. 多功能M-A352具有高精度和耐久性,非常适合广泛的具有挑战性的应用,如SHM、地震观测、工业设备的状态监测和工业…

pandas查看数据常用方法(以excel为例)

目录 1.查看指定行数的数据head() 2. 查看数据表头columns 3.查看索引index 4.指定索引列index_col 5.按照索引排序 6.按照数据列排序sort_values() 7.查看每列数据类型dtypes 8.查看指定行列数据loc 9.查看数据是否为空isnull() 1.查看指定行数的数据head() &#xff…

软信天成:数据安全管理解决方案分享

近年来,随着数据环境日趋复杂多变和潜在的数据隐私泄露风险潜伏,如何确保企业数据安全已成为众多企业亟待面对与妥善处理的重要问题。 为了应对这一严峻的现实挑战,软信天成凭借专业的知识体系和丰富的实战经验积累,总结出了一套…

Java实现海南旅游景点推荐系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户端2.2 管理员端 三、系统展示四、核心代码4.1 随机景点推荐4.2 景点评价4.3 协同推荐算法4.4 网站登录4.5 查询景点美食 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的海南旅游推荐系统&#xff…

计算机组成原理-程序中断(基本概念 中断分类 流程 )

文章目录 总览中断的基本概念中断请求的分类中断请求标记中断判优-实现中断判优-优先级设置中断处理过程-中断隐指令中断处理过程-中断服务程序小结 总览 中断的基本概念 中断隐指令就是修改PC的值到中断服务程序 在每条指令执行完后,在指令周期末尾检查是否有中断…

【linux】软链接创建(linux的快捷方式创建)

软连接的概念 类似于windows系统中的快捷方式。有的文件目录很长或者每次使用都要找很不方便,于是可以用类似windows的快捷方式的软链接在home(初始目录类似于桌面)上创建一些软链接方便使用。 软链接的语法 ln -s 参数1 参数2 参数1&#…

批评与自我批评组织生活会发言材料2024年六个方面

生活就像一场马拉松,成功需要坚持不懈的奔跑。每一步都可能会遇到挫折和困难,但只要你努力向前,坚持不放弃,你就一定能够迎接胜利的喜悦。不要害怕失败,因为失败是成功的垫脚石。相信自己的能力,追求自己的…

反射助你无痛使用Semantic Kernel接入离线大模型

本文主要介绍如何使用 llama 的 server 部署离线大模型,并通过反射技术修改 Semantic Kernel 的 OpenAIClient 类,从而实现指定端点的功能。最后也推荐了一些学习 Semantic Kernel 的资料,希望能对你有所帮助。 封面图片: Dalle3 …

Java零基础教学文档servlet(1)

【Web开发和HTTP协议】 1. Web开发概述 1.1 web概述 万维网(英语:World Wide Web)亦作WWW、Web、全球广域网,是一个透过互联网访问的,由许多互相链接的超文本组成的信息系统。英国科学家蒂姆伯纳斯-李于1989年发明了…

更换为mainwindow.ui更新工程架构

文章目录 前言一、新建带mainwindow.ui的工程1.新建工程2. 添加工程模块添加opencv的库3.添加资源3.1工程上添加资源3.2引用资源 4.添加曲线文件4.1 复制关键文件到新工程4.2 新进显示曲线的ui带.h的为了方面名字取一样4.3添加曲线显示控件4.4 添加工具 5. 添加曲线.h文件内容6…

OpenCV-Python(39):Meanshift和Camshift算法

目标 学习了解Meanshift 和Camshift 算法在视频中找到并跟踪目标 Meanshift 原理 Meanshift算法是一种基于密度的聚类算法,用于将数据点划分为不同的类别。它的原理是通过数据点的密度分布来确定聚类中心,然后将数据点移动到离其最近的聚类中心&#…

UIAlertController简单使用-swift

UIAlertControlle时IOS的对话框控制器(警报控制器),简单使用方法如下: 步骤都一样,先是创建UIAlertController,然后创建UIAlertAction,再将UIAlertAction添加到UIAlertController中,…

PyTorch深度学习实战(30)——Deepfakes

PyTorch深度学习实战(30)——Deepfakes 0. 前言1. Deepfakes 原理2. 数据集分析3. 使用 PyTorch 实现 Deepfakes3.1 random_warp.py3.2 Deepfakes.py 小结系列链接 0. 前言 Deepfakes 是一种利用深度学习技术生成伪造视频和图像的技术。它通过将一个人的…