RISC-V指令集架构------RV32M乘法扩展指令集

0 概述

    上一节介绍了RISC-V的基本指令集: RISC-V指令集架构------RV32I基础整数指令集_努力学习的小英的博客-优快云博客

   这节在RV32I的基础上继续介绍M型扩展指令。

    M类型扩展指令是RISC-V指令集中的一种扩展,它是针对嵌入式系统设计的,主要用于数字信号处理(DSP)和媒体应用。RV32M指令集为RISC-V架构提供了一组特定的指令,可以执行高效的数学运算、信号处理和数据压缩,从而提高了系统的性能和效率。

1 乘法扩展指令集

    M类型扩展指令集提供了一系列整数乘除指令,包括单周期乘除指令、乘累加指令、带余数除法指令等。这些指令可以用于执行高效的整数乘除运算,从而提高系统的性能和效率:

  • 乘法指令集:包括单周期乘法指令、乘累加指令和伪随机数生成指令。这些指令可以用来执行高速乘法、乘累加和随机数生成等操作;
  • 除法指令集:包括单周期除法指令和带余数除法指令。这些指令可以用来执行高精度除法操作,从而提高了系统的运算速度和精度;
  • 加速指令集:包括一系列指令,可以用于执行高效的算术运算、移位操作、位操作和逻辑运算。这些指令可以实现快速、高效的数据处理操作。

以RV32M为例,其所有指令均为R型指令,具体格式如下(2018年发布的v2.1版本):

2. RV32M指令详细介绍

2.1 乘法指令

2.1.1 MUL指令(mul rd,rs1,rs2)

  • 乘(Multiply),寄存器x[rs2]乘以寄存器x[rs1],并将乘积写入x[rd],忽略算数溢出。

2.1.2 MULH指令(mul rd,rs1,rs2)

  • 高位乘(Multiply High),把寄存器x[rs2]乘以寄存器x[rs1],都视为2的补码,将乘积的高位写入x[rd]。

2.1.3 MULHSU指令(mulhsu rd,rs1,rs2)

  • 高位有符号-无符号乘(Multiply High Signed-Unsigned),把寄存器x[rs2]乘以寄存器x[rs1],其中x[rs1]为补码,x[rs2]为无符号数,将乘积的高位写入x[rd].

2.1.4 MULHU指令(mulhu rd,rs1,rs2)

  • 高位无符号乘(Multiply High Unsigned),把寄存器x[rs2]乘以寄存器x[rs1],两者均为无符号数,计算结果的高位写入x[rd]。

2.2 除法指令

2.2.1 DIV指令(div rd,rs1,rs2)

  • 除法(Divide),用寄存器x[rs1]的值除以寄存器x[rs2]的值,向零舍入,将这些数视为二进制补码,把商写入x[rd]。

2.2.2 DIVU指令(div rd,rs1,rs2)

  • 无符号除法(Divide,Unsigned),用寄存器x[rs1]的值除以寄存器x[rs2]的值,向零舍入,将这些数据视为无符号数,把商写入x[rd]。

2.2.3 REM指令(rem rd,rs1,rs2)

  • 求余数(Remainder),x[rs1]除以x[rs2]向0舍入,都视为2的补码,余数写入x[rd]。

2.2.4 REMU指令(rem rd,rs1,rs2)

  • 求无符号数的余数(Remainder,Unsigned),x[rs1]除以x[rs2],向0舍入,都视为无符号数,余数写入x[rd]。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值