Skip to content
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

Open
David-Horner opened this issue Feb 7, 2020 · 0 comments
Open

Allocate bits 10 and 11 of vtype for custom use #369

David-Horner opened this issue Feb 7, 2020 · 0 comments
Labels
Resolve after v1.0 Does not need to be resolved for v1.0 draft

Comments

@David-Horner
Copy link
Contributor

David-Horner commented Feb 7, 2020

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.

@kasanovic kasanovic added the Resolve after v1.0 Does not need to be resolved for v1.0 draft label Jun 28, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Resolve after v1.0 Does not need to be resolved for v1.0 draft
Projects
None yet
Development

No branches or pull requests

2 participants