常见问题
NPU 软件驱动部分,需要 CPU 实现哪些指令?
一份用 -march=rv32i_zicsr 编译出来的实际驱动,可能会用到这些指令:
- 算术和位运算:add/addi/and/andi/auipc/lui/or/ori/sub/xori
- 条件分支:beq/bge/bgeu/blt/bltu/bne
- CSR:csrrs
- 函数调用:jal/jalr
- Load:lb/lbu/lw
- Store:sb/sw
- 移位:sll/slli/srai/srl/srli
- 比较:slt/sltiu/sltu
虽然比监控程序要求的指令数略多,但多出来的指令,实现起来并不复杂。
作者: