目录
一、问题背景
vcompress是RVV最为复杂的一条指令,用于将数据中某些数据“剔除”,实现数据压缩。
下图是vcompress指令的功能示意图:
vcompress指令需要找出mask数据中1的位置(index),再根据位置实现数据重排列。
二、index计算
找mask数据中1的位置可以循环利用find_first_1电路,find_first_1电路结构如下:
找出第一个1后,消去该1,随后再次利用find_first_1电路,电路上设计最大找8次(用于找出8bit数据中所有的1)。随后进行合并(因为多个8bit并行找,需要把找出的index紧凑起来)