0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RISC-V SiFive U54内核的中断介绍

麦辣鸡腿堡 来源:嵌入式Linux充电站 作者:Vincent 2023-10-08 09:39 次阅读

中断

U54内核支持M模式和S模式中断。默认情况下,所有中断都在M模式下处理。对于支持S模式的 hart,可以有选择地将中断委托给S模式。

U54中断架构如下:图片

U54内核还支持两种类型的 RISC-V 中断:本地和全局。

本地中断:U54内核的本地中断只有2种,软件中断和定时器中断,这两个中断都由本地中断器(CLINT)生成。本地中断通过专用中断异常代码和固定优先级直接发送给单个hart。因此,本地中断没有仲裁,也不需要额外的内存访问来确定中断的原因。

全局中断:通过平台级中断控制器 (PLIC) 路由,该控制器可以通过外部中断将中断定向到系统中的任何 hart。所有的外设都属于全局中断。

中断优先级

全局中断的各个优先级由 PLIC 确定。

U54内核的优先级如下,按优先级降序排列:

机器外部中断

机器软件中断

机器定时器中断

主管外部中断

主管软件中断

主管定时器中断

异常

如果一个 hart 在S模式下运行并尝试访问一个仅M模式的控制和状态寄存器CSR),这会立即进入异常处理程序并确定下一步行动。mstatus寄存器中的异常代码将保持值 0x2,表明发生了非法指令异常。根据系统的要求,监督模式应用程序可能会报告错误和/或完全终止程序。

没有特定的启用位来允许发生异常,因为默认情况下它们总是启用的。然而,在引导流程的早期,软件应该将 mtvec.BASE设置为一个定义的值,其中包含默认异常处理程序的基地址。所有异常都会捕获 tomtvec.BASE。软件必须读取 mcause CSR以确定异常的来源,并采取适当的措施。

在中断处理程序中发生的同步异常将立即导致程序执行中止中断处理程序并进入异常处理程序。中断处理程序中的异常通常是软件错误的结果,通常应该避免,因为mepc 和 mcause CSR 将被原始中断上下文中捕获的值覆盖。

RISC-V 定义的同步异常具有优先级顺序,当单个指令同时发生多个异常时,可能需要考虑优先级顺序。下表描述了同步异常优先级顺序。

图片

数据地址断点(watchpoints)、指令地址断点、环境断点异常(EBREAK)都具有相同的异常码(3),但优先级不同,如上表所示。

指令地址未对齐异常 (0x0) 的优先级低于其他指令地址异常,因为它们是目标未对齐的控制流指令的结果,而不是取指的结果。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1372

    浏览量

    40282
  • RISC
    +关注

    关注

    6

    文章

    462

    浏览量

    83715
  • 架构
    +关注

    关注

    1

    文章

    513

    浏览量

    25468
  • sifive
    +关注

    关注

    0

    文章

    36

    浏览量

    9458
