Menu Close

RISC-V CSR寄存器(1)CSR简介和CSR指令(下)

除去之前介绍的32个通用寄存器之外,还有一类扩展寄存器,称为CSR(control and status register,控制和状态寄存器)。顾名思义,这类寄存器与控制CPU和表明CPU状态相关。特权指令除了包括CSR指令外,还有其他的特权指令,这里将介绍6条操作CSR寄存器的CSR指令。

主讲老师:YVONNE、Tim Zhuang、William

本文隐藏内容 登陆 后才可以浏览

Posted in 文章

4 Comments

  1. wangff

    学习本节课有几点收获,1、CSR指令通过rs1或zimm,实现按位置1或按位置0;2、zimm表示将立即数无符号0扩展;3、对立即数操作时,仅对CSR寄存器的低5bit有影响。
    授课中在讲解RISC-V架构的同时也类比了其他架构的控制状态寄存器的应用,课程内容非常丰富。

    在听课中遇到一个问题,请老师解答:
    1、如何知道当前cpu是否支持CSR寄存器,通过RV32IM的架构表达方式,可以知道支持I、M指令集。是否也可以通过此种表达方式知道是否支持CSR指令呢?

    • Yvonne

      注意CSR模块相对独立,也就是说,RISC-V CPU没有实现CSR也是可以正常执行其它常规指令的(比如ADDI,LUI等)。

      1.可以通过CPU架构名称确认,比如RV32IZicsr。RISC-V官方的最新版Unprivileged ISA文档中将CSR也作为扩展指令集,名为“Zicsr”。但这个规定应用不是很广泛。

      2.商用RISC-V CPU是否支持CSR指令可以通过官方文档找出。

      除此之外,当前CPU是否支持CSR指令不太好判断。

  2. wangff

    本堂课重点讲解了CSRRS、CSRRC、CSRRWI、CSRRSI、CSRRCI 等5个指令。

    课程讲解中老师每个指令的使用方法反复进行说明,对加深理解记忆很有帮助,同时对相关知识也做了补充,对扩展学生的知识面、提升专业素养很有意义。

发表评论

相关链接