Machine Interrupt Registers

这篇具有很好参考价值的文章主要介绍了Machine Interrupt Registers。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Machine Interrupt Registers,risc-v,risc-v

  • bit [15:0]记录interrupt的原因;
  • bit[max:16]时user自定义的,默认不使用;

一个中断,trap to M-mode的条件如下:

  • 当前是M-mode, mstatus.MIE==1,或者当前的权限等级低于M-mode, 此时不管当前的xIE是否为1,M-mode的中断总是有效的;
  • 满足上面的条件后,还需要mip/mie对应bit的值都设置为1;
  • 如果有中断委托寄存器,对应bit不能被委托;

M-mode的中断优先级是最高的;

在实际实现的时候,mip中的bit可以设置为writable,或者read-only;

  • 如果是可写的,那么往这个bit写0,可以清除对应pending的中断;
  • 如果是read-only的,那么必须提供其他的方式来清除这个bit;

在实际实现时,如果中断可pending的话,mie对应bit都要设置成writable的;

CSR中每个bit的描述如下:

  • mip.MEIP & mie.MEIE分别对应machine-level external interrupts的pending&enable bits;
    • MEIP必须是RO的,需要通过interrupt controller来set和clear;
  • mip.MTIP & mie.MTIE分别对应machine-level timmer interrupts的pending&enable bits;
    • MTIP必须是RO的,通过往mtimecmp寄存器写入对应的值来清除;
    • mtimecmp寄存器的写入方式请参考:(后续补充)
  • mip.MSIP & mie.MSIE分别对应machine-level software interrupts的pending&enable bits;
    • MSIP必须是RO的,通过访问memory-mapped control registers来写入数据,这个中断一般是harts间用来通信的,machine_level的处理器中断;
    • 每个hart也可以通过往control register中访问,写入自己的MSIP;
    • 如果系统中只有一个hart, 或者platform中通过external interrupts(MEI)来代替,那么MSIP/MSIE都是read-only zero的;

如果s-mode没有实现,那么SEIP/STIP/SSIP/SEIE/STIE/SSIE都是read-only zero的;

如果实现了,那么supervisor modei相关的bit描述如下:

  • mip.SEIP & mie.SEIE分别对应supervisor-level external interrupts的pending&enable bits;
    • SEIP是writable的,可以被M-mode的软件写入,用来指示S-mode有一个ext int pending;
    • 除此以外,该bit也可能会被platform-level interrupt controllr产生;
    • 所以SEIP是上述两种来源的逻辑或操作生成的;
    • 当用CSR指令来读mip时,SEIP的值,是上面两种来源的逻辑或,但是如果针对CSRRS/CSRRC这类,先读出来,再写入的指令,来自中断控制器的值,并不参与运算;只有软件写入的SEIP,参与CSRRS/CSRRC指令的计算;
  • mip.STIP & mie.STIE分别对应supervisor-level timmer interrupts的pending&enable bits;
    • STIP可写,M-mode的软件,可以将timer的interrupts, 委托到S-mode;
  • mip.SSIP & mie.SSIE分别对应supervisor-level software interrupts的pending&enable bits;
    • SSIP writable, 可以通过软件写入,也可以通过platform-specific interrupt controller置位;

上述的这些中断优先级如下:MEI, MSI, MTI, SEI, SSI, STI

如果interrupt通过mideleg寄存器,委托到S-mode, SIP/SIE寄存器才是可见的,否则,对应bit都是read-only zero的;文章来源地址https://www.toymoban.com/news/detail-784075.html

