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

AIA - 新增的CSR

本文属于《 RISC-V指令集基础系列教程》之一,欢迎查看其它文章。

1 Machine-level CSRs

AIA框架,新增的M模式CSR寄存器,如下:
在这里插入图片描述在这里插入图片描述

由于AIA将interrupt cause,从原有的16个扩展到48个,因此:

  • 已有的CSR:mie、mip、mideleg需要扩展到64bit,以支持最多64个interrupt cause;
  • 对于RV32,增加midelegh、mieh、mvienh、mviph、miph存放高32bit。

miselect和mireg,作为新增的两个CSR寄存器,提供一种途径,可以实现间接的方式访问多个寄存器(非CSR):

  • miselect,表示欲访问寄存器的地址;
  • mireg,表示欲访问寄存器的值。

miselect表示的寄存器地址范围定义,如下所示:
在这里插入图片描述

  • 目前 0x00~0x2F 和 0x40~0x6F 是未指定,保留,故不慎使用到会引发 illegal instruction exception。
  • 0x30-0x3f这个地址段是最基本的支持,无论是否支持IMSIC均可访问。
  • 0x70-0xff作为IMSIC interrupt file的映射地址,只有当hart支持IMSIC时,才可以通过miselect和mireg访问这些寄存器;否则会触发 illegal instruction exception。
  • 0xFF之后的地址,可以由使用者自定义使用。

mtopei,仅在实现IMSIC时才存在,用于记录当前最高优先级的外部中断号(即外部中断的minor identity),由IMSIC负责维护。
mtopi,用于记录当前最高优先级的pending和enable位都置位的中断号。

2 Supervisor-level CSRs

AIA框架,新增的S模式CSR寄存器,如下:
在这里插入图片描述在这里插入图片描述
与Machine level类似,S态下也新增了如下4个CSR:siselect、sireg、stopei和stopi,以及扩展了pending和enable寄存器:sieh和siph。
siselect表示的寄存器地址范围定义,如下所示:
在这里插入图片描述
siselect&sireg功能,与miselect&mireg功能类似,不再赘述。
软件可以通过siselect和sireg访问S level下的IMSIC interrupt file。

3 Hypervisor and VS CSRs

省略。

4 Virtual instruction exceptions

省略。

5 Access control by the state-enable CSRs

省略。


参考链接:

  • 《RISCV AIA (三) AIA架构下新增的CSR》

http://www.kler.cn/a/443609.html

相关文章:

  • Spring Boot 集成 MyBatis 全面讲解
  • PHPUnit使用指南:编写高效的单元测试
  • 超实用教程:在Ubuntu上用Docker搭建安全视频聊天系统briefing
  • 阿里云免费SSL证书调整为3个月后,自动升级SSL证书方案
  • 20241219中科创达的高通CM6125开发板接原装的GPS天线可以定位了
  • html基础-认识html
  • SpringBoot开发——详解Tomcat线程池默认最大支持200并发
  • 51c视觉~合集36
  • 【Spark】Spark SQL执行计划-精简版
  • 聊聊航空航天软件中常用的SIFT(Software-Implemented Fault Tolerance)三版本方案
  • 前端打印(html)
  • 设计模式之创建型
  • sql server 备份恢复
  • 《Vue3实战教程》5:响应式基础
  • 【异常】GL-SFT1200路由器中继模式,TL-CPE1300D无法搜寻5G网问题分析
  • 如何在STM32中使用RTC定时器
  • [一招过] Python的正则表达式篇
  • 基于51单片机的交通灯设计—夜间、紧急、复位、可调时间、四个数码管显示
  • kubeadm一键部署K8S 集群架构
  • Gitee与idea的项目提交步骤