找回密码
 立即注册
首页 业界区 业界 ARM-M与RISC-V(32bit)的区别--基于CM4与Nuclei_N300 ...

ARM-M与RISC-V(32bit)的区别--基于CM4与Nuclei_N300

龙玮奇 3 天前
1 systick与core timer

ARM Cortex-M内核包含了一个SysTick定时器,SysTick 是一个24 位的倒计数定时器,当计到0 时,将从RELOAD 寄存器中自动重装载定时初值。
而RISC-V内核中自带一个core timer, core timer是一个64位的定时器, 可以用于产生定时器中断或软件中断
SysTick或core timer等内核定时器, 常用于作为RTOS的心跳时钟
2 中断与异常

在ARMv7中中断是异常的一种特例
而在RISC-V内核中, 中断与异常是严格区分的, 异常与中断均属于Trap(陷阱), 其中中断是异步的,可以被屏蔽 , 异常是同步的, 不可被屏蔽, 并且异常处理时, 硬件会自动关闭全局中断
3 NVIC与ECLIC

NVIC与ELCIC均是ARM-M与RISC-V内核实现的中断控制器, 但是在以下方面有不同之处
3.1 向量中断与非向量中断

NVIC中, 所有的中断都是向量中断, ISR地址由中断向量表保存
ECLIC中, 中断分为向量中断和非向量中断, 两者在下方的中断优化策略的支持中有所不同, 同时ECLIC也有一张中断向量表, 非向量中断共用一个ISR, 再从ISR中判断中断源
3.2 中断优化

3.2.1 中断硬件保护现场

ARM-M中, 中断触发后, 硬件会自动将寄存器信息保存到栈中
而在RISC-V中, 中断触发后, 硬件不会自动保存, 需要软件编写中断上下文的保存与恢复
3.2.2 中断咬尾

ARM-M中, 中断咬尾是一个重要的中断优化
RISC-V中, 非向量中断是支持中断咬尾的, 而向量中断不支持中断咬尾
3.2.3 中断晚到

ARM-M中支持中断晚到优化
RISC-V中不支持中断晚到优化
3.3.4 中断嵌套

ARM-M中支持中断嵌套
RISC-V中非向量中断支持中断嵌套, 向量中断需要软件实现中断上下文的保存与恢复, 并且处理器内核在响应中断后,mstatus寄存器中的MIE域将会被硬件自动更新成为0(意味着中断被全局关闭,从而无法响应新的中断)。因此向量处理模式默认是不支持中断嵌套的,为了达到向量处理模式且又能够中断嵌套的效果, 需要软件实现一些特殊的入栈操作: 0

  • 首先保存CSR寄存器mepc、mcause、msubm入堆栈。保存这几个CSR寄存器是为了保证后续的中断嵌套能够功能正确,因为新的中断响应会重新覆盖mepc、mcause、msubm的值,因此需要将它们先保存入堆栈。
  • 重新打开中断的全局使能,即,设置mstatus寄存器的MIE域为1。打开中断全局使能后,新的中断便可以被响应,从而达到中断嵌套的效果。
  • 在中断服务程序的结尾处同样需要添加对应的恢复上下文出栈操作。并且在CSR寄存器mepc、mcause、msubm出堆栈之前,需要将中断全局使能再次关闭,以保证mepc、mcause、msubm恢复操作的原子性(不被新的中断所打断)。
3.3.5 中断仲裁

NVIC中, 中断仲裁机制由中断优先级号来划分, 中断优先级数字越小, 优先级越高, 同时可以进行优先级分组
ECLIC中, 中断仲裁机制是由四个因素决定:中断level、中断priority、中断 ID号、中断阈值,这四个因素的判定顺序是中断level>中断priority>中断ID号> 中断阈值,其中前三个因素都是数字越大表明仲裁优先级高,最后一个因素只有当 中断level的数值大于中断阈值时,中断才会生效。
4 PendSV异常与软件中断

ARM-M中, 支持PendSV异常挂起, PendSV是一个最低优先级的异常(中断), 优点是可以在保证高优先级的中断优先执行, 在无中断时及时响应, 常常被RTOS用来实现上下文的保存与切换
RISC-V中, 没有PendSV异常, 但是core timer支持软件中断, 可以将该中断设置为最低优先级, 来实现中断挂起的功能, 来实现与PendSV相同的功能
5 特权模式

ARM-M中, 特权模式分为用户模式与特权模式
RISC-V中, 特权模式划分如下
1.png

特权级名称访问权限典型应用M-mode机器模式访问所有CSR、物理内存、中断控制器Bootloader/安全监控S-mode监管模式受限CSR、虚拟内存管理(通过satp)操作系统内核U-mode用户模式最小权限,受限内存访问应用程序Nuclei_N系列仅支持两种特权模式: 机器模式和用户模式 其中机器模式又分出有4个子模式

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册