This repository has been archived by the owner on Mar 20, 2024. It is now read-only.
Allocate bits 10 and 11 of vtype for custom use #369
Labels
Resolve after v1.0
Does not need to be resolved for v1.0 draft
I recommend we consider allocation of currently unused bits in vtype as reserved for custom use.
Consistent with extensible design intent.
Unlike other CSRs, vtype extends the "compressed" versions of a full 64 bit instructions and therefore is in effect part of the opcode map.
We would in effect be allowing every vector instruction to be overridden to have custom behaviour.
This would appear to be a very large risk.
However, there is no compliant alternative to adding custom datatypes.
Specific suggestion:
Of the total 11 bits mapped into vsetvli, 7 are in use with lmul/sew/ediv. Of the 4 remaining I suggest 1 bit (bit 10 in vtype) be reserved for custom use. This is a 25% of the remaining vsetvli directly addressable bits. I further suggest we allocate bit 11 for custom use. This will allow a single load immediate to provide both lower custom use bits. And further I suggest we allocate from the vtype [30:12] further bits for custom use. Doing so now will allow proposals early on in this current design and testing phase that may be incorporated as their merit is empirically assessed.
Appropriateness of bit 11 of vtype as custom use
Bit 11 is particularly problematic to use with vsetvl, at least as part of the standard.
A load immediate will generate a negative value which would set vill when used with vsetvl.
To generate the bit 11 itself requires more than one instruction.
However, as a custom bit, setting it can have any meaning , including
- ignoring the vill
- zeroing bits [31:12]
- complimenting all the bits (or just those [31:12])
Indeed behaviour that would make load immediate viable but would not be acceptable in the standard vector extension.
The text was updated successfully, but these errors were encountered: