| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 8.2 自制操作系统: risc-v Machine寄存器说明mstatus和mstatush -> 正文阅读 |
|
[嵌入式]8.2 自制操作系统: risc-v Machine寄存器说明mstatus和mstatush |
机器模式下的CSRs
Machine Status Registers (mstatus and mstatush) mstatues寄存器是一个MAXLEN-bit?读写寄存器。mstatus寄存器用于跟踪和控制当前hart操作的状态。 mstatus各个字段含义作用:mstatus 寄存器跟踪和控制 hart 的当前操作状态。 在S-level ISA的status寄存器看来mstatus是受限制的。
MRET和SRET指令分别用作从M-mode和S-mode的trap返回。 当执行xRET指令时,假设xPP保存的值为y, 1.xIE设置到xPIE 2.特权模式改为y 3.xPIE设置为1 4.xPP设置为最小权限的模式(如果实现了U模式,则设置U模式,否则设置为M模式) 5.如果xPP不等于M模式,xRET也要设置MPRV=0 FS[1:0]和VS[1:0] WARL字段和XS[1:0]只读字段的作用: 分别通过设置和跟踪浮点单元和任何其他用户模式扩展的当前状态来降低上下文保存和恢复的成本。 FS:?浮点数单元的编码状态,包括浮点数寄存器f0-f31,和CSRs fcsr/frm/fflags。 VS:?向量扩展的编码状态,包括向量寄存器v0-v31,和CSRs vcsr/vxrm/vxstat/v1/vtype/vlenb。 XS:? 额外u模式扩展和相关状态的扩展。 上下文切换例程可以检查这些字段,以快速确定是否需要状态保存或恢复。如果保存或恢复,通常需要需要额外的指令和CSRs来处理和优化流程。 该设计预计大多数上下文切换不需要在浮点单元或其他扩展中的一个或两个中保存/恢复状态,因此通过 SD 位提供快速检查。 FS/VS/XS字段用相同的状态编码: SD位是一个只读位,它总结FS、VS或XS字段是否表明存在一些脏状态,需要将扩展的用户上下文保存到内存中。如果FS, XS和VS都是只读零,那么SD也总是零。 在上下文保存期间,负责的特权代码只需要在其状态为脏时写出相应的状态,然后可以将扩展的状态重置为clean。 在上下文恢复期间,如果状态为 Clean(在恢复时绝不应该是 Dirty),则只需要从内存中加载上下文。 如果状态为 Initial,则必须在上下文恢复时将上下文设置为初始常量值以避免安全漏洞,但这可以在不访问内存的情况下完成。 例如,浮点寄存器可以全部初始化为立即数 0. FS和XS字段在保存上下文之前由特权代码读取。FS字段是在恢复用户上下文时由特权代码直接设置的,而XS字段是通过写入单个扩展的状态寄存器来间接设置的。无论特权模式如何,状态字段也将在执行指令期间更新。 下图显示了 FS、VS 或 XS 状态位的所有可能状态转换。 请注意,标准浮点和向量扩展不支持用户模式取消配置或禁用/启用指令。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:23:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |