RISC-V的CPU陷阱处理机制

作者: 橡树人 | 来源:发表于2020-12-17 22:46 被阅读0次

RISC-V的CPU硬件是如何处理陷阱的?

  1. 如果陷阱是设备中断,且寄存器sstatusSIE位被清除了,则不执行下面的任何步骤;
  2. 清除SIE位来使中断不可用;
  3. 拷贝pcsepc
  4. 将当前模式保存到sstatus中的SPP位
  5. 设置scause来反映陷阱的原因;
  6. 设置模式为内核模式;
  7. 拷贝stvecpc
  8. 在新的pc处开始执行;

在处理陷阱时,CPU没有做哪些事?

  • 没有切换到内核页表;
  • 没有切换到内核的栈;
  • 没有保存除了pc意外的任何寄存器;

注意:在处理陷阱时,CPU没有做的事,全部由内核来做

CPU处理陷阱的步骤还可以进一步简化吗?

答案:不能了。
分析:
假设CPU没有切换pc,即去掉了步骤3、步骤7、步骤8,则出现了RISC-V处于内核模式,但仍运行着用户代码。如果用户代码修改satp寄存器来指向允许访问所有物理内存的页表,则这样就破坏了用户/内核之间的隔离机制。

相关文章

  • RISC-V的CPU陷阱处理机制

    RISC-V的CPU硬件是如何处理陷阱的? 如果陷阱是设备中断,且寄存器sstatus的SIE位被清除了,则不执行...

  • (三)操作系统运行环境

    操作系统运行环境 CPU状态 中断/异常机制 操作系统运行机制 系统调用 处理器状态(模式) 中央处理器(CPU)...

  • RISC-V教材勘误

    《手把手教你设计CPU——RISC-V处理器》单击此处下载样章试读 作者:胡振波 出版社: 人民邮电出版社 ISB...

  • 网卡中断及多队列

    X86系统采用中断机制协同处理CPU与其他设备工作。长久以来网卡的中断默认由cpu0处理,在大量小包的网络环境下可...

  • RISC-V 从这里开始

    RISC-V:读作risk-five,是一个开源的CPU指令集架构 zephyr:开源操作系统 linux:没什么...

  • 1、什么是上下文切换?

    即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各...

  • 关于多线程

    线程运行机制 单核cpu,同一时刻只能处理一个线程,多核cpu同一时刻可以处理多个线程 操作系统为每个运行线程安排...

  • 线程池简介

    线程运行机制(了解) 开启线程过多,会消耗cpu资源单核cpu,同一时刻只能处理一个线程,多核cpu同一时刻可以处...

  • 多线程-上下文切换

    多线程-上下文切换: 即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配cpu时间片来实现这个机制...

  • 并发的挑战

    并发挑战 上下文切换 即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现 这个机制。...

网友评论

    本文标题:RISC-V的CPU陷阱处理机制

    本文链接:https://www.haomeiwen.com/subject/rpytnktx.html