我们讲讲vector指令集中最重要的一个寄存器——vtype寄存器。
Vtype寄存器是一个长度为XLEN的向量类型csr寄存器。它的所有位都有特殊的含义,同时它的值只能通过“vset{i}vl{i}”(实际上这是四条指令)来进行修改。
下面来逐个讲解这些位的含义。
从低位开始介绍,vlmul代表的是LMUL,这个值的含义在上一个帖子里讲过,指的是向量寄存器组的数量
这个值可以为小数也可以为整数,大于一和小于一的时候它的含义不同。
当LMUL=1时,寄存器组的数量为1,每个寄存器的长度ELEN根据SEW来变化。
当LMUL<1时,寄存器组的数量为1,但是VLEN被减少为原来的LMUL长。
当LMUL>1时,寄存器组的数量被设置为LMUL个。
然后就是vsew,其实代表的就是sew。这个sew代表的是向量寄存器的中每个元素的位宽,比较简单易懂。
一般情况下,这个sew最多设置为64位。