RISC-V指令集探索

RISC-V指令集是一种矢量指令集,与SIMD的固定长度指令集不同。对于RISC-V指令集来说,其vector长度可变(通过VLEN或者SLEN参数控制),多个vector可以合并为一个更大vector使用(通过VMUL参数控制)。

一、 矢量长度控制寄存器

VMUL:控制多个vector合并为一个更大的vector,得到更少但是更长的向量寄存器,被允许的向量名字必须是偶数名字,例如:VMUL = m2 {v0,v2,v4…}, VMUL = m4 {v0,v4,v8…} , VMUL = 1 {v0, v1, v2~v30}。可取的数值:m1, m2, m3 ~ m8

SEW:控制每个vector按照多少bits进行切割作为基本的数据类型(int8, int16, fp32),比如e8:按照字节,e16:按照双字节他。

VLEN(向量长度):向量寄存器的长度, 32b or 64b or 128b or 256b,以来与

vl(向量长度寄存器, 实际可用的):通过vl寄存器修改,是实际的可操向量长度,vl = min (VLEN / SEM, RQV)(此处一般以字节为单位, RQV:requested application vector length)

vsetvli指令配置vtype寄存器(向量类型寄存器)(包含vedit, vsew, vlmul字段对向量进行配置)
vsetvli rd, rs1, e8 # set SEW=8, vl = min(VLEN / SEW, rs1), rd = vl
# 设置元素宽度是字节,向量长度是vl,返回给rd寄存器中。
# rs1 使用户请求的长度,单位是字节(在e8情况下)

二、intrintic指令集

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值