e203学习笔记(一)对于M指令集中back2back情况的简单介绍

本文介绍了RISC-V架构中的M指令集,特别是针对乘法和除法操作的back2back(b2b)情况。RISC-V的乘法和除法指令涉及到32位操作数的处理,其中乘法可能需要两条指令来获取64位结果,而除法则可以同时得到商和余数。文中通过e203代码实例展示了b2b判断标志在数据流程中的作用。
摘要由CSDN通过智能技术生成

1. 什么是b2b问题

在分析上述问题之前,我们先来想这么一个问题:对于无符号二进制数,两个4位数相乘需要一个几位的寄存器才能保证结果没有溢出呢?答案是我们需要用一个8位的寄存器来存两个4位操作数相乘的结果。

但是对于RISC-V架构的CPU来说,它所有的通用寄存器都是32位的,如果我们要进行两个32位操作数的乘法操作,那该如何保存这个操作的结果呢?

RISC-V对于乘除法相关的指令设置了一个b2b (back to back) case。在执行Mul/Div指令前,它会首先判断其是否属于back2back fusing类型,如果确实属于下面几种类型就会进行一些判断来保证结果写回的正确性。

2. RISC-V M模块指令集

图 1 RV32M指令图示

图 2 RV32M 操作码映射包含指令布局,操作码,指令格式类型和它们的名称

对于除法操作

商 = (被除数 − 余数) ÷ 除数

或者

被除数 = 除数 × 商 + 余数

余数 = 被除数 − (商 × 除数)

RV32M 具有有符号和无符号整数的除法指令࿱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值