ISA是什么

定义

指令集架构(英语:Instruction Set Architecture,缩写为ISA),又称指令集或指令集体系,是计算机体系结构中与程序设计有关的部分,包含了基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理以及外部I/O。指令集架构包含一系列的opcode即操作码(机器语言),以及由特定处理器执行的基本命令。来自维基百科微处理器的指令集架构(Instruction Set Architecture)常见种类如下: 复杂指令集运算(Complex Instruction Set Computing,CISC);精简指令集运算(Reduced Instruction Set Computing,RISC) ;显式并行指令集运算(Explicitly Parallel Instruction Computing,EPIC);超长指令字指令集运算(VLIW)来自百度百科

sat饱和

RND舍入

有符号数溢出判断

在这里插入图片描述

关于浮点指令集浮点数舍入模式

摘要:
本文主要描述浮点扩展指令集中定义的五种舍入模式,并介绍一些实现时要注意的地方。

舍入模式介绍
首先,在riscv-spec-v2.2的浮点指令集扩展部分一共定义了五种不同的舍入模式,如下图。
在这里插入图片描述

接下来,我将以需要舍入为3位精度的小数作为例子(比方说:1.010 101 和1.011 101)来分别对五种舍入模式进行解读。

1.RNE:Round to Nearest, ties to even.
即向最近偶数舍入。对于这一舍入模式,我们首先要看超出精度的第一位,对于3位精度的小数而言就是要看小数点后的第四位为0则舍去,为1则需要查看后续位数是否有1,有则进一,若无则说明这个小数位于两个数的中间(1.010 100恰好处于1.010和1.011的中间),需要向最近偶数舍入。
例1:1.010 011—->1.010
小数点后第4位为0,则不满足舍入条件,直接舍去后三位。
例2:1.010 101—->1.011
小数点后第4位为1,且后续位仍有1,则进一。
例3:1.010 100—->1.010
小数点后第四位位1,但后续位全为0,1.010是离它最近的偶数,则取1.010。
例4:1.011 100—->1.100
小数点后第四位位1,但后续位全为0,1.100是离它最近的偶数,则取1.100。

2.RTZ:Round towards Zero.
即向零舍入。对于这个舍入模式,直接截掉多余位数即可。
例1:1.010 011—->1.010
例2:1.010 101—->1.010
例3:1.010 100—->1.010
例4:1.011 100—->1.011

3.RDN: Round Down.
即向负无穷舍入。对于这一舍入模式,需要先判断符号位,正数则截取多余位数,负数则进一。
例1:-1.010 011—->-1.011
例2:1.010 101—->1.010
例3:1.010 100—->1.010
例4:-1.011 100—->-1.100

4.RUP: Round Up.
即向正无穷舍入。对于这一舍入模式,需要先判断符号位,负数则截取多余位数,正数则进一。
例1:-1.010 011—->-1.010
例2:1.010 101—->1.011
例3:1.010 100—->1.011
例4:-1.011 100—->-1.011

5.RMM: Round to Nearest, ties to Max Magnitude.
即向最大摆幅舍入。对于这一舍入模式,其实就是我们小学时所学的四舍五入。对于这一舍入模式,我们只需要看超出精度的第一位,对于3位精度的小数而言就是要看小数点后的第四位为0则舍去,为1则进一。
例1:1.010 011—->1.010
例2:1.010 101—->1.011
例3:1.010 100—->1.011
例4:1.011 100—->1.100

结束
值得注意的是,指令本身有一个rm域,而fcsr寄存器中也有一个frm域,我们应该选取哪一个编码作为舍入模式呢?
答:我们将优先使用指令中的rm域,若rm编码为111,则调用fcsr中的frm域的编码作为舍入模式。

至此,关于浮点指令集拓展的舍入模式已经介绍完毕,快动手写起来吧!
如有不足,欢迎指出。

参考资料:
The RISC-V Instruction Set Manual,Volume I: User-Level ISA v2.2
IEEE Std 754TM-2008

https://www.riscv-mcu.com/community-topic-id-1353.html

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值