到了这里,关于Machine Interrupt Registers的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【RISC-V】基于开源RISC-V MCU内核PicoRV32的FPGA移植

    核心板:GW2A-LV18PG256C8IC8I7 底板:Dock底板 有关核心板和底板相关资料的参考网址:Tang Primer 20K - Sipeed Wiki  FPGA硬件设计软件:高云云源软件;下载地址:广东高云半导体科技股份有限公司 PicoRV32描述,以及文档介绍详情见网址PicoRV32 - 高云 - 广东高云半导体科技股份有限公司

    2023年04月09日
    浏览(32)
  • RISC-V公测平台发布 · 第一个WEB Server “Hello RISC-V world!”

    RISC-V公测平台Web Server地址:http://175.8.161.253:8081 Web Server是互联网应用的基础设施,无论是用户访问网站,还是后端服务提供商和开发者构建各种应用程序,Web Server都在其中扮演着至关重要的角色。 显而易见,对于RISC-V生态来说, Web Server也是不可缺少的一部分 。 接下来我们

    2024年02月14日
    浏览(40)
  • 国内 RISC-V 产学研基地成立,Intel、Arm、RISC-V 将三分天下?

    作者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 在IT界,CPU芯片和操作系统是网信领域最基础的核心技术。但在芯片领域,技术和资本的门槛较高,应用范围最广的指令集架构需获得专利授权才能使用,如x86、Arm等。而投入研发的资金,以14nm工艺为例,需上亿元的研发费用。 如何降

    2024年01月17日
    浏览(42)
  • 从零学习开发一个RISC-V操作系统(四)丨RISC-V汇编语言编程

       本系列是博主参考B站课程学习开发一个RISC-V的操作系统的学习笔记,计划从RISC-V的底层汇编指令学起,结合C语言,在Ubuntu 20.04上开发一个简易的操作系统。一个目的是通过实践操作学习和了解什么是操作系统,第二个目的是为之后学习RISC-V的集成电路设计打下一定基础

    2024年01月25日
    浏览(31)
  • RISC-V 中国峰会 | OpenMPL引人注目,RISC-V Summit China 2023圆满落幕

         2023年8月25日,为期三天的RISC-V中国峰会(RISC-V Summit China 2023)圆满落幕。本届峰会以“RISC-V生态共建”为主题,结合当下全球新形势,把握全球新时机,呈现RISC-V全球新观点、新趋势。吸引了超过百家企业及研究机构、开源技术社区参与交流,近百家媒体跟踪报道。

    2024年02月10日
    浏览(37)
  • RISC-V公测平台发布 · 数据库在RISC-V服务器上的适配评估

    前言 上一期讲到YCSB在RISC-V服务器上对MySQL进行性能测试(RISC-V公测平台发布 · 使用YCSB测试SG2042上的MySQL性能),在这一期文章中,我们继续深入讨论RISC-V+数据库的应用。本期就继续利用HS-2平台来测试数据库软件在RISC-V服务器上的兼容性。 参与此次实验的数据库如下: Red

    2024年02月12日
    浏览(31)
  • 【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(六)- 向量内存一致性模型

    以下是《riscv-v-spec-1.0.pdf》文档的关键内容: 这是一份关于向量扩展的详细技术文档,内容覆盖了向量指令集的多个关键方面,如向量寄存器状态映射、向量指令格式、向量加载和存储操作、向量内存对齐约束、向量内存一致性模型、向量算术指令格式、向量整数和浮点算术

    2024年04月09日
    浏览(35)
  • RISC-V云测平台:Compiling The Fedora Linux Kernel Natively on RISC-V

      注释:编译Fedora,HS-2 64核RISC-V服务器比Ryzen5700x快两倍! --- 以下是blog 正文 ---  # Compiling The Fedora Linux Kernel Natively on RISC-V ## Fedora RISC-V Support There is ongoing work to Fedora to support RISC-V hardware. As of right now the Fedora documentation officially only shows how to install the distribution on the SiFive Hi

    2024年02月13日
    浏览(30)
  • RISC-V汇编指令

    写在最前面:这一篇是UC Berkeley的CS61C的笔记,根据我自己的理解进行学习记录,其中贴的一些图片来自于课程PPT。 了解汇编之前,我们需要先了解为什么需要汇编?以下是我的理解: 机器执行的命令都是些二进制的机器码,我们需要对机器进行编程需要记住这些机器码,这

    2024年02月15日
    浏览(42)
  • RISC-V和ARM

    参考:https://www.eet-china.com/mp/a39867.html RISC-V和ARM都是基于**精简指令集计算 (RISC)**原理建立的指令集架构。他们的主要区别在于他们的授权模式和开放性: ARM 是一种专有的指令集架构,众多使用ARM架构的厂商,只能根据自身需求,调整产品频率和功耗,不得改变原有设计。

    2024年02月19日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包