收藏 人收藏

    评论

    相关推荐

    三星将SiFive RISC-V内核用于SoC,汽车,5G应用

    在上周(12日)举行的年度RISC-V峰会上, 三星披露了将SiFive RISC-V内核用于即将推出的各种应用芯片。该公司越来越多的芯片正在采用R
    的头像 发表于 12-19 14:33 4842次阅读

    SiFive发布P870和X390,RISC-V架构内核性能暴涨

    电子发烧友网报道(文/吴子鹏)近日,全球领先的商业RISC-V内核供应商SiFive宣布推出两款新产品,分别为SiFive Performance P870和
    的头像 发表于 10-17 00:13 1724次阅读

    什么是RISC-V

    siFiveRISC-V 赛昉搞RISC-V 香山搞RISC-V 到底什么是RISC-V? 先不问有什么用,
    发表于 02-02 10:41

    全球首款基于 RISC-V “HiFive Unleashed” 单板计算机(SBC)

    硅谷创业公司 SiFive 已经开放了“HiFive Unleashed” 单板计算机(SBC)的预售,这是一款基于 RISC-V、运行 Linux 的板卡,核心芯片为 1.5GHz U
    发表于 08-02 11:52

    可扩展的高性能RISC-V 内核IP

    SiFive推出的SiFive U8系列核心IP是一种面向现代SoC设计具有可扩展性、高性能的微架构。SiFive U8系列是当今商用化基于
    发表于 08-13 15:14

    带有SiFive开发板和高性能CPU的RISC-V迈向主流

    设计可以达到更高性能水平的新型RISC-V芯片。SiFive宣布了围绕SiFive FU740 SoC构建的新Hive Unmatched平台。这是一个具有四个SiFive
    发表于 11-14 09:29

    RISC-V是什么?有哪些优势

    ARM Cortex内核无处不在。我非常喜欢这个内核,并且经常使用。不要误解我的意思:也许ARM需要一些竞争?看到新的东西引起了很多关注,这是非常令人耳目一新的:RISC-V!RV32M1(VEGA
    发表于 02-10 06:37

    SiFive及晶心科技共同推展RISC-V_扩大RISC-V市占率

    两家RISC-V阵营中的领导厂商,SiFive及晶心科技将积极合作,扩大RISC-V市占率,同时持续积极拓展RISC-V生态系统 CPU IP 专业供货商晶心科技近日与著名ASIC
    的头像 发表于 05-26 01:45 4305次阅读

    Sifive Learn Inventor基础之GPIO 按键中断 RISC-V

    Sifive Learn Inventor 基础之gpio 按键中断Sifive Learn Inventor是Sifive的一款基于RISC-V
    发表于 12-20 19:06 1次下载
    <b class='flag-5'>Sifive</b> Learn Inventor基础之GPIO 按键<b class='flag-5'>中断</b> <b class='flag-5'>RISC-V</b>

    RISC-V掀开源风暴SiFive王者再临

    其中,RISC-V主要发明人、SiFive共同创办人兼首席架构师Krste Asanovic挟带处理器芯片工程领域的地位和高人气,在现场“圈粉”无数,并分享他对RISC-V领域最新的发展观察与对中国市场的信心。
    的头像 发表于 06-29 16:40 1019次阅读
    <b class='flag-5'>RISC-V</b>掀开源风暴<b class='flag-5'>SiFive</b>王者再临

    U54内核PLIC中断处理例子

    Interrupt Claim Process U54 内核 hart 可以通过读取 claim_complete 寄存器(表 115)执行中断请求,该寄存器返回最高优先级挂起中断
    的头像 发表于 10-07 18:01 973次阅读
    <b class='flag-5'>U54</b><b class='flag-5'>内核</b>PLIC<b class='flag-5'>中断</b>处理例子

    U54内核上CLINT的内存映射

    ) {// handler code} 此属性将保存和恢复处理程序中使用的寄存器,并在处理程序的末尾插入一条 mret 指令。 CLINT内存映射 下图是U54 内核上 CLINT 的内存映射: 注意
    的头像 发表于 10-08 09:34 522次阅读
    <b class='flag-5'>U54</b><b class='flag-5'>内核</b>上CLINT的内存映射

    U54内核中断控制和状态寄存器

    向量的基地址,以及设置 U54内核处理中断的模式。对于 Direct 和 Vectored模式,中断处理模式在 mtvec 寄存器的 MODE 字段中定义。mtvec 寄存器在表 86
    的头像 发表于 10-08 09:54 956次阅读
    <b class='flag-5'>U54</b><b class='flag-5'>内核</b><b class='flag-5'>中断</b>控制和状态寄存器

    U54内核特权模式中断介绍

    特权模式中断 U54内核支持有选择地将中断和异常定向到S模式。 该功能由中断和异常委托CSR处理:mideleg和medeleg。S模式
    的头像 发表于 10-08 09:59 943次阅读
    <b class='flag-5'>U54</b><b class='flag-5'>内核</b>特权模式<b class='flag-5'>中断</b><b class='flag-5'>介绍</b>

    RISC-V发展及FPGA厂商为什么选择RISC-V

    SiFive U54/S51 内核组成的集群(四个支持 Linux,一个“real-time”),根据FPGA等级分别以 600 或 666 MHz 运行,基本上是 FPGA 中降级的 HiFive Unleashed。 所以
    的头像 发表于 11-11 10:24 361次阅读
    <b class='flag-5'>RISC-V</b>发展及FPGA厂商为什么选择<b class='flag-5'>RISC-V</